5522 references to SymbolKind
Aspire.Hosting.Integration.Analyzers (1)
ConfigurationSchemaGenerator (4)
GenerateDocumentationAndConfigFiles (255)
src\roslyn\src\RoslynAnalyzers\Utilities\Compiler\Options\SymbolNamesWithValueOption.cs (24)
26internal const SymbolKind AllKinds = SymbolKind.ErrorType;
54private readonly ImmutableDictionary<SymbolKind, ImmutableDictionary<string, TValue>> _wildcardNamesBySymbolKind;
64ImmutableDictionary<SymbolKind, ImmutableDictionary<string, TValue>> wildcardNamesBySymbolKind)
77_wildcardNamesBySymbolKind = ImmutableDictionary<SymbolKind, ImmutableDictionary<string, TValue>>.Empty;
92var wildcardNamesBuilder = PooledDictionary<SymbolKind, PooledDictionary<string, TValue>>.GetInstance();
142static void ProcessWildcardName(NameParts parts, PooledDictionary<SymbolKind, PooledDictionary<string, TValue>> wildcardNamesBuilder)
161'E' => (SymbolKind?)SymbolKind.Event,
162'F' => SymbolKind.Field,
163'M' => SymbolKind.Method,
164'N' => SymbolKind.Namespace,
165'P' => SymbolKind.Property,
166'T' => SymbolKind.NamedType,
271case SymbolKind.Event:
272case SymbolKind.Field:
273case SymbolKind.Method:
274case SymbolKind.NamedType:
275case SymbolKind.Namespace:
276case SymbolKind.Property:
279case SymbolKind.Assembly:
280case SymbolKind.ErrorType:
281case SymbolKind.NetModule:
377internal ref readonly ImmutableDictionary<SymbolKind, ImmutableDictionary<string, TValue>> WildcardNamesBySymbolKind => ref _symbolNamesWithValueOption._wildcardNamesBySymbolKind;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\NamingStyles\Serialization\SymbolSpecification.cs (27)
61new SymbolKindOrTypeKind(SymbolKind.Namespace),
69new SymbolKindOrTypeKind(SymbolKind.Property),
72new SymbolKindOrTypeKind(SymbolKind.Field),
73new SymbolKindOrTypeKind(SymbolKind.Event),
74new SymbolKindOrTypeKind(SymbolKind.Parameter),
76new SymbolKindOrTypeKind(SymbolKind.Local),
96public bool AppliesTo(SymbolKind symbolKind, Accessibility accessibility)
159case SymbolKind.Namespace:
162case SymbolKind.Parameter:
163case SymbolKind.TypeParameter:
166case SymbolKind.Method:
288foreach (var symbolKindElement in symbolKindListElement.Elements(nameof(SymbolKind)))
339public SymbolKindOrTypeKind(SymbolKind symbolKind)
354public SymbolKind? SymbolKind => (_category == SymbolCategory.Other) ? (SymbolKind)_kind : null;
361SymbolCategory.Other => symbol.IsKind((SymbolKind)_kind),
370SymbolCategory.Other => new XElement(nameof(SymbolKind), (SymbolKind)_kind),
421var symbolKind = (SymbolKind)Enum.Parse(typeof(SymbolKind), symbolKindElement.Value);
427CodeAnalysis.SymbolKind.Method => new(CodeAnalysis.MethodKind.Ordinary),
438public static implicit operator SymbolKindOrTypeKind(SymbolKind symbolKind)
506var kind = symbol.Kind;
507if (Modifiers.HasFlag(Modifiers.Async) && kind == SymbolKind.Method && ((IMethodSymbol)symbol).IsAsync)
514if (kind == SymbolKind.Field && ((IFieldSymbol)symbol).IsReadOnly)
522if ((kind == SymbolKind.Field && ((IFieldSymbol)symbol).IsConst) ||
523(kind == SymbolKind.Local && ((ILocalSymbol)symbol).IsConst))
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\ISymbolExtensions.cs (25)
40case SymbolKind.Alias:
45case SymbolKind.Parameter:
49case SymbolKind.TypeParameter:
54while (symbol != null && symbol.Kind != SymbolKind.Namespace)
121if (symbol.Kind is SymbolKind.Event or SymbolKind.Property)
152if (symbol.Kind is not SymbolKind.Method and not SymbolKind.Property and not SymbolKind.Event)
189if (symbol.Kind == SymbolKind.Event)
194if (symbol.Kind == SymbolKind.Property)
235=> symbol is { Kind: SymbolKind.ArrayType };
243public static bool IsKind([NotNullWhen(true)] this ISymbol? symbol, SymbolKind kind)
246public static bool MatchesKind([NotNullWhen(true)] this ISymbol? symbol, SymbolKind kind)
249public static bool MatchesKind([NotNullWhen(true)] this ISymbol? symbol, SymbolKind kind1, SymbolKind kind2)
255public static bool MatchesKind([NotNullWhen(true)] this ISymbol? symbol, SymbolKind kind1, SymbolKind kind2, SymbolKind kind3)
261public static bool MatchesKind([NotNullWhen(true)] this ISymbol? symbol, params SymbolKind[] kinds)
271=> symbol is { Kind: SymbolKind.Field, ContainingType.TypeKind: TypeKind.Enum };
354SymbolKind.NamedType => ((INamedTypeSymbol)symbol).Arity,
355SymbolKind.Method => ((IMethodSymbol)symbol).Arity,
626if (symbol.Kind != SymbolKind.Local)
812public static bool IsKind<TSymbol>(this ISymbol symbol, SymbolKind kind, [NotNullWhen(true)] out TSymbol? result) where TSymbol : class, ISymbol
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\SymbolEquivalenceComparer.EquivalenceVisitor.cs (28)
30var xKind = GetKindAndUnwrapAlias(ref x);
31var yKind = GetKindAndUnwrapAlias(ref y);
40if ((xKind == SymbolKind.DynamicType && IsObjectType(y)) ||
41(yKind == SymbolKind.DynamicType && IsObjectType(x)))
49if (xKind == SymbolKind.ArrayType && y.IsReadOnlySpan())
53else if (x.IsReadOnlySpan() && yKind == SymbolKind.ArrayType)
112private bool AreEquivalentWorker(ISymbol x, ISymbol y, SymbolKind k, Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies)
117SymbolKind.ArrayType => ArrayTypesAreEquivalent((IArrayTypeSymbol)x, (IArrayTypeSymbol)y, equivalentTypesWithDifferingAssemblies),
118SymbolKind.Assembly => AssembliesAreEquivalent((IAssemblySymbol)x, (IAssemblySymbol)y),
119SymbolKind.DynamicType => NullableAnnotationsEquivalent((IDynamicTypeSymbol)x, (IDynamicTypeSymbol)y),
120SymbolKind.Event => EventsAreEquivalent((IEventSymbol)x, (IEventSymbol)y, equivalentTypesWithDifferingAssemblies),
121SymbolKind.Field => FieldsAreEquivalent((IFieldSymbol)x, (IFieldSymbol)y, equivalentTypesWithDifferingAssemblies),
122SymbolKind.Label => LabelsAreEquivalent((ILabelSymbol)x, (ILabelSymbol)y),
123SymbolKind.Local => LocalsAreEquivalent((ILocalSymbol)x, (ILocalSymbol)y),
124SymbolKind.Method => MethodsAreEquivalent((IMethodSymbol)x, (IMethodSymbol)y, equivalentTypesWithDifferingAssemblies),
125SymbolKind.NetModule => ModulesAreEquivalent((IModuleSymbol)x, (IModuleSymbol)y),
126SymbolKind.NamedType => NamedTypesAreEquivalent((INamedTypeSymbol)x, (INamedTypeSymbol)y, equivalentTypesWithDifferingAssemblies),
127SymbolKind.ErrorType => NamedTypesAreEquivalent((INamedTypeSymbol)x, (INamedTypeSymbol)y, equivalentTypesWithDifferingAssemblies),
128SymbolKind.Namespace => NamespacesAreEquivalent((INamespaceSymbol)x, (INamespaceSymbol)y, equivalentTypesWithDifferingAssemblies),
129SymbolKind.Parameter => ParametersAreEquivalent((IParameterSymbol)x, (IParameterSymbol)y, equivalentTypesWithDifferingAssemblies),
130SymbolKind.PointerType => PointerTypesAreEquivalent((IPointerTypeSymbol)x, (IPointerTypeSymbol)y, equivalentTypesWithDifferingAssemblies),
131SymbolKind.Property => PropertiesAreEquivalent((IPropertySymbol)x, (IPropertySymbol)y, equivalentTypesWithDifferingAssemblies),
132SymbolKind.RangeVariable => RangeVariablesAreEquivalent((IRangeVariableSymbol)x, (IRangeVariableSymbol)y),
133SymbolKind.TypeParameter => TypeParametersAreEquivalent((ITypeParameterSymbol)x, (ITypeParameterSymbol)y, equivalentTypesWithDifferingAssemblies),
134SymbolKind.Preprocessing => PreprocessingSymbolsAreEquivalent((IPreprocessingSymbol)x, (IPreprocessingSymbol)y),
135SymbolKind.FunctionPointerType => FunctionPointerTypesAreEquivalent((IFunctionPointerTypeSymbol)x, (IFunctionPointerTypeSymbol)y, equivalentTypesWithDifferingAssemblies),
367if (x.Kind == SymbolKind.ErrorType &&
371Debug.Assert(y.Kind == SymbolKind.ErrorType);
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\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),
ILLink.RoslynAnalyzer (25)
Microsoft.Analyzers.Extra (4)
Microsoft.Analyzers.Local (4)
Microsoft.AspNetCore.Analyzers (5)
Microsoft.AspNetCore.App.Analyzers (1)
Microsoft.AspNetCore.Components.Analyzers (6)
Microsoft.AspNetCore.Components.SdkAnalyzers (6)
Microsoft.AspNetCore.Mvc.Analyzers (4)
Microsoft.AspNetCore.Mvc.Api.Analyzers (1)
Microsoft.AspNetCore.OpenApi.SourceGenerators (8)
Microsoft.CodeAnalysis (136)
Microsoft.CodeAnalysis.Analyzers (323)
src\roslyn\src\RoslynAnalyzers\Utilities\Compiler\CodeMetrics\CodeAnalysisMetricData.cs (27)
36symbol.Kind is SymbolKind.Assembly or
37SymbolKind.Namespace or
38SymbolKind.NamedType or
39SymbolKind.Method or
40SymbolKind.Field or
41SymbolKind.Event or
42SymbolKind.Property);
43Debug.Assert(depthOfInheritance.HasValue == (symbol.Kind == SymbolKind.Assembly || symbol.Kind == SymbolKind.Namespace || symbol.Kind == SymbolKind.NamedType));
123case SymbolKind.Assembly:
127case SymbolKind.Namespace:
138case SymbolKind.NamedType:
267SymbolKind.Assembly => await AssemblyMetricData.ComputeAsync((IAssemblySymbol)symbol, context).ConfigureAwait(false),
269SymbolKind.Namespace => await NamespaceMetricData.ComputeAsync((INamespaceSymbol)symbol, context).ConfigureAwait(false),
271SymbolKind.NamedType => await NamedTypeMetricData.ComputeAsync((INamedTypeSymbol)symbol, context).ConfigureAwait(false),
273SymbolKind.Method => MethodMetricData.Compute((IMethodSymbol)symbol, context),
275SymbolKind.Property => PropertyMetricData.Compute((IPropertySymbol)symbol, context),
277SymbolKind.Field => FieldMetricData.Compute((IFieldSymbol)symbol, context),
279SymbolKind.Event => EventMetricData.Compute((IEventSymbol)symbol, context),
305SymbolKind.Assembly => AssemblyMetricData.ComputeSynchronously((IAssemblySymbol)symbol, context),
307SymbolKind.Namespace => NamespaceMetricData.ComputeSynchronously((INamespaceSymbol)symbol, context),
309SymbolKind.NamedType => NamedTypeMetricData.ComputeSynchronously((INamedTypeSymbol)symbol, context),
311SymbolKind.Method => MethodMetricData.Compute((IMethodSymbol)symbol, context),
313SymbolKind.Property => PropertyMetricData.Compute((IPropertySymbol)symbol, context),
315SymbolKind.Field => FieldMetricData.Compute((IFieldSymbol)symbol, context),
317SymbolKind.Event => EventMetricData.Compute((IEventSymbol)symbol, context),
src\roslyn\src\RoslynAnalyzers\Utilities\Compiler\Options\SymbolNamesWithValueOption.cs (24)
26internal const SymbolKind AllKinds = SymbolKind.ErrorType;
54private readonly ImmutableDictionary<SymbolKind, ImmutableDictionary<string, TValue>> _wildcardNamesBySymbolKind;
64ImmutableDictionary<SymbolKind, ImmutableDictionary<string, TValue>> wildcardNamesBySymbolKind)
77_wildcardNamesBySymbolKind = ImmutableDictionary<SymbolKind, ImmutableDictionary<string, TValue>>.Empty;
92var wildcardNamesBuilder = PooledDictionary<SymbolKind, PooledDictionary<string, TValue>>.GetInstance();
142static void ProcessWildcardName(NameParts parts, PooledDictionary<SymbolKind, PooledDictionary<string, TValue>> wildcardNamesBuilder)
161'E' => (SymbolKind?)SymbolKind.Event,
162'F' => SymbolKind.Field,
163'M' => SymbolKind.Method,
164'N' => SymbolKind.Namespace,
165'P' => SymbolKind.Property,
166'T' => SymbolKind.NamedType,
271case SymbolKind.Event:
272case SymbolKind.Field:
273case SymbolKind.Method:
274case SymbolKind.NamedType:
275case SymbolKind.Namespace:
276case SymbolKind.Property:
279case SymbolKind.Assembly:
280case SymbolKind.ErrorType:
281case SymbolKind.NetModule:
377internal ref readonly ImmutableDictionary<SymbolKind, ImmutableDictionary<string, TValue>> WildcardNamesBySymbolKind => ref _symbolNamesWithValueOption._wildcardNamesBySymbolKind;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\NamingStyles\Serialization\SymbolSpecification.cs (27)
61new SymbolKindOrTypeKind(SymbolKind.Namespace),
69new SymbolKindOrTypeKind(SymbolKind.Property),
72new SymbolKindOrTypeKind(SymbolKind.Field),
73new SymbolKindOrTypeKind(SymbolKind.Event),
74new SymbolKindOrTypeKind(SymbolKind.Parameter),
76new SymbolKindOrTypeKind(SymbolKind.Local),
96public bool AppliesTo(SymbolKind symbolKind, Accessibility accessibility)
159case SymbolKind.Namespace:
162case SymbolKind.Parameter:
163case SymbolKind.TypeParameter:
166case SymbolKind.Method:
288foreach (var symbolKindElement in symbolKindListElement.Elements(nameof(SymbolKind)))
339public SymbolKindOrTypeKind(SymbolKind symbolKind)
354public SymbolKind? SymbolKind => (_category == SymbolCategory.Other) ? (SymbolKind)_kind : null;
361SymbolCategory.Other => symbol.IsKind((SymbolKind)_kind),
370SymbolCategory.Other => new XElement(nameof(SymbolKind), (SymbolKind)_kind),
421var symbolKind = (SymbolKind)Enum.Parse(typeof(SymbolKind), symbolKindElement.Value);
427CodeAnalysis.SymbolKind.Method => new(CodeAnalysis.MethodKind.Ordinary),
438public static implicit operator SymbolKindOrTypeKind(SymbolKind symbolKind)
506var kind = symbol.Kind;
507if (Modifiers.HasFlag(Modifiers.Async) && kind == SymbolKind.Method && ((IMethodSymbol)symbol).IsAsync)
514if (kind == SymbolKind.Field && ((IFieldSymbol)symbol).IsReadOnly)
522if ((kind == SymbolKind.Field && ((IFieldSymbol)symbol).IsConst) ||
523(kind == SymbolKind.Local && ((ILocalSymbol)symbol).IsConst))
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\ISymbolExtensions.cs (25)
40case SymbolKind.Alias:
45case SymbolKind.Parameter:
49case SymbolKind.TypeParameter:
54while (symbol != null && symbol.Kind != SymbolKind.Namespace)
121if (symbol.Kind is SymbolKind.Event or SymbolKind.Property)
152if (symbol.Kind is not SymbolKind.Method and not SymbolKind.Property and not SymbolKind.Event)
189if (symbol.Kind == SymbolKind.Event)
194if (symbol.Kind == SymbolKind.Property)
235=> symbol is { Kind: SymbolKind.ArrayType };
243public static bool IsKind([NotNullWhen(true)] this ISymbol? symbol, SymbolKind kind)
246public static bool MatchesKind([NotNullWhen(true)] this ISymbol? symbol, SymbolKind kind)
249public static bool MatchesKind([NotNullWhen(true)] this ISymbol? symbol, SymbolKind kind1, SymbolKind kind2)
255public static bool MatchesKind([NotNullWhen(true)] this ISymbol? symbol, SymbolKind kind1, SymbolKind kind2, SymbolKind kind3)
261public static bool MatchesKind([NotNullWhen(true)] this ISymbol? symbol, params SymbolKind[] kinds)
271=> symbol is { Kind: SymbolKind.Field, ContainingType.TypeKind: TypeKind.Enum };
354SymbolKind.NamedType => ((INamedTypeSymbol)symbol).Arity,
355SymbolKind.Method => ((IMethodSymbol)symbol).Arity,
626if (symbol.Kind != SymbolKind.Local)
812public static bool IsKind<TSymbol>(this ISymbol symbol, SymbolKind kind, [NotNullWhen(true)] out TSymbol? result) where TSymbol : class, ISymbol
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\SymbolEquivalenceComparer.EquivalenceVisitor.cs (28)
30var xKind = GetKindAndUnwrapAlias(ref x);
31var yKind = GetKindAndUnwrapAlias(ref y);
40if ((xKind == SymbolKind.DynamicType && IsObjectType(y)) ||
41(yKind == SymbolKind.DynamicType && IsObjectType(x)))
49if (xKind == SymbolKind.ArrayType && y.IsReadOnlySpan())
53else if (x.IsReadOnlySpan() && yKind == SymbolKind.ArrayType)
112private bool AreEquivalentWorker(ISymbol x, ISymbol y, SymbolKind k, Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies)
117SymbolKind.ArrayType => ArrayTypesAreEquivalent((IArrayTypeSymbol)x, (IArrayTypeSymbol)y, equivalentTypesWithDifferingAssemblies),
118SymbolKind.Assembly => AssembliesAreEquivalent((IAssemblySymbol)x, (IAssemblySymbol)y),
119SymbolKind.DynamicType => NullableAnnotationsEquivalent((IDynamicTypeSymbol)x, (IDynamicTypeSymbol)y),
120SymbolKind.Event => EventsAreEquivalent((IEventSymbol)x, (IEventSymbol)y, equivalentTypesWithDifferingAssemblies),
121SymbolKind.Field => FieldsAreEquivalent((IFieldSymbol)x, (IFieldSymbol)y, equivalentTypesWithDifferingAssemblies),
122SymbolKind.Label => LabelsAreEquivalent((ILabelSymbol)x, (ILabelSymbol)y),
123SymbolKind.Local => LocalsAreEquivalent((ILocalSymbol)x, (ILocalSymbol)y),
124SymbolKind.Method => MethodsAreEquivalent((IMethodSymbol)x, (IMethodSymbol)y, equivalentTypesWithDifferingAssemblies),
125SymbolKind.NetModule => ModulesAreEquivalent((IModuleSymbol)x, (IModuleSymbol)y),
126SymbolKind.NamedType => NamedTypesAreEquivalent((INamedTypeSymbol)x, (INamedTypeSymbol)y, equivalentTypesWithDifferingAssemblies),
127SymbolKind.ErrorType => NamedTypesAreEquivalent((INamedTypeSymbol)x, (INamedTypeSymbol)y, equivalentTypesWithDifferingAssemblies),
128SymbolKind.Namespace => NamespacesAreEquivalent((INamespaceSymbol)x, (INamespaceSymbol)y, equivalentTypesWithDifferingAssemblies),
129SymbolKind.Parameter => ParametersAreEquivalent((IParameterSymbol)x, (IParameterSymbol)y, equivalentTypesWithDifferingAssemblies),
130SymbolKind.PointerType => PointerTypesAreEquivalent((IPointerTypeSymbol)x, (IPointerTypeSymbol)y, equivalentTypesWithDifferingAssemblies),
131SymbolKind.Property => PropertiesAreEquivalent((IPropertySymbol)x, (IPropertySymbol)y, equivalentTypesWithDifferingAssemblies),
132SymbolKind.RangeVariable => RangeVariablesAreEquivalent((IRangeVariableSymbol)x, (IRangeVariableSymbol)y),
133SymbolKind.TypeParameter => TypeParametersAreEquivalent((ITypeParameterSymbol)x, (ITypeParameterSymbol)y, equivalentTypesWithDifferingAssemblies),
134SymbolKind.Preprocessing => PreprocessingSymbolsAreEquivalent((IPreprocessingSymbol)x, (IPreprocessingSymbol)y),
135SymbolKind.FunctionPointerType => FunctionPointerTypesAreEquivalent((IFunctionPointerTypeSymbol)x, (IFunctionPointerTypeSymbol)y, equivalentTypesWithDifferingAssemblies),
367if (x.Kind == SymbolKind.ErrorType &&
371Debug.Assert(y.Kind == SymbolKind.ErrorType);
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\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),
Microsoft.CodeAnalysis.AnalyzerUtilities (280)
src\roslyn\src\RoslynAnalyzers\Utilities\Compiler\CodeMetrics\CodeAnalysisMetricData.cs (27)
36symbol.Kind is SymbolKind.Assembly or
37SymbolKind.Namespace or
38SymbolKind.NamedType or
39SymbolKind.Method or
40SymbolKind.Field or
41SymbolKind.Event or
42SymbolKind.Property);
43Debug.Assert(depthOfInheritance.HasValue == (symbol.Kind == SymbolKind.Assembly || symbol.Kind == SymbolKind.Namespace || symbol.Kind == SymbolKind.NamedType));
123case SymbolKind.Assembly:
127case SymbolKind.Namespace:
138case SymbolKind.NamedType:
267SymbolKind.Assembly => await AssemblyMetricData.ComputeAsync((IAssemblySymbol)symbol, context).ConfigureAwait(false),
269SymbolKind.Namespace => await NamespaceMetricData.ComputeAsync((INamespaceSymbol)symbol, context).ConfigureAwait(false),
271SymbolKind.NamedType => await NamedTypeMetricData.ComputeAsync((INamedTypeSymbol)symbol, context).ConfigureAwait(false),
273SymbolKind.Method => MethodMetricData.Compute((IMethodSymbol)symbol, context),
275SymbolKind.Property => PropertyMetricData.Compute((IPropertySymbol)symbol, context),
277SymbolKind.Field => FieldMetricData.Compute((IFieldSymbol)symbol, context),
279SymbolKind.Event => EventMetricData.Compute((IEventSymbol)symbol, context),
305SymbolKind.Assembly => AssemblyMetricData.ComputeSynchronously((IAssemblySymbol)symbol, context),
307SymbolKind.Namespace => NamespaceMetricData.ComputeSynchronously((INamespaceSymbol)symbol, context),
309SymbolKind.NamedType => NamedTypeMetricData.ComputeSynchronously((INamedTypeSymbol)symbol, context),
311SymbolKind.Method => MethodMetricData.Compute((IMethodSymbol)symbol, context),
313SymbolKind.Property => PropertyMetricData.Compute((IPropertySymbol)symbol, context),
315SymbolKind.Field => FieldMetricData.Compute((IFieldSymbol)symbol, context),
317SymbolKind.Event => EventMetricData.Compute((IEventSymbol)symbol, context),
src\roslyn\src\RoslynAnalyzers\Utilities\Compiler\Options\SymbolNamesWithValueOption.cs (24)
26internal const SymbolKind AllKinds = SymbolKind.ErrorType;
54private readonly ImmutableDictionary<SymbolKind, ImmutableDictionary<string, TValue>> _wildcardNamesBySymbolKind;
64ImmutableDictionary<SymbolKind, ImmutableDictionary<string, TValue>> wildcardNamesBySymbolKind)
77_wildcardNamesBySymbolKind = ImmutableDictionary<SymbolKind, ImmutableDictionary<string, TValue>>.Empty;
92var wildcardNamesBuilder = PooledDictionary<SymbolKind, PooledDictionary<string, TValue>>.GetInstance();
142static void ProcessWildcardName(NameParts parts, PooledDictionary<SymbolKind, PooledDictionary<string, TValue>> wildcardNamesBuilder)
161'E' => (SymbolKind?)SymbolKind.Event,
162'F' => SymbolKind.Field,
163'M' => SymbolKind.Method,
164'N' => SymbolKind.Namespace,
165'P' => SymbolKind.Property,
166'T' => SymbolKind.NamedType,
271case SymbolKind.Event:
272case SymbolKind.Field:
273case SymbolKind.Method:
274case SymbolKind.NamedType:
275case SymbolKind.Namespace:
276case SymbolKind.Property:
279case SymbolKind.Assembly:
280case SymbolKind.ErrorType:
281case SymbolKind.NetModule:
377internal ref readonly ImmutableDictionary<SymbolKind, ImmutableDictionary<string, TValue>> WildcardNamesBySymbolKind => ref _symbolNamesWithValueOption._wildcardNamesBySymbolKind;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\NamingStyles\Serialization\SymbolSpecification.cs (27)
61new SymbolKindOrTypeKind(SymbolKind.Namespace),
69new SymbolKindOrTypeKind(SymbolKind.Property),
72new SymbolKindOrTypeKind(SymbolKind.Field),
73new SymbolKindOrTypeKind(SymbolKind.Event),
74new SymbolKindOrTypeKind(SymbolKind.Parameter),
76new SymbolKindOrTypeKind(SymbolKind.Local),
96public bool AppliesTo(SymbolKind symbolKind, Accessibility accessibility)
159case SymbolKind.Namespace:
162case SymbolKind.Parameter:
163case SymbolKind.TypeParameter:
166case SymbolKind.Method:
288foreach (var symbolKindElement in symbolKindListElement.Elements(nameof(SymbolKind)))
339public SymbolKindOrTypeKind(SymbolKind symbolKind)
354public SymbolKind? SymbolKind => (_category == SymbolCategory.Other) ? (SymbolKind)_kind : null;
361SymbolCategory.Other => symbol.IsKind((SymbolKind)_kind),
370SymbolCategory.Other => new XElement(nameof(SymbolKind), (SymbolKind)_kind),
421var symbolKind = (SymbolKind)Enum.Parse(typeof(SymbolKind), symbolKindElement.Value);
427CodeAnalysis.SymbolKind.Method => new(CodeAnalysis.MethodKind.Ordinary),
438public static implicit operator SymbolKindOrTypeKind(SymbolKind symbolKind)
506var kind = symbol.Kind;
507if (Modifiers.HasFlag(Modifiers.Async) && kind == SymbolKind.Method && ((IMethodSymbol)symbol).IsAsync)
514if (kind == SymbolKind.Field && ((IFieldSymbol)symbol).IsReadOnly)
522if ((kind == SymbolKind.Field && ((IFieldSymbol)symbol).IsConst) ||
523(kind == SymbolKind.Local && ((ILocalSymbol)symbol).IsConst))
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\ISymbolExtensions.cs (25)
40case SymbolKind.Alias:
45case SymbolKind.Parameter:
49case SymbolKind.TypeParameter:
54while (symbol != null && symbol.Kind != SymbolKind.Namespace)
121if (symbol.Kind is SymbolKind.Event or SymbolKind.Property)
152if (symbol.Kind is not SymbolKind.Method and not SymbolKind.Property and not SymbolKind.Event)
189if (symbol.Kind == SymbolKind.Event)
194if (symbol.Kind == SymbolKind.Property)
235=> symbol is { Kind: SymbolKind.ArrayType };
243public static bool IsKind([NotNullWhen(true)] this ISymbol? symbol, SymbolKind kind)
246public static bool MatchesKind([NotNullWhen(true)] this ISymbol? symbol, SymbolKind kind)
249public static bool MatchesKind([NotNullWhen(true)] this ISymbol? symbol, SymbolKind kind1, SymbolKind kind2)
255public static bool MatchesKind([NotNullWhen(true)] this ISymbol? symbol, SymbolKind kind1, SymbolKind kind2, SymbolKind kind3)
261public static bool MatchesKind([NotNullWhen(true)] this ISymbol? symbol, params SymbolKind[] kinds)
271=> symbol is { Kind: SymbolKind.Field, ContainingType.TypeKind: TypeKind.Enum };
354SymbolKind.NamedType => ((INamedTypeSymbol)symbol).Arity,
355SymbolKind.Method => ((IMethodSymbol)symbol).Arity,
626if (symbol.Kind != SymbolKind.Local)
812public static bool IsKind<TSymbol>(this ISymbol symbol, SymbolKind kind, [NotNullWhen(true)] out TSymbol? result) where TSymbol : class, ISymbol
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\SymbolEquivalenceComparer.EquivalenceVisitor.cs (28)
30var xKind = GetKindAndUnwrapAlias(ref x);
31var yKind = GetKindAndUnwrapAlias(ref y);
40if ((xKind == SymbolKind.DynamicType && IsObjectType(y)) ||
41(yKind == SymbolKind.DynamicType && IsObjectType(x)))
49if (xKind == SymbolKind.ArrayType && y.IsReadOnlySpan())
53else if (x.IsReadOnlySpan() && yKind == SymbolKind.ArrayType)
112private bool AreEquivalentWorker(ISymbol x, ISymbol y, SymbolKind k, Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies)
117SymbolKind.ArrayType => ArrayTypesAreEquivalent((IArrayTypeSymbol)x, (IArrayTypeSymbol)y, equivalentTypesWithDifferingAssemblies),
118SymbolKind.Assembly => AssembliesAreEquivalent((IAssemblySymbol)x, (IAssemblySymbol)y),
119SymbolKind.DynamicType => NullableAnnotationsEquivalent((IDynamicTypeSymbol)x, (IDynamicTypeSymbol)y),
120SymbolKind.Event => EventsAreEquivalent((IEventSymbol)x, (IEventSymbol)y, equivalentTypesWithDifferingAssemblies),
121SymbolKind.Field => FieldsAreEquivalent((IFieldSymbol)x, (IFieldSymbol)y, equivalentTypesWithDifferingAssemblies),
122SymbolKind.Label => LabelsAreEquivalent((ILabelSymbol)x, (ILabelSymbol)y),
123SymbolKind.Local => LocalsAreEquivalent((ILocalSymbol)x, (ILocalSymbol)y),
124SymbolKind.Method => MethodsAreEquivalent((IMethodSymbol)x, (IMethodSymbol)y, equivalentTypesWithDifferingAssemblies),
125SymbolKind.NetModule => ModulesAreEquivalent((IModuleSymbol)x, (IModuleSymbol)y),
126SymbolKind.NamedType => NamedTypesAreEquivalent((INamedTypeSymbol)x, (INamedTypeSymbol)y, equivalentTypesWithDifferingAssemblies),
127SymbolKind.ErrorType => NamedTypesAreEquivalent((INamedTypeSymbol)x, (INamedTypeSymbol)y, equivalentTypesWithDifferingAssemblies),
128SymbolKind.Namespace => NamespacesAreEquivalent((INamespaceSymbol)x, (INamespaceSymbol)y, equivalentTypesWithDifferingAssemblies),
129SymbolKind.Parameter => ParametersAreEquivalent((IParameterSymbol)x, (IParameterSymbol)y, equivalentTypesWithDifferingAssemblies),
130SymbolKind.PointerType => PointerTypesAreEquivalent((IPointerTypeSymbol)x, (IPointerTypeSymbol)y, equivalentTypesWithDifferingAssemblies),
131SymbolKind.Property => PropertiesAreEquivalent((IPropertySymbol)x, (IPropertySymbol)y, equivalentTypesWithDifferingAssemblies),
132SymbolKind.RangeVariable => RangeVariablesAreEquivalent((IRangeVariableSymbol)x, (IRangeVariableSymbol)y),
133SymbolKind.TypeParameter => TypeParametersAreEquivalent((ITypeParameterSymbol)x, (ITypeParameterSymbol)y, equivalentTypesWithDifferingAssemblies),
134SymbolKind.Preprocessing => PreprocessingSymbolsAreEquivalent((IPreprocessingSymbol)x, (IPreprocessingSymbol)y),
135SymbolKind.FunctionPointerType => FunctionPointerTypesAreEquivalent((IFunctionPointerTypeSymbol)x, (IFunctionPointerTypeSymbol)y, equivalentTypesWithDifferingAssemblies),
367if (x.Kind == SymbolKind.ErrorType &&
371Debug.Assert(y.Kind == SymbolKind.ErrorType);
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\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),
Microsoft.CodeAnalysis.CodeStyle (221)
src\roslyn\src\Analyzers\Core\Analyzers\RemoveUnusedParametersAndValues\AbstractRemoveUnusedParametersAndValuesDiagnosticAnalyzer.SymbolStartAnalyzer.cs (1)
71}, SymbolKind.NamedType);
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\NamingStyles\Serialization\SymbolSpecification.cs (27)
61new SymbolKindOrTypeKind(SymbolKind.Namespace),
69new SymbolKindOrTypeKind(SymbolKind.Property),
72new SymbolKindOrTypeKind(SymbolKind.Field),
73new SymbolKindOrTypeKind(SymbolKind.Event),
74new SymbolKindOrTypeKind(SymbolKind.Parameter),
76new SymbolKindOrTypeKind(SymbolKind.Local),
96public bool AppliesTo(SymbolKind symbolKind, Accessibility accessibility)
159case SymbolKind.Namespace:
162case SymbolKind.Parameter:
163case SymbolKind.TypeParameter:
166case SymbolKind.Method:
288foreach (var symbolKindElement in symbolKindListElement.Elements(nameof(SymbolKind)))
339public SymbolKindOrTypeKind(SymbolKind symbolKind)
354public SymbolKind? SymbolKind => (_category == SymbolCategory.Other) ? (SymbolKind)_kind : null;
361SymbolCategory.Other => symbol.IsKind((SymbolKind)_kind),
370SymbolCategory.Other => new XElement(nameof(SymbolKind), (SymbolKind)_kind),
421var symbolKind = (SymbolKind)Enum.Parse(typeof(SymbolKind), symbolKindElement.Value);
427CodeAnalysis.SymbolKind.Method => new(CodeAnalysis.MethodKind.Ordinary),
438public static implicit operator SymbolKindOrTypeKind(SymbolKind symbolKind)
506var kind = symbol.Kind;
507if (Modifiers.HasFlag(Modifiers.Async) && kind == SymbolKind.Method && ((IMethodSymbol)symbol).IsAsync)
514if (kind == SymbolKind.Field && ((IFieldSymbol)symbol).IsReadOnly)
522if ((kind == SymbolKind.Field && ((IFieldSymbol)symbol).IsConst) ||
523(kind == SymbolKind.Local && ((ILocalSymbol)symbol).IsConst))
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\ISymbolExtensions.cs (25)
40case SymbolKind.Alias:
45case SymbolKind.Parameter:
49case SymbolKind.TypeParameter:
54while (symbol != null && symbol.Kind != SymbolKind.Namespace)
121if (symbol.Kind is SymbolKind.Event or SymbolKind.Property)
152if (symbol.Kind is not SymbolKind.Method and not SymbolKind.Property and not SymbolKind.Event)
189if (symbol.Kind == SymbolKind.Event)
194if (symbol.Kind == SymbolKind.Property)
235=> symbol is { Kind: SymbolKind.ArrayType };
243public static bool IsKind([NotNullWhen(true)] this ISymbol? symbol, SymbolKind kind)
246public static bool MatchesKind([NotNullWhen(true)] this ISymbol? symbol, SymbolKind kind)
249public static bool MatchesKind([NotNullWhen(true)] this ISymbol? symbol, SymbolKind kind1, SymbolKind kind2)
255public static bool MatchesKind([NotNullWhen(true)] this ISymbol? symbol, SymbolKind kind1, SymbolKind kind2, SymbolKind kind3)
261public static bool MatchesKind([NotNullWhen(true)] this ISymbol? symbol, params SymbolKind[] kinds)
271=> symbol is { Kind: SymbolKind.Field, ContainingType.TypeKind: TypeKind.Enum };
354SymbolKind.NamedType => ((INamedTypeSymbol)symbol).Arity,
355SymbolKind.Method => ((IMethodSymbol)symbol).Arity,
626if (symbol.Kind != SymbolKind.Local)
812public static bool IsKind<TSymbol>(this ISymbol symbol, SymbolKind kind, [NotNullWhen(true)] out TSymbol? result) where TSymbol : class, ISymbol
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\SymbolEquivalenceComparer.EquivalenceVisitor.cs (28)
30var xKind = GetKindAndUnwrapAlias(ref x);
31var yKind = GetKindAndUnwrapAlias(ref y);
40if ((xKind == SymbolKind.DynamicType && IsObjectType(y)) ||
41(yKind == SymbolKind.DynamicType && IsObjectType(x)))
49if (xKind == SymbolKind.ArrayType && y.IsReadOnlySpan())
53else if (x.IsReadOnlySpan() && yKind == SymbolKind.ArrayType)
112private bool AreEquivalentWorker(ISymbol x, ISymbol y, SymbolKind k, Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies)
117SymbolKind.ArrayType => ArrayTypesAreEquivalent((IArrayTypeSymbol)x, (IArrayTypeSymbol)y, equivalentTypesWithDifferingAssemblies),
118SymbolKind.Assembly => AssembliesAreEquivalent((IAssemblySymbol)x, (IAssemblySymbol)y),
119SymbolKind.DynamicType => NullableAnnotationsEquivalent((IDynamicTypeSymbol)x, (IDynamicTypeSymbol)y),
120SymbolKind.Event => EventsAreEquivalent((IEventSymbol)x, (IEventSymbol)y, equivalentTypesWithDifferingAssemblies),
121SymbolKind.Field => FieldsAreEquivalent((IFieldSymbol)x, (IFieldSymbol)y, equivalentTypesWithDifferingAssemblies),
122SymbolKind.Label => LabelsAreEquivalent((ILabelSymbol)x, (ILabelSymbol)y),
123SymbolKind.Local => LocalsAreEquivalent((ILocalSymbol)x, (ILocalSymbol)y),
124SymbolKind.Method => MethodsAreEquivalent((IMethodSymbol)x, (IMethodSymbol)y, equivalentTypesWithDifferingAssemblies),
125SymbolKind.NetModule => ModulesAreEquivalent((IModuleSymbol)x, (IModuleSymbol)y),
126SymbolKind.NamedType => NamedTypesAreEquivalent((INamedTypeSymbol)x, (INamedTypeSymbol)y, equivalentTypesWithDifferingAssemblies),
127SymbolKind.ErrorType => NamedTypesAreEquivalent((INamedTypeSymbol)x, (INamedTypeSymbol)y, equivalentTypesWithDifferingAssemblies),
128SymbolKind.Namespace => NamespacesAreEquivalent((INamespaceSymbol)x, (INamespaceSymbol)y, equivalentTypesWithDifferingAssemblies),
129SymbolKind.Parameter => ParametersAreEquivalent((IParameterSymbol)x, (IParameterSymbol)y, equivalentTypesWithDifferingAssemblies),
130SymbolKind.PointerType => PointerTypesAreEquivalent((IPointerTypeSymbol)x, (IPointerTypeSymbol)y, equivalentTypesWithDifferingAssemblies),
131SymbolKind.Property => PropertiesAreEquivalent((IPropertySymbol)x, (IPropertySymbol)y, equivalentTypesWithDifferingAssemblies),
132SymbolKind.RangeVariable => RangeVariablesAreEquivalent((IRangeVariableSymbol)x, (IRangeVariableSymbol)y),
133SymbolKind.TypeParameter => TypeParametersAreEquivalent((ITypeParameterSymbol)x, (ITypeParameterSymbol)y, equivalentTypesWithDifferingAssemblies),
134SymbolKind.Preprocessing => PreprocessingSymbolsAreEquivalent((IPreprocessingSymbol)x, (IPreprocessingSymbol)y),
135SymbolKind.FunctionPointerType => FunctionPointerTypesAreEquivalent((IFunctionPointerTypeSymbol)x, (IFunctionPointerTypeSymbol)y, equivalentTypesWithDifferingAssemblies),
367if (x.Kind == SymbolKind.ErrorType &&
371Debug.Assert(y.Kind == SymbolKind.ErrorType);
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\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),
Microsoft.CodeAnalysis.CodeStyle.Fixes (67)
src\roslyn\src\Analyzers\Core\CodeFixes\GenerateVariable\AbstractGenerateVariableService.cs (4)
103document.Document, state, SymbolKind.Property, state.DetermineMaximalAccessibility(), cancellationToken).ConfigureAwait(false))
119Document document, State state, SymbolKind kind, Accessibility accessibility, CancellationToken cancellationToken)
185document, state, SymbolKind.Local, Accessibility.NotApplicable, cancellationToken).ConfigureAwait(false))
201document, state, SymbolKind.Parameter, Accessibility.NotApplicable, cancellationToken).ConfigureAwait(false))
Microsoft.CodeAnalysis.CSharp (1285)
Binder\BinderFactory.BinderFactoryVisitor.cs (11)
521return (SourceMemberMethodSymbol)GetMemberSymbol(methodName, baseMethodDeclarationSyntax.FullSpan, container, SymbolKind.Method);
540return (SourcePropertySymbol)GetMemberSymbol(propertyName, basePropertyDeclarationSyntax.Span, container, SymbolKind.Property);
557return (SourceEventSymbol)GetMemberSymbol(eventName, eventDeclarationSyntax.Span, container, SymbolKind.Event);
560private Symbol GetMemberSymbol(string memberName, TextSpan memberSpan, NamedTypeSymbol container, SymbolKind kind)
562Debug.Assert(kind is SymbolKind.Method or SymbolKind.Property or SymbolKind.Event);
592bool checkSymbol(Symbol sym, TextSpan memberSpan, SymbolKind kind, out Symbol result)
601if (kind is SymbolKind.Method or SymbolKind.Property or SymbolKind.Event)
Microsoft.CodeAnalysis.CSharp.CodeStyle (20)
src\roslyn\src\Analyzers\CSharp\Analyzers\MakeStructFieldsWritable\CSharpMakeStructFieldsWritableDiagnosticAnalyzer.cs (1)
69}, SymbolKind.NamedType);
src\roslyn\src\Analyzers\CSharp\Analyzers\MakeStructMemberReadOnly\CSharpMakeStructMemberReadOnlyAnalyzer.cs (1)
51}, SymbolKind.NamedType);
src\roslyn\src\Analyzers\CSharp\Analyzers\MakeStructReadOnly\CSharpMakeStructReadOnlyDiagnosticAnalyzer.cs (1)
67}, SymbolKind.NamedType);
Microsoft.CodeAnalysis.CSharp.CodeStyle.Fixes (22)
Microsoft.CodeAnalysis.CSharp.Features (80)
Completion\CompletionProviders\DeclarationName\DeclarationNameInfo.cs (30)
30[new SymbolKindOrTypeKind(SymbolKind.Parameter)];
33[new SymbolKindOrTypeKind(SymbolKind.Property)];
107_ => [new SymbolKindOrTypeKind(SymbolKind.Local)], cancellationToken);
129_ => [new SymbolKindOrTypeKind(SymbolKind.Local)], cancellationToken);
144[new SymbolKindOrTypeKind(SymbolKind.Local)],
155[new SymbolKindOrTypeKind(SymbolKind.Local)],
222[new SymbolKindOrTypeKind(SymbolKind.Local)],
243_ => [new SymbolKindOrTypeKind(SymbolKind.Local), new SymbolKindOrTypeKind(MethodKind.LocalFunction)],
426(_ => [new SymbolKindOrTypeKind(SymbolKind.Local)])
473possibleDeclarationComputer: d => [new SymbolKindOrTypeKind(SymbolKind.Local)],
489possibleDeclarationComputer: d => [new SymbolKindOrTypeKind(SymbolKind.Local)],
500[new SymbolKindOrTypeKind(SymbolKind.TypeParameter)],
600return [new SymbolKindOrTypeKind(SymbolKind.Field)];
604new SymbolKindOrTypeKind(SymbolKind.Field),
605new SymbolKindOrTypeKind(SymbolKind.Property),
610possibleTypes = possibleTypes.Remove(new SymbolKindOrTypeKind(SymbolKind.Field));
616possibleTypes = possibleTypes.Remove(new SymbolKindOrTypeKind(SymbolKind.Field));
617possibleTypes = possibleTypes.Remove(new SymbolKindOrTypeKind(SymbolKind.Property));
627? [new SymbolKindOrTypeKind(SymbolKind.Local)] :
630[new SymbolKindOrTypeKind(SymbolKind.Local), new SymbolKindOrTypeKind(MethodKind.LocalFunction)];
716public static Glyph GetGlyph(SymbolKind kind, Accessibility? declaredAccessibility)
720SymbolKind.Field => Glyph.FieldPublic,
721SymbolKind.Local => Glyph.Local,
722SymbolKind.Method => Glyph.MethodPublic,
723SymbolKind.Parameter => Glyph.Parameter,
724SymbolKind.Property => Glyph.PropertyPublic,
725SymbolKind.RangeVariable => Glyph.RangeVariable,
726SymbolKind.TypeParameter => Glyph.TypeParameter,
750public static SymbolKind GetSymbolKind(SymbolKindOrTypeKind symbolKindOrTypeKind)
755(symbolKindOrTypeKind.MethodKind.HasValue ? SymbolKind.Method : throw ExceptionUtilities.Unreachable());
src\roslyn\src\Analyzers\CSharp\Analyzers\MakeStructFieldsWritable\CSharpMakeStructFieldsWritableDiagnosticAnalyzer.cs (1)
69}, SymbolKind.NamedType);
src\roslyn\src\Analyzers\CSharp\Analyzers\MakeStructMemberReadOnly\CSharpMakeStructMemberReadOnlyAnalyzer.cs (1)
51}, SymbolKind.NamedType);
src\roslyn\src\Analyzers\CSharp\Analyzers\MakeStructReadOnly\CSharpMakeStructReadOnlyDiagnosticAnalyzer.cs (1)
67}, SymbolKind.NamedType);
Microsoft.CodeAnalysis.CSharp.NetAnalyzers (3)
Microsoft.CodeAnalysis.CSharp.Workspaces (58)
Microsoft.CodeAnalysis.Extensions.Package (112)
Symbols\ISymbolExtensions.cs (25)
40case SymbolKind.Alias:
45case SymbolKind.Parameter:
49case SymbolKind.TypeParameter:
54while (symbol != null && symbol.Kind != SymbolKind.Namespace)
121if (symbol.Kind is SymbolKind.Event or SymbolKind.Property)
152if (symbol.Kind is not SymbolKind.Method and not SymbolKind.Property and not SymbolKind.Event)
189if (symbol.Kind == SymbolKind.Event)
194if (symbol.Kind == SymbolKind.Property)
235=> symbol is { Kind: SymbolKind.ArrayType };
243public static bool IsKind([NotNullWhen(true)] this ISymbol? symbol, SymbolKind kind)
246public static bool MatchesKind([NotNullWhen(true)] this ISymbol? symbol, SymbolKind kind)
249public static bool MatchesKind([NotNullWhen(true)] this ISymbol? symbol, SymbolKind kind1, SymbolKind kind2)
255public static bool MatchesKind([NotNullWhen(true)] this ISymbol? symbol, SymbolKind kind1, SymbolKind kind2, SymbolKind kind3)
261public static bool MatchesKind([NotNullWhen(true)] this ISymbol? symbol, params SymbolKind[] kinds)
271=> symbol is { Kind: SymbolKind.Field, ContainingType.TypeKind: TypeKind.Enum };
354SymbolKind.NamedType => ((INamedTypeSymbol)symbol).Arity,
355SymbolKind.Method => ((IMethodSymbol)symbol).Arity,
626if (symbol.Kind != SymbolKind.Local)
812public static bool IsKind<TSymbol>(this ISymbol symbol, SymbolKind kind, [NotNullWhen(true)] out TSymbol? result) where TSymbol : class, ISymbol
Symbols\SymbolEquivalenceComparer.EquivalenceVisitor.cs (28)
30var xKind = GetKindAndUnwrapAlias(ref x);
31var yKind = GetKindAndUnwrapAlias(ref y);
40if ((xKind == SymbolKind.DynamicType && IsObjectType(y)) ||
41(yKind == SymbolKind.DynamicType && IsObjectType(x)))
49if (xKind == SymbolKind.ArrayType && y.IsReadOnlySpan())
53else if (x.IsReadOnlySpan() && yKind == SymbolKind.ArrayType)
112private bool AreEquivalentWorker(ISymbol x, ISymbol y, SymbolKind k, Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies)
117SymbolKind.ArrayType => ArrayTypesAreEquivalent((IArrayTypeSymbol)x, (IArrayTypeSymbol)y, equivalentTypesWithDifferingAssemblies),
118SymbolKind.Assembly => AssembliesAreEquivalent((IAssemblySymbol)x, (IAssemblySymbol)y),
119SymbolKind.DynamicType => NullableAnnotationsEquivalent((IDynamicTypeSymbol)x, (IDynamicTypeSymbol)y),
120SymbolKind.Event => EventsAreEquivalent((IEventSymbol)x, (IEventSymbol)y, equivalentTypesWithDifferingAssemblies),
121SymbolKind.Field => FieldsAreEquivalent((IFieldSymbol)x, (IFieldSymbol)y, equivalentTypesWithDifferingAssemblies),
122SymbolKind.Label => LabelsAreEquivalent((ILabelSymbol)x, (ILabelSymbol)y),
123SymbolKind.Local => LocalsAreEquivalent((ILocalSymbol)x, (ILocalSymbol)y),
124SymbolKind.Method => MethodsAreEquivalent((IMethodSymbol)x, (IMethodSymbol)y, equivalentTypesWithDifferingAssemblies),
125SymbolKind.NetModule => ModulesAreEquivalent((IModuleSymbol)x, (IModuleSymbol)y),
126SymbolKind.NamedType => NamedTypesAreEquivalent((INamedTypeSymbol)x, (INamedTypeSymbol)y, equivalentTypesWithDifferingAssemblies),
127SymbolKind.ErrorType => NamedTypesAreEquivalent((INamedTypeSymbol)x, (INamedTypeSymbol)y, equivalentTypesWithDifferingAssemblies),
128SymbolKind.Namespace => NamespacesAreEquivalent((INamespaceSymbol)x, (INamespaceSymbol)y, equivalentTypesWithDifferingAssemblies),
129SymbolKind.Parameter => ParametersAreEquivalent((IParameterSymbol)x, (IParameterSymbol)y, equivalentTypesWithDifferingAssemblies),
130SymbolKind.PointerType => PointerTypesAreEquivalent((IPointerTypeSymbol)x, (IPointerTypeSymbol)y, equivalentTypesWithDifferingAssemblies),
131SymbolKind.Property => PropertiesAreEquivalent((IPropertySymbol)x, (IPropertySymbol)y, equivalentTypesWithDifferingAssemblies),
132SymbolKind.RangeVariable => RangeVariablesAreEquivalent((IRangeVariableSymbol)x, (IRangeVariableSymbol)y),
133SymbolKind.TypeParameter => TypeParametersAreEquivalent((ITypeParameterSymbol)x, (ITypeParameterSymbol)y, equivalentTypesWithDifferingAssemblies),
134SymbolKind.Preprocessing => PreprocessingSymbolsAreEquivalent((IPreprocessingSymbol)x, (IPreprocessingSymbol)y),
135SymbolKind.FunctionPointerType => FunctionPointerTypesAreEquivalent((IFunctionPointerTypeSymbol)x, (IFunctionPointerTypeSymbol)y, equivalentTypesWithDifferingAssemblies),
367if (x.Kind == SymbolKind.ErrorType &&
371Debug.Assert(y.Kind == SymbolKind.ErrorType);
Symbols\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),
Microsoft.CodeAnalysis.Features (247)
EditAndContinue\AbstractEditAndContinueAnalyzer.cs (38)
311SymbolKind.Event => GetDisplayName((IEventSymbol)symbol),
312SymbolKind.Field => GetDisplayName((IFieldSymbol)symbol),
313SymbolKind.Method => GetDisplayName((IMethodSymbol)symbol),
314SymbolKind.NamedType => GetDisplayName((INamedTypeSymbol)symbol),
315SymbolKind.Parameter => FeaturesResources.parameter,
316SymbolKind.Local => FeaturesResources.local_variable,
317SymbolKind.Property => GetDisplayName((IPropertySymbol)symbol),
318SymbolKind.TypeParameter => FeaturesResources.type_parameter,
2636case SymbolKind.Field:
2639case SymbolKind.Event:
2642case SymbolKind.Property:
2648case SymbolKind.Method:
2655case SymbolKind.NamedType when oldMember is INamedTypeSymbol { DelegateInvokeMethod: { } oldInvokeMethod }:
3712=> symbol.Kind is SymbolKind.Method or SymbolKind.Property or SymbolKind.Field or SymbolKind.Event;
4332rudeEdit = (oldSymbol.Kind == SymbolKind.Field || newSymbol.Kind == SymbolKind.Field) ? RudeEditKind.FieldKindUpdate : RudeEditKind.Update;
4707oldMember is not IMethodSymbol { AssociatedSymbol.Kind: SymbolKind.Property or SymbolKind.Event })
4891var rudeEdit = oldSymbol.ContainingSymbol.Kind == SymbolKind.Method ? RudeEditKind.GenericMethodUpdate : RudeEditKind.GenericTypeUpdate;
5224if (newDiagnosticSymbol.Kind is not (SymbolKind.Parameter or SymbolKind.TypeParameter))
5239if (oldSymbol.Kind is not (SymbolKind.Parameter or SymbolKind.TypeParameter))
5383case SymbolKind.Field:
5391case SymbolKind.Property:
5400case SymbolKind.Event:
5409case SymbolKind.Parameter:
5423parameter.ContainingType.GetMembers($"<{parameter.Name}>P").Any(m => m.Kind == SymbolKind.Field);
5778member.Kind is SymbolKind.Field or SymbolKind.Property &&
6618if (oldSymbol.Kind == SymbolKind.RangeVariable)
6638if (oldSymbol.Kind == SymbolKind.Parameter)
6734SymbolKind.Parameter => ((IParameterSymbol)localOrParameter).Type,
6735SymbolKind.Local => ((ILocalSymbol)localOrParameter).Type,
6741Debug.Assert(local.Kind is not SymbolKind.RangeVariable);
MetadataAsSource\AbstractMetadataAsSourceService.WrappedNamedTypeSymbol.cs (10)
33where m.Kind is SymbolKind.Event or
34SymbolKind.Field or
35SymbolKind.Method or
36SymbolKind.NamedType or
37SymbolKind.Property
46SymbolKind.Field => new WrappedFieldSymbol((IFieldSymbol)m, docCommentFormattingService),
47SymbolKind.Event => new WrappedEventSymbol((IEventSymbol)m, canImplementImplicitly, docCommentFormattingService),
48SymbolKind.Method => new WrappedMethodSymbol((IMethodSymbol)m, canImplementImplicitly, docCommentFormattingService),
49SymbolKind.NamedType => new WrappedNamedTypeSymbol((INamedTypeSymbol)m, canImplementImplicitly, docCommentFormattingService),
50SymbolKind.Property => new WrappedPropertySymbol((IPropertySymbol)m, canImplementImplicitly, docCommentFormattingService),
src\roslyn\src\Analyzers\Core\Analyzers\RemoveUnusedParametersAndValues\AbstractRemoveUnusedParametersAndValuesDiagnosticAnalyzer.SymbolStartAnalyzer.cs (1)
71}, SymbolKind.NamedType);
src\roslyn\src\Analyzers\Core\CodeFixes\GenerateVariable\AbstractGenerateVariableService.cs (4)
103document.Document, state, SymbolKind.Property, state.DetermineMaximalAccessibility(), cancellationToken).ConfigureAwait(false))
119Document document, State state, SymbolKind kind, Accessibility accessibility, CancellationToken cancellationToken)
185document, state, SymbolKind.Local, Accessibility.NotApplicable, cancellationToken).ConfigureAwait(false))
201document, state, SymbolKind.Parameter, Accessibility.NotApplicable, cancellationToken).ConfigureAwait(false))
Microsoft.CodeAnalysis.Razor.Compiler (2)
Microsoft.CodeAnalysis.ResxSourceGenerator (254)
src\roslyn\src\RoslynAnalyzers\Utilities\Compiler\CodeMetrics\CodeAnalysisMetricData.cs (27)
36symbol.Kind is SymbolKind.Assembly or
37SymbolKind.Namespace or
38SymbolKind.NamedType or
39SymbolKind.Method or
40SymbolKind.Field or
41SymbolKind.Event or
42SymbolKind.Property);
43Debug.Assert(depthOfInheritance.HasValue == (symbol.Kind == SymbolKind.Assembly || symbol.Kind == SymbolKind.Namespace || symbol.Kind == SymbolKind.NamedType));
123case SymbolKind.Assembly:
127case SymbolKind.Namespace:
138case SymbolKind.NamedType:
267SymbolKind.Assembly => await AssemblyMetricData.ComputeAsync((IAssemblySymbol)symbol, context).ConfigureAwait(false),
269SymbolKind.Namespace => await NamespaceMetricData.ComputeAsync((INamespaceSymbol)symbol, context).ConfigureAwait(false),
271SymbolKind.NamedType => await NamedTypeMetricData.ComputeAsync((INamedTypeSymbol)symbol, context).ConfigureAwait(false),
273SymbolKind.Method => MethodMetricData.Compute((IMethodSymbol)symbol, context),
275SymbolKind.Property => PropertyMetricData.Compute((IPropertySymbol)symbol, context),
277SymbolKind.Field => FieldMetricData.Compute((IFieldSymbol)symbol, context),
279SymbolKind.Event => EventMetricData.Compute((IEventSymbol)symbol, context),
305SymbolKind.Assembly => AssemblyMetricData.ComputeSynchronously((IAssemblySymbol)symbol, context),
307SymbolKind.Namespace => NamespaceMetricData.ComputeSynchronously((INamespaceSymbol)symbol, context),
309SymbolKind.NamedType => NamedTypeMetricData.ComputeSynchronously((INamedTypeSymbol)symbol, context),
311SymbolKind.Method => MethodMetricData.Compute((IMethodSymbol)symbol, context),
313SymbolKind.Property => PropertyMetricData.Compute((IPropertySymbol)symbol, context),
315SymbolKind.Field => FieldMetricData.Compute((IFieldSymbol)symbol, context),
317SymbolKind.Event => EventMetricData.Compute((IEventSymbol)symbol, context),
src\roslyn\src\RoslynAnalyzers\Utilities\Compiler\Options\SymbolNamesWithValueOption.cs (24)
26internal const SymbolKind AllKinds = SymbolKind.ErrorType;
54private readonly ImmutableDictionary<SymbolKind, ImmutableDictionary<string, TValue>> _wildcardNamesBySymbolKind;
64ImmutableDictionary<SymbolKind, ImmutableDictionary<string, TValue>> wildcardNamesBySymbolKind)
77_wildcardNamesBySymbolKind = ImmutableDictionary<SymbolKind, ImmutableDictionary<string, TValue>>.Empty;
92var wildcardNamesBuilder = PooledDictionary<SymbolKind, PooledDictionary<string, TValue>>.GetInstance();
142static void ProcessWildcardName(NameParts parts, PooledDictionary<SymbolKind, PooledDictionary<string, TValue>> wildcardNamesBuilder)
161'E' => (SymbolKind?)SymbolKind.Event,
162'F' => SymbolKind.Field,
163'M' => SymbolKind.Method,
164'N' => SymbolKind.Namespace,
165'P' => SymbolKind.Property,
166'T' => SymbolKind.NamedType,
271case SymbolKind.Event:
272case SymbolKind.Field:
273case SymbolKind.Method:
274case SymbolKind.NamedType:
275case SymbolKind.Namespace:
276case SymbolKind.Property:
279case SymbolKind.Assembly:
280case SymbolKind.ErrorType:
281case SymbolKind.NetModule:
377internal ref readonly ImmutableDictionary<SymbolKind, ImmutableDictionary<string, TValue>> WildcardNamesBySymbolKind => ref _symbolNamesWithValueOption._wildcardNamesBySymbolKind;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\NamingStyles\Serialization\SymbolSpecification.cs (27)
61new SymbolKindOrTypeKind(SymbolKind.Namespace),
69new SymbolKindOrTypeKind(SymbolKind.Property),
72new SymbolKindOrTypeKind(SymbolKind.Field),
73new SymbolKindOrTypeKind(SymbolKind.Event),
74new SymbolKindOrTypeKind(SymbolKind.Parameter),
76new SymbolKindOrTypeKind(SymbolKind.Local),
96public bool AppliesTo(SymbolKind symbolKind, Accessibility accessibility)
159case SymbolKind.Namespace:
162case SymbolKind.Parameter:
163case SymbolKind.TypeParameter:
166case SymbolKind.Method:
288foreach (var symbolKindElement in symbolKindListElement.Elements(nameof(SymbolKind)))
339public SymbolKindOrTypeKind(SymbolKind symbolKind)
354public SymbolKind? SymbolKind => (_category == SymbolCategory.Other) ? (SymbolKind)_kind : null;
361SymbolCategory.Other => symbol.IsKind((SymbolKind)_kind),
370SymbolCategory.Other => new XElement(nameof(SymbolKind), (SymbolKind)_kind),
421var symbolKind = (SymbolKind)Enum.Parse(typeof(SymbolKind), symbolKindElement.Value);
427CodeAnalysis.SymbolKind.Method => new(CodeAnalysis.MethodKind.Ordinary),
438public static implicit operator SymbolKindOrTypeKind(SymbolKind symbolKind)
506var kind = symbol.Kind;
507if (Modifiers.HasFlag(Modifiers.Async) && kind == SymbolKind.Method && ((IMethodSymbol)symbol).IsAsync)
514if (kind == SymbolKind.Field && ((IFieldSymbol)symbol).IsReadOnly)
522if ((kind == SymbolKind.Field && ((IFieldSymbol)symbol).IsConst) ||
523(kind == SymbolKind.Local && ((ILocalSymbol)symbol).IsConst))
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\ISymbolExtensions.cs (25)
40case SymbolKind.Alias:
45case SymbolKind.Parameter:
49case SymbolKind.TypeParameter:
54while (symbol != null && symbol.Kind != SymbolKind.Namespace)
121if (symbol.Kind is SymbolKind.Event or SymbolKind.Property)
152if (symbol.Kind is not SymbolKind.Method and not SymbolKind.Property and not SymbolKind.Event)
189if (symbol.Kind == SymbolKind.Event)
194if (symbol.Kind == SymbolKind.Property)
235=> symbol is { Kind: SymbolKind.ArrayType };
243public static bool IsKind([NotNullWhen(true)] this ISymbol? symbol, SymbolKind kind)
246public static bool MatchesKind([NotNullWhen(true)] this ISymbol? symbol, SymbolKind kind)
249public static bool MatchesKind([NotNullWhen(true)] this ISymbol? symbol, SymbolKind kind1, SymbolKind kind2)
255public static bool MatchesKind([NotNullWhen(true)] this ISymbol? symbol, SymbolKind kind1, SymbolKind kind2, SymbolKind kind3)
261public static bool MatchesKind([NotNullWhen(true)] this ISymbol? symbol, params SymbolKind[] kinds)
271=> symbol is { Kind: SymbolKind.Field, ContainingType.TypeKind: TypeKind.Enum };
354SymbolKind.NamedType => ((INamedTypeSymbol)symbol).Arity,
355SymbolKind.Method => ((IMethodSymbol)symbol).Arity,
626if (symbol.Kind != SymbolKind.Local)
812public static bool IsKind<TSymbol>(this ISymbol symbol, SymbolKind kind, [NotNullWhen(true)] out TSymbol? result) where TSymbol : class, ISymbol
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\SymbolEquivalenceComparer.EquivalenceVisitor.cs (28)
30var xKind = GetKindAndUnwrapAlias(ref x);
31var yKind = GetKindAndUnwrapAlias(ref y);
40if ((xKind == SymbolKind.DynamicType && IsObjectType(y)) ||
41(yKind == SymbolKind.DynamicType && IsObjectType(x)))
49if (xKind == SymbolKind.ArrayType && y.IsReadOnlySpan())
53else if (x.IsReadOnlySpan() && yKind == SymbolKind.ArrayType)
112private bool AreEquivalentWorker(ISymbol x, ISymbol y, SymbolKind k, Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies)
117SymbolKind.ArrayType => ArrayTypesAreEquivalent((IArrayTypeSymbol)x, (IArrayTypeSymbol)y, equivalentTypesWithDifferingAssemblies),
118SymbolKind.Assembly => AssembliesAreEquivalent((IAssemblySymbol)x, (IAssemblySymbol)y),
119SymbolKind.DynamicType => NullableAnnotationsEquivalent((IDynamicTypeSymbol)x, (IDynamicTypeSymbol)y),
120SymbolKind.Event => EventsAreEquivalent((IEventSymbol)x, (IEventSymbol)y, equivalentTypesWithDifferingAssemblies),
121SymbolKind.Field => FieldsAreEquivalent((IFieldSymbol)x, (IFieldSymbol)y, equivalentTypesWithDifferingAssemblies),
122SymbolKind.Label => LabelsAreEquivalent((ILabelSymbol)x, (ILabelSymbol)y),
123SymbolKind.Local => LocalsAreEquivalent((ILocalSymbol)x, (ILocalSymbol)y),
124SymbolKind.Method => MethodsAreEquivalent((IMethodSymbol)x, (IMethodSymbol)y, equivalentTypesWithDifferingAssemblies),
125SymbolKind.NetModule => ModulesAreEquivalent((IModuleSymbol)x, (IModuleSymbol)y),
126SymbolKind.NamedType => NamedTypesAreEquivalent((INamedTypeSymbol)x, (INamedTypeSymbol)y, equivalentTypesWithDifferingAssemblies),
127SymbolKind.ErrorType => NamedTypesAreEquivalent((INamedTypeSymbol)x, (INamedTypeSymbol)y, equivalentTypesWithDifferingAssemblies),
128SymbolKind.Namespace => NamespacesAreEquivalent((INamespaceSymbol)x, (INamespaceSymbol)y, equivalentTypesWithDifferingAssemblies),
129SymbolKind.Parameter => ParametersAreEquivalent((IParameterSymbol)x, (IParameterSymbol)y, equivalentTypesWithDifferingAssemblies),
130SymbolKind.PointerType => PointerTypesAreEquivalent((IPointerTypeSymbol)x, (IPointerTypeSymbol)y, equivalentTypesWithDifferingAssemblies),
131SymbolKind.Property => PropertiesAreEquivalent((IPropertySymbol)x, (IPropertySymbol)y, equivalentTypesWithDifferingAssemblies),
132SymbolKind.RangeVariable => RangeVariablesAreEquivalent((IRangeVariableSymbol)x, (IRangeVariableSymbol)y),
133SymbolKind.TypeParameter => TypeParametersAreEquivalent((ITypeParameterSymbol)x, (ITypeParameterSymbol)y, equivalentTypesWithDifferingAssemblies),
134SymbolKind.Preprocessing => PreprocessingSymbolsAreEquivalent((IPreprocessingSymbol)x, (IPreprocessingSymbol)y),
135SymbolKind.FunctionPointerType => FunctionPointerTypesAreEquivalent((IFunctionPointerTypeSymbol)x, (IFunctionPointerTypeSymbol)y, equivalentTypesWithDifferingAssemblies),
367if (x.Kind == SymbolKind.ErrorType &&
371Debug.Assert(y.Kind == SymbolKind.ErrorType);
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\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),
Microsoft.CodeAnalysis.VisualBasic (1135)
Analysis\FlowAnalysis\AbstractFlowPass.vb (8)
110Debug.Assert(_info.Symbol.Kind = SymbolKind.Field OrElse
111_info.Symbol.Kind = SymbolKind.Property OrElse
112_info.Symbol.Kind = SymbolKind.Method OrElse
113_info.Symbol.Kind = SymbolKind.Parameter)
239Return If(Me.symbol.Kind = SymbolKind.Method, DirectCast(Me.symbol, MethodSymbol).Parameters, ImmutableArray(Of ParameterSymbol).Empty)
253Return Me.symbol.Kind = SymbolKind.Method AndAlso DirectCast(Me.symbol, MethodSymbol).Locations.Length = 1
263Return If(Me.symbol.Kind = SymbolKind.Method, DirectCast(Me.symbol, MethodSymbol), Nothing)
273Return If(Me.symbol.Kind = SymbolKind.Method, DirectCast(Me.symbol, MethodSymbol).ReturnType, Nothing)
Binding\Binder_Expressions.vb (53)
660If symbols.Count = 1 AndAlso symbols(0).Kind = SymbolKind.ErrorType Then
1907Case SymbolKind.Method
1911Case SymbolKind.Field, SymbolKind.Property
1919Case SymbolKind.NamedType, SymbolKind.Namespace, SymbolKind.Parameter
2237Case SymbolKind.Method, SymbolKind.Property
2241Case SymbolKind.Field
2585Case SymbolKind.Field, SymbolKind.Method, SymbolKind.Property, SymbolKind.Event
2723Case SymbolKind.Field, SymbolKind.Property
2728Case SymbolKind.Local, SymbolKind.Parameter, SymbolKind.RangeVariable
3096((lookupResult.Symbols(0).Kind <> SymbolKind.Method AndAlso lookupResult.Symbols(0).Kind <> SymbolKind.Property) OrElse
3143Case SymbolKind.Method
3156Case SymbolKind.Property
3168Case SymbolKind.Event
3201Case SymbolKind.Field
3248Case SymbolKind.Local
3285Case SymbolKind.RangeVariable
3290Case SymbolKind.Parameter
3302Case SymbolKind.NamedType, SymbolKind.ErrorType
3343Case SymbolKind.TypeParameter
3349Case SymbolKind.Namespace
3355Case SymbolKind.Alias
3362Case SymbolKind.NamedType, SymbolKind.ErrorType
3368Case SymbolKind.Namespace
3428If candidate.Kind = SymbolKind.Namespace AndAlso
3443If candidate Is Nothing OrElse candidate.Kind = SymbolKind.ErrorType Then
3520Case SymbolKind.Method
3524Case SymbolKind.Property
3528Case SymbolKind.Field
4010Case SymbolKind.Method
4012Case SymbolKind.Field
4016Case SymbolKind.Property
4018Case SymbolKind.Parameter
4020Case SymbolKind.Local
4022Case SymbolKind.RangeVariable
4633Return ContainingMember.Kind = SymbolKind.Method AndAlso DirectCast(ContainingMember, MethodSymbol).IsAsync
4637Return ContainingMember.Kind = SymbolKind.Method AndAlso DirectCast(ContainingMember, MethodSymbol).IsIterator
4744If lookupResult.Kind = LookupResultKind.Good AndAlso lookupResult.Symbols(0).Kind = SymbolKind.Method Then
4796If lookupResult.Kind = LookupResultKind.Good AndAlso lookupResult.Symbols(0).Kind = SymbolKind.Property Then
4842If lookupResult.Kind = LookupResultKind.Good AndAlso lookupResult.Symbols(0).Kind = SymbolKind.Method Then
4964ElseIf 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)
1058container.FindMember(propertyIdentifier.ValueText, SymbolKind.Property, propertyIdentifier.Span, tree),
1089container.FindMember(eventIdentifier.ValueText, SymbolKind.Event, eventIdentifier.Span, tree),
1125Return container.FindMember(propertyIdentifier.ValueText, SymbolKind.Property, propertyIdentifier.Span, tree)
1129Return container.FindMember(eventIdentifier.ValueText, SymbolKind.Event, eventIdentifier.Span, tree)
1133Return container.FindMember(delegateIdentifier.ValueText, SymbolKind.NamedType, delegateIdentifier.Span, tree)
1137SymbolKind.Method, GetMethodLocationFromSyntax(syntax), tree), MethodSymbol)
1787If Me.IsAccessor() AndAlso Me.AssociatedSymbol.Kind = SymbolKind.Event Then
Symbols\Symbol.vb (30)
146Public MustOverride ReadOnly Property Kind As SymbolKind
208Case SymbolKind.Namespace
210Case SymbolKind.NamedType
251Case SymbolKind.ErrorType
253Case SymbolKind.Assembly
256Case SymbolKind.NetModule
605Case SymbolKind.Local
608Case SymbolKind.Label,
609SymbolKind.Alias
613Case SymbolKind.Namespace,
614SymbolKind.Field,
615SymbolKind.RangeVariable,
616SymbolKind.Property,
617SymbolKind.Event,
618SymbolKind.Parameter,
619SymbolKind.TypeParameter,
620SymbolKind.ErrorType,
621SymbolKind.Preprocessing
624Case SymbolKind.NamedType
630Case SymbolKind.Method
640Case SymbolKind.Assembly, SymbolKind.NetModule, SymbolKind.ArrayType
670If Me.Kind = SymbolKind.Method Then
748If Me.Kind = SymbolKind.Assembly Then
753Dim [module] = If(Me.Kind = SymbolKind.NetModule, Me, Me.ContainingModule)
1010Case SymbolKind.Field
1013Case SymbolKind.Method
1016Case SymbolKind.Property
1332Private 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.CodeStyle (13)
Microsoft.CodeAnalysis.VisualBasic.CodeStyle.Fixes (16)
Microsoft.CodeAnalysis.VisualBasic.Features (37)
Microsoft.CodeAnalysis.VisualBasic.NetAnalyzers (3)
Microsoft.CodeQuality.Analyzers\ApiDesignGuidelines\BasicOverrideEqualsOnOverloadingOperatorEquals.vb (1)
60SymbolKind.NamedType)
Microsoft.CodeQuality.Analyzers\ApiDesignGuidelines\BasicOverrideGetHashCodeOnOverridingEquals.vb (1)
53SymbolKind.NamedType)
Microsoft.CodeAnalysis.VisualBasic.Workspaces (104)
Microsoft.CodeAnalysis.Workspaces (299)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\NamingStyles\Serialization\SymbolSpecification.cs (27)
61new SymbolKindOrTypeKind(SymbolKind.Namespace),
69new SymbolKindOrTypeKind(SymbolKind.Property),
72new SymbolKindOrTypeKind(SymbolKind.Field),
73new SymbolKindOrTypeKind(SymbolKind.Event),
74new SymbolKindOrTypeKind(SymbolKind.Parameter),
76new SymbolKindOrTypeKind(SymbolKind.Local),
96public bool AppliesTo(SymbolKind symbolKind, Accessibility accessibility)
159case SymbolKind.Namespace:
162case SymbolKind.Parameter:
163case SymbolKind.TypeParameter:
166case SymbolKind.Method:
288foreach (var symbolKindElement in symbolKindListElement.Elements(nameof(SymbolKind)))
339public SymbolKindOrTypeKind(SymbolKind symbolKind)
354public SymbolKind? SymbolKind => (_category == SymbolCategory.Other) ? (SymbolKind)_kind : null;
361SymbolCategory.Other => symbol.IsKind((SymbolKind)_kind),
370SymbolCategory.Other => new XElement(nameof(SymbolKind), (SymbolKind)_kind),
421var symbolKind = (SymbolKind)Enum.Parse(typeof(SymbolKind), symbolKindElement.Value);
427CodeAnalysis.SymbolKind.Method => new(CodeAnalysis.MethodKind.Ordinary),
438public static implicit operator SymbolKindOrTypeKind(SymbolKind symbolKind)
506var kind = symbol.Kind;
507if (Modifiers.HasFlag(Modifiers.Async) && kind == SymbolKind.Method && ((IMethodSymbol)symbol).IsAsync)
514if (kind == SymbolKind.Field && ((IFieldSymbol)symbol).IsReadOnly)
522if ((kind == SymbolKind.Field && ((IFieldSymbol)symbol).IsConst) ||
523(kind == SymbolKind.Local && ((ILocalSymbol)symbol).IsConst))
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\ISymbolExtensions.cs (25)
40case SymbolKind.Alias:
45case SymbolKind.Parameter:
49case SymbolKind.TypeParameter:
54while (symbol != null && symbol.Kind != SymbolKind.Namespace)
121if (symbol.Kind is SymbolKind.Event or SymbolKind.Property)
152if (symbol.Kind is not SymbolKind.Method and not SymbolKind.Property and not SymbolKind.Event)
189if (symbol.Kind == SymbolKind.Event)
194if (symbol.Kind == SymbolKind.Property)
235=> symbol is { Kind: SymbolKind.ArrayType };
243public static bool IsKind([NotNullWhen(true)] this ISymbol? symbol, SymbolKind kind)
246public static bool MatchesKind([NotNullWhen(true)] this ISymbol? symbol, SymbolKind kind)
249public static bool MatchesKind([NotNullWhen(true)] this ISymbol? symbol, SymbolKind kind1, SymbolKind kind2)
255public static bool MatchesKind([NotNullWhen(true)] this ISymbol? symbol, SymbolKind kind1, SymbolKind kind2, SymbolKind kind3)
261public static bool MatchesKind([NotNullWhen(true)] this ISymbol? symbol, params SymbolKind[] kinds)
271=> symbol is { Kind: SymbolKind.Field, ContainingType.TypeKind: TypeKind.Enum };
354SymbolKind.NamedType => ((INamedTypeSymbol)symbol).Arity,
355SymbolKind.Method => ((IMethodSymbol)symbol).Arity,
626if (symbol.Kind != SymbolKind.Local)
812public static bool IsKind<TSymbol>(this ISymbol symbol, SymbolKind kind, [NotNullWhen(true)] out TSymbol? result) where TSymbol : class, ISymbol
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\SymbolEquivalenceComparer.EquivalenceVisitor.cs (28)
30var xKind = GetKindAndUnwrapAlias(ref x);
31var yKind = GetKindAndUnwrapAlias(ref y);
40if ((xKind == SymbolKind.DynamicType && IsObjectType(y)) ||
41(yKind == SymbolKind.DynamicType && IsObjectType(x)))
49if (xKind == SymbolKind.ArrayType && y.IsReadOnlySpan())
53else if (x.IsReadOnlySpan() && yKind == SymbolKind.ArrayType)
112private bool AreEquivalentWorker(ISymbol x, ISymbol y, SymbolKind k, Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies)
117SymbolKind.ArrayType => ArrayTypesAreEquivalent((IArrayTypeSymbol)x, (IArrayTypeSymbol)y, equivalentTypesWithDifferingAssemblies),
118SymbolKind.Assembly => AssembliesAreEquivalent((IAssemblySymbol)x, (IAssemblySymbol)y),
119SymbolKind.DynamicType => NullableAnnotationsEquivalent((IDynamicTypeSymbol)x, (IDynamicTypeSymbol)y),
120SymbolKind.Event => EventsAreEquivalent((IEventSymbol)x, (IEventSymbol)y, equivalentTypesWithDifferingAssemblies),
121SymbolKind.Field => FieldsAreEquivalent((IFieldSymbol)x, (IFieldSymbol)y, equivalentTypesWithDifferingAssemblies),
122SymbolKind.Label => LabelsAreEquivalent((ILabelSymbol)x, (ILabelSymbol)y),
123SymbolKind.Local => LocalsAreEquivalent((ILocalSymbol)x, (ILocalSymbol)y),
124SymbolKind.Method => MethodsAreEquivalent((IMethodSymbol)x, (IMethodSymbol)y, equivalentTypesWithDifferingAssemblies),
125SymbolKind.NetModule => ModulesAreEquivalent((IModuleSymbol)x, (IModuleSymbol)y),
126SymbolKind.NamedType => NamedTypesAreEquivalent((INamedTypeSymbol)x, (INamedTypeSymbol)y, equivalentTypesWithDifferingAssemblies),
127SymbolKind.ErrorType => NamedTypesAreEquivalent((INamedTypeSymbol)x, (INamedTypeSymbol)y, equivalentTypesWithDifferingAssemblies),
128SymbolKind.Namespace => NamespacesAreEquivalent((INamespaceSymbol)x, (INamespaceSymbol)y, equivalentTypesWithDifferingAssemblies),
129SymbolKind.Parameter => ParametersAreEquivalent((IParameterSymbol)x, (IParameterSymbol)y, equivalentTypesWithDifferingAssemblies),
130SymbolKind.PointerType => PointerTypesAreEquivalent((IPointerTypeSymbol)x, (IPointerTypeSymbol)y, equivalentTypesWithDifferingAssemblies),
131SymbolKind.Property => PropertiesAreEquivalent((IPropertySymbol)x, (IPropertySymbol)y, equivalentTypesWithDifferingAssemblies),
132SymbolKind.RangeVariable => RangeVariablesAreEquivalent((IRangeVariableSymbol)x, (IRangeVariableSymbol)y),
133SymbolKind.TypeParameter => TypeParametersAreEquivalent((ITypeParameterSymbol)x, (ITypeParameterSymbol)y, equivalentTypesWithDifferingAssemblies),
134SymbolKind.Preprocessing => PreprocessingSymbolsAreEquivalent((IPreprocessingSymbol)x, (IPreprocessingSymbol)y),
135SymbolKind.FunctionPointerType => FunctionPointerTypesAreEquivalent((IFunctionPointerTypeSymbol)x, (IFunctionPointerTypeSymbol)y, equivalentTypesWithDifferingAssemblies),
367if (x.Kind == SymbolKind.ErrorType &&
371Debug.Assert(y.Kind == SymbolKind.ErrorType);
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\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),
Microsoft.DotNet.ApiCompatibility (4)
Microsoft.DotNet.ApiSymbolExtensions (1)
Microsoft.DotNet.CodeAnalysis (5)
Microsoft.Extensions.Logging.Generators (4)
Microsoft.Extensions.Options.SourceGeneration (8)
Microsoft.Gen.BuildMetadata (4)
Microsoft.Gen.Logging (12)
Microsoft.Gen.Logging.Unit.Tests (1)
Microsoft.Gen.MetadataExtractor (2)
Microsoft.Gen.Metrics (6)
Microsoft.Gen.MetricsReports (2)
Microsoft.Interop.ComInterfaceGenerator (12)
Microsoft.Interop.JavaScript.JSImportGenerator (1)
Microsoft.Interop.LibraryImportGenerator (7)
Microsoft.Interop.LibraryImportGenerator.Downlevel (6)
Microsoft.Interop.SourceGeneration (4)
Microsoft.Maui.Controls.BindingSourceGen (2)
Microsoft.ML.CodeAnalyzer.Tests (1)
Microsoft.ML.InternalCodeAnalyzer (8)
PlatformDocAnalyzer (2)
Roslyn.Diagnostics.Analyzers (332)
src\roslyn\src\RoslynAnalyzers\Utilities\Compiler\CodeMetrics\CodeAnalysisMetricData.cs (27)
36symbol.Kind is SymbolKind.Assembly or
37SymbolKind.Namespace or
38SymbolKind.NamedType or
39SymbolKind.Method or
40SymbolKind.Field or
41SymbolKind.Event or
42SymbolKind.Property);
43Debug.Assert(depthOfInheritance.HasValue == (symbol.Kind == SymbolKind.Assembly || symbol.Kind == SymbolKind.Namespace || symbol.Kind == SymbolKind.NamedType));
123case SymbolKind.Assembly:
127case SymbolKind.Namespace:
138case SymbolKind.NamedType:
267SymbolKind.Assembly => await AssemblyMetricData.ComputeAsync((IAssemblySymbol)symbol, context).ConfigureAwait(false),
269SymbolKind.Namespace => await NamespaceMetricData.ComputeAsync((INamespaceSymbol)symbol, context).ConfigureAwait(false),
271SymbolKind.NamedType => await NamedTypeMetricData.ComputeAsync((INamedTypeSymbol)symbol, context).ConfigureAwait(false),
273SymbolKind.Method => MethodMetricData.Compute((IMethodSymbol)symbol, context),
275SymbolKind.Property => PropertyMetricData.Compute((IPropertySymbol)symbol, context),
277SymbolKind.Field => FieldMetricData.Compute((IFieldSymbol)symbol, context),
279SymbolKind.Event => EventMetricData.Compute((IEventSymbol)symbol, context),
305SymbolKind.Assembly => AssemblyMetricData.ComputeSynchronously((IAssemblySymbol)symbol, context),
307SymbolKind.Namespace => NamespaceMetricData.ComputeSynchronously((INamespaceSymbol)symbol, context),
309SymbolKind.NamedType => NamedTypeMetricData.ComputeSynchronously((INamedTypeSymbol)symbol, context),
311SymbolKind.Method => MethodMetricData.Compute((IMethodSymbol)symbol, context),
313SymbolKind.Property => PropertyMetricData.Compute((IPropertySymbol)symbol, context),
315SymbolKind.Field => FieldMetricData.Compute((IFieldSymbol)symbol, context),
317SymbolKind.Event => EventMetricData.Compute((IEventSymbol)symbol, context),
src\roslyn\src\RoslynAnalyzers\Utilities\Compiler\Options\SymbolNamesWithValueOption.cs (24)
26internal const SymbolKind AllKinds = SymbolKind.ErrorType;
54private readonly ImmutableDictionary<SymbolKind, ImmutableDictionary<string, TValue>> _wildcardNamesBySymbolKind;
64ImmutableDictionary<SymbolKind, ImmutableDictionary<string, TValue>> wildcardNamesBySymbolKind)
77_wildcardNamesBySymbolKind = ImmutableDictionary<SymbolKind, ImmutableDictionary<string, TValue>>.Empty;
92var wildcardNamesBuilder = PooledDictionary<SymbolKind, PooledDictionary<string, TValue>>.GetInstance();
142static void ProcessWildcardName(NameParts parts, PooledDictionary<SymbolKind, PooledDictionary<string, TValue>> wildcardNamesBuilder)
161'E' => (SymbolKind?)SymbolKind.Event,
162'F' => SymbolKind.Field,
163'M' => SymbolKind.Method,
164'N' => SymbolKind.Namespace,
165'P' => SymbolKind.Property,
166'T' => SymbolKind.NamedType,
271case SymbolKind.Event:
272case SymbolKind.Field:
273case SymbolKind.Method:
274case SymbolKind.NamedType:
275case SymbolKind.Namespace:
276case SymbolKind.Property:
279case SymbolKind.Assembly:
280case SymbolKind.ErrorType:
281case SymbolKind.NetModule:
377internal ref readonly ImmutableDictionary<SymbolKind, ImmutableDictionary<string, TValue>> WildcardNamesBySymbolKind => ref _symbolNamesWithValueOption._wildcardNamesBySymbolKind;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\NamingStyles\Serialization\SymbolSpecification.cs (27)
61new SymbolKindOrTypeKind(SymbolKind.Namespace),
69new SymbolKindOrTypeKind(SymbolKind.Property),
72new SymbolKindOrTypeKind(SymbolKind.Field),
73new SymbolKindOrTypeKind(SymbolKind.Event),
74new SymbolKindOrTypeKind(SymbolKind.Parameter),
76new SymbolKindOrTypeKind(SymbolKind.Local),
96public bool AppliesTo(SymbolKind symbolKind, Accessibility accessibility)
159case SymbolKind.Namespace:
162case SymbolKind.Parameter:
163case SymbolKind.TypeParameter:
166case SymbolKind.Method:
288foreach (var symbolKindElement in symbolKindListElement.Elements(nameof(SymbolKind)))
339public SymbolKindOrTypeKind(SymbolKind symbolKind)
354public SymbolKind? SymbolKind => (_category == SymbolCategory.Other) ? (SymbolKind)_kind : null;
361SymbolCategory.Other => symbol.IsKind((SymbolKind)_kind),
370SymbolCategory.Other => new XElement(nameof(SymbolKind), (SymbolKind)_kind),
421var symbolKind = (SymbolKind)Enum.Parse(typeof(SymbolKind), symbolKindElement.Value);
427CodeAnalysis.SymbolKind.Method => new(CodeAnalysis.MethodKind.Ordinary),
438public static implicit operator SymbolKindOrTypeKind(SymbolKind symbolKind)
506var kind = symbol.Kind;
507if (Modifiers.HasFlag(Modifiers.Async) && kind == SymbolKind.Method && ((IMethodSymbol)symbol).IsAsync)
514if (kind == SymbolKind.Field && ((IFieldSymbol)symbol).IsReadOnly)
522if ((kind == SymbolKind.Field && ((IFieldSymbol)symbol).IsConst) ||
523(kind == SymbolKind.Local && ((ILocalSymbol)symbol).IsConst))
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\ISymbolExtensions.cs (25)
40case SymbolKind.Alias:
45case SymbolKind.Parameter:
49case SymbolKind.TypeParameter:
54while (symbol != null && symbol.Kind != SymbolKind.Namespace)
121if (symbol.Kind is SymbolKind.Event or SymbolKind.Property)
152if (symbol.Kind is not SymbolKind.Method and not SymbolKind.Property and not SymbolKind.Event)
189if (symbol.Kind == SymbolKind.Event)
194if (symbol.Kind == SymbolKind.Property)
235=> symbol is { Kind: SymbolKind.ArrayType };
243public static bool IsKind([NotNullWhen(true)] this ISymbol? symbol, SymbolKind kind)
246public static bool MatchesKind([NotNullWhen(true)] this ISymbol? symbol, SymbolKind kind)
249public static bool MatchesKind([NotNullWhen(true)] this ISymbol? symbol, SymbolKind kind1, SymbolKind kind2)
255public static bool MatchesKind([NotNullWhen(true)] this ISymbol? symbol, SymbolKind kind1, SymbolKind kind2, SymbolKind kind3)
261public static bool MatchesKind([NotNullWhen(true)] this ISymbol? symbol, params SymbolKind[] kinds)
271=> symbol is { Kind: SymbolKind.Field, ContainingType.TypeKind: TypeKind.Enum };
354SymbolKind.NamedType => ((INamedTypeSymbol)symbol).Arity,
355SymbolKind.Method => ((IMethodSymbol)symbol).Arity,
626if (symbol.Kind != SymbolKind.Local)
812public static bool IsKind<TSymbol>(this ISymbol symbol, SymbolKind kind, [NotNullWhen(true)] out TSymbol? result) where TSymbol : class, ISymbol
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\SymbolEquivalenceComparer.EquivalenceVisitor.cs (28)
30var xKind = GetKindAndUnwrapAlias(ref x);
31var yKind = GetKindAndUnwrapAlias(ref y);
40if ((xKind == SymbolKind.DynamicType && IsObjectType(y)) ||
41(yKind == SymbolKind.DynamicType && IsObjectType(x)))
49if (xKind == SymbolKind.ArrayType && y.IsReadOnlySpan())
53else if (x.IsReadOnlySpan() && yKind == SymbolKind.ArrayType)
112private bool AreEquivalentWorker(ISymbol x, ISymbol y, SymbolKind k, Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies)
117SymbolKind.ArrayType => ArrayTypesAreEquivalent((IArrayTypeSymbol)x, (IArrayTypeSymbol)y, equivalentTypesWithDifferingAssemblies),
118SymbolKind.Assembly => AssembliesAreEquivalent((IAssemblySymbol)x, (IAssemblySymbol)y),
119SymbolKind.DynamicType => NullableAnnotationsEquivalent((IDynamicTypeSymbol)x, (IDynamicTypeSymbol)y),
120SymbolKind.Event => EventsAreEquivalent((IEventSymbol)x, (IEventSymbol)y, equivalentTypesWithDifferingAssemblies),
121SymbolKind.Field => FieldsAreEquivalent((IFieldSymbol)x, (IFieldSymbol)y, equivalentTypesWithDifferingAssemblies),
122SymbolKind.Label => LabelsAreEquivalent((ILabelSymbol)x, (ILabelSymbol)y),
123SymbolKind.Local => LocalsAreEquivalent((ILocalSymbol)x, (ILocalSymbol)y),
124SymbolKind.Method => MethodsAreEquivalent((IMethodSymbol)x, (IMethodSymbol)y, equivalentTypesWithDifferingAssemblies),
125SymbolKind.NetModule => ModulesAreEquivalent((IModuleSymbol)x, (IModuleSymbol)y),
126SymbolKind.NamedType => NamedTypesAreEquivalent((INamedTypeSymbol)x, (INamedTypeSymbol)y, equivalentTypesWithDifferingAssemblies),
127SymbolKind.ErrorType => NamedTypesAreEquivalent((INamedTypeSymbol)x, (INamedTypeSymbol)y, equivalentTypesWithDifferingAssemblies),
128SymbolKind.Namespace => NamespacesAreEquivalent((INamespaceSymbol)x, (INamespaceSymbol)y, equivalentTypesWithDifferingAssemblies),
129SymbolKind.Parameter => ParametersAreEquivalent((IParameterSymbol)x, (IParameterSymbol)y, equivalentTypesWithDifferingAssemblies),
130SymbolKind.PointerType => PointerTypesAreEquivalent((IPointerTypeSymbol)x, (IPointerTypeSymbol)y, equivalentTypesWithDifferingAssemblies),
131SymbolKind.Property => PropertiesAreEquivalent((IPropertySymbol)x, (IPropertySymbol)y, equivalentTypesWithDifferingAssemblies),
132SymbolKind.RangeVariable => RangeVariablesAreEquivalent((IRangeVariableSymbol)x, (IRangeVariableSymbol)y),
133SymbolKind.TypeParameter => TypeParametersAreEquivalent((ITypeParameterSymbol)x, (ITypeParameterSymbol)y, equivalentTypesWithDifferingAssemblies),
134SymbolKind.Preprocessing => PreprocessingSymbolsAreEquivalent((IPreprocessingSymbol)x, (IPreprocessingSymbol)y),
135SymbolKind.FunctionPointerType => FunctionPointerTypesAreEquivalent((IFunctionPointerTypeSymbol)x, (IFunctionPointerTypeSymbol)y, equivalentTypesWithDifferingAssemblies),
367if (x.Kind == SymbolKind.ErrorType &&
371Debug.Assert(y.Kind == SymbolKind.ErrorType);
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\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),
Roslyn.Diagnostics.CSharp.Analyzers (26)
Roslyn.Diagnostics.VisualBasic.Analyzers (18)
System.Private.CoreLib.Generators (3)
System.Text.Json.SourceGeneration (4)
System.Text.RegularExpressions.Generator (4)
System.Windows.Forms.Analyzers.CSharp (1)
System.Windows.Forms.Analyzers.VisualBasic (1)