9371 references to SymbolKind
Analyzer.Utilities.UnitTests (9)
ConfigurationSchemaGenerator (4)
GenerateDocumentationAndConfigFiles (259)
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\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\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\ISymbolExtensions.cs (25)
41case SymbolKind.Alias:
46case SymbolKind.Parameter:
50case SymbolKind.TypeParameter:
55while (symbol != null && symbol.Kind != SymbolKind.Namespace)
122if (symbol.Kind is SymbolKind.Event or SymbolKind.Property)
153if (symbol.Kind is not SymbolKind.Method and not SymbolKind.Property and not SymbolKind.Event)
190if (symbol.Kind == SymbolKind.Event)
195if (symbol.Kind == SymbolKind.Property)
236=> symbol is { Kind: SymbolKind.ArrayType };
244public static bool IsKind([NotNullWhen(true)] this ISymbol? symbol, SymbolKind kind)
247public static bool MatchesKind([NotNullWhen(true)] this ISymbol? symbol, SymbolKind kind)
250public static bool MatchesKind([NotNullWhen(true)] this ISymbol? symbol, SymbolKind kind1, SymbolKind kind2)
256public static bool MatchesKind([NotNullWhen(true)] this ISymbol? symbol, SymbolKind kind1, SymbolKind kind2, SymbolKind kind3)
262public static bool MatchesKind([NotNullWhen(true)] this ISymbol? symbol, params SymbolKind[] kinds)
272=> symbol is { Kind: SymbolKind.Field, ContainingType.TypeKind: TypeKind.Enum };
355SymbolKind.NamedType => ((INamedTypeSymbol)symbol).Arity,
356SymbolKind.Method => ((IMethodSymbol)symbol).Arity,
593if (symbol.Kind != SymbolKind.Local)
779public static bool IsKind<TSymbol>(this ISymbol symbol, SymbolKind kind, [NotNullWhen(true)] out TSymbol? result) where TSymbol : class, ISymbol
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\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 (23)
Metrics (268)
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\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\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\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\ISymbolExtensions.cs (25)
41case SymbolKind.Alias:
46case SymbolKind.Parameter:
50case SymbolKind.TypeParameter:
55while (symbol != null && symbol.Kind != SymbolKind.Namespace)
122if (symbol.Kind is SymbolKind.Event or SymbolKind.Property)
153if (symbol.Kind is not SymbolKind.Method and not SymbolKind.Property and not SymbolKind.Event)
190if (symbol.Kind == SymbolKind.Event)
195if (symbol.Kind == SymbolKind.Property)
236=> symbol is { Kind: SymbolKind.ArrayType };
244public static bool IsKind([NotNullWhen(true)] this ISymbol? symbol, SymbolKind kind)
247public static bool MatchesKind([NotNullWhen(true)] this ISymbol? symbol, SymbolKind kind)
250public static bool MatchesKind([NotNullWhen(true)] this ISymbol? symbol, SymbolKind kind1, SymbolKind kind2)
256public static bool MatchesKind([NotNullWhen(true)] this ISymbol? symbol, SymbolKind kind1, SymbolKind kind2, SymbolKind kind3)
262public static bool MatchesKind([NotNullWhen(true)] this ISymbol? symbol, params SymbolKind[] kinds)
272=> symbol is { Kind: SymbolKind.Field, ContainingType.TypeKind: TypeKind.Enum };
355SymbolKind.NamedType => ((INamedTypeSymbol)symbol).Arity,
356SymbolKind.Method => ((IMethodSymbol)symbol).Arity,
593if (symbol.Kind != SymbolKind.Local)
779public static bool IsKind<TSymbol>(this ISymbol symbol, SymbolKind kind, [NotNullWhen(true)] out TSymbol? result) where TSymbol : class, ISymbol
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\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),
Metrics.Legacy (270)
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\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\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\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\ISymbolExtensions.cs (25)
41case SymbolKind.Alias:
46case SymbolKind.Parameter:
50case SymbolKind.TypeParameter:
55while (symbol != null && symbol.Kind != SymbolKind.Namespace)
122if (symbol.Kind is SymbolKind.Event or SymbolKind.Property)
153if (symbol.Kind is not SymbolKind.Method and not SymbolKind.Property and not SymbolKind.Event)
190if (symbol.Kind == SymbolKind.Event)
195if (symbol.Kind == SymbolKind.Property)
236=> symbol is { Kind: SymbolKind.ArrayType };
244public static bool IsKind([NotNullWhen(true)] this ISymbol? symbol, SymbolKind kind)
247public static bool MatchesKind([NotNullWhen(true)] this ISymbol? symbol, SymbolKind kind)
250public static bool MatchesKind([NotNullWhen(true)] this ISymbol? symbol, SymbolKind kind1, SymbolKind kind2)
256public static bool MatchesKind([NotNullWhen(true)] this ISymbol? symbol, SymbolKind kind1, SymbolKind kind2, SymbolKind kind3)
262public static bool MatchesKind([NotNullWhen(true)] this ISymbol? symbol, params SymbolKind[] kinds)
272=> symbol is { Kind: SymbolKind.Field, ContainingType.TypeKind: TypeKind.Enum };
355SymbolKind.NamedType => ((INamedTypeSymbol)symbol).Arity,
356SymbolKind.Method => ((IMethodSymbol)symbol).Arity,
593if (symbol.Kind != SymbolKind.Local)
779public static bool IsKind<TSymbol>(this ISymbol symbol, SymbolKind kind, [NotNullWhen(true)] out TSymbol? result) where TSymbol : class, ISymbol
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\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.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.AspNetCore.SignalR.Client.SourceGenerator (4)
Microsoft.CodeAnalysis (135)
Microsoft.CodeAnalysis.Analyzers (327)
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\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\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\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\ISymbolExtensions.cs (25)
41case SymbolKind.Alias:
46case SymbolKind.Parameter:
50case SymbolKind.TypeParameter:
55while (symbol != null && symbol.Kind != SymbolKind.Namespace)
122if (symbol.Kind is SymbolKind.Event or SymbolKind.Property)
153if (symbol.Kind is not SymbolKind.Method and not SymbolKind.Property and not SymbolKind.Event)
190if (symbol.Kind == SymbolKind.Event)
195if (symbol.Kind == SymbolKind.Property)
236=> symbol is { Kind: SymbolKind.ArrayType };
244public static bool IsKind([NotNullWhen(true)] this ISymbol? symbol, SymbolKind kind)
247public static bool MatchesKind([NotNullWhen(true)] this ISymbol? symbol, SymbolKind kind)
250public static bool MatchesKind([NotNullWhen(true)] this ISymbol? symbol, SymbolKind kind1, SymbolKind kind2)
256public static bool MatchesKind([NotNullWhen(true)] this ISymbol? symbol, SymbolKind kind1, SymbolKind kind2, SymbolKind kind3)
262public static bool MatchesKind([NotNullWhen(true)] this ISymbol? symbol, params SymbolKind[] kinds)
272=> symbol is { Kind: SymbolKind.Field, ContainingType.TypeKind: TypeKind.Enum };
355SymbolKind.NamedType => ((INamedTypeSymbol)symbol).Arity,
356SymbolKind.Method => ((IMethodSymbol)symbol).Arity,
593if (symbol.Kind != SymbolKind.Local)
779public static bool IsKind<TSymbol>(this ISymbol symbol, SymbolKind kind, [NotNullWhen(true)] out TSymbol? result) where TSymbol : class, ISymbol
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\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.Analyzers.UnitTests (28)
MetaAnalyzers\UnsupportedSymbolKindArgumentRuleTests.cs (28)
26GetCSharpExpectedDiagnostic(20, 13, unsupportedSymbolKind: SymbolKind.Alias),
27GetCSharpExpectedDiagnostic(21, 13, unsupportedSymbolKind: SymbolKind.ArrayType),
28GetCSharpExpectedDiagnostic(22, 13, unsupportedSymbolKind: SymbolKind.Assembly),
29GetCSharpExpectedDiagnostic(23, 13, unsupportedSymbolKind: SymbolKind.Discard),
30GetCSharpExpectedDiagnostic(24, 13, unsupportedSymbolKind: SymbolKind.DynamicType),
31GetCSharpExpectedDiagnostic(25, 13, unsupportedSymbolKind: SymbolKind.ErrorType),
32GetCSharpExpectedDiagnostic(28, 13, unsupportedSymbolKind: SymbolKind.Label),
33GetCSharpExpectedDiagnostic(29, 13, unsupportedSymbolKind: SymbolKind.Local),
34GetCSharpExpectedDiagnostic(31, 13, unsupportedSymbolKind: SymbolKind.NetModule),
35GetCSharpExpectedDiagnostic(35, 13, unsupportedSymbolKind: SymbolKind.PointerType),
36GetCSharpExpectedDiagnostic(37, 13, unsupportedSymbolKind: SymbolKind.Preprocessing),
37GetCSharpExpectedDiagnostic(38, 13, unsupportedSymbolKind: SymbolKind.RangeVariable),
38GetCSharpExpectedDiagnostic(39, 13, unsupportedSymbolKind: SymbolKind.TypeParameter),
95GetBasicExpectedDiagnostic(17, 13, unsupportedSymbolKind: SymbolKind.Alias),
96GetBasicExpectedDiagnostic(18, 13, unsupportedSymbolKind: SymbolKind.ArrayType),
97GetBasicExpectedDiagnostic(19, 13, unsupportedSymbolKind: SymbolKind.Assembly),
98GetBasicExpectedDiagnostic(20, 13, unsupportedSymbolKind: SymbolKind.Discard),
99GetBasicExpectedDiagnostic(21, 13, unsupportedSymbolKind: SymbolKind.DynamicType),
100GetBasicExpectedDiagnostic(22, 13, unsupportedSymbolKind: SymbolKind.ErrorType),
101GetBasicExpectedDiagnostic(25, 13, unsupportedSymbolKind: SymbolKind.Label),
102GetBasicExpectedDiagnostic(26, 13, unsupportedSymbolKind: SymbolKind.Local),
103GetBasicExpectedDiagnostic(28, 13, unsupportedSymbolKind: SymbolKind.NetModule),
104GetBasicExpectedDiagnostic(32, 13, unsupportedSymbolKind: SymbolKind.PointerType),
105GetBasicExpectedDiagnostic(34, 13, unsupportedSymbolKind: SymbolKind.Preprocessing),
106GetBasicExpectedDiagnostic(35, 13, unsupportedSymbolKind: SymbolKind.RangeVariable),
107GetBasicExpectedDiagnostic(36, 13, unsupportedSymbolKind: SymbolKind.TypeParameter),
246private static DiagnosticResult GetCSharpExpectedDiagnostic(int line, int column, SymbolKind unsupportedSymbolKind) =>
253private static DiagnosticResult GetBasicExpectedDiagnostic(int line, int column, SymbolKind unsupportedSymbolKind) =>
Microsoft.CodeAnalysis.AnalyzerUtilities (284)
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\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\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\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\ISymbolExtensions.cs (25)
41case SymbolKind.Alias:
46case SymbolKind.Parameter:
50case SymbolKind.TypeParameter:
55while (symbol != null && symbol.Kind != SymbolKind.Namespace)
122if (symbol.Kind is SymbolKind.Event or SymbolKind.Property)
153if (symbol.Kind is not SymbolKind.Method and not SymbolKind.Property and not SymbolKind.Event)
190if (symbol.Kind == SymbolKind.Event)
195if (symbol.Kind == SymbolKind.Property)
236=> symbol is { Kind: SymbolKind.ArrayType };
244public static bool IsKind([NotNullWhen(true)] this ISymbol? symbol, SymbolKind kind)
247public static bool MatchesKind([NotNullWhen(true)] this ISymbol? symbol, SymbolKind kind)
250public static bool MatchesKind([NotNullWhen(true)] this ISymbol? symbol, SymbolKind kind1, SymbolKind kind2)
256public static bool MatchesKind([NotNullWhen(true)] this ISymbol? symbol, SymbolKind kind1, SymbolKind kind2, SymbolKind kind3)
262public static bool MatchesKind([NotNullWhen(true)] this ISymbol? symbol, params SymbolKind[] kinds)
272=> symbol is { Kind: SymbolKind.Field, ContainingType.TypeKind: TypeKind.Enum };
355SymbolKind.NamedType => ((INamedTypeSymbol)symbol).Arity,
356SymbolKind.Method => ((IMethodSymbol)symbol).Arity,
593if (symbol.Kind != SymbolKind.Local)
779public static bool IsKind<TSymbol>(this ISymbol symbol, SymbolKind kind, [NotNullWhen(true)] out TSymbol? result) where TSymbol : class, ISymbol
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\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.BannedApiAnalyzers (302)
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\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\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\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\ISymbolExtensions.cs (25)
41case SymbolKind.Alias:
46case SymbolKind.Parameter:
50case SymbolKind.TypeParameter:
55while (symbol != null && symbol.Kind != SymbolKind.Namespace)
122if (symbol.Kind is SymbolKind.Event or SymbolKind.Property)
153if (symbol.Kind is not SymbolKind.Method and not SymbolKind.Property and not SymbolKind.Event)
190if (symbol.Kind == SymbolKind.Event)
195if (symbol.Kind == SymbolKind.Property)
236=> symbol is { Kind: SymbolKind.ArrayType };
244public static bool IsKind([NotNullWhen(true)] this ISymbol? symbol, SymbolKind kind)
247public static bool MatchesKind([NotNullWhen(true)] this ISymbol? symbol, SymbolKind kind)
250public static bool MatchesKind([NotNullWhen(true)] this ISymbol? symbol, SymbolKind kind1, SymbolKind kind2)
256public static bool MatchesKind([NotNullWhen(true)] this ISymbol? symbol, SymbolKind kind1, SymbolKind kind2, SymbolKind kind3)
262public static bool MatchesKind([NotNullWhen(true)] this ISymbol? symbol, params SymbolKind[] kinds)
272=> symbol is { Kind: SymbolKind.Field, ContainingType.TypeKind: TypeKind.Enum };
355SymbolKind.NamedType => ((INamedTypeSymbol)symbol).Arity,
356SymbolKind.Method => ((IMethodSymbol)symbol).Arity,
593if (symbol.Kind != SymbolKind.Local)
779public static bool IsKind<TSymbol>(this ISymbol symbol, SymbolKind kind, [NotNullWhen(true)] out TSymbol? result) where TSymbol : class, ISymbol
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\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 (225)
src\Analyzers\Core\Analyzers\RemoveUnusedParametersAndValues\AbstractRemoveUnusedParametersAndValuesDiagnosticAnalyzer.SymbolStartAnalyzer.cs (1)
71}, SymbolKind.NamedType);
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\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\ISymbolExtensions.cs (25)
41case SymbolKind.Alias:
46case SymbolKind.Parameter:
50case SymbolKind.TypeParameter:
55while (symbol != null && symbol.Kind != SymbolKind.Namespace)
122if (symbol.Kind is SymbolKind.Event or SymbolKind.Property)
153if (symbol.Kind is not SymbolKind.Method and not SymbolKind.Property and not SymbolKind.Event)
190if (symbol.Kind == SymbolKind.Event)
195if (symbol.Kind == SymbolKind.Property)
236=> symbol is { Kind: SymbolKind.ArrayType };
244public static bool IsKind([NotNullWhen(true)] this ISymbol? symbol, SymbolKind kind)
247public static bool MatchesKind([NotNullWhen(true)] this ISymbol? symbol, SymbolKind kind)
250public static bool MatchesKind([NotNullWhen(true)] this ISymbol? symbol, SymbolKind kind1, SymbolKind kind2)
256public static bool MatchesKind([NotNullWhen(true)] this ISymbol? symbol, SymbolKind kind1, SymbolKind kind2, SymbolKind kind3)
262public static bool MatchesKind([NotNullWhen(true)] this ISymbol? symbol, params SymbolKind[] kinds)
272=> symbol is { Kind: SymbolKind.Field, ContainingType.TypeKind: TypeKind.Enum };
355SymbolKind.NamedType => ((INamedTypeSymbol)symbol).Arity,
356SymbolKind.Method => ((IMethodSymbol)symbol).Arity,
593if (symbol.Kind != SymbolKind.Local)
779public static bool IsKind<TSymbol>(this ISymbol symbol, SymbolKind kind, [NotNullWhen(true)] out TSymbol? result) where TSymbol : class, ISymbol
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\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 (68)
src\Analyzers\Core\CodeFixes\GenerateVariable\AbstractGenerateVariableService.cs (4)
100document.Document, state, SymbolKind.Property, state.DetermineMaximalAccessibility(), cancellationToken).ConfigureAwait(false))
116Document document, State state, SymbolKind kind, Accessibility accessibility, CancellationToken cancellationToken)
182document, state, SymbolKind.Local, Accessibility.NotApplicable, cancellationToken).ConfigureAwait(false))
198document, state, SymbolKind.Parameter, Accessibility.NotApplicable, cancellationToken).ConfigureAwait(false))
Microsoft.CodeAnalysis.CodeStyle.UnitTestUtilities (15)
src\Features\DiagnosticsTestUtilities\NamingStyles\NamingStylesTestOptionSets.cs (15)
116case SymbolKind symbolKind:
165[new SymbolSpecification.SymbolKindOrTypeKind(SymbolKind.Field)],
197[new SymbolSpecification.SymbolKindOrTypeKind(SymbolKind.Field)],
229[new SymbolSpecification.SymbolKindOrTypeKind(SymbolKind.Field)],
261[new SymbolSpecification.SymbolKindOrTypeKind(SymbolKind.Field)],
423[new SymbolSpecification.SymbolKindOrTypeKind(SymbolKind.Parameter)],
455[new SymbolSpecification.SymbolKindOrTypeKind(SymbolKind.Parameter)],
487[new SymbolSpecification.SymbolKindOrTypeKind(SymbolKind.Parameter)],
519[new SymbolSpecification.SymbolKindOrTypeKind(SymbolKind.Local)],
583[new SymbolSpecification.SymbolKindOrTypeKind(SymbolKind.Property)],
647[new SymbolSpecification.SymbolKindOrTypeKind(SymbolKind.TypeParameter)],
680new SymbolSpecification.SymbolKindOrTypeKind(SymbolKind.Field),
681new SymbolSpecification.SymbolKindOrTypeKind(SymbolKind.Local),
714[new SymbolSpecification.SymbolKindOrTypeKind(SymbolKind.Local)],
721[new SymbolSpecification.SymbolKindOrTypeKind(SymbolKind.Local)],
Microsoft.CodeAnalysis.CSharp (1289)
Binder\Binder_Expressions.cs (63)
40inStaticContext = memberOpt.Kind == SymbolKind.Field || memberOpt.Kind == SymbolKind.Method || memberOpt.Kind == SymbolKind.Property;
505Debug.Assert(this.ContainingMemberOrLambda.Kind == SymbolKind.Method
506|| this.ContainingMemberOrLambda.Kind == SymbolKind.Property
1419if (type.IsUnboundGenericType() || type.Kind == SymbolKind.TypeParameter)
1667bool isNamedType = (symbol.Kind == SymbolKind.NamedType) || (symbol.Kind == SymbolKind.ErrorType);
1771this.ContainingMember() is { Kind: not SymbolKind.NamedType, IsStatic: false } && // We are in an instance member
1992if (symbol.Kind is not (SymbolKind.Event or SymbolKind.Property))
1999case SymbolKind.Local:
2114case SymbolKind.Parameter:
2128this.ContainingMember() is not { Kind: not SymbolKind.NamedType, IsStatic: false } || // We are not in an instance member
2205case SymbolKind.NamedType:
2206case SymbolKind.ErrorType:
2207case SymbolKind.TypeParameter:
2212case SymbolKind.Property:
2218case SymbolKind.Event:
2224case SymbolKind.Field:
2230case SymbolKind.Namespace:
2233case SymbolKind.Alias:
2244case SymbolKind.RangeVariable:
2271this.ContainingMember() is not { Kind: not SymbolKind.NamedType, IsStatic: false } containingMember || // We are not in an instance member
2330(containingMember.Kind != SymbolKind.NamedType || currentType.IsScriptClass);
2400if (containingMember.Kind == SymbolKind.NamedType)
3220if ((InConstructorInitializer || InFieldInitializer) && ContainingMemberOrLambda.ContainingSymbol.Kind == SymbolKind.NamedType)
3296if (containingSymbol.Kind == SymbolKind.Method
3314if (member.Kind == SymbolKind.Field &&
7524case SymbolKind.Field:
7525case SymbolKind.Local:
7526case SymbolKind.Parameter:
7527case SymbolKind.Property:
7528case SymbolKind.RangeVariable:
7611Error(diagnostics, ErrorCode.ERR_TypeArgsNotAllowed, right, right.Identifier.Text, SymbolKind.Property.Localize());
7839else if (sym.Kind == SymbolKind.Namespace)
7845Debug.Assert(sym.Kind == SymbolKind.NamedType);
7861Debug.Assert(symbols[0].Kind == SymbolKind.NamedType);
8151lookupResult.Symbols.All(s => s.Kind == SymbolKind.Method) ? lookupResult.Symbols.SelectAsArray(s_toMethodSymbolFunc) : ImmutableArray<MethodSymbol>.Empty,
8288if (symbols.Length > 0 && symbols[0].Kind == SymbolKind.Method)
8333case SymbolKind.Field:
8336case SymbolKind.Property:
8339case SymbolKind.Event:
8451Debug.Assert(symbol.Kind != SymbolKind.Method);
8452left = ReplaceTypeOrValueReceiver(left, symbol.IsStatic || symbol.Kind == SymbolKind.NamedType, diagnostics);
8456if (symbol.Kind is not (SymbolKind.Event or SymbolKind.Property))
8463case SymbolKind.NamedType:
8464case SymbolKind.ErrorType:
8488case SymbolKind.Property:
8494case SymbolKind.Event:
8500case SymbolKind.Field:
8647Debug.Assert(arity == 0 || lookupResult.Symbols.All(s => s.Kind != SymbolKind.Property));
9206var kind = symbol.Kind;
9209var existingKind = methodOrPropertyGroup[0].Kind;
9214if ((existingKind == SymbolKind.Method) ||
9215((existingKind == SymbolKind.Property) && (kind != SymbolKind.Method)))
9226if ((kind == SymbolKind.Method) || (kind == SymbolKind.Property))
9251if ((methodOrPropertyGroup[0].Kind == SymbolKind.Method) || ((object)other == null))
9282case SymbolKind.Method:
9285case SymbolKind.Property:
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 (21)
src\Analyzers\CSharp\Analyzers\MakeStructFieldsWritable\CSharpMakeStructFieldsWritableDiagnosticAnalyzer.cs (1)
69}, SymbolKind.NamedType);
Microsoft.CodeAnalysis.CSharp.CodeStyle.Fixes (24)
Microsoft.CodeAnalysis.CSharp.CodeStyle.UnitTests (13)
src\Analyzers\CSharp\Tests\NamingStyles\NamingStylesTests.cs (13)
222[InlineData("} namespace [|c2|] {", "} namespace C2 {", SymbolKind.Namespace, Accessibility.Public)]
228[InlineData("class M<[|t|]> {}", "class M<T> {}", SymbolKind.TypeParameter, Accessibility.Private)]
229[InlineData("void M<[|t|]>() {}", "void M<T>() {}", SymbolKind.TypeParameter, Accessibility.Private)]
230[InlineData("int [|m|] { get; }", "int M { get; }", SymbolKind.Property, Accessibility.Private)]
233[InlineData("int [|m|];", "int M;", SymbolKind.Field, Accessibility.Private)]
234[InlineData("event System.EventHandler [|m|];", "event System.EventHandler M;", SymbolKind.Event, Accessibility.Private)]
235[InlineData("void Outer(int [|m|]) {}", "void Outer(int M) {}", SymbolKind.Parameter, Accessibility.Private)]
236[InlineData("void Outer() { void Inner(int [|m|]) {} }", "void Outer() { void Inner(int M) {} }", SymbolKind.Parameter, Accessibility.NotApplicable)]
237[InlineData("void Outer() { System.Action<int> action = [|m|] => {} }", "void Outer() { System.Action<int> action = M => {} }", SymbolKind.Parameter, Accessibility.NotApplicable)]
238[InlineData("void Outer() { System.Action<int> action = ([|m|]) => {} }", "void Outer() { System.Action<int> action = (M) => {} }", SymbolKind.Parameter, Accessibility.NotApplicable)]
239[InlineData("void Outer() { System.Action<int> action = (int [|m|]) => {} }", "void Outer() { System.Action<int> action = (int M) => {} }", SymbolKind.Parameter, Accessibility.NotApplicable)]
240[InlineData("void Outer() { System.Action<int> action = delegate (int [|m|]) {} }", "void Outer() { System.Action<int> action = delegate (int M) {} }", SymbolKind.Parameter, Accessibility.NotApplicable)]
241[InlineData("void Outer() { int [|m|]; }", "void Outer() { int M; }", SymbolKind.Local, Accessibility.NotApplicable)]
Microsoft.CodeAnalysis.CSharp.CommandLine.UnitTests (2)
Microsoft.CodeAnalysis.CSharp.EditorFeatures (1)
Microsoft.CodeAnalysis.CSharp.EditorFeatures.UnitTests (76)
Completion\CompletionProviders\DeclarationNameCompletionProviderTests.cs (8)
2640SpecificationStyle(new SymbolKindOrTypeKind(SymbolKind.Local), name: "Local1"),
2641SpecificationStyle(new SymbolKindOrTypeKind(SymbolKind.Local), name: "Local1"),
2671SpecificationStyle(new SymbolKindOrTypeKind(SymbolKind.Field), "Field"),
2672SpecificationStyle(new SymbolKindOrTypeKind(SymbolKind.Property), "Property"),
2674SpecificationStyle(new SymbolKindOrTypeKind(SymbolKind.Local), "Local"),
2712[new SymbolKindOrTypeKind(SymbolKind.Parameter)],
2718[new SymbolKindOrTypeKind(SymbolKind.Parameter), new SymbolKindOrTypeKind(SymbolKind.Local)],
Completion\CompletionProviders\DeclarationNameCompletionProviderTests_NameDeclarationInfoTests.cs (38)
34new SymbolKindOrTypeKind(SymbolKind.Field),
35new SymbolKindOrTypeKind(SymbolKind.Property),
52new SymbolKindOrTypeKind(SymbolKind.Field),
53new SymbolKindOrTypeKind(SymbolKind.Property),
70new SymbolKindOrTypeKind(SymbolKind.Property),
87new SymbolKindOrTypeKind(SymbolKind.Field),
88new SymbolKindOrTypeKind(SymbolKind.Property),
105new SymbolKindOrTypeKind(SymbolKind.Field));
124new SymbolKindOrTypeKind(SymbolKind.Local),
144new SymbolKindOrTypeKind(SymbolKind.Local));
163new SymbolKindOrTypeKind(SymbolKind.Local),
183new SymbolKindOrTypeKind(SymbolKind.Local));
202new SymbolKindOrTypeKind(SymbolKind.Local));
221new SymbolKindOrTypeKind(SymbolKind.Local));
240new SymbolKindOrTypeKind(SymbolKind.Local));
277new SymbolKindOrTypeKind(SymbolKind.Local));
294new SymbolKindOrTypeKind(SymbolKind.Parameter));
311new SymbolKindOrTypeKind(SymbolKind.Parameter));
328new SymbolKindOrTypeKind(SymbolKind.Parameter));
345new SymbolKindOrTypeKind(SymbolKind.Parameter));
363new SymbolKindOrTypeKind(SymbolKind.Parameter));
376new SymbolKindOrTypeKind(SymbolKind.TypeParameter));
385new SymbolKindOrTypeKind(SymbolKind.TypeParameter));
395new SymbolKindOrTypeKind(SymbolKind.Field));
405new SymbolKindOrTypeKind(SymbolKind.Field));
415new SymbolKindOrTypeKind(SymbolKind.Property),
426new SymbolKindOrTypeKind(SymbolKind.Property),
437new SymbolKindOrTypeKind(SymbolKind.Property),
448new SymbolKindOrTypeKind(SymbolKind.Property),
469new SymbolKindOrTypeKind(SymbolKind.Field),
470new SymbolKindOrTypeKind(SymbolKind.Property),
488new SymbolKindOrTypeKind(SymbolKind.Local));
505new SymbolKindOrTypeKind(SymbolKind.Local));
524new SymbolKindOrTypeKind(SymbolKind.Local));
646new SymbolKindOrTypeKind(SymbolKind.Local),
663new SymbolKindOrTypeKind(SymbolKind.Local),
680new SymbolKindOrTypeKind(SymbolKind.Local),
696new SymbolKindOrTypeKind(SymbolKind.Local),
Microsoft.CodeAnalysis.CSharp.Emit.UnitTests (92)
CodeGen\CodeGenDeconstructTests.cs (37)
3613Assert.Equal(SymbolKind.Field, field.Kind);
3700Assert.Equal(SymbolKind.NamedType, model.GetSymbolInfo(x1Type).Symbol.Kind);
3705Assert.Equal(SymbolKind.NamedType, model.GetSymbolInfo(x2Type).Symbol.Kind);
3753Assert.Equal(SymbolKind.NamedType, model.GetSymbolInfo(x1Type).Symbol.Kind);
3802Assert.Equal(SymbolKind.NamedType, model.GetSymbolInfo(x1Type).Symbol.Kind);
3805Assert.Equal(SymbolKind.NamedType, x1Alias.Target.Kind);
3810Assert.Equal(SymbolKind.NamedType, model.GetSymbolInfo(x2Type).Symbol.Kind);
3942Assert.Equal(SymbolKind.NamedType, model.GetSymbolInfo(x1Type).Symbol.Kind);
3947Assert.Equal(SymbolKind.NamedType, model.GetSymbolInfo(x2Type).Symbol.Kind);
3988Assert.Equal(SymbolKind.NamedType, model.GetSymbolInfo(x1Type).Symbol.Kind);
3993Assert.Equal(SymbolKind.NamedType, model.GetSymbolInfo(x2Type).Symbol.Kind);
4408Assert.Equal(SymbolKind.Parameter, symbol.Kind);
5035Assert.Equal(SymbolKind.NamedType, model.GetSymbolInfo(xType).Symbol.Kind);
5041Assert.Equal(SymbolKind.NamedType, model.GetSymbolInfo(yType).Symbol.Kind);
5187Assert.Equal(SymbolKind.NamedType, model.GetSymbolInfo(x1Type).Symbol.Kind);
5313Assert.Equal(SymbolKind.Local, x1Symbol.Kind);
5318Assert.Equal(SymbolKind.Local, x2Symbol.Kind);
5349Assert.Equal(SymbolKind.Local, x1Symbol.Kind);
5354Assert.Equal(SymbolKind.Local, x2Symbol.Kind);
5475Assert.Equal(SymbolKind.Field, firstX1Symbol.Kind);
5480Assert.Equal(SymbolKind.Field, secondX1Symbol.Kind);
5507Assert.Equal(SymbolKind.Field, firstYSymbol.Kind);
5512Assert.Equal(SymbolKind.Field, secondYSymbol.Kind);
5538Assert.Equal(SymbolKind.Field, firstXSymbol.Kind);
5543Assert.Equal(SymbolKind.Field, secondXSymbol.Kind);
5612Assert.Equal(SymbolKind.ErrorType, xTypeISymbol.Kind);
5818Assert.Equal(SymbolKind.NamedType, model.GetSymbolInfo(x1Type).Symbol.Kind);
5821Assert.Equal(SymbolKind.NamedType, x1Alias.Target.Kind);
5826Assert.Equal(SymbolKind.NamedType, model.GetSymbolInfo(x3Type).Symbol.Kind);
5829Assert.Equal(SymbolKind.NamedType, x3Alias.Target.Kind);
5870Assert.Equal(SymbolKind.NamedType, model.GetSymbolInfo(x1Type).Symbol.Kind);
5876Assert.Equal(SymbolKind.NamedType, model.GetSymbolInfo(x3Type).Symbol.Kind);
6005Assert.Equal(SymbolKind.Discard, isymbol.Kind);
6040Assert.Equal(SymbolKind.Discard, symbol.Kind);
6049Assert.Equal(SymbolKind.Discard, symbolClone.Kind);
6093Assert.Equal(SymbolKind.Discard, symbol.Kind);
6140Assert.Equal(SymbolKind.Discard, symbol.Kind);
CodeGen\CodeGenTupleTest.cs (36)
3351Assert.Equal(SymbolKind.ErrorType, mTuple.TupleUnderlyingType.Kind);
4502Assert.Equal(SymbolKind.NamedType, unnamedTuple.Kind);
4513Assert.Equal(SymbolKind.NamedType, namedTuple.Kind);
5819Assert.Equal(SymbolKind.NamedType, tupleWithoutNames.Kind);
5824Assert.Equal(SymbolKind.NamedType, tupleWithoutNames.Kind);
5877Assert.Equal(SymbolKind.NamedType, tupleWithoutNames.Kind);
5882Assert.Equal(SymbolKind.NamedType, tupleWithoutNames.Kind);
5916Assert.Equal(SymbolKind.NamedType, tuple.TupleUnderlyingType.Kind);
5919Assert.Equal(SymbolKind.NamedType, tuple.Kind);
5954Assert.Equal(SymbolKind.ErrorType, tupleWithoutNames.Kind);
5959Assert.Equal(SymbolKind.ErrorType, tupleWithoutNames.Kind);
5978Assert.Equal(SymbolKind.ErrorType, tupleWithNames.Kind);
5997Assert.Equal(SymbolKind.ErrorType, tupleWithSomeNames.Kind);
6015Assert.Equal(SymbolKind.ErrorType, tupleWithNames.Kind);
6194Assert.Equal(SymbolKind.NamedType, tupleWithoutNames.Kind);
6198Assert.Equal(SymbolKind.NamedType, types[0].Kind);
6199Assert.Equal(SymbolKind.ErrorType, types[1].Kind);
6373Assert.Equal(SymbolKind.NamedType, tupleWithoutNames.Kind);
6398Assert.Equal(SymbolKind.NamedType, tuple.Kind);
6421Assert.Equal(SymbolKind.ErrorType, tupleWithoutNames.Kind);
6437Assert.Equal(SymbolKind.ErrorType, tupleWithNames.Kind);
6452Assert.Equal(SymbolKind.ErrorType, tupleWithNames.Kind);
6547Assert.Equal(SymbolKind.NamedType, tupleWithoutNames.Kind);
6551Assert.Equal(SymbolKind.NamedType, types[0].Kind);
6552Assert.Equal(SymbolKind.ErrorType, types[1].Kind);
11153Assert.Equal(SymbolKind.NamedType, m1Tuple.Kind);
11417Assert.Equal(SymbolKind.NamedType, m1Tuple.Kind);
11629if (members1[i].Kind == SymbolKind.Method)
11646else if (members1[i].Kind == SymbolKind.Property)
12735Assert.Equal(SymbolKind.NamedType, m1Tuple.Kind);
15821Assert.Equal(SymbolKind.Property, m1P1.Kind);
15852Assert.Equal(SymbolKind.Property, m1this.Kind);
16050Assert.Equal(SymbolKind.Event, m1E1.Kind);
16084Assert.Equal(SymbolKind.Event, m1E2.Kind);
17374Assert.Equal(SymbolKind.Field, sym.Symbol.Kind);
17409Assert.Equal(SymbolKind.Field, bobField.Kind);
Microsoft.CodeAnalysis.CSharp.Emit3.UnitTests (190)
Attributes\AttributeTests_Security.cs (27)
676ParentKind = SymbolKind.NamedType,
695ParentKind = SymbolKind.NamedType,
729ParentKind = SymbolKind.Method,
772ParentKind = SymbolKind.Method,
810ParentKind = SymbolKind.Method,
850ParentKind = SymbolKind.NamedType,
903ParentKind = SymbolKind.Method,
955ParentKind = SymbolKind.NamedType,
974ParentKind = SymbolKind.NamedType,
1015ParentKind = SymbolKind.Method,
1034ParentKind = SymbolKind.Method,
1081ParentKind = SymbolKind.NamedType,
1100ParentKind = SymbolKind.NamedType,
1143ParentKind = SymbolKind.Method,
1162ParentKind = SymbolKind.Method,
1215ParentKind = SymbolKind.Assembly,
1232ParentKind = SymbolKind.Assembly,
1249ParentKind = SymbolKind.NamedType,
1268ParentKind = SymbolKind.Method,
1309ParentKind = SymbolKind.Assembly,
1326ParentKind = SymbolKind.NamedType,
1345ParentKind = SymbolKind.Method,
1389ParentKind = SymbolKind.Assembly,
1406ParentKind = SymbolKind.NamedType,
1425ParentKind = SymbolKind.NamedType,
1444ParentKind = SymbolKind.Method,
1519ParentKind = SymbolKind.NamedType,
Diagnostics\DiagnosticAnalyzerTests.cs (49)
246context.RegisterSymbolAction(AnalyzeSymbol, SymbolKind.NamedType);
516SymbolKind.Namespace, SymbolKind.NamedType, SymbolKind.Event, SymbolKind.Field, SymbolKind.Method, SymbolKind.Property);
842}, SymbolKind.Method);
2859TestSymbolStartAnalyzerCore(new SymbolStartAnalyzer(topLevelAction: false, SymbolKind.NamedType),
2873TestSymbolStartAnalyzerCore(new SymbolStartAnalyzer(topLevelAction: false, SymbolKind.Namespace),
2884TestSymbolStartAnalyzerCore(new SymbolStartAnalyzer(topLevelAction: false, SymbolKind.Method),
2902TestSymbolStartAnalyzerCore(new SymbolStartAnalyzer(topLevelAction: false, SymbolKind.Field),
2909TestSymbolStartAnalyzerCore(new SymbolStartAnalyzer(topLevelAction: false, SymbolKind.Property),
2916TestSymbolStartAnalyzerCore(new SymbolStartAnalyzer(topLevelAction: false, SymbolKind.Event),
2923TestSymbolStartAnalyzerCore(new SymbolStartAnalyzer(topLevelAction: false, SymbolKind.Parameter));
2929var analyzer1 = new SymbolStartAnalyzer(topLevelAction: false, SymbolKind.Namespace, analyzerId: 1);
2930var analyzer2 = new SymbolStartAnalyzer(topLevelAction: false, SymbolKind.Method, analyzerId: 2);
2955var analyzer1 = new SymbolStartAnalyzer(topLevelAction: false, SymbolKind.NamedType, analyzerId: 1);
2956var analyzer2 = new SymbolStartAnalyzer(topLevelAction: false, SymbolKind.Method, analyzerId: 2);
2989var symbolKinds = new[] { SymbolKind.NamedType, SymbolKind.Namespace, SymbolKind.Method,
2990SymbolKind.Property, SymbolKind.Event, SymbolKind.Field, SymbolKind.Parameter };
3033TestSymbolStartAnalyzerCore(new SymbolStartAnalyzer(topLevelAction: false, SymbolKind.Namespace, OperationKind.VariableDeclarationGroup),
3045TestSymbolStartAnalyzerCore(new SymbolStartAnalyzer(topLevelAction: false, SymbolKind.NamedType, OperationKind.VariableDeclarationGroup),
3062TestSymbolStartAnalyzerCore(new SymbolStartAnalyzer(topLevelAction: true, SymbolKind.Method, OperationKind.VariableDeclarationGroup),
3083var symbolKinds = new[] { SymbolKind.NamedType, SymbolKind.Namespace, SymbolKind.Method,
3084SymbolKind.Property, SymbolKind.Event, SymbolKind.Field, SymbolKind.Parameter };
3143var symbolKinds = new[] { SymbolKind.NamedType, SymbolKind.Namespace, SymbolKind.Method,
3144SymbolKind.Property, SymbolKind.Event, SymbolKind.Field, SymbolKind.Parameter };
3191var analyzers = new DiagnosticAnalyzer[] { new SymbolStartAnalyzer(topLevelAction: false, SymbolKind.NamedType, OperationKind.Invocation) };
3223var analyzers = new DiagnosticAnalyzer[] { new SymbolStartAnalyzer(topLevelAction: true, SymbolKind.NamedType, OperationKind.FieldReference) };
3265var analyzers = ImmutableArray.Create<DiagnosticAnalyzer>(new SymbolStartAnalyzer(topLevelAction: false, SymbolKind.NamedType));
3311var analyzers = ImmutableArray.Create<DiagnosticAnalyzer>(new SymbolStartAnalyzer(topLevelAction: false, SymbolKind.NamedType));
3347var analyzer1 = new SymbolStartAnalyzer(topLevelAction: true, SymbolKind.Field, analyzerId: 1);
3348var analyzer2 = new SymbolStartAnalyzer(topLevelAction: true, SymbolKind.Field, analyzerId: 2);
Semantics\ExtensionTests.cs (17)
102Assert.Equal(SymbolKind.NamedType, symbol.Kind);
34577Assert.Equal(SymbolKind.NamedType, model.GetSymbolInfo(memberAccess.Expression).Symbol.Kind);
34626Assert.Equal(SymbolKind.Parameter, model.GetSymbolInfo(memberAccess.Expression).Symbol.Kind);
35745Assert.Equal(SymbolKind.Parameter, model.GetSymbolInfo(memberAccess.Expression).Symbol.Kind);
35778Assert.Equal(SymbolKind.NamedType, model.GetSymbolInfo(memberAccess.Expression).Symbol.Kind);
37590Assert.Equal(SymbolKind.Parameter, symbol.Kind);
37611Assert.Equal(SymbolKind.Parameter, symbol.Kind);
51432context.RegisterSymbolAction(handle, SymbolKind.NamedType);
51433context.RegisterSymbolAction(handle, SymbolKind.Parameter);
51434context.RegisterSymbolAction(handle, SymbolKind.TypeParameter);
51435context.RegisterSymbolAction(handle, SymbolKind.Method);
51436context.RegisterSymbolAction(handle, SymbolKind.Property);
51532context.RegisterSymbolStartAction(handleStart, SymbolKind.NamedType);
51533context.RegisterSymbolStartAction(handleStart, SymbolKind.Method);
51534context.RegisterSymbolStartAction(handleStart, SymbolKind.Property);
51535context.RegisterSymbolStartAction(handleStart, SymbolKind.Parameter);
51536context.RegisterSymbolStartAction(handleStart, SymbolKind.TypeParameter);
Semantics\PrimaryConstructorTests.cs (36)
965Assert.Equal(SymbolKind.Local, outVar.Kind);
1012Assert.Equal(SymbolKind.Parameter, symbol.Kind);
1077Assert.Equal(SymbolKind.Parameter, symbol.Kind);
1305Assert.Equal(SymbolKind.Parameter, symbol.Kind);
1318Assert.Equal(SymbolKind.Local, symbol.Kind);
1329Assert.Equal(SymbolKind.Method, symbol.Kind);
1534Assert.Equal(SymbolKind.Parameter, symbol.Kind);
1623Assert.Equal(SymbolKind.Parameter, symbol.Kind);
1972Assert.Equal(SymbolKind.Parameter, symbol.Kind);
2646Assert.Equal(SymbolKind.Parameter, symbol.Kind);
2684Assert.Equal(SymbolKind.Parameter, symbol.Kind);
2721Assert.Equal(SymbolKind.Parameter, symbol.Kind);
2757Assert.Equal(SymbolKind.Parameter, symbol.Kind);
4080context.RegisterSymbolAction(Handle, SymbolKind.Method);
4081context.RegisterSymbolAction(Handle, SymbolKind.Property);
4082context.RegisterSymbolAction(Handle, SymbolKind.Parameter);
4083context.RegisterSymbolAction(Handle, SymbolKind.NamedType);
4166context.RegisterSymbolStartAction(Handle1, SymbolKind.Method);
4167context.RegisterSymbolStartAction(Handle1, SymbolKind.Property);
4168context.RegisterSymbolStartAction(Handle1, SymbolKind.Parameter);
4169context.RegisterSymbolStartAction(Handle1, SymbolKind.NamedType);
5143context.RegisterSymbolAction(Handle1, SymbolKind.Method);
5144context.RegisterSymbolAction(Handle2, SymbolKind.Property);
5145context.RegisterSymbolAction(Handle3, SymbolKind.Parameter);
5483context.RegisterSymbolAction(Handle, SymbolKind.Method);
5484context.RegisterSymbolAction(Handle, SymbolKind.Property);
5485context.RegisterSymbolAction(Handle, SymbolKind.Parameter);
5486context.RegisterSymbolAction(Handle, SymbolKind.NamedType);
5570context.RegisterSymbolStartAction(Handle1, SymbolKind.Method);
5571context.RegisterSymbolStartAction(Handle1, SymbolKind.Property);
5572context.RegisterSymbolStartAction(Handle1, SymbolKind.Parameter);
5573context.RegisterSymbolStartAction(Handle1, SymbolKind.NamedType);
7823Assert.Equal(SymbolKind.Property, symbol.Kind);
7829Assert.Equal(SymbolKind.Parameter, symbol.Kind);
8763Assert.Equal(SymbolKind.Parameter, symbol.Kind);
9169Assert.Equal(SymbolKind.Parameter, symbol.Kind);
Semantics\RecordTests.cs (27)
441Assert.Equal(SymbolKind.Parameter, parameter.Kind);
447Assert.Equal(SymbolKind.Parameter, initializer.Kind);
473Assert.Equal(SymbolKind.Local, outVar.Kind);
21186return comp.GetMember<NamedTypeSymbol>(typeName).GetMembers().WhereAsArray(m => m.Kind == SymbolKind.Property);
21253Assert.Equal(SymbolKind.Parameter, symbol!.Kind);
21483Assert.Equal(SymbolKind.Parameter, symbol!.Kind);
21496Assert.Equal(SymbolKind.Local, symbol!.Kind);
21507Assert.Equal(SymbolKind.Method, symbol!.Kind);
21712Assert.Equal(SymbolKind.Parameter, symbol!.Kind);
21801Assert.Equal(SymbolKind.Parameter, symbol!.Kind);
22188Assert.Equal(SymbolKind.Parameter, symbol!.Kind);
24752Assert.Equal(SymbolKind.Parameter, symbol!.Kind);
24787Assert.Equal(SymbolKind.Parameter, symbol!.Kind);
24821Assert.Equal(SymbolKind.Parameter, symbol!.Kind);
24856Assert.Equal(SymbolKind.Parameter, symbol!.Kind);
26622context.RegisterSymbolAction(Handle, SymbolKind.Method);
26623context.RegisterSymbolAction(Handle, SymbolKind.Property);
26624context.RegisterSymbolAction(Handle, SymbolKind.Parameter);
26625context.RegisterSymbolAction(Handle, SymbolKind.NamedType);
26717context.RegisterSymbolStartAction(Handle1, SymbolKind.Method);
26718context.RegisterSymbolStartAction(Handle1, SymbolKind.Property);
26719context.RegisterSymbolStartAction(Handle1, SymbolKind.Parameter);
26720context.RegisterSymbolStartAction(Handle1, SymbolKind.NamedType);
27714context.RegisterSymbolAction(Handle1, SymbolKind.Method);
27715context.RegisterSymbolAction(Handle2, SymbolKind.Property);
27716context.RegisterSymbolAction(Handle3, SymbolKind.Parameter);
28453Assert.Equal(SymbolKind.Property, model.GetSymbolInfo(cref).Symbol!.Kind);
Microsoft.CodeAnalysis.CSharp.Features (84)
Completion\CompletionProviders\DeclarationName\DeclarationNameInfo.cs (28)
28[new SymbolKindOrTypeKind(SymbolKind.Parameter)];
31[new SymbolKindOrTypeKind(SymbolKind.Property)];
102_ => [new SymbolKindOrTypeKind(SymbolKind.Local)], cancellationToken);
124_ => [new SymbolKindOrTypeKind(SymbolKind.Local)], cancellationToken);
151[new SymbolKindOrTypeKind(SymbolKind.Local)],
172_ => [new SymbolKindOrTypeKind(SymbolKind.Local), new SymbolKindOrTypeKind(MethodKind.LocalFunction)],
355(_ => [new SymbolKindOrTypeKind(SymbolKind.Local)])
402possibleDeclarationComputer: d => [new SymbolKindOrTypeKind(SymbolKind.Local)],
418possibleDeclarationComputer: d => [new SymbolKindOrTypeKind(SymbolKind.Local)],
429[new SymbolKindOrTypeKind(SymbolKind.TypeParameter)],
529return [new SymbolKindOrTypeKind(SymbolKind.Field)];
533new SymbolKindOrTypeKind(SymbolKind.Field),
534new SymbolKindOrTypeKind(SymbolKind.Property),
539possibleTypes = possibleTypes.Remove(new SymbolKindOrTypeKind(SymbolKind.Field));
545possibleTypes = possibleTypes.Remove(new SymbolKindOrTypeKind(SymbolKind.Field));
546possibleTypes = possibleTypes.Remove(new SymbolKindOrTypeKind(SymbolKind.Property));
556? [new SymbolKindOrTypeKind(SymbolKind.Local)] :
559[new SymbolKindOrTypeKind(SymbolKind.Local), new SymbolKindOrTypeKind(MethodKind.LocalFunction)];
645public static Glyph GetGlyph(SymbolKind kind, Accessibility? declaredAccessibility)
649SymbolKind.Field => Glyph.FieldPublic,
650SymbolKind.Local => Glyph.Local,
651SymbolKind.Method => Glyph.MethodPublic,
652SymbolKind.Parameter => Glyph.Parameter,
653SymbolKind.Property => Glyph.PropertyPublic,
654SymbolKind.RangeVariable => Glyph.RangeVariable,
655SymbolKind.TypeParameter => Glyph.TypeParameter,
679public static SymbolKind GetSymbolKind(SymbolKindOrTypeKind symbolKindOrTypeKind)
684symbolKindOrTypeKind.MethodKind.HasValue ? SymbolKind.Method :
src\Analyzers\CSharp\Analyzers\MakeStructFieldsWritable\CSharpMakeStructFieldsWritableDiagnosticAnalyzer.cs (1)
69}, SymbolKind.NamedType);
Microsoft.CodeAnalysis.CSharp.Features.UnitTests (18)
src\Analyzers\CSharp\Tests\NamingStyles\NamingStylesTests.cs (13)
222[InlineData("} namespace [|c2|] {", "} namespace C2 {", SymbolKind.Namespace, Accessibility.Public)]
228[InlineData("class M<[|t|]> {}", "class M<T> {}", SymbolKind.TypeParameter, Accessibility.Private)]
229[InlineData("void M<[|t|]>() {}", "void M<T>() {}", SymbolKind.TypeParameter, Accessibility.Private)]
230[InlineData("int [|m|] { get; }", "int M { get; }", SymbolKind.Property, Accessibility.Private)]
233[InlineData("int [|m|];", "int M;", SymbolKind.Field, Accessibility.Private)]
234[InlineData("event System.EventHandler [|m|];", "event System.EventHandler M;", SymbolKind.Event, Accessibility.Private)]
235[InlineData("void Outer(int [|m|]) {}", "void Outer(int M) {}", SymbolKind.Parameter, Accessibility.Private)]
236[InlineData("void Outer() { void Inner(int [|m|]) {} }", "void Outer() { void Inner(int M) {} }", SymbolKind.Parameter, Accessibility.NotApplicable)]
237[InlineData("void Outer() { System.Action<int> action = [|m|] => {} }", "void Outer() { System.Action<int> action = M => {} }", SymbolKind.Parameter, Accessibility.NotApplicable)]
238[InlineData("void Outer() { System.Action<int> action = ([|m|]) => {} }", "void Outer() { System.Action<int> action = (M) => {} }", SymbolKind.Parameter, Accessibility.NotApplicable)]
239[InlineData("void Outer() { System.Action<int> action = (int [|m|]) => {} }", "void Outer() { System.Action<int> action = (int M) => {} }", SymbolKind.Parameter, Accessibility.NotApplicable)]
240[InlineData("void Outer() { System.Action<int> action = delegate (int [|m|]) {} }", "void Outer() { System.Action<int> action = delegate (int M) {} }", SymbolKind.Parameter, Accessibility.NotApplicable)]
241[InlineData("void Outer() { int [|m|]; }", "void Outer() { int M; }", SymbolKind.Local, Accessibility.NotApplicable)]
Microsoft.CodeAnalysis.CSharp.IOperation.UnitTests (1)
Microsoft.CodeAnalysis.CSharp.Semantic.UnitTests (266)
Semantics\ColorColorTests.cs (83)
50SymbolKind.Property, "E F.E { get; set; }",
51SymbolKind.Method, "void E.M(System.Int32 x)");
75SymbolKind.Field, "E F.E",
76SymbolKind.Method, "void E.M(System.Int32 x)",
100SymbolKind.Event, "event E F.E",
101SymbolKind.Method, "void E.Invoke(System.Int32 x)");
123SymbolKind.Parameter, "E E",
124SymbolKind.Method, "void E.M(System.Int32 x)");
147SymbolKind.Local, "E E",
148SymbolKind.Method, "void E.M(System.Int32 x)");
196SymbolKind.Field, "E F.E",
197SymbolKind.Property, "System.Int32 E.P { get; set; }",
224SymbolKind.Field, "E F.E",
225SymbolKind.Field, "System.Int32 E.F",
255SymbolKind.Field, "E F.E",
256SymbolKind.Event, "event System.Action E.Event",
286SymbolKind.NamedType, "E",
287SymbolKind.Field, "E.Element",
318SymbolKind.NamedType, "C",
319SymbolKind.NamedType, "C.Inner",
347SymbolKind.Field, "E F.E",
348SymbolKind.Method, "void E.M(System.Int32 x)",
376SymbolKind.Field, "E F.E",
377SymbolKind.Method, "void E.M<System.Int32>(System.Int32 x)",
405SymbolKind.Field, "E F.E",
406SymbolKind.Method, "void E.M<System.Boolean>(System.Boolean x)",
438SymbolKind.Field, "E F.E",
439SymbolKind.Method, "void E.M(System.Int32 x)",
471SymbolKind.Field, "E F.E",
472SymbolKind.Method, "void E.M(System.Int32 x)",
506SymbolKind.Property, "E F.E { get; set; }",
507SymbolKind.Method, "void E.M(System.Int32 x)");
533SymbolKind.NamedType, "E",
534SymbolKind.Method, "void E.M(params System.Int32[] a)");
560SymbolKind.Property, "E F.Q { get; set; }",
561SymbolKind.Method, "void E.M(System.Int32 x)");
594Assert.Equal(SymbolKind.Alias, alias.Kind);
601Assert.Equal(SymbolKind.Method, parentInfo.Symbol.Kind);
641Assert.Equal(SymbolKind.Local, info.Symbol.Kind);
680SymbolKind.Local, "E E",
681SymbolKind.Method, "void E.M(System.Int32 x)");
709SymbolKind.NamedType, "E",
710SymbolKind.Method, "void E.M(params System.Int32[] a)");
760SymbolKind.Property, "E F.Q { get; set; }",
761SymbolKind.Method, "void E.M(System.Int32 x)",
799SymbolKind.NamedType, "E",
800SymbolKind.Method, "void E.M(params System.Int32[] a)",
838SymbolKind.Property, "E F.E { get; set; }",
839SymbolKind.Method, "void E.M(System.Int32 x)",
877SymbolKind.NamedType, "E",
878SymbolKind.Method, "void E.M(params System.Int32[] a)",
907SymbolKind.NamedType, "C",
908SymbolKind.Method, "void C.Static()");
931SymbolKind.NamedType, "C",
932SymbolKind.Method, "void C.Static()");
955SymbolKind.NamedType, "Color",
956SymbolKind.Field, "Color.Red");
1070Assert.Equal(SymbolKind.Property, info.Symbol.Kind);
1116Assert.Equal(SymbolKind.Property, info.Symbol.Kind);
1162Assert.Equal(SymbolKind.Property, info.Symbol.Kind);
1207Assert.Equal(SymbolKind.Property, info.Symbol.Kind);
1251Assert.Equal(SymbolKind.Event, candidate.Kind);
1285Assert.Equal(SymbolKind.Field, info.Symbol.Kind);
1323SymbolKind.NamedType, "E",
1324SymbolKind.Method, "void E.M(params System.Int32[] a)",
1353SymbolKind.NamedType, "E",
1354SymbolKind.Method, "void E.M(params System.Int32[] a)");
1382SymbolKind.Property, "E F.E { get; set; }",
1383SymbolKind.Method, "void E.M(System.Int32 x)",
1411SymbolKind.NamedType, "E",
1412SymbolKind.Method, "void E.M(params System.Int32[] a)",
1439SymbolKind.Local, "E E",
1440SymbolKind.Method, "void E.M(System.Int32 x)");
1790Assert.Equal(SymbolKind.NamedType, actualSymbol.Symbol.Kind);
1824Assert.Equal(SymbolKind.NamedType, actualSymbol.Symbol.Kind);
1831SymbolKind exprSymbolKind,
1833SymbolKind parentSymbolKind,
1889Assert.Equal(SymbolKind.NamedType, symbolInfo.Symbol.Kind);
1903Assert.Equal(SymbolKind.NamedType, symbolInfo.Symbol.Kind);
1946Assert.Equal(SymbolKind.Local, symbolInfo.Symbol.Kind);
1960Assert.Equal(SymbolKind.Local, symbolInfo.Symbol.Kind);
2003Assert.Equal(SymbolKind.NamedType, symbolInfo.Symbol.Kind);
2017Assert.Equal(SymbolKind.NamedType, symbolInfo.Symbol.Kind);
Semantics\DeconstructionTests.cs (28)
3952Assert.Equal(SymbolKind.Local, symbol.Kind);
3957Assert.NotEqual(SymbolKind.Local, symbol.Kind);
3966Assert.Equal(SymbolKind.Local, symbol.Kind);
3971Assert.NotEqual(SymbolKind.Local, symbol.Kind);
4285Assert.Equal(SymbolKind.ErrorType, typeInfo.Type.Kind);
4291Assert.Equal(SymbolKind.ErrorType, typeInfo.Type.Kind);
4377Assert.Equal(SymbolKind.Field, a.Kind);
4381Assert.Equal(SymbolKind.Field, b.Kind);
4385Assert.Equal(SymbolKind.Field, c.Kind);
4389Assert.Equal(SymbolKind.Field, d.Kind);
4416Assert.Equal(SymbolKind.ErrorType, typeInfo.Type.Kind);
4422Assert.Equal(SymbolKind.ErrorType, typeInfo.Type.Kind);
4544Assert.Equal(SymbolKind.ErrorType, typeInfo.Type.Kind);
4553Assert.Equal(SymbolKind.ErrorType, typeInfo.Type.Kind);
5230Assert.Equal(SymbolKind.ErrorType, typeInfo.Type.Kind);
5236Assert.Equal(SymbolKind.ErrorType, typeInfo.Type.Kind);
5335Assert.Equal(SymbolKind.Field, a.Kind);
5339Assert.Equal(SymbolKind.Field, b.Kind);
5343Assert.Equal(SymbolKind.Field, c.Kind);
5347Assert.Equal(SymbolKind.Field, d.Kind);
5374Assert.Equal(SymbolKind.ErrorType, typeInfo.Type.Kind);
5380Assert.Equal(SymbolKind.ErrorType, typeInfo.Type.Kind);
5511Assert.Equal(SymbolKind.ErrorType, typeInfo.Type.Kind);
5520Assert.Equal(SymbolKind.ErrorType, typeInfo.Type.Kind);
5769Assert.Equal(SymbolKind.Field, a.Kind);
5773Assert.Equal(SymbolKind.Field, b.Kind);
5777Assert.Equal(SymbolKind.Field, c.Kind);
5781Assert.Equal(SymbolKind.Field, d.Kind);
Semantics\LocalFunctionTests.cs (18)
4970Assert.Equal(SymbolKind.Local, b1Symbol.Kind);
6413Assert.Equal(SymbolKind.Local, symbol.Kind);
6449Assert.Equal(SymbolKind.Local, symbol.Kind);
6452Assert.Equal(SymbolKind.TypeParameter, symbol.Kind);
6493Assert.Equal(SymbolKind.TypeParameter, symbol.Kind);
6496Assert.Equal(SymbolKind.TypeParameter, symbol.Kind);
6499Assert.Equal(SymbolKind.TypeParameter, symbol.Kind);
6540Assert.Equal(SymbolKind.TypeParameter, symbol.Kind);
6543Assert.Equal(SymbolKind.TypeParameter, symbol.Kind);
6546Assert.Equal(SymbolKind.TypeParameter, symbol.Kind);
7375Assert.Equal(SymbolKind.TypeParameter, symbolInfo.Symbol.Kind);
7637private void VerifyTParameter(CSharpCompilation comp, int index, string expectedContainer, bool findAnyways = false, string lookupFinds = "TParameter", SymbolKind symbolKind = SymbolKind.TypeParameter)
7658Assert.Equal(SymbolKind.TypeParameter, typeInfo.Type.Kind);
7893VerifyTParameter(comp, 1, "C", symbolKind: SymbolKind.NamedType, lookupFinds: "System.String C.TParameter");
8367VerifyTParameter(comp, 1, "C", symbolKind: SymbolKind.NamedType, lookupFinds: "System.String C.TParameter");
8429VerifyTParameter(comp, 1, "C", lookupFinds: "System.String C.TParameter", symbolKind: SymbolKind.NamedType);
8956Assert.Equal(SymbolKind.Parameter, symbolInfo.Symbol.Kind);
Semantics\QueryTests.cs (18)
1459Assert.Equal(SymbolKind.RangeVariable, x.Kind);
1467Assert.Equal(SymbolKind.RangeVariable, y.Kind);
1475Assert.Equal(SymbolKind.RangeVariable, z.Kind);
1668Assert.Equal(SymbolKind.RangeVariable, x.Kind);
1676Assert.Equal(SymbolKind.RangeVariable, y.Kind);
1684Assert.Equal(SymbolKind.RangeVariable, z.Kind);
2180Assert.Equal(SymbolKind.RangeVariable, info.Symbol.Kind);
2210Assert.Equal(SymbolKind.RangeVariable, info.Symbol.Kind);
2237Assert.Equal(SymbolKind.RangeVariable, info.Symbol.Kind);
2243Assert.Equal(SymbolKind.RangeVariable, info.Symbol.Kind);
2277Assert.Equal(SymbolKind.RangeVariable, symbol.Kind);
2330Assert.Equal(SymbolKind.RangeVariable, symbol.Kind);
2902Assert.Equal(SymbolKind.RangeVariable, x.Kind);
2935Assert.Equal(SymbolKind.RangeVariable, x.Kind);
3141Assert.Equal(SymbolKind.ErrorType, typeInfo.Type.Kind);
3473Assert.Equal(SymbolKind.RangeVariable, x.Kind);
3523Assert.Equal(SymbolKind.RangeVariable, symbol.Kind);
3563Assert.Equal(SymbolKind.RangeVariable, symbol.Kind);
Semantics\RecordStructTests.cs (21)
2670Assert.Equal(SymbolKind.Parameter, symbol!.Kind);
2705Assert.Equal(SymbolKind.Parameter, symbol!.Kind);
2739Assert.Equal(SymbolKind.Parameter, symbol!.Kind);
2774Assert.Equal(SymbolKind.Parameter, symbol!.Kind);
3361Assert.Equal(SymbolKind.Property, model.GetSymbolInfo(cref).Symbol!.Kind);
3409Assert.Equal(SymbolKind.Property, model.GetSymbolInfo(cref).Symbol!.Kind);
3460Assert.Equal(SymbolKind.Property, model.GetSymbolInfo(cref).Symbol!.Kind);
5924Assert.Equal(SymbolKind.Parameter, parameter.Kind);
5930Assert.Equal(SymbolKind.Parameter, initializer.Kind);
5966Assert.Equal(SymbolKind.Local, outVar.Kind);
6255context.RegisterSymbolAction(Handle, SymbolKind.Method);
6256context.RegisterSymbolAction(Handle, SymbolKind.Property);
6257context.RegisterSymbolAction(Handle, SymbolKind.Parameter);
6258context.RegisterSymbolAction(Handle, SymbolKind.NamedType);
6351context.RegisterSymbolStartAction(Handle1, SymbolKind.Method);
6352context.RegisterSymbolStartAction(Handle1, SymbolKind.Property);
6353context.RegisterSymbolStartAction(Handle1, SymbolKind.Parameter);
6354context.RegisterSymbolStartAction(Handle1, SymbolKind.NamedType);
6889context.RegisterSymbolAction(Handle1, SymbolKind.Method);
6890context.RegisterSymbolAction(Handle2, SymbolKind.Property);
6891context.RegisterSymbolAction(Handle3, SymbolKind.Parameter);
Semantics\TopLevelStatementsTests.cs (22)
705Assert.Equal(SymbolKind.Local, local.Kind);
707Assert.Equal(SymbolKind.Method, local.ContainingSymbol.Kind);
709Assert.Equal(SymbolKind.NamedType, local.ContainingSymbol.ContainingSymbol.Kind);
2430Assert.Equal(SymbolKind.Label, declSymbol.Kind);
3953Assert.False(symbols.Any(s => s.Kind == SymbolKind.Parameter));
4102Assert.False(symbols.Any(s => s.Kind == SymbolKind.Parameter));
4137Assert.False(symbols.Any(s => s.Kind == SymbolKind.Parameter));
4142Assert.False(symbols.Any(s => s.Kind == SymbolKind.Parameter));
4224Assert.Equal(SymbolKind.Method, local.ContainingSymbol.Kind);
4226Assert.Equal(SymbolKind.NamedType, local.ContainingSymbol.ContainingSymbol.Kind);
4900Assert.Equal(SymbolKind.Label, label.Kind);
4902Assert.Equal(SymbolKind.Method, label.ContainingSymbol.Kind);
4904Assert.Equal(SymbolKind.NamedType, label.ContainingSymbol.ContainingSymbol.Kind);
4985Assert.Equal(SymbolKind.Label, label.Kind);
4987Assert.Equal(SymbolKind.Method, label.ContainingSymbol.Kind);
4989Assert.Equal(SymbolKind.NamedType, label.ContainingSymbol.ContainingSymbol.Kind);
6585context.RegisterSymbolAction(Handle, SymbolKind.Method);
6660context.RegisterSymbolStartAction(Handle1, SymbolKind.Method);
6661context.RegisterSymbolStartAction(Handle2, SymbolKind.NamedType);
7324context.RegisterSymbolAction(Handle1, SymbolKind.Method);
7325context.RegisterSymbolAction(Handle2, SymbolKind.Namespace);
7326context.RegisterSymbolAction(Handle3, SymbolKind.NamedType);
Microsoft.CodeAnalysis.CSharp.Symbol.UnitTests (954)
Compilation\GetSemanticInfoTests.cs (19)
45Assert.Equal(SymbolKind.Parameter, sym.Symbol.Kind);
75Assert.Equal(SymbolKind.Method, sym.Symbol.Kind);
105Assert.Equal(SymbolKind.Method, sym.Symbol.Kind);
139Assert.Equal(SymbolKind.Method, sym.Symbol.Kind);
1073Assert.Equal(SymbolKind.Method, baseConstructor.Kind);
1092Assert.Equal(SymbolKind.Method, baseConstructor.Kind);
1533Assert.Equal(SymbolKind.Field, candidate.Kind);
1562Assert.Equal(SymbolKind.NamedType, symbol.Kind);
1612Assert.Equal(SymbolKind.TypeParameter, symbol.Kind);
1708Assert.Equal(SymbolKind.Parameter, symbol.Kind);
1710Assert.Equal(SymbolKind.Method, symbol.ContainingSymbol.Kind);
1743Assert.Equal(SymbolKind.Parameter, symbol.Kind);
1745Assert.Equal(SymbolKind.Method, symbol.ContainingSymbol.Kind);
1778Assert.Equal(SymbolKind.Parameter, symbol.Kind);
1780Assert.Equal(SymbolKind.Method, symbol.ContainingSymbol.Kind);
2541Assert.Equal(SymbolKind.Parameter, symbol.Kind);
2727Assert.Equal(SymbolKind.Local, symbol.Kind);
3556Assert.Equal(SymbolKind.Namespace, info.Symbol.Kind);
4790Assert.Equal(SymbolKind.ErrorType, lambda.ReturnType.Kind);
Compilation\IndexedProperties_BindingTests.cs (6)
42IndexedPropertiesBindingChecks(source, reference, SymbolKind.Method, "get_P1");
63IndexedPropertiesBindingChecks(source, reference, SymbolKind.Property, "P1");
84IndexedPropertiesBindingChecks(source, reference, SymbolKind.Property, "P1");
104IndexedPropertiesBindingChecks(source, reference, SymbolKind.Property, "P1");
130IndexedPropertiesBindingChecks(source, reference, SymbolKind.Property, "P1");
133private void IndexedPropertiesBindingChecks(string source, MetadataReference reference, SymbolKind symbolKind, string name)
Compilation\SemanticModelAPITests.cs (45)
155Assert.Equal(SymbolKind.Method, symbolInfo.Symbol.Kind);
1342Assert.Equal(SymbolKind.Alias, model.GetDeclaredSymbol(usingSyntax).Kind);
1369Assert.Equal(SymbolKind.Method, symbol.Kind);
1731Assert.Equal(SymbolKind.Alias, aliasSymbol.Kind);
1790Assert.Equal(SymbolKind.Local, local.Kind);
1802Assert.Equal(SymbolKind.Local, info.Symbol.Kind);
1809Assert.Equal(SymbolKind.Local, info2.Symbol.Kind);
1843Assert.Equal(SymbolKind.Local, local.Kind);
1856Assert.Equal(SymbolKind.Local, local.Kind);
1889Assert.Equal(SymbolKind.Label, label.Kind);
2085Assert.Equal(SymbolKind.Method, symbol.Kind);
2102Assert.Equal(SymbolKind.Method, symbol.Kind);
2121Assert.Equal(SymbolKind.Method, sortedCandidates[0].Kind);
2123Assert.Equal(SymbolKind.Method, sortedCandidates[1].Kind);
2286Assert.Equal(SymbolKind.Local, symbol.Kind);
2396Assert.Equal(SymbolKind.Local, local.Kind);
2408Assert.Equal(SymbolKind.Local, info.Symbol.Kind);
2579Assert.Equal(SymbolKind.Local, local.Kind);
2593Assert.Equal(SymbolKind.Local, local.Kind);
2607Assert.Equal(SymbolKind.Local, local.Kind);
2612Assert.Equal(SymbolKind.Parameter, param.Kind);
2650Assert.Equal(SymbolKind.Label, label.Kind);
2695SymbolKind expectedSymbolKind,
2802speculatedUsingExpression, SpeculativeBindingOption.BindAsTypeOrNamespace, SymbolKind.Namespace, "System.Collections");
2817speculatedUsingExpression, SpeculativeBindingOption.BindAsExpression, SymbolKind.NamedType, "System.ArgumentException");
2837speculatedTypeExpression, SpeculativeBindingOption.BindAsTypeOrNamespace, SymbolKind.NamedType, "System.ArgumentException");
2868speculatedTypeExpression, SpeculativeBindingOption.BindAsTypeOrNamespace, SymbolKind.NamedType, "System.ArgumentException");
2871speculatedTypeExpression, SpeculativeBindingOption.BindAsTypeOrNamespace, SymbolKind.NamedType, "System.ArgumentException");
2874speculatedTypeExpression, SpeculativeBindingOption.BindAsTypeOrNamespace, SymbolKind.NamedType, "System.ArgumentException");
2938Assert.Equal(SymbolKind.NamedType, symbol.Kind);
2944Assert.Equal(SymbolKind.NamedType, symbol.Kind);
2978Assert.Equal(SymbolKind.NamedType, symbol.Kind);
2984Assert.Equal(SymbolKind.NamedType, symbol.Kind);
3023Assert.Equal(SymbolKind.NamedType, symbol.Kind);
3028Assert.Equal(SymbolKind.NamedType, symbol.Kind);
3033Assert.Equal(SymbolKind.NamedType, symbol.Kind);
3039Assert.Equal(SymbolKind.NamedType, symbol.Kind);
3051Assert.Equal(SymbolKind.Method, symbol.Kind);
3056Assert.Equal(SymbolKind.Method, symbol.Kind);
3061Assert.Equal(SymbolKind.NamedType, symbol.Kind);
3067Assert.Equal(SymbolKind.Method, symbol.Kind);
3163Assert.Equal(SymbolKind.Parameter, symbol.Kind);
3648Assert.Equal(SymbolKind.NamedType, oldSymbol.Kind);
3655Assert.Equal(SymbolKind.NamedType, newSymbol.Kind);
3881Assert.Equal(SymbolKind.Alias, symbol.Kind);
Compilation\SemanticModelGetDeclaredSymbolAPITests.cs (36)
433Assert.Equal(SymbolKind.Event, symbol.Kind);
455Assert.Equal(SymbolKind.Property, symbol.Kind);
477Assert.Equal(SymbolKind.Property, symbol.Kind);
502Assert.Equal(SymbolKind.Event, symbol.Kind);
524Assert.Equal(SymbolKind.Property, symbol.Kind);
546Assert.Equal(SymbolKind.Property, symbol.Kind);
970Assert.Equal(SymbolKind.TypeParameter, ptsym.Kind);
988Assert.Equal(SymbolKind.Parameter, psym.Kind);
1090Assert.Equal(SymbolKind.NamedType, symbols[0].Kind);
1094Assert.Equal(SymbolKind.Local, symbols[0].Kind);
1131Assert.Equal(SymbolKind.NamedType, symbols[0].Kind);
1139Assert.Equal(SymbolKind.Field, symbols[0].Kind);
1143Assert.Equal(SymbolKind.Alias, symbols[0].Kind);
1180Assert.Equal(SymbolKind.NamedType, symbols[0].Kind);
1388Assert.True(symbolsInC.Any(s => s.Name == "A" && s.Kind == SymbolKind.NamedType));
1389Assert.True(symbolsInC.Any(s => s.Name == "B" && s.Kind == SymbolKind.NamedType));
1390Assert.True(symbolsInC.Any(s => s.Name == "C" && s.Kind == SymbolKind.NamedType));
1391Assert.True(symbolsInC.Any(s => s.Name == "M" && s.Kind == SymbolKind.Method && s.ContainingType.Name == "A"));
1392Assert.True(symbolsInC.Any(s => s.Name == "M" && s.Kind == SymbolKind.Method && s.ContainingType.Name == "B"));
1393Assert.True(symbolsInC.Any(s => s.Name == "M" && s.Kind == SymbolKind.Method && s.ContainingType.Name == "C"));
1394Assert.True(symbolsInC.Any(s => s.Name == "F" && s.Kind == SymbolKind.Method && s.ContainingType.Name == "C"));
1395Assert.True(symbolsInC.Any(s => s.Name == "System" && s.Kind == SymbolKind.Namespace));
1396Assert.True(symbolsInC.Any(s => s.Name == "Microsoft" && s.Kind == SymbolKind.Namespace));
1722symbol.Kind == SymbolKind.Method && (((IMethodSymbol)symbol).IsExtensionMethod || ((IMethodSymbol)symbol).MethodKind == MethodKind.ReducedExtension);
1885symbol.Kind == SymbolKind.Method && (((IMethodSymbol)symbol).IsExtensionMethod || ((IMethodSymbol)symbol).MethodKind == MethodKind.ReducedExtension);
2820Assert.Equal(SymbolKind.Namespace, n1.Kind);
3454Assert.Equal(SymbolKind.Alias, symbol.Kind);
3590Assert.Equal(SymbolKind.Method, symbol.Kind);
3615Assert.Equal(SymbolKind.Method, symbol.Kind);
3639Assert.Equal(SymbolKind.NamedType, enumTypeSymbol.Kind);
3643Assert.Equal(SymbolKind.Field, symbol.Kind);
3671Assert.Equal(SymbolKind.Parameter, info.Symbol.Kind);
3713Assert.Equal(SymbolKind.Label, symbol.Kind);
3849Assert.Equal(SymbolKind.Method, symbolInfo.Symbol.Kind);
4747Assert.Equal(SymbolKind.NamedType, enumSymbol.Kind);
4751Assert.Equal(SymbolKind.Event, eventSymbol.Kind);
Compilation\SemanticModelGetSemanticInfoTests.cs (300)
56Assert.Equal(SymbolKind.Method, sortedCandidates[0].Kind);
58Assert.Equal(SymbolKind.Method, sortedCandidates[1].Kind);
91Assert.Equal(SymbolKind.NamedType, semanticInfo.Symbol.Kind);
126Assert.Equal(SymbolKind.NamedType, sortedCandidates[0].Kind);
160Assert.Equal(SymbolKind.NamedType, sortedCandidates[0].Kind);
201Assert.Equal(SymbolKind.NamedType, sortedCandidates[0].Kind);
242Assert.Equal(SymbolKind.NamedType, sortedCandidates[0].Kind);
314Assert.Equal(SymbolKind.Field, sortedCandidates[0].Kind);
344Assert.Equal(SymbolKind.Field, symbol.Kind);
374Assert.Equal(SymbolKind.Method, sortedCandidates[0].Kind);
432Assert.Equal(SymbolKind.Field, symbol.Kind);
467Assert.Equal(SymbolKind.NamedType, sortedCandidates[0].Kind);
507Assert.Equal(SymbolKind.NamedType, sortedCandidates[0].Kind);
550Assert.Equal(SymbolKind.NamedType, sortedCandidates[0].Kind);
552Assert.Equal(SymbolKind.NamedType, sortedCandidates[1].Kind);
598Assert.Equal(SymbolKind.NamedType, sortedCandidates[0].Kind);
600Assert.Equal(SymbolKind.NamedType, sortedCandidates[1].Kind);
646Assert.Equal(SymbolKind.NamedType, sortedCandidates[0].Kind);
648Assert.Equal(SymbolKind.NamedType, sortedCandidates[1].Kind);
699Assert.Equal(SymbolKind.Property, sortedCandidates[0].Kind);
701Assert.Equal(SymbolKind.Property, sortedCandidates[1].Kind);
731Assert.Equal(SymbolKind.Alias, aliasInfo.Kind);
765Assert.Equal(SymbolKind.Alias, aliasInfo.Kind);
800Assert.Equal(SymbolKind.Method, sortedCandidates[0].Kind);
1644Assert.Equal(SymbolKind.Parameter, semanticInfo.Symbol.Kind);
1688Assert.Equal(SymbolKind.Namespace, semanticInfo.Symbol.Kind);
1720Assert.Equal(SymbolKind.Local, semanticInfo.Symbol.Kind);
2119Assert.Equal(SymbolKind.Local, semanticInfo.Symbol.Kind);
2152Assert.Equal(SymbolKind.Method, semanticInfo.Symbol.Kind);
2192Assert.Equal(SymbolKind.NamedType, semanticInfo.Symbol.Kind);
2264Assert.Equal(SymbolKind.NamedType, semanticInfo.Symbol.Kind);
2299Assert.Equal(SymbolKind.Method, semanticInfo.Symbol.Kind);
2349Assert.Equal(SymbolKind.Method, semanticInfo.Symbol.Kind);
2395Assert.Equal(SymbolKind.Method, semanticInfo.Symbol.Kind);
2438Assert.Equal(SymbolKind.Method, semanticInfo.Symbol.Kind);
2493Assert.Equal(SymbolKind.Method, semanticInfo.Symbol.Kind);
2545Assert.Equal(SymbolKind.Method, semanticInfo.Symbol.Kind);
2613Assert.Equal(SymbolKind.NamedType, semanticInfo.Symbol.Kind);
2650Assert.Equal(SymbolKind.Method, semanticInfo.Symbol.Kind);
2695Assert.Equal(SymbolKind.Method, sortedCandidates[0].Kind);
2697Assert.Equal(SymbolKind.Method, sortedCandidates[1].Kind);
2736Assert.Equal(SymbolKind.Method, sortedCandidates[0].Kind);
2738Assert.Equal(SymbolKind.Method, sortedCandidates[1].Kind);
2786Assert.Equal(SymbolKind.Method, sortedCandidates[0].Kind);
2788Assert.Equal(SymbolKind.Method, sortedCandidates[1].Kind);
2832Assert.Equal(SymbolKind.Method, sortedCandidates[0].Kind);
2871Assert.Equal(SymbolKind.Method, semanticInfo.Symbol.Kind);
2907Assert.Equal(SymbolKind.Method, semanticInfo.Symbol.Kind);
2951Assert.Equal(SymbolKind.Method, sortedCandidates[0].Kind);
2987Assert.Equal(SymbolKind.Method, sortedCandidates[0].Kind);
3021Assert.Equal(SymbolKind.Method, sortedCandidates[0].Kind);
3073Assert.Equal(SymbolKind.Method, semanticInfo.Symbol.Kind);
3118Assert.Equal(SymbolKind.Method, semanticInfo.Symbol.Kind);
3158Assert.Equal(SymbolKind.Method, semanticInfo.Symbol.Kind);
3200Assert.Equal(SymbolKind.Method, semanticInfo.Symbol.Kind);
3246Assert.Equal(SymbolKind.Method, semanticInfo.Symbol.Kind);
3285Assert.Equal(SymbolKind.Method, semanticInfo.Symbol.Kind);
3321Assert.Equal(SymbolKind.Method, semanticInfo.Symbol.Kind);
3358Assert.Equal(SymbolKind.Method, semanticInfo.Symbol.Kind);
3395Assert.Equal(SymbolKind.Method, semanticInfo.Symbol.Kind);
3493Assert.Equal(SymbolKind.NamedType, semanticInfo.Symbol.Kind);
3528Assert.Equal(SymbolKind.Local, sortedCandidates[0].Kind);
3556Assert.Equal(SymbolKind.Namespace, semanticInfo.Symbol.Kind);
3590Assert.Equal(SymbolKind.NamedType, semanticInfo.Symbol.Kind);
3628Assert.Equal(SymbolKind.NamedType, semanticInfo.Symbol.Kind);
3672Assert.Equal(SymbolKind.NamedType, semanticInfo.Symbol.Kind);
3706Assert.Equal(SymbolKind.NamedType, semanticInfo.Symbol.Kind);
3740Assert.Equal(SymbolKind.NamedType, semanticInfo.Symbol.Kind);
3774Assert.Equal(SymbolKind.NamedType, semanticInfo.Symbol.Kind);
3804Assert.Equal(SymbolKind.Parameter, semanticInfo.Symbol.Kind);
3865Assert.Equal(SymbolKind.Method, semanticInfo.Symbol.Kind);
3900Assert.Equal(SymbolKind.NamedType, semanticInfo.Symbol.Kind);
4008Assert.Equal(SymbolKind.NamedType, semanticInfo.Symbol.Kind);
4039Assert.Equal(SymbolKind.Local, semanticInfo.Symbol.Kind);
4074Assert.Equal(SymbolKind.Method, sortedCandidates[0].Kind);
4107Assert.Equal(SymbolKind.Namespace, semanticInfo.Symbol.Kind);
4136Assert.Equal(SymbolKind.Property, semanticInfo.Symbol.Kind);
4218Assert.Equal(SymbolKind.NamedType, sortedCandidates[0].Kind);
4285Assert.Equal(SymbolKind.Method, sortedCandidates[0].Kind);
4287Assert.Equal(SymbolKind.Method, sortedCandidates[1].Kind);
4319Assert.Equal(SymbolKind.Method, semanticInfo.Symbol.Kind);
4380Assert.Equal(SymbolKind.Namespace, semanticInfo.Type.ContainingSymbol.Kind);
4405Assert.Equal(SymbolKind.Namespace, semanticInfo.Symbol.Kind);
4411Assert.Equal(SymbolKind.Alias, aliasInfo.Kind);
4448Assert.Equal(SymbolKind.Alias, aliasInfo.Kind);
4475Assert.Equal(SymbolKind.Parameter, semanticInfo.Symbol.Kind);
4542Assert.Equal(SymbolKind.Parameter, symbol.Kind);
4543Assert.True(symbol.ContainingSymbol.Kind == SymbolKind.Property && ((IPropertySymbol)symbol.ContainingSymbol).IsIndexer);
4570Assert.Equal(SymbolKind.Local, semanticInfo.Symbol.Kind);
4608Assert.Equal(SymbolKind.Field, semanticInfo.Symbol.Kind);
4674Assert.Equal(SymbolKind.Field, semanticInfo.Symbol.Kind);
4712Assert.Equal(SymbolKind.Field, semanticInfo.Symbol.Kind);
4748Assert.Equal(SymbolKind.Field, semanticInfo.Symbol.Kind);
4784Assert.Equal(SymbolKind.Field, semanticInfo.Symbol.Kind);
4815Assert.Equal(SymbolKind.Field, semanticInfo.Symbol.Kind);
4852Assert.Equal(SymbolKind.Parameter, semanticInfo.Symbol.Kind);
4879Assert.Equal(SymbolKind.Parameter, semanticInfo.Symbol.Kind);
4887Assert.Equal(SymbolKind.Method, semanticInfo.Symbol.ContainingSymbol.Kind);
4923Assert.Equal(SymbolKind.Method, sortedCandidates[0].Kind);
4924Assert.Equal(SymbolKind.Method, sortedCandidates[1].Kind);
4969Assert.Equal(SymbolKind.Method, sortedCandidates[0].Kind);
4971Assert.Equal(SymbolKind.Method, sortedCandidates[1].Kind);
4973Assert.Equal(SymbolKind.Method, sortedCandidates[2].Kind);
4978Assert.Equal(SymbolKind.Method, sortedCandidates[0].Kind);
4980Assert.Equal(SymbolKind.Method, sortedCandidates[1].Kind);
4982Assert.Equal(SymbolKind.Method, sortedCandidates[2].Kind);
5021Assert.Equal(SymbolKind.Method, sortedCandidates[0].Kind);
5023Assert.Equal(SymbolKind.Method, sortedCandidates[1].Kind);
5025Assert.Equal(SymbolKind.Method, sortedCandidates[2].Kind);
5030Assert.Equal(SymbolKind.Method, sortedCandidates[0].Kind);
5032Assert.Equal(SymbolKind.Method, sortedCandidates[1].Kind);
5034Assert.Equal(SymbolKind.Method, sortedCandidates[2].Kind);
5112Assert.Equal(SymbolKind.Method, sortedCandidates[0].Kind);
5158Assert.Equal(SymbolKind.Method, sortedCandidates[0].Kind);
5200Assert.Equal(SymbolKind.Method, semanticInfo.Symbol.Kind);
5240Assert.Equal(SymbolKind.NamedType, semanticInfo.Symbol.Kind);
5279Assert.Equal(SymbolKind.Method, semanticInfo.Symbol.Kind);
5321Assert.Equal(SymbolKind.Method, semanticInfo.Symbol.Kind);
5407Assert.Equal(SymbolKind.Method, sortedCandidates[0].Kind);
5449Assert.Equal(SymbolKind.NamedType, sortedCandidates[0].Kind);
5451Assert.Equal(SymbolKind.NamedType, sortedCandidates[1].Kind);
5453Assert.Equal(SymbolKind.NamedType, sortedCandidates[2].Kind);
5543Assert.Equal(SymbolKind.Local, semanticInfo.Symbol.Kind);
5575Assert.Equal(SymbolKind.Field, semanticInfo.Symbol.Kind);
5607Assert.Equal(SymbolKind.Field, semanticInfo.Symbol.Kind);
5632Assert.Equal(SymbolKind.Method, semanticInfo.Symbol.Kind);
5657Assert.Equal(SymbolKind.Method, semanticInfo.Symbol.Kind);
5693Assert.Equal(SymbolKind.Method, semanticInfo.Symbol.Kind);
5796Assert.Equal(SymbolKind.Local, semanticInfo.Symbol.Kind);
5863Assert.Equal(SymbolKind.Local, semanticInfo.Symbol.Kind);
5932Assert.Equal(SymbolKind.Local, semanticInfo.Symbol.Kind);
5999Assert.Equal(SymbolKind.Local, semanticInfo.Symbol.Kind);
6118Assert.Equal(SymbolKind.Method, semanticInfo.Symbol.Kind);
6145Assert.Equal(SymbolKind.Method, semanticInfo.Symbol.Kind);
6178Assert.Equal(SymbolKind.Method, semanticInfo.Symbol.Kind);
6249Assert.Equal(SymbolKind.NamedType, symbol.Kind);
6330Assert.Equal(SymbolKind.Parameter, semanticInfo.Symbol.Kind);
6367Assert.Equal(SymbolKind.Method, symbol.Kind);
6401Assert.Equal(SymbolKind.Method, sortedCandidates[0].Kind);
6437Assert.Equal(SymbolKind.Method, semanticInfo.Symbol.Kind);
6520Assert.Equal(SymbolKind.NamedType, semanticInfo.Symbol.Kind);
6555Assert.Equal(SymbolKind.NamedType, semanticInfo.Symbol.Kind);
6592Assert.Equal(SymbolKind.NamedType, semanticInfo.Symbol.Kind);
6680Assert.Equal(SymbolKind.Method, sortedCandidates[0].Kind);
6876Assert.Equal(SymbolKind.Field, semanticInfo.Symbol.Kind);
6921Assert.Equal(SymbolKind.Property, semanticInfo.Symbol.Kind);
6995Assert.Equal(SymbolKind.Method, semanticInfo.Symbol.Kind);
7024Assert.Equal(SymbolKind.Method, semanticInfo.Symbol.Kind);
7048Assert.Equal(SymbolKind.NamedType, semanticInfo.Symbol.Kind);
7079Assert.Equal(SymbolKind.Method, semanticInfo.Symbol.Kind);
7107Assert.Equal(SymbolKind.Method, semanticInfo.Symbol.Kind);
7138Assert.Equal(SymbolKind.Method, semanticInfo.Symbol.Kind);
7289Assert.Equal(SymbolKind.Method, semanticInfo.Symbol.Kind);
7317Assert.Equal(SymbolKind.Method, semanticInfo.Symbol.Kind);
7520Assert.Equal(SymbolKind.NamedType, semanticInfo.Type.Kind);
7553Assert.Equal(SymbolKind.Parameter, semanticInfo.Symbol.Kind);
7590Assert.Equal(SymbolKind.Parameter, sortedCandidates[0].Kind);
7592Assert.Equal(SymbolKind.Parameter, sortedCandidates[1].Kind);
7661Assert.Equal(SymbolKind.Parameter, semanticInfo.Symbol.Kind);
7700Assert.Equal(SymbolKind.Local, semanticInfo.Symbol.Kind);
7729Assert.Equal(SymbolKind.Parameter, semanticInfo.Symbol.Kind);
7754Assert.Equal(SymbolKind.Method, semanticInfo.Symbol.Kind);
7773Assert.Equal(SymbolKind.ErrorType, semanticInfo.Type.Kind);
7792Assert.Equal(SymbolKind.ErrorType, semanticInfo.Type.Kind);
7819Assert.Equal(SymbolKind.NamedType, semanticInfo.Symbol.Kind);
7884Assert.Equal(SymbolKind.NamedType, semanticInfo.Symbol.Kind);
8119Assert.Equal(SymbolKind.ErrorType, semanticInfo.Type.Kind);
8143Assert.Equal(SymbolKind.ErrorType, semanticInfo.Type.Kind);
8236Assert.Equal(SymbolKind.ErrorType, semanticInfo.Type.Kind);
8374Assert.Equal(SymbolKind.Method, sortedCandidates[0].Kind);
8408Assert.Equal(SymbolKind.Method, sortedCandidates[0].Kind);
8561Assert.Equal(SymbolKind.Local, semanticInfo.Symbol.Kind);
8606Assert.Equal(SymbolKind.Local, semanticInfo.Symbol.Kind);
8645Assert.Equal(SymbolKind.Method, semanticInfo.Symbol.Kind);
8852Assert.Equal(SymbolKind.Local, semanticInfo.Symbol.Kind);
8894Assert.Equal(SymbolKind.Local, semanticInfo.Symbol.Kind);
9128Assert.Equal(SymbolKind.NamedType, sortedCandidates[0].Kind);
9306Assert.Equal(SymbolKind.NamedType, semanticInfo.Symbol.Kind);
9308Assert.Equal(SymbolKind.Alias, aliasInfo.Kind);
9363Assert.Equal(SymbolKind.NamedType, sortedCandidates[0].Kind);
9365Assert.Equal(SymbolKind.NamedType, sortedCandidates[1].Kind);
9422Assert.Equal(SymbolKind.NamedType, sortedCandidates[0].Kind);
9424Assert.Equal(SymbolKind.NamedType, sortedCandidates[1].Kind);
9460Assert.Equal(SymbolKind.Method, sortedCandidates[0].Kind);
9462Assert.Equal(SymbolKind.Method, sortedCandidates[1].Kind);
9464Assert.Equal(SymbolKind.Method, sortedCandidates[2].Kind);
9533Assert.Equal(SymbolKind.NamedType, sortedCandidates[0].Kind);
9535Assert.Equal(SymbolKind.NamedType, sortedCandidates[1].Kind);
9570Assert.Equal(SymbolKind.NamedType, sortedCandidates[0].Kind);
9572Assert.Equal(SymbolKind.NamedType, sortedCandidates[1].Kind);
9619Assert.Equal(SymbolKind.NamedType, sortedCandidates[0].Kind);
9621Assert.Equal(SymbolKind.NamedType, sortedCandidates[1].Kind);
9785Assert.Equal(SymbolKind.NamedType, sortedCandidates[0].Kind);
9787Assert.Equal(SymbolKind.NamedType, sortedCandidates[1].Kind);
9836Assert.Equal(SymbolKind.Method, sortedCandidates[0].Kind);
9891Assert.Equal(SymbolKind.NamedType, sortedCandidates[0].Kind);
9893Assert.Equal(SymbolKind.NamedType, sortedCandidates[1].Kind);
9918Assert.Equal(SymbolKind.Method, semanticInfo.Symbol.Kind);
9930Assert.Equal(SymbolKind.Alias, aliasInfo.Kind);
9952Assert.Equal(SymbolKind.Method, semanticInfo.Symbol.Kind);
9966Assert.Equal(SymbolKind.Alias, aliasInfo.Kind);
9988Assert.Equal(SymbolKind.Method, semanticInfo.Symbol.Kind);
10002Assert.Equal(SymbolKind.Alias, aliasInfo.Kind);
10024Assert.Equal(SymbolKind.Method, semanticInfo.Symbol.Kind);
10038Assert.Equal(SymbolKind.Alias, aliasInfo.Kind);
10060Assert.Equal(SymbolKind.Method, semanticInfo.Symbol.Kind);
10074Assert.Equal(SymbolKind.Alias, aliasInfo.Kind);
10104Assert.Equal(SymbolKind.NamedType, semanticInfo.Symbol.Kind);
10141Assert.Equal(SymbolKind.NamedType, semanticInfo.Symbol.Kind);
10182Assert.Equal(SymbolKind.Method, sortedCandidates[0].Kind);
10221Assert.Equal(SymbolKind.Method, sortedCandidates[0].Kind);
10252Assert.Equal(SymbolKind.Method, sortedCandidates[0].Kind);
10287Assert.Equal(SymbolKind.Method, sortedCandidates[0].Kind);
10322Assert.Equal(SymbolKind.NamedType, sortedCandidates[0].Kind);
10324Assert.Equal(SymbolKind.NamedType, sortedCandidates[1].Kind);
10356Assert.Equal(SymbolKind.NamedType, sortedCandidates[0].Kind);
10358Assert.Equal(SymbolKind.NamedType, sortedCandidates[1].Kind);
10390Assert.Equal(SymbolKind.NamedType, sortedCandidates[0].Kind);
10392Assert.Equal(SymbolKind.NamedType, sortedCandidates[1].Kind);
10433Assert.Equal(SymbolKind.NamedType, sortedCandidates[0].Kind);
10435Assert.Equal(SymbolKind.NamedType, sortedCandidates[1].Kind);
10470Assert.Equal(SymbolKind.Field, sortedCandidates[0].Kind);
10498Assert.Equal(SymbolKind.Parameter, sortedCandidates[0].Kind);
10523Assert.Equal(SymbolKind.Parameter, semanticInfo.CandidateSymbols[0].Kind);
10528Assert.Equal(SymbolKind.Parameter, sortedCandidates[0].Kind);
10562Assert.Equal(SymbolKind.Field, sortedCandidates[0].Kind);
10605Assert.Equal(SymbolKind.Property, sortedCandidates[0].Kind);
10642Assert.Equal(SymbolKind.Property, sortedCandidates[0].Kind);
10679Assert.Equal(SymbolKind.Field, sortedCandidates[0].Kind);
10718Assert.Equal(SymbolKind.Event, sortedCandidates[0].Kind);
10761Assert.Equal(SymbolKind.Property, sortedCandidates[0].Kind);
10803Assert.Equal(SymbolKind.Property, sortedCandidates[0].Kind);
10840Assert.Equal(SymbolKind.Method, sortedCandidates[0].Kind);
11149Assert.Equal(SymbolKind.Method, sortedCandidates[0].Kind);
11151Assert.Equal(SymbolKind.Method, sortedCandidates[1].Kind);
11153Assert.Equal(SymbolKind.Method, sortedCandidates[2].Kind);
11227Assert.Equal(SymbolKind.Method, sortedCandidates[0].Kind);
11229Assert.Equal(SymbolKind.Method, sortedCandidates[1].Kind);
11267Assert.Equal(SymbolKind.Field, semanticInfo.Symbol.Kind);
11304Assert.Equal(SymbolKind.Field, semanticInfo.Symbol.Kind);
11341Assert.Equal(SymbolKind.Field, semanticInfo.Symbol.Kind);
11381Assert.Equal(SymbolKind.Field, semanticInfo.Symbol.Kind);
11428Assert.Equal(SymbolKind.NamedType, semanticInfo.Symbol.Kind);
11540Assert.Equal(SymbolKind.Method, sortedCandidates[0].Kind);
11577Assert.Equal(SymbolKind.Field, sortedCandidates[0].Kind);
11639Assert.Equal(SymbolKind.Namespace, semanticInfo.Symbol.Kind);
11673Assert.Equal(SymbolKind.Namespace, semanticInfo.Symbol.Kind);
11711Assert.Equal(SymbolKind.Field, semanticInfo.Symbol.Kind);
11756Assert.Equal(SymbolKind.Namespace, semanticInfo.Symbol.Kind);
11832Assert.Equal(SymbolKind.Local, semanticInfo.Symbol.Kind);
11902Assert.Equal(SymbolKind.Local, semanticInfo.Symbol.Kind);
11974Assert.Equal(SymbolKind.Local, semanticInfo.Symbol.Kind);
12156Assert.Equal(SymbolKind.NamedType, semanticInfo.CandidateSymbols[0].Kind);
12224Assert.Equal(SymbolKind.NamedType, sortedCandidates[0].Kind);
12292Assert.Equal(SymbolKind.TypeParameter, sortedCandidates[0].Kind);
12360Assert.Equal(SymbolKind.NamedType, sortedCandidates[0].Kind);
12396Assert.Equal(SymbolKind.NamedType, sortedCandidates[0].Kind);
12528Assert.Equal(SymbolKind.Local, semanticInfo.Symbol.Kind);
12569Assert.Equal(SymbolKind.Local, semanticInfo.Symbol.Kind);
12611Assert.Equal(SymbolKind.Local, semanticInfo.Symbol.Kind);
12645Assert.Equal(SymbolKind.Local, semanticInfo.Symbol.Kind);
12677Assert.Equal(SymbolKind.Method, semanticInfo.Symbol.Kind);
12772Assert.Equal(SymbolKind.Field, semanticInfo.Symbol.Kind);
12804Assert.Equal(SymbolKind.Property, semanticInfo.Symbol.Kind);
12847Assert.Equal(SymbolKind.Field, semanticInfo.Symbol.Kind);
12923Assert.Equal(SymbolKind.Property, semanticInfo.Symbol.Kind);
12963Assert.Equal(SymbolKind.Property, sortedCandidates[0].Kind);
13001Assert.Equal(SymbolKind.Property, sortedCandidates[0].Kind);
13042Assert.Equal(SymbolKind.Property, sortedCandidates[0].Kind);
13099Assert.Equal(SymbolKind.Field, semanticInfo.Symbol.Kind);
13134Assert.Equal(SymbolKind.Method, symbol.Kind);
13168Assert.Equal(SymbolKind.Method, symbol.Kind);
13202Assert.Equal(SymbolKind.Method, symbol.Kind);
13233Assert.Equal(SymbolKind.Method, sortedCandidates[0].Kind);
13264Assert.Equal(SymbolKind.Field, semanticInfo.Symbol.Kind);
13324Assert.Equal(SymbolKind.Method, semanticInfo.Symbol.Kind);
13504Assert.Equal(SymbolKind.Local, semanticInfo.Symbol.Kind);
13878Assert.Equal(SymbolKind.Method, sortedCandidates[0].Kind);
13917Assert.Equal(SymbolKind.Method, sortedCandidates[0].Kind);
13952Assert.Equal(SymbolKind.NamedType, semanticInfo.Symbol.Kind);
14043Assert.Equal(SymbolKind.NamedType, semanticInfo.Symbol.Kind);
14082Assert.Equal(SymbolKind.NamedType, semanticInfo.Symbol.Kind);
14120Assert.Equal(SymbolKind.Method, semanticInfo.Symbol.Kind);
14202Assert.Equal(SymbolKind.NamedType, semanticInfo.Symbol.Kind);
14246Assert.Equal(SymbolKind.Method, semanticInfo.Symbol.Kind);
14342Assert.Equal(SymbolKind.Method, sortedCandidates[0].Kind);
14423Assert.Equal(SymbolKind.NamedType, sortedCandidates[0].Kind);
14512Assert.Equal(SymbolKind.NamedType, sortedCandidates[0].Kind);
14627Assert.Equal(SymbolKind.Method, semanticInfo.Symbol.Kind);
14666Assert.Equal(SymbolKind.Method, semanticInfo.Symbol.Kind);
15085Assert.Equal(SymbolKind.Property, semanticInfo.Symbol.Kind);
15118Assert.Equal(SymbolKind.Method, sortedCandidates[0].Kind);
15120Assert.Equal(SymbolKind.Method, sortedCandidates[1].Kind);
15153Assert.Equal(SymbolKind.Method, semanticInfo.Symbol.Kind);
15184Assert.Equal(SymbolKind.Property, semanticInfo.Symbol.Kind);
15215Assert.Equal(SymbolKind.Property, semanticInfo.Symbol.Kind);
15246Assert.Equal(SymbolKind.Property, semanticInfo.Symbol.Kind);
15277Assert.Equal(SymbolKind.Property, semanticInfo.Symbol.Kind);
15304Assert.Equal(SymbolKind.NamedType, semanticInfo.Symbol.Kind);
15406Assert.Equal(SymbolKind.NamedType, semanticInfo.Symbol.Kind);
DocumentationComments\CrefTests.cs (11)
742Assert.Equal(SymbolKind.NamedType, GetReferencedSymbol(crefSyntax, compilation).Kind);
787Assert.Equal(SymbolKind.NamedType, GetReferencedSymbol(crefSyntax, compilation).Kind);
817Assert.Equal(SymbolKind.Method, GetReferencedSymbol(crefSyntax, compilation).Kind);
864Assert.Equal(SymbolKind.Method, GetReferencedSymbol(crefSyntax, compilation).Kind);
1813Assert.Equal(SymbolKind.Method, actualSymbol.Kind);
5919InstanceConstructors.Single(ctor => ctor.Parameters.Length == 1 && ctor.GetParameterType(0).Kind == SymbolKind.ArrayType);
6072Assert.Equal(SymbolKind.Method, methodSymbol.Kind);
6279Assert.Equal(SymbolKind.Field, symbolInfo.Symbol.Kind);
6285Assert.Equal(SymbolKind.Field, symbolInfo.Symbol.Kind);
6295Assert.Equal(SymbolKind.Field, symbolInfo.Symbol.Kind);
7030Assert.Equal(SymbolKind.Property, symbol.Kind);
DocumentationComments\DocumentationCommentIDTests.cs (19)
33Assert.Equal(SymbolKind.Alias, symbol.Kind);
49Assert.Equal(SymbolKind.ArrayType, symbol.Kind);
63Assert.Equal(SymbolKind.Assembly, symbol.Kind);
79Assert.Equal(SymbolKind.DynamicType, symbol.Kind);
94Assert.Equal(SymbolKind.ErrorType, symbol.Kind);
109Assert.Equal(SymbolKind.Event, symbol.Kind);
124Assert.Equal(SymbolKind.Field, symbol.Kind);
146Assert.Equal(SymbolKind.Label, symbol.Kind);
167Assert.Equal(SymbolKind.Local, symbol.Kind);
184Assert.Equal(SymbolKind.Method, symbol.Kind);
198Assert.Equal(SymbolKind.NetModule, symbol.Kind);
212Assert.Equal(SymbolKind.NamedType, symbol.Kind);
226Assert.Equal(SymbolKind.Namespace, symbol.Kind);
240Assert.Equal(SymbolKind.Namespace, symbol.Kind);
257Assert.Equal(SymbolKind.Parameter, symbol.Kind);
273Assert.Equal(SymbolKind.PointerType, symbol.Kind);
288Assert.Equal(SymbolKind.Property, symbol.Kind);
311Assert.Equal(SymbolKind.RangeVariable, symbol.Kind);
326Assert.Equal(SymbolKind.TypeParameter, symbol.Kind);
Symbols\CompilationCreationTests.cs (115)
140Assert.Equal(SymbolKind.ErrorType, asm1[1].GlobalNamespace.GetTypeMembers("Class4").
164Assert.NotEqual(SymbolKind.ErrorType, retval1.Kind);
195Assert.NotEqual(SymbolKind.ErrorType, retval2.Kind);
216Assert.NotEqual(SymbolKind.ErrorType, retval3.Kind);
221Assert.NotEqual(SymbolKind.ErrorType, retval4.Kind);
226Assert.NotEqual(SymbolKind.ErrorType, retval5.Kind);
254Assert.NotEqual(SymbolKind.ErrorType, retval6.Kind);
279Assert.NotEqual(SymbolKind.ErrorType, retval7.Kind);
284Assert.NotEqual(SymbolKind.ErrorType, retval8.Kind);
289Assert.NotEqual(SymbolKind.ErrorType, retval9.Kind);
304Assert.NotEqual(SymbolKind.ErrorType, retval10.Kind);
309Assert.NotEqual(SymbolKind.ErrorType, retval11.Kind);
314Assert.NotEqual(SymbolKind.ErrorType, retval12.Kind);
319Assert.NotEqual(SymbolKind.ErrorType, retval13.Kind);
324Assert.NotEqual(SymbolKind.ErrorType, retval14.Kind);
370Assert.Equal(SymbolKind.ErrorType, retval15.Kind);
374Assert.Equal(SymbolKind.ErrorType, retval16.Kind);
378Assert.NotEqual(SymbolKind.ErrorType, retval17.Kind);
393Assert.Equal(SymbolKind.ErrorType, retval18.Kind);
397Assert.Equal(SymbolKind.ErrorType, retval19.Kind);
401Assert.Equal(SymbolKind.ErrorType, retval20.Kind);
405Assert.NotEqual(SymbolKind.ErrorType, retval21.Kind);
410Assert.NotEqual(SymbolKind.ErrorType, retval22.Kind);
458Assert.Equal(SymbolKind.ErrorType, asm1[1].GlobalNamespace.GetTypeMembers("Class4").
475Assert.NotEqual(SymbolKind.ErrorType, retval1.Kind);
497Assert.NotEqual(SymbolKind.ErrorType, retval2.Kind);
518Assert.NotEqual(SymbolKind.ErrorType, retval3.Kind);
523Assert.NotEqual(SymbolKind.ErrorType, retval4.Kind);
528Assert.NotEqual(SymbolKind.ErrorType, retval5.Kind);
546Assert.NotEqual(SymbolKind.ErrorType, retval6.Kind);
571Assert.NotEqual(SymbolKind.ErrorType, retval7.Kind);
576Assert.NotEqual(SymbolKind.ErrorType, retval8.Kind);
581Assert.NotEqual(SymbolKind.ErrorType, retval9.Kind);
596Assert.NotEqual(SymbolKind.ErrorType, retval10.Kind);
601Assert.NotEqual(SymbolKind.ErrorType, retval11.Kind);
606Assert.NotEqual(SymbolKind.ErrorType, retval12.Kind);
611Assert.NotEqual(SymbolKind.ErrorType, retval13.Kind);
616Assert.NotEqual(SymbolKind.ErrorType, retval14.Kind);
636Assert.Equal(SymbolKind.ErrorType, retval15.Kind);
640Assert.Equal(SymbolKind.ErrorType, retval16.Kind);
644Assert.NotEqual(SymbolKind.ErrorType, retval17.Kind);
659Assert.Equal(SymbolKind.ErrorType, retval18.Kind);
663Assert.Equal(SymbolKind.ErrorType, retval19.Kind);
667Assert.Equal(SymbolKind.ErrorType, retval20.Kind);
671Assert.NotEqual(SymbolKind.ErrorType, retval21.Kind);
676Assert.NotEqual(SymbolKind.ErrorType, retval22.Kind);
747Assert.NotEqual(SymbolKind.ErrorType, retval1.Kind);
843Assert.NotEqual(SymbolKind.ErrorType, retval2.Kind);
864Assert.NotEqual(SymbolKind.ErrorType, retval3.Kind);
869Assert.NotEqual(SymbolKind.ErrorType, retval4.Kind);
874Assert.NotEqual(SymbolKind.ErrorType, retval5.Kind);
984Assert.NotEqual(SymbolKind.ErrorType, retval6.Kind);
1009Assert.NotEqual(SymbolKind.ErrorType, retval7.Kind);
1014Assert.NotEqual(SymbolKind.ErrorType, retval8.Kind);
1019Assert.NotEqual(SymbolKind.ErrorType, retval9.Kind);
1034Assert.NotEqual(SymbolKind.ErrorType, retval10.Kind);
1039Assert.NotEqual(SymbolKind.ErrorType, retval11.Kind);
1044Assert.NotEqual(SymbolKind.ErrorType, retval12.Kind);
1049Assert.NotEqual(SymbolKind.ErrorType, retval13.Kind);
1054Assert.NotEqual(SymbolKind.ErrorType, retval14.Kind);
1107Assert.NotEqual(SymbolKind.ErrorType, retval17.Kind);
1134Assert.NotEqual(SymbolKind.ErrorType, retval21.Kind);
1139Assert.NotEqual(SymbolKind.ErrorType, retval22.Kind);
1195Assert.NotEqual(SymbolKind.ErrorType, retval1.Kind);
1222Assert.NotEqual(SymbolKind.ErrorType, retval2.Kind);
1243Assert.NotEqual(SymbolKind.ErrorType, retval3.Kind);
1248Assert.NotEqual(SymbolKind.ErrorType, retval4.Kind);
1253Assert.NotEqual(SymbolKind.ErrorType, retval5.Kind);
1275Assert.NotEqual(SymbolKind.ErrorType, retval6.Kind);
1300Assert.NotEqual(SymbolKind.ErrorType, retval7.Kind);
1305Assert.NotEqual(SymbolKind.ErrorType, retval8.Kind);
1310Assert.NotEqual(SymbolKind.ErrorType, retval9.Kind);
1325Assert.NotEqual(SymbolKind.ErrorType, retval10.Kind);
1330Assert.NotEqual(SymbolKind.ErrorType, retval11.Kind);
1335Assert.NotEqual(SymbolKind.ErrorType, retval12.Kind);
1340Assert.NotEqual(SymbolKind.ErrorType, retval13.Kind);
1345Assert.NotEqual(SymbolKind.ErrorType, retval14.Kind);
1380Assert.NotEqual(SymbolKind.ErrorType, retval17.Kind);
1407Assert.NotEqual(SymbolKind.ErrorType, retval21.Kind);
1412Assert.NotEqual(SymbolKind.ErrorType, retval22.Kind);
1458Assert.NotEqual(SymbolKind.ErrorType, retval1.Kind);
1517Assert.NotEqual(SymbolKind.ErrorType, retval2.Kind);
1538Assert.NotEqual(SymbolKind.ErrorType, retval3.Kind);
1543Assert.NotEqual(SymbolKind.ErrorType, retval4.Kind);
1548Assert.NotEqual(SymbolKind.ErrorType, retval5.Kind);
1605Assert.NotEqual(SymbolKind.ErrorType, retval6.Kind);
1630Assert.NotEqual(SymbolKind.ErrorType, retval7.Kind);
1635Assert.NotEqual(SymbolKind.ErrorType, retval8.Kind);
1640Assert.NotEqual(SymbolKind.ErrorType, retval9.Kind);
1655Assert.NotEqual(SymbolKind.ErrorType, retval10.Kind);
1660Assert.NotEqual(SymbolKind.ErrorType, retval11.Kind);
1665Assert.NotEqual(SymbolKind.ErrorType, retval12.Kind);
1670Assert.NotEqual(SymbolKind.ErrorType, retval13.Kind);
1675Assert.NotEqual(SymbolKind.ErrorType, retval14.Kind);
1743Assert.NotEqual(SymbolKind.ErrorType, retval17.Kind);
1770Assert.NotEqual(SymbolKind.ErrorType, retval21.Kind);
1775Assert.NotEqual(SymbolKind.ErrorType, retval22.Kind);
1841Assert.NotEqual(SymbolKind.ErrorType, retval1.Kind);
1868Assert.NotEqual(SymbolKind.ErrorType, retval2.Kind);
1889Assert.NotEqual(SymbolKind.ErrorType, retval3.Kind);
1894Assert.NotEqual(SymbolKind.ErrorType, retval4.Kind);
1899Assert.NotEqual(SymbolKind.ErrorType, retval5.Kind);
1921Assert.NotEqual(SymbolKind.ErrorType, retval6.Kind);
1946Assert.NotEqual(SymbolKind.ErrorType, retval7.Kind);
1951Assert.NotEqual(SymbolKind.ErrorType, retval8.Kind);
1956Assert.NotEqual(SymbolKind.ErrorType, retval9.Kind);
1971Assert.NotEqual(SymbolKind.ErrorType, retval10.Kind);
1976Assert.NotEqual(SymbolKind.ErrorType, retval11.Kind);
1981Assert.NotEqual(SymbolKind.ErrorType, retval12.Kind);
1986Assert.NotEqual(SymbolKind.ErrorType, retval13.Kind);
1991Assert.NotEqual(SymbolKind.ErrorType, retval14.Kind);
2028Assert.NotEqual(SymbolKind.ErrorType, retval17.Kind);
2055Assert.NotEqual(SymbolKind.ErrorType, retval21.Kind);
2060Assert.NotEqual(SymbolKind.ErrorType, retval22.Kind);
2528Assert.NotEqual(SymbolKind.ErrorType, typeC5.Kind);
Symbols\Metadata\PE\MissingTypeReferences.cs (17)
46Assert.Equal(SymbolKind.ErrorType, @base.Kind);
64Assert.Equal(SymbolKind.ErrorType, @base.Kind);
101Assert.Equal(SymbolKind.ErrorType, @base.Kind);
112Assert.Equal(SymbolKind.ErrorType, @base.ContainingSymbol.Kind);
116Assert.Equal(SymbolKind.ErrorType, @base.ContainingSymbol.ContainingSymbol.Kind);
130Assert.Equal(SymbolKind.ErrorType, @base.Kind);
145Assert.Equal(SymbolKind.ErrorType, @base.Kind);
160Assert.Equal(SymbolKind.ErrorType, @base.Kind);
173Assert.Equal(SymbolKind.ErrorType, genericBase.Kind);
177Assert.Equal(SymbolKind.ErrorType, @base.Kind);
194Assert.Equal(SymbolKind.ErrorType, @base.Kind);
210Assert.Equal(SymbolKind.NamedType, genericBase.ContainingSymbol.Kind);
213Assert.Equal(SymbolKind.ErrorType, @base.Kind);
228Assert.Equal(SymbolKind.ErrorType, genericBase.ContainingSymbol.Kind);
231Assert.Equal(SymbolKind.ErrorType, @base.Kind);
250Assert.Equal(SymbolKind.ErrorType, genericBase.ContainingSymbol.Kind);
253Assert.Equal(SymbolKind.ErrorType, @base.Kind);
Symbols\Metadata\PE\NoPia.cs (63)
156Assert.Equal(SymbolKind.ErrorType, param[0].Type.Kind);
164Assert.Equal(SymbolKind.ErrorType, param[1].Type.Kind);
200Assert.Equal(SymbolKind.ErrorType, param[0].Type.Kind);
208Assert.Equal(SymbolKind.ErrorType, param[1].Type.Kind);
213Assert.Equal(SymbolKind.ErrorType, param[0].Type.Kind);
215Assert.Equal(SymbolKind.ErrorType, param[1].Type.Kind);
237Assert.Equal(SymbolKind.ErrorType, param[0].Type.Kind);
239Assert.Equal(SymbolKind.ErrorType, param[1].Type.Kind);
244Assert.Equal(SymbolKind.ErrorType, param[0].Type.Kind);
246Assert.Equal(SymbolKind.ErrorType, param[1].Type.Kind);
270Assert.NotEqual(SymbolKind.ErrorType, param[0].Type.Kind);
271Assert.NotEqual(SymbolKind.ErrorType, param[1].Type.Kind);
275Assert.Equal(SymbolKind.ErrorType, param[0].Type.Kind);
277Assert.Equal(SymbolKind.ErrorType, param[1].Type.Kind);
304Assert.Equal(SymbolKind.ErrorType, param[0].Type.Kind);
311Assert.Equal(SymbolKind.ErrorType, param[1].Type.Kind);
528Assert.Equal(SymbolKind.ErrorType, param[0].Type.Kind);
537Assert.Equal(SymbolKind.ErrorType, param[1].Type.Kind);
542Assert.Equal(SymbolKind.ErrorType, param[0].Type.Kind);
550Assert.Equal(SymbolKind.ErrorType, param[1].Type.Kind);
571Assert.Equal(SymbolKind.ErrorType, param[0].Type.Kind);
573Assert.Equal(SymbolKind.ErrorType, param[1].Type.Kind);
578Assert.Equal(SymbolKind.ErrorType, param[0].Type.Kind);
580Assert.Equal(SymbolKind.ErrorType, param[1].Type.Kind);
604Assert.NotEqual(SymbolKind.ErrorType, param[0].Type.Kind);
605Assert.NotEqual(SymbolKind.ErrorType, param[1].Type.Kind);
612Assert.Equal(SymbolKind.ErrorType, param[0].Type.Kind);
614Assert.Equal(SymbolKind.ErrorType, param[1].Type.Kind);
640Assert.Equal(SymbolKind.ErrorType, param[0].Type.Kind);
646Assert.Equal(SymbolKind.ErrorType, param[1].Type.Kind);
717Assert.NotEqual(SymbolKind.ErrorType, localTypes3.GetMembers("Test1").OfType<MethodSymbol>().Single().ReturnType.Kind);
718Assert.NotEqual(SymbolKind.ErrorType, localTypes3.GetMembers("Test2").OfType<MethodSymbol>().Single().ReturnType.Kind);
719Assert.Equal(SymbolKind.ErrorType, localTypes3.GetMembers("Test3").OfType<MethodSymbol>().Single().ReturnType.Kind);
724Assert.NotEqual(SymbolKind.ErrorType, localTypes3.GetMembers("Test4").OfType<MethodSymbol>().Single().ReturnType.Kind);
736Assert.NotEqual(SymbolKind.ErrorType, localTypes3.GetMembers("Test1").OfType<MethodSymbol>().Single().ReturnType.Kind);
737Assert.NotEqual(SymbolKind.ErrorType, localTypes3.GetMembers("Test2").OfType<MethodSymbol>().Single().ReturnType.Kind);
739Assert.NotEqual(SymbolKind.ErrorType, localTypes3.GetMembers("Test4").OfType<MethodSymbol>().Single().ReturnType.Kind);
780Assert.NotEqual(SymbolKind.ErrorType, varI5_2.GetMembers("Foo").OfType<MethodSymbol>().Single().ReturnType.Kind);
794Assert.NotEqual(SymbolKind.ErrorType, varI7_3.GetMembers("Bar").OfType<MethodSymbol>().Single().ReturnType.Kind);
809Assert.NotEqual(SymbolKind.ErrorType, varI7_4.GetMembers("Foo").OfType<MethodSymbol>().Single().ReturnType.Kind);
810Assert.NotEqual(SymbolKind.ErrorType, varI7_4.GetMembers("Bar").OfType<MethodSymbol>().Single().ReturnType.Kind);
858Assert.NotEqual(SymbolKind.ErrorType, varI7_7.GetMembers("Bar").OfType<MethodSymbol>().Single().ReturnType.Kind);
1018Assert.NotEqual(SymbolKind.ErrorType, localTypes3.GetMembers("Test1").OfType<MethodSymbol>().Single().ReturnType.Kind);
1019Assert.NotEqual(SymbolKind.ErrorType, localTypes3.GetMembers("Test2").OfType<MethodSymbol>().Single().ReturnType.Kind);
1020Assert.Equal(SymbolKind.ErrorType, localTypes3.GetMembers("Test3").OfType<MethodSymbol>().Single().ReturnType.Kind);
1025Assert.NotEqual(SymbolKind.ErrorType, localTypes3.GetMembers("Test4").OfType<MethodSymbol>().Single().ReturnType.Kind);
1037Assert.NotEqual(SymbolKind.ErrorType, localTypes3.GetMembers("Test1").OfType<MethodSymbol>().Single().ReturnType.Kind);
1038Assert.NotEqual(SymbolKind.ErrorType, localTypes3.GetMembers("Test2").OfType<MethodSymbol>().Single().ReturnType.Kind);
1040Assert.NotEqual(SymbolKind.ErrorType, localTypes3.GetMembers("Test4").OfType<MethodSymbol>().Single().ReturnType.Kind);
1147Assert.NotEqual(SymbolKind.ErrorType, varI5_2.GetMembers("Foo").OfType<MethodSymbol>().Single().ReturnType.Kind);
1161Assert.NotEqual(SymbolKind.ErrorType, varI7_3.GetMembers("Bar").OfType<MethodSymbol>().Single().ReturnType.Kind);
1176Assert.NotEqual(SymbolKind.ErrorType, varI7_4.GetMembers("Foo").OfType<MethodSymbol>().Single().ReturnType.Kind);
1177Assert.NotEqual(SymbolKind.ErrorType, varI7_4.GetMembers("Bar").OfType<MethodSymbol>().Single().ReturnType.Kind);
1225Assert.NotEqual(SymbolKind.ErrorType, varI7_7.GetMembers("Bar").OfType<MethodSymbol>().Single().ReturnType.Kind);
1239Assert.NotEqual(SymbolKind.ErrorType, varI5.Kind);
1240Assert.NotEqual(SymbolKind.ErrorType, varI6.Kind);
1241Assert.NotEqual(SymbolKind.ErrorType, varI5_Foo.ReturnType.Kind);
1242Assert.NotEqual(SymbolKind.ErrorType, ((NamedTypeSymbol)varI5_Foo.ReturnType).TypeArguments()[0].Kind);
1249Assert.NotEqual(SymbolKind.ErrorType, varI7_Foo.ReturnType.Kind);
1250Assert.NotEqual(SymbolKind.ErrorType, ((NamedTypeSymbol)varI7_Foo.ReturnType).TypeArguments()[0].Kind);
1253Assert.NotEqual(SymbolKind.ErrorType, varI7_Bar.ReturnType.Kind);
1254Assert.NotEqual(SymbolKind.ErrorType, ((NamedTypeSymbol)varI7_Bar.ReturnType).TypeArguments()[0].Kind);
1259Assert.NotEqual(SymbolKind.ErrorType, varI1.Kind);
Symbols\Metadata\PE\NoPiaInstantiationOfGenericClassAndStruct.cs (31)
36Assert.Equal(SymbolKind.ErrorType, localField.Type.BaseType().Kind);
56Assert.Equal(SymbolKind.ErrorType, importedField.Type.Kind);
76Assert.Equal(SymbolKind.ErrorType, importedField.Type.Kind);
95Assert.Equal(SymbolKind.NamedType, importedField.Type.Kind);
98Assert.Equal(SymbolKind.NamedType, outer.Kind);
101Assert.Equal(SymbolKind.ErrorType, inner.Kind);
118Assert.Equal(SymbolKind.NamedType, var1.Type.Kind);
140Assert.Equal(SymbolKind.ErrorType, m.Parameters.Where(arg => arg.Name == "c1").Select(arg => arg).Single().Type.BaseType().Kind);
145Assert.Equal(SymbolKind.ErrorType, m.ReturnType.BaseType().Kind);
165Assert.Equal(SymbolKind.NamedType, var1.Type.Kind);
184Assert.Equal(SymbolKind.ErrorType, importedProperty.Parameters.Single(arg => arg.Name == "x").Type.Kind);
203Assert.Equal(SymbolKind.ErrorType, importedProperty.Type.Kind);
222Assert.Equal(SymbolKind.ErrorType, importedMethod.Parameters.Where(arg => arg.Name == "x").Select(arg => arg).Single().Type.Kind);
241Assert.Equal(SymbolKind.ErrorType, importedMethod.Parameters.Where(arg => arg.Name == "x").Select(arg => arg).Single().Type.Kind);
260Assert.Equal(SymbolKind.ErrorType, importedMethod.Parameters.Where(arg => arg.Name == "x").Select(arg => arg).Single().Type.Kind);
279Assert.Equal(SymbolKind.ErrorType, importedMethod.ReturnType.Kind);
298Assert.Equal(SymbolKind.ErrorType, importedMethod.Parameters.Where(arg => arg.Name == "x").Select(arg => arg).Single().Type.Kind);
317Assert.Equal(SymbolKind.ErrorType, importedMethod.Parameters.Single(arg => arg.Name == "x").Type.Kind);
336Assert.Equal(SymbolKind.ErrorType, importedField.Type.Kind);
354Assert.Equal(SymbolKind.NamedType, var1.Type.Kind);
371Assert.Equal(SymbolKind.NamedType, var1.Type.Kind);
391Assert.Equal(SymbolKind.ErrorType, localField.Type.BaseType().Kind);
412Assert.Equal(SymbolKind.NamedType, localField.Type.Kind);
445Assert.Equal(SymbolKind.Parameter, m.Parameters.Where(arg => arg.Name == "c1").Select(arg => arg).Single().Kind);
450Assert.Equal(SymbolKind.NamedType, m.ReturnType.Kind);
468Assert.Equal(SymbolKind.NamedType, classLocalType.Kind);
489Assert.Equal(SymbolKind.ArrayType, localField.Type.Kind);
490Assert.Equal(SymbolKind.ErrorType, ((ArrayTypeSymbol)localField.Type).ElementType.Kind);
505Assert.Equal(SymbolKind.ArrayType, localField.Type.Kind);
521Assert.Equal(SymbolKind.ErrorType, localMethod.ReturnType.Kind);
571Assert.Equal(SymbolKind.ErrorType, m.ReturnType.Kind);
Symbols\Retargeting\NoPia.cs (73)
464Assert.Equal(SymbolKind.ErrorType, param[0].Type.Kind);
472Assert.Equal(SymbolKind.ErrorType, param[1].Type.Kind);
506Assert.Equal(SymbolKind.ErrorType, param[0].Type.Kind);
514Assert.Equal(SymbolKind.ErrorType, param[1].Type.Kind);
519Assert.Equal(SymbolKind.ErrorType, param[0].Type.Kind);
521Assert.Equal(SymbolKind.ErrorType, param[1].Type.Kind);
541Assert.Equal(SymbolKind.ErrorType, param[0].Type.Kind);
543Assert.Equal(SymbolKind.ErrorType, param[1].Type.Kind);
548Assert.Equal(SymbolKind.ErrorType, param[0].Type.Kind);
550Assert.Equal(SymbolKind.ErrorType, param[1].Type.Kind);
573Assert.NotEqual(SymbolKind.ErrorType, param[0].Type.Kind);
574Assert.NotEqual(SymbolKind.ErrorType, param[1].Type.Kind);
578Assert.Equal(SymbolKind.ErrorType, param[0].Type.Kind);
580Assert.Equal(SymbolKind.ErrorType, param[1].Type.Kind);
606Assert.Equal(SymbolKind.ErrorType, param[0].Type.Kind);
612Assert.Equal(SymbolKind.ErrorType, param[1].Type.Kind);
765Assert.Equal(SymbolKind.ErrorType, param[0].Type.Kind);
773Assert.Equal(SymbolKind.ErrorType, param[1].Type.Kind);
807Assert.Equal(SymbolKind.ErrorType, param[0].Type.Kind);
815Assert.Equal(SymbolKind.ErrorType, param[1].Type.Kind);
820Assert.Equal(SymbolKind.ErrorType, param[0].Type.Kind);
822Assert.Equal(SymbolKind.ErrorType, param[1].Type.Kind);
842Assert.Equal(SymbolKind.ErrorType, param[0].Type.Kind);
844Assert.Equal(SymbolKind.ErrorType, param[1].Type.Kind);
849Assert.Equal(SymbolKind.ErrorType, param[0].Type.Kind);
851Assert.Equal(SymbolKind.ErrorType, param[1].Type.Kind);
874Assert.NotEqual(SymbolKind.ErrorType, param[0].Type.Kind);
875Assert.NotEqual(SymbolKind.ErrorType, param[1].Type.Kind);
879Assert.Equal(SymbolKind.ErrorType, param[0].Type.Kind);
881Assert.Equal(SymbolKind.ErrorType, param[1].Type.Kind);
907Assert.Equal(SymbolKind.ErrorType, param[0].Type.Kind);
913Assert.Equal(SymbolKind.ErrorType, param[1].Type.Kind);
1069Assert.Equal(SymbolKind.ErrorType, param[0].Type.Kind);
1077Assert.Equal(SymbolKind.ErrorType, param[1].Type.Kind);
1111Assert.Equal(SymbolKind.ErrorType, param[0].Type.Kind);
1119Assert.Equal(SymbolKind.ErrorType, param[1].Type.Kind);
1124Assert.Equal(SymbolKind.ErrorType, param[0].Type.Kind);
1126Assert.Equal(SymbolKind.ErrorType, param[1].Type.Kind);
1146Assert.Equal(SymbolKind.ErrorType, param[0].Type.Kind);
1148Assert.Equal(SymbolKind.ErrorType, param[1].Type.Kind);
1153Assert.Equal(SymbolKind.ErrorType, param[0].Type.Kind);
1155Assert.Equal(SymbolKind.ErrorType, param[1].Type.Kind);
1178Assert.NotEqual(SymbolKind.ErrorType, param[0].Type.Kind);
1179Assert.NotEqual(SymbolKind.ErrorType, param[1].Type.Kind);
1183Assert.Equal(SymbolKind.ErrorType, param[0].Type.Kind);
1185Assert.Equal(SymbolKind.ErrorType, param[1].Type.Kind);
1211Assert.Equal(SymbolKind.ErrorType, param[0].Type.Kind);
1217Assert.Equal(SymbolKind.ErrorType, param[1].Type.Kind);
1349Assert.NotEqual(SymbolKind.ErrorType, localTypes3.GetMembers("Test1").OfType<MethodSymbol>().Single().ReturnType.Kind);
1350Assert.NotEqual(SymbolKind.ErrorType, localTypes3.GetMembers("Test2").OfType<MethodSymbol>().Single().ReturnType.Kind);
1351Assert.Equal(SymbolKind.ErrorType, localTypes3.GetMembers("Test3").OfType<MethodSymbol>().Single().ReturnType.Kind);
1356Assert.NotEqual(SymbolKind.ErrorType, localTypes3.GetMembers("Test4").OfType<MethodSymbol>().Single().ReturnType.Kind);
1370Assert.NotEqual(SymbolKind.ErrorType, localTypes3.GetMembers("Test1").OfType<MethodSymbol>().Single().ReturnType.Kind);
1371Assert.NotEqual(SymbolKind.ErrorType, localTypes3.GetMembers("Test2").OfType<MethodSymbol>().Single().ReturnType.Kind);
1373Assert.NotEqual(SymbolKind.ErrorType, localTypes3.GetMembers("Test4").OfType<MethodSymbol>().Single().ReturnType.Kind);
1415Assert.Equal(SymbolKind.ErrorType, assemblies1[0].GlobalNamespace.GetMember<MethodSymbol>("C.Test1").ReturnType.Kind);
1423Assert.Equal(SymbolKind.ErrorType, assemblies2[0].GlobalNamespace.GetMember<MethodSymbol>("C.Test1").ReturnType.Kind);
1460Assert.Equal(SymbolKind.ErrorType, assemblies1[0].GlobalNamespace.GetMember<MethodSymbol>("C.Test1").ReturnType.Kind);
1468Assert.Equal(SymbolKind.ErrorType, assemblies2[0].GlobalNamespace.GetMember<MethodSymbol>("C.Test1").ReturnType.Kind);
1902Assert.NotEqual(SymbolKind.ErrorType, localTypes3.GetMembers("Test1").OfType<MethodSymbol>().Single().ReturnType.Kind);
1903Assert.NotEqual(SymbolKind.ErrorType, localTypes3.GetMembers("Test2").OfType<MethodSymbol>().Single().ReturnType.Kind);
1904Assert.Equal(SymbolKind.ErrorType, localTypes3.GetMembers("Test3").OfType<MethodSymbol>().Single().ReturnType.Kind);
1909Assert.NotEqual(SymbolKind.ErrorType, localTypes3.GetMembers("Test4").OfType<MethodSymbol>().Single().ReturnType.Kind);
1923Assert.NotEqual(SymbolKind.ErrorType, localTypes3.GetMembers("Test1").OfType<MethodSymbol>().Single().ReturnType.Kind);
1924Assert.NotEqual(SymbolKind.ErrorType, localTypes3.GetMembers("Test2").OfType<MethodSymbol>().Single().ReturnType.Kind);
1926Assert.NotEqual(SymbolKind.ErrorType, localTypes3.GetMembers("Test4").OfType<MethodSymbol>().Single().ReturnType.Kind);
1952Assert.NotEqual(SymbolKind.ErrorType, localTypes3.GetMembers("Test1").OfType<MethodSymbol>().Single().ReturnType.Kind);
1953Assert.NotEqual(SymbolKind.ErrorType, localTypes3.GetMembers("Test2").OfType<MethodSymbol>().Single().ReturnType.Kind);
1954Assert.Equal(SymbolKind.ErrorType, localTypes3.GetMembers("Test3").OfType<MethodSymbol>().Single().ReturnType.Kind);
1959Assert.NotEqual(SymbolKind.ErrorType, localTypes3.GetMembers("Test4").OfType<MethodSymbol>().Single().ReturnType.Kind);
1973Assert.NotEqual(SymbolKind.ErrorType, localTypes3.GetMembers("Test1").OfType<MethodSymbol>().Single().ReturnType.Kind);
1974Assert.NotEqual(SymbolKind.ErrorType, localTypes3.GetMembers("Test2").OfType<MethodSymbol>().Single().ReturnType.Kind);
1976Assert.NotEqual(SymbolKind.ErrorType, localTypes3.GetMembers("Test4").OfType<MethodSymbol>().Single().ReturnType.Kind);
Symbols\Source\BaseClassTests.cs (11)
41Assert.Equal(SymbolKind.ErrorType, x.BaseType().Kind);
42Assert.Equal(SymbolKind.ErrorType, y.BaseType().Kind);
61Assert.Equal(SymbolKind.ErrorType, x.BaseType().Kind);
62Assert.Equal(SymbolKind.ErrorType, y.BaseType().Kind);
187Assert.Equal(SymbolKind.ErrorType, a.Interfaces()[0].Kind);
1322Assert.NotEqual(SymbolKind.ErrorType, d.BaseType().Kind);
1341Assert.Equal(SymbolKind.ArrayType, garg.Kind);
1393Assert.Equal(SymbolKind.ErrorType, a2.BaseType().Kind);
1396Assert.Equal(SymbolKind.ErrorType, b2.BaseType().Kind);
1416Assert.Equal(SymbolKind.ErrorType, abase.Kind);
1418Assert.Equal(SymbolKind.ErrorType, bbase.Kind);
Symbols\Source\DeclaringSyntaxNodeTests.cs (28)
93if (symbol.Kind == SymbolKind.Namespace && ((INamespaceSymbol)symbol).IsGlobalNamespace)
134private void CheckDeclaringSyntax<TNode>(CSharpCompilation comp, SyntaxTree tree, string name, SymbolKind kind)
356if (member.Kind == SymbolKind.Property)
523if (memb.Kind == SymbolKind.Method && ((IMethodSymbol)memb).MethodKind == MethodKind.Constructor)
577if (memb.Kind == SymbolKind.Method)
604CheckDeclaringSyntax<VariableDeclaratorSyntax>(comp, tree, "loc1", SymbolKind.Local);
605CheckDeclaringSyntax<VariableDeclaratorSyntax>(comp, tree, "loc2", SymbolKind.Local);
606CheckDeclaringSyntax<VariableDeclaratorSyntax>(comp, tree, "loc3", SymbolKind.Local);
607CheckDeclaringSyntax<VariableDeclaratorSyntax>(comp, tree, "loc4", SymbolKind.Local);
608CheckDeclaringSyntax<VariableDeclaratorSyntax>(comp, tree, "loc5", SymbolKind.Local);
609CheckDeclaringSyntax<VariableDeclaratorSyntax>(comp, tree, "loc6", SymbolKind.Local);
610CheckDeclaringSyntax<VariableDeclaratorSyntax>(comp, tree, "loc7", SymbolKind.Local);
611CheckDeclaringSyntax<ForEachStatementSyntax>(comp, tree, "loc8", SymbolKind.Local);
639CheckDeclaringSyntax<LabeledStatementSyntax>(comp, tree, "lab1", SymbolKind.Label);
640CheckDeclaringSyntax<LabeledStatementSyntax>(comp, tree, "lab2", SymbolKind.Label);
641CheckDeclaringSyntax<LabeledStatementSyntax>(comp, tree, "lab3", SymbolKind.Label);
642CheckDeclaringSyntax<SwitchLabelSyntax>(comp, tree, "case 4:", SymbolKind.Label);
643CheckDeclaringSyntax<SwitchLabelSyntax>(comp, tree, "case 3:", SymbolKind.Label);
644CheckDeclaringSyntax<SwitchLabelSyntax>(comp, tree, "default", SymbolKind.Label);
664CheckDeclaringSyntax<UsingDirectiveSyntax>(comp, tree, "ConsoleAlias", SymbolKind.Alias);
665CheckDeclaringSyntax<UsingDirectiveSyntax>(comp, tree, "ListOfIntAlias", SymbolKind.Alias);
666CheckDeclaringSyntax<UsingDirectiveSyntax>(comp, tree, "GooAlias", SymbolKind.Alias);
690CheckDeclaringSyntax<QueryClauseSyntax>(comp, tree, "range1", SymbolKind.RangeVariable);
691CheckDeclaringSyntax<QueryClauseSyntax>(comp, tree, "range2", SymbolKind.RangeVariable);
692CheckDeclaringSyntax<QueryContinuationSyntax>(comp, tree, "range3", SymbolKind.RangeVariable);
693CheckDeclaringSyntax<QueryClauseSyntax>(comp, tree, "range4", SymbolKind.RangeVariable);
694CheckDeclaringSyntax<QueryClauseSyntax>(comp, tree, "range5", SymbolKind.RangeVariable);
695CheckDeclaringSyntax<JoinIntoClauseSyntax>(comp, tree, "range6", SymbolKind.RangeVariable);
Symbols\Source\UsingAliasTests.cs (12)
52Assert.Equal(SymbolKind.Alias, alias1.Kind);
112Assert.Equal(SymbolKind.Alias, alias1.Kind);
169Assert.Equal(SymbolKind.Alias, alias1.Kind);
227Assert.Equal(SymbolKind.Alias, alias1.Kind);
488Assert.Equal(SymbolKind.Alias, symbols[0].Kind);
509Assert.Equal(SymbolKind.Alias, symbols[0].Kind);
546Assert.Equal(SymbolKind.Alias, model.GetAliasInfo(exprSyntaxToBind).Kind);
566Assert.Equal(SymbolKind.Alias, model.GetAliasInfo(exprSyntaxToBind).Kind);
585Assert.Equal(SymbolKind.Alias, model.GetAliasInfo(exprSyntaxToBind).Kind);
605Assert.Equal(SymbolKind.Alias, model.GetAliasInfo(exprSyntaxToBind).Kind);
705Assert.Equal(SymbolKind.ErrorType, alias.Target.Kind);
748Assert.Equal(SymbolKind.ErrorType, alias.Target.Kind);
Symbols\TypeTests.cs (24)
470Assert.Equal(SymbolKind.Field, field1.Kind);
485Assert.Equal(SymbolKind.Field, field1.Kind);
495Assert.Equal(SymbolKind.Method, method.Kind);
544Assert.Equal(SymbolKind.ArrayType, sym1.Kind);
573Assert.Equal(SymbolKind.ArrayType, sym2.Kind);
592Assert.Equal(SymbolKind.ArrayType, sym1.Kind);
598Assert.Equal(SymbolKind.ArrayType, sym2.Kind);
604Assert.Equal(SymbolKind.ArrayType, sym3.Kind);
631Assert.Equal(SymbolKind.Field, m.Kind);
641Assert.Equal(SymbolKind.Field, obj.Kind);
645Assert.NotEqual(SymbolKind.ErrorType, objType.Kind);
649Assert.Equal(SymbolKind.Field, dyn.Kind);
653Assert.NotEqual(SymbolKind.ErrorType, dynType.Kind);
683Assert.Equal(SymbolKind.Field, symbol.Kind);
855Assert.Equal(SymbolKind.NamedType, igoo.Kind);
868Assert.Equal(SymbolKind.NamedType, classA.Kind);
880Assert.Equal(SymbolKind.NamedType, structS.Kind);
907Assert.Equal(SymbolKind.Field, varA.Kind);
909Assert.Equal(SymbolKind.NamedType, varA.Type.Kind);
1243Assert.Equal(SymbolKind.ErrorType, typeAb.Kind);
1250Assert.Equal(SymbolKind.ErrorType, typeBi.Kind);
1257Assert.Equal(SymbolKind.ErrorType, typeCi.Kind);
1264Assert.Equal(SymbolKind.ErrorType, typeDi.TypeArguments()[2].Kind);
1480Assert.Equal(SymbolKind.Field, varX.Kind);
Microsoft.CodeAnalysis.CSharp.Syntax.UnitTests (1)
Microsoft.CodeAnalysis.CSharp.Test.Utilities (28)
Microsoft.CodeAnalysis.CSharp.WinRT.UnitTests (6)
Microsoft.CodeAnalysis.CSharp.Workspaces (68)
Microsoft.CodeAnalysis.CSharp.Workspaces.UnitTests (2)
Microsoft.CodeAnalysis.EditorFeatures (7)
Microsoft.CodeAnalysis.EditorFeatures.UnitTests (2)
Microsoft.CodeAnalysis.ExpressionEvaluator.ExpressionCompiler (5)
Microsoft.CodeAnalysis.Extensions.Package (112)
Symbols\ISymbolExtensions.cs (25)
41case SymbolKind.Alias:
46case SymbolKind.Parameter:
50case SymbolKind.TypeParameter:
55while (symbol != null && symbol.Kind != SymbolKind.Namespace)
122if (symbol.Kind is SymbolKind.Event or SymbolKind.Property)
153if (symbol.Kind is not SymbolKind.Method and not SymbolKind.Property and not SymbolKind.Event)
190if (symbol.Kind == SymbolKind.Event)
195if (symbol.Kind == SymbolKind.Property)
236=> symbol is { Kind: SymbolKind.ArrayType };
244public static bool IsKind([NotNullWhen(true)] this ISymbol? symbol, SymbolKind kind)
247public static bool MatchesKind([NotNullWhen(true)] this ISymbol? symbol, SymbolKind kind)
250public static bool MatchesKind([NotNullWhen(true)] this ISymbol? symbol, SymbolKind kind1, SymbolKind kind2)
256public static bool MatchesKind([NotNullWhen(true)] this ISymbol? symbol, SymbolKind kind1, SymbolKind kind2, SymbolKind kind3)
262public static bool MatchesKind([NotNullWhen(true)] this ISymbol? symbol, params SymbolKind[] kinds)
272=> symbol is { Kind: SymbolKind.Field, ContainingType.TypeKind: TypeKind.Enum };
355SymbolKind.NamedType => ((INamedTypeSymbol)symbol).Arity,
356SymbolKind.Method => ((IMethodSymbol)symbol).Arity,
593if (symbol.Kind != SymbolKind.Local)
779public 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 (267)
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 }:
3704=> symbol.Kind is SymbolKind.Method or SymbolKind.Property or SymbolKind.Field or SymbolKind.Event;
4281rudeEdit = (oldSymbol.Kind == SymbolKind.Field || newSymbol.Kind == SymbolKind.Field) ? RudeEditKind.FieldKindUpdate : RudeEditKind.Update;
4656oldMember is not IMethodSymbol { AssociatedSymbol.Kind: SymbolKind.Property or SymbolKind.Event })
4840var rudeEdit = oldSymbol.ContainingSymbol.Kind == SymbolKind.Method ? RudeEditKind.GenericMethodUpdate : RudeEditKind.GenericTypeUpdate;
5173if (newDiagnosticSymbol.Kind is not (SymbolKind.Parameter or SymbolKind.TypeParameter))
5188if (oldSymbol.Kind is not (SymbolKind.Parameter or SymbolKind.TypeParameter))
5332case SymbolKind.Field:
5340case SymbolKind.Property:
5349case SymbolKind.Event:
5358case SymbolKind.Parameter:
5372parameter.ContainingType.GetMembers($"<{parameter.Name}>P").Any(m => m.Kind == SymbolKind.Field);
5727member.Kind is SymbolKind.Field or SymbolKind.Property &&
6567if (oldSymbol.Kind == SymbolKind.RangeVariable)
6587if (oldSymbol.Kind == SymbolKind.Parameter)
6683SymbolKind.Parameter => ((IParameterSymbol)localOrParameter).Type,
6684SymbolKind.Local => ((ILocalSymbol)localOrParameter).Type,
6690Debug.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\Analyzers\Core\Analyzers\RemoveUnusedParametersAndValues\AbstractRemoveUnusedParametersAndValuesDiagnosticAnalyzer.SymbolStartAnalyzer.cs (1)
71}, SymbolKind.NamedType);
src\Analyzers\Core\CodeFixes\GenerateVariable\AbstractGenerateVariableService.cs (4)
100document.Document, state, SymbolKind.Property, state.DetermineMaximalAccessibility(), cancellationToken).ConfigureAwait(false))
116Document document, State state, SymbolKind kind, Accessibility accessibility, CancellationToken cancellationToken)
182document, state, SymbolKind.Local, Accessibility.NotApplicable, cancellationToken).ConfigureAwait(false))
198document, state, SymbolKind.Parameter, Accessibility.NotApplicable, cancellationToken).ConfigureAwait(false))
Microsoft.CodeAnalysis.LanguageServer (2)
Microsoft.CodeAnalysis.LanguageServer.Protocol (1)
Microsoft.CodeAnalysis.LanguageServer.Protocol.UnitTests (2)
Microsoft.CodeAnalysis.PerformanceSensitiveAnalyzers (297)
Microsoft.CodeAnalysis.PublicApiAnalyzers (265)
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\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\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\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\ISymbolExtensions.cs (25)
41case SymbolKind.Alias:
46case SymbolKind.Parameter:
50case SymbolKind.TypeParameter:
55while (symbol != null && symbol.Kind != SymbolKind.Namespace)
122if (symbol.Kind is SymbolKind.Event or SymbolKind.Property)
153if (symbol.Kind is not SymbolKind.Method and not SymbolKind.Property and not SymbolKind.Event)
190if (symbol.Kind == SymbolKind.Event)
195if (symbol.Kind == SymbolKind.Property)
236=> symbol is { Kind: SymbolKind.ArrayType };
244public static bool IsKind([NotNullWhen(true)] this ISymbol? symbol, SymbolKind kind)
247public static bool MatchesKind([NotNullWhen(true)] this ISymbol? symbol, SymbolKind kind)
250public static bool MatchesKind([NotNullWhen(true)] this ISymbol? symbol, SymbolKind kind1, SymbolKind kind2)
256public static bool MatchesKind([NotNullWhen(true)] this ISymbol? symbol, SymbolKind kind1, SymbolKind kind2, SymbolKind kind3)
262public static bool MatchesKind([NotNullWhen(true)] this ISymbol? symbol, params SymbolKind[] kinds)
272=> symbol is { Kind: SymbolKind.Field, ContainingType.TypeKind: TypeKind.Enum };
355SymbolKind.NamedType => ((INamedTypeSymbol)symbol).Arity,
356SymbolKind.Method => ((IMethodSymbol)symbol).Arity,
593if (symbol.Kind != SymbolKind.Local)
779public static bool IsKind<TSymbol>(this ISymbol symbol, SymbolKind kind, [NotNullWhen(true)] out TSymbol? result) where TSymbol : class, ISymbol
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\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.ResxSourceGenerator (258)
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\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\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\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\ISymbolExtensions.cs (25)
41case SymbolKind.Alias:
46case SymbolKind.Parameter:
50case SymbolKind.TypeParameter:
55while (symbol != null && symbol.Kind != SymbolKind.Namespace)
122if (symbol.Kind is SymbolKind.Event or SymbolKind.Property)
153if (symbol.Kind is not SymbolKind.Method and not SymbolKind.Property and not SymbolKind.Event)
190if (symbol.Kind == SymbolKind.Event)
195if (symbol.Kind == SymbolKind.Property)
236=> symbol is { Kind: SymbolKind.ArrayType };
244public static bool IsKind([NotNullWhen(true)] this ISymbol? symbol, SymbolKind kind)
247public static bool MatchesKind([NotNullWhen(true)] this ISymbol? symbol, SymbolKind kind)
250public static bool MatchesKind([NotNullWhen(true)] this ISymbol? symbol, SymbolKind kind1, SymbolKind kind2)
256public static bool MatchesKind([NotNullWhen(true)] this ISymbol? symbol, SymbolKind kind1, SymbolKind kind2, SymbolKind kind3)
262public static bool MatchesKind([NotNullWhen(true)] this ISymbol? symbol, params SymbolKind[] kinds)
272=> symbol is { Kind: SymbolKind.Field, ContainingType.TypeKind: TypeKind.Enum };
355SymbolKind.NamedType => ((INamedTypeSymbol)symbol).Arity,
356SymbolKind.Method => ((IMethodSymbol)symbol).Arity,
593if (symbol.Kind != SymbolKind.Local)
779public static bool IsKind<TSymbol>(this ISymbol symbol, SymbolKind kind, [NotNullWhen(true)] out TSymbol? result) where TSymbol : class, ISymbol
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\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.Test.Utilities (81)
Diagnostics\CommonDiagnosticAnalyzers.cs (32)
767}, SymbolKind.NamedType);
789context.RegisterSymbolAction(AnalyzeSymbol, SymbolKind.Namespace);
964cc.RegisterSymbolAction(c => ReportDiagnostic(c.ReportDiagnostic, ActionKind.Symbol), SymbolKind.NamedType);
1004}, SymbolKind.NamedType);
1044}, SymbolKind.NamedType);
1179}, SymbolKind.NamedType);
1211}, SymbolKind.NamedType);
1538}, SymbolKind.NamedType);
1573if (context.OwningSymbol.Kind != SymbolKind.Method ||
1591if (context.OwningSymbol.Kind != SymbolKind.Method ||
1602}, SymbolKind.NamedType);
1606if (context.OwningSymbol.Kind != SymbolKind.Method)
1619if (context.OwningSymbol.Kind != SymbolKind.Method)
1700compilationStartContext.RegisterSymbolAction(symbolContext => namedTypes.Add(symbolContext.Symbol), SymbolKind.NamedType);
1816}, SymbolKind.NamedType);
1859context.RegisterSymbolAction(SymbolAction, SymbolKind.Parameter);
1871private readonly SymbolKind _symbolKind;
1876public SymbolStartAnalyzer(bool topLevelAction, SymbolKind symbolKind, OperationKind? operationKindOpt = null, int? analyzerId = null)
2430}, SymbolKind.NamedType);
2441}, SymbolKind.NamedType);
2451}, SymbolKind.NamedType);
2548SymbolKind.NamedType);
2614SymbolKind.Field);
2754SymbolKind.NamedType, SymbolKind.Method);
2770}, SymbolKind.NamedType);
2943context.RegisterSymbolAction(context => HandleCallback(context.Symbol.Locations[0], context.Compilation, context.ReportDiagnostic, context.CancellationToken), SymbolKind.NamedType);
3019context.RegisterSymbolAction(symbolContext => AnalyzedSymbols.Add(symbolContext.Symbol), SymbolKind.NamedType, SymbolKind.Method);
3039}, SymbolKind.NamedType);
3134}, SymbolKind.NamedType);
3151}, SymbolKind.NamedType);
Diagnostics\TrackingDiagnosticAnalyzer.cs (29)
30public readonly SymbolKind? SymbolKind;
39SymbolKind = symbol == null ? (SymbolKind?)null : symbol.Kind;
84SymbolKind.Event, SymbolKind.Field, SymbolKind.Method, SymbolKind.NamedType, SymbolKind.Namespace, SymbolKind.Parameter, SymbolKind.Property
107protected virtual bool IsOnCodeBlockSupported(SymbolKind symbolKind, MethodKind methodKind, bool returnsVoid)
112public void VerifyOnCodeBlockCalledForAllSymbolAndMethodKinds(HashSet<SymbolKind> symbolKindsWithNoCodeBlocks = null, bool allowUnexpectedCalls = false)
117new { SymbolKind = SymbolKind.Event, MethodKind = InvalidMethodKind, ReturnsVoid = false },
118new { SymbolKind = SymbolKind.Field, MethodKind = InvalidMethodKind, ReturnsVoid = false },
119new { SymbolKind = SymbolKind.Method, MethodKind = MethodKind.Constructor, ReturnsVoid = true },
120new { SymbolKind = SymbolKind.Method, MethodKind = MethodKind.Conversion, ReturnsVoid = false },
121new { SymbolKind = SymbolKind.Method, MethodKind = MethodKind.Destructor, ReturnsVoid = true }, // C# only
122new { SymbolKind = SymbolKind.Method, MethodKind = MethodKind.EventAdd, ReturnsVoid = true },
123new { SymbolKind = SymbolKind.Method, MethodKind = MethodKind.EventRemove, ReturnsVoid = true },
124new { SymbolKind = SymbolKind.Method, MethodKind = MethodKind.EventRaise, ReturnsVoid = true }, // VB only
125new { SymbolKind = SymbolKind.Method, MethodKind = MethodKind.ExplicitInterfaceImplementation, ReturnsVoid = true }, // C# only
126new { SymbolKind = SymbolKind.Method, MethodKind = MethodKind.Ordinary, ReturnsVoid = false },
127new { SymbolKind = SymbolKind.Method, MethodKind = MethodKind.Ordinary, ReturnsVoid = true },
128new { SymbolKind = SymbolKind.Method, MethodKind = MethodKind.PropertyGet, ReturnsVoid = false },
129new { SymbolKind = SymbolKind.Method, MethodKind = MethodKind.PropertySet, ReturnsVoid = true },
130new { SymbolKind = SymbolKind.Method, MethodKind = MethodKind.StaticConstructor, ReturnsVoid = true },
131new { SymbolKind = SymbolKind.Method, MethodKind = MethodKind.UserDefinedOperator, ReturnsVoid = false },
132new { SymbolKind = SymbolKind.Property, MethodKind = InvalidMethodKind, ReturnsVoid = false },
133new { SymbolKind = SymbolKind.NamedType, MethodKind = InvalidMethodKind, ReturnsVoid = false },
134new { SymbolKind = SymbolKind.Namespace, MethodKind = InvalidMethodKind, ReturnsVoid = false }
Microsoft.CodeAnalysis.UnitTests (3)
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
3092((lookupResult.Symbols(0).Kind <> SymbolKind.Method AndAlso lookupResult.Symbols(0).Kind <> SymbolKind.Property) OrElse
3139Case SymbolKind.Method
3152Case SymbolKind.Property
3164Case SymbolKind.Event
3197Case SymbolKind.Field
3244Case SymbolKind.Local
3281Case SymbolKind.RangeVariable
3286Case SymbolKind.Parameter
3298Case SymbolKind.NamedType, SymbolKind.ErrorType
3339Case SymbolKind.TypeParameter
3345Case SymbolKind.Namespace
3351Case SymbolKind.Alias
3358Case SymbolKind.NamedType, SymbolKind.ErrorType
3364Case SymbolKind.Namespace
3424If candidate.Kind = SymbolKind.Namespace AndAlso
3439If candidate Is Nothing OrElse candidate.Kind = SymbolKind.ErrorType Then
3516Case SymbolKind.Method
3520Case SymbolKind.Property
3524Case SymbolKind.Field
4006Case SymbolKind.Method
4008Case SymbolKind.Field
4012Case SymbolKind.Property
4014Case SymbolKind.Parameter
4016Case SymbolKind.Local
4018Case SymbolKind.RangeVariable
4629Return ContainingMember.Kind = SymbolKind.Method AndAlso DirectCast(ContainingMember, MethodSymbol).IsAsync
4633Return ContainingMember.Kind = SymbolKind.Method AndAlso DirectCast(ContainingMember, MethodSymbol).IsIterator
4740If lookupResult.Kind = LookupResultKind.Good AndAlso lookupResult.Symbols(0).Kind = SymbolKind.Method Then
4792If lookupResult.Kind = LookupResultKind.Good AndAlso lookupResult.Symbols(0).Kind = SymbolKind.Property Then
4838If lookupResult.Kind = LookupResultKind.Good AndAlso lookupResult.Symbols(0).Kind = SymbolKind.Method Then
4960ElseIf 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
592Case SymbolKind.Local
595Case SymbolKind.Label,
596SymbolKind.Alias
600Case SymbolKind.Namespace,
601SymbolKind.Field,
602SymbolKind.RangeVariable,
603SymbolKind.Property,
604SymbolKind.Event,
605SymbolKind.Parameter,
606SymbolKind.TypeParameter,
607SymbolKind.ErrorType,
608SymbolKind.Preprocessing
611Case SymbolKind.NamedType
617Case SymbolKind.Method
627Case SymbolKind.Assembly, SymbolKind.NetModule, SymbolKind.ArrayType
657If Me.Kind = SymbolKind.Method Then
735If Me.Kind = SymbolKind.Assembly Then
740Dim [module] = If(Me.Kind = SymbolKind.NetModule, Me, Me.ContainingModule)
997Case SymbolKind.Field
1000Case SymbolKind.Method
1003Case SymbolKind.Property
1319Private 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.Workspaces (313)
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\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\ISymbolExtensions.cs (25)
41case SymbolKind.Alias:
46case SymbolKind.Parameter:
50case SymbolKind.TypeParameter:
55while (symbol != null && symbol.Kind != SymbolKind.Namespace)
122if (symbol.Kind is SymbolKind.Event or SymbolKind.Property)
153if (symbol.Kind is not SymbolKind.Method and not SymbolKind.Property and not SymbolKind.Event)
190if (symbol.Kind == SymbolKind.Event)
195if (symbol.Kind == SymbolKind.Property)
236=> symbol is { Kind: SymbolKind.ArrayType };
244public static bool IsKind([NotNullWhen(true)] this ISymbol? symbol, SymbolKind kind)
247public static bool MatchesKind([NotNullWhen(true)] this ISymbol? symbol, SymbolKind kind)
250public static bool MatchesKind([NotNullWhen(true)] this ISymbol? symbol, SymbolKind kind1, SymbolKind kind2)
256public static bool MatchesKind([NotNullWhen(true)] this ISymbol? symbol, SymbolKind kind1, SymbolKind kind2, SymbolKind kind3)
262public static bool MatchesKind([NotNullWhen(true)] this ISymbol? symbol, params SymbolKind[] kinds)
272=> symbol is { Kind: SymbolKind.Field, ContainingType.TypeKind: TypeKind.Enum };
355SymbolKind.NamedType => ((INamedTypeSymbol)symbol).Arity,
356SymbolKind.Method => ((IMethodSymbol)symbol).Arity,
593if (symbol.Kind != SymbolKind.Local)
779public static bool IsKind<TSymbol>(this ISymbol symbol, SymbolKind kind, [NotNullWhen(true)] out TSymbol? result) where TSymbol : class, ISymbol
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\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.Workspaces.Test.Utilities (1)
Microsoft.CodeAnalysis.Workspaces.UnitTests (54)
EditorConfigParsing\NamingStyleParserTests.cs (15)
82symbolKind => Assert.Equal(new SymbolKindOrTypeKind(SymbolKind.Field), symbolKind));
118symbolKind => Assert.Equal(new SymbolKindOrTypeKind(SymbolKind.Parameter), symbolKind),
119symbolKind => Assert.Equal(new SymbolKindOrTypeKind(SymbolKind.Local), symbolKind));
156symbolKind => Assert.Equal(new SymbolKindOrTypeKind(SymbolKind.Namespace), symbolKind),
161symbolKind => Assert.Equal(new SymbolKindOrTypeKind(SymbolKind.Property), symbolKind),
164symbolKind => Assert.Equal(new SymbolKindOrTypeKind(SymbolKind.Field), symbolKind),
165symbolKind => Assert.Equal(new SymbolKindOrTypeKind(SymbolKind.Event), symbolKind),
167symbolKind => Assert.Equal(new SymbolKindOrTypeKind(SymbolKind.Parameter), symbolKind),
168symbolKind => Assert.Equal(new SymbolKindOrTypeKind(SymbolKind.TypeParameter), symbolKind),
169symbolKind => Assert.Equal(new SymbolKindOrTypeKind(SymbolKind.Local), symbolKind));
204symbolKind => Assert.Equal(new SymbolKindOrTypeKind(SymbolKind.Field), symbolKind));
277symbolKind => Assert.Equal(new SymbolKindOrTypeKind(SymbolKind.Field), symbolKind),
278symbolKind => Assert.Equal(new SymbolKindOrTypeKind(SymbolKind.Local), symbolKind));
314symbolKind => Assert.Equal(new SymbolKindOrTypeKind(SymbolKind.Field), symbolKind));
351symbolKind => Assert.Equal(new SymbolKindOrTypeKind(SymbolKind.Field), symbolKind));
Options\EditorConfigNamingStyleParserTests.cs (27)
44new SymbolKindOrTypeKind(SymbolKind.Property)
171new SymbolKindOrTypeKind(SymbolKind.Property),
173new SymbolKindOrTypeKind(SymbolKind.Field),
174new SymbolKindOrTypeKind(SymbolKind.Event),
219new SymbolKindOrTypeKind(SymbolKind.Property),
221new SymbolKindOrTypeKind(SymbolKind.Field),
222new SymbolKindOrTypeKind(SymbolKind.Event),
263new SymbolKindOrTypeKind(SymbolKind.Parameter),
264new SymbolKindOrTypeKind(SymbolKind.Local),
334[InlineData("property,method", new object[] { SymbolKind.Property, MethodKind.Ordinary })]
335[InlineData("namespace", new object[] { SymbolKind.Namespace })]
336[InlineData("type_parameter", new object[] { SymbolKind.TypeParameter })]
338[InlineData("*", new object[] { SymbolKind.Namespace, TypeKind.Class, TypeKind.Struct, TypeKind.Interface, TypeKind.Enum, SymbolKind.Property, MethodKind.Ordinary, MethodKind.LocalFunction, SymbolKind.Field, SymbolKind.Event, TypeKind.Delegate, SymbolKind.Parameter, SymbolKind.TypeParameter, SymbolKind.Local })]
339[InlineData(null, new object[] { SymbolKind.Namespace, TypeKind.Class, TypeKind.Struct, TypeKind.Interface, TypeKind.Enum, SymbolKind.Property, MethodKind.Ordinary, MethodKind.LocalFunction, SymbolKind.Field, SymbolKind.Event, TypeKind.Delegate, SymbolKind.Parameter, SymbolKind.TypeParameter, SymbolKind.Local })]
340[InlineData("property,method,invalid", new object[] { SymbolKind.Property, MethodKind.Ordinary })]
Microsoft.DotNet.CodeAnalysis (5)
Microsoft.Extensions.Logging.Generators (4)
Microsoft.Extensions.Options.SourceGeneration (8)
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 (9)
Microsoft.Interop.LibraryImportGenerator (6)
Microsoft.Interop.LibraryImportGenerator.Downlevel (4)
Microsoft.Interop.SourceGeneration (4)
Microsoft.Maui.Controls.BindingSourceGen (2)
Microsoft.ML.CodeAnalyzer.Tests (1)
Microsoft.ML.InternalCodeAnalyzer (8)
Microsoft.VisualStudio.LanguageServices (49)
Microsoft.VisualStudio.LanguageServices.CSharp (18)
Microsoft.VisualStudio.LanguageServices.CSharp.UnitTests (45)
GlyphExtensionsTests.cs (45)
24SymbolKind.Assembly);
27SymbolKind.NetModule);
30SymbolKind.Namespace);
33SymbolKind.TypeParameter);
36SymbolKind.DynamicType);
40SymbolKind.Method,
44SymbolKind.Method,
70SymbolKind.PointerType,
71pointedAtType: (INamedTypeSymbol)CreateSymbolMock(SymbolKind.NamedType, typeKind: TypeKind.Class));
75SymbolKind.Property);
79SymbolKind.Field,
80containingType: (INamedTypeSymbol)CreateSymbolMock(SymbolKind.NamedType, typeKind: TypeKind.Enum));
84SymbolKind.Field,
89SymbolKind.Field);
91TestGlyph(StandardGlyphGroup.GlyphGroupVariable, SymbolKind.Parameter);
92TestGlyph(StandardGlyphGroup.GlyphGroupVariable, SymbolKind.Local);
93TestGlyph(StandardGlyphGroup.GlyphGroupVariable, SymbolKind.RangeVariable);
94TestGlyph(StandardGlyphGroup.GlyphGroupIntrinsic, SymbolKind.Label);
95TestGlyph(StandardGlyphGroup.GlyphGroupEvent, SymbolKind.Event);
99SymbolKind.ArrayType,
100elementType: (INamedTypeSymbol)CreateSymbolMock(SymbolKind.NamedType, typeKind: TypeKind.Class));
104SymbolKind.Alias,
105target: (INamedTypeSymbol)CreateSymbolMock(SymbolKind.NamedType, typeKind: TypeKind.Class));
110(SymbolKind)1000));
114SymbolKind.NamedType,
118SymbolKind.NamedType,
122SymbolKind.NamedType,
126SymbolKind.NamedType,
130SymbolKind.NamedType,
134SymbolKind.NamedType,
138SymbolKind.NamedType,
144SymbolKind.NamedType,
152SymbolKind.Method,
159SymbolKind.Method,
166SymbolKind.Property,
171SymbolKind kind = SymbolKind.Method,
188SymbolKind kind,
206if (kind == SymbolKind.ArrayType)
212if (kind == SymbolKind.Alias)
218if (kind == SymbolKind.Method)
225if (kind == SymbolKind.NamedType)
231if (kind == SymbolKind.Field)
237if (kind == SymbolKind.PointerType)
243if (kind == SymbolKind.Property)
Microsoft.VisualStudio.LanguageServices.Implementation (51)
CodeModel\AbstractCodeModelObject_CodeGen.cs (7)
41accessibility: CodeModelService.GetAccessibility(access, SymbolKind.Method, destination),
72accessibility: CodeModelService.GetAccessibility(access, SymbolKind.NamedType, destination),
117accessibility: CodeModelService.GetAccessibility(access, SymbolKind.Event, destination),
135accessibility: CodeModelService.GetAccessibility(access, SymbolKind.Field, destination),
150accessibility: CodeModelService.GetAccessibility(access, SymbolKind.Method, destination),
216accessibility: CodeModelService.GetAccessibility(access, SymbolKind.Field, destination),
252accessibility: CodeModelService.GetAccessibility(access, SymbolKind.NamedType, destination),
Options\Style\NamingPreferences\SymbolSpecification\SymbolSpecificationViewModel.cs (16)
50new SymbolKindViewModel(SymbolKind.Namespace, ServicesVSResources.NamingSpecification_CSharp_Namespace, specification),
55new SymbolKindViewModel(SymbolKind.Property, ServicesVSResources.NamingSpecification_CSharp_Property, specification),
58new SymbolKindViewModel(SymbolKind.Field, ServicesVSResources.NamingSpecification_CSharp_Field, specification),
59new SymbolKindViewModel(SymbolKind.Event, ServicesVSResources.NamingSpecification_CSharp_Event, specification),
61new SymbolKindViewModel(SymbolKind.Parameter, ServicesVSResources.NamingSpecification_CSharp_Parameter, specification),
62new SymbolKindViewModel(SymbolKind.TypeParameter, ServicesVSResources.NamingSpecification_CSharp_TypeParameter, specification),
63new SymbolKindViewModel(SymbolKind.Local, ServicesVSResources.NamingSpecification_CSharp_Local, specification)
92new SymbolKindViewModel(SymbolKind.Namespace, ServicesVSResources.NamingSpecification_VisualBasic_Namespace, specification),
98new SymbolKindViewModel(SymbolKind.Property, ServicesVSResources.NamingSpecification_VisualBasic_Property, specification),
100new SymbolKindViewModel(SymbolKind.Field, ServicesVSResources.NamingSpecification_VisualBasic_Field, specification),
101new SymbolKindViewModel(SymbolKind.Event, ServicesVSResources.NamingSpecification_VisualBasic_Event, specification),
103new SymbolKindViewModel(SymbolKind.Parameter, ServicesVSResources.NamingSpecification_VisualBasic_Parameter, specification),
104new SymbolKindViewModel(SymbolKind.TypeParameter, ServicesVSResources.NamingSpecification_VisualBasic_TypeParameter, specification),
105new SymbolKindViewModel(SymbolKind.Local, ServicesVSResources.NamingSpecification_VisualBasic_Local, specification)
181private readonly SymbolKind? _symbolKind;
187public SymbolKindViewModel(SymbolKind symbolKind, string name, SymbolSpecification specification)
Microsoft.VisualStudio.LanguageServices.Xaml (6)
Roslyn.Diagnostics.Analyzers (335)
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\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\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\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\ISymbolExtensions.cs (25)
41case SymbolKind.Alias:
46case SymbolKind.Parameter:
50case SymbolKind.TypeParameter:
55while (symbol != null && symbol.Kind != SymbolKind.Namespace)
122if (symbol.Kind is SymbolKind.Event or SymbolKind.Property)
153if (symbol.Kind is not SymbolKind.Method and not SymbolKind.Property and not SymbolKind.Event)
190if (symbol.Kind == SymbolKind.Event)
195if (symbol.Kind == SymbolKind.Property)
236=> symbol is { Kind: SymbolKind.ArrayType };
244public static bool IsKind([NotNullWhen(true)] this ISymbol? symbol, SymbolKind kind)
247public static bool MatchesKind([NotNullWhen(true)] this ISymbol? symbol, SymbolKind kind)
250public static bool MatchesKind([NotNullWhen(true)] this ISymbol? symbol, SymbolKind kind1, SymbolKind kind2)
256public static bool MatchesKind([NotNullWhen(true)] this ISymbol? symbol, SymbolKind kind1, SymbolKind kind2, SymbolKind kind3)
262public static bool MatchesKind([NotNullWhen(true)] this ISymbol? symbol, params SymbolKind[] kinds)
272=> symbol is { Kind: SymbolKind.Field, ContainingType.TypeKind: TypeKind.Enum };
355SymbolKind.NamedType => ((INamedTypeSymbol)symbol).Arity,
356SymbolKind.Method => ((IMethodSymbol)symbol).Arity,
593if (symbol.Kind != SymbolKind.Local)
779public static bool IsKind<TSymbol>(this ISymbol symbol, SymbolKind kind, [NotNullWhen(true)] out TSymbol? result) where TSymbol : class, ISymbol
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\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.Analyzers.UnitTests (1)
Roslyn.Diagnostics.CSharp.Analyzers (29)
Roslyn.Test.PdbUtilities (1)
SemanticSearch.BuildTask (3)
System.Private.CoreLib.Generators (3)
System.Text.Json.SourceGeneration (4)
System.Text.RegularExpressions.Generator (4)
System.Windows.Forms.Analyzers.CSharp (1)
Test.Utilities (220)
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\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\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\ISymbolExtensions.cs (25)
41case SymbolKind.Alias:
46case SymbolKind.Parameter:
50case SymbolKind.TypeParameter:
55while (symbol != null && symbol.Kind != SymbolKind.Namespace)
122if (symbol.Kind is SymbolKind.Event or SymbolKind.Property)
153if (symbol.Kind is not SymbolKind.Method and not SymbolKind.Property and not SymbolKind.Event)
190if (symbol.Kind == SymbolKind.Event)
195if (symbol.Kind == SymbolKind.Property)
236=> symbol is { Kind: SymbolKind.ArrayType };
244public static bool IsKind([NotNullWhen(true)] this ISymbol? symbol, SymbolKind kind)
247public static bool MatchesKind([NotNullWhen(true)] this ISymbol? symbol, SymbolKind kind)
250public static bool MatchesKind([NotNullWhen(true)] this ISymbol? symbol, SymbolKind kind1, SymbolKind kind2)
256public static bool MatchesKind([NotNullWhen(true)] this ISymbol? symbol, SymbolKind kind1, SymbolKind kind2, SymbolKind kind3)
262public static bool MatchesKind([NotNullWhen(true)] this ISymbol? symbol, params SymbolKind[] kinds)
272=> symbol is { Kind: SymbolKind.Field, ContainingType.TypeKind: TypeKind.Enum };
355SymbolKind.NamedType => ((INamedTypeSymbol)symbol).Arity,
356SymbolKind.Method => ((IMethodSymbol)symbol).Arity,
593if (symbol.Kind != SymbolKind.Local)
779public static bool IsKind<TSymbol>(this ISymbol symbol, SymbolKind kind, [NotNullWhen(true)] out TSymbol? result) where TSymbol : class, ISymbol
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\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),
Text.Analyzers (326)
IdentifiersShouldBeSpelledCorrectly.cs (28)
254SymbolKind.Namespace,
255SymbolKind.NamedType,
256SymbolKind.Method,
257SymbolKind.Property,
258SymbolKind.Event,
259SymbolKind.Field,
260SymbolKind.Parameter);
489SymbolKind.Assembly => symbol.CreateDiagnostic(AssemblyRule, misspelledWord, symbol.Name),
490SymbolKind.Namespace => symbol.CreateDiagnostic(NamespaceRule, misspelledWord, symbol.ToDisplayString()),
491SymbolKind.NamedType => symbol.CreateDiagnostic(TypeRule, misspelledWord, symbol.ToDisplayString()),
492SymbolKind.Method or SymbolKind.Property or SymbolKind.Event or SymbolKind.Field
494SymbolKind.Parameter => symbol.ContainingType.TypeKind == TypeKind.Delegate
497SymbolKind.TypeParameter => symbol.ContainingSymbol.Kind == SymbolKind.Method
500SymbolKind.Local => symbol.CreateDiagnostic(VariableRule, misspelledWord, symbol.ToDisplayString()),
509SymbolKind.Assembly => symbol.CreateDiagnostic(AssemblyMoreMeaningfulNameRule, symbolName),
510SymbolKind.Namespace => symbol.CreateDiagnostic(NamespaceMoreMeaningfulNameRule, symbolName),
511SymbolKind.NamedType => symbol.CreateDiagnostic(TypeMoreMeaningfulNameRule, symbolName),
512SymbolKind.Method or SymbolKind.Property or SymbolKind.Event or SymbolKind.Field
514SymbolKind.Parameter => symbol.ContainingType.TypeKind == TypeKind.Delegate
517SymbolKind.TypeParameter => symbol.ContainingSymbol.Kind == SymbolKind.Method
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\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\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\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\ISymbolExtensions.cs (25)
41case SymbolKind.Alias:
46case SymbolKind.Parameter:
50case SymbolKind.TypeParameter:
55while (symbol != null && symbol.Kind != SymbolKind.Namespace)
122if (symbol.Kind is SymbolKind.Event or SymbolKind.Property)
153if (symbol.Kind is not SymbolKind.Method and not SymbolKind.Property and not SymbolKind.Event)
190if (symbol.Kind == SymbolKind.Event)
195if (symbol.Kind == SymbolKind.Property)
236=> symbol is { Kind: SymbolKind.ArrayType };
244public static bool IsKind([NotNullWhen(true)] this ISymbol? symbol, SymbolKind kind)
247public static bool MatchesKind([NotNullWhen(true)] this ISymbol? symbol, SymbolKind kind)
250public static bool MatchesKind([NotNullWhen(true)] this ISymbol? symbol, SymbolKind kind1, SymbolKind kind2)
256public static bool MatchesKind([NotNullWhen(true)] this ISymbol? symbol, SymbolKind kind1, SymbolKind kind2, SymbolKind kind3)
262public static bool MatchesKind([NotNullWhen(true)] this ISymbol? symbol, params SymbolKind[] kinds)
272=> symbol is { Kind: SymbolKind.Field, ContainingType.TypeKind: TypeKind.Enum };
355SymbolKind.NamedType => ((INamedTypeSymbol)symbol).Arity,
356SymbolKind.Method => ((IMethodSymbol)symbol).Arity,
593if (symbol.Kind != SymbolKind.Local)
779public static bool IsKind<TSymbol>(this ISymbol symbol, SymbolKind kind, [NotNullWhen(true)] out TSymbol? result) where TSymbol : class, ISymbol
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\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),