1 interface inheriting from INamedTypeSymbol
Microsoft.CodeAnalysis (1)
Symbols\IErrorTypeSymbol.cs (1)
20public interface IErrorTypeSymbol : INamedTypeSymbol
7 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)
18private sealed class WrappedNamedTypeSymbol : AbstractWrappedNamespaceOrTypeSymbol, INamedTypeSymbol
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
12444 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.Azure.Provisioning.Generators (105)
AspireProvisioningProxyGenerator.cs (105)
131attribute.ConstructorArguments[0] is { Kind: TypedConstantKind.Type, Value: INamedTypeSymbol type }) 237foreach (var type in discovery.Types.OrderBy(static type => type.ToDisplayString(), StringComparer.Ordinal)) 265(INamedTypeSymbol)group.Key, 287foreach (var type in EnumeratePublicProxyTypes(root.Type.ContainingAssembly.GlobalNamespace)) 300private static IEnumerable<INamedTypeSymbol> EnumeratePublicProxyTypes(INamespaceSymbol namespaceSymbol) 302foreach (var type in namespaceSymbol.GetTypeMembers()) 304foreach (var publicType in EnumeratePublicProxyTypes(type)) 312foreach (var publicType in EnumeratePublicProxyTypes(childNamespace)) 319private static IEnumerable<INamedTypeSymbol> EnumeratePublicProxyTypes(INamedTypeSymbol type) 331foreach (var nestedType in type.GetTypeMembers()) 333foreach (var publicType in EnumeratePublicProxyTypes(nestedType)) 375ImmutableArray<INamedTypeSymbol> roots, 378var types = new List<INamedTypeSymbol>(); 380var seenTypes = new HashSet<INamedTypeSymbol>(SymbolEqualityComparer.Default); 381var seenCollections = new HashSet<INamedTypeSymbol>(SymbolEqualityComparer.Default); 384foreach (var root in roots) 392var type = types[index]; 432if (TryGetCollection(type, out var collectionKind, out var elementType, out var collectionType)) 443if (type is INamedTypeSymbol namedType && 454bool IsInProxyScope(INamedTypeSymbol type) 477void AddType(INamedTypeSymbol type) 479type = (INamedTypeSymbol)type.WithNullableAnnotation(NullableAnnotation.NotAnnotated); 489private static Dictionary<INamedTypeSymbol, string> CreateProxyNames( 490List<INamedTypeSymbol> types, 493var names = new Dictionary<INamedTypeSymbol, string>(SymbolEqualityComparer.Default); 495var desiredNames = new Dictionary<INamedTypeSymbol, string>(SymbolEqualityComparer.Default); 497foreach (var type in types) 560private static Dictionary<INamedTypeSymbol, string> CreateCollectionNames( 562Dictionary<INamedTypeSymbol, string> proxyNames, 565var supportedCollections = new HashSet<INamedTypeSymbol>(SymbolEqualityComparer.Default); 582var names = new Dictionary<INamedTypeSymbol, string>(SymbolEqualityComparer.Default); 618Dictionary<INamedTypeSymbol, string> proxyNames, 619HashSet<INamedTypeSymbol> supportedCollections) 626if (elementType is not INamedTypeSymbol namedType) 638if (type is not INamedTypeSymbol namedType || !namedType.IsGenericType) 694INamedTypeSymbol type, 695Dictionary<INamedTypeSymbol, string> proxyNames, 696Dictionary<INamedTypeSymbol, string> collectionNames, 702var proxyBaseType = GetProxyBaseType(type, proxyNames); 969INamedTypeSymbol type, 970Dictionary<INamedTypeSymbol, string> proxyNames, 971Dictionary<INamedTypeSymbol, string> collectionNames, 975INamedTypeSymbol? stopBeforeType) 1023INamedTypeSymbol? proxyBaseType, 1024Dictionary<INamedTypeSymbol, string> proxyNames, 1025Dictionary<INamedTypeSymbol, string> collectionNames, 1029for (var current = proxyBaseType; current is not null; current = GetProxyBaseType(current, proxyNames)) 1053Dictionary<INamedTypeSymbol, string> proxyNames, 1054Dictionary<INamedTypeSymbol, string> collectionNames, 1241Dictionary<INamedTypeSymbol, string> proxyNames, 1242Dictionary<INamedTypeSymbol, string> collectionNames) 1466List<INamedTypeSymbol> types, 1467Dictionary<INamedTypeSymbol, string> proxyNames, 1468Dictionary<INamedTypeSymbol, string> collectionNames) 1497foreach (var type in concreteTypes) 1548private static Dictionary<INamedTypeSymbol, string> CreateFactoryTypeNames( 1549List<INamedTypeSymbol> types, 1550Dictionary<INamedTypeSymbol, string> proxyNames) 1552var names = new Dictionary<INamedTypeSymbol, string>(SymbolEqualityComparer.Default); 1556foreach (var type in group) 1572INamedTypeSymbol type, 1607INamedTypeSymbol type, 1674INamedTypeSymbol type, 1742INamedTypeSymbol type, 1743Dictionary<INamedTypeSymbol, string> proxyNames, 1744Dictionary<INamedTypeSymbol, string> collectionNames, 1841INamedTypeSymbol type, 1843Dictionary<INamedTypeSymbol, string> proxyNames, 1844Dictionary<INamedTypeSymbol, string> collectionNames) 1987!(parameter.Type is INamedTypeSymbol { OriginalDefinition.SpecialType: SpecialType.System_Nullable_T }) 2152INamedTypeSymbol type, 2327private static INamedTypeSymbol? GetProxyBaseType( 2328INamedTypeSymbol type, 2329Dictionary<INamedTypeSymbol, string> proxyNames) 2331for (var current = type.BaseType; current is not null; current = current.BaseType) 2343INamedTypeSymbol type, 2345INamedTypeSymbol? stopBeforeType = null) 2348for (INamedTypeSymbol? current = type; 2373INamedTypeSymbol type, 2375INamedTypeSymbol? stopBeforeType = null) 2378for (INamedTypeSymbol? current = type; 2415Dictionary<INamedTypeSymbol, string> proxyNames, 2416Dictionary<INamedTypeSymbol, string> collectionNames, 2427var literalType = bicepValueType is INamedTypeSymbol 2458if (type is INamedTypeSymbol namedType) 2495if (type is INamedTypeSymbol { IsGenericType: true, TypeArguments.Length: 1 } namedType && 2508if (type is INamedTypeSymbol 2526out INamedTypeSymbol collectionType) 2528if (type is INamedTypeSymbol { IsGenericType: true, TypeArguments.Length: 1 } namedType) 2554private static bool IsProvisionableResourceBase(INamedTypeSymbol type) 2560private static bool IsSharedProxyType(INamedTypeSymbol type) 2568private static bool IsAzureCoreType(INamedTypeSymbol type, string metadataName) 2574private static bool IsProvisionableFrameworkBase(INamedTypeSymbol type) 2584private static bool CanGenerateProxy(INamedTypeSymbol type) 2591private static bool IsMutableStruct(INamedTypeSymbol type) 2640private static bool IsProvisionableResource(INamedTypeSymbol type) 2642for (INamedTypeSymbol? current = type; current is not null; current = current.BaseType) 2660if (type is INamedTypeSymbol { OriginalDefinition.SpecialType: SpecialType.System_Nullable_T } nullableType) 2770public DiscoveryResult(List<INamedTypeSymbol> types, List<CollectionShape> collections) 2776public List<INamedTypeSymbol> Types { get; } 2784INamedTypeSymbol type, 2795public INamedTypeSymbol Type { get; } 2806public CollectionShape(INamedTypeSymbol type, ITypeSymbol elementType, CollectionKind kind) 2813public INamedTypeSymbol Type { get; }
Aspire.Hosting.Azure.Provisioning.Tests (19)
AspireProvisioningProxyGeneratorTests.cs (19)
21var resourceProxy = result.Compilation.GetTypeByMetadataName( 69var factory = result.Compilation.GetTypeByMetadataName( 153var baseProxy = result.Compilation.GetTypeByMetadataName( 157var derivedProxy = result.Compilation.GetTypeByMetadataName( 181var sharedProxy = result.Compilation.GetTypeByMetadataName( 201var sharedProxy = result.Compilation.GetTypeByMetadataName( 204var serviceProxy = result.Compilation.GetTypeByMetadataName( 220var factory = result.Compilation.GetTypeByMetadataName( 240var factory = result.Compilation.GetTypeByMetadataName( 270var factory = result.Compilation.GetTypeByMetadataName( 302var proxy = result.Compilation.GetTypeByMetadataName( 334var proxy = result.Compilation.GetTypeByMetadataName( 400var factory = result.Compilation.GetTypeByMetadataName( 415var proxy = result.Compilation.GetTypeByMetadataName( 432var factory = result.Compilation.GetTypeByMetadataName( 451private static string[] GetExportedMembers<TSymbol>(INamedTypeSymbol type) 481private static IEnumerable<INamedTypeSymbol> GetAllTypes(INamespaceSymbol namespaceSymbol) 483foreach (var type in namespaceSymbol.GetTypeMembers()) 490foreach (var type in GetAllTypes(childNamespace))
Aspire.Hosting.Integration.Analyzers (90)
AspireExportAnalyzer.cs (79)
110INamedTypeSymbol? aspireExportAttribute; 124INamedTypeSymbol? aspireExportIgnoreAttribute = null; 135INamedTypeSymbol? aspireUnionAttribute = null; 242INamedTypeSymbol aspireExportAttribute, 243INamedTypeSymbol? aspireExportIgnoreAttribute, 244INamedTypeSymbol? aspireUnionAttribute, 434INamedTypeSymbol aspireExportAttribute, 435INamedTypeSymbol? aspireExportIgnoreAttribute, 440var type = (INamedTypeSymbol)context.Symbol; 456private static void AnalyzeProperty(SymbolAnalysisContext context, INamedTypeSymbol aspireExportAttribute, StrongBox<bool> assemblyHasAspireExport) 473INamedTypeSymbol type, 475INamedTypeSymbol? aspireExportIgnoreAttribute, 499private static void ReportAssemblyExportDescriptions(CompilationAnalysisContext context, INamedTypeSymbol aspireExportAttribute) 549private static bool HasAnyAspireExportAttribute(IAssemblySymbol assembly, INamedTypeSymbol aspireExportAttribute) 564INamedTypeSymbol aspireExportAttribute, 565INamedTypeSymbol? aspireExportIgnoreAttribute, 574exportedType is not INamedTypeSymbol namedType || 586INamedTypeSymbol type, 589INamedTypeSymbol aspireExportAttribute, 590INamedTypeSymbol? aspireExportIgnoreAttribute, 720private static IEnumerable<IPropertySymbol> GetInstanceProperties(INamedTypeSymbol type) 723for (INamedTypeSymbol? current = type; current is not null; current = current.BaseType) 741INamedTypeSymbol aspireExportAttribute, 883INamedTypeSymbol aspireExportAttribute, 891if (paramType is INamedTypeSymbol { OriginalDefinition.SpecialType: SpecialType.System_Nullable_T } nullable) 897if (paramType is not INamedTypeSymbol namedType || !IsDelegateType(namedType)) 912if (contextType is not INamedTypeSymbol contextNamedType) 971private static bool IsDelegateType(INamedTypeSymbol type) 1330if (parameter.Type is not INamedTypeSymbol namedType || !IsDelegateType(namedType)) 1346return type is INamedTypeSymbol namedType 1356if (type is not INamedTypeSymbol namedType || !namedType.IsGenericType) 1363var iResourceBuilderType = wellKnownTypes.Get(WellKnownTypeData.WellKnownType.Aspire_Hosting_ApplicationModel_IResourceBuilder_1); 1388if (targetType is not INamedTypeSymbol { IsGenericType: true } namedTargetType) 1412private static string GetGeneratedTargetTypeName(INamedTypeSymbol resourceType) 1422if (type is not INamedTypeSymbol namedType || !namedType.IsGenericType) 1429var iResourceBuilderType = wellKnownTypes.Get(WellKnownTypeData.WellKnownType.Aspire_Hosting_ApplicationModel_IResourceBuilder_1); 1456var distributedAppBuilder = wellKnownTypes.Get(WellKnownTypeData.WellKnownType.Aspire_Hosting_IDistributedApplicationBuilder); 1480INamedTypeSymbol aspireExportAttribute, 1491INamedTypeSymbol aspireExportAttribute, 1577INamedTypeSymbol aspireExportAttribute, 1580if (delegateType is not INamedTypeSymbol namedDelegate) 1615var iResourceType = wellKnownTypes.Get(WellKnownTypeData.WellKnownType.Aspire_Hosting_ApplicationModel_IResource); 1627INamedTypeSymbol aspireUnionAttribute, 1629INamedTypeSymbol aspireExportAttribute, 1673if (typeConstant.Value is INamedTypeSymbol typeSymbol) 1819private static string GetRuntimeTypeName(INamedTypeSymbol type) 1901private static AttributeData? GetAspireExportAttribute(ISymbol symbol, INamedTypeSymbol aspireExportAttribute) 1914private static bool HasAspireExportIgnoreAttribute(ISymbol symbol, INamedTypeSymbol? aspireExportIgnoreAttribute) 1937private static string GetCapabilityPackage(INamedTypeSymbol type, string assemblyName) 1961private static readonly MethodInfo? s_isExtensionGetter = typeof(INamedTypeSymbol).GetProperty("IsExtension")?.GetGetMethod(); 1962private static readonly MethodInfo? s_extensionParameterGetter = typeof(INamedTypeSymbol).GetProperty("ExtensionParameter")?.GetGetMethod(); 1964private static bool IsExtensionContainer(INamedTypeSymbol type) 1981private static IParameterSymbol? GetExtensionParameter(INamedTypeSymbol type) 2066private static bool TryGetEffectiveAspireExportAttribute(IMethodSymbol method, INamedTypeSymbol aspireExportAttribute, out AttributeData? exportAttribute, out AttributeData? containingTypeExportAttribute) 2090private static AttributeData? GetContainingTypeAspireExportAttribute(INamedTypeSymbol? type, INamedTypeSymbol aspireExportAttribute) 2130INamedTypeSymbol aspireExportAttribute, 2151INamedTypeSymbol aspireExportAttribute, 2157var taskType = wellKnownTypes.Get(WellKnownTypeData.WellKnownType.System_Threading_Tasks_Task); 2170var valueTaskType = wellKnownTypes.Get(WellKnownTypeData.WellKnownType.System_Threading_Tasks_ValueTask); 2182if (type is INamedTypeSymbol namedType && namedType.IsGenericType) 2186var taskOfTType = wellKnownTypes.Get(WellKnownTypeData.WellKnownType.System_Threading_Tasks_Task_1); 2201var valueTaskOfTType = wellKnownTypes.Get(WellKnownTypeData.WellKnownType.System_Threading_Tasks_ValueTask_1); 2220INamedTypeSymbol? aspireExportAttribute = null, 2224if (type is INamedTypeSymbol namedType && 2338var knownType = wellKnownTypes.Get(wellKnownType); 2350if (type is not INamedTypeSymbol namedType || !namedType.IsGenericType) 2357var knownType = wellKnownTypes.Get(wellKnownType); 2370INamedTypeSymbol? aspireExportAttribute, 2373if (type is not INamedTypeSymbol namedType) 2426private static bool HasAspireExportAttribute(ITypeSymbol type, INamedTypeSymbol aspireExportAttribute, HashSet<ITypeSymbol>? currentAssemblyExportedTypes) 2465private static HashSet<ITypeSymbol> GetAssemblyExportedTypes(IAssemblySymbol assembly, INamedTypeSymbol aspireExportAttribute) 2536var iResourceType = wellKnownTypes.Get(WellKnownTypeData.WellKnownType.Aspire_Hosting_ApplicationModel_IResource); 2548if (type is not INamedTypeSymbol namedType) 2555var iResourceBuilderType = wellKnownTypes.Get(WellKnownTypeData.WellKnownType.Aspire_Hosting_ApplicationModel_IResourceBuilder_1); 2565foreach (var iface in namedType.AllInterfaces) 2585INamedTypeSymbol aspireExportAttribute, 2607if (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)
58List<INamedTypeSymbol>? types = null; 80(types ??= new()).Add((INamedTypeSymbol)args[1].Value); 111internal 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 (704)
src\30958ef190fa2467\SyntaxGeneratorInternal.cs (1)
123public abstract SyntaxNode DeclarationPattern(INamedTypeSymbol type, string name);
src\60c94c676d650713\ITypeSymbolExtensions.CollectTypeParameterSymbolsVisitor.cs (1)
57public override void VisitNamedType(INamedTypeSymbol symbol)
src\60c94c676d650713\SymbolEquivalenceComparer.ParameterSymbolEqualityComparer.cs (2)
23Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies,
src\60c94c676d650713\SymbolEquivalenceComparer.SignatureTypeSymbolEquivalenceComparer.cs (2)
18public bool Equals(ITypeSymbol? x, ITypeSymbol? y, Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies)
src\a16f30e1d256badc\AbstractTypeInferenceService.AbstractTypeInferrer.cs (1)
102protected static IEnumerable<TypeInferenceInfo> GetCollectionElementType(INamedTypeSymbol type)
src\b310f676f7308b7f\SymbolUsageAnalysis.DataFlowAnalyzer.FlowGraphAnalysisData.cs (1)
143if (owningSymbol.ContainingSymbol is INamedTypeSymbol { IsExtension: true, ExtensionParameter: { } extensionParameter })
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\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_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\ISymbolExtensions.cs (17)
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) 574var currentType = attributeType; 605return ((INamedTypeSymbol)symbol).GetMembers().OfType<IPropertySymbol>().Where(p => p.CanBeReferencedByName); 880public 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\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.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\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, 167public 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)
16INamedTypeSymbol containingType, 29public virtual INamedTypeSymbol BaseType => null; 31public virtual ImmutableArray<INamedTypeSymbol> Interfaces 34public 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_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\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\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\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 (67)
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 (2)
201var assemblyType = Compilation.GetTypeByMetadataName("Microsoft.CSharp.RuntimeBinder.Binder"); 834if (sourceType is not INamedTypeSymbol { IsTupleType: true } tupleType ||
DynamicallyAccessedMembersAnalyzer.cs (6)
140var type = (INamedTypeSymbol)context.Symbol; 156foreach (var interfaceType in type.Interfaces) 170VerifyDamOnInterfaceAndImplementationMethodsMatch(context, (INamedTypeSymbol)context.Symbol); 299private static void VerifyDamOnInterfaceAndImplementationMethodsMatch(SymbolAnalysisContext context, INamedTypeSymbol type) 306INamedTypeSymbol 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; 216if (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)
124if (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)
88((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 && 151methodSymbol.ReturnType is INamedTypeSymbol returnType && 155private static bool IsReturningValueTaskOfTOrNullableT(INamedTypeSymbol returnType, ITypeSymbol containingType, WellKnownTypes wellKnownTypes) 213if (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.AI.SourceGenerators (6)
ToolBlockParser.cs (6)
30if (ctx.TargetSymbol is not INamedTypeSymbol classSymbol) 113INamedTypeSymbol classSymbol, List<DiagnosticInfo> diagnostics, CancellationToken ct) 157INamedTypeSymbol classSymbol, List<DiagnosticInfo> diagnostics, CancellationToken ct) 242private static bool ExtendsType(INamedTypeSymbol symbol, string fullName) 244var current = symbol.BaseType; 262&& type is INamedTypeSymbol namedType
Microsoft.AspNetCore.Components.Analyzers (119)
AuthenticationStateProviderAnalyzer.cs (7)
31var authStateProviderType = context.Compilation.GetTypeByMetadataName(ComponentsApi.AuthenticationStateProvider.MetadataName); 39var namedType = (INamedTypeSymbol)context.Symbol; 90private static bool TypeUsesAuthenticationStateProvider(INamedTypeSymbol type, INamedTypeSymbol authStateProviderType) 99for (var currentType = type; currentType is not null; currentType = currentType.BaseType) 131private static bool IsAuthenticationStateProviderType(ITypeSymbol? type, INamedTypeSymbol authStateProviderType)
ComponentDisposableSanityAnalyzer.cs (6)
31var iComponentType = context.Compilation.GetTypeByMetadataName(ComponentsApi.IComponent.MetadataName); 37var iDisposableType = context.Compilation.GetSpecialType(SpecialType.System_IDisposable); 38var iAsyncDisposableType = context.Compilation.GetTypeByMetadataName(IAsyncDisposableTypeName); 39var valueTaskType = context.Compilation.GetTypeByMetadataName(ValueTaskTypeName); 43var type = (INamedTypeSymbol)context.Symbol;
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; }
ForLoopIteratorInClosureAnalyzer.cs (5)
29var availableTypes = new Dictionary<string, INamedTypeSymbol?>() 71private static bool IsImplementationOfBuildRenderTree(IMethodSymbol methodSymbol, Dictionary<string, INamedTypeSymbol?> availableTypes) 77var containingType = methodSymbol.ContainingType; 89private static void AnalyzeOperationsTree(IOperation operation, Dictionary<string, INamedTypeSymbol?> availableTypes, ForLoopAnalyzerState analyzerState) 155private static void AnalyzeInvocation(IInvocationOperation invocation, Dictionary<string, INamedTypeSymbol?> availableTypes, ForLoopAnalyzerState analyzerState)
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)
JSInteropAnalyzer.cs (27)
35var ijsRuntimeType = context.Compilation.GetTypeByMetadataName(IJSRuntimeTypeName); 36var ijsInProcessRuntimeType = context.Compilation.GetTypeByMetadataName(IJSInProcessRuntimeTypeName); 37var ijsObjectReferenceType = context.Compilation.GetTypeByMetadataName(IJSObjectReferenceTypeName); 38var ijsInProcessObjectReferenceType = context.Compilation.GetTypeByMetadataName(IJSInProcessObjectReferenceTypeName); 39var jsRuntimeExtensionsType = context.Compilation.GetTypeByMetadataName(JSRuntimeExtensionsTypeName); 40var jsObjectReferenceExtensionsType = context.Compilation.GetTypeByMetadataName(JSObjectReferenceExtensionsTypeName); 41var jsInProcessRuntimeExtensionsType = context.Compilation.GetTypeByMetadataName(JSInProcessRuntimeExtensionsTypeName); 42var jsInProcessObjectReferenceExtensionsType = context.Compilation.GetTypeByMetadataName(JSInProcessObjectReferenceExtensionsTypeName); 92INamedTypeSymbol? ijsRuntimeType, 93INamedTypeSymbol? ijsInProcessRuntimeType, 94INamedTypeSymbol? ijsObjectReferenceType, 95INamedTypeSymbol? ijsInProcessObjectReferenceType, 96INamedTypeSymbol? jsRuntimeExtensionsType, 97INamedTypeSymbol? jsObjectReferenceExtensionsType, 98INamedTypeSymbol? jsInProcessRuntimeExtensionsType, 99INamedTypeSymbol? jsInProcessObjectReferenceExtensionsType) 152INamedTypeSymbol? ijsRuntimeType, 153INamedTypeSymbol? ijsInProcessRuntimeType, 154INamedTypeSymbol? ijsObjectReferenceType, 155INamedTypeSymbol? ijsInProcessObjectReferenceType) 185private static bool ImplementsInterface(ITypeSymbol type, INamedTypeSymbol? interfaceType) 194foreach (var iface in type.AllInterfaces) 209INamedTypeSymbol containingType, 210INamedTypeSymbol? jsRuntimeExtensionsType, 211INamedTypeSymbol? jsObjectReferenceExtensionsType, 212INamedTypeSymbol? jsInProcessRuntimeExtensionsType, 213INamedTypeSymbol? jsInProcessObjectReferenceExtensionsType)
JSInvokableAnalyzer.cs (1)
27var jsInvokableAttribute = context.Compilation.GetTypeByMetadataName(JSInvokableAttributeTypeName);
PersistentStateAnalyzer.cs (1)
67var containingType = propertySymbol.ContainingType;
StateHasChangedAnalyzer.cs (3)
45var type = (INamedTypeSymbol)context.Symbol; 52var eventCallbackFactoryType = context.Compilation.GetTypeByMetadataName(EventCallbackFactoryTypeName);
SupplyParameterFromFormAnalyzer.cs (1)
67var containingType = propertySymbol.ContainingType;
VirtualizeItemComparerAnalyzer.cs (3)
33var virtualizeType = compilationContext.Compilation.GetTypeByMetadataName(VirtualizeTypeName); 34var renderTreeBuilderType = compilationContext.Compilation.GetTypeByMetadataName(RenderTreeBuilderTypeName); 68var originalDef = typeArg is INamedTypeSymbol namedType && namedType.IsGenericType
VirtualizeSpacerElementAnalyzer.cs (8)
46var virtualizeType = compilationContext.Compilation.GetTypeByMetadataName(VirtualizeTypeName); 47var renderTreeBuilderType = compilationContext.Compilation.GetTypeByMetadataName(RenderTreeBuilderTypeName); 101invocation.TargetMethod.TypeArguments[0] is INamedTypeSymbol componentType && 161INamedTypeSymbol virtualizeType, 162INamedTypeSymbol renderTreeBuilderType) 230INamedTypeSymbol virtualizeType, 231INamedTypeSymbol renderTreeBuilderType, 291helperInvocation.TargetMethod.TypeArguments[0] is INamedTypeSymbol componentType &&
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.Components.Testing.Generators (1)
UITestGenerator.cs (1)
48if (context.TargetSymbol is not INamedTypeSymbol type)
Microsoft.AspNetCore.Http.RequestDelegateGenerator (58)
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 && 151methodSymbol.ReturnType is INamedTypeSymbol returnType && 155private static bool IsReturningValueTaskOfTOrNullableT(INamedTypeSymbol returnType, ITypeSymbol containingType, WellKnownTypes wellKnownTypes) 213if (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)
StaticRouteHandlerModel\Emitters\DiagnosticEmitter.cs (4)
40typeSymbol is INamedTypeSymbol && 41((INamedTypeSymbol)typeSymbol).TypeArguments.Any(a => a is ITypeParameterSymbol)) 47typeSymbol is INamedTypeSymbol && 48((INamedTypeSymbol)typeSymbol).TypeArguments.Any(typeArg =>
StaticRouteHandlerModel\EndpointParameter.cs (2)
171Type is not INamedTypeSymbol namedTypeSymbol || 458private static bool TryGetAsParametersConstructor(Endpoint endpoint, INamedTypeSymbol type, WellKnownTypes wellKnownTypes, out bool? isDefaultConstructor, [NotNullWhen(true)] out IEnumerable<ConstructorParameter>? matchedProperties)
StaticRouteHandlerModel\EndpointResponse.cs (6)
49var task = WellKnownTypes.Get(WellKnownType.System_Threading_Tasks_Task); 50var taskOfT = WellKnownTypes.Get(WellKnownType.System_Threading_Tasks_Task_T); 51var valueTask = WellKnownTypes.Get(WellKnownType.System_Threading_Tasks_ValueTask); 52var valueTaskOfT = WellKnownTypes.Get(WellKnownType.System_Threading_Tasks_ValueTask_T); 58return ((INamedTypeSymbol)returnType).TypeArguments[0]; 82var resultType = WellKnownTypes.Get(WellKnownType.Microsoft_AspNetCore_Http_IResult);
StaticRouteHandlerModel\InvocationOperationExtensions.cs (1)
117return (type as INamedTypeSymbol)?.DelegateInvokeMethod;
StaticRouteHandlerModel\Model\EndpointParameterExtensions.cs (2)
44if (handlerParameterType is INamedTypeSymbol { IsGenericType: true, OriginalDefinition: { SpecialType: not SpecialType.System_Nullable_T } }) 55=> ((INamedTypeSymbol?)parameter.BindableMethodSymbol?.ReturnType)?.TypeArguments[0];
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.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) 59foreach (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.AspNetCore.SignalR.Client.SourceGenerator (16)
HubClientProxyGenerator.Parser.cs (5)
106var hubConnectionSymbol = symbol.Parameters[0].Type as INamedTypeSymbol; 210var registerCallbackProviderClassSymbol = (INamedTypeSymbol)registerCallbackProviderMethodSymbol.ContainingSymbol; 301if (!(member.ReturnsVoid || member.ReturnType is INamedTypeSymbol { Arity: 0, Name: "Task" }))
HubServerProxyGenerator.Parser.cs (11)
96var hubConnectionSymbol = symbol.Parameters[0].Type as INamedTypeSymbol; 199var getProxyClassSymbol = (INamedTypeSymbol)getProxyMethodSymbol.ContainingSymbol; 278if (member.ReturnType is INamedTypeSymbol { Arity: 1 } rtype) 283if (member.ReturnType is INamedTypeSymbol { Arity: 1, Name: "Task" } a 284&& a.TypeArguments[0] is INamedTypeSymbol { Arity: 1, Name: "ChannelReader" } b) 289else if (member.ReturnType is INamedTypeSymbol { Arity: 1, Name: "IAsyncEnumerable" } c) 312case INamedTypeSymbol { Arity: 1, Name: "ChannelReader" }: 315case INamedTypeSymbol { Arity: 1, Name: "IAsyncEnumerable" }: 323member.ReturnType is not INamedTypeSymbol { Name: "Task" or "ValueTask" })
Microsoft.Build.TaskAuthoring.Analyzer (208)
MultiThreadableTaskAnalyzer.cs (15)
45var iTaskType = compilationContext.Compilation.GetTypeByMetadataName(WellKnownTypeNames.ITaskFullName); 52var taskEnvironmentType = compilationContext.Compilation.GetTypeByMetadataName(WellKnownTypeNames.TaskEnvironmentFullName); 53var absolutePathType = compilationContext.Compilation.GetTypeByMetadataName(WellKnownTypeNames.AbsolutePathFullName); 54var iTaskItemType = compilationContext.Compilation.GetTypeByMetadataName(WellKnownTypeNames.ITaskItemFullName); 55var consoleType = compilationContext.Compilation.GetTypeByMetadataName(WellKnownTypeNames.ConsoleFullName); 56var multiThreadableTaskType = compilationContext.Compilation.GetTypeByMetadataName(WellKnownTypeNames.IMultiThreadableTaskFullName); 72var namedType = (INamedTypeSymbol)symbolStartContext.Symbol; 100ImmutableHashSet<INamedTypeSymbol> filePathTypes, 103INamedTypeSymbol? taskEnvironmentType, 104INamedTypeSymbol? absolutePathType, 105INamedTypeSymbol? iTaskItemType, 106INamedTypeSymbol? consoleType) 173var containingType = referencedSymbol.ContainingType; 191var containingType = method.ContainingType;
MultiThreadableTaskCodeFixProvider.cs (5)
122var taskEnvironmentType = compilation.GetTypeByMetadataName(WellKnownTypeNames.TaskEnvironmentFullName); 123var absolutePathType = compilation.GetTypeByMetadataName(WellKnownTypeNames.AbsolutePathFullName); 124var iTaskItemType = compilation.GetTypeByMetadataName(WellKnownTypeNames.ITaskItemFullName); 178private static bool HasTaskEnvironmentMember(INamedTypeSymbol? type) 180for (INamedTypeSymbol? current = type; current is not null; current = current.BaseType)
MultiThreadableTaskDeclarationAnalyzer.cs (18)
44INamedTypeSymbol? taskType = context.Compilation.GetTypeByMetadataName(WellKnownTypeNames.ITaskFullName); 45INamedTypeSymbol? multiThreadableTaskType = 47INamedTypeSymbol? taskEnvironmentType = 49INamedTypeSymbol? attributeType = 69INamedTypeSymbol taskType, 70INamedTypeSymbol multiThreadableTaskType, 71INamedTypeSymbol taskEnvironmentType, 72INamedTypeSymbol attributeType) 74var type = (INamedTypeSymbol)context.Symbol; 133private static bool HasMultiThreadableTaskAttribute(INamedTypeSymbol type, INamedTypeSymbol attributeType) 147private static bool HasTaskEnvironmentProperty(INamedTypeSymbol type, INamedTypeSymbol taskEnvironmentType) 166private static bool HasTaskEnvironmentConstructor(INamedTypeSymbol type, INamedTypeSymbol taskEnvironmentType) 181private static void ReportOnType(SymbolAnalysisContext context, DiagnosticDescriptor descriptor, INamedTypeSymbol type) 198private static void ReportNoEffect(SymbolAnalysisContext context, INamedTypeSymbol type, string reason)
PreferTypedParameterAnalyzer.cs (66)
48INamedTypeSymbol iTask, 49INamedTypeSymbol multiThreadableTaskAttribute, 50INamedTypeSymbol? absolutePath, 51INamedTypeSymbol? taskEnvironment, 52INamedTypeSymbol? iTaskItem, 53INamedTypeSymbol? outputAttribute, 54INamedTypeSymbol? fileInfo, 55INamedTypeSymbol? directoryInfo) 67public INamedTypeSymbol ITask { get; } 68public INamedTypeSymbol MultiThreadableTaskAttribute { get; } 69public INamedTypeSymbol? AbsolutePath { get; } 70public INamedTypeSymbol? TaskEnvironment { get; } 71public INamedTypeSymbol? ITaskItem { get; } 72public INamedTypeSymbol? OutputAttribute { get; } 73public INamedTypeSymbol? FileInfo { get; } 74public INamedTypeSymbol? DirectoryInfo { get; } 91var iTaskType = types.ITask; 92var multiThreadableTaskAttributeType = types.MultiThreadableTaskAttribute; 93var absolutePathType = types.AbsolutePath; 94var taskEnvironmentType = types.TaskEnvironment; 95var iTaskItemType = types.ITaskItem; 96var outputAttributeType = types.OutputAttribute; 97var fileInfoType = types.FileInfo; 98var directoryInfoType = types.DirectoryInfo; 102var namedType = (INamedTypeSymbol)symbolStartContext.Symbol; 264var iTaskType = compilation.GetTypeByMetadataName(WellKnownTypeNames.ITaskFullName); 274var multiThreadableTaskAttributeType = compilation.GetTypeByMetadataName(WellKnownTypeNames.MultiThreadableTaskAttributeFullName); 299INamedTypeSymbol namedType, 300INamedTypeSymbol iTaskType, 301INamedTypeSymbol multiThreadableTaskAttributeType) 314INamedTypeSymbol namedType, 315INamedTypeSymbol? iTaskItemType, 316INamedTypeSymbol? outputAttributeType, 370INamedTypeSymbol? absolutePathType, 371INamedTypeSymbol? taskEnvironmentType, 372INamedTypeSymbol? iTaskItemType, 373INamedTypeSymbol? fileInfoType, 374INamedTypeSymbol? directoryInfoType) 502INamedTypeSymbol iTaskItemType, 503INamedTypeSymbol? taskEnvironmentType) 529INamedTypeSymbol iTaskItemType, 530INamedTypeSymbol? taskEnvironmentType) 559INamedTypeSymbol? taskEnvironmentType, 560INamedTypeSymbol? absolutePathType, 561INamedTypeSymbol? iTaskItemType) 593INamedTypeSymbol? absolutePathType, 594INamedTypeSymbol? taskEnvironmentType, 595INamedTypeSymbol? iTaskItemType, 596INamedTypeSymbol? fileInfoType, 597INamedTypeSymbol? directoryInfoType) 705INamedTypeSymbol? absolutePathType, 706INamedTypeSymbol? taskEnvironmentType, 707INamedTypeSymbol? iTaskItemType, 708INamedTypeSymbol? fileInfoType, 709INamedTypeSymbol? directoryInfoType) 983INamedTypeSymbol iTaskItemType) 1039INamedTypeSymbol iTaskItemType) 1050var receiverType = itemSpecRef.Property.ContainingType; 1072var receiverType = getMetadataCall.TargetMethod.ContainingType; 1160INamedTypeSymbol iTaskItemType, 1161INamedTypeSymbol taskEnvironmentType) 1167INamedTypeSymbol iTaskItemType, 1168INamedTypeSymbol taskEnvironmentType, 1234INamedTypeSymbol iTaskItemType, 1235INamedTypeSymbol taskEnvironmentType,
PreferTypedParameterCodeFixProvider.cs (5)
169if (semanticModel.GetDeclaredSymbol(typeDeclaration, cancellationToken) is not INamedTypeSymbol taskType) 261INamedTypeSymbol taskType, 346private static bool HasAccessibleTaskEnvironment(INamedTypeSymbol taskType) 348for (INamedTypeSymbol? type = taskType; type is not null; type = type.BaseType) 363private static MethodDeclarationSyntax? FindEditableExecuteMethod(INamedTypeSymbol taskType, SyntaxNode root, CancellationToken cancellationToken)
RequiredTaskPropertyInitializationSuppressor.cs (4)
24var requiredAttributeType = context.Compilation.GetTypeByMetadataName(WellKnownTypeNames.RequiredAttributeFullName); 25var iTaskType = context.Compilation.GetTypeByMetadataName(WellKnownTypeNames.ITaskFullName); 44INamedTypeSymbol? containingType = property.ContainingType; 122private static bool HasAttribute(IPropertySymbol property, INamedTypeSymbol attributeType)
SharedAnalyzerHelpers.cs (37)
52INamedTypeSymbol type, 53INamedTypeSymbol? multiThreadableTaskType, 97INamedTypeSymbol type, 98INamedTypeSymbol? multiThreadableTaskType) 105foreach (INamedTypeSymbol declaredInterface in type.Interfaces) 117INamedTypeSymbol type, 118INamedTypeSymbol iTaskType, 119INamedTypeSymbol? multiThreadableTaskType, 120ImmutableHashSet<INamedTypeSymbol> contributingMultiThreadableTaskBaseTypes, 135internal static ImmutableHashSet<INamedTypeSymbol> FindContributingMultiThreadableTaskBaseTypes( 137INamedTypeSymbol iTaskType, 138INamedTypeSymbol? multiThreadableTaskType) 140var builder = ImmutableHashSet.CreateBuilder<INamedTypeSymbol>(SymbolEqualityComparer.Default); 151ImmutableHashSet<INamedTypeSymbol>.Builder result, 152INamedTypeSymbol iTaskType, 153INamedTypeSymbol? multiThreadableTaskType) 167if (member is not INamedTypeSymbol type) 179for (INamedTypeSymbol? baseType = type.BaseType; 243INamedTypeSymbol? taskEnvironmentType, 244INamedTypeSymbol? absolutePathType, 245INamedTypeSymbol? iTaskItemType) 274internal static bool IsAbsolutePathCanonicalization(IOperation operation, INamedTypeSymbol? absolutePathType) 305var pathType = invocation.TargetMethod.ReturnType.ContainingAssembly?.GetTypeByMetadataName("System.IO.Path"); 314INamedTypeSymbol? taskEnvironmentType, 315INamedTypeSymbol? absolutePathType, 316INamedTypeSymbol? iTaskItemType) 355var receiverType = invocation.TargetMethod.ContainingType; 450internal static bool IsAbsolutePathType(ITypeSymbol? type, INamedTypeSymbol absolutePathType) 464if (type is INamedTypeSymbol namedType && 511internal static ImmutableHashSet<INamedTypeSymbol> ResolveFilePathTypes(Compilation compilation) 561var builder = ImmutableHashSet.CreateBuilder<INamedTypeSymbol>(SymbolEqualityComparer.Default); 564var type = compilation.GetTypeByMetadataName(name); 577internal static bool ImplementsInterface(INamedTypeSymbol type, INamedTypeSymbol interfaceType) 579foreach (var iface in type.AllInterfaces) 596internal static IEnumerable<IPropertySymbol> GetPropertiesIncludingBaseTypes(INamedTypeSymbol type) 599for (INamedTypeSymbol? current = type;
SupportedTaskItemTypes.cs (3)
79INamedTypeSymbol? absolutePathType, 80INamedTypeSymbol? fileInfoType, 81INamedTypeSymbol? directoryInfoType)
TaskEnvironmentConstructorInjectionAnalyzer.cs (8)
28INamedTypeSymbol? multiThreadableTaskType = 35INamedTypeSymbol? taskEnvironmentType = 52INamedTypeSymbol multiThreadableTaskType, 53INamedTypeSymbol taskEnvironmentType) 55var taskType = (INamedTypeSymbol)context.Symbol; 78INamedTypeSymbol taskType, 79INamedTypeSymbol taskEnvironmentType)
TransitiveCallChainAnalyzer.cs (38)
49var iTaskType = compilationContext.Compilation.GetTypeByMetadataName(WellKnownTypeNames.ITaskFullName); 55var taskEnvironmentType = compilationContext.Compilation.GetTypeByMetadataName(WellKnownTypeNames.TaskEnvironmentFullName); 56var absolutePathType = compilationContext.Compilation.GetTypeByMetadataName(WellKnownTypeNames.AbsolutePathFullName); 57var iTaskItemType = compilationContext.Compilation.GetTypeByMetadataName(WellKnownTypeNames.ITaskItemFullName); 58var consoleType = compilationContext.Compilation.GetTypeByMetadataName(WellKnownTypeNames.ConsoleFullName); 59var multiThreadableTaskType = compilationContext.Compilation.GetTypeByMetadataName(WellKnownTypeNames.IMultiThreadableTaskFullName); 72new ConcurrentDictionary<INamedTypeSymbol, DirectAnalysisState>(SymbolEqualityComparer.Default); 103ImmutableHashSet<INamedTypeSymbol> filePathTypes, 104INamedTypeSymbol? taskEnvironmentType, 105INamedTypeSymbol? absolutePathType, 106INamedTypeSymbol? iTaskItemType, 107INamedTypeSymbol? consoleType, 108INamedTypeSymbol iTaskType, 109INamedTypeSymbol? multiThreadableTaskType, 110ImmutableHashSet<INamedTypeSymbol> contributingMultiThreadableTaskBaseTypes, 111ConcurrentDictionary<INamedTypeSymbol, DirectAnalysisState> directAnalysisStateCache) 122var containingType = containingMethod.ContainingType; 126INamedTypeSymbol containingTypeKey = containingType.OriginalDefinition; 213var memberContainingType = referencedSymbol.ContainingType; 237var methodContainingType = method.ContainingType; 285INamedTypeSymbol iTaskType, 286INamedTypeSymbol? multiThreadableTaskType, 288ImmutableHashSet<INamedTypeSymbol> filePathTypes, 289INamedTypeSymbol? taskEnvironmentType, 290INamedTypeSymbol? absolutePathType, 291INamedTypeSymbol? iTaskItemType, 292INamedTypeSymbol? consoleType) 295var taskTypes = new List<INamedTypeSymbol>(); 317foreach (var taskType in taskTypes) 428INamedTypeSymbol type, 437for (INamedTypeSymbol? currentType = type; 556private static void FindTaskTypes(INamespaceSymbol ns, INamedTypeSymbol iTaskType, List<INamedTypeSymbol> result) 564else if (member is INamedTypeSymbol type) 579private static void FindNestedTaskTypes(INamedTypeSymbol parentType, INamedTypeSymbol iTaskType, List<INamedTypeSymbol> result) 581foreach (var nested in parentType.GetTypeMembers())
UnsupportedTaskItemTypeAnalyzer.cs (9)
36var iTaskType = compilationContext.Compilation.GetTypeByMetadataName(WellKnownTypeNames.ITaskFullName); 42var iTaskItemOfTType = compilationContext.Compilation.GetTypeByMetadataName(WellKnownTypeNames.ITaskItemOfTFullName); 48var absolutePathType = compilationContext.Compilation.GetTypeByMetadataName(WellKnownTypeNames.AbsolutePathFullName); 49var fileInfoType = compilationContext.Compilation.GetTypeByMetadataName(WellKnownTypeNames.FileInfoFullName); 50var directoryInfoType = compilationContext.Compilation.GetTypeByMetadataName(WellKnownTypeNames.DirectoryInfoFullName); 54var namedType = (INamedTypeSymbol)symbolContext.Symbol; 89if (propertyType is not INamedTypeSymbol namedPropertyType || 144private static Location GetDiagnosticLocation(IPropertySymbol property, INamedTypeSymbol taskType)
Microsoft.CodeAnalysis (144)
Compilation\ClosedDerivedTypeInfo.cs (2)
18public ImmutableArray<INamedTypeSymbol> ClosedDerivedTypes { get; } 26internal ClosedDerivedTypeInfo(ImmutableArray<INamedTypeSymbol> closedDerivedTypes, bool isComplete)
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_Minimal.cs (2)
21protected bool NameBoundSuccessfullyToSameSymbol(INamedTypeSymbol symbol) 71arity = ((INamedTypeSymbol)candidate).Arity;
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)
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)
33INamedTypeSymbol? BaseType { get; } 40ImmutableArray<INamedTypeSymbol> Interfaces { get; } 53ImmutableArray<INamedTypeSymbol> AllInterfaces { get; } 252return ((INamedTypeSymbol)type).TypeArguments[0]; 282return (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 (1017)
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\30958ef190fa2467\SyntaxGeneratorInternal.cs (1)
123public abstract SyntaxNode DeclarationPattern(INamedTypeSymbol type, string name);
src\60c94c676d650713\ITypeSymbolExtensions.CollectTypeParameterSymbolsVisitor.cs (1)
57public override void VisitNamedType(INamedTypeSymbol symbol)
src\60c94c676d650713\SymbolEquivalenceComparer.ParameterSymbolEqualityComparer.cs (2)
23Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies,
src\60c94c676d650713\SymbolEquivalenceComparer.SignatureTypeSymbolEquivalenceComparer.cs (2)
18public bool Equals(ITypeSymbol? x, ITypeSymbol? y, Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies)
src\a16f30e1d256badc\AbstractTypeInferenceService.AbstractTypeInferrer.cs (1)
102protected static IEnumerable<TypeInferenceInfo> GetCollectionElementType(INamedTypeSymbol type)
src\b310f676f7308b7f\SymbolUsageAnalysis.DataFlowAnalyzer.FlowGraphAnalysisData.cs (1)
143if (owningSymbol.ContainingSymbol is INamedTypeSymbol { IsExtension: true, ExtensionParameter: { } extensionParameter })
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\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_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\ISymbolExtensions.cs (17)
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) 574var currentType = attributeType; 605return ((INamedTypeSymbol)symbol).GetMembers().OfType<IPropertySymbol>().Where(p => p.CanBeReferencedByName); 880public 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\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.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\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, 167public 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)
16INamedTypeSymbol containingType, 29public virtual INamedTypeSymbol BaseType => null; 31public virtual ImmutableArray<INamedTypeSymbol> Interfaces 34public 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_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\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\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\Simplification\SimplificationHelpers.cs (1)
80var typeSymbol = semanticModel.Compilation.GetSpecialType(specialType);
UpgradeMSBuildWorkspaceAnalyzer.cs (1)
85var msbuildWorkspace = context.Compilation.GetOrCreateTypeByMetadataName(MSBuildWorkspaceFullName);
Microsoft.CodeAnalysis.AnalyzerUtilities (694)
src\1e7e9f16bf7f1945\ValueContentAnalysis.ValueContentDataFlowOperationVisitor.cs (2)
215operation.Type is INamedTypeSymbol namedType && 244var incrementValueType = WellKnownTypeProvider.Compilation.GetSpecialType(SpecialType.System_Int32);
src\60c94c676d650713\ITypeSymbolExtensions.CollectTypeParameterSymbolsVisitor.cs (1)
57public override void VisitNamedType(INamedTypeSymbol symbol)
src\60c94c676d650713\SymbolEquivalenceComparer.ParameterSymbolEqualityComparer.cs (2)
23Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies,
src\60c94c676d650713\SymbolEquivalenceComparer.SignatureTypeSymbolEquivalenceComparer.cs (2)
18public bool Equals(ITypeSymbol? x, ITypeSymbol? y, Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies)
src\66dd3055a1c91c38\PointsToAnalysis.PointsToDataFlowOperationVisitor.cs (2)
1001method.ReturnType is INamedTypeSymbol namedType && 1022symbol.GetMemberType() is INamedTypeSymbol namedType &&
src\683181b2796de991\ParameterValidationAnalysis.ParameterValidationDataFlowOperationVisitor.cs (1)
29private readonly INamedTypeSymbol? _notNullAttributeType;
src\a03b2aad21e28a8a\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\a172c07bebba4cd8\DisposeAnalysis.DisposeDataFlowOperationVisitor.cs (1)
29private ImmutableHashSet<INamedTypeSymbol> DisposeOwnershipTransferLikelyTypes => DataFlowAnalysisContext.DisposeOwnershipTransferLikelyTypes;
src\b310f676f7308b7f\SymbolUsageAnalysis.DataFlowAnalyzer.FlowGraphAnalysisData.cs (1)
143if (owningSymbol.ContainingSymbol is INamedTypeSymbol { IsExtension: true, ExtensionParameter: { } extensionParameter })
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\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\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\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\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\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_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\ISymbolExtensions.cs (17)
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) 574var currentType = attributeType; 605return ((INamedTypeSymbol)symbol).GetMembers().OfType<IPropertySymbol>().Where(p => p.CanBeReferencedByName); 880public 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\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.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)
Microsoft.CodeAnalysis.CodeStyle (545)
src\4f5ad909b1ed0e10\AbstractUseCoalesceExpressionForNullableTernaryConditionalCheckDiagnosticAnalyzer.cs (1)
109var nullableType = semanticModel.Compilation.GetTypeByMetadataName(typeof(Nullable<>).FullName!);
src\60c94c676d650713\ITypeSymbolExtensions.CollectTypeParameterSymbolsVisitor.cs (1)
57public override void VisitNamedType(INamedTypeSymbol symbol)
src\60c94c676d650713\SymbolEquivalenceComparer.ParameterSymbolEqualityComparer.cs (2)
23Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies,
src\60c94c676d650713\SymbolEquivalenceComparer.SignatureTypeSymbolEquivalenceComparer.cs (2)
18public bool Equals(ITypeSymbol? x, ITypeSymbol? y, Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies)
src\9547feb31df4cc5d\AbstractRemoveUnusedParametersAndValuesDiagnosticAnalyzer.SymbolStartAnalyzer.BlockAnalyzer.cs (1)
504var interpolatedStringHandlerAttribute = context.Compilation.InterpolatedStringHandlerAttributeType();
src\9547feb31df4cc5d\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\b310f676f7308b7f\SymbolUsageAnalysis.DataFlowAnalyzer.FlowGraphAnalysisData.cs (1)
143if (owningSymbol.ContainingSymbol is INamedTypeSymbol { IsExtension: true, ExtensionParameter: { } extensionParameter })
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\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\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, 214if (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\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_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\ISymbolExtensions.cs (17)
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) 574var currentType = attributeType; 605return ((INamedTypeSymbol)symbol).GetMembers().OfType<IPropertySymbol>().Where(p => p.CanBeReferencedByName); 880public 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\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.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)
Microsoft.CodeAnalysis.CodeStyle.Fixes (303)
src\30958ef190fa2467\SyntaxGeneratorInternal.cs (1)
123public abstract SyntaxNode DeclarationPattern(INamedTypeSymbol type, string name);
src\a16f30e1d256badc\AbstractTypeInferenceService.AbstractTypeInferrer.cs (1)
102protected static IEnumerable<TypeInferenceInfo> GetCollectionElementType(INamedTypeSymbol type)
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; } 300out var token, out var arguments, out var typeToGenerateIn)) 318out var token, out var arguments, out var typeToGenerateIn)) 337out var token, out var arguments, out var typeToGenerateIn)) 397INamedTypeSymbol original, CancellationToken cancellationToken) 400TypeToGenerateIn = 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)
171private 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); 85protected virtual bool ContainingTypesOrSelfHasUnsafeKeyword(INamedTypeSymbol containingType) 211var 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; 197out var identifierToken, out var propertySymbol, out var typeToGenerateIn)) 219if (!ContainingType.Interfaces.OfType<INamedTypeSymbol>().Contains(TypeToGenerateIn)) 291out 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; 317constraints.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_DisposePattern.cs (5)
40ImmutableArray<(INamedTypeSymbol type, ImmutableArray<ISymbol> members)> unimplementedMembers, 201var gcType = compilation.GetTypeByMetadataName(typeof(GC).FullName!); 230INamedTypeSymbol containingType, 238var boolType = compilation.GetSpecialType(SpecialType.System_Boolean); 252private 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\ImplementInterfaceGenerator.cs (3)
70ImmutableArray<(INamedTypeSymbol type, ImmutableArray<ISymbol> members)> unimplementedMembers, 103ImmutableArray<(INamedTypeSymbol type, ImmutableArray<ISymbol> members)> unimplementedMembers, 346IEnumerable<INamedTypeSymbol> baseTypes)
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, 167public 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)
16INamedTypeSymbol containingType, 29public virtual INamedTypeSymbol BaseType => null; 31public virtual ImmutableArray<INamedTypeSymbol> Interfaces 34public 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_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\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\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\Simplification\SimplificationHelpers.cs (1)
80var typeSymbol = semanticModel.Compilation.GetSpecialType(specialType);
Microsoft.CodeAnalysis.CSharp (133)
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)
611public override INamedTypeSymbol GetDeclaredSymbol(BaseTypeDeclarationSyntax declarationSyntax, CancellationToken cancellationToken = default(CancellationToken)) 617public override INamedTypeSymbol GetDeclaredSymbol(DelegateDeclarationSyntax declarationSyntax, CancellationToken cancellationToken = default(CancellationToken)) 1145public override INamedTypeSymbol GetDeclaredSymbol(AnonymousObjectCreationExpressionSyntax declaratorSyntax, CancellationToken cancellationToken = default(CancellationToken)) 1152public 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)
1432public static INamedTypeSymbol? GetDeclaredSymbol(this SemanticModel? semanticModel, BaseTypeDeclarationSyntax declarationSyntax, CancellationToken cancellationToken = default(CancellationToken)) 1441public static INamedTypeSymbol? GetDeclaredSymbol(this SemanticModel? semanticModel, DelegateDeclarationSyntax declarationSyntax, CancellationToken cancellationToken = default(CancellationToken)) 1513public static INamedTypeSymbol? GetDeclaredSymbol(this SemanticModel? semanticModel, AnonymousObjectCreationExpressionSyntax declaratorSyntax, CancellationToken cancellationToken = default(CancellationToken)) 1522public 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_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)
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; 1073INamedTypeSymbol 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)
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 (41)
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(); 224TypeLayout INamedTypeSymbol.TypeLayout => UnderlyingNamedTypeSymbol.Layout;
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)
72INamedTypeSymbol ISymbol.ContainingType
Symbols\PublicModel\TypeParameterSymbol.cs (1)
57INamedTypeSymbol ITypeParameterSymbol.DeclaringType
Symbols\PublicModel\TypeSymbol.cs (4)
16private ImmutableArray<INamedTypeSymbol> _allInterfaces = default; 95INamedTypeSymbol ITypeSymbol.BaseType 103ImmutableArray<INamedTypeSymbol> ITypeSymbol.Interfaces 111ImmutableArray<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)
776[NotNullWhen(true)] INamedTypeSymbol? expressionType, 809static 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; 670if (castedType is not INamedTypeSymbol namedCastedType || 671originalConvertedType is not INamedTypeSymbol originalNamedConvertedType) 1113if (conversionOperation.Operand.Type is not INamedTypeSymbol original) 1122for (var type = original; type != null; type = type.BaseType) 1507var 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); 2888var delegateType = CSharpTypeInferenceService.Instance.InferDelegateType( 3062return ((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)
192var type = semanticModel.GetDeclaredSymbol(typeDeclaration, cancellationToken); 195foreach (var baseType in type.GetBaseTypesAndThis()) 223if (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)
168static void CollectContainingTypeArguments(INamedTypeSymbol? type, ArrayBuilder<ITypeSymbol> builder)
SignatureHelp\AbstractGenericNameSignatureHelpProvider_Method.cs (1)
64if (result is not INamedTypeSymbol namedTypeSymbol || !namedTypeSymbol.IsScriptClass)
SignatureHelp\AbstractGenericNameSignatureHelpProvider_NamedType.cs (1)
12INamedTypeSymbol namedType,
SignatureHelp\AbstractGenericNameSignatureHelpProvider.cs (1)
130if (symbol is INamedTypeSymbol 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 (21)
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 (2)
80private static ArgumentSyntax[] CollectAllArguments(InvocationExpressionSyntax invocation, INamedTypeSymbol pathType, SemanticModel semanticModel) 103private 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)
24protected override async ValueTask<(SyntaxNode TypeDeclaration, INamedTypeSymbol? TypeSymbol, bool IsRealType)> GetTypeSymbolAsync(SemanticModel semanticModel, SyntaxNode node, CancellationToken cancellationToken) 92else 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)
352var matchType = WellKnownTypeProvider.GetOrCreate(model.Compilation).GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemTextRegularExpressionsMatch);
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.NetCore.Analyzers\Runtime\CSharpPreferReadOnlySpanPropertiesOverReadOnlyArrayFields.Fixer.cs (5)
397!model.Compilation.TryGetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemMemoryExtensions, out var memoryExtensionsType) || 398!model.Compilation.TryGetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemReadOnlySpan1, out var readOnlySpanType) || 399!model.Compilation.TryGetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemAttributeUsageAttribute, out var attributeUsageAttributeType) || 420var indexType = model.Compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemIndex); 421var rangeType = model.Compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemRange);
Microsoft.CodeAnalysis.CSharp.Workspaces (144)
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)
Recommendations\CSharpRecommendationServiceRunner.cs (15)
102var symbol = _context.SemanticModel.GetDeclaredSymbol(_context.ContainingTypeOrEnumDeclaration!, _cancellationToken); 351var containingType = semanticModel.GetRequiredDeclaredSymbol( 438var contextEnclosingNamedType = semanticModel.GetEnclosingNamedType(_context.Position, _cancellationToken); 446INamedTypeSymbol? enclosingNamedType, 447ISet<INamedTypeSymbol> outerTypes, 493INamedTypeSymbol? enclosingNamedType, 679var containingType = _context.SemanticModel.GetEnclosingNamedType(_context.Position, _cancellationToken); 736if (leftHandBinding.GetBestOrAllSymbols().FirstOrDefault() is INamedTypeSymbol or INamespaceSymbol or IAliasSymbol) 780INamedTypeSymbol? instanceType, staticType; 781if (symbol is INamedTypeSymbol namedType) 790instanceType = reinterpretedSymbol.GetSymbolType() as INamedTypeSymbol; 799if (reinterpretedSymbol is not INamedTypeSymbol reinterprettedNamedType) 802instanceType = symbol.GetSymbolType() as INamedTypeSymbol; 889if (containerSymbol is INamedTypeSymbol typeSymbol && typeSymbol.IsSystemVoid()) 986var containingType = _context.SemanticModel.GetEnclosingNamedType(_context.Position, _cancellationToken);
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) 354var enclosingNamedType = semanticModel.GetEnclosingNamedType(memberAccess.SpanStart, cancellationToken); 380if (leftSymbol is INamedTypeSymbol) 425if (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)
776[NotNullWhen(true)] INamedTypeSymbol? expressionType, 809static 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; 670if (castedType is not INamedTypeSymbol namedCastedType || 671originalConvertedType is not INamedTypeSymbol originalNamedConvertedType) 1113if (conversionOperation.Operand.Type is not INamedTypeSymbol original) 1122for (var type = original; type != null; type = type.BaseType) 1507var 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); 2888var delegateType = CSharpTypeInferenceService.Instance.InferDelegateType( 3062return ((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 (340)
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_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\ISymbolExtensions.cs (17)
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) 574var currentType = attributeType; 605return ((INamedTypeSymbol)symbol).GetMembers().OfType<IPropertySymbol>().Where(p => p.CanBeReferencedByName); 880public static bool HasAttribute([NotNullWhen(true)] this ISymbol? symbol, [NotNullWhen(true)] INamedTypeSymbol? attributeClass)
Symbols\ISymbolExtensions.RequiresUnsafeModifierVisitor.cs (1)
56public override bool VisitNamedType(INamedTypeSymbol symbol)
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.Features (837)
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)
319SymbolKind.NamedType => GetDisplayName((INamedTypeSymbol)symbol), 333internal virtual string GetDisplayName(INamedTypeSymbol symbol) 501internal abstract bool IsPartial(INamedTypeSymbol type); 2623protected static bool BaseTypesEquivalent(INamedTypeSymbol oldType, INamedTypeSymbol newType, bool exact) 2660case SymbolKind.NamedType when oldMember is INamedTypeSymbol { DelegateInvokeMethod: { } oldInvokeMethod }: 2661var newInvokeMethod = ((INamedTypeSymbol)newMember).DelegateInvokeMethod; 2674private sealed class MemberInitializationUpdates(INamedTypeSymbol oldType) 2676public readonly INamedTypeSymbol OldType = oldType; 2724PooledDictionary<INamedTypeSymbol, MemberInitializationUpdates>? instanceConstructorEdits = null; 2725PooledDictionary<INamedTypeSymbol, MemberInitializationUpdates>? staticConstructorEdits = null; 2754Debug.Assert(oldSymbol is INamedTypeSymbol); 2755Debug.Assert(newSymbol is INamedTypeSymbol); 2836var oldContainingType = oldSymbol?.ContainingType; 2837var newContainingType = newSymbol?.ContainingType; 2838var containingType = newContainingType ?? oldContainingType; 2843oldContainingType ??= (INamedTypeSymbol?)containingTypeSymbolKey.Resolve(oldModel.Compilation, cancellationToken: cancellationToken).Symbol; 2844newContainingType ??= (INamedTypeSymbol?)containingTypeSymbolKey.Resolve(newModel.Compilation, cancellationToken: cancellationToken).Symbol; 2869if (syntacticEditKind != EditKind.Delete && oldSymbol is INamedTypeSymbol oldType && newSymbol is INamedTypeSymbol newType && IsReloadable(oldType)) 2971Debug.Assert(oldSymbol is INamedTypeSymbol); 2984var oldContainingType = oldSymbol.ContainingType; 2986var newContainingType = (INamedTypeSymbol?)containingTypeKey.Resolve(newModel.Compilation, cancellationToken: cancellationToken).Symbol; 3068INamedTypeSymbol? oldContainingType; 3069var newContainingType = newSymbol.ContainingType; 3111oldContainingType = containingTypeKey.Resolve(oldModel.Compilation, cancellationToken: cancellationToken).Symbol as INamedTypeSymbol; 3184Contract.ThrowIfFalse(newSymbol is INamedTypeSymbol || IsGlobalMain(newSymbol)); 3186if (!capabilities.GrantNewTypeDefinition((newSymbol as INamedTypeSymbol) ?? newSymbol.ContainingType)) 3453if (oldSymbol is not INamedTypeSymbol { TypeKind: TypeKind.Delegate }) 3468INamedTypeSymbol { IsGenericType: false } or // changes in type parameter attributes and constraints need type update 3524var oldContainingType = oldSymbol.ContainingType; 3525var newContainingType = newSymbol.ContainingType; 3661INamedTypeSymbol oldType, 3662INamedTypeSymbol newType, 3668Dictionary<INamedTypeSymbol, MemberInitializationUpdates> constructorEdits; 3671constructorEdits = staticConstructorEdits ??= PooledDictionary<INamedTypeSymbol, MemberInitializationUpdates>.GetInstance(); 3675constructorEdits = instanceConstructorEdits ??= PooledDictionary<INamedTypeSymbol, MemberInitializationUpdates>.GetInstance(); 3720=> IsMember(symbol) || symbol is INamedTypeSymbol { TypeKind: TypeKind.Delegate }; 3753INamedTypeSymbol otherContainingType, 4055using var _3 = PooledHashSet<INamedTypeSymbol>.GetInstance(out var processedTypes); 4063var oldType = (INamedTypeSymbol)GetRequiredDeclaredSymbol(oldModel.RequiredModel, oldTypeDeclaration, cancellationToken); 4094var newType = (INamedTypeSymbol)GetRequiredDeclaredSymbol(newModel.RequiredModel, newTypeDeclaration, cancellationToken); 4161private static bool IsReloadable(INamedTypeSymbol type) 4164private static INamedTypeSymbol? TryGetOutermostReloadableType(INamedTypeSymbol type) 4177INamedTypeSymbol? oldContainingType, 4178INamedTypeSymbol? newContainingType, 4207private static bool TypeOrBaseTypeHasCompilerServicesAttribute(INamedTypeSymbol type, string attributeName) 4209var current = type; 4539else if (oldSymbol is INamedTypeSymbol oldType && newSymbol is INamedTypeSymbol newType) 4627oldSymbol is not INamedTypeSymbol and not ITypeParameterSymbol and not IParameterSymbol && 4644if (current is INamedTypeSymbol { IsExtension: true }) 4660private static void AnalyzeBaseTypes(INamedTypeSymbol oldType, INamedTypeSymbol newType, ref RudeEditKind rudeEdit, ref bool hasGeneratedAttributeChange) 4767newParameter.ContainingType is INamedTypeSymbol { TypeKind: TypeKind.Delegate } newContainingDelegateType) 4775if (hasReturnTypeAttributeChange && newSymbol is INamedTypeSymbol { TypeKind: TypeKind.Delegate } newDelegateType) 4827private static void AddDelegateMethodEdit(ArrayBuilder<SemanticEditInfo> semanticEdits, INamedTypeSymbol delegateType, string methodName, CancellationToken cancellationToken) 4857else if (oldSymbol is INamedTypeSymbol { DelegateInvokeMethod: not null and var oldInvokeMethod } && 4858newSymbol is INamedTypeSymbol { DelegateInvokeMethod: not null and var newInvokeMethod }) 5027static bool IsSecurityAttribute(INamedTypeSymbol namedTypeSymbol) 5031var symbol = namedTypeSymbol; 5096INamedTypeSymbol recordType, 5111private static IEnumerable<ISymbol> GetRecordUpdatedSynthesizedMethods(Compilation compilation, INamedTypeSymbol record) 5378if (newSymbol.ContainingType is INamedTypeSymbol { IsComImport: true }) 5438private static bool HasExplicitOrSequentialLayout(INamedTypeSymbol type, DocumentSemanticModel model) 5457var layoutAttribute = model.Compilation.GetTypeByMetadataName(typeof(StructLayoutAttribute).FullName!); 5567IReadOnlyDictionary<INamedTypeSymbol, MemberInitializationUpdates> updatedTypes, 5581var oldType = updatesInCurrentDocument.OldType; 5776private bool AnyMemberInitializerBody(INamedTypeSymbol type, Func<MemberBody, bool> predicate, bool isStatic, CancellationToken cancellationToken) 5797private static IMethodSymbol? TryGetParameterlessConstructor(INamedTypeSymbol type, bool isStatic) 5818=> symbol is INamedTypeSymbol && 6350static bool IsCapturedPrimaryParameterCapturedInType(IParameterSymbol capture, INamedTypeSymbol otherType) 7015if (current is INamedTypeSymbol { Arity: > 0 }) 7051public 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) 409else if (symbol is INamedTypeSymbol) 412TypeToGenerateInOpt = (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_Helpers.cs (5)
63if (symbol is INamedTypeSymbol namedTypeSymbol) 291INamedTypeSymbol memberSymbol, 410INamedTypeSymbol interfaceSymbol, 475INamedTypeSymbol memberSymbol, 670if (memberSymbol is INamedTypeSymbol)
InheritanceMargin\AbstractInheritanceMarginService.cs (1)
71if (symbol is INamedTypeSymbol namedType)
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)
90if (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)
273var 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) 601private 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)
20private readonly INamedTypeSymbol _symbol; 23public WrappedNamedTypeSymbol(INamedTypeSymbol symbol, bool canImplementImplicitly, IDocumentationCommentFormattingService docCommentFormattingService) 50SymbolKind.NamedType => new WrappedNamedTypeSymbol((INamedTypeSymbol)m, canImplementImplicitly, docCommentFormattingService), 73public INamedTypeSymbol EnumUnderlyingType => _symbol.EnumUnderlyingType; 74public INamedTypeSymbol ConstructedFrom => _symbol.ConstructedFrom; 75public INamedTypeSymbol BaseType => _symbol.BaseType; 76public INamedTypeSymbol TupleUnderlyingType => _symbol.TupleUnderlyingType; 84public ImmutableArray<INamedTypeSymbol> Interfaces => _symbol.Interfaces; 85public ImmutableArray<INamedTypeSymbol> AllInterfaces => _symbol.AllInterfaces; 91public INamedTypeSymbol Construct(params ITypeSymbol[] typeArguments) 94public INamedTypeSymbol Construct(ImmutableArray<ITypeSymbol> typeArguments, ImmutableArray<NullableAnnotation> typeArgumentNullableAnnotations) 97public INamedTypeSymbol ConstructUnboundGenericType() 111public override ImmutableArray<INamedTypeSymbol> GetTypeMembers() 114public override ImmutableArray<INamedTypeSymbol> GetTypeMembers(string name) 117public override ImmutableArray<INamedTypeSymbol> GetTypeMembers(string name, int arity) 133public new INamedTypeSymbol OriginalDefinition => this; 162public 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\4f5ad909b1ed0e10\AbstractUseCoalesceExpressionForNullableTernaryConditionalCheckDiagnosticAnalyzer.cs (1)
109var nullableType = semanticModel.Compilation.GetTypeByMetadataName(typeof(Nullable<>).FullName!);
src\9547feb31df4cc5d\AbstractRemoveUnusedParametersAndValuesDiagnosticAnalyzer.SymbolStartAnalyzer.BlockAnalyzer.cs (1)
504var interpolatedStringHandlerAttribute = context.Compilation.InterpolatedStringHandlerAttributeType();
src\9547feb31df4cc5d\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\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\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\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, 214if (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; } 300out var token, out var arguments, out var typeToGenerateIn)) 318out var token, out var arguments, out var typeToGenerateIn)) 337out var token, out var arguments, out var typeToGenerateIn)) 397INamedTypeSymbol original, CancellationToken cancellationToken) 400TypeToGenerateIn = 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)
171private 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); 85protected virtual bool ContainingTypesOrSelfHasUnsafeKeyword(INamedTypeSymbol containingType) 211var 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; 197out var identifierToken, out var propertySymbol, out var typeToGenerateIn)) 219if (!ContainingType.Interfaces.OfType<INamedTypeSymbol>().Contains(TypeToGenerateIn)) 291out 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; 317constraints.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_DisposePattern.cs (5)
40ImmutableArray<(INamedTypeSymbol type, ImmutableArray<ISymbol> members)> unimplementedMembers, 201var gcType = compilation.GetTypeByMetadataName(typeof(GC).FullName!); 230INamedTypeSymbol containingType, 238var boolType = compilation.GetSpecialType(SpecialType.System_Boolean); 252private 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\ImplementInterfaceGenerator.cs (3)
70ImmutableArray<(INamedTypeSymbol type, ImmutableArray<ISymbol> members)> unimplementedMembers, 103ImmutableArray<(INamedTypeSymbol type, ImmutableArray<ISymbol> members)> unimplementedMembers, 346IEnumerable<INamedTypeSymbol> baseTypes)
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);
Testing\AbstractTestMethodFinder.cs (8)
132ImmutableArray<INamedTypeSymbol> testAttributeTypes, 133ImmutableArray<INamedTypeSymbol> inheritableTestAttributeTypes, 159for (var baseType = attributeClass.BaseType; baseType is not null; baseType = baseType.BaseType) 171private (ImmutableArray<INamedTypeSymbol> testAttributeTypes, ImmutableArray<INamedTypeSymbol> inheritableTestAttributeTypes) GetTestAttributeTypes( 174using var _1 = ArrayBuilder<INamedTypeSymbol>.GetInstance(out var testAttributeTypes); 175using var _2 = ArrayBuilder<INamedTypeSymbol>.GetInstance(out var inheritableTestAttributeTypes); 181var attributeType = compilation.GetTypeByMetadataName(metadataName);
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.NetAnalyzers (1742)
Microsoft.CodeQuality.Analyzers\ApiDesignGuidelines\AbstractTypesShouldNotHaveConstructors.cs (2)
45var symbol = (INamedTypeSymbol)context.Symbol;
Microsoft.CodeQuality.Analyzers\ApiDesignGuidelines\AbstractTypesShouldNotHaveConstructors.Fixer.cs (1)
44if (model.GetDeclaredSymbol(nodeToFix, cancellationToken) is not INamedTypeSymbol classSymbol)
Microsoft.CodeQuality.Analyzers\ApiDesignGuidelines\AvoidEmptyInterfaces.cs (2)
45var symbol = (INamedTypeSymbol)context.Symbol;
Microsoft.CodeQuality.Analyzers\ApiDesignGuidelines\AvoidExcessiveParametersOnGenericTypes.cs (2)
43var namedType = (INamedTypeSymbol)context.Symbol;
Microsoft.CodeQuality.Analyzers\ApiDesignGuidelines\AvoidOutParameters.cs (3)
44var outAttributeType = context.Compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemRuntimeInteropServicesOutAttribute); 53private readonly INamedTypeSymbol? outAttributeSymbol; 55public MethodAnalyzer(INamedTypeSymbol? outAttributeSymbol)
Microsoft.CodeQuality.Analyzers\ApiDesignGuidelines\CancellationTokenParametersMustComeLast.cs (3)
43INamedTypeSymbol? cancellationTokenType = wellKnownTypeProvider.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemThreadingCancellationToken); 44INamedTypeSymbol? iprogressType = wellKnownTypeProvider.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemIProgress1); 46var builder = ImmutableHashSet.CreateBuilder<INamedTypeSymbol>();
Microsoft.CodeQuality.Analyzers\ApiDesignGuidelines\CollectionPropertiesShouldBeReadOnly.cs (10)
162public INamedTypeSymbol? ICollectionType { get; } 163public INamedTypeSymbol? GenericICollectionType { get; } 164public INamedTypeSymbol? ArrayType { get; } 165public INamedTypeSymbol? DataMemberAttribute { get; } 166public ImmutableHashSet<INamedTypeSymbol> ImmutableInterfaces { get; } 167public INamedTypeSymbol? ReadonlyCollection { get; } 168public INamedTypeSymbol? ReadonlyDictionary { get; } 169public INamedTypeSymbol? ReadonlyObservableCollection { get; } 171private static ImmutableHashSet<INamedTypeSymbol> GetIImmutableInterfaces(WellKnownTypeProvider wellKnownTypeProvider) 173var builder = ImmutableHashSet.CreateBuilder<INamedTypeSymbol>();
Microsoft.CodeQuality.Analyzers\ApiDesignGuidelines\CollectionsShouldImplementGenericInterface.cs (20)
68var interfaceToGenericInterfaceMapBuilder = ImmutableArray.CreateBuilder<KeyValuePair<INamedTypeSymbol, ImmutableArray<INamedTypeSymbol>>>(); 70if (wellKnownTypeProvider.TryGetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemCollectionsIList, out var iListType)) 72var builder = ArrayBuilder<INamedTypeSymbol>.GetInstance(); 81if (wellKnownTypeProvider.TryGetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemCollectionsICollection, out var iCollectionType)) 83var builder = ArrayBuilder<INamedTypeSymbol>.GetInstance(); 92if (wellKnownTypeProvider.TryGetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemCollectionsIEnumerable, out var iEnumerableType) && 93wellKnownTypeProvider.TryGetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemCollectionsGenericIEnumerable1, out var genericIEnumerableType)) 102private static void AnalyzeSymbol(SymbolAnalysisContext context, ImmutableArray<KeyValuePair<INamedTypeSymbol, ImmutableArray<INamedTypeSymbol>>> interfacePairs) 106var namedTypeSymbol = (INamedTypeSymbol)context.Symbol; 114using var allInterfaces = PooledHashSet<INamedTypeSymbol>.GetInstance(); 115foreach (var @interface in namedTypeSymbol.AllInterfaces.Select(i => i.OriginalDefinition)) 124foreach (var @interface in allInterfaces) 127userMap.TryGetValue(@interface, out var genericInterface) && 158void ReportDiagnostic(INamedTypeSymbol @interface, INamedTypeSymbol genericInterface) 165void ReportDiagnosticAlt(INamedTypeSymbol @interface, IEnumerable<INamedTypeSymbol> genericInterfaces)
Microsoft.CodeQuality.Analyzers\ApiDesignGuidelines\DeclareTypesInNamespaces.cs (2)
44var type = (INamedTypeSymbol)context.Symbol;
Microsoft.CodeQuality.Analyzers\ApiDesignGuidelines\DefineAccessorsForAttributeArguments.cs (9)
72INamedTypeSymbol? attributeType = compilationContext.Compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemAttribute); 80AnalyzeSymbol((INamedTypeSymbol)context.Symbol, attributeType, context.Compilation, context.ReportDiagnostic); 86private static void AnalyzeSymbol(INamedTypeSymbol symbol, INamedTypeSymbol attributeType, Compilation compilation, Action<Diagnostic> addDiagnostic) 99private static IEnumerable<IParameterSymbol> GetAllPublicConstructorParameters(INamedTypeSymbol attributeType) 123private static IDictionary<string, IPropertySymbol> GetAllPropertiesInTypeChain(INamedTypeSymbol attributeType) 126foreach (INamedTypeSymbol currentType in attributeType.GetBaseTypesAndThis()) 140private static void AnalyzeParameters(Compilation compilation, IEnumerable<IParameterSymbol> parameters, IDictionary<string, IPropertySymbol> propertiesMap, INamedTypeSymbol attributeType, Action<Diagnostic> addDiagnostic) 190private static Diagnostic GetDefaultDiagnostic(IParameterSymbol parameter, INamedTypeSymbol attributeType)
Microsoft.CodeQuality.Analyzers\ApiDesignGuidelines\DefineAccessorsForAttributeArguments.Fixer.cs (1)
138INamedTypeSymbol typeSymbol = parameterSymbol.ContainingType;
Microsoft.CodeQuality.Analyzers\ApiDesignGuidelines\DoNotCatchGeneralExceptionTypes.cs (1)
44protected override bool IsConfiguredDisallowedExceptionType(INamedTypeSymbol namedTypeSymbol, IMethodSymbol containingMethod, Compilation compilation, AnalyzerOptions analyzerOptions, CancellationToken cancellationToken)
Microsoft.CodeQuality.Analyzers\ApiDesignGuidelines\DoNotDeclareVisibleInstanceFields.cs (1)
42var structLayoutAttributeType = context.Compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemRuntimeInteropServicesStructLayoutAttribute);
Microsoft.CodeQuality.Analyzers\ApiDesignGuidelines\DoNotDirectlyAwaitATask.cs (19)
50if (!TryGetTaskTypes(wellKnownTypeProvider, out ImmutableArray<INamedTypeSymbol> taskTypes)) 55var iAsyncDisposable = wellKnownTypeProvider.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemIAsyncDisposable); 56var configuredAsyncDisposable = wellKnownTypeProvider.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemRuntimeCompilerServicesConfiguredAsyncDisposable); 58var iAsyncEnumerable = wellKnownTypeProvider.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemCollectionsGenericIAsyncEnumerable1); 59var configuredAsyncEnumerable = wellKnownTypeProvider.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemRuntimeCompilerServicesConfiguredCancelableAsyncEnumerable); 95private static void AnalyzeAwaitForEachLoopOperation(OperationAnalysisContext context, INamedTypeSymbol iAsyncEnumerable, INamedTypeSymbol configuredAsyncEnumerable) 105if (collectionType is INamedTypeSymbol namedCollectionType && namedCollectionType.DerivesFromOrImplementsAnyConstructionOf(iAsyncEnumerable) || 113private static void AnalyzeAwaitOperation(OperationAnalysisContext context, ImmutableArray<INamedTypeSymbol> taskTypes) 125private static void AnalyzeUsingOperation(OperationAnalysisContext context, INamedTypeSymbol iAsyncDisposable, INamedTypeSymbol configuredAsyncDisposable) 154private static void AnalyzeUsingDeclarationOperation(OperationAnalysisContext context, INamedTypeSymbol iAsyncDisposable, INamedTypeSymbol configuredAsyncDisposable) 180private static bool TryGetTaskTypes(WellKnownTypeProvider typeProvider, out ImmutableArray<INamedTypeSymbol> taskTypes) 182INamedTypeSymbol? taskType = typeProvider.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemThreadingTasksTask); 183INamedTypeSymbol? taskOfTType = typeProvider.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemThreadingTasksTask1); 187taskTypes = ImmutableArray<INamedTypeSymbol>.Empty; 191INamedTypeSymbol? valueTaskType = typeProvider.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemThreadingTasksValueTask); 192INamedTypeSymbol? valueTaskOfTType = typeProvider.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemThreadingTasksValueTask1);
Microsoft.CodeQuality.Analyzers\ApiDesignGuidelines\DoNotExposeGenericLists.cs (1)
41if (!context.Compilation.TryGetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemCollectionsGenericList1, out var genericListType))
Microsoft.CodeQuality.Analyzers\ApiDesignGuidelines\DoNotHideBaseClassMethods.cs (1)
67private static IEnumerable<IMethodSymbol> GetMethodsHiddenByMethod(IMethodSymbol method, INamedTypeSymbol? baseType)
Microsoft.CodeQuality.Analyzers\ApiDesignGuidelines\DoNotOverloadOperatorEqualsOnReferenceTypes.cs (3)
41var iequatableType = context.Compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemIEquatable1); 42var icomparableType = context.Compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemIComparable); 43var icomparableGenericType = context.Compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemIComparable1);
Microsoft.CodeQuality.Analyzers\ApiDesignGuidelines\DoNotPassTypesByReference.cs (1)
42var outAttributeType = context.Compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemRuntimeInteropServicesOutAttribute);
Microsoft.CodeQuality.Analyzers\ApiDesignGuidelines\DoNotPrefixEnumValuesWithTypeName.cs (2)
49var symbol = (INamedTypeSymbol)context.Symbol;
Microsoft.CodeQuality.Analyzers\ApiDesignGuidelines\DoNotRaiseExceptionsInUnexpectedLocations.cs (7)
70INamedTypeSymbol? exceptionType = compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemException); 71INamedTypeSymbol? unreachableExceptionType = compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemDiagnosticsUnreachableException); 106if (throwOperation.GetThrownExceptionType() is INamedTypeSymbol thrownExceptionType && 262INamedTypeSymbol? iEqualityComparer = compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemCollectionsGenericIEqualityComparer1); 270INamedTypeSymbol? iEquatable = compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemIEquatable1); 298INamedTypeSymbol? iEqualityComparer = compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemCollectionsGenericIEqualityComparer1); 304INamedTypeSymbol? iHashCodeProvider = compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemCollectionsIHashCodeProvider);
Microsoft.CodeQuality.Analyzers\ApiDesignGuidelines\EnumShouldNotHaveDuplicatedValues.cs (3)
58var enumSymbol = (INamedTypeSymbol)context.Symbol; 115var containingType = field.ContainingType;
Microsoft.CodeQuality.Analyzers\ApiDesignGuidelines\EnumsShouldHaveZeroValue.cs (7)
92INamedTypeSymbol? flagsAttribute = compilationContext.Compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemFlagsAttribute); 102private static void AnalyzeSymbol(SymbolAnalysisContext context, INamedTypeSymbol flagsAttribute) 104var symbol = (INamedTypeSymbol)context.Symbol; 131private static void CheckFlags(INamedTypeSymbol namedType, ImmutableArray<IFieldSymbol> zeroValuedFields, 168private static void CheckNonFlags(INamedTypeSymbol namedType, ImmutableArray<IFieldSymbol> zeroValuedFields, Action<Diagnostic> addDiagnostic) 177internal static IEnumerable<IFieldSymbol> GetZeroValuedFields(INamedTypeSymbol enumType)
Microsoft.CodeQuality.Analyzers\ApiDesignGuidelines\EnumsShouldHaveZeroValue.Fixer.cs (5)
29INamedTypeSymbol? flagsAttributeType = model.Compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemFlagsAttribute); 62async ct => await ApplyRuleNameMultipleZeroAsync(context.Document, (INamedTypeSymbol)declaredSymbol, context.CancellationToken).ConfigureAwait(false), 70async ct => await ApplyRuleNameNoZeroValueAsync(context.Document, (INamedTypeSymbol)declaredSymbol, context.CancellationToken).ConfigureAwait(false), 102private static async Task<Document> ApplyRuleNameMultipleZeroAsync(Document document, INamedTypeSymbol enumType, CancellationToken cancellationToken) 145private static async Task<Document> ApplyRuleNameNoZeroValueAsync(Document document, INamedTypeSymbol enumType, CancellationToken cancellationToken)
Microsoft.CodeQuality.Analyzers\ApiDesignGuidelines\EnumStorageShouldBeInt32.cs (4)
44INamedTypeSymbol? flagsAttribute = compilationContext.Compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemFlagsAttribute); 54private static void AnalyzeSymbol(SymbolAnalysisContext context, INamedTypeSymbol flagsAttribute) 56var symbol = (INamedTypeSymbol)context.Symbol;
Microsoft.CodeQuality.Analyzers\ApiDesignGuidelines\EnumWithFlagsAttribute.cs (4)
69var flagsAttributeType = compilationStartContext.Compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemFlagsAttribute); 83private static void AnalyzeSymbol(SymbolAnalysisContext symbolContext, INamedTypeSymbol flagsAttributeType) 85var symbol = (INamedTypeSymbol)symbolContext.Symbol;
Microsoft.CodeQuality.Analyzers\ApiDesignGuidelines\EnumWithFlagsAttribute.Fixer.cs (3)
32INamedTypeSymbol? flagsAttributeType = model.Compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemFlagsAttribute); 66INamedTypeSymbol? flagsAttributeType = model.Compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemFlagsAttribute); 78else if (model.GetDeclaredSymbol(node, cancellationToken) is INamedTypeSymbol enumType)
Microsoft.CodeQuality.Analyzers\ApiDesignGuidelines\EquatableAnalyzer.cs (6)
57INamedTypeSymbol? equatableType = context.Compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemIEquatable1); 64private static void AnalyzeSymbol(SymbolAnalysisContext context, INamedTypeSymbol equatableType) 66var namedType = (INamedTypeSymbol)context.Symbol; 75INamedTypeSymbol constructedEquatable = equatableType.Construct(namedType); 76INamedTypeSymbol? implementation = namedType
Microsoft.CodeQuality.Analyzers\ApiDesignGuidelines\EquatableAnalyzer.Fixer.cs (22)
51if (model.GetDeclaredSymbol(declaration, context.CancellationToken) is not INamedTypeSymbol type || type.TypeKind != TypeKind.Class && type.TypeKind != TypeKind.Struct) 56INamedTypeSymbol? equatableType = model.Compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemIEquatable1); 102if (model.GetDeclaredSymbol(declaration, cancellationToken) is not INamedTypeSymbol type || 108INamedTypeSymbol? equatableType = model.Compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemIEquatable1); 130private static bool TypeImplementsEquatable(INamedTypeSymbol type, INamedTypeSymbol equatableType) 132INamedTypeSymbol constructedEquatable = equatableType.Construct(type); 133INamedTypeSymbol? implementation = type 140INamedTypeSymbol typeSymbol, Compilation compilation, INamedTypeSymbol equatableType, 157INamedTypeSymbol constructedType = equatableType.Construct(typeSymbol); 162INamedTypeSymbol typeSymbol, INamedTypeSymbol equatableType, SyntaxEditor editor) 198private static bool HasExplicitEqualsImplementation(INamedTypeSymbol typeSymbol, INamedTypeSymbol equatableType) 200INamedTypeSymbol constructedType = equatableType.Construct(typeSymbol); 218INamedTypeSymbol typeSymbol, SyntaxNode argumentName, INamedTypeSymbol equatableType) 233INamedTypeSymbol typeSymbol, SyntaxNode argumentName, INamedTypeSymbol equatableType) 252INamedTypeSymbol typeSymbol, SyntaxNode argumentName) 264INamedTypeSymbol typeSymbol, SyntaxNode argumentName)
Microsoft.CodeQuality.Analyzers\ApiDesignGuidelines\ExceptionsShouldBePublic.cs (3)
63ImmutableHashSet<INamedTypeSymbol> exceptionTypes = s_exceptionTypeNames 73var symbol = (INamedTypeSymbol)saContext.Symbol;
Microsoft.CodeQuality.Analyzers\ApiDesignGuidelines\Helpers\EnumHelpers.cs (1)
62internal static bool TryGetEnumMemberValues(INamedTypeSymbol enumType, out IList<ulong> values)
Microsoft.CodeQuality.Analyzers\ApiDesignGuidelines\IdentifiersShouldDifferByMoreThanCase.cs (7)
56IEnumerable<INamedTypeSymbol> globalTypes = context.Compilation.GlobalNamespace.GetTypeMembers().Where(item => 67var namedTypeSymbol = (INamedTypeSymbol)context.Symbol; 100IEnumerable<INamedTypeSymbol> typeMembers = @namespace.GetTypeMembers().Where(item => 206=> member is INamedTypeSymbol typeSymbol && 235private static void CheckTypeNames(IEnumerable<INamedTypeSymbol> types, CompilationAnalysisContext context) 244foreach (var type in types)
Microsoft.CodeQuality.Analyzers\ApiDesignGuidelines\IdentifiersShouldHaveCorrectPrefix.cs (2)
77(INamedTypeSymbol)context.Symbol, 96private static void AnalyzeNamedTypeSymbol<TContext>(INamedTypeSymbol symbol, bool allowSingleLetterTypeParameters, Action<TContext, Diagnostic> addDiagnostic, TContext context)
Microsoft.CodeQuality.Analyzers\ApiDesignGuidelines\IdentifiersShouldHaveCorrectSuffix.cs (11)
111var baseTypeSuffixMapBuilder = ImmutableDictionary.CreateBuilder<INamedTypeSymbol, ImmutableArray<string>>(SymbolEqualityComparer.Default); 112var interfaceTypeSuffixMapBuilder = ImmutableDictionary.CreateBuilder<INamedTypeSymbol, ImmutableArray<string>>(SymbolEqualityComparer.Default); 116if (!wellKnownTypeProvider.TryGetOrCreateTypeByMetadataName(typeName, out var wellKnownNamedType) 138var namedTypeSymbol = (INamedTypeSymbol)context.Symbol; 153? namedTypeSymbol.BaseType != null ? ImmutableArray.Create(namedTypeSymbol.BaseType) : ImmutableArray<INamedTypeSymbol>.Empty 182var eventArgsType = wellKnownTypeProvider.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemEventArgs); 194((INamedTypeSymbol)eventSymbol.Type).DelegateInvokeMethod?.HasEventHandlerSignature(eventArgsType) == true) 202private static bool TryGetTypeSuffix(IEnumerable<INamedTypeSymbol> typeSymbols, ImmutableDictionary<INamedTypeSymbol, ImmutableArray<string>> hardcodedMap, 205foreach (var type in typeSymbols)
Microsoft.CodeQuality.Analyzers\ApiDesignGuidelines\IdentifiersShouldNotContainUnderscores.cs (3)
152var namedType = (INamedTypeSymbol)symbol; 255var containingType = parameter.ContainingType;
Microsoft.CodeQuality.Analyzers\ApiDesignGuidelines\IdentifiersShouldNotHaveIncorrectSuffix.cs (9)
127var suffixToBaseTypeDictionaryBuilder = ImmutableDictionary.CreateBuilder<string, ImmutableArray<INamedTypeSymbol>>(); 133ImmutableArray<INamedTypeSymbol> namedTypeSymbolArray = ImmutableArray.CreateRange( 144var namedTypeSymbol = (INamedTypeSymbol)symbolAnalysisContext.Symbol; 271INamedTypeSymbol containingType = memberSymbol.ContainingType; 289private static bool MemberNameExistsInHierarchy(string memberName, INamedTypeSymbol containingType, SymbolKind kind) 291for (INamedTypeSymbol? baseType = containingType; baseType != null; baseType = baseType.BaseType) 302private static bool IsNotChildOfAnyButHasSuffix(INamedTypeSymbol namedTypeSymbol, ImmutableArray<INamedTypeSymbol> parentTypes, string suffix, ImmutableHashSet<string> allowedSuffixes)
Microsoft.CodeQuality.Analyzers\ApiDesignGuidelines\IdentifiersShouldNotMatchKeywords.cs (4)
126INamedTypeSymbol type = (INamedTypeSymbol)context.Symbol; 175INamedTypeSymbol type = (INamedTypeSymbol)context.Symbol;
Microsoft.CodeQuality.Analyzers\ApiDesignGuidelines\ImplementIDisposableCorrectly.cs (27)
134INamedTypeSymbol? disposableType = context.Compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemIDisposable); 145INamedTypeSymbol? garbageCollectorType = context.Compilation.GetOrCreateTypeByMetadataName(GarbageCollectorTypeName); 166private readonly INamedTypeSymbol _disposableType; 170public PerCompilationAnalyzer(INamedTypeSymbol disposableType, IMethodSymbol disposeInterfaceMethod, IMethodSymbol suppressFinalizeMethod) 185var type = (INamedTypeSymbol)context.Symbol; 248INamedTypeSymbol type = method.ContainingType; 281private static void CheckIDisposableReimplementationRule(INamedTypeSymbol type, SymbolAnalysisContext context, bool implementsDisposableInBaseType) 292private static void CheckDisposeSignatureRule(IMethodSymbol method, INamedTypeSymbol type, SymbolAnalysisContext context) 304private static void CheckRenameDisposeRule(IMethodSymbol method, INamedTypeSymbol type, SymbolAnalysisContext context) 315private void CheckDisposeOverrideRule(IMethodSymbol method, INamedTypeSymbol type, SymbolAnalysisContext context) 339private static void CheckFinalizeOverrideRule(INamedTypeSymbol type, SymbolAnalysisContext context) 344var baseTypeWithFinalizer = GetFirstBaseTypeWithFinalizerOrDefault(type); 355private static void CheckProvideDisposeBoolRule(INamedTypeSymbol type, SymbolAnalysisContext context) 363private static void CheckDisposeBoolSignatureRule(IMethodSymbol method, INamedTypeSymbol type, SymbolAnalysisContext context) 375private void CheckDisposeImplementationRule(IMethodSymbol method, INamedTypeSymbol type, ImmutableArray<IOperation> operationBlocks, OperationBlockAnalysisContext context) 387private static void CheckFinalizeImplementationRule(IMethodSymbol method, INamedTypeSymbol type, ImmutableArray<IOperation> operationBlocks, OperationBlockAnalysisContext context) 402private static INamedTypeSymbol GetFirstBaseTypeWithFinalizerOrDefault(INamedTypeSymbol type) 426private IMethodSymbol? FindDisposeMethod(INamedTypeSymbol type) 439private static IMethodSymbol FindDisposeBoolMethod(INamedTypeSymbol type) 447private IMethodSymbol? FindInheritedDisposeBoolMethod(INamedTypeSymbol? type) 461private static bool IsDisposeBoolCall(IInvocationOperation invocationExpression, INamedTypeSymbol type, bool expectedValue) 507private readonly INamedTypeSymbol _type; 511public DisposeImplementationValidator(IMethodSymbol suppressFinalizeMethod, INamedTypeSymbol type) 634private readonly INamedTypeSymbol _type; 637public FinalizeImplementationValidator(INamedTypeSymbol type)
Microsoft.CodeQuality.Analyzers\ApiDesignGuidelines\ImplementStandardExceptionConstructors.cs (4)
63var exceptionType = context.Compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemException); 72var namedTypeSymbol = (INamedTypeSymbol)symbolContext.Symbol; 128private static void ReportDiagnostic(SymbolAnalysisContext context, INamedTypeSymbol namedTypeSymbol, MissingCtorSignature missingCtorSignature, string constructorSignature)
Microsoft.CodeQuality.Analyzers\ApiDesignGuidelines\ImplementStandardExceptionConstructors.Fixer.cs (2)
52model.GetDeclaredSymbol(targetNode, cancellationToken) is not INamedTypeSymbol typeSymbol) 83if (!model.Compilation.TryGetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemException, out INamedTypeSymbol? exceptionType))
Microsoft.CodeQuality.Analyzers\ApiDesignGuidelines\InterfaceMethodsShouldBeCallableByChildTypes.cs (5)
52if (compilationContext.Compilation.TryGetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemIDisposable, out var iDisposableTypeSymbol)) 92private static void AnalyzeOperationBlock(OperationBlockAnalysisContext context, INamedTypeSymbol iDisposableTypeSymbol) 137private static bool HasVisibleAlternate(INamedTypeSymbol namedType, IMethodSymbol interfaceMethod, INamedTypeSymbol iDisposableTypeSymbol) 139foreach (INamedTypeSymbol type in namedType.GetBaseTypesAndThis())
Microsoft.CodeQuality.Analyzers\ApiDesignGuidelines\InterfaceMethodsShouldBeCallableByChildTypes.Fixer.cs (1)
108foreach (INamedTypeSymbol type in methodSymbol.ContainingType.GetBaseTypesAndThis())
Microsoft.CodeQuality.Analyzers\ApiDesignGuidelines\MarkAssembliesWithAttributesDiagnosticAnalyzer.cs (3)
59var assemblyVersionAttributeSymbol = context.Compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemReflectionAssemblyVersionAttribute); 60var assemblyComplianceAttributeSymbol = context.Compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemCLSCompliantAttribute); 69var razorCompiledItemAttribute = context.Compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.MicrosoftAspNetCoreRazorHostingRazorCompiledItemAttribute);
Microsoft.CodeQuality.Analyzers\ApiDesignGuidelines\MarkAssembliesWithComVisible.cs (2)
63INamedTypeSymbol? comVisibleAttributeSymbol = context.Compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemRuntimeInteropServicesComVisibleAttribute); 96.OfType<INamedTypeSymbol>()
Microsoft.CodeQuality.Analyzers\ApiDesignGuidelines\MarkAttributesWithAttributeUsage.cs (6)
42INamedTypeSymbol? attributeType = compilationContext.Compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemAttribute); 43INamedTypeSymbol? attributeUsageAttributeType = compilationContext.Compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemAttributeUsageAttribute); 52(INamedTypeSymbol)context.Symbol, 62private static void AnalyzeSymbol<TContext>(INamedTypeSymbol symbol, INamedTypeSymbol attributeType, INamedTypeSymbol attributeUsageAttributeType, Action<TContext, Diagnostic> addDiagnostic, TContext context)
Microsoft.CodeQuality.Analyzers\ApiDesignGuidelines\MarkAttributesWithAttributeUsage.Fixer.cs (2)
95if (!semanticModel.Compilation.TryGetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemAttributeUsageAttribute, out var attributeUsageAttributeType) || 96!semanticModel.Compilation.TryGetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemAttributeTargets, out var attributeTargetsType))
Microsoft.CodeQuality.Analyzers\ApiDesignGuidelines\MovePInvokesToNativeMethodsClass.cs (2)
48(INamedTypeSymbol)symbolContext.Symbol, 54private static void AnalyzeSymbol<TContext>(INamedTypeSymbol symbol, Action<TContext, Diagnostic> addDiagnostic, TContext context)
Microsoft.CodeQuality.Analyzers\ApiDesignGuidelines\NestedTypesShouldNotBeVisible.cs (12)
59INamedTypeSymbol? enumeratorType = wellKnownTypeProvider.Compilation.GetSpecialType(SpecialType.System_Collections_IEnumerator); 60INamedTypeSymbol? dataSetType = wellKnownTypeProvider.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemDataDataSet); 61INamedTypeSymbol? dataTableType = wellKnownTypeProvider.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemDataDataTable); 62INamedTypeSymbol? dataRowType = wellKnownTypeProvider.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemDataDataRow); 67var nestedType = (INamedTypeSymbol)symbolAnalysisContext.Symbol; 68INamedTypeSymbol containingType = nestedType.ContainingType; 142INamedTypeSymbol containingType, 143INamedTypeSymbol nestedType, 144INamedTypeSymbol? dataSetType, 145INamedTypeSymbol? dataTableType, 146INamedTypeSymbol? dataRowType)
Microsoft.CodeQuality.Analyzers\ApiDesignGuidelines\OperatorOverloadsHaveNamedAlternates.cs (3)
83var namedType = (INamedTypeSymbol)context.Symbol; 108var typeSymbol = methodSymbol.ContainingType;
Microsoft.CodeQuality.Analyzers\ApiDesignGuidelines\OperatorOverloadsHaveNamedAlternates.Fixer.cs (2)
53INamedTypeSymbol typeSymbol = operatorOverloadSymbol.ContainingType; 148INamedTypeSymbol intType = compilation.GetSpecialType(SpecialType.System_Int32);
Microsoft.CodeQuality.Analyzers\ApiDesignGuidelines\OperatorsShouldHaveSymmetricalOverloads.cs (4)
41var namedType = (INamedTypeSymbol)symbolAnalysisContext.Symbol; 58SymbolAnalysisContext analysisContext, INamedTypeSymbol namedType, 69INamedTypeSymbol namedType,
Microsoft.CodeQuality.Analyzers\ApiDesignGuidelines\OverloadOperatorEqualsOnOverridingValueTypeEquals.cs (2)
41var namedTypeSymbol = (INamedTypeSymbol)context.Symbol;
Microsoft.CodeQuality.Analyzers\ApiDesignGuidelines\OverloadOperatorEqualsOnOverridingValueTypeEquals.Fixer.cs (1)
41if (model.GetDeclaredSymbol(declaration, cancellationToken) is not INamedTypeSymbol typeSymbol)
Microsoft.CodeQuality.Analyzers\ApiDesignGuidelines\OverrideEqualsAndOperatorEqualsOnValueTypes.cs (6)
55var iEnumerator = compilationStartContext.Compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemCollectionsIEnumerator); 56var genericIEnumerator = compilationStartContext.Compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemCollectionsGenericIEnumerator1); 57var unionAttribute = compilationStartContext.Compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemRuntimeCompilerServicesUnionAttribute); 58var unionInterface = compilationStartContext.Compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemRuntimeCompilerServicesIUnion); 62var namedType = (INamedTypeSymbol)context.Symbol;
Microsoft.CodeQuality.Analyzers\ApiDesignGuidelines\OverrideEqualsAndOperatorEqualsOnValueTypes.Fixer.cs (1)
72if (model.GetDeclaredSymbol(declaration, cancellationToken) is not INamedTypeSymbol typeSymbol)
Microsoft.CodeQuality.Analyzers\ApiDesignGuidelines\OverrideEqualsOnOverloadingOperatorEquals.Fixer.cs (1)
35if (model.GetDeclaredSymbol(typeDeclaration, cancellationToken) is not INamedTypeSymbol typeSymbol ||
Microsoft.CodeQuality.Analyzers\ApiDesignGuidelines\OverrideMethodsOnComparableTypes.cs (14)
70INamedTypeSymbol? comparableType = compilationContext.Compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemIComparable); 71INamedTypeSymbol? genericComparableType = compilationContext.Compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemIComparable1); 87private static void AnalyzeSymbol(SymbolAnalysisContext context, INamedTypeSymbol? comparableType, INamedTypeSymbol? genericComparableType) 91var namedTypeSymbol = (INamedTypeSymbol)context.Symbol; 119private static bool IsComparableWithBaseNotComparable(INamedTypeSymbol namedTypeSymbol, INamedTypeSymbol? comparableType, INamedTypeSymbol? genericComparableType) 126foreach (var baseType in namedTypeSymbol.GetBaseTypes()) 137private static bool IsComparableCore(INamedTypeSymbol namedTypeSymbol, INamedTypeSymbol? comparableType, INamedTypeSymbol? genericComparableType) 141private static string GetNeededComparisonOperators(INamedTypeSymbol symbol)
Microsoft.CodeQuality.Analyzers\ApiDesignGuidelines\OverrideMethodsOnComparableTypes.Fixer.cs (3)
34private static async Task<INamedTypeSymbol?> GetTypeToFixAsync(Document document, TextSpan span, CancellationToken cancellationToken) 46return model.GetDeclaredSymbol(declaration, cancellationToken) is INamedTypeSymbol { TypeKind: TypeKind.Class or TypeKind.Struct } typeSymbol 61if (model.GetDeclaredSymbol(declaration, cancellationToken) is not INamedTypeSymbol { TypeKind: TypeKind.Class or TypeKind.Struct } typeSymbol)
Microsoft.CodeQuality.Analyzers\ApiDesignGuidelines\PassSystemUriObjectsInsteadOfStrings.cs (3)
47INamedTypeSymbol? uri = c.Compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemUri); 65private readonly INamedTypeSymbol _uri; 70INamedTypeSymbol uri,
Microsoft.CodeQuality.Analyzers\ApiDesignGuidelines\PropertyNamesShouldNotMatchGetMethods.cs (3)
45var obsoleteAttributeType = context.Compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemObsoleteAttribute); 52private static void AnalyzeSymbol(SymbolAnalysisContext context, INamedTypeSymbol? obsoleteAttributeType) 98foreach (INamedTypeSymbol type in symbol.ContainingType.GetBaseTypesAndThis())
Microsoft.CodeQuality.Analyzers\ApiDesignGuidelines\ProvideObsoleteAttributeMessage.cs (2)
42INamedTypeSymbol? obsoleteAttributeType = compilationContext.Compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemObsoleteAttribute); 57private static void AnalyzeSymbol(SymbolAnalysisContext context, INamedTypeSymbol obsoleteAttributeType)
Microsoft.CodeQuality.Analyzers\ApiDesignGuidelines\StaticHolderTypes.cs (3)
67var symbol = (INamedTypeSymbol)context.Symbol; 78static bool IsSealedAndVisualBasic(INamedTypeSymbol symbol)
Microsoft.CodeQuality.Analyzers\ApiDesignGuidelines\TypeNamesShouldNotMatchNamespaces.cs (5)
73var externallyVisibleNamedTypes = new ConcurrentBag<INamedTypeSymbol>(); 78var namedType = (INamedTypeSymbol)symbolAnalysisContext.Symbol; 107foreach (INamedTypeSymbol symbol in externallyVisibleNamedTypes) 137foreach (var type in @namespace.GetTypeMembers())
Microsoft.CodeQuality.Analyzers\ApiDesignGuidelines\TypesThatOwnDisposableFieldsShouldBeDisposable.cs (3)
59INamedTypeSymbol namedType = (INamedTypeSymbol)ctx.Symbol; 81private static void AnalyzeOperation(OperationAnalysisContext ctx, INamedTypeSymbol parent, ISet<IFieldSymbol> disposableFields, ref TemporarySet<string> disposableFieldNamesBuilder)
Microsoft.CodeQuality.Analyzers\ApiDesignGuidelines\TypesThatOwnDisposableFieldsShouldBeDisposable.Fixer.cs (3)
50if (!model.Compilation.TryGetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemIDisposable, out INamedTypeSymbol? disposableType) || 51model.GetDeclaredSymbol(declaration, cancellationToken) is not INamedTypeSymbol typeSymbol) 75if (!model.Compilation.TryGetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemNotImplementedException, out INamedTypeSymbol? notImplementedExceptionType))
Microsoft.CodeQuality.Analyzers\ApiDesignGuidelines\UriParametersShouldNotBeStrings.cs (6)
45var uri = c.Compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemUri); 46var attribute = c.Compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemAttribute); 60private readonly INamedTypeSymbol _uri; 61private readonly INamedTypeSymbol _attribute; 63public PerCompilationAnalyzer(INamedTypeSymbol uri, INamedTypeSymbol attribute)
Microsoft.CodeQuality.Analyzers\ApiDesignGuidelines\UriParametersShouldNotBeStrings.Fixer.cs (3)
73INamedTypeSymbol? uriType = model.Compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemUri); 128private static string GetOverloadKey(IMethodSymbol methodSymbol, int parameterIndex, INamedTypeSymbol uriType) 147SyntaxGenerator generator, IMethodSymbol methodSymbol, int parameterIndex, Compilation compilation, INamedTypeSymbol uriType)
Microsoft.CodeQuality.Analyzers\ApiDesignGuidelines\UriPropertiesShouldNotBeStrings.cs (3)
44var attribute = c.Compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemAttribute); 58private readonly INamedTypeSymbol _attribute; 60public PerCompilationAnalyzer(INamedTypeSymbol attribute)
Microsoft.CodeQuality.Analyzers\ApiDesignGuidelines\UriReturnValuesShouldNotBeStrings.cs (3)
44var uri = c.Compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemUri); 58private readonly INamedTypeSymbol _uri; 60public PerCompilationAnalyzer(INamedTypeSymbol uri)
Microsoft.CodeQuality.Analyzers\ApiDesignGuidelines\UseGenericEventHandlerInstances.cs (6)
71INamedTypeSymbol? eventArgs = context.Compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemEventArgs); 83static bool IsDelegateTypeWithInvokeMethod(INamedTypeSymbol namedType) => 90var namedType = (INamedTypeSymbol)symbolContext.Symbol; 100INamedTypeSymbol? comSourceInterfacesAttribute = context.Compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemRuntimeInteropServicesComSourceInterfacesAttribute); 117eventSymbol.Type is INamedTypeSymbol eventType &&
Microsoft.CodeQuality.Analyzers\ApiDesignGuidelines\UseIntegralOrStringArgumentForIndexers.cs (5)
58var allowedTypes = ImmutableHashSet.CreateBuilder<INamedTypeSymbol>(); 60if (context.Compilation.TryGetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemRange, out var rangeType)) 65if (context.Compilation.TryGetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemIndex, out var indexType)) 74private static void AnalyzeSymbol(SymbolAnalysisContext context, ImmutableHashSet<INamedTypeSymbol> allowedTypes) 96paramType = ((INamedTypeSymbol)paramType).EnumUnderlyingType!;
Microsoft.CodeQuality.Analyzers\ApiDesignGuidelines\UsePropertiesWhereAppropriate.cs (2)
62var inotifyCompletionType = context.Compilation.GetOrCreateTypeByMetadataName( 64var icriticalNotifyCompletionType = context.Compilation.GetOrCreateTypeByMetadataName(
Microsoft.CodeQuality.Analyzers\Maintainability\AvoidDeadConditionalCode.cs (1)
68var debugAssert = typeProvider.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemDiagnosticsDebug);
Microsoft.CodeQuality.Analyzers\Maintainability\AvoidLengthCalculationWhenSlicingToEnd.cs (5)
189var int32Type = compilation.GetSpecialType(SpecialType.System_Int32); 190var stringType = compilation.GetSpecialType(SpecialType.System_String); 191var spanType = compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemSpan1); 192var readOnlySpanType = compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemReadOnlySpan1); 193var memoryType = compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemMemory1);
Microsoft.CodeQuality.Analyzers\Maintainability\AvoidUninstantiatedInternalClasses.cs (57)
41public abstract void RegisterLanguageSpecificChecks(CompilationStartAnalysisContext context, ConcurrentDictionary<INamedTypeSymbol, object?> instantiatedTypes); 50ConcurrentDictionary<INamedTypeSymbol, object?> instantiatedTypes = new ConcurrentDictionary<INamedTypeSymbol, object?>(); 51var internalTypes = new ConcurrentDictionary<INamedTypeSymbol, object?>(); 54var entryPointContainingType = compilation.GetEntryPoint(startContext.CancellationToken)?.ContainingType; 59var systemAttributeSymbol = wellKnownTypeProvider.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemAttribute); 60var iConfigurationSectionHandlerSymbol = wellKnownTypeProvider.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemConfigurationIConfigurationSectionHandler); 61var configurationSectionSymbol = wellKnownTypeProvider.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemConfigurationConfigurationSection); 62var safeHandleSymbol = wellKnownTypeProvider.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemRuntimeInteropServicesSafeHandle); 63var traceListenerSymbol = wellKnownTypeProvider.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemDiagnosticsTraceListener); 64var mef1ExportAttributeSymbol = wellKnownTypeProvider.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemComponentModelCompositionExportAttribute); 65var mef2ExportAttributeSymbol = wellKnownTypeProvider.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemCompositionExportAttribute); 67var coClassAttributeSymbol = wellKnownTypeProvider.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemRuntimeInteropServicesCoClassAttribute); 68var designerAttributeSymbol = wellKnownTypeProvider.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemComponentModelDesignerAttribute); 69var debuggerTypeProxyAttributeSymbol = wellKnownTypeProvider.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemDiagnosticsDebuggerTypeProxyAttribute); 71var instantiatingAttributeChecker = new List<(Func<INamedTypeSymbol, bool> isAttributeTarget, Func<AttributeData, Compilation, INamedTypeSymbol?> findTypeOrDefault)> 82if (context.Operation.Type is INamedTypeSymbol namedType && namedType.ContainingAssembly.Equals(context.ContainingSymbol.ContainingAssembly)) 90var type = (INamedTypeSymbol)context.Symbol; 122if (findTypeOrDefault(attribute, context.Compilation) is INamedTypeSymbol namedType && namedType.ContainingAssembly.Equals(type.ContainingAssembly)) 135var constructedClass = (INamedTypeSymbol?)expr.Type; 167foreach (var type in uninstantiatedInternalTypes) 180bool CanBeCoClassAttributeContext(INamedTypeSymbol type) 183INamedTypeSymbol? FindTypeIfCoClassAttribute(AttributeData attribute) 191attribute.ConstructorArguments[0].Value is INamedTypeSymbol typeSymbol && 200bool CanBeDesignerAttributeContext(INamedTypeSymbol type) 203INamedTypeSymbol? FindTypeIfDesignerAttribute(AttributeData attribute, Compilation compilation) 218if (IsTypeInCurrentAssembly(designerTypeName, compilation, out var namedType)) 226case INamedTypeSymbol namedType: 233bool CanBeDebuggerTypeProxyAttributeContext(INamedTypeSymbol type) 236INamedTypeSymbol? FindTypeIfDebuggerTypeProxyAttribute(AttributeData attribute, Compilation compilation) 250if (IsTypeInCurrentAssembly(typeName, compilation, out var namedType)) 258case INamedTypeSymbol namedType: 267private bool HasInstantiatedNestedType(INamedTypeSymbol type, IEnumerable<INamedTypeSymbol> instantiatedTypes) 271foreach (var nestedType in nestedTypes) 295INamedTypeSymbol type, 296INamedTypeSymbol? entryPointContainingType, 297INamedTypeSymbol? systemAttributeSymbol, 298INamedTypeSymbol? iConfigurationSectionHandlerSymbol, 299INamedTypeSymbol? configurationSectionSymbol, 300INamedTypeSymbol? safeHandleSymbol, 301INamedTypeSymbol? traceListenerSymbol, 302INamedTypeSymbol? mef1ExportAttributeSymbol, 303INamedTypeSymbol? mef2ExportAttributeSymbol) 361INamedTypeSymbol type, 362INamedTypeSymbol? mef1ExportAttributeSymbol, 363INamedTypeSymbol? mef2ExportAttributeSymbol) 373protected void ProcessGenericTypes(IEnumerable<(ITypeParameterSymbol param, ITypeSymbol arg)> generics, ConcurrentDictionary<INamedTypeSymbol, object?> instantiatedTypes) 379void ProcessNamedTypeParamConstraint(INamedTypeSymbol namedTypeArg) 400if (typeArg is INamedTypeSymbol namedType) 406static IEnumerable<INamedTypeSymbol> GetAllNamedTypeConstraints(ITypeParameterSymbol t) 408var directConstraints = t.ConstraintTypes.OfType<INamedTypeSymbol>(); 415foreach (INamedTypeSymbol constraint in constraints) 424private static bool IsTypeInCurrentAssembly(string typeName, Compilation compilation, out INamedTypeSymbol? namedType)
Microsoft.CodeQuality.Analyzers\Maintainability\AvoidUnusedPrivateFields.cs (11)
50ImmutableHashSet<INamedTypeSymbol> specialAttributes = GetSpecialAttributes(compilationContext.Compilation); 51var structLayoutAttribute = compilationContext.Compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemRuntimeInteropServicesStructLayoutAttribute); 52var inlineArrayAttribute = compilationContext.Compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemRuntimeCompilerServicesInlineArrayAttribute); 70((INamedTypeSymbol)argument.Type).EnumUnderlyingType!.SpecialType : 123var namedType = (INamedTypeSymbol)context.Symbol; 144private static ImmutableHashSet<INamedTypeSymbol> GetSpecialAttributes(Compilation compilation) 146var specialAttributes = PooledHashSet<INamedTypeSymbol>.GetInstance(); 148var fieldOffsetAttribute = compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemRuntimeInteropServicesFieldOffsetAttribute); 154var mefV1Attribute = compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemComponentModelCompositionExportAttribute); 160var mefV2Attribute = compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemCompositionExportAttribute);
Microsoft.CodeQuality.Analyzers\Maintainability\CodeMetricsAnalyzer.cs (3)
165var arg4 = string.Join(", ", ((INamedTypeSymbol)symbol).GetBaseTypes(t => !IsConfiguredToSkipFromInheritanceCount(t, compilationContext, tree)).Select(t => t.Name)); 444private static int GetDistinctContainingNamespacesCount(IEnumerable<INamedTypeSymbol> namedTypes) 447foreach (var namedType in namedTypes)
Microsoft.CodeQuality.Analyzers\Maintainability\DoNotIgnoreMethodResults.cs (9)
148INamedTypeSymbol? expectedExceptionType = compilationContext.Compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.MicrosoftVisualStudioTestToolsUnitTestingExpectedExceptionAttribute); 149INamedTypeSymbol? nunitAssertType = compilationContext.Compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.NUnitFrameworkAssert); 150INamedTypeSymbol? xunitAssertType = compilationContext.Compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.XunitAssert); 151INamedTypeSymbol? linqEnumerableType = compilationContext.Compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemLinqEnumerable); 152INamedTypeSymbol? linqQueryableType = compilationContext.Compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemLinqQueryable); 233private static bool ShouldSkipAnalyzing(OperationAnalysisContext operationContext, INamedTypeSymbol? expectedExceptionType, INamedTypeSymbol? xunitAssertType, INamedTypeSymbol? nunitAssertType) 235static bool IsThrowsArgument(IParameterSymbol parameterSymbol, string argumentName, ImmutableHashSet<string> methodNames, INamedTypeSymbol? assertSymbol)
Microsoft.CodeQuality.Analyzers\Maintainability\MakeTypesInternal.cs (2)
51INamedTypeSymbol namedTypeSymbol = (INamedTypeSymbol)context.Symbol;
Microsoft.CodeQuality.Analyzers\Maintainability\UseCrossPlatformIntrinsicsAnalyzer.cs (23)
118if (!compilation.TryGetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemRuntimeIntrinsicsVector64, out var _) || 119!compilation.TryGetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemRuntimeIntrinsicsVector128, out var _) || 120!compilation.TryGetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemRuntimeIntrinsicsVector256, out var _) || 121!compilation.TryGetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemRuntimeIntrinsicsVector512, out var _)) 142if (compilation.TryGetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemRuntimeIntrinsicsArmAdvSimd, out var armAdvSimdTypeSymbol)) 167if (compilation.TryGetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemRuntimeIntrinsicsArmAdvSimdArm64, out var armAdvSimdArm64TypeSymbol)) 178if (compilation.TryGetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemRuntimeIntrinsicsWasmPackedSimd, out var wasmPackedSimdTypeSymbol)) 196if (compilation.TryGetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemRuntimeIntrinsicsX86Avx, out var x86AvxTypeSymbol)) 207if (compilation.TryGetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemRuntimeIntrinsicsX86Avx2, out var x86Avx2TypeSymbol)) 221if (compilation.TryGetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemRuntimeIntrinsicsX86Avx512BW, out var x86Avx512BWTypeSymbol)) 232if (compilation.TryGetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemRuntimeIntrinsicsX86Avx512DQ, out var x86Avx512DQTypeSymbol)) 240if (compilation.TryGetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemRuntimeIntrinsicsX86Avx512DQVL, out var x86Avx512DQVLTypeSymbol)) 245if (compilation.TryGetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemRuntimeIntrinsicsX86Avx512F, out var x86Avx512FTypeSymbol)) 261if (compilation.TryGetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemRuntimeIntrinsicsX86Avx512FVL, out var x86Avx512FVLTypeSymbol)) 266if (compilation.TryGetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemRuntimeIntrinsicsX86Sse, out var x86SseTypeSymbol)) 277if (compilation.TryGetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemRuntimeIntrinsicsX86Sse2, out var x86Sse2TypeSymbol)) 293if (compilation.TryGetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemRuntimeIntrinsicsX86Sse41, out var x86Sse41TypeSymbol)) 303static void AddBinaryOperatorMethods(Dictionary<IMethodSymbol, RuleKind> methodSymbols, string name, INamedTypeSymbol typeSymbol, RuleKind ruleKind, params SpecialType[] supportedTypes) 312m.ReturnType is INamedTypeSymbol namedReturnTypeSymbol && 321static void AddShiftOperatorMethods(Dictionary<IMethodSymbol, RuleKind> methodSymbols, string name, INamedTypeSymbol typeSymbol, RuleKind ruleKind, params SpecialType[] supportedTypes) 331m.ReturnType is INamedTypeSymbol namedReturnTypeSymbol && 340static void AddUnaryOperatorMethods(Dictionary<IMethodSymbol, RuleKind> methodSymbols, string name, INamedTypeSymbol typeSymbol, RuleKind ruleKind, params SpecialType[] supportedTypes) 349m.ReturnType is INamedTypeSymbol namedReturnTypeSymbol &&
Microsoft.CodeQuality.Analyzers\Maintainability\UseNameofInPlaceOfString.cs (1)
91var containingType = context.ContainingSymbol.ContainingType;
Microsoft.CodeQuality.Analyzers\QualityGuidelines\AvoidMultipleEnumerations\AvoidMultipleEnumerationsHelpers.cs (6)
382if (wellKnownTypeProvider.TryGetOrCreateTypeByMetadataName(typeName, out var type)) 397if (wellKnownTypeProvider.TryGetOrCreateTypeByMetadataName(typeName, out var type)) 419if (wellKnownTypeProvider.TryGetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemCollectionsIEnumerable, out var nonGenericIEnumerable)) 428if (wellKnownTypeProvider.TryGetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemCollectionsGenericIEnumerable1, out var genericIEnumerable)) 456if (compilation.TryGetOrCreateTypeByMetadataName(name, out var typeSymbol)) 478if (wellKnownTypeProvider.TryGetOrCreateTypeByMetadataName(typeName, out var type))
Microsoft.CodeQuality.Analyzers\QualityGuidelines\DoNotCallOverridableMethodsInConstructors.cs (6)
49INamedTypeSymbol? webUiControlType = compilationContext.Compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemWebUIControl); 50INamedTypeSymbol? componentModelComponentType = compilationContext.Compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemComponentModelComponent); 64private static void AnalyzeOperation(OperationAnalysisContext context, INamedTypeSymbol containingType) 78private static bool ShouldOmitThisDiagnostic(ISymbol symbol, INamedTypeSymbol? webUiControlType, INamedTypeSymbol? componentModelComponentType) 87INamedTypeSymbol containingType = m.ContainingType;
Microsoft.CodeQuality.Analyzers\QualityGuidelines\DoNotPassDisposablesIntoUnawaitedTasks.cs (1)
46if (!provider.TryGetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemIDisposable, out var iDisposable))
Microsoft.CodeQuality.Analyzers\QualityGuidelines\MarkMembersAsStatic.cs (12)
49ImmutableArray<INamedTypeSymbol> skippedAttributes = GetSkippedAttributes(wellKnownTypeProvider); 63ImmutableArray<INamedTypeSymbol> skippedAttributes, 210ImmutableArray<INamedTypeSymbol> skippedAttributes, 272if (wellKnownTypeProvider.TryGetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemRuntimeCompilerServicesINotifyCompletion, out var inotifyCompletionType) 273&& wellKnownTypeProvider.TryGetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemRuntimeCompilerServicesICriticalNotifyCompletion, out var icriticalNotifyCompletionType)) 332var comVisibleAttribute = wellKnownTypeProvider.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemRuntimeInteropServicesComVisibleAttribute); 347private static ImmutableArray<INamedTypeSymbol> GetSkippedAttributes(WellKnownTypeProvider wellKnownTypeProvider) 349ImmutableArray<INamedTypeSymbol>.Builder? builder = null; 351void Add(INamedTypeSymbol? symbol) 355builder ??= ImmutableArray.CreateBuilder<INamedTypeSymbol>(); 377return builder?.ToImmutable() ?? ImmutableArray<INamedTypeSymbol>.Empty; 382var obsoleteAttributeType = wellKnownTypeProvider.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemObsoleteAttribute);
Microsoft.CodeQuality.Analyzers\QualityGuidelines\RemoveEmptyFinalizers.cs (2)
42if (!context.Compilation.TryGetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemDiagnosticsConditionalAttribute, out var conditionalAttributeType)) 67private static bool CanDescendIntoOperation(IOperation operation, INamedTypeSymbol conditionalAttributeType, bool isMethodSurroundedWithDirective)
Microsoft.CodeQuality.Analyzers\QualityGuidelines\SealMethodsThatSatisfyPrivateInterfaces.cs (4)
45var type = (INamedTypeSymbol)context.Symbol; 58.Distinct<INamedTypeSymbol>(SymbolEqualityComparer.Default); 59foreach (INamedTypeSymbol iface in directInterfacesAndTheirInterfaces)
Microsoft.CodeQuality.Analyzers\QualityGuidelines\SealMethodsThatSatisfyPrivateInterfaces.Fixer.cs (2)
48if (symbol is not INamedTypeSymbol) 68if (symbol is INamedTypeSymbol type)
Microsoft.NetCore.Analyzers\Data\ReviewSqlQueriesForSecurityVulnerabilities.cs (8)
45INamedTypeSymbol? iDbCommandType = compilationContext.Compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemDataIDbCommand); 46INamedTypeSymbol? iDataAdapterType = compilationContext.Compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemDataIDataAdapter); 136INamedTypeSymbol iDbCommandType, 137INamedTypeSymbol iDataAdapterType) 247private static void CheckForDbCommandAndDataAdapterImplementation(INamedTypeSymbol containingType, 248INamedTypeSymbol iDbCommandType, 249INamedTypeSymbol iDataAdapterType, 255foreach (var @interface in containingType.AllInterfaces)
Microsoft.NetCore.Analyzers\ImmutableCollections\DoNotCallToImmutableCollectionOnAnImmutableCollectionValue.cs (3)
60var immutableArraySymbol = wellKnownTypeProvider.GetOrCreateTypeByMetadataName(ImmutableArrayMetadataName); 87var immutableCollectionType = immutableCollectionsAssembly.GetTypeByMetadataName(metadataName); 95if (invocation.GetReceiverType(operationContext.Compilation, beforeConversion: true, cancellationToken: operationContext.CancellationToken) is INamedTypeSymbol receiverType
Microsoft.NetCore.Analyzers\InteropServices\AvoidStringBuilderPInvokeParameters.cs (2)
41if (compilationContext.Compilation.TryGetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemTextStringBuilder, out var stringBuilderType)) 48private static void AnalyzeSymbol(SymbolAnalysisContext context, INamedTypeSymbol stringBuilderType)
Microsoft.NetCore.Analyzers\InteropServices\DisableRuntimeMarshalling.cs (1)
148out INamedTypeSymbol? disableRuntimeMarshallingAttribute))
Microsoft.NetCore.Analyzers\InteropServices\DisableRuntimeMarshallingAnalyzer.AutoLayoutTypeCache.cs (2)
18private readonly INamedTypeSymbol? _structLayoutAttribute; 64((INamedTypeSymbol)argument.Type).EnumUnderlyingType!.SpecialType :
Microsoft.NetCore.Analyzers\InteropServices\DisableRuntimeMarshallingAnalyzer.DelegateInteropUsageAnalyzer.cs (13)
24private readonly INamedTypeSymbol _disableRuntimeMarshallingAttribute; 26public DelegateInteropUsageAnalyzer(Compilation compilation, AutoLayoutTypeCache autoLayoutCache, INamedTypeSymbol disableRuntimeMarshallingAttribute) 28if (compilation.TryGetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemRuntimeInteropServicesMarshal, out var marshalType)) 59if (operation.Arguments.Length == 2 && operation.Arguments.GetArgumentForParameterAtIndex(1) is { Value: ITypeOfOperation { TypeOperand: INamedTypeSymbol { TypeKind: TypeKind.Delegate } delegateType } } arg) 66if (operation.TargetMethod.TypeArguments.Length == 1 && operation.TargetMethod.TypeArguments[0] is INamedTypeSymbol { TypeKind: TypeKind.Delegate } delegateType) 75if (conversion.Operand.Type is INamedTypeSymbol { TypeKind: TypeKind.Delegate } delegateType) 85if (argumentValue.Type is INamedTypeSymbol { TypeKind: TypeKind.Delegate } delegateType) 92void AnalyzeDelegateType(OperationAnalysisContext context, IOperation operation, INamedTypeSymbol delegateType) 121AnalyzeDelegateMethodSignature((INamedTypeSymbol)param.Type, param); 125AnalyzeDelegateMethodSignature((INamedTypeSymbol)((IArrayTypeSymbol)param.Type).ElementType, param); 131AnalyzeDelegateMethodSignature((INamedTypeSymbol)symbol.ReturnType, symbol); 135AnalyzeDelegateMethodSignature((INamedTypeSymbol)((IArrayTypeSymbol)symbol.ReturnType).ElementType, symbol); 139void AnalyzeDelegateMethodSignature(INamedTypeSymbol delegateType, ISymbol signatureSymbol)
Microsoft.NetCore.Analyzers\InteropServices\DisableRuntimeMarshallingAnalyzer.DisabledRuntimeMarshallingAssemblyAnalyzer.cs (5)
19private readonly INamedTypeSymbol? _unmanagedFunctionPointerAttribute; 20private readonly INamedTypeSymbol? _lcidConversionAttribute; 28if (compilation.TryGetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemRuntimeInteropServicesMarshal, out var marshalType)) 120INamedTypeSymbol type = (INamedTypeSymbol)context.Symbol;
Microsoft.NetCore.Analyzers\InteropServices\DoNotUseOutAttributeStringPInvokeParameters.cs (2)
41if (compilationContext.Compilation.TryGetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemRuntimeInteropServicesOutAttribute, out var outAttributeType)) 48private static void AnalyzeSymbol(SymbolAnalysisContext context, INamedTypeSymbol outAttributeType)
Microsoft.NetCore.Analyzers\InteropServices\DynamicInterfaceCastableImplementation.cs (5)
74if (context.Compilation.TryGetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemRuntimeInteropServicesDynamicInterfaceCastableImplementationAttribute, out INamedTypeSymbol? dynamicInterfaceCastableImplementationAttribute)) 81private static void AnalyzeType(SymbolAnalysisContext context, INamedTypeSymbol dynamicInterfaceCastableImplementationAttribute) 83INamedTypeSymbol targetType = (INamedTypeSymbol)context.Symbol; 104foreach (var iface in targetType.AllInterfaces)
Microsoft.NetCore.Analyzers\InteropServices\PInvokeDiagnosticAnalyzer.cs (12)
58INamedTypeSymbol? dllImportType = context.Compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemRuntimeInteropServicesDllImportAttribute); 64INamedTypeSymbol? marshalAsType = context.Compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemRuntimeInteropServicesMarshalAsAttribute); 70INamedTypeSymbol? stringBuilderType = context.Compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemTextStringBuilder); 76INamedTypeSymbol? unmanagedType = context.Compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemRuntimeInteropServicesUnmanagedType); 88private readonly INamedTypeSymbol _dllImportType; 89private readonly INamedTypeSymbol _marshalAsType; 90private readonly INamedTypeSymbol _stringBuilderType; 91private readonly INamedTypeSymbol _unmanagedType; 94INamedTypeSymbol dllImportType, 95INamedTypeSymbol marshalAsType, 96INamedTypeSymbol stringBuilderType, 97INamedTypeSymbol unmanagedType)
Microsoft.NetCore.Analyzers\InteropServices\PlatformCompatibilityAnalyzer.cs (13)
168if (!context.Compilation.TryGetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemOperatingSystem, out var operatingSystemType)) 173var osPlatformType = context.Compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemRuntimeInteropServicesOSPlatform); 174var runtimeInformationType = context.Compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemRuntimeInteropServicesRuntimeInformation); 176var stringType = context.Compilation.GetSpecialType(SpecialType.System_String); 197var notSupportedExceptionType = context.Compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemNotSupportedException); 206INamedTypeSymbol operatingSystemType, out SmallDictionary<string, (string relatedPlatform, bool isSubset)> relatedPlatforms) 220static IEnumerable<IMethodSymbol> FilterPlatformCheckMethods(INamedTypeSymbol symbol, 312INamedTypeSymbol? osPlatformType, 313INamedTypeSymbol stringType, 324var osPlatformTypeArray = osPlatformType != null ? ImmutableArray.Create(osPlatformType) : ImmutableArray<INamedTypeSymbol>.Empty; 442private static bool ComputeNeedsValueContentAnalysis(IOperation operationBlock, ImmutableArray<IMethodSymbol> guardMethods, IMethodSymbol? runtimeIsOSPlatformMethod, INamedTypeSymbol? osPlatformType) 1384if (symbol.ContainingSymbol is INamedTypeSymbol namedType && namedType.IsGenericType) 1405if (typeArgument is INamedTypeSymbol nType && nType.IsGenericType)
Microsoft.NetCore.Analyzers\InteropServices\PlatformCompatibilityAnalyzer.OperationVisitor.cs (2)
21private readonly INamedTypeSymbol? _osPlatformType; 26INamedTypeSymbol? osPlatformType,
Microsoft.NetCore.Analyzers\InteropServices\PlatformCompatibilityAnalyzer.Value.cs (2)
44INamedTypeSymbol? osPlatformType, 114INamedTypeSymbol? osPlatformType,
Microsoft.NetCore.Analyzers\InteropServices\ProvidePublicParameterlessSafeHandleConstructor.cs (4)
41if (context.Compilation.TryGetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemRuntimeInteropServicesSafeHandle, out var safeHandleType)) 48private static void AnalyzeSymbol(SymbolAnalysisContext context, INamedTypeSymbol safeHandleType) 50INamedTypeSymbol type = (INamedTypeSymbol)context.Symbol;
Microsoft.NetCore.Analyzers\InteropServices\SpecifyMarshalingForPInvokeStringArguments.Fixer.cs (12)
117if (compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemRuntimeInteropServicesCharSet) is not INamedTypeSymbol charSetType || 118compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemRuntimeInteropServicesDllImportAttribute) is not INamedTypeSymbol dllImportType || 119compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemRuntimeInteropServicesMarshalAsAttribute) is not INamedTypeSymbol marshalAsType || 120compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemRuntimeInteropServicesUnmanagedType) is not INamedTypeSymbol unmanagedType) 131public InteropTypes(INamedTypeSymbol charSet, INamedTypeSymbol dllImport, INamedTypeSymbol marshalAs, INamedTypeSymbol unmanaged) 139public INamedTypeSymbol CharSet { get; } 140public INamedTypeSymbol DllImport { get; } 141public INamedTypeSymbol MarshalAs { get; } 142public INamedTypeSymbol Unmanaged { get; }
Microsoft.NetCore.Analyzers\InteropServices\UseValidPlatformString.cs (6)
72if (!context.Compilation.TryGetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemOperatingSystem, out var operatingSystemType) || 73!context.Compilation.TryGetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemRuntimeVersioningSupportedOSPlatformAttribute, out var supportedAttriubte) || 74!context.Compilation.TryGetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemRuntimeVersioningUnsupportedOSPlatformAttribute, out var unsupportedAttribute)) 108static void AddPlatformsAndVersionCountFromGuardMethods(INamedTypeSymbol operatingSystemType, PooledDictionary<string, int> knownPlatforms) 168private static void AnalyzeSymbol<TContext>(Action<TContext, Diagnostic> reportDiagnostic, TContext context, ISymbol symbol, INamedTypeSymbol supportedAttribute, 169INamedTypeSymbol unsupportedAttribute, PooledDictionary<string, int> knownPlatforms, CancellationToken token)
Microsoft.NetCore.Analyzers\Performance\AvoidPotentiallyExpensiveCallWhenLogging.cs (2)
263INamedTypeSymbol? loggerMessageAttributeType) 268private readonly INamedTypeSymbol? _loggerMessageAttributeType = loggerMessageAttributeType;
Microsoft.NetCore.Analyzers\Performance\AvoidSingleUseOfLocalJsonSerializerOptions.cs (9)
46WellKnownTypeNames.SystemTextJsonJsonSerializerOptions, out INamedTypeSymbol? jsonSerializerOptionsSymbol); 49WellKnownTypeNames.SystemTextJsonJsonSerializer, out INamedTypeSymbol? jsonSerializerSymbol); 61INamedTypeSymbol? typeSymbol = operation.Constructor?.ContainingType; 80private static bool IsCtorUsedAsArgumentForJsonSerializer(IObjectCreationOperation objCreationOperation, INamedTypeSymbol jsonSerializerSymbol) 88private static bool IsArgumentForJsonSerializer(IArgumentOperation argumentOperation, INamedTypeSymbol jsonSerializerSymbol) 94private static bool IsLocalUsedAsArgumentForJsonSerializerOnly(IObjectCreationOperation objCreation, INamedTypeSymbol jsonSerializerSymbol, INamedTypeSymbol jsonSerializerOptionsSymbol) 193private static bool IsArgumentOfJsonSerializer(IOperation operation, INamedTypeSymbol jsonSerializerSymbol, out bool isArgumentOfInvocation) 291private static bool IsLocalAssignment(IOperation operation, INamedTypeSymbol jsonSerializerOptionsSymbol, [NotNullWhen(true)] out List<ILocalSymbol>? localSymbols)
Microsoft.NetCore.Analyzers\Performance\CollapseMultiplePathOperations.cs (14)
49if (!compilation.TryGetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemIOPath, out var pathType)) 55compilation.TryGetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemSpan1, out var spanType); 56compilation.TryGetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemReadOnlySpan1, out var readOnlySpanType); 101INamedTypeSymbol pathType, 102INamedTypeSymbol? spanType, 103INamedTypeSymbol? readOnlySpanType, 255private static bool CanCollapse(IInvocationOperation invocation, INamedTypeSymbol? spanType, INamedTypeSymbol? readOnlySpanType, int totalArgs) 273private static bool HasSpanArguments(IInvocationOperation invocation, INamedTypeSymbol? spanType, INamedTypeSymbol? readOnlySpanType) 295private static bool IsSpanType(ITypeSymbol? type, INamedTypeSymbol? spanType, INamedTypeSymbol? readOnlySpanType) 297if (type is not INamedTypeSymbol namedType) 303var originalDefinition = namedType.OriginalDefinition;
Microsoft.NetCore.Analyzers\Performance\ConstantExpectedAnalyzer.cs (5)
222public INamedTypeSymbol AttributeSymbol { get; } 224public ConstantExpectedContext(INamedTypeSymbol attributeSymbol) 420var enumType = (INamedTypeSymbol)parameterSymbol.Type; 442if (!compilation.TryGetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemDiagnosticsCodeAnalysisConstantExpectedAttribute, out var attributeSymbol))
Microsoft.NetCore.Analyzers\Performance\DoNotGuardCall.cs (2)
238var conditionMethodType = typeProvider.GetOrCreateTypeByMetadataName(context.ConditionMethodContext.ContainingTypeName); 253var guardedMethodType = typeProvider.GetOrCreateTypeByMetadataName(guardedMethodContext.ContainingTypeName);
Microsoft.NetCore.Analyzers\Performance\DoNotUseAsParallelInForEachLoop.cs (1)
49var parallelEnumerableType = typeProvider.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemLinqParallelEnumerable);
Microsoft.NetCore.Analyzers\Performance\PreferConvertToHexStringOverBitConverter.cs (6)
112var bitConverterType = compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemBitConverter); 113var convertType = compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemConvert); 120var byteType = compilation.GetSpecialType(SpecialType.System_Byte); 122var int32Type = compilation.GetSpecialType(SpecialType.System_Int32); 123var stringType = compilation.GetSpecialType(SpecialType.System_String); 124var rosByteType = compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemReadOnlySpan1)?.Construct(byteType);
Microsoft.NetCore.Analyzers\Performance\PreferDictionaryTryMethodsOverContainsKeyGuardAnalyzer.cs (3)
128if (!TryGetDictionaryTypeAndMembers(context.Compilation, out var iDictionaryType, out var containsKeySymbol, out var addSymbol)) 136private static void OnInvocationOperation(INamedTypeSymbol iDictionaryType, IMethodSymbol containsKeySymbol, IMethodSymbol addSymbol, OperationAnalysisContext context) 229[NotNullWhen(true)] out INamedTypeSymbol? iDictionaryType,
Microsoft.NetCore.Analyzers\Performance\PreferHashDataOverComputeHash.cs (13)
191var ownerType = hashCreateInvocation.TargetMethod.ContainingType; 257INamedTypeSymbol staticHashMethodType, 270INamedTypeSymbol staticHashMethodType, 345private readonly INamedTypeSymbol _hashAlgorithmBaseType; 369private MethodHelper(INamedTypeSymbol hashAlgorithmBaseType, 516if (!compilation.TryGetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemSecurityCryptographyHashAlgorithm, out var hashAlgoBaseType) || 517!compilation.TryGetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemSecurityCryptographySHA256, out var sha256Type) || 518!compilation.TryGetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemReadOnlySpan1, out var rosType) || 519!compilation.TryGetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemSpan1, out var spanType)) 524var byteType = compilation.GetSpecialType(SpecialType.System_Byte); 525var intType = compilation.GetSpecialType(SpecialType.System_Int32); 531var rosByteType = rosType.Construct(byteType); 532var spanByteType = spanType.Construct(byteType);
Microsoft.NetCore.Analyzers\Performance\PreferLengthCountIsEmptyOverAnyAnalyzer.cs (6)
78var iEnumerable = typeProvider.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemCollectionsIEnumerable); 79var iEnumerableOfT = typeProvider.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemCollectionsGenericIEnumerable1); 80var linqExpressionType = typeProvider.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemLinqExpressionsExpression1); 93private static void OnInvocationAnalysis(OperationAnalysisContext context, INamedTypeSymbol iEnumerable, INamedTypeSymbol iEnumerableOfT, IMethodSymbol anyMethod, INamedTypeSymbol? linqExpressionType)
Microsoft.NetCore.Analyzers\Performance\PreferReadOnlySpanOverSpan.cs (45)
48var span = compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemSpan1); 49var readOnlySpan = compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemReadOnlySpan1); 50var memory = compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemMemory1); 51var readOnlyMemory = compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemReadOnlyMemory1); 52var memoryExtensions = compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemMemoryExtensions); 73ConcurrentDictionary<IParameterSymbol, INamedTypeSymbol>? candidateParameters = null; 77if (IsConvertibleSpanOrMemoryParameter(parameter, span, memory, readOnlySpan, readOnlyMemory, out var readOnlyType) && readOnlyType is not null) 79candidateParameters ??= new ConcurrentDictionary<IParameterSymbol, INamedTypeSymbol>(SymbolEqualityComparer.Default); 128ConcurrentDictionary<IParameterSymbol, INamedTypeSymbol> candidateParameters, 129INamedTypeSymbol span, 130INamedTypeSymbol memory, 131INamedTypeSymbol readOnlySpan, 132INamedTypeSymbol readOnlyMemory, 133INamedTypeSymbol memoryExtensions, 162if (invocation.Type is INamedTypeSymbol invocationResultType && 188if (propRef.Type is INamedTypeSymbol resultType && 252INamedTypeSymbol span, 253INamedTypeSymbol memory, 254INamedTypeSymbol readOnlySpan, 255INamedTypeSymbol readOnlyMemory) 257if (invocation.Instance?.Type is not INamedTypeSymbol instanceType) 269var readOnlyCounterpart = SymbolEqualityComparer.Default.Equals(instanceType.OriginalDefinition, span) ? 306INamedTypeSymbol readOnlySpan, 307INamedTypeSymbol readOnlyMemory, 308INamedTypeSymbol memoryExtensions) 337if (argument.Parameter?.Type is INamedTypeSymbol paramType) 348INamedTypeSymbol readOnlySpan, 349INamedTypeSymbol readOnlyMemory) 358if (containingMethod.ReturnType is not INamedTypeSymbol returnType) 373INamedTypeSymbol readOnlySpan, 374INamedTypeSymbol readOnlyMemory) 376if (assignment.Target.Type is INamedTypeSymbol targetType) 399INamedTypeSymbol span, 400INamedTypeSymbol memory, 401INamedTypeSymbol readOnlySpan, 402INamedTypeSymbol readOnlyMemory, 403out INamedTypeSymbol? readOnlyType) 406parameter.Type is INamedTypeSymbol namedType) 408var originalDefinition = namedType.OriginalDefinition; 432private static bool IsSpanOrMemory(INamedTypeSymbol target, INamedTypeSymbol span, INamedTypeSymbol memory) => 436private static bool IsReadOnlySpanOrMemory(INamedTypeSymbol target, INamedTypeSymbol readOnlySpan, INamedTypeSymbol readOnlyMemory) =>
Microsoft.NetCore.Analyzers\Performance\PreferReadOnlySpanOverSpan.Fixer.cs (5)
40ChangeParameterType(editor, semanticModel.Compilation, node, (INamedTypeSymbol)parameterSymbol.Type); 68typeSymbol is INamedTypeSymbol namedType && namedType.OriginalDefinition.Name is "Span" or "Memory" ? 72private static void ChangeParameterType(SyntaxEditor editor, Compilation compilation, SyntaxNode node, INamedTypeSymbol parameterType) 81INamedTypeSymbol? readOnlyType = 107if (semanticModel.GetDeclaredSymbol(node, cancellationToken) is IParameterSymbol { Type: INamedTypeSymbol namedType })
Microsoft.NetCore.Analyzers\Performance\RecommendCaseInsensitiveStringComparison.Analyzer.cs (6)
88INamedTypeSymbol stringType = context.Compilation.GetSpecialType(SpecialType.System_String); 89INamedTypeSymbol int32Type = context.Compilation.GetSpecialType(SpecialType.System_Int32); 91if (!context.Compilation.TryGetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemStringComparison, out INamedTypeSymbol? stringComparisonType)) 96if (!context.Compilation.TryGetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemStringComparer, out INamedTypeSymbol? stringComparerType)) 239private static void AnalyzeInvocation(OperationAnalysisContext context, IInvocationOperation invocation, INamedTypeSymbol stringType, 298private static void AnalyzeBinaryOperation(OperationAnalysisContext context, IBinaryOperation binaryOperation, INamedTypeSymbol stringType)
Microsoft.NetCore.Analyzers\Performance\RecommendCaseInsensitiveStringComparison.Fixer.cs (5)
29string caseChangingApproachValue, IInvocationOperation mainInvocationOperation, INamedTypeSymbol stringComparisonType, 54is not INamedTypeSymbol stringComparisonType) 142INamedTypeSymbol stringComparisonType, string diagnosableMethodName, 186INamedTypeSymbol stringComparisonType, string caseChangingApproachValue) 216INamedTypeSymbol stringComparisonType, string caseChangingApproachValue, bool isAnyArgumentNamed)
Microsoft.NetCore.Analyzers\Performance\UseAsSpanInsteadOfRangeIndexer.cs (6)
77var stringType = compilation.GetSpecialType(SpecialType.System_String); 78var span = compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemSpan1); 79var readOnlySpan = compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemReadOnlySpan1); 80var memory = compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemMemory1); 81var readOnlyMemory = compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemReadOnlyMemory1); 82var range = compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemRange);
Microsoft.NetCore.Analyzers\Performance\UseCompositeFormat.cs (4)
48INamedTypeSymbol stringType = compilationContext.Compilation.GetSpecialType(SpecialType.System_String); 51if (!compilationContext.Compilation.TryGetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemTextCompositeFormat, out INamedTypeSymbol? compositeFormatType) || 52!compilationContext.Compilation.TryGetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemIFormatProvider, out INamedTypeSymbol? formatProviderType) || 53!compilationContext.Compilation.TryGetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemTextStringBuilder, out INamedTypeSymbol? stringBuilderType))
Microsoft.NetCore.Analyzers\Performance\UseConcreteTypeAnalyzer.Collector.cs (4)
36public INamedTypeSymbol? Void { get; private set; } 74public static Collector GetInstance(INamedTypeSymbol voidType, Func<ISymbol, bool> visibilityChecker) 275foreach (var tupleType in tupleTypes.OfType<INamedTypeSymbol>())
Microsoft.NetCore.Analyzers\Performance\UseConcreteTypeAnalyzer.cs (4)
126var voidType = context.Compilation.GetSpecialType(SpecialType.System_Void); 131var namedType = (INamedTypeSymbol)context.Symbol; 374var container = affectedSymbol.ContainingType;
Microsoft.NetCore.Analyzers\Performance\UseCountProperly.cs (5)
113INamedTypeSymbol? namedType = typeProvider.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemLinqEnumerable); 158var linqExpressionType = typeProvider.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemLinqExpressionsExpression1); 185INamedTypeSymbol? linqExpressionType, 235private static void AnalyzePropertyReference(OperationAnalysisContext context, INamedTypeSymbol? linqExpressionType, 674foreach (var @interface in type.AllInterfaces)
Microsoft.NetCore.Analyzers\Performance\UseSearchValues.cs (9)
53!context.Compilation.TryGetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemReadOnlySpan1, out var readOnlySpanType)) 64private void AnalyzeInvocation(OperationAnalysisContext context, ImmutableHashSet<IMethodSymbol> indexOfAnyMethodsToDetect, INamedTypeSymbol readOnlySpanType) 97var stringType = compilation.GetSpecialType(SpecialType.System_String); 112if (compilation.TryGetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemMemoryExtensions, out var memoryExtensionsType) && 113compilation.TryGetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemSpan1, out var spanType) && 114compilation.TryGetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemReadOnlySpan1, out var readOnlySpanType)) 167private bool AreConstantValuesWorthReplacing(IOperation argument, INamedTypeSymbol readOnlySpanType) 255private static bool IsByteOrCharReadOnlySpan(ISymbol symbol, INamedTypeSymbol readOnlySpanType) => 256symbol is INamedTypeSymbol namedType &&
Microsoft.NetCore.Analyzers\Performance\UseSearchValues.Fixer.cs (7)
62protected abstract ValueTask<(SyntaxNode TypeDeclaration, INamedTypeSymbol? TypeSymbol, bool IsRealType)> GetTypeSymbolAsync(SemanticModel semanticModel, SyntaxNode node, CancellationToken cancellationToken); 93!compilation.TryGetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemBuffersSearchValues, out INamedTypeSymbol? searchValues) || 94!compilation.TryGetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemBuffersSearchValues1, out INamedTypeSymbol? searchValuesOfT) || 95!compilation.TryGetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemMemoryExtensions, out INamedTypeSymbol? memoryExtensions) || 103argumentOperation.Parameter?.Type is INamedTypeSymbol parameterType && 134(var typeDeclaration, var typeSymbol, bool isRealType) = await GetTypeSymbolAsync(semanticModel, argumentNode, cancellationToken).ConfigureAwait(false); 191private static void ImportSystemNamespaceIfNeeded(SyntaxEditor editor, SemanticModel semanticModel, INamedTypeSymbol memoryExtensions, SyntaxNode node, FixState state)
Microsoft.NetCore.Analyzers\Performance\UseSpanClearInsteadOfFill.cs (1)
49if (!compilation.TryGetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemSpan1, out var spanType))
Microsoft.NetCore.Analyzers\Performance\UseStartsWithInsteadOfIndexOfComparisonWithZero.cs (1)
50var stringType = context.Compilation.GetSpecialType(SpecialType.System_String);
Microsoft.NetCore.Analyzers\Performance\UseStringContainsCharOverloadWithSingleCharactersAnalyzer.cs (2)
45var stringType = context.Compilation.GetSpecialType(SpecialType.System_String); 46var charType = context.Compilation.GetSpecialType(SpecialType.System_Char);
Microsoft.NetCore.Analyzers\Performance\UseStringMethodCharOverloadWithSingleCharacters.cs (6)
75var stringType = context.Compilation.GetSpecialType(SpecialType.System_String); 76var charType = context.Compilation.GetSpecialType(SpecialType.System_Char); 88var stringComparisonType = typeProvider.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemStringComparison); 89var cultureInfoType = typeProvider.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemGlobalizationCultureInfo); 111INamedTypeSymbol stringComparisonType, 112INamedTypeSymbol cultureInfoType,
Microsoft.NetCore.Analyzers\Resources\MarkAssembliesWithNeutralResourcesLanguage.cs (5)
40protected abstract void RegisterAttributeAnalyzer(CompilationStartAnalysisContext context, Func<bool> shouldAnalyze, Action<SyntaxNodeAnalysisContext> onResourceFound, INamedTypeSymbol generatedCode); 55if (!context.Compilation.TryGetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemCodeDomCompilerGeneratedCodeAttribute, out var generatedCode)) 60INamedTypeSymbol? attribute = context.Compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemResourcesNeutralResourcesLanguageAttribute); 122protected static bool CheckResxGeneratedFile(SemanticModel model, SyntaxNode attribute, SyntaxNode? argument, INamedTypeSymbol generatedCode, CancellationToken cancellationToken) 153private static bool TryCheckNeutralResourcesLanguageAttribute(Compilation compilation, INamedTypeSymbol attribute, out AttributeData? attributeData)
Microsoft.NetCore.Analyzers\Runtime\AttributeStringLiteralsShouldParseCorrectly.cs (2)
93var namedType = (INamedTypeSymbol)symbol;
Microsoft.NetCore.Analyzers\Runtime\AvoidConstArrays.cs (3)
44INamedTypeSymbol? readonlySpanType = knownTypeProvider.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemReadOnlySpan1); 45INamedTypeSymbol? functionType = knownTypeProvider.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemFunc2); 46INamedTypeSymbol? attributeType = knownTypeProvider.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemAttribute);
Microsoft.NetCore.Analyzers\Runtime\AvoidConstArrays.Fixer.cs (1)
80INamedTypeSymbol containingType = enclosingSymbol.ContainingType;
Microsoft.NetCore.Analyzers\Runtime\AvoidRedundantRegexIsMatchBeforeMatch.cs (5)
49if (!context.Compilation.TryGetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemTextRegularExpressionsRegex, out var regexType)) 118INamedTypeSymbol regexType) 169INamedTypeSymbol regexType) 226INamedTypeSymbol regexType) 445INamedTypeSymbol regexType)
Microsoft.NetCore.Analyzers\Runtime\AvoidUnreliableStreamRead.cs (1)
106var streamType = compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemIOStream);
Microsoft.NetCore.Analyzers\Runtime\AvoidUnreliableStreamRead.Fixer.cs (1)
119var streamType = semanticModel.Compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemIOStream);
Microsoft.NetCore.Analyzers\Runtime\AvoidUnsealedAttributes.cs (4)
44INamedTypeSymbol? attributeType = compilationContext.Compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemAttribute); 52AnalyzeSymbol((INamedTypeSymbol)context.Symbol, attributeType, context.ReportDiagnostic); 58private static void AnalyzeSymbol(INamedTypeSymbol namedType, INamedTypeSymbol attributeType, Action<Diagnostic> addDiagnostic)
Microsoft.NetCore.Analyzers\Runtime\AvoidZeroLengthArrayAllocations.cs (4)
56INamedTypeSymbol typeSymbol = context.Compilation.GetSpecialType(SpecialType.System_Array); 62var linqExpressionType = context.Compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemLinqExpressionsExpression1); 69private void AnalyzeOperation(OperationAnalysisContext context, IMethodSymbol arrayEmptyMethodSymbol, INamedTypeSymbol? linqExpressionType) 74private static void AnalyzeOperation(OperationAnalysisContext context, IMethodSymbol arrayEmptyMethodSymbol, INamedTypeSymbol? linqExpressionType, Func<SyntaxNode, bool> isAttributeSyntax, Func<SyntaxNode, bool> isCollectionExpressionSyntax)
Microsoft.NetCore.Analyzers\Runtime\AvoidZeroLengthArrayAllocations.Fixer.cs (2)
43INamedTypeSymbol? arrayTypeSymbol = semanticModel.Compilation.GetSpecialType(SpecialType.System_Array); 71private static SyntaxNode GenerateArrayEmptyInvocation(SyntaxGenerator generator, INamedTypeSymbol arrayTypeSymbol, ITypeSymbol elementType)
Microsoft.NetCore.Analyzers\Runtime\BufferBlockCopyLengthAnalyzer.cs (3)
43if (!context.Compilation.TryGetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemBuffer, out INamedTypeSymbol? bufferType)) 48INamedTypeSymbol arrayType = context.Compilation.GetSpecialType(SpecialType.System_Array); 49INamedTypeSymbol int32Type = context.Compilation.GetSpecialType(SpecialType.System_Int32);
Microsoft.NetCore.Analyzers\Runtime\DetectPreviewFeatureAnalyzer.cs (22)
233if (!context.Compilation.TryGetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemRuntimeVersioningRequiresPreviewFeaturesAttribute, out var previewFeaturesAttribute)) 247if (context.Compilation.TryGetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemRuntimeCompilerServicesRuntimeFeature, out INamedTypeSymbol? runtimeFeatureType)) 292INamedTypeSymbol previewFeatureAttributeSymbol) 302if (typeParameter is INamedTypeSymbol innerNamedType && innerNamedType.Arity > 0) 323INamedTypeSymbol previewFeatureAttributeSymbol) 338INamedTypeSymbol previewFeatureAttributeSymbol) 374INamedTypeSymbol previewFeatureAttributeSymbol) 388INamedTypeSymbol previewFeatureAttributeSymbol) 391ImmutableArray<INamedTypeSymbol> interfaces = symbol.Interfaces; 392foreach (INamedTypeSymbol anInterface in interfaces) 424INamedTypeSymbol? baseType = symbol.BaseType; 459INamedTypeSymbol previewFeatureAttribute, 465if (symbol is INamedTypeSymbol typeSymbol && typeSymbol.Arity > 0) 518private static bool SymbolIsStaticAndAbstract(ISymbol symbol, ConcurrentDictionary<ISymbol, (bool isPreview, string? message, string? url)> requiresPreviewFeaturesSymbols, INamedTypeSymbol previewFeatureAttributeSymbol) 528INamedTypeSymbol previewFeatureAttributeSymbol) 594if (methodReturnType is INamedTypeSymbol typeSymbol && typeSymbol.Arity > 0) 672INamedTypeSymbol previewFeatureAttributeSymbol) 702INamedTypeSymbol previewFeatureAttributeSymbol) 719INamedTypeSymbol previewFeatureAttributeSymbol, 744INamedTypeSymbol previewFeatureAttributeSymbol, 849INamedTypeSymbol previewFeatureAttribute, 986private static bool SymbolIsAnnotatedAsPreview(ISymbol symbol, ConcurrentDictionary<ISymbol, (bool isPreview, string? message, string? url)> requiresPreviewFeaturesSymbols, INamedTypeSymbol previewFeatureAttribute)
Microsoft.NetCore.Analyzers\Runtime\DisposableFieldsShouldBeDisposed.cs (4)
89var namedType = (INamedTypeSymbol)symbolStartContext.Symbol; 98bool HasDisposeMethod(INamedTypeSymbol namedType) 108foreach (var type in namedType.GetBaseTypes())
Microsoft.NetCore.Analyzers\Runtime\DisposableTypesShouldDeclareFinalizer.cs (3)
46ImmutableHashSet<INamedTypeSymbol?> nativeResourceTypes = ImmutableHashSet.Create( 52if (!compilation.TryGetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemIDisposable, out var disposableType)) 85INamedTypeSymbol containingType = field.ContainingType;
Microsoft.NetCore.Analyzers\Runtime\DoNotCallEnumerableCastOrOfTypeWithIncompatibleTypesAnalyzer.cs (8)
63if (!context.Compilation.TryGetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemLinqEnumerable, out var enumerableType)) 103if (type is not INamedTypeSymbol argIEnumerableType 129INamedTypeSymbol? enumerableInterface = null; 130foreach (var t in operation.Type.AllInterfaces) 305when castTo is INamedTypeSymbol toEnum: 308when castFrom is INamedTypeSymbol fromEnum: 312when castFrom is INamedTypeSymbol fromEnum 313&& castTo is INamedTypeSymbol toEnum:
Microsoft.NetCore.Analyzers\Runtime\DoNotDefineFinalizersForTypesDerivedFromMemoryManager.cs (4)
41var memoryManager1 = context.Compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemBuffersMemoryManager1); 50(INamedTypeSymbol)context.Symbol, 59private static void AnalyzeSymbol<TContext>(INamedTypeSymbol namedTypeSymbol, INamedTypeSymbol memoryManager, Action<TContext, Diagnostic> addDiagnostic, TContext context)
Microsoft.NetCore.Analyzers\Runtime\DoNotLockOnObjectsWithWeakIdentity.cs (8)
67if (compilation.TryGetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemThreadingMonitor, out var monitorType) && 102INamedTypeSymbol? marshalByRefObjectTypeSymbol = compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemMarshalByRefObject); 103INamedTypeSymbol? executionEngineExceptionTypeSymbol = compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemExecutionEngineException); 104INamedTypeSymbol? outOfMemoryExceptionTypeSymbol = compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemOutOfMemoryException); 105INamedTypeSymbol? stackOverflowExceptionTypeSymbol = compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemStackOverflowException); 106INamedTypeSymbol? memberInfoTypeSymbol = compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemReflectionMemberInfo); 107INamedTypeSymbol? parameterInfoTypeSymbol = compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemReflectionParameterInfo); 108INamedTypeSymbol? threadTypeSymbol = compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemThreadingThread);
Microsoft.NetCore.Analyzers\Runtime\DoNotPassLiteralsAsLocalizedParameters.cs (17)
52INamedTypeSymbol? localizableStateAttributeSymbol = context.Compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemComponentModelLocalizableAttribute); 53INamedTypeSymbol? conditionalAttributeSymbol = context.Compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemDiagnosticsConditionalAttribute); 54INamedTypeSymbol? systemConsoleSymbol = context.Compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemConsole); 55ImmutableHashSet<INamedTypeSymbol> typesToIgnore = GetTypesToIgnore(context.Compilation); 179private static ImmutableHashSet<INamedTypeSymbol> GetTypesToIgnore(Compilation compilation) 181var builder = PooledHashSet<INamedTypeSymbol>.GetInstance(); 183var xmlWriter = compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemXmlXmlWriter); 189var webUILiteralControl = compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemWebUILiteralControl); 195var unitTestingAssert = compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.MicrosoftVisualStudioTestToolsUnitTestingAssert); 201var unitTestingCollectionAssert = compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.MicrosoftVisualStudioTestToolsUnitTestingCollectionAssert); 207var unitTestingCollectionStringAssert = compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.MicrosoftVisualStudioTestToolsUnitTestingStringAssert); 219INamedTypeSymbol? localizableStateAttributeSymbol, 220INamedTypeSymbol? conditionalAttributeSymbol, 221INamedTypeSymbol? systemConsoleSymbol, 222ImmutableHashSet<INamedTypeSymbol> typesToIgnore, 296private static LocalizableAttributeState GetLocalizableAttributeState(ISymbol symbol, INamedTypeSymbol localizableAttributeTypeSymbol) 313private static LocalizableAttributeState GetLocalizableAttributeStateCore(ImmutableArray<AttributeData> attributeList, INamedTypeSymbol localizableAttributeTypeSymbol)
Microsoft.NetCore.Analyzers\Runtime\DoNotRaiseReservedExceptionTypes.cs (10)
90ImmutableHashSet<INamedTypeSymbol> tooGenericExceptionSymbols = CreateSymbolSet(compilationStartContext.Compilation, s_tooGenericExceptions); 91ImmutableHashSet<INamedTypeSymbol> reservedExceptionSymbols = CreateSymbolSet(compilationStartContext.Compilation, s_reservedExceptions); 104private static ImmutableHashSet<INamedTypeSymbol> CreateSymbolSet(Compilation compilation, IEnumerable<string> exceptionNames) 106HashSet<INamedTypeSymbol>? set = null; 109INamedTypeSymbol? symbol = compilation.GetOrCreateTypeByMetadataName(exp); 115set ??= new HashSet<INamedTypeSymbol>(); 120return set != null ? set.ToImmutableHashSet() : ImmutableHashSet<INamedTypeSymbol>.Empty; 125ImmutableHashSet<INamedTypeSymbol> tooGenericExceptionSymbols, 126ImmutableHashSet<INamedTypeSymbol> reservedExceptionSymbols) 132var typeSymbol = objectCreation.Constructor.ContainingType;
Microsoft.NetCore.Analyzers\Runtime\DoNotUseEndOfStreamInAsyncMethods.cs (1)
46var streamReaderType = context.Compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemIOStreamReader);
Microsoft.NetCore.Analyzers\Runtime\DoNotUseEnumerableMethodsOnIndexableCollectionsInsteadUseTheCollectionDirectly.cs (2)
50var enumerableType = context.Compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemLinqEnumerable); 105foreach (var current in targetType.AllInterfaces)
Microsoft.NetCore.Analyzers\Runtime\DoNotUseReferenceEqualsWithValueTypes.cs (2)
55var objectType = compilationStartContext.Compilation.GetSpecialType(SpecialType.System_Object); 73var referenceEqualityComparer =
Microsoft.NetCore.Analyzers\Runtime\ForwardCancellationTokenToInvocations.Analyzer.cs (23)
43protected abstract bool ArgumentsImplicitOrNamed(INamedTypeSymbol cancellationTokenType, ImmutableArray<IArgumentOperation> arguments); 73if (!typeProvider.TryGetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemThreadingCancellationToken, out INamedTypeSymbol? cancellationTokenType) 74|| !typeProvider.TryGetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemObsoleteAttribute, out INamedTypeSymbol? obsoleteAttribute)) 80typeProvider.TryGetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemThreadingTasksTask1, out INamedTypeSymbol? genericTask); 81typeProvider.TryGetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemThreadingTasksValueTask1, out INamedTypeSymbol? genericValueTask); 129INamedTypeSymbol cancellationTokenType, 130INamedTypeSymbol? genericTask, 131INamedTypeSymbol? genericValueTask, 132INamedTypeSymbol obsoleteAttribute, 196INamedTypeSymbol cancellationTokenType, 251INamedTypeSymbol cancellationTokenType, 270INamedTypeSymbol cancellationTokenType) 298INamedTypeSymbol cancellationTokenType) 318INamedTypeSymbol cancellationTokenType) 340INamedTypeSymbol? genericTask, 341INamedTypeSymbol? genericValueTask, 342INamedTypeSymbol obsoleteAttribute, 357INamedTypeSymbol? genericTask, 358INamedTypeSymbol? genericValueTask, 399originalReturnType is INamedTypeSymbol originalNamedType && 400toCompareReturnType is INamedTypeSymbol toCompareNamedType && 428bool TypeArgumentsAreConvertable(INamedTypeSymbol left, INamedTypeSymbol right)
Microsoft.NetCore.Analyzers\Runtime\LoggerMessageDefineAnalyzer.cs (7)
110if (!wellKnownTypeProvider.TryGetOrCreateTypeByMetadataName(WellKnownTypeNames.MicrosoftExtensionsLoggingLoggerExtensions, out var loggerExtensionsType) || 111!wellKnownTypeProvider.TryGetOrCreateTypeByMetadataName(WellKnownTypeNames.MicrosoftExtensionsLoggingILogger, out var loggerType) || 112!wellKnownTypeProvider.TryGetOrCreateTypeByMetadataName(WellKnownTypeNames.MicrosoftExtensionsLoggingLoggerMessage, out var loggerMessageType)) 121private void AnalyzeInvocation(OperationAnalysisContext context, INamedTypeSymbol loggerType, INamedTypeSymbol loggerExtensionsType, INamedTypeSymbol loggerMessageType) 126var containingType = methodSymbol.ContainingType;
Microsoft.NetCore.Analyzers\Runtime\MarkAllNonSerializableFields.Fixer.cs (2)
58if (!editor.SemanticModel.Compilation.TryGetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemNonSerializedAttribute, out INamedTypeSymbol? nonSerializedAttributeType)) 73if (!docEditor.SemanticModel.Compilation.TryGetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemSerializableAttribute, out INamedTypeSymbol? serializableAttributeType))
Microsoft.NetCore.Analyzers\Runtime\MarkISerializableTypesWithSerializable.Fixer.cs (1)
42if (!semanticModel.Compilation.TryGetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemSerializableAttribute, out INamedTypeSymbol? serializableAttributeType))
Microsoft.NetCore.Analyzers\Runtime\ModuleInitializerAttributeShouldNotBeUsedInLibraries.cs (1)
48if (!context.Compilation.TryGetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemRuntimeCompilerServicesModuleInitializerAttribute, out var moduleInitializerAttribute))
Microsoft.NetCore.Analyzers\Runtime\NormalizeStringsToUppercase.cs (2)
44var stringType = context.Compilation.GetSpecialType(SpecialType.System_String); 46var cultureInfo = context.Compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemGlobalizationCultureInfo);
Microsoft.NetCore.Analyzers\Runtime\PreferAsSpanOverSubstring.cs (14)
188var enclosingType = GetEnclosingType(model, location, cancellationToken); 203static INamedTypeSymbol GetEnclosingType(SemanticModel model, int location, CancellationToken cancellationToken) 206if (symbol is not INamedTypeSymbol type) 219INamedTypeSymbol stringType, INamedTypeSymbol roscharType, 220INamedTypeSymbol memoryExtensionsType, 235var stringType = compilation.GetSpecialType(SpecialType.System_String); 236var charType = compilation.GetSpecialType(SpecialType.System_Char); 237var int32Type = compilation.GetSpecialType(SpecialType.System_Int32); 245var readOnlySpanOfCharType = compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemReadOnlySpan1)?.Construct(charType); 246var memoryExtensionsType = compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemMemoryExtensions); 279public INamedTypeSymbol StringType { get; } 280public INamedTypeSymbol ReadOnlySpanOfCharType { get; } 281public INamedTypeSymbol MemoryExtensionsType { get; }
Microsoft.NetCore.Analyzers\Runtime\PreferConstCharOverConstUnitStringAnalyzer.cs (1)
44if (!compilationContext.Compilation.TryGetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemTextStringBuilder, out INamedTypeSymbol? stringBuilderType))
Microsoft.NetCore.Analyzers\Runtime\PreferDictionaryContainsMethods.cs (7)
64if (!compilation.TryGetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemCollectionsGenericICollection1, out var icollectionType)) 66if (!compilation.TryGetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemCollectionsGenericIDictionary2, out var idictionaryType)) 68if (!compilation.TryGetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemCollectionsGenericIEnumerable1, out var ienumerableType)) 71var linqExpressionType = compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemLinqExpressionsExpression1); 118|| !TryGetConstructedDictionaryType(property.ContainingType, out INamedTypeSymbol? constructedDictionaryType)) 179bool TryGetConstructedDictionaryType(INamedTypeSymbol derived, [NotNullWhen(true)] out INamedTypeSymbol? constructedDictionaryType)
Microsoft.NetCore.Analyzers\Runtime\PreferJsonElementParse.cs (2)
44INamedTypeSymbol? jsonDocumentType = context.Compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemTextJsonJsonDocument); 45INamedTypeSymbol? jsonElementType = context.Compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemTextJsonJsonElement);
Microsoft.NetCore.Analyzers\Runtime\PreferJsonElementParse.Fixer.cs (1)
52model.Compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemTextJsonJsonElement) is not INamedTypeSymbol jsonElementType)
Microsoft.NetCore.Analyzers\Runtime\PreferReadOnlySpanPropertiesOverReadOnlyArrayFieldsAnalyzer.cs (21)
71if (!ShouldAnalyze((INamedTypeSymbol)context.Symbol)) 79bool ShouldAnalyze(INamedTypeSymbol namedType) 148var namedType = (INamedTypeSymbol)context.Symbol; 173INamedTypeSymbol? attributeUsageAttributeType, 195INamedTypeSymbol? linqExpressionTreeType) 240INamedTypeSymbol readOnlySpanType) 242INamedTypeSymbol? runtimeHelpersType = 252method.ReturnType is INamedTypeSymbol 261private static bool CanMoveAttributesToProperty(IFieldSymbol field, INamedTypeSymbol? attributeUsageAttributeType) 265if (attribute.AttributeClass is INamedTypeSymbol attributeClass && 275private static bool IsValidOnProperty(INamedTypeSymbol attributeClass, INamedTypeSymbol? attributeUsageAttributeType) 279for (INamedTypeSymbol? type = attributeClass; type is not null; type = type.BaseType) 431private RequiredSymbols(Compilation compilation, INamedTypeSymbol readOnlySpanType, IPropertySymbol arrayLengthProperty) 447if (compilation.TryGetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemReadOnlySpan1, out var rosType) && 458public INamedTypeSymbol ReadOnlySpanType { get; } 461public INamedTypeSymbol? MemoryExtensionsType { get; } 462public INamedTypeSymbol? SpanType { get; } 463public INamedTypeSymbol? LinqExpressionTreeType { get; } 464public INamedTypeSymbol? AttributeUsageAttributeType { get; }
Microsoft.NetCore.Analyzers\Runtime\PreferStreamAsyncMemoryOverloads.cs (12)
77if (!context.Compilation.TryGetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemIOStream, out INamedTypeSymbol? streamType)) 83if (!context.Compilation.TryGetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemReadOnlyMemory1, out INamedTypeSymbol? readOnlyMemoryType)) 88if (!context.Compilation.TryGetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemMemory1, out INamedTypeSymbol? memoryType)) 94if (!context.Compilation.TryGetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemThreadingCancellationToken, out INamedTypeSymbol? cancellationTokenType)) 99INamedTypeSymbol byteType = context.Compilation.GetSpecialType(SpecialType.System_Byte); 105INamedTypeSymbol int32Type = context.Compilation.GetSpecialType(SpecialType.System_Int32); 159x.Parameters[0].Type is INamedTypeSymbol type && 168x.Parameters[0].Type is INamedTypeSymbol type && 180if (!context.Compilation.TryGetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemThreadingTasksTask, out INamedTypeSymbol? taskType)) 185if (!context.Compilation.TryGetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemThreadingTasksTask1, out INamedTypeSymbol? genericTaskType)) 251INamedTypeSymbol streamType, 287private static bool IsDefinedBy(IMethodSymbol method, INamedTypeSymbol baseType, out IMethodSymbol actualMethod)
Microsoft.NetCore.Analyzers\Runtime\PreferStringContainsOverIndexOfAnalyzer.cs (3)
43if (context.Compilation.GetSpecialType(SpecialType.System_String) is not INamedTypeSymbol stringType || 44context.Compilation.GetSpecialType(SpecialType.System_Char) is not INamedTypeSymbol charType || 45!context.Compilation.TryGetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemStringComparison, out INamedTypeSymbol? stringComparisonType))
Microsoft.NetCore.Analyzers\Runtime\PreferTypedStringBuilderAppendOverloads.cs (1)
45if (!typeProvider.TryGetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemTextStringBuilder, out var stringBuilderType))
Microsoft.NetCore.Analyzers\Runtime\PreventNumericIntPtrUIntPtrBehavioralChanges.cs (1)
70if (!context.Compilation.TryGetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemRuntimeCompilerServicesRuntimeFeature, out var runtimeFeatureType) ||
Microsoft.NetCore.Analyzers\Runtime\ProvideCorrectArgumentsToFormattingMethods.cs (7)
350INamedTypeSymbol? console = compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemConsole); 354INamedTypeSymbol @string = compilation.GetSpecialType(SpecialType.System_String); 362public INamedTypeSymbol String { get; } 363public INamedTypeSymbol Object { get; } 364public ImmutableArray<INamedTypeSymbol> StringSyntaxAttributes { get; } 410private void AddStringFormatMap(INamedTypeSymbol? type, string methodName) 498if (attribute.AttributeClass is INamedTypeSymbol attributeClass &&
Microsoft.NetCore.Analyzers\Runtime\ProvideStreamMemoryBasedAsyncOverrides.cs (9)
62var type = (INamedTypeSymbol)context.Symbol; 94static Diagnostic CreateDiagnostic(INamedTypeSymbol violatingType, IMethodSymbol arrayBasedOverride, IMethodSymbol memoryBasedMethod) 111var int32Type = compilation.GetSpecialType(SpecialType.System_Int32); 112var byteType = compilation.GetSpecialType(SpecialType.System_Byte); 121var memoryOfByteType = compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemMemory1)?.Construct(byteType); 122var readOnlyMemoryOfByteType = compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemReadOnlyMemory1)?.Construct(byteType); 123var streamType = compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemIOStream); 124var cancellationTokenType = compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemThreadingCancellationToken);
Microsoft.NetCore.Analyzers\Runtime\SealInternalTypes.cs (7)
43INamedTypeSymbol? comImportAttributeType = context.Compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemRuntimeInteropServicesComImportAttribute); 45var candidateTypes = PooledConcurrentSet<INamedTypeSymbol>.GetInstance(SymbolEqualityComparer.Default); 46var baseTypes = PooledConcurrentSet<INamedTypeSymbol>.GetInstance(SymbolEqualityComparer.Default); 52var type = (INamedTypeSymbol)context.Symbol; 65for (INamedTypeSymbol? baseType = type.BaseType; baseType is not null; baseType = baseType.BaseType) 73foreach (INamedTypeSymbol type in candidateTypes)
Microsoft.NetCore.Analyzers\Runtime\SerializationRulesDiagnosticAnalyzer.cs (13)
58INamedTypeSymbol? iserializableTypeSymbol = context.Compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemRuntimeSerializationISerializable); 64INamedTypeSymbol? serializableAttributeTypeSymbol = context.Compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemSerializableAttribute); 70INamedTypeSymbol? nonSerializedAttributeTypeSymbol = context.Compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemNonSerializedAttribute); 85private readonly INamedTypeSymbol _iserializableTypeSymbol; 86private readonly INamedTypeSymbol _serializableAttributeTypeSymbol; 87private readonly INamedTypeSymbol _nonSerializedAttributeTypeSymbol; 91INamedTypeSymbol iserializableTypeSymbol, 92INamedTypeSymbol serializableAttributeTypeSymbol, 93INamedTypeSymbol nonSerializedAttributeTypeSymbol, 104var namedTypeSymbol = (INamedTypeSymbol)context.Symbol; 190TypeKind.Enum => IsSerializable(((INamedTypeSymbol)type).EnumUnderlyingType!), 193TypeKind.Class or TypeKind.Struct => ((INamedTypeSymbol)type).IsSerializable,// Check SerializableAttribute or Serializable flag from metadata.
Microsoft.NetCore.Analyzers\Runtime\SpecifyCultureForToLowerAndToUpper.cs (1)
38var stringType = context.Compilation.GetSpecialType(SpecialType.System_String);
Microsoft.NetCore.Analyzers\Runtime\SpecifyCultureForToLowerAndToUpper.Fixer.cs (1)
92var cultureInfoType = model.Compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemGlobalizationCultureInfo)!;
Microsoft.NetCore.Analyzers\Runtime\SpecifyCultureInfo.cs (2)
40var obsoleteAttributeType = context.Compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemObsoleteAttribute); 42var cultureInfoType = context.Compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemGlobalizationCultureInfo);
Microsoft.NetCore.Analyzers\Runtime\SpecifyIFormatProvider.cs (19)
90var iformatProviderType = typeProvider.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemIFormatProvider); 91var cultureInfoType = typeProvider.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemGlobalizationCultureInfo); 97var objectType = context.Compilation.GetSpecialType(SpecialType.System_Object); 98var stringType = context.Compilation.GetSpecialType(SpecialType.System_String); 100var charType = context.Compilation.GetSpecialType(SpecialType.System_Char); 101var boolType = context.Compilation.GetSpecialType(SpecialType.System_Boolean); 102var guidType = typeProvider.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemGuid); 104var nullableT = context.Compilation.GetSpecialType(SpecialType.System_Nullable_T); 143var threadType = typeProvider.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemThreadingThread); 146var activatorType = typeProvider.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemActivator); 147var resourceManagerType = typeProvider.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemResourcesResourceManager); 149var computerInfoType = typeProvider.GetOrCreateTypeByMetadataName(WellKnownTypeNames.MicrosoftVisualBasicDevicesComputerInfo); 152var obsoleteAttributeType = typeProvider.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemObsoleteAttribute); 156var convertType = typeProvider.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemConvert); 309private static IMethodSymbol? GetToStringWithFormatStringParameter(INamedTypeSymbol? type) 314private static void AddValidToStringMethods(ImmutableHashSet<IMethodSymbol>.Builder validToStringMethodsBuilder, INamedTypeSymbol nullableT, INamedTypeSymbol? type) 324static IEnumerable<IMethodSymbol> GetToStringMethods(INamedTypeSymbol namedTypeSymbol) 328private static ParameterInfo GetParameterInfo(INamedTypeSymbol type, bool isArray = false, int arrayRank = 0, bool isParams = false)
Microsoft.NetCore.Analyzers\Runtime\SpecifyStringComparison.cs (9)
54var stringComparisonType = context.Compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemStringComparison); 55var stringType = context.Compilation.GetSpecialType(SpecialType.System_String); 65var linqExpressionType = context.Compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemLinqExpressionsExpression1); 129INamedTypeSymbol stringType, 130INamedTypeSymbol stringComparisonType) 132var objectType = compilation.GetSpecialType(SpecialType.System_Object); 133var booleanType = compilation.GetSpecialType(SpecialType.System_Boolean); 134var integerType = compilation.GetSpecialType(SpecialType.System_Int32); 210private static ParameterInfo GetParameterInfo(INamedTypeSymbol type, bool isArray = false, int arrayRank = 0, bool isParams = false)
Microsoft.NetCore.Analyzers\Runtime\TestForEmptyStringsUsingStringLength.cs (3)
52var linqExpressionType = context.Compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemLinqExpressionsExpression1); 74INamedTypeSymbol? linqExpressionTreeType, Action<TContext, Diagnostic> reportDiagnostic, TContext context) 100INamedTypeSymbol? linqExpressionTreeType, Action<TContext, Diagnostic> reportDiagnostic, TContext context)
Microsoft.NetCore.Analyzers\Runtime\UseAsyncMethodInAsyncContext.cs (15)
62ConcurrentDictionary<string, INamedTypeSymbol> syncBlockingTypes = new(); 84if (!wellKnownTypeProvider.TryGetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemObsoleteAttribute, out INamedTypeSymbol? systemObsoleteAttribute)) 89INamedTypeSymbol? semaphoreSlimType = wellKnownTypeProvider.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemThreadingSemaphoreSlim); 90INamedTypeSymbol? timeSpanType = wellKnownTypeProvider.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemTimeSpan); 91INamedTypeSymbol intType = context.Compilation.GetSpecialType(SpecialType.System_Int32); 206private static void GetTypeAndAddToDictionary(string key, string typeName, ConcurrentDictionary<string, INamedTypeSymbol> syncBlockingTypes, WellKnownTypeProvider wellKnownTypeProvider) 208if (wellKnownTypeProvider.TryGetOrCreateTypeByMetadataName(typeName, out INamedTypeSymbol? typeValue)) 216if (wellKnownTypeProvider.TryGetOrCreateTypeByMetadataName(metadataName, out INamedTypeSymbol? typeValue)) 241if (wellKnownTypeProvider.TryGetOrCreateTypeByMetadataName(entityFrameworkTypeName, out INamedTypeSymbol? entityFrameworkType)) 253if (wellKnownTypeProvider.TryGetOrCreateTypeByMetadataName(WellKnownTypeNames.MicrosoftEntityFrameworkCoreDbContextFactory, out INamedTypeSymbol? dbContextFactoryType)) 277private static bool HasAsyncCompatibleReturnType(IMethodSymbol methodSymbol, ConcurrentDictionary<string, INamedTypeSymbol> syncBlockingTypes) 286static bool CheckReturnTypeMatch(string targetType, ISymbol returnType, ConcurrentDictionary<string, INamedTypeSymbol> syncBlockingTypes) 287=> syncBlockingTypes.TryGetValue(targetType, out INamedTypeSymbol? targetTypeValue) 294|| (syncBlockingTypes.TryGetValue("AsyncMethodBuilderAttribute", out INamedTypeSymbol? asyncMethodBuilderAttributeTypeValue) 320private static bool IsInTaskReturningMethodOrDelegate(OperationAnalysisContext context, ConcurrentDictionary<string, INamedTypeSymbol> syncBlockingTypes)
Microsoft.NetCore.Analyzers\Runtime\UseCancellationTokenThrowIfCancellationRequested.cs (3)
87INamedTypeSymbol boolType = compilation.GetSpecialType(SpecialType.System_Boolean); 91if (!compilation.TryGetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemThreadingCancellationToken, out INamedTypeSymbol? cancellationTokenType)) 104if (!compilation.TryGetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemOperationCanceledException, out INamedTypeSymbol? operationCanceledExceptionType))
Microsoft.NetCore.Analyzers\Runtime\UseEnvironmentMembers.cs (4)
67if (!context.Compilation.TryGetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemEnvironment, out var environmentType) || 68!context.Compilation.TryGetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemDiagnosticsProcess, out var processType) || 69!context.Compilation.TryGetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemDiagnosticsProcessModule, out var processModuleType) || 70!context.Compilation.TryGetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemThreadingThread, out var threadType))
Microsoft.NetCore.Analyzers\Runtime\UseEnvironmentMembersFixer.cs (1)
77if (!model.Compilation.TryGetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemEnvironment, out INamedTypeSymbol? environmentType) ||
Microsoft.NetCore.Analyzers\Runtime\UseExceptionThrowHelpers.cs (6)
95INamedTypeSymbol? ane = context.Compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemArgumentNullException); 96INamedTypeSymbol? aoore = context.Compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemArgumentOutOfRangeException); 97INamedTypeSymbol? ae = context.Compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemArgumentException); 98INamedTypeSymbol? ode = context.Compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemObjectDisposedException); 106INamedTypeSymbol stringType = context.Compilation.GetSpecialType(SpecialType.System_String); 107INamedTypeSymbol objectType = context.Compilation.GetSpecialType(SpecialType.System_Object);
Microsoft.NetCore.Analyzers\Runtime\UseExceptionThrowHelpersFixer.cs (4)
35if (TryGetFixInfo(doc, root, model, context.Diagnostics[0], out INamedTypeSymbol? typeSymbol, out string? methodName, out SyntaxNode? node, out SyntaxNode? arg, out SyntaxNode? other)) 54[NotNullWhen(true)] out INamedTypeSymbol? typeSymbol, 109INamedTypeSymbol typeSymbol, 140if (TryGetFixInfo(document, root, model, diagnostic, out INamedTypeSymbol? typeSymbol, out string? methodName, out SyntaxNode? node, out SyntaxNode? arg, out SyntaxNode? other))
Microsoft.NetCore.Analyzers\Runtime\UseOrdinalStringComparison.cs (4)
47INamedTypeSymbol? stringComparisonType = context.Compilation.GetOrCreateTypeByMetadataName(StringComparisonTypeName); 90private static bool IsAcceptableOverload(IMethodSymbol methodSymbol, INamedTypeSymbol stringComparisonType) 97private static bool IsAcceptableInstanceOverload(IMethodSymbol methodSymbol, INamedTypeSymbol stringComparisonType) 117private static bool IsAcceptableStaticOverload(IMethodSymbol methodSymbol, INamedTypeSymbol stringComparisonType)
Microsoft.NetCore.Analyzers\Runtime\UseOrdinalStringComparison.Fixer.cs (1)
110INamedTypeSymbol stringComparisonType = model.Compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemStringComparison)!;
Microsoft.NetCore.Analyzers\Runtime\UseRegexMembers.cs (3)
57if (!context.Compilation.TryGetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemTextRegularExpressionsGroup, out var groupType) || 58!context.Compilation.TryGetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemTextRegularExpressionsMatchCollection, out var matchCollectionType) || 59!context.Compilation.TryGetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemTextRegularExpressionsRegex, out var regexType))
Microsoft.NetCore.Analyzers\Runtime\UseRegexMembersFixer.cs (1)
79!model.Compilation.TryGetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemTextRegularExpressionsRegex, out INamedTypeSymbol? regexType))
Microsoft.NetCore.Analyzers\Runtime\UseSpanBasedStringConcat.cs (8)
180INamedTypeSymbol stringType, INamedTypeSymbol roscharType, 194var stringType = compilation.GetSpecialType(SpecialType.System_String); 195var charType = compilation.GetSpecialType(SpecialType.System_Char); 203var readOnlySpanOfCharType = compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemReadOnlySpan1)?.Construct(charType); 204var memoryExtensionsType = compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemMemoryExtensions); 236public INamedTypeSymbol StringType { get; } 237public INamedTypeSymbol ReadOnlySpanOfCharType { get; }
Microsoft.NetCore.Analyzers\Runtime\UseStringEqualsOverStringCompare.cs (10)
77INamedTypeSymbol stringType, 78INamedTypeSymbol boolType, 79INamedTypeSymbol stringComparisonType, 104var stringType = compilation.GetSpecialType(SpecialType.System_String); 105var boolType = compilation.GetSpecialType(SpecialType.System_Boolean); 111if (!typeProvider.TryGetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemStringComparison, out var stringComparisonType)) 131var intType = compilation.GetSpecialType(SpecialType.System_Int32); 157public INamedTypeSymbol StringType { get; } 158public INamedTypeSymbol BoolType { get; } 159public INamedTypeSymbol StringComparisonType { get; }
Microsoft.NetCore.Analyzers\Runtime\UseThreadStaticCorrectly.cs (1)
56if (!context.Compilation.TryGetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemThreadStaticAttribute, out var threadStaticAttributeType))
Microsoft.NetCore.Analyzers\Security\ApprovedCipherModeAnalyzer.cs (1)
52INamedTypeSymbol? cipherModeTypeSymbol =
Microsoft.NetCore.Analyzers\Security\DataSetDataTableInIFormatterSerializableObjectGraphAnalyzer.cs (8)
55out INamedTypeSymbol? dataSetTypeSymbol) 58out INamedTypeSymbol? dataTableTypeSymbol)) 63INamedTypeSymbol? serializableAttributeTypeSymbol = wellKnownTypeProvider.GetOrCreateTypeByMetadataName( 65INamedTypeSymbol? nonSerializedAttributeTypeSymbol = wellKnownTypeProvider.GetOrCreateTypeByMetadataName( 67INamedTypeSymbol? binaryFormatterTypeSymbol = wellKnownTypeProvider.GetOrCreateTypeByMetadataName( 69INamedTypeSymbol? netDataContractSerializerTypeSymbol = wellKnownTypeProvider.GetOrCreateTypeByMetadataName( 71INamedTypeSymbol? objectStateFormatterTypeSymbol = wellKnownTypeProvider.GetOrCreateTypeByMetadataName( 73INamedTypeSymbol? soapFormatterTypeSymbol = wellKnownTypeProvider.GetOrCreateTypeByMetadataName(
Microsoft.NetCore.Analyzers\Security\DataSetDataTableInSerializableObjectGraphAnalyzer.cs (9)
65out INamedTypeSymbol? dataSetTypeSymbol) 68out INamedTypeSymbol? dataTableTypeSymbol)) 73INamedTypeSymbol? dataContractSerializerTypeSymbol = wellKnownTypeProvider.GetOrCreateTypeByMetadataName( 75INamedTypeSymbol? dataContractJsonSerializerTypeSymbol = 78INamedTypeSymbol? javaScriptSerializerTypeSymbol = wellKnownTypeProvider.GetOrCreateTypeByMetadataName( 80INamedTypeSymbol? typeTypeSymbol = wellKnownTypeProvider.GetOrCreateTypeByMetadataName( 82INamedTypeSymbol? xmlSerializerTypeSymbol = wellKnownTypeProvider.GetOrCreateTypeByMetadataName( 84INamedTypeSymbol? jsonNetJsonSerializerTypeSymbol = wellKnownTypeProvider.GetOrCreateTypeByMetadataName( 86INamedTypeSymbol? jsonNetJsonConvertTypeSymbol = wellKnownTypeProvider.GetOrCreateTypeByMetadataName(
Microsoft.NetCore.Analyzers\Security\DataSetDataTableInSerializableTypeAnalyzer.cs (14)
83out INamedTypeSymbol? dataSetTypeSymbol) 86out INamedTypeSymbol? dataTableTypeSymbol)) 91INamedTypeSymbol? serializableAttributeTypeSymbol = wellKnownTypeProvider.GetOrCreateTypeByMetadataName( 94INamedTypeSymbol? generatedCodeAttributeTypeSymbol = wellKnownTypeProvider.GetOrCreateTypeByMetadataName( 98INamedTypeSymbol? dataContractAttributeTypeSymbol = wellKnownTypeProvider.GetOrCreateTypeByMetadataName( 100INamedTypeSymbol? dataMemberAttributeTypeSymbol = wellKnownTypeProvider.GetOrCreateTypeByMetadataName( 102INamedTypeSymbol? ignoreDataMemberTypeSymbol = wellKnownTypeProvider.GetOrCreateTypeByMetadataName( 104INamedTypeSymbol? knownTypeAttributeTypeSymbol = wellKnownTypeProvider.GetOrCreateTypeByMetadataName( 118INamedTypeSymbol? designerCategoryAttributeTypeSymbol = 121INamedTypeSymbol? typedTableBaseTypeSymbol = 127ConcurrentDictionary<INamedTypeSymbol, bool> visitedTypes = 128new ConcurrentDictionary<INamedTypeSymbol, bool>(); 133INamedTypeSymbol namedTypeSymbol = (INamedTypeSymbol)symbolAnalysisContext.Symbol;
Microsoft.NetCore.Analyzers\Security\DataSetDataTableInWebSerializableObjectGraphAnalyzer.cs (6)
55out INamedTypeSymbol? dataSetTypeSymbol) 58out INamedTypeSymbol? dataTableTypeSymbol)) 63INamedTypeSymbol? webMethodAttributeTypeSymbol = wellKnownTypeProvider.GetOrCreateTypeByMetadataName( 65INamedTypeSymbol? operationContractAttributeTypeSymbol = 81INamedTypeSymbol namedTypeSymbol = (INamedTypeSymbol)symbolAnalysisContext.Symbol;
Microsoft.NetCore.Analyzers\Security\DoNotAddSchemaByURL.cs (1)
44var xmlSchemaCollectionTypeSymbol = compilationStartAnalysisContext.Compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemXmlSchemaXmlSchemaCollection);
Microsoft.NetCore.Analyzers\Security\DoNotAlwaysSkipTokenValidationInDelegates.cs (13)
48var microsoftIdentityModelTokensAudienceValidatorTypeSymbol = 50var microsoftIdentityModelTokensLifetimeValidatorTypeSymbol = 52var nullableDateTime = compilation.GetSpecialType(SpecialType.System_Nullable_T).Construct(compilation.GetSpecialType(SpecialType.System_DateTime)); 53var stringSymbol = compilation.GetSpecialType(SpecialType.System_String); 54var ienumString = compilation.GetSpecialType(SpecialType.System_Collections_Generic_IEnumerable_T).Construct(stringSymbol); 55var securityToken = compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.MicrosoftIdentityModelTokensSecurityToken); 56var tokenValidationParameters = compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.MicrosoftIdentityModelTokensTokenValidationParameters); 140INamedTypeSymbol iEnumerableString, 141INamedTypeSymbol securityToken, 142INamedTypeSymbol tokenValidationParameters) 168INamedTypeSymbol nullableDateTime, 169INamedTypeSymbol securityToken, 170INamedTypeSymbol tokenValidationParameters)
Microsoft.NetCore.Analyzers\Security\DoNotCallDangerousMethodsInDeserialization.cs (7)
66out INamedTypeSymbol? serializableAttributeTypeSymbol)) 77out INamedTypeSymbol? typeSymbol)) 98var attributeTypeSymbolsBuilder = ImmutableArray.CreateBuilder<INamedTypeSymbol>(); 102out INamedTypeSymbol? onDeserializingAttributeTypeSymbol)) 109out INamedTypeSymbol? onDeserializedAttributeTypeSymbol)) 116if (!wellKnownTypeProvider.TryGetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemRuntimeSerializationStreamingContext, out INamedTypeSymbol? streamingContextTypeSymbol) || 117!wellKnownTypeProvider.TryGetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemRuntimeSerializationIDeserializationCallback, out INamedTypeSymbol? IDeserializationCallbackTypeSymbol))
Microsoft.NetCore.Analyzers\Security\DoNotDisableCertificateValidation.cs (9)
47var systemNetSecurityRemoteCertificateValidationCallbackTypeSymbol = compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemNetSecurityRemoteCertificateValidationCallback); 48var obj = compilation.GetSpecialType(SpecialType.System_Object); 49var x509Certificate = compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemSecurityCryptographyX509CertificatesX509Certificate); 50var x509Chain = compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemSecurityCryptographyX509CertificatesX509Chain); 51var sslPolicyErrors = compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemNetSecuritySslPolicyErrors); 126private static bool IsCertificateValidationFunction(IMethodSymbol methodSymbol, INamedTypeSymbol obj, INamedTypeSymbol x509Certificate, INamedTypeSymbol x509Chain, INamedTypeSymbol sslPolicyErrors)
Microsoft.NetCore.Analyzers\Security\DoNotDisableHttpClientCRLCheck.cs (1)
132if (!wellKnownTypeProvider.TryGetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemNetHttpHttpClient, out INamedTypeSymbol? httpClientTypeSymbol))
Microsoft.NetCore.Analyzers\Security\DoNotDisableHttpHeaderChecking.cs (1)
45var httpRuntimeSectionTypeSymbol = compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemWebConfigurationHttpRuntimeSection);
Microsoft.NetCore.Analyzers\Security\DoNotDisableRequestValidation.cs (2)
46out INamedTypeSymbol? validateInputAttributeTypeSymbol)) 55var typeSymbol = symbol.ContainingType;
Microsoft.NetCore.Analyzers\Security\DoNotDisableTokenValidationChecks.cs (1)
53var tokenValidationParamsTypeSymbol = compilation.GetOrCreateTypeByMetadataName(
Microsoft.NetCore.Analyzers\Security\DoNotInstallRootCert.cs (2)
88if (!wellKnownTypeProvider.TryGetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemSecurityCryptographyX509CertificatesX509Store, out var x509TypeSymbol)) 93if (!wellKnownTypeProvider.TryGetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemSecurityCryptographyX509CertificatesStoreName, out var storeNameTypeSymbol))
Microsoft.NetCore.Analyzers\Security\DoNotSerializeTypeWithPointerFields.cs (3)
48var serializableAttributeTypeSymbol = compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemSerializableAttribute); 55var nonSerializedAttribute = compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemNonSerializedAttribute); 95else if (typeSymbol is INamedTypeSymbol namedTypeSymbol)
Microsoft.NetCore.Analyzers\Security\DoNotSetSwitch.cs (1)
74var appContextTypeSymbol = compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemAppContext);
Microsoft.NetCore.Analyzers\Security\DoNotUseAccountSAS.cs (1)
46out INamedTypeSymbol? cloudStorageAccountTypeSymbol))
Microsoft.NetCore.Analyzers\Security\DoNotUseCreateEncryptorWithNonDefaultIV.cs (1)
99if (!wellKnownTypeProvider.TryGetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemSecurityCryptographySymmetricAlgorithm, out var symmetricAlgorithmTypeSymbol))
Microsoft.NetCore.Analyzers\Security\DoNotUseDeprecatedSecurityProtocols.cs (2)
68out var securityProtocolTypeTypeSymbol) 71out var servicePointManagerTypeSymbol))
Microsoft.NetCore.Analyzers\Security\DoNotUseDSA.cs (5)
56out var dsaTypeSymbol); 59out var asymmetricAlgorithmTypeSymbol); 62out var cryptoConfigTypeSymbol); 74var typeSymbol = objectCreationOperation.Constructor?.ContainingType; 117var typeSymbol = methodSymbol.ContainingType;
Microsoft.NetCore.Analyzers\Security\DoNotUseInsecureCryptographicAlgorithms.cs (1)
87INamedTypeSymbol type = method.ContainingType;
Microsoft.NetCore.Analyzers\Security\DoNotUseInsecureDeserializerJavascriptSerializerWithSimpleTypeResolver.cs (3)
88if (!wellKnownTypeProvider.TryGetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemWebScriptSerializationJavaScriptSerializer, out INamedTypeSymbol? javaScriptSerializerSymbol) 89|| !wellKnownTypeProvider.TryGetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemWebScriptSerializationJavaScriptTypeResolver, out INamedTypeSymbol? javaScriptTypeResolverSymbol) 90|| !wellKnownTypeProvider.TryGetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemWebScriptSerializationSimpleTypeResolver, out INamedTypeSymbol? simpleTypeResolverSymbol))
Microsoft.NetCore.Analyzers\Security\DoNotUseInsecureDeserializerJsonNetWithoutBinder.cs (1)
127out INamedTypeSymbol? jsonSerializerSymbol))
Microsoft.NetCore.Analyzers\Security\DoNotUseInsecureDeserializerMethodsBase.cs (1)
77INamedTypeSymbol? deserializerTypeSymbol =
Microsoft.NetCore.Analyzers\Security\DoNotUseInsecureDeserializerWithoutBinderBase.cs (1)
101out INamedTypeSymbol? deserializerTypeSymbol))
Microsoft.NetCore.Analyzers\Security\DoNotUseInsecureRandomness.cs (2)
44if (!compilationStartAnalysisContext.Compilation.TryGetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemRandom, out var randomTypeSymbol)) 52var typeSymbol = invocationOperation.TargetMethod.ContainingType;
Microsoft.NetCore.Analyzers\Security\DoNotUseInsecureSettingsForJsonNet.cs (3)
138if (!wellKnownTypeProvider.TryGetOrCreateTypeByMetadataName(WellKnownTypeNames.NewtonsoftJsonJsonSerializerSettings, out INamedTypeSymbol? jsonSerializerSettingsSymbol) 139|| !wellKnownTypeProvider.TryGetOrCreateTypeByMetadataName(WellKnownTypeNames.NewtonsoftJsonJsonSerializer, out INamedTypeSymbol? jsonSerializerSymbol) 140|| !wellKnownTypeProvider.TryGetOrCreateTypeByMetadataName(WellKnownTypeNames.NewtonsoftJsonJsonConvert, out INamedTypeSymbol? jsonConvertSymbol))
Microsoft.NetCore.Analyzers\Security\DoNotUseObsoleteKDFAlgorithm.cs (3)
48out INamedTypeSymbol? passwordDeriveBytesTypeSymbol); 51out INamedTypeSymbol? rfc2898DeriveBytesTypeSymbol); 68var typeSymbol = methodSymbol.ContainingType;
Microsoft.NetCore.Analyzers\Security\DoNotUseWeakKDFAlgorithm.cs (4)
51out INamedTypeSymbol? rfc2898DeriveBytesTypeSymbol)) 58out INamedTypeSymbol? hashAlgorithmNameTypeSymbol); 63var typeSymbol = objectCreationOperation.Constructor?.ContainingType; 64var baseTypeSymbol = typeSymbol;
Microsoft.NetCore.Analyzers\Security\DoNotUseWeakKDFInsufficientIterationCount.cs (1)
85out var rfc2898DeriveBytesTypeSymbol) ||
Microsoft.NetCore.Analyzers\Security\DoNotUseXslTransform.cs (1)
44var xslTransformTypeSymbol = compilationStartAnalysisContext.Compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemXmlXslXslTransform);
Microsoft.NetCore.Analyzers\Security\Helpers\CompilationSecurityTypes.cs (11)
14public INamedTypeSymbol? MD5 { get; private set; } 15public INamedTypeSymbol? SHA1 { get; private set; } 16public INamedTypeSymbol? HMACSHA1 { get; private set; } 17public INamedTypeSymbol? DES { get; private set; } 18public INamedTypeSymbol? DSA { get; private set; } 19public INamedTypeSymbol? DSASignatureFormatter { get; private set; } 20public INamedTypeSymbol? HMACMD5 { get; private set; } 21public INamedTypeSymbol? RC2 { get; private set; } 22public INamedTypeSymbol? TripleDES { get; private set; } 23public INamedTypeSymbol? RIPEMD160 { get; private set; } 24public INamedTypeSymbol? HMACRIPEMD160 { get; private set; }
Microsoft.NetCore.Analyzers\Security\Helpers\InsecureDeserializationTypeDecider.cs (10)
52if (compilation.TryGetOrCreateTypeByMetadataName(typeName, out INamedTypeSymbol? namedTypeSymbol)) 106private INamedTypeSymbol? GeneratedCodeAttributeTypeSymbol { get; } 107private INamedTypeSymbol? SerializableAttributeTypeSymbol { get; } 108private INamedTypeSymbol? NonSerializedAttributeTypeSymbol { get; } 109private INamedTypeSymbol? DataContractAttributeTypeSymbol { get; } 110private INamedTypeSymbol? DataMemberAttributeTypeSymbol { get; } 111private INamedTypeSymbol? IgnoreDataMemberTypeSymbol { get; } 112private INamedTypeSymbol? KnownTypeAttributeTypeSymbol { get; } 114private INamedTypeSymbol? JsonIgnoreAttributeTypeSymbol { get; } 425if (type is INamedTypeSymbol namedTypeSymbol)
Microsoft.NetCore.Analyzers\Security\Helpers\SecurityHelpers.cs (3)
165INamedTypeSymbol? xmlReaderTypeSymbol = 168INamedTypeSymbol? designerCategoryAttributeTypeSymbol = 171INamedTypeSymbol? debuggerNonUserCodeAttributeTypeSymbol =
Microsoft.NetCore.Analyzers\Security\Helpers\XmlSerializationAttributeTypes.cs (14)
11/// Just a common way to get <see cref="INamedTypeSymbol"/>s for attributes that affect XML serialization. 23public INamedTypeSymbol? XmlAnyAttributeAttribute { get; private set; } 24public INamedTypeSymbol? XmlAnyElementAttribute { get; private set; } 25public INamedTypeSymbol? XmlArrayAttribute { get; private set; } 26public INamedTypeSymbol? XmlArrayItemAttribute { get; private set; } 27public INamedTypeSymbol? XmlAttributeAttribute { get; private set; } 28public INamedTypeSymbol? XmlChoiceIdentifierAttribute { get; private set; } 29public INamedTypeSymbol? XmlElementAttribute { get; private set; } 30public INamedTypeSymbol? XmlEnumAttribute { get; private set; } 31public INamedTypeSymbol? XmlIgnoreAttribute { get; private set; } 32public INamedTypeSymbol? XmlIncludeAttribute { get; private set; } 33public INamedTypeSymbol? XmlRootAttribute { get; private set; } 34public INamedTypeSymbol? XmlTextAttribute { get; private set; } 35public INamedTypeSymbol? XmlTypeAttribute { get; private set; }
Microsoft.NetCore.Analyzers\Security\JsonNetTypeNameHandling.cs (1)
49out INamedTypeSymbol? typeNameHandlingSymbol))
Microsoft.NetCore.Analyzers\Security\PotentialReferenceCycleInDeserializedObjectGraph.cs (5)
49var serializableAttributeTypeSymbol = compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemSerializableAttribute); 56var nonSerializedAttribute = compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemNonSerializedAttribute); 75DrawGraph((INamedTypeSymbol)symbolAnalysisContext.Symbol); 147if (type is INamedTypeSymbol namedTypeSymbol) 159var constructedFrom = namedTypeSymbol.ConstructedFrom;
Microsoft.NetCore.Analyzers\Security\SetHttpOnlyForHttpCookie.cs (1)
76out INamedTypeSymbol? httpCookieSymbol))
Microsoft.NetCore.Analyzers\Security\SetViewStateUserKey.cs (5)
48if (!wellKnownTypeProvider.TryGetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemWebUIPage, out var pageTypeSymbol) || 49!wellKnownTypeProvider.TryGetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemEventArgs, out var eventArgsTypeSymbol)) 56var classSymbol = (INamedTypeSymbol)symbolAnalysisContext.Symbol; 57var baseClassSymbol = classSymbol.BaseType;
Microsoft.NetCore.Analyzers\Security\SslProtocolsAnalyzer.cs (1)
68out INamedTypeSymbol? sslProtocolsSymbol))
Microsoft.NetCore.Analyzers\Security\UseAutoValidateAntiforgeryToken.cs (14)
78if (!wellKnownTypeProvider.TryGetOrCreateTypeByMetadataName(WellKnownTypeNames.MicrosoftAspNetCoreMvcFiltersFilterCollection, out var filterCollectionTypeSymbol) || 79!wellKnownTypeProvider.TryGetOrCreateTypeByMetadataName(WellKnownTypeNames.MicrosoftAspNetCoreMvcController, out var controllerTypeSymbol) || 80!wellKnownTypeProvider.TryGetOrCreateTypeByMetadataName(WellKnownTypeNames.MicrosoftAspNetCoreMvcControllerBase, out var controllerBaseTypeSymbol) || 81!wellKnownTypeProvider.TryGetOrCreateTypeByMetadataName(WellKnownTypeNames.MicrosoftAspNetCoreMvcNonActionAttribute, out var nonActionAttributeTypeSymbol) || 82!wellKnownTypeProvider.TryGetOrCreateTypeByMetadataName(WellKnownTypeNames.MicrosoftAspNetCoreMvcRoutingHttpMethodAttribute, out var httpMethodAttributeTypeSymbol) || 83!wellKnownTypeProvider.TryGetOrCreateTypeByMetadataName(WellKnownTypeNames.MicrosoftAspNetCoreMvcFiltersIFilterMetadata, out var iFilterMetadataTypeSymbol) || 84!wellKnownTypeProvider.TryGetOrCreateTypeByMetadataName(WellKnownTypeNames.MicrosoftAspNetCoreAntiforgeryIAntiforgery, out var iAntiforgeryTypeSymbol) || 85!wellKnownTypeProvider.TryGetOrCreateTypeByMetadataName(WellKnownTypeNames.MicrosoftAspNetCoreMvcFiltersIAsyncAuthorizationFilter, out var iAsyncAuthorizationFilterTypeSymbol) || 86!wellKnownTypeProvider.TryGetOrCreateTypeByMetadataName(WellKnownTypeNames.MicrosoftAspNetCoreMvcFiltersIAuthorizationFilter, out var iAuthorizationFilterTypeSymbol) || 87!wellKnownTypeProvider.TryGetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemThreadingTasksTask, out var taskTypeSymbol) || 88!wellKnownTypeProvider.TryGetOrCreateTypeByMetadataName(WellKnownTypeNames.MicrosoftAspNetCoreMvcFiltersAuthorizationFilterContext, out var authorizationFilterContextTypeSymbol)) 94s => wellKnownTypeProvider.TryGetOrCreateTypeByMetadataName(s, out var attributeTypeSymbol) ? attributeTypeSymbol : null) 264var derivedControllerTypeSymbol = (INamedTypeSymbol)symbolAnalysisContext.Symbol;
Microsoft.NetCore.Analyzers\Security\UseDefaultDllImportSearchPathsAttribute.cs (3)
68out INamedTypeSymbol? defaultDllImportSearchPathsAttributeTypeSymbol); 74out INamedTypeSymbol? dllImportAttributeTypeSymbol); 77out INamedTypeSymbol? libraryImportAttributeTypeSymbol);
Microsoft.NetCore.Analyzers\Security\UseRSAWithSufficientKeySize.cs (5)
58out var rsaTypeSymbol); 61out var asymmetricAlgorithmTypeSymbol); 64out var cryptoConfigTypeSymbol); 76var typeSymbol = objectCreationOperation.Constructor?.ContainingType; 106var typeSymbol = methodSymbol.ContainingType;
Microsoft.NetCore.Analyzers\Security\UseSecureCookiesASPNetCore.cs (3)
100out var iResponseCookiesTypeSymbol)) 107out var cookieOptionsTypeSymbol); 128if (methodSymbol.ContainingType is INamedTypeSymbol namedTypeSymbol &&
Microsoft.NetCore.Analyzers\Security\UseSharedAccessProtocolHttpsOnly.cs (5)
74out INamedTypeSymbol? cloudStorageAccountTypeSymbol); 76if (!wellKnownTypeProvider.TryGetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemNullable1, out INamedTypeSymbol? nullableTypeSymbol) || 77!wellKnownTypeProvider.TryGetOrCreateTypeByMetadataName(WellKnownTypeNames.MicrosoftWindowsAzureStorageSharedAccessProtocol, out INamedTypeSymbol? sharedAccessProtocolTypeSymbol)) 118var typeSymbol = methodSymbol.ContainingType; 123s.Parameter.Type is INamedTypeSymbol namedTypeSymbol &&
Microsoft.NetCore.Analyzers\Security\UseXmlReaderBase.cs (2)
49out INamedTypeSymbol? xmlSchemaTypeSymbol)) 54INamedTypeSymbol? xmlReaderTypeSymbol = wellKnownTypeProvider.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemXmlXmlReader);
Microsoft.NetCore.Analyzers\Tasks\DoNotConfigureAwaitWithSuppressThrowing.cs (2)
42if (!compilationContext.Compilation.TryGetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemThreadingTasksTask1, out var genericTask) || 43!compilationContext.Compilation.TryGetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemThreadingTasksConfigureAwaitOptions, out var configureAwaitOptionsType) ||
Microsoft.NetCore.Analyzers\Tasks\DoNotCreateTaskCompletionSourceWithWrongArguments.cs (3)
41if (compilationContext.Compilation.TryGetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemThreadingTasksTaskCompletionSource1, out var tcsGenericType) && 42compilationContext.Compilation.TryGetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemThreadingTasksTaskContinuationOptions, out var taskContinutationOptionsType)) 45var tcsType = compilationContext.Compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemThreadingTasksTaskCompletionSource);
Microsoft.NetCore.Analyzers\Tasks\DoNotCreateTaskCompletionSourceWithWrongArguments.Fixer.cs (2)
64model.Compilation.TryGetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemThreadingTasksTaskContinuationOptions, out var taskContinutationOptionsType) && 65model.Compilation.TryGetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemThreadingTasksTaskCreationOptions, out INamedTypeSymbol? taskCreationOptionsType) &&
Microsoft.NetCore.Analyzers\Tasks\DoNotCreateTasksWithoutPassingATaskScheduler.cs (5)
44var taskType = compilationContext.Compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemThreadingTasksTask); 45var taskFactoryType = compilationContext.Compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemThreadingTasksTaskFactory); 46var taskSchedulerType = compilationContext.Compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemThreadingTasksTaskScheduler); 76private static bool IsMethodOfInterest(IMethodSymbol methodSymbol, INamedTypeSymbol taskType, INamedTypeSymbol taskFactoryType)
Microsoft.NetCore.Analyzers\Tasks\DoNotUseNonCancelableTaskDelayWithWhenAny.cs (4)
43if (!compilation.TryGetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemThreadingTasksTask, out var taskType) || 44!compilation.TryGetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemThreadingCancellationToken, out var cancellationTokenType)) 121private static bool IsNonCancelableTaskDelay(IOperation operation, INamedTypeSymbol taskType, INamedTypeSymbol cancellationTokenType)
Microsoft.NetCore.Analyzers\Tasks\DoNotUseWhenAllOrWaitAllWithSingleArgument.cs (6)
54if (!context.Compilation.TryGetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemThreadingTasksTask, out var taskType) || 55!context.Compilation.TryGetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemThreadingTasksTask1, out var genericTaskType)) 84private static bool IsWhenOrWaitAllMethod(IMethodSymbol targetMethod, INamedTypeSymbol taskType) 96private static bool IsSingleTaskArgument(IInvocationOperation invocation, INamedTypeSymbol taskType, INamedTypeSymbol genericTaskType) 117if (initializerValues.Single().Type is not INamedTypeSymbol namedTypeSymbol)
Microsoft.NetCore.Analyzers\Tasks\UseValueTasksCorrectly.cs (5)
83if (!typeProvider.TryGetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemThreadingTasksValueTask, out var valueTaskType) || 84!typeProvider.TryGetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemThreadingTasksValueTask1, out var valueTaskOfTType)) 90var debugType = typeProvider.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemDiagnosticsDebug); 219private static void HandleAtypicalValueTaskUsage(OperationAnalysisContext operationContext, INamedTypeSymbol? debugType, IOperation operation, IInvocationOperation invocation) 466private static int FindFirstAssertsCompletion(BasicBlock block, ISymbol valueTaskSymbol, INamedTypeSymbol? debugType)
Microsoft.NetCore.Analyzers\Usage\DoNotCompareSpanToNull.cs (4)
47if (!typeProvider.TryGetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemSpan1, out var spanType) 48|| !typeProvider.TryGetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemReadOnlySpan1, out var readOnlySpanType)) 58private static void AnalyzeComparison(OperationAnalysisContext context, INamedTypeSymbol spanType, INamedTypeSymbol readOnlySpanType)
Microsoft.NetCore.Analyzers\Usage\ImplementGenericMathInterfacesCorrectly.cs (16)
47if (!context.Compilation.TryGetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemIParsable1, out var iParsableInterface) || 48!context.Compilation.TryGetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemNumericsINumber1, out var iNumberInterface)) 55var symbol = (INamedTypeSymbol)context.Symbol; 61private void AnalyzeSymbol(SymbolAnalysisContext context, INamedTypeSymbol symbol, INamespaceSymbol systemNS, INamespaceSymbol systemNumericsNS) 63foreach (INamedTypeSymbol anInterface in symbol.Interfaces) 75INamedTypeSymbol? baseType = symbol.BaseType; 78foreach (INamedTypeSymbol anInterface in baseType.Interfaces) 93bool IsKnownInterfaceInTheChain(INamedTypeSymbol anInterface) 103foreach (INamedTypeSymbol parentInterface in anInterface.Interfaces) 116static bool NotConstrainedToTheInterfaceOrSelf(INamedTypeSymbol anInterface, INamedTypeSymbol symbol) 135string genericDeclaration, string parameterName, INamedTypeSymbol symbol) => 141private static bool IsKnownInterface(INamedTypeSymbol anInterface, INamespaceSymbol systemNS, INamespaceSymbol systemNumericsNS) 150private static bool FirstTypeParameterNameIsNotTheSymbolName(INamedTypeSymbol symbol, INamedTypeSymbol anInterface) =>
Microsoft.NetCore.Analyzers\Usage\PreferGenericOverloads.cs (4)
44if (!typeProvider.TryGetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemType, out var systemType)) 53private void AnalyzeInvocation(OperationAnalysisContext context, INamedTypeSymbol systemType) 169public static bool TryGetContext(IInvocationOperation invocation, INamedTypeSymbol? systemType, [NotNullWhen(true)] out RuntimeTypeInvocationContext? invocationContext) 198.Where(t => t is not INamedTypeSymbol { IsUnboundGenericType: true })
Microsoft.NetCore.Analyzers\Usage\ProvideCorrectArgumentToEnumHasFlag.cs (1)
42var flagsAttributeType = context.Compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemFlagsAttribute);
Microsoft.NetCore.Analyzers\Usage\UseVolatileReadWrite.Fixer.cs (3)
99private static (IInvocationOperation? Invocation, INamedTypeSymbol? VolatileType) TryGetObsoleteCall( 104if (typeProvider.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemThreadingThread) is not INamedTypeSymbol threadType 105|| typeProvider.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemThreadingVolatile) is not INamedTypeSymbol volatileType
Microsoft.NetFramework.Analyzers\DoNotUseInsecureDtdProcessingInApiDesign.cs (6)
84private readonly ConcurrentDictionary<INamedTypeSymbol, bool> _xmlDocumentDerivedTypes = new(); 85private readonly ConcurrentDictionary<INamedTypeSymbol, bool> _xmlTextReaderDerivedTypes = new(); 403var typeSymbol = (INamedTypeSymbol)symbol; 443var typeSymbol = (INamedTypeSymbol)symbol;
Microsoft.NetFramework.Analyzers\Helpers\CompilationSecurityTypes.cs (20)
12public INamedTypeSymbol? HandleProcessCorruptedStateExceptionsAttribute { get; private set; } 13public INamedTypeSymbol? SystemObject { get; private set; } 14public INamedTypeSymbol? SystemException { get; private set; } 15public INamedTypeSymbol? SystemSystemException { get; private set; } 16public INamedTypeSymbol? XmlDocument { get; private set; } 17public INamedTypeSymbol? XPathDocument { get; private set; } 18public INamedTypeSymbol? XmlSchema { get; private set; } 19public INamedTypeSymbol? DataSet { get; private set; } 20public INamedTypeSymbol? XmlSerializer { get; private set; } 21public INamedTypeSymbol? DataTable { get; private set; } 22public INamedTypeSymbol? XmlNode { get; private set; } 23public INamedTypeSymbol? DataViewManager { get; private set; } 24public INamedTypeSymbol? XmlTextReader { get; private set; } 25public INamedTypeSymbol? XmlReader { get; private set; } 26public INamedTypeSymbol? DtdProcessing { get; private set; } 27public INamedTypeSymbol? XmlReaderSettings { get; private set; } 28public INamedTypeSymbol? XslCompiledTransform { get; private set; } 29public INamedTypeSymbol? XmlResolver { get; private set; } 30public INamedTypeSymbol? XmlSecureResolver { get; private set; } 31public INamedTypeSymbol? XsltSettings { get; private set; }
Microsoft.NetFramework.Analyzers\Helpers\SecurityDiagnosticHelpers.cs (6)
162private static bool IsSpecifiedProperty([NotNullWhen(returnValue: true)] IPropertySymbol? symbol, [NotNullWhen(returnValue: true)] INamedTypeSymbol? namedType, string propertyName) 172private static bool IsSpecifiedPropertyDerived([NotNullWhen(returnValue: true)] IPropertySymbol? symbol, [NotNullWhen(returnValue: true)] INamedTypeSymbol? namedType, string propertyName) 218INamedTypeSymbol? typeSymbol = compilation.GetOrCreateTypeByMetadataName(typeName); 240case INamedTypeSymbol namedType: 264case INamedTypeSymbol namedType: 305INamedTypeSymbol? typeSymbol = mscorlibAssembly.GetTypeByMetadataName(WellKnownTypeNames.SystemIOUnmanagedMemoryStream);
Microsoft.NetFramework.Analyzers\MarkVerbHandlersWithValidateAntiforgeryTokenAnalyzer.cs (3)
85INamedTypeSymbol? mvcControllerSymbol = wellKnownTypeProvider.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemWebMvcController); 86INamedTypeSymbol? mvcControllerBaseSymbol = wellKnownTypeProvider.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemWebMvcControllerBase); 87INamedTypeSymbol? actionResultSymbol = wellKnownTypeProvider.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemWebMvcActionResult);
Microsoft.NetFramework.Analyzers\MarkVerbHandlersWithValidateAntiforgeryTokenAnalyzer.MvcAttributeSymbols.cs (11)
20private INamedTypeSymbol? ValidateAntiforgeryTokenAttributeSymbol { get; set; } 21private INamedTypeSymbol? HttpGetAttributeSymbol { get; set; } 22private INamedTypeSymbol? HttpPostAttributeSymbol { get; set; } 23private INamedTypeSymbol? HttpPutAttributeSymbol { get; set; } 24private INamedTypeSymbol? HttpDeleteAttributeSymbol { get; set; } 25private INamedTypeSymbol? HttpPatchAttributeSymbol { get; set; } 26private INamedTypeSymbol? AcceptVerbsAttributeSymbol { get; set; } 27private INamedTypeSymbol? NonActionAttributeSymbol { get; set; } 28private INamedTypeSymbol? ChildActionOnlyAttributeSymbol { get; set; } 29private INamedTypeSymbol? HttpVerbsSymbol { get; set; } 141private static bool IsAttributeClass(AttributeData attributeData, [NotNullWhen(returnValue: true)] INamedTypeSymbol? symbol)
Microsoft.NetFramework.Analyzers\TypesShouldNotExtendCertainBaseTypes.cs (3)
60ImmutableHashSet<INamedTypeSymbol> badBaseTypes = s_badBaseTypesToMessage.Keys 69var namedTypeSymbol = (INamedTypeSymbol)saContext.Symbol;
src\11b41c7305441175\HazardousUsageEvaluatorCollection.cs (4)
103internal ImmutableDictionary<(INamedTypeSymbol, bool), string> GetTypeToNameMapping(WellKnownTypeProvider wellKnownTypeProvider) 105using PooledDictionary<(INamedTypeSymbol, bool), string> pooledDictionary = PooledDictionary<(INamedTypeSymbol, bool), string>.GetInstance(); 114if (wellKnownTypeProvider.TryGetOrCreateTypeByMetadataName(kvp.Key.InstanceTypeName, out INamedTypeSymbol? namedTypeSymbol))
src\11b41c7305441175\PropertySetAnalysis.PropertySetDataFlowOperationVisitor.cs (6)
52private readonly ImmutableHashSet<INamedTypeSymbol> TrackedTypeSymbols; 65ImmutableHashSet<INamedTypeSymbol>.Builder builder = ImmutableHashSet.CreateBuilder<INamedTypeSymbol>(); 68if (this.WellKnownTypeProvider.TryGetOrCreateTypeByMetadataName(typeToTrackMetadataName, out INamedTypeSymbol? trackedTypeSymbol)) 557private bool GetNamesOfHazardousUsageTypes(INamedTypeSymbol containingType, [NotNullWhen(returnValue: true)] out PooledHashSet<string>? hazardousUsageTypeNames) 568foreach (INamedTypeSymbol type in containingType.GetBaseTypesAndThis())
src\11b41c7305441175\PropertySetAnalysisContext.cs (2)
44ImmutableDictionary<(INamedTypeSymbol, bool), string> hazardousUsageTypesToNames) 157public ImmutableDictionary<(INamedTypeSymbol, bool), string> HazardousUsageTypesToNames { get; }
src\40daf5e1cab76dff\TaintedDataSymbolMapExtensions.cs (2)
157if (arrayTypeSymbol.ElementType is INamedTypeSymbol elementType) 212if (propertyReferenceOperation.Instance?.Type is not INamedTypeSymbol namedType)
src\440320f3f10733a8\ValueContentAbstractValue.cs (1)
126else if (type is INamedTypeSymbol namedTypeSymbol
src\440320f3f10733a8\ValueContentAnalysis.cs (2)
55ImmutableArray<INamedTypeSymbol> additionalSupportedValueTypes = default, 89ImmutableArray<INamedTypeSymbol> additionalSupportedValueTypes = default,
src\440320f3f10733a8\ValueContentAnalysis.ValueContentDataFlowOperationVisitor.cs (2)
214operation.Type is INamedTypeSymbol namedType && 243var incrementValueType = WellKnownTypeProvider.Compilation.GetSpecialType(SpecialType.System_Int32);
src\440320f3f10733a8\ValueContentAnalysisContext.cs (4)
34ImmutableArray<INamedTypeSymbol> additionalSupportedValueTypes, 44AdditionalSupportedValueTypes = additionalSupportedValueTypes.IsDefault ? ImmutableArray<INamedTypeSymbol>.Empty : additionalSupportedValueTypes; 48public ImmutableArray<INamedTypeSymbol> AdditionalSupportedValueTypes { get; } 62ImmutableArray<INamedTypeSymbol> additionalSupportedValueTypes,
src\47c588c5b8785708\ParameterValidationAnalysis.ParameterValidationDataFlowOperationVisitor.cs (1)
27private readonly INamedTypeSymbol? _notNullAttributeType;
src\8ce1f4f68b646e6d\GlobalFlowStateAnalysis.cs (2)
68ImmutableArray<INamedTypeSymbol> additionalSupportedValueTypes = default, 98ImmutableArray<INamedTypeSymbol> additionalSupportedValueTypes = default,
src\afc74d572e54ec72\DisposeAnalysis.DisposeDataFlowOperationVisitor.cs (1)
26private ImmutableHashSet<INamedTypeSymbol> DisposeOwnershipTransferLikelyTypes => DataFlowAnalysisContext.DisposeOwnershipTransferLikelyTypes;
src\ffd9070534249528\PointsToAnalysis.PointsToDataFlowOperationVisitor.cs (2)
998method.ReturnType is INamedTypeSymbol namedType && 1019symbol.GetMemberType() is INamedTypeSymbol namedType &&
src\sdk\src\Microsoft.CodeAnalysis.NetAnalyzers\src\Utilities\Compiler\CodeMetrics\CodeAnalysisMetricData.AssemblyMetricData.cs (2)
20ImmutableHashSet<INamedTypeSymbol> coupledNamedTypes, 44var coupledTypesBuilder = ImmutableHashSet.CreateBuilder<INamedTypeSymbol>();
src\sdk\src\Microsoft.CodeAnalysis.NetAnalyzers\src\Utilities\Compiler\CodeMetrics\CodeAnalysisMetricData.cs (4)
28ImmutableHashSet<INamedTypeSymbol> coupledNamedTypes, 78public ImmutableHashSet<INamedTypeSymbol> CoupledNamedTypes { get; } 270SymbolKind.NamedType => await NamedTypeMetricData.ComputeAsync((INamedTypeSymbol)symbol, context).ConfigureAwait(false), 308SymbolKind.NamedType => NamedTypeMetricData.ComputeSynchronously((INamedTypeSymbol)symbol, context),
src\sdk\src\Microsoft.CodeAnalysis.NetAnalyzers\src\Utilities\Compiler\CodeMetrics\CodeAnalysisMetricData.EventMetricData.cs (2)
17ImmutableHashSet<INamedTypeSymbol> coupledNamedTypes, 29var coupledTypesBuilder = ImmutableHashSet.CreateBuilder<INamedTypeSymbol>();
src\sdk\src\Microsoft.CodeAnalysis.NetAnalyzers\src\Utilities\Compiler\CodeMetrics\CodeAnalysisMetricData.FieldMetricData.cs (2)
17ImmutableHashSet<INamedTypeSymbol> coupledNamedTypes, 28var coupledTypesBuilder = ImmutableHashSet.CreateBuilder<INamedTypeSymbol>();
src\sdk\src\Microsoft.CodeAnalysis.NetAnalyzers\src\Utilities\Compiler\CodeMetrics\CodeAnalysisMetricData.MethodMetricData.cs (2)
17ImmutableHashSet<INamedTypeSymbol> coupledNamedTypes, 28var coupledTypesBuilder = ImmutableHashSet.CreateBuilder<INamedTypeSymbol>();
src\sdk\src\Microsoft.CodeAnalysis.NetAnalyzers\src\Utilities\Compiler\CodeMetrics\CodeAnalysisMetricData.NamedTypeMetricData.cs (10)
17INamedTypeSymbol symbol, 20ImmutableHashSet<INamedTypeSymbol> coupledNamedTypes, 30internal static async Task<NamedTypeMetricData> ComputeAsync(INamedTypeSymbol namedType, CodeMetricsAnalysisContext context) 39internal static NamedTypeMetricData ComputeSynchronously(INamedTypeSymbol namedType, CodeMetricsAnalysisContext context) 48private static IEnumerable<ISymbol> GetMembers(INamedTypeSymbol namedType, CodeMetricsAnalysisContext context) 64private static NamedTypeMetricData ComputeFromChildren(INamedTypeSymbol namedType, ImmutableArray<CodeAnalysisMetricData> children, CodeMetricsAnalysisContext context) 66var coupledTypesBuilder = ImmutableHashSet.CreateBuilder<INamedTypeSymbol>(); 129private static int CalculateDepthOfInheritance(INamedTypeSymbol namedType, Func<INamedTypeSymbol, bool> isExcludedFromInheritanceCount) 136var parent = namedType.BaseType;
src\sdk\src\Microsoft.CodeAnalysis.NetAnalyzers\src\Utilities\Compiler\CodeMetrics\CodeAnalysisMetricData.NamespaceMetricData.cs (7)
19ImmutableHashSet<INamedTypeSymbol> coupledNamedTypes, 43var coupledTypesBuilder = ImmutableHashSet.CreateBuilder<INamedTypeSymbol>(); 75var typesInNamespace = new HashSet<INamedTypeSymbol>(); 76foreach (INamedTypeSymbol typeMember in @namespace.GetTypeMembers()) 82foreach (INamedTypeSymbol namedType in typesInNamespace.OrderBy(t => t.ToDisplayString())) 89void processType(INamedTypeSymbol namedType) 92foreach (INamedTypeSymbol nestedType in namedType.GetTypeMembers())
src\sdk\src\Microsoft.CodeAnalysis.NetAnalyzers\src\Utilities\Compiler\CodeMetrics\CodeAnalysisMetricData.PropertyMetricData.cs (2)
17ImmutableHashSet<INamedTypeSymbol> coupledNamedTypes, 29var coupledTypesBuilder = ImmutableHashSet.CreateBuilder<INamedTypeSymbol>();
src\sdk\src\Microsoft.CodeAnalysis.NetAnalyzers\src\Utilities\Compiler\CodeMetrics\CodeMetricsAnalysisContext.cs (2)
17Func<INamedTypeSymbol, bool>? isExcludedFromInheritanceCountFunc = null) 31public Func<INamedTypeSymbol, bool> IsExcludedFromInheritanceCountFunc { get; }
src\sdk\src\Microsoft.CodeAnalysis.NetAnalyzers\src\Utilities\Compiler\CodeMetrics\MetricsHelper.cs (12)
37internal static void AddCoupledNamedTypes(ImmutableHashSet<INamedTypeSymbol>.Builder builder, WellKnownTypeProvider wellKnownTypeProvider, 38ImmutableHashSet<INamedTypeSymbol> coupledTypes) 40foreach (var coupledType in coupledTypes) 46internal static void AddCoupledNamedTypes(ImmutableHashSet<INamedTypeSymbol>.Builder builder, WellKnownTypeProvider wellKnownTypeProvider, 52internal static void AddCoupledNamedTypes(ImmutableHashSet<INamedTypeSymbol>.Builder builder, WellKnownTypeProvider wellKnownTypeProvider, 193ImmutableHashSet<INamedTypeSymbol>.Builder builder, 347private static void AddCoupledNamedTypesCore(ImmutableHashSet<INamedTypeSymbol>.Builder builder, ITypeSymbol typeOpt, 350if (typeOpt is INamedTypeSymbol usedType && 368static bool isIgnoreableType(INamedTypeSymbol namedType, WellKnownTypeProvider wellKnownTypeProvider) 398internal static void RemoveContainingTypes(ISymbol symbol, ImmutableHashSet<INamedTypeSymbol>.Builder coupledTypesBuilder) 400var namedType = symbol as INamedTypeSymbol ?? symbol.ContainingType;
src\sdk\src\Microsoft.CodeAnalysis.NetAnalyzers\src\Utilities\Compiler\DiagnosticHelpers.cs (1)
67if (symbol is INamedTypeSymbol namedType &&
src\sdk\src\Microsoft.CodeAnalysis.NetAnalyzers\src\Utilities\Compiler\DoNotCatchGeneralUnlessRethrown.cs (8)
33protected virtual bool IsConfiguredDisallowedExceptionType(INamedTypeSymbol namedTypeSymbol, IMethodSymbol containingMethod, Compilation compilation, AnalyzerOptions analyzerOptions, CancellationToken cancellationToken) 45INamedTypeSymbol? requiredAttributeType = null; 84bool IsDisallowedCatchType(INamedTypeSymbol type) => 92private INamedTypeSymbol? GetRequiredAttributeType(Compilation compilation) 98private static IReadOnlyCollection<INamedTypeSymbol> GetDisallowedCatchTypes(Compilation compilation) 113private readonly Func<INamedTypeSymbol, bool> _isDisallowedCatchType; 119public DisallowGeneralCatchUnlessRethrowWalker(Func<INamedTypeSymbol, bool> isDisallowedCatchType, bool checkAnonymousFunctions) 161return operation.ExceptionType is INamedTypeSymbol exceptionType &&
src\sdk\src\Microsoft.CodeAnalysis.NetAnalyzers\src\Utilities\Compiler\Extensions\CompilationExtensions.cs (6)
46public static ImmutableArray<INamedTypeSymbol> GetTypesByMetadataName(this Compilation compilation, string fullyQualifiedMetadataName) 54/// <returns>The <see cref="INamedTypeSymbol"/> if found, null otherwise.</returns> 55internal static INamedTypeSymbol? GetOrCreateTypeByMetadataName(this Compilation compilation, string fullTypeName) => 63/// <returns>The <see cref="INamedTypeSymbol"/> if found, null otherwise.</returns> 64internal static bool TryGetOrCreateTypeByMetadataName(this Compilation compilation, string fullTypeName, [NotNullWhen(returnValue: true)] out INamedTypeSymbol? namedTypeSymbol) => 75var objectType = compilation.GetSpecialType(SpecialType.System_Object);
src\sdk\src\Microsoft.CodeAnalysis.NetAnalyzers\src\Utilities\Compiler\Extensions\IEnumerableOfIMethodSymbolExtensions.cs (10)
16/// <param name="attributeType">The <see cref="INamedTypeSymbol"/> of the attribute class to search.</param> 20INamedTypeSymbol? attributeType) 37/// <param name="expectedParameterType"><see cref="INamedTypeSymbol"/> type of the leading parameter or the trailing parameter</param> 38/// <param name="trailingOnly"><see cref="INamedTypeSymbol"/> If the expected parameter should appear at the trailing position of the parameter list of the method overload</param> 42INamedTypeSymbol expectedParameterType, 94/// <param name="expectedTrailingParameterType"><see cref="INamedTypeSymbol"/> type of the leading parameter or the trailing parameter</param> 98INamedTypeSymbol expectedTrailingParameterType) 224public INamedTypeSymbol ParameterType { get; private set; } 226private ParameterInfo(INamedTypeSymbol type, bool isArray, int arrayRank, bool isParams) 234public static ParameterInfo GetParameterInfo(INamedTypeSymbol type, bool isArray = false, int arrayRank = 0, bool isParams = false)
src\sdk\src\Microsoft.CodeAnalysis.NetAnalyzers\src\Utilities\Compiler\Extensions\IMethodSymbolExtensions.cs (50)
145public static bool IsImplementationOfInterfaceMethod(this IMethodSymbol method, ITypeSymbol? typeArgument, [NotNullWhen(returnValue: true)] INamedTypeSymbol? interfaceType, string interfaceMethodName) 147INamedTypeSymbol? constructedInterface = typeArgument != null ? interfaceType?.Construct(typeArgument) : interfaceType; 158INamedTypeSymbol? iDisposable = compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemIDisposable); 167INamedTypeSymbol? iAsyncDisposable = compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemIAsyncDisposable); 168INamedTypeSymbol? valueTaskType = compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemThreadingTasksValueTask); 175public static bool IsDisposeImplementation([NotNullWhen(returnValue: true)] this IMethodSymbol? method, [NotNullWhen(returnValue: true)] INamedTypeSymbol? iDisposable) 197public static bool IsAsyncDisposeImplementation([NotNullWhen(returnValue: true)] this IMethodSymbol? method, [NotNullWhen(returnValue: true)] INamedTypeSymbol? iAsyncDisposable, [NotNullWhen(returnValue: true)] INamedTypeSymbol? valueTaskType) 264private static bool HasDisposeCloseAsyncMethodSignature(this IMethodSymbol method, INamedTypeSymbol? taskType) 272INamedTypeSymbol? task, 273INamedTypeSymbol? valueTask, 274INamedTypeSymbol? configuredValueTaskAwaitable) 287private static bool HasOverriddenDisposeCoreAsyncMethodSignature(this IMethodSymbol method, [NotNullWhen(returnValue: true)] INamedTypeSymbol? task) 300private static bool HasVirtualOrOverrideDisposeCoreAsyncMethodSignature(this IMethodSymbol method, [NotNullWhen(returnValue: true)] INamedTypeSymbol? valueTask) 314INamedTypeSymbol? iDisposable = compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemIDisposable); 315INamedTypeSymbol? iAsyncDisposable = compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemIAsyncDisposable); 316INamedTypeSymbol? configuredAsyncDisposable = compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemRuntimeCompilerServicesConfiguredAsyncDisposable); 317INamedTypeSymbol? task = compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemThreadingTasksTask); 318INamedTypeSymbol? valueTask = compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemThreadingTasksValueTask); 319INamedTypeSymbol? configuredValueTaskAwaitable = compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemRuntimeCompilerServicesConfiguredValueTaskAwaitable); 328INamedTypeSymbol? iDisposable, 329INamedTypeSymbol? iAsyncDisposable, 330INamedTypeSymbol? configuredAsyncDisposable, 331INamedTypeSymbol? task, 332INamedTypeSymbol? valueTask, 333INamedTypeSymbol? configuredValueTaskAwaitable) 376public static bool IsOnDeserializationImplementation([NotNullWhen(returnValue: true)] this IMethodSymbol? method, [NotNullWhen(returnValue: true)] INamedTypeSymbol? iDeserializationCallback) 396public static bool IsSerializationConstructor([NotNullWhen(returnValue: true)] this IMethodSymbol? method, INamedTypeSymbol? serializationInfoType, INamedTypeSymbol? streamingContextType) 402public static bool IsGetObjectData([NotNullWhen(returnValue: true)] this IMethodSymbol? method, INamedTypeSymbol? serializationInfoType, INamedTypeSymbol? streamingContextType) 491public static bool IsCollectionAddMethod(this IMethodSymbol method, ImmutableHashSet<INamedTypeSymbol> iCollectionTypes) 512public static bool IsTaskFromResultMethod(this IMethodSymbol method, [NotNullWhen(returnValue: true)] INamedTypeSymbol? taskType) 521public static bool IsTaskConfigureAwaitMethod(this IMethodSymbol method, [NotNullWhen(returnValue: true)] INamedTypeSymbol? genericTaskType) 533public static bool IsAsyncDisposableConfigureAwaitMethod(this IMethodSymbol method, [NotNullWhen(returnValue: true)] INamedTypeSymbol? asyncDisposableType, [NotNullWhen(returnValue: true)] INamedTypeSymbol? taskAsyncEnumerableExtensions) 629public static bool HasEventHandlerSignature(this IMethodSymbol method, [NotNullWhen(returnValue: true)] INamedTypeSymbol? eventArgsType) 639public static bool IsLockMethod(this IMethodSymbol method, [NotNullWhen(returnValue: true)] INamedTypeSymbol? systemThreadingMonitor) 649public static bool IsInterlockedExchangeMethod(this IMethodSymbol method, INamedTypeSymbol? systemThreadingInterlocked) 661public static bool IsInterlockedCompareExchangeMethod(this IMethodSymbol method, INamedTypeSymbol? systemThreadingInterlocked) 684public static bool IsOverrideOrVirtualMethodOf([NotNullWhen(returnValue: true)] this IMethodSymbol? methodSymbol, [NotNullWhen(returnValue: true)] INamedTypeSymbol? typeSymbol) 717public static bool IsBenchmarkOrXUnitTestMethod(this IMethodSymbol method, ConcurrentDictionary<INamedTypeSymbol, bool> knownTestAttributes, INamedTypeSymbol? benchmarkAttribute, INamedTypeSymbol? xunitFactAttribute) 748[NotNullWhen(true)] INamedTypeSymbol? inotifyCompletionType, 749[NotNullWhen(true)] INamedTypeSymbol? icriticalNotifyCompletionType) 770[NotNullWhen(true)] INamedTypeSymbol? inotifyCompletionType, 771[NotNullWhen(true)] INamedTypeSymbol? icriticalNotifyCompletionType) 780var containingType = method.ContainingType?.OriginalDefinition; 804var typeSymbol = methodSymbol.ContainingType;
src\sdk\src\Microsoft.CodeAnalysis.NetAnalyzers\src\Utilities\Compiler\Extensions\INamedTypeSymbolExtensions.cs (21)
19private static readonly Func<INamedTypeSymbol, bool> s_isExtension = LightupHelpers.CreateSymbolPropertyAccessor<INamedTypeSymbol, bool>(typeof(INamedTypeSymbol), nameof(IsExtension), fallbackResult: false); 21public static bool IsExtension(this INamedTypeSymbol symbol) => s_isExtension(symbol); 23public static IEnumerable<INamedTypeSymbol> GetBaseTypesAndThis(this INamedTypeSymbol type) 25INamedTypeSymbol current = type; 55public static bool DerivesFromOrImplementsAnyConstructionOf(this INamedTypeSymbol type, INamedTypeSymbol parentType) 62for (INamedTypeSymbol? baseType = type.OriginalDefinition; 80public static bool ImplementsOperator(this INamedTypeSymbol symbol, string op) 97public static bool ImplementsEqualityOperators(this INamedTypeSymbol symbol) 103public static bool OverridesEquals(this INamedTypeSymbol symbol) 109public static bool OverridesGetHashCode(this INamedTypeSymbol symbol) 115public static bool HasFinalizer(this INamedTypeSymbol symbol) 137public static bool IsStaticHolderType(this INamedTypeSymbol symbol) 275public static bool IsBenchmarkOrXUnitTestAttribute(this INamedTypeSymbol attributeClass, ConcurrentDictionary<INamedTypeSymbol, bool> knownTestAttributes, INamedTypeSymbol? benchmarkAttribute, INamedTypeSymbol? xunitFactAttribute) 289public static bool IsTopLevelStatementsEntryPointType([NotNullWhen(true)] this INamedTypeSymbol? typeSymbol)
src\sdk\src\Microsoft.CodeAnalysis.NetAnalyzers\src\Utilities\Compiler\Extensions\IOperationExtensions.cs (3)
101var enumUnderlyingType = ((INamedTypeSymbol)operation.Type).EnumUnderlyingType; 558public static bool IsWithinExpressionTree(this IOperation operation, [NotNullWhen(true)] INamedTypeSymbol? linqExpressionTreeType)
src\sdk\src\Microsoft.CodeAnalysis.NetAnalyzers\src\Utilities\Compiler\Extensions\IPropertySymbolExtensions.cs (4)
23[NotNullWhen(true)] INamedTypeSymbol? inotifyCompletionType, 24[NotNullWhen(true)] INamedTypeSymbol? icriticalNotifyCompletionType) 33var containingType = property.ContainingType?.OriginalDefinition; 52var typeSymbol = propertySymbol.ContainingType;
src\sdk\src\Microsoft.CodeAnalysis.NetAnalyzers\src\Utilities\Compiler\Extensions\ISymbolExtensions.cs (28)
167return symbol is INamedTypeSymbol namedTypeSymbol && namedTypeSymbol.IsExtension(); 233public static bool MatchMemberDerivedByName([NotNullWhen(returnValue: true)] this ISymbol? member, INamedTypeSymbol type, string name) 238public static bool MatchMethodDerivedByName([NotNullWhen(returnValue: true)] this IMethodSymbol? method, INamedTypeSymbol type, string name) 243public static bool MatchMethodByName([NotNullWhen(returnValue: true)] this ISymbol? member, INamedTypeSymbol type, string name) 248public static bool MatchPropertyDerivedByName([NotNullWhen(returnValue: true)] this ISymbol? member, INamedTypeSymbol type, string name) 253public static bool MatchMemberByName([NotNullWhen(returnValue: true)] this ISymbol? member, INamedTypeSymbol type, string name) 258public static bool MatchPropertyByName([NotNullWhen(returnValue: true)] this ISymbol? member, INamedTypeSymbol type, string name) 263public static bool MatchFieldByName([NotNullWhen(returnValue: true)] this ISymbol? member, INamedTypeSymbol type, string name) 295public static bool ContainsParameterOfType(this IEnumerable<IParameterSymbol> parameters, INamedTypeSymbol type) 304public static IEnumerable<IParameterSymbol> GetParametersOfType(this IEnumerable<IParameterSymbol> parameters, INamedTypeSymbol type) 320public static bool HasOverloadWithParameterOfType(this IEnumerable<IMethodSymbol> overloads, IMethodSymbol self, INamedTypeSymbol type, CancellationToken cancellationToken) 425var @object = compilation.GetSpecialType(SpecialType.System_Object); 432public static IMethodSymbol? GetMatchingOverload(this IMethodSymbol method, IEnumerable<IMethodSymbol> overloads, int parameterIndex, INamedTypeSymbol type, CancellationToken cancellationToken) 482foreach (INamedTypeSymbol interfaceSymbol in symbol.ContainingType.AllInterfaces) 505foreach (INamedTypeSymbol interfaceSymbol in symbol.ContainingType.AllInterfaces) 630public static AttributeData? GetAttribute(this ISymbol symbol, [NotNullWhen(true)] INamedTypeSymbol? attributeType) 635public static IEnumerable<AttributeData> GetAttributes(this ISymbol symbol, IEnumerable<INamedTypeSymbol?> attributesToMatch) 642foreach (var attributeToMatch in attributesToMatch) 653public static IEnumerable<AttributeData> GetAttributes(this ISymbol symbol, params INamedTypeSymbol?[] attributeTypesToMatch) 659public static IEnumerable<AttributeData> GetAttributes(this ISymbol symbol, INamedTypeSymbol? attributeTypeToMatch1) 670public static IEnumerable<AttributeData> GetAttributes(this ISymbol symbol, INamedTypeSymbol? attributeTypeToMatch1, INamedTypeSymbol? attributeTypeToMatch2) 683public static bool HasAnyAttribute(this ISymbol symbol, IEnumerable<INamedTypeSymbol> attributesToMatch) 688public static bool HasAnyAttribute(this ISymbol symbol, params INamedTypeSymbol?[] attributeTypesToMatch) 711public static bool HasAnyAttribute(this ISymbol symbol, [NotNullWhen(returnValue: true)] INamedTypeSymbol? attribute) 739public static bool HasDerivedTypeAttribute(this ITypeSymbol symbol, [NotNullWhen(returnValue: true)] INamedTypeSymbol? attribute) 778public static bool HasDerivedMethodAttribute(this IMethodSymbol symbol, [NotNullWhen(returnValue: true)] INamedTypeSymbol? attribute) 810public static bool[] HasAttributes(this ISymbol symbol, params INamedTypeSymbol?[] attributes)
src\sdk\src\Microsoft.CodeAnalysis.NetAnalyzers\src\Utilities\Compiler\Extensions\ITypeSymbolExtensions.cs (25)
70public static IEnumerable<INamedTypeSymbol> GetBaseTypes(this ITypeSymbol type, Func<INamedTypeSymbol, bool>? takeWhilePredicate = null) 72INamedTypeSymbol current = type.BaseType; 143INamedTypeSymbol? iDisposable, 144INamedTypeSymbol? iAsyncDisposable, 145INamedTypeSymbol? configuredAsyncDisposable) 165static bool IsInterfaceOrImplementsInterface(ITypeSymbol type, INamedTypeSymbol? interfaceType) 175public static IEnumerable<AttributeData> GetApplicableAttributes(this INamedTypeSymbol type, INamedTypeSymbol? attributeUsageAttribute) 207static bool IsInheritedAttribute(AttributeData attributeData, INamedTypeSymbol attributeUsageAttribute) 209for (var currentAttributeClass = attributeData.AttributeClass; 242public static IEnumerable<AttributeData> GetApplicableExportAttributes(this INamedTypeSymbol? type, INamedTypeSymbol? exportAttributeV1, INamedTypeSymbol? exportAttributeV2, INamedTypeSymbol? inheritedExportAttribute) 277for (INamedTypeSymbol b = symbol.BaseType; b != null; b = b.BaseType) 313=> typeSymbol.IsNullableValueType() && ((INamedTypeSymbol)typeSymbol).TypeArguments[0].SpecialType == SpecialType.System_Boolean; 316=> typeSymbol.IsNullableValueType() ? ((INamedTypeSymbol)typeSymbol).TypeArguments[0] : null; 319=> (typeSymbol as INamedTypeSymbol)?.TupleUnderlyingType ?? typeSymbol; 335|| !wellKnownTypeProvider.TryGetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemCollectionsICollection, out var iCollection) 336|| !wellKnownTypeProvider.TryGetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemCollectionsGenericICollection1, out var iCollectionOfT) 337|| !wellKnownTypeProvider.TryGetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemCollectionsGenericIReadOnlyCollection1, out var iReadOnlyCollectionOfT)) 354foreach (var @interface in invocationTarget.AllInterfaces) 364foreach (var @interface in invocationTarget.AllInterfaces) 383return type.OriginalDefinition is INamedTypeSymbol originalDefinition &&
src\sdk\src\Microsoft.CodeAnalysis.NetAnalyzers\src\Utilities\Compiler\Options\AnalyzerOptionsExtensions.cs (9)
276if (symbol is INamedTypeSymbol namedType && !excludedTypeNamesWithDerivedTypes.IsEmpty) 278foreach (var type in namedType.GetBaseTypesAndThis()) 374public static SymbolNamesWithValueOption<INamedTypeSymbol?> GetAdditionalRequiredGenericInterfaces( 381private static SymbolNamesWithValueOption<INamedTypeSymbol?> GetAdditionalRequiredGenericInterfaces( 389static SymbolNamesWithValueOption<INamedTypeSymbol?>.NameParts GetParts(string name, Compilation compilation) 396return new SymbolNamesWithValueOption<INamedTypeSymbol?>.NameParts(name, null); 408matchingSymbols[0] is not INamedTypeSymbol namedType || 413return new SymbolNamesWithValueOption<INamedTypeSymbol?>.NameParts(split[0], null); 416return new SymbolNamesWithValueOption<INamedTypeSymbol?>.NameParts(split[0], namedType);
src\sdk\src\Microsoft.CodeAnalysis.NetAnalyzers\src\Utilities\Compiler\WellKnownTypeProvider.cs (20)
30_fullNameToTypeMap = new ConcurrentDictionary<string, INamedTypeSymbol?>(StringComparer.Ordinal); 63/// Mapping of full name to <see cref="INamedTypeSymbol"/>. 65private readonly ConcurrentDictionary<string, INamedTypeSymbol?> _fullNameToTypeMap; 67private ConcurrentCache<string, ImmutableArray<INamedTypeSymbol>>? _getTypesCache; 85internal ImmutableArray<INamedTypeSymbol> GetTypesByMetadataName(string fullyQualifiedMetadataName) 88ref _getTypesCache, static () => new ConcurrentCache<string, ImmutableArray<INamedTypeSymbol>>(50, ReferenceEqualityComparer.Instance))!; 90if (!getTypesCache.TryGetValue(fullyQualifiedMetadataName, out ImmutableArray<INamedTypeSymbol> val)) 101ImmutableArray<INamedTypeSymbol> getTypesByMetadataNameImpl() 103ArrayBuilder<INamedTypeSymbol>? typesByMetadataName = null; 126return typesByMetadataName?.ToImmutableAndFree() ?? ImmutableArray<INamedTypeSymbol>.Empty; 128void addIfNotNull(INamedTypeSymbol? toAdd) 132typesByMetadataName ??= ArrayBuilder<INamedTypeSymbol>.GetInstance(); 148[NotNullWhen(returnValue: true)] out INamedTypeSymbol? namedTypeSymbol) 160[NotNullWhen(returnValue: true)] out INamedTypeSymbol? namedTypeSymbol) 172INamedTypeSymbol? type = null; 206var currentType = referencedAssembly.GetTypeByMetadataName(fullyQualifiedMetadataName); 242/// <returns>The <see cref="INamedTypeSymbol"/> if found, null otherwise.</returns> 243public INamedTypeSymbol? GetOrCreateTypeByMetadataName(string fullTypeName) 245TryGetOrCreateTypeByMetadataName(fullTypeName, out INamedTypeSymbol? namedTypeSymbol); 263&& typeSymbol is INamedTypeSymbol namedTypeSymbol
src\sdk\src\Microsoft.CodeAnalysis.NetAnalyzers\src\Utilities\FlowAnalysis\FlowAnalysis\Analysis\DisposeAnalysis\DisposeAnalysis.cs (2)
41ImmutableHashSet<INamedTypeSymbol> disposeOwnershipTransferLikelyTypes, 88ImmutableHashSet<INamedTypeSymbol> disposeOwnershipTransferLikelyTypes,
src\sdk\src\Microsoft.CodeAnalysis.NetAnalyzers\src\Utilities\FlowAnalysis\FlowAnalysis\Analysis\DisposeAnalysis\DisposeAnalysisContext.cs (3)
36ImmutableHashSet<INamedTypeSymbol> disposeOwnershipTransferLikelyTypes, 75ImmutableHashSet<INamedTypeSymbol> disposeOwnershipTransferLikelyTypes, 107internal ImmutableHashSet<INamedTypeSymbol> DisposeOwnershipTransferLikelyTypes { get; }
src\sdk\src\Microsoft.CodeAnalysis.NetAnalyzers\src\Utilities\FlowAnalysis\FlowAnalysis\Analysis\DisposeAnalysis\DisposeAnalysisHelper.cs (16)
43private readonly ImmutableHashSet<INamedTypeSymbol> _disposeOwnershipTransferLikelyTypes; 44private ConcurrentDictionary<INamedTypeSymbol, ImmutableHashSet<IFieldSymbol>>? _lazyDisposableFieldsMap; 45public INamedTypeSymbol? IDisposable { get; } 46public INamedTypeSymbol? IAsyncDisposable { get; } 47public INamedTypeSymbol? ConfiguredAsyncDisposable { get; } 48public INamedTypeSymbol? Task { get; } 49public INamedTypeSymbol? ValueTask { get; } 50public INamedTypeSymbol? ConfiguredValueTaskAwaitable { get; } 51public INamedTypeSymbol? StringReader { get; } 52public INamedTypeSymbol? MemoryStream { get; } 69ImmutableHashSet<INamedTypeSymbol>.Empty; 72private static ImmutableHashSet<INamedTypeSymbol> GetDisposeOwnershipTransferLikelyTypes(Compilation compilation) 74var builder = PooledHashSet<INamedTypeSymbol>.GetInstance(); 77INamedTypeSymbol? typeSymbol = compilation.GetOrCreateTypeByMetadataName(typeName); 91Interlocked.CompareExchange(ref _lazyDisposableFieldsMap, new ConcurrentDictionary<INamedTypeSymbol, ImmutableHashSet<IFieldSymbol>>(), null); 178public ImmutableHashSet<IFieldSymbol> GetDisposableFields(INamedTypeSymbol namedType)
src\sdk\src\Microsoft.CodeAnalysis.NetAnalyzers\src\Utilities\FlowAnalysis\FlowAnalysis\Analysis\TaintedDataAnalysis\TaintedDataSymbolMap.cs (5)
24if (!wellKnownTypeProvider.TryGetOrCreateTypeByMetadataName(dependency, out INamedTypeSymbol? _)) 54if (wellKnownTypeProvider.TryGetOrCreateTypeByMetadataName(info.FullTypeName, out INamedTypeSymbol? namedTypeSymbol)) 111public IEnumerable<TInfo> GetInfosForType(INamedTypeSymbol namedTypeSymbol) 128foreach (INamedTypeSymbol interfaceSymbol in namedTypeSymbol.AllInterfaces) 139foreach (INamedTypeSymbol typeSymbol in namedTypeSymbol.GetBaseTypesAndThis())
src\sdk\src\Microsoft.CodeAnalysis.NetAnalyzers\src\Utilities\FlowAnalysis\FlowAnalysis\Analysis\TaintedDataAnalysis\WebInputSources.cs (3)
23private static readonly BoundedCacheWithFactory<Compilation, ConcurrentDictionary<INamedTypeSymbol, bool>> s_classIsControllerByCompilation = new(); 85|| methodSymbol.ContainingSymbol is not INamedTypeSymbol typeSymbol) 90var classCache = s_classIsControllerByCompilation.GetOrCreateValue(wellKnownTypeProvider.Compilation, (compilation) => new ConcurrentDictionary<INamedTypeSymbol, bool>());
src\sdk\src\Microsoft.CodeAnalysis.NetAnalyzers\src\Utilities\FlowAnalysis\FlowAnalysis\Framework\DataFlow\AbstractLocation.cs (2)
22/// 2. Location for the implicit 'this' or 'Me' instance being analyzed (<see cref="CreateThisOrMeLocation(INamedTypeSymbol, ImmutableStack{IOperation})"/>). 61public static AbstractLocation CreateThisOrMeLocation(INamedTypeSymbol namedTypeSymbol, ImmutableStack<IOperation>? creationCallStack)
src\sdk\src\Microsoft.CodeAnalysis.NetAnalyzers\src\Utilities\FlowAnalysis\FlowAnalysis\Framework\DataFlow\AnalysisEntity.cs (2)
87private AnalysisEntity(INamedTypeSymbol namedType, PointsToAbstractValue location, bool isThisOrMeInstance) 116public static AnalysisEntity CreateThisOrMeInstance(INamedTypeSymbol typeSymbol, PointsToAbstractValue instanceLocation)
src\sdk\src\Microsoft.CodeAnalysis.NetAnalyzers\src\Utilities\FlowAnalysis\FlowAnalysis\Framework\DataFlow\AnalysisEntityFactory.cs (3)
47INamedTypeSymbol containingTypeSymbol, 337var tupleType = (INamedTypeSymbol)tupleOperation.Type;
src\sdk\src\Microsoft.CodeAnalysis.NetAnalyzers\src\Utilities\FlowAnalysis\FlowAnalysis\Framework\DataFlow\DataFlowOperationVisitor.cs (47)
725if (thrownExceptionType is INamedTypeSymbol exceptionType && 1725(analysisEntity.Type as INamedTypeSymbol)?.OverridesEquals() == false); 1770foreach (var interfaceType in methodSymbol.ContainingType.AllInterfaces) 3249void ProcessInterlockedOperation(IMethodSymbol targetMethod, ImmutableArray<IArgumentOperation> arguments, INamedTypeSymbol interlockedType) 4099/// <see cref="INamedTypeSymbol"/> for <see cref="System.Exception"/> 4101protected INamedTypeSymbol? ExceptionNamedType { get; } 4104/// <see cref="INamedTypeSymbol"/> for 'System.Diagnostics.Contracts.Contract' type. /> 4106protected INamedTypeSymbol? ContractNamedType { get; } 4109/// <see cref="INamedTypeSymbol"/> for <see cref="System.IDisposable"/> 4111protected INamedTypeSymbol? IDisposableNamedType { get; } 4114/// <see cref="INamedTypeSymbol"/> for "System.IAsyncDisposable" 4116private INamedTypeSymbol? IAsyncDisposableNamedType { get; } 4119/// <see cref="INamedTypeSymbol"/> for "System.Runtime.CompilerServices.ConfiguredAsyncDisposable" 4121private INamedTypeSymbol? ConfiguredAsyncDisposable { get; } 4124/// <see cref="INamedTypeSymbol"/> for "System.Runtime.CompilerServices.ConfiguredValueTaskAwaitable" 4126private INamedTypeSymbol? ConfiguredValueTaskAwaitable { get; } 4129/// <see cref="INamedTypeSymbol"/> for <see cref="System.Threading.Tasks.Task"/> 4131protected INamedTypeSymbol? TaskNamedType { get; } 4135/// <see cref="INamedTypeSymbol"/> for <see cref="T:System.Threading.Tasks.TaskAsyncEnumerableExtensions"/> 4137private INamedTypeSymbol? TaskAsyncEnumerableExtensions { get; } 4141/// <see cref="INamedTypeSymbol"/> for <see cref="System.IO.MemoryStream"/> 4143protected INamedTypeSymbol? MemoryStreamNamedType { get; } 4146/// <see cref="INamedTypeSymbol"/> for System.Threading.Tasks.ValueTask/> 4148private INamedTypeSymbol? ValueTaskNamedType { get; } 4151/// <see cref="INamedTypeSymbol"/> for <see cref="System.Threading.Tasks.Task{TResult}"/> 4153protected INamedTypeSymbol? GenericTaskNamedType { get; } 4156/// <see cref="INamedTypeSymbol"/> for <see cref="System.Threading.Monitor"/> 4158protected INamedTypeSymbol? MonitorNamedType { get; } 4161/// <see cref="INamedTypeSymbol"/> for <see cref="System.Threading.Interlocked"/> 4163protected INamedTypeSymbol? InterlockedNamedType { get; } 4166/// <see cref="INamedTypeSymbol"/> for 'System.Runtime.Serialization.SerializationInfo' type /> 4168protected INamedTypeSymbol? SerializationInfoNamedType { get; } 4171/// <see cref="INamedTypeSymbol"/> for 'System.Runtime.Serialization.StreamingContext' type /> 4173protected INamedTypeSymbol? StreamingContextNamedType { get; } 4176/// <see cref="INamedTypeSymbol"/> for <see cref="System.IEquatable{T}"/> 4178protected INamedTypeSymbol? GenericIEquatableNamedType { get; } 4181/// <see cref="INamedTypeSymbol"/> for <see cref="System.IO.StringReader"/> 4183protected INamedTypeSymbol? StringReaderType { get; } 4187/// 1. <see cref="INamedTypeSymbol"/> for <see cref="System.Collections.ICollection"/> 4188/// 2. <see cref="INamedTypeSymbol"/> for <see cref="System.Collections.Generic.ICollection{T}"/> 4189/// 3. <see cref="INamedTypeSymbol"/> for <see cref="System.Collections.Generic.IReadOnlyCollection{T}"/> 4191protected ImmutableHashSet<INamedTypeSymbol> CollectionNamedTypes { get; } 4195private ImmutableHashSet<INamedTypeSymbol> GetWellKnownCollectionTypes() 4197var builder = PooledHashSet<INamedTypeSymbol>.GetInstance(); 4198var iCollection = WellKnownTypeProvider.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemCollectionsICollection); 4204var genericICollection = WellKnownTypeProvider.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemCollectionsGenericICollection1); 4210var genericIReadOnlyCollection = WellKnownTypeProvider.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemCollectionsGenericIReadOnlyCollection1);
src\sdk\src\Microsoft.CodeAnalysis.NetAnalyzers\src\Utilities\FlowAnalysis\FlowAnalysis\Framework\DataFlow\ThrownExceptionInfo.cs (5)
17INamedTypeSymbol exceptionType, 29internal static ThrownExceptionInfo Create(BasicBlock block, INamedTypeSymbol exceptionType, ImmutableStack<IOperation>? interproceduralCallStack) 36var exceptionNamedType = wellKnownTypeProvider.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemException); 41private static ControlFlowRegion? GetHandlerRegion(BasicBlock block, INamedTypeSymbol exceptionType) 88internal INamedTypeSymbol ExceptionType { get; }
src\sdk\src\Microsoft.CodeAnalysis.NetAnalyzers\src\Utilities\Workspaces\SyntaxGeneratorExtensions.cs (10)
34INamedTypeSymbol containingType) 75public static SyntaxNode TypeExpressionForStaticMemberAccess(this SyntaxGenerator generator, INamedTypeSymbol typeSymbol) 109public static SyntaxNode DefaultOperatorInequalityDeclaration(this SyntaxGenerator generator, INamedTypeSymbol containingType) 135public static SyntaxNode DefaultOperatorLessThanDeclaration(this SyntaxGenerator generator, INamedTypeSymbol containingType) 187public static SyntaxNode DefaultOperatorLessThanOrEqualDeclaration(this SyntaxGenerator generator, INamedTypeSymbol containingType) 234public static SyntaxNode DefaultOperatorGreaterThanDeclaration(this SyntaxGenerator generator, INamedTypeSymbol containingType) 282public static SyntaxNode DefaultOperatorGreaterThanOrEqualDeclaration(this SyntaxGenerator generator, INamedTypeSymbol containingType) 321private static SyntaxNode ComparisonOperatorDeclaration(this SyntaxGenerator generator, OperatorKind operatorKind, INamedTypeSymbol containingType, params SyntaxNode[] statements) 349public static SyntaxNode DefaultEqualsOverrideDeclaration(this SyntaxGenerator generator, Compilation compilation, INamedTypeSymbol containingType) 436out INamedTypeSymbol? notImplementedExceptionType)
Microsoft.CodeAnalysis.Razor.Compiler (187)
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 (8)
26var type = compilation.GetTypeByMetadataName(typeMetadataName); 40public static bool HasCallableUtf8WriteLiteralOverload(this Compilation compilation, INamedTypeSymbol type) 42var readOnlySpanType = compilation.GetTypeByMetadataName("System.ReadOnlySpan`1"); 43var byteType = compilation.GetSpecialType(SpecialType.System_Byte); 44if (readOnlySpanType is not INamedTypeSymbol readOnlySpanNamedType || 50var readOnlySpanOfByte = readOnlySpanNamedType.Construct(byteType); 52for (var currentType = type; currentType is not null; currentType = currentType.BaseType) 75var stringType = compilation.GetSpecialType(SpecialType.System_String);
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)
27public TagHelperDescriptor? CreateDescriptor(INamedTypeSymbol type) 73private static void AddTagMatchingRules(INamedTypeSymbol type, TagHelperDescriptorBuilder descriptorBuilder) 127private void AddBoundAttributes(INamedTypeSymbol type, TagHelperDescriptorBuilder builder) 147private static void AddAllowedChildren(INamedTypeSymbol type, TagHelperDescriptorBuilder builder) 173private void AddDocumentation(INamedTypeSymbol type, TagHelperDescriptorBuilder builder) 188private static void AddTagOutputHint(INamedTypeSymbol type, TagHelperDescriptorBuilder builder) 200INamedTypeSymbol containingType) 255INamedTypeSymbol containingType, 316if (property.Type is INamedTypeSymbol propertyType && 322var dictionaryType = property.Type.AllInterfaces 390INamedTypeSymbol typeSymbol, ref PooledArrayBuilder<IPropertySymbol> properties) 395var currentType = typeSymbol;
CSharp\Utf8SupportMap.cs (5)
77var type = compilation.GetTypeByMetadataName(info.BaseTypeName); 171var symbol = semanticModel.GetSymbolInfo(baseTypeSyntax.Type).Symbol as INamedTypeSymbol; 188private static string GetFullMetadataName(INamedTypeSymbol symbol) 202for (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 (4)
137var typeSymbol = (INamedTypeSymbol)namespaceOrType; 182public TagHelperCollection GetTagHelpers(ImmutableArray<INamedTypeSymbol> types, CancellationToken cancellationToken = default) 206foreach (var type in types)
Language\TagHelpers\Producers\AcceptsAssetPathTagHelperProducer.cs (4)
19private readonly INamedTypeSymbol _acceptsAssetPathAttributeType; 21private AcceptsAssetPathTagHelperProducer(INamedTypeSymbol acceptsAssetPathAttributeType) 30public override bool IsCandidateType(INamedTypeSymbol type) 35INamedTypeSymbol type,
Language\TagHelpers\Producers\AcceptsAssetPathTagHelperProducer.Factory.cs (1)
20if (!compilation.TryGetTypeByMetadataName(ComponentsApi.AcceptsAssetPathAttribute.MetadataName, out var acceptsAssetPathAttributeType))
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 (15)
24private readonly INamedTypeSymbol? _dictionaryOfStringObject; 43public override bool IsCandidateType(INamedTypeSymbol type) 47INamedTypeSymbol type, 97INamedTypeSymbol type, 104INamedTypeSymbol type, 111INamedTypeSymbol type, 264private static void CreateProperty(Compilation compilation, TagHelperDescriptorBuilder builder, INamedTypeSymbol containingSymbol, IPropertySymbol property, PropertyKind kind) 367if (type is INamedTypeSymbol namedType && namedType.IsGenericType) 398var methodSymbol = ((INamedTypeSymbol)prop.Type).DelegateInvokeMethod.AssumeNotNull(); 723private static ImmutableArray<(IPropertySymbol property, PropertyKind kind)> GetProperties(INamedTypeSymbol type) 728var currentType = type; 819(property.Type is INamedTypeSymbol { IsGenericType: true } namedType && 826(property.Type is INamedTypeSymbol { IsGenericType: true } namedType && 836private static bool HasRenderModeDirective(INamedTypeSymbol type) 841var 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);
SourceGenerators\RazorSourceGenerator.Helpers.cs (3)
199private static ImmutableArray<INamedTypeSymbol> ResolveFallbackTypes( 216using var builder = new PooledArrayBuilder<INamedTypeSymbol>(); 222if (symbol is INamedTypeSymbol typeSymbol)
SourceGenerators\StaticCompilationTagHelperFeature.cs (1)
34public TagHelperCollection GetTagHelpers(ImmutableArray<INamedTypeSymbol> types, CancellationToken cancellationToken)
Microsoft.CodeAnalysis.Rebuild (1)
CompilationFactory.cs (1)
179var typeSymbol = rebuildCompilation.GetTypeByMetadataName(mainTypeName);
Microsoft.CodeAnalysis.ResxSourceGenerator (579)
AbstractResxGenerator.cs (1)
42var methodImplOptions = compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemRuntimeCompilerServicesMethodImplOptions);
src\60c94c676d650713\ITypeSymbolExtensions.CollectTypeParameterSymbolsVisitor.cs (1)
57public override void VisitNamedType(INamedTypeSymbol symbol)
src\60c94c676d650713\SymbolEquivalenceComparer.ParameterSymbolEqualityComparer.cs (2)
23Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies,
src\60c94c676d650713\SymbolEquivalenceComparer.SignatureTypeSymbolEquivalenceComparer.cs (2)
18public bool Equals(ITypeSymbol? x, ITypeSymbol? y, Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies)
src\b310f676f7308b7f\SymbolUsageAnalysis.DataFlowAnalyzer.FlowGraphAnalysisData.cs (1)
143if (owningSymbol.ContainingSymbol is INamedTypeSymbol { IsExtension: true, ExtensionParameter: { } extensionParameter })
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\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_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\ISymbolExtensions.cs (17)
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) 574var currentType = attributeType; 605return ((INamedTypeSymbol)symbol).GetMembers().OfType<IPropertySymbol>().Where(p => p.CanBeReferencedByName); 880public 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\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.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)
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)
264Dim 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.Workspaces (790)
Editing\DeclarationModifiers.cs (3)
66is INamedTypeSymbol 75var 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_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\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\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\AbstractReferenceFinder.cs (1)
678var containingType = definition.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, 58INamedTypeSymbol symbol, 113INamedTypeSymbol namedType, 146INamedTypeSymbol namedType, 163INamedTypeSymbol namedType, FindReferencesDocumentState state, Action<FinderLocation, TData> processResult, TData processResultData, string alias, CancellationToken cancellationToken) 181INamedTypeSymbol symbol, 196INamedTypeSymbol namedType, 213INamedTypeSymbol symbol, 233INamedTypeSymbol 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_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\SymbolFinder.cs (1)
228if (linkedSymbol is INamedTypeSymbol linkedNamedType &&
FindSymbols\SymbolTree\SymbolTreeInfo_Source.cs (3)
187if (symbol is INamedTypeSymbol namedType) 210else if (symbol is INamedTypeSymbol namedTypeSymbol) 214foreach (var childType in namedTypeSymbol.GetTypeMembers())
FindSymbols\SymbolTree\SymbolTreeInfo.cs (3)
497public ImmutableArray<INamedTypeSymbol> GetDerivedMetadataTypes( 503using var builder = TemporaryArray<INamedTypeSymbol>.Empty; 513if (symbol is INamedTypeSymbol namedType)
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\30958ef190fa2467\SyntaxGeneratorInternal.cs (1)
123public abstract SyntaxNode DeclarationPattern(INamedTypeSymbol type, string name);
src\60c94c676d650713\ITypeSymbolExtensions.CollectTypeParameterSymbolsVisitor.cs (1)
57public override void VisitNamedType(INamedTypeSymbol symbol)
src\60c94c676d650713\SymbolEquivalenceComparer.ParameterSymbolEqualityComparer.cs (2)
23Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies,
src\60c94c676d650713\SymbolEquivalenceComparer.SignatureTypeSymbolEquivalenceComparer.cs (2)
18public bool Equals(ITypeSymbol? x, ITypeSymbol? y, Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies)
src\a16f30e1d256badc\AbstractTypeInferenceService.AbstractTypeInferrer.cs (1)
102protected static IEnumerable<TypeInferenceInfo> GetCollectionElementType(INamedTypeSymbol type)
src\b310f676f7308b7f\SymbolUsageAnalysis.DataFlowAnalyzer.FlowGraphAnalysisData.cs (1)
143if (owningSymbol.ContainingSymbol is INamedTypeSymbol { IsExtension: true, ExtensionParameter: { } extensionParameter })
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\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_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\ISymbolExtensions.cs (17)
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) 574var currentType = attributeType; 605return ((INamedTypeSymbol)symbol).GetMembers().OfType<IPropertySymbol>().Where(p => p.CanBeReferencedByName); 880public 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\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.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\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, 167public 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)
16INamedTypeSymbol containingType, 29public virtual INamedTypeSymbol BaseType => null; 31public virtual ImmutableArray<INamedTypeSymbol> Interfaces 34public 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_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\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\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\Simplification\SimplificationHelpers.cs (1)
80var typeSymbol = semanticModel.Compilation.GetSpecialType(specialType);
Microsoft.Diagnostics.DataContractReader.DataGenerator (8)
CdacGenerator.cs (1)
78foreach (INamedTypeSymbol type in compilation.GetTypesByMetadataName(metadataName))
Parser.cs (7)
35if (context.TargetSymbol is not INamedTypeSymbol classSymbol) 139if (kv.Key == name && kv.Value.Value is INamedTypeSymbol typeSymbol) 312bool isNullable = prop.Type is INamedTypeSymbol named 402if (type is INamedTypeSymbol named && named.IsGenericType 443if (type is INamedTypeSymbol named && 465type is INamedTypeSymbol { EnumUnderlyingType: ITypeSymbol underlyingType }) 510foreach (INamedTypeSymbol i in type.AllInterfaces)
Microsoft.DotNet.ApiCompatibility (26)
ApiStabilityClassifier.cs (5)
32List<INamedTypeSymbol> experimentalAttributeClasses = []; 53private static void AddExperimentalAttributeClasses(ISymbol symbol, List<INamedTypeSymbol> experimentalAttributeClasses) 91private static bool IsIncluded(INamedTypeSymbol attributeClass, ISymbolFilter filter) 109private sealed class CacheEntry(INamedTypeSymbol[] experimentalAttributeClasses) 111public INamedTypeSymbol[] ExperimentalAttributeClasses { get; } = experimentalAttributeClasses;
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)
218if (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)
86if (type is INamedTypeSymbol namedType) 140public 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.Configuration.Binder.SourceGeneration (101)
ConfigurationBindingGenerator.Parser.cs (38)
86INamedTypeSymbol? candidateBinderType = targetMethod.ContainingType; 209else if (type is INamedTypeSymbol) 225if (type is INamedTypeSymbol { IsGenericType: true } genericType && 226genericType.ConstructUnboundGenericType() is INamedTypeSymbol { } unboundGeneric && 245if (type is not INamedTypeSymbol namedType) 368INamedTypeSymbol type = (INamedTypeSymbol)typeParseInfo.TypeSymbol; 387INamedTypeSymbol type = (INamedTypeSymbol)typeParseInfo.TypeSymbol; 459INamedTypeSymbol type = (INamedTypeSymbol)typeParseInfo.TypeSymbol; 569type = ((INamedTypeSymbol)type).TypeArguments[0]; // extract the T from a Nullable<T> 619INamedTypeSymbol collectionType = (INamedTypeSymbol)type; 655INamedTypeSymbol typeSymbol = (INamedTypeSymbol)typeParseInfo.TypeSymbol; 725INamedTypeSymbol? current = typeSymbol; 845private bool TryGetElementType(INamedTypeSymbol type, [NotNullWhen(true)] out ITypeSymbol? elementType) 847INamedTypeSymbol? candidate = GetInterface(type, _typeSymbols.GenericIEnumerable_Unbound); 859private bool IsCandidateDictionary(INamedTypeSymbol type, [NotNullWhen(true)] out ITypeSymbol? keyType, [NotNullWhen(true)] out ITypeSymbol? elementType) 861INamedTypeSymbol? candidate = GetInterface(type, _typeSymbols.GenericIDictionary_Unbound) ?? GetInterface(type, _typeSymbols.IReadOnlyDictionary_Unbound); 883type is INamedTypeSymbol namedType && GetInterface(namedType, _typeSymbols.IEnumerable) is not null; 885private static INamedTypeSymbol? GetInterface(INamedTypeSymbol type, INamedTypeSymbol? @interface) 901candidate.ConstructUnboundGenericType() is INamedTypeSymbol unbound 908private static bool IsInterfaceMatch(INamedTypeSymbol type, INamedTypeSymbol? @interface) 917INamedTypeSymbol unbound = type.ConstructUnboundGenericType(); 941if (type is INamedTypeSymbol { IsGenericType: true } genericType) 964if (type is not INamedTypeSymbol { IsGenericType: true } genericType) 981private static bool HasPublicParameterLessCtor(INamedTypeSymbol type) => 984private static bool HasAddMethod(INamedTypeSymbol type, ITypeSymbol element) 986INamedTypeSymbol? current = type; 1000private static bool HasAddMethod(INamedTypeSymbol type, ITypeSymbol key, ITypeSymbol element) 1002INamedTypeSymbol? current = type; 1017private static bool IsEnum(ITypeSymbol type) => type is INamedTypeSymbol { EnumUnderlyingType: INamedTypeSymbol { } };
Parser\BinderInvocation.cs (1)
58ContainingType: INamedTypeSymbol
Parser\Extensions.cs (1)
133if (type is not INamedTypeSymbol { IsGenericType: true } namedType)
Parser\KnownTypeSymbols.cs (50)
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? ConfigurationIgnoreAttribute { get; } 34public INamedTypeSymbol? ConfigurationKeyNameAttribute { get; } 35public INamedTypeSymbol? OptionsBuilderConfigurationExtensions { get; } 36public INamedTypeSymbol? OptionsBuilderOfT { get; } 37public INamedTypeSymbol? OptionsBuilderOfT_Unbound { get; } 38public INamedTypeSymbol? OptionsConfigurationServiceCollectionExtensions { get; } 40public INamedTypeSymbol GenericIList_Unbound { get; } 41public INamedTypeSymbol? GenericICollection_Unbound { get; } 42public INamedTypeSymbol GenericICollection { get; } 43public INamedTypeSymbol GenericIEnumerable_Unbound { get; } 44public INamedTypeSymbol IEnumerable { get; } 45public INamedTypeSymbol? Dictionary { get; } 46public INamedTypeSymbol? GenericIDictionary_Unbound { get; } 47public INamedTypeSymbol? GenericIDictionary { get; } 48public INamedTypeSymbol? HashSet { get; } 49public INamedTypeSymbol? IConfiguration { get; } 50public INamedTypeSymbol? IConfigurationSection { get; } 51public INamedTypeSymbol? IDictionary { get; } 52public INamedTypeSymbol? IReadOnlyCollection_Unbound { get; } 53public INamedTypeSymbol? IReadOnlyDictionary_Unbound { get; } 54public INamedTypeSymbol? IReadOnlyList_Unbound { get; } 55public INamedTypeSymbol? IReadOnlySet_Unbound { get; } 56public INamedTypeSymbol? IServiceCollection { get; } 57public INamedTypeSymbol? ISet_Unbound { get; } 58public INamedTypeSymbol? ISet { get; } 59public INamedTypeSymbol? List { get; } 60public INamedTypeSymbol Enum { get; } 61public INamedTypeSymbol? ArgumentNullException { get; } 62public INamedTypeSymbol? SerializationInfo { get; } 63public INamedTypeSymbol? IntPtr { get; } 64public INamedTypeSymbol? UIntPtr { get; } 65public INamedTypeSymbol? MemberInfo { get; } 66public INamedTypeSymbol? ParameterInfo { get; } 67public INamedTypeSymbol? Delegate { get; } 68public INamedTypeSymbol? NotNullIfNotNullAttribute { get; } 89INamedTypeSymbol? binderOptions = compilation.GetBestTypeByMetadataName("Microsoft.Extensions.Configuration.BinderOptions");
Parser\OptionsBuilderConfigurationExtensions.cs (1)
22@params[0].Type is not INamedTypeSymbol { IsGenericType: true } genericType ||
Specs\Types\CollectionSpec.cs (1)
42public DictionarySpec(INamedTypeSymbol type) : base(type) { }
Specs\Types\ObjectSpec.cs (1)
12INamedTypeSymbol type,
Specs\Types\TypeSpec.cs (1)
21if (type is INamedTypeSymbol namedTypeSymbol)
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)
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, 681INamedTypeSymbol? classType = sm.GetDeclaredSymbol(classDec, _cancellationToken); 683INamedTypeSymbol? 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 (76)
Emitter.cs (1)
89INamedTypeSymbol? validatorTypeSymbol = compilation.GetBestTypeByMetadataName("System.ComponentModel.DataAnnotations.Validator");
Parser.cs (24)
291INamedTypeSymbol? expectedInterface = requireCancellationToken ? _symbolHolder.AsyncValidateOptionsSymbol : _symbolHolder.ValidateOptionsSymbol; 322if (type is INamedTypeSymbol mt) 355type = ((INamedTypeSymbol)type).TypeArguments[0]; 361return ((INamedTypeSymbol)type).TypeArguments[0]; 365foreach (var implementingInterface in type.AllInterfaces) 383modelType = ((INamedTypeSymbol)modelType).TypeArguments[0]; 388var baseType = modelType.BaseType; 466var attributeType = attribute.AttributeClass!; 482var transValidatorType = attribute.ConstructorArguments[0].Value as INamedTypeSymbol; 490INamedTypeSymbol? asyncInterface = isAsync ? GetAsyncValidateOptionsInterfaceFor(transValidatorType, memberType) : null; 548var enumerationValidatorType = attribute.ConstructorArguments[0].Value as INamedTypeSymbol; 556INamedTypeSymbol? asyncInterface = isAsync ? GetAsyncValidateOptionsInterfaceFor(enumerationValidatorType, enumeratedType) : null; 765typeSymbol = ((INamedTypeSymbol)typeSymbol).TypeArguments[0]; 787if (argumentValue is INamedTypeSymbol namedTypeSymbol) 817mt = ((INamedTypeSymbol)mt).TypeArguments[0]; 897foreach (var implementingInterface in modelType.AllInterfaces) 915foreach (var implementingInterface in modelType.AllInterfaces) 926private INamedTypeSymbol? GetAsyncValidateOptionsInterfaceFor(ITypeSymbol validatorType, ITypeSymbol modelType) 933foreach (var implementingInterface in validatorType.AllInterfaces) 948foreach (var implementingInterface in validatorType.AllInterfaces) 961foreach (var implementingInterface in validatorType.AllInterfaces) 1015value 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 (21)
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, 29INamedTypeSymbol CancellationTokenSymbol, 30INamedTypeSymbol? IAsyncValidatableObjectSymbol = null, 32INamedTypeSymbol? AsyncValidateOptionsSymbol = null, 33INamedTypeSymbol? AsyncValidationAttributeSymbol = null,
SymbolLoader.cs (23)
36INamedTypeSymbol? GetSymbol(string metadataName) => compilation.GetTypeByMetadataName(metadataName); 39var optionsValidatorSymbol = GetSymbol(OptionsValidatorAttribute); 40var validationAttributeSymbol = GetSymbol(ValidationAttribute); 41var maxLengthAttributeSymbol = GetSymbol(MaxLengthAttribute); 42var minLengthAttributeSymbol = GetSymbol(MinLengthAttribute); 43var compareAttributeSymbol = GetSymbol(CompareAttribute); 44var lengthAttributeSymbol = GetSymbol(LengthAttribute); 45var rangeAttributeSymbol = GetSymbol(RangeAttribute); 46var iCollectionSymbol = GetSymbol(ICollectionType); 47var dataTypeAttributeSymbol = GetSymbol(DataTypeAttribute); 48var ivalidatableObjectSymbol = GetSymbol(IValidatableObjectType); 49var validateOptionsSymbol = GetSymbol(IValidateOptionsType); 50var genericIEnumerableSymbol = GetSymbol(GenericIEnumerableType); 51var typeSymbol = GetSymbol(TypeOfType); 52var timeSpanSymbol = GetSymbol(TimeSpanType); 53var validateObjectMembersAttribute = GetSymbol(ValidateObjectMembersAttribute); 54var validateEnumeratedItemsAttribute = GetSymbol(ValidateEnumeratedItemsAttribute); 55var cancellationTokenSymbol = GetSymbol(CancellationTokenType); 56var unconditionalSuppressMessageAttributeSymbol = GetSymbol(UnconditionalSuppressMessageAttributeType); 94var iAsyncValidatableObjectSymbol = GetSymbol(IAsyncValidatableObjectType); 95var asyncValidateOptionsSymbol = GetSymbol(IAsyncValidateOptionsType); 96var asyncValidationAttributeSymbol = GetSymbol(AsyncValidationAttributeType); 97var validatorSymbol = GetSymbol(ValidatorType);
Microsoft.Extensions.Validation.ValidationsGenerator (120)
Analyzers\ValidatableTypeInGeneratedCodeDiagnosticAnalyzer.cs (2)
38var validatableTypeAttribute = context.Compilation.GetTypeByMetadataName("Microsoft.Extensions.Validation.ValidatableTypeAttribute"); 52if (context.ContainingSymbol is INamedTypeSymbol attributedType &&
Analyzers\ValidationsDiagnosticAnalyzer.cs (13)
103INamedTypeSymbol skipValidationAttributeSymbol, 104INamedTypeSymbol jsonIgnoreAttributeSymbol, 168var serviceCollectionExtensionsType = compilation.GetTypeByMetadataName("Microsoft.Extensions.DependencyInjection.ValidationServiceCollectionExtensions"); 169var validatableTypeAttribute = compilation.GetTypeByMetadataName("Microsoft.Extensions.Validation.ValidatableTypeAttribute"); 170var validationEndpointConventionBuilderExtensions = compilation.GetTypeByMetadataName("Microsoft.AspNetCore.Builder.ValidationEndpointConventionBuilderExtensions"); 173var fromServiceMetadata = wellKnownTypes.GetOptional(WellKnownTypeData.WellKnownType.Microsoft_AspNetCore_Http_Metadata_IFromServiceMetadata); 174var fromKeyedServiceAttribute = wellKnownTypes.GetOptional(WellKnownTypeData.WellKnownType.Microsoft_Extensions_DependencyInjection_FromKeyedServicesAttribute); 175var skipValidationAttribute = wellKnownTypes.Get(WellKnownTypeData.WellKnownType.Microsoft_Extensions_Validation_SkipValidationAttribute); 176var jsonIgnoreAttributeSymbol = wellKnownTypes.Get(WellKnownTypeData.WellKnownType.System_Text_Json_Serialization_JsonIgnoreAttribute); 191if (context.ContainingSymbol is INamedTypeSymbol attributedType && 280private static bool IsAddValidationInvocation(IInvocationOperation invocation, INamedTypeSymbol? extensionsType) 287private static bool IsValidationDisabledForEndpoint(IInvocationOperation routeHandlerInvocation, INamedTypeSymbol? validationEndpointConventionBuilderExtensions) 335private static bool IsDisableValidationInvocation(IOperation operation, INamedTypeSymbol validationEndpointConventionBuilderExtensions)
Extensions\ISymbolExtensions.cs (3)
21INamedTypeSymbol displayAttributeSymbol, 22INamedTypeSymbol displayNameAttributeSymbol) 40hasResourceType = arg.Value.Value is INamedTypeSymbol;
Extensions\ITypeSymbolExtensions.cs (23)
15public static bool IsGenericEnumerable(this INamedTypeSymbol type, [NotNullWhen(true)] out ITypeSymbol? elementType) 42foreach (var iface in type.AllInterfaces) 56public static bool ImplementsValidationAttribute(this ITypeSymbol typeSymbol, INamedTypeSymbol validationAttributeSymbol) 58var baseType = typeSymbol.BaseType; 74type is INamedTypeSymbol { TypeArguments.Length: 1 }) 77type = ((INamedTypeSymbol)type).TypeArguments[0]; 88if (type is INamedTypeSymbol namedType && namedType.IsGenericEnumerable(out var elementType)) 104foreach (var iface in type.AllInterfaces) 114internal static ImmutableArray<INamedTypeSymbol>? GetJsonDerivedTypes(this ITypeSymbol type, INamedTypeSymbol jsonDerivedTypeAttribute) 116var derivedTypes = ImmutableArray.CreateBuilder<INamedTypeSymbol>(); 121var derivedType = (INamedTypeSymbol?)attribute.ConstructorArguments[0].Value; 147internal static IPropertySymbol? FindPropertyIncludingBaseTypes(this INamedTypeSymbol typeSymbol, string propertyName) 159if (typeSymbol.BaseType is INamedTypeSymbol baseType) 173internal static bool IsServiceParameter(this IParameterSymbol parameter, INamedTypeSymbol fromServiceMetadataSymbol, INamedTypeSymbol fromKeyedServiceAttributeSymbol) 187internal static bool IsServiceProperty(this IPropertySymbol property, INamedTypeSymbol fromServiceMetadataSymbol, INamedTypeSymbol fromKeyedServiceAttributeSymbol) 202internal static bool IsJsonIgnoredProperty(this IPropertySymbol property, INamedTypeSymbol jsonIgnoreAttributeSymbol) 238internal static bool IsSkippedValidationProperty(this IPropertySymbol property, INamedTypeSymbol skipValidationAttributeSymbol) 243internal static bool IsSkippedValidationParameter(this IParameterSymbol parameter, INamedTypeSymbol skipValidationAttributeSymbol) 252if (current is INamedTypeSymbol { IsFileLocal: true } ||
Models\RequiredSymbols.cs (17)
9INamedTypeSymbol DisplayAttribute, 10INamedTypeSymbol ValidationAttribute, 11INamedTypeSymbol IEnumerable, 12INamedTypeSymbol IValidatableObject, 13INamedTypeSymbol JsonDerivedTypeAttribute, 14INamedTypeSymbol JsonIgnoreAttribute, 15INamedTypeSymbol RequiredAttribute, 16INamedTypeSymbol CustomValidationAttribute, 17INamedTypeSymbol HttpContext, 18INamedTypeSymbol HttpRequest, 19INamedTypeSymbol HttpResponse, 20INamedTypeSymbol CancellationToken, 21INamedTypeSymbol IFormCollection, 22INamedTypeSymbol IFormFileCollection, 23INamedTypeSymbol IFormFile, 24INamedTypeSymbol Stream, 25INamedTypeSymbol PipeReader
Parsers\ValidationsGenerator.TypesParser.cs (18)
36var fromServiceMetadataSymbol = wellKnownTypes.GetOptional( 38var fromKeyedServiceAttributeSymbol = wellKnownTypes.GetOptional( 40var skipValidationAttributeSymbol = wellKnownTypes.Get( 93var displayAttributeSymbol = wellKnownTypes.Get(WellKnownTypeData.WellKnownType.System_ComponentModel_DataAnnotations_DisplayAttribute); 94var displayNameAttributeSymbol = wellKnownTypes.Get(WellKnownTypeData.WellKnownType.System_ComponentModel_DisplayNameAttribute); 99var current = typeSymbol.BaseType; 123foreach (var derivedType in derivedTypes ?? []) 151INamedTypeSymbol skipValidationAttributeSymbol, 152INamedTypeSymbol jsonIgnoreAttributeSymbol) 204var fromServiceMetadataSymbol = wellKnownTypes.GetOptional( 206var fromKeyedServiceAttributeSymbol = wellKnownTypes.GetOptional( 208var jsonIgnoreAttributeSymbol = wellKnownTypes.Get( 210var skipValidationAttributeSymbol = wellKnownTypes.Get( 212var displayAttributeSymbol = wellKnownTypes.Get( 214var displayNameAttributeSymbol = wellKnownTypes.Get( 219if (typeSymbol is INamedTypeSymbol { IsRecord: true } namedType) 350var validationAttributeSymbol = wellKnownTypes.Get(WellKnownTypeData.WellKnownType.System_ComponentModel_DataAnnotations_ValidationAttribute); 366var validatableObjectSymbol = wellKnownTypes.Get(WellKnownTypeData.WellKnownType.System_ComponentModel_DataAnnotations_IValidatableObject);
src\768f3af0174e68df\InvocationOperationExtensions.cs (1)
117return (type as INamedTypeSymbol)?.DelegateInvokeMethod;
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 && 151methodSymbol.ReturnType is INamedTypeSymbol returnType && 155private static bool IsReturningValueTaskOfTOrNullableT(INamedTypeSymbol returnType, ITypeSymbol containingType, WellKnownTypes wellKnownTypes) 213if (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)
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)
339var parentType = methodSymbol.ContainingType.ContainingType; 529private static List<INamedTypeSymbol> GetDataClassificationAttributes(ISymbol symbol, SymbolHolder symbols) 643extractedType = ((INamedTypeSymbol)paramTypeSymbol).TypeArguments[0]; 700INamedTypeSymbol? classType = sm.GetDeclaredSymbol(classDec, _cancellationToken); 701INamedTypeSymbol? 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 (117)
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)
75INamedTypeSymbol? generatedComInterfaceAttrType = compilationContext.Compilation.GetBestTypeByMetadataName(TypeNames.GeneratedComInterfaceAttribute); 85var interfaceInfoCache = new ConcurrentDictionary<INamedTypeSymbol, DiagnosticOr<(ComInterfaceInfo, INamedTypeSymbol)>>(SymbolEqualityComparer.Default); 89INamedTypeSymbol typeSymbol = (INamedTypeSymbol)symbolContext.Symbol; 114INamedTypeSymbol typeSymbol, 117INamedTypeSymbol generatedComInterfaceAttrType, 118ConcurrentDictionary<INamedTypeSymbol, DiagnosticOr<(ComInterfaceInfo, INamedTypeSymbol)>> interfaceInfoCache) 123DiagnosticOr<(ComInterfaceInfo, INamedTypeSymbol)> ciiResult = interfaceInfoCache.GetOrAdd( 136(ComInterfaceInfo cii, INamedTypeSymbol _) = ciiResult.Value; 212INamedTypeSymbol typeSymbol, 215INamedTypeSymbol generatedComInterfaceAttrType, 216ConcurrentDictionary<INamedTypeSymbol, DiagnosticOr<(ComInterfaceInfo, INamedTypeSymbol)>> interfaceInfoCache, 221ImmutableArray<(ComInterfaceInfo, INamedTypeSymbol)> externalBases = 230INamedTypeSymbol current = typeSymbol; 234INamedTypeSymbol? baseSymbol = FindBaseComInterfaceSymbol(current, generatedComInterfaceAttrType); 241ImmutableArray<(ComInterfaceInfo, INamedTypeSymbol)> externalInfos = 248DiagnosticOr<(ComInterfaceInfo, INamedTypeSymbol)> baseResult = interfaceInfoCache.GetOrAdd( 254return DiagnosticOr<(ComInterfaceInfo, INamedTypeSymbol)>.From( 273private static INamedTypeSymbol? FindBaseComInterfaceSymbol(INamedTypeSymbol typeSymbol, INamedTypeSymbol generatedComInterfaceAttrType) 275foreach (INamedTypeSymbol iface in typeSymbol.Interfaces) 291INamedTypeSymbol symbol, 292INamedTypeSymbol 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)
27var type = (INamedTypeSymbol)context.TargetSymbol; 31INamedTypeSymbol? generatedComInterfaceAttributeType = compilation.GetBestTypeByMetadataName(TypeNames.GeneratedComInterfaceAttribute);
ComClassInfo.cs (3)
31public static ComClassInfo From(INamedTypeSymbol type, ClassDeclarationSyntax syntax, INamedTypeSymbol? generatedComInterfaceAttributeType) 34foreach (INamedTypeSymbol iface in type.AllInterfaces)
ComInterfaceGenerator.cs (7)
29static (context, ct) => context.TargetSymbol is INamedTypeSymbol interfaceSymbol 49List<(ComInterfaceInfo, INamedTypeSymbol)> interfaceInfos = new(); 50HashSet<(ComInterfaceInfo, INamedTypeSymbol)> externalIfaces = new(ComInterfaceInfo.EqualityComparerForExternalIfaces.Instance); 185INamedTypeSymbol? lcidConversionAttrType = environment.LcidConversionAttrType; 186INamedTypeSymbol? suppressGCTransitionAttrType = environment.SuppressGCTransitionAttrType; 187INamedTypeSymbol? unmanagedCallConvAttrType = environment.UnmanagedCallConvAttrType; 301(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)>; 64public static DiagnosticOrInterfaceInfo From(INamedTypeSymbol symbol, InterfaceDeclarationSyntax syntax, StubEnvironment env, CancellationToken _) 94if (!TryGetBaseComInterface(symbol, syntax, out INamedTypeSymbol? baseSymbol, out DiagnosticInfo? baseDiagnostic)) 157INamedTypeSymbol symbol) 159if (!TryGetBaseComInterface(symbol, null, out INamedTypeSymbol? baseSymbol, out _) || baseSymbol is null) 168var thisSymbol = baseSymbol; 191internal sealed class EqualityComparerForExternalIfaces : IEqualityComparer<(ComInterfaceInfo InterfaceInfo, INamedTypeSymbol Symbol)> 193public bool Equals((ComInterfaceInfo, INamedTypeSymbol) x, (ComInterfaceInfo, INamedTypeSymbol) y) => SymbolEqualityComparer.Default.Equals(x.Item2, y.Item2); 194public int GetHashCode((ComInterfaceInfo, INamedTypeSymbol) obj) => SymbolEqualityComparer.Default.GetHashCode(obj.Item2); 198private static bool IsInPartialContext(INamedTypeSymbol symbol, InterfaceDeclarationSyntax syntax, [NotNullWhen(false)] out DiagnosticInfo? diagnostic) 215INamedTypeSymbol interfaceSymbol, 275INamedTypeSymbol interfaceSymbol, 315if (attrSymbolInfo.ExceptionToUnmanagedMarshaller is INamedTypeSymbol exceptionToUnmanagedMarshallerType) 341private static bool TryGetBaseComInterface(INamedTypeSymbol comIface, InterfaceDeclarationSyntax? syntax, out INamedTypeSymbol? baseComIface, [NotNullWhen(false)] out DiagnosticInfo? diagnostic) 345foreach (var implemented in comIface.Interfaces) 376private static bool TryGetGuid(INamedTypeSymbol interfaceSymbol, InterfaceDeclarationSyntax syntax, [NotNullWhen(true)] out Guid? guid, [NotNullWhen(false)] out DiagnosticInfo? diagnostic)
ComMethodInfo.cs (7)
61public static SequenceEqualImmutableArray<DiagnosticOr<(ComMethodInfo ComMethod, IMethodSymbol Symbol)>> GetMethodsFromInterface((ComInterfaceInfo ifaceContext, INamedTypeSymbol ifaceSymbol) data, CancellationToken ct) 141INamedTypeSymbol ifaceSymbol, 246INamedTypeSymbol ifaceSymbol, 405INamedTypeSymbol ifaceSymbol, 576INamedTypeSymbol ifaceSymbol) 600INamedTypeSymbol ifaceSymbol) 622INamedTypeSymbol ifaceSymbol)
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)
231INamedTypeSymbol? exceptionMarshallingCustomType = null; 263if (exceptionMarshallingCustomTypeValue.Value is not INamedTypeSymbol) 267exceptionMarshallingCustomType = (INamedTypeSymbol)exceptionMarshallingCustomTypeValue.Value; 283INamedTypeSymbol? lcidConversionAttrType = environment.Compilation.GetTypeByMetadataName(TypeNames.LCIDConversionAttribute); 284INamedTypeSymbol? suppressGCTransitionAttrType = environment.Compilation.GetTypeByMetadataName(TypeNames.SuppressGCTransitionAttribute); 285INamedTypeSymbol? unmanagedCallConvAttrType = environment.Compilation.GetTypeByMetadataName(TypeNames.UnmanagedCallConvAttribute); 286INamedTypeSymbol iUnmanagedInterfaceTypeType = environment.Compilation.GetTypeByMetadataName(TypeNames.IUnmanagedInterfaceType_Metadata)!; 379INamedTypeSymbol expectedUnmanagedInterfaceType = iUnmanagedInterfaceTypeType;
Microsoft.Interop.JavaScript.JSImportGenerator (12)
Analyzers\JSImportExportDiagnosticsAnalyzer.cs (1)
71INamedTypeSymbol? attrType = context.Compilation.GetTypeByMetadataName(AttributeMetadataName);
JSManagedTypeInfo.cs (6)
52case INamedTypeSymbol { ConstructedFrom.SpecialType: SpecialType.System_Nullable_T } nullable: 70case INamedTypeSymbol { TypeArguments.Length: 1 } taskType when fullTypeName.StartsWith(Constants.TaskGlobal, StringComparison.Ordinal): 78case INamedTypeSymbol { TypeArguments.Length: 1 } spanType when fullTypeName.StartsWith(Constants.SpanGlobal, StringComparison.Ordinal): 86case INamedTypeSymbol { TypeArguments.Length: 1 } arraySegmentType when fullTypeName.StartsWith(Constants.ArraySegmentGlobal, StringComparison.Ordinal): 96case INamedTypeSymbol actionType when fullTypeName.StartsWith(Constants.ActionGlobal, StringComparison.Ordinal): 107case 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 (75)
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)!; 437INamedTypeSymbol libraryImportAttrType, 680private 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)
56INamedTypeSymbol? libraryImportAttrType = context.Compilation.GetBestTypeByMetadataName(TypeNames.LibraryImportAttribute); 94private static bool AnalyzeMethod(SymbolAnalysisContext context, StubEnvironment env, INamedTypeSymbol libraryImportAttrType, LibraryImportGeneratorOptions options) 276INamedTypeSymbol? 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);
ErrorHandlingInfoParser.cs (1)
37|| attribute.ConstructorArguments[0].Value is not INamedTypeSymbol marshallerType
LibraryImportGenerator.cs (6)
207INamedTypeSymbol? suppressGCTransitionAttrType = environment.SuppressGCTransitionAttrType; 208INamedTypeSymbol? unmanagedCallConvAttrType = environment.UnmanagedCallConvAttrType; 209INamedTypeSymbol? defaultDllImportSearchPathsAttrType = environment.DefaultDllImportSearchPathsAttrType; 210INamedTypeSymbol? wasmImportLinkageAttrType = environment.WasmImportLinkageAttrType; 211INamedTypeSymbol? stackTraceHiddenAttrType = environment.StackTraceHiddenAttrType; 212INamedTypeSymbol? debuggerHiddenAttrType = environment.DebuggerHiddenAttrType;
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)
50INamedTypeSymbol? libraryImportAttrType = context.Compilation.GetBestTypeByMetadataName(TypeNames.LibraryImportAttribute); 96private static bool AnalyzeMethod(SymbolAnalysisContext context, StubEnvironment env, INamedTypeSymbol libraryImportAttrType) 274INamedTypeSymbol? lcidConversionAttrType = environment.LcidConversionAttrType;
DownlevelLibraryImportGenerator.cs (1)
193INamedTypeSymbol? 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 (130)
ArrayMarshallingInfoProvider.cs (1)
48INamedTypeSymbol? arrayMarshaller;
BlittableTypeMarshallingInfoProvider.cs (1)
23public bool CanProvideMarshallingInfoForType(ITypeSymbol type) => type is INamedTypeSymbol { IsUnmanagedType: true } unmanagedType
ComInterfaceMarshallingInfoProvider.cs (2)
25public bool CanParseAttributeType(INamedTypeSymbol attributeType) => attributeType.ToDisplayString() == TypeNames.GeneratedComInterfaceAttribute; 37INamedTypeSymbol? comInterfaceMarshaller = compilation.GetTypeByMetadataName(TypeNames.System_Runtime_InteropServices_Marshalling_ComInterfaceMarshaller_Metadata);
CustomMarshallingInfoHelper.cs (7)
15INamedTypeSymbol entryPointType, 60else if (type is INamedTypeSymbol namedManagedCollectionType && entryPointType.IsUnboundGenericType) 72entryPointType = (INamedTypeSymbol)resolvedEntryPointType; 91if (type is INamedTypeSymbol namedManagedType && entryPointType.IsUnboundGenericType) 103entryPointType = (INamedTypeSymbol)resolvedEntryPointType; 136INamedTypeSymbol entryPointType, 176INamedTypeSymbol? 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)
41return new EnumTypeInfo(typeName, diagnosticFormattedName, ((INamedTypeSymbol)type).EnumUnderlyingType!.SpecialType); 57return new DelegateTypeInfo(typeName, diagnosticFormattedName, type is INamedTypeSymbol { IsGenericType: true });
ManualTypeMarshallingHelper.cs (40)
108private static void IgnoreArityMismatch(INamedTypeSymbol _, INamedTypeSymbol __) { } 110public static bool IsLinearCollectionEntryPoint(INamedTypeSymbol entryPointType) 122INamedTypeSymbol entryPointType, 131INamedTypeSymbol entryPointType, 168INamedTypeSymbol entryPointType, 171Action<INamedTypeSymbol, INamedTypeSymbol> onArityMismatch, 178INamedTypeSymbol entryPointType, 188INamedTypeSymbol entryPointType, 192Action<INamedTypeSymbol, INamedTypeSymbol> onArityMismatch, 199INamedTypeSymbol entryPointType, 202Action<INamedTypeSymbol, INamedTypeSymbol> onArityMismatch, 210INamedTypeSymbol entryPointType, 215Action<INamedTypeSymbol, INamedTypeSymbol> onArityMismatch, 315public static bool TryResolveEntryPointType(INamedTypeSymbol managedType, ITypeSymbol typeInAttribute, bool isLinearCollectionMarshalling, Action<INamedTypeSymbol, INamedTypeSymbol> onArityMismatch, [NotNullWhen(true)] out ITypeSymbol? entryPoint) 317if (typeInAttribute is not INamedTypeSymbol entryPointType) 329INamedTypeSymbol instantiatedEntryType = entryPointType.ResolveUnboundConstructedTypeToConstructedType(managedType, out int numOriginalArgsSubstituted, out int extraArgumentsInTemplate); 357public static bool TryResolveManagedType(INamedTypeSymbol entryPointType, ITypeSymbol typeInAttribute, bool isLinearCollectionMarshalling, Action<INamedTypeSymbol, INamedTypeSymbol> onArityMismatch, [NotNullWhen(true)] out ITypeSymbol? managed) 359if (typeInAttribute is not INamedTypeSymbol namedMarshallerType) 372INamedTypeSymbol instantiatedManagedType = namedMarshallerType.ResolveUnboundConstructedTypeToConstructedType(entryPointType, out int numOriginalArgsSubstituted, out int extraArgumentsInTemplate); 400public static bool TryResolveMarshallerType(INamedTypeSymbol entryPointType, ITypeSymbol typeInAttribute, Action<INamedTypeSymbol, INamedTypeSymbol> onArityMismatch, [NotNullWhen(true)] out ITypeSymbol? marshallerType) 402if (typeInAttribute is not INamedTypeSymbol namedMarshallerType) 408INamedTypeSymbol instantiatedMarshallerType = namedMarshallerType.ResolveUnboundConstructedTypeToConstructedType(entryPointType, out int numOriginalArgsSubstituted, out int extraArgumentsInTemplate); 430public static ITypeSymbol ReplaceGenericPlaceholderInType(ITypeSymbol managedType, INamedTypeSymbol entryType, Compilation compilation) 542collectionElementType = ((INamedTypeSymbol)methods.ManagedValuesSource.ReturnType).TypeArguments[0]; 573collectionElementType = ((INamedTypeSymbol)methods.ManagedValuesDestination.ReturnType).TypeArguments[0]; 601bufferElementTypeSymbol = ((INamedTypeSymbol)methods.ToUnmanagedWithBuffer.Parameters[1].Type).TypeArguments[0]; 656collectionElementType = ((INamedTypeSymbol)methods.ManagedValuesSource.ReturnType).TypeArguments[0]; 674collectionElementType = ((INamedTypeSymbol)methods.ManagedValuesDestination.ReturnType).TypeArguments[0]; 689bufferElementTypeSymbol = ((INamedTypeSymbol)methods.FromManagedWithBuffer.Parameters[1].Type).TypeArguments[0];
MarshalAsParser.cs (1)
137public 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 (1)
20INamedTypeSymbol? 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)
328for (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) =>
src\runtime\src\libraries\Common\src\SourceGenerators\ContainingTypeUtilities.cs (1)
64INamedTypeSymbol? typeSymbol = semanticModel.GetDeclaredSymbol(current, cancellationToken);
StubEnvironment.cs (21)
26private Optional<INamedTypeSymbol?> _lcidConversionAttrType; 27public INamedTypeSymbol? LcidConversionAttrType 35_lcidConversionAttrType = new Optional<INamedTypeSymbol?>(Compilation.GetTypeByMetadataName(TypeNames.LCIDConversionAttribute)); 40private Optional<INamedTypeSymbol?> _suppressGCTransitionAttrType; 41public INamedTypeSymbol? SuppressGCTransitionAttrType 49_suppressGCTransitionAttrType = new Optional<INamedTypeSymbol?>(Compilation.GetTypeByMetadataName(TypeNames.SuppressGCTransitionAttribute)); 54private Optional<INamedTypeSymbol?> _unmanagedCallConvAttrType; 55public INamedTypeSymbol? UnmanagedCallConvAttrType 63_unmanagedCallConvAttrType = new Optional<INamedTypeSymbol?>(Compilation.GetTypeByMetadataName(TypeNames.UnmanagedCallConvAttribute)); 68private Optional<INamedTypeSymbol?> _defaultDllImportSearchPathsAttrType; 69public INamedTypeSymbol? DefaultDllImportSearchPathsAttrType 77_defaultDllImportSearchPathsAttrType = new Optional<INamedTypeSymbol?>(Compilation.GetTypeByMetadataName(TypeNames.DefaultDllImportSearchPathsAttribute)); 82private Optional<INamedTypeSymbol?> _wasmImportLinkageAttrType; 83public INamedTypeSymbol? WasmImportLinkageAttrType 91_wasmImportLinkageAttrType = new Optional<INamedTypeSymbol?>(Compilation.GetTypeByMetadataName(TypeNames.WasmImportLinkageAttribute)); 96private Optional<INamedTypeSymbol?> _stackTraceHiddenAttrType; 97public INamedTypeSymbol? StackTraceHiddenAttrType 105_stackTraceHiddenAttrType = new Optional<INamedTypeSymbol?>(Compilation.GetTypeByMetadataName(TypeNames.System_Diagnostics_StackTraceHiddenAttribute)); 110private Optional<INamedTypeSymbol?> _debuggerHiddenAttrType; 111public INamedTypeSymbol? DebuggerHiddenAttrType 119_debuggerHiddenAttrType = new Optional<INamedTypeSymbol?>(Compilation.GetTypeByMetadataName(TypeNames.System_Diagnostics_DebuggerHiddenAttribute));
TypePositionInfo.cs (2)
114INamedTypeSymbol outAttributeType = compilation.GetTypeByMetadataName(TypeNames.System_Runtime_InteropServices_OutAttribute)!; 115INamedTypeSymbol inAttributeType = compilation.GetTypeByMetadataName(TypeNames.System_Runtime_InteropServices_InAttribute)!;
TypeSymbolExtensions.cs (12)
203(INamedTypeSymbol namedType, INamedTypeSymbol namedOther) => SymbolEqualityComparer.Default.Equals(namedType.ConstructedFrom, namedOther.ConstructedFrom), 216public static INamedTypeSymbol ResolveUnboundConstructedTypeToConstructedType(this INamedTypeSymbol unboundConstructedType, INamedTypeSymbol instantiatedTemplateType, out int numOriginalTypeArgumentsSubstituted, out int extraTypeArgumentsInTemplate) 222Stack<INamedTypeSymbol> originalNestedTypes = new(); 223for (INamedTypeSymbol originalTypeDefinition = unboundConstructedType.OriginalDefinition; originalTypeDefinition is not null; originalTypeDefinition = originalTypeDefinition.ContainingType) 230INamedTypeSymbol currentType = null; 242INamedTypeSymbol originalNestedType = originalNestedTypes.Pop(); 298public static (ImmutableArray<ITypeSymbol> TypeArguments, ImmutableArray<NullableAnnotation> TypeArgumentNullableAnnotations) GetAllTypeArgumentsIncludingInContainingTypes(this INamedTypeSymbol genericType) 303for (INamedTypeSymbol instantiatedType = genericType; instantiatedType is not null; instantiatedType = instantiatedType.ContainingType) 323public 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);
Roslyn.Diagnostics.Analyzers (874)
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 razorSolutionWrapper = context.Compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.MicrosoftCodeAnalysisRazorRemoteRazorSolutionWrapper); 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\30958ef190fa2467\SyntaxGeneratorInternal.cs (1)
123public abstract SyntaxNode DeclarationPattern(INamedTypeSymbol type, string name);
src\60c94c676d650713\ITypeSymbolExtensions.CollectTypeParameterSymbolsVisitor.cs (1)
57public override void VisitNamedType(INamedTypeSymbol symbol)
src\60c94c676d650713\SymbolEquivalenceComparer.ParameterSymbolEqualityComparer.cs (2)
23Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies,
src\60c94c676d650713\SymbolEquivalenceComparer.SignatureTypeSymbolEquivalenceComparer.cs (2)
18public bool Equals(ITypeSymbol? x, ITypeSymbol? y, Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies)
src\a16f30e1d256badc\AbstractTypeInferenceService.AbstractTypeInferrer.cs (1)
102protected static IEnumerable<TypeInferenceInfo> GetCollectionElementType(INamedTypeSymbol type)
src\b310f676f7308b7f\SymbolUsageAnalysis.DataFlowAnalyzer.FlowGraphAnalysisData.cs (1)
143if (owningSymbol.ContainingSymbol is INamedTypeSymbol { IsExtension: true, ExtensionParameter: { } extensionParameter })
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\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_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\ISymbolExtensions.cs (17)
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) 574var currentType = attributeType; 605return ((INamedTypeSymbol)symbol).GetMembers().OfType<IPropertySymbol>().Where(p => p.CanBeReferencedByName); 880public 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\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.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\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, 167public 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)
16INamedTypeSymbol containingType, 29public virtual INamedTypeSymbol BaseType => null; 31public virtual ImmutableArray<INamedTypeSymbol> Interfaces 34public 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_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\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\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\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)
776[NotNullWhen(true)] INamedTypeSymbol? expressionType, 809static 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; 670if (castedType is not INamedTypeSymbol namedCastedType || 671originalConvertedType is not INamedTypeSymbol originalNamedConvertedType) 1113if (conversionOperation.Operand.Type is not INamedTypeSymbol original) 1122for (var type = original; type != null; type = type.BaseType) 1507var 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); 2888var delegateType = CSharpTypeInferenceService.Instance.InferDelegateType( 3062return ((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;
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 (363)
Helpers\KnownTypeSymbols.cs (186)
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; 154public INamedTypeSymbol? BFloat16Type => GetOrResolveType("System.Numerics.BFloat16", ref _BFloat16Type); 155private Option<INamedTypeSymbol?> _BFloat16Type; 157public INamedTypeSymbol? Decimal32Type => GetOrResolveType("System.Numerics.Decimal32", ref _Decimal32Type); 158private Option<INamedTypeSymbol?> _Decimal32Type; 160public INamedTypeSymbol? Decimal64Type => GetOrResolveType("System.Numerics.Decimal64", ref _Decimal64Type); 161private Option<INamedTypeSymbol?> _Decimal64Type; 163public INamedTypeSymbol? Decimal128Type => GetOrResolveType("System.Numerics.Decimal128", ref _Decimal128Type); 164private Option<INamedTypeSymbol?> _Decimal128Type; 172public INamedTypeSymbol? MemoryByteType => _MemoryByteType.HasValue 176private Option<INamedTypeSymbol?> _MemoryByteType; 178public INamedTypeSymbol? ReadOnlyMemoryByteType => _ReadOnlyMemoryByteType.HasValue 182private Option<INamedTypeSymbol?> _ReadOnlyMemoryByteType; 184public INamedTypeSymbol? GuidType => GetOrResolveType(typeof(Guid), ref _GuidType); 185private Option<INamedTypeSymbol?> _GuidType; 187public INamedTypeSymbol? UriType => GetOrResolveType(typeof(Uri), ref _UriType); 188private Option<INamedTypeSymbol?> _UriType; 190public INamedTypeSymbol? VersionType => GetOrResolveType(typeof(Version), ref _VersionType); 191private Option<INamedTypeSymbol?> _VersionType; 194public INamedTypeSymbol? JsonConverterType => GetOrResolveType("System.Text.Json.Serialization.JsonConverter", ref _JsonConverterType); 195private Option<INamedTypeSymbol?> _JsonConverterType; 197public INamedTypeSymbol? JsonTypeClassifierFactoryType => GetOrResolveType("System.Text.Json.Serialization.JsonTypeClassifierFactory", ref _JsonTypeClassifierFactoryType); 198private Option<INamedTypeSymbol?> _JsonTypeClassifierFactoryType; 200public INamedTypeSymbol? JsonSerializerContextType => GetOrResolveType("System.Text.Json.Serialization.JsonSerializerContext", ref _JsonSerializerContextType); 201private Option<INamedTypeSymbol?> _JsonSerializerContextType; 203public INamedTypeSymbol? JsonSerializableAttributeType => GetOrResolveType("System.Text.Json.Serialization.JsonSerializableAttribute", ref _JsonSerializableAttributeType); 204private Option<INamedTypeSymbol?> _JsonSerializableAttributeType; 206public INamedTypeSymbol? JsonDocumentType => GetOrResolveType("System.Text.Json.JsonDocument", ref _JsonDocumentType); 207private Option<INamedTypeSymbol?> _JsonDocumentType; 209public INamedTypeSymbol? JsonElementType => GetOrResolveType("System.Text.Json.JsonElement", ref _JsonElementType); 210private Option<INamedTypeSymbol?> _JsonElementType; 212public INamedTypeSymbol? StringObjectDictionaryType => _StringObjectDictionaryType.HasValue 215private Option<INamedTypeSymbol?> _StringObjectDictionaryType; 217public INamedTypeSymbol? StringJsonElementDictionaryType => _StringJsonElementDictionaryType.HasValue 222private Option<INamedTypeSymbol?> _StringJsonElementDictionaryType; 224public INamedTypeSymbol? JsonNodeType => GetOrResolveType("System.Text.Json.Nodes.JsonNode", ref _JsonNodeType); 225private Option<INamedTypeSymbol?> _JsonNodeType; 227public INamedTypeSymbol? JsonValueType => GetOrResolveType("System.Text.Json.Nodes.JsonValue", ref _JsonValueType); 228private Option<INamedTypeSymbol?> _JsonValueType; 230public INamedTypeSymbol? JsonObjectType => GetOrResolveType("System.Text.Json.Nodes.JsonObject", ref _JsonObjectType); 231private Option<INamedTypeSymbol?> _JsonObjectType; 233public INamedTypeSymbol? JsonArrayType => GetOrResolveType("System.Text.Json.Nodes.JsonArray", ref _JsonArrayType); 234private Option<INamedTypeSymbol?> _JsonArrayType; 237public INamedTypeSymbol? JsonConverterAttributeType => GetOrResolveType("System.Text.Json.Serialization.JsonConverterAttribute", ref _JsonConverterAttributeType); 238private Option<INamedTypeSymbol?> _JsonConverterAttributeType; 240public INamedTypeSymbol? JsonDerivedTypeAttributeType => GetOrResolveType("System.Text.Json.Serialization.JsonDerivedTypeAttribute", ref _JsonDerivedTypeAttributeType); 241private Option<INamedTypeSymbol?> _JsonDerivedTypeAttributeType; 243public INamedTypeSymbol? JsonIgnoreAttributeType => GetOrResolveType("System.Text.Json.Serialization.JsonIgnoreAttribute", ref _JsonIgnoreAttributeType); 244private Option<INamedTypeSymbol?> _JsonIgnoreAttributeType; 246public INamedTypeSymbol? JsonPolymorphicAttributeType => GetOrResolveType("System.Text.Json.Serialization.JsonPolymorphicAttribute", ref _JsonPolymorphicAttributeType); 247private Option<INamedTypeSymbol?> _JsonPolymorphicAttributeType; 249public INamedTypeSymbol? JsonUnionAttributeType => GetOrResolveType("System.Text.Json.Serialization.JsonUnionAttribute", ref _JsonUnionAttributeType); 250private Option<INamedTypeSymbol?> _JsonUnionAttributeType; 252public INamedTypeSymbol? JsonNumberHandlingAttributeType => GetOrResolveType("System.Text.Json.Serialization.JsonNumberHandlingAttribute", ref _JsonNumberHandlingAttributeType); 253private Option<INamedTypeSymbol?> _JsonNumberHandlingAttributeType; 255public INamedTypeSymbol? JsonNamingPolicyAttributeType => GetOrResolveType("System.Text.Json.Serialization.JsonNamingPolicyAttribute", ref _JsonNamingPolicyAttributeType); 256private Option<INamedTypeSymbol?> _JsonNamingPolicyAttributeType; 258public INamedTypeSymbol? JsonObjectCreationHandlingAttributeType => GetOrResolveType("System.Text.Json.Serialization.JsonObjectCreationHandlingAttribute", ref _JsonObjectCreationHandlingAttributeType); 259private Option<INamedTypeSymbol?> _JsonObjectCreationHandlingAttributeType; 261public INamedTypeSymbol? JsonSourceGenerationOptionsAttributeType => GetOrResolveType("System.Text.Json.Serialization.JsonSourceGenerationOptionsAttribute", ref _JsonSourceGenerationOptionsAttributeType); 262private Option<INamedTypeSymbol?> _JsonSourceGenerationOptionsAttributeType; 264public INamedTypeSymbol? JsonUnmappedMemberHandlingAttributeType => GetOrResolveType("System.Text.Json.Serialization.JsonUnmappedMemberHandlingAttribute", ref _JsonUnmappedMemberHandlingAttributeType); 265private Option<INamedTypeSymbol?> _JsonUnmappedMemberHandlingAttributeType; 267public INamedTypeSymbol? JsonConstructorAttributeType => GetOrResolveType("System.Text.Json.Serialization.JsonConstructorAttribute", ref _JsonConstructorAttributeType); 268private Option<INamedTypeSymbol?> _JsonConstructorAttributeType; 270public INamedTypeSymbol? SetsRequiredMembersAttributeType => GetOrResolveType("System.Diagnostics.CodeAnalysis.SetsRequiredMembersAttribute", ref _SetsRequiredMembersAttributeType); 271private Option<INamedTypeSymbol?> _SetsRequiredMembersAttributeType; 273public INamedTypeSymbol? UnsafeAccessorAttributeType => GetOrResolveType("System.Runtime.CompilerServices.UnsafeAccessorAttribute", ref _UnsafeAccessorAttributeType); 274private Option<INamedTypeSymbol?> _UnsafeAccessorAttributeType; 280private Option<INamedTypeSymbol?> _OverloadResolutionPriorityAttributeType; 282public INamedTypeSymbol? JsonStringEnumConverterType => GetOrResolveType("System.Text.Json.Serialization.JsonStringEnumConverter", ref _JsonStringEnumConverterType); 283private Option<INamedTypeSymbol?> _JsonStringEnumConverterType; 285public INamedTypeSymbol? JsonStringEnumConverterOfTType => GetOrResolveType("System.Text.Json.Serialization.JsonStringEnumConverter`1", ref _JsonStringEnumConverterOfTType); 286private Option<INamedTypeSymbol?> _JsonStringEnumConverterOfTType; 288public INamedTypeSymbol? IJsonOnSerializingType => GetOrResolveType(JsonConstants.IJsonOnSerializingFullName, ref _IJsonOnSerializingType); 289private Option<INamedTypeSymbol?> _IJsonOnSerializingType; 291public INamedTypeSymbol? IJsonOnSerializedType => GetOrResolveType(JsonConstants.IJsonOnSerializedFullName, ref _IJsonOnSerializedType); 292private Option<INamedTypeSymbol?> _IJsonOnSerializedType; 295public INamedTypeSymbol? DelegateType => _DelegateType ??= Compilation.GetSpecialType(SpecialType.System_Delegate); 296private INamedTypeSymbol? _DelegateType; 298public INamedTypeSymbol? MemberInfoType => GetOrResolveType(typeof(MemberInfo), ref _MemberInfoType); 299private Option<INamedTypeSymbol?> _MemberInfoType; 301public INamedTypeSymbol? SerializationInfoType => GetOrResolveType(typeof(Runtime.Serialization.SerializationInfo), ref _SerializationInfoType); 302private Option<INamedTypeSymbol?> _SerializationInfoType; 304public INamedTypeSymbol? IntPtrType => GetOrResolveType(typeof(IntPtr), ref _IntPtrType); 305private Option<INamedTypeSymbol?> _IntPtrType; 307public INamedTypeSymbol? UIntPtrType => GetOrResolveType(typeof(UIntPtr), ref _UIntPtrType); 308private Option<INamedTypeSymbol?> _UIntPtrType; 310public INamedTypeSymbol? MemoryType => GetOrResolveType(typeof(Memory<>), ref _MemoryType); 311private Option<INamedTypeSymbol?> _MemoryType; 313public INamedTypeSymbol? ReadOnlyMemoryType => GetOrResolveType(typeof(ReadOnlyMemory<>), ref _ReadOnlyMemoryType); 314private Option<INamedTypeSymbol?> _ReadOnlyMemoryType; 318if (type is not INamedTypeSymbol { IsGenericType: true, ConstructedFrom: INamedTypeSymbol genericTypeDef }) 371if (type is not INamedTypeSymbol { IsGenericType: true, ConstructedFrom: INamedTypeSymbol genericTypeDef }) 396private INamedTypeSymbol? GetOrResolveType(Type type, ref Option<INamedTypeSymbol?> field) 399private INamedTypeSymbol? GetOrResolveType(string fullyQualifiedName, ref Option<INamedTypeSymbol?> field) 406INamedTypeSymbol? type = Compilation.GetBestTypeByMetadataName(fullyQualifiedName);
Helpers\RoslynExtensions.cs (80)
46public static INamedTypeSymbol? GetBestTypeByMetadataName(this Compilation compilation, Type type) 84if (type is INamedTypeSymbol namedType) 107INamedTypeSymbol? containingType = namedType.ContainingType; 111containingType = (INamedTypeSymbol)compilation.EraseCompileTimeMetadata(containingType); 131if (type.IsAbstract || type.TypeKind is TypeKind.Interface || type is not INamedTypeSymbol namedType) 141public static IEnumerable<IMethodSymbol> GetExplicitlyDeclaredInstanceConstructors(this INamedTypeSymbol type) 144public static bool ContainsAttribute(this ISymbol memberInfo, INamedTypeSymbol? attributeType) 170for (INamedTypeSymbol? current = type as INamedTypeSymbol; current != null; current = current.BaseType) 181public static INamedTypeSymbol? GetCompatibleGenericBaseType(this ITypeSymbol type, INamedTypeSymbol? baseType) 203public static IEnumerable<INamedTypeSymbol> GetCompatibleGenericBaseTypes(this ITypeSymbol type, INamedTypeSymbol baseTypeDefinition) 209foreach (INamedTypeSymbol interfaceType in type.AllInterfaces) 223for (INamedTypeSymbol? current = type as INamedTypeSymbol; current is not null; current = current.BaseType) 232static bool IsMatchingGenericType(INamedTypeSymbol candidate, INamedTypeSymbol baseType) 244public static List<ITypeParameterSymbol> GetAllTypeParameters(this INamedTypeSymbol typeDef) 251static void AppendEnclosing(INamedTypeSymbol? enclosing, List<ITypeParameterSymbol> list) 312if (pattern is INamedTypeSymbol { IsGenericType: true } patternNamed) 314if (target is not INamedTypeSymbol { IsGenericType: true } targetNamed) 332INamedTypeSymbol? patternContaining = patternNamed.ContainingType; 333INamedTypeSymbol? targetContaining = targetNamed.ContainingType; 375if (type is INamedTypeSymbol { IsGenericType: true } named) 383INamedTypeSymbol? containingType = named.ContainingType; 384INamedTypeSymbol? substitutedContaining = null; 388substitutedContaining = (INamedTypeSymbol)compilation.SubstituteTypeParameters(containingType, substitution); 418INamedTypeSymbol nestedDef = substitutedContaining 447if (arg is not INamedTypeSymbol named || named.IsAbstract || named.IsStatic) 506if (!arg.IsValueType || arg is INamedTypeSymbol { OriginalDefinition.SpecialType: SpecialType.System_Nullable_T }) 559public static INamedTypeSymbol ConstructWithEnclosingTypeArguments(this INamedTypeSymbol typeDef, IReadOnlyList<ITypeSymbol> allArgs) 562INamedTypeSymbol? constructedContaining = ConstructEnclosing(typeDef.ContainingType, allArgs, ref offset); 573INamedTypeSymbol nestedDef = constructedContaining 581static INamedTypeSymbol? ConstructEnclosing(INamedTypeSymbol? type, IReadOnlyList<ITypeSymbol> allArgs, ref int offset) 588INamedTypeSymbol? outer = ConstructEnclosing(type.ContainingType, allArgs, ref offset); 614INamedTypeSymbol nestedDef = outer.GetTypeMembers(type.Name, paramCount).Single(t => SymbolEqualityComparer.Default.Equals(t.OriginalDefinition, type)); 620=> type is INamedTypeSymbol { IsGenericType: true } namedType && SymbolEqualityComparer.Default.Equals(namedType, namedType.ConstructedFrom); 635if (type.IsValueType && type is INamedTypeSymbol { OriginalDefinition.SpecialType: SpecialType.System_Nullable_T }) 637elementType = ((INamedTypeSymbol)type).TypeArguments[0]; 661public static INamedTypeSymbol[] GetSortedTypeHierarchy(this ITypeSymbol type) 663if (type is not INamedTypeSymbol namedType) 665return Array.Empty<INamedTypeSymbol>(); 670var list = new List<INamedTypeSymbol>(); 671for (INamedTypeSymbol? current = namedType; current != null; current = current.BaseType) 683return JsonHelpers.TraverseGraphWithTopologicalSort<INamedTypeSymbol>(namedType, static t => t.AllInterfaces, SymbolEqualityComparer.Default); 813public static bool IsClosedType(this INamedTypeSymbol type) 867public static List<ITypeSymbol>? GetClosedDerivedTypes(this INamedTypeSymbol closedType) 871INamedTypeSymbol[] enumeratedTypes = EnumerateNamedTypes(closedType.ContainingModule.GlobalNamespace).ToArray(); 877INamedTypeSymbol closedType, 878INamedTypeSymbol[] enumeratedTypes, 881INamedTypeSymbol baseDefinition = closedType.OriginalDefinition; 883foreach (INamedTypeSymbol candidate in enumeratedTypes) 890INamedTypeSymbol derivedType = candidate.IsGenericType 906static IEnumerable<INamedTypeSymbol> EnumerateNamedTypes(INamespaceSymbol namespaceSymbol) 912foreach (INamedTypeSymbol nestedType in EnumerateNamedTypes(childNamespace)) 917else if (member is INamedTypeSymbol namedType) 921foreach (INamedTypeSymbol nestedType in EnumerateNestedTypes(namedType)) 929static IEnumerable<INamedTypeSymbol> EnumerateNestedTypes(INamedTypeSymbol type) 931foreach (INamedTypeSymbol nestedType in type.GetTypeMembers()) 935foreach (INamedTypeSymbol deeperType in EnumerateNestedTypes(nestedType)) 1011INamedTypeSymbol? parent1 = s1.ContainingType; 1021for (INamedTypeSymbol? parent2 = s2.ContainingType; parent2 is not null; parent2 = parent2.ContainingType) 1033INamedTypeSymbol? parent2 = s2.ContainingType; 1045INamedTypeSymbol? parent1 = s1.ContainingType; 1063for (INamedTypeSymbol? parent2 = s2.ContainingType; parent2 is not null; parent2 = parent2.ContainingType) 1086if (s2.ContainingType is INamedTypeSymbol protectedParent2 && 1099(s2.ContainingType is INamedTypeSymbol privateProtectedParent2 && 1112s2.ContainingType is INamedTypeSymbol protectedOrInternalParent2 && 1129INamedTypeSymbol? parent1 = s1.ContainingType; 1136INamedTypeSymbol parent1OriginalDefinition = parent1.OriginalDefinition; 1137for (INamedTypeSymbol? parent2 = s2.ContainingType; parent2 is not null; parent2 = parent2.ContainingType) 1153static bool IsAccessibleViaInheritance(INamedTypeSymbol superType, INamedTypeSymbol subType) 1155INamedTypeSymbol originalSuperType = superType.OriginalDefinition; 1156for (INamedTypeSymbol? current = subType; current is not null; current = current.BaseType) 1166foreach (INamedTypeSymbol current in subType.AllInterfaces)
JsonSourceGenerator.Parser.cs (89)
61private readonly Dictionary<INamedTypeSymbol, GenericTypeMetadata> _genericTypeDefinitions = new(SymbolEqualityComparer.Default); 108INamedTypeSymbol? contextTypeSymbol = semanticModel.GetDeclaredSymbol(contextClassDeclaration, cancellationToken); 261else if (type is INamedTypeSymbol namedType) 263for (INamedTypeSymbol? current = namedType; current is not null; current = current.ContainingType) 274private static bool IsExperimentalAttribute(INamedTypeSymbol? attributeClass) 290INamedTypeSymbol contextClassSymbol, 302INamedTypeSymbol? attributeClass = attributeData.AttributeClass; 333private bool IsCanonicalPartialDeclaration(INamedTypeSymbol contextTypeSymbol, ClassDeclarationSyntax contextClassDeclaration) 369private SourceGenerationOptionsSpec ParseJsonSourceGenerationOptionsAttribute(INamedTypeSymbol contextType, AttributeData attributeData) 645private TypeGenerationSpec ParseTypeGenerationSpec(in TypeToGenerate typeToGenerate, INamedTypeSymbol contextType, SourceGenerationOptionsSpec? options) 692if (type is { IsRefLikeType: true } or INamedTypeSymbol { IsUnboundGenericType: true } or IErrorTypeSymbol) 723INamedTypeSymbol converterSymbol = _knownSymbols.JsonStringEnumConverterOfTType.Construct(type); 805if (IsUnionType(type) && type is INamedTypeSymbol namedUnionType) 835ITypeSymbol patternType = caseType is INamedTypeSymbol { OriginalDefinition.SpecialType: SpecialType.System_Nullable_T } nullableCaseType 883bool canUseGenericUnsafeAccessors = type is INamedTypeSymbol { IsGenericType: true } namedConstructorType 922&& (type is not INamedTypeSymbol { IsGenericType: true } || canUseGenericUnsafeAccessors), 939INamedTypeSymbol contextType, 977INamedTypeSymbol? namedUnionType = typeToGenerate.Type as INamedTypeSymbol; 981INamedTypeSymbol? attributeType = attributeData.AttributeClass; 1127INamedTypeSymbol? closedBaseType = null; 1129typeToGenerate.Type is INamedTypeSymbol namedBaseType && 1219if (derivedType is INamedTypeSymbol { IsUnboundGenericType: true } unboundDerived) 1333INamedTypeSymbol unboundDerived, 1341if (baseType is not INamedTypeSymbol { IsGenericType: true } constructedBase) 1347INamedTypeSymbol derivedDefinition = unboundDerived.OriginalDefinition; 1348INamedTypeSymbol baseDefinition = constructedBase.OriginalDefinition; 1354List<INamedTypeSymbol> matchingBases = derivedDefinition 1376foreach (INamedTypeSymbol mb in matchingBases) 1398foreach (INamedTypeSymbol matchingBase in matchingBases) 1501case INamedTypeSymbol { IsGenericType: true } named: 1526if (type is not INamedTypeSymbol namedType) 1540INamedTypeSymbol? attributeType = attr.AttributeClass; 1551private static bool IsUnionSyntaxDeclaration(INamedTypeSymbol type) 1570private bool HasCompatibleUnionValueProperty(INamedTypeSymbol unionType) 1572foreach (INamedTypeSymbol type in unionType.GetSortedTypeHierarchy()) 1597if (typeToGenerate.Type is not INamedTypeSymbol namedType) 1618private List<(ITypeSymbol CaseType, bool IsNullable)> GetUnionCaseTypes(INamedTypeSymbol namedType) 1639bool acceptsNull = caseType is INamedTypeSymbol { OriginalDefinition.SpecialType: SpecialType.System_Nullable_T } 1707=> type is INamedTypeSymbol { OriginalDefinition.SpecialType: SpecialType.System_Nullable_T } named 1712=> type is INamedTypeSymbol { OriginalDefinition.SpecialType: SpecialType.System_Nullable_T }; 1766private void EmitUnionAmbiguityDiagnostics(INamedTypeSymbol unionType, List<ITypeSymbol> caseTypes, Location? location) 1828if (type is INamedTypeSymbol { OriginalDefinition.SpecialType: SpecialType.System_Nullable_T } nullable) 1838if (type is INamedTypeSymbol unionType && IsUnionType(unionType)) 1946type is INamedTypeSymbol named && 1952type is INamedTypeSymbol named && 1959INamedTypeSymbol? converterAttr = _knownSymbols.JsonConverterAttributeType; 1978INamedTypeSymbol? numberHandlingAttr = _knownSymbols.JsonNumberHandlingAttributeType; 2005INamedTypeSymbol? actualTypeToConvert; 2015valueType = ((INamedTypeSymbol)type).TypeArguments[0]; 2023valueType = ((INamedTypeSymbol)type).TypeArguments[0]; 2029if (type.GetCompatibleGenericBaseType(_knownSymbols.IAsyncEnumerableOfTType) is INamedTypeSymbol iAsyncEnumerableType) 2067ImmutableArray<ITypeSymbol> genericArgs = ((INamedTypeSymbol)type).TypeArguments; 2088valueType = ((INamedTypeSymbol)type).TypeArguments[0]; 2168INamedTypeSymbol? dictionary = _knownSymbols.DictionaryOfTKeyTValueType?.Construct(keyType, valueType); 2173INamedTypeSymbol contextType, 2189foreach (INamedTypeSymbol currentType in typeToGenerate.Type.GetSortedTypeHierarchy()) 2367INamedTypeSymbol? actualDictionaryType = type.GetCompatibleGenericBaseType(_knownSymbols.IDictionaryOfTKeyTValueType); 2380INamedTypeSymbol? actualReadOnlyDictionaryType = type.GetCompatibleGenericBaseType(_knownSymbols.IReadonlyDictionaryOfTKeyTValueType); 2388INamedTypeSymbol? dictionaryType = SymbolEqualityComparer.Default.Equals(actualReadOnlyDictionaryType.TypeArguments[1], _knownSymbols.ObjectType) 2404INamedTypeSymbol contextType, 2563&& (memberInfo.ContainingType is not INamedTypeSymbol { IsGenericType: true } 2582INamedTypeSymbol contextType, 2612INamedTypeSymbol? attributeType = attributeData.AttributeClass; 2702INamedTypeSymbol contextType, 2958private TypeRef? GetConverterTypeFromJsonConverterAttribute(INamedTypeSymbol contextType, ISymbol declaringSymbol, AttributeData attributeData, ref HashSet<string>? experimentalIds, ITypeSymbol? typeToConvert = null) 2977private TypeRef? GetConverterTypeFromAttribute(INamedTypeSymbol contextType, ITypeSymbol? converterType, ISymbol declaringSymbol, AttributeData attributeData, ref HashSet<string>? experimentalIds, ITypeSymbol? typeToConvert = null) 2979INamedTypeSymbol? namedConverterType = converterType as INamedTypeSymbol; 2984typeToConvert is INamedTypeSymbol { IsGenericType: true } genericTypeToConvert) 3018private TypeRef? GetTypeClassifierFactoryTypeFromAttribute(INamedTypeSymbol contextType, ITypeSymbol? classifierType, ISymbol declaringSymbol, AttributeData attributeData, ref HashSet<string>? experimentalIds) 3020INamedTypeSymbol? namedClassifierType = classifierType as INamedTypeSymbol; 3046private static int GetTotalTypeParameterCount(INamedTypeSymbol unboundType) 3049INamedTypeSymbol? current = unboundType; 3063private static INamedTypeSymbol? ConstructNestedGenericType(INamedTypeSymbol unboundType, ImmutableArray<ITypeSymbol> typeArguments) 3066var typeChain = new List<INamedTypeSymbol>(); 3067INamedTypeSymbol? current = unboundType; 3079INamedTypeSymbol? constructedContainingType = null; 3081foreach (var type in typeChain) 3084INamedTypeSymbol originalDef = type.OriginalDefinition; 3100var nestedTypeDef = constructedContainingType.GetTypeMembers(originalDef.Name, originalDef.Arity).FirstOrDefault(); 3121var nestedType = constructedContainingType.GetTypeMembers(originalDef.Name, 0).FirstOrDefault(); 3242if (type is not INamedTypeSymbol namedType || !namedType.IsGenericType) 3273if (type is not INamedTypeSymbol namedType) 3330private bool IsSymbolAccessibleWithin(ISymbol symbol, INamedTypeSymbol within) 3401if (type is not INamedTypeSymbol { IsGenericType: true } namedType) 3425private 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\ContainingTypeUtilities.cs (1)
64INamedTypeSymbol? typeSymbol = semanticModel.GetDeclaredSymbol(current, cancellationToken);
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 (11)
System\Windows\Forms\Analyzers\Designer\DesignerTypeFacts.cs (11)
20private readonly INamedTypeSymbol? _control; 21private readonly INamedTypeSymbol? _component; 22private readonly INamedTypeSymbol? _container; 23private readonly ConcurrentDictionary<INamedTypeSymbol, bool> _designerTypes = new(SymbolEqualityComparer.Default); 46public bool IsDesignerType(INamedTypeSymbol type) 49private bool IsDesignerTypeCore(INamedTypeSymbol type) 59INamedTypeSymbol type, 104public ISymbol? GetInitializedComponent(ISimpleAssignmentOperation assignment, INamedTypeSymbol owner) 167private static bool HasDesignerDeclaration(INamedTypeSymbol type) 171private static bool HasNonDesignerDeclaration(INamedTypeSymbol type) 175private static bool HasDesignerInitializeComponent(INamedTypeSymbol type)
System.Windows.Forms.Analyzers.CSharp (8)
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\Designer\DesignerFileStructureAnalyzer.cs (1)
54context.CancellationToken) is not INamedTypeSymbol type
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 (9)
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\Designer\DesignerFileStructureAnalyzer.vb (1)
56INamedTypeSymbol)
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");