Binder\BinderFactory.BinderFactoryVisitor.cs (9)
504return (SourceMemberMethodSymbol)GetMemberSymbol(methodName, baseMethodDeclarationSyntax.FullSpan, container, SymbolKind.Method);
523return (SourcePropertySymbol)GetMemberSymbol(propertyName, basePropertyDeclarationSyntax.Span, container, SymbolKind.Property);
540return (SourceEventSymbol)GetMemberSymbol(eventName, eventDeclarationSyntax.Span, container, SymbolKind.Event);
543private Symbol GetMemberSymbol(string memberName, TextSpan memberSpan, NamedTypeSymbol container, SymbolKind kind)
545Debug.Assert(kind is SymbolKind.Method or SymbolKind.Property or SymbolKind.Event);
575bool checkSymbol(Symbol sym, TextSpan memberSpan, SymbolKind kind, out Symbol result)
584if (sym.Kind == SymbolKind.Method)
Microsoft.CodeAnalysis.CSharp.ExpressionEvaluator.ExpressionCompiler.UnitTests (13)
Completion\CompletionProviders\DeclarationName\DeclarationNameInfo.cs (28)
22ImmutableArray.Create(new SymbolKindOrTypeKind(SymbolKind.Parameter));
25ImmutableArray.Create(new SymbolKindOrTypeKind(SymbolKind.Property));
115_ => ImmutableArray.Create(new SymbolKindOrTypeKind(SymbolKind.Local)), cancellationToken);
137_ => ImmutableArray.Create(new SymbolKindOrTypeKind(SymbolKind.Local)), cancellationToken);
164ImmutableArray.Create(new SymbolKindOrTypeKind(SymbolKind.Local)),
186new SymbolKindOrTypeKind(SymbolKind.Local),
360(_ => ImmutableArray.Create(new SymbolKindOrTypeKind(SymbolKind.Local)))
407possibleDeclarationComputer: d => ImmutableArray.Create(new SymbolKindOrTypeKind(SymbolKind.Local)),
423possibleDeclarationComputer: d => ImmutableArray.Create(new SymbolKindOrTypeKind(SymbolKind.Local)),
434ImmutableArray.Create(new SymbolKindOrTypeKind(SymbolKind.TypeParameter)),
523return ImmutableArray.Create(new SymbolKindOrTypeKind(SymbolKind.Field));
527new SymbolKindOrTypeKind(SymbolKind.Field),
528new SymbolKindOrTypeKind(SymbolKind.Property),
533possibleTypes = possibleTypes.Remove(new SymbolKindOrTypeKind(SymbolKind.Field));
539possibleTypes = possibleTypes.Remove(new SymbolKindOrTypeKind(SymbolKind.Field));
540possibleTypes = possibleTypes.Remove(new SymbolKindOrTypeKind(SymbolKind.Property));
550? ImmutableArray.Create(new SymbolKindOrTypeKind(SymbolKind.Local)) :
554new SymbolKindOrTypeKind(SymbolKind.Local),
641public static Glyph GetGlyph(SymbolKind kind, Accessibility? declaredAccessibility)
645SymbolKind.Field => Glyph.FieldPublic,
646SymbolKind.Local => Glyph.Local,
647SymbolKind.Method => Glyph.MethodPublic,
648SymbolKind.Parameter => Glyph.Parameter,
649SymbolKind.Property => Glyph.PropertyPublic,
650SymbolKind.RangeVariable => Glyph.RangeVariable,
651SymbolKind.TypeParameter => Glyph.TypeParameter,
675public static SymbolKind GetSymbolKind(SymbolKindOrTypeKind symbolKindOrTypeKind)
680symbolKindOrTypeKind.MethodKind.HasValue ? SymbolKind.Method :
EditAndContinue\AbstractEditAndContinueAnalyzer.cs (27)
331SymbolKind.Event => FeaturesResources.event_,
332SymbolKind.Field => GetDisplayName((IFieldSymbol)symbol),
333SymbolKind.Method => GetDisplayName((IMethodSymbol)symbol),
334SymbolKind.NamedType => GetDisplayName((INamedTypeSymbol)symbol),
335SymbolKind.Parameter => FeaturesResources.parameter,
336SymbolKind.Property => GetDisplayName((IPropertySymbol)symbol),
337SymbolKind.TypeParameter => FeaturesResources.type_parameter,
2360case SymbolKind.Field:
2365case SymbolKind.Property:
2370case SymbolKind.Method:
3708rudeEdit = (oldSymbol.Kind == SymbolKind.Field || newSymbol.Kind == SymbolKind.Field) ? RudeEditKind.FieldKindUpdate : RudeEditKind.Update;
4681case SymbolKind.Field:
4689case SymbolKind.Property:
4698case SymbolKind.Event:
5073(member.Kind == SymbolKind.Field || member.Kind == SymbolKind.Property) &&
5107return oldSymbol?.Kind == SymbolKind.NamedType && oldSymbol.DeclaringSyntaxReferences.Length > 1 && oldSymbol.DeclaringSyntaxReferences.Any(IsNotInDocument, oldSyntaxTree) ||
5108newSymbol?.Kind == SymbolKind.NamedType && newSymbol.DeclaringSyntaxReferences.Length > 1 && newSymbol.DeclaringSyntaxReferences.Any(IsNotInDocument, newSyntaxTree);
5616if (oldCapture.Kind == SymbolKind.Parameter)
5631if (newCapture.Kind == SymbolKind.Parameter)
5679if (newCapture.Kind == SymbolKind.Parameter)
5700if (oldCapture.Kind == SymbolKind.RangeVariable)
5904SymbolKind.Parameter => ((IParameterSymbol)localOrParameter).Type,
5905SymbolKind.Local => ((ILocalSymbol)localOrParameter).Type,
5911Debug.Assert(localOrParameter.Kind != SymbolKind.RangeVariable);
5913if (localOrParameter.Kind == SymbolKind.Parameter)
GenerateMember\GenerateVariable\AbstractGenerateVariableService.cs (4)
111document.Document, state, SymbolKind.Property, state.DetermineMaximalAccessibility(), fallbackOptions, cancellationToken).ConfigureAwait(false))
127Document document, State state, SymbolKind kind, Accessibility accessibility, NamingStylePreferencesProvider fallbackOptions, CancellationToken cancellationToken)
193document, state, SymbolKind.Local, Accessibility.NotApplicable, fallbackOptions, cancellationToken).ConfigureAwait(false))
209document, state, SymbolKind.Parameter, Accessibility.NotApplicable, fallbackOptions, cancellationToken).ConfigureAwait(false))
MetadataAsSource\AbstractMetadataAsSourceService.WrappedNamedTypeSymbol.cs (10)
34where m.Kind is SymbolKind.Event or
35SymbolKind.Field or
36SymbolKind.Method or
37SymbolKind.NamedType or
38SymbolKind.Property
47SymbolKind.Field => new WrappedFieldSymbol((IFieldSymbol)m, docCommentFormattingService),
48SymbolKind.Event => new WrappedEventSymbol((IEventSymbol)m, canImplementImplicitly, docCommentFormattingService),
49SymbolKind.Method => new WrappedMethodSymbol((IMethodSymbol)m, canImplementImplicitly, docCommentFormattingService),
50SymbolKind.NamedType => new WrappedNamedTypeSymbol((INamedTypeSymbol)m, canImplementImplicitly, docCommentFormattingService),
51SymbolKind.Property => new WrappedPropertySymbol((IPropertySymbol)m, canImplementImplicitly, docCommentFormattingService),
Analysis\FlowAnalysis\AbstractFlowPass.vb (8)
118Debug.Assert(_info.Symbol.Kind = SymbolKind.Field OrElse
119_info.Symbol.Kind = SymbolKind.Property OrElse
120_info.Symbol.Kind = SymbolKind.Method OrElse
121_info.Symbol.Kind = SymbolKind.Parameter)
247Return If(Me.symbol.Kind = SymbolKind.Method, DirectCast(Me.symbol, MethodSymbol).Parameters, ImmutableArray(Of ParameterSymbol).Empty)
261Return Me.symbol.Kind = SymbolKind.Method AndAlso DirectCast(Me.symbol, MethodSymbol).Locations.Length = 1
271Return If(Me.symbol.Kind = SymbolKind.Method, DirectCast(Me.symbol, MethodSymbol), Nothing)
281Return If(Me.symbol.Kind = SymbolKind.Method, DirectCast(Me.symbol, MethodSymbol).ReturnType, Nothing)
Binding\Binder_Expressions.vb (53)
639If symbols.Count = 1 AndAlso symbols(0).Kind = SymbolKind.ErrorType Then
1882Case SymbolKind.Method
1886Case SymbolKind.Field, SymbolKind.Property
1894Case SymbolKind.NamedType, SymbolKind.Namespace, SymbolKind.Parameter
2212Case SymbolKind.Method, SymbolKind.Property
2216Case SymbolKind.Field
2560Case SymbolKind.Field, SymbolKind.Method, SymbolKind.Property, SymbolKind.Event
2698Case SymbolKind.Field, SymbolKind.Property
2703Case SymbolKind.Local, SymbolKind.Parameter, SymbolKind.RangeVariable
3065((lookupResult.Symbols(0).Kind <> SymbolKind.Method AndAlso lookupResult.Symbols(0).Kind <> SymbolKind.Property) OrElse
3112Case SymbolKind.Method
3125Case SymbolKind.Property
3137Case SymbolKind.Event
3170Case SymbolKind.Field
3217Case SymbolKind.Local
3254Case SymbolKind.RangeVariable
3259Case SymbolKind.Parameter
3271Case SymbolKind.NamedType, SymbolKind.ErrorType
3312Case SymbolKind.TypeParameter
3318Case SymbolKind.Namespace
3324Case SymbolKind.Alias
3331Case SymbolKind.NamedType, SymbolKind.ErrorType
3337Case SymbolKind.Namespace
3397If candidate.Kind = SymbolKind.Namespace AndAlso
3412If candidate Is Nothing OrElse candidate.Kind = SymbolKind.ErrorType Then
3489Case SymbolKind.Method
3493Case SymbolKind.Property
3497Case SymbolKind.Field
3979Case SymbolKind.Method
3981Case SymbolKind.Field
3985Case SymbolKind.Property
3987Case SymbolKind.Parameter
3989Case SymbolKind.Local
3991Case SymbolKind.RangeVariable
4602Return ContainingMember.Kind = SymbolKind.Method AndAlso DirectCast(ContainingMember, MethodSymbol).IsAsync
4606Return ContainingMember.Kind = SymbolKind.Method AndAlso DirectCast(ContainingMember, MethodSymbol).IsIterator
4713If lookupResult.Kind = LookupResultKind.Good AndAlso lookupResult.Symbols(0).Kind = SymbolKind.Method Then
4765If lookupResult.Kind = LookupResultKind.Good AndAlso lookupResult.Symbols(0).Kind = SymbolKind.Property Then
4811If lookupResult.Kind = LookupResultKind.Good AndAlso lookupResult.Symbols(0).Kind = SymbolKind.Method Then
4941ElseIf ContainingMember.Kind = SymbolKind.Method Then
Semantics\AccessCheck.vb (30)
103Case SymbolKind.ArrayType
106Case SymbolKind.NamedType
109Case SymbolKind.Alias
112Case SymbolKind.ErrorType
116Case SymbolKind.TypeParameter, SymbolKind.Parameter, SymbolKind.Local, SymbolKind.RangeVariable,
117SymbolKind.Label, SymbolKind.Namespace, SymbolKind.Assembly, SymbolKind.NetModule
121Case SymbolKind.Method, SymbolKind.Property, SymbolKind.Event, SymbolKind.Field
154If typeArgs(i).Kind <> SymbolKind.TypeParameter Then
496Case SymbolKind.TypeParameter
498Case SymbolKind.NamedType, SymbolKind.ErrorType
599Case SymbolKind.TypeParameter, SymbolKind.ErrorType
601Case SymbolKind.ArrayType
603Case SymbolKind.NamedType
661If container IsNot Nothing AndAlso container.Kind = SymbolKind.Namespace Then
867If Not (exposingMember.Kind = SymbolKind.NamedType AndAlso IsTypeNestedIn(exposedType, DirectCast(exposingMember, NamedTypeSymbol))) Then
871Debug.Assert(exposingMember.Kind = SymbolKind.NamedType)
993Debug.Assert(member.Kind <> SymbolKind.Namespace, "How can a Member be a namespace ?")
998If member.Kind = SymbolKind.NamedType Then
1171If member.Kind = SymbolKind.NamedType Then
Symbols\Source\SourceMethodSymbol.vb (7)
1057container.FindMember(propertyIdentifier.ValueText, SymbolKind.Property, propertyIdentifier.Span, tree),
1088container.FindMember(eventIdentifier.ValueText, SymbolKind.Event, eventIdentifier.Span, tree),
1124Return container.FindMember(propertyIdentifier.ValueText, SymbolKind.Property, propertyIdentifier.Span, tree)
1128Return container.FindMember(eventIdentifier.ValueText, SymbolKind.Event, eventIdentifier.Span, tree)
1132Return container.FindMember(delegateIdentifier.ValueText, SymbolKind.NamedType, delegateIdentifier.Span, tree)
1136SymbolKind.Method, GetMethodLocationFromSyntax(syntax), tree), MethodSymbol)
1753If Me.IsAccessor() AndAlso Me.AssociatedSymbol.Kind = SymbolKind.Event Then
Symbols\Symbol.vb (29)
87Public MustOverride ReadOnly Property Kind As SymbolKind
149Case SymbolKind.Namespace
151Case SymbolKind.NamedType
192Case SymbolKind.ErrorType
194Case SymbolKind.Assembly
197Case SymbolKind.NetModule
516Case SymbolKind.Local,
517SymbolKind.Label,
518SymbolKind.Alias
522Case SymbolKind.Namespace,
523SymbolKind.Field,
524SymbolKind.RangeVariable,
525SymbolKind.Property,
526SymbolKind.Event,
527SymbolKind.Parameter,
528SymbolKind.TypeParameter,
529SymbolKind.ErrorType
532Case SymbolKind.NamedType
538Case SymbolKind.Method
548Case SymbolKind.Assembly, SymbolKind.NetModule, SymbolKind.ArrayType
578If Me.Kind = SymbolKind.Method Then
656If Me.Kind = SymbolKind.Assembly Then
661Dim [module] = If(Me.Kind = SymbolKind.NetModule, Me, Me.ContainingModule)
936Case SymbolKind.Field
939Case SymbolKind.Method
942Case SymbolKind.Property
1258Private ReadOnly Property ISymbol_Kind As SymbolKind Implements ISymbol.Kind, ISymbolInternal.Kind
Symbols\SymbolExtensions.vb (43)
30Case SymbolKind.Namespace
33Case SymbolKind.NamedType
53Case SymbolKind.Field, SymbolKind.Local, SymbolKind.Parameter, SymbolKind.RangeVariable
56Case SymbolKind.Method
69Case SymbolKind.Property
76Case SymbolKind.Event
100If target.Kind = SymbolKind.Namespace Then
138If kind = SymbolKind.Method Then
140ElseIf kind <> SymbolKind.Property Then
165Case SymbolKind.Method
171Case SymbolKind.Property
196Case SymbolKind.Field, SymbolKind.Property, SymbolKind.Method, SymbolKind.Event
209Case SymbolKind.Method, SymbolKind.Property, SymbolKind.Event
243Return symbol.Kind = SymbolKind.Method AndAlso IsAccessor(DirectCast(symbol, MethodSymbol))
248Return symbol.Kind = SymbolKind.Property AndAlso DirectCast(symbol, PropertySymbol).IsWithEvents
257Return symbol.Kind = SymbolKind.Property AndAlso Not DirectCast(symbol, PropertySymbol).IsWithEvents
280Return this.Kind = SymbolKind.Method AndAlso DirectCast(this, MethodSymbol).IsReducedExtensionMethod
289Case SymbolKind.Method
291Case SymbolKind.Property
293Case SymbolKind.Event
306Case SymbolKind.Method
308Case SymbolKind.NamedType, SymbolKind.ErrorType
322Case SymbolKind.Method
324Case SymbolKind.Field
326Case SymbolKind.Property
328Case SymbolKind.Parameter
341Case SymbolKind.Method
343Case SymbolKind.Property
376Return symbol.Kind = SymbolKind.Method AndAlso DirectCast(symbol, MethodSymbol).IsUserDefinedOperator()
404Dim upperLevelType = If(symbol.Kind = SymbolKind.NamedType, DirectCast(symbol, NamedTypeSymbol), symbol.ContainingType)
456While If(member?.Kind = SymbolKind.Method, False) AndAlso DirectCast(member, MethodSymbol).MethodKind = MethodKind.AnonymousFunction
466Case SymbolKind.Method
469Case SymbolKind.Property
472Case SymbolKind.Event
Microsoft.CodeAnalysis.VisualBasic.ExpressionEvaluator.ExpressionCompiler.UnitTests (3)
J\s\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Extensions\ISymbolExtensions.cs\ISymbolExtensions.cs (26)
35case SymbolKind.Alias:
40case SymbolKind.Parameter:
44case SymbolKind.TypeParameter:
49while (symbol != null && symbol.Kind != SymbolKind.Namespace)
95if (symbol.Kind is not SymbolKind.Method and not SymbolKind.Property and not SymbolKind.Event)
125if (symbol.Kind == SymbolKind.Event)
130if (symbol.Kind == SymbolKind.Property)
135if (symbol.Kind == SymbolKind.Method)
172=> symbol?.Kind == SymbolKind.ArrayType;
180public static bool IsKind([NotNullWhen(true)] this ISymbol? symbol, SymbolKind kind)
183public static bool MatchesKind([NotNullWhen(true)] this ISymbol? symbol, SymbolKind kind)
186public static bool MatchesKind([NotNullWhen(true)] this ISymbol? symbol, SymbolKind kind1, SymbolKind kind2)
192public static bool MatchesKind([NotNullWhen(true)] this ISymbol? symbol, SymbolKind kind1, SymbolKind kind2, SymbolKind kind3)
198public static bool MatchesKind([NotNullWhen(true)] this ISymbol? symbol, params SymbolKind[] kinds)
208=> symbol?.Kind == SymbolKind.Field && symbol.ContainingType.IsEnumType();
288SymbolKind.NamedType => ((INamedTypeSymbol)symbol).Arity,
289SymbolKind.Method => ((IMethodSymbol)symbol).Arity,
469=> symbol != null && symbol.Kind == SymbolKind.NamedType && symbol.IsStatic;
472=> symbol?.Kind == SymbolKind.Namespace;
529if (symbol.Kind != SymbolKind.Local)
715public static bool IsKind<TSymbol>(this ISymbol symbol, SymbolKind kind, [NotNullWhen(true)] out TSymbol? result) where TSymbol : class, ISymbol
SymbolEquivalenceComparer.EquivalenceVisitor.cs (26)
59var xKind = GetKindAndUnwrapAlias(ref x);
60var yKind = GetKindAndUnwrapAlias(ref y);
70return (xKind == SymbolKind.DynamicType && IsObjectType(y)) ||
71(yKind == SymbolKind.DynamicType && IsObjectType(x));
113private bool AreEquivalentWorker(ISymbol x, ISymbol y, SymbolKind k, Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies)
118SymbolKind.ArrayType => ArrayTypesAreEquivalent((IArrayTypeSymbol)x, (IArrayTypeSymbol)y, equivalentTypesWithDifferingAssemblies),
119SymbolKind.Assembly => AssembliesAreEquivalent((IAssemblySymbol)x, (IAssemblySymbol)y),
120SymbolKind.DynamicType => NullableAnnotationsEquivalent((IDynamicTypeSymbol)x, (IDynamicTypeSymbol)y),
121SymbolKind.Event => EventsAreEquivalent((IEventSymbol)x, (IEventSymbol)y, equivalentTypesWithDifferingAssemblies),
122SymbolKind.Field => FieldsAreEquivalent((IFieldSymbol)x, (IFieldSymbol)y, equivalentTypesWithDifferingAssemblies),
123SymbolKind.Label => LabelsAreEquivalent((ILabelSymbol)x, (ILabelSymbol)y),
124SymbolKind.Local => LocalsAreEquivalent((ILocalSymbol)x, (ILocalSymbol)y),
125SymbolKind.Method => MethodsAreEquivalent((IMethodSymbol)x, (IMethodSymbol)y, equivalentTypesWithDifferingAssemblies),
126SymbolKind.NetModule => ModulesAreEquivalent((IModuleSymbol)x, (IModuleSymbol)y),
127SymbolKind.NamedType => NamedTypesAreEquivalent((INamedTypeSymbol)x, (INamedTypeSymbol)y, equivalentTypesWithDifferingAssemblies),
128SymbolKind.ErrorType => NamedTypesAreEquivalent((INamedTypeSymbol)x, (INamedTypeSymbol)y, equivalentTypesWithDifferingAssemblies),
129SymbolKind.Namespace => NamespacesAreEquivalent((INamespaceSymbol)x, (INamespaceSymbol)y, equivalentTypesWithDifferingAssemblies),
130SymbolKind.Parameter => ParametersAreEquivalent((IParameterSymbol)x, (IParameterSymbol)y, equivalentTypesWithDifferingAssemblies),
131SymbolKind.PointerType => PointerTypesAreEquivalent((IPointerTypeSymbol)x, (IPointerTypeSymbol)y, equivalentTypesWithDifferingAssemblies),
132SymbolKind.Property => PropertiesAreEquivalent((IPropertySymbol)x, (IPropertySymbol)y, equivalentTypesWithDifferingAssemblies),
133SymbolKind.RangeVariable => RangeVariablesAreEquivalent((IRangeVariableSymbol)x, (IRangeVariableSymbol)y),
134SymbolKind.TypeParameter => TypeParametersAreEquivalent((ITypeParameterSymbol)x, (ITypeParameterSymbol)y, equivalentTypesWithDifferingAssemblies),
135SymbolKind.Preprocessing => PreprocessingSymbolsAreEquivalent((IPreprocessingSymbol)x, (IPreprocessingSymbol)y),
136SymbolKind.FunctionPointerType => FunctionPointerTypesAreEquivalent((IFunctionPointerTypeSymbol)x, (IFunctionPointerTypeSymbol)y, equivalentTypesWithDifferingAssemblies),
354if (x.Kind == SymbolKind.ErrorType &&
358Debug.Assert(y.Kind == SymbolKind.ErrorType);
SymbolEquivalenceComparer.GetHashCodeVisitor.cs (17)
47if (x.Kind == SymbolKind.DynamicType ||
62SymbolKind.ArrayType => CombineHashCodes((IArrayTypeSymbol)x, currentHash),
63SymbolKind.Assembly => CombineHashCodes((IAssemblySymbol)x, currentHash),
64SymbolKind.Event => CombineHashCodes((IEventSymbol)x, currentHash),
65SymbolKind.Field => CombineHashCodes((IFieldSymbol)x, currentHash),
66SymbolKind.Label => CombineHashCodes((ILabelSymbol)x, currentHash),
67SymbolKind.Local => CombineHashCodes((ILocalSymbol)x, currentHash),
68SymbolKind.Method => CombineHashCodes((IMethodSymbol)x, currentHash),
69SymbolKind.NetModule => CombineHashCodes((IModuleSymbol)x, currentHash),
70SymbolKind.NamedType => CombineHashCodes((INamedTypeSymbol)x, currentHash),
71SymbolKind.Namespace => CombineHashCodes((INamespaceSymbol)x, currentHash),
72SymbolKind.Parameter => CombineHashCodes((IParameterSymbol)x, currentHash),
73SymbolKind.PointerType => CombineHashCodes((IPointerTypeSymbol)x, currentHash),
74SymbolKind.Property => CombineHashCodes((IPropertySymbol)x, currentHash),
75SymbolKind.RangeVariable => CombineHashCodes((IRangeVariableSymbol)x, currentHash),
76SymbolKind.TypeParameter => CombineHashCodes((ITypeParameterSymbol)x, currentHash),
77SymbolKind.Preprocessing => CombineHashCodes((IPreprocessingSymbol)x, currentHash),
SymbolSpecification.cs (20)
74new SymbolKindOrTypeKind(SymbolKind.Namespace),
82new SymbolKindOrTypeKind(SymbolKind.Property),
85new SymbolKindOrTypeKind(SymbolKind.Field),
86new SymbolKindOrTypeKind(SymbolKind.Event),
87new SymbolKindOrTypeKind(SymbolKind.Parameter),
89new SymbolKindOrTypeKind(SymbolKind.Local)),
106public bool AppliesTo(SymbolKind symbolKind, Accessibility accessibility)
308foreach (var symbolKindElement in symbolKindListElement.Elements(nameof(SymbolKind)))
377public SymbolKindOrTypeKind(SymbolKind symbolKind)
392public SymbolKind? SymbolKind => (_category == SymbolCategory.Other) ? (SymbolKind)_kind : null;
399SymbolCategory.Other => symbol.IsKind((SymbolKind)_kind),
408SymbolCategory.Other => new XElement(nameof(SymbolKind), (SymbolKind)_kind),
460=> new((SymbolKind)Enum.Parse(typeof(SymbolKind), symbolKindElement.Value));
527var kind = symbol.Kind;
528if (Modifier.IsAsync && kind == SymbolKind.Method && ((IMethodSymbol)symbol).IsAsync)
535if (kind == SymbolKind.Field && ((IFieldSymbol)symbol).IsReadOnly)
543if ((kind == SymbolKind.Field && ((IFieldSymbol)symbol).IsConst) ||
544(kind == SymbolKind.Local && ((ILocalSymbol)symbol).IsConst))