1 interface inheriting from INamedTypeSymbol
Microsoft.CodeAnalysis (1)
Symbols\IErrorTypeSymbol.cs (1)
20public interface IErrorTypeSymbol : INamedTypeSymbol
8 implementations of INamedTypeSymbol
GenerateDocumentationAndConfigFiles (1)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\Symbols\CodeGenerationAbstractNamedTypeSymbol.cs (1)
14internal abstract class CodeGenerationAbstractNamedTypeSymbol : CodeGenerationTypeSymbol, INamedTypeSymbol
Microsoft.CodeAnalysis.Analyzers (1)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\Symbols\CodeGenerationAbstractNamedTypeSymbol.cs (1)
14internal abstract class CodeGenerationAbstractNamedTypeSymbol : CodeGenerationTypeSymbol, INamedTypeSymbol
Microsoft.CodeAnalysis.CodeStyle.Fixes (1)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\Symbols\CodeGenerationAbstractNamedTypeSymbol.cs (1)
14internal abstract class CodeGenerationAbstractNamedTypeSymbol : CodeGenerationTypeSymbol, INamedTypeSymbol
Microsoft.CodeAnalysis.CSharp (1)
Symbols\PublicModel\NamedTypeSymbol.cs (1)
13internal abstract class NamedTypeSymbol : TypeSymbol, INamedTypeSymbol
Microsoft.CodeAnalysis.Features (1)
MetadataAsSource\AbstractMetadataAsSourceService.WrappedNamedTypeSymbol.cs (1)
17private sealed class WrappedNamedTypeSymbol : AbstractWrappedNamespaceOrTypeSymbol, INamedTypeSymbol
Microsoft.CodeAnalysis.VisualBasic (1)
Symbols\NamedTypeSymbol.vb (1)
25Implements INamedTypeSymbol, INamedTypeSymbolInternal
Microsoft.CodeAnalysis.Workspaces (1)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\Symbols\CodeGenerationAbstractNamedTypeSymbol.cs (1)
14internal abstract class CodeGenerationAbstractNamedTypeSymbol : CodeGenerationTypeSymbol, INamedTypeSymbol
Roslyn.Diagnostics.Analyzers (1)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\Symbols\CodeGenerationAbstractNamedTypeSymbol.cs (1)
14internal abstract class CodeGenerationAbstractNamedTypeSymbol : CodeGenerationTypeSymbol, INamedTypeSymbol
10316 references to INamedTypeSymbol
Aspire.Hosting.Analyzers (14)
AppHostAnalyzer.cs (3)
80if (!wellKnownTypes.TryGet(WellKnownTypeData.WellKnownType.Aspire_Hosting_ApplicationModel_IModelNameParameter, out var modelNameParameter) || 81!wellKnownTypes.TryGet(WellKnownTypeData.WellKnownType.Aspire_Hosting_ApplicationModel_ResourceNameAttribute, out var resourceNameAttribute) || 82!wellKnownTypes.TryGet(WellKnownTypeData.WellKnownType.Aspire_Hosting_ApplicationModel_EndpointNameAttribute, out var endpointNameAttribute))
Infrastructure\WellKnownTypes.cs (11)
17private readonly INamedTypeSymbol?[] _lazyWellKnownTypes; 49_lazyWellKnownTypes = new INamedTypeSymbol?[WellKnownTypeData.WellKnownTypeNames.Length]; 53public INamedTypeSymbol Get(SpecialType type) 58public INamedTypeSymbol Get(WellKnownTypeData.WellKnownType type) 61var symbol = _lazyWellKnownTypes[index]; 72public bool TryGet(WellKnownTypeData.WellKnownType type, [NotNullWhen(true)] out INamedTypeSymbol? symbol) 92private INamedTypeSymbol GetAndCache(int index) 94var result = GetTypeByMetadataNameInTargetAssembly(WellKnownTypeData.WellKnownTypeNames[index]) 105private INamedTypeSymbol? GetTypeByMetadataNameInTargetAssembly(string metadataName) 120foreach (var type in types) 168foreach (var t in type.AllInterfaces)
Aspire.Hosting.Integration.Analyzers (55)
AspireExportAnalyzer.cs (44)
40INamedTypeSymbol? aspireExportAttribute; 52INamedTypeSymbol? aspireExportIgnoreAttribute = null; 63INamedTypeSymbol? aspireUnionAttribute = null; 120INamedTypeSymbol aspireExportAttribute, 121INamedTypeSymbol? aspireExportIgnoreAttribute, 122INamedTypeSymbol? aspireUnionAttribute, 232INamedTypeSymbol aspireExportAttribute) 442if (parameter.Type is not INamedTypeSymbol namedType || !IsDelegateType(namedType)) 458return type is INamedTypeSymbol namedType 468if (type is not INamedTypeSymbol namedType || !namedType.IsGenericType) 475var iResourceBuilderType = wellKnownTypes.Get(WellKnownTypeData.WellKnownType.Aspire_Hosting_ApplicationModel_IResourceBuilder_1); 495if (type is not INamedTypeSymbol namedType || !namedType.IsGenericType) 502var iResourceBuilderType = wellKnownTypes.Get(WellKnownTypeData.WellKnownType.Aspire_Hosting_ApplicationModel_IResourceBuilder_1); 527var distributedAppBuilder = wellKnownTypes.Get(WellKnownTypeData.WellKnownType.Aspire_Hosting_IDistributedApplicationBuilder); 551INamedTypeSymbol aspireExportAttribute) 561INamedTypeSymbol aspireExportAttribute) 646INamedTypeSymbol _) 648if (delegateType is not INamedTypeSymbol namedDelegate) 689var iResourceType = wellKnownTypes.Get(WellKnownTypeData.WellKnownType.Aspire_Hosting_ApplicationModel_IResource); 701INamedTypeSymbol aspireUnionAttribute, 703INamedTypeSymbol aspireExportAttribute) 746if (typeConstant.Value is INamedTypeSymbol typeSymbol) 792private static bool TryGetEffectiveAspireExportAttribute(IMethodSymbol method, INamedTypeSymbol aspireExportAttribute, out AttributeData? exportAttribute, out AttributeData? containingTypeExportAttribute) 816private static AttributeData? GetContainingTypeAspireExportAttribute(INamedTypeSymbol? type, INamedTypeSymbol aspireExportAttribute) 856INamedTypeSymbol aspireExportAttribute) 876INamedTypeSymbol aspireExportAttribute) 881var taskType = wellKnownTypes.Get(WellKnownTypeData.WellKnownType.System_Threading_Tasks_Task); 893if (type is INamedTypeSymbol namedType && namedType.IsGenericType) 897var taskOfTType = wellKnownTypes.Get(WellKnownTypeData.WellKnownType.System_Threading_Tasks_Task_1); 917INamedTypeSymbol? aspireExportAttribute = null) 920if (type is INamedTypeSymbol namedType && 1034var knownType = wellKnownTypes.Get(wellKnownType); 1046if (type is not INamedTypeSymbol namedType || !namedType.IsGenericType) 1053var knownType = wellKnownTypes.Get(wellKnownType); 1066INamedTypeSymbol? aspireExportAttribute) 1068if (type is not INamedTypeSymbol namedType || !namedType.IsGenericType) 1111private static bool HasAspireExportAttribute(ITypeSymbol type, INamedTypeSymbol aspireExportAttribute) 1188var iResourceType = wellKnownTypes.Get(WellKnownTypeData.WellKnownType.Aspire_Hosting_ApplicationModel_IResource); 1200if (type is not INamedTypeSymbol namedType) 1207var iResourceBuilderType = wellKnownTypes.Get(WellKnownTypeData.WellKnownType.Aspire_Hosting_ApplicationModel_IResourceBuilder_1); 1217foreach (var iface in namedType.AllInterfaces) 1237INamedTypeSymbol aspireExportAttribute) 1258if (type is INamedTypeSymbol namedType)
src\Aspire.Hosting.Analyzers\Infrastructure\WellKnownTypes.cs (11)
17private readonly INamedTypeSymbol?[] _lazyWellKnownTypes; 49_lazyWellKnownTypes = new INamedTypeSymbol?[WellKnownTypeData.WellKnownTypeNames.Length]; 53public INamedTypeSymbol Get(SpecialType type) 58public INamedTypeSymbol Get(WellKnownTypeData.WellKnownType type) 61var symbol = _lazyWellKnownTypes[index]; 72public bool TryGet(WellKnownTypeData.WellKnownType type, [NotNullWhen(true)] out INamedTypeSymbol? symbol) 92private INamedTypeSymbol GetAndCache(int index) 94var result = GetTypeByMetadataNameInTargetAssembly(WellKnownTypeData.WellKnownTypeNames[index]) 105private INamedTypeSymbol? GetTypeByMetadataNameInTargetAssembly(string metadataName) 120foreach (var type in types) 168foreach (var t in type.AllInterfaces)
ConfigurationSchemaGenerator (102)
ConfigSchemaEmitter.cs (1)
492var typeSymbol = _compilation.GetBestTypeByMetadataName(type.FullName);
ConfigSchemaGenerator.cs (3)
55List<INamedTypeSymbol>? types = null; 77(types ??= new()).Add((INamedTypeSymbol)args[1].Value); 108internal sealed record ConfigSchemaAttributeInfo(List<INamedTypeSymbol>? Types, List<string>? ConfigurationPaths, List<string>? ExclusionPaths, List<string>? LogCategories);
ConfigurationBindingGenerator.ForSchemaGeneration.cs (1)
45foreach (var type in _configSchemaInfo.Types)
RuntimeSource\Configuration.Binder\ConfigurationBindingGenerator.Parser.cs (37)
85INamedTypeSymbol? candidateBinderType = targetMethod.ContainingType; 205else if (type is INamedTypeSymbol) 221if (type is INamedTypeSymbol { IsGenericType: true } genericType && 222genericType.ConstructUnboundGenericType() is INamedTypeSymbol { } unboundGeneric && 241if (type is not INamedTypeSymbol namedType) 364INamedTypeSymbol type = (INamedTypeSymbol)typeParseInfo.TypeSymbol; 388INamedTypeSymbol type = (INamedTypeSymbol)typeParseInfo.TypeSymbol; 445INamedTypeSymbol type = (INamedTypeSymbol)typeParseInfo.TypeSymbol; 544type = ((INamedTypeSymbol)type).TypeArguments[0]; // extract the T from a Nullable<T> 564INamedTypeSymbol collectionType = (INamedTypeSymbol)type; 594INamedTypeSymbol typeSymbol = (INamedTypeSymbol)typeParseInfo.TypeSymbol; 663INamedTypeSymbol? current = typeSymbol; 753private bool TryGetElementType(INamedTypeSymbol type, [NotNullWhen(true)] out ITypeSymbol? elementType) 755INamedTypeSymbol? candidate = GetInterface(type, _typeSymbols.GenericIEnumerable_Unbound); 767private bool IsCandidateDictionary(INamedTypeSymbol type, [NotNullWhen(true)] out ITypeSymbol? keyType, [NotNullWhen(true)] out ITypeSymbol? elementType) 769INamedTypeSymbol? candidate = GetInterface(type, _typeSymbols.GenericIDictionary_Unbound) ?? GetInterface(type, _typeSymbols.IReadOnlyDictionary_Unbound); 791type is INamedTypeSymbol namedType && GetInterface(namedType, _typeSymbols.IEnumerable) is not null; 793private static INamedTypeSymbol? GetInterface(INamedTypeSymbol type, INamedTypeSymbol? @interface) 809candidate.ConstructUnboundGenericType() is INamedTypeSymbol unbound 816private static bool IsInterfaceMatch(INamedTypeSymbol type, INamedTypeSymbol? @interface) 825INamedTypeSymbol unbound = type.ConstructUnboundGenericType(); 834if (type is not INamedTypeSymbol { IsGenericType: true } genericType) 851private static bool HasPublicParameterLessCtor(INamedTypeSymbol type) => 854private static bool HasAddMethod(INamedTypeSymbol type, ITypeSymbol element) 856INamedTypeSymbol? current = type; 870private static bool HasAddMethod(INamedTypeSymbol type, ITypeSymbol key, ITypeSymbol element) 872INamedTypeSymbol? current = type; 887private static bool IsEnum(ITypeSymbol type) => type is INamedTypeSymbol { EnumUnderlyingType: INamedTypeSymbol { } };
RuntimeSource\Configuration.Binder\Parser\BinderInvocation.cs (1)
58ContainingType: INamedTypeSymbol
RuntimeSource\Configuration.Binder\Parser\Extensions.cs (1)
105if (type is not INamedTypeSymbol { IsGenericType: true } namedType)
RuntimeSource\Configuration.Binder\Parser\KnownTypeSymbols.cs (48)
18public INamedTypeSymbol String { get; } 19public INamedTypeSymbol? CultureInfo { get; } 20public INamedTypeSymbol? DateOnly { get; } 21public INamedTypeSymbol? DateTimeOffset { get; } 22public INamedTypeSymbol? Guid { get; } 23public INamedTypeSymbol? Half { get; } 24public INamedTypeSymbol? Int128 { get; } 25public INamedTypeSymbol? TimeOnly { get; } 26public INamedTypeSymbol? TimeSpan { get; } 27public INamedTypeSymbol? UInt128 { get; } 28public INamedTypeSymbol? Uri { get; } 29public INamedTypeSymbol? Version { get; } 31public INamedTypeSymbol? ActionOfBinderOptions { get; } 32public INamedTypeSymbol? ConfigurationBinder { get; } 33public INamedTypeSymbol? ConfigurationKeyNameAttribute { get; } 34public INamedTypeSymbol? OptionsBuilderConfigurationExtensions { get; } 35public INamedTypeSymbol? OptionsBuilderOfT { get; } 36public INamedTypeSymbol? OptionsBuilderOfT_Unbound { get; } 37public INamedTypeSymbol? OptionsConfigurationServiceCollectionExtensions { get; } 39public INamedTypeSymbol GenericIList_Unbound { get; } 40public INamedTypeSymbol? GenericICollection_Unbound { get; } 41public INamedTypeSymbol GenericICollection { get; } 42public INamedTypeSymbol GenericIEnumerable_Unbound { get; } 43public INamedTypeSymbol IEnumerable { get; } 44public INamedTypeSymbol? Dictionary { get; } 45public INamedTypeSymbol? GenericIDictionary_Unbound { get; } 46public INamedTypeSymbol? GenericIDictionary { get; } 47public INamedTypeSymbol? HashSet { get; } 48public INamedTypeSymbol? IConfiguration { get; } 49public INamedTypeSymbol? IConfigurationSection { get; } 50public INamedTypeSymbol? IDictionary { get; } 51public INamedTypeSymbol? IReadOnlyCollection_Unbound { get; } 52public INamedTypeSymbol? IReadOnlyDictionary_Unbound { get; } 53public INamedTypeSymbol? IReadOnlyList_Unbound { get; } 54public INamedTypeSymbol? IReadOnlySet_Unbound { get; } 55public INamedTypeSymbol? IServiceCollection { get; } 56public INamedTypeSymbol? ISet_Unbound { get; } 57public INamedTypeSymbol? ISet { get; } 58public INamedTypeSymbol? List { get; } 59public INamedTypeSymbol Enum { get; } 60public INamedTypeSymbol? ArgumentNullException { get; } 61public INamedTypeSymbol? SerializationInfo { get; } 62public INamedTypeSymbol? IntPtr { get; } 63public INamedTypeSymbol? UIntPtr { get; } 64public INamedTypeSymbol? MemberInfo { get; } 65public INamedTypeSymbol? ParameterInfo { get; } 66public INamedTypeSymbol? Delegate { get; } 87INamedTypeSymbol? binderOptions = compilation.GetBestTypeByMetadataName("Microsoft.Extensions.Configuration.BinderOptions");
RuntimeSource\Configuration.Binder\Parser\OptionsBuilderConfigurationExtensions.cs (1)
22@params[0].Type is not INamedTypeSymbol { IsGenericType: true } genericType ||
RuntimeSource\Configuration.Binder\Specs\Types\CollectionSpec.cs (1)
40public DictionarySpec(INamedTypeSymbol type) : base(type) { }
RuntimeSource\Configuration.Binder\Specs\Types\ObjectSpec.cs (1)
12INamedTypeSymbol type,
RuntimeSource\Roslyn\GetBestTypeByMetadataName.cs (4)
38public static INamedTypeSymbol? GetBestTypeByMetadataName(this Compilation compilation, string fullyQualifiedMetadataName) 41var type = compilation.GetTypeByMetadataName(fullyQualifiedMetadataName); 53var currentType = referencedAssembly.GetTypeByMetadataName(fullyQualifiedMetadataName); 88public static INamedTypeSymbol? GetBestTypeByMetadataName(this Compilation compilation, Type type) =>
RuntimeSource\SourceGenerators\TypeModelHelper.cs (3)
13public static List<ITypeSymbol>? GetAllTypeArgumentsInScope(this INamedTypeSymbol type) 24void TraverseContainingTypes(INamedTypeSymbol current) 26if (current.ContainingType is INamedTypeSymbol parent)
GenerateDocumentationAndConfigFiles (703)
src\roslyn\src\Compilers\Core\Portable\SourceGeneration\GeneratedCodeUtilities.cs (1)
19ISymbol symbol, INamedTypeSymbol generatedCodeAttribute)
src\roslyn\src\RoslynAnalyzers\Utilities\Compiler\DiagnosticHelpers.cs (1)
68if (symbol is INamedTypeSymbol namedType &&
src\roslyn\src\RoslynAnalyzers\Utilities\Compiler\DoNotCatchGeneralUnlessRethrown.cs (8)
35protected virtual bool IsConfiguredDisallowedExceptionType(INamedTypeSymbol namedTypeSymbol, IMethodSymbol containingMethod, Compilation compilation, AnalyzerOptions analyzerOptions, CancellationToken cancellationToken) 47INamedTypeSymbol? requiredAttributeType = null; 86bool IsDisallowedCatchType(INamedTypeSymbol type) => 94private INamedTypeSymbol? GetRequiredAttributeType(Compilation compilation) 100private static IReadOnlyCollection<INamedTypeSymbol> GetDisallowedCatchTypes(Compilation compilation) 115private readonly Func<INamedTypeSymbol, bool> _isDisallowedCatchType; 121public DisallowGeneralCatchUnlessRethrowWalker(Func<INamedTypeSymbol, bool> isDisallowedCatchType, bool checkAnonymousFunctions) 163return operation.ExceptionType is INamedTypeSymbol exceptionType &&
src\roslyn\src\RoslynAnalyzers\Utilities\Compiler\Extensions\CompilationExtensions.cs (4)
21/// <returns>The <see cref="INamedTypeSymbol"/> if found, null otherwise.</returns> 22internal static INamedTypeSymbol? GetOrCreateTypeByMetadataName(this Compilation compilation, string fullTypeName) => 30/// <returns>The <see cref="INamedTypeSymbol"/> if found, null otherwise.</returns> 31internal static bool TryGetOrCreateTypeByMetadataName(this Compilation compilation, string fullTypeName, [NotNullWhen(returnValue: true)] out INamedTypeSymbol? namedTypeSymbol) =>
src\roslyn\src\RoslynAnalyzers\Utilities\Compiler\Extensions\IMethodSymbolExtensions.cs (42)
89public static bool IsImplementationOfInterfaceMethod(this IMethodSymbol method, ITypeSymbol? typeArgument, [NotNullWhen(returnValue: true)] INamedTypeSymbol? interfaceType, string interfaceMethodName) 91INamedTypeSymbol? constructedInterface = typeArgument != null ? interfaceType?.Construct(typeArgument) : interfaceType; 102INamedTypeSymbol? iDisposable = compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemIDisposable); 111INamedTypeSymbol? iAsyncDisposable = compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemIAsyncDisposable); 112INamedTypeSymbol? valueTaskType = compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemThreadingTasksValueTask); 119public static bool IsDisposeImplementation([NotNullWhen(returnValue: true)] this IMethodSymbol? method, [NotNullWhen(returnValue: true)] INamedTypeSymbol? iDisposable) 141public static bool IsAsyncDisposeImplementation([NotNullWhen(returnValue: true)] this IMethodSymbol? method, [NotNullWhen(returnValue: true)] INamedTypeSymbol? iAsyncDisposable, [NotNullWhen(returnValue: true)] INamedTypeSymbol? valueTaskType) 200private static bool HasDisposeCloseAsyncMethodSignature(this IMethodSymbol method, INamedTypeSymbol? taskType) 208INamedTypeSymbol? task, 209INamedTypeSymbol? valueTask, 210INamedTypeSymbol? configuredValueTaskAwaitable) 223private static bool HasOverriddenDisposeCoreAsyncMethodSignature(this IMethodSymbol method, [NotNullWhen(returnValue: true)] INamedTypeSymbol? task) 236private static bool HasVirtualOrOverrideDisposeCoreAsyncMethodSignature(this IMethodSymbol method, [NotNullWhen(returnValue: true)] INamedTypeSymbol? valueTask) 250INamedTypeSymbol? iDisposable = compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemIDisposable); 251INamedTypeSymbol? iAsyncDisposable = compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemIAsyncDisposable); 252INamedTypeSymbol? configuredAsyncDisposable = compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemRuntimeCompilerServicesConfiguredAsyncDisposable); 253INamedTypeSymbol? task = compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemThreadingTasksTask); 254INamedTypeSymbol? valueTask = compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemThreadingTasksValueTask); 255INamedTypeSymbol? configuredValueTaskAwaitable = compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemRuntimeCompilerServicesConfiguredValueTaskAwaitable); 264INamedTypeSymbol? iDisposable, 265INamedTypeSymbol? iAsyncDisposable, 266INamedTypeSymbol? configuredAsyncDisposable, 267INamedTypeSymbol? task, 268INamedTypeSymbol? valueTask, 269INamedTypeSymbol? configuredValueTaskAwaitable) 311public static bool IsSerializationConstructor([NotNullWhen(returnValue: true)] this IMethodSymbol? method, INamedTypeSymbol? serializationInfoType, INamedTypeSymbol? streamingContextType) 317public static bool IsGetObjectData([NotNullWhen(returnValue: true)] this IMethodSymbol? method, INamedTypeSymbol? serializationInfoType, INamedTypeSymbol? streamingContextType) 364public static bool IsCollectionAddMethod(this IMethodSymbol method, ImmutableHashSet<INamedTypeSymbol> iCollectionTypes) 385public static bool IsTaskFromResultMethod(this IMethodSymbol method, [NotNullWhen(returnValue: true)] INamedTypeSymbol? taskType) 394public static bool IsTaskConfigureAwaitMethod(this IMethodSymbol method, [NotNullWhen(returnValue: true)] INamedTypeSymbol? genericTaskType) 406public static bool IsAsyncDisposableConfigureAwaitMethod(this IMethodSymbol method, [NotNullWhen(returnValue: true)] INamedTypeSymbol? asyncDisposableType, [NotNullWhen(returnValue: true)] INamedTypeSymbol? taskAsyncEnumerableExtensions) 483public static bool IsLockMethod(this IMethodSymbol method, [NotNullWhen(returnValue: true)] INamedTypeSymbol? systemThreadingMonitor) 493public static bool IsInterlockedExchangeMethod(this IMethodSymbol method, INamedTypeSymbol? systemThreadingInterlocked) 505public static bool IsInterlockedCompareExchangeMethod(this IMethodSymbol method, INamedTypeSymbol? systemThreadingInterlocked) 536public static bool IsBenchmarkOrXUnitTestMethod(this IMethodSymbol method, ConcurrentDictionary<INamedTypeSymbol, bool> knownTestAttributes, INamedTypeSymbol? benchmarkAttribute, INamedTypeSymbol? xunitFactAttribute) 561var typeSymbol = methodSymbol.ContainingType;
src\roslyn\src\RoslynAnalyzers\Utilities\Compiler\Extensions\INamedTypeSymbolExtensions.cs (9)
17public static bool IsFileLocal(this INamedTypeSymbol symbol) => symbol.IsFileLocal; 41public static bool DerivesFromOrImplementsAnyConstructionOf(this INamedTypeSymbol type, INamedTypeSymbol parentType) 48for (INamedTypeSymbol? baseType = type.OriginalDefinition; 66public static bool OverridesEquals(this INamedTypeSymbol symbol) 72public static bool IsBenchmarkOrXUnitTestAttribute(this INamedTypeSymbol attributeClass, ConcurrentDictionary<INamedTypeSymbol, bool> knownTestAttributes, INamedTypeSymbol? benchmarkAttribute, INamedTypeSymbol? xunitFactAttribute)
src\roslyn\src\RoslynAnalyzers\Utilities\Compiler\Extensions\IPropertySymbolExtensions.cs (1)
36var typeSymbol = propertySymbol.ContainingType;
src\roslyn\src\RoslynAnalyzers\Utilities\Compiler\Extensions\ISymbolExtensions.cs (9)
153foreach (INamedTypeSymbol interfaceSymbol in symbol.ContainingType.AllInterfaces) 240public static AttributeData? GetAttribute(this ISymbol symbol, [NotNullWhen(true)] INamedTypeSymbol? attributeType) 245public static IEnumerable<AttributeData> GetAttributes(this ISymbol symbol, IEnumerable<INamedTypeSymbol?> attributesToMatch) 252foreach (var attributeToMatch in attributesToMatch) 263public static IEnumerable<AttributeData> GetAttributes(this ISymbol symbol, params INamedTypeSymbol?[] attributeTypesToMatch) 268public static bool HasAnyAttribute(this ISymbol symbol, IEnumerable<INamedTypeSymbol> attributesToMatch) 273public static bool HasAnyAttribute(this ISymbol symbol, params INamedTypeSymbol?[] attributeTypesToMatch) 292public static bool HasDerivedTypeAttribute(this ITypeSymbol symbol, [NotNullWhen(returnValue: true)] INamedTypeSymbol? attribute) 331public static bool HasDerivedMethodAttribute(this IMethodSymbol symbol, [NotNullWhen(returnValue: true)] INamedTypeSymbol? attribute)
src\roslyn\src\RoslynAnalyzers\Utilities\Compiler\Extensions\ITypeSymbolExtensions.cs (14)
116INamedTypeSymbol? iDisposable, 117INamedTypeSymbol? iAsyncDisposable, 118INamedTypeSymbol? configuredAsyncDisposable) 138static bool IsInterfaceOrImplementsInterface(ITypeSymbol type, INamedTypeSymbol? interfaceType) 148public static IEnumerable<AttributeData> GetApplicableAttributes(this INamedTypeSymbol type, INamedTypeSymbol? attributeUsageAttribute) 180static bool IsInheritedAttribute(AttributeData attributeData, INamedTypeSymbol attributeUsageAttribute) 182for (var currentAttributeClass = attributeData.AttributeClass; 215public static IEnumerable<AttributeData> GetApplicableExportAttributes(this INamedTypeSymbol? type, INamedTypeSymbol? exportAttributeV1, INamedTypeSymbol? exportAttributeV2, INamedTypeSymbol? inheritedExportAttribute) 263=> typeSymbol.IsNullableValueType() && ((INamedTypeSymbol)typeSymbol).TypeArguments[0].SpecialType == SpecialType.System_Boolean; 266=> (typeSymbol as INamedTypeSymbol)?.TupleUnderlyingType ?? typeSymbol;
src\roslyn\src\RoslynAnalyzers\Utilities\Compiler\Options\AnalyzerOptionsExtensions.cs (9)
279if (symbol is INamedTypeSymbol namedType && !excludedTypeNamesWithDerivedTypes.IsEmpty) 281foreach (var type in namedType.GetBaseTypesAndThis()) 377public static SymbolNamesWithValueOption<INamedTypeSymbol?> GetAdditionalRequiredGenericInterfaces( 384private static SymbolNamesWithValueOption<INamedTypeSymbol?> GetAdditionalRequiredGenericInterfaces( 392static SymbolNamesWithValueOption<INamedTypeSymbol?>.NameParts GetParts(string name, Compilation compilation) 399return new SymbolNamesWithValueOption<INamedTypeSymbol?>.NameParts(name, null); 411matchingSymbols[0] is not INamedTypeSymbol namedType || 416return new SymbolNamesWithValueOption<INamedTypeSymbol?>.NameParts(split[0], null); 419return new SymbolNamesWithValueOption<INamedTypeSymbol?>.NameParts(split[0], namedType);
src\roslyn\src\RoslynAnalyzers\Utilities\Compiler\WellKnownTypeProvider.cs (11)
32_fullNameToTypeMap = new ConcurrentDictionary<string, INamedTypeSymbol?>(StringComparer.Ordinal); 65/// Mapping of full name to <see cref="INamedTypeSymbol"/>. 67private readonly ConcurrentDictionary<string, INamedTypeSymbol?> _fullNameToTypeMap; 94[NotNullWhen(returnValue: true)] out INamedTypeSymbol? namedTypeSymbol) 106[NotNullWhen(returnValue: true)] out INamedTypeSymbol? namedTypeSymbol) 118INamedTypeSymbol? type = null; 152var currentType = referencedAssembly.GetTypeByMetadataName(fullyQualifiedMetadataName); 188/// <returns>The <see cref="INamedTypeSymbol"/> if found, null otherwise.</returns> 189public INamedTypeSymbol? GetOrCreateTypeByMetadataName(string fullTypeName) 191TryGetOrCreateTypeByMetadataName(fullTypeName, out INamedTypeSymbol? namedTypeSymbol); 209&& typeSymbol is INamedTypeSymbol namedTypeSymbol
src\roslyn\src\RoslynAnalyzers\Utilities\Workspaces\SyntaxGeneratorExtensions.cs (9)
35INamedTypeSymbol containingType) 76public static SyntaxNode TypeExpressionForStaticMemberAccess(this SyntaxGenerator generator, INamedTypeSymbol typeSymbol) 110public static SyntaxNode DefaultOperatorInequalityDeclaration(this SyntaxGenerator generator, INamedTypeSymbol containingType) 136public static SyntaxNode DefaultOperatorLessThanDeclaration(this SyntaxGenerator generator, INamedTypeSymbol containingType) 188public static SyntaxNode DefaultOperatorLessThanOrEqualDeclaration(this SyntaxGenerator generator, INamedTypeSymbol containingType) 235public static SyntaxNode DefaultOperatorGreaterThanDeclaration(this SyntaxGenerator generator, INamedTypeSymbol containingType) 283public static SyntaxNode DefaultOperatorGreaterThanOrEqualDeclaration(this SyntaxGenerator generator, INamedTypeSymbol containingType) 322private static SyntaxNode ComparisonOperatorDeclaration(this SyntaxGenerator generator, OperatorKind operatorKind, INamedTypeSymbol containingType, params SyntaxNode[] statements) 349public static SyntaxNode DefaultEqualsOverrideDeclaration(this SyntaxGenerator generator, Compilation compilation, INamedTypeSymbol containingType)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Extensions\CollectionExpressionUtilities.cs (7)
61if (type is INamedTypeSymbol namedType) 71var ienumerableOfTType = compilation.IEnumerableOfTType(); 72var ienumerableType = compilation.IEnumerableType(); 73var foundType = 146Compilation compilation, INamedTypeSymbol collectionExpressionType) 148var readonlySpanOfTType = compilation.ReadOnlySpanOfTType(); 155if (attribute is not { ConstructorArguments: [{ Value: INamedTypeSymbol builderType }, { Value: string builderMethodName }] })
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Extensions\KnownTypes.cs (8)
11public readonly INamedTypeSymbol? TaskType = compilation.TaskType(); 12public readonly INamedTypeSymbol? TaskOfTType = compilation.TaskOfTType(); 13public readonly INamedTypeSymbol? ValueTaskType = compilation.ValueTaskType(); 14public readonly INamedTypeSymbol? ValueTaskOfTType = compilation.ValueTaskOfTType(); 16public readonly INamedTypeSymbol? IEnumerableOfTType = compilation.IEnumerableOfTType(); 17public readonly INamedTypeSymbol? IEnumeratorOfTType = compilation.IEnumeratorOfTType(); 19public readonly INamedTypeSymbol? IAsyncEnumerableOfTType = compilation.IAsyncEnumerableOfTType(); 20public readonly INamedTypeSymbol? IAsyncEnumeratorOfTType = compilation.IAsyncEnumeratorOfTType();
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Extensions\OperationExtensions.cs (2)
405var notImplementedExceptionType = compilation.NotImplementedExceptionType(); 454static bool IsThrowNotImplementedOperation(INamedTypeSymbol notImplementedExceptionType, IOperation? operation)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Extensions\SemanticModelExtensions.cs (4)
84return semanticModel.GetEnclosingSymbol<INamedTypeSymbol>(position, cancellationToken) ?? 88public static INamedTypeSymbol? GetEnclosingNamedType(this SemanticModel semanticModel, int position, CancellationToken cancellationToken) 89=> semanticModel.GetEnclosingSymbol<INamedTypeSymbol>(position, cancellationToken); 172var enumerableType = semanticModel.Compilation.IEnumerableOfTType();
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\FlowAnalysis\SymbolUsageAnalysis\SymbolUsageAnalysis.DataFlowAnalyzer.FlowGraphAnalysisData.cs (1)
143if (owningSymbol.ContainingSymbol is INamedTypeSymbol { IsExtension: true, ExtensionParameter: { } extensionParameter })
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\NamingStyles\NamingStyleRules.cs (3)
65var containingType = symbol.ContainingType; 87var containingType = symbol.ContainingType; 90foreach (var implementedInterface in implementedInterfaces)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Services\SemanticFacts\ISemanticFacts.cs (4)
68bool LastEnumValueHasInitializer(INamedTypeSymbol namedTypeSymbol); 89bool IsPartial(INamedTypeSymbol typeSymbol, CancellationToken cancellationToken); 108bool IsInExpressionTree(SemanticModel semanticModel, SyntaxNode node, [NotNullWhen(true)] INamedTypeSymbol? expressionType, CancellationToken cancellationToken); 123bool TryGetPrimaryConstructor(INamedTypeSymbol typeSymbol, [NotNullWhen(true)] out IMethodSymbol? primaryConstructor);
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\SymbolKey\SymbolKey.AnonymousFunctionOrDelegateSymbolKey.cs (1)
65var anonymousDelegate = methodSymbol.AssociatedAnonymousDelegate;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\SymbolKey\SymbolKey.AnonymousTypeSymbolKey.cs (5)
13private sealed class AnonymousTypeSymbolKey : AbstractSymbolKey<INamedTypeSymbol> 17public sealed override void Create(INamedTypeSymbol symbol, SymbolKeyWriter visitor) 34SymbolKeyReader reader, INamedTypeSymbol? contextualSymbol, out string? failureReason) 40using var propertyTypes = reader.ReadSymbolKeyArray<INamedTypeSymbol, ITypeSymbol>( 64var anonymousType = reader.Compilation.CreateAnonymousTypeSymbol(
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\SymbolKey\SymbolKey.cs (5)
43/// <item>Two <see cref="INamedTypeSymbol"/>s are the "same" if they have 46/// equal <see cref="INamedTypeSymbol.Arity"/> and 47/// the "same" <see cref="INamedTypeSymbol.TypeArguments"/>.</item> 301foreach (var containingType in containingTypeResolution.OfType<INamedTypeSymbol>())
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\SymbolKey\SymbolKey.ErrorTypeSymbolKey.cs (9)
12private sealed class ErrorTypeSymbolKey : AbstractSymbolKey<INamedTypeSymbol> 16public sealed override void Create(INamedTypeSymbol symbol, SymbolKeyWriter visitor) 21case INamedTypeSymbol parentType: 65SymbolKeyReader reader, INamedTypeSymbol? contextualType, out string? failureReason) 72using var typeArguments = reader.ReadSymbolKeyArray<INamedTypeSymbol, ITypeSymbol>( 92using var result = PooledArrayBuilder<INamedTypeSymbol>.GetInstance(); 97var originalType = reader.Compilation.CreateErrorTypeSymbol(container, name, arity); 98var errorType = typeArgumentsArray != null ? originalType.Construct(typeArgumentsArray) : originalType; 110SymbolKeyReader reader, INamedTypeSymbol? contextualType, out string? failureReason)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\SymbolKey\SymbolKey.FunctionPointerTypeSymbolKey.cs (2)
37var callingConventionModifiers = ImmutableArray<INamedTypeSymbol>.Empty; 40using var modifiersBuilder = reader.ReadSymbolKeyArray<IFunctionPointerTypeSymbol, INamedTypeSymbol>(
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\SymbolKey\SymbolKey.NamedTypeSymbolKey.cs (13)
9private sealed class NamedTypeSymbolKey : AbstractSymbolKey<INamedTypeSymbol> 13public sealed override void Create(INamedTypeSymbol symbol, SymbolKeyWriter visitor) 33SymbolKeyReader reader, INamedTypeSymbol? contextualSymbol, out string? failureReason) 48using var typeArguments = reader.ReadSymbolKeyArray<INamedTypeSymbol, ITypeSymbol>( 90INamedTypeSymbol? contextualType, 126using var result = PooledArrayBuilder<INamedTypeSymbol>.GetInstance(); 155using var result = PooledArrayBuilder<INamedTypeSymbol>.GetInstance(); 163PooledArrayBuilder<INamedTypeSymbol> result) 168foreach (var type in container.GetTypeMembers()) 176foreach (var type in container.GetTypeMembers(name, arity)) 200private static INamedTypeSymbol Construct(INamedTypeSymbol type, bool isUnboundGenericType, ITypeSymbol[] typeArguments) 202var currentType = typeArguments.Length > 0 ? type.Construct(typeArguments) : type;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\SymbolKey\SymbolKey.ParameterSymbolKey.cs (2)
64var delegateInvoke = (eventSymbol.Type as INamedTypeSymbol)?.DelegateInvokeMethod; 73case INamedTypeSymbol { IsExtension: true, ExtensionParameter: { } extensionParameter }:
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\SymbolKey\SymbolKey.SymbolKeyWriter.cs (2)
405public override void VisitNamedType(INamedTypeSymbol namedTypeSymbol) 412else if (namedTypeSymbol.IsTupleType && namedTypeSymbol.TupleUnderlyingType is INamedTypeSymbol underlyingType && underlyingType != namedTypeSymbol)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\SymbolKey\SymbolKey.TupleTypeSymbolKey.cs (10)
14private sealed class TupleTypeSymbolKey : AbstractSymbolKey<INamedTypeSymbol> 18public sealed override void Create(INamedTypeSymbol symbol, SymbolKeyWriter visitor) 53SymbolKeyReader reader, INamedTypeSymbol? contextualSymbol, out string? failureReason) 64SymbolKeyReader reader, INamedTypeSymbol? contextualSymbol, out string? failureReason) 78using var result = PooledArrayBuilder<INamedTypeSymbol>.GetInstance(); 81foreach (var namedType in underlyingTypeResolution.OfType<INamedTypeSymbol>()) 92SymbolKeyReader reader, INamedTypeSymbol? contextualType, out string? failureReason) 96using var elementTypes = reader.ReadSymbolKeyArray<INamedTypeSymbol, ITypeSymbol>( 120var result = reader.Compilation.CreateTupleTypeSymbol(
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Utilities\AbstractSpeculationAnalyzer.cs (5)
417var type = methodSymbol.ContainingType; 418var newType = newMethodSymbol.ContainingType; 491private static bool EnumTypesAreCompatible(INamedTypeSymbol type1, INamedTypeSymbol type2) 990var newSymbolContainingType = newSymbol.ContainingType;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Utilities\EnumValueUtilities.cs (1)
21public static object GetNextEnumValue(INamedTypeSymbol enumType)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Compilation\CompilationExtensions.cs (82)
78public static INamedTypeSymbol? ArgumentExceptionType(this Compilation compilation) 81public static INamedTypeSymbol? ArgumentNullExceptionType(this Compilation compilation) 84public static INamedTypeSymbol? ArgumentOutOfRangeExceptionType(this Compilation compilation) 87public static INamedTypeSymbol? ArrayType(this Compilation compilation) 90public static INamedTypeSymbol? AttributeType(this Compilation compilation) 93public static INamedTypeSymbol? BlockingCollectionOfTType(this Compilation compilation) 96public static INamedTypeSymbol? CollectionOfTType(this Compilation compilation) 99public static INamedTypeSymbol? ExceptionType(this Compilation compilation) 102public static INamedTypeSymbol? DebuggerDisplayAttributeType(this Compilation compilation) 105public static INamedTypeSymbol? StructLayoutAttributeType(this Compilation compilation) 108public static INamedTypeSymbol? InlineArrayAttributeType(this Compilation compilation) 111public static INamedTypeSymbol? DesignerCategoryAttributeType(this Compilation compilation) 114public static INamedTypeSymbol? DesignerGeneratedAttributeType(this Compilation compilation) 117public static INamedTypeSymbol? HideModuleNameAttribute(this Compilation compilation) 120public static INamedTypeSymbol? ThreadStaticAttributeType(this Compilation compilation) 123public static INamedTypeSymbol? FormattableStringType(this Compilation compilation) 126public static INamedTypeSymbol? IFormattableType(this Compilation compilation) 129public static INamedTypeSymbol? EventArgsType(this Compilation compilation) 132public static INamedTypeSymbol? NotImplementedExceptionType(this Compilation compilation) 135public static INamedTypeSymbol? EqualityComparerOfTType(this Compilation compilation) 138public static INamedTypeSymbol? ActionType(this Compilation compilation) 141public static INamedTypeSymbol? ExpressionOfTType(this Compilation compilation) 144public static INamedTypeSymbol? EditorBrowsableAttributeType(this Compilation compilation) 147public static INamedTypeSymbol? EditorBrowsableStateType(this Compilation compilation) 150public static INamedTypeSymbol? TaskType(this Compilation compilation) 153public static INamedTypeSymbol? TaskOfTType(this Compilation compilation) 156public static INamedTypeSymbol? ValueTaskType(this Compilation compilation) 159public static INamedTypeSymbol? ValueTaskOfTType(this Compilation compilation) 162public static INamedTypeSymbol? ICollectionOfTType(this Compilation compilation) 165public static INamedTypeSymbol? IEnumerableType(this Compilation compilation) 168public static INamedTypeSymbol? IEnumerableOfTType(this Compilation compilation) 171public static INamedTypeSymbol? IEnumeratorOfTType(this Compilation compilation) 174public static INamedTypeSymbol? IListOfTType(this Compilation compilation) 177public static INamedTypeSymbol? IReadOnlyListOfTType(this Compilation compilation) 180public static INamedTypeSymbol? ISetOfTType(this Compilation compilation) 183public static INamedTypeSymbol? IReadOnlySetOfTType(this Compilation compilation) 186public static INamedTypeSymbol? IAsyncEnumerableOfTType(this Compilation compilation) 189public static INamedTypeSymbol? IAsyncEnumeratorOfTType(this Compilation compilation) 192public static INamedTypeSymbol? ImmutableArrayOfTType(this Compilation compilation) 195public static INamedTypeSymbol? SerializableAttributeType(this Compilation compilation) 198public static INamedTypeSymbol? CoClassType(this Compilation compilation) 201public static INamedTypeSymbol? ComAliasNameAttributeType(this Compilation compilation) 204public static INamedTypeSymbol? SuppressMessageAttributeType(this Compilation compilation) 207public static INamedTypeSymbol? TupleElementNamesAttributeType(this Compilation compilation) 210public static INamedTypeSymbol? NativeIntegerAttributeType(this Compilation compilation) 213public static INamedTypeSymbol? DynamicAttributeType(this Compilation compilation) 216public static INamedTypeSymbol? LazyOfTType(this Compilation compilation) 219public static INamedTypeSymbol? ISerializableType(this Compilation compilation) 222public static INamedTypeSymbol? SerializationInfoType(this Compilation compilation) 225public static INamedTypeSymbol? StreamingContextType(this Compilation compilation) 228public static INamedTypeSymbol? OnDeserializingAttribute(this Compilation compilation) 231public static INamedTypeSymbol? OnDeserializedAttribute(this Compilation compilation) 234public static INamedTypeSymbol? OnSerializingAttribute(this Compilation compilation) 237public static INamedTypeSymbol? OnSerializedAttribute(this Compilation compilation) 240public static INamedTypeSymbol? ComRegisterFunctionAttribute(this Compilation compilation) 243public static INamedTypeSymbol? ComUnregisterFunctionAttribute(this Compilation compilation) 246public static INamedTypeSymbol? ConditionalAttribute(this Compilation compilation) 249public static INamedTypeSymbol? ObsoleteAttribute(this Compilation compilation) 252public static INamedTypeSymbol? SystemCompositionImportingConstructorAttribute(this Compilation compilation) 255public static INamedTypeSymbol? SystemComponentModelCompositionImportingConstructorAttribute(this Compilation compilation) 258public static INamedTypeSymbol? SystemIDisposableType(this Compilation compilation) 261public static INamedTypeSymbol? NotNullAttribute(this Compilation compilation) 264public static INamedTypeSymbol? MaybeNullAttribute(this Compilation compilation) 267public static INamedTypeSymbol? MaybeNullWhenAttribute(this Compilation compilation) 270public static INamedTypeSymbol? AllowNullAttribute(this Compilation compilation) 273public static INamedTypeSymbol? DisallowNullAttribute(this Compilation compilation) 276public static INamedTypeSymbol? DataMemberAttribute(this Compilation compilation) 279public static INamedTypeSymbol? DataContractAttribute(this Compilation compilation) 282public static INamedTypeSymbol? AsyncMethodBuilderAttribute(this Compilation compilation) 285public static INamedTypeSymbol? CancellationTokenType(this Compilation compilation) 288public static INamedTypeSymbol? ValueTupleType(this Compilation compilation, int arity) 291public static INamedTypeSymbol? ListOfTType(this Compilation compilation) 294public static INamedTypeSymbol? ReadOnlySpanOfTType(this Compilation compilation) 297public static INamedTypeSymbol? SpanOfTType(this Compilation compilation) 300public static INamedTypeSymbol? InterpolatedStringHandlerAttributeType(this Compilation compilation) 303public static INamedTypeSymbol? DateOnlyType(this Compilation compilation) 306public static INamedTypeSymbol? TimeOnlyType(this Compilation compilation) 334public static INamedTypeSymbol? GetBestTypeByMetadataName(this Compilation compilation, string fullyQualifiedMetadataName) 336INamedTypeSymbol? type = null; 338foreach (var currentType in compilation.GetTypesByMetadataName(fullyQualifiedMetadataName)) 373foreach (var candidateTopLevelType in compilation.SourceModule.GlobalNamespace.GetTypeMembers(WellKnownMemberNames.TopLevelStatementsEntryPointTypeName, arity: 0)) 385public static INamedTypeSymbol? TryGetCallingConventionSymbol(this Compilation compilation, string callingConvention)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\IMethodSymbolExtensions.cs (6)
26foreach (var nestedType in methodSymbol.ContainingType.GetTypeMembers()) 72public static bool HasEventHandlerSignature(this IMethodSymbol method, [NotNullWhen(returnValue: true)] INamedTypeSymbol? eventArgsType) 131public static bool IsEntryPoint(this IMethodSymbol methodSymbol, INamedTypeSymbol? taskType, INamedTypeSymbol? genericTaskType) 147if (method.ReturnType is not INamedTypeSymbol { Arity: 0 }) 169var containingType = constructor.ContainingType;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\INamedTypeSymbolExtensions.cs (77)
24public static IEnumerable<INamedTypeSymbol> GetBaseTypesAndThis(this INamedTypeSymbol? namedType) 26var current = namedType; 34public static IEnumerable<INamedTypeSymbol> GetContainingTypesAndThis(this INamedTypeSymbol? namedType) 36var current = namedType; 44public static ImmutableArray<ITypeParameterSymbol> GetAllTypeParameters(this INamedTypeSymbol? symbol) 50public static ImmutableArray<ITypeSymbol> GetAllTypeArguments(this INamedTypeSymbol? symbol) 56private static Stack<INamedTypeSymbol> GetContainmentStack(INamedTypeSymbol? symbol) 58var stack = new Stack<INamedTypeSymbol>(); 59for (var current = symbol; current != null; current = current.ContainingType) 67public static bool IsContainedWithin([NotNullWhen(returnValue: true)] this INamedTypeSymbol? symbol, INamedTypeSymbol outer) 70for (var current = symbol; current != null; current = current.ContainingType) 81public static ISymbol? FindImplementationForAbstractMember(this INamedTypeSymbol? type, ISymbol symbol) 92private static bool ImplementationExists(INamedTypeSymbol classOrStructType, ISymbol member) 96this INamedTypeSymbol classOrStructType, 98Func<INamedTypeSymbol, ISymbol, bool> isValidImplementation, 128private static bool IsInterfacePropertyImplemented(INamedTypeSymbol classOrStructType, IPropertySymbol propertySymbol) 136static bool IsAccessorImplemented(IMethodSymbol? accessor, INamedTypeSymbol classOrStructType) 142private static bool IsAbstractPropertyImplemented(INamedTypeSymbol classOrStructType, IPropertySymbol propertySymbol) 165this INamedTypeSymbol classOrStructType, 167Func<INamedTypeSymbol, ISymbol, bool> isValid, 190public static ImmutableArray<(INamedTypeSymbol type, ImmutableArray<ISymbol> members)> GetAllUnimplementedMembers( 191this INamedTypeSymbol classOrStructType, 192IEnumerable<INamedTypeSymbol> interfaces, 208static ImmutableArray<ISymbol> GetImplicitlyImplementableMembers(INamedTypeSymbol type, ISymbol within) 260public static ImmutableArray<(INamedTypeSymbol type, ImmutableArray<ISymbol> members)> GetAllUnimplementedMembersInThis( 261this INamedTypeSymbol classOrStructType, 262IEnumerable<INamedTypeSymbol> interfacesOrAbstractClasses, 278public static ImmutableArray<(INamedTypeSymbol type, ImmutableArray<ISymbol> members)> GetAllUnimplementedMembersInThis( 279this INamedTypeSymbol classOrStructType, 280IEnumerable<INamedTypeSymbol> interfacesOrAbstractClasses, 281Func<INamedTypeSymbol, ISymbol, ImmutableArray<ISymbol>> interfaceMemberGetter, 297public static ImmutableArray<(INamedTypeSymbol type, ImmutableArray<ISymbol> members)> GetAllUnimplementedExplicitMembers( 298this INamedTypeSymbol classOrStructType, 299IEnumerable<INamedTypeSymbol> interfaces, 311private static ImmutableArray<ISymbol> GetExplicitlyImplementableMembers(INamedTypeSymbol type, ISymbol within) 338private static ImmutableArray<(INamedTypeSymbol type, ImmutableArray<ISymbol> members)> GetAllUnimplementedMembers( 339this INamedTypeSymbol classOrStructType, 340IEnumerable<INamedTypeSymbol> interfacesOrAbstractClasses, 341Func<INamedTypeSymbol, ISymbol, Func<INamedTypeSymbol, ISymbol, bool>, CancellationToken, bool> isImplemented, 342Func<INamedTypeSymbol, ISymbol, bool> isValidImplementation, 343Func<INamedTypeSymbol, ISymbol, ImmutableArray<ISymbol>> interfaceMemberGetter, 372private static ImmutableArray<INamedTypeSymbol> GetTypesToImplement( 373INamedTypeSymbol classOrStructType, 374IEnumerable<INamedTypeSymbol> interfacesOrAbstractClasses, 383private static ImmutableArray<INamedTypeSymbol> GetAbstractClassesToImplement( 384IEnumerable<INamedTypeSymbol> abstractClasses) 389private static ImmutableArray<INamedTypeSymbol> GetInterfacesToImplement( 390INamedTypeSymbol classOrStructType, 391IEnumerable<INamedTypeSymbol> interfaces, 398var interfacesToImplement = new List<INamedTypeSymbol>( 403var baseType = classOrStructType.BaseType; 414this INamedTypeSymbol classOrStructType, 415INamedTypeSymbol interfaceType, 416Func<INamedTypeSymbol, ISymbol, Func<INamedTypeSymbol, ISymbol, bool>, CancellationToken, bool> isImplemented, 417Func<INamedTypeSymbol, ISymbol, bool> isValidImplementation, 418Func<INamedTypeSymbol, ISymbol, ImmutableArray<ISymbol>> interfaceMemberGetter, 460this INamedTypeSymbol attributeSymbol, 466var systemAttributeType = compilation.AttributeType(); 468foreach (var type in attributeSymbol.GetBaseTypesAndThis()) 528private static ImmutableArray<ISymbol> GetMembers(INamedTypeSymbol type, ISymbol within) 542this INamedTypeSymbol containingType, CancellationToken cancellationToken) 559foreach (var type in baseTypes) 580Dictionary<ISymbol, int> result, INamedTypeSymbol containingType, CancellationToken cancellationToken) 601Dictionary<ISymbol, int> result, INamedTypeSymbol containingType, CancellationToken cancellationToken) 623Dictionary<ISymbol, int> result, INamedTypeSymbol containingType, 624INamedTypeSymbol type, ref int index, CancellationToken cancellationToken) 637private static bool IsOverridable(ISymbol member, INamedTypeSymbol containingType) 680public static INamedTypeSymbol TryConstruct(this INamedTypeSymbol type, ITypeSymbol[] typeArguments) 683public static bool IsCollectionBuilderAttribute([NotNullWhen(true)] this INamedTypeSymbol? type) 702public static bool IsIEnumerableOfT([NotNullWhen(true)] this INamedTypeSymbol? type)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\INamespaceOrTypeSymbolExtensions.cs (3)
90public static IEnumerable<INamedTypeSymbol> GetAllTypes( 106var namedType = (INamedTypeSymbol)current;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\ISymbolExtensions.cs (16)
99foreach (var baseType in symbol.ContainingType.GetBaseTypes()) 108bool TryFindLooseMatch(ISymbol symbol, INamedTypeSymbol baseType, [NotNullWhen(true)] out ISymbol? looseMatch) 157foreach (var iface in symbol.ContainingType.AllInterfaces) 215public static INamedTypeSymbol? GetContainingTypeOrThis(this ISymbol symbol) 217if (symbol is INamedTypeSymbol namedType) 311=> symbol is INamedTypeSymbol { IsAnonymousType: true }; 354SymbolKind.NamedType => ((INamedTypeSymbol)symbol).Arity, 435INamedTypeSymbol nt => nt.TypeParameters, 456INamedTypeSymbol nt => nt.TypeArguments, 465var containingType = symbol.ContainingType; 506var delegateType = compilation.GetTypeByMetadataName(method.ReturnsVoid 535=> symbol is INamedTypeSymbol { IsStatic: true }; 551foreach (var type in namespaceOrType.GetAllTypes(cancellationToken)) 568private static bool IsAttributeValidForTargets(INamedTypeSymbol attributeType, AttributeTargets validTargets) 595return ((INamedTypeSymbol)symbol).GetMembers().OfType<IPropertySymbol>().Where(p => p.CanBeReferencedByName); 870public static bool HasAttribute([NotNullWhen(true)] this ISymbol? symbol, [NotNullWhen(true)] INamedTypeSymbol? attributeClass)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\ISymbolExtensions.RequiresUnsafeModifierVisitor.cs (1)
56public override bool VisitNamedType(INamedTypeSymbol symbol)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\ISymbolExtensions_Accessibility.cs (25)
27else if (within is INamedTypeSymbol namedType) 54INamedTypeSymbol within, 67INamedTypeSymbol within, 92Debug.Assert(within is INamedTypeSymbol or IAssemblySymbol); 124return IsNamedTypeAccessible((INamedTypeSymbol)symbol, within); 177private static bool IsNamedTypeAccessible(INamedTypeSymbol type, ISymbol within) 179Debug.Assert(within is INamedTypeSymbol or IAssemblySymbol); 204var containingType = type.ContainingType; 217Debug.Assert(within is INamedTypeSymbol or IAssemblySymbol); 219var withinAssembly = (within as IAssemblySymbol) ?? ((INamedTypeSymbol)within).ContainingAssembly; 248INamedTypeSymbol containingType, 254Debug.Assert(within is INamedTypeSymbol or IAssemblySymbol); 259var originalContainingType = containingType.OriginalDefinition; 260var withinNamedType = within as INamedTypeSymbol; 261var withinAssembly = (within as IAssemblySymbol) ?? ((INamedTypeSymbol)within).ContainingAssembly; 334INamedTypeSymbol? withinType, 337INamedTypeSymbol originalContainingType, 375var current = withinType.OriginalDefinition; 411INamedTypeSymbol originalContainingType) 413Debug.Assert(within is INamedTypeSymbol or IAssemblySymbol); 415if (within is not INamedTypeSymbol withinType) 428INamedTypeSymbol withinType, 429INamedTypeSymbol originalContainingType) 436var current = withinType.OriginalDefinition;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\ITypeGenerator.cs (1)
13ITypeSymbol Construct(INamedTypeSymbol namedType, ITypeSymbol[] typeArguments);
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\ITypeParameterSymbolExtensions.cs (4)
14public static INamedTypeSymbol? GetNamedTypeSymbolConstraint(this ITypeParameterSymbol typeParameter) 17private static INamedTypeSymbol? GetNamedTypeSymbol(ITypeSymbol type) 19return type is INamedTypeSymbol 20? (INamedTypeSymbol)type
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\ITypeSymbolExtensions.AnonymousTypeRemover.cs (1)
42public override ITypeSymbol VisitNamedType(INamedTypeSymbol symbol)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\ITypeSymbolExtensions.CollectTypeParameterSymbolsVisitor.cs (1)
57public override void VisitNamedType(INamedTypeSymbol symbol)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\ITypeSymbolExtensions.CompilationTypeGenerator.cs (1)
19public ITypeSymbol Construct(INamedTypeSymbol namedType, ITypeSymbol[] typeArguments)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\ITypeSymbolExtensions.cs (30)
43public static ImmutableArray<INamedTypeSymbol> GetAllInterfacesIncludingThis(this ITypeSymbol type) 46return type is INamedTypeSymbol { TypeKind: TypeKind.Interface } namedType && !allInterfaces.Contains(namedType) 69underlyingType = ((INamedTypeSymbol)symbol).TypeArguments[0]; 92public static bool IsAnonymousType([NotNullWhen(returnValue: true)] this INamedTypeSymbol? symbol) 95private static HashSet<INamedTypeSymbol> GetOriginalInterfacesAndTheirBaseInterfaces( 97HashSet<INamedTypeSymbol>? symbols = null) 99symbols ??= new HashSet<INamedTypeSymbol>(SymbolEquivalenceComparer.Instance); 101foreach (var interfaceType in type.Interfaces) 120public static IEnumerable<INamedTypeSymbol> GetBaseTypes(this ITypeSymbol? type) 122var current = type?.BaseType; 140public static IEnumerable<INamedTypeSymbol> GetContainingTypes(this ITypeSymbol type) 142var current = type.ContainingType; 198var currentBaseType = type.BaseType; 227for (var b = symbol.BaseType; b != null; b = b.BaseType) 316INamedTypeSymbol n => ContainsAnonymousType(n), 321private static bool ContainsAnonymousType(INamedTypeSymbol type) 417public static INamedTypeSymbol? GetDelegateType(this ITypeSymbol? typeSymbol, Compilation compilation) 421var expressionOfT = compilation.ExpressionOfTType(); 424var typeArgument = ((INamedTypeSymbol)typeSymbol).TypeArguments[0]; 425return typeArgument as INamedTypeSymbol; 430return typeSymbol as INamedTypeSymbol; 583var n2 = t2 as INamedTypeSymbol; 585if (t1 is not INamedTypeSymbol n1) 635public static bool IsEnumType([NotNullWhen(true)] this ITypeSymbol? type, [NotNullWhen(true)] out INamedTypeSymbol? enumType) 639enumType = (INamedTypeSymbol)type; 731if (type is not INamedTypeSymbol 784=> type is INamedTypeSymbol 792=> symbol is INamedTypeSymbol 800=> type is INamedTypeSymbol namedType &&
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\ITypeSymbolExtensions.MinimalAccessibilityVisitor.cs (2)
42foreach (var callingConventionType in symbol.Signature.UnmanagedCallingConventionTypes) 50public override Accessibility VisitNamedType(INamedTypeSymbol symbol)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\ITypeSymbolExtensions.SubstituteTypesVisitor.cs (1)
58public override ITypeSymbol VisitNamedType(INamedTypeSymbol symbol)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\ITypeSymbolExtensions.UnavailableTypeParameterRemover.cs (1)
43public override ITypeSymbol VisitNamedType(INamedTypeSymbol symbol)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\ITypeSymbolExtensions.UnnamedErrorTypeRemover.cs (1)
42public override ITypeSymbol VisitNamedType(INamedTypeSymbol symbol)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\SymbolEquivalenceComparer.cs (12)
149public bool ReturnTypeEquals(IMethodSymbol x, IMethodSymbol y, Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies = null) 164public bool Equals(ISymbol? x, ISymbol? y, Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies) 170private bool EqualsCore(ISymbol? x, ISymbol? y, Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies) 191private static bool IsConstructedFromSelf(INamedTypeSymbol symbol) 213private static OneOrMany<INamedTypeSymbol> Unwrap(INamedTypeSymbol namedType) 219using var builder = TemporaryArray<INamedTypeSymbol>.Empty; 224if (candidate is INamedTypeSymbol candidateType) 257private static TypeKind GetTypeKind(INamedTypeSymbol x)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\SymbolEquivalenceComparer.EquivalenceVisitor.cs (65)
22public bool AreEquivalent(ISymbol? x, ISymbol? y, Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies) 51return AreArrayAndReadOnlySpanEquivalent((IArrayTypeSymbol)x, (INamedTypeSymbol)y, equivalentTypesWithDifferingAssemblies); 55return AreArrayAndReadOnlySpanEquivalent((IArrayTypeSymbol)y, (INamedTypeSymbol)x, equivalentTypesWithDifferingAssemblies); 65private bool AreArrayAndReadOnlySpanEquivalent(IArrayTypeSymbol array, INamedTypeSymbol readOnlySpanType, Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies) 73internal bool AreEquivalent(CustomModifier x, CustomModifier y, Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies) 76internal bool AreEquivalent(ImmutableArray<CustomModifier> x, ImmutableArray<CustomModifier> y, Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies) 112private bool AreEquivalentWorker(ISymbol x, ISymbol y, SymbolKind k, Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies) 126SymbolKind.NamedType => NamedTypesAreEquivalent((INamedTypeSymbol)x, (INamedTypeSymbol)y, equivalentTypesWithDifferingAssemblies), 127SymbolKind.ErrorType => NamedTypesAreEquivalent((INamedTypeSymbol)x, (INamedTypeSymbol)y, equivalentTypesWithDifferingAssemblies), 140private bool ArrayTypesAreEquivalent(IArrayTypeSymbol x, IArrayTypeSymbol y, Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies) 152private bool FieldsAreEquivalent(IFieldSymbol x, IFieldSymbol y, Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies) 170private bool MethodsAreEquivalent(IMethodSymbol x, IMethodSymbol y, Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies, bool considerReturnRefKinds = false) 281private bool NamedTypesAreEquivalent(INamedTypeSymbol x, INamedTypeSymbol y, Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies) 301private bool NamedTypesAreEquivalentError(INamedTypeSymbol x, INamedTypeSymbol y, Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies) 303foreach (var type1 in Unwrap(x)) 306foreach (var type2 in Unwrap(y)) 330private bool HandleNamedTypesWorker(INamedTypeSymbol x, INamedTypeSymbol y, Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies) 418private bool HandleTupleTypes(INamedTypeSymbol x, INamedTypeSymbol y, Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies) 463Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies, 486internal bool ReturnTypesAreEquivalent(IMethodSymbol x, IMethodSymbol y, Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies = null) 492private bool TypeArgumentsAreEquivalent(ImmutableArray<ITypeSymbol> xTypeArguments, ImmutableArray<ITypeSymbol> yTypeArguments, Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies) 511private bool HandleAnonymousTypes(INamedTypeSymbol x, INamedTypeSymbol y, Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies) 547private bool NamespacesAreEquivalent(INamespaceSymbol x, INamespaceSymbol y, Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies) 564private bool ParametersAreEquivalent(IParameterSymbol x, IParameterSymbol y, Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies) 574private bool PointerTypesAreEquivalent(IPointerTypeSymbol x, IPointerTypeSymbol y, Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies) 581private bool FunctionPointerTypesAreEquivalent(IFunctionPointerTypeSymbol x, IFunctionPointerTypeSymbol y, Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies) 584private bool PropertiesAreEquivalent(IPropertySymbol x, IPropertySymbol y, Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies) 608private bool EventsAreEquivalent(IEventSymbol x, IEventSymbol y, Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies) 617private bool TypeParametersAreEquivalent(ITypeParameterSymbol x, ITypeParameterSymbol y, Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\SymbolEquivalenceComparer.GetHashCodeVisitor.cs (5)
70SymbolKind.NamedType => CombineHashCodes((INamedTypeSymbol)x, currentHash), 146private int CombineHashCodes(INamedTypeSymbol x, int currentHash) 154if (candidate is INamedTypeSymbol candidateNamedType) 164private int CombineNamedTypeHashCode(INamedTypeSymbol x, int currentHash) 193private int CombineAnonymousTypeHashCode(INamedTypeSymbol x, int currentHash)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\SymbolEquivalenceComparer.ParameterSymbolEqualityComparer.cs (2)
23Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies,
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\SymbolEquivalenceComparer.SignatureTypeSymbolEquivalenceComparer.cs (2)
18public bool Equals(ITypeSymbol? x, ITypeSymbol? y, Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\AbstractCodeGenerationService.cs (15)
59public TDeclarationNode AddNamedType<TDeclarationNode>(TDeclarationNode destination, INamedTypeSymbol namedType, CodeGenerationContextInfo info, CancellationToken cancellationToken) where TDeclarationNode : SyntaxNode 88public SyntaxNode CreateNamedTypeDeclaration(INamedTypeSymbol namedType, CodeGenerationDestination destination, CodeGenerationContextInfo info, CancellationToken cancellationToken) 127protected abstract TDeclarationNode AddNamedType<TDeclarationNode>(TDeclarationNode destination, INamedTypeSymbol namedType, TCodeGenerationContextInfo info, IList<bool>? availableIndices, CancellationToken cancellationToken) where TDeclarationNode : SyntaxNode; 150public abstract SyntaxNode CreateNamedTypeDeclaration(INamedTypeSymbol namedType, CodeGenerationDestination destination, TCodeGenerationContextInfo info, CancellationToken cancellationToken); 349INamedTypeSymbol namedType => CreateNamedTypeDeclaration(namedType, codeGenerationDestination, info, cancellationToken), 367INamedTypeSymbol namedType => AddNamedType(currentDestination, namedType, info, availableIndices, cancellationToken), 392CodeGenerationSolutionContext context, INamedTypeSymbol destination, IEventSymbol @event, CancellationToken cancellationToken) 401public Task<Document> AddFieldAsync(CodeGenerationSolutionContext context, INamedTypeSymbol destination, IFieldSymbol field, CancellationToken cancellationToken) 410public Task<Document> AddPropertyAsync(CodeGenerationSolutionContext context, INamedTypeSymbol destination, IPropertySymbol property, CancellationToken cancellationToken) 419public Task<Document> AddNamedTypeAsync(CodeGenerationSolutionContext context, INamedTypeSymbol destination, INamedTypeSymbol namedType, CancellationToken cancellationToken) 428public Task<Document> AddNamedTypeAsync(CodeGenerationSolutionContext context, INamespaceSymbol destination, INamedTypeSymbol namedType, CancellationToken cancellationToken) 446public Task<Document> AddMethodAsync(CodeGenerationSolutionContext context, INamedTypeSymbol destination, IMethodSymbol method, CancellationToken cancellationToken) 455public Task<Document> AddMembersAsync(CodeGenerationSolutionContext context, INamedTypeSymbol destination, IEnumerable<ISymbol> members, CancellationToken cancellationToken) 477return AddNamedTypeAsync(context, destination, (INamedTypeSymbol)namespaceOrType, cancellationToken);
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\AbstractFlagsEnumGenerator.cs (10)
14protected abstract SyntaxNode CreateExplicitlyCastedLiteralValue(INamedTypeSymbol enumType, SpecialType underlyingSpecialType, object constantValue); 15protected abstract bool IsValidName(INamedTypeSymbol enumType, string name); 19public SyntaxNode CreateEnumConstantValue(INamedTypeSymbol enumType, object constantValue) 35private static bool IsFlagsEnum(INamedTypeSymbol typeSymbol) 47var type = ctor.ContainingType; 60private SyntaxNode CreateFlagsEnumConstantValue(INamedTypeSymbol enumType, object constantValue) 71INamedTypeSymbol enumType, 137IFieldSymbol field, INamedTypeSymbol enumType, SpecialType underlyingSpecialType) 167INamedTypeSymbol enumType, 184private SyntaxNode CreateNonFlagsEnumConstantValue(INamedTypeSymbol enumType, object constantValue)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\CodeGenerationHelpers.cs (2)
25var exceptionType = compilation.GetTypeByMetadataName(exceptionMetadataName); 150public static IEnumerable<ISymbol> GetMembers(INamedTypeSymbol namedType)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\CodeGenerationSymbolFactory.cs (14)
43INamedTypeSymbol? containingType, 148INamedTypeSymbol? containingType, 222INamedTypeSymbol? containingType = null, 250INamedTypeSymbol? containingType = null, 404INamedTypeSymbol attributeClass, 414public static INamedTypeSymbol CreateNamedTypeSymbol( 420INamedTypeSymbol? baseType = null, 421ImmutableArray<INamedTypeSymbol> interfaces = default, 433public static INamedTypeSymbol CreateNamedTypeSymbol( 439INamedTypeSymbol? baseType = null, 440ImmutableArray<INamedTypeSymbol> interfaces = default, 451members.WhereAsArray(m => m is not INamedTypeSymbol), 452[.. members.OfType<INamedTypeSymbol>().Select(n => n.ToCodeGenerationSymbol())], 519INamedTypeSymbol? containingType = null,
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\CodeGenerator.cs (8)
30public static Task<Document> AddEventDeclarationAsync(CodeGenerationSolutionContext context, INamedTypeSymbol destination, IEventSymbol @event, CancellationToken cancellationToken) 37public static Task<Document> AddFieldDeclarationAsync(CodeGenerationSolutionContext context, INamedTypeSymbol destination, IFieldSymbol field, CancellationToken cancellationToken) 44public static Task<Document> AddMethodDeclarationAsync(CodeGenerationSolutionContext context, INamedTypeSymbol destination, IMethodSymbol method, CancellationToken cancellationToken) 51public static Task<Document> AddPropertyDeclarationAsync(CodeGenerationSolutionContext context, INamedTypeSymbol destination, IPropertySymbol property, CancellationToken cancellationToken) 58public static Task<Document> AddNamedTypeDeclarationAsync(CodeGenerationSolutionContext context, INamedTypeSymbol destination, INamedTypeSymbol namedType, CancellationToken cancellationToken) 65public static Task<Document> AddNamedTypeDeclarationAsync(CodeGenerationSolutionContext context, INamespaceSymbol destination, INamedTypeSymbol namedType, CancellationToken cancellationToken) 86public static Task<Document> AddMemberDeclarationsAsync(CodeGenerationSolutionContext context, INamedTypeSymbol destination, IEnumerable<ISymbol> members, CancellationToken cancellationToken)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\ICodeGenerationService.cs (10)
43SyntaxNode CreateNamedTypeDeclaration(INamedTypeSymbol namedType, CodeGenerationDestination destination, CodeGenerationContextInfo info, CancellationToken cancellationToken); 73TDeclarationNode AddNamedType<TDeclarationNode>(TDeclarationNode destination, INamedTypeSymbol namedType, CodeGenerationContextInfo info, CancellationToken cancellationToken) where TDeclarationNode : SyntaxNode; 133Task<Document> AddEventAsync(CodeGenerationSolutionContext context, INamedTypeSymbol destination, IEventSymbol @event, CancellationToken cancellationToken); 138Task<Document> AddFieldAsync(CodeGenerationSolutionContext context, INamedTypeSymbol destination, IFieldSymbol field, CancellationToken cancellationToken); 143Task<Document> AddMethodAsync(CodeGenerationSolutionContext context, INamedTypeSymbol destination, IMethodSymbol method, CancellationToken cancellationToken); 148Task<Document> AddPropertyAsync(CodeGenerationSolutionContext context, INamedTypeSymbol destination, IPropertySymbol property, CancellationToken cancellationToken); 153Task<Document> AddNamedTypeAsync(CodeGenerationSolutionContext context, INamedTypeSymbol destination, INamedTypeSymbol namedType, CancellationToken cancellationToken); 158Task<Document> AddNamedTypeAsync(CodeGenerationSolutionContext context, INamespaceSymbol destination, INamedTypeSymbol namedType, CancellationToken cancellationToken); 173Task<Document> AddMembersAsync(CodeGenerationSolutionContext context, INamedTypeSymbol destination, IEnumerable<ISymbol> members, CancellationToken cancellationToken);
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\INamedTypeSymbolExtensions.cs (2)
11public static CodeGenerationAbstractNamedTypeSymbol ToCodeGenerationSymbol(this INamedTypeSymbol namedType) 32namedType.GetMembers().WhereAsArray(s => s is not INamedTypeSymbol),
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\Symbols\CodeGenerationAbstractMethodSymbol.cs (3)
23INamedTypeSymbol containingType, 98public INamedTypeSymbol AssociatedAnonymousDelegate => null; 110public ImmutableArray<INamedTypeSymbol> UnmanagedCallingConventionTypes => [];
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\Symbols\CodeGenerationAbstractNamedTypeSymbol.cs (10)
16public new INamedTypeSymbol OriginalDefinition { get; protected set; } 24INamedTypeSymbol containingType, 53public INamedTypeSymbol Construct(params ITypeSymbol[] typeArguments) 64public INamedTypeSymbol Construct(ImmutableArray<ITypeSymbol> typeArguments, ImmutableArray<NullableAnnotation> typeArgumentNullableAnnotations) 77public abstract INamedTypeSymbol EnumUnderlyingType { get; } 79INamedTypeSymbol INamedTypeSymbol.ConstructedFrom => this.ConstructedFrom; 80public abstract INamedTypeSymbol ConstructUnboundGenericType(); 119public INamedTypeSymbol NativeIntegerUnderlyingType => null; 121public INamedTypeSymbol TupleUnderlyingType => null;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\Symbols\CodeGenerationAttributeData.cs (2)
13INamedTypeSymbol attributeClass, 20protected override INamedTypeSymbol CommonAttributeClass => attributeClass;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\Symbols\CodeGenerationConstructedNamedTypeSymbol.cs (4)
51public override INamedTypeSymbol EnumUnderlyingType 57public override INamedTypeSymbol ConstructUnboundGenericType() 87public override ImmutableArray<INamedTypeSymbol> GetTypeMembers() 90return [.. _constructedFrom.TypeMembers.Cast<INamedTypeSymbol>()];
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\Symbols\CodeGenerationConstructorSymbol.cs (1)
11INamedTypeSymbol? containingType,
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\Symbols\CodeGenerationConversionSymbol.cs (1)
11INamedTypeSymbol? containingType,
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\Symbols\CodeGenerationDestructorSymbol.cs (1)
10INamedTypeSymbol? containingType,
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\Symbols\CodeGenerationEventSymbol.cs (1)
12INamedTypeSymbol? containingType,
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\Symbols\CodeGenerationFieldSymbol.cs (1)
13INamedTypeSymbol containingType,
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\Symbols\CodeGenerationMethodSymbol.cs (1)
23INamedTypeSymbol containingType,
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\Symbols\CodeGenerationNamedTypeSymbol.cs (11)
19private readonly ImmutableArray<INamedTypeSymbol> _interfaces; 24INamedTypeSymbol containingType, 32INamedTypeSymbol baseType, 33ImmutableArray<INamedTypeSymbol> interfaces, 38INamedTypeSymbol enumUnderlyingType) 101public override INamedTypeSymbol EnumUnderlyingType { get; } 111public override INamedTypeSymbol ConstructUnboundGenericType() 147public override INamedTypeSymbol BaseType { get; } 149public override ImmutableArray<INamedTypeSymbol> Interfaces 160public override ImmutableArray<INamedTypeSymbol> GetTypeMembers() 161=> [.. this.TypeMembers.Cast<INamedTypeSymbol>()];
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\Symbols\CodeGenerationNamespaceOrTypeSymbol.cs (4)
14INamedTypeSymbol containingType, 29public virtual ImmutableArray<INamedTypeSymbol> GetTypeMembers() 32public ImmutableArray<INamedTypeSymbol> GetTypeMembers(string name) 35public ImmutableArray<INamedTypeSymbol> GetTypeMembers(string name, int arity)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\Symbols\CodeGenerationNamespaceSymbol.cs (1)
57public static INamedTypeSymbol ImplicitType => null;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\Symbols\CodeGenerationOperatorSymbol.cs (1)
11INamedTypeSymbol? containingType,
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\Symbols\CodeGenerationParameterSymbol.cs (1)
13INamedTypeSymbol containingType,
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\Symbols\CodeGenerationPropertySymbol.cs (1)
13INamedTypeSymbol containingType,
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\Symbols\CodeGenerationSymbol.cs (3)
27public INamedTypeSymbol ContainingType { get; protected set; } 31INamedTypeSymbol containingType, 162public ImmutableArray<AttributeData> GetAttributes(INamedTypeSymbol attributeType)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\Symbols\CodeGenerationTypeParameterSymbol.cs (3)
12INamedTypeSymbol containingType, 80public INamedTypeSymbol DeclaringType 84return this.ContainingSymbol as INamedTypeSymbol;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\Symbols\CodeGenerationTypeSymbol.cs (4)
14INamedTypeSymbol containingType, 27public virtual INamedTypeSymbol BaseType => null; 29public virtual ImmutableArray<INamedTypeSymbol> Interfaces 32public ImmutableArray<INamedTypeSymbol> AllInterfaces
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\TypeGenerator.cs (1)
21public ITypeSymbol Construct(INamedTypeSymbol namedType, ITypeSymbol[] typeArguments)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\Editing\ImportAdderService.cs (2)
202foreach (var namedType in SymbolAnnotation.GetSymbols(annotation, model.Compilation).OfType<INamedTypeSymbol>())
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\Extensions\IMethodSymbolExtensions.cs (3)
19this IMethodSymbol method, INamedTypeSymbol containingType, ISyntaxFactsService syntaxFacts) 143params INamedTypeSymbol[] removeAttributeTypes) 172static bool shouldRemoveAttribute(AttributeData a, (INamedTypeSymbol[] removeAttributeTypes, ISymbol accessibleWithin) arg)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\Extensions\IPropertySymbolExtensions.cs (2)
41this IPropertySymbol property, ISymbol accessibleWithin, params INamedTypeSymbol[] attributesToRemove) 69static bool ShouldRemoveAttribute(AttributeData a, (INamedTypeSymbol[] attributesToRemove, ISymbol accessibleWithin) arg)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\Extensions\ITypeInferenceServiceExtensions.cs (3)
27public static INamedTypeSymbol? InferDelegateType( 37public static INamedTypeSymbol? InferDelegateType( 47private static INamedTypeSymbol? GetFirstDelegateType(SemanticModel semanticModel, ImmutableArray<ITypeSymbol> types)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\Extensions\SyntaxGeneratorExtensions.cs (4)
39var notImplementedExceptionTypeSyntax = compilation.NotImplementedExceptionType() is INamedTypeSymbol symbol 72var equalityComparerType = compilation.EqualityComparerOfTType(); 176var classOrStructType = throughMember.ContainingType; 441var type = compilation.GetTypeByMetadataName(typeof(ArgumentNullException).FullName!);
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\Extensions\SyntaxGeneratorExtensions_CreateEqualsMethod.cs (11)
29INamedTypeSymbol containingType, 79INamedTypeSymbol containingType, 81INamedTypeSymbol constructedEquatableType, 125INamedTypeSymbol containingType, 243var iequatableType = compilation.GetTypeByMetadataName(typeof(IEquatable<>).FullName); 296INamedTypeSymbol containingType, 407private static bool ImplementsIEquatable(ITypeSymbol memberType, INamedTypeSymbol? iequatableType) 413var constructed = iequatableType.Construct(memberType); 458private static bool HasExistingBaseEqualsMethod(INamedTypeSymbol containingType) 481INamedTypeSymbol? containingType, 515INamedTypeSymbol? containingType,
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\Extensions\SyntaxGeneratorExtensions_CreateGetHashCodeMethod.cs (5)
21INamedTypeSymbol? containingType, 43INamedTypeSymbol hashCodeType, ImmutableArray<SyntaxNode> memberReferences) 83INamedTypeSymbol containingType, 179this SyntaxGenerator generator, SyntaxGeneratorInternal generatorInternal, INamedTypeSymbol namedTypeSymbol, 192public static IMethodSymbol? GetBaseGetHashCodeMethod(INamedTypeSymbol containingType)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\Extensions\SyntaxGeneratorExtensions_Negate.cs (1)
444var containingType = property.ContainingType;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\LanguageServices\InitializeParameter\InitializeParameterHelpersCore.cs (5)
66var containingType = parameter.ContainingType; 84var containingType = parameter.ContainingType; 146IOperation? operation, INamedTypeSymbol containingType, 163public static bool IsFieldOrPropertyAssignment(IOperation statement, INamedTypeSymbol containingType, [NotNullWhen(true)] out IAssignmentOperation? assignmentExpression) 167IOperation statement, INamedTypeSymbol containingType,
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\LanguageServices\SemanticsFactsService\AbstractSemanticFactsService.cs (7)
129var valueTaskType = compilation.ValueTaskType(); 165(INamedTypeSymbol?, IMethodSymbol?) GetIDisposableInterfaceAndDisposeMethod(string typeName, string methodName) 167var disposableType = compilation.GetBestTypeByMetadataName(typeName); 201public bool LastEnumValueHasInitializer(INamedTypeSymbol namedTypeSymbol) 225public bool IsPartial(INamedTypeSymbol typeSymbol, CancellationToken cancellationToken) 252public bool IsInExpressionTree(SemanticModel semanticModel, SyntaxNode node, INamedTypeSymbol? expressionTypeOpt, CancellationToken cancellationToken) 261public bool TryGetPrimaryConstructor(INamedTypeSymbol typeSymbol, [NotNullWhen(true)] out IMethodSymbol? primaryConstructor)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\LanguageServices\SyntaxGeneratorInternalExtensions\SyntaxGeneratorInternal.cs (1)
123public abstract SyntaxNode DeclarationPattern(INamedTypeSymbol type, string name);
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\LanguageServices\TypeInferenceService\AbstractTypeInferenceService.AbstractTypeInferrer.cs (1)
102protected static IEnumerable<TypeInferenceInfo> GetCollectionElementType(INamedTypeSymbol type)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\Simplification\SimplificationHelpers.cs (1)
80var typeSymbol = semanticModel.Compilation.GetSpecialType(specialType);
ILLink.CodeFixProvider (1)
BaseAttributeCodeFixProvider.cs (1)
142for (var t = m.ContainingType; t is not null; t = t.ContainingType)
ILLink.RoslynAnalyzer (66)
CompilationExtensions.cs (5)
40public static INamedTypeSymbol? GetBestTypeByMetadataName(this Compilation compilation, string fullyQualifiedMetadataName) 43var type = compilation.GetTypeByMetadataName(fullyQualifiedMetadataName); 55var currentType = referencedAssembly.GetTypeByMetadataName(fullyQualifiedMetadataName); 175public static INamedTypeSymbol? TaskType(this Compilation compilation) 177public static INamedTypeSymbol? TaskOfTType(this Compilation compilation)
DataFlow\DynamicallyAccessedMembersBinder.cs (4)
391foreach (var i in type.Interfaces) 432var baseType = type.BaseType; 446foreach (var iface in type.Interfaces) 449var interfaceType = iface;
DataFlow\LocalDataFlowAnalysis.cs (1)
86if (Context.OwningSymbol is INamedTypeSymbol { TypeKind: TypeKind.Delegate })
DataFlow\LocalDataFlowVisitor.cs (1)
179var assemblyType = Compilation.GetTypeByMetadataName("Microsoft.CSharp.RuntimeBinder.Binder");
DynamicallyAccessedMembersAnalyzer.cs (6)
140var type = (INamedTypeSymbol)context.Symbol; 152foreach (var interfaceType in type.Interfaces) 165VerifyDamOnInterfaceAndImplementationMethodsMatch(context, (INamedTypeSymbol)context.Symbol); 305private static void VerifyDamOnInterfaceAndImplementationMethodsMatch(SymbolAnalysisContext context, INamedTypeSymbol type) 312INamedTypeSymbol implementationType = implementationMethod.ContainingType;
DynamicallyAccessedMembersTypeHierarchy.cs (3)
18INamedTypeSymbol type, 27if (type.BaseType is INamedTypeSymbol baseType) 43foreach (var iface in type.AllInterfaces)
INamedTypeSymbolExtensions.cs (6)
15internal static bool HasName(this INamedTypeSymbol type, string typeName) 35internal static IEnumerable<(ISymbol InterfaceMember, ISymbol ImplementationMember)> GetMemberInterfaceImplementationPairs(this INamedTypeSymbol namedType) 38foreach (INamedTypeSymbol iface in interfaces) 47private static IEnumerable<(ISymbol InterfaceMember, ISymbol ImplementationMember)> GetMatchingMembers(INamedTypeSymbol implementationSymbol, INamedTypeSymbol interfaceSymbol) 57foreach (var iface in interfaceSymbol.Interfaces)
ISymbolExtensions.cs (2)
89if (featureGuardAttribute.ConstructorArguments is [TypedConstant { Value: INamedTypeSymbol featureType }]) 189if (symbol is not INamedTypeSymbol namedTypeSymbol)
ITypeSymbolExtensions.cs (3)
24if (type is not INamedTypeSymbol namedType) 31private static HierarchyFlags GetFlags(INamedTypeSymbol type) 45foreach (var iface in baseType.Interfaces)
RequiresAnalyzerBase.cs (9)
51var namedTypeSymbol = typeArgument as INamedTypeSymbol; 102var typeSymbol = (INamedTypeSymbol)symbolAnalysisContext.Symbol; 125INamedTypeSymbol type) 129var implementationType = memberpair.ImplementationMember switch 188var typeSymbol = (INamedTypeSymbol)context.Symbol; 215if (typeSymbol.BaseType is INamedTypeSymbol baseType)
RequiresAssemblyFilesAnalyzer.cs (3)
72var runtimeFeaturesType = compilation.GetTypeByMetadataName("ILLink.RoslynAnalyzer.TestFeatures"); 87var assemblyType = compilation.GetTypeByMetadataName("System.Reflection.Assembly"); 98var assemblyNameType = compilation.GetTypeByMetadataName("System.Reflection.AssemblyName");
RequiresDynamicCodeAnalyzer.cs (1)
168var runtimeFeaturesType = compilation.GetTypeByMetadataName("System.Runtime.CompilerServices.RuntimeFeature");
RequiresUnreferencedCodeAnalyzer.cs (1)
62var runtimeFeaturesType = compilation.GetTypeByMetadataName("ILLink.RoslynAnalyzer.TestFeatures");
TrimAnalysis\FlowAnnotations.cs (4)
138internal static DynamicallyAccessedMemberTypes GetTypeAnnotations(INamedTypeSymbol type) 143INamedTypeSymbol? baseType = type.BaseType; 151foreach (INamedTypeSymbol interfaceType in type.AllInterfaces) 229foreach (var interfaceType in type.AllInterfaces)
TrimAnalysis\GenericArgumentDataFlow.cs (5)
41public void ProcessGenericArgumentDataFlow(INamedTypeSymbol type) 86if (typeArgument is INamedTypeSymbol namedTypeArgument && namedTypeArgument.IsGenericType) 91public static bool RequiresGenericArgumentDataFlow(INamedTypeSymbol type) 100if (typeArgument is INamedTypeSymbol namedTypeSymbol && namedTypeSymbol.IsGenericType 120if (typeArgument is INamedTypeSymbol namedTypeSymbol && namedTypeSymbol.IsGenericType
TrimAnalysis\HandleCallAction.cs (2)
82public override bool VisitNamedType(INamedTypeSymbol symbol) 259var type = method.Method.ContainingType;
TrimAnalysis\MethodProxy.cs (1)
60if (type is not INamedTypeSymbol namedType)
TrimAnalysis\ReflectionAccessAnalyzer.cs (4)
19readonly INamedTypeSymbol? _typeHierarchyType; 26INamedTypeSymbol? typeHierarchyType) 132static bool IsDeclaredWithinType(ISymbol member, INamedTypeSymbol type) 134INamedTypeSymbol containingType = member.ContainingType;
TrimAnalysis\RequireDynamicallyAccessedMembersAction.cs (1)
53if (foundType is INamedTypeSymbol namedType && namedType.IsGenericType)
TrimAnalysis\SingleValueExtensions.cs (1)
18var underlyingType = (type as INamedTypeSymbol)?.TypeArguments.FirstOrDefault();
TrimAnalysis\TrimAnalysisGenericInstantiationPattern.cs (1)
59case INamedTypeSymbol type:
TrimAnalysis\TypeNameResolver.cs (1)
122if (ResolveTypeName(assembly, typeName.GetGenericTypeDefinition()) is not INamedTypeSymbol typeDefinition)
TrimAnalysis\TypeProxy.cs (1)
16if (Type is not INamedTypeSymbol namedType ||
Microsoft.Analyzers.Extra (44)
AsyncCallInsideUsingBlockAnalyzer.cs (4)
28var taskType = compilationContext.Compilation.GetTypeByMetadataName("System.Threading.Tasks.Task"); 29var taskOfTType = compilationContext.Compilation.GetTypeByMetadataName("System.Threading.Tasks.Task`1"); 30var valueTaskType = compilationContext.Compilation.GetTypeByMetadataName("System.Threading.Tasks.ValueTask"); 31var valueTaskOfTType = compilationContext.Compilation.GetTypeByMetadataName("System.Threading.Tasks.ValueTask`1");
AsyncMethodWithoutCancellation.cs (10)
28var taskType = compilationContext.Compilation.GetTypeByMetadataName("System.Threading.Tasks.Task"); 29var taskOfTType = compilationContext.Compilation.GetTypeByMetadataName("System.Threading.Tasks.Task`1"); 30var valueTaskType = compilationContext.Compilation.GetTypeByMetadataName("System.Threading.Tasks.ValueTask"); 31var valueTaskOfTType = compilationContext.Compilation.GetTypeByMetadataName("System.Threading.Tasks.ValueTask`1"); 42var cancellationTokenType = compilationContext.Compilation.GetTypeByMetadataName("System.Threading.CancellationToken"); 43var httpContextType = compilationContext.Compilation.GetTypeByMetadataName("Microsoft.AspNetCore.Http.HttpContext"); 44var connectionContextType = 46var obsoleteAttribute = 140var containingType = method.ContainingType; 141foreach (var @interface in containingType.AllInterfaces)
CallAnalysis\Arrays.cs (5)
83var freezer = reg.Compilation.GetTypeByMetadataName("System.Collections.Frozen.FrozenDictionary"); 101static void HandleMethod(OperationAnalysisContext context, IInvocationOperation op) => HandleSuspectType(context, (INamedTypeSymbol)op.TargetMethod.ReturnType, op.Syntax.GetLocation()); 103static void HandleConstructor(OperationAnalysisContext context, IObjectCreationOperation op) => HandleSuspectType(context, (INamedTypeSymbol)op.Type!, op.Syntax.GetLocation()); 105static void HandleSuspectType(OperationAnalysisContext context, INamedTypeSymbol type, Location loc) 114var flagsAttr = context.Compilation.GetTypeByMetadataName("System.FlagsAttribute");
CallAnalysis\CallAnalyzer.Handlers.cs (2)
41var type = target.ContainingType; 60foreach (var iface in type.AllInterfaces)
CallAnalysis\CallAnalyzer.Registrar.cs (5)
70var type = Compilation.GetTypeByMetadataName(pair.Key); 113var type = Compilation.GetTypeByMetadataName(typeName); 148var type = Compilation.GetTypeByMetadataName(pair.Key); 204var type = Compilation.GetTypeByMetadataName(pair.Key); 225var type = Compilation.GetTypeByMetadataName(et);
CallAnalysis\Fixers\LegacyLoggingFixer.cs (7)
42internal Func<Compilation, string, INamedTypeSymbol?> GetTypeByMetadataName1 = (c, n) => c.GetTypeByMetadataName(n); 43internal Func<Compilation, string, INamedTypeSymbol?> GetTypeByMetadataName2 = (c, n) => c.GetTypeByMetadataName(n); 44internal Func<Compilation, string, INamedTypeSymbol?> GetTypeByMetadataName3 = (c, n) => c.GetTypeByMetadataName(n); 89var loggerExtensions = GetTypeByMetadataName1(comp, "Microsoft.Extensions.Logging.LoggerExtensions"); 147var logMethodAttribute = GetTypeByMetadataName2(comp, LoggerMessageAttribute); 620var logMethodAttribute = GetTypeByMetadataName3(comp, LoggerMessageAttribute); 629var targetClassSymbol = semanticModel.GetDeclaredSymbol(targetClass, cancellationToken);
CallAnalysis\LegacyLogging.cs (1)
18var loggerExtensions = reg.Compilation.GetTypeByMetadataName("Microsoft.Extensions.Logging.LoggerExtensions");
CallAnalysis\Split.cs (1)
17var memExt = reg.Compilation.GetTypeByMetadataName("System.MemoryExtensions");
CallAnalysis\StartsEndsWith.cs (2)
19var stringType = reg.Compilation.GetSpecialType(SpecialType.System_String); 20var stringCompType = reg.Compilation.GetTypeByMetadataName("System.StringComparison");
CallAnalysis\ValueTuple.cs (1)
29var type = reg.Compilation.GetTypeByMetadataName("System.Tuple");
ConditionalAccessAnalyzer.cs (1)
30var maybeNull = compilationStartContext.Compilation.GetTypeByMetadataName("System.Diagnostics.CodeAnalysis.MaybeNullAttribute");
MakeExeTypesInternalAnalyzer.cs (3)
62var type = compilationStartContext.Compilation.GetTypeByMetadataName(name); 72var type = compilationStartContext.Compilation.GetTypeByMetadataName(name); 82var type = compilationStartContext.Compilation.GetTypeByMetadataName(name);
Utilities\CompilationExtensions.cs (1)
12var type = compilation.GetTypeByMetadataName("System.Environment");
Utilities\SymbolExtensions.cs (1)
63foreach (var iface in method.ContainingType.AllInterfaces)
Microsoft.Analyzers.Local (28)
ApiLifecycle\ApiLifecycleAnalyzer.cs (6)
52.Cast<INamedTypeSymbol>(); 55foreach (var type in types) 66var obsoleteAttribute = compilation.GetTypeByMetadataName(ObsoleteAttributeFullName); 146.Cast<INamedTypeSymbol>(); 148var obsoleteAttribute = context.Compilation.GetTypeByMetadataName(ObsoleteAttributeFullName); 150foreach (var type in types)
ApiLifecycle\AssemblyAnalysis.cs (5)
129public void AnalyzeType(INamedTypeSymbol type) 142var baseType = type.BaseType; 251var t = fieldSym.GetFieldOrPropertyType() as INamedTypeSymbol; 273private static string PrependModifiers(string typeSignature, INamedTypeSymbol type)
CallAnalysis\CallAnalyzer.Handlers.cs (2)
41var type = target.ContainingType; 60foreach (var iface in type.AllInterfaces)
CallAnalysis\CallAnalyzer.Registrar.cs (5)
70var type = Compilation.GetTypeByMetadataName(pair.Key); 113var type = Compilation.GetTypeByMetadataName(typeName); 148var type = Compilation.GetTypeByMetadataName(pair.Key); 204var type = Compilation.GetTypeByMetadataName(pair.Key); 225var type = Compilation.GetTypeByMetadataName(et);
CallAnalysis\ToInvariantString.cs (2)
26var formatProvider = reg.Compilation.GetTypeByMetadataName("System.IFormatProvider"); 46var cultureInfo = context.Compilation.GetTypeByMetadataName("System.Globalization.CultureInfo");
Utilities\SymbolExtensions.cs (8)
37public static bool HasAttribute(this ISymbol sym, INamedTypeSymbol attribute) 64public static bool IsContaminated(this ISymbol symbol, INamedTypeSymbol? contaminationAttribute) 83var container = symbol.ContainingType; 95if (symbol is INamedTypeSymbol type) 97var baseType = type.BaseType; 133var container = symbol.ContainingType; 145if (symbol is INamedTypeSymbol type) 147var baseType = type.BaseType;
Microsoft.AspNetCore.Analyzers (25)
BuildServiceProviderAnalyzer.cs (2)
23var type = (INamedTypeSymbol)context.Symbol;
ConfigureMethodVisitor.cs (2)
34foreach (var type in symbol.GetTypeMembers()) 45public override void VisitNamedType(INamedTypeSymbol symbol)
MiddlewareAnalysis.cs (1)
17public INamedTypeSymbol StartupType => ConfigureMethod.ContainingType;
OptionsAnalysis.cs (1)
17public INamedTypeSymbol StartupType => ConfigureServicesMethod.ContainingType;
OptionsItem.cs (1)
16public INamedTypeSymbol OptionsType => Property.ContainingType;
ServicesAnalysis.cs (1)
17public INamedTypeSymbol StartupType => ConfigureServicesMethod.ContainingType;
StartupAnalysis.cs (4)
11private readonly ImmutableDictionary<INamedTypeSymbol, ImmutableArray<object>> _analysesByType; 15ImmutableDictionary<INamedTypeSymbol, ImmutableArray<object>> analysesByType) 23public T? GetRelatedSingletonAnalysis<T>(INamedTypeSymbol type) where T : class 39public ImmutableArray<T> GetRelatedAnalyses<T>(INamedTypeSymbol type) where T : class
StartupAnalysisBuilder.cs (3)
12private readonly Dictionary<INamedTypeSymbol, List<object>> _analysesByType; 22_analysesByType = new Dictionary<INamedTypeSymbol, List<object>>(SymbolEqualityComparer.Default); 59private void ReportAnalysisCore(INamedTypeSymbol type, object analysis)
StartupAnalyzer.cs (2)
43var type = (INamedTypeSymbol)context.Symbol;
StartupFacts.cs (1)
11public static bool IsStartupClass(StartupSymbols symbols, INamedTypeSymbol type)
StartupSymbols.cs (3)
19public INamedTypeSymbol IApplicationBuilder { get; } 21public INamedTypeSymbol IServiceCollection { get; } 23public INamedTypeSymbol MvcOptions { get; }
UseAuthorizationAnalyzer.cs (2)
24var type = (INamedTypeSymbol)context.Symbol;
UseMvcAnalyzer.cs (2)
23var type = (INamedTypeSymbol)context.Symbol;
Microsoft.AspNetCore.App.Analyzers (105)
Authorization\AddAuthorizationBuilderAnalyzer.cs (1)
38var policyServiceCollectionExtensions = wellKnownTypes.Get(WellKnownType.Microsoft_Extensions_DependencyInjection_PolicyServiceCollectionExtensions);
Authorization\AuthorizationOptionsTypes.cs (1)
36public INamedTypeSymbol? AuthorizationOptions { get; }
Http\HeaderDictionaryIndexerAnalyzer.cs (1)
48private static bool IsIHeadersDictionaryType(INamedTypeSymbol type)
Http\RequestDelegateReturnTypeAnalyzer.cs (1)
81((INamedTypeSymbol)returnType).TypeArguments[0].ToString()));
Mvc\DetectOverriddenAuthorizeAttribute.cs (9)
27INamedTypeSymbol controllerSymbol, List<AttributeInfo> authorizeAttributes, out string? allowAnonClass) 114private static bool IsInheritableAttribute(WellKnownTypes wellKnownTypes, INamedTypeSymbol attribute) 117var attributeUsageAttributeType = wellKnownTypes.Get(WellKnownType.System_AttributeUsageAttribute); 135private static bool IsMatchingAttribute(WellKnownTypes wellKnownTypes, INamedTypeSymbol attribute, 136INamedTypeSymbol commonAttribute, ITypeSymbol attributeInterface, bool mustBeInheritable) 166var authInterfaceType = wellKnownTypes.Get(WellKnownType.Microsoft_AspNetCore_Authorization_IAuthorizeData); 167var authAttributeType = wellKnownTypes.Get(WellKnownType.Microsoft_AspNetCore_Authorization_AuthorizeAttribute); 182var anonInterfaceType = wellKnownTypes.Get(WellKnownType.Microsoft_AspNetCore_Authorization_IAllowAnonymous); 183var anonAttributeType = wellKnownTypes.Get(WellKnownType.Microsoft_AspNetCore_Authorization_AllowAnonymousAttribute);
Mvc\MvcAnalyzer.cs (2)
44var namedTypeSymbol = (INamedTypeSymbol)context.Symbol;
RouteEmbeddedLanguage\FrameworkParametersCompletionProvider.cs (2)
199if (methodSymbol?.ContainingType is not INamedTypeSymbol typeSymbol || 394if (parameterTypeSymbol is INamedTypeSymbol typeSymbol)
RouteEmbeddedLanguage\Infrastructure\MvcDetector.cs (2)
15public static bool IsController(INamedTypeSymbol? typeSymbol, WellKnownTypes wellKnownTypes) 30var disposable = wellKnownTypes.Get(SpecialType.System_IDisposable);
RouteEmbeddedLanguage\Infrastructure\RoutePatternParametersDetector.cs (3)
45var fromRouteMetadata = wellKnownTypes.Get(WellKnownType.Microsoft_AspNetCore_Http_Metadata_IFromRouteMetadata); 77if (child.GetParameterType() is not INamedTypeSymbol type) 89var attributeClass = attributeData.AttributeClass;
RouteEmbeddedLanguage\Infrastructure\RouteUsageDetector.cs (4)
138var classSymbol = semanticModel.GetDeclaredSymbol(classDeclarationSyntax, cancellationToken); 214if (methodSymbol?.ContainingType is not INamedTypeSymbol typeSymbol) 277var delegateSymbol = semanticModel.Compilation.GetSpecialType(SpecialType.System_Delegate); 290var stringSymbol = semanticModel.Compilation.GetSpecialType(SpecialType.System_String);
RouteHandlers\AtMostOneFromBodyAttribute.cs (2)
22var fromBodyMetadataInterfaceType = wellKnownTypes.Get(WellKnownType.Microsoft_AspNetCore_Http_Metadata_IFromBodyMetadata); 23var asParametersAttributeType = wellKnownTypes.Get(WellKnownType.Microsoft_AspNetCore_Http_AsParametersAttribute);
RouteHandlers\DisallowNonParsableComplexTypesOnParameters.cs (9)
27var fromServiceMetadataTypeSymbol = wellKnownTypes.Get(WellKnownType.Microsoft_AspNetCore_Http_Metadata_IFromServiceMetadata); 33var parameterTypeSymbol = ResolveParameterTypeSymbol(handlerDelegateParameter); 97static bool ReportFromAttributeDiagnostic(OperationAnalysisContext context, WellKnownType fromMetadataInterfaceType, WellKnownTypes wellKnownTypes, IParameterSymbol parameter, INamedTypeSymbol parameterTypeSymbol, Location location) 99var fromMetadataInterfaceTypeSymbol = wellKnownTypes.Get(fromMetadataInterfaceType); 116static INamedTypeSymbol? ResolveParameterTypeSymbol(IParameterSymbol parameterSymbol) 118INamedTypeSymbol? parameterTypeSymbol = null; 123parameterTypeSymbol = arrayTypeSymbol.ElementType as INamedTypeSymbol; 125else if (parameterSymbol.Type is INamedTypeSymbol namedTypeSymbol) 135parameterTypeSymbol = parameterTypeSymbol.TypeArguments[0] as INamedTypeSymbol;
RouteHandlers\DisallowReturningActionResultFromMapMethods.cs (1)
91if (returnType is not INamedTypeSymbol { Name: "Task" or "ValueTask", IsGenericType: true, TypeArguments: { Length: 1 } } taskLike)
src\aspnetcore\src\Shared\Roslyn\CodeAnalysisExtensions.cs (5)
109foreach (var @interface in target.AllInterfaces) 177public static INamedTypeSymbol? GetReceiverType( 194return invocation.TargetMethod.Parameters[0].Type as INamedTypeSymbol; 200static INamedTypeSymbol? GetReceiverType( 206return typeInfo?.Type as INamedTypeSymbol;
src\aspnetcore\src\Shared\Roslyn\MvcFacts.cs (6)
11public static bool IsController(INamedTypeSymbol type, INamedTypeSymbol controllerAttribute, INamedTypeSymbol nonControllerAttribute) 57public static bool IsControllerAction(IMethodSymbol method, INamedTypeSymbol nonActionAttribute, IMethodSymbol disposableDispose) 73var declaringType = GetDeclaringType(method); 102private static INamedTypeSymbol? GetDeclaringType(IMethodSymbol method)
src\aspnetcore\src\Shared\RoslynUtils\ParsabilityHelper.cs (7)
117var iParsableTypeSymbol = wellKnownTypes.Get(WellKnownType.System_IParsable_T); 126var iBindableFromHttpContextTypeSymbol = wellKnownTypes.Get(WellKnownType.Microsoft_AspNetCore_Http_IBindableFromHttpContext_T); 127var constructedTypeSymbol = typeSymbol.AllInterfaces.FirstOrDefault( 140methodSymbol.ReturnType is INamedTypeSymbol returnType && 152methodSymbol.ReturnType is INamedTypeSymbol returnType && 156private static bool IsReturningValueTaskOfTOrNullableT(INamedTypeSymbol returnType, ITypeSymbol containingType, WellKnownTypes wellKnownTypes) 214if (bindAsyncMethod.ReturnType is INamedTypeSymbol returnType && !IsReturningValueTaskOfTOrNullableT(returnType, typeSymbol, wellKnownTypes))
src\aspnetcore\src\Shared\RoslynUtils\SymbolExtensions.cs (23)
21INamedTypeSymbol? unwrappedTypeSymbol = null; 26unwrappedTypeSymbol = arrayTypeSymbol.ElementType as INamedTypeSymbol; 28else if (typeSymbol is INamedTypeSymbol namedTypeSymbol) 36unwrappedTypeSymbol = unwrappedTypeSymbol.TypeArguments[0] as INamedTypeSymbol; 52public static bool HasAttribute(this ISymbol symbol, INamedTypeSymbol attributeType) 65public static bool HasAttribute(this ImmutableArray<AttributeData> attributes, INamedTypeSymbol attributeType) 70public static bool HasAttribute(this ITypeSymbol typeSymbol, INamedTypeSymbol attributeSymbol) 89public static bool TryGetAttribute(this ImmutableArray<AttributeData> attributes, INamedTypeSymbol attributeType, [NotNullWhen(true)] out AttributeData? matchedAttribute) 104public static bool HasAttributeImplementingInterface(this ISymbol symbol, INamedTypeSymbol interfaceType) 109public static bool TryGetAttributeImplementingInterface(this ISymbol symbol, INamedTypeSymbol interfaceType, [NotNullWhen(true)] out AttributeData? matchedAttribute) 124public static bool HasAttributeImplementingInterface(this ImmutableArray<AttributeData> attributes, INamedTypeSymbol interfaceType) 129public static bool TryGetAttributeImplementingInterface(this ImmutableArray<AttributeData> attributes, INamedTypeSymbol interfaceType, [NotNullWhen(true)] out AttributeData? matchedAttribute) 144public static bool HasAttributeInheritingFrom(this ISymbol symbol, INamedTypeSymbol baseType) 149public static bool TryGetAttributeInheritingFrom(this ISymbol symbol, INamedTypeSymbol baseType, [NotNullWhen(true)] out AttributeData? matchedAttribute) 154public static bool HasAttributeInheritingFrom(this ImmutableArray<AttributeData> attributes, INamedTypeSymbol baseType) 159public static bool TryGetAttributeInheritingFrom(this ImmutableArray<AttributeData> attributes, INamedTypeSymbol baseType, [NotNullWhen(true)] out AttributeData? matchedAttribute) 176foreach (var t in type.AllInterfaces) 198public static bool IsType(this INamedTypeSymbol type, string typeName, SemanticModel semanticModel) 201public static bool IsType(this INamedTypeSymbol type, INamedTypeSymbol otherType) 226parameterSymbol.Type is INamedTypeSymbol 232propertySymbol.Type is INamedTypeSymbol 318typeSymbol is INamedTypeSymbol namedType)
src\aspnetcore\src\Shared\RoslynUtils\WellKnownTypes.cs (13)
20private readonly INamedTypeSymbol?[] _lazyWellKnownTypes; 22private readonly INamedTypeSymbol _missingTypeSymbol; 53_lazyWellKnownTypes = new INamedTypeSymbol?[WellKnownTypeData.WellKnownTypeNames.Length]; 58public INamedTypeSymbol Get(SpecialType type) 66public INamedTypeSymbol Get(WellKnownTypeData.WellKnownType type) 79public INamedTypeSymbol GetOptional(WellKnownTypeData.WellKnownType type) 84private INamedTypeSymbol Get(WellKnownTypeData.WellKnownType type, bool throwOnNotFound) 87var symbol = _lazyWellKnownTypes[index]; 98private INamedTypeSymbol GetAndCache(int index, bool throwOnNotFound) 100var result = GetTypeByMetadataNameInTargetAssembly(WellKnownTypeData.WellKnownTypeNames[index]); 119private INamedTypeSymbol? GetTypeByMetadataNameInTargetAssembly(string metadataName) 134foreach (var type in types) 182foreach (var t in type.AllInterfaces)
WebApplicationBuilder\WebApplicationBuilderAnalyzer.cs (13)
41INamedTypeSymbol[] configureTypes = { wellKnownTypes.Get(WellKnownType.Microsoft_AspNetCore_Hosting_WebHostBuilderExtensions) }; 42INamedTypeSymbol[] configureWebHostTypes = { wellKnownTypes.Get(WellKnownType.Microsoft_Extensions_Hosting_GenericHostWebHostBuilderExtensions) }; 43INamedTypeSymbol[] userStartupTypes = 48INamedTypeSymbol[] configureLoggingTypes = 53INamedTypeSymbol[] configureServicesTypes = 58INamedTypeSymbol[] configureAppTypes = 65INamedTypeSymbol[] configureHostTypes = { wellKnownTypes.Get(WellKnownType.Microsoft_AspNetCore_Builder_ConfigureHostBuilder) }; 66INamedTypeSymbol[] useEndpointTypes = 315INamedTypeSymbol disallowedReceiverType, 317INamedTypeSymbol[] disallowedMethodTypes) 324var receiverType = invocation.GetReceiverType(context.CancellationToken); 341INamedTypeSymbol[] disallowedMethodTypes) 351var type = disallowedMethodTypes[i];
Microsoft.AspNetCore.App.SourceGenerators (1)
PublicTopLevelProgramGenerator.cs (1)
26compilation.GetEntryPoint(cancellationToken)?.ContainingSymbol is INamedTypeSymbol
Microsoft.AspNetCore.Components.Analyzers (62)
ComponentFacts.cs (3)
130public static bool IsComponentBase(ComponentSymbols symbols, INamedTypeSymbol type) 148var current = type.BaseType; 161public static bool IsComponent(ComponentSymbols symbols, Compilation compilation, INamedTypeSymbol type)
ComponentParameterAnalyzer.cs (2)
54var type = (INamedTypeSymbol)context.Symbol;
ComponentParameterUsageAnalyzer.cs (2)
75var propertyContainingType = componentProperty.ContainingType; 82var assignmentContainingType = startBlockContext.OwningSymbol?.ContainingType;
ComponentSymbols.cs (24)
18var parameterAttribute = compilation.GetTypeByMetadataName(ComponentsApi.ParameterAttribute.MetadataName); 25var cascadingParameterAttribute = compilation.GetTypeByMetadataName(ComponentsApi.CascadingParameterAttribute.MetadataName); 32var icomponentType = compilation.GetTypeByMetadataName(ComponentsApi.IComponent.MetadataName); 39var dictionary = compilation.GetTypeByMetadataName("System.Collections.Generic.Dictionary`2"); 40var @string = compilation.GetSpecialType(SpecialType.System_String); 41var @object = compilation.GetSpecialType(SpecialType.System_Object); 48var parameterCaptureUnmatchedValuesRuntimeType = dictionary.Construct(@string, @object); 51var supplyParameterFromFormAttribute = compilation.GetTypeByMetadataName(ComponentsApi.SupplyParameterFromFormAttribute.MetadataName); 52var persistentStateAttribute = compilation.GetTypeByMetadataName(ComponentsApi.PersistentStateAttribute.MetadataName); 53var componentBaseType = compilation.GetTypeByMetadataName(ComponentsApi.ComponentBase.MetadataName); 67INamedTypeSymbol parameterAttribute, 68INamedTypeSymbol cascadingParameterAttribute, 69INamedTypeSymbol supplyParameterFromFormAttribute, 70INamedTypeSymbol persistentStateAttribute, 71INamedTypeSymbol componentBaseType, 72INamedTypeSymbol parameterCaptureUnmatchedValuesRuntimeType, 73INamedTypeSymbol icomponentType) 84public INamedTypeSymbol ParameterAttribute { get; } 87public INamedTypeSymbol ParameterCaptureUnmatchedValuesRuntimeType { get; } 89public INamedTypeSymbol CascadingParameterAttribute { get; } 91public INamedTypeSymbol SupplyParameterFromFormAttribute { get; } // Can be null if not available 93public INamedTypeSymbol PersistentStateAttribute { get; } // Can be null if not available 95public INamedTypeSymbol ComponentBaseType { get; } // Can be null if not available 97public INamedTypeSymbol IComponentType { get; }
InternalUsageAnalyzer.cs (5)
84case INamedTypeSymbol type: 86foreach (var @interface in type.Interfaces) 144var containingType = symbol.ContainingType; 173var containingType = symbol as INamedTypeSymbol ?? symbol.ContainingType;
InvokeAsyncOfObjectAnalyzer.cs (21)
35var ijsRuntimeType = compilationContext.Compilation.GetTypeByMetadataName("Microsoft.JSInterop.IJSRuntime"); 36var ijsObjectReferenceType = compilationContext.Compilation.GetTypeByMetadataName("Microsoft.JSInterop.IJSObjectReference"); 37var ijsInProcessRuntimeType = compilationContext.Compilation.GetTypeByMetadataName("Microsoft.JSInterop.IJSInProcessRuntime"); 38var ijsInProcessObjectReferenceType = compilationContext.Compilation.GetTypeByMetadataName("Microsoft.JSInterop.IJSInProcessObjectReference"); 39var jsRuntimeExtensionsType = compilationContext.Compilation.GetTypeByMetadataName(JSRuntimeExtensionsTypeName); 40var jsObjectReferenceExtensionsType = compilationContext.Compilation.GetTypeByMetadataName(JSObjectReferenceExtensionsTypeName); 41var jsInProcessRuntimeExtensionsType = compilationContext.Compilation.GetTypeByMetadataName(JSInProcessRuntimeExtensionsTypeName); 42var jsInProcessObjectReferenceExtensionsType = compilationContext.Compilation.GetTypeByMetadataName(JSInProcessObjectReferenceExtensionsTypeName); 43var objectType = compilationContext.Compilation.GetSpecialType(SpecialType.System_Object); 71var containingType = targetMethod.ContainingType; 101INamedTypeSymbol? ijsRuntimeType, 102INamedTypeSymbol? ijsObjectReferenceType, 103INamedTypeSymbol? ijsInProcessRuntimeType, 104INamedTypeSymbol? ijsInProcessObjectReferenceType) 135private static bool ImplementsInterface(ITypeSymbol type, INamedTypeSymbol interfaceType) 142foreach (var iface in type.AllInterfaces) 154INamedTypeSymbol containingType, 155INamedTypeSymbol? jsRuntimeExtensionsType, 156INamedTypeSymbol? jsObjectReferenceExtensionsType, 157INamedTypeSymbol? jsInProcessRuntimeExtensionsType, 158INamedTypeSymbol? jsInProcessObjectReferenceExtensionsType)
PersistentStateAnalyzer.cs (1)
67var containingType = propertySymbol.ContainingType;
SupplyParameterFromFormAnalyzer.cs (1)
67var containingType = propertySymbol.ContainingType;
VirtualizeItemComparerAnalyzer.cs (3)
33var virtualizeType = compilationContext.Compilation.GetTypeByMetadataName(VirtualizeTypeName); 34var renderTreeBuilderType = compilationContext.Compilation.GetTypeByMetadataName(RenderTreeBuilderTypeName); 62var originalDef = typeArg is INamedTypeSymbol namedType && namedType.IsGenericType
Microsoft.AspNetCore.Components.SdkAnalyzers (25)
ComponentFacts.cs (1)
90public static bool IsComponent(ComponentSymbols symbols, Compilation compilation, INamedTypeSymbol type)
ComponentParameterAnalyzer.cs (2)
48var type = (INamedTypeSymbol)context.Symbol;
ComponentParameterUsageAnalyzer.cs (2)
75var propertyContainingType = componentProperty.ContainingType; 82var assignmentContainingType = startBlockContext.OwningSymbol?.ContainingType;
ComponentSymbols.cs (15)
18var parameterAttribute = compilation.GetTypeByMetadataName(ComponentsApi.ParameterAttribute.MetadataName); 25var cascadingParameterAttribute = compilation.GetTypeByMetadataName(ComponentsApi.CascadingParameterAttribute.MetadataName); 32var icomponentType = compilation.GetTypeByMetadataName(ComponentsApi.IComponent.MetadataName); 39var dictionary = compilation.GetTypeByMetadataName("System.Collections.Generic.Dictionary`2"); 40var @string = compilation.GetSpecialType(SpecialType.System_String); 41var @object = compilation.GetSpecialType(SpecialType.System_Object); 48var parameterCaptureUnmatchedValuesRuntimeType = dictionary.Construct(@string, @object); 59INamedTypeSymbol parameterAttribute, 60INamedTypeSymbol cascadingParameterAttribute, 61INamedTypeSymbol parameterCaptureUnmatchedValuesRuntimeType, 62INamedTypeSymbol icomponentType) 70public INamedTypeSymbol ParameterAttribute { get; } 71public INamedTypeSymbol ParameterCaptureUnmatchedValuesRuntimeType { get; } 73public INamedTypeSymbol CascadingParameterAttribute { get; } 75public INamedTypeSymbol IComponentType { get; }
InternalUsageAnalyzer.cs (5)
84case INamedTypeSymbol type: 86foreach (var @interface in type.Interfaces) 144var containingType = symbol.ContainingType; 173var containingType = symbol as INamedTypeSymbol ?? symbol.ContainingType;
Microsoft.AspNetCore.Mvc.Analyzers (60)
AttributesShouldNotBeAppliedToPageModelAnalyzer.cs (15)
42var declaringType = method.ContainingType; 57var type = (INamedTypeSymbol)context.Symbol; 75private static bool IsPageModel(INamedTypeSymbol type, INamedTypeSymbol pageAttributeModel) 82private static void ReportRouteDiagnosticOnModel(SymbolAnalysisContext context, INamedTypeSymbol typeSymbol, INamedTypeSymbol routeAttribute) 96private static void ReportRouteDiagnostic(SymbolAnalysisContext context, IMethodSymbol method, INamedTypeSymbol routeAttribute) 110private static void ReportFilterDiagnostic(SymbolAnalysisContext context, IMethodSymbol method, INamedTypeSymbol filterAttribute) 124private static AttributeData? GetAttribute(ISymbol symbol, INamedTypeSymbol attributeType) 154public INamedTypeSymbol PageModelAttribute { get; } 156public INamedTypeSymbol IFilterMetadata { get; } 158public INamedTypeSymbol AuthorizeAttribute { get; } 160public INamedTypeSymbol AllowAnonymousAttribute { get; } 162public INamedTypeSymbol IRouteTemplateProvider { get; }
src\aspnetcore\src\Shared\Roslyn\CodeAnalysisExtensions.cs (5)
109foreach (var @interface in target.AllInterfaces) 177public static INamedTypeSymbol? GetReceiverType( 194return invocation.TargetMethod.Parameters[0].Type as INamedTypeSymbol; 200static INamedTypeSymbol? GetReceiverType( 206return typeInfo?.Type as INamedTypeSymbol;
src\aspnetcore\src\Shared\Roslyn\MvcFacts.cs (6)
11public static bool IsController(INamedTypeSymbol type, INamedTypeSymbol controllerAttribute, INamedTypeSymbol nonControllerAttribute) 57public static bool IsControllerAction(IMethodSymbol method, INamedTypeSymbol nonActionAttribute, IMethodSymbol disposableDispose) 73var declaringType = GetDeclaringType(method); 102private static INamedTypeSymbol? GetDeclaringType(IMethodSymbol method)
TagHelpersInCodeBlocksAnalyzer.cs (5)
137INamedTypeSymbol taskType) 145public INamedTypeSymbol TaskType { get; } 151if (!TryGetType(SymbolNames.TagHelperRunnerTypeName, out var tagHelperRunnerType)) 156if (!TryGetType(SymbolNames.TaskTypeName, out var taskType)) 172bool TryGetType(string typeName, out INamedTypeSymbol typeSymbol)
TopLevelParameterNameAnalyzer.cs (26)
212INamedTypeSymbol bindAttribute, 213INamedTypeSymbol controllerAttribute, 214INamedTypeSymbol fromBodyAttribute, 215INamedTypeSymbol apiBehaviorMetadata, 216INamedTypeSymbol binderTypeProviderMetadata, 217INamedTypeSymbol modelNameProvider, 218INamedTypeSymbol nonControllerAttribute, 219INamedTypeSymbol nonActionAttribute, 237if (!TryGetType(SymbolNames.BindAttribute, out var bindAttribute)) 242if (!TryGetType(SymbolNames.ControllerAttribute, out var controllerAttribute)) 247if (!TryGetType(SymbolNames.FromBodyAttribute, out var fromBodyAttribute)) 252if (!TryGetType(SymbolNames.IApiBehaviorMetadata, out var apiBehaviorMetadata)) 257if (!TryGetType(SymbolNames.IBinderTypeProviderMetadata, out var iBinderTypeProviderMetadata)) 262if (!TryGetType(SymbolNames.IModelNameProvider, out var iModelNameProvider)) 267if (!TryGetType(SymbolNames.NonControllerAttribute, out var nonControllerAttribute)) 272if (!TryGetType(SymbolNames.NonActionAttribute, out var nonActionAttribute)) 277var disposable = compilation.GetSpecialType(SpecialType.System_IDisposable); 298bool TryGetType(string typeName, out INamedTypeSymbol typeSymbol) 305public INamedTypeSymbol BindAttribute { get; } 306public INamedTypeSymbol ControllerAttribute { get; } 307public INamedTypeSymbol FromBodyAttribute { get; } 308public INamedTypeSymbol IApiBehaviorMetadata { get; } 309public INamedTypeSymbol IBinderTypeProviderMetadata { get; } 310public INamedTypeSymbol IModelNameProvider { get; } 311public INamedTypeSymbol NonControllerAttribute { get; } 312public INamedTypeSymbol NonActionAttribute { get; }
ViewFeaturesAnalyzerContext.cs (3)
22public INamedTypeSymbol HtmlHelperType { get; } 24public INamedTypeSymbol HtmlHelperPartialExtensionsType { get; } 26private INamedTypeSymbol GetType(string name) => Context.Compilation.GetTypeByMetadataName(name);
Microsoft.AspNetCore.Mvc.Api.Analyzers (60)
ActualApiResponseMetadataFactory.cs (1)
65var defaultStatusCodeAttributeSymbol = symbolCache.DefaultStatusCodeAttribute;
AddResponseTypeAttributeCodeFixAction.cs (2)
135var statusCodesType = semanticModel.Compilation.GetTypeByMetadataName(ApiSymbolNames.HttpStatusCodes); 147private static Dictionary<int, string> GetStatusCodeConstants(INamedTypeSymbol statusCodesType)
ApiControllerSymbolCache.cs (46)
15if (!TryGetType(ApiSymbolNames.ApiConventionMethodAttribute, out var apiConventionMethodAttribute)) 20if (!TryGetType(ApiSymbolNames.ApiConventionNameMatchAttribute, out var apiConventionNameMatchAttribute)) 25if (!TryGetType(ApiSymbolNames.ApiConventionTypeAttribute, out var apiConventionTypeAttribute)) 30if (!TryGetType(ApiSymbolNames.ApiConventionTypeMatchAttribute, out var apiConventionTypeMatchAttribute)) 35if (!TryGetType(ApiSymbolNames.ControllerAttribute, out var controllerAttribute)) 40if (!TryGetType(ApiSymbolNames.DefaultStatusCodeAttribute, out var defaultStatusCodeAttribute)) 45if (!TryGetType(ApiSymbolNames.IActionResult, out var iActionResult)) 50if (!TryGetType(ApiSymbolNames.IApiBehaviorMetadata, out var iApiBehaviorMetadata)) 55if (!TryGetType(ApiSymbolNames.ModelStateDictionary, out var modelStateDictionary)) 60if (!TryGetType(ApiSymbolNames.NonActionAttribute, out var nonActionAttribute)) 65if (!TryGetType(ApiSymbolNames.NonControllerAttribute, out var nonControllerAttribute)) 70if (!TryGetType(ApiSymbolNames.ProblemDetails, out var problemDetails)) 75if (!TryGetType(ApiSymbolNames.ProducesDefaultResponseTypeAttribute, out var producesDefaultResponseTypeAttribute)) 80if (!TryGetType(ApiSymbolNames.ProducesErrorResponseTypeAttribute, out var producesErrorResponseTypeAttribute)) 85if (!TryGetType(ApiSymbolNames.ProducesResponseTypeAttribute, out var producesResponseTypeAttribute)) 90var statusCodeActionResult = compilation.GetTypeByMetadataName(ApiSymbolNames.IStatusCodeActionResult); 97var disposable = compilation.GetSpecialType(SpecialType.System_IDisposable); 126bool TryGetType(string typeName, out INamedTypeSymbol typeSymbol) 134INamedTypeSymbol apiConventionMethodAttribute, 135INamedTypeSymbol apiConventionNameMatchAttribute, 136INamedTypeSymbol apiConventionTypeAttribute, 137INamedTypeSymbol apiConventionTypeMatchAttribute, 138INamedTypeSymbol controllerAttribute, 139INamedTypeSymbol defaultStatusCodeAttribute, 140INamedTypeSymbol actionResult, 141INamedTypeSymbol apiBehaviorMetadata, 145INamedTypeSymbol nonActionAttribute, 146INamedTypeSymbol nonControllerAttribute, 147INamedTypeSymbol problemDetails, 148INamedTypeSymbol producesDefaultResponseTypeAttribute, 149INamedTypeSymbol producesResponseTypeAttribute, 150INamedTypeSymbol producesErrorResponseTypeAttribute) 171public INamedTypeSymbol ApiConventionMethodAttribute { get; } 173public INamedTypeSymbol ApiConventionNameMatchAttribute { get; } 175public INamedTypeSymbol ApiConventionTypeAttribute { get; } 177public INamedTypeSymbol ApiConventionTypeMatchAttribute { get; } 179public INamedTypeSymbol ControllerAttribute { get; } 181public INamedTypeSymbol DefaultStatusCodeAttribute { get; } 183public INamedTypeSymbol IActionResult { get; } 185public INamedTypeSymbol IApiBehaviorMetadata { get; } 193public INamedTypeSymbol NonActionAttribute { get; } 195public INamedTypeSymbol NonControllerAttribute { get; } 197public INamedTypeSymbol ProblemDetails { get; } 199public INamedTypeSymbol ProducesDefaultResponseTypeAttribute { get; } 201public INamedTypeSymbol ProducesResponseTypeAttribute { get; } 203public INamedTypeSymbol ProducesErrorResponseTypeAttribute { get; }
src\aspnetcore\src\Shared\Roslyn\CodeAnalysisExtensions.cs (5)
109foreach (var @interface in target.AllInterfaces) 177public static INamedTypeSymbol? GetReceiverType( 194return invocation.TargetMethod.Parameters[0].Type as INamedTypeSymbol; 200static INamedTypeSymbol? GetReceiverType( 206return typeInfo?.Type as INamedTypeSymbol;
src\aspnetcore\src\Shared\Roslyn\MvcFacts.cs (6)
11public static bool IsController(INamedTypeSymbol type, INamedTypeSymbol controllerAttribute, INamedTypeSymbol nonControllerAttribute) 57public static bool IsControllerAction(IMethodSymbol method, INamedTypeSymbol nonActionAttribute, IMethodSymbol disposableDispose) 73var declaringType = GetDeclaringType(method); 102private static INamedTypeSymbol? GetDeclaringType(IMethodSymbol method)
Microsoft.AspNetCore.OpenApi.SourceGenerators (17)
Helpers\AssemblyTypeSymbolsVisitor.cs (4)
18private readonly HashSet<INamedTypeSymbol> _exportedTypes = new(SymbolEqualityComparer.Default); 22public ImmutableArray<INamedTypeSymbol> GetPublicTypes() => [.. _exportedTypes]; 43public override void VisitNamedType(INamedTypeSymbol type) 54foreach (var nestedType in nestedTypes)
Helpers\ISymbolExtensions.cs (9)
23foreach (var iface in symbol.ContainingType.AllInterfaces) 68INamedTypeSymbol nt => nt.TypeParameters, 77var containingType = symbol.ContainingType; 91INamedTypeSymbol nt => nt.TypeArguments, 118foreach (var baseType in symbol.ContainingType.GetBaseTypes()) 129static bool TryFindLooseMatch(ISymbol symbol, INamedTypeSymbol baseType, [NotNullWhen(true)] out ISymbol? looseMatch) 183public static IEnumerable<INamedTypeSymbol> GetBaseTypes(this ITypeSymbol? type) 185var current = type?.BaseType; 202var containingType = symbol.ContainingType;
XmlCommentGenerator.Parser.cs (2)
79foreach (var type in types) 127symbol is not INamedTypeSymbol { TypeKind: TypeKind.Class, IsStatic: true })
XmlComments\XmlComment.InheritDoc.cs (2)
284var baseType = memberSymbol.ContainingType.BaseType; 295else if (memberSymbol is INamedTypeSymbol typeSymbol)
Microsoft.CodeAnalysis (143)
CodeGen\PermissionSetAttribute.cs (1)
85Debug.Assert(((INamedTypeSymbol)iSymbol).GetMembers(HexPropertyName).Any(
Compilation\Compilation.cs (43)
366public INamedTypeSymbol CreateErrorTypeSymbol(INamespaceOrTypeSymbol? container, string name, int arity) 381protected abstract INamedTypeSymbol CommonCreateErrorTypeSymbol(INamespaceOrTypeSymbol? container, string name, int arity); 992public INamedTypeSymbol GetSpecialType(SpecialType specialType) 999return (INamedTypeSymbol)CommonGetSpecialType(specialType).GetITypeSymbol(); 1033public INamedTypeSymbol ObjectType { get { return CommonObjectType; } } 1034protected abstract INamedTypeSymbol CommonObjectType { get; } 1053public INamedTypeSymbol? ScriptClass { get { return CommonScriptClass; } } 1054protected abstract INamedTypeSymbol? CommonScriptClass { get; } 1061protected INamedTypeSymbol? CommonBindScriptClass() 1080foreach (INamedTypeSymbol candidate in container.GetTypeMembers(parts[parts.Length - 1])) 1153ImmutableArray<INamedTypeSymbol> callingConventionTypes = default) 1164ImmutableArray<INamedTypeSymbol> callingConventionTypes); 1170public INamedTypeSymbol CreateNativeIntegerTypeSymbol(bool signed) 1175protected abstract INamedTypeSymbol CommonCreateNativeIntegerTypeSymbol(bool signed); 1183private ConcurrentCache<string, INamedTypeSymbol?>? _getTypeCache; 1185private ConcurrentCache<string, ImmutableArray<INamedTypeSymbol>>? _getTypesCache; 1227public INamedTypeSymbol? GetTypeByMetadataName(string fullyQualifiedMetadataName) 1230ref _getTypeCache, static () => new ConcurrentCache<string, INamedTypeSymbol?>(50, ReferenceEqualityComparer.Instance)); 1232if (!getTypeCache.TryGetValue(fullyQualifiedMetadataName, out INamedTypeSymbol? val)) 1237|| !getTypeCache.TryGetValue(fullyQualifiedMetadataName, out var addedType) // Could fail if the type was already evicted from the cache 1243protected abstract INamedTypeSymbol? CommonGetTypeByMetadataName(string metadataName); 1258public ImmutableArray<INamedTypeSymbol> GetTypesByMetadataName(string fullyQualifiedMetadataName) 1261ref _getTypesCache, static () => new ConcurrentCache<string, ImmutableArray<INamedTypeSymbol>>(50, ReferenceEqualityComparer.Instance)); 1263if (!getTypesCache.TryGetValue(fullyQualifiedMetadataName, out ImmutableArray<INamedTypeSymbol> val)) 1274ImmutableArray<INamedTypeSymbol> getTypesByMetadataNameImpl() 1276ArrayBuilder<INamedTypeSymbol>? typesByMetadataName = null; 1299return typesByMetadataName?.ToImmutableAndFree() ?? ImmutableArray<INamedTypeSymbol>.Empty; 1301void addIfNotNull(INamedTypeSymbol? toAdd) 1305typesByMetadataName ??= ArrayBuilder<INamedTypeSymbol>.GetInstance(); 1316public INamedTypeSymbol CreateTupleTypeSymbol( 1357public INamedTypeSymbol CreateTupleTypeSymbol( 1421protected abstract INamedTypeSymbol CommonCreateTupleTypeSymbol( 1433public INamedTypeSymbol CreateTupleTypeSymbol( 1434INamedTypeSymbol underlyingType, 1453public INamedTypeSymbol CreateTupleTypeSymbol( 1454INamedTypeSymbol underlyingType, 1461protected abstract INamedTypeSymbol CommonCreateTupleTypeSymbol( 1462INamedTypeSymbol underlyingType, 1473public INamedTypeSymbol CreateAnonymousTypeSymbol( 1542public INamedTypeSymbol CreateAnonymousTypeSymbol( 1551protected abstract INamedTypeSymbol CommonCreateAnonymousTypeSymbol( 1633/// compilation. <paramref name="within"/> is required to be an <see cref="INamedTypeSymbol"/> or <see cref="IAssemblySymbol"/>. 1661if (!(within is INamedTypeSymbol || within is IAssemblySymbol))
Compilation\Expression.cs (1)
43return SynthesizeNumeric(((INamedTypeSymbol)type).EnumUnderlyingType!, value);
Compilation\SemanticModel.cs (2)
409/// <item>in the case of type declarations with a primary constructor, both the <see cref="INamedTypeSymbol"/> 430/// <item>in the case of type declarations with a primary constructor, both the <see cref="INamedTypeSymbol"/>
DiagnosticAnalyzer\AnalyzerDriver.cs (3)
316private INamedTypeSymbol? _lazyGeneratedCodeAttribute; 1328static ImmutableHashSet<ISymbol> computeGeneratedCodeSymbolsInTree(SyntaxTree tree, Compilation compilation, INamedTypeSymbol generatedCodeAttribute, CancellationToken cancellationToken) 1714for (var type = symbol.ContainingType; type != null; type = type.ContainingType)
DiagnosticAnalyzer\AnalyzerManager.AnalyzerExecutionContext.cs (2)
188processMembers(((INamedTypeSymbol)symbol).GetMembers()); 213if (member is INamedTypeSymbol typeMember)
DiagnosticAnalyzer\DiagnosticStartAnalysisScope.cs (2)
561var namedType = (INamedTypeSymbol)context.Symbol;
DiagnosticAnalyzer\SuppressMessageAttributeState.TargetSymbolResolver.cs (7)
560for (var containingType = bindingContext.ContainingType; containingType != null; containingType = containingType.ContainingType) 640INamedTypeSymbol typeSymbol = GetFirstMatchingNamedType(candidateMembers, arity); 821private static INamedTypeSymbol GetFirstMatchingNamedType(ImmutableArray<ISymbol> candidateMembers, int arity) 823return (INamedTypeSymbol)candidateMembers.FirstOrDefault(s => 825((INamedTypeSymbol)s).Arity == arity); 836private static ITypeParameterSymbol GetNthTypeParameter(INamedTypeSymbol typeSymbol, int n) 854private static int GetTypeParameterCount(INamedTypeSymbol typeSymbol)
DocumentationCommentId.cs (21)
267private static int GetTotalTypeParameterCount(INamedTypeSymbol? symbol) 273symbol = symbol.ContainingSymbol as INamedTypeSymbol; 329/// This will always succeed for a <see cref="INamespaceSymbol"/> or <see cref="INamedTypeSymbol"/>. It may not 387public override void VisitNamedType(INamedTypeSymbol symbol) 533public override bool VisitNamedType(INamedTypeSymbol symbol) 576if (symbol is INamedTypeSymbol { IsExtension: true } extension) 602public override bool VisitNamedType(INamedTypeSymbol symbol) 616private void AppendArityOrTypeArguments(INamedTypeSymbol symbol) 686Debug.Assert(symbol.ContainingSymbol is null or INamedTypeSymbol or IMethodSymbol); 703var b = GetTotalTypeParameterCount(container as INamedTypeSymbol); 1030var typeContext = methodContext != null ? methodContext.ContainingType : typeParameterContext as INamedTypeSymbol; 1081results[i] = ((INamedTypeSymbol)results[i]).Construct(typeArgs); 1199&& container is INamedTypeSymbol { IsExtension: true } extension 1213var namedType = (INamedTypeSymbol)symbol; 1238if (symbol.Kind == SymbolKind.Namespace || (symbol.Kind == SymbolKind.NamedType && ((INamedTypeSymbol)symbol).Arity == 0)) 1254ImmutableArray<INamedTypeSymbol> unnamedNamedTypes = container.GetTypeMembers(""); 1255foreach (var namedType in unnamedNamedTypes) 1475private static ITypeParameterSymbol? GetNthTypeParameter(INamedTypeSymbol typeSymbol, int n) 1493private static int GetTypeParameterCount(INamedTypeSymbol typeSymbol)
Operations\ControlFlowGraphBuilder.Context.cs (2)
21public readonly INamedTypeSymbol? AnonymousType; 24internal Context(IOperation? implicitInstance, INamedTypeSymbol? anonymousType, ImmutableArray<KeyValuePair<IPropertySymbol, IOperation>> anonymousTypePropertyValues)
Operations\ControlFlowGraphBuilder.cs (9)
2421INamedTypeSymbol booleanType = _compilation.GetSpecialType(SpecialType.System_Boolean); 2479INamedTypeSymbol booleanType = _compilation.GetSpecialType(SpecialType.System_Boolean); 2580INamedTypeSymbol booleanType = _compilation.GetSpecialType(SpecialType.System_Boolean); 3140((INamedTypeSymbol)operation.Target.Type!).TypeArguments[0].Equals(operation.Type)) 5477INamedTypeSymbol booleanType = _compilation.GetSpecialType(SpecialType.System_Boolean); 6390_currentImplicitInstance = new ImplicitInstanceInfo((INamedTypeSymbol)operation.Type); 7782INamedTypeSymbol booleanType = _compilation.GetSpecialType(SpecialType.System_Boolean); 8063var type = (INamedTypeSymbol)operation.Type;
Operations\ControlFlowGraphBuilder.ImplicitInstanceInfo.cs (2)
28public INamedTypeSymbol? AnonymousType { get; } 43public ImplicitInstanceInfo(INamedTypeSymbol currentInitializedAnonymousType)
SourceGeneration\GeneratedCodeUtilities.cs (1)
19ISymbol symbol, INamedTypeSymbol generatedCodeAttribute)
SourceGeneration\Nodes\SyntaxValueProvider_ForAttributeWithMetadataName.cs (4)
25/// the <see cref="INamedTypeSymbol"/> for <c>"C"</c>. 65/// cref="SyntaxNode"/>s if that node has an attribute on it that binds to a <see cref="INamedTypeSymbol"/> with the 158if (symbol is INamedTypeSymbol namedTypeSymbol) 191void addPrimaryConstructorAttributes(INamedTypeSymbol namedTypeSymbol)
SymbolDisplay\AbstractSymbolDisplayVisitor.cs (8)
125protected abstract void AddExplicitlyCastedLiteralValue(INamedTypeSymbol namedType, SpecialType type, object value); 144AddEnumConstantValue((INamedTypeSymbol)type, constantValue, preferNumericValueOrExpandedFlagsForEnum); 152private void AddEnumConstantValue(INamedTypeSymbol enumType, object constantValue, bool preferNumericValueOrExpandedFlags) 195var type = ctor.ContainingType; 212private void AddFlagsEnumConstantValue(INamedTypeSymbol enumType, object constantValue, bool preferNumericValueOrExpandedFlags) 231INamedTypeSymbol enumType, object constantValue, 312INamedTypeSymbol enumType, 333private void AddNonFlagsEnumConstantValue(INamedTypeSymbol enumType, object constantValue)
SymbolDisplay\AbstractSymbolDisplayVisitor_Minimal.cs (2)
21protected bool NameBoundSuccessfullyToSameSymbol(INamedTypeSymbol symbol) 71arity = ((INamedTypeSymbol)candidate).Arity;
Symbols\Attributes\CommonAttributeData.cs (2)
27public INamedTypeSymbol? AttributeClass { get { return CommonAttributeClass; } } 28protected abstract INamedTypeSymbol? CommonAttributeClass { get; }
Symbols\CustomModifier.cs (1)
21public abstract INamedTypeSymbol Modifier { get; }
Symbols\IAssemblySymbol.cs (3)
63INamedTypeSymbol? GetTypeByMetadataName(string fullyQualifiedMetadataName); 76INamedTypeSymbol? ResolveForwardedType(string fullyQualifiedMetadataName); 81ImmutableArray<INamedTypeSymbol> GetForwardedTypes();
Symbols\IMethodSymbol.cs (3)
46/// check <see cref="INamedTypeSymbol.IsExtension"/> on the method's <see cref="ISymbol.ContainingType"/>. 239ImmutableArray<INamedTypeSymbol> UnmanagedCallingConventionTypes { get; } 302INamedTypeSymbol? AssociatedAnonymousDelegate { get; }
Symbols\INamedTypeSymbol.cs (8)
102new INamedTypeSymbol OriginalDefinition { get; } 117INamedTypeSymbol? EnumUnderlyingType { get; } 124INamedTypeSymbol ConstructedFrom { get; } 131INamedTypeSymbol Construct(params ITypeSymbol[] typeArguments); 136INamedTypeSymbol Construct(ImmutableArray<ITypeSymbol> typeArguments, ImmutableArray<NullableAnnotation> typeArgumentNullableAnnotations); 141INamedTypeSymbol ConstructUnboundGenericType(); 180INamedTypeSymbol? TupleUnderlyingType { get; } 199INamedTypeSymbol? NativeIntegerUnderlyingType { get; }
Symbols\INamespaceOrTypeSymbol.cs (3)
39ImmutableArray<INamedTypeSymbol> GetTypeMembers(); 47ImmutableArray<INamedTypeSymbol> GetTypeMembers(string name); 55ImmutableArray<INamedTypeSymbol> GetTypeMembers(string name, int arity);
Symbols\ISymbol.cs (2)
85/// Gets the <see cref="INamedTypeSymbol"/> for the containing type. Returns null if the 88INamedTypeSymbol ContainingType { get; }
Symbols\ISymbolExtensions.cs (2)
125return type is INamedTypeSymbol 152if (scopeType is not INamedTypeSymbol { Name: WellKnownMemberNames.LockScopeTypeName, Arity: 0, IsValueType: true, IsRefLikeType: true, DeclaredAccessibility: Accessibility.Public } ||
Symbols\ITypeParameterSymbol.cs (1)
43INamedTypeSymbol? DeclaringType { get; }
Symbols\ITypeSymbol.cs (5)
32INamedTypeSymbol? BaseType { get; } 39ImmutableArray<INamedTypeSymbol> Interfaces { get; } 52ImmutableArray<INamedTypeSymbol> AllInterfaces { get; } 233return ((INamedTypeSymbol)type).TypeArguments[0]; 263return (type as INamedTypeSymbol)?.EnumUnderlyingType;
Symbols\SymbolVisitor.cs (1)
73public virtual void VisitNamedType(INamedTypeSymbol symbol)
Symbols\SymbolVisitor`1.cs (1)
76public virtual TResult? VisitNamedType(INamedTypeSymbol symbol)
Symbols\SymbolVisitor`2.cs (1)
81public virtual TResult VisitNamedType(INamedTypeSymbol symbol, TArgument argument)
Microsoft.CodeAnalysis.Analyzers (1016)
FixAnalyzers\FixerWithFixAllAnalyzer.cs (20)
85INamedTypeSymbol? codeFixProviderSymbol = context.Compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.MicrosoftCodeAnalysisCodeFixesCodeFixProvider); 97INamedTypeSymbol? codeActionSymbol = context.Compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.MicrosoftCodeAnalysisCodeActionsCodeAction); 109INamedTypeSymbol? exportCodeFixProviderAttributeSymbol = context.Compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.MicrosoftCodeAnalysisCodeFixesExportCodeFixProviderAttribute); 130var symbol = (INamedTypeSymbol)context.Symbol; 141INamedTypeSymbol CodeFixProviderType, 142INamedTypeSymbol CodeActionType, 143INamedTypeSymbol ExportCodeFixProviderAttributeType, 155private readonly Dictionary<INamedTypeSymbol, HashSet<IInvocationOperation>> _codeActionCreateInvocations = []; 160private readonly Dictionary<INamedTypeSymbol, HashSet<IObjectCreationOperation>> _codeActionObjectCreations = []; 174INamedTypeSymbol namedType = method.ContainingType; 202private static void AddOperation<T>(INamedTypeSymbol namedType, T operation, Dictionary<INamedTypeSymbol, HashSet<T>> map) 221var fixer = (INamedTypeSymbol)context.Symbol; 238bool OverridesGetFixAllProvider(INamedTypeSymbol fixer) 240foreach (INamedTypeSymbol type in fixer.GetBaseTypesAndThis()) 275void AnalyzeFixerWithFixAll(INamedTypeSymbol fixer, SymbolAnalysisContext context) 309bool IsCodeActionWithOverriddenEquivalenceKey(INamedTypeSymbol namedType) 322private bool IsCodeActionWithOverriddenEquivlanceKeyCore(INamedTypeSymbol namedType)
FixAnalyzers\FixerWithFixAllAnalyzer.Fixer.cs (2)
63var typeIsSealed = ((INamedTypeSymbol)model.GetDeclaredSymbol(classDecl, cancellationToken)!).IsSealed; 65var codeFixProviderSymbol = model.Compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.MicrosoftCodeAnalysisCodeFixesCodeFixProvider);
ImmutableObjectMethodAnalyzer.cs (5)
56var builder = ImmutableArray.CreateBuilder<INamedTypeSymbol>(); 70static void AddIfNotNull(ImmutableArray<INamedTypeSymbol>.Builder builder, INamedTypeSymbol? symbol) 79public static void AnalyzeInvocationForIgnoredReturnValue(OperationAnalysisContext context, ImmutableArray<INamedTypeSymbol> immutableTypeSymbols) 96if (invocation.GetReceiverType(context.Compilation, beforeConversion: false, context.CancellationToken) is INamedTypeSymbol type
ImplementationIsObsoleteAnalyzer.cs (3)
43var namedTypeSymbol = (INamedTypeSymbol)context.Symbol; 47foreach (INamedTypeSymbol iface in namedTypeSymbol.AllInterfaces)
InternalImplementationOnlyAnalyzer.cs (3)
46var namedTypeSymbol = (INamedTypeSymbol)context.Symbol; 50foreach (INamedTypeSymbol iface in namedTypeSymbol.AllInterfaces)
MetaAnalyzers\ClassIsNotDiagnosticAnalyzer.cs (4)
38var diagnosticAnalyzer = csac.Compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.MicrosoftCodeAnalysisDiagnosticsDiagnosticAnalyzer); 39var diagnosticAnalyzerAttribute = csac.Compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.MicrosoftCodeAnalysisDiagnosticsDiagnosticAnalyzerAttribute); 49var namedType = (INamedTypeSymbol)sac.Symbol;
MetaAnalyzers\CompareSymbolsCorrectlyAnalyzer.cs (25)
89var symbolType = compilation.GetOrCreateTypeByMetadataName(s_symbolTypeFullName); 104var systemHashCode = compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemHashCode); 105var iEqualityComparer = compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemCollectionsGenericIEqualityComparer1); 113var collectionTypesBuilder = ImmutableHashSet.CreateBuilder<INamedTypeSymbol>(SymbolEqualityComparer.Default); 125private static void HandleBinaryOperator(in OperationAnalysisContext context, INamedTypeSymbol symbolType) 134if (binary.OperatorMethod?.ContainingSymbol is INamedTypeSymbol containingType 168INamedTypeSymbol symbolType, 170ImmutableDictionary<string, ImmutableHashSet<INamedTypeSymbol>> equalityComparerMethods, 171INamedTypeSymbol? systemHashCodeType, 172INamedTypeSymbol? iEqualityComparer) 226static bool IsNotInstanceInvocationOrNotOnSymbol(IInvocationOperation invocationOperation, INamedTypeSymbol symbolType) 229static bool IsBehavingOnSymbolType(IMethodSymbol? method, INamedTypeSymbol symbolType) 259private static void HandleObjectCreation(in OperationAnalysisContext context, INamedTypeSymbol symbolType, 260INamedTypeSymbol iEqualityComparerType, ImmutableHashSet<INamedTypeSymbol> collectionTypes) 264if (objectCreation.Type is INamedTypeSymbol createdType && 274private static bool IsSymbolType(IOperation? operation, INamedTypeSymbol? symbolType) 289private static bool IsSymbolType(ITypeSymbol typeSymbol, INamedTypeSymbol? symbolType) 326private static ImmutableDictionary<string, ImmutableHashSet<INamedTypeSymbol>> GetEqualityComparerMethodsToCheck(Compilation compilation) 328var builder = ImmutableDictionary.CreateBuilder<string, ImmutableHashSet<INamedTypeSymbol>.Builder>(); 330if (compilation.TryGetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemCollectionsImmutableImmutableHashSet, out var immutableHashSetType)) 338if (compilation.TryGetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemCollectionsImmutableImmutableDictionary, out var immutableDictionaryType)) 346if (compilation.TryGetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemLinqEnumerable, out var enumerableType)) 363void AddOrUpdate(string methodName, INamedTypeSymbol typeSymbol) 367methodTypeSymbols = ImmutableHashSet.CreateBuilder<INamedTypeSymbol>(SymbolEqualityComparer.Default);
MetaAnalyzers\CompilerExtensionStrictApiAnalyzer.cs (10)
89var diagnosticAnalyzer = typeProvider.GetOrCreateTypeByMetadataName(WellKnownTypeNames.MicrosoftCodeAnalysisDiagnosticsDiagnosticAnalyzer); 118var diagnosticAnalyzerAttribute = typeProvider.GetOrCreateTypeByMetadataName(WellKnownTypeNames.MicrosoftCodeAnalysisDiagnosticsDiagnosticAnalyzerAttribute); 119var sourceGeneratorInterface = typeProvider.GetOrCreateTypeByMetadataName(WellKnownTypeNames.MicrosoftCodeAnalysisISourceGenerator); 120var incrementalGeneratorInterface = typeProvider.GetOrCreateTypeByMetadataName(WellKnownTypeNames.MicrosoftCodeAnalysisIIncrementalGenerator); 121var generatorAttribute = typeProvider.GetOrCreateTypeByMetadataName(WellKnownTypeNames.MicrosoftCodeAnalysisGeneratorAttribute); 126var namedType = (INamedTypeSymbol)context.Symbol; 159private static bool IsRegisteredExtension(INamedTypeSymbol extension, [NotNullWhen(true)] INamedTypeSymbol? extensionClassOrInterface, [NotNullWhen(true)] INamedTypeSymbol? registrationAttributeType, [NotNullWhen(true)] out SyntaxReference? node, out bool supportsCSharp, out bool supportsVisualBasic)
MetaAnalyzers\CompilerExtensionTargetFrameworkAnalyzer.cs (11)
47var diagnosticAnalyzer = typeProvider.GetOrCreateTypeByMetadataName(WellKnownTypeNames.MicrosoftCodeAnalysisDiagnosticsDiagnosticAnalyzer); 51var targetFrameworkAttribute = typeProvider.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemRuntimeVersioningTargetFrameworkAttribute); 85var diagnosticAnalyzerAttribute = typeProvider.GetOrCreateTypeByMetadataName(WellKnownTypeNames.MicrosoftCodeAnalysisDiagnosticsDiagnosticAnalyzerAttribute); 86var sourceGeneratorInterface = typeProvider.GetOrCreateTypeByMetadataName(WellKnownTypeNames.MicrosoftCodeAnalysisISourceGenerator); 87var incrementalGeneratorInterface = typeProvider.GetOrCreateTypeByMetadataName(WellKnownTypeNames.MicrosoftCodeAnalysisIIncrementalGenerator); 88var generatorAttribute = typeProvider.GetOrCreateTypeByMetadataName(WellKnownTypeNames.MicrosoftCodeAnalysisGeneratorAttribute); 93var namedType = (INamedTypeSymbol)context.Symbol; 111private static bool IsRegisteredExtension(INamedTypeSymbol extension, [NotNullWhen(true)] INamedTypeSymbol? extensionClassOrInterface, [NotNullWhen(true)] INamedTypeSymbol? registrationAttributeType, [NotNullWhen(true)] out SyntaxReference? node)
MetaAnalyzers\ConfigureGeneratedCodeAnalysisAnalyzer.cs (3)
43protected override DiagnosticAnalyzerSymbolAnalyzer? GetDiagnosticAnalyzerSymbolAnalyzer(CompilationStartAnalysisContext compilationContext, INamedTypeSymbol diagnosticAnalyzer, INamedTypeSymbol diagnosticAnalyzerAttribute) 47var analysisContext = compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.MicrosoftCodeAnalysisDiagnosticsAnalysisContext);
MetaAnalyzers\DiagnosticAnalyzerAPIUsageAnalyzer.cs (16)
86INamedTypeSymbol? diagnosticAnalyzer = compilationStartContext.Compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.MicrosoftCodeAnalysisDiagnosticsDiagnosticAnalyzer); 94var namedTypesToAccessedTypesMap = new ConcurrentDictionary<INamedTypeSymbol, ImmutableHashSet<INamedTypeSymbol>>(); 95var diagnosticAnalyzerTypes = new ConcurrentBag<INamedTypeSymbol>(); 98var namedType = (INamedTypeSymbol)symbolContext.Symbol; 116var typesToProcess = new Queue<INamedTypeSymbol>(); 117var processedTypes = new HashSet<INamedTypeSymbol>(); 120foreach (INamedTypeSymbol declaredType in namedTypesToAccessedTypesMap.Keys) 134var typeToProcess = typesToProcess.Dequeue(); 138foreach (INamedTypeSymbol usedType in namedTypesToAccessedTypesMap[typeToProcess]) 190private ImmutableHashSet<INamedTypeSymbol> GetUsedNamedTypes(INamedTypeSymbol namedType, Compilation compilation, CancellationToken cancellationToken, ref bool hasAccessToTypeFromWorkspaceAssemblies) 192var builder = PooledHashSet<INamedTypeSymbol>.GetInstance(); 259private static void AddUsedNamedTypeCore(ITypeSymbol? type, PooledHashSet<INamedTypeSymbol> builder, ref bool hasAccessToTypeFromWorkspaceAssemblies) 261if (type is INamedTypeSymbol usedType &&
MetaAnalyzers\DiagnosticAnalyzerAttributeAnalyzer.cs (10)
55protected override DiagnosticAnalyzerSymbolAnalyzer GetDiagnosticAnalyzerSymbolAnalyzer(CompilationStartAnalysisContext compilationContext, INamedTypeSymbol diagnosticAnalyzer, INamedTypeSymbol diagnosticAnalyzerAttribute) 57var attributeUsageAttribute = compilationContext.Compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemAttributeUsageAttribute); 66private readonly INamedTypeSymbol? _attributeUsageAttribute; 68public AttributeAnalyzer(INamedTypeSymbol diagnosticAnalyzer, INamedTypeSymbol diagnosticAnalyzerAttribute, INamedTypeSymbol? attributeUsageAttribute) 76var namedType = (INamedTypeSymbol)symbolContext.Symbol; 136INamedTypeSymbol? compilationType = compilation.GetOrCreateTypeByMetadataName(compilationTypeNameToCheck);
MetaAnalyzers\DiagnosticAnalyzerCorrectnessAnalyzer.cs (4)
24INamedTypeSymbol? diagnosticAnalyzer = compilationContext.Compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.MicrosoftCodeAnalysisDiagnosticsDiagnosticAnalyzer); 25INamedTypeSymbol? diagnosticAnalyzerAttribute = compilationContext.Compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.MicrosoftCodeAnalysisDiagnosticsDiagnosticAnalyzerAttribute); 41protected abstract DiagnosticAnalyzerSymbolAnalyzer? GetDiagnosticAnalyzerSymbolAnalyzer(CompilationStartAnalysisContext compilationContext, INamedTypeSymbol diagnosticAnalyzer, INamedTypeSymbol diagnosticAnalyzerAttribute);
MetaAnalyzers\DiagnosticAnalyzerCorrectnessAnalyzer.DiagnosticAnalyzerSymbolAnalyzer.cs (9)
16protected DiagnosticAnalyzerSymbolAnalyzer(INamedTypeSymbol diagnosticAnalyzer, INamedTypeSymbol diagnosticAnalyzerAttribute) 22protected INamedTypeSymbol DiagnosticAnalyzer { get; } 23protected INamedTypeSymbol DiagnosticAnalyzerAttribute { get; } 25protected bool IsDiagnosticAnalyzer(INamedTypeSymbol type) 32var namedType = (INamedTypeSymbol)symbolContext.Symbol; 41protected bool HasDiagnosticAnalyzerAttribute(INamedTypeSymbol namedType, INamedTypeSymbol? attributeUsageAttribute)
MetaAnalyzers\DiagnosticAnalyzerCorrectnessAnalyzer.SyntaxNodeWithinAnalyzerTypeCompilationAnalyzer.cs (5)
19protected SyntaxNodeWithinAnalyzerTypeCompilationAnalyzer(INamedTypeSymbol diagnosticAnalyzer, INamedTypeSymbol diagnosticAnalyzerAttribute) 24internal static IEnumerable<TClassDeclarationSyntax> GetClassDeclarationNodes(INamedTypeSymbol namedType, CancellationToken cancellationToken) 41var namedType = (INamedTypeSymbol)symbolContext.Symbol;
MetaAnalyzers\DiagnosticAnalyzerFieldsAnalyzer.cs (20)
61protected override DiagnosticAnalyzerSymbolAnalyzer? GetDiagnosticAnalyzerSymbolAnalyzer(CompilationStartAnalysisContext compilationContext, INamedTypeSymbol diagnosticAnalyzer, INamedTypeSymbol diagnosticAnalyzerAttribute) 65INamedTypeSymbol? compilationType = typeProvider.GetOrCreateTypeByMetadataName(s_compilationTypeFullName); 71INamedTypeSymbol? symbolType = typeProvider.GetOrCreateTypeByMetadataName(s_symbolTypeFullName); 77INamedTypeSymbol? operationType = typeProvider.GetOrCreateTypeByMetadataName(s_operationTypeFullName); 83var attributeUsageAttribute = typeProvider.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemAttributeUsageAttribute); 90private readonly INamedTypeSymbol _compilationType; 91private readonly INamedTypeSymbol _symbolType; 92private readonly INamedTypeSymbol _operationType; 93private readonly INamedTypeSymbol? _attributeUsageAttribute; 95public FieldsAnalyzer(INamedTypeSymbol compilationType, 96INamedTypeSymbol symbolType, 97INamedTypeSymbol operationType, 98INamedTypeSymbol? attributeUsageAttribute, 99INamedTypeSymbol diagnosticAnalyzer, 100INamedTypeSymbol diagnosticAnalyzerAttribute) 111var namedType = (INamedTypeSymbol)symbolContext.Symbol; 153foreach (INamedTypeSymbol iface in type.AllInterfaces) 177if (current is TGenericNameSyntax && model.GetSymbolInfo(current).Symbol is INamedTypeSymbol { DelegateInvokeMethod: not null })
MetaAnalyzers\DiagnosticDescriptorCreationAnalyzer.cs (28)
31using PooledLocalizabeStringsConcurrentDictionary = PooledConcurrentDictionary<INamedTypeSymbol, PooledConcurrentSet<(IFieldSymbol field, IArgumentOperation argument)>>; 211if (!compilationContext.Compilation.TryGetOrCreateTypeByMetadataName(WellKnownTypeNames.MicrosoftCodeAnalysisDiagnosticDescriptor, out var diagnosticDescriptorType) || 212!compilationContext.Compilation.TryGetOrCreateTypeByMetadataName(WellKnownTypeNames.MicrosoftCodeAnalysisLocalizableString, out var localizableResourceType) || 213!compilationContext.Compilation.TryGetOrCreateTypeByMetadataName(WellKnownTypeNames.MicrosoftCodeAnalysisLocalizableResourceString, out var localizableResourceStringType) || 214!compilationContext.Compilation.TryGetOrCreateTypeByMetadataName(WellKnownTypeNames.MicrosoftCodeAnalysisDiagnosticsCompilationEndAnalysisContext, out var compilationEndContextType) || 215!compilationContext.Compilation.TryGetOrCreateTypeByMetadataName(WellKnownTypeNames.MicrosoftCodeAnalysisDiagnostic, out var diagnosticType)) 261var containingType = operationAnalysisContext.ContainingSymbol.ContainingType; 310var namedType = (INamedTypeSymbol)context.Symbol; 526INamedTypeSymbol diagnosticDescriptorType, 555INamedTypeSymbol localizableResourceStringType, 619INamedTypeSymbol containingType, 622INamedTypeSymbol localizableStringType, 623INamedTypeSymbol localizableResourceStringType) 721INamedTypeSymbol containingType, 724INamedTypeSymbol localizableStringType, 725INamedTypeSymbol localizableResourceStringType) 768INamedTypeSymbol containingType, 771INamedTypeSymbol localizableStringType, 772INamedTypeSymbol localizableResourceStringType) 806INamedTypeSymbol containingType, 809INamedTypeSymbol localizableStringType, 810INamedTypeSymbol localizableResourceStringType) 862INamedTypeSymbol namedType, 1109var diagnosticSeverityType = compilation.GetOrCreateTypeByMetadataName(typeof(DiagnosticSeverity).FullName); 1110var ruleLevelType = compilation.GetOrCreateTypeByMetadataName(typeof(RuleLevel).FullName); 1198var analyzer = ((IFieldSymbol)operationAnalysisContext.ContainingSymbol).ContainingType.OriginalDefinition; 1214static string GetAnalyzerName(INamedTypeSymbol a) => a.ToDisplayString(SymbolDisplayFormat.MinimallyQualifiedFormat);
MetaAnalyzers\DoNotUseCompilationGetSemanticModelAnalyzer.cs (4)
43if (!wellKnownTypeProvider.TryGetOrCreateTypeByMetadataName(WellKnownTypeNames.MicrosoftCodeAnalysisDiagnosticsDiagnosticAnalyzer, out var diagnosticAnalyzerType) || 44!wellKnownTypeProvider.TryGetOrCreateTypeByMetadataName(WellKnownTypeNames.MicrosoftCodeAnalysisCompilation, out var compilationType)) 49var csharpCompilation = wellKnownTypeProvider.GetOrCreateTypeByMetadataName(WellKnownTypeNames.MicrosoftCodeAnalysisCSharpCSharpCompilation); 50var visualBasicCompilation = wellKnownTypeProvider.GetOrCreateTypeByMetadataName(WellKnownTypeNames.MicrosoftCodeAnalysisVisualBasicVisualBasicCompilation);
MetaAnalyzers\DoNotUseFileTypesForAnalyzersOrGenerators.cs (10)
34INamedTypeSymbol? diagnosticAnalyzer = context.Compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.MicrosoftCodeAnalysisDiagnosticsDiagnosticAnalyzer); 42INamedTypeSymbol? codeFixProvider = context.Compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.MicrosoftCodeAnalysisCodeFixesCodeFixProvider); 43INamedTypeSymbol? isourceGenerator = context.Compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.MicrosoftCodeAnalysisISourceGenerator); 44INamedTypeSymbol? iincrementalGenerator = context.Compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.MicrosoftCodeAnalysisIIncrementalGenerator); 50private static void AnalyzeSymbol(SymbolAnalysisContext context, INamedTypeSymbol diagnosticAnalyzer, INamedTypeSymbol? codeFixProvider, INamedTypeSymbol? isourceGenerator, INamedTypeSymbol? iincrementalGenerator) 52var namedTypeSymbol = (INamedTypeSymbol)context.Symbol;
MetaAnalyzers\EnableConcurrentExecutionAnalyzer.cs (3)
43protected override DiagnosticAnalyzerSymbolAnalyzer? GetDiagnosticAnalyzerSymbolAnalyzer(CompilationStartAnalysisContext compilationContext, INamedTypeSymbol diagnosticAnalyzer, INamedTypeSymbol diagnosticAnalyzerAttribute) 47var analysisContext = compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.MicrosoftCodeAnalysisDiagnosticsAnalysisContext);
MetaAnalyzers\Fixers\CompareSymbolsCorrectlyFix.cs (3)
88!semanticModel.Compilation.TryGetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemCollectionsGenericIEqualityComparer1, out var iEqualityComparer)) 118INamedTypeSymbol iEqualityComparer, CancellationToken cancellationToken) 145private static bool TryFindSymbolEqualityComparerOverload(IMethodSymbol? methodSymbol, INamedTypeSymbol iEqualityComparer, out int symbolEqualityParameterPosition)
MetaAnalyzers\Fixers\ConfigureGeneratedCodeAnalysisFix.cs (1)
46var generatedCodeAnalysisFlags = semanticModel.Compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.MicrosoftCodeAnalysisDiagnosticsGeneratedCodeAnalysisFlags);
MetaAnalyzers\PreferIsKindAnalyzer.cs (4)
50Dictionary<INamedTypeSymbol, INamedTypeSymbol> containingTypeMap = []; 70private static void HandleBinaryOperation(OperationAnalysisContext context, Dictionary<INamedTypeSymbol, INamedTypeSymbol> containingTypeMap)
MetaAnalyzers\RegisterActionAnalyzer.cs (28)
116protected override DiagnosticAnalyzerSymbolAnalyzer? GetDiagnosticAnalyzerSymbolAnalyzer(CompilationStartAnalysisContext compilationContext, INamedTypeSymbol diagnosticAnalyzer, INamedTypeSymbol diagnosticAnalyzerAttribute) 120INamedTypeSymbol? analysisContext = compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.MicrosoftCodeAnalysisDiagnosticsAnalysisContext); 126INamedTypeSymbol? compilationStartAnalysisContext = compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.MicrosoftCodeAnalysisDiagnosticsCompilationStartAnalysisContext); 132INamedTypeSymbol? codeBlockStartAnalysisContext = compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.MicrosoftCodeAnalysisDiagnosticsCodeBlockStartAnalysisContext1); 138INamedTypeSymbol? operationBlockStartAnalysisContext = compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.MicrosoftCodeAnalysisDiagnosticsOperationBlockStartAnalysisContext); 144INamedTypeSymbol? symbolKind = compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.MicrosoftCodeAnalysisSymbolKind); 164INamedTypeSymbol analysisContext, 165INamedTypeSymbol compilationStartAnalysisContext, 166INamedTypeSymbol codeBlockStartAnalysisContext, 167INamedTypeSymbol operationBlockStartAnalysisContext, 168INamedTypeSymbol symbolKind); 172private readonly INamedTypeSymbol _analysisContext; 173private readonly INamedTypeSymbol _compilationStartAnalysisContext; 174private readonly INamedTypeSymbol _codeBlockStartAnalysisContext; 175private readonly INamedTypeSymbol _operationBlockStartAnalysisContext; 176private readonly INamedTypeSymbol _symbolKind; 213INamedTypeSymbol analysisContext, 214INamedTypeSymbol compilationStartAnalysisContext, 215INamedTypeSymbol codeBlockStartAnalysisContext, 216INamedTypeSymbol operationBlockStartAnalysisContext, 217INamedTypeSymbol symbolKind) 275if (parameter.Type is INamedTypeSymbol namedType && 285private static bool IsContextType(ITypeSymbol type, params INamedTypeSymbol[] allowedContextTypes) 287INamedTypeSymbol? namedType = (type as INamedTypeSymbol)?.OriginalDefinition; 290foreach (INamedTypeSymbol contextType in allowedContextTypes) 302private static bool IsRegisterAction(string expectedName, IMethodSymbol method, params INamedTypeSymbol[] allowedContainingTypes)
MetaAnalyzers\ReportDiagnosticAnalyzer.cs (32)
41protected override DiagnosticAnalyzerSymbolAnalyzer? GetDiagnosticAnalyzerSymbolAnalyzer(CompilationStartAnalysisContext compilationContext, INamedTypeSymbol diagnosticAnalyzer, INamedTypeSymbol diagnosticAnalyzerAttribute) 45INamedTypeSymbol? compilationEndAnalysisContext = compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.MicrosoftCodeAnalysisDiagnosticsCompilationEndAnalysisContext); 51INamedTypeSymbol? codeBlockAnalysisContext = compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.MicrosoftCodeAnalysisDiagnosticsCodeBlockAnalysisContext); 57INamedTypeSymbol? operationBlockAnalysisContext = compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.MicrosoftCodeAnalysisDiagnosticsOperationBlockAnalysisContext); 63INamedTypeSymbol? operationAnalysisContext = compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.MicrosoftCodeAnalysisDiagnosticsOperationAnalysisContext); 69INamedTypeSymbol? semanticModelAnalysisContext = compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.MicrosoftCodeAnalysisDiagnosticsSemanticModelAnalysisContext); 75INamedTypeSymbol? symbolAnalysisContext = compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.MicrosoftCodeAnalysisDiagnosticsSymbolAnalysisContext); 81INamedTypeSymbol? syntaxNodeAnalysisContext = compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.MicrosoftCodeAnalysisDiagnosticsSyntaxNodeAnalysisContext); 87INamedTypeSymbol? syntaxTreeAnalysisContext = compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.MicrosoftCodeAnalysisDiagnosticsSyntaxTreeAnalysisContext); 93INamedTypeSymbol? diagnosticType = compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.MicrosoftCodeAnalysisDiagnostic); 99INamedTypeSymbol? diagnosticDescriptorType = compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.MicrosoftCodeAnalysisDiagnosticDescriptor); 105ImmutableHashSet<INamedTypeSymbol> contextTypes = ImmutableHashSet.Create(compilationEndAnalysisContext, codeBlockAnalysisContext, 111protected abstract ReportDiagnosticCompilationAnalyzer GetAnalyzer(ImmutableHashSet<INamedTypeSymbol> contextTypes, INamedTypeSymbol diagnosticType, INamedTypeSymbol diagnosticDescriptorType, INamedTypeSymbol diagnosticAnalyzer, INamedTypeSymbol diagnosticAnalyzerAttribute); 115private readonly ImmutableHashSet<INamedTypeSymbol> _contextTypes; 116private readonly INamedTypeSymbol _diagnosticType; 117private readonly INamedTypeSymbol _diagnosticDescriptorType; 119private ImmutableDictionary<INamedTypeSymbol, ImmutableArray<IFieldSymbol>> _supportedDescriptorFieldsMap; 121protected ReportDiagnosticCompilationAnalyzer(ImmutableHashSet<INamedTypeSymbol> contextTypes, INamedTypeSymbol diagnosticType, INamedTypeSymbol diagnosticDescriptorType, INamedTypeSymbol diagnosticAnalyzer, INamedTypeSymbol diagnosticAnalyzerAttribute) 127_supportedDescriptorFieldsMap = ImmutableDictionary<INamedTypeSymbol, ImmutableArray<IFieldSymbol>>.Empty; 138ImmutableArray<IFieldSymbol> descriptorFields = GetSupportedDescriptors(symbolContext.Compilation, (INamedTypeSymbol)symbolContext.Symbol, symbolContext.CancellationToken); 145private ImmutableArray<IFieldSymbol> GetSupportedDescriptors(Compilation compilation, INamedTypeSymbol analyzer, CancellationToken cancellationToken) 188if (field.Type is INamedTypeSymbol fieldType && fieldType.GetBaseTypesAndThis().Contains(_diagnosticDescriptorType)) 243!_supportedDescriptorFieldsMap[(INamedTypeSymbol)symbolContext.Symbol].Contains(descriptorFields[0]))
MetaAnalyzers\SymbolIsBannedInAnalyzersAnalyzer.cs (2)
67var diagnosticAnalyzerAttributeType = provider.GetOrCreateTypeByMetadataName(WellKnownTypeNames.MicrosoftCodeAnalysisDiagnosticsDiagnosticAnalyzerAttribute); 68var generatorAttributeType = provider.GetOrCreateTypeByMetadataName(WellKnownTypeNames.MicrosoftCodeAnalysisGeneratorAttribute);
src\roslyn\src\Compilers\Core\Portable\SourceGeneration\GeneratedCodeUtilities.cs (1)
19ISymbol symbol, INamedTypeSymbol generatedCodeAttribute)
src\roslyn\src\RoslynAnalyzers\Microsoft.CodeAnalysis.BannedApiAnalyzers\Core\SymbolIsBannedAnalyzerBase.cs (2)
242INamedTypeSymbol namedType => namedType.IsAttribute(), 387case INamedTypeSymbol namedTypeSymbol:
src\roslyn\src\RoslynAnalyzers\Utilities\Compiler\CodeMetrics\CodeAnalysisMetricData.AssemblyMetricData.cs (2)
21ImmutableHashSet<INamedTypeSymbol> coupledNamedTypes, 45var coupledTypesBuilder = ImmutableHashSet.CreateBuilder<INamedTypeSymbol>();
src\roslyn\src\RoslynAnalyzers\Utilities\Compiler\CodeMetrics\CodeAnalysisMetricData.cs (4)
29ImmutableHashSet<INamedTypeSymbol> coupledNamedTypes, 79public ImmutableHashSet<INamedTypeSymbol> CoupledNamedTypes { get; } 271SymbolKind.NamedType => await NamedTypeMetricData.ComputeAsync((INamedTypeSymbol)symbol, context).ConfigureAwait(false), 309SymbolKind.NamedType => NamedTypeMetricData.ComputeSynchronously((INamedTypeSymbol)symbol, context),
src\roslyn\src\RoslynAnalyzers\Utilities\Compiler\CodeMetrics\CodeAnalysisMetricData.EventMetricData.cs (2)
18ImmutableHashSet<INamedTypeSymbol> coupledNamedTypes, 30var coupledTypesBuilder = ImmutableHashSet.CreateBuilder<INamedTypeSymbol>();
src\roslyn\src\RoslynAnalyzers\Utilities\Compiler\CodeMetrics\CodeAnalysisMetricData.FieldMetricData.cs (2)
18ImmutableHashSet<INamedTypeSymbol> coupledNamedTypes, 29var coupledTypesBuilder = ImmutableHashSet.CreateBuilder<INamedTypeSymbol>();
src\roslyn\src\RoslynAnalyzers\Utilities\Compiler\CodeMetrics\CodeAnalysisMetricData.MethodMetricData.cs (2)
18ImmutableHashSet<INamedTypeSymbol> coupledNamedTypes, 29var coupledTypesBuilder = ImmutableHashSet.CreateBuilder<INamedTypeSymbol>();
src\roslyn\src\RoslynAnalyzers\Utilities\Compiler\CodeMetrics\CodeAnalysisMetricData.NamedTypeMetricData.cs (10)
18INamedTypeSymbol symbol, 21ImmutableHashSet<INamedTypeSymbol> coupledNamedTypes, 31internal static async Task<NamedTypeMetricData> ComputeAsync(INamedTypeSymbol namedType, CodeMetricsAnalysisContext context) 40internal static NamedTypeMetricData ComputeSynchronously(INamedTypeSymbol namedType, CodeMetricsAnalysisContext context) 49private static IEnumerable<ISymbol> GetMembers(INamedTypeSymbol namedType, CodeMetricsAnalysisContext context) 65private static NamedTypeMetricData ComputeFromChildren(INamedTypeSymbol namedType, ImmutableArray<CodeAnalysisMetricData> children, CodeMetricsAnalysisContext context) 67var coupledTypesBuilder = ImmutableHashSet.CreateBuilder<INamedTypeSymbol>(); 130private static int CalculateDepthOfInheritance(INamedTypeSymbol namedType, Func<INamedTypeSymbol, bool> isExcludedFromInheritanceCount) 137var parent = namedType.BaseType;
src\roslyn\src\RoslynAnalyzers\Utilities\Compiler\CodeMetrics\CodeAnalysisMetricData.NamespaceMetricData.cs (7)
20ImmutableHashSet<INamedTypeSymbol> coupledNamedTypes, 44var coupledTypesBuilder = ImmutableHashSet.CreateBuilder<INamedTypeSymbol>(); 76var typesInNamespace = new HashSet<INamedTypeSymbol>(); 77foreach (INamedTypeSymbol typeMember in @namespace.GetTypeMembers()) 83foreach (INamedTypeSymbol namedType in typesInNamespace.OrderBy(t => t.ToDisplayString())) 90void processType(INamedTypeSymbol namedType) 93foreach (INamedTypeSymbol nestedType in namedType.GetTypeMembers())
src\roslyn\src\RoslynAnalyzers\Utilities\Compiler\CodeMetrics\CodeAnalysisMetricData.PropertyMetricData.cs (2)
18ImmutableHashSet<INamedTypeSymbol> coupledNamedTypes, 30var coupledTypesBuilder = ImmutableHashSet.CreateBuilder<INamedTypeSymbol>();
src\roslyn\src\RoslynAnalyzers\Utilities\Compiler\CodeMetrics\CodeMetricsAnalysisContext.cs (2)
18Func<INamedTypeSymbol, bool>? isExcludedFromInheritanceCountFunc = null) 32public Func<INamedTypeSymbol, bool> IsExcludedFromInheritanceCountFunc { get; }
src\roslyn\src\RoslynAnalyzers\Utilities\Compiler\CodeMetrics\MetricsHelper.cs (12)
38internal static void AddCoupledNamedTypes(ImmutableHashSet<INamedTypeSymbol>.Builder builder, WellKnownTypeProvider wellKnownTypeProvider, 39ImmutableHashSet<INamedTypeSymbol> coupledTypes) 41foreach (var coupledType in coupledTypes) 47internal static void AddCoupledNamedTypes(ImmutableHashSet<INamedTypeSymbol>.Builder builder, WellKnownTypeProvider wellKnownTypeProvider, 53internal static void AddCoupledNamedTypes(ImmutableHashSet<INamedTypeSymbol>.Builder builder, WellKnownTypeProvider wellKnownTypeProvider, 194ImmutableHashSet<INamedTypeSymbol>.Builder builder, 348private static void AddCoupledNamedTypesCore(ImmutableHashSet<INamedTypeSymbol>.Builder builder, ITypeSymbol typeOpt, 351if (typeOpt is INamedTypeSymbol usedType && 369static bool isIgnoreableType(INamedTypeSymbol namedType, WellKnownTypeProvider wellKnownTypeProvider) 399internal static void RemoveContainingTypes(ISymbol symbol, ImmutableHashSet<INamedTypeSymbol>.Builder coupledTypesBuilder) 401var namedType = symbol as INamedTypeSymbol ?? symbol.ContainingType;
src\roslyn\src\RoslynAnalyzers\Utilities\Compiler\DiagnosticHelpers.cs (1)
68if (symbol is INamedTypeSymbol namedType &&
src\roslyn\src\RoslynAnalyzers\Utilities\Compiler\DoNotCatchGeneralUnlessRethrown.cs (8)
35protected virtual bool IsConfiguredDisallowedExceptionType(INamedTypeSymbol namedTypeSymbol, IMethodSymbol containingMethod, Compilation compilation, AnalyzerOptions analyzerOptions, CancellationToken cancellationToken) 47INamedTypeSymbol? requiredAttributeType = null; 86bool IsDisallowedCatchType(INamedTypeSymbol type) => 94private INamedTypeSymbol? GetRequiredAttributeType(Compilation compilation) 100private static IReadOnlyCollection<INamedTypeSymbol> GetDisallowedCatchTypes(Compilation compilation) 115private readonly Func<INamedTypeSymbol, bool> _isDisallowedCatchType; 121public DisallowGeneralCatchUnlessRethrowWalker(Func<INamedTypeSymbol, bool> isDisallowedCatchType, bool checkAnonymousFunctions) 163return operation.ExceptionType is INamedTypeSymbol exceptionType &&
src\roslyn\src\RoslynAnalyzers\Utilities\Compiler\Extensions\CompilationExtensions.cs (4)
21/// <returns>The <see cref="INamedTypeSymbol"/> if found, null otherwise.</returns> 22internal static INamedTypeSymbol? GetOrCreateTypeByMetadataName(this Compilation compilation, string fullTypeName) => 30/// <returns>The <see cref="INamedTypeSymbol"/> if found, null otherwise.</returns> 31internal static bool TryGetOrCreateTypeByMetadataName(this Compilation compilation, string fullTypeName, [NotNullWhen(returnValue: true)] out INamedTypeSymbol? namedTypeSymbol) =>
src\roslyn\src\RoslynAnalyzers\Utilities\Compiler\Extensions\IMethodSymbolExtensions.cs (42)
89public static bool IsImplementationOfInterfaceMethod(this IMethodSymbol method, ITypeSymbol? typeArgument, [NotNullWhen(returnValue: true)] INamedTypeSymbol? interfaceType, string interfaceMethodName) 91INamedTypeSymbol? constructedInterface = typeArgument != null ? interfaceType?.Construct(typeArgument) : interfaceType; 102INamedTypeSymbol? iDisposable = compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemIDisposable); 111INamedTypeSymbol? iAsyncDisposable = compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemIAsyncDisposable); 112INamedTypeSymbol? valueTaskType = compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemThreadingTasksValueTask); 119public static bool IsDisposeImplementation([NotNullWhen(returnValue: true)] this IMethodSymbol? method, [NotNullWhen(returnValue: true)] INamedTypeSymbol? iDisposable) 141public static bool IsAsyncDisposeImplementation([NotNullWhen(returnValue: true)] this IMethodSymbol? method, [NotNullWhen(returnValue: true)] INamedTypeSymbol? iAsyncDisposable, [NotNullWhen(returnValue: true)] INamedTypeSymbol? valueTaskType) 200private static bool HasDisposeCloseAsyncMethodSignature(this IMethodSymbol method, INamedTypeSymbol? taskType) 208INamedTypeSymbol? task, 209INamedTypeSymbol? valueTask, 210INamedTypeSymbol? configuredValueTaskAwaitable) 223private static bool HasOverriddenDisposeCoreAsyncMethodSignature(this IMethodSymbol method, [NotNullWhen(returnValue: true)] INamedTypeSymbol? task) 236private static bool HasVirtualOrOverrideDisposeCoreAsyncMethodSignature(this IMethodSymbol method, [NotNullWhen(returnValue: true)] INamedTypeSymbol? valueTask) 250INamedTypeSymbol? iDisposable = compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemIDisposable); 251INamedTypeSymbol? iAsyncDisposable = compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemIAsyncDisposable); 252INamedTypeSymbol? configuredAsyncDisposable = compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemRuntimeCompilerServicesConfiguredAsyncDisposable); 253INamedTypeSymbol? task = compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemThreadingTasksTask); 254INamedTypeSymbol? valueTask = compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemThreadingTasksValueTask); 255INamedTypeSymbol? configuredValueTaskAwaitable = compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemRuntimeCompilerServicesConfiguredValueTaskAwaitable); 264INamedTypeSymbol? iDisposable, 265INamedTypeSymbol? iAsyncDisposable, 266INamedTypeSymbol? configuredAsyncDisposable, 267INamedTypeSymbol? task, 268INamedTypeSymbol? valueTask, 269INamedTypeSymbol? configuredValueTaskAwaitable) 311public static bool IsSerializationConstructor([NotNullWhen(returnValue: true)] this IMethodSymbol? method, INamedTypeSymbol? serializationInfoType, INamedTypeSymbol? streamingContextType) 317public static bool IsGetObjectData([NotNullWhen(returnValue: true)] this IMethodSymbol? method, INamedTypeSymbol? serializationInfoType, INamedTypeSymbol? streamingContextType) 364public static bool IsCollectionAddMethod(this IMethodSymbol method, ImmutableHashSet<INamedTypeSymbol> iCollectionTypes) 385public static bool IsTaskFromResultMethod(this IMethodSymbol method, [NotNullWhen(returnValue: true)] INamedTypeSymbol? taskType) 394public static bool IsTaskConfigureAwaitMethod(this IMethodSymbol method, [NotNullWhen(returnValue: true)] INamedTypeSymbol? genericTaskType) 406public static bool IsAsyncDisposableConfigureAwaitMethod(this IMethodSymbol method, [NotNullWhen(returnValue: true)] INamedTypeSymbol? asyncDisposableType, [NotNullWhen(returnValue: true)] INamedTypeSymbol? taskAsyncEnumerableExtensions) 483public static bool IsLockMethod(this IMethodSymbol method, [NotNullWhen(returnValue: true)] INamedTypeSymbol? systemThreadingMonitor) 493public static bool IsInterlockedExchangeMethod(this IMethodSymbol method, INamedTypeSymbol? systemThreadingInterlocked) 505public static bool IsInterlockedCompareExchangeMethod(this IMethodSymbol method, INamedTypeSymbol? systemThreadingInterlocked) 536public static bool IsBenchmarkOrXUnitTestMethod(this IMethodSymbol method, ConcurrentDictionary<INamedTypeSymbol, bool> knownTestAttributes, INamedTypeSymbol? benchmarkAttribute, INamedTypeSymbol? xunitFactAttribute) 561var typeSymbol = methodSymbol.ContainingType;
src\roslyn\src\RoslynAnalyzers\Utilities\Compiler\Extensions\INamedTypeSymbolExtensions.cs (9)
17public static bool IsFileLocal(this INamedTypeSymbol symbol) => symbol.IsFileLocal; 41public static bool DerivesFromOrImplementsAnyConstructionOf(this INamedTypeSymbol type, INamedTypeSymbol parentType) 48for (INamedTypeSymbol? baseType = type.OriginalDefinition; 66public static bool OverridesEquals(this INamedTypeSymbol symbol) 72public static bool IsBenchmarkOrXUnitTestAttribute(this INamedTypeSymbol attributeClass, ConcurrentDictionary<INamedTypeSymbol, bool> knownTestAttributes, INamedTypeSymbol? benchmarkAttribute, INamedTypeSymbol? xunitFactAttribute)
src\roslyn\src\RoslynAnalyzers\Utilities\Compiler\Extensions\IPropertySymbolExtensions.cs (1)
36var typeSymbol = propertySymbol.ContainingType;
src\roslyn\src\RoslynAnalyzers\Utilities\Compiler\Extensions\ISymbolExtensions.cs (9)
153foreach (INamedTypeSymbol interfaceSymbol in symbol.ContainingType.AllInterfaces) 240public static AttributeData? GetAttribute(this ISymbol symbol, [NotNullWhen(true)] INamedTypeSymbol? attributeType) 245public static IEnumerable<AttributeData> GetAttributes(this ISymbol symbol, IEnumerable<INamedTypeSymbol?> attributesToMatch) 252foreach (var attributeToMatch in attributesToMatch) 263public static IEnumerable<AttributeData> GetAttributes(this ISymbol symbol, params INamedTypeSymbol?[] attributeTypesToMatch) 268public static bool HasAnyAttribute(this ISymbol symbol, IEnumerable<INamedTypeSymbol> attributesToMatch) 273public static bool HasAnyAttribute(this ISymbol symbol, params INamedTypeSymbol?[] attributeTypesToMatch) 292public static bool HasDerivedTypeAttribute(this ITypeSymbol symbol, [NotNullWhen(returnValue: true)] INamedTypeSymbol? attribute) 331public static bool HasDerivedMethodAttribute(this IMethodSymbol symbol, [NotNullWhen(returnValue: true)] INamedTypeSymbol? attribute)
src\roslyn\src\RoslynAnalyzers\Utilities\Compiler\Extensions\ITypeSymbolExtensions.cs (14)
116INamedTypeSymbol? iDisposable, 117INamedTypeSymbol? iAsyncDisposable, 118INamedTypeSymbol? configuredAsyncDisposable) 138static bool IsInterfaceOrImplementsInterface(ITypeSymbol type, INamedTypeSymbol? interfaceType) 148public static IEnumerable<AttributeData> GetApplicableAttributes(this INamedTypeSymbol type, INamedTypeSymbol? attributeUsageAttribute) 180static bool IsInheritedAttribute(AttributeData attributeData, INamedTypeSymbol attributeUsageAttribute) 182for (var currentAttributeClass = attributeData.AttributeClass; 215public static IEnumerable<AttributeData> GetApplicableExportAttributes(this INamedTypeSymbol? type, INamedTypeSymbol? exportAttributeV1, INamedTypeSymbol? exportAttributeV2, INamedTypeSymbol? inheritedExportAttribute) 263=> typeSymbol.IsNullableValueType() && ((INamedTypeSymbol)typeSymbol).TypeArguments[0].SpecialType == SpecialType.System_Boolean; 266=> (typeSymbol as INamedTypeSymbol)?.TupleUnderlyingType ?? typeSymbol;
src\roslyn\src\RoslynAnalyzers\Utilities\Compiler\Options\AnalyzerOptionsExtensions.cs (9)
279if (symbol is INamedTypeSymbol namedType && !excludedTypeNamesWithDerivedTypes.IsEmpty) 281foreach (var type in namedType.GetBaseTypesAndThis()) 377public static SymbolNamesWithValueOption<INamedTypeSymbol?> GetAdditionalRequiredGenericInterfaces( 384private static SymbolNamesWithValueOption<INamedTypeSymbol?> GetAdditionalRequiredGenericInterfaces( 392static SymbolNamesWithValueOption<INamedTypeSymbol?>.NameParts GetParts(string name, Compilation compilation) 399return new SymbolNamesWithValueOption<INamedTypeSymbol?>.NameParts(name, null); 411matchingSymbols[0] is not INamedTypeSymbol namedType || 416return new SymbolNamesWithValueOption<INamedTypeSymbol?>.NameParts(split[0], null); 419return new SymbolNamesWithValueOption<INamedTypeSymbol?>.NameParts(split[0], namedType);
src\roslyn\src\RoslynAnalyzers\Utilities\Compiler\WellKnownTypeProvider.cs (11)
32_fullNameToTypeMap = new ConcurrentDictionary<string, INamedTypeSymbol?>(StringComparer.Ordinal); 65/// Mapping of full name to <see cref="INamedTypeSymbol"/>. 67private readonly ConcurrentDictionary<string, INamedTypeSymbol?> _fullNameToTypeMap; 94[NotNullWhen(returnValue: true)] out INamedTypeSymbol? namedTypeSymbol) 106[NotNullWhen(returnValue: true)] out INamedTypeSymbol? namedTypeSymbol) 118INamedTypeSymbol? type = null; 152var currentType = referencedAssembly.GetTypeByMetadataName(fullyQualifiedMetadataName); 188/// <returns>The <see cref="INamedTypeSymbol"/> if found, null otherwise.</returns> 189public INamedTypeSymbol? GetOrCreateTypeByMetadataName(string fullTypeName) 191TryGetOrCreateTypeByMetadataName(fullTypeName, out INamedTypeSymbol? namedTypeSymbol); 209&& typeSymbol is INamedTypeSymbol namedTypeSymbol
src\roslyn\src\RoslynAnalyzers\Utilities\Workspaces\SyntaxGeneratorExtensions.cs (9)
35INamedTypeSymbol containingType) 76public static SyntaxNode TypeExpressionForStaticMemberAccess(this SyntaxGenerator generator, INamedTypeSymbol typeSymbol) 110public static SyntaxNode DefaultOperatorInequalityDeclaration(this SyntaxGenerator generator, INamedTypeSymbol containingType) 136public static SyntaxNode DefaultOperatorLessThanDeclaration(this SyntaxGenerator generator, INamedTypeSymbol containingType) 188public static SyntaxNode DefaultOperatorLessThanOrEqualDeclaration(this SyntaxGenerator generator, INamedTypeSymbol containingType) 235public static SyntaxNode DefaultOperatorGreaterThanDeclaration(this SyntaxGenerator generator, INamedTypeSymbol containingType) 283public static SyntaxNode DefaultOperatorGreaterThanOrEqualDeclaration(this SyntaxGenerator generator, INamedTypeSymbol containingType) 322private static SyntaxNode ComparisonOperatorDeclaration(this SyntaxGenerator generator, OperatorKind operatorKind, INamedTypeSymbol containingType, params SyntaxNode[] statements) 349public static SyntaxNode DefaultEqualsOverrideDeclaration(this SyntaxGenerator generator, Compilation compilation, INamedTypeSymbol containingType)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Extensions\CollectionExpressionUtilities.cs (7)
61if (type is INamedTypeSymbol namedType) 71var ienumerableOfTType = compilation.IEnumerableOfTType(); 72var ienumerableType = compilation.IEnumerableType(); 73var foundType = 146Compilation compilation, INamedTypeSymbol collectionExpressionType) 148var readonlySpanOfTType = compilation.ReadOnlySpanOfTType(); 155if (attribute is not { ConstructorArguments: [{ Value: INamedTypeSymbol builderType }, { Value: string builderMethodName }] })
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Extensions\KnownTypes.cs (8)
11public readonly INamedTypeSymbol? TaskType = compilation.TaskType(); 12public readonly INamedTypeSymbol? TaskOfTType = compilation.TaskOfTType(); 13public readonly INamedTypeSymbol? ValueTaskType = compilation.ValueTaskType(); 14public readonly INamedTypeSymbol? ValueTaskOfTType = compilation.ValueTaskOfTType(); 16public readonly INamedTypeSymbol? IEnumerableOfTType = compilation.IEnumerableOfTType(); 17public readonly INamedTypeSymbol? IEnumeratorOfTType = compilation.IEnumeratorOfTType(); 19public readonly INamedTypeSymbol? IAsyncEnumerableOfTType = compilation.IAsyncEnumerableOfTType(); 20public readonly INamedTypeSymbol? IAsyncEnumeratorOfTType = compilation.IAsyncEnumeratorOfTType();
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Extensions\OperationExtensions.cs (2)
405var notImplementedExceptionType = compilation.NotImplementedExceptionType(); 454static bool IsThrowNotImplementedOperation(INamedTypeSymbol notImplementedExceptionType, IOperation? operation)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Extensions\SemanticModelExtensions.cs (4)
84return semanticModel.GetEnclosingSymbol<INamedTypeSymbol>(position, cancellationToken) ?? 88public static INamedTypeSymbol? GetEnclosingNamedType(this SemanticModel semanticModel, int position, CancellationToken cancellationToken) 89=> semanticModel.GetEnclosingSymbol<INamedTypeSymbol>(position, cancellationToken); 172var enumerableType = semanticModel.Compilation.IEnumerableOfTType();
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\FlowAnalysis\SymbolUsageAnalysis\SymbolUsageAnalysis.DataFlowAnalyzer.FlowGraphAnalysisData.cs (1)
143if (owningSymbol.ContainingSymbol is INamedTypeSymbol { IsExtension: true, ExtensionParameter: { } extensionParameter })
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\NamingStyles\NamingStyleRules.cs (3)
65var containingType = symbol.ContainingType; 87var containingType = symbol.ContainingType; 90foreach (var implementedInterface in implementedInterfaces)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Services\SemanticFacts\ISemanticFacts.cs (4)
68bool LastEnumValueHasInitializer(INamedTypeSymbol namedTypeSymbol); 89bool IsPartial(INamedTypeSymbol typeSymbol, CancellationToken cancellationToken); 108bool IsInExpressionTree(SemanticModel semanticModel, SyntaxNode node, [NotNullWhen(true)] INamedTypeSymbol? expressionType, CancellationToken cancellationToken); 123bool TryGetPrimaryConstructor(INamedTypeSymbol typeSymbol, [NotNullWhen(true)] out IMethodSymbol? primaryConstructor);
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\SymbolKey\SymbolKey.AnonymousFunctionOrDelegateSymbolKey.cs (1)
65var anonymousDelegate = methodSymbol.AssociatedAnonymousDelegate;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\SymbolKey\SymbolKey.AnonymousTypeSymbolKey.cs (5)
13private sealed class AnonymousTypeSymbolKey : AbstractSymbolKey<INamedTypeSymbol> 17public sealed override void Create(INamedTypeSymbol symbol, SymbolKeyWriter visitor) 34SymbolKeyReader reader, INamedTypeSymbol? contextualSymbol, out string? failureReason) 40using var propertyTypes = reader.ReadSymbolKeyArray<INamedTypeSymbol, ITypeSymbol>( 64var anonymousType = reader.Compilation.CreateAnonymousTypeSymbol(
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\SymbolKey\SymbolKey.cs (5)
43/// <item>Two <see cref="INamedTypeSymbol"/>s are the "same" if they have 46/// equal <see cref="INamedTypeSymbol.Arity"/> and 47/// the "same" <see cref="INamedTypeSymbol.TypeArguments"/>.</item> 301foreach (var containingType in containingTypeResolution.OfType<INamedTypeSymbol>())
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\SymbolKey\SymbolKey.ErrorTypeSymbolKey.cs (9)
12private sealed class ErrorTypeSymbolKey : AbstractSymbolKey<INamedTypeSymbol> 16public sealed override void Create(INamedTypeSymbol symbol, SymbolKeyWriter visitor) 21case INamedTypeSymbol parentType: 65SymbolKeyReader reader, INamedTypeSymbol? contextualType, out string? failureReason) 72using var typeArguments = reader.ReadSymbolKeyArray<INamedTypeSymbol, ITypeSymbol>( 92using var result = PooledArrayBuilder<INamedTypeSymbol>.GetInstance(); 97var originalType = reader.Compilation.CreateErrorTypeSymbol(container, name, arity); 98var errorType = typeArgumentsArray != null ? originalType.Construct(typeArgumentsArray) : originalType; 110SymbolKeyReader reader, INamedTypeSymbol? contextualType, out string? failureReason)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\SymbolKey\SymbolKey.FunctionPointerTypeSymbolKey.cs (2)
37var callingConventionModifiers = ImmutableArray<INamedTypeSymbol>.Empty; 40using var modifiersBuilder = reader.ReadSymbolKeyArray<IFunctionPointerTypeSymbol, INamedTypeSymbol>(
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\SymbolKey\SymbolKey.NamedTypeSymbolKey.cs (13)
9private sealed class NamedTypeSymbolKey : AbstractSymbolKey<INamedTypeSymbol> 13public sealed override void Create(INamedTypeSymbol symbol, SymbolKeyWriter visitor) 33SymbolKeyReader reader, INamedTypeSymbol? contextualSymbol, out string? failureReason) 48using var typeArguments = reader.ReadSymbolKeyArray<INamedTypeSymbol, ITypeSymbol>( 90INamedTypeSymbol? contextualType, 126using var result = PooledArrayBuilder<INamedTypeSymbol>.GetInstance(); 155using var result = PooledArrayBuilder<INamedTypeSymbol>.GetInstance(); 163PooledArrayBuilder<INamedTypeSymbol> result) 168foreach (var type in container.GetTypeMembers()) 176foreach (var type in container.GetTypeMembers(name, arity)) 200private static INamedTypeSymbol Construct(INamedTypeSymbol type, bool isUnboundGenericType, ITypeSymbol[] typeArguments) 202var currentType = typeArguments.Length > 0 ? type.Construct(typeArguments) : type;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\SymbolKey\SymbolKey.ParameterSymbolKey.cs (2)
64var delegateInvoke = (eventSymbol.Type as INamedTypeSymbol)?.DelegateInvokeMethod; 73case INamedTypeSymbol { IsExtension: true, ExtensionParameter: { } extensionParameter }:
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\SymbolKey\SymbolKey.SymbolKeyWriter.cs (2)
405public override void VisitNamedType(INamedTypeSymbol namedTypeSymbol) 412else if (namedTypeSymbol.IsTupleType && namedTypeSymbol.TupleUnderlyingType is INamedTypeSymbol underlyingType && underlyingType != namedTypeSymbol)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\SymbolKey\SymbolKey.TupleTypeSymbolKey.cs (10)
14private sealed class TupleTypeSymbolKey : AbstractSymbolKey<INamedTypeSymbol> 18public sealed override void Create(INamedTypeSymbol symbol, SymbolKeyWriter visitor) 53SymbolKeyReader reader, INamedTypeSymbol? contextualSymbol, out string? failureReason) 64SymbolKeyReader reader, INamedTypeSymbol? contextualSymbol, out string? failureReason) 78using var result = PooledArrayBuilder<INamedTypeSymbol>.GetInstance(); 81foreach (var namedType in underlyingTypeResolution.OfType<INamedTypeSymbol>()) 92SymbolKeyReader reader, INamedTypeSymbol? contextualType, out string? failureReason) 96using var elementTypes = reader.ReadSymbolKeyArray<INamedTypeSymbol, ITypeSymbol>( 120var result = reader.Compilation.CreateTupleTypeSymbol(
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Utilities\AbstractSpeculationAnalyzer.cs (5)
417var type = methodSymbol.ContainingType; 418var newType = newMethodSymbol.ContainingType; 491private static bool EnumTypesAreCompatible(INamedTypeSymbol type1, INamedTypeSymbol type2) 990var newSymbolContainingType = newSymbol.ContainingType;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Utilities\EnumValueUtilities.cs (1)
21public static object GetNextEnumValue(INamedTypeSymbol enumType)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Compilation\CompilationExtensions.cs (82)
78public static INamedTypeSymbol? ArgumentExceptionType(this Compilation compilation) 81public static INamedTypeSymbol? ArgumentNullExceptionType(this Compilation compilation) 84public static INamedTypeSymbol? ArgumentOutOfRangeExceptionType(this Compilation compilation) 87public static INamedTypeSymbol? ArrayType(this Compilation compilation) 90public static INamedTypeSymbol? AttributeType(this Compilation compilation) 93public static INamedTypeSymbol? BlockingCollectionOfTType(this Compilation compilation) 96public static INamedTypeSymbol? CollectionOfTType(this Compilation compilation) 99public static INamedTypeSymbol? ExceptionType(this Compilation compilation) 102public static INamedTypeSymbol? DebuggerDisplayAttributeType(this Compilation compilation) 105public static INamedTypeSymbol? StructLayoutAttributeType(this Compilation compilation) 108public static INamedTypeSymbol? InlineArrayAttributeType(this Compilation compilation) 111public static INamedTypeSymbol? DesignerCategoryAttributeType(this Compilation compilation) 114public static INamedTypeSymbol? DesignerGeneratedAttributeType(this Compilation compilation) 117public static INamedTypeSymbol? HideModuleNameAttribute(this Compilation compilation) 120public static INamedTypeSymbol? ThreadStaticAttributeType(this Compilation compilation) 123public static INamedTypeSymbol? FormattableStringType(this Compilation compilation) 126public static INamedTypeSymbol? IFormattableType(this Compilation compilation) 129public static INamedTypeSymbol? EventArgsType(this Compilation compilation) 132public static INamedTypeSymbol? NotImplementedExceptionType(this Compilation compilation) 135public static INamedTypeSymbol? EqualityComparerOfTType(this Compilation compilation) 138public static INamedTypeSymbol? ActionType(this Compilation compilation) 141public static INamedTypeSymbol? ExpressionOfTType(this Compilation compilation) 144public static INamedTypeSymbol? EditorBrowsableAttributeType(this Compilation compilation) 147public static INamedTypeSymbol? EditorBrowsableStateType(this Compilation compilation) 150public static INamedTypeSymbol? TaskType(this Compilation compilation) 153public static INamedTypeSymbol? TaskOfTType(this Compilation compilation) 156public static INamedTypeSymbol? ValueTaskType(this Compilation compilation) 159public static INamedTypeSymbol? ValueTaskOfTType(this Compilation compilation) 162public static INamedTypeSymbol? ICollectionOfTType(this Compilation compilation) 165public static INamedTypeSymbol? IEnumerableType(this Compilation compilation) 168public static INamedTypeSymbol? IEnumerableOfTType(this Compilation compilation) 171public static INamedTypeSymbol? IEnumeratorOfTType(this Compilation compilation) 174public static INamedTypeSymbol? IListOfTType(this Compilation compilation) 177public static INamedTypeSymbol? IReadOnlyListOfTType(this Compilation compilation) 180public static INamedTypeSymbol? ISetOfTType(this Compilation compilation) 183public static INamedTypeSymbol? IReadOnlySetOfTType(this Compilation compilation) 186public static INamedTypeSymbol? IAsyncEnumerableOfTType(this Compilation compilation) 189public static INamedTypeSymbol? IAsyncEnumeratorOfTType(this Compilation compilation) 192public static INamedTypeSymbol? ImmutableArrayOfTType(this Compilation compilation) 195public static INamedTypeSymbol? SerializableAttributeType(this Compilation compilation) 198public static INamedTypeSymbol? CoClassType(this Compilation compilation) 201public static INamedTypeSymbol? ComAliasNameAttributeType(this Compilation compilation) 204public static INamedTypeSymbol? SuppressMessageAttributeType(this Compilation compilation) 207public static INamedTypeSymbol? TupleElementNamesAttributeType(this Compilation compilation) 210public static INamedTypeSymbol? NativeIntegerAttributeType(this Compilation compilation) 213public static INamedTypeSymbol? DynamicAttributeType(this Compilation compilation) 216public static INamedTypeSymbol? LazyOfTType(this Compilation compilation) 219public static INamedTypeSymbol? ISerializableType(this Compilation compilation) 222public static INamedTypeSymbol? SerializationInfoType(this Compilation compilation) 225public static INamedTypeSymbol? StreamingContextType(this Compilation compilation) 228public static INamedTypeSymbol? OnDeserializingAttribute(this Compilation compilation) 231public static INamedTypeSymbol? OnDeserializedAttribute(this Compilation compilation) 234public static INamedTypeSymbol? OnSerializingAttribute(this Compilation compilation) 237public static INamedTypeSymbol? OnSerializedAttribute(this Compilation compilation) 240public static INamedTypeSymbol? ComRegisterFunctionAttribute(this Compilation compilation) 243public static INamedTypeSymbol? ComUnregisterFunctionAttribute(this Compilation compilation) 246public static INamedTypeSymbol? ConditionalAttribute(this Compilation compilation) 249public static INamedTypeSymbol? ObsoleteAttribute(this Compilation compilation) 252public static INamedTypeSymbol? SystemCompositionImportingConstructorAttribute(this Compilation compilation) 255public static INamedTypeSymbol? SystemComponentModelCompositionImportingConstructorAttribute(this Compilation compilation) 258public static INamedTypeSymbol? SystemIDisposableType(this Compilation compilation) 261public static INamedTypeSymbol? NotNullAttribute(this Compilation compilation) 264public static INamedTypeSymbol? MaybeNullAttribute(this Compilation compilation) 267public static INamedTypeSymbol? MaybeNullWhenAttribute(this Compilation compilation) 270public static INamedTypeSymbol? AllowNullAttribute(this Compilation compilation) 273public static INamedTypeSymbol? DisallowNullAttribute(this Compilation compilation) 276public static INamedTypeSymbol? DataMemberAttribute(this Compilation compilation) 279public static INamedTypeSymbol? DataContractAttribute(this Compilation compilation) 282public static INamedTypeSymbol? AsyncMethodBuilderAttribute(this Compilation compilation) 285public static INamedTypeSymbol? CancellationTokenType(this Compilation compilation) 288public static INamedTypeSymbol? ValueTupleType(this Compilation compilation, int arity) 291public static INamedTypeSymbol? ListOfTType(this Compilation compilation) 294public static INamedTypeSymbol? ReadOnlySpanOfTType(this Compilation compilation) 297public static INamedTypeSymbol? SpanOfTType(this Compilation compilation) 300public static INamedTypeSymbol? InterpolatedStringHandlerAttributeType(this Compilation compilation) 303public static INamedTypeSymbol? DateOnlyType(this Compilation compilation) 306public static INamedTypeSymbol? TimeOnlyType(this Compilation compilation) 334public static INamedTypeSymbol? GetBestTypeByMetadataName(this Compilation compilation, string fullyQualifiedMetadataName) 336INamedTypeSymbol? type = null; 338foreach (var currentType in compilation.GetTypesByMetadataName(fullyQualifiedMetadataName)) 373foreach (var candidateTopLevelType in compilation.SourceModule.GlobalNamespace.GetTypeMembers(WellKnownMemberNames.TopLevelStatementsEntryPointTypeName, arity: 0)) 385public static INamedTypeSymbol? TryGetCallingConventionSymbol(this Compilation compilation, string callingConvention)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\IMethodSymbolExtensions.cs (6)
26foreach (var nestedType in methodSymbol.ContainingType.GetTypeMembers()) 72public static bool HasEventHandlerSignature(this IMethodSymbol method, [NotNullWhen(returnValue: true)] INamedTypeSymbol? eventArgsType) 131public static bool IsEntryPoint(this IMethodSymbol methodSymbol, INamedTypeSymbol? taskType, INamedTypeSymbol? genericTaskType) 147if (method.ReturnType is not INamedTypeSymbol { Arity: 0 }) 169var containingType = constructor.ContainingType;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\INamedTypeSymbolExtensions.cs (77)
24public static IEnumerable<INamedTypeSymbol> GetBaseTypesAndThis(this INamedTypeSymbol? namedType) 26var current = namedType; 34public static IEnumerable<INamedTypeSymbol> GetContainingTypesAndThis(this INamedTypeSymbol? namedType) 36var current = namedType; 44public static ImmutableArray<ITypeParameterSymbol> GetAllTypeParameters(this INamedTypeSymbol? symbol) 50public static ImmutableArray<ITypeSymbol> GetAllTypeArguments(this INamedTypeSymbol? symbol) 56private static Stack<INamedTypeSymbol> GetContainmentStack(INamedTypeSymbol? symbol) 58var stack = new Stack<INamedTypeSymbol>(); 59for (var current = symbol; current != null; current = current.ContainingType) 67public static bool IsContainedWithin([NotNullWhen(returnValue: true)] this INamedTypeSymbol? symbol, INamedTypeSymbol outer) 70for (var current = symbol; current != null; current = current.ContainingType) 81public static ISymbol? FindImplementationForAbstractMember(this INamedTypeSymbol? type, ISymbol symbol) 92private static bool ImplementationExists(INamedTypeSymbol classOrStructType, ISymbol member) 96this INamedTypeSymbol classOrStructType, 98Func<INamedTypeSymbol, ISymbol, bool> isValidImplementation, 128private static bool IsInterfacePropertyImplemented(INamedTypeSymbol classOrStructType, IPropertySymbol propertySymbol) 136static bool IsAccessorImplemented(IMethodSymbol? accessor, INamedTypeSymbol classOrStructType) 142private static bool IsAbstractPropertyImplemented(INamedTypeSymbol classOrStructType, IPropertySymbol propertySymbol) 165this INamedTypeSymbol classOrStructType, 167Func<INamedTypeSymbol, ISymbol, bool> isValid, 190public static ImmutableArray<(INamedTypeSymbol type, ImmutableArray<ISymbol> members)> GetAllUnimplementedMembers( 191this INamedTypeSymbol classOrStructType, 192IEnumerable<INamedTypeSymbol> interfaces, 208static ImmutableArray<ISymbol> GetImplicitlyImplementableMembers(INamedTypeSymbol type, ISymbol within) 260public static ImmutableArray<(INamedTypeSymbol type, ImmutableArray<ISymbol> members)> GetAllUnimplementedMembersInThis( 261this INamedTypeSymbol classOrStructType, 262IEnumerable<INamedTypeSymbol> interfacesOrAbstractClasses, 278public static ImmutableArray<(INamedTypeSymbol type, ImmutableArray<ISymbol> members)> GetAllUnimplementedMembersInThis( 279this INamedTypeSymbol classOrStructType, 280IEnumerable<INamedTypeSymbol> interfacesOrAbstractClasses, 281Func<INamedTypeSymbol, ISymbol, ImmutableArray<ISymbol>> interfaceMemberGetter, 297public static ImmutableArray<(INamedTypeSymbol type, ImmutableArray<ISymbol> members)> GetAllUnimplementedExplicitMembers( 298this INamedTypeSymbol classOrStructType, 299IEnumerable<INamedTypeSymbol> interfaces, 311private static ImmutableArray<ISymbol> GetExplicitlyImplementableMembers(INamedTypeSymbol type, ISymbol within) 338private static ImmutableArray<(INamedTypeSymbol type, ImmutableArray<ISymbol> members)> GetAllUnimplementedMembers( 339this INamedTypeSymbol classOrStructType, 340IEnumerable<INamedTypeSymbol> interfacesOrAbstractClasses, 341Func<INamedTypeSymbol, ISymbol, Func<INamedTypeSymbol, ISymbol, bool>, CancellationToken, bool> isImplemented, 342Func<INamedTypeSymbol, ISymbol, bool> isValidImplementation, 343Func<INamedTypeSymbol, ISymbol, ImmutableArray<ISymbol>> interfaceMemberGetter, 372private static ImmutableArray<INamedTypeSymbol> GetTypesToImplement( 373INamedTypeSymbol classOrStructType, 374IEnumerable<INamedTypeSymbol> interfacesOrAbstractClasses, 383private static ImmutableArray<INamedTypeSymbol> GetAbstractClassesToImplement( 384IEnumerable<INamedTypeSymbol> abstractClasses) 389private static ImmutableArray<INamedTypeSymbol> GetInterfacesToImplement( 390INamedTypeSymbol classOrStructType, 391IEnumerable<INamedTypeSymbol> interfaces, 398var interfacesToImplement = new List<INamedTypeSymbol>( 403var baseType = classOrStructType.BaseType; 414this INamedTypeSymbol classOrStructType, 415INamedTypeSymbol interfaceType, 416Func<INamedTypeSymbol, ISymbol, Func<INamedTypeSymbol, ISymbol, bool>, CancellationToken, bool> isImplemented, 417Func<INamedTypeSymbol, ISymbol, bool> isValidImplementation, 418Func<INamedTypeSymbol, ISymbol, ImmutableArray<ISymbol>> interfaceMemberGetter, 460this INamedTypeSymbol attributeSymbol, 466var systemAttributeType = compilation.AttributeType(); 468foreach (var type in attributeSymbol.GetBaseTypesAndThis()) 528private static ImmutableArray<ISymbol> GetMembers(INamedTypeSymbol type, ISymbol within) 542this INamedTypeSymbol containingType, CancellationToken cancellationToken) 559foreach (var type in baseTypes) 580Dictionary<ISymbol, int> result, INamedTypeSymbol containingType, CancellationToken cancellationToken) 601Dictionary<ISymbol, int> result, INamedTypeSymbol containingType, CancellationToken cancellationToken) 623Dictionary<ISymbol, int> result, INamedTypeSymbol containingType, 624INamedTypeSymbol type, ref int index, CancellationToken cancellationToken) 637private static bool IsOverridable(ISymbol member, INamedTypeSymbol containingType) 680public static INamedTypeSymbol TryConstruct(this INamedTypeSymbol type, ITypeSymbol[] typeArguments) 683public static bool IsCollectionBuilderAttribute([NotNullWhen(true)] this INamedTypeSymbol? type) 702public static bool IsIEnumerableOfT([NotNullWhen(true)] this INamedTypeSymbol? type)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\INamespaceOrTypeSymbolExtensions.cs (3)
90public static IEnumerable<INamedTypeSymbol> GetAllTypes( 106var namedType = (INamedTypeSymbol)current;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\ISymbolExtensions.cs (16)
99foreach (var baseType in symbol.ContainingType.GetBaseTypes()) 108bool TryFindLooseMatch(ISymbol symbol, INamedTypeSymbol baseType, [NotNullWhen(true)] out ISymbol? looseMatch) 157foreach (var iface in symbol.ContainingType.AllInterfaces) 215public static INamedTypeSymbol? GetContainingTypeOrThis(this ISymbol symbol) 217if (symbol is INamedTypeSymbol namedType) 311=> symbol is INamedTypeSymbol { IsAnonymousType: true }; 354SymbolKind.NamedType => ((INamedTypeSymbol)symbol).Arity, 435INamedTypeSymbol nt => nt.TypeParameters, 456INamedTypeSymbol nt => nt.TypeArguments, 465var containingType = symbol.ContainingType; 506var delegateType = compilation.GetTypeByMetadataName(method.ReturnsVoid 535=> symbol is INamedTypeSymbol { IsStatic: true }; 551foreach (var type in namespaceOrType.GetAllTypes(cancellationToken)) 568private static bool IsAttributeValidForTargets(INamedTypeSymbol attributeType, AttributeTargets validTargets) 595return ((INamedTypeSymbol)symbol).GetMembers().OfType<IPropertySymbol>().Where(p => p.CanBeReferencedByName); 870public static bool HasAttribute([NotNullWhen(true)] this ISymbol? symbol, [NotNullWhen(true)] INamedTypeSymbol? attributeClass)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\ISymbolExtensions.RequiresUnsafeModifierVisitor.cs (1)
56public override bool VisitNamedType(INamedTypeSymbol symbol)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\ISymbolExtensions_Accessibility.cs (25)
27else if (within is INamedTypeSymbol namedType) 54INamedTypeSymbol within, 67INamedTypeSymbol within, 92Debug.Assert(within is INamedTypeSymbol or IAssemblySymbol); 124return IsNamedTypeAccessible((INamedTypeSymbol)symbol, within); 177private static bool IsNamedTypeAccessible(INamedTypeSymbol type, ISymbol within) 179Debug.Assert(within is INamedTypeSymbol or IAssemblySymbol); 204var containingType = type.ContainingType; 217Debug.Assert(within is INamedTypeSymbol or IAssemblySymbol); 219var withinAssembly = (within as IAssemblySymbol) ?? ((INamedTypeSymbol)within).ContainingAssembly; 248INamedTypeSymbol containingType, 254Debug.Assert(within is INamedTypeSymbol or IAssemblySymbol); 259var originalContainingType = containingType.OriginalDefinition; 260var withinNamedType = within as INamedTypeSymbol; 261var withinAssembly = (within as IAssemblySymbol) ?? ((INamedTypeSymbol)within).ContainingAssembly; 334INamedTypeSymbol? withinType, 337INamedTypeSymbol originalContainingType, 375var current = withinType.OriginalDefinition; 411INamedTypeSymbol originalContainingType) 413Debug.Assert(within is INamedTypeSymbol or IAssemblySymbol); 415if (within is not INamedTypeSymbol withinType) 428INamedTypeSymbol withinType, 429INamedTypeSymbol originalContainingType) 436var current = withinType.OriginalDefinition;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\ITypeGenerator.cs (1)
13ITypeSymbol Construct(INamedTypeSymbol namedType, ITypeSymbol[] typeArguments);
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\ITypeParameterSymbolExtensions.cs (4)
14public static INamedTypeSymbol? GetNamedTypeSymbolConstraint(this ITypeParameterSymbol typeParameter) 17private static INamedTypeSymbol? GetNamedTypeSymbol(ITypeSymbol type) 19return type is INamedTypeSymbol 20? (INamedTypeSymbol)type
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\ITypeSymbolExtensions.AnonymousTypeRemover.cs (1)
42public override ITypeSymbol VisitNamedType(INamedTypeSymbol symbol)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\ITypeSymbolExtensions.CollectTypeParameterSymbolsVisitor.cs (1)
57public override void VisitNamedType(INamedTypeSymbol symbol)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\ITypeSymbolExtensions.CompilationTypeGenerator.cs (1)
19public ITypeSymbol Construct(INamedTypeSymbol namedType, ITypeSymbol[] typeArguments)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\ITypeSymbolExtensions.cs (30)
43public static ImmutableArray<INamedTypeSymbol> GetAllInterfacesIncludingThis(this ITypeSymbol type) 46return type is INamedTypeSymbol { TypeKind: TypeKind.Interface } namedType && !allInterfaces.Contains(namedType) 69underlyingType = ((INamedTypeSymbol)symbol).TypeArguments[0]; 92public static bool IsAnonymousType([NotNullWhen(returnValue: true)] this INamedTypeSymbol? symbol) 95private static HashSet<INamedTypeSymbol> GetOriginalInterfacesAndTheirBaseInterfaces( 97HashSet<INamedTypeSymbol>? symbols = null) 99symbols ??= new HashSet<INamedTypeSymbol>(SymbolEquivalenceComparer.Instance); 101foreach (var interfaceType in type.Interfaces) 120public static IEnumerable<INamedTypeSymbol> GetBaseTypes(this ITypeSymbol? type) 122var current = type?.BaseType; 140public static IEnumerable<INamedTypeSymbol> GetContainingTypes(this ITypeSymbol type) 142var current = type.ContainingType; 198var currentBaseType = type.BaseType; 227for (var b = symbol.BaseType; b != null; b = b.BaseType) 316INamedTypeSymbol n => ContainsAnonymousType(n), 321private static bool ContainsAnonymousType(INamedTypeSymbol type) 417public static INamedTypeSymbol? GetDelegateType(this ITypeSymbol? typeSymbol, Compilation compilation) 421var expressionOfT = compilation.ExpressionOfTType(); 424var typeArgument = ((INamedTypeSymbol)typeSymbol).TypeArguments[0]; 425return typeArgument as INamedTypeSymbol; 430return typeSymbol as INamedTypeSymbol; 583var n2 = t2 as INamedTypeSymbol; 585if (t1 is not INamedTypeSymbol n1) 635public static bool IsEnumType([NotNullWhen(true)] this ITypeSymbol? type, [NotNullWhen(true)] out INamedTypeSymbol? enumType) 639enumType = (INamedTypeSymbol)type; 731if (type is not INamedTypeSymbol 784=> type is INamedTypeSymbol 792=> symbol is INamedTypeSymbol 800=> type is INamedTypeSymbol namedType &&
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\ITypeSymbolExtensions.MinimalAccessibilityVisitor.cs (2)
42foreach (var callingConventionType in symbol.Signature.UnmanagedCallingConventionTypes) 50public override Accessibility VisitNamedType(INamedTypeSymbol symbol)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\ITypeSymbolExtensions.SubstituteTypesVisitor.cs (1)
58public override ITypeSymbol VisitNamedType(INamedTypeSymbol symbol)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\ITypeSymbolExtensions.UnavailableTypeParameterRemover.cs (1)
43public override ITypeSymbol VisitNamedType(INamedTypeSymbol symbol)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\ITypeSymbolExtensions.UnnamedErrorTypeRemover.cs (1)
42public override ITypeSymbol VisitNamedType(INamedTypeSymbol symbol)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\SymbolEquivalenceComparer.cs (12)
149public bool ReturnTypeEquals(IMethodSymbol x, IMethodSymbol y, Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies = null) 164public bool Equals(ISymbol? x, ISymbol? y, Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies) 170private bool EqualsCore(ISymbol? x, ISymbol? y, Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies) 191private static bool IsConstructedFromSelf(INamedTypeSymbol symbol) 213private static OneOrMany<INamedTypeSymbol> Unwrap(INamedTypeSymbol namedType) 219using var builder = TemporaryArray<INamedTypeSymbol>.Empty; 224if (candidate is INamedTypeSymbol candidateType) 257private static TypeKind GetTypeKind(INamedTypeSymbol x)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\SymbolEquivalenceComparer.EquivalenceVisitor.cs (65)
22public bool AreEquivalent(ISymbol? x, ISymbol? y, Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies) 51return AreArrayAndReadOnlySpanEquivalent((IArrayTypeSymbol)x, (INamedTypeSymbol)y, equivalentTypesWithDifferingAssemblies); 55return AreArrayAndReadOnlySpanEquivalent((IArrayTypeSymbol)y, (INamedTypeSymbol)x, equivalentTypesWithDifferingAssemblies); 65private bool AreArrayAndReadOnlySpanEquivalent(IArrayTypeSymbol array, INamedTypeSymbol readOnlySpanType, Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies) 73internal bool AreEquivalent(CustomModifier x, CustomModifier y, Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies) 76internal bool AreEquivalent(ImmutableArray<CustomModifier> x, ImmutableArray<CustomModifier> y, Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies) 112private bool AreEquivalentWorker(ISymbol x, ISymbol y, SymbolKind k, Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies) 126SymbolKind.NamedType => NamedTypesAreEquivalent((INamedTypeSymbol)x, (INamedTypeSymbol)y, equivalentTypesWithDifferingAssemblies), 127SymbolKind.ErrorType => NamedTypesAreEquivalent((INamedTypeSymbol)x, (INamedTypeSymbol)y, equivalentTypesWithDifferingAssemblies), 140private bool ArrayTypesAreEquivalent(IArrayTypeSymbol x, IArrayTypeSymbol y, Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies) 152private bool FieldsAreEquivalent(IFieldSymbol x, IFieldSymbol y, Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies) 170private bool MethodsAreEquivalent(IMethodSymbol x, IMethodSymbol y, Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies, bool considerReturnRefKinds = false) 281private bool NamedTypesAreEquivalent(INamedTypeSymbol x, INamedTypeSymbol y, Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies) 301private bool NamedTypesAreEquivalentError(INamedTypeSymbol x, INamedTypeSymbol y, Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies) 303foreach (var type1 in Unwrap(x)) 306foreach (var type2 in Unwrap(y)) 330private bool HandleNamedTypesWorker(INamedTypeSymbol x, INamedTypeSymbol y, Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies) 418private bool HandleTupleTypes(INamedTypeSymbol x, INamedTypeSymbol y, Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies) 463Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies, 486internal bool ReturnTypesAreEquivalent(IMethodSymbol x, IMethodSymbol y, Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies = null) 492private bool TypeArgumentsAreEquivalent(ImmutableArray<ITypeSymbol> xTypeArguments, ImmutableArray<ITypeSymbol> yTypeArguments, Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies) 511private bool HandleAnonymousTypes(INamedTypeSymbol x, INamedTypeSymbol y, Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies) 547private bool NamespacesAreEquivalent(INamespaceSymbol x, INamespaceSymbol y, Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies) 564private bool ParametersAreEquivalent(IParameterSymbol x, IParameterSymbol y, Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies) 574private bool PointerTypesAreEquivalent(IPointerTypeSymbol x, IPointerTypeSymbol y, Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies) 581private bool FunctionPointerTypesAreEquivalent(IFunctionPointerTypeSymbol x, IFunctionPointerTypeSymbol y, Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies) 584private bool PropertiesAreEquivalent(IPropertySymbol x, IPropertySymbol y, Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies) 608private bool EventsAreEquivalent(IEventSymbol x, IEventSymbol y, Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies) 617private bool TypeParametersAreEquivalent(ITypeParameterSymbol x, ITypeParameterSymbol y, Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\SymbolEquivalenceComparer.GetHashCodeVisitor.cs (5)
70SymbolKind.NamedType => CombineHashCodes((INamedTypeSymbol)x, currentHash), 146private int CombineHashCodes(INamedTypeSymbol x, int currentHash) 154if (candidate is INamedTypeSymbol candidateNamedType) 164private int CombineNamedTypeHashCode(INamedTypeSymbol x, int currentHash) 193private int CombineAnonymousTypeHashCode(INamedTypeSymbol x, int currentHash)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\SymbolEquivalenceComparer.ParameterSymbolEqualityComparer.cs (2)
23Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies,
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\SymbolEquivalenceComparer.SignatureTypeSymbolEquivalenceComparer.cs (2)
18public bool Equals(ITypeSymbol? x, ITypeSymbol? y, Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\AbstractCodeGenerationService.cs (15)
59public TDeclarationNode AddNamedType<TDeclarationNode>(TDeclarationNode destination, INamedTypeSymbol namedType, CodeGenerationContextInfo info, CancellationToken cancellationToken) where TDeclarationNode : SyntaxNode 88public SyntaxNode CreateNamedTypeDeclaration(INamedTypeSymbol namedType, CodeGenerationDestination destination, CodeGenerationContextInfo info, CancellationToken cancellationToken) 127protected abstract TDeclarationNode AddNamedType<TDeclarationNode>(TDeclarationNode destination, INamedTypeSymbol namedType, TCodeGenerationContextInfo info, IList<bool>? availableIndices, CancellationToken cancellationToken) where TDeclarationNode : SyntaxNode; 150public abstract SyntaxNode CreateNamedTypeDeclaration(INamedTypeSymbol namedType, CodeGenerationDestination destination, TCodeGenerationContextInfo info, CancellationToken cancellationToken); 349INamedTypeSymbol namedType => CreateNamedTypeDeclaration(namedType, codeGenerationDestination, info, cancellationToken), 367INamedTypeSymbol namedType => AddNamedType(currentDestination, namedType, info, availableIndices, cancellationToken), 392CodeGenerationSolutionContext context, INamedTypeSymbol destination, IEventSymbol @event, CancellationToken cancellationToken) 401public Task<Document> AddFieldAsync(CodeGenerationSolutionContext context, INamedTypeSymbol destination, IFieldSymbol field, CancellationToken cancellationToken) 410public Task<Document> AddPropertyAsync(CodeGenerationSolutionContext context, INamedTypeSymbol destination, IPropertySymbol property, CancellationToken cancellationToken) 419public Task<Document> AddNamedTypeAsync(CodeGenerationSolutionContext context, INamedTypeSymbol destination, INamedTypeSymbol namedType, CancellationToken cancellationToken) 428public Task<Document> AddNamedTypeAsync(CodeGenerationSolutionContext context, INamespaceSymbol destination, INamedTypeSymbol namedType, CancellationToken cancellationToken) 446public Task<Document> AddMethodAsync(CodeGenerationSolutionContext context, INamedTypeSymbol destination, IMethodSymbol method, CancellationToken cancellationToken) 455public Task<Document> AddMembersAsync(CodeGenerationSolutionContext context, INamedTypeSymbol destination, IEnumerable<ISymbol> members, CancellationToken cancellationToken) 477return AddNamedTypeAsync(context, destination, (INamedTypeSymbol)namespaceOrType, cancellationToken);
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\AbstractFlagsEnumGenerator.cs (10)
14protected abstract SyntaxNode CreateExplicitlyCastedLiteralValue(INamedTypeSymbol enumType, SpecialType underlyingSpecialType, object constantValue); 15protected abstract bool IsValidName(INamedTypeSymbol enumType, string name); 19public SyntaxNode CreateEnumConstantValue(INamedTypeSymbol enumType, object constantValue) 35private static bool IsFlagsEnum(INamedTypeSymbol typeSymbol) 47var type = ctor.ContainingType; 60private SyntaxNode CreateFlagsEnumConstantValue(INamedTypeSymbol enumType, object constantValue) 71INamedTypeSymbol enumType, 137IFieldSymbol field, INamedTypeSymbol enumType, SpecialType underlyingSpecialType) 167INamedTypeSymbol enumType, 184private SyntaxNode CreateNonFlagsEnumConstantValue(INamedTypeSymbol enumType, object constantValue)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\CodeGenerationHelpers.cs (2)
25var exceptionType = compilation.GetTypeByMetadataName(exceptionMetadataName); 150public static IEnumerable<ISymbol> GetMembers(INamedTypeSymbol namedType)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\CodeGenerationSymbolFactory.cs (14)
43INamedTypeSymbol? containingType, 148INamedTypeSymbol? containingType, 222INamedTypeSymbol? containingType = null, 250INamedTypeSymbol? containingType = null, 404INamedTypeSymbol attributeClass, 414public static INamedTypeSymbol CreateNamedTypeSymbol( 420INamedTypeSymbol? baseType = null, 421ImmutableArray<INamedTypeSymbol> interfaces = default, 433public static INamedTypeSymbol CreateNamedTypeSymbol( 439INamedTypeSymbol? baseType = null, 440ImmutableArray<INamedTypeSymbol> interfaces = default, 451members.WhereAsArray(m => m is not INamedTypeSymbol), 452[.. members.OfType<INamedTypeSymbol>().Select(n => n.ToCodeGenerationSymbol())], 519INamedTypeSymbol? containingType = null,
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\CodeGenerator.cs (8)
30public static Task<Document> AddEventDeclarationAsync(CodeGenerationSolutionContext context, INamedTypeSymbol destination, IEventSymbol @event, CancellationToken cancellationToken) 37public static Task<Document> AddFieldDeclarationAsync(CodeGenerationSolutionContext context, INamedTypeSymbol destination, IFieldSymbol field, CancellationToken cancellationToken) 44public static Task<Document> AddMethodDeclarationAsync(CodeGenerationSolutionContext context, INamedTypeSymbol destination, IMethodSymbol method, CancellationToken cancellationToken) 51public static Task<Document> AddPropertyDeclarationAsync(CodeGenerationSolutionContext context, INamedTypeSymbol destination, IPropertySymbol property, CancellationToken cancellationToken) 58public static Task<Document> AddNamedTypeDeclarationAsync(CodeGenerationSolutionContext context, INamedTypeSymbol destination, INamedTypeSymbol namedType, CancellationToken cancellationToken) 65public static Task<Document> AddNamedTypeDeclarationAsync(CodeGenerationSolutionContext context, INamespaceSymbol destination, INamedTypeSymbol namedType, CancellationToken cancellationToken) 86public static Task<Document> AddMemberDeclarationsAsync(CodeGenerationSolutionContext context, INamedTypeSymbol destination, IEnumerable<ISymbol> members, CancellationToken cancellationToken)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\ICodeGenerationService.cs (10)
43SyntaxNode CreateNamedTypeDeclaration(INamedTypeSymbol namedType, CodeGenerationDestination destination, CodeGenerationContextInfo info, CancellationToken cancellationToken); 73TDeclarationNode AddNamedType<TDeclarationNode>(TDeclarationNode destination, INamedTypeSymbol namedType, CodeGenerationContextInfo info, CancellationToken cancellationToken) where TDeclarationNode : SyntaxNode; 133Task<Document> AddEventAsync(CodeGenerationSolutionContext context, INamedTypeSymbol destination, IEventSymbol @event, CancellationToken cancellationToken); 138Task<Document> AddFieldAsync(CodeGenerationSolutionContext context, INamedTypeSymbol destination, IFieldSymbol field, CancellationToken cancellationToken); 143Task<Document> AddMethodAsync(CodeGenerationSolutionContext context, INamedTypeSymbol destination, IMethodSymbol method, CancellationToken cancellationToken); 148Task<Document> AddPropertyAsync(CodeGenerationSolutionContext context, INamedTypeSymbol destination, IPropertySymbol property, CancellationToken cancellationToken); 153Task<Document> AddNamedTypeAsync(CodeGenerationSolutionContext context, INamedTypeSymbol destination, INamedTypeSymbol namedType, CancellationToken cancellationToken); 158Task<Document> AddNamedTypeAsync(CodeGenerationSolutionContext context, INamespaceSymbol destination, INamedTypeSymbol namedType, CancellationToken cancellationToken); 173Task<Document> AddMembersAsync(CodeGenerationSolutionContext context, INamedTypeSymbol destination, IEnumerable<ISymbol> members, CancellationToken cancellationToken);
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\INamedTypeSymbolExtensions.cs (2)
11public static CodeGenerationAbstractNamedTypeSymbol ToCodeGenerationSymbol(this INamedTypeSymbol namedType) 32namedType.GetMembers().WhereAsArray(s => s is not INamedTypeSymbol),
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\Symbols\CodeGenerationAbstractMethodSymbol.cs (3)
23INamedTypeSymbol containingType, 98public INamedTypeSymbol AssociatedAnonymousDelegate => null; 110public ImmutableArray<INamedTypeSymbol> UnmanagedCallingConventionTypes => [];
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\Symbols\CodeGenerationAbstractNamedTypeSymbol.cs (10)
16public new INamedTypeSymbol OriginalDefinition { get; protected set; } 24INamedTypeSymbol containingType, 53public INamedTypeSymbol Construct(params ITypeSymbol[] typeArguments) 64public INamedTypeSymbol Construct(ImmutableArray<ITypeSymbol> typeArguments, ImmutableArray<NullableAnnotation> typeArgumentNullableAnnotations) 77public abstract INamedTypeSymbol EnumUnderlyingType { get; } 79INamedTypeSymbol INamedTypeSymbol.ConstructedFrom => this.ConstructedFrom; 80public abstract INamedTypeSymbol ConstructUnboundGenericType(); 119public INamedTypeSymbol NativeIntegerUnderlyingType => null; 121public INamedTypeSymbol TupleUnderlyingType => null;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\Symbols\CodeGenerationAttributeData.cs (2)
13INamedTypeSymbol attributeClass, 20protected override INamedTypeSymbol CommonAttributeClass => attributeClass;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\Symbols\CodeGenerationConstructedNamedTypeSymbol.cs (4)
51public override INamedTypeSymbol EnumUnderlyingType 57public override INamedTypeSymbol ConstructUnboundGenericType() 87public override ImmutableArray<INamedTypeSymbol> GetTypeMembers() 90return [.. _constructedFrom.TypeMembers.Cast<INamedTypeSymbol>()];
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\Symbols\CodeGenerationConstructorSymbol.cs (1)
11INamedTypeSymbol? containingType,
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\Symbols\CodeGenerationConversionSymbol.cs (1)
11INamedTypeSymbol? containingType,
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\Symbols\CodeGenerationDestructorSymbol.cs (1)
10INamedTypeSymbol? containingType,
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\Symbols\CodeGenerationEventSymbol.cs (1)
12INamedTypeSymbol? containingType,
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\Symbols\CodeGenerationFieldSymbol.cs (1)
13INamedTypeSymbol containingType,
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\Symbols\CodeGenerationMethodSymbol.cs (1)
23INamedTypeSymbol containingType,
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\Symbols\CodeGenerationNamedTypeSymbol.cs (11)
19private readonly ImmutableArray<INamedTypeSymbol> _interfaces; 24INamedTypeSymbol containingType, 32INamedTypeSymbol baseType, 33ImmutableArray<INamedTypeSymbol> interfaces, 38INamedTypeSymbol enumUnderlyingType) 101public override INamedTypeSymbol EnumUnderlyingType { get; } 111public override INamedTypeSymbol ConstructUnboundGenericType() 147public override INamedTypeSymbol BaseType { get; } 149public override ImmutableArray<INamedTypeSymbol> Interfaces 160public override ImmutableArray<INamedTypeSymbol> GetTypeMembers() 161=> [.. this.TypeMembers.Cast<INamedTypeSymbol>()];
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\Symbols\CodeGenerationNamespaceOrTypeSymbol.cs (4)
14INamedTypeSymbol containingType, 29public virtual ImmutableArray<INamedTypeSymbol> GetTypeMembers() 32public ImmutableArray<INamedTypeSymbol> GetTypeMembers(string name) 35public ImmutableArray<INamedTypeSymbol> GetTypeMembers(string name, int arity)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\Symbols\CodeGenerationNamespaceSymbol.cs (1)
57public static INamedTypeSymbol ImplicitType => null;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\Symbols\CodeGenerationOperatorSymbol.cs (1)
11INamedTypeSymbol? containingType,
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\Symbols\CodeGenerationParameterSymbol.cs (1)
13INamedTypeSymbol containingType,
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\Symbols\CodeGenerationPropertySymbol.cs (1)
13INamedTypeSymbol containingType,
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\Symbols\CodeGenerationSymbol.cs (3)
27public INamedTypeSymbol ContainingType { get; protected set; } 31INamedTypeSymbol containingType, 162public ImmutableArray<AttributeData> GetAttributes(INamedTypeSymbol attributeType)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\Symbols\CodeGenerationTypeParameterSymbol.cs (3)
12INamedTypeSymbol containingType, 80public INamedTypeSymbol DeclaringType 84return this.ContainingSymbol as INamedTypeSymbol;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\Symbols\CodeGenerationTypeSymbol.cs (4)
14INamedTypeSymbol containingType, 27public virtual INamedTypeSymbol BaseType => null; 29public virtual ImmutableArray<INamedTypeSymbol> Interfaces 32public ImmutableArray<INamedTypeSymbol> AllInterfaces
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\TypeGenerator.cs (1)
21public ITypeSymbol Construct(INamedTypeSymbol namedType, ITypeSymbol[] typeArguments)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\Editing\ImportAdderService.cs (2)
202foreach (var namedType in SymbolAnnotation.GetSymbols(annotation, model.Compilation).OfType<INamedTypeSymbol>())
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\Extensions\IMethodSymbolExtensions.cs (3)
19this IMethodSymbol method, INamedTypeSymbol containingType, ISyntaxFactsService syntaxFacts) 143params INamedTypeSymbol[] removeAttributeTypes) 172static bool shouldRemoveAttribute(AttributeData a, (INamedTypeSymbol[] removeAttributeTypes, ISymbol accessibleWithin) arg)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\Extensions\IPropertySymbolExtensions.cs (2)
41this IPropertySymbol property, ISymbol accessibleWithin, params INamedTypeSymbol[] attributesToRemove) 69static bool ShouldRemoveAttribute(AttributeData a, (INamedTypeSymbol[] attributesToRemove, ISymbol accessibleWithin) arg)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\Extensions\ITypeInferenceServiceExtensions.cs (3)
27public static INamedTypeSymbol? InferDelegateType( 37public static INamedTypeSymbol? InferDelegateType( 47private static INamedTypeSymbol? GetFirstDelegateType(SemanticModel semanticModel, ImmutableArray<ITypeSymbol> types)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\Extensions\SyntaxGeneratorExtensions.cs (4)
39var notImplementedExceptionTypeSyntax = compilation.NotImplementedExceptionType() is INamedTypeSymbol symbol 72var equalityComparerType = compilation.EqualityComparerOfTType(); 176var classOrStructType = throughMember.ContainingType; 441var type = compilation.GetTypeByMetadataName(typeof(ArgumentNullException).FullName!);
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\Extensions\SyntaxGeneratorExtensions_CreateEqualsMethod.cs (11)
29INamedTypeSymbol containingType, 79INamedTypeSymbol containingType, 81INamedTypeSymbol constructedEquatableType, 125INamedTypeSymbol containingType, 243var iequatableType = compilation.GetTypeByMetadataName(typeof(IEquatable<>).FullName); 296INamedTypeSymbol containingType, 407private static bool ImplementsIEquatable(ITypeSymbol memberType, INamedTypeSymbol? iequatableType) 413var constructed = iequatableType.Construct(memberType); 458private static bool HasExistingBaseEqualsMethod(INamedTypeSymbol containingType) 481INamedTypeSymbol? containingType, 515INamedTypeSymbol? containingType,
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\Extensions\SyntaxGeneratorExtensions_CreateGetHashCodeMethod.cs (5)
21INamedTypeSymbol? containingType, 43INamedTypeSymbol hashCodeType, ImmutableArray<SyntaxNode> memberReferences) 83INamedTypeSymbol containingType, 179this SyntaxGenerator generator, SyntaxGeneratorInternal generatorInternal, INamedTypeSymbol namedTypeSymbol, 192public static IMethodSymbol? GetBaseGetHashCodeMethod(INamedTypeSymbol containingType)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\Extensions\SyntaxGeneratorExtensions_Negate.cs (1)
444var containingType = property.ContainingType;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\LanguageServices\InitializeParameter\InitializeParameterHelpersCore.cs (5)
66var containingType = parameter.ContainingType; 84var containingType = parameter.ContainingType; 146IOperation? operation, INamedTypeSymbol containingType, 163public static bool IsFieldOrPropertyAssignment(IOperation statement, INamedTypeSymbol containingType, [NotNullWhen(true)] out IAssignmentOperation? assignmentExpression) 167IOperation statement, INamedTypeSymbol containingType,
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\LanguageServices\SemanticsFactsService\AbstractSemanticFactsService.cs (7)
129var valueTaskType = compilation.ValueTaskType(); 165(INamedTypeSymbol?, IMethodSymbol?) GetIDisposableInterfaceAndDisposeMethod(string typeName, string methodName) 167var disposableType = compilation.GetBestTypeByMetadataName(typeName); 201public bool LastEnumValueHasInitializer(INamedTypeSymbol namedTypeSymbol) 225public bool IsPartial(INamedTypeSymbol typeSymbol, CancellationToken cancellationToken) 252public bool IsInExpressionTree(SemanticModel semanticModel, SyntaxNode node, INamedTypeSymbol? expressionTypeOpt, CancellationToken cancellationToken) 261public bool TryGetPrimaryConstructor(INamedTypeSymbol typeSymbol, [NotNullWhen(true)] out IMethodSymbol? primaryConstructor)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\LanguageServices\SyntaxGeneratorInternalExtensions\SyntaxGeneratorInternal.cs (1)
123public abstract SyntaxNode DeclarationPattern(INamedTypeSymbol type, string name);
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\LanguageServices\TypeInferenceService\AbstractTypeInferenceService.AbstractTypeInferrer.cs (1)
102protected static IEnumerable<TypeInferenceInfo> GetCollectionElementType(INamedTypeSymbol type)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\Simplification\SimplificationHelpers.cs (1)
80var typeSymbol = semanticModel.Compilation.GetSpecialType(specialType);
UpgradeMSBuildWorkspaceAnalyzer.cs (1)
85var msbuildWorkspace = context.Compilation.GetOrCreateTypeByMetadataName(MSBuildWorkspaceFullName);
Microsoft.CodeAnalysis.AnalyzerUtilities (693)
src\roslyn\src\Compilers\Core\Portable\SourceGeneration\GeneratedCodeUtilities.cs (1)
19ISymbol symbol, INamedTypeSymbol generatedCodeAttribute)
src\roslyn\src\RoslynAnalyzers\Utilities\Compiler\CodeMetrics\CodeAnalysisMetricData.AssemblyMetricData.cs (2)
21ImmutableHashSet<INamedTypeSymbol> coupledNamedTypes, 45var coupledTypesBuilder = ImmutableHashSet.CreateBuilder<INamedTypeSymbol>();
src\roslyn\src\RoslynAnalyzers\Utilities\Compiler\CodeMetrics\CodeAnalysisMetricData.cs (4)
29ImmutableHashSet<INamedTypeSymbol> coupledNamedTypes, 79public ImmutableHashSet<INamedTypeSymbol> CoupledNamedTypes { get; } 271SymbolKind.NamedType => await NamedTypeMetricData.ComputeAsync((INamedTypeSymbol)symbol, context).ConfigureAwait(false), 309SymbolKind.NamedType => NamedTypeMetricData.ComputeSynchronously((INamedTypeSymbol)symbol, context),
src\roslyn\src\RoslynAnalyzers\Utilities\Compiler\CodeMetrics\CodeAnalysisMetricData.EventMetricData.cs (2)
18ImmutableHashSet<INamedTypeSymbol> coupledNamedTypes, 30var coupledTypesBuilder = ImmutableHashSet.CreateBuilder<INamedTypeSymbol>();
src\roslyn\src\RoslynAnalyzers\Utilities\Compiler\CodeMetrics\CodeAnalysisMetricData.FieldMetricData.cs (2)
18ImmutableHashSet<INamedTypeSymbol> coupledNamedTypes, 29var coupledTypesBuilder = ImmutableHashSet.CreateBuilder<INamedTypeSymbol>();
src\roslyn\src\RoslynAnalyzers\Utilities\Compiler\CodeMetrics\CodeAnalysisMetricData.MethodMetricData.cs (2)
18ImmutableHashSet<INamedTypeSymbol> coupledNamedTypes, 29var coupledTypesBuilder = ImmutableHashSet.CreateBuilder<INamedTypeSymbol>();
src\roslyn\src\RoslynAnalyzers\Utilities\Compiler\CodeMetrics\CodeAnalysisMetricData.NamedTypeMetricData.cs (10)
18INamedTypeSymbol symbol, 21ImmutableHashSet<INamedTypeSymbol> coupledNamedTypes, 31internal static async Task<NamedTypeMetricData> ComputeAsync(INamedTypeSymbol namedType, CodeMetricsAnalysisContext context) 40internal static NamedTypeMetricData ComputeSynchronously(INamedTypeSymbol namedType, CodeMetricsAnalysisContext context) 49private static IEnumerable<ISymbol> GetMembers(INamedTypeSymbol namedType, CodeMetricsAnalysisContext context) 65private static NamedTypeMetricData ComputeFromChildren(INamedTypeSymbol namedType, ImmutableArray<CodeAnalysisMetricData> children, CodeMetricsAnalysisContext context) 67var coupledTypesBuilder = ImmutableHashSet.CreateBuilder<INamedTypeSymbol>(); 130private static int CalculateDepthOfInheritance(INamedTypeSymbol namedType, Func<INamedTypeSymbol, bool> isExcludedFromInheritanceCount) 137var parent = namedType.BaseType;
src\roslyn\src\RoslynAnalyzers\Utilities\Compiler\CodeMetrics\CodeAnalysisMetricData.NamespaceMetricData.cs (7)
20ImmutableHashSet<INamedTypeSymbol> coupledNamedTypes, 44var coupledTypesBuilder = ImmutableHashSet.CreateBuilder<INamedTypeSymbol>(); 76var typesInNamespace = new HashSet<INamedTypeSymbol>(); 77foreach (INamedTypeSymbol typeMember in @namespace.GetTypeMembers()) 83foreach (INamedTypeSymbol namedType in typesInNamespace.OrderBy(t => t.ToDisplayString())) 90void processType(INamedTypeSymbol namedType) 93foreach (INamedTypeSymbol nestedType in namedType.GetTypeMembers())
src\roslyn\src\RoslynAnalyzers\Utilities\Compiler\CodeMetrics\CodeAnalysisMetricData.PropertyMetricData.cs (2)
18ImmutableHashSet<INamedTypeSymbol> coupledNamedTypes, 30var coupledTypesBuilder = ImmutableHashSet.CreateBuilder<INamedTypeSymbol>();
src\roslyn\src\RoslynAnalyzers\Utilities\Compiler\CodeMetrics\CodeMetricsAnalysisContext.cs (2)
18Func<INamedTypeSymbol, bool>? isExcludedFromInheritanceCountFunc = null) 32public Func<INamedTypeSymbol, bool> IsExcludedFromInheritanceCountFunc { get; }
src\roslyn\src\RoslynAnalyzers\Utilities\Compiler\CodeMetrics\MetricsHelper.cs (12)
38internal static void AddCoupledNamedTypes(ImmutableHashSet<INamedTypeSymbol>.Builder builder, WellKnownTypeProvider wellKnownTypeProvider, 39ImmutableHashSet<INamedTypeSymbol> coupledTypes) 41foreach (var coupledType in coupledTypes) 47internal static void AddCoupledNamedTypes(ImmutableHashSet<INamedTypeSymbol>.Builder builder, WellKnownTypeProvider wellKnownTypeProvider, 53internal static void AddCoupledNamedTypes(ImmutableHashSet<INamedTypeSymbol>.Builder builder, WellKnownTypeProvider wellKnownTypeProvider, 194ImmutableHashSet<INamedTypeSymbol>.Builder builder, 348private static void AddCoupledNamedTypesCore(ImmutableHashSet<INamedTypeSymbol>.Builder builder, ITypeSymbol typeOpt, 351if (typeOpt is INamedTypeSymbol usedType && 369static bool isIgnoreableType(INamedTypeSymbol namedType, WellKnownTypeProvider wellKnownTypeProvider) 399internal static void RemoveContainingTypes(ISymbol symbol, ImmutableHashSet<INamedTypeSymbol>.Builder coupledTypesBuilder) 401var namedType = symbol as INamedTypeSymbol ?? symbol.ContainingType;
src\roslyn\src\RoslynAnalyzers\Utilities\Compiler\DiagnosticHelpers.cs (1)
68if (symbol is INamedTypeSymbol namedType &&
src\roslyn\src\RoslynAnalyzers\Utilities\Compiler\DoNotCatchGeneralUnlessRethrown.cs (8)
35protected virtual bool IsConfiguredDisallowedExceptionType(INamedTypeSymbol namedTypeSymbol, IMethodSymbol containingMethod, Compilation compilation, AnalyzerOptions analyzerOptions, CancellationToken cancellationToken) 47INamedTypeSymbol? requiredAttributeType = null; 86bool IsDisallowedCatchType(INamedTypeSymbol type) => 94private INamedTypeSymbol? GetRequiredAttributeType(Compilation compilation) 100private static IReadOnlyCollection<INamedTypeSymbol> GetDisallowedCatchTypes(Compilation compilation) 115private readonly Func<INamedTypeSymbol, bool> _isDisallowedCatchType; 121public DisallowGeneralCatchUnlessRethrowWalker(Func<INamedTypeSymbol, bool> isDisallowedCatchType, bool checkAnonymousFunctions) 163return operation.ExceptionType is INamedTypeSymbol exceptionType &&
src\roslyn\src\RoslynAnalyzers\Utilities\Compiler\Extensions\CompilationExtensions.cs (4)
21/// <returns>The <see cref="INamedTypeSymbol"/> if found, null otherwise.</returns> 22internal static INamedTypeSymbol? GetOrCreateTypeByMetadataName(this Compilation compilation, string fullTypeName) => 30/// <returns>The <see cref="INamedTypeSymbol"/> if found, null otherwise.</returns> 31internal static bool TryGetOrCreateTypeByMetadataName(this Compilation compilation, string fullTypeName, [NotNullWhen(returnValue: true)] out INamedTypeSymbol? namedTypeSymbol) =>
src\roslyn\src\RoslynAnalyzers\Utilities\Compiler\Extensions\IMethodSymbolExtensions.cs (42)
89public static bool IsImplementationOfInterfaceMethod(this IMethodSymbol method, ITypeSymbol? typeArgument, [NotNullWhen(returnValue: true)] INamedTypeSymbol? interfaceType, string interfaceMethodName) 91INamedTypeSymbol? constructedInterface = typeArgument != null ? interfaceType?.Construct(typeArgument) : interfaceType; 102INamedTypeSymbol? iDisposable = compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemIDisposable); 111INamedTypeSymbol? iAsyncDisposable = compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemIAsyncDisposable); 112INamedTypeSymbol? valueTaskType = compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemThreadingTasksValueTask); 119public static bool IsDisposeImplementation([NotNullWhen(returnValue: true)] this IMethodSymbol? method, [NotNullWhen(returnValue: true)] INamedTypeSymbol? iDisposable) 141public static bool IsAsyncDisposeImplementation([NotNullWhen(returnValue: true)] this IMethodSymbol? method, [NotNullWhen(returnValue: true)] INamedTypeSymbol? iAsyncDisposable, [NotNullWhen(returnValue: true)] INamedTypeSymbol? valueTaskType) 200private static bool HasDisposeCloseAsyncMethodSignature(this IMethodSymbol method, INamedTypeSymbol? taskType) 208INamedTypeSymbol? task, 209INamedTypeSymbol? valueTask, 210INamedTypeSymbol? configuredValueTaskAwaitable) 223private static bool HasOverriddenDisposeCoreAsyncMethodSignature(this IMethodSymbol method, [NotNullWhen(returnValue: true)] INamedTypeSymbol? task) 236private static bool HasVirtualOrOverrideDisposeCoreAsyncMethodSignature(this IMethodSymbol method, [NotNullWhen(returnValue: true)] INamedTypeSymbol? valueTask) 250INamedTypeSymbol? iDisposable = compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemIDisposable); 251INamedTypeSymbol? iAsyncDisposable = compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemIAsyncDisposable); 252INamedTypeSymbol? configuredAsyncDisposable = compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemRuntimeCompilerServicesConfiguredAsyncDisposable); 253INamedTypeSymbol? task = compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemThreadingTasksTask); 254INamedTypeSymbol? valueTask = compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemThreadingTasksValueTask); 255INamedTypeSymbol? configuredValueTaskAwaitable = compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemRuntimeCompilerServicesConfiguredValueTaskAwaitable); 264INamedTypeSymbol? iDisposable, 265INamedTypeSymbol? iAsyncDisposable, 266INamedTypeSymbol? configuredAsyncDisposable, 267INamedTypeSymbol? task, 268INamedTypeSymbol? valueTask, 269INamedTypeSymbol? configuredValueTaskAwaitable) 311public static bool IsSerializationConstructor([NotNullWhen(returnValue: true)] this IMethodSymbol? method, INamedTypeSymbol? serializationInfoType, INamedTypeSymbol? streamingContextType) 317public static bool IsGetObjectData([NotNullWhen(returnValue: true)] this IMethodSymbol? method, INamedTypeSymbol? serializationInfoType, INamedTypeSymbol? streamingContextType) 364public static bool IsCollectionAddMethod(this IMethodSymbol method, ImmutableHashSet<INamedTypeSymbol> iCollectionTypes) 385public static bool IsTaskFromResultMethod(this IMethodSymbol method, [NotNullWhen(returnValue: true)] INamedTypeSymbol? taskType) 394public static bool IsTaskConfigureAwaitMethod(this IMethodSymbol method, [NotNullWhen(returnValue: true)] INamedTypeSymbol? genericTaskType) 406public static bool IsAsyncDisposableConfigureAwaitMethod(this IMethodSymbol method, [NotNullWhen(returnValue: true)] INamedTypeSymbol? asyncDisposableType, [NotNullWhen(returnValue: true)] INamedTypeSymbol? taskAsyncEnumerableExtensions) 483public static bool IsLockMethod(this IMethodSymbol method, [NotNullWhen(returnValue: true)] INamedTypeSymbol? systemThreadingMonitor) 493public static bool IsInterlockedExchangeMethod(this IMethodSymbol method, INamedTypeSymbol? systemThreadingInterlocked) 505public static bool IsInterlockedCompareExchangeMethod(this IMethodSymbol method, INamedTypeSymbol? systemThreadingInterlocked) 536public static bool IsBenchmarkOrXUnitTestMethod(this IMethodSymbol method, ConcurrentDictionary<INamedTypeSymbol, bool> knownTestAttributes, INamedTypeSymbol? benchmarkAttribute, INamedTypeSymbol? xunitFactAttribute) 561var typeSymbol = methodSymbol.ContainingType;
src\roslyn\src\RoslynAnalyzers\Utilities\Compiler\Extensions\INamedTypeSymbolExtensions.cs (9)
17public static bool IsFileLocal(this INamedTypeSymbol symbol) => symbol.IsFileLocal; 41public static bool DerivesFromOrImplementsAnyConstructionOf(this INamedTypeSymbol type, INamedTypeSymbol parentType) 48for (INamedTypeSymbol? baseType = type.OriginalDefinition; 66public static bool OverridesEquals(this INamedTypeSymbol symbol) 72public static bool IsBenchmarkOrXUnitTestAttribute(this INamedTypeSymbol attributeClass, ConcurrentDictionary<INamedTypeSymbol, bool> knownTestAttributes, INamedTypeSymbol? benchmarkAttribute, INamedTypeSymbol? xunitFactAttribute)
src\roslyn\src\RoslynAnalyzers\Utilities\Compiler\Extensions\IPropertySymbolExtensions.cs (1)
36var typeSymbol = propertySymbol.ContainingType;
src\roslyn\src\RoslynAnalyzers\Utilities\Compiler\Extensions\ISymbolExtensions.cs (9)
153foreach (INamedTypeSymbol interfaceSymbol in symbol.ContainingType.AllInterfaces) 240public static AttributeData? GetAttribute(this ISymbol symbol, [NotNullWhen(true)] INamedTypeSymbol? attributeType) 245public static IEnumerable<AttributeData> GetAttributes(this ISymbol symbol, IEnumerable<INamedTypeSymbol?> attributesToMatch) 252foreach (var attributeToMatch in attributesToMatch) 263public static IEnumerable<AttributeData> GetAttributes(this ISymbol symbol, params INamedTypeSymbol?[] attributeTypesToMatch) 268public static bool HasAnyAttribute(this ISymbol symbol, IEnumerable<INamedTypeSymbol> attributesToMatch) 273public static bool HasAnyAttribute(this ISymbol symbol, params INamedTypeSymbol?[] attributeTypesToMatch) 292public static bool HasDerivedTypeAttribute(this ITypeSymbol symbol, [NotNullWhen(returnValue: true)] INamedTypeSymbol? attribute) 331public static bool HasDerivedMethodAttribute(this IMethodSymbol symbol, [NotNullWhen(returnValue: true)] INamedTypeSymbol? attribute)
src\roslyn\src\RoslynAnalyzers\Utilities\Compiler\Extensions\ITypeSymbolExtensions.cs (14)
116INamedTypeSymbol? iDisposable, 117INamedTypeSymbol? iAsyncDisposable, 118INamedTypeSymbol? configuredAsyncDisposable) 138static bool IsInterfaceOrImplementsInterface(ITypeSymbol type, INamedTypeSymbol? interfaceType) 148public static IEnumerable<AttributeData> GetApplicableAttributes(this INamedTypeSymbol type, INamedTypeSymbol? attributeUsageAttribute) 180static bool IsInheritedAttribute(AttributeData attributeData, INamedTypeSymbol attributeUsageAttribute) 182for (var currentAttributeClass = attributeData.AttributeClass; 215public static IEnumerable<AttributeData> GetApplicableExportAttributes(this INamedTypeSymbol? type, INamedTypeSymbol? exportAttributeV1, INamedTypeSymbol? exportAttributeV2, INamedTypeSymbol? inheritedExportAttribute) 263=> typeSymbol.IsNullableValueType() && ((INamedTypeSymbol)typeSymbol).TypeArguments[0].SpecialType == SpecialType.System_Boolean; 266=> (typeSymbol as INamedTypeSymbol)?.TupleUnderlyingType ?? typeSymbol;
src\roslyn\src\RoslynAnalyzers\Utilities\Compiler\Options\AnalyzerOptionsExtensions.cs (9)
279if (symbol is INamedTypeSymbol namedType && !excludedTypeNamesWithDerivedTypes.IsEmpty) 281foreach (var type in namedType.GetBaseTypesAndThis()) 377public static SymbolNamesWithValueOption<INamedTypeSymbol?> GetAdditionalRequiredGenericInterfaces( 384private static SymbolNamesWithValueOption<INamedTypeSymbol?> GetAdditionalRequiredGenericInterfaces( 392static SymbolNamesWithValueOption<INamedTypeSymbol?>.NameParts GetParts(string name, Compilation compilation) 399return new SymbolNamesWithValueOption<INamedTypeSymbol?>.NameParts(name, null); 411matchingSymbols[0] is not INamedTypeSymbol namedType || 416return new SymbolNamesWithValueOption<INamedTypeSymbol?>.NameParts(split[0], null); 419return new SymbolNamesWithValueOption<INamedTypeSymbol?>.NameParts(split[0], namedType);
src\roslyn\src\RoslynAnalyzers\Utilities\Compiler\WellKnownTypeProvider.cs (11)
32_fullNameToTypeMap = new ConcurrentDictionary<string, INamedTypeSymbol?>(StringComparer.Ordinal); 65/// Mapping of full name to <see cref="INamedTypeSymbol"/>. 67private readonly ConcurrentDictionary<string, INamedTypeSymbol?> _fullNameToTypeMap; 94[NotNullWhen(returnValue: true)] out INamedTypeSymbol? namedTypeSymbol) 106[NotNullWhen(returnValue: true)] out INamedTypeSymbol? namedTypeSymbol) 118INamedTypeSymbol? type = null; 152var currentType = referencedAssembly.GetTypeByMetadataName(fullyQualifiedMetadataName); 188/// <returns>The <see cref="INamedTypeSymbol"/> if found, null otherwise.</returns> 189public INamedTypeSymbol? GetOrCreateTypeByMetadataName(string fullTypeName) 191TryGetOrCreateTypeByMetadataName(fullTypeName, out INamedTypeSymbol? namedTypeSymbol); 209&& typeSymbol is INamedTypeSymbol namedTypeSymbol
src\roslyn\src\RoslynAnalyzers\Utilities\FlowAnalysis\FlowAnalysis\Analysis\DisposeAnalysis\DisposeAnalysis.cs (2)
42ImmutableHashSet<INamedTypeSymbol> disposeOwnershipTransferLikelyTypes, 88ImmutableHashSet<INamedTypeSymbol> disposeOwnershipTransferLikelyTypes,
src\roslyn\src\RoslynAnalyzers\Utilities\FlowAnalysis\FlowAnalysis\Analysis\DisposeAnalysis\DisposeAnalysis.DisposeDataFlowOperationVisitor.cs (1)
29private ImmutableHashSet<INamedTypeSymbol> DisposeOwnershipTransferLikelyTypes => DataFlowAnalysisContext.DisposeOwnershipTransferLikelyTypes;
src\roslyn\src\RoslynAnalyzers\Utilities\FlowAnalysis\FlowAnalysis\Analysis\DisposeAnalysis\DisposeAnalysisContext.cs (3)
37ImmutableHashSet<INamedTypeSymbol> disposeOwnershipTransferLikelyTypes, 76ImmutableHashSet<INamedTypeSymbol> disposeOwnershipTransferLikelyTypes, 108internal ImmutableHashSet<INamedTypeSymbol> DisposeOwnershipTransferLikelyTypes { get; }
src\roslyn\src\RoslynAnalyzers\Utilities\FlowAnalysis\FlowAnalysis\Analysis\DisposeAnalysis\DisposeAnalysisHelper.cs (16)
44private readonly ImmutableHashSet<INamedTypeSymbol> _disposeOwnershipTransferLikelyTypes; 45private ConcurrentDictionary<INamedTypeSymbol, ImmutableHashSet<IFieldSymbol>>? _lazyDisposableFieldsMap; 46public INamedTypeSymbol? IDisposable { get; } 47public INamedTypeSymbol? IAsyncDisposable { get; } 48public INamedTypeSymbol? ConfiguredAsyncDisposable { get; } 49public INamedTypeSymbol? Task { get; } 50public INamedTypeSymbol? ValueTask { get; } 51public INamedTypeSymbol? ConfiguredValueTaskAwaitable { get; } 52public INamedTypeSymbol? StringReader { get; } 53public INamedTypeSymbol? MemoryStream { get; } 70ImmutableHashSet<INamedTypeSymbol>.Empty; 73private static ImmutableHashSet<INamedTypeSymbol> GetDisposeOwnershipTransferLikelyTypes(Compilation compilation) 75var builder = PooledHashSet<INamedTypeSymbol>.GetInstance(); 78INamedTypeSymbol? typeSymbol = compilation.GetOrCreateTypeByMetadataName(typeName); 92Interlocked.CompareExchange(ref _lazyDisposableFieldsMap, new ConcurrentDictionary<INamedTypeSymbol, ImmutableHashSet<IFieldSymbol>>(), null); 179public ImmutableHashSet<IFieldSymbol> GetDisposableFields(INamedTypeSymbol namedType)
src\roslyn\src\RoslynAnalyzers\Utilities\FlowAnalysis\FlowAnalysis\Analysis\GlobalFlowStateAnalysis\GlobalFlowStateAnalysis.cs (2)
70ImmutableArray<INamedTypeSymbol> additionalSupportedValueTypes = default, 100ImmutableArray<INamedTypeSymbol> additionalSupportedValueTypes = default,
src\roslyn\src\RoslynAnalyzers\Utilities\FlowAnalysis\FlowAnalysis\Analysis\ParameterValidationAnalysis\ParameterValidationAnalysis.ParameterValidationDataFlowOperationVisitor.cs (1)
29private readonly INamedTypeSymbol? _notNullAttributeType;
src\roslyn\src\RoslynAnalyzers\Utilities\FlowAnalysis\FlowAnalysis\Analysis\PointsToAnalysis\PointsToAnalysis.PointsToDataFlowOperationVisitor.cs (2)
1001method.ReturnType is INamedTypeSymbol namedType && 1022symbol.GetMemberType() is INamedTypeSymbol namedType &&
src\roslyn\src\RoslynAnalyzers\Utilities\FlowAnalysis\FlowAnalysis\Analysis\PropertySetAnalysis\HazardousUsageEvaluatorCollection.cs (3)
104internal ImmutableDictionary<(INamedTypeSymbol, bool), string> GetTypeToNameMapping(WellKnownTypeProvider wellKnownTypeProvider) 106using var _ = PooledDictionary<(INamedTypeSymbol, bool), string>.GetInstance(out var pooledDictionary); 115if (wellKnownTypeProvider.TryGetOrCreateTypeByMetadataName(kvp.Key.InstanceTypeName, out INamedTypeSymbol? namedTypeSymbol))
src\roslyn\src\RoslynAnalyzers\Utilities\FlowAnalysis\FlowAnalysis\Analysis\PropertySetAnalysis\PropertySetAnalysis.PropertySetDataFlowOperationVisitor.cs (6)
55private readonly ImmutableHashSet<INamedTypeSymbol> TrackedTypeSymbols; 68ImmutableHashSet<INamedTypeSymbol>.Builder builder = ImmutableHashSet.CreateBuilder<INamedTypeSymbol>(); 71if (this.WellKnownTypeProvider.TryGetOrCreateTypeByMetadataName(typeToTrackMetadataName, out INamedTypeSymbol? trackedTypeSymbol)) 560private bool GetNamesOfHazardousUsageTypes(INamedTypeSymbol containingType, [NotNullWhen(returnValue: true)] out PooledHashSet<string>? hazardousUsageTypeNames) 571foreach (INamedTypeSymbol type in containingType.GetBaseTypesAndThis())
src\roslyn\src\RoslynAnalyzers\Utilities\FlowAnalysis\FlowAnalysis\Analysis\PropertySetAnalysis\PropertySetAnalysisContext.cs (2)
45ImmutableDictionary<(INamedTypeSymbol, bool), string> hazardousUsageTypesToNames) 158public ImmutableDictionary<(INamedTypeSymbol, bool), string> HazardousUsageTypesToNames { get; }
src\roslyn\src\RoslynAnalyzers\Utilities\FlowAnalysis\FlowAnalysis\Analysis\TaintedDataAnalysis\TaintedDataSymbolMap.cs (5)
26if (!wellKnownTypeProvider.TryGetOrCreateTypeByMetadataName(dependency, out INamedTypeSymbol? _)) 56if (wellKnownTypeProvider.TryGetOrCreateTypeByMetadataName(info.FullTypeName, out INamedTypeSymbol? namedTypeSymbol)) 113public IEnumerable<TInfo> GetInfosForType(INamedTypeSymbol namedTypeSymbol) 130foreach (INamedTypeSymbol interfaceSymbol in namedTypeSymbol.AllInterfaces) 141foreach (INamedTypeSymbol typeSymbol in namedTypeSymbol.GetBaseTypesAndThis())
src\roslyn\src\RoslynAnalyzers\Utilities\FlowAnalysis\FlowAnalysis\Analysis\TaintedDataAnalysis\TaintedDataSymbolMapExtensions.cs (2)
158if (arrayTypeSymbol.ElementType is INamedTypeSymbol elementType) 213if (propertyReferenceOperation.Instance?.Type is not INamedTypeSymbol namedType)
src\roslyn\src\RoslynAnalyzers\Utilities\FlowAnalysis\FlowAnalysis\Analysis\TaintedDataAnalysis\WebInputSources.cs (3)
25private static readonly BoundedCacheWithFactory<Compilation, ConcurrentDictionary<INamedTypeSymbol, bool>> s_classIsControllerByCompilation = new(); 87|| methodSymbol.ContainingSymbol is not INamedTypeSymbol typeSymbol) 92var classCache = s_classIsControllerByCompilation.GetOrCreateValue(wellKnownTypeProvider.Compilation, (compilation) => new ConcurrentDictionary<INamedTypeSymbol, bool>());
src\roslyn\src\RoslynAnalyzers\Utilities\FlowAnalysis\FlowAnalysis\Analysis\ValueContentAnalysis\ValueContentAbstractValue.cs (1)
127else if (type is INamedTypeSymbol namedTypeSymbol
src\roslyn\src\RoslynAnalyzers\Utilities\FlowAnalysis\FlowAnalysis\Analysis\ValueContentAnalysis\ValueContentAnalysis.cs (2)
56ImmutableArray<INamedTypeSymbol> additionalSupportedValueTypes = default, 90ImmutableArray<INamedTypeSymbol> additionalSupportedValueTypes = default,
src\roslyn\src\RoslynAnalyzers\Utilities\FlowAnalysis\FlowAnalysis\Analysis\ValueContentAnalysis\ValueContentAnalysis.ValueContentDataFlowOperationVisitor.cs (2)
215operation.Type is INamedTypeSymbol namedType && 244var incrementValueType = WellKnownTypeProvider.Compilation.GetSpecialType(SpecialType.System_Int32);
src\roslyn\src\RoslynAnalyzers\Utilities\FlowAnalysis\FlowAnalysis\Analysis\ValueContentAnalysis\ValueContentAnalysisContext.cs (4)
35ImmutableArray<INamedTypeSymbol> additionalSupportedValueTypes, 45AdditionalSupportedValueTypes = additionalSupportedValueTypes.IsDefault ? ImmutableArray<INamedTypeSymbol>.Empty : additionalSupportedValueTypes; 49public ImmutableArray<INamedTypeSymbol> AdditionalSupportedValueTypes { get; } 63ImmutableArray<INamedTypeSymbol> additionalSupportedValueTypes,
src\roslyn\src\RoslynAnalyzers\Utilities\FlowAnalysis\FlowAnalysis\Framework\DataFlow\AbstractLocation.cs (2)
23/// 2. Location for the implicit 'this' or 'Me' instance being analyzed (<see cref="CreateThisOrMeLocation(INamedTypeSymbol, ImmutableStack{IOperation})"/>). 62public static AbstractLocation CreateThisOrMeLocation(INamedTypeSymbol namedTypeSymbol, ImmutableStack<IOperation>? creationCallStack)
src\roslyn\src\RoslynAnalyzers\Utilities\FlowAnalysis\FlowAnalysis\Framework\DataFlow\AnalysisEntity.cs (2)
88private AnalysisEntity(INamedTypeSymbol namedType, PointsToAbstractValue location, bool isThisOrMeInstance) 117public static AnalysisEntity CreateThisOrMeInstance(INamedTypeSymbol typeSymbol, PointsToAbstractValue instanceLocation)
src\roslyn\src\RoslynAnalyzers\Utilities\FlowAnalysis\FlowAnalysis\Framework\DataFlow\AnalysisEntityFactory.cs (3)
49INamedTypeSymbol containingTypeSymbol, 339var tupleType = (INamedTypeSymbol)tupleOperation.Type;
src\roslyn\src\RoslynAnalyzers\Utilities\FlowAnalysis\FlowAnalysis\Framework\DataFlow\DataFlowOperationVisitor.cs (47)
728if (thrownExceptionType is INamedTypeSymbol exceptionType && 1728(analysisEntity.Type as INamedTypeSymbol)?.OverridesEquals() == false); 1773foreach (var interfaceType in methodSymbol.ContainingType.AllInterfaces) 3252void ProcessInterlockedOperation(IMethodSymbol targetMethod, ImmutableArray<IArgumentOperation> arguments, INamedTypeSymbol interlockedType) 4102/// <see cref="INamedTypeSymbol"/> for <see cref="System.Exception"/> 4104protected INamedTypeSymbol? ExceptionNamedType { get; } 4107/// <see cref="INamedTypeSymbol"/> for 'System.Diagnostics.Contracts.Contract' type. /> 4109protected INamedTypeSymbol? ContractNamedType { get; } 4112/// <see cref="INamedTypeSymbol"/> for <see cref="System.IDisposable"/> 4114protected INamedTypeSymbol? IDisposableNamedType { get; } 4117/// <see cref="INamedTypeSymbol"/> for "System.IAsyncDisposable" 4119private INamedTypeSymbol? IAsyncDisposableNamedType { get; } 4122/// <see cref="INamedTypeSymbol"/> for "System.Runtime.CompilerServices.ConfiguredAsyncDisposable" 4124private INamedTypeSymbol? ConfiguredAsyncDisposable { get; } 4127/// <see cref="INamedTypeSymbol"/> for "System.Runtime.CompilerServices.ConfiguredValueTaskAwaitable" 4129private INamedTypeSymbol? ConfiguredValueTaskAwaitable { get; } 4132/// <see cref="INamedTypeSymbol"/> for <see cref="System.Threading.Tasks.Task"/> 4134protected INamedTypeSymbol? TaskNamedType { get; } 4138/// <see cref="INamedTypeSymbol"/> for <see cref="T:System.Threading.Tasks.TaskAsyncEnumerableExtensions"/> 4140private INamedTypeSymbol? TaskAsyncEnumerableExtensions { get; } 4144/// <see cref="INamedTypeSymbol"/> for <see cref="System.IO.MemoryStream"/> 4146protected INamedTypeSymbol? MemoryStreamNamedType { get; } 4149/// <see cref="INamedTypeSymbol"/> for System.Threading.Tasks.ValueTask/> 4151private INamedTypeSymbol? ValueTaskNamedType { get; } 4154/// <see cref="INamedTypeSymbol"/> for <see cref="System.Threading.Tasks.Task{TResult}"/> 4156protected INamedTypeSymbol? GenericTaskNamedType { get; } 4159/// <see cref="INamedTypeSymbol"/> for <see cref="System.Threading.Monitor"/> 4161protected INamedTypeSymbol? MonitorNamedType { get; } 4164/// <see cref="INamedTypeSymbol"/> for <see cref="System.Threading.Interlocked"/> 4166protected INamedTypeSymbol? InterlockedNamedType { get; } 4169/// <see cref="INamedTypeSymbol"/> for 'System.Runtime.Serialization.SerializationInfo' type /> 4171protected INamedTypeSymbol? SerializationInfoNamedType { get; } 4174/// <see cref="INamedTypeSymbol"/> for 'System.Runtime.Serialization.StreamingContext' type /> 4176protected INamedTypeSymbol? StreamingContextNamedType { get; } 4179/// <see cref="INamedTypeSymbol"/> for <see cref="System.IEquatable{T}"/> 4181protected INamedTypeSymbol? GenericIEquatableNamedType { get; } 4184/// <see cref="INamedTypeSymbol"/> for <see cref="System.IO.StringReader"/> 4186protected INamedTypeSymbol? StringReaderType { get; } 4190/// 1. <see cref="INamedTypeSymbol"/> for <see cref="System.Collections.ICollection"/> 4191/// 2. <see cref="INamedTypeSymbol"/> for <see cref="System.Collections.Generic.ICollection{T}"/> 4192/// 3. <see cref="INamedTypeSymbol"/> for <see cref="System.Collections.Generic.IReadOnlyCollection{T}"/> 4194protected ImmutableHashSet<INamedTypeSymbol> CollectionNamedTypes { get; } 4198private ImmutableHashSet<INamedTypeSymbol> GetWellKnownCollectionTypes() 4200var builder = PooledHashSet<INamedTypeSymbol>.GetInstance(); 4201var iCollection = WellKnownTypeProvider.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemCollectionsICollection); 4207var genericICollection = WellKnownTypeProvider.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemCollectionsGenericICollection1); 4213var genericIReadOnlyCollection = WellKnownTypeProvider.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemCollectionsGenericIReadOnlyCollection1);
src\roslyn\src\RoslynAnalyzers\Utilities\FlowAnalysis\FlowAnalysis\Framework\DataFlow\ThrownExceptionInfo.cs (5)
19INamedTypeSymbol exceptionType, 31internal static ThrownExceptionInfo Create(BasicBlock block, INamedTypeSymbol exceptionType, ImmutableStack<IOperation>? interproceduralCallStack) 38var exceptionNamedType = wellKnownTypeProvider.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemException); 43private static ControlFlowRegion? GetHandlerRegion(BasicBlock block, INamedTypeSymbol exceptionType) 90internal INamedTypeSymbol ExceptionType { get; }
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Extensions\CollectionExpressionUtilities.cs (7)
61if (type is INamedTypeSymbol namedType) 71var ienumerableOfTType = compilation.IEnumerableOfTType(); 72var ienumerableType = compilation.IEnumerableType(); 73var foundType = 146Compilation compilation, INamedTypeSymbol collectionExpressionType) 148var readonlySpanOfTType = compilation.ReadOnlySpanOfTType(); 155if (attribute is not { ConstructorArguments: [{ Value: INamedTypeSymbol builderType }, { Value: string builderMethodName }] })
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Extensions\KnownTypes.cs (8)
11public readonly INamedTypeSymbol? TaskType = compilation.TaskType(); 12public readonly INamedTypeSymbol? TaskOfTType = compilation.TaskOfTType(); 13public readonly INamedTypeSymbol? ValueTaskType = compilation.ValueTaskType(); 14public readonly INamedTypeSymbol? ValueTaskOfTType = compilation.ValueTaskOfTType(); 16public readonly INamedTypeSymbol? IEnumerableOfTType = compilation.IEnumerableOfTType(); 17public readonly INamedTypeSymbol? IEnumeratorOfTType = compilation.IEnumeratorOfTType(); 19public readonly INamedTypeSymbol? IAsyncEnumerableOfTType = compilation.IAsyncEnumerableOfTType(); 20public readonly INamedTypeSymbol? IAsyncEnumeratorOfTType = compilation.IAsyncEnumeratorOfTType();
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Extensions\OperationExtensions.cs (2)
405var notImplementedExceptionType = compilation.NotImplementedExceptionType(); 454static bool IsThrowNotImplementedOperation(INamedTypeSymbol notImplementedExceptionType, IOperation? operation)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Extensions\SemanticModelExtensions.cs (4)
84return semanticModel.GetEnclosingSymbol<INamedTypeSymbol>(position, cancellationToken) ?? 88public static INamedTypeSymbol? GetEnclosingNamedType(this SemanticModel semanticModel, int position, CancellationToken cancellationToken) 89=> semanticModel.GetEnclosingSymbol<INamedTypeSymbol>(position, cancellationToken); 172var enumerableType = semanticModel.Compilation.IEnumerableOfTType();
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\FlowAnalysis\SymbolUsageAnalysis\SymbolUsageAnalysis.DataFlowAnalyzer.FlowGraphAnalysisData.cs (1)
143if (owningSymbol.ContainingSymbol is INamedTypeSymbol { IsExtension: true, ExtensionParameter: { } extensionParameter })
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\NamingStyles\NamingStyleRules.cs (3)
65var containingType = symbol.ContainingType; 87var containingType = symbol.ContainingType; 90foreach (var implementedInterface in implementedInterfaces)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Services\SemanticFacts\ISemanticFacts.cs (4)
68bool LastEnumValueHasInitializer(INamedTypeSymbol namedTypeSymbol); 89bool IsPartial(INamedTypeSymbol typeSymbol, CancellationToken cancellationToken); 108bool IsInExpressionTree(SemanticModel semanticModel, SyntaxNode node, [NotNullWhen(true)] INamedTypeSymbol? expressionType, CancellationToken cancellationToken); 123bool TryGetPrimaryConstructor(INamedTypeSymbol typeSymbol, [NotNullWhen(true)] out IMethodSymbol? primaryConstructor);
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\SymbolKey\SymbolKey.AnonymousFunctionOrDelegateSymbolKey.cs (1)
65var anonymousDelegate = methodSymbol.AssociatedAnonymousDelegate;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\SymbolKey\SymbolKey.AnonymousTypeSymbolKey.cs (5)
13private sealed class AnonymousTypeSymbolKey : AbstractSymbolKey<INamedTypeSymbol> 17public sealed override void Create(INamedTypeSymbol symbol, SymbolKeyWriter visitor) 34SymbolKeyReader reader, INamedTypeSymbol? contextualSymbol, out string? failureReason) 40using var propertyTypes = reader.ReadSymbolKeyArray<INamedTypeSymbol, ITypeSymbol>( 64var anonymousType = reader.Compilation.CreateAnonymousTypeSymbol(
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\SymbolKey\SymbolKey.cs (5)
43/// <item>Two <see cref="INamedTypeSymbol"/>s are the "same" if they have 46/// equal <see cref="INamedTypeSymbol.Arity"/> and 47/// the "same" <see cref="INamedTypeSymbol.TypeArguments"/>.</item> 301foreach (var containingType in containingTypeResolution.OfType<INamedTypeSymbol>())
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\SymbolKey\SymbolKey.ErrorTypeSymbolKey.cs (9)
12private sealed class ErrorTypeSymbolKey : AbstractSymbolKey<INamedTypeSymbol> 16public sealed override void Create(INamedTypeSymbol symbol, SymbolKeyWriter visitor) 21case INamedTypeSymbol parentType: 65SymbolKeyReader reader, INamedTypeSymbol? contextualType, out string? failureReason) 72using var typeArguments = reader.ReadSymbolKeyArray<INamedTypeSymbol, ITypeSymbol>( 92using var result = PooledArrayBuilder<INamedTypeSymbol>.GetInstance(); 97var originalType = reader.Compilation.CreateErrorTypeSymbol(container, name, arity); 98var errorType = typeArgumentsArray != null ? originalType.Construct(typeArgumentsArray) : originalType; 110SymbolKeyReader reader, INamedTypeSymbol? contextualType, out string? failureReason)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\SymbolKey\SymbolKey.FunctionPointerTypeSymbolKey.cs (2)
37var callingConventionModifiers = ImmutableArray<INamedTypeSymbol>.Empty; 40using var modifiersBuilder = reader.ReadSymbolKeyArray<IFunctionPointerTypeSymbol, INamedTypeSymbol>(
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\SymbolKey\SymbolKey.NamedTypeSymbolKey.cs (13)
9private sealed class NamedTypeSymbolKey : AbstractSymbolKey<INamedTypeSymbol> 13public sealed override void Create(INamedTypeSymbol symbol, SymbolKeyWriter visitor) 33SymbolKeyReader reader, INamedTypeSymbol? contextualSymbol, out string? failureReason) 48using var typeArguments = reader.ReadSymbolKeyArray<INamedTypeSymbol, ITypeSymbol>( 90INamedTypeSymbol? contextualType, 126using var result = PooledArrayBuilder<INamedTypeSymbol>.GetInstance(); 155using var result = PooledArrayBuilder<INamedTypeSymbol>.GetInstance(); 163PooledArrayBuilder<INamedTypeSymbol> result) 168foreach (var type in container.GetTypeMembers()) 176foreach (var type in container.GetTypeMembers(name, arity)) 200private static INamedTypeSymbol Construct(INamedTypeSymbol type, bool isUnboundGenericType, ITypeSymbol[] typeArguments) 202var currentType = typeArguments.Length > 0 ? type.Construct(typeArguments) : type;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\SymbolKey\SymbolKey.ParameterSymbolKey.cs (2)
64var delegateInvoke = (eventSymbol.Type as INamedTypeSymbol)?.DelegateInvokeMethod; 73case INamedTypeSymbol { IsExtension: true, ExtensionParameter: { } extensionParameter }:
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\SymbolKey\SymbolKey.SymbolKeyWriter.cs (2)
405public override void VisitNamedType(INamedTypeSymbol namedTypeSymbol) 412else if (namedTypeSymbol.IsTupleType && namedTypeSymbol.TupleUnderlyingType is INamedTypeSymbol underlyingType && underlyingType != namedTypeSymbol)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\SymbolKey\SymbolKey.TupleTypeSymbolKey.cs (10)
14private sealed class TupleTypeSymbolKey : AbstractSymbolKey<INamedTypeSymbol> 18public sealed override void Create(INamedTypeSymbol symbol, SymbolKeyWriter visitor) 53SymbolKeyReader reader, INamedTypeSymbol? contextualSymbol, out string? failureReason) 64SymbolKeyReader reader, INamedTypeSymbol? contextualSymbol, out string? failureReason) 78using var result = PooledArrayBuilder<INamedTypeSymbol>.GetInstance(); 81foreach (var namedType in underlyingTypeResolution.OfType<INamedTypeSymbol>()) 92SymbolKeyReader reader, INamedTypeSymbol? contextualType, out string? failureReason) 96using var elementTypes = reader.ReadSymbolKeyArray<INamedTypeSymbol, ITypeSymbol>( 120var result = reader.Compilation.CreateTupleTypeSymbol(
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Utilities\AbstractSpeculationAnalyzer.cs (5)
417var type = methodSymbol.ContainingType; 418var newType = newMethodSymbol.ContainingType; 491private static bool EnumTypesAreCompatible(INamedTypeSymbol type1, INamedTypeSymbol type2) 990var newSymbolContainingType = newSymbol.ContainingType;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Utilities\EnumValueUtilities.cs (1)
21public static object GetNextEnumValue(INamedTypeSymbol enumType)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Compilation\CompilationExtensions.cs (82)
78public static INamedTypeSymbol? ArgumentExceptionType(this Compilation compilation) 81public static INamedTypeSymbol? ArgumentNullExceptionType(this Compilation compilation) 84public static INamedTypeSymbol? ArgumentOutOfRangeExceptionType(this Compilation compilation) 87public static INamedTypeSymbol? ArrayType(this Compilation compilation) 90public static INamedTypeSymbol? AttributeType(this Compilation compilation) 93public static INamedTypeSymbol? BlockingCollectionOfTType(this Compilation compilation) 96public static INamedTypeSymbol? CollectionOfTType(this Compilation compilation) 99public static INamedTypeSymbol? ExceptionType(this Compilation compilation) 102public static INamedTypeSymbol? DebuggerDisplayAttributeType(this Compilation compilation) 105public static INamedTypeSymbol? StructLayoutAttributeType(this Compilation compilation) 108public static INamedTypeSymbol? InlineArrayAttributeType(this Compilation compilation) 111public static INamedTypeSymbol? DesignerCategoryAttributeType(this Compilation compilation) 114public static INamedTypeSymbol? DesignerGeneratedAttributeType(this Compilation compilation) 117public static INamedTypeSymbol? HideModuleNameAttribute(this Compilation compilation) 120public static INamedTypeSymbol? ThreadStaticAttributeType(this Compilation compilation) 123public static INamedTypeSymbol? FormattableStringType(this Compilation compilation) 126public static INamedTypeSymbol? IFormattableType(this Compilation compilation) 129public static INamedTypeSymbol? EventArgsType(this Compilation compilation) 132public static INamedTypeSymbol? NotImplementedExceptionType(this Compilation compilation) 135public static INamedTypeSymbol? EqualityComparerOfTType(this Compilation compilation) 138public static INamedTypeSymbol? ActionType(this Compilation compilation) 141public static INamedTypeSymbol? ExpressionOfTType(this Compilation compilation) 144public static INamedTypeSymbol? EditorBrowsableAttributeType(this Compilation compilation) 147public static INamedTypeSymbol? EditorBrowsableStateType(this Compilation compilation) 150public static INamedTypeSymbol? TaskType(this Compilation compilation) 153public static INamedTypeSymbol? TaskOfTType(this Compilation compilation) 156public static INamedTypeSymbol? ValueTaskType(this Compilation compilation) 159public static INamedTypeSymbol? ValueTaskOfTType(this Compilation compilation) 162public static INamedTypeSymbol? ICollectionOfTType(this Compilation compilation) 165public static INamedTypeSymbol? IEnumerableType(this Compilation compilation) 168public static INamedTypeSymbol? IEnumerableOfTType(this Compilation compilation) 171public static INamedTypeSymbol? IEnumeratorOfTType(this Compilation compilation) 174public static INamedTypeSymbol? IListOfTType(this Compilation compilation) 177public static INamedTypeSymbol? IReadOnlyListOfTType(this Compilation compilation) 180public static INamedTypeSymbol? ISetOfTType(this Compilation compilation) 183public static INamedTypeSymbol? IReadOnlySetOfTType(this Compilation compilation) 186public static INamedTypeSymbol? IAsyncEnumerableOfTType(this Compilation compilation) 189public static INamedTypeSymbol? IAsyncEnumeratorOfTType(this Compilation compilation) 192public static INamedTypeSymbol? ImmutableArrayOfTType(this Compilation compilation) 195public static INamedTypeSymbol? SerializableAttributeType(this Compilation compilation) 198public static INamedTypeSymbol? CoClassType(this Compilation compilation) 201public static INamedTypeSymbol? ComAliasNameAttributeType(this Compilation compilation) 204public static INamedTypeSymbol? SuppressMessageAttributeType(this Compilation compilation) 207public static INamedTypeSymbol? TupleElementNamesAttributeType(this Compilation compilation) 210public static INamedTypeSymbol? NativeIntegerAttributeType(this Compilation compilation) 213public static INamedTypeSymbol? DynamicAttributeType(this Compilation compilation) 216public static INamedTypeSymbol? LazyOfTType(this Compilation compilation) 219public static INamedTypeSymbol? ISerializableType(this Compilation compilation) 222public static INamedTypeSymbol? SerializationInfoType(this Compilation compilation) 225public static INamedTypeSymbol? StreamingContextType(this Compilation compilation) 228public static INamedTypeSymbol? OnDeserializingAttribute(this Compilation compilation) 231public static INamedTypeSymbol? OnDeserializedAttribute(this Compilation compilation) 234public static INamedTypeSymbol? OnSerializingAttribute(this Compilation compilation) 237public static INamedTypeSymbol? OnSerializedAttribute(this Compilation compilation) 240public static INamedTypeSymbol? ComRegisterFunctionAttribute(this Compilation compilation) 243public static INamedTypeSymbol? ComUnregisterFunctionAttribute(this Compilation compilation) 246public static INamedTypeSymbol? ConditionalAttribute(this Compilation compilation) 249public static INamedTypeSymbol? ObsoleteAttribute(this Compilation compilation) 252public static INamedTypeSymbol? SystemCompositionImportingConstructorAttribute(this Compilation compilation) 255public static INamedTypeSymbol? SystemComponentModelCompositionImportingConstructorAttribute(this Compilation compilation) 258public static INamedTypeSymbol? SystemIDisposableType(this Compilation compilation) 261public static INamedTypeSymbol? NotNullAttribute(this Compilation compilation) 264public static INamedTypeSymbol? MaybeNullAttribute(this Compilation compilation) 267public static INamedTypeSymbol? MaybeNullWhenAttribute(this Compilation compilation) 270public static INamedTypeSymbol? AllowNullAttribute(this Compilation compilation) 273public static INamedTypeSymbol? DisallowNullAttribute(this Compilation compilation) 276public static INamedTypeSymbol? DataMemberAttribute(this Compilation compilation) 279public static INamedTypeSymbol? DataContractAttribute(this Compilation compilation) 282public static INamedTypeSymbol? AsyncMethodBuilderAttribute(this Compilation compilation) 285public static INamedTypeSymbol? CancellationTokenType(this Compilation compilation) 288public static INamedTypeSymbol? ValueTupleType(this Compilation compilation, int arity) 291public static INamedTypeSymbol? ListOfTType(this Compilation compilation) 294public static INamedTypeSymbol? ReadOnlySpanOfTType(this Compilation compilation) 297public static INamedTypeSymbol? SpanOfTType(this Compilation compilation) 300public static INamedTypeSymbol? InterpolatedStringHandlerAttributeType(this Compilation compilation) 303public static INamedTypeSymbol? DateOnlyType(this Compilation compilation) 306public static INamedTypeSymbol? TimeOnlyType(this Compilation compilation) 334public static INamedTypeSymbol? GetBestTypeByMetadataName(this Compilation compilation, string fullyQualifiedMetadataName) 336INamedTypeSymbol? type = null; 338foreach (var currentType in compilation.GetTypesByMetadataName(fullyQualifiedMetadataName)) 373foreach (var candidateTopLevelType in compilation.SourceModule.GlobalNamespace.GetTypeMembers(WellKnownMemberNames.TopLevelStatementsEntryPointTypeName, arity: 0)) 385public static INamedTypeSymbol? TryGetCallingConventionSymbol(this Compilation compilation, string callingConvention)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\IMethodSymbolExtensions.cs (6)
26foreach (var nestedType in methodSymbol.ContainingType.GetTypeMembers()) 72public static bool HasEventHandlerSignature(this IMethodSymbol method, [NotNullWhen(returnValue: true)] INamedTypeSymbol? eventArgsType) 131public static bool IsEntryPoint(this IMethodSymbol methodSymbol, INamedTypeSymbol? taskType, INamedTypeSymbol? genericTaskType) 147if (method.ReturnType is not INamedTypeSymbol { Arity: 0 }) 169var containingType = constructor.ContainingType;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\INamedTypeSymbolExtensions.cs (77)
24public static IEnumerable<INamedTypeSymbol> GetBaseTypesAndThis(this INamedTypeSymbol? namedType) 26var current = namedType; 34public static IEnumerable<INamedTypeSymbol> GetContainingTypesAndThis(this INamedTypeSymbol? namedType) 36var current = namedType; 44public static ImmutableArray<ITypeParameterSymbol> GetAllTypeParameters(this INamedTypeSymbol? symbol) 50public static ImmutableArray<ITypeSymbol> GetAllTypeArguments(this INamedTypeSymbol? symbol) 56private static Stack<INamedTypeSymbol> GetContainmentStack(INamedTypeSymbol? symbol) 58var stack = new Stack<INamedTypeSymbol>(); 59for (var current = symbol; current != null; current = current.ContainingType) 67public static bool IsContainedWithin([NotNullWhen(returnValue: true)] this INamedTypeSymbol? symbol, INamedTypeSymbol outer) 70for (var current = symbol; current != null; current = current.ContainingType) 81public static ISymbol? FindImplementationForAbstractMember(this INamedTypeSymbol? type, ISymbol symbol) 92private static bool ImplementationExists(INamedTypeSymbol classOrStructType, ISymbol member) 96this INamedTypeSymbol classOrStructType, 98Func<INamedTypeSymbol, ISymbol, bool> isValidImplementation, 128private static bool IsInterfacePropertyImplemented(INamedTypeSymbol classOrStructType, IPropertySymbol propertySymbol) 136static bool IsAccessorImplemented(IMethodSymbol? accessor, INamedTypeSymbol classOrStructType) 142private static bool IsAbstractPropertyImplemented(INamedTypeSymbol classOrStructType, IPropertySymbol propertySymbol) 165this INamedTypeSymbol classOrStructType, 167Func<INamedTypeSymbol, ISymbol, bool> isValid, 190public static ImmutableArray<(INamedTypeSymbol type, ImmutableArray<ISymbol> members)> GetAllUnimplementedMembers( 191this INamedTypeSymbol classOrStructType, 192IEnumerable<INamedTypeSymbol> interfaces, 208static ImmutableArray<ISymbol> GetImplicitlyImplementableMembers(INamedTypeSymbol type, ISymbol within) 260public static ImmutableArray<(INamedTypeSymbol type, ImmutableArray<ISymbol> members)> GetAllUnimplementedMembersInThis( 261this INamedTypeSymbol classOrStructType, 262IEnumerable<INamedTypeSymbol> interfacesOrAbstractClasses, 278public static ImmutableArray<(INamedTypeSymbol type, ImmutableArray<ISymbol> members)> GetAllUnimplementedMembersInThis( 279this INamedTypeSymbol classOrStructType, 280IEnumerable<INamedTypeSymbol> interfacesOrAbstractClasses, 281Func<INamedTypeSymbol, ISymbol, ImmutableArray<ISymbol>> interfaceMemberGetter, 297public static ImmutableArray<(INamedTypeSymbol type, ImmutableArray<ISymbol> members)> GetAllUnimplementedExplicitMembers( 298this INamedTypeSymbol classOrStructType, 299IEnumerable<INamedTypeSymbol> interfaces, 311private static ImmutableArray<ISymbol> GetExplicitlyImplementableMembers(INamedTypeSymbol type, ISymbol within) 338private static ImmutableArray<(INamedTypeSymbol type, ImmutableArray<ISymbol> members)> GetAllUnimplementedMembers( 339this INamedTypeSymbol classOrStructType, 340IEnumerable<INamedTypeSymbol> interfacesOrAbstractClasses, 341Func<INamedTypeSymbol, ISymbol, Func<INamedTypeSymbol, ISymbol, bool>, CancellationToken, bool> isImplemented, 342Func<INamedTypeSymbol, ISymbol, bool> isValidImplementation, 343Func<INamedTypeSymbol, ISymbol, ImmutableArray<ISymbol>> interfaceMemberGetter, 372private static ImmutableArray<INamedTypeSymbol> GetTypesToImplement( 373INamedTypeSymbol classOrStructType, 374IEnumerable<INamedTypeSymbol> interfacesOrAbstractClasses, 383private static ImmutableArray<INamedTypeSymbol> GetAbstractClassesToImplement( 384IEnumerable<INamedTypeSymbol> abstractClasses) 389private static ImmutableArray<INamedTypeSymbol> GetInterfacesToImplement( 390INamedTypeSymbol classOrStructType, 391IEnumerable<INamedTypeSymbol> interfaces, 398var interfacesToImplement = new List<INamedTypeSymbol>( 403var baseType = classOrStructType.BaseType; 414this INamedTypeSymbol classOrStructType, 415INamedTypeSymbol interfaceType, 416Func<INamedTypeSymbol, ISymbol, Func<INamedTypeSymbol, ISymbol, bool>, CancellationToken, bool> isImplemented, 417Func<INamedTypeSymbol, ISymbol, bool> isValidImplementation, 418Func<INamedTypeSymbol, ISymbol, ImmutableArray<ISymbol>> interfaceMemberGetter, 460this INamedTypeSymbol attributeSymbol, 466var systemAttributeType = compilation.AttributeType(); 468foreach (var type in attributeSymbol.GetBaseTypesAndThis()) 528private static ImmutableArray<ISymbol> GetMembers(INamedTypeSymbol type, ISymbol within) 542this INamedTypeSymbol containingType, CancellationToken cancellationToken) 559foreach (var type in baseTypes) 580Dictionary<ISymbol, int> result, INamedTypeSymbol containingType, CancellationToken cancellationToken) 601Dictionary<ISymbol, int> result, INamedTypeSymbol containingType, CancellationToken cancellationToken) 623Dictionary<ISymbol, int> result, INamedTypeSymbol containingType, 624INamedTypeSymbol type, ref int index, CancellationToken cancellationToken) 637private static bool IsOverridable(ISymbol member, INamedTypeSymbol containingType) 680public static INamedTypeSymbol TryConstruct(this INamedTypeSymbol type, ITypeSymbol[] typeArguments) 683public static bool IsCollectionBuilderAttribute([NotNullWhen(true)] this INamedTypeSymbol? type) 702public static bool IsIEnumerableOfT([NotNullWhen(true)] this INamedTypeSymbol? type)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\INamespaceOrTypeSymbolExtensions.cs (3)
90public static IEnumerable<INamedTypeSymbol> GetAllTypes( 106var namedType = (INamedTypeSymbol)current;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\ISymbolExtensions.cs (16)
99foreach (var baseType in symbol.ContainingType.GetBaseTypes()) 108bool TryFindLooseMatch(ISymbol symbol, INamedTypeSymbol baseType, [NotNullWhen(true)] out ISymbol? looseMatch) 157foreach (var iface in symbol.ContainingType.AllInterfaces) 215public static INamedTypeSymbol? GetContainingTypeOrThis(this ISymbol symbol) 217if (symbol is INamedTypeSymbol namedType) 311=> symbol is INamedTypeSymbol { IsAnonymousType: true }; 354SymbolKind.NamedType => ((INamedTypeSymbol)symbol).Arity, 435INamedTypeSymbol nt => nt.TypeParameters, 456INamedTypeSymbol nt => nt.TypeArguments, 465var containingType = symbol.ContainingType; 506var delegateType = compilation.GetTypeByMetadataName(method.ReturnsVoid 535=> symbol is INamedTypeSymbol { IsStatic: true }; 551foreach (var type in namespaceOrType.GetAllTypes(cancellationToken)) 568private static bool IsAttributeValidForTargets(INamedTypeSymbol attributeType, AttributeTargets validTargets) 595return ((INamedTypeSymbol)symbol).GetMembers().OfType<IPropertySymbol>().Where(p => p.CanBeReferencedByName); 870public static bool HasAttribute([NotNullWhen(true)] this ISymbol? symbol, [NotNullWhen(true)] INamedTypeSymbol? attributeClass)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\ISymbolExtensions.RequiresUnsafeModifierVisitor.cs (1)
56public override bool VisitNamedType(INamedTypeSymbol symbol)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\ISymbolExtensions_Accessibility.cs (25)
27else if (within is INamedTypeSymbol namedType) 54INamedTypeSymbol within, 67INamedTypeSymbol within, 92Debug.Assert(within is INamedTypeSymbol or IAssemblySymbol); 124return IsNamedTypeAccessible((INamedTypeSymbol)symbol, within); 177private static bool IsNamedTypeAccessible(INamedTypeSymbol type, ISymbol within) 179Debug.Assert(within is INamedTypeSymbol or IAssemblySymbol); 204var containingType = type.ContainingType; 217Debug.Assert(within is INamedTypeSymbol or IAssemblySymbol); 219var withinAssembly = (within as IAssemblySymbol) ?? ((INamedTypeSymbol)within).ContainingAssembly; 248INamedTypeSymbol containingType, 254Debug.Assert(within is INamedTypeSymbol or IAssemblySymbol); 259var originalContainingType = containingType.OriginalDefinition; 260var withinNamedType = within as INamedTypeSymbol; 261var withinAssembly = (within as IAssemblySymbol) ?? ((INamedTypeSymbol)within).ContainingAssembly; 334INamedTypeSymbol? withinType, 337INamedTypeSymbol originalContainingType, 375var current = withinType.OriginalDefinition; 411INamedTypeSymbol originalContainingType) 413Debug.Assert(within is INamedTypeSymbol or IAssemblySymbol); 415if (within is not INamedTypeSymbol withinType) 428INamedTypeSymbol withinType, 429INamedTypeSymbol originalContainingType) 436var current = withinType.OriginalDefinition;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\ITypeGenerator.cs (1)
13ITypeSymbol Construct(INamedTypeSymbol namedType, ITypeSymbol[] typeArguments);
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\ITypeParameterSymbolExtensions.cs (4)
14public static INamedTypeSymbol? GetNamedTypeSymbolConstraint(this ITypeParameterSymbol typeParameter) 17private static INamedTypeSymbol? GetNamedTypeSymbol(ITypeSymbol type) 19return type is INamedTypeSymbol 20? (INamedTypeSymbol)type
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\ITypeSymbolExtensions.AnonymousTypeRemover.cs (1)
42public override ITypeSymbol VisitNamedType(INamedTypeSymbol symbol)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\ITypeSymbolExtensions.CollectTypeParameterSymbolsVisitor.cs (1)
57public override void VisitNamedType(INamedTypeSymbol symbol)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\ITypeSymbolExtensions.CompilationTypeGenerator.cs (1)
19public ITypeSymbol Construct(INamedTypeSymbol namedType, ITypeSymbol[] typeArguments)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\ITypeSymbolExtensions.cs (30)
43public static ImmutableArray<INamedTypeSymbol> GetAllInterfacesIncludingThis(this ITypeSymbol type) 46return type is INamedTypeSymbol { TypeKind: TypeKind.Interface } namedType && !allInterfaces.Contains(namedType) 69underlyingType = ((INamedTypeSymbol)symbol).TypeArguments[0]; 92public static bool IsAnonymousType([NotNullWhen(returnValue: true)] this INamedTypeSymbol? symbol) 95private static HashSet<INamedTypeSymbol> GetOriginalInterfacesAndTheirBaseInterfaces( 97HashSet<INamedTypeSymbol>? symbols = null) 99symbols ??= new HashSet<INamedTypeSymbol>(SymbolEquivalenceComparer.Instance); 101foreach (var interfaceType in type.Interfaces) 120public static IEnumerable<INamedTypeSymbol> GetBaseTypes(this ITypeSymbol? type) 122var current = type?.BaseType; 140public static IEnumerable<INamedTypeSymbol> GetContainingTypes(this ITypeSymbol type) 142var current = type.ContainingType; 198var currentBaseType = type.BaseType; 227for (var b = symbol.BaseType; b != null; b = b.BaseType) 316INamedTypeSymbol n => ContainsAnonymousType(n), 321private static bool ContainsAnonymousType(INamedTypeSymbol type) 417public static INamedTypeSymbol? GetDelegateType(this ITypeSymbol? typeSymbol, Compilation compilation) 421var expressionOfT = compilation.ExpressionOfTType(); 424var typeArgument = ((INamedTypeSymbol)typeSymbol).TypeArguments[0]; 425return typeArgument as INamedTypeSymbol; 430return typeSymbol as INamedTypeSymbol; 583var n2 = t2 as INamedTypeSymbol; 585if (t1 is not INamedTypeSymbol n1) 635public static bool IsEnumType([NotNullWhen(true)] this ITypeSymbol? type, [NotNullWhen(true)] out INamedTypeSymbol? enumType) 639enumType = (INamedTypeSymbol)type; 731if (type is not INamedTypeSymbol 784=> type is INamedTypeSymbol 792=> symbol is INamedTypeSymbol 800=> type is INamedTypeSymbol namedType &&
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\ITypeSymbolExtensions.MinimalAccessibilityVisitor.cs (2)
42foreach (var callingConventionType in symbol.Signature.UnmanagedCallingConventionTypes) 50public override Accessibility VisitNamedType(INamedTypeSymbol symbol)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\ITypeSymbolExtensions.SubstituteTypesVisitor.cs (1)
58public override ITypeSymbol VisitNamedType(INamedTypeSymbol symbol)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\ITypeSymbolExtensions.UnavailableTypeParameterRemover.cs (1)
43public override ITypeSymbol VisitNamedType(INamedTypeSymbol symbol)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\ITypeSymbolExtensions.UnnamedErrorTypeRemover.cs (1)
42public override ITypeSymbol VisitNamedType(INamedTypeSymbol symbol)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\SymbolEquivalenceComparer.cs (12)
149public bool ReturnTypeEquals(IMethodSymbol x, IMethodSymbol y, Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies = null) 164public bool Equals(ISymbol? x, ISymbol? y, Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies) 170private bool EqualsCore(ISymbol? x, ISymbol? y, Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies) 191private static bool IsConstructedFromSelf(INamedTypeSymbol symbol) 213private static OneOrMany<INamedTypeSymbol> Unwrap(INamedTypeSymbol namedType) 219using var builder = TemporaryArray<INamedTypeSymbol>.Empty; 224if (candidate is INamedTypeSymbol candidateType) 257private static TypeKind GetTypeKind(INamedTypeSymbol x)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\SymbolEquivalenceComparer.EquivalenceVisitor.cs (65)
22public bool AreEquivalent(ISymbol? x, ISymbol? y, Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies) 51return AreArrayAndReadOnlySpanEquivalent((IArrayTypeSymbol)x, (INamedTypeSymbol)y, equivalentTypesWithDifferingAssemblies); 55return AreArrayAndReadOnlySpanEquivalent((IArrayTypeSymbol)y, (INamedTypeSymbol)x, equivalentTypesWithDifferingAssemblies); 65private bool AreArrayAndReadOnlySpanEquivalent(IArrayTypeSymbol array, INamedTypeSymbol readOnlySpanType, Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies) 73internal bool AreEquivalent(CustomModifier x, CustomModifier y, Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies) 76internal bool AreEquivalent(ImmutableArray<CustomModifier> x, ImmutableArray<CustomModifier> y, Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies) 112private bool AreEquivalentWorker(ISymbol x, ISymbol y, SymbolKind k, Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies) 126SymbolKind.NamedType => NamedTypesAreEquivalent((INamedTypeSymbol)x, (INamedTypeSymbol)y, equivalentTypesWithDifferingAssemblies), 127SymbolKind.ErrorType => NamedTypesAreEquivalent((INamedTypeSymbol)x, (INamedTypeSymbol)y, equivalentTypesWithDifferingAssemblies), 140private bool ArrayTypesAreEquivalent(IArrayTypeSymbol x, IArrayTypeSymbol y, Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies) 152private bool FieldsAreEquivalent(IFieldSymbol x, IFieldSymbol y, Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies) 170private bool MethodsAreEquivalent(IMethodSymbol x, IMethodSymbol y, Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies, bool considerReturnRefKinds = false) 281private bool NamedTypesAreEquivalent(INamedTypeSymbol x, INamedTypeSymbol y, Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies) 301private bool NamedTypesAreEquivalentError(INamedTypeSymbol x, INamedTypeSymbol y, Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies) 303foreach (var type1 in Unwrap(x)) 306foreach (var type2 in Unwrap(y)) 330private bool HandleNamedTypesWorker(INamedTypeSymbol x, INamedTypeSymbol y, Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies) 418private bool HandleTupleTypes(INamedTypeSymbol x, INamedTypeSymbol y, Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies) 463Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies, 486internal bool ReturnTypesAreEquivalent(IMethodSymbol x, IMethodSymbol y, Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies = null) 492private bool TypeArgumentsAreEquivalent(ImmutableArray<ITypeSymbol> xTypeArguments, ImmutableArray<ITypeSymbol> yTypeArguments, Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies) 511private bool HandleAnonymousTypes(INamedTypeSymbol x, INamedTypeSymbol y, Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies) 547private bool NamespacesAreEquivalent(INamespaceSymbol x, INamespaceSymbol y, Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies) 564private bool ParametersAreEquivalent(IParameterSymbol x, IParameterSymbol y, Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies) 574private bool PointerTypesAreEquivalent(IPointerTypeSymbol x, IPointerTypeSymbol y, Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies) 581private bool FunctionPointerTypesAreEquivalent(IFunctionPointerTypeSymbol x, IFunctionPointerTypeSymbol y, Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies) 584private bool PropertiesAreEquivalent(IPropertySymbol x, IPropertySymbol y, Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies) 608private bool EventsAreEquivalent(IEventSymbol x, IEventSymbol y, Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies) 617private bool TypeParametersAreEquivalent(ITypeParameterSymbol x, ITypeParameterSymbol y, Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\SymbolEquivalenceComparer.GetHashCodeVisitor.cs (5)
70SymbolKind.NamedType => CombineHashCodes((INamedTypeSymbol)x, currentHash), 146private int CombineHashCodes(INamedTypeSymbol x, int currentHash) 154if (candidate is INamedTypeSymbol candidateNamedType) 164private int CombineNamedTypeHashCode(INamedTypeSymbol x, int currentHash) 193private int CombineAnonymousTypeHashCode(INamedTypeSymbol x, int currentHash)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\SymbolEquivalenceComparer.ParameterSymbolEqualityComparer.cs (2)
23Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies,
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\SymbolEquivalenceComparer.SignatureTypeSymbolEquivalenceComparer.cs (2)
18public bool Equals(ITypeSymbol? x, ITypeSymbol? y, Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies)
Microsoft.CodeAnalysis.CodeStyle (544)
src\roslyn\src\Analyzers\Core\Analyzers\ConvertTypeofToNameof\AbstractConvertTypeOfToNameOfDiagnosticAnalyzer.cs (1)
65if (typeofOperation.TypeOperand is not INamedTypeSymbol namedType)
src\roslyn\src\Analyzers\Core\Analyzers\ForEachCast\AbstractForEachCastDiagnosticAnalyzer.cs (1)
100var ienumerableOfT = collectionType.AllInterfaces.FirstOrDefault(i => i.OriginalDefinition.SpecialType == SpecialType.System_Collections_Generic_IEnumerable_T);
src\roslyn\src\Analyzers\Core\Analyzers\Helpers\DeserializationConstructorCheck.cs (3)
9private readonly INamedTypeSymbol? _iSerializableType = compilation.ISerializableType(); 10private readonly INamedTypeSymbol? _serializationInfoType = compilation.SerializationInfoType(); 11private readonly INamedTypeSymbol? _streamingContextType = compilation.StreamingContextType();
src\roslyn\src\Analyzers\Core\Analyzers\Helpers\HashCodeAnalyzer\HashCodeAnalyzer.cs (7)
19INamedTypeSymbol? equalityComparerType, 20INamedTypeSymbol systemHashCodeType) 23private readonly INamedTypeSymbol? _equalityComparerType = equalityComparerType; 25public readonly INamedTypeSymbol SystemHashCodeType = systemHashCodeType; 30var objectType = compilation.GetSpecialType(SpecialType.System_Object); 33var equalityComparerType = compilation.GetBestTypeByMetadataName(typeof(EqualityComparer<>).FullName!); 38var systemHashCodeType = compilation.GetBestTypeByMetadataName("System.HashCode");
src\roslyn\src\Analyzers\Core\Analyzers\MakeFieldReadonly\AbstractMakeFieldReadonlyDiagnosticAnalyzer.cs (9)
45var threadStaticAttribute = compilation.ThreadStaticAttributeType(); 46var dataContractAttribute = compilation.DataContractAttribute(); 47var dataMemberAttribute = compilation.DataMemberAttribute(); 48var inlineArrayAttribute = compilation.InlineArrayAttributeType(); 62if (!ShouldAnalyze(context, (INamedTypeSymbol)context.Symbol)) 117var members = ((INamedTypeSymbol)symbolEndContext.Symbol).GetMembers(); 139bool ShouldAnalyze(SymbolStartAnalysisContext context, INamedTypeSymbol namedType) 191static bool IsDataContractSerializable(IFieldSymbol symbol, INamedTypeSymbol? dataContractAttribute, INamedTypeSymbol? dataMemberAttribute)
src\roslyn\src\Analyzers\Core\Analyzers\RemoveUnnecessarySuppressions\AbstractRemoveUnnecessaryAttributeSuppressionsDiagnosticAnalyzer.cs (2)
59var suppressMessageAttributeType = context.Compilation.SuppressMessageAttributeType(); 69protected sealed class CompilationAnalyzer(Compilation compilation, INamedTypeSymbol suppressMessageAttributeType)
src\roslyn\src\Analyzers\Core\Analyzers\RemoveUnnecessarySuppressions\AbstractRemoveUnnecessaryPragmaSuppressionsDiagnosticAnalyzer.cs (2)
742var suppressMessageAttributeType = semanticModel.Compilation.SuppressMessageAttributeType(); 842INamedTypeSymbol suppressMessageAttributeType,
src\roslyn\src\Analyzers\Core\Analyzers\RemoveUnnecessarySuppressions\SuppressMessageAttributeState.cs (2)
15internal sealed partial class SuppressMessageAttributeState(Compilation compilation, INamedTypeSymbol suppressMessageAttributeType) 23private readonly INamedTypeSymbol _suppressMessageAttributeType = suppressMessageAttributeType;
src\roslyn\src\Analyzers\Core\Analyzers\RemoveUnusedMembers\AbstractRemoveUnusedMembersDiagnosticAnalyzer.cs (27)
64protected abstract IEnumerable<TTypeDeclarationSyntax> GetTypeDeclarations(INamedTypeSymbol namedType, CancellationToken cancellationToken); 138private readonly INamedTypeSymbol? _taskType; 139private readonly INamedTypeSymbol? _genericTaskType; 140private readonly INamedTypeSymbol? _debuggerDisplayAttributeType; 141private readonly INamedTypeSymbol? _structLayoutAttributeType; 142private readonly INamedTypeSymbol? _inlineArrayAttributeType; 143private readonly INamedTypeSymbol? _eventArgsType; 144private readonly INamedTypeSymbol? _iNotifyCompletionType; 146private readonly ImmutableHashSet<INamedTypeSymbol?> _attributeSetForMethodsToIgnore; 169private static IEnumerable<INamedTypeSymbol> GetAttributesForMethodsToIgnore(Compilation compilation) 173var onDeserializingAttribute = compilation.OnDeserializingAttribute(); 179var onDeserializedAttribute = compilation.OnDeserializedAttribute(); 185var onSerializingAttribute = compilation.OnSerializingAttribute(); 191var onSerializedAttribute = compilation.OnSerializedAttribute(); 197var comRegisterFunctionAttribute = compilation.ComRegisterFunctionAttribute(); 203var comUnregisterFunctionAttribute = compilation.ComUnregisterFunctionAttribute(); 234if (!ShouldAnalyze(symbolStartContext, (INamedTypeSymbol)symbolStartContext.Symbol)) 278if (symbolStartContext.Symbol is not INamedTypeSymbol { IsExtension: true }) 287bool ShouldAnalyze(SymbolStartAnalysisContext context, INamedTypeSymbol namedType) 603var namedType = (INamedTypeSymbol)symbolEndContext.Symbol; 726private static IEnumerable<ISymbol> GetMembersIncludingExtensionBlockMembers(INamedTypeSymbol namedType) 730if (member is INamedTypeSymbol { IsExtension: true } extensionBlock) 770private static bool HasSyntaxErrors(INamedTypeSymbol namedTypeSymbol, CancellationToken cancellationToken) 784INamedTypeSymbol namedTypeSymbol, 876private void AddDebuggerDisplayAttributeArguments(INamedTypeSymbol namedTypeSymbol, ArrayBuilder<string> builder) 884case INamedTypeSymbol nestedType:
src\roslyn\src\Analyzers\Core\Analyzers\RemoveUnusedParametersAndValues\AbstractRemoveUnusedParametersAndValuesDiagnosticAnalyzer.SymbolStartAnalyzer.BlockAnalyzer.cs (1)
488var interpolatedStringHandlerAttribute = context.Compilation.InterpolatedStringHandlerAttributeType();
src\roslyn\src\Analyzers\Core\Analyzers\RemoveUnusedParametersAndValues\AbstractRemoveUnusedParametersAndValuesDiagnosticAnalyzer.SymbolStartAnalyzer.cs (15)
25INamedTypeSymbol? eventArgsType, 26ImmutableHashSet<INamedTypeSymbol> attributeSetForMethodsToIgnore, 28INamedTypeSymbol? iCustomMarshaler, 33private readonly INamedTypeSymbol? _eventArgsType = eventArgsType; 34private readonly ImmutableHashSet<INamedTypeSymbol> _attributeSetForMethodsToIgnore = attributeSetForMethodsToIgnore; 37private readonly INamedTypeSymbol? _iCustomMarshaler = iCustomMarshaler; 52var eventsArgType = context.Compilation.EventArgsType(); 54var iCustomMarshaler = context.Compilation.GetTypeByMetadataName(typeof(ICustomMarshaler).FullName!); 58if (HasSyntaxErrors((INamedTypeSymbol)symbolStartContext.Symbol, symbolStartContext.CancellationToken)) 76static bool HasSyntaxErrors(INamedTypeSymbol namedTypeSymbol, CancellationToken cancellationToken) 111var interpolatedStringHandlerAttribute = context.Compilation.InterpolatedStringHandlerAttributeType(); 124INamedTypeSymbol? interpolatedStringHandlerAttributeType, 177private static IEnumerable<INamedTypeSymbol?> GetAttributesForMethodsToIgnore(Compilation compilation) 196private bool IsUnusedParameterCandidate(IParameterSymbol parameter, INamedTypeSymbol? interpolatedStringHandlerAttributeType, CancellationToken cancellationToken) 293INamedTypeSymbol? interpolatedStringHandlerAttributeType)
src\roslyn\src\Analyzers\Core\Analyzers\SimplifyInterpolation\AbstractSimplifyInterpolationDiagnosticAnalyzer.cs (4)
39var readOnlySpanOfCharType = compilation.ReadOnlySpanOfTType()?.Construct(compilation.GetSpecialType(SpecialType.System_Char)); 47INamedTypeSymbol? formattableStringType, 48INamedTypeSymbol? iFormattableType, 49INamedTypeSymbol? readOnlySpanOfCharType,
src\roslyn\src\Analyzers\Core\Analyzers\SimplifyInterpolation\AbstractSimplifyInterpolationHelpers.cs (8)
35var dateTimeType = compilation.GetSpecialType(SpecialType.System_DateTime); 43void AddDateMethods(INamedTypeSymbol? dateType) 49void AddTimeMethods(INamedTypeSymbol? timeType) 55void AddMethodIfAvailable(INamedTypeSymbol? type, string name, string format) 68INamedTypeSymbol? readOnlySpanOfCharType, 123INamedTypeSymbol? readOnlySpanOfCharType, 244private static bool IsType<T>(INamedTypeSymbol type, SemanticModel semanticModel) 247private static INamedTypeSymbol? FindType<T>(SemanticModel semanticModel)
src\roslyn\src\Analyzers\Core\Analyzers\SimplifyLinqExpression\AbstractSimplifyLinqExpressionDiagnosticAnalyzer.cs (7)
63if (TryGetEnumerableTypeSymbol(context.Compilation, out var enumerableType) && 73static bool TryGetEnumerableTypeSymbol(Compilation compilation, [NotNullWhen(true)] out INamedTypeSymbol? enumerableType) 79static bool TryGetLinqWhereExtensionMethod(INamedTypeSymbol enumerableType, [NotNullWhen(true)] out IMethodSymbol? linqMethod) 82static bool TryGetLinqSelectExtensionMethod(INamedTypeSymbol enumerableType, [NotNullWhen(true)] out IMethodSymbol? linqMethod) 85static bool TryGetLinqExtensionMethod(INamedTypeSymbol enumerableType, string name, [NotNullWhen(true)] out IMethodSymbol? linqMethod) 89if (linqMethodSymbol.Parameters is [_, { Type: INamedTypeSymbol { Arity: 2 } }]) 102static bool TryGetLinqMethodsThatDoNotReturnEnumerables(INamedTypeSymbol enumerableType, out ImmutableArray<IMethodSymbol> linqMethods)
src\roslyn\src\Analyzers\Core\Analyzers\UseAutoProperty\AbstractUseAutoPropertyAnalyzer.cs (4)
99var namedType = (INamedTypeSymbol)context.Symbol; 175bool ShouldAnalyze(SymbolStartAnalysisContext context, INamedTypeSymbol namedType) 328INamedTypeSymbol containingType,
src\roslyn\src\Analyzers\Core\Analyzers\UseCoalesceExpression\AbstractUseCoalesceExpressionForNullableTernaryConditionalCheckDiagnosticAnalyzer.cs (1)
109var nullableType = semanticModel.Compilation.GetTypeByMetadataName(typeof(Nullable<>).FullName!);
src\roslyn\src\Analyzers\Core\Analyzers\UseCollectionInitializer\AbstractUseCollectionInitializerDiagnosticAnalyzer.cs (5)
82INamedTypeSymbol? expressionType, 100var ienumerableType = context.Compilation.IEnumerableType(); 117var expressionType = context.Compilation.ExpressionOfTType(); 126INamedTypeSymbol ienumerableType, 127INamedTypeSymbol? expressionType)
src\roslyn\src\Analyzers\Core\Analyzers\UseExplicitTupleName\UseExplicitTupleNameDiagnosticAnalyzer.cs (1)
77INamedTypeSymbol containingType, IFieldSymbol unnamedField, CancellationToken cancellationToken)
src\roslyn\src\Analyzers\Core\Analyzers\UseIsNullCheck\AbstractUseIsNullForReferenceEqualsDiagnosticAnalyzer.cs (1)
34var objectType = context.Compilation.GetSpecialType(SpecialType.System_Object);
src\roslyn\src\Analyzers\Core\Analyzers\UseNullPropagation\AbstractUseNullPropagationDiagnosticAnalyzer.cs (7)
82public (INamedTypeSymbol? expressionType, IMethodSymbol? referenceEqualsMethod) GetAnalysisSymbols(Compilation compilation) 84var expressionType = compilation.ExpressionOfTType(); 85var objectType = compilation.GetSpecialType(SpecialType.System_Object); 99var expressionType = context.Compilation.ExpressionOfTType(); 129INamedTypeSymbol? expressionType, 155INamedTypeSymbol? expressionType, 199if (type is not INamedTypeSymbol namedType || namedType.ConstructedFrom.SpecialType != SpecialType.System_Nullable_T)
src\roslyn\src\Analyzers\Core\Analyzers\UseThrowExpression\AbstractUseThrowExpressionDiagnosticAnalyzer.cs (2)
64var expressionType = startContext.Compilation.ExpressionOfTType(); 69private void AnalyzeOperation(OperationAnalysisContext context, INamedTypeSymbol? expressionType)
src\roslyn\src\Analyzers\Core\Analyzers\ValidateFormatString\AbstractValidateFormatStringDiagnosticAnalyzer.cs (3)
73var formatProviderType = startContext.Compilation.GetTypeByMetadataName(typeof(System.IFormatProvider).FullName!); 89private void AnalyzeNode(SyntaxNodeAnalysisContext context, INamedTypeSymbol formatProviderType) 297var containingType = symbolInfo.Symbol.ContainingType;
src\roslyn\src\Compilers\Core\Portable\DiagnosticAnalyzer\SuppressMessageAttributeState.TargetSymbolResolver.cs (7)
560for (var containingType = bindingContext.ContainingType; containingType != null; containingType = containingType.ContainingType) 640INamedTypeSymbol typeSymbol = GetFirstMatchingNamedType(candidateMembers, arity); 821private static INamedTypeSymbol GetFirstMatchingNamedType(ImmutableArray<ISymbol> candidateMembers, int arity) 823return (INamedTypeSymbol)candidateMembers.FirstOrDefault(s => 825((INamedTypeSymbol)s).Arity == arity); 836private static ITypeParameterSymbol GetNthTypeParameter(INamedTypeSymbol typeSymbol, int n) 854private static int GetTypeParameterCount(INamedTypeSymbol typeSymbol)
src\roslyn\src\Compilers\Core\Portable\SourceGeneration\GeneratedCodeUtilities.cs (1)
19ISymbol symbol, INamedTypeSymbol generatedCodeAttribute)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Extensions\CollectionExpressionUtilities.cs (7)
61if (type is INamedTypeSymbol namedType) 71var ienumerableOfTType = compilation.IEnumerableOfTType(); 72var ienumerableType = compilation.IEnumerableType(); 73var foundType = 146Compilation compilation, INamedTypeSymbol collectionExpressionType) 148var readonlySpanOfTType = compilation.ReadOnlySpanOfTType(); 155if (attribute is not { ConstructorArguments: [{ Value: INamedTypeSymbol builderType }, { Value: string builderMethodName }] })
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Extensions\KnownTypes.cs (8)
11public readonly INamedTypeSymbol? TaskType = compilation.TaskType(); 12public readonly INamedTypeSymbol? TaskOfTType = compilation.TaskOfTType(); 13public readonly INamedTypeSymbol? ValueTaskType = compilation.ValueTaskType(); 14public readonly INamedTypeSymbol? ValueTaskOfTType = compilation.ValueTaskOfTType(); 16public readonly INamedTypeSymbol? IEnumerableOfTType = compilation.IEnumerableOfTType(); 17public readonly INamedTypeSymbol? IEnumeratorOfTType = compilation.IEnumeratorOfTType(); 19public readonly INamedTypeSymbol? IAsyncEnumerableOfTType = compilation.IAsyncEnumerableOfTType(); 20public readonly INamedTypeSymbol? IAsyncEnumeratorOfTType = compilation.IAsyncEnumeratorOfTType();
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Extensions\OperationExtensions.cs (2)
405var notImplementedExceptionType = compilation.NotImplementedExceptionType(); 454static bool IsThrowNotImplementedOperation(INamedTypeSymbol notImplementedExceptionType, IOperation? operation)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Extensions\SemanticModelExtensions.cs (4)
84return semanticModel.GetEnclosingSymbol<INamedTypeSymbol>(position, cancellationToken) ?? 88public static INamedTypeSymbol? GetEnclosingNamedType(this SemanticModel semanticModel, int position, CancellationToken cancellationToken) 89=> semanticModel.GetEnclosingSymbol<INamedTypeSymbol>(position, cancellationToken); 172var enumerableType = semanticModel.Compilation.IEnumerableOfTType();
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\FlowAnalysis\SymbolUsageAnalysis\SymbolUsageAnalysis.DataFlowAnalyzer.FlowGraphAnalysisData.cs (1)
143if (owningSymbol.ContainingSymbol is INamedTypeSymbol { IsExtension: true, ExtensionParameter: { } extensionParameter })
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\NamingStyles\NamingStyleRules.cs (3)
65var containingType = symbol.ContainingType; 87var containingType = symbol.ContainingType; 90foreach (var implementedInterface in implementedInterfaces)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Services\SemanticFacts\ISemanticFacts.cs (4)
68bool LastEnumValueHasInitializer(INamedTypeSymbol namedTypeSymbol); 89bool IsPartial(INamedTypeSymbol typeSymbol, CancellationToken cancellationToken); 108bool IsInExpressionTree(SemanticModel semanticModel, SyntaxNode node, [NotNullWhen(true)] INamedTypeSymbol? expressionType, CancellationToken cancellationToken); 123bool TryGetPrimaryConstructor(INamedTypeSymbol typeSymbol, [NotNullWhen(true)] out IMethodSymbol? primaryConstructor);
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\SymbolKey\SymbolKey.AnonymousFunctionOrDelegateSymbolKey.cs (1)
65var anonymousDelegate = methodSymbol.AssociatedAnonymousDelegate;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\SymbolKey\SymbolKey.AnonymousTypeSymbolKey.cs (5)
13private sealed class AnonymousTypeSymbolKey : AbstractSymbolKey<INamedTypeSymbol> 17public sealed override void Create(INamedTypeSymbol symbol, SymbolKeyWriter visitor) 34SymbolKeyReader reader, INamedTypeSymbol? contextualSymbol, out string? failureReason) 40using var propertyTypes = reader.ReadSymbolKeyArray<INamedTypeSymbol, ITypeSymbol>( 64var anonymousType = reader.Compilation.CreateAnonymousTypeSymbol(
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\SymbolKey\SymbolKey.cs (5)
43/// <item>Two <see cref="INamedTypeSymbol"/>s are the "same" if they have 46/// equal <see cref="INamedTypeSymbol.Arity"/> and 47/// the "same" <see cref="INamedTypeSymbol.TypeArguments"/>.</item> 301foreach (var containingType in containingTypeResolution.OfType<INamedTypeSymbol>())
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\SymbolKey\SymbolKey.ErrorTypeSymbolKey.cs (9)
12private sealed class ErrorTypeSymbolKey : AbstractSymbolKey<INamedTypeSymbol> 16public sealed override void Create(INamedTypeSymbol symbol, SymbolKeyWriter visitor) 21case INamedTypeSymbol parentType: 65SymbolKeyReader reader, INamedTypeSymbol? contextualType, out string? failureReason) 72using var typeArguments = reader.ReadSymbolKeyArray<INamedTypeSymbol, ITypeSymbol>( 92using var result = PooledArrayBuilder<INamedTypeSymbol>.GetInstance(); 97var originalType = reader.Compilation.CreateErrorTypeSymbol(container, name, arity); 98var errorType = typeArgumentsArray != null ? originalType.Construct(typeArgumentsArray) : originalType; 110SymbolKeyReader reader, INamedTypeSymbol? contextualType, out string? failureReason)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\SymbolKey\SymbolKey.FunctionPointerTypeSymbolKey.cs (2)
37var callingConventionModifiers = ImmutableArray<INamedTypeSymbol>.Empty; 40using var modifiersBuilder = reader.ReadSymbolKeyArray<IFunctionPointerTypeSymbol, INamedTypeSymbol>(
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\SymbolKey\SymbolKey.NamedTypeSymbolKey.cs (13)
9private sealed class NamedTypeSymbolKey : AbstractSymbolKey<INamedTypeSymbol> 13public sealed override void Create(INamedTypeSymbol symbol, SymbolKeyWriter visitor) 33SymbolKeyReader reader, INamedTypeSymbol? contextualSymbol, out string? failureReason) 48using var typeArguments = reader.ReadSymbolKeyArray<INamedTypeSymbol, ITypeSymbol>( 90INamedTypeSymbol? contextualType, 126using var result = PooledArrayBuilder<INamedTypeSymbol>.GetInstance(); 155using var result = PooledArrayBuilder<INamedTypeSymbol>.GetInstance(); 163PooledArrayBuilder<INamedTypeSymbol> result) 168foreach (var type in container.GetTypeMembers()) 176foreach (var type in container.GetTypeMembers(name, arity)) 200private static INamedTypeSymbol Construct(INamedTypeSymbol type, bool isUnboundGenericType, ITypeSymbol[] typeArguments) 202var currentType = typeArguments.Length > 0 ? type.Construct(typeArguments) : type;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\SymbolKey\SymbolKey.ParameterSymbolKey.cs (2)
64var delegateInvoke = (eventSymbol.Type as INamedTypeSymbol)?.DelegateInvokeMethod; 73case INamedTypeSymbol { IsExtension: true, ExtensionParameter: { } extensionParameter }:
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\SymbolKey\SymbolKey.SymbolKeyWriter.cs (2)
405public override void VisitNamedType(INamedTypeSymbol namedTypeSymbol) 412else if (namedTypeSymbol.IsTupleType && namedTypeSymbol.TupleUnderlyingType is INamedTypeSymbol underlyingType && underlyingType != namedTypeSymbol)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\SymbolKey\SymbolKey.TupleTypeSymbolKey.cs (10)
14private sealed class TupleTypeSymbolKey : AbstractSymbolKey<INamedTypeSymbol> 18public sealed override void Create(INamedTypeSymbol symbol, SymbolKeyWriter visitor) 53SymbolKeyReader reader, INamedTypeSymbol? contextualSymbol, out string? failureReason) 64SymbolKeyReader reader, INamedTypeSymbol? contextualSymbol, out string? failureReason) 78using var result = PooledArrayBuilder<INamedTypeSymbol>.GetInstance(); 81foreach (var namedType in underlyingTypeResolution.OfType<INamedTypeSymbol>()) 92SymbolKeyReader reader, INamedTypeSymbol? contextualType, out string? failureReason) 96using var elementTypes = reader.ReadSymbolKeyArray<INamedTypeSymbol, ITypeSymbol>( 120var result = reader.Compilation.CreateTupleTypeSymbol(
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Utilities\AbstractSpeculationAnalyzer.cs (5)
417var type = methodSymbol.ContainingType; 418var newType = newMethodSymbol.ContainingType; 491private static bool EnumTypesAreCompatible(INamedTypeSymbol type1, INamedTypeSymbol type2) 990var newSymbolContainingType = newSymbol.ContainingType;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Utilities\EnumValueUtilities.cs (1)
21public static object GetNextEnumValue(INamedTypeSymbol enumType)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Compilation\CompilationExtensions.cs (82)
78public static INamedTypeSymbol? ArgumentExceptionType(this Compilation compilation) 81public static INamedTypeSymbol? ArgumentNullExceptionType(this Compilation compilation) 84public static INamedTypeSymbol? ArgumentOutOfRangeExceptionType(this Compilation compilation) 87public static INamedTypeSymbol? ArrayType(this Compilation compilation) 90public static INamedTypeSymbol? AttributeType(this Compilation compilation) 93public static INamedTypeSymbol? BlockingCollectionOfTType(this Compilation compilation) 96public static INamedTypeSymbol? CollectionOfTType(this Compilation compilation) 99public static INamedTypeSymbol? ExceptionType(this Compilation compilation) 102public static INamedTypeSymbol? DebuggerDisplayAttributeType(this Compilation compilation) 105public static INamedTypeSymbol? StructLayoutAttributeType(this Compilation compilation) 108public static INamedTypeSymbol? InlineArrayAttributeType(this Compilation compilation) 111public static INamedTypeSymbol? DesignerCategoryAttributeType(this Compilation compilation) 114public static INamedTypeSymbol? DesignerGeneratedAttributeType(this Compilation compilation) 117public static INamedTypeSymbol? HideModuleNameAttribute(this Compilation compilation) 120public static INamedTypeSymbol? ThreadStaticAttributeType(this Compilation compilation) 123public static INamedTypeSymbol? FormattableStringType(this Compilation compilation) 126public static INamedTypeSymbol? IFormattableType(this Compilation compilation) 129public static INamedTypeSymbol? EventArgsType(this Compilation compilation) 132public static INamedTypeSymbol? NotImplementedExceptionType(this Compilation compilation) 135public static INamedTypeSymbol? EqualityComparerOfTType(this Compilation compilation) 138public static INamedTypeSymbol? ActionType(this Compilation compilation) 141public static INamedTypeSymbol? ExpressionOfTType(this Compilation compilation) 144public static INamedTypeSymbol? EditorBrowsableAttributeType(this Compilation compilation) 147public static INamedTypeSymbol? EditorBrowsableStateType(this Compilation compilation) 150public static INamedTypeSymbol? TaskType(this Compilation compilation) 153public static INamedTypeSymbol? TaskOfTType(this Compilation compilation) 156public static INamedTypeSymbol? ValueTaskType(this Compilation compilation) 159public static INamedTypeSymbol? ValueTaskOfTType(this Compilation compilation) 162public static INamedTypeSymbol? ICollectionOfTType(this Compilation compilation) 165public static INamedTypeSymbol? IEnumerableType(this Compilation compilation) 168public static INamedTypeSymbol? IEnumerableOfTType(this Compilation compilation) 171public static INamedTypeSymbol? IEnumeratorOfTType(this Compilation compilation) 174public static INamedTypeSymbol? IListOfTType(this Compilation compilation) 177public static INamedTypeSymbol? IReadOnlyListOfTType(this Compilation compilation) 180public static INamedTypeSymbol? ISetOfTType(this Compilation compilation) 183public static INamedTypeSymbol? IReadOnlySetOfTType(this Compilation compilation) 186public static INamedTypeSymbol? IAsyncEnumerableOfTType(this Compilation compilation) 189public static INamedTypeSymbol? IAsyncEnumeratorOfTType(this Compilation compilation) 192public static INamedTypeSymbol? ImmutableArrayOfTType(this Compilation compilation) 195public static INamedTypeSymbol? SerializableAttributeType(this Compilation compilation) 198public static INamedTypeSymbol? CoClassType(this Compilation compilation) 201public static INamedTypeSymbol? ComAliasNameAttributeType(this Compilation compilation) 204public static INamedTypeSymbol? SuppressMessageAttributeType(this Compilation compilation) 207public static INamedTypeSymbol? TupleElementNamesAttributeType(this Compilation compilation) 210public static INamedTypeSymbol? NativeIntegerAttributeType(this Compilation compilation) 213public static INamedTypeSymbol? DynamicAttributeType(this Compilation compilation) 216public static INamedTypeSymbol? LazyOfTType(this Compilation compilation) 219public static INamedTypeSymbol? ISerializableType(this Compilation compilation) 222public static INamedTypeSymbol? SerializationInfoType(this Compilation compilation) 225public static INamedTypeSymbol? StreamingContextType(this Compilation compilation) 228public static INamedTypeSymbol? OnDeserializingAttribute(this Compilation compilation) 231public static INamedTypeSymbol? OnDeserializedAttribute(this Compilation compilation) 234public static INamedTypeSymbol? OnSerializingAttribute(this Compilation compilation) 237public static INamedTypeSymbol? OnSerializedAttribute(this Compilation compilation) 240public static INamedTypeSymbol? ComRegisterFunctionAttribute(this Compilation compilation) 243public static INamedTypeSymbol? ComUnregisterFunctionAttribute(this Compilation compilation) 246public static INamedTypeSymbol? ConditionalAttribute(this Compilation compilation) 249public static INamedTypeSymbol? ObsoleteAttribute(this Compilation compilation) 252public static INamedTypeSymbol? SystemCompositionImportingConstructorAttribute(this Compilation compilation) 255public static INamedTypeSymbol? SystemComponentModelCompositionImportingConstructorAttribute(this Compilation compilation) 258public static INamedTypeSymbol? SystemIDisposableType(this Compilation compilation) 261public static INamedTypeSymbol? NotNullAttribute(this Compilation compilation) 264public static INamedTypeSymbol? MaybeNullAttribute(this Compilation compilation) 267public static INamedTypeSymbol? MaybeNullWhenAttribute(this Compilation compilation) 270public static INamedTypeSymbol? AllowNullAttribute(this Compilation compilation) 273public static INamedTypeSymbol? DisallowNullAttribute(this Compilation compilation) 276public static INamedTypeSymbol? DataMemberAttribute(this Compilation compilation) 279public static INamedTypeSymbol? DataContractAttribute(this Compilation compilation) 282public static INamedTypeSymbol? AsyncMethodBuilderAttribute(this Compilation compilation) 285public static INamedTypeSymbol? CancellationTokenType(this Compilation compilation) 288public static INamedTypeSymbol? ValueTupleType(this Compilation compilation, int arity) 291public static INamedTypeSymbol? ListOfTType(this Compilation compilation) 294public static INamedTypeSymbol? ReadOnlySpanOfTType(this Compilation compilation) 297public static INamedTypeSymbol? SpanOfTType(this Compilation compilation) 300public static INamedTypeSymbol? InterpolatedStringHandlerAttributeType(this Compilation compilation) 303public static INamedTypeSymbol? DateOnlyType(this Compilation compilation) 306public static INamedTypeSymbol? TimeOnlyType(this Compilation compilation) 334public static INamedTypeSymbol? GetBestTypeByMetadataName(this Compilation compilation, string fullyQualifiedMetadataName) 336INamedTypeSymbol? type = null; 338foreach (var currentType in compilation.GetTypesByMetadataName(fullyQualifiedMetadataName)) 373foreach (var candidateTopLevelType in compilation.SourceModule.GlobalNamespace.GetTypeMembers(WellKnownMemberNames.TopLevelStatementsEntryPointTypeName, arity: 0)) 385public static INamedTypeSymbol? TryGetCallingConventionSymbol(this Compilation compilation, string callingConvention)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\IMethodSymbolExtensions.cs (6)
26foreach (var nestedType in methodSymbol.ContainingType.GetTypeMembers()) 72public static bool HasEventHandlerSignature(this IMethodSymbol method, [NotNullWhen(returnValue: true)] INamedTypeSymbol? eventArgsType) 131public static bool IsEntryPoint(this IMethodSymbol methodSymbol, INamedTypeSymbol? taskType, INamedTypeSymbol? genericTaskType) 147if (method.ReturnType is not INamedTypeSymbol { Arity: 0 }) 169var containingType = constructor.ContainingType;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\INamedTypeSymbolExtensions.cs (77)
24public static IEnumerable<INamedTypeSymbol> GetBaseTypesAndThis(this INamedTypeSymbol? namedType) 26var current = namedType; 34public static IEnumerable<INamedTypeSymbol> GetContainingTypesAndThis(this INamedTypeSymbol? namedType) 36var current = namedType; 44public static ImmutableArray<ITypeParameterSymbol> GetAllTypeParameters(this INamedTypeSymbol? symbol) 50public static ImmutableArray<ITypeSymbol> GetAllTypeArguments(this INamedTypeSymbol? symbol) 56private static Stack<INamedTypeSymbol> GetContainmentStack(INamedTypeSymbol? symbol) 58var stack = new Stack<INamedTypeSymbol>(); 59for (var current = symbol; current != null; current = current.ContainingType) 67public static bool IsContainedWithin([NotNullWhen(returnValue: true)] this INamedTypeSymbol? symbol, INamedTypeSymbol outer) 70for (var current = symbol; current != null; current = current.ContainingType) 81public static ISymbol? FindImplementationForAbstractMember(this INamedTypeSymbol? type, ISymbol symbol) 92private static bool ImplementationExists(INamedTypeSymbol classOrStructType, ISymbol member) 96this INamedTypeSymbol classOrStructType, 98Func<INamedTypeSymbol, ISymbol, bool> isValidImplementation, 128private static bool IsInterfacePropertyImplemented(INamedTypeSymbol classOrStructType, IPropertySymbol propertySymbol) 136static bool IsAccessorImplemented(IMethodSymbol? accessor, INamedTypeSymbol classOrStructType) 142private static bool IsAbstractPropertyImplemented(INamedTypeSymbol classOrStructType, IPropertySymbol propertySymbol) 165this INamedTypeSymbol classOrStructType, 167Func<INamedTypeSymbol, ISymbol, bool> isValid, 190public static ImmutableArray<(INamedTypeSymbol type, ImmutableArray<ISymbol> members)> GetAllUnimplementedMembers( 191this INamedTypeSymbol classOrStructType, 192IEnumerable<INamedTypeSymbol> interfaces, 208static ImmutableArray<ISymbol> GetImplicitlyImplementableMembers(INamedTypeSymbol type, ISymbol within) 260public static ImmutableArray<(INamedTypeSymbol type, ImmutableArray<ISymbol> members)> GetAllUnimplementedMembersInThis( 261this INamedTypeSymbol classOrStructType, 262IEnumerable<INamedTypeSymbol> interfacesOrAbstractClasses, 278public static ImmutableArray<(INamedTypeSymbol type, ImmutableArray<ISymbol> members)> GetAllUnimplementedMembersInThis( 279this INamedTypeSymbol classOrStructType, 280IEnumerable<INamedTypeSymbol> interfacesOrAbstractClasses, 281Func<INamedTypeSymbol, ISymbol, ImmutableArray<ISymbol>> interfaceMemberGetter, 297public static ImmutableArray<(INamedTypeSymbol type, ImmutableArray<ISymbol> members)> GetAllUnimplementedExplicitMembers( 298this INamedTypeSymbol classOrStructType, 299IEnumerable<INamedTypeSymbol> interfaces, 311private static ImmutableArray<ISymbol> GetExplicitlyImplementableMembers(INamedTypeSymbol type, ISymbol within) 338private static ImmutableArray<(INamedTypeSymbol type, ImmutableArray<ISymbol> members)> GetAllUnimplementedMembers( 339this INamedTypeSymbol classOrStructType, 340IEnumerable<INamedTypeSymbol> interfacesOrAbstractClasses, 341Func<INamedTypeSymbol, ISymbol, Func<INamedTypeSymbol, ISymbol, bool>, CancellationToken, bool> isImplemented, 342Func<INamedTypeSymbol, ISymbol, bool> isValidImplementation, 343Func<INamedTypeSymbol, ISymbol, ImmutableArray<ISymbol>> interfaceMemberGetter, 372private static ImmutableArray<INamedTypeSymbol> GetTypesToImplement( 373INamedTypeSymbol classOrStructType, 374IEnumerable<INamedTypeSymbol> interfacesOrAbstractClasses, 383private static ImmutableArray<INamedTypeSymbol> GetAbstractClassesToImplement( 384IEnumerable<INamedTypeSymbol> abstractClasses) 389private static ImmutableArray<INamedTypeSymbol> GetInterfacesToImplement( 390INamedTypeSymbol classOrStructType, 391IEnumerable<INamedTypeSymbol> interfaces, 398var interfacesToImplement = new List<INamedTypeSymbol>( 403var baseType = classOrStructType.BaseType; 414this INamedTypeSymbol classOrStructType, 415INamedTypeSymbol interfaceType, 416Func<INamedTypeSymbol, ISymbol, Func<INamedTypeSymbol, ISymbol, bool>, CancellationToken, bool> isImplemented, 417Func<INamedTypeSymbol, ISymbol, bool> isValidImplementation, 418Func<INamedTypeSymbol, ISymbol, ImmutableArray<ISymbol>> interfaceMemberGetter, 460this INamedTypeSymbol attributeSymbol, 466var systemAttributeType = compilation.AttributeType(); 468foreach (var type in attributeSymbol.GetBaseTypesAndThis()) 528private static ImmutableArray<ISymbol> GetMembers(INamedTypeSymbol type, ISymbol within) 542this INamedTypeSymbol containingType, CancellationToken cancellationToken) 559foreach (var type in baseTypes) 580Dictionary<ISymbol, int> result, INamedTypeSymbol containingType, CancellationToken cancellationToken) 601Dictionary<ISymbol, int> result, INamedTypeSymbol containingType, CancellationToken cancellationToken) 623Dictionary<ISymbol, int> result, INamedTypeSymbol containingType, 624INamedTypeSymbol type, ref int index, CancellationToken cancellationToken) 637private static bool IsOverridable(ISymbol member, INamedTypeSymbol containingType) 680public static INamedTypeSymbol TryConstruct(this INamedTypeSymbol type, ITypeSymbol[] typeArguments) 683public static bool IsCollectionBuilderAttribute([NotNullWhen(true)] this INamedTypeSymbol? type) 702public static bool IsIEnumerableOfT([NotNullWhen(true)] this INamedTypeSymbol? type)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\INamespaceOrTypeSymbolExtensions.cs (3)
90public static IEnumerable<INamedTypeSymbol> GetAllTypes( 106var namedType = (INamedTypeSymbol)current;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\ISymbolExtensions.cs (16)
99foreach (var baseType in symbol.ContainingType.GetBaseTypes()) 108bool TryFindLooseMatch(ISymbol symbol, INamedTypeSymbol baseType, [NotNullWhen(true)] out ISymbol? looseMatch) 157foreach (var iface in symbol.ContainingType.AllInterfaces) 215public static INamedTypeSymbol? GetContainingTypeOrThis(this ISymbol symbol) 217if (symbol is INamedTypeSymbol namedType) 311=> symbol is INamedTypeSymbol { IsAnonymousType: true }; 354SymbolKind.NamedType => ((INamedTypeSymbol)symbol).Arity, 435INamedTypeSymbol nt => nt.TypeParameters, 456INamedTypeSymbol nt => nt.TypeArguments, 465var containingType = symbol.ContainingType; 506var delegateType = compilation.GetTypeByMetadataName(method.ReturnsVoid 535=> symbol is INamedTypeSymbol { IsStatic: true }; 551foreach (var type in namespaceOrType.GetAllTypes(cancellationToken)) 568private static bool IsAttributeValidForTargets(INamedTypeSymbol attributeType, AttributeTargets validTargets) 595return ((INamedTypeSymbol)symbol).GetMembers().OfType<IPropertySymbol>().Where(p => p.CanBeReferencedByName); 870public static bool HasAttribute([NotNullWhen(true)] this ISymbol? symbol, [NotNullWhen(true)] INamedTypeSymbol? attributeClass)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\ISymbolExtensions.RequiresUnsafeModifierVisitor.cs (1)
56public override bool VisitNamedType(INamedTypeSymbol symbol)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\ISymbolExtensions_Accessibility.cs (25)
27else if (within is INamedTypeSymbol namedType) 54INamedTypeSymbol within, 67INamedTypeSymbol within, 92Debug.Assert(within is INamedTypeSymbol or IAssemblySymbol); 124return IsNamedTypeAccessible((INamedTypeSymbol)symbol, within); 177private static bool IsNamedTypeAccessible(INamedTypeSymbol type, ISymbol within) 179Debug.Assert(within is INamedTypeSymbol or IAssemblySymbol); 204var containingType = type.ContainingType; 217Debug.Assert(within is INamedTypeSymbol or IAssemblySymbol); 219var withinAssembly = (within as IAssemblySymbol) ?? ((INamedTypeSymbol)within).ContainingAssembly; 248INamedTypeSymbol containingType, 254Debug.Assert(within is INamedTypeSymbol or IAssemblySymbol); 259var originalContainingType = containingType.OriginalDefinition; 260var withinNamedType = within as INamedTypeSymbol; 261var withinAssembly = (within as IAssemblySymbol) ?? ((INamedTypeSymbol)within).ContainingAssembly; 334INamedTypeSymbol? withinType, 337INamedTypeSymbol originalContainingType, 375var current = withinType.OriginalDefinition; 411INamedTypeSymbol originalContainingType) 413Debug.Assert(within is INamedTypeSymbol or IAssemblySymbol); 415if (within is not INamedTypeSymbol withinType) 428INamedTypeSymbol withinType, 429INamedTypeSymbol originalContainingType) 436var current = withinType.OriginalDefinition;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\ITypeGenerator.cs (1)
13ITypeSymbol Construct(INamedTypeSymbol namedType, ITypeSymbol[] typeArguments);
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\ITypeParameterSymbolExtensions.cs (4)
14public static INamedTypeSymbol? GetNamedTypeSymbolConstraint(this ITypeParameterSymbol typeParameter) 17private static INamedTypeSymbol? GetNamedTypeSymbol(ITypeSymbol type) 19return type is INamedTypeSymbol 20? (INamedTypeSymbol)type
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\ITypeSymbolExtensions.AnonymousTypeRemover.cs (1)
42public override ITypeSymbol VisitNamedType(INamedTypeSymbol symbol)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\ITypeSymbolExtensions.CollectTypeParameterSymbolsVisitor.cs (1)
57public override void VisitNamedType(INamedTypeSymbol symbol)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\ITypeSymbolExtensions.CompilationTypeGenerator.cs (1)
19public ITypeSymbol Construct(INamedTypeSymbol namedType, ITypeSymbol[] typeArguments)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\ITypeSymbolExtensions.cs (30)
43public static ImmutableArray<INamedTypeSymbol> GetAllInterfacesIncludingThis(this ITypeSymbol type) 46return type is INamedTypeSymbol { TypeKind: TypeKind.Interface } namedType && !allInterfaces.Contains(namedType) 69underlyingType = ((INamedTypeSymbol)symbol).TypeArguments[0]; 92public static bool IsAnonymousType([NotNullWhen(returnValue: true)] this INamedTypeSymbol? symbol) 95private static HashSet<INamedTypeSymbol> GetOriginalInterfacesAndTheirBaseInterfaces( 97HashSet<INamedTypeSymbol>? symbols = null) 99symbols ??= new HashSet<INamedTypeSymbol>(SymbolEquivalenceComparer.Instance); 101foreach (var interfaceType in type.Interfaces) 120public static IEnumerable<INamedTypeSymbol> GetBaseTypes(this ITypeSymbol? type) 122var current = type?.BaseType; 140public static IEnumerable<INamedTypeSymbol> GetContainingTypes(this ITypeSymbol type) 142var current = type.ContainingType; 198var currentBaseType = type.BaseType; 227for (var b = symbol.BaseType; b != null; b = b.BaseType) 316INamedTypeSymbol n => ContainsAnonymousType(n), 321private static bool ContainsAnonymousType(INamedTypeSymbol type) 417public static INamedTypeSymbol? GetDelegateType(this ITypeSymbol? typeSymbol, Compilation compilation) 421var expressionOfT = compilation.ExpressionOfTType(); 424var typeArgument = ((INamedTypeSymbol)typeSymbol).TypeArguments[0]; 425return typeArgument as INamedTypeSymbol; 430return typeSymbol as INamedTypeSymbol; 583var n2 = t2 as INamedTypeSymbol; 585if (t1 is not INamedTypeSymbol n1) 635public static bool IsEnumType([NotNullWhen(true)] this ITypeSymbol? type, [NotNullWhen(true)] out INamedTypeSymbol? enumType) 639enumType = (INamedTypeSymbol)type; 731if (type is not INamedTypeSymbol 784=> type is INamedTypeSymbol 792=> symbol is INamedTypeSymbol 800=> type is INamedTypeSymbol namedType &&
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\ITypeSymbolExtensions.MinimalAccessibilityVisitor.cs (2)
42foreach (var callingConventionType in symbol.Signature.UnmanagedCallingConventionTypes) 50public override Accessibility VisitNamedType(INamedTypeSymbol symbol)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\ITypeSymbolExtensions.SubstituteTypesVisitor.cs (1)
58public override ITypeSymbol VisitNamedType(INamedTypeSymbol symbol)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\ITypeSymbolExtensions.UnavailableTypeParameterRemover.cs (1)
43public override ITypeSymbol VisitNamedType(INamedTypeSymbol symbol)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\ITypeSymbolExtensions.UnnamedErrorTypeRemover.cs (1)
42public override ITypeSymbol VisitNamedType(INamedTypeSymbol symbol)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\SymbolEquivalenceComparer.cs (12)
149public bool ReturnTypeEquals(IMethodSymbol x, IMethodSymbol y, Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies = null) 164public bool Equals(ISymbol? x, ISymbol? y, Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies) 170private bool EqualsCore(ISymbol? x, ISymbol? y, Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies) 191private static bool IsConstructedFromSelf(INamedTypeSymbol symbol) 213private static OneOrMany<INamedTypeSymbol> Unwrap(INamedTypeSymbol namedType) 219using var builder = TemporaryArray<INamedTypeSymbol>.Empty; 224if (candidate is INamedTypeSymbol candidateType) 257private static TypeKind GetTypeKind(INamedTypeSymbol x)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\SymbolEquivalenceComparer.EquivalenceVisitor.cs (65)
22public bool AreEquivalent(ISymbol? x, ISymbol? y, Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies) 51return AreArrayAndReadOnlySpanEquivalent((IArrayTypeSymbol)x, (INamedTypeSymbol)y, equivalentTypesWithDifferingAssemblies); 55return AreArrayAndReadOnlySpanEquivalent((IArrayTypeSymbol)y, (INamedTypeSymbol)x, equivalentTypesWithDifferingAssemblies); 65private bool AreArrayAndReadOnlySpanEquivalent(IArrayTypeSymbol array, INamedTypeSymbol readOnlySpanType, Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies) 73internal bool AreEquivalent(CustomModifier x, CustomModifier y, Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies) 76internal bool AreEquivalent(ImmutableArray<CustomModifier> x, ImmutableArray<CustomModifier> y, Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies) 112private bool AreEquivalentWorker(ISymbol x, ISymbol y, SymbolKind k, Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies) 126SymbolKind.NamedType => NamedTypesAreEquivalent((INamedTypeSymbol)x, (INamedTypeSymbol)y, equivalentTypesWithDifferingAssemblies), 127SymbolKind.ErrorType => NamedTypesAreEquivalent((INamedTypeSymbol)x, (INamedTypeSymbol)y, equivalentTypesWithDifferingAssemblies), 140private bool ArrayTypesAreEquivalent(IArrayTypeSymbol x, IArrayTypeSymbol y, Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies) 152private bool FieldsAreEquivalent(IFieldSymbol x, IFieldSymbol y, Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies) 170private bool MethodsAreEquivalent(IMethodSymbol x, IMethodSymbol y, Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies, bool considerReturnRefKinds = false) 281private bool NamedTypesAreEquivalent(INamedTypeSymbol x, INamedTypeSymbol y, Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies) 301private bool NamedTypesAreEquivalentError(INamedTypeSymbol x, INamedTypeSymbol y, Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies) 303foreach (var type1 in Unwrap(x)) 306foreach (var type2 in Unwrap(y)) 330private bool HandleNamedTypesWorker(INamedTypeSymbol x, INamedTypeSymbol y, Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies) 418private bool HandleTupleTypes(INamedTypeSymbol x, INamedTypeSymbol y, Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies) 463Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies, 486internal bool ReturnTypesAreEquivalent(IMethodSymbol x, IMethodSymbol y, Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies = null) 492private bool TypeArgumentsAreEquivalent(ImmutableArray<ITypeSymbol> xTypeArguments, ImmutableArray<ITypeSymbol> yTypeArguments, Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies) 511private bool HandleAnonymousTypes(INamedTypeSymbol x, INamedTypeSymbol y, Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies) 547private bool NamespacesAreEquivalent(INamespaceSymbol x, INamespaceSymbol y, Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies) 564private bool ParametersAreEquivalent(IParameterSymbol x, IParameterSymbol y, Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies) 574private bool PointerTypesAreEquivalent(IPointerTypeSymbol x, IPointerTypeSymbol y, Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies) 581private bool FunctionPointerTypesAreEquivalent(IFunctionPointerTypeSymbol x, IFunctionPointerTypeSymbol y, Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies) 584private bool PropertiesAreEquivalent(IPropertySymbol x, IPropertySymbol y, Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies) 608private bool EventsAreEquivalent(IEventSymbol x, IEventSymbol y, Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies) 617private bool TypeParametersAreEquivalent(ITypeParameterSymbol x, ITypeParameterSymbol y, Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\SymbolEquivalenceComparer.GetHashCodeVisitor.cs (5)
70SymbolKind.NamedType => CombineHashCodes((INamedTypeSymbol)x, currentHash), 146private int CombineHashCodes(INamedTypeSymbol x, int currentHash) 154if (candidate is INamedTypeSymbol candidateNamedType) 164private int CombineNamedTypeHashCode(INamedTypeSymbol x, int currentHash) 193private int CombineAnonymousTypeHashCode(INamedTypeSymbol x, int currentHash)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\SymbolEquivalenceComparer.ParameterSymbolEqualityComparer.cs (2)
23Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies,
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\SymbolEquivalenceComparer.SignatureTypeSymbolEquivalenceComparer.cs (2)
18public bool Equals(ITypeSymbol? x, ITypeSymbol? y, Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies)
Microsoft.CodeAnalysis.CodeStyle.Fixes (303)
src\roslyn\src\Analyzers\Core\CodeFixes\AddExplicitCast\InheritanceDistanceComparer.cs (1)
70foreach (var interfaceType in derivedType.Interfaces)
src\roslyn\src\Analyzers\Core\CodeFixes\AddObsoleteAttribute\AbstractAddObsoleteAttributeCodeFixProvider.cs (4)
37var attribute = await GetObsoleteAttributeAsync(document, cancellationToken).ConfigureAwait(false); 57private static async Task<INamedTypeSymbol?> GetObsoleteAttributeAsync(Document document, CancellationToken cancellationToken) 60var attribute = compilation.GetTypeByMetadataName(typeof(ObsoleteAttribute).FullName!); 74var obsoleteAttribute = await GetObsoleteAttributeAsync(document, cancellationToken).ConfigureAwait(false);
src\roslyn\src\Analyzers\Core\CodeFixes\AddParameter\AbstractAddParameterCodeFixProvider.cs (3)
165var type = symbol switch 168INamedTypeSymbol namedTypeSymbol => namedTypeSymbol, // Standard object creation expressions 412Document invocationDocument, TArgumentSyntax argument, INamedTypeSymbol containingType, CancellationToken cancellationToken)
src\roslyn\src\Analyzers\Core\CodeFixes\AliasAmbiguousType\AbstractAliasAmbiguousTypeCodeFixProvider.cs (1)
133symbolInfo.CandidateSymbols.All(symbol => symbol is INamedTypeSymbol { Arity: 0 });
src\roslyn\src\Analyzers\Core\CodeFixes\ForEachCast\AbstractForEachCastCodeFixProvider.cs (1)
62var enumerableType = semanticModel.Compilation.GetBestTypeByMetadataName(typeof(Enumerable).FullName!);
src\roslyn\src\Analyzers\Core\CodeFixes\GenerateConstructor\AbstractGenerateConstructorService.cs (5)
29protected abstract bool ContainingTypesOrSelfHasUnsafeKeyword(INamedTypeSymbol containingType); 34protected abstract bool TryInitializeImplicitObjectCreation(SemanticDocument document, SyntaxNode node, CancellationToken cancellationToken, out SyntaxToken token, out ImmutableArray<Argument<TExpressionSyntax>> arguments, [NotNullWhen(true)] out INamedTypeSymbol? typeToGenerateIn); 35protected abstract bool TryInitializeSimpleNameGenerationState(SemanticDocument document, SyntaxNode simpleName, CancellationToken cancellationToken, out SyntaxToken token, out ImmutableArray<Argument<TExpressionSyntax>> arguments, [NotNullWhen(true)] out INamedTypeSymbol? typeToGenerateIn); 36protected abstract bool TryInitializeConstructorInitializerGeneration(SemanticDocument document, SyntaxNode constructorInitializer, CancellationToken cancellationToken, out SyntaxToken token, out ImmutableArray<Argument<TExpressionSyntax>> arguments, [NotNullWhen(true)] out INamedTypeSymbol? typeToGenerateIn); 37protected abstract bool TryInitializeSimpleAttributeNameGenerationState(SemanticDocument document, SyntaxNode simpleName, CancellationToken cancellationToken, out SyntaxToken token, out ImmutableArray<Argument<TExpressionSyntax>> arguments, [NotNullWhen(true)] out INamedTypeSymbol? typeToGenerateIn);
src\roslyn\src\Analyzers\Core\CodeFixes\GenerateConstructor\AbstractGenerateConstructorService.State.cs (6)
38public INamedTypeSymbol? TypeToGenerateIn { get; private set; } 301out var token, out var arguments, out var typeToGenerateIn)) 319out var token, out var arguments, out var typeToGenerateIn)) 338out var token, out var arguments, out var typeToGenerateIn)) 398INamedTypeSymbol original, CancellationToken cancellationToken) 401TypeToGenerateIn = definition as INamedTypeSymbol;
src\roslyn\src\Analyzers\Core\CodeFixes\GenerateConstructor\GenerateConstructorHelpers.cs (2)
136INamedTypeSymbol typeToGenerateIn, 301private static IEnumerable<string> GetUnavailableMemberNames(INamedTypeSymbol typeToGenerateIn)
src\roslyn\src\Analyzers\Core\CodeFixes\GenerateDefaultConstructors\AbstractGenerateDefaultConstructorsService.cs (1)
23[NotNullWhen(true)] out INamedTypeSymbol? classType);
src\roslyn\src\Analyzers\Core\CodeFixes\GenerateDefaultConstructors\AbstractGenerateDefaultConstructorsService.State.cs (5)
19public INamedTypeSymbol? ClassType { get; private set; } 50if (!service.TryInitializeState(semanticDocument, textSpan, cancellationToken, out var classType)) 55var baseType = ClassType.BaseType; 89private static bool FixesError(INamedTypeSymbol classType, INamedTypeSymbol baseType)
src\roslyn\src\Analyzers\Core\CodeFixes\GenerateDefaultConstructors\GenerateDefaultConstructorsCodeAction.cs (3)
52var classType = _state.ClassType; 67IParameterSymbol parameter, INamedTypeSymbol classType) 73private static Accessibility DetermineAccessibility(IMethodSymbol baseConstructor, INamedTypeSymbol classType)
src\roslyn\src\Analyzers\Core\CodeFixes\GenerateEnumMember\AbstractGenerateEnumMemberService.State.cs (5)
20public INamedTypeSymbol TypeToGenerateIn { get; private set; } = null!; 67var sourceType = (await SymbolFinderInternal.FindSourceDefinitionAsync(TypeToGenerateIn, document.Project.Solution, cancellationToken).ConfigureAwait(false)) as INamedTypeSymbol; 103var containingType = semanticModel.GetEnclosingNamedType(identifierToken.SpanStart, cancellationToken); 116out var typeToGenerateIn, out var isStatic, out var isColorColorCase))
src\roslyn\src\Analyzers\Core\CodeFixes\GenerateMember\AbstractGenerateMemberService.cs (14)
29[NotNullWhen(true)] INamedTypeSymbol? typeToGenerateIn, 53INamedTypeSymbol containingType, 56[NotNullWhen(true)] out INamedTypeSymbol? typeToGenerateIn, 64underlyingType is INamedTypeSymbol underlyingNamedType) 75INamedTypeSymbol containingType, 78out INamedTypeSymbol? typeToGenerateIn, 120typeToGenerateIn = pointerType.PointedAtType as INamedTypeSymbol; 132typeToGenerateIn = attributeType.Type as INamedTypeSymbol; 137typeToGenerateIn = semanticModel.GetTypeInfo(initializedObject, cancellationToken).Type as INamedTypeSymbol; 147typeToGenerateIn = inferenceService.InferType(semanticModel, propertyPatternClause, objectAsDefault: true, cancellationToken) as INamedTypeSymbol; 156typeToGenerateIn = semanticModel.GetTypeInfo(target, cancellationToken).Type as INamedTypeSymbol; 185out INamedTypeSymbol? typeToGenerateIn, 195: typeInfo.Type as INamedTypeSymbol; 197isStatic = semanticInfo.Symbol is INamedTypeSymbol;
src\roslyn\src\Analyzers\Core\CodeFixes\GenerateParameterizedMember\AbstractGenerateConversionService.cs (2)
24protected abstract bool TryInitializeImplicitConversionState(SemanticDocument document, SyntaxNode expression, ISet<TypeKind> classInterfaceModuleStructTypes, CancellationToken cancellationToken, out SyntaxToken identifierToken, [NotNullWhen(true)] out IMethodSymbol? methodSymbol, [NotNullWhen(true)] out INamedTypeSymbol? typeToGenerateIn); 25protected abstract bool TryInitializeExplicitConversionState(SemanticDocument document, SyntaxNode expression, ISet<TypeKind> classInterfaceModuleStructTypes, CancellationToken cancellationToken, out SyntaxToken identifierToken, [NotNullWhen(true)] out IMethodSymbol? methodSymbol, [NotNullWhen(true)] out INamedTypeSymbol? typeToGenerateIn);
src\roslyn\src\Analyzers\Core\CodeFixes\GenerateParameterizedMember\AbstractGenerateConversionService.State.cs (2)
62out var identifierToken, out var methodSymbol, out var typeToGenerateIn)) 86out var identifierToken, out var methodSymbol, out var typeToGenerateIn))
src\roslyn\src\Analyzers\Core\CodeFixes\GenerateParameterizedMember\AbstractGenerateDeconstructMethodService.cs (1)
26INamedTypeSymbol typeToGenerateIn,
src\roslyn\src\Analyzers\Core\CodeFixes\GenerateParameterizedMember\AbstractGenerateDeconstructMethodService.State.cs (2)
29INamedTypeSymbol typeToGenerateIn, 45INamedTypeSymbol typeToGenerateIn,
src\roslyn\src\Analyzers\Core\CodeFixes\GenerateParameterizedMember\AbstractGenerateMethodService.cs (1)
24protected abstract bool TryInitializeExplicitInterfaceState(SemanticDocument document, SyntaxNode node, CancellationToken cancellationToken, out SyntaxToken identifierToken, [NotNullWhen(true)] out IMethodSymbol? methodSymbol, [NotNullWhen(true)] out INamedTypeSymbol? typeToGenerateIn);
src\roslyn\src\Analyzers\Core\CodeFixes\GenerateParameterizedMember\AbstractGenerateMethodService.State.cs (2)
88out var identifierToken, out var methodSymbol, out var typeToGenerateIn)) 217out var typeToGenerateIn, out var isStatic, out _))
src\roslyn\src\Analyzers\Core\CodeFixes\GenerateParameterizedMember\AbstractGenerateParameterizedMemberService.cs (1)
29protected virtual bool ContainingTypesOrSelfHasUnsafeKeyword(INamedTypeSymbol containingType)
src\roslyn\src\Analyzers\Core\CodeFixes\GenerateParameterizedMember\AbstractGenerateParameterizedMemberService.SignatureInfo.cs (3)
222var containingType = State.ContainingType; 269private bool DerivesFrom(INamedTypeSymbol containingType) 272.OfType<INamedTypeSymbol>()
src\roslyn\src\Analyzers\Core\CodeFixes\GenerateParameterizedMember\AbstractGenerateParameterizedMemberService.State.cs (3)
23public INamedTypeSymbol ContainingType { get; protected set; } 24public INamedTypeSymbol TypeToGenerateIn { get; protected set; } 60TypeToGenerateIn = await SymbolFinderInternal.FindSourceDefinitionAsync(TypeToGenerateIn, document.Project.Solution, cancellationToken).ConfigureAwait(false) as INamedTypeSymbol;
src\roslyn\src\Analyzers\Core\CodeFixes\GenerateParameterizedMember\IGenerateDeconstructMemberService.cs (1)
16Document document, SyntaxNode targetVariables, INamedTypeSymbol typeToGenerateIn, CancellationToken cancellationToken);
src\roslyn\src\Analyzers\Core\CodeFixes\GenerateParameterizedMember\TypeParameterSubstitution.cs (9)
48public override async ValueTask VisitNamedType(INamedTypeSymbol symbol) 72if (symbol.ConstraintTypes.ElementAt(0) is INamedTypeSymbol namedType) 85if (!symbol.ConstraintTypes.All(t => t is INamedTypeSymbol)) 92(INamedTypeSymbol)symbol.ConstraintTypes[0], projects).ConfigureAwait(false); 97(INamedTypeSymbol)symbol.ConstraintTypes[i], projects).ConfigureAwait(false); 108var commonType = commonTypes.First(); 123private async Task<ISet<INamedTypeSymbol>> GetDerivedAndImplementedTypesAsync( 124INamedTypeSymbol constraintType, IImmutableSet<Project> projects) 128var symbol = constraintType;
src\roslyn\src\Analyzers\Core\CodeFixes\GenerateVariable\AbstractGenerateVariableService.CodeAction.cs (1)
172private static bool DerivesFrom(State state, INamedTypeSymbol containingType)
src\roslyn\src\Analyzers\Core\CodeFixes\GenerateVariable\AbstractGenerateVariableService.cs (3)
27protected abstract bool TryInitializeExplicitInterfaceState(SemanticDocument document, SyntaxNode node, CancellationToken cancellationToken, out SyntaxToken identifierToken, out IPropertySymbol propertySymbol, out INamedTypeSymbol typeToGenerateIn); 86protected virtual bool ContainingTypesOrSelfHasUnsafeKeyword(INamedTypeSymbol containingType) 212var cancellationTokenType = compilation.CancellationTokenType();
src\roslyn\src\Analyzers\Core\CodeFixes\GenerateVariable\AbstractGenerateVariableService.State.cs (6)
30public INamedTypeSymbol ContainingType { get; private set; } 31public INamedTypeSymbol TypeToGenerateIn { get; private set; } 154TypeToGenerateIn, _document.Project.Solution, cancellationToken).ConfigureAwait(false) as INamedTypeSymbol; 198out var identifierToken, out var propertySymbol, out var typeToGenerateIn)) 220if (!ContainingType.Interfaces.OfType<INamedTypeSymbol>().Contains(TypeToGenerateIn)) 292out var typeToGenerateIn, out var isStatic, out _))
src\roslyn\src\Analyzers\Core\CodeFixes\ImplementAbstractClass\AbstractImplementAbstractClassCodeFixProvider.cs (1)
43var abstractClassType = data.AbstractClassType;
src\roslyn\src\Analyzers\Core\CodeFixes\ImplementAbstractClass\ImplementAbstractClassData.cs (9)
28INamedTypeSymbol classType, INamedTypeSymbol abstractClassType, 29ImmutableArray<(INamedTypeSymbol type, ImmutableArray<ISymbol> members)> unimplementedMembers) 35private readonly ImmutableArray<(INamedTypeSymbol type, ImmutableArray<ISymbol> members)> _unimplementedMembers = unimplementedMembers; 37public readonly INamedTypeSymbol ClassType = classType; 38public readonly INamedTypeSymbol AbstractClassType = abstractClassType; 44if (semanticModel.GetDeclaredSymbol(classNode, cancellationToken) is not INamedTypeSymbol classType) 50var abstractClassType = classType.BaseType; 319constraints.OfType<INamedTypeSymbol>().FirstOrDefault() ??
src\roslyn\src\Analyzers\Core\CodeFixes\ImplementInterface\AbstractImplementInterfaceService.cs (5)
39[NotNullWhen(true)] out INamedTypeSymbol? classOrStructType, 40out ImmutableArray<INamedTypeSymbol> interfaceTypes); 44protected abstract SyntaxNode CreateFinalizer(SyntaxGenerator generator, INamedTypeSymbol classType, string disposeMethodDisplayString); 255var interfaceType = state.InterfaceTypes.First(); 302var firstInterfaceType = state.InterfaceTypes.First();
src\roslyn\src\Analyzers\Core\CodeFixes\ImplementInterface\AbstractImplementInterfaceService.State.cs (8)
17INamedTypeSymbol classOrStructType, 18ImmutableArray<INamedTypeSymbol> interfaceTypes, 29public INamedTypeSymbol ClassOrStructType => Info.ClassOrStructType; 30public ImmutableArray<INamedTypeSymbol> InterfaceTypes => Info.InterfaceTypes; 36public ImmutableArray<(INamedTypeSymbol type, ImmutableArray<ISymbol> members)> MembersWithoutExplicitOrImplicitImplementationWhichCanBeImplicitlyImplemented => Info.MembersWithoutExplicitOrImplicitImplementationWhichCanBeImplicitlyImplemented; 37public ImmutableArray<(INamedTypeSymbol type, ImmutableArray<ISymbol> members)> MembersWithoutExplicitOrImplicitImplementation => Info.MembersWithoutExplicitOrImplicitImplementation; 40public ImmutableArray<(INamedTypeSymbol type, ImmutableArray<ISymbol> members)> MembersWithoutExplicitImplementation => Info.MembersWithoutExplicitImplementation; 50out var classOrStructDecl, out var classOrStructType, out var interfaceTypes))
src\roslyn\src\Analyzers\Core\CodeFixes\ImplementInterface\ImplementHelpers.cs (6)
21INamedTypeSymbol namedType, 117ISymbol? first, INamedTypeSymbol second, bool supportsImplicitImplementationOfNonPublicInterfaceMembers) 171private static bool IsTypeLessAccessibleThanOtherType(ITypeSymbol? first, INamedTypeSymbol second, HashSet<ITypeSymbol> alreadyCheckingTypes) 199if (first is INamedTypeSymbol namedType) 233var idisposableType = disposeMethod.ContainingType; 248var idisposable = compilation.GetSpecialType(SpecialType.System_IDisposable);
src\roslyn\src\Analyzers\Core\CodeFixes\ImplementInterface\ImplementInterfaceGenerator.cs (3)
70ImmutableArray<(INamedTypeSymbol type, ImmutableArray<ISymbol> members)> unimplementedMembers, 104ImmutableArray<(INamedTypeSymbol type, ImmutableArray<ISymbol> members)> unimplementedMembers, 347IEnumerable<INamedTypeSymbol> baseTypes)
src\roslyn\src\Analyzers\Core\CodeFixes\ImplementInterface\ImplementInterfaceGenerator_DisposePattern.cs (5)
40ImmutableArray<(INamedTypeSymbol type, ImmutableArray<ISymbol> members)> unimplementedMembers, 202var gcType = compilation.GetTypeByMetadataName(typeof(GC).FullName!); 231INamedTypeSymbol containingType, 239var boolType = compilation.GetSpecialType(SpecialType.System_Boolean); 253private static string GenerateUniqueNameForDisposedValueField(INamedTypeSymbol containingType, NamingRule rule)
src\roslyn\src\Analyzers\Core\CodeFixes\ImplementInterface\ImplementInterfaceGenerator_Property.cs (3)
81private static INamedTypeSymbol[] AttributesToRemove(Compilation compilation) 95INamedTypeSymbol[] attributesToRemove) 129INamedTypeSymbol[] attributesToRemove)
src\roslyn\src\Analyzers\Core\CodeFixes\ImplementInterface\ImplementInterfaceInfo.cs (5)
14public required INamedTypeSymbol ClassOrStructType { get; init; } 27public ImmutableArray<INamedTypeSymbol> InterfaceTypes { get; init; } 29public ImmutableArray<(INamedTypeSymbol type, ImmutableArray<ISymbol> members)> MembersWithoutExplicitOrImplicitImplementationWhichCanBeImplicitlyImplemented { get; init; } = []; 30public ImmutableArray<(INamedTypeSymbol type, ImmutableArray<ISymbol> members)> MembersWithoutExplicitOrImplicitImplementation { get; init; } = []; 31public ImmutableArray<(INamedTypeSymbol type, ImmutableArray<ISymbol> members)> MembersWithoutExplicitImplementation { get; init; } = [];
src\roslyn\src\Analyzers\Core\CodeFixes\RemoveAsyncModifier\AbstractRemoveAsyncModifierCodeFixProvider.cs (1)
238private static SyntaxNode TypeExpressionForStaticMemberAccess(SyntaxGenerator generator, INamedTypeSymbol typeSymbol)
src\roslyn\src\Analyzers\Core\CodeFixes\SimplifyInterpolation\AbstractSimplifyInterpolationCodeFixProvider.cs (1)
57var readOnlySpanOfCharType = compilation.ReadOnlySpanOfTType()?.Construct(compilation.GetSpecialType(SpecialType.System_Char));
src\roslyn\src\Analyzers\Core\CodeFixes\UnsealClass\AbstractUnsealClassCodeFixProvider.cs (1)
39if (semanticModel.GetSymbolInfo(node, cancellationToken).Symbol is INamedTypeSymbol type &&
src\roslyn\src\Analyzers\Core\CodeFixes\UseAutoProperty\AbstractUseAutoPropertyCodeFixProvider.cs (1)
296var allowNullAttribute = compilation.AllowNullAttribute();
src\roslyn\src\Analyzers\Core\CodeFixes\UseCoalesceExpression\UseCoalesceExpressionForNullableTernaryConditionalCheckCodeFixProvider.cs (1)
40var expressionTypeOpt = semanticModel.Compilation.ExpressionOfTType();
src\roslyn\src\Analyzers\Core\CodeFixes\UseCoalesceExpression\UseCoalesceExpressionForTernaryConditionalCheckCodeFixProvider.cs (2)
41var expressionTypeOpt = semanticModel.Compilation.ExpressionOfTType(); 56SyntaxEditor editor, SemanticModel semanticModel, INamedTypeSymbol? expressionTypeOpt,
src\roslyn\src\Analyzers\Core\CodeFixes\UseSystemHashCode\UseSystemHashCodeCodeFixProvider.cs (1)
72var containingType = accessesBase ? method.ContainingType : null;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\AbstractCodeGenerationService.cs (15)
59public TDeclarationNode AddNamedType<TDeclarationNode>(TDeclarationNode destination, INamedTypeSymbol namedType, CodeGenerationContextInfo info, CancellationToken cancellationToken) where TDeclarationNode : SyntaxNode 88public SyntaxNode CreateNamedTypeDeclaration(INamedTypeSymbol namedType, CodeGenerationDestination destination, CodeGenerationContextInfo info, CancellationToken cancellationToken) 127protected abstract TDeclarationNode AddNamedType<TDeclarationNode>(TDeclarationNode destination, INamedTypeSymbol namedType, TCodeGenerationContextInfo info, IList<bool>? availableIndices, CancellationToken cancellationToken) where TDeclarationNode : SyntaxNode; 150public abstract SyntaxNode CreateNamedTypeDeclaration(INamedTypeSymbol namedType, CodeGenerationDestination destination, TCodeGenerationContextInfo info, CancellationToken cancellationToken); 349INamedTypeSymbol namedType => CreateNamedTypeDeclaration(namedType, codeGenerationDestination, info, cancellationToken), 367INamedTypeSymbol namedType => AddNamedType(currentDestination, namedType, info, availableIndices, cancellationToken), 392CodeGenerationSolutionContext context, INamedTypeSymbol destination, IEventSymbol @event, CancellationToken cancellationToken) 401public Task<Document> AddFieldAsync(CodeGenerationSolutionContext context, INamedTypeSymbol destination, IFieldSymbol field, CancellationToken cancellationToken) 410public Task<Document> AddPropertyAsync(CodeGenerationSolutionContext context, INamedTypeSymbol destination, IPropertySymbol property, CancellationToken cancellationToken) 419public Task<Document> AddNamedTypeAsync(CodeGenerationSolutionContext context, INamedTypeSymbol destination, INamedTypeSymbol namedType, CancellationToken cancellationToken) 428public Task<Document> AddNamedTypeAsync(CodeGenerationSolutionContext context, INamespaceSymbol destination, INamedTypeSymbol namedType, CancellationToken cancellationToken) 446public Task<Document> AddMethodAsync(CodeGenerationSolutionContext context, INamedTypeSymbol destination, IMethodSymbol method, CancellationToken cancellationToken) 455public Task<Document> AddMembersAsync(CodeGenerationSolutionContext context, INamedTypeSymbol destination, IEnumerable<ISymbol> members, CancellationToken cancellationToken) 477return AddNamedTypeAsync(context, destination, (INamedTypeSymbol)namespaceOrType, cancellationToken);
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\AbstractFlagsEnumGenerator.cs (10)
14protected abstract SyntaxNode CreateExplicitlyCastedLiteralValue(INamedTypeSymbol enumType, SpecialType underlyingSpecialType, object constantValue); 15protected abstract bool IsValidName(INamedTypeSymbol enumType, string name); 19public SyntaxNode CreateEnumConstantValue(INamedTypeSymbol enumType, object constantValue) 35private static bool IsFlagsEnum(INamedTypeSymbol typeSymbol) 47var type = ctor.ContainingType; 60private SyntaxNode CreateFlagsEnumConstantValue(INamedTypeSymbol enumType, object constantValue) 71INamedTypeSymbol enumType, 137IFieldSymbol field, INamedTypeSymbol enumType, SpecialType underlyingSpecialType) 167INamedTypeSymbol enumType, 184private SyntaxNode CreateNonFlagsEnumConstantValue(INamedTypeSymbol enumType, object constantValue)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\CodeGenerationHelpers.cs (2)
25var exceptionType = compilation.GetTypeByMetadataName(exceptionMetadataName); 150public static IEnumerable<ISymbol> GetMembers(INamedTypeSymbol namedType)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\CodeGenerationSymbolFactory.cs (14)
43INamedTypeSymbol? containingType, 148INamedTypeSymbol? containingType, 222INamedTypeSymbol? containingType = null, 250INamedTypeSymbol? containingType = null, 404INamedTypeSymbol attributeClass, 414public static INamedTypeSymbol CreateNamedTypeSymbol( 420INamedTypeSymbol? baseType = null, 421ImmutableArray<INamedTypeSymbol> interfaces = default, 433public static INamedTypeSymbol CreateNamedTypeSymbol( 439INamedTypeSymbol? baseType = null, 440ImmutableArray<INamedTypeSymbol> interfaces = default, 451members.WhereAsArray(m => m is not INamedTypeSymbol), 452[.. members.OfType<INamedTypeSymbol>().Select(n => n.ToCodeGenerationSymbol())], 519INamedTypeSymbol? containingType = null,
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\CodeGenerator.cs (8)
30public static Task<Document> AddEventDeclarationAsync(CodeGenerationSolutionContext context, INamedTypeSymbol destination, IEventSymbol @event, CancellationToken cancellationToken) 37public static Task<Document> AddFieldDeclarationAsync(CodeGenerationSolutionContext context, INamedTypeSymbol destination, IFieldSymbol field, CancellationToken cancellationToken) 44public static Task<Document> AddMethodDeclarationAsync(CodeGenerationSolutionContext context, INamedTypeSymbol destination, IMethodSymbol method, CancellationToken cancellationToken) 51public static Task<Document> AddPropertyDeclarationAsync(CodeGenerationSolutionContext context, INamedTypeSymbol destination, IPropertySymbol property, CancellationToken cancellationToken) 58public static Task<Document> AddNamedTypeDeclarationAsync(CodeGenerationSolutionContext context, INamedTypeSymbol destination, INamedTypeSymbol namedType, CancellationToken cancellationToken) 65public static Task<Document> AddNamedTypeDeclarationAsync(CodeGenerationSolutionContext context, INamespaceSymbol destination, INamedTypeSymbol namedType, CancellationToken cancellationToken) 86public static Task<Document> AddMemberDeclarationsAsync(CodeGenerationSolutionContext context, INamedTypeSymbol destination, IEnumerable<ISymbol> members, CancellationToken cancellationToken)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\ICodeGenerationService.cs (10)
43SyntaxNode CreateNamedTypeDeclaration(INamedTypeSymbol namedType, CodeGenerationDestination destination, CodeGenerationContextInfo info, CancellationToken cancellationToken); 73TDeclarationNode AddNamedType<TDeclarationNode>(TDeclarationNode destination, INamedTypeSymbol namedType, CodeGenerationContextInfo info, CancellationToken cancellationToken) where TDeclarationNode : SyntaxNode; 133Task<Document> AddEventAsync(CodeGenerationSolutionContext context, INamedTypeSymbol destination, IEventSymbol @event, CancellationToken cancellationToken); 138Task<Document> AddFieldAsync(CodeGenerationSolutionContext context, INamedTypeSymbol destination, IFieldSymbol field, CancellationToken cancellationToken); 143Task<Document> AddMethodAsync(CodeGenerationSolutionContext context, INamedTypeSymbol destination, IMethodSymbol method, CancellationToken cancellationToken); 148Task<Document> AddPropertyAsync(CodeGenerationSolutionContext context, INamedTypeSymbol destination, IPropertySymbol property, CancellationToken cancellationToken); 153Task<Document> AddNamedTypeAsync(CodeGenerationSolutionContext context, INamedTypeSymbol destination, INamedTypeSymbol namedType, CancellationToken cancellationToken); 158Task<Document> AddNamedTypeAsync(CodeGenerationSolutionContext context, INamespaceSymbol destination, INamedTypeSymbol namedType, CancellationToken cancellationToken); 173Task<Document> AddMembersAsync(CodeGenerationSolutionContext context, INamedTypeSymbol destination, IEnumerable<ISymbol> members, CancellationToken cancellationToken);
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\INamedTypeSymbolExtensions.cs (2)
11public static CodeGenerationAbstractNamedTypeSymbol ToCodeGenerationSymbol(this INamedTypeSymbol namedType) 32namedType.GetMembers().WhereAsArray(s => s is not INamedTypeSymbol),
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\Symbols\CodeGenerationAbstractMethodSymbol.cs (3)
23INamedTypeSymbol containingType, 98public INamedTypeSymbol AssociatedAnonymousDelegate => null; 110public ImmutableArray<INamedTypeSymbol> UnmanagedCallingConventionTypes => [];
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\Symbols\CodeGenerationAbstractNamedTypeSymbol.cs (10)
16public new INamedTypeSymbol OriginalDefinition { get; protected set; } 24INamedTypeSymbol containingType, 53public INamedTypeSymbol Construct(params ITypeSymbol[] typeArguments) 64public INamedTypeSymbol Construct(ImmutableArray<ITypeSymbol> typeArguments, ImmutableArray<NullableAnnotation> typeArgumentNullableAnnotations) 77public abstract INamedTypeSymbol EnumUnderlyingType { get; } 79INamedTypeSymbol INamedTypeSymbol.ConstructedFrom => this.ConstructedFrom; 80public abstract INamedTypeSymbol ConstructUnboundGenericType(); 119public INamedTypeSymbol NativeIntegerUnderlyingType => null; 121public INamedTypeSymbol TupleUnderlyingType => null;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\Symbols\CodeGenerationAttributeData.cs (2)
13INamedTypeSymbol attributeClass, 20protected override INamedTypeSymbol CommonAttributeClass => attributeClass;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\Symbols\CodeGenerationConstructedNamedTypeSymbol.cs (4)
51public override INamedTypeSymbol EnumUnderlyingType 57public override INamedTypeSymbol ConstructUnboundGenericType() 87public override ImmutableArray<INamedTypeSymbol> GetTypeMembers() 90return [.. _constructedFrom.TypeMembers.Cast<INamedTypeSymbol>()];
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\Symbols\CodeGenerationConstructorSymbol.cs (1)
11INamedTypeSymbol? containingType,
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\Symbols\CodeGenerationConversionSymbol.cs (1)
11INamedTypeSymbol? containingType,
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\Symbols\CodeGenerationDestructorSymbol.cs (1)
10INamedTypeSymbol? containingType,
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\Symbols\CodeGenerationEventSymbol.cs (1)
12INamedTypeSymbol? containingType,
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\Symbols\CodeGenerationFieldSymbol.cs (1)
13INamedTypeSymbol containingType,
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\Symbols\CodeGenerationMethodSymbol.cs (1)
23INamedTypeSymbol containingType,
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\Symbols\CodeGenerationNamedTypeSymbol.cs (11)
19private readonly ImmutableArray<INamedTypeSymbol> _interfaces; 24INamedTypeSymbol containingType, 32INamedTypeSymbol baseType, 33ImmutableArray<INamedTypeSymbol> interfaces, 38INamedTypeSymbol enumUnderlyingType) 101public override INamedTypeSymbol EnumUnderlyingType { get; } 111public override INamedTypeSymbol ConstructUnboundGenericType() 147public override INamedTypeSymbol BaseType { get; } 149public override ImmutableArray<INamedTypeSymbol> Interfaces 160public override ImmutableArray<INamedTypeSymbol> GetTypeMembers() 161=> [.. this.TypeMembers.Cast<INamedTypeSymbol>()];
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\Symbols\CodeGenerationNamespaceOrTypeSymbol.cs (4)
14INamedTypeSymbol containingType, 29public virtual ImmutableArray<INamedTypeSymbol> GetTypeMembers() 32public ImmutableArray<INamedTypeSymbol> GetTypeMembers(string name) 35public ImmutableArray<INamedTypeSymbol> GetTypeMembers(string name, int arity)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\Symbols\CodeGenerationNamespaceSymbol.cs (1)
57public static INamedTypeSymbol ImplicitType => null;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\Symbols\CodeGenerationOperatorSymbol.cs (1)
11INamedTypeSymbol? containingType,
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\Symbols\CodeGenerationParameterSymbol.cs (1)
13INamedTypeSymbol containingType,
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\Symbols\CodeGenerationPropertySymbol.cs (1)
13INamedTypeSymbol containingType,
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\Symbols\CodeGenerationSymbol.cs (3)
27public INamedTypeSymbol ContainingType { get; protected set; } 31INamedTypeSymbol containingType, 162public ImmutableArray<AttributeData> GetAttributes(INamedTypeSymbol attributeType)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\Symbols\CodeGenerationTypeParameterSymbol.cs (3)
12INamedTypeSymbol containingType, 80public INamedTypeSymbol DeclaringType 84return this.ContainingSymbol as INamedTypeSymbol;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\Symbols\CodeGenerationTypeSymbol.cs (4)
14INamedTypeSymbol containingType, 27public virtual INamedTypeSymbol BaseType => null; 29public virtual ImmutableArray<INamedTypeSymbol> Interfaces 32public ImmutableArray<INamedTypeSymbol> AllInterfaces
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\TypeGenerator.cs (1)
21public ITypeSymbol Construct(INamedTypeSymbol namedType, ITypeSymbol[] typeArguments)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\Editing\ImportAdderService.cs (2)
202foreach (var namedType in SymbolAnnotation.GetSymbols(annotation, model.Compilation).OfType<INamedTypeSymbol>())
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\Extensions\IMethodSymbolExtensions.cs (3)
19this IMethodSymbol method, INamedTypeSymbol containingType, ISyntaxFactsService syntaxFacts) 143params INamedTypeSymbol[] removeAttributeTypes) 172static bool shouldRemoveAttribute(AttributeData a, (INamedTypeSymbol[] removeAttributeTypes, ISymbol accessibleWithin) arg)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\Extensions\IPropertySymbolExtensions.cs (2)
41this IPropertySymbol property, ISymbol accessibleWithin, params INamedTypeSymbol[] attributesToRemove) 69static bool ShouldRemoveAttribute(AttributeData a, (INamedTypeSymbol[] attributesToRemove, ISymbol accessibleWithin) arg)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\Extensions\ITypeInferenceServiceExtensions.cs (3)
27public static INamedTypeSymbol? InferDelegateType( 37public static INamedTypeSymbol? InferDelegateType( 47private static INamedTypeSymbol? GetFirstDelegateType(SemanticModel semanticModel, ImmutableArray<ITypeSymbol> types)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\Extensions\SyntaxGeneratorExtensions.cs (4)
39var notImplementedExceptionTypeSyntax = compilation.NotImplementedExceptionType() is INamedTypeSymbol symbol 72var equalityComparerType = compilation.EqualityComparerOfTType(); 176var classOrStructType = throughMember.ContainingType; 441var type = compilation.GetTypeByMetadataName(typeof(ArgumentNullException).FullName!);
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\Extensions\SyntaxGeneratorExtensions_CreateEqualsMethod.cs (11)
29INamedTypeSymbol containingType, 79INamedTypeSymbol containingType, 81INamedTypeSymbol constructedEquatableType, 125INamedTypeSymbol containingType, 243var iequatableType = compilation.GetTypeByMetadataName(typeof(IEquatable<>).FullName); 296INamedTypeSymbol containingType, 407private static bool ImplementsIEquatable(ITypeSymbol memberType, INamedTypeSymbol? iequatableType) 413var constructed = iequatableType.Construct(memberType); 458private static bool HasExistingBaseEqualsMethod(INamedTypeSymbol containingType) 481INamedTypeSymbol? containingType, 515INamedTypeSymbol? containingType,
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\Extensions\SyntaxGeneratorExtensions_CreateGetHashCodeMethod.cs (5)
21INamedTypeSymbol? containingType, 43INamedTypeSymbol hashCodeType, ImmutableArray<SyntaxNode> memberReferences) 83INamedTypeSymbol containingType, 179this SyntaxGenerator generator, SyntaxGeneratorInternal generatorInternal, INamedTypeSymbol namedTypeSymbol, 192public static IMethodSymbol? GetBaseGetHashCodeMethod(INamedTypeSymbol containingType)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\Extensions\SyntaxGeneratorExtensions_Negate.cs (1)
444var containingType = property.ContainingType;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\LanguageServices\InitializeParameter\InitializeParameterHelpersCore.cs (5)
66var containingType = parameter.ContainingType; 84var containingType = parameter.ContainingType; 146IOperation? operation, INamedTypeSymbol containingType, 163public static bool IsFieldOrPropertyAssignment(IOperation statement, INamedTypeSymbol containingType, [NotNullWhen(true)] out IAssignmentOperation? assignmentExpression) 167IOperation statement, INamedTypeSymbol containingType,
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\LanguageServices\SemanticsFactsService\AbstractSemanticFactsService.cs (7)
129var valueTaskType = compilation.ValueTaskType(); 165(INamedTypeSymbol?, IMethodSymbol?) GetIDisposableInterfaceAndDisposeMethod(string typeName, string methodName) 167var disposableType = compilation.GetBestTypeByMetadataName(typeName); 201public bool LastEnumValueHasInitializer(INamedTypeSymbol namedTypeSymbol) 225public bool IsPartial(INamedTypeSymbol typeSymbol, CancellationToken cancellationToken) 252public bool IsInExpressionTree(SemanticModel semanticModel, SyntaxNode node, INamedTypeSymbol? expressionTypeOpt, CancellationToken cancellationToken) 261public bool TryGetPrimaryConstructor(INamedTypeSymbol typeSymbol, [NotNullWhen(true)] out IMethodSymbol? primaryConstructor)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\LanguageServices\SyntaxGeneratorInternalExtensions\SyntaxGeneratorInternal.cs (1)
123public abstract SyntaxNode DeclarationPattern(INamedTypeSymbol type, string name);
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\LanguageServices\TypeInferenceService\AbstractTypeInferenceService.AbstractTypeInferrer.cs (1)
102protected static IEnumerable<TypeInferenceInfo> GetCollectionElementType(INamedTypeSymbol type)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\Simplification\SimplificationHelpers.cs (1)
80var typeSymbol = semanticModel.Compilation.GetSpecialType(specialType);
Microsoft.CodeAnalysis.CSharp (132)
Binder\Binder_Conversions.cs (1)
736foreach (var memoryExtensionsType in compilation.GetTypesByMetadataName(WellKnownMemberNames.MemoryExtensionsTypeFullName))
Compilation\CSharpCompilation.cs (11)
406protected override INamedTypeSymbol CommonCreateErrorTypeSymbol(INamespaceOrTypeSymbol? container, string name, int arity) 4231protected override INamedTypeSymbol? CommonGetTypeByMetadataName(string metadataName) 4236protected override INamedTypeSymbol? CommonScriptClass 4257ImmutableArray<INamedTypeSymbol> callingConventionTypes) 4321static CustomModifier getCustomModifierForType(INamedTypeSymbol type, CSharpCompilation @this, int index) 4338protected override INamedTypeSymbol CommonCreateNativeIntegerTypeSymbol(bool signed) 4348protected override INamedTypeSymbol CommonCreateTupleTypeSymbol( 4374protected override INamedTypeSymbol CommonCreateTupleTypeSymbol( 4375INamedTypeSymbol underlyingType, 4403protected override INamedTypeSymbol CommonCreateAnonymousTypeSymbol( 4743protected override INamedTypeSymbol CommonObjectType
Compilation\CSharpSemanticModel.cs (5)
2990public abstract INamedTypeSymbol GetDeclaredSymbol(BaseTypeDeclarationSyntax declarationSyntax, CancellationToken cancellationToken = default(CancellationToken)); 2998public abstract INamedTypeSymbol GetDeclaredSymbol(DelegateDeclarationSyntax declarationSyntax, CancellationToken cancellationToken = default(CancellationToken)); 3124public abstract INamedTypeSymbol GetDeclaredSymbol(AnonymousObjectCreationExpressionSyntax declaratorSyntax, CancellationToken cancellationToken = default(CancellationToken)); 3132public abstract INamedTypeSymbol GetDeclaredSymbol(TupleExpressionSyntax declaratorSyntax, CancellationToken cancellationToken = default(CancellationToken)); 5239var namedType = GetDeclaredSymbol(typeDeclaration, cancellationToken);
Compilation\MemberSemanticModel.cs (4)
604public override INamedTypeSymbol GetDeclaredSymbol(BaseTypeDeclarationSyntax declarationSyntax, CancellationToken cancellationToken = default(CancellationToken)) 610public override INamedTypeSymbol GetDeclaredSymbol(DelegateDeclarationSyntax declarationSyntax, CancellationToken cancellationToken = default(CancellationToken)) 1138public override INamedTypeSymbol GetDeclaredSymbol(AnonymousObjectCreationExpressionSyntax declaratorSyntax, CancellationToken cancellationToken = default(CancellationToken)) 1145public override INamedTypeSymbol GetDeclaredSymbol(TupleExpressionSyntax declaratorSyntax, CancellationToken cancellationToken = default(CancellationToken))
Compilation\SpeculativeSemanticModelWithMemberModel.cs (4)
265public override INamedTypeSymbol GetDeclaredSymbol(BaseTypeDeclarationSyntax declarationSyntax, CancellationToken cancellationToken = default(CancellationToken)) 270public override INamedTypeSymbol GetDeclaredSymbol(DelegateDeclarationSyntax declarationSyntax, CancellationToken cancellationToken = default(CancellationToken)) 440public override INamedTypeSymbol GetDeclaredSymbol(AnonymousObjectCreationExpressionSyntax declaratorSyntax, CancellationToken cancellationToken = default(CancellationToken)) 445public override INamedTypeSymbol GetDeclaredSymbol(TupleExpressionSyntax declaratorSyntax, CancellationToken cancellationToken = default(CancellationToken))
Compilation\SyntaxTreeSemanticModel.cs (7)
452public override INamedTypeSymbol GetDeclaredSymbol(AnonymousObjectCreationExpressionSyntax declaratorSyntax, CancellationToken cancellationToken = default(CancellationToken)) 459public override INamedTypeSymbol GetDeclaredSymbol(TupleExpressionSyntax declaratorSyntax, CancellationToken cancellationToken = default(CancellationToken)) 512var symbol = this.GetDeclaredSymbol(decl); 1357public override INamedTypeSymbol GetDeclaredSymbol(BaseTypeDeclarationSyntax declarationSyntax, CancellationToken cancellationToken = default(CancellationToken)) 1370public override INamedTypeSymbol GetDeclaredSymbol(DelegateDeclarationSyntax declarationSyntax, CancellationToken cancellationToken = default(CancellationToken)) 2039INamedTypeSymbol extension = GetDeclaredSymbol(extensionDecl, cancellationToken); 2141var delegateType = (GetDeclaredSymbol(memberDecl, cancellationToken) as INamedTypeSymbol).GetSymbol();
CSharpExtensions.cs (4)
1406public static INamedTypeSymbol? GetDeclaredSymbol(this SemanticModel? semanticModel, BaseTypeDeclarationSyntax declarationSyntax, CancellationToken cancellationToken = default(CancellationToken)) 1415public static INamedTypeSymbol? GetDeclaredSymbol(this SemanticModel? semanticModel, DelegateDeclarationSyntax declarationSyntax, CancellationToken cancellationToken = default(CancellationToken)) 1487public static INamedTypeSymbol? GetDeclaredSymbol(this SemanticModel? semanticModel, AnonymousObjectCreationExpressionSyntax declaratorSyntax, CancellationToken cancellationToken = default(CancellationToken)) 1496public static INamedTypeSymbol? GetDeclaredSymbol(this SemanticModel? semanticModel, TupleExpressionSyntax declaratorSyntax, CancellationToken cancellationToken = default(CancellationToken))
SymbolDisplay\SymbolDisplay.cs (1)
291if (symbol is INamedTypeSymbol { IsExtension: true } extension
SymbolDisplay\SymbolDisplayVisitor.cs (2)
368INamedTypeSymbol containingType = symbol.ContainingType; 442private bool IncludeNamedType([NotNullWhen(true)] INamedTypeSymbol? namedType)
SymbolDisplay\SymbolDisplayVisitor.Members.cs (3)
617foreach (var conventionType in conventionTypes) 929INamedTypeSymbol containingType = symbol.ContainingType; 1059INamedTypeSymbol containingType = implementedMember.ContainingType;
SymbolDisplay\SymbolDisplayVisitor.Types.cs (22)
175public override void VisitNamedType(INamedTypeSymbol symbol) 199private void VisitNamedTypeWithoutNullability(INamedTypeSymbol symbol) 315private bool ShouldDisplayAsValueTuple(INamedTypeSymbol symbol) 327private void AddNameAndTypeArgumentsOrParameters(INamedTypeSymbol symbol) 466void addExtensionParameter(INamedTypeSymbol symbol) 491private void AddDelegateParameters(INamedTypeSymbol symbol) 507private void AddAnonymousTypeName(INamedTypeSymbol symbol) 529private bool CanUseTupleSyntax(INamedTypeSymbol tupleSymbol) 536INamedTypeSymbol currentUnderlying = GetTupleUnderlyingTypeOrSelf(tupleSymbol); 544tupleSymbol = (INamedTypeSymbol)currentUnderlying.TypeArguments[NamedTypeSymbol.ValueTupleRestPosition - 1]; 559bool containsModopt(INamedTypeSymbol symbol) 572private static INamedTypeSymbol GetTupleUnderlyingTypeOrSelf(INamedTypeSymbol type) 577private static bool HasNonDefaultTupleElements(INamedTypeSymbol tupleSymbol) 582private void AddTupleTypeName(INamedTypeSymbol symbol) 630private bool CanShowDelegateSignature(INamedTypeSymbol symbol) 639private static SymbolDisplayPartKind GetPartKind(INamedTypeSymbol symbol) 666private bool AddSpecialTypeKeyword(INamedTypeSymbol symbol) 680private static string? GetSpecialTypeName(INamedTypeSymbol symbol) 725private void AddTypeKind(INamedTypeSymbol symbol) 835typeArguments = ((INamedTypeSymbol)owner).TypeArguments; 1000internal void AddExtensionMarkerName(INamedTypeSymbol extension)
SymbolDisplay\SymbolDisplayVisitor_Constants.cs (1)
34protected override void AddExplicitlyCastedLiteralValue(INamedTypeSymbol namedType, SpecialType type, object value)
SymbolDisplay\SymbolDisplayVisitor_Minimal.cs (2)
117private void MinimallyQualify(INamedTypeSymbol symbol) 285private string RemoveAttributeSuffixIfNecessary(INamedTypeSymbol symbol, string symbolName)
Symbols\Attributes\AttributeData.cs (2)
187/// Gets the attribute class being applied as an <see cref="INamedTypeSymbol"/> 189protected override INamedTypeSymbol? CommonAttributeClass
Symbols\CustomModifier.cs (1)
28public override INamedTypeSymbol Modifier
Symbols\PublicModel\AssemblySymbol.cs (3)
52INamedTypeSymbol IAssemblySymbol.ResolveForwardedType(string fullyQualifiedMetadataName) 57ImmutableArray<INamedTypeSymbol> IAssemblySymbol.GetForwardedTypes() 105INamedTypeSymbol? IAssemblySymbol.GetTypeByMetadataName(string metadataName)
Symbols\PublicModel\MethodSymbol.cs (2)
287ImmutableArray<INamedTypeSymbol> IMethodSymbol.UnmanagedCallingConventionTypes => _underlying.UnmanagedCallingConventionTypes.SelectAsArray(t => t.GetPublicSymbol()); 317INamedTypeSymbol IMethodSymbol.AssociatedAnonymousDelegate
Symbols\PublicModel\NamedTypeSymbol.cs (40)
24int INamedTypeSymbol.Arity 32ImmutableArray<IMethodSymbol> INamedTypeSymbol.InstanceConstructors 40ImmutableArray<IMethodSymbol> INamedTypeSymbol.StaticConstructors 48ImmutableArray<IMethodSymbol> INamedTypeSymbol.Constructors 56IEnumerable<string> INamedTypeSymbol.MemberNames 64ImmutableArray<ITypeParameterSymbol> INamedTypeSymbol.TypeParameters 72ImmutableArray<ITypeSymbol> INamedTypeSymbol.TypeArguments 86ImmutableArray<CodeAnalysis.NullableAnnotation> INamedTypeSymbol.TypeArgumentNullableAnnotations 94ImmutableArray<CustomModifier> INamedTypeSymbol.GetTypeArgumentCustomModifiers(int ordinal) 99INamedTypeSymbol INamedTypeSymbol.OriginalDefinition 107IMethodSymbol INamedTypeSymbol.DelegateInvokeMethod 115INamedTypeSymbol INamedTypeSymbol.EnumUnderlyingType 123INamedTypeSymbol INamedTypeSymbol.ConstructedFrom 131INamedTypeSymbol INamedTypeSymbol.Construct(params ITypeSymbol[] typeArguments) 136INamedTypeSymbol INamedTypeSymbol.Construct(ImmutableArray<ITypeSymbol> typeArguments, ImmutableArray<CodeAnalysis.NullableAnnotation> typeArgumentNullableAnnotations) 141INamedTypeSymbol INamedTypeSymbol.ConstructUnboundGenericType() 146ISymbol INamedTypeSymbol.AssociatedSymbol 159ImmutableArray<IFieldSymbol> INamedTypeSymbol.TupleElements 171INamedTypeSymbol INamedTypeSymbol.TupleUnderlyingType 183bool INamedTypeSymbol.IsComImport => UnderlyingNamedTypeSymbol.IsComImport; 185bool INamedTypeSymbol.IsGenericType => UnderlyingNamedTypeSymbol.IsGenericType; 187bool INamedTypeSymbol.IsUnboundGenericType => UnderlyingNamedTypeSymbol.IsUnboundGenericType; 189bool INamedTypeSymbol.IsScriptClass => UnderlyingNamedTypeSymbol.IsScriptClass; 191bool INamedTypeSymbol.IsImplicitClass => UnderlyingNamedTypeSymbol.IsImplicitClass; 193bool INamedTypeSymbol.MightContainExtensionMethods => UnderlyingNamedTypeSymbol.MightContainExtensions; 195bool INamedTypeSymbol.IsSerializable => UnderlyingNamedTypeSymbol.IsSerializable; 197bool INamedTypeSymbol.IsFileLocal => 203INamedTypeSymbol INamedTypeSymbol.NativeIntegerUnderlyingType => UnderlyingNamedTypeSymbol.NativeIntegerUnderlyingType.GetPublicSymbol(); 206bool INamedTypeSymbol.IsExtension 219string? INamedTypeSymbol.ExtensionGroupingName => UnderlyingNamedTypeSymbol.ExtensionGroupingName; 220string? INamedTypeSymbol.ExtensionMarkerName => UnderlyingNamedTypeSymbol.ExtensionMarkerName; 222IParameterSymbol? INamedTypeSymbol.ExtensionParameter => UnderlyingNamedTypeSymbol.ExtensionParameter?.GetPublicSymbol();
Symbols\PublicModel\NamespaceOrTypeSymbol.cs (3)
23ImmutableArray<INamedTypeSymbol> INamespaceOrTypeSymbol.GetTypeMembers() 28ImmutableArray<INamedTypeSymbol> INamespaceOrTypeSymbol.GetTypeMembers(string name) 33ImmutableArray<INamedTypeSymbol> INamespaceOrTypeSymbol.GetTypeMembers(string name, int arity)
Symbols\PublicModel\PreprocessingSymbol.cs (1)
25INamedTypeSymbol? ISymbol.ContainingType => null;
Symbols\PublicModel\Symbol.cs (1)
71INamedTypeSymbol ISymbol.ContainingType
Symbols\PublicModel\TypeParameterSymbol.cs (1)
57INamedTypeSymbol ITypeParameterSymbol.DeclaringType
Symbols\PublicModel\TypeSymbol.cs (4)
14private ImmutableArray<INamedTypeSymbol> _allInterfaces = default; 93INamedTypeSymbol ITypeSymbol.BaseType 101ImmutableArray<INamedTypeSymbol> ITypeSymbol.Interfaces 109ImmutableArray<INamedTypeSymbol> ITypeSymbol.AllInterfaces
Symbols\SymbolExtensions.cs (6)
414internal static NamedTypeSymbol? EnsureCSharpSymbolOrNull(this INamedTypeSymbol? symbol, string paramName) 569internal static INamedTypeSymbol? GetPublicSymbol(this NamedTypeSymbol? symbol) 571return symbol.GetPublicSymbol<INamedTypeSymbol>(); 707internal static ImmutableArray<INamedTypeSymbol> GetPublicSymbols(this ImmutableArray<NamedTypeSymbol> symbols) 709return GetPublicSymbols<INamedTypeSymbol>(StaticCast<Symbol>.From(symbols)); 772internal static NamedTypeSymbol? GetSymbol(this INamedTypeSymbol? symbol)
Symbols\TypedConstantExtensions.cs (1)
54SpecialType splType = ((INamedTypeSymbol)constant.Type!).EnumUnderlyingType!.SpecialType;
Microsoft.CodeAnalysis.CSharp.Analyzers (32)
MetaAnalyzers\CSharpRegisterActionAnalyzer.cs (14)
22INamedTypeSymbol analysisContext, 23INamedTypeSymbol compilationStartAnalysisContext, 24INamedTypeSymbol codeBlockStartAnalysisContext, 25INamedTypeSymbol operationBlockStartAnalysisContext, 26INamedTypeSymbol symbolKind) 28INamedTypeSymbol? csharpSyntaxKind = compilation.GetOrCreateTypeByMetadataName(CSharpSyntaxKindName); 29INamedTypeSymbol? basicSyntaxKind = compilation.GetOrCreateTypeByMetadataName(BasicSyntaxKindName); 39INamedTypeSymbol? csharpSyntaxKind, 40INamedTypeSymbol? basicSyntaxKind, 41INamedTypeSymbol analysisContext, 42INamedTypeSymbol compilationStartAnalysisContext, 43INamedTypeSymbol codeBlockStartAnalysisContext, 44INamedTypeSymbol operationBlockStartAnalysisContext, 45INamedTypeSymbol symbolKind)
MetaAnalyzers\CSharpReportDiagnosticAnalyzer.cs (10)
17protected override ReportDiagnosticCompilationAnalyzer GetAnalyzer(ImmutableHashSet<INamedTypeSymbol> contextTypes, INamedTypeSymbol diagnosticType, INamedTypeSymbol diagnosticDescriptorType, INamedTypeSymbol diagnosticAnalyzer, INamedTypeSymbol diagnosticAnalyzerAttribute) 24public CSharpReportDiagnosticCompilationAnalyzer(ImmutableHashSet<INamedTypeSymbol> contextTypes, INamedTypeSymbol diagnosticType, INamedTypeSymbol diagnosticDescriptorType, INamedTypeSymbol diagnosticAnalyzer, INamedTypeSymbol diagnosticAnalyzerAttribute)
MetaAnalyzers\CSharpSemanticModelGetDeclaredSymbolAlwaysReturnsNullAnalyzer.cs (8)
53if (!typeProvider.TryGetOrCreateTypeByMetadataName(WellKnownTypeNames.MicrosoftCodeAnalysisCSharpCSharpExtensions, out var csharpExtensions) 54|| !typeProvider.TryGetOrCreateTypeByMetadataName(WellKnownTypeNames.MicrosoftCodeAnalysisModelExtensions, out var modelExtensions) 55|| !typeProvider.TryGetOrCreateTypeByMetadataName(WellKnownTypeNames.MicrosoftCodeAnalysisCSharpSyntaxBaseFieldDeclarationSyntax, out var baseFieldDeclaration) 56|| !typeProvider.TryGetOrCreateTypeByMetadataName(WellKnownTypeNames.MicrosoftCodeAnalysisCSharpSyntaxLocalFunctionStatementSyntax, out var localFunctionStatement) 57|| !typeProvider.TryGetOrCreateTypeByMetadataName(WellKnownTypeNames.MicrosoftCodeAnalysisSyntaxNode, out var syntaxNode) 76INamedTypeSymbol baseFieldDeclarationType, 77INamedTypeSymbol localFunctionStatementType, 78INamedTypeSymbol syntaxNodeType)
Microsoft.CodeAnalysis.CSharp.CodeStyle (158)
src\roslyn\src\Analyzers\CSharp\Analyzers\ConvertProgram\ConvertProgramAnalysis_TopLevelStatements.cs (1)
91private static bool TypeCanBeConverted(INamedTypeSymbol containingType, TypeDeclarationSyntax typeDeclaration)
src\roslyn\src\Analyzers\CSharp\Analyzers\InlineDeclaration\CSharpInlineDeclarationDiagnosticAnalyzer.cs (2)
50var expressionType = compilation.GetTypeByMetadataName(typeof(Expression<>).FullName!); 63private void AnalyzeSyntaxNode(SyntaxNodeAnalysisContext context, INamedTypeSymbol? expressionType)
src\roslyn\src\Analyzers\CSharp\Analyzers\MakeStructFieldsWritable\CSharpMakeStructFieldsWritableDiagnosticAnalyzer.cs (6)
39private readonly INamedTypeSymbol _namedTypeSymbol; 42private SymbolAnalyzer(INamedTypeSymbol namedTypeSymbol) 53var namedTypeSymbol = (INamedTypeSymbol)context.Symbol; 72private static Location GetDiagnosticLocation(INamedTypeSymbol namedTypeSymbol) 75private static bool HasReadonlyField(INamedTypeSymbol namedTypeSymbol)
src\roslyn\src\Analyzers\CSharp\Analyzers\MakeStructMemberReadOnly\CSharpMakeStructMemberReadOnlyAnalyzer.cs (1)
56if (context.Symbol is not INamedTypeSymbol
src\roslyn\src\Analyzers\CSharp\Analyzers\MakeStructReadOnly\CSharpMakeStructReadOnlyDiagnosticAnalyzer.cs (2)
76var typeSymbol = (INamedTypeSymbol)context.Symbol;
src\roslyn\src\Analyzers\CSharp\Analyzers\RemoveUnnecessaryDiscardDesignation\CSharpRemoveUnnecessaryDiscardDesignationDiagnosticAnalyzer.cs (1)
68var typeSymbol = semanticModel.GetRequiredDeclaredSymbol(containingTypeSyntax, cancellationToken);
src\roslyn\src\Analyzers\CSharp\Analyzers\RemoveUnnecessaryLambdaExpression\CSharpRemoveUnnecessaryLambdaExpressionDiagnosticAnalyzer.cs (4)
45var expressionType = context.Compilation.ExpressionOfTType(); 46var conditionalAttributeType = context.Compilation.ConditionalAttribute(); 55private void AnalyzeSyntax(SyntaxNodeAnalysisContext context, INamedTypeSymbol? expressionType, INamedTypeSymbol? conditionalAttributeType)
src\roslyn\src\Analyzers\CSharp\Analyzers\RemoveUnnecessaryNullableDirective\NullableImpactingSpanWalker.cs (1)
152else if (symbolInfo.Symbol is INamedTypeSymbol { IsValueType: true, IsGenericType: false })
src\roslyn\src\Analyzers\CSharp\Analyzers\RemoveUnusedMembers\CSharpRemoveUnusedMembersDiagnosticAnalyzer.cs (1)
26protected override IEnumerable<TypeDeclarationSyntax> GetTypeDeclarations(INamedTypeSymbol namedType, CancellationToken cancellationToken)
src\roslyn\src\Analyzers\CSharp\Analyzers\SimplifyLinqExpression\CSharpSimplifyLinqTypeCheckAndCastDiagnosticAnalyzer.cs (2)
31var enumerableType = context.Compilation.GetTypeByMetadataName(typeof(Enumerable).FullName!); 178SyntaxNodeAnalysisContext context, INamedTypeSymbol enumerableType)
src\roslyn\src\Analyzers\CSharp\Analyzers\UseCollectionExpression\AbstractCSharpUseCollectionExpressionDiagnosticAnalyzer.cs (2)
43protected abstract void InitializeWorker(CodeBlockStartAnalysisContext<SyntaxKind> context, INamedTypeSymbol? expressionType); 66var expressionType = compilation.ExpressionOfTType();
src\roslyn\src\Analyzers\CSharp\Analyzers\UseCollectionExpression\CSharpUseCollectionExpressionForArrayDiagnosticAnalyzer.cs (7)
29protected override void InitializeWorker(CodeBlockStartAnalysisContext<SyntaxKind> context, INamedTypeSymbol? expressionType) 35private void AnalyzeArrayCreationExpression(SyntaxNodeAnalysisContext context, INamedTypeSymbol? expressionType) 65INamedTypeSymbol? expressionType, 101var ienumerableType = convertedType.OriginalDefinition.SpecialType is SpecialType.System_Collections_Generic_IEnumerable_T 102? (INamedTypeSymbol)convertedType 122INamedTypeSymbol? expressionType, 138private void AnalyzeArrayInitializerExpression(SyntaxNodeAnalysisContext context, INamedTypeSymbol? expressionType)
src\roslyn\src\Analyzers\CSharp\Analyzers\UseCollectionExpression\CSharpUseCollectionExpressionForBuilderDiagnosticAnalyzer.cs (4)
32protected override void InitializeWorker(CodeBlockStartAnalysisContext<SyntaxKind> context, INamedTypeSymbol? expressionType) 37INamedTypeSymbol? expressionType) 104INamedTypeSymbol? expressionType, 129if (semanticModel.GetSymbolInfo(memberAccessExpression.Expression, cancellationToken).Symbol is not INamedTypeSymbol factoryType)
src\roslyn\src\Analyzers\CSharp\Analyzers\UseCollectionExpression\CSharpUseCollectionExpressionForCreateDiagnosticAnalyzer.cs (2)
22protected override void InitializeWorker(CodeBlockStartAnalysisContext<SyntaxKind> context, INamedTypeSymbol? expressionType) 25private void AnalyzeInvocationExpression(SyntaxNodeAnalysisContext context, INamedTypeSymbol? expressionType)
src\roslyn\src\Analyzers\CSharp\Analyzers\UseCollectionExpression\CSharpUseCollectionExpressionForEmptyDiagnosticAnalyzer.cs (2)
23protected override void InitializeWorker(CodeBlockStartAnalysisContext<SyntaxKind> context, INamedTypeSymbol? expressionType) 26private void AnalyzeMemberAccess(SyntaxNodeAnalysisContext context, INamedTypeSymbol? expressionType)
src\roslyn\src\Analyzers\CSharp\Analyzers\UseCollectionExpression\CSharpUseCollectionExpressionForFluentDiagnosticAnalyzer.cs (4)
65protected override void InitializeWorker(CodeBlockStartAnalysisContext<SyntaxKind> context, INamedTypeSymbol? expressionType) 68private void AnalyzeMemberAccess(SyntaxNodeAnalysisContext context, INamedTypeSymbol? expressionType) 118INamedTypeSymbol? expressionType, 175var ienumerableOfTType = compilation.IEnumerableOfTType();
src\roslyn\src\Analyzers\CSharp\Analyzers\UseCollectionExpression\CSharpUseCollectionExpressionForNewDiagnosticAnalyzer.cs (4)
26protected override void InitializeWorker(CodeBlockStartAnalysisContext<SyntaxKind> context, INamedTypeSymbol? expressionType) 32private void AnalyzeObjectCreationExpression(SyntaxNodeAnalysisContext context, INamedTypeSymbol? expressionType) 35private void AnalyzeImplicitObjectCreationExpression(SyntaxNodeAnalysisContext context, INamedTypeSymbol? expressionType) 39SyntaxNodeAnalysisContext context, BaseObjectCreationExpressionSyntax objectCreationExpression, INamedTypeSymbol? expressionType)
src\roslyn\src\Analyzers\CSharp\Analyzers\UseCollectionExpression\CSharpUseCollectionExpressionForStackAllocDiagnosticAnalyzer.cs (4)
35protected override void InitializeWorker(CodeBlockStartAnalysisContext<SyntaxKind> context, INamedTypeSymbol? expressionType) 41private void AnalyzeImplicitStackAllocExpression(SyntaxNodeAnalysisContext context, INamedTypeSymbol? expressionType) 83private void AnalyzeExplicitStackAllocExpression(SyntaxNodeAnalysisContext context, INamedTypeSymbol? expressionType) 126INamedTypeSymbol? expressionType,
src\roslyn\src\Analyzers\CSharp\Analyzers\UseCollectionExpression\UseCollectionExpressionHelpers.cs (15)
64INamedTypeSymbol? expressionType, 83INamedTypeSymbol? expressionType, 276var isetType = compilation.ISetOfTType(); 277var ireadOnlySetType = compilation.IReadOnlySetOfTType(); 312if (targetType is not INamedTypeSymbol namedType) 316var typeToCheck = namedType.OriginalDefinition; 329{ Kind: TypedConstantKind.Type, Value: INamedTypeSymbol builderType }, 751INamedTypeSymbol? expressionType, 897if (semanticModel.GetSymbolInfo(memberAccessExpression.Expression, cancellationToken).Symbol is not INamedTypeSymbol factoryType) 947Type: INamedTypeSymbol 994Type: INamedTypeSymbol 1074public static bool EqualsOrImplements(ITypeSymbol type, INamedTypeSymbol? interfaceType) 1081foreach (var baseInterface in type.AllInterfaces) 1123if (expressionSymbol is not INamedTypeSymbol) 1155if (expressionSymbol is not INamedTypeSymbol)
src\roslyn\src\Analyzers\CSharp\Analyzers\UseCollectionInitializer\CSharpUseCollectionInitializerAnalyzer.cs (5)
274bool CanSpreadFirstParameter(INamedTypeSymbol constructedType, IParameterSymbol firstParameter) 278var ienumerableOfTType = compilation.IEnumerableOfTType(); 279var implementedInterface = firstParameter.Type 302var collectionType = compilation.CollectionOfTType(); 303var blockingCollectionType = compilation.BlockingCollectionOfTType();
src\roslyn\src\Analyzers\CSharp\Analyzers\UseCollectionInitializer\CSharpUseCollectionInitializerDiagnosticAnalyzer.cs (1)
53INamedTypeSymbol? expressionType,
src\roslyn\src\Analyzers\CSharp\Analyzers\UseDeconstruction\CSharpUseDeconstructionDiagnosticAnalyzer.cs (5)
92[NotNullWhen(true)] out INamedTypeSymbol? tupleType, 122[NotNullWhen(true)] out INamedTypeSymbol? tupleType, 141[NotNullWhen(true)] out INamedTypeSymbol? tupleType, 165if (type is not INamedTypeSymbol { IsTupleType: true, TupleElements.Length: >= 2 } tupleTypeOpt) 199SemanticModel semanticModel, INamedTypeSymbol tupleType,
src\roslyn\src\Analyzers\CSharp\Analyzers\UseExpressionBody\Helpers\UseExpressionBodyForLocalFunctionHelper.cs (1)
61return symbol is IMethodSymbol { ReturnType: INamedTypeSymbol { Arity: not 0 } };
src\roslyn\src\Analyzers\CSharp\Analyzers\UseExpressionBody\Helpers\UseExpressionBodyForMethodsHelper.cs (1)
59return method is { ReturnType: INamedTypeSymbol { Arity: not 0 } };
src\roslyn\src\Analyzers\CSharp\Analyzers\UseExpressionBodyForLambda\UseExpressionBodyForLambdaHelpers.cs (1)
43if (semanticModel.GetTypeInfo(declaration, cancellationToken).ConvertedType is not INamedTypeSymbol lambdaType || lambdaType.DelegateInvokeMethod == null)
src\roslyn\src\Analyzers\CSharp\Analyzers\UseIndexOrRangeOperator\CSharpUseIndexOperatorDiagnosticAnalyzer.cs (1)
83var arrayType = compilation.GetSpecialType(SpecialType.System_Array);
src\roslyn\src\Analyzers\CSharp\Analyzers\UseIndexOrRangeOperator\CSharpUseIndexOperatorDiagnosticAnalyzer.InfoCache.cs (6)
27public readonly INamedTypeSymbol IndexType; 29public readonly INamedTypeSymbol? ExpressionOfTType; 37private InfoCache(INamedTypeSymbol indexType, INamedTypeSymbol? expressionOfTType) 45var indexType = compilation.GetBestTypeByMetadataName(typeof(Index).FullName!); 74var containingType = method.ContainingType;
src\roslyn\src\Analyzers\CSharp\Analyzers\UseIndexOrRangeOperator\CSharpUseRangeOperatorDiagnosticAnalyzer.InfoCache.cs (9)
28public readonly INamedTypeSymbol RangeType; 29public readonly INamedTypeSymbol? ExpressionOfTType; 33private InfoCache(INamedTypeSymbol rangeType, INamedTypeSymbol stringType, INamedTypeSymbol? expressionOfTType) 67var rangeType = compilation.GetBestTypeByMetadataName(typeof(Range).FullName!); 74var stringType = compilation.GetSpecialType(SpecialType.System_String); 79private static IMethodSymbol? GetSliceLikeMethod(INamedTypeSymbol namedType) 136var containingType = sliceLikeMethod.ContainingType;
src\roslyn\src\Analyzers\CSharp\Analyzers\UseIsNullCheck\CSharpUseNullCheckOverTypeCheckDiagnosticAnalyzer.cs (2)
38var expressionType = compilation.ExpressionOfTType(); 84private void AnalyzeIsTypeOperation(OperationAnalysisContext context, INamedTypeSymbol? expressionType)
src\roslyn\src\Analyzers\CSharp\Analyzers\UseLocalFunction\CSharpUseLocalFunctionDiagnosticAnalyzer.cs (7)
64var expressionType = compilation.GetTypeByMetadataName(typeof(Expression<>).FullName!); 77private void SyntaxNodeAction(SyntaxNodeAnalysisContext syntaxContext, INamedTypeSymbol? expressionType) 119var delegateType = semanticModel.GetTypeInfo(anonymousFunction, cancellationToken).ConvertedType as INamedTypeSymbol; 242SemanticModel semanticModel, INamedTypeSymbol? expressionTypeOpt, ISymbol local, SyntaxNode container, 403INamedTypeSymbol delegateType, 408var delegateContainingType = delegateType.ContainingType;
src\roslyn\src\Analyzers\CSharp\Analyzers\UseNameofInNullableAttribute\CSharpUseNameofInNullableAttributeDiagnosticAnalyzer.cs (1)
75INamedTypeSymbol? containingType = null;
src\roslyn\src\Analyzers\CSharp\Analyzers\UsePatternCombinators\CSharpUsePatternCombinatorsDiagnosticAnalyzer.cs (1)
68var expressionType = semanticModel.Compilation.ExpressionOfTType();
src\roslyn\src\Analyzers\CSharp\Analyzers\UsePatternMatching\CSharpUseNotPatternDiagnosticAnalyzer.cs (2)
45var expressionOfTType = context.Compilation.ExpressionOfTType(); 52INamedTypeSymbol? expressionOfTType)
src\roslyn\src\Analyzers\CSharp\Analyzers\UsePrimaryConstructor\CSharpUsePrimaryConstructorDiagnosticAnalyzer.cs (16)
79var namedTypeToAnalyzer = new ConcurrentDictionary<INamedTypeSymbol, Analyzer>(); 85INamedTypeSymbol namedType, 142INamedTypeSymbol namedType, 145ConcurrentDictionary<INamedTypeSymbol, Analyzer> namedTypeToAnalyzer) 150private readonly INamedTypeSymbol _namedType = namedType; 154private readonly ConcurrentDictionary<INamedTypeSymbol, Analyzer> _namedTypeToAnalyzer = namedTypeToAnalyzer; 204ConcurrentDictionary<INamedTypeSymbol, Analyzer> namedTypeToAnalyzer) 209var startSymbol = (INamedTypeSymbol)context.Symbol; 215for (var containingType = startSymbol.ContainingType; containingType != null; containingType = containingType.ContainingType) 245INamedTypeSymbol namedType) 260Analyzer? TryCreateAnalyzer(INamedTypeSymbol namedType) 340INamedTypeSymbol namedType, 385INamedTypeSymbol namedType, 406INamedTypeSymbol namedType, 463INamedTypeSymbol namedType,
src\roslyn\src\Analyzers\CSharp\Analyzers\UseSystemThreadingLock\CSharpUseSystemThreadingLockDiagnosticAnalyzer.cs (3)
62var lockType = compilation.GetBestTypeByMetadataName("System.Threading.Lock"); 77var namedType = (INamedTypeSymbol)context.Symbol;
src\roslyn\src\Analyzers\CSharp\Analyzers\UseUtf8StringLiteral\UseUtf8StringLiteralDiagnosticAnalyzer.cs (2)
54var expressionType = context.Compilation.GetTypeByMetadataName(typeof(System.Linq.Expressions.Expression<>).FullName!); 59private void AnalyzeOperation(OperationAnalysisContext context, INamedTypeSymbol? expressionType)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\CodeStyle\TypeStyle\TypeStyleHelper.cs (5)
44var tupleType = (INamedTypeSymbol)typeInDeclaration; 126if (semanticModel.GetTypeInfo(containingTypeName, cancellationToken).Type is not INamedTypeSymbol containingType) 140INamedTypeSymbol containingType) 187if (symbol is not INamedTypeSymbol namedTypeSymbol)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Extensions\ExpressionSyntaxExtensions.cs (3)
1010lambda.GetTargetType(semanticModel, cancellationToken) is INamedTypeSymbol { DelegateInvokeMethod.ReturnType: var returnType } ? returnType : null; 1042var ienumerableType = semanticModel.Compilation.IEnumerableOfTType(); 1046foreach (var iface in collectionTargetType.AllInterfaces)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Extensions\ITypeSymbolExtensions.cs (1)
40public static bool TryGetPrimaryConstructor(this INamedTypeSymbol typeSymbol, [NotNullWhen(true)] out IMethodSymbol? primaryConstructor)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Extensions\SemanticModelExtensions.cs (3)
210var containingType = semanticModel.GetDeclaredSymbol(type.GetAncestor<BaseTypeDeclarationSyntax>(), cancellationToken); 331var symbol = semanticModel.GetDeclaredSymbol(typeDeclaration, cancellationToken); 459public static INamedTypeSymbol GetRequiredDeclaredSymbol(this SemanticModel semanticModel, BaseTypeDeclarationSyntax syntax, CancellationToken cancellationToken)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Extensions\SyntaxNodeExtensions.cs (2)
789[NotNullWhen(true)] INamedTypeSymbol? expressionType, 822static bool TakesExpressionTree(SymbolInfo info, INamedTypeSymbol expressionType)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Services\SemanticFacts\CSharpSemanticFacts.cs (5)
102public bool LastEnumValueHasInitializer(INamedTypeSymbol namedTypeSymbol) 239public bool IsPartial(INamedTypeSymbol typeSymbol, CancellationToken cancellationToken) 294var type = model.Compilation.TryGetCallingConventionSymbol(syntax.Name.ValueText); 455public bool IsInExpressionTree(SemanticModel semanticModel, SyntaxNode node, [NotNullWhen(true)] INamedTypeSymbol? expressionType, CancellationToken cancellationToken) 484public bool TryGetPrimaryConstructor(INamedTypeSymbol typeSymbol, [NotNullWhen(true)] out IMethodSymbol? primaryConstructor)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Simplification\Simplifiers\CastSimplifier.cs (9)
128var enumType = semanticModel.GetTypeInfo(castExpression.Expression, cancellationToken).Type as INamedTypeSymbol; 163var enumType = semanticModel.GetTypeInfo(castExpression.Expression, cancellationToken).Type as INamedTypeSymbol; 655if (castedType is not INamedTypeSymbol namedCastedType || 656originalConvertedType is not INamedTypeSymbol originalNamedConvertedType) 1098if (conversionOperation.Operand.Type is not INamedTypeSymbol original) 1107for (var type = original; type != null; type = type.BaseType) 1492var rewrittenContainingType = rewrittenMemberSymbol.ContainingType;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Utilities\TypeStyle\CSharpUseImplicitTypeHelper.cs (1)
101if (conflict is INamedTypeSymbol)
Microsoft.CodeAnalysis.CSharp.CodeStyle.Fixes (169)
src\roslyn\src\Analyzers\CSharp\CodeFixes\AddParameter\CSharpAddParameterCodeFixProvider.cs (1)
65var type = constructorSymbol.ContainingType;
src\roslyn\src\Analyzers\CSharp\CodeFixes\ConvertToRecord\ConvertToRecordEngine.cs (5)
41if (semanticModel.GetDeclaredSymbol(typeDeclaration, cancellationToken) is not INamedTypeSymbol 81INamedTypeSymbol type, 281var iEquatable = ConvertToRecordHelpers.GetIEquatableType(semanticModel.Compilation, type); 380INamedTypeSymbol type, 475INamedTypeSymbol type,
src\roslyn\src\Analyzers\CSharp\CodeFixes\ConvertToRecord\ConvertToRecordHelpers.cs (11)
32var type = methodSymbol.ContainingType; 33var equatableType = GetIEquatableType(compilation, type); 67public static INamedTypeSymbol? GetIEquatableType(Compilation compilation, INamedTypeSymbol containingType) 70var equatable = compilation.GetBestTypeByMetadataName("System.IEquatable`1")?.Construct(containingType); 496var type = methodSymbol.ContainingType; 855MatchedType: INamedTypeSymbol matchedType, 881INamedTypeSymbol type, 958INamedTypeSymbol type, 1099private static bool OverridesEquals(Compilation compilation, IMethodSymbol equals, INamedTypeSymbol? equatableType) 1108var objectType = compilation.GetSpecialType(SpecialType.System_Object);
src\roslyn\src\Analyzers\CSharp\CodeFixes\ConvertToRecord\PositionalParameterInfo.cs (4)
37INamedTypeSymbol type, 75INamedTypeSymbol currentType, 78var baseType = currentType.BaseType; 119INamedTypeSymbol containingType)
src\roslyn\src\Analyzers\CSharp\CodeFixes\DisambiguateSameVariable\CSharpDisambiguateSameVariableCodeFixProvider.cs (1)
96var enclosingType = semanticModel.GetEnclosingNamedType(span.Start, cancellationToken);
src\roslyn\src\Analyzers\CSharp\CodeFixes\FixReturnType\CSharpFixReturnTypeCodeFixProvider.cs (2)
99INamedTypeSymbol? taskType = null; 158var baseTupleType = compilation.ValueTupleType(argCount);
src\roslyn\src\Analyzers\CSharp\CodeFixes\GenerateConstructor\CSharpGenerateConstructorService.cs (9)
28protected override bool ContainingTypesOrSelfHasUnsafeKeyword(INamedTypeSymbol containingType) 46[NotNullWhen(true)] out INamedTypeSymbol? typeToGenerateIn) 56var currentType = semanticModel.GetEnclosingNamedType(constructorInitializer.SpanStart, cancellationToken); 84[NotNullWhen(true)] out INamedTypeSymbol? typeToGenerateIn) 99typeToGenerateIn = symbolInfo.GetAnySymbol() as INamedTypeSymbol; 116[NotNullWhen(true)] out INamedTypeSymbol? typeToGenerateIn) 134typeToGenerateIn = symbolInfo.CandidateSymbols.FirstOrDefault()?.ContainingSymbol as INamedTypeSymbol; 151[NotNullWhen(true)] out INamedTypeSymbol? typeToGenerateIn) 158if (typeInfo.Type is INamedTypeSymbol typeSymbol)
src\roslyn\src\Analyzers\CSharp\CodeFixes\GenerateDefaultConstructors\CSharpGenerateDefaultConstructorsService.cs (2)
27[NotNullWhen(true)] out INamedTypeSymbol? classType) 38classType = semanticDocument.SemanticModel.GetDeclaredSymbol(typeDeclaration, cancellationToken) as INamedTypeSymbol;
src\roslyn\src\Analyzers\CSharp\CodeFixes\GenerateMethod\GenerateDeconstructMethodCodeFixProvider.cs (1)
99var codeActions = await service.GenerateDeconstructMethodAsync(document, target, (INamedTypeSymbol)type, cancellationToken).ConfigureAwait(false);
src\roslyn\src\Analyzers\CSharp\CodeFixes\GenerateParameterizedMember\CSharpGenerateConversionService.cs (12)
38protected override bool ContainingTypesOrSelfHasUnsafeKeyword(INamedTypeSymbol containingType) 60[NotNullWhen(true)] out INamedTypeSymbol? typeToGenerateIn) 86[NotNullWhen(true)] out INamedTypeSymbol? typeToGenerateIn) 111[NotNullWhen(true)] out INamedTypeSymbol? typeToGenerateIn) 139[NotNullWhen(true)] out INamedTypeSymbol? typeToGenerateIn) 142typeToGenerateIn = document.SemanticModel.GetTypeInfo(castExpression.Type, cancellationToken).Type as INamedTypeSymbol; 144|| document.SemanticModel.GetTypeInfo(castExpression.Expression, cancellationToken).Type is not INamedTypeSymbol parameterSymbol 170[NotNullWhen(true)] out INamedTypeSymbol? typeToGenerateIn) 173typeToGenerateIn = document.SemanticModel.GetTypeInfo(expression, cancellationToken).ConvertedType as INamedTypeSymbol; 175|| document.SemanticModel.GetTypeInfo(expression, cancellationToken).Type is not INamedTypeSymbol parameterSymbol 196INamedTypeSymbol typeToGenerateIn, INamedTypeSymbol parameterSymbol)
src\roslyn\src\Analyzers\CSharp\CodeFixes\GenerateParameterizedMember\CSharpGenerateDeconstructMethodService.cs (2)
26protected override bool ContainingTypesOrSelfHasUnsafeKeyword(INamedTypeSymbol containingType) 59if (targetType is not INamedTypeSymbol { IsTupleType: true, TupleElements: var tupleElements })
src\roslyn\src\Analyzers\CSharp\CodeFixes\GenerateParameterizedMember\CSharpGenerateMethodService.cs (3)
34protected override bool ContainingTypesOrSelfHasUnsafeKeyword(INamedTypeSymbol containingType) 52[NotNullWhen(true)] out INamedTypeSymbol? typeToGenerateIn) 66typeToGenerateIn = semanticInfo.Type as INamedTypeSymbol;
src\roslyn\src\Analyzers\CSharp\CodeFixes\ImplementInterface\CSharpImplementInterfaceService.cs (4)
51[NotNullWhen(true)] out INamedTypeSymbol? classOrStructType, 52out ImmutableArray<INamedTypeSymbol> interfaceTypes) 71if (interfaceSymbolInfo.GetAnySymbol() is INamedTypeSymbol interfaceType && interfaceType.TypeKind == TypeKind.Interface) 102SyntaxGenerator g, INamedTypeSymbol classType, string disposeMethodDisplayString)
src\roslyn\src\Analyzers\CSharp\CodeFixes\Iterator\CSharpAddYieldCodeFixProvider.cs (6)
119var ienumerableSymbol = model.Compilation.GetTypeByMetadataName(typeof(IEnumerable).FullName!); 120var ienumeratorSymbol = model.Compilation.GetTypeByMetadataName(typeof(IEnumerator).FullName!); 121var ienumerableGenericSymbol = model.Compilation.GetTypeByMetadataName(typeof(IEnumerable<>).FullName!); 122var ienumeratorGenericSymbol = model.Compilation.GetTypeByMetadataName(typeof(IEnumerator<>).FullName!); 192var ienumerableSymbol = model.Compilation.GetTypeByMetadataName(typeof(IEnumerable).FullName!); 193var ienumeratorSymbol = model.Compilation.GetTypeByMetadataName(typeof(IEnumerator).FullName!);
src\roslyn\src\Analyzers\CSharp\CodeFixes\Iterator\CSharpChangeToIEnumerableCodeFixProvider.cs (4)
47if (!TryGetIEnumerableSymbols(model, out var ienumerableSymbol, out var ienumerableGenericSymbol)) 112[NotNullWhen(true)] out INamedTypeSymbol? ienumerableSymbol, 113[NotNullWhen(true)] out INamedTypeSymbol? ienumerableGenericSymbol)
src\roslyn\src\Analyzers\CSharp\CodeFixes\MakeRefStruct\MakeRefStructCodeFixProvider.cs (2)
49var structDeclarationSymbol = (INamedTypeSymbol)semanticModel.GetRequiredDeclaredSymbol(structDeclaration, cancellationToken);
src\roslyn\src\Analyzers\CSharp\CodeFixes\ReplaceDefaultLiteral\CSharpReplaceDefaultLiteralCodeFixProvider.cs (1)
123var flagsAttribute = compilation.GetTypeByMetadataName(typeof(FlagsAttribute).FullName!);
src\roslyn\src\Analyzers\CSharp\CodeFixes\UseCollectionExpression\CSharpUseCollectionExpressionForArrayCodeFixProvider.cs (2)
65var expressionType = semanticModel.Compilation.ExpressionOfTType(); 100SemanticModel semanticModel, ExpressionSyntax expression, INamedTypeSymbol? expressionType)
src\roslyn\src\Analyzers\CSharp\CodeFixes\UseCollectionExpression\CSharpUseCollectionExpressionForBuilderCodeFixProvider.cs (1)
45var expressionType = semanticModel.Compilation.ExpressionOfTType();
src\roslyn\src\Analyzers\CSharp\CodeFixes\UseCollectionExpression\CSharpUseCollectionExpressionForFluentCodeFixProvider.cs (1)
57var expressionType = semanticModel.Compilation.ExpressionOfTType();
src\roslyn\src\Analyzers\CSharp\CodeFixes\UseCollectionExpression\CSharpUseCollectionExpressionForStackAllocCodeFixProvider.cs (1)
41var expressionType = semanticModel.Compilation.ExpressionOfTType();
src\roslyn\src\Analyzers\CSharp\CodeFixes\UseDeconstruction\CSharpUseDeconstructionCodeFixProvider.cs (6)
74out var tupleType, out memberAccessExpressions, 90out var tupleType, out memberAccessExpressions, 113private ForEachVariableStatementSyntax CreateForEachVariableStatement(INamedTypeSymbol tupleType, ForEachStatementSyntax forEachStatement) 131INamedTypeSymbol tupleType, LocalDeclarationStatementSyntax declarationStatement, VariableDeclaratorSyntax variableDeclarator) 145private ExpressionSyntax CreateTupleOrDeclarationExpression(INamedTypeSymbol tupleType, TypeSyntax typeNode) 156private static DeclarationExpressionSyntax CreateDeclarationExpression(INamedTypeSymbol tupleType, TypeSyntax typeNode)
src\roslyn\src\Analyzers\CSharp\CodeFixes\UseExplicitArrayInExpressionTree\CSharpUseExplicitArrayInExpressionTreeCodeFixProvider.cs (1)
119var arrayType = semanticModel.Compilation.ArrayType();
src\roslyn\src\Analyzers\CSharp\CodeFixes\UseExpressionBodyForLambda\UseExpressionBodyForLambdaCodeActionHelpers.cs (3)
82var lambdaType = (INamedTypeSymbol)semanticModel.GetTypeInfo(declaration).ConvertedType!; 102var taskType = semanticModel.Compilation.GetTypeByMetadataName(typeof(Task).FullName!);
src\roslyn\src\Analyzers\CSharp\CodeFixes\UseImplicitOrExplicitType\UseExplicitTypeCodeFixProvider.cs (1)
189var elements = ((INamedTypeSymbol)typeSymbol).TupleElements;
src\roslyn\src\Analyzers\CSharp\CodeFixes\UseLocalFunction\CSharpUseLocalFunctionCodeFixProvider.cs (3)
102var delegateType = (INamedTypeSymbol)semanticModel.GetTypeInfo(anonymousFunction, cancellationToken).ConvertedType; 181INamedTypeSymbol delegateType, ParameterListSyntax parameterList,
src\roslyn\src\Analyzers\CSharp\CodeFixes\UsePrimaryConstructor\CSharpUsePrimaryConstructorCodeFixProvider.cs (5)
121var namedType = semanticModel.GetRequiredDeclaredSymbol(typeDeclaration, cancellationToken); 318INamedTypeSymbol { ContainingType: { } containingType } => CreateDottedName(originalName, currentName, containingType), 329INamedTypeSymbol containingType) 390semanticModel.GetSymbolInfo(baseType.Type, cancellationToken).GetAnySymbol() is INamedTypeSymbol { TypeKind: TypeKind.Class }) 408var baseTypeSymbol = namedType.BaseType;
src\roslyn\src\Analyzers\CSharp\CodeFixes\UseSystemThreadingLock\CSharpUseSystemThreadingLockCodeFixProvider.cs (1)
84var lockType = compilation.GetBestTypeByMetadataName("System.Threading.Lock");
src\roslyn\src\Analyzers\CSharp\CodeFixes\UseUtf8StringLiteral\UseUtf8StringLiteralCodeFixProvider.cs (2)
47var readOnlySpanType = semanticModel.Compilation.GetBestTypeByMetadataName(typeof(ReadOnlySpan<>).FullName!); 64conversion.Type is INamedTypeSymbol { IsGenericType: true } namedType &&
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\CodeGeneration\CSharpCodeGenerationService.cs (5)
63CodeGenerationSolutionContext context, INamedTypeSymbol destination, IEventSymbol @event, CancellationToken cancellationToken) 68var namedType = @event.Type as INamedTypeSymbol; 247protected override TDeclarationNode AddNamedType<TDeclarationNode>(TDeclarationNode destination, INamedTypeSymbol namedType, CSharpCodeGenerationContextInfo info, IList<bool>? availableIndices, CancellationToken cancellationToken) 729INamedTypeSymbol namedType, CodeGenerationDestination destination, CSharpCodeGenerationContextInfo info, CancellationToken cancellationToken)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\CodeGeneration\CSharpFlagsEnumGenerator.cs (2)
22INamedTypeSymbol enumType, 39protected override bool IsValidName(INamedTypeSymbol enumType, string name)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\CodeGeneration\EnumMemberGenerator.cs (3)
159var namedType = enumMember.Type as INamedTypeSymbol; 160var underlyingType = namedType?.EnumUnderlyingType;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\CodeGeneration\ExpressionGenerator.cs (1)
60if (type is INamedTypeSymbol { TypeKind: TypeKind.Enum } enumType)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\CodeGeneration\MethodGenerator.cs (1)
365if (method.IsReadOnly && (method.ContainingSymbol as INamedTypeSymbol)?.IsReadOnly != true)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\CodeGeneration\NamedTypeGenerator.cs (14)
27INamedTypeSymbol namedType, 41INamedTypeSymbol namedType, 56INamedTypeSymbol namedType, 72INamedTypeSymbol namedType, 154INamedTypeSymbol namedType, 184INamedTypeSymbol namedType, 228INamedTypeSymbol namedType, 246INamedTypeSymbol namedType, 263INamedTypeSymbol namedType, CSharpCodeGenerationContextInfo info) 269INamedTypeSymbol namedType, 313INamedTypeSymbol namedType, CSharpCodeGenerationContextInfo info) 318private static BaseListSyntax? GenerateBaseList(INamedTypeSymbol namedType) 324foreach (var type in namedType.Interfaces) 333private static SyntaxList<TypeParameterConstraintClauseSyntax> GenerateConstraintClauses(INamedTypeSymbol namedType)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\Editing\CSharpImportAdder.cs (1)
112foreach (var type in ns.GetTypeMembers())
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\Extensions\ContextQuery\SyntaxTreeExtensions.cs (4)
1042INamedTypeSymbol nt => nt.Arity > 0, 1051return symbols.All(static s => s is INamedTypeSymbol or IMethodSymbol); 2895var delegateType = CSharpTypeInferenceService.Instance.InferDelegateType( 3069return ((INamedTypeSymbol)symbol).TypeKind == TypeKind.Enum;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\Extensions\ITypeSymbolExtensions.ExpressionSyntaxGeneratorVisitor.cs (1)
41public override ExpressionSyntax VisitNamedType(INamedTypeSymbol symbol)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\Extensions\ITypeSymbolExtensions.TypeSyntaxGeneratorVisitor.cs (5)
122public static bool TryCreateNativeIntegerType(INamedTypeSymbol symbol, [NotNullWhen(true)] out TypeSyntax? syntax) 178public TypeSyntax CreateSimpleTypeSyntax(INamedTypeSymbol symbol) 218private static TypeSyntax? TryCreateSpecializedNamedTypeSyntax(INamedTypeSymbol symbol) 244private static TupleTypeSyntax CreateTupleTypeSyntax(INamedTypeSymbol symbol) 257public override TypeSyntax VisitNamedType(INamedTypeSymbol symbol)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\Extensions\TypeDeclarationSyntaxExtensions.cs (1)
76var typeSymbol = model.GetRequiredDeclaredSymbol(typeNode, cancellationToken);
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\Extensions\WithElementSyntaxExtensions.cs (6)
24var within = semanticModel.GetEnclosingNamedType(position, cancellationToken); 28if (semanticModel.GetTypeInfo(collectionExpression, cancellationToken).ConvertedType is not INamedTypeSymbol collectionExpressionType) 42var ilistOfTType = semanticModel.Compilation.IListOfTType(); 43var icollectionOfTType = semanticModel.Compilation.ICollectionOfTType(); 51var listOfTType = semanticModel.Compilation.ListOfTType(); 55var constructedListType = listOfTType.Construct(collectionExpressionType.TypeArguments.Single());
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\LanguageServices\CSharpSyntaxGeneratorInternal.cs (1)
221public override SyntaxNode DeclarationPattern(INamedTypeSymbol type, string name)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\LanguageServices\CSharpTypeInferenceService.TypeInferrer.cs (26)
334if (types.Any(t => t is INamedTypeSymbol)) 336return types.OfType<INamedTypeSymbol>().SelectMany(t => 367.OfType<INamedTypeSymbol>() 444if (info.Type is not INamedTypeSymbol type) 465if (info.Type is not INamedTypeSymbol type) 571if (info.Type is INamedTypeSymbol type) 708var inferredNamedType = (INamedTypeSymbol)inferredType; 709var returnNamedType = (INamedTypeSymbol)returnType; 1331var enumerableType = isAsync 1343var objectType = Compilation.GetSpecialType(SpecialType.System_Object); 1486if (types.Any(t => t is INamedTypeSymbol)) 1488return types.OfType<INamedTypeSymbol>().SelectMany(t => 1509if (types.Any(t => t is INamedTypeSymbol)) 1516return types.OfType<INamedTypeSymbol>().SelectMany(t => 1661var type = Compilation.CreateTupleTypeSymbol( 1696var type = types.FirstOrDefault().InferredType.GetDelegateType(this.Compilation); 1817var taskOfT = this.Compilation.TaskOfTType(); 1826var ienumerableType = this.Compilation.IEnumerableOfTType(); 1840var delegateType = argumentTypes.FirstOrDefault().InferredType.GetDelegateType(this.Compilation); 2045var task = this.Compilation.TaskType(); 2046var taskOfT = this.Compilation.TaskOfTType(); 2072return memberType is INamedTypeSymbol namedType && namedType.TypeArguments.Length == 1 2086var namedTypeSymbol = (INamedTypeSymbol)type;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\LanguageServices\InitializeParameter\InitializeParameterHelpers.cs (1)
102var namedType = parameter.ContainingType;
Microsoft.CodeAnalysis.CSharp.Features (375)
ChangeSignature\CSharpChangeSignatureService.cs (3)
166if (typeSymbol is INamedTypeSymbol { TypeKind: TypeKind.Delegate }) 937protected override bool TryGetRecordPrimaryConstructor(INamedTypeSymbol typeSymbol, [NotNullWhen(true)] out IMethodSymbol? primaryConstructor) 943if (declarationSymbol is INamedTypeSymbol namedTypeSymbol &&
CodeFixes\Suppression\CSharpSuppressionCodeFixProvider.cs (2)
102INamedTypeSymbol suppressMessageAttribute, 130SyntaxNode targetNode, ISymbol targetSymbol, INamedTypeSymbol suppressMessageAttribute, Diagnostic diagnostic)
Completion\CompletionProviders\AttributeNamedParameterCompletionProvider.cs (3)
225if (within != null && semanticModel.GetTypeInfo(attribute, cancellationToken).Type is INamedTypeSymbol attributeType) 241var attributeType = (INamedTypeSymbol?)semanticModel.GetTypeInfo(attribute, cancellationToken).Type;
Completion\CompletionProviders\AwaitCompletionProvider.cs (1)
113var containingType = method.ContainingType;
Completion\CompletionProviders\CrefCompletionProvider.cs (3)
189var type = semanticModel.GetDeclaredSymbol(typeDeclaration, cancellationToken); 192foreach (var baseType in type.GetBaseTypesAndThis()) 220if (container is INamedTypeSymbol namedTypeContainer)
Completion\CompletionProviders\CSharpSuggestionModeCompletionProvider.cs (1)
197var ienumerableType = typeInferenceInfo.InferredType
Completion\CompletionProviders\DeclarationName\DeclarationNameRecommender.cs (8)
78if (originalType is INamedTypeSymbol { Name: "Func", ContainingNamespace.Name: "System", TypeArguments: [.., var returnType] }) 151if (type is INamedTypeSymbol namedType && namedType.OriginalDefinition != null) 180var originalDefinition = namedType.OriginalDefinition; 181var taskOfTType = compilation.TaskOfTType(); 182var valueTaskType = compilation.ValueTaskOfTType(); 183var lazyOfTType = compilation.LazyOfTType(); 299var namedType = semanticModel.GetEnclosingNamedType(context.Position, cancellationToken); 332static ImmutableArray<IMethodSymbol> GetOverloads(INamedTypeSymbol namedType, BaseMethodDeclarationSyntax baseMethod)
Completion\CompletionProviders\DeclarationName\DeclarationNameRecommender.NameGenerator.cs (1)
37((INamedTypeSymbol)alias.Target).IsInterfaceType() &&
Completion\CompletionProviders\EnumAndCompletionListTagCompletionProvider.cs (8)
123var enclosingNamedType = semanticModel.GetEnclosingNamedType(position, cancellationToken); 284var containingType = semanticModel.GetEnclosingNamedType(token.SpanStart, cancellationToken); 312private static INamedTypeSymbol? TryGetCompletionListType(ITypeSymbol type, INamedTypeSymbol? within, Compilation compilation) 329var completionListType = documentation.CompletionListCref != null 330? DocumentationCommentId.GetSymbolsForDeclarationId(documentation.CompletionListCref, compilation).OfType<INamedTypeSymbol>().FirstOrDefault() 338private static INamedTypeSymbol? TryGetTypeWithStaticMembers(ITypeSymbol type) 343return type.WithNullableAnnotation(NullableAnnotation.NotAnnotated) as INamedTypeSymbol;
Completion\CompletionProviders\ExplicitInterfaceMemberCompletionProvider.cs (1)
41INamedTypeSymbol containingType,
Completion\CompletionProviders\ExplicitInterfaceMemberCompletionProvider.ItemGetter.cs (2)
107var containingType = semanticModel.GetDeclaredSymbol(typeDeclaration, CancellationToken); 108if (containingType is not INamedTypeSymbol { TypeKind: TypeKind.Class or TypeKind.Struct or TypeKind.Interface })
Completion\CompletionProviders\ExplicitInterfaceTypeCompletionProvider.cs (2)
108var namedType = semanticModel.GetDeclaredSymbol(typeDeclaration, cancellationToken); 112foreach (var directInterface in namedType.Interfaces)
Completion\CompletionProviders\FunctionPointerUnmanagedCallingConventionCompletionProvider.cs (1)
103foreach (var type in compilerServicesNamespace.GetTypeMembers())
Completion\CompletionProviders\NamedParameterCompletionProvider.cs (9)
152var within = semanticModel.GetEnclosingNamedType(position, cancellationToken); 156if (semanticModel.GetTypeInfo(objectCreationExpression, cancellationToken).Type is not INamedTypeSymbol { TypeKind: not TypeKind.Delegate } type) 190var within = semanticModel.GetEnclosingNamedType(position, cancellationToken); 194var type = constructorInitializer.Kind() == SyntaxKind.BaseConstructorInitializer 211var within = semanticModel.GetRequiredDeclaredSymbol(typeDeclaration, cancellationToken); 215var type = semanticModel.GetTypeInfo(baseType.Type, cancellationToken).Type as INamedTypeSymbol; 231var expressionType = semanticModel.GetTypeInfo(invocationExpression.Expression, cancellationToken).Type as INamedTypeSymbol;
Completion\CompletionProviders\ObjectAndWithInitializerCompletionProvider.cs (1)
170protected override bool IsInitializableFieldOrProperty(ISymbol fieldOrProperty, INamedTypeSymbol containingType)
Completion\CompletionProviders\ObjectCreationCompletionProvider.cs (2)
129var namedTypeSymbol = symbols.Length > 0 ? symbols[0].Symbol as INamedTypeSymbol : null;
Completion\CompletionProviders\OperatorsAndIndexer\UnnamedSymbolCompletionProvider_Conversions.cs (1)
148if (symbols is [INamedTypeSymbol containingType, ITypeSymbol fromType, ITypeSymbol toType])
Completion\CompletionProviders\PartialTypeCompletionProvider.cs (4)
57protected override (string displayText, string suffix, string insertionText) GetDisplayAndSuffixAndInsertionText(INamedTypeSymbol symbol, CSharpSyntaxContext context) 63protected override IEnumerable<INamedTypeSymbol>? LookupCandidateSymbols(CSharpSyntaxContext context, INamedTypeSymbol declaredSymbol, CancellationToken cancellationToken) 75protected override ImmutableArray<KeyValuePair<string, string>> GetProperties(INamedTypeSymbol symbol, CSharpSyntaxContext context)
Completion\CompletionProviders\SymbolCompletionProvider.cs (5)
261var typeSymbol = symbol as INamedTypeSymbol ?? (symbol as IAliasSymbol)?.Target as INamedTypeSymbol; 277bool HasAccessibleNestedTypes(INamedTypeSymbol typeSymbol) 285foreach (var typeMember in typeSymbol.GetTypeMembers())
Completion\CompletionProviders\TupleNameCompletionProvider.cs (3)
61.Cast<INamedTypeSymbol>() 91private static void AddItems(ImmutableArray<INamedTypeSymbol> inferredTypes, int index, CompletionContext context, int spanStart) 93foreach (var type in inferredTypes)
Completion\CompletionProviders\XmlDocCommentCompletionProvider.cs (1)
391if (declarationSymbol is INamedTypeSymbol namedTypeSymbol)
Completion\KeywordRecommenders\ThisKeywordRecommender.cs (1)
60var outerType = context.SemanticModel.GetEnclosingNamedType(context.Position, cancellationToken);
ConvertPrimaryToRegularConstructor\ConvertPrimaryToRegularConstructorCodeRefactoringProvider.cs (1)
93var namedType = semanticModel.GetRequiredDeclaredSymbol(typeDeclaration, cancellationToken);
ConvertProgram\ConvertProgramTransform_ProgramMain.cs (1)
76var programType = mainMethod.ContainingType;
Copilot\CSharpImplementNotImplementedExceptionDiagnosticAnalyzer.cs (3)
30var notImplementedExceptionType = context.Compilation.GetTypeByMetadataName(typeof(NotImplementedException).FullName!); 40INamedTypeSymbol notImplementedExceptionType) 55Constructor.ContainingType: INamedTypeSymbol constructedType,
Debugging\BreakpointResolver.cs (1)
22protected override IEnumerable<ISymbol> GetMembers(INamedTypeSymbol type, string name)
DecompiledSource\CSharpDecompiledSourceService.cs (2)
34var containingOrThis = symbol.GetContainingTypeOrThis(); 107private static string GetFullReflectionName(INamedTypeSymbol? containingType)
DocumentHighlighting\CSharpDocumentHighlightsService.cs (1)
47if (symbol is INamedTypeSymbol && symbol.Name != "var")
EditAndContinue\CSharpEditAndContinueAnalyzer.cs (7)
979internal override bool IsPartial(INamedTypeSymbol type) 1016var recordType = (INamedTypeSymbol?)model.GetDeclaredSymbol(declaration.Parent, cancellationToken); 1259if (oldSymbol is not INamedTypeSymbol oldType || newSymbol is not INamedTypeSymbol newType) 1962internal override string GetDisplayName(INamedTypeSymbol symbol) 2538INamedTypeSymbol => RudeEditKind.None,
EditAndContinue\SyntaxUtilities.cs (1)
65RecordDeclarationSyntax recordDeclarationSyntax when symbol is not INamedTypeSymbol
EncapsulateField\CSharpEncapsulateFieldService.cs (2)
196private static string MakeUnique(string baseName, INamedTypeSymbol containingType) 202protected override IEnumerable<ConstructorDeclarationSyntax> GetConstructorNodes(INamedTypeSymbol containingType)
ExtractInterface\CSharpExtractInterfaceService.cs (3)
50internal override string GetContainingNamespaceDisplay(INamedTypeSymbol typeSymbol, CompilationOptions compilationOptions) 68INamedTypeSymbol extractedInterface, INamedTypeSymbol typeToExtractFrom,
ExtractMethod\CSharpSelectionResult.ExpressionResult.cs (1)
133private static bool IsCoClassImplicitConversion(TypeInfo info, Conversion conversion, INamedTypeSymbol? coclassSymbol)
GenerateConstructors\CSharpGenerateConstructorsCodeRefactoringProvider.cs (2)
44protected override bool ContainingTypesOrSelfHasUnsafeKeyword(INamedTypeSymbol containingType) 58var containingType = property.ContainingType;
GenerateMember\GenerateVariable\CSharpGenerateVariableService.cs (3)
60protected override bool ContainingTypesOrSelfHasUnsafeKeyword(INamedTypeSymbol containingType) 65out SyntaxToken identifierToken, out IPropertySymbol propertySymbol, out INamedTypeSymbol typeToGenerateIn) 77typeToGenerateIn = info.Type as INamedTypeSymbol;
GenerateType\CSharpGenerateTypeService.cs (4)
66if (symbol is INamedTypeSymbol type) 438if (expressionType is INamedTypeSymbol { TypeKind: TypeKind.Delegate, DelegateInvokeMethod: var invokeMethod }) 507protected override INamedTypeSymbol DetermineTypeToGenerateIn(SemanticModel semanticModel, SimpleNameSyntax simpleName, CancellationToken cancellationToken) 542INamedTypeSymbol namedTypeSymbol, string[] containers, Document selectedDocument, SyntaxNode selectedDocumentRoot, CancellationToken cancellationToken)
ImplementInterface\AbstractChangeImplementationCodeRefactoringProvider.cs (5)
46protected abstract Task UpdateReferencesAsync(Project project, SolutionEditor solutionEditor, ISymbol implMember, INamedTypeSymbol containingType, CancellationToken cancellationToken); 84var containingType = member.ContainingType; 190private MemberImplementationMap GetImplementedMembers(INamedTypeSymbol containingType, ImmutableArray<INamedTypeSymbol> interfaceTypes) 193foreach (var interfaceType in interfaceTypes)
ImplementInterface\CSharpImplementExplicitlyCodeRefactoringProvider.cs (2)
41ISymbol implMember, INamedTypeSymbol interfaceType, CancellationToken cancellationToken) 88SemanticModel semanticModel, INamedTypeSymbol interfaceType,
ImplementInterface\CSharpImplementImplicitlyCodeRefactoringProvider.cs (1)
45protected override Task UpdateReferencesAsync(Project project, SolutionEditor solutionEditor, ISymbol implMember, INamedTypeSymbol containingType, CancellationToken cancellationToken)
InitializeParameter\CSharpInitializeMemberFromParameterCodeRefactoringProvider.cs (1)
32protected override Accessibility DetermineDefaultFieldAccessibility(INamedTypeSymbol containingType)
InitializeParameter\CSharpInitializeMemberFromPrimaryConstructorParameterCodeRefactoringProvider.cs (1)
95var containingType = parameter.ContainingType;
IntroduceVariable\CSharpIntroduceLocalForExpressionCodeRefactoringProvider.cs (2)
90INamedTypeSymbol tupleType, 98var tupleUnderlyingType = tupleType.TupleUnderlyingType ?? tupleType;
IntroduceVariable\CSharpIntroduceVariableService_IntroduceField.cs (1)
40var oldType = oldTypeDeclaration != null
IntroduceVariable\CSharpIntroduceVariableService_IntroduceLocal.cs (1)
142if (document.SemanticModel.GetTypeInfo(oldLambda, cancellationToken).ConvertedType is INamedTypeSymbol delegateType &&
LanguageServices\CSharpStructuralTypeDisplayService.cs (1)
33INamedTypeSymbol anonymousType, SemanticModel semanticModel, int position)
LanguageServices\CSharpSymbolDisplayService.SymbolDescriptionBuilder.cs (1)
197if (symbol is not INamedTypeSymbol { SpecialType: SpecialType.System_Char })
NavigationBar\CSharpNavigationBarItemService.cs (5)
53using var _ = PooledHashSet<INamedTypeSymbol>.GetInstance(out var typesInFile); 63Solution solution, SemanticModel semanticModel, HashSet<INamedTypeSymbol> types, CancellationToken cancellationToken) 70foreach (var type in types) 136SemanticModel semanticModel, HashSet<INamedTypeSymbol> types, CancellationToken cancellationToken) 167private static INamedTypeSymbol? GetType(SemanticModel semanticModel, SyntaxNode node, CancellationToken cancellationToken)
QuickInfo\CSharpSemanticQuickInfoProvider.cs (1)
169static void CollectContainingTypeArguments(INamedTypeSymbol? type, ArrayBuilder<ITypeSymbol> builder)
SignatureHelp\AbstractGenericNameSignatureHelpProvider.cs (1)
130if (symbol is INamedTypeSymbol namedType)
SignatureHelp\AbstractGenericNameSignatureHelpProvider_Method.cs (1)
64if (result is not INamedTypeSymbol namedTypeSymbol || !namedTypeSymbol.IsScriptClass)
SignatureHelp\AbstractGenericNameSignatureHelpProvider_NamedType.cs (1)
12INamedTypeSymbol namedType,
SignatureHelp\AttributeSignatureHelpProvider.cs (1)
81if (semanticModel.GetTypeInfo(attribute, cancellationToken).Type is not INamedTypeSymbol attributeType)
SignatureHelp\ConstructorInitializerSignatureHelpProvider.cs (2)
67var within = semanticModel.GetEnclosingNamedType(position, cancellationToken); 74var type = constructorInitializer.Kind() == SyntaxKind.BaseConstructorInitializer
SignatureHelp\ElementAccessExpressionSignatureHelpProvider.cs (2)
61if (expressionSymbol is INamedTypeSymbol namedType) 75if (expressionSymbol is not null and INamedTypeSymbol)
SignatureHelp\InvocationExpressionSignatureHelpProvider.cs (2)
72if (invokedType is INamedTypeSymbol { TypeKind: TypeKind.Delegate } or IFunctionPointerTypeSymbol) 120if (invokedType is INamedTypeSymbol { TypeKind: TypeKind.Delegate } expressionType)
SignatureHelp\InvocationExpressionSignatureHelpProviderBase_DelegateAndFunctionPointerInvoke.cs (1)
20INamedTypeSymbol delegateType, CancellationToken cancellationToken)
SignatureHelp\InvocationExpressionSignatureHelpProviderBase_MethodGroup.cs (2)
62semanticModel.LookupSymbols(throughExpression.SpanStart, name: throughSymbol?.Name).Any(static s => s is not INamedTypeSymbol); 64var includeStatic = throughSymbol is INamedTypeSymbol ||
SignatureHelp\ObjectCreationExpressionSignatureHelpProvider.cs (3)
61if (semanticModel.GetTypeInfo(objectCreationExpression, cancellationToken).Type is not INamedTypeSymbol type) 64var within = semanticModel.GetEnclosingNamedType(position, cancellationToken); 102INamedTypeSymbol type, CancellationToken cancellationToken)
SignatureHelp\PrimaryConstructorBaseTypeSignatureHelpProvider.cs (2)
81var within = semanticModel.GetRequiredDeclaredSymbol(namedTypeSyntax, cancellationToken); 85if (semanticModel.GetTypeInfo(baseTypeSyntax.Type, cancellationToken).Type is not INamedTypeSymbol baseType)
SignatureHelp\TupleConstructionSignatureHelpProvider.cs (5)
124private IEnumerable<INamedTypeSymbol>? FindNearestTupleConstructionWithInferrableType(SyntaxNode root, SemanticModel semanticModel, int position, SignatureHelpTriggerInfo triggerInfo, 136var tupleTypes = inferredTypes.Where(t => t.IsTupleType).OfType<INamedTypeSymbol>().ToList(); 150SyntaxNode targetExpression, SemanticModel semanticModel, IEnumerable<INamedTypeSymbol> tupleTypes, CancellationToken cancellationToken) 164private static SignatureHelpItem Convert(INamedTypeSymbol tupleType, ImmutableArray<TaggedText> prefixParts, ImmutableArray<TaggedText> suffixParts, 178private static IEnumerable<SignatureHelpParameter> ConvertTupleMembers(INamedTypeSymbol tupleType, SemanticModel semanticModel, int position)
SignatureHelp\WithElementSignatureHelpProvider.cs (2)
60if (semanticModel.GetTypeInfo(collectionExpression, cancellationToken).ConvertedType is not INamedTypeSymbol collectionExpressionType) 63var within = semanticModel.GetEnclosingNamedType(position, cancellationToken);
Snippets\AbstractCSharpMainMethodSnippetProvider.cs (1)
33var enclosingTypeSymbol = semanticModel.GetDeclaredSymbol(syntaxContext.ContainingTypeDeclaration!, cancellationToken);
Snippets\CSharpConsoleSnippetProvider.cs (1)
29var consoleSymbol = GetConsoleSymbolFromMetaDataName(semanticModel.Compilation);
Snippets\CSharpConstructorSnippetProvider.cs (1)
67var containingTypeSymbol = semanticModel.GetDeclaredSymbol(containingType, cancellationToken);
src\roslyn\src\Analyzers\CSharp\Analyzers\ConvertProgram\ConvertProgramAnalysis_TopLevelStatements.cs (1)
91private static bool TypeCanBeConverted(INamedTypeSymbol containingType, TypeDeclarationSyntax typeDeclaration)
src\roslyn\src\Analyzers\CSharp\Analyzers\InlineDeclaration\CSharpInlineDeclarationDiagnosticAnalyzer.cs (2)
50var expressionType = compilation.GetTypeByMetadataName(typeof(Expression<>).FullName!); 63private void AnalyzeSyntaxNode(SyntaxNodeAnalysisContext context, INamedTypeSymbol? expressionType)
src\roslyn\src\Analyzers\CSharp\Analyzers\MakeStructFieldsWritable\CSharpMakeStructFieldsWritableDiagnosticAnalyzer.cs (6)
39private readonly INamedTypeSymbol _namedTypeSymbol; 42private SymbolAnalyzer(INamedTypeSymbol namedTypeSymbol) 53var namedTypeSymbol = (INamedTypeSymbol)context.Symbol; 72private static Location GetDiagnosticLocation(INamedTypeSymbol namedTypeSymbol) 75private static bool HasReadonlyField(INamedTypeSymbol namedTypeSymbol)
src\roslyn\src\Analyzers\CSharp\Analyzers\MakeStructMemberReadOnly\CSharpMakeStructMemberReadOnlyAnalyzer.cs (1)
56if (context.Symbol is not INamedTypeSymbol
src\roslyn\src\Analyzers\CSharp\Analyzers\MakeStructReadOnly\CSharpMakeStructReadOnlyDiagnosticAnalyzer.cs (2)
76var typeSymbol = (INamedTypeSymbol)context.Symbol;
src\roslyn\src\Analyzers\CSharp\Analyzers\RemoveUnnecessaryDiscardDesignation\CSharpRemoveUnnecessaryDiscardDesignationDiagnosticAnalyzer.cs (1)
68var typeSymbol = semanticModel.GetRequiredDeclaredSymbol(containingTypeSyntax, cancellationToken);
src\roslyn\src\Analyzers\CSharp\Analyzers\RemoveUnnecessaryLambdaExpression\CSharpRemoveUnnecessaryLambdaExpressionDiagnosticAnalyzer.cs (4)
45var expressionType = context.Compilation.ExpressionOfTType(); 46var conditionalAttributeType = context.Compilation.ConditionalAttribute(); 55private void AnalyzeSyntax(SyntaxNodeAnalysisContext context, INamedTypeSymbol? expressionType, INamedTypeSymbol? conditionalAttributeType)
src\roslyn\src\Analyzers\CSharp\Analyzers\RemoveUnnecessaryNullableDirective\NullableImpactingSpanWalker.cs (1)
152else if (symbolInfo.Symbol is INamedTypeSymbol { IsValueType: true, IsGenericType: false })
src\roslyn\src\Analyzers\CSharp\Analyzers\RemoveUnusedMembers\CSharpRemoveUnusedMembersDiagnosticAnalyzer.cs (1)
26protected override IEnumerable<TypeDeclarationSyntax> GetTypeDeclarations(INamedTypeSymbol namedType, CancellationToken cancellationToken)
src\roslyn\src\Analyzers\CSharp\Analyzers\SimplifyLinqExpression\CSharpSimplifyLinqTypeCheckAndCastDiagnosticAnalyzer.cs (2)
31var enumerableType = context.Compilation.GetTypeByMetadataName(typeof(Enumerable).FullName!); 178SyntaxNodeAnalysisContext context, INamedTypeSymbol enumerableType)
src\roslyn\src\Analyzers\CSharp\Analyzers\UseCollectionExpression\AbstractCSharpUseCollectionExpressionDiagnosticAnalyzer.cs (2)
43protected abstract void InitializeWorker(CodeBlockStartAnalysisContext<SyntaxKind> context, INamedTypeSymbol? expressionType); 66var expressionType = compilation.ExpressionOfTType();
src\roslyn\src\Analyzers\CSharp\Analyzers\UseCollectionExpression\CSharpUseCollectionExpressionForArrayDiagnosticAnalyzer.cs (7)
29protected override void InitializeWorker(CodeBlockStartAnalysisContext<SyntaxKind> context, INamedTypeSymbol? expressionType) 35private void AnalyzeArrayCreationExpression(SyntaxNodeAnalysisContext context, INamedTypeSymbol? expressionType) 65INamedTypeSymbol? expressionType, 101var ienumerableType = convertedType.OriginalDefinition.SpecialType is SpecialType.System_Collections_Generic_IEnumerable_T 102? (INamedTypeSymbol)convertedType 122INamedTypeSymbol? expressionType, 138private void AnalyzeArrayInitializerExpression(SyntaxNodeAnalysisContext context, INamedTypeSymbol? expressionType)
src\roslyn\src\Analyzers\CSharp\Analyzers\UseCollectionExpression\CSharpUseCollectionExpressionForBuilderDiagnosticAnalyzer.cs (4)
32protected override void InitializeWorker(CodeBlockStartAnalysisContext<SyntaxKind> context, INamedTypeSymbol? expressionType) 37INamedTypeSymbol? expressionType) 104INamedTypeSymbol? expressionType, 129if (semanticModel.GetSymbolInfo(memberAccessExpression.Expression, cancellationToken).Symbol is not INamedTypeSymbol factoryType)
src\roslyn\src\Analyzers\CSharp\Analyzers\UseCollectionExpression\CSharpUseCollectionExpressionForCreateDiagnosticAnalyzer.cs (2)
22protected override void InitializeWorker(CodeBlockStartAnalysisContext<SyntaxKind> context, INamedTypeSymbol? expressionType) 25private void AnalyzeInvocationExpression(SyntaxNodeAnalysisContext context, INamedTypeSymbol? expressionType)
src\roslyn\src\Analyzers\CSharp\Analyzers\UseCollectionExpression\CSharpUseCollectionExpressionForEmptyDiagnosticAnalyzer.cs (2)
23protected override void InitializeWorker(CodeBlockStartAnalysisContext<SyntaxKind> context, INamedTypeSymbol? expressionType) 26private void AnalyzeMemberAccess(SyntaxNodeAnalysisContext context, INamedTypeSymbol? expressionType)
src\roslyn\src\Analyzers\CSharp\Analyzers\UseCollectionExpression\CSharpUseCollectionExpressionForFluentDiagnosticAnalyzer.cs (4)
65protected override void InitializeWorker(CodeBlockStartAnalysisContext<SyntaxKind> context, INamedTypeSymbol? expressionType) 68private void AnalyzeMemberAccess(SyntaxNodeAnalysisContext context, INamedTypeSymbol? expressionType) 118INamedTypeSymbol? expressionType, 175var ienumerableOfTType = compilation.IEnumerableOfTType();
src\roslyn\src\Analyzers\CSharp\Analyzers\UseCollectionExpression\CSharpUseCollectionExpressionForNewDiagnosticAnalyzer.cs (4)
26protected override void InitializeWorker(CodeBlockStartAnalysisContext<SyntaxKind> context, INamedTypeSymbol? expressionType) 32private void AnalyzeObjectCreationExpression(SyntaxNodeAnalysisContext context, INamedTypeSymbol? expressionType) 35private void AnalyzeImplicitObjectCreationExpression(SyntaxNodeAnalysisContext context, INamedTypeSymbol? expressionType) 39SyntaxNodeAnalysisContext context, BaseObjectCreationExpressionSyntax objectCreationExpression, INamedTypeSymbol? expressionType)
src\roslyn\src\Analyzers\CSharp\Analyzers\UseCollectionExpression\CSharpUseCollectionExpressionForStackAllocDiagnosticAnalyzer.cs (4)
35protected override void InitializeWorker(CodeBlockStartAnalysisContext<SyntaxKind> context, INamedTypeSymbol? expressionType) 41private void AnalyzeImplicitStackAllocExpression(SyntaxNodeAnalysisContext context, INamedTypeSymbol? expressionType) 83private void AnalyzeExplicitStackAllocExpression(SyntaxNodeAnalysisContext context, INamedTypeSymbol? expressionType) 126INamedTypeSymbol? expressionType,
src\roslyn\src\Analyzers\CSharp\Analyzers\UseCollectionExpression\UseCollectionExpressionHelpers.cs (15)
64INamedTypeSymbol? expressionType, 83INamedTypeSymbol? expressionType, 276var isetType = compilation.ISetOfTType(); 277var ireadOnlySetType = compilation.IReadOnlySetOfTType(); 312if (targetType is not INamedTypeSymbol namedType) 316var typeToCheck = namedType.OriginalDefinition; 329{ Kind: TypedConstantKind.Type, Value: INamedTypeSymbol builderType }, 751INamedTypeSymbol? expressionType, 897if (semanticModel.GetSymbolInfo(memberAccessExpression.Expression, cancellationToken).Symbol is not INamedTypeSymbol factoryType) 947Type: INamedTypeSymbol 994Type: INamedTypeSymbol 1074public static bool EqualsOrImplements(ITypeSymbol type, INamedTypeSymbol? interfaceType) 1081foreach (var baseInterface in type.AllInterfaces) 1123if (expressionSymbol is not INamedTypeSymbol) 1155if (expressionSymbol is not INamedTypeSymbol)
src\roslyn\src\Analyzers\CSharp\Analyzers\UseCollectionInitializer\CSharpUseCollectionInitializerAnalyzer.cs (5)
274bool CanSpreadFirstParameter(INamedTypeSymbol constructedType, IParameterSymbol firstParameter) 278var ienumerableOfTType = compilation.IEnumerableOfTType(); 279var implementedInterface = firstParameter.Type 302var collectionType = compilation.CollectionOfTType(); 303var blockingCollectionType = compilation.BlockingCollectionOfTType();
src\roslyn\src\Analyzers\CSharp\Analyzers\UseCollectionInitializer\CSharpUseCollectionInitializerDiagnosticAnalyzer.cs (1)
53INamedTypeSymbol? expressionType,
src\roslyn\src\Analyzers\CSharp\Analyzers\UseDeconstruction\CSharpUseDeconstructionDiagnosticAnalyzer.cs (5)
92[NotNullWhen(true)] out INamedTypeSymbol? tupleType, 122[NotNullWhen(true)] out INamedTypeSymbol? tupleType, 141[NotNullWhen(true)] out INamedTypeSymbol? tupleType, 165if (type is not INamedTypeSymbol { IsTupleType: true, TupleElements.Length: >= 2 } tupleTypeOpt) 199SemanticModel semanticModel, INamedTypeSymbol tupleType,
src\roslyn\src\Analyzers\CSharp\Analyzers\UseExpressionBody\Helpers\UseExpressionBodyForLocalFunctionHelper.cs (1)
61return symbol is IMethodSymbol { ReturnType: INamedTypeSymbol { Arity: not 0 } };
src\roslyn\src\Analyzers\CSharp\Analyzers\UseExpressionBody\Helpers\UseExpressionBodyForMethodsHelper.cs (1)
59return method is { ReturnType: INamedTypeSymbol { Arity: not 0 } };
src\roslyn\src\Analyzers\CSharp\Analyzers\UseExpressionBodyForLambda\UseExpressionBodyForLambdaHelpers.cs (1)
43if (semanticModel.GetTypeInfo(declaration, cancellationToken).ConvertedType is not INamedTypeSymbol lambdaType || lambdaType.DelegateInvokeMethod == null)
src\roslyn\src\Analyzers\CSharp\Analyzers\UseIndexOrRangeOperator\CSharpUseIndexOperatorDiagnosticAnalyzer.cs (1)
83var arrayType = compilation.GetSpecialType(SpecialType.System_Array);
src\roslyn\src\Analyzers\CSharp\Analyzers\UseIndexOrRangeOperator\CSharpUseIndexOperatorDiagnosticAnalyzer.InfoCache.cs (6)
27public readonly INamedTypeSymbol IndexType; 29public readonly INamedTypeSymbol? ExpressionOfTType; 37private InfoCache(INamedTypeSymbol indexType, INamedTypeSymbol? expressionOfTType) 45var indexType = compilation.GetBestTypeByMetadataName(typeof(Index).FullName!); 74var containingType = method.ContainingType;
src\roslyn\src\Analyzers\CSharp\Analyzers\UseIndexOrRangeOperator\CSharpUseRangeOperatorDiagnosticAnalyzer.InfoCache.cs (9)
28public readonly INamedTypeSymbol RangeType; 29public readonly INamedTypeSymbol? ExpressionOfTType; 33private InfoCache(INamedTypeSymbol rangeType, INamedTypeSymbol stringType, INamedTypeSymbol? expressionOfTType) 67var rangeType = compilation.GetBestTypeByMetadataName(typeof(Range).FullName!); 74var stringType = compilation.GetSpecialType(SpecialType.System_String); 79private static IMethodSymbol? GetSliceLikeMethod(INamedTypeSymbol namedType) 136var containingType = sliceLikeMethod.ContainingType;
src\roslyn\src\Analyzers\CSharp\Analyzers\UseIsNullCheck\CSharpUseNullCheckOverTypeCheckDiagnosticAnalyzer.cs (2)
38var expressionType = compilation.ExpressionOfTType(); 84private void AnalyzeIsTypeOperation(OperationAnalysisContext context, INamedTypeSymbol? expressionType)
src\roslyn\src\Analyzers\CSharp\Analyzers\UseLocalFunction\CSharpUseLocalFunctionDiagnosticAnalyzer.cs (7)
64var expressionType = compilation.GetTypeByMetadataName(typeof(Expression<>).FullName!); 77private void SyntaxNodeAction(SyntaxNodeAnalysisContext syntaxContext, INamedTypeSymbol? expressionType) 119var delegateType = semanticModel.GetTypeInfo(anonymousFunction, cancellationToken).ConvertedType as INamedTypeSymbol; 242SemanticModel semanticModel, INamedTypeSymbol? expressionTypeOpt, ISymbol local, SyntaxNode container, 403INamedTypeSymbol delegateType, 408var delegateContainingType = delegateType.ContainingType;
src\roslyn\src\Analyzers\CSharp\Analyzers\UseNameofInNullableAttribute\CSharpUseNameofInNullableAttributeDiagnosticAnalyzer.cs (1)
75INamedTypeSymbol? containingType = null;
src\roslyn\src\Analyzers\CSharp\Analyzers\UsePatternCombinators\CSharpUsePatternCombinatorsDiagnosticAnalyzer.cs (1)
68var expressionType = semanticModel.Compilation.ExpressionOfTType();
src\roslyn\src\Analyzers\CSharp\Analyzers\UsePatternMatching\CSharpUseNotPatternDiagnosticAnalyzer.cs (2)
45var expressionOfTType = context.Compilation.ExpressionOfTType(); 52INamedTypeSymbol? expressionOfTType)
src\roslyn\src\Analyzers\CSharp\Analyzers\UsePrimaryConstructor\CSharpUsePrimaryConstructorDiagnosticAnalyzer.cs (16)
79var namedTypeToAnalyzer = new ConcurrentDictionary<INamedTypeSymbol, Analyzer>(); 85INamedTypeSymbol namedType, 142INamedTypeSymbol namedType, 145ConcurrentDictionary<INamedTypeSymbol, Analyzer> namedTypeToAnalyzer) 150private readonly INamedTypeSymbol _namedType = namedType; 154private readonly ConcurrentDictionary<INamedTypeSymbol, Analyzer> _namedTypeToAnalyzer = namedTypeToAnalyzer; 204ConcurrentDictionary<INamedTypeSymbol, Analyzer> namedTypeToAnalyzer) 209var startSymbol = (INamedTypeSymbol)context.Symbol; 215for (var containingType = startSymbol.ContainingType; containingType != null; containingType = containingType.ContainingType) 245INamedTypeSymbol namedType) 260Analyzer? TryCreateAnalyzer(INamedTypeSymbol namedType) 340INamedTypeSymbol namedType, 385INamedTypeSymbol namedType, 406INamedTypeSymbol namedType, 463INamedTypeSymbol namedType,
src\roslyn\src\Analyzers\CSharp\Analyzers\UseSystemThreadingLock\CSharpUseSystemThreadingLockDiagnosticAnalyzer.cs (3)
62var lockType = compilation.GetBestTypeByMetadataName("System.Threading.Lock"); 77var namedType = (INamedTypeSymbol)context.Symbol;
src\roslyn\src\Analyzers\CSharp\Analyzers\UseUtf8StringLiteral\UseUtf8StringLiteralDiagnosticAnalyzer.cs (2)
54var expressionType = context.Compilation.GetTypeByMetadataName(typeof(System.Linq.Expressions.Expression<>).FullName!); 59private void AnalyzeOperation(OperationAnalysisContext context, INamedTypeSymbol? expressionType)
src\roslyn\src\Analyzers\CSharp\CodeFixes\AddParameter\CSharpAddParameterCodeFixProvider.cs (1)
65var type = constructorSymbol.ContainingType;
src\roslyn\src\Analyzers\CSharp\CodeFixes\ConvertToRecord\ConvertToRecordEngine.cs (5)
41if (semanticModel.GetDeclaredSymbol(typeDeclaration, cancellationToken) is not INamedTypeSymbol 81INamedTypeSymbol type, 281var iEquatable = ConvertToRecordHelpers.GetIEquatableType(semanticModel.Compilation, type); 380INamedTypeSymbol type, 475INamedTypeSymbol type,
src\roslyn\src\Analyzers\CSharp\CodeFixes\ConvertToRecord\ConvertToRecordHelpers.cs (11)
32var type = methodSymbol.ContainingType; 33var equatableType = GetIEquatableType(compilation, type); 67public static INamedTypeSymbol? GetIEquatableType(Compilation compilation, INamedTypeSymbol containingType) 70var equatable = compilation.GetBestTypeByMetadataName("System.IEquatable`1")?.Construct(containingType); 496var type = methodSymbol.ContainingType; 855MatchedType: INamedTypeSymbol matchedType, 881INamedTypeSymbol type, 958INamedTypeSymbol type, 1099private static bool OverridesEquals(Compilation compilation, IMethodSymbol equals, INamedTypeSymbol? equatableType) 1108var objectType = compilation.GetSpecialType(SpecialType.System_Object);
src\roslyn\src\Analyzers\CSharp\CodeFixes\ConvertToRecord\PositionalParameterInfo.cs (4)
37INamedTypeSymbol type, 75INamedTypeSymbol currentType, 78var baseType = currentType.BaseType; 119INamedTypeSymbol containingType)
src\roslyn\src\Analyzers\CSharp\CodeFixes\DisambiguateSameVariable\CSharpDisambiguateSameVariableCodeFixProvider.cs (1)
96var enclosingType = semanticModel.GetEnclosingNamedType(span.Start, cancellationToken);
src\roslyn\src\Analyzers\CSharp\CodeFixes\FixReturnType\CSharpFixReturnTypeCodeFixProvider.cs (2)
99INamedTypeSymbol? taskType = null; 158var baseTupleType = compilation.ValueTupleType(argCount);
src\roslyn\src\Analyzers\CSharp\CodeFixes\GenerateConstructor\CSharpGenerateConstructorService.cs (9)
28protected override bool ContainingTypesOrSelfHasUnsafeKeyword(INamedTypeSymbol containingType) 46[NotNullWhen(true)] out INamedTypeSymbol? typeToGenerateIn) 56var currentType = semanticModel.GetEnclosingNamedType(constructorInitializer.SpanStart, cancellationToken); 84[NotNullWhen(true)] out INamedTypeSymbol? typeToGenerateIn) 99typeToGenerateIn = symbolInfo.GetAnySymbol() as INamedTypeSymbol; 116[NotNullWhen(true)] out INamedTypeSymbol? typeToGenerateIn) 134typeToGenerateIn = symbolInfo.CandidateSymbols.FirstOrDefault()?.ContainingSymbol as INamedTypeSymbol; 151[NotNullWhen(true)] out INamedTypeSymbol? typeToGenerateIn) 158if (typeInfo.Type is INamedTypeSymbol typeSymbol)
src\roslyn\src\Analyzers\CSharp\CodeFixes\GenerateDefaultConstructors\CSharpGenerateDefaultConstructorsService.cs (2)
27[NotNullWhen(true)] out INamedTypeSymbol? classType) 38classType = semanticDocument.SemanticModel.GetDeclaredSymbol(typeDeclaration, cancellationToken) as INamedTypeSymbol;
src\roslyn\src\Analyzers\CSharp\CodeFixes\GenerateMethod\GenerateDeconstructMethodCodeFixProvider.cs (1)
99var codeActions = await service.GenerateDeconstructMethodAsync(document, target, (INamedTypeSymbol)type, cancellationToken).ConfigureAwait(false);
src\roslyn\src\Analyzers\CSharp\CodeFixes\GenerateParameterizedMember\CSharpGenerateConversionService.cs (12)
38protected override bool ContainingTypesOrSelfHasUnsafeKeyword(INamedTypeSymbol containingType) 60[NotNullWhen(true)] out INamedTypeSymbol? typeToGenerateIn) 86[NotNullWhen(true)] out INamedTypeSymbol? typeToGenerateIn) 111[NotNullWhen(true)] out INamedTypeSymbol? typeToGenerateIn) 139[NotNullWhen(true)] out INamedTypeSymbol? typeToGenerateIn) 142typeToGenerateIn = document.SemanticModel.GetTypeInfo(castExpression.Type, cancellationToken).Type as INamedTypeSymbol; 144|| document.SemanticModel.GetTypeInfo(castExpression.Expression, cancellationToken).Type is not INamedTypeSymbol parameterSymbol 170[NotNullWhen(true)] out INamedTypeSymbol? typeToGenerateIn) 173typeToGenerateIn = document.SemanticModel.GetTypeInfo(expression, cancellationToken).ConvertedType as INamedTypeSymbol; 175|| document.SemanticModel.GetTypeInfo(expression, cancellationToken).Type is not INamedTypeSymbol parameterSymbol 196INamedTypeSymbol typeToGenerateIn, INamedTypeSymbol parameterSymbol)
src\roslyn\src\Analyzers\CSharp\CodeFixes\GenerateParameterizedMember\CSharpGenerateDeconstructMethodService.cs (2)
26protected override bool ContainingTypesOrSelfHasUnsafeKeyword(INamedTypeSymbol containingType) 59if (targetType is not INamedTypeSymbol { IsTupleType: true, TupleElements: var tupleElements })
src\roslyn\src\Analyzers\CSharp\CodeFixes\GenerateParameterizedMember\CSharpGenerateMethodService.cs (3)
34protected override bool ContainingTypesOrSelfHasUnsafeKeyword(INamedTypeSymbol containingType) 52[NotNullWhen(true)] out INamedTypeSymbol? typeToGenerateIn) 66typeToGenerateIn = semanticInfo.Type as INamedTypeSymbol;
src\roslyn\src\Analyzers\CSharp\CodeFixes\ImplementInterface\CSharpImplementInterfaceService.cs (4)
51[NotNullWhen(true)] out INamedTypeSymbol? classOrStructType, 52out ImmutableArray<INamedTypeSymbol> interfaceTypes) 71if (interfaceSymbolInfo.GetAnySymbol() is INamedTypeSymbol interfaceType && interfaceType.TypeKind == TypeKind.Interface) 102SyntaxGenerator g, INamedTypeSymbol classType, string disposeMethodDisplayString)
src\roslyn\src\Analyzers\CSharp\CodeFixes\Iterator\CSharpAddYieldCodeFixProvider.cs (6)
119var ienumerableSymbol = model.Compilation.GetTypeByMetadataName(typeof(IEnumerable).FullName!); 120var ienumeratorSymbol = model.Compilation.GetTypeByMetadataName(typeof(IEnumerator).FullName!); 121var ienumerableGenericSymbol = model.Compilation.GetTypeByMetadataName(typeof(IEnumerable<>).FullName!); 122var ienumeratorGenericSymbol = model.Compilation.GetTypeByMetadataName(typeof(IEnumerator<>).FullName!); 192var ienumerableSymbol = model.Compilation.GetTypeByMetadataName(typeof(IEnumerable).FullName!); 193var ienumeratorSymbol = model.Compilation.GetTypeByMetadataName(typeof(IEnumerator).FullName!);
src\roslyn\src\Analyzers\CSharp\CodeFixes\Iterator\CSharpChangeToIEnumerableCodeFixProvider.cs (4)
47if (!TryGetIEnumerableSymbols(model, out var ienumerableSymbol, out var ienumerableGenericSymbol)) 112[NotNullWhen(true)] out INamedTypeSymbol? ienumerableSymbol, 113[NotNullWhen(true)] out INamedTypeSymbol? ienumerableGenericSymbol)
src\roslyn\src\Analyzers\CSharp\CodeFixes\MakeRefStruct\MakeRefStructCodeFixProvider.cs (2)
49var structDeclarationSymbol = (INamedTypeSymbol)semanticModel.GetRequiredDeclaredSymbol(structDeclaration, cancellationToken);
src\roslyn\src\Analyzers\CSharp\CodeFixes\ReplaceDefaultLiteral\CSharpReplaceDefaultLiteralCodeFixProvider.cs (1)
123var flagsAttribute = compilation.GetTypeByMetadataName(typeof(FlagsAttribute).FullName!);
src\roslyn\src\Analyzers\CSharp\CodeFixes\UseCollectionExpression\CSharpUseCollectionExpressionForArrayCodeFixProvider.cs (2)
65var expressionType = semanticModel.Compilation.ExpressionOfTType(); 100SemanticModel semanticModel, ExpressionSyntax expression, INamedTypeSymbol? expressionType)
src\roslyn\src\Analyzers\CSharp\CodeFixes\UseCollectionExpression\CSharpUseCollectionExpressionForBuilderCodeFixProvider.cs (1)
45var expressionType = semanticModel.Compilation.ExpressionOfTType();
src\roslyn\src\Analyzers\CSharp\CodeFixes\UseCollectionExpression\CSharpUseCollectionExpressionForFluentCodeFixProvider.cs (1)
57var expressionType = semanticModel.Compilation.ExpressionOfTType();
src\roslyn\src\Analyzers\CSharp\CodeFixes\UseCollectionExpression\CSharpUseCollectionExpressionForStackAllocCodeFixProvider.cs (1)
41var expressionType = semanticModel.Compilation.ExpressionOfTType();
src\roslyn\src\Analyzers\CSharp\CodeFixes\UseDeconstruction\CSharpUseDeconstructionCodeFixProvider.cs (6)
74out var tupleType, out memberAccessExpressions, 90out var tupleType, out memberAccessExpressions, 113private ForEachVariableStatementSyntax CreateForEachVariableStatement(INamedTypeSymbol tupleType, ForEachStatementSyntax forEachStatement) 131INamedTypeSymbol tupleType, LocalDeclarationStatementSyntax declarationStatement, VariableDeclaratorSyntax variableDeclarator) 145private ExpressionSyntax CreateTupleOrDeclarationExpression(INamedTypeSymbol tupleType, TypeSyntax typeNode) 156private static DeclarationExpressionSyntax CreateDeclarationExpression(INamedTypeSymbol tupleType, TypeSyntax typeNode)
src\roslyn\src\Analyzers\CSharp\CodeFixes\UseExplicitArrayInExpressionTree\CSharpUseExplicitArrayInExpressionTreeCodeFixProvider.cs (1)
119var arrayType = semanticModel.Compilation.ArrayType();
src\roslyn\src\Analyzers\CSharp\CodeFixes\UseExpressionBodyForLambda\UseExpressionBodyForLambdaCodeActionHelpers.cs (3)
82var lambdaType = (INamedTypeSymbol)semanticModel.GetTypeInfo(declaration).ConvertedType!; 102var taskType = semanticModel.Compilation.GetTypeByMetadataName(typeof(Task).FullName!);
src\roslyn\src\Analyzers\CSharp\CodeFixes\UseImplicitOrExplicitType\UseExplicitTypeCodeFixProvider.cs (1)
189var elements = ((INamedTypeSymbol)typeSymbol).TupleElements;
src\roslyn\src\Analyzers\CSharp\CodeFixes\UseLocalFunction\CSharpUseLocalFunctionCodeFixProvider.cs (3)
102var delegateType = (INamedTypeSymbol)semanticModel.GetTypeInfo(anonymousFunction, cancellationToken).ConvertedType; 181INamedTypeSymbol delegateType, ParameterListSyntax parameterList,
src\roslyn\src\Analyzers\CSharp\CodeFixes\UsePrimaryConstructor\CSharpUsePrimaryConstructorCodeFixProvider.cs (5)
121var namedType = semanticModel.GetRequiredDeclaredSymbol(typeDeclaration, cancellationToken); 318INamedTypeSymbol { ContainingType: { } containingType } => CreateDottedName(originalName, currentName, containingType), 329INamedTypeSymbol containingType) 390semanticModel.GetSymbolInfo(baseType.Type, cancellationToken).GetAnySymbol() is INamedTypeSymbol { TypeKind: TypeKind.Class }) 408var baseTypeSymbol = namedType.BaseType;
src\roslyn\src\Analyzers\CSharp\CodeFixes\UseSystemThreadingLock\CSharpUseSystemThreadingLockCodeFixProvider.cs (1)
84var lockType = compilation.GetBestTypeByMetadataName("System.Threading.Lock");
src\roslyn\src\Analyzers\CSharp\CodeFixes\UseUtf8StringLiteral\UseUtf8StringLiteralCodeFixProvider.cs (2)
47var readOnlySpanType = semanticModel.Compilation.GetBestTypeByMetadataName(typeof(ReadOnlySpan<>).FullName!); 64conversion.Type is INamedTypeSymbol { IsGenericType: true } namedType &&
UsePatternMatching\CSharpIsAndCastCheckWithoutNameCodeFixProvider.cs (1)
46var expressionType = semanticModel.Compilation.ExpressionOfTType();
UsePatternMatching\CSharpIsAndCastCheckWithoutNameDiagnosticAnalyzer.cs (3)
56var expressionType = context.Compilation.ExpressionOfTType(); 63INamedTypeSymbol? expressionType) 111INamedTypeSymbol? expressionType,
Microsoft.CodeAnalysis.CSharp.NetAnalyzers (17)
Microsoft.CodeQuality.Analyzers\Maintainability\CSharpAvoidUninstantiatedInternalClasses.cs (2)
17public override void RegisterLanguageSpecificChecks(CompilationStartAnalysisContext context, ConcurrentDictionary<INamedTypeSymbol, object?> instantiatedTypes) 26aliasSymbol.Target is INamedTypeSymbol namedTypeSymbol &&
Microsoft.NetCore.Analyzers\InteropServices\CSharpDynamicInterfaceCastableImplementation.Fixer.cs (3)
31var type = (INamedTypeSymbol)model.GetDeclaredSymbol(declaration, cancellationToken)!; 35foreach (var iface in type.AllInterfaces)
Microsoft.NetCore.Analyzers\Performance\CSharpCollapseMultiplePathOperations.Fixer.cs (3)
53private static Task<Document> CollapsePathOperationAsync(Document document, SyntaxNode root, InvocationExpressionSyntax invocation, INamedTypeSymbol pathType, SemanticModel semanticModel, CancellationToken cancellationToken) 71private static ArgumentSyntax[] CollectAllArguments(InvocationExpressionSyntax invocation, INamedTypeSymbol pathType, SemanticModel semanticModel) 94private static bool IsPathCombineOrJoin(InvocationExpressionSyntax invocation, INamedTypeSymbol pathType, SemanticModel semanticModel, out string methodName)
Microsoft.NetCore.Analyzers\Performance\CSharpRecommendCaseInsensitiveStringComparisonFixer.cs (1)
22string caseChangingApproachValue, IInvocationOperation mainInvocationOperation, INamedTypeSymbol stringComparisonType,
Microsoft.NetCore.Analyzers\Performance\CSharpUseSearchValues.Fixer.cs (2)
23protected override async ValueTask<(SyntaxNode TypeDeclaration, INamedTypeSymbol? TypeSymbol, bool IsRealType)> GetTypeSymbolAsync(SemanticModel semanticModel, SyntaxNode node, CancellationToken cancellationToken) 91else if (operation.Type is INamedTypeSymbol namedType)
Microsoft.NetCore.Analyzers\Resources\CSharpMarkAssembliesWithNeutralResourcesLanguage.cs (1)
19protected override void RegisterAttributeAnalyzer(CompilationStartAnalysisContext context, Func<bool> shouldAnalyze, Action<SyntaxNodeAnalysisContext> onResourceFound, INamedTypeSymbol generatedCode)
Microsoft.NetCore.Analyzers\Runtime\CSharpAvoidRedundantRegexIsMatchBeforeMatch.Fixer.cs (1)
332var matchType = model.Compilation.GetTypeByMetadataName("System.Text.RegularExpressions.Match");
Microsoft.NetCore.Analyzers\Runtime\CSharpForwardCancellationTokenToInvocations.Analyzer.cs (1)
34protected override bool ArgumentsImplicitOrNamed(INamedTypeSymbol cancellationTokenType, ImmutableArray<IArgumentOperation> arguments)
Microsoft.NetCore.Analyzers\Runtime\CSharpForwardCancellationTokenToInvocationsFixer.TypeNameVisitor.cs (3)
37public override TypeSyntax VisitNamedType(INamedTypeSymbol symbol) 119private TypeSyntax CreateSimpleTypeSyntax(INamedTypeSymbol symbol) 181private static bool TryCreateNativeIntegerType(INamedTypeSymbol symbol, [NotNullWhen(true)] out TypeSyntax? syntax)
Microsoft.CodeAnalysis.CSharp.Workspaces (144)
Recommendations\CSharpRecommendationServiceRunner.cs (15)
102var symbol = _context.SemanticModel.GetDeclaredSymbol(_context.ContainingTypeOrEnumDeclaration!, _cancellationToken); 325var containingType = semanticModel.GetRequiredDeclaredSymbol( 386var contextEnclosingNamedType = semanticModel.GetEnclosingNamedType(_context.Position, _cancellationToken); 394INamedTypeSymbol? enclosingNamedType, 395ISet<INamedTypeSymbol> outerTypes, 441INamedTypeSymbol? enclosingNamedType, 627var containingType = _context.SemanticModel.GetEnclosingNamedType(_context.Position, _cancellationToken); 684if (leftHandBinding.GetBestOrAllSymbols().FirstOrDefault() is INamedTypeSymbol or INamespaceSymbol or IAliasSymbol) 728INamedTypeSymbol? instanceType, staticType; 729if (symbol is INamedTypeSymbol namedType) 738instanceType = reinterpretedSymbol.GetSymbolType() as INamedTypeSymbol; 747if (reinterpretedSymbol is not INamedTypeSymbol reinterprettedNamedType) 750instanceType = symbol.GetSymbolType() as INamedTypeSymbol; 837if (containerSymbol is INamedTypeSymbol typeSymbol && typeSymbol.IsSystemVoid()) 934var containingType = _context.SemanticModel.GetEnclosingNamedType(_context.Position, _cancellationToken);
Recommendations\CSharpRecommendationServiceRunner_Conversions.cs (8)
137if (container.RemoveNullableIfPresent() is INamedTypeSymbol namedType) 153ITypeSymbol container, INamedTypeSymbol containerWithoutNullable, ArrayBuilder<ISymbol> symbols) 158foreach (var type in containerWithoutNullable.GetBaseTypesAndThis()) 201ITypeSymbol container, INamedTypeSymbol containerWithoutNullable, ArrayBuilder<ISymbol> symbols) 229ITypeSymbol container, INamedTypeSymbol containerWithoutNullable, ArrayBuilder<ISymbol> symbols, ImmutableArray<SpecialType> specialTypes) 235var targetTypeSymbol = _context.SemanticModel.Compilation.GetSpecialType(specialType); 258private static IMethodSymbol CreateConversion(INamedTypeSymbol containingType, ITypeSymbol fromType, ITypeSymbol toType, string? documentationCommentXml) 266ITypeSymbol container, INamedTypeSymbol containerWithoutNullable, ArrayBuilder<ISymbol> symbols)
Rename\CSharpRenameRewriterLanguageService.cs (4)
367if (symbol is INamedTypeSymbol namedTypeSymbol) 796if (renamedSymbol is INamedTypeSymbol { TypeKind: not TypeKind.Enum } namedType) 801if (renamedSymbol.ContainingSymbol is INamedTypeSymbol { TypeKind: not TypeKind.Enum } containingNamedType && 1005var baseType = renamedSymbol.ContainingType?.GetBaseTypes().FirstOrDefault();
Simplification\CSharpSimplificationService.Expander.cs (5)
470aliasTarget = ((INamedTypeSymbol)aliasTarget).ConstructUnboundGenericType(); 473if (aliasTarget is INamedTypeSymbol typeSymbol && typeSymbol.IsTupleType) 834if (symbol is INamedTypeSymbol namedTypedSymbol) 1017var type = semanticModel.GetTypeInfo(typeOfExpression.Type, _cancellationToken).Type as INamedTypeSymbol;
Simplification\Simplifiers\ExpressionSimplifier.cs (4)
178if (symbol is INamedTypeSymbol namedType) 347var enclosingNamedType = semanticModel.GetEnclosingNamedType(memberAccess.SpanStart, cancellationToken); 373if (leftSymbol is INamedTypeSymbol) 418if (leftSymbol is INamedTypeSymbol)
Simplification\Simplifiers\NameSimplifier.cs (6)
260if (typeSymbol is INamedTypeSymbol namedType) 274var type = (INamedTypeSymbol)symbol; 401private static bool CanSimplifyNullable(INamedTypeSymbol type, NameSyntax name, SemanticModel semanticModel) 716var symbol = model.GetSymbolInfo(name).Symbol as INamedTypeSymbol;
Simplification\Simplifiers\QualifiedCrefSimplifier.cs (1)
48if (symbol is INamedTypeSymbol namedSymbol)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\CodeStyle\TypeStyle\TypeStyleHelper.cs (5)
44var tupleType = (INamedTypeSymbol)typeInDeclaration; 126if (semanticModel.GetTypeInfo(containingTypeName, cancellationToken).Type is not INamedTypeSymbol containingType) 140INamedTypeSymbol containingType) 187if (symbol is not INamedTypeSymbol namedTypeSymbol)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Extensions\ExpressionSyntaxExtensions.cs (3)
1010lambda.GetTargetType(semanticModel, cancellationToken) is INamedTypeSymbol { DelegateInvokeMethod.ReturnType: var returnType } ? returnType : null; 1042var ienumerableType = semanticModel.Compilation.IEnumerableOfTType(); 1046foreach (var iface in collectionTargetType.AllInterfaces)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Extensions\ITypeSymbolExtensions.cs (1)
40public static bool TryGetPrimaryConstructor(this INamedTypeSymbol typeSymbol, [NotNullWhen(true)] out IMethodSymbol? primaryConstructor)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Extensions\SemanticModelExtensions.cs (3)
210var containingType = semanticModel.GetDeclaredSymbol(type.GetAncestor<BaseTypeDeclarationSyntax>(), cancellationToken); 331var symbol = semanticModel.GetDeclaredSymbol(typeDeclaration, cancellationToken); 459public static INamedTypeSymbol GetRequiredDeclaredSymbol(this SemanticModel semanticModel, BaseTypeDeclarationSyntax syntax, CancellationToken cancellationToken)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Extensions\SyntaxNodeExtensions.cs (2)
789[NotNullWhen(true)] INamedTypeSymbol? expressionType, 822static bool TakesExpressionTree(SymbolInfo info, INamedTypeSymbol expressionType)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Services\SemanticFacts\CSharpSemanticFacts.cs (5)
102public bool LastEnumValueHasInitializer(INamedTypeSymbol namedTypeSymbol) 239public bool IsPartial(INamedTypeSymbol typeSymbol, CancellationToken cancellationToken) 294var type = model.Compilation.TryGetCallingConventionSymbol(syntax.Name.ValueText); 455public bool IsInExpressionTree(SemanticModel semanticModel, SyntaxNode node, [NotNullWhen(true)] INamedTypeSymbol? expressionType, CancellationToken cancellationToken) 484public bool TryGetPrimaryConstructor(INamedTypeSymbol typeSymbol, [NotNullWhen(true)] out IMethodSymbol? primaryConstructor)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Simplification\Simplifiers\CastSimplifier.cs (9)
128var enumType = semanticModel.GetTypeInfo(castExpression.Expression, cancellationToken).Type as INamedTypeSymbol; 163var enumType = semanticModel.GetTypeInfo(castExpression.Expression, cancellationToken).Type as INamedTypeSymbol; 655if (castedType is not INamedTypeSymbol namedCastedType || 656originalConvertedType is not INamedTypeSymbol originalNamedConvertedType) 1098if (conversionOperation.Operand.Type is not INamedTypeSymbol original) 1107for (var type = original; type != null; type = type.BaseType) 1492var rewrittenContainingType = rewrittenMemberSymbol.ContainingType;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Utilities\TypeStyle\CSharpUseImplicitTypeHelper.cs (1)
101if (conflict is INamedTypeSymbol)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\CodeGeneration\CSharpCodeGenerationService.cs (5)
63CodeGenerationSolutionContext context, INamedTypeSymbol destination, IEventSymbol @event, CancellationToken cancellationToken) 68var namedType = @event.Type as INamedTypeSymbol; 247protected override TDeclarationNode AddNamedType<TDeclarationNode>(TDeclarationNode destination, INamedTypeSymbol namedType, CSharpCodeGenerationContextInfo info, IList<bool>? availableIndices, CancellationToken cancellationToken) 729INamedTypeSymbol namedType, CodeGenerationDestination destination, CSharpCodeGenerationContextInfo info, CancellationToken cancellationToken)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\CodeGeneration\CSharpFlagsEnumGenerator.cs (2)
22INamedTypeSymbol enumType, 39protected override bool IsValidName(INamedTypeSymbol enumType, string name)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\CodeGeneration\EnumMemberGenerator.cs (3)
159var namedType = enumMember.Type as INamedTypeSymbol; 160var underlyingType = namedType?.EnumUnderlyingType;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\CodeGeneration\ExpressionGenerator.cs (1)
60if (type is INamedTypeSymbol { TypeKind: TypeKind.Enum } enumType)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\CodeGeneration\MethodGenerator.cs (1)
365if (method.IsReadOnly && (method.ContainingSymbol as INamedTypeSymbol)?.IsReadOnly != true)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\CodeGeneration\NamedTypeGenerator.cs (14)
27INamedTypeSymbol namedType, 41INamedTypeSymbol namedType, 56INamedTypeSymbol namedType, 72INamedTypeSymbol namedType, 154INamedTypeSymbol namedType, 184INamedTypeSymbol namedType, 228INamedTypeSymbol namedType, 246INamedTypeSymbol namedType, 263INamedTypeSymbol namedType, CSharpCodeGenerationContextInfo info) 269INamedTypeSymbol namedType, 313INamedTypeSymbol namedType, CSharpCodeGenerationContextInfo info) 318private static BaseListSyntax? GenerateBaseList(INamedTypeSymbol namedType) 324foreach (var type in namedType.Interfaces) 333private static SyntaxList<TypeParameterConstraintClauseSyntax> GenerateConstraintClauses(INamedTypeSymbol namedType)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\Editing\CSharpImportAdder.cs (1)
112foreach (var type in ns.GetTypeMembers())
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\Extensions\ContextQuery\SyntaxTreeExtensions.cs (4)
1042INamedTypeSymbol nt => nt.Arity > 0, 1051return symbols.All(static s => s is INamedTypeSymbol or IMethodSymbol); 2895var delegateType = CSharpTypeInferenceService.Instance.InferDelegateType( 3069return ((INamedTypeSymbol)symbol).TypeKind == TypeKind.Enum;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\Extensions\ITypeSymbolExtensions.ExpressionSyntaxGeneratorVisitor.cs (1)
41public override ExpressionSyntax VisitNamedType(INamedTypeSymbol symbol)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\Extensions\ITypeSymbolExtensions.TypeSyntaxGeneratorVisitor.cs (5)
122public static bool TryCreateNativeIntegerType(INamedTypeSymbol symbol, [NotNullWhen(true)] out TypeSyntax? syntax) 178public TypeSyntax CreateSimpleTypeSyntax(INamedTypeSymbol symbol) 218private static TypeSyntax? TryCreateSpecializedNamedTypeSyntax(INamedTypeSymbol symbol) 244private static TupleTypeSyntax CreateTupleTypeSyntax(INamedTypeSymbol symbol) 257public override TypeSyntax VisitNamedType(INamedTypeSymbol symbol)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\Extensions\TypeDeclarationSyntaxExtensions.cs (1)
76var typeSymbol = model.GetRequiredDeclaredSymbol(typeNode, cancellationToken);
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\Extensions\WithElementSyntaxExtensions.cs (6)
24var within = semanticModel.GetEnclosingNamedType(position, cancellationToken); 28if (semanticModel.GetTypeInfo(collectionExpression, cancellationToken).ConvertedType is not INamedTypeSymbol collectionExpressionType) 42var ilistOfTType = semanticModel.Compilation.IListOfTType(); 43var icollectionOfTType = semanticModel.Compilation.ICollectionOfTType(); 51var listOfTType = semanticModel.Compilation.ListOfTType(); 55var constructedListType = listOfTType.Construct(collectionExpressionType.TypeArguments.Single());
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\LanguageServices\CSharpSyntaxGeneratorInternal.cs (1)
221public override SyntaxNode DeclarationPattern(INamedTypeSymbol type, string name)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\LanguageServices\CSharpTypeInferenceService.TypeInferrer.cs (26)
334if (types.Any(t => t is INamedTypeSymbol)) 336return types.OfType<INamedTypeSymbol>().SelectMany(t => 367.OfType<INamedTypeSymbol>() 444if (info.Type is not INamedTypeSymbol type) 465if (info.Type is not INamedTypeSymbol type) 571if (info.Type is INamedTypeSymbol type) 708var inferredNamedType = (INamedTypeSymbol)inferredType; 709var returnNamedType = (INamedTypeSymbol)returnType; 1331var enumerableType = isAsync 1343var objectType = Compilation.GetSpecialType(SpecialType.System_Object); 1486if (types.Any(t => t is INamedTypeSymbol)) 1488return types.OfType<INamedTypeSymbol>().SelectMany(t => 1509if (types.Any(t => t is INamedTypeSymbol)) 1516return types.OfType<INamedTypeSymbol>().SelectMany(t => 1661var type = Compilation.CreateTupleTypeSymbol( 1696var type = types.FirstOrDefault().InferredType.GetDelegateType(this.Compilation); 1817var taskOfT = this.Compilation.TaskOfTType(); 1826var ienumerableType = this.Compilation.IEnumerableOfTType(); 1840var delegateType = argumentTypes.FirstOrDefault().InferredType.GetDelegateType(this.Compilation); 2045var task = this.Compilation.TaskType(); 2046var taskOfT = this.Compilation.TaskOfTType(); 2072return memberType is INamedTypeSymbol namedType && namedType.TypeArguments.Length == 1 2086var namedTypeSymbol = (INamedTypeSymbol)type;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\LanguageServices\InitializeParameter\InitializeParameterHelpers.cs (1)
102var namedType = parameter.ContainingType;
Microsoft.CodeAnalysis.Extensions.Package (339)
Compilation\CompilationExtensions.cs (82)
78public static INamedTypeSymbol? ArgumentExceptionType(this Compilation compilation) 81public static INamedTypeSymbol? ArgumentNullExceptionType(this Compilation compilation) 84public static INamedTypeSymbol? ArgumentOutOfRangeExceptionType(this Compilation compilation) 87public static INamedTypeSymbol? ArrayType(this Compilation compilation) 90public static INamedTypeSymbol? AttributeType(this Compilation compilation) 93public static INamedTypeSymbol? BlockingCollectionOfTType(this Compilation compilation) 96public static INamedTypeSymbol? CollectionOfTType(this Compilation compilation) 99public static INamedTypeSymbol? ExceptionType(this Compilation compilation) 102public static INamedTypeSymbol? DebuggerDisplayAttributeType(this Compilation compilation) 105public static INamedTypeSymbol? StructLayoutAttributeType(this Compilation compilation) 108public static INamedTypeSymbol? InlineArrayAttributeType(this Compilation compilation) 111public static INamedTypeSymbol? DesignerCategoryAttributeType(this Compilation compilation) 114public static INamedTypeSymbol? DesignerGeneratedAttributeType(this Compilation compilation) 117public static INamedTypeSymbol? HideModuleNameAttribute(this Compilation compilation) 120public static INamedTypeSymbol? ThreadStaticAttributeType(this Compilation compilation) 123public static INamedTypeSymbol? FormattableStringType(this Compilation compilation) 126public static INamedTypeSymbol? IFormattableType(this Compilation compilation) 129public static INamedTypeSymbol? EventArgsType(this Compilation compilation) 132public static INamedTypeSymbol? NotImplementedExceptionType(this Compilation compilation) 135public static INamedTypeSymbol? EqualityComparerOfTType(this Compilation compilation) 138public static INamedTypeSymbol? ActionType(this Compilation compilation) 141public static INamedTypeSymbol? ExpressionOfTType(this Compilation compilation) 144public static INamedTypeSymbol? EditorBrowsableAttributeType(this Compilation compilation) 147public static INamedTypeSymbol? EditorBrowsableStateType(this Compilation compilation) 150public static INamedTypeSymbol? TaskType(this Compilation compilation) 153public static INamedTypeSymbol? TaskOfTType(this Compilation compilation) 156public static INamedTypeSymbol? ValueTaskType(this Compilation compilation) 159public static INamedTypeSymbol? ValueTaskOfTType(this Compilation compilation) 162public static INamedTypeSymbol? ICollectionOfTType(this Compilation compilation) 165public static INamedTypeSymbol? IEnumerableType(this Compilation compilation) 168public static INamedTypeSymbol? IEnumerableOfTType(this Compilation compilation) 171public static INamedTypeSymbol? IEnumeratorOfTType(this Compilation compilation) 174public static INamedTypeSymbol? IListOfTType(this Compilation compilation) 177public static INamedTypeSymbol? IReadOnlyListOfTType(this Compilation compilation) 180public static INamedTypeSymbol? ISetOfTType(this Compilation compilation) 183public static INamedTypeSymbol? IReadOnlySetOfTType(this Compilation compilation) 186public static INamedTypeSymbol? IAsyncEnumerableOfTType(this Compilation compilation) 189public static INamedTypeSymbol? IAsyncEnumeratorOfTType(this Compilation compilation) 192public static INamedTypeSymbol? ImmutableArrayOfTType(this Compilation compilation) 195public static INamedTypeSymbol? SerializableAttributeType(this Compilation compilation) 198public static INamedTypeSymbol? CoClassType(this Compilation compilation) 201public static INamedTypeSymbol? ComAliasNameAttributeType(this Compilation compilation) 204public static INamedTypeSymbol? SuppressMessageAttributeType(this Compilation compilation) 207public static INamedTypeSymbol? TupleElementNamesAttributeType(this Compilation compilation) 210public static INamedTypeSymbol? NativeIntegerAttributeType(this Compilation compilation) 213public static INamedTypeSymbol? DynamicAttributeType(this Compilation compilation) 216public static INamedTypeSymbol? LazyOfTType(this Compilation compilation) 219public static INamedTypeSymbol? ISerializableType(this Compilation compilation) 222public static INamedTypeSymbol? SerializationInfoType(this Compilation compilation) 225public static INamedTypeSymbol? StreamingContextType(this Compilation compilation) 228public static INamedTypeSymbol? OnDeserializingAttribute(this Compilation compilation) 231public static INamedTypeSymbol? OnDeserializedAttribute(this Compilation compilation) 234public static INamedTypeSymbol? OnSerializingAttribute(this Compilation compilation) 237public static INamedTypeSymbol? OnSerializedAttribute(this Compilation compilation) 240public static INamedTypeSymbol? ComRegisterFunctionAttribute(this Compilation compilation) 243public static INamedTypeSymbol? ComUnregisterFunctionAttribute(this Compilation compilation) 246public static INamedTypeSymbol? ConditionalAttribute(this Compilation compilation) 249public static INamedTypeSymbol? ObsoleteAttribute(this Compilation compilation) 252public static INamedTypeSymbol? SystemCompositionImportingConstructorAttribute(this Compilation compilation) 255public static INamedTypeSymbol? SystemComponentModelCompositionImportingConstructorAttribute(this Compilation compilation) 258public static INamedTypeSymbol? SystemIDisposableType(this Compilation compilation) 261public static INamedTypeSymbol? NotNullAttribute(this Compilation compilation) 264public static INamedTypeSymbol? MaybeNullAttribute(this Compilation compilation) 267public static INamedTypeSymbol? MaybeNullWhenAttribute(this Compilation compilation) 270public static INamedTypeSymbol? AllowNullAttribute(this Compilation compilation) 273public static INamedTypeSymbol? DisallowNullAttribute(this Compilation compilation) 276public static INamedTypeSymbol? DataMemberAttribute(this Compilation compilation) 279public static INamedTypeSymbol? DataContractAttribute(this Compilation compilation) 282public static INamedTypeSymbol? AsyncMethodBuilderAttribute(this Compilation compilation) 285public static INamedTypeSymbol? CancellationTokenType(this Compilation compilation) 288public static INamedTypeSymbol? ValueTupleType(this Compilation compilation, int arity) 291public static INamedTypeSymbol? ListOfTType(this Compilation compilation) 294public static INamedTypeSymbol? ReadOnlySpanOfTType(this Compilation compilation) 297public static INamedTypeSymbol? SpanOfTType(this Compilation compilation) 300public static INamedTypeSymbol? InterpolatedStringHandlerAttributeType(this Compilation compilation) 303public static INamedTypeSymbol? DateOnlyType(this Compilation compilation) 306public static INamedTypeSymbol? TimeOnlyType(this Compilation compilation) 334public static INamedTypeSymbol? GetBestTypeByMetadataName(this Compilation compilation, string fullyQualifiedMetadataName) 336INamedTypeSymbol? type = null; 338foreach (var currentType in compilation.GetTypesByMetadataName(fullyQualifiedMetadataName)) 373foreach (var candidateTopLevelType in compilation.SourceModule.GlobalNamespace.GetTypeMembers(WellKnownMemberNames.TopLevelStatementsEntryPointTypeName, arity: 0)) 385public static INamedTypeSymbol? TryGetCallingConventionSymbol(this Compilation compilation, string callingConvention)
Symbols\IMethodSymbolExtensions.cs (6)
26foreach (var nestedType in methodSymbol.ContainingType.GetTypeMembers()) 72public static bool HasEventHandlerSignature(this IMethodSymbol method, [NotNullWhen(returnValue: true)] INamedTypeSymbol? eventArgsType) 131public static bool IsEntryPoint(this IMethodSymbol methodSymbol, INamedTypeSymbol? taskType, INamedTypeSymbol? genericTaskType) 147if (method.ReturnType is not INamedTypeSymbol { Arity: 0 }) 169var containingType = constructor.ContainingType;
Symbols\INamedTypeSymbolExtensions.cs (77)
24public static IEnumerable<INamedTypeSymbol> GetBaseTypesAndThis(this INamedTypeSymbol? namedType) 26var current = namedType; 34public static IEnumerable<INamedTypeSymbol> GetContainingTypesAndThis(this INamedTypeSymbol? namedType) 36var current = namedType; 44public static ImmutableArray<ITypeParameterSymbol> GetAllTypeParameters(this INamedTypeSymbol? symbol) 50public static ImmutableArray<ITypeSymbol> GetAllTypeArguments(this INamedTypeSymbol? symbol) 56private static Stack<INamedTypeSymbol> GetContainmentStack(INamedTypeSymbol? symbol) 58var stack = new Stack<INamedTypeSymbol>(); 59for (var current = symbol; current != null; current = current.ContainingType) 67public static bool IsContainedWithin([NotNullWhen(returnValue: true)] this INamedTypeSymbol? symbol, INamedTypeSymbol outer) 70for (var current = symbol; current != null; current = current.ContainingType) 81public static ISymbol? FindImplementationForAbstractMember(this INamedTypeSymbol? type, ISymbol symbol) 92private static bool ImplementationExists(INamedTypeSymbol classOrStructType, ISymbol member) 96this INamedTypeSymbol classOrStructType, 98Func<INamedTypeSymbol, ISymbol, bool> isValidImplementation, 128private static bool IsInterfacePropertyImplemented(INamedTypeSymbol classOrStructType, IPropertySymbol propertySymbol) 136static bool IsAccessorImplemented(IMethodSymbol? accessor, INamedTypeSymbol classOrStructType) 142private static bool IsAbstractPropertyImplemented(INamedTypeSymbol classOrStructType, IPropertySymbol propertySymbol) 165this INamedTypeSymbol classOrStructType, 167Func<INamedTypeSymbol, ISymbol, bool> isValid, 190public static ImmutableArray<(INamedTypeSymbol type, ImmutableArray<ISymbol> members)> GetAllUnimplementedMembers( 191this INamedTypeSymbol classOrStructType, 192IEnumerable<INamedTypeSymbol> interfaces, 208static ImmutableArray<ISymbol> GetImplicitlyImplementableMembers(INamedTypeSymbol type, ISymbol within) 260public static ImmutableArray<(INamedTypeSymbol type, ImmutableArray<ISymbol> members)> GetAllUnimplementedMembersInThis( 261this INamedTypeSymbol classOrStructType, 262IEnumerable<INamedTypeSymbol> interfacesOrAbstractClasses, 278public static ImmutableArray<(INamedTypeSymbol type, ImmutableArray<ISymbol> members)> GetAllUnimplementedMembersInThis( 279this INamedTypeSymbol classOrStructType, 280IEnumerable<INamedTypeSymbol> interfacesOrAbstractClasses, 281Func<INamedTypeSymbol, ISymbol, ImmutableArray<ISymbol>> interfaceMemberGetter, 297public static ImmutableArray<(INamedTypeSymbol type, ImmutableArray<ISymbol> members)> GetAllUnimplementedExplicitMembers( 298this INamedTypeSymbol classOrStructType, 299IEnumerable<INamedTypeSymbol> interfaces, 311private static ImmutableArray<ISymbol> GetExplicitlyImplementableMembers(INamedTypeSymbol type, ISymbol within) 338private static ImmutableArray<(INamedTypeSymbol type, ImmutableArray<ISymbol> members)> GetAllUnimplementedMembers( 339this INamedTypeSymbol classOrStructType, 340IEnumerable<INamedTypeSymbol> interfacesOrAbstractClasses, 341Func<INamedTypeSymbol, ISymbol, Func<INamedTypeSymbol, ISymbol, bool>, CancellationToken, bool> isImplemented, 342Func<INamedTypeSymbol, ISymbol, bool> isValidImplementation, 343Func<INamedTypeSymbol, ISymbol, ImmutableArray<ISymbol>> interfaceMemberGetter, 372private static ImmutableArray<INamedTypeSymbol> GetTypesToImplement( 373INamedTypeSymbol classOrStructType, 374IEnumerable<INamedTypeSymbol> interfacesOrAbstractClasses, 383private static ImmutableArray<INamedTypeSymbol> GetAbstractClassesToImplement( 384IEnumerable<INamedTypeSymbol> abstractClasses) 389private static ImmutableArray<INamedTypeSymbol> GetInterfacesToImplement( 390INamedTypeSymbol classOrStructType, 391IEnumerable<INamedTypeSymbol> interfaces, 398var interfacesToImplement = new List<INamedTypeSymbol>( 403var baseType = classOrStructType.BaseType; 414this INamedTypeSymbol classOrStructType, 415INamedTypeSymbol interfaceType, 416Func<INamedTypeSymbol, ISymbol, Func<INamedTypeSymbol, ISymbol, bool>, CancellationToken, bool> isImplemented, 417Func<INamedTypeSymbol, ISymbol, bool> isValidImplementation, 418Func<INamedTypeSymbol, ISymbol, ImmutableArray<ISymbol>> interfaceMemberGetter, 460this INamedTypeSymbol attributeSymbol, 466var systemAttributeType = compilation.AttributeType(); 468foreach (var type in attributeSymbol.GetBaseTypesAndThis()) 528private static ImmutableArray<ISymbol> GetMembers(INamedTypeSymbol type, ISymbol within) 542this INamedTypeSymbol containingType, CancellationToken cancellationToken) 559foreach (var type in baseTypes) 580Dictionary<ISymbol, int> result, INamedTypeSymbol containingType, CancellationToken cancellationToken) 601Dictionary<ISymbol, int> result, INamedTypeSymbol containingType, CancellationToken cancellationToken) 623Dictionary<ISymbol, int> result, INamedTypeSymbol containingType, 624INamedTypeSymbol type, ref int index, CancellationToken cancellationToken) 637private static bool IsOverridable(ISymbol member, INamedTypeSymbol containingType) 680public static INamedTypeSymbol TryConstruct(this INamedTypeSymbol type, ITypeSymbol[] typeArguments) 683public static bool IsCollectionBuilderAttribute([NotNullWhen(true)] this INamedTypeSymbol? type) 702public static bool IsIEnumerableOfT([NotNullWhen(true)] this INamedTypeSymbol? type)
Symbols\INamespaceOrTypeSymbolExtensions.cs (3)
90public static IEnumerable<INamedTypeSymbol> GetAllTypes( 106var namedType = (INamedTypeSymbol)current;
Symbols\ISymbolExtensions.cs (16)
99foreach (var baseType in symbol.ContainingType.GetBaseTypes()) 108bool TryFindLooseMatch(ISymbol symbol, INamedTypeSymbol baseType, [NotNullWhen(true)] out ISymbol? looseMatch) 157foreach (var iface in symbol.ContainingType.AllInterfaces) 215public static INamedTypeSymbol? GetContainingTypeOrThis(this ISymbol symbol) 217if (symbol is INamedTypeSymbol namedType) 311=> symbol is INamedTypeSymbol { IsAnonymousType: true }; 354SymbolKind.NamedType => ((INamedTypeSymbol)symbol).Arity, 435INamedTypeSymbol nt => nt.TypeParameters, 456INamedTypeSymbol nt => nt.TypeArguments, 465var containingType = symbol.ContainingType; 506var delegateType = compilation.GetTypeByMetadataName(method.ReturnsVoid 535=> symbol is INamedTypeSymbol { IsStatic: true }; 551foreach (var type in namespaceOrType.GetAllTypes(cancellationToken)) 568private static bool IsAttributeValidForTargets(INamedTypeSymbol attributeType, AttributeTargets validTargets) 595return ((INamedTypeSymbol)symbol).GetMembers().OfType<IPropertySymbol>().Where(p => p.CanBeReferencedByName); 870public static bool HasAttribute([NotNullWhen(true)] this ISymbol? symbol, [NotNullWhen(true)] INamedTypeSymbol? attributeClass)
Symbols\ISymbolExtensions.RequiresUnsafeModifierVisitor.cs (1)
56public override bool VisitNamedType(INamedTypeSymbol symbol)
Symbols\ISymbolExtensions_Accessibility.cs (25)
27else if (within is INamedTypeSymbol namedType) 54INamedTypeSymbol within, 67INamedTypeSymbol within, 92Debug.Assert(within is INamedTypeSymbol or IAssemblySymbol); 124return IsNamedTypeAccessible((INamedTypeSymbol)symbol, within); 177private static bool IsNamedTypeAccessible(INamedTypeSymbol type, ISymbol within) 179Debug.Assert(within is INamedTypeSymbol or IAssemblySymbol); 204var containingType = type.ContainingType; 217Debug.Assert(within is INamedTypeSymbol or IAssemblySymbol); 219var withinAssembly = (within as IAssemblySymbol) ?? ((INamedTypeSymbol)within).ContainingAssembly; 248INamedTypeSymbol containingType, 254Debug.Assert(within is INamedTypeSymbol or IAssemblySymbol); 259var originalContainingType = containingType.OriginalDefinition; 260var withinNamedType = within as INamedTypeSymbol; 261var withinAssembly = (within as IAssemblySymbol) ?? ((INamedTypeSymbol)within).ContainingAssembly; 334INamedTypeSymbol? withinType, 337INamedTypeSymbol originalContainingType, 375var current = withinType.OriginalDefinition; 411INamedTypeSymbol originalContainingType) 413Debug.Assert(within is INamedTypeSymbol or IAssemblySymbol); 415if (within is not INamedTypeSymbol withinType) 428INamedTypeSymbol withinType, 429INamedTypeSymbol originalContainingType) 436var current = withinType.OriginalDefinition;
Symbols\ITypeGenerator.cs (1)
13ITypeSymbol Construct(INamedTypeSymbol namedType, ITypeSymbol[] typeArguments);
Symbols\ITypeParameterSymbolExtensions.cs (4)
14public static INamedTypeSymbol? GetNamedTypeSymbolConstraint(this ITypeParameterSymbol typeParameter) 17private static INamedTypeSymbol? GetNamedTypeSymbol(ITypeSymbol type) 19return type is INamedTypeSymbol 20? (INamedTypeSymbol)type
Symbols\ITypeSymbolExtensions.AnonymousTypeRemover.cs (1)
42public override ITypeSymbol VisitNamedType(INamedTypeSymbol symbol)
Symbols\ITypeSymbolExtensions.CollectTypeParameterSymbolsVisitor.cs (1)
57public override void VisitNamedType(INamedTypeSymbol symbol)
Symbols\ITypeSymbolExtensions.CompilationTypeGenerator.cs (1)
19public ITypeSymbol Construct(INamedTypeSymbol namedType, ITypeSymbol[] typeArguments)
Symbols\ITypeSymbolExtensions.cs (30)
43public static ImmutableArray<INamedTypeSymbol> GetAllInterfacesIncludingThis(this ITypeSymbol type) 46return type is INamedTypeSymbol { TypeKind: TypeKind.Interface } namedType && !allInterfaces.Contains(namedType) 69underlyingType = ((INamedTypeSymbol)symbol).TypeArguments[0]; 92public static bool IsAnonymousType([NotNullWhen(returnValue: true)] this INamedTypeSymbol? symbol) 95private static HashSet<INamedTypeSymbol> GetOriginalInterfacesAndTheirBaseInterfaces( 97HashSet<INamedTypeSymbol>? symbols = null) 99symbols ??= new HashSet<INamedTypeSymbol>(SymbolEquivalenceComparer.Instance); 101foreach (var interfaceType in type.Interfaces) 120public static IEnumerable<INamedTypeSymbol> GetBaseTypes(this ITypeSymbol? type) 122var current = type?.BaseType; 140public static IEnumerable<INamedTypeSymbol> GetContainingTypes(this ITypeSymbol type) 142var current = type.ContainingType; 198var currentBaseType = type.BaseType; 227for (var b = symbol.BaseType; b != null; b = b.BaseType) 316INamedTypeSymbol n => ContainsAnonymousType(n), 321private static bool ContainsAnonymousType(INamedTypeSymbol type) 417public static INamedTypeSymbol? GetDelegateType(this ITypeSymbol? typeSymbol, Compilation compilation) 421var expressionOfT = compilation.ExpressionOfTType(); 424var typeArgument = ((INamedTypeSymbol)typeSymbol).TypeArguments[0]; 425return typeArgument as INamedTypeSymbol; 430return typeSymbol as INamedTypeSymbol; 583var n2 = t2 as INamedTypeSymbol; 585if (t1 is not INamedTypeSymbol n1) 635public static bool IsEnumType([NotNullWhen(true)] this ITypeSymbol? type, [NotNullWhen(true)] out INamedTypeSymbol? enumType) 639enumType = (INamedTypeSymbol)type; 731if (type is not INamedTypeSymbol 784=> type is INamedTypeSymbol 792=> symbol is INamedTypeSymbol 800=> type is INamedTypeSymbol namedType &&
Symbols\ITypeSymbolExtensions.MinimalAccessibilityVisitor.cs (2)
42foreach (var callingConventionType in symbol.Signature.UnmanagedCallingConventionTypes) 50public override Accessibility VisitNamedType(INamedTypeSymbol symbol)
Symbols\ITypeSymbolExtensions.SubstituteTypesVisitor.cs (1)
58public override ITypeSymbol VisitNamedType(INamedTypeSymbol symbol)
Symbols\ITypeSymbolExtensions.UnavailableTypeParameterRemover.cs (1)
43public override ITypeSymbol VisitNamedType(INamedTypeSymbol symbol)
Symbols\ITypeSymbolExtensions.UnnamedErrorTypeRemover.cs (1)
42public override ITypeSymbol VisitNamedType(INamedTypeSymbol symbol)
Symbols\SymbolEquivalenceComparer.cs (12)
149public bool ReturnTypeEquals(IMethodSymbol x, IMethodSymbol y, Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies = null) 164public bool Equals(ISymbol? x, ISymbol? y, Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies) 170private bool EqualsCore(ISymbol? x, ISymbol? y, Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies) 191private static bool IsConstructedFromSelf(INamedTypeSymbol symbol) 213private static OneOrMany<INamedTypeSymbol> Unwrap(INamedTypeSymbol namedType) 219using var builder = TemporaryArray<INamedTypeSymbol>.Empty; 224if (candidate is INamedTypeSymbol candidateType) 257private static TypeKind GetTypeKind(INamedTypeSymbol x)
Symbols\SymbolEquivalenceComparer.EquivalenceVisitor.cs (65)
22public bool AreEquivalent(ISymbol? x, ISymbol? y, Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies) 51return AreArrayAndReadOnlySpanEquivalent((IArrayTypeSymbol)x, (INamedTypeSymbol)y, equivalentTypesWithDifferingAssemblies); 55return AreArrayAndReadOnlySpanEquivalent((IArrayTypeSymbol)y, (INamedTypeSymbol)x, equivalentTypesWithDifferingAssemblies); 65private bool AreArrayAndReadOnlySpanEquivalent(IArrayTypeSymbol array, INamedTypeSymbol readOnlySpanType, Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies) 73internal bool AreEquivalent(CustomModifier x, CustomModifier y, Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies) 76internal bool AreEquivalent(ImmutableArray<CustomModifier> x, ImmutableArray<CustomModifier> y, Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies) 112private bool AreEquivalentWorker(ISymbol x, ISymbol y, SymbolKind k, Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies) 126SymbolKind.NamedType => NamedTypesAreEquivalent((INamedTypeSymbol)x, (INamedTypeSymbol)y, equivalentTypesWithDifferingAssemblies), 127SymbolKind.ErrorType => NamedTypesAreEquivalent((INamedTypeSymbol)x, (INamedTypeSymbol)y, equivalentTypesWithDifferingAssemblies), 140private bool ArrayTypesAreEquivalent(IArrayTypeSymbol x, IArrayTypeSymbol y, Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies) 152private bool FieldsAreEquivalent(IFieldSymbol x, IFieldSymbol y, Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies) 170private bool MethodsAreEquivalent(IMethodSymbol x, IMethodSymbol y, Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies, bool considerReturnRefKinds = false) 281private bool NamedTypesAreEquivalent(INamedTypeSymbol x, INamedTypeSymbol y, Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies) 301private bool NamedTypesAreEquivalentError(INamedTypeSymbol x, INamedTypeSymbol y, Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies) 303foreach (var type1 in Unwrap(x)) 306foreach (var type2 in Unwrap(y)) 330private bool HandleNamedTypesWorker(INamedTypeSymbol x, INamedTypeSymbol y, Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies) 418private bool HandleTupleTypes(INamedTypeSymbol x, INamedTypeSymbol y, Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies) 463Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies, 486internal bool ReturnTypesAreEquivalent(IMethodSymbol x, IMethodSymbol y, Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies = null) 492private bool TypeArgumentsAreEquivalent(ImmutableArray<ITypeSymbol> xTypeArguments, ImmutableArray<ITypeSymbol> yTypeArguments, Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies) 511private bool HandleAnonymousTypes(INamedTypeSymbol x, INamedTypeSymbol y, Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies) 547private bool NamespacesAreEquivalent(INamespaceSymbol x, INamespaceSymbol y, Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies) 564private bool ParametersAreEquivalent(IParameterSymbol x, IParameterSymbol y, Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies) 574private bool PointerTypesAreEquivalent(IPointerTypeSymbol x, IPointerTypeSymbol y, Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies) 581private bool FunctionPointerTypesAreEquivalent(IFunctionPointerTypeSymbol x, IFunctionPointerTypeSymbol y, Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies) 584private bool PropertiesAreEquivalent(IPropertySymbol x, IPropertySymbol y, Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies) 608private bool EventsAreEquivalent(IEventSymbol x, IEventSymbol y, Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies) 617private bool TypeParametersAreEquivalent(ITypeParameterSymbol x, ITypeParameterSymbol y, Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies)
Symbols\SymbolEquivalenceComparer.GetHashCodeVisitor.cs (5)
70SymbolKind.NamedType => CombineHashCodes((INamedTypeSymbol)x, currentHash), 146private int CombineHashCodes(INamedTypeSymbol x, int currentHash) 154if (candidate is INamedTypeSymbol candidateNamedType) 164private int CombineNamedTypeHashCode(INamedTypeSymbol x, int currentHash) 193private int CombineAnonymousTypeHashCode(INamedTypeSymbol x, int currentHash)
Symbols\SymbolEquivalenceComparer.ParameterSymbolEqualityComparer.cs (2)
23Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies,
Symbols\SymbolEquivalenceComparer.SignatureTypeSymbolEquivalenceComparer.cs (2)
18public bool Equals(ITypeSymbol? x, ITypeSymbol? y, Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies)
Microsoft.CodeAnalysis.ExternalAccess.OmniSharp (2)
ExtractClass\IOmniSharpExtractClassOptionsService.cs (1)
11OmniSharpExtractClassOptions? GetExtractClassOptions(Document document, INamedTypeSymbol originalType, ImmutableArray<ISymbol> selectedMembers);
Internal\ExtractClass\OmniSharpExtractClassOptionsService.cs (1)
26INamedTypeSymbol originalType,
Microsoft.CodeAnalysis.Features (829)
AddConstructorParametersFromMembers\AddConstructorParametersFromMembersCodeRefactoringProvider.cs (2)
110var containingType = state.ContainingType; 136Document document, CodeGenerationContextInfo info, ConstructorCandidate constructorCandidate, INamedTypeSymbol containingType, bool useSubMenuName)
AddConstructorParametersFromMembers\AddConstructorParametersFromMembersCodeRefactoringProvider.State.cs (2)
27public INamedTypeSymbol? ContainingType { get; private set; } 78INamedTypeSymbol containingType,
AddDebuggerDisplay\AbstractAddDebuggerDisplayCodeRefactoringProvider.cs (6)
47var debuggerAttributeTypeSymbol = compilation.GetTypeByMetadataName("System.Diagnostics.DebuggerDisplayAttribute"); 51var typeSymbol = (INamedTypeSymbol)semanticModel.GetRequiredDeclaredSymbol(type, cancellationToken); 113private async Task<Document> ApplyAsync(Document document, TTypeDeclarationSyntax type, INamedTypeSymbol debuggerAttributeTypeSymbol, CancellationToken cancellationToken) 158var typeSymbol = (INamedTypeSymbol)semanticModel.GetRequiredDeclaredSymbol(type, cancellationToken);
AddImport\AbstractAddImportCodeRefactoringProvider.cs (3)
120(SyntaxNode? qualifiedTypeReference, INamedTypeSymbol? namedType) GetQualifiedTypeReference() 140return (current, (INamedTypeSymbol)parentSymbol); 229if (symbol is INamedTypeSymbol namedType)
AddImport\SymbolReferenceFinder.cs (5)
172/// to the <see cref="INamespaceSymbol"/>s or <see cref="INamedTypeSymbol"/>s those types are 312if (propertyOrFieldType is INamedTypeSymbol propertyType && 320var namedTypeSymbols = OfType<INamedTypeSymbol>(symbolResults); 336private bool HasAccessibleStaticFieldOrProperty(INamedTypeSymbol namedType, string fieldOrPropertyName) 612if (member is INamedTypeSymbol)
ChangeSignature\AbstractChangeSignatureService.cs (4)
84protected abstract bool TryGetRecordPrimaryConstructor(INamedTypeSymbol typeSymbol, [NotNullWhen(true)] out IMethodSymbol? primaryConstructor); 116var containingType = method.ContainingType; 132if (symbol is INamedTypeSymbol typeSymbol) 299if (eventSymbol.Type is INamedTypeSymbol type && type.DelegateInvokeMethod != null)
CodeFixes\Suppression\AbstractSuppressionCodeFixProvider.cs (4)
53INamedTypeSymbol suppressMessageAttribute, 61SyntaxNode targetNode, ISymbol targetSymbol, INamedTypeSymbol suppressMessageAttribute, Diagnostic diagnostic); 195INamedTypeSymbol? suppressMessageAttribute = null; 295if (targetSymbol is INamedTypeSymbol { IsExtension: true })
CodeFixes\Suppression\AbstractSuppressionCodeFixProvider.GlobalSuppressMessageCodeAction.cs (2)
17INamedTypeSymbol suppressMessageAttribute, 21private readonly INamedTypeSymbol _suppressMessageAttribute = suppressMessageAttribute;
CodeFixes\Suppression\AbstractSuppressionCodeFixProvider.GlobalSuppressMessageFixAllCodeAction.cs (4)
27private readonly INamedTypeSymbol _suppressMessageAttribute; 32INamedTypeSymbol suppressMessageAttribute, 79var supressMessageAttribute = compilation.SuppressMessageAttributeType(); 107var suppressMessageAttribute = compilation.SuppressMessageAttributeType();
CodeFixes\Suppression\AbstractSuppressionCodeFixProvider.LocalSuppressMessageCodeAction.cs (2)
17INamedTypeSymbol suppressMessageAttribute, 24private readonly INamedTypeSymbol _suppressMessageAttribute = suppressMessageAttribute;
CodeRefactorings\MoveType\AbstractMoveTypeService.MoveTypeEditor.cs (2)
310var symbol = (INamedTypeSymbol)SemanticDocument.SemanticModel.GetRequiredDeclaredSymbol(node, CancellationToken);
CodeRefactorings\SyncNamespace\AbstractChangeNamespaceService.cs (2)
336if (memberSymbol is INamedTypeSymbol typeSymbol 523if (symbol is INamedTypeSymbol typeSymbol && typeSymbol.MightContainExtensionMethods)
Common\SymbolDisplayPartKindTags.cs (1)
11public static SymbolDisplayPartKind GetSymbolDisplayPartKind(this INamedTypeSymbol namedType)
Common\TaggedText.cs (1)
120else if (alias.Target is INamedTypeSymbol namedType)
Completion\Providers\AbstractDocCommentCompletionProvider.cs (2)
160if (symbol is { ContainingSymbol: INamedTypeSymbol { IsExtension: true } extension }) 251if (symbol is INamedTypeSymbol namedType && namedType.IsDelegateType())
Completion\Providers\AbstractInternalsVisibleToCompletionProvider.cs (1)
129var internalsVisibleToAttributeSymbol = semanticModel.Compilation.GetTypeByMetadataName(typeof(InternalsVisibleToAttribute).FullName!);
Completion\Providers\AbstractMemberInsertingCompletionProvider.cs (3)
40Document document, CompletionItem item, Compilation compilation, ISymbol member, INamedTypeSymbol containingType, CancellationToken cancellationToken); 129var containingType = semanticModel.GetEnclosingSymbol<INamedTypeSymbol>(line.Start, cancellationToken);
Completion\Providers\AbstractObjectInitializerCompletionProvider.cs (3)
35if (type is not INamedTypeSymbol initializedType) 41var enclosing = semanticModel.GetEnclosingNamedType(position, cancellationToken); 93protected virtual bool IsInitializableFieldOrProperty(ISymbol fieldOrProperty, INamedTypeSymbol containingType)
Completion\Providers\AbstractOverrideCompletionProvider.cs (1)
34Document document, CompletionItem completionItem, Compilation compilation, ISymbol overriddenMember, INamedTypeSymbol containingType, CancellationToken cancellationToken)
Completion\Providers\AbstractOverrideCompletionProvider.ItemGetter.cs (2)
94var containingType = semanticModel.GetEnclosingSymbol<INamedTypeSymbol>(startToken.SpanStart, CancellationToken);
Completion\Providers\AbstractPartialMethodCompletionProvider.cs (2)
59Document document, CompletionItem item, Compilation compilation, ISymbol member, INamedTypeSymbol containingType, CancellationToken cancellationToken) 84if (semanticModel.GetEnclosingSymbol(position, cancellationToken) is not INamedTypeSymbol enclosingSymbol)
Completion\Providers\AbstractPartialTypeCompletionProvider.cs (9)
41if (semanticModel.GetDeclaredSymbol(node, cancellationToken) is INamedTypeSymbol declaredSymbol) 61private CompletionItem CreateCompletionItem(INamedTypeSymbol symbol, TSyntaxContext context) 75protected abstract ImmutableArray<KeyValuePair<string, string>> GetProperties(INamedTypeSymbol symbol, TSyntaxContext context); 79protected abstract (string displayText, string suffix, string insertionText) GetDisplayAndSuffixAndInsertionText(INamedTypeSymbol symbol, TSyntaxContext context); 81protected virtual IEnumerable<INamedTypeSymbol>? LookupCandidateSymbols(TSyntaxContext context, INamedTypeSymbol declaredSymbol, CancellationToken cancellationToken) 94.OfType<INamedTypeSymbol>() 100private static bool InSameProject(INamedTypeSymbol symbol, Compilation compilation) 103private static bool NotNewDeclaredMember(INamedTypeSymbol symbol, TSyntaxContext context)
Completion\Providers\AbstractRecommendationServiceBasedCompletionProvider.cs (8)
47var taskType = context.SemanticModel.Compilation.TaskType(); 64var objectType = context.SemanticModel.Compilation.GetSpecialType(SpecialType.System_Object); 65var enumerableOfObjectType = context.SemanticModel.Compilation.IEnumerableOfTType()?.Construct(objectType); 66var asyncEnumerableOfObjectType = context.SemanticModel.Compilation.IAsyncEnumerableOfTType()?.Construct(objectType); 93INamedTypeSymbol? enumerableOfObjectType, 94INamedTypeSymbol? asyncEnumerableOfObjectType) 114if (symbol is not INamedTypeSymbol namedType || 139if (symbol is not INamedTypeSymbol namedType ||
Completion\Providers\AbstractSymbolCompletionProvider.cs (4)
55if (symbol is INamedTypeSymbol namedType) 91private static bool ShouldIncludeInTargetTypedCompletionListForNamedType(INamedTypeSymbol symbol, TSyntaxContext syntaxContext, Dictionary<ITypeSymbol, bool> typeConvertibilityCache) 106static bool IsConvertible(INamedTypeSymbol symbol, TSyntaxContext syntaxContext) 130var typeToCheck = symbol;
Completion\Providers\ImportCompletionProvider\AbstractTypeImportCompletionService.cs (7)
316foreach (var type in types) 354private readonly struct TypeOverloadInfo(INamedTypeSymbol nonGenericOverload, INamedTypeSymbol bestGenericOverload, bool containsPublicGenericOverload) 356public INamedTypeSymbol NonGenericOverload { get; } = nonGenericOverload; 359public INamedTypeSymbol BestGenericOverload { get; } = bestGenericOverload; 363public TypeOverloadInfo Aggregate(INamedTypeSymbol type) 371var newBestGenericOverload = BestGenericOverload == null || type.Arity < BestGenericOverload.Arity
Completion\Providers\ImportCompletionProvider\ExtensionMemberImportCompletionHelper.SymbolComputer.cs (7)
416var extensionStaticClass = TryGetViableExtensionStaticClass(fullyQualifiedContainerName); 427var extensionStaticClass = TryGetViableExtensionStaticClass(fullyQualifiedContainerName[..extensionDotIndex]); 439INamedTypeSymbol? extensionStaticClass, 453foreach (var extensionType in typesToExamine) 464INamedTypeSymbol? TryGetViableExtensionStaticClass(string staticClassName) 474var containerSymbol = assembly.GetTypeByMetadataName(staticClassName); 628case INamedTypeSymbol namedType:
Completion\Providers\ImportCompletionProvider\TypeImportCompletionCacheEntry.cs (1)
185public void AddItem(INamedTypeSymbol symbol, string containingNamespace, bool isPublic)
ConvertAnonymousType\AbstractConvertAnonymousTypeCodeRefactoringProvider.cs (3)
17protected static async Task<(TAnonymousObjectCreationExpressionSyntax?, INamedTypeSymbol?)> TryGetAnonymousObjectAsync( 30var anonymousType = semanticModel.GetTypeInfo(anonymousObject, cancellationToken).Type as INamedTypeSymbol;
ConvertAnonymousType\AbstractConvertAnonymousTypeToClassCodeRefactoringProvider.cs (8)
104var namedTypeSymbol = await GenerateFinalNamedTypeAsync( 178Document document, SyntaxEditor editor, INamedTypeSymbol classSymbol, 180INamedTypeSymbol anonymousType, CancellationToken cancellationToken) 214SyntaxEditor editor, INamedTypeSymbol classSymbol, 242private static async Task<INamedTypeSymbol> GenerateFinalNamedTypeAsync( 283var namedTypeWithoutMembers = CreateNamedType(typeName, isRecord: false, capturedTypeParameters, members: default); 312private static INamedTypeSymbol CreateNamedType( 321Document document, INamedTypeSymbol anonymousType)
ConvertAnonymousType\AbstractConvertAnonymousTypeToTupleCodeRefactoringProvider.cs (3)
75private IEnumerable<(TAnonymousObjectCreationExpressionSyntax node, INamedTypeSymbol symbol)> GetAllAnonymousTypesInContainer( 92if (semanticModel.GetTypeInfo(childNode, cancellationToken).Type is INamedTypeSymbol childType) 98Document document, TAnonymousObjectCreationExpressionSyntax creationNode, INamedTypeSymbol anonymousType, bool allAnonymousTypes, CancellationToken cancellationToken)
ConvertForEachToFor\AbstractConvertForEachToForCodeRefactoringProvider.cs (3)
241var charType = model.Compilation.GetSpecialType(SpecialType.System_Char); 293foreach (var current in collectionType.AllInterfaces) 351foreach (var current in interfaceType.GetAllInterfacesIncludingThis())
ConvertForToForEach\AbstractConvertForToForEachCodeRefactoringProvider.cs (16)
108var containingType = semanticModel.GetEnclosingNamedType(textSpan.Start, cancellationToken); 112var ienumerableType = semanticModel.Compilation.GetSpecialType(SpecialType.System_Collections_Generic_IEnumerable_T); 113var ienumeratorType = semanticModel.Compilation.GetSpecialType(SpecialType.System_Collections_Generic_IEnumerator_T); 234INamedTypeSymbol containingType, ITypeSymbol type, string memberName) where TSymbol : class, ISymbol 241INamedTypeSymbol containingType, ITypeSymbol type, string memberName) where TSymbol : class, ISymbol 247INamedTypeSymbol containingType, ITypeSymbol collectionType, 248INamedTypeSymbol ienumerableType, INamedTypeSymbol ienumeratorType, 269var instantiatedIEnumerableType = collectionType.GetAllInterfacesIncludingThis().FirstOrDefault( 283INamedTypeSymbol containingType, IMethodSymbol getEnumeratorMethod, 284INamedTypeSymbol ienumeratorType, [NotNullWhen(true)] out ITypeSymbol? iterationType) 298var instantiatedIEnumeratorType = getEnumeratorReturnType.GetAllInterfacesIncludingThis().FirstOrDefault( 316INamedTypeSymbol containingType, 502INamedTypeSymbol containingType, 504INamedTypeSymbol ienumerableType) 526foreach (var interfaceType in collectionType.GetAllInterfacesIncludingThis())
ConvertToInterpolatedString\AbstractConvertPlaceholderToInterpolatedStringRefactoringProvider.cs (1)
132var stringType = semanticModel.Compilation.GetSpecialType(SpecialType.System_String);
ConvertTupleToStruct\AbstractConvertTupleToStructCodeRefactoringProvider.cs (26)
183private static async Task<(SyntaxNode, INamedTypeSymbol)> TryGetTupleInfoAsync( 207var tupleType = semanticModel.GetTypeInfo(expressionOrType, cancellationToken).Type as INamedTypeSymbol; 299var namedTypeSymbol = await GenerateFinalNamedTypeAsync( 327SyntaxNode tupleExprOrTypeNode, INamedTypeSymbol tupleType, 420INamedTypeSymbol tupleType, Scope scope, CancellationToken cancellationToken) 436Project startingProject, INamedTypeSymbol tupleType, CancellationToken cancellationToken) 478Project project, INamedTypeSymbol tupleType, CancellationToken cancellationToken) 526var typeSymbol = (INamedTypeSymbol)semanticModel.GetRequiredDeclaredSymbol(containingType, cancellationToken); 553Document document, SyntaxNode tupleExprOrTypeNode, INamedTypeSymbol namedTypeSymbol, 615SyntaxNode startingNode, INamedTypeSymbol tupleType, TNameSyntax fullyQualifiedStructName, 635SyntaxNode startingNode, INamedTypeSymbol tupleType, TNameSyntax qualifiedTypeName, 649if (semanticModel.GetTypeInfo(childCreation, cancellationToken).Type is not INamedTypeSymbol childType) 666private static bool AreEquivalent(StringComparer comparer, INamedTypeSymbol tupleType, INamedTypeSymbol childType) 749INamedTypeSymbol tupleType, TNameSyntax qualifiedTypeName, 762if (semanticModel.GetTypeInfo(childTupleType, cancellationToken).Type is not INamedTypeSymbol childType) 798private static async Task<INamedTypeSymbol> GenerateFinalNamedTypeAsync( 800INamedTypeSymbol tupleType, NamingRule parameterNamingRule, CancellationToken cancellationToken) 812var namedTypeWithoutMembers = CreateNamedType( 848var namedTypeSymbol = CreateNamedType( 855INamedTypeSymbol tupleType, IMethodSymbol constructor) 881INamedTypeSymbol tupleType, INamedTypeSymbol structType) 908private static INamedTypeSymbol CreateNamedType(
Debugging\AbstractBreakpointResolver.cs (7)
75protected abstract IEnumerable<ISymbol> GetMembers(INamedTypeSymbol type, string name); 164case INamedTypeSymbol typeSymbol: 172private static bool MatchesNames(INamedTypeSymbol type, NameAndArity[] names, IEqualityComparer<string> comparer) 211private IEnumerable<ISymbol> FindMembers(IEnumerable<INamedTypeSymbol> types, NameAndArity nameAndArity) 224private async Task<IEnumerable<INamedTypeSymbol>> GetAllTypesAsync(CancellationToken cancellationToken) 291private static IEnumerable<INamedTypeSymbol> GetTypeMembersRecursive(INamespaceOrTypeSymbol container) 295INamedTypeSymbol typeSymbol => typeSymbol.GetTypeMembers().SelectMany(GetTypeMembersRecursive).Concat(typeSymbol),
DesignerAttribute\DesignerAttributeDiscoveryService.cs (7)
305var firstClassType = (INamedTypeSymbol)semanticModel.GetRequiredDeclaredSymbol(firstClass, cancellationToken); 327static IEnumerable<ITypeSymbol> GetBaseTypesAndThis(Compilation compilation, INamedTypeSymbol firstType) 329var current = firstType; 340static INamedTypeSymbol? TryMapToNonErrorType(Compilation compilation, IErrorTypeSymbol errorType) 344var wellKnownType = compilation.GetTypeByMetadataName($"{wellKnownNamespace}.{errorType.Name}"); 354static bool IsDesignerAttribute(INamedTypeSymbol? attributeClass)
DocumentHighlighting\AbstractDocumentHighlightsService.cs (1)
293return !((INamedTypeSymbol)symbol).IsScriptClass;
EditAndContinue\AbstractEditAndContinueAnalyzer.cs (78)
314SymbolKind.NamedType => GetDisplayName((INamedTypeSymbol)symbol), 328internal virtual string GetDisplayName(INamedTypeSymbol symbol) 496internal abstract bool IsPartial(INamedTypeSymbol type); 2618protected static bool BaseTypesEquivalent(INamedTypeSymbol oldType, INamedTypeSymbol newType, bool exact) 2655case SymbolKind.NamedType when oldMember is INamedTypeSymbol { DelegateInvokeMethod: { } oldInvokeMethod }: 2656var newInvokeMethod = ((INamedTypeSymbol)newMember).DelegateInvokeMethod; 2669private sealed class MemberInitializationUpdates(INamedTypeSymbol oldType) 2671public readonly INamedTypeSymbol OldType = oldType; 2719PooledDictionary<INamedTypeSymbol, MemberInitializationUpdates>? instanceConstructorEdits = null; 2720PooledDictionary<INamedTypeSymbol, MemberInitializationUpdates>? staticConstructorEdits = null; 2749Debug.Assert(oldSymbol is INamedTypeSymbol); 2750Debug.Assert(newSymbol is INamedTypeSymbol); 2831var oldContainingType = oldSymbol?.ContainingType; 2832var newContainingType = newSymbol?.ContainingType; 2833var containingType = newContainingType ?? oldContainingType; 2838oldContainingType ??= (INamedTypeSymbol?)containingTypeSymbolKey.Resolve(oldModel.Compilation, cancellationToken: cancellationToken).Symbol; 2839newContainingType ??= (INamedTypeSymbol?)containingTypeSymbolKey.Resolve(newModel.Compilation, cancellationToken: cancellationToken).Symbol; 2864if (syntacticEditKind != EditKind.Delete && oldSymbol is INamedTypeSymbol oldType && newSymbol is INamedTypeSymbol newType && IsReloadable(oldType)) 2966Debug.Assert(oldSymbol is INamedTypeSymbol); 2979var oldContainingType = oldSymbol.ContainingType; 2981var newContainingType = (INamedTypeSymbol?)containingTypeKey.Resolve(newModel.Compilation, cancellationToken: cancellationToken).Symbol; 3063INamedTypeSymbol? oldContainingType; 3064var newContainingType = newSymbol.ContainingType; 3106oldContainingType = containingTypeKey.Resolve(oldModel.Compilation, cancellationToken: cancellationToken).Symbol as INamedTypeSymbol; 3179Contract.ThrowIfFalse(newSymbol is INamedTypeSymbol || IsGlobalMain(newSymbol)); 3181if (!capabilities.GrantNewTypeDefinition((newSymbol as INamedTypeSymbol) ?? newSymbol.ContainingType)) 3448if (oldSymbol is not INamedTypeSymbol { TypeKind: TypeKind.Delegate }) 3463INamedTypeSymbol { IsGenericType: false } or // changes in type parameter attributes and constraints need type update 3519var oldContainingType = oldSymbol.ContainingType; 3520var newContainingType = newSymbol.ContainingType; 3656INamedTypeSymbol oldType, 3657INamedTypeSymbol newType, 3663Dictionary<INamedTypeSymbol, MemberInitializationUpdates> constructorEdits; 3666constructorEdits = staticConstructorEdits ??= PooledDictionary<INamedTypeSymbol, MemberInitializationUpdates>.GetInstance(); 3670constructorEdits = instanceConstructorEdits ??= PooledDictionary<INamedTypeSymbol, MemberInitializationUpdates>.GetInstance(); 3715=> IsMember(symbol) || symbol is INamedTypeSymbol { TypeKind: TypeKind.Delegate }; 3748INamedTypeSymbol otherContainingType, 4050using var _3 = PooledHashSet<INamedTypeSymbol>.GetInstance(out var processedTypes); 4058var oldType = (INamedTypeSymbol)GetRequiredDeclaredSymbol(oldModel.RequiredModel, oldTypeDeclaration, cancellationToken); 4089var newType = (INamedTypeSymbol)GetRequiredDeclaredSymbol(newModel.RequiredModel, newTypeDeclaration, cancellationToken); 4156private static bool IsReloadable(INamedTypeSymbol type) 4159private static INamedTypeSymbol? TryGetOutermostReloadableType(INamedTypeSymbol type) 4172INamedTypeSymbol? oldContainingType, 4173INamedTypeSymbol? newContainingType, 4202private static bool TypeOrBaseTypeHasCompilerServicesAttribute(INamedTypeSymbol type, string attributeName) 4204var current = type; 4534else if (oldSymbol is INamedTypeSymbol oldType && newSymbol is INamedTypeSymbol newType) 4622oldSymbol is not INamedTypeSymbol and not ITypeParameterSymbol and not IParameterSymbol && 4639if (current is INamedTypeSymbol { IsExtension: true }) 4655private static void AnalyzeBaseTypes(INamedTypeSymbol oldType, INamedTypeSymbol newType, ref RudeEditKind rudeEdit, ref bool hasGeneratedAttributeChange) 4762newParameter.ContainingType is INamedTypeSymbol { TypeKind: TypeKind.Delegate } newContainingDelegateType) 4770if (hasReturnTypeAttributeChange && newSymbol is INamedTypeSymbol { TypeKind: TypeKind.Delegate } newDelegateType) 4822private static void AddDelegateMethodEdit(ArrayBuilder<SemanticEditInfo> semanticEdits, INamedTypeSymbol delegateType, string methodName, CancellationToken cancellationToken) 4852else if (oldSymbol is INamedTypeSymbol { DelegateInvokeMethod: not null and var oldInvokeMethod } && 4853newSymbol is INamedTypeSymbol { DelegateInvokeMethod: not null and var newInvokeMethod }) 5022static bool IsSecurityAttribute(INamedTypeSymbol namedTypeSymbol) 5026var symbol = namedTypeSymbol; 5091INamedTypeSymbol recordType, 5106private static IEnumerable<ISymbol> GetRecordUpdatedSynthesizedMethods(Compilation compilation, INamedTypeSymbol record) 5373if (newSymbol.ContainingType is INamedTypeSymbol { IsComImport: true }) 5433private static bool HasExplicitOrSequentialLayout(INamedTypeSymbol type, DocumentSemanticModel model) 5452var layoutAttribute = model.Compilation.GetTypeByMetadataName(typeof(StructLayoutAttribute).FullName!); 5562IReadOnlyDictionary<INamedTypeSymbol, MemberInitializationUpdates> updatedTypes, 5576var oldType = updatesInCurrentDocument.OldType; 5771private bool AnyMemberInitializerBody(INamedTypeSymbol type, Func<MemberBody, bool> predicate, bool isStatic, CancellationToken cancellationToken) 5792private static IMethodSymbol? TryGetParameterlessConstructor(INamedTypeSymbol type, bool isStatic) 5813=> symbol is INamedTypeSymbol && 6345static bool IsCapturedPrimaryParameterCapturedInType(IParameterSymbol capture, INamedTypeSymbol otherType) 7010if (current is INamedTypeSymbol { Arity: > 0 }) 7046public IMethodSymbol? GetPrimaryConstructor(INamedTypeSymbol typeSymbol, CancellationToken cancellationToken)
EditAndContinue\EditAndContinueCapabilitiesGrantor.cs (1)
22public bool GrantNewTypeDefinition(INamedTypeSymbol type)
EditAndContinue\Utilities\Extensions.cs (2)
210public static bool HasSynthesizedDefaultConstructor(this INamedTypeSymbol type) 279public static bool HasExplicitlyImplementedInterfaceMember(this INamedTypeSymbol type)
EmbeddedLanguages\DateAndTime\LanguageServices\DateAndTimeLanguageDetector.cs (2)
37private INamedTypeSymbol? _dateTimeType; 38private INamedTypeSymbol? _dateTimeOffsetType;
EmbeddedLanguages\EmbeddedLanguageDetector.cs (1)
175var iformattable = type.AllInterfaces.FirstOrDefault(t => t is
EmbeddedLanguages\Json\LanguageServices\JsonLanguageDetector.cs (2)
24ISet<INamedTypeSymbol> typesOfInterest) 50private readonly ISet<INamedTypeSymbol> _typesOfInterest = typesOfInterest;
EmbeddedLanguages\RegularExpressions\LanguageServices\RegexLanguageDetector.cs (5)
26INamedTypeSymbol? regexType, 37var regexType = compilation.GetTypeByMetadataName(typeof(Regex).FullName!); 45private readonly INamedTypeSymbol? _regexType = regexType; 54private static HashSet<string> GetMethodNamesOfInterest(INamedTypeSymbol? regexType, ISyntaxFacts syntaxFacts) 144INamedTypeSymbol regexType,
EncapsulateField\AbstractEncapsulateFieldService.cs (4)
43protected abstract IEnumerable<TConstructorDeclarationSyntax> GetConstructorNodes(INamedTypeSymbol containingType); 311private ISet<(DocumentId documentId, TextSpan span)> GetConstructorLocations(Solution solution, INamedTypeSymbol containingType) 332var destination = field.ContainingType; 341INamedTypeSymbol containingSymbol,
ExternalAccess\UnitTesting\SolutionCrawler\UnitTestingWorkCoordinator.UnitTestingSemanticChangeProcessor.cs (1)
153var typeSymbol = symbol.ContainingType;
ExtractClass\AbstractExtractClassRefactoringProvider.cs (3)
75var containingType = selectedMembers.First().ContainingType; 122if (semanticModel.GetDeclaredSymbol(selectedClassNode, cancellationToken) is not INamedTypeSymbol selectedType) 137private static bool HasBaseType(INamedTypeSymbol containingType) => containingType.BaseType?.SpecialType != SpecialType.System_Object;
ExtractClass\ExtractClassWithDialogCodeAction.cs (8)
30INamedTypeSymbol selectedType, 37private readonly INamedTypeSymbol _selectedType = selectedType; 84var newType = CodeGenerationSymbolFactory.CreateNamedTypeSymbol( 128var newTypeAfterEdits = await GetNewTypeSymbolAsync(documentWithTypeDeclaration, typeAnnotation, cancellationToken).ConfigureAwait(false); 143INamedTypeSymbol newType, 216private static async Task<INamedTypeSymbol> GetNewTypeSymbolAsync(Document document, SyntaxAnnotation typeAnnotation, CancellationToken cancellationToken) 222return (INamedTypeSymbol)semanticModel.GetRequiredDeclaredSymbol(declarationNode, cancellationToken); 228INamedTypeSymbol newType,
ExtractClass\IExtractClassOptionsService.cs (1)
16INamedTypeSymbol originalType,
ExtractInterface\AbstractExtractInterfaceService.cs (10)
38INamedTypeSymbol extractedInterfaceSymbol, 39INamedTypeSymbol typeToExtractFrom, 44internal abstract string GetContainingNamespaceDisplay(INamedTypeSymbol typeSymbol, CompilationOptions compilationOptions); 92if (semanticModel.GetDeclaredSymbol(typeNode, cancellationToken) is not INamedTypeSymbol { TypeKind: not TypeKind.Extension } typeToExtractFrom) 140var extractedInterfaceSymbol = CodeGenerationSymbolFactory.CreateNamedTypeSymbol( 174Solution solution, string containingNamespaceDisplay, INamedTypeSymbol extractedInterfaceSymbol, 216Solution solution, ExtractInterfaceTypeAnalysisResult refactoringResult, INamedTypeSymbol extractedInterfaceSymbol, 256INamedTypeSymbol type, 314INamedTypeSymbol typeToExtractFrom, 315INamedTypeSymbol extractedInterfaceSymbol,
ExtractInterface\ExtractInterfaceTypeAnalysisResult.cs (2)
17public readonly INamedTypeSymbol TypeToExtractFrom; 25INamedTypeSymbol typeToExtractFrom,
ExtractMethod\ExtractMethodFlowControlInformation.cs (1)
61var controlFlowValueType = compilation.GetSpecialType(SpecialType.System_Void);
ExtractMethod\MethodExtractor.Analyzer.cs (2)
829if (type is not INamedTypeSymbol constructedType) 853else if (arguments[i] is INamedTypeSymbol candidate)
ExtractMethod\MethodExtractor.TypeParameterCollector.cs (1)
52public override void VisitNamedType(INamedTypeSymbol namedTypeSymbol)
FindUsages\AbstractFindUsagesService_FindImplementations.cs (1)
198else if (symbol is INamedTypeSymbol { TypeKind: TypeKind.Class } namedType)
FindUsages\FindUsagesHelpers.cs (1)
44if (preferPrimaryConstructor && symbol is INamedTypeSymbol namedType)
FullyQualify\AbstractFullyQualifyService.cs (4)
133.OfType<INamedTypeSymbol>() 229bool looksGeneric, INamedTypeSymbol searchResult) 265=> symbol.ContainingSymbol is INamespaceSymbol or INamedTypeSymbol { IsGenericType: false }; 310.Where(n => n.Symbol is INamedTypeSymbol or INamespaceSymbol { IsGlobalNamespace: false })
FullyQualify\AbstractFullyQualifyService.SymbolResult.cs (2)
48Debug.Assert(Symbol is INamespaceSymbol || !((INamedTypeSymbol)Symbol).IsGenericType); 49Debug.Assert(other.Symbol is INamespaceSymbol || !((INamedTypeSymbol)other.Symbol).IsGenericType);
GenerateComparisonOperators\GenerateComparisonOperatorsCodeRefactoringProvider.cs (16)
61var comparableType = compilation.GetTypeByMetadataName(typeof(IComparable<>).FullName!); 65if (semanticModel.GetDeclaredSymbol(typeDeclaration, cancellationToken) is not INamedTypeSymbol containingType) 68using var _1 = ArrayBuilder<INamedTypeSymbol>.GetInstance(out var missingComparableTypes); 70foreach (var iface in containingType.Interfaces) 94var missingType = missingComparableTypes[0]; 104foreach (var missingType in missingComparableTypes) 120private static IMethodSymbol? TryGetCompareMethodImpl(INamedTypeSymbol containingType, ITypeSymbol comparableType) 134INamedTypeSymbol comparableType, 139var containingType = (INamedTypeSymbol)semanticModel.GetRequiredDeclaredSymbol(typeDeclaration, cancellationToken); 158INamedTypeSymbol comparableType, 175INamedTypeSymbol containingType, 176INamedTypeSymbol comparableType, 181var boolType = compilation.GetSpecialType(SpecialType.System_Boolean); 227private static bool HasAllComparisonOperators(INamedTypeSymbol containingType, ITypeSymbol comparedType) 238private static bool HasComparisonOperator(INamedTypeSymbol containingType, ITypeSymbol comparedType, CodeGenerationOperatorKind kind)
GenerateConstructors\AbstractGenerateConstructorsCodeRefactoringProvider.cs (3)
61protected abstract bool ContainingTypesOrSelfHasUnsafeKeyword(INamedTypeSymbol containingType); 211var containingType = semanticModel.GetDeclaredSymbol(typeDeclaration, cancellationToken: cancellationToken) as INamedTypeSymbol;
GenerateConstructors\AbstractGenerateConstructorsCodeRefactoringProvider.GenerateConstructorWithDialogCodeAction.cs (2)
26INamedTypeSymbol containingType, 32private readonly INamedTypeSymbol _containingType = containingType;
GenerateConstructors\AbstractGenerateConstructorsCodeRefactoringProvider.State.cs (5)
29public INamedTypeSymbol? ContainingType { get; private set; } 39INamedTypeSymbol containingType, 55INamedTypeSymbol containingType, 97INamedTypeSymbol containingType, 113private static IMethodSymbol? GetMatchingConstructorBasedOnParameterTypes(INamedTypeSymbol containingType, ImmutableArray<(IParameterSymbol parameter, ISymbol fieldOrProperty)> parameters)
GenerateEqualsAndGetHashCodeFromMembers\AbstractGenerateEqualsAndGetHashCodeService.cs (9)
39Document document, INamedTypeSymbol namedType, ImmutableArray<ISymbol> members, 51Document document, INamedTypeSymbol namedType, 52ImmutableArray<ISymbol> members, INamedTypeSymbol constructedEquatableType, CancellationToken cancellationToken) 62Document document, INamedTypeSymbol containingType, CancellationToken cancellationToken) 117Document document, INamedTypeSymbol namedType, 128INamedTypeSymbol namedType, ImmutableArray<ISymbol> members) 148INamedTypeSymbol namedType, ImmutableArray<ISymbol> members) 151var hashCodeType = compilation.GetTypeByMetadataName("System.HashCode"); 182var valueTupleType = compilation.GetTypeByMetadataName(typeof(ValueTuple).FullName!);
GenerateEqualsAndGetHashCodeFromMembers\GenerateEqualsAndGetHashCodeAction.cs (6)
24INamedTypeSymbol containingType, 42private readonly INamedTypeSymbol _containingType = containingType; 56var constructedTypeToImplement = await GetConstructedTypeToImplementAsync(cancellationToken).ConfigureAwait(false); 96private async Task<INamedTypeSymbol?> GetConstructedTypeToImplementAsync(CancellationToken cancellationToken) 102var equatableType = semanticModel.Compilation.GetTypeByMetadataName(typeof(IEquatable<>).FullName!); 201private async Task<IMethodSymbol> CreateIEquatableEqualsMethodAsync(INamedTypeSymbol constructedEquatableType, CancellationToken cancellationToken)
GenerateEqualsAndGetHashCodeFromMembers\GenerateEqualsAndGetHashCodeFromMembersCodeRefactoringProvider.cs (13)
89var containingType = semanticModel.GetDeclaredSymbol(typeDeclaration) as INamedTypeSymbol; 122private static bool HasOperators(INamedTypeSymbol containingType) 126private static bool HasOperator(INamedTypeSymbol containingType, string operatorName) 135SemanticModel semanticModel, INamedTypeSymbol containingType, 136[NotNullWhen(true)] out INamedTypeSymbol? constructedType) 142var equatableTypeOpt = semanticModel.Compilation.GetTypeByMetadataName(typeof(IEquatable<>).FullName!); 157private static void GetExistingMemberInfo(INamedTypeSymbol containingType, out bool hasEquals, out bool hasGetHashCode) 200Document document, SyntaxNode typeDeclaration, INamedTypeSymbol containingType, ImmutableArray<ISymbol> selectedMembers, 240Document document, SyntaxNode typeDeclaration, INamedTypeSymbol containingType, ImmutableArray<ISymbol> members, 257Document document, SyntaxNode typeDeclaration, INamedTypeSymbol containingType, ImmutableArray<ISymbol> members, 265if (CanImplementIEquatable(semanticModel, containingType, out var equatableTypeOpt)) 294Document document, SyntaxNode typeDeclaration, INamedTypeSymbol containingType, ImmutableArray<ISymbol> members,
GenerateEqualsAndGetHashCodeFromMembers\GenerateEqualsAndHashWithDialogCodeAction.cs (2)
24INamedTypeSymbol containingType, 36private readonly INamedTypeSymbol _containingType = containingType;
GenerateEqualsAndGetHashCodeFromMembers\IGenerateEqualsAndGetHashCodeService.cs (5)
29Task<IMethodSymbol> GenerateEqualsMethodAsync(Document document, INamedTypeSymbol namedType, ImmutableArray<ISymbol> members, string? localNameOpt, CancellationToken cancellationToken); 35Task<IMethodSymbol> GenerateEqualsMethodThroughIEquatableEqualsAsync(Document document, INamedTypeSymbol namedType, CancellationToken cancellationToken); 41Task<IMethodSymbol> GenerateIEquatableEqualsMethodAsync(Document document, INamedTypeSymbol namedType, ImmutableArray<ISymbol> members, INamedTypeSymbol constructedEquatableType, CancellationToken cancellationToken); 50Task<IMethodSymbol> GenerateGetHashCodeMethodAsync(Document document, INamedTypeSymbol namedType, ImmutableArray<ISymbol> members, CancellationToken cancellationToken);
GenerateEqualsAndGetHashCodeFromMembers\IGenerateEqualsAndGetHashCodeServiceExtensions.cs (1)
14this IGenerateEqualsAndGetHashCodeService service, Document document, INamedTypeSymbol namedType,
GenerateFromMembers\GenerateFromMembersHelpers.cs (1)
38var containingType = selectedMembers.First().ContainingType;
GenerateFromMembers\SelectedMemberInfo.cs (2)
10INamedTypeSymbol containingType, 14public readonly INamedTypeSymbol ContainingType = containingType;
GenerateOverrides\GenerateOverridesCodeRefactoringProvider.cs (2)
49var containingType = (INamedTypeSymbol)semanticModel.GetRequiredDeclaredSymbol(typeDeclaration, cancellationToken);
GenerateOverrides\GenerateOverridesWithDialogCodeAction.cs (2)
27INamedTypeSymbol containingType, 32private readonly INamedTypeSymbol _containingType = containingType;
GenerateType\AbstractGenerateTypeService.cs (3)
45protected abstract INamedTypeSymbol DetermineTypeToGenerateIn(SemanticModel semanticModel, TSimpleNameSyntax simpleName, CancellationToken cancellationToken); 65public abstract Task<(INamespaceSymbol, INamespaceOrTypeSymbol, Location)> GetOrGenerateEnclosingNamespaceSymbolAsync(INamedTypeSymbol namedTypeSymbol, string[] containers, Document selectedDocument, SyntaxNode selectedDocumentRoot, CancellationToken cancellationToken); 249var outerTypeSymbol = semanticModel.GetEnclosingNamedType(state.SimpleName.SpanStart, cancellationToken);
GenerateType\AbstractGenerateTypeService.Editor.cs (6)
93var namedType = await GenerateNamedTypeAsync().ConfigureAwait(false); 124var namedType = await GenerateNamedTypeAsync(_generateTypeOptionsResult).ConfigureAwait(false); 262INamedTypeSymbol namedType, 386private async Task<ImmutableArray<CodeActionOperation>> GetGenerateIntoContainingNamespaceOperationsAsync(INamedTypeSymbol namedType) 404INamedTypeSymbol namedType, 548private async Task<ImmutableArray<CodeActionOperation>> GetGenerateIntoTypeOperationsAsync(INamedTypeSymbol namedType)
GenerateType\AbstractGenerateTypeService.GenerateNamedType.cs (10)
27private async Task<INamedTypeSymbol> GenerateNamedTypeAsync() 41private async Task<INamedTypeSymbol> GenerateNamedTypeAsync(GenerateTypeOptionsResult options) 237var exceptionType = _semanticDocument.SemanticModel.Compilation.ExceptionType(); 258var serializableType = _semanticDocument.SemanticModel.Compilation.SerializableAttributeType(); 275private INamedTypeSymbol DetermineBaseType() 285private ImmutableArray<INamedTypeSymbol> DetermineInterfaces() 289var type = RemoveUnavailableTypeParameters(_state.BaseTypeOrInterfaceOpt); 299private INamedTypeSymbol RemoveUnavailableTypeParameters(INamedTypeSymbol type) 302_semanticDocument.SemanticModel.Compilation, GetAvailableTypeParameters()) as INamedTypeSymbol;
GenerateType\AbstractGenerateTypeService.State.cs (8)
42public INamedTypeSymbol? TypeToGenerateInOpt { get; private set; } 48public INamedTypeSymbol? BaseTypeOrInterfaceOpt { get; private set; } 238SetBaseType(baseType as INamedTypeSymbol); 244private void SetBaseType(INamedTypeSymbol? baseType) 271BaseTypeOrInterfaceOpt = (INamedTypeSymbol)baseType.WithNullableAnnotation(NullableAnnotation.None); 309if (symbol is not INamedTypeSymbol namedType) 410else if (symbol is INamedTypeSymbol) 413TypeToGenerateInOpt = (INamedTypeSymbol)symbol.OriginalDefinition;
GenerateType\IGenerateTypeService.cs (1)
16Task<(INamespaceSymbol, INamespaceOrTypeSymbol, Location)> GetOrGenerateEnclosingNamespaceSymbolAsync(INamedTypeSymbol namedTypeSymbol, string[] containers, Document selectedDocument, SyntaxNode selectedDocumentRoot, CancellationToken cancellationToken);
GoToBase\AbstractGoToBaseService.cs (1)
22var baseType = constructor.ContainingType.BaseType;
GoToBase\FindBaseHelpers.cs (1)
16if (symbol is INamedTypeSymbol
InheritanceMargin\AbstractInheritanceMarginService.cs (1)
71if (symbol is INamedTypeSymbol namedType)
InheritanceMargin\AbstractInheritanceMarginService_Helpers.cs (5)
63if (symbol is INamedTypeSymbol namedTypeSymbol) 291INamedTypeSymbol memberSymbol, 410INamedTypeSymbol interfaceSymbol, 475INamedTypeSymbol memberSymbol, 670if (memberSymbol is INamedTypeSymbol)
InitializeParameter\AbstractAddParameterCheckCodeRefactoringProvider.cs (9)
422var enumType = compilation.GetSpecialType(SpecialType.System_Enum); 442var flagsAttributeType = compilation.GetBestTypeByMetadataName(typeof(FlagsAttribute).FullName!); 642var enumType = compilation.GetSpecialType(SpecialType.System_Enum); 693var argumentNullExceptionType = semanticModel.Compilation.ArgumentNullExceptionType(); 717var argumentOutOfRangeExceptionType = compilation.ArgumentOutOfRangeExceptionType(); 759var argumentExceptionType = compilation.ArgumentExceptionType(); 776var stringType = compilation.GetSpecialType(SpecialType.System_String); 909var containingType = parameter.ContainingType; 945var typeSymbol = compilation.GetTypeByMetadataName(fullName);
InitializeParameter\AbstractInitializeMemberFromParameterCodeRefactoringProviderMemberCreation.cs (3)
45protected abstract Accessibility DetermineDefaultFieldAccessibility(INamedTypeSymbol containingType); 578var containingType = parameter.ContainingType; 620var containingType = parameter.ContainingType;
InlineHints\AbstractInlineTypeHintsService.cs (2)
107HashSet<INamedTypeSymbol>? seenSymbols = null) 113if (part.Symbol is INamedTypeSymbol { IsAnonymousType: true } anonymousType)
IntroduceParameter\AbstractIntroduceParameterCodeRefactoringProvider.cs (1)
83if (expressionSymbol is INamedTypeSymbol or ITypeParameterSymbol)
IntroduceUsingStatement\AbstractIntroduceUsingStatementCodeRefactoringProvider.cs (2)
68var disposableType = semanticModel.Compilation.GetSpecialType(SpecialType.System_IDisposable); 105var disposableType = semanticModel.Compilation.GetSpecialType(SpecialType.System_IDisposable);
IntroduceVariable\AbstractIntroduceLocalForExpressionCodeRefactoringProvider.cs (2)
30Document document, INamedTypeSymbol tupleType, TExpressionSyntax expression, CancellationToken cancellationToken); 113document, (INamedTypeSymbol)type, expression, cancellationToken).ConfigureAwait(false);
IntroduceVariable\AbstractIntroduceVariableService.cs (1)
270var declaringType = semanticModel.GetEnclosingNamedType(expression.SpanStart, cancellationToken);
IntroduceVariable\AbstractIntroduceVariableService.State.cs (2)
91var containingType = Expression.AncestorsAndSelf() 93.OfType<INamedTypeSymbol>()
LanguageServices\AnonymousTypeDisplayService\AbstractStructuralTypeDisplayService.cs (17)
24protected abstract ImmutableArray<SymbolDisplayPart> GetNormalAnonymousTypeParts(INamedTypeSymbol anonymousType, SemanticModel semanticModel, int position); 26public ImmutableArray<SymbolDisplayPart> GetAnonymousTypeParts(INamedTypeSymbol anonymousType, SemanticModel semanticModel, int position) 32INamedTypeSymbol anonymousType, 64ImmutableArray<INamedTypeSymbol> directStructuralTypeReferences, 71SpecializedCollections.EmptyDictionary<INamedTypeSymbol, string>(), 93var structuralType = transitiveStructuralTypeReferences[i]; 121private static Dictionary<INamedTypeSymbol, string> GenerateStructuralTypeNames( 122IList<INamedTypeSymbol> anonymousTypes) 125var anonymousTypeToName = new Dictionary<INamedTypeSymbol, string>(); 126foreach (var type in anonymousTypes) 146private static ImmutableArray<INamedTypeSymbol> OrderStructuralTypes( 147ImmutableArray<INamedTypeSymbol> structuralTypes, 186private static ImmutableArray<INamedTypeSymbol> GetTransitiveStructuralTypeReferences( 187ImmutableArray<INamedTypeSymbol> structuralTypes) 189var transitiveReferences = new Dictionary<INamedTypeSymbol, (int order, int count)>(); 192foreach (var type in structuralTypes) 199using var _ = ArrayBuilder<INamedTypeSymbol>.GetInstance(out var result);
LanguageServices\AnonymousTypeDisplayService\AbstractStructuralTypeDisplayService.StructuralTypeCollectorVisitor.cs (5)
13private sealed class StructuralTypeCollectorVisitor(Dictionary<INamedTypeSymbol, (int order, int count)> namedTypes) : SymbolVisitor 15private readonly ISet<INamedTypeSymbol> _seenTypes = new HashSet<INamedTypeSymbol>(); 16private readonly Dictionary<INamedTypeSymbol, (int order, int count)> _namedTypes = namedTypes; 67public override void VisitNamedType(INamedTypeSymbol symbol)
LanguageServices\AnonymousTypeDisplayService\IStructuralTypeDisplayService.cs (2)
14ImmutableArray<INamedTypeSymbol> structuralTypes, 19INamedTypeSymbol anonymousType,
LanguageServices\AnonymousTypeDisplayService\StructuralTypeDisplayInfo.cs (5)
10IDictionary<INamedTypeSymbol, string> structuralTypeToName, 13public IDictionary<INamedTypeSymbol, string> StructuralTypeToName { get; } = structuralTypeToName; 21IDictionary<INamedTypeSymbol, string> structuralTypeToName, 37IDictionary<INamedTypeSymbol, string> structuralTypeToName, 47if (part.Symbol is INamedTypeSymbol type)
LanguageServices\SymbolDisplayService\AbstractSymbolDisplayService.AbstractSymbolDescriptionBuilder.cs (3)
422else if (symbol is INamedTypeSymbol namedType) 549private void AddDescriptionForNamedType(INamedTypeSymbol symbol) 595private static bool TypeArgumentsAndParametersAreSame(INamedTypeSymbol symbol)
LanguageServices\SymbolDisplayService\AbstractSymbolDisplayService.AnonymousTypes.cs (2)
22select (INamedTypeSymbol)part.Symbol!; 28directStructuralTypes = directStructuralTypes.Except([(INamedTypeSymbol)firstSymbol]);
MetadataAsSource\AbstractMetadataAsSourceService.AbstractWrappedNamespaceOrTypeSymbol.cs (3)
24public abstract ImmutableArray<INamedTypeSymbol> GetTypeMembers(); 25public abstract ImmutableArray<INamedTypeSymbol> GetTypeMembers(string name); 26public abstract ImmutableArray<INamedTypeSymbol> GetTypeMembers(string name, int arity);
MetadataAsSource\AbstractMetadataAsSourceService.AbstractWrappedSymbol.cs (1)
39public INamedTypeSymbol ContainingType => _symbol.ContainingType;
MetadataAsSource\AbstractMetadataAsSourceService.cs (1)
95var topLevelNamedType = MetadataAsSourceHelpers.GetTopLevelContainingNamedType(symbol);
MetadataAsSource\AbstractMetadataAsSourceService.WrappedMethodSymbol.cs (2)
23public INamedTypeSymbol AssociatedAnonymousDelegate => _symbol.AssociatedAnonymousDelegate; 136public ImmutableArray<INamedTypeSymbol> UnmanagedCallingConventionTypes => _symbol.UnmanagedCallingConventionTypes;
MetadataAsSource\AbstractMetadataAsSourceService.WrappedNamedTypeSymbol.cs (17)
19private readonly INamedTypeSymbol _symbol; 22public WrappedNamedTypeSymbol(INamedTypeSymbol symbol, bool canImplementImplicitly, IDocumentationCommentFormattingService docCommentFormattingService) 49SymbolKind.NamedType => new WrappedNamedTypeSymbol((INamedTypeSymbol)m, canImplementImplicitly, docCommentFormattingService), 72public INamedTypeSymbol EnumUnderlyingType => _symbol.EnumUnderlyingType; 73public INamedTypeSymbol ConstructedFrom => _symbol.ConstructedFrom; 74public INamedTypeSymbol BaseType => _symbol.BaseType; 75public INamedTypeSymbol TupleUnderlyingType => _symbol.TupleUnderlyingType; 83public ImmutableArray<INamedTypeSymbol> Interfaces => _symbol.Interfaces; 84public ImmutableArray<INamedTypeSymbol> AllInterfaces => _symbol.AllInterfaces; 90public INamedTypeSymbol Construct(params ITypeSymbol[] typeArguments) 93public INamedTypeSymbol Construct(ImmutableArray<ITypeSymbol> typeArguments, ImmutableArray<NullableAnnotation> typeArgumentNullableAnnotations) 96public INamedTypeSymbol ConstructUnboundGenericType() 110public override ImmutableArray<INamedTypeSymbol> GetTypeMembers() 113public override ImmutableArray<INamedTypeSymbol> GetTypeMembers(string name) 116public override ImmutableArray<INamedTypeSymbol> GetTypeMembers(string name, int arity) 132public new INamedTypeSymbol OriginalDefinition => this; 155public INamedTypeSymbol NativeIntegerUnderlyingType => _symbol.NativeIntegerUnderlyingType;
MetadataAsSource\DecompilationMetadataAsSourceFileProvider.cs (3)
68var topLevelNamedType = MetadataAsSourceHelpers.GetTopLevelContainingNamedType(symbol); 333INamedTypeSymbol topLevelNamedType) 392private static async Task<UniqueDocumentKey> GetUniqueDocumentKeyAsync(Project project, INamedTypeSymbol topLevelNamedType, bool signaturesOnly, CancellationToken cancellationToken)
MetadataAsSource\MetadataAsSourceGeneratedFileInfo.cs (1)
24public MetadataAsSourceGeneratedFileInfo(string rootPath, Workspace sourceWorkspace, Project sourceProject, INamedTypeSymbol topLevelNamedType, bool signaturesOnly)
MetadataAsSource\MetadataAsSourceHelpers.cs (3)
50public static INamedTypeSymbol GetTopLevelContainingNamedType(ISymbol symbol) 53public static INamedTypeSymbol? TryGetTopLevelContainingNamedType(ISymbol symbol) 67return (INamedTypeSymbol)topLevelNamedType;
MoveStaticMembers\AbstractMoveStaticMembersRefactoringProvider.cs (1)
50var containingType = selectedMembers.First().ContainingType;
MoveStaticMembers\IMoveStaticMembersOptionsService.cs (1)
12MoveStaticMembersOptions GetMoveMembersToTypeOptions(Document document, INamedTypeSymbol selectedType, ImmutableArray<ISymbol> selectedNodeSymbols);
MoveStaticMembers\MoveStaticMembersOptions.cs (2)
20public INamedTypeSymbol? Destination { get; } 37INamedTypeSymbol destination,
MoveStaticMembers\MoveStaticMembersWithDialogCodeAction.cs (11)
28INamedTypeSymbol selectedType, 33private readonly INamedTypeSymbol _selectedType = selectedType; 97var newType = CodeGenerationSymbolFactory.CreateNamedTypeSymbol( 118newType = (INamedTypeSymbol)destSemanticModel.GetRequiredDeclaredSymbol(destRoot.GetAnnotatedNodes(annotation).Single(), cancellationToken); 154private static TypeKind GetNewTypeKind(INamedTypeSymbol oldType) 174INamedTypeSymbol newType, 209var originalType = selectedMembers.First().ContainingType; 230newType = (INamedTypeSymbol)newTypeSemanticModel.GetRequiredDeclaredSymbol(newTypeRoot.GetCurrentNode(newTypeNode)!, cancellationToken); 239INamedTypeSymbol newType, 274INamedTypeSymbol newType, 403INamedTypeSymbol originalType,
NameTupleElement\AbstractNameTupleElementCodeRefactoringProvider.cs (1)
59if (semanticModel.GetTypeInfo(tuple, cancellationToken).ConvertedType is not INamedTypeSymbol tupleType)
NavigateTo\AbstractNavigateToSearchService.NormalSearch.cs (2)
124if (semanticModel.GetDeclaredSymbol(topLevelMember, cancellationToken) is not INamedTypeSymbol namedTypeSymbol) 127foreach (var type in namedTypeSymbol.GetBaseTypesAndThis())
PdbSourceDocument\ImplementationAssemblyLookupService.cs (1)
64var typeSymbol = MetadataAsSourceHelpers.GetTopLevelContainingNamedType(symbol);
PullMemberUp\AbstractPullMemberUpRefactoringProvider.cs (3)
48var containingType = selectedMembers.First().ContainingType; 78private static ImmutableArray<INamedTypeSymbol> FindAllValidDestinations( 80INamedTypeSymbol containingType,
PullMemberUp\MemberAndDestinationValidator.cs (1)
14public static bool IsDestinationValid(Solution solution, INamedTypeSymbol destination, CancellationToken cancellationToken)
PullMemberUp\MembersPuller.cs (4)
41INamedTypeSymbol destination) 490private static bool IsSelectedMemberDeclarationAlreadyInDestination(ISymbol selectedMember, INamedTypeSymbol destination) 497private static bool IsSelectedMemberDeclarationAlreadyInDestinationClass(ISymbol selectedMember, INamedTypeSymbol destination) 517ISymbol selectedMember, INamedTypeSymbol destination)
PullMemberUp\PullMembersUpOptions.cs (2)
19public readonly INamedTypeSymbol Destination; 33INamedTypeSymbol destination,
PullMemberUp\PullMembersUpOptionsBuilder.cs (1)
13INamedTypeSymbol destination,
QuickInfo\CommonSemanticQuickInfoProvider.cs (2)
305var enclosingType = semanticModel.GetEnclosingNamedType(token.SpanStart, cancellationToken); 403private static bool IsAccessible(ISymbol symbol, INamedTypeSymbol? within)
QuickInfo\CommonSemanticQuickInfoProvider.ErrorVisitor.cs (1)
59public override bool VisitNamedType(INamedTypeSymbol symbol)
QuickInfo\QuickInfoUtilities.cs (1)
46if (symbol is INamedTypeSymbol { SpecialType: SpecialType.System_Void })
ReplaceDocCommentTextWithTag\AbstractReplaceDocCommentTextWithTagCodeRefactoringProvider.cs (1)
99if (symbol is INamedTypeSymbol namedType)
ReplaceMethodWithProperty\ReplaceMethodWithPropertyCodeRefactoringProvider.cs (1)
98var containingType = getMethod.ContainingType;
RQName\RQNodeBuilder.cs (8)
23INamedTypeSymbol namedTypeSymbol => BuildUnconstructedNamedType(namedTypeSymbol), 53private static RQUnconstructedType? BuildUnconstructedNamedType(INamedTypeSymbol type) 79for (var currentType = type; currentType != null; currentType = currentType.ContainingType) 304else if (symbol is INamedTypeSymbol namedTypeSymbol) 306var definingType = namedTypeSymbol.ConstructedFrom ?? namedTypeSymbol; 308var typeChain = new List<INamedTypeSymbol>(); 309var type = namedTypeSymbol; 322foreach (var entry in typeChain)
Shared\Extensions\ISymbolExtensions_2.cs (2)
40var containingType = symbol.ContainingType; 59switch (((INamedTypeSymbol)symbol).TypeKind)
Shared\Extensions\ISymbolExtensions_Sorting.cs (10)
42private static INamedTypeSymbol GetNamedType(ITypeSymbol type) 45INamedTypeSymbol namedType => namedType, 78var xParamType = GetNamedType(xParam.Type); 79var yParamType = GetNamedType(yParam.Type); 124private static int CompareNamedTypes(INamedTypeSymbol xNamedType, INamedTypeSymbol yNamedType) 142var type = ev.Type as INamedTypeSymbol; 166? CompareNamedTypes((INamedTypeSymbol)s1, (INamedTypeSymbol)s2)
Shared\Utilities\ExtractTypeHelpers.cs (7)
29public static async Task<(Document containingDocument, SyntaxAnnotation typeAnnotation)> AddTypeToExistingFileAsync(Document document, INamedTypeSymbol newType, AnnotatedSymbolMapping symbolMapping, CancellationToken cancellationToken) 56INamedTypeSymbol newSymbol, 116Document document, SyntaxFormattingOptions formattingOptions, INamedTypeSymbol type, ImmutableArray<ISymbol> extractableMembers, CancellationToken cancellationToken) 132INamedTypeSymbol type, ImmutableArray<ISymbol> includedMembers) 165private static ImmutableArray<ITypeParameterSymbol> GetPotentialTypeParameters(INamedTypeSymbol type) 169var typesToVisit = new Stack<INamedTypeSymbol>(); 171var currentType = type;
SignatureHelp\AbstractSignatureHelpProvider.cs (1)
190select (INamedTypeSymbol)part.Symbol!;
SignatureHelp\CommonSignatureHelpUtilities.cs (1)
171var ienumerableType = compilation.GetTypeByMetadataName(typeof(IEnumerable).FullName!);
Snippets\SnippetProviders\AbstractConsoleSnippetProvider.cs (2)
77var consoleSymbol = GetConsoleSymbolFromMetaDataName(compilation); 82protected static INamedTypeSymbol? GetConsoleSymbolFromMetaDataName(Compilation compilation)
src\roslyn\src\Analyzers\Core\Analyzers\ConvertTypeofToNameof\AbstractConvertTypeOfToNameOfDiagnosticAnalyzer.cs (1)
65if (typeofOperation.TypeOperand is not INamedTypeSymbol namedType)
src\roslyn\src\Analyzers\Core\Analyzers\ForEachCast\AbstractForEachCastDiagnosticAnalyzer.cs (1)
100var ienumerableOfT = collectionType.AllInterfaces.FirstOrDefault(i => i.OriginalDefinition.SpecialType == SpecialType.System_Collections_Generic_IEnumerable_T);
src\roslyn\src\Analyzers\Core\Analyzers\Helpers\DeserializationConstructorCheck.cs (3)
9private readonly INamedTypeSymbol? _iSerializableType = compilation.ISerializableType(); 10private readonly INamedTypeSymbol? _serializationInfoType = compilation.SerializationInfoType(); 11private readonly INamedTypeSymbol? _streamingContextType = compilation.StreamingContextType();
src\roslyn\src\Analyzers\Core\Analyzers\Helpers\HashCodeAnalyzer\HashCodeAnalyzer.cs (7)
19INamedTypeSymbol? equalityComparerType, 20INamedTypeSymbol systemHashCodeType) 23private readonly INamedTypeSymbol? _equalityComparerType = equalityComparerType; 25public readonly INamedTypeSymbol SystemHashCodeType = systemHashCodeType; 30var objectType = compilation.GetSpecialType(SpecialType.System_Object); 33var equalityComparerType = compilation.GetBestTypeByMetadataName(typeof(EqualityComparer<>).FullName!); 38var systemHashCodeType = compilation.GetBestTypeByMetadataName("System.HashCode");
src\roslyn\src\Analyzers\Core\Analyzers\MakeFieldReadonly\AbstractMakeFieldReadonlyDiagnosticAnalyzer.cs (9)
45var threadStaticAttribute = compilation.ThreadStaticAttributeType(); 46var dataContractAttribute = compilation.DataContractAttribute(); 47var dataMemberAttribute = compilation.DataMemberAttribute(); 48var inlineArrayAttribute = compilation.InlineArrayAttributeType(); 62if (!ShouldAnalyze(context, (INamedTypeSymbol)context.Symbol)) 117var members = ((INamedTypeSymbol)symbolEndContext.Symbol).GetMembers(); 139bool ShouldAnalyze(SymbolStartAnalysisContext context, INamedTypeSymbol namedType) 191static bool IsDataContractSerializable(IFieldSymbol symbol, INamedTypeSymbol? dataContractAttribute, INamedTypeSymbol? dataMemberAttribute)
src\roslyn\src\Analyzers\Core\Analyzers\RemoveUnnecessarySuppressions\AbstractRemoveUnnecessaryAttributeSuppressionsDiagnosticAnalyzer.cs (2)
59var suppressMessageAttributeType = context.Compilation.SuppressMessageAttributeType(); 69protected sealed class CompilationAnalyzer(Compilation compilation, INamedTypeSymbol suppressMessageAttributeType)
src\roslyn\src\Analyzers\Core\Analyzers\RemoveUnnecessarySuppressions\AbstractRemoveUnnecessaryPragmaSuppressionsDiagnosticAnalyzer.cs (2)
742var suppressMessageAttributeType = semanticModel.Compilation.SuppressMessageAttributeType(); 842INamedTypeSymbol suppressMessageAttributeType,
src\roslyn\src\Analyzers\Core\Analyzers\RemoveUnnecessarySuppressions\SuppressMessageAttributeState.cs (2)
15internal sealed partial class SuppressMessageAttributeState(Compilation compilation, INamedTypeSymbol suppressMessageAttributeType) 23private readonly INamedTypeSymbol _suppressMessageAttributeType = suppressMessageAttributeType;
src\roslyn\src\Analyzers\Core\Analyzers\RemoveUnusedMembers\AbstractRemoveUnusedMembersDiagnosticAnalyzer.cs (27)
64protected abstract IEnumerable<TTypeDeclarationSyntax> GetTypeDeclarations(INamedTypeSymbol namedType, CancellationToken cancellationToken); 138private readonly INamedTypeSymbol? _taskType; 139private readonly INamedTypeSymbol? _genericTaskType; 140private readonly INamedTypeSymbol? _debuggerDisplayAttributeType; 141private readonly INamedTypeSymbol? _structLayoutAttributeType; 142private readonly INamedTypeSymbol? _inlineArrayAttributeType; 143private readonly INamedTypeSymbol? _eventArgsType; 144private readonly INamedTypeSymbol? _iNotifyCompletionType; 146private readonly ImmutableHashSet<INamedTypeSymbol?> _attributeSetForMethodsToIgnore; 169private static IEnumerable<INamedTypeSymbol> GetAttributesForMethodsToIgnore(Compilation compilation) 173var onDeserializingAttribute = compilation.OnDeserializingAttribute(); 179var onDeserializedAttribute = compilation.OnDeserializedAttribute(); 185var onSerializingAttribute = compilation.OnSerializingAttribute(); 191var onSerializedAttribute = compilation.OnSerializedAttribute(); 197var comRegisterFunctionAttribute = compilation.ComRegisterFunctionAttribute(); 203var comUnregisterFunctionAttribute = compilation.ComUnregisterFunctionAttribute(); 234if (!ShouldAnalyze(symbolStartContext, (INamedTypeSymbol)symbolStartContext.Symbol)) 278if (symbolStartContext.Symbol is not INamedTypeSymbol { IsExtension: true }) 287bool ShouldAnalyze(SymbolStartAnalysisContext context, INamedTypeSymbol namedType) 603var namedType = (INamedTypeSymbol)symbolEndContext.Symbol; 726private static IEnumerable<ISymbol> GetMembersIncludingExtensionBlockMembers(INamedTypeSymbol namedType) 730if (member is INamedTypeSymbol { IsExtension: true } extensionBlock) 770private static bool HasSyntaxErrors(INamedTypeSymbol namedTypeSymbol, CancellationToken cancellationToken) 784INamedTypeSymbol namedTypeSymbol, 876private void AddDebuggerDisplayAttributeArguments(INamedTypeSymbol namedTypeSymbol, ArrayBuilder<string> builder) 884case INamedTypeSymbol nestedType:
src\roslyn\src\Analyzers\Core\Analyzers\RemoveUnusedParametersAndValues\AbstractRemoveUnusedParametersAndValuesDiagnosticAnalyzer.SymbolStartAnalyzer.BlockAnalyzer.cs (1)
488var interpolatedStringHandlerAttribute = context.Compilation.InterpolatedStringHandlerAttributeType();
src\roslyn\src\Analyzers\Core\Analyzers\RemoveUnusedParametersAndValues\AbstractRemoveUnusedParametersAndValuesDiagnosticAnalyzer.SymbolStartAnalyzer.cs (15)
25INamedTypeSymbol? eventArgsType, 26ImmutableHashSet<INamedTypeSymbol> attributeSetForMethodsToIgnore, 28INamedTypeSymbol? iCustomMarshaler, 33private readonly INamedTypeSymbol? _eventArgsType = eventArgsType; 34private readonly ImmutableHashSet<INamedTypeSymbol> _attributeSetForMethodsToIgnore = attributeSetForMethodsToIgnore; 37private readonly INamedTypeSymbol? _iCustomMarshaler = iCustomMarshaler; 52var eventsArgType = context.Compilation.EventArgsType(); 54var iCustomMarshaler = context.Compilation.GetTypeByMetadataName(typeof(ICustomMarshaler).FullName!); 58if (HasSyntaxErrors((INamedTypeSymbol)symbolStartContext.Symbol, symbolStartContext.CancellationToken)) 76static bool HasSyntaxErrors(INamedTypeSymbol namedTypeSymbol, CancellationToken cancellationToken) 111var interpolatedStringHandlerAttribute = context.Compilation.InterpolatedStringHandlerAttributeType(); 124INamedTypeSymbol? interpolatedStringHandlerAttributeType, 177private static IEnumerable<INamedTypeSymbol?> GetAttributesForMethodsToIgnore(Compilation compilation) 196private bool IsUnusedParameterCandidate(IParameterSymbol parameter, INamedTypeSymbol? interpolatedStringHandlerAttributeType, CancellationToken cancellationToken) 293INamedTypeSymbol? interpolatedStringHandlerAttributeType)
src\roslyn\src\Analyzers\Core\Analyzers\SimplifyInterpolation\AbstractSimplifyInterpolationDiagnosticAnalyzer.cs (4)
39var readOnlySpanOfCharType = compilation.ReadOnlySpanOfTType()?.Construct(compilation.GetSpecialType(SpecialType.System_Char)); 47INamedTypeSymbol? formattableStringType, 48INamedTypeSymbol? iFormattableType, 49INamedTypeSymbol? readOnlySpanOfCharType,
src\roslyn\src\Analyzers\Core\Analyzers\SimplifyInterpolation\AbstractSimplifyInterpolationHelpers.cs (8)
35var dateTimeType = compilation.GetSpecialType(SpecialType.System_DateTime); 43void AddDateMethods(INamedTypeSymbol? dateType) 49void AddTimeMethods(INamedTypeSymbol? timeType) 55void AddMethodIfAvailable(INamedTypeSymbol? type, string name, string format) 68INamedTypeSymbol? readOnlySpanOfCharType, 123INamedTypeSymbol? readOnlySpanOfCharType, 244private static bool IsType<T>(INamedTypeSymbol type, SemanticModel semanticModel) 247private static INamedTypeSymbol? FindType<T>(SemanticModel semanticModel)
src\roslyn\src\Analyzers\Core\Analyzers\SimplifyLinqExpression\AbstractSimplifyLinqExpressionDiagnosticAnalyzer.cs (7)
63if (TryGetEnumerableTypeSymbol(context.Compilation, out var enumerableType) && 73static bool TryGetEnumerableTypeSymbol(Compilation compilation, [NotNullWhen(true)] out INamedTypeSymbol? enumerableType) 79static bool TryGetLinqWhereExtensionMethod(INamedTypeSymbol enumerableType, [NotNullWhen(true)] out IMethodSymbol? linqMethod) 82static bool TryGetLinqSelectExtensionMethod(INamedTypeSymbol enumerableType, [NotNullWhen(true)] out IMethodSymbol? linqMethod) 85static bool TryGetLinqExtensionMethod(INamedTypeSymbol enumerableType, string name, [NotNullWhen(true)] out IMethodSymbol? linqMethod) 89if (linqMethodSymbol.Parameters is [_, { Type: INamedTypeSymbol { Arity: 2 } }]) 102static bool TryGetLinqMethodsThatDoNotReturnEnumerables(INamedTypeSymbol enumerableType, out ImmutableArray<IMethodSymbol> linqMethods)
src\roslyn\src\Analyzers\Core\Analyzers\UseAutoProperty\AbstractUseAutoPropertyAnalyzer.cs (4)
99var namedType = (INamedTypeSymbol)context.Symbol; 175bool ShouldAnalyze(SymbolStartAnalysisContext context, INamedTypeSymbol namedType) 328INamedTypeSymbol containingType,
src\roslyn\src\Analyzers\Core\Analyzers\UseCoalesceExpression\AbstractUseCoalesceExpressionForNullableTernaryConditionalCheckDiagnosticAnalyzer.cs (1)
109var nullableType = semanticModel.Compilation.GetTypeByMetadataName(typeof(Nullable<>).FullName!);
src\roslyn\src\Analyzers\Core\Analyzers\UseCollectionInitializer\AbstractUseCollectionInitializerDiagnosticAnalyzer.cs (5)
82INamedTypeSymbol? expressionType, 100var ienumerableType = context.Compilation.IEnumerableType(); 117var expressionType = context.Compilation.ExpressionOfTType(); 126INamedTypeSymbol ienumerableType, 127INamedTypeSymbol? expressionType)
src\roslyn\src\Analyzers\Core\Analyzers\UseExplicitTupleName\UseExplicitTupleNameDiagnosticAnalyzer.cs (1)
77INamedTypeSymbol containingType, IFieldSymbol unnamedField, CancellationToken cancellationToken)
src\roslyn\src\Analyzers\Core\Analyzers\UseIsNullCheck\AbstractUseIsNullForReferenceEqualsDiagnosticAnalyzer.cs (1)
34var objectType = context.Compilation.GetSpecialType(SpecialType.System_Object);
src\roslyn\src\Analyzers\Core\Analyzers\UseNullPropagation\AbstractUseNullPropagationDiagnosticAnalyzer.cs (7)
82public (INamedTypeSymbol? expressionType, IMethodSymbol? referenceEqualsMethod) GetAnalysisSymbols(Compilation compilation) 84var expressionType = compilation.ExpressionOfTType(); 85var objectType = compilation.GetSpecialType(SpecialType.System_Object); 99var expressionType = context.Compilation.ExpressionOfTType(); 129INamedTypeSymbol? expressionType, 155INamedTypeSymbol? expressionType, 199if (type is not INamedTypeSymbol namedType || namedType.ConstructedFrom.SpecialType != SpecialType.System_Nullable_T)
src\roslyn\src\Analyzers\Core\Analyzers\UseThrowExpression\AbstractUseThrowExpressionDiagnosticAnalyzer.cs (2)
64var expressionType = startContext.Compilation.ExpressionOfTType(); 69private void AnalyzeOperation(OperationAnalysisContext context, INamedTypeSymbol? expressionType)
src\roslyn\src\Analyzers\Core\Analyzers\ValidateFormatString\AbstractValidateFormatStringDiagnosticAnalyzer.cs (3)
73var formatProviderType = startContext.Compilation.GetTypeByMetadataName(typeof(System.IFormatProvider).FullName!); 89private void AnalyzeNode(SyntaxNodeAnalysisContext context, INamedTypeSymbol formatProviderType) 297var containingType = symbolInfo.Symbol.ContainingType;
src\roslyn\src\Analyzers\Core\CodeFixes\AddExplicitCast\InheritanceDistanceComparer.cs (1)
70foreach (var interfaceType in derivedType.Interfaces)
src\roslyn\src\Analyzers\Core\CodeFixes\AddObsoleteAttribute\AbstractAddObsoleteAttributeCodeFixProvider.cs (4)
37var attribute = await GetObsoleteAttributeAsync(document, cancellationToken).ConfigureAwait(false); 57private static async Task<INamedTypeSymbol?> GetObsoleteAttributeAsync(Document document, CancellationToken cancellationToken) 60var attribute = compilation.GetTypeByMetadataName(typeof(ObsoleteAttribute).FullName!); 74var obsoleteAttribute = await GetObsoleteAttributeAsync(document, cancellationToken).ConfigureAwait(false);
src\roslyn\src\Analyzers\Core\CodeFixes\AddParameter\AbstractAddParameterCodeFixProvider.cs (3)
165var type = symbol switch 168INamedTypeSymbol namedTypeSymbol => namedTypeSymbol, // Standard object creation expressions 412Document invocationDocument, TArgumentSyntax argument, INamedTypeSymbol containingType, CancellationToken cancellationToken)
src\roslyn\src\Analyzers\Core\CodeFixes\AliasAmbiguousType\AbstractAliasAmbiguousTypeCodeFixProvider.cs (1)
133symbolInfo.CandidateSymbols.All(symbol => symbol is INamedTypeSymbol { Arity: 0 });
src\roslyn\src\Analyzers\Core\CodeFixes\ForEachCast\AbstractForEachCastCodeFixProvider.cs (1)
62var enumerableType = semanticModel.Compilation.GetBestTypeByMetadataName(typeof(Enumerable).FullName!);
src\roslyn\src\Analyzers\Core\CodeFixes\GenerateConstructor\AbstractGenerateConstructorService.cs (5)
29protected abstract bool ContainingTypesOrSelfHasUnsafeKeyword(INamedTypeSymbol containingType); 34protected abstract bool TryInitializeImplicitObjectCreation(SemanticDocument document, SyntaxNode node, CancellationToken cancellationToken, out SyntaxToken token, out ImmutableArray<Argument<TExpressionSyntax>> arguments, [NotNullWhen(true)] out INamedTypeSymbol? typeToGenerateIn); 35protected abstract bool TryInitializeSimpleNameGenerationState(SemanticDocument document, SyntaxNode simpleName, CancellationToken cancellationToken, out SyntaxToken token, out ImmutableArray<Argument<TExpressionSyntax>> arguments, [NotNullWhen(true)] out INamedTypeSymbol? typeToGenerateIn); 36protected abstract bool TryInitializeConstructorInitializerGeneration(SemanticDocument document, SyntaxNode constructorInitializer, CancellationToken cancellationToken, out SyntaxToken token, out ImmutableArray<Argument<TExpressionSyntax>> arguments, [NotNullWhen(true)] out INamedTypeSymbol? typeToGenerateIn); 37protected abstract bool TryInitializeSimpleAttributeNameGenerationState(SemanticDocument document, SyntaxNode simpleName, CancellationToken cancellationToken, out SyntaxToken token, out ImmutableArray<Argument<TExpressionSyntax>> arguments, [NotNullWhen(true)] out INamedTypeSymbol? typeToGenerateIn);
src\roslyn\src\Analyzers\Core\CodeFixes\GenerateConstructor\AbstractGenerateConstructorService.State.cs (6)
38public INamedTypeSymbol? TypeToGenerateIn { get; private set; } 301out var token, out var arguments, out var typeToGenerateIn)) 319out var token, out var arguments, out var typeToGenerateIn)) 338out var token, out var arguments, out var typeToGenerateIn)) 398INamedTypeSymbol original, CancellationToken cancellationToken) 401TypeToGenerateIn = definition as INamedTypeSymbol;
src\roslyn\src\Analyzers\Core\CodeFixes\GenerateConstructor\GenerateConstructorHelpers.cs (2)
136INamedTypeSymbol typeToGenerateIn, 301private static IEnumerable<string> GetUnavailableMemberNames(INamedTypeSymbol typeToGenerateIn)
src\roslyn\src\Analyzers\Core\CodeFixes\GenerateDefaultConstructors\AbstractGenerateDefaultConstructorsService.cs (1)
23[NotNullWhen(true)] out INamedTypeSymbol? classType);
src\roslyn\src\Analyzers\Core\CodeFixes\GenerateDefaultConstructors\AbstractGenerateDefaultConstructorsService.State.cs (5)
19public INamedTypeSymbol? ClassType { get; private set; } 50if (!service.TryInitializeState(semanticDocument, textSpan, cancellationToken, out var classType)) 55var baseType = ClassType.BaseType; 89private static bool FixesError(INamedTypeSymbol classType, INamedTypeSymbol baseType)
src\roslyn\src\Analyzers\Core\CodeFixes\GenerateDefaultConstructors\GenerateDefaultConstructorsCodeAction.cs (3)
52var classType = _state.ClassType; 67IParameterSymbol parameter, INamedTypeSymbol classType) 73private static Accessibility DetermineAccessibility(IMethodSymbol baseConstructor, INamedTypeSymbol classType)
src\roslyn\src\Analyzers\Core\CodeFixes\GenerateEnumMember\AbstractGenerateEnumMemberService.State.cs (5)
20public INamedTypeSymbol TypeToGenerateIn { get; private set; } = null!; 67var sourceType = (await SymbolFinderInternal.FindSourceDefinitionAsync(TypeToGenerateIn, document.Project.Solution, cancellationToken).ConfigureAwait(false)) as INamedTypeSymbol; 103var containingType = semanticModel.GetEnclosingNamedType(identifierToken.SpanStart, cancellationToken); 116out var typeToGenerateIn, out var isStatic, out var isColorColorCase))
src\roslyn\src\Analyzers\Core\CodeFixes\GenerateMember\AbstractGenerateMemberService.cs (14)
29[NotNullWhen(true)] INamedTypeSymbol? typeToGenerateIn, 53INamedTypeSymbol containingType, 56[NotNullWhen(true)] out INamedTypeSymbol? typeToGenerateIn, 64underlyingType is INamedTypeSymbol underlyingNamedType) 75INamedTypeSymbol containingType, 78out INamedTypeSymbol? typeToGenerateIn, 120typeToGenerateIn = pointerType.PointedAtType as INamedTypeSymbol; 132typeToGenerateIn = attributeType.Type as INamedTypeSymbol; 137typeToGenerateIn = semanticModel.GetTypeInfo(initializedObject, cancellationToken).Type as INamedTypeSymbol; 147typeToGenerateIn = inferenceService.InferType(semanticModel, propertyPatternClause, objectAsDefault: true, cancellationToken) as INamedTypeSymbol; 156typeToGenerateIn = semanticModel.GetTypeInfo(target, cancellationToken).Type as INamedTypeSymbol; 185out INamedTypeSymbol? typeToGenerateIn, 195: typeInfo.Type as INamedTypeSymbol; 197isStatic = semanticInfo.Symbol is INamedTypeSymbol;
src\roslyn\src\Analyzers\Core\CodeFixes\GenerateParameterizedMember\AbstractGenerateConversionService.cs (2)
24protected abstract bool TryInitializeImplicitConversionState(SemanticDocument document, SyntaxNode expression, ISet<TypeKind> classInterfaceModuleStructTypes, CancellationToken cancellationToken, out SyntaxToken identifierToken, [NotNullWhen(true)] out IMethodSymbol? methodSymbol, [NotNullWhen(true)] out INamedTypeSymbol? typeToGenerateIn); 25protected abstract bool TryInitializeExplicitConversionState(SemanticDocument document, SyntaxNode expression, ISet<TypeKind> classInterfaceModuleStructTypes, CancellationToken cancellationToken, out SyntaxToken identifierToken, [NotNullWhen(true)] out IMethodSymbol? methodSymbol, [NotNullWhen(true)] out INamedTypeSymbol? typeToGenerateIn);
src\roslyn\src\Analyzers\Core\CodeFixes\GenerateParameterizedMember\AbstractGenerateConversionService.State.cs (2)
62out var identifierToken, out var methodSymbol, out var typeToGenerateIn)) 86out var identifierToken, out var methodSymbol, out var typeToGenerateIn))
src\roslyn\src\Analyzers\Core\CodeFixes\GenerateParameterizedMember\AbstractGenerateDeconstructMethodService.cs (1)
26INamedTypeSymbol typeToGenerateIn,
src\roslyn\src\Analyzers\Core\CodeFixes\GenerateParameterizedMember\AbstractGenerateDeconstructMethodService.State.cs (2)
29INamedTypeSymbol typeToGenerateIn, 45INamedTypeSymbol typeToGenerateIn,
src\roslyn\src\Analyzers\Core\CodeFixes\GenerateParameterizedMember\AbstractGenerateMethodService.cs (1)
24protected abstract bool TryInitializeExplicitInterfaceState(SemanticDocument document, SyntaxNode node, CancellationToken cancellationToken, out SyntaxToken identifierToken, [NotNullWhen(true)] out IMethodSymbol? methodSymbol, [NotNullWhen(true)] out INamedTypeSymbol? typeToGenerateIn);
src\roslyn\src\Analyzers\Core\CodeFixes\GenerateParameterizedMember\AbstractGenerateMethodService.State.cs (2)
88out var identifierToken, out var methodSymbol, out var typeToGenerateIn)) 217out var typeToGenerateIn, out var isStatic, out _))
src\roslyn\src\Analyzers\Core\CodeFixes\GenerateParameterizedMember\AbstractGenerateParameterizedMemberService.cs (1)
29protected virtual bool ContainingTypesOrSelfHasUnsafeKeyword(INamedTypeSymbol containingType)
src\roslyn\src\Analyzers\Core\CodeFixes\GenerateParameterizedMember\AbstractGenerateParameterizedMemberService.SignatureInfo.cs (3)
222var containingType = State.ContainingType; 269private bool DerivesFrom(INamedTypeSymbol containingType) 272.OfType<INamedTypeSymbol>()
src\roslyn\src\Analyzers\Core\CodeFixes\GenerateParameterizedMember\AbstractGenerateParameterizedMemberService.State.cs (3)
23public INamedTypeSymbol ContainingType { get; protected set; } 24public INamedTypeSymbol TypeToGenerateIn { get; protected set; } 60TypeToGenerateIn = await SymbolFinderInternal.FindSourceDefinitionAsync(TypeToGenerateIn, document.Project.Solution, cancellationToken).ConfigureAwait(false) as INamedTypeSymbol;
src\roslyn\src\Analyzers\Core\CodeFixes\GenerateParameterizedMember\IGenerateDeconstructMemberService.cs (1)
16Document document, SyntaxNode targetVariables, INamedTypeSymbol typeToGenerateIn, CancellationToken cancellationToken);
src\roslyn\src\Analyzers\Core\CodeFixes\GenerateParameterizedMember\TypeParameterSubstitution.cs (9)
48public override async ValueTask VisitNamedType(INamedTypeSymbol symbol) 72if (symbol.ConstraintTypes.ElementAt(0) is INamedTypeSymbol namedType) 85if (!symbol.ConstraintTypes.All(t => t is INamedTypeSymbol)) 92(INamedTypeSymbol)symbol.ConstraintTypes[0], projects).ConfigureAwait(false); 97(INamedTypeSymbol)symbol.ConstraintTypes[i], projects).ConfigureAwait(false); 108var commonType = commonTypes.First(); 123private async Task<ISet<INamedTypeSymbol>> GetDerivedAndImplementedTypesAsync( 124INamedTypeSymbol constraintType, IImmutableSet<Project> projects) 128var symbol = constraintType;
src\roslyn\src\Analyzers\Core\CodeFixes\GenerateVariable\AbstractGenerateVariableService.CodeAction.cs (1)
172private static bool DerivesFrom(State state, INamedTypeSymbol containingType)
src\roslyn\src\Analyzers\Core\CodeFixes\GenerateVariable\AbstractGenerateVariableService.cs (3)
27protected abstract bool TryInitializeExplicitInterfaceState(SemanticDocument document, SyntaxNode node, CancellationToken cancellationToken, out SyntaxToken identifierToken, out IPropertySymbol propertySymbol, out INamedTypeSymbol typeToGenerateIn); 86protected virtual bool ContainingTypesOrSelfHasUnsafeKeyword(INamedTypeSymbol containingType) 212var cancellationTokenType = compilation.CancellationTokenType();
src\roslyn\src\Analyzers\Core\CodeFixes\GenerateVariable\AbstractGenerateVariableService.State.cs (6)
30public INamedTypeSymbol ContainingType { get; private set; } 31public INamedTypeSymbol TypeToGenerateIn { get; private set; } 154TypeToGenerateIn, _document.Project.Solution, cancellationToken).ConfigureAwait(false) as INamedTypeSymbol; 198out var identifierToken, out var propertySymbol, out var typeToGenerateIn)) 220if (!ContainingType.Interfaces.OfType<INamedTypeSymbol>().Contains(TypeToGenerateIn)) 292out var typeToGenerateIn, out var isStatic, out _))
src\roslyn\src\Analyzers\Core\CodeFixes\ImplementAbstractClass\AbstractImplementAbstractClassCodeFixProvider.cs (1)
43var abstractClassType = data.AbstractClassType;
src\roslyn\src\Analyzers\Core\CodeFixes\ImplementAbstractClass\ImplementAbstractClassData.cs (9)
28INamedTypeSymbol classType, INamedTypeSymbol abstractClassType, 29ImmutableArray<(INamedTypeSymbol type, ImmutableArray<ISymbol> members)> unimplementedMembers) 35private readonly ImmutableArray<(INamedTypeSymbol type, ImmutableArray<ISymbol> members)> _unimplementedMembers = unimplementedMembers; 37public readonly INamedTypeSymbol ClassType = classType; 38public readonly INamedTypeSymbol AbstractClassType = abstractClassType; 44if (semanticModel.GetDeclaredSymbol(classNode, cancellationToken) is not INamedTypeSymbol classType) 50var abstractClassType = classType.BaseType; 319constraints.OfType<INamedTypeSymbol>().FirstOrDefault() ??
src\roslyn\src\Analyzers\Core\CodeFixes\ImplementInterface\AbstractImplementInterfaceService.cs (5)
39[NotNullWhen(true)] out INamedTypeSymbol? classOrStructType, 40out ImmutableArray<INamedTypeSymbol> interfaceTypes); 44protected abstract SyntaxNode CreateFinalizer(SyntaxGenerator generator, INamedTypeSymbol classType, string disposeMethodDisplayString); 255var interfaceType = state.InterfaceTypes.First(); 302var firstInterfaceType = state.InterfaceTypes.First();
src\roslyn\src\Analyzers\Core\CodeFixes\ImplementInterface\AbstractImplementInterfaceService.State.cs (8)
17INamedTypeSymbol classOrStructType, 18ImmutableArray<INamedTypeSymbol> interfaceTypes, 29public INamedTypeSymbol ClassOrStructType => Info.ClassOrStructType; 30public ImmutableArray<INamedTypeSymbol> InterfaceTypes => Info.InterfaceTypes; 36public ImmutableArray<(INamedTypeSymbol type, ImmutableArray<ISymbol> members)> MembersWithoutExplicitOrImplicitImplementationWhichCanBeImplicitlyImplemented => Info.MembersWithoutExplicitOrImplicitImplementationWhichCanBeImplicitlyImplemented; 37public ImmutableArray<(INamedTypeSymbol type, ImmutableArray<ISymbol> members)> MembersWithoutExplicitOrImplicitImplementation => Info.MembersWithoutExplicitOrImplicitImplementation; 40public ImmutableArray<(INamedTypeSymbol type, ImmutableArray<ISymbol> members)> MembersWithoutExplicitImplementation => Info.MembersWithoutExplicitImplementation; 50out var classOrStructDecl, out var classOrStructType, out var interfaceTypes))
src\roslyn\src\Analyzers\Core\CodeFixes\ImplementInterface\ImplementHelpers.cs (6)
21INamedTypeSymbol namedType, 117ISymbol? first, INamedTypeSymbol second, bool supportsImplicitImplementationOfNonPublicInterfaceMembers) 171private static bool IsTypeLessAccessibleThanOtherType(ITypeSymbol? first, INamedTypeSymbol second, HashSet<ITypeSymbol> alreadyCheckingTypes) 199if (first is INamedTypeSymbol namedType) 233var idisposableType = disposeMethod.ContainingType; 248var idisposable = compilation.GetSpecialType(SpecialType.System_IDisposable);
src\roslyn\src\Analyzers\Core\CodeFixes\ImplementInterface\ImplementInterfaceGenerator.cs (3)
70ImmutableArray<(INamedTypeSymbol type, ImmutableArray<ISymbol> members)> unimplementedMembers, 104ImmutableArray<(INamedTypeSymbol type, ImmutableArray<ISymbol> members)> unimplementedMembers, 347IEnumerable<INamedTypeSymbol> baseTypes)
src\roslyn\src\Analyzers\Core\CodeFixes\ImplementInterface\ImplementInterfaceGenerator_DisposePattern.cs (5)
40ImmutableArray<(INamedTypeSymbol type, ImmutableArray<ISymbol> members)> unimplementedMembers, 202var gcType = compilation.GetTypeByMetadataName(typeof(GC).FullName!); 231INamedTypeSymbol containingType, 239var boolType = compilation.GetSpecialType(SpecialType.System_Boolean); 253private static string GenerateUniqueNameForDisposedValueField(INamedTypeSymbol containingType, NamingRule rule)
src\roslyn\src\Analyzers\Core\CodeFixes\ImplementInterface\ImplementInterfaceGenerator_Property.cs (3)
81private static INamedTypeSymbol[] AttributesToRemove(Compilation compilation) 95INamedTypeSymbol[] attributesToRemove) 129INamedTypeSymbol[] attributesToRemove)
src\roslyn\src\Analyzers\Core\CodeFixes\ImplementInterface\ImplementInterfaceInfo.cs (5)
14public required INamedTypeSymbol ClassOrStructType { get; init; } 27public ImmutableArray<INamedTypeSymbol> InterfaceTypes { get; init; } 29public ImmutableArray<(INamedTypeSymbol type, ImmutableArray<ISymbol> members)> MembersWithoutExplicitOrImplicitImplementationWhichCanBeImplicitlyImplemented { get; init; } = []; 30public ImmutableArray<(INamedTypeSymbol type, ImmutableArray<ISymbol> members)> MembersWithoutExplicitOrImplicitImplementation { get; init; } = []; 31public ImmutableArray<(INamedTypeSymbol type, ImmutableArray<ISymbol> members)> MembersWithoutExplicitImplementation { get; init; } = [];
src\roslyn\src\Analyzers\Core\CodeFixes\RemoveAsyncModifier\AbstractRemoveAsyncModifierCodeFixProvider.cs (1)
238private static SyntaxNode TypeExpressionForStaticMemberAccess(SyntaxGenerator generator, INamedTypeSymbol typeSymbol)
src\roslyn\src\Analyzers\Core\CodeFixes\SimplifyInterpolation\AbstractSimplifyInterpolationCodeFixProvider.cs (1)
57var readOnlySpanOfCharType = compilation.ReadOnlySpanOfTType()?.Construct(compilation.GetSpecialType(SpecialType.System_Char));
src\roslyn\src\Analyzers\Core\CodeFixes\UnsealClass\AbstractUnsealClassCodeFixProvider.cs (1)
39if (semanticModel.GetSymbolInfo(node, cancellationToken).Symbol is INamedTypeSymbol type &&
src\roslyn\src\Analyzers\Core\CodeFixes\UseAutoProperty\AbstractUseAutoPropertyCodeFixProvider.cs (1)
296var allowNullAttribute = compilation.AllowNullAttribute();
src\roslyn\src\Analyzers\Core\CodeFixes\UseCoalesceExpression\UseCoalesceExpressionForNullableTernaryConditionalCheckCodeFixProvider.cs (1)
40var expressionTypeOpt = semanticModel.Compilation.ExpressionOfTType();
src\roslyn\src\Analyzers\Core\CodeFixes\UseCoalesceExpression\UseCoalesceExpressionForTernaryConditionalCheckCodeFixProvider.cs (2)
41var expressionTypeOpt = semanticModel.Compilation.ExpressionOfTType(); 56SyntaxEditor editor, SemanticModel semanticModel, INamedTypeSymbol? expressionTypeOpt,
src\roslyn\src\Analyzers\Core\CodeFixes\UseSystemHashCode\UseSystemHashCodeCodeFixProvider.cs (1)
72var containingType = accessesBase ? method.ContainingType : null;
src\roslyn\src\Compilers\Core\Portable\DiagnosticAnalyzer\SuppressMessageAttributeState.TargetSymbolResolver.cs (7)
560for (var containingType = bindingContext.ContainingType; containingType != null; containingType = containingType.ContainingType) 640INamedTypeSymbol typeSymbol = GetFirstMatchingNamedType(candidateMembers, arity); 821private static INamedTypeSymbol GetFirstMatchingNamedType(ImmutableArray<ISymbol> candidateMembers, int arity) 823return (INamedTypeSymbol)candidateMembers.FirstOrDefault(s => 825((INamedTypeSymbol)s).Arity == arity); 836private static ITypeParameterSymbol GetNthTypeParameter(INamedTypeSymbol typeSymbol, int n) 854private static int GetTypeParameterCount(INamedTypeSymbol typeSymbol)
StackTraceExplorer\AbstractStackTraceSymbolResolver.cs (1)
18INamedTypeSymbol type,
StackTraceExplorer\StackFrameLocalMethodResolver.cs (1)
19INamedTypeSymbol type,
StackTraceExplorer\StackFrameMethodSymbolResolver.cs (1)
16INamedTypeSymbol type,
StackTraceExplorer\StackTraceExplorerUtilities.cs (1)
110var type = compilation.GetTypeByMetadataName(fullyQualifiedTypeName);
TypeHierarchy\AbstractTypeHierarchyService.cs (4)
16public ImmutableArray<INamedTypeSymbol> GetBaseTypesAndInterfaces(INamedTypeSymbol typeSymbol, bool transitive) 19public async Task<ImmutableArray<INamedTypeSymbol>> GetDerivedTypesAndImplementationsAsync( 21INamedTypeSymbol typeSymbol,
TypeHierarchy\ITypeHierarchyService.cs (4)
14ImmutableArray<INamedTypeSymbol> GetBaseTypesAndInterfaces(INamedTypeSymbol typeSymbol, bool transitive); 16Task<ImmutableArray<INamedTypeSymbol>> GetDerivedTypesAndImplementationsAsync( 18INamedTypeSymbol typeSymbol,
Microsoft.CodeAnalysis.Razor.Compiler (174)
Analyzers\ComponentParameterNullableWarningSuppressor.cs (3)
25var editorRequiredSymbol = context.Compilation.GetTypeByMetadataName("Microsoft.AspNetCore.Components.EditorRequiredAttribute"); 26var parameterSymbol = context.Compilation.GetTypeByMetadataName("Microsoft.AspNetCore.Components.ParameterAttribute"); 27var componentSymbol = context.Compilation.GetTypeByMetadataName("Microsoft.AspNetCore.Components.IComponent");
CSharp\CompilationExtensions.cs (7)
25var type = compilation.GetTypeByMetadataName(typeMetadataName); 39public static bool HasCallableUtf8WriteLiteralOverload(this Compilation compilation, INamedTypeSymbol type) 41var readOnlySpanType = compilation.GetTypeByMetadataName("System.ReadOnlySpan`1"); 42var byteType = compilation.GetSpecialType(SpecialType.System_Byte); 43if (readOnlySpanType is not INamedTypeSymbol readOnlySpanNamedType || 49var readOnlySpanOfByte = readOnlySpanNamedType.Construct(byteType); 51for (var currentType = type; currentType is not null; currentType = currentType.BaseType)
CSharp\CompilationTagHelperFeature.cs (1)
40var @string = compilation.GetSpecialType(SpecialType.System_String);
CSharp\ComponentDetectionConventions.cs (4)
10public static bool IsComponent(INamedTypeSymbol symbol, INamedTypeSymbol icomponentSymbol) 28public static bool IsComponent(INamedTypeSymbol typeSymbol, string icomponentSymbolName) 36foreach (var interfaceSymbol in typeSymbol.AllInterfaces)
CSharp\DefaultTagHelperDescriptorFactory.cs (12)
23public TagHelperDescriptor? CreateDescriptor(INamedTypeSymbol type) 69private static void AddTagMatchingRules(INamedTypeSymbol type, TagHelperDescriptorBuilder descriptorBuilder) 123private void AddBoundAttributes(INamedTypeSymbol type, TagHelperDescriptorBuilder builder) 143private static void AddAllowedChildren(INamedTypeSymbol type, TagHelperDescriptorBuilder builder) 169private void AddDocumentation(INamedTypeSymbol type, TagHelperDescriptorBuilder builder) 184private static void AddTagOutputHint(INamedTypeSymbol type, TagHelperDescriptorBuilder builder) 196INamedTypeSymbol containingType) 241INamedTypeSymbol containingType, 302if (property.Type is INamedTypeSymbol propertyType && 308var dictionaryType = property.Type.AllInterfaces 376INamedTypeSymbol typeSymbol, ref PooledArrayBuilder<IPropertySymbol> properties) 381var currentType = typeSymbol;
CSharp\DefaultUtf8WriteLiteralFeature.cs (5)
108var type = compilation.GetTypeByMetadataName(info.BaseTypeName); 201var symbol = semanticModel.GetSymbolInfo(baseTypeSyntax.Type).Symbol as INamedTypeSymbol; 220private static string GetFullMetadataName(INamedTypeSymbol symbol) 228for (var current = symbol.ContainingType; current is not null; current = current.ContainingType)
Language\Extensions\INamedTypeSymbolExtensions.cs (5)
10public static bool IsTagHelper(this INamedTypeSymbol symbol, INamedTypeSymbol iTagHelperType) 18this INamedTypeSymbol symbol, 19INamedTypeSymbol viewComponentAttribute, 20INamedTypeSymbol? nonViewComponentAttribute)
Language\SymbolCache.cs (1)
29public static NamedTypeSymbolData GetNamedTypeSymbolData(INamedTypeSymbol symbol)
Language\SymbolCache.NamedTypeSymbolData.cs (4)
10public sealed partial class NamedTypeSymbolData(INamedTypeSymbol symbol) 12private readonly INamedTypeSymbol _symbol = symbol; 15public bool IsViewComponent(INamedTypeSymbol viewComponentAttribute, INamedTypeSymbol? nonViewComponentAttribute)
Language\SymbolCache.NamedTypeSymbolData.IsViewComponentResult.cs (10)
17public INamedTypeSymbol ViewComponentAttribute { get; } 18public INamedTypeSymbol? NonViewComponentAttribute { get; } 20public IsViewComponentResult(INamedTypeSymbol symbol, INamedTypeSymbol viewComponentAttribute, INamedTypeSymbol? nonViewComponentAttribute) 39public bool IsMatchingCache(INamedTypeSymbol viewComponentAttribute, INamedTypeSymbol? nonViewComponentAttribute) 45private static bool AttributeIsDefined(INamedTypeSymbol type, INamedTypeSymbol? queryAttribute) 52var currentType = type;
Language\TagHelperDescriptorBuilder.cs (1)
96public void SetTypeName(INamedTypeSymbol namedType)
Language\TagHelperDiscoverer.cs (2)
137var typeSymbol = (INamedTypeSymbol)namespaceOrType;
Language\TagHelpers\Producers\BindTagHelperProducer.cs (8)
83private readonly INamedTypeSymbol _bindConverterType; 84private readonly INamedTypeSymbol? _bindElementAttributeType; 85private readonly INamedTypeSymbol? _bindInputElementAttributeType; 88INamedTypeSymbol bindConverterType, 89INamedTypeSymbol? bindElementAttributeType, 90INamedTypeSymbol? bindInputElementAttributeType) 115public override bool IsCandidateType(INamedTypeSymbol type) 120INamedTypeSymbol type,
Language\TagHelpers\Producers\BindTagHelperProducer.Factory.cs (3)
20if (!compilation.TryGetTypeByMetadataName(ComponentsApi.BindConverter.FullTypeName, out var bindConverterType)) 26var bindElementAttributeType = compilation.GetTypeByMetadataName(ComponentsApi.BindElementAttribute.FullTypeName); 27var bindInputElementAttributeType = compilation.GetTypeByMetadataName(ComponentsApi.BindInputElementAttribute.FullTypeName);
Language\TagHelpers\Producers\ComponentTagHelperProducer.cs (14)
32public override bool IsCandidateType(INamedTypeSymbol type) 36INamedTypeSymbol type, 82INamedTypeSymbol type, 87INamedTypeSymbol type, 92INamedTypeSymbol type, 190private static void CreateProperty(TagHelperDescriptorBuilder builder, INamedTypeSymbol containingSymbol, IPropertySymbol property, PropertyKind kind) 261if (type is INamedTypeSymbol namedType && namedType.IsGenericType) 292var methodSymbol = ((INamedTypeSymbol)prop.Type).DelegateInvokeMethod.AssumeNotNull(); 617private static ImmutableArray<(IPropertySymbol property, PropertyKind kind)> GetProperties(INamedTypeSymbol type) 622var currentType = type; 713(property.Type is INamedTypeSymbol { IsGenericType: true } namedType && 720(property.Type is INamedTypeSymbol { IsGenericType: true } namedType && 730private static bool HasRenderModeDirective(INamedTypeSymbol type) 735var attributeClass = attribute.AttributeClass;
Language\TagHelpers\Producers\DefaultTagHelperProducer.cs (4)
13private readonly INamedTypeSymbol _iTagHelperType; 15private DefaultTagHelperProducer(DefaultTagHelperDescriptorFactory factory, INamedTypeSymbol iTagHelperType) 25public override bool IsCandidateType(INamedTypeSymbol type) 29INamedTypeSymbol type,
Language\TagHelpers\Producers\DefaultTagHelperProducer.Factory.cs (1)
20if (!compilation.TryGetTypeByMetadataName(TagHelperTypes.ITagHelper, out var iTagHelperType) ||
Language\TagHelpers\Producers\EventHandlerTagHelperProducer.cs (7)
14private readonly INamedTypeSymbol _eventHandlerAttributeType; 16private EventHandlerTagHelperProducer(INamedTypeSymbol eventHandlerAttributeType) 25public override bool IsCandidateType(INamedTypeSymbol type) 30INamedTypeSymbol type, 57INamedTypeSymbol EventArgsType, 79{ Value: INamedTypeSymbol eventArgsType }]) 100{ Value: INamedTypeSymbol eventArgsType },
Language\TagHelpers\Producers\EventHandlerTagHelperProducer.Factory.cs (1)
20if (!compilation.TryGetTypeByMetadataName(ComponentsApi.EventHandlerAttribute.FullTypeName, out var eventHandlerAttributeType))
Language\TagHelpers\Producers\FormNameTagHelperProducer.cs (2)
14private readonly INamedTypeSymbol _renderTreeBuilderType; 16private FormNameTagHelperProducer(INamedTypeSymbol renderTreeBuilderType)
Language\TagHelpers\Producers\FormNameTagHelperProducer.Factory.cs (1)
37static bool IsValidRenderTreeBuilder(INamedTypeSymbol type)
Language\TagHelpers\Producers\KeyTagHelperProducer.cs (2)
14private readonly INamedTypeSymbol _renderTreeBuilderType; 16private KeyTagHelperProducer(INamedTypeSymbol renderTreeBuilderType)
Language\TagHelpers\Producers\KeyTagHelperProducer.Factory.cs (1)
20if (!compilation.TryGetTypeByMetadataName(ComponentsApi.RenderTreeBuilder.FullTypeName, out var renderTreeBuilderType))
Language\TagHelpers\Producers\RefTagHelperProducer.cs (2)
14private readonly INamedTypeSymbol _elementReferenceType; 16private RefTagHelperProducer(INamedTypeSymbol elementReferenceType)
Language\TagHelpers\Producers\RefTagHelperProducer.Factory.cs (1)
20if (!compilation.TryGetTypeByMetadataName(ComponentsApi.ElementReference.FullTypeName, out var elementReferenceType))
Language\TagHelpers\Producers\RenderModeTagHelperProducer.cs (2)
14private readonly INamedTypeSymbol _iComponentRenderModeType; 16private RenderModeTagHelperProducer(INamedTypeSymbol iComponentRenderModeType)
Language\TagHelpers\Producers\RenderModeTagHelperProducer.Factory.cs (1)
20if (!compilation.TryGetTypeByMetadataName(ComponentsApi.IComponentRenderMode.FullTypeName, out var iComponentRenderModeType))
Language\TagHelpers\Producers\SplatTagHelperProducer.cs (2)
14private readonly INamedTypeSymbol _renderTreeBuilderType; 16private SplatTagHelperProducer(INamedTypeSymbol renderTreeBuilderType)
Language\TagHelpers\Producers\SplatTagHelperProducer.Factory.cs (1)
20if (!compilation.TryGetTypeByMetadataName(ComponentsApi.RenderTreeBuilder.FullTypeName, out var renderTreeBuilderType))
Language\TagHelpers\Producers\TagHelperProducer.cs (2)
36public virtual bool IsCandidateType(INamedTypeSymbol type) => false; 39INamedTypeSymbol type,
Language\TagHelpers\RoslynExtensions.cs (1)
17[NotNullWhen(true)] out INamedTypeSymbol? result)
Language\TypeNameObject.cs (1)
150public static TypeNameObject From(INamedTypeSymbol namedTypeSymbol)
Mvc.Version1_X\ViewComponentTagHelperDescriptorFactory.cs (12)
18private readonly INamedTypeSymbol _viewComponentAttributeSymbol; 19private readonly INamedTypeSymbol _genericTaskSymbol; 20private readonly INamedTypeSymbol _taskSymbol; 21private readonly INamedTypeSymbol _iDictionarySymbol; 50public virtual TagHelperDescriptor CreateDescriptor(INamedTypeSymbol type) 89private bool TryFindInvokeMethod(INamedTypeSymbol type, out IMethodSymbol method, out RazorDiagnostic diagnostic) 113var returnType = selectedMethod.ReturnType as INamedTypeSymbol; 214INamedTypeSymbol dictionaryType; 215if (SymbolEqualityComparer.Default.Equals((parameter.Type as INamedTypeSymbol)?.ConstructedFrom, _iDictionarySymbol)) 217dictionaryType = (INamedTypeSymbol)parameter.Type; 239private string GetShortName(INamedTypeSymbol componentType)
Mvc.Version1_X\ViewComponentTagHelperProducer.cs (6)
14private readonly INamedTypeSymbol _viewComponentAttributeType; 15private readonly INamedTypeSymbol? _nonViewComponentAttributeType; 19INamedTypeSymbol viewComponentAttributeType, 20INamedTypeSymbol? nonViewComponentAttributeType) 32public override bool IsCandidateType(INamedTypeSymbol type) 36INamedTypeSymbol type,
Mvc.Version1_X\ViewComponentTagHelperProducer.Factory.cs (2)
21if (!compilation.TryGetTypeByMetadataName(ViewComponentTypes.ViewComponentAttribute, out var viewComponentAttributeType) || 28var nonViewComponentAttributeType = compilation.GetTypeByMetadataName(ViewComponentTypes.NonViewComponentAttribute);
Mvc.Version2_X\ViewComponentTagHelperDescriptorFactory.cs (13)
18private readonly INamedTypeSymbol _viewComponentAttributeSymbol; 19private readonly INamedTypeSymbol _genericTaskSymbol; 20private readonly INamedTypeSymbol _taskSymbol; 21private readonly INamedTypeSymbol _iDictionarySymbol; 50public virtual TagHelperDescriptor CreateDescriptor(INamedTypeSymbol type) 89private bool TryFindInvokeMethod(INamedTypeSymbol type, out IMethodSymbol method, out RazorDiagnostic diagnostic) 107var returnType = selectedMethod.ReturnType as INamedTypeSymbol; 154private static IReadOnlyList<IMethodSymbol> GetInvokeMethods(INamedTypeSymbol type) 229INamedTypeSymbol dictionaryType; 230if (SymbolEqualityComparer.Default.Equals((parameter.Type as INamedTypeSymbol)?.ConstructedFrom, _iDictionarySymbol)) 232dictionaryType = (INamedTypeSymbol)parameter.Type; 254private string GetShortName(INamedTypeSymbol componentType)
Mvc.Version2_X\ViewComponentTagHelperProducer.cs (6)
14private readonly INamedTypeSymbol _viewComponentAttributeType; 15private readonly INamedTypeSymbol? _nonViewComponentAttributeType; 19INamedTypeSymbol viewComponentAttributeType, 20INamedTypeSymbol? nonViewComponentAttributeType) 32public override bool IsCandidateType(INamedTypeSymbol type) 36INamedTypeSymbol type,
Mvc.Version2_X\ViewComponentTagHelperProducer.Factory.cs (2)
21if (!compilation.TryGetTypeByMetadataName(ViewComponentTypes.ViewComponentAttribute, out var viewComponentAttributeType) || 28var nonViewComponentAttributeType = compilation.GetTypeByMetadataName(ViewComponentTypes.NonViewComponentAttribute);
Mvc\ViewComponentTagHelperDescriptorFactory.cs (13)
18private readonly INamedTypeSymbol _viewComponentAttributeSymbol; 19private readonly INamedTypeSymbol _genericTaskSymbol; 20private readonly INamedTypeSymbol _taskSymbol; 21private readonly INamedTypeSymbol _iDictionarySymbol; 50public virtual TagHelperDescriptor CreateDescriptor(INamedTypeSymbol type) 89private bool TryFindInvokeMethod(INamedTypeSymbol type, out IMethodSymbol method, out RazorDiagnostic diagnostic) 107var returnType = selectedMethod.ReturnType as INamedTypeSymbol; 154private static IReadOnlyList<IMethodSymbol> GetInvokeMethods(INamedTypeSymbol type) 232INamedTypeSymbol dictionaryType; 233if (SymbolEqualityComparer.Default.Equals((parameter.Type as INamedTypeSymbol)?.ConstructedFrom, _iDictionarySymbol)) 235dictionaryType = (INamedTypeSymbol)parameter.Type; 257private string GetShortName(INamedTypeSymbol componentType)
Mvc\ViewComponentTagHelperProducer.cs (6)
14private readonly INamedTypeSymbol _viewComponentAttributeType; 15private readonly INamedTypeSymbol? _nonViewComponentAttributeType; 19INamedTypeSymbol viewComponentAttributeType, 20INamedTypeSymbol? nonViewComponentAttributeType) 32public override bool IsCandidateType(INamedTypeSymbol type) 36INamedTypeSymbol type,
Mvc\ViewComponentTagHelperProducer.Factory.cs (2)
21if (!compilation.TryGetTypeByMetadataName(ViewComponentTypes.ViewComponentAttribute, out var viewComponentAttributeType) || 28var nonViewComponentAttributeType = compilation.GetTypeByMetadataName(ViewComponentTypes.NonViewComponentAttribute);
Microsoft.CodeAnalysis.Rebuild (1)
CompilationFactory.cs (1)
179var typeSymbol = rebuildCompilation.GetTypeByMetadataName(mainTypeName);
Microsoft.CodeAnalysis.ResxSourceGenerator (578)
AbstractResxGenerator.cs (1)
42var methodImplOptions = compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemRuntimeCompilerServicesMethodImplOptions);
src\roslyn\src\Compilers\Core\Portable\SourceGeneration\GeneratedCodeUtilities.cs (1)
19ISymbol symbol, INamedTypeSymbol generatedCodeAttribute)
src\roslyn\src\RoslynAnalyzers\Utilities\Compiler\CodeMetrics\CodeAnalysisMetricData.AssemblyMetricData.cs (2)
21ImmutableHashSet<INamedTypeSymbol> coupledNamedTypes, 45var coupledTypesBuilder = ImmutableHashSet.CreateBuilder<INamedTypeSymbol>();
src\roslyn\src\RoslynAnalyzers\Utilities\Compiler\CodeMetrics\CodeAnalysisMetricData.cs (4)
29ImmutableHashSet<INamedTypeSymbol> coupledNamedTypes, 79public ImmutableHashSet<INamedTypeSymbol> CoupledNamedTypes { get; } 271SymbolKind.NamedType => await NamedTypeMetricData.ComputeAsync((INamedTypeSymbol)symbol, context).ConfigureAwait(false), 309SymbolKind.NamedType => NamedTypeMetricData.ComputeSynchronously((INamedTypeSymbol)symbol, context),
src\roslyn\src\RoslynAnalyzers\Utilities\Compiler\CodeMetrics\CodeAnalysisMetricData.EventMetricData.cs (2)
18ImmutableHashSet<INamedTypeSymbol> coupledNamedTypes, 30var coupledTypesBuilder = ImmutableHashSet.CreateBuilder<INamedTypeSymbol>();
src\roslyn\src\RoslynAnalyzers\Utilities\Compiler\CodeMetrics\CodeAnalysisMetricData.FieldMetricData.cs (2)
18ImmutableHashSet<INamedTypeSymbol> coupledNamedTypes, 29var coupledTypesBuilder = ImmutableHashSet.CreateBuilder<INamedTypeSymbol>();
src\roslyn\src\RoslynAnalyzers\Utilities\Compiler\CodeMetrics\CodeAnalysisMetricData.MethodMetricData.cs (2)
18ImmutableHashSet<INamedTypeSymbol> coupledNamedTypes, 29var coupledTypesBuilder = ImmutableHashSet.CreateBuilder<INamedTypeSymbol>();
src\roslyn\src\RoslynAnalyzers\Utilities\Compiler\CodeMetrics\CodeAnalysisMetricData.NamedTypeMetricData.cs (10)
18INamedTypeSymbol symbol, 21ImmutableHashSet<INamedTypeSymbol> coupledNamedTypes, 31internal static async Task<NamedTypeMetricData> ComputeAsync(INamedTypeSymbol namedType, CodeMetricsAnalysisContext context) 40internal static NamedTypeMetricData ComputeSynchronously(INamedTypeSymbol namedType, CodeMetricsAnalysisContext context) 49private static IEnumerable<ISymbol> GetMembers(INamedTypeSymbol namedType, CodeMetricsAnalysisContext context) 65private static NamedTypeMetricData ComputeFromChildren(INamedTypeSymbol namedType, ImmutableArray<CodeAnalysisMetricData> children, CodeMetricsAnalysisContext context) 67var coupledTypesBuilder = ImmutableHashSet.CreateBuilder<INamedTypeSymbol>(); 130private static int CalculateDepthOfInheritance(INamedTypeSymbol namedType, Func<INamedTypeSymbol, bool> isExcludedFromInheritanceCount) 137var parent = namedType.BaseType;
src\roslyn\src\RoslynAnalyzers\Utilities\Compiler\CodeMetrics\CodeAnalysisMetricData.NamespaceMetricData.cs (7)
20ImmutableHashSet<INamedTypeSymbol> coupledNamedTypes, 44var coupledTypesBuilder = ImmutableHashSet.CreateBuilder<INamedTypeSymbol>(); 76var typesInNamespace = new HashSet<INamedTypeSymbol>(); 77foreach (INamedTypeSymbol typeMember in @namespace.GetTypeMembers()) 83foreach (INamedTypeSymbol namedType in typesInNamespace.OrderBy(t => t.ToDisplayString())) 90void processType(INamedTypeSymbol namedType) 93foreach (INamedTypeSymbol nestedType in namedType.GetTypeMembers())
src\roslyn\src\RoslynAnalyzers\Utilities\Compiler\CodeMetrics\CodeAnalysisMetricData.PropertyMetricData.cs (2)
18ImmutableHashSet<INamedTypeSymbol> coupledNamedTypes, 30var coupledTypesBuilder = ImmutableHashSet.CreateBuilder<INamedTypeSymbol>();
src\roslyn\src\RoslynAnalyzers\Utilities\Compiler\CodeMetrics\CodeMetricsAnalysisContext.cs (2)
18Func<INamedTypeSymbol, bool>? isExcludedFromInheritanceCountFunc = null) 32public Func<INamedTypeSymbol, bool> IsExcludedFromInheritanceCountFunc { get; }
src\roslyn\src\RoslynAnalyzers\Utilities\Compiler\CodeMetrics\MetricsHelper.cs (12)
38internal static void AddCoupledNamedTypes(ImmutableHashSet<INamedTypeSymbol>.Builder builder, WellKnownTypeProvider wellKnownTypeProvider, 39ImmutableHashSet<INamedTypeSymbol> coupledTypes) 41foreach (var coupledType in coupledTypes) 47internal static void AddCoupledNamedTypes(ImmutableHashSet<INamedTypeSymbol>.Builder builder, WellKnownTypeProvider wellKnownTypeProvider, 53internal static void AddCoupledNamedTypes(ImmutableHashSet<INamedTypeSymbol>.Builder builder, WellKnownTypeProvider wellKnownTypeProvider, 194ImmutableHashSet<INamedTypeSymbol>.Builder builder, 348private static void AddCoupledNamedTypesCore(ImmutableHashSet<INamedTypeSymbol>.Builder builder, ITypeSymbol typeOpt, 351if (typeOpt is INamedTypeSymbol usedType && 369static bool isIgnoreableType(INamedTypeSymbol namedType, WellKnownTypeProvider wellKnownTypeProvider) 399internal static void RemoveContainingTypes(ISymbol symbol, ImmutableHashSet<INamedTypeSymbol>.Builder coupledTypesBuilder) 401var namedType = symbol as INamedTypeSymbol ?? symbol.ContainingType;
src\roslyn\src\RoslynAnalyzers\Utilities\Compiler\DiagnosticHelpers.cs (1)
68if (symbol is INamedTypeSymbol namedType &&
src\roslyn\src\RoslynAnalyzers\Utilities\Compiler\DoNotCatchGeneralUnlessRethrown.cs (8)
35protected virtual bool IsConfiguredDisallowedExceptionType(INamedTypeSymbol namedTypeSymbol, IMethodSymbol containingMethod, Compilation compilation, AnalyzerOptions analyzerOptions, CancellationToken cancellationToken) 47INamedTypeSymbol? requiredAttributeType = null; 86bool IsDisallowedCatchType(INamedTypeSymbol type) => 94private INamedTypeSymbol? GetRequiredAttributeType(Compilation compilation) 100private static IReadOnlyCollection<INamedTypeSymbol> GetDisallowedCatchTypes(Compilation compilation) 115private readonly Func<INamedTypeSymbol, bool> _isDisallowedCatchType; 121public DisallowGeneralCatchUnlessRethrowWalker(Func<INamedTypeSymbol, bool> isDisallowedCatchType, bool checkAnonymousFunctions) 163return operation.ExceptionType is INamedTypeSymbol exceptionType &&
src\roslyn\src\RoslynAnalyzers\Utilities\Compiler\Extensions\CompilationExtensions.cs (4)
21/// <returns>The <see cref="INamedTypeSymbol"/> if found, null otherwise.</returns> 22internal static INamedTypeSymbol? GetOrCreateTypeByMetadataName(this Compilation compilation, string fullTypeName) => 30/// <returns>The <see cref="INamedTypeSymbol"/> if found, null otherwise.</returns> 31internal static bool TryGetOrCreateTypeByMetadataName(this Compilation compilation, string fullTypeName, [NotNullWhen(returnValue: true)] out INamedTypeSymbol? namedTypeSymbol) =>
src\roslyn\src\RoslynAnalyzers\Utilities\Compiler\Extensions\IMethodSymbolExtensions.cs (42)
89public static bool IsImplementationOfInterfaceMethod(this IMethodSymbol method, ITypeSymbol? typeArgument, [NotNullWhen(returnValue: true)] INamedTypeSymbol? interfaceType, string interfaceMethodName) 91INamedTypeSymbol? constructedInterface = typeArgument != null ? interfaceType?.Construct(typeArgument) : interfaceType; 102INamedTypeSymbol? iDisposable = compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemIDisposable); 111INamedTypeSymbol? iAsyncDisposable = compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemIAsyncDisposable); 112INamedTypeSymbol? valueTaskType = compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemThreadingTasksValueTask); 119public static bool IsDisposeImplementation([NotNullWhen(returnValue: true)] this IMethodSymbol? method, [NotNullWhen(returnValue: true)] INamedTypeSymbol? iDisposable) 141public static bool IsAsyncDisposeImplementation([NotNullWhen(returnValue: true)] this IMethodSymbol? method, [NotNullWhen(returnValue: true)] INamedTypeSymbol? iAsyncDisposable, [NotNullWhen(returnValue: true)] INamedTypeSymbol? valueTaskType) 200private static bool HasDisposeCloseAsyncMethodSignature(this IMethodSymbol method, INamedTypeSymbol? taskType) 208INamedTypeSymbol? task, 209INamedTypeSymbol? valueTask, 210INamedTypeSymbol? configuredValueTaskAwaitable) 223private static bool HasOverriddenDisposeCoreAsyncMethodSignature(this IMethodSymbol method, [NotNullWhen(returnValue: true)] INamedTypeSymbol? task) 236private static bool HasVirtualOrOverrideDisposeCoreAsyncMethodSignature(this IMethodSymbol method, [NotNullWhen(returnValue: true)] INamedTypeSymbol? valueTask) 250INamedTypeSymbol? iDisposable = compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemIDisposable); 251INamedTypeSymbol? iAsyncDisposable = compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemIAsyncDisposable); 252INamedTypeSymbol? configuredAsyncDisposable = compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemRuntimeCompilerServicesConfiguredAsyncDisposable); 253INamedTypeSymbol? task = compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemThreadingTasksTask); 254INamedTypeSymbol? valueTask = compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemThreadingTasksValueTask); 255INamedTypeSymbol? configuredValueTaskAwaitable = compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemRuntimeCompilerServicesConfiguredValueTaskAwaitable); 264INamedTypeSymbol? iDisposable, 265INamedTypeSymbol? iAsyncDisposable, 266INamedTypeSymbol? configuredAsyncDisposable, 267INamedTypeSymbol? task, 268INamedTypeSymbol? valueTask, 269INamedTypeSymbol? configuredValueTaskAwaitable) 311public static bool IsSerializationConstructor([NotNullWhen(returnValue: true)] this IMethodSymbol? method, INamedTypeSymbol? serializationInfoType, INamedTypeSymbol? streamingContextType) 317public static bool IsGetObjectData([NotNullWhen(returnValue: true)] this IMethodSymbol? method, INamedTypeSymbol? serializationInfoType, INamedTypeSymbol? streamingContextType) 364public static bool IsCollectionAddMethod(this IMethodSymbol method, ImmutableHashSet<INamedTypeSymbol> iCollectionTypes) 385public static bool IsTaskFromResultMethod(this IMethodSymbol method, [NotNullWhen(returnValue: true)] INamedTypeSymbol? taskType) 394public static bool IsTaskConfigureAwaitMethod(this IMethodSymbol method, [NotNullWhen(returnValue: true)] INamedTypeSymbol? genericTaskType) 406public static bool IsAsyncDisposableConfigureAwaitMethod(this IMethodSymbol method, [NotNullWhen(returnValue: true)] INamedTypeSymbol? asyncDisposableType, [NotNullWhen(returnValue: true)] INamedTypeSymbol? taskAsyncEnumerableExtensions) 483public static bool IsLockMethod(this IMethodSymbol method, [NotNullWhen(returnValue: true)] INamedTypeSymbol? systemThreadingMonitor) 493public static bool IsInterlockedExchangeMethod(this IMethodSymbol method, INamedTypeSymbol? systemThreadingInterlocked) 505public static bool IsInterlockedCompareExchangeMethod(this IMethodSymbol method, INamedTypeSymbol? systemThreadingInterlocked) 536public static bool IsBenchmarkOrXUnitTestMethod(this IMethodSymbol method, ConcurrentDictionary<INamedTypeSymbol, bool> knownTestAttributes, INamedTypeSymbol? benchmarkAttribute, INamedTypeSymbol? xunitFactAttribute) 561var typeSymbol = methodSymbol.ContainingType;
src\roslyn\src\RoslynAnalyzers\Utilities\Compiler\Extensions\INamedTypeSymbolExtensions.cs (9)
17public static bool IsFileLocal(this INamedTypeSymbol symbol) => symbol.IsFileLocal; 41public static bool DerivesFromOrImplementsAnyConstructionOf(this INamedTypeSymbol type, INamedTypeSymbol parentType) 48for (INamedTypeSymbol? baseType = type.OriginalDefinition; 66public static bool OverridesEquals(this INamedTypeSymbol symbol) 72public static bool IsBenchmarkOrXUnitTestAttribute(this INamedTypeSymbol attributeClass, ConcurrentDictionary<INamedTypeSymbol, bool> knownTestAttributes, INamedTypeSymbol? benchmarkAttribute, INamedTypeSymbol? xunitFactAttribute)
src\roslyn\src\RoslynAnalyzers\Utilities\Compiler\Extensions\IPropertySymbolExtensions.cs (1)
36var typeSymbol = propertySymbol.ContainingType;
src\roslyn\src\RoslynAnalyzers\Utilities\Compiler\Extensions\ISymbolExtensions.cs (9)
153foreach (INamedTypeSymbol interfaceSymbol in symbol.ContainingType.AllInterfaces) 240public static AttributeData? GetAttribute(this ISymbol symbol, [NotNullWhen(true)] INamedTypeSymbol? attributeType) 245public static IEnumerable<AttributeData> GetAttributes(this ISymbol symbol, IEnumerable<INamedTypeSymbol?> attributesToMatch) 252foreach (var attributeToMatch in attributesToMatch) 263public static IEnumerable<AttributeData> GetAttributes(this ISymbol symbol, params INamedTypeSymbol?[] attributeTypesToMatch) 268public static bool HasAnyAttribute(this ISymbol symbol, IEnumerable<INamedTypeSymbol> attributesToMatch) 273public static bool HasAnyAttribute(this ISymbol symbol, params INamedTypeSymbol?[] attributeTypesToMatch) 292public static bool HasDerivedTypeAttribute(this ITypeSymbol symbol, [NotNullWhen(returnValue: true)] INamedTypeSymbol? attribute) 331public static bool HasDerivedMethodAttribute(this IMethodSymbol symbol, [NotNullWhen(returnValue: true)] INamedTypeSymbol? attribute)
src\roslyn\src\RoslynAnalyzers\Utilities\Compiler\Extensions\ITypeSymbolExtensions.cs (14)
116INamedTypeSymbol? iDisposable, 117INamedTypeSymbol? iAsyncDisposable, 118INamedTypeSymbol? configuredAsyncDisposable) 138static bool IsInterfaceOrImplementsInterface(ITypeSymbol type, INamedTypeSymbol? interfaceType) 148public static IEnumerable<AttributeData> GetApplicableAttributes(this INamedTypeSymbol type, INamedTypeSymbol? attributeUsageAttribute) 180static bool IsInheritedAttribute(AttributeData attributeData, INamedTypeSymbol attributeUsageAttribute) 182for (var currentAttributeClass = attributeData.AttributeClass; 215public static IEnumerable<AttributeData> GetApplicableExportAttributes(this INamedTypeSymbol? type, INamedTypeSymbol? exportAttributeV1, INamedTypeSymbol? exportAttributeV2, INamedTypeSymbol? inheritedExportAttribute) 263=> typeSymbol.IsNullableValueType() && ((INamedTypeSymbol)typeSymbol).TypeArguments[0].SpecialType == SpecialType.System_Boolean; 266=> (typeSymbol as INamedTypeSymbol)?.TupleUnderlyingType ?? typeSymbol;
src\roslyn\src\RoslynAnalyzers\Utilities\Compiler\Options\AnalyzerOptionsExtensions.cs (9)
279if (symbol is INamedTypeSymbol namedType && !excludedTypeNamesWithDerivedTypes.IsEmpty) 281foreach (var type in namedType.GetBaseTypesAndThis()) 377public static SymbolNamesWithValueOption<INamedTypeSymbol?> GetAdditionalRequiredGenericInterfaces( 384private static SymbolNamesWithValueOption<INamedTypeSymbol?> GetAdditionalRequiredGenericInterfaces( 392static SymbolNamesWithValueOption<INamedTypeSymbol?>.NameParts GetParts(string name, Compilation compilation) 399return new SymbolNamesWithValueOption<INamedTypeSymbol?>.NameParts(name, null); 411matchingSymbols[0] is not INamedTypeSymbol namedType || 416return new SymbolNamesWithValueOption<INamedTypeSymbol?>.NameParts(split[0], null); 419return new SymbolNamesWithValueOption<INamedTypeSymbol?>.NameParts(split[0], namedType);
src\roslyn\src\RoslynAnalyzers\Utilities\Compiler\WellKnownTypeProvider.cs (11)
32_fullNameToTypeMap = new ConcurrentDictionary<string, INamedTypeSymbol?>(StringComparer.Ordinal); 65/// Mapping of full name to <see cref="INamedTypeSymbol"/>. 67private readonly ConcurrentDictionary<string, INamedTypeSymbol?> _fullNameToTypeMap; 94[NotNullWhen(returnValue: true)] out INamedTypeSymbol? namedTypeSymbol) 106[NotNullWhen(returnValue: true)] out INamedTypeSymbol? namedTypeSymbol) 118INamedTypeSymbol? type = null; 152var currentType = referencedAssembly.GetTypeByMetadataName(fullyQualifiedMetadataName); 188/// <returns>The <see cref="INamedTypeSymbol"/> if found, null otherwise.</returns> 189public INamedTypeSymbol? GetOrCreateTypeByMetadataName(string fullTypeName) 191TryGetOrCreateTypeByMetadataName(fullTypeName, out INamedTypeSymbol? namedTypeSymbol); 209&& typeSymbol is INamedTypeSymbol namedTypeSymbol
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Extensions\CollectionExpressionUtilities.cs (7)
61if (type is INamedTypeSymbol namedType) 71var ienumerableOfTType = compilation.IEnumerableOfTType(); 72var ienumerableType = compilation.IEnumerableType(); 73var foundType = 146Compilation compilation, INamedTypeSymbol collectionExpressionType) 148var readonlySpanOfTType = compilation.ReadOnlySpanOfTType(); 155if (attribute is not { ConstructorArguments: [{ Value: INamedTypeSymbol builderType }, { Value: string builderMethodName }] })
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Extensions\KnownTypes.cs (8)
11public readonly INamedTypeSymbol? TaskType = compilation.TaskType(); 12public readonly INamedTypeSymbol? TaskOfTType = compilation.TaskOfTType(); 13public readonly INamedTypeSymbol? ValueTaskType = compilation.ValueTaskType(); 14public readonly INamedTypeSymbol? ValueTaskOfTType = compilation.ValueTaskOfTType(); 16public readonly INamedTypeSymbol? IEnumerableOfTType = compilation.IEnumerableOfTType(); 17public readonly INamedTypeSymbol? IEnumeratorOfTType = compilation.IEnumeratorOfTType(); 19public readonly INamedTypeSymbol? IAsyncEnumerableOfTType = compilation.IAsyncEnumerableOfTType(); 20public readonly INamedTypeSymbol? IAsyncEnumeratorOfTType = compilation.IAsyncEnumeratorOfTType();
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Extensions\OperationExtensions.cs (2)
405var notImplementedExceptionType = compilation.NotImplementedExceptionType(); 454static bool IsThrowNotImplementedOperation(INamedTypeSymbol notImplementedExceptionType, IOperation? operation)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Extensions\SemanticModelExtensions.cs (4)
84return semanticModel.GetEnclosingSymbol<INamedTypeSymbol>(position, cancellationToken) ?? 88public static INamedTypeSymbol? GetEnclosingNamedType(this SemanticModel semanticModel, int position, CancellationToken cancellationToken) 89=> semanticModel.GetEnclosingSymbol<INamedTypeSymbol>(position, cancellationToken); 172var enumerableType = semanticModel.Compilation.IEnumerableOfTType();
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\FlowAnalysis\SymbolUsageAnalysis\SymbolUsageAnalysis.DataFlowAnalyzer.FlowGraphAnalysisData.cs (1)
143if (owningSymbol.ContainingSymbol is INamedTypeSymbol { IsExtension: true, ExtensionParameter: { } extensionParameter })
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\NamingStyles\NamingStyleRules.cs (3)
65var containingType = symbol.ContainingType; 87var containingType = symbol.ContainingType; 90foreach (var implementedInterface in implementedInterfaces)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Services\SemanticFacts\ISemanticFacts.cs (4)
68bool LastEnumValueHasInitializer(INamedTypeSymbol namedTypeSymbol); 89bool IsPartial(INamedTypeSymbol typeSymbol, CancellationToken cancellationToken); 108bool IsInExpressionTree(SemanticModel semanticModel, SyntaxNode node, [NotNullWhen(true)] INamedTypeSymbol? expressionType, CancellationToken cancellationToken); 123bool TryGetPrimaryConstructor(INamedTypeSymbol typeSymbol, [NotNullWhen(true)] out IMethodSymbol? primaryConstructor);
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\SymbolKey\SymbolKey.AnonymousFunctionOrDelegateSymbolKey.cs (1)
65var anonymousDelegate = methodSymbol.AssociatedAnonymousDelegate;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\SymbolKey\SymbolKey.AnonymousTypeSymbolKey.cs (5)
13private sealed class AnonymousTypeSymbolKey : AbstractSymbolKey<INamedTypeSymbol> 17public sealed override void Create(INamedTypeSymbol symbol, SymbolKeyWriter visitor) 34SymbolKeyReader reader, INamedTypeSymbol? contextualSymbol, out string? failureReason) 40using var propertyTypes = reader.ReadSymbolKeyArray<INamedTypeSymbol, ITypeSymbol>( 64var anonymousType = reader.Compilation.CreateAnonymousTypeSymbol(
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\SymbolKey\SymbolKey.cs (5)
43/// <item>Two <see cref="INamedTypeSymbol"/>s are the "same" if they have 46/// equal <see cref="INamedTypeSymbol.Arity"/> and 47/// the "same" <see cref="INamedTypeSymbol.TypeArguments"/>.</item> 301foreach (var containingType in containingTypeResolution.OfType<INamedTypeSymbol>())
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\SymbolKey\SymbolKey.ErrorTypeSymbolKey.cs (9)
12private sealed class ErrorTypeSymbolKey : AbstractSymbolKey<INamedTypeSymbol> 16public sealed override void Create(INamedTypeSymbol symbol, SymbolKeyWriter visitor) 21case INamedTypeSymbol parentType: 65SymbolKeyReader reader, INamedTypeSymbol? contextualType, out string? failureReason) 72using var typeArguments = reader.ReadSymbolKeyArray<INamedTypeSymbol, ITypeSymbol>( 92using var result = PooledArrayBuilder<INamedTypeSymbol>.GetInstance(); 97var originalType = reader.Compilation.CreateErrorTypeSymbol(container, name, arity); 98var errorType = typeArgumentsArray != null ? originalType.Construct(typeArgumentsArray) : originalType; 110SymbolKeyReader reader, INamedTypeSymbol? contextualType, out string? failureReason)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\SymbolKey\SymbolKey.FunctionPointerTypeSymbolKey.cs (2)
37var callingConventionModifiers = ImmutableArray<INamedTypeSymbol>.Empty; 40using var modifiersBuilder = reader.ReadSymbolKeyArray<IFunctionPointerTypeSymbol, INamedTypeSymbol>(
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\SymbolKey\SymbolKey.NamedTypeSymbolKey.cs (13)
9private sealed class NamedTypeSymbolKey : AbstractSymbolKey<INamedTypeSymbol> 13public sealed override void Create(INamedTypeSymbol symbol, SymbolKeyWriter visitor) 33SymbolKeyReader reader, INamedTypeSymbol? contextualSymbol, out string? failureReason) 48using var typeArguments = reader.ReadSymbolKeyArray<INamedTypeSymbol, ITypeSymbol>( 90INamedTypeSymbol? contextualType, 126using var result = PooledArrayBuilder<INamedTypeSymbol>.GetInstance(); 155using var result = PooledArrayBuilder<INamedTypeSymbol>.GetInstance(); 163PooledArrayBuilder<INamedTypeSymbol> result) 168foreach (var type in container.GetTypeMembers()) 176foreach (var type in container.GetTypeMembers(name, arity)) 200private static INamedTypeSymbol Construct(INamedTypeSymbol type, bool isUnboundGenericType, ITypeSymbol[] typeArguments) 202var currentType = typeArguments.Length > 0 ? type.Construct(typeArguments) : type;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\SymbolKey\SymbolKey.ParameterSymbolKey.cs (2)
64var delegateInvoke = (eventSymbol.Type as INamedTypeSymbol)?.DelegateInvokeMethod; 73case INamedTypeSymbol { IsExtension: true, ExtensionParameter: { } extensionParameter }:
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\SymbolKey\SymbolKey.SymbolKeyWriter.cs (2)
405public override void VisitNamedType(INamedTypeSymbol namedTypeSymbol) 412else if (namedTypeSymbol.IsTupleType && namedTypeSymbol.TupleUnderlyingType is INamedTypeSymbol underlyingType && underlyingType != namedTypeSymbol)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\SymbolKey\SymbolKey.TupleTypeSymbolKey.cs (10)
14private sealed class TupleTypeSymbolKey : AbstractSymbolKey<INamedTypeSymbol> 18public sealed override void Create(INamedTypeSymbol symbol, SymbolKeyWriter visitor) 53SymbolKeyReader reader, INamedTypeSymbol? contextualSymbol, out string? failureReason) 64SymbolKeyReader reader, INamedTypeSymbol? contextualSymbol, out string? failureReason) 78using var result = PooledArrayBuilder<INamedTypeSymbol>.GetInstance(); 81foreach (var namedType in underlyingTypeResolution.OfType<INamedTypeSymbol>()) 92SymbolKeyReader reader, INamedTypeSymbol? contextualType, out string? failureReason) 96using var elementTypes = reader.ReadSymbolKeyArray<INamedTypeSymbol, ITypeSymbol>( 120var result = reader.Compilation.CreateTupleTypeSymbol(
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Utilities\AbstractSpeculationAnalyzer.cs (5)
417var type = methodSymbol.ContainingType; 418var newType = newMethodSymbol.ContainingType; 491private static bool EnumTypesAreCompatible(INamedTypeSymbol type1, INamedTypeSymbol type2) 990var newSymbolContainingType = newSymbol.ContainingType;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Utilities\EnumValueUtilities.cs (1)
21public static object GetNextEnumValue(INamedTypeSymbol enumType)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Compilation\CompilationExtensions.cs (82)
78public static INamedTypeSymbol? ArgumentExceptionType(this Compilation compilation) 81public static INamedTypeSymbol? ArgumentNullExceptionType(this Compilation compilation) 84public static INamedTypeSymbol? ArgumentOutOfRangeExceptionType(this Compilation compilation) 87public static INamedTypeSymbol? ArrayType(this Compilation compilation) 90public static INamedTypeSymbol? AttributeType(this Compilation compilation) 93public static INamedTypeSymbol? BlockingCollectionOfTType(this Compilation compilation) 96public static INamedTypeSymbol? CollectionOfTType(this Compilation compilation) 99public static INamedTypeSymbol? ExceptionType(this Compilation compilation) 102public static INamedTypeSymbol? DebuggerDisplayAttributeType(this Compilation compilation) 105public static INamedTypeSymbol? StructLayoutAttributeType(this Compilation compilation) 108public static INamedTypeSymbol? InlineArrayAttributeType(this Compilation compilation) 111public static INamedTypeSymbol? DesignerCategoryAttributeType(this Compilation compilation) 114public static INamedTypeSymbol? DesignerGeneratedAttributeType(this Compilation compilation) 117public static INamedTypeSymbol? HideModuleNameAttribute(this Compilation compilation) 120public static INamedTypeSymbol? ThreadStaticAttributeType(this Compilation compilation) 123public static INamedTypeSymbol? FormattableStringType(this Compilation compilation) 126public static INamedTypeSymbol? IFormattableType(this Compilation compilation) 129public static INamedTypeSymbol? EventArgsType(this Compilation compilation) 132public static INamedTypeSymbol? NotImplementedExceptionType(this Compilation compilation) 135public static INamedTypeSymbol? EqualityComparerOfTType(this Compilation compilation) 138public static INamedTypeSymbol? ActionType(this Compilation compilation) 141public static INamedTypeSymbol? ExpressionOfTType(this Compilation compilation) 144public static INamedTypeSymbol? EditorBrowsableAttributeType(this Compilation compilation) 147public static INamedTypeSymbol? EditorBrowsableStateType(this Compilation compilation) 150public static INamedTypeSymbol? TaskType(this Compilation compilation) 153public static INamedTypeSymbol? TaskOfTType(this Compilation compilation) 156public static INamedTypeSymbol? ValueTaskType(this Compilation compilation) 159public static INamedTypeSymbol? ValueTaskOfTType(this Compilation compilation) 162public static INamedTypeSymbol? ICollectionOfTType(this Compilation compilation) 165public static INamedTypeSymbol? IEnumerableType(this Compilation compilation) 168public static INamedTypeSymbol? IEnumerableOfTType(this Compilation compilation) 171public static INamedTypeSymbol? IEnumeratorOfTType(this Compilation compilation) 174public static INamedTypeSymbol? IListOfTType(this Compilation compilation) 177public static INamedTypeSymbol? IReadOnlyListOfTType(this Compilation compilation) 180public static INamedTypeSymbol? ISetOfTType(this Compilation compilation) 183public static INamedTypeSymbol? IReadOnlySetOfTType(this Compilation compilation) 186public static INamedTypeSymbol? IAsyncEnumerableOfTType(this Compilation compilation) 189public static INamedTypeSymbol? IAsyncEnumeratorOfTType(this Compilation compilation) 192public static INamedTypeSymbol? ImmutableArrayOfTType(this Compilation compilation) 195public static INamedTypeSymbol? SerializableAttributeType(this Compilation compilation) 198public static INamedTypeSymbol? CoClassType(this Compilation compilation) 201public static INamedTypeSymbol? ComAliasNameAttributeType(this Compilation compilation) 204public static INamedTypeSymbol? SuppressMessageAttributeType(this Compilation compilation) 207public static INamedTypeSymbol? TupleElementNamesAttributeType(this Compilation compilation) 210public static INamedTypeSymbol? NativeIntegerAttributeType(this Compilation compilation) 213public static INamedTypeSymbol? DynamicAttributeType(this Compilation compilation) 216public static INamedTypeSymbol? LazyOfTType(this Compilation compilation) 219public static INamedTypeSymbol? ISerializableType(this Compilation compilation) 222public static INamedTypeSymbol? SerializationInfoType(this Compilation compilation) 225public static INamedTypeSymbol? StreamingContextType(this Compilation compilation) 228public static INamedTypeSymbol? OnDeserializingAttribute(this Compilation compilation) 231public static INamedTypeSymbol? OnDeserializedAttribute(this Compilation compilation) 234public static INamedTypeSymbol? OnSerializingAttribute(this Compilation compilation) 237public static INamedTypeSymbol? OnSerializedAttribute(this Compilation compilation) 240public static INamedTypeSymbol? ComRegisterFunctionAttribute(this Compilation compilation) 243public static INamedTypeSymbol? ComUnregisterFunctionAttribute(this Compilation compilation) 246public static INamedTypeSymbol? ConditionalAttribute(this Compilation compilation) 249public static INamedTypeSymbol? ObsoleteAttribute(this Compilation compilation) 252public static INamedTypeSymbol? SystemCompositionImportingConstructorAttribute(this Compilation compilation) 255public static INamedTypeSymbol? SystemComponentModelCompositionImportingConstructorAttribute(this Compilation compilation) 258public static INamedTypeSymbol? SystemIDisposableType(this Compilation compilation) 261public static INamedTypeSymbol? NotNullAttribute(this Compilation compilation) 264public static INamedTypeSymbol? MaybeNullAttribute(this Compilation compilation) 267public static INamedTypeSymbol? MaybeNullWhenAttribute(this Compilation compilation) 270public static INamedTypeSymbol? AllowNullAttribute(this Compilation compilation) 273public static INamedTypeSymbol? DisallowNullAttribute(this Compilation compilation) 276public static INamedTypeSymbol? DataMemberAttribute(this Compilation compilation) 279public static INamedTypeSymbol? DataContractAttribute(this Compilation compilation) 282public static INamedTypeSymbol? AsyncMethodBuilderAttribute(this Compilation compilation) 285public static INamedTypeSymbol? CancellationTokenType(this Compilation compilation) 288public static INamedTypeSymbol? ValueTupleType(this Compilation compilation, int arity) 291public static INamedTypeSymbol? ListOfTType(this Compilation compilation) 294public static INamedTypeSymbol? ReadOnlySpanOfTType(this Compilation compilation) 297public static INamedTypeSymbol? SpanOfTType(this Compilation compilation) 300public static INamedTypeSymbol? InterpolatedStringHandlerAttributeType(this Compilation compilation) 303public static INamedTypeSymbol? DateOnlyType(this Compilation compilation) 306public static INamedTypeSymbol? TimeOnlyType(this Compilation compilation) 334public static INamedTypeSymbol? GetBestTypeByMetadataName(this Compilation compilation, string fullyQualifiedMetadataName) 336INamedTypeSymbol? type = null; 338foreach (var currentType in compilation.GetTypesByMetadataName(fullyQualifiedMetadataName)) 373foreach (var candidateTopLevelType in compilation.SourceModule.GlobalNamespace.GetTypeMembers(WellKnownMemberNames.TopLevelStatementsEntryPointTypeName, arity: 0)) 385public static INamedTypeSymbol? TryGetCallingConventionSymbol(this Compilation compilation, string callingConvention)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\IMethodSymbolExtensions.cs (6)
26foreach (var nestedType in methodSymbol.ContainingType.GetTypeMembers()) 72public static bool HasEventHandlerSignature(this IMethodSymbol method, [NotNullWhen(returnValue: true)] INamedTypeSymbol? eventArgsType) 131public static bool IsEntryPoint(this IMethodSymbol methodSymbol, INamedTypeSymbol? taskType, INamedTypeSymbol? genericTaskType) 147if (method.ReturnType is not INamedTypeSymbol { Arity: 0 }) 169var containingType = constructor.ContainingType;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\INamedTypeSymbolExtensions.cs (77)
24public static IEnumerable<INamedTypeSymbol> GetBaseTypesAndThis(this INamedTypeSymbol? namedType) 26var current = namedType; 34public static IEnumerable<INamedTypeSymbol> GetContainingTypesAndThis(this INamedTypeSymbol? namedType) 36var current = namedType; 44public static ImmutableArray<ITypeParameterSymbol> GetAllTypeParameters(this INamedTypeSymbol? symbol) 50public static ImmutableArray<ITypeSymbol> GetAllTypeArguments(this INamedTypeSymbol? symbol) 56private static Stack<INamedTypeSymbol> GetContainmentStack(INamedTypeSymbol? symbol) 58var stack = new Stack<INamedTypeSymbol>(); 59for (var current = symbol; current != null; current = current.ContainingType) 67public static bool IsContainedWithin([NotNullWhen(returnValue: true)] this INamedTypeSymbol? symbol, INamedTypeSymbol outer) 70for (var current = symbol; current != null; current = current.ContainingType) 81public static ISymbol? FindImplementationForAbstractMember(this INamedTypeSymbol? type, ISymbol symbol) 92private static bool ImplementationExists(INamedTypeSymbol classOrStructType, ISymbol member) 96this INamedTypeSymbol classOrStructType, 98Func<INamedTypeSymbol, ISymbol, bool> isValidImplementation, 128private static bool IsInterfacePropertyImplemented(INamedTypeSymbol classOrStructType, IPropertySymbol propertySymbol) 136static bool IsAccessorImplemented(IMethodSymbol? accessor, INamedTypeSymbol classOrStructType) 142private static bool IsAbstractPropertyImplemented(INamedTypeSymbol classOrStructType, IPropertySymbol propertySymbol) 165this INamedTypeSymbol classOrStructType, 167Func<INamedTypeSymbol, ISymbol, bool> isValid, 190public static ImmutableArray<(INamedTypeSymbol type, ImmutableArray<ISymbol> members)> GetAllUnimplementedMembers( 191this INamedTypeSymbol classOrStructType, 192IEnumerable<INamedTypeSymbol> interfaces, 208static ImmutableArray<ISymbol> GetImplicitlyImplementableMembers(INamedTypeSymbol type, ISymbol within) 260public static ImmutableArray<(INamedTypeSymbol type, ImmutableArray<ISymbol> members)> GetAllUnimplementedMembersInThis( 261this INamedTypeSymbol classOrStructType, 262IEnumerable<INamedTypeSymbol> interfacesOrAbstractClasses, 278public static ImmutableArray<(INamedTypeSymbol type, ImmutableArray<ISymbol> members)> GetAllUnimplementedMembersInThis( 279this INamedTypeSymbol classOrStructType, 280IEnumerable<INamedTypeSymbol> interfacesOrAbstractClasses, 281Func<INamedTypeSymbol, ISymbol, ImmutableArray<ISymbol>> interfaceMemberGetter, 297public static ImmutableArray<(INamedTypeSymbol type, ImmutableArray<ISymbol> members)> GetAllUnimplementedExplicitMembers( 298this INamedTypeSymbol classOrStructType, 299IEnumerable<INamedTypeSymbol> interfaces, 311private static ImmutableArray<ISymbol> GetExplicitlyImplementableMembers(INamedTypeSymbol type, ISymbol within) 338private static ImmutableArray<(INamedTypeSymbol type, ImmutableArray<ISymbol> members)> GetAllUnimplementedMembers( 339this INamedTypeSymbol classOrStructType, 340IEnumerable<INamedTypeSymbol> interfacesOrAbstractClasses, 341Func<INamedTypeSymbol, ISymbol, Func<INamedTypeSymbol, ISymbol, bool>, CancellationToken, bool> isImplemented, 342Func<INamedTypeSymbol, ISymbol, bool> isValidImplementation, 343Func<INamedTypeSymbol, ISymbol, ImmutableArray<ISymbol>> interfaceMemberGetter, 372private static ImmutableArray<INamedTypeSymbol> GetTypesToImplement( 373INamedTypeSymbol classOrStructType, 374IEnumerable<INamedTypeSymbol> interfacesOrAbstractClasses, 383private static ImmutableArray<INamedTypeSymbol> GetAbstractClassesToImplement( 384IEnumerable<INamedTypeSymbol> abstractClasses) 389private static ImmutableArray<INamedTypeSymbol> GetInterfacesToImplement( 390INamedTypeSymbol classOrStructType, 391IEnumerable<INamedTypeSymbol> interfaces, 398var interfacesToImplement = new List<INamedTypeSymbol>( 403var baseType = classOrStructType.BaseType; 414this INamedTypeSymbol classOrStructType, 415INamedTypeSymbol interfaceType, 416Func<INamedTypeSymbol, ISymbol, Func<INamedTypeSymbol, ISymbol, bool>, CancellationToken, bool> isImplemented, 417Func<INamedTypeSymbol, ISymbol, bool> isValidImplementation, 418Func<INamedTypeSymbol, ISymbol, ImmutableArray<ISymbol>> interfaceMemberGetter, 460this INamedTypeSymbol attributeSymbol, 466var systemAttributeType = compilation.AttributeType(); 468foreach (var type in attributeSymbol.GetBaseTypesAndThis()) 528private static ImmutableArray<ISymbol> GetMembers(INamedTypeSymbol type, ISymbol within) 542this INamedTypeSymbol containingType, CancellationToken cancellationToken) 559foreach (var type in baseTypes) 580Dictionary<ISymbol, int> result, INamedTypeSymbol containingType, CancellationToken cancellationToken) 601Dictionary<ISymbol, int> result, INamedTypeSymbol containingType, CancellationToken cancellationToken) 623Dictionary<ISymbol, int> result, INamedTypeSymbol containingType, 624INamedTypeSymbol type, ref int index, CancellationToken cancellationToken) 637private static bool IsOverridable(ISymbol member, INamedTypeSymbol containingType) 680public static INamedTypeSymbol TryConstruct(this INamedTypeSymbol type, ITypeSymbol[] typeArguments) 683public static bool IsCollectionBuilderAttribute([NotNullWhen(true)] this INamedTypeSymbol? type) 702public static bool IsIEnumerableOfT([NotNullWhen(true)] this INamedTypeSymbol? type)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\INamespaceOrTypeSymbolExtensions.cs (3)
90public static IEnumerable<INamedTypeSymbol> GetAllTypes( 106var namedType = (INamedTypeSymbol)current;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\ISymbolExtensions.cs (16)
99foreach (var baseType in symbol.ContainingType.GetBaseTypes()) 108bool TryFindLooseMatch(ISymbol symbol, INamedTypeSymbol baseType, [NotNullWhen(true)] out ISymbol? looseMatch) 157foreach (var iface in symbol.ContainingType.AllInterfaces) 215public static INamedTypeSymbol? GetContainingTypeOrThis(this ISymbol symbol) 217if (symbol is INamedTypeSymbol namedType) 311=> symbol is INamedTypeSymbol { IsAnonymousType: true }; 354SymbolKind.NamedType => ((INamedTypeSymbol)symbol).Arity, 435INamedTypeSymbol nt => nt.TypeParameters, 456INamedTypeSymbol nt => nt.TypeArguments, 465var containingType = symbol.ContainingType; 506var delegateType = compilation.GetTypeByMetadataName(method.ReturnsVoid 535=> symbol is INamedTypeSymbol { IsStatic: true }; 551foreach (var type in namespaceOrType.GetAllTypes(cancellationToken)) 568private static bool IsAttributeValidForTargets(INamedTypeSymbol attributeType, AttributeTargets validTargets) 595return ((INamedTypeSymbol)symbol).GetMembers().OfType<IPropertySymbol>().Where(p => p.CanBeReferencedByName); 870public static bool HasAttribute([NotNullWhen(true)] this ISymbol? symbol, [NotNullWhen(true)] INamedTypeSymbol? attributeClass)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\ISymbolExtensions.RequiresUnsafeModifierVisitor.cs (1)
56public override bool VisitNamedType(INamedTypeSymbol symbol)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\ISymbolExtensions_Accessibility.cs (25)
27else if (within is INamedTypeSymbol namedType) 54INamedTypeSymbol within, 67INamedTypeSymbol within, 92Debug.Assert(within is INamedTypeSymbol or IAssemblySymbol); 124return IsNamedTypeAccessible((INamedTypeSymbol)symbol, within); 177private static bool IsNamedTypeAccessible(INamedTypeSymbol type, ISymbol within) 179Debug.Assert(within is INamedTypeSymbol or IAssemblySymbol); 204var containingType = type.ContainingType; 217Debug.Assert(within is INamedTypeSymbol or IAssemblySymbol); 219var withinAssembly = (within as IAssemblySymbol) ?? ((INamedTypeSymbol)within).ContainingAssembly; 248INamedTypeSymbol containingType, 254Debug.Assert(within is INamedTypeSymbol or IAssemblySymbol); 259var originalContainingType = containingType.OriginalDefinition; 260var withinNamedType = within as INamedTypeSymbol; 261var withinAssembly = (within as IAssemblySymbol) ?? ((INamedTypeSymbol)within).ContainingAssembly; 334INamedTypeSymbol? withinType, 337INamedTypeSymbol originalContainingType, 375var current = withinType.OriginalDefinition; 411INamedTypeSymbol originalContainingType) 413Debug.Assert(within is INamedTypeSymbol or IAssemblySymbol); 415if (within is not INamedTypeSymbol withinType) 428INamedTypeSymbol withinType, 429INamedTypeSymbol originalContainingType) 436var current = withinType.OriginalDefinition;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\ITypeGenerator.cs (1)
13ITypeSymbol Construct(INamedTypeSymbol namedType, ITypeSymbol[] typeArguments);
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\ITypeParameterSymbolExtensions.cs (4)
14public static INamedTypeSymbol? GetNamedTypeSymbolConstraint(this ITypeParameterSymbol typeParameter) 17private static INamedTypeSymbol? GetNamedTypeSymbol(ITypeSymbol type) 19return type is INamedTypeSymbol 20? (INamedTypeSymbol)type
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\ITypeSymbolExtensions.AnonymousTypeRemover.cs (1)
42public override ITypeSymbol VisitNamedType(INamedTypeSymbol symbol)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\ITypeSymbolExtensions.CollectTypeParameterSymbolsVisitor.cs (1)
57public override void VisitNamedType(INamedTypeSymbol symbol)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\ITypeSymbolExtensions.CompilationTypeGenerator.cs (1)
19public ITypeSymbol Construct(INamedTypeSymbol namedType, ITypeSymbol[] typeArguments)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\ITypeSymbolExtensions.cs (30)
43public static ImmutableArray<INamedTypeSymbol> GetAllInterfacesIncludingThis(this ITypeSymbol type) 46return type is INamedTypeSymbol { TypeKind: TypeKind.Interface } namedType && !allInterfaces.Contains(namedType) 69underlyingType = ((INamedTypeSymbol)symbol).TypeArguments[0]; 92public static bool IsAnonymousType([NotNullWhen(returnValue: true)] this INamedTypeSymbol? symbol) 95private static HashSet<INamedTypeSymbol> GetOriginalInterfacesAndTheirBaseInterfaces( 97HashSet<INamedTypeSymbol>? symbols = null) 99symbols ??= new HashSet<INamedTypeSymbol>(SymbolEquivalenceComparer.Instance); 101foreach (var interfaceType in type.Interfaces) 120public static IEnumerable<INamedTypeSymbol> GetBaseTypes(this ITypeSymbol? type) 122var current = type?.BaseType; 140public static IEnumerable<INamedTypeSymbol> GetContainingTypes(this ITypeSymbol type) 142var current = type.ContainingType; 198var currentBaseType = type.BaseType; 227for (var b = symbol.BaseType; b != null; b = b.BaseType) 316INamedTypeSymbol n => ContainsAnonymousType(n), 321private static bool ContainsAnonymousType(INamedTypeSymbol type) 417public static INamedTypeSymbol? GetDelegateType(this ITypeSymbol? typeSymbol, Compilation compilation) 421var expressionOfT = compilation.ExpressionOfTType(); 424var typeArgument = ((INamedTypeSymbol)typeSymbol).TypeArguments[0]; 425return typeArgument as INamedTypeSymbol; 430return typeSymbol as INamedTypeSymbol; 583var n2 = t2 as INamedTypeSymbol; 585if (t1 is not INamedTypeSymbol n1) 635public static bool IsEnumType([NotNullWhen(true)] this ITypeSymbol? type, [NotNullWhen(true)] out INamedTypeSymbol? enumType) 639enumType = (INamedTypeSymbol)type; 731if (type is not INamedTypeSymbol 784=> type is INamedTypeSymbol 792=> symbol is INamedTypeSymbol 800=> type is INamedTypeSymbol namedType &&
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\ITypeSymbolExtensions.MinimalAccessibilityVisitor.cs (2)
42foreach (var callingConventionType in symbol.Signature.UnmanagedCallingConventionTypes) 50public override Accessibility VisitNamedType(INamedTypeSymbol symbol)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\ITypeSymbolExtensions.SubstituteTypesVisitor.cs (1)
58public override ITypeSymbol VisitNamedType(INamedTypeSymbol symbol)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\ITypeSymbolExtensions.UnavailableTypeParameterRemover.cs (1)
43public override ITypeSymbol VisitNamedType(INamedTypeSymbol symbol)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\ITypeSymbolExtensions.UnnamedErrorTypeRemover.cs (1)
42public override ITypeSymbol VisitNamedType(INamedTypeSymbol symbol)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\SymbolEquivalenceComparer.cs (12)
149public bool ReturnTypeEquals(IMethodSymbol x, IMethodSymbol y, Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies = null) 164public bool Equals(ISymbol? x, ISymbol? y, Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies) 170private bool EqualsCore(ISymbol? x, ISymbol? y, Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies) 191private static bool IsConstructedFromSelf(INamedTypeSymbol symbol) 213private static OneOrMany<INamedTypeSymbol> Unwrap(INamedTypeSymbol namedType) 219using var builder = TemporaryArray<INamedTypeSymbol>.Empty; 224if (candidate is INamedTypeSymbol candidateType) 257private static TypeKind GetTypeKind(INamedTypeSymbol x)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\SymbolEquivalenceComparer.EquivalenceVisitor.cs (65)
22public bool AreEquivalent(ISymbol? x, ISymbol? y, Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies) 51return AreArrayAndReadOnlySpanEquivalent((IArrayTypeSymbol)x, (INamedTypeSymbol)y, equivalentTypesWithDifferingAssemblies); 55return AreArrayAndReadOnlySpanEquivalent((IArrayTypeSymbol)y, (INamedTypeSymbol)x, equivalentTypesWithDifferingAssemblies); 65private bool AreArrayAndReadOnlySpanEquivalent(IArrayTypeSymbol array, INamedTypeSymbol readOnlySpanType, Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies) 73internal bool AreEquivalent(CustomModifier x, CustomModifier y, Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies) 76internal bool AreEquivalent(ImmutableArray<CustomModifier> x, ImmutableArray<CustomModifier> y, Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies) 112private bool AreEquivalentWorker(ISymbol x, ISymbol y, SymbolKind k, Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies) 126SymbolKind.NamedType => NamedTypesAreEquivalent((INamedTypeSymbol)x, (INamedTypeSymbol)y, equivalentTypesWithDifferingAssemblies), 127SymbolKind.ErrorType => NamedTypesAreEquivalent((INamedTypeSymbol)x, (INamedTypeSymbol)y, equivalentTypesWithDifferingAssemblies), 140private bool ArrayTypesAreEquivalent(IArrayTypeSymbol x, IArrayTypeSymbol y, Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies) 152private bool FieldsAreEquivalent(IFieldSymbol x, IFieldSymbol y, Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies) 170private bool MethodsAreEquivalent(IMethodSymbol x, IMethodSymbol y, Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies, bool considerReturnRefKinds = false) 281private bool NamedTypesAreEquivalent(INamedTypeSymbol x, INamedTypeSymbol y, Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies) 301private bool NamedTypesAreEquivalentError(INamedTypeSymbol x, INamedTypeSymbol y, Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies) 303foreach (var type1 in Unwrap(x)) 306foreach (var type2 in Unwrap(y)) 330private bool HandleNamedTypesWorker(INamedTypeSymbol x, INamedTypeSymbol y, Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies) 418private bool HandleTupleTypes(INamedTypeSymbol x, INamedTypeSymbol y, Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies) 463Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies, 486internal bool ReturnTypesAreEquivalent(IMethodSymbol x, IMethodSymbol y, Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies = null) 492private bool TypeArgumentsAreEquivalent(ImmutableArray<ITypeSymbol> xTypeArguments, ImmutableArray<ITypeSymbol> yTypeArguments, Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies) 511private bool HandleAnonymousTypes(INamedTypeSymbol x, INamedTypeSymbol y, Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies) 547private bool NamespacesAreEquivalent(INamespaceSymbol x, INamespaceSymbol y, Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies) 564private bool ParametersAreEquivalent(IParameterSymbol x, IParameterSymbol y, Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies) 574private bool PointerTypesAreEquivalent(IPointerTypeSymbol x, IPointerTypeSymbol y, Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies) 581private bool FunctionPointerTypesAreEquivalent(IFunctionPointerTypeSymbol x, IFunctionPointerTypeSymbol y, Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies) 584private bool PropertiesAreEquivalent(IPropertySymbol x, IPropertySymbol y, Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies) 608private bool EventsAreEquivalent(IEventSymbol x, IEventSymbol y, Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies) 617private bool TypeParametersAreEquivalent(ITypeParameterSymbol x, ITypeParameterSymbol y, Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\SymbolEquivalenceComparer.GetHashCodeVisitor.cs (5)
70SymbolKind.NamedType => CombineHashCodes((INamedTypeSymbol)x, currentHash), 146private int CombineHashCodes(INamedTypeSymbol x, int currentHash) 154if (candidate is INamedTypeSymbol candidateNamedType) 164private int CombineNamedTypeHashCode(INamedTypeSymbol x, int currentHash) 193private int CombineAnonymousTypeHashCode(INamedTypeSymbol x, int currentHash)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\SymbolEquivalenceComparer.ParameterSymbolEqualityComparer.cs (2)
23Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies,
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\SymbolEquivalenceComparer.SignatureTypeSymbolEquivalenceComparer.cs (2)
18public bool Equals(ITypeSymbol? x, ITypeSymbol? y, Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies)
Microsoft.CodeAnalysis.VisualBasic (128)
Binding\MemberSemanticModel.vb (3)
468Public Overloads Overrides Function GetDeclaredSymbol(declarationSyntax As TypeStatementSyntax, Optional cancellationToken As CancellationToken = Nothing) As INamedTypeSymbol 478Public Overloads Overrides Function GetDeclaredSymbol(declarationSyntax As EnumStatementSyntax, Optional cancellationToken As CancellationToken = Nothing) As INamedTypeSymbol 601Public Overrides Function GetDeclaredSymbol(anonymousObjectCreationExpressionSyntax As AnonymousObjectCreationExpressionSyntax, Optional cancellationToken As CancellationToken = Nothing) As INamedTypeSymbol
Compilation\SemanticModel.vb (5)
2453Public Overridable Overloads Function GetDeclaredSymbol(anonymousObjectCreationExpressionSyntax As AnonymousObjectCreationExpressionSyntax, Optional cancellationToken As CancellationToken = Nothing) As INamedTypeSymbol 2549Public MustOverride Overloads Function GetDeclaredSymbol(declarationSyntax As TypeStatementSyntax, Optional cancellationToken As CancellationToken = Nothing) As INamedTypeSymbol 2556Public Overloads Function GetDeclaredSymbol(declarationSyntax As TypeBlockSyntax, Optional cancellationToken As CancellationToken = Nothing) As INamedTypeSymbol 2565Public MustOverride Overloads Function GetDeclaredSymbol(declarationSyntax As EnumStatementSyntax, Optional cancellationToken As CancellationToken = Nothing) As INamedTypeSymbol 2572Public Overloads Function GetDeclaredSymbol(declarationSyntax As EnumBlockSyntax, Optional cancellationToken As CancellationToken = Nothing) As INamedTypeSymbol
Compilation\SpeculativeSemanticModelWithMemberModel.vb (3)
153Public Overloads Overrides Function GetDeclaredSymbol(declarationSyntax As TypeStatementSyntax, Optional cancellationToken As CancellationToken = Nothing) As INamedTypeSymbol 157Public Overloads Overrides Function GetDeclaredSymbol(declarationSyntax As EnumStatementSyntax, Optional cancellationToken As CancellationToken = Nothing) As INamedTypeSymbol 189Public Overrides Function GetDeclaredSymbol(anonymousObjectCreationExpressionSyntax As AnonymousObjectCreationExpressionSyntax, Optional cancellationToken As CancellationToken = Nothing) As INamedTypeSymbol
Compilation\SyntaxTreeSemanticModel.vb (3)
899Public Overloads Overrides Function GetDeclaredSymbol(declarationSyntax As TypeStatementSyntax, Optional cancellationToken As CancellationToken = Nothing) As INamedTypeSymbol 918Public Overloads Overrides Function GetDeclaredSymbol(declarationSyntax As EnumStatementSyntax, Optional cancellationToken As CancellationToken = Nothing) As INamedTypeSymbol 1245Public Overrides Function GetDeclaredSymbol(anonymousObjectCreationExpressionSyntax As AnonymousObjectCreationExpressionSyntax, Optional cancellationToken As CancellationToken = Nothing) As INamedTypeSymbol
Compilation\VisualBasicCompilation.vb (10)
2849Protected Overrides Function CommonGetTypeByMetadataName(metadataName As String) As INamedTypeSymbol 2853Protected Overrides ReadOnly Property CommonScriptClass As INamedTypeSymbol 2859Protected Overrides Function CommonCreateErrorTypeSymbol(container As INamespaceOrTypeSymbol, name As String, arity As Integer) As INamedTypeSymbol 2882elementNullableAnnotations As ImmutableArray(Of NullableAnnotation)) As INamedTypeSymbol 2897underlyingType As INamedTypeSymbol, 2900elementNullableAnnotations As ImmutableArray(Of NullableAnnotation)) As INamedTypeSymbol 2930callingConventionTypes As ImmutableArray(Of INamedTypeSymbol)) As IFunctionPointerTypeSymbol 2934Protected Overrides Function CommonCreateNativeIntegerTypeSymbol(signed As Boolean) As INamedTypeSymbol 2943memberNullableAnnotations As ImmutableArray(Of CodeAnalysis.NullableAnnotation)) As INamedTypeSymbol 3109Protected Overrides ReadOnly Property CommonObjectType As INamedTypeSymbol
SymbolDisplay\SymbolDisplay.vb (3)
139If TypeOf symbol Is INamedTypeSymbol AndAlso 140DirectCast(symbol, INamedTypeSymbol).IsExtension Then 142visitor.AddExtensionMarkerName(DirectCast(symbol, INamedTypeSymbol))
SymbolDisplay\SymbolDisplayVisitor.Members.vb (4)
13Debug.Assert(TypeOf symbol.ContainingSymbol Is INamedTypeSymbol) 21Dim containingType = TryCast(symbol.ContainingSymbol, INamedTypeSymbol) 300containingType = TryCast(symbol.ContainingSymbol, INamedTypeSymbol) 613Dim containingType = TryCast(symbol.ContainingSymbol, INamedTypeSymbol)
SymbolDisplay\SymbolDisplayVisitor.Types.vb (16)
89Public Overrides Sub VisitNamedType(symbol As INamedTypeSymbol) 200Private Function CanShowDelegateSignature(symbol As INamedTypeSymbol) As Boolean 207Private Sub AddNameAndTypeArgumentsOrParameters(symbol As INamedTypeSymbol, noEscaping As Boolean) 319Private Function ShouldDisplayAsValueTuple(symbol As INamedTypeSymbol) As Boolean 329Private Sub AddAnonymousTypeName(symbol As INamedTypeSymbol) 353Private Shared Function CanUseTupleTypeName(tupleSymbol As INamedTypeSymbol) As Boolean 354Dim currentUnderlying As INamedTypeSymbol = GetTupleUnderlyingTypeOrSelf(tupleSymbol) 361tupleSymbol = DirectCast(currentUnderlying.TypeArguments(TupleTypeSymbol.RestPosition - 1), INamedTypeSymbol) 374Private Shared Function GetTupleUnderlyingTypeOrSelf(tupleSymbol As INamedTypeSymbol) As INamedTypeSymbol 378Private Shared Function HasNonDefaultTupleElements(tupleSymbol As INamedTypeSymbol) As Boolean 382Private Sub AddTupleTypeName(symbol As INamedTypeSymbol) 424Private Function AddSpecialTypeKeyword(symbol As INamedTypeSymbol) As Boolean 435Private Sub AddTypeKind(symbol As INamedTypeSymbol) 489Optional modifiersSource As INamedTypeSymbol = Nothing) 587Friend Sub AddExtensionMarkerName(extension As INamedTypeSymbol)
SymbolDisplay\SymbolDisplayVisitor.vb (1)
385Private Function IncludeNamedType(namedType As INamedTypeSymbol) As Boolean
SymbolDisplay\SymbolDisplayVisitor_Constants.vb (1)
14Protected Overrides Sub AddExplicitlyCastedLiteralValue(namedType As INamedTypeSymbol, type As SpecialType, value As Object)
SymbolDisplay\SymbolDisplayVisitor_Minimal.vb (3)
88Private Sub MinimallyQualify(symbol As INamedTypeSymbol) 189Private Function RemoveAttributeSuffixIfNecessary(symbol As INamedTypeSymbol, symbolName As String) As String 204Private Function IsDerivedFromAttributeType(ByVal derivedType As INamedTypeSymbol) As Boolean
Symbols\AssemblySymbol.vb (4)
796Private Function IAssemblySymbol_ResolveForwardedType(metadataName As String) As INamedTypeSymbol Implements IAssemblySymbol.ResolveForwardedType 800Private Function IAssemblySymbol_GetForwardedTypes() As ImmutableArray(Of INamedTypeSymbol) Implements IAssemblySymbol.GetForwardedTypes 801Return ImmutableArrayExtensions.AsImmutable(Of INamedTypeSymbol)(GetAllTopLevelForwardedTypes().OrderBy(Function(t) t.ToDisplayString(SymbolDisplayFormat.QualifiedNameArityFormat))) 804Private Function IAssemblySymbol_GetTypeByMetadataName(metadataName As String) As INamedTypeSymbol Implements IAssemblySymbol.GetTypeByMetadataName
Symbols\Attributes\AttributeData.vb (2)
147''' Gets the attribute class being applied as an <see cref="INamedTypeSymbol"/> 149Protected Overrides ReadOnly Property CommonAttributeClass As INamedTypeSymbol
Symbols\CustomModifier.vb (1)
26Public Overrides ReadOnly Property Modifier As INamedTypeSymbol
Symbols\MethodSymbol.vb (3)
1108Private ReadOnly Property IMethodSymbol_UnmanagedCallingConventionTypes As ImmutableArray(Of INamedTypeSymbol) Implements IMethodSymbol.UnmanagedCallingConventionTypes 1110Return ImmutableArray(Of INamedTypeSymbol).Empty 1184Private ReadOnly Property IMethodSymbol_AssociatedAnonymousDelegate As INamedTypeSymbol Implements IMethodSymbol.AssociatedAnonymousDelegate
Symbols\NamedTypeSymbol.vb (40)
201Public MustOverride ReadOnly Property IsSerializable As Boolean Implements INamedTypeSymbol.IsSerializable 277Public MustOverride ReadOnly Property MightContainExtensionMethods As Boolean Implements INamedTypeSymbol.MightContainExtensionMethods 941Public ReadOnly Property IsGenericType As Boolean Implements INamedTypeSymbol.IsGenericType, INamedTypeSymbolInternal.IsGenericType 1317Private ReadOnly Property INamedTypeSymbol_Arity As Integer Implements INamedTypeSymbol.Arity 1323Private ReadOnly Property INamedTypeSymbol_ConstructedFrom As INamedTypeSymbol Implements INamedTypeSymbol.ConstructedFrom 1329Private ReadOnly Property INamedTypeSymbol_DelegateInvokeMethod As IMethodSymbol Implements INamedTypeSymbol.DelegateInvokeMethod 1335Private ReadOnly Property INamedTypeSymbol_EnumUnderlyingType As INamedTypeSymbol Implements INamedTypeSymbol.EnumUnderlyingType 1355Private ReadOnly Property INamedTypeSymbol_MemberNames As IEnumerable(Of String) Implements INamedTypeSymbol.MemberNames 1361Private ReadOnly Property INamedTypeSymbol_IsUnboundGenericType As Boolean Implements INamedTypeSymbol.IsUnboundGenericType 1367Private ReadOnly Property INamedTypeSymbol_OriginalDefinition As INamedTypeSymbol Implements INamedTypeSymbol.OriginalDefinition 1373Private Function INamedTypeSymbol_GetTypeArgumentCustomModifiers(ordinal As Integer) As ImmutableArray(Of CustomModifier) Implements INamedTypeSymbol.GetTypeArgumentCustomModifiers 1377Private ReadOnly Property INamedTypeSymbol_TypeArguments As ImmutableArray(Of ITypeSymbol) Implements INamedTypeSymbol.TypeArguments 1383Private ReadOnly Property TypeArgumentNullableAnnotations As ImmutableArray(Of NullableAnnotation) Implements INamedTypeSymbol.TypeArgumentNullableAnnotations 1389Private ReadOnly Property INamedTypeSymbol_TypeParameters As ImmutableArray(Of ITypeParameterSymbol) Implements INamedTypeSymbol.TypeParameters 1395Private ReadOnly Property INamedTypeSymbol_IsScriptClass As Boolean Implements INamedTypeSymbol.IsScriptClass 1401Private ReadOnly Property INamedTypeSymbol_IsImplicitClass As Boolean Implements INamedTypeSymbol.IsImplicitClass 1407Private Function INamedTypeSymbol_Construct(ParamArray typeArguments() As ITypeSymbol) As INamedTypeSymbol Implements INamedTypeSymbol.Construct 1411Private Function INamedTypeSymbol_Construct(typeArguments As ImmutableArray(Of ITypeSymbol), typeArgumentNullableAnnotations As ImmutableArray(Of CodeAnalysis.NullableAnnotation)) As INamedTypeSymbol Implements INamedTypeSymbol.Construct 1415Private Function INamedTypeSymbol_ConstructUnboundGenericType() As INamedTypeSymbol Implements INamedTypeSymbol.ConstructUnboundGenericType 1419Private ReadOnly Property INamedTypeSymbol_InstanceConstructors As ImmutableArray(Of IMethodSymbol) Implements INamedTypeSymbol.InstanceConstructors 1425Private ReadOnly Property INamedTypeSymbol_StaticConstructors As ImmutableArray(Of IMethodSymbol) Implements INamedTypeSymbol.StaticConstructors 1431Private ReadOnly Property INamedTypeSymbol_Constructors As ImmutableArray(Of IMethodSymbol) Implements INamedTypeSymbol.Constructors 1437Private ReadOnly Property INamedTypeSymbol_AssociatedSymbol As ISymbol Implements INamedTypeSymbol.AssociatedSymbol 1443Private ReadOnly Property INamedTypeSymbol_IsComImport As Boolean Implements INamedTypeSymbol.IsComImport 1449Private ReadOnly Property INamedTypeSymbol_IsFileLocal As Boolean Implements INamedTypeSymbol.IsFileLocal 1455Private ReadOnly Property INamedTypeSymbol_NativeIntegerUnderlyingType As INamedTypeSymbol Implements INamedTypeSymbol.NativeIntegerUnderlyingType 1477Private ReadOnly Property INamedTypeSymbol_TupleElements As ImmutableArray(Of IFieldSymbol) Implements INamedTypeSymbol.TupleElements 1483Private ReadOnly Property INamedTypeSymbol_TupleUnderlyingType As INamedTypeSymbol Implements INamedTypeSymbol.TupleUnderlyingType 1572Public ReadOnly Property IsExtension As Boolean Implements INamedTypeSymbol.IsExtension 1578Public ReadOnly Property ExtensionParameter As IParameterSymbol Implements INamedTypeSymbol.ExtensionParameter 1584Public ReadOnly Property ExtensionGroupingName As String Implements INamedTypeSymbol.ExtensionGroupingName 1590Public ReadOnly Property ExtensionMarkerName As String Implements INamedTypeSymbol.ExtensionMarkerName
Symbols\NamespaceOrTypeSymbol.vb (6)
276Private Function INamespaceOrTypeSymbol_GetTypeMembers() As ImmutableArray(Of INamedTypeSymbol) Implements INamespaceOrTypeSymbol.GetTypeMembers 277Return StaticCast(Of INamedTypeSymbol).From(Me.GetTypeMembers()) 280Private Function INamespaceOrTypeSymbol_GetTypeMembers(name As String) As ImmutableArray(Of INamedTypeSymbol) Implements INamespaceOrTypeSymbol.GetTypeMembers 281Return StaticCast(Of INamedTypeSymbol).From(Me.GetTypeMembers(name)) 284Public Function INamespaceOrTypeSymbol_GetTypeMembers(name As String, arity As Integer) As ImmutableArray(Of INamedTypeSymbol) Implements INamespaceOrTypeSymbol.GetTypeMembers 285Return StaticCast(Of INamedTypeSymbol).From(Me.GetTypeMembers(name, arity))
Symbols\Symbol.vb (1)
1236Private ReadOnly Property ISymbol_ContainingType As INamedTypeSymbol Implements ISymbol.ContainingType
Symbols\TypeParameterSymbol.vb (1)
381Private ReadOnly Property ITypeParameterSymbol_DeclaringType As INamedTypeSymbol Implements ITypeParameterSymbol.DeclaringType
Symbols\TypeSymbol.vb (5)
545Private ReadOnly Property ITypeSymbol_AllInterfaces As ImmutableArray(Of INamedTypeSymbol) Implements ITypeSymbol.AllInterfaces 547Return StaticCast(Of INamedTypeSymbol).From(Me.AllInterfacesNoUseSiteDiagnostics) 551Private ReadOnly Property ITypeSymbol_BaseType As INamedTypeSymbol Implements ITypeSymbol.BaseType 557Private ReadOnly Property ITypeSymbol_Interfaces As ImmutableArray(Of INamedTypeSymbol) Implements ITypeSymbol.Interfaces 559Return StaticCast(Of INamedTypeSymbol).From(Me.InterfacesNoUseSiteDiagnostics)
VisualBasicExtensions.vb (13)
632Public Function GetModuleMembers([namespace] As INamespaceSymbol) As ImmutableArray(Of INamedTypeSymbol) 635Return StaticCast(Of INamedTypeSymbol).From(symbol.GetModuleMembers()) 637Return ImmutableArray.Create(Of INamedTypeSymbol)() 648Public Function GetModuleMembers([namespace] As INamespaceSymbol, name As String) As ImmutableArray(Of INamedTypeSymbol) 651Return StaticCast(Of INamedTypeSymbol).From(symbol.GetModuleMembers(name)) 653Return ImmutableArray.Create(Of INamedTypeSymbol)() 788Public Function GetSpecialType(compilation As Compilation, typeId As SpecialType) As INamedTypeSymbol 889Public Function GetDeclaredSymbol(semanticModel As SemanticModel, anonymousObjectCreationExpressionSyntax As AnonymousObjectCreationExpressionSyntax, Optional cancellationToken As CancellationToken = Nothing) As INamedTypeSymbol 967Public Function GetDeclaredSymbol(semanticModel As SemanticModel, declarationSyntax As TypeStatementSyntax, Optional cancellationToken As CancellationToken = Nothing) As INamedTypeSymbol 980Public Function GetDeclaredSymbol(semanticModel As SemanticModel, declarationSyntax As TypeBlockSyntax, Optional cancellationToken As CancellationToken = Nothing) As INamedTypeSymbol 993Public Function GetDeclaredSymbol(semanticModel As SemanticModel, declarationSyntax As EnumStatementSyntax, Optional cancellationToken As CancellationToken = Nothing) As INamedTypeSymbol 1006Public Function GetDeclaredSymbol(semanticModel As SemanticModel, declarationSyntax As EnumBlockSyntax, Optional cancellationToken As CancellationToken = Nothing) As INamedTypeSymbol 1071Public Function GetDeclaredSymbol(semanticModel As SemanticModel, declarationSyntax As DelegateStatementSyntax, Optional cancellationToken As CancellationToken = Nothing) As INamedTypeSymbol
Microsoft.CodeAnalysis.VisualBasic.Analyzers (22)
MetaAnalyzers\BasicRegisterActionAnalyzer.vb (12)
19analysisContext As INamedTypeSymbol, 20compilationStartAnalysisContext As INamedTypeSymbol, 21codeBlockStartAnalysisContext As INamedTypeSymbol, 22operationBlockStartAnalysisContext As INamedTypeSymbol, 23symbolKind As INamedTypeSymbol) As RegisterActionCodeBlockAnalyzer 36Public Sub New(basicSyntaxKind As INamedTypeSymbol, 37csharpSyntaxKind As INamedTypeSymbol, 38analysisContext As INamedTypeSymbol, 39compilationStartAnalysisContext As INamedTypeSymbol, 40codeBlockStartAnalysisContext As INamedTypeSymbol, 41operationBlockStartAnalysisContext As INamedTypeSymbol, 42symbolKind As INamedTypeSymbol)
MetaAnalyzers\BasicReportDiagnosticAnalyzer.vb (10)
15Protected Overrides Function GetAnalyzer(contextTypes As ImmutableHashSet(Of INamedTypeSymbol), 16diagnosticType As INamedTypeSymbol, 17diagnosticDescriptorType As INamedTypeSymbol, 18diagnosticAnalyzer As INamedTypeSymbol, 19diagnosticAnalyzerAttribute As INamedTypeSymbol) As ReportDiagnosticCompilationAnalyzer 26Public Sub New(contextTypes As ImmutableHashSet(Of INamedTypeSymbol), 27diagnosticType As INamedTypeSymbol, 28diagnosticDescriptorType As INamedTypeSymbol, 29diagnosticAnalyzer As INamedTypeSymbol, 30diagnosticAnalyzerAttribute As INamedTypeSymbol)
Microsoft.CodeAnalysis.VisualBasic.CodeStyle (8)
src\roslyn\src\Analyzers\VisualBasic\Analyzers\RemoveUnusedMembers\VisualBasicRemoveUnusedMembersDiagnosticAnalyzer.vb (2)
27For Each method In DirectCast(context.Symbol, INamedTypeSymbol).GetMembers().OfType(Of IMethodSymbol) 55Protected Overrides Function GetTypeDeclarations(namedType As INamedTypeSymbol, cancellationToken As CancellationToken) As IEnumerable(Of TypeBlockSyntax)
src\roslyn\src\Analyzers\VisualBasic\Analyzers\UseCollectionInitializer\VisualBasicUseCollectionInitializerDiagnosticAnalyzer.vb (1)
46expressionType As INamedTypeSymbol,
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\VisualBasic\Extensions\SyntaxNodeExtensions.vb (1)
1066expressionTypeOpt As INamedTypeSymbol,
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\VisualBasic\Services\SemanticFacts\VisualBasicSemanticFacts.vb (4)
97Public Function LastEnumValueHasInitializer(namedTypeSymbol As INamedTypeSymbol) As Boolean Implements ISemanticFacts.LastEnumValueHasInitializer 218Public Function IsPartial(typeSymbol As INamedTypeSymbol, cancellationToken As CancellationToken) As Boolean Implements ISemanticFacts.IsPartial 282Public Function IsInExpressionTree(semanticModel As SemanticModel, node As SyntaxNode, expressionTypeOpt As INamedTypeSymbol, cancellationToken As CancellationToken) As Boolean Implements ISemanticFacts.IsInExpressionTree 338Public Function TryGetPrimaryConstructor(typeSymbol As INamedTypeSymbol, <NotNullWhen(True)> ByRef primaryConstructor As IMethodSymbol) As Boolean Implements ISemanticFacts.TryGetPrimaryConstructor
Microsoft.CodeAnalysis.VisualBasic.CodeStyle.Fixes (71)
src\roslyn\src\Analyzers\VisualBasic\CodeFixes\GenerateConstructor\VisualBasicGenerateConstructorService.vb (7)
28Protected Overrides Function TryInitializeImplicitObjectCreation(document As SemanticDocument, node As SyntaxNode, cancellationToken As CancellationToken, ByRef token As SyntaxToken, ByRef arguments As ImmutableArray(Of Argument(Of ExpressionSyntax)), ByRef typeToGenerateIn As INamedTypeSymbol) As Boolean 35Protected Overrides Function ContainingTypesOrSelfHasUnsafeKeyword(containingType As INamedTypeSymbol) As Boolean 62ByRef typeToGenerateIn As INamedTypeSymbol) As Boolean 97ByRef typeToGenerateIn As INamedTypeSymbol) As Boolean 114typeToGenerateIn = TryCast(symbolInfo.GetAnySymbol(), INamedTypeSymbol) 132ByRef typeToGenerateIn As INamedTypeSymbol) As Boolean 147typeToGenerateIn = TryCast(symbolInfo.CandidateSymbols.FirstOrDefault().ContainingSymbol, INamedTypeSymbol)
src\roslyn\src\Analyzers\VisualBasic\CodeFixes\GenerateDefaultConstructors\VisualBasicGenerateDefaultConstructorsService.vb (3)
25ByRef classType As INamedTypeSymbol) As Boolean 34classType = TryCast(semanticDocument.SemanticModel.GetDeclaredSymbol(typeDecl), INamedTypeSymbol) 48classType = TryCast(semanticDocument.SemanticModel.GetDeclaredSymbol(baseList.Parent, cancellationToken), INamedTypeSymbol)
src\roslyn\src\Analyzers\VisualBasic\CodeFixes\GenerateParameterizedMember\VisualBasicGenerateConversionService.vb (11)
55Protected Overrides Function TryInitializeExplicitConversionState(document As SemanticDocument, expression As SyntaxNode, classInterfaceModuleStructTypes As ISet(Of TypeKind), cancellationToken As CancellationToken, ByRef identifierToken As SyntaxToken, ByRef methodSymbol As IMethodSymbol, ByRef typeToGenerateIn As INamedTypeSymbol) As Boolean 69Protected Overrides Function TryInitializeImplicitConversionState(document As SemanticDocument, expression As SyntaxNode, classInterfaceModuleStructTypes As ISet(Of TypeKind), cancellationToken As CancellationToken, ByRef identifierToken As SyntaxToken, ByRef methodSymbol As IMethodSymbol, ByRef typeToGenerateIn As INamedTypeSymbol) As Boolean 83Private Shared Function TryGetConversionMethodAndTypeToGenerateIn(document As SemanticDocument, expression As SyntaxNode, classInterfaceModuleStructTypes As ISet(Of TypeKind), cancellationToken As CancellationToken, ByRef methodSymbol As IMethodSymbol, ByRef typeToGenerateIn As INamedTypeSymbol) As Boolean 113Private Shared Function TryGetExplicitConversionMethodAndTypeToGenerateIn(document As SemanticDocument, castExpression As CastExpressionSyntax, classInterfaceModuleStructTypes As ISet(Of TypeKind), cancellationToken As CancellationToken, ByRef methodSymbol As IMethodSymbol, ByRef typeToGenerateIn As INamedTypeSymbol) As Boolean 115typeToGenerateIn = TryCast(document.SemanticModel.GetTypeInfo(castExpression.Type, cancellationToken).Type, INamedTypeSymbol) 116Dim parameterSymbol = TryCast(document.SemanticModel.GetTypeInfo(castExpression.Expression, cancellationToken).Type, INamedTypeSymbol) 129Private Shared Function TryGetImplicitConversionMethodAndTypeToGenerateIn(document As SemanticDocument, expression As SyntaxNode, classInterfaceModuleStructTypes As ISet(Of TypeKind), cancellationToken As CancellationToken, ByRef methodSymbol As IMethodSymbol, ByRef typeToGenerateIn As INamedTypeSymbol) As Boolean 131typeToGenerateIn = TryCast(document.SemanticModel.GetTypeInfo(expression, cancellationToken).ConvertedType, INamedTypeSymbol) 132Dim parameterSymbol = TryCast(document.SemanticModel.GetTypeInfo(expression, cancellationToken).Type, INamedTypeSymbol) 145Private Shared Function GenerateMethodSymbol(typeToGenerateIn As INamedTypeSymbol, parameterSymbol As INamedTypeSymbol) As IMethodSymbol
src\roslyn\src\Analyzers\VisualBasic\CodeFixes\GenerateParameterizedMember\VisualBasicGenerateMethodService.vb (2)
46ByRef typeToGenerateIn As INamedTypeSymbol) As Boolean 62typeToGenerateIn = TryCast(semanticInfo.Type, INamedTypeSymbol)
src\roslyn\src\Analyzers\VisualBasic\CodeFixes\ImplementInterface\VisualBasicImplementInterfaceService.vb (5)
55ByRef classOrStructDecl As SyntaxNode, ByRef classOrStructType As INamedTypeSymbol, 56ByRef interfaceTypes As ImmutableArray(Of INamedTypeSymbol)) As Boolean 103cancellationToken As CancellationToken) As INamedTypeSymbol 109Return TryCast(symbolInfo.GetAnySymbol(), INamedTypeSymbol) 120classType As INamedTypeSymbol,
src\roslyn\src\Analyzers\VisualBasic\CodeFixes\MakeMethodAsynchronous\VisualBasicMakeMethodAsynchronousCodeFixProvider.vb (1)
102keepVoid As Boolean, node As MethodBlockSyntax, taskType As INamedTypeSymbol) As SyntaxNode
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\VisualBasic\CodeGeneration\EnumMemberGenerator.vb (1)
136Dim namedType = TryCast(enumMember.Type, INamedTypeSymbol)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\VisualBasic\CodeGeneration\EventGenerator.vb (2)
108Dim invoke = DirectCast([event].Type, INamedTypeSymbol)?.DelegateInvokeMethod 140Dim eventType = TryCast([event].Type, INamedTypeSymbol)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\VisualBasic\CodeGeneration\ExpressionGenerator.vb (2)
48Return GenerateExpression(generator, DirectCast(type, INamedTypeSymbol).TypeArguments(0), value, canUseFieldReference) 51DirectCast(type, INamedTypeSymbol), value), ExpressionSyntax)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\VisualBasic\CodeGeneration\NamedTypeGenerator.vb (13)
16namedType As INamedTypeSymbol, 27namedType As INamedTypeSymbol, 38namedType As INamedTypeSymbol, 48namedType As INamedTypeSymbol, 70Private Function GetDeclarationSyntaxWithoutMembers(namedType As INamedTypeSymbol, options As CodeGenerationContextInfo) As StatementSyntax 92Private Function GenerateNamedTypeDeclarationWorker(namedType As INamedTypeSymbol, options As CodeGenerationContextInfo) As StatementSyntax 133Private Function GenerateDelegateDeclaration(namedType As INamedTypeSymbol, options As CodeGenerationContextInfo) As StatementSyntax 147Private Function GenerateEnumDeclaration(namedType As INamedTypeSymbol, options As CodeGenerationContextInfo) As StatementSyntax 160Private Function GenerateAttributes(namedType As INamedTypeSymbol, options As CodeGenerationContextInfo) As SyntaxList(Of AttributeListSyntax) 164Private Function GenerateModifiers(namedType As INamedTypeSymbol) As SyntaxTokenList 200Private Function GenerateTypeParameterList(namedType As INamedTypeSymbol) As TypeParameterListSyntax 204Private Function GenerateInheritsStatements(namedType As INamedTypeSymbol) As SyntaxList(Of InheritsStatementSyntax) 215Private Function GenerateImplementsStatements(namedType As INamedTypeSymbol) As SyntaxList(Of ImplementsStatementSyntax)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\VisualBasic\CodeGeneration\VisualBasicCodeGenerationService.vb (2)
178namedType As INamedTypeSymbol, 572Public Overrides Function CreateNamedTypeDeclaration(namedType As INamedTypeSymbol,
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\VisualBasic\CodeGeneration\VisualBasicFlagsEnumGenerator.vb (2)
24enumType As INamedTypeSymbol, 37Protected Overrides Function IsValidName(enumType As INamedTypeSymbol, name As String) As Boolean
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\VisualBasic\Editing\VisualBasicImportAdder.vb (2)
104Dim type = TryCast(typeOrNamespace, INamedTypeSymbol) 117Dim moduleType = TryCast(member, INamedTypeSymbol)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\VisualBasic\Extensions\ContextQuery\SyntaxTreeExtensions.vb (1)
800Return DirectCast(symbol, INamedTypeSymbol).TypeKind = TypeKind.Enum
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\VisualBasic\Extensions\ContextQuery\VisualBasicSyntaxContext.vb (3)
49Public ReadOnly EnclosingNamedType As INamedTypeSymbol 255Private Function ComputeEnclosingNamedType(cancellationToken As CancellationToken) As INamedTypeSymbol 266Return If(TryCast(enclosingSymbol, INamedTypeSymbol), enclosingSymbol.ContainingType)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\VisualBasic\Extensions\ExpressionSyntaxGeneratorVisitor.vb (1)
32Public Overrides Function VisitNamedType(symbol As INamedTypeSymbol) As ExpressionSyntax
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\VisualBasic\Extensions\IMethodSymbolExtensions.vb (1)
33Dim delegateInvokeMethod = DirectCast(parameter.Type, INamedTypeSymbol).DelegateInvokeMethod
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\VisualBasic\Extensions\TypeSyntaxGeneratorVisitor.vb (4)
65Public Function CreateSimpleTypeSyntax(symbol As INamedTypeSymbol) As TypeSyntax 94Private Shared Function TryCreateSpecializedNamedTypeSyntax(symbol As INamedTypeSymbol) As TypeSyntax 137Private Shared Function CreateTupleTypeSyntax(symbol As INamedTypeSymbol) As TypeSyntax 152Public Overrides Function VisitNamedType(symbol As INamedTypeSymbol) As TypeSyntax
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\VisualBasic\LanguageServices\VisualBasicSyntaxGeneratorInternal.vb (1)
496Public Overrides Function DeclarationPattern(type As INamedTypeSymbol, name As String) As SyntaxNode
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\VisualBasic\LanguageServices\VisualBasicTypeInferenceService.TypeInferrer.vb (7)
110If TypeOf typeSymbol IsNot INamedTypeSymbol Then 220OfType(Of INamedTypeSymbol)(). 294Dim namedType = TryCast(info.Symbol, INamedTypeSymbol) 512Return New TypeInferenceInfo(DirectCast(t.InferredType, INamedTypeSymbol).TypeArguments(0)) 772If TypeOf memberType Is INamedTypeSymbol Then 776Return CreateResult(DirectCast(memberType, INamedTypeSymbol).TypeArguments(0)) 1069Return types.OfType(Of INamedTypeSymbol)().SelectMany(Function(t) GetCollectionElementType(t))
Microsoft.CodeAnalysis.VisualBasic.Features (110)
ChangeSignature\VisualBasicChangeSignatureService.vb (2)
338Dim delegateInvokeMethod = DirectCast(DirectCast(semanticModel.GetSymbolInfo(raiseEventStatement.Name, cancellationToken).Symbol, IEventSymbol).Type, INamedTypeSymbol).DelegateInvokeMethod 788Protected Overrides Function TryGetRecordPrimaryConstructor(typeSymbol As INamedTypeSymbol, ByRef primaryConstructor As IMethodSymbol) As Boolean
CodeFixes\GenerateEvent\GenerateEventCodeFixProvider.CodeAction.vb (2)
15Private ReadOnly _targetSymbol As INamedTypeSymbol 20targetSymbol As INamedTypeSymbol,
CodeFixes\GenerateEvent\GenerateEventCodeFixProvider.vb (16)
97Dim targetType As INamedTypeSymbol = Nothing 110targetType = TryCast(sourceDefinition, INamedTypeSymbol) 124targetType As INamedTypeSymbol, 172Dim typeSymbol = TryCast(semanticModel.GetTypeInfo(handlerExpression, cancellationToken).Type, INamedTypeSymbol) 187Private Shared Function ResolveTargetType(ByRef targetType As INamedTypeSymbol, semanticModel As SemanticModel) As Boolean 194targetType = DirectCast(targetType.GetSymbolKey().Resolve(semanticModel.Compilation).Symbol, INamedTypeSymbol) 203Private Shared Function TryGetNameAndTargetType(eventExpression As ExpressionSyntax, containingSymbol As INamedTypeSymbol, semanticModel As SemanticModel, ByRef targetType As INamedTypeSymbol, ByRef actualEventName As String, cancellationToken As CancellationToken) As Boolean 205Dim eventType As INamedTypeSymbol = Nothing 213eventType = TryCast(semanticModel.GetTypeInfo(qualifier, cancellationToken).Type, INamedTypeSymbol) 259Dim targetType = TryCast(Await SymbolFinder.FindSourceDefinitionAsync(semanticModel.GetSymbolInfo(node.Left, cancellationToken).Symbol, document.Project.Solution, cancellationToken).ConfigureAwait(False), INamedTypeSymbol) 278Dim eventType = TryCast(boundEvent.Type, INamedTypeSymbol) 327Dim targetType As INamedTypeSymbol = Nothing 350targetType = TryCast(Await SymbolFinder.FindSourceDefinitionAsync(withEventsProperty.Type, document.Project.Solution, cancellationToken).ConfigureAwait(False), INamedTypeSymbol) 354targetType = TryCast(Await SymbolFinder.FindSourceDefinitionAsync(targetType, document.Project.Solution, cancellationToken).ConfigureAwait(False), INamedTypeSymbol) 363targetType = DirectCast(targetType.GetSymbolKey(cancellationToken).Resolve(semanticModel.Compilation, cancellationToken:=cancellationToken).Symbol, INamedTypeSymbol)
CodeFixes\Suppression\VisualBasicSuppressionCodeFixProvider.vb (2)
118suppressMessageAttribute As INamedTypeSymbol, 153suppressMessageAttribute As INamedTypeSymbol,
Completion\CompletionProviders\CompletionListTagCompletionProvider.vb (2)
71Private Shared Function GetCompletionListType(inferredType As ITypeSymbol, within As INamedTypeSymbol, compilation As Compilation, cancellationToken As CancellationToken) As ITypeSymbol 75.OfType(Of INamedTypeSymbol) _
Completion\CompletionProviders\CrefCompletionProvider.vb (1)
186Dim namedTypeContainer = TryCast(container, INamedTypeSymbol)
Completion\CompletionProviders\EnumCompletionProvider.vb (1)
92Private _cachedDisplayAndInsertionTextContainingType As INamedTypeSymbol
Completion\CompletionProviders\NamedParameterCompletionProvider.vb (3)
144Dim type = TryCast(semanticModel.GetTypeInfo(objectCreationExpression, cancellationToken).Type, INamedTypeSymbol) 160Dim attributeType = TryCast(semanticModel.GetTypeInfo(attribute, cancellationToken).Type, INamedTypeSymbol) 186Dim delegateType = DirectCast(expressionType, INamedTypeSymbol)
Completion\CompletionProviders\ObjectInitializerCompletionProvider.vb (1)
105Protected Overrides Function IsInitializableFieldOrProperty(fieldOrProperty As ISymbol, containingType As INamedTypeSymbol) As Boolean
Completion\CompletionProviders\PartialTypeCompletionProvider.vb (2)
61Protected Overrides Function GetDisplayAndSuffixAndInsertionText(symbol As INamedTypeSymbol, context As VisualBasicSyntaxContext) As (displayText As String, suffix As String, insertionText As String) 67Protected Overrides Function GetProperties(symbol As INamedTypeSymbol, context As VisualBasicSyntaxContext) As ImmutableArray(Of KeyValuePair(Of String, String))
Completion\CompletionProviders\XmlDocCommentCompletionProvider.vb (1)
356Dim namedTypeSymbol = TryCast(symbol, INamedTypeSymbol)
Completion\KeywordRecommenders\Declarations\OfKeywordRecommender.vb (2)
111Return symbols.OfType(Of INamedTypeSymbol)() _ 122.OfType(Of INamedTypeSymbol)() _
Debugging\BreakpointResolver.vb (1)
22Protected Overrides Function GetMembers(type As INamedTypeSymbol, name As String) As IEnumerable(Of ISymbol)
EditAndContinue\VisualBasicEditAndContinueAnalyzer.vb (3)
675Friend Overrides Function IsPartial(type As INamedTypeSymbol) As Boolean 1416Friend Overrides Function GetDisplayName(symbol As INamedTypeSymbol) As String 1997Dim type = CType(newSymbol, INamedTypeSymbol)
EncapsulateField\VisualBasicEncapsulateFieldService.vb (2)
99Protected Shared Function MakeUnique(baseName As String, originalFieldName As String, containingType As INamedTypeSymbol, Optional willChangeFieldName As Boolean = True) As String 132Protected Overrides Function GetConstructorNodes(containingType As INamedTypeSymbol) As IEnumerable(Of ConstructorBlockSyntax)
ExtractInterface\VisualBasicExtractInterfaceService.vb (3)
49Friend Overrides Function GetContainingNamespaceDisplay(typeSymbol As INamedTypeSymbol, compilationOptions As CompilationOptions) As String 101unformattedSolution As Solution, documentIds As IReadOnlyList(Of DocumentId), extractedInterfaceSymbol As INamedTypeSymbol, 102typeToExtractFrom As INamedTypeSymbol, includedMembers As IEnumerable(Of ISymbol),
ExtractMethod\VisualBasicSelectionResult.vb (1)
189Private Shared Function IsCoClassImplicitConversion(info As TypeInfo, conversion As Conversion, coclassSymbol As INamedTypeSymbol) As Boolean
GenerateConstructors\VisualBasicGenerateConstructorsCodeRefactoringProvider.vb (1)
32Protected Overrides Function ContainingTypesOrSelfHasUnsafeKeyword(containingType As INamedTypeSymbol) As Boolean
GenerateMember\GenerateVariable\VisualBasicGenerateVariableService.vb (2)
33ByRef identifierToken As SyntaxToken, ByRef propertySymbol As IPropertySymbol, ByRef typeToGenerateIn As INamedTypeSymbol) As Boolean 54typeToGenerateIn = TryCast(info.Type, INamedTypeSymbol)
GenerateType\VisualBasicGenerateTypeService.vb (4)
326generateTypeServiceStateOptions.DelegateCreationMethodSymbol = DirectCast(type, INamedTypeSymbol).DelegateInvokeMethod 388cancellationToken As CancellationToken) As INamedTypeSymbol 393Return If(typeBlock Is Nothing, Nothing, TryCast(semanticModel.GetDeclaredSymbol(typeBlock.BlockStatement, cancellationToken), INamedTypeSymbol)) 419Public Overrides Async Function GetOrGenerateEnclosingNamespaceSymbolAsync(namedTypeSymbol As INamedTypeSymbol, containers() As String, selectedDocument As Document, selectedDocumentRoot As SyntaxNode, cancellationToken As CancellationToken) As Task(Of (INamespaceSymbol, INamespaceOrTypeSymbol, Location))
InitializeParameter\VisualBasicInitializeMemberFromParameterCodeRefactoringProvider.vb (1)
36Protected Overrides Function DetermineDefaultFieldAccessibility(containingType As INamedTypeSymbol) As Accessibility
IntroduceVariable\VisualBasicIntroduceLocalForExpressionCodeRefactoringProvider.vb (1)
49Protected Overrides Function CreateTupleDeconstructionAsync(document As Document, tupleType As INamedTypeSymbol, expression As ExpressionSyntax, cancellationToken As CancellationToken) As Task(Of ExpressionStatementSyntax)
IntroduceVariable\VisualBasicIntroduceVariableService_IntroduceField.vb (1)
60oldType As INamedTypeSymbol,
LanguageServices\VisualBasicStructuralTypeDisplayService.vb (1)
27anonymousType As INamedTypeSymbol,
NavigationBar\VisualBasicNavigationBarItemService.vb (9)
60Private Shared Function GetTypesAndDeclarationsInFile(semanticModel As SemanticModel, cancellationToken As CancellationToken) As IEnumerable(Of Tuple(Of INamedTypeSymbol, SyntaxNode)) 62Dim typesAndDeclarations As New Dictionary(Of INamedTypeSymbol, SyntaxNode) 69Return SpecializedCollections.EmptyEnumerable(Of Tuple(Of INamedTypeSymbol, SyntaxNode))() 73Dim type = TryCast(semanticModel.GetDeclaredSymbol(node, cancellationToken), INamedTypeSymbol) 102type As INamedTypeSymbol, 156type As INamedTypeSymbol, 201type As INamedTypeSymbol, 310containingType As INamedTypeSymbol, 359DirectCast(e.Type, INamedTypeSymbol).DelegateInvokeMethod IsNot Nothing Then
SignatureHelp\AttributeSignatureHelpProvider.vb (1)
60Dim attributeType = TryCast(semanticModel.GetTypeInfo(attribute, cancellationToken).Type, INamedTypeSymbol)
SignatureHelp\FunctionAggregationSignatureHelpProvider.vb (1)
145Dim delegateInvokeMethod = DirectCast(parameter.Type, INamedTypeSymbol).DelegateInvokeMethod
SignatureHelp\GenericNameSignatureHelpProvider.Method.vb (1)
31If result.Kind <> SymbolKind.NamedType OrElse Not DirectCast(result, INamedTypeSymbol).IsScriptClass Then
SignatureHelp\GenericNameSignatureHelpProvider.NamedType.vb (1)
9Private Shared Function GetPreambleParts(namedType As INamedTypeSymbol, semanticModel As SemanticModel, position As Integer) As IList(Of SymbolDisplayPart)
SignatureHelp\GenericNameSignatureHelpProvider.vb (3)
96WhereAsArray(Function(s) TypeOf s Is INamedTypeSymbol OrElse TypeOf s Is IMethodSymbol). 117If TypeOf symbol Is INamedTypeSymbol Then 118Dim namedType = DirectCast(symbol, INamedTypeSymbol)
SignatureHelp\InvocationExpressionSignatureHelpProvider.DelegateInvoke.vb (1)
20delegateType As INamedTypeSymbol,
SignatureHelp\InvocationExpressionSignatureHelpProvider.vb (1)
123items.AddRange(GetDelegateInvokeItems(invocationExpression, semanticModel, structuralTypeDisplayService, documentationCommentFormattingService, DirectCast(expressionType, INamedTypeSymbol), cancellationToken))
SignatureHelp\ObjectCreationExpressionSignatureHelpProvider.DelegateType.vb (1)
19delegateType As INamedTypeSymbol) As (items As IList(Of SignatureHelpItem), selectedItem As Integer?)
SignatureHelp\ObjectCreationExpressionSignatureHelpProvider.NormalType.vb (1)
21normalType As INamedTypeSymbol,
SignatureHelp\ObjectCreationExpressionSignatureHelpProvider.vb (1)
70Dim type = TryCast(semanticModel.GetTypeInfo(objectCreationExpression, cancellationToken).Type, INamedTypeSymbol)
SignatureHelp\RaiseEventStatementSignatureHelpProvider.vb (1)
110Dim type = DirectCast(eventSymbol.Type, INamedTypeSymbol)
src\roslyn\src\Analyzers\VisualBasic\Analyzers\RemoveUnusedMembers\VisualBasicRemoveUnusedMembersDiagnosticAnalyzer.vb (2)
27For Each method In DirectCast(context.Symbol, INamedTypeSymbol).GetMembers().OfType(Of IMethodSymbol) 55Protected Overrides Function GetTypeDeclarations(namedType As INamedTypeSymbol, cancellationToken As CancellationToken) As IEnumerable(Of TypeBlockSyntax)
src\roslyn\src\Analyzers\VisualBasic\Analyzers\UseCollectionInitializer\VisualBasicUseCollectionInitializerDiagnosticAnalyzer.vb (1)
46expressionType As INamedTypeSymbol,
src\roslyn\src\Analyzers\VisualBasic\CodeFixes\GenerateConstructor\VisualBasicGenerateConstructorService.vb (7)
28Protected Overrides Function TryInitializeImplicitObjectCreation(document As SemanticDocument, node As SyntaxNode, cancellationToken As CancellationToken, ByRef token As SyntaxToken, ByRef arguments As ImmutableArray(Of Argument(Of ExpressionSyntax)), ByRef typeToGenerateIn As INamedTypeSymbol) As Boolean 35Protected Overrides Function ContainingTypesOrSelfHasUnsafeKeyword(containingType As INamedTypeSymbol) As Boolean 62ByRef typeToGenerateIn As INamedTypeSymbol) As Boolean 97ByRef typeToGenerateIn As INamedTypeSymbol) As Boolean 114typeToGenerateIn = TryCast(symbolInfo.GetAnySymbol(), INamedTypeSymbol) 132ByRef typeToGenerateIn As INamedTypeSymbol) As Boolean 147typeToGenerateIn = TryCast(symbolInfo.CandidateSymbols.FirstOrDefault().ContainingSymbol, INamedTypeSymbol)
src\roslyn\src\Analyzers\VisualBasic\CodeFixes\GenerateDefaultConstructors\VisualBasicGenerateDefaultConstructorsService.vb (3)
25ByRef classType As INamedTypeSymbol) As Boolean 34classType = TryCast(semanticDocument.SemanticModel.GetDeclaredSymbol(typeDecl), INamedTypeSymbol) 48classType = TryCast(semanticDocument.SemanticModel.GetDeclaredSymbol(baseList.Parent, cancellationToken), INamedTypeSymbol)
src\roslyn\src\Analyzers\VisualBasic\CodeFixes\GenerateParameterizedMember\VisualBasicGenerateConversionService.vb (11)
55Protected Overrides Function TryInitializeExplicitConversionState(document As SemanticDocument, expression As SyntaxNode, classInterfaceModuleStructTypes As ISet(Of TypeKind), cancellationToken As CancellationToken, ByRef identifierToken As SyntaxToken, ByRef methodSymbol As IMethodSymbol, ByRef typeToGenerateIn As INamedTypeSymbol) As Boolean 69Protected Overrides Function TryInitializeImplicitConversionState(document As SemanticDocument, expression As SyntaxNode, classInterfaceModuleStructTypes As ISet(Of TypeKind), cancellationToken As CancellationToken, ByRef identifierToken As SyntaxToken, ByRef methodSymbol As IMethodSymbol, ByRef typeToGenerateIn As INamedTypeSymbol) As Boolean 83Private Shared Function TryGetConversionMethodAndTypeToGenerateIn(document As SemanticDocument, expression As SyntaxNode, classInterfaceModuleStructTypes As ISet(Of TypeKind), cancellationToken As CancellationToken, ByRef methodSymbol As IMethodSymbol, ByRef typeToGenerateIn As INamedTypeSymbol) As Boolean 113Private Shared Function TryGetExplicitConversionMethodAndTypeToGenerateIn(document As SemanticDocument, castExpression As CastExpressionSyntax, classInterfaceModuleStructTypes As ISet(Of TypeKind), cancellationToken As CancellationToken, ByRef methodSymbol As IMethodSymbol, ByRef typeToGenerateIn As INamedTypeSymbol) As Boolean 115typeToGenerateIn = TryCast(document.SemanticModel.GetTypeInfo(castExpression.Type, cancellationToken).Type, INamedTypeSymbol) 116Dim parameterSymbol = TryCast(document.SemanticModel.GetTypeInfo(castExpression.Expression, cancellationToken).Type, INamedTypeSymbol) 129Private Shared Function TryGetImplicitConversionMethodAndTypeToGenerateIn(document As SemanticDocument, expression As SyntaxNode, classInterfaceModuleStructTypes As ISet(Of TypeKind), cancellationToken As CancellationToken, ByRef methodSymbol As IMethodSymbol, ByRef typeToGenerateIn As INamedTypeSymbol) As Boolean 131typeToGenerateIn = TryCast(document.SemanticModel.GetTypeInfo(expression, cancellationToken).ConvertedType, INamedTypeSymbol) 132Dim parameterSymbol = TryCast(document.SemanticModel.GetTypeInfo(expression, cancellationToken).Type, INamedTypeSymbol) 145Private Shared Function GenerateMethodSymbol(typeToGenerateIn As INamedTypeSymbol, parameterSymbol As INamedTypeSymbol) As IMethodSymbol
src\roslyn\src\Analyzers\VisualBasic\CodeFixes\GenerateParameterizedMember\VisualBasicGenerateMethodService.vb (2)
46ByRef typeToGenerateIn As INamedTypeSymbol) As Boolean 62typeToGenerateIn = TryCast(semanticInfo.Type, INamedTypeSymbol)
src\roslyn\src\Analyzers\VisualBasic\CodeFixes\ImplementInterface\VisualBasicImplementInterfaceService.vb (5)
55ByRef classOrStructDecl As SyntaxNode, ByRef classOrStructType As INamedTypeSymbol, 56ByRef interfaceTypes As ImmutableArray(Of INamedTypeSymbol)) As Boolean 103cancellationToken As CancellationToken) As INamedTypeSymbol 109Return TryCast(symbolInfo.GetAnySymbol(), INamedTypeSymbol) 120classType As INamedTypeSymbol,
src\roslyn\src\Analyzers\VisualBasic\CodeFixes\MakeMethodAsynchronous\VisualBasicMakeMethodAsynchronousCodeFixProvider.vb (1)
102keepVoid As Boolean, node As MethodBlockSyntax, taskType As INamedTypeSymbol) As SyntaxNode
Microsoft.CodeAnalysis.VisualBasic.NetAnalyzers (11)
Microsoft.CodeQuality.Analyzers\ApiDesignGuidelines\BasicOverrideEqualsOnOverloadingOperatorEquals.vb (1)
41Dim type = DirectCast(symbolContext.Symbol, INamedTypeSymbol)
Microsoft.CodeQuality.Analyzers\ApiDesignGuidelines\BasicOverrideGetHashCodeOnOverridingEquals.vb (1)
41Dim type = DirectCast(symbolContext.Symbol, INamedTypeSymbol)
Microsoft.CodeQuality.Analyzers\Maintainability\BasicAvoidUninstantiatedInternalClasses.vb (1)
14Public Overrides Sub RegisterLanguageSpecificChecks(context As CompilationStartAnalysisContext, instantiatedTypes As ConcurrentDictionary(Of INamedTypeSymbol, Object))
Microsoft.NetCore.Analyzers\Performance\BasicPreferDictionaryTryMethodsOverContainsKeyGuardFixer.vb (1)
232Dim type = DirectCast(semanticModel.GetTypeInfo(dictionary).Type, INamedTypeSymbol)
Microsoft.NetCore.Analyzers\Performance\BasicRecommendCaseInsensitiveStringComparisonFixer.vb (1)
18caseChangingApproachValue As String, mainInvocationOperation As IInvocationOperation, stringComparisonType As INamedTypeSymbol,
Microsoft.NetCore.Analyzers\Resources\BasicMarkAssembliesWithNeutralResourcesLanguage.vb (1)
16Protected Overrides Sub RegisterAttributeAnalyzer(context As CompilationStartAnalysisContext, shouldAnalyze As Func(Of Boolean), onResourceFound As Action(Of SyntaxNodeAnalysisContext), generatedCode As INamedTypeSymbol)
Microsoft.NetCore.Analyzers\Runtime\BasicForwardCancellationTokenToInvocations.Analyzer.vb (1)
39Protected Overrides Function ArgumentsImplicitOrNamed(cancellationTokenType As INamedTypeSymbol, arguments As ImmutableArray(Of IArgumentOperation)) As Boolean
Microsoft.NetCore.Analyzers\Runtime\BasicForwardCancellationTokenToInvocationsFixer.TypeNameVisitor.vb (4)
49Public Overrides Function VisitNamedType(symbol As INamedTypeSymbol) As TypeSyntax 103Private Shared Function CreateSimpleTypeSyntax(symbol As INamedTypeSymbol) As TypeSyntax 130Private Shared Function TryCreateSpecializedNamedTypeSyntax(symbol As INamedTypeSymbol) As TypeSyntax 173Private Shared Function CreateTupleTypeSyntax(symbol As INamedTypeSymbol) As TypeSyntax
Microsoft.CodeAnalysis.VisualBasic.Workspaces (69)
CodeCleanup\AsyncOrIteratorFunctionReturnTypeFixer.vb (1)
178Private Sub RewriteFunctionAsClause(genericType As INamedTypeSymbol, ByRef asClauseOpt As SimpleAsClauseSyntax, semanticModel As SemanticModel, position As Integer)
FindSymbols\VisualBasicReferenceFinder.vb (2)
29Return DetermineCascadedSymbolsAsync(DirectCast(symbol, INamedTypeSymbol), project, cancellationToken) 49namedType As INamedTypeSymbol,
Recommendations\VisualBasicRecommendationServiceRunner.vb (9)
289Dim typeContainer = DirectCast(container, INamedTypeSymbol) 371Return TypeOf DirectCast(s, INamedTypeSymbol).AssociatedSymbol IsNot IEventSymbol 458Dim namedTypeSymbol = TryCast(symbol, INamedTypeSymbol) 465.GetAccessibleMembersInThisAndBaseTypes(Of INamedTypeSymbol)(within) _ 474Dim namedTypeSymbol = TryCast(namespaceOrTypeSymbol, INamedTypeSymbol) 484.OfType(Of INamedTypeSymbol)() _ 505Return type.GetAccessibleMembersInThisAndBaseTypes(Of INamedTypeSymbol)(within).Any(Function(m) IsOrContainsValidAccessibleClass(m, within)) 522Dim namedTypeSymbol = TryCast(namespaceOrTypeSymbol, INamedTypeSymbol) 532.OfType(Of INamedTypeSymbol)() _
Rename\VisualBasicRenameRewriterLanguageService.vb (3)
322DirectCast(fieldSymbol.Type, INamedTypeSymbol).AssociatedSymbol IsNot Nothing Then 340ElseIf TypeOf symbol Is INamedTypeSymbol Then 341Dim namedTypeSymbol = DirectCast(symbol, INamedTypeSymbol)
Simplification\Simplifiers\ExpressionSimplifier.vb (3)
132Dim keywordKind = GetPredefinedKeywordKind(DirectCast(symbol, INamedTypeSymbol).SpecialType) 241Dim containingType As INamedTypeSymbol = rightSymbol.ContainingType 252Dim namedType = TryCast(leftSymbol, INamedTypeSymbol)
Simplification\Simplifiers\NameSimplifier.vb (2)
197Dim type = DirectCast(symbol, INamedTypeSymbol) 402Private Shared Function CanSimplifyNullable(type As INamedTypeSymbol, name As NameSyntax) As Boolean
Simplification\VisualBasicSimplificationService.Expander.vb (2)
510aliasTarget = DirectCast(aliasTarget, INamedTypeSymbol).ConstructUnboundGenericType() 795Dim type = TryCast(semanticModel.GetTypeInfo(typeOfExpression.Type, _cancellationToken).Type, INamedTypeSymbol)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\VisualBasic\Extensions\SyntaxNodeExtensions.vb (1)
1066expressionTypeOpt As INamedTypeSymbol,
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\VisualBasic\Services\SemanticFacts\VisualBasicSemanticFacts.vb (4)
97Public Function LastEnumValueHasInitializer(namedTypeSymbol As INamedTypeSymbol) As Boolean Implements ISemanticFacts.LastEnumValueHasInitializer 218Public Function IsPartial(typeSymbol As INamedTypeSymbol, cancellationToken As CancellationToken) As Boolean Implements ISemanticFacts.IsPartial 282Public Function IsInExpressionTree(semanticModel As SemanticModel, node As SyntaxNode, expressionTypeOpt As INamedTypeSymbol, cancellationToken As CancellationToken) As Boolean Implements ISemanticFacts.IsInExpressionTree 338Public Function TryGetPrimaryConstructor(typeSymbol As INamedTypeSymbol, <NotNullWhen(True)> ByRef primaryConstructor As IMethodSymbol) As Boolean Implements ISemanticFacts.TryGetPrimaryConstructor
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\VisualBasic\CodeGeneration\EnumMemberGenerator.vb (1)
136Dim namedType = TryCast(enumMember.Type, INamedTypeSymbol)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\VisualBasic\CodeGeneration\EventGenerator.vb (2)
108Dim invoke = DirectCast([event].Type, INamedTypeSymbol)?.DelegateInvokeMethod 140Dim eventType = TryCast([event].Type, INamedTypeSymbol)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\VisualBasic\CodeGeneration\ExpressionGenerator.vb (2)
48Return GenerateExpression(generator, DirectCast(type, INamedTypeSymbol).TypeArguments(0), value, canUseFieldReference) 51DirectCast(type, INamedTypeSymbol), value), ExpressionSyntax)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\VisualBasic\CodeGeneration\NamedTypeGenerator.vb (13)
16namedType As INamedTypeSymbol, 27namedType As INamedTypeSymbol, 38namedType As INamedTypeSymbol, 48namedType As INamedTypeSymbol, 70Private Function GetDeclarationSyntaxWithoutMembers(namedType As INamedTypeSymbol, options As CodeGenerationContextInfo) As StatementSyntax 92Private Function GenerateNamedTypeDeclarationWorker(namedType As INamedTypeSymbol, options As CodeGenerationContextInfo) As StatementSyntax 133Private Function GenerateDelegateDeclaration(namedType As INamedTypeSymbol, options As CodeGenerationContextInfo) As StatementSyntax 147Private Function GenerateEnumDeclaration(namedType As INamedTypeSymbol, options As CodeGenerationContextInfo) As StatementSyntax 160Private Function GenerateAttributes(namedType As INamedTypeSymbol, options As CodeGenerationContextInfo) As SyntaxList(Of AttributeListSyntax) 164Private Function GenerateModifiers(namedType As INamedTypeSymbol) As SyntaxTokenList 200Private Function GenerateTypeParameterList(namedType As INamedTypeSymbol) As TypeParameterListSyntax 204Private Function GenerateInheritsStatements(namedType As INamedTypeSymbol) As SyntaxList(Of InheritsStatementSyntax) 215Private Function GenerateImplementsStatements(namedType As INamedTypeSymbol) As SyntaxList(Of ImplementsStatementSyntax)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\VisualBasic\CodeGeneration\VisualBasicCodeGenerationService.vb (2)
178namedType As INamedTypeSymbol, 572Public Overrides Function CreateNamedTypeDeclaration(namedType As INamedTypeSymbol,
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\VisualBasic\CodeGeneration\VisualBasicFlagsEnumGenerator.vb (2)
24enumType As INamedTypeSymbol, 37Protected Overrides Function IsValidName(enumType As INamedTypeSymbol, name As String) As Boolean
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\VisualBasic\Editing\VisualBasicImportAdder.vb (2)
104Dim type = TryCast(typeOrNamespace, INamedTypeSymbol) 117Dim moduleType = TryCast(member, INamedTypeSymbol)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\VisualBasic\Extensions\ContextQuery\SyntaxTreeExtensions.vb (1)
800Return DirectCast(symbol, INamedTypeSymbol).TypeKind = TypeKind.Enum
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\VisualBasic\Extensions\ContextQuery\VisualBasicSyntaxContext.vb (3)
49Public ReadOnly EnclosingNamedType As INamedTypeSymbol 255Private Function ComputeEnclosingNamedType(cancellationToken As CancellationToken) As INamedTypeSymbol 266Return If(TryCast(enclosingSymbol, INamedTypeSymbol), enclosingSymbol.ContainingType)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\VisualBasic\Extensions\ExpressionSyntaxGeneratorVisitor.vb (1)
32Public Overrides Function VisitNamedType(symbol As INamedTypeSymbol) As ExpressionSyntax
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\VisualBasic\Extensions\IMethodSymbolExtensions.vb (1)
33Dim delegateInvokeMethod = DirectCast(parameter.Type, INamedTypeSymbol).DelegateInvokeMethod
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\VisualBasic\Extensions\TypeSyntaxGeneratorVisitor.vb (4)
65Public Function CreateSimpleTypeSyntax(symbol As INamedTypeSymbol) As TypeSyntax 94Private Shared Function TryCreateSpecializedNamedTypeSyntax(symbol As INamedTypeSymbol) As TypeSyntax 137Private Shared Function CreateTupleTypeSyntax(symbol As INamedTypeSymbol) As TypeSyntax 152Public Overrides Function VisitNamedType(symbol As INamedTypeSymbol) As TypeSyntax
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\VisualBasic\LanguageServices\VisualBasicSyntaxGeneratorInternal.vb (1)
496Public Overrides Function DeclarationPattern(type As INamedTypeSymbol, name As String) As SyntaxNode
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\VisualBasic\LanguageServices\VisualBasicTypeInferenceService.TypeInferrer.vb (7)
110If TypeOf typeSymbol IsNot INamedTypeSymbol Then 220OfType(Of INamedTypeSymbol)(). 294Dim namedType = TryCast(info.Symbol, INamedTypeSymbol) 512Return New TypeInferenceInfo(DirectCast(t.InferredType, INamedTypeSymbol).TypeArguments(0)) 772If TypeOf memberType Is INamedTypeSymbol Then 776Return CreateResult(DirectCast(memberType, INamedTypeSymbol).TypeArguments(0)) 1069Return types.OfType(Of INamedTypeSymbol)().SelectMany(Function(t) GetCollectionElementType(t))
Microsoft.CodeAnalysis.Workspaces (789)
Editing\DeclarationModifiers.cs (3)
64is INamedTypeSymbol 73var type = symbol as INamedTypeSymbol;
Editing\SymbolEditorExtensions.cs (3)
59INamedTypeSymbol symbol, 63var baseType = symbol.BaseType; 95INamedTypeSymbol symbol,
Editing\SyntaxGenerator.cs (6)
765var type = (INamedTypeSymbol)symbol; 823static IEnumerable<ISymbol> GetMembersExceptExtensionImplementations(INamedTypeSymbol type) 827foreach (var nested in type.GetTypeMembers("")) 894var type = (INamedTypeSymbol)symbol;
FindSymbols\FindReferences\BaseTypeFinder.cs (7)
14public static ImmutableArray<INamedTypeSymbol> FindBaseTypesAndInterfaces(INamedTypeSymbol type, bool transitive) 39foreach (var type in FindBaseTypes(symbol.ContainingType, transitive: true)) 80private static ImmutableArray<INamedTypeSymbol> FindBaseTypes(INamedTypeSymbol type, bool transitive) 88var typesBuilder = ArrayBuilder<INamedTypeSymbol>.GetInstance(); 90var currentType = type.BaseType;
FindSymbols\FindReferences\DependentProjectsFinder.cs (1)
259var attrType = attr.AttributeClass;
FindSymbols\FindReferences\DependentTypeFinder.cs (30)
21using SymbolSet = HashSet<INamedTypeSymbol>; 46private static readonly Func<INamedTypeSymbol, bool> s_isInterface = static t => t is { TypeKind: TypeKind.Interface }; 47private static readonly Func<INamedTypeSymbol, bool> s_isNonSealedClass = static t => t is { TypeKind: TypeKind.Class, IsSealed: false }; 48private static readonly Func<INamedTypeSymbol, bool> s_isInterfaceOrNonSealedClass = static t => s_isInterface(t) || s_isNonSealedClass(t); 50private static readonly ObjectPool<PooledHashSet<INamedTypeSymbol>> s_symbolSetPool = PooledHashSet<INamedTypeSymbol>.CreatePool(SymbolEquivalenceComparer.Instance); 53/// Walks down a <paramref name="type"/>'s inheritance tree looking for more <see cref="INamedTypeSymbol"/>'s 61private static async Task<ImmutableArray<INamedTypeSymbol>> DescendInheritanceTreeAsync( 62INamedTypeSymbol type, 65Func<INamedTypeSymbol, SymbolSet, bool> typeMatches, 66Func<INamedTypeSymbol, bool> shouldContinueSearching, 210foreach (var type in typesToSearchFor) 255Func<INamedTypeSymbol, bool>? predicate) 267if (info.TryResolve(semanticModel, cancellationToken) is INamedTypeSymbol namedType && 283if (info.TryResolve(semanticModel, cancellationToken) is INamedTypeSymbol namedType && 352foreach (var metadataType in metadataTypes) 361foreach (var derivedType in symbolTreeInfo.GetDerivedMetadataTypes(baseTypeName, compilation, cancellationToken)) 378foreach (var type in foundTypes) 385foreach (var type in foundTypes) 389private static void AddRange(SymbolSet foundTypes, SymbolSet currentTypes, Func<INamedTypeSymbol, bool> shouldContinueSearching) 392foreach (var type in foundTypes) 400INamedTypeSymbol type, 513private static bool TypeHasBaseTypeInSet(INamedTypeSymbol type, SymbolSet set) 515var baseType = type.BaseType?.OriginalDefinition; 519private static bool TypeHasInterfaceInSet(INamedTypeSymbol type, SymbolSet set) 521foreach (var interfaceType in type.Interfaces) 540Func<INamedTypeSymbol, bool> shouldContinueSearching) 547foreach (var derivedType in tempBuffer) 561public static PooledDisposer<PooledHashSet<INamedTypeSymbol>> GetSymbolSet(out SymbolSet instance) 566return new PooledDisposer<PooledHashSet<INamedTypeSymbol>>(pooledInstance);
FindSymbols\FindReferences\DependentTypeFinder_DerivedClasses.cs (4)
15private static async Task<ImmutableArray<INamedTypeSymbol>> FindDerivedClassesInCurrentProcessAsync( 16INamedTypeSymbol type, 24static bool TypeMatches(INamedTypeSymbol type, HashSet<INamedTypeSymbol> set)
FindSymbols\FindReferences\DependentTypeFinder_DerivedInterfaces.cs (4)
15private static async Task<ImmutableArray<INamedTypeSymbol>> FindDerivedInterfacesInCurrentProcessAsync( 16INamedTypeSymbol type, 25static bool TypeMatches(INamedTypeSymbol type, HashSet<INamedTypeSymbol> set)
FindSymbols\FindReferences\DependentTypeFinder_ImplementingTypes.cs (4)
14private static async Task<ImmutableArray<INamedTypeSymbol>> FindImplementingTypesInCurrentProcessAsync( 15INamedTypeSymbol type, 37static bool TypeMatches(INamedTypeSymbol type, HashSet<INamedTypeSymbol> set)
FindSymbols\FindReferences\DependentTypeFinder_Remote.cs (7)
18public static async Task<ImmutableArray<INamedTypeSymbol>> FindTypesAsync( 19INamedTypeSymbol type, 52public static async Task<ImmutableArray<INamedTypeSymbol>> FindTypesInCurrentProcessAsync( 53INamedTypeSymbol type, 82private static async Task<ImmutableArray<INamedTypeSymbol>> RehydrateAsync(Solution solution, ImmutableArray<SerializableSymbolAndProjectId> values, CancellationToken cancellationToken) 84using var _ = ArrayBuilder<INamedTypeSymbol>.GetInstance(out var builder); 89if (rehydrated is INamedTypeSymbol namedType)
FindSymbols\FindReferences\Finders\AbstractReferenceFinder.cs (1)
678var containingType = definition.ContainingType;
FindSymbols\FindReferences\Finders\AbstractReferenceFinder_GlobalSuppressions.cs (4)
68var suppressMessageAttribute = semanticModel.Compilation.SuppressMessageAttributeType(); 97INamedTypeSymbol suppressMessageAttribute, CancellationToken cancellationToken, out int offsetOfReferenceInToken) 154INamedTypeSymbol suppressMessageAttribute, 197var attributeSymbol = semanticModel.GetSymbolInfo(attributeNode, cancellationToken).Symbol?.ContainingType;
FindSymbols\FindReferences\Finders\ConstructorSymbolReferenceFinder.cs (3)
49var containingType = symbol.ContainingType; 63var containingType = symbol.ContainingType; 131var containingType = methodSymbol.ContainingType;
FindSymbols\FindReferences\Finders\ExplicitConstructorInitializerSymbolReferenceFinder.cs (2)
90var containingType = semanticModel.GetEnclosingNamedType(token.SpanStart, cancellationToken); 95var containingType = semanticModel.GetEnclosingNamedType(token.SpanStart, cancellationToken);
FindSymbols\FindReferences\Finders\ExplicitConversionSymbolReferenceFinder.cs (2)
23private static INamedTypeSymbol? GetUnderlyingNamedType(ITypeSymbol symbol) 46var underlyingNamedType = GetUnderlyingNamedType(symbol.ReturnType);
FindSymbols\FindReferences\Finders\ExplicitConversionSymbolReferenceFinder.UnderlyingNamedTypeVisitor.cs (9)
11private sealed class UnderlyingNamedTypeVisitor : SymbolVisitor<INamedTypeSymbol?> 19public override INamedTypeSymbol? VisitArrayType(IArrayTypeSymbol symbol) 22public override INamedTypeSymbol? VisitDynamicType(IDynamicTypeSymbol symbol) 25public override INamedTypeSymbol? VisitFunctionPointerType(IFunctionPointerTypeSymbol symbol) 28public override INamedTypeSymbol? VisitPointerType(IPointerTypeSymbol symbol) 31public override INamedTypeSymbol? VisitTypeParameter(ITypeParameterSymbol symbol) 34public override INamedTypeSymbol? VisitNamedType(INamedTypeSymbol symbol) 37public override INamedTypeSymbol? DefaultVisit(ISymbol symbol)
FindSymbols\FindReferences\Finders\MethodTypeParameterSymbolReferenceFinder.cs (1)
76ContainingType: INamedTypeSymbol { Name: "Program", ContainingNamespace.IsGlobalNamespace: true }
FindSymbols\FindReferences\Finders\NamedTypeSymbolReferenceFinder.cs (12)
18internal sealed class NamedTypeSymbolReferenceFinder : AbstractReferenceFinder<INamedTypeSymbol> 20protected override bool CanFind(INamedTypeSymbol symbol) 23protected override Task<ImmutableArray<string>> DetermineGlobalAliasesAsync(INamedTypeSymbol symbol, Project project, CancellationToken cancellationToken) 29INamedTypeSymbol symbol, 54INamedTypeSymbol symbol, 109INamedTypeSymbol namedType, 142INamedTypeSymbol namedType, 159INamedTypeSymbol namedType, FindReferencesDocumentState state, Action<FinderLocation, TData> processResult, TData processResultData, string alias, CancellationToken cancellationToken) 177INamedTypeSymbol symbol, 192INamedTypeSymbol namedType, 209INamedTypeSymbol symbol, 229INamedTypeSymbol namedType,
FindSymbols\FindReferences\Finders\OrdinaryMethodReferenceFinder.cs (2)
141if (methodSymbol is { IsStatic: true, Parameters: [.., var lastParameter], ReturnType: INamedTypeSymbol returnType } && 150attribute.ConstructorArguments is [{ Value: INamedTypeSymbol builderType }, { Value: string factoryName }] &&
FindSymbols\FindReferences\Finders\ParameterSymbolReferenceFinder.cs (1)
210var containingType = containingMethod.ContainingType;
FindSymbols\FindReferences\FindReferencesSearchEngine.SymbolSet.cs (1)
113if (aliasSymbol.Target is INamedTypeSymbol { IsTupleType: false } or INamespaceSymbol)
FindSymbols\SymbolFinder.cs (1)
228if (linkedSymbol is INamedTypeSymbol linkedNamedType &&
FindSymbols\SymbolFinder_Helpers.cs (9)
97using var _ = PooledDictionary<INamedTypeSymbol, INamedTypeSymbol>.GetInstance(out var equivalentTypesWithDifferingAssemblies); 122Dictionary<INamedTypeSymbol, INamedTypeSymbol> equivalentTypesWithDifferingAssemblies) 155INamedTypeSymbol candidate, 156INamedTypeSymbol forwardedTo) 178var resolvedType = assembly.ResolveForwardedType(candidateFullMetadataName); 187private static INamedTypeSymbol GetOridinalUnderlyingType(INamedTypeSymbol type)
FindSymbols\SymbolFinder_Hierarchy.cs (26)
48var containingType = symbol.ContainingType; 62foreach (var type in derivedTypes) 143var containingType = symbol.ContainingType.OriginalDefinition; 151foreach (var type in allTypes) 153foreach (var interfaceType in type.AllInterfaces) 212public static Task<IEnumerable<INamedTypeSymbol>> FindDerivedClassesAsync( 213INamedTypeSymbol type, Solution solution, IImmutableSet<Project>? projects, CancellationToken cancellationToken) 230public static async Task<IEnumerable<INamedTypeSymbol>> FindDerivedClassesAsync( 231INamedTypeSymbol type, Solution solution, bool transitive = true, IImmutableSet<Project>? projects = null, CancellationToken cancellationToken = default) 243/// <inheritdoc cref="FindDerivedClassesArrayAsync(INamedTypeSymbol, Solution, bool, IImmutableSet{Project}, CancellationToken)"/> 245internal static async Task<ImmutableArray<INamedTypeSymbol>> FindDerivedClassesArrayAsync( 246INamedTypeSymbol type, Solution solution, bool transitive, IImmutableSet<Project>? projects = null, CancellationToken cancellationToken = default) 266public static async Task<IEnumerable<INamedTypeSymbol>> FindDerivedInterfacesAsync( 267INamedTypeSymbol type, Solution solution, bool transitive = true, IImmutableSet<Project>? projects = null, CancellationToken cancellationToken = default) 279/// <inheritdoc cref="FindDerivedInterfacesAsync(INamedTypeSymbol, Solution, bool, IImmutableSet{Project}, CancellationToken)"/> 281internal static async Task<ImmutableArray<INamedTypeSymbol>> FindDerivedInterfacesArrayAsync( 282INamedTypeSymbol type, Solution solution, bool transitive, IImmutableSet<Project>? projects = null, CancellationToken cancellationToken = default) 302public static async Task<IEnumerable<INamedTypeSymbol>> FindImplementationsAsync( 303INamedTypeSymbol type, Solution solution, bool transitive = true, IImmutableSet<Project>? projects = null, CancellationToken cancellationToken = default) 315/// <inheritdoc cref="FindImplementationsAsync(INamedTypeSymbol, Solution, bool, IImmutableSet{Project}, CancellationToken)"/> 317internal static async Task<ImmutableArray<INamedTypeSymbol>> FindImplementationsArrayAsync( 318INamedTypeSymbol type, Solution solution, bool transitive, IImmutableSet<Project>? projects = null, CancellationToken cancellationToken = default) 329/// cref="INamedTypeSymbol"/> this will be both immediate and transitive implementations. 342if (symbol is INamedTypeSymbol namedTypeSymbol) 361var containingType = symbol.ContainingType.OriginalDefinition; 371foreach (var t in allTypes)
FindSymbols\SymbolTree\SymbolTreeInfo.cs (3)
497public ImmutableArray<INamedTypeSymbol> GetDerivedMetadataTypes( 503using var builder = TemporaryArray<INamedTypeSymbol>.Empty; 513if (symbol is INamedTypeSymbol namedType)
FindSymbols\SymbolTree\SymbolTreeInfo_Source.cs (3)
187if (symbol is INamedTypeSymbol namedType) 210else if (symbol is INamedTypeSymbol namedTypeSymbol) 214foreach (var childType in namedTypeSymbol.GetTypeMembers())
Log\WorkspaceStructureLogger.cs (1)
282foreach (var type in @ns.GetTypeMembers())
ObsoleteSymbol\AbstractObsoleteSymbolService.cs (1)
200if (symbol is INamedTypeSymbol { OriginalDefinition.SpecialType: SpecialType.System_Nullable_T, TypeArguments: [var valueType] })
ReassignedVariable\AbstractReassignedVariableService.cs (1)
197var containingType = methodOrProperty.ContainingType;
Recommendations\AbstractRecommendationService.cs (11)
41protected static ISet<INamedTypeSymbol> ComputeOuterTypes(SyntaxContext context, CancellationToken cancellationToken) 46var containingType = enclosingSymbol.GetContainingTypeOrThis(); 53return SpecializedCollections.EmptySet<INamedTypeSymbol>(); 60private ImmutableArray<INamedTypeSymbol> _lazyOuterTypesAndBases; 61private ImmutableArray<INamedTypeSymbol> _lazyEnclosingTypeBases; 75var namedType = (INamedTypeSymbol)symbol; 128var containingTypeOriginalDefinition = symbol.ContainingType.OriginalDefinition; 143private ImmutableArray<INamedTypeSymbol> GetOuterTypesAndBases() 155private ImmutableArray<INamedTypeSymbol> GetEnclosingTypeBases() 159var enclosingType = _context.SemanticModel.GetEnclosingNamedType(_context.LeftToken.SpanStart, _cancellationToken);
Recommendations\AbstractRecommendationServiceRunner.cs (7)
191var expressionSymbol = _context.SemanticModel.Compilation.GetTypeByMetadataName(typeof(Expression<>).FullName); 205type is INamedTypeSymbol expressionSymbolNamedTypeCandidate && 320.FirstOrDefault(s => s is INamedTypeSymbol namedType && namedType.SpecialType == specialType); 393if (container is not INamedTypeSymbol) 472foreach (var constraintTypeInterface in constraintType.GetAllInterfacesIncludingThis()) 483foreach (var interfaceType in originalContainerType.AllInterfaces) 538=> container is not INamedTypeSymbol { IsTupleType: true } namedType
Rename\ConflictEngine\ConflictResolver.cs (1)
270if (renamedSymbol is INamedTypeSymbol { ContainingSymbol: INamespaceOrTypeSymbol containingTypeOrNamespace })
Rename\RenameUtilities.cs (3)
234var containingType = symbol.ContainingType; 354semanticInfo.ReferencedSymbols.FirstOrDefault() is INamedTypeSymbol referencedType) 391if (symbol is INamedTypeSymbol { IsImplicitlyDeclared: true, TypeKind: TypeKind.Delegate, AssociatedSymbol: not null } typeSymbol)
Rename\SymbolicRenameLocations.ReferenceProcessing.cs (5)
82case INamedTypeSymbol nt: 108((INamedTypeSymbol)referencedSymbol.ContainingSymbol).TypeKind == TypeKind.Interface && 127&& possibleType is INamedTypeSymbol namedType 205var namedType = (INamedTypeSymbol)referencedSymbol;
Shared\Extensions\IMethodSymbolExtensions.cs (1)
15public static bool CompatibleSignatureToDelegate(this IMethodSymbol method, INamedTypeSymbol delegateType)
Shared\Extensions\INamedTypeSymbolExtensions.cs (1)
11public static INamespaceOrTypeSymbol GenerateRootNamespaceOrType(this INamedTypeSymbol namedType, string[] containers)
Shared\Extensions\INamespaceSymbolExtensions.cs (3)
74var child = (INamedTypeSymbol)current; 96public static IEnumerable<INamedTypeSymbol> GetAllTypes(
Shared\Extensions\ISymbolExtensions.cs (3)
107ISymbol symbol, INamedTypeSymbol? hideModuleNameAttribute, ImmutableArray<AttributeData> attributes = default) 476var baseType = memberSymbol.ContainingType.BaseType; 487else if (memberSymbol is INamedTypeSymbol typeSymbol)
Shared\Extensions\ITypeSymbolExtensions.cs (5)
75var interfaceType = interfaceMember.ContainingType; 84var originalInterfaceType = interfaceMember.ContainingType.OriginalDefinition; 90foreach (var constructedInterface in constructedInterfaces) 185public static bool CanBeAsynchronouslyEnumerated(this ITypeSymbol type, INamedTypeSymbol? asyncEnumerableType) 198foreach (var @interface in type.AllInterfaces)
Shared\Extensions\SemanticModelExtensions.cs (1)
142if (type is INamedTypeSymbol namedType && allSymbols.Length == 0)
Shared\Extensions\SyntaxGeneratorExtensions.cs (4)
41INamedTypeSymbol containingType, 182INamedTypeSymbol newContainingType) 196INamedTypeSymbol containingType, 233INamedTypeSymbol newContainingType,
Shared\Utilities\EditorBrowsableHelpers.cs (6)
17public INamedTypeSymbol? HideModuleNameAttribute { get; } = compilation.HideModuleNameAttribute(); 34var editorBrowsableAttributeType = compilation.EditorBrowsableAttributeType(); 35var editorBrowsableStateType = compilation.EditorBrowsableStateType(); 98var typeLibAttributeType = compilation.GetTypeByMetadataName(attributeMetadataName); 99var typeLibFlagsType = compilation.GetTypeByMetadataName(flagsMetadataName); 100var shortType = compilation.GetSpecialType(SpecialType.System_Int16);
src\roslyn\src\Compilers\Core\Portable\SourceGeneration\GeneratedCodeUtilities.cs (1)
19ISymbol symbol, INamedTypeSymbol generatedCodeAttribute)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Extensions\CollectionExpressionUtilities.cs (7)
61if (type is INamedTypeSymbol namedType) 71var ienumerableOfTType = compilation.IEnumerableOfTType(); 72var ienumerableType = compilation.IEnumerableType(); 73var foundType = 146Compilation compilation, INamedTypeSymbol collectionExpressionType) 148var readonlySpanOfTType = compilation.ReadOnlySpanOfTType(); 155if (attribute is not { ConstructorArguments: [{ Value: INamedTypeSymbol builderType }, { Value: string builderMethodName }] })
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Extensions\KnownTypes.cs (8)
11public readonly INamedTypeSymbol? TaskType = compilation.TaskType(); 12public readonly INamedTypeSymbol? TaskOfTType = compilation.TaskOfTType(); 13public readonly INamedTypeSymbol? ValueTaskType = compilation.ValueTaskType(); 14public readonly INamedTypeSymbol? ValueTaskOfTType = compilation.ValueTaskOfTType(); 16public readonly INamedTypeSymbol? IEnumerableOfTType = compilation.IEnumerableOfTType(); 17public readonly INamedTypeSymbol? IEnumeratorOfTType = compilation.IEnumeratorOfTType(); 19public readonly INamedTypeSymbol? IAsyncEnumerableOfTType = compilation.IAsyncEnumerableOfTType(); 20public readonly INamedTypeSymbol? IAsyncEnumeratorOfTType = compilation.IAsyncEnumeratorOfTType();
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Extensions\OperationExtensions.cs (2)
405var notImplementedExceptionType = compilation.NotImplementedExceptionType(); 454static bool IsThrowNotImplementedOperation(INamedTypeSymbol notImplementedExceptionType, IOperation? operation)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Extensions\SemanticModelExtensions.cs (4)
84return semanticModel.GetEnclosingSymbol<INamedTypeSymbol>(position, cancellationToken) ?? 88public static INamedTypeSymbol? GetEnclosingNamedType(this SemanticModel semanticModel, int position, CancellationToken cancellationToken) 89=> semanticModel.GetEnclosingSymbol<INamedTypeSymbol>(position, cancellationToken); 172var enumerableType = semanticModel.Compilation.IEnumerableOfTType();
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\FlowAnalysis\SymbolUsageAnalysis\SymbolUsageAnalysis.DataFlowAnalyzer.FlowGraphAnalysisData.cs (1)
143if (owningSymbol.ContainingSymbol is INamedTypeSymbol { IsExtension: true, ExtensionParameter: { } extensionParameter })
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\NamingStyles\NamingStyleRules.cs (3)
65var containingType = symbol.ContainingType; 87var containingType = symbol.ContainingType; 90foreach (var implementedInterface in implementedInterfaces)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Services\SemanticFacts\ISemanticFacts.cs (4)
68bool LastEnumValueHasInitializer(INamedTypeSymbol namedTypeSymbol); 89bool IsPartial(INamedTypeSymbol typeSymbol, CancellationToken cancellationToken); 108bool IsInExpressionTree(SemanticModel semanticModel, SyntaxNode node, [NotNullWhen(true)] INamedTypeSymbol? expressionType, CancellationToken cancellationToken); 123bool TryGetPrimaryConstructor(INamedTypeSymbol typeSymbol, [NotNullWhen(true)] out IMethodSymbol? primaryConstructor);
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\SymbolKey\SymbolKey.AnonymousFunctionOrDelegateSymbolKey.cs (1)
65var anonymousDelegate = methodSymbol.AssociatedAnonymousDelegate;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\SymbolKey\SymbolKey.AnonymousTypeSymbolKey.cs (5)
13private sealed class AnonymousTypeSymbolKey : AbstractSymbolKey<INamedTypeSymbol> 17public sealed override void Create(INamedTypeSymbol symbol, SymbolKeyWriter visitor) 34SymbolKeyReader reader, INamedTypeSymbol? contextualSymbol, out string? failureReason) 40using var propertyTypes = reader.ReadSymbolKeyArray<INamedTypeSymbol, ITypeSymbol>( 64var anonymousType = reader.Compilation.CreateAnonymousTypeSymbol(
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\SymbolKey\SymbolKey.cs (5)
43/// <item>Two <see cref="INamedTypeSymbol"/>s are the "same" if they have 46/// equal <see cref="INamedTypeSymbol.Arity"/> and 47/// the "same" <see cref="INamedTypeSymbol.TypeArguments"/>.</item> 301foreach (var containingType in containingTypeResolution.OfType<INamedTypeSymbol>())
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\SymbolKey\SymbolKey.ErrorTypeSymbolKey.cs (9)
12private sealed class ErrorTypeSymbolKey : AbstractSymbolKey<INamedTypeSymbol> 16public sealed override void Create(INamedTypeSymbol symbol, SymbolKeyWriter visitor) 21case INamedTypeSymbol parentType: 65SymbolKeyReader reader, INamedTypeSymbol? contextualType, out string? failureReason) 72using var typeArguments = reader.ReadSymbolKeyArray<INamedTypeSymbol, ITypeSymbol>( 92using var result = PooledArrayBuilder<INamedTypeSymbol>.GetInstance(); 97var originalType = reader.Compilation.CreateErrorTypeSymbol(container, name, arity); 98var errorType = typeArgumentsArray != null ? originalType.Construct(typeArgumentsArray) : originalType; 110SymbolKeyReader reader, INamedTypeSymbol? contextualType, out string? failureReason)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\SymbolKey\SymbolKey.FunctionPointerTypeSymbolKey.cs (2)
37var callingConventionModifiers = ImmutableArray<INamedTypeSymbol>.Empty; 40using var modifiersBuilder = reader.ReadSymbolKeyArray<IFunctionPointerTypeSymbol, INamedTypeSymbol>(
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\SymbolKey\SymbolKey.NamedTypeSymbolKey.cs (13)
9private sealed class NamedTypeSymbolKey : AbstractSymbolKey<INamedTypeSymbol> 13public sealed override void Create(INamedTypeSymbol symbol, SymbolKeyWriter visitor) 33SymbolKeyReader reader, INamedTypeSymbol? contextualSymbol, out string? failureReason) 48using var typeArguments = reader.ReadSymbolKeyArray<INamedTypeSymbol, ITypeSymbol>( 90INamedTypeSymbol? contextualType, 126using var result = PooledArrayBuilder<INamedTypeSymbol>.GetInstance(); 155using var result = PooledArrayBuilder<INamedTypeSymbol>.GetInstance(); 163PooledArrayBuilder<INamedTypeSymbol> result) 168foreach (var type in container.GetTypeMembers()) 176foreach (var type in container.GetTypeMembers(name, arity)) 200private static INamedTypeSymbol Construct(INamedTypeSymbol type, bool isUnboundGenericType, ITypeSymbol[] typeArguments) 202var currentType = typeArguments.Length > 0 ? type.Construct(typeArguments) : type;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\SymbolKey\SymbolKey.ParameterSymbolKey.cs (2)
64var delegateInvoke = (eventSymbol.Type as INamedTypeSymbol)?.DelegateInvokeMethod; 73case INamedTypeSymbol { IsExtension: true, ExtensionParameter: { } extensionParameter }:
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\SymbolKey\SymbolKey.SymbolKeyWriter.cs (2)
405public override void VisitNamedType(INamedTypeSymbol namedTypeSymbol) 412else if (namedTypeSymbol.IsTupleType && namedTypeSymbol.TupleUnderlyingType is INamedTypeSymbol underlyingType && underlyingType != namedTypeSymbol)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\SymbolKey\SymbolKey.TupleTypeSymbolKey.cs (10)
14private sealed class TupleTypeSymbolKey : AbstractSymbolKey<INamedTypeSymbol> 18public sealed override void Create(INamedTypeSymbol symbol, SymbolKeyWriter visitor) 53SymbolKeyReader reader, INamedTypeSymbol? contextualSymbol, out string? failureReason) 64SymbolKeyReader reader, INamedTypeSymbol? contextualSymbol, out string? failureReason) 78using var result = PooledArrayBuilder<INamedTypeSymbol>.GetInstance(); 81foreach (var namedType in underlyingTypeResolution.OfType<INamedTypeSymbol>()) 92SymbolKeyReader reader, INamedTypeSymbol? contextualType, out string? failureReason) 96using var elementTypes = reader.ReadSymbolKeyArray<INamedTypeSymbol, ITypeSymbol>( 120var result = reader.Compilation.CreateTupleTypeSymbol(
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Utilities\AbstractSpeculationAnalyzer.cs (5)
417var type = methodSymbol.ContainingType; 418var newType = newMethodSymbol.ContainingType; 491private static bool EnumTypesAreCompatible(INamedTypeSymbol type1, INamedTypeSymbol type2) 990var newSymbolContainingType = newSymbol.ContainingType;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Utilities\EnumValueUtilities.cs (1)
21public static object GetNextEnumValue(INamedTypeSymbol enumType)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Compilation\CompilationExtensions.cs (82)
78public static INamedTypeSymbol? ArgumentExceptionType(this Compilation compilation) 81public static INamedTypeSymbol? ArgumentNullExceptionType(this Compilation compilation) 84public static INamedTypeSymbol? ArgumentOutOfRangeExceptionType(this Compilation compilation) 87public static INamedTypeSymbol? ArrayType(this Compilation compilation) 90public static INamedTypeSymbol? AttributeType(this Compilation compilation) 93public static INamedTypeSymbol? BlockingCollectionOfTType(this Compilation compilation) 96public static INamedTypeSymbol? CollectionOfTType(this Compilation compilation) 99public static INamedTypeSymbol? ExceptionType(this Compilation compilation) 102public static INamedTypeSymbol? DebuggerDisplayAttributeType(this Compilation compilation) 105public static INamedTypeSymbol? StructLayoutAttributeType(this Compilation compilation) 108public static INamedTypeSymbol? InlineArrayAttributeType(this Compilation compilation) 111public static INamedTypeSymbol? DesignerCategoryAttributeType(this Compilation compilation) 114public static INamedTypeSymbol? DesignerGeneratedAttributeType(this Compilation compilation) 117public static INamedTypeSymbol? HideModuleNameAttribute(this Compilation compilation) 120public static INamedTypeSymbol? ThreadStaticAttributeType(this Compilation compilation) 123public static INamedTypeSymbol? FormattableStringType(this Compilation compilation) 126public static INamedTypeSymbol? IFormattableType(this Compilation compilation) 129public static INamedTypeSymbol? EventArgsType(this Compilation compilation) 132public static INamedTypeSymbol? NotImplementedExceptionType(this Compilation compilation) 135public static INamedTypeSymbol? EqualityComparerOfTType(this Compilation compilation) 138public static INamedTypeSymbol? ActionType(this Compilation compilation) 141public static INamedTypeSymbol? ExpressionOfTType(this Compilation compilation) 144public static INamedTypeSymbol? EditorBrowsableAttributeType(this Compilation compilation) 147public static INamedTypeSymbol? EditorBrowsableStateType(this Compilation compilation) 150public static INamedTypeSymbol? TaskType(this Compilation compilation) 153public static INamedTypeSymbol? TaskOfTType(this Compilation compilation) 156public static INamedTypeSymbol? ValueTaskType(this Compilation compilation) 159public static INamedTypeSymbol? ValueTaskOfTType(this Compilation compilation) 162public static INamedTypeSymbol? ICollectionOfTType(this Compilation compilation) 165public static INamedTypeSymbol? IEnumerableType(this Compilation compilation) 168public static INamedTypeSymbol? IEnumerableOfTType(this Compilation compilation) 171public static INamedTypeSymbol? IEnumeratorOfTType(this Compilation compilation) 174public static INamedTypeSymbol? IListOfTType(this Compilation compilation) 177public static INamedTypeSymbol? IReadOnlyListOfTType(this Compilation compilation) 180public static INamedTypeSymbol? ISetOfTType(this Compilation compilation) 183public static INamedTypeSymbol? IReadOnlySetOfTType(this Compilation compilation) 186public static INamedTypeSymbol? IAsyncEnumerableOfTType(this Compilation compilation) 189public static INamedTypeSymbol? IAsyncEnumeratorOfTType(this Compilation compilation) 192public static INamedTypeSymbol? ImmutableArrayOfTType(this Compilation compilation) 195public static INamedTypeSymbol? SerializableAttributeType(this Compilation compilation) 198public static INamedTypeSymbol? CoClassType(this Compilation compilation) 201public static INamedTypeSymbol? ComAliasNameAttributeType(this Compilation compilation) 204public static INamedTypeSymbol? SuppressMessageAttributeType(this Compilation compilation) 207public static INamedTypeSymbol? TupleElementNamesAttributeType(this Compilation compilation) 210public static INamedTypeSymbol? NativeIntegerAttributeType(this Compilation compilation) 213public static INamedTypeSymbol? DynamicAttributeType(this Compilation compilation) 216public static INamedTypeSymbol? LazyOfTType(this Compilation compilation) 219public static INamedTypeSymbol? ISerializableType(this Compilation compilation) 222public static INamedTypeSymbol? SerializationInfoType(this Compilation compilation) 225public static INamedTypeSymbol? StreamingContextType(this Compilation compilation) 228public static INamedTypeSymbol? OnDeserializingAttribute(this Compilation compilation) 231public static INamedTypeSymbol? OnDeserializedAttribute(this Compilation compilation) 234public static INamedTypeSymbol? OnSerializingAttribute(this Compilation compilation) 237public static INamedTypeSymbol? OnSerializedAttribute(this Compilation compilation) 240public static INamedTypeSymbol? ComRegisterFunctionAttribute(this Compilation compilation) 243public static INamedTypeSymbol? ComUnregisterFunctionAttribute(this Compilation compilation) 246public static INamedTypeSymbol? ConditionalAttribute(this Compilation compilation) 249public static INamedTypeSymbol? ObsoleteAttribute(this Compilation compilation) 252public static INamedTypeSymbol? SystemCompositionImportingConstructorAttribute(this Compilation compilation) 255public static INamedTypeSymbol? SystemComponentModelCompositionImportingConstructorAttribute(this Compilation compilation) 258public static INamedTypeSymbol? SystemIDisposableType(this Compilation compilation) 261public static INamedTypeSymbol? NotNullAttribute(this Compilation compilation) 264public static INamedTypeSymbol? MaybeNullAttribute(this Compilation compilation) 267public static INamedTypeSymbol? MaybeNullWhenAttribute(this Compilation compilation) 270public static INamedTypeSymbol? AllowNullAttribute(this Compilation compilation) 273public static INamedTypeSymbol? DisallowNullAttribute(this Compilation compilation) 276public static INamedTypeSymbol? DataMemberAttribute(this Compilation compilation) 279public static INamedTypeSymbol? DataContractAttribute(this Compilation compilation) 282public static INamedTypeSymbol? AsyncMethodBuilderAttribute(this Compilation compilation) 285public static INamedTypeSymbol? CancellationTokenType(this Compilation compilation) 288public static INamedTypeSymbol? ValueTupleType(this Compilation compilation, int arity) 291public static INamedTypeSymbol? ListOfTType(this Compilation compilation) 294public static INamedTypeSymbol? ReadOnlySpanOfTType(this Compilation compilation) 297public static INamedTypeSymbol? SpanOfTType(this Compilation compilation) 300public static INamedTypeSymbol? InterpolatedStringHandlerAttributeType(this Compilation compilation) 303public static INamedTypeSymbol? DateOnlyType(this Compilation compilation) 306public static INamedTypeSymbol? TimeOnlyType(this Compilation compilation) 334public static INamedTypeSymbol? GetBestTypeByMetadataName(this Compilation compilation, string fullyQualifiedMetadataName) 336INamedTypeSymbol? type = null; 338foreach (var currentType in compilation.GetTypesByMetadataName(fullyQualifiedMetadataName)) 373foreach (var candidateTopLevelType in compilation.SourceModule.GlobalNamespace.GetTypeMembers(WellKnownMemberNames.TopLevelStatementsEntryPointTypeName, arity: 0)) 385public static INamedTypeSymbol? TryGetCallingConventionSymbol(this Compilation compilation, string callingConvention)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\IMethodSymbolExtensions.cs (6)
26foreach (var nestedType in methodSymbol.ContainingType.GetTypeMembers()) 72public static bool HasEventHandlerSignature(this IMethodSymbol method, [NotNullWhen(returnValue: true)] INamedTypeSymbol? eventArgsType) 131public static bool IsEntryPoint(this IMethodSymbol methodSymbol, INamedTypeSymbol? taskType, INamedTypeSymbol? genericTaskType) 147if (method.ReturnType is not INamedTypeSymbol { Arity: 0 }) 169var containingType = constructor.ContainingType;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\INamedTypeSymbolExtensions.cs (77)
24public static IEnumerable<INamedTypeSymbol> GetBaseTypesAndThis(this INamedTypeSymbol? namedType) 26var current = namedType; 34public static IEnumerable<INamedTypeSymbol> GetContainingTypesAndThis(this INamedTypeSymbol? namedType) 36var current = namedType; 44public static ImmutableArray<ITypeParameterSymbol> GetAllTypeParameters(this INamedTypeSymbol? symbol) 50public static ImmutableArray<ITypeSymbol> GetAllTypeArguments(this INamedTypeSymbol? symbol) 56private static Stack<INamedTypeSymbol> GetContainmentStack(INamedTypeSymbol? symbol) 58var stack = new Stack<INamedTypeSymbol>(); 59for (var current = symbol; current != null; current = current.ContainingType) 67public static bool IsContainedWithin([NotNullWhen(returnValue: true)] this INamedTypeSymbol? symbol, INamedTypeSymbol outer) 70for (var current = symbol; current != null; current = current.ContainingType) 81public static ISymbol? FindImplementationForAbstractMember(this INamedTypeSymbol? type, ISymbol symbol) 92private static bool ImplementationExists(INamedTypeSymbol classOrStructType, ISymbol member) 96this INamedTypeSymbol classOrStructType, 98Func<INamedTypeSymbol, ISymbol, bool> isValidImplementation, 128private static bool IsInterfacePropertyImplemented(INamedTypeSymbol classOrStructType, IPropertySymbol propertySymbol) 136static bool IsAccessorImplemented(IMethodSymbol? accessor, INamedTypeSymbol classOrStructType) 142private static bool IsAbstractPropertyImplemented(INamedTypeSymbol classOrStructType, IPropertySymbol propertySymbol) 165this INamedTypeSymbol classOrStructType, 167Func<INamedTypeSymbol, ISymbol, bool> isValid, 190public static ImmutableArray<(INamedTypeSymbol type, ImmutableArray<ISymbol> members)> GetAllUnimplementedMembers( 191this INamedTypeSymbol classOrStructType, 192IEnumerable<INamedTypeSymbol> interfaces, 208static ImmutableArray<ISymbol> GetImplicitlyImplementableMembers(INamedTypeSymbol type, ISymbol within) 260public static ImmutableArray<(INamedTypeSymbol type, ImmutableArray<ISymbol> members)> GetAllUnimplementedMembersInThis( 261this INamedTypeSymbol classOrStructType, 262IEnumerable<INamedTypeSymbol> interfacesOrAbstractClasses, 278public static ImmutableArray<(INamedTypeSymbol type, ImmutableArray<ISymbol> members)> GetAllUnimplementedMembersInThis( 279this INamedTypeSymbol classOrStructType, 280IEnumerable<INamedTypeSymbol> interfacesOrAbstractClasses, 281Func<INamedTypeSymbol, ISymbol, ImmutableArray<ISymbol>> interfaceMemberGetter, 297public static ImmutableArray<(INamedTypeSymbol type, ImmutableArray<ISymbol> members)> GetAllUnimplementedExplicitMembers( 298this INamedTypeSymbol classOrStructType, 299IEnumerable<INamedTypeSymbol> interfaces, 311private static ImmutableArray<ISymbol> GetExplicitlyImplementableMembers(INamedTypeSymbol type, ISymbol within) 338private static ImmutableArray<(INamedTypeSymbol type, ImmutableArray<ISymbol> members)> GetAllUnimplementedMembers( 339this INamedTypeSymbol classOrStructType, 340IEnumerable<INamedTypeSymbol> interfacesOrAbstractClasses, 341Func<INamedTypeSymbol, ISymbol, Func<INamedTypeSymbol, ISymbol, bool>, CancellationToken, bool> isImplemented, 342Func<INamedTypeSymbol, ISymbol, bool> isValidImplementation, 343Func<INamedTypeSymbol, ISymbol, ImmutableArray<ISymbol>> interfaceMemberGetter, 372private static ImmutableArray<INamedTypeSymbol> GetTypesToImplement( 373INamedTypeSymbol classOrStructType, 374IEnumerable<INamedTypeSymbol> interfacesOrAbstractClasses, 383private static ImmutableArray<INamedTypeSymbol> GetAbstractClassesToImplement( 384IEnumerable<INamedTypeSymbol> abstractClasses) 389private static ImmutableArray<INamedTypeSymbol> GetInterfacesToImplement( 390INamedTypeSymbol classOrStructType, 391IEnumerable<INamedTypeSymbol> interfaces, 398var interfacesToImplement = new List<INamedTypeSymbol>( 403var baseType = classOrStructType.BaseType; 414this INamedTypeSymbol classOrStructType, 415INamedTypeSymbol interfaceType, 416Func<INamedTypeSymbol, ISymbol, Func<INamedTypeSymbol, ISymbol, bool>, CancellationToken, bool> isImplemented, 417Func<INamedTypeSymbol, ISymbol, bool> isValidImplementation, 418Func<INamedTypeSymbol, ISymbol, ImmutableArray<ISymbol>> interfaceMemberGetter, 460this INamedTypeSymbol attributeSymbol, 466var systemAttributeType = compilation.AttributeType(); 468foreach (var type in attributeSymbol.GetBaseTypesAndThis()) 528private static ImmutableArray<ISymbol> GetMembers(INamedTypeSymbol type, ISymbol within) 542this INamedTypeSymbol containingType, CancellationToken cancellationToken) 559foreach (var type in baseTypes) 580Dictionary<ISymbol, int> result, INamedTypeSymbol containingType, CancellationToken cancellationToken) 601Dictionary<ISymbol, int> result, INamedTypeSymbol containingType, CancellationToken cancellationToken) 623Dictionary<ISymbol, int> result, INamedTypeSymbol containingType, 624INamedTypeSymbol type, ref int index, CancellationToken cancellationToken) 637private static bool IsOverridable(ISymbol member, INamedTypeSymbol containingType) 680public static INamedTypeSymbol TryConstruct(this INamedTypeSymbol type, ITypeSymbol[] typeArguments) 683public static bool IsCollectionBuilderAttribute([NotNullWhen(true)] this INamedTypeSymbol? type) 702public static bool IsIEnumerableOfT([NotNullWhen(true)] this INamedTypeSymbol? type)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\INamespaceOrTypeSymbolExtensions.cs (3)
90public static IEnumerable<INamedTypeSymbol> GetAllTypes( 106var namedType = (INamedTypeSymbol)current;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\ISymbolExtensions.cs (16)
99foreach (var baseType in symbol.ContainingType.GetBaseTypes()) 108bool TryFindLooseMatch(ISymbol symbol, INamedTypeSymbol baseType, [NotNullWhen(true)] out ISymbol? looseMatch) 157foreach (var iface in symbol.ContainingType.AllInterfaces) 215public static INamedTypeSymbol? GetContainingTypeOrThis(this ISymbol symbol) 217if (symbol is INamedTypeSymbol namedType) 311=> symbol is INamedTypeSymbol { IsAnonymousType: true }; 354SymbolKind.NamedType => ((INamedTypeSymbol)symbol).Arity, 435INamedTypeSymbol nt => nt.TypeParameters, 456INamedTypeSymbol nt => nt.TypeArguments, 465var containingType = symbol.ContainingType; 506var delegateType = compilation.GetTypeByMetadataName(method.ReturnsVoid 535=> symbol is INamedTypeSymbol { IsStatic: true }; 551foreach (var type in namespaceOrType.GetAllTypes(cancellationToken)) 568private static bool IsAttributeValidForTargets(INamedTypeSymbol attributeType, AttributeTargets validTargets) 595return ((INamedTypeSymbol)symbol).GetMembers().OfType<IPropertySymbol>().Where(p => p.CanBeReferencedByName); 870public static bool HasAttribute([NotNullWhen(true)] this ISymbol? symbol, [NotNullWhen(true)] INamedTypeSymbol? attributeClass)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\ISymbolExtensions.RequiresUnsafeModifierVisitor.cs (1)
56public override bool VisitNamedType(INamedTypeSymbol symbol)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\ISymbolExtensions_Accessibility.cs (25)
27else if (within is INamedTypeSymbol namedType) 54INamedTypeSymbol within, 67INamedTypeSymbol within, 92Debug.Assert(within is INamedTypeSymbol or IAssemblySymbol); 124return IsNamedTypeAccessible((INamedTypeSymbol)symbol, within); 177private static bool IsNamedTypeAccessible(INamedTypeSymbol type, ISymbol within) 179Debug.Assert(within is INamedTypeSymbol or IAssemblySymbol); 204var containingType = type.ContainingType; 217Debug.Assert(within is INamedTypeSymbol or IAssemblySymbol); 219var withinAssembly = (within as IAssemblySymbol) ?? ((INamedTypeSymbol)within).ContainingAssembly; 248INamedTypeSymbol containingType, 254Debug.Assert(within is INamedTypeSymbol or IAssemblySymbol); 259var originalContainingType = containingType.OriginalDefinition; 260var withinNamedType = within as INamedTypeSymbol; 261var withinAssembly = (within as IAssemblySymbol) ?? ((INamedTypeSymbol)within).ContainingAssembly; 334INamedTypeSymbol? withinType, 337INamedTypeSymbol originalContainingType, 375var current = withinType.OriginalDefinition; 411INamedTypeSymbol originalContainingType) 413Debug.Assert(within is INamedTypeSymbol or IAssemblySymbol); 415if (within is not INamedTypeSymbol withinType) 428INamedTypeSymbol withinType, 429INamedTypeSymbol originalContainingType) 436var current = withinType.OriginalDefinition;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\ITypeGenerator.cs (1)
13ITypeSymbol Construct(INamedTypeSymbol namedType, ITypeSymbol[] typeArguments);
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\ITypeParameterSymbolExtensions.cs (4)
14public static INamedTypeSymbol? GetNamedTypeSymbolConstraint(this ITypeParameterSymbol typeParameter) 17private static INamedTypeSymbol? GetNamedTypeSymbol(ITypeSymbol type) 19return type is INamedTypeSymbol 20? (INamedTypeSymbol)type
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\ITypeSymbolExtensions.AnonymousTypeRemover.cs (1)
42public override ITypeSymbol VisitNamedType(INamedTypeSymbol symbol)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\ITypeSymbolExtensions.CollectTypeParameterSymbolsVisitor.cs (1)
57public override void VisitNamedType(INamedTypeSymbol symbol)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\ITypeSymbolExtensions.CompilationTypeGenerator.cs (1)
19public ITypeSymbol Construct(INamedTypeSymbol namedType, ITypeSymbol[] typeArguments)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\ITypeSymbolExtensions.cs (30)
43public static ImmutableArray<INamedTypeSymbol> GetAllInterfacesIncludingThis(this ITypeSymbol type) 46return type is INamedTypeSymbol { TypeKind: TypeKind.Interface } namedType && !allInterfaces.Contains(namedType) 69underlyingType = ((INamedTypeSymbol)symbol).TypeArguments[0]; 92public static bool IsAnonymousType([NotNullWhen(returnValue: true)] this INamedTypeSymbol? symbol) 95private static HashSet<INamedTypeSymbol> GetOriginalInterfacesAndTheirBaseInterfaces( 97HashSet<INamedTypeSymbol>? symbols = null) 99symbols ??= new HashSet<INamedTypeSymbol>(SymbolEquivalenceComparer.Instance); 101foreach (var interfaceType in type.Interfaces) 120public static IEnumerable<INamedTypeSymbol> GetBaseTypes(this ITypeSymbol? type) 122var current = type?.BaseType; 140public static IEnumerable<INamedTypeSymbol> GetContainingTypes(this ITypeSymbol type) 142var current = type.ContainingType; 198var currentBaseType = type.BaseType; 227for (var b = symbol.BaseType; b != null; b = b.BaseType) 316INamedTypeSymbol n => ContainsAnonymousType(n), 321private static bool ContainsAnonymousType(INamedTypeSymbol type) 417public static INamedTypeSymbol? GetDelegateType(this ITypeSymbol? typeSymbol, Compilation compilation) 421var expressionOfT = compilation.ExpressionOfTType(); 424var typeArgument = ((INamedTypeSymbol)typeSymbol).TypeArguments[0]; 425return typeArgument as INamedTypeSymbol; 430return typeSymbol as INamedTypeSymbol; 583var n2 = t2 as INamedTypeSymbol; 585if (t1 is not INamedTypeSymbol n1) 635public static bool IsEnumType([NotNullWhen(true)] this ITypeSymbol? type, [NotNullWhen(true)] out INamedTypeSymbol? enumType) 639enumType = (INamedTypeSymbol)type; 731if (type is not INamedTypeSymbol 784=> type is INamedTypeSymbol 792=> symbol is INamedTypeSymbol 800=> type is INamedTypeSymbol namedType &&
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\ITypeSymbolExtensions.MinimalAccessibilityVisitor.cs (2)
42foreach (var callingConventionType in symbol.Signature.UnmanagedCallingConventionTypes) 50public override Accessibility VisitNamedType(INamedTypeSymbol symbol)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\ITypeSymbolExtensions.SubstituteTypesVisitor.cs (1)
58public override ITypeSymbol VisitNamedType(INamedTypeSymbol symbol)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\ITypeSymbolExtensions.UnavailableTypeParameterRemover.cs (1)
43public override ITypeSymbol VisitNamedType(INamedTypeSymbol symbol)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\ITypeSymbolExtensions.UnnamedErrorTypeRemover.cs (1)
42public override ITypeSymbol VisitNamedType(INamedTypeSymbol symbol)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\SymbolEquivalenceComparer.cs (12)
149public bool ReturnTypeEquals(IMethodSymbol x, IMethodSymbol y, Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies = null) 164public bool Equals(ISymbol? x, ISymbol? y, Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies) 170private bool EqualsCore(ISymbol? x, ISymbol? y, Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies) 191private static bool IsConstructedFromSelf(INamedTypeSymbol symbol) 213private static OneOrMany<INamedTypeSymbol> Unwrap(INamedTypeSymbol namedType) 219using var builder = TemporaryArray<INamedTypeSymbol>.Empty; 224if (candidate is INamedTypeSymbol candidateType) 257private static TypeKind GetTypeKind(INamedTypeSymbol x)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\SymbolEquivalenceComparer.EquivalenceVisitor.cs (65)
22public bool AreEquivalent(ISymbol? x, ISymbol? y, Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies) 51return AreArrayAndReadOnlySpanEquivalent((IArrayTypeSymbol)x, (INamedTypeSymbol)y, equivalentTypesWithDifferingAssemblies); 55return AreArrayAndReadOnlySpanEquivalent((IArrayTypeSymbol)y, (INamedTypeSymbol)x, equivalentTypesWithDifferingAssemblies); 65private bool AreArrayAndReadOnlySpanEquivalent(IArrayTypeSymbol array, INamedTypeSymbol readOnlySpanType, Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies) 73internal bool AreEquivalent(CustomModifier x, CustomModifier y, Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies) 76internal bool AreEquivalent(ImmutableArray<CustomModifier> x, ImmutableArray<CustomModifier> y, Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies) 112private bool AreEquivalentWorker(ISymbol x, ISymbol y, SymbolKind k, Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies) 126SymbolKind.NamedType => NamedTypesAreEquivalent((INamedTypeSymbol)x, (INamedTypeSymbol)y, equivalentTypesWithDifferingAssemblies), 127SymbolKind.ErrorType => NamedTypesAreEquivalent((INamedTypeSymbol)x, (INamedTypeSymbol)y, equivalentTypesWithDifferingAssemblies), 140private bool ArrayTypesAreEquivalent(IArrayTypeSymbol x, IArrayTypeSymbol y, Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies) 152private bool FieldsAreEquivalent(IFieldSymbol x, IFieldSymbol y, Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies) 170private bool MethodsAreEquivalent(IMethodSymbol x, IMethodSymbol y, Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies, bool considerReturnRefKinds = false) 281private bool NamedTypesAreEquivalent(INamedTypeSymbol x, INamedTypeSymbol y, Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies) 301private bool NamedTypesAreEquivalentError(INamedTypeSymbol x, INamedTypeSymbol y, Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies) 303foreach (var type1 in Unwrap(x)) 306foreach (var type2 in Unwrap(y)) 330private bool HandleNamedTypesWorker(INamedTypeSymbol x, INamedTypeSymbol y, Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies) 418private bool HandleTupleTypes(INamedTypeSymbol x, INamedTypeSymbol y, Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies) 463Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies, 486internal bool ReturnTypesAreEquivalent(IMethodSymbol x, IMethodSymbol y, Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies = null) 492private bool TypeArgumentsAreEquivalent(ImmutableArray<ITypeSymbol> xTypeArguments, ImmutableArray<ITypeSymbol> yTypeArguments, Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies) 511private bool HandleAnonymousTypes(INamedTypeSymbol x, INamedTypeSymbol y, Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies) 547private bool NamespacesAreEquivalent(INamespaceSymbol x, INamespaceSymbol y, Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies) 564private bool ParametersAreEquivalent(IParameterSymbol x, IParameterSymbol y, Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies) 574private bool PointerTypesAreEquivalent(IPointerTypeSymbol x, IPointerTypeSymbol y, Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies) 581private bool FunctionPointerTypesAreEquivalent(IFunctionPointerTypeSymbol x, IFunctionPointerTypeSymbol y, Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies) 584private bool PropertiesAreEquivalent(IPropertySymbol x, IPropertySymbol y, Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies) 608private bool EventsAreEquivalent(IEventSymbol x, IEventSymbol y, Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies) 617private bool TypeParametersAreEquivalent(ITypeParameterSymbol x, ITypeParameterSymbol y, Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\SymbolEquivalenceComparer.GetHashCodeVisitor.cs (5)
70SymbolKind.NamedType => CombineHashCodes((INamedTypeSymbol)x, currentHash), 146private int CombineHashCodes(INamedTypeSymbol x, int currentHash) 154if (candidate is INamedTypeSymbol candidateNamedType) 164private int CombineNamedTypeHashCode(INamedTypeSymbol x, int currentHash) 193private int CombineAnonymousTypeHashCode(INamedTypeSymbol x, int currentHash)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\SymbolEquivalenceComparer.ParameterSymbolEqualityComparer.cs (2)
23Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies,
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\SymbolEquivalenceComparer.SignatureTypeSymbolEquivalenceComparer.cs (2)
18public bool Equals(ITypeSymbol? x, ITypeSymbol? y, Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\AbstractCodeGenerationService.cs (15)
59public TDeclarationNode AddNamedType<TDeclarationNode>(TDeclarationNode destination, INamedTypeSymbol namedType, CodeGenerationContextInfo info, CancellationToken cancellationToken) where TDeclarationNode : SyntaxNode 88public SyntaxNode CreateNamedTypeDeclaration(INamedTypeSymbol namedType, CodeGenerationDestination destination, CodeGenerationContextInfo info, CancellationToken cancellationToken) 127protected abstract TDeclarationNode AddNamedType<TDeclarationNode>(TDeclarationNode destination, INamedTypeSymbol namedType, TCodeGenerationContextInfo info, IList<bool>? availableIndices, CancellationToken cancellationToken) where TDeclarationNode : SyntaxNode; 150public abstract SyntaxNode CreateNamedTypeDeclaration(INamedTypeSymbol namedType, CodeGenerationDestination destination, TCodeGenerationContextInfo info, CancellationToken cancellationToken); 349INamedTypeSymbol namedType => CreateNamedTypeDeclaration(namedType, codeGenerationDestination, info, cancellationToken), 367INamedTypeSymbol namedType => AddNamedType(currentDestination, namedType, info, availableIndices, cancellationToken), 392CodeGenerationSolutionContext context, INamedTypeSymbol destination, IEventSymbol @event, CancellationToken cancellationToken) 401public Task<Document> AddFieldAsync(CodeGenerationSolutionContext context, INamedTypeSymbol destination, IFieldSymbol field, CancellationToken cancellationToken) 410public Task<Document> AddPropertyAsync(CodeGenerationSolutionContext context, INamedTypeSymbol destination, IPropertySymbol property, CancellationToken cancellationToken) 419public Task<Document> AddNamedTypeAsync(CodeGenerationSolutionContext context, INamedTypeSymbol destination, INamedTypeSymbol namedType, CancellationToken cancellationToken) 428public Task<Document> AddNamedTypeAsync(CodeGenerationSolutionContext context, INamespaceSymbol destination, INamedTypeSymbol namedType, CancellationToken cancellationToken) 446public Task<Document> AddMethodAsync(CodeGenerationSolutionContext context, INamedTypeSymbol destination, IMethodSymbol method, CancellationToken cancellationToken) 455public Task<Document> AddMembersAsync(CodeGenerationSolutionContext context, INamedTypeSymbol destination, IEnumerable<ISymbol> members, CancellationToken cancellationToken) 477return AddNamedTypeAsync(context, destination, (INamedTypeSymbol)namespaceOrType, cancellationToken);
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\AbstractFlagsEnumGenerator.cs (10)
14protected abstract SyntaxNode CreateExplicitlyCastedLiteralValue(INamedTypeSymbol enumType, SpecialType underlyingSpecialType, object constantValue); 15protected abstract bool IsValidName(INamedTypeSymbol enumType, string name); 19public SyntaxNode CreateEnumConstantValue(INamedTypeSymbol enumType, object constantValue) 35private static bool IsFlagsEnum(INamedTypeSymbol typeSymbol) 47var type = ctor.ContainingType; 60private SyntaxNode CreateFlagsEnumConstantValue(INamedTypeSymbol enumType, object constantValue) 71INamedTypeSymbol enumType, 137IFieldSymbol field, INamedTypeSymbol enumType, SpecialType underlyingSpecialType) 167INamedTypeSymbol enumType, 184private SyntaxNode CreateNonFlagsEnumConstantValue(INamedTypeSymbol enumType, object constantValue)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\CodeGenerationHelpers.cs (2)
25var exceptionType = compilation.GetTypeByMetadataName(exceptionMetadataName); 150public static IEnumerable<ISymbol> GetMembers(INamedTypeSymbol namedType)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\CodeGenerationSymbolFactory.cs (14)
43INamedTypeSymbol? containingType, 148INamedTypeSymbol? containingType, 222INamedTypeSymbol? containingType = null, 250INamedTypeSymbol? containingType = null, 404INamedTypeSymbol attributeClass, 414public static INamedTypeSymbol CreateNamedTypeSymbol( 420INamedTypeSymbol? baseType = null, 421ImmutableArray<INamedTypeSymbol> interfaces = default, 433public static INamedTypeSymbol CreateNamedTypeSymbol( 439INamedTypeSymbol? baseType = null, 440ImmutableArray<INamedTypeSymbol> interfaces = default, 451members.WhereAsArray(m => m is not INamedTypeSymbol), 452[.. members.OfType<INamedTypeSymbol>().Select(n => n.ToCodeGenerationSymbol())], 519INamedTypeSymbol? containingType = null,
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\CodeGenerator.cs (8)
30public static Task<Document> AddEventDeclarationAsync(CodeGenerationSolutionContext context, INamedTypeSymbol destination, IEventSymbol @event, CancellationToken cancellationToken) 37public static Task<Document> AddFieldDeclarationAsync(CodeGenerationSolutionContext context, INamedTypeSymbol destination, IFieldSymbol field, CancellationToken cancellationToken) 44public static Task<Document> AddMethodDeclarationAsync(CodeGenerationSolutionContext context, INamedTypeSymbol destination, IMethodSymbol method, CancellationToken cancellationToken) 51public static Task<Document> AddPropertyDeclarationAsync(CodeGenerationSolutionContext context, INamedTypeSymbol destination, IPropertySymbol property, CancellationToken cancellationToken) 58public static Task<Document> AddNamedTypeDeclarationAsync(CodeGenerationSolutionContext context, INamedTypeSymbol destination, INamedTypeSymbol namedType, CancellationToken cancellationToken) 65public static Task<Document> AddNamedTypeDeclarationAsync(CodeGenerationSolutionContext context, INamespaceSymbol destination, INamedTypeSymbol namedType, CancellationToken cancellationToken) 86public static Task<Document> AddMemberDeclarationsAsync(CodeGenerationSolutionContext context, INamedTypeSymbol destination, IEnumerable<ISymbol> members, CancellationToken cancellationToken)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\ICodeGenerationService.cs (10)
43SyntaxNode CreateNamedTypeDeclaration(INamedTypeSymbol namedType, CodeGenerationDestination destination, CodeGenerationContextInfo info, CancellationToken cancellationToken); 73TDeclarationNode AddNamedType<TDeclarationNode>(TDeclarationNode destination, INamedTypeSymbol namedType, CodeGenerationContextInfo info, CancellationToken cancellationToken) where TDeclarationNode : SyntaxNode; 133Task<Document> AddEventAsync(CodeGenerationSolutionContext context, INamedTypeSymbol destination, IEventSymbol @event, CancellationToken cancellationToken); 138Task<Document> AddFieldAsync(CodeGenerationSolutionContext context, INamedTypeSymbol destination, IFieldSymbol field, CancellationToken cancellationToken); 143Task<Document> AddMethodAsync(CodeGenerationSolutionContext context, INamedTypeSymbol destination, IMethodSymbol method, CancellationToken cancellationToken); 148Task<Document> AddPropertyAsync(CodeGenerationSolutionContext context, INamedTypeSymbol destination, IPropertySymbol property, CancellationToken cancellationToken); 153Task<Document> AddNamedTypeAsync(CodeGenerationSolutionContext context, INamedTypeSymbol destination, INamedTypeSymbol namedType, CancellationToken cancellationToken); 158Task<Document> AddNamedTypeAsync(CodeGenerationSolutionContext context, INamespaceSymbol destination, INamedTypeSymbol namedType, CancellationToken cancellationToken); 173Task<Document> AddMembersAsync(CodeGenerationSolutionContext context, INamedTypeSymbol destination, IEnumerable<ISymbol> members, CancellationToken cancellationToken);
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\INamedTypeSymbolExtensions.cs (2)
11public static CodeGenerationAbstractNamedTypeSymbol ToCodeGenerationSymbol(this INamedTypeSymbol namedType) 32namedType.GetMembers().WhereAsArray(s => s is not INamedTypeSymbol),
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\Symbols\CodeGenerationAbstractMethodSymbol.cs (3)
23INamedTypeSymbol containingType, 98public INamedTypeSymbol AssociatedAnonymousDelegate => null; 110public ImmutableArray<INamedTypeSymbol> UnmanagedCallingConventionTypes => [];
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\Symbols\CodeGenerationAbstractNamedTypeSymbol.cs (10)
16public new INamedTypeSymbol OriginalDefinition { get; protected set; } 24INamedTypeSymbol containingType, 53public INamedTypeSymbol Construct(params ITypeSymbol[] typeArguments) 64public INamedTypeSymbol Construct(ImmutableArray<ITypeSymbol> typeArguments, ImmutableArray<NullableAnnotation> typeArgumentNullableAnnotations) 77public abstract INamedTypeSymbol EnumUnderlyingType { get; } 79INamedTypeSymbol INamedTypeSymbol.ConstructedFrom => this.ConstructedFrom; 80public abstract INamedTypeSymbol ConstructUnboundGenericType(); 119public INamedTypeSymbol NativeIntegerUnderlyingType => null; 121public INamedTypeSymbol TupleUnderlyingType => null;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\Symbols\CodeGenerationAttributeData.cs (2)
13INamedTypeSymbol attributeClass, 20protected override INamedTypeSymbol CommonAttributeClass => attributeClass;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\Symbols\CodeGenerationConstructedNamedTypeSymbol.cs (4)
51public override INamedTypeSymbol EnumUnderlyingType 57public override INamedTypeSymbol ConstructUnboundGenericType() 87public override ImmutableArray<INamedTypeSymbol> GetTypeMembers() 90return [.. _constructedFrom.TypeMembers.Cast<INamedTypeSymbol>()];
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\Symbols\CodeGenerationConstructorSymbol.cs (1)
11INamedTypeSymbol? containingType,
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\Symbols\CodeGenerationConversionSymbol.cs (1)
11INamedTypeSymbol? containingType,
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\Symbols\CodeGenerationDestructorSymbol.cs (1)
10INamedTypeSymbol? containingType,
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\Symbols\CodeGenerationEventSymbol.cs (1)
12INamedTypeSymbol? containingType,
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\Symbols\CodeGenerationFieldSymbol.cs (1)
13INamedTypeSymbol containingType,
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\Symbols\CodeGenerationMethodSymbol.cs (1)
23INamedTypeSymbol containingType,
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\Symbols\CodeGenerationNamedTypeSymbol.cs (11)
19private readonly ImmutableArray<INamedTypeSymbol> _interfaces; 24INamedTypeSymbol containingType, 32INamedTypeSymbol baseType, 33ImmutableArray<INamedTypeSymbol> interfaces, 38INamedTypeSymbol enumUnderlyingType) 101public override INamedTypeSymbol EnumUnderlyingType { get; } 111public override INamedTypeSymbol ConstructUnboundGenericType() 147public override INamedTypeSymbol BaseType { get; } 149public override ImmutableArray<INamedTypeSymbol> Interfaces 160public override ImmutableArray<INamedTypeSymbol> GetTypeMembers() 161=> [.. this.TypeMembers.Cast<INamedTypeSymbol>()];
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\Symbols\CodeGenerationNamespaceOrTypeSymbol.cs (4)
14INamedTypeSymbol containingType, 29public virtual ImmutableArray<INamedTypeSymbol> GetTypeMembers() 32public ImmutableArray<INamedTypeSymbol> GetTypeMembers(string name) 35public ImmutableArray<INamedTypeSymbol> GetTypeMembers(string name, int arity)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\Symbols\CodeGenerationNamespaceSymbol.cs (1)
57public static INamedTypeSymbol ImplicitType => null;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\Symbols\CodeGenerationOperatorSymbol.cs (1)
11INamedTypeSymbol? containingType,
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\Symbols\CodeGenerationParameterSymbol.cs (1)
13INamedTypeSymbol containingType,
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\Symbols\CodeGenerationPropertySymbol.cs (1)
13INamedTypeSymbol containingType,
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\Symbols\CodeGenerationSymbol.cs (3)
27public INamedTypeSymbol ContainingType { get; protected set; } 31INamedTypeSymbol containingType, 162public ImmutableArray<AttributeData> GetAttributes(INamedTypeSymbol attributeType)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\Symbols\CodeGenerationTypeParameterSymbol.cs (3)
12INamedTypeSymbol containingType, 80public INamedTypeSymbol DeclaringType 84return this.ContainingSymbol as INamedTypeSymbol;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\Symbols\CodeGenerationTypeSymbol.cs (4)
14INamedTypeSymbol containingType, 27public virtual INamedTypeSymbol BaseType => null; 29public virtual ImmutableArray<INamedTypeSymbol> Interfaces 32public ImmutableArray<INamedTypeSymbol> AllInterfaces
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\TypeGenerator.cs (1)
21public ITypeSymbol Construct(INamedTypeSymbol namedType, ITypeSymbol[] typeArguments)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\Editing\ImportAdderService.cs (2)
202foreach (var namedType in SymbolAnnotation.GetSymbols(annotation, model.Compilation).OfType<INamedTypeSymbol>())
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\Extensions\IMethodSymbolExtensions.cs (3)
19this IMethodSymbol method, INamedTypeSymbol containingType, ISyntaxFactsService syntaxFacts) 143params INamedTypeSymbol[] removeAttributeTypes) 172static bool shouldRemoveAttribute(AttributeData a, (INamedTypeSymbol[] removeAttributeTypes, ISymbol accessibleWithin) arg)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\Extensions\IPropertySymbolExtensions.cs (2)
41this IPropertySymbol property, ISymbol accessibleWithin, params INamedTypeSymbol[] attributesToRemove) 69static bool ShouldRemoveAttribute(AttributeData a, (INamedTypeSymbol[] attributesToRemove, ISymbol accessibleWithin) arg)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\Extensions\ITypeInferenceServiceExtensions.cs (3)
27public static INamedTypeSymbol? InferDelegateType( 37public static INamedTypeSymbol? InferDelegateType( 47private static INamedTypeSymbol? GetFirstDelegateType(SemanticModel semanticModel, ImmutableArray<ITypeSymbol> types)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\Extensions\SyntaxGeneratorExtensions.cs (4)
39var notImplementedExceptionTypeSyntax = compilation.NotImplementedExceptionType() is INamedTypeSymbol symbol 72var equalityComparerType = compilation.EqualityComparerOfTType(); 176var classOrStructType = throughMember.ContainingType; 441var type = compilation.GetTypeByMetadataName(typeof(ArgumentNullException).FullName!);
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\Extensions\SyntaxGeneratorExtensions_CreateEqualsMethod.cs (11)
29INamedTypeSymbol containingType, 79INamedTypeSymbol containingType, 81INamedTypeSymbol constructedEquatableType, 125INamedTypeSymbol containingType, 243var iequatableType = compilation.GetTypeByMetadataName(typeof(IEquatable<>).FullName); 296INamedTypeSymbol containingType, 407private static bool ImplementsIEquatable(ITypeSymbol memberType, INamedTypeSymbol? iequatableType) 413var constructed = iequatableType.Construct(memberType); 458private static bool HasExistingBaseEqualsMethod(INamedTypeSymbol containingType) 481INamedTypeSymbol? containingType, 515INamedTypeSymbol? containingType,
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\Extensions\SyntaxGeneratorExtensions_CreateGetHashCodeMethod.cs (5)
21INamedTypeSymbol? containingType, 43INamedTypeSymbol hashCodeType, ImmutableArray<SyntaxNode> memberReferences) 83INamedTypeSymbol containingType, 179this SyntaxGenerator generator, SyntaxGeneratorInternal generatorInternal, INamedTypeSymbol namedTypeSymbol, 192public static IMethodSymbol? GetBaseGetHashCodeMethod(INamedTypeSymbol containingType)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\Extensions\SyntaxGeneratorExtensions_Negate.cs (1)
444var containingType = property.ContainingType;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\LanguageServices\InitializeParameter\InitializeParameterHelpersCore.cs (5)
66var containingType = parameter.ContainingType; 84var containingType = parameter.ContainingType; 146IOperation? operation, INamedTypeSymbol containingType, 163public static bool IsFieldOrPropertyAssignment(IOperation statement, INamedTypeSymbol containingType, [NotNullWhen(true)] out IAssignmentOperation? assignmentExpression) 167IOperation statement, INamedTypeSymbol containingType,
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\LanguageServices\SemanticsFactsService\AbstractSemanticFactsService.cs (7)
129var valueTaskType = compilation.ValueTaskType(); 165(INamedTypeSymbol?, IMethodSymbol?) GetIDisposableInterfaceAndDisposeMethod(string typeName, string methodName) 167var disposableType = compilation.GetBestTypeByMetadataName(typeName); 201public bool LastEnumValueHasInitializer(INamedTypeSymbol namedTypeSymbol) 225public bool IsPartial(INamedTypeSymbol typeSymbol, CancellationToken cancellationToken) 252public bool IsInExpressionTree(SemanticModel semanticModel, SyntaxNode node, INamedTypeSymbol? expressionTypeOpt, CancellationToken cancellationToken) 261public bool TryGetPrimaryConstructor(INamedTypeSymbol typeSymbol, [NotNullWhen(true)] out IMethodSymbol? primaryConstructor)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\LanguageServices\SyntaxGeneratorInternalExtensions\SyntaxGeneratorInternal.cs (1)
123public abstract SyntaxNode DeclarationPattern(INamedTypeSymbol type, string name);
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\LanguageServices\TypeInferenceService\AbstractTypeInferenceService.AbstractTypeInferrer.cs (1)
102protected static IEnumerable<TypeInferenceInfo> GetCollectionElementType(INamedTypeSymbol type)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\Simplification\SimplificationHelpers.cs (1)
80var typeSymbol = semanticModel.Compilation.GetSpecialType(specialType);
Microsoft.DotNet.ApiCompatibility (21)
Comparing\TypedConstantEqualityComparer.cs (2)
30if (!symbolEqualityComparer.Equals((x.Value as INamedTypeSymbol)!, (y.Value as INamedTypeSymbol)!))
Mapping\AssemblyMapper.cs (7)
49Dictionary<INamespaceSymbol, List<INamedTypeSymbol>> typeForwards = ResolveTypeForwards(assemblyContainer, side, Settings.SymbolEqualityComparer, setIndex); 56bool hasTypeForwards = typeForwards.TryGetValue(nsSymbol, out List<INamedTypeSymbol>? types); 79foreach (KeyValuePair<INamespaceSymbol, List<INamedTypeSymbol>> kvp in typeForwards) 102Dictionary<INamespaceSymbol, List<INamedTypeSymbol>> ResolveTypeForwards(ElementContainer<IAssemblySymbol> assembly, 107Dictionary<INamespaceSymbol, List<INamedTypeSymbol>> typeForwards = new(comparer); 108foreach (INamedTypeSymbol symbol in assembly.Element.GetForwardedTypes()) 112if (!typeForwards.TryGetValue(symbol.ContainingNamespace, out List<INamedTypeSymbol>? types))
Mapping\INamespaceMapper.cs (2)
29/// <param name="forwardedTypes">List containing the <see cref="INamedTypeSymbol"/> that represents the forwarded types.</param> 32void AddForwardedTypes(IEnumerable<INamedTypeSymbol>? forwardedTypes, ElementSide side, int setIndex);
Mapping\NamespaceMapper.cs (1)
69public void AddForwardedTypes(IEnumerable<INamedTypeSymbol>? forwardedTypes, ElementSide side, int setIndex)
Mapping\TypeMapper.cs (1)
95foreach (INamedTypeSymbol nestedType in symbol.GetTypeMembers())
Rules\AttributesMustMatch.cs (2)
182if (left is INamedTypeSymbol leftNamed && right is INamedTypeSymbol rightNamed)
Rules\CannotChangeGenericConstraints.cs (2)
35if (left is not INamedTypeSymbol leftType || right is not INamedTypeSymbol rightType)
Rules\EnumsMustMatch.cs (4)
30if (left is not INamedTypeSymbol l || right is not INamedTypeSymbol r) 36if (l.EnumUnderlyingType is not INamedTypeSymbol leftType || r.EnumUnderlyingType is not INamedTypeSymbol rightType)
Microsoft.DotNet.ApiSymbolExtensions (3)
AttributeDataExtensions.cs (1)
39&& typedConstant.Value is INamedTypeSymbol namedTypeSymbol
SymbolExtensions.cs (2)
85if (type is INamedTypeSymbol namedType) 139public static bool TryGetRecordConstructor(this INamedTypeSymbol type, [NotNullWhen(true)] out IMethodSymbol? recordConstructor)
Microsoft.DotNet.CodeAnalysis (1)
Analyzers\ResourceUsageAnalyzer.cs (1)
23INamedTypeSymbol SRSymbol { get; set; }
Microsoft.Extensions.Logging.Generators (24)
LoggerMessageGenerator.Parser.cs (14)
33private readonly INamedTypeSymbol _loggerMessageAttribute; 34private readonly INamedTypeSymbol _loggerSymbol; 35private readonly INamedTypeSymbol _logLevelSymbol; 36private readonly INamedTypeSymbol _exceptionSymbol; 37private readonly INamedTypeSymbol _enumerableSymbol; 38private readonly INamedTypeSymbol _stringSymbol; 44INamedTypeSymbol loggerMessageAttribute, 45INamedTypeSymbol loggerSymbol, 46INamedTypeSymbol logLevelSymbol, 47INamedTypeSymbol exceptionSymbol, 48INamedTypeSymbol enumerableSymbol, 49INamedTypeSymbol stringSymbol, 680INamedTypeSymbol? classType = sm.GetDeclaredSymbol(classDec, _cancellationToken); 682INamedTypeSymbol? currentClassType = classType;
LoggerMessageGenerator.Roslyn4.0.cs (6)
47INamedTypeSymbol? loggerMessageAttribute = compilation.GetBestTypeByMetadataName(Parser.LoggerMessageAttribute); 48INamedTypeSymbol? loggerSymbol = compilation.GetBestTypeByMetadataName("Microsoft.Extensions.Logging.ILogger"); 49INamedTypeSymbol? logLevelSymbol = compilation.GetBestTypeByMetadataName("Microsoft.Extensions.Logging.LogLevel"); 50INamedTypeSymbol? exceptionSymbol = compilation.GetBestTypeByMetadataName("System.Exception"); 51INamedTypeSymbol? enumerableSymbol = compilation.GetSpecialType(SpecialType.System_Collections_IEnumerable); 52INamedTypeSymbol? stringSymbol = compilation.GetSpecialType(SpecialType.System_String);
src\runtime\src\libraries\Common\src\Roslyn\GetBestTypeByMetadataName.cs (4)
38public static INamedTypeSymbol? GetBestTypeByMetadataName(this Compilation compilation, string fullyQualifiedMetadataName) 41var type = compilation.GetTypeByMetadataName(fullyQualifiedMetadataName); 53var currentType = referencedAssembly.GetTypeByMetadataName(fullyQualifiedMetadataName); 88public static INamedTypeSymbol? GetBestTypeByMetadataName(this Compilation compilation, Type type) =>
Microsoft.Extensions.Options.SourceGeneration (61)
Emitter.cs (1)
89INamedTypeSymbol? validatorTypeSymbol = compilation.GetBestTypeByMetadataName("System.ComponentModel.DataAnnotations.Validator");
Parser.cs (18)
212if (type is INamedTypeSymbol mt) 245type = ((INamedTypeSymbol)type).TypeArguments[0]; 251return ((INamedTypeSymbol)type).TypeArguments[0]; 255foreach (var implementingInterface in type.AllInterfaces) 273modelType = ((INamedTypeSymbol)modelType).TypeArguments[0]; 278var baseType = modelType.BaseType; 352var attributeType = attribute.AttributeClass!; 368var transValidatorType = attribute.ConstructorArguments[0].Value as INamedTypeSymbol; 431var enumerationValidatorType = attribute.ConstructorArguments[0].Value as INamedTypeSymbol; 639typeSymbol = ((INamedTypeSymbol)typeSymbol).TypeArguments[0]; 661if (argumentValue is INamedTypeSymbol namedTypeSymbol) 690mt = ((INamedTypeSymbol)mt).TypeArguments[0]; 736foreach (var implementingInterface in modelType.AllInterfaces) 750foreach (var implementingInterface in validatorType.AllInterfaces) 763foreach (var implementingInterface in validatorType.AllInterfaces) 817value is INamedTypeSymbol sym)
ParserUtilities.cs (3)
60foreach (var iface in type.AllInterfaces) 78type = ((INamedTypeSymbol)type).TypeArguments[0]; // extract the T from a Nullable<T> 93foreach (var interfaceType in typeSymbol.AllInterfaces)
src\runtime\src\libraries\Common\src\Roslyn\GetBestTypeByMetadataName.cs (4)
38public static INamedTypeSymbol? GetBestTypeByMetadataName(this Compilation compilation, string fullyQualifiedMetadataName) 41var type = compilation.GetTypeByMetadataName(fullyQualifiedMetadataName); 53var currentType = referencedAssembly.GetTypeByMetadataName(fullyQualifiedMetadataName); 88public static INamedTypeSymbol? GetBestTypeByMetadataName(this Compilation compilation, Type type) =>
SymbolHolder.cs (17)
12INamedTypeSymbol OptionsValidatorSymbol, 13INamedTypeSymbol ValidationAttributeSymbol, 14INamedTypeSymbol MaxLengthAttributeSymbol, 15INamedTypeSymbol MinLengthAttributeSymbol, 16INamedTypeSymbol CompareAttributeSymbol, 17INamedTypeSymbol? LengthAttributeSymbol, 18INamedTypeSymbol? UnconditionalSuppressMessageAttributeSymbol, 19INamedTypeSymbol RangeAttributeSymbol, 20INamedTypeSymbol ICollectionSymbol, 21INamedTypeSymbol DataTypeAttributeSymbol, 22INamedTypeSymbol ValidateOptionsSymbol, 23INamedTypeSymbol IValidatableObjectSymbol, 24INamedTypeSymbol GenericIEnumerableSymbol, 25INamedTypeSymbol TypeSymbol, 26INamedTypeSymbol TimeSpanSymbol, 27INamedTypeSymbol ValidateObjectMembersAttributeSymbol, 28INamedTypeSymbol ValidateEnumeratedItemsAttributeSymbol);
SymbolLoader.cs (18)
30INamedTypeSymbol? GetSymbol(string metadataName) => compilation.GetTypeByMetadataName(metadataName); 33var optionsValidatorSymbol = GetSymbol(OptionsValidatorAttribute); 34var validationAttributeSymbol = GetSymbol(ValidationAttribute); 35var maxLengthAttributeSymbol = GetSymbol(MaxLengthAttribute); 36var minLengthAttributeSymbol = GetSymbol(MinLengthAttribute); 37var compareAttributeSymbol = GetSymbol(CompareAttribute); 38var lengthAttributeSymbol = GetSymbol(LengthAttribute); 39var rangeAttributeSymbol = GetSymbol(RangeAttribute); 40var iCollectionSymbol = GetSymbol(ICollectionType); 41var dataTypeAttributeSymbol = GetSymbol(DataTypeAttribute); 42var ivalidatableObjectSymbol = GetSymbol(IValidatableObjectType); 43var validateOptionsSymbol = GetSymbol(IValidateOptionsType); 44var genericIEnumerableSymbol = GetSymbol(GenericIEnumerableType); 45var typeSymbol = GetSymbol(TypeOfType); 46var timeSpanSymbol = GetSymbol(TimeSpanType); 47var validateObjectMembersAttribute = GetSymbol(ValidateObjectMembersAttribute); 48var validateEnumeratedItemsAttribute = GetSymbol(ValidateEnumeratedItemsAttribute); 49var unconditionalSuppressMessageAttributeSymbol = GetSymbol(UnconditionalSuppressMessageAttributeType);
Microsoft.Gen.BuildMetadata (7)
src\Generators\Shared\GeneratorUtilities.cs (2)
109var attributeType = ctor?.ContainingType; 122static string GetAttributeDisplayName(INamedTypeSymbol attributeType)
src\Generators\Shared\ParserUtilities.cs (1)
65foreach (var iface in type.AllInterfaces)
src\Generators\Shared\RoslynExtensions.cs (4)
43public static INamedTypeSymbol? GetBestTypeByMetadataName(this Compilation compilation, string fullyQualifiedMetadataName) 46var type = compilation.GetTypeByMetadataName(fullyQualifiedMetadataName); 64var currentType = referencedAssembly.GetTypeByMetadataName(fullyQualifiedMetadataName); 100public static INamedTypeSymbol? GetBestTypeByMetadataName(this Compilation compilation, Type type) =>
Microsoft.Gen.ComplianceReports (8)
Parser.cs (3)
45INamedTypeSymbol? typeSymbol = sm.GetDeclaredSymbol(typeSyntax, _cancellationToken); 60foreach (var iface in typeSymbol.AllInterfaces) 66var parent = typeSymbol.BaseType;
src\Generators\Shared\GeneratorUtilities.cs (2)
109var attributeType = ctor?.ContainingType; 122static string GetAttributeDisplayName(INamedTypeSymbol attributeType)
SymbolHolder.cs (2)
11INamedTypeSymbol DataClassificationAttributeSymbol, 12INamedTypeSymbol? LoggerMessageAttribute);
SymbolLoader.cs (1)
16var dataClassificationAttributeSymbol = compilation.GetTypeByMetadataName(DataClassificationAttribute);
Microsoft.Gen.ContextualOptions (15)
ContextReceiver.cs (4)
37public bool TryGetTypeDeclarations(Compilation compilation, out Dictionary<INamedTypeSymbol, List<TypeDeclarationSyntax>>? typeDeclarations) 48.Where(_ => _.symbol is INamedTypeSymbol) 51.ToDictionary<IGrouping<ISymbol?, TypeDeclarationSyntax>, INamedTypeSymbol, List<TypeDeclarationSyntax>>( 52group => (INamedTypeSymbol)group.Key!, group => group.ToList(), comparer: SymbolEqualityComparer.Default);
ContextualOptionsGenerator.cs (3)
40.Where(_ => _.symbol is INamedTypeSymbol) 43.ToDictionary<IGrouping<ISymbol?, TypeDeclarationSyntax>, INamedTypeSymbol, List<TypeDeclarationSyntax>>( 44group => (INamedTypeSymbol)group.Key!, group => group.ToList(), comparer: SymbolEqualityComparer.Default);
Model\OptionsContextType.cs (2)
14public readonly INamedTypeSymbol Symbol; 26INamedTypeSymbol symbol,
Parser.cs (2)
16public static IEnumerable<OptionsContextType> GetContextualOptionTypes(Dictionary<INamedTypeSymbol, List<TypeDeclarationSyntax>> types) => 74private static ImmutableArray<string> GetContextProperties(INamedTypeSymbol symbol)
src\Generators\Shared\GeneratorUtilities.cs (2)
109var attributeType = ctor?.ContainingType; 122static string GetAttributeDisplayName(INamedTypeSymbol attributeType)
SymbolHolder.cs (1)
10internal sealed record class SymbolHolder(INamedTypeSymbol OptionsContextAttribute);
SymbolLoader.cs (1)
14var optionsContextAttribute = compilation.GetTypeByMetadataName("Microsoft.Extensions.Options.Contextual.OptionsContextAttribute");
Microsoft.Gen.ContextualOptions.Unit.Tests (4)
EmitterTests.cs (4)
32Mock.Of<INamedTypeSymbol>(sym => sym.Name == "Struct1" && sym.ContainingNamespace.ToString() == "Microsoft.GenContextualOptions.TestClasses"), 56Mock.Of<INamedTypeSymbol>(sym => sym.Name == "Class2" && sym.ContainingNamespace.ToString() == "Microsoft.GenContextualOptions.TestClasses"), 84Mock.Of<INamedTypeSymbol>(sym => sym.Name == "Record1" && sym.ContainingNamespace.ToString() == "Microsoft.GenContextualOptions.TestClasses"), 112Mock.Of<INamedTypeSymbol>(sym => sym.Name == "NamespacelessRecord" && sym.ContainingNamespace.IsGlobalNamespace),
Microsoft.Gen.Logging (55)
Parsing\Parser.cs (5)
330var parentType = methodSymbol.ContainingType.ContainingType; 470private static List<INamedTypeSymbol> GetDataClassificationAttributes(ISymbol symbol, SymbolHolder symbols) 568extractedType = ((INamedTypeSymbol)paramTypeSymbol).TypeArguments[0]; 625INamedTypeSymbol? classType = sm.GetDeclaredSymbol(classDec, _cancellationToken); 626INamedTypeSymbol? currentClassType = classType;
Parsing\Parser.LogProperties.cs (7)
45paramTypeSymbol = ((INamedTypeSymbol)paramTypeSymbol).TypeArguments[0]; 92var namedType = type as INamedTypeSymbol; 104var sensitivePropsFromCtor = new Dictionary<string, List<INamedTypeSymbol>>(); 186extractedType = ((INamedTypeSymbol)extractedType).TypeArguments[0]; 273extractedType = ((INamedTypeSymbol)extractedType).TypeArguments[0]; 343symType = ((INamedTypeSymbol)symType).TypeArguments[0];
Parsing\Parser.Records.cs (3)
34var namedType = type as INamedTypeSymbol; 129extractedType = ((INamedTypeSymbol)memberType).TypeArguments[0];
Parsing\Parser.TagProvider.cs (1)
168foreach (var iface in type.AllInterfaces)
Parsing\SymbolHolder.cs (15)
13INamedTypeSymbol LoggerMessageAttribute, 14INamedTypeSymbol LogPropertiesAttribute, 15INamedTypeSymbol TagProviderAttribute, 16INamedTypeSymbol TagNameAttribute, 17INamedTypeSymbol LogPropertyIgnoreAttribute, 18INamedTypeSymbol ITagCollectorSymbol, 19INamedTypeSymbol ILoggerSymbol, 20INamedTypeSymbol LogLevelSymbol, 21INamedTypeSymbol ExceptionSymbol, 22HashSet<INamedTypeSymbol> IgnorePropertiesSymbols, 23INamedTypeSymbol EnumerableSymbol, 24INamedTypeSymbol FormatProviderSymbol, 25INamedTypeSymbol? SpanFormattableSymbol, 26INamedTypeSymbol? DataClassificationAttribute, 27INamedTypeSymbol? NoDataClassificationAttribute);
Parsing\SymbolLoader.cs (16)
56var loggerSymbol = compilation.GetBestTypeByMetadataName(ILoggerType); 57var logLevelSymbol = compilation.GetBestTypeByMetadataName(LogLevelType); 58var loggerMessageAttributeSymbol = compilation.GetBestTypeByMetadataName(LoggerMessageAttribute); 59var logPropertiesAttributeSymbol = compilation.GetBestTypeByMetadataName(LogPropertiesAttribute); 60var tagProviderAttributeSymbol = compilation.GetBestTypeByMetadataName(TagProviderAttribute); 61var tagNameAttributeSymbol = compilation.GetBestTypeByMetadataName(TagNameAttribute); 62var tagCollectorSymbol = compilation.GetBestTypeByMetadataName(ITagCollectorType); 63var logPropertyIgnoreAttributeSymbol = compilation.GetBestTypeByMetadataName(LogPropertyIgnoreAttribute); 64var dataClassificationAttribute = compilation.GetBestTypeByMetadataName(DataClassificationAttribute); 65var noDataClassificationAttribute = compilation.GetBestTypeByMetadataName(NoDataClassificationAttribute); 82var exceptionSymbol = compilation.GetBestTypeByMetadataName(ExceptionType); 89var enumerableSymbol = compilation.GetSpecialType(SpecialType.System_Collections_IEnumerable); 90var formatProviderSymbol = compilation.GetBestTypeByMetadataName(IFormatProviderType)!; 91var spanFormattableSymbol = compilation.GetBestTypeByMetadataName(ISpanFormattableType); 93var ignorePropsSymbols = new HashSet<INamedTypeSymbol>(SymbolEqualityComparer.Default); 97var s = compilation.GetBestTypeByMetadataName(ign);
Parsing\TypeSymbolExtensions.cs (1)
95if (sym is INamedTypeSymbol namedTypeSymbol && namedTypeSymbol.IsGenericType && namedTypeSymbol.OriginalDefinition.SpecialType == SpecialType.System_Nullable_T)
src\Generators\Shared\GeneratorUtilities.cs (2)
109var attributeType = ctor?.ContainingType; 122static string GetAttributeDisplayName(INamedTypeSymbol attributeType)
src\Generators\Shared\ParserUtilities.cs (1)
65foreach (var iface in type.AllInterfaces)
src\Generators\Shared\RoslynExtensions.cs (4)
43public static INamedTypeSymbol? GetBestTypeByMetadataName(this Compilation compilation, string fullyQualifiedMetadataName) 46var type = compilation.GetTypeByMetadataName(fullyQualifiedMetadataName); 64var currentType = referencedAssembly.GetTypeByMetadataName(fullyQualifiedMetadataName); 100public static INamedTypeSymbol? GetBestTypeByMetadataName(this Compilation compilation, Type type) =>
Microsoft.Gen.Logging.Unit.Tests (17)
LogParserUtilitiesTests.cs (6)
82var symbolMock = new Mock<INamedTypeSymbol>(); 95.Returns((INamedTypeSymbol?)null); 116Mock.Of<INamedTypeSymbol>(), 142new HashSet<INamedTypeSymbol>(SymbolEqualityComparer.Default), 151var paramTypeMock = new Mock<INamedTypeSymbol>() 163.Returns((INamedTypeSymbol?)null);
SymbolLoaderTests.cs (4)
38.Setup<INamedTypeSymbol>("CommonGetTypeByMetadataName", ItExpr.Is<string>(t => t != type)) 39.Returns(Mock.Of<INamedTypeSymbol>()); 43.Setup<INamedTypeSymbol?>("CommonGetTypeByMetadataName", ItExpr.Is<string>(t => t == type)) 44.Returns((INamedTypeSymbol?)null);
TypeSymbolExtensionsTests.cs (7)
286INamedTypeSymbol nullableType = compilation.GetSpecialType(SpecialType.System_Nullable_T); 287INamedTypeSymbol intType = compilation.GetSpecialType(SpecialType.System_Int32); 288INamedTypeSymbol nullableIntType = nullableType.Construct(intType); 297INamedTypeSymbol listType = compilation.GetTypeByMetadataName("System.Collections.Generic.List`1")!; 298INamedTypeSymbol intType = compilation.GetSpecialType(SpecialType.System_Int32); 299INamedTypeSymbol listIntType = listType.Construct(intType); 308INamedTypeSymbol intType = compilation.GetSpecialType(SpecialType.System_Int32);
Microsoft.Gen.MetadataExtractor (38)
src\Generators\Microsoft.Gen.ComplianceReports\Parser.cs (3)
45INamedTypeSymbol? typeSymbol = sm.GetDeclaredSymbol(typeSyntax, _cancellationToken); 60foreach (var iface in typeSymbol.AllInterfaces) 66var parent = typeSymbol.BaseType;
src\Generators\Microsoft.Gen.ComplianceReports\SymbolHolder.cs (2)
11INamedTypeSymbol DataClassificationAttributeSymbol, 12INamedTypeSymbol? LoggerMessageAttribute);
src\Generators\Microsoft.Gen.ComplianceReports\SymbolLoader.cs (1)
16var dataClassificationAttributeSymbol = compilation.GetTypeByMetadataName(DataClassificationAttribute);
src\Generators\Microsoft.Gen.Metrics\Exceptions\TransitiveTypeCycleException.cs (2)
13public TransitiveTypeCycleException(ISymbol parent, INamedTypeSymbol namedType) 21public INamedTypeSymbol NamedType { get; }
src\Generators\Microsoft.Gen.Metrics\Parser.cs (9)
148var parentType = methodSymbol.ContainingType.ContainingType; 213private static ITypeSymbol? GetGenericType(INamedTypeSymbol symbol) 219INamedTypeSymbol? methodAttributeSymbol, 586if (returnType is INamedTypeSymbol { Arity: > 0 }) 632constructorArg.Value is not INamedTypeSymbol strongTypeSymbol) 802if (typeSymbol is INamedTypeSymbol namedTypeSymbol) 829if (typeSymbol is not INamedTypeSymbol namedTypeSymbol) 867INamedTypeSymbol namedTypeSymbol, 913INamedTypeSymbol? parentObjectBase = symbol.BaseType;
src\Generators\Microsoft.Gen.Metrics\SymbolHolder.cs (9)
11INamedTypeSymbol MeterSymbol, 12INamedTypeSymbol CounterAttribute, 13INamedTypeSymbol? CounterOfTAttribute, 14INamedTypeSymbol HistogramAttribute, 15INamedTypeSymbol? HistogramOfTAttribute, 16INamedTypeSymbol? GaugeAttribute, 17INamedTypeSymbol? GaugeOfTAttribute, 18INamedTypeSymbol LongTypeSymbol, 19INamedTypeSymbol? TagNameAttribute);
src\Generators\Microsoft.Gen.Metrics\SymbolLoader.cs (9)
21var meterClassSymbol = compilation.GetTypeByMetadataName(MeterClass); 22var counterAttribute = compilation.GetTypeByMetadataName(CounterAttribute); 23var histogramAttribute = compilation.GetTypeByMetadataName(HistogramAttribute); 33var counterTAttribute = compilation.GetTypeByMetadataName(CounterTAttribute); 34var histogramTAttribute = compilation.GetTypeByMetadataName(HistogramTAttribute); 35var gaugeAttribute = compilation.GetTypeByMetadataName(GaugeAttribute); 36var gaugeTAttribute = compilation.GetTypeByMetadataName(GaugeTAttribute); 37var tagNameAttribute = compilation.GetTypeByMetadataName(TagNameAttribute); 38var longType = compilation.GetSpecialType(SpecialType.System_Int64);
src\Generators\Shared\GeneratorUtilities.cs (2)
109var attributeType = ctor?.ContainingType; 122static string GetAttributeDisplayName(INamedTypeSymbol attributeType)
src\Generators\Shared\ParserUtilities.cs (1)
65foreach (var iface in type.AllInterfaces)
Microsoft.Gen.Metrics (36)
Exceptions\TransitiveTypeCycleException.cs (2)
13public TransitiveTypeCycleException(ISymbol parent, INamedTypeSymbol namedType) 21public INamedTypeSymbol NamedType { get; }
Parser.cs (9)
148var parentType = methodSymbol.ContainingType.ContainingType; 213private static ITypeSymbol? GetGenericType(INamedTypeSymbol symbol) 219INamedTypeSymbol? methodAttributeSymbol, 586if (returnType is INamedTypeSymbol { Arity: > 0 }) 632constructorArg.Value is not INamedTypeSymbol strongTypeSymbol) 802if (typeSymbol is INamedTypeSymbol namedTypeSymbol) 829if (typeSymbol is not INamedTypeSymbol namedTypeSymbol) 867INamedTypeSymbol namedTypeSymbol, 913INamedTypeSymbol? parentObjectBase = symbol.BaseType;
src\Generators\Shared\GeneratorUtilities.cs (2)
109var attributeType = ctor?.ContainingType; 122static string GetAttributeDisplayName(INamedTypeSymbol attributeType)
src\Generators\Shared\ParserUtilities.cs (1)
65foreach (var iface in type.AllInterfaces)
src\Generators\Shared\RoslynExtensions.cs (4)
43public static INamedTypeSymbol? GetBestTypeByMetadataName(this Compilation compilation, string fullyQualifiedMetadataName) 46var type = compilation.GetTypeByMetadataName(fullyQualifiedMetadataName); 64var currentType = referencedAssembly.GetTypeByMetadataName(fullyQualifiedMetadataName); 100public static INamedTypeSymbol? GetBestTypeByMetadataName(this Compilation compilation, Type type) =>
SymbolHolder.cs (9)
11INamedTypeSymbol MeterSymbol, 12INamedTypeSymbol CounterAttribute, 13INamedTypeSymbol? CounterOfTAttribute, 14INamedTypeSymbol HistogramAttribute, 15INamedTypeSymbol? HistogramOfTAttribute, 16INamedTypeSymbol? GaugeAttribute, 17INamedTypeSymbol? GaugeOfTAttribute, 18INamedTypeSymbol LongTypeSymbol, 19INamedTypeSymbol? TagNameAttribute);
SymbolLoader.cs (9)
21var meterClassSymbol = compilation.GetTypeByMetadataName(MeterClass); 22var counterAttribute = compilation.GetTypeByMetadataName(CounterAttribute); 23var histogramAttribute = compilation.GetTypeByMetadataName(HistogramAttribute); 33var counterTAttribute = compilation.GetTypeByMetadataName(CounterTAttribute); 34var histogramTAttribute = compilation.GetTypeByMetadataName(HistogramTAttribute); 35var gaugeAttribute = compilation.GetTypeByMetadataName(GaugeAttribute); 36var gaugeTAttribute = compilation.GetTypeByMetadataName(GaugeTAttribute); 37var tagNameAttribute = compilation.GetTypeByMetadataName(TagNameAttribute); 38var longType = compilation.GetSpecialType(SpecialType.System_Int64);
Microsoft.Gen.MetricsReports (32)
src\Generators\Microsoft.Gen.Metrics\Exceptions\TransitiveTypeCycleException.cs (2)
13public TransitiveTypeCycleException(ISymbol parent, INamedTypeSymbol namedType) 21public INamedTypeSymbol NamedType { get; }
src\Generators\Microsoft.Gen.Metrics\Parser.cs (9)
148var parentType = methodSymbol.ContainingType.ContainingType; 213private static ITypeSymbol? GetGenericType(INamedTypeSymbol symbol) 219INamedTypeSymbol? methodAttributeSymbol, 586if (returnType is INamedTypeSymbol { Arity: > 0 }) 632constructorArg.Value is not INamedTypeSymbol strongTypeSymbol) 802if (typeSymbol is INamedTypeSymbol namedTypeSymbol) 829if (typeSymbol is not INamedTypeSymbol namedTypeSymbol) 867INamedTypeSymbol namedTypeSymbol, 913INamedTypeSymbol? parentObjectBase = symbol.BaseType;
src\Generators\Microsoft.Gen.Metrics\SymbolHolder.cs (9)
11INamedTypeSymbol MeterSymbol, 12INamedTypeSymbol CounterAttribute, 13INamedTypeSymbol? CounterOfTAttribute, 14INamedTypeSymbol HistogramAttribute, 15INamedTypeSymbol? HistogramOfTAttribute, 16INamedTypeSymbol? GaugeAttribute, 17INamedTypeSymbol? GaugeOfTAttribute, 18INamedTypeSymbol LongTypeSymbol, 19INamedTypeSymbol? TagNameAttribute);
src\Generators\Microsoft.Gen.Metrics\SymbolLoader.cs (9)
21var meterClassSymbol = compilation.GetTypeByMetadataName(MeterClass); 22var counterAttribute = compilation.GetTypeByMetadataName(CounterAttribute); 23var histogramAttribute = compilation.GetTypeByMetadataName(HistogramAttribute); 33var counterTAttribute = compilation.GetTypeByMetadataName(CounterTAttribute); 34var histogramTAttribute = compilation.GetTypeByMetadataName(HistogramTAttribute); 35var gaugeAttribute = compilation.GetTypeByMetadataName(GaugeAttribute); 36var gaugeTAttribute = compilation.GetTypeByMetadataName(GaugeTAttribute); 37var tagNameAttribute = compilation.GetTypeByMetadataName(TagNameAttribute); 38var longType = compilation.GetSpecialType(SpecialType.System_Int64);
src\Generators\Shared\GeneratorUtilities.cs (2)
109var attributeType = ctor?.ContainingType; 122static string GetAttributeDisplayName(INamedTypeSymbol attributeType)
src\Generators\Shared\ParserUtilities.cs (1)
65foreach (var iface in type.AllInterfaces)
Microsoft.Interop.ComInterfaceGenerator (111)
Analyzers\AddGeneratedComClassAnalyzer.cs (5)
25var generatedComClassAttributeType = context.Compilation.GetBestTypeByMetadataName(TypeNames.GeneratedComClassAttribute); 26var generatedComInterfaceAttributeType = context.Compilation.GetBestTypeByMetadataName(TypeNames.GeneratedComInterfaceAttribute); 35INamedTypeSymbol type = (INamedTypeSymbol)context.Symbol; 47foreach (var iface in type.AllInterfaces)
Analyzers\AddGeneratedComClassFixer.cs (3)
29var declaringType = editor.SemanticModel.GetDeclaredSymbol(node, ct) as INamedTypeSymbol; 47var comVisibleAttributeType = editor.SemanticModel.Compilation.GetBestTypeByMetadataName(TypeNames.System_Runtime_InteropServices_ComVisibleAttribute);
Analyzers\ComClassGeneratorDiagnosticsAnalyzer.cs (8)
32INamedTypeSymbol? generatedComClassAttributeType = context.Compilation.GetBestTypeByMetadataName(TypeNames.GeneratedComClassAttribute); 37INamedTypeSymbol? generatedComInterfaceAttributeType = unsafeCodeIsEnabled 45private static void AnalyzeNamedType(SymbolAnalysisContext context, bool unsafeCodeIsEnabled, INamedTypeSymbol? generatedComClassAttributeType, INamedTypeSymbol? generatedComInterfaceAttributeType) 47if (context.Symbol is not INamedTypeSymbol { TypeKind: TypeKind.Class } classToAnalyze) 63public static IEnumerable<Diagnostic> GetDiagnosticsForAnnotatedClass(INamedTypeSymbol annotatedClass, bool unsafeCodeIsEnabled, INamedTypeSymbol? generatedComInterfaceAttributeType) 91foreach (INamedTypeSymbol iface in annotatedClass.AllInterfaces)
Analyzers\ComHostingDoesNotSupportGeneratedComInterfaceAnalyzer.cs (6)
32INamedTypeSymbol? generatedComClassAttribute = context.Compilation.GetBestTypeByMetadataName(TypeNames.GeneratedComClassAttribute); 33INamedTypeSymbol? generatedComInterfaceAttribute = context.Compilation.GetBestTypeByMetadataName(TypeNames.GeneratedComInterfaceAttribute); 34INamedTypeSymbol? comVisibleAttribute = context.Compilation.GetBestTypeByMetadataName(TypeNames.System_Runtime_InteropServices_ComVisibleAttribute)!; 51INamedTypeSymbol containingType = (INamedTypeSymbol)context.ContainingSymbol; 59foreach (var iface in containingType.AllInterfaces)
Analyzers\ComInterfaceGeneratorDiagnosticsAnalyzer.cs (27)
71INamedTypeSymbol? generatedComInterfaceAttrType = compilationContext.Compilation.GetBestTypeByMetadataName(TypeNames.GeneratedComInterfaceAttribute); 81var interfaceInfoCache = new ConcurrentDictionary<INamedTypeSymbol, DiagnosticOr<(ComInterfaceInfo, INamedTypeSymbol)>>(SymbolEqualityComparer.Default); 85INamedTypeSymbol typeSymbol = (INamedTypeSymbol)symbolContext.Symbol; 110INamedTypeSymbol typeSymbol, 113INamedTypeSymbol generatedComInterfaceAttrType, 114ConcurrentDictionary<INamedTypeSymbol, DiagnosticOr<(ComInterfaceInfo, INamedTypeSymbol)>> interfaceInfoCache) 119DiagnosticOr<(ComInterfaceInfo, INamedTypeSymbol)> ciiResult = interfaceInfoCache.GetOrAdd( 132(ComInterfaceInfo cii, INamedTypeSymbol _) = ciiResult.Value; 208INamedTypeSymbol typeSymbol, 211INamedTypeSymbol generatedComInterfaceAttrType, 212ConcurrentDictionary<INamedTypeSymbol, DiagnosticOr<(ComInterfaceInfo, INamedTypeSymbol)>> interfaceInfoCache, 217ImmutableArray<(ComInterfaceInfo, INamedTypeSymbol)> externalBases = 226INamedTypeSymbol current = typeSymbol; 230INamedTypeSymbol? baseSymbol = FindBaseComInterfaceSymbol(current, generatedComInterfaceAttrType); 237ImmutableArray<(ComInterfaceInfo, INamedTypeSymbol)> externalInfos = 244DiagnosticOr<(ComInterfaceInfo, INamedTypeSymbol)> baseResult = interfaceInfoCache.GetOrAdd( 250return DiagnosticOr<(ComInterfaceInfo, INamedTypeSymbol)>.From( 269private static INamedTypeSymbol? FindBaseComInterfaceSymbol(INamedTypeSymbol typeSymbol, INamedTypeSymbol generatedComInterfaceAttrType) 271foreach (INamedTypeSymbol iface in typeSymbol.Interfaces) 287INamedTypeSymbol symbol, 288INamedTypeSymbol generatedComInterfaceAttrType,
Analyzers\ConvertComImportToGeneratedComInterfaceAnalyzer.cs (4)
36INamedTypeSymbol? interfaceTypeAttribute = context.Compilation.GetBestTypeByMetadataName(TypeNames.InterfaceTypeAttribute)!; 37INamedTypeSymbol? generatedComInterfaceAttribute = context.Compilation.GetBestTypeByMetadataName(TypeNames.GeneratedComInterfaceAttribute); 50INamedTypeSymbol type = (INamedTypeSymbol)context.Symbol;
Analyzers\ConvertComImportToGeneratedComInterfaceFixer.cs (1)
101var comImportAttributeType = comp.GetTypeByMetadataName(TypeNames.System_Runtime_InteropServices_ComImportAttribute);
Analyzers\GeneratedComInterfaceAttributeAnalyzer.cs (2)
31INamedTypeSymbol typeSymbol = (INamedTypeSymbol)context.Symbol;
Analyzers\RuntimeComApiUsageWithSourceGeneratedComAnalyzer.cs (6)
29INamedTypeSymbol? marshalType = context.Compilation.GetBestTypeByMetadataName(TypeNames.System_Runtime_InteropServices_Marshal); 30INamedTypeSymbol? generatedComClassAttribute = context.Compilation.GetBestTypeByMetadataName(TypeNames.GeneratedComClassAttribute); 31INamedTypeSymbol? generatedComInterfaceAttribute = context.Compilation.GetBestTypeByMetadataName(TypeNames.GeneratedComInterfaceAttribute); 32INamedTypeSymbol? comObjectType = context.Compilation.GetBestTypeByMetadataName(TypeNames.System_Runtime_InteropServices_Marshalling_ComObject); 143if (operation.Type is INamedTypeSymbol { IsComImport: true } && !enableGeneratedComInterfaceComImportInterop) 178if (operand.Type is INamedTypeSymbol { IsComImport: true } && !enableGeneratedComInterfaceComImportInterop)
Analyzers\VtableIndexStubDiagnosticsAnalyzer.cs (1)
45INamedTypeSymbol? virtualMethodIndexAttrType = compilationContext.Compilation.GetBestTypeByMetadataName(TypeNames.VirtualMethodIndexAttribute);
ComClassGenerator.cs (3)
29var type = (INamedTypeSymbol)context.TargetSymbol; 33INamedTypeSymbol? generatedComInterfaceAttributeType = compilation.GetBestTypeByMetadataName(TypeNames.GeneratedComInterfaceAttribute);
ComClassInfo.cs (3)
27public static ComClassInfo From(INamedTypeSymbol type, ClassDeclarationSyntax syntax, INamedTypeSymbol? generatedComInterfaceAttributeType) 30foreach (INamedTypeSymbol iface in type.AllInterfaces)
ComInterfaceGenerator.cs (7)
30static (context, ct) => context.TargetSymbol is INamedTypeSymbol interfaceSymbol 50List<(ComInterfaceInfo, INamedTypeSymbol)> interfaceInfos = new(); 51HashSet<(ComInterfaceInfo, INamedTypeSymbol)> externalIfaces = new(ComInterfaceInfo.EqualityComparerForExternalIfaces.Instance); 184INamedTypeSymbol? lcidConversionAttrType = environment.LcidConversionAttrType; 185INamedTypeSymbol? suppressGCTransitionAttrType = environment.SuppressGCTransitionAttrType; 186INamedTypeSymbol? unmanagedCallConvAttrType = environment.UnmanagedCallConvAttrType; 328(INamedTypeSymbol)generatedComInterfaceAttributeData.ExceptionToUnmanagedMarshaller,
ComInterfaceInfo.cs (19)
13using InterfaceInfo = (Microsoft.Interop.ComInterfaceInfo InterfaceInfo, Microsoft.CodeAnalysis.INamedTypeSymbol Symbol); 14using DiagnosticOrInterfaceInfo = Microsoft.Interop.DiagnosticOr<(Microsoft.Interop.ComInterfaceInfo InterfaceInfo, Microsoft.CodeAnalysis.INamedTypeSymbol Symbol)>; 56public static DiagnosticOrInterfaceInfo From(INamedTypeSymbol symbol, InterfaceDeclarationSyntax syntax, StubEnvironment env, CancellationToken _) 86if (!TryGetBaseComInterface(symbol, syntax, out INamedTypeSymbol? baseSymbol, out DiagnosticInfo? baseDiagnostic)) 146INamedTypeSymbol symbol) 148if (!TryGetBaseComInterface(symbol, null, out INamedTypeSymbol? baseSymbol, out _) || baseSymbol is null) 157var thisSymbol = baseSymbol; 180internal sealed class EqualityComparerForExternalIfaces : IEqualityComparer<(ComInterfaceInfo InterfaceInfo, INamedTypeSymbol Symbol)> 182public bool Equals((ComInterfaceInfo, INamedTypeSymbol) x, (ComInterfaceInfo, INamedTypeSymbol) y) => SymbolEqualityComparer.Default.Equals(x.Item2, y.Item2); 183public int GetHashCode((ComInterfaceInfo, INamedTypeSymbol) obj) => SymbolEqualityComparer.Default.GetHashCode(obj.Item2); 187private static bool IsInPartialContext(INamedTypeSymbol symbol, InterfaceDeclarationSyntax syntax, [NotNullWhen(false)] out DiagnosticInfo? diagnostic) 204INamedTypeSymbol interfaceSymbol, 264INamedTypeSymbol interfaceSymbol, 304if (attrSymbolInfo.ExceptionToUnmanagedMarshaller is INamedTypeSymbol exceptionToUnmanagedMarshallerType) 330private static bool TryGetBaseComInterface(INamedTypeSymbol comIface, InterfaceDeclarationSyntax? syntax, out INamedTypeSymbol? baseComIface, [NotNullWhen(false)] out DiagnosticInfo? diagnostic) 334foreach (var implemented in comIface.Interfaces) 365private static bool TryGetGuid(INamedTypeSymbol interfaceSymbol, InterfaceDeclarationSyntax syntax, [NotNullWhen(true)] out Guid? guid, [NotNullWhen(false)] out DiagnosticInfo? diagnostic)
ComMethodInfo.cs (1)
40public static SequenceEqualImmutableArray<DiagnosticOr<(ComMethodInfo ComMethod, IMethodSymbol Symbol)>> GetMethodsFromInterface((ComInterfaceInfo ifaceContext, INamedTypeSymbol ifaceSymbol) data, CancellationToken ct)
GeneratedComInterfaceAttributeData.cs (2)
40public static bool TryGetGeneratedComInterfaceAttributeFromInterface(INamedTypeSymbol interfaceSymbol, [NotNullWhen(true)] out AttributeData? generatedComInterfaceAttribute) 54public static GeneratedComInterfaceCompilationData GetAttributeDataFromInterfaceSymbol(INamedTypeSymbol interfaceSymbol)
src\runtime\src\libraries\Common\src\Roslyn\GetBestTypeByMetadataName.cs (4)
38public static INamedTypeSymbol? GetBestTypeByMetadataName(this Compilation compilation, string fullyQualifiedMetadataName) 41var type = compilation.GetTypeByMetadataName(fullyQualifiedMetadataName); 53var currentType = referencedAssembly.GetTypeByMetadataName(fullyQualifiedMetadataName); 88public static INamedTypeSymbol? GetBestTypeByMetadataName(this Compilation compilation, Type type) =>
VirtualMethodIndexData.cs (1)
47public INamedTypeSymbol? ExceptionMarshallingCustomType { get; init; }
VtableIndexStubGenerator.cs (8)
210INamedTypeSymbol? exceptionMarshallingCustomType = null; 242if (exceptionMarshallingCustomTypeValue.Value is not INamedTypeSymbol) 246exceptionMarshallingCustomType = (INamedTypeSymbol)exceptionMarshallingCustomTypeValue.Value; 262INamedTypeSymbol? lcidConversionAttrType = environment.Compilation.GetTypeByMetadataName(TypeNames.LCIDConversionAttribute); 263INamedTypeSymbol? suppressGCTransitionAttrType = environment.Compilation.GetTypeByMetadataName(TypeNames.SuppressGCTransitionAttribute); 264INamedTypeSymbol? unmanagedCallConvAttrType = environment.Compilation.GetTypeByMetadataName(TypeNames.UnmanagedCallConvAttribute); 265INamedTypeSymbol iUnmanagedInterfaceTypeType = environment.Compilation.GetTypeByMetadataName(TypeNames.IUnmanagedInterfaceType_Metadata)!; 353INamedTypeSymbol expectedUnmanagedInterfaceType = iUnmanagedInterfaceTypeType;
Microsoft.Interop.JavaScript.JSImportGenerator (12)
Analyzers\JSImportExportDiagnosticsAnalyzer.cs (1)
71INamedTypeSymbol? attrType = context.Compilation.GetTypeByMetadataName(AttributeMetadataName);
JSManagedTypeInfo.cs (6)
102case INamedTypeSymbol { ConstructedFrom.SpecialType: SpecialType.System_Nullable_T } nullable: 120case INamedTypeSymbol { TypeArguments.Length: 1 } taskType when fullTypeName.StartsWith(Constants.TaskGlobal, StringComparison.Ordinal): 128case INamedTypeSymbol { TypeArguments.Length: 1 } spanType when fullTypeName.StartsWith(Constants.SpanGlobal, StringComparison.Ordinal): 136case INamedTypeSymbol { TypeArguments.Length: 1 } arraySegmentType when fullTypeName.StartsWith(Constants.ArraySegmentGlobal, StringComparison.Ordinal): 146case INamedTypeSymbol actionType when fullTypeName.StartsWith(Constants.ActionGlobal, StringComparison.Ordinal): 157case INamedTypeSymbol funcType when fullTypeName.StartsWith(Constants.FuncGlobal, StringComparison.Ordinal):
JSMarshalAsAttributeInfoParser.cs (5)
15private readonly INamedTypeSymbol _jsMarshalAsAttribute; 21public bool CanParseAttributeType(INamedTypeSymbol attributeType) => attributeType.IsGenericType && SymbolEqualityComparer.Default.Equals(_jsMarshalAsAttribute, attributeType.ConstructUnboundGenericType()); 26INamedTypeSymbol? jsTypeArgs = attributeData.AttributeClass.TypeArguments[0] as INamedTypeSymbol; 35foreach (var ta in jsTypeArgs.TypeArguments.Cast<INamedTypeSymbol>().Select(x => x.ToDisplayString()))
Microsoft.Interop.LibraryImportGenerator (73)
Analyzers\ConvertToLibraryImportAnalyzer.cs (3)
55INamedTypeSymbol? libraryImportAttrType = context.Compilation.GetBestTypeByMetadataName(TypeNames.LibraryImportAttribute); 67private static void AnalyzeSymbol(SymbolAnalysisContext context, INamedTypeSymbol libraryImportAttrType, StubEnvironment env) 95INamedTypeSymbol libraryImportAttrType,
Analyzers\ConvertToLibraryImportFixer.cs (4)
217INamedTypeSymbol? dllImportAttrType = editor.SemanticModel.Compilation.GetBestTypeByMetadataName(TypeNames.DllImportAttribute); 222INamedTypeSymbol libraryImportAttrType = editor.SemanticModel.Compilation.GetBestTypeByMetadataName(TypeNames.LibraryImportAttribute)!; 428INamedTypeSymbol libraryImportAttrType, 671private static bool TryGetAttribute(IMethodSymbol method, INamedTypeSymbol attributeType, out AttributeData? attr)
Analyzers\CustomMarshallerAttributeAnalyzer.cs (15)
631private readonly INamedTypeSymbol _spanOfT; 632private readonly INamedTypeSymbol _readOnlySpanOfT; 633private readonly INamedTypeSymbol _customMarshallerAttribute; 635public PerCompilationAnalyzer(Compilation compilation, INamedTypeSymbol customMarshallerAttribute) 648INamedTypeSymbol entryType = (INamedTypeSymbol)context.ContainingSymbol; 701(INamedTypeSymbol)marshallerType, 708private void AnalyzeMarshallerType(DiagnosticReporter diagnosticReporter, ITypeSymbol managedType, MarshalMode mode, INamedTypeSymbol marshallerType, bool isLinearCollectionMarshaller) 724private void AnalyzeStatelessMarshallerType(DiagnosticReporter diagnosticReporter, ITypeSymbol managedType, MarshalMode mode, INamedTypeSymbol marshallerType, bool isLinearCollectionMarshaller) 963private void VerifyUnmanagedCollectionElementType(DiagnosticReporter diagnosticReporter, IMethodSymbol? unmanagedValuesCollectionMethod, ITypeSymbol expectedElementType, INamedTypeSymbol expectedSpanType) 983private static void CheckForBufferSizeMember(DiagnosticReporter diagnosticReporter, DiagnosticDescriptor descriptor, INamedTypeSymbol marshallerType, IMethodSymbol callerAllocatedBufferMethod) 987INamedTypeSymbol allocatedBufferType = (INamedTypeSymbol)callerAllocatedBufferMethod.Parameters[1].Type; 1000elementType = ((INamedTypeSymbol)spanTypeMaybe).TypeArguments[0]; 1008private void AnalyzeStatefulMarshallerType(DiagnosticReporter diagnosticReporter, ITypeSymbol managedType, MarshalMode mode, INamedTypeSymbol marshallerType, bool isLinearCollectionMarshaller)
Analyzers\CustomMarshallerAttributeFixer.cs (27)
32Dictionary<(INamedTypeSymbol marshallerType, ITypeSymbol managedType, bool isLinearCollectionMarshaller), HashSet<string>> uniqueMarshallersToFix = new(); 39var entryPointTypeSymbol = (INamedTypeSymbol)model.GetEnclosingSymbol(diagnostic.Location.SourceSpan.Start, fixAllContext.CancellationToken); 45var marshallerType = (INamedTypeSymbol)model.GetSymbolInfo(node, fixAllContext.CancellationToken).Symbol; 55Dictionary<INamedTypeSymbol, INamedTypeSymbol> partiallyUpdatedSymbols = new(SymbolEqualityComparer.Default); 65if (!partiallyUpdatedSymbols.TryGetValue(marshallerType, out INamedTypeSymbol newMarshallerType)) 70newMarshallerType = (INamedTypeSymbol)await symbolEditor.EditOneDeclarationAsync( 149private static void IgnoreArityMismatch(INamedTypeSymbol marshallerType, INamedTypeSymbol managedType) 158var entryPointTypeSymbol = (INamedTypeSymbol)model.GetEnclosingSymbol(node.SpanStart, ct); 171INamedTypeSymbol marshallerType = (INamedTypeSymbol)model.GetSymbolInfo(node, ct).Symbol; 181private static ITypeSymbol GetManagedTypeInAttributeSyntax(Location locationInAttribute, INamedTypeSymbol attributedTypeSymbol) 189INamedTypeSymbol marshallerType, 204private static void AddMissingMembersToStatelessMarshaller(DocumentEditor editor, SyntaxNode declaringSyntax, INamedTypeSymbol marshallerType, ITypeSymbol managedType, HashSet<string> missingMemberNames, bool isLinearCollectionMarshaller) 209INamedTypeSymbol spanOfT = editor.SemanticModel.Compilation.GetBestTypeByMetadataName(TypeNames.System_Span_Metadata)!; 210INamedTypeSymbol readOnlySpanOfT = editor.SemanticModel.Compilation.GetBestTypeByMetadataName(TypeNames.System_ReadOnlySpan_Metadata)!; 389return ((INamedTypeSymbol)methods.ManagedValuesSource.ReturnType).TypeArguments[0]; 393return ((INamedTypeSymbol)methods.ManagedValuesDestination.ReturnType).TypeArguments[0]; 400private static void AddMissingMembersToStatefulMarshaller(DocumentEditor editor, SyntaxNode declaringSyntax, INamedTypeSymbol marshallerType, ITypeSymbol managedType, HashSet<string> missingMemberNames, bool isLinearCollectionMarshaller) 405INamedTypeSymbol spanOfT = editor.SemanticModel.Compilation.GetBestTypeByMetadataName(TypeNames.System_Span_Metadata)!; 406INamedTypeSymbol readOnlySpanOfT = editor.SemanticModel.Compilation.GetBestTypeByMetadataName(TypeNames.System_ReadOnlySpan_Metadata)!; 556return ((INamedTypeSymbol)methods.ManagedValuesSource.ReturnType).TypeArguments[0]; 560return ((INamedTypeSymbol)methods.ManagedValuesDestination.ReturnType).TypeArguments[0];
Analyzers\LibraryImportDiagnosticsAnalyzer.cs (3)
55INamedTypeSymbol? libraryImportAttrType = context.Compilation.GetBestTypeByMetadataName(TypeNames.LibraryImportAttribute); 93private static bool AnalyzeMethod(SymbolAnalysisContext context, StubEnvironment env, INamedTypeSymbol libraryImportAttrType, LibraryImportGeneratorOptions options) 240INamedTypeSymbol? lcidConversionAttrType = environment.LcidConversionAttrType;
Analyzers\NativeMarshallingAttributeAnalyzer.cs (4)
103(INamedTypeSymbol?)typeOfOp.TypeOperand); 111INamedTypeSymbol? entryType) 125if (managedType is not INamedTypeSymbol namedManagedType) 145entryType = (INamedTypeSymbol)resolvedEntryType;
Analyzers\ShapeBreakingDiagnosticSuppressor.cs (8)
43if (FindContainingEntryPointTypeAndManagedType(diagnosedSymbol.ContainingType) is (INamedTypeSymbol entryPointMarshallerType, INamedTypeSymbol managedType)) 56private static (INamedTypeSymbol EntryPointType, INamedTypeSymbol ManagedType)? FindContainingEntryPointTypeAndManagedType(INamedTypeSymbol marshallerType) 58for (INamedTypeSymbol containingType = marshallerType; containingType is not null; containingType = containingType.ContainingType) 64&& attr.ConstructorArguments[2].Value is INamedTypeSymbol marshallerTypeInAttribute 69return (containingType, (INamedTypeSymbol)attrData.ConstructorArguments[0].Value);
LibraryImportGenerator.cs (5)
204INamedTypeSymbol? suppressGCTransitionAttrType = environment.SuppressGCTransitionAttrType; 205INamedTypeSymbol? unmanagedCallConvAttrType = environment.UnmanagedCallConvAttrType; 206INamedTypeSymbol? defaultDllImportSearchPathsAttrType = environment.DefaultDllImportSearchPathsAttrType; 207INamedTypeSymbol? wasmImportLinkageAttrType = environment.WasmImportLinkageAttrType; 208INamedTypeSymbol? stackTraceHiddenAttrType = environment.StackTraceHiddenAttrType;
src\runtime\src\libraries\Common\src\Roslyn\GetBestTypeByMetadataName.cs (4)
38public static INamedTypeSymbol? GetBestTypeByMetadataName(this Compilation compilation, string fullyQualifiedMetadataName) 41var type = compilation.GetTypeByMetadataName(fullyQualifiedMetadataName); 53var currentType = referencedAssembly.GetTypeByMetadataName(fullyQualifiedMetadataName); 88public static INamedTypeSymbol? GetBestTypeByMetadataName(this Compilation compilation, Type type) =>
Microsoft.Interop.LibraryImportGenerator.Downlevel (8)
DownlevelLibraryImportDiagnosticsAnalyzer.cs (3)
49INamedTypeSymbol? libraryImportAttrType = context.Compilation.GetBestTypeByMetadataName(TypeNames.LibraryImportAttribute); 95private static bool AnalyzeMethod(SymbolAnalysisContext context, StubEnvironment env, INamedTypeSymbol libraryImportAttrType) 238INamedTypeSymbol? lcidConversionAttrType = environment.LcidConversionAttrType;
DownlevelLibraryImportGenerator.cs (1)
189INamedTypeSymbol? defaultDllImportSearchPathsAttrType = environment.DefaultDllImportSearchPathsAttrType;
src\runtime\src\libraries\Common\src\Roslyn\GetBestTypeByMetadataName.cs (4)
38public static INamedTypeSymbol? GetBestTypeByMetadataName(this Compilation compilation, string fullyQualifiedMetadataName) 41var type = compilation.GetTypeByMetadataName(fullyQualifiedMetadataName); 53var currentType = referencedAssembly.GetTypeByMetadataName(fullyQualifiedMetadataName); 88public static INamedTypeSymbol? GetBestTypeByMetadataName(this Compilation compilation, Type type) =>
Microsoft.Interop.SourceGeneration (127)
ArrayMarshallingInfoProvider.cs (1)
48INamedTypeSymbol? arrayMarshaller;
BlittableTypeMarshallingInfoProvider.cs (1)
23public bool CanProvideMarshallingInfoForType(ITypeSymbol type) => type is INamedTypeSymbol { IsUnmanagedType: true } unmanagedType
ComInterfaceMarshallingInfoProvider.cs (2)
24public bool CanParseAttributeType(INamedTypeSymbol attributeType) => attributeType.ToDisplayString() == TypeNames.GeneratedComInterfaceAttribute; 36INamedTypeSymbol? comInterfaceMarshaller = compilation.GetTypeByMetadataName(TypeNames.System_Runtime_InteropServices_Marshalling_ComInterfaceMarshaller_Metadata);
CustomMarshallingInfoHelper.cs (7)
15INamedTypeSymbol entryPointType, 58else if (type is INamedTypeSymbol namedManagedCollectionType && entryPointType.IsUnboundGenericType) 70entryPointType = (INamedTypeSymbol)resolvedEntryPointType; 90if (type is INamedTypeSymbol namedManagedType && entryPointType.IsUnboundGenericType) 102entryPointType = (INamedTypeSymbol)resolvedEntryPointType; 135INamedTypeSymbol entryPointType, 175INamedTypeSymbol? marshallerType = compilation.GetBestTypeByMetadataName(marshallerName);
InteropAttributeData.cs (4)
50public INamedTypeSymbol? StringMarshallingCustomType { get; init; } 60INamedTypeSymbol? stringMarshallingCustomType = null; 85if (stringMarshallingCustomTypeValue.Value is not INamedTypeSymbol) 89stringMarshallingCustomType = (INamedTypeSymbol)stringMarshallingCustomTypeValue.Value;
ISymbolExtensions.cs (2)
15public static bool IsAccessibleFromFileScopedClass(this INamedTypeSymbol symbol, [NotNullWhen(false)] out string? details) 23for (ISymbol current = symbol.ContainingSymbol; current is INamedTypeSymbol currentType; current = currentType.ContainingSymbol)
ManagedTypeInfo.cs (2)
50return new EnumTypeInfo(typeName, diagnosticFormattedName, ((INamedTypeSymbol)type).EnumUnderlyingType!.SpecialType); 66return new DelegateTypeInfo(typeName, diagnosticFormattedName, type is INamedTypeSymbol { IsGenericType: true });
ManualTypeMarshallingHelper.cs (40)
81private static void IgnoreArityMismatch(INamedTypeSymbol _, INamedTypeSymbol __) { } 83public static bool IsLinearCollectionEntryPoint(INamedTypeSymbol entryPointType) 95INamedTypeSymbol entryPointType, 104INamedTypeSymbol entryPointType, 107Action<INamedTypeSymbol, INamedTypeSymbol> onArityMismatch, 114INamedTypeSymbol entryPointType, 124INamedTypeSymbol entryPointType, 128Action<INamedTypeSymbol, INamedTypeSymbol> onArityMismatch, 135INamedTypeSymbol entryPointType, 138Action<INamedTypeSymbol, INamedTypeSymbol> onArityMismatch, 146INamedTypeSymbol entryPointType, 151Action<INamedTypeSymbol, INamedTypeSymbol> onArityMismatch, 241public static bool TryResolveEntryPointType(INamedTypeSymbol managedType, ITypeSymbol typeInAttribute, bool isLinearCollectionMarshalling, Action<INamedTypeSymbol, INamedTypeSymbol> onArityMismatch, [NotNullWhen(true)] out ITypeSymbol? entryPoint) 243if (typeInAttribute is not INamedTypeSymbol entryPointType) 255INamedTypeSymbol instantiatedEntryType = entryPointType.ResolveUnboundConstructedTypeToConstructedType(managedType, out int numOriginalArgsSubstituted, out int extraArgumentsInTemplate); 283public static bool TryResolveManagedType(INamedTypeSymbol entryPointType, ITypeSymbol typeInAttribute, bool isLinearCollectionMarshalling, Action<INamedTypeSymbol, INamedTypeSymbol> onArityMismatch, [NotNullWhen(true)] out ITypeSymbol? managed) 285if (typeInAttribute is not INamedTypeSymbol namedMarshallerType) 298INamedTypeSymbol instantiatedManagedType = namedMarshallerType.ResolveUnboundConstructedTypeToConstructedType(entryPointType, out int numOriginalArgsSubstituted, out int extraArgumentsInTemplate); 326public static bool TryResolveMarshallerType(INamedTypeSymbol entryPointType, ITypeSymbol typeInAttribute, Action<INamedTypeSymbol, INamedTypeSymbol> onArityMismatch, [NotNullWhen(true)] out ITypeSymbol? marshallerType) 328if (typeInAttribute is not INamedTypeSymbol namedMarshallerType) 334INamedTypeSymbol instantiatedMarshallerType = namedMarshallerType.ResolveUnboundConstructedTypeToConstructedType(entryPointType, out int numOriginalArgsSubstituted, out int extraArgumentsInTemplate); 348/// Resolve a non-<see cref="INamedTypeSymbol"/> <paramref name="managedType"/> to the correct 356public static ITypeSymbol ReplaceGenericPlaceholderInType(ITypeSymbol managedType, INamedTypeSymbol entryType, Compilation compilation) 467collectionElementType = ((INamedTypeSymbol)methods.ManagedValuesSource.ReturnType).TypeArguments[0]; 498collectionElementType = ((INamedTypeSymbol)methods.ManagedValuesDestination.ReturnType).TypeArguments[0]; 525bufferElementType = ManagedTypeInfo.CreateTypeInfoForTypeSymbol(((INamedTypeSymbol)methods.ToUnmanagedWithBuffer.Parameters[1].Type).TypeArguments[0]); 573collectionElementType = ((INamedTypeSymbol)methods.ManagedValuesSource.ReturnType).TypeArguments[0]; 591collectionElementType = ((INamedTypeSymbol)methods.ManagedValuesDestination.ReturnType).TypeArguments[0]; 605bufferElementType = ManagedTypeInfo.CreateTypeInfoForTypeSymbol(((INamedTypeSymbol)methods.FromManagedWithBuffer.Parameters[1].Type).TypeArguments[0]);
MarshalAsParser.cs (1)
169public bool CanParseAttributeType(INamedTypeSymbol attributeType) => attributeType.ToDisplayString() == TypeNames.System_Runtime_InteropServices_MarshalAsAttribute;
MarshalAsWithCustomMarshallersParser.cs (3)
35public bool CanParseAttributeType(INamedTypeSymbol attributeType) => attributeType.ToDisplayString() == TypeNames.System_Runtime_InteropServices_MarshalAsAttribute; 46return type is INamedTypeSymbol { IsComImport: true } 66else if (arrayInfo.ArraySubType == UnmanagedType.Interface && elementType is not INamedTypeSymbol { IsComImport: true })
MarshallerShape.cs (15)
116INamedTypeSymbol spanOfT = compilation.GetTypeByMetadataName(TypeNames.System_Span_Metadata)!; 120INamedTypeSymbol readOnlySpanOfT = compilation.GetTypeByMetadataName(TypeNames.System_ReadOnlySpan_Metadata)!; 226if (typeToCheck is INamedTypeSymbol namedType) 236INamedTypeSymbol currentType = containingType as INamedTypeSymbol; 346.FirstOrDefault(m => m is { IsStatic: true, Parameters.Length: 1, ReturnsVoid: false, ReturnType: INamedTypeSymbol returnType } 356.FirstOrDefault(m => m is { IsStatic: true, Parameters.Length: 2, ReturnsVoid: false, ReturnType: INamedTypeSymbol returnType } 386.FirstOrDefault(m => m is { IsStatic: true, Parameters.Length: 1, ReturnsVoid: false, ReturnType: INamedTypeSymbol returnType } 396.FirstOrDefault(m => m is { IsStatic: true, Parameters.Length: 2, ReturnsVoid: false, ReturnType: INamedTypeSymbol returnType } 454INamedTypeSymbol spanOfT = compilation.GetTypeByMetadataName(TypeNames.System_Span_Metadata)!; 459INamedTypeSymbol readOnlySpanOfT = compilation.GetTypeByMetadataName(TypeNames.System_ReadOnlySpan_Metadata)!; 690.FirstOrDefault(m => m is { IsStatic: false, Parameters.Length: 0, ReturnsVoid: false, ReturnType: INamedTypeSymbol returnType } 699.FirstOrDefault(m => m is { IsStatic: false, Parameters.Length: 0, ReturnsVoid: false, ReturnType: INamedTypeSymbol returnType } 708.FirstOrDefault(m => m is { IsStatic: false, Parameters.Length: 1, ReturnsVoid: false, ReturnType: INamedTypeSymbol returnType } 718.FirstOrDefault(m => m is { IsStatic: false, Parameters.Length: 1, ReturnsVoid: false, ReturnType: INamedTypeSymbol returnType }
MarshallingAttributeInfo.cs (2)
16/// Since it contains a <see cref="INamedTypeSymbol"/>, it should not be used as a field on any types 21INamedTypeSymbol? StringMarshallingCustomType
MarshallingInfoParser.cs (2)
40bool CanParseAttributeType(INamedTypeSymbol attributeType); 62bool CanParseAttributeType(INamedTypeSymbol attributeType);
MarshalUsingAttributeParser.cs (2)
26public bool CanParseAttributeType(INamedTypeSymbol attributeType) => attributeType.ToDisplayString() == TypeNames.MarshalUsingAttribute; 46if (attributeData.ConstructorArguments[0].Value is not INamedTypeSymbol namedType)
NativeMarshallingAttributeParser.cs (2)
20public bool CanParseAttributeType(INamedTypeSymbol attributeType) => attributeType.ToDisplayString() == TypeNames.NativeMarshallingAttribute; 31if (attributeData.ConstructorArguments[0].Value is not INamedTypeSymbol entryPointType)
SafeHandleMarshallingInfoProvider.cs (4)
18private readonly INamedTypeSymbol? _safeHandleType = compilation.GetBestTypeByMetadataName(TypeNames.System_Runtime_InteropServices_SafeHandle); 19private readonly INamedTypeSymbol? _safeHandleMarshallerType = compilation.GetBestTypeByMetadataName(TypeNames.System_Runtime_InteropServices_Marshalling_SafeHandleMarshaller_Metadata); 44if (type is INamedTypeSymbol named && !named.IsAbstract && named.InstanceConstructors.Length > 0) 63INamedTypeSymbol entryPointType = _safeHandleMarshallerType.Construct(type);
SignatureContext.cs (1)
161for (INamedTypeSymbol type = method.ContainingType; type is not null; type = type.ContainingType)
src\runtime\src\libraries\Common\src\Roslyn\GetBestTypeByMetadataName.cs (4)
38public static INamedTypeSymbol? GetBestTypeByMetadataName(this Compilation compilation, string fullyQualifiedMetadataName) 41var type = compilation.GetTypeByMetadataName(fullyQualifiedMetadataName); 53var currentType = referencedAssembly.GetTypeByMetadataName(fullyQualifiedMetadataName); 88public static INamedTypeSymbol? GetBestTypeByMetadataName(this Compilation compilation, Type type) =>
StubEnvironment.cs (18)
21private Optional<INamedTypeSymbol?> _lcidConversionAttrType; 22public INamedTypeSymbol? LcidConversionAttrType 30_lcidConversionAttrType = new Optional<INamedTypeSymbol?>(Compilation.GetTypeByMetadataName(TypeNames.LCIDConversionAttribute)); 35private Optional<INamedTypeSymbol?> _suppressGCTransitionAttrType; 36public INamedTypeSymbol? SuppressGCTransitionAttrType 44_suppressGCTransitionAttrType = new Optional<INamedTypeSymbol?>(Compilation.GetTypeByMetadataName(TypeNames.SuppressGCTransitionAttribute)); 49private Optional<INamedTypeSymbol?> _unmanagedCallConvAttrType; 50public INamedTypeSymbol? UnmanagedCallConvAttrType 58_unmanagedCallConvAttrType = new Optional<INamedTypeSymbol?>(Compilation.GetTypeByMetadataName(TypeNames.UnmanagedCallConvAttribute)); 63private Optional<INamedTypeSymbol?> _defaultDllImportSearchPathsAttrType; 64public INamedTypeSymbol? DefaultDllImportSearchPathsAttrType 72_defaultDllImportSearchPathsAttrType = new Optional<INamedTypeSymbol?>(Compilation.GetTypeByMetadataName(TypeNames.DefaultDllImportSearchPathsAttribute)); 77private Optional<INamedTypeSymbol?> _wasmImportLinkageAttrType; 78public INamedTypeSymbol? WasmImportLinkageAttrType 86_wasmImportLinkageAttrType = new Optional<INamedTypeSymbol?>(Compilation.GetTypeByMetadataName(TypeNames.WasmImportLinkageAttribute)); 91private Optional<INamedTypeSymbol?> _stackTraceHiddenAttrType; 92public INamedTypeSymbol? StackTraceHiddenAttrType 100_stackTraceHiddenAttrType = new Optional<INamedTypeSymbol?>(Compilation.GetTypeByMetadataName(TypeNames.System_Diagnostics_StackTraceHiddenAttribute));
TypePositionInfo.cs (2)
113INamedTypeSymbol outAttributeType = compilation.GetTypeByMetadataName(TypeNames.System_Runtime_InteropServices_OutAttribute)!; 114INamedTypeSymbol inAttributeType = compilation.GetTypeByMetadataName(TypeNames.System_Runtime_InteropServices_InAttribute)!;
TypeSymbolExtensions.cs (12)
210(INamedTypeSymbol namedType, INamedTypeSymbol namedOther) => SymbolEqualityComparer.Default.Equals(namedType.ConstructedFrom, namedOther.ConstructedFrom), 223public static INamedTypeSymbol ResolveUnboundConstructedTypeToConstructedType(this INamedTypeSymbol unboundConstructedType, INamedTypeSymbol instantiatedTemplateType, out int numOriginalTypeArgumentsSubstituted, out int extraTypeArgumentsInTemplate) 229Stack<INamedTypeSymbol> originalNestedTypes = new(); 230for (INamedTypeSymbol originalTypeDefinition = unboundConstructedType.OriginalDefinition; originalTypeDefinition is not null; originalTypeDefinition = originalTypeDefinition.ContainingType) 237INamedTypeSymbol currentType = null; 249INamedTypeSymbol originalNestedType = originalNestedTypes.Pop(); 305public static (ImmutableArray<ITypeSymbol> TypeArguments, ImmutableArray<NullableAnnotation> TypeArgumentNullableAnnotations) GetAllTypeArgumentsIncludingInContainingTypes(this INamedTypeSymbol genericType) 310for (INamedTypeSymbol instantiatedType = genericType; instantiatedType is not null; instantiatedType = instantiatedType.ContainingType) 330public static bool IsOfType(this INamedTypeSymbol type, string typeName)
Microsoft.Maui.Controls.BindingSourceGen (3)
ISymbolExtensions.cs (1)
31 var containgType = propertySymbol.ContainingType;
ITypeSymbolExtensions.cs (2)
28 typeInfo is INamedTypeSymbol namedTypeSymbol 41 return ((INamedTypeSymbol)typeSymbol).TypeArguments[0].ToDisplayString(SymbolDisplayFormat.FullyQualifiedFormat);
Microsoft.Maui.Controls.SourceGen (5)
CodeBehindGenerator.cs (5)
186 INamedTypeSymbol? xmlnsDefinitonAttribute = compilation.GetTypesByMetadataName(typeof(XmlnsDefinitionAttribute).FullName) 190 INamedTypeSymbol? internalsVisibleToAttribute = compilation.GetTypeByMetadataName(typeof(InternalsVisibleToAttribute).FullName); 548 IList<INamedTypeSymbol> types = compilation.GetTypesByMetadataName(fullName); 555 foreach (INamedTypeSymbol type in types) 583 static bool IsPublicOrVisibleInternal(INamedTypeSymbol type, IEnumerable<IAssemblySymbol> internalsVisible)
Microsoft.ML.InternalCodeAnalyzer (23)
BaseTestClassAnalyzer.cs (10)
52private readonly INamedTypeSymbol _factAttribute; 53private readonly INamedTypeSymbol _baseTestClass; 54private readonly INamedTypeSymbol _ITbaseTestClass; 55private readonly ConcurrentDictionary<INamedTypeSymbol, bool> _knownTestAttributes = new ConcurrentDictionary<INamedTypeSymbol, bool>(SymbolEqualityComparer.Default); 57public AnalyzerImpl(Compilation compilation, INamedTypeSymbol factAttribute) 67var namedType = (INamedTypeSymbol)context.Symbol; 84private bool ExtendsBaseTestClass(INamedTypeSymbol namedType) 90for (var current = namedType; current is object; current = current.BaseType)
BestFriendAnalyzer.cs (2)
55var bestFriendAttributeType = comp.GetTypeByMetadataName(attributeName); 58var wantsToBeBestFriendsAttributeType = comp.GetTypeByMetadataName(assemblyAttributeName);
BestFriendOnPublicDeclarationsAnalyzer.cs (2)
48var attribute = context.Compilation.GetTypeByMetadataName(attributeName); 57private void AnalyzeCore(SymbolAnalysisContext context, INamedTypeSymbol attributeType)
IMethodSymbolExtensions.cs (2)
12public static bool IsTestMethod(this IMethodSymbol method, ConcurrentDictionary<INamedTypeSymbol, bool> knownTestAttributes, INamedTypeSymbol factAttribute)
INamedTypeSymbolExtensions.cs (6)
13public static bool IsTestAttribute(this INamedTypeSymbol attributeClass, ConcurrentDictionary<INamedTypeSymbol, bool> knownTestAttributes, INamedTypeSymbol factAttribute) 21private static bool ExtendsFactAttribute(INamedTypeSymbol namedType, INamedTypeSymbol factAttribute) 24for (var current = namedType; current is object; current = current.BaseType)
RelaxTestNamingSuppressor.cs (1)
31var knownTestAttributes = new ConcurrentDictionary<INamedTypeSymbol, bool>(SymbolEqualityComparer.Default);
PlatformDocAnalyzer (4)
PlatformDocAnalyzer.cs (4)
151if (symbol is not INamedTypeSymbol namedType) 170if (member is INamedTypeSymbol) 241var namedType = (INamedTypeSymbol)context.Symbol;
Roslyn.Diagnostics.Analyzers (873)
AbstractApplyTraitToClass`1.cs (1)
29INamedTypeSymbol TraitAttribute,
AbstractCreateTestAccessor`1.cs (2)
37var typeSymbol = (INamedTypeSymbol)semanticModel.GetDeclaredSymbol(type, context.CancellationToken);
AbstractDoNotCopyValue.cs (8)
314public override void VisitNamedType(INamedTypeSymbol symbol) 1374{ Type: INamedTypeSymbol { OriginalDefinition: var taskType } } 1566var nullableUnderlyingType = ((INamedTypeSymbol)type).TypeArguments.FirstOrDefault(); 1665private readonly ConcurrentDictionary<INamedTypeSymbol, bool> _typesToNonCopyable 1668public INamedTypeSymbol? ValueTaskT { get; } 1669public INamedTypeSymbol? ConfiguredValueTaskAwaitableT { get; } 1690if (symbol is not INamedTypeSymbol namedTypeSymbol) 1703private bool IsNonCopyableTypeSlow(INamedTypeSymbol symbol)
AbstractExposeMemberForTesting`1.cs (2)
43var testAccessorType = (INamedTypeSymbol)semanticModel.GetDeclaredSymbol(type, context.CancellationToken);
AbstractRunIterations`1.cs (4)
34if (!semanticModel.Compilation.TryGetOrCreateTypeByMetadataName(WellKnownTypeNames.XunitFactAttribute, out var factAttribute) 35|| !semanticModel.Compilation.TryGetOrCreateTypeByMetadataName(WellKnownTypeNames.XunitSdkDataAttribute, out var dataAttribute) 36|| !semanticModel.Compilation.TryGetOrCreateTypeByMetadataName(WellKnownTypeNames.XunitCombinatorialDataAttribute, out var combinatorialDataAttribute)) 41var knownTestAttributes = new ConcurrentDictionary<INamedTypeSymbol, bool>();
DefaultableTypeShouldHaveDefaultableFieldsAnalyzer.cs (9)
46var nonDefaultableAttribute = context.Compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.RoslynUtilitiesNonDefaultableAttribute); 56private static void AnalyzeField(SymbolAnalysisContext context, INamedTypeSymbol nonDefaultableAttribute, ConcurrentDictionary<ITypeSymbol, bool> knownNonDefaultableTypes) 61private static void AnalyzeNamedType(SymbolAnalysisContext context, INamedTypeSymbol nonDefaultableAttribute, ConcurrentDictionary<ITypeSymbol, bool> knownNonDefaultableTypes) 63var namedType = (INamedTypeSymbol)context.Symbol; 76private static void AnalyzeField(SymbolAnalysisContext originalContext, IFieldSymbol field, INamedTypeSymbol nonDefaultableAttribute, ConcurrentDictionary<ITypeSymbol, bool> knownNonDefaultableTypes) 81var containingType = field.ContainingType; 110private static bool IsDefaultable(ITypeSymbol type, INamedTypeSymbol nonDefaultableAttribute, ConcurrentDictionary<ITypeSymbol, bool> knownNonDefaultableTypes) 123if (type is not INamedTypeSymbol namedType)
DoNotMixAttributesFromDifferentVersionsOfMEF.cs (9)
46var mefV1ExportAttribute = compilationContext.Compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemComponentModelCompositionExportAttribute); 47var mefV2ExportAttribute = compilationContext.Compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemCompositionExportAttribute); 54var attributeUsageAttribute = compilationContext.Compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemAttributeUsageAttribute); 56var exportAttributes = new List<INamedTypeSymbol>() { mefV1ExportAttribute, mefV2ExportAttribute }; 61private static void AnalyzeSymbol(SymbolAnalysisContext symbolContext, IEnumerable<INamedTypeSymbol> exportAttributes, INamedTypeSymbol? attributeUsageAttribute) 63var namedType = (INamedTypeSymbol)symbolContext.Symbol; 119private static void ReportDiagnostic(SymbolAnalysisContext symbolContext, INamedTypeSymbol exportedType, AttributeData problematicAttribute)
ExportedPartsShouldHaveImportingConstructor.cs (10)
49var exportAttributeV1 = compilationContext.Compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemComponentModelCompositionExportAttribute); 50var importingConstructorAttributeV1 = compilationContext.Compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemComponentModelCompositionImportingConstructorAttribute); 51var exportAttributeV2 = compilationContext.Compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemCompositionExportAttribute); 52var inheritedExportAttribute = compilationContext.Compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemComponentModelCompositionInheritedExportAttribute); 53var importingConstructorAttributeV2 = compilationContext.Compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemCompositionImportingConstructorAttribute); 73var namedType = (INamedTypeSymbol)symbolContext.Symbol; 82private static void AnalyzeSymbolForAttribute(ref SymbolAnalysisContext context, INamedTypeSymbol? exportAttribute, INamedTypeSymbol? importingConstructorAttribute, INamedTypeSymbol namedType, IEnumerable<AttributeData> exportAttributes)
ExportedPartsShouldHaveImportingConstructorCodeFixProvider.cs (7)
85var exportAttributeSymbol = semanticModel.GetSymbolInfo(exportAttribute, cancellationToken).Symbol?.ContainingType; 86INamedTypeSymbol? importingConstructorAttributeSymbol = null; 173var exportedType = semanticModel.GetDeclaredSymbol(declaration, cancellationToken)?.ContainingType; 179INamedTypeSymbol? importingConstructorAttributeSymbol = null; 182INamedTypeSymbol? exportAttributeSymbol = null; 183foreach (var attributeClass in attributeData.AttributeClass.GetBaseTypesAndThis()) 187exportAttributeSymbol = (INamedTypeSymbol)attributeClass;
ImmutableArrayBoxingAnalyzer.cs (7)
45var immutableArray = context.Compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemCollectionsImmutableImmutableArray1); 49var readOnlyListExtensions = context.Compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemCollectionsGenericReadOnlyListExtensions); 53var enumerableExtensions = context.Compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemCollectionsGenericEnumerableExtensions); 65INamedTypeSymbol immutableArrayType, 66INamedTypeSymbol readOnlyListExtensionsType, 67INamedTypeSymbol enumerableExtensionsType) 86if (conversionOperation.Operand.Type is not INamedTypeSymbol operandType ||
ImportingConstructorShouldBeObsolete.cs (12)
51var obsoleteAttribute = compilationContext.Compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemObsoleteAttribute); 52var exportAttributeV1 = compilationContext.Compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemComponentModelCompositionExportAttribute); 53var importingConstructorAttributeV1 = compilationContext.Compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemComponentModelCompositionImportingConstructorAttribute); 54var exportAttributeV2 = compilationContext.Compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemCompositionExportAttribute); 55var inheritedExportAttribute = compilationContext.Compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemComponentModelCompositionInheritedExportAttribute); 56var importingConstructorAttributeV2 = compilationContext.Compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemCompositionImportingConstructorAttribute); 66var namedType = (INamedTypeSymbol)symbolContext.Symbol; 75private static void AnalyzeSymbolForAttribute(ref SymbolAnalysisContext context, INamedTypeSymbol? obsoleteAttribute, INamedTypeSymbol? exportAttribute, INamedTypeSymbol? importingConstructorAttribute, INamedTypeSymbol namedType, IEnumerable<AttributeData> exportAttributes)
ImportingConstructorShouldBeObsoleteCodeFixProvider.cs (2)
89var obsoleteAttributeSymbol = semanticModel.Compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemObsoleteAttribute); 209if (semanticModel.Compilation.TryGetOrCreateTypeByMetadataName(WellKnownTypeNames.MicrosoftCodeAnalysisHostMefMefConstruction, out var mefConstructionType) &&
IRemoteJsonServiceParameterAnalyzer.cs (8)
44var remoteJsonService = context.Compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.MicrosoftCodeAnalysisRazorRemoteIRemoteJsonService); 48var razorPinnedSolutionInfoWrapper = context.Compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.MicrosoftCodeAnalysisExternalAccessRazorRazorPinnedSolutionInfoWrapper); 49var documentId = context.Compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.MicrosoftCodeAnalysisDocumentId); 59INamedTypeSymbol remoteJsonService, 60INamedTypeSymbol? razorPinnedSolutionInfoWrapper, 61INamedTypeSymbol? documentId) 63var namedTypeSymbol = (INamedTypeSymbol)context.Symbol;
PartsExportedWithMEFv2MustBeMarkedAsShared.cs (4)
44var exportAttribute = compilationContext.Compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemCompositionExportAttribute); 45var attributeUsageAttribute = compilationContext.Compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemAttributeUsageAttribute); 55var namedType = (INamedTypeSymbol)symbolContext.Symbol;
PooledArrayBuilderAsRefAnalyzer.cs (1)
45var pooledArrayBuilderExtensions = context.Compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.MicrosoftAspNetCoreRazorPooledObjectsPooledArrayBuilderExtensions);
RelaxTestNamingSuppressor.cs (3)
32context.Compilation.TryGetOrCreateTypeByMetadataName(WellKnownTypeNames.XunitFactAttribute, out var factAttribute); 33context.Compilation.TryGetOrCreateTypeByMetadataName(WellKnownTypeNames.BenchmarkDotNetAttributesBenchmarkAttribute, out var benchmarkAttribute); 39var knownTestAttributes = new ConcurrentDictionary<INamedTypeSymbol, bool>();
SpecializedEnumerableCreationAnalyzer.cs (9)
61INamedTypeSymbol? specializedCollectionsSymbol = context.Compilation.GetOrCreateTypeByMetadataName(SpecializedCollectionsMetadataName); 71INamedTypeSymbol? genericEnumerableSymbol = context.Compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemCollectionsGenericIEnumerable1); 77INamedTypeSymbol? linqEnumerableSymbol = context.Compilation.GetOrCreateTypeByMetadataName(LinqEnumerableMetadataName); 94protected abstract void GetCodeBlockStartedAnalyzer(CompilationStartAnalysisContext context, INamedTypeSymbol genericEnumerableSymbol, IMethodSymbol genericEmptyEnumerableSymbol); 98private readonly INamedTypeSymbol _genericEnumerableSymbol; 101protected AbstractCodeBlockStartedAnalyzer(INamedTypeSymbol genericEnumerableSymbol, IMethodSymbol genericEmptyEnumerableSymbol) 107protected abstract void GetSyntaxAnalyzer(CodeBlockStartAnalysisContext<TLanguageKindEnum> context, INamedTypeSymbol genericEnumerableSymbol, IMethodSymbol genericEmptyEnumerableSymbol); 121protected INamedTypeSymbol GenericEnumerableSymbol { get; } 124protected AbstractSyntaxAnalyzer(INamedTypeSymbol genericEnumerableSymbol, IMethodSymbol genericEmptyEnumerableSymbol)
src\roslyn\src\Compilers\Core\Portable\SourceGeneration\GeneratedCodeUtilities.cs (1)
19ISymbol symbol, INamedTypeSymbol generatedCodeAttribute)
src\roslyn\src\RoslynAnalyzers\Utilities\Compiler\CodeMetrics\CodeAnalysisMetricData.AssemblyMetricData.cs (2)
21ImmutableHashSet<INamedTypeSymbol> coupledNamedTypes, 45var coupledTypesBuilder = ImmutableHashSet.CreateBuilder<INamedTypeSymbol>();
src\roslyn\src\RoslynAnalyzers\Utilities\Compiler\CodeMetrics\CodeAnalysisMetricData.cs (4)
29ImmutableHashSet<INamedTypeSymbol> coupledNamedTypes, 79public ImmutableHashSet<INamedTypeSymbol> CoupledNamedTypes { get; } 271SymbolKind.NamedType => await NamedTypeMetricData.ComputeAsync((INamedTypeSymbol)symbol, context).ConfigureAwait(false), 309SymbolKind.NamedType => NamedTypeMetricData.ComputeSynchronously((INamedTypeSymbol)symbol, context),
src\roslyn\src\RoslynAnalyzers\Utilities\Compiler\CodeMetrics\CodeAnalysisMetricData.EventMetricData.cs (2)
18ImmutableHashSet<INamedTypeSymbol> coupledNamedTypes, 30var coupledTypesBuilder = ImmutableHashSet.CreateBuilder<INamedTypeSymbol>();
src\roslyn\src\RoslynAnalyzers\Utilities\Compiler\CodeMetrics\CodeAnalysisMetricData.FieldMetricData.cs (2)
18ImmutableHashSet<INamedTypeSymbol> coupledNamedTypes, 29var coupledTypesBuilder = ImmutableHashSet.CreateBuilder<INamedTypeSymbol>();
src\roslyn\src\RoslynAnalyzers\Utilities\Compiler\CodeMetrics\CodeAnalysisMetricData.MethodMetricData.cs (2)
18ImmutableHashSet<INamedTypeSymbol> coupledNamedTypes, 29var coupledTypesBuilder = ImmutableHashSet.CreateBuilder<INamedTypeSymbol>();
src\roslyn\src\RoslynAnalyzers\Utilities\Compiler\CodeMetrics\CodeAnalysisMetricData.NamedTypeMetricData.cs (10)
18INamedTypeSymbol symbol, 21ImmutableHashSet<INamedTypeSymbol> coupledNamedTypes, 31internal static async Task<NamedTypeMetricData> ComputeAsync(INamedTypeSymbol namedType, CodeMetricsAnalysisContext context) 40internal static NamedTypeMetricData ComputeSynchronously(INamedTypeSymbol namedType, CodeMetricsAnalysisContext context) 49private static IEnumerable<ISymbol> GetMembers(INamedTypeSymbol namedType, CodeMetricsAnalysisContext context) 65private static NamedTypeMetricData ComputeFromChildren(INamedTypeSymbol namedType, ImmutableArray<CodeAnalysisMetricData> children, CodeMetricsAnalysisContext context) 67var coupledTypesBuilder = ImmutableHashSet.CreateBuilder<INamedTypeSymbol>(); 130private static int CalculateDepthOfInheritance(INamedTypeSymbol namedType, Func<INamedTypeSymbol, bool> isExcludedFromInheritanceCount) 137var parent = namedType.BaseType;
src\roslyn\src\RoslynAnalyzers\Utilities\Compiler\CodeMetrics\CodeAnalysisMetricData.NamespaceMetricData.cs (7)
20ImmutableHashSet<INamedTypeSymbol> coupledNamedTypes, 44var coupledTypesBuilder = ImmutableHashSet.CreateBuilder<INamedTypeSymbol>(); 76var typesInNamespace = new HashSet<INamedTypeSymbol>(); 77foreach (INamedTypeSymbol typeMember in @namespace.GetTypeMembers()) 83foreach (INamedTypeSymbol namedType in typesInNamespace.OrderBy(t => t.ToDisplayString())) 90void processType(INamedTypeSymbol namedType) 93foreach (INamedTypeSymbol nestedType in namedType.GetTypeMembers())
src\roslyn\src\RoslynAnalyzers\Utilities\Compiler\CodeMetrics\CodeAnalysisMetricData.PropertyMetricData.cs (2)
18ImmutableHashSet<INamedTypeSymbol> coupledNamedTypes, 30var coupledTypesBuilder = ImmutableHashSet.CreateBuilder<INamedTypeSymbol>();
src\roslyn\src\RoslynAnalyzers\Utilities\Compiler\CodeMetrics\CodeMetricsAnalysisContext.cs (2)
18Func<INamedTypeSymbol, bool>? isExcludedFromInheritanceCountFunc = null) 32public Func<INamedTypeSymbol, bool> IsExcludedFromInheritanceCountFunc { get; }
src\roslyn\src\RoslynAnalyzers\Utilities\Compiler\CodeMetrics\MetricsHelper.cs (12)
38internal static void AddCoupledNamedTypes(ImmutableHashSet<INamedTypeSymbol>.Builder builder, WellKnownTypeProvider wellKnownTypeProvider, 39ImmutableHashSet<INamedTypeSymbol> coupledTypes) 41foreach (var coupledType in coupledTypes) 47internal static void AddCoupledNamedTypes(ImmutableHashSet<INamedTypeSymbol>.Builder builder, WellKnownTypeProvider wellKnownTypeProvider, 53internal static void AddCoupledNamedTypes(ImmutableHashSet<INamedTypeSymbol>.Builder builder, WellKnownTypeProvider wellKnownTypeProvider, 194ImmutableHashSet<INamedTypeSymbol>.Builder builder, 348private static void AddCoupledNamedTypesCore(ImmutableHashSet<INamedTypeSymbol>.Builder builder, ITypeSymbol typeOpt, 351if (typeOpt is INamedTypeSymbol usedType && 369static bool isIgnoreableType(INamedTypeSymbol namedType, WellKnownTypeProvider wellKnownTypeProvider) 399internal static void RemoveContainingTypes(ISymbol symbol, ImmutableHashSet<INamedTypeSymbol>.Builder coupledTypesBuilder) 401var namedType = symbol as INamedTypeSymbol ?? symbol.ContainingType;
src\roslyn\src\RoslynAnalyzers\Utilities\Compiler\DiagnosticHelpers.cs (1)
68if (symbol is INamedTypeSymbol namedType &&
src\roslyn\src\RoslynAnalyzers\Utilities\Compiler\DoNotCatchGeneralUnlessRethrown.cs (8)
35protected virtual bool IsConfiguredDisallowedExceptionType(INamedTypeSymbol namedTypeSymbol, IMethodSymbol containingMethod, Compilation compilation, AnalyzerOptions analyzerOptions, CancellationToken cancellationToken) 47INamedTypeSymbol? requiredAttributeType = null; 86bool IsDisallowedCatchType(INamedTypeSymbol type) => 94private INamedTypeSymbol? GetRequiredAttributeType(Compilation compilation) 100private static IReadOnlyCollection<INamedTypeSymbol> GetDisallowedCatchTypes(Compilation compilation) 115private readonly Func<INamedTypeSymbol, bool> _isDisallowedCatchType; 121public DisallowGeneralCatchUnlessRethrowWalker(Func<INamedTypeSymbol, bool> isDisallowedCatchType, bool checkAnonymousFunctions) 163return operation.ExceptionType is INamedTypeSymbol exceptionType &&
src\roslyn\src\RoslynAnalyzers\Utilities\Compiler\Extensions\CompilationExtensions.cs (4)
21/// <returns>The <see cref="INamedTypeSymbol"/> if found, null otherwise.</returns> 22internal static INamedTypeSymbol? GetOrCreateTypeByMetadataName(this Compilation compilation, string fullTypeName) => 30/// <returns>The <see cref="INamedTypeSymbol"/> if found, null otherwise.</returns> 31internal static bool TryGetOrCreateTypeByMetadataName(this Compilation compilation, string fullTypeName, [NotNullWhen(returnValue: true)] out INamedTypeSymbol? namedTypeSymbol) =>
src\roslyn\src\RoslynAnalyzers\Utilities\Compiler\Extensions\IMethodSymbolExtensions.cs (42)
89public static bool IsImplementationOfInterfaceMethod(this IMethodSymbol method, ITypeSymbol? typeArgument, [NotNullWhen(returnValue: true)] INamedTypeSymbol? interfaceType, string interfaceMethodName) 91INamedTypeSymbol? constructedInterface = typeArgument != null ? interfaceType?.Construct(typeArgument) : interfaceType; 102INamedTypeSymbol? iDisposable = compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemIDisposable); 111INamedTypeSymbol? iAsyncDisposable = compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemIAsyncDisposable); 112INamedTypeSymbol? valueTaskType = compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemThreadingTasksValueTask); 119public static bool IsDisposeImplementation([NotNullWhen(returnValue: true)] this IMethodSymbol? method, [NotNullWhen(returnValue: true)] INamedTypeSymbol? iDisposable) 141public static bool IsAsyncDisposeImplementation([NotNullWhen(returnValue: true)] this IMethodSymbol? method, [NotNullWhen(returnValue: true)] INamedTypeSymbol? iAsyncDisposable, [NotNullWhen(returnValue: true)] INamedTypeSymbol? valueTaskType) 200private static bool HasDisposeCloseAsyncMethodSignature(this IMethodSymbol method, INamedTypeSymbol? taskType) 208INamedTypeSymbol? task, 209INamedTypeSymbol? valueTask, 210INamedTypeSymbol? configuredValueTaskAwaitable) 223private static bool HasOverriddenDisposeCoreAsyncMethodSignature(this IMethodSymbol method, [NotNullWhen(returnValue: true)] INamedTypeSymbol? task) 236private static bool HasVirtualOrOverrideDisposeCoreAsyncMethodSignature(this IMethodSymbol method, [NotNullWhen(returnValue: true)] INamedTypeSymbol? valueTask) 250INamedTypeSymbol? iDisposable = compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemIDisposable); 251INamedTypeSymbol? iAsyncDisposable = compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemIAsyncDisposable); 252INamedTypeSymbol? configuredAsyncDisposable = compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemRuntimeCompilerServicesConfiguredAsyncDisposable); 253INamedTypeSymbol? task = compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemThreadingTasksTask); 254INamedTypeSymbol? valueTask = compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemThreadingTasksValueTask); 255INamedTypeSymbol? configuredValueTaskAwaitable = compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemRuntimeCompilerServicesConfiguredValueTaskAwaitable); 264INamedTypeSymbol? iDisposable, 265INamedTypeSymbol? iAsyncDisposable, 266INamedTypeSymbol? configuredAsyncDisposable, 267INamedTypeSymbol? task, 268INamedTypeSymbol? valueTask, 269INamedTypeSymbol? configuredValueTaskAwaitable) 311public static bool IsSerializationConstructor([NotNullWhen(returnValue: true)] this IMethodSymbol? method, INamedTypeSymbol? serializationInfoType, INamedTypeSymbol? streamingContextType) 317public static bool IsGetObjectData([NotNullWhen(returnValue: true)] this IMethodSymbol? method, INamedTypeSymbol? serializationInfoType, INamedTypeSymbol? streamingContextType) 364public static bool IsCollectionAddMethod(this IMethodSymbol method, ImmutableHashSet<INamedTypeSymbol> iCollectionTypes) 385public static bool IsTaskFromResultMethod(this IMethodSymbol method, [NotNullWhen(returnValue: true)] INamedTypeSymbol? taskType) 394public static bool IsTaskConfigureAwaitMethod(this IMethodSymbol method, [NotNullWhen(returnValue: true)] INamedTypeSymbol? genericTaskType) 406public static bool IsAsyncDisposableConfigureAwaitMethod(this IMethodSymbol method, [NotNullWhen(returnValue: true)] INamedTypeSymbol? asyncDisposableType, [NotNullWhen(returnValue: true)] INamedTypeSymbol? taskAsyncEnumerableExtensions) 483public static bool IsLockMethod(this IMethodSymbol method, [NotNullWhen(returnValue: true)] INamedTypeSymbol? systemThreadingMonitor) 493public static bool IsInterlockedExchangeMethod(this IMethodSymbol method, INamedTypeSymbol? systemThreadingInterlocked) 505public static bool IsInterlockedCompareExchangeMethod(this IMethodSymbol method, INamedTypeSymbol? systemThreadingInterlocked) 536public static bool IsBenchmarkOrXUnitTestMethod(this IMethodSymbol method, ConcurrentDictionary<INamedTypeSymbol, bool> knownTestAttributes, INamedTypeSymbol? benchmarkAttribute, INamedTypeSymbol? xunitFactAttribute) 561var typeSymbol = methodSymbol.ContainingType;
src\roslyn\src\RoslynAnalyzers\Utilities\Compiler\Extensions\INamedTypeSymbolExtensions.cs (9)
17public static bool IsFileLocal(this INamedTypeSymbol symbol) => symbol.IsFileLocal; 41public static bool DerivesFromOrImplementsAnyConstructionOf(this INamedTypeSymbol type, INamedTypeSymbol parentType) 48for (INamedTypeSymbol? baseType = type.OriginalDefinition; 66public static bool OverridesEquals(this INamedTypeSymbol symbol) 72public static bool IsBenchmarkOrXUnitTestAttribute(this INamedTypeSymbol attributeClass, ConcurrentDictionary<INamedTypeSymbol, bool> knownTestAttributes, INamedTypeSymbol? benchmarkAttribute, INamedTypeSymbol? xunitFactAttribute)
src\roslyn\src\RoslynAnalyzers\Utilities\Compiler\Extensions\IPropertySymbolExtensions.cs (1)
36var typeSymbol = propertySymbol.ContainingType;
src\roslyn\src\RoslynAnalyzers\Utilities\Compiler\Extensions\ISymbolExtensions.cs (9)
153foreach (INamedTypeSymbol interfaceSymbol in symbol.ContainingType.AllInterfaces) 240public static AttributeData? GetAttribute(this ISymbol symbol, [NotNullWhen(true)] INamedTypeSymbol? attributeType) 245public static IEnumerable<AttributeData> GetAttributes(this ISymbol symbol, IEnumerable<INamedTypeSymbol?> attributesToMatch) 252foreach (var attributeToMatch in attributesToMatch) 263public static IEnumerable<AttributeData> GetAttributes(this ISymbol symbol, params INamedTypeSymbol?[] attributeTypesToMatch) 268public static bool HasAnyAttribute(this ISymbol symbol, IEnumerable<INamedTypeSymbol> attributesToMatch) 273public static bool HasAnyAttribute(this ISymbol symbol, params INamedTypeSymbol?[] attributeTypesToMatch) 292public static bool HasDerivedTypeAttribute(this ITypeSymbol symbol, [NotNullWhen(returnValue: true)] INamedTypeSymbol? attribute) 331public static bool HasDerivedMethodAttribute(this IMethodSymbol symbol, [NotNullWhen(returnValue: true)] INamedTypeSymbol? attribute)
src\roslyn\src\RoslynAnalyzers\Utilities\Compiler\Extensions\ITypeSymbolExtensions.cs (14)
116INamedTypeSymbol? iDisposable, 117INamedTypeSymbol? iAsyncDisposable, 118INamedTypeSymbol? configuredAsyncDisposable) 138static bool IsInterfaceOrImplementsInterface(ITypeSymbol type, INamedTypeSymbol? interfaceType) 148public static IEnumerable<AttributeData> GetApplicableAttributes(this INamedTypeSymbol type, INamedTypeSymbol? attributeUsageAttribute) 180static bool IsInheritedAttribute(AttributeData attributeData, INamedTypeSymbol attributeUsageAttribute) 182for (var currentAttributeClass = attributeData.AttributeClass; 215public static IEnumerable<AttributeData> GetApplicableExportAttributes(this INamedTypeSymbol? type, INamedTypeSymbol? exportAttributeV1, INamedTypeSymbol? exportAttributeV2, INamedTypeSymbol? inheritedExportAttribute) 263=> typeSymbol.IsNullableValueType() && ((INamedTypeSymbol)typeSymbol).TypeArguments[0].SpecialType == SpecialType.System_Boolean; 266=> (typeSymbol as INamedTypeSymbol)?.TupleUnderlyingType ?? typeSymbol;
src\roslyn\src\RoslynAnalyzers\Utilities\Compiler\Options\AnalyzerOptionsExtensions.cs (9)
279if (symbol is INamedTypeSymbol namedType && !excludedTypeNamesWithDerivedTypes.IsEmpty) 281foreach (var type in namedType.GetBaseTypesAndThis()) 377public static SymbolNamesWithValueOption<INamedTypeSymbol?> GetAdditionalRequiredGenericInterfaces( 384private static SymbolNamesWithValueOption<INamedTypeSymbol?> GetAdditionalRequiredGenericInterfaces( 392static SymbolNamesWithValueOption<INamedTypeSymbol?>.NameParts GetParts(string name, Compilation compilation) 399return new SymbolNamesWithValueOption<INamedTypeSymbol?>.NameParts(name, null); 411matchingSymbols[0] is not INamedTypeSymbol namedType || 416return new SymbolNamesWithValueOption<INamedTypeSymbol?>.NameParts(split[0], null); 419return new SymbolNamesWithValueOption<INamedTypeSymbol?>.NameParts(split[0], namedType);
src\roslyn\src\RoslynAnalyzers\Utilities\Compiler\WellKnownTypeProvider.cs (11)
32_fullNameToTypeMap = new ConcurrentDictionary<string, INamedTypeSymbol?>(StringComparer.Ordinal); 65/// Mapping of full name to <see cref="INamedTypeSymbol"/>. 67private readonly ConcurrentDictionary<string, INamedTypeSymbol?> _fullNameToTypeMap; 94[NotNullWhen(returnValue: true)] out INamedTypeSymbol? namedTypeSymbol) 106[NotNullWhen(returnValue: true)] out INamedTypeSymbol? namedTypeSymbol) 118INamedTypeSymbol? type = null; 152var currentType = referencedAssembly.GetTypeByMetadataName(fullyQualifiedMetadataName); 188/// <returns>The <see cref="INamedTypeSymbol"/> if found, null otherwise.</returns> 189public INamedTypeSymbol? GetOrCreateTypeByMetadataName(string fullTypeName) 191TryGetOrCreateTypeByMetadataName(fullTypeName, out INamedTypeSymbol? namedTypeSymbol); 209&& typeSymbol is INamedTypeSymbol namedTypeSymbol
src\roslyn\src\RoslynAnalyzers\Utilities\Workspaces\SyntaxGeneratorExtensions.cs (9)
35INamedTypeSymbol containingType) 76public static SyntaxNode TypeExpressionForStaticMemberAccess(this SyntaxGenerator generator, INamedTypeSymbol typeSymbol) 110public static SyntaxNode DefaultOperatorInequalityDeclaration(this SyntaxGenerator generator, INamedTypeSymbol containingType) 136public static SyntaxNode DefaultOperatorLessThanDeclaration(this SyntaxGenerator generator, INamedTypeSymbol containingType) 188public static SyntaxNode DefaultOperatorLessThanOrEqualDeclaration(this SyntaxGenerator generator, INamedTypeSymbol containingType) 235public static SyntaxNode DefaultOperatorGreaterThanDeclaration(this SyntaxGenerator generator, INamedTypeSymbol containingType) 283public static SyntaxNode DefaultOperatorGreaterThanOrEqualDeclaration(this SyntaxGenerator generator, INamedTypeSymbol containingType) 322private static SyntaxNode ComparisonOperatorDeclaration(this SyntaxGenerator generator, OperatorKind operatorKind, INamedTypeSymbol containingType, params SyntaxNode[] statements) 349public static SyntaxNode DefaultEqualsOverrideDeclaration(this SyntaxGenerator generator, Compilation compilation, INamedTypeSymbol containingType)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Extensions\CollectionExpressionUtilities.cs (7)
61if (type is INamedTypeSymbol namedType) 71var ienumerableOfTType = compilation.IEnumerableOfTType(); 72var ienumerableType = compilation.IEnumerableType(); 73var foundType = 146Compilation compilation, INamedTypeSymbol collectionExpressionType) 148var readonlySpanOfTType = compilation.ReadOnlySpanOfTType(); 155if (attribute is not { ConstructorArguments: [{ Value: INamedTypeSymbol builderType }, { Value: string builderMethodName }] })
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Extensions\KnownTypes.cs (8)
11public readonly INamedTypeSymbol? TaskType = compilation.TaskType(); 12public readonly INamedTypeSymbol? TaskOfTType = compilation.TaskOfTType(); 13public readonly INamedTypeSymbol? ValueTaskType = compilation.ValueTaskType(); 14public readonly INamedTypeSymbol? ValueTaskOfTType = compilation.ValueTaskOfTType(); 16public readonly INamedTypeSymbol? IEnumerableOfTType = compilation.IEnumerableOfTType(); 17public readonly INamedTypeSymbol? IEnumeratorOfTType = compilation.IEnumeratorOfTType(); 19public readonly INamedTypeSymbol? IAsyncEnumerableOfTType = compilation.IAsyncEnumerableOfTType(); 20public readonly INamedTypeSymbol? IAsyncEnumeratorOfTType = compilation.IAsyncEnumeratorOfTType();
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Extensions\OperationExtensions.cs (2)
405var notImplementedExceptionType = compilation.NotImplementedExceptionType(); 454static bool IsThrowNotImplementedOperation(INamedTypeSymbol notImplementedExceptionType, IOperation? operation)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Extensions\SemanticModelExtensions.cs (4)
84return semanticModel.GetEnclosingSymbol<INamedTypeSymbol>(position, cancellationToken) ?? 88public static INamedTypeSymbol? GetEnclosingNamedType(this SemanticModel semanticModel, int position, CancellationToken cancellationToken) 89=> semanticModel.GetEnclosingSymbol<INamedTypeSymbol>(position, cancellationToken); 172var enumerableType = semanticModel.Compilation.IEnumerableOfTType();
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\FlowAnalysis\SymbolUsageAnalysis\SymbolUsageAnalysis.DataFlowAnalyzer.FlowGraphAnalysisData.cs (1)
143if (owningSymbol.ContainingSymbol is INamedTypeSymbol { IsExtension: true, ExtensionParameter: { } extensionParameter })
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\NamingStyles\NamingStyleRules.cs (3)
65var containingType = symbol.ContainingType; 87var containingType = symbol.ContainingType; 90foreach (var implementedInterface in implementedInterfaces)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Services\SemanticFacts\ISemanticFacts.cs (4)
68bool LastEnumValueHasInitializer(INamedTypeSymbol namedTypeSymbol); 89bool IsPartial(INamedTypeSymbol typeSymbol, CancellationToken cancellationToken); 108bool IsInExpressionTree(SemanticModel semanticModel, SyntaxNode node, [NotNullWhen(true)] INamedTypeSymbol? expressionType, CancellationToken cancellationToken); 123bool TryGetPrimaryConstructor(INamedTypeSymbol typeSymbol, [NotNullWhen(true)] out IMethodSymbol? primaryConstructor);
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\SymbolKey\SymbolKey.AnonymousFunctionOrDelegateSymbolKey.cs (1)
65var anonymousDelegate = methodSymbol.AssociatedAnonymousDelegate;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\SymbolKey\SymbolKey.AnonymousTypeSymbolKey.cs (5)
13private sealed class AnonymousTypeSymbolKey : AbstractSymbolKey<INamedTypeSymbol> 17public sealed override void Create(INamedTypeSymbol symbol, SymbolKeyWriter visitor) 34SymbolKeyReader reader, INamedTypeSymbol? contextualSymbol, out string? failureReason) 40using var propertyTypes = reader.ReadSymbolKeyArray<INamedTypeSymbol, ITypeSymbol>( 64var anonymousType = reader.Compilation.CreateAnonymousTypeSymbol(
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\SymbolKey\SymbolKey.cs (5)
43/// <item>Two <see cref="INamedTypeSymbol"/>s are the "same" if they have 46/// equal <see cref="INamedTypeSymbol.Arity"/> and 47/// the "same" <see cref="INamedTypeSymbol.TypeArguments"/>.</item> 301foreach (var containingType in containingTypeResolution.OfType<INamedTypeSymbol>())
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\SymbolKey\SymbolKey.ErrorTypeSymbolKey.cs (9)
12private sealed class ErrorTypeSymbolKey : AbstractSymbolKey<INamedTypeSymbol> 16public sealed override void Create(INamedTypeSymbol symbol, SymbolKeyWriter visitor) 21case INamedTypeSymbol parentType: 65SymbolKeyReader reader, INamedTypeSymbol? contextualType, out string? failureReason) 72using var typeArguments = reader.ReadSymbolKeyArray<INamedTypeSymbol, ITypeSymbol>( 92using var result = PooledArrayBuilder<INamedTypeSymbol>.GetInstance(); 97var originalType = reader.Compilation.CreateErrorTypeSymbol(container, name, arity); 98var errorType = typeArgumentsArray != null ? originalType.Construct(typeArgumentsArray) : originalType; 110SymbolKeyReader reader, INamedTypeSymbol? contextualType, out string? failureReason)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\SymbolKey\SymbolKey.FunctionPointerTypeSymbolKey.cs (2)
37var callingConventionModifiers = ImmutableArray<INamedTypeSymbol>.Empty; 40using var modifiersBuilder = reader.ReadSymbolKeyArray<IFunctionPointerTypeSymbol, INamedTypeSymbol>(
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\SymbolKey\SymbolKey.NamedTypeSymbolKey.cs (13)
9private sealed class NamedTypeSymbolKey : AbstractSymbolKey<INamedTypeSymbol> 13public sealed override void Create(INamedTypeSymbol symbol, SymbolKeyWriter visitor) 33SymbolKeyReader reader, INamedTypeSymbol? contextualSymbol, out string? failureReason) 48using var typeArguments = reader.ReadSymbolKeyArray<INamedTypeSymbol, ITypeSymbol>( 90INamedTypeSymbol? contextualType, 126using var result = PooledArrayBuilder<INamedTypeSymbol>.GetInstance(); 155using var result = PooledArrayBuilder<INamedTypeSymbol>.GetInstance(); 163PooledArrayBuilder<INamedTypeSymbol> result) 168foreach (var type in container.GetTypeMembers()) 176foreach (var type in container.GetTypeMembers(name, arity)) 200private static INamedTypeSymbol Construct(INamedTypeSymbol type, bool isUnboundGenericType, ITypeSymbol[] typeArguments) 202var currentType = typeArguments.Length > 0 ? type.Construct(typeArguments) : type;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\SymbolKey\SymbolKey.ParameterSymbolKey.cs (2)
64var delegateInvoke = (eventSymbol.Type as INamedTypeSymbol)?.DelegateInvokeMethod; 73case INamedTypeSymbol { IsExtension: true, ExtensionParameter: { } extensionParameter }:
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\SymbolKey\SymbolKey.SymbolKeyWriter.cs (2)
405public override void VisitNamedType(INamedTypeSymbol namedTypeSymbol) 412else if (namedTypeSymbol.IsTupleType && namedTypeSymbol.TupleUnderlyingType is INamedTypeSymbol underlyingType && underlyingType != namedTypeSymbol)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\SymbolKey\SymbolKey.TupleTypeSymbolKey.cs (10)
14private sealed class TupleTypeSymbolKey : AbstractSymbolKey<INamedTypeSymbol> 18public sealed override void Create(INamedTypeSymbol symbol, SymbolKeyWriter visitor) 53SymbolKeyReader reader, INamedTypeSymbol? contextualSymbol, out string? failureReason) 64SymbolKeyReader reader, INamedTypeSymbol? contextualSymbol, out string? failureReason) 78using var result = PooledArrayBuilder<INamedTypeSymbol>.GetInstance(); 81foreach (var namedType in underlyingTypeResolution.OfType<INamedTypeSymbol>()) 92SymbolKeyReader reader, INamedTypeSymbol? contextualType, out string? failureReason) 96using var elementTypes = reader.ReadSymbolKeyArray<INamedTypeSymbol, ITypeSymbol>( 120var result = reader.Compilation.CreateTupleTypeSymbol(
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Utilities\AbstractSpeculationAnalyzer.cs (5)
417var type = methodSymbol.ContainingType; 418var newType = newMethodSymbol.ContainingType; 491private static bool EnumTypesAreCompatible(INamedTypeSymbol type1, INamedTypeSymbol type2) 990var newSymbolContainingType = newSymbol.ContainingType;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Utilities\EnumValueUtilities.cs (1)
21public static object GetNextEnumValue(INamedTypeSymbol enumType)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Compilation\CompilationExtensions.cs (82)
78public static INamedTypeSymbol? ArgumentExceptionType(this Compilation compilation) 81public static INamedTypeSymbol? ArgumentNullExceptionType(this Compilation compilation) 84public static INamedTypeSymbol? ArgumentOutOfRangeExceptionType(this Compilation compilation) 87public static INamedTypeSymbol? ArrayType(this Compilation compilation) 90public static INamedTypeSymbol? AttributeType(this Compilation compilation) 93public static INamedTypeSymbol? BlockingCollectionOfTType(this Compilation compilation) 96public static INamedTypeSymbol? CollectionOfTType(this Compilation compilation) 99public static INamedTypeSymbol? ExceptionType(this Compilation compilation) 102public static INamedTypeSymbol? DebuggerDisplayAttributeType(this Compilation compilation) 105public static INamedTypeSymbol? StructLayoutAttributeType(this Compilation compilation) 108public static INamedTypeSymbol? InlineArrayAttributeType(this Compilation compilation) 111public static INamedTypeSymbol? DesignerCategoryAttributeType(this Compilation compilation) 114public static INamedTypeSymbol? DesignerGeneratedAttributeType(this Compilation compilation) 117public static INamedTypeSymbol? HideModuleNameAttribute(this Compilation compilation) 120public static INamedTypeSymbol? ThreadStaticAttributeType(this Compilation compilation) 123public static INamedTypeSymbol? FormattableStringType(this Compilation compilation) 126public static INamedTypeSymbol? IFormattableType(this Compilation compilation) 129public static INamedTypeSymbol? EventArgsType(this Compilation compilation) 132public static INamedTypeSymbol? NotImplementedExceptionType(this Compilation compilation) 135public static INamedTypeSymbol? EqualityComparerOfTType(this Compilation compilation) 138public static INamedTypeSymbol? ActionType(this Compilation compilation) 141public static INamedTypeSymbol? ExpressionOfTType(this Compilation compilation) 144public static INamedTypeSymbol? EditorBrowsableAttributeType(this Compilation compilation) 147public static INamedTypeSymbol? EditorBrowsableStateType(this Compilation compilation) 150public static INamedTypeSymbol? TaskType(this Compilation compilation) 153public static INamedTypeSymbol? TaskOfTType(this Compilation compilation) 156public static INamedTypeSymbol? ValueTaskType(this Compilation compilation) 159public static INamedTypeSymbol? ValueTaskOfTType(this Compilation compilation) 162public static INamedTypeSymbol? ICollectionOfTType(this Compilation compilation) 165public static INamedTypeSymbol? IEnumerableType(this Compilation compilation) 168public static INamedTypeSymbol? IEnumerableOfTType(this Compilation compilation) 171public static INamedTypeSymbol? IEnumeratorOfTType(this Compilation compilation) 174public static INamedTypeSymbol? IListOfTType(this Compilation compilation) 177public static INamedTypeSymbol? IReadOnlyListOfTType(this Compilation compilation) 180public static INamedTypeSymbol? ISetOfTType(this Compilation compilation) 183public static INamedTypeSymbol? IReadOnlySetOfTType(this Compilation compilation) 186public static INamedTypeSymbol? IAsyncEnumerableOfTType(this Compilation compilation) 189public static INamedTypeSymbol? IAsyncEnumeratorOfTType(this Compilation compilation) 192public static INamedTypeSymbol? ImmutableArrayOfTType(this Compilation compilation) 195public static INamedTypeSymbol? SerializableAttributeType(this Compilation compilation) 198public static INamedTypeSymbol? CoClassType(this Compilation compilation) 201public static INamedTypeSymbol? ComAliasNameAttributeType(this Compilation compilation) 204public static INamedTypeSymbol? SuppressMessageAttributeType(this Compilation compilation) 207public static INamedTypeSymbol? TupleElementNamesAttributeType(this Compilation compilation) 210public static INamedTypeSymbol? NativeIntegerAttributeType(this Compilation compilation) 213public static INamedTypeSymbol? DynamicAttributeType(this Compilation compilation) 216public static INamedTypeSymbol? LazyOfTType(this Compilation compilation) 219public static INamedTypeSymbol? ISerializableType(this Compilation compilation) 222public static INamedTypeSymbol? SerializationInfoType(this Compilation compilation) 225public static INamedTypeSymbol? StreamingContextType(this Compilation compilation) 228public static INamedTypeSymbol? OnDeserializingAttribute(this Compilation compilation) 231public static INamedTypeSymbol? OnDeserializedAttribute(this Compilation compilation) 234public static INamedTypeSymbol? OnSerializingAttribute(this Compilation compilation) 237public static INamedTypeSymbol? OnSerializedAttribute(this Compilation compilation) 240public static INamedTypeSymbol? ComRegisterFunctionAttribute(this Compilation compilation) 243public static INamedTypeSymbol? ComUnregisterFunctionAttribute(this Compilation compilation) 246public static INamedTypeSymbol? ConditionalAttribute(this Compilation compilation) 249public static INamedTypeSymbol? ObsoleteAttribute(this Compilation compilation) 252public static INamedTypeSymbol? SystemCompositionImportingConstructorAttribute(this Compilation compilation) 255public static INamedTypeSymbol? SystemComponentModelCompositionImportingConstructorAttribute(this Compilation compilation) 258public static INamedTypeSymbol? SystemIDisposableType(this Compilation compilation) 261public static INamedTypeSymbol? NotNullAttribute(this Compilation compilation) 264public static INamedTypeSymbol? MaybeNullAttribute(this Compilation compilation) 267public static INamedTypeSymbol? MaybeNullWhenAttribute(this Compilation compilation) 270public static INamedTypeSymbol? AllowNullAttribute(this Compilation compilation) 273public static INamedTypeSymbol? DisallowNullAttribute(this Compilation compilation) 276public static INamedTypeSymbol? DataMemberAttribute(this Compilation compilation) 279public static INamedTypeSymbol? DataContractAttribute(this Compilation compilation) 282public static INamedTypeSymbol? AsyncMethodBuilderAttribute(this Compilation compilation) 285public static INamedTypeSymbol? CancellationTokenType(this Compilation compilation) 288public static INamedTypeSymbol? ValueTupleType(this Compilation compilation, int arity) 291public static INamedTypeSymbol? ListOfTType(this Compilation compilation) 294public static INamedTypeSymbol? ReadOnlySpanOfTType(this Compilation compilation) 297public static INamedTypeSymbol? SpanOfTType(this Compilation compilation) 300public static INamedTypeSymbol? InterpolatedStringHandlerAttributeType(this Compilation compilation) 303public static INamedTypeSymbol? DateOnlyType(this Compilation compilation) 306public static INamedTypeSymbol? TimeOnlyType(this Compilation compilation) 334public static INamedTypeSymbol? GetBestTypeByMetadataName(this Compilation compilation, string fullyQualifiedMetadataName) 336INamedTypeSymbol? type = null; 338foreach (var currentType in compilation.GetTypesByMetadataName(fullyQualifiedMetadataName)) 373foreach (var candidateTopLevelType in compilation.SourceModule.GlobalNamespace.GetTypeMembers(WellKnownMemberNames.TopLevelStatementsEntryPointTypeName, arity: 0)) 385public static INamedTypeSymbol? TryGetCallingConventionSymbol(this Compilation compilation, string callingConvention)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\IMethodSymbolExtensions.cs (6)
26foreach (var nestedType in methodSymbol.ContainingType.GetTypeMembers()) 72public static bool HasEventHandlerSignature(this IMethodSymbol method, [NotNullWhen(returnValue: true)] INamedTypeSymbol? eventArgsType) 131public static bool IsEntryPoint(this IMethodSymbol methodSymbol, INamedTypeSymbol? taskType, INamedTypeSymbol? genericTaskType) 147if (method.ReturnType is not INamedTypeSymbol { Arity: 0 }) 169var containingType = constructor.ContainingType;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\INamedTypeSymbolExtensions.cs (77)
24public static IEnumerable<INamedTypeSymbol> GetBaseTypesAndThis(this INamedTypeSymbol? namedType) 26var current = namedType; 34public static IEnumerable<INamedTypeSymbol> GetContainingTypesAndThis(this INamedTypeSymbol? namedType) 36var current = namedType; 44public static ImmutableArray<ITypeParameterSymbol> GetAllTypeParameters(this INamedTypeSymbol? symbol) 50public static ImmutableArray<ITypeSymbol> GetAllTypeArguments(this INamedTypeSymbol? symbol) 56private static Stack<INamedTypeSymbol> GetContainmentStack(INamedTypeSymbol? symbol) 58var stack = new Stack<INamedTypeSymbol>(); 59for (var current = symbol; current != null; current = current.ContainingType) 67public static bool IsContainedWithin([NotNullWhen(returnValue: true)] this INamedTypeSymbol? symbol, INamedTypeSymbol outer) 70for (var current = symbol; current != null; current = current.ContainingType) 81public static ISymbol? FindImplementationForAbstractMember(this INamedTypeSymbol? type, ISymbol symbol) 92private static bool ImplementationExists(INamedTypeSymbol classOrStructType, ISymbol member) 96this INamedTypeSymbol classOrStructType, 98Func<INamedTypeSymbol, ISymbol, bool> isValidImplementation, 128private static bool IsInterfacePropertyImplemented(INamedTypeSymbol classOrStructType, IPropertySymbol propertySymbol) 136static bool IsAccessorImplemented(IMethodSymbol? accessor, INamedTypeSymbol classOrStructType) 142private static bool IsAbstractPropertyImplemented(INamedTypeSymbol classOrStructType, IPropertySymbol propertySymbol) 165this INamedTypeSymbol classOrStructType, 167Func<INamedTypeSymbol, ISymbol, bool> isValid, 190public static ImmutableArray<(INamedTypeSymbol type, ImmutableArray<ISymbol> members)> GetAllUnimplementedMembers( 191this INamedTypeSymbol classOrStructType, 192IEnumerable<INamedTypeSymbol> interfaces, 208static ImmutableArray<ISymbol> GetImplicitlyImplementableMembers(INamedTypeSymbol type, ISymbol within) 260public static ImmutableArray<(INamedTypeSymbol type, ImmutableArray<ISymbol> members)> GetAllUnimplementedMembersInThis( 261this INamedTypeSymbol classOrStructType, 262IEnumerable<INamedTypeSymbol> interfacesOrAbstractClasses, 278public static ImmutableArray<(INamedTypeSymbol type, ImmutableArray<ISymbol> members)> GetAllUnimplementedMembersInThis( 279this INamedTypeSymbol classOrStructType, 280IEnumerable<INamedTypeSymbol> interfacesOrAbstractClasses, 281Func<INamedTypeSymbol, ISymbol, ImmutableArray<ISymbol>> interfaceMemberGetter, 297public static ImmutableArray<(INamedTypeSymbol type, ImmutableArray<ISymbol> members)> GetAllUnimplementedExplicitMembers( 298this INamedTypeSymbol classOrStructType, 299IEnumerable<INamedTypeSymbol> interfaces, 311private static ImmutableArray<ISymbol> GetExplicitlyImplementableMembers(INamedTypeSymbol type, ISymbol within) 338private static ImmutableArray<(INamedTypeSymbol type, ImmutableArray<ISymbol> members)> GetAllUnimplementedMembers( 339this INamedTypeSymbol classOrStructType, 340IEnumerable<INamedTypeSymbol> interfacesOrAbstractClasses, 341Func<INamedTypeSymbol, ISymbol, Func<INamedTypeSymbol, ISymbol, bool>, CancellationToken, bool> isImplemented, 342Func<INamedTypeSymbol, ISymbol, bool> isValidImplementation, 343Func<INamedTypeSymbol, ISymbol, ImmutableArray<ISymbol>> interfaceMemberGetter, 372private static ImmutableArray<INamedTypeSymbol> GetTypesToImplement( 373INamedTypeSymbol classOrStructType, 374IEnumerable<INamedTypeSymbol> interfacesOrAbstractClasses, 383private static ImmutableArray<INamedTypeSymbol> GetAbstractClassesToImplement( 384IEnumerable<INamedTypeSymbol> abstractClasses) 389private static ImmutableArray<INamedTypeSymbol> GetInterfacesToImplement( 390INamedTypeSymbol classOrStructType, 391IEnumerable<INamedTypeSymbol> interfaces, 398var interfacesToImplement = new List<INamedTypeSymbol>( 403var baseType = classOrStructType.BaseType; 414this INamedTypeSymbol classOrStructType, 415INamedTypeSymbol interfaceType, 416Func<INamedTypeSymbol, ISymbol, Func<INamedTypeSymbol, ISymbol, bool>, CancellationToken, bool> isImplemented, 417Func<INamedTypeSymbol, ISymbol, bool> isValidImplementation, 418Func<INamedTypeSymbol, ISymbol, ImmutableArray<ISymbol>> interfaceMemberGetter, 460this INamedTypeSymbol attributeSymbol, 466var systemAttributeType = compilation.AttributeType(); 468foreach (var type in attributeSymbol.GetBaseTypesAndThis()) 528private static ImmutableArray<ISymbol> GetMembers(INamedTypeSymbol type, ISymbol within) 542this INamedTypeSymbol containingType, CancellationToken cancellationToken) 559foreach (var type in baseTypes) 580Dictionary<ISymbol, int> result, INamedTypeSymbol containingType, CancellationToken cancellationToken) 601Dictionary<ISymbol, int> result, INamedTypeSymbol containingType, CancellationToken cancellationToken) 623Dictionary<ISymbol, int> result, INamedTypeSymbol containingType, 624INamedTypeSymbol type, ref int index, CancellationToken cancellationToken) 637private static bool IsOverridable(ISymbol member, INamedTypeSymbol containingType) 680public static INamedTypeSymbol TryConstruct(this INamedTypeSymbol type, ITypeSymbol[] typeArguments) 683public static bool IsCollectionBuilderAttribute([NotNullWhen(true)] this INamedTypeSymbol? type) 702public static bool IsIEnumerableOfT([NotNullWhen(true)] this INamedTypeSymbol? type)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\INamespaceOrTypeSymbolExtensions.cs (3)
90public static IEnumerable<INamedTypeSymbol> GetAllTypes( 106var namedType = (INamedTypeSymbol)current;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\ISymbolExtensions.cs (16)
99foreach (var baseType in symbol.ContainingType.GetBaseTypes()) 108bool TryFindLooseMatch(ISymbol symbol, INamedTypeSymbol baseType, [NotNullWhen(true)] out ISymbol? looseMatch) 157foreach (var iface in symbol.ContainingType.AllInterfaces) 215public static INamedTypeSymbol? GetContainingTypeOrThis(this ISymbol symbol) 217if (symbol is INamedTypeSymbol namedType) 311=> symbol is INamedTypeSymbol { IsAnonymousType: true }; 354SymbolKind.NamedType => ((INamedTypeSymbol)symbol).Arity, 435INamedTypeSymbol nt => nt.TypeParameters, 456INamedTypeSymbol nt => nt.TypeArguments, 465var containingType = symbol.ContainingType; 506var delegateType = compilation.GetTypeByMetadataName(method.ReturnsVoid 535=> symbol is INamedTypeSymbol { IsStatic: true }; 551foreach (var type in namespaceOrType.GetAllTypes(cancellationToken)) 568private static bool IsAttributeValidForTargets(INamedTypeSymbol attributeType, AttributeTargets validTargets) 595return ((INamedTypeSymbol)symbol).GetMembers().OfType<IPropertySymbol>().Where(p => p.CanBeReferencedByName); 870public static bool HasAttribute([NotNullWhen(true)] this ISymbol? symbol, [NotNullWhen(true)] INamedTypeSymbol? attributeClass)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\ISymbolExtensions.RequiresUnsafeModifierVisitor.cs (1)
56public override bool VisitNamedType(INamedTypeSymbol symbol)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\ISymbolExtensions_Accessibility.cs (25)
27else if (within is INamedTypeSymbol namedType) 54INamedTypeSymbol within, 67INamedTypeSymbol within, 92Debug.Assert(within is INamedTypeSymbol or IAssemblySymbol); 124return IsNamedTypeAccessible((INamedTypeSymbol)symbol, within); 177private static bool IsNamedTypeAccessible(INamedTypeSymbol type, ISymbol within) 179Debug.Assert(within is INamedTypeSymbol or IAssemblySymbol); 204var containingType = type.ContainingType; 217Debug.Assert(within is INamedTypeSymbol or IAssemblySymbol); 219var withinAssembly = (within as IAssemblySymbol) ?? ((INamedTypeSymbol)within).ContainingAssembly; 248INamedTypeSymbol containingType, 254Debug.Assert(within is INamedTypeSymbol or IAssemblySymbol); 259var originalContainingType = containingType.OriginalDefinition; 260var withinNamedType = within as INamedTypeSymbol; 261var withinAssembly = (within as IAssemblySymbol) ?? ((INamedTypeSymbol)within).ContainingAssembly; 334INamedTypeSymbol? withinType, 337INamedTypeSymbol originalContainingType, 375var current = withinType.OriginalDefinition; 411INamedTypeSymbol originalContainingType) 413Debug.Assert(within is INamedTypeSymbol or IAssemblySymbol); 415if (within is not INamedTypeSymbol withinType) 428INamedTypeSymbol withinType, 429INamedTypeSymbol originalContainingType) 436var current = withinType.OriginalDefinition;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\ITypeGenerator.cs (1)
13ITypeSymbol Construct(INamedTypeSymbol namedType, ITypeSymbol[] typeArguments);
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\ITypeParameterSymbolExtensions.cs (4)
14public static INamedTypeSymbol? GetNamedTypeSymbolConstraint(this ITypeParameterSymbol typeParameter) 17private static INamedTypeSymbol? GetNamedTypeSymbol(ITypeSymbol type) 19return type is INamedTypeSymbol 20? (INamedTypeSymbol)type
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\ITypeSymbolExtensions.AnonymousTypeRemover.cs (1)
42public override ITypeSymbol VisitNamedType(INamedTypeSymbol symbol)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\ITypeSymbolExtensions.CollectTypeParameterSymbolsVisitor.cs (1)
57public override void VisitNamedType(INamedTypeSymbol symbol)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\ITypeSymbolExtensions.CompilationTypeGenerator.cs (1)
19public ITypeSymbol Construct(INamedTypeSymbol namedType, ITypeSymbol[] typeArguments)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\ITypeSymbolExtensions.cs (30)
43public static ImmutableArray<INamedTypeSymbol> GetAllInterfacesIncludingThis(this ITypeSymbol type) 46return type is INamedTypeSymbol { TypeKind: TypeKind.Interface } namedType && !allInterfaces.Contains(namedType) 69underlyingType = ((INamedTypeSymbol)symbol).TypeArguments[0]; 92public static bool IsAnonymousType([NotNullWhen(returnValue: true)] this INamedTypeSymbol? symbol) 95private static HashSet<INamedTypeSymbol> GetOriginalInterfacesAndTheirBaseInterfaces( 97HashSet<INamedTypeSymbol>? symbols = null) 99symbols ??= new HashSet<INamedTypeSymbol>(SymbolEquivalenceComparer.Instance); 101foreach (var interfaceType in type.Interfaces) 120public static IEnumerable<INamedTypeSymbol> GetBaseTypes(this ITypeSymbol? type) 122var current = type?.BaseType; 140public static IEnumerable<INamedTypeSymbol> GetContainingTypes(this ITypeSymbol type) 142var current = type.ContainingType; 198var currentBaseType = type.BaseType; 227for (var b = symbol.BaseType; b != null; b = b.BaseType) 316INamedTypeSymbol n => ContainsAnonymousType(n), 321private static bool ContainsAnonymousType(INamedTypeSymbol type) 417public static INamedTypeSymbol? GetDelegateType(this ITypeSymbol? typeSymbol, Compilation compilation) 421var expressionOfT = compilation.ExpressionOfTType(); 424var typeArgument = ((INamedTypeSymbol)typeSymbol).TypeArguments[0]; 425return typeArgument as INamedTypeSymbol; 430return typeSymbol as INamedTypeSymbol; 583var n2 = t2 as INamedTypeSymbol; 585if (t1 is not INamedTypeSymbol n1) 635public static bool IsEnumType([NotNullWhen(true)] this ITypeSymbol? type, [NotNullWhen(true)] out INamedTypeSymbol? enumType) 639enumType = (INamedTypeSymbol)type; 731if (type is not INamedTypeSymbol 784=> type is INamedTypeSymbol 792=> symbol is INamedTypeSymbol 800=> type is INamedTypeSymbol namedType &&
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\ITypeSymbolExtensions.MinimalAccessibilityVisitor.cs (2)
42foreach (var callingConventionType in symbol.Signature.UnmanagedCallingConventionTypes) 50public override Accessibility VisitNamedType(INamedTypeSymbol symbol)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\ITypeSymbolExtensions.SubstituteTypesVisitor.cs (1)
58public override ITypeSymbol VisitNamedType(INamedTypeSymbol symbol)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\ITypeSymbolExtensions.UnavailableTypeParameterRemover.cs (1)
43public override ITypeSymbol VisitNamedType(INamedTypeSymbol symbol)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\ITypeSymbolExtensions.UnnamedErrorTypeRemover.cs (1)
42public override ITypeSymbol VisitNamedType(INamedTypeSymbol symbol)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\SymbolEquivalenceComparer.cs (12)
149public bool ReturnTypeEquals(IMethodSymbol x, IMethodSymbol y, Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies = null) 164public bool Equals(ISymbol? x, ISymbol? y, Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies) 170private bool EqualsCore(ISymbol? x, ISymbol? y, Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies) 191private static bool IsConstructedFromSelf(INamedTypeSymbol symbol) 213private static OneOrMany<INamedTypeSymbol> Unwrap(INamedTypeSymbol namedType) 219using var builder = TemporaryArray<INamedTypeSymbol>.Empty; 224if (candidate is INamedTypeSymbol candidateType) 257private static TypeKind GetTypeKind(INamedTypeSymbol x)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\SymbolEquivalenceComparer.EquivalenceVisitor.cs (65)
22public bool AreEquivalent(ISymbol? x, ISymbol? y, Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies) 51return AreArrayAndReadOnlySpanEquivalent((IArrayTypeSymbol)x, (INamedTypeSymbol)y, equivalentTypesWithDifferingAssemblies); 55return AreArrayAndReadOnlySpanEquivalent((IArrayTypeSymbol)y, (INamedTypeSymbol)x, equivalentTypesWithDifferingAssemblies); 65private bool AreArrayAndReadOnlySpanEquivalent(IArrayTypeSymbol array, INamedTypeSymbol readOnlySpanType, Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies) 73internal bool AreEquivalent(CustomModifier x, CustomModifier y, Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies) 76internal bool AreEquivalent(ImmutableArray<CustomModifier> x, ImmutableArray<CustomModifier> y, Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies) 112private bool AreEquivalentWorker(ISymbol x, ISymbol y, SymbolKind k, Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies) 126SymbolKind.NamedType => NamedTypesAreEquivalent((INamedTypeSymbol)x, (INamedTypeSymbol)y, equivalentTypesWithDifferingAssemblies), 127SymbolKind.ErrorType => NamedTypesAreEquivalent((INamedTypeSymbol)x, (INamedTypeSymbol)y, equivalentTypesWithDifferingAssemblies), 140private bool ArrayTypesAreEquivalent(IArrayTypeSymbol x, IArrayTypeSymbol y, Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies) 152private bool FieldsAreEquivalent(IFieldSymbol x, IFieldSymbol y, Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies) 170private bool MethodsAreEquivalent(IMethodSymbol x, IMethodSymbol y, Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies, bool considerReturnRefKinds = false) 281private bool NamedTypesAreEquivalent(INamedTypeSymbol x, INamedTypeSymbol y, Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies) 301private bool NamedTypesAreEquivalentError(INamedTypeSymbol x, INamedTypeSymbol y, Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies) 303foreach (var type1 in Unwrap(x)) 306foreach (var type2 in Unwrap(y)) 330private bool HandleNamedTypesWorker(INamedTypeSymbol x, INamedTypeSymbol y, Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies) 418private bool HandleTupleTypes(INamedTypeSymbol x, INamedTypeSymbol y, Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies) 463Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies, 486internal bool ReturnTypesAreEquivalent(IMethodSymbol x, IMethodSymbol y, Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies = null) 492private bool TypeArgumentsAreEquivalent(ImmutableArray<ITypeSymbol> xTypeArguments, ImmutableArray<ITypeSymbol> yTypeArguments, Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies) 511private bool HandleAnonymousTypes(INamedTypeSymbol x, INamedTypeSymbol y, Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies) 547private bool NamespacesAreEquivalent(INamespaceSymbol x, INamespaceSymbol y, Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies) 564private bool ParametersAreEquivalent(IParameterSymbol x, IParameterSymbol y, Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies) 574private bool PointerTypesAreEquivalent(IPointerTypeSymbol x, IPointerTypeSymbol y, Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies) 581private bool FunctionPointerTypesAreEquivalent(IFunctionPointerTypeSymbol x, IFunctionPointerTypeSymbol y, Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies) 584private bool PropertiesAreEquivalent(IPropertySymbol x, IPropertySymbol y, Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies) 608private bool EventsAreEquivalent(IEventSymbol x, IEventSymbol y, Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies) 617private bool TypeParametersAreEquivalent(ITypeParameterSymbol x, ITypeParameterSymbol y, Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\SymbolEquivalenceComparer.GetHashCodeVisitor.cs (5)
70SymbolKind.NamedType => CombineHashCodes((INamedTypeSymbol)x, currentHash), 146private int CombineHashCodes(INamedTypeSymbol x, int currentHash) 154if (candidate is INamedTypeSymbol candidateNamedType) 164private int CombineNamedTypeHashCode(INamedTypeSymbol x, int currentHash) 193private int CombineAnonymousTypeHashCode(INamedTypeSymbol x, int currentHash)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\SymbolEquivalenceComparer.ParameterSymbolEqualityComparer.cs (2)
23Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies,
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\SymbolEquivalenceComparer.SignatureTypeSymbolEquivalenceComparer.cs (2)
18public bool Equals(ITypeSymbol? x, ITypeSymbol? y, Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\AbstractCodeGenerationService.cs (15)
59public TDeclarationNode AddNamedType<TDeclarationNode>(TDeclarationNode destination, INamedTypeSymbol namedType, CodeGenerationContextInfo info, CancellationToken cancellationToken) where TDeclarationNode : SyntaxNode 88public SyntaxNode CreateNamedTypeDeclaration(INamedTypeSymbol namedType, CodeGenerationDestination destination, CodeGenerationContextInfo info, CancellationToken cancellationToken) 127protected abstract TDeclarationNode AddNamedType<TDeclarationNode>(TDeclarationNode destination, INamedTypeSymbol namedType, TCodeGenerationContextInfo info, IList<bool>? availableIndices, CancellationToken cancellationToken) where TDeclarationNode : SyntaxNode; 150public abstract SyntaxNode CreateNamedTypeDeclaration(INamedTypeSymbol namedType, CodeGenerationDestination destination, TCodeGenerationContextInfo info, CancellationToken cancellationToken); 349INamedTypeSymbol namedType => CreateNamedTypeDeclaration(namedType, codeGenerationDestination, info, cancellationToken), 367INamedTypeSymbol namedType => AddNamedType(currentDestination, namedType, info, availableIndices, cancellationToken), 392CodeGenerationSolutionContext context, INamedTypeSymbol destination, IEventSymbol @event, CancellationToken cancellationToken) 401public Task<Document> AddFieldAsync(CodeGenerationSolutionContext context, INamedTypeSymbol destination, IFieldSymbol field, CancellationToken cancellationToken) 410public Task<Document> AddPropertyAsync(CodeGenerationSolutionContext context, INamedTypeSymbol destination, IPropertySymbol property, CancellationToken cancellationToken) 419public Task<Document> AddNamedTypeAsync(CodeGenerationSolutionContext context, INamedTypeSymbol destination, INamedTypeSymbol namedType, CancellationToken cancellationToken) 428public Task<Document> AddNamedTypeAsync(CodeGenerationSolutionContext context, INamespaceSymbol destination, INamedTypeSymbol namedType, CancellationToken cancellationToken) 446public Task<Document> AddMethodAsync(CodeGenerationSolutionContext context, INamedTypeSymbol destination, IMethodSymbol method, CancellationToken cancellationToken) 455public Task<Document> AddMembersAsync(CodeGenerationSolutionContext context, INamedTypeSymbol destination, IEnumerable<ISymbol> members, CancellationToken cancellationToken) 477return AddNamedTypeAsync(context, destination, (INamedTypeSymbol)namespaceOrType, cancellationToken);
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\AbstractFlagsEnumGenerator.cs (10)
14protected abstract SyntaxNode CreateExplicitlyCastedLiteralValue(INamedTypeSymbol enumType, SpecialType underlyingSpecialType, object constantValue); 15protected abstract bool IsValidName(INamedTypeSymbol enumType, string name); 19public SyntaxNode CreateEnumConstantValue(INamedTypeSymbol enumType, object constantValue) 35private static bool IsFlagsEnum(INamedTypeSymbol typeSymbol) 47var type = ctor.ContainingType; 60private SyntaxNode CreateFlagsEnumConstantValue(INamedTypeSymbol enumType, object constantValue) 71INamedTypeSymbol enumType, 137IFieldSymbol field, INamedTypeSymbol enumType, SpecialType underlyingSpecialType) 167INamedTypeSymbol enumType, 184private SyntaxNode CreateNonFlagsEnumConstantValue(INamedTypeSymbol enumType, object constantValue)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\CodeGenerationHelpers.cs (2)
25var exceptionType = compilation.GetTypeByMetadataName(exceptionMetadataName); 150public static IEnumerable<ISymbol> GetMembers(INamedTypeSymbol namedType)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\CodeGenerationSymbolFactory.cs (14)
43INamedTypeSymbol? containingType, 148INamedTypeSymbol? containingType, 222INamedTypeSymbol? containingType = null, 250INamedTypeSymbol? containingType = null, 404INamedTypeSymbol attributeClass, 414public static INamedTypeSymbol CreateNamedTypeSymbol( 420INamedTypeSymbol? baseType = null, 421ImmutableArray<INamedTypeSymbol> interfaces = default, 433public static INamedTypeSymbol CreateNamedTypeSymbol( 439INamedTypeSymbol? baseType = null, 440ImmutableArray<INamedTypeSymbol> interfaces = default, 451members.WhereAsArray(m => m is not INamedTypeSymbol), 452[.. members.OfType<INamedTypeSymbol>().Select(n => n.ToCodeGenerationSymbol())], 519INamedTypeSymbol? containingType = null,
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\CodeGenerator.cs (8)
30public static Task<Document> AddEventDeclarationAsync(CodeGenerationSolutionContext context, INamedTypeSymbol destination, IEventSymbol @event, CancellationToken cancellationToken) 37public static Task<Document> AddFieldDeclarationAsync(CodeGenerationSolutionContext context, INamedTypeSymbol destination, IFieldSymbol field, CancellationToken cancellationToken) 44public static Task<Document> AddMethodDeclarationAsync(CodeGenerationSolutionContext context, INamedTypeSymbol destination, IMethodSymbol method, CancellationToken cancellationToken) 51public static Task<Document> AddPropertyDeclarationAsync(CodeGenerationSolutionContext context, INamedTypeSymbol destination, IPropertySymbol property, CancellationToken cancellationToken) 58public static Task<Document> AddNamedTypeDeclarationAsync(CodeGenerationSolutionContext context, INamedTypeSymbol destination, INamedTypeSymbol namedType, CancellationToken cancellationToken) 65public static Task<Document> AddNamedTypeDeclarationAsync(CodeGenerationSolutionContext context, INamespaceSymbol destination, INamedTypeSymbol namedType, CancellationToken cancellationToken) 86public static Task<Document> AddMemberDeclarationsAsync(CodeGenerationSolutionContext context, INamedTypeSymbol destination, IEnumerable<ISymbol> members, CancellationToken cancellationToken)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\ICodeGenerationService.cs (10)
43SyntaxNode CreateNamedTypeDeclaration(INamedTypeSymbol namedType, CodeGenerationDestination destination, CodeGenerationContextInfo info, CancellationToken cancellationToken); 73TDeclarationNode AddNamedType<TDeclarationNode>(TDeclarationNode destination, INamedTypeSymbol namedType, CodeGenerationContextInfo info, CancellationToken cancellationToken) where TDeclarationNode : SyntaxNode; 133Task<Document> AddEventAsync(CodeGenerationSolutionContext context, INamedTypeSymbol destination, IEventSymbol @event, CancellationToken cancellationToken); 138Task<Document> AddFieldAsync(CodeGenerationSolutionContext context, INamedTypeSymbol destination, IFieldSymbol field, CancellationToken cancellationToken); 143Task<Document> AddMethodAsync(CodeGenerationSolutionContext context, INamedTypeSymbol destination, IMethodSymbol method, CancellationToken cancellationToken); 148Task<Document> AddPropertyAsync(CodeGenerationSolutionContext context, INamedTypeSymbol destination, IPropertySymbol property, CancellationToken cancellationToken); 153Task<Document> AddNamedTypeAsync(CodeGenerationSolutionContext context, INamedTypeSymbol destination, INamedTypeSymbol namedType, CancellationToken cancellationToken); 158Task<Document> AddNamedTypeAsync(CodeGenerationSolutionContext context, INamespaceSymbol destination, INamedTypeSymbol namedType, CancellationToken cancellationToken); 173Task<Document> AddMembersAsync(CodeGenerationSolutionContext context, INamedTypeSymbol destination, IEnumerable<ISymbol> members, CancellationToken cancellationToken);
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\INamedTypeSymbolExtensions.cs (2)
11public static CodeGenerationAbstractNamedTypeSymbol ToCodeGenerationSymbol(this INamedTypeSymbol namedType) 32namedType.GetMembers().WhereAsArray(s => s is not INamedTypeSymbol),
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\Symbols\CodeGenerationAbstractMethodSymbol.cs (3)
23INamedTypeSymbol containingType, 98public INamedTypeSymbol AssociatedAnonymousDelegate => null; 110public ImmutableArray<INamedTypeSymbol> UnmanagedCallingConventionTypes => [];
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\Symbols\CodeGenerationAbstractNamedTypeSymbol.cs (10)
16public new INamedTypeSymbol OriginalDefinition { get; protected set; } 24INamedTypeSymbol containingType, 53public INamedTypeSymbol Construct(params ITypeSymbol[] typeArguments) 64public INamedTypeSymbol Construct(ImmutableArray<ITypeSymbol> typeArguments, ImmutableArray<NullableAnnotation> typeArgumentNullableAnnotations) 77public abstract INamedTypeSymbol EnumUnderlyingType { get; } 79INamedTypeSymbol INamedTypeSymbol.ConstructedFrom => this.ConstructedFrom; 80public abstract INamedTypeSymbol ConstructUnboundGenericType(); 119public INamedTypeSymbol NativeIntegerUnderlyingType => null; 121public INamedTypeSymbol TupleUnderlyingType => null;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\Symbols\CodeGenerationAttributeData.cs (2)
13INamedTypeSymbol attributeClass, 20protected override INamedTypeSymbol CommonAttributeClass => attributeClass;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\Symbols\CodeGenerationConstructedNamedTypeSymbol.cs (4)
51public override INamedTypeSymbol EnumUnderlyingType 57public override INamedTypeSymbol ConstructUnboundGenericType() 87public override ImmutableArray<INamedTypeSymbol> GetTypeMembers() 90return [.. _constructedFrom.TypeMembers.Cast<INamedTypeSymbol>()];
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\Symbols\CodeGenerationConstructorSymbol.cs (1)
11INamedTypeSymbol? containingType,
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\Symbols\CodeGenerationConversionSymbol.cs (1)
11INamedTypeSymbol? containingType,
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\Symbols\CodeGenerationDestructorSymbol.cs (1)
10INamedTypeSymbol? containingType,
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\Symbols\CodeGenerationEventSymbol.cs (1)
12INamedTypeSymbol? containingType,
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\Symbols\CodeGenerationFieldSymbol.cs (1)
13INamedTypeSymbol containingType,
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\Symbols\CodeGenerationMethodSymbol.cs (1)
23INamedTypeSymbol containingType,
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\Symbols\CodeGenerationNamedTypeSymbol.cs (11)
19private readonly ImmutableArray<INamedTypeSymbol> _interfaces; 24INamedTypeSymbol containingType, 32INamedTypeSymbol baseType, 33ImmutableArray<INamedTypeSymbol> interfaces, 38INamedTypeSymbol enumUnderlyingType) 101public override INamedTypeSymbol EnumUnderlyingType { get; } 111public override INamedTypeSymbol ConstructUnboundGenericType() 147public override INamedTypeSymbol BaseType { get; } 149public override ImmutableArray<INamedTypeSymbol> Interfaces 160public override ImmutableArray<INamedTypeSymbol> GetTypeMembers() 161=> [.. this.TypeMembers.Cast<INamedTypeSymbol>()];
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\Symbols\CodeGenerationNamespaceOrTypeSymbol.cs (4)
14INamedTypeSymbol containingType, 29public virtual ImmutableArray<INamedTypeSymbol> GetTypeMembers() 32public ImmutableArray<INamedTypeSymbol> GetTypeMembers(string name) 35public ImmutableArray<INamedTypeSymbol> GetTypeMembers(string name, int arity)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\Symbols\CodeGenerationNamespaceSymbol.cs (1)
57public static INamedTypeSymbol ImplicitType => null;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\Symbols\CodeGenerationOperatorSymbol.cs (1)
11INamedTypeSymbol? containingType,
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\Symbols\CodeGenerationParameterSymbol.cs (1)
13INamedTypeSymbol containingType,
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\Symbols\CodeGenerationPropertySymbol.cs (1)
13INamedTypeSymbol containingType,
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\Symbols\CodeGenerationSymbol.cs (3)
27public INamedTypeSymbol ContainingType { get; protected set; } 31INamedTypeSymbol containingType, 162public ImmutableArray<AttributeData> GetAttributes(INamedTypeSymbol attributeType)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\Symbols\CodeGenerationTypeParameterSymbol.cs (3)
12INamedTypeSymbol containingType, 80public INamedTypeSymbol DeclaringType 84return this.ContainingSymbol as INamedTypeSymbol;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\Symbols\CodeGenerationTypeSymbol.cs (4)
14INamedTypeSymbol containingType, 27public virtual INamedTypeSymbol BaseType => null; 29public virtual ImmutableArray<INamedTypeSymbol> Interfaces 32public ImmutableArray<INamedTypeSymbol> AllInterfaces
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\TypeGenerator.cs (1)
21public ITypeSymbol Construct(INamedTypeSymbol namedType, ITypeSymbol[] typeArguments)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\Editing\ImportAdderService.cs (2)
202foreach (var namedType in SymbolAnnotation.GetSymbols(annotation, model.Compilation).OfType<INamedTypeSymbol>())
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\Extensions\IMethodSymbolExtensions.cs (3)
19this IMethodSymbol method, INamedTypeSymbol containingType, ISyntaxFactsService syntaxFacts) 143params INamedTypeSymbol[] removeAttributeTypes) 172static bool shouldRemoveAttribute(AttributeData a, (INamedTypeSymbol[] removeAttributeTypes, ISymbol accessibleWithin) arg)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\Extensions\IPropertySymbolExtensions.cs (2)
41this IPropertySymbol property, ISymbol accessibleWithin, params INamedTypeSymbol[] attributesToRemove) 69static bool ShouldRemoveAttribute(AttributeData a, (INamedTypeSymbol[] attributesToRemove, ISymbol accessibleWithin) arg)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\Extensions\ITypeInferenceServiceExtensions.cs (3)
27public static INamedTypeSymbol? InferDelegateType( 37public static INamedTypeSymbol? InferDelegateType( 47private static INamedTypeSymbol? GetFirstDelegateType(SemanticModel semanticModel, ImmutableArray<ITypeSymbol> types)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\Extensions\SyntaxGeneratorExtensions.cs (4)
39var notImplementedExceptionTypeSyntax = compilation.NotImplementedExceptionType() is INamedTypeSymbol symbol 72var equalityComparerType = compilation.EqualityComparerOfTType(); 176var classOrStructType = throughMember.ContainingType; 441var type = compilation.GetTypeByMetadataName(typeof(ArgumentNullException).FullName!);
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\Extensions\SyntaxGeneratorExtensions_CreateEqualsMethod.cs (11)
29INamedTypeSymbol containingType, 79INamedTypeSymbol containingType, 81INamedTypeSymbol constructedEquatableType, 125INamedTypeSymbol containingType, 243var iequatableType = compilation.GetTypeByMetadataName(typeof(IEquatable<>).FullName); 296INamedTypeSymbol containingType, 407private static bool ImplementsIEquatable(ITypeSymbol memberType, INamedTypeSymbol? iequatableType) 413var constructed = iequatableType.Construct(memberType); 458private static bool HasExistingBaseEqualsMethod(INamedTypeSymbol containingType) 481INamedTypeSymbol? containingType, 515INamedTypeSymbol? containingType,
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\Extensions\SyntaxGeneratorExtensions_CreateGetHashCodeMethod.cs (5)
21INamedTypeSymbol? containingType, 43INamedTypeSymbol hashCodeType, ImmutableArray<SyntaxNode> memberReferences) 83INamedTypeSymbol containingType, 179this SyntaxGenerator generator, SyntaxGeneratorInternal generatorInternal, INamedTypeSymbol namedTypeSymbol, 192public static IMethodSymbol? GetBaseGetHashCodeMethod(INamedTypeSymbol containingType)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\Extensions\SyntaxGeneratorExtensions_Negate.cs (1)
444var containingType = property.ContainingType;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\LanguageServices\InitializeParameter\InitializeParameterHelpersCore.cs (5)
66var containingType = parameter.ContainingType; 84var containingType = parameter.ContainingType; 146IOperation? operation, INamedTypeSymbol containingType, 163public static bool IsFieldOrPropertyAssignment(IOperation statement, INamedTypeSymbol containingType, [NotNullWhen(true)] out IAssignmentOperation? assignmentExpression) 167IOperation statement, INamedTypeSymbol containingType,
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\LanguageServices\SemanticsFactsService\AbstractSemanticFactsService.cs (7)
129var valueTaskType = compilation.ValueTaskType(); 165(INamedTypeSymbol?, IMethodSymbol?) GetIDisposableInterfaceAndDisposeMethod(string typeName, string methodName) 167var disposableType = compilation.GetBestTypeByMetadataName(typeName); 201public bool LastEnumValueHasInitializer(INamedTypeSymbol namedTypeSymbol) 225public bool IsPartial(INamedTypeSymbol typeSymbol, CancellationToken cancellationToken) 252public bool IsInExpressionTree(SemanticModel semanticModel, SyntaxNode node, INamedTypeSymbol? expressionTypeOpt, CancellationToken cancellationToken) 261public bool TryGetPrimaryConstructor(INamedTypeSymbol typeSymbol, [NotNullWhen(true)] out IMethodSymbol? primaryConstructor)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\LanguageServices\SyntaxGeneratorInternalExtensions\SyntaxGeneratorInternal.cs (1)
123public abstract SyntaxNode DeclarationPattern(INamedTypeSymbol type, string name);
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\LanguageServices\TypeInferenceService\AbstractTypeInferenceService.AbstractTypeInferrer.cs (1)
102protected static IEnumerable<TypeInferenceInfo> GetCollectionElementType(INamedTypeSymbol type)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\Simplification\SimplificationHelpers.cs (1)
80var typeSymbol = semanticModel.Compilation.GetSpecialType(specialType);
SymbolDeclaredEventMustBeGeneratedForSourceSymbols.cs (14)
54INamedTypeSymbol? symbolType = compilationContext.Compilation.GetOrCreateTypeByMetadataName(s_fullNameOfSymbol); 69protected abstract CompilationAnalyzer? GetCompilationAnalyzer(Compilation compilation, INamedTypeSymbol symbolType); 73private readonly INamedTypeSymbol _symbolType; 74private readonly INamedTypeSymbol _compilationType; 75private readonly ConcurrentDictionary<INamedTypeSymbol, UnusedValue> _sourceSymbolsToCheck = new(); 76private readonly ConcurrentDictionary<INamedTypeSymbol, UnusedValue> _typesWithSymbolDeclaredEventInvoked = new(); 81protected CompilationAnalyzer(INamedTypeSymbol symbolType, INamedTypeSymbol compilationType) 141var namedType = (INamedTypeSymbol)type; 154var namedType = (INamedTypeSymbol)context.Symbol; 172foreach ((INamedTypeSymbol sourceSymbol, _) in _sourceSymbolsToCheck) 175foreach (INamedTypeSymbol type in sourceSymbol.GetBaseTypesAndThis())
TemporaryArrayAsRefAnalyzer.cs (1)
43var temporaryArrayExtensions = context.Compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.MicrosoftCodeAnalysisSharedCollectionsTemporaryArrayExtensions);
TestExportsShouldNotBeDiscoverable.cs (8)
49var exportAttributeV1 = compilationContext.Compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemComponentModelCompositionExportAttribute); 50var exportAttributeV2 = compilationContext.Compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemCompositionExportAttribute); 51var inheritedExportAttribute = compilationContext.Compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemComponentModelCompositionInheritedExportAttribute); 52var attributeUsageAttribute = compilationContext.Compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemAttributeUsageAttribute); 62var namedType = (INamedTypeSymbol)symbolContext.Symbol; 72private static void AnalyzeSymbolForAttribute(ref SymbolAnalysisContext context, INamedTypeSymbol? exportAttribute, INamedTypeSymbol namedType, IEnumerable<AttributeData> exportAttributes, IEnumerable<AttributeData> namedTypeAttributes)
TestExportsShouldNotBeDiscoverableCodeFixProvider.cs (4)
71INamedTypeSymbol? partNotDiscoverableAttributeSymbol = null; 74INamedTypeSymbol? exportAttributeSymbol = null; 75foreach (var attributeClass in attributeData.AttributeClass.GetBaseTypesAndThis()) 79exportAttributeSymbol = (INamedTypeSymbol)attributeClass;
Roslyn.Diagnostics.CSharp.Analyzers (113)
CSharpDoNotUseDebugAssertForInterpolatedStrings.cs (1)
40var debugType = context.Compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemDiagnosticsDebug);
CSharpDoNotUseDebugAssertForInterpolatedStringsFixer.cs (2)
38var roslynDebugSymbol = compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.RoslynDebug); 56private static async Task<Document> ReplaceWithDebugAssertAsync(Document document, Location location, INamedTypeSymbol roslynDebugSymbol, CancellationToken cancellationToken)
CSharpSpecializedEnumerableCreationAnalyzer.cs (4)
21protected override void GetCodeBlockStartedAnalyzer(CompilationStartAnalysisContext context, INamedTypeSymbol genericEnumerableSymbol, IMethodSymbol genericEmptyEnumerableSymbol) 28public CodeBlockStartedAnalyzer(INamedTypeSymbol genericEnumerableSymbol, IMethodSymbol genericEmptyEnumerableSymbol) 33protected override void GetSyntaxAnalyzer(CodeBlockStartAnalysisContext<SyntaxKind> context, INamedTypeSymbol genericEnumerableSymbol, IMethodSymbol genericEmptyEnumerableSymbol) 41public SyntaxAnalyzer(INamedTypeSymbol genericEnumerableSymbol, IMethodSymbol genericEmptyEnumerableSymbol)
CSharpSymbolDeclaredEventMustBeGeneratedForSourceSymbols.cs (4)
29protected override CompilationAnalyzer? GetCompilationAnalyzer(Compilation compilation, INamedTypeSymbol symbolType) 31INamedTypeSymbol? compilationType = compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.MicrosoftCodeAnalysisCSharpCSharpCompilation); 44public CSharpCompilationAnalyzer(INamedTypeSymbol symbolType, INamedTypeSymbol compilationType)
PreferNullLiteral.cs (1)
67if (type is not INamedTypeSymbol namedType
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\CodeStyle\TypeStyle\TypeStyleHelper.cs (5)
44var tupleType = (INamedTypeSymbol)typeInDeclaration; 126if (semanticModel.GetTypeInfo(containingTypeName, cancellationToken).Type is not INamedTypeSymbol containingType) 140INamedTypeSymbol containingType) 187if (symbol is not INamedTypeSymbol namedTypeSymbol)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Extensions\ExpressionSyntaxExtensions.cs (3)
1010lambda.GetTargetType(semanticModel, cancellationToken) is INamedTypeSymbol { DelegateInvokeMethod.ReturnType: var returnType } ? returnType : null; 1042var ienumerableType = semanticModel.Compilation.IEnumerableOfTType(); 1046foreach (var iface in collectionTargetType.AllInterfaces)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Extensions\ITypeSymbolExtensions.cs (1)
40public static bool TryGetPrimaryConstructor(this INamedTypeSymbol typeSymbol, [NotNullWhen(true)] out IMethodSymbol? primaryConstructor)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Extensions\SemanticModelExtensions.cs (3)
210var containingType = semanticModel.GetDeclaredSymbol(type.GetAncestor<BaseTypeDeclarationSyntax>(), cancellationToken); 331var symbol = semanticModel.GetDeclaredSymbol(typeDeclaration, cancellationToken); 459public static INamedTypeSymbol GetRequiredDeclaredSymbol(this SemanticModel semanticModel, BaseTypeDeclarationSyntax syntax, CancellationToken cancellationToken)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Extensions\SyntaxNodeExtensions.cs (2)
789[NotNullWhen(true)] INamedTypeSymbol? expressionType, 822static bool TakesExpressionTree(SymbolInfo info, INamedTypeSymbol expressionType)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Services\SemanticFacts\CSharpSemanticFacts.cs (5)
102public bool LastEnumValueHasInitializer(INamedTypeSymbol namedTypeSymbol) 239public bool IsPartial(INamedTypeSymbol typeSymbol, CancellationToken cancellationToken) 294var type = model.Compilation.TryGetCallingConventionSymbol(syntax.Name.ValueText); 455public bool IsInExpressionTree(SemanticModel semanticModel, SyntaxNode node, [NotNullWhen(true)] INamedTypeSymbol? expressionType, CancellationToken cancellationToken) 484public bool TryGetPrimaryConstructor(INamedTypeSymbol typeSymbol, [NotNullWhen(true)] out IMethodSymbol? primaryConstructor)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Simplification\Simplifiers\CastSimplifier.cs (9)
128var enumType = semanticModel.GetTypeInfo(castExpression.Expression, cancellationToken).Type as INamedTypeSymbol; 163var enumType = semanticModel.GetTypeInfo(castExpression.Expression, cancellationToken).Type as INamedTypeSymbol; 655if (castedType is not INamedTypeSymbol namedCastedType || 656originalConvertedType is not INamedTypeSymbol originalNamedConvertedType) 1098if (conversionOperation.Operand.Type is not INamedTypeSymbol original) 1107for (var type = original; type != null; type = type.BaseType) 1492var rewrittenContainingType = rewrittenMemberSymbol.ContainingType;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Utilities\TypeStyle\CSharpUseImplicitTypeHelper.cs (1)
101if (conflict is INamedTypeSymbol)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\CodeGeneration\CSharpCodeGenerationService.cs (5)
63CodeGenerationSolutionContext context, INamedTypeSymbol destination, IEventSymbol @event, CancellationToken cancellationToken) 68var namedType = @event.Type as INamedTypeSymbol; 247protected override TDeclarationNode AddNamedType<TDeclarationNode>(TDeclarationNode destination, INamedTypeSymbol namedType, CSharpCodeGenerationContextInfo info, IList<bool>? availableIndices, CancellationToken cancellationToken) 729INamedTypeSymbol namedType, CodeGenerationDestination destination, CSharpCodeGenerationContextInfo info, CancellationToken cancellationToken)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\CodeGeneration\CSharpFlagsEnumGenerator.cs (2)
22INamedTypeSymbol enumType, 39protected override bool IsValidName(INamedTypeSymbol enumType, string name)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\CodeGeneration\EnumMemberGenerator.cs (3)
159var namedType = enumMember.Type as INamedTypeSymbol; 160var underlyingType = namedType?.EnumUnderlyingType;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\CodeGeneration\ExpressionGenerator.cs (1)
60if (type is INamedTypeSymbol { TypeKind: TypeKind.Enum } enumType)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\CodeGeneration\MethodGenerator.cs (1)
365if (method.IsReadOnly && (method.ContainingSymbol as INamedTypeSymbol)?.IsReadOnly != true)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\CodeGeneration\NamedTypeGenerator.cs (14)
27INamedTypeSymbol namedType, 41INamedTypeSymbol namedType, 56INamedTypeSymbol namedType, 72INamedTypeSymbol namedType, 154INamedTypeSymbol namedType, 184INamedTypeSymbol namedType, 228INamedTypeSymbol namedType, 246INamedTypeSymbol namedType, 263INamedTypeSymbol namedType, CSharpCodeGenerationContextInfo info) 269INamedTypeSymbol namedType, 313INamedTypeSymbol namedType, CSharpCodeGenerationContextInfo info) 318private static BaseListSyntax? GenerateBaseList(INamedTypeSymbol namedType) 324foreach (var type in namedType.Interfaces) 333private static SyntaxList<TypeParameterConstraintClauseSyntax> GenerateConstraintClauses(INamedTypeSymbol namedType)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\Editing\CSharpImportAdder.cs (1)
112foreach (var type in ns.GetTypeMembers())
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\Extensions\ContextQuery\SyntaxTreeExtensions.cs (4)
1042INamedTypeSymbol nt => nt.Arity > 0, 1051return symbols.All(static s => s is INamedTypeSymbol or IMethodSymbol); 2895var delegateType = CSharpTypeInferenceService.Instance.InferDelegateType( 3069return ((INamedTypeSymbol)symbol).TypeKind == TypeKind.Enum;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\Extensions\ITypeSymbolExtensions.ExpressionSyntaxGeneratorVisitor.cs (1)
41public override ExpressionSyntax VisitNamedType(INamedTypeSymbol symbol)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\Extensions\ITypeSymbolExtensions.TypeSyntaxGeneratorVisitor.cs (5)
122public static bool TryCreateNativeIntegerType(INamedTypeSymbol symbol, [NotNullWhen(true)] out TypeSyntax? syntax) 178public TypeSyntax CreateSimpleTypeSyntax(INamedTypeSymbol symbol) 218private static TypeSyntax? TryCreateSpecializedNamedTypeSyntax(INamedTypeSymbol symbol) 244private static TupleTypeSyntax CreateTupleTypeSyntax(INamedTypeSymbol symbol) 257public override TypeSyntax VisitNamedType(INamedTypeSymbol symbol)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\Extensions\TypeDeclarationSyntaxExtensions.cs (1)
76var typeSymbol = model.GetRequiredDeclaredSymbol(typeNode, cancellationToken);
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\Extensions\WithElementSyntaxExtensions.cs (6)
24var within = semanticModel.GetEnclosingNamedType(position, cancellationToken); 28if (semanticModel.GetTypeInfo(collectionExpression, cancellationToken).ConvertedType is not INamedTypeSymbol collectionExpressionType) 42var ilistOfTType = semanticModel.Compilation.IListOfTType(); 43var icollectionOfTType = semanticModel.Compilation.ICollectionOfTType(); 51var listOfTType = semanticModel.Compilation.ListOfTType(); 55var constructedListType = listOfTType.Construct(collectionExpressionType.TypeArguments.Single());
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\LanguageServices\CSharpSyntaxGeneratorInternal.cs (1)
221public override SyntaxNode DeclarationPattern(INamedTypeSymbol type, string name)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\LanguageServices\CSharpTypeInferenceService.TypeInferrer.cs (26)
334if (types.Any(t => t is INamedTypeSymbol)) 336return types.OfType<INamedTypeSymbol>().SelectMany(t => 367.OfType<INamedTypeSymbol>() 444if (info.Type is not INamedTypeSymbol type) 465if (info.Type is not INamedTypeSymbol type) 571if (info.Type is INamedTypeSymbol type) 708var inferredNamedType = (INamedTypeSymbol)inferredType; 709var returnNamedType = (INamedTypeSymbol)returnType; 1331var enumerableType = isAsync 1343var objectType = Compilation.GetSpecialType(SpecialType.System_Object); 1486if (types.Any(t => t is INamedTypeSymbol)) 1488return types.OfType<INamedTypeSymbol>().SelectMany(t => 1509if (types.Any(t => t is INamedTypeSymbol)) 1516return types.OfType<INamedTypeSymbol>().SelectMany(t => 1661var type = Compilation.CreateTupleTypeSymbol( 1696var type = types.FirstOrDefault().InferredType.GetDelegateType(this.Compilation); 1817var taskOfT = this.Compilation.TaskOfTType(); 1826var ienumerableType = this.Compilation.IEnumerableOfTType(); 1840var delegateType = argumentTypes.FirstOrDefault().InferredType.GetDelegateType(this.Compilation); 2045var task = this.Compilation.TaskType(); 2046var taskOfT = this.Compilation.TaskOfTType(); 2072return memberType is INamedTypeSymbol namedType && namedType.TypeArguments.Length == 1 2086var namedTypeSymbol = (INamedTypeSymbol)type;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\LanguageServices\InitializeParameter\InitializeParameterHelpers.cs (1)
102var namedType = parameter.ContainingType;
Roslyn.Diagnostics.VisualBasic.Analyzers (34)
BasicSpecializedEnumerableCreationAnalyzer.vb (4)
16Protected Overrides Sub GetCodeBlockStartedAnalyzer(context As CompilationStartAnalysisContext, genericEnumerableSymbol As INamedTypeSymbol, genericEmptyEnumerableSymbol As IMethodSymbol) 23Public Sub New(genericEnumerableSymbol As INamedTypeSymbol, genericEmptyEnumerableSymbol As IMethodSymbol) 27Protected Overrides Sub GetSyntaxAnalyzer(context As CodeBlockStartAnalysisContext(Of SyntaxKind), genericEnumerableSymbol As INamedTypeSymbol, genericEmptyEnumerableSymbol As IMethodSymbol) 35Public Sub New(genericEnumerableSymbol As INamedTypeSymbol, genericEmptyEnumerableSymbol As IMethodSymbol)
BasicSymbolDeclaredEventMustBeGeneratedForSourceSymbols.vb (5)
19Protected Overrides Function GetCompilationAnalyzer(compilation As Compilation, symbolType As INamedTypeSymbol) As CompilationAnalyzer 42Private ReadOnly _sourceModuleType As INamedTypeSymbol 48Public Sub New(symbolType As INamedTypeSymbol, compilationType As INamedTypeSymbol, sourceModuleSymbol As INamedTypeSymbol)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\VisualBasic\Extensions\SyntaxNodeExtensions.vb (1)
1066expressionTypeOpt As INamedTypeSymbol,
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\VisualBasic\Services\SemanticFacts\VisualBasicSemanticFacts.vb (4)
97Public Function LastEnumValueHasInitializer(namedTypeSymbol As INamedTypeSymbol) As Boolean Implements ISemanticFacts.LastEnumValueHasInitializer 218Public Function IsPartial(typeSymbol As INamedTypeSymbol, cancellationToken As CancellationToken) As Boolean Implements ISemanticFacts.IsPartial 282Public Function IsInExpressionTree(semanticModel As SemanticModel, node As SyntaxNode, expressionTypeOpt As INamedTypeSymbol, cancellationToken As CancellationToken) As Boolean Implements ISemanticFacts.IsInExpressionTree 338Public Function TryGetPrimaryConstructor(typeSymbol As INamedTypeSymbol, <NotNullWhen(True)> ByRef primaryConstructor As IMethodSymbol) As Boolean Implements ISemanticFacts.TryGetPrimaryConstructor
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\VisualBasic\CodeGeneration\EnumMemberGenerator.vb (1)
136Dim namedType = TryCast(enumMember.Type, INamedTypeSymbol)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\VisualBasic\CodeGeneration\ExpressionGenerator.vb (2)
48Return GenerateExpression(generator, DirectCast(type, INamedTypeSymbol).TypeArguments(0), value, canUseFieldReference) 51DirectCast(type, INamedTypeSymbol), value), ExpressionSyntax)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\VisualBasic\CodeGeneration\VisualBasicCodeGenerationService.vb (2)
178namedType As INamedTypeSymbol, 572Public Overrides Function CreateNamedTypeDeclaration(namedType As INamedTypeSymbol,
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\VisualBasic\Editing\VisualBasicImportAdder.vb (2)
104Dim type = TryCast(typeOrNamespace, INamedTypeSymbol) 117Dim moduleType = TryCast(member, INamedTypeSymbol)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\VisualBasic\Extensions\ExpressionSyntaxGeneratorVisitor.vb (1)
32Public Overrides Function VisitNamedType(symbol As INamedTypeSymbol) As ExpressionSyntax
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\VisualBasic\Extensions\TypeSyntaxGeneratorVisitor.vb (4)
65Public Function CreateSimpleTypeSyntax(symbol As INamedTypeSymbol) As TypeSyntax 94Private Shared Function TryCreateSpecializedNamedTypeSyntax(symbol As INamedTypeSymbol) As TypeSyntax 137Private Shared Function CreateTupleTypeSyntax(symbol As INamedTypeSymbol) As TypeSyntax 152Public Overrides Function VisitNamedType(symbol As INamedTypeSymbol) As TypeSyntax
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\VisualBasic\LanguageServices\VisualBasicSyntaxGeneratorInternal.vb (1)
496Public Overrides Function DeclarationPattern(type As INamedTypeSymbol, name As String) As SyntaxNode
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\VisualBasic\LanguageServices\VisualBasicTypeInferenceService.TypeInferrer.vb (7)
110If TypeOf typeSymbol IsNot INamedTypeSymbol Then 220OfType(Of INamedTypeSymbol)(). 294Dim namedType = TryCast(info.Symbol, INamedTypeSymbol) 512Return New TypeInferenceInfo(DirectCast(t.InferredType, INamedTypeSymbol).TypeArguments(0)) 772If TypeOf memberType Is INamedTypeSymbol Then 776Return CreateResult(DirectCast(memberType, INamedTypeSymbol).TypeArguments(0)) 1069Return types.OfType(Of INamedTypeSymbol)().SelectMany(Function(t) GetCollectionElementType(t))
System.Private.CoreLib.Generators (64)
IntrinsicsInSystemPrivateCoreLibAnalyzer.cs (64)
86private static IEnumerable<INamedTypeSymbol> GetNestedTypes(INamedTypeSymbol type) 88foreach (var typeSymbol in type.GetTypeMembers()) 91foreach (var nestedTypeSymbol in GetNestedTypes(typeSymbol)) 98private static IEnumerable<INamedTypeSymbol> GetSubtypes(INamespaceSymbol namespaceSymbol) 100foreach (var typeSymbol in namespaceSymbol.GetTypeMembers()) 103foreach (var nestedTypeSymbol in GetNestedTypes(typeSymbol)) 111foreach (var typeSymbol in GetSubtypes(namespaceMember)) 120public IntrinsicsAnalyzerOnLoadData(HashSet<INamedTypeSymbol> namedTypesToBeProtected, 121INamedTypeSymbol? bypassReadyToRunAttribute, 122INamedTypeSymbol? compExactlyDependsOn) 128public readonly HashSet<INamedTypeSymbol> NamedTypesToBeProtected; 129public readonly INamedTypeSymbol? BypassReadyToRunAttribute; 130public readonly INamedTypeSymbol? CompExactlyDependsOn; 139HashSet<INamedTypeSymbol> namedTypesToBeProtected = new HashSet<INamedTypeSymbol>(SymbolEqualityComparer.Default); 141INamedTypeSymbol? bypassReadyToRunAttribute = context.Compilation.Assembly.GetTypeByMetadataName("System.Runtime.BypassReadyToRunAttribute"); 142INamedTypeSymbol? compExactlyDependsOn = context.Compilation.Assembly.GetTypeByMetadataName("System.Runtime.CompilerServices.CompExactlyDependsOnAttribute"); 150foreach (var typeSymbol in GetSubtypes(architectureSpecificNamespace)) 198private static INamedTypeSymbol? GetIsSupportedTypeSymbol(SemanticModel model, MemberAccessExpressionSyntax memberAccessExpression) 203return symbolInfo.Symbol.ContainingSymbol as INamedTypeSymbol; 211private static INamedTypeSymbol? GetIsSupportedTypeSymbol(SemanticModel model, IdentifierNameSyntax identifierName) 216return symbolInfo.Symbol.ContainingSymbol as INamedTypeSymbol; 221private static INamedTypeSymbol[] GatherAndConditions(SemanticModel model, ExpressionSyntax expressionToDecompose) 230var isSupportedType = GetIsSupportedTypeSymbol(model, memberAccessExpression); 236return new INamedTypeSymbol[] { isSupportedType }; 240var isSupportedType = GetIsSupportedTypeSymbol(model, identifier); 246return new INamedTypeSymbol[] { isSupportedType }; 258var retVal = new INamedTypeSymbol[decomposedLeft.Length + decomposedRight.Length]; 273private static INamedTypeSymbol[][] DecomposePropertySymbolForIsSupportedGroups_Property(OperationAnalysisContext context, SemanticModel model, ExpressionSyntax expressionToDecompose) 283var typeSymbol = symbolInfo.Symbol.ContainingSymbol as INamedTypeSymbol; 286return new INamedTypeSymbol[][] { new INamedTypeSymbol[] { typeSymbol } }; 309private static INamedTypeSymbol[][] DecomposeConditionForIsSupportedGroups(OperationAnalysisContext context, SemanticModel model, ExpressionSyntax expressionToDecompose) 335return new INamedTypeSymbol[][] { GatherAndConditions(model, binaryExpression) }; 347var retVal = new INamedTypeSymbol[decomposedLeft.Length + decomposedRight.Length][]; 379private static IEnumerable<INamedTypeSymbol> GetCompExactlyDependsOnUseList(ISymbol symbol, IntrinsicsAnalyzerOnLoadData onLoadData) 381var compExactlyDependsOn = onLoadData.CompExactlyDependsOn; 388if (attributeData.ConstructorArguments[0].Value is INamedTypeSymbol attributeTypeSymbol) 397private static bool ConditionAllowsSymbol(ISymbol symbolOfInvokeTarget, INamedTypeSymbol namedTypeThatIsSafeToUse, IntrinsicsAnalyzerOnLoadData onLoadData) 399HashSet<INamedTypeSymbol> examinedSymbols = new HashSet<INamedTypeSymbol>(SymbolEqualityComparer.Default); 400Stack<INamedTypeSymbol> symbolsToExamine = new Stack<INamedTypeSymbol>(); 405INamedTypeSymbol symbol = symbolsToExamine.Pop(); 409foreach (var helperForType in GetCompExactlyDependsOnUseList(symbolOfInvokeTarget, onLoadData)) 425private static bool TypeSymbolAllowsTypeSymbol(INamedTypeSymbol namedTypeToCheckForSupport, INamedTypeSymbol namedTypeThatProvidesSupport) 427HashSet<INamedTypeSymbol> examinedSymbols = new HashSet<INamedTypeSymbol>(SymbolEqualityComparer.Default); 428Stack<INamedTypeSymbol> symbolsToExamine = new Stack<INamedTypeSymbol>(); 433INamedTypeSymbol symbol = symbolsToExamine.Pop(); 487var compExactlyDependsOn = onLoadData.CompExactlyDependsOn; 521if (attributeData.ConstructorArguments[0].Value is INamedTypeSymbol attributeTypeSymbol) 555foreach (var attributeTypeSymbol in GetCompExactlyDependsOnUseList(symbolThatMightHaveCompExactlyDependsOnAttribute, onLoadData)) 568HashSet<INamedTypeSymbol> notTypes = new HashSet<INamedTypeSymbol>(SymbolEqualityComparer.Default); 609foreach (var symbolInOrClause in andClause) 624foreach (var symbolInAndClause in decomposedCondition[andClauseIndex]) 626foreach (var notType in notTypes) 652foreach (var symbolFromCondition in andClause) 672foreach (var symbolFromCondition in decomposedCondition[0])
System.Text.Json.SourceGeneration (283)
Helpers\KnownTypeSymbols.cs (178)
25public INamedTypeSymbol? IListOfTType => GetOrResolveType(typeof(IList<>), ref _IListOfTType); 26private Option<INamedTypeSymbol?> _IListOfTType; 28public INamedTypeSymbol? ICollectionOfTType => GetOrResolveType(typeof(ICollection<>), ref _ICollectionOfTType); 29private Option<INamedTypeSymbol?> _ICollectionOfTType; 31public INamedTypeSymbol? IEnumerableType => GetOrResolveType(typeof(IEnumerable), ref _IEnumerableType); 32private Option<INamedTypeSymbol?> _IEnumerableType; 34public INamedTypeSymbol? IEnumerableOfTType => GetOrResolveType(typeof(IEnumerable<>), ref _IEnumerableOfTType); 35private Option<INamedTypeSymbol?> _IEnumerableOfTType; 37public INamedTypeSymbol? ListOfTType => GetOrResolveType(typeof(List<>), ref _ListOfTType); 38private Option<INamedTypeSymbol?> _ListOfTType; 40public INamedTypeSymbol? DictionaryOfTKeyTValueType => GetOrResolveType(typeof(Dictionary<,>), ref _DictionaryOfTKeyTValueType); 41private Option<INamedTypeSymbol?> _DictionaryOfTKeyTValueType; 43public INamedTypeSymbol? IAsyncEnumerableOfTType => GetOrResolveType("System.Collections.Generic.IAsyncEnumerable`1", ref _AsyncEnumerableOfTType); 44private Option<INamedTypeSymbol?> _AsyncEnumerableOfTType; 46public INamedTypeSymbol? IDictionaryOfTKeyTValueType => GetOrResolveType(typeof(IDictionary<,>), ref _IDictionaryOfTKeyTValueType); 47private Option<INamedTypeSymbol?> _IDictionaryOfTKeyTValueType; 49public INamedTypeSymbol? IReadonlyDictionaryOfTKeyTValueType => GetOrResolveType(typeof(IReadOnlyDictionary<,>), ref _IReadonlyDictionaryOfTKeyTValueType); 50private Option<INamedTypeSymbol?> _IReadonlyDictionaryOfTKeyTValueType; 52public INamedTypeSymbol? ISetOfTType => GetOrResolveType(typeof(ISet<>), ref _ISetOfTType); 53private Option<INamedTypeSymbol?> _ISetOfTType; 55public INamedTypeSymbol? IReadOnlySetOfTType => GetOrResolveType("System.Collections.Generic.IReadOnlySet`1", ref _IReadOnlySetOfTType); 56private Option<INamedTypeSymbol?> _IReadOnlySetOfTType; 58public INamedTypeSymbol? StackOfTType => GetOrResolveType(typeof(Stack<>), ref _StackOfTType); 59private Option<INamedTypeSymbol?> _StackOfTType; 61public INamedTypeSymbol? QueueOfTType => GetOrResolveType(typeof(Queue<>), ref _QueueOfTType); 62private Option<INamedTypeSymbol?> _QueueOfTType; 64public INamedTypeSymbol? ConcurrentStackType => GetOrResolveType(typeof(ConcurrentStack<>), ref _ConcurrentStackType); 65private Option<INamedTypeSymbol?> _ConcurrentStackType; 67public INamedTypeSymbol? ConcurrentQueueType => GetOrResolveType(typeof(ConcurrentQueue<>), ref _ConcurrentQueueType); 68private Option<INamedTypeSymbol?> _ConcurrentQueueType; 70public INamedTypeSymbol? IDictionaryType => GetOrResolveType(typeof(IDictionary), ref _IDictionaryType); 71private Option<INamedTypeSymbol?> _IDictionaryType; 73public INamedTypeSymbol? IListType => GetOrResolveType(typeof(IList), ref _IListType); 74private Option<INamedTypeSymbol?> _IListType; 76public INamedTypeSymbol? StackType => GetOrResolveType(typeof(Stack), ref _StackType); 77private Option<INamedTypeSymbol?> _StackType; 79public INamedTypeSymbol? QueueType => GetOrResolveType(typeof(Queue), ref _QueueType); 80private Option<INamedTypeSymbol?> _QueueType; 82public INamedTypeSymbol? KeyValuePair => GetOrResolveType(typeof(KeyValuePair<,>), ref _KeyValuePair); 83private Option<INamedTypeSymbol?> _KeyValuePair; 85public INamedTypeSymbol? ImmutableArrayType => GetOrResolveType(typeof(ImmutableArray<>), ref _ImmutableArrayType); 86private Option<INamedTypeSymbol?> _ImmutableArrayType; 88public INamedTypeSymbol? ImmutableListType => GetOrResolveType(typeof(ImmutableList<>), ref _ImmutableListType); 89private Option<INamedTypeSymbol?> _ImmutableListType; 91public INamedTypeSymbol? IImmutableListType => GetOrResolveType(typeof(IImmutableList<>), ref _IImmutableListType); 92private Option<INamedTypeSymbol?> _IImmutableListType; 94public INamedTypeSymbol? ImmutableStackType => GetOrResolveType(typeof(ImmutableStack<>), ref _ImmutableStackType); 95private Option<INamedTypeSymbol?> _ImmutableStackType; 97public INamedTypeSymbol? IImmutableStackType => GetOrResolveType(typeof(IImmutableStack<>), ref _IImmutableStackType); 98private Option<INamedTypeSymbol?> _IImmutableStackType; 100public INamedTypeSymbol? ImmutableQueueType => GetOrResolveType(typeof(ImmutableQueue<>), ref _ImmutableQueueType); 101private Option<INamedTypeSymbol?> _ImmutableQueueType; 103public INamedTypeSymbol? IImmutableQueueType => GetOrResolveType(typeof(IImmutableQueue<>), ref _IImmutableQueueType); 104private Option<INamedTypeSymbol?> _IImmutableQueueType; 106public INamedTypeSymbol? ImmutableSortedType => GetOrResolveType(typeof(ImmutableSortedSet<>), ref _ImmutableSortedType); 107private Option<INamedTypeSymbol?> _ImmutableSortedType; 109public INamedTypeSymbol? ImmutableHashSetType => GetOrResolveType(typeof(ImmutableHashSet<>), ref _ImmutableHashSetType); 110private Option<INamedTypeSymbol?> _ImmutableHashSetType; 112public INamedTypeSymbol? IImmutableSetType => GetOrResolveType(typeof(IImmutableSet<>), ref _IImmutableSetType); 113private Option<INamedTypeSymbol?> _IImmutableSetType; 115public INamedTypeSymbol? ImmutableDictionaryType => GetOrResolveType(typeof(ImmutableDictionary<,>), ref _ImmutableDictionaryType); 116private Option<INamedTypeSymbol?> _ImmutableDictionaryType; 118public INamedTypeSymbol? ImmutableSortedDictionaryType => GetOrResolveType(typeof(ImmutableSortedDictionary<,>), ref _ImmutableSortedDictionaryType); 119private Option<INamedTypeSymbol?> _ImmutableSortedDictionaryType; 121public INamedTypeSymbol? IImmutableDictionaryType => GetOrResolveType(typeof(IImmutableDictionary<,>), ref _IImmutableDictionaryType); 122private Option<INamedTypeSymbol?> _IImmutableDictionaryType; 124public INamedTypeSymbol? KeyedCollectionType => GetOrResolveType(typeof(KeyedCollection<,>), ref _KeyedCollectionType); 125private Option<INamedTypeSymbol?> _KeyedCollectionType; 127public INamedTypeSymbol ObjectType => _ObjectType ??= Compilation.GetSpecialType(SpecialType.System_Object); 128private INamedTypeSymbol? _ObjectType; 130public INamedTypeSymbol StringType => _StringType ??= Compilation.GetSpecialType(SpecialType.System_String); 131private INamedTypeSymbol? _StringType; 133public INamedTypeSymbol? DateTimeOffsetType => GetOrResolveType(typeof(DateTimeOffset), ref _DateTimeOffsetType); 134private Option<INamedTypeSymbol?> _DateTimeOffsetType; 136public INamedTypeSymbol? TimeSpanType => GetOrResolveType(typeof(TimeSpan), ref _TimeSpanType); 137private Option<INamedTypeSymbol?> _TimeSpanType; 139public INamedTypeSymbol? DateOnlyType => GetOrResolveType("System.DateOnly", ref _DateOnlyType); 140private Option<INamedTypeSymbol?> _DateOnlyType; 142public INamedTypeSymbol? TimeOnlyType => GetOrResolveType("System.TimeOnly", ref _TimeOnlyType); 143private Option<INamedTypeSymbol?> _TimeOnlyType; 145public INamedTypeSymbol? Int128Type => GetOrResolveType("System.Int128", ref _Int128Type); 146private Option<INamedTypeSymbol?> _Int128Type; 148public INamedTypeSymbol? UInt128Type => GetOrResolveType("System.UInt128", ref _UInt128Type); 149private Option<INamedTypeSymbol?> _UInt128Type; 151public INamedTypeSymbol? HalfType => GetOrResolveType("System.Half", ref _HalfType); 152private Option<INamedTypeSymbol?> _HalfType; 160public INamedTypeSymbol? MemoryByteType => _MemoryByteType.HasValue 164private Option<INamedTypeSymbol?> _MemoryByteType; 166public INamedTypeSymbol? ReadOnlyMemoryByteType => _ReadOnlyMemoryByteType.HasValue 170private Option<INamedTypeSymbol?> _ReadOnlyMemoryByteType; 172public INamedTypeSymbol? GuidType => GetOrResolveType(typeof(Guid), ref _GuidType); 173private Option<INamedTypeSymbol?> _GuidType; 175public INamedTypeSymbol? UriType => GetOrResolveType(typeof(Uri), ref _UriType); 176private Option<INamedTypeSymbol?> _UriType; 178public INamedTypeSymbol? VersionType => GetOrResolveType(typeof(Version), ref _VersionType); 179private Option<INamedTypeSymbol?> _VersionType; 182public INamedTypeSymbol? JsonConverterType => GetOrResolveType("System.Text.Json.Serialization.JsonConverter", ref _JsonConverterType); 183private Option<INamedTypeSymbol?> _JsonConverterType; 185public INamedTypeSymbol? JsonTypeClassifierFactoryType => GetOrResolveType("System.Text.Json.Serialization.JsonTypeClassifierFactory", ref _JsonTypeClassifierFactoryType); 186private Option<INamedTypeSymbol?> _JsonTypeClassifierFactoryType; 188public INamedTypeSymbol? JsonSerializerContextType => GetOrResolveType("System.Text.Json.Serialization.JsonSerializerContext", ref _JsonSerializerContextType); 189private Option<INamedTypeSymbol?> _JsonSerializerContextType; 191public INamedTypeSymbol? JsonSerializableAttributeType => GetOrResolveType("System.Text.Json.Serialization.JsonSerializableAttribute", ref _JsonSerializableAttributeType); 192private Option<INamedTypeSymbol?> _JsonSerializableAttributeType; 194public INamedTypeSymbol? JsonDocumentType => GetOrResolveType("System.Text.Json.JsonDocument", ref _JsonDocumentType); 195private Option<INamedTypeSymbol?> _JsonDocumentType; 197public INamedTypeSymbol? JsonElementType => GetOrResolveType("System.Text.Json.JsonElement", ref _JsonElementType); 198private Option<INamedTypeSymbol?> _JsonElementType; 200public INamedTypeSymbol? StringObjectDictionaryType => _StringObjectDictionaryType.HasValue 203private Option<INamedTypeSymbol?> _StringObjectDictionaryType; 205public INamedTypeSymbol? StringJsonElementDictionaryType => _StringJsonElementDictionaryType.HasValue 210private Option<INamedTypeSymbol?> _StringJsonElementDictionaryType; 212public INamedTypeSymbol? JsonNodeType => GetOrResolveType("System.Text.Json.Nodes.JsonNode", ref _JsonNodeType); 213private Option<INamedTypeSymbol?> _JsonNodeType; 215public INamedTypeSymbol? JsonValueType => GetOrResolveType("System.Text.Json.Nodes.JsonValue", ref _JsonValueType); 216private Option<INamedTypeSymbol?> _JsonValueType; 218public INamedTypeSymbol? JsonObjectType => GetOrResolveType("System.Text.Json.Nodes.JsonObject", ref _JsonObjectType); 219private Option<INamedTypeSymbol?> _JsonObjectType; 221public INamedTypeSymbol? JsonArrayType => GetOrResolveType("System.Text.Json.Nodes.JsonArray", ref _JsonArrayType); 222private Option<INamedTypeSymbol?> _JsonArrayType; 225public INamedTypeSymbol? JsonConverterAttributeType => GetOrResolveType("System.Text.Json.Serialization.JsonConverterAttribute", ref _JsonConverterAttributeType); 226private Option<INamedTypeSymbol?> _JsonConverterAttributeType; 228public INamedTypeSymbol? JsonDerivedTypeAttributeType => GetOrResolveType("System.Text.Json.Serialization.JsonDerivedTypeAttribute", ref _JsonDerivedTypeAttributeType); 229private Option<INamedTypeSymbol?> _JsonDerivedTypeAttributeType; 231public INamedTypeSymbol? JsonIgnoreAttributeType => GetOrResolveType("System.Text.Json.Serialization.JsonIgnoreAttribute", ref _JsonIgnoreAttributeType); 232private Option<INamedTypeSymbol?> _JsonIgnoreAttributeType; 234public INamedTypeSymbol? JsonPolymorphicAttributeType => GetOrResolveType("System.Text.Json.Serialization.JsonPolymorphicAttribute", ref _JsonPolymorphicAttributeType); 235private Option<INamedTypeSymbol?> _JsonPolymorphicAttributeType; 237public INamedTypeSymbol? JsonUnionAttributeType => GetOrResolveType("System.Text.Json.Serialization.JsonUnionAttribute", ref _JsonUnionAttributeType); 238private Option<INamedTypeSymbol?> _JsonUnionAttributeType; 240public INamedTypeSymbol? JsonNumberHandlingAttributeType => GetOrResolveType("System.Text.Json.Serialization.JsonNumberHandlingAttribute", ref _JsonNumberHandlingAttributeType); 241private Option<INamedTypeSymbol?> _JsonNumberHandlingAttributeType; 243public INamedTypeSymbol? JsonNamingPolicyAttributeType => GetOrResolveType("System.Text.Json.Serialization.JsonNamingPolicyAttribute", ref _JsonNamingPolicyAttributeType); 244private Option<INamedTypeSymbol?> _JsonNamingPolicyAttributeType; 246public INamedTypeSymbol? JsonObjectCreationHandlingAttributeType => GetOrResolveType("System.Text.Json.Serialization.JsonObjectCreationHandlingAttribute", ref _JsonObjectCreationHandlingAttributeType); 247private Option<INamedTypeSymbol?> _JsonObjectCreationHandlingAttributeType; 249public INamedTypeSymbol? JsonSourceGenerationOptionsAttributeType => GetOrResolveType("System.Text.Json.Serialization.JsonSourceGenerationOptionsAttribute", ref _JsonSourceGenerationOptionsAttributeType); 250private Option<INamedTypeSymbol?> _JsonSourceGenerationOptionsAttributeType; 252public INamedTypeSymbol? JsonUnmappedMemberHandlingAttributeType => GetOrResolveType("System.Text.Json.Serialization.JsonUnmappedMemberHandlingAttribute", ref _JsonUnmappedMemberHandlingAttributeType); 253private Option<INamedTypeSymbol?> _JsonUnmappedMemberHandlingAttributeType; 255public INamedTypeSymbol? JsonConstructorAttributeType => GetOrResolveType("System.Text.Json.Serialization.JsonConstructorAttribute", ref _JsonConstructorAttributeType); 256private Option<INamedTypeSymbol?> _JsonConstructorAttributeType; 258public INamedTypeSymbol? SetsRequiredMembersAttributeType => GetOrResolveType("System.Diagnostics.CodeAnalysis.SetsRequiredMembersAttribute", ref _SetsRequiredMembersAttributeType); 259private Option<INamedTypeSymbol?> _SetsRequiredMembersAttributeType; 261public INamedTypeSymbol? UnsafeAccessorAttributeType => GetOrResolveType("System.Runtime.CompilerServices.UnsafeAccessorAttribute", ref _UnsafeAccessorAttributeType); 262private Option<INamedTypeSymbol?> _UnsafeAccessorAttributeType; 268private Option<INamedTypeSymbol?> _OverloadResolutionPriorityAttributeType; 270public INamedTypeSymbol? JsonStringEnumConverterType => GetOrResolveType("System.Text.Json.Serialization.JsonStringEnumConverter", ref _JsonStringEnumConverterType); 271private Option<INamedTypeSymbol?> _JsonStringEnumConverterType; 273public INamedTypeSymbol? JsonStringEnumConverterOfTType => GetOrResolveType("System.Text.Json.Serialization.JsonStringEnumConverter`1", ref _JsonStringEnumConverterOfTType); 274private Option<INamedTypeSymbol?> _JsonStringEnumConverterOfTType; 276public INamedTypeSymbol? IJsonOnSerializingType => GetOrResolveType(JsonConstants.IJsonOnSerializingFullName, ref _IJsonOnSerializingType); 277private Option<INamedTypeSymbol?> _IJsonOnSerializingType; 279public INamedTypeSymbol? IJsonOnSerializedType => GetOrResolveType(JsonConstants.IJsonOnSerializedFullName, ref _IJsonOnSerializedType); 280private Option<INamedTypeSymbol?> _IJsonOnSerializedType; 283public INamedTypeSymbol? DelegateType => _DelegateType ??= Compilation.GetSpecialType(SpecialType.System_Delegate); 284private INamedTypeSymbol? _DelegateType; 286public INamedTypeSymbol? MemberInfoType => GetOrResolveType(typeof(MemberInfo), ref _MemberInfoType); 287private Option<INamedTypeSymbol?> _MemberInfoType; 289public INamedTypeSymbol? SerializationInfoType => GetOrResolveType(typeof(Runtime.Serialization.SerializationInfo), ref _SerializationInfoType); 290private Option<INamedTypeSymbol?> _SerializationInfoType; 292public INamedTypeSymbol? IntPtrType => GetOrResolveType(typeof(IntPtr), ref _IntPtrType); 293private Option<INamedTypeSymbol?> _IntPtrType; 295public INamedTypeSymbol? UIntPtrType => GetOrResolveType(typeof(UIntPtr), ref _UIntPtrType); 296private Option<INamedTypeSymbol?> _UIntPtrType; 298public INamedTypeSymbol? MemoryType => GetOrResolveType(typeof(Memory<>), ref _MemoryType); 299private Option<INamedTypeSymbol?> _MemoryType; 301public INamedTypeSymbol? ReadOnlyMemoryType => GetOrResolveType(typeof(ReadOnlyMemory<>), ref _ReadOnlyMemoryType); 302private Option<INamedTypeSymbol?> _ReadOnlyMemoryType; 306if (type is not INamedTypeSymbol { IsGenericType: true, ConstructedFrom: INamedTypeSymbol genericTypeDef }) 359if (type is not INamedTypeSymbol { IsGenericType: true, ConstructedFrom: INamedTypeSymbol genericTypeDef }) 384private INamedTypeSymbol? GetOrResolveType(Type type, ref Option<INamedTypeSymbol?> field) 387private INamedTypeSymbol? GetOrResolveType(string fullyQualifiedName, ref Option<INamedTypeSymbol?> field) 394INamedTypeSymbol? type = Compilation.GetBestTypeByMetadataName(fullyQualifiedName);
Helpers\RoslynExtensions.cs (25)
21public static INamedTypeSymbol? GetBestTypeByMetadataName(this Compilation compilation, Type type) 59if (type is INamedTypeSymbol namedType) 82INamedTypeSymbol? containingType = namedType.ContainingType; 86containingType = (INamedTypeSymbol)compilation.EraseCompileTimeMetadata(containingType); 106if (type.IsAbstract || type.TypeKind is TypeKind.Interface || type is not INamedTypeSymbol namedType) 116public static IEnumerable<IMethodSymbol> GetExplicitlyDeclaredInstanceConstructors(this INamedTypeSymbol type) 119public static bool ContainsAttribute(this ISymbol memberInfo, INamedTypeSymbol? attributeType) 140for (INamedTypeSymbol? current = type as INamedTypeSymbol; current != null; current = current.BaseType) 151public static INamedTypeSymbol? GetCompatibleGenericBaseType(this ITypeSymbol type, INamedTypeSymbol? baseType) 162foreach (INamedTypeSymbol interfaceType in type.AllInterfaces) 171for (INamedTypeSymbol? current = type as INamedTypeSymbol; current != null; current = current.BaseType) 181static bool IsMatchingGenericType(INamedTypeSymbol candidate, INamedTypeSymbol baseType) 188=> type is INamedTypeSymbol { IsGenericType: true } namedType && SymbolEqualityComparer.Default.Equals(namedType, namedType.ConstructedFrom); 203if (type.IsValueType && type is INamedTypeSymbol { OriginalDefinition.SpecialType: SpecialType.System_Nullable_T }) 205elementType = ((INamedTypeSymbol)type).TypeArguments[0]; 229public static INamedTypeSymbol[] GetSortedTypeHierarchy(this ITypeSymbol type) 231if (type is not INamedTypeSymbol namedType) 233return Array.Empty<INamedTypeSymbol>(); 238var list = new List<INamedTypeSymbol>(); 239for (INamedTypeSymbol? current = namedType; current != null; current = current.BaseType) 251return JsonHelpers.TraverseGraphWithTopologicalSort<INamedTypeSymbol>(namedType, static t => t.AllInterfaces, SymbolEqualityComparer.Default);
JsonSourceGenerator.Parser.cs (73)
103INamedTypeSymbol? contextTypeSymbol = semanticModel.GetDeclaredSymbol(contextClassDeclaration, cancellationToken); 214INamedTypeSymbol? typeSymbol = semanticModel.GetDeclaredSymbol(currentType, cancellationToken); 250INamedTypeSymbol contextClassSymbol, 262INamedTypeSymbol? attributeClass = attributeData.AttributeClass; 293private bool IsCanonicalPartialDeclaration(INamedTypeSymbol contextTypeSymbol, ClassDeclarationSyntax contextClassDeclaration) 329private SourceGenerationOptionsSpec ParseJsonSourceGenerationOptionsAttribute(INamedTypeSymbol contextType, AttributeData attributeData) 589private TypeGenerationSpec ParseTypeGenerationSpec(in TypeToGenerate typeToGenerate, INamedTypeSymbol contextType, SourceGenerationOptionsSpec? options) 628if (type is { IsRefLikeType: true } or INamedTypeSymbol { IsUnboundGenericType: true } or IErrorTypeSymbol) 656INamedTypeSymbol converterSymbol = _knownSymbols.JsonStringEnumConverterOfTType.Construct(type); 732if (IsUnionType(type) && type is INamedTypeSymbol namedUnionType) 813&& (type is not INamedTypeSymbol { IsGenericType: true } 828INamedTypeSymbol contextType, 857INamedTypeSymbol? namedUnionType = typeToGenerate.Type as INamedTypeSymbol; 861INamedTypeSymbol? attributeType = attributeData.AttributeClass; 1013if (type is not INamedTypeSymbol namedType) 1027INamedTypeSymbol? attributeType = attr.AttributeClass; 1038private static bool IsUnionSyntaxDeclaration(INamedTypeSymbol type) 1057private bool HasCompatibleUnionValueProperty(INamedTypeSymbol unionType) 1059foreach (INamedTypeSymbol type in unionType.GetSortedTypeHierarchy()) 1084if (typeToGenerate.Type is not INamedTypeSymbol namedType) 1102private List<(ITypeSymbol CaseType, bool IsNullable)> GetUnionCaseTypes(INamedTypeSymbol namedType) 1123if (caseType is INamedTypeSymbol { OriginalDefinition.SpecialType: SpecialType.System_Nullable_T } nullableType) 1199private void EmitUnionAmbiguityDiagnostics(INamedTypeSymbol unionType, List<ITypeSymbol> caseTypes, Location? location) 1272if (type is INamedTypeSymbol { OriginalDefinition.SpecialType: SpecialType.System_Nullable_T } nullable) 1374type is INamedTypeSymbol named && 1380type is INamedTypeSymbol named && 1387INamedTypeSymbol? converterAttr = _knownSymbols.JsonConverterAttributeType; 1406INamedTypeSymbol? numberHandlingAttr = _knownSymbols.JsonNumberHandlingAttributeType; 1434INamedTypeSymbol? actualTypeToConvert; 1444valueType = ((INamedTypeSymbol)type).TypeArguments[0]; 1452valueType = ((INamedTypeSymbol)type).TypeArguments[0]; 1458if (type.GetCompatibleGenericBaseType(_knownSymbols.IAsyncEnumerableOfTType) is INamedTypeSymbol iAsyncEnumerableType) 1496ImmutableArray<ITypeSymbol> genericArgs = ((INamedTypeSymbol)type).TypeArguments; 1517valueType = ((INamedTypeSymbol)type).TypeArguments[0]; 1597INamedTypeSymbol? dictionary = _knownSymbols.DictionaryOfTKeyTValueType?.Construct(keyType, valueType); 1602INamedTypeSymbol contextType, 1616foreach (INamedTypeSymbol currentType in typeToGenerate.Type.GetSortedTypeHierarchy()) 1794INamedTypeSymbol? actualDictionaryType = type.GetCompatibleGenericBaseType(_knownSymbols.IDictionaryOfTKeyTValueType); 1807INamedTypeSymbol? actualReadOnlyDictionaryType = type.GetCompatibleGenericBaseType(_knownSymbols.IReadonlyDictionaryOfTKeyTValueType); 1815INamedTypeSymbol? dictionaryType = SymbolEqualityComparer.Default.Equals(actualReadOnlyDictionaryType.TypeArguments[1], _knownSymbols.ObjectType) 1831INamedTypeSymbol contextType, 1965&& (memberInfo.ContainingType is not INamedTypeSymbol { IsGenericType: true } 1967OpenDeclaringTypeFQN = memberInfo.ContainingType is INamedTypeSymbol { IsGenericType: true } && _knownSymbols.SupportsGenericUnsafeAccessors 1969OpenPropertyTypeFQN = memberInfo.ContainingType is INamedTypeSymbol { IsGenericType: true } && _knownSymbols.SupportsGenericUnsafeAccessors 1971DeclaringTypeParameterNames = memberInfo.ContainingType is INamedTypeSymbol { IsGenericType: true } namedType && _knownSymbols.SupportsGenericUnsafeAccessors 1973DeclaringTypeParameterConstraintClauses = memberInfo.ContainingType is INamedTypeSymbol { IsGenericType: true } namedType2 && _knownSymbols.SupportsGenericUnsafeAccessors 1985INamedTypeSymbol contextType, 2014INamedTypeSymbol? attributeType = attributeData.AttributeClass; 2104INamedTypeSymbol contextType, 2358private TypeRef? GetConverterTypeFromJsonConverterAttribute(INamedTypeSymbol contextType, ISymbol declaringSymbol, AttributeData attributeData, ITypeSymbol? typeToConvert = null) 2377private TypeRef? GetConverterTypeFromAttribute(INamedTypeSymbol contextType, ITypeSymbol? converterType, ISymbol declaringSymbol, AttributeData attributeData, ITypeSymbol? typeToConvert = null) 2379INamedTypeSymbol? namedConverterType = converterType as INamedTypeSymbol; 2384typeToConvert is INamedTypeSymbol { IsGenericType: true } genericTypeToConvert) 2412private TypeRef? GetTypeClassifierFactoryTypeFromAttribute(INamedTypeSymbol contextType, ITypeSymbol? classifierType, ISymbol declaringSymbol, AttributeData attributeData) 2414INamedTypeSymbol? namedClassifierType = classifierType as INamedTypeSymbol; 2434private static int GetTotalTypeParameterCount(INamedTypeSymbol unboundType) 2437INamedTypeSymbol? current = unboundType; 2451private static INamedTypeSymbol? ConstructNestedGenericType(INamedTypeSymbol unboundType, ImmutableArray<ITypeSymbol> typeArguments) 2454var typeChain = new List<INamedTypeSymbol>(); 2455INamedTypeSymbol? current = unboundType; 2467INamedTypeSymbol? constructedContainingType = null; 2469foreach (var type in typeChain) 2472INamedTypeSymbol originalDef = type.OriginalDefinition; 2488var nestedTypeDef = constructedContainingType.GetTypeMembers(originalDef.Name, originalDef.Arity).FirstOrDefault(); 2509var nestedType = constructedContainingType.GetTypeMembers(originalDef.Name, 0).FirstOrDefault(); 2630if (type is not INamedTypeSymbol namedType || !namedType.IsGenericType) 2661if (type is not INamedTypeSymbol namedType) 2718private bool IsSymbolAccessibleWithin(ISymbol symbol, INamedTypeSymbol within) 2789private static string? GetTypeParameterConstraintClauses(INamedTypeSymbol type)
src\runtime\src\libraries\Common\src\Roslyn\GetBestTypeByMetadataName.cs (4)
38public static INamedTypeSymbol? GetBestTypeByMetadataName(this Compilation compilation, string fullyQualifiedMetadataName) 41var type = compilation.GetTypeByMetadataName(fullyQualifiedMetadataName); 53var currentType = referencedAssembly.GetTypeByMetadataName(fullyQualifiedMetadataName); 88public static INamedTypeSymbol? GetBestTypeByMetadataName(this Compilation compilation, Type type) =>
src\runtime\src\libraries\Common\src\SourceGenerators\TypeModelHelper.cs (3)
13public static List<ITypeSymbol>? GetAllTypeArgumentsInScope(this INamedTypeSymbol type) 24void TraverseContainingTypes(INamedTypeSymbol current) 26if (current.ContainingType is INamedTypeSymbol parent)
System.Text.RegularExpressions.Generator (20)
RegexGenerator.Parser.cs (1)
42INamedTypeSymbol? regexSymbol = compilation.GetBestTypeByMetadataName(RegexName);
src\runtime\src\libraries\Common\src\Roslyn\GetBestTypeByMetadataName.cs (4)
38public static INamedTypeSymbol? GetBestTypeByMetadataName(this Compilation compilation, string fullyQualifiedMetadataName) 41var type = compilation.GetTypeByMetadataName(fullyQualifiedMetadataName); 53var currentType = referencedAssembly.GetTypeByMetadataName(fullyQualifiedMetadataName); 88public static INamedTypeSymbol? GetBestTypeByMetadataName(this Compilation compilation, Type type) =>
UpgradeToGeneratedRegexAnalyzer.cs (4)
38internal static bool IsFixableRegexOperation(IOperation operation, INamedTypeSymbol regexSymbol) => operation switch 67if (!ProjectSupportsRegexSourceGenerator(compilation, out INamedTypeSymbol? regexTypeSymbol)) 205private static bool ProjectSupportsRegexSourceGenerator(Compilation compilation, [NotNullWhen(true)] out INamedTypeSymbol? regexTypeSymbol) 213INamedTypeSymbol? generatedRegexAttributeTypeSymbol = compilation.GetTypeByMetadataName(GeneratedRegexTypeName);
UpgradeToGeneratedRegexCodeFixer.cs (11)
98compilation.GetTypeByMetadataName(RegexTypeName) is not INamedTypeSymbol regexSymbol || 99compilation.GetTypeByMetadataName(GeneratedRegexTypeName) is not INamedTypeSymbol generatedRegexAttributeSymbol || 114INamedTypeSymbol? typeSymbol = typeDeclarationOrCompilationUnit is TypeDeclarationSyntax typeDeclaration ? 197compilation.GetTypeByMetadataName(RegexTypeName) is not INamedTypeSymbol regexSymbol || 198compilation.GetTypeByMetadataName(GeneratedRegexTypeName) is not INamedTypeSymbol generatedRegexAttributeSymbol || 247compilation.GetTypeByMetadataName(RegexTypeName) is not INamedTypeSymbol regexSymbol || 248compilation.GetTypeByMetadataName(GeneratedRegexTypeName) is not INamedTypeSymbol generatedRegexAttributeSymbol || 289SyntaxNode root, INamedTypeSymbol generatedRegexSymbol, 464private static IEnumerable<ISymbol> GetAllMembers(INamedTypeSymbol typeSymbol) 487INamedTypeSymbol typeSymbol, Compilation compilation, 488INamedTypeSymbol regexSymbol, SyntaxNode nodeToFix,
System.Windows.Forms.Analyzers.CSharp (7)
System\Windows\Forms\CSharp\Analyzers\AvoidPassingTaskWithoutCancellationToken\AvoidPassingTaskWithoutCancellationTokenAnalyzer.cs (5)
51INamedTypeSymbol? containingType = methodSymbol.ContainingType; 57if (funcParameter.Type is not INamedTypeSymbol funcType 72if (objectTypeInfo.Type is not INamedTypeSymbol objectType 86if (funcType.DelegateInvokeMethod?.ReturnType is INamedTypeSymbol returnType 97static bool IsAncestorOrSelfOfType(INamedTypeSymbol? type, string typeName) =>
System\Windows\Forms\CSharp\Analyzers\ImplementITypedDataObject\ImplementITypedDataObjectAnalyzer.cs (1)
46if (semanticModel.GetDeclaredSymbol(classDeclaration) is not INamedTypeSymbol classSymbol)
System\Windows\Forms\CSharp\Analyzers\MissingPropertySerializationConfiguration\MissingPropertySerializationConfigurationAnalyzer.cs (1)
84INamedTypeSymbol classSymbol = propertySymbol.ContainingType;
System.Windows.Forms.Analyzers.VisualBasic (8)
Analyzers\AvoidPassingTaskWithoutCancellationToken\AvoidPassingTaskWithoutCancellationTokenAnalyzer.vb (7)
50Dim containingType As INamedTypeSymbol = methodSymbol.ContainingType 56If Not (TypeOf funcParameter.Type Is INamedTypeSymbol) Then 60Dim funcType = DirectCast(funcParameter.Type, INamedTypeSymbol) 74If Not (TypeOf objectTypeInfo.Type Is INamedTypeSymbol) Then 78Dim objectType = DirectCast(objectTypeInfo.Type, INamedTypeSymbol) 91Dim returnType = TryCast(funcType.DelegateInvokeMethod.ReturnType, INamedTypeSymbol) 104Private Shared Function IsAncestorOrSelfOfType(type As INamedTypeSymbol, typeName As String) As Boolean
Analyzers\MissingPropertySerializationConfiguration\MissingPropertySerializationConfigurationDiagnosticAnalyzer.vb (1)
83Dim classSymbol As INamedTypeSymbol = propertySymbol.ContainingType
System.Windows.Forms.PrivateSourceGenerators (1)
System\Windows\Forms\SourceGenerators\EnumValidationGenerator.cs (1)
205INamedTypeSymbol? flagsAttributeType = compilation.GetTypeByMetadataName("System.FlagsAttribute");