public virtual CSharpSymbolKind ToCSharpKind(LanguageSymbolKind kind) { switch (kind.Switch()) { case LanguageSymbolKind.Assembly: return(CSharpSymbolKind.Assembly); case LanguageSymbolKind.NetModule: return(CSharpSymbolKind.NetModule); case LanguageSymbolKind.Alias: return(CSharpSymbolKind.Alias); case LanguageSymbolKind.Namespace: return(CSharpSymbolKind.Namespace); case LanguageSymbolKind.NamedType: return(CSharpSymbolKind.NamedType); case LanguageSymbolKind.Property: return(CSharpSymbolKind.Property); case LanguageSymbolKind.Operation: return(CSharpSymbolKind.Method); case LanguageSymbolKind.ErrorType: return(CSharpSymbolKind.ErrorType); case LanguageSymbolKind.Name: return(CSharpSymbolKind.Namespace); case LanguageSymbolKind.DynamicType: return(CSharpSymbolKind.DynamicType); case LanguageSymbolKind.ConstructedType: return(CSharpSymbolKind.ArrayType); case LanguageSymbolKind.None: return(CSharpSymbolKind.ErrorType); default: throw new ArgumentException("Unexpected symbol kind: " + kind.ToString(), nameof(kind)); } }