1 interface inheriting from INamedTypeSymbol
Microsoft.CodeAnalysis (1)
Symbols\IErrorTypeSymbol.cs (1)
20public interface IErrorTypeSymbol : INamedTypeSymbol
11 implementations of INamedTypeSymbol
GenerateDocumentationAndConfigFiles (1)
src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\Symbols\CodeGenerationAbstractNamedTypeSymbol.cs (1)
14internal abstract class CodeGenerationAbstractNamedTypeSymbol : CodeGenerationTypeSymbol, INamedTypeSymbol
Microsoft.CodeAnalysis.Analyzers (1)
src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\Symbols\CodeGenerationAbstractNamedTypeSymbol.cs (1)
14internal abstract class CodeGenerationAbstractNamedTypeSymbol : CodeGenerationTypeSymbol, INamedTypeSymbol
Microsoft.CodeAnalysis.BannedApiAnalyzers (1)
src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\Symbols\CodeGenerationAbstractNamedTypeSymbol.cs (1)
14internal abstract class CodeGenerationAbstractNamedTypeSymbol : CodeGenerationTypeSymbol, INamedTypeSymbol
Microsoft.CodeAnalysis.CodeStyle.Fixes (1)
src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\Symbols\CodeGenerationAbstractNamedTypeSymbol.cs (1)
14internal abstract class CodeGenerationAbstractNamedTypeSymbol : CodeGenerationTypeSymbol, INamedTypeSymbol
Microsoft.CodeAnalysis.CSharp (1)
Symbols\PublicModel\NamedTypeSymbol.cs (1)
13internal abstract class NamedTypeSymbol : TypeSymbol, INamedTypeSymbol
Microsoft.CodeAnalysis.Features (1)
MetadataAsSource\AbstractMetadataAsSourceService.WrappedNamedTypeSymbol.cs (1)
17private sealed class WrappedNamedTypeSymbol : AbstractWrappedNamespaceOrTypeSymbol, INamedTypeSymbol
Microsoft.CodeAnalysis.PerformanceSensitiveAnalyzers (1)
src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\Symbols\CodeGenerationAbstractNamedTypeSymbol.cs (1)
14internal abstract class CodeGenerationAbstractNamedTypeSymbol : CodeGenerationTypeSymbol, INamedTypeSymbol
Microsoft.CodeAnalysis.VisualBasic (1)
Symbols\NamedTypeSymbol.vb (1)
25Implements INamedTypeSymbol, INamedTypeSymbolInternal
Microsoft.CodeAnalysis.Workspaces (1)
src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\Symbols\CodeGenerationAbstractNamedTypeSymbol.cs (1)
14internal abstract class CodeGenerationAbstractNamedTypeSymbol : CodeGenerationTypeSymbol, INamedTypeSymbol
Roslyn.Diagnostics.Analyzers (1)
src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\Symbols\CodeGenerationAbstractNamedTypeSymbol.cs (1)
14internal abstract class CodeGenerationAbstractNamedTypeSymbol : CodeGenerationTypeSymbol, INamedTypeSymbol
Text.Analyzers (1)
src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\Symbols\CodeGenerationAbstractNamedTypeSymbol.cs (1)
14internal abstract class CodeGenerationAbstractNamedTypeSymbol : CodeGenerationTypeSymbol, INamedTypeSymbol
16091 references to INamedTypeSymbol
Analyzer.Utilities.UnitTests (8)
Lightup\LightupHelpersTests.cs (1)
107INamedTypeSymbol ISymbol.ContainingType => throw new NotImplementedException();
Options\SymbolNamesWithValueOptionTests.cs (7)
257var namedTypeSymbol = (INamedTypeSymbol)compilation.GetSymbolsWithName("MyClass").Single(); 292var namedTypeSymbol = (INamedTypeSymbol)compilation.GetSymbolsWithName("MyClass").Single(); 383var innerClassSymbol = (INamedTypeSymbol)compilation.GetSymbolsWithName("MyInnerClass", SymbolFilter.Type).Single(); 385var currentType = innerClassSymbol;
Aspire.Hosting.Analyzers (13)
AppHostAnalyzer.cs (3)
99var modelNameParameter = wellKnownTypes.Get(WellKnownTypeData.WellKnownType.Aspire_Hosting_ApplicationModel_IModelNameParameter); 100var resourceNameAttribute = wellKnownTypes.Get(WellKnownTypeData.WellKnownType.Aspire_Hosting_ApplicationModel_ResourceNameAttribute); 101var endpointNameAttribute = wellKnownTypes.Get(WellKnownTypeData.WellKnownType.Aspire_Hosting_ApplicationModel_EndpointNameAttribute);
Infrastructure\WellKnownTypes.cs (10)
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]; 72private INamedTypeSymbol GetAndCache(int index) 74var result = GetTypeByMetadataNameInTargetAssembly(WellKnownTypeData.WellKnownTypeNames[index]) 85private INamedTypeSymbol? GetTypeByMetadataNameInTargetAssembly(string metadataName) 100foreach (var type in types) 148foreach (var t in type.AllInterfaces)
ConfigurationSchemaGenerator (102)
ConfigSchemaEmitter.cs (1)
492var typeSymbol = _compilation.GetBestTypeByMetadataName(type.FullName);
ConfigSchemaGenerator.cs (3)
55List<INamedTypeSymbol>? types = null; 77(types ??= new()).Add((INamedTypeSymbol)args[1].Value); 108internal sealed record ConfigSchemaAttributeInfo(List<INamedTypeSymbol>? Types, List<string>? ConfigurationPaths, List<string>? ExclusionPaths, List<string>? LogCategories);
ConfigurationBindingGenerator.ForSchemaGeneration.cs (1)
45foreach (var type in _configSchemaInfo.Types)
RuntimeSource\Configuration.Binder\ConfigurationBindingGenerator.Parser.cs (37)
85INamedTypeSymbol? candidateBinderType = targetMethod.ContainingType; 205else if (type is INamedTypeSymbol) 221if (type is INamedTypeSymbol { IsGenericType: true } genericType && 222genericType.ConstructUnboundGenericType() is INamedTypeSymbol { } unboundGeneric && 241if (type is not INamedTypeSymbol namedType) 364INamedTypeSymbol type = (INamedTypeSymbol)typeParseInfo.TypeSymbol; 388INamedTypeSymbol type = (INamedTypeSymbol)typeParseInfo.TypeSymbol; 445INamedTypeSymbol type = (INamedTypeSymbol)typeParseInfo.TypeSymbol; 544type = ((INamedTypeSymbol)type).TypeArguments[0]; // extract the T from a Nullable<T> 564INamedTypeSymbol collectionType = (INamedTypeSymbol)type; 594INamedTypeSymbol typeSymbol = (INamedTypeSymbol)typeParseInfo.TypeSymbol; 663INamedTypeSymbol? current = typeSymbol; 753private bool TryGetElementType(INamedTypeSymbol type, [NotNullWhen(true)] out ITypeSymbol? elementType) 755INamedTypeSymbol? candidate = GetInterface(type, _typeSymbols.GenericIEnumerable_Unbound); 767private bool IsCandidateDictionary(INamedTypeSymbol type, [NotNullWhen(true)] out ITypeSymbol? keyType, [NotNullWhen(true)] out ITypeSymbol? elementType) 769INamedTypeSymbol? candidate = GetInterface(type, _typeSymbols.GenericIDictionary_Unbound) ?? GetInterface(type, _typeSymbols.IReadOnlyDictionary_Unbound); 791type is INamedTypeSymbol namedType && GetInterface(namedType, _typeSymbols.IEnumerable) is not null; 793private static INamedTypeSymbol? GetInterface(INamedTypeSymbol type, INamedTypeSymbol? @interface) 809candidate.ConstructUnboundGenericType() is INamedTypeSymbol unbound 816private static bool IsInterfaceMatch(INamedTypeSymbol type, INamedTypeSymbol? @interface) 825INamedTypeSymbol unbound = type.ConstructUnboundGenericType(); 834if (type is not INamedTypeSymbol { IsGenericType: true } genericType) 851private static bool HasPublicParameterLessCtor(INamedTypeSymbol type) => 854private static bool HasAddMethod(INamedTypeSymbol type, ITypeSymbol element) 856INamedTypeSymbol? current = type; 870private static bool HasAddMethod(INamedTypeSymbol type, ITypeSymbol key, ITypeSymbol element) 872INamedTypeSymbol? current = type; 887private static bool IsEnum(ITypeSymbol type) => type is INamedTypeSymbol { EnumUnderlyingType: INamedTypeSymbol { } };
RuntimeSource\Configuration.Binder\Parser\BinderInvocation.cs (1)
58ContainingType: INamedTypeSymbol
RuntimeSource\Configuration.Binder\Parser\Extensions.cs (1)
105if (type is not INamedTypeSymbol { IsGenericType: true } namedType)
RuntimeSource\Configuration.Binder\Parser\KnownTypeSymbols.cs (48)
18public INamedTypeSymbol String { get; } 19public INamedTypeSymbol? CultureInfo { get; } 20public INamedTypeSymbol? DateOnly { get; } 21public INamedTypeSymbol? DateTimeOffset { get; } 22public INamedTypeSymbol? Guid { get; } 23public INamedTypeSymbol? Half { get; } 24public INamedTypeSymbol? Int128 { get; } 25public INamedTypeSymbol? TimeOnly { get; } 26public INamedTypeSymbol? TimeSpan { get; } 27public INamedTypeSymbol? UInt128 { get; } 28public INamedTypeSymbol? Uri { get; } 29public INamedTypeSymbol? Version { get; } 31public INamedTypeSymbol? ActionOfBinderOptions { get; } 32public INamedTypeSymbol? ConfigurationBinder { get; } 33public INamedTypeSymbol? ConfigurationKeyNameAttribute { get; } 34public INamedTypeSymbol? OptionsBuilderConfigurationExtensions { get; } 35public INamedTypeSymbol? OptionsBuilderOfT { get; } 36public INamedTypeSymbol? OptionsBuilderOfT_Unbound { get; } 37public INamedTypeSymbol? OptionsConfigurationServiceCollectionExtensions { get; } 39public INamedTypeSymbol GenericIList_Unbound { get; } 40public INamedTypeSymbol? GenericICollection_Unbound { get; } 41public INamedTypeSymbol GenericICollection { get; } 42public INamedTypeSymbol GenericIEnumerable_Unbound { get; } 43public INamedTypeSymbol IEnumerable { get; } 44public INamedTypeSymbol? Dictionary { get; } 45public INamedTypeSymbol? GenericIDictionary_Unbound { get; } 46public INamedTypeSymbol? GenericIDictionary { get; } 47public INamedTypeSymbol? HashSet { get; } 48public INamedTypeSymbol? IConfiguration { get; } 49public INamedTypeSymbol? IConfigurationSection { get; } 50public INamedTypeSymbol? IDictionary { get; } 51public INamedTypeSymbol? IReadOnlyCollection_Unbound { get; } 52public INamedTypeSymbol? IReadOnlyDictionary_Unbound { get; } 53public INamedTypeSymbol? IReadOnlyList_Unbound { get; } 54public INamedTypeSymbol? IReadOnlySet_Unbound { get; } 55public INamedTypeSymbol? IServiceCollection { get; } 56public INamedTypeSymbol? ISet_Unbound { get; } 57public INamedTypeSymbol? ISet { get; } 58public INamedTypeSymbol? List { get; } 59public INamedTypeSymbol Enum { get; } 60public INamedTypeSymbol? ArgumentNullException { get; } 61public INamedTypeSymbol? SerializationInfo { get; } 62public INamedTypeSymbol? IntPtr { get; } 63public INamedTypeSymbol? UIntPtr { get; } 64public INamedTypeSymbol? MemberInfo { get; } 65public INamedTypeSymbol? ParameterInfo { get; } 66public INamedTypeSymbol? Delegate { get; } 87INamedTypeSymbol? binderOptions = compilation.GetBestTypeByMetadataName("Microsoft.Extensions.Configuration.BinderOptions");
RuntimeSource\Configuration.Binder\Parser\OptionsBuilderConfigurationExtensions.cs (1)
22@params[0].Type is not INamedTypeSymbol { IsGenericType: true } genericType ||
RuntimeSource\Configuration.Binder\Specs\Types\CollectionSpec.cs (1)
40public DictionarySpec(INamedTypeSymbol type) : base(type) { }
RuntimeSource\Configuration.Binder\Specs\Types\ObjectSpec.cs (1)
12INamedTypeSymbol type,
RuntimeSource\Roslyn\GetBestTypeByMetadataName.cs (4)
38public static INamedTypeSymbol? GetBestTypeByMetadataName(this Compilation compilation, string fullyQualifiedMetadataName) 41var type = compilation.GetTypeByMetadataName(fullyQualifiedMetadataName); 53var currentType = referencedAssembly.GetTypeByMetadataName(fullyQualifiedMetadataName); 88public static INamedTypeSymbol? GetBestTypeByMetadataName(this Compilation compilation, Type type) =>
RuntimeSource\SourceGenerators\TypeModelHelper.cs (3)
13public static List<ITypeSymbol>? GetAllTypeArgumentsInScope(this INamedTypeSymbol type) 24void TraverseContainingTypes(INamedTypeSymbol current) 26if (current.ContainingType is INamedTypeSymbol parent)
GenerateDocumentationAndConfigFiles (683)
src\Compilers\Core\Portable\SourceGeneration\GeneratedCodeUtilities.cs (1)
19ISymbol symbol, INamedTypeSymbol generatedCodeAttribute)
src\RoslynAnalyzers\Utilities\Compiler\DiagnosticHelpers.cs (1)
68if (symbol is INamedTypeSymbol namedType &&
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\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\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) 208private static bool HasDisposeCloseAsyncMethodSignature(this IMethodSymbol method, INamedTypeSymbol? taskType) 216INamedTypeSymbol? task, 217INamedTypeSymbol? valueTask, 218INamedTypeSymbol? configuredValueTaskAwaitable) 231private static bool HasOverriddenDisposeCoreAsyncMethodSignature(this IMethodSymbol method, [NotNullWhen(returnValue: true)] INamedTypeSymbol? task) 244private static bool HasVirtualOrOverrideDisposeCoreAsyncMethodSignature(this IMethodSymbol method, [NotNullWhen(returnValue: true)] INamedTypeSymbol? valueTask) 258INamedTypeSymbol? iDisposable = compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemIDisposable); 259INamedTypeSymbol? iAsyncDisposable = compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemIAsyncDisposable); 260INamedTypeSymbol? configuredAsyncDisposable = compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemRuntimeCompilerServicesConfiguredAsyncDisposable); 261INamedTypeSymbol? task = compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemThreadingTasksTask); 262INamedTypeSymbol? valueTask = compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemThreadingTasksValueTask); 263INamedTypeSymbol? configuredValueTaskAwaitable = compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemRuntimeCompilerServicesConfiguredValueTaskAwaitable); 272INamedTypeSymbol? iDisposable, 273INamedTypeSymbol? iAsyncDisposable, 274INamedTypeSymbol? configuredAsyncDisposable, 275INamedTypeSymbol? task, 276INamedTypeSymbol? valueTask, 277INamedTypeSymbol? configuredValueTaskAwaitable) 321public static bool IsSerializationConstructor([NotNullWhen(returnValue: true)] this IMethodSymbol? method, INamedTypeSymbol? serializationInfoType, INamedTypeSymbol? streamingContextType) 327public static bool IsGetObjectData([NotNullWhen(returnValue: true)] this IMethodSymbol? method, INamedTypeSymbol? serializationInfoType, INamedTypeSymbol? streamingContextType) 374public static bool IsCollectionAddMethod(this IMethodSymbol method, ImmutableHashSet<INamedTypeSymbol> iCollectionTypes) 395public static bool IsTaskFromResultMethod(this IMethodSymbol method, [NotNullWhen(returnValue: true)] INamedTypeSymbol? taskType) 404public static bool IsTaskConfigureAwaitMethod(this IMethodSymbol method, [NotNullWhen(returnValue: true)] INamedTypeSymbol? genericTaskType) 416public static bool IsAsyncDisposableConfigureAwaitMethod(this IMethodSymbol method, [NotNullWhen(returnValue: true)] INamedTypeSymbol? asyncDisposableType, [NotNullWhen(returnValue: true)] INamedTypeSymbol? taskAsyncEnumerableExtensions) 493public static bool IsLockMethod(this IMethodSymbol method, [NotNullWhen(returnValue: true)] INamedTypeSymbol? systemThreadingMonitor) 503public static bool IsInterlockedExchangeMethod(this IMethodSymbol method, INamedTypeSymbol? systemThreadingInterlocked) 515public static bool IsInterlockedCompareExchangeMethod(this IMethodSymbol method, INamedTypeSymbol? systemThreadingInterlocked) 546public static bool IsBenchmarkOrXUnitTestMethod(this IMethodSymbol method, ConcurrentDictionary<INamedTypeSymbol, bool> knownTestAttributes, INamedTypeSymbol? benchmarkAttribute, INamedTypeSymbol? xunitFactAttribute) 571var typeSymbol = methodSymbol.ContainingType;
src\RoslynAnalyzers\Utilities\Compiler\Extensions\INamedTypeSymbolExtensions.cs (9)
19public static bool IsFileLocal(this INamedTypeSymbol symbol) => symbol.IsFileLocal; 43public static bool DerivesFromOrImplementsAnyConstructionOf(this INamedTypeSymbol type, INamedTypeSymbol parentType) 50for (INamedTypeSymbol? baseType = type.OriginalDefinition; 68public static bool OverridesEquals(this INamedTypeSymbol symbol) 74public static bool IsBenchmarkOrXUnitTestAttribute(this INamedTypeSymbol attributeClass, ConcurrentDictionary<INamedTypeSymbol, bool> knownTestAttributes, INamedTypeSymbol? benchmarkAttribute, INamedTypeSymbol? xunitFactAttribute)
src\RoslynAnalyzers\Utilities\Compiler\Extensions\IPropertySymbolExtensions.cs (1)
36var typeSymbol = propertySymbol.ContainingType;
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\RoslynAnalyzers\Utilities\Compiler\Extensions\ITypeSymbolExtensions.cs (14)
116INamedTypeSymbol? iDisposable, 117INamedTypeSymbol? iAsyncDisposable, 118INamedTypeSymbol? configuredAsyncDisposable) 140static bool IsInterfaceOrImplementsInterface(ITypeSymbol type, INamedTypeSymbol? interfaceType) 150public static IEnumerable<AttributeData> GetApplicableAttributes(this INamedTypeSymbol type, INamedTypeSymbol? attributeUsageAttribute) 182static bool IsInheritedAttribute(AttributeData attributeData, INamedTypeSymbol attributeUsageAttribute) 184for (var currentAttributeClass = attributeData.AttributeClass; 217public static IEnumerable<AttributeData> GetApplicableExportAttributes(this INamedTypeSymbol? type, INamedTypeSymbol? exportAttributeV1, INamedTypeSymbol? exportAttributeV2, INamedTypeSymbol? inheritedExportAttribute) 265=> typeSymbol.IsNullableValueType() && ((INamedTypeSymbol)typeSymbol).TypeArguments[0].SpecialType == SpecialType.System_Boolean; 268=> (typeSymbol as INamedTypeSymbol)?.TupleUnderlyingType ?? typeSymbol;
src\RoslynAnalyzers\Utilities\Compiler\Options\AnalyzerOptionsExtensions.cs (9)
281if (symbol is INamedTypeSymbol namedType && !excludedTypeNamesWithDerivedTypes.IsEmpty) 283foreach (var type in namedType.GetBaseTypesAndThis()) 379public static SymbolNamesWithValueOption<INamedTypeSymbol?> GetAdditionalRequiredGenericInterfaces( 386private static SymbolNamesWithValueOption<INamedTypeSymbol?> GetAdditionalRequiredGenericInterfaces( 394static SymbolNamesWithValueOption<INamedTypeSymbol?>.NameParts GetParts(string name, Compilation compilation) 401return new SymbolNamesWithValueOption<INamedTypeSymbol?>.NameParts(name, null); 413matchingSymbols[0] is not INamedTypeSymbol namedType || 418return new SymbolNamesWithValueOption<INamedTypeSymbol?>.NameParts(split[0], null); 421return new SymbolNamesWithValueOption<INamedTypeSymbol?>.NameParts(split[0], namedType);
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\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\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Extensions\OperationExtensions.cs (2)
405var notImplementedExceptionType = compilation.NotImplementedExceptionType(); 454static bool IsThrowNotImplementedOperation(INamedTypeSymbol notImplementedExceptionType, IOperation? operation)
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); 177var enumerableType = semanticModel.Compilation.IEnumerableOfTType();
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\NamingStyles\NamingStyleRules.cs (3)
65var containingType = symbol.ContainingType; 87var containingType = symbol.ContainingType; 90foreach (var implementedInterface in implementedInterfaces)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Services\SemanticFacts\ISemanticFacts.cs (4)
67bool LastEnumValueHasInitializer(INamedTypeSymbol namedTypeSymbol); 88bool IsPartial(INamedTypeSymbol typeSymbol, CancellationToken cancellationToken); 107bool IsInExpressionTree(SemanticModel semanticModel, SyntaxNode node, [NotNullWhen(true)] INamedTypeSymbol? expressionType, CancellationToken cancellationToken); 122bool TryGetPrimaryConstructor(INamedTypeSymbol typeSymbol, [NotNullWhen(true)] out IMethodSymbol? primaryConstructor);
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\SymbolKey\SymbolKey.AnonymousFunctionOrDelegateSymbolKey.cs (1)
65var anonymousDelegate = methodSymbol.AssociatedAnonymousDelegate;
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\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\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\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\SymbolKey\SymbolKey.FunctionPointerTypeSymbolKey.cs (2)
37var callingConventionModifiers = ImmutableArray<INamedTypeSymbol>.Empty; 40using var modifiersBuilder = reader.ReadSymbolKeyArray<IFunctionPointerTypeSymbol, INamedTypeSymbol>(
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\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\SymbolKey\SymbolKey.ParameterSymbolKey.cs (1)
64var delegateInvoke = (eventSymbol.Type as INamedTypeSymbol)?.DelegateInvokeMethod;
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\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\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Utilities\AbstractSpeculationAnalyzer.cs (5)
417var type = methodSymbol.ContainingType; 418var newType = newMethodSymbol.ContainingType; 491private static bool EnumTypesAreCompatible(INamedTypeSymbol type1, INamedTypeSymbol type2) 992var newSymbolContainingType = newSymbol.ContainingType;
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Utilities\EnumValueUtilities.cs (1)
21public static object GetNextEnumValue(INamedTypeSymbol enumType)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Compilation\CompilationExtensions.cs (78)
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? EventArgsType(this Compilation compilation) 129public static INamedTypeSymbol? NotImplementedExceptionType(this Compilation compilation) 132public static INamedTypeSymbol? EqualityComparerOfTType(this Compilation compilation) 135public static INamedTypeSymbol? ActionType(this Compilation compilation) 138public static INamedTypeSymbol? ExpressionOfTType(this Compilation compilation) 141public static INamedTypeSymbol? EditorBrowsableAttributeType(this Compilation compilation) 144public static INamedTypeSymbol? EditorBrowsableStateType(this Compilation compilation) 147public static INamedTypeSymbol? TaskType(this Compilation compilation) 150public static INamedTypeSymbol? TaskOfTType(this Compilation compilation) 153public static INamedTypeSymbol? ValueTaskType(this Compilation compilation) 156public static INamedTypeSymbol? ValueTaskOfTType(this Compilation compilation) 159public static INamedTypeSymbol? IEnumerableType(this Compilation compilation) 162public static INamedTypeSymbol? IEnumerableOfTType(this Compilation compilation) 165public static INamedTypeSymbol? IEnumeratorOfTType(this Compilation compilation) 168public static INamedTypeSymbol? IListOfTType(this Compilation compilation) 171public static INamedTypeSymbol? IReadOnlyListOfTType(this Compilation compilation) 174public static INamedTypeSymbol? ISetOfTType(this Compilation compilation) 177public static INamedTypeSymbol? IReadOnlySetOfTType(this Compilation compilation) 180public static INamedTypeSymbol? IAsyncEnumerableOfTType(this Compilation compilation) 183public static INamedTypeSymbol? IAsyncEnumeratorOfTType(this Compilation compilation) 186public static INamedTypeSymbol? ImmutableArrayOfTType(this Compilation compilation) 189public static INamedTypeSymbol? SerializableAttributeType(this Compilation compilation) 192public static INamedTypeSymbol? CoClassType(this Compilation compilation) 195public static INamedTypeSymbol? ComAliasNameAttributeType(this Compilation compilation) 198public static INamedTypeSymbol? SuppressMessageAttributeType(this Compilation compilation) 201public static INamedTypeSymbol? TupleElementNamesAttributeType(this Compilation compilation) 204public static INamedTypeSymbol? NativeIntegerAttributeType(this Compilation compilation) 207public static INamedTypeSymbol? DynamicAttributeType(this Compilation compilation) 210public static INamedTypeSymbol? LazyOfTType(this Compilation compilation) 213public static INamedTypeSymbol? ISerializableType(this Compilation compilation) 216public static INamedTypeSymbol? SerializationInfoType(this Compilation compilation) 219public static INamedTypeSymbol? StreamingContextType(this Compilation compilation) 222public static INamedTypeSymbol? OnDeserializingAttribute(this Compilation compilation) 225public static INamedTypeSymbol? OnDeserializedAttribute(this Compilation compilation) 228public static INamedTypeSymbol? OnSerializingAttribute(this Compilation compilation) 231public static INamedTypeSymbol? OnSerializedAttribute(this Compilation compilation) 234public static INamedTypeSymbol? ComRegisterFunctionAttribute(this Compilation compilation) 237public static INamedTypeSymbol? ComUnregisterFunctionAttribute(this Compilation compilation) 240public static INamedTypeSymbol? ConditionalAttribute(this Compilation compilation) 243public static INamedTypeSymbol? ObsoleteAttribute(this Compilation compilation) 246public static INamedTypeSymbol? SystemCompositionImportingConstructorAttribute(this Compilation compilation) 249public static INamedTypeSymbol? SystemComponentModelCompositionImportingConstructorAttribute(this Compilation compilation) 252public static INamedTypeSymbol? SystemIDisposableType(this Compilation compilation) 255public static INamedTypeSymbol? NotNullAttribute(this Compilation compilation) 258public static INamedTypeSymbol? MaybeNullAttribute(this Compilation compilation) 261public static INamedTypeSymbol? MaybeNullWhenAttribute(this Compilation compilation) 264public static INamedTypeSymbol? AllowNullAttribute(this Compilation compilation) 267public static INamedTypeSymbol? DisallowNullAttribute(this Compilation compilation) 270public static INamedTypeSymbol? DataMemberAttribute(this Compilation compilation) 273public static INamedTypeSymbol? DataContractAttribute(this Compilation compilation) 276public static INamedTypeSymbol? AsyncMethodBuilderAttribute(this Compilation compilation) 279public static INamedTypeSymbol? CancellationTokenType(this Compilation compilation) 282public static INamedTypeSymbol? ValueTupleType(this Compilation compilation, int arity) 285public static INamedTypeSymbol? ListOfTType(this Compilation compilation) 288public static INamedTypeSymbol? ReadOnlySpanOfTType(this Compilation compilation) 291public static INamedTypeSymbol? SpanOfTType(this Compilation compilation) 294public static INamedTypeSymbol? InterpolatedStringHandlerAttributeType(this Compilation compilation) 322public static INamedTypeSymbol? GetBestTypeByMetadataName(this Compilation compilation, string fullyQualifiedMetadataName) 324INamedTypeSymbol? type = null; 326foreach (var currentType in compilation.GetTypesByMetadataName(fullyQualifiedMetadataName)) 361foreach (var candidateTopLevelType in compilation.SourceModule.GlobalNamespace.GetTypeMembers(WellKnownMemberNames.TopLevelStatementsEntryPointTypeName, arity: 0)) 373public static INamedTypeSymbol? TryGetCallingConventionSymbol(this Compilation compilation, string callingConvention)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\IMethodSymbolExtensions.cs (4)
44public static bool HasEventHandlerSignature(this IMethodSymbol method, [NotNullWhen(returnValue: true)] INamedTypeSymbol? eventArgsType) 103public static bool IsEntryPoint(this IMethodSymbol methodSymbol, INamedTypeSymbol? taskType, INamedTypeSymbol? genericTaskType) 119if (method.ReturnType is not INamedTypeSymbol { Arity: 0 })
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\INamedTypeSymbolExtensions.cs (73)
23public static IEnumerable<INamedTypeSymbol> GetBaseTypesAndThis(this INamedTypeSymbol? namedType) 25var current = namedType; 33public static ImmutableArray<ITypeParameterSymbol> GetAllTypeParameters(this INamedTypeSymbol? symbol) 39public static ImmutableArray<ITypeSymbol> GetAllTypeArguments(this INamedTypeSymbol? symbol) 45private static Stack<INamedTypeSymbol> GetContainmentStack(INamedTypeSymbol? symbol) 47var stack = new Stack<INamedTypeSymbol>(); 48for (var current = symbol; current != null; current = current.ContainingType) 56public static bool IsContainedWithin([NotNullWhen(returnValue: true)] this INamedTypeSymbol? symbol, INamedTypeSymbol outer) 59for (var current = symbol; current != null; current = current.ContainingType) 70public static ISymbol? FindImplementationForAbstractMember(this INamedTypeSymbol? type, ISymbol symbol) 81private static bool ImplementationExists(INamedTypeSymbol classOrStructType, ISymbol member) 85this INamedTypeSymbol classOrStructType, 87Func<INamedTypeSymbol, ISymbol, bool> isValidImplementation, 117private static bool IsInterfacePropertyImplemented(INamedTypeSymbol classOrStructType, IPropertySymbol propertySymbol) 125static bool IsAccessorImplemented(IMethodSymbol? accessor, INamedTypeSymbol classOrStructType) 131private static bool IsAbstractPropertyImplemented(INamedTypeSymbol classOrStructType, IPropertySymbol propertySymbol) 154this INamedTypeSymbol classOrStructType, 156Func<INamedTypeSymbol, ISymbol, bool> isValid, 179public static ImmutableArray<(INamedTypeSymbol type, ImmutableArray<ISymbol> members)> GetAllUnimplementedMembers( 180this INamedTypeSymbol classOrStructType, 181IEnumerable<INamedTypeSymbol> interfaces, 197static ImmutableArray<ISymbol> GetImplicitlyImplementableMembers(INamedTypeSymbol type, ISymbol within) 249public static ImmutableArray<(INamedTypeSymbol type, ImmutableArray<ISymbol> members)> GetAllUnimplementedMembersInThis( 250this INamedTypeSymbol classOrStructType, 251IEnumerable<INamedTypeSymbol> interfacesOrAbstractClasses, 267public static ImmutableArray<(INamedTypeSymbol type, ImmutableArray<ISymbol> members)> GetAllUnimplementedMembersInThis( 268this INamedTypeSymbol classOrStructType, 269IEnumerable<INamedTypeSymbol> interfacesOrAbstractClasses, 270Func<INamedTypeSymbol, ISymbol, ImmutableArray<ISymbol>> interfaceMemberGetter, 286public static ImmutableArray<(INamedTypeSymbol type, ImmutableArray<ISymbol> members)> GetAllUnimplementedExplicitMembers( 287this INamedTypeSymbol classOrStructType, 288IEnumerable<INamedTypeSymbol> interfaces, 300private static ImmutableArray<ISymbol> GetExplicitlyImplementableMembers(INamedTypeSymbol type, ISymbol within) 327private static ImmutableArray<(INamedTypeSymbol type, ImmutableArray<ISymbol> members)> GetAllUnimplementedMembers( 328this INamedTypeSymbol classOrStructType, 329IEnumerable<INamedTypeSymbol> interfacesOrAbstractClasses, 330Func<INamedTypeSymbol, ISymbol, Func<INamedTypeSymbol, ISymbol, bool>, CancellationToken, bool> isImplemented, 331Func<INamedTypeSymbol, ISymbol, bool> isValidImplementation, 332Func<INamedTypeSymbol, ISymbol, ImmutableArray<ISymbol>> interfaceMemberGetter, 361private static ImmutableArray<INamedTypeSymbol> GetTypesToImplement( 362INamedTypeSymbol classOrStructType, 363IEnumerable<INamedTypeSymbol> interfacesOrAbstractClasses, 372private static ImmutableArray<INamedTypeSymbol> GetAbstractClassesToImplement( 373IEnumerable<INamedTypeSymbol> abstractClasses) 378private static ImmutableArray<INamedTypeSymbol> GetInterfacesToImplement( 379INamedTypeSymbol classOrStructType, 380IEnumerable<INamedTypeSymbol> interfaces, 387var interfacesToImplement = new List<INamedTypeSymbol>( 392var baseType = classOrStructType.BaseType; 403this INamedTypeSymbol classOrStructType, 404INamedTypeSymbol interfaceType, 405Func<INamedTypeSymbol, ISymbol, Func<INamedTypeSymbol, ISymbol, bool>, CancellationToken, bool> isImplemented, 406Func<INamedTypeSymbol, ISymbol, bool> isValidImplementation, 407Func<INamedTypeSymbol, ISymbol, ImmutableArray<ISymbol>> interfaceMemberGetter, 449this INamedTypeSymbol attributeSymbol, 455var systemAttributeType = compilation.AttributeType(); 457foreach (var type in attributeSymbol.GetBaseTypesAndThis()) 517private static ImmutableArray<ISymbol> GetMembers(INamedTypeSymbol type, ISymbol within) 531this INamedTypeSymbol containingType, CancellationToken cancellationToken) 548foreach (var type in baseTypes) 569Dictionary<ISymbol, int> result, INamedTypeSymbol containingType, CancellationToken cancellationToken) 590Dictionary<ISymbol, int> result, INamedTypeSymbol containingType, CancellationToken cancellationToken) 612Dictionary<ISymbol, int> result, INamedTypeSymbol containingType, 613INamedTypeSymbol type, ref int index, CancellationToken cancellationToken) 626private static bool IsOverridable(ISymbol member, INamedTypeSymbol containingType) 669public static INamedTypeSymbol TryConstruct(this INamedTypeSymbol type, ITypeSymbol[] typeArguments) 672public static bool IsCollectionBuilderAttribute([NotNullWhen(true)] this INamedTypeSymbol? type)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\INamespaceOrTypeSymbolExtensions.cs (3)
90public static IEnumerable<INamedTypeSymbol> GetAllTypes( 106var namedType = (INamedTypeSymbol)current;
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\ISymbolExtensions.cs (15)
98foreach (var baseType in symbol.ContainingType.GetBaseTypes()) 107bool TryFindLooseMatch(ISymbol symbol, INamedTypeSymbol baseType, [NotNullWhen(true)] out ISymbol? looseMatch) 156foreach (var iface in symbol.ContainingType.AllInterfaces) 214public static INamedTypeSymbol? GetContainingTypeOrThis(this ISymbol symbol) 216if (symbol is INamedTypeSymbol namedType) 309=> symbol is INamedTypeSymbol { IsAnonymousType: true }; 352SymbolKind.NamedType => ((INamedTypeSymbol)symbol).Arity, 433INamedTypeSymbol nt => nt.TypeParameters, 454INamedTypeSymbol nt => nt.TypeArguments, 463var containingType = symbol.ContainingType; 504var delegateType = compilation.GetTypeByMetadataName(method.ReturnsVoid 533=> symbol is INamedTypeSymbol { IsStatic: true }; 545foreach (var type in namespaceOrType.GetAllTypes(cancellationToken)) 559return ((INamedTypeSymbol)symbol).GetMembers().OfType<IPropertySymbol>().Where(p => p.CanBeReferencedByName); 809public static bool HasAttribute([NotNullWhen(true)] this ISymbol? symbol, [NotNullWhen(true)] INamedTypeSymbol? attributeClass)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\ISymbolExtensions.RequiresUnsafeModifierVisitor.cs (1)
56public override bool VisitNamedType(INamedTypeSymbol symbol)
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\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\ITypeGenerator.cs (1)
13ITypeSymbol Construct(INamedTypeSymbol namedType, ITypeSymbol[] typeArguments);
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\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\ITypeSymbolExtensions.AnonymousTypeRemover.cs (1)
42public override ITypeSymbol VisitNamedType(INamedTypeSymbol symbol)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\ITypeSymbolExtensions.CollectTypeParameterSymbolsVisitor.cs (1)
57public override void VisitNamedType(INamedTypeSymbol symbol)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\ITypeSymbolExtensions.CompilationTypeGenerator.cs (1)
19public ITypeSymbol Construct(INamedTypeSymbol namedType, ITypeSymbol[] typeArguments)
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) 315INamedTypeSymbol n => ContainsAnonymousType(n), 320private static bool ContainsAnonymousType(INamedTypeSymbol type) 410public static INamedTypeSymbol? GetDelegateType(this ITypeSymbol? typeSymbol, Compilation compilation) 414var expressionOfT = compilation.ExpressionOfTType(); 417var typeArgument = ((INamedTypeSymbol)typeSymbol).TypeArguments[0]; 418return typeArgument as INamedTypeSymbol; 423return typeSymbol as INamedTypeSymbol; 576var n2 = t2 as INamedTypeSymbol; 578if (t1 is not INamedTypeSymbol n1) 628public static bool IsEnumType([NotNullWhen(true)] this ITypeSymbol? type, [NotNullWhen(true)] out INamedTypeSymbol? enumType) 632enumType = (INamedTypeSymbol)type; 724if (type is not INamedTypeSymbol 777=> type is INamedTypeSymbol 785=> symbol is INamedTypeSymbol 793=> type is INamedTypeSymbol namedType &&
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\ITypeSymbolExtensions.MinimalAccessibilityVisitor.cs (2)
42foreach (var callingConventionType in symbol.Signature.UnmanagedCallingConventionTypes) 50public override Accessibility VisitNamedType(INamedTypeSymbol symbol)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\ITypeSymbolExtensions.SubstituteTypesVisitor.cs (1)
58public override ITypeSymbol VisitNamedType(INamedTypeSymbol symbol)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\ITypeSymbolExtensions.UnavailableTypeParameterRemover.cs (1)
43public override ITypeSymbol VisitNamedType(INamedTypeSymbol symbol)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\ITypeSymbolExtensions.UnnamedErrorTypeRemover.cs (1)
42public override ITypeSymbol VisitNamedType(INamedTypeSymbol symbol)
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\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\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\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\SymbolEquivalenceComparer.ParameterSymbolEqualityComparer.cs (2)
23Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies,
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\SymbolEquivalenceComparer.SignatureTypeSymbolEquivalenceComparer.cs (2)
18public bool Equals(ITypeSymbol? x, ITypeSymbol? y, Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies)
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\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\AbstractFlagsEnumGenerator.cs (10)
15protected abstract SyntaxNode CreateExplicitlyCastedLiteralValue(INamedTypeSymbol enumType, SpecialType underlyingSpecialType, object constantValue); 16protected abstract bool IsValidName(INamedTypeSymbol enumType, string name); 20public SyntaxNode CreateEnumConstantValue(INamedTypeSymbol enumType, object constantValue) 36private static bool IsFlagsEnum(INamedTypeSymbol typeSymbol) 48var type = ctor.ContainingType; 61private SyntaxNode CreateFlagsEnumConstantValue(INamedTypeSymbol enumType, object constantValue) 72INamedTypeSymbol enumType, 138IFieldSymbol field, INamedTypeSymbol enumType, SpecialType underlyingSpecialType) 168INamedTypeSymbol enumType, 185private SyntaxNode CreateNonFlagsEnumConstantValue(INamedTypeSymbol enumType, object constantValue)
src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\CodeGenerationHelpers.cs (2)
25var exceptionType = compilation.GetTypeByMetadataName(exceptionMetadataName); 150public static IEnumerable<ISymbol> GetMembers(INamedTypeSymbol namedType)
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\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\CodeGenerator.cs (8)
29public static Task<Document> AddEventDeclarationAsync(CodeGenerationSolutionContext context, INamedTypeSymbol destination, IEventSymbol @event, CancellationToken cancellationToken) 36public static Task<Document> AddFieldDeclarationAsync(CodeGenerationSolutionContext context, INamedTypeSymbol destination, IFieldSymbol field, CancellationToken cancellationToken) 43public static Task<Document> AddMethodDeclarationAsync(CodeGenerationSolutionContext context, INamedTypeSymbol destination, IMethodSymbol method, CancellationToken cancellationToken) 50public static Task<Document> AddPropertyDeclarationAsync(CodeGenerationSolutionContext context, INamedTypeSymbol destination, IPropertySymbol property, CancellationToken cancellationToken) 57public static Task<Document> AddNamedTypeDeclarationAsync(CodeGenerationSolutionContext context, INamedTypeSymbol destination, INamedTypeSymbol namedType, CancellationToken cancellationToken) 64public static Task<Document> AddNamedTypeDeclarationAsync(CodeGenerationSolutionContext context, INamespaceSymbol destination, INamedTypeSymbol namedType, CancellationToken cancellationToken) 85public static Task<Document> AddMemberDeclarationsAsync(CodeGenerationSolutionContext context, INamedTypeSymbol destination, IEnumerable<ISymbol> members, CancellationToken cancellationToken)
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\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\INamedTypeSymbolExtensions.cs (2)
11public static CodeGenerationAbstractNamedTypeSymbol ToCodeGenerationSymbol(this INamedTypeSymbol namedType) 32namedType.GetMembers().WhereAsArray(s => s is not INamedTypeSymbol),
src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\Symbols\CodeGenerationAbstractMethodSymbol.cs (3)
23INamedTypeSymbol containingType, 98public INamedTypeSymbol AssociatedAnonymousDelegate => null; 108public ImmutableArray<INamedTypeSymbol> UnmanagedCallingConventionTypes => [];
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\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\Symbols\CodeGenerationAttributeData.cs (2)
13INamedTypeSymbol attributeClass, 20protected override INamedTypeSymbol CommonAttributeClass => attributeClass;
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\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\Symbols\CodeGenerationConstructorSymbol.cs (1)
11INamedTypeSymbol? containingType,
src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\Symbols\CodeGenerationConversionSymbol.cs (1)
11INamedTypeSymbol? containingType,
src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\Symbols\CodeGenerationDestructorSymbol.cs (1)
10INamedTypeSymbol? containingType,
src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\Symbols\CodeGenerationEventSymbol.cs (1)
12INamedTypeSymbol? containingType,
src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\Symbols\CodeGenerationFieldSymbol.cs (1)
13INamedTypeSymbol containingType,
src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\Symbols\CodeGenerationMethodSymbol.cs (1)
23INamedTypeSymbol containingType,
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\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\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\Symbols\CodeGenerationNamespaceSymbol.cs (1)
57public static INamedTypeSymbol ImplicitType => null;
src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\Symbols\CodeGenerationOperatorSymbol.cs (1)
11INamedTypeSymbol? containingType,
src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\Symbols\CodeGenerationParameterSymbol.cs (1)
13INamedTypeSymbol containingType,
src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\Symbols\CodeGenerationPropertySymbol.cs (1)
13INamedTypeSymbol containingType,
src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\Symbols\CodeGenerationSymbol.cs (3)
27public INamedTypeSymbol ContainingType { get; protected set; } 31INamedTypeSymbol containingType, 162public ImmutableArray<AttributeData> GetAttributes(INamedTypeSymbol attributeType)
src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\Symbols\CodeGenerationTypeParameterSymbol.cs (3)
12INamedTypeSymbol containingType, 80public INamedTypeSymbol DeclaringType 84return this.ContainingSymbol as INamedTypeSymbol;
src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\Symbols\CodeGenerationTypeSymbol.cs (4)
14INamedTypeSymbol containingType, 27public virtual INamedTypeSymbol BaseType => null; 29public virtual ImmutableArray<INamedTypeSymbol> Interfaces 32public ImmutableArray<INamedTypeSymbol> AllInterfaces
src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\TypeGenerator.cs (1)
21public ITypeSymbol Construct(INamedTypeSymbol namedType, ITypeSymbol[] typeArguments)
src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\Editing\ImportAdderService.cs (2)
202foreach (var namedType in SymbolAnnotation.GetSymbols(annotation, model.Compilation).OfType<INamedTypeSymbol>())
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\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\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\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\Extensions\KnownTypes.cs (8)
9public readonly INamedTypeSymbol? TaskType = compilation.TaskType(); 10public readonly INamedTypeSymbol? TaskOfTType = compilation.TaskOfTType(); 11public readonly INamedTypeSymbol? ValueTaskType = compilation.ValueTaskType(); 12public readonly INamedTypeSymbol? ValueTaskOfTType = compilation.ValueTaskOfTType(); 14public readonly INamedTypeSymbol? IEnumerableOfTType = compilation.IEnumerableOfTType(); 15public readonly INamedTypeSymbol? IEnumeratorOfTType = compilation.IEnumeratorOfTType(); 17public readonly INamedTypeSymbol? IAsyncEnumerableOfTType = compilation.IAsyncEnumerableOfTType(); 18public readonly INamedTypeSymbol? IAsyncEnumeratorOfTType = compilation.IAsyncEnumeratorOfTType();
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\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\Extensions\SyntaxGeneratorExtensions_CreateEqualsMethod.cs (11)
32INamedTypeSymbol containingType, 63INamedTypeSymbol containingType, 65INamedTypeSymbol constructedEquatableType, 109INamedTypeSymbol containingType, 218var iequatableType = compilation.GetTypeByMetadataName(typeof(IEquatable<>).FullName); 271INamedTypeSymbol containingType, 382private static bool ImplementsIEquatable(ITypeSymbol memberType, INamedTypeSymbol iequatableType) 388var constructed = iequatableType.Construct(memberType); 433private static bool HasExistingBaseEqualsMethod(INamedTypeSymbol containingType) 456INamedTypeSymbol? containingType, 490INamedTypeSymbol? containingType,
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\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\Extensions\SyntaxGeneratorExtensions_Negate.cs (1)
446var containingType = property.ContainingType;
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\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\LanguageServices\SemanticsFactsService\AbstractSemanticFactsService.cs (7)
127var valueTaskType = compilation.ValueTaskType(); 163(INamedTypeSymbol?, IMethodSymbol?) GetIDisposableInterfaceAndDisposeMethod(string typeName, string methodName) 165var 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\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\LanguageServices\SyntaxGeneratorInternalExtensions\SyntaxGeneratorInternal.cs (1)
117public abstract SyntaxNode DeclarationPattern(INamedTypeSymbol type, string name);
src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\LanguageServices\TypeInferenceService\AbstractTypeInferenceService.AbstractTypeInferrer.cs (1)
102protected static IEnumerable<TypeInferenceInfo> GetCollectionElementType(INamedTypeSymbol type)
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 (63)
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\LocalDataFlowVisitor.cs (1)
179var assemblyType = Compilation.GetTypeByMetadataName("Microsoft.CSharp.RuntimeBinder.Binder");
DynamicallyAccessedMembersAnalyzer.cs (7)
124var type = (INamedTypeSymbol)context.Symbol; 133if (type.BaseType is INamedTypeSymbol baseType) 136foreach (var interfaceType in type.Interfaces) 149VerifyDamOnInterfaceAndImplementationMethodsMatch(context, (INamedTypeSymbol)context.Symbol); 286private static void VerifyDamOnInterfaceAndImplementationMethodsMatch(SymbolAnalysisContext context, INamedTypeSymbol type) 293INamedTypeSymbol implementationType = implementationMethod.ContainingType;
DynamicallyAccessedMembersTypeHierarchy.cs (3)
15public static void ApplyDynamicallyAccessedMembersToTypeHierarchy(Location typeLocation, INamedTypeSymbol type, Action<Diagnostic> reportDiagnostic) 23if (type.BaseType is INamedTypeSymbol baseType) 39foreach (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 (6)
72var typeSymbol = (INamedTypeSymbol)symbolAnalysisContext.Symbol; 87case INamedTypeSymbol typeSymbol: 106typeArg is not INamedTypeSymbol { InstanceConstructors: { } typeArgCtors }) 143INamedTypeSymbol type) 147var implementationType = memberpair.ImplementationMember switch
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)
155var runtimeFeaturesType = compilation.GetTypeByMetadataName("System.Runtime.CompilerServices.RuntimeFeature");
RequiresUnreferencedCodeAnalyzer.cs (3)
36if (symbolAnalysisContext.Symbol is INamedTypeSymbol typeSymbol && !typeSymbol.HasAttribute(RequiresUnreferencedCodeAttribute) 37&& typeSymbol.BaseType is INamedTypeSymbol baseType 78var runtimeFeaturesType = compilation.GetTypeByMetadataName("ILLink.RoslynAnalyzer.TestFeatures");
TrimAnalysis\FlowAnnotations.cs (4)
131internal static DynamicallyAccessedMemberTypes GetTypeAnnotations(INamedTypeSymbol type) 136INamedTypeSymbol? baseType = type.BaseType; 144foreach (INamedTypeSymbol interfaceType in type.AllInterfaces) 218foreach (var interfaceType in type.AllInterfaces)
TrimAnalysis\GenericArgumentDataFlow.cs (5)
15public static void ProcessGenericArgumentDataFlow(Location location, INamedTypeSymbol type, Action<Diagnostic> reportDiagnostic) 62if (typeArgument is INamedTypeSymbol namedTypeArgument && namedTypeArgument.IsGenericType) 67public static bool RequiresGenericArgumentDataFlow(INamedTypeSymbol type) 76if (typeArgument is INamedTypeSymbol namedTypeSymbol && namedTypeSymbol.IsGenericType 96if (typeArgument is INamedTypeSymbol namedTypeSymbol && namedTypeSymbol.IsGenericType
TrimAnalysis\HandleCallAction.cs (2)
77public override bool VisitNamedType(INamedTypeSymbol symbol) 254var type = method.Method.ContainingType;
TrimAnalysis\MethodProxy.cs (1)
60if (type is not INamedTypeSymbol namedType)
TrimAnalysis\ReflectionAccessAnalyzer.cs (4)
18private readonly INamedTypeSymbol? _typeHierarchyType; 20public ReflectionAccessAnalyzer(Action<Diagnostic>? reportDiagnostic, INamedTypeSymbol? typeHierarchyType) 125static bool IsDeclaredWithinType(ISymbol member, INamedTypeSymbol type) 127INamedTypeSymbol containingType = member.ContainingType;
TrimAnalysis\SingleValueExtensions.cs (1)
18var underlyingType = (type as INamedTypeSymbol)?.TypeArguments.FirstOrDefault();
TrimAnalysis\TrimAnalysisGenericInstantiationPattern.cs (1)
55case INamedTypeSymbol type:
TrimAnalysis\TypeProxy.cs (1)
16if (Type is not INamedTypeSymbol namedType ||
Metrics (559)
MetricsOutputWriter.cs (1)
69var containingType = data.Symbol.ContainingType;
src\Compilers\Core\Portable\SourceGeneration\GeneratedCodeUtilities.cs (1)
19ISymbol symbol, INamedTypeSymbol generatedCodeAttribute)
src\RoslynAnalyzers\Utilities\Compiler\CodeMetrics\CodeAnalysisMetricData.AssemblyMetricData.cs (2)
21ImmutableHashSet<INamedTypeSymbol> coupledNamedTypes, 45var coupledTypesBuilder = ImmutableHashSet.CreateBuilder<INamedTypeSymbol>();
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\RoslynAnalyzers\Utilities\Compiler\CodeMetrics\CodeAnalysisMetricData.EventMetricData.cs (2)
18ImmutableHashSet<INamedTypeSymbol> coupledNamedTypes, 30var coupledTypesBuilder = ImmutableHashSet.CreateBuilder<INamedTypeSymbol>();
src\RoslynAnalyzers\Utilities\Compiler\CodeMetrics\CodeAnalysisMetricData.FieldMetricData.cs (2)
18ImmutableHashSet<INamedTypeSymbol> coupledNamedTypes, 29var coupledTypesBuilder = ImmutableHashSet.CreateBuilder<INamedTypeSymbol>();
src\RoslynAnalyzers\Utilities\Compiler\CodeMetrics\CodeAnalysisMetricData.MethodMetricData.cs (2)
18ImmutableHashSet<INamedTypeSymbol> coupledNamedTypes, 29var coupledTypesBuilder = ImmutableHashSet.CreateBuilder<INamedTypeSymbol>();
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\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\RoslynAnalyzers\Utilities\Compiler\CodeMetrics\CodeAnalysisMetricData.PropertyMetricData.cs (2)
18ImmutableHashSet<INamedTypeSymbol> coupledNamedTypes, 30var coupledTypesBuilder = ImmutableHashSet.CreateBuilder<INamedTypeSymbol>();
src\RoslynAnalyzers\Utilities\Compiler\CodeMetrics\CodeMetricsAnalysisContext.cs (2)
18Func<INamedTypeSymbol, bool>? isExcludedFromInheritanceCountFunc = null) 32public Func<INamedTypeSymbol, bool> IsExcludedFromInheritanceCountFunc { get; }
src\RoslynAnalyzers\Utilities\Compiler\CodeMetrics\MetricsHelper.cs (12)
39internal static void AddCoupledNamedTypes(ImmutableHashSet<INamedTypeSymbol>.Builder builder, WellKnownTypeProvider wellKnownTypeProvider, 40ImmutableHashSet<INamedTypeSymbol> coupledTypes) 42foreach (var coupledType in coupledTypes) 48internal static void AddCoupledNamedTypes(ImmutableHashSet<INamedTypeSymbol>.Builder builder, WellKnownTypeProvider wellKnownTypeProvider, 54internal static void AddCoupledNamedTypes(ImmutableHashSet<INamedTypeSymbol>.Builder builder, WellKnownTypeProvider wellKnownTypeProvider, 195ImmutableHashSet<INamedTypeSymbol>.Builder builder, 349private static void AddCoupledNamedTypesCore(ImmutableHashSet<INamedTypeSymbol>.Builder builder, ITypeSymbol typeOpt, 352if (typeOpt is INamedTypeSymbol usedType && 370static bool isIgnoreableType(INamedTypeSymbol namedType, WellKnownTypeProvider wellKnownTypeProvider) 400internal static void RemoveContainingTypes(ISymbol symbol, ImmutableHashSet<INamedTypeSymbol>.Builder coupledTypesBuilder) 402var namedType = symbol as INamedTypeSymbol ?? symbol.ContainingType;
src\RoslynAnalyzers\Utilities\Compiler\DiagnosticHelpers.cs (1)
68if (symbol is INamedTypeSymbol namedType &&
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\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\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) 208private static bool HasDisposeCloseAsyncMethodSignature(this IMethodSymbol method, INamedTypeSymbol? taskType) 216INamedTypeSymbol? task, 217INamedTypeSymbol? valueTask, 218INamedTypeSymbol? configuredValueTaskAwaitable) 231private static bool HasOverriddenDisposeCoreAsyncMethodSignature(this IMethodSymbol method, [NotNullWhen(returnValue: true)] INamedTypeSymbol? task) 244private static bool HasVirtualOrOverrideDisposeCoreAsyncMethodSignature(this IMethodSymbol method, [NotNullWhen(returnValue: true)] INamedTypeSymbol? valueTask) 258INamedTypeSymbol? iDisposable = compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemIDisposable); 259INamedTypeSymbol? iAsyncDisposable = compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemIAsyncDisposable); 260INamedTypeSymbol? configuredAsyncDisposable = compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemRuntimeCompilerServicesConfiguredAsyncDisposable); 261INamedTypeSymbol? task = compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemThreadingTasksTask); 262INamedTypeSymbol? valueTask = compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemThreadingTasksValueTask); 263INamedTypeSymbol? configuredValueTaskAwaitable = compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemRuntimeCompilerServicesConfiguredValueTaskAwaitable); 272INamedTypeSymbol? iDisposable, 273INamedTypeSymbol? iAsyncDisposable, 274INamedTypeSymbol? configuredAsyncDisposable, 275INamedTypeSymbol? task, 276INamedTypeSymbol? valueTask, 277INamedTypeSymbol? configuredValueTaskAwaitable) 321public static bool IsSerializationConstructor([NotNullWhen(returnValue: true)] this IMethodSymbol? method, INamedTypeSymbol? serializationInfoType, INamedTypeSymbol? streamingContextType) 327public static bool IsGetObjectData([NotNullWhen(returnValue: true)] this IMethodSymbol? method, INamedTypeSymbol? serializationInfoType, INamedTypeSymbol? streamingContextType) 374public static bool IsCollectionAddMethod(this IMethodSymbol method, ImmutableHashSet<INamedTypeSymbol> iCollectionTypes) 395public static bool IsTaskFromResultMethod(this IMethodSymbol method, [NotNullWhen(returnValue: true)] INamedTypeSymbol? taskType) 404public static bool IsTaskConfigureAwaitMethod(this IMethodSymbol method, [NotNullWhen(returnValue: true)] INamedTypeSymbol? genericTaskType) 416public static bool IsAsyncDisposableConfigureAwaitMethod(this IMethodSymbol method, [NotNullWhen(returnValue: true)] INamedTypeSymbol? asyncDisposableType, [NotNullWhen(returnValue: true)] INamedTypeSymbol? taskAsyncEnumerableExtensions) 493public static bool IsLockMethod(this IMethodSymbol method, [NotNullWhen(returnValue: true)] INamedTypeSymbol? systemThreadingMonitor) 503public static bool IsInterlockedExchangeMethod(this IMethodSymbol method, INamedTypeSymbol? systemThreadingInterlocked) 515public static bool IsInterlockedCompareExchangeMethod(this IMethodSymbol method, INamedTypeSymbol? systemThreadingInterlocked) 546public static bool IsBenchmarkOrXUnitTestMethod(this IMethodSymbol method, ConcurrentDictionary<INamedTypeSymbol, bool> knownTestAttributes, INamedTypeSymbol? benchmarkAttribute, INamedTypeSymbol? xunitFactAttribute) 571var typeSymbol = methodSymbol.ContainingType;
src\RoslynAnalyzers\Utilities\Compiler\Extensions\INamedTypeSymbolExtensions.cs (9)
19public static bool IsFileLocal(this INamedTypeSymbol symbol) => symbol.IsFileLocal; 43public static bool DerivesFromOrImplementsAnyConstructionOf(this INamedTypeSymbol type, INamedTypeSymbol parentType) 50for (INamedTypeSymbol? baseType = type.OriginalDefinition; 68public static bool OverridesEquals(this INamedTypeSymbol symbol) 74public static bool IsBenchmarkOrXUnitTestAttribute(this INamedTypeSymbol attributeClass, ConcurrentDictionary<INamedTypeSymbol, bool> knownTestAttributes, INamedTypeSymbol? benchmarkAttribute, INamedTypeSymbol? xunitFactAttribute)
src\RoslynAnalyzers\Utilities\Compiler\Extensions\IPropertySymbolExtensions.cs (1)
36var typeSymbol = propertySymbol.ContainingType;
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\RoslynAnalyzers\Utilities\Compiler\Extensions\ITypeSymbolExtensions.cs (14)
116INamedTypeSymbol? iDisposable, 117INamedTypeSymbol? iAsyncDisposable, 118INamedTypeSymbol? configuredAsyncDisposable) 140static bool IsInterfaceOrImplementsInterface(ITypeSymbol type, INamedTypeSymbol? interfaceType) 150public static IEnumerable<AttributeData> GetApplicableAttributes(this INamedTypeSymbol type, INamedTypeSymbol? attributeUsageAttribute) 182static bool IsInheritedAttribute(AttributeData attributeData, INamedTypeSymbol attributeUsageAttribute) 184for (var currentAttributeClass = attributeData.AttributeClass; 217public static IEnumerable<AttributeData> GetApplicableExportAttributes(this INamedTypeSymbol? type, INamedTypeSymbol? exportAttributeV1, INamedTypeSymbol? exportAttributeV2, INamedTypeSymbol? inheritedExportAttribute) 265=> typeSymbol.IsNullableValueType() && ((INamedTypeSymbol)typeSymbol).TypeArguments[0].SpecialType == SpecialType.System_Boolean; 268=> (typeSymbol as INamedTypeSymbol)?.TupleUnderlyingType ?? typeSymbol;
src\RoslynAnalyzers\Utilities\Compiler\Options\AnalyzerOptionsExtensions.cs (9)
281if (symbol is INamedTypeSymbol namedType && !excludedTypeNamesWithDerivedTypes.IsEmpty) 283foreach (var type in namedType.GetBaseTypesAndThis()) 379public static SymbolNamesWithValueOption<INamedTypeSymbol?> GetAdditionalRequiredGenericInterfaces( 386private static SymbolNamesWithValueOption<INamedTypeSymbol?> GetAdditionalRequiredGenericInterfaces( 394static SymbolNamesWithValueOption<INamedTypeSymbol?>.NameParts GetParts(string name, Compilation compilation) 401return new SymbolNamesWithValueOption<INamedTypeSymbol?>.NameParts(name, null); 413matchingSymbols[0] is not INamedTypeSymbol namedType || 418return new SymbolNamesWithValueOption<INamedTypeSymbol?>.NameParts(split[0], null); 421return new SymbolNamesWithValueOption<INamedTypeSymbol?>.NameParts(split[0], namedType);
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\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\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Extensions\OperationExtensions.cs (2)
405var notImplementedExceptionType = compilation.NotImplementedExceptionType(); 454static bool IsThrowNotImplementedOperation(INamedTypeSymbol notImplementedExceptionType, IOperation? operation)
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); 177var enumerableType = semanticModel.Compilation.IEnumerableOfTType();
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\NamingStyles\NamingStyleRules.cs (3)
65var containingType = symbol.ContainingType; 87var containingType = symbol.ContainingType; 90foreach (var implementedInterface in implementedInterfaces)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Services\SemanticFacts\ISemanticFacts.cs (4)
67bool LastEnumValueHasInitializer(INamedTypeSymbol namedTypeSymbol); 88bool IsPartial(INamedTypeSymbol typeSymbol, CancellationToken cancellationToken); 107bool IsInExpressionTree(SemanticModel semanticModel, SyntaxNode node, [NotNullWhen(true)] INamedTypeSymbol? expressionType, CancellationToken cancellationToken); 122bool TryGetPrimaryConstructor(INamedTypeSymbol typeSymbol, [NotNullWhen(true)] out IMethodSymbol? primaryConstructor);
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\SymbolKey\SymbolKey.AnonymousFunctionOrDelegateSymbolKey.cs (1)
65var anonymousDelegate = methodSymbol.AssociatedAnonymousDelegate;
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\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\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\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\SymbolKey\SymbolKey.FunctionPointerTypeSymbolKey.cs (2)
37var callingConventionModifiers = ImmutableArray<INamedTypeSymbol>.Empty; 40using var modifiersBuilder = reader.ReadSymbolKeyArray<IFunctionPointerTypeSymbol, INamedTypeSymbol>(
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\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\SymbolKey\SymbolKey.ParameterSymbolKey.cs (1)
64var delegateInvoke = (eventSymbol.Type as INamedTypeSymbol)?.DelegateInvokeMethod;
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\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\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Utilities\AbstractSpeculationAnalyzer.cs (5)
417var type = methodSymbol.ContainingType; 418var newType = newMethodSymbol.ContainingType; 491private static bool EnumTypesAreCompatible(INamedTypeSymbol type1, INamedTypeSymbol type2) 992var newSymbolContainingType = newSymbol.ContainingType;
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Utilities\EnumValueUtilities.cs (1)
21public static object GetNextEnumValue(INamedTypeSymbol enumType)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Compilation\CompilationExtensions.cs (78)
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? EventArgsType(this Compilation compilation) 129public static INamedTypeSymbol? NotImplementedExceptionType(this Compilation compilation) 132public static INamedTypeSymbol? EqualityComparerOfTType(this Compilation compilation) 135public static INamedTypeSymbol? ActionType(this Compilation compilation) 138public static INamedTypeSymbol? ExpressionOfTType(this Compilation compilation) 141public static INamedTypeSymbol? EditorBrowsableAttributeType(this Compilation compilation) 144public static INamedTypeSymbol? EditorBrowsableStateType(this Compilation compilation) 147public static INamedTypeSymbol? TaskType(this Compilation compilation) 150public static INamedTypeSymbol? TaskOfTType(this Compilation compilation) 153public static INamedTypeSymbol? ValueTaskType(this Compilation compilation) 156public static INamedTypeSymbol? ValueTaskOfTType(this Compilation compilation) 159public static INamedTypeSymbol? IEnumerableType(this Compilation compilation) 162public static INamedTypeSymbol? IEnumerableOfTType(this Compilation compilation) 165public static INamedTypeSymbol? IEnumeratorOfTType(this Compilation compilation) 168public static INamedTypeSymbol? IListOfTType(this Compilation compilation) 171public static INamedTypeSymbol? IReadOnlyListOfTType(this Compilation compilation) 174public static INamedTypeSymbol? ISetOfTType(this Compilation compilation) 177public static INamedTypeSymbol? IReadOnlySetOfTType(this Compilation compilation) 180public static INamedTypeSymbol? IAsyncEnumerableOfTType(this Compilation compilation) 183public static INamedTypeSymbol? IAsyncEnumeratorOfTType(this Compilation compilation) 186public static INamedTypeSymbol? ImmutableArrayOfTType(this Compilation compilation) 189public static INamedTypeSymbol? SerializableAttributeType(this Compilation compilation) 192public static INamedTypeSymbol? CoClassType(this Compilation compilation) 195public static INamedTypeSymbol? ComAliasNameAttributeType(this Compilation compilation) 198public static INamedTypeSymbol? SuppressMessageAttributeType(this Compilation compilation) 201public static INamedTypeSymbol? TupleElementNamesAttributeType(this Compilation compilation) 204public static INamedTypeSymbol? NativeIntegerAttributeType(this Compilation compilation) 207public static INamedTypeSymbol? DynamicAttributeType(this Compilation compilation) 210public static INamedTypeSymbol? LazyOfTType(this Compilation compilation) 213public static INamedTypeSymbol? ISerializableType(this Compilation compilation) 216public static INamedTypeSymbol? SerializationInfoType(this Compilation compilation) 219public static INamedTypeSymbol? StreamingContextType(this Compilation compilation) 222public static INamedTypeSymbol? OnDeserializingAttribute(this Compilation compilation) 225public static INamedTypeSymbol? OnDeserializedAttribute(this Compilation compilation) 228public static INamedTypeSymbol? OnSerializingAttribute(this Compilation compilation) 231public static INamedTypeSymbol? OnSerializedAttribute(this Compilation compilation) 234public static INamedTypeSymbol? ComRegisterFunctionAttribute(this Compilation compilation) 237public static INamedTypeSymbol? ComUnregisterFunctionAttribute(this Compilation compilation) 240public static INamedTypeSymbol? ConditionalAttribute(this Compilation compilation) 243public static INamedTypeSymbol? ObsoleteAttribute(this Compilation compilation) 246public static INamedTypeSymbol? SystemCompositionImportingConstructorAttribute(this Compilation compilation) 249public static INamedTypeSymbol? SystemComponentModelCompositionImportingConstructorAttribute(this Compilation compilation) 252public static INamedTypeSymbol? SystemIDisposableType(this Compilation compilation) 255public static INamedTypeSymbol? NotNullAttribute(this Compilation compilation) 258public static INamedTypeSymbol? MaybeNullAttribute(this Compilation compilation) 261public static INamedTypeSymbol? MaybeNullWhenAttribute(this Compilation compilation) 264public static INamedTypeSymbol? AllowNullAttribute(this Compilation compilation) 267public static INamedTypeSymbol? DisallowNullAttribute(this Compilation compilation) 270public static INamedTypeSymbol? DataMemberAttribute(this Compilation compilation) 273public static INamedTypeSymbol? DataContractAttribute(this Compilation compilation) 276public static INamedTypeSymbol? AsyncMethodBuilderAttribute(this Compilation compilation) 279public static INamedTypeSymbol? CancellationTokenType(this Compilation compilation) 282public static INamedTypeSymbol? ValueTupleType(this Compilation compilation, int arity) 285public static INamedTypeSymbol? ListOfTType(this Compilation compilation) 288public static INamedTypeSymbol? ReadOnlySpanOfTType(this Compilation compilation) 291public static INamedTypeSymbol? SpanOfTType(this Compilation compilation) 294public static INamedTypeSymbol? InterpolatedStringHandlerAttributeType(this Compilation compilation) 322public static INamedTypeSymbol? GetBestTypeByMetadataName(this Compilation compilation, string fullyQualifiedMetadataName) 324INamedTypeSymbol? type = null; 326foreach (var currentType in compilation.GetTypesByMetadataName(fullyQualifiedMetadataName)) 361foreach (var candidateTopLevelType in compilation.SourceModule.GlobalNamespace.GetTypeMembers(WellKnownMemberNames.TopLevelStatementsEntryPointTypeName, arity: 0)) 373public static INamedTypeSymbol? TryGetCallingConventionSymbol(this Compilation compilation, string callingConvention)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\IMethodSymbolExtensions.cs (4)
44public static bool HasEventHandlerSignature(this IMethodSymbol method, [NotNullWhen(returnValue: true)] INamedTypeSymbol? eventArgsType) 103public static bool IsEntryPoint(this IMethodSymbol methodSymbol, INamedTypeSymbol? taskType, INamedTypeSymbol? genericTaskType) 119if (method.ReturnType is not INamedTypeSymbol { Arity: 0 })
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\INamedTypeSymbolExtensions.cs (73)
23public static IEnumerable<INamedTypeSymbol> GetBaseTypesAndThis(this INamedTypeSymbol? namedType) 25var current = namedType; 33public static ImmutableArray<ITypeParameterSymbol> GetAllTypeParameters(this INamedTypeSymbol? symbol) 39public static ImmutableArray<ITypeSymbol> GetAllTypeArguments(this INamedTypeSymbol? symbol) 45private static Stack<INamedTypeSymbol> GetContainmentStack(INamedTypeSymbol? symbol) 47var stack = new Stack<INamedTypeSymbol>(); 48for (var current = symbol; current != null; current = current.ContainingType) 56public static bool IsContainedWithin([NotNullWhen(returnValue: true)] this INamedTypeSymbol? symbol, INamedTypeSymbol outer) 59for (var current = symbol; current != null; current = current.ContainingType) 70public static ISymbol? FindImplementationForAbstractMember(this INamedTypeSymbol? type, ISymbol symbol) 81private static bool ImplementationExists(INamedTypeSymbol classOrStructType, ISymbol member) 85this INamedTypeSymbol classOrStructType, 87Func<INamedTypeSymbol, ISymbol, bool> isValidImplementation, 117private static bool IsInterfacePropertyImplemented(INamedTypeSymbol classOrStructType, IPropertySymbol propertySymbol) 125static bool IsAccessorImplemented(IMethodSymbol? accessor, INamedTypeSymbol classOrStructType) 131private static bool IsAbstractPropertyImplemented(INamedTypeSymbol classOrStructType, IPropertySymbol propertySymbol) 154this INamedTypeSymbol classOrStructType, 156Func<INamedTypeSymbol, ISymbol, bool> isValid, 179public static ImmutableArray<(INamedTypeSymbol type, ImmutableArray<ISymbol> members)> GetAllUnimplementedMembers( 180this INamedTypeSymbol classOrStructType, 181IEnumerable<INamedTypeSymbol> interfaces, 197static ImmutableArray<ISymbol> GetImplicitlyImplementableMembers(INamedTypeSymbol type, ISymbol within) 249public static ImmutableArray<(INamedTypeSymbol type, ImmutableArray<ISymbol> members)> GetAllUnimplementedMembersInThis( 250this INamedTypeSymbol classOrStructType, 251IEnumerable<INamedTypeSymbol> interfacesOrAbstractClasses, 267public static ImmutableArray<(INamedTypeSymbol type, ImmutableArray<ISymbol> members)> GetAllUnimplementedMembersInThis( 268this INamedTypeSymbol classOrStructType, 269IEnumerable<INamedTypeSymbol> interfacesOrAbstractClasses, 270Func<INamedTypeSymbol, ISymbol, ImmutableArray<ISymbol>> interfaceMemberGetter, 286public static ImmutableArray<(INamedTypeSymbol type, ImmutableArray<ISymbol> members)> GetAllUnimplementedExplicitMembers( 287this INamedTypeSymbol classOrStructType, 288IEnumerable<INamedTypeSymbol> interfaces, 300private static ImmutableArray<ISymbol> GetExplicitlyImplementableMembers(INamedTypeSymbol type, ISymbol within) 327private static ImmutableArray<(INamedTypeSymbol type, ImmutableArray<ISymbol> members)> GetAllUnimplementedMembers( 328this INamedTypeSymbol classOrStructType, 329IEnumerable<INamedTypeSymbol> interfacesOrAbstractClasses, 330Func<INamedTypeSymbol, ISymbol, Func<INamedTypeSymbol, ISymbol, bool>, CancellationToken, bool> isImplemented, 331Func<INamedTypeSymbol, ISymbol, bool> isValidImplementation, 332Func<INamedTypeSymbol, ISymbol, ImmutableArray<ISymbol>> interfaceMemberGetter, 361private static ImmutableArray<INamedTypeSymbol> GetTypesToImplement( 362INamedTypeSymbol classOrStructType, 363IEnumerable<INamedTypeSymbol> interfacesOrAbstractClasses, 372private static ImmutableArray<INamedTypeSymbol> GetAbstractClassesToImplement( 373IEnumerable<INamedTypeSymbol> abstractClasses) 378private static ImmutableArray<INamedTypeSymbol> GetInterfacesToImplement( 379INamedTypeSymbol classOrStructType, 380IEnumerable<INamedTypeSymbol> interfaces, 387var interfacesToImplement = new List<INamedTypeSymbol>( 392var baseType = classOrStructType.BaseType; 403this INamedTypeSymbol classOrStructType, 404INamedTypeSymbol interfaceType, 405Func<INamedTypeSymbol, ISymbol, Func<INamedTypeSymbol, ISymbol, bool>, CancellationToken, bool> isImplemented, 406Func<INamedTypeSymbol, ISymbol, bool> isValidImplementation, 407Func<INamedTypeSymbol, ISymbol, ImmutableArray<ISymbol>> interfaceMemberGetter, 449this INamedTypeSymbol attributeSymbol, 455var systemAttributeType = compilation.AttributeType(); 457foreach (var type in attributeSymbol.GetBaseTypesAndThis()) 517private static ImmutableArray<ISymbol> GetMembers(INamedTypeSymbol type, ISymbol within) 531this INamedTypeSymbol containingType, CancellationToken cancellationToken) 548foreach (var type in baseTypes) 569Dictionary<ISymbol, int> result, INamedTypeSymbol containingType, CancellationToken cancellationToken) 590Dictionary<ISymbol, int> result, INamedTypeSymbol containingType, CancellationToken cancellationToken) 612Dictionary<ISymbol, int> result, INamedTypeSymbol containingType, 613INamedTypeSymbol type, ref int index, CancellationToken cancellationToken) 626private static bool IsOverridable(ISymbol member, INamedTypeSymbol containingType) 669public static INamedTypeSymbol TryConstruct(this INamedTypeSymbol type, ITypeSymbol[] typeArguments) 672public static bool IsCollectionBuilderAttribute([NotNullWhen(true)] this INamedTypeSymbol? type)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\INamespaceOrTypeSymbolExtensions.cs (3)
90public static IEnumerable<INamedTypeSymbol> GetAllTypes( 106var namedType = (INamedTypeSymbol)current;
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\ISymbolExtensions.cs (15)
98foreach (var baseType in symbol.ContainingType.GetBaseTypes()) 107bool TryFindLooseMatch(ISymbol symbol, INamedTypeSymbol baseType, [NotNullWhen(true)] out ISymbol? looseMatch) 156foreach (var iface in symbol.ContainingType.AllInterfaces) 214public static INamedTypeSymbol? GetContainingTypeOrThis(this ISymbol symbol) 216if (symbol is INamedTypeSymbol namedType) 309=> symbol is INamedTypeSymbol { IsAnonymousType: true }; 352SymbolKind.NamedType => ((INamedTypeSymbol)symbol).Arity, 433INamedTypeSymbol nt => nt.TypeParameters, 454INamedTypeSymbol nt => nt.TypeArguments, 463var containingType = symbol.ContainingType; 504var delegateType = compilation.GetTypeByMetadataName(method.ReturnsVoid 533=> symbol is INamedTypeSymbol { IsStatic: true }; 545foreach (var type in namespaceOrType.GetAllTypes(cancellationToken)) 559return ((INamedTypeSymbol)symbol).GetMembers().OfType<IPropertySymbol>().Where(p => p.CanBeReferencedByName); 809public static bool HasAttribute([NotNullWhen(true)] this ISymbol? symbol, [NotNullWhen(true)] INamedTypeSymbol? attributeClass)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\ISymbolExtensions.RequiresUnsafeModifierVisitor.cs (1)
56public override bool VisitNamedType(INamedTypeSymbol symbol)
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\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\ITypeGenerator.cs (1)
13ITypeSymbol Construct(INamedTypeSymbol namedType, ITypeSymbol[] typeArguments);
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\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\ITypeSymbolExtensions.AnonymousTypeRemover.cs (1)
42public override ITypeSymbol VisitNamedType(INamedTypeSymbol symbol)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\ITypeSymbolExtensions.CollectTypeParameterSymbolsVisitor.cs (1)
57public override void VisitNamedType(INamedTypeSymbol symbol)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\ITypeSymbolExtensions.CompilationTypeGenerator.cs (1)
19public ITypeSymbol Construct(INamedTypeSymbol namedType, ITypeSymbol[] typeArguments)
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) 315INamedTypeSymbol n => ContainsAnonymousType(n), 320private static bool ContainsAnonymousType(INamedTypeSymbol type) 410public static INamedTypeSymbol? GetDelegateType(this ITypeSymbol? typeSymbol, Compilation compilation) 414var expressionOfT = compilation.ExpressionOfTType(); 417var typeArgument = ((INamedTypeSymbol)typeSymbol).TypeArguments[0]; 418return typeArgument as INamedTypeSymbol; 423return typeSymbol as INamedTypeSymbol; 576var n2 = t2 as INamedTypeSymbol; 578if (t1 is not INamedTypeSymbol n1) 628public static bool IsEnumType([NotNullWhen(true)] this ITypeSymbol? type, [NotNullWhen(true)] out INamedTypeSymbol? enumType) 632enumType = (INamedTypeSymbol)type; 724if (type is not INamedTypeSymbol 777=> type is INamedTypeSymbol 785=> symbol is INamedTypeSymbol 793=> type is INamedTypeSymbol namedType &&
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\ITypeSymbolExtensions.MinimalAccessibilityVisitor.cs (2)
42foreach (var callingConventionType in symbol.Signature.UnmanagedCallingConventionTypes) 50public override Accessibility VisitNamedType(INamedTypeSymbol symbol)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\ITypeSymbolExtensions.SubstituteTypesVisitor.cs (1)
58public override ITypeSymbol VisitNamedType(INamedTypeSymbol symbol)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\ITypeSymbolExtensions.UnavailableTypeParameterRemover.cs (1)
43public override ITypeSymbol VisitNamedType(INamedTypeSymbol symbol)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\ITypeSymbolExtensions.UnnamedErrorTypeRemover.cs (1)
42public override ITypeSymbol VisitNamedType(INamedTypeSymbol symbol)
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\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\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\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\SymbolEquivalenceComparer.ParameterSymbolEqualityComparer.cs (2)
23Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies,
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\SymbolEquivalenceComparer.SignatureTypeSymbolEquivalenceComparer.cs (2)
18public bool Equals(ITypeSymbol? x, ITypeSymbol? y, Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies)
Metrics.Legacy (559)
src\Compilers\Core\Portable\SourceGeneration\GeneratedCodeUtilities.cs (1)
19ISymbol symbol, INamedTypeSymbol generatedCodeAttribute)
src\RoslynAnalyzers\Tools\Metrics\MetricsOutputWriter.cs (1)
69var containingType = data.Symbol.ContainingType;
src\RoslynAnalyzers\Utilities\Compiler\CodeMetrics\CodeAnalysisMetricData.AssemblyMetricData.cs (2)
21ImmutableHashSet<INamedTypeSymbol> coupledNamedTypes, 45var coupledTypesBuilder = ImmutableHashSet.CreateBuilder<INamedTypeSymbol>();
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\RoslynAnalyzers\Utilities\Compiler\CodeMetrics\CodeAnalysisMetricData.EventMetricData.cs (2)
18ImmutableHashSet<INamedTypeSymbol> coupledNamedTypes, 30var coupledTypesBuilder = ImmutableHashSet.CreateBuilder<INamedTypeSymbol>();
src\RoslynAnalyzers\Utilities\Compiler\CodeMetrics\CodeAnalysisMetricData.FieldMetricData.cs (2)
18ImmutableHashSet<INamedTypeSymbol> coupledNamedTypes, 29var coupledTypesBuilder = ImmutableHashSet.CreateBuilder<INamedTypeSymbol>();
src\RoslynAnalyzers\Utilities\Compiler\CodeMetrics\CodeAnalysisMetricData.MethodMetricData.cs (2)
18ImmutableHashSet<INamedTypeSymbol> coupledNamedTypes, 29var coupledTypesBuilder = ImmutableHashSet.CreateBuilder<INamedTypeSymbol>();
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\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\RoslynAnalyzers\Utilities\Compiler\CodeMetrics\CodeAnalysisMetricData.PropertyMetricData.cs (2)
18ImmutableHashSet<INamedTypeSymbol> coupledNamedTypes, 30var coupledTypesBuilder = ImmutableHashSet.CreateBuilder<INamedTypeSymbol>();
src\RoslynAnalyzers\Utilities\Compiler\CodeMetrics\CodeMetricsAnalysisContext.cs (2)
18Func<INamedTypeSymbol, bool>? isExcludedFromInheritanceCountFunc = null) 32public Func<INamedTypeSymbol, bool> IsExcludedFromInheritanceCountFunc { get; }
src\RoslynAnalyzers\Utilities\Compiler\CodeMetrics\MetricsHelper.cs (12)
39internal static void AddCoupledNamedTypes(ImmutableHashSet<INamedTypeSymbol>.Builder builder, WellKnownTypeProvider wellKnownTypeProvider, 40ImmutableHashSet<INamedTypeSymbol> coupledTypes) 42foreach (var coupledType in coupledTypes) 48internal static void AddCoupledNamedTypes(ImmutableHashSet<INamedTypeSymbol>.Builder builder, WellKnownTypeProvider wellKnownTypeProvider, 54internal static void AddCoupledNamedTypes(ImmutableHashSet<INamedTypeSymbol>.Builder builder, WellKnownTypeProvider wellKnownTypeProvider, 195ImmutableHashSet<INamedTypeSymbol>.Builder builder, 349private static void AddCoupledNamedTypesCore(ImmutableHashSet<INamedTypeSymbol>.Builder builder, ITypeSymbol typeOpt, 352if (typeOpt is INamedTypeSymbol usedType && 370static bool isIgnoreableType(INamedTypeSymbol namedType, WellKnownTypeProvider wellKnownTypeProvider) 400internal static void RemoveContainingTypes(ISymbol symbol, ImmutableHashSet<INamedTypeSymbol>.Builder coupledTypesBuilder) 402var namedType = symbol as INamedTypeSymbol ?? symbol.ContainingType;
src\RoslynAnalyzers\Utilities\Compiler\DiagnosticHelpers.cs (1)
68if (symbol is INamedTypeSymbol namedType &&
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\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\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) 208private static bool HasDisposeCloseAsyncMethodSignature(this IMethodSymbol method, INamedTypeSymbol? taskType) 216INamedTypeSymbol? task, 217INamedTypeSymbol? valueTask, 218INamedTypeSymbol? configuredValueTaskAwaitable) 231private static bool HasOverriddenDisposeCoreAsyncMethodSignature(this IMethodSymbol method, [NotNullWhen(returnValue: true)] INamedTypeSymbol? task) 244private static bool HasVirtualOrOverrideDisposeCoreAsyncMethodSignature(this IMethodSymbol method, [NotNullWhen(returnValue: true)] INamedTypeSymbol? valueTask) 258INamedTypeSymbol? iDisposable = compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemIDisposable); 259INamedTypeSymbol? iAsyncDisposable = compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemIAsyncDisposable); 260INamedTypeSymbol? configuredAsyncDisposable = compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemRuntimeCompilerServicesConfiguredAsyncDisposable); 261INamedTypeSymbol? task = compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemThreadingTasksTask); 262INamedTypeSymbol? valueTask = compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemThreadingTasksValueTask); 263INamedTypeSymbol? configuredValueTaskAwaitable = compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemRuntimeCompilerServicesConfiguredValueTaskAwaitable); 272INamedTypeSymbol? iDisposable, 273INamedTypeSymbol? iAsyncDisposable, 274INamedTypeSymbol? configuredAsyncDisposable, 275INamedTypeSymbol? task, 276INamedTypeSymbol? valueTask, 277INamedTypeSymbol? configuredValueTaskAwaitable) 321public static bool IsSerializationConstructor([NotNullWhen(returnValue: true)] this IMethodSymbol? method, INamedTypeSymbol? serializationInfoType, INamedTypeSymbol? streamingContextType) 327public static bool IsGetObjectData([NotNullWhen(returnValue: true)] this IMethodSymbol? method, INamedTypeSymbol? serializationInfoType, INamedTypeSymbol? streamingContextType) 374public static bool IsCollectionAddMethod(this IMethodSymbol method, ImmutableHashSet<INamedTypeSymbol> iCollectionTypes) 395public static bool IsTaskFromResultMethod(this IMethodSymbol method, [NotNullWhen(returnValue: true)] INamedTypeSymbol? taskType) 404public static bool IsTaskConfigureAwaitMethod(this IMethodSymbol method, [NotNullWhen(returnValue: true)] INamedTypeSymbol? genericTaskType) 416public static bool IsAsyncDisposableConfigureAwaitMethod(this IMethodSymbol method, [NotNullWhen(returnValue: true)] INamedTypeSymbol? asyncDisposableType, [NotNullWhen(returnValue: true)] INamedTypeSymbol? taskAsyncEnumerableExtensions) 493public static bool IsLockMethod(this IMethodSymbol method, [NotNullWhen(returnValue: true)] INamedTypeSymbol? systemThreadingMonitor) 503public static bool IsInterlockedExchangeMethod(this IMethodSymbol method, INamedTypeSymbol? systemThreadingInterlocked) 515public static bool IsInterlockedCompareExchangeMethod(this IMethodSymbol method, INamedTypeSymbol? systemThreadingInterlocked) 546public static bool IsBenchmarkOrXUnitTestMethod(this IMethodSymbol method, ConcurrentDictionary<INamedTypeSymbol, bool> knownTestAttributes, INamedTypeSymbol? benchmarkAttribute, INamedTypeSymbol? xunitFactAttribute) 571var typeSymbol = methodSymbol.ContainingType;
src\RoslynAnalyzers\Utilities\Compiler\Extensions\INamedTypeSymbolExtensions.cs (9)
19public static bool IsFileLocal(this INamedTypeSymbol symbol) => symbol.IsFileLocal; 43public static bool DerivesFromOrImplementsAnyConstructionOf(this INamedTypeSymbol type, INamedTypeSymbol parentType) 50for (INamedTypeSymbol? baseType = type.OriginalDefinition; 68public static bool OverridesEquals(this INamedTypeSymbol symbol) 74public static bool IsBenchmarkOrXUnitTestAttribute(this INamedTypeSymbol attributeClass, ConcurrentDictionary<INamedTypeSymbol, bool> knownTestAttributes, INamedTypeSymbol? benchmarkAttribute, INamedTypeSymbol? xunitFactAttribute)
src\RoslynAnalyzers\Utilities\Compiler\Extensions\IPropertySymbolExtensions.cs (1)
36var typeSymbol = propertySymbol.ContainingType;
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\RoslynAnalyzers\Utilities\Compiler\Extensions\ITypeSymbolExtensions.cs (14)
116INamedTypeSymbol? iDisposable, 117INamedTypeSymbol? iAsyncDisposable, 118INamedTypeSymbol? configuredAsyncDisposable) 140static bool IsInterfaceOrImplementsInterface(ITypeSymbol type, INamedTypeSymbol? interfaceType) 150public static IEnumerable<AttributeData> GetApplicableAttributes(this INamedTypeSymbol type, INamedTypeSymbol? attributeUsageAttribute) 182static bool IsInheritedAttribute(AttributeData attributeData, INamedTypeSymbol attributeUsageAttribute) 184for (var currentAttributeClass = attributeData.AttributeClass; 217public static IEnumerable<AttributeData> GetApplicableExportAttributes(this INamedTypeSymbol? type, INamedTypeSymbol? exportAttributeV1, INamedTypeSymbol? exportAttributeV2, INamedTypeSymbol? inheritedExportAttribute) 265=> typeSymbol.IsNullableValueType() && ((INamedTypeSymbol)typeSymbol).TypeArguments[0].SpecialType == SpecialType.System_Boolean; 268=> (typeSymbol as INamedTypeSymbol)?.TupleUnderlyingType ?? typeSymbol;
src\RoslynAnalyzers\Utilities\Compiler\Options\AnalyzerOptionsExtensions.cs (9)
281if (symbol is INamedTypeSymbol namedType && !excludedTypeNamesWithDerivedTypes.IsEmpty) 283foreach (var type in namedType.GetBaseTypesAndThis()) 379public static SymbolNamesWithValueOption<INamedTypeSymbol?> GetAdditionalRequiredGenericInterfaces( 386private static SymbolNamesWithValueOption<INamedTypeSymbol?> GetAdditionalRequiredGenericInterfaces( 394static SymbolNamesWithValueOption<INamedTypeSymbol?>.NameParts GetParts(string name, Compilation compilation) 401return new SymbolNamesWithValueOption<INamedTypeSymbol?>.NameParts(name, null); 413matchingSymbols[0] is not INamedTypeSymbol namedType || 418return new SymbolNamesWithValueOption<INamedTypeSymbol?>.NameParts(split[0], null); 421return new SymbolNamesWithValueOption<INamedTypeSymbol?>.NameParts(split[0], namedType);
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\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\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Extensions\OperationExtensions.cs (2)
405var notImplementedExceptionType = compilation.NotImplementedExceptionType(); 454static bool IsThrowNotImplementedOperation(INamedTypeSymbol notImplementedExceptionType, IOperation? operation)
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); 177var enumerableType = semanticModel.Compilation.IEnumerableOfTType();
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\NamingStyles\NamingStyleRules.cs (3)
65var containingType = symbol.ContainingType; 87var containingType = symbol.ContainingType; 90foreach (var implementedInterface in implementedInterfaces)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Services\SemanticFacts\ISemanticFacts.cs (4)
67bool LastEnumValueHasInitializer(INamedTypeSymbol namedTypeSymbol); 88bool IsPartial(INamedTypeSymbol typeSymbol, CancellationToken cancellationToken); 107bool IsInExpressionTree(SemanticModel semanticModel, SyntaxNode node, [NotNullWhen(true)] INamedTypeSymbol? expressionType, CancellationToken cancellationToken); 122bool TryGetPrimaryConstructor(INamedTypeSymbol typeSymbol, [NotNullWhen(true)] out IMethodSymbol? primaryConstructor);
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\SymbolKey\SymbolKey.AnonymousFunctionOrDelegateSymbolKey.cs (1)
65var anonymousDelegate = methodSymbol.AssociatedAnonymousDelegate;
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\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\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\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\SymbolKey\SymbolKey.FunctionPointerTypeSymbolKey.cs (2)
37var callingConventionModifiers = ImmutableArray<INamedTypeSymbol>.Empty; 40using var modifiersBuilder = reader.ReadSymbolKeyArray<IFunctionPointerTypeSymbol, INamedTypeSymbol>(
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\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\SymbolKey\SymbolKey.ParameterSymbolKey.cs (1)
64var delegateInvoke = (eventSymbol.Type as INamedTypeSymbol)?.DelegateInvokeMethod;
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\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\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Utilities\AbstractSpeculationAnalyzer.cs (5)
417var type = methodSymbol.ContainingType; 418var newType = newMethodSymbol.ContainingType; 491private static bool EnumTypesAreCompatible(INamedTypeSymbol type1, INamedTypeSymbol type2) 992var newSymbolContainingType = newSymbol.ContainingType;
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Utilities\EnumValueUtilities.cs (1)
21public static object GetNextEnumValue(INamedTypeSymbol enumType)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Compilation\CompilationExtensions.cs (78)
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? EventArgsType(this Compilation compilation) 129public static INamedTypeSymbol? NotImplementedExceptionType(this Compilation compilation) 132public static INamedTypeSymbol? EqualityComparerOfTType(this Compilation compilation) 135public static INamedTypeSymbol? ActionType(this Compilation compilation) 138public static INamedTypeSymbol? ExpressionOfTType(this Compilation compilation) 141public static INamedTypeSymbol? EditorBrowsableAttributeType(this Compilation compilation) 144public static INamedTypeSymbol? EditorBrowsableStateType(this Compilation compilation) 147public static INamedTypeSymbol? TaskType(this Compilation compilation) 150public static INamedTypeSymbol? TaskOfTType(this Compilation compilation) 153public static INamedTypeSymbol? ValueTaskType(this Compilation compilation) 156public static INamedTypeSymbol? ValueTaskOfTType(this Compilation compilation) 159public static INamedTypeSymbol? IEnumerableType(this Compilation compilation) 162public static INamedTypeSymbol? IEnumerableOfTType(this Compilation compilation) 165public static INamedTypeSymbol? IEnumeratorOfTType(this Compilation compilation) 168public static INamedTypeSymbol? IListOfTType(this Compilation compilation) 171public static INamedTypeSymbol? IReadOnlyListOfTType(this Compilation compilation) 174public static INamedTypeSymbol? ISetOfTType(this Compilation compilation) 177public static INamedTypeSymbol? IReadOnlySetOfTType(this Compilation compilation) 180public static INamedTypeSymbol? IAsyncEnumerableOfTType(this Compilation compilation) 183public static INamedTypeSymbol? IAsyncEnumeratorOfTType(this Compilation compilation) 186public static INamedTypeSymbol? ImmutableArrayOfTType(this Compilation compilation) 189public static INamedTypeSymbol? SerializableAttributeType(this Compilation compilation) 192public static INamedTypeSymbol? CoClassType(this Compilation compilation) 195public static INamedTypeSymbol? ComAliasNameAttributeType(this Compilation compilation) 198public static INamedTypeSymbol? SuppressMessageAttributeType(this Compilation compilation) 201public static INamedTypeSymbol? TupleElementNamesAttributeType(this Compilation compilation) 204public static INamedTypeSymbol? NativeIntegerAttributeType(this Compilation compilation) 207public static INamedTypeSymbol? DynamicAttributeType(this Compilation compilation) 210public static INamedTypeSymbol? LazyOfTType(this Compilation compilation) 213public static INamedTypeSymbol? ISerializableType(this Compilation compilation) 216public static INamedTypeSymbol? SerializationInfoType(this Compilation compilation) 219public static INamedTypeSymbol? StreamingContextType(this Compilation compilation) 222public static INamedTypeSymbol? OnDeserializingAttribute(this Compilation compilation) 225public static INamedTypeSymbol? OnDeserializedAttribute(this Compilation compilation) 228public static INamedTypeSymbol? OnSerializingAttribute(this Compilation compilation) 231public static INamedTypeSymbol? OnSerializedAttribute(this Compilation compilation) 234public static INamedTypeSymbol? ComRegisterFunctionAttribute(this Compilation compilation) 237public static INamedTypeSymbol? ComUnregisterFunctionAttribute(this Compilation compilation) 240public static INamedTypeSymbol? ConditionalAttribute(this Compilation compilation) 243public static INamedTypeSymbol? ObsoleteAttribute(this Compilation compilation) 246public static INamedTypeSymbol? SystemCompositionImportingConstructorAttribute(this Compilation compilation) 249public static INamedTypeSymbol? SystemComponentModelCompositionImportingConstructorAttribute(this Compilation compilation) 252public static INamedTypeSymbol? SystemIDisposableType(this Compilation compilation) 255public static INamedTypeSymbol? NotNullAttribute(this Compilation compilation) 258public static INamedTypeSymbol? MaybeNullAttribute(this Compilation compilation) 261public static INamedTypeSymbol? MaybeNullWhenAttribute(this Compilation compilation) 264public static INamedTypeSymbol? AllowNullAttribute(this Compilation compilation) 267public static INamedTypeSymbol? DisallowNullAttribute(this Compilation compilation) 270public static INamedTypeSymbol? DataMemberAttribute(this Compilation compilation) 273public static INamedTypeSymbol? DataContractAttribute(this Compilation compilation) 276public static INamedTypeSymbol? AsyncMethodBuilderAttribute(this Compilation compilation) 279public static INamedTypeSymbol? CancellationTokenType(this Compilation compilation) 282public static INamedTypeSymbol? ValueTupleType(this Compilation compilation, int arity) 285public static INamedTypeSymbol? ListOfTType(this Compilation compilation) 288public static INamedTypeSymbol? ReadOnlySpanOfTType(this Compilation compilation) 291public static INamedTypeSymbol? SpanOfTType(this Compilation compilation) 294public static INamedTypeSymbol? InterpolatedStringHandlerAttributeType(this Compilation compilation) 322public static INamedTypeSymbol? GetBestTypeByMetadataName(this Compilation compilation, string fullyQualifiedMetadataName) 324INamedTypeSymbol? type = null; 326foreach (var currentType in compilation.GetTypesByMetadataName(fullyQualifiedMetadataName)) 361foreach (var candidateTopLevelType in compilation.SourceModule.GlobalNamespace.GetTypeMembers(WellKnownMemberNames.TopLevelStatementsEntryPointTypeName, arity: 0)) 373public static INamedTypeSymbol? TryGetCallingConventionSymbol(this Compilation compilation, string callingConvention)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\IMethodSymbolExtensions.cs (4)
44public static bool HasEventHandlerSignature(this IMethodSymbol method, [NotNullWhen(returnValue: true)] INamedTypeSymbol? eventArgsType) 103public static bool IsEntryPoint(this IMethodSymbol methodSymbol, INamedTypeSymbol? taskType, INamedTypeSymbol? genericTaskType) 119if (method.ReturnType is not INamedTypeSymbol { Arity: 0 })
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\INamedTypeSymbolExtensions.cs (73)
23public static IEnumerable<INamedTypeSymbol> GetBaseTypesAndThis(this INamedTypeSymbol? namedType) 25var current = namedType; 33public static ImmutableArray<ITypeParameterSymbol> GetAllTypeParameters(this INamedTypeSymbol? symbol) 39public static ImmutableArray<ITypeSymbol> GetAllTypeArguments(this INamedTypeSymbol? symbol) 45private static Stack<INamedTypeSymbol> GetContainmentStack(INamedTypeSymbol? symbol) 47var stack = new Stack<INamedTypeSymbol>(); 48for (var current = symbol; current != null; current = current.ContainingType) 56public static bool IsContainedWithin([NotNullWhen(returnValue: true)] this INamedTypeSymbol? symbol, INamedTypeSymbol outer) 59for (var current = symbol; current != null; current = current.ContainingType) 70public static ISymbol? FindImplementationForAbstractMember(this INamedTypeSymbol? type, ISymbol symbol) 81private static bool ImplementationExists(INamedTypeSymbol classOrStructType, ISymbol member) 85this INamedTypeSymbol classOrStructType, 87Func<INamedTypeSymbol, ISymbol, bool> isValidImplementation, 117private static bool IsInterfacePropertyImplemented(INamedTypeSymbol classOrStructType, IPropertySymbol propertySymbol) 125static bool IsAccessorImplemented(IMethodSymbol? accessor, INamedTypeSymbol classOrStructType) 131private static bool IsAbstractPropertyImplemented(INamedTypeSymbol classOrStructType, IPropertySymbol propertySymbol) 154this INamedTypeSymbol classOrStructType, 156Func<INamedTypeSymbol, ISymbol, bool> isValid, 179public static ImmutableArray<(INamedTypeSymbol type, ImmutableArray<ISymbol> members)> GetAllUnimplementedMembers( 180this INamedTypeSymbol classOrStructType, 181IEnumerable<INamedTypeSymbol> interfaces, 197static ImmutableArray<ISymbol> GetImplicitlyImplementableMembers(INamedTypeSymbol type, ISymbol within) 249public static ImmutableArray<(INamedTypeSymbol type, ImmutableArray<ISymbol> members)> GetAllUnimplementedMembersInThis( 250this INamedTypeSymbol classOrStructType, 251IEnumerable<INamedTypeSymbol> interfacesOrAbstractClasses, 267public static ImmutableArray<(INamedTypeSymbol type, ImmutableArray<ISymbol> members)> GetAllUnimplementedMembersInThis( 268this INamedTypeSymbol classOrStructType, 269IEnumerable<INamedTypeSymbol> interfacesOrAbstractClasses, 270Func<INamedTypeSymbol, ISymbol, ImmutableArray<ISymbol>> interfaceMemberGetter, 286public static ImmutableArray<(INamedTypeSymbol type, ImmutableArray<ISymbol> members)> GetAllUnimplementedExplicitMembers( 287this INamedTypeSymbol classOrStructType, 288IEnumerable<INamedTypeSymbol> interfaces, 300private static ImmutableArray<ISymbol> GetExplicitlyImplementableMembers(INamedTypeSymbol type, ISymbol within) 327private static ImmutableArray<(INamedTypeSymbol type, ImmutableArray<ISymbol> members)> GetAllUnimplementedMembers( 328this INamedTypeSymbol classOrStructType, 329IEnumerable<INamedTypeSymbol> interfacesOrAbstractClasses, 330Func<INamedTypeSymbol, ISymbol, Func<INamedTypeSymbol, ISymbol, bool>, CancellationToken, bool> isImplemented, 331Func<INamedTypeSymbol, ISymbol, bool> isValidImplementation, 332Func<INamedTypeSymbol, ISymbol, ImmutableArray<ISymbol>> interfaceMemberGetter, 361private static ImmutableArray<INamedTypeSymbol> GetTypesToImplement( 362INamedTypeSymbol classOrStructType, 363IEnumerable<INamedTypeSymbol> interfacesOrAbstractClasses, 372private static ImmutableArray<INamedTypeSymbol> GetAbstractClassesToImplement( 373IEnumerable<INamedTypeSymbol> abstractClasses) 378private static ImmutableArray<INamedTypeSymbol> GetInterfacesToImplement( 379INamedTypeSymbol classOrStructType, 380IEnumerable<INamedTypeSymbol> interfaces, 387var interfacesToImplement = new List<INamedTypeSymbol>( 392var baseType = classOrStructType.BaseType; 403this INamedTypeSymbol classOrStructType, 404INamedTypeSymbol interfaceType, 405Func<INamedTypeSymbol, ISymbol, Func<INamedTypeSymbol, ISymbol, bool>, CancellationToken, bool> isImplemented, 406Func<INamedTypeSymbol, ISymbol, bool> isValidImplementation, 407Func<INamedTypeSymbol, ISymbol, ImmutableArray<ISymbol>> interfaceMemberGetter, 449this INamedTypeSymbol attributeSymbol, 455var systemAttributeType = compilation.AttributeType(); 457foreach (var type in attributeSymbol.GetBaseTypesAndThis()) 517private static ImmutableArray<ISymbol> GetMembers(INamedTypeSymbol type, ISymbol within) 531this INamedTypeSymbol containingType, CancellationToken cancellationToken) 548foreach (var type in baseTypes) 569Dictionary<ISymbol, int> result, INamedTypeSymbol containingType, CancellationToken cancellationToken) 590Dictionary<ISymbol, int> result, INamedTypeSymbol containingType, CancellationToken cancellationToken) 612Dictionary<ISymbol, int> result, INamedTypeSymbol containingType, 613INamedTypeSymbol type, ref int index, CancellationToken cancellationToken) 626private static bool IsOverridable(ISymbol member, INamedTypeSymbol containingType) 669public static INamedTypeSymbol TryConstruct(this INamedTypeSymbol type, ITypeSymbol[] typeArguments) 672public static bool IsCollectionBuilderAttribute([NotNullWhen(true)] this INamedTypeSymbol? type)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\INamespaceOrTypeSymbolExtensions.cs (3)
90public static IEnumerable<INamedTypeSymbol> GetAllTypes( 106var namedType = (INamedTypeSymbol)current;
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\ISymbolExtensions.cs (15)
98foreach (var baseType in symbol.ContainingType.GetBaseTypes()) 107bool TryFindLooseMatch(ISymbol symbol, INamedTypeSymbol baseType, [NotNullWhen(true)] out ISymbol? looseMatch) 156foreach (var iface in symbol.ContainingType.AllInterfaces) 214public static INamedTypeSymbol? GetContainingTypeOrThis(this ISymbol symbol) 216if (symbol is INamedTypeSymbol namedType) 309=> symbol is INamedTypeSymbol { IsAnonymousType: true }; 352SymbolKind.NamedType => ((INamedTypeSymbol)symbol).Arity, 433INamedTypeSymbol nt => nt.TypeParameters, 454INamedTypeSymbol nt => nt.TypeArguments, 463var containingType = symbol.ContainingType; 504var delegateType = compilation.GetTypeByMetadataName(method.ReturnsVoid 533=> symbol is INamedTypeSymbol { IsStatic: true }; 545foreach (var type in namespaceOrType.GetAllTypes(cancellationToken)) 559return ((INamedTypeSymbol)symbol).GetMembers().OfType<IPropertySymbol>().Where(p => p.CanBeReferencedByName); 809public static bool HasAttribute([NotNullWhen(true)] this ISymbol? symbol, [NotNullWhen(true)] INamedTypeSymbol? attributeClass)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\ISymbolExtensions.RequiresUnsafeModifierVisitor.cs (1)
56public override bool VisitNamedType(INamedTypeSymbol symbol)
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\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\ITypeGenerator.cs (1)
13ITypeSymbol Construct(INamedTypeSymbol namedType, ITypeSymbol[] typeArguments);
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\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\ITypeSymbolExtensions.AnonymousTypeRemover.cs (1)
42public override ITypeSymbol VisitNamedType(INamedTypeSymbol symbol)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\ITypeSymbolExtensions.CollectTypeParameterSymbolsVisitor.cs (1)
57public override void VisitNamedType(INamedTypeSymbol symbol)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\ITypeSymbolExtensions.CompilationTypeGenerator.cs (1)
19public ITypeSymbol Construct(INamedTypeSymbol namedType, ITypeSymbol[] typeArguments)
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) 315INamedTypeSymbol n => ContainsAnonymousType(n), 320private static bool ContainsAnonymousType(INamedTypeSymbol type) 410public static INamedTypeSymbol? GetDelegateType(this ITypeSymbol? typeSymbol, Compilation compilation) 414var expressionOfT = compilation.ExpressionOfTType(); 417var typeArgument = ((INamedTypeSymbol)typeSymbol).TypeArguments[0]; 418return typeArgument as INamedTypeSymbol; 423return typeSymbol as INamedTypeSymbol; 576var n2 = t2 as INamedTypeSymbol; 578if (t1 is not INamedTypeSymbol n1) 628public static bool IsEnumType([NotNullWhen(true)] this ITypeSymbol? type, [NotNullWhen(true)] out INamedTypeSymbol? enumType) 632enumType = (INamedTypeSymbol)type; 724if (type is not INamedTypeSymbol 777=> type is INamedTypeSymbol 785=> symbol is INamedTypeSymbol 793=> type is INamedTypeSymbol namedType &&
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\ITypeSymbolExtensions.MinimalAccessibilityVisitor.cs (2)
42foreach (var callingConventionType in symbol.Signature.UnmanagedCallingConventionTypes) 50public override Accessibility VisitNamedType(INamedTypeSymbol symbol)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\ITypeSymbolExtensions.SubstituteTypesVisitor.cs (1)
58public override ITypeSymbol VisitNamedType(INamedTypeSymbol symbol)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\ITypeSymbolExtensions.UnavailableTypeParameterRemover.cs (1)
43public override ITypeSymbol VisitNamedType(INamedTypeSymbol symbol)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\ITypeSymbolExtensions.UnnamedErrorTypeRemover.cs (1)
42public override ITypeSymbol VisitNamedType(INamedTypeSymbol symbol)
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\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\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\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\SymbolEquivalenceComparer.ParameterSymbolEqualityComparer.cs (2)
23Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies,
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\SymbolEquivalenceComparer.SignatureTypeSymbolEquivalenceComparer.cs (2)
18public bool Equals(ITypeSymbol? x, ITypeSymbol? y, Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies)
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)
54.Cast<INamedTypeSymbol>(); 57foreach (var type in types) 68var obsoleteAttribute = compilation.GetTypeByMetadataName(ObsoleteAttributeFullName); 148.Cast<INamedTypeSymbol>(); 150var obsoleteAttribute = context.Compilation.GetTypeByMetadataName(ObsoleteAttributeFullName); 152foreach (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.Analyzers.Test (18)
CompilationFeatureDetectorTest.cs (6)
35var type = (INamedTypeSymbol)compilation.GetSymbolsWithName("StartupWithNoFeatures").Single(); 75var type = (INamedTypeSymbol)compilation.GetSymbolsWithName("StartupWithMapHub").Single(); 115var type = (INamedTypeSymbol)compilation.GetSymbolsWithName("StartupWithMapBlazorHub").Single();
StartupFactsTest.cs (12)
118var type = (INamedTypeSymbol)compilation.GetSymbolsWithName(source).Single(); 143var type = (INamedTypeSymbol)compilation.GetSymbolsWithName(source).Single(); 166var type = (INamedTypeSymbol)compilation.GetSymbolsWithName(source).Single(); 188var type = (INamedTypeSymbol)compilation.GetSymbolsWithName(source).Single(); 210var type = (INamedTypeSymbol)compilation.GetSymbolsWithName(source).Single(); 227var type = (INamedTypeSymbol)compilation.GetSymbolsWithName(source).Single();
Microsoft.AspNetCore.App.Analyzers (95)
Authorization\AddAuthorizationBuilderAnalyzer.cs (1)
38var policyServiceCollectionExtensions = wellKnownTypes.Get(WellKnownType.Microsoft_Extensions_DependencyInjection_PolicyServiceCollectionExtensions);
Authorization\AuthorizationOptionsTypes.cs (1)
36public INamedTypeSymbol? AuthorizationOptions { get; }
Http\HeaderDictionaryIndexerAnalyzer.cs (1)
48private static bool IsIHeadersDictionaryType(INamedTypeSymbol type)
Http\RequestDelegateReturnTypeAnalyzer.cs (1)
81((INamedTypeSymbol)returnType).TypeArguments[0].ToString()));
Mvc\DetectOverriddenAuthorizeAttribute.cs (9)
27INamedTypeSymbol controllerSymbol, List<AttributeInfo> authorizeAttributes, out string? allowAnonClass) 114private static bool IsInheritableAttribute(WellKnownTypes wellKnownTypes, INamedTypeSymbol attribute) 117var attributeUsageAttributeType = wellKnownTypes.Get(WellKnownType.System_AttributeUsageAttribute); 135private static bool IsMatchingAttribute(WellKnownTypes wellKnownTypes, INamedTypeSymbol attribute, 136INamedTypeSymbol commonAttribute, ITypeSymbol attributeInterface, bool mustBeInheritable) 166var authInterfaceType = wellKnownTypes.Get(WellKnownType.Microsoft_AspNetCore_Authorization_IAuthorizeData); 167var authAttributeType = wellKnownTypes.Get(WellKnownType.Microsoft_AspNetCore_Authorization_AuthorizeAttribute); 182var anonInterfaceType = wellKnownTypes.Get(WellKnownType.Microsoft_AspNetCore_Authorization_IAllowAnonymous); 183var anonAttributeType = wellKnownTypes.Get(WellKnownType.Microsoft_AspNetCore_Authorization_AllowAnonymousAttribute);
Mvc\MvcAnalyzer.cs (2)
44var namedTypeSymbol = (INamedTypeSymbol)context.Symbol;
RouteEmbeddedLanguage\FrameworkParametersCompletionProvider.cs (2)
199if (methodSymbol?.ContainingType is not INamedTypeSymbol typeSymbol || 394if (parameterTypeSymbol is INamedTypeSymbol typeSymbol)
RouteEmbeddedLanguage\Infrastructure\MvcDetector.cs (2)
15public static bool IsController(INamedTypeSymbol? typeSymbol, WellKnownTypes wellKnownTypes) 30var disposable = wellKnownTypes.Get(SpecialType.System_IDisposable);
RouteEmbeddedLanguage\Infrastructure\RoutePatternParametersDetector.cs (3)
45var fromRouteMetadata = wellKnownTypes.Get(WellKnownType.Microsoft_AspNetCore_Http_Metadata_IFromRouteMetadata); 77if (child.GetParameterType() is not INamedTypeSymbol type) 89var attributeClass = attributeData.AttributeClass;
RouteEmbeddedLanguage\Infrastructure\RouteUsageDetector.cs (4)
138var classSymbol = semanticModel.GetDeclaredSymbol(classDeclarationSyntax, cancellationToken); 214if (methodSymbol?.ContainingType is not INamedTypeSymbol typeSymbol) 277var delegateSymbol = semanticModel.Compilation.GetSpecialType(SpecialType.System_Delegate); 290var stringSymbol = semanticModel.Compilation.GetSpecialType(SpecialType.System_String);
RouteHandlers\AtMostOneFromBodyAttribute.cs (2)
22var fromBodyMetadataInterfaceType = wellKnownTypes.Get(WellKnownType.Microsoft_AspNetCore_Http_Metadata_IFromBodyMetadata); 23var asParametersAttributeType = wellKnownTypes.Get(WellKnownType.Microsoft_AspNetCore_Http_AsParametersAttribute);
RouteHandlers\DisallowNonParsableComplexTypesOnParameters.cs (9)
27var fromServiceMetadataTypeSymbol = wellKnownTypes.Get(WellKnownType.Microsoft_AspNetCore_Http_Metadata_IFromServiceMetadata); 33var parameterTypeSymbol = ResolveParameterTypeSymbol(handlerDelegateParameter); 97static bool ReportFromAttributeDiagnostic(OperationAnalysisContext context, WellKnownType fromMetadataInterfaceType, WellKnownTypes wellKnownTypes, IParameterSymbol parameter, INamedTypeSymbol parameterTypeSymbol, Location location) 99var fromMetadataInterfaceTypeSymbol = wellKnownTypes.Get(fromMetadataInterfaceType); 116static INamedTypeSymbol? ResolveParameterTypeSymbol(IParameterSymbol parameterSymbol) 118INamedTypeSymbol? parameterTypeSymbol = null; 123parameterTypeSymbol = arrayTypeSymbol.ElementType as INamedTypeSymbol; 125else if (parameterSymbol.Type is INamedTypeSymbol namedTypeSymbol) 135parameterTypeSymbol = parameterTypeSymbol.TypeArguments[0] as INamedTypeSymbol;
RouteHandlers\DisallowReturningActionResultFromMapMethods.cs (1)
91if (returnType is not INamedTypeSymbol { Name: "Task" or "ValueTask", IsGenericType: true, TypeArguments: { Length: 1 } } taskLike)
src\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\Shared\Roslyn\MvcFacts.cs (5)
11public static bool IsController(INamedTypeSymbol type, INamedTypeSymbol controllerAttribute, INamedTypeSymbol nonControllerAttribute) 57public static bool IsControllerAction(IMethodSymbol method, INamedTypeSymbol nonActionAttribute, IMethodSymbol disposableDispose) 101private static INamedTypeSymbol GetDeclaringType(IMethodSymbol method)
src\Shared\RoslynUtils\ParsabilityHelper.cs (7)
117var iParsableTypeSymbol = wellKnownTypes.Get(WellKnownType.System_IParsable_T); 126var iBindableFromHttpContextTypeSymbol = wellKnownTypes.Get(WellKnownType.Microsoft_AspNetCore_Http_IBindableFromHttpContext_T); 127var constructedTypeSymbol = typeSymbol.AllInterfaces.FirstOrDefault( 140methodSymbol.ReturnType is INamedTypeSymbol returnType && 152methodSymbol.ReturnType is INamedTypeSymbol returnType && 156private static bool IsReturningValueTaskOfTOrNullableT(INamedTypeSymbol returnType, ITypeSymbol containingType, WellKnownTypes wellKnownTypes) 214if (bindAsyncMethod.ReturnType is INamedTypeSymbol returnType && !IsReturningValueTaskOfTOrNullableT(returnType, typeSymbol, wellKnownTypes))
src\Shared\RoslynUtils\SymbolExtensions.cs (17)
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 TryGetAttribute(this ImmutableArray<AttributeData> attributes, INamedTypeSymbol attributeType, [NotNullWhen(true)] out AttributeData? matchedAttribute) 85public static bool HasAttributeImplementingInterface(this ISymbol symbol, INamedTypeSymbol interfaceType) 90public static bool TryGetAttributeImplementingInterface(this ISymbol symbol, INamedTypeSymbol interfaceType, [NotNullWhen(true)] out AttributeData? matchedAttribute) 105public static bool HasAttributeImplementingInterface(this ImmutableArray<AttributeData> attributes, INamedTypeSymbol interfaceType) 110public static bool TryGetAttributeImplementingInterface(this ImmutableArray<AttributeData> attributes, INamedTypeSymbol interfaceType, [NotNullWhen(true)] out AttributeData? matchedAttribute) 127foreach (var t in type.AllInterfaces) 137public static bool IsType(this INamedTypeSymbol type, string typeName, SemanticModel semanticModel) 140public static bool IsType(this INamedTypeSymbol type, INamedTypeSymbol otherType) 165parameterSymbol.Type is INamedTypeSymbol 171propertySymbol.Type is INamedTypeSymbol
src\Shared\RoslynUtils\WellKnownTypes.cs (10)
20private readonly INamedTypeSymbol?[] _lazyWellKnownTypes; 52_lazyWellKnownTypes = new INamedTypeSymbol?[WellKnownTypeData.WellKnownTypeNames.Length]; 56public INamedTypeSymbol Get(SpecialType type) 61public INamedTypeSymbol Get(WellKnownTypeData.WellKnownType type) 64var symbol = _lazyWellKnownTypes[index]; 75private INamedTypeSymbol GetAndCache(int index) 77var result = GetTypeByMetadataNameInTargetAssembly(WellKnownTypeData.WellKnownTypeNames[index]); 90private INamedTypeSymbol? GetTypeByMetadataNameInTargetAssembly(string metadataName) 105foreach (var type in types) 153foreach (var t in type.AllInterfaces)
WebApplicationBuilder\WebApplicationBuilderAnalyzer.cs (13)
41INamedTypeSymbol[] configureTypes = { wellKnownTypes.Get(WellKnownType.Microsoft_AspNetCore_Hosting_WebHostBuilderExtensions) }; 42INamedTypeSymbol[] configureWebHostTypes = { wellKnownTypes.Get(WellKnownType.Microsoft_Extensions_Hosting_GenericHostWebHostBuilderExtensions) }; 43INamedTypeSymbol[] userStartupTypes = 48INamedTypeSymbol[] configureLoggingTypes = 53INamedTypeSymbol[] configureServicesTypes = 58INamedTypeSymbol[] configureAppTypes = 65INamedTypeSymbol[] configureHostTypes = { wellKnownTypes.Get(WellKnownType.Microsoft_AspNetCore_Builder_ConfigureHostBuilder) }; 66INamedTypeSymbol[] useEndpointTypes = 315INamedTypeSymbol disallowedReceiverType, 317INamedTypeSymbol[] disallowedMethodTypes) 324var receiverType = invocation.GetReceiverType(context.CancellationToken); 341INamedTypeSymbol[] disallowedMethodTypes) 351var type = disallowedMethodTypes[i];
Microsoft.AspNetCore.App.SourceGenerators (1)
PublicTopLevelProgramGenerator.cs (1)
26compilation.GetEntryPoint(cancellationToken)?.ContainingSymbol is INamedTypeSymbol
Microsoft.AspNetCore.Components.Analyzers (25)
ComponentFacts.cs (1)
90public 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 (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; } 73public INamedTypeSymbol ParameterCaptureUnmatchedValuesRuntimeType { get; } 75public INamedTypeSymbol CascadingParameterAttribute { get; } 77public 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.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.Http.RequestDelegateGenerator (48)
src\Shared\RoslynUtils\ParsabilityHelper.cs (7)
117var iParsableTypeSymbol = wellKnownTypes.Get(WellKnownType.System_IParsable_T); 126var iBindableFromHttpContextTypeSymbol = wellKnownTypes.Get(WellKnownType.Microsoft_AspNetCore_Http_IBindableFromHttpContext_T); 127var constructedTypeSymbol = typeSymbol.AllInterfaces.FirstOrDefault( 140methodSymbol.ReturnType is INamedTypeSymbol returnType && 152methodSymbol.ReturnType is INamedTypeSymbol returnType && 156private static bool IsReturningValueTaskOfTOrNullableT(INamedTypeSymbol returnType, ITypeSymbol containingType, WellKnownTypes wellKnownTypes) 214if (bindAsyncMethod.ReturnType is INamedTypeSymbol returnType && !IsReturningValueTaskOfTOrNullableT(returnType, typeSymbol, wellKnownTypes))
src\Shared\RoslynUtils\SymbolExtensions.cs (17)
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 TryGetAttribute(this ImmutableArray<AttributeData> attributes, INamedTypeSymbol attributeType, [NotNullWhen(true)] out AttributeData? matchedAttribute) 85public static bool HasAttributeImplementingInterface(this ISymbol symbol, INamedTypeSymbol interfaceType) 90public static bool TryGetAttributeImplementingInterface(this ISymbol symbol, INamedTypeSymbol interfaceType, [NotNullWhen(true)] out AttributeData? matchedAttribute) 105public static bool HasAttributeImplementingInterface(this ImmutableArray<AttributeData> attributes, INamedTypeSymbol interfaceType) 110public static bool TryGetAttributeImplementingInterface(this ImmutableArray<AttributeData> attributes, INamedTypeSymbol interfaceType, [NotNullWhen(true)] out AttributeData? matchedAttribute) 127foreach (var t in type.AllInterfaces) 137public static bool IsType(this INamedTypeSymbol type, string typeName, SemanticModel semanticModel) 140public static bool IsType(this INamedTypeSymbol type, INamedTypeSymbol otherType) 165parameterSymbol.Type is INamedTypeSymbol 171propertySymbol.Type is INamedTypeSymbol
src\Shared\RoslynUtils\WellKnownTypes.cs (10)
20private readonly INamedTypeSymbol?[] _lazyWellKnownTypes; 52_lazyWellKnownTypes = new INamedTypeSymbol?[WellKnownTypeData.WellKnownTypeNames.Length]; 56public INamedTypeSymbol Get(SpecialType type) 61public INamedTypeSymbol Get(WellKnownTypeData.WellKnownType type) 64var symbol = _lazyWellKnownTypes[index]; 75private INamedTypeSymbol GetAndCache(int index) 77var result = GetTypeByMetadataNameInTargetAssembly(WellKnownTypeData.WellKnownTypeNames[index]); 90private INamedTypeSymbol? GetTypeByMetadataNameInTargetAssembly(string metadataName) 105foreach (var type in types) 153foreach (var t in type.AllInterfaces)
StaticRouteHandlerModel\Emitters\DiagnosticEmitter.cs (4)
34typeSymbol is INamedTypeSymbol && 35((INamedTypeSymbol)typeSymbol).TypeArguments.Any(a => a is ITypeParameterSymbol)) 41typeSymbol is INamedTypeSymbol && 42((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]; 81var resultType = WellKnownTypes.Get(WellKnownType.Microsoft_AspNetCore_Http_IResult);
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 (59)
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\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\Shared\Roslyn\MvcFacts.cs (5)
11public static bool IsController(INamedTypeSymbol type, INamedTypeSymbol controllerAttribute, INamedTypeSymbol nonControllerAttribute) 57public static bool IsControllerAction(IMethodSymbol method, INamedTypeSymbol nonActionAttribute, IMethodSymbol disposableDispose) 101private static INamedTypeSymbol GetDeclaringType(IMethodSymbol method)
TagHelpersInCodeBlocksAnalyzer.cs (5)
137INamedTypeSymbol taskType) 145public INamedTypeSymbol TaskType { get; } 151if (!TryGetType(SymbolNames.TagHelperRunnerTypeName, out var tagHelperRunnerType)) 156if (!TryGetType(SymbolNames.TaskTypeName, out var taskType)) 172bool TryGetType(string typeName, out INamedTypeSymbol typeSymbol)
TopLevelParameterNameAnalyzer.cs (26)
212INamedTypeSymbol bindAttribute, 213INamedTypeSymbol controllerAttribute, 214INamedTypeSymbol fromBodyAttribute, 215INamedTypeSymbol apiBehaviorMetadata, 216INamedTypeSymbol binderTypeProviderMetadata, 217INamedTypeSymbol modelNameProvider, 218INamedTypeSymbol nonControllerAttribute, 219INamedTypeSymbol nonActionAttribute, 237if (!TryGetType(SymbolNames.BindAttribute, out var bindAttribute)) 242if (!TryGetType(SymbolNames.ControllerAttribute, out var controllerAttribute)) 247if (!TryGetType(SymbolNames.FromBodyAttribute, out var fromBodyAttribute)) 252if (!TryGetType(SymbolNames.IApiBehaviorMetadata, out var apiBehaviorMetadata)) 257if (!TryGetType(SymbolNames.IBinderTypeProviderMetadata, out var iBinderTypeProviderMetadata)) 262if (!TryGetType(SymbolNames.IModelNameProvider, out var iModelNameProvider)) 267if (!TryGetType(SymbolNames.NonControllerAttribute, out var nonControllerAttribute)) 272if (!TryGetType(SymbolNames.NonActionAttribute, out var nonActionAttribute)) 277var disposable = compilation.GetSpecialType(SpecialType.System_IDisposable); 298bool TryGetType(string typeName, out INamedTypeSymbol typeSymbol) 305public INamedTypeSymbol BindAttribute { get; } 306public INamedTypeSymbol ControllerAttribute { get; } 307public INamedTypeSymbol FromBodyAttribute { get; } 308public INamedTypeSymbol IApiBehaviorMetadata { get; } 309public INamedTypeSymbol IBinderTypeProviderMetadata { get; } 310public INamedTypeSymbol IModelNameProvider { get; } 311public INamedTypeSymbol NonControllerAttribute { get; } 312public INamedTypeSymbol NonActionAttribute { get; }
ViewFeaturesAnalyzerContext.cs (3)
22public INamedTypeSymbol HtmlHelperType { get; } 24public INamedTypeSymbol HtmlHelperPartialExtensionsType { get; } 26private INamedTypeSymbol GetType(string name) => Context.Compilation.GetTypeByMetadataName(name);
Microsoft.AspNetCore.Mvc.Api.Analyzers (59)
ActualApiResponseMetadataFactory.cs (1)
65var defaultStatusCodeAttributeSymbol = symbolCache.DefaultStatusCodeAttribute;
AddResponseTypeAttributeCodeFixAction.cs (2)
135var statusCodesType = semanticModel.Compilation.GetTypeByMetadataName(ApiSymbolNames.HttpStatusCodes); 147private static Dictionary<int, string> GetStatusCodeConstants(INamedTypeSymbol statusCodesType)
ApiControllerSymbolCache.cs (46)
15if (!TryGetType(ApiSymbolNames.ApiConventionMethodAttribute, out var apiConventionMethodAttribute)) 20if (!TryGetType(ApiSymbolNames.ApiConventionNameMatchAttribute, out var apiConventionNameMatchAttribute)) 25if (!TryGetType(ApiSymbolNames.ApiConventionTypeAttribute, out var apiConventionTypeAttribute)) 30if (!TryGetType(ApiSymbolNames.ApiConventionTypeMatchAttribute, out var apiConventionTypeMatchAttribute)) 35if (!TryGetType(ApiSymbolNames.ControllerAttribute, out var controllerAttribute)) 40if (!TryGetType(ApiSymbolNames.DefaultStatusCodeAttribute, out var defaultStatusCodeAttribute)) 45if (!TryGetType(ApiSymbolNames.IActionResult, out var iActionResult)) 50if (!TryGetType(ApiSymbolNames.IApiBehaviorMetadata, out var iApiBehaviorMetadata)) 55if (!TryGetType(ApiSymbolNames.ModelStateDictionary, out var modelStateDictionary)) 60if (!TryGetType(ApiSymbolNames.NonActionAttribute, out var nonActionAttribute)) 65if (!TryGetType(ApiSymbolNames.NonControllerAttribute, out var nonControllerAttribute)) 70if (!TryGetType(ApiSymbolNames.ProblemDetails, out var problemDetails)) 75if (!TryGetType(ApiSymbolNames.ProducesDefaultResponseTypeAttribute, out var producesDefaultResponseTypeAttribute)) 80if (!TryGetType(ApiSymbolNames.ProducesErrorResponseTypeAttribute, out var producesErrorResponseTypeAttribute)) 85if (!TryGetType(ApiSymbolNames.ProducesResponseTypeAttribute, out var producesResponseTypeAttribute)) 90var statusCodeActionResult = compilation.GetTypeByMetadataName(ApiSymbolNames.IStatusCodeActionResult); 97var disposable = compilation.GetSpecialType(SpecialType.System_IDisposable); 126bool TryGetType(string typeName, out INamedTypeSymbol typeSymbol) 134INamedTypeSymbol apiConventionMethodAttribute, 135INamedTypeSymbol apiConventionNameMatchAttribute, 136INamedTypeSymbol apiConventionTypeAttribute, 137INamedTypeSymbol apiConventionTypeMatchAttribute, 138INamedTypeSymbol controllerAttribute, 139INamedTypeSymbol defaultStatusCodeAttribute, 140INamedTypeSymbol actionResult, 141INamedTypeSymbol apiBehaviorMetadata, 145INamedTypeSymbol nonActionAttribute, 146INamedTypeSymbol nonControllerAttribute, 147INamedTypeSymbol problemDetails, 148INamedTypeSymbol producesDefaultResponseTypeAttribute, 149INamedTypeSymbol producesResponseTypeAttribute, 150INamedTypeSymbol producesErrorResponseTypeAttribute) 171public INamedTypeSymbol ApiConventionMethodAttribute { get; } 173public INamedTypeSymbol ApiConventionNameMatchAttribute { get; } 175public INamedTypeSymbol ApiConventionTypeAttribute { get; } 177public INamedTypeSymbol ApiConventionTypeMatchAttribute { get; } 179public INamedTypeSymbol ControllerAttribute { get; } 181public INamedTypeSymbol DefaultStatusCodeAttribute { get; } 183public INamedTypeSymbol IActionResult { get; } 185public INamedTypeSymbol IApiBehaviorMetadata { get; } 193public INamedTypeSymbol NonActionAttribute { get; } 195public INamedTypeSymbol NonControllerAttribute { get; } 197public INamedTypeSymbol ProblemDetails { get; } 199public INamedTypeSymbol ProducesDefaultResponseTypeAttribute { get; } 201public INamedTypeSymbol ProducesResponseTypeAttribute { get; } 203public INamedTypeSymbol ProducesErrorResponseTypeAttribute { get; }
src\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\Shared\Roslyn\MvcFacts.cs (5)
11public static bool IsController(INamedTypeSymbol type, INamedTypeSymbol controllerAttribute, INamedTypeSymbol nonControllerAttribute) 57public static bool IsControllerAction(IMethodSymbol method, INamedTypeSymbol nonActionAttribute, IMethodSymbol disposableDispose) 101private static INamedTypeSymbol GetDeclaringType(IMethodSymbol method)
Microsoft.AspNetCore.OpenApi.SourceGenerators (17)
Helpers\AssemblyTypeSymbolsVisitor.cs (4)
18private readonly HashSet<INamedTypeSymbol> _exportedTypes = new(SymbolEqualityComparer.Default); 22public ImmutableArray<INamedTypeSymbol> GetPublicTypes() => [.. _exportedTypes]; 43public override void VisitNamedType(INamedTypeSymbol type) 54foreach (var nestedType in nestedTypes)
Helpers\ISymbolExtensions.cs (9)
23foreach (var iface in symbol.ContainingType.AllInterfaces) 68INamedTypeSymbol nt => nt.TypeParameters, 77var containingType = symbol.ContainingType; 91INamedTypeSymbol nt => nt.TypeArguments, 118foreach (var baseType in symbol.ContainingType.GetBaseTypes()) 129static bool TryFindLooseMatch(ISymbol symbol, INamedTypeSymbol baseType, [NotNullWhen(true)] out ISymbol? looseMatch) 183public static IEnumerable<INamedTypeSymbol> GetBaseTypes(this ITypeSymbol? type) 185var current = type?.BaseType; 202var containingType = symbol.ContainingType;
XmlCommentGenerator.Parser.cs (2)
79foreach (var type in types) 127symbol is not INamedTypeSymbol { TypeKind: TypeKind.Class, IsStatic: true })
XmlComments\XmlComment.InheritDoc.cs (2)
284var baseType = memberSymbol.ContainingType.BaseType; 295else if (memberSymbol is INamedTypeSymbol typeSymbol)
Microsoft.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.CodeAnalysis (135)
CodeGen\PermissionSetAttribute.cs (1)
85Debug.Assert(((INamedTypeSymbol)iSymbol).GetMembers(HexPropertyName).Any(
Compilation\Compilation.cs (43)
346public INamedTypeSymbol CreateErrorTypeSymbol(INamespaceOrTypeSymbol? container, string name, int arity) 361protected abstract INamedTypeSymbol CommonCreateErrorTypeSymbol(INamespaceOrTypeSymbol? container, string name, int arity); 972public INamedTypeSymbol GetSpecialType(SpecialType specialType) 979return (INamedTypeSymbol)CommonGetSpecialType(specialType).GetITypeSymbol(); 1013public INamedTypeSymbol ObjectType { get { return CommonObjectType; } } 1014protected abstract INamedTypeSymbol CommonObjectType { get; } 1033public INamedTypeSymbol? ScriptClass { get { return CommonScriptClass; } } 1034protected abstract INamedTypeSymbol? CommonScriptClass { get; } 1041protected INamedTypeSymbol? CommonBindScriptClass() 1060foreach (INamedTypeSymbol candidate in container.GetTypeMembers(parts[parts.Length - 1])) 1133ImmutableArray<INamedTypeSymbol> callingConventionTypes = default) 1144ImmutableArray<INamedTypeSymbol> callingConventionTypes); 1150public INamedTypeSymbol CreateNativeIntegerTypeSymbol(bool signed) 1155protected abstract INamedTypeSymbol CommonCreateNativeIntegerTypeSymbol(bool signed); 1163private ConcurrentCache<string, INamedTypeSymbol?>? _getTypeCache; 1165private ConcurrentCache<string, ImmutableArray<INamedTypeSymbol>>? _getTypesCache; 1207public INamedTypeSymbol? GetTypeByMetadataName(string fullyQualifiedMetadataName) 1210ref _getTypeCache, static () => new ConcurrentCache<string, INamedTypeSymbol?>(50, ReferenceEqualityComparer.Instance)); 1212if (!getTypeCache.TryGetValue(fullyQualifiedMetadataName, out INamedTypeSymbol? val)) 1217|| !getTypeCache.TryGetValue(fullyQualifiedMetadataName, out var addedType) // Could fail if the type was already evicted from the cache 1223protected abstract INamedTypeSymbol? CommonGetTypeByMetadataName(string metadataName); 1238public ImmutableArray<INamedTypeSymbol> GetTypesByMetadataName(string fullyQualifiedMetadataName) 1241ref _getTypesCache, static () => new ConcurrentCache<string, ImmutableArray<INamedTypeSymbol>>(50, ReferenceEqualityComparer.Instance)); 1243if (!getTypesCache.TryGetValue(fullyQualifiedMetadataName, out ImmutableArray<INamedTypeSymbol> val)) 1254ImmutableArray<INamedTypeSymbol> getTypesByMetadataNameImpl() 1256ArrayBuilder<INamedTypeSymbol>? typesByMetadataName = null; 1279return typesByMetadataName?.ToImmutableAndFree() ?? ImmutableArray<INamedTypeSymbol>.Empty; 1281void addIfNotNull(INamedTypeSymbol? toAdd) 1285typesByMetadataName ??= ArrayBuilder<INamedTypeSymbol>.GetInstance(); 1296public INamedTypeSymbol CreateTupleTypeSymbol( 1337public INamedTypeSymbol CreateTupleTypeSymbol( 1401protected abstract INamedTypeSymbol CommonCreateTupleTypeSymbol( 1413public INamedTypeSymbol CreateTupleTypeSymbol( 1414INamedTypeSymbol underlyingType, 1433public INamedTypeSymbol CreateTupleTypeSymbol( 1434INamedTypeSymbol underlyingType, 1441protected abstract INamedTypeSymbol CommonCreateTupleTypeSymbol( 1442INamedTypeSymbol underlyingType, 1453public INamedTypeSymbol CreateAnonymousTypeSymbol( 1522public INamedTypeSymbol CreateAnonymousTypeSymbol( 1531protected abstract INamedTypeSymbol CommonCreateAnonymousTypeSymbol( 1613/// compilation. <paramref name="within"/> is required to be an <see cref="INamedTypeSymbol"/> or <see cref="IAssemblySymbol"/>. 1641if (!(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)
311private INamedTypeSymbol? _lazyGeneratedCodeAttribute; 1316static ImmutableHashSet<ISymbol> computeGeneratedCodeSymbolsInTree(SyntaxTree tree, Compilation compilation, INamedTypeSymbol generatedCodeAttribute, CancellationToken cancellationToken) 1697for (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)
551var 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 (16)
261private static int GetTotalTypeParameterCount(INamedTypeSymbol? symbol) 267symbol = symbol.ContainingSymbol as INamedTypeSymbol; 323/// This will always succeed for a <see cref="INamespaceSymbol"/> or <see cref="INamedTypeSymbol"/>. It may not 381public override void VisitNamedType(INamedTypeSymbol symbol) 521public override bool VisitNamedType(INamedTypeSymbol symbol) 583public override bool VisitNamedType(INamedTypeSymbol symbol) 657Debug.Assert(symbol.ContainingSymbol is null or INamedTypeSymbol or IMethodSymbol); 674var b = GetTotalTypeParameterCount(container as INamedTypeSymbol); 1001var typeContext = methodContext != null ? methodContext.ContainingType : typeParameterContext as INamedTypeSymbol; 1052results[i] = ((INamedTypeSymbol)results[i]).Construct(typeArgs); 1171var namedType = (INamedTypeSymbol)symbol; 1194if (symbol.Kind == SymbolKind.Namespace || (symbol.Kind == SymbolKind.NamedType && ((INamedTypeSymbol)symbol).Arity == 0)) 1410private static ITypeParameterSymbol? GetNthTypeParameter(INamedTypeSymbol typeSymbol, int n) 1428private 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)
2411INamedTypeSymbol booleanType = _compilation.GetSpecialType(SpecialType.System_Boolean); 2469INamedTypeSymbol booleanType = _compilation.GetSpecialType(SpecialType.System_Boolean); 2570INamedTypeSymbol booleanType = _compilation.GetSpecialType(SpecialType.System_Boolean); 3130((INamedTypeSymbol)operation.Target.Type!).TypeArguments[0].Equals(operation.Type)) 5466INamedTypeSymbol booleanType = _compilation.GetSpecialType(SpecialType.System_Boolean); 6379_currentImplicitInstance = new ImplicitInstanceInfo((INamedTypeSymbol)operation.Type); 7740INamedTypeSymbol booleanType = _compilation.GetSpecialType(SpecialType.System_Boolean); 8021var 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 (2)
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
SymbolDisplay\AbstractSymbolDisplayVisitor.cs (8)
125protected abstract void AddExplicitlyCastedLiteralValue(INamedTypeSymbol namedType, SpecialType type, object value); 144AddEnumConstantValue((INamedTypeSymbol)type, constantValue, preferNumericValueOrExpandedFlagsForEnum); 152private void AddEnumConstantValue(INamedTypeSymbol enumType, object constantValue, bool preferNumericValueOrExpandedFlags) 195var type = ctor.ContainingType; 212private void AddFlagsEnumConstantValue(INamedTypeSymbol enumType, object constantValue, bool preferNumericValueOrExpandedFlags) 231INamedTypeSymbol enumType, object constantValue, 312INamedTypeSymbol enumType, 333private void AddNonFlagsEnumConstantValue(INamedTypeSymbol enumType, object constantValue)
SymbolDisplay\AbstractSymbolDisplayVisitor_Minimal.cs (2)
21protected bool NameBoundSuccessfullyToSameSymbol(INamedTypeSymbol symbol) 71arity = ((INamedTypeSymbol)candidate).Arity;
Symbols\Attributes\CommonAttributeData.cs (2)
27public INamedTypeSymbol? AttributeClass { get { return CommonAttributeClass; } } 28protected abstract INamedTypeSymbol? CommonAttributeClass { get; }
Symbols\CustomModifier.cs (1)
21public abstract INamedTypeSymbol Modifier { get; }
Symbols\IAssemblySymbol.cs (3)
63INamedTypeSymbol? GetTypeByMetadataName(string fullyQualifiedMetadataName); 76INamedTypeSymbol? ResolveForwardedType(string fullyQualifiedMetadataName); 81ImmutableArray<INamedTypeSymbol> GetForwardedTypes();
Symbols\IMethodSymbol.cs (2)
227ImmutableArray<INamedTypeSymbol> UnmanagedCallingConventionTypes { get; } 290INamedTypeSymbol? AssociatedAnonymousDelegate { get; }
Symbols\INamedTypeSymbol.cs (8)
101new INamedTypeSymbol OriginalDefinition { get; } 116INamedTypeSymbol? EnumUnderlyingType { get; } 123INamedTypeSymbol ConstructedFrom { get; } 130INamedTypeSymbol Construct(params ITypeSymbol[] typeArguments); 135INamedTypeSymbol Construct(ImmutableArray<ITypeSymbol> typeArguments, ImmutableArray<NullableAnnotation> typeArgumentNullableAnnotations); 140INamedTypeSymbol ConstructUnboundGenericType(); 179INamedTypeSymbol? TupleUnderlyingType { get; } 198INamedTypeSymbol? NativeIntegerUnderlyingType { get; }
Symbols\INamespaceOrTypeSymbol.cs (3)
39ImmutableArray<INamedTypeSymbol> GetTypeMembers(); 47ImmutableArray<INamedTypeSymbol> GetTypeMembers(string name); 55ImmutableArray<INamedTypeSymbol> GetTypeMembers(string name, int arity);
Symbols\ISymbol.cs (2)
85/// Gets the <see cref="INamedTypeSymbol"/> for the containing type. Returns null if the 88INamedTypeSymbol ContainingType { get; }
Symbols\ISymbolExtensions.cs (2)
125return type is INamedTypeSymbol 152if (scopeType is not INamedTypeSymbol { Name: WellKnownMemberNames.LockScopeTypeName, Arity: 0, IsValueType: true, IsRefLikeType: true, DeclaredAccessibility: Accessibility.Public } ||
Symbols\ITypeParameterSymbol.cs (1)
43INamedTypeSymbol? DeclaringType { get; }
Symbols\ITypeSymbol.cs (5)
32INamedTypeSymbol? BaseType { get; } 39ImmutableArray<INamedTypeSymbol> Interfaces { get; } 52ImmutableArray<INamedTypeSymbol> AllInterfaces { get; } 227return ((INamedTypeSymbol)type).TypeArguments[0]; 257return (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 (996)
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\Compilers\Core\Portable\SourceGeneration\GeneratedCodeUtilities.cs (1)
19ISymbol symbol, INamedTypeSymbol generatedCodeAttribute)
src\RoslynAnalyzers\Microsoft.CodeAnalysis.BannedApiAnalyzers\Core\SymbolIsBannedAnalyzerBase.cs (2)
216INamedTypeSymbol namedType => namedType.IsAttribute(), 314case INamedTypeSymbol namedTypeSymbol:
src\RoslynAnalyzers\Utilities\Compiler\CodeMetrics\CodeAnalysisMetricData.AssemblyMetricData.cs (2)
21ImmutableHashSet<INamedTypeSymbol> coupledNamedTypes, 45var coupledTypesBuilder = ImmutableHashSet.CreateBuilder<INamedTypeSymbol>();
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\RoslynAnalyzers\Utilities\Compiler\CodeMetrics\CodeAnalysisMetricData.EventMetricData.cs (2)
18ImmutableHashSet<INamedTypeSymbol> coupledNamedTypes, 30var coupledTypesBuilder = ImmutableHashSet.CreateBuilder<INamedTypeSymbol>();
src\RoslynAnalyzers\Utilities\Compiler\CodeMetrics\CodeAnalysisMetricData.FieldMetricData.cs (2)
18ImmutableHashSet<INamedTypeSymbol> coupledNamedTypes, 29var coupledTypesBuilder = ImmutableHashSet.CreateBuilder<INamedTypeSymbol>();
src\RoslynAnalyzers\Utilities\Compiler\CodeMetrics\CodeAnalysisMetricData.MethodMetricData.cs (2)
18ImmutableHashSet<INamedTypeSymbol> coupledNamedTypes, 29var coupledTypesBuilder = ImmutableHashSet.CreateBuilder<INamedTypeSymbol>();
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\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\RoslynAnalyzers\Utilities\Compiler\CodeMetrics\CodeAnalysisMetricData.PropertyMetricData.cs (2)
18ImmutableHashSet<INamedTypeSymbol> coupledNamedTypes, 30var coupledTypesBuilder = ImmutableHashSet.CreateBuilder<INamedTypeSymbol>();
src\RoslynAnalyzers\Utilities\Compiler\CodeMetrics\CodeMetricsAnalysisContext.cs (2)
18Func<INamedTypeSymbol, bool>? isExcludedFromInheritanceCountFunc = null) 32public Func<INamedTypeSymbol, bool> IsExcludedFromInheritanceCountFunc { get; }
src\RoslynAnalyzers\Utilities\Compiler\CodeMetrics\MetricsHelper.cs (12)
39internal static void AddCoupledNamedTypes(ImmutableHashSet<INamedTypeSymbol>.Builder builder, WellKnownTypeProvider wellKnownTypeProvider, 40ImmutableHashSet<INamedTypeSymbol> coupledTypes) 42foreach (var coupledType in coupledTypes) 48internal static void AddCoupledNamedTypes(ImmutableHashSet<INamedTypeSymbol>.Builder builder, WellKnownTypeProvider wellKnownTypeProvider, 54internal static void AddCoupledNamedTypes(ImmutableHashSet<INamedTypeSymbol>.Builder builder, WellKnownTypeProvider wellKnownTypeProvider, 195ImmutableHashSet<INamedTypeSymbol>.Builder builder, 349private static void AddCoupledNamedTypesCore(ImmutableHashSet<INamedTypeSymbol>.Builder builder, ITypeSymbol typeOpt, 352if (typeOpt is INamedTypeSymbol usedType && 370static bool isIgnoreableType(INamedTypeSymbol namedType, WellKnownTypeProvider wellKnownTypeProvider) 400internal static void RemoveContainingTypes(ISymbol symbol, ImmutableHashSet<INamedTypeSymbol>.Builder coupledTypesBuilder) 402var namedType = symbol as INamedTypeSymbol ?? symbol.ContainingType;
src\RoslynAnalyzers\Utilities\Compiler\DiagnosticHelpers.cs (1)
68if (symbol is INamedTypeSymbol namedType &&
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\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\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) 208private static bool HasDisposeCloseAsyncMethodSignature(this IMethodSymbol method, INamedTypeSymbol? taskType) 216INamedTypeSymbol? task, 217INamedTypeSymbol? valueTask, 218INamedTypeSymbol? configuredValueTaskAwaitable) 231private static bool HasOverriddenDisposeCoreAsyncMethodSignature(this IMethodSymbol method, [NotNullWhen(returnValue: true)] INamedTypeSymbol? task) 244private static bool HasVirtualOrOverrideDisposeCoreAsyncMethodSignature(this IMethodSymbol method, [NotNullWhen(returnValue: true)] INamedTypeSymbol? valueTask) 258INamedTypeSymbol? iDisposable = compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemIDisposable); 259INamedTypeSymbol? iAsyncDisposable = compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemIAsyncDisposable); 260INamedTypeSymbol? configuredAsyncDisposable = compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemRuntimeCompilerServicesConfiguredAsyncDisposable); 261INamedTypeSymbol? task = compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemThreadingTasksTask); 262INamedTypeSymbol? valueTask = compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemThreadingTasksValueTask); 263INamedTypeSymbol? configuredValueTaskAwaitable = compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemRuntimeCompilerServicesConfiguredValueTaskAwaitable); 272INamedTypeSymbol? iDisposable, 273INamedTypeSymbol? iAsyncDisposable, 274INamedTypeSymbol? configuredAsyncDisposable, 275INamedTypeSymbol? task, 276INamedTypeSymbol? valueTask, 277INamedTypeSymbol? configuredValueTaskAwaitable) 321public static bool IsSerializationConstructor([NotNullWhen(returnValue: true)] this IMethodSymbol? method, INamedTypeSymbol? serializationInfoType, INamedTypeSymbol? streamingContextType) 327public static bool IsGetObjectData([NotNullWhen(returnValue: true)] this IMethodSymbol? method, INamedTypeSymbol? serializationInfoType, INamedTypeSymbol? streamingContextType) 374public static bool IsCollectionAddMethod(this IMethodSymbol method, ImmutableHashSet<INamedTypeSymbol> iCollectionTypes) 395public static bool IsTaskFromResultMethod(this IMethodSymbol method, [NotNullWhen(returnValue: true)] INamedTypeSymbol? taskType) 404public static bool IsTaskConfigureAwaitMethod(this IMethodSymbol method, [NotNullWhen(returnValue: true)] INamedTypeSymbol? genericTaskType) 416public static bool IsAsyncDisposableConfigureAwaitMethod(this IMethodSymbol method, [NotNullWhen(returnValue: true)] INamedTypeSymbol? asyncDisposableType, [NotNullWhen(returnValue: true)] INamedTypeSymbol? taskAsyncEnumerableExtensions) 493public static bool IsLockMethod(this IMethodSymbol method, [NotNullWhen(returnValue: true)] INamedTypeSymbol? systemThreadingMonitor) 503public static bool IsInterlockedExchangeMethod(this IMethodSymbol method, INamedTypeSymbol? systemThreadingInterlocked) 515public static bool IsInterlockedCompareExchangeMethod(this IMethodSymbol method, INamedTypeSymbol? systemThreadingInterlocked) 546public static bool IsBenchmarkOrXUnitTestMethod(this IMethodSymbol method, ConcurrentDictionary<INamedTypeSymbol, bool> knownTestAttributes, INamedTypeSymbol? benchmarkAttribute, INamedTypeSymbol? xunitFactAttribute) 571var typeSymbol = methodSymbol.ContainingType;
src\RoslynAnalyzers\Utilities\Compiler\Extensions\INamedTypeSymbolExtensions.cs (9)
19public static bool IsFileLocal(this INamedTypeSymbol symbol) => symbol.IsFileLocal; 43public static bool DerivesFromOrImplementsAnyConstructionOf(this INamedTypeSymbol type, INamedTypeSymbol parentType) 50for (INamedTypeSymbol? baseType = type.OriginalDefinition; 68public static bool OverridesEquals(this INamedTypeSymbol symbol) 74public static bool IsBenchmarkOrXUnitTestAttribute(this INamedTypeSymbol attributeClass, ConcurrentDictionary<INamedTypeSymbol, bool> knownTestAttributes, INamedTypeSymbol? benchmarkAttribute, INamedTypeSymbol? xunitFactAttribute)
src\RoslynAnalyzers\Utilities\Compiler\Extensions\IPropertySymbolExtensions.cs (1)
36var typeSymbol = propertySymbol.ContainingType;
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\RoslynAnalyzers\Utilities\Compiler\Extensions\ITypeSymbolExtensions.cs (14)
116INamedTypeSymbol? iDisposable, 117INamedTypeSymbol? iAsyncDisposable, 118INamedTypeSymbol? configuredAsyncDisposable) 140static bool IsInterfaceOrImplementsInterface(ITypeSymbol type, INamedTypeSymbol? interfaceType) 150public static IEnumerable<AttributeData> GetApplicableAttributes(this INamedTypeSymbol type, INamedTypeSymbol? attributeUsageAttribute) 182static bool IsInheritedAttribute(AttributeData attributeData, INamedTypeSymbol attributeUsageAttribute) 184for (var currentAttributeClass = attributeData.AttributeClass; 217public static IEnumerable<AttributeData> GetApplicableExportAttributes(this INamedTypeSymbol? type, INamedTypeSymbol? exportAttributeV1, INamedTypeSymbol? exportAttributeV2, INamedTypeSymbol? inheritedExportAttribute) 265=> typeSymbol.IsNullableValueType() && ((INamedTypeSymbol)typeSymbol).TypeArguments[0].SpecialType == SpecialType.System_Boolean; 268=> (typeSymbol as INamedTypeSymbol)?.TupleUnderlyingType ?? typeSymbol;
src\RoslynAnalyzers\Utilities\Compiler\Options\AnalyzerOptionsExtensions.cs (9)
281if (symbol is INamedTypeSymbol namedType && !excludedTypeNamesWithDerivedTypes.IsEmpty) 283foreach (var type in namedType.GetBaseTypesAndThis()) 379public static SymbolNamesWithValueOption<INamedTypeSymbol?> GetAdditionalRequiredGenericInterfaces( 386private static SymbolNamesWithValueOption<INamedTypeSymbol?> GetAdditionalRequiredGenericInterfaces( 394static SymbolNamesWithValueOption<INamedTypeSymbol?>.NameParts GetParts(string name, Compilation compilation) 401return new SymbolNamesWithValueOption<INamedTypeSymbol?>.NameParts(name, null); 413matchingSymbols[0] is not INamedTypeSymbol namedType || 418return new SymbolNamesWithValueOption<INamedTypeSymbol?>.NameParts(split[0], null); 421return new SymbolNamesWithValueOption<INamedTypeSymbol?>.NameParts(split[0], namedType);
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\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\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Extensions\OperationExtensions.cs (2)
405var notImplementedExceptionType = compilation.NotImplementedExceptionType(); 454static bool IsThrowNotImplementedOperation(INamedTypeSymbol notImplementedExceptionType, IOperation? operation)
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); 177var enumerableType = semanticModel.Compilation.IEnumerableOfTType();
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\NamingStyles\NamingStyleRules.cs (3)
65var containingType = symbol.ContainingType; 87var containingType = symbol.ContainingType; 90foreach (var implementedInterface in implementedInterfaces)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Services\SemanticFacts\ISemanticFacts.cs (4)
67bool LastEnumValueHasInitializer(INamedTypeSymbol namedTypeSymbol); 88bool IsPartial(INamedTypeSymbol typeSymbol, CancellationToken cancellationToken); 107bool IsInExpressionTree(SemanticModel semanticModel, SyntaxNode node, [NotNullWhen(true)] INamedTypeSymbol? expressionType, CancellationToken cancellationToken); 122bool TryGetPrimaryConstructor(INamedTypeSymbol typeSymbol, [NotNullWhen(true)] out IMethodSymbol? primaryConstructor);
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\SymbolKey\SymbolKey.AnonymousFunctionOrDelegateSymbolKey.cs (1)
65var anonymousDelegate = methodSymbol.AssociatedAnonymousDelegate;
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\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\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\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\SymbolKey\SymbolKey.FunctionPointerTypeSymbolKey.cs (2)
37var callingConventionModifiers = ImmutableArray<INamedTypeSymbol>.Empty; 40using var modifiersBuilder = reader.ReadSymbolKeyArray<IFunctionPointerTypeSymbol, INamedTypeSymbol>(
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\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\SymbolKey\SymbolKey.ParameterSymbolKey.cs (1)
64var delegateInvoke = (eventSymbol.Type as INamedTypeSymbol)?.DelegateInvokeMethod;
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\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\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Utilities\AbstractSpeculationAnalyzer.cs (5)
417var type = methodSymbol.ContainingType; 418var newType = newMethodSymbol.ContainingType; 491private static bool EnumTypesAreCompatible(INamedTypeSymbol type1, INamedTypeSymbol type2) 992var newSymbolContainingType = newSymbol.ContainingType;
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Utilities\EnumValueUtilities.cs (1)
21public static object GetNextEnumValue(INamedTypeSymbol enumType)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Compilation\CompilationExtensions.cs (78)
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? EventArgsType(this Compilation compilation) 129public static INamedTypeSymbol? NotImplementedExceptionType(this Compilation compilation) 132public static INamedTypeSymbol? EqualityComparerOfTType(this Compilation compilation) 135public static INamedTypeSymbol? ActionType(this Compilation compilation) 138public static INamedTypeSymbol? ExpressionOfTType(this Compilation compilation) 141public static INamedTypeSymbol? EditorBrowsableAttributeType(this Compilation compilation) 144public static INamedTypeSymbol? EditorBrowsableStateType(this Compilation compilation) 147public static INamedTypeSymbol? TaskType(this Compilation compilation) 150public static INamedTypeSymbol? TaskOfTType(this Compilation compilation) 153public static INamedTypeSymbol? ValueTaskType(this Compilation compilation) 156public static INamedTypeSymbol? ValueTaskOfTType(this Compilation compilation) 159public static INamedTypeSymbol? IEnumerableType(this Compilation compilation) 162public static INamedTypeSymbol? IEnumerableOfTType(this Compilation compilation) 165public static INamedTypeSymbol? IEnumeratorOfTType(this Compilation compilation) 168public static INamedTypeSymbol? IListOfTType(this Compilation compilation) 171public static INamedTypeSymbol? IReadOnlyListOfTType(this Compilation compilation) 174public static INamedTypeSymbol? ISetOfTType(this Compilation compilation) 177public static INamedTypeSymbol? IReadOnlySetOfTType(this Compilation compilation) 180public static INamedTypeSymbol? IAsyncEnumerableOfTType(this Compilation compilation) 183public static INamedTypeSymbol? IAsyncEnumeratorOfTType(this Compilation compilation) 186public static INamedTypeSymbol? ImmutableArrayOfTType(this Compilation compilation) 189public static INamedTypeSymbol? SerializableAttributeType(this Compilation compilation) 192public static INamedTypeSymbol? CoClassType(this Compilation compilation) 195public static INamedTypeSymbol? ComAliasNameAttributeType(this Compilation compilation) 198public static INamedTypeSymbol? SuppressMessageAttributeType(this Compilation compilation) 201public static INamedTypeSymbol? TupleElementNamesAttributeType(this Compilation compilation) 204public static INamedTypeSymbol? NativeIntegerAttributeType(this Compilation compilation) 207public static INamedTypeSymbol? DynamicAttributeType(this Compilation compilation) 210public static INamedTypeSymbol? LazyOfTType(this Compilation compilation) 213public static INamedTypeSymbol? ISerializableType(this Compilation compilation) 216public static INamedTypeSymbol? SerializationInfoType(this Compilation compilation) 219public static INamedTypeSymbol? StreamingContextType(this Compilation compilation) 222public static INamedTypeSymbol? OnDeserializingAttribute(this Compilation compilation) 225public static INamedTypeSymbol? OnDeserializedAttribute(this Compilation compilation) 228public static INamedTypeSymbol? OnSerializingAttribute(this Compilation compilation) 231public static INamedTypeSymbol? OnSerializedAttribute(this Compilation compilation) 234public static INamedTypeSymbol? ComRegisterFunctionAttribute(this Compilation compilation) 237public static INamedTypeSymbol? ComUnregisterFunctionAttribute(this Compilation compilation) 240public static INamedTypeSymbol? ConditionalAttribute(this Compilation compilation) 243public static INamedTypeSymbol? ObsoleteAttribute(this Compilation compilation) 246public static INamedTypeSymbol? SystemCompositionImportingConstructorAttribute(this Compilation compilation) 249public static INamedTypeSymbol? SystemComponentModelCompositionImportingConstructorAttribute(this Compilation compilation) 252public static INamedTypeSymbol? SystemIDisposableType(this Compilation compilation) 255public static INamedTypeSymbol? NotNullAttribute(this Compilation compilation) 258public static INamedTypeSymbol? MaybeNullAttribute(this Compilation compilation) 261public static INamedTypeSymbol? MaybeNullWhenAttribute(this Compilation compilation) 264public static INamedTypeSymbol? AllowNullAttribute(this Compilation compilation) 267public static INamedTypeSymbol? DisallowNullAttribute(this Compilation compilation) 270public static INamedTypeSymbol? DataMemberAttribute(this Compilation compilation) 273public static INamedTypeSymbol? DataContractAttribute(this Compilation compilation) 276public static INamedTypeSymbol? AsyncMethodBuilderAttribute(this Compilation compilation) 279public static INamedTypeSymbol? CancellationTokenType(this Compilation compilation) 282public static INamedTypeSymbol? ValueTupleType(this Compilation compilation, int arity) 285public static INamedTypeSymbol? ListOfTType(this Compilation compilation) 288public static INamedTypeSymbol? ReadOnlySpanOfTType(this Compilation compilation) 291public static INamedTypeSymbol? SpanOfTType(this Compilation compilation) 294public static INamedTypeSymbol? InterpolatedStringHandlerAttributeType(this Compilation compilation) 322public static INamedTypeSymbol? GetBestTypeByMetadataName(this Compilation compilation, string fullyQualifiedMetadataName) 324INamedTypeSymbol? type = null; 326foreach (var currentType in compilation.GetTypesByMetadataName(fullyQualifiedMetadataName)) 361foreach (var candidateTopLevelType in compilation.SourceModule.GlobalNamespace.GetTypeMembers(WellKnownMemberNames.TopLevelStatementsEntryPointTypeName, arity: 0)) 373public static INamedTypeSymbol? TryGetCallingConventionSymbol(this Compilation compilation, string callingConvention)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\IMethodSymbolExtensions.cs (4)
44public static bool HasEventHandlerSignature(this IMethodSymbol method, [NotNullWhen(returnValue: true)] INamedTypeSymbol? eventArgsType) 103public static bool IsEntryPoint(this IMethodSymbol methodSymbol, INamedTypeSymbol? taskType, INamedTypeSymbol? genericTaskType) 119if (method.ReturnType is not INamedTypeSymbol { Arity: 0 })
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\INamedTypeSymbolExtensions.cs (73)
23public static IEnumerable<INamedTypeSymbol> GetBaseTypesAndThis(this INamedTypeSymbol? namedType) 25var current = namedType; 33public static ImmutableArray<ITypeParameterSymbol> GetAllTypeParameters(this INamedTypeSymbol? symbol) 39public static ImmutableArray<ITypeSymbol> GetAllTypeArguments(this INamedTypeSymbol? symbol) 45private static Stack<INamedTypeSymbol> GetContainmentStack(INamedTypeSymbol? symbol) 47var stack = new Stack<INamedTypeSymbol>(); 48for (var current = symbol; current != null; current = current.ContainingType) 56public static bool IsContainedWithin([NotNullWhen(returnValue: true)] this INamedTypeSymbol? symbol, INamedTypeSymbol outer) 59for (var current = symbol; current != null; current = current.ContainingType) 70public static ISymbol? FindImplementationForAbstractMember(this INamedTypeSymbol? type, ISymbol symbol) 81private static bool ImplementationExists(INamedTypeSymbol classOrStructType, ISymbol member) 85this INamedTypeSymbol classOrStructType, 87Func<INamedTypeSymbol, ISymbol, bool> isValidImplementation, 117private static bool IsInterfacePropertyImplemented(INamedTypeSymbol classOrStructType, IPropertySymbol propertySymbol) 125static bool IsAccessorImplemented(IMethodSymbol? accessor, INamedTypeSymbol classOrStructType) 131private static bool IsAbstractPropertyImplemented(INamedTypeSymbol classOrStructType, IPropertySymbol propertySymbol) 154this INamedTypeSymbol classOrStructType, 156Func<INamedTypeSymbol, ISymbol, bool> isValid, 179public static ImmutableArray<(INamedTypeSymbol type, ImmutableArray<ISymbol> members)> GetAllUnimplementedMembers( 180this INamedTypeSymbol classOrStructType, 181IEnumerable<INamedTypeSymbol> interfaces, 197static ImmutableArray<ISymbol> GetImplicitlyImplementableMembers(INamedTypeSymbol type, ISymbol within) 249public static ImmutableArray<(INamedTypeSymbol type, ImmutableArray<ISymbol> members)> GetAllUnimplementedMembersInThis( 250this INamedTypeSymbol classOrStructType, 251IEnumerable<INamedTypeSymbol> interfacesOrAbstractClasses, 267public static ImmutableArray<(INamedTypeSymbol type, ImmutableArray<ISymbol> members)> GetAllUnimplementedMembersInThis( 268this INamedTypeSymbol classOrStructType, 269IEnumerable<INamedTypeSymbol> interfacesOrAbstractClasses, 270Func<INamedTypeSymbol, ISymbol, ImmutableArray<ISymbol>> interfaceMemberGetter, 286public static ImmutableArray<(INamedTypeSymbol type, ImmutableArray<ISymbol> members)> GetAllUnimplementedExplicitMembers( 287this INamedTypeSymbol classOrStructType, 288IEnumerable<INamedTypeSymbol> interfaces, 300private static ImmutableArray<ISymbol> GetExplicitlyImplementableMembers(INamedTypeSymbol type, ISymbol within) 327private static ImmutableArray<(INamedTypeSymbol type, ImmutableArray<ISymbol> members)> GetAllUnimplementedMembers( 328this INamedTypeSymbol classOrStructType, 329IEnumerable<INamedTypeSymbol> interfacesOrAbstractClasses, 330Func<INamedTypeSymbol, ISymbol, Func<INamedTypeSymbol, ISymbol, bool>, CancellationToken, bool> isImplemented, 331Func<INamedTypeSymbol, ISymbol, bool> isValidImplementation, 332Func<INamedTypeSymbol, ISymbol, ImmutableArray<ISymbol>> interfaceMemberGetter, 361private static ImmutableArray<INamedTypeSymbol> GetTypesToImplement( 362INamedTypeSymbol classOrStructType, 363IEnumerable<INamedTypeSymbol> interfacesOrAbstractClasses, 372private static ImmutableArray<INamedTypeSymbol> GetAbstractClassesToImplement( 373IEnumerable<INamedTypeSymbol> abstractClasses) 378private static ImmutableArray<INamedTypeSymbol> GetInterfacesToImplement( 379INamedTypeSymbol classOrStructType, 380IEnumerable<INamedTypeSymbol> interfaces, 387var interfacesToImplement = new List<INamedTypeSymbol>( 392var baseType = classOrStructType.BaseType; 403this INamedTypeSymbol classOrStructType, 404INamedTypeSymbol interfaceType, 405Func<INamedTypeSymbol, ISymbol, Func<INamedTypeSymbol, ISymbol, bool>, CancellationToken, bool> isImplemented, 406Func<INamedTypeSymbol, ISymbol, bool> isValidImplementation, 407Func<INamedTypeSymbol, ISymbol, ImmutableArray<ISymbol>> interfaceMemberGetter, 449this INamedTypeSymbol attributeSymbol, 455var systemAttributeType = compilation.AttributeType(); 457foreach (var type in attributeSymbol.GetBaseTypesAndThis()) 517private static ImmutableArray<ISymbol> GetMembers(INamedTypeSymbol type, ISymbol within) 531this INamedTypeSymbol containingType, CancellationToken cancellationToken) 548foreach (var type in baseTypes) 569Dictionary<ISymbol, int> result, INamedTypeSymbol containingType, CancellationToken cancellationToken) 590Dictionary<ISymbol, int> result, INamedTypeSymbol containingType, CancellationToken cancellationToken) 612Dictionary<ISymbol, int> result, INamedTypeSymbol containingType, 613INamedTypeSymbol type, ref int index, CancellationToken cancellationToken) 626private static bool IsOverridable(ISymbol member, INamedTypeSymbol containingType) 669public static INamedTypeSymbol TryConstruct(this INamedTypeSymbol type, ITypeSymbol[] typeArguments) 672public static bool IsCollectionBuilderAttribute([NotNullWhen(true)] this INamedTypeSymbol? type)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\INamespaceOrTypeSymbolExtensions.cs (3)
90public static IEnumerable<INamedTypeSymbol> GetAllTypes( 106var namedType = (INamedTypeSymbol)current;
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\ISymbolExtensions.cs (15)
98foreach (var baseType in symbol.ContainingType.GetBaseTypes()) 107bool TryFindLooseMatch(ISymbol symbol, INamedTypeSymbol baseType, [NotNullWhen(true)] out ISymbol? looseMatch) 156foreach (var iface in symbol.ContainingType.AllInterfaces) 214public static INamedTypeSymbol? GetContainingTypeOrThis(this ISymbol symbol) 216if (symbol is INamedTypeSymbol namedType) 309=> symbol is INamedTypeSymbol { IsAnonymousType: true }; 352SymbolKind.NamedType => ((INamedTypeSymbol)symbol).Arity, 433INamedTypeSymbol nt => nt.TypeParameters, 454INamedTypeSymbol nt => nt.TypeArguments, 463var containingType = symbol.ContainingType; 504var delegateType = compilation.GetTypeByMetadataName(method.ReturnsVoid 533=> symbol is INamedTypeSymbol { IsStatic: true }; 545foreach (var type in namespaceOrType.GetAllTypes(cancellationToken)) 559return ((INamedTypeSymbol)symbol).GetMembers().OfType<IPropertySymbol>().Where(p => p.CanBeReferencedByName); 809public static bool HasAttribute([NotNullWhen(true)] this ISymbol? symbol, [NotNullWhen(true)] INamedTypeSymbol? attributeClass)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\ISymbolExtensions.RequiresUnsafeModifierVisitor.cs (1)
56public override bool VisitNamedType(INamedTypeSymbol symbol)
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\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\ITypeGenerator.cs (1)
13ITypeSymbol Construct(INamedTypeSymbol namedType, ITypeSymbol[] typeArguments);
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\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\ITypeSymbolExtensions.AnonymousTypeRemover.cs (1)
42public override ITypeSymbol VisitNamedType(INamedTypeSymbol symbol)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\ITypeSymbolExtensions.CollectTypeParameterSymbolsVisitor.cs (1)
57public override void VisitNamedType(INamedTypeSymbol symbol)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\ITypeSymbolExtensions.CompilationTypeGenerator.cs (1)
19public ITypeSymbol Construct(INamedTypeSymbol namedType, ITypeSymbol[] typeArguments)
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) 315INamedTypeSymbol n => ContainsAnonymousType(n), 320private static bool ContainsAnonymousType(INamedTypeSymbol type) 410public static INamedTypeSymbol? GetDelegateType(this ITypeSymbol? typeSymbol, Compilation compilation) 414var expressionOfT = compilation.ExpressionOfTType(); 417var typeArgument = ((INamedTypeSymbol)typeSymbol).TypeArguments[0]; 418return typeArgument as INamedTypeSymbol; 423return typeSymbol as INamedTypeSymbol; 576var n2 = t2 as INamedTypeSymbol; 578if (t1 is not INamedTypeSymbol n1) 628public static bool IsEnumType([NotNullWhen(true)] this ITypeSymbol? type, [NotNullWhen(true)] out INamedTypeSymbol? enumType) 632enumType = (INamedTypeSymbol)type; 724if (type is not INamedTypeSymbol 777=> type is INamedTypeSymbol 785=> symbol is INamedTypeSymbol 793=> type is INamedTypeSymbol namedType &&
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\ITypeSymbolExtensions.MinimalAccessibilityVisitor.cs (2)
42foreach (var callingConventionType in symbol.Signature.UnmanagedCallingConventionTypes) 50public override Accessibility VisitNamedType(INamedTypeSymbol symbol)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\ITypeSymbolExtensions.SubstituteTypesVisitor.cs (1)
58public override ITypeSymbol VisitNamedType(INamedTypeSymbol symbol)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\ITypeSymbolExtensions.UnavailableTypeParameterRemover.cs (1)
43public override ITypeSymbol VisitNamedType(INamedTypeSymbol symbol)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\ITypeSymbolExtensions.UnnamedErrorTypeRemover.cs (1)
42public override ITypeSymbol VisitNamedType(INamedTypeSymbol symbol)
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\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\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\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\SymbolEquivalenceComparer.ParameterSymbolEqualityComparer.cs (2)
23Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies,
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\SymbolEquivalenceComparer.SignatureTypeSymbolEquivalenceComparer.cs (2)
18public bool Equals(ITypeSymbol? x, ITypeSymbol? y, Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies)
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\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\AbstractFlagsEnumGenerator.cs (10)
15protected abstract SyntaxNode CreateExplicitlyCastedLiteralValue(INamedTypeSymbol enumType, SpecialType underlyingSpecialType, object constantValue); 16protected abstract bool IsValidName(INamedTypeSymbol enumType, string name); 20public SyntaxNode CreateEnumConstantValue(INamedTypeSymbol enumType, object constantValue) 36private static bool IsFlagsEnum(INamedTypeSymbol typeSymbol) 48var type = ctor.ContainingType; 61private SyntaxNode CreateFlagsEnumConstantValue(INamedTypeSymbol enumType, object constantValue) 72INamedTypeSymbol enumType, 138IFieldSymbol field, INamedTypeSymbol enumType, SpecialType underlyingSpecialType) 168INamedTypeSymbol enumType, 185private SyntaxNode CreateNonFlagsEnumConstantValue(INamedTypeSymbol enumType, object constantValue)
src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\CodeGenerationHelpers.cs (2)
25var exceptionType = compilation.GetTypeByMetadataName(exceptionMetadataName); 150public static IEnumerable<ISymbol> GetMembers(INamedTypeSymbol namedType)
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\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\CodeGenerator.cs (8)
29public static Task<Document> AddEventDeclarationAsync(CodeGenerationSolutionContext context, INamedTypeSymbol destination, IEventSymbol @event, CancellationToken cancellationToken) 36public static Task<Document> AddFieldDeclarationAsync(CodeGenerationSolutionContext context, INamedTypeSymbol destination, IFieldSymbol field, CancellationToken cancellationToken) 43public static Task<Document> AddMethodDeclarationAsync(CodeGenerationSolutionContext context, INamedTypeSymbol destination, IMethodSymbol method, CancellationToken cancellationToken) 50public static Task<Document> AddPropertyDeclarationAsync(CodeGenerationSolutionContext context, INamedTypeSymbol destination, IPropertySymbol property, CancellationToken cancellationToken) 57public static Task<Document> AddNamedTypeDeclarationAsync(CodeGenerationSolutionContext context, INamedTypeSymbol destination, INamedTypeSymbol namedType, CancellationToken cancellationToken) 64public static Task<Document> AddNamedTypeDeclarationAsync(CodeGenerationSolutionContext context, INamespaceSymbol destination, INamedTypeSymbol namedType, CancellationToken cancellationToken) 85public static Task<Document> AddMemberDeclarationsAsync(CodeGenerationSolutionContext context, INamedTypeSymbol destination, IEnumerable<ISymbol> members, CancellationToken cancellationToken)
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\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\INamedTypeSymbolExtensions.cs (2)
11public static CodeGenerationAbstractNamedTypeSymbol ToCodeGenerationSymbol(this INamedTypeSymbol namedType) 32namedType.GetMembers().WhereAsArray(s => s is not INamedTypeSymbol),
src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\Symbols\CodeGenerationAbstractMethodSymbol.cs (3)
23INamedTypeSymbol containingType, 98public INamedTypeSymbol AssociatedAnonymousDelegate => null; 108public ImmutableArray<INamedTypeSymbol> UnmanagedCallingConventionTypes => [];
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\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\Symbols\CodeGenerationAttributeData.cs (2)
13INamedTypeSymbol attributeClass, 20protected override INamedTypeSymbol CommonAttributeClass => attributeClass;
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\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\Symbols\CodeGenerationConstructorSymbol.cs (1)
11INamedTypeSymbol? containingType,
src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\Symbols\CodeGenerationConversionSymbol.cs (1)
11INamedTypeSymbol? containingType,
src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\Symbols\CodeGenerationDestructorSymbol.cs (1)
10INamedTypeSymbol? containingType,
src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\Symbols\CodeGenerationEventSymbol.cs (1)
12INamedTypeSymbol? containingType,
src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\Symbols\CodeGenerationFieldSymbol.cs (1)
13INamedTypeSymbol containingType,
src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\Symbols\CodeGenerationMethodSymbol.cs (1)
23INamedTypeSymbol containingType,
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\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\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\Symbols\CodeGenerationNamespaceSymbol.cs (1)
57public static INamedTypeSymbol ImplicitType => null;
src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\Symbols\CodeGenerationOperatorSymbol.cs (1)
11INamedTypeSymbol? containingType,
src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\Symbols\CodeGenerationParameterSymbol.cs (1)
13INamedTypeSymbol containingType,
src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\Symbols\CodeGenerationPropertySymbol.cs (1)
13INamedTypeSymbol containingType,
src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\Symbols\CodeGenerationSymbol.cs (3)
27public INamedTypeSymbol ContainingType { get; protected set; } 31INamedTypeSymbol containingType, 162public ImmutableArray<AttributeData> GetAttributes(INamedTypeSymbol attributeType)
src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\Symbols\CodeGenerationTypeParameterSymbol.cs (3)
12INamedTypeSymbol containingType, 80public INamedTypeSymbol DeclaringType 84return this.ContainingSymbol as INamedTypeSymbol;
src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\Symbols\CodeGenerationTypeSymbol.cs (4)
14INamedTypeSymbol containingType, 27public virtual INamedTypeSymbol BaseType => null; 29public virtual ImmutableArray<INamedTypeSymbol> Interfaces 32public ImmutableArray<INamedTypeSymbol> AllInterfaces
src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\TypeGenerator.cs (1)
21public ITypeSymbol Construct(INamedTypeSymbol namedType, ITypeSymbol[] typeArguments)
src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\Editing\ImportAdderService.cs (2)
202foreach (var namedType in SymbolAnnotation.GetSymbols(annotation, model.Compilation).OfType<INamedTypeSymbol>())
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\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\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\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\Extensions\KnownTypes.cs (8)
9public readonly INamedTypeSymbol? TaskType = compilation.TaskType(); 10public readonly INamedTypeSymbol? TaskOfTType = compilation.TaskOfTType(); 11public readonly INamedTypeSymbol? ValueTaskType = compilation.ValueTaskType(); 12public readonly INamedTypeSymbol? ValueTaskOfTType = compilation.ValueTaskOfTType(); 14public readonly INamedTypeSymbol? IEnumerableOfTType = compilation.IEnumerableOfTType(); 15public readonly INamedTypeSymbol? IEnumeratorOfTType = compilation.IEnumeratorOfTType(); 17public readonly INamedTypeSymbol? IAsyncEnumerableOfTType = compilation.IAsyncEnumerableOfTType(); 18public readonly INamedTypeSymbol? IAsyncEnumeratorOfTType = compilation.IAsyncEnumeratorOfTType();
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\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\Extensions\SyntaxGeneratorExtensions_CreateEqualsMethod.cs (11)
32INamedTypeSymbol containingType, 63INamedTypeSymbol containingType, 65INamedTypeSymbol constructedEquatableType, 109INamedTypeSymbol containingType, 218var iequatableType = compilation.GetTypeByMetadataName(typeof(IEquatable<>).FullName); 271INamedTypeSymbol containingType, 382private static bool ImplementsIEquatable(ITypeSymbol memberType, INamedTypeSymbol iequatableType) 388var constructed = iequatableType.Construct(memberType); 433private static bool HasExistingBaseEqualsMethod(INamedTypeSymbol containingType) 456INamedTypeSymbol? containingType, 490INamedTypeSymbol? containingType,
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\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\Extensions\SyntaxGeneratorExtensions_Negate.cs (1)
446var containingType = property.ContainingType;
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\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\LanguageServices\SemanticsFactsService\AbstractSemanticFactsService.cs (7)
127var valueTaskType = compilation.ValueTaskType(); 163(INamedTypeSymbol?, IMethodSymbol?) GetIDisposableInterfaceAndDisposeMethod(string typeName, string methodName) 165var 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\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\LanguageServices\SyntaxGeneratorInternalExtensions\SyntaxGeneratorInternal.cs (1)
117public abstract SyntaxNode DeclarationPattern(INamedTypeSymbol type, string name);
src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\LanguageServices\TypeInferenceService\AbstractTypeInferenceService.AbstractTypeInferrer.cs (1)
102protected static IEnumerable<TypeInferenceInfo> GetCollectionElementType(INamedTypeSymbol type)
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.Analyzers.UnitTests (17)
MetaAnalyzers\CompareSymbolsCorrectlyTests.cs (15)
207[InlineData(nameof(INamedTypeSymbol))] 235[InlineData(nameof(INamedTypeSymbol))] 256[InlineData(nameof(INamedTypeSymbol))] 294[InlineData(nameof(INamedTypeSymbol))] 323[InlineData(nameof(INamedTypeSymbol))] 353[CombinatorialValues(nameof(ISymbol), nameof(INamedTypeSymbol))] string symbolType, 371[InlineData(nameof(INamedTypeSymbol))] 384[InlineData(nameof(INamedTypeSymbol))] 413[InlineData(nameof(INamedTypeSymbol))] 434[InlineData(nameof(INamedTypeSymbol))] 449[CombinatorialValues("Symbol", nameof(ISymbol), nameof(INamedTypeSymbol))] string symbolType, 474[CombinatorialValues(nameof(ISymbol), nameof(INamedTypeSymbol))] string symbolType, 492[CombinatorialValues(nameof(ISymbol), nameof(INamedTypeSymbol))] string symbolType, 523[CombinatorialValues(nameof(ISymbol), nameof(INamedTypeSymbol))] string symbolType, 781[InlineData(nameof(INamedTypeSymbol))]
MetaAnalyzers\DoNotStorePerCompilationDataOntoFieldsRuleTests.cs (2)
30GetCSharpExpectedDiagnostic(21, 27, violatingTypeName: typeof(INamedTypeSymbol).FullName), 86GetBasicExpectedDiagnostic(21, 36, violatingTypeName: typeof(INamedTypeSymbol).FullName),
Microsoft.CodeAnalysis.AnalyzerUtilities (665)
src\Compilers\Core\Portable\SourceGeneration\GeneratedCodeUtilities.cs (1)
19ISymbol symbol, INamedTypeSymbol generatedCodeAttribute)
src\RoslynAnalyzers\Utilities\Compiler\CodeMetrics\CodeAnalysisMetricData.AssemblyMetricData.cs (2)
21ImmutableHashSet<INamedTypeSymbol> coupledNamedTypes, 45var coupledTypesBuilder = ImmutableHashSet.CreateBuilder<INamedTypeSymbol>();
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\RoslynAnalyzers\Utilities\Compiler\CodeMetrics\CodeAnalysisMetricData.EventMetricData.cs (2)
18ImmutableHashSet<INamedTypeSymbol> coupledNamedTypes, 30var coupledTypesBuilder = ImmutableHashSet.CreateBuilder<INamedTypeSymbol>();
src\RoslynAnalyzers\Utilities\Compiler\CodeMetrics\CodeAnalysisMetricData.FieldMetricData.cs (2)
18ImmutableHashSet<INamedTypeSymbol> coupledNamedTypes, 29var coupledTypesBuilder = ImmutableHashSet.CreateBuilder<INamedTypeSymbol>();
src\RoslynAnalyzers\Utilities\Compiler\CodeMetrics\CodeAnalysisMetricData.MethodMetricData.cs (2)
18ImmutableHashSet<INamedTypeSymbol> coupledNamedTypes, 29var coupledTypesBuilder = ImmutableHashSet.CreateBuilder<INamedTypeSymbol>();
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\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\RoslynAnalyzers\Utilities\Compiler\CodeMetrics\CodeAnalysisMetricData.PropertyMetricData.cs (2)
18ImmutableHashSet<INamedTypeSymbol> coupledNamedTypes, 30var coupledTypesBuilder = ImmutableHashSet.CreateBuilder<INamedTypeSymbol>();
src\RoslynAnalyzers\Utilities\Compiler\CodeMetrics\CodeMetricsAnalysisContext.cs (2)
18Func<INamedTypeSymbol, bool>? isExcludedFromInheritanceCountFunc = null) 32public Func<INamedTypeSymbol, bool> IsExcludedFromInheritanceCountFunc { get; }
src\RoslynAnalyzers\Utilities\Compiler\CodeMetrics\MetricsHelper.cs (12)
39internal static void AddCoupledNamedTypes(ImmutableHashSet<INamedTypeSymbol>.Builder builder, WellKnownTypeProvider wellKnownTypeProvider, 40ImmutableHashSet<INamedTypeSymbol> coupledTypes) 42foreach (var coupledType in coupledTypes) 48internal static void AddCoupledNamedTypes(ImmutableHashSet<INamedTypeSymbol>.Builder builder, WellKnownTypeProvider wellKnownTypeProvider, 54internal static void AddCoupledNamedTypes(ImmutableHashSet<INamedTypeSymbol>.Builder builder, WellKnownTypeProvider wellKnownTypeProvider, 195ImmutableHashSet<INamedTypeSymbol>.Builder builder, 349private static void AddCoupledNamedTypesCore(ImmutableHashSet<INamedTypeSymbol>.Builder builder, ITypeSymbol typeOpt, 352if (typeOpt is INamedTypeSymbol usedType && 370static bool isIgnoreableType(INamedTypeSymbol namedType, WellKnownTypeProvider wellKnownTypeProvider) 400internal static void RemoveContainingTypes(ISymbol symbol, ImmutableHashSet<INamedTypeSymbol>.Builder coupledTypesBuilder) 402var namedType = symbol as INamedTypeSymbol ?? symbol.ContainingType;
src\RoslynAnalyzers\Utilities\Compiler\DiagnosticHelpers.cs (1)
68if (symbol is INamedTypeSymbol namedType &&
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\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\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) 208private static bool HasDisposeCloseAsyncMethodSignature(this IMethodSymbol method, INamedTypeSymbol? taskType) 216INamedTypeSymbol? task, 217INamedTypeSymbol? valueTask, 218INamedTypeSymbol? configuredValueTaskAwaitable) 231private static bool HasOverriddenDisposeCoreAsyncMethodSignature(this IMethodSymbol method, [NotNullWhen(returnValue: true)] INamedTypeSymbol? task) 244private static bool HasVirtualOrOverrideDisposeCoreAsyncMethodSignature(this IMethodSymbol method, [NotNullWhen(returnValue: true)] INamedTypeSymbol? valueTask) 258INamedTypeSymbol? iDisposable = compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemIDisposable); 259INamedTypeSymbol? iAsyncDisposable = compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemIAsyncDisposable); 260INamedTypeSymbol? configuredAsyncDisposable = compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemRuntimeCompilerServicesConfiguredAsyncDisposable); 261INamedTypeSymbol? task = compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemThreadingTasksTask); 262INamedTypeSymbol? valueTask = compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemThreadingTasksValueTask); 263INamedTypeSymbol? configuredValueTaskAwaitable = compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemRuntimeCompilerServicesConfiguredValueTaskAwaitable); 272INamedTypeSymbol? iDisposable, 273INamedTypeSymbol? iAsyncDisposable, 274INamedTypeSymbol? configuredAsyncDisposable, 275INamedTypeSymbol? task, 276INamedTypeSymbol? valueTask, 277INamedTypeSymbol? configuredValueTaskAwaitable) 321public static bool IsSerializationConstructor([NotNullWhen(returnValue: true)] this IMethodSymbol? method, INamedTypeSymbol? serializationInfoType, INamedTypeSymbol? streamingContextType) 327public static bool IsGetObjectData([NotNullWhen(returnValue: true)] this IMethodSymbol? method, INamedTypeSymbol? serializationInfoType, INamedTypeSymbol? streamingContextType) 374public static bool IsCollectionAddMethod(this IMethodSymbol method, ImmutableHashSet<INamedTypeSymbol> iCollectionTypes) 395public static bool IsTaskFromResultMethod(this IMethodSymbol method, [NotNullWhen(returnValue: true)] INamedTypeSymbol? taskType) 404public static bool IsTaskConfigureAwaitMethod(this IMethodSymbol method, [NotNullWhen(returnValue: true)] INamedTypeSymbol? genericTaskType) 416public static bool IsAsyncDisposableConfigureAwaitMethod(this IMethodSymbol method, [NotNullWhen(returnValue: true)] INamedTypeSymbol? asyncDisposableType, [NotNullWhen(returnValue: true)] INamedTypeSymbol? taskAsyncEnumerableExtensions) 493public static bool IsLockMethod(this IMethodSymbol method, [NotNullWhen(returnValue: true)] INamedTypeSymbol? systemThreadingMonitor) 503public static bool IsInterlockedExchangeMethod(this IMethodSymbol method, INamedTypeSymbol? systemThreadingInterlocked) 515public static bool IsInterlockedCompareExchangeMethod(this IMethodSymbol method, INamedTypeSymbol? systemThreadingInterlocked) 546public static bool IsBenchmarkOrXUnitTestMethod(this IMethodSymbol method, ConcurrentDictionary<INamedTypeSymbol, bool> knownTestAttributes, INamedTypeSymbol? benchmarkAttribute, INamedTypeSymbol? xunitFactAttribute) 571var typeSymbol = methodSymbol.ContainingType;
src\RoslynAnalyzers\Utilities\Compiler\Extensions\INamedTypeSymbolExtensions.cs (9)
19public static bool IsFileLocal(this INamedTypeSymbol symbol) => symbol.IsFileLocal; 43public static bool DerivesFromOrImplementsAnyConstructionOf(this INamedTypeSymbol type, INamedTypeSymbol parentType) 50for (INamedTypeSymbol? baseType = type.OriginalDefinition; 68public static bool OverridesEquals(this INamedTypeSymbol symbol) 74public static bool IsBenchmarkOrXUnitTestAttribute(this INamedTypeSymbol attributeClass, ConcurrentDictionary<INamedTypeSymbol, bool> knownTestAttributes, INamedTypeSymbol? benchmarkAttribute, INamedTypeSymbol? xunitFactAttribute)
src\RoslynAnalyzers\Utilities\Compiler\Extensions\IPropertySymbolExtensions.cs (1)
36var typeSymbol = propertySymbol.ContainingType;
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\RoslynAnalyzers\Utilities\Compiler\Extensions\ITypeSymbolExtensions.cs (14)
116INamedTypeSymbol? iDisposable, 117INamedTypeSymbol? iAsyncDisposable, 118INamedTypeSymbol? configuredAsyncDisposable) 140static bool IsInterfaceOrImplementsInterface(ITypeSymbol type, INamedTypeSymbol? interfaceType) 150public static IEnumerable<AttributeData> GetApplicableAttributes(this INamedTypeSymbol type, INamedTypeSymbol? attributeUsageAttribute) 182static bool IsInheritedAttribute(AttributeData attributeData, INamedTypeSymbol attributeUsageAttribute) 184for (var currentAttributeClass = attributeData.AttributeClass; 217public static IEnumerable<AttributeData> GetApplicableExportAttributes(this INamedTypeSymbol? type, INamedTypeSymbol? exportAttributeV1, INamedTypeSymbol? exportAttributeV2, INamedTypeSymbol? inheritedExportAttribute) 265=> typeSymbol.IsNullableValueType() && ((INamedTypeSymbol)typeSymbol).TypeArguments[0].SpecialType == SpecialType.System_Boolean; 268=> (typeSymbol as INamedTypeSymbol)?.TupleUnderlyingType ?? typeSymbol;
src\RoslynAnalyzers\Utilities\Compiler\Options\AnalyzerOptionsExtensions.cs (9)
281if (symbol is INamedTypeSymbol namedType && !excludedTypeNamesWithDerivedTypes.IsEmpty) 283foreach (var type in namedType.GetBaseTypesAndThis()) 379public static SymbolNamesWithValueOption<INamedTypeSymbol?> GetAdditionalRequiredGenericInterfaces( 386private static SymbolNamesWithValueOption<INamedTypeSymbol?> GetAdditionalRequiredGenericInterfaces( 394static SymbolNamesWithValueOption<INamedTypeSymbol?>.NameParts GetParts(string name, Compilation compilation) 401return new SymbolNamesWithValueOption<INamedTypeSymbol?>.NameParts(name, null); 413matchingSymbols[0] is not INamedTypeSymbol namedType || 418return new SymbolNamesWithValueOption<INamedTypeSymbol?>.NameParts(split[0], null); 421return new SymbolNamesWithValueOption<INamedTypeSymbol?>.NameParts(split[0], namedType);
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\RoslynAnalyzers\Utilities\FlowAnalysis\FlowAnalysis\Analysis\DisposeAnalysis\DisposeAnalysis.cs (2)
42ImmutableHashSet<INamedTypeSymbol> disposeOwnershipTransferLikelyTypes, 88ImmutableHashSet<INamedTypeSymbol> disposeOwnershipTransferLikelyTypes,
src\RoslynAnalyzers\Utilities\FlowAnalysis\FlowAnalysis\Analysis\DisposeAnalysis\DisposeAnalysis.DisposeDataFlowOperationVisitor.cs (1)
29private ImmutableHashSet<INamedTypeSymbol> DisposeOwnershipTransferLikelyTypes => DataFlowAnalysisContext.DisposeOwnershipTransferLikelyTypes;
src\RoslynAnalyzers\Utilities\FlowAnalysis\FlowAnalysis\Analysis\DisposeAnalysis\DisposeAnalysisContext.cs (3)
37ImmutableHashSet<INamedTypeSymbol> disposeOwnershipTransferLikelyTypes, 76ImmutableHashSet<INamedTypeSymbol> disposeOwnershipTransferLikelyTypes, 108internal ImmutableHashSet<INamedTypeSymbol> DisposeOwnershipTransferLikelyTypes { get; }
src\RoslynAnalyzers\Utilities\FlowAnalysis\FlowAnalysis\Analysis\DisposeAnalysis\DisposeAnalysisHelper.cs (16)
45private readonly ImmutableHashSet<INamedTypeSymbol> _disposeOwnershipTransferLikelyTypes; 46private ConcurrentDictionary<INamedTypeSymbol, ImmutableHashSet<IFieldSymbol>>? _lazyDisposableFieldsMap; 47public INamedTypeSymbol? IDisposable { get; } 48public INamedTypeSymbol? IAsyncDisposable { get; } 49public INamedTypeSymbol? ConfiguredAsyncDisposable { get; } 50public INamedTypeSymbol? Task { get; } 51public INamedTypeSymbol? ValueTask { get; } 52public INamedTypeSymbol? ConfiguredValueTaskAwaitable { get; } 53public INamedTypeSymbol? StringReader { get; } 54public INamedTypeSymbol? MemoryStream { get; } 71ImmutableHashSet<INamedTypeSymbol>.Empty; 74private static ImmutableHashSet<INamedTypeSymbol> GetDisposeOwnershipTransferLikelyTypes(Compilation compilation) 76var builder = PooledHashSet<INamedTypeSymbol>.GetInstance(); 79INamedTypeSymbol? typeSymbol = compilation.GetOrCreateTypeByMetadataName(typeName); 93Interlocked.CompareExchange(ref _lazyDisposableFieldsMap, new ConcurrentDictionary<INamedTypeSymbol, ImmutableHashSet<IFieldSymbol>>(), null); 180public ImmutableHashSet<IFieldSymbol> GetDisposableFields(INamedTypeSymbol namedType)
src\RoslynAnalyzers\Utilities\FlowAnalysis\FlowAnalysis\Analysis\GlobalFlowStateAnalysis\GlobalFlowStateAnalysis.cs (2)
70ImmutableArray<INamedTypeSymbol> additionalSupportedValueTypes = default, 100ImmutableArray<INamedTypeSymbol> additionalSupportedValueTypes = default,
src\RoslynAnalyzers\Utilities\FlowAnalysis\FlowAnalysis\Analysis\ParameterValidationAnalysis\ParameterValidationAnalysis.ParameterValidationDataFlowOperationVisitor.cs (1)
29private readonly INamedTypeSymbol? _notNullAttributeType;
src\RoslynAnalyzers\Utilities\FlowAnalysis\FlowAnalysis\Analysis\PointsToAnalysis\PointsToAnalysis.PointsToDataFlowOperationVisitor.cs (2)
1001method.ReturnType is INamedTypeSymbol namedType && 1022symbol.GetMemberType() is INamedTypeSymbol namedType &&
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\RoslynAnalyzers\Utilities\FlowAnalysis\FlowAnalysis\Analysis\PropertySetAnalysis\PropertySetAnalysis.PropertySetDataFlowOperationVisitor.cs (6)
55private readonly ImmutableHashSet<INamedTypeSymbol> TrackedTypeSymbols; 68ImmutableHashSet<INamedTypeSymbol>.Builder builder = ImmutableHashSet.CreateBuilder<INamedTypeSymbol>(); 71if (this.WellKnownTypeProvider.TryGetOrCreateTypeByMetadataName(typeToTrackMetadataName, out INamedTypeSymbol? trackedTypeSymbol)) 560private bool GetNamesOfHazardousUsageTypes(INamedTypeSymbol containingType, [NotNullWhen(returnValue: true)] out PooledHashSet<string>? hazardousUsageTypeNames) 571foreach (INamedTypeSymbol type in containingType.GetBaseTypesAndThis())
src\RoslynAnalyzers\Utilities\FlowAnalysis\FlowAnalysis\Analysis\PropertySetAnalysis\PropertySetAnalysisContext.cs (2)
45ImmutableDictionary<(INamedTypeSymbol, bool), string> hazardousUsageTypesToNames) 158public ImmutableDictionary<(INamedTypeSymbol, bool), string> HazardousUsageTypesToNames { get; }
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\RoslynAnalyzers\Utilities\FlowAnalysis\FlowAnalysis\Analysis\TaintedDataAnalysis\TaintedDataSymbolMapExtensions.cs (2)
158if (arrayTypeSymbol.ElementType is INamedTypeSymbol elementType) 213if (propertyReferenceOperation.Instance?.Type is not INamedTypeSymbol namedType)
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\RoslynAnalyzers\Utilities\FlowAnalysis\FlowAnalysis\Analysis\ValueContentAnalysis\ValueContentAbstractValue.cs (1)
127else if (type is INamedTypeSymbol namedTypeSymbol
src\RoslynAnalyzers\Utilities\FlowAnalysis\FlowAnalysis\Analysis\ValueContentAnalysis\ValueContentAnalysis.cs (2)
56ImmutableArray<INamedTypeSymbol> additionalSupportedValueTypes = default, 90ImmutableArray<INamedTypeSymbol> additionalSupportedValueTypes = default,
src\RoslynAnalyzers\Utilities\FlowAnalysis\FlowAnalysis\Analysis\ValueContentAnalysis\ValueContentAnalysis.ValueContentDataFlowOperationVisitor.cs (2)
215operation.Type is INamedTypeSymbol namedType && 244var incrementValueType = WellKnownTypeProvider.Compilation.GetSpecialType(SpecialType.System_Int32);
src\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\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\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\RoslynAnalyzers\Utilities\FlowAnalysis\FlowAnalysis\Framework\DataFlow\AnalysisEntityFactory.cs (3)
49INamedTypeSymbol containingTypeSymbol, 339var tupleType = (INamedTypeSymbol)tupleOperation.Type;
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\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\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Extensions\OperationExtensions.cs (2)
405var notImplementedExceptionType = compilation.NotImplementedExceptionType(); 454static bool IsThrowNotImplementedOperation(INamedTypeSymbol notImplementedExceptionType, IOperation? operation)
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); 177var enumerableType = semanticModel.Compilation.IEnumerableOfTType();
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\NamingStyles\NamingStyleRules.cs (3)
65var containingType = symbol.ContainingType; 87var containingType = symbol.ContainingType; 90foreach (var implementedInterface in implementedInterfaces)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Services\SemanticFacts\ISemanticFacts.cs (4)
67bool LastEnumValueHasInitializer(INamedTypeSymbol namedTypeSymbol); 88bool IsPartial(INamedTypeSymbol typeSymbol, CancellationToken cancellationToken); 107bool IsInExpressionTree(SemanticModel semanticModel, SyntaxNode node, [NotNullWhen(true)] INamedTypeSymbol? expressionType, CancellationToken cancellationToken); 122bool TryGetPrimaryConstructor(INamedTypeSymbol typeSymbol, [NotNullWhen(true)] out IMethodSymbol? primaryConstructor);
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\SymbolKey\SymbolKey.AnonymousFunctionOrDelegateSymbolKey.cs (1)
65var anonymousDelegate = methodSymbol.AssociatedAnonymousDelegate;
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\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\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\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\SymbolKey\SymbolKey.FunctionPointerTypeSymbolKey.cs (2)
37var callingConventionModifiers = ImmutableArray<INamedTypeSymbol>.Empty; 40using var modifiersBuilder = reader.ReadSymbolKeyArray<IFunctionPointerTypeSymbol, INamedTypeSymbol>(
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\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\SymbolKey\SymbolKey.ParameterSymbolKey.cs (1)
64var delegateInvoke = (eventSymbol.Type as INamedTypeSymbol)?.DelegateInvokeMethod;
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\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\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Utilities\AbstractSpeculationAnalyzer.cs (5)
417var type = methodSymbol.ContainingType; 418var newType = newMethodSymbol.ContainingType; 491private static bool EnumTypesAreCompatible(INamedTypeSymbol type1, INamedTypeSymbol type2) 992var newSymbolContainingType = newSymbol.ContainingType;
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Utilities\EnumValueUtilities.cs (1)
21public static object GetNextEnumValue(INamedTypeSymbol enumType)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Compilation\CompilationExtensions.cs (78)
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? EventArgsType(this Compilation compilation) 129public static INamedTypeSymbol? NotImplementedExceptionType(this Compilation compilation) 132public static INamedTypeSymbol? EqualityComparerOfTType(this Compilation compilation) 135public static INamedTypeSymbol? ActionType(this Compilation compilation) 138public static INamedTypeSymbol? ExpressionOfTType(this Compilation compilation) 141public static INamedTypeSymbol? EditorBrowsableAttributeType(this Compilation compilation) 144public static INamedTypeSymbol? EditorBrowsableStateType(this Compilation compilation) 147public static INamedTypeSymbol? TaskType(this Compilation compilation) 150public static INamedTypeSymbol? TaskOfTType(this Compilation compilation) 153public static INamedTypeSymbol? ValueTaskType(this Compilation compilation) 156public static INamedTypeSymbol? ValueTaskOfTType(this Compilation compilation) 159public static INamedTypeSymbol? IEnumerableType(this Compilation compilation) 162public static INamedTypeSymbol? IEnumerableOfTType(this Compilation compilation) 165public static INamedTypeSymbol? IEnumeratorOfTType(this Compilation compilation) 168public static INamedTypeSymbol? IListOfTType(this Compilation compilation) 171public static INamedTypeSymbol? IReadOnlyListOfTType(this Compilation compilation) 174public static INamedTypeSymbol? ISetOfTType(this Compilation compilation) 177public static INamedTypeSymbol? IReadOnlySetOfTType(this Compilation compilation) 180public static INamedTypeSymbol? IAsyncEnumerableOfTType(this Compilation compilation) 183public static INamedTypeSymbol? IAsyncEnumeratorOfTType(this Compilation compilation) 186public static INamedTypeSymbol? ImmutableArrayOfTType(this Compilation compilation) 189public static INamedTypeSymbol? SerializableAttributeType(this Compilation compilation) 192public static INamedTypeSymbol? CoClassType(this Compilation compilation) 195public static INamedTypeSymbol? ComAliasNameAttributeType(this Compilation compilation) 198public static INamedTypeSymbol? SuppressMessageAttributeType(this Compilation compilation) 201public static INamedTypeSymbol? TupleElementNamesAttributeType(this Compilation compilation) 204public static INamedTypeSymbol? NativeIntegerAttributeType(this Compilation compilation) 207public static INamedTypeSymbol? DynamicAttributeType(this Compilation compilation) 210public static INamedTypeSymbol? LazyOfTType(this Compilation compilation) 213public static INamedTypeSymbol? ISerializableType(this Compilation compilation) 216public static INamedTypeSymbol? SerializationInfoType(this Compilation compilation) 219public static INamedTypeSymbol? StreamingContextType(this Compilation compilation) 222public static INamedTypeSymbol? OnDeserializingAttribute(this Compilation compilation) 225public static INamedTypeSymbol? OnDeserializedAttribute(this Compilation compilation) 228public static INamedTypeSymbol? OnSerializingAttribute(this Compilation compilation) 231public static INamedTypeSymbol? OnSerializedAttribute(this Compilation compilation) 234public static INamedTypeSymbol? ComRegisterFunctionAttribute(this Compilation compilation) 237public static INamedTypeSymbol? ComUnregisterFunctionAttribute(this Compilation compilation) 240public static INamedTypeSymbol? ConditionalAttribute(this Compilation compilation) 243public static INamedTypeSymbol? ObsoleteAttribute(this Compilation compilation) 246public static INamedTypeSymbol? SystemCompositionImportingConstructorAttribute(this Compilation compilation) 249public static INamedTypeSymbol? SystemComponentModelCompositionImportingConstructorAttribute(this Compilation compilation) 252public static INamedTypeSymbol? SystemIDisposableType(this Compilation compilation) 255public static INamedTypeSymbol? NotNullAttribute(this Compilation compilation) 258public static INamedTypeSymbol? MaybeNullAttribute(this Compilation compilation) 261public static INamedTypeSymbol? MaybeNullWhenAttribute(this Compilation compilation) 264public static INamedTypeSymbol? AllowNullAttribute(this Compilation compilation) 267public static INamedTypeSymbol? DisallowNullAttribute(this Compilation compilation) 270public static INamedTypeSymbol? DataMemberAttribute(this Compilation compilation) 273public static INamedTypeSymbol? DataContractAttribute(this Compilation compilation) 276public static INamedTypeSymbol? AsyncMethodBuilderAttribute(this Compilation compilation) 279public static INamedTypeSymbol? CancellationTokenType(this Compilation compilation) 282public static INamedTypeSymbol? ValueTupleType(this Compilation compilation, int arity) 285public static INamedTypeSymbol? ListOfTType(this Compilation compilation) 288public static INamedTypeSymbol? ReadOnlySpanOfTType(this Compilation compilation) 291public static INamedTypeSymbol? SpanOfTType(this Compilation compilation) 294public static INamedTypeSymbol? InterpolatedStringHandlerAttributeType(this Compilation compilation) 322public static INamedTypeSymbol? GetBestTypeByMetadataName(this Compilation compilation, string fullyQualifiedMetadataName) 324INamedTypeSymbol? type = null; 326foreach (var currentType in compilation.GetTypesByMetadataName(fullyQualifiedMetadataName)) 361foreach (var candidateTopLevelType in compilation.SourceModule.GlobalNamespace.GetTypeMembers(WellKnownMemberNames.TopLevelStatementsEntryPointTypeName, arity: 0)) 373public static INamedTypeSymbol? TryGetCallingConventionSymbol(this Compilation compilation, string callingConvention)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\IMethodSymbolExtensions.cs (4)
44public static bool HasEventHandlerSignature(this IMethodSymbol method, [NotNullWhen(returnValue: true)] INamedTypeSymbol? eventArgsType) 103public static bool IsEntryPoint(this IMethodSymbol methodSymbol, INamedTypeSymbol? taskType, INamedTypeSymbol? genericTaskType) 119if (method.ReturnType is not INamedTypeSymbol { Arity: 0 })
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\INamedTypeSymbolExtensions.cs (73)
23public static IEnumerable<INamedTypeSymbol> GetBaseTypesAndThis(this INamedTypeSymbol? namedType) 25var current = namedType; 33public static ImmutableArray<ITypeParameterSymbol> GetAllTypeParameters(this INamedTypeSymbol? symbol) 39public static ImmutableArray<ITypeSymbol> GetAllTypeArguments(this INamedTypeSymbol? symbol) 45private static Stack<INamedTypeSymbol> GetContainmentStack(INamedTypeSymbol? symbol) 47var stack = new Stack<INamedTypeSymbol>(); 48for (var current = symbol; current != null; current = current.ContainingType) 56public static bool IsContainedWithin([NotNullWhen(returnValue: true)] this INamedTypeSymbol? symbol, INamedTypeSymbol outer) 59for (var current = symbol; current != null; current = current.ContainingType) 70public static ISymbol? FindImplementationForAbstractMember(this INamedTypeSymbol? type, ISymbol symbol) 81private static bool ImplementationExists(INamedTypeSymbol classOrStructType, ISymbol member) 85this INamedTypeSymbol classOrStructType, 87Func<INamedTypeSymbol, ISymbol, bool> isValidImplementation, 117private static bool IsInterfacePropertyImplemented(INamedTypeSymbol classOrStructType, IPropertySymbol propertySymbol) 125static bool IsAccessorImplemented(IMethodSymbol? accessor, INamedTypeSymbol classOrStructType) 131private static bool IsAbstractPropertyImplemented(INamedTypeSymbol classOrStructType, IPropertySymbol propertySymbol) 154this INamedTypeSymbol classOrStructType, 156Func<INamedTypeSymbol, ISymbol, bool> isValid, 179public static ImmutableArray<(INamedTypeSymbol type, ImmutableArray<ISymbol> members)> GetAllUnimplementedMembers( 180this INamedTypeSymbol classOrStructType, 181IEnumerable<INamedTypeSymbol> interfaces, 197static ImmutableArray<ISymbol> GetImplicitlyImplementableMembers(INamedTypeSymbol type, ISymbol within) 249public static ImmutableArray<(INamedTypeSymbol type, ImmutableArray<ISymbol> members)> GetAllUnimplementedMembersInThis( 250this INamedTypeSymbol classOrStructType, 251IEnumerable<INamedTypeSymbol> interfacesOrAbstractClasses, 267public static ImmutableArray<(INamedTypeSymbol type, ImmutableArray<ISymbol> members)> GetAllUnimplementedMembersInThis( 268this INamedTypeSymbol classOrStructType, 269IEnumerable<INamedTypeSymbol> interfacesOrAbstractClasses, 270Func<INamedTypeSymbol, ISymbol, ImmutableArray<ISymbol>> interfaceMemberGetter, 286public static ImmutableArray<(INamedTypeSymbol type, ImmutableArray<ISymbol> members)> GetAllUnimplementedExplicitMembers( 287this INamedTypeSymbol classOrStructType, 288IEnumerable<INamedTypeSymbol> interfaces, 300private static ImmutableArray<ISymbol> GetExplicitlyImplementableMembers(INamedTypeSymbol type, ISymbol within) 327private static ImmutableArray<(INamedTypeSymbol type, ImmutableArray<ISymbol> members)> GetAllUnimplementedMembers( 328this INamedTypeSymbol classOrStructType, 329IEnumerable<INamedTypeSymbol> interfacesOrAbstractClasses, 330Func<INamedTypeSymbol, ISymbol, Func<INamedTypeSymbol, ISymbol, bool>, CancellationToken, bool> isImplemented, 331Func<INamedTypeSymbol, ISymbol, bool> isValidImplementation, 332Func<INamedTypeSymbol, ISymbol, ImmutableArray<ISymbol>> interfaceMemberGetter, 361private static ImmutableArray<INamedTypeSymbol> GetTypesToImplement( 362INamedTypeSymbol classOrStructType, 363IEnumerable<INamedTypeSymbol> interfacesOrAbstractClasses, 372private static ImmutableArray<INamedTypeSymbol> GetAbstractClassesToImplement( 373IEnumerable<INamedTypeSymbol> abstractClasses) 378private static ImmutableArray<INamedTypeSymbol> GetInterfacesToImplement( 379INamedTypeSymbol classOrStructType, 380IEnumerable<INamedTypeSymbol> interfaces, 387var interfacesToImplement = new List<INamedTypeSymbol>( 392var baseType = classOrStructType.BaseType; 403this INamedTypeSymbol classOrStructType, 404INamedTypeSymbol interfaceType, 405Func<INamedTypeSymbol, ISymbol, Func<INamedTypeSymbol, ISymbol, bool>, CancellationToken, bool> isImplemented, 406Func<INamedTypeSymbol, ISymbol, bool> isValidImplementation, 407Func<INamedTypeSymbol, ISymbol, ImmutableArray<ISymbol>> interfaceMemberGetter, 449this INamedTypeSymbol attributeSymbol, 455var systemAttributeType = compilation.AttributeType(); 457foreach (var type in attributeSymbol.GetBaseTypesAndThis()) 517private static ImmutableArray<ISymbol> GetMembers(INamedTypeSymbol type, ISymbol within) 531this INamedTypeSymbol containingType, CancellationToken cancellationToken) 548foreach (var type in baseTypes) 569Dictionary<ISymbol, int> result, INamedTypeSymbol containingType, CancellationToken cancellationToken) 590Dictionary<ISymbol, int> result, INamedTypeSymbol containingType, CancellationToken cancellationToken) 612Dictionary<ISymbol, int> result, INamedTypeSymbol containingType, 613INamedTypeSymbol type, ref int index, CancellationToken cancellationToken) 626private static bool IsOverridable(ISymbol member, INamedTypeSymbol containingType) 669public static INamedTypeSymbol TryConstruct(this INamedTypeSymbol type, ITypeSymbol[] typeArguments) 672public static bool IsCollectionBuilderAttribute([NotNullWhen(true)] this INamedTypeSymbol? type)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\INamespaceOrTypeSymbolExtensions.cs (3)
90public static IEnumerable<INamedTypeSymbol> GetAllTypes( 106var namedType = (INamedTypeSymbol)current;
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\ISymbolExtensions.cs (15)
98foreach (var baseType in symbol.ContainingType.GetBaseTypes()) 107bool TryFindLooseMatch(ISymbol symbol, INamedTypeSymbol baseType, [NotNullWhen(true)] out ISymbol? looseMatch) 156foreach (var iface in symbol.ContainingType.AllInterfaces) 214public static INamedTypeSymbol? GetContainingTypeOrThis(this ISymbol symbol) 216if (symbol is INamedTypeSymbol namedType) 309=> symbol is INamedTypeSymbol { IsAnonymousType: true }; 352SymbolKind.NamedType => ((INamedTypeSymbol)symbol).Arity, 433INamedTypeSymbol nt => nt.TypeParameters, 454INamedTypeSymbol nt => nt.TypeArguments, 463var containingType = symbol.ContainingType; 504var delegateType = compilation.GetTypeByMetadataName(method.ReturnsVoid 533=> symbol is INamedTypeSymbol { IsStatic: true }; 545foreach (var type in namespaceOrType.GetAllTypes(cancellationToken)) 559return ((INamedTypeSymbol)symbol).GetMembers().OfType<IPropertySymbol>().Where(p => p.CanBeReferencedByName); 809public static bool HasAttribute([NotNullWhen(true)] this ISymbol? symbol, [NotNullWhen(true)] INamedTypeSymbol? attributeClass)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\ISymbolExtensions.RequiresUnsafeModifierVisitor.cs (1)
56public override bool VisitNamedType(INamedTypeSymbol symbol)
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\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\ITypeGenerator.cs (1)
13ITypeSymbol Construct(INamedTypeSymbol namedType, ITypeSymbol[] typeArguments);
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\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\ITypeSymbolExtensions.AnonymousTypeRemover.cs (1)
42public override ITypeSymbol VisitNamedType(INamedTypeSymbol symbol)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\ITypeSymbolExtensions.CollectTypeParameterSymbolsVisitor.cs (1)
57public override void VisitNamedType(INamedTypeSymbol symbol)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\ITypeSymbolExtensions.CompilationTypeGenerator.cs (1)
19public ITypeSymbol Construct(INamedTypeSymbol namedType, ITypeSymbol[] typeArguments)
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) 315INamedTypeSymbol n => ContainsAnonymousType(n), 320private static bool ContainsAnonymousType(INamedTypeSymbol type) 410public static INamedTypeSymbol? GetDelegateType(this ITypeSymbol? typeSymbol, Compilation compilation) 414var expressionOfT = compilation.ExpressionOfTType(); 417var typeArgument = ((INamedTypeSymbol)typeSymbol).TypeArguments[0]; 418return typeArgument as INamedTypeSymbol; 423return typeSymbol as INamedTypeSymbol; 576var n2 = t2 as INamedTypeSymbol; 578if (t1 is not INamedTypeSymbol n1) 628public static bool IsEnumType([NotNullWhen(true)] this ITypeSymbol? type, [NotNullWhen(true)] out INamedTypeSymbol? enumType) 632enumType = (INamedTypeSymbol)type; 724if (type is not INamedTypeSymbol 777=> type is INamedTypeSymbol 785=> symbol is INamedTypeSymbol 793=> type is INamedTypeSymbol namedType &&
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\ITypeSymbolExtensions.MinimalAccessibilityVisitor.cs (2)
42foreach (var callingConventionType in symbol.Signature.UnmanagedCallingConventionTypes) 50public override Accessibility VisitNamedType(INamedTypeSymbol symbol)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\ITypeSymbolExtensions.SubstituteTypesVisitor.cs (1)
58public override ITypeSymbol VisitNamedType(INamedTypeSymbol symbol)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\ITypeSymbolExtensions.UnavailableTypeParameterRemover.cs (1)
43public override ITypeSymbol VisitNamedType(INamedTypeSymbol symbol)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\ITypeSymbolExtensions.UnnamedErrorTypeRemover.cs (1)
42public override ITypeSymbol VisitNamedType(INamedTypeSymbol symbol)
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\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\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\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\SymbolEquivalenceComparer.ParameterSymbolEqualityComparer.cs (2)
23Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies,
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\SymbolEquivalenceComparer.SignatureTypeSymbolEquivalenceComparer.cs (2)
18public bool Equals(ITypeSymbol? x, ITypeSymbol? y, Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies)
Microsoft.CodeAnalysis.BannedApiAnalyzers (723)
RestrictedInternalsVisibleToAnalyzer.cs (2)
80VerifySymbol(typeInfo.Type as INamedTypeSymbol, name, 119var restrictedInternalsVisibleToAttribute = compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemRuntimeCompilerServicesRestrictedInternalsVisibleToAttribute);
src\Compilers\Core\Portable\SourceGeneration\GeneratedCodeUtilities.cs (1)
19ISymbol symbol, INamedTypeSymbol generatedCodeAttribute)
src\RoslynAnalyzers\Utilities\Compiler\CodeMetrics\CodeAnalysisMetricData.AssemblyMetricData.cs (2)
21ImmutableHashSet<INamedTypeSymbol> coupledNamedTypes, 45var coupledTypesBuilder = ImmutableHashSet.CreateBuilder<INamedTypeSymbol>();
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\RoslynAnalyzers\Utilities\Compiler\CodeMetrics\CodeAnalysisMetricData.EventMetricData.cs (2)
18ImmutableHashSet<INamedTypeSymbol> coupledNamedTypes, 30var coupledTypesBuilder = ImmutableHashSet.CreateBuilder<INamedTypeSymbol>();
src\RoslynAnalyzers\Utilities\Compiler\CodeMetrics\CodeAnalysisMetricData.FieldMetricData.cs (2)
18ImmutableHashSet<INamedTypeSymbol> coupledNamedTypes, 29var coupledTypesBuilder = ImmutableHashSet.CreateBuilder<INamedTypeSymbol>();
src\RoslynAnalyzers\Utilities\Compiler\CodeMetrics\CodeAnalysisMetricData.MethodMetricData.cs (2)
18ImmutableHashSet<INamedTypeSymbol> coupledNamedTypes, 29var coupledTypesBuilder = ImmutableHashSet.CreateBuilder<INamedTypeSymbol>();
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\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\RoslynAnalyzers\Utilities\Compiler\CodeMetrics\CodeAnalysisMetricData.PropertyMetricData.cs (2)
18ImmutableHashSet<INamedTypeSymbol> coupledNamedTypes, 30var coupledTypesBuilder = ImmutableHashSet.CreateBuilder<INamedTypeSymbol>();
src\RoslynAnalyzers\Utilities\Compiler\CodeMetrics\CodeMetricsAnalysisContext.cs (2)
18Func<INamedTypeSymbol, bool>? isExcludedFromInheritanceCountFunc = null) 32public Func<INamedTypeSymbol, bool> IsExcludedFromInheritanceCountFunc { get; }
src\RoslynAnalyzers\Utilities\Compiler\CodeMetrics\MetricsHelper.cs (12)
39internal static void AddCoupledNamedTypes(ImmutableHashSet<INamedTypeSymbol>.Builder builder, WellKnownTypeProvider wellKnownTypeProvider, 40ImmutableHashSet<INamedTypeSymbol> coupledTypes) 42foreach (var coupledType in coupledTypes) 48internal static void AddCoupledNamedTypes(ImmutableHashSet<INamedTypeSymbol>.Builder builder, WellKnownTypeProvider wellKnownTypeProvider, 54internal static void AddCoupledNamedTypes(ImmutableHashSet<INamedTypeSymbol>.Builder builder, WellKnownTypeProvider wellKnownTypeProvider, 195ImmutableHashSet<INamedTypeSymbol>.Builder builder, 349private static void AddCoupledNamedTypesCore(ImmutableHashSet<INamedTypeSymbol>.Builder builder, ITypeSymbol typeOpt, 352if (typeOpt is INamedTypeSymbol usedType && 370static bool isIgnoreableType(INamedTypeSymbol namedType, WellKnownTypeProvider wellKnownTypeProvider) 400internal static void RemoveContainingTypes(ISymbol symbol, ImmutableHashSet<INamedTypeSymbol>.Builder coupledTypesBuilder) 402var namedType = symbol as INamedTypeSymbol ?? symbol.ContainingType;
src\RoslynAnalyzers\Utilities\Compiler\DiagnosticHelpers.cs (1)
68if (symbol is INamedTypeSymbol namedType &&
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\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\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) 208private static bool HasDisposeCloseAsyncMethodSignature(this IMethodSymbol method, INamedTypeSymbol? taskType) 216INamedTypeSymbol? task, 217INamedTypeSymbol? valueTask, 218INamedTypeSymbol? configuredValueTaskAwaitable) 231private static bool HasOverriddenDisposeCoreAsyncMethodSignature(this IMethodSymbol method, [NotNullWhen(returnValue: true)] INamedTypeSymbol? task) 244private static bool HasVirtualOrOverrideDisposeCoreAsyncMethodSignature(this IMethodSymbol method, [NotNullWhen(returnValue: true)] INamedTypeSymbol? valueTask) 258INamedTypeSymbol? iDisposable = compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemIDisposable); 259INamedTypeSymbol? iAsyncDisposable = compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemIAsyncDisposable); 260INamedTypeSymbol? configuredAsyncDisposable = compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemRuntimeCompilerServicesConfiguredAsyncDisposable); 261INamedTypeSymbol? task = compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemThreadingTasksTask); 262INamedTypeSymbol? valueTask = compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemThreadingTasksValueTask); 263INamedTypeSymbol? configuredValueTaskAwaitable = compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemRuntimeCompilerServicesConfiguredValueTaskAwaitable); 272INamedTypeSymbol? iDisposable, 273INamedTypeSymbol? iAsyncDisposable, 274INamedTypeSymbol? configuredAsyncDisposable, 275INamedTypeSymbol? task, 276INamedTypeSymbol? valueTask, 277INamedTypeSymbol? configuredValueTaskAwaitable) 321public static bool IsSerializationConstructor([NotNullWhen(returnValue: true)] this IMethodSymbol? method, INamedTypeSymbol? serializationInfoType, INamedTypeSymbol? streamingContextType) 327public static bool IsGetObjectData([NotNullWhen(returnValue: true)] this IMethodSymbol? method, INamedTypeSymbol? serializationInfoType, INamedTypeSymbol? streamingContextType) 374public static bool IsCollectionAddMethod(this IMethodSymbol method, ImmutableHashSet<INamedTypeSymbol> iCollectionTypes) 395public static bool IsTaskFromResultMethod(this IMethodSymbol method, [NotNullWhen(returnValue: true)] INamedTypeSymbol? taskType) 404public static bool IsTaskConfigureAwaitMethod(this IMethodSymbol method, [NotNullWhen(returnValue: true)] INamedTypeSymbol? genericTaskType) 416public static bool IsAsyncDisposableConfigureAwaitMethod(this IMethodSymbol method, [NotNullWhen(returnValue: true)] INamedTypeSymbol? asyncDisposableType, [NotNullWhen(returnValue: true)] INamedTypeSymbol? taskAsyncEnumerableExtensions) 493public static bool IsLockMethod(this IMethodSymbol method, [NotNullWhen(returnValue: true)] INamedTypeSymbol? systemThreadingMonitor) 503public static bool IsInterlockedExchangeMethod(this IMethodSymbol method, INamedTypeSymbol? systemThreadingInterlocked) 515public static bool IsInterlockedCompareExchangeMethod(this IMethodSymbol method, INamedTypeSymbol? systemThreadingInterlocked) 546public static bool IsBenchmarkOrXUnitTestMethod(this IMethodSymbol method, ConcurrentDictionary<INamedTypeSymbol, bool> knownTestAttributes, INamedTypeSymbol? benchmarkAttribute, INamedTypeSymbol? xunitFactAttribute) 571var typeSymbol = methodSymbol.ContainingType;
src\RoslynAnalyzers\Utilities\Compiler\Extensions\INamedTypeSymbolExtensions.cs (9)
19public static bool IsFileLocal(this INamedTypeSymbol symbol) => symbol.IsFileLocal; 43public static bool DerivesFromOrImplementsAnyConstructionOf(this INamedTypeSymbol type, INamedTypeSymbol parentType) 50for (INamedTypeSymbol? baseType = type.OriginalDefinition; 68public static bool OverridesEquals(this INamedTypeSymbol symbol) 74public static bool IsBenchmarkOrXUnitTestAttribute(this INamedTypeSymbol attributeClass, ConcurrentDictionary<INamedTypeSymbol, bool> knownTestAttributes, INamedTypeSymbol? benchmarkAttribute, INamedTypeSymbol? xunitFactAttribute)
src\RoslynAnalyzers\Utilities\Compiler\Extensions\IPropertySymbolExtensions.cs (1)
36var typeSymbol = propertySymbol.ContainingType;
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\RoslynAnalyzers\Utilities\Compiler\Extensions\ITypeSymbolExtensions.cs (14)
116INamedTypeSymbol? iDisposable, 117INamedTypeSymbol? iAsyncDisposable, 118INamedTypeSymbol? configuredAsyncDisposable) 140static bool IsInterfaceOrImplementsInterface(ITypeSymbol type, INamedTypeSymbol? interfaceType) 150public static IEnumerable<AttributeData> GetApplicableAttributes(this INamedTypeSymbol type, INamedTypeSymbol? attributeUsageAttribute) 182static bool IsInheritedAttribute(AttributeData attributeData, INamedTypeSymbol attributeUsageAttribute) 184for (var currentAttributeClass = attributeData.AttributeClass; 217public static IEnumerable<AttributeData> GetApplicableExportAttributes(this INamedTypeSymbol? type, INamedTypeSymbol? exportAttributeV1, INamedTypeSymbol? exportAttributeV2, INamedTypeSymbol? inheritedExportAttribute) 265=> typeSymbol.IsNullableValueType() && ((INamedTypeSymbol)typeSymbol).TypeArguments[0].SpecialType == SpecialType.System_Boolean; 268=> (typeSymbol as INamedTypeSymbol)?.TupleUnderlyingType ?? typeSymbol;
src\RoslynAnalyzers\Utilities\Compiler\Options\AnalyzerOptionsExtensions.cs (9)
281if (symbol is INamedTypeSymbol namedType && !excludedTypeNamesWithDerivedTypes.IsEmpty) 283foreach (var type in namedType.GetBaseTypesAndThis()) 379public static SymbolNamesWithValueOption<INamedTypeSymbol?> GetAdditionalRequiredGenericInterfaces( 386private static SymbolNamesWithValueOption<INamedTypeSymbol?> GetAdditionalRequiredGenericInterfaces( 394static SymbolNamesWithValueOption<INamedTypeSymbol?>.NameParts GetParts(string name, Compilation compilation) 401return new SymbolNamesWithValueOption<INamedTypeSymbol?>.NameParts(name, null); 413matchingSymbols[0] is not INamedTypeSymbol namedType || 418return new SymbolNamesWithValueOption<INamedTypeSymbol?>.NameParts(split[0], null); 421return new SymbolNamesWithValueOption<INamedTypeSymbol?>.NameParts(split[0], namedType);
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\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Extensions\OperationExtensions.cs (2)
405var notImplementedExceptionType = compilation.NotImplementedExceptionType(); 454static bool IsThrowNotImplementedOperation(INamedTypeSymbol notImplementedExceptionType, IOperation? operation)
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); 177var enumerableType = semanticModel.Compilation.IEnumerableOfTType();
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\NamingStyles\NamingStyleRules.cs (3)
65var containingType = symbol.ContainingType; 87var containingType = symbol.ContainingType; 90foreach (var implementedInterface in implementedInterfaces)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Services\SemanticFacts\ISemanticFacts.cs (4)
67bool LastEnumValueHasInitializer(INamedTypeSymbol namedTypeSymbol); 88bool IsPartial(INamedTypeSymbol typeSymbol, CancellationToken cancellationToken); 107bool IsInExpressionTree(SemanticModel semanticModel, SyntaxNode node, [NotNullWhen(true)] INamedTypeSymbol? expressionType, CancellationToken cancellationToken); 122bool TryGetPrimaryConstructor(INamedTypeSymbol typeSymbol, [NotNullWhen(true)] out IMethodSymbol? primaryConstructor);
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\SymbolKey\SymbolKey.AnonymousFunctionOrDelegateSymbolKey.cs (1)
65var anonymousDelegate = methodSymbol.AssociatedAnonymousDelegate;
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\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\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\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\SymbolKey\SymbolKey.FunctionPointerTypeSymbolKey.cs (2)
37var callingConventionModifiers = ImmutableArray<INamedTypeSymbol>.Empty; 40using var modifiersBuilder = reader.ReadSymbolKeyArray<IFunctionPointerTypeSymbol, INamedTypeSymbol>(
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\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\SymbolKey\SymbolKey.ParameterSymbolKey.cs (1)
64var delegateInvoke = (eventSymbol.Type as INamedTypeSymbol)?.DelegateInvokeMethod;
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\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\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Utilities\AbstractSpeculationAnalyzer.cs (5)
417var type = methodSymbol.ContainingType; 418var newType = newMethodSymbol.ContainingType; 491private static bool EnumTypesAreCompatible(INamedTypeSymbol type1, INamedTypeSymbol type2) 992var newSymbolContainingType = newSymbol.ContainingType;
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Utilities\EnumValueUtilities.cs (1)
21public static object GetNextEnumValue(INamedTypeSymbol enumType)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Compilation\CompilationExtensions.cs (78)
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? EventArgsType(this Compilation compilation) 129public static INamedTypeSymbol? NotImplementedExceptionType(this Compilation compilation) 132public static INamedTypeSymbol? EqualityComparerOfTType(this Compilation compilation) 135public static INamedTypeSymbol? ActionType(this Compilation compilation) 138public static INamedTypeSymbol? ExpressionOfTType(this Compilation compilation) 141public static INamedTypeSymbol? EditorBrowsableAttributeType(this Compilation compilation) 144public static INamedTypeSymbol? EditorBrowsableStateType(this Compilation compilation) 147public static INamedTypeSymbol? TaskType(this Compilation compilation) 150public static INamedTypeSymbol? TaskOfTType(this Compilation compilation) 153public static INamedTypeSymbol? ValueTaskType(this Compilation compilation) 156public static INamedTypeSymbol? ValueTaskOfTType(this Compilation compilation) 159public static INamedTypeSymbol? IEnumerableType(this Compilation compilation) 162public static INamedTypeSymbol? IEnumerableOfTType(this Compilation compilation) 165public static INamedTypeSymbol? IEnumeratorOfTType(this Compilation compilation) 168public static INamedTypeSymbol? IListOfTType(this Compilation compilation) 171public static INamedTypeSymbol? IReadOnlyListOfTType(this Compilation compilation) 174public static INamedTypeSymbol? ISetOfTType(this Compilation compilation) 177public static INamedTypeSymbol? IReadOnlySetOfTType(this Compilation compilation) 180public static INamedTypeSymbol? IAsyncEnumerableOfTType(this Compilation compilation) 183public static INamedTypeSymbol? IAsyncEnumeratorOfTType(this Compilation compilation) 186public static INamedTypeSymbol? ImmutableArrayOfTType(this Compilation compilation) 189public static INamedTypeSymbol? SerializableAttributeType(this Compilation compilation) 192public static INamedTypeSymbol? CoClassType(this Compilation compilation) 195public static INamedTypeSymbol? ComAliasNameAttributeType(this Compilation compilation) 198public static INamedTypeSymbol? SuppressMessageAttributeType(this Compilation compilation) 201public static INamedTypeSymbol? TupleElementNamesAttributeType(this Compilation compilation) 204public static INamedTypeSymbol? NativeIntegerAttributeType(this Compilation compilation) 207public static INamedTypeSymbol? DynamicAttributeType(this Compilation compilation) 210public static INamedTypeSymbol? LazyOfTType(this Compilation compilation) 213public static INamedTypeSymbol? ISerializableType(this Compilation compilation) 216public static INamedTypeSymbol? SerializationInfoType(this Compilation compilation) 219public static INamedTypeSymbol? StreamingContextType(this Compilation compilation) 222public static INamedTypeSymbol? OnDeserializingAttribute(this Compilation compilation) 225public static INamedTypeSymbol? OnDeserializedAttribute(this Compilation compilation) 228public static INamedTypeSymbol? OnSerializingAttribute(this Compilation compilation) 231public static INamedTypeSymbol? OnSerializedAttribute(this Compilation compilation) 234public static INamedTypeSymbol? ComRegisterFunctionAttribute(this Compilation compilation) 237public static INamedTypeSymbol? ComUnregisterFunctionAttribute(this Compilation compilation) 240public static INamedTypeSymbol? ConditionalAttribute(this Compilation compilation) 243public static INamedTypeSymbol? ObsoleteAttribute(this Compilation compilation) 246public static INamedTypeSymbol? SystemCompositionImportingConstructorAttribute(this Compilation compilation) 249public static INamedTypeSymbol? SystemComponentModelCompositionImportingConstructorAttribute(this Compilation compilation) 252public static INamedTypeSymbol? SystemIDisposableType(this Compilation compilation) 255public static INamedTypeSymbol? NotNullAttribute(this Compilation compilation) 258public static INamedTypeSymbol? MaybeNullAttribute(this Compilation compilation) 261public static INamedTypeSymbol? MaybeNullWhenAttribute(this Compilation compilation) 264public static INamedTypeSymbol? AllowNullAttribute(this Compilation compilation) 267public static INamedTypeSymbol? DisallowNullAttribute(this Compilation compilation) 270public static INamedTypeSymbol? DataMemberAttribute(this Compilation compilation) 273public static INamedTypeSymbol? DataContractAttribute(this Compilation compilation) 276public static INamedTypeSymbol? AsyncMethodBuilderAttribute(this Compilation compilation) 279public static INamedTypeSymbol? CancellationTokenType(this Compilation compilation) 282public static INamedTypeSymbol? ValueTupleType(this Compilation compilation, int arity) 285public static INamedTypeSymbol? ListOfTType(this Compilation compilation) 288public static INamedTypeSymbol? ReadOnlySpanOfTType(this Compilation compilation) 291public static INamedTypeSymbol? SpanOfTType(this Compilation compilation) 294public static INamedTypeSymbol? InterpolatedStringHandlerAttributeType(this Compilation compilation) 322public static INamedTypeSymbol? GetBestTypeByMetadataName(this Compilation compilation, string fullyQualifiedMetadataName) 324INamedTypeSymbol? type = null; 326foreach (var currentType in compilation.GetTypesByMetadataName(fullyQualifiedMetadataName)) 361foreach (var candidateTopLevelType in compilation.SourceModule.GlobalNamespace.GetTypeMembers(WellKnownMemberNames.TopLevelStatementsEntryPointTypeName, arity: 0)) 373public static INamedTypeSymbol? TryGetCallingConventionSymbol(this Compilation compilation, string callingConvention)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\IMethodSymbolExtensions.cs (4)
44public static bool HasEventHandlerSignature(this IMethodSymbol method, [NotNullWhen(returnValue: true)] INamedTypeSymbol? eventArgsType) 103public static bool IsEntryPoint(this IMethodSymbol methodSymbol, INamedTypeSymbol? taskType, INamedTypeSymbol? genericTaskType) 119if (method.ReturnType is not INamedTypeSymbol { Arity: 0 })
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\INamedTypeSymbolExtensions.cs (73)
23public static IEnumerable<INamedTypeSymbol> GetBaseTypesAndThis(this INamedTypeSymbol? namedType) 25var current = namedType; 33public static ImmutableArray<ITypeParameterSymbol> GetAllTypeParameters(this INamedTypeSymbol? symbol) 39public static ImmutableArray<ITypeSymbol> GetAllTypeArguments(this INamedTypeSymbol? symbol) 45private static Stack<INamedTypeSymbol> GetContainmentStack(INamedTypeSymbol? symbol) 47var stack = new Stack<INamedTypeSymbol>(); 48for (var current = symbol; current != null; current = current.ContainingType) 56public static bool IsContainedWithin([NotNullWhen(returnValue: true)] this INamedTypeSymbol? symbol, INamedTypeSymbol outer) 59for (var current = symbol; current != null; current = current.ContainingType) 70public static ISymbol? FindImplementationForAbstractMember(this INamedTypeSymbol? type, ISymbol symbol) 81private static bool ImplementationExists(INamedTypeSymbol classOrStructType, ISymbol member) 85this INamedTypeSymbol classOrStructType, 87Func<INamedTypeSymbol, ISymbol, bool> isValidImplementation, 117private static bool IsInterfacePropertyImplemented(INamedTypeSymbol classOrStructType, IPropertySymbol propertySymbol) 125static bool IsAccessorImplemented(IMethodSymbol? accessor, INamedTypeSymbol classOrStructType) 131private static bool IsAbstractPropertyImplemented(INamedTypeSymbol classOrStructType, IPropertySymbol propertySymbol) 154this INamedTypeSymbol classOrStructType, 156Func<INamedTypeSymbol, ISymbol, bool> isValid, 179public static ImmutableArray<(INamedTypeSymbol type, ImmutableArray<ISymbol> members)> GetAllUnimplementedMembers( 180this INamedTypeSymbol classOrStructType, 181IEnumerable<INamedTypeSymbol> interfaces, 197static ImmutableArray<ISymbol> GetImplicitlyImplementableMembers(INamedTypeSymbol type, ISymbol within) 249public static ImmutableArray<(INamedTypeSymbol type, ImmutableArray<ISymbol> members)> GetAllUnimplementedMembersInThis( 250this INamedTypeSymbol classOrStructType, 251IEnumerable<INamedTypeSymbol> interfacesOrAbstractClasses, 267public static ImmutableArray<(INamedTypeSymbol type, ImmutableArray<ISymbol> members)> GetAllUnimplementedMembersInThis( 268this INamedTypeSymbol classOrStructType, 269IEnumerable<INamedTypeSymbol> interfacesOrAbstractClasses, 270Func<INamedTypeSymbol, ISymbol, ImmutableArray<ISymbol>> interfaceMemberGetter, 286public static ImmutableArray<(INamedTypeSymbol type, ImmutableArray<ISymbol> members)> GetAllUnimplementedExplicitMembers( 287this INamedTypeSymbol classOrStructType, 288IEnumerable<INamedTypeSymbol> interfaces, 300private static ImmutableArray<ISymbol> GetExplicitlyImplementableMembers(INamedTypeSymbol type, ISymbol within) 327private static ImmutableArray<(INamedTypeSymbol type, ImmutableArray<ISymbol> members)> GetAllUnimplementedMembers( 328this INamedTypeSymbol classOrStructType, 329IEnumerable<INamedTypeSymbol> interfacesOrAbstractClasses, 330Func<INamedTypeSymbol, ISymbol, Func<INamedTypeSymbol, ISymbol, bool>, CancellationToken, bool> isImplemented, 331Func<INamedTypeSymbol, ISymbol, bool> isValidImplementation, 332Func<INamedTypeSymbol, ISymbol, ImmutableArray<ISymbol>> interfaceMemberGetter, 361private static ImmutableArray<INamedTypeSymbol> GetTypesToImplement( 362INamedTypeSymbol classOrStructType, 363IEnumerable<INamedTypeSymbol> interfacesOrAbstractClasses, 372private static ImmutableArray<INamedTypeSymbol> GetAbstractClassesToImplement( 373IEnumerable<INamedTypeSymbol> abstractClasses) 378private static ImmutableArray<INamedTypeSymbol> GetInterfacesToImplement( 379INamedTypeSymbol classOrStructType, 380IEnumerable<INamedTypeSymbol> interfaces, 387var interfacesToImplement = new List<INamedTypeSymbol>( 392var baseType = classOrStructType.BaseType; 403this INamedTypeSymbol classOrStructType, 404INamedTypeSymbol interfaceType, 405Func<INamedTypeSymbol, ISymbol, Func<INamedTypeSymbol, ISymbol, bool>, CancellationToken, bool> isImplemented, 406Func<INamedTypeSymbol, ISymbol, bool> isValidImplementation, 407Func<INamedTypeSymbol, ISymbol, ImmutableArray<ISymbol>> interfaceMemberGetter, 449this INamedTypeSymbol attributeSymbol, 455var systemAttributeType = compilation.AttributeType(); 457foreach (var type in attributeSymbol.GetBaseTypesAndThis()) 517private static ImmutableArray<ISymbol> GetMembers(INamedTypeSymbol type, ISymbol within) 531this INamedTypeSymbol containingType, CancellationToken cancellationToken) 548foreach (var type in baseTypes) 569Dictionary<ISymbol, int> result, INamedTypeSymbol containingType, CancellationToken cancellationToken) 590Dictionary<ISymbol, int> result, INamedTypeSymbol containingType, CancellationToken cancellationToken) 612Dictionary<ISymbol, int> result, INamedTypeSymbol containingType, 613INamedTypeSymbol type, ref int index, CancellationToken cancellationToken) 626private static bool IsOverridable(ISymbol member, INamedTypeSymbol containingType) 669public static INamedTypeSymbol TryConstruct(this INamedTypeSymbol type, ITypeSymbol[] typeArguments) 672public static bool IsCollectionBuilderAttribute([NotNullWhen(true)] this INamedTypeSymbol? type)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\INamespaceOrTypeSymbolExtensions.cs (3)
90public static IEnumerable<INamedTypeSymbol> GetAllTypes( 106var namedType = (INamedTypeSymbol)current;
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\ISymbolExtensions.cs (15)
98foreach (var baseType in symbol.ContainingType.GetBaseTypes()) 107bool TryFindLooseMatch(ISymbol symbol, INamedTypeSymbol baseType, [NotNullWhen(true)] out ISymbol? looseMatch) 156foreach (var iface in symbol.ContainingType.AllInterfaces) 214public static INamedTypeSymbol? GetContainingTypeOrThis(this ISymbol symbol) 216if (symbol is INamedTypeSymbol namedType) 309=> symbol is INamedTypeSymbol { IsAnonymousType: true }; 352SymbolKind.NamedType => ((INamedTypeSymbol)symbol).Arity, 433INamedTypeSymbol nt => nt.TypeParameters, 454INamedTypeSymbol nt => nt.TypeArguments, 463var containingType = symbol.ContainingType; 504var delegateType = compilation.GetTypeByMetadataName(method.ReturnsVoid 533=> symbol is INamedTypeSymbol { IsStatic: true }; 545foreach (var type in namespaceOrType.GetAllTypes(cancellationToken)) 559return ((INamedTypeSymbol)symbol).GetMembers().OfType<IPropertySymbol>().Where(p => p.CanBeReferencedByName); 809public static bool HasAttribute([NotNullWhen(true)] this ISymbol? symbol, [NotNullWhen(true)] INamedTypeSymbol? attributeClass)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\ISymbolExtensions.RequiresUnsafeModifierVisitor.cs (1)
56public override bool VisitNamedType(INamedTypeSymbol symbol)
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\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\ITypeGenerator.cs (1)
13ITypeSymbol Construct(INamedTypeSymbol namedType, ITypeSymbol[] typeArguments);
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\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\ITypeSymbolExtensions.AnonymousTypeRemover.cs (1)
42public override ITypeSymbol VisitNamedType(INamedTypeSymbol symbol)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\ITypeSymbolExtensions.CollectTypeParameterSymbolsVisitor.cs (1)
57public override void VisitNamedType(INamedTypeSymbol symbol)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\ITypeSymbolExtensions.CompilationTypeGenerator.cs (1)
19public ITypeSymbol Construct(INamedTypeSymbol namedType, ITypeSymbol[] typeArguments)
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) 315INamedTypeSymbol n => ContainsAnonymousType(n), 320private static bool ContainsAnonymousType(INamedTypeSymbol type) 410public static INamedTypeSymbol? GetDelegateType(this ITypeSymbol? typeSymbol, Compilation compilation) 414var expressionOfT = compilation.ExpressionOfTType(); 417var typeArgument = ((INamedTypeSymbol)typeSymbol).TypeArguments[0]; 418return typeArgument as INamedTypeSymbol; 423return typeSymbol as INamedTypeSymbol; 576var n2 = t2 as INamedTypeSymbol; 578if (t1 is not INamedTypeSymbol n1) 628public static bool IsEnumType([NotNullWhen(true)] this ITypeSymbol? type, [NotNullWhen(true)] out INamedTypeSymbol? enumType) 632enumType = (INamedTypeSymbol)type; 724if (type is not INamedTypeSymbol 777=> type is INamedTypeSymbol 785=> symbol is INamedTypeSymbol 793=> type is INamedTypeSymbol namedType &&
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\ITypeSymbolExtensions.MinimalAccessibilityVisitor.cs (2)
42foreach (var callingConventionType in symbol.Signature.UnmanagedCallingConventionTypes) 50public override Accessibility VisitNamedType(INamedTypeSymbol symbol)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\ITypeSymbolExtensions.SubstituteTypesVisitor.cs (1)
58public override ITypeSymbol VisitNamedType(INamedTypeSymbol symbol)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\ITypeSymbolExtensions.UnavailableTypeParameterRemover.cs (1)
43public override ITypeSymbol VisitNamedType(INamedTypeSymbol symbol)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\ITypeSymbolExtensions.UnnamedErrorTypeRemover.cs (1)
42public override ITypeSymbol VisitNamedType(INamedTypeSymbol symbol)
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\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\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\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\SymbolEquivalenceComparer.ParameterSymbolEqualityComparer.cs (2)
23Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies,
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\SymbolEquivalenceComparer.SignatureTypeSymbolEquivalenceComparer.cs (2)
18public bool Equals(ITypeSymbol? x, ITypeSymbol? y, Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies)
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\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\AbstractFlagsEnumGenerator.cs (10)
15protected abstract SyntaxNode CreateExplicitlyCastedLiteralValue(INamedTypeSymbol enumType, SpecialType underlyingSpecialType, object constantValue); 16protected abstract bool IsValidName(INamedTypeSymbol enumType, string name); 20public SyntaxNode CreateEnumConstantValue(INamedTypeSymbol enumType, object constantValue) 36private static bool IsFlagsEnum(INamedTypeSymbol typeSymbol) 48var type = ctor.ContainingType; 61private SyntaxNode CreateFlagsEnumConstantValue(INamedTypeSymbol enumType, object constantValue) 72INamedTypeSymbol enumType, 138IFieldSymbol field, INamedTypeSymbol enumType, SpecialType underlyingSpecialType) 168INamedTypeSymbol enumType, 185private SyntaxNode CreateNonFlagsEnumConstantValue(INamedTypeSymbol enumType, object constantValue)
src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\CodeGenerationHelpers.cs (2)
25var exceptionType = compilation.GetTypeByMetadataName(exceptionMetadataName); 150public static IEnumerable<ISymbol> GetMembers(INamedTypeSymbol namedType)
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\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\CodeGenerator.cs (8)
29public static Task<Document> AddEventDeclarationAsync(CodeGenerationSolutionContext context, INamedTypeSymbol destination, IEventSymbol @event, CancellationToken cancellationToken) 36public static Task<Document> AddFieldDeclarationAsync(CodeGenerationSolutionContext context, INamedTypeSymbol destination, IFieldSymbol field, CancellationToken cancellationToken) 43public static Task<Document> AddMethodDeclarationAsync(CodeGenerationSolutionContext context, INamedTypeSymbol destination, IMethodSymbol method, CancellationToken cancellationToken) 50public static Task<Document> AddPropertyDeclarationAsync(CodeGenerationSolutionContext context, INamedTypeSymbol destination, IPropertySymbol property, CancellationToken cancellationToken) 57public static Task<Document> AddNamedTypeDeclarationAsync(CodeGenerationSolutionContext context, INamedTypeSymbol destination, INamedTypeSymbol namedType, CancellationToken cancellationToken) 64public static Task<Document> AddNamedTypeDeclarationAsync(CodeGenerationSolutionContext context, INamespaceSymbol destination, INamedTypeSymbol namedType, CancellationToken cancellationToken) 85public static Task<Document> AddMemberDeclarationsAsync(CodeGenerationSolutionContext context, INamedTypeSymbol destination, IEnumerable<ISymbol> members, CancellationToken cancellationToken)
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\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\INamedTypeSymbolExtensions.cs (2)
11public static CodeGenerationAbstractNamedTypeSymbol ToCodeGenerationSymbol(this INamedTypeSymbol namedType) 32namedType.GetMembers().WhereAsArray(s => s is not INamedTypeSymbol),
src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\Symbols\CodeGenerationAbstractMethodSymbol.cs (3)
23INamedTypeSymbol containingType, 98public INamedTypeSymbol AssociatedAnonymousDelegate => null; 108public ImmutableArray<INamedTypeSymbol> UnmanagedCallingConventionTypes => [];
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\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\Symbols\CodeGenerationAttributeData.cs (2)
13INamedTypeSymbol attributeClass, 20protected override INamedTypeSymbol CommonAttributeClass => attributeClass;
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\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\Symbols\CodeGenerationConstructorSymbol.cs (1)
11INamedTypeSymbol? containingType,
src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\Symbols\CodeGenerationConversionSymbol.cs (1)
11INamedTypeSymbol? containingType,
src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\Symbols\CodeGenerationDestructorSymbol.cs (1)
10INamedTypeSymbol? containingType,
src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\Symbols\CodeGenerationEventSymbol.cs (1)
12INamedTypeSymbol? containingType,
src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\Symbols\CodeGenerationFieldSymbol.cs (1)
13INamedTypeSymbol containingType,
src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\Symbols\CodeGenerationMethodSymbol.cs (1)
23INamedTypeSymbol containingType,
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\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\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\Symbols\CodeGenerationNamespaceSymbol.cs (1)
57public static INamedTypeSymbol ImplicitType => null;
src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\Symbols\CodeGenerationOperatorSymbol.cs (1)
11INamedTypeSymbol? containingType,
src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\Symbols\CodeGenerationParameterSymbol.cs (1)
13INamedTypeSymbol containingType,
src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\Symbols\CodeGenerationPropertySymbol.cs (1)
13INamedTypeSymbol containingType,
src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\Symbols\CodeGenerationSymbol.cs (3)
27public INamedTypeSymbol ContainingType { get; protected set; } 31INamedTypeSymbol containingType, 162public ImmutableArray<AttributeData> GetAttributes(INamedTypeSymbol attributeType)
src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\Symbols\CodeGenerationTypeParameterSymbol.cs (3)
12INamedTypeSymbol containingType, 80public INamedTypeSymbol DeclaringType 84return this.ContainingSymbol as INamedTypeSymbol;
src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\Symbols\CodeGenerationTypeSymbol.cs (4)
14INamedTypeSymbol containingType, 27public virtual INamedTypeSymbol BaseType => null; 29public virtual ImmutableArray<INamedTypeSymbol> Interfaces 32public ImmutableArray<INamedTypeSymbol> AllInterfaces
src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\TypeGenerator.cs (1)
21public ITypeSymbol Construct(INamedTypeSymbol namedType, ITypeSymbol[] typeArguments)
src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\Editing\ImportAdderService.cs (2)
202foreach (var namedType in SymbolAnnotation.GetSymbols(annotation, model.Compilation).OfType<INamedTypeSymbol>())
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\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\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\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\Extensions\KnownTypes.cs (8)
9public readonly INamedTypeSymbol? TaskType = compilation.TaskType(); 10public readonly INamedTypeSymbol? TaskOfTType = compilation.TaskOfTType(); 11public readonly INamedTypeSymbol? ValueTaskType = compilation.ValueTaskType(); 12public readonly INamedTypeSymbol? ValueTaskOfTType = compilation.ValueTaskOfTType(); 14public readonly INamedTypeSymbol? IEnumerableOfTType = compilation.IEnumerableOfTType(); 15public readonly INamedTypeSymbol? IEnumeratorOfTType = compilation.IEnumeratorOfTType(); 17public readonly INamedTypeSymbol? IAsyncEnumerableOfTType = compilation.IAsyncEnumerableOfTType(); 18public readonly INamedTypeSymbol? IAsyncEnumeratorOfTType = compilation.IAsyncEnumeratorOfTType();
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\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\Extensions\SyntaxGeneratorExtensions_CreateEqualsMethod.cs (11)
32INamedTypeSymbol containingType, 63INamedTypeSymbol containingType, 65INamedTypeSymbol constructedEquatableType, 109INamedTypeSymbol containingType, 218var iequatableType = compilation.GetTypeByMetadataName(typeof(IEquatable<>).FullName); 271INamedTypeSymbol containingType, 382private static bool ImplementsIEquatable(ITypeSymbol memberType, INamedTypeSymbol iequatableType) 388var constructed = iequatableType.Construct(memberType); 433private static bool HasExistingBaseEqualsMethod(INamedTypeSymbol containingType) 456INamedTypeSymbol? containingType, 490INamedTypeSymbol? containingType,
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\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\Extensions\SyntaxGeneratorExtensions_Negate.cs (1)
446var containingType = property.ContainingType;
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\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\LanguageServices\SemanticsFactsService\AbstractSemanticFactsService.cs (7)
127var valueTaskType = compilation.ValueTaskType(); 163(INamedTypeSymbol?, IMethodSymbol?) GetIDisposableInterfaceAndDisposeMethod(string typeName, string methodName) 165var 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\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\LanguageServices\SyntaxGeneratorInternalExtensions\SyntaxGeneratorInternal.cs (1)
117public abstract SyntaxNode DeclarationPattern(INamedTypeSymbol type, string name);
src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\LanguageServices\TypeInferenceService\AbstractTypeInferenceService.AbstractTypeInferrer.cs (1)
102protected static IEnumerable<TypeInferenceInfo> GetCollectionElementType(INamedTypeSymbol type)
src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\Simplification\SimplificationHelpers.cs (1)
80var typeSymbol = semanticModel.Compilation.GetSpecialType(specialType);
SymbolIsBannedAnalyzerBase.cs (2)
216INamedTypeSymbol namedType => namedType.IsAttribute(), 314case INamedTypeSymbol namedTypeSymbol:
Microsoft.CodeAnalysis.CodeStyle (506)
src\Analyzers\Core\Analyzers\ConvertTypeofToNameof\AbstractConvertTypeOfToNameOfDiagnosticAnalyzer.cs (1)
65if (typeofOperation.TypeOperand is not INamedTypeSymbol namedType)
src\Analyzers\Core\Analyzers\ForEachCast\AbstractForEachCastDiagnosticAnalyzer.cs (1)
100var ienumerableOfT = collectionType.AllInterfaces.FirstOrDefault(i => i.OriginalDefinition.SpecialType == SpecialType.System_Collections_Generic_IEnumerable_T);
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\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\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\Analyzers\Core\Analyzers\RemoveUnnecessarySuppressions\AbstractRemoveUnnecessaryAttributeSuppressionsDiagnosticAnalyzer.cs (2)
59var suppressMessageAttributeType = context.Compilation.SuppressMessageAttributeType(); 69protected sealed class CompilationAnalyzer(Compilation compilation, INamedTypeSymbol suppressMessageAttributeType)
src\Analyzers\Core\Analyzers\RemoveUnnecessarySuppressions\AbstractRemoveUnnecessaryPragmaSuppressionsDiagnosticAnalyzer.cs (2)
742var suppressMessageAttributeType = semanticModel.Compilation.SuppressMessageAttributeType(); 842INamedTypeSymbol suppressMessageAttributeType,
src\Analyzers\Core\Analyzers\RemoveUnnecessarySuppressions\SuppressMessageAttributeState.cs (2)
15internal sealed partial class SuppressMessageAttributeState(Compilation compilation, INamedTypeSymbol suppressMessageAttributeType) 23private readonly INamedTypeSymbol _suppressMessageAttributeType = suppressMessageAttributeType;
src\Analyzers\Core\Analyzers\RemoveUnusedMembers\AbstractRemoveUnusedMembersDiagnosticAnalyzer.cs (24)
65protected abstract IEnumerable<TTypeDeclarationSyntax> GetTypeDeclarations(INamedTypeSymbol namedType, CancellationToken cancellationToken); 137private readonly INamedTypeSymbol? _taskType; 138private readonly INamedTypeSymbol? _genericTaskType; 139private readonly INamedTypeSymbol? _debuggerDisplayAttributeType; 140private readonly INamedTypeSymbol? _structLayoutAttributeType; 141private readonly INamedTypeSymbol? _inlineArrayAttributeType; 142private readonly INamedTypeSymbol? _eventArgsType; 143private readonly INamedTypeSymbol? _iNotifyCompletionType; 145private readonly ImmutableHashSet<INamedTypeSymbol?> _attributeSetForMethodsToIgnore; 168private static IEnumerable<INamedTypeSymbol> GetAttributesForMethodsToIgnore(Compilation compilation) 172var onDeserializingAttribute = compilation.OnDeserializingAttribute(); 178var onDeserializedAttribute = compilation.OnDeserializedAttribute(); 184var onSerializingAttribute = compilation.OnSerializingAttribute(); 190var onSerializedAttribute = compilation.OnSerializedAttribute(); 196var comRegisterFunctionAttribute = compilation.ComRegisterFunctionAttribute(); 202var comUnregisterFunctionAttribute = compilation.ComUnregisterFunctionAttribute(); 233if (!ShouldAnalyze(symbolStartContext, (INamedTypeSymbol)symbolStartContext.Symbol)) 280bool ShouldAnalyze(SymbolStartAnalysisContext context, INamedTypeSymbol namedType) 509var namedType = (INamedTypeSymbol)symbolEndContext.Symbol; 659private static bool HasSyntaxErrors(INamedTypeSymbol namedTypeSymbol, CancellationToken cancellationToken) 673INamedTypeSymbol namedTypeSymbol, 753private void AddDebuggerDisplayAttributeArguments(INamedTypeSymbol namedTypeSymbol, ArrayBuilder<string> builder) 761case INamedTypeSymbol nestedType:
src\Analyzers\Core\Analyzers\RemoveUnusedParametersAndValues\AbstractRemoveUnusedParametersAndValuesDiagnosticAnalyzer.SymbolStartAnalyzer.BlockAnalyzer.cs (1)
488var interpolatedStringHandlerAttribute = context.Compilation.InterpolatedStringHandlerAttributeType();
src\Analyzers\Core\Analyzers\RemoveUnusedParametersAndValues\AbstractRemoveUnusedParametersAndValuesDiagnosticAnalyzer.SymbolStartAnalyzer.cs (15)
25INamedTypeSymbol? eventArgsType, 26ImmutableHashSet<INamedTypeSymbol> attributeSetForMethodsToIgnore, 28INamedTypeSymbol? iCustomMarshaler, 33private readonly INamedTypeSymbol? _eventArgsType = eventArgsType; 34private readonly ImmutableHashSet<INamedTypeSymbol> _attributeSetForMethodsToIgnore = attributeSetForMethodsToIgnore; 37private readonly INamedTypeSymbol? _iCustomMarshaler = iCustomMarshaler; 52var eventsArgType = context.Compilation.EventArgsType(); 54var iCustomMarshaler = context.Compilation.GetTypeByMetadataName(typeof(ICustomMarshaler).FullName!); 58if (HasSyntaxErrors((INamedTypeSymbol)symbolStartContext.Symbol, symbolStartContext.CancellationToken)) 76static bool HasSyntaxErrors(INamedTypeSymbol namedTypeSymbol, CancellationToken cancellationToken) 111var interpolatedStringHandlerAttribute = context.Compilation.InterpolatedStringHandlerAttributeType(); 124INamedTypeSymbol? interpolatedStringHandlerAttributeType, 177private static IEnumerable<INamedTypeSymbol?> GetAttributesForMethodsToIgnore(Compilation compilation) 196private bool IsUnusedParameterCandidate(IParameterSymbol parameter, INamedTypeSymbol? interpolatedStringHandlerAttributeType, CancellationToken cancellationToken) 293INamedTypeSymbol? interpolatedStringHandlerAttributeType)
src\Analyzers\Core\Analyzers\SimplifyInterpolation\AbstractSimplifyInterpolationDiagnosticAnalyzer.cs (2)
36var formattableStringType = context.Compilation.FormattableStringType(); 42INamedTypeSymbol? formattableStringType)
src\Analyzers\Core\Analyzers\SimplifyInterpolation\AbstractSimplifyInterpolationHelpers.cs (2)
183private static bool IsType<T>(INamedTypeSymbol type, SemanticModel semanticModel) 186private static INamedTypeSymbol? FindType<T>(SemanticModel semanticModel)
src\Analyzers\Core\Analyzers\SimplifyLinqExpression\AbstractSimplifyLinqExpressionDiagnosticAnalyzer.cs (7)
58if (TryGetEnumerableTypeSymbol(context.Compilation, out var enumerableType) && 68static bool TryGetEnumerableTypeSymbol(Compilation compilation, [NotNullWhen(true)] out INamedTypeSymbol? enumerableType) 74static bool TryGetLinqWhereExtensionMethod(INamedTypeSymbol enumerableType, [NotNullWhen(true)] out IMethodSymbol? linqMethod) 77static bool TryGetLinqSelectExtensionMethod(INamedTypeSymbol enumerableType, [NotNullWhen(true)] out IMethodSymbol? linqMethod) 80static bool TryGetLinqExtensionMethod(INamedTypeSymbol enumerableType, string name, [NotNullWhen(true)] out IMethodSymbol? linqMethod) 84if (linqMethodSymbol.Parameters is [_, { Type: INamedTypeSymbol { Arity: 2 } }]) 97static bool TryGetLinqMethodsThatDoNotReturnEnumerables(INamedTypeSymbol enumerableType, out ImmutableArray<IMethodSymbol> linqMethods)
src\Analyzers\Core\Analyzers\UseAutoProperty\AbstractUseAutoPropertyAnalyzer.cs (4)
99var namedType = (INamedTypeSymbol)context.Symbol; 175bool ShouldAnalyze(SymbolStartAnalysisContext context, INamedTypeSymbol namedType) 328INamedTypeSymbol containingType,
src\Analyzers\Core\Analyzers\UseCoalesceExpression\AbstractUseCoalesceExpressionForNullableTernaryConditionalCheckDiagnosticAnalyzer.cs (1)
109var nullableType = semanticModel.Compilation.GetTypeByMetadataName(typeof(Nullable<>).FullName!);
src\Analyzers\Core\Analyzers\UseCollectionInitializer\AbstractUseCollectionInitializerDiagnosticAnalyzer.cs (5)
82INamedTypeSymbol? expressionType, 98var ienumerableType = context.Compilation.IEnumerableType(); 115var expressionType = context.Compilation.ExpressionOfTType(); 124INamedTypeSymbol ienumerableType, 125INamedTypeSymbol? expressionType)
src\Analyzers\Core\Analyzers\UseExplicitTupleName\UseExplicitTupleNameDiagnosticAnalyzer.cs (1)
77INamedTypeSymbol containingType, IFieldSymbol unnamedField, CancellationToken cancellationToken)
src\Analyzers\Core\Analyzers\UseIsNullCheck\AbstractUseIsNullForReferenceEqualsDiagnosticAnalyzer.cs (1)
34var objectType = context.Compilation.GetSpecialType(SpecialType.System_Object);
src\Analyzers\Core\Analyzers\UseNullPropagation\AbstractUseNullPropagationDiagnosticAnalyzer.cs (7)
82public (INamedTypeSymbol? expressionType, IMethodSymbol? referenceEqualsMethod) GetAnalysisSymbols(Compilation compilation) 84var expressionType = compilation.ExpressionOfTType(); 85var objectType = compilation.GetSpecialType(SpecialType.System_Object); 99var expressionType = context.Compilation.ExpressionOfTType(); 129INamedTypeSymbol? expressionType, 155INamedTypeSymbol? expressionType, 199if (type is not INamedTypeSymbol namedType || namedType.ConstructedFrom.SpecialType != SpecialType.System_Nullable_T)
src\Analyzers\Core\Analyzers\UseThrowExpression\AbstractUseThrowExpressionDiagnosticAnalyzer.cs (2)
64var expressionType = startContext.Compilation.ExpressionOfTType(); 69private void AnalyzeOperation(OperationAnalysisContext context, INamedTypeSymbol? expressionType)
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\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\Compilers\Core\Portable\SourceGeneration\GeneratedCodeUtilities.cs (1)
19ISymbol symbol, INamedTypeSymbol generatedCodeAttribute)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Extensions\OperationExtensions.cs (2)
405var notImplementedExceptionType = compilation.NotImplementedExceptionType(); 454static bool IsThrowNotImplementedOperation(INamedTypeSymbol notImplementedExceptionType, IOperation? operation)
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); 177var enumerableType = semanticModel.Compilation.IEnumerableOfTType();
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\NamingStyles\NamingStyleRules.cs (3)
65var containingType = symbol.ContainingType; 87var containingType = symbol.ContainingType; 90foreach (var implementedInterface in implementedInterfaces)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Services\SemanticFacts\ISemanticFacts.cs (4)
67bool LastEnumValueHasInitializer(INamedTypeSymbol namedTypeSymbol); 88bool IsPartial(INamedTypeSymbol typeSymbol, CancellationToken cancellationToken); 107bool IsInExpressionTree(SemanticModel semanticModel, SyntaxNode node, [NotNullWhen(true)] INamedTypeSymbol? expressionType, CancellationToken cancellationToken); 122bool TryGetPrimaryConstructor(INamedTypeSymbol typeSymbol, [NotNullWhen(true)] out IMethodSymbol? primaryConstructor);
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\SymbolKey\SymbolKey.AnonymousFunctionOrDelegateSymbolKey.cs (1)
65var anonymousDelegate = methodSymbol.AssociatedAnonymousDelegate;
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\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\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\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\SymbolKey\SymbolKey.FunctionPointerTypeSymbolKey.cs (2)
37var callingConventionModifiers = ImmutableArray<INamedTypeSymbol>.Empty; 40using var modifiersBuilder = reader.ReadSymbolKeyArray<IFunctionPointerTypeSymbol, INamedTypeSymbol>(
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\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\SymbolKey\SymbolKey.ParameterSymbolKey.cs (2)
64var delegateInvoke = (eventSymbol.Type as INamedTypeSymbol)?.DelegateInvokeMethod; 73case INamedTypeSymbol { IsExtension: true, ExtensionParameter: { } extensionParameter }:
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\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\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Utilities\AbstractSpeculationAnalyzer.cs (5)
417var type = methodSymbol.ContainingType; 418var newType = newMethodSymbol.ContainingType; 491private static bool EnumTypesAreCompatible(INamedTypeSymbol type1, INamedTypeSymbol type2) 992var newSymbolContainingType = newSymbol.ContainingType;
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Utilities\EnumValueUtilities.cs (1)
21public static object GetNextEnumValue(INamedTypeSymbol enumType)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Compilation\CompilationExtensions.cs (78)
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? EventArgsType(this Compilation compilation) 129public static INamedTypeSymbol? NotImplementedExceptionType(this Compilation compilation) 132public static INamedTypeSymbol? EqualityComparerOfTType(this Compilation compilation) 135public static INamedTypeSymbol? ActionType(this Compilation compilation) 138public static INamedTypeSymbol? ExpressionOfTType(this Compilation compilation) 141public static INamedTypeSymbol? EditorBrowsableAttributeType(this Compilation compilation) 144public static INamedTypeSymbol? EditorBrowsableStateType(this Compilation compilation) 147public static INamedTypeSymbol? TaskType(this Compilation compilation) 150public static INamedTypeSymbol? TaskOfTType(this Compilation compilation) 153public static INamedTypeSymbol? ValueTaskType(this Compilation compilation) 156public static INamedTypeSymbol? ValueTaskOfTType(this Compilation compilation) 159public static INamedTypeSymbol? IEnumerableType(this Compilation compilation) 162public static INamedTypeSymbol? IEnumerableOfTType(this Compilation compilation) 165public static INamedTypeSymbol? IEnumeratorOfTType(this Compilation compilation) 168public static INamedTypeSymbol? IListOfTType(this Compilation compilation) 171public static INamedTypeSymbol? IReadOnlyListOfTType(this Compilation compilation) 174public static INamedTypeSymbol? ISetOfTType(this Compilation compilation) 177public static INamedTypeSymbol? IReadOnlySetOfTType(this Compilation compilation) 180public static INamedTypeSymbol? IAsyncEnumerableOfTType(this Compilation compilation) 183public static INamedTypeSymbol? IAsyncEnumeratorOfTType(this Compilation compilation) 186public static INamedTypeSymbol? ImmutableArrayOfTType(this Compilation compilation) 189public static INamedTypeSymbol? SerializableAttributeType(this Compilation compilation) 192public static INamedTypeSymbol? CoClassType(this Compilation compilation) 195public static INamedTypeSymbol? ComAliasNameAttributeType(this Compilation compilation) 198public static INamedTypeSymbol? SuppressMessageAttributeType(this Compilation compilation) 201public static INamedTypeSymbol? TupleElementNamesAttributeType(this Compilation compilation) 204public static INamedTypeSymbol? NativeIntegerAttributeType(this Compilation compilation) 207public static INamedTypeSymbol? DynamicAttributeType(this Compilation compilation) 210public static INamedTypeSymbol? LazyOfTType(this Compilation compilation) 213public static INamedTypeSymbol? ISerializableType(this Compilation compilation) 216public static INamedTypeSymbol? SerializationInfoType(this Compilation compilation) 219public static INamedTypeSymbol? StreamingContextType(this Compilation compilation) 222public static INamedTypeSymbol? OnDeserializingAttribute(this Compilation compilation) 225public static INamedTypeSymbol? OnDeserializedAttribute(this Compilation compilation) 228public static INamedTypeSymbol? OnSerializingAttribute(this Compilation compilation) 231public static INamedTypeSymbol? OnSerializedAttribute(this Compilation compilation) 234public static INamedTypeSymbol? ComRegisterFunctionAttribute(this Compilation compilation) 237public static INamedTypeSymbol? ComUnregisterFunctionAttribute(this Compilation compilation) 240public static INamedTypeSymbol? ConditionalAttribute(this Compilation compilation) 243public static INamedTypeSymbol? ObsoleteAttribute(this Compilation compilation) 246public static INamedTypeSymbol? SystemCompositionImportingConstructorAttribute(this Compilation compilation) 249public static INamedTypeSymbol? SystemComponentModelCompositionImportingConstructorAttribute(this Compilation compilation) 252public static INamedTypeSymbol? SystemIDisposableType(this Compilation compilation) 255public static INamedTypeSymbol? NotNullAttribute(this Compilation compilation) 258public static INamedTypeSymbol? MaybeNullAttribute(this Compilation compilation) 261public static INamedTypeSymbol? MaybeNullWhenAttribute(this Compilation compilation) 264public static INamedTypeSymbol? AllowNullAttribute(this Compilation compilation) 267public static INamedTypeSymbol? DisallowNullAttribute(this Compilation compilation) 270public static INamedTypeSymbol? DataMemberAttribute(this Compilation compilation) 273public static INamedTypeSymbol? DataContractAttribute(this Compilation compilation) 276public static INamedTypeSymbol? AsyncMethodBuilderAttribute(this Compilation compilation) 279public static INamedTypeSymbol? CancellationTokenType(this Compilation compilation) 282public static INamedTypeSymbol? ValueTupleType(this Compilation compilation, int arity) 285public static INamedTypeSymbol? ListOfTType(this Compilation compilation) 288public static INamedTypeSymbol? ReadOnlySpanOfTType(this Compilation compilation) 291public static INamedTypeSymbol? SpanOfTType(this Compilation compilation) 294public static INamedTypeSymbol? InterpolatedStringHandlerAttributeType(this Compilation compilation) 322public static INamedTypeSymbol? GetBestTypeByMetadataName(this Compilation compilation, string fullyQualifiedMetadataName) 324INamedTypeSymbol? type = null; 326foreach (var currentType in compilation.GetTypesByMetadataName(fullyQualifiedMetadataName)) 361foreach (var candidateTopLevelType in compilation.SourceModule.GlobalNamespace.GetTypeMembers(WellKnownMemberNames.TopLevelStatementsEntryPointTypeName, arity: 0)) 373public static INamedTypeSymbol? TryGetCallingConventionSymbol(this Compilation compilation, string callingConvention)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\IMethodSymbolExtensions.cs (4)
44public static bool HasEventHandlerSignature(this IMethodSymbol method, [NotNullWhen(returnValue: true)] INamedTypeSymbol? eventArgsType) 103public static bool IsEntryPoint(this IMethodSymbol methodSymbol, INamedTypeSymbol? taskType, INamedTypeSymbol? genericTaskType) 119if (method.ReturnType is not INamedTypeSymbol { Arity: 0 })
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\INamedTypeSymbolExtensions.cs (73)
23public static IEnumerable<INamedTypeSymbol> GetBaseTypesAndThis(this INamedTypeSymbol? namedType) 25var current = namedType; 33public static ImmutableArray<ITypeParameterSymbol> GetAllTypeParameters(this INamedTypeSymbol? symbol) 39public static ImmutableArray<ITypeSymbol> GetAllTypeArguments(this INamedTypeSymbol? symbol) 45private static Stack<INamedTypeSymbol> GetContainmentStack(INamedTypeSymbol? symbol) 47var stack = new Stack<INamedTypeSymbol>(); 48for (var current = symbol; current != null; current = current.ContainingType) 56public static bool IsContainedWithin([NotNullWhen(returnValue: true)] this INamedTypeSymbol? symbol, INamedTypeSymbol outer) 59for (var current = symbol; current != null; current = current.ContainingType) 70public static ISymbol? FindImplementationForAbstractMember(this INamedTypeSymbol? type, ISymbol symbol) 81private static bool ImplementationExists(INamedTypeSymbol classOrStructType, ISymbol member) 85this INamedTypeSymbol classOrStructType, 87Func<INamedTypeSymbol, ISymbol, bool> isValidImplementation, 117private static bool IsInterfacePropertyImplemented(INamedTypeSymbol classOrStructType, IPropertySymbol propertySymbol) 125static bool IsAccessorImplemented(IMethodSymbol? accessor, INamedTypeSymbol classOrStructType) 131private static bool IsAbstractPropertyImplemented(INamedTypeSymbol classOrStructType, IPropertySymbol propertySymbol) 154this INamedTypeSymbol classOrStructType, 156Func<INamedTypeSymbol, ISymbol, bool> isValid, 179public static ImmutableArray<(INamedTypeSymbol type, ImmutableArray<ISymbol> members)> GetAllUnimplementedMembers( 180this INamedTypeSymbol classOrStructType, 181IEnumerable<INamedTypeSymbol> interfaces, 197static ImmutableArray<ISymbol> GetImplicitlyImplementableMembers(INamedTypeSymbol type, ISymbol within) 249public static ImmutableArray<(INamedTypeSymbol type, ImmutableArray<ISymbol> members)> GetAllUnimplementedMembersInThis( 250this INamedTypeSymbol classOrStructType, 251IEnumerable<INamedTypeSymbol> interfacesOrAbstractClasses, 267public static ImmutableArray<(INamedTypeSymbol type, ImmutableArray<ISymbol> members)> GetAllUnimplementedMembersInThis( 268this INamedTypeSymbol classOrStructType, 269IEnumerable<INamedTypeSymbol> interfacesOrAbstractClasses, 270Func<INamedTypeSymbol, ISymbol, ImmutableArray<ISymbol>> interfaceMemberGetter, 286public static ImmutableArray<(INamedTypeSymbol type, ImmutableArray<ISymbol> members)> GetAllUnimplementedExplicitMembers( 287this INamedTypeSymbol classOrStructType, 288IEnumerable<INamedTypeSymbol> interfaces, 300private static ImmutableArray<ISymbol> GetExplicitlyImplementableMembers(INamedTypeSymbol type, ISymbol within) 327private static ImmutableArray<(INamedTypeSymbol type, ImmutableArray<ISymbol> members)> GetAllUnimplementedMembers( 328this INamedTypeSymbol classOrStructType, 329IEnumerable<INamedTypeSymbol> interfacesOrAbstractClasses, 330Func<INamedTypeSymbol, ISymbol, Func<INamedTypeSymbol, ISymbol, bool>, CancellationToken, bool> isImplemented, 331Func<INamedTypeSymbol, ISymbol, bool> isValidImplementation, 332Func<INamedTypeSymbol, ISymbol, ImmutableArray<ISymbol>> interfaceMemberGetter, 361private static ImmutableArray<INamedTypeSymbol> GetTypesToImplement( 362INamedTypeSymbol classOrStructType, 363IEnumerable<INamedTypeSymbol> interfacesOrAbstractClasses, 372private static ImmutableArray<INamedTypeSymbol> GetAbstractClassesToImplement( 373IEnumerable<INamedTypeSymbol> abstractClasses) 378private static ImmutableArray<INamedTypeSymbol> GetInterfacesToImplement( 379INamedTypeSymbol classOrStructType, 380IEnumerable<INamedTypeSymbol> interfaces, 387var interfacesToImplement = new List<INamedTypeSymbol>( 392var baseType = classOrStructType.BaseType; 403this INamedTypeSymbol classOrStructType, 404INamedTypeSymbol interfaceType, 405Func<INamedTypeSymbol, ISymbol, Func<INamedTypeSymbol, ISymbol, bool>, CancellationToken, bool> isImplemented, 406Func<INamedTypeSymbol, ISymbol, bool> isValidImplementation, 407Func<INamedTypeSymbol, ISymbol, ImmutableArray<ISymbol>> interfaceMemberGetter, 449this INamedTypeSymbol attributeSymbol, 455var systemAttributeType = compilation.AttributeType(); 457foreach (var type in attributeSymbol.GetBaseTypesAndThis()) 517private static ImmutableArray<ISymbol> GetMembers(INamedTypeSymbol type, ISymbol within) 531this INamedTypeSymbol containingType, CancellationToken cancellationToken) 548foreach (var type in baseTypes) 569Dictionary<ISymbol, int> result, INamedTypeSymbol containingType, CancellationToken cancellationToken) 590Dictionary<ISymbol, int> result, INamedTypeSymbol containingType, CancellationToken cancellationToken) 612Dictionary<ISymbol, int> result, INamedTypeSymbol containingType, 613INamedTypeSymbol type, ref int index, CancellationToken cancellationToken) 626private static bool IsOverridable(ISymbol member, INamedTypeSymbol containingType) 669public static INamedTypeSymbol TryConstruct(this INamedTypeSymbol type, ITypeSymbol[] typeArguments) 672public static bool IsCollectionBuilderAttribute([NotNullWhen(true)] this INamedTypeSymbol? type)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\INamespaceOrTypeSymbolExtensions.cs (3)
90public static IEnumerable<INamedTypeSymbol> GetAllTypes( 106var namedType = (INamedTypeSymbol)current;
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\ISymbolExtensions.cs (15)
98foreach (var baseType in symbol.ContainingType.GetBaseTypes()) 107bool TryFindLooseMatch(ISymbol symbol, INamedTypeSymbol baseType, [NotNullWhen(true)] out ISymbol? looseMatch) 156foreach (var iface in symbol.ContainingType.AllInterfaces) 214public static INamedTypeSymbol? GetContainingTypeOrThis(this ISymbol symbol) 216if (symbol is INamedTypeSymbol namedType) 309=> symbol is INamedTypeSymbol { IsAnonymousType: true }; 352SymbolKind.NamedType => ((INamedTypeSymbol)symbol).Arity, 433INamedTypeSymbol nt => nt.TypeParameters, 454INamedTypeSymbol nt => nt.TypeArguments, 463var containingType = symbol.ContainingType; 504var delegateType = compilation.GetTypeByMetadataName(method.ReturnsVoid 533=> symbol is INamedTypeSymbol { IsStatic: true }; 545foreach (var type in namespaceOrType.GetAllTypes(cancellationToken)) 559return ((INamedTypeSymbol)symbol).GetMembers().OfType<IPropertySymbol>().Where(p => p.CanBeReferencedByName); 809public static bool HasAttribute([NotNullWhen(true)] this ISymbol? symbol, [NotNullWhen(true)] INamedTypeSymbol? attributeClass)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\ISymbolExtensions.RequiresUnsafeModifierVisitor.cs (1)
56public override bool VisitNamedType(INamedTypeSymbol symbol)
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\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\ITypeGenerator.cs (1)
13ITypeSymbol Construct(INamedTypeSymbol namedType, ITypeSymbol[] typeArguments);
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\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\ITypeSymbolExtensions.AnonymousTypeRemover.cs (1)
42public override ITypeSymbol VisitNamedType(INamedTypeSymbol symbol)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\ITypeSymbolExtensions.CollectTypeParameterSymbolsVisitor.cs (1)
57public override void VisitNamedType(INamedTypeSymbol symbol)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\ITypeSymbolExtensions.CompilationTypeGenerator.cs (1)
19public ITypeSymbol Construct(INamedTypeSymbol namedType, ITypeSymbol[] typeArguments)
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) 315INamedTypeSymbol n => ContainsAnonymousType(n), 320private static bool ContainsAnonymousType(INamedTypeSymbol type) 410public static INamedTypeSymbol? GetDelegateType(this ITypeSymbol? typeSymbol, Compilation compilation) 414var expressionOfT = compilation.ExpressionOfTType(); 417var typeArgument = ((INamedTypeSymbol)typeSymbol).TypeArguments[0]; 418return typeArgument as INamedTypeSymbol; 423return typeSymbol as INamedTypeSymbol; 576var n2 = t2 as INamedTypeSymbol; 578if (t1 is not INamedTypeSymbol n1) 628public static bool IsEnumType([NotNullWhen(true)] this ITypeSymbol? type, [NotNullWhen(true)] out INamedTypeSymbol? enumType) 632enumType = (INamedTypeSymbol)type; 724if (type is not INamedTypeSymbol 777=> type is INamedTypeSymbol 785=> symbol is INamedTypeSymbol 793=> type is INamedTypeSymbol namedType &&
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\ITypeSymbolExtensions.MinimalAccessibilityVisitor.cs (2)
42foreach (var callingConventionType in symbol.Signature.UnmanagedCallingConventionTypes) 50public override Accessibility VisitNamedType(INamedTypeSymbol symbol)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\ITypeSymbolExtensions.SubstituteTypesVisitor.cs (1)
58public override ITypeSymbol VisitNamedType(INamedTypeSymbol symbol)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\ITypeSymbolExtensions.UnavailableTypeParameterRemover.cs (1)
43public override ITypeSymbol VisitNamedType(INamedTypeSymbol symbol)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\ITypeSymbolExtensions.UnnamedErrorTypeRemover.cs (1)
42public override ITypeSymbol VisitNamedType(INamedTypeSymbol symbol)
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\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\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\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\SymbolEquivalenceComparer.ParameterSymbolEqualityComparer.cs (2)
23Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies,
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\SymbolEquivalenceComparer.SignatureTypeSymbolEquivalenceComparer.cs (2)
18public bool Equals(ITypeSymbol? x, ITypeSymbol? y, Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies)
Microsoft.CodeAnalysis.CodeStyle.Fixes (308)
src\Analyzers\Core\CodeFixes\AddExplicitCast\InheritanceDistanceComparer.cs (1)
70foreach (var interfaceType in derivedType.Interfaces)
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\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\Analyzers\Core\CodeFixes\ForEachCast\AbstractForEachCastCodeFixProvider.cs (1)
64var enumerableType = semanticModel.Compilation.GetBestTypeByMetadataName(typeof(Enumerable).FullName!);
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\Analyzers\Core\CodeFixes\GenerateConstructor\AbstractGenerateConstructorService.State.cs (6)
38public INamedTypeSymbol? TypeToGenerateIn { get; private set; } 298out var token, out var arguments, out var typeToGenerateIn)) 316out var token, out var arguments, out var typeToGenerateIn)) 335out var token, out var arguments, out var typeToGenerateIn)) 395INamedTypeSymbol original, CancellationToken cancellationToken) 398TypeToGenerateIn = definition as INamedTypeSymbol;
src\Analyzers\Core\CodeFixes\GenerateConstructor\GenerateConstructorHelpers.cs (2)
136INamedTypeSymbol typeToGenerateIn, 301private static IEnumerable<string> GetUnavailableMemberNames(INamedTypeSymbol typeToGenerateIn)
src\Analyzers\Core\CodeFixes\GenerateDefaultConstructors\AbstractGenerateDefaultConstructorsService.cs (1)
23[NotNullWhen(true)] out INamedTypeSymbol? classType);
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\Analyzers\Core\CodeFixes\GenerateDefaultConstructors\GenerateDefaultConstructorsCodeAction.cs (3)
52var classType = _state.ClassType; 67IParameterSymbol parameter, INamedTypeSymbol classType) 73private static Accessibility DetermineAccessibility(IMethodSymbol baseConstructor, INamedTypeSymbol classType)
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\Analyzers\Core\CodeFixes\GenerateMember\AbstractGenerateMemberService.cs (14)
33[NotNullWhen(true)] INamedTypeSymbol? typeToGenerateIn, 57INamedTypeSymbol containingType, 60[NotNullWhen(true)] out INamedTypeSymbol? typeToGenerateIn, 68underlyingType is INamedTypeSymbol underlyingNamedType) 79INamedTypeSymbol containingType, 82out INamedTypeSymbol? typeToGenerateIn, 124typeToGenerateIn = pointerType.PointedAtType as INamedTypeSymbol; 136typeToGenerateIn = attributeType.Type as INamedTypeSymbol; 141typeToGenerateIn = semanticModel.GetTypeInfo(initializedObject, cancellationToken).Type as INamedTypeSymbol; 151typeToGenerateIn = inferenceService.InferType(semanticModel, propertyPatternClause, objectAsDefault: true, cancellationToken) as INamedTypeSymbol; 160typeToGenerateIn = semanticModel.GetTypeInfo(target, cancellationToken).Type as INamedTypeSymbol; 174out INamedTypeSymbol? typeToGenerateIn, 184: typeInfo.Type as INamedTypeSymbol; 186isStatic = semanticInfo.Symbol is INamedTypeSymbol;
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\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\Analyzers\Core\CodeFixes\GenerateParameterizedMember\AbstractGenerateDeconstructMethodService.cs (1)
26INamedTypeSymbol typeToGenerateIn,
src\Analyzers\Core\CodeFixes\GenerateParameterizedMember\AbstractGenerateDeconstructMethodService.State.cs (2)
29INamedTypeSymbol typeToGenerateIn, 45INamedTypeSymbol typeToGenerateIn,
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\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\Analyzers\Core\CodeFixes\GenerateParameterizedMember\AbstractGenerateParameterizedMemberService.cs (1)
27protected virtual bool ContainingTypesOrSelfHasUnsafeKeyword(INamedTypeSymbol containingType)
src\Analyzers\Core\CodeFixes\GenerateParameterizedMember\AbstractGenerateParameterizedMemberService.SignatureInfo.cs (3)
224var containingType = State.ContainingType; 271private bool DerivesFrom(INamedTypeSymbol containingType) 274.OfType<INamedTypeSymbol>()
src\Analyzers\Core\CodeFixes\GenerateParameterizedMember\AbstractGenerateParameterizedMemberService.State.cs (3)
24public INamedTypeSymbol ContainingType { get; protected set; } 25public INamedTypeSymbol TypeToGenerateIn { get; protected set; } 61TypeToGenerateIn = await SymbolFinderInternal.FindSourceDefinitionAsync(TypeToGenerateIn, document.Project.Solution, cancellationToken).ConfigureAwait(false) as INamedTypeSymbol;
src\Analyzers\Core\CodeFixes\GenerateParameterizedMember\IGenerateDeconstructMemberService.cs (1)
16Document document, SyntaxNode targetVariables, INamedTypeSymbol typeToGenerateIn, CancellationToken cancellationToken);
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\Analyzers\Core\CodeFixes\GenerateVariable\AbstractGenerateVariableService.CodeAction.cs (1)
171private static bool DerivesFrom(State state, INamedTypeSymbol containingType)
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); 83protected virtual bool ContainingTypesOrSelfHasUnsafeKeyword(INamedTypeSymbol containingType) 209var cancellationTokenType = compilation.CancellationTokenType();
src\Analyzers\Core\CodeFixes\GenerateVariable\AbstractGenerateVariableService.State.cs (6)
29public INamedTypeSymbol ContainingType { get; private set; } 30public INamedTypeSymbol TypeToGenerateIn { get; private set; } 153TypeToGenerateIn, _document.Project.Solution, cancellationToken).ConfigureAwait(false) as INamedTypeSymbol; 191out var identifierToken, out var propertySymbol, out var typeToGenerateIn)) 213if (!ContainingType.Interfaces.OfType<INamedTypeSymbol>().Contains(TypeToGenerateIn)) 285out var typeToGenerateIn, out var isStatic, out _))
src\Analyzers\Core\CodeFixes\ImplementAbstractClass\AbstractImplementAbstractClassCodeFixProvider.cs (1)
43var abstractClassType = data.AbstractClassType;
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; 314constraints.OfType<INamedTypeSymbol>().FirstOrDefault() ??
src\Analyzers\Core\CodeFixes\ImplementInterface\AbstractImplementInterfaceService.cs (5)
40[NotNullWhen(true)] out INamedTypeSymbol? classOrStructType, 41out ImmutableArray<INamedTypeSymbol> interfaceTypes); 45protected abstract SyntaxNode CreateFinalizer(SyntaxGenerator generator, INamedTypeSymbol classType, string disposeMethodDisplayString); 256var interfaceType = state.InterfaceTypes.First(); 303var firstInterfaceType = state.InterfaceTypes.First();
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\Analyzers\Core\CodeFixes\ImplementInterface\ImplementHelpers.cs (6)
20INamedTypeSymbol namedType, 120ISymbol? first, INamedTypeSymbol second, bool supportsImplicitImplementationOfNonPublicInterfaceMembers) 174private static bool IsTypeLessAccessibleThanOtherType(ITypeSymbol? first, INamedTypeSymbol second, HashSet<ITypeSymbol> alreadyCheckingTypes) 202if (first is INamedTypeSymbol namedType) 236var idisposableType = disposeMethod.ContainingType; 251var idisposable = compilation.GetSpecialType(SpecialType.System_IDisposable);
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\Analyzers\Core\CodeFixes\ImplementInterface\ImplementInterfaceGenerator_DisposePattern.cs (5)
40ImmutableArray<(INamedTypeSymbol type, ImmutableArray<ISymbol> members)> unimplementedMembers, 200var gcType = compilation.GetTypeByMetadataName(typeof(GC).FullName!); 230INamedTypeSymbol containingType, 238var boolType = compilation.GetSpecialType(SpecialType.System_Boolean); 252private static string GenerateUniqueNameForDisposedValueField(INamedTypeSymbol containingType, NamingRule rule)
src\Analyzers\Core\CodeFixes\ImplementInterface\ImplementInterfaceGenerator_Property.cs (3)
81private static INamedTypeSymbol[] AttributesToRemove(Compilation compilation) 95INamedTypeSymbol[] attributesToRemove) 129INamedTypeSymbol[] attributesToRemove)
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\Analyzers\Core\CodeFixes\RemoveAsyncModifier\AbstractRemoveAsyncModifierCodeFixProvider.cs (1)
249private static SyntaxNode TypeExpressionForStaticMemberAccess(SyntaxGenerator generator, INamedTypeSymbol typeSymbol)
src\Analyzers\Core\CodeFixes\UnsealClass\AbstractUnsealClassCodeFixProvider.cs (1)
39if (semanticModel.GetSymbolInfo(node, cancellationToken).Symbol is INamedTypeSymbol type &&
src\Analyzers\Core\CodeFixes\UseCoalesceExpression\UseCoalesceExpressionForNullableTernaryConditionalCheckCodeFixProvider.cs (1)
41var expressionTypeOpt = semanticModel.Compilation.ExpressionOfTType();
src\Analyzers\Core\CodeFixes\UseCoalesceExpression\UseCoalesceExpressionForTernaryConditionalCheckCodeFixProvider.cs (2)
42var expressionTypeOpt = semanticModel.Compilation.ExpressionOfTType(); 57SyntaxEditor editor, SemanticModel semanticModel, INamedTypeSymbol? expressionTypeOpt,
src\Analyzers\Core\CodeFixes\UseSystemHashCode\UseSystemHashCodeCodeFixProvider.cs (1)
73var containingType = accessesBase ? method!.ContainingType : null;
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\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\AbstractFlagsEnumGenerator.cs (10)
15protected abstract SyntaxNode CreateExplicitlyCastedLiteralValue(INamedTypeSymbol enumType, SpecialType underlyingSpecialType, object constantValue); 16protected abstract bool IsValidName(INamedTypeSymbol enumType, string name); 20public SyntaxNode CreateEnumConstantValue(INamedTypeSymbol enumType, object constantValue) 36private static bool IsFlagsEnum(INamedTypeSymbol typeSymbol) 48var type = ctor.ContainingType; 61private SyntaxNode CreateFlagsEnumConstantValue(INamedTypeSymbol enumType, object constantValue) 72INamedTypeSymbol enumType, 138IFieldSymbol field, INamedTypeSymbol enumType, SpecialType underlyingSpecialType) 168INamedTypeSymbol enumType, 185private SyntaxNode CreateNonFlagsEnumConstantValue(INamedTypeSymbol enumType, object constantValue)
src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\CodeGenerationHelpers.cs (2)
25var exceptionType = compilation.GetTypeByMetadataName(exceptionMetadataName); 150public static IEnumerable<ISymbol> GetMembers(INamedTypeSymbol namedType)
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\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\CodeGenerator.cs (8)
29public static Task<Document> AddEventDeclarationAsync(CodeGenerationSolutionContext context, INamedTypeSymbol destination, IEventSymbol @event, CancellationToken cancellationToken) 36public static Task<Document> AddFieldDeclarationAsync(CodeGenerationSolutionContext context, INamedTypeSymbol destination, IFieldSymbol field, CancellationToken cancellationToken) 43public static Task<Document> AddMethodDeclarationAsync(CodeGenerationSolutionContext context, INamedTypeSymbol destination, IMethodSymbol method, CancellationToken cancellationToken) 50public static Task<Document> AddPropertyDeclarationAsync(CodeGenerationSolutionContext context, INamedTypeSymbol destination, IPropertySymbol property, CancellationToken cancellationToken) 57public static Task<Document> AddNamedTypeDeclarationAsync(CodeGenerationSolutionContext context, INamedTypeSymbol destination, INamedTypeSymbol namedType, CancellationToken cancellationToken) 64public static Task<Document> AddNamedTypeDeclarationAsync(CodeGenerationSolutionContext context, INamespaceSymbol destination, INamedTypeSymbol namedType, CancellationToken cancellationToken) 85public static Task<Document> AddMemberDeclarationsAsync(CodeGenerationSolutionContext context, INamedTypeSymbol destination, IEnumerable<ISymbol> members, CancellationToken cancellationToken)
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\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\INamedTypeSymbolExtensions.cs (2)
11public static CodeGenerationAbstractNamedTypeSymbol ToCodeGenerationSymbol(this INamedTypeSymbol namedType) 32namedType.GetMembers().WhereAsArray(s => s is not INamedTypeSymbol),
src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\Symbols\CodeGenerationAbstractMethodSymbol.cs (3)
23INamedTypeSymbol containingType, 98public INamedTypeSymbol AssociatedAnonymousDelegate => null; 108public ImmutableArray<INamedTypeSymbol> UnmanagedCallingConventionTypes => [];
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\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\Symbols\CodeGenerationAttributeData.cs (2)
13INamedTypeSymbol attributeClass, 20protected override INamedTypeSymbol CommonAttributeClass => attributeClass;
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\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\Symbols\CodeGenerationConstructorSymbol.cs (1)
11INamedTypeSymbol? containingType,
src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\Symbols\CodeGenerationConversionSymbol.cs (1)
11INamedTypeSymbol? containingType,
src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\Symbols\CodeGenerationDestructorSymbol.cs (1)
10INamedTypeSymbol? containingType,
src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\Symbols\CodeGenerationEventSymbol.cs (1)
12INamedTypeSymbol? containingType,
src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\Symbols\CodeGenerationFieldSymbol.cs (1)
13INamedTypeSymbol containingType,
src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\Symbols\CodeGenerationMethodSymbol.cs (1)
23INamedTypeSymbol containingType,
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\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\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\Symbols\CodeGenerationNamespaceSymbol.cs (1)
57public static INamedTypeSymbol ImplicitType => null;
src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\Symbols\CodeGenerationOperatorSymbol.cs (1)
11INamedTypeSymbol? containingType,
src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\Symbols\CodeGenerationParameterSymbol.cs (1)
13INamedTypeSymbol containingType,
src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\Symbols\CodeGenerationPropertySymbol.cs (1)
13INamedTypeSymbol containingType,
src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\Symbols\CodeGenerationSymbol.cs (3)
27public INamedTypeSymbol ContainingType { get; protected set; } 31INamedTypeSymbol containingType, 162public ImmutableArray<AttributeData> GetAttributes(INamedTypeSymbol attributeType)
src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\Symbols\CodeGenerationTypeParameterSymbol.cs (3)
12INamedTypeSymbol containingType, 80public INamedTypeSymbol DeclaringType 84return this.ContainingSymbol as INamedTypeSymbol;
src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\Symbols\CodeGenerationTypeSymbol.cs (4)
14INamedTypeSymbol containingType, 27public virtual INamedTypeSymbol BaseType => null; 29public virtual ImmutableArray<INamedTypeSymbol> Interfaces 32public ImmutableArray<INamedTypeSymbol> AllInterfaces
src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\TypeGenerator.cs (1)
21public ITypeSymbol Construct(INamedTypeSymbol namedType, ITypeSymbol[] typeArguments)
src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\Editing\ImportAdderService.cs (2)
202foreach (var namedType in SymbolAnnotation.GetSymbols(annotation, model.Compilation).OfType<INamedTypeSymbol>())
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\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\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\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\Extensions\KnownTypes.cs (8)
9public readonly INamedTypeSymbol? TaskType = compilation.TaskType(); 10public readonly INamedTypeSymbol? TaskOfTType = compilation.TaskOfTType(); 11public readonly INamedTypeSymbol? ValueTaskType = compilation.ValueTaskType(); 12public readonly INamedTypeSymbol? ValueTaskOfTType = compilation.ValueTaskOfTType(); 14public readonly INamedTypeSymbol? IEnumerableOfTType = compilation.IEnumerableOfTType(); 15public readonly INamedTypeSymbol? IEnumeratorOfTType = compilation.IEnumeratorOfTType(); 17public readonly INamedTypeSymbol? IAsyncEnumerableOfTType = compilation.IAsyncEnumerableOfTType(); 18public readonly INamedTypeSymbol? IAsyncEnumeratorOfTType = compilation.IAsyncEnumeratorOfTType();
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\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\Extensions\SyntaxGeneratorExtensions_CreateEqualsMethod.cs (11)
32INamedTypeSymbol containingType, 63INamedTypeSymbol containingType, 65INamedTypeSymbol constructedEquatableType, 109INamedTypeSymbol containingType, 218var iequatableType = compilation.GetTypeByMetadataName(typeof(IEquatable<>).FullName); 271INamedTypeSymbol containingType, 382private static bool ImplementsIEquatable(ITypeSymbol memberType, INamedTypeSymbol iequatableType) 388var constructed = iequatableType.Construct(memberType); 433private static bool HasExistingBaseEqualsMethod(INamedTypeSymbol containingType) 456INamedTypeSymbol? containingType, 490INamedTypeSymbol? containingType,
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\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\Extensions\SyntaxGeneratorExtensions_Negate.cs (1)
446var containingType = property.ContainingType;
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\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\LanguageServices\SemanticsFactsService\AbstractSemanticFactsService.cs (7)
127var valueTaskType = compilation.ValueTaskType(); 163(INamedTypeSymbol?, IMethodSymbol?) GetIDisposableInterfaceAndDisposeMethod(string typeName, string methodName) 165var 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\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\LanguageServices\SyntaxGeneratorInternalExtensions\SyntaxGeneratorInternal.cs (1)
117public abstract SyntaxNode DeclarationPattern(INamedTypeSymbol type, string name);
src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\LanguageServices\TypeInferenceService\AbstractTypeInferenceService.AbstractTypeInferrer.cs (1)
102protected static IEnumerable<TypeInferenceInfo> GetCollectionElementType(INamedTypeSymbol type)
src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\Simplification\SimplificationHelpers.cs (1)
80var typeSymbol = semanticModel.Compilation.GetSpecialType(specialType);
Microsoft.CodeAnalysis.CSharp (124)
Binder\Binder_Conversions.cs (1)
659foreach (var memoryExtensionsType in compilation.GetTypesByMetadataName(WellKnownMemberNames.MemoryExtensionsTypeFullName))
Compilation\CSharpCompilation.cs (11)
323protected override INamedTypeSymbol CommonCreateErrorTypeSymbol(INamespaceOrTypeSymbol? container, string name, int arity) 4067protected override INamedTypeSymbol? CommonGetTypeByMetadataName(string metadataName) 4072protected override INamedTypeSymbol? CommonScriptClass 4093ImmutableArray<INamedTypeSymbol> callingConventionTypes) 4157static CustomModifier getCustomModifierForType(INamedTypeSymbol type, CSharpCompilation @this, int index) 4174protected override INamedTypeSymbol CommonCreateNativeIntegerTypeSymbol(bool signed) 4184protected override INamedTypeSymbol CommonCreateTupleTypeSymbol( 4210protected override INamedTypeSymbol CommonCreateTupleTypeSymbol( 4211INamedTypeSymbol underlyingType, 4239protected override INamedTypeSymbol CommonCreateAnonymousTypeSymbol( 4579protected override INamedTypeSymbol CommonObjectType
Compilation\CSharpSemanticModel.cs (4)
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));
Compilation\MemberSemanticModel.cs (4)
604public override INamedTypeSymbol GetDeclaredSymbol(BaseTypeDeclarationSyntax declarationSyntax, CancellationToken cancellationToken = default(CancellationToken)) 610public override INamedTypeSymbol GetDeclaredSymbol(DelegateDeclarationSyntax declarationSyntax, CancellationToken cancellationToken = default(CancellationToken)) 1100public override INamedTypeSymbol GetDeclaredSymbol(AnonymousObjectCreationExpressionSyntax declaratorSyntax, CancellationToken cancellationToken = default(CancellationToken)) 1107public 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)) 430public override INamedTypeSymbol GetDeclaredSymbol(AnonymousObjectCreationExpressionSyntax declaratorSyntax, CancellationToken cancellationToken = default(CancellationToken)) 435public 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); 1360public override INamedTypeSymbol GetDeclaredSymbol(BaseTypeDeclarationSyntax declarationSyntax, CancellationToken cancellationToken = default(CancellationToken)) 1373public override INamedTypeSymbol GetDeclaredSymbol(DelegateDeclarationSyntax declarationSyntax, CancellationToken cancellationToken = default(CancellationToken)) 2041INamedTypeSymbol extension = GetDeclaredSymbol(extensionDecl, cancellationToken); 2143var delegateType = (GetDeclaredSymbol(memberDecl, cancellationToken) as INamedTypeSymbol).GetSymbol();
CSharpExtensions.cs (4)
1382public static INamedTypeSymbol? GetDeclaredSymbol(this SemanticModel? semanticModel, BaseTypeDeclarationSyntax declarationSyntax, CancellationToken cancellationToken = default(CancellationToken)) 1391public static INamedTypeSymbol? GetDeclaredSymbol(this SemanticModel? semanticModel, DelegateDeclarationSyntax declarationSyntax, CancellationToken cancellationToken = default(CancellationToken)) 1463public static INamedTypeSymbol? GetDeclaredSymbol(this SemanticModel? semanticModel, AnonymousObjectCreationExpressionSyntax declaratorSyntax, CancellationToken cancellationToken = default(CancellationToken)) 1472public static INamedTypeSymbol? GetDeclaredSymbol(this SemanticModel? semanticModel, TupleExpressionSyntax declaratorSyntax, CancellationToken cancellationToken = default(CancellationToken))
SymbolDisplay\SymbolDisplayVisitor.cs (2)
368INamedTypeSymbol containingType = symbol.ContainingType; 442private bool IncludeNamedType([NotNullWhen(true)] INamedTypeSymbol? namedType)
SymbolDisplay\SymbolDisplayVisitor.Members.cs (3)
617foreach (var conventionType in conventionTypes) 929INamedTypeSymbol containingType = symbol.ContainingType; 1059INamedTypeSymbol containingType = implementedMember.ContainingType;
SymbolDisplay\SymbolDisplayVisitor.Types.cs (21)
176public override void VisitNamedType(INamedTypeSymbol symbol) 200private void VisitNamedTypeWithoutNullability(INamedTypeSymbol symbol) 318private bool ShouldDisplayAsValueTuple(INamedTypeSymbol symbol) 330private 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;
SymbolDisplay\SymbolDisplayVisitor_Constants.cs (1)
34protected override void AddExplicitlyCastedLiteralValue(INamedTypeSymbol namedType, SpecialType type, object value)
SymbolDisplay\SymbolDisplayVisitor_Minimal.cs (2)
117private void MinimallyQualify(INamedTypeSymbol symbol) 285private string RemoveAttributeSuffixIfNecessary(INamedTypeSymbol symbol, string symbolName)
Symbols\Attributes\AttributeData.cs (2)
187/// Gets the attribute class being applied as an <see cref="INamedTypeSymbol"/> 189protected override INamedTypeSymbol? CommonAttributeClass
Symbols\CustomModifier.cs (1)
28public override INamedTypeSymbol Modifier
Symbols\PublicModel\AssemblySymbol.cs (3)
52INamedTypeSymbol IAssemblySymbol.ResolveForwardedType(string fullyQualifiedMetadataName) 57ImmutableArray<INamedTypeSymbol> IAssemblySymbol.GetForwardedTypes() 105INamedTypeSymbol? IAssemblySymbol.GetTypeByMetadataName(string metadataName)
Symbols\PublicModel\MethodSymbol.cs (2)
273ImmutableArray<INamedTypeSymbol> IMethodSymbol.UnmanagedCallingConventionTypes => _underlying.UnmanagedCallingConventionTypes.SelectAsArray(t => t.GetPublicSymbol()); 303INamedTypeSymbol IMethodSymbol.AssociatedAnonymousDelegate
Symbols\PublicModel\NamedTypeSymbol.cs (36)
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.MightContainExtensionMethods; 195bool INamedTypeSymbol.IsSerializable => UnderlyingNamedTypeSymbol.IsSerializable; 197bool INamedTypeSymbol.IsFileLocal => 203INamedTypeSymbol INamedTypeSymbol.NativeIntegerUnderlyingType => UnderlyingNamedTypeSymbol.NativeIntegerUnderlyingType.GetPublicSymbol();
Symbols\PublicModel\NamespaceOrTypeSymbol.cs (3)
23ImmutableArray<INamedTypeSymbol> INamespaceOrTypeSymbol.GetTypeMembers() 28ImmutableArray<INamedTypeSymbol> INamespaceOrTypeSymbol.GetTypeMembers(string name) 33ImmutableArray<INamedTypeSymbol> INamespaceOrTypeSymbol.GetTypeMembers(string name, int arity)
Symbols\PublicModel\PreprocessingSymbol.cs (1)
25INamedTypeSymbol? ISymbol.ContainingType => null;
Symbols\PublicModel\Symbol.cs (1)
71INamedTypeSymbol ISymbol.ContainingType
Symbols\PublicModel\TypeParameterSymbol.cs (1)
57INamedTypeSymbol ITypeParameterSymbol.DeclaringType
Symbols\PublicModel\TypeSymbol.cs (3)
91INamedTypeSymbol ITypeSymbol.BaseType 99ImmutableArray<INamedTypeSymbol> ITypeSymbol.Interfaces 107ImmutableArray<INamedTypeSymbol> ITypeSymbol.AllInterfaces
Symbols\SymbolExtensions.cs (6)
413internal static NamedTypeSymbol? EnsureCSharpSymbolOrNull(this INamedTypeSymbol? symbol, string paramName) 568internal static INamedTypeSymbol? GetPublicSymbol(this NamedTypeSymbol? symbol) 570return symbol.GetPublicSymbol<INamedTypeSymbol>(); 706internal static ImmutableArray<INamedTypeSymbol> GetPublicSymbols(this ImmutableArray<NamedTypeSymbol> symbols) 708return GetPublicSymbols<INamedTypeSymbol>(StaticCast<Symbol>.From(symbols)); 771internal static NamedTypeSymbol? GetSymbol(this INamedTypeSymbol? symbol)
Symbols\TypedConstantExtensions.cs (1)
52SpecialType 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 (155)
src\Analyzers\CSharp\Analyzers\ConvertProgram\ConvertProgramAnalysis_TopLevelStatements.cs (1)
91private static bool TypeCanBeConverted(INamedTypeSymbol containingType, TypeDeclarationSyntax typeDeclaration)
src\Analyzers\CSharp\Analyzers\InlineDeclaration\CSharpInlineDeclarationDiagnosticAnalyzer.cs (2)
50var expressionType = compilation.GetTypeByMetadataName(typeof(Expression<>).FullName!); 63private void AnalyzeSyntaxNode(SyntaxNodeAnalysisContext context, INamedTypeSymbol? expressionType)
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\Analyzers\CSharp\Analyzers\MakeStructMemberReadOnly\CSharpMakeStructMemberReadOnlyAnalyzer.cs (1)
56if (context.Symbol is not INamedTypeSymbol
src\Analyzers\CSharp\Analyzers\MakeStructReadOnly\CSharpMakeStructReadOnlyDiagnosticAnalyzer.cs (2)
76var typeSymbol = (INamedTypeSymbol)context.Symbol;
src\Analyzers\CSharp\Analyzers\RemoveUnnecessaryDiscardDesignation\CSharpRemoveUnnecessaryDiscardDesignationDiagnosticAnalyzer.cs (1)
69var typeSymbol = semanticModel.GetRequiredDeclaredSymbol(containingTypeSyntax, cancellationToken);
src\Analyzers\CSharp\Analyzers\RemoveUnnecessaryLambdaExpression\CSharpRemoveUnnecessaryLambdaExpressionDiagnosticAnalyzer.cs (4)
46var expressionType = context.Compilation.ExpressionOfTType(); 47var conditionalAttributeType = context.Compilation.ConditionalAttribute(); 56private void AnalyzeSyntax(SyntaxNodeAnalysisContext context, INamedTypeSymbol? expressionType, INamedTypeSymbol? conditionalAttributeType)
src\Analyzers\CSharp\Analyzers\RemoveUnnecessaryNullableDirective\NullableImpactingSpanWalker.cs (1)
152else if (symbolInfo.Symbol is INamedTypeSymbol { IsValueType: true, IsGenericType: false })
src\Analyzers\CSharp\Analyzers\RemoveUnusedMembers\CSharpRemoveUnusedMembersDiagnosticAnalyzer.cs (1)
26protected override IEnumerable<TypeDeclarationSyntax> GetTypeDeclarations(INamedTypeSymbol namedType, CancellationToken cancellationToken)
src\Analyzers\CSharp\Analyzers\SimplifyLinqExpression\CSharpSimplifyLinqTypeCheckAndCastDiagnosticAnalyzer.cs (2)
31var enumerableType = context.Compilation.GetTypeByMetadataName(typeof(Enumerable).FullName!); 178SyntaxNodeAnalysisContext context, INamedTypeSymbol enumerableType)
src\Analyzers\CSharp\Analyzers\UseCollectionExpression\AbstractCSharpUseCollectionExpressionDiagnosticAnalyzer.cs (2)
43protected abstract void InitializeWorker(CodeBlockStartAnalysisContext<SyntaxKind> context, INamedTypeSymbol? expressionType); 66var expressionType = compilation.ExpressionOfTType();
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\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\Analyzers\CSharp\Analyzers\UseCollectionExpression\CSharpUseCollectionExpressionForCreateDiagnosticAnalyzer.cs (2)
22protected override void InitializeWorker(CodeBlockStartAnalysisContext<SyntaxKind> context, INamedTypeSymbol? expressionType) 25private void AnalyzeInvocationExpression(SyntaxNodeAnalysisContext context, INamedTypeSymbol? expressionType)
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\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\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\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\Analyzers\CSharp\Analyzers\UseCollectionExpression\UseCollectionExpressionHelpers.cs (13)
64INamedTypeSymbol? expressionType, 83INamedTypeSymbol? expressionType, 273var isetType = compilation.ISetOfTType(); 274var ireadOnlySetType = compilation.IReadOnlySetOfTType(); 327if (type is INamedTypeSymbol namedType) 738INamedTypeSymbol? expressionType, 884if (semanticModel.GetSymbolInfo(memberAccessExpression.Expression, cancellationToken).Symbol is not INamedTypeSymbol factoryType) 934Type: INamedTypeSymbol 981Type: INamedTypeSymbol 1061public static bool EqualsOrImplements(ITypeSymbol type, INamedTypeSymbol? interfaceType) 1068foreach (var baseInterface in type.AllInterfaces) 1110if (expressionSymbol is not INamedTypeSymbol) 1142if (expressionSymbol is not INamedTypeSymbol)
src\Analyzers\CSharp\Analyzers\UseCollectionInitializer\CSharpUseCollectionInitializerAnalyzer.cs (5)
203bool CanSpreadFirstParameter(INamedTypeSymbol constructedType, IParameterSymbol firstParameter) 207var ienumerableOfTType = compilation.IEnumerableOfTType(); 208var implementedInterface = firstParameter.Type 231var collectionType = compilation.CollectionOfTType(); 232var blockingCollectionType = compilation.BlockingCollectionOfTType();
src\Analyzers\CSharp\Analyzers\UseCollectionInitializer\CSharpUseCollectionInitializerDiagnosticAnalyzer.cs (1)
52INamedTypeSymbol? expressionType,
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, 168if (type is not INamedTypeSymbol { IsTupleType: true, TupleElements.Length: >= 2 } tupleTypeOpt) 202SemanticModel semanticModel, INamedTypeSymbol tupleType,
src\Analyzers\CSharp\Analyzers\UseExpressionBody\Helpers\UseExpressionBodyForLocalFunctionHelper.cs (1)
61methodSymbol.ReturnType is INamedTypeSymbol namedType &&
src\Analyzers\CSharp\Analyzers\UseExpressionBody\Helpers\UseExpressionBodyForMethodsHelper.cs (1)
60return method.ReturnType is INamedTypeSymbol namedType && namedType.Arity != 0;
src\Analyzers\CSharp\Analyzers\UseExpressionBodyForLambda\UseExpressionBodyForLambdaHelpers.cs (1)
43if (semanticModel.GetTypeInfo(declaration, cancellationToken).ConvertedType is not INamedTypeSymbol lambdaType || lambdaType.DelegateInvokeMethod == null)
src\Analyzers\CSharp\Analyzers\UseIndexOrRangeOperator\CSharpUseIndexOperatorDiagnosticAnalyzer.cs (1)
83var arrayType = compilation.GetSpecialType(SpecialType.System_Array);
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\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\Analyzers\CSharp\Analyzers\UseIsNullCheck\CSharpUseNullCheckOverTypeCheckDiagnosticAnalyzer.cs (2)
38var expressionType = compilation.ExpressionOfTType(); 84private void AnalyzeIsTypeOperation(OperationAnalysisContext context, INamedTypeSymbol? expressionType)
src\Analyzers\CSharp\Analyzers\UseLocalFunction\CSharpUseLocalFunctionDiagnosticAnalyzer.cs (7)
64var expressionType = compilation.GetTypeByMetadataName(typeof(Expression<>).FullName!); 77private void SyntaxNodeAction(SyntaxNodeAnalysisContext syntaxContext, INamedTypeSymbol? expressionType) 114var delegateType = semanticModel.GetTypeInfo(anonymousFunction, cancellationToken).ConvertedType as INamedTypeSymbol; 237SemanticModel semanticModel, INamedTypeSymbol? expressionTypeOpt, ISymbol local, BlockSyntax block, 389INamedTypeSymbol delegateType, 394var delegateContainingType = delegateType.ContainingType;
src\Analyzers\CSharp\Analyzers\UseNameofInNullableAttribute\CSharpUseNameofInNullableAttributeDiagnosticAnalyzer.cs (1)
75INamedTypeSymbol? containingType = null;
src\Analyzers\CSharp\Analyzers\UsePatternCombinators\CSharpUsePatternCombinatorsDiagnosticAnalyzer.cs (1)
68var expressionType = semanticModel.Compilation.ExpressionOfTType();
src\Analyzers\CSharp\Analyzers\UsePatternMatching\CSharpUseNotPatternDiagnosticAnalyzer.cs (2)
45var expressionOfTType = context.Compilation.ExpressionOfTType(); 52INamedTypeSymbol? expressionOfTType)
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\Analyzers\CSharp\Analyzers\UseSystemThreadingLock\CSharpUseSystemThreadingLockDiagnosticAnalyzer.cs (3)
62var lockType = compilation.GetBestTypeByMetadataName("System.Threading.Lock"); 77var namedType = (INamedTypeSymbol)context.Symbol;
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\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\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\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Extensions\ITypeSymbolExtensions.cs (1)
40public static bool TryGetPrimaryConstructor(this INamedTypeSymbol typeSymbol, [NotNullWhen(true)] out IMethodSymbol? primaryConstructor)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Extensions\SemanticModelExtensions.cs (3)
211var containingType = semanticModel.GetDeclaredSymbol(type.GetAncestor<BaseTypeDeclarationSyntax>(), cancellationToken); 332var symbol = semanticModel.GetDeclaredSymbol(typeDeclaration, cancellationToken); 460public static INamedTypeSymbol GetRequiredDeclaredSymbol(this SemanticModel semanticModel, BaseTypeDeclarationSyntax syntax, CancellationToken cancellationToken)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Extensions\SyntaxNodeExtensions.cs (2)
789[NotNullWhen(true)] INamedTypeSymbol? expressionType, 822static bool TakesExpressionTree(SymbolInfo info, INamedTypeSymbol expressionType)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Services\SemanticFacts\CSharpSemanticFacts.cs (5)
94public bool LastEnumValueHasInitializer(INamedTypeSymbol namedTypeSymbol) 231public bool IsPartial(INamedTypeSymbol typeSymbol, CancellationToken cancellationToken) 286var type = model.Compilation.TryGetCallingConventionSymbol(syntax.Name.ValueText); 393public bool IsInExpressionTree(SemanticModel semanticModel, SyntaxNode node, [NotNullWhen(true)] INamedTypeSymbol? expressionType, CancellationToken cancellationToken) 422public bool TryGetPrimaryConstructor(INamedTypeSymbol typeSymbol, [NotNullWhen(true)] out IMethodSymbol? primaryConstructor)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Simplification\Simplifiers\CastSimplifier.cs (9)
127var enumType = semanticModel.GetTypeInfo(castExpression.Expression, cancellationToken).Type as INamedTypeSymbol; 162var enumType = semanticModel.GetTypeInfo(castExpression.Expression, cancellationToken).Type as INamedTypeSymbol; 627if (castedType is not INamedTypeSymbol namedCastedType || 628originalConvertedType is not INamedTypeSymbol originalNamedConvertedType) 988if (conversionOperation.Operand.Type is not INamedTypeSymbol original) 997for (var type = original; type != null; type = type.BaseType) 1363var rewrittenContainingType = rewrittenMemberSymbol.ContainingType;
Microsoft.CodeAnalysis.CSharp.CodeStyle.Fixes (162)
src\Analyzers\CSharp\CodeFixes\AddParameter\CSharpAddParameterCodeFixProvider.cs (1)
65var type = constructorSymbol.ContainingType;
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\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\Analyzers\CSharp\CodeFixes\ConvertToRecord\PositionalParameterInfo.cs (4)
37INamedTypeSymbol type, 75INamedTypeSymbol currentType, 78var baseType = currentType.BaseType; 119INamedTypeSymbol containingType)
src\Analyzers\CSharp\CodeFixes\DisambiguateSameVariable\CSharpDisambiguateSameVariableCodeFixProvider.cs (1)
96var enclosingType = semanticModel.GetEnclosingNamedType(span.Start, cancellationToken);
src\Analyzers\CSharp\CodeFixes\FixReturnType\CSharpFixReturnTypeCodeFixProvider.cs (2)
97INamedTypeSymbol? taskType = null; 159var baseTupleType = compilation.ValueTupleType(argCount);
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\Analyzers\CSharp\CodeFixes\GenerateDefaultConstructors\CSharpGenerateDefaultConstructorsService.cs (2)
27[NotNullWhen(true)] out INamedTypeSymbol? classType) 38classType = semanticDocument.SemanticModel.GetDeclaredSymbol(typeDeclaration, cancellationToken) as INamedTypeSymbol;
src\Analyzers\CSharp\CodeFixes\GenerateMethod\GenerateDeconstructMethodCodeFixProvider.cs (1)
99var codeActions = await service.GenerateDeconstructMethodAsync(document, target, (INamedTypeSymbol)type, cancellationToken).ConfigureAwait(false);
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\Analyzers\CSharp\CodeFixes\GenerateParameterizedMember\CSharpGenerateDeconstructMethodService.cs (2)
26protected override bool ContainingTypesOrSelfHasUnsafeKeyword(INamedTypeSymbol containingType) 59if (targetType is not INamedTypeSymbol { IsTupleType: true, TupleElements: var tupleElements })
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\Analyzers\CSharp\CodeFixes\ImplementInterface\CSharpImplementInterfaceService.cs (4)
56[NotNullWhen(true)] out INamedTypeSymbol? classOrStructType, 57out ImmutableArray<INamedTypeSymbol> interfaceTypes) 76if (interfaceSymbolInfo.GetAnySymbol() is INamedTypeSymbol interfaceType && interfaceType.TypeKind == TypeKind.Interface) 107SyntaxGenerator g, INamedTypeSymbol classType, string disposeMethodDisplayString)
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\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\Analyzers\CSharp\CodeFixes\MakeRefStruct\MakeRefStructCodeFixProvider.cs (2)
49var structDeclarationSymbol = (INamedTypeSymbol)semanticModel.GetRequiredDeclaredSymbol(structDeclaration, cancellationToken);
src\Analyzers\CSharp\CodeFixes\ReplaceDefaultLiteral\CSharpReplaceDefaultLiteralCodeFixProvider.cs (1)
123var flagsAttribute = compilation.GetTypeByMetadataName(typeof(FlagsAttribute).FullName!);
src\Analyzers\CSharp\CodeFixes\UseCollectionExpression\CSharpUseCollectionExpressionForArrayCodeFixProvider.cs (2)
65var expressionType = semanticModel.Compilation.ExpressionOfTType(); 100SemanticModel semanticModel, ExpressionSyntax expression, INamedTypeSymbol? expressionType)
src\Analyzers\CSharp\CodeFixes\UseCollectionExpression\CSharpUseCollectionExpressionForBuilderCodeFixProvider.cs (1)
45var expressionType = semanticModel.Compilation.ExpressionOfTType();
src\Analyzers\CSharp\CodeFixes\UseCollectionExpression\CSharpUseCollectionExpressionForFluentCodeFixProvider.cs (1)
57var expressionType = semanticModel.Compilation.ExpressionOfTType();
src\Analyzers\CSharp\CodeFixes\UseCollectionExpression\CSharpUseCollectionExpressionForStackAllocCodeFixProvider.cs (1)
41var expressionType = semanticModel.Compilation.ExpressionOfTType();
src\Analyzers\CSharp\CodeFixes\UseDeconstruction\CSharpUseDeconstructionCodeFixProvider.cs (6)
75out var tupleType, out memberAccessExpressions, 91out var tupleType, out memberAccessExpressions, 114private ForEachVariableStatementSyntax CreateForEachVariableStatement(INamedTypeSymbol tupleType, ForEachStatementSyntax forEachStatement) 132INamedTypeSymbol tupleType, LocalDeclarationStatementSyntax declarationStatement, VariableDeclaratorSyntax variableDeclarator) 146private ExpressionSyntax CreateTupleOrDeclarationExpression(INamedTypeSymbol tupleType, TypeSyntax typeNode) 157private static DeclarationExpressionSyntax CreateDeclarationExpression(INamedTypeSymbol tupleType, TypeSyntax typeNode)
src\Analyzers\CSharp\CodeFixes\UseExplicitArrayInExpressionTree\CSharpUseExplicitArrayInExpressionTreeCodeFixProvider.cs (1)
119var arrayType = semanticModel.Compilation.ArrayType();
src\Analyzers\CSharp\CodeFixes\UseExpressionBodyForLambda\UseExpressionBodyForLambdaCodeActionHelpers.cs (3)
82var lambdaType = (INamedTypeSymbol)semanticModel.GetTypeInfo(declaration).ConvertedType!; 102var taskType = semanticModel.Compilation.GetTypeByMetadataName(typeof(Task).FullName!);
src\Analyzers\CSharp\CodeFixes\UseImplicitOrExplicitType\UseExplicitTypeCodeFixProvider.cs (1)
177var elements = ((INamedTypeSymbol)typeSymbol).TupleElements;
src\Analyzers\CSharp\CodeFixes\UseLocalFunction\CSharpUseLocalFunctionCodeFixProvider.cs (3)
102var delegateType = (INamedTypeSymbol)semanticModel.GetTypeInfo(anonymousFunction, cancellationToken).ConvertedType; 178INamedTypeSymbol delegateType, ParameterListSyntax parameterList,
src\Analyzers\CSharp\CodeFixes\UsePrimaryConstructor\CSharpUsePrimaryConstructorCodeFixProvider.cs (5)
123var namedType = semanticModel.GetRequiredDeclaredSymbol(typeDeclaration, cancellationToken); 320INamedTypeSymbol { ContainingType: { } containingType } => CreateDottedName(originalName, currentName, containingType), 331INamedTypeSymbol containingType) 392semanticModel.GetSymbolInfo(baseType.Type, cancellationToken).GetAnySymbol() is INamedTypeSymbol { TypeKind: TypeKind.Class }) 410var baseTypeSymbol = namedType.BaseType;
src\Analyzers\CSharp\CodeFixes\UseSystemThreadingLock\CSharpUseSystemThreadingLockCodeFixProvider.cs (1)
86var lockType = compilation.GetBestTypeByMetadataName("System.Threading.Lock");
src\Analyzers\CSharp\CodeFixes\UseUtf8StringLiteral\UseUtf8StringLiteralCodeFixProvider.cs (2)
48var readOnlySpanType = semanticModel.Compilation.GetBestTypeByMetadataName(typeof(ReadOnlySpan<>).FullName!); 65conversion.Type is INamedTypeSymbol { IsGenericType: true } namedType &&
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\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\CodeGeneration\CSharpFlagsEnumGenerator.cs (2)
22INamedTypeSymbol enumType, 39protected override bool IsValidName(INamedTypeSymbol enumType, string name)
src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\CodeGeneration\EnumMemberGenerator.cs (3)
159var namedType = enumMember.Type as INamedTypeSymbol; 160var underlyingType = namedType?.EnumUnderlyingType;
src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\CodeGeneration\ExpressionGenerator.cs (1)
60if (type is INamedTypeSymbol { TypeKind: TypeKind.Enum } enumType)
src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\CodeGeneration\MethodGenerator.cs (1)
370if (method.IsReadOnly && (method.ContainingSymbol as INamedTypeSymbol)?.IsReadOnly != true)
src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\CodeGeneration\NamedTypeGenerator.cs (14)
27INamedTypeSymbol namedType, 41INamedTypeSymbol namedType, 56INamedTypeSymbol namedType, 72INamedTypeSymbol namedType, 155INamedTypeSymbol namedType, 185INamedTypeSymbol namedType, 229INamedTypeSymbol namedType, 247INamedTypeSymbol namedType, 264INamedTypeSymbol namedType, CSharpCodeGenerationContextInfo info) 270INamedTypeSymbol namedType, 314INamedTypeSymbol namedType, CSharpCodeGenerationContextInfo info) 319private static BaseListSyntax? GenerateBaseList(INamedTypeSymbol namedType) 325foreach (var type in namedType.Interfaces) 334private static SyntaxList<TypeParameterConstraintClauseSyntax> GenerateConstraintClauses(INamedTypeSymbol namedType)
src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\Editing\CSharpImportAdder.cs (1)
112foreach (var type in ns.GetTypeMembers())
src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\Extensions\ContextQuery\SyntaxTreeExtensions.cs (4)
1035INamedTypeSymbol nt => nt.Arity > 0, 1044return symbols.All(static s => s is INamedTypeSymbol or IMethodSymbol); 2886var delegateType = CSharpTypeInferenceService.Instance.InferDelegateType( 3060return ((INamedTypeSymbol)symbol).TypeKind == TypeKind.Enum;
src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\Extensions\ITypeSymbolExtensions.ExpressionSyntaxGeneratorVisitor.cs (1)
41public override ExpressionSyntax VisitNamedType(INamedTypeSymbol symbol)
src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\Extensions\ITypeSymbolExtensions.TypeSyntaxGeneratorVisitor.cs (5)
118public static bool TryCreateNativeIntegerType(INamedTypeSymbol symbol, [NotNullWhen(true)] out TypeSyntax? syntax) 174public TypeSyntax CreateSimpleTypeSyntax(INamedTypeSymbol symbol) 224private static TypeSyntax? TryCreateSpecializedNamedTypeSyntax(INamedTypeSymbol symbol) 250private static TupleTypeSyntax CreateTupleTypeSyntax(INamedTypeSymbol symbol) 263public override TypeSyntax VisitNamedType(INamedTypeSymbol symbol)
src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\Extensions\TypeDeclarationSyntaxExtensions.cs (1)
76var typeSymbol = model.GetRequiredDeclaredSymbol(typeNode, cancellationToken);
src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\LanguageServices\CSharpSyntaxGeneratorInternal.cs (1)
210public override SyntaxNode DeclarationPattern(INamedTypeSymbol type, string name)
src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\LanguageServices\CSharpTypeInferenceService.TypeInferrer.cs (25)
330if (types.Any(t => t is INamedTypeSymbol)) 332return types.OfType<INamedTypeSymbol>().SelectMany(t => 363.OfType<INamedTypeSymbol>() 440if (info.Type is not INamedTypeSymbol type) 461if (info.Type is not INamedTypeSymbol type) 567if (info.Type is INamedTypeSymbol type) 704var inferredNamedType = (INamedTypeSymbol)inferredType; 705var returnNamedType = (INamedTypeSymbol)returnType; 1256var enumerableType = forEachStatementSyntax.AwaitKeyword == default 1408if (types.Any(t => t is INamedTypeSymbol)) 1410return types.OfType<INamedTypeSymbol>().SelectMany(t => 1431if (types.Any(t => t is INamedTypeSymbol)) 1438return types.OfType<INamedTypeSymbol>().SelectMany(t => 1583var type = Compilation.CreateTupleTypeSymbol( 1618var type = types.FirstOrDefault().InferredType.GetDelegateType(this.Compilation); 1739var taskOfT = this.Compilation.TaskOfTType(); 1748var ienumerableType = this.Compilation.IEnumerableOfTType(); 1762var delegateType = argumentTypes.FirstOrDefault().InferredType.GetDelegateType(this.Compilation); 1967var task = this.Compilation.TaskType(); 1968var taskOfT = this.Compilation.TaskOfTType(); 1994return memberType is INamedTypeSymbol namedType && namedType.TypeArguments.Length == 1 2008var namedTypeSymbol = (INamedTypeSymbol)type;
src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\LanguageServices\InitializeParameter\InitializeParameterHelpers.cs (1)
102var namedType = parameter.ContainingType;
Microsoft.CodeAnalysis.CSharp.EditorFeatures (1)
EventHookup\EventHookupCommandHandler_TabKeyCommand.cs (1)
327var delegateType = typeInference.InferDelegateType(semanticModel, eventHookupExpression.Right, cancellationToken);
Microsoft.CodeAnalysis.CSharp.EditorFeatures.UnitTests (35)
SymbolKey\SymbolKeyCompilationsTests.cs (13)
131var type = ns.GetTypeMembers("C1").FirstOrDefault(); 158var type = ns.GetTypeMembers("C1").FirstOrDefault(); 186var type = ns.GetTypeMembers("C1").FirstOrDefault(); 213var type = ns.GetTypeMembers("C1").FirstOrDefault(); 242var type = ns.GetTypeMembers("C1").FirstOrDefault(); 286var type = compilation.SourceModule.GlobalNamespace.GetTypeMembers("C").Single(); 522var typeSym00 = namespace1.GetTypeMembers("C1").FirstOrDefault(); 525var typeSym01 = namespace2.GetTypeMembers("C1").FirstOrDefault(); 526var typeSym02 = namespace2.GetTypeMembers("C2").Single(); 604var typeSym1 = comp1.SourceModule.GlobalNamespace.GetTypeMembers("Test").Single(); 607var typeSym2 = comp2.SourceModule.GlobalNamespace.GetTypeMembers("Test").Single(); 630var typeSym01 = namespace1.GetTypeMembers("C1").FirstOrDefault(); 633var typeSym02 = namespace2.GetTypeMembers("C1").FirstOrDefault();
SymbolKey\SymbolKeyMetadataVsSourceTests.cs (4)
71var typesym = comp2.SourceModule.GlobalNamespace.GetTypeMembers("App").FirstOrDefault(); 80var member03 = typesym.BaseType; 239var typeA = comp20.SourceModule.GlobalNamespace.GetTypeMembers("A").Single(); 254var typeTest = comp40.SourceModule.GlobalNamespace.GetTypeMembers("Test").FirstOrDefault();
SymbolKey\SymbolKeyTests.cs (1)
168var type = compilation.GetTypeByMetadataName("ConditionalWeakTableTest`2");
TypeInferrer\TypeInferrerTests.Delegate.cs (1)
32var delegateType = typeInference.InferDelegateType(await document.GetSemanticModelAsync(), node, CancellationToken.None);
Workspaces\WorkspaceTests_EditorFeatures.cs (16)
437var classD = compilation2.SourceModule.GlobalNamespace.GetTypeMembers("D").Single(); 438var classC = classD.BaseType; 465var classD = compilation2.SourceModule.GlobalNamespace.GetTypeMembers("D").Single(); 466var classC = classD.BaseType; 503var classD = compilation2.SourceModule.GlobalNamespace.GetTypeMembers("D").Single(); 504var classC = classD.BaseType; 521var classDz = compilation2Z.SourceModule.GlobalNamespace.GetTypeMembers("D").Single(); 522var classCz = classDz.BaseType; 561var classDy = compilation2y.SourceModule.GlobalNamespace.GetTypeMembers("D").Single(); 562var classCy = classDy.BaseType; 633var classDy = compilation2y.SourceModule.GlobalNamespace.GetTypeMembers("D").Single(); 634var classCy = classDy.BaseType; 663var classDz = compilation2Z.SourceModule.GlobalNamespace.GetTypeMembers("D").Single(); 664var classCz = classDz.BaseType; 684var classDz = compilation2Z.SourceModule.GlobalNamespace.GetTypeMembers("D").Single(); 685var classCz = classDz.BaseType;
Microsoft.CodeAnalysis.CSharp.Emit.UnitTests (212)
CodeGen\CodeGenDeconstructTests.cs (2)
1567var underlying = ((INamedTypeSymbol)tupleType).TupleUnderlyingType;
CodeGen\CodeGenLocalFunctionTests.cs (11)
2611var program = verify.Compilation.GetTypeByMetadataName("Program"); 3133var program = verify.Compilation.GetTypeByMetadataName("Program"); 3168var gooFrame = (INamedTypeSymbol)goo.Parameters[0].Type; 3169var barFrame = (INamedTypeSymbol)bar.Parameters[1].Type; 3204var program = verify.Compilation.GetTypeByMetadataName("Program"); 3250var program = verify.Compilation.GetTypeByMetadataName("Program"); 3276var program = verify.Compilation.GetTypeByMetadataName("Program"); 3309var program = verify.Compilation.GetTypeByMetadataName("Program"); 3397var program = verify.Compilation.GetTypeByMetadataName("Program");
CodeGen\CodeGenReadonlyStructTests.cs (2)
897INamedTypeSymbol iNamedType = comp.CreateAnonymousTypeSymbol(ImmutableArray.Create<ITypeSymbol>(comp.ObjectType.GetPublicSymbol()), ImmutableArray.Create("qq")); 1061INamedTypeSymbol iNamedType = comp.CreateAnonymousTypeSymbol(ImmutableArray.Create<ITypeSymbol>(comp.ObjectType.GetPublicSymbol()), ImmutableArray.Create("qq"));
CodeGen\CodeGenTupleTest.cs (182)
3639var type = (INamedTypeSymbol)model.GetTypeInfo(node).Type; 3689var yType = (INamedTypeSymbol)model.GetTypeInfo(yTuple).Type; 5817var tupleWithoutNames = comp.CreateTupleTypeSymbol(vt0, ImmutableArray<string>.Empty); 5855var tupleWithoutNames = comp.CreateTupleTypeSymbol(vt1, ImmutableArray.Create(new[] { (string)null })); 5873var tupleWithoutNames = comp.CreateTupleTypeSymbol(vt2, ImmutableArray.Create<string>(null, null)); 5887private static ImmutableArray<string> GetTupleElementNames(INamedTypeSymbol tuple) 5912var tuple = comp.CreateTupleTypeSymbol( 5951var tupleWithoutNames = comp.CreateTupleTypeSymbol(vt2, default(ImmutableArray<string>)); 5972var tupleWithNames = comp.CreateTupleTypeSymbol(vt2, ImmutableArray.Create("Alice", "Bob")); 5991var tupleWithSomeNames = comp.CreateTupleTypeSymbol(vt3, ImmutableArray.Create(null, "Item2", "Charlie")); 6009var tupleWithNames = comp.CreateTupleTypeSymbol(vt2, ImmutableArray.Create("Item2", "Item1")); 6030var tuple8WithoutNames = comp.CreateTupleTypeSymbol(vt8, default(ImmutableArray<string>)); 6056var tuple8WithoutNames = comp.CreateTupleTypeSymbol(vt8, elementNames: default); 6083var tuple8WithNames = comp.CreateTupleTypeSymbol(vt8, ImmutableArray.Create("Alice1", "Alice2", "Alice3", "Alice4", "Alice5", "Alice6", "Alice7", "Alice8")); 6108var tuple9WithoutNames = comp.CreateTupleTypeSymbol(vt9, default(ImmutableArray<string>)); 6133var tuple9WithNames = comp.CreateTupleTypeSymbol(vt9, ImmutableArray.Create("Alice1", "Alice2", "Alice3", "Alice4", "Alice5", "Alice6", "Alice7", "Alice8", "Alice9")); 6165var tuple9WithNames = comp.CreateTupleTypeSymbol(vt9, ImmutableArray.Create("Item1", "Item2", "Item3", "Item4", "Item5", "Item6", "Item7", "Item8", "Item9")); 6211var vt2 = comp.CreateErrorTypeSymbol(null, "ValueTuple", 2).Construct(intType, intType); 6275var tuple2 = comp.CreateTupleTypeSymbol(vt3, ImmutableArray.Create("123", " ", null)); 6279var tuple3 = comp.CreateTupleTypeSymbol(vt2, ImmutableArray.Create("return", "class")); 6311INamedTypeSymbol vbType = (INamedTypeSymbol)vbComp.GlobalNamespace.GetMembers("C").Single(); 6367var tupleWithoutNames = comp.CreateTupleTypeSymbol(ImmutableArray.Create(intType, stringType), ImmutableArray.Create<string>(null, null)); 6389var tuple = comp.CreateTupleTypeSymbol( 6403private static IEnumerable<string> ElementTypeNames(INamedTypeSymbol tuple) 6415var tupleWithoutNames = comp.CreateTupleTypeSymbol(ImmutableArray.Create(intType, stringType), default(ImmutableArray<string>)); 6431var tupleWithNames = comp.CreateTupleTypeSymbol(ImmutableArray.Create(intType, stringType), ImmutableArray.Create("Alice", "Bob")); 6446var tupleWithNames = comp.CreateTupleTypeSymbol(ImmutableArray.Create(intType, intType), ImmutableArray.Create("Item2", "Item1")); 6462var tuple8WithoutNames = comp.CreateTupleTypeSymbol(ImmutableArray.Create(intType, stringType, intType, stringType, intType, stringType, intType, stringType), 6482var tuple8WithNames = comp.CreateTupleTypeSymbol(ImmutableArray.Create(intType, stringType, intType, stringType, intType, stringType, intType, stringType), 6502var tuple9WithoutNames = comp.CreateTupleTypeSymbol(ImmutableArray.Create(intType, stringType, intType, stringType, intType, stringType, intType, stringType, intType), 6523var tuple9WithNames = comp.CreateTupleTypeSymbol(ImmutableArray.Create(intType, stringType, intType, stringType, intType, stringType, intType, stringType, intType), 6545var tupleWithoutNames = comp.CreateTupleTypeSymbol(ImmutableArray.Create(intType, ErrorTypeSymbol.UnknownResultType), default(ImmutableArray<string>)); 6563var tuple2 = comp.CreateTupleTypeSymbol(ImmutableArray.Create(intType, intType), ImmutableArray.Create("123", " ")); 6567var tuple3 = comp.CreateTupleTypeSymbol(ImmutableArray.Create(intType, intType), ImmutableArray.Create("return", "class")); 6584INamedTypeSymbol intType = comp.GetSpecialType(SpecialType.System_String).GetPublicSymbol(); 6600var tuple1 = (INamedTypeSymbol)comp.SourceModule.GlobalNamespace.GetMember<INamedTypeSymbol>("C").GetMember<IFieldSymbol>("F").Type; 6602var intType = comp.GetSpecialType(SpecialType.System_Int32); 6603var stringType = comp.GetSpecialType(SpecialType.System_String); 6605var twoStrings = comp.GetWellKnownType(WellKnownType.System_ValueTuple_T2).Construct(stringType, stringType); 6606var twoStringsWithNames = comp.CreateTupleTypeSymbol(twoStrings, ImmutableArray.Create("a", "b")); 6607var tuple2Underlying = comp.GetWellKnownType(WellKnownType.System_ValueTuple_TRest).Construct(intType, intType, intType, intType, intType, intType, intType, twoStringsWithNames); 6608var tuple2 = comp.CreateTupleTypeSymbol(tuple2Underlying); 6610var tuple3 = comp.CreateTupleTypeSymbol(ImmutableArray.Create<ITypeSymbol>(intType, intType, intType, intType, intType, intType, intType, stringType, stringType), 6613var tuple4 = comp.CreateTupleTypeSymbol(tuple1, ImmutableArray.Create("Item1", "Item2", "Item3", "Item4", "Item5", "Item6", "Item7", "a", "b")); 6635var tuple1 = (INamedTypeSymbol)((IFieldSymbol)comp.GetMember("Program.F")).Type; 6637var underlyingType = tuple1; 6639var tuple2 = comp.CreateTupleTypeSymbol(underlyingType); 6677var tuple1 = (INamedTypeSymbol)((IFieldSymbol)comp.GetMember("Program.F")).Type; 6679var underlyingType = tuple1; 6681var tuple2 = comp.CreateTupleTypeSymbol(underlyingType); 6716var tuple1 = (INamedTypeSymbol)((IFieldSymbol)comp.GetMember("Program.F")).Type; 6719var tuple2 = comp.CreateTupleTypeSymbol(elementTypes); 6757var tuple1 = (INamedTypeSymbol)((IFieldSymbol)comp.GetMember("Program.F")).Type; 6760var tuple2 = comp.CreateTupleTypeSymbol(elementTypes); 6795var tuple1 = (INamedTypeSymbol)((FieldSymbol)comp.GetMember("Program.F")).GetPublicSymbol().Type; 6797var underlyingType = tuple1; 6799var tuple2 = comp.CreateTupleTypeSymbol(underlyingType, elementNullableAnnotations: default); 6835var tuple1 = (INamedTypeSymbol)((IFieldSymbol)comp.GetMember("Program.F")).Type; 6836var underlyingType = tuple1.TupleUnderlyingType; 6838var tuple2 = comp.CreateTupleTypeSymbol(underlyingType, elementNullableAnnotations: default); 6865var tuple1 = (INamedTypeSymbol)((IFieldSymbol)comp.GetMember("Program.F")).Type; 6868var tuple2 = comp.CreateTupleTypeSymbol(elementTypes, elementNullableAnnotations: default); 6904var tuple1 = (INamedTypeSymbol)((IFieldSymbol)comp.GetMember("Program.F")).Type; 6907var tuple2 = comp.CreateTupleTypeSymbol(elementTypes, elementNullableAnnotations: default); 14006Assert.True(((INamedTypeSymbol)typeInfo.Type).IsUnboundGenericType); 14229var test = comp.Compilation.GetTypeByMetadataName("Test`1"); 14231var m1Tuple = (INamedTypeSymbol)test.GetMember<IMethodSymbol>("M1").ReturnType; 14236m1Tuple = (INamedTypeSymbol)test.GetMember<IMethodSymbol>("M1").Parameters[0].Type; 14247m1Tuple = (INamedTypeSymbol)((IMethodSymbol)symbolInfo.Symbol).ReturnType; 14254m1Tuple = (INamedTypeSymbol)((IMethodSymbol)symbolInfo.Symbol).Parameters[0].Type; 14263var m2Tuple = (INamedTypeSymbol)((IMethodSymbol)symbolInfo.Symbol).ReturnType; 14270var f1Tuple = (INamedTypeSymbol)test.GetMember<IFieldSymbol>("F1").Type; 14277f1Tuple = (INamedTypeSymbol)((IFieldSymbol)symbolInfo.Symbol).Type; 14284var p1Tuple = (INamedTypeSymbol)test.GetMember<IPropertySymbol>("P1").Type; 14291p1Tuple = (INamedTypeSymbol)((IPropertySymbol)symbolInfo.Symbol).Type; 14316var m4TupleList = (INamedTypeSymbol)test.GetMember<IMethodSymbol>("M4").ReturnType; 14326m4TupleList = (INamedTypeSymbol)((IMethodSymbol)symbolInfo.Symbol).ReturnType; 14423var test = comp.GetTypeByMetadataName("Test`1"); 14425var e1Tuple = (INamedTypeSymbol)test.GetMember<IEventSymbol>("E1").Type; 14435e1Tuple = (INamedTypeSymbol)((IEventSymbol)symbolInfo.CandidateSymbols.Single()).Type; 14459var v1Tuple = v1Type.BaseType; 16569var xSymbol = (INamedTypeSymbol)((ILocalSymbol)model.GetDeclaredSymbol(x)).Type; 16606var xSymbol = (INamedTypeSymbol)((ILocalSymbol)model.GetDeclaredSymbol(x)).Type; 18846var int_string1 = comp.CreateTupleTypeSymbol(ImmutableArray.Create(intType, stringType)); 18847var int_string2 = comp.CreateTupleTypeSymbol(ImmutableArray.Create(intType, stringType)); 18848var int_stringNamed = comp.CreateTupleTypeSymbol(ImmutableArray.Create(intType, stringType), ImmutableArray.Create("a", "b")); 18864var int_string1 = comp.GetWellKnownType(WellKnownType.System_ValueTuple_T2).Construct(intType, stringType); 18865var int_string2 = comp.CreateTupleTypeSymbol(ImmutableArray.Create(intType, stringType)); 18866var int_stringNamed = comp.CreateTupleTypeSymbol(ImmutableArray.Create(intType, stringType), ImmutableArray.Create("a", "b")); 18884var int_int = comp.CreateTupleTypeSymbol(ImmutableArray.Create(intType, intType)); 18885var int_int_int = comp.CreateTupleTypeSymbol(ImmutableArray.Create(intType, intType, intType)); 18886var string_string = comp.CreateTupleTypeSymbol(ImmutableArray.Create(stringType, stringType)); 18888var int_int1 = comp.GetWellKnownType(WellKnownType.System_ValueTuple_T2).Construct(intType, intType); 18908var int_string = comp.CreateTupleTypeSymbol(ImmutableArray.Create(intType, stringType)); 18909var int_object = comp.CreateTupleTypeSymbol(ImmutableArray.Create(intType, objectType)); 18925var int_string1 = comp.CreateTupleTypeSymbol(ImmutableArray.Create(intType, stringType)); 18926var int_object1 = comp.CreateTupleTypeSymbol(ImmutableArray.Create(intType, objectType)); 18928var int_string2 = comp.GetWellKnownType(WellKnownType.System_ValueTuple_T2).Construct(intType, stringType); 18929var int_object2 = comp.GetWellKnownType(WellKnownType.System_ValueTuple_T2).Construct(intType, objectType); 18951var int_string1 = tupleComp1.CreateTupleTypeSymbol(ImmutableArray.Create(intType, stringType)); 18952var int_string2 = tupleComp2.CreateTupleTypeSymbol(ImmutableArray.Create(intType, stringType)); 18954var int_object = tupleComp1.CreateTupleTypeSymbol(ImmutableArray.Create(intType, objectType)); 18976var int_string1 = tupleComp1.CreateTupleTypeSymbol(ImmutableArray.Create(intType, stringType)); 18977var int_string2 = tupleComp2.CreateTupleTypeSymbol(ImmutableArray.Create(intType, stringType)); 18978var int_object = tupleComp1.CreateTupleTypeSymbol(ImmutableArray.Create(intType, objectType)); 19001var int_string1 = tupleComp1.CreateTupleTypeSymbol(ImmutableArray.Create(intType, stringType)); 19002var int_string2 = tupleComp2.CreateTupleTypeSymbol(ImmutableArray.Create(intType, stringType)); 19003var int_object = tupleComp1.CreateTupleTypeSymbol(ImmutableArray.Create(intType, objectType)); 19027var int_string1 = tupleComp1.CreateTupleTypeSymbol(ImmutableArray.Create(intType, stringType)); 19028var int_string2 = tupleComp2.CreateTupleTypeSymbol(ImmutableArray.Create(intType, stringType)); 19029var int_object = tupleComp1.CreateTupleTypeSymbol(ImmutableArray.Create(intType, objectType)); 19069var int_string1 = tupleComp1.CreateTupleTypeSymbol(ImmutableArray.Create(intType, stringType)); 19070var int_object = tupleComp1.CreateTupleTypeSymbol(ImmutableArray.Create(intType, objectType)); 19071var int_object_object = tupleComp1.CreateTupleTypeSymbol(ImmutableArray.Create(intType, objectType, objectType)); 19108var int_string1 = tupleComp1.CreateTupleTypeSymbol(ImmutableArray.Create(intType, stringType)); 19109var int_object = tupleComp1.CreateTupleTypeSymbol(ImmutableArray.Create(intType, objectType)); 19110var int_object_object = tupleComp1.CreateTupleTypeSymbol(ImmutableArray.Create(intType, objectType, objectType)); 19147var int_string1 = comp.GetWellKnownType(WellKnownType.System_ValueTuple_T2).Construct(intType, stringType); 19148var int_object = comp.GetWellKnownType(WellKnownType.System_ValueTuple_T2).Construct(intType, objectType); 19149var int_object_object = comp.GetWellKnownType(WellKnownType.System_ValueTuple_T3).Construct(intType, objectType, objectType); 19186var int_string1 = comp.GetWellKnownType(WellKnownType.System_ValueTuple_T2).Construct(intType, stringType); 19187var int_object = comp.GetWellKnownType(WellKnownType.System_ValueTuple_T2).Construct(intType, objectType); 19188var int_object_object = comp.GetWellKnownType(WellKnownType.System_ValueTuple_T3).Construct(intType, objectType, objectType); 20450var c1 = (INamedTypeSymbol)comp.GetTypeByMetadataName("C1"); 20462var c2 = (INamedTypeSymbol)comp.GetTypeByMetadataName("C2"); 20474var c3 = (INamedTypeSymbol)comp.GetTypeByMetadataName("C3"); 20485var c4 = (INamedTypeSymbol)comp.GetTypeByMetadataName("C4"); 20498void assertExplicitInterfaceImplementations(INamedTypeSymbol c) 20666var c1 = (INamedTypeSymbol)comp.GetTypeByMetadataName("C1`1"); 20678var c2 = (INamedTypeSymbol)comp.GetTypeByMetadataName("C2`1"); 20690var c3 = (INamedTypeSymbol)comp.GetTypeByMetadataName("C3`1"); 20701var c4 = (INamedTypeSymbol)comp.GetTypeByMetadataName("C4`1"); 20714void assertExplicitInterfaceImplementations(INamedTypeSymbol c) 20750var c3 = (INamedTypeSymbol)comp.GetTypeByMetadataName("C3`2"); 20761void assertExplicitInterfaceImplementations(INamedTypeSymbol c) 24260var derivedSymbol = model.GetDeclaredSymbol(derived); 24323var derivedSymbol = model.GetDeclaredSymbol(derived); 24387var derivedSymbol = model.GetDeclaredSymbol(derived); 24460var derivedSymbol = model.GetDeclaredSymbol(derived) as INamedTypeSymbol; 24533var derivedSymbol = model.GetDeclaredSymbol(derived); 24607var derivedSymbol = model.GetDeclaredSymbol(derived); 27418var containingType = comp.GlobalNamespace.GetTypeMembers("Program").Single(); 27419VerifyTypeFromVisualBasic((INamedTypeSymbol)((IFieldSymbol)containingType.GetMembers("F0").Single()).Type, TupleUnderlyingTypeValue.Null, "System.ValueTuple", "System.ValueTuple"); 27420VerifyTypeFromVisualBasic((INamedTypeSymbol)((IFieldSymbol)containingType.GetMembers("F1").Single()).Type, TupleUnderlyingTypeValue.Distinct, "(System.Int32, System.Int32)", "(System.Int32, System.Int32)"); 27421VerifyTypeFromVisualBasic((INamedTypeSymbol)((IFieldSymbol)containingType.GetMembers("F2").Single()).Type, TupleUnderlyingTypeValue.Distinct, "(System.Int32 A, System.Int32 B)", "(A As System.Int32, B As System.Int32)"); 27422VerifyTypeFromVisualBasic((INamedTypeSymbol)((IFieldSymbol)containingType.GetMembers("F3").Single()).Type, TupleUnderlyingTypeValue.Distinct, "(System.Object, System.Object, System.Object, System.Object, System.Object, System.Object, System.Object, System.Object)", "(System.Object, System.Object, System.Object, System.Object, System.Object, System.Object, System.Object, System.Object)"); 27423VerifyTypeFromVisualBasic((INamedTypeSymbol)((IFieldSymbol)containingType.GetMembers("F4").Single()).Type, TupleUnderlyingTypeValue.Distinct, "(System.Object, System.Object B, System.Object, System.Object D, System.Object, System.Object F, System.Object, System.Object H)", "(System.Object, B As System.Object, System.Object, D As System.Object, System.Object, F As System.Object, System.Object, H As System.Object)"); 27451INamedTypeSymbol type, 27461private static void VerifyDisplay(INamedTypeSymbol type, string expectedCSharp, string expectedVisualBasic) 27491private static void VerifyPublicType(INamedTypeSymbol type, TupleUnderlyingTypeValue expectedValue) 27493var underlyingType = type.TupleUnderlyingType;
Emit\DeterministicTests.cs (2)
360foreach (var type in getForwardedTypes(retargeting)) 370static ImmutableArray<INamedTypeSymbol> getForwardedTypes(AssemblySymbol assembly)
Emit\InAttributeModifierTests.cs (13)
4172var parentModifier = module.ContainingAssembly.GetTypeByMetadataName("Parent").GetMethod("M").RefCustomModifiers.Single().Modifier; 4196var childModifier = module.ContainingAssembly.GetTypeByMetadataName("Child").GetMethod("M").RefCustomModifiers.Single().Modifier; 4219var parentModifier = module.ContainingAssembly.GetTypeByMetadataName("Parent").GetMethod("M").RefCustomModifiers.Single().Modifier; 4243var childModifier = module.ContainingAssembly.GetTypeByMetadataName("Child").GetMethod("M").RefCustomModifiers.Single().Modifier; 4266var parentModifier = module.ContainingAssembly.GetTypeByMetadataName("Parent").GetMethod("M").RefCustomModifiers.Single().Modifier; 4292var explicitModifier = type.GetMethod("Parent.M").RefCustomModifiers.Single().Modifier; 4315var parentModifier = module.ContainingAssembly.GetTypeByMetadataName("Parent").GetMethod("M").RefCustomModifiers.Single().Modifier; 4341var implicitModifier = type.GetMethod("M").RefCustomModifiers.Single().Modifier; 4344var explicitModifier = type.GetMethod("Parent.M").RefCustomModifiers.Single().Modifier; 4367var parentModifier = module.ContainingAssembly.GetTypeByMetadataName("Parent").GetMethod("M").RefCustomModifiers.Single().Modifier; 4394var implicitModifier = type.GetMethod("M").RefCustomModifiers.Single().Modifier; 4397var explicitModifier = type.GetMethod("Parent.M").RefCustomModifiers.Single().Modifier; 4427var attribute = m.RefCustomModifiers.Single().Modifier;
Microsoft.CodeAnalysis.CSharp.Emit2.UnitTests (6)
Emit\EditAndContinue\EditAndContinueTests.cs (2)
75Edit(SemanticEditKind.Delete, symbolProvider: c => c.GetMember<INamedTypeSymbol>("C").InstanceConstructors.FirstOrDefault(c => c.Parameters.Length == 1), newSymbolProvider: c => c.GetMember("C")), 159Edit(SemanticEditKind.Delete, symbolProvider: c => c.GetMember<INamedTypeSymbol>("C").InstanceConstructors.FirstOrDefault(c => c.Parameters.Length == 1), newSymbolProvider: c => c.GetMember("C")),
Emit\NumericIntPtrTests.cs (4)
11183var nintSymbol = (INamedTypeSymbol)model.GetSymbolInfo(cref).Symbol; 11206var symbol = (INamedTypeSymbol)model.GetSymbolInfo(cref).Symbol;
Microsoft.CodeAnalysis.CSharp.Emit3.UnitTests (122)
Attributes\AttributeTests.cs (5)
9915var typeInAttribute = (INamedTypeSymbol)type.GetAttributes()[0].ConstructorArguments.First().Value; 9925typeInAttribute = (INamedTypeSymbol)type.GetAttributes()[0].ConstructorArguments.First().Value; 11066var d = comp2.GetMember<INamedTypeSymbol>("D");
Attributes\AttributeTests_CallerInfoAttributes.cs (4)
1943var namedType = compilation.GetTypeByMetadataName("Program").GetPublicSymbol(); 1975var namedType = compilation.GetTypeByMetadataName("Program").GetPublicSymbol(); 2007var namedType = compilation.GetTypeByMetadataName("Program").GetPublicSymbol(); 2040var namedType = compilation.GetTypeByMetadataName("Program").GetPublicSymbol();
Diagnostics\GetDiagnosticsTests.cs (2)
1845var namedType = (INamedTypeSymbol)symbolContext.Symbol;
PartialEventsAndConstructorsTests.cs (4)
2088var cOfTSymbol = defSymbol.ContainingType!; 2089var cOfIntSymbol = cOfTSymbol.Construct([intSymbol]); 2119var cOfTSymbol = defSymbol.ContainingType!; 2120var cOfIntSymbol = cOfTSymbol.Construct([intSymbol]);
RefReadonlyParameterTests.cs (3)
1481var modifier = verify(m); 1493var modifier = verify(m); 1497static INamedTypeSymbol verify(ModuleSymbol m)
Semantics\ExtensionTests.cs (84)
52private static void AssertExtensionDeclaration(INamedTypeSymbol symbol) 151var symbol = model.GetDeclaredSymbol(extension); 241var symbol = model.GetDeclaredSymbol(extension); 258var constructed = symbol.Construct(comp.GetSpecialType(SpecialType.System_Int32)); 266var unbound = symbol.ConstructUnboundGenericType(); 321var symbol = model.GetDeclaredSymbol(extension); 355var symbol = model.GetDeclaredSymbol(extension); 382var symbol = model.GetDeclaredSymbol(extension); 412var symbol = model.GetDeclaredSymbol(extension); 442var symbol = model.GetDeclaredSymbol(extension); 471var symbol = model.GetDeclaredSymbol(extension); 476var container = symbol.ContainingType; 477var substitutedExtension = (INamedTypeSymbol)container.Construct(comp.GetSpecialType(SpecialType.System_Int32)).GetMembers().Single(); 502var symbol = model.GetDeclaredSymbol(extension); 526var symbol = model.GetDeclaredSymbol(extension); 619var symbol = model.GetDeclaredSymbol(extension); 647var symbol = model.GetDeclaredSymbol(extension); 688var nestedExtensionSymbol = model.GetDeclaredSymbol(nestedExtension); 738var nestedExtensionSymbol = model.GetDeclaredSymbol(nestedExtension); 842var symbol = model.GetDeclaredSymbol(extension); 869var symbol1 = model1.GetDeclaredSymbol(extension1); 877var symbol2 = model2.GetDeclaredSymbol(extension2); 903var symbol1 = model.GetDeclaredSymbol(extension1); 908var symbol2 = model.GetDeclaredSymbol(extension2); 930var symbol1 = model.GetDeclaredSymbol(extension1); 936var symbol2 = model.GetDeclaredSymbol(extension2); 1221var symbol1 = model.GetDeclaredSymbol(extension1); 1386var symbol1 = model.GetDeclaredSymbol(extension1); 1548var symbol1 = model.GetDeclaredSymbol(extension1); 1572var symbol1 = model.GetDeclaredSymbol(extension1); 1578var symbol2 = model.GetDeclaredSymbol(extension2); 1605var symbol1 = model.GetDeclaredSymbol(extension1); 1611var symbol2 = model.GetDeclaredSymbol(extension2); 1634var symbol1 = model.GetDeclaredSymbol(extension1); 1640var symbol2 = model.GetDeclaredSymbol(extension2); 1662var symbol1 = model.GetDeclaredSymbol(extension1); 1668var symbol2 = model.GetDeclaredSymbol(extension2); 1701var symbol = model.GetDeclaredSymbol(extension); 1780var symbol = model.GetDeclaredSymbol(extension); 1881var symbol = model.GetDeclaredSymbol(extension); 2036var symbol = model.GetDeclaredSymbol(extension); 2070var symbol = model.GetDeclaredSymbol(extension); 2202var symbol = model.GetDeclaredSymbol(extension); 2229var symbol = model.GetDeclaredSymbol(extension); 2264var symbol = model.GetDeclaredSymbol(extension); 2336var symbol = model.GetDeclaredSymbol(extension); 2425var symbol = model.GetDeclaredSymbol(extension); 2453var symbol = model.GetDeclaredSymbol(extension); 2487var symbol = model.GetDeclaredSymbol(extension); 2513var symbol = model.GetDeclaredSymbol(extension); 2570var symbol = model.GetDeclaredSymbol(type); 2586var symbol = model.GetDeclaredSymbol(type); 2602var symbol = model.GetDeclaredSymbol(type); 2625var symbol = model.GetDeclaredSymbol(type); 2670var symbol = model.GetDeclaredSymbol(type); 2692var symbol = model.GetDeclaredSymbol(type); 2721var symbol = model.GetDeclaredSymbol(type); 2769var symbol = model.GetDeclaredSymbol(type); 2793var symbol = model.GetDeclaredSymbol(type); 2819var symbol = model.GetDeclaredSymbol(type); 3158var symbol1 = model.GetDeclaredSymbol(type1); 3220var symbol1 = model.GetDeclaredSymbol(type1); 3242var symbol = model.GetDeclaredSymbol(type); 3410var extensionSymbol = model.GetDeclaredSymbol(type); 3533var symbol1 = model.GetDeclaredSymbol(type1); 3780var o = ((Compilation)comp).GetSpecialType(SpecialType.System_Object); 4083var symbol = model.GetDeclaredSymbol(type); 22176var symbol = model.GetDeclaredSymbol(extension); 22230var symbol = model.GetDeclaredSymbol(extension); 22400var symbol = model.GetDeclaredSymbol(extension); 28091var symbol = model.GetDeclaredSymbol(extension); 28114var symbol = model.GetDeclaredSymbol(extension); 35370var e = ((Compilation)comp).GlobalNamespace.GetTypeMember("E"); 35382var o = ((Compilation)comp).GetSpecialType(SpecialType.System_Object); 35429var o = ((Compilation)comp).GetSpecialType(SpecialType.System_Object); 35462var o = ((Compilation)comp).GetSpecialType(SpecialType.System_Object); 35472var s = ((Compilation)comp).GetSpecialType(SpecialType.System_String); 35501var s = ((Compilation)comp).GetSpecialType(SpecialType.System_String); 35533var o = ((Compilation)comp).GetSpecialType(SpecialType.System_Object); 35574var o = ((Compilation)comp).GetSpecialType(SpecialType.System_Object); 35605var o = ((Compilation)comp).GetSpecialType(SpecialType.System_Object); 35636var o = ((Compilation)comp).GetSpecialType(SpecialType.System_Object); 36491var o = ((Compilation)comp).GetSpecialType(SpecialType.System_Object);
Semantics\PrimaryConstructorTests.cs (18)
20652var namedType = symbols.OfType<INamedTypeSymbol>().Single(); 20686var namedType1 = symbols1.OfType<INamedTypeSymbol>().Single(); 20696var namedType2 = symbols2.OfType<INamedTypeSymbol>().Single(); 20730var namedType1 = symbols1.OfType<INamedTypeSymbol>().Single(); 20740var namedType2 = symbols2.OfType<INamedTypeSymbol>().Single(); 20777var namedType1 = symbols1.OfType<INamedTypeSymbol>().Single(); 20785var namedType2 = symbols2.OfType<INamedTypeSymbol>().Single(); 20827var namedType1 = symbols1.OfType<INamedTypeSymbol>().Single(); 20837var namedType2 = symbols2.OfType<INamedTypeSymbol>().Single();
Semantics\RecordTests.cs (2)
890var c = verifier.Compilation.GlobalNamespace.GetTypeMember("C"); 26193var symbol = vbComp.GlobalNamespace.GetTypeMember("A");
Microsoft.CodeAnalysis.CSharp.Features (363)
ChangeSignature\CSharpChangeSignatureService.cs (2)
939protected override bool TryGetRecordPrimaryConstructor(INamedTypeSymbol typeSymbol, [NotNullWhen(true)] out IMethodSymbol? primaryConstructor) 945if (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\CrefCompletionProvider.cs (3)
190var type = semanticModel.GetDeclaredSymbol(typeDeclaration, cancellationToken); 193foreach (var baseType in type.GetBaseTypesAndThis()) 221if (container is INamedTypeSymbol namedTypeContainer)
Completion\CompletionProviders\CSharpSuggestionModeCompletionProvider.cs (1)
197var ienumerableType = typeInferenceInfo.InferredType
Completion\CompletionProviders\DeclarationName\DeclarationNameRecommender.cs (7)
129if (type is INamedTypeSymbol namedType && namedType.OriginalDefinition != null) 158var originalDefinition = namedType.OriginalDefinition; 159var taskOfTType = compilation.TaskOfTType(); 160var valueTaskType = compilation.ValueTaskOfTType(); 161var lazyOfTType = compilation.LazyOfTType(); 285var namedType = semanticModel.GetEnclosingNamedType(context.Position, cancellationToken); 318static ImmutableArray<IMethodSymbol> GetOverloads(INamedTypeSymbol namedType, BaseMethodDeclarationSyntax baseMethod)
Completion\CompletionProviders\DeclarationName\DeclarationNameRecommender.NameGenerator.cs (1)
37((INamedTypeSymbol)alias.Target).IsInterfaceType() &&
Completion\CompletionProviders\EnumAndCompletionListTagCompletionProvider.cs (8)
129var enclosingNamedType = semanticModel.GetEnclosingNamedType(position, cancellationToken); 292var containingType = semanticModel.GetEnclosingNamedType(token.SpanStart, cancellationToken); 320private static INamedTypeSymbol? TryGetCompletionListType(ITypeSymbol type, INamedTypeSymbol? within, Compilation compilation) 337var completionListType = documentation.CompletionListCref != null 338? DocumentationCommentId.GetSymbolsForDeclarationId(documentation.CompletionListCref, compilation).OfType<INamedTypeSymbol>().FirstOrDefault() 346private static INamedTypeSymbol? TryGetTypeWithStaticMembers(ITypeSymbol type) 351return 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)
173var within = semanticModel.GetEnclosingNamedType(position, cancellationToken); 174if (semanticModel.GetTypeInfo(objectCreationExpression, cancellationToken).Type is INamedTypeSymbol type && within != null && type.TypeKind != TypeKind.Delegate) 212var within = semanticModel.GetEnclosingNamedType(position, cancellationToken); 215var type = constructorInitializer.Kind() == SyntaxKind.BaseConstructorInitializer 238var within = semanticModel.GetRequiredDeclaredSymbol(typeDeclaration, cancellationToken); 242var type = semanticModel.GetTypeInfo(baseType.Type, cancellationToken).Type as INamedTypeSymbol; 258var expressionType = semanticModel.GetTypeInfo(invocationExpression.Expression, cancellationToken).Type as INamedTypeSymbol;
Completion\CompletionProviders\ObjectAndWithInitializerCompletionProvider.cs (1)
188protected 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\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)
392if (declarationSymbol is INamedTypeSymbol namedTypeSymbol)
Completion\KeywordRecommenders\ThisKeywordRecommender.cs (1)
80var 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) 1958internal override string GetDisplayName(INamedTypeSymbol symbol) 2521INamedTypeSymbol => RudeEditKind.None,
EditAndContinue\SyntaxUtilities.cs (1)
65RecordDeclarationSyntax recordDeclarationSyntax when symbol is not INamedTypeSymbol
EncapsulateField\CSharpEncapsulateFieldService.cs (2)
195private static string MakeUnique(string baseName, INamedTypeSymbol containingType) 201protected 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) 437return ((INamedTypeSymbol)expressionType).DelegateInvokeMethod; 508protected override INamedTypeSymbol DetermineTypeToGenerateIn(SemanticModel semanticModel, SimpleNameSyntax simpleName, CancellationToken cancellationToken) 543INamedTypeSymbol 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)
33var 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)
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)
SignatureHelp\AttributeSignatureHelpProvider.cs (1)
81if (semanticModel.GetTypeInfo(attribute, cancellationToken).Type is not INamedTypeSymbol attributeType)
SignatureHelp\ConstructorInitializerSignatureHelpProvider.cs (2)
76var within = semanticModel.GetEnclosingNamedType(position, cancellationToken); 83var type = constructorInitializer.Kind() == SyntaxKind.BaseConstructorInitializer
SignatureHelp\ElementAccessExpressionSignatureHelpProvider.cs (2)
61if (expressionSymbol is INamedTypeSymbol namedType) 75if (expressionSymbol is not null and INamedTypeSymbol)
SignatureHelp\GenericNameSignatureHelpProvider.cs (2)
121.WhereAsArray(s => s is INamedTypeSymbol or IMethodSymbol) 177if (symbol is INamedTypeSymbol namedType)
SignatureHelp\GenericNameSignatureHelpProvider_Method.cs (1)
64if (result is not INamedTypeSymbol namedTypeSymbol || !namedTypeSymbol.IsScriptClass)
SignatureHelp\GenericNameSignatureHelpProvider_NamedType.cs (1)
12INamedTypeSymbol namedType,
SignatureHelp\InvocationExpressionSignatureHelpProvider.cs (2)
81if (invokedType is INamedTypeSymbol { TypeKind: TypeKind.Delegate } or IFunctionPointerTypeSymbol) 129if (invokedType is INamedTypeSymbol { TypeKind: TypeKind.Delegate } expressionType)
SignatureHelp\InvocationExpressionSignatureHelpProviderBase_DelegateAndFunctionPointerInvoke.cs (1)
20INamedTypeSymbol delegateType, CancellationToken cancellationToken)
SignatureHelp\InvocationExpressionSignatureHelpProviderBase_MethodGroup.cs (3)
61semanticModel.LookupSymbols(throughExpression.SpanStart, name: throughSymbol?.Name).Any(static s => s is not INamedTypeSymbol) || 62(throughSymbol is not INamespaceOrTypeSymbol && semanticModel.LookupSymbols(throughExpression.SpanStart, container: throughSymbol?.ContainingType).Any(static s => s is not INamedTypeSymbol)); 64var includeStatic = throughSymbol is INamedTypeSymbol ||
SignatureHelp\ObjectCreationExpressionSignatureHelpProvider.cs (3)
70if (semanticModel.GetTypeInfo(objectCreationExpression, cancellationToken).Type is not INamedTypeSymbol type) 73var within = semanticModel.GetEnclosingNamedType(position, cancellationToken); 111INamedTypeSymbol 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)
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\Analyzers\CSharp\Analyzers\ConvertProgram\ConvertProgramAnalysis_TopLevelStatements.cs (1)
91private static bool TypeCanBeConverted(INamedTypeSymbol containingType, TypeDeclarationSyntax typeDeclaration)
src\Analyzers\CSharp\Analyzers\InlineDeclaration\CSharpInlineDeclarationDiagnosticAnalyzer.cs (2)
50var expressionType = compilation.GetTypeByMetadataName(typeof(Expression<>).FullName!); 63private void AnalyzeSyntaxNode(SyntaxNodeAnalysisContext context, INamedTypeSymbol? expressionType)
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\Analyzers\CSharp\Analyzers\MakeStructMemberReadOnly\CSharpMakeStructMemberReadOnlyAnalyzer.cs (1)
56if (context.Symbol is not INamedTypeSymbol
src\Analyzers\CSharp\Analyzers\MakeStructReadOnly\CSharpMakeStructReadOnlyDiagnosticAnalyzer.cs (2)
76var typeSymbol = (INamedTypeSymbol)context.Symbol;
src\Analyzers\CSharp\Analyzers\RemoveUnnecessaryDiscardDesignation\CSharpRemoveUnnecessaryDiscardDesignationDiagnosticAnalyzer.cs (1)
69var typeSymbol = semanticModel.GetRequiredDeclaredSymbol(containingTypeSyntax, cancellationToken);
src\Analyzers\CSharp\Analyzers\RemoveUnnecessaryLambdaExpression\CSharpRemoveUnnecessaryLambdaExpressionDiagnosticAnalyzer.cs (4)
46var expressionType = context.Compilation.ExpressionOfTType(); 47var conditionalAttributeType = context.Compilation.ConditionalAttribute(); 56private void AnalyzeSyntax(SyntaxNodeAnalysisContext context, INamedTypeSymbol? expressionType, INamedTypeSymbol? conditionalAttributeType)
src\Analyzers\CSharp\Analyzers\RemoveUnnecessaryNullableDirective\NullableImpactingSpanWalker.cs (1)
152else if (symbolInfo.Symbol is INamedTypeSymbol { IsValueType: true, IsGenericType: false })
src\Analyzers\CSharp\Analyzers\RemoveUnusedMembers\CSharpRemoveUnusedMembersDiagnosticAnalyzer.cs (1)
26protected override IEnumerable<TypeDeclarationSyntax> GetTypeDeclarations(INamedTypeSymbol namedType, CancellationToken cancellationToken)
src\Analyzers\CSharp\Analyzers\SimplifyLinqExpression\CSharpSimplifyLinqTypeCheckAndCastDiagnosticAnalyzer.cs (2)
31var enumerableType = context.Compilation.GetTypeByMetadataName(typeof(Enumerable).FullName!); 178SyntaxNodeAnalysisContext context, INamedTypeSymbol enumerableType)
src\Analyzers\CSharp\Analyzers\UseCollectionExpression\AbstractCSharpUseCollectionExpressionDiagnosticAnalyzer.cs (2)
43protected abstract void InitializeWorker(CodeBlockStartAnalysisContext<SyntaxKind> context, INamedTypeSymbol? expressionType); 66var expressionType = compilation.ExpressionOfTType();
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\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\Analyzers\CSharp\Analyzers\UseCollectionExpression\CSharpUseCollectionExpressionForCreateDiagnosticAnalyzer.cs (2)
22protected override void InitializeWorker(CodeBlockStartAnalysisContext<SyntaxKind> context, INamedTypeSymbol? expressionType) 25private void AnalyzeInvocationExpression(SyntaxNodeAnalysisContext context, INamedTypeSymbol? expressionType)
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\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\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\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\Analyzers\CSharp\Analyzers\UseCollectionExpression\UseCollectionExpressionHelpers.cs (13)
64INamedTypeSymbol? expressionType, 83INamedTypeSymbol? expressionType, 273var isetType = compilation.ISetOfTType(); 274var ireadOnlySetType = compilation.IReadOnlySetOfTType(); 327if (type is INamedTypeSymbol namedType) 738INamedTypeSymbol? expressionType, 884if (semanticModel.GetSymbolInfo(memberAccessExpression.Expression, cancellationToken).Symbol is not INamedTypeSymbol factoryType) 934Type: INamedTypeSymbol 981Type: INamedTypeSymbol 1061public static bool EqualsOrImplements(ITypeSymbol type, INamedTypeSymbol? interfaceType) 1068foreach (var baseInterface in type.AllInterfaces) 1110if (expressionSymbol is not INamedTypeSymbol) 1142if (expressionSymbol is not INamedTypeSymbol)
src\Analyzers\CSharp\Analyzers\UseCollectionInitializer\CSharpUseCollectionInitializerAnalyzer.cs (5)
203bool CanSpreadFirstParameter(INamedTypeSymbol constructedType, IParameterSymbol firstParameter) 207var ienumerableOfTType = compilation.IEnumerableOfTType(); 208var implementedInterface = firstParameter.Type 231var collectionType = compilation.CollectionOfTType(); 232var blockingCollectionType = compilation.BlockingCollectionOfTType();
src\Analyzers\CSharp\Analyzers\UseCollectionInitializer\CSharpUseCollectionInitializerDiagnosticAnalyzer.cs (1)
52INamedTypeSymbol? expressionType,
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, 168if (type is not INamedTypeSymbol { IsTupleType: true, TupleElements.Length: >= 2 } tupleTypeOpt) 202SemanticModel semanticModel, INamedTypeSymbol tupleType,
src\Analyzers\CSharp\Analyzers\UseExpressionBody\Helpers\UseExpressionBodyForLocalFunctionHelper.cs (1)
61methodSymbol.ReturnType is INamedTypeSymbol namedType &&
src\Analyzers\CSharp\Analyzers\UseExpressionBody\Helpers\UseExpressionBodyForMethodsHelper.cs (1)
60return method.ReturnType is INamedTypeSymbol namedType && namedType.Arity != 0;
src\Analyzers\CSharp\Analyzers\UseExpressionBodyForLambda\UseExpressionBodyForLambdaHelpers.cs (1)
43if (semanticModel.GetTypeInfo(declaration, cancellationToken).ConvertedType is not INamedTypeSymbol lambdaType || lambdaType.DelegateInvokeMethod == null)
src\Analyzers\CSharp\Analyzers\UseIndexOrRangeOperator\CSharpUseIndexOperatorDiagnosticAnalyzer.cs (1)
83var arrayType = compilation.GetSpecialType(SpecialType.System_Array);
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\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\Analyzers\CSharp\Analyzers\UseIsNullCheck\CSharpUseNullCheckOverTypeCheckDiagnosticAnalyzer.cs (2)
38var expressionType = compilation.ExpressionOfTType(); 84private void AnalyzeIsTypeOperation(OperationAnalysisContext context, INamedTypeSymbol? expressionType)
src\Analyzers\CSharp\Analyzers\UseLocalFunction\CSharpUseLocalFunctionDiagnosticAnalyzer.cs (7)
64var expressionType = compilation.GetTypeByMetadataName(typeof(Expression<>).FullName!); 77private void SyntaxNodeAction(SyntaxNodeAnalysisContext syntaxContext, INamedTypeSymbol? expressionType) 114var delegateType = semanticModel.GetTypeInfo(anonymousFunction, cancellationToken).ConvertedType as INamedTypeSymbol; 237SemanticModel semanticModel, INamedTypeSymbol? expressionTypeOpt, ISymbol local, BlockSyntax block, 389INamedTypeSymbol delegateType, 394var delegateContainingType = delegateType.ContainingType;
src\Analyzers\CSharp\Analyzers\UseNameofInNullableAttribute\CSharpUseNameofInNullableAttributeDiagnosticAnalyzer.cs (1)
75INamedTypeSymbol? containingType = null;
src\Analyzers\CSharp\Analyzers\UsePatternCombinators\CSharpUsePatternCombinatorsDiagnosticAnalyzer.cs (1)
68var expressionType = semanticModel.Compilation.ExpressionOfTType();
src\Analyzers\CSharp\Analyzers\UsePatternMatching\CSharpUseNotPatternDiagnosticAnalyzer.cs (2)
45var expressionOfTType = context.Compilation.ExpressionOfTType(); 52INamedTypeSymbol? expressionOfTType)
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\Analyzers\CSharp\Analyzers\UseSystemThreadingLock\CSharpUseSystemThreadingLockDiagnosticAnalyzer.cs (3)
62var lockType = compilation.GetBestTypeByMetadataName("System.Threading.Lock"); 77var namedType = (INamedTypeSymbol)context.Symbol;
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\Analyzers\CSharp\CodeFixes\AddParameter\CSharpAddParameterCodeFixProvider.cs (1)
65var type = constructorSymbol.ContainingType;
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\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\Analyzers\CSharp\CodeFixes\ConvertToRecord\PositionalParameterInfo.cs (4)
37INamedTypeSymbol type, 75INamedTypeSymbol currentType, 78var baseType = currentType.BaseType; 119INamedTypeSymbol containingType)
src\Analyzers\CSharp\CodeFixes\DisambiguateSameVariable\CSharpDisambiguateSameVariableCodeFixProvider.cs (1)
96var enclosingType = semanticModel.GetEnclosingNamedType(span.Start, cancellationToken);
src\Analyzers\CSharp\CodeFixes\FixReturnType\CSharpFixReturnTypeCodeFixProvider.cs (2)
97INamedTypeSymbol? taskType = null; 159var baseTupleType = compilation.ValueTupleType(argCount);
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\Analyzers\CSharp\CodeFixes\GenerateDefaultConstructors\CSharpGenerateDefaultConstructorsService.cs (2)
27[NotNullWhen(true)] out INamedTypeSymbol? classType) 38classType = semanticDocument.SemanticModel.GetDeclaredSymbol(typeDeclaration, cancellationToken) as INamedTypeSymbol;
src\Analyzers\CSharp\CodeFixes\GenerateMethod\GenerateDeconstructMethodCodeFixProvider.cs (1)
99var codeActions = await service.GenerateDeconstructMethodAsync(document, target, (INamedTypeSymbol)type, cancellationToken).ConfigureAwait(false);
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\Analyzers\CSharp\CodeFixes\GenerateParameterizedMember\CSharpGenerateDeconstructMethodService.cs (2)
26protected override bool ContainingTypesOrSelfHasUnsafeKeyword(INamedTypeSymbol containingType) 59if (targetType is not INamedTypeSymbol { IsTupleType: true, TupleElements: var tupleElements })
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\Analyzers\CSharp\CodeFixes\ImplementInterface\CSharpImplementInterfaceService.cs (4)
56[NotNullWhen(true)] out INamedTypeSymbol? classOrStructType, 57out ImmutableArray<INamedTypeSymbol> interfaceTypes) 76if (interfaceSymbolInfo.GetAnySymbol() is INamedTypeSymbol interfaceType && interfaceType.TypeKind == TypeKind.Interface) 107SyntaxGenerator g, INamedTypeSymbol classType, string disposeMethodDisplayString)
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\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\Analyzers\CSharp\CodeFixes\MakeRefStruct\MakeRefStructCodeFixProvider.cs (2)
49var structDeclarationSymbol = (INamedTypeSymbol)semanticModel.GetRequiredDeclaredSymbol(structDeclaration, cancellationToken);
src\Analyzers\CSharp\CodeFixes\ReplaceDefaultLiteral\CSharpReplaceDefaultLiteralCodeFixProvider.cs (1)
123var flagsAttribute = compilation.GetTypeByMetadataName(typeof(FlagsAttribute).FullName!);
src\Analyzers\CSharp\CodeFixes\UseCollectionExpression\CSharpUseCollectionExpressionForArrayCodeFixProvider.cs (2)
65var expressionType = semanticModel.Compilation.ExpressionOfTType(); 100SemanticModel semanticModel, ExpressionSyntax expression, INamedTypeSymbol? expressionType)
src\Analyzers\CSharp\CodeFixes\UseCollectionExpression\CSharpUseCollectionExpressionForBuilderCodeFixProvider.cs (1)
45var expressionType = semanticModel.Compilation.ExpressionOfTType();
src\Analyzers\CSharp\CodeFixes\UseCollectionExpression\CSharpUseCollectionExpressionForFluentCodeFixProvider.cs (1)
57var expressionType = semanticModel.Compilation.ExpressionOfTType();
src\Analyzers\CSharp\CodeFixes\UseCollectionExpression\CSharpUseCollectionExpressionForStackAllocCodeFixProvider.cs (1)
41var expressionType = semanticModel.Compilation.ExpressionOfTType();
src\Analyzers\CSharp\CodeFixes\UseDeconstruction\CSharpUseDeconstructionCodeFixProvider.cs (6)
75out var tupleType, out memberAccessExpressions, 91out var tupleType, out memberAccessExpressions, 114private ForEachVariableStatementSyntax CreateForEachVariableStatement(INamedTypeSymbol tupleType, ForEachStatementSyntax forEachStatement) 132INamedTypeSymbol tupleType, LocalDeclarationStatementSyntax declarationStatement, VariableDeclaratorSyntax variableDeclarator) 146private ExpressionSyntax CreateTupleOrDeclarationExpression(INamedTypeSymbol tupleType, TypeSyntax typeNode) 157private static DeclarationExpressionSyntax CreateDeclarationExpression(INamedTypeSymbol tupleType, TypeSyntax typeNode)
src\Analyzers\CSharp\CodeFixes\UseExplicitArrayInExpressionTree\CSharpUseExplicitArrayInExpressionTreeCodeFixProvider.cs (1)
119var arrayType = semanticModel.Compilation.ArrayType();
src\Analyzers\CSharp\CodeFixes\UseExpressionBodyForLambda\UseExpressionBodyForLambdaCodeActionHelpers.cs (3)
82var lambdaType = (INamedTypeSymbol)semanticModel.GetTypeInfo(declaration).ConvertedType!; 102var taskType = semanticModel.Compilation.GetTypeByMetadataName(typeof(Task).FullName!);
src\Analyzers\CSharp\CodeFixes\UseImplicitOrExplicitType\UseExplicitTypeCodeFixProvider.cs (1)
177var elements = ((INamedTypeSymbol)typeSymbol).TupleElements;
src\Analyzers\CSharp\CodeFixes\UseLocalFunction\CSharpUseLocalFunctionCodeFixProvider.cs (3)
102var delegateType = (INamedTypeSymbol)semanticModel.GetTypeInfo(anonymousFunction, cancellationToken).ConvertedType; 178INamedTypeSymbol delegateType, ParameterListSyntax parameterList,
src\Analyzers\CSharp\CodeFixes\UsePrimaryConstructor\CSharpUsePrimaryConstructorCodeFixProvider.cs (5)
123var namedType = semanticModel.GetRequiredDeclaredSymbol(typeDeclaration, cancellationToken); 320INamedTypeSymbol { ContainingType: { } containingType } => CreateDottedName(originalName, currentName, containingType), 331INamedTypeSymbol containingType) 392semanticModel.GetSymbolInfo(baseType.Type, cancellationToken).GetAnySymbol() is INamedTypeSymbol { TypeKind: TypeKind.Class }) 410var baseTypeSymbol = namedType.BaseType;
src\Analyzers\CSharp\CodeFixes\UseSystemThreadingLock\CSharpUseSystemThreadingLockCodeFixProvider.cs (1)
86var lockType = compilation.GetBestTypeByMetadataName("System.Threading.Lock");
src\Analyzers\CSharp\CodeFixes\UseUtf8StringLiteral\UseUtf8StringLiteralCodeFixProvider.cs (2)
48var readOnlySpanType = semanticModel.Compilation.GetBestTypeByMetadataName(typeof(ReadOnlySpan<>).FullName!); 65conversion.Type is INamedTypeSymbol { IsGenericType: true } namedType &&
UsePatternMatching\CSharpIsAndCastCheckWithoutNameCodeFixProvider.cs (1)
52var expressionType = semanticModel.Compilation.ExpressionOfTType();
UsePatternMatching\CSharpIsAndCastCheckWithoutNameDiagnosticAnalyzer.cs (3)
56var expressionType = context.Compilation.ExpressionOfTType(); 63INamedTypeSymbol? expressionType) 111INamedTypeSymbol? expressionType,
Microsoft.CodeAnalysis.CSharp.Features.UnitTests (201)
EditAndContinue\ActiveStatementTests.cs (3)
13644SemanticEdit(SemanticEditKind.Update, c => c.GetMember<INamedTypeSymbol>("C").GetMember("F2")), 13670SemanticEdit(SemanticEditKind.Update, c => c.GetMember<INamedTypeSymbol>("C").GetMember("F")), 13693SemanticEdit(SemanticEditKind.Update, c => c.GetMember<INamedTypeSymbol>("C").GetMember("F")),
EditAndContinue\Helpers\EditingTestBase.cs (2)
123=> new(kind, symbolProvider, (partialType != null) ? c => c.GetMember<INamedTypeSymbol>(partialType) : null, syntaxMap, rudeEdits, hasSyntaxMap: syntaxMap != null, deletedSymbolContainerProvider: null); 126=> new(kind, symbolProvider, (partialType != null) ? c => c.GetMember<INamedTypeSymbol>(partialType) : null, syntaxMap: null, rudeEdits: null, preserveLocalVariables, deletedSymbolContainerProvider);
EditAndContinue\LineEditTests.cs (15)
874SemanticEdit(SemanticEditKind.Update, c => c.GetMember<INamedTypeSymbol>("C").Constructors.Single(c => c.Parameters is [{ Type.SpecialType: SpecialType.System_Boolean }]), preserveLocalVariables: true) 933semanticEdits: [SemanticEdit(SemanticEditKind.Update, c => c.GetMember<INamedTypeSymbol>("C").InstanceConstructors.Single(), preserveLocalVariables: true)]); 1268semanticEdits: [SemanticEdit(SemanticEditKind.Update, c => c.GetMember<INamedTypeSymbol>("C").InstanceConstructors.Single(), preserveLocalVariables: true)]); 1333semanticEdits: [SemanticEdit(SemanticEditKind.Update, c => c.GetMember<INamedTypeSymbol>("C").InstanceConstructors.Single(), preserveLocalVariables: true)], 1420semanticEdits: [SemanticEdit(SemanticEditKind.Update, c => c.GetMember<INamedTypeSymbol>("C").InstanceConstructors.Single(), preserveLocalVariables: true)]); 1578semanticEdits: [SemanticEdit(SemanticEditKind.Update, c => c.GetMember<INamedTypeSymbol>("C").StaticConstructors.Single(), preserveLocalVariables: true)], 1632SemanticEdit(SemanticEditKind.Update, c => c.GetMember<INamedTypeSymbol>("C").InstanceConstructors.Single(), preserveLocalVariables: true) 1715SemanticEdit(SemanticEditKind.Update, c => c.GetMember<INamedTypeSymbol>("C").StaticConstructors.Single(), preserveLocalVariables: true) 1743SemanticEdit(SemanticEditKind.Update, c => c.GetMember<INamedTypeSymbol>("C").StaticConstructors.Single(), preserveLocalVariables: true) 1771SemanticEdit(SemanticEditKind.Update, c => c.GetMember<INamedTypeSymbol>("C").StaticConstructors.Single(), preserveLocalVariables: true) 1799SemanticEdit(SemanticEditKind.Update, c => c.GetMember<INamedTypeSymbol>("C").StaticConstructors.Single(), preserveLocalVariables: true) 1827SemanticEdit(SemanticEditKind.Update, c => c.GetMember<INamedTypeSymbol>("C").StaticConstructors.Single(), preserveLocalVariables: true) 1854SemanticEdit(SemanticEditKind.Update, c => c.GetMember<INamedTypeSymbol>("C").StaticConstructors.Single(), preserveLocalVariables: true) 1887SemanticEdit(SemanticEditKind.Update, c => c.GetMember<INamedTypeSymbol>("C").StaticConstructors.Single(), preserveLocalVariables: true) 2168semanticEdits: [SemanticEdit(SemanticEditKind.Update, c => c.GetMember<INamedTypeSymbol>("C").InstanceConstructors.Single(), preserveLocalVariables: true)]);
EditAndContinue\StatementEditingTests.cs (9)
3984SemanticEdit(SemanticEditKind.Update, c => c.GetMember<INamedTypeSymbol>("C").GetMembers("F").Single(), preserveLocalVariables: true) 5108SemanticEdit(SemanticEditKind.Update, c => c.GetMember<INamedTypeSymbol>("C").InstanceConstructors.Single(m => m.Parameters is [{ Name: "x" }]), preserveLocalVariables: true)); 5133SemanticEdit(SemanticEditKind.Update, c => c.GetMember<INamedTypeSymbol>("C").InstanceConstructors.Single(m => m.Parameters is [_, _]), preserveLocalVariables: true)); 5146SemanticEdit(SemanticEditKind.Update, c => c.GetMember<INamedTypeSymbol>("C").InstanceConstructors.Single(m => m.Parameters is [_, _]), preserveLocalVariables: true)); 5160SemanticEdit(SemanticEditKind.Update, c => c.GetMember<INamedTypeSymbol>("C").InstanceConstructors.Single(m => m.Parameters is [_, _]), preserveLocalVariables: true)); 5678[SemanticEdit(SemanticEditKind.Update, c => c.GetMember<INamedTypeSymbol>("C").InstanceConstructors.Single(m => m.Parameters is [{ Name: "x" }]), preserveLocalVariables: true)], 5702[SemanticEdit(SemanticEditKind.Update, c => c.GetMember<INamedTypeSymbol>("C").InstanceConstructors.Single(m => m.Parameters is [_, _]), preserveLocalVariables: true)], 5715[SemanticEdit(SemanticEditKind.Update, c => c.GetMember<INamedTypeSymbol>("C").InstanceConstructors.Single(m => m.Parameters is [_, _]), preserveLocalVariables: true)], 5730[SemanticEdit(SemanticEditKind.Update, c => c.GetMember<INamedTypeSymbol>("C").InstanceConstructors.Single(m => m.Parameters is [_, _]), preserveLocalVariables: true)],
EditAndContinue\TopLevelEditingTests.cs (171)
960SemanticEdit(SemanticEditKind.Update, c => c.GetMember<INamedTypeSymbol>("C").GetMember("F")) 2319SemanticEdit(SemanticEditKind.Update, c => c.GetMember<INamedTypeSymbol>("I").GetMember("M")) 2641SemanticEdit(SemanticEditKind.Update, c => c.GetMember<INamedTypeSymbol>("C").GetMember("M")), 2650[SemanticEdit(SemanticEditKind.Insert, c => c.GetMember<INamedTypeSymbol>("C"), preserveLocalVariables: false)], 2665SemanticEdit(SemanticEditKind.Insert, c => c.GetMember<INamedTypeSymbol>("C").GetMember("G"), preserveLocalVariables: false) 2712SemanticEdit(SemanticEditKind.Update, c => c.GetMember<INamedTypeSymbol>("C").GetMember("F")), 2713SemanticEdit(SemanticEditKind.Update, c => c.GetMember<INamedTypeSymbol>("S").GetMember("F")), 2714SemanticEdit(SemanticEditKind.Update, c => c.GetMember<INamedTypeSymbol>("I").GetMember("F")), 2771SemanticEdit(SemanticEditKind.Update, c => c.GetMember<INamedTypeSymbol>("C").GetMember("AbstractMethod")), 2772SemanticEdit(SemanticEditKind.Update, c => c.GetMember<INamedTypeSymbol>("C").GetMember("VirtualMethod")), 2773SemanticEdit(SemanticEditKind.Update, c => c.GetMember<INamedTypeSymbol>("C").GetMember("ToString")), 2774SemanticEdit(SemanticEditKind.Update, c => c.GetMember<INamedTypeSymbol>("C").GetMember("I.G")), 2775SemanticEdit(SemanticEditKind.Update, c => c.GetMember<INamedTypeSymbol>("I").GetMember("G")), 2776SemanticEdit(SemanticEditKind.Update, c => c.GetMember<INamedTypeSymbol>("I").GetMember("F")), 2823SemanticEdit(SemanticEditKind.Update, c => c.GetMember<INamedTypeSymbol>("C").GetMember("AbstractMethod")), 2824SemanticEdit(SemanticEditKind.Update, c => c.GetMember<INamedTypeSymbol>("C").GetMember("VirtualMethod")), 2825SemanticEdit(SemanticEditKind.Update, c => c.GetMember<INamedTypeSymbol>("C").GetMember("ToString")), 2826SemanticEdit(SemanticEditKind.Update, c => c.GetMember<INamedTypeSymbol>("C").GetMember("I.G")), 2827SemanticEdit(SemanticEditKind.Update, c => c.GetMember<INamedTypeSymbol>("I").GetMember("G")), 2828SemanticEdit(SemanticEditKind.Update, c => c.GetMember<INamedTypeSymbol>("I").GetMember("F")), 3580SemanticEdit(SemanticEditKind.Update, c => c.GetMember<INamedTypeSymbol>("C").Constructors.Single(c => c.Parameters.Length == 0), preserveLocalVariables: true)); 3592SemanticEdit(SemanticEditKind.Update, c => c.GetMember<INamedTypeSymbol>("C").Constructors.Single(c => c.Parameters[0].Type.ToDisplayString() == "int"), preserveLocalVariables: true)); 6207semanticEdits: [SemanticEdit(SemanticEditKind.Update, c => c.GetMember<INamedTypeSymbol>("C").GetMember("F"))]), 6210semanticEdits: [SemanticEdit(SemanticEditKind.Update, c => c.GetMember<INamedTypeSymbol>("C").GetMember("G"))]), 6288semanticEdits: [SemanticEdit(SemanticEditKind.Update, c => c.GetMember<INamedTypeSymbol>("I").GetMember<INamedTypeSymbol>("C").GetMember("F1"))]), 6296semanticEdits: [SemanticEdit(SemanticEditKind.Update, c => c.GetMember<INamedTypeSymbol>("I").GetMember<INamedTypeSymbol>("C").GetMember("F2"))]), 6726SemanticEdit(SemanticEditKind.Insert, c => c.GetMember<INamedTypeSymbol>("M.C"), partialType: "M.C"), 6731SemanticEdit(SemanticEditKind.Insert, c => c.GetMember<INamedTypeSymbol>("M.C"), partialType: "M.C"), 6991SemanticEdit(SemanticEditKind.Update, c => c.GetMember<INamedTypeSymbol>("C").GetMember("F"), preserveLocalVariables: false) 7087SemanticEdit(SemanticEditKind.Update, c => c.GetMember<INamedTypeSymbol>("C").GetMember("Finalize"), preserveLocalVariables: false), 7257SemanticEdit(SemanticEditKind.Update, c => c.GetMember<INamedTypeSymbol>("C").GetMember<IPropertySymbol>("P").GetMethod), 7258SemanticEdit(SemanticEditKind.Update, c => c.GetMember<INamedTypeSymbol>("C").GetMember<IPropertySymbol>("P").SetMethod) 7272SemanticEdit(SemanticEditKind.Update, c => c.GetMember<INamedTypeSymbol>("C").GetMember<IPropertySymbol>("P").GetMethod) 7314SemanticEdit(SemanticEditKind.Update, c => c.GetMember<INamedTypeSymbol>("C").InstanceConstructors.Single(), partialType: "C", preserveLocalVariables: true) 7427SemanticEdit(SemanticEditKind.Update, c => c.GetMember<INamedTypeSymbol>("C").GetMember<IMethodSymbol>("F"))); 7442SemanticEdit(SemanticEditKind.Update, c => c.GetMember<INamedTypeSymbol>("C").GetMember<IMethodSymbol>("F"))); 7491SemanticEdit(SemanticEditKind.Update, c => c.GetMember<INamedTypeSymbol>("S").GetMember<IMethodSymbol>("M"))); 10784SemanticEdit(SemanticEditKind.Update, c => c.GetMember<INamedTypeSymbol>("C").GetMember("op_Addition")) 10790SemanticEdit(SemanticEditKind.Update, c => c.GetMember<INamedTypeSymbol>("C").GetMember("op_Implicit")) 11182SemanticEdit(SemanticEditKind.Delete, c => c.GetMember<INamedTypeSymbol>("C").InstanceConstructors.Single(), deletedSymbolContainerProvider: c => c.GetMember("C")), 11183SemanticEdit(SemanticEditKind.Insert, c => c.GetMember<INamedTypeSymbol>("C").InstanceConstructors.Single()) 11304SemanticEdit(SemanticEditKind.Delete, c => c.GetMember<INamedTypeSymbol>("C").InstanceConstructors.Single(), deletedSymbolContainerProvider: c => c.GetMember("C")), 11305SemanticEdit(SemanticEditKind.Insert, c => c.GetMember<INamedTypeSymbol>("C").InstanceConstructors.Single()), 11718SemanticEdit(SemanticEditKind.Delete, c => c.GetMember<INamedTypeSymbol>("C").InstanceConstructors.Single(), deletedSymbolContainerProvider: c => c.GetMember("C")), 11719SemanticEdit(SemanticEditKind.Insert, c => c.GetMember<INamedTypeSymbol>("C").InstanceConstructors.Single()) 11877SemanticEdit(SemanticEditKind.Insert, c => c.GetMember<INamedTypeSymbol>("C").InstanceConstructors.Single()) 12434SemanticEdit(SemanticEditKind.Update, c => c.GetMember<INamedTypeSymbol>("C").InstanceConstructors.Single(c => c.Parameters is [{ Name: "a"}]), partialType: "C", preserveLocalVariables: true) 12457SemanticEdit(SemanticEditKind.Update, c => c.GetMember<INamedTypeSymbol>("C").InstanceConstructors.Single(c => c.Parameters is [{ Name: "P"}]), partialType: "C", preserveLocalVariables: true), 12475SemanticEdit(SemanticEditKind.Update, c => c.GetMember<INamedTypeSymbol>("C").InstanceConstructors.Single(c => c.Parameters is [{ Name: "P" }]), partialType: "C", preserveLocalVariables: true), 12498SemanticEdit(SemanticEditKind.Update, c => c.GetMember<INamedTypeSymbol>("C").InstanceConstructors.Single(c => c.Parameters is [{ Name: "P" }]), partialType: "C", preserveLocalVariables: true), 12529SemanticEdit(SemanticEditKind.Update, c => c.GetMember<INamedTypeSymbol>("C").InstanceConstructors.Single(m => m.Parameters is [{ Name: "P" }]), partialType: "C", preserveLocalVariables: true), 12554SemanticEdit(SemanticEditKind.Update, c => c.GetMember<INamedTypeSymbol>("C").InstanceConstructors.Single(m => m.Parameters is [{ Name: "P" }])), 12555SemanticEdit(SemanticEditKind.Update, c => c.GetMember<INamedTypeSymbol>("C").InstanceConstructors.Single(m => m.Parameters is []), partialType: "C", preserveLocalVariables: true), 12629SemanticEdit(SemanticEditKind.Update, c => c.GetMember<INamedTypeSymbol>("C").InstanceConstructors.Single(), preserveLocalVariables: true)); 12662SemanticEdit(SemanticEditKind.Update, c => c.GetMember<INamedTypeSymbol>("C").InstanceConstructors.Single(), preserveLocalVariables: true) 12723SemanticEdit(SemanticEditKind.Update, c => c.GetMember<INamedTypeSymbol>("C").InstanceConstructors.Single(), preserveLocalVariables: true) 12879SemanticEdit(SemanticEditKind.Update, c => c.GetMember<INamedTypeSymbol>("C").InstanceConstructors.Single(), preserveLocalVariables: true) 12913SemanticEdit(SemanticEditKind.Update, c => c.GetMember<INamedTypeSymbol>("C").InstanceConstructors.Single(), preserveLocalVariables: true) 12947SemanticEdit(SemanticEditKind.Update, c => c.GetMember<INamedTypeSymbol>("C").InstanceConstructors.Single(), preserveLocalVariables: true) 12981SemanticEdit(SemanticEditKind.Update, c => c.GetMember<INamedTypeSymbol>("C").InstanceConstructors.Single(), preserveLocalVariables: true) 13023SemanticEdit(SemanticEditKind.Update, c => c.GetMember<INamedTypeSymbol>("C").GetMember<IMethodSymbol>("C").PartialImplementationPart, partialType: "C")); 13053SemanticEdit(SemanticEditKind.Insert, c => c.GetMember<INamedTypeSymbol>("C").InstanceConstructors.Single(c => c.Parameters is [{ Name: "X" }])) 13068SemanticEdit(SemanticEditKind.Insert, c => c.GetMember<INamedTypeSymbol>("C").InstanceConstructors.Single(c => c.Parameters is [{ Name: "X" }])) 13100SemanticEdit(SemanticEditKind.Insert, c => c.GetMember<INamedTypeSymbol>("C").InstanceConstructors.Single(c => c.Parameters is [{ Name: "X"}])), 13267SemanticEdit(SemanticEditKind.Insert, c => c.GetMember<INamedTypeSymbol>("C").InstanceConstructors.Single(m => m.Parameters.Length == 1), partialType: "C") 13274SemanticEdit(SemanticEditKind.Insert, c => c.GetMember<INamedTypeSymbol>("C").InstanceConstructors.Single(m => m.Parameters.Length == 2), partialType: "C") 13500SemanticEdit(SemanticEditKind.Delete, c => c.GetMember<INamedTypeSymbol>("C").InstanceConstructors.Single(c => c.Parameters is [{ Name: "X" }]), deletedSymbolContainerProvider: c => c.GetMember("C")) 13515SemanticEdit(SemanticEditKind.Delete, c => c.GetMember<INamedTypeSymbol>("C").InstanceConstructors.Single(c => c.Parameters is [{ Name: "X" }]), deletedSymbolContainerProvider: c => c.GetMember("C")) 13555SemanticEdit(SemanticEditKind.Delete, c => c.GetMember<INamedTypeSymbol>("C").InstanceConstructors.Single(c => c.Parameters is [{ Name: "X"}]), deletedSymbolContainerProvider: c => c.GetMember("C")), 13677[SemanticEdit(SemanticEditKind.Delete, c => c.GetMember<INamedTypeSymbol>("C").InstanceConstructors.Single(c => c.Parameters is [{ Name: "x" }]), deletedSymbolContainerProvider: c => c.GetMember("C"))], 13690[SemanticEdit(SemanticEditKind.Delete, c => c.GetMember<INamedTypeSymbol>("C").InstanceConstructors.Single(c => c.Parameters is [{ Name: "b" }]), deletedSymbolContainerProvider: c => c.GetMember("C"))], 13703[SemanticEdit(SemanticEditKind.Delete, c => c.GetMember<INamedTypeSymbol>("C").InstanceConstructors.FirstOrDefault(c => c.Parameters.Length == 1), deletedSymbolContainerProvider: c => c.GetMember("C"))], 13765SemanticEdit(SemanticEditKind.Update, c => c.GetMember<INamedTypeSymbol>("C").InstanceConstructors.Single(c => c.Parameters is []), preserveLocalVariables: true)); 13822semanticEdits: [SemanticEdit(SemanticEditKind.Delete, c => c.GetMember<INamedTypeSymbol>("C").InstanceConstructors.Single(m => m.Parameters.Length == 1), deletedSymbolContainerProvider: c => c.GetMember("C"))]), 13825semanticEdits: [SemanticEdit(SemanticEditKind.Delete, c => c.GetMember<INamedTypeSymbol>("C").InstanceConstructors.Single(m => m.Parameters.Length == 2), deletedSymbolContainerProvider: c => c.GetMember("C"))]) 14133[SemanticEdit(SemanticEditKind.Update, c => c.GetMember<INamedTypeSymbol>("C").Constructors.Single(), syntaxMap[0])]); 14182[SemanticEdit(SemanticEditKind.Update, c => c.GetMember<INamedTypeSymbol>("C").Constructors.Single(), syntaxMap[0])]); 14245[SemanticEdit(SemanticEditKind.Update, c => c.GetMember<INamedTypeSymbol>("C").Constructors.Single(), syntaxMap[0])]); 14295[SemanticEdit(SemanticEditKind.Update, c => c.GetMember<INamedTypeSymbol>("C").Constructors.Single(), syntaxMap[0])], 14416SemanticEdit(SemanticEditKind.Update, c => c.GetMember<INamedTypeSymbol>("C").Constructors.Single(c => c.Parameters.Single().Type.Name == "Int32"), partialType: "C", syntaxMap: syntaxMapB), 14417SemanticEdit(SemanticEditKind.Update, c => c.GetMember<INamedTypeSymbol>("C").Constructors.Single(c => c.Parameters.Single().Type.Name == "Boolean"), partialType: "C", syntaxMap: syntaxMapB), 14418SemanticEdit(SemanticEditKind.Update, c => c.GetMember<INamedTypeSymbol>("C").Constructors.Single(c => c.Parameters.Single().Type.Name == "UInt32"), partialType: "C", syntaxMap: syntaxMapB), 14419SemanticEdit(SemanticEditKind.Insert, c => c.GetMember<INamedTypeSymbol>("C").Constructors.Single(c => c.Parameters.Single().Type.Name == "Byte"), partialType: "C"), 14511SemanticEdit(SemanticEditKind.Update, c => c.GetMember<INamedTypeSymbol>("C").GetMember<IMethodSymbol>("F")), 14526SemanticEdit(SemanticEditKind.Update, c => c.GetMember<INamedTypeSymbol>("C").GetMember<IMethodSymbol>("F")), 14605[SemanticEdit(SemanticEditKind.Insert, c => c.GetMember<INamedTypeSymbol>("C").StaticConstructors.Single())], 14621SemanticEdit(SemanticEditKind.Update, c => c.GetMember<INamedTypeSymbol>("C").StaticConstructors.Single(), partialType: "C", preserveLocalVariables: true) 14635SemanticEdit(SemanticEditKind.Update, c => c.GetMember<INamedTypeSymbol>("C").StaticConstructors.Single(), partialType: "C", preserveLocalVariables: true) 14910SemanticEdit(SemanticEditKind.Update, c => c.GetMember<INamedTypeSymbol>("C").Constructors.Single(), preserveLocalVariables: true)); 14923SemanticEdit(SemanticEditKind.Update, c => c.GetMember<INamedTypeSymbol>("C").Constructors.Single(), partialType: "C", preserveLocalVariables: true) 15008SemanticEdit(SemanticEditKind.Update, c => c.GetMember<INamedTypeSymbol>("C").InstanceConstructors.Single(), preserveLocalVariables: true) 15026[SemanticEdit(SemanticEditKind.Update, c => c.GetMember<INamedTypeSymbol>("C").StaticConstructors.Single(), preserveLocalVariables: true)], 15042[SemanticEdit(SemanticEditKind.Update, c => c.GetMember<INamedTypeSymbol>("C").StaticConstructors.Single(), preserveLocalVariables: true)], 15115[SemanticEdit(SemanticEditKind.Update, c => c.GetMember<INamedTypeSymbol>("C").StaticConstructors.Single(), preserveLocalVariables: true)], 15128[SemanticEdit(SemanticEditKind.Update, c => c.GetMember<INamedTypeSymbol>("C").StaticConstructors.Single(), preserveLocalVariables: true)], 15225SemanticEdit(SemanticEditKind.Update, c => c.GetMember<INamedTypeSymbol>("C").InstanceConstructors.Single(m => m.ToString() == "C.C(int)"), preserveLocalVariables: true), 15226SemanticEdit(SemanticEditKind.Update, c => c.GetMember<INamedTypeSymbol>("C").InstanceConstructors.Single(m => m.ToString() == "C.C(string)"), preserveLocalVariables: true), 15244SemanticEdit(SemanticEditKind.Update, c => c.GetMember<INamedTypeSymbol>("C").InstanceConstructors.Single(m => m.ToString() == "C.C(int)"), preserveLocalVariables: true), 15245SemanticEdit(SemanticEditKind.Update, c => c.GetMember<INamedTypeSymbol>("C").InstanceConstructors.Single(m => m.ToString() == "C.C(bool)"), preserveLocalVariables: true), 15260SemanticEdit(SemanticEditKind.Update, c => c.GetMember<INamedTypeSymbol>("C").InstanceConstructors.Single(m => m.ToString() == "C.C(int)"), preserveLocalVariables: true), 15261SemanticEdit(SemanticEditKind.Update, c => c.GetMember<INamedTypeSymbol>("C").InstanceConstructors.Single(m => m.ToString() == "C.C(bool)"), preserveLocalVariables: true), 15276SemanticEdit(SemanticEditKind.Update, c => c.GetMember<INamedTypeSymbol>("C").InstanceConstructors.Single(m => m.ToString() == "C.C(int)"), preserveLocalVariables: true), 15277SemanticEdit(SemanticEditKind.Update, c => c.GetMember<INamedTypeSymbol>("C").InstanceConstructors.Single(m => m.ToString() == "C.C(bool)"), preserveLocalVariables: true), 15295SemanticEdit(SemanticEditKind.Update, c => c.GetMember<INamedTypeSymbol>("C").InstanceConstructors.Single(m => m.ToString() == "C.C(bool)"), preserveLocalVariables: true) 15311[SemanticEdit(SemanticEditKind.Insert, c => c.GetMember<INamedTypeSymbol>("C").StaticConstructors.Single())], 15329[SemanticEdit(SemanticEditKind.Insert, c => c.GetMember<INamedTypeSymbol>("C").StaticConstructors.Single())], 15743SemanticEdit(SemanticEditKind.Update, c => c.GetMember<INamedTypeSymbol>("C").Constructors.Single(), preserveLocalVariables: true) 15758SemanticEdit(SemanticEditKind.Update, c => c.GetMember<INamedTypeSymbol>("C").Constructors.Single(), preserveLocalVariables: true) 15776SemanticEdit(SemanticEditKind.Update, c => c.GetMember<INamedTypeSymbol>("C").Constructors.Single(), preserveLocalVariables: true) 15791SemanticEdit(SemanticEditKind.Update, c => c.GetMember<INamedTypeSymbol>("C").Constructors.Single(), preserveLocalVariables: true) 15880[SemanticEdit(SemanticEditKind.Update, c => c.GetMember<INamedTypeSymbol>("C").Constructors.Single(), syntaxMap[0])]); 15917[SemanticEdit(SemanticEditKind.Update, c => c.GetMember<INamedTypeSymbol>("C").Constructors.Single(), syntaxMap[0])]); 15958[SemanticEdit(SemanticEditKind.Update, c => c.GetMember<INamedTypeSymbol>("C").Constructors.Single(), syntaxMap[0])]); 15999[SemanticEdit(SemanticEditKind.Update, c => c.GetMember<INamedTypeSymbol>("C").Constructors.Single(), syntaxMap[0])]); 16043SemanticEdit(SemanticEditKind.Update, c => c.GetMember<INamedTypeSymbol>("C").Constructors[0], syntaxMap[0]), 16044SemanticEdit(SemanticEditKind.Update, c => c.GetMember<INamedTypeSymbol>("C").Constructors[1], syntaxMap[0]) 16089SemanticEdit(SemanticEditKind.Update, c => c.GetMember<INamedTypeSymbol>("C").Constructors[0], syntaxMap[0]), 16090SemanticEdit(SemanticEditKind.Update, c => c.GetMember<INamedTypeSymbol>("C").Constructors[1], syntaxMap[0]) 16135SemanticEdit(SemanticEditKind.Update, c => c.GetMember<INamedTypeSymbol>("C").Constructors[0], syntaxMap[0]), 16136SemanticEdit(SemanticEditKind.Update, c => c.GetMember<INamedTypeSymbol>("C").Constructors[1], syntaxMap[0]) 16181SemanticEdit(SemanticEditKind.Update, c => c.GetMember<INamedTypeSymbol>("C").Constructors.Single(ctor => ctor.ToTestDisplayString() == "C..ctor(System.Int32 a)"), syntaxMap[0]) 16226SemanticEdit(SemanticEditKind.Update, c => c.GetMember<INamedTypeSymbol>("C").Constructors.Single(ctor => ctor.ToTestDisplayString() == "C..ctor(System.Int32 a)"), syntaxMap[0]) 16271SemanticEdit(SemanticEditKind.Update, c => c.GetMember<INamedTypeSymbol>("C").Constructors.Single(ctor => ctor.ToTestDisplayString() == "C..ctor(System.Boolean b)"), syntaxMap[0]) 16316SemanticEdit(SemanticEditKind.Update, c => c.GetMember<INamedTypeSymbol>("C").Constructors.Single(ctor => ctor.ToTestDisplayString() == "C..ctor(System.Boolean b)")) 16361SemanticEdit(SemanticEditKind.Update, c => c.GetMember<INamedTypeSymbol>("C").Constructors.Single(ctor => ctor.ToTestDisplayString() == "C..ctor(System.Boolean b)"), syntaxMap[0]) 16405SemanticEdit(SemanticEditKind.Update, c => c.GetMember<INamedTypeSymbol>("C").Constructors.Single(ctor => ctor.ToTestDisplayString() == "C..ctor(System.Boolean b)")) 16466SemanticEdit(SemanticEditKind.Update, c => c.GetMember<INamedTypeSymbol>("C").Constructors.Single(ctor => ctor.ToTestDisplayString() == "C..ctor(System.Boolean b)"), syntaxMap[0]) 16507SemanticEdit(SemanticEditKind.Update, c => c.GetMember<INamedTypeSymbol>("C").Constructors.Single(), syntaxMap[0]) 16548SemanticEdit(SemanticEditKind.Update, c => c.GetMember<INamedTypeSymbol>("C").Constructors.Single(), syntaxMap[0]) 16614SemanticEdit(SemanticEditKind.Update, c => c.GetMember<INamedTypeSymbol>("C").InstanceConstructors.Single(c => c.Parameters is [_, _]), preserveLocalVariables: true), 16656SemanticEdit(SemanticEditKind.Update, c => c.GetMember<INamedTypeSymbol>("C").Constructors[0], syntaxMap[0]), 16657SemanticEdit(SemanticEditKind.Update, c => c.GetMember<INamedTypeSymbol>("C").Constructors[1], syntaxMap[0]), 16695SemanticEdit(SemanticEditKind.Update, c => ((IPropertySymbol)c.GetMember<INamedTypeSymbol>("C").GetMembers("P").First()).GetMethod), 17346SemanticEdit(SemanticEditKind.Update, c => c.GetMember<INamedTypeSymbol>("C").Constructors.Single(), syntaxMap[0]) 17390SemanticEdit(SemanticEditKind.Update, c => c.GetMember<INamedTypeSymbol>("C").Constructors.Single(), syntaxMap[0]) 17545SemanticEdit(SemanticEditKind.Insert, c => c.GetMember<INamedTypeSymbol>("C").Constructors.Single()), 18051SemanticEdit(SemanticEditKind.Update, c => c.GetMember<INamedTypeSymbol>("C").GetMember<IPropertySymbol>("P").SetMethod)); 18156SemanticEdit(SemanticEditKind.Update, c => c.GetMember<INamedTypeSymbol>("C").GetMember<IPropertySymbol>("P").SetMethod), 18172SemanticEdit(SemanticEditKind.Update, c => c.GetMember<INamedTypeSymbol>("C").GetMember<IPropertySymbol>("P").SetMethod, preserveLocalVariables: false), 18784[SemanticEdit(SemanticEditKind.Update, c => c.GetMember<INamedTypeSymbol>("C").GetMember<IPropertySymbol>("P").SetMethod)], 18801[SemanticEdit(SemanticEditKind.Insert, c => c.GetMember<INamedTypeSymbol>("C").GetMember("P"))], 18814[SemanticEdit(SemanticEditKind.Insert, c => c.GetMember<INamedTypeSymbol>("C").GetMember("P"))], 18964[SemanticEdit(SemanticEditKind.Insert, c => c.GetMember<INamedTypeSymbol>("C").GetMember("P"))], 18983[SemanticEdit(SemanticEditKind.Insert, c => c.GetMember<INamedTypeSymbol>("C").GetMember("P"))], 19002[SemanticEdit(SemanticEditKind.Insert, c => c.GetMember<INamedTypeSymbol>("C").GetMember("P"))], 19021[SemanticEdit(SemanticEditKind.Insert, c => c.GetMember<INamedTypeSymbol>("C").GetMember("P"))], 19040[SemanticEdit(SemanticEditKind.Insert, c => c.GetMember<INamedTypeSymbol>("C").GetMember("P"))], 19067[SemanticEdit(SemanticEditKind.Insert, c => c.GetMember<INamedTypeSymbol>("C").GetMember("P"))], 19090[SemanticEdit(SemanticEditKind.Insert, c => c.GetMember<INamedTypeSymbol>("C").GetMember("P"))], 19117[SemanticEdit(SemanticEditKind.Insert, c => c.GetMember<INamedTypeSymbol>("C").GetMember("P"))], 19547SemanticEdit(SemanticEditKind.Update, c => c.GetMember<INamedTypeSymbol>("C").GetMember<IPropertySymbol>("P").GetMethod), 19548SemanticEdit(SemanticEditKind.Update, c => c.GetMember<INamedTypeSymbol>("C").GetMember<IPropertySymbol>("P").SetMethod) 19564SemanticEdit(SemanticEditKind.Update, c => c.GetMember<INamedTypeSymbol>("C").GetMember<IPropertySymbol>("Q").GetMethod), 19565SemanticEdit(SemanticEditKind.Update, c => c.GetMember<INamedTypeSymbol>("C").GetMember<IPropertySymbol>("Q").SetMethod) 19584SemanticEdit(SemanticEditKind.Update, c => c.GetMember<INamedTypeSymbol>("C").GetMember<IPropertySymbol>("P").GetMethod), 19585SemanticEdit(SemanticEditKind.Update, c => c.GetMember<INamedTypeSymbol>("C").GetMember<IPropertySymbol>("P").SetMethod), 19586SemanticEdit(SemanticEditKind.Update, c => c.GetMember<INamedTypeSymbol>("C").GetMember<IPropertySymbol>("Q").GetMethod), 19587SemanticEdit(SemanticEditKind.Update, c => c.GetMember<INamedTypeSymbol>("C").GetMember<IPropertySymbol>("Q").SetMethod), 19605SemanticEdit(SemanticEditKind.Update, c => c.GetMember<INamedTypeSymbol>("C").GetMember<IPropertySymbol>("P").GetMethod), 19606SemanticEdit(SemanticEditKind.Update, c => c.GetMember<INamedTypeSymbol>("C").GetMember<IPropertySymbol>("P").SetMethod), 19621semanticEdits: [SemanticEdit(SemanticEditKind.Update, c => c.GetMember<INamedTypeSymbol>("C").GetMember<IPropertySymbol>("P").GetMethod)]), 19713SemanticEdit(SemanticEditKind.Update, c => c.GetMember<INamedTypeSymbol>("S").GetMember<IPropertySymbol>("P2").GetMethod, preserveLocalVariables: false), 19714SemanticEdit(SemanticEditKind.Update, c => c.GetMember<INamedTypeSymbol>("S").GetMember<IPropertySymbol>("P3").SetMethod, preserveLocalVariables: false) 20896[SemanticEdit(SemanticEditKind.Insert, c => c.GetMember<INamedTypeSymbol>("C").GetMember<IPropertySymbol>("this[]").SetMethod)], 21324SemanticEdit(SemanticEditKind.Insert, c => c.GetMember<INamedTypeSymbol>("C").GetMember("E")) 21496SemanticEdit(SemanticEditKind.Update, c => c.GetMember<INamedTypeSymbol>("C").GetMember<IEventSymbol>("E").AddMethod), 21497SemanticEdit(SemanticEditKind.Update, c => c.GetMember<INamedTypeSymbol>("C").GetMember<IEventSymbol>("E").RemoveMethod) 22079SemanticEdit(SemanticEditKind.Update, c => c.GetMember<INamedTypeSymbol>("C").InstanceConstructors.Single(), preserveLocalVariables: true) 22241SemanticEdit(SemanticEditKind.Update, c => c.GetMember<INamedTypeSymbol>("C").InstanceConstructors.Single(), preserveLocalVariables: true)
ExtractClass\ExtractClassTests.cs (1)
2957INamedTypeSymbol originalSymbol,
Microsoft.CodeAnalysis.CSharp.IOperation.UnitTests (2)
IOperation\IOperationTests_IFieldReferenceExpression.cs (2)
708var classSym = (INamedTypeSymbol)model.GetDeclaredSymbol(classDecl);
Microsoft.CodeAnalysis.CSharp.Scripting.UnitTests (8)
InteractiveSessionTests.cs (8)
489var c2C2 = (INamedTypeSymbol)lookupMember(compilation2, "Submission#1", "C2"); 490var c2C1 = c2C2.BaseType; 500var c3C3 = (INamedTypeSymbol)lookupMember(compilation3, "Submission#2", "C3"); 501var c3C1 = c3C3.BaseType; 505INamedTypeSymbol lookupType(Compilation c, string name) 507return c.GlobalNamespace.GetMembers(name).Single() as INamedTypeSymbol;
Microsoft.CodeAnalysis.CSharp.Semantic.UnitTests (120)
Semantics\AccessCheckTests.cs (33)
740INamedTypeSymbol classA = globalNS.GetMembers("A").Single() as INamedTypeSymbol; 744INamedTypeSymbol classADerived = globalNS.GetMembers("ADerived").Single() as INamedTypeSymbol; 745INamedTypeSymbol classADerived2 = globalNS.GetMembers("ADerived2").Single() as INamedTypeSymbol; 746INamedTypeSymbol classB = globalNS.GetMembers("B").Single() as INamedTypeSymbol; 747INamedTypeSymbol classK = classA.GetMembers("K").Single() as INamedTypeSymbol; 860INamedTypeSymbol classOther = otherGlobalNS.GetMembers("Other").Single() as INamedTypeSymbol; 901INamedTypeSymbol Outer = globalNS.GetMembers("Outer").Single() as INamedTypeSymbol; 902INamedTypeSymbol Outer_Inner = Outer.GetMembers("Inner").Single() as INamedTypeSymbol; 908INamedTypeSymbol Other = globalNS.GetMembers("Other").Single() as INamedTypeSymbol; 909INamedTypeSymbol Private = globalNS.GetMembers("Private").Single() as INamedTypeSymbol; 912INamedTypeSymbol Derived = globalNS.GetMembers("Derived").Single() as INamedTypeSymbol; 936INamedTypeSymbol InOtherCompilation = c2.GlobalNamespace.GetMember("InOtherCompilation") as INamedTypeSymbol; 943INamedTypeSymbol InFriendCompilation = c3.GlobalNamespace.GetMember("InFriendCompilation") as INamedTypeSymbol; 959var classC = compilation.GlobalNamespace.GetMembers("C").OfType<INamedTypeSymbol>().Single(); 960var classQ = compilation.GlobalNamespace.GetMembers("Q").OfType<INamedTypeSymbol>().Single(); 969var c2 = ((Compilation)c).GlobalNamespace.GetMembers("C").OfType<INamedTypeSymbol>().Single(); 973classQ = ((Compilation)c).GlobalNamespace.GetMembers("Q").OfType<INamedTypeSymbol>().Single();
Semantics\DeconstructionTests.cs (4)
4273Assert.Equal(TypeKind.Error, ((INamedTypeSymbol)typeInfo.Type).TypeArguments[0].TypeKind); 4274Assert.Equal(TypeKind.Error, ((INamedTypeSymbol)typeInfo.Type).TypeArguments[1].TypeKind); 4532Assert.Equal(TypeKind.Error, ((INamedTypeSymbol)typeInfo.Type).TypeArguments[0].TypeKind); 4533Assert.Equal(TypeKind.Error, ((INamedTypeSymbol)typeInfo.Type).TypeArguments[1].TypeKind);
Semantics\DelegateTypeTests.cs (7)
905Assert.True(HaveMatchingSignatures(((INamedTypeSymbol)typeInfo.Type!).DelegateInvokeMethod!, method)); 948Assert.True(HaveMatchingSignatures(((INamedTypeSymbol)typeInfo.Type!).DelegateInvokeMethod!, method)); 8157Assert.True(HaveMatchingSignatures(((INamedTypeSymbol)typeInfo.Type!).DelegateInvokeMethod!, method)); 14482var delegateType = (INamedTypeSymbol)local.Type; 14499var type = (INamedTypeSymbol)model.GetTypeInfo(variable).Type!;
Semantics\InitOnlyMemberTests.cs (6)
4259var s = verifier.Compilation.GetTypeByMetadataName("S"); 4298var s = verifier.Compilation.GetTypeByMetadataName("S"); 4338var s = verifier.Compilation.GetTypeByMetadataName("S"); 4380var s = ((Compilation)comp).GetTypeByMetadataName("S"); 4403var s = ((Compilation)comp).GetTypeByMetadataName("S"); 4434var s = verifier.Compilation.GetTypeByMetadataName("S");
Semantics\InteractiveSemanticModelTests.cs (2)
43var symbol = model.GetDeclaredSymbol(classB); 44var baseType = symbol?.BaseType;
Semantics\LambdaTests.cs (2)
3946var expectedAttributeType = expectedAttributeConstructor.ContainingType; 3979var attrType = comp.GetMember<NamedTypeSymbol>("AAttribute").GetPublicSymbol();
Semantics\LocalFunctionTests.cs (3)
398var attrType = comp.GlobalNamespace.GetTypeMember("A"); 1789var clsCompliantSymbol = comp.GlobalNamespace 1864var clsCompliantSymbol = comp.GlobalNamespace
Semantics\LookupTests.cs (6)
690var baseExprType = (INamedTypeSymbol)baseExprInfo.Type; 1529INamedTypeSymbol typeInnerZ = namespaceY.GetTypeMembers("InnerZ").Single(); 1533var typeA = (INamedTypeSymbol)actual_lookupSymbols.Where((sym) => sym.Name.Equals("A") && sym.Kind == SymbolKind.NamedType).Single(); 1534INamedTypeSymbol typeB = typeA.GetTypeMembers("B").Single();
Semantics\NameOfTests.cs (1)
3069var igooType = compilation.GetTypeByMetadataName("IGoo`1").GetPublicSymbol();
Semantics\NativeIntegerTests.cs (31)
240private static void VerifyType(INamedTypeSymbol type, bool signed, bool isNativeInt) 255private static void VerifyTypes(INamedTypeSymbol underlyingType, INamedTypeSymbol nativeIntegerType, bool signed) 280private static void VerifyInterfaces(INamedTypeSymbol underlyingType, ImmutableArray<INamedTypeSymbol> underlyingInterfaces, INamedTypeSymbol nativeIntegerType, ImmutableArray<INamedTypeSymbol> nativeIntegerInterfaces) 289void verifyInterface(INamedTypeSymbol underlyingInterface, INamedTypeSymbol nativeIntegerInterface) 302private static void VerifyMembers(INamedTypeSymbol underlyingType, INamedTypeSymbol nativeIntegerType, bool signed) 513private static void VerifyMembers(INamedTypeSymbol type) 532static void verifyMembers(INamedTypeSymbol type, ImmutableArray<ISymbol> allMembers, ImmutableArray<ISymbol> members) 541static void verifyMember(INamedTypeSymbol type, ISymbol member) 737private static void VerifyErrorType(INamedTypeSymbol type, SpecialType specialType, bool isNativeInt) 759private static void VerifyErrorTypes(INamedTypeSymbol underlyingType, INamedTypeSymbol nativeIntegerType, bool signed) 1626var type = comp.CreateNativeIntegerTypeSymbol(signed); 1629var underlyingType = type.NativeIntegerUnderlyingType; 1632Assert.Same(underlyingType, ((INamedTypeSymbol)type.WithNullableAnnotation(CodeAnalysis.NullableAnnotation.None)).NativeIntegerUnderlyingType); 1633Assert.Same(underlyingType, ((INamedTypeSymbol)type.WithNullableAnnotation(CodeAnalysis.NullableAnnotation.Annotated)).NativeIntegerUnderlyingType); 1634Assert.Same(underlyingType, ((INamedTypeSymbol)type.WithNullableAnnotation(CodeAnalysis.NullableAnnotation.NotAnnotated)).NativeIntegerUnderlyingType); 3641var underlyingType = model.GetDeclaredSymbol(nodes.OfType<ClassDeclarationSyntax>().Single()); 15326var nintSymbol = (INamedTypeSymbol)model.GetSymbolInfo(cref).Symbol; 15347var nintSymbol = (INamedTypeSymbol)model.GetSymbolInfo(cref).Symbol; 15370var symbol = (INamedTypeSymbol)model.GetSymbolInfo(cref).Symbol; 15421var symbol = (INamedTypeSymbol)model.GetSymbolInfo(cref).Symbol;
Semantics\ReadOnlyStructsTests.cs (7)
1190var s1 = (INamedTypeSymbol)comp.GetSymbolsWithName("S1").Single(); 1211var s2 = comp.GetMember<INamedTypeSymbol>("S2"); 1227static IMethodSymbol getMethod(INamedTypeSymbol symbol, string name) => (IMethodSymbol)symbol.GetMembers(name).Single(); 1228static IPropertySymbol getProperty(INamedTypeSymbol symbol, string name) => (IPropertySymbol)symbol.GetMembers(name).Single(); 1229static IEventSymbol getEvent(INamedTypeSymbol symbol, string name) => (IEventSymbol)symbol.GetMembers(name).Single();
Semantics\RecordStructTests.cs (2)
1834var c = verifier.Compilation.GlobalNamespace.GetTypeMember("C"); 1881var c = verifier.Compilation.GlobalNamespace.GetTypeMember("C");
Semantics\StructConstructorTests.cs (1)
4893private static void VerifyExplicitlyDeclaredInstanceConstructors(INamedTypeSymbol type, params string[] expectedConstructors)
Semantics\TopLevelStatementsTests.cs (11)
1680var testType = ((Compilation)comp).GetTypeByMetadataName("Test"); 1853var testType = ((Compilation)comp).GetTypeByMetadataName("Test"); 2079var testType = ((Compilation)comp).GetTypeByMetadataName("Test"); 2243var testType = ((Compilation)comp).GetTypeByMetadataName("Test"); 2421var testType = ((Compilation)comp).GetTypeByMetadataName("Test"); 3936var testType = ((Compilation)comp).GetTypeByMetadataName("args"); 4085var testType = ((Compilation)comp).GetTypeByMetadataName("args"); 6231var a = ((Compilation)comp).SourceModule.GlobalNamespace.GetTypeMember("A"); 6275var a = ((Compilation)comp).SourceModule.GlobalNamespace.GetTypeMember("A"); 6315var a = ((Compilation)comp).SourceModule.GlobalNamespace.GetTypeMember("A"); 6365var a = ((Compilation)comp).SourceModule.GlobalNamespace.GetTypeMember("A");
SourceGeneration\GeneratorDriverTests.cs (3)
140var generatedClass = outputCompilation.GlobalNamespace.GetTypeMembers("GeneratedClass").Single(); 918INamedTypeSymbol? dSymbol = null; 945INamedTypeSymbol? dSymbol = null;
SourceGeneration\SyntaxAwareGeneratorTests.cs (1)
790var dType = ctx.SemanticModel.Compilation.GetTypeByMetadataName("D");
Microsoft.CodeAnalysis.CSharp.Symbol.UnitTests (473)
Compilation\CompilationAPITests.cs (31)
2460var elementType = comp.GetSpecialType(SpecialType.System_Object); 2489var elementType = comp.GetSpecialType(SpecialType.System_Object); 2605var type = compilation.CreateAnonymousTypeSymbol( 2624var type = compilation.CreateAnonymousTypeSymbol( 2641var type = compilation.CreateAnonymousTypeSymbol( 2660var type = comp.CreateAnonymousTypeSymbol(memberTypes, memberNames); 2687var type = comp.CreateAnonymousTypeSymbol(ImmutableArray<ITypeSymbol>.Empty, ImmutableArray<string>.Empty, memberNullableAnnotations: ImmutableArray<CodeAnalysis.NullableAnnotation>.Empty); 2700var type = comp.CreateAnonymousTypeSymbol(memberTypes, memberNames); 2741var intType = compilation.GetSpecialType(SpecialType.System_Int32).GetPublicSymbol(); 2758var intType = compilation.GetSpecialType(SpecialType.System_Int32).GetPublicSymbol(); 2759var boolType = compilation.GetSpecialType(SpecialType.System_Boolean).GetPublicSymbol(); 2769var fakeIntType = compilation.CreateErrorTypeSymbol(compilation.CreateErrorNamespaceSymbol(compilation.GlobalNamespace, "System"), "Int32", arity: 0); 2778var intType = compilation.GetSpecialType(SpecialType.System_Int32).GetPublicSymbol(); 2788var intType = compilation.GetSpecialType(SpecialType.System_Int32).GetPublicSymbol(); 2789var nullableIntType = compilation.GetSpecialType(SpecialType.System_Nullable_T).GetPublicSymbol().Construct(intType); 2816var intType = compilation.GetSpecialType(SpecialType.System_Int32).GetPublicSymbol(); 2836var intType = compilation.GetSpecialType(SpecialType.System_Int32).GetPublicSymbol(); 2871var intType = compilation.GetSpecialType(SpecialType.System_Int32).GetPublicSymbol(); 2903var intType = compilation.GetSpecialType(SpecialType.System_Int32).GetPublicSymbol(); 2937var intType = compilation.GetSpecialType(SpecialType.System_Int32).GetPublicSymbol(); 2949var boolType = compilation.GetSpecialType(SpecialType.System_Boolean).GetPublicSymbol(); 2959var fakeIntType = compilation.CreateErrorTypeSymbol(compilation.CreateErrorNamespaceSymbol(compilation.GlobalNamespace, "System"), "Int32", arity: 0); 2968var intType = compilation.GetSpecialType(SpecialType.System_Int32).GetPublicSymbol(); 2978var intType = compilation.GetSpecialType(SpecialType.System_Int32).GetPublicSymbol(); 2979var nullableIntType = compilation.GetSpecialType(SpecialType.System_Nullable_T).GetPublicSymbol().Construct(intType); 3014var intType = compilation.GetSpecialType(SpecialType.System_Int32).GetPublicSymbol(); 3030var genericType = (INamedTypeSymbol)comp.GetMember("Pair"); 3036var type = genericType.Construct(typeArguments, default); 3643var type = ((Compilation)current).GetTypeByMetadataName("C"); 3671var type = ((Compilation)current).GetTypeByMetadataName("C");
Compilation\GetSemanticInfoTests.cs (89)
389var tsym = comp.SourceModule.GlobalNamespace.GetTypeMembers("Test").FirstOrDefault(); 1166var systemActionType = GetSystemActionType(comp); 1195var systemActionType = GetSystemActionType(comp); 1220var systemActionType = GetSystemActionType(comp); 1243var systemActionType = GetSystemActionType(comp); 1269var systemActionType = GetSystemActionType(comp); 1272var eventSymbol = comp.GlobalNamespace.GetMember<INamedTypeSymbol>("C").GetMember<IEventSymbol>("E"); 1297var systemActionType = GetSystemActionType(comp); 1300var eventSymbol = comp.GlobalNamespace.GetMember<INamedTypeSymbol>("C").GetMember<IEventSymbol>("E"); 1327var eventSymbol = comp.GlobalNamespace.GetMember<INamedTypeSymbol>("C").GetMember<IEventSymbol>("E"); 1354var eventSymbol = comp.GlobalNamespace.GetMember<INamedTypeSymbol>("C").GetMember<IEventSymbol>("E"); 1383private static INamedTypeSymbol GetSystemActionType(CSharpCompilation comp) 1388private static INamedTypeSymbol GetSystemActionType(Compilation comp) 1390return (INamedTypeSymbol)comp.GlobalNamespace.GetMember<INamespaceSymbol>("System").GetMembers("Action").Where(s => !((INamedTypeSymbol)s).IsGenericType).Single(); 1614Assert.Equal(comp.GlobalNamespace.GetMember<INamedTypeSymbol>("A"), symbol.ContainingSymbol); //from the type, not the method 1890var type = (INamedTypeSymbol)bindInfo.Symbol; 2223var classC = comp.GlobalNamespace.GetMember<INamedTypeSymbol>("C"); 2720var type = comp.GlobalNamespace.GetMember<INamedTypeSymbol>("C"); 2791var operatorSymbol = comp.GlobalNamespace.GetMember<INamedTypeSymbol>("C").GetMember<IMethodSymbol>(operatorName); 2837var conversions = comp.GlobalNamespace.GetMember<INamedTypeSymbol>("S").GetMembers(WellKnownMemberNames.ExplicitConversionName); 2928var operators = comp.GlobalNamespace.GetMember<INamedTypeSymbol>("UnaryOperator").GetMembers(WellKnownMemberNames.UnaryPlusOperatorName); 3020var operators = comp.GlobalNamespace.GetMember<INamedTypeSymbol>("IncrementOperator").GetMembers(WellKnownMemberNames.IncrementOperatorName); 3094var operators = comp.GlobalNamespace.GetMember<INamedTypeSymbol>("C").GetMembers(WellKnownMemberNames.AdditionOperatorName); 3168var operators = comp.GlobalNamespace.GetMember<INamedTypeSymbol>("C").GetMembers(WellKnownMemberNames.AdditionOperatorName); 3243var operators = comp.GlobalNamespace.GetMember<INamedTypeSymbol>("C").GetMembers(WellKnownMemberNames.AdditionOperatorName).Cast<IMethodSymbol>(); 3327var gType = comp.GlobalNamespace.GetMember<INamedTypeSymbol>("G"); 3328var mngMethod = (IMethodSymbol)comp.GlobalNamespace.GetMember<INamedTypeSymbol>("Z").GetMembers("MNG").First(); 3393var gType = comp.GlobalNamespace.GetMember<INamedTypeSymbol>("G"); 3394var mngMethod = (IMethodSymbol)comp.GlobalNamespace.GetMember<INamedTypeSymbol>("Z").GetMembers("MNG").First(); 3790Assert.Equal(compilation.GlobalNamespace.GetMember<INamedTypeSymbol>("C").GetMember<IMethodSymbol>("M"), info.CandidateSymbols.Single()); 3850Assert.Equal(compilation.GlobalNamespace.GetMember<INamedTypeSymbol>("C").GetMember<IMethodSymbol>("M"), info.CandidateSymbols.Single()); 3917Assert.Equal(compilation.GlobalNamespace.GetMember<INamedTypeSymbol>("IA").GetMember<IPropertySymbol>("P"), info.Symbol); 4056comp.Assembly.GlobalNamespace.GetMember<INamedTypeSymbol>("Program").GetMembers("Any"). 4117Assert.Equal(SpecialType.System_Int32, ((INamedTypeSymbol)info0.Symbol).TypeArguments.Single().SpecialType); 4125Assert.Equal(SpecialType.System_Int32, ((INamedTypeSymbol)info2.Symbol).TypeArguments.Single().SpecialType); 4176Assert.Equal(SpecialType.System_Int32, ((INamedTypeSymbol)info2.Symbol).TypeArguments.Single().SpecialType); 4429var classA = global.GetMember<INamedTypeSymbol>("A"); 4430var classNested = classA.GetMember<INamedTypeSymbol>("Nested"); 4431var classAnother = classNested.GetMember<INamedTypeSymbol>("Another"); 4483var classA = global.GetMember<INamedTypeSymbol>("A"); 4484var classNested = classA.GetMember<INamedTypeSymbol>("Nested"); 4529var classA = global.GetMember<INamedTypeSymbol>("A"); 4530var classNested = classA.GetMember<INamedTypeSymbol>("Nested"); 4677var classA = global.GetMember<INamedTypeSymbol>("A"); 4679var classC = global.GetMember<INamedTypeSymbol>("C"); 4722var classA = global.GetMember<INamedTypeSymbol>("A"); 4724var classC = global.GetMember<INamedTypeSymbol>("C"); 5399var objectType = compilation.GetSpecialType(SpecialType.System_Object); 5405var type = (INamedTypeSymbol)model.GetDeclaredSymbol(root.Members[0]); 5417type = (INamedTypeSymbol)model.GetDeclaredSymbol(root.Members[1]); 5523var otherFuncType = comp.GetWellKnownType(WellKnownType.System_Func_T).Construct(comp.GetSpecialType(SpecialType.System_Int32)); 5537var otherFuncType = comp.GetWellKnownType(WellKnownType.System_Func_T).Construct(comp.GetSpecialType(SpecialType.System_Int32)); 5584var typeC = comp.GlobalNamespace.GetMember<INamedTypeSymbol>("C"); 5622var typeB = comp.GlobalNamespace.GetMember<INamedTypeSymbol>("B"); 5623var typeFuncB = comp.GetWellKnownType(WellKnownType.System_Func_T).Construct(typeB); 5669var typeC = comp.GlobalNamespace.GetMember<INamedTypeSymbol>("C"); 5670var typeFuncC = comp.GetWellKnownType(WellKnownType.System_Func_T).Construct(typeC); 5723var typeA = global.GetMember<INamedTypeSymbol>("A"); 5724var typeB = global.GetMember<INamedTypeSymbol>("B"); 5725var typeC = global.GetMember<INamedTypeSymbol>("C"); 5727var typeInt = comp.GetSpecialType(SpecialType.System_Int32); 5728var typeFunc = comp.GetWellKnownType(WellKnownType.System_Func_T2); 5729var typeFuncA = typeFunc.Construct(typeInt, typeA); 5730var typeFuncB = typeFunc.Construct(typeInt, typeB); 5731var typeFuncC = typeFunc.Construct(typeInt, typeC);
Compilation\QueryClauseInfoTests.cs (2)
21var obj = c.GetSpecialType(SpecialType.System_Object); 22var int32 = c.GetSpecialType(SpecialType.System_Int32);
Compilation\SemanticModelAPITests.cs (36)
591var cbasetype = info.Symbol as INamedTypeSymbol; 593var c = comp.GlobalNamespace.GetTypeMembers("C", 1).Single(); 614var at2 = info.Symbol as INamedTypeSymbol; 617var a = comp.GlobalNamespace.GetTypeMembers("A", 1).Single(); 619var b = comp.GlobalNamespace.GetTypeMembers("B", 1).Single(); 734var a = comp.GlobalNamespace.GetTypeMembers("A", 0).Single(); 754var a1 = model.GetDeclaredSymbol(adecl); 755var b1 = model.GetDeclaredSymbol(bdecl); 758var a2 = global.GetTypeMembers("A", 0).Single(); 759var b2 = a2.GetTypeMembers("B", 0).Single(); 784var mainType = model.GetDeclaredSymbol(mainDecl); 787var aType = model.GetDeclaredSymbol(aDecl); 790var abType = model.GetDeclaredSymbol(abDecl); 793var bType = model.GetDeclaredSymbol(bDecl); 824var bOuter = comp.GlobalNamespace.GetTypeMembers("B", 0).Single(); 825var bInner = (comp.GlobalNamespace.GetMembers("N").Single() as INamespaceSymbol).GetTypeMembers("B", 0).Single(); 867var pTypeSym = comp.SourceModule.GlobalNamespace.GetTypeMembers("PC").Single(); 874var ptSym01 = model.GetDeclaredSymbol(pType01); 875var ptSym02 = model.GetDeclaredSymbol(pType02); 1368Assert.Equal(comp.GlobalNamespace.GetMember<INamedTypeSymbol>("C"), symbol.ContainingType); 1720var classQ = comp.GlobalNamespace.GetMember<INamedTypeSymbol>("Q"); 2084Assert.Equal(comp.GlobalNamespace.GetMember<INamedTypeSymbol>("C"), symbol.ContainingType); 2101Assert.Equal(comp.GlobalNamespace.GetMember<INamedTypeSymbol>("C"), symbol.ContainingType); 3776var stringType = comp.GetSpecialType(SpecialType.System_String); 3777var actionType = comp.GetWellKnownType(WellKnownType.System_Action_T).Construct(stringType); 3954var type1 = comp.GetSpecialType(SpecialType.System_Nullable_T).Construct(comp.GetSpecialType(SpecialType.System_Int32)); 3961var type2 = comp.GetSpecialType(SpecialType.System_Nullable_T).Construct(comp.GetSpecialType(SpecialType.System_Int32)); 4531var type = (INamedTypeSymbol)typeInfo.Type; 4595var type = (INamedTypeSymbol)typeInfo.Type; 4609var type = (INamedTypeSymbol)typeInfo.Type;
Compilation\SemanticModelGetDeclaredSymbolAPITests.cs (68)
150var symbol = model.GetDeclaredSymbol(classC); 175var symbol = model.GetDeclaredSymbol(classY); 193var symbol = model.GetDeclaredSymbol(enumE); 216var symbol = model.GetDeclaredSymbol(classY); 239var symbol = model.GetDeclaredSymbol(classY); 259var typeSymbol = model.GetDeclaredSymbol(typeDecl); 942var structSymbol = model.GetDeclaredSymbol(typeDecl); 956var enumSymbol = model.GetDeclaredSymbol(enumDecl); 964var itfcSymbol = model.GetDeclaredSymbol(typeDecl); 1008var symbol = model.GetDeclaredSymbol(typeDecl); 1629var symbolC = model.GetDeclaredSymbol(typeDeclC); 1667var symbolC = model.GetDeclaredSymbol(typeDeclC); 1718var type = model.GetDeclaredSymbol(typeDecl); 1767var baseType = compilation.GetSpecialType(SpecialType.System_Object); 1776var valueType = compilation.GetSpecialType(SpecialType.System_Int32); 1823var type = compilation.GetSpecialType(SpecialType.System_Collections_Generic_IList_T); 1935var method = compilation.GlobalNamespace.GetMember<INamedTypeSymbol>("E").GetMember<IMethodSymbol>("M"); 1975method = compilation.GlobalNamespace.GetMember<INamedTypeSymbol>("C").GetMember<IMethodSymbol>("M"); 2788var typeB = n1.GetTypeMembers("B").First() as INamedTypeSymbol; 2792var classB = model.GetDeclaredSymbol(nsSyntax.Members[0] as TypeDeclarationSyntax); 2971var sym1 = globalNS.GetMembers("CGoo").First() as INamedTypeSymbol; 2980var sym2 = sym1.GetMembers("IGoo").First() as INamedTypeSymbol; 2982var dsym2 = model.GetDeclaredSymbol(node2); 2985var sym3 = sym1.GetMembers("SGoo").First() as INamedTypeSymbol; 2988var dsym3 = model.GetDeclaredSymbol(node3); 3020var srcSym = ns1.GetMembers("A").Single() as INamedTypeSymbol; 3023var declSym = model.GetDeclaredSymbol(nsSyntax.Members[0] as TypeDeclarationSyntax); 3051var dsym1 = model.GetDeclaredSymbol(nsSyntax.Members[0] as TypeDeclarationSyntax); 3052var dsym2 = model.GetDeclaredSymbol(nsSyntax.Members[1] as TypeDeclarationSyntax); 3077var typeA = ns1.GetTypeMembers("A").First() as INamedTypeSymbol; 3080var dsym1 = model.GetDeclaredSymbol(nsSyntax.Members[0] as TypeDeclarationSyntax); 3142var typeA = globalNS.GetTypeMembers("ErrorProp").First() as INamedTypeSymbol; 3638var enumTypeSymbol = model.GetDeclaredSymbol(enumDecl); 3993var typeA = compilation.GlobalNamespace.GetMember<INamedTypeSymbol>("A"); 3994var typeB = typeA.GetMember<INamedTypeSymbol>("B"); 4082var classM = compilation.GlobalNamespace.GetMember<INamedTypeSymbol>("M"); 4434var conversion = compilation.GlobalNamespace.GetMember<INamedTypeSymbol>("C").GetMember<IMethodSymbol>(WellKnownMemberNames.ImplicitConversionName); 4465var conversion = compilation.GlobalNamespace.GetMember<INamedTypeSymbol>("C").GetMember<IMethodSymbol>(WellKnownMemberNames.ExplicitConversionName); 4496var @operator = compilation.GlobalNamespace.GetMember<INamedTypeSymbol>("C").GetMember<IMethodSymbol>(WellKnownMemberNames.AdditionOperatorName); 4693var type = (INamedTypeSymbol)model.GetDeclaredSymbol(decl); 4708var type = (INamedTypeSymbol)model.GetDeclaredSymbol(decl); 4723var type = (INamedTypeSymbol)model.GetDeclaredSymbol(decl); 4746var enumSymbol = model.GetDeclaredSymbol(enumDecl); //Used to assert. 4772var structSymbol = model.GetDeclaredSymbol(structDecl); 4773var interfaceSymbol = model.GetDeclaredSymbol(interfaceDecl); 4799var type = (INamedTypeSymbol)model.GetDeclaredSymbol(decl); 4822var type = (INamedTypeSymbol)model.GetDeclaredSymbol(decl); 4845var type = (INamedTypeSymbol)model.GetDeclaredSymbol(decl); 4868var type = (INamedTypeSymbol)model.GetDeclaredSymbol(decl); 4891var type = (INamedTypeSymbol)model.GetDeclaredSymbol(decl);
Compilation\SemanticModelGetSemanticInfoTests.cs (23)
1107var type = compilation.GlobalNamespace.GetMember<INamedTypeSymbol>("C"); 1141type = compilation.GlobalNamespace.GetMember<INamedTypeSymbol>("C"); 1171type = compilation.GlobalNamespace.GetMember<INamedTypeSymbol>("C"); 1201type = compilation.GlobalNamespace.GetMember<INamedTypeSymbol>("A"); 1227type = compilation.GlobalNamespace.GetMember<INamedTypeSymbol>("C"); 1254type = compilation.GlobalNamespace.GetMember<INamedTypeSymbol>("C"); 1350type = compilation.GlobalNamespace.GetMember<INamespaceSymbol>("N2").GetMember<INamedTypeSymbol>("C"); 1388type = compilation.GlobalNamespace.GetMember<INamespaceSymbol>("N").GetMember<INamedTypeSymbol>("C"); 9155Assert.True((type as INamedTypeSymbol).IsUnboundGenericType); 9156Assert.False((type as INamedTypeSymbol).IsErrorType()); 9179Assert.True((type as INamedTypeSymbol).IsUnboundGenericType); 9180Assert.False((type as INamedTypeSymbol).IsErrorType()); 9207Assert.False((type as INamedTypeSymbol).IsUnboundGenericType); 9208Assert.False((type as INamedTypeSymbol).IsErrorType()); 9232Assert.True((type as INamedTypeSymbol).IsUnboundGenericType); 9233Assert.False((type as INamedTypeSymbol).IsErrorType()); 9260var type = (INamedTypeSymbol)semanticInfo.Type; 9266var constructedFrom = type.ConstructedFrom; 9275var a = type.ContainingType; 11396var type = (INamedTypeSymbol)semanticInfo.Type;
Compilation\SymbolVisitorTests.cs (3)
115public override void VisitNamedType(INamedTypeSymbol symbol) 295public override string VisitNamedType(INamedTypeSymbol symbol) 417public override int VisitNamedType(INamedTypeSymbol symbol, StringBuilder argument)
Compilation\TypeInfoTests.cs (4)
20var obj = c.GetSpecialType(SpecialType.System_Object).GetPublicSymbol(); 21var int32 = c.GetSpecialType(SpecialType.System_Int32).GetPublicSymbol(); 45var intEnum1 = c.GetSpecialType(SpecialType.System_Collections_Generic_IEnumerable_T).GetPublicSymbol().Construct(int32); 46var intEnum2 = c.GetSpecialType(SpecialType.System_Collections_Generic_IEnumerable_T).GetPublicSymbol().Construct(int32);
DocumentationComments\CrefTests.cs (83)
909var typeA = compilation.GlobalNamespace.GetMember<INamedTypeSymbol>("A"); 912var typeB = compilation.GlobalNamespace.GetMember<INamedTypeSymbol>("B"); 1005var typeA = compilation.GlobalNamespace.GetMember<INamedTypeSymbol>("A"); 1008var typeB = compilation.GlobalNamespace.GetMember<INamedTypeSymbol>("B"); 1104var typeA = compilation.GlobalNamespace.GetMember<INamedTypeSymbol>("A"); 1107var typeB = compilation.GlobalNamespace.GetMember<INamedTypeSymbol>("B"); 2967var expectedTypeSymbol = ((Compilation)compilation).GlobalNamespace.GetMember<INamedTypeSymbol>("C"); 3002var typeA = ((Compilation)compilation).GlobalNamespace.GetMember<INamedTypeSymbol>("A"); 3003var typeB = typeA.GetMember<INamedTypeSymbol>("B"); 3006var typeInt = ((Compilation)compilation).GetSpecialType(SpecialType.System_Int32); 3012var actualTypeA = (INamedTypeSymbol)model.GetSymbolInfo(left).Symbol; 3024var actualTypeB = (INamedTypeSymbol)model.GetSymbolInfo(containingTypeSyntax).Symbol; 3054Assert.Equal(typeA.Construct(typeInt).GetMember<INamedTypeSymbol>("B").Construct(actualK), actualParameterTypes[5]); 4788var overridingMethod = compilation.GlobalNamespace.GetMember<INamedTypeSymbol>("Derived").GetMember<IMethodSymbol>("M"); 4850var overridingMethod = compilation.GlobalNamespace.GetMember<INamedTypeSymbol>("Derived").GetMember<IMethodSymbol>("M"); 4877var overridingMethod = compilation.GlobalNamespace.GetMember<INamedTypeSymbol>("Derived").GetMember<IMethodSymbol>("M"); 4938var overridingMethod = compilation.GlobalNamespace.GetMember<INamedTypeSymbol>("Derived").GetMember<IMethodSymbol>("M"); 4981var derivedM1 = global.GetMember<INamedTypeSymbol>("Derived").GetMember<IMethodSymbol>("M1"); 4982var baseM2 = global.GetMember<INamedTypeSymbol>("Base").GetMember<IMethodSymbol>("M2"); 5012var constructor = compilation.GlobalNamespace.GetMember<INamedTypeSymbol>("G").InstanceConstructors.Single(); 5084var outerCtor = compilation.GlobalNamespace.GetMember<INamedTypeSymbol>("Outer").InstanceConstructors.Single(); 5141var type = compilation.GlobalNamespace.GetMember<INamedTypeSymbol>("GenericClass"); 5232var type = compilation.GlobalNamespace.GetMember<INamedTypeSymbol>("C"); 5446Assert.Equal(compilation.GlobalNamespace.GetMember<INamedTypeSymbol>("C"), model.GetSymbolInfo(cref).Symbol); 5472var expectedSymbol = compilation.GlobalNamespace.GetMember<INamedTypeSymbol>("C").GetMember<IMethodSymbol>("Goo"); 5494var expectedSymbol = compilation.GlobalNamespace.GetMember<INamedTypeSymbol>("Outer").GetMember<INamedTypeSymbol>("Inner"); 5560var referencedType = (INamedTypeSymbol)model.GetSymbolInfo(cref).Symbol; 5597var expectedSymbol = compilation.GlobalNamespace.GetMember<INamedTypeSymbol>("C"); 5627var expectedSymbol = compilation.GlobalNamespace.GetMember<INamedTypeSymbol>("C"); 5844GetMember<INamespaceSymbol>("System").GetMembers("Action").OfType<INamedTypeSymbol>(). 5895var expectedSymbol = compilation.GlobalNamespace.GetMember<INamedTypeSymbol>("GetEnumerator"); 5968var expectedSymbol = compilation.GlobalNamespace.GetMember<INamedTypeSymbol>("C").InstanceConstructors.Single(); 6020var expectedSymbolOriginalDefinition = compilation.GlobalNamespace.GetMember<INamedTypeSymbol>("C").InstanceConstructors.Single(); 6107var expectedReturnTypeSymbol = compilation.GlobalNamespace.GetMember<INamedTypeSymbol>("X").GetMember<INamedTypeSymbol>("Y"); 6139var classA = compilation.GlobalNamespace.GetMember<INamedTypeSymbol>("A"); 6140var classB = classA.GetMember<INamedTypeSymbol>("B"); 6145var expectedParameterTypeSymbol = classA.Construct(classB).GetMember<INamedTypeSymbol>("B"); 6182var outer = compilation.GlobalNamespace.GetMember<INamedTypeSymbol>("Outer"); 6183var inner = outer.GetMember<INamedTypeSymbol>("Inner"); 6332var accessor = compilation.GlobalNamespace.GetMember<INamedTypeSymbol>("Outer").GetMember<INamedTypeSymbol>("Inner").GetMember<IPropertySymbol>("P").GetMethod; 6333var inheritedType = compilation.GlobalNamespace.GetMember<INamedTypeSymbol>("Base").GetMember<INamedTypeSymbol>("Inherited"); 6433var derivedInterface = comp.GlobalNamespace.GetMember<INamedTypeSymbol>("IDerived"); 6471var symbol = comp.GlobalNamespace.GetMember<INamedTypeSymbol>("I"); 6497var outer = compilation.GlobalNamespace.GetMember<INamedTypeSymbol>("C"); 6498var inner = outer.GetMember<INamedTypeSymbol>("Inner"); 6536Assert.Equal(compilation.GlobalNamespace.GetMember<INamedTypeSymbol>("C"), actualSymbol1.OriginalDefinition); 6537Assert.Equal(TypeKind.Error, ((INamedTypeSymbol)actualSymbol1).TypeArguments.Single().TypeKind); 6559Assert.Equal(compilation.GlobalNamespace.GetMember<INamedTypeSymbol>("C"), model.GetSymbolInfo(cref).Symbol); 6581Assert.Equal(compilation.GlobalNamespace.GetMember<INamedTypeSymbol>("C"), model.GetSymbolInfo(cref).Symbol); 6604Assert.Equal(compilation.GlobalNamespace.GetMember<INamedTypeSymbol>("Cat"), model.GetSymbolInfo(cref).Symbol);
DocumentationComments\ParameterTests.cs (4)
577AssertEx.SetEqual(model.LookupSymbols(pos4), compilation.GlobalNamespace.GetMember<INamedTypeSymbol>("C").TypeParameters.Single()); 605AssertEx.SetEqual(model.LookupSymbols(pos4), compilation.GlobalNamespace.GetMember<INamedTypeSymbol>("C").TypeParameters.Single()); 645var type = compilation.GlobalNamespace.GetMember<INamedTypeSymbol>("C");
SymbolDisplay\SymbolDisplayTests.cs (6)
5153var outer = (INamedTypeSymbol)vbComp.GlobalNamespace.GetMembers("Outer").Single(); 5802var type = global.GetTypeMembers("C").Single(); 5806var @delegate = global.GetTypeMembers("D").Single(); 6006var type = global.GetTypeMembers("C").Single(); 6010var @delegate = global.GetTypeMembers("D").Single();
Symbols\AccessorOverriddenOrHiddenMembersTests.cs (4)
1024var classDisposable = compilation.GlobalNamespace.GetMember<INamedTypeSymbol>("Disposable"); 1044var isInterfaceNameBound = semanticModel.GetSymbolInfo(interfaceName).Symbol is INamedTypeSymbol; 1052var type = methodSymbol.ContainingType;
Symbols\AnonymousTypesSemanticsTests.cs (6)
81Assert.False(((INamedTypeSymbol)info0.Type).IsSerializable); 1967var namedType = type as INamedTypeSymbol; 1970var objType = namedType.BaseType; 2007var anonymousType = (INamedTypeSymbol)type;
Symbols\ConversionTests.cs (4)
2063var destinationType = comp.GlobalNamespace.GetMember<INamedTypeSymbol>("C").Construct(comp.GetSpecialType(SpecialType.System_Int32)); 2146Assert.Equal(comp.GlobalNamespace.GetMember<INamedTypeSymbol>("C"), method.ContainingType); 2180Assert.Equal(comp.GlobalNamespace.GetMember<INamedTypeSymbol>("C"), method.ContainingType);
Symbols\CustomModifiersTests.cs (8)
66var type = (INamedTypeSymbol)test.Parameters.First().Type; 72var nullable = type.OriginalDefinition; 78var i = (INamedTypeSymbol)type.TypeArguments.First(); 136var type = (INamedTypeSymbol)test.Parameters.First().Type; 147var dictionary = type.OriginalDefinition;
Symbols\DestructorTests.cs (1)
400var destructor = compilation.GlobalNamespace.GetMember<INamedTypeSymbol>("C").GetMember<IMethodSymbol>(WellKnownMemberNames.DestructorName);
Symbols\ExtensionMethodTests.cs (4)
2949var type = globalNamespace.GetMember<INamedTypeSymbol>("C"); 3007var type = globalNamespace.GetMember<INamedTypeSymbol>("C");
Symbols\FunctionPointerTypeSymbolTests.cs (14)
1531var @string = comp.GetSpecialType(SpecialType.System_String); 1532var cdeclType = comp.GetTypeByMetadataName("System.Runtime.CompilerServices.CallConvCdecl"); 1538Assert.Throws<ArgumentNullException>("callingConventionTypes[0]", () => comp.CreateFunctionPointerTypeSymbol(returnType: @string, returnRefKind: RefKind.None, parameterTypes: ImmutableArray<ITypeSymbol>.Empty, parameterRefKinds: ImmutableArray<RefKind>.Empty, callingConvention: SignatureCallingConvention.Unmanaged, ImmutableArray.Create((INamedTypeSymbol)null!))); 1554var @string = comp.GetSpecialType(SpecialType.System_String); 1567var c = comp.GetTypeByMetadataName("C")!; 1582var @string = comp.GetSpecialType(SpecialType.System_String); 1598var @string = comp.GetSpecialType(SpecialType.System_String); 1599var @void = comp.GetSpecialType(SpecialType.System_Void); 1617var @string = comp.GetSpecialType(SpecialType.System_String); 1638var @string = comp.GetSpecialType(SpecialType.System_String); 1650var @string = comp.GetSpecialType(SpecialType.System_String); 1651var cdeclType = comp.GetTypeByMetadataName("System.Runtime.CompilerServices.CallConvCdecl"); 1652var stdcallType = comp.GetTypeByMetadataName("System.Runtime.CompilerServices.CallConvStdcall"); 1961var returnType = mainComp.GetSpecialType(SpecialType.System_String).GetPublicSymbol();
Symbols\Metadata\PE\LoadingAttributes.cs (2)
1008Assert.Equal("System.Collections.Generic.IList<>", (attrSym.CommonNamedArguments[0].Value.Value as INamedTypeSymbol).ToString()); 1162Assert.Equal("AttributeUse.IFoo<System.Int16, System.UInt16>", (attrSym.CommonConstructorArguments[0].Value as INamedTypeSymbol).ToDisplayString(SymbolDisplayFormat.TestFormat));
Symbols\MethodEqualityTests.cs (1)
202var @class = global.GetTypeMembers("Class").Single();
Symbols\PartialPropertiesTests.cs (2)
5284var cOfTSymbol = defSymbol.ContainingType!; 5285var cOfIntSymbol = cOfTSymbol.Construct([intSymbol]);
Symbols\Source\BaseClassTests.cs (2)
264var a = global.GetTypeMembers("A", 0).Single(); 301var a = global.GetTypeMembers("A", 0).Single();
Symbols\Source\DeclaringSyntaxNodeTests.cs (21)
201var c1 = n1.GetTypeMembers("C1").Single() as INamedTypeSymbol; 202var s1 = n1.GetTypeMembers("S1").Single() as INamedTypeSymbol; 235var c1 = n1.GetTypeMembers("C1").Single() as INamedTypeSymbol; 342var symbol = model.GetDeclaredSymbol(anonObjectCreation); 450var c1 = n1.GetTypeMembers("C1").Single() as INamedTypeSymbol; 451var c2 = c1.GetTypeMembers("C2").Single() as INamedTypeSymbol; 452var c3 = c1.GetTypeMembers("C3").Single() as INamedTypeSymbol; 461foreach (ITypeParameterSymbol tp in ((INamedTypeSymbol)f.Type).TypeParameters) 477foreach (ITypeParameterSymbol tp in ((INamedTypeSymbol)f.Type).TypeParameters) 517var c1 = n1.GetTypeMembers("C1").Single() as INamedTypeSymbol; 518var c2 = n1.GetTypeMembers("C2").Single() as INamedTypeSymbol; 519var e1 = n1.GetTypeMembers("E1").Single() as INamedTypeSymbol;
Symbols\Source\EnumTests.cs (2)
984var symbol = model.GetDeclaredSymbol(decl); 985var type = symbol.EnumUnderlyingType;
Symbols\Source\ExternAliasTests.cs (4)
417firstTarget.GetMember<INamedTypeSymbol>("C"); 418firstTarget.GetMember<INamedTypeSymbol>("D"); 486var typeC = namespaceN.GetMember<INamedTypeSymbol>("C");
Symbols\Source\FileModifierTests.cs (8)
4311var sourceType = ((Compilation)comp).GetTypeByMetadataName(metadataName); 4340var sourceType = ((Compilation)comp).GetTypeByMetadataName($"<SomeFile>F{checksum}__C"); 4411var type = (INamedTypeSymbol)model.GetTypeInfo(node.Type!).Type!; 4455var type = (INamedTypeSymbol)model.GetTypeInfo(node.Type!).Type!; 4478var type = (INamedTypeSymbol)model.GetTypeInfo(node.Type!).Type!;
Symbols\Source\MethodTests.cs (1)
2575var classC = model.GetDeclaredSymbol(type);
Symbols\Source\NullablePublicAPITests.cs (25)
90var expressionTypes = invocations.Select(inv => model.GetTypeInfoAndVerifyIOperation(inv).Type).Cast<INamedTypeSymbol>().ToList(); 146var c = ((Compilation)comp).GetTypeByMetadataName("C"); 213var c = ((Compilation)comp).GetTypeByMetadataName("C"); 287var c = ((Compilation)compilation).GetTypeByMetadataName("C"); 376var c = ((Compilation)compilation).GetTypeByMetadataName("C"); 479var c = ((Compilation)compilation).GetTypeByMetadataName("C"); 487var e = ((Compilation)compilation).GetTypeByMetadataName("Ext"); 636var c = ((Compilation)compilation).GetTypeByMetadataName("C"); 693comp => ((INamedTypeSymbol)((Compilation)comp).GetMember("I")).GetMembers().OfType<IMethodSymbol>().Where(m => m.Name.StartsWith("F")).ToArray(), 757comp => ((INamedTypeSymbol)((Compilation)comp).GetMember("I")).GetMembers().OfType<IMethodSymbol>().Where(m => m.Name.StartsWith("F")).ToArray(), 822comp => ((INamedTypeSymbol)((Compilation)comp).GetMember("I")).GetMembers().OfType<IMethodSymbol>().Where(m => m.Name.StartsWith("F")).ToArray(), 825ITypeParameterSymbol typeParameterSymbol = ((INamedTypeSymbol)((INamedTypeSymbol)method.ReturnType).GetMembers("B").Single()).TypeParameters.Single(); 889comp => ((INamedTypeSymbol)((Compilation)comp).GetMember("IB")).GetMembers().OfType<IMethodSymbol>().Where(m => m.Name.StartsWith("F")).ToArray(), 892var result = ((INamedTypeSymbol)method.ReturnType).TypeArguments.Single().NullableAnnotation; 893Assert.Equal(result, ((INamedTypeSymbol)method.ReturnType).TypeArgumentNullableAnnotations.Single()); 894Assert.Equal(result, ((INamedTypeSymbol)method.ReturnType).TypeArgumentNullableAnnotations().Single()); 1211var aType = comp.GetTypeByMetadataName("A"); 1212var bType = comp.GetTypeByMetadataName("B"); 1213var cType = comp.GetTypeByMetadataName("C"); 1214var dType = comp.GetTypeByMetadataName("D"); 1907Assert.Equal(expectedAnnotation, ((INamedTypeSymbol)methodSymbol.ReturnType).TypeArgumentNullableAnnotations.Single()); 1908Assert.Equal(expectedAnnotation, ((INamedTypeSymbol)methodSymbol.ReturnType).TypeArgumentNullableAnnotations().Single()); 3367var spanType = (INamedTypeSymbol)propertySymbol.ReturnType;
Symbols\SymbolEqualityTests.cs (9)
781var field1 = (IFieldSymbol)((INamedTypeSymbol)model.GetDeclaredSymbol(member1Syntax)).GetMembers("field").Single(); // A<T!>! A<T>.field 795var field1ContainingType = field1.ContainingType; //A<T> 796var field2ContainingType = field2.ContainingType; //A<T!> 832var method1 = (IMethodSymbol)((INamedTypeSymbol)model.GetDeclaredSymbol(member1Syntax)).GetMembers("M").Single(); // A<T!>! A<T>.M(A<T!>! t) 853var method1ContainingType = method1.ContainingType; //A<T> 854var method2ContainingType = method2.ContainingType; //A<T!> 893var event1 = (IEventSymbol)((INamedTypeSymbol)model.GetDeclaredSymbol(member1Syntax)).GetMembers("MyEvent").Single(); // System.EventHandler<T!>! A<T>.MyEvent 907var event1ContainingType = event1.ContainingType; //A<T> 908var event2ContainingType = event2.ContainingType; //A<T!>
Symbols\TypeTests.cs (6)
1702var paras = ((INamedTypeSymbol)memType).DelegateInvokeMethod.Parameters; 1716memType = ((INamedTypeSymbol)memType).DelegateInvokeMethod.ReturnType; 1858var originalDefinition = compilation.GlobalNamespace.GetMember<INamedTypeSymbol>("C"); 2346var c = sourceComp.GetTypeByMetadataName("C").GetPublicSymbol(); 2394var c = metadataComp.GetTypeByMetadataName("C").GetPublicSymbol();
Microsoft.CodeAnalysis.CSharp.Test.Utilities (22)
Extensions.cs (22)
179var type = compilation.GetMember<INamedTypeSymbol>(qualifiedTypeName); 190var type = compilation.GetMember<INamedTypeSymbol>(qualifiedTypeName); 196var type = compilation.GetMember<INamedTypeSymbol>(qualifiedTypeName); 202var type = compilation.GetMember<INamedTypeSymbol>(qualifiedTypeName); 347public static INamedTypeSymbol GetTypeMember(this INamespaceOrTypeSymbol symbol, string name) 694public static ImmutableArray<INamedTypeSymbol> AllEffectiveInterfacesNoUseSiteDiagnostics(this ITypeParameterSymbol symbol) 741public static INamedTypeSymbol GetWellKnownType(this Compilation compilation, WellKnownType type) 768return type is INamedTypeSymbol namedType && namedType.IsUnboundGenericType; 776public static INamedTypeSymbol CreateTupleTypeSymbol( 785public static INamedTypeSymbol CreateTupleTypeSymbol( 795public static INamedTypeSymbol Construct(this INamedTypeSymbol definition, params TypeSymbol[] typeArguments) 835return type.TypeKind == TypeKind.Enum ? ((INamedTypeSymbol)type).EnumUnderlyingType : type; 838public static INamedTypeSymbol GetEnumUnderlyingType(this ITypeSymbol type) 840var namedType = type as INamedTypeSymbol; 849return ((INamedTypeSymbol)symbol).ConstructedFrom; 872public static IEnumerable<Microsoft.CodeAnalysis.NullableAnnotation> TypeArgumentNullableAnnotations(this INamedTypeSymbol type)
Microsoft.CodeAnalysis.CSharp.Workspaces (135)
Recommendations\CSharpRecommendationServiceRunner.cs (14)
102var symbol = _context.SemanticModel.GetDeclaredSymbol(_context.ContainingTypeOrEnumDeclaration!, _cancellationToken); 325var containingType = semanticModel.GetRequiredDeclaredSymbol( 386var contextEnclosingNamedType = semanticModel.GetEnclosingNamedType(_context.Position, _cancellationToken); 394INamedTypeSymbol? enclosingNamedType, 395ISet<INamedTypeSymbol> outerTypes, 441INamedTypeSymbol? enclosingNamedType, 622var containingType = _context.SemanticModel.GetEnclosingNamedType(_context.Position, _cancellationToken); 723INamedTypeSymbol? instanceType, staticType; 724if (symbol is INamedTypeSymbol namedType) 733instanceType = reinterpretedSymbol.GetSymbolType() as INamedTypeSymbol; 742if (reinterpretedSymbol is not INamedTypeSymbol reinterprettedNamedType) 745instanceType = symbol.GetSymbolType() as INamedTypeSymbol; 832if (containerSymbol is INamedTypeSymbol typeSymbol && typeSymbol.IsSystemVoid()) 929var containingType = _context.SemanticModel.GetEnclosingNamedType(_context.Position, _cancellationToken);
Recommendations\CSharpRecommendationServiceRunner_Conversions.cs (8)
137if (container.RemoveNullableIfPresent() is INamedTypeSymbol namedType) 153ITypeSymbol container, INamedTypeSymbol containerWithoutNullable, ArrayBuilder<ISymbol> symbols) 158foreach (var type in containerWithoutNullable.GetBaseTypesAndThis()) 201ITypeSymbol container, INamedTypeSymbol containerWithoutNullable, ArrayBuilder<ISymbol> symbols) 229ITypeSymbol container, INamedTypeSymbol containerWithoutNullable, ArrayBuilder<ISymbol> symbols, ImmutableArray<SpecialType> specialTypes) 235var targetTypeSymbol = _context.SemanticModel.Compilation.GetSpecialType(specialType); 258private static IMethodSymbol CreateConversion(INamedTypeSymbol containingType, ITypeSymbol fromType, ITypeSymbol toType, string? documentationCommentXml) 266ITypeSymbol container, INamedTypeSymbol containerWithoutNullable, ArrayBuilder<ISymbol> symbols)
Rename\CSharpRenameRewriterLanguageService.cs (4)
367if (symbol is INamedTypeSymbol namedTypeSymbol) 796if (renamedSymbol is INamedTypeSymbol { TypeKind: not TypeKind.Enum } namedType) 801if (renamedSymbol.ContainingSymbol is INamedTypeSymbol { TypeKind: not TypeKind.Enum } containingNamedType && 1007var baseType = renamedSymbol.ContainingType?.GetBaseTypes().FirstOrDefault();
Simplification\CSharpSimplificationService.Expander.cs (5)
470aliasTarget = ((INamedTypeSymbol)aliasTarget).ConstructUnboundGenericType(); 473if (aliasTarget is INamedTypeSymbol typeSymbol && typeSymbol.IsTupleType) 834if (symbol is INamedTypeSymbol namedTypedSymbol) 1017var type = semanticModel.GetTypeInfo(typeOfExpression.Type, _cancellationToken).Type as INamedTypeSymbol;
Simplification\Simplifiers\ExpressionSimplifier.cs (4)
178if (symbol is INamedTypeSymbol namedType) 347var enclosingNamedType = semanticModel.GetEnclosingNamedType(memberAccess.SpanStart, cancellationToken); 373if (leftSymbol is INamedTypeSymbol) 417if (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\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\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\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Extensions\ITypeSymbolExtensions.cs (1)
40public static bool TryGetPrimaryConstructor(this INamedTypeSymbol typeSymbol, [NotNullWhen(true)] out IMethodSymbol? primaryConstructor)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Extensions\SemanticModelExtensions.cs (3)
211var containingType = semanticModel.GetDeclaredSymbol(type.GetAncestor<BaseTypeDeclarationSyntax>(), cancellationToken); 332var symbol = semanticModel.GetDeclaredSymbol(typeDeclaration, cancellationToken); 460public static INamedTypeSymbol GetRequiredDeclaredSymbol(this SemanticModel semanticModel, BaseTypeDeclarationSyntax syntax, CancellationToken cancellationToken)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Extensions\SyntaxNodeExtensions.cs (2)
789[NotNullWhen(true)] INamedTypeSymbol? expressionType, 822static bool TakesExpressionTree(SymbolInfo info, INamedTypeSymbol expressionType)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Services\SemanticFacts\CSharpSemanticFacts.cs (5)
94public bool LastEnumValueHasInitializer(INamedTypeSymbol namedTypeSymbol) 231public bool IsPartial(INamedTypeSymbol typeSymbol, CancellationToken cancellationToken) 286var type = model.Compilation.TryGetCallingConventionSymbol(syntax.Name.ValueText); 393public bool IsInExpressionTree(SemanticModel semanticModel, SyntaxNode node, [NotNullWhen(true)] INamedTypeSymbol? expressionType, CancellationToken cancellationToken) 422public bool TryGetPrimaryConstructor(INamedTypeSymbol typeSymbol, [NotNullWhen(true)] out IMethodSymbol? primaryConstructor)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Simplification\Simplifiers\CastSimplifier.cs (9)
127var enumType = semanticModel.GetTypeInfo(castExpression.Expression, cancellationToken).Type as INamedTypeSymbol; 162var enumType = semanticModel.GetTypeInfo(castExpression.Expression, cancellationToken).Type as INamedTypeSymbol; 627if (castedType is not INamedTypeSymbol namedCastedType || 628originalConvertedType is not INamedTypeSymbol originalNamedConvertedType) 988if (conversionOperation.Operand.Type is not INamedTypeSymbol original) 997for (var type = original; type != null; type = type.BaseType) 1363var rewrittenContainingType = rewrittenMemberSymbol.ContainingType;
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\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\CodeGeneration\CSharpFlagsEnumGenerator.cs (2)
22INamedTypeSymbol enumType, 39protected override bool IsValidName(INamedTypeSymbol enumType, string name)
src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\CodeGeneration\EnumMemberGenerator.cs (3)
159var namedType = enumMember.Type as INamedTypeSymbol; 160var underlyingType = namedType?.EnumUnderlyingType;
src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\CodeGeneration\ExpressionGenerator.cs (1)
60if (type is INamedTypeSymbol { TypeKind: TypeKind.Enum } enumType)
src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\CodeGeneration\MethodGenerator.cs (1)
370if (method.IsReadOnly && (method.ContainingSymbol as INamedTypeSymbol)?.IsReadOnly != true)
src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\CodeGeneration\NamedTypeGenerator.cs (14)
27INamedTypeSymbol namedType, 41INamedTypeSymbol namedType, 56INamedTypeSymbol namedType, 72INamedTypeSymbol namedType, 155INamedTypeSymbol namedType, 185INamedTypeSymbol namedType, 229INamedTypeSymbol namedType, 247INamedTypeSymbol namedType, 264INamedTypeSymbol namedType, CSharpCodeGenerationContextInfo info) 270INamedTypeSymbol namedType, 314INamedTypeSymbol namedType, CSharpCodeGenerationContextInfo info) 319private static BaseListSyntax? GenerateBaseList(INamedTypeSymbol namedType) 325foreach (var type in namedType.Interfaces) 334private static SyntaxList<TypeParameterConstraintClauseSyntax> GenerateConstraintClauses(INamedTypeSymbol namedType)
src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\Editing\CSharpImportAdder.cs (1)
112foreach (var type in ns.GetTypeMembers())
src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\Extensions\ContextQuery\SyntaxTreeExtensions.cs (4)
1035INamedTypeSymbol nt => nt.Arity > 0, 1044return symbols.All(static s => s is INamedTypeSymbol or IMethodSymbol); 2886var delegateType = CSharpTypeInferenceService.Instance.InferDelegateType( 3060return ((INamedTypeSymbol)symbol).TypeKind == TypeKind.Enum;
src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\Extensions\ITypeSymbolExtensions.ExpressionSyntaxGeneratorVisitor.cs (1)
41public override ExpressionSyntax VisitNamedType(INamedTypeSymbol symbol)
src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\Extensions\ITypeSymbolExtensions.TypeSyntaxGeneratorVisitor.cs (5)
118public static bool TryCreateNativeIntegerType(INamedTypeSymbol symbol, [NotNullWhen(true)] out TypeSyntax? syntax) 174public TypeSyntax CreateSimpleTypeSyntax(INamedTypeSymbol symbol) 224private static TypeSyntax? TryCreateSpecializedNamedTypeSyntax(INamedTypeSymbol symbol) 250private static TupleTypeSyntax CreateTupleTypeSyntax(INamedTypeSymbol symbol) 263public override TypeSyntax VisitNamedType(INamedTypeSymbol symbol)
src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\Extensions\TypeDeclarationSyntaxExtensions.cs (1)
76var typeSymbol = model.GetRequiredDeclaredSymbol(typeNode, cancellationToken);
src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\LanguageServices\CSharpSyntaxGeneratorInternal.cs (1)
210public override SyntaxNode DeclarationPattern(INamedTypeSymbol type, string name)
src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\LanguageServices\CSharpTypeInferenceService.TypeInferrer.cs (25)
330if (types.Any(t => t is INamedTypeSymbol)) 332return types.OfType<INamedTypeSymbol>().SelectMany(t => 363.OfType<INamedTypeSymbol>() 440if (info.Type is not INamedTypeSymbol type) 461if (info.Type is not INamedTypeSymbol type) 567if (info.Type is INamedTypeSymbol type) 704var inferredNamedType = (INamedTypeSymbol)inferredType; 705var returnNamedType = (INamedTypeSymbol)returnType; 1256var enumerableType = forEachStatementSyntax.AwaitKeyword == default 1408if (types.Any(t => t is INamedTypeSymbol)) 1410return types.OfType<INamedTypeSymbol>().SelectMany(t => 1431if (types.Any(t => t is INamedTypeSymbol)) 1438return types.OfType<INamedTypeSymbol>().SelectMany(t => 1583var type = Compilation.CreateTupleTypeSymbol( 1618var type = types.FirstOrDefault().InferredType.GetDelegateType(this.Compilation); 1739var taskOfT = this.Compilation.TaskOfTType(); 1748var ienumerableType = this.Compilation.IEnumerableOfTType(); 1762var delegateType = argumentTypes.FirstOrDefault().InferredType.GetDelegateType(this.Compilation); 1967var task = this.Compilation.TaskType(); 1968var taskOfT = this.Compilation.TaskOfTType(); 1994return memberType is INamedTypeSymbol namedType && namedType.TypeArguments.Length == 1 2008var namedTypeSymbol = (INamedTypeSymbol)type;
src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\LanguageServices\InitializeParameter\InitializeParameterHelpers.cs (1)
102var namedType = parameter.ContainingType;
Microsoft.CodeAnalysis.CSharp.Workspaces.UnitTests (127)
CodeGeneration\AddImportsTests.cs (1)
872var attribute = compilation.GetTypeByMetadataName("N.M.A");
CodeGeneration\SymbolEditorTests.cs (72)
75var newSymbol = (INamedTypeSymbol)await editor.EditOneDeclarationAsync(symbol, (e, d) => e.AddMember(d, e.Generator.MethodDeclaration("m"))); 103var newSymbol = (INamedTypeSymbol)await editor.EditOneDeclarationAsync(symbol, (e, d) => e.AddMember(d, Generator.MethodDeclaration("m"))); 107newSymbol = (INamedTypeSymbol)await editor.EditOneDeclarationAsync(symbol, (e, d) => e.AddMember(d, Generator.MethodDeclaration("m2"))); 140var newSymbol = (INamedTypeSymbol)await editor.EditOneDeclarationAsync(symbol, (e, d) => e.AddMember(d, e.Generator.MethodDeclaration("m"))); 144newSymbol = (INamedTypeSymbol)await editor.EditOneDeclarationAsync(newSymbol, (e, d) => e.AddMember(d, e.Generator.MethodDeclaration("m2"))); 184var newSymbolA = (INamedTypeSymbol)await editor.EditOneDeclarationAsync(symbolA, (e, d) => e.AddMember(d, e.Generator.MethodDeclaration("ma"))); 187var newSymbolB = (INamedTypeSymbol)await editor.EditOneDeclarationAsync(symbolB, (e, d) => e.AddMember(d, e.Generator.MethodDeclaration("mb"))); 231var newSymbolA = (INamedTypeSymbol)await editor.EditOneDeclarationAsync(symbolA, (e, d) => e.AddMember(d, e.Generator.MethodDeclaration("ma"))); 234var newSymbolB = (INamedTypeSymbol)await editor.EditOneDeclarationAsync(symbolB, (e, d) => e.AddMember(d, e.Generator.MethodDeclaration("mb"))); 276var newSymbol = (INamedTypeSymbol)await editor.EditAllDeclarationsAsync(symbol, (e, d) => e.SetAccessibility(d, Accessibility.Internal)); 313var newSymbol = (INamedTypeSymbol)await editor.EditAllDeclarationsAsync(symbol, (e, d) => e.SetAccessibility(d, Accessibility.Public)); 350var newSymbol = (INamedTypeSymbol)await editor.EditOneDeclarationAsync(symbol, location, (e, d) => e.AddMember(d, e.Generator.MethodDeclaration("m"))); 387var newSymbol = (INamedTypeSymbol)await editor.EditOneDeclarationAsync(symbol, location, (e, d) => e.AddMember(d, e.Generator.MethodDeclaration("m"))); 424var newSymbol = (INamedTypeSymbol)await editor.EditOneDeclarationAsync(symbol, location, (e, d) => e.AddMember(d, e.Generator.MethodDeclaration("m"))); 428var newSymbol2 = (INamedTypeSymbol)await editor.EditOneDeclarationAsync(newSymbol, location, (e, d) => e.AddMember(d, e.Generator.MethodDeclaration("m2"))); 470var newSymbol = (INamedTypeSymbol)await editor.EditOneDeclarationAsync(symbol, location, (e, d) => e.AddMember(d, e.Generator.MethodDeclaration("m"))); 475var newSymbol2 = (INamedTypeSymbol)await editor.EditOneDeclarationAsync(newSymbol, newLocation, (e, d) => e.AddMember(d, e.Generator.MethodDeclaration("m2"))); 516var symbol = (INamedTypeSymbol)(await GetSymbolsAsync(solution, "C")).First(); 520var newSymbol = (INamedTypeSymbol)await editor.EditOneDeclarationAsync(symbol, member, (e, d) => e.AddMember(d, e.Generator.MethodDeclaration("m2"))); 557var newSymbol = (INamedTypeSymbol)await editor.EditOneDeclarationAsync(symbol, (e, d) => e.SetName(d, "X")); 591var newSymbol = (INamedTypeSymbol)await editor.EditAllDeclarationsAsync(symbol, (e, d) => e.SetName(d, "X")); 624var newSymbol = (INamedTypeSymbol)await editor.EditOneDeclarationAsync(symbol, (e, d) => e.RemoveNode(d)); 649var newSymbol = (INamedTypeSymbol)await editor.EditOneDeclarationAsync(symbol, (e, d) => e.RemoveNode(d)); 680var newSymbol = (INamedTypeSymbol)await editor.EditAllDeclarationsAsync(symbol, (e, d) => e.RemoveNode(d)); 702var symbol = (INamedTypeSymbol)(await GetSymbolsAsync(solution, "C")).First(); 709var newSymbolX = (INamedTypeSymbol)await editor.EditOneDeclarationAsync(symbolX, (e, d) => e.RemoveNode(d)); 721var newSymbolY = (INamedTypeSymbol)await editor.EditOneDeclarationAsync(symbolY, (e, d) => e.RemoveNode(d)); 750var symbol = (INamedTypeSymbol)(await GetSymbolsAsync(solution, "C")).First(); 791var symbol = (INamedTypeSymbol)(await GetSymbolsAsync(solution, "C")).First(); 828var symbol = (INamedTypeSymbol)(await GetSymbolsAsync(solution, "C")).First(); 861var symbol = (INamedTypeSymbol)(await GetSymbolsAsync(solution, "C")).First(); 894var symbol = (INamedTypeSymbol)(await GetSymbolsAsync(solution, "C")).First(); 931var symbol = (INamedTypeSymbol)(await GetSymbolsAsync(solution, "C")).First(); 968var symbol = (INamedTypeSymbol)(await GetSymbolsAsync(solution, "C")).First(); 997var symbol = (INamedTypeSymbol)(await GetSymbolsAsync(solution, "C")).First(); 1035var typeC = (INamedTypeSymbol)(await GetSymbolsAsync(solution, "C")).First(); 1045var typeI = (INamedTypeSymbol)(await GetSymbolsAsync(solution, "I")).First();
CodeGeneration\SyntaxGeneratorTests.cs (54)
255var typeC = compilation.GlobalNamespace.GetMembers("C").First() as INamedTypeSymbol; 299var intType = _emptyCompilation.GetSpecialType(SpecialType.System_Int32); 337var genericType = _emptyCompilation.GetSpecialType(SpecialType.System_Collections_Generic_IEnumerable_T); 427var intType = _emptyCompilation.GetSpecialType(SpecialType.System_Int32); 428var listType = _emptyCompilation.GetTypeByMetadataName("System.Collections.Generic.List`1"); 429var listOfIntType = listType.Construct(intType); 1074var gcHandleType = _emptyCompilation.GetTypeByMetadataName(typeof(GCHandle).FullName); 1082var doubleType = _emptyCompilation.GetSpecialType(SpecialType.System_Decimal); 1100var c = compilation.GetTypeByMetadataName("C"); 2324var type = compilation.GetTypeByMetadataName("D"); 2341var type = compilation.GetTypeByMetadataName("C"); 2362var type = compilation.GetTypeByMetadataName("C"); 2383var type = compilation.GetTypeByMetadataName("C"); 2404var type = compilation.GetTypeByMetadataName("C"); 2425var type = compilation.GetTypeByMetadataName("C"); 2447var type = compilation.GetTypeByMetadataName("C"); 2465var type = compilation.GetTypeByMetadataName("C"); 2488var type = compilation.GetTypeByMetadataName("B"); 2516var type = compilation.GetTypeByMetadataName("B"); 2544var type = compilation.GetTypeByMetadataName("B"); 2575var type = compilation.GetTypeByMetadataName("B"); 2609var type = compilation.GetTypeByMetadataName("Goo"); 2652var type = compilation.GetTypeByMetadataName("C"); 2675var type = compilation.GetTypeByMetadataName("C"); 2705var type = compilation.GetTypeByMetadataName("C"); 3971var symbolC = (INamedTypeSymbol)comp.GlobalNamespace.GetMembers("C").First(); 4179var symbolC = (INamedTypeSymbol)comp.GlobalNamespace.GetMembers("C").First(); 4200var symbolC = (INamedTypeSymbol)comp.GlobalNamespace.GetMembers("C").First(); 4224var symbolC = (INamedTypeSymbol)comp.GlobalNamespace.GetMembers("C").First(); 4245var symbolC = (INamedTypeSymbol)comp.GlobalNamespace.GetMembers("C").First(); 4266var symbolC = (INamedTypeSymbol)comp.GlobalNamespace.GetMembers("C").First(); 4287var symbolC = (INamedTypeSymbol)comp.GlobalNamespace.GetMembers("C").First(); 4308var symbolC = (INamedTypeSymbol)comp.GlobalNamespace.GetMembers("C").First(); 4329var symbolC = (INamedTypeSymbol)comp.GlobalNamespace.GetMembers("C").First(); 4350var symbolC = (INamedTypeSymbol)comp.GlobalNamespace.GetMembers("C").First(); 4905var symbolR = (INamedTypeSymbol)comp.GlobalNamespace.GetMembers("R").First(); 4920var symbolR = (INamedTypeSymbol)comp.GlobalNamespace.GetMembers("R").First(); 4943var symbolR = (INamedTypeSymbol)comp.GlobalNamespace.GetMembers("R").First(); 4958var symbolR = (INamedTypeSymbol)comp.GlobalNamespace.GetMembers("R").First();
Microsoft.CodeAnalysis.EditorFeatures.Test.Utilities (6)
MoveStaticMembers\TestMoveStaticMembersService.cs (2)
37public MoveStaticMembersOptions GetMoveMembersToTypeOptions(Document document, INamedTypeSymbol selectedType, ImmutableArray<ISymbol> selectedNodeSymbols) 65var destination = selectedType.ContainingNamespace.GetAllTypes(CancellationToken.None).First(t => t.ToDisplayString() == DestinationName);
PullMemberUp\TestPullMemberUpService.cs (4)
31var containingType = selectedNodeSymbols[0].ContainingType; 39var baseClass = containingType.BaseType; 41INamedTypeSymbol destination = null; 60for (var i = baseClass; i != null; i = i.BaseType)
Microsoft.CodeAnalysis.EditorFeatures.UnitTests (148)
CodeGeneration\CodeGenerationTests.cs (18)
84(INamedTypeSymbol)testContext.GetDestination(), 126(INamedTypeSymbol)testContext.GetDestination(), 171(INamedTypeSymbol)testContext.GetDestination(), 215(INamedTypeSymbol)testContext.GetDestination(), 250(INamedTypeSymbol)testContext.GetDestination(), 296(INamedTypeSymbol)testContext.GetDestination(), 364(INamedTypeSymbol)testContext.GetDestination(), 388var typeSymbol = GetTypeSymbol(type)(testContext.SemanticModel); 404(INamedTypeSymbol)testContext.GetDestination(), 440var typeSymbol = GetTypeSymbol(type)(testContext.SemanticModel); 497(INamedTypeSymbol)testContext.GetDestination(), 510INamedTypeSymbol baseType = null, 511ImmutableArray<INamedTypeSymbol> interfaces = default, 518var type = CodeGenerationSymbolFactory.CreateNamedTypeSymbol( 569var attributeType = GetTypeSymbol(attributeClass)(testContext.SemanticModel); 664testContext.Result = await testContext.Service.AddMembersAsync(solutionContext, (INamedTypeSymbol)destination, members, CancellationToken.None); 736private static Func<SemanticModel, INamedTypeSymbol> GetTypeSymbol(Type type) 739private static Func<SemanticModel, INamedTypeSymbol> GetTypeSymbol(string typeMetadataName)
MetadataAsSource\AbstractMetadataAsSourceTests.cs (1)
126var generatedSymbol = generatedCompilation.Assembly.GetTypeByMetadataName(symbolName);
MetadataAsSource\AbstractMetadataAsSourceTests.TestContext.cs (1)
181var namedTypeSymbol = assemblySymbol.GetTypeByMetadataName(symbolMetadataName);
SymbolFinder\SymbolFinderTests.cs (39)
81var baseClassSymbol = portableCompilation.GetTypeByMetadataName("N.BaseClass"); 84var derivedClassSymbol = normalCompilation.GetTypeByMetadataName("M.DerivedClass"); 91var derivedDependentType = Assert.Single(derivedFromBase); 122var baseClassSymbol = portableCompilation.GetTypeByMetadataName("N.BaseInterface"); 125var derivedClassSymbol = normalCompilation.GetTypeByMetadataName("M.DerivedInterface"); 132var derivedDependentType = Assert.Single(derivedFromBase); 173var baseClassSymbol = portableCompilation.GetTypeByMetadataName("N.BaseClass"); 176var derivedClassSymbol = normalCompilation.GetTypeByMetadataName("M.DerivedClass"); 183var derivedDependentType = Assert.Single(derivedFromBase); 214var baseClassSymbol = portableCompilation.GetTypeByMetadataName("N.BaseClass"); 217var derivedClassSymbol = normalCompilation.GetTypeByMetadataName("M.DerivedClass"); 224var derivedDependentType = Assert.Single(derivedFromBase); 256var baseClassSymbol = portableCompilation.GetTypeByMetadataName("N.BaseClass"); 259var derivedClassSymbol = normalCompilation.GetTypeByMetadataName("M.DerivedClass"); 266var derivedDependentType = Assert.Single(derivedFromBase); 298var baseClassSymbol = portableCompilation.GetTypeByMetadataName("N.BaseClass"); 301var derivedClassSymbol = normalCompilation.GetTypeByMetadataName("M.DerivedClass"); 308var derivedDependentType = Assert.Single(derivedFromBase); 339var baseInterfaceSymbol = portableCompilation.GetTypeByMetadataName("N.IBaseInterface"); 342var implementingClassSymbol = normalCompilation.GetTypeByMetadataName("M.ImplementingClass"); 380var baseInterfaceSymbol = portableCompilation.GetTypeByMetadataName("N.IBaseInterface"); 383var implementingClassSymbol = normalCompilation.GetTypeByMetadataName("M.ImplementingClass"); 420var baseInterfaceSymbol = portableCompilation.GetTypeByMetadataName("N.IBaseInterface"); 423var implementingClassSymbol = normalCompilation.GetTypeByMetadataName("M.ImplementingClass"); 444var rootType = compilation.GetTypeByMetadataName("System.IO.Stream"); 489var rootType = compilation.GetTypeByMetadataName("IA"); 541var rootType = compilation.GetTypeByMetadataName("IA"); 578var rootType = compilation.GetTypeByMetadataName("System.ICloneable"); 608var rootType = compilation.GetTypeByMetadataName("System.IComparable"); 654var firstType = (INamedTypeSymbol)semanticModel.GetDeclaredSymbol(firstDecl); 709var baseClass = compilation.GetTypeByMetadataName("N_Main.T_BaseProject_BaseClass"); 716var baseClass = compilation.GetTypeByMetadataName("N_Main.T_BaseProject_DerivedClass1"); 723var baseClass = compilation.GetTypeByMetadataName("N_Main.T_BaseProject_DerivedClass2"); 763var classSymbol = compilation2.GetTypeByMetadataName("M.C"); 766var interfaceSymbol = compilation1.GetTypeByMetadataName("N.I"); 794var baseInterfaceSymbol = portableCompilation.GetTypeByMetadataName("N.I"); 822var classInSource = sourceCompilation.GetTypeByMetadataName("N.ReferencedClass"); 870var classInSource = sourceCompilation.GetTypeByMetadataName("N.ReferencedClass");
Utilities\SymbolEquivalenceComparerTests.cs (89)
130var vbType = (await vbWorkspace.CurrentSolution.Projects.Single().GetCompilationAsync()).GlobalNamespace.GetTypeMembers("C").Single(); 203var type1_v1 = (await workspace1.CurrentSolution.Projects.Single().GetCompilationAsync()).GlobalNamespace.GetTypeMembers("Type1").Single(); 204var type2_v1 = (await workspace1.CurrentSolution.Projects.Single().GetCompilationAsync()).GlobalNamespace.GetTypeMembers("Type2").Single(); 205var type1_v2 = (await workspace2.CurrentSolution.Projects.Single().GetCompilationAsync()).GlobalNamespace.GetTypeMembers("Type1").Single(); 206var type2_v2 = (await workspace2.CurrentSolution.Projects.Single().GetCompilationAsync()).GlobalNamespace.GetTypeMembers("Type2").Single(); 258var type1_v1 = (await workspace1.CurrentSolution.Projects.Single().GetCompilationAsync()).GlobalNamespace.GetTypeMembers("Type1").Single(); 259var type2_v1 = (await workspace1.CurrentSolution.Projects.Single().GetCompilationAsync()).GlobalNamespace.GetTypeMembers("Type2").Single(); 260var type1_v2 = (await workspace2.CurrentSolution.Projects.Single().GetCompilationAsync()).GlobalNamespace.GetTypeMembers("Type1").Single(); 261var type2_v2 = (await workspace2.CurrentSolution.Projects.Single().GetCompilationAsync()).GlobalNamespace.GetTypeMembers("Type2").Single(); 298var typeC = (await workspace.CurrentSolution.Projects.Single().GetCompilationAsync()).GlobalNamespace.GetTypeMembers("C").Single(); 299var typeD = (await workspace.CurrentSolution.Projects.Single().GetCompilationAsync()).GlobalNamespace.GetTypeMembers("D").Single(); 346var type1_v1 = (await workspace1.CurrentSolution.Projects.Single().GetCompilationAsync()).GlobalNamespace.GetTypeMembers("Type1").Single(); 347var type1_v2 = (await workspace2.CurrentSolution.Projects.Single().GetCompilationAsync()).GlobalNamespace.GetTypeMembers("Type1").Single(); 375var type1_v1 = (await workspace1.CurrentSolution.Projects.Single().GetCompilationAsync()).GlobalNamespace.GetTypeMembers("Type1").Single(); 376var type1_v2 = (await workspace2.CurrentSolution.Projects.Single().GetCompilationAsync()).GlobalNamespace.GetTypeMembers("Type1").Single(); 404var type1_v1 = (await workspace1.CurrentSolution.Projects.Single().GetCompilationAsync()).GlobalNamespace.GetTypeMembers("Type1").Single(); 405var type1_v2 = (await workspace2.CurrentSolution.Projects.Single().GetCompilationAsync()).GlobalNamespace.GetTypeMembers("Type1").Single(); 433var type1_v1 = (await workspace1.CurrentSolution.Projects.Single().GetCompilationAsync()).GlobalNamespace.GetTypeMembers("Type1").Single(); 434var type1_v2 = (await workspace2.CurrentSolution.Projects.Single().GetCompilationAsync()).GlobalNamespace.GetTypeMembers("Type1").Single(); 462var type1_v1 = (await workspace1.CurrentSolution.Projects.Single().GetCompilationAsync()).GlobalNamespace.GetTypeMembers("Type1").Single(); 463var type1_v2 = (await workspace2.CurrentSolution.Projects.Single().GetCompilationAsync()).GlobalNamespace.GetTypeMembers("Type1").Single(); 493var type1_v1 = (await workspace1.CurrentSolution.Projects.Single().GetCompilationAsync()).GlobalNamespace.GetTypeMembers("Type1").Single(); 494var type1_v2 = (await workspace2.CurrentSolution.Projects.Single().GetCompilationAsync()).GlobalNamespace.GetTypeMembers("Type1").Single(); 524var type1_v1 = (await workspace1.CurrentSolution.Projects.Single().GetCompilationAsync()).GlobalNamespace.GetTypeMembers("Type1").Single(); 525var type1_v2 = (await workspace2.CurrentSolution.Projects.Single().GetCompilationAsync()).GlobalNamespace.GetTypeMembers("Type1").Single(); 555var type1_v1 = (await workspace1.CurrentSolution.Projects.Single().GetCompilationAsync()).GlobalNamespace.GetTypeMembers("Type1").Single(); 556var type1_v2 = (await workspace2.CurrentSolution.Projects.Single().GetCompilationAsync()).GlobalNamespace.GetTypeMembers("Type1").Single(); 584var type1_v1 = (await workspace1.CurrentSolution.Projects.Single().GetCompilationAsync()).GlobalNamespace.GetTypeMembers("Type1").Single(); 585var type1_v2 = (await workspace2.CurrentSolution.Projects.Single().GetCompilationAsync()).GlobalNamespace.GetTypeMembers("Type1").Single(); 613var type1_v1 = (await workspace1.CurrentSolution.Projects.Single().GetCompilationAsync()).GlobalNamespace.GetTypeMembers("Type1").Single(); 614var type1_v2 = (await workspace2.CurrentSolution.Projects.Single().GetCompilationAsync()).GlobalNamespace.GetTypeMembers("Type1").Single(); 644var type1_v1 = (await workspace1.CurrentSolution.Projects.Single().GetCompilationAsync()).GlobalNamespace.GetTypeMembers("Type1").Single(); 645var type1_v2 = (await workspace2.CurrentSolution.Projects.Single().GetCompilationAsync()).GlobalNamespace.GetTypeMembers("Type1").Single(); 680var csharpType1 = (await workspace1.CurrentSolution.Projects.Single().GetCompilationAsync()).GlobalNamespace.GetTypeMembers("Type1").Single(); 681var vbType1 = (await workspace2.CurrentSolution.Projects.Single().GetCompilationAsync()).GlobalNamespace.GetTypeMembers("Type1").Single(); 727var csharpType1 = (await workspace1.CurrentSolution.Projects.Single().GetCompilationAsync()).GlobalNamespace.GetTypeMembers("Type1").Single(); 728var vbType1 = (await workspace2.CurrentSolution.Projects.Single().GetCompilationAsync()).GlobalNamespace.GetTypeMembers("Type1").Single(); 760var type1_v1 = (await workspace1.CurrentSolution.Projects.Single().GetCompilationAsync()).GlobalNamespace.GetTypeMembers("Type1").Single(); 790var type1_v1 = (await workspace1.CurrentSolution.Projects.Single().GetCompilationAsync()).GlobalNamespace.GetTypeMembers("Type1").Single(); 791var type1_v2 = (await workspace2.CurrentSolution.Projects.Single().GetCompilationAsync()).GlobalNamespace.GetTypeMembers("Type1").Single(); 827var type1_v1 = (await workspace1.CurrentSolution.Projects.Single().GetCompilationAsync()).GlobalNamespace.GetTypeMembers("Type1").Single(); 828var type1_v2 = (await workspace2.CurrentSolution.Projects.Single().GetCompilationAsync()).GlobalNamespace.GetTypeMembers("Type1").Single(); 862var type1_v1 = (await workspace1.CurrentSolution.Projects.Single().GetCompilationAsync()).GlobalNamespace.GetTypeMembers("Type1").Single(); 863var type1_v2 = (await workspace2.CurrentSolution.Projects.Single().GetCompilationAsync()).GlobalNamespace.GetTypeMembers("Type1").Single(); 899var type1_v1 = (await workspace1.CurrentSolution.Projects.Single().GetCompilationAsync()).GlobalNamespace.GetTypeMembers("Type1").Single(); 900var type1_v2 = (await workspace2.CurrentSolution.Projects.Single().GetCompilationAsync()).GlobalNamespace.GetTypeMembers("Type1").Single(); 937var outerType1 = outer1.GetTypeMembers("Type").Single(); 938var outerType2 = outer2.GetTypeMembers("Type").Single(); 940var innerType1 = inner1.GetTypeMembers("Type").Single(); 941var innerType2 = inner2.GetTypeMembers("Type").Single(); 1009var type1_v1 = (await workspace1.CurrentSolution.Projects.Single().GetCompilationAsync()).GlobalNamespace.GetTypeMembers("Type1").Single(); 1010var type1_v2 = (await workspace2.CurrentSolution.Projects.Single().GetCompilationAsync()).GlobalNamespace.GetTypeMembers("Type1").Single(); 1011var type2_v1 = (await workspace1.CurrentSolution.Projects.Single().GetCompilationAsync()).GlobalNamespace.GetTypeMembers("Type2").Single(); 1012var type2_v2 = (await workspace2.CurrentSolution.Projects.Single().GetCompilationAsync()).GlobalNamespace.GetTypeMembers("Type2").Single(); 1048var type1_v1 = (await workspace1.CurrentSolution.Projects.Single().GetCompilationAsync()).GlobalNamespace.GetTypeMembers("Type1").Single(); 1049var type1_v2 = (await workspace2.CurrentSolution.Projects.Single().GetCompilationAsync()).GlobalNamespace.GetTypeMembers("Type2").Single(); 1075var type1_v1 = (await workspace1.CurrentSolution.Projects.Single().GetCompilationAsync()).GlobalNamespace.GetTypeMembers("Type1").Single(); 1076var type1_v2 = (await workspace2.CurrentSolution.Projects.Single().GetCompilationAsync()).GlobalNamespace.GetTypeMembers("Type1").Single(); 1102var type1_v1 = (await workspace1.CurrentSolution.Projects.Single().GetCompilationAsync()).GlobalNamespace.GetTypeMembers("Type1").Single(); 1103var type1_v2 = (await workspace2.CurrentSolution.Projects.Single().GetCompilationAsync()).GlobalNamespace.GetTypeMembers("Type1").Single(); 1135var outer = (await workspace1.CurrentSolution.Projects.Single().GetCompilationAsync()).GlobalNamespace.GetTypeMembers("Outer").Single(); 1136var other = (await workspace2.CurrentSolution.Projects.Single().GetCompilationAsync()).GlobalNamespace.GetTypeMembers("Other").Single(); 1137var type1_v1 = outer.GetTypeMembers("Type1").Single(); 1138var type1_v2 = other.GetTypeMembers("Type1").Single(); 1167var type1_v1 = (await workspace1.CurrentSolution.Projects.Single().GetCompilationAsync()).GlobalNamespace.GetTypeMembers("Type1").Single(); 1168var type1_v2 = (await workspace2.CurrentSolution.Projects.Single().GetCompilationAsync()).GlobalNamespace.GetTypeMembers("Type1").Single(); 1200var type1_v1 = (await workspace1.CurrentSolution.Projects.Single().GetCompilationAsync()).GlobalNamespace.GetTypeMembers("C").Single(); 1201var type1_v2 = (await workspace2.CurrentSolution.Projects.Single().GetCompilationAsync()).GlobalNamespace.GetTypeMembers("C").Single(); 1242var type1_v1 = (await workspace1.CurrentSolution.Projects.Single().GetCompilationAsync()).GlobalNamespace.GetTypeMembers("C").Single(); 1243var type1_v2 = (await workspace2.CurrentSolution.Projects.Single().GetCompilationAsync()).GlobalNamespace.GetTypeMembers("C").Single(); 1274var type1_v1 = (await workspace1.CurrentSolution.Projects.Single().GetCompilationAsync()).GlobalNamespace.GetTypeMembers("C").Single(); 1275var type1_v2 = (await workspace2.CurrentSolution.Projects.Single().GetCompilationAsync()).GlobalNamespace.GetTypeMembers("C").Single(); 1306var type1_v1 = (await workspace1.CurrentSolution.Projects.Single().GetCompilationAsync()).GlobalNamespace.GetTypeMembers("C").Single(); 1307var type1_v2 = (await workspace2.CurrentSolution.Projects.Single().GetCompilationAsync()).GlobalNamespace.GetTypeMembers("C").Single(); 1339var type1_v1 = (await workspace1.CurrentSolution.Projects.Single().GetCompilationAsync()).GlobalNamespace.GetTypeMembers("C").Single(); 1340var type1_v2 = (await workspace2.CurrentSolution.Projects.Single().GetCompilationAsync()).GlobalNamespace.GetTypeMembers("C").Single(); 1372var type1_v1 = (await workspace1.CurrentSolution.Projects.Single().GetCompilationAsync()).GlobalNamespace.GetTypeMembers("C").Single(); 1373var type1_v2 = (await workspace2.CurrentSolution.Projects.Single().GetCompilationAsync()).GlobalNamespace.GetTypeMembers("C").Single(); 1406var type1_v1 = (await workspace1.CurrentSolution.Projects.Single().GetCompilationAsync()).GlobalNamespace.GetTypeMembers("C").Single(); 1407var type1_v2 = (await workspace2.CurrentSolution.Projects.Single().GetCompilationAsync()).GlobalNamespace.GetTypeMembers("C").Single(); 1445var t1 = (await workspace1.CurrentSolution.Projects.Single().GetCompilationAsync()).GlobalNamespace.GetTypeMembers("T").Single(); 1446var t2 = (await workspace2.CurrentSolution.Projects.Single().GetCompilationAsync()).GlobalNamespace.GetTypeMembers("T").Single(); 1511var t1 = (await workspace1.CurrentSolution.Projects.Single().GetCompilationAsync()).GlobalNamespace.GetTypeMembers("T").Single(); 1512var t2 = (await workspace2.CurrentSolution.Projects.Single().GetCompilationAsync()).GlobalNamespace.GetTypeMembers("T").Single(); 1576var t1 = (await workspace1.CurrentSolution.Projects.Single().GetCompilationAsync()).GlobalNamespace.GetTypeMembers("T").Single(); 1577var t2 = (await workspace2.CurrentSolution.Projects.Single().GetCompilationAsync()).GlobalNamespace.GetTypeMembers("T").Single(); 1641var t1 = (await workspace1.CurrentSolution.Projects.Single().GetCompilationAsync()).GlobalNamespace.GetTypeMembers("T").Single(); 1642var t2 = (await workspace2.CurrentSolution.Projects.Single().GetCompilationAsync()).GlobalNamespace.GetTypeMembers("T").Single(); 1997var type1 = compilation.GlobalNamespace.GetTypeMembers(typeName).Single();
Microsoft.CodeAnalysis.EditorFeatures2.UnitTests (1)
Diagnostics\AdditionalFileDiagnosticsTests.vb (1)
91Dim namedType = DirectCast(context.Symbol, INamedTypeSymbol)
Microsoft.CodeAnalysis.ExpressionEvaluator.ExpressionCompiler (1)
AbstractTypeParameterChecker.cs (1)
120public sealed override void VisitNamedType(INamedTypeSymbol symbol)
Microsoft.CodeAnalysis.Extensions.Package (328)
Compilation\CompilationExtensions.cs (78)
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? EventArgsType(this Compilation compilation) 129public static INamedTypeSymbol? NotImplementedExceptionType(this Compilation compilation) 132public static INamedTypeSymbol? EqualityComparerOfTType(this Compilation compilation) 135public static INamedTypeSymbol? ActionType(this Compilation compilation) 138public static INamedTypeSymbol? ExpressionOfTType(this Compilation compilation) 141public static INamedTypeSymbol? EditorBrowsableAttributeType(this Compilation compilation) 144public static INamedTypeSymbol? EditorBrowsableStateType(this Compilation compilation) 147public static INamedTypeSymbol? TaskType(this Compilation compilation) 150public static INamedTypeSymbol? TaskOfTType(this Compilation compilation) 153public static INamedTypeSymbol? ValueTaskType(this Compilation compilation) 156public static INamedTypeSymbol? ValueTaskOfTType(this Compilation compilation) 159public static INamedTypeSymbol? IEnumerableType(this Compilation compilation) 162public static INamedTypeSymbol? IEnumerableOfTType(this Compilation compilation) 165public static INamedTypeSymbol? IEnumeratorOfTType(this Compilation compilation) 168public static INamedTypeSymbol? IListOfTType(this Compilation compilation) 171public static INamedTypeSymbol? IReadOnlyListOfTType(this Compilation compilation) 174public static INamedTypeSymbol? ISetOfTType(this Compilation compilation) 177public static INamedTypeSymbol? IReadOnlySetOfTType(this Compilation compilation) 180public static INamedTypeSymbol? IAsyncEnumerableOfTType(this Compilation compilation) 183public static INamedTypeSymbol? IAsyncEnumeratorOfTType(this Compilation compilation) 186public static INamedTypeSymbol? ImmutableArrayOfTType(this Compilation compilation) 189public static INamedTypeSymbol? SerializableAttributeType(this Compilation compilation) 192public static INamedTypeSymbol? CoClassType(this Compilation compilation) 195public static INamedTypeSymbol? ComAliasNameAttributeType(this Compilation compilation) 198public static INamedTypeSymbol? SuppressMessageAttributeType(this Compilation compilation) 201public static INamedTypeSymbol? TupleElementNamesAttributeType(this Compilation compilation) 204public static INamedTypeSymbol? NativeIntegerAttributeType(this Compilation compilation) 207public static INamedTypeSymbol? DynamicAttributeType(this Compilation compilation) 210public static INamedTypeSymbol? LazyOfTType(this Compilation compilation) 213public static INamedTypeSymbol? ISerializableType(this Compilation compilation) 216public static INamedTypeSymbol? SerializationInfoType(this Compilation compilation) 219public static INamedTypeSymbol? StreamingContextType(this Compilation compilation) 222public static INamedTypeSymbol? OnDeserializingAttribute(this Compilation compilation) 225public static INamedTypeSymbol? OnDeserializedAttribute(this Compilation compilation) 228public static INamedTypeSymbol? OnSerializingAttribute(this Compilation compilation) 231public static INamedTypeSymbol? OnSerializedAttribute(this Compilation compilation) 234public static INamedTypeSymbol? ComRegisterFunctionAttribute(this Compilation compilation) 237public static INamedTypeSymbol? ComUnregisterFunctionAttribute(this Compilation compilation) 240public static INamedTypeSymbol? ConditionalAttribute(this Compilation compilation) 243public static INamedTypeSymbol? ObsoleteAttribute(this Compilation compilation) 246public static INamedTypeSymbol? SystemCompositionImportingConstructorAttribute(this Compilation compilation) 249public static INamedTypeSymbol? SystemComponentModelCompositionImportingConstructorAttribute(this Compilation compilation) 252public static INamedTypeSymbol? SystemIDisposableType(this Compilation compilation) 255public static INamedTypeSymbol? NotNullAttribute(this Compilation compilation) 258public static INamedTypeSymbol? MaybeNullAttribute(this Compilation compilation) 261public static INamedTypeSymbol? MaybeNullWhenAttribute(this Compilation compilation) 264public static INamedTypeSymbol? AllowNullAttribute(this Compilation compilation) 267public static INamedTypeSymbol? DisallowNullAttribute(this Compilation compilation) 270public static INamedTypeSymbol? DataMemberAttribute(this Compilation compilation) 273public static INamedTypeSymbol? DataContractAttribute(this Compilation compilation) 276public static INamedTypeSymbol? AsyncMethodBuilderAttribute(this Compilation compilation) 279public static INamedTypeSymbol? CancellationTokenType(this Compilation compilation) 282public static INamedTypeSymbol? ValueTupleType(this Compilation compilation, int arity) 285public static INamedTypeSymbol? ListOfTType(this Compilation compilation) 288public static INamedTypeSymbol? ReadOnlySpanOfTType(this Compilation compilation) 291public static INamedTypeSymbol? SpanOfTType(this Compilation compilation) 294public static INamedTypeSymbol? InterpolatedStringHandlerAttributeType(this Compilation compilation) 322public static INamedTypeSymbol? GetBestTypeByMetadataName(this Compilation compilation, string fullyQualifiedMetadataName) 324INamedTypeSymbol? type = null; 326foreach (var currentType in compilation.GetTypesByMetadataName(fullyQualifiedMetadataName)) 361foreach (var candidateTopLevelType in compilation.SourceModule.GlobalNamespace.GetTypeMembers(WellKnownMemberNames.TopLevelStatementsEntryPointTypeName, arity: 0)) 373public static INamedTypeSymbol? TryGetCallingConventionSymbol(this Compilation compilation, string callingConvention)
Symbols\IMethodSymbolExtensions.cs (4)
44public static bool HasEventHandlerSignature(this IMethodSymbol method, [NotNullWhen(returnValue: true)] INamedTypeSymbol? eventArgsType) 103public static bool IsEntryPoint(this IMethodSymbol methodSymbol, INamedTypeSymbol? taskType, INamedTypeSymbol? genericTaskType) 119if (method.ReturnType is not INamedTypeSymbol { Arity: 0 })
Symbols\INamedTypeSymbolExtensions.cs (73)
23public static IEnumerable<INamedTypeSymbol> GetBaseTypesAndThis(this INamedTypeSymbol? namedType) 25var current = namedType; 33public static ImmutableArray<ITypeParameterSymbol> GetAllTypeParameters(this INamedTypeSymbol? symbol) 39public static ImmutableArray<ITypeSymbol> GetAllTypeArguments(this INamedTypeSymbol? symbol) 45private static Stack<INamedTypeSymbol> GetContainmentStack(INamedTypeSymbol? symbol) 47var stack = new Stack<INamedTypeSymbol>(); 48for (var current = symbol; current != null; current = current.ContainingType) 56public static bool IsContainedWithin([NotNullWhen(returnValue: true)] this INamedTypeSymbol? symbol, INamedTypeSymbol outer) 59for (var current = symbol; current != null; current = current.ContainingType) 70public static ISymbol? FindImplementationForAbstractMember(this INamedTypeSymbol? type, ISymbol symbol) 81private static bool ImplementationExists(INamedTypeSymbol classOrStructType, ISymbol member) 85this INamedTypeSymbol classOrStructType, 87Func<INamedTypeSymbol, ISymbol, bool> isValidImplementation, 117private static bool IsInterfacePropertyImplemented(INamedTypeSymbol classOrStructType, IPropertySymbol propertySymbol) 125static bool IsAccessorImplemented(IMethodSymbol? accessor, INamedTypeSymbol classOrStructType) 131private static bool IsAbstractPropertyImplemented(INamedTypeSymbol classOrStructType, IPropertySymbol propertySymbol) 154this INamedTypeSymbol classOrStructType, 156Func<INamedTypeSymbol, ISymbol, bool> isValid, 179public static ImmutableArray<(INamedTypeSymbol type, ImmutableArray<ISymbol> members)> GetAllUnimplementedMembers( 180this INamedTypeSymbol classOrStructType, 181IEnumerable<INamedTypeSymbol> interfaces, 197static ImmutableArray<ISymbol> GetImplicitlyImplementableMembers(INamedTypeSymbol type, ISymbol within) 249public static ImmutableArray<(INamedTypeSymbol type, ImmutableArray<ISymbol> members)> GetAllUnimplementedMembersInThis( 250this INamedTypeSymbol classOrStructType, 251IEnumerable<INamedTypeSymbol> interfacesOrAbstractClasses, 267public static ImmutableArray<(INamedTypeSymbol type, ImmutableArray<ISymbol> members)> GetAllUnimplementedMembersInThis( 268this INamedTypeSymbol classOrStructType, 269IEnumerable<INamedTypeSymbol> interfacesOrAbstractClasses, 270Func<INamedTypeSymbol, ISymbol, ImmutableArray<ISymbol>> interfaceMemberGetter, 286public static ImmutableArray<(INamedTypeSymbol type, ImmutableArray<ISymbol> members)> GetAllUnimplementedExplicitMembers( 287this INamedTypeSymbol classOrStructType, 288IEnumerable<INamedTypeSymbol> interfaces, 300private static ImmutableArray<ISymbol> GetExplicitlyImplementableMembers(INamedTypeSymbol type, ISymbol within) 327private static ImmutableArray<(INamedTypeSymbol type, ImmutableArray<ISymbol> members)> GetAllUnimplementedMembers( 328this INamedTypeSymbol classOrStructType, 329IEnumerable<INamedTypeSymbol> interfacesOrAbstractClasses, 330Func<INamedTypeSymbol, ISymbol, Func<INamedTypeSymbol, ISymbol, bool>, CancellationToken, bool> isImplemented, 331Func<INamedTypeSymbol, ISymbol, bool> isValidImplementation, 332Func<INamedTypeSymbol, ISymbol, ImmutableArray<ISymbol>> interfaceMemberGetter, 361private static ImmutableArray<INamedTypeSymbol> GetTypesToImplement( 362INamedTypeSymbol classOrStructType, 363IEnumerable<INamedTypeSymbol> interfacesOrAbstractClasses, 372private static ImmutableArray<INamedTypeSymbol> GetAbstractClassesToImplement( 373IEnumerable<INamedTypeSymbol> abstractClasses) 378private static ImmutableArray<INamedTypeSymbol> GetInterfacesToImplement( 379INamedTypeSymbol classOrStructType, 380IEnumerable<INamedTypeSymbol> interfaces, 387var interfacesToImplement = new List<INamedTypeSymbol>( 392var baseType = classOrStructType.BaseType; 403this INamedTypeSymbol classOrStructType, 404INamedTypeSymbol interfaceType, 405Func<INamedTypeSymbol, ISymbol, Func<INamedTypeSymbol, ISymbol, bool>, CancellationToken, bool> isImplemented, 406Func<INamedTypeSymbol, ISymbol, bool> isValidImplementation, 407Func<INamedTypeSymbol, ISymbol, ImmutableArray<ISymbol>> interfaceMemberGetter, 449this INamedTypeSymbol attributeSymbol, 455var systemAttributeType = compilation.AttributeType(); 457foreach (var type in attributeSymbol.GetBaseTypesAndThis()) 517private static ImmutableArray<ISymbol> GetMembers(INamedTypeSymbol type, ISymbol within) 531this INamedTypeSymbol containingType, CancellationToken cancellationToken) 548foreach (var type in baseTypes) 569Dictionary<ISymbol, int> result, INamedTypeSymbol containingType, CancellationToken cancellationToken) 590Dictionary<ISymbol, int> result, INamedTypeSymbol containingType, CancellationToken cancellationToken) 612Dictionary<ISymbol, int> result, INamedTypeSymbol containingType, 613INamedTypeSymbol type, ref int index, CancellationToken cancellationToken) 626private static bool IsOverridable(ISymbol member, INamedTypeSymbol containingType) 669public static INamedTypeSymbol TryConstruct(this INamedTypeSymbol type, ITypeSymbol[] typeArguments) 672public static bool IsCollectionBuilderAttribute([NotNullWhen(true)] this INamedTypeSymbol? type)
Symbols\INamespaceOrTypeSymbolExtensions.cs (3)
90public static IEnumerable<INamedTypeSymbol> GetAllTypes( 106var namedType = (INamedTypeSymbol)current;
Symbols\ISymbolExtensions.cs (15)
98foreach (var baseType in symbol.ContainingType.GetBaseTypes()) 107bool TryFindLooseMatch(ISymbol symbol, INamedTypeSymbol baseType, [NotNullWhen(true)] out ISymbol? looseMatch) 156foreach (var iface in symbol.ContainingType.AllInterfaces) 214public static INamedTypeSymbol? GetContainingTypeOrThis(this ISymbol symbol) 216if (symbol is INamedTypeSymbol namedType) 309=> symbol is INamedTypeSymbol { IsAnonymousType: true }; 352SymbolKind.NamedType => ((INamedTypeSymbol)symbol).Arity, 433INamedTypeSymbol nt => nt.TypeParameters, 454INamedTypeSymbol nt => nt.TypeArguments, 463var containingType = symbol.ContainingType; 504var delegateType = compilation.GetTypeByMetadataName(method.ReturnsVoid 533=> symbol is INamedTypeSymbol { IsStatic: true }; 545foreach (var type in namespaceOrType.GetAllTypes(cancellationToken)) 559return ((INamedTypeSymbol)symbol).GetMembers().OfType<IPropertySymbol>().Where(p => p.CanBeReferencedByName); 809public static bool HasAttribute([NotNullWhen(true)] this ISymbol? symbol, [NotNullWhen(true)] INamedTypeSymbol? attributeClass)
Symbols\ISymbolExtensions.RequiresUnsafeModifierVisitor.cs (1)
56public override bool VisitNamedType(INamedTypeSymbol symbol)
Symbols\ISymbolExtensions_Accessibility.cs (25)
27else if (within is INamedTypeSymbol namedType) 54INamedTypeSymbol within, 67INamedTypeSymbol within, 92Debug.Assert(within is INamedTypeSymbol or IAssemblySymbol); 124return IsNamedTypeAccessible((INamedTypeSymbol)symbol, within); 177private static bool IsNamedTypeAccessible(INamedTypeSymbol type, ISymbol within) 179Debug.Assert(within is INamedTypeSymbol or IAssemblySymbol); 204var containingType = type.ContainingType; 217Debug.Assert(within is INamedTypeSymbol or IAssemblySymbol); 219var withinAssembly = (within as IAssemblySymbol) ?? ((INamedTypeSymbol)within).ContainingAssembly; 248INamedTypeSymbol containingType, 254Debug.Assert(within is INamedTypeSymbol or IAssemblySymbol); 259var originalContainingType = containingType.OriginalDefinition; 260var withinNamedType = within as INamedTypeSymbol; 261var withinAssembly = (within as IAssemblySymbol) ?? ((INamedTypeSymbol)within).ContainingAssembly; 334INamedTypeSymbol? withinType, 337INamedTypeSymbol originalContainingType, 375var current = withinType.OriginalDefinition; 411INamedTypeSymbol originalContainingType) 413Debug.Assert(within is INamedTypeSymbol or IAssemblySymbol); 415if (within is not INamedTypeSymbol withinType) 428INamedTypeSymbol withinType, 429INamedTypeSymbol originalContainingType) 436var current = withinType.OriginalDefinition;
Symbols\ITypeGenerator.cs (1)
13ITypeSymbol Construct(INamedTypeSymbol namedType, ITypeSymbol[] typeArguments);
Symbols\ITypeParameterSymbolExtensions.cs (4)
14public static INamedTypeSymbol? GetNamedTypeSymbolConstraint(this ITypeParameterSymbol typeParameter) 17private static INamedTypeSymbol? GetNamedTypeSymbol(ITypeSymbol type) 19return type is INamedTypeSymbol 20? (INamedTypeSymbol)type
Symbols\ITypeSymbolExtensions.AnonymousTypeRemover.cs (1)
42public override ITypeSymbol VisitNamedType(INamedTypeSymbol symbol)
Symbols\ITypeSymbolExtensions.CollectTypeParameterSymbolsVisitor.cs (1)
57public override void VisitNamedType(INamedTypeSymbol symbol)
Symbols\ITypeSymbolExtensions.CompilationTypeGenerator.cs (1)
19public ITypeSymbol Construct(INamedTypeSymbol namedType, ITypeSymbol[] typeArguments)
Symbols\ITypeSymbolExtensions.cs (30)
43public static ImmutableArray<INamedTypeSymbol> GetAllInterfacesIncludingThis(this ITypeSymbol type) 46return type is INamedTypeSymbol { TypeKind: TypeKind.Interface } namedType && !allInterfaces.Contains(namedType) 69underlyingType = ((INamedTypeSymbol)symbol).TypeArguments[0]; 92public static bool IsAnonymousType([NotNullWhen(returnValue: true)] this INamedTypeSymbol? symbol) 95private static HashSet<INamedTypeSymbol> GetOriginalInterfacesAndTheirBaseInterfaces( 97HashSet<INamedTypeSymbol>? symbols = null) 99symbols ??= new HashSet<INamedTypeSymbol>(SymbolEquivalenceComparer.Instance); 101foreach (var interfaceType in type.Interfaces) 120public static IEnumerable<INamedTypeSymbol> GetBaseTypes(this ITypeSymbol? type) 122var current = type?.BaseType; 140public static IEnumerable<INamedTypeSymbol> GetContainingTypes(this ITypeSymbol type) 142var current = type.ContainingType; 198var currentBaseType = type.BaseType; 227for (var b = symbol.BaseType; b != null; b = b.BaseType) 315INamedTypeSymbol n => ContainsAnonymousType(n), 320private static bool ContainsAnonymousType(INamedTypeSymbol type) 410public static INamedTypeSymbol? GetDelegateType(this ITypeSymbol? typeSymbol, Compilation compilation) 414var expressionOfT = compilation.ExpressionOfTType(); 417var typeArgument = ((INamedTypeSymbol)typeSymbol).TypeArguments[0]; 418return typeArgument as INamedTypeSymbol; 423return typeSymbol as INamedTypeSymbol; 576var n2 = t2 as INamedTypeSymbol; 578if (t1 is not INamedTypeSymbol n1) 628public static bool IsEnumType([NotNullWhen(true)] this ITypeSymbol? type, [NotNullWhen(true)] out INamedTypeSymbol? enumType) 632enumType = (INamedTypeSymbol)type; 724if (type is not INamedTypeSymbol 777=> type is INamedTypeSymbol 785=> symbol is INamedTypeSymbol 793=> type is INamedTypeSymbol namedType &&
Symbols\ITypeSymbolExtensions.MinimalAccessibilityVisitor.cs (2)
42foreach (var callingConventionType in symbol.Signature.UnmanagedCallingConventionTypes) 50public override Accessibility VisitNamedType(INamedTypeSymbol symbol)
Symbols\ITypeSymbolExtensions.SubstituteTypesVisitor.cs (1)
58public override ITypeSymbol VisitNamedType(INamedTypeSymbol symbol)
Symbols\ITypeSymbolExtensions.UnavailableTypeParameterRemover.cs (1)
43public override ITypeSymbol VisitNamedType(INamedTypeSymbol symbol)
Symbols\ITypeSymbolExtensions.UnnamedErrorTypeRemover.cs (1)
42public override ITypeSymbol VisitNamedType(INamedTypeSymbol symbol)
Symbols\SymbolEquivalenceComparer.cs (12)
149public bool ReturnTypeEquals(IMethodSymbol x, IMethodSymbol y, Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies = null) 164public bool Equals(ISymbol? x, ISymbol? y, Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies) 170private bool EqualsCore(ISymbol? x, ISymbol? y, Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies) 191private static bool IsConstructedFromSelf(INamedTypeSymbol symbol) 213private static OneOrMany<INamedTypeSymbol> Unwrap(INamedTypeSymbol namedType) 219using var builder = TemporaryArray<INamedTypeSymbol>.Empty; 224if (candidate is INamedTypeSymbol candidateType) 257private static TypeKind GetTypeKind(INamedTypeSymbol x)
Symbols\SymbolEquivalenceComparer.EquivalenceVisitor.cs (65)
22public bool AreEquivalent(ISymbol? x, ISymbol? y, Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies) 51return AreArrayAndReadOnlySpanEquivalent((IArrayTypeSymbol)x, (INamedTypeSymbol)y, equivalentTypesWithDifferingAssemblies); 55return AreArrayAndReadOnlySpanEquivalent((IArrayTypeSymbol)y, (INamedTypeSymbol)x, equivalentTypesWithDifferingAssemblies); 65private bool AreArrayAndReadOnlySpanEquivalent(IArrayTypeSymbol array, INamedTypeSymbol readOnlySpanType, Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies) 73internal bool AreEquivalent(CustomModifier x, CustomModifier y, Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies) 76internal bool AreEquivalent(ImmutableArray<CustomModifier> x, ImmutableArray<CustomModifier> y, Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies) 112private bool AreEquivalentWorker(ISymbol x, ISymbol y, SymbolKind k, Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies) 126SymbolKind.NamedType => NamedTypesAreEquivalent((INamedTypeSymbol)x, (INamedTypeSymbol)y, equivalentTypesWithDifferingAssemblies), 127SymbolKind.ErrorType => NamedTypesAreEquivalent((INamedTypeSymbol)x, (INamedTypeSymbol)y, equivalentTypesWithDifferingAssemblies), 140private bool ArrayTypesAreEquivalent(IArrayTypeSymbol x, IArrayTypeSymbol y, Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies) 152private bool FieldsAreEquivalent(IFieldSymbol x, IFieldSymbol y, Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies) 170private bool MethodsAreEquivalent(IMethodSymbol x, IMethodSymbol y, Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies, bool considerReturnRefKinds = false) 281private bool NamedTypesAreEquivalent(INamedTypeSymbol x, INamedTypeSymbol y, Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies) 301private bool NamedTypesAreEquivalentError(INamedTypeSymbol x, INamedTypeSymbol y, Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies) 303foreach (var type1 in Unwrap(x)) 306foreach (var type2 in Unwrap(y)) 330private bool HandleNamedTypesWorker(INamedTypeSymbol x, INamedTypeSymbol y, Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies) 418private bool HandleTupleTypes(INamedTypeSymbol x, INamedTypeSymbol y, Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies) 463Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies, 486internal bool ReturnTypesAreEquivalent(IMethodSymbol x, IMethodSymbol y, Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies = null) 492private bool TypeArgumentsAreEquivalent(ImmutableArray<ITypeSymbol> xTypeArguments, ImmutableArray<ITypeSymbol> yTypeArguments, Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies) 511private bool HandleAnonymousTypes(INamedTypeSymbol x, INamedTypeSymbol y, Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies) 547private bool NamespacesAreEquivalent(INamespaceSymbol x, INamespaceSymbol y, Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies) 564private bool ParametersAreEquivalent(IParameterSymbol x, IParameterSymbol y, Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies) 574private bool PointerTypesAreEquivalent(IPointerTypeSymbol x, IPointerTypeSymbol y, Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies) 581private bool FunctionPointerTypesAreEquivalent(IFunctionPointerTypeSymbol x, IFunctionPointerTypeSymbol y, Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies) 584private bool PropertiesAreEquivalent(IPropertySymbol x, IPropertySymbol y, Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies) 608private bool EventsAreEquivalent(IEventSymbol x, IEventSymbol y, Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies) 617private bool TypeParametersAreEquivalent(ITypeParameterSymbol x, ITypeParameterSymbol y, Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies)
Symbols\SymbolEquivalenceComparer.GetHashCodeVisitor.cs (5)
70SymbolKind.NamedType => CombineHashCodes((INamedTypeSymbol)x, currentHash), 146private int CombineHashCodes(INamedTypeSymbol x, int currentHash) 154if (candidate is INamedTypeSymbol candidateNamedType) 164private int CombineNamedTypeHashCode(INamedTypeSymbol x, int currentHash) 193private int CombineAnonymousTypeHashCode(INamedTypeSymbol x, int currentHash)
Symbols\SymbolEquivalenceComparer.ParameterSymbolEqualityComparer.cs (2)
23Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies,
Symbols\SymbolEquivalenceComparer.SignatureTypeSymbolEquivalenceComparer.cs (2)
18public bool Equals(ITypeSymbol? x, ITypeSymbol? y, Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies)
Microsoft.CodeAnalysis.ExternalAccess.OmniSharp (2)
ExtractClass\IOmniSharpExtractClassOptionsService.cs (1)
11OmniSharpExtractClassOptions? GetExtractClassOptions(Document document, INamedTypeSymbol originalType, ImmutableArray<ISymbol> selectedMembers);
Internal\ExtractClass\OmniSharpExtractClassOptionsService.cs (1)
26INamedTypeSymbol originalType,
Microsoft.CodeAnalysis.Features (785)
AddConstructorParametersFromMembers\AddConstructorParametersFromMembersCodeRefactoringProvider.cs (2)
114var containingType = state.ContainingType; 144static AddConstructorParametersCodeAction GetOptionalContructorParametersCodeAction(Document 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\SymbolReferenceFinder.cs (4)
174/// to the <see cref="INamespaceSymbol"/>s or <see cref="INamedTypeSymbol"/>s those types are 314if (propertyOrFieldType is INamedTypeSymbol propertyType && 322var namedTypeSymbols = OfType<INamedTypeSymbol>(symbolResults); 338private bool HasAccessibleStaticFieldOrProperty(INamedTypeSymbol namedType, string fieldOrPropertyName)
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 (3)
52INamedTypeSymbol suppressMessageAttribute, 60SyntaxNode targetNode, ISymbol targetSymbol, INamedTypeSymbol suppressMessageAttribute, Diagnostic diagnostic); 194INamedTypeSymbol suppressMessageAttribute = null;
CodeFixes\Suppression\AbstractSuppressionCodeFixProvider.GlobalSuppressMessageCodeAction.cs (2)
16ISymbol targetSymbol, INamedTypeSymbol suppressMessageAttribute, 20private 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)
311var symbol = (INamedTypeSymbol)SemanticDocument.SemanticModel.GetRequiredDeclaredSymbol(node, CancellationToken);
CodeRefactorings\SyncNamespace\AbstractChangeNamespaceService.cs (2)
336if (memberSymbol is INamedTypeSymbol typeSymbol 524if (symbol is INamedTypeSymbol typeSymbol && typeSymbol.MightContainExtensionMethods)
Common\SymbolDisplayPartKindTags.cs (1)
11public static SymbolDisplayPartKind GetSymbolDisplayPartKind(this INamedTypeSymbol namedType)
Common\TaggedText.cs (1)
114else if (alias.Target is INamedTypeSymbol namedType)
Completion\Providers\AbstractDocCommentCompletionProvider.cs (1)
239if (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)
36if (type is not INamedTypeSymbol initializedType) 42var enclosing = semanticModel.GetEnclosingNamedType(position, cancellationToken); 91protected 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)
63Document document, CompletionItem item, Compilation compilation, ISymbol member, INamedTypeSymbol containingType, CancellationToken cancellationToken) 88if (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 (3)
46var taskType = context.SemanticModel.Compilation.TaskType(); 84if (symbol is not INamedTypeSymbol namedType || 109if (symbol is not INamedTypeSymbol namedType ||
Completion\Providers\AbstractSymbolCompletionProvider.cs (4)
54if (symbol is INamedTypeSymbol namedType) 90private static bool ShouldIncludeInTargetTypedCompletionListForNamedType(INamedTypeSymbol symbol, TSyntaxContext syntaxContext, Dictionary<ITypeSymbol, bool> typeConvertibilityCache) 105static bool IsConvertible(INamedTypeSymbol symbol, TSyntaxContext syntaxContext) 129var typeToCheck = symbol;
Completion\Providers\ImportCompletionProvider\AbstractTypeImportCompletionService.cs (7)
279foreach (var type in types) 317private readonly struct TypeOverloadInfo(INamedTypeSymbol nonGenericOverload, INamedTypeSymbol bestGenericOverload, bool containsPublicGenericOverload) 319public INamedTypeSymbol NonGenericOverload { get; } = nonGenericOverload; 322public INamedTypeSymbol BestGenericOverload { get; } = bestGenericOverload; 326public TypeOverloadInfo Aggregate(INamedTypeSymbol type) 334var newBestGenericOverload = BestGenericOverload == null || type.Arity < BestGenericOverload.Arity
Completion\Providers\ImportCompletionProvider\ExtensionMethodImportCompletionHelper.SymbolComputer.cs (2)
368var containerSymbol = assembly.GetTypeByMetadataName(fullyQualifiedContainerName); 527case INamedTypeSymbol namedType:
Completion\Providers\ImportCompletionProvider\TypeImportCompletionCacheEntry.cs (1)
170public 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); 232INamedTypeSymbol containingType, ITypeSymbol type, string memberName) where TSymbol : class, ISymbol 239INamedTypeSymbol containingType, ITypeSymbol type, string memberName) where TSymbol : class, ISymbol 245INamedTypeSymbol containingType, ITypeSymbol collectionType, 246INamedTypeSymbol ienumerableType, INamedTypeSymbol ienumeratorType, 267var instantiatedIEnumerableType = collectionType.GetAllInterfacesIncludingThis().FirstOrDefault( 281INamedTypeSymbol containingType, IMethodSymbol getEnumeratorMethod, 282INamedTypeSymbol ienumeratorType, [NotNullWhen(true)] out ITypeSymbol? iterationType) 296var instantiatedIEnumeratorType = getEnumeratorReturnType.GetAllInterfacesIncludingThis().FirstOrDefault( 314INamedTypeSymbol containingType, 500INamedTypeSymbol containingType, 502INamedTypeSymbol ienumerableType) 524foreach (var interfaceType in collectionType.GetAllInterfacesIncludingThis())
ConvertToInterpolatedString\AbstractConvertPlaceholderToInterpolatedStringRefactoringProvider.cs (1)
119var 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) 293private static IEnumerable<INamedTypeSymbol> GetTypeMembersRecursive(INamespaceOrTypeSymbol container) 297INamedTypeSymbol 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)
283return !((INamedTypeSymbol)symbol).IsScriptClass;
EditAndContinue\AbstractEditAndContinueAnalyzer.cs (73)
314SymbolKind.NamedType => GetDisplayName((INamedTypeSymbol)symbol), 328internal virtual string GetDisplayName(INamedTypeSymbol symbol) 496internal abstract bool IsPartial(INamedTypeSymbol type); 2598protected static bool BaseTypesEquivalent(INamedTypeSymbol oldType, INamedTypeSymbol newType, bool exact) 2635case SymbolKind.NamedType when oldMember is INamedTypeSymbol { DelegateInvokeMethod: { } oldInvokeMethod }: 2636var newInvokeMethod = ((INamedTypeSymbol)newMember).DelegateInvokeMethod; 2649private sealed class MemberInitializationUpdates(INamedTypeSymbol oldType) 2651public readonly INamedTypeSymbol OldType = oldType; 2699PooledDictionary<INamedTypeSymbol, MemberInitializationUpdates>? instanceConstructorEdits = null; 2700PooledDictionary<INamedTypeSymbol, MemberInitializationUpdates>? staticConstructorEdits = null; 2729Debug.Assert(oldSymbol is INamedTypeSymbol); 2730Debug.Assert(newSymbol is INamedTypeSymbol); 2799var oldContainingType = oldSymbol?.ContainingType; 2800var newContainingType = newSymbol?.ContainingType; 2801var containingType = newContainingType ?? oldContainingType; 2806oldContainingType ??= (INamedTypeSymbol?)containingTypeSymbolKey.Resolve(oldModel.Compilation, ignoreAssemblyKey: true, cancellationToken).Symbol; 2807newContainingType ??= (INamedTypeSymbol?)containingTypeSymbolKey.Resolve(newModel.Compilation, ignoreAssemblyKey: true, cancellationToken).Symbol; 2833if (syntacticEditKind != EditKind.Delete && oldSymbol is INamedTypeSymbol oldType && newSymbol is INamedTypeSymbol newType && IsReloadable(oldType)) 2924Debug.Assert(oldSymbol is INamedTypeSymbol); 2937var oldContainingType = oldSymbol.ContainingType; 2939var newContainingType = (INamedTypeSymbol?)containingTypeKey.Resolve(newModel.Compilation, ignoreAssemblyKey: true, cancellationToken).Symbol; 3021INamedTypeSymbol? oldContainingType; 3022var newContainingType = newSymbol.ContainingType; 3064oldContainingType = containingTypeKey.Resolve(oldModel.Compilation, ignoreAssemblyKey: true, cancellationToken).Symbol as INamedTypeSymbol; 3125Contract.ThrowIfFalse(newSymbol is INamedTypeSymbol || IsGlobalMain(newSymbol)); 3127if (!capabilities.GrantNewTypeDefinition((newSymbol as INamedTypeSymbol) ?? newSymbol.ContainingType)) 3394if (oldSymbol is not INamedTypeSymbol { TypeKind: TypeKind.Delegate }) 3409INamedTypeSymbol { IsGenericType: false } or // changes in type parameter attributes and constraints need type update 3465var oldContainingType = oldSymbol.ContainingType; 3466var newContainingType = newSymbol.ContainingType; 3605INamedTypeSymbol oldType, 3606INamedTypeSymbol newType, 3612Dictionary<INamedTypeSymbol, MemberInitializationUpdates> constructorEdits; 3615constructorEdits = staticConstructorEdits ??= PooledDictionary<INamedTypeSymbol, MemberInitializationUpdates>.GetInstance(); 3619constructorEdits = instanceConstructorEdits ??= PooledDictionary<INamedTypeSymbol, MemberInitializationUpdates>.GetInstance(); 3664=> IsMember(symbol) || symbol is INamedTypeSymbol { TypeKind: TypeKind.Delegate }; 3697INamedTypeSymbol otherContainingType, 3999using var _3 = PooledHashSet<INamedTypeSymbol>.GetInstance(out var processedTypes); 4007var oldType = (INamedTypeSymbol)GetRequiredDeclaredSymbol(oldModel.RequiredModel, oldTypeDeclaration, cancellationToken); 4038var newType = (INamedTypeSymbol)GetRequiredDeclaredSymbol(newModel.RequiredModel, newTypeDeclaration, cancellationToken); 4105private static bool IsReloadable(INamedTypeSymbol type) 4108private static bool TypeOrBaseTypeHasCompilerServicesAttribute(INamedTypeSymbol type, string attributeName) 4110var current = type; 4432else if (oldSymbol is INamedTypeSymbol oldType && newSymbol is INamedTypeSymbol newType) 4521oldSymbol is not INamedTypeSymbol and not ITypeParameterSymbol and not IParameterSymbol && 4537private static void AnalyzeBaseTypes(INamedTypeSymbol oldType, INamedTypeSymbol newType, ref RudeEditKind rudeEdit, ref bool hasGeneratedAttributeChange) 4644newParameter.ContainingType is INamedTypeSymbol { TypeKind: TypeKind.Delegate } newContainingDelegateType) 4652if (hasReturnTypeAttributeChange && newSymbol is INamedTypeSymbol { TypeKind: TypeKind.Delegate } newDelegateType) 4704private static void AddDelegateMethodEdit(ArrayBuilder<SemanticEditInfo> semanticEdits, INamedTypeSymbol delegateType, string methodName, CancellationToken cancellationToken) 4734else if (oldSymbol is INamedTypeSymbol { DelegateInvokeMethod: not null and var oldInvokeMethod } && 4735newSymbol is INamedTypeSymbol { DelegateInvokeMethod: not null and var newInvokeMethod }) 4904static bool IsSecurityAttribute(INamedTypeSymbol namedTypeSymbol) 4908var symbol = namedTypeSymbol; 4973INamedTypeSymbol recordType, 4988private static IEnumerable<ISymbol> GetRecordUpdatedSynthesizedMethods(Compilation compilation, INamedTypeSymbol record) 5255if (newSymbol.ContainingType is INamedTypeSymbol { IsComImport: true }) 5315private static bool HasExplicitOrSequentialLayout(INamedTypeSymbol type, DocumentSemanticModel model) 5334var layoutAttribute = model.Compilation.GetTypeByMetadataName(typeof(StructLayoutAttribute).FullName!); 5444IReadOnlyDictionary<INamedTypeSymbol, MemberInitializationUpdates> updatedTypes, 5458var oldType = updatesInCurrentDocument.OldType; 5653private bool AnyMemberInitializerBody(INamedTypeSymbol type, Func<MemberBody, bool> predicate, bool isStatic, CancellationToken cancellationToken) 5674private static IMethodSymbol? TryGetParameterlessConstructor(INamedTypeSymbol type, bool isStatic) 5695=> symbol is INamedTypeSymbol && 6227static bool IsCapturedPrimaryParameterCapturedInType(IParameterSymbol capture, INamedTypeSymbol otherType) 6888if (current is INamedTypeSymbol { Arity: > 0 }) 6924public IMethodSymbol? GetPrimaryConstructor(INamedTypeSymbol typeSymbol, CancellationToken cancellationToken)
EditAndContinue\EditAndContinueCapabilitiesGrantor.cs (1)
22public bool GrantNewTypeDefinition(INamedTypeSymbol type)
EditAndContinue\Utilities\Extensions.cs (2)
195public static bool HasSynthesizedDefaultConstructor(this INamedTypeSymbol type) 264public 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; 81var newType = CodeGenerationSymbolFactory.CreateNamedTypeSymbol( 125var newTypeAfterEdits = await GetNewTypeSymbolAsync(documentWithTypeDeclaration, typeAnnotation, cancellationToken).ConfigureAwait(false); 140INamedTypeSymbol newType, 213private static async Task<INamedTypeSymbol> GetNewTypeSymbolAsync(Document document, SyntaxAnnotation typeAnnotation, CancellationToken cancellationToken) 219return (INamedTypeSymbol)semanticModel.GetRequiredDeclaredSymbol(declarationNode, cancellationToken); 225INamedTypeSymbol 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, 311INamedTypeSymbol typeToExtractFrom, 312INamedTypeSymbol 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>() 230bool looksGeneric, INamedTypeSymbol searchResult) 266=> symbol.ContainingSymbol is INamespaceSymbol or INamedTypeSymbol { IsGenericType: false }; 311.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; } 40INamedTypeSymbol containingType, 56INamedTypeSymbol containingType, 100INamedTypeSymbol containingType, 116private static IMethodSymbol? GetMatchingConstructorBasedOnParameterTypes(INamedTypeSymbol containingType, ImmutableArray<IParameterSymbol> 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) 118Document document, INamedTypeSymbol namedType, 129INamedTypeSymbol namedType, ImmutableArray<ISymbol> members) 149INamedTypeSymbol namedType, ImmutableArray<ISymbol> members) 152var hashCodeType = compilation.GetTypeByMetadataName("System.HashCode"); 183var 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; 123private static bool HasOperators(INamedTypeSymbol containingType) 127private static bool HasOperator(INamedTypeSymbol containingType, string operatorName) 136SemanticModel semanticModel, INamedTypeSymbol containingType, 137[NotNullWhen(true)] out INamedTypeSymbol? constructedType) 143var equatableTypeOpt = semanticModel.Compilation.GetTypeByMetadataName(typeof(IEquatable<>).FullName!); 158private static void GetExistingMemberInfo(INamedTypeSymbol containingType, out bool hasEquals, out bool hasGetHashCode) 201Document document, SyntaxNode typeDeclaration, INamedTypeSymbol containingType, ImmutableArray<ISymbol> selectedMembers, 241Document document, SyntaxNode typeDeclaration, INamedTypeSymbol containingType, ImmutableArray<ISymbol> members, 258Document document, SyntaxNode typeDeclaration, INamedTypeSymbol containingType, ImmutableArray<ISymbol> members, 266if (CanImplementIEquatable(semanticModel, containingType, out var equatableTypeOpt)) 295Document 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)
44protected abstract INamedTypeSymbol DetermineTypeToGenerateIn(SemanticModel semanticModel, TSimpleNameSyntax simpleName, CancellationToken cancellationToken); 64public abstract Task<(INamespaceSymbol, INamespaceOrTypeSymbol, Location)> GetOrGenerateEnclosingNamespaceSymbolAsync(INamedTypeSymbol namedTypeSymbol, string[] containers, Document selectedDocument, SyntaxNode selectedDocumentRoot, CancellationToken cancellationToken); 247var outerTypeSymbol = semanticModel.GetEnclosingNamedType(state.SimpleName.SpanStart, cancellationToken);
GenerateType\AbstractGenerateTypeService.Editor.cs (6)
92var namedType = await GenerateNamedTypeAsync().ConfigureAwait(false); 123var namedType = await GenerateNamedTypeAsync(_generateTypeOptionsResult).ConfigureAwait(false); 261INamedTypeSymbol namedType, 385private async Task<ImmutableArray<CodeActionOperation>> GetGenerateIntoContainingNamespaceOperationsAsync(INamedTypeSymbol namedType) 403INamedTypeSymbol namedType, 547private 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)
41public INamedTypeSymbol? TypeToGenerateInOpt { get; private set; } 47public INamedTypeSymbol? BaseTypeOrInterfaceOpt { get; private set; } 225SetBaseType(baseType as INamedTypeSymbol); 231private void SetBaseType(INamedTypeSymbol? baseType) 258BaseTypeOrInterfaceOpt = (INamedTypeSymbol)baseType.WithNullableAnnotation(NullableAnnotation.None); 321TypeToGenerateInOpt = (INamedTypeSymbol)symbol; 390else if (symbol is INamedTypeSymbol) 393TypeToGenerateInOpt = (INamedTypeSymbol)symbol.OriginalDefinition;
GenerateType\IGenerateTypeService.cs (1)
16Task<(INamespaceSymbol, INamespaceOrTypeSymbol, Location)> GetOrGenerateEnclosingNamespaceSymbolAsync(INamedTypeSymbol namedTypeSymbol, string[] containers, Document selectedDocument, SyntaxNode selectedDocumentRoot, CancellationToken cancellationToken);
GoToBase\AbstractGoToBaseService.cs (1)
22var baseType = constructor.ContainingType.BaseType;
GoToBase\FindBaseHelpers.cs (1)
16if (symbol is INamedTypeSymbol
InheritanceMargin\AbstractInheritanceMarginService.cs (1)
71if (symbol is INamedTypeSymbol namedType)
InheritanceMargin\AbstractInheritanceMarginService_Helpers.cs (7)
62if (symbol is INamedTypeSymbol namedTypeSymbol) 283INamedTypeSymbol memberSymbol, 401INamedTypeSymbol interfaceSymbol, 466INamedTypeSymbol memberSymbol, 661if (memberSymbol is INamedTypeSymbol) 678private static async Task<ImmutableArray<INamedTypeSymbol>> GetDerivedTypesAndImplementationsAsync( 680INamedTypeSymbol typeSymbol,
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)
110HashSet<INamedTypeSymbol>? seenSymbols = null) 116if (part.Symbol is INamedTypeSymbol { IsAnonymousType: true } anonymousType)
IntroduceParameter\AbstractIntroduceParameterCodeRefactoringProvider.cs (1)
84if (expressionSymbol is INamedTypeSymbol or ITypeParameterSymbol)
IntroduceUsingStatement\AbstractIntroduceUsingStatementCodeRefactoringProvider.cs (2)
68var disposableType = semanticModel.Compilation.GetSpecialType(SpecialType.System_IDisposable); 105var disposableType = semanticModel.Compilation.GetSpecialType(SpecialType.System_IDisposable);
IntroduceVariable\AbstractIntroduceLocalForExpressionCodeRefactoringProvider.cs (2)
30Document document, INamedTypeSymbol tupleType, TExpressionSyntax expression, CancellationToken cancellationToken); 113document, (INamedTypeSymbol)type, expression, cancellationToken).ConfigureAwait(false);
IntroduceVariable\AbstractIntroduceVariableService.cs (1)
270var declaringType = semanticModel.GetEnclosingNamedType(expression.SpanStart, cancellationToken);
IntroduceVariable\AbstractIntroduceVariableService.State.cs (2)
91var containingType = Expression.AncestorsAndSelf() 93.OfType<INamedTypeSymbol>()
LanguageServices\AnonymousTypeDisplayService\AbstractStructuralTypeDisplayService.cs (17)
24protected abstract ImmutableArray<SymbolDisplayPart> GetNormalAnonymousTypeParts(INamedTypeSymbol anonymousType, SemanticModel semanticModel, int position); 26public ImmutableArray<SymbolDisplayPart> GetAnonymousTypeParts(INamedTypeSymbol anonymousType, SemanticModel semanticModel, int position) 32INamedTypeSymbol anonymousType, 64ImmutableArray<INamedTypeSymbol> directStructuralTypeReferences, 71SpecializedCollections.EmptyDictionary<INamedTypeSymbol, string>(), 93var structuralType = transitiveStructuralTypeReferences[i]; 121private static Dictionary<INamedTypeSymbol, string> GenerateStructuralTypeNames( 122IList<INamedTypeSymbol> anonymousTypes) 125var anonymousTypeToName = new Dictionary<INamedTypeSymbol, string>(); 126foreach (var type in anonymousTypes) 146private static ImmutableArray<INamedTypeSymbol> OrderStructuralTypes( 147ImmutableArray<INamedTypeSymbol> structuralTypes, 186private static ImmutableArray<INamedTypeSymbol> GetTransitiveStructuralTypeReferences( 187ImmutableArray<INamedTypeSymbol> structuralTypes) 189var transitiveReferences = new Dictionary<INamedTypeSymbol, (int order, int count)>(); 192foreach (var type in structuralTypes) 199using var _ = ArrayBuilder<INamedTypeSymbol>.GetInstance(out var result);
LanguageServices\AnonymousTypeDisplayService\AbstractStructuralTypeDisplayService.StructuralTypeCollectorVisitor.cs (5)
13private sealed class StructuralTypeCollectorVisitor(Dictionary<INamedTypeSymbol, (int order, int count)> namedTypes) : SymbolVisitor 15private readonly ISet<INamedTypeSymbol> _seenTypes = new HashSet<INamedTypeSymbol>(); 16private readonly Dictionary<INamedTypeSymbol, (int order, int count)> _namedTypes = namedTypes; 67public override void VisitNamedType(INamedTypeSymbol symbol)
LanguageServices\AnonymousTypeDisplayService\IStructuralTypeDisplayService.cs (2)
14ImmutableArray<INamedTypeSymbol> structuralTypes, 19INamedTypeSymbol anonymousType,
LanguageServices\AnonymousTypeDisplayService\StructuralTypeDisplayInfo.cs (5)
11public IDictionary<INamedTypeSymbol, string> StructuralTypeToName { get; } 15IDictionary<INamedTypeSymbol, string> structuralTypeToName, 28IDictionary<INamedTypeSymbol, string> structuralTypeToName, 41IDictionary<INamedTypeSymbol, string> structuralTypeToName, 51if (part.Symbol is INamedTypeSymbol type)
LanguageServices\SymbolDisplayService\AbstractSymbolDisplayService.AbstractSymbolDescriptionBuilder.cs (3)
332else if (symbol is INamedTypeSymbol namedType) 459private void AddDescriptionForNamedType(INamedTypeSymbol symbol) 505private static bool TypeArgumentsAndParametersAreSame(INamedTypeSymbol symbol)
LanguageServices\SymbolDisplayService\AbstractSymbolDisplayService.AnonymousTypes.cs (2)
25select (INamedTypeSymbol)part.Symbol!; 31directStructuralTypes = 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)
96var topLevelNamedType = MetadataAsSourceHelpers.GetTopLevelContainingNamedType(symbol);
MetadataAsSource\AbstractMetadataAsSourceService.WrappedMethodSymbol.cs (2)
23public INamedTypeSymbol AssociatedAnonymousDelegate => _symbol.AssociatedAnonymousDelegate; 134public ImmutableArray<INamedTypeSymbol> UnmanagedCallingConventionTypes => _symbol.UnmanagedCallingConventionTypes;
MetadataAsSource\AbstractMetadataAsSourceService.WrappedNamedTypeSymbol.cs (17)
19private readonly INamedTypeSymbol _symbol; 22public WrappedNamedTypeSymbol(INamedTypeSymbol symbol, bool canImplementImplicitly, IDocumentationCommentFormattingService docCommentFormattingService) 49SymbolKind.NamedType => new WrappedNamedTypeSymbol((INamedTypeSymbol)m, canImplementImplicitly, docCommentFormattingService), 72public INamedTypeSymbol EnumUnderlyingType => _symbol.EnumUnderlyingType; 73public INamedTypeSymbol ConstructedFrom => _symbol.ConstructedFrom; 74public INamedTypeSymbol BaseType => _symbol.BaseType; 75public INamedTypeSymbol TupleUnderlyingType => _symbol.TupleUnderlyingType; 83public ImmutableArray<INamedTypeSymbol> Interfaces => _symbol.Interfaces; 84public ImmutableArray<INamedTypeSymbol> AllInterfaces => _symbol.AllInterfaces; 90public INamedTypeSymbol Construct(params ITypeSymbol[] typeArguments) 93public INamedTypeSymbol Construct(ImmutableArray<ITypeSymbol> typeArguments, ImmutableArray<NullableAnnotation> typeArgumentNullableAnnotations) 96public INamedTypeSymbol ConstructUnboundGenericType() 110public override ImmutableArray<INamedTypeSymbol> GetTypeMembers() 113public override ImmutableArray<INamedTypeSymbol> GetTypeMembers(string name) 116public override ImmutableArray<INamedTypeSymbol> GetTypeMembers(string name, int arity) 132public new INamedTypeSymbol OriginalDefinition => this; 152public INamedTypeSymbol NativeIntegerUnderlyingType => _symbol.NativeIntegerUnderlyingType;
MetadataAsSource\DecompilationMetadataAsSourceFileProvider.cs (2)
79var topLevelNamedType = MetadataAsSourceHelpers.GetTopLevelContainingNamedType(symbol); 366private static async Task<UniqueDocumentKey> GetUniqueDocumentKeyAsync(Project project, INamedTypeSymbol topLevelNamedType, bool signaturesOnly, CancellationToken cancellationToken)
MetadataAsSource\MetadataAsSourceGeneratedFileInfo.cs (1)
28public 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 (9)
28INamedTypeSymbol selectedType, 33private readonly INamedTypeSymbol _selectedType = selectedType; 94var newType = CodeGenerationSymbolFactory.CreateNamedTypeSymbol( 115newType = (INamedTypeSymbol)destSemanticModel.GetRequiredDeclaredSymbol(destRoot.GetAnnotatedNodes(annotation).Single(), cancellationToken); 143private static TypeKind GetNewTypeKind(INamedTypeSymbol oldType) 163INamedTypeSymbol newType, 210newType = (INamedTypeSymbol)newTypeSemanticModel.GetRequiredDeclaredSymbol(newTypeRoot.GetCurrentNode(newTypeNode)!, cancellationToken); 219INamedTypeSymbol newType, 254INamedTypeSymbol newType,
NameTupleElement\AbstractNameTupleElementCodeRefactoringProvider.cs (1)
59if (semanticModel.GetTypeInfo(tuple, cancellationToken).ConvertedType is not INamedTypeSymbol tupleType)
NavigateTo\AbstractNavigateToSearchService.NormalSearch.cs (2)
122if (semanticModel.GetDeclaredSymbol(topLevelMember, cancellationToken) is not INamedTypeSymbol namedTypeSymbol) 125foreach (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)
196var enclosingType = semanticModel.GetEnclosingNamedType(token.SpanStart, cancellationToken); 284private static bool IsAccessible(ISymbol symbol, INamedTypeSymbol? within)
QuickInfo\CommonSemanticQuickInfoProvider.ErrorVisitor.cs (1)
59public override bool VisitNamedType(INamedTypeSymbol symbol)
QuickInfo\QuickInfoUtilities.cs (1)
50if (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)
39var containingType = symbol.ContainingType; 58switch (((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)
193select (INamedTypeSymbol)part.Symbol!;
SignatureHelp\CommonSignatureHelpUtilities.cs (1)
155var ienumerableType = compilation.GetTypeByMetadataName(typeof(IEnumerable).FullName!);
Snippets\SnippetProviders\AbstractConsoleSnippetProvider.cs (2)
81var consoleSymbol = GetConsoleSymbolFromMetaDataName(compilation); 89protected static INamedTypeSymbol? GetConsoleSymbolFromMetaDataName(Compilation compilation)
src\Analyzers\Core\Analyzers\ConvertTypeofToNameof\AbstractConvertTypeOfToNameOfDiagnosticAnalyzer.cs (1)
65if (typeofOperation.TypeOperand is not INamedTypeSymbol namedType)
src\Analyzers\Core\Analyzers\ForEachCast\AbstractForEachCastDiagnosticAnalyzer.cs (1)
100var ienumerableOfT = collectionType.AllInterfaces.FirstOrDefault(i => i.OriginalDefinition.SpecialType == SpecialType.System_Collections_Generic_IEnumerable_T);
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\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\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\Analyzers\Core\Analyzers\RemoveUnnecessarySuppressions\AbstractRemoveUnnecessaryAttributeSuppressionsDiagnosticAnalyzer.cs (2)
59var suppressMessageAttributeType = context.Compilation.SuppressMessageAttributeType(); 69protected sealed class CompilationAnalyzer(Compilation compilation, INamedTypeSymbol suppressMessageAttributeType)
src\Analyzers\Core\Analyzers\RemoveUnnecessarySuppressions\AbstractRemoveUnnecessaryPragmaSuppressionsDiagnosticAnalyzer.cs (2)
742var suppressMessageAttributeType = semanticModel.Compilation.SuppressMessageAttributeType(); 842INamedTypeSymbol suppressMessageAttributeType,
src\Analyzers\Core\Analyzers\RemoveUnnecessarySuppressions\SuppressMessageAttributeState.cs (2)
15internal sealed partial class SuppressMessageAttributeState(Compilation compilation, INamedTypeSymbol suppressMessageAttributeType) 23private readonly INamedTypeSymbol _suppressMessageAttributeType = suppressMessageAttributeType;
src\Analyzers\Core\Analyzers\RemoveUnusedMembers\AbstractRemoveUnusedMembersDiagnosticAnalyzer.cs (24)
65protected abstract IEnumerable<TTypeDeclarationSyntax> GetTypeDeclarations(INamedTypeSymbol namedType, CancellationToken cancellationToken); 137private readonly INamedTypeSymbol? _taskType; 138private readonly INamedTypeSymbol? _genericTaskType; 139private readonly INamedTypeSymbol? _debuggerDisplayAttributeType; 140private readonly INamedTypeSymbol? _structLayoutAttributeType; 141private readonly INamedTypeSymbol? _inlineArrayAttributeType; 142private readonly INamedTypeSymbol? _eventArgsType; 143private readonly INamedTypeSymbol? _iNotifyCompletionType; 145private readonly ImmutableHashSet<INamedTypeSymbol?> _attributeSetForMethodsToIgnore; 168private static IEnumerable<INamedTypeSymbol> GetAttributesForMethodsToIgnore(Compilation compilation) 172var onDeserializingAttribute = compilation.OnDeserializingAttribute(); 178var onDeserializedAttribute = compilation.OnDeserializedAttribute(); 184var onSerializingAttribute = compilation.OnSerializingAttribute(); 190var onSerializedAttribute = compilation.OnSerializedAttribute(); 196var comRegisterFunctionAttribute = compilation.ComRegisterFunctionAttribute(); 202var comUnregisterFunctionAttribute = compilation.ComUnregisterFunctionAttribute(); 233if (!ShouldAnalyze(symbolStartContext, (INamedTypeSymbol)symbolStartContext.Symbol)) 280bool ShouldAnalyze(SymbolStartAnalysisContext context, INamedTypeSymbol namedType) 509var namedType = (INamedTypeSymbol)symbolEndContext.Symbol; 659private static bool HasSyntaxErrors(INamedTypeSymbol namedTypeSymbol, CancellationToken cancellationToken) 673INamedTypeSymbol namedTypeSymbol, 753private void AddDebuggerDisplayAttributeArguments(INamedTypeSymbol namedTypeSymbol, ArrayBuilder<string> builder) 761case INamedTypeSymbol nestedType:
src\Analyzers\Core\Analyzers\RemoveUnusedParametersAndValues\AbstractRemoveUnusedParametersAndValuesDiagnosticAnalyzer.SymbolStartAnalyzer.BlockAnalyzer.cs (1)
488var interpolatedStringHandlerAttribute = context.Compilation.InterpolatedStringHandlerAttributeType();
src\Analyzers\Core\Analyzers\RemoveUnusedParametersAndValues\AbstractRemoveUnusedParametersAndValuesDiagnosticAnalyzer.SymbolStartAnalyzer.cs (15)
25INamedTypeSymbol? eventArgsType, 26ImmutableHashSet<INamedTypeSymbol> attributeSetForMethodsToIgnore, 28INamedTypeSymbol? iCustomMarshaler, 33private readonly INamedTypeSymbol? _eventArgsType = eventArgsType; 34private readonly ImmutableHashSet<INamedTypeSymbol> _attributeSetForMethodsToIgnore = attributeSetForMethodsToIgnore; 37private readonly INamedTypeSymbol? _iCustomMarshaler = iCustomMarshaler; 52var eventsArgType = context.Compilation.EventArgsType(); 54var iCustomMarshaler = context.Compilation.GetTypeByMetadataName(typeof(ICustomMarshaler).FullName!); 58if (HasSyntaxErrors((INamedTypeSymbol)symbolStartContext.Symbol, symbolStartContext.CancellationToken)) 76static bool HasSyntaxErrors(INamedTypeSymbol namedTypeSymbol, CancellationToken cancellationToken) 111var interpolatedStringHandlerAttribute = context.Compilation.InterpolatedStringHandlerAttributeType(); 124INamedTypeSymbol? interpolatedStringHandlerAttributeType, 177private static IEnumerable<INamedTypeSymbol?> GetAttributesForMethodsToIgnore(Compilation compilation) 196private bool IsUnusedParameterCandidate(IParameterSymbol parameter, INamedTypeSymbol? interpolatedStringHandlerAttributeType, CancellationToken cancellationToken) 293INamedTypeSymbol? interpolatedStringHandlerAttributeType)
src\Analyzers\Core\Analyzers\SimplifyInterpolation\AbstractSimplifyInterpolationDiagnosticAnalyzer.cs (2)
36var formattableStringType = context.Compilation.FormattableStringType(); 42INamedTypeSymbol? formattableStringType)
src\Analyzers\Core\Analyzers\SimplifyInterpolation\AbstractSimplifyInterpolationHelpers.cs (2)
183private static bool IsType<T>(INamedTypeSymbol type, SemanticModel semanticModel) 186private static INamedTypeSymbol? FindType<T>(SemanticModel semanticModel)
src\Analyzers\Core\Analyzers\SimplifyLinqExpression\AbstractSimplifyLinqExpressionDiagnosticAnalyzer.cs (7)
58if (TryGetEnumerableTypeSymbol(context.Compilation, out var enumerableType) && 68static bool TryGetEnumerableTypeSymbol(Compilation compilation, [NotNullWhen(true)] out INamedTypeSymbol? enumerableType) 74static bool TryGetLinqWhereExtensionMethod(INamedTypeSymbol enumerableType, [NotNullWhen(true)] out IMethodSymbol? linqMethod) 77static bool TryGetLinqSelectExtensionMethod(INamedTypeSymbol enumerableType, [NotNullWhen(true)] out IMethodSymbol? linqMethod) 80static bool TryGetLinqExtensionMethod(INamedTypeSymbol enumerableType, string name, [NotNullWhen(true)] out IMethodSymbol? linqMethod) 84if (linqMethodSymbol.Parameters is [_, { Type: INamedTypeSymbol { Arity: 2 } }]) 97static bool TryGetLinqMethodsThatDoNotReturnEnumerables(INamedTypeSymbol enumerableType, out ImmutableArray<IMethodSymbol> linqMethods)
src\Analyzers\Core\Analyzers\UseAutoProperty\AbstractUseAutoPropertyAnalyzer.cs (4)
99var namedType = (INamedTypeSymbol)context.Symbol; 175bool ShouldAnalyze(SymbolStartAnalysisContext context, INamedTypeSymbol namedType) 328INamedTypeSymbol containingType,
src\Analyzers\Core\Analyzers\UseCoalesceExpression\AbstractUseCoalesceExpressionForNullableTernaryConditionalCheckDiagnosticAnalyzer.cs (1)
109var nullableType = semanticModel.Compilation.GetTypeByMetadataName(typeof(Nullable<>).FullName!);
src\Analyzers\Core\Analyzers\UseCollectionInitializer\AbstractUseCollectionInitializerDiagnosticAnalyzer.cs (5)
82INamedTypeSymbol? expressionType, 98var ienumerableType = context.Compilation.IEnumerableType(); 115var expressionType = context.Compilation.ExpressionOfTType(); 124INamedTypeSymbol ienumerableType, 125INamedTypeSymbol? expressionType)
src\Analyzers\Core\Analyzers\UseExplicitTupleName\UseExplicitTupleNameDiagnosticAnalyzer.cs (1)
77INamedTypeSymbol containingType, IFieldSymbol unnamedField, CancellationToken cancellationToken)
src\Analyzers\Core\Analyzers\UseIsNullCheck\AbstractUseIsNullForReferenceEqualsDiagnosticAnalyzer.cs (1)
34var objectType = context.Compilation.GetSpecialType(SpecialType.System_Object);
src\Analyzers\Core\Analyzers\UseNullPropagation\AbstractUseNullPropagationDiagnosticAnalyzer.cs (7)
82public (INamedTypeSymbol? expressionType, IMethodSymbol? referenceEqualsMethod) GetAnalysisSymbols(Compilation compilation) 84var expressionType = compilation.ExpressionOfTType(); 85var objectType = compilation.GetSpecialType(SpecialType.System_Object); 99var expressionType = context.Compilation.ExpressionOfTType(); 129INamedTypeSymbol? expressionType, 155INamedTypeSymbol? expressionType, 199if (type is not INamedTypeSymbol namedType || namedType.ConstructedFrom.SpecialType != SpecialType.System_Nullable_T)
src\Analyzers\Core\Analyzers\UseThrowExpression\AbstractUseThrowExpressionDiagnosticAnalyzer.cs (2)
64var expressionType = startContext.Compilation.ExpressionOfTType(); 69private void AnalyzeOperation(OperationAnalysisContext context, INamedTypeSymbol? expressionType)
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\Analyzers\Core\CodeFixes\AddExplicitCast\InheritanceDistanceComparer.cs (1)
70foreach (var interfaceType in derivedType.Interfaces)
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\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\Analyzers\Core\CodeFixes\ForEachCast\AbstractForEachCastCodeFixProvider.cs (1)
64var enumerableType = semanticModel.Compilation.GetBestTypeByMetadataName(typeof(Enumerable).FullName!);
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\Analyzers\Core\CodeFixes\GenerateConstructor\AbstractGenerateConstructorService.State.cs (6)
38public INamedTypeSymbol? TypeToGenerateIn { get; private set; } 298out var token, out var arguments, out var typeToGenerateIn)) 316out var token, out var arguments, out var typeToGenerateIn)) 335out var token, out var arguments, out var typeToGenerateIn)) 395INamedTypeSymbol original, CancellationToken cancellationToken) 398TypeToGenerateIn = definition as INamedTypeSymbol;
src\Analyzers\Core\CodeFixes\GenerateConstructor\GenerateConstructorHelpers.cs (2)
136INamedTypeSymbol typeToGenerateIn, 301private static IEnumerable<string> GetUnavailableMemberNames(INamedTypeSymbol typeToGenerateIn)
src\Analyzers\Core\CodeFixes\GenerateDefaultConstructors\AbstractGenerateDefaultConstructorsService.cs (1)
23[NotNullWhen(true)] out INamedTypeSymbol? classType);
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\Analyzers\Core\CodeFixes\GenerateDefaultConstructors\GenerateDefaultConstructorsCodeAction.cs (3)
52var classType = _state.ClassType; 67IParameterSymbol parameter, INamedTypeSymbol classType) 73private static Accessibility DetermineAccessibility(IMethodSymbol baseConstructor, INamedTypeSymbol classType)
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\Analyzers\Core\CodeFixes\GenerateMember\AbstractGenerateMemberService.cs (14)
33[NotNullWhen(true)] INamedTypeSymbol? typeToGenerateIn, 57INamedTypeSymbol containingType, 60[NotNullWhen(true)] out INamedTypeSymbol? typeToGenerateIn, 68underlyingType is INamedTypeSymbol underlyingNamedType) 79INamedTypeSymbol containingType, 82out INamedTypeSymbol? typeToGenerateIn, 124typeToGenerateIn = pointerType.PointedAtType as INamedTypeSymbol; 136typeToGenerateIn = attributeType.Type as INamedTypeSymbol; 141typeToGenerateIn = semanticModel.GetTypeInfo(initializedObject, cancellationToken).Type as INamedTypeSymbol; 151typeToGenerateIn = inferenceService.InferType(semanticModel, propertyPatternClause, objectAsDefault: true, cancellationToken) as INamedTypeSymbol; 160typeToGenerateIn = semanticModel.GetTypeInfo(target, cancellationToken).Type as INamedTypeSymbol; 174out INamedTypeSymbol? typeToGenerateIn, 184: typeInfo.Type as INamedTypeSymbol; 186isStatic = semanticInfo.Symbol is INamedTypeSymbol;
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\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\Analyzers\Core\CodeFixes\GenerateParameterizedMember\AbstractGenerateDeconstructMethodService.cs (1)
26INamedTypeSymbol typeToGenerateIn,
src\Analyzers\Core\CodeFixes\GenerateParameterizedMember\AbstractGenerateDeconstructMethodService.State.cs (2)
29INamedTypeSymbol typeToGenerateIn, 45INamedTypeSymbol typeToGenerateIn,
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\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\Analyzers\Core\CodeFixes\GenerateParameterizedMember\AbstractGenerateParameterizedMemberService.cs (1)
27protected virtual bool ContainingTypesOrSelfHasUnsafeKeyword(INamedTypeSymbol containingType)
src\Analyzers\Core\CodeFixes\GenerateParameterizedMember\AbstractGenerateParameterizedMemberService.SignatureInfo.cs (3)
224var containingType = State.ContainingType; 271private bool DerivesFrom(INamedTypeSymbol containingType) 274.OfType<INamedTypeSymbol>()
src\Analyzers\Core\CodeFixes\GenerateParameterizedMember\AbstractGenerateParameterizedMemberService.State.cs (3)
24public INamedTypeSymbol ContainingType { get; protected set; } 25public INamedTypeSymbol TypeToGenerateIn { get; protected set; } 61TypeToGenerateIn = await SymbolFinderInternal.FindSourceDefinitionAsync(TypeToGenerateIn, document.Project.Solution, cancellationToken).ConfigureAwait(false) as INamedTypeSymbol;
src\Analyzers\Core\CodeFixes\GenerateParameterizedMember\IGenerateDeconstructMemberService.cs (1)
16Document document, SyntaxNode targetVariables, INamedTypeSymbol typeToGenerateIn, CancellationToken cancellationToken);
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\Analyzers\Core\CodeFixes\GenerateVariable\AbstractGenerateVariableService.CodeAction.cs (1)
171private static bool DerivesFrom(State state, INamedTypeSymbol containingType)
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); 83protected virtual bool ContainingTypesOrSelfHasUnsafeKeyword(INamedTypeSymbol containingType) 209var cancellationTokenType = compilation.CancellationTokenType();
src\Analyzers\Core\CodeFixes\GenerateVariable\AbstractGenerateVariableService.State.cs (6)
29public INamedTypeSymbol ContainingType { get; private set; } 30public INamedTypeSymbol TypeToGenerateIn { get; private set; } 153TypeToGenerateIn, _document.Project.Solution, cancellationToken).ConfigureAwait(false) as INamedTypeSymbol; 191out var identifierToken, out var propertySymbol, out var typeToGenerateIn)) 213if (!ContainingType.Interfaces.OfType<INamedTypeSymbol>().Contains(TypeToGenerateIn)) 285out var typeToGenerateIn, out var isStatic, out _))
src\Analyzers\Core\CodeFixes\ImplementAbstractClass\AbstractImplementAbstractClassCodeFixProvider.cs (1)
43var abstractClassType = data.AbstractClassType;
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; 314constraints.OfType<INamedTypeSymbol>().FirstOrDefault() ??
src\Analyzers\Core\CodeFixes\ImplementInterface\AbstractImplementInterfaceService.cs (5)
40[NotNullWhen(true)] out INamedTypeSymbol? classOrStructType, 41out ImmutableArray<INamedTypeSymbol> interfaceTypes); 45protected abstract SyntaxNode CreateFinalizer(SyntaxGenerator generator, INamedTypeSymbol classType, string disposeMethodDisplayString); 256var interfaceType = state.InterfaceTypes.First(); 303var firstInterfaceType = state.InterfaceTypes.First();
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\Analyzers\Core\CodeFixes\ImplementInterface\ImplementHelpers.cs (6)
20INamedTypeSymbol namedType, 120ISymbol? first, INamedTypeSymbol second, bool supportsImplicitImplementationOfNonPublicInterfaceMembers) 174private static bool IsTypeLessAccessibleThanOtherType(ITypeSymbol? first, INamedTypeSymbol second, HashSet<ITypeSymbol> alreadyCheckingTypes) 202if (first is INamedTypeSymbol namedType) 236var idisposableType = disposeMethod.ContainingType; 251var idisposable = compilation.GetSpecialType(SpecialType.System_IDisposable);
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\Analyzers\Core\CodeFixes\ImplementInterface\ImplementInterfaceGenerator_DisposePattern.cs (5)
40ImmutableArray<(INamedTypeSymbol type, ImmutableArray<ISymbol> members)> unimplementedMembers, 200var gcType = compilation.GetTypeByMetadataName(typeof(GC).FullName!); 230INamedTypeSymbol containingType, 238var boolType = compilation.GetSpecialType(SpecialType.System_Boolean); 252private static string GenerateUniqueNameForDisposedValueField(INamedTypeSymbol containingType, NamingRule rule)
src\Analyzers\Core\CodeFixes\ImplementInterface\ImplementInterfaceGenerator_Property.cs (3)
81private static INamedTypeSymbol[] AttributesToRemove(Compilation compilation) 95INamedTypeSymbol[] attributesToRemove) 129INamedTypeSymbol[] attributesToRemove)
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\Analyzers\Core\CodeFixes\RemoveAsyncModifier\AbstractRemoveAsyncModifierCodeFixProvider.cs (1)
249private static SyntaxNode TypeExpressionForStaticMemberAccess(SyntaxGenerator generator, INamedTypeSymbol typeSymbol)
src\Analyzers\Core\CodeFixes\UnsealClass\AbstractUnsealClassCodeFixProvider.cs (1)
39if (semanticModel.GetSymbolInfo(node, cancellationToken).Symbol is INamedTypeSymbol type &&
src\Analyzers\Core\CodeFixes\UseCoalesceExpression\UseCoalesceExpressionForNullableTernaryConditionalCheckCodeFixProvider.cs (1)
41var expressionTypeOpt = semanticModel.Compilation.ExpressionOfTType();
src\Analyzers\Core\CodeFixes\UseCoalesceExpression\UseCoalesceExpressionForTernaryConditionalCheckCodeFixProvider.cs (2)
42var expressionTypeOpt = semanticModel.Compilation.ExpressionOfTType(); 57SyntaxEditor editor, SemanticModel semanticModel, INamedTypeSymbol? expressionTypeOpt,
src\Analyzers\Core\CodeFixes\UseSystemHashCode\UseSystemHashCodeCodeFixProvider.cs (1)
73var containingType = accessesBase ? method!.ContainingType : null;
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)
17INamedTypeSymbol type,
StackTraceExplorer\StackFrameLocalMethodResolver.cs (1)
19INamedTypeSymbol type,
StackTraceExplorer\StackFrameMethodSymbolResolver.cs (1)
16INamedTypeSymbol type,
StackTraceExplorer\StackTraceExplorerUtilities.cs (1)
113var type = compilation.GetTypeByMetadataName(fullyQualifiedTypeName);
Microsoft.CodeAnalysis.Features.UnitTests (29)
FindUsages\DefinitionItemFactoryTests.cs (29)
704var tuple = (INamedTypeSymbol)compilation.GetMember<IFieldSymbol>("C.F").Type; 707var genericTuple = tuple.OriginalDefinition; 766var tuple = (INamedTypeSymbol)compilation.GetMember<IFieldSymbol>("C.F").Type; 769var genericTuple = tuple.OriginalDefinition; 822var type = (INamedTypeSymbol)compilation.GetMember<IFieldSymbol>("C.F").Type; 825var genericType = type.OriginalDefinition; 876var type = (INamedTypeSymbol)compilation.GetMember<IFieldSymbol>("C.F").Type; 879var genericType = type.OriginalDefinition; 982var c = m.ContainingType; 983var i = compilation.GetSpecialType(SpecialType.System_Int32); 1037var c = m.ContainingType; 1038var i = compilation.GetSpecialType(SpecialType.System_Int32); 1089var c = p.ContainingType; 1090var i = compilation.GetSpecialType(SpecialType.System_Int32); 1153var c = p.ContainingType; 1154var i = compilation.GetSpecialType(SpecialType.System_Int32); 1210var c = p.ContainingType; 1211var i = compilation.GetSpecialType(SpecialType.System_Int32); 1265var c = p.ContainingType; 1266var i = compilation.GetSpecialType(SpecialType.System_Int32); 1344var c = m.ContainingType; 1346var i = compilation.GetSpecialType(SpecialType.System_Int32); 1404var c = m.ContainingType; 1524var i = compilation.GetSpecialType(SpecialType.System_Int32); 1595var i = compilation.GetSpecialType(SpecialType.System_Int32);
Microsoft.CodeAnalysis.LanguageServer (1)
Services\LspExtractClassOptionsService.cs (1)
21INamedTypeSymbol originalType,
Microsoft.CodeAnalysis.PerformanceSensitiveAnalyzers (723)
AbstractAllocationAnalyzer.cs (3)
32var attributeSymbol = compilation.GetOrCreateTypeByMetadataName(AllocationRules.PerformanceSensitiveAttributeName); 66private INamedTypeSymbol PerfSensitiveAttributeSymbol { get; } 68public AttributeChecker(INamedTypeSymbol perfSensitiveAttributeSymbol)
AbstractAllocationAnalyzer`1.cs (1)
33var attributeSymbol = compilation.GetOrCreateTypeByMetadataName(AllocationRules.PerformanceSensitiveAttributeName);
src\Compilers\Core\Portable\SourceGeneration\GeneratedCodeUtilities.cs (1)
19ISymbol symbol, INamedTypeSymbol generatedCodeAttribute)
src\RoslynAnalyzers\Utilities\Compiler\CodeMetrics\CodeAnalysisMetricData.AssemblyMetricData.cs (2)
21ImmutableHashSet<INamedTypeSymbol> coupledNamedTypes, 45var coupledTypesBuilder = ImmutableHashSet.CreateBuilder<INamedTypeSymbol>();
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\RoslynAnalyzers\Utilities\Compiler\CodeMetrics\CodeAnalysisMetricData.EventMetricData.cs (2)
18ImmutableHashSet<INamedTypeSymbol> coupledNamedTypes, 30var coupledTypesBuilder = ImmutableHashSet.CreateBuilder<INamedTypeSymbol>();
src\RoslynAnalyzers\Utilities\Compiler\CodeMetrics\CodeAnalysisMetricData.FieldMetricData.cs (2)
18ImmutableHashSet<INamedTypeSymbol> coupledNamedTypes, 29var coupledTypesBuilder = ImmutableHashSet.CreateBuilder<INamedTypeSymbol>();
src\RoslynAnalyzers\Utilities\Compiler\CodeMetrics\CodeAnalysisMetricData.MethodMetricData.cs (2)
18ImmutableHashSet<INamedTypeSymbol> coupledNamedTypes, 29var coupledTypesBuilder = ImmutableHashSet.CreateBuilder<INamedTypeSymbol>();
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\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\RoslynAnalyzers\Utilities\Compiler\CodeMetrics\CodeAnalysisMetricData.PropertyMetricData.cs (2)
18ImmutableHashSet<INamedTypeSymbol> coupledNamedTypes, 30var coupledTypesBuilder = ImmutableHashSet.CreateBuilder<INamedTypeSymbol>();
src\RoslynAnalyzers\Utilities\Compiler\CodeMetrics\CodeMetricsAnalysisContext.cs (2)
18Func<INamedTypeSymbol, bool>? isExcludedFromInheritanceCountFunc = null) 32public Func<INamedTypeSymbol, bool> IsExcludedFromInheritanceCountFunc { get; }
src\RoslynAnalyzers\Utilities\Compiler\CodeMetrics\MetricsHelper.cs (12)
39internal static void AddCoupledNamedTypes(ImmutableHashSet<INamedTypeSymbol>.Builder builder, WellKnownTypeProvider wellKnownTypeProvider, 40ImmutableHashSet<INamedTypeSymbol> coupledTypes) 42foreach (var coupledType in coupledTypes) 48internal static void AddCoupledNamedTypes(ImmutableHashSet<INamedTypeSymbol>.Builder builder, WellKnownTypeProvider wellKnownTypeProvider, 54internal static void AddCoupledNamedTypes(ImmutableHashSet<INamedTypeSymbol>.Builder builder, WellKnownTypeProvider wellKnownTypeProvider, 195ImmutableHashSet<INamedTypeSymbol>.Builder builder, 349private static void AddCoupledNamedTypesCore(ImmutableHashSet<INamedTypeSymbol>.Builder builder, ITypeSymbol typeOpt, 352if (typeOpt is INamedTypeSymbol usedType && 370static bool isIgnoreableType(INamedTypeSymbol namedType, WellKnownTypeProvider wellKnownTypeProvider) 400internal static void RemoveContainingTypes(ISymbol symbol, ImmutableHashSet<INamedTypeSymbol>.Builder coupledTypesBuilder) 402var namedType = symbol as INamedTypeSymbol ?? symbol.ContainingType;
src\RoslynAnalyzers\Utilities\Compiler\DiagnosticHelpers.cs (1)
68if (symbol is INamedTypeSymbol namedType &&
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\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\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) 208private static bool HasDisposeCloseAsyncMethodSignature(this IMethodSymbol method, INamedTypeSymbol? taskType) 216INamedTypeSymbol? task, 217INamedTypeSymbol? valueTask, 218INamedTypeSymbol? configuredValueTaskAwaitable) 231private static bool HasOverriddenDisposeCoreAsyncMethodSignature(this IMethodSymbol method, [NotNullWhen(returnValue: true)] INamedTypeSymbol? task) 244private static bool HasVirtualOrOverrideDisposeCoreAsyncMethodSignature(this IMethodSymbol method, [NotNullWhen(returnValue: true)] INamedTypeSymbol? valueTask) 258INamedTypeSymbol? iDisposable = compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemIDisposable); 259INamedTypeSymbol? iAsyncDisposable = compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemIAsyncDisposable); 260INamedTypeSymbol? configuredAsyncDisposable = compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemRuntimeCompilerServicesConfiguredAsyncDisposable); 261INamedTypeSymbol? task = compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemThreadingTasksTask); 262INamedTypeSymbol? valueTask = compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemThreadingTasksValueTask); 263INamedTypeSymbol? configuredValueTaskAwaitable = compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemRuntimeCompilerServicesConfiguredValueTaskAwaitable); 272INamedTypeSymbol? iDisposable, 273INamedTypeSymbol? iAsyncDisposable, 274INamedTypeSymbol? configuredAsyncDisposable, 275INamedTypeSymbol? task, 276INamedTypeSymbol? valueTask, 277INamedTypeSymbol? configuredValueTaskAwaitable) 321public static bool IsSerializationConstructor([NotNullWhen(returnValue: true)] this IMethodSymbol? method, INamedTypeSymbol? serializationInfoType, INamedTypeSymbol? streamingContextType) 327public static bool IsGetObjectData([NotNullWhen(returnValue: true)] this IMethodSymbol? method, INamedTypeSymbol? serializationInfoType, INamedTypeSymbol? streamingContextType) 374public static bool IsCollectionAddMethod(this IMethodSymbol method, ImmutableHashSet<INamedTypeSymbol> iCollectionTypes) 395public static bool IsTaskFromResultMethod(this IMethodSymbol method, [NotNullWhen(returnValue: true)] INamedTypeSymbol? taskType) 404public static bool IsTaskConfigureAwaitMethod(this IMethodSymbol method, [NotNullWhen(returnValue: true)] INamedTypeSymbol? genericTaskType) 416public static bool IsAsyncDisposableConfigureAwaitMethod(this IMethodSymbol method, [NotNullWhen(returnValue: true)] INamedTypeSymbol? asyncDisposableType, [NotNullWhen(returnValue: true)] INamedTypeSymbol? taskAsyncEnumerableExtensions) 493public static bool IsLockMethod(this IMethodSymbol method, [NotNullWhen(returnValue: true)] INamedTypeSymbol? systemThreadingMonitor) 503public static bool IsInterlockedExchangeMethod(this IMethodSymbol method, INamedTypeSymbol? systemThreadingInterlocked) 515public static bool IsInterlockedCompareExchangeMethod(this IMethodSymbol method, INamedTypeSymbol? systemThreadingInterlocked) 546public static bool IsBenchmarkOrXUnitTestMethod(this IMethodSymbol method, ConcurrentDictionary<INamedTypeSymbol, bool> knownTestAttributes, INamedTypeSymbol? benchmarkAttribute, INamedTypeSymbol? xunitFactAttribute) 571var typeSymbol = methodSymbol.ContainingType;
src\RoslynAnalyzers\Utilities\Compiler\Extensions\INamedTypeSymbolExtensions.cs (9)
19public static bool IsFileLocal(this INamedTypeSymbol symbol) => symbol.IsFileLocal; 43public static bool DerivesFromOrImplementsAnyConstructionOf(this INamedTypeSymbol type, INamedTypeSymbol parentType) 50for (INamedTypeSymbol? baseType = type.OriginalDefinition; 68public static bool OverridesEquals(this INamedTypeSymbol symbol) 74public static bool IsBenchmarkOrXUnitTestAttribute(this INamedTypeSymbol attributeClass, ConcurrentDictionary<INamedTypeSymbol, bool> knownTestAttributes, INamedTypeSymbol? benchmarkAttribute, INamedTypeSymbol? xunitFactAttribute)
src\RoslynAnalyzers\Utilities\Compiler\Extensions\IPropertySymbolExtensions.cs (1)
36var typeSymbol = propertySymbol.ContainingType;
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\RoslynAnalyzers\Utilities\Compiler\Extensions\ITypeSymbolExtensions.cs (14)
116INamedTypeSymbol? iDisposable, 117INamedTypeSymbol? iAsyncDisposable, 118INamedTypeSymbol? configuredAsyncDisposable) 140static bool IsInterfaceOrImplementsInterface(ITypeSymbol type, INamedTypeSymbol? interfaceType) 150public static IEnumerable<AttributeData> GetApplicableAttributes(this INamedTypeSymbol type, INamedTypeSymbol? attributeUsageAttribute) 182static bool IsInheritedAttribute(AttributeData attributeData, INamedTypeSymbol attributeUsageAttribute) 184for (var currentAttributeClass = attributeData.AttributeClass; 217public static IEnumerable<AttributeData> GetApplicableExportAttributes(this INamedTypeSymbol? type, INamedTypeSymbol? exportAttributeV1, INamedTypeSymbol? exportAttributeV2, INamedTypeSymbol? inheritedExportAttribute) 265=> typeSymbol.IsNullableValueType() && ((INamedTypeSymbol)typeSymbol).TypeArguments[0].SpecialType == SpecialType.System_Boolean; 268=> (typeSymbol as INamedTypeSymbol)?.TupleUnderlyingType ?? typeSymbol;
src\RoslynAnalyzers\Utilities\Compiler\Options\AnalyzerOptionsExtensions.cs (9)
281if (symbol is INamedTypeSymbol namedType && !excludedTypeNamesWithDerivedTypes.IsEmpty) 283foreach (var type in namedType.GetBaseTypesAndThis()) 379public static SymbolNamesWithValueOption<INamedTypeSymbol?> GetAdditionalRequiredGenericInterfaces( 386private static SymbolNamesWithValueOption<INamedTypeSymbol?> GetAdditionalRequiredGenericInterfaces( 394static SymbolNamesWithValueOption<INamedTypeSymbol?>.NameParts GetParts(string name, Compilation compilation) 401return new SymbolNamesWithValueOption<INamedTypeSymbol?>.NameParts(name, null); 413matchingSymbols[0] is not INamedTypeSymbol namedType || 418return new SymbolNamesWithValueOption<INamedTypeSymbol?>.NameParts(split[0], null); 421return new SymbolNamesWithValueOption<INamedTypeSymbol?>.NameParts(split[0], namedType);
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\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Extensions\OperationExtensions.cs (2)
405var notImplementedExceptionType = compilation.NotImplementedExceptionType(); 454static bool IsThrowNotImplementedOperation(INamedTypeSymbol notImplementedExceptionType, IOperation? operation)
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); 177var enumerableType = semanticModel.Compilation.IEnumerableOfTType();
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\NamingStyles\NamingStyleRules.cs (3)
65var containingType = symbol.ContainingType; 87var containingType = symbol.ContainingType; 90foreach (var implementedInterface in implementedInterfaces)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Services\SemanticFacts\ISemanticFacts.cs (4)
67bool LastEnumValueHasInitializer(INamedTypeSymbol namedTypeSymbol); 88bool IsPartial(INamedTypeSymbol typeSymbol, CancellationToken cancellationToken); 107bool IsInExpressionTree(SemanticModel semanticModel, SyntaxNode node, [NotNullWhen(true)] INamedTypeSymbol? expressionType, CancellationToken cancellationToken); 122bool TryGetPrimaryConstructor(INamedTypeSymbol typeSymbol, [NotNullWhen(true)] out IMethodSymbol? primaryConstructor);
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\SymbolKey\SymbolKey.AnonymousFunctionOrDelegateSymbolKey.cs (1)
65var anonymousDelegate = methodSymbol.AssociatedAnonymousDelegate;
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\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\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\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\SymbolKey\SymbolKey.FunctionPointerTypeSymbolKey.cs (2)
37var callingConventionModifiers = ImmutableArray<INamedTypeSymbol>.Empty; 40using var modifiersBuilder = reader.ReadSymbolKeyArray<IFunctionPointerTypeSymbol, INamedTypeSymbol>(
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\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\SymbolKey\SymbolKey.ParameterSymbolKey.cs (1)
64var delegateInvoke = (eventSymbol.Type as INamedTypeSymbol)?.DelegateInvokeMethod;
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\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\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Utilities\AbstractSpeculationAnalyzer.cs (5)
417var type = methodSymbol.ContainingType; 418var newType = newMethodSymbol.ContainingType; 491private static bool EnumTypesAreCompatible(INamedTypeSymbol type1, INamedTypeSymbol type2) 992var newSymbolContainingType = newSymbol.ContainingType;
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Utilities\EnumValueUtilities.cs (1)
21public static object GetNextEnumValue(INamedTypeSymbol enumType)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Compilation\CompilationExtensions.cs (78)
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? EventArgsType(this Compilation compilation) 129public static INamedTypeSymbol? NotImplementedExceptionType(this Compilation compilation) 132public static INamedTypeSymbol? EqualityComparerOfTType(this Compilation compilation) 135public static INamedTypeSymbol? ActionType(this Compilation compilation) 138public static INamedTypeSymbol? ExpressionOfTType(this Compilation compilation) 141public static INamedTypeSymbol? EditorBrowsableAttributeType(this Compilation compilation) 144public static INamedTypeSymbol? EditorBrowsableStateType(this Compilation compilation) 147public static INamedTypeSymbol? TaskType(this Compilation compilation) 150public static INamedTypeSymbol? TaskOfTType(this Compilation compilation) 153public static INamedTypeSymbol? ValueTaskType(this Compilation compilation) 156public static INamedTypeSymbol? ValueTaskOfTType(this Compilation compilation) 159public static INamedTypeSymbol? IEnumerableType(this Compilation compilation) 162public static INamedTypeSymbol? IEnumerableOfTType(this Compilation compilation) 165public static INamedTypeSymbol? IEnumeratorOfTType(this Compilation compilation) 168public static INamedTypeSymbol? IListOfTType(this Compilation compilation) 171public static INamedTypeSymbol? IReadOnlyListOfTType(this Compilation compilation) 174public static INamedTypeSymbol? ISetOfTType(this Compilation compilation) 177public static INamedTypeSymbol? IReadOnlySetOfTType(this Compilation compilation) 180public static INamedTypeSymbol? IAsyncEnumerableOfTType(this Compilation compilation) 183public static INamedTypeSymbol? IAsyncEnumeratorOfTType(this Compilation compilation) 186public static INamedTypeSymbol? ImmutableArrayOfTType(this Compilation compilation) 189public static INamedTypeSymbol? SerializableAttributeType(this Compilation compilation) 192public static INamedTypeSymbol? CoClassType(this Compilation compilation) 195public static INamedTypeSymbol? ComAliasNameAttributeType(this Compilation compilation) 198public static INamedTypeSymbol? SuppressMessageAttributeType(this Compilation compilation) 201public static INamedTypeSymbol? TupleElementNamesAttributeType(this Compilation compilation) 204public static INamedTypeSymbol? NativeIntegerAttributeType(this Compilation compilation) 207public static INamedTypeSymbol? DynamicAttributeType(this Compilation compilation) 210public static INamedTypeSymbol? LazyOfTType(this Compilation compilation) 213public static INamedTypeSymbol? ISerializableType(this Compilation compilation) 216public static INamedTypeSymbol? SerializationInfoType(this Compilation compilation) 219public static INamedTypeSymbol? StreamingContextType(this Compilation compilation) 222public static INamedTypeSymbol? OnDeserializingAttribute(this Compilation compilation) 225public static INamedTypeSymbol? OnDeserializedAttribute(this Compilation compilation) 228public static INamedTypeSymbol? OnSerializingAttribute(this Compilation compilation) 231public static INamedTypeSymbol? OnSerializedAttribute(this Compilation compilation) 234public static INamedTypeSymbol? ComRegisterFunctionAttribute(this Compilation compilation) 237public static INamedTypeSymbol? ComUnregisterFunctionAttribute(this Compilation compilation) 240public static INamedTypeSymbol? ConditionalAttribute(this Compilation compilation) 243public static INamedTypeSymbol? ObsoleteAttribute(this Compilation compilation) 246public static INamedTypeSymbol? SystemCompositionImportingConstructorAttribute(this Compilation compilation) 249public static INamedTypeSymbol? SystemComponentModelCompositionImportingConstructorAttribute(this Compilation compilation) 252public static INamedTypeSymbol? SystemIDisposableType(this Compilation compilation) 255public static INamedTypeSymbol? NotNullAttribute(this Compilation compilation) 258public static INamedTypeSymbol? MaybeNullAttribute(this Compilation compilation) 261public static INamedTypeSymbol? MaybeNullWhenAttribute(this Compilation compilation) 264public static INamedTypeSymbol? AllowNullAttribute(this Compilation compilation) 267public static INamedTypeSymbol? DisallowNullAttribute(this Compilation compilation) 270public static INamedTypeSymbol? DataMemberAttribute(this Compilation compilation) 273public static INamedTypeSymbol? DataContractAttribute(this Compilation compilation) 276public static INamedTypeSymbol? AsyncMethodBuilderAttribute(this Compilation compilation) 279public static INamedTypeSymbol? CancellationTokenType(this Compilation compilation) 282public static INamedTypeSymbol? ValueTupleType(this Compilation compilation, int arity) 285public static INamedTypeSymbol? ListOfTType(this Compilation compilation) 288public static INamedTypeSymbol? ReadOnlySpanOfTType(this Compilation compilation) 291public static INamedTypeSymbol? SpanOfTType(this Compilation compilation) 294public static INamedTypeSymbol? InterpolatedStringHandlerAttributeType(this Compilation compilation) 322public static INamedTypeSymbol? GetBestTypeByMetadataName(this Compilation compilation, string fullyQualifiedMetadataName) 324INamedTypeSymbol? type = null; 326foreach (var currentType in compilation.GetTypesByMetadataName(fullyQualifiedMetadataName)) 361foreach (var candidateTopLevelType in compilation.SourceModule.GlobalNamespace.GetTypeMembers(WellKnownMemberNames.TopLevelStatementsEntryPointTypeName, arity: 0)) 373public static INamedTypeSymbol? TryGetCallingConventionSymbol(this Compilation compilation, string callingConvention)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\IMethodSymbolExtensions.cs (4)
44public static bool HasEventHandlerSignature(this IMethodSymbol method, [NotNullWhen(returnValue: true)] INamedTypeSymbol? eventArgsType) 103public static bool IsEntryPoint(this IMethodSymbol methodSymbol, INamedTypeSymbol? taskType, INamedTypeSymbol? genericTaskType) 119if (method.ReturnType is not INamedTypeSymbol { Arity: 0 })
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\INamedTypeSymbolExtensions.cs (73)
23public static IEnumerable<INamedTypeSymbol> GetBaseTypesAndThis(this INamedTypeSymbol? namedType) 25var current = namedType; 33public static ImmutableArray<ITypeParameterSymbol> GetAllTypeParameters(this INamedTypeSymbol? symbol) 39public static ImmutableArray<ITypeSymbol> GetAllTypeArguments(this INamedTypeSymbol? symbol) 45private static Stack<INamedTypeSymbol> GetContainmentStack(INamedTypeSymbol? symbol) 47var stack = new Stack<INamedTypeSymbol>(); 48for (var current = symbol; current != null; current = current.ContainingType) 56public static bool IsContainedWithin([NotNullWhen(returnValue: true)] this INamedTypeSymbol? symbol, INamedTypeSymbol outer) 59for (var current = symbol; current != null; current = current.ContainingType) 70public static ISymbol? FindImplementationForAbstractMember(this INamedTypeSymbol? type, ISymbol symbol) 81private static bool ImplementationExists(INamedTypeSymbol classOrStructType, ISymbol member) 85this INamedTypeSymbol classOrStructType, 87Func<INamedTypeSymbol, ISymbol, bool> isValidImplementation, 117private static bool IsInterfacePropertyImplemented(INamedTypeSymbol classOrStructType, IPropertySymbol propertySymbol) 125static bool IsAccessorImplemented(IMethodSymbol? accessor, INamedTypeSymbol classOrStructType) 131private static bool IsAbstractPropertyImplemented(INamedTypeSymbol classOrStructType, IPropertySymbol propertySymbol) 154this INamedTypeSymbol classOrStructType, 156Func<INamedTypeSymbol, ISymbol, bool> isValid, 179public static ImmutableArray<(INamedTypeSymbol type, ImmutableArray<ISymbol> members)> GetAllUnimplementedMembers( 180this INamedTypeSymbol classOrStructType, 181IEnumerable<INamedTypeSymbol> interfaces, 197static ImmutableArray<ISymbol> GetImplicitlyImplementableMembers(INamedTypeSymbol type, ISymbol within) 249public static ImmutableArray<(INamedTypeSymbol type, ImmutableArray<ISymbol> members)> GetAllUnimplementedMembersInThis( 250this INamedTypeSymbol classOrStructType, 251IEnumerable<INamedTypeSymbol> interfacesOrAbstractClasses, 267public static ImmutableArray<(INamedTypeSymbol type, ImmutableArray<ISymbol> members)> GetAllUnimplementedMembersInThis( 268this INamedTypeSymbol classOrStructType, 269IEnumerable<INamedTypeSymbol> interfacesOrAbstractClasses, 270Func<INamedTypeSymbol, ISymbol, ImmutableArray<ISymbol>> interfaceMemberGetter, 286public static ImmutableArray<(INamedTypeSymbol type, ImmutableArray<ISymbol> members)> GetAllUnimplementedExplicitMembers( 287this INamedTypeSymbol classOrStructType, 288IEnumerable<INamedTypeSymbol> interfaces, 300private static ImmutableArray<ISymbol> GetExplicitlyImplementableMembers(INamedTypeSymbol type, ISymbol within) 327private static ImmutableArray<(INamedTypeSymbol type, ImmutableArray<ISymbol> members)> GetAllUnimplementedMembers( 328this INamedTypeSymbol classOrStructType, 329IEnumerable<INamedTypeSymbol> interfacesOrAbstractClasses, 330Func<INamedTypeSymbol, ISymbol, Func<INamedTypeSymbol, ISymbol, bool>, CancellationToken, bool> isImplemented, 331Func<INamedTypeSymbol, ISymbol, bool> isValidImplementation, 332Func<INamedTypeSymbol, ISymbol, ImmutableArray<ISymbol>> interfaceMemberGetter, 361private static ImmutableArray<INamedTypeSymbol> GetTypesToImplement( 362INamedTypeSymbol classOrStructType, 363IEnumerable<INamedTypeSymbol> interfacesOrAbstractClasses, 372private static ImmutableArray<INamedTypeSymbol> GetAbstractClassesToImplement( 373IEnumerable<INamedTypeSymbol> abstractClasses) 378private static ImmutableArray<INamedTypeSymbol> GetInterfacesToImplement( 379INamedTypeSymbol classOrStructType, 380IEnumerable<INamedTypeSymbol> interfaces, 387var interfacesToImplement = new List<INamedTypeSymbol>( 392var baseType = classOrStructType.BaseType; 403this INamedTypeSymbol classOrStructType, 404INamedTypeSymbol interfaceType, 405Func<INamedTypeSymbol, ISymbol, Func<INamedTypeSymbol, ISymbol, bool>, CancellationToken, bool> isImplemented, 406Func<INamedTypeSymbol, ISymbol, bool> isValidImplementation, 407Func<INamedTypeSymbol, ISymbol, ImmutableArray<ISymbol>> interfaceMemberGetter, 449this INamedTypeSymbol attributeSymbol, 455var systemAttributeType = compilation.AttributeType(); 457foreach (var type in attributeSymbol.GetBaseTypesAndThis()) 517private static ImmutableArray<ISymbol> GetMembers(INamedTypeSymbol type, ISymbol within) 531this INamedTypeSymbol containingType, CancellationToken cancellationToken) 548foreach (var type in baseTypes) 569Dictionary<ISymbol, int> result, INamedTypeSymbol containingType, CancellationToken cancellationToken) 590Dictionary<ISymbol, int> result, INamedTypeSymbol containingType, CancellationToken cancellationToken) 612Dictionary<ISymbol, int> result, INamedTypeSymbol containingType, 613INamedTypeSymbol type, ref int index, CancellationToken cancellationToken) 626private static bool IsOverridable(ISymbol member, INamedTypeSymbol containingType) 669public static INamedTypeSymbol TryConstruct(this INamedTypeSymbol type, ITypeSymbol[] typeArguments) 672public static bool IsCollectionBuilderAttribute([NotNullWhen(true)] this INamedTypeSymbol? type)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\INamespaceOrTypeSymbolExtensions.cs (3)
90public static IEnumerable<INamedTypeSymbol> GetAllTypes( 106var namedType = (INamedTypeSymbol)current;
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\ISymbolExtensions.cs (15)
98foreach (var baseType in symbol.ContainingType.GetBaseTypes()) 107bool TryFindLooseMatch(ISymbol symbol, INamedTypeSymbol baseType, [NotNullWhen(true)] out ISymbol? looseMatch) 156foreach (var iface in symbol.ContainingType.AllInterfaces) 214public static INamedTypeSymbol? GetContainingTypeOrThis(this ISymbol symbol) 216if (symbol is INamedTypeSymbol namedType) 309=> symbol is INamedTypeSymbol { IsAnonymousType: true }; 352SymbolKind.NamedType => ((INamedTypeSymbol)symbol).Arity, 433INamedTypeSymbol nt => nt.TypeParameters, 454INamedTypeSymbol nt => nt.TypeArguments, 463var containingType = symbol.ContainingType; 504var delegateType = compilation.GetTypeByMetadataName(method.ReturnsVoid 533=> symbol is INamedTypeSymbol { IsStatic: true }; 545foreach (var type in namespaceOrType.GetAllTypes(cancellationToken)) 559return ((INamedTypeSymbol)symbol).GetMembers().OfType<IPropertySymbol>().Where(p => p.CanBeReferencedByName); 809public static bool HasAttribute([NotNullWhen(true)] this ISymbol? symbol, [NotNullWhen(true)] INamedTypeSymbol? attributeClass)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\ISymbolExtensions.RequiresUnsafeModifierVisitor.cs (1)
56public override bool VisitNamedType(INamedTypeSymbol symbol)
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\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\ITypeGenerator.cs (1)
13ITypeSymbol Construct(INamedTypeSymbol namedType, ITypeSymbol[] typeArguments);
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\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\ITypeSymbolExtensions.AnonymousTypeRemover.cs (1)
42public override ITypeSymbol VisitNamedType(INamedTypeSymbol symbol)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\ITypeSymbolExtensions.CollectTypeParameterSymbolsVisitor.cs (1)
57public override void VisitNamedType(INamedTypeSymbol symbol)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\ITypeSymbolExtensions.CompilationTypeGenerator.cs (1)
19public ITypeSymbol Construct(INamedTypeSymbol namedType, ITypeSymbol[] typeArguments)
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) 315INamedTypeSymbol n => ContainsAnonymousType(n), 320private static bool ContainsAnonymousType(INamedTypeSymbol type) 410public static INamedTypeSymbol? GetDelegateType(this ITypeSymbol? typeSymbol, Compilation compilation) 414var expressionOfT = compilation.ExpressionOfTType(); 417var typeArgument = ((INamedTypeSymbol)typeSymbol).TypeArguments[0]; 418return typeArgument as INamedTypeSymbol; 423return typeSymbol as INamedTypeSymbol; 576var n2 = t2 as INamedTypeSymbol; 578if (t1 is not INamedTypeSymbol n1) 628public static bool IsEnumType([NotNullWhen(true)] this ITypeSymbol? type, [NotNullWhen(true)] out INamedTypeSymbol? enumType) 632enumType = (INamedTypeSymbol)type; 724if (type is not INamedTypeSymbol 777=> type is INamedTypeSymbol 785=> symbol is INamedTypeSymbol 793=> type is INamedTypeSymbol namedType &&
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\ITypeSymbolExtensions.MinimalAccessibilityVisitor.cs (2)
42foreach (var callingConventionType in symbol.Signature.UnmanagedCallingConventionTypes) 50public override Accessibility VisitNamedType(INamedTypeSymbol symbol)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\ITypeSymbolExtensions.SubstituteTypesVisitor.cs (1)
58public override ITypeSymbol VisitNamedType(INamedTypeSymbol symbol)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\ITypeSymbolExtensions.UnavailableTypeParameterRemover.cs (1)
43public override ITypeSymbol VisitNamedType(INamedTypeSymbol symbol)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\ITypeSymbolExtensions.UnnamedErrorTypeRemover.cs (1)
42public override ITypeSymbol VisitNamedType(INamedTypeSymbol symbol)
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\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\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\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\SymbolEquivalenceComparer.ParameterSymbolEqualityComparer.cs (2)
23Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies,
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\SymbolEquivalenceComparer.SignatureTypeSymbolEquivalenceComparer.cs (2)
18public bool Equals(ITypeSymbol? x, ITypeSymbol? y, Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies)
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\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\AbstractFlagsEnumGenerator.cs (10)
15protected abstract SyntaxNode CreateExplicitlyCastedLiteralValue(INamedTypeSymbol enumType, SpecialType underlyingSpecialType, object constantValue); 16protected abstract bool IsValidName(INamedTypeSymbol enumType, string name); 20public SyntaxNode CreateEnumConstantValue(INamedTypeSymbol enumType, object constantValue) 36private static bool IsFlagsEnum(INamedTypeSymbol typeSymbol) 48var type = ctor.ContainingType; 61private SyntaxNode CreateFlagsEnumConstantValue(INamedTypeSymbol enumType, object constantValue) 72INamedTypeSymbol enumType, 138IFieldSymbol field, INamedTypeSymbol enumType, SpecialType underlyingSpecialType) 168INamedTypeSymbol enumType, 185private SyntaxNode CreateNonFlagsEnumConstantValue(INamedTypeSymbol enumType, object constantValue)
src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\CodeGenerationHelpers.cs (2)
25var exceptionType = compilation.GetTypeByMetadataName(exceptionMetadataName); 150public static IEnumerable<ISymbol> GetMembers(INamedTypeSymbol namedType)
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\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\CodeGenerator.cs (8)
29public static Task<Document> AddEventDeclarationAsync(CodeGenerationSolutionContext context, INamedTypeSymbol destination, IEventSymbol @event, CancellationToken cancellationToken) 36public static Task<Document> AddFieldDeclarationAsync(CodeGenerationSolutionContext context, INamedTypeSymbol destination, IFieldSymbol field, CancellationToken cancellationToken) 43public static Task<Document> AddMethodDeclarationAsync(CodeGenerationSolutionContext context, INamedTypeSymbol destination, IMethodSymbol method, CancellationToken cancellationToken) 50public static Task<Document> AddPropertyDeclarationAsync(CodeGenerationSolutionContext context, INamedTypeSymbol destination, IPropertySymbol property, CancellationToken cancellationToken) 57public static Task<Document> AddNamedTypeDeclarationAsync(CodeGenerationSolutionContext context, INamedTypeSymbol destination, INamedTypeSymbol namedType, CancellationToken cancellationToken) 64public static Task<Document> AddNamedTypeDeclarationAsync(CodeGenerationSolutionContext context, INamespaceSymbol destination, INamedTypeSymbol namedType, CancellationToken cancellationToken) 85public static Task<Document> AddMemberDeclarationsAsync(CodeGenerationSolutionContext context, INamedTypeSymbol destination, IEnumerable<ISymbol> members, CancellationToken cancellationToken)
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\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\INamedTypeSymbolExtensions.cs (2)
11public static CodeGenerationAbstractNamedTypeSymbol ToCodeGenerationSymbol(this INamedTypeSymbol namedType) 32namedType.GetMembers().WhereAsArray(s => s is not INamedTypeSymbol),
src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\Symbols\CodeGenerationAbstractMethodSymbol.cs (3)
23INamedTypeSymbol containingType, 98public INamedTypeSymbol AssociatedAnonymousDelegate => null; 108public ImmutableArray<INamedTypeSymbol> UnmanagedCallingConventionTypes => [];
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\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\Symbols\CodeGenerationAttributeData.cs (2)
13INamedTypeSymbol attributeClass, 20protected override INamedTypeSymbol CommonAttributeClass => attributeClass;
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\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\Symbols\CodeGenerationConstructorSymbol.cs (1)
11INamedTypeSymbol? containingType,
src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\Symbols\CodeGenerationConversionSymbol.cs (1)
11INamedTypeSymbol? containingType,
src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\Symbols\CodeGenerationDestructorSymbol.cs (1)
10INamedTypeSymbol? containingType,
src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\Symbols\CodeGenerationEventSymbol.cs (1)
12INamedTypeSymbol? containingType,
src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\Symbols\CodeGenerationFieldSymbol.cs (1)
13INamedTypeSymbol containingType,
src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\Symbols\CodeGenerationMethodSymbol.cs (1)
23INamedTypeSymbol containingType,
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\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\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\Symbols\CodeGenerationNamespaceSymbol.cs (1)
57public static INamedTypeSymbol ImplicitType => null;
src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\Symbols\CodeGenerationOperatorSymbol.cs (1)
11INamedTypeSymbol? containingType,
src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\Symbols\CodeGenerationParameterSymbol.cs (1)
13INamedTypeSymbol containingType,
src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\Symbols\CodeGenerationPropertySymbol.cs (1)
13INamedTypeSymbol containingType,
src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\Symbols\CodeGenerationSymbol.cs (3)
27public INamedTypeSymbol ContainingType { get; protected set; } 31INamedTypeSymbol containingType, 162public ImmutableArray<AttributeData> GetAttributes(INamedTypeSymbol attributeType)
src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\Symbols\CodeGenerationTypeParameterSymbol.cs (3)
12INamedTypeSymbol containingType, 80public INamedTypeSymbol DeclaringType 84return this.ContainingSymbol as INamedTypeSymbol;
src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\Symbols\CodeGenerationTypeSymbol.cs (4)
14INamedTypeSymbol containingType, 27public virtual INamedTypeSymbol BaseType => null; 29public virtual ImmutableArray<INamedTypeSymbol> Interfaces 32public ImmutableArray<INamedTypeSymbol> AllInterfaces
src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\TypeGenerator.cs (1)
21public ITypeSymbol Construct(INamedTypeSymbol namedType, ITypeSymbol[] typeArguments)
src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\Editing\ImportAdderService.cs (2)
202foreach (var namedType in SymbolAnnotation.GetSymbols(annotation, model.Compilation).OfType<INamedTypeSymbol>())
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\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\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\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\Extensions\KnownTypes.cs (8)
9public readonly INamedTypeSymbol? TaskType = compilation.TaskType(); 10public readonly INamedTypeSymbol? TaskOfTType = compilation.TaskOfTType(); 11public readonly INamedTypeSymbol? ValueTaskType = compilation.ValueTaskType(); 12public readonly INamedTypeSymbol? ValueTaskOfTType = compilation.ValueTaskOfTType(); 14public readonly INamedTypeSymbol? IEnumerableOfTType = compilation.IEnumerableOfTType(); 15public readonly INamedTypeSymbol? IEnumeratorOfTType = compilation.IEnumeratorOfTType(); 17public readonly INamedTypeSymbol? IAsyncEnumerableOfTType = compilation.IAsyncEnumerableOfTType(); 18public readonly INamedTypeSymbol? IAsyncEnumeratorOfTType = compilation.IAsyncEnumeratorOfTType();
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\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\Extensions\SyntaxGeneratorExtensions_CreateEqualsMethod.cs (11)
32INamedTypeSymbol containingType, 63INamedTypeSymbol containingType, 65INamedTypeSymbol constructedEquatableType, 109INamedTypeSymbol containingType, 218var iequatableType = compilation.GetTypeByMetadataName(typeof(IEquatable<>).FullName); 271INamedTypeSymbol containingType, 382private static bool ImplementsIEquatable(ITypeSymbol memberType, INamedTypeSymbol iequatableType) 388var constructed = iequatableType.Construct(memberType); 433private static bool HasExistingBaseEqualsMethod(INamedTypeSymbol containingType) 456INamedTypeSymbol? containingType, 490INamedTypeSymbol? containingType,
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\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\Extensions\SyntaxGeneratorExtensions_Negate.cs (1)
446var containingType = property.ContainingType;
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\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\LanguageServices\SemanticsFactsService\AbstractSemanticFactsService.cs (7)
127var valueTaskType = compilation.ValueTaskType(); 163(INamedTypeSymbol?, IMethodSymbol?) GetIDisposableInterfaceAndDisposeMethod(string typeName, string methodName) 165var 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\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\LanguageServices\SyntaxGeneratorInternalExtensions\SyntaxGeneratorInternal.cs (1)
117public abstract SyntaxNode DeclarationPattern(INamedTypeSymbol type, string name);
src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\LanguageServices\TypeInferenceService\AbstractTypeInferenceService.AbstractTypeInferrer.cs (1)
102protected static IEnumerable<TypeInferenceInfo> GetCollectionElementType(INamedTypeSymbol type)
src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\Simplification\SimplificationHelpers.cs (1)
80var typeSymbol = semanticModel.Compilation.GetSpecialType(specialType);
Microsoft.CodeAnalysis.PublicApiAnalyzers (564)
DeclarePublicApiAnalyzer.Impl.cs (15)
121var obsoleteAttribute = symbolContext.Compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemObsoleteAttribute); 163var obsoleteAttribute = symbolContext.Compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemObsoleteAttribute); 171private void OnSymbolActionCore(ISymbol symbol, Action<Diagnostic> reportDiagnostic, INamedTypeSymbol? obsoleteAttribute, CancellationToken cancellationToken, Location? explicitLocation = null) 182if (symbol is INamedTypeSymbol namedType) 227private void OnSymbolActionCore(ISymbol symbol, Action<Diagnostic> reportDiagnostic, bool isImplicitlyDeclaredConstructor, INamedTypeSymbol? obsoleteAttribute, CancellationToken cancellationToken, Location? explicitLocation = null) 589return ObliviousDetector.VisitNamedTypeDeclaration((INamedTypeSymbol)symbol); 702var typeForwardedToAttribute = compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemRuntimeCompilerServicesTypeForwardedToAttribute); 711attribute.ConstructorArguments[0].Value is INamedTypeSymbol forwardedType) 713var obsoleteAttribute = compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemObsoleteAttribute); 725private void VisitForwardedTypeRecursively(ISymbol symbol, Action<Diagnostic> reportDiagnostic, INamedTypeSymbol? obsoleteAttribute, Location typeForwardedAttributeLocation, CancellationToken cancellationToken) 730if (symbol is INamedTypeSymbol namedTypeSymbol) 732foreach (var nestedType in namedTypeSymbol.GetTypeMembers()) 971public override bool VisitNamedType(INamedTypeSymbol symbol) 980if (symbol.ContainingType is INamedTypeSymbol containing && 1027public static bool VisitNamedTypeDeclaration(INamedTypeSymbol symbol)
src\Compilers\Core\Portable\SourceGeneration\GeneratedCodeUtilities.cs (1)
19ISymbol symbol, INamedTypeSymbol generatedCodeAttribute)
src\RoslynAnalyzers\Utilities\Compiler\CodeMetrics\CodeAnalysisMetricData.AssemblyMetricData.cs (2)
21ImmutableHashSet<INamedTypeSymbol> coupledNamedTypes, 45var coupledTypesBuilder = ImmutableHashSet.CreateBuilder<INamedTypeSymbol>();
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\RoslynAnalyzers\Utilities\Compiler\CodeMetrics\CodeAnalysisMetricData.EventMetricData.cs (2)
18ImmutableHashSet<INamedTypeSymbol> coupledNamedTypes, 30var coupledTypesBuilder = ImmutableHashSet.CreateBuilder<INamedTypeSymbol>();
src\RoslynAnalyzers\Utilities\Compiler\CodeMetrics\CodeAnalysisMetricData.FieldMetricData.cs (2)
18ImmutableHashSet<INamedTypeSymbol> coupledNamedTypes, 29var coupledTypesBuilder = ImmutableHashSet.CreateBuilder<INamedTypeSymbol>();
src\RoslynAnalyzers\Utilities\Compiler\CodeMetrics\CodeAnalysisMetricData.MethodMetricData.cs (2)
18ImmutableHashSet<INamedTypeSymbol> coupledNamedTypes, 29var coupledTypesBuilder = ImmutableHashSet.CreateBuilder<INamedTypeSymbol>();
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\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\RoslynAnalyzers\Utilities\Compiler\CodeMetrics\CodeAnalysisMetricData.PropertyMetricData.cs (2)
18ImmutableHashSet<INamedTypeSymbol> coupledNamedTypes, 30var coupledTypesBuilder = ImmutableHashSet.CreateBuilder<INamedTypeSymbol>();
src\RoslynAnalyzers\Utilities\Compiler\CodeMetrics\CodeMetricsAnalysisContext.cs (2)
18Func<INamedTypeSymbol, bool>? isExcludedFromInheritanceCountFunc = null) 32public Func<INamedTypeSymbol, bool> IsExcludedFromInheritanceCountFunc { get; }
src\RoslynAnalyzers\Utilities\Compiler\CodeMetrics\MetricsHelper.cs (12)
39internal static void AddCoupledNamedTypes(ImmutableHashSet<INamedTypeSymbol>.Builder builder, WellKnownTypeProvider wellKnownTypeProvider, 40ImmutableHashSet<INamedTypeSymbol> coupledTypes) 42foreach (var coupledType in coupledTypes) 48internal static void AddCoupledNamedTypes(ImmutableHashSet<INamedTypeSymbol>.Builder builder, WellKnownTypeProvider wellKnownTypeProvider, 54internal static void AddCoupledNamedTypes(ImmutableHashSet<INamedTypeSymbol>.Builder builder, WellKnownTypeProvider wellKnownTypeProvider, 195ImmutableHashSet<INamedTypeSymbol>.Builder builder, 349private static void AddCoupledNamedTypesCore(ImmutableHashSet<INamedTypeSymbol>.Builder builder, ITypeSymbol typeOpt, 352if (typeOpt is INamedTypeSymbol usedType && 370static bool isIgnoreableType(INamedTypeSymbol namedType, WellKnownTypeProvider wellKnownTypeProvider) 400internal static void RemoveContainingTypes(ISymbol symbol, ImmutableHashSet<INamedTypeSymbol>.Builder coupledTypesBuilder) 402var namedType = symbol as INamedTypeSymbol ?? symbol.ContainingType;
src\RoslynAnalyzers\Utilities\Compiler\DiagnosticHelpers.cs (1)
68if (symbol is INamedTypeSymbol namedType &&
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\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\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) 208private static bool HasDisposeCloseAsyncMethodSignature(this IMethodSymbol method, INamedTypeSymbol? taskType) 216INamedTypeSymbol? task, 217INamedTypeSymbol? valueTask, 218INamedTypeSymbol? configuredValueTaskAwaitable) 231private static bool HasOverriddenDisposeCoreAsyncMethodSignature(this IMethodSymbol method, [NotNullWhen(returnValue: true)] INamedTypeSymbol? task) 244private static bool HasVirtualOrOverrideDisposeCoreAsyncMethodSignature(this IMethodSymbol method, [NotNullWhen(returnValue: true)] INamedTypeSymbol? valueTask) 258INamedTypeSymbol? iDisposable = compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemIDisposable); 259INamedTypeSymbol? iAsyncDisposable = compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemIAsyncDisposable); 260INamedTypeSymbol? configuredAsyncDisposable = compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemRuntimeCompilerServicesConfiguredAsyncDisposable); 261INamedTypeSymbol? task = compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemThreadingTasksTask); 262INamedTypeSymbol? valueTask = compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemThreadingTasksValueTask); 263INamedTypeSymbol? configuredValueTaskAwaitable = compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemRuntimeCompilerServicesConfiguredValueTaskAwaitable); 272INamedTypeSymbol? iDisposable, 273INamedTypeSymbol? iAsyncDisposable, 274INamedTypeSymbol? configuredAsyncDisposable, 275INamedTypeSymbol? task, 276INamedTypeSymbol? valueTask, 277INamedTypeSymbol? configuredValueTaskAwaitable) 321public static bool IsSerializationConstructor([NotNullWhen(returnValue: true)] this IMethodSymbol? method, INamedTypeSymbol? serializationInfoType, INamedTypeSymbol? streamingContextType) 327public static bool IsGetObjectData([NotNullWhen(returnValue: true)] this IMethodSymbol? method, INamedTypeSymbol? serializationInfoType, INamedTypeSymbol? streamingContextType) 374public static bool IsCollectionAddMethod(this IMethodSymbol method, ImmutableHashSet<INamedTypeSymbol> iCollectionTypes) 395public static bool IsTaskFromResultMethod(this IMethodSymbol method, [NotNullWhen(returnValue: true)] INamedTypeSymbol? taskType) 404public static bool IsTaskConfigureAwaitMethod(this IMethodSymbol method, [NotNullWhen(returnValue: true)] INamedTypeSymbol? genericTaskType) 416public static bool IsAsyncDisposableConfigureAwaitMethod(this IMethodSymbol method, [NotNullWhen(returnValue: true)] INamedTypeSymbol? asyncDisposableType, [NotNullWhen(returnValue: true)] INamedTypeSymbol? taskAsyncEnumerableExtensions) 493public static bool IsLockMethod(this IMethodSymbol method, [NotNullWhen(returnValue: true)] INamedTypeSymbol? systemThreadingMonitor) 503public static bool IsInterlockedExchangeMethod(this IMethodSymbol method, INamedTypeSymbol? systemThreadingInterlocked) 515public static bool IsInterlockedCompareExchangeMethod(this IMethodSymbol method, INamedTypeSymbol? systemThreadingInterlocked) 546public static bool IsBenchmarkOrXUnitTestMethod(this IMethodSymbol method, ConcurrentDictionary<INamedTypeSymbol, bool> knownTestAttributes, INamedTypeSymbol? benchmarkAttribute, INamedTypeSymbol? xunitFactAttribute) 571var typeSymbol = methodSymbol.ContainingType;
src\RoslynAnalyzers\Utilities\Compiler\Extensions\INamedTypeSymbolExtensions.cs (9)
19public static bool IsFileLocal(this INamedTypeSymbol symbol) => symbol.IsFileLocal; 43public static bool DerivesFromOrImplementsAnyConstructionOf(this INamedTypeSymbol type, INamedTypeSymbol parentType) 50for (INamedTypeSymbol? baseType = type.OriginalDefinition; 68public static bool OverridesEquals(this INamedTypeSymbol symbol) 74public static bool IsBenchmarkOrXUnitTestAttribute(this INamedTypeSymbol attributeClass, ConcurrentDictionary<INamedTypeSymbol, bool> knownTestAttributes, INamedTypeSymbol? benchmarkAttribute, INamedTypeSymbol? xunitFactAttribute)
src\RoslynAnalyzers\Utilities\Compiler\Extensions\IPropertySymbolExtensions.cs (1)
36var typeSymbol = propertySymbol.ContainingType;
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\RoslynAnalyzers\Utilities\Compiler\Extensions\ITypeSymbolExtensions.cs (14)
116INamedTypeSymbol? iDisposable, 117INamedTypeSymbol? iAsyncDisposable, 118INamedTypeSymbol? configuredAsyncDisposable) 140static bool IsInterfaceOrImplementsInterface(ITypeSymbol type, INamedTypeSymbol? interfaceType) 150public static IEnumerable<AttributeData> GetApplicableAttributes(this INamedTypeSymbol type, INamedTypeSymbol? attributeUsageAttribute) 182static bool IsInheritedAttribute(AttributeData attributeData, INamedTypeSymbol attributeUsageAttribute) 184for (var currentAttributeClass = attributeData.AttributeClass; 217public static IEnumerable<AttributeData> GetApplicableExportAttributes(this INamedTypeSymbol? type, INamedTypeSymbol? exportAttributeV1, INamedTypeSymbol? exportAttributeV2, INamedTypeSymbol? inheritedExportAttribute) 265=> typeSymbol.IsNullableValueType() && ((INamedTypeSymbol)typeSymbol).TypeArguments[0].SpecialType == SpecialType.System_Boolean; 268=> (typeSymbol as INamedTypeSymbol)?.TupleUnderlyingType ?? typeSymbol;
src\RoslynAnalyzers\Utilities\Compiler\Options\AnalyzerOptionsExtensions.cs (9)
281if (symbol is INamedTypeSymbol namedType && !excludedTypeNamesWithDerivedTypes.IsEmpty) 283foreach (var type in namedType.GetBaseTypesAndThis()) 379public static SymbolNamesWithValueOption<INamedTypeSymbol?> GetAdditionalRequiredGenericInterfaces( 386private static SymbolNamesWithValueOption<INamedTypeSymbol?> GetAdditionalRequiredGenericInterfaces( 394static SymbolNamesWithValueOption<INamedTypeSymbol?>.NameParts GetParts(string name, Compilation compilation) 401return new SymbolNamesWithValueOption<INamedTypeSymbol?>.NameParts(name, null); 413matchingSymbols[0] is not INamedTypeSymbol namedType || 418return new SymbolNamesWithValueOption<INamedTypeSymbol?>.NameParts(split[0], null); 421return new SymbolNamesWithValueOption<INamedTypeSymbol?>.NameParts(split[0], namedType);
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\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Extensions\OperationExtensions.cs (2)
405var notImplementedExceptionType = compilation.NotImplementedExceptionType(); 454static bool IsThrowNotImplementedOperation(INamedTypeSymbol notImplementedExceptionType, IOperation? operation)
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); 177var enumerableType = semanticModel.Compilation.IEnumerableOfTType();
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\NamingStyles\NamingStyleRules.cs (3)
65var containingType = symbol.ContainingType; 87var containingType = symbol.ContainingType; 90foreach (var implementedInterface in implementedInterfaces)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Services\SemanticFacts\ISemanticFacts.cs (4)
67bool LastEnumValueHasInitializer(INamedTypeSymbol namedTypeSymbol); 88bool IsPartial(INamedTypeSymbol typeSymbol, CancellationToken cancellationToken); 107bool IsInExpressionTree(SemanticModel semanticModel, SyntaxNode node, [NotNullWhen(true)] INamedTypeSymbol? expressionType, CancellationToken cancellationToken); 122bool TryGetPrimaryConstructor(INamedTypeSymbol typeSymbol, [NotNullWhen(true)] out IMethodSymbol? primaryConstructor);
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\SymbolKey\SymbolKey.AnonymousFunctionOrDelegateSymbolKey.cs (1)
65var anonymousDelegate = methodSymbol.AssociatedAnonymousDelegate;
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\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\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\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\SymbolKey\SymbolKey.FunctionPointerTypeSymbolKey.cs (2)
37var callingConventionModifiers = ImmutableArray<INamedTypeSymbol>.Empty; 40using var modifiersBuilder = reader.ReadSymbolKeyArray<IFunctionPointerTypeSymbol, INamedTypeSymbol>(
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\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\SymbolKey\SymbolKey.ParameterSymbolKey.cs (1)
64var delegateInvoke = (eventSymbol.Type as INamedTypeSymbol)?.DelegateInvokeMethod;
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\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\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Utilities\AbstractSpeculationAnalyzer.cs (5)
417var type = methodSymbol.ContainingType; 418var newType = newMethodSymbol.ContainingType; 491private static bool EnumTypesAreCompatible(INamedTypeSymbol type1, INamedTypeSymbol type2) 992var newSymbolContainingType = newSymbol.ContainingType;
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Utilities\EnumValueUtilities.cs (1)
21public static object GetNextEnumValue(INamedTypeSymbol enumType)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Compilation\CompilationExtensions.cs (78)
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? EventArgsType(this Compilation compilation) 129public static INamedTypeSymbol? NotImplementedExceptionType(this Compilation compilation) 132public static INamedTypeSymbol? EqualityComparerOfTType(this Compilation compilation) 135public static INamedTypeSymbol? ActionType(this Compilation compilation) 138public static INamedTypeSymbol? ExpressionOfTType(this Compilation compilation) 141public static INamedTypeSymbol? EditorBrowsableAttributeType(this Compilation compilation) 144public static INamedTypeSymbol? EditorBrowsableStateType(this Compilation compilation) 147public static INamedTypeSymbol? TaskType(this Compilation compilation) 150public static INamedTypeSymbol? TaskOfTType(this Compilation compilation) 153public static INamedTypeSymbol? ValueTaskType(this Compilation compilation) 156public static INamedTypeSymbol? ValueTaskOfTType(this Compilation compilation) 159public static INamedTypeSymbol? IEnumerableType(this Compilation compilation) 162public static INamedTypeSymbol? IEnumerableOfTType(this Compilation compilation) 165public static INamedTypeSymbol? IEnumeratorOfTType(this Compilation compilation) 168public static INamedTypeSymbol? IListOfTType(this Compilation compilation) 171public static INamedTypeSymbol? IReadOnlyListOfTType(this Compilation compilation) 174public static INamedTypeSymbol? ISetOfTType(this Compilation compilation) 177public static INamedTypeSymbol? IReadOnlySetOfTType(this Compilation compilation) 180public static INamedTypeSymbol? IAsyncEnumerableOfTType(this Compilation compilation) 183public static INamedTypeSymbol? IAsyncEnumeratorOfTType(this Compilation compilation) 186public static INamedTypeSymbol? ImmutableArrayOfTType(this Compilation compilation) 189public static INamedTypeSymbol? SerializableAttributeType(this Compilation compilation) 192public static INamedTypeSymbol? CoClassType(this Compilation compilation) 195public static INamedTypeSymbol? ComAliasNameAttributeType(this Compilation compilation) 198public static INamedTypeSymbol? SuppressMessageAttributeType(this Compilation compilation) 201public static INamedTypeSymbol? TupleElementNamesAttributeType(this Compilation compilation) 204public static INamedTypeSymbol? NativeIntegerAttributeType(this Compilation compilation) 207public static INamedTypeSymbol? DynamicAttributeType(this Compilation compilation) 210public static INamedTypeSymbol? LazyOfTType(this Compilation compilation) 213public static INamedTypeSymbol? ISerializableType(this Compilation compilation) 216public static INamedTypeSymbol? SerializationInfoType(this Compilation compilation) 219public static INamedTypeSymbol? StreamingContextType(this Compilation compilation) 222public static INamedTypeSymbol? OnDeserializingAttribute(this Compilation compilation) 225public static INamedTypeSymbol? OnDeserializedAttribute(this Compilation compilation) 228public static INamedTypeSymbol? OnSerializingAttribute(this Compilation compilation) 231public static INamedTypeSymbol? OnSerializedAttribute(this Compilation compilation) 234public static INamedTypeSymbol? ComRegisterFunctionAttribute(this Compilation compilation) 237public static INamedTypeSymbol? ComUnregisterFunctionAttribute(this Compilation compilation) 240public static INamedTypeSymbol? ConditionalAttribute(this Compilation compilation) 243public static INamedTypeSymbol? ObsoleteAttribute(this Compilation compilation) 246public static INamedTypeSymbol? SystemCompositionImportingConstructorAttribute(this Compilation compilation) 249public static INamedTypeSymbol? SystemComponentModelCompositionImportingConstructorAttribute(this Compilation compilation) 252public static INamedTypeSymbol? SystemIDisposableType(this Compilation compilation) 255public static INamedTypeSymbol? NotNullAttribute(this Compilation compilation) 258public static INamedTypeSymbol? MaybeNullAttribute(this Compilation compilation) 261public static INamedTypeSymbol? MaybeNullWhenAttribute(this Compilation compilation) 264public static INamedTypeSymbol? AllowNullAttribute(this Compilation compilation) 267public static INamedTypeSymbol? DisallowNullAttribute(this Compilation compilation) 270public static INamedTypeSymbol? DataMemberAttribute(this Compilation compilation) 273public static INamedTypeSymbol? DataContractAttribute(this Compilation compilation) 276public static INamedTypeSymbol? AsyncMethodBuilderAttribute(this Compilation compilation) 279public static INamedTypeSymbol? CancellationTokenType(this Compilation compilation) 282public static INamedTypeSymbol? ValueTupleType(this Compilation compilation, int arity) 285public static INamedTypeSymbol? ListOfTType(this Compilation compilation) 288public static INamedTypeSymbol? ReadOnlySpanOfTType(this Compilation compilation) 291public static INamedTypeSymbol? SpanOfTType(this Compilation compilation) 294public static INamedTypeSymbol? InterpolatedStringHandlerAttributeType(this Compilation compilation) 322public static INamedTypeSymbol? GetBestTypeByMetadataName(this Compilation compilation, string fullyQualifiedMetadataName) 324INamedTypeSymbol? type = null; 326foreach (var currentType in compilation.GetTypesByMetadataName(fullyQualifiedMetadataName)) 361foreach (var candidateTopLevelType in compilation.SourceModule.GlobalNamespace.GetTypeMembers(WellKnownMemberNames.TopLevelStatementsEntryPointTypeName, arity: 0)) 373public static INamedTypeSymbol? TryGetCallingConventionSymbol(this Compilation compilation, string callingConvention)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\IMethodSymbolExtensions.cs (4)
44public static bool HasEventHandlerSignature(this IMethodSymbol method, [NotNullWhen(returnValue: true)] INamedTypeSymbol? eventArgsType) 103public static bool IsEntryPoint(this IMethodSymbol methodSymbol, INamedTypeSymbol? taskType, INamedTypeSymbol? genericTaskType) 119if (method.ReturnType is not INamedTypeSymbol { Arity: 0 })
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\INamedTypeSymbolExtensions.cs (73)
23public static IEnumerable<INamedTypeSymbol> GetBaseTypesAndThis(this INamedTypeSymbol? namedType) 25var current = namedType; 33public static ImmutableArray<ITypeParameterSymbol> GetAllTypeParameters(this INamedTypeSymbol? symbol) 39public static ImmutableArray<ITypeSymbol> GetAllTypeArguments(this INamedTypeSymbol? symbol) 45private static Stack<INamedTypeSymbol> GetContainmentStack(INamedTypeSymbol? symbol) 47var stack = new Stack<INamedTypeSymbol>(); 48for (var current = symbol; current != null; current = current.ContainingType) 56public static bool IsContainedWithin([NotNullWhen(returnValue: true)] this INamedTypeSymbol? symbol, INamedTypeSymbol outer) 59for (var current = symbol; current != null; current = current.ContainingType) 70public static ISymbol? FindImplementationForAbstractMember(this INamedTypeSymbol? type, ISymbol symbol) 81private static bool ImplementationExists(INamedTypeSymbol classOrStructType, ISymbol member) 85this INamedTypeSymbol classOrStructType, 87Func<INamedTypeSymbol, ISymbol, bool> isValidImplementation, 117private static bool IsInterfacePropertyImplemented(INamedTypeSymbol classOrStructType, IPropertySymbol propertySymbol) 125static bool IsAccessorImplemented(IMethodSymbol? accessor, INamedTypeSymbol classOrStructType) 131private static bool IsAbstractPropertyImplemented(INamedTypeSymbol classOrStructType, IPropertySymbol propertySymbol) 154this INamedTypeSymbol classOrStructType, 156Func<INamedTypeSymbol, ISymbol, bool> isValid, 179public static ImmutableArray<(INamedTypeSymbol type, ImmutableArray<ISymbol> members)> GetAllUnimplementedMembers( 180this INamedTypeSymbol classOrStructType, 181IEnumerable<INamedTypeSymbol> interfaces, 197static ImmutableArray<ISymbol> GetImplicitlyImplementableMembers(INamedTypeSymbol type, ISymbol within) 249public static ImmutableArray<(INamedTypeSymbol type, ImmutableArray<ISymbol> members)> GetAllUnimplementedMembersInThis( 250this INamedTypeSymbol classOrStructType, 251IEnumerable<INamedTypeSymbol> interfacesOrAbstractClasses, 267public static ImmutableArray<(INamedTypeSymbol type, ImmutableArray<ISymbol> members)> GetAllUnimplementedMembersInThis( 268this INamedTypeSymbol classOrStructType, 269IEnumerable<INamedTypeSymbol> interfacesOrAbstractClasses, 270Func<INamedTypeSymbol, ISymbol, ImmutableArray<ISymbol>> interfaceMemberGetter, 286public static ImmutableArray<(INamedTypeSymbol type, ImmutableArray<ISymbol> members)> GetAllUnimplementedExplicitMembers( 287this INamedTypeSymbol classOrStructType, 288IEnumerable<INamedTypeSymbol> interfaces, 300private static ImmutableArray<ISymbol> GetExplicitlyImplementableMembers(INamedTypeSymbol type, ISymbol within) 327private static ImmutableArray<(INamedTypeSymbol type, ImmutableArray<ISymbol> members)> GetAllUnimplementedMembers( 328this INamedTypeSymbol classOrStructType, 329IEnumerable<INamedTypeSymbol> interfacesOrAbstractClasses, 330Func<INamedTypeSymbol, ISymbol, Func<INamedTypeSymbol, ISymbol, bool>, CancellationToken, bool> isImplemented, 331Func<INamedTypeSymbol, ISymbol, bool> isValidImplementation, 332Func<INamedTypeSymbol, ISymbol, ImmutableArray<ISymbol>> interfaceMemberGetter, 361private static ImmutableArray<INamedTypeSymbol> GetTypesToImplement( 362INamedTypeSymbol classOrStructType, 363IEnumerable<INamedTypeSymbol> interfacesOrAbstractClasses, 372private static ImmutableArray<INamedTypeSymbol> GetAbstractClassesToImplement( 373IEnumerable<INamedTypeSymbol> abstractClasses) 378private static ImmutableArray<INamedTypeSymbol> GetInterfacesToImplement( 379INamedTypeSymbol classOrStructType, 380IEnumerable<INamedTypeSymbol> interfaces, 387var interfacesToImplement = new List<INamedTypeSymbol>( 392var baseType = classOrStructType.BaseType; 403this INamedTypeSymbol classOrStructType, 404INamedTypeSymbol interfaceType, 405Func<INamedTypeSymbol, ISymbol, Func<INamedTypeSymbol, ISymbol, bool>, CancellationToken, bool> isImplemented, 406Func<INamedTypeSymbol, ISymbol, bool> isValidImplementation, 407Func<INamedTypeSymbol, ISymbol, ImmutableArray<ISymbol>> interfaceMemberGetter, 449this INamedTypeSymbol attributeSymbol, 455var systemAttributeType = compilation.AttributeType(); 457foreach (var type in attributeSymbol.GetBaseTypesAndThis()) 517private static ImmutableArray<ISymbol> GetMembers(INamedTypeSymbol type, ISymbol within) 531this INamedTypeSymbol containingType, CancellationToken cancellationToken) 548foreach (var type in baseTypes) 569Dictionary<ISymbol, int> result, INamedTypeSymbol containingType, CancellationToken cancellationToken) 590Dictionary<ISymbol, int> result, INamedTypeSymbol containingType, CancellationToken cancellationToken) 612Dictionary<ISymbol, int> result, INamedTypeSymbol containingType, 613INamedTypeSymbol type, ref int index, CancellationToken cancellationToken) 626private static bool IsOverridable(ISymbol member, INamedTypeSymbol containingType) 669public static INamedTypeSymbol TryConstruct(this INamedTypeSymbol type, ITypeSymbol[] typeArguments) 672public static bool IsCollectionBuilderAttribute([NotNullWhen(true)] this INamedTypeSymbol? type)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\INamespaceOrTypeSymbolExtensions.cs (3)
90public static IEnumerable<INamedTypeSymbol> GetAllTypes( 106var namedType = (INamedTypeSymbol)current;
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\ISymbolExtensions.cs (15)
98foreach (var baseType in symbol.ContainingType.GetBaseTypes()) 107bool TryFindLooseMatch(ISymbol symbol, INamedTypeSymbol baseType, [NotNullWhen(true)] out ISymbol? looseMatch) 156foreach (var iface in symbol.ContainingType.AllInterfaces) 214public static INamedTypeSymbol? GetContainingTypeOrThis(this ISymbol symbol) 216if (symbol is INamedTypeSymbol namedType) 309=> symbol is INamedTypeSymbol { IsAnonymousType: true }; 352SymbolKind.NamedType => ((INamedTypeSymbol)symbol).Arity, 433INamedTypeSymbol nt => nt.TypeParameters, 454INamedTypeSymbol nt => nt.TypeArguments, 463var containingType = symbol.ContainingType; 504var delegateType = compilation.GetTypeByMetadataName(method.ReturnsVoid 533=> symbol is INamedTypeSymbol { IsStatic: true }; 545foreach (var type in namespaceOrType.GetAllTypes(cancellationToken)) 559return ((INamedTypeSymbol)symbol).GetMembers().OfType<IPropertySymbol>().Where(p => p.CanBeReferencedByName); 809public static bool HasAttribute([NotNullWhen(true)] this ISymbol? symbol, [NotNullWhen(true)] INamedTypeSymbol? attributeClass)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\ISymbolExtensions.RequiresUnsafeModifierVisitor.cs (1)
56public override bool VisitNamedType(INamedTypeSymbol symbol)
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\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\ITypeGenerator.cs (1)
13ITypeSymbol Construct(INamedTypeSymbol namedType, ITypeSymbol[] typeArguments);
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\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\ITypeSymbolExtensions.AnonymousTypeRemover.cs (1)
42public override ITypeSymbol VisitNamedType(INamedTypeSymbol symbol)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\ITypeSymbolExtensions.CollectTypeParameterSymbolsVisitor.cs (1)
57public override void VisitNamedType(INamedTypeSymbol symbol)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\ITypeSymbolExtensions.CompilationTypeGenerator.cs (1)
19public ITypeSymbol Construct(INamedTypeSymbol namedType, ITypeSymbol[] typeArguments)
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) 315INamedTypeSymbol n => ContainsAnonymousType(n), 320private static bool ContainsAnonymousType(INamedTypeSymbol type) 410public static INamedTypeSymbol? GetDelegateType(this ITypeSymbol? typeSymbol, Compilation compilation) 414var expressionOfT = compilation.ExpressionOfTType(); 417var typeArgument = ((INamedTypeSymbol)typeSymbol).TypeArguments[0]; 418return typeArgument as INamedTypeSymbol; 423return typeSymbol as INamedTypeSymbol; 576var n2 = t2 as INamedTypeSymbol; 578if (t1 is not INamedTypeSymbol n1) 628public static bool IsEnumType([NotNullWhen(true)] this ITypeSymbol? type, [NotNullWhen(true)] out INamedTypeSymbol? enumType) 632enumType = (INamedTypeSymbol)type; 724if (type is not INamedTypeSymbol 777=> type is INamedTypeSymbol 785=> symbol is INamedTypeSymbol 793=> type is INamedTypeSymbol namedType &&
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\ITypeSymbolExtensions.MinimalAccessibilityVisitor.cs (2)
42foreach (var callingConventionType in symbol.Signature.UnmanagedCallingConventionTypes) 50public override Accessibility VisitNamedType(INamedTypeSymbol symbol)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\ITypeSymbolExtensions.SubstituteTypesVisitor.cs (1)
58public override ITypeSymbol VisitNamedType(INamedTypeSymbol symbol)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\ITypeSymbolExtensions.UnavailableTypeParameterRemover.cs (1)
43public override ITypeSymbol VisitNamedType(INamedTypeSymbol symbol)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\ITypeSymbolExtensions.UnnamedErrorTypeRemover.cs (1)
42public override ITypeSymbol VisitNamedType(INamedTypeSymbol symbol)
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\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\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\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\SymbolEquivalenceComparer.ParameterSymbolEqualityComparer.cs (2)
23Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies,
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\SymbolEquivalenceComparer.SignatureTypeSymbolEquivalenceComparer.cs (2)
18public bool Equals(ITypeSymbol? x, ITypeSymbol? y, Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies)
Microsoft.CodeAnalysis.PublicApiAnalyzers.CodeFixes (9)
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)
Microsoft.CodeAnalysis.Rebuild (1)
CompilationFactory.cs (1)
179var typeSymbol = rebuildCompilation.GetTypeByMetadataName(mainTypeName);
Microsoft.CodeAnalysis.Remote.ServiceHub (1)
Services\DependentTypeFinder\RemoteDependentTypeFinderService.cs (1)
39if (symbol is not INamedTypeSymbol namedType)
Microsoft.CodeAnalysis.ResxSourceGenerator (550)
AbstractResxGenerator.cs (1)
42var methodImplOptions = compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemRuntimeCompilerServicesMethodImplOptions);
src\Compilers\Core\Portable\SourceGeneration\GeneratedCodeUtilities.cs (1)
19ISymbol symbol, INamedTypeSymbol generatedCodeAttribute)
src\RoslynAnalyzers\Utilities\Compiler\CodeMetrics\CodeAnalysisMetricData.AssemblyMetricData.cs (2)
21ImmutableHashSet<INamedTypeSymbol> coupledNamedTypes, 45var coupledTypesBuilder = ImmutableHashSet.CreateBuilder<INamedTypeSymbol>();
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\RoslynAnalyzers\Utilities\Compiler\CodeMetrics\CodeAnalysisMetricData.EventMetricData.cs (2)
18ImmutableHashSet<INamedTypeSymbol> coupledNamedTypes, 30var coupledTypesBuilder = ImmutableHashSet.CreateBuilder<INamedTypeSymbol>();
src\RoslynAnalyzers\Utilities\Compiler\CodeMetrics\CodeAnalysisMetricData.FieldMetricData.cs (2)
18ImmutableHashSet<INamedTypeSymbol> coupledNamedTypes, 29var coupledTypesBuilder = ImmutableHashSet.CreateBuilder<INamedTypeSymbol>();
src\RoslynAnalyzers\Utilities\Compiler\CodeMetrics\CodeAnalysisMetricData.MethodMetricData.cs (2)
18ImmutableHashSet<INamedTypeSymbol> coupledNamedTypes, 29var coupledTypesBuilder = ImmutableHashSet.CreateBuilder<INamedTypeSymbol>();
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\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\RoslynAnalyzers\Utilities\Compiler\CodeMetrics\CodeAnalysisMetricData.PropertyMetricData.cs (2)
18ImmutableHashSet<INamedTypeSymbol> coupledNamedTypes, 30var coupledTypesBuilder = ImmutableHashSet.CreateBuilder<INamedTypeSymbol>();
src\RoslynAnalyzers\Utilities\Compiler\CodeMetrics\CodeMetricsAnalysisContext.cs (2)
18Func<INamedTypeSymbol, bool>? isExcludedFromInheritanceCountFunc = null) 32public Func<INamedTypeSymbol, bool> IsExcludedFromInheritanceCountFunc { get; }
src\RoslynAnalyzers\Utilities\Compiler\CodeMetrics\MetricsHelper.cs (12)
39internal static void AddCoupledNamedTypes(ImmutableHashSet<INamedTypeSymbol>.Builder builder, WellKnownTypeProvider wellKnownTypeProvider, 40ImmutableHashSet<INamedTypeSymbol> coupledTypes) 42foreach (var coupledType in coupledTypes) 48internal static void AddCoupledNamedTypes(ImmutableHashSet<INamedTypeSymbol>.Builder builder, WellKnownTypeProvider wellKnownTypeProvider, 54internal static void AddCoupledNamedTypes(ImmutableHashSet<INamedTypeSymbol>.Builder builder, WellKnownTypeProvider wellKnownTypeProvider, 195ImmutableHashSet<INamedTypeSymbol>.Builder builder, 349private static void AddCoupledNamedTypesCore(ImmutableHashSet<INamedTypeSymbol>.Builder builder, ITypeSymbol typeOpt, 352if (typeOpt is INamedTypeSymbol usedType && 370static bool isIgnoreableType(INamedTypeSymbol namedType, WellKnownTypeProvider wellKnownTypeProvider) 400internal static void RemoveContainingTypes(ISymbol symbol, ImmutableHashSet<INamedTypeSymbol>.Builder coupledTypesBuilder) 402var namedType = symbol as INamedTypeSymbol ?? symbol.ContainingType;
src\RoslynAnalyzers\Utilities\Compiler\DiagnosticHelpers.cs (1)
68if (symbol is INamedTypeSymbol namedType &&
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\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\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) 208private static bool HasDisposeCloseAsyncMethodSignature(this IMethodSymbol method, INamedTypeSymbol? taskType) 216INamedTypeSymbol? task, 217INamedTypeSymbol? valueTask, 218INamedTypeSymbol? configuredValueTaskAwaitable) 231private static bool HasOverriddenDisposeCoreAsyncMethodSignature(this IMethodSymbol method, [NotNullWhen(returnValue: true)] INamedTypeSymbol? task) 244private static bool HasVirtualOrOverrideDisposeCoreAsyncMethodSignature(this IMethodSymbol method, [NotNullWhen(returnValue: true)] INamedTypeSymbol? valueTask) 258INamedTypeSymbol? iDisposable = compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemIDisposable); 259INamedTypeSymbol? iAsyncDisposable = compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemIAsyncDisposable); 260INamedTypeSymbol? configuredAsyncDisposable = compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemRuntimeCompilerServicesConfiguredAsyncDisposable); 261INamedTypeSymbol? task = compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemThreadingTasksTask); 262INamedTypeSymbol? valueTask = compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemThreadingTasksValueTask); 263INamedTypeSymbol? configuredValueTaskAwaitable = compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemRuntimeCompilerServicesConfiguredValueTaskAwaitable); 272INamedTypeSymbol? iDisposable, 273INamedTypeSymbol? iAsyncDisposable, 274INamedTypeSymbol? configuredAsyncDisposable, 275INamedTypeSymbol? task, 276INamedTypeSymbol? valueTask, 277INamedTypeSymbol? configuredValueTaskAwaitable) 321public static bool IsSerializationConstructor([NotNullWhen(returnValue: true)] this IMethodSymbol? method, INamedTypeSymbol? serializationInfoType, INamedTypeSymbol? streamingContextType) 327public static bool IsGetObjectData([NotNullWhen(returnValue: true)] this IMethodSymbol? method, INamedTypeSymbol? serializationInfoType, INamedTypeSymbol? streamingContextType) 374public static bool IsCollectionAddMethod(this IMethodSymbol method, ImmutableHashSet<INamedTypeSymbol> iCollectionTypes) 395public static bool IsTaskFromResultMethod(this IMethodSymbol method, [NotNullWhen(returnValue: true)] INamedTypeSymbol? taskType) 404public static bool IsTaskConfigureAwaitMethod(this IMethodSymbol method, [NotNullWhen(returnValue: true)] INamedTypeSymbol? genericTaskType) 416public static bool IsAsyncDisposableConfigureAwaitMethod(this IMethodSymbol method, [NotNullWhen(returnValue: true)] INamedTypeSymbol? asyncDisposableType, [NotNullWhen(returnValue: true)] INamedTypeSymbol? taskAsyncEnumerableExtensions) 493public static bool IsLockMethod(this IMethodSymbol method, [NotNullWhen(returnValue: true)] INamedTypeSymbol? systemThreadingMonitor) 503public static bool IsInterlockedExchangeMethod(this IMethodSymbol method, INamedTypeSymbol? systemThreadingInterlocked) 515public static bool IsInterlockedCompareExchangeMethod(this IMethodSymbol method, INamedTypeSymbol? systemThreadingInterlocked) 546public static bool IsBenchmarkOrXUnitTestMethod(this IMethodSymbol method, ConcurrentDictionary<INamedTypeSymbol, bool> knownTestAttributes, INamedTypeSymbol? benchmarkAttribute, INamedTypeSymbol? xunitFactAttribute) 571var typeSymbol = methodSymbol.ContainingType;
src\RoslynAnalyzers\Utilities\Compiler\Extensions\INamedTypeSymbolExtensions.cs (9)
19public static bool IsFileLocal(this INamedTypeSymbol symbol) => symbol.IsFileLocal; 43public static bool DerivesFromOrImplementsAnyConstructionOf(this INamedTypeSymbol type, INamedTypeSymbol parentType) 50for (INamedTypeSymbol? baseType = type.OriginalDefinition; 68public static bool OverridesEquals(this INamedTypeSymbol symbol) 74public static bool IsBenchmarkOrXUnitTestAttribute(this INamedTypeSymbol attributeClass, ConcurrentDictionary<INamedTypeSymbol, bool> knownTestAttributes, INamedTypeSymbol? benchmarkAttribute, INamedTypeSymbol? xunitFactAttribute)
src\RoslynAnalyzers\Utilities\Compiler\Extensions\IPropertySymbolExtensions.cs (1)
36var typeSymbol = propertySymbol.ContainingType;
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\RoslynAnalyzers\Utilities\Compiler\Extensions\ITypeSymbolExtensions.cs (14)
116INamedTypeSymbol? iDisposable, 117INamedTypeSymbol? iAsyncDisposable, 118INamedTypeSymbol? configuredAsyncDisposable) 140static bool IsInterfaceOrImplementsInterface(ITypeSymbol type, INamedTypeSymbol? interfaceType) 150public static IEnumerable<AttributeData> GetApplicableAttributes(this INamedTypeSymbol type, INamedTypeSymbol? attributeUsageAttribute) 182static bool IsInheritedAttribute(AttributeData attributeData, INamedTypeSymbol attributeUsageAttribute) 184for (var currentAttributeClass = attributeData.AttributeClass; 217public static IEnumerable<AttributeData> GetApplicableExportAttributes(this INamedTypeSymbol? type, INamedTypeSymbol? exportAttributeV1, INamedTypeSymbol? exportAttributeV2, INamedTypeSymbol? inheritedExportAttribute) 265=> typeSymbol.IsNullableValueType() && ((INamedTypeSymbol)typeSymbol).TypeArguments[0].SpecialType == SpecialType.System_Boolean; 268=> (typeSymbol as INamedTypeSymbol)?.TupleUnderlyingType ?? typeSymbol;
src\RoslynAnalyzers\Utilities\Compiler\Options\AnalyzerOptionsExtensions.cs (9)
281if (symbol is INamedTypeSymbol namedType && !excludedTypeNamesWithDerivedTypes.IsEmpty) 283foreach (var type in namedType.GetBaseTypesAndThis()) 379public static SymbolNamesWithValueOption<INamedTypeSymbol?> GetAdditionalRequiredGenericInterfaces( 386private static SymbolNamesWithValueOption<INamedTypeSymbol?> GetAdditionalRequiredGenericInterfaces( 394static SymbolNamesWithValueOption<INamedTypeSymbol?>.NameParts GetParts(string name, Compilation compilation) 401return new SymbolNamesWithValueOption<INamedTypeSymbol?>.NameParts(name, null); 413matchingSymbols[0] is not INamedTypeSymbol namedType || 418return new SymbolNamesWithValueOption<INamedTypeSymbol?>.NameParts(split[0], null); 421return new SymbolNamesWithValueOption<INamedTypeSymbol?>.NameParts(split[0], namedType);
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\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Extensions\OperationExtensions.cs (2)
405var notImplementedExceptionType = compilation.NotImplementedExceptionType(); 454static bool IsThrowNotImplementedOperation(INamedTypeSymbol notImplementedExceptionType, IOperation? operation)
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); 177var enumerableType = semanticModel.Compilation.IEnumerableOfTType();
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\NamingStyles\NamingStyleRules.cs (3)
65var containingType = symbol.ContainingType; 87var containingType = symbol.ContainingType; 90foreach (var implementedInterface in implementedInterfaces)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Services\SemanticFacts\ISemanticFacts.cs (4)
67bool LastEnumValueHasInitializer(INamedTypeSymbol namedTypeSymbol); 88bool IsPartial(INamedTypeSymbol typeSymbol, CancellationToken cancellationToken); 107bool IsInExpressionTree(SemanticModel semanticModel, SyntaxNode node, [NotNullWhen(true)] INamedTypeSymbol? expressionType, CancellationToken cancellationToken); 122bool TryGetPrimaryConstructor(INamedTypeSymbol typeSymbol, [NotNullWhen(true)] out IMethodSymbol? primaryConstructor);
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\SymbolKey\SymbolKey.AnonymousFunctionOrDelegateSymbolKey.cs (1)
65var anonymousDelegate = methodSymbol.AssociatedAnonymousDelegate;
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\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\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\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\SymbolKey\SymbolKey.FunctionPointerTypeSymbolKey.cs (2)
37var callingConventionModifiers = ImmutableArray<INamedTypeSymbol>.Empty; 40using var modifiersBuilder = reader.ReadSymbolKeyArray<IFunctionPointerTypeSymbol, INamedTypeSymbol>(
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\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\SymbolKey\SymbolKey.ParameterSymbolKey.cs (1)
64var delegateInvoke = (eventSymbol.Type as INamedTypeSymbol)?.DelegateInvokeMethod;
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\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\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Utilities\AbstractSpeculationAnalyzer.cs (5)
417var type = methodSymbol.ContainingType; 418var newType = newMethodSymbol.ContainingType; 491private static bool EnumTypesAreCompatible(INamedTypeSymbol type1, INamedTypeSymbol type2) 992var newSymbolContainingType = newSymbol.ContainingType;
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Utilities\EnumValueUtilities.cs (1)
21public static object GetNextEnumValue(INamedTypeSymbol enumType)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Compilation\CompilationExtensions.cs (78)
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? EventArgsType(this Compilation compilation) 129public static INamedTypeSymbol? NotImplementedExceptionType(this Compilation compilation) 132public static INamedTypeSymbol? EqualityComparerOfTType(this Compilation compilation) 135public static INamedTypeSymbol? ActionType(this Compilation compilation) 138public static INamedTypeSymbol? ExpressionOfTType(this Compilation compilation) 141public static INamedTypeSymbol? EditorBrowsableAttributeType(this Compilation compilation) 144public static INamedTypeSymbol? EditorBrowsableStateType(this Compilation compilation) 147public static INamedTypeSymbol? TaskType(this Compilation compilation) 150public static INamedTypeSymbol? TaskOfTType(this Compilation compilation) 153public static INamedTypeSymbol? ValueTaskType(this Compilation compilation) 156public static INamedTypeSymbol? ValueTaskOfTType(this Compilation compilation) 159public static INamedTypeSymbol? IEnumerableType(this Compilation compilation) 162public static INamedTypeSymbol? IEnumerableOfTType(this Compilation compilation) 165public static INamedTypeSymbol? IEnumeratorOfTType(this Compilation compilation) 168public static INamedTypeSymbol? IListOfTType(this Compilation compilation) 171public static INamedTypeSymbol? IReadOnlyListOfTType(this Compilation compilation) 174public static INamedTypeSymbol? ISetOfTType(this Compilation compilation) 177public static INamedTypeSymbol? IReadOnlySetOfTType(this Compilation compilation) 180public static INamedTypeSymbol? IAsyncEnumerableOfTType(this Compilation compilation) 183public static INamedTypeSymbol? IAsyncEnumeratorOfTType(this Compilation compilation) 186public static INamedTypeSymbol? ImmutableArrayOfTType(this Compilation compilation) 189public static INamedTypeSymbol? SerializableAttributeType(this Compilation compilation) 192public static INamedTypeSymbol? CoClassType(this Compilation compilation) 195public static INamedTypeSymbol? ComAliasNameAttributeType(this Compilation compilation) 198public static INamedTypeSymbol? SuppressMessageAttributeType(this Compilation compilation) 201public static INamedTypeSymbol? TupleElementNamesAttributeType(this Compilation compilation) 204public static INamedTypeSymbol? NativeIntegerAttributeType(this Compilation compilation) 207public static INamedTypeSymbol? DynamicAttributeType(this Compilation compilation) 210public static INamedTypeSymbol? LazyOfTType(this Compilation compilation) 213public static INamedTypeSymbol? ISerializableType(this Compilation compilation) 216public static INamedTypeSymbol? SerializationInfoType(this Compilation compilation) 219public static INamedTypeSymbol? StreamingContextType(this Compilation compilation) 222public static INamedTypeSymbol? OnDeserializingAttribute(this Compilation compilation) 225public static INamedTypeSymbol? OnDeserializedAttribute(this Compilation compilation) 228public static INamedTypeSymbol? OnSerializingAttribute(this Compilation compilation) 231public static INamedTypeSymbol? OnSerializedAttribute(this Compilation compilation) 234public static INamedTypeSymbol? ComRegisterFunctionAttribute(this Compilation compilation) 237public static INamedTypeSymbol? ComUnregisterFunctionAttribute(this Compilation compilation) 240public static INamedTypeSymbol? ConditionalAttribute(this Compilation compilation) 243public static INamedTypeSymbol? ObsoleteAttribute(this Compilation compilation) 246public static INamedTypeSymbol? SystemCompositionImportingConstructorAttribute(this Compilation compilation) 249public static INamedTypeSymbol? SystemComponentModelCompositionImportingConstructorAttribute(this Compilation compilation) 252public static INamedTypeSymbol? SystemIDisposableType(this Compilation compilation) 255public static INamedTypeSymbol? NotNullAttribute(this Compilation compilation) 258public static INamedTypeSymbol? MaybeNullAttribute(this Compilation compilation) 261public static INamedTypeSymbol? MaybeNullWhenAttribute(this Compilation compilation) 264public static INamedTypeSymbol? AllowNullAttribute(this Compilation compilation) 267public static INamedTypeSymbol? DisallowNullAttribute(this Compilation compilation) 270public static INamedTypeSymbol? DataMemberAttribute(this Compilation compilation) 273public static INamedTypeSymbol? DataContractAttribute(this Compilation compilation) 276public static INamedTypeSymbol? AsyncMethodBuilderAttribute(this Compilation compilation) 279public static INamedTypeSymbol? CancellationTokenType(this Compilation compilation) 282public static INamedTypeSymbol? ValueTupleType(this Compilation compilation, int arity) 285public static INamedTypeSymbol? ListOfTType(this Compilation compilation) 288public static INamedTypeSymbol? ReadOnlySpanOfTType(this Compilation compilation) 291public static INamedTypeSymbol? SpanOfTType(this Compilation compilation) 294public static INamedTypeSymbol? InterpolatedStringHandlerAttributeType(this Compilation compilation) 322public static INamedTypeSymbol? GetBestTypeByMetadataName(this Compilation compilation, string fullyQualifiedMetadataName) 324INamedTypeSymbol? type = null; 326foreach (var currentType in compilation.GetTypesByMetadataName(fullyQualifiedMetadataName)) 361foreach (var candidateTopLevelType in compilation.SourceModule.GlobalNamespace.GetTypeMembers(WellKnownMemberNames.TopLevelStatementsEntryPointTypeName, arity: 0)) 373public static INamedTypeSymbol? TryGetCallingConventionSymbol(this Compilation compilation, string callingConvention)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\IMethodSymbolExtensions.cs (4)
44public static bool HasEventHandlerSignature(this IMethodSymbol method, [NotNullWhen(returnValue: true)] INamedTypeSymbol? eventArgsType) 103public static bool IsEntryPoint(this IMethodSymbol methodSymbol, INamedTypeSymbol? taskType, INamedTypeSymbol? genericTaskType) 119if (method.ReturnType is not INamedTypeSymbol { Arity: 0 })
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\INamedTypeSymbolExtensions.cs (73)
23public static IEnumerable<INamedTypeSymbol> GetBaseTypesAndThis(this INamedTypeSymbol? namedType) 25var current = namedType; 33public static ImmutableArray<ITypeParameterSymbol> GetAllTypeParameters(this INamedTypeSymbol? symbol) 39public static ImmutableArray<ITypeSymbol> GetAllTypeArguments(this INamedTypeSymbol? symbol) 45private static Stack<INamedTypeSymbol> GetContainmentStack(INamedTypeSymbol? symbol) 47var stack = new Stack<INamedTypeSymbol>(); 48for (var current = symbol; current != null; current = current.ContainingType) 56public static bool IsContainedWithin([NotNullWhen(returnValue: true)] this INamedTypeSymbol? symbol, INamedTypeSymbol outer) 59for (var current = symbol; current != null; current = current.ContainingType) 70public static ISymbol? FindImplementationForAbstractMember(this INamedTypeSymbol? type, ISymbol symbol) 81private static bool ImplementationExists(INamedTypeSymbol classOrStructType, ISymbol member) 85this INamedTypeSymbol classOrStructType, 87Func<INamedTypeSymbol, ISymbol, bool> isValidImplementation, 117private static bool IsInterfacePropertyImplemented(INamedTypeSymbol classOrStructType, IPropertySymbol propertySymbol) 125static bool IsAccessorImplemented(IMethodSymbol? accessor, INamedTypeSymbol classOrStructType) 131private static bool IsAbstractPropertyImplemented(INamedTypeSymbol classOrStructType, IPropertySymbol propertySymbol) 154this INamedTypeSymbol classOrStructType, 156Func<INamedTypeSymbol, ISymbol, bool> isValid, 179public static ImmutableArray<(INamedTypeSymbol type, ImmutableArray<ISymbol> members)> GetAllUnimplementedMembers( 180this INamedTypeSymbol classOrStructType, 181IEnumerable<INamedTypeSymbol> interfaces, 197static ImmutableArray<ISymbol> GetImplicitlyImplementableMembers(INamedTypeSymbol type, ISymbol within) 249public static ImmutableArray<(INamedTypeSymbol type, ImmutableArray<ISymbol> members)> GetAllUnimplementedMembersInThis( 250this INamedTypeSymbol classOrStructType, 251IEnumerable<INamedTypeSymbol> interfacesOrAbstractClasses, 267public static ImmutableArray<(INamedTypeSymbol type, ImmutableArray<ISymbol> members)> GetAllUnimplementedMembersInThis( 268this INamedTypeSymbol classOrStructType, 269IEnumerable<INamedTypeSymbol> interfacesOrAbstractClasses, 270Func<INamedTypeSymbol, ISymbol, ImmutableArray<ISymbol>> interfaceMemberGetter, 286public static ImmutableArray<(INamedTypeSymbol type, ImmutableArray<ISymbol> members)> GetAllUnimplementedExplicitMembers( 287this INamedTypeSymbol classOrStructType, 288IEnumerable<INamedTypeSymbol> interfaces, 300private static ImmutableArray<ISymbol> GetExplicitlyImplementableMembers(INamedTypeSymbol type, ISymbol within) 327private static ImmutableArray<(INamedTypeSymbol type, ImmutableArray<ISymbol> members)> GetAllUnimplementedMembers( 328this INamedTypeSymbol classOrStructType, 329IEnumerable<INamedTypeSymbol> interfacesOrAbstractClasses, 330Func<INamedTypeSymbol, ISymbol, Func<INamedTypeSymbol, ISymbol, bool>, CancellationToken, bool> isImplemented, 331Func<INamedTypeSymbol, ISymbol, bool> isValidImplementation, 332Func<INamedTypeSymbol, ISymbol, ImmutableArray<ISymbol>> interfaceMemberGetter, 361private static ImmutableArray<INamedTypeSymbol> GetTypesToImplement( 362INamedTypeSymbol classOrStructType, 363IEnumerable<INamedTypeSymbol> interfacesOrAbstractClasses, 372private static ImmutableArray<INamedTypeSymbol> GetAbstractClassesToImplement( 373IEnumerable<INamedTypeSymbol> abstractClasses) 378private static ImmutableArray<INamedTypeSymbol> GetInterfacesToImplement( 379INamedTypeSymbol classOrStructType, 380IEnumerable<INamedTypeSymbol> interfaces, 387var interfacesToImplement = new List<INamedTypeSymbol>( 392var baseType = classOrStructType.BaseType; 403this INamedTypeSymbol classOrStructType, 404INamedTypeSymbol interfaceType, 405Func<INamedTypeSymbol, ISymbol, Func<INamedTypeSymbol, ISymbol, bool>, CancellationToken, bool> isImplemented, 406Func<INamedTypeSymbol, ISymbol, bool> isValidImplementation, 407Func<INamedTypeSymbol, ISymbol, ImmutableArray<ISymbol>> interfaceMemberGetter, 449this INamedTypeSymbol attributeSymbol, 455var systemAttributeType = compilation.AttributeType(); 457foreach (var type in attributeSymbol.GetBaseTypesAndThis()) 517private static ImmutableArray<ISymbol> GetMembers(INamedTypeSymbol type, ISymbol within) 531this INamedTypeSymbol containingType, CancellationToken cancellationToken) 548foreach (var type in baseTypes) 569Dictionary<ISymbol, int> result, INamedTypeSymbol containingType, CancellationToken cancellationToken) 590Dictionary<ISymbol, int> result, INamedTypeSymbol containingType, CancellationToken cancellationToken) 612Dictionary<ISymbol, int> result, INamedTypeSymbol containingType, 613INamedTypeSymbol type, ref int index, CancellationToken cancellationToken) 626private static bool IsOverridable(ISymbol member, INamedTypeSymbol containingType) 669public static INamedTypeSymbol TryConstruct(this INamedTypeSymbol type, ITypeSymbol[] typeArguments) 672public static bool IsCollectionBuilderAttribute([NotNullWhen(true)] this INamedTypeSymbol? type)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\INamespaceOrTypeSymbolExtensions.cs (3)
90public static IEnumerable<INamedTypeSymbol> GetAllTypes( 106var namedType = (INamedTypeSymbol)current;
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\ISymbolExtensions.cs (15)
98foreach (var baseType in symbol.ContainingType.GetBaseTypes()) 107bool TryFindLooseMatch(ISymbol symbol, INamedTypeSymbol baseType, [NotNullWhen(true)] out ISymbol? looseMatch) 156foreach (var iface in symbol.ContainingType.AllInterfaces) 214public static INamedTypeSymbol? GetContainingTypeOrThis(this ISymbol symbol) 216if (symbol is INamedTypeSymbol namedType) 309=> symbol is INamedTypeSymbol { IsAnonymousType: true }; 352SymbolKind.NamedType => ((INamedTypeSymbol)symbol).Arity, 433INamedTypeSymbol nt => nt.TypeParameters, 454INamedTypeSymbol nt => nt.TypeArguments, 463var containingType = symbol.ContainingType; 504var delegateType = compilation.GetTypeByMetadataName(method.ReturnsVoid 533=> symbol is INamedTypeSymbol { IsStatic: true }; 545foreach (var type in namespaceOrType.GetAllTypes(cancellationToken)) 559return ((INamedTypeSymbol)symbol).GetMembers().OfType<IPropertySymbol>().Where(p => p.CanBeReferencedByName); 809public static bool HasAttribute([NotNullWhen(true)] this ISymbol? symbol, [NotNullWhen(true)] INamedTypeSymbol? attributeClass)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\ISymbolExtensions.RequiresUnsafeModifierVisitor.cs (1)
56public override bool VisitNamedType(INamedTypeSymbol symbol)
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\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\ITypeGenerator.cs (1)
13ITypeSymbol Construct(INamedTypeSymbol namedType, ITypeSymbol[] typeArguments);
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\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\ITypeSymbolExtensions.AnonymousTypeRemover.cs (1)
42public override ITypeSymbol VisitNamedType(INamedTypeSymbol symbol)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\ITypeSymbolExtensions.CollectTypeParameterSymbolsVisitor.cs (1)
57public override void VisitNamedType(INamedTypeSymbol symbol)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\ITypeSymbolExtensions.CompilationTypeGenerator.cs (1)
19public ITypeSymbol Construct(INamedTypeSymbol namedType, ITypeSymbol[] typeArguments)
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) 315INamedTypeSymbol n => ContainsAnonymousType(n), 320private static bool ContainsAnonymousType(INamedTypeSymbol type) 410public static INamedTypeSymbol? GetDelegateType(this ITypeSymbol? typeSymbol, Compilation compilation) 414var expressionOfT = compilation.ExpressionOfTType(); 417var typeArgument = ((INamedTypeSymbol)typeSymbol).TypeArguments[0]; 418return typeArgument as INamedTypeSymbol; 423return typeSymbol as INamedTypeSymbol; 576var n2 = t2 as INamedTypeSymbol; 578if (t1 is not INamedTypeSymbol n1) 628public static bool IsEnumType([NotNullWhen(true)] this ITypeSymbol? type, [NotNullWhen(true)] out INamedTypeSymbol? enumType) 632enumType = (INamedTypeSymbol)type; 724if (type is not INamedTypeSymbol 777=> type is INamedTypeSymbol 785=> symbol is INamedTypeSymbol 793=> type is INamedTypeSymbol namedType &&
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\ITypeSymbolExtensions.MinimalAccessibilityVisitor.cs (2)
42foreach (var callingConventionType in symbol.Signature.UnmanagedCallingConventionTypes) 50public override Accessibility VisitNamedType(INamedTypeSymbol symbol)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\ITypeSymbolExtensions.SubstituteTypesVisitor.cs (1)
58public override ITypeSymbol VisitNamedType(INamedTypeSymbol symbol)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\ITypeSymbolExtensions.UnavailableTypeParameterRemover.cs (1)
43public override ITypeSymbol VisitNamedType(INamedTypeSymbol symbol)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\ITypeSymbolExtensions.UnnamedErrorTypeRemover.cs (1)
42public override ITypeSymbol VisitNamedType(INamedTypeSymbol symbol)
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\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\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\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\SymbolEquivalenceComparer.ParameterSymbolEqualityComparer.cs (2)
23Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies,
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\SymbolEquivalenceComparer.SignatureTypeSymbolEquivalenceComparer.cs (2)
18public bool Equals(ITypeSymbol? x, ITypeSymbol? y, Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies)
Microsoft.CodeAnalysis.Test.Utilities (32)
Compilation\ControlFlowGraphVerifier.cs (3)
909Constructor.ContainingType: INamedTypeSymbol ctorContainingType, 934TargetMethod: { Name: BoundInterpolatedString.AppendFormattedMethod or BoundInterpolatedString.AppendLiteralMethod, ContainingType: INamedTypeSymbol containingType } 1995ContainingType: INamedTypeSymbol
Diagnostics\CommonDiagnosticAnalyzers.cs (4)
1149var pendingSymbols = new ConcurrentSet<INamedTypeSymbol>(); 1150foreach (var type in context.Compilation.GlobalNamespace.GetTypeMembers()) 1160if (!pendingSymbols.Remove((INamedTypeSymbol)symbolContext.Symbol)) 2093case INamedTypeSymbol namedType:
Diagnostics\CouldHaveMoreSpecificTypeAnalyzer.cs (25)
47Dictionary<IFieldSymbol, HashSet<INamedTypeSymbol>> fieldsSourceTypes = new Dictionary<IFieldSymbol, HashSet<INamedTypeSymbol>>(); 54Dictionary<ILocalSymbol, HashSet<INamedTypeSymbol>> localsSourceTypes = new Dictionary<ILocalSymbol, HashSet<INamedTypeSymbol>>(); 126if (HasMoreSpecificSourceType(local, local.Type, localsSourceTypes, out var mostSpecificSourceType)) 153if (HasMoreSpecificSourceType(field, field.Type, fieldsSourceTypes, out var mostSpecificSourceType)) 162private static bool HasMoreSpecificSourceType<SymbolType>(SymbolType symbol, ITypeSymbol symbolType, Dictionary<SymbolType, HashSet<INamedTypeSymbol>> symbolsSourceTypes, out INamedTypeSymbol commonSourceType) 167if (commonSourceType != null && DerivesFrom(commonSourceType, (INamedTypeSymbol)symbolType)) 177private static INamedTypeSymbol CommonType(IEnumerable<INamedTypeSymbol> types) 179foreach (INamedTypeSymbol type in types) 182foreach (INamedTypeSymbol testType in types) 203private static bool DerivesFrom(INamedTypeSymbol derivedType, INamedTypeSymbol baseType) 207INamedTypeSymbol derivedBaseType = derivedType.BaseType; 218foreach (INamedTypeSymbol baseInterface in derivedType.Interfaces) 232private static void AssignTo(IOperation target, Dictionary<ILocalSymbol, HashSet<INamedTypeSymbol>> localsSourceTypes, Dictionary<IFieldSymbol, HashSet<INamedTypeSymbol>> fieldsSourceTypes, IOperation sourceValue) 237private static void AssignTo(IOperation target, Dictionary<ILocalSymbol, HashSet<INamedTypeSymbol>> localsSourceTypes, Dictionary<IFieldSymbol, HashSet<INamedTypeSymbol>> fieldsSourceTypes, ITypeSymbol sourceType) 252private static void AssignTo<SymbolType>(SymbolType target, ITypeSymbol targetType, Dictionary<SymbolType, HashSet<INamedTypeSymbol>> sourceTypes, IOperation sourceValue) 257private static void AssignTo<SymbolType>(SymbolType target, ITypeSymbol targetType, Dictionary<SymbolType, HashSet<INamedTypeSymbol>> sourceTypes, ITypeSymbol sourceType) 270symbolSourceTypes = new HashSet<INamedTypeSymbol>(); 274symbolSourceTypes.Add((INamedTypeSymbol)sourceType);
Microsoft.CodeAnalysis.UnitTests (14)
Emit\SemanticEditTests.cs (1)
23var type = c.GetTypeByMetadataName("System.Object")!.GetPublicSymbol();
GivesAccessTo.cs (8)
45var CS = csc.GlobalNamespace.GetMembers("CS").First() as INamedTypeSymbol; 48var CS2 = csc2.GlobalNamespace.GetMembers("CS2").First() as INamedTypeSymbol; 51var VB = vbc.GlobalNamespace.GetMembers("VB")[0] as INamedTypeSymbol; 54var VB2 = vbc2.GlobalNamespace.GetMembers("VB2")[0] as INamedTypeSymbol;
IsSymbolAccessibleWithinTests.cs (4)
29var Ac = csc.GlobalNamespace.GetMembers("A").First() as INamedTypeSymbol; 32var Av = vbc.GlobalNamespace.GetMembers("A").First() as INamedTypeSymbol;
MetadataReferences\MetadataReferenceTests.cs (1)
576var list = c.BaseType;
Microsoft.CodeAnalysis.VisualBasic (120)
Binding\MemberSemanticModel.vb (3)
468Public Overloads Overrides Function GetDeclaredSymbol(declarationSyntax As TypeStatementSyntax, Optional cancellationToken As CancellationToken = Nothing) As INamedTypeSymbol 478Public Overloads Overrides Function GetDeclaredSymbol(declarationSyntax As EnumStatementSyntax, Optional cancellationToken As CancellationToken = Nothing) As INamedTypeSymbol 601Public Overrides Function GetDeclaredSymbol(anonymousObjectCreationExpressionSyntax As AnonymousObjectCreationExpressionSyntax, Optional cancellationToken As CancellationToken = Nothing) As INamedTypeSymbol
Compilation\SemanticModel.vb (5)
2458Public Overridable Overloads Function GetDeclaredSymbol(anonymousObjectCreationExpressionSyntax As AnonymousObjectCreationExpressionSyntax, Optional cancellationToken As CancellationToken = Nothing) As INamedTypeSymbol 2554Public MustOverride Overloads Function GetDeclaredSymbol(declarationSyntax As TypeStatementSyntax, Optional cancellationToken As CancellationToken = Nothing) As INamedTypeSymbol 2561Public Overloads Function GetDeclaredSymbol(declarationSyntax As TypeBlockSyntax, Optional cancellationToken As CancellationToken = Nothing) As INamedTypeSymbol 2570Public MustOverride Overloads Function GetDeclaredSymbol(declarationSyntax As EnumStatementSyntax, Optional cancellationToken As CancellationToken = Nothing) As INamedTypeSymbol 2577Public Overloads Function GetDeclaredSymbol(declarationSyntax As EnumBlockSyntax, Optional cancellationToken As CancellationToken = Nothing) As INamedTypeSymbol
Compilation\SpeculativeSemanticModelWithMemberModel.vb (3)
153Public Overloads Overrides Function GetDeclaredSymbol(declarationSyntax As TypeStatementSyntax, Optional cancellationToken As CancellationToken = Nothing) As INamedTypeSymbol 157Public Overloads Overrides Function GetDeclaredSymbol(declarationSyntax As EnumStatementSyntax, Optional cancellationToken As CancellationToken = Nothing) As INamedTypeSymbol 189Public Overrides Function GetDeclaredSymbol(anonymousObjectCreationExpressionSyntax As AnonymousObjectCreationExpressionSyntax, Optional cancellationToken As CancellationToken = Nothing) As INamedTypeSymbol
Compilation\SyntaxTreeSemanticModel.vb (3)
899Public Overloads Overrides Function GetDeclaredSymbol(declarationSyntax As TypeStatementSyntax, Optional cancellationToken As CancellationToken = Nothing) As INamedTypeSymbol 918Public Overloads Overrides Function GetDeclaredSymbol(declarationSyntax As EnumStatementSyntax, Optional cancellationToken As CancellationToken = Nothing) As INamedTypeSymbol 1245Public Overrides Function GetDeclaredSymbol(anonymousObjectCreationExpressionSyntax As AnonymousObjectCreationExpressionSyntax, Optional cancellationToken As CancellationToken = Nothing) As INamedTypeSymbol
Compilation\VisualBasicCompilation.vb (10)
2838Protected Overrides Function CommonGetTypeByMetadataName(metadataName As String) As INamedTypeSymbol 2842Protected Overrides ReadOnly Property CommonScriptClass As INamedTypeSymbol 2848Protected Overrides Function CommonCreateErrorTypeSymbol(container As INamespaceOrTypeSymbol, name As String, arity As Integer) As INamedTypeSymbol 2871elementNullableAnnotations As ImmutableArray(Of NullableAnnotation)) As INamedTypeSymbol 2886underlyingType As INamedTypeSymbol, 2889elementNullableAnnotations As ImmutableArray(Of NullableAnnotation)) As INamedTypeSymbol 2919callingConventionTypes As ImmutableArray(Of INamedTypeSymbol)) As IFunctionPointerTypeSymbol 2923Protected Overrides Function CommonCreateNativeIntegerTypeSymbol(signed As Boolean) As INamedTypeSymbol 2932memberNullableAnnotations As ImmutableArray(Of CodeAnalysis.NullableAnnotation)) As INamedTypeSymbol 3098Protected Overrides ReadOnly Property CommonObjectType As INamedTypeSymbol
SymbolDisplay\SymbolDisplayVisitor.Members.vb (4)
13Debug.Assert(TypeOf symbol.ContainingSymbol Is INamedTypeSymbol) 21Dim containingType = TryCast(symbol.ContainingSymbol, INamedTypeSymbol) 300containingType = TryCast(symbol.ContainingSymbol, INamedTypeSymbol) 613Dim containingType = TryCast(symbol.ContainingSymbol, INamedTypeSymbol)
SymbolDisplay\SymbolDisplayVisitor.Types.vb (15)
89Public Overrides Sub VisitNamedType(symbol As INamedTypeSymbol) 197Private Function CanShowDelegateSignature(symbol As INamedTypeSymbol) As Boolean 204Private Sub AddNameAndTypeArgumentsOrParameters(symbol As INamedTypeSymbol, noEscaping As Boolean) 313Private Function ShouldDisplayAsValueTuple(symbol As INamedTypeSymbol) As Boolean 323Private Sub AddAnonymousTypeName(symbol As INamedTypeSymbol) 347Private Shared Function CanUseTupleTypeName(tupleSymbol As INamedTypeSymbol) As Boolean 348Dim currentUnderlying As INamedTypeSymbol = GetTupleUnderlyingTypeOrSelf(tupleSymbol) 355tupleSymbol = DirectCast(currentUnderlying.TypeArguments(TupleTypeSymbol.RestPosition - 1), INamedTypeSymbol) 368Private Shared Function GetTupleUnderlyingTypeOrSelf(tupleSymbol As INamedTypeSymbol) As INamedTypeSymbol 372Private Shared Function HasNonDefaultTupleElements(tupleSymbol As INamedTypeSymbol) As Boolean 376Private Sub AddTupleTypeName(symbol As INamedTypeSymbol) 418Private Function AddSpecialTypeKeyword(symbol As INamedTypeSymbol) As Boolean 429Private Sub AddTypeKind(symbol As INamedTypeSymbol) 483Optional modifiersSource As INamedTypeSymbol = Nothing)
SymbolDisplay\SymbolDisplayVisitor.vb (1)
385Private Function IncludeNamedType(namedType As INamedTypeSymbol) As Boolean
SymbolDisplay\SymbolDisplayVisitor_Constants.vb (1)
14Protected Overrides Sub AddExplicitlyCastedLiteralValue(namedType As INamedTypeSymbol, type As SpecialType, value As Object)
SymbolDisplay\SymbolDisplayVisitor_Minimal.vb (3)
88Private Sub MinimallyQualify(symbol As INamedTypeSymbol) 189Private Function RemoveAttributeSuffixIfNecessary(symbol As INamedTypeSymbol, symbolName As String) As String 204Private Function IsDerivedFromAttributeType(ByVal derivedType As INamedTypeSymbol) As Boolean
Symbols\AssemblySymbol.vb (4)
776Private Function IAssemblySymbol_ResolveForwardedType(metadataName As String) As INamedTypeSymbol Implements IAssemblySymbol.ResolveForwardedType 780Private Function IAssemblySymbol_GetForwardedTypes() As ImmutableArray(Of INamedTypeSymbol) Implements IAssemblySymbol.GetForwardedTypes 781Return ImmutableArrayExtensions.AsImmutable(Of INamedTypeSymbol)(GetAllTopLevelForwardedTypes().OrderBy(Function(t) t.ToDisplayString(SymbolDisplayFormat.QualifiedNameArityFormat))) 784Private Function IAssemblySymbol_GetTypeByMetadataName(metadataName As String) As INamedTypeSymbol Implements IAssemblySymbol.GetTypeByMetadataName
Symbols\Attributes\AttributeData.vb (2)
147''' Gets the attribute class being applied as an <see cref="INamedTypeSymbol"/> 149Protected Overrides ReadOnly Property CommonAttributeClass As INamedTypeSymbol
Symbols\CustomModifier.vb (1)
26Public Overrides ReadOnly Property Modifier As INamedTypeSymbol
Symbols\MethodSymbol.vb (3)
1104Private ReadOnly Property IMethodSymbol_UnmanagedCallingConventionTypes As ImmutableArray(Of INamedTypeSymbol) Implements IMethodSymbol.UnmanagedCallingConventionTypes 1106Return ImmutableArray(Of INamedTypeSymbol).Empty 1180Private ReadOnly Property IMethodSymbol_AssociatedAnonymousDelegate As INamedTypeSymbol Implements IMethodSymbol.AssociatedAnonymousDelegate
Symbols\NamedTypeSymbol.vb (36)
201Public MustOverride ReadOnly Property IsSerializable As Boolean Implements INamedTypeSymbol.IsSerializable 277Public MustOverride ReadOnly Property MightContainExtensionMethods As Boolean Implements INamedTypeSymbol.MightContainExtensionMethods 941Public ReadOnly Property IsGenericType As Boolean Implements INamedTypeSymbol.IsGenericType, INamedTypeSymbolInternal.IsGenericType 1317Private ReadOnly Property INamedTypeSymbol_Arity As Integer Implements INamedTypeSymbol.Arity 1323Private ReadOnly Property INamedTypeSymbol_ConstructedFrom As INamedTypeSymbol Implements INamedTypeSymbol.ConstructedFrom 1329Private ReadOnly Property INamedTypeSymbol_DelegateInvokeMethod As IMethodSymbol Implements INamedTypeSymbol.DelegateInvokeMethod 1335Private ReadOnly Property INamedTypeSymbol_EnumUnderlyingType As INamedTypeSymbol Implements INamedTypeSymbol.EnumUnderlyingType 1355Private ReadOnly Property INamedTypeSymbol_MemberNames As IEnumerable(Of String) Implements INamedTypeSymbol.MemberNames 1361Private ReadOnly Property INamedTypeSymbol_IsUnboundGenericType As Boolean Implements INamedTypeSymbol.IsUnboundGenericType 1367Private ReadOnly Property INamedTypeSymbol_OriginalDefinition As INamedTypeSymbol Implements INamedTypeSymbol.OriginalDefinition 1373Private Function INamedTypeSymbol_GetTypeArgumentCustomModifiers(ordinal As Integer) As ImmutableArray(Of CustomModifier) Implements INamedTypeSymbol.GetTypeArgumentCustomModifiers 1377Private ReadOnly Property INamedTypeSymbol_TypeArguments As ImmutableArray(Of ITypeSymbol) Implements INamedTypeSymbol.TypeArguments 1383Private ReadOnly Property TypeArgumentNullableAnnotations As ImmutableArray(Of NullableAnnotation) Implements INamedTypeSymbol.TypeArgumentNullableAnnotations 1389Private ReadOnly Property INamedTypeSymbol_TypeParameters As ImmutableArray(Of ITypeParameterSymbol) Implements INamedTypeSymbol.TypeParameters 1395Private ReadOnly Property INamedTypeSymbol_IsScriptClass As Boolean Implements INamedTypeSymbol.IsScriptClass 1401Private ReadOnly Property INamedTypeSymbol_IsImplicitClass As Boolean Implements INamedTypeSymbol.IsImplicitClass 1407Private Function INamedTypeSymbol_Construct(ParamArray typeArguments() As ITypeSymbol) As INamedTypeSymbol Implements INamedTypeSymbol.Construct 1411Private Function INamedTypeSymbol_Construct(typeArguments As ImmutableArray(Of ITypeSymbol), typeArgumentNullableAnnotations As ImmutableArray(Of CodeAnalysis.NullableAnnotation)) As INamedTypeSymbol Implements INamedTypeSymbol.Construct 1415Private Function INamedTypeSymbol_ConstructUnboundGenericType() As INamedTypeSymbol Implements INamedTypeSymbol.ConstructUnboundGenericType 1419Private ReadOnly Property INamedTypeSymbol_InstanceConstructors As ImmutableArray(Of IMethodSymbol) Implements INamedTypeSymbol.InstanceConstructors 1425Private ReadOnly Property INamedTypeSymbol_StaticConstructors As ImmutableArray(Of IMethodSymbol) Implements INamedTypeSymbol.StaticConstructors 1431Private ReadOnly Property INamedTypeSymbol_Constructors As ImmutableArray(Of IMethodSymbol) Implements INamedTypeSymbol.Constructors 1437Private ReadOnly Property INamedTypeSymbol_AssociatedSymbol As ISymbol Implements INamedTypeSymbol.AssociatedSymbol 1443Private ReadOnly Property INamedTypeSymbol_IsComImport As Boolean Implements INamedTypeSymbol.IsComImport 1449Private ReadOnly Property INamedTypeSymbol_IsFileLocal As Boolean Implements INamedTypeSymbol.IsFileLocal 1455Private ReadOnly Property INamedTypeSymbol_NativeIntegerUnderlyingType As INamedTypeSymbol Implements INamedTypeSymbol.NativeIntegerUnderlyingType 1477Private ReadOnly Property INamedTypeSymbol_TupleElements As ImmutableArray(Of IFieldSymbol) Implements INamedTypeSymbol.TupleElements 1483Private ReadOnly Property INamedTypeSymbol_TupleUnderlyingType As INamedTypeSymbol Implements INamedTypeSymbol.TupleUnderlyingType
Symbols\NamespaceOrTypeSymbol.vb (6)
276Private Function INamespaceOrTypeSymbol_GetTypeMembers() As ImmutableArray(Of INamedTypeSymbol) Implements INamespaceOrTypeSymbol.GetTypeMembers 277Return StaticCast(Of INamedTypeSymbol).From(Me.GetTypeMembers()) 280Private Function INamespaceOrTypeSymbol_GetTypeMembers(name As String) As ImmutableArray(Of INamedTypeSymbol) Implements INamespaceOrTypeSymbol.GetTypeMembers 281Return StaticCast(Of INamedTypeSymbol).From(Me.GetTypeMembers(name)) 284Public Function INamespaceOrTypeSymbol_GetTypeMembers(name As String, arity As Integer) As ImmutableArray(Of INamedTypeSymbol) Implements INamespaceOrTypeSymbol.GetTypeMembers 285Return StaticCast(Of INamedTypeSymbol).From(Me.GetTypeMembers(name, arity))
Symbols\Symbol.vb (1)
1223Private ReadOnly Property ISymbol_ContainingType As INamedTypeSymbol Implements ISymbol.ContainingType
Symbols\TypeParameterSymbol.vb (1)
381Private ReadOnly Property ITypeParameterSymbol_DeclaringType As INamedTypeSymbol Implements ITypeParameterSymbol.DeclaringType
Symbols\TypeSymbol.vb (5)
545Private ReadOnly Property ITypeSymbol_AllInterfaces As ImmutableArray(Of INamedTypeSymbol) Implements ITypeSymbol.AllInterfaces 547Return StaticCast(Of INamedTypeSymbol).From(Me.AllInterfacesNoUseSiteDiagnostics) 551Private ReadOnly Property ITypeSymbol_BaseType As INamedTypeSymbol Implements ITypeSymbol.BaseType 557Private ReadOnly Property ITypeSymbol_Interfaces As ImmutableArray(Of INamedTypeSymbol) Implements ITypeSymbol.Interfaces 559Return StaticCast(Of INamedTypeSymbol).From(Me.InterfacesNoUseSiteDiagnostics)
VisualBasicExtensions.vb (13)
632Public Function GetModuleMembers([namespace] As INamespaceSymbol) As ImmutableArray(Of INamedTypeSymbol) 635Return StaticCast(Of INamedTypeSymbol).From(symbol.GetModuleMembers()) 637Return ImmutableArray.Create(Of INamedTypeSymbol)() 648Public Function GetModuleMembers([namespace] As INamespaceSymbol, name As String) As ImmutableArray(Of INamedTypeSymbol) 651Return StaticCast(Of INamedTypeSymbol).From(symbol.GetModuleMembers(name)) 653Return ImmutableArray.Create(Of INamedTypeSymbol)() 788Public Function GetSpecialType(compilation As Compilation, typeId As SpecialType) As INamedTypeSymbol 889Public Function GetDeclaredSymbol(semanticModel As SemanticModel, anonymousObjectCreationExpressionSyntax As AnonymousObjectCreationExpressionSyntax, Optional cancellationToken As CancellationToken = Nothing) As INamedTypeSymbol 967Public Function GetDeclaredSymbol(semanticModel As SemanticModel, declarationSyntax As TypeStatementSyntax, Optional cancellationToken As CancellationToken = Nothing) As INamedTypeSymbol 980Public Function GetDeclaredSymbol(semanticModel As SemanticModel, declarationSyntax As TypeBlockSyntax, Optional cancellationToken As CancellationToken = Nothing) As INamedTypeSymbol 993Public Function GetDeclaredSymbol(semanticModel As SemanticModel, declarationSyntax As EnumStatementSyntax, Optional cancellationToken As CancellationToken = Nothing) As INamedTypeSymbol 1006Public Function GetDeclaredSymbol(semanticModel As SemanticModel, declarationSyntax As EnumBlockSyntax, Optional cancellationToken As CancellationToken = Nothing) As INamedTypeSymbol 1071Public Function GetDeclaredSymbol(semanticModel As SemanticModel, declarationSyntax As DelegateStatementSyntax, Optional cancellationToken As CancellationToken = Nothing) As INamedTypeSymbol
Microsoft.CodeAnalysis.VisualBasic.Analyzers (22)
MetaAnalyzers\BasicRegisterActionAnalyzer.vb (12)
19analysisContext As INamedTypeSymbol, 20compilationStartAnalysisContext As INamedTypeSymbol, 21codeBlockStartAnalysisContext As INamedTypeSymbol, 22operationBlockStartAnalysisContext As INamedTypeSymbol, 23symbolKind As INamedTypeSymbol) As RegisterActionCodeBlockAnalyzer 36Public Sub New(basicSyntaxKind As INamedTypeSymbol, 37csharpSyntaxKind As INamedTypeSymbol, 38analysisContext As INamedTypeSymbol, 39compilationStartAnalysisContext As INamedTypeSymbol, 40codeBlockStartAnalysisContext As INamedTypeSymbol, 41operationBlockStartAnalysisContext As INamedTypeSymbol, 42symbolKind As INamedTypeSymbol)
MetaAnalyzers\BasicReportDiagnosticAnalyzer.vb (10)
15Protected Overrides Function GetAnalyzer(contextTypes As ImmutableHashSet(Of INamedTypeSymbol), 16diagnosticType As INamedTypeSymbol, 17diagnosticDescriptorType As INamedTypeSymbol, 18diagnosticAnalyzer As INamedTypeSymbol, 19diagnosticAnalyzerAttribute As INamedTypeSymbol) As ReportDiagnosticCompilationAnalyzer 26Public Sub New(contextTypes As ImmutableHashSet(Of INamedTypeSymbol), 27diagnosticType As INamedTypeSymbol, 28diagnosticDescriptorType As INamedTypeSymbol, 29diagnosticAnalyzer As INamedTypeSymbol, 30diagnosticAnalyzerAttribute As INamedTypeSymbol)
Microsoft.CodeAnalysis.VisualBasic.CodeStyle (8)
src\Analyzers\VisualBasic\Analyzers\RemoveUnusedMembers\VisualBasicRemoveUnusedMembersDiagnosticAnalyzer.vb (2)
27For Each method In DirectCast(context.Symbol, INamedTypeSymbol).GetMembers().OfType(Of IMethodSymbol) 55Protected Overrides Function GetTypeDeclarations(namedType As INamedTypeSymbol, cancellationToken As CancellationToken) As IEnumerable(Of TypeBlockSyntax)
src\Analyzers\VisualBasic\Analyzers\UseCollectionInitializer\VisualBasicUseCollectionInitializerDiagnosticAnalyzer.vb (1)
46expressionType As INamedTypeSymbol,
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\VisualBasic\Extensions\SyntaxNodeExtensions.vb (1)
1066expressionTypeOpt As INamedTypeSymbol,
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\VisualBasic\Services\SemanticFacts\VisualBasicSemanticFacts.vb (4)
96Public Function LastEnumValueHasInitializer(namedTypeSymbol As INamedTypeSymbol) As Boolean Implements ISemanticFacts.LastEnumValueHasInitializer 217Public Function IsPartial(typeSymbol As INamedTypeSymbol, cancellationToken As CancellationToken) As Boolean Implements ISemanticFacts.IsPartial 281Public Function IsInExpressionTree(semanticModel As SemanticModel, node As SyntaxNode, expressionTypeOpt As INamedTypeSymbol, cancellationToken As CancellationToken) As Boolean Implements ISemanticFacts.IsInExpressionTree 337Public Function TryGetPrimaryConstructor(typeSymbol As INamedTypeSymbol, <NotNullWhen(True)> ByRef primaryConstructor As IMethodSymbol) As Boolean Implements ISemanticFacts.TryGetPrimaryConstructor
Microsoft.CodeAnalysis.VisualBasic.CodeStyle.Fixes (71)
src\Analyzers\VisualBasic\CodeFixes\GenerateConstructor\VisualBasicGenerateConstructorService.vb (7)
28Protected Overrides Function TryInitializeImplicitObjectCreation(document As SemanticDocument, node As SyntaxNode, cancellationToken As CancellationToken, ByRef token As SyntaxToken, ByRef arguments As ImmutableArray(Of Argument(Of ExpressionSyntax)), ByRef typeToGenerateIn As INamedTypeSymbol) As Boolean 35Protected Overrides Function ContainingTypesOrSelfHasUnsafeKeyword(containingType As INamedTypeSymbol) As Boolean 62ByRef typeToGenerateIn As INamedTypeSymbol) As Boolean 97ByRef typeToGenerateIn As INamedTypeSymbol) As Boolean 114typeToGenerateIn = TryCast(symbolInfo.GetAnySymbol(), INamedTypeSymbol) 132ByRef typeToGenerateIn As INamedTypeSymbol) As Boolean 147typeToGenerateIn = TryCast(symbolInfo.CandidateSymbols.FirstOrDefault().ContainingSymbol, INamedTypeSymbol)
src\Analyzers\VisualBasic\CodeFixes\GenerateDefaultConstructors\VisualBasicGenerateDefaultConstructorsService.vb (3)
25ByRef classType As INamedTypeSymbol) As Boolean 34classType = TryCast(semanticDocument.SemanticModel.GetDeclaredSymbol(typeDecl), INamedTypeSymbol) 48classType = TryCast(semanticDocument.SemanticModel.GetDeclaredSymbol(baseList.Parent, cancellationToken), INamedTypeSymbol)
src\Analyzers\VisualBasic\CodeFixes\GenerateParameterizedMember\VisualBasicGenerateConversionService.vb (11)
55Protected Overrides Function TryInitializeExplicitConversionState(document As SemanticDocument, expression As SyntaxNode, classInterfaceModuleStructTypes As ISet(Of TypeKind), cancellationToken As CancellationToken, ByRef identifierToken As SyntaxToken, ByRef methodSymbol As IMethodSymbol, ByRef typeToGenerateIn As INamedTypeSymbol) As Boolean 69Protected Overrides Function TryInitializeImplicitConversionState(document As SemanticDocument, expression As SyntaxNode, classInterfaceModuleStructTypes As ISet(Of TypeKind), cancellationToken As CancellationToken, ByRef identifierToken As SyntaxToken, ByRef methodSymbol As IMethodSymbol, ByRef typeToGenerateIn As INamedTypeSymbol) As Boolean 83Private Shared Function TryGetConversionMethodAndTypeToGenerateIn(document As SemanticDocument, expression As SyntaxNode, classInterfaceModuleStructTypes As ISet(Of TypeKind), cancellationToken As CancellationToken, ByRef methodSymbol As IMethodSymbol, ByRef typeToGenerateIn As INamedTypeSymbol) As Boolean 113Private Shared Function TryGetExplicitConversionMethodAndTypeToGenerateIn(document As SemanticDocument, castExpression As CastExpressionSyntax, classInterfaceModuleStructTypes As ISet(Of TypeKind), cancellationToken As CancellationToken, ByRef methodSymbol As IMethodSymbol, ByRef typeToGenerateIn As INamedTypeSymbol) As Boolean 115typeToGenerateIn = TryCast(document.SemanticModel.GetTypeInfo(castExpression.Type, cancellationToken).Type, INamedTypeSymbol) 116Dim parameterSymbol = TryCast(document.SemanticModel.GetTypeInfo(castExpression.Expression, cancellationToken).Type, INamedTypeSymbol) 129Private Shared Function TryGetImplicitConversionMethodAndTypeToGenerateIn(document As SemanticDocument, expression As SyntaxNode, classInterfaceModuleStructTypes As ISet(Of TypeKind), cancellationToken As CancellationToken, ByRef methodSymbol As IMethodSymbol, ByRef typeToGenerateIn As INamedTypeSymbol) As Boolean 131typeToGenerateIn = TryCast(document.SemanticModel.GetTypeInfo(expression, cancellationToken).ConvertedType, INamedTypeSymbol) 132Dim parameterSymbol = TryCast(document.SemanticModel.GetTypeInfo(expression, cancellationToken).Type, INamedTypeSymbol) 145Private Shared Function GenerateMethodSymbol(typeToGenerateIn As INamedTypeSymbol, parameterSymbol As INamedTypeSymbol) As IMethodSymbol
src\Analyzers\VisualBasic\CodeFixes\GenerateParameterizedMember\VisualBasicGenerateMethodService.vb (2)
46ByRef typeToGenerateIn As INamedTypeSymbol) As Boolean 62typeToGenerateIn = TryCast(semanticInfo.Type, INamedTypeSymbol)
src\Analyzers\VisualBasic\CodeFixes\ImplementInterface\VisualBasicImplementInterfaceService.vb (5)
57ByRef classOrStructDecl As SyntaxNode, ByRef classOrStructType As INamedTypeSymbol, 58ByRef interfaceTypes As ImmutableArray(Of INamedTypeSymbol)) As Boolean 105cancellationToken As CancellationToken) As INamedTypeSymbol 111Return TryCast(symbolInfo.GetAnySymbol(), INamedTypeSymbol) 122classType As INamedTypeSymbol,
src\Analyzers\VisualBasic\CodeFixes\MakeMethodAsynchronous\VisualBasicMakeMethodAsynchronousCodeFixProvider.vb (1)
98keepVoid As Boolean, node As MethodBlockSyntax, taskType As INamedTypeSymbol) As SyntaxNode
src\Workspaces\SharedUtilitiesAndExtensions\Workspace\VisualBasic\CodeGeneration\EnumMemberGenerator.vb (1)
136Dim namedType = TryCast(enumMember.Type, INamedTypeSymbol)
src\Workspaces\SharedUtilitiesAndExtensions\Workspace\VisualBasic\CodeGeneration\EventGenerator.vb (2)
108Dim invoke = DirectCast([event].Type, INamedTypeSymbol)?.DelegateInvokeMethod 140Dim eventType = TryCast([event].Type, INamedTypeSymbol)
src\Workspaces\SharedUtilitiesAndExtensions\Workspace\VisualBasic\CodeGeneration\ExpressionGenerator.vb (2)
48Return GenerateExpression(generator, DirectCast(type, INamedTypeSymbol).TypeArguments(0), value, canUseFieldReference) 51DirectCast(type, INamedTypeSymbol), value), ExpressionSyntax)
src\Workspaces\SharedUtilitiesAndExtensions\Workspace\VisualBasic\CodeGeneration\NamedTypeGenerator.vb (13)
16namedType As INamedTypeSymbol, 27namedType As INamedTypeSymbol, 38namedType As INamedTypeSymbol, 48namedType As INamedTypeSymbol, 70Private Function GetDeclarationSyntaxWithoutMembers(namedType As INamedTypeSymbol, options As CodeGenerationContextInfo) As StatementSyntax 92Private Function GenerateNamedTypeDeclarationWorker(namedType As INamedTypeSymbol, options As CodeGenerationContextInfo) As StatementSyntax 133Private Function GenerateDelegateDeclaration(namedType As INamedTypeSymbol, options As CodeGenerationContextInfo) As StatementSyntax 147Private Function GenerateEnumDeclaration(namedType As INamedTypeSymbol, options As CodeGenerationContextInfo) As StatementSyntax 160Private Function GenerateAttributes(namedType As INamedTypeSymbol, options As CodeGenerationContextInfo) As SyntaxList(Of AttributeListSyntax) 164Private Function GenerateModifiers(namedType As INamedTypeSymbol) As SyntaxTokenList 200Private Function GenerateTypeParameterList(namedType As INamedTypeSymbol) As TypeParameterListSyntax 204Private Function GenerateInheritsStatements(namedType As INamedTypeSymbol) As SyntaxList(Of InheritsStatementSyntax) 215Private Function GenerateImplementsStatements(namedType As INamedTypeSymbol) As SyntaxList(Of ImplementsStatementSyntax)
src\Workspaces\SharedUtilitiesAndExtensions\Workspace\VisualBasic\CodeGeneration\VisualBasicCodeGenerationService.vb (2)
178namedType As INamedTypeSymbol, 572Public Overrides Function CreateNamedTypeDeclaration(namedType As INamedTypeSymbol,
src\Workspaces\SharedUtilitiesAndExtensions\Workspace\VisualBasic\CodeGeneration\VisualBasicFlagsEnumGenerator.vb (2)
24enumType As INamedTypeSymbol, 37Protected Overrides Function IsValidName(enumType As INamedTypeSymbol, name As String) As Boolean
src\Workspaces\SharedUtilitiesAndExtensions\Workspace\VisualBasic\Editing\VisualBasicImportAdder.vb (2)
103Dim type = TryCast(typeOrNamespace, INamedTypeSymbol) 116Dim moduleType = TryCast(member, INamedTypeSymbol)
src\Workspaces\SharedUtilitiesAndExtensions\Workspace\VisualBasic\Extensions\ContextQuery\SyntaxTreeExtensions.vb (1)
800Return DirectCast(symbol, INamedTypeSymbol).TypeKind = TypeKind.Enum
src\Workspaces\SharedUtilitiesAndExtensions\Workspace\VisualBasic\Extensions\ContextQuery\VisualBasicSyntaxContext.vb (3)
49Public ReadOnly EnclosingNamedType As INamedTypeSymbol 255Private Function ComputeEnclosingNamedType(cancellationToken As CancellationToken) As INamedTypeSymbol 266Return If(TryCast(enclosingSymbol, INamedTypeSymbol), enclosingSymbol.ContainingType)
src\Workspaces\SharedUtilitiesAndExtensions\Workspace\VisualBasic\Extensions\ExpressionSyntaxGeneratorVisitor.vb (1)
32Public Overrides Function VisitNamedType(symbol As INamedTypeSymbol) As ExpressionSyntax
src\Workspaces\SharedUtilitiesAndExtensions\Workspace\VisualBasic\Extensions\IMethodSymbolExtensions.vb (1)
33Dim delegateInvokeMethod = DirectCast(parameter.Type, INamedTypeSymbol).DelegateInvokeMethod
src\Workspaces\SharedUtilitiesAndExtensions\Workspace\VisualBasic\Extensions\TypeSyntaxGeneratorVisitor.vb (4)
65Public Function CreateSimpleTypeSyntax(symbol As INamedTypeSymbol) As TypeSyntax 94Private Shared Function TryCreateSpecializedNamedTypeSyntax(symbol As INamedTypeSymbol) As TypeSyntax 137Private Shared Function CreateTupleTypeSyntax(symbol As INamedTypeSymbol) As TypeSyntax 152Public Overrides Function VisitNamedType(symbol As INamedTypeSymbol) As TypeSyntax
src\Workspaces\SharedUtilitiesAndExtensions\Workspace\VisualBasic\LanguageServices\VisualBasicSyntaxGeneratorInternal.vb (1)
479Public Overrides Function DeclarationPattern(type As INamedTypeSymbol, name As String) As SyntaxNode
src\Workspaces\SharedUtilitiesAndExtensions\Workspace\VisualBasic\LanguageServices\VisualBasicTypeInferenceService.TypeInferrer.vb (7)
110If TypeOf typeSymbol IsNot INamedTypeSymbol Then 220OfType(Of INamedTypeSymbol)(). 294Dim namedType = TryCast(info.Symbol, INamedTypeSymbol) 512Return New TypeInferenceInfo(DirectCast(t.InferredType, INamedTypeSymbol).TypeArguments(0)) 772If TypeOf memberType Is INamedTypeSymbol Then 776Return CreateResult(DirectCast(memberType, INamedTypeSymbol).TypeArguments(0)) 1069Return types.OfType(Of INamedTypeSymbol)().SelectMany(Function(t) GetCollectionElementType(t))
Microsoft.CodeAnalysis.VisualBasic.EditorFeatures (7)
EndConstructGeneration\EndConstructStatementVisitor_CustomEvents.vb (1)
49Dim type = TryCast(_semanticModel.GetTypeInfo(DirectCast(eventStatement.AsClause, SimpleAsClauseSyntax).Type, Me._cancellationToken).Type, INamedTypeSymbol)
NavigationBar\VisualBasicEditorNavigationBarItemService_CodeGeneration.vb (5)
117Dim destinationType = TryCast(generateCodeItem.DestinationTypeSymbolKey.Resolve(compilation, cancellationToken:=cancellationToken).Symbol, INamedTypeSymbol) 162Dim destinationType = TryCast(generateCodeItem.DestinationTypeSymbolKey.Resolve(compilation, cancellationToken:=cancellationToken).GetAnySymbol(), INamedTypeSymbol) 168Dim delegateInvokeMethod = DirectCast(eventSymbol.Type, INamedTypeSymbol).DelegateInvokeMethod 216Dim destinationType = TryCast(generateCodeItem.DestinationTypeSymbolKey.Resolve(compilation, cancellationToken:=cancellationToken).Symbol, INamedTypeSymbol) 260Dim destinationType = TryCast(generateCodeItem.DestinationTypeSymbolKey.Resolve(compilation, cancellationToken:=cancellationToken).Symbol, INamedTypeSymbol)
Utilities\NamedTypeSymbolExtensions.vb (1)
14Public Function IsDesignerGeneratedTypeWithInitializeComponent(type As INamedTypeSymbol, compilation As Compilation) As Boolean
Microsoft.CodeAnalysis.VisualBasic.Emit.UnitTests (77)
Attributes\AttributeTests.vb (3)
1955Assert.False(DirectCast(arg, INamedTypeSymbol).IsSerializable) 4442Assert.True(DirectCast(typeInAttribute, INamedTypeSymbol).IsUnboundGenericType) 4452Assert.True(DirectCast(typeInAttribute, INamedTypeSymbol).IsUnboundGenericType)
Attributes\AttributeTests_WellKnownAttributes.vb (30)
723Dim typeC As INamedTypeSymbol = lib_comp.GetTypeByMetadataName("C") 727Dim typeBobAttribute As INamedTypeSymbol = lib_comp.GetTypeByMetadataName("BobAttribute") 737Dim typeC1 As INamedTypeSymbol = client1.GetTypeByMetadataName("C") 741Dim typeBobAttribute1 As INamedTypeSymbol = client1.GetTypeByMetadataName("BobAttribute") 746Dim typeC2 As INamedTypeSymbol = client2.GetTypeByMetadataName("C") 750Dim typeBobAttribute2 As INamedTypeSymbol = client2.GetTypeByMetadataName("BobAttribute") 782Assert.True(DirectCast(cOfInt, INamedTypeSymbol).IsSerializable) 783Assert.True(DirectCast(cOfInt.ConstructedFrom, INamedTypeSymbol).IsSerializable) 787Assert.False(DirectCast(dOfInt, INamedTypeSymbol).IsSerializable) 788Assert.False(DirectCast(dOfInt.ConstructedFrom, INamedTypeSymbol).IsSerializable) 3516Assert.False(DirectCast(substitutedNested, INamedTypeSymbol).IsSerializable) 3520Assert.True(DirectCast(substitutedNestedS, INamedTypeSymbol).IsSerializable) 3524Assert.False(DirectCast(specialized, INamedTypeSymbol).IsSerializable) 3528Assert.True(DirectCast(specializedS, INamedTypeSymbol).IsSerializable) 3532Assert.True(DirectCast(valueTupleS, INamedTypeSymbol).IsSerializable) 3536Assert.False(DirectCast(constructed, INamedTypeSymbol).IsSerializable) 3540Assert.False(DirectCast(constructedPE, INamedTypeSymbol).IsSerializable) 3544Assert.False(DirectCast(constructedFrom, INamedTypeSymbol).IsSerializable) 3548Assert.True(DirectCast(constructedS, INamedTypeSymbol).IsSerializable) 3552Assert.True(DirectCast(constructedSPE, INamedTypeSymbol).IsSerializable) 3556Assert.True(DirectCast(constructedFromS, INamedTypeSymbol).IsSerializable) 3560Assert.False(DirectCast(extendedError, INamedTypeSymbol).IsSerializable) 3564Assert.False(DirectCast(topLevel, INamedTypeSymbol).IsSerializable) 3568Assert.False(DirectCast(nested, INamedTypeSymbol).IsSerializable) 3572Assert.False(DirectCast(constructedError, INamedTypeSymbol).IsSerializable) 3576Assert.False(DirectCast(nestedSubstitutedError, INamedTypeSymbol).IsSerializable) 3581Assert.False(DirectCast(scriptClass, INamedTypeSymbol).IsSerializable) 3585Assert.False(DirectCast(inNamespace, INamedTypeSymbol).IsSerializable) 3589Assert.True(DirectCast(inNamespaceS, INamedTypeSymbol).IsSerializable) 3637Assert.True(DirectCast(arg, INamedTypeSymbol).IsSerializable)
CodeGen\CodeGenTuples.vb (42)
4699Assert.False(DirectCast(xSymbol, INamedTypeSymbol).IsSerializable) 6902Private Shared Function ElementTypeNames(tuple As INamedTypeSymbol) As IEnumerable(Of String) 7207Dim csType = DirectCast(csComp.GlobalNamespace.GetMembers("C").Single(), INamedTypeSymbol) 7461Private Shared Function GetTupleElementNames(tuple As INamedTypeSymbol) As ImmutableArray(Of String) 7478Dim csType = DirectCast(csComp.GlobalNamespace.GetMembers("C").Single(), INamedTypeSymbol) 7513Dim tuple4 = DirectCast(comp.CreateTupleTypeSymbol(CType(tuple1.TupleUnderlyingType, INamedTypeSymbol), 7544Dim tuple1 = DirectCast(DirectCast(comp.GetMember("Program.F"), IFieldSymbol).Type, INamedTypeSymbol) 7576Dim tuple1 = DirectCast(DirectCast(comp.GetMember("Program.F"), IFieldSymbol).Type, INamedTypeSymbol) 7608Dim tuple1 = DirectCast(DirectCast(comp.GetMember("Program.F"), IFieldSymbol).Type, INamedTypeSymbol) 7643Dim tuple1 = DirectCast(DirectCast(comp.GetMember("Program.F"), IFieldSymbol).Type, INamedTypeSymbol) 7669Dim tuple1 = DirectCast(DirectCast(comp.GetMember("Program.F"), IFieldSymbol).Type, INamedTypeSymbol) 7704Dim tuple1 = DirectCast(DirectCast(comp.GetMember("Program.F"), IFieldSymbol).Type, INamedTypeSymbol) 9945Assert.False(DirectCast(validFieldWithAttribute.Type, INamedTypeSymbol).IsSerializable) 9950Assert.False(DirectCast(tooFewNames.Type, INamedTypeSymbol).IsSerializable) 17198Dim c1 As INamedTypeSymbol = comp.GetTypeByMetadataName("C1") 17210Dim c2 As INamedTypeSymbol = comp.GetTypeByMetadataName("C2") 17222Dim c3 As INamedTypeSymbol = comp.GetTypeByMetadataName("C3") 17233Dim c4 As INamedTypeSymbol = comp.GetTypeByMetadataName("C4") 17247Private Shared Sub DuplicateInterfaceDetectionWithDifferentTupleNames_02_AssertExplicitInterfaceImplementations(c As INamedTypeSymbol) 17298Dim c1 As INamedTypeSymbol = m.GlobalNamespace.GetTypeMember("C1") 17306Dim c2 As INamedTypeSymbol = m.GlobalNamespace.GetTypeMember("C2") 17371Dim c1 As INamedTypeSymbol = comp.GlobalNamespace.GetTypeMember("C1") 17379Dim c2 As INamedTypeSymbol = comp.GlobalNamespace.GetTypeMember("C2") 17481Dim c1 As INamedTypeSymbol = comp.GetTypeByMetadataName("C1`1") 17493Dim c2 As INamedTypeSymbol = comp.GetTypeByMetadataName("C2`1") 17505Dim c3 As INamedTypeSymbol = comp.GetTypeByMetadataName("C3`1") 17516Dim c4 As INamedTypeSymbol = comp.GetTypeByMetadataName("C4`1") 17530Private Shared Sub DuplicateInterfaceDetectionWithDifferentTupleNames_05_AssertExplicitInterfaceImplementations(c As INamedTypeSymbol) 17568Dim c3 As INamedTypeSymbol = comp.GetTypeByMetadataName("C3`2") 17620Dim c3 As INamedTypeSymbol = comp.GetTypeByMetadataName("C3") 21350Dim derived1 As INamedTypeSymbol = comp.GetTypeByMetadataName("Derived1") 21353Dim derived2 As INamedTypeSymbol = comp.GetTypeByMetadataName("Derived2") 21486Dim derived1 As INamedTypeSymbol = comp.GetTypeByMetadataName("Derived1") 21489Dim derived2 As INamedTypeSymbol = comp.GetTypeByMetadataName("Derived2") 23122VerifyTypeFromCSharp(DirectCast(DirectCast(containingType.GetMembers("F0").Single(), IFieldSymbol).Type, INamedTypeSymbol), TupleUnderlyingTypeValue.Nothing, "System.ValueTuple", "()") 23123VerifyTypeFromCSharp(DirectCast(DirectCast(containingType.GetMembers("F1").Single(), IFieldSymbol).Type, INamedTypeSymbol), TupleUnderlyingTypeValue.Nothing, "(System.Int32, System.Int32)", "(System.Int32, System.Int32)") 23124VerifyTypeFromCSharp(DirectCast(DirectCast(containingType.GetMembers("F2").Single(), IFieldSymbol).Type, INamedTypeSymbol), TupleUnderlyingTypeValue.Distinct, "(System.Int32 A, System.Int32 B)", "(A As System.Int32, B As System.Int32)") 23125VerifyTypeFromCSharp(DirectCast(DirectCast(containingType.GetMembers("F3").Single(), IFieldSymbol).Type, INamedTypeSymbol), TupleUnderlyingTypeValue.Nothing, "(System.Object, System.Object, System.Object, System.Object, System.Object, System.Object, System.Object, System.Object)", "(System.Object, System.Object, System.Object, System.Object, System.Object, System.Object, System.Object, System.Object)") 23126VerifyTypeFromCSharp(DirectCast(DirectCast(containingType.GetMembers("F4").Single(), IFieldSymbol).Type, INamedTypeSymbol), TupleUnderlyingTypeValue.Distinct, "(System.Object, System.Object B, System.Object, System.Object D, System.Object, System.Object F, System.Object, System.Object H)", "(System.Object, B As System.Object, System.Object, D As System.Object, System.Object, F As System.Object, System.Object, H As System.Object)") 23156Private Shared Sub VerifyTypeFromCSharp(type As INamedTypeSymbol, expectedValue As TupleUnderlyingTypeValue, expectedCSharp As String, expectedVisualBasic As String) 23171Private Shared Sub VerifyDisplay(type As INamedTypeSymbol, expectedCSharp As String, expectedVisualBasic As String) 23204Private Shared Sub VerifyPublicType(type As INamedTypeSymbol, expectedValue As TupleUnderlyingTypeValue)
Emit\DeterministicTests.vb (1)
258Private Shared Function GetForwardedTypes(assembly As AssemblySymbol) As IEnumerable(Of INamedTypeSymbol)
PrivateProtected.vb (1)
133Dim bb = CType(baseCompilation.GlobalNamespace.GetMember("Base"), INamedTypeSymbol)
Microsoft.CodeAnalysis.VisualBasic.Features (110)
ChangeSignature\VisualBasicChangeSignatureService.vb (2)
338Dim delegateInvokeMethod = DirectCast(DirectCast(semanticModel.GetSymbolInfo(raiseEventStatement.Name, cancellationToken).Symbol, IEventSymbol).Type, INamedTypeSymbol).DelegateInvokeMethod 788Protected Overrides Function TryGetRecordPrimaryConstructor(typeSymbol As INamedTypeSymbol, ByRef primaryConstructor As IMethodSymbol) As Boolean
CodeFixes\GenerateEvent\GenerateEventCodeFixProvider.CodeAction.vb (2)
15Private ReadOnly _targetSymbol As INamedTypeSymbol 20targetSymbol As INamedTypeSymbol,
CodeFixes\GenerateEvent\GenerateEventCodeFixProvider.vb (16)
97Dim targetType As INamedTypeSymbol = Nothing 110targetType = TryCast(sourceDefinition, INamedTypeSymbol) 124targetType As INamedTypeSymbol, 172Dim typeSymbol = TryCast(semanticModel.GetTypeInfo(handlerExpression, cancellationToken).Type, INamedTypeSymbol) 187Private Shared Function ResolveTargetType(ByRef targetType As INamedTypeSymbol, semanticModel As SemanticModel) As Boolean 194targetType = DirectCast(targetType.GetSymbolKey().Resolve(semanticModel.Compilation).Symbol, INamedTypeSymbol) 203Private Shared Function TryGetNameAndTargetType(eventExpression As ExpressionSyntax, containingSymbol As INamedTypeSymbol, semanticModel As SemanticModel, ByRef targetType As INamedTypeSymbol, ByRef actualEventName As String, cancellationToken As CancellationToken) As Boolean 205Dim eventType As INamedTypeSymbol = Nothing 213eventType = TryCast(semanticModel.GetTypeInfo(qualifier, cancellationToken).Type, INamedTypeSymbol) 259Dim targetType = TryCast(Await SymbolFinder.FindSourceDefinitionAsync(semanticModel.GetSymbolInfo(node.Left, cancellationToken).Symbol, document.Project.Solution, cancellationToken).ConfigureAwait(False), INamedTypeSymbol) 278Dim eventType = TryCast(boundEvent.Type, INamedTypeSymbol) 327Dim targetType As INamedTypeSymbol = Nothing 350targetType = TryCast(Await SymbolFinder.FindSourceDefinitionAsync(withEventsProperty.Type, document.Project.Solution, cancellationToken).ConfigureAwait(False), INamedTypeSymbol) 354targetType = TryCast(Await SymbolFinder.FindSourceDefinitionAsync(targetType, document.Project.Solution, cancellationToken).ConfigureAwait(False), INamedTypeSymbol) 363targetType = DirectCast(targetType.GetSymbolKey(cancellationToken).Resolve(semanticModel.Compilation, cancellationToken:=cancellationToken).Symbol, INamedTypeSymbol)
CodeFixes\Suppression\VisualBasicSuppressionCodeFixProvider.vb (2)
118suppressMessageAttribute As INamedTypeSymbol, 153suppressMessageAttribute As INamedTypeSymbol,
Completion\CompletionProviders\CompletionListTagCompletionProvider.vb (2)
71Private Shared Function GetCompletionListType(inferredType As ITypeSymbol, within As INamedTypeSymbol, compilation As Compilation, cancellationToken As CancellationToken) As ITypeSymbol 75.OfType(Of INamedTypeSymbol) _
Completion\CompletionProviders\CrefCompletionProvider.vb (1)
186Dim namedTypeContainer = TryCast(container, INamedTypeSymbol)
Completion\CompletionProviders\EnumCompletionProvider.vb (1)
92Private _cachedDisplayAndInsertionTextContainingType As INamedTypeSymbol
Completion\CompletionProviders\NamedParameterCompletionProvider.vb (3)
144Dim type = TryCast(semanticModel.GetTypeInfo(objectCreationExpression, cancellationToken).Type, INamedTypeSymbol) 160Dim attributeType = TryCast(semanticModel.GetTypeInfo(attribute, cancellationToken).Type, INamedTypeSymbol) 186Dim delegateType = DirectCast(expressionType, INamedTypeSymbol)
Completion\CompletionProviders\ObjectInitializerCompletionProvider.vb (1)
109Protected Overrides Function IsInitializableFieldOrProperty(fieldOrProperty As ISymbol, containingType As INamedTypeSymbol) As Boolean
Completion\CompletionProviders\PartialTypeCompletionProvider.vb (2)
61Protected Overrides Function GetDisplayAndSuffixAndInsertionText(symbol As INamedTypeSymbol, context As VisualBasicSyntaxContext) As (displayText As String, suffix As String, insertionText As String) 67Protected Overrides Function GetProperties(symbol As INamedTypeSymbol, context As VisualBasicSyntaxContext) As ImmutableArray(Of KeyValuePair(Of String, String))
Completion\CompletionProviders\XmlDocCommentCompletionProvider.vb (1)
356Dim namedTypeSymbol = TryCast(symbol, INamedTypeSymbol)
Completion\KeywordRecommenders\Declarations\OfKeywordRecommender.vb (2)
111Return symbols.OfType(Of INamedTypeSymbol)() _ 122.OfType(Of INamedTypeSymbol)() _
Debugging\BreakpointResolver.vb (1)
22Protected Overrides Function GetMembers(type As INamedTypeSymbol, name As String) As IEnumerable(Of ISymbol)
EditAndContinue\VisualBasicEditAndContinueAnalyzer.vb (3)
675Friend Overrides Function IsPartial(type As INamedTypeSymbol) As Boolean 1416Friend Overrides Function GetDisplayName(symbol As INamedTypeSymbol) As String 1997Dim type = CType(newSymbol, INamedTypeSymbol)
EncapsulateField\VisualBasicEncapsulateFieldService.vb (2)
99Protected Shared Function MakeUnique(baseName As String, originalFieldName As String, containingType As INamedTypeSymbol, Optional willChangeFieldName As Boolean = True) As String 132Protected Overrides Function GetConstructorNodes(containingType As INamedTypeSymbol) As IEnumerable(Of ConstructorBlockSyntax)
ExtractInterface\VisualBasicExtractInterfaceService.vb (3)
49Friend Overrides Function GetContainingNamespaceDisplay(typeSymbol As INamedTypeSymbol, compilationOptions As CompilationOptions) As String 101unformattedSolution As Solution, documentIds As IReadOnlyList(Of DocumentId), extractedInterfaceSymbol As INamedTypeSymbol, 102typeToExtractFrom As INamedTypeSymbol, includedMembers As IEnumerable(Of ISymbol),
ExtractMethod\VisualBasicSelectionResult.vb (1)
189Private Shared Function IsCoClassImplicitConversion(info As TypeInfo, conversion As Conversion, coclassSymbol As INamedTypeSymbol) As Boolean
GenerateConstructors\VisualBasicGenerateConstructorsCodeRefactoringProvider.vb (1)
32Protected Overrides Function ContainingTypesOrSelfHasUnsafeKeyword(containingType As INamedTypeSymbol) As Boolean
GenerateMember\GenerateVariable\VisualBasicGenerateVariableService.vb (2)
33ByRef identifierToken As SyntaxToken, ByRef propertySymbol As IPropertySymbol, ByRef typeToGenerateIn As INamedTypeSymbol) As Boolean 54typeToGenerateIn = TryCast(info.Type, INamedTypeSymbol)
GenerateType\VisualBasicGenerateTypeService.vb (4)
326generateTypeServiceStateOptions.DelegateCreationMethodSymbol = DirectCast(type, INamedTypeSymbol).DelegateInvokeMethod 388cancellationToken As CancellationToken) As INamedTypeSymbol 393Return If(typeBlock Is Nothing, Nothing, TryCast(semanticModel.GetDeclaredSymbol(typeBlock.BlockStatement, cancellationToken), INamedTypeSymbol)) 419Public Overrides Async Function GetOrGenerateEnclosingNamespaceSymbolAsync(namedTypeSymbol As INamedTypeSymbol, containers() As String, selectedDocument As Document, selectedDocumentRoot As SyntaxNode, cancellationToken As CancellationToken) As Task(Of (INamespaceSymbol, INamespaceOrTypeSymbol, Location))
InitializeParameter\VisualBasicInitializeMemberFromParameterCodeRefactoringProvider.vb (1)
36Protected Overrides Function DetermineDefaultFieldAccessibility(containingType As INamedTypeSymbol) As Accessibility
IntroduceVariable\VisualBasicIntroduceLocalForExpressionCodeRefactoringProvider.vb (1)
49Protected Overrides Function CreateTupleDeconstructionAsync(document As Document, tupleType As INamedTypeSymbol, expression As ExpressionSyntax, cancellationToken As CancellationToken) As Task(Of ExpressionStatementSyntax)
IntroduceVariable\VisualBasicIntroduceVariableService_IntroduceField.vb (1)
60oldType As INamedTypeSymbol,
LanguageServices\VisualBasicStructuralTypeDisplayService.vb (1)
27anonymousType As INamedTypeSymbol,
NavigationBar\VisualBasicNavigationBarItemService.vb (9)
60Private Shared Function GetTypesAndDeclarationsInFile(semanticModel As SemanticModel, cancellationToken As CancellationToken) As IEnumerable(Of Tuple(Of INamedTypeSymbol, SyntaxNode)) 62Dim typesAndDeclarations As New Dictionary(Of INamedTypeSymbol, SyntaxNode) 69Return SpecializedCollections.EmptyEnumerable(Of Tuple(Of INamedTypeSymbol, SyntaxNode))() 73Dim type = TryCast(semanticModel.GetDeclaredSymbol(node, cancellationToken), INamedTypeSymbol) 102type As INamedTypeSymbol, 156type As INamedTypeSymbol, 201type As INamedTypeSymbol, 310containingType As INamedTypeSymbol, 359DirectCast(e.Type, INamedTypeSymbol).DelegateInvokeMethod IsNot Nothing Then
SignatureHelp\AttributeSignatureHelpProvider.vb (1)
60Dim attributeType = TryCast(semanticModel.GetTypeInfo(attribute, cancellationToken).Type, INamedTypeSymbol)
SignatureHelp\FunctionAggregationSignatureHelpProvider.vb (1)
145Dim delegateInvokeMethod = DirectCast(parameter.Type, INamedTypeSymbol).DelegateInvokeMethod
SignatureHelp\GenericNameSignatureHelpProvider.Method.vb (1)
31If result.Kind <> SymbolKind.NamedType OrElse Not DirectCast(result, INamedTypeSymbol).IsScriptClass Then
SignatureHelp\GenericNameSignatureHelpProvider.NamedType.vb (1)
9Private Shared Function GetPreambleParts(namedType As INamedTypeSymbol, semanticModel As SemanticModel, position As Integer) As IList(Of SymbolDisplayPart)
SignatureHelp\GenericNameSignatureHelpProvider.vb (3)
96WhereAsArray(Function(s) TypeOf s Is INamedTypeSymbol OrElse TypeOf s Is IMethodSymbol). 117If TypeOf symbol Is INamedTypeSymbol Then 118Dim namedType = DirectCast(symbol, INamedTypeSymbol)
SignatureHelp\InvocationExpressionSignatureHelpProvider.DelegateInvoke.vb (1)
20delegateType As INamedTypeSymbol,
SignatureHelp\InvocationExpressionSignatureHelpProvider.vb (1)
123items.AddRange(GetDelegateInvokeItems(invocationExpression, semanticModel, structuralTypeDisplayService, documentationCommentFormattingService, DirectCast(expressionType, INamedTypeSymbol), cancellationToken))
SignatureHelp\ObjectCreationExpressionSignatureHelpProvider.DelegateType.vb (1)
19delegateType As INamedTypeSymbol) As (items As IList(Of SignatureHelpItem), selectedItem As Integer?)
SignatureHelp\ObjectCreationExpressionSignatureHelpProvider.NormalType.vb (1)
21normalType As INamedTypeSymbol,
SignatureHelp\ObjectCreationExpressionSignatureHelpProvider.vb (1)
70Dim type = TryCast(semanticModel.GetTypeInfo(objectCreationExpression, cancellationToken).Type, INamedTypeSymbol)
SignatureHelp\RaiseEventStatementSignatureHelpProvider.vb (1)
110Dim type = DirectCast(eventSymbol.Type, INamedTypeSymbol)
src\Analyzers\VisualBasic\Analyzers\RemoveUnusedMembers\VisualBasicRemoveUnusedMembersDiagnosticAnalyzer.vb (2)
27For Each method In DirectCast(context.Symbol, INamedTypeSymbol).GetMembers().OfType(Of IMethodSymbol) 55Protected Overrides Function GetTypeDeclarations(namedType As INamedTypeSymbol, cancellationToken As CancellationToken) As IEnumerable(Of TypeBlockSyntax)
src\Analyzers\VisualBasic\Analyzers\UseCollectionInitializer\VisualBasicUseCollectionInitializerDiagnosticAnalyzer.vb (1)
46expressionType As INamedTypeSymbol,
src\Analyzers\VisualBasic\CodeFixes\GenerateConstructor\VisualBasicGenerateConstructorService.vb (7)
28Protected Overrides Function TryInitializeImplicitObjectCreation(document As SemanticDocument, node As SyntaxNode, cancellationToken As CancellationToken, ByRef token As SyntaxToken, ByRef arguments As ImmutableArray(Of Argument(Of ExpressionSyntax)), ByRef typeToGenerateIn As INamedTypeSymbol) As Boolean 35Protected Overrides Function ContainingTypesOrSelfHasUnsafeKeyword(containingType As INamedTypeSymbol) As Boolean 62ByRef typeToGenerateIn As INamedTypeSymbol) As Boolean 97ByRef typeToGenerateIn As INamedTypeSymbol) As Boolean 114typeToGenerateIn = TryCast(symbolInfo.GetAnySymbol(), INamedTypeSymbol) 132ByRef typeToGenerateIn As INamedTypeSymbol) As Boolean 147typeToGenerateIn = TryCast(symbolInfo.CandidateSymbols.FirstOrDefault().ContainingSymbol, INamedTypeSymbol)
src\Analyzers\VisualBasic\CodeFixes\GenerateDefaultConstructors\VisualBasicGenerateDefaultConstructorsService.vb (3)
25ByRef classType As INamedTypeSymbol) As Boolean 34classType = TryCast(semanticDocument.SemanticModel.GetDeclaredSymbol(typeDecl), INamedTypeSymbol) 48classType = TryCast(semanticDocument.SemanticModel.GetDeclaredSymbol(baseList.Parent, cancellationToken), INamedTypeSymbol)
src\Analyzers\VisualBasic\CodeFixes\GenerateParameterizedMember\VisualBasicGenerateConversionService.vb (11)
55Protected Overrides Function TryInitializeExplicitConversionState(document As SemanticDocument, expression As SyntaxNode, classInterfaceModuleStructTypes As ISet(Of TypeKind), cancellationToken As CancellationToken, ByRef identifierToken As SyntaxToken, ByRef methodSymbol As IMethodSymbol, ByRef typeToGenerateIn As INamedTypeSymbol) As Boolean 69Protected Overrides Function TryInitializeImplicitConversionState(document As SemanticDocument, expression As SyntaxNode, classInterfaceModuleStructTypes As ISet(Of TypeKind), cancellationToken As CancellationToken, ByRef identifierToken As SyntaxToken, ByRef methodSymbol As IMethodSymbol, ByRef typeToGenerateIn As INamedTypeSymbol) As Boolean 83Private Shared Function TryGetConversionMethodAndTypeToGenerateIn(document As SemanticDocument, expression As SyntaxNode, classInterfaceModuleStructTypes As ISet(Of TypeKind), cancellationToken As CancellationToken, ByRef methodSymbol As IMethodSymbol, ByRef typeToGenerateIn As INamedTypeSymbol) As Boolean 113Private Shared Function TryGetExplicitConversionMethodAndTypeToGenerateIn(document As SemanticDocument, castExpression As CastExpressionSyntax, classInterfaceModuleStructTypes As ISet(Of TypeKind), cancellationToken As CancellationToken, ByRef methodSymbol As IMethodSymbol, ByRef typeToGenerateIn As INamedTypeSymbol) As Boolean 115typeToGenerateIn = TryCast(document.SemanticModel.GetTypeInfo(castExpression.Type, cancellationToken).Type, INamedTypeSymbol) 116Dim parameterSymbol = TryCast(document.SemanticModel.GetTypeInfo(castExpression.Expression, cancellationToken).Type, INamedTypeSymbol) 129Private Shared Function TryGetImplicitConversionMethodAndTypeToGenerateIn(document As SemanticDocument, expression As SyntaxNode, classInterfaceModuleStructTypes As ISet(Of TypeKind), cancellationToken As CancellationToken, ByRef methodSymbol As IMethodSymbol, ByRef typeToGenerateIn As INamedTypeSymbol) As Boolean 131typeToGenerateIn = TryCast(document.SemanticModel.GetTypeInfo(expression, cancellationToken).ConvertedType, INamedTypeSymbol) 132Dim parameterSymbol = TryCast(document.SemanticModel.GetTypeInfo(expression, cancellationToken).Type, INamedTypeSymbol) 145Private Shared Function GenerateMethodSymbol(typeToGenerateIn As INamedTypeSymbol, parameterSymbol As INamedTypeSymbol) As IMethodSymbol
src\Analyzers\VisualBasic\CodeFixes\GenerateParameterizedMember\VisualBasicGenerateMethodService.vb (2)
46ByRef typeToGenerateIn As INamedTypeSymbol) As Boolean 62typeToGenerateIn = TryCast(semanticInfo.Type, INamedTypeSymbol)
src\Analyzers\VisualBasic\CodeFixes\ImplementInterface\VisualBasicImplementInterfaceService.vb (5)
57ByRef classOrStructDecl As SyntaxNode, ByRef classOrStructType As INamedTypeSymbol, 58ByRef interfaceTypes As ImmutableArray(Of INamedTypeSymbol)) As Boolean 105cancellationToken As CancellationToken) As INamedTypeSymbol 111Return TryCast(symbolInfo.GetAnySymbol(), INamedTypeSymbol) 122classType As INamedTypeSymbol,
src\Analyzers\VisualBasic\CodeFixes\MakeMethodAsynchronous\VisualBasicMakeMethodAsynchronousCodeFixProvider.vb (1)
98keepVoid As Boolean, node As MethodBlockSyntax, taskType As INamedTypeSymbol) As SyntaxNode
Microsoft.CodeAnalysis.VisualBasic.Scripting.UnitTests (4)
InteractiveSessionTests.vb (4)
130Dim c2C2 = DirectCast(lookupMember(compilation2, "Submission#1", "C2"), INamedTypeSymbol) 144Dim c3C3 = DirectCast(lookupMember(compilation3, "Submission#2", "C3"), INamedTypeSymbol) 151Function lookupType(c As Compilation, name As String) As INamedTypeSymbol 152Return DirectCast(c.GlobalNamespace.GetMembers(name).Single(), INamedTypeSymbol)
Microsoft.CodeAnalysis.VisualBasic.Semantic.UnitTests (12)
Compilation\CompilationAPITests.vb (1)
1942Dim genericType = DirectCast(comp.GetMember("Pair"), INamedTypeSymbol)
Compilation\SemanticModelGetDeclaredSymbolAPITests.vb (1)
661Dim typeSymbol, typeSymbol2, typeSymbol3, typeSymbol4, typeSymbol5, typeSymbol6 As INamedTypeSymbol
Diagnostics\GetDiagnosticsTests.vb (1)
721Dim namedType = DirectCast(symbolContext.Symbol, INamedTypeSymbol)
Semantics\NativeIntegerTests.vb (9)
27VerifyType(DirectCast(method.Parameters(0).Type, INamedTypeSymbol), signed:=True, isNativeInteger:=False) 28VerifyType(DirectCast(method.Parameters(1).Type, INamedTypeSymbol), signed:=True, isNativeInteger:=True) 32VerifyType(DirectCast(method.Parameters(0).Type, INamedTypeSymbol), signed:=False, isNativeInteger:=False) 33VerifyType(DirectCast(method.Parameters(1).Type, INamedTypeSymbol), signed:=False, isNativeInteger:=True) 41VerifyType(DirectCast(method.Parameters(0).Type, INamedTypeSymbol), signed:=True, isNativeInteger:=False) 42VerifyType(DirectCast(method.Parameters(1).Type, INamedTypeSymbol), signed:=True, isNativeInteger:=False) 46VerifyType(DirectCast(method.Parameters(0).Type, INamedTypeSymbol), signed:=False, isNativeInteger:=False) 47VerifyType(DirectCast(method.Parameters(1).Type, INamedTypeSymbol), signed:=False, isNativeInteger:=False) 50Private Shared Sub VerifyType(type As INamedTypeSymbol, signed As Boolean, isNativeInteger As Boolean)
Microsoft.CodeAnalysis.VisualBasic.Symbol.UnitTests (27)
SymbolDisplay\SymbolDisplayTests.vb (1)
4836Dim outer = DirectCast(csComp.GlobalNamespace.GetMembers("Outer").Single(), INamedTypeSymbol)
SymbolsTests\AnonymousDelegates\AnonymousDelegates_CreationAndEmit.vb (1)
312Assert.False(DirectCast(x16, INamedTypeSymbol).IsSerializable)
SymbolsTests\AnonymousTypes\AnonymousTypesEmittedSymbolsTests.vb (1)
587Assert.False(DirectCast(info0.Type, INamedTypeSymbol).IsSerializable)
SymbolsTests\AnonymousTypes\AnonymousTypesSemanticsTests.vb (1)
405Assert.False(DirectCast(delegateA, INamedTypeSymbol).IsSerializable)
SymbolsTests\CustomModifiersTests.vb (3)
57Dim type = DirectCast(test.Parameters.First().Type, INamedTypeSymbol) 69Dim i = DirectCast(type.TypeArguments.First(), INamedTypeSymbol) 125Dim type = DirectCast(test.Parameters.First().Type, INamedTypeSymbol)
SymbolsTests\Metadata\PE\NoPia.vb (2)
224Assert.False(DirectCast(param(0).Type, INamedTypeSymbol).IsSerializable) 779Assert.False(DirectCast(illegal, INamedTypeSymbol).IsSerializable)
SymbolsTests\Retargeting\NoPia.vb (1)
397Assert.False(DirectCast(missing, INamedTypeSymbol).IsSerializable)
SymbolsTests\Retargeting\RetargetCustomModifiers.vb (1)
72Assert.False(DirectCast(p6.Type, INamedTypeSymbol).IsSerializable)
SymbolsTests\Retargeting\RetargetingTests.vb (2)
3219Assert.False(DirectCast(c, INamedTypeSymbol).IsSerializable) 3223Assert.True(DirectCast(cs, INamedTypeSymbol).IsSerializable)
SymbolsTests\Source\BindingsTests.vb (1)
337Dim typeSymbol, typeSymbol2, typeSymbol3, typeSymbol4, typeSymbol5, typeSymbol6 As INamedTypeSymbol
SymbolsTests\Source\FieldTests.vb (1)
57Dim fieldType = DirectCast(field.Type, INamedTypeSymbol)
SymbolsTests\Source\ImplementsTests.vb (2)
2531Assert.False(DirectCast(iFooOfIntTU, INamedTypeSymbol).IsSerializable) 2535Assert.True(DirectCast(fooSOfIntTU, INamedTypeSymbol).IsSerializable)
SymbolsTests\SymbolErrorTests.vb (1)
6124Assert.False(DirectCast(embedded, INamedTypeSymbol).IsSerializable)
SymbolsTests\UnboundGenericType.vb (4)
268Assert.False(DirectCast(u_c3, INamedTypeSymbol).IsSerializable) 272Assert.False(DirectCast(c3c6, INamedTypeSymbol).IsSerializable) 279Assert.True(DirectCast(u_c3s, INamedTypeSymbol).IsSerializable) 283Assert.True(DirectCast(c3c6s, INamedTypeSymbol).IsSerializable)
SymbolsTests\UnmanagedTypeConstraintTests.vb (5)
1048Assert.False(DirectCast(s1, INamedTypeSymbol).IsUnmanagedType) 1049Assert.True(DirectCast(s2, INamedTypeSymbol).IsUnmanagedType) 1050Assert.True(DirectCast(s3, INamedTypeSymbol).IsUnmanagedType) 1051Assert.False(DirectCast(s4, INamedTypeSymbol).IsUnmanagedType) 1052Assert.True(DirectCast(s5, INamedTypeSymbol).IsUnmanagedType)
Microsoft.CodeAnalysis.VisualBasic.Test.Utilities (6)
CompilationTestUtils.vb (6)
1085stringInDecl As String) As INamedTypeSymbol 1099stringInDecl As String) As INamedTypeSymbol 1127Optional isDistinct As Boolean = True) As List(Of INamedTypeSymbol) 1133Dim symType = New List(Of INamedTypeSymbol) 1172isDistinct As Boolean) As List(Of INamedTypeSymbol) 1190ParamArray expectedDisplayNames() As String) As List(Of INamedTypeSymbol)
Microsoft.CodeAnalysis.VisualBasic.Workspaces (69)
CodeCleanup\AsyncOrIteratorFunctionReturnTypeFixer.vb (1)
178Private Sub RewriteFunctionAsClause(genericType As INamedTypeSymbol, ByRef asClauseOpt As SimpleAsClauseSyntax, semanticModel As SemanticModel, position As Integer)
FindSymbols\VisualBasicReferenceFinder.vb (2)
29Return DetermineCascadedSymbolsAsync(DirectCast(symbol, INamedTypeSymbol), project, cancellationToken) 49namedType As INamedTypeSymbol,
Recommendations\VisualBasicRecommendationServiceRunner.vb (9)
289Dim typeContainer = DirectCast(container, INamedTypeSymbol) 371Return TypeOf DirectCast(s, INamedTypeSymbol).AssociatedSymbol IsNot IEventSymbol 458Dim namedTypeSymbol = TryCast(symbol, INamedTypeSymbol) 465.GetAccessibleMembersInThisAndBaseTypes(Of INamedTypeSymbol)(within) _ 474Dim namedTypeSymbol = TryCast(namespaceOrTypeSymbol, INamedTypeSymbol) 484.OfType(Of INamedTypeSymbol)() _ 505Return type.GetAccessibleMembersInThisAndBaseTypes(Of INamedTypeSymbol)(within).Any(Function(m) IsOrContainsValidAccessibleClass(m, within)) 522Dim namedTypeSymbol = TryCast(namespaceOrTypeSymbol, INamedTypeSymbol) 532.OfType(Of INamedTypeSymbol)() _
Rename\VisualBasicRenameRewriterLanguageService.vb (3)
322DirectCast(fieldSymbol.Type, INamedTypeSymbol).AssociatedSymbol IsNot Nothing Then 340ElseIf TypeOf symbol Is INamedTypeSymbol Then 341Dim namedTypeSymbol = DirectCast(symbol, INamedTypeSymbol)
Simplification\Simplifiers\ExpressionSimplifier.vb (3)
132Dim keywordKind = GetPredefinedKeywordKind(DirectCast(symbol, INamedTypeSymbol).SpecialType) 241Dim containingType As INamedTypeSymbol = rightSymbol.ContainingType 252Dim namedType = TryCast(leftSymbol, INamedTypeSymbol)
Simplification\Simplifiers\NameSimplifier.vb (2)
197Dim type = DirectCast(symbol, INamedTypeSymbol) 402Private Shared Function CanSimplifyNullable(type As INamedTypeSymbol, name As NameSyntax) As Boolean
Simplification\VisualBasicSimplificationService.Expander.vb (2)
510aliasTarget = DirectCast(aliasTarget, INamedTypeSymbol).ConstructUnboundGenericType() 795Dim type = TryCast(semanticModel.GetTypeInfo(typeOfExpression.Type, _cancellationToken).Type, INamedTypeSymbol)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\VisualBasic\Extensions\SyntaxNodeExtensions.vb (1)
1066expressionTypeOpt As INamedTypeSymbol,
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\VisualBasic\Services\SemanticFacts\VisualBasicSemanticFacts.vb (4)
96Public Function LastEnumValueHasInitializer(namedTypeSymbol As INamedTypeSymbol) As Boolean Implements ISemanticFacts.LastEnumValueHasInitializer 217Public Function IsPartial(typeSymbol As INamedTypeSymbol, cancellationToken As CancellationToken) As Boolean Implements ISemanticFacts.IsPartial 281Public Function IsInExpressionTree(semanticModel As SemanticModel, node As SyntaxNode, expressionTypeOpt As INamedTypeSymbol, cancellationToken As CancellationToken) As Boolean Implements ISemanticFacts.IsInExpressionTree 337Public Function TryGetPrimaryConstructor(typeSymbol As INamedTypeSymbol, <NotNullWhen(True)> ByRef primaryConstructor As IMethodSymbol) As Boolean Implements ISemanticFacts.TryGetPrimaryConstructor
src\Workspaces\SharedUtilitiesAndExtensions\Workspace\VisualBasic\CodeGeneration\EnumMemberGenerator.vb (1)
136Dim namedType = TryCast(enumMember.Type, INamedTypeSymbol)
src\Workspaces\SharedUtilitiesAndExtensions\Workspace\VisualBasic\CodeGeneration\EventGenerator.vb (2)
108Dim invoke = DirectCast([event].Type, INamedTypeSymbol)?.DelegateInvokeMethod 140Dim eventType = TryCast([event].Type, INamedTypeSymbol)
src\Workspaces\SharedUtilitiesAndExtensions\Workspace\VisualBasic\CodeGeneration\ExpressionGenerator.vb (2)
48Return GenerateExpression(generator, DirectCast(type, INamedTypeSymbol).TypeArguments(0), value, canUseFieldReference) 51DirectCast(type, INamedTypeSymbol), value), ExpressionSyntax)
src\Workspaces\SharedUtilitiesAndExtensions\Workspace\VisualBasic\CodeGeneration\NamedTypeGenerator.vb (13)
16namedType As INamedTypeSymbol, 27namedType As INamedTypeSymbol, 38namedType As INamedTypeSymbol, 48namedType As INamedTypeSymbol, 70Private Function GetDeclarationSyntaxWithoutMembers(namedType As INamedTypeSymbol, options As CodeGenerationContextInfo) As StatementSyntax 92Private Function GenerateNamedTypeDeclarationWorker(namedType As INamedTypeSymbol, options As CodeGenerationContextInfo) As StatementSyntax 133Private Function GenerateDelegateDeclaration(namedType As INamedTypeSymbol, options As CodeGenerationContextInfo) As StatementSyntax 147Private Function GenerateEnumDeclaration(namedType As INamedTypeSymbol, options As CodeGenerationContextInfo) As StatementSyntax 160Private Function GenerateAttributes(namedType As INamedTypeSymbol, options As CodeGenerationContextInfo) As SyntaxList(Of AttributeListSyntax) 164Private Function GenerateModifiers(namedType As INamedTypeSymbol) As SyntaxTokenList 200Private Function GenerateTypeParameterList(namedType As INamedTypeSymbol) As TypeParameterListSyntax 204Private Function GenerateInheritsStatements(namedType As INamedTypeSymbol) As SyntaxList(Of InheritsStatementSyntax) 215Private Function GenerateImplementsStatements(namedType As INamedTypeSymbol) As SyntaxList(Of ImplementsStatementSyntax)
src\Workspaces\SharedUtilitiesAndExtensions\Workspace\VisualBasic\CodeGeneration\VisualBasicCodeGenerationService.vb (2)
178namedType As INamedTypeSymbol, 572Public Overrides Function CreateNamedTypeDeclaration(namedType As INamedTypeSymbol,
src\Workspaces\SharedUtilitiesAndExtensions\Workspace\VisualBasic\CodeGeneration\VisualBasicFlagsEnumGenerator.vb (2)
24enumType As INamedTypeSymbol, 37Protected Overrides Function IsValidName(enumType As INamedTypeSymbol, name As String) As Boolean
src\Workspaces\SharedUtilitiesAndExtensions\Workspace\VisualBasic\Editing\VisualBasicImportAdder.vb (2)
103Dim type = TryCast(typeOrNamespace, INamedTypeSymbol) 116Dim moduleType = TryCast(member, INamedTypeSymbol)
src\Workspaces\SharedUtilitiesAndExtensions\Workspace\VisualBasic\Extensions\ContextQuery\SyntaxTreeExtensions.vb (1)
800Return DirectCast(symbol, INamedTypeSymbol).TypeKind = TypeKind.Enum
src\Workspaces\SharedUtilitiesAndExtensions\Workspace\VisualBasic\Extensions\ContextQuery\VisualBasicSyntaxContext.vb (3)
49Public ReadOnly EnclosingNamedType As INamedTypeSymbol 255Private Function ComputeEnclosingNamedType(cancellationToken As CancellationToken) As INamedTypeSymbol 266Return If(TryCast(enclosingSymbol, INamedTypeSymbol), enclosingSymbol.ContainingType)
src\Workspaces\SharedUtilitiesAndExtensions\Workspace\VisualBasic\Extensions\ExpressionSyntaxGeneratorVisitor.vb (1)
32Public Overrides Function VisitNamedType(symbol As INamedTypeSymbol) As ExpressionSyntax
src\Workspaces\SharedUtilitiesAndExtensions\Workspace\VisualBasic\Extensions\IMethodSymbolExtensions.vb (1)
33Dim delegateInvokeMethod = DirectCast(parameter.Type, INamedTypeSymbol).DelegateInvokeMethod
src\Workspaces\SharedUtilitiesAndExtensions\Workspace\VisualBasic\Extensions\TypeSyntaxGeneratorVisitor.vb (4)
65Public Function CreateSimpleTypeSyntax(symbol As INamedTypeSymbol) As TypeSyntax 94Private Shared Function TryCreateSpecializedNamedTypeSyntax(symbol As INamedTypeSymbol) As TypeSyntax 137Private Shared Function CreateTupleTypeSyntax(symbol As INamedTypeSymbol) As TypeSyntax 152Public Overrides Function VisitNamedType(symbol As INamedTypeSymbol) As TypeSyntax
src\Workspaces\SharedUtilitiesAndExtensions\Workspace\VisualBasic\LanguageServices\VisualBasicSyntaxGeneratorInternal.vb (1)
479Public Overrides Function DeclarationPattern(type As INamedTypeSymbol, name As String) As SyntaxNode
src\Workspaces\SharedUtilitiesAndExtensions\Workspace\VisualBasic\LanguageServices\VisualBasicTypeInferenceService.TypeInferrer.vb (7)
110If TypeOf typeSymbol IsNot INamedTypeSymbol Then 220OfType(Of INamedTypeSymbol)(). 294Dim namedType = TryCast(info.Symbol, INamedTypeSymbol) 512Return New TypeInferenceInfo(DirectCast(t.InferredType, INamedTypeSymbol).TypeArguments(0)) 772If TypeOf memberType Is INamedTypeSymbol Then 776Return CreateResult(DirectCast(memberType, INamedTypeSymbol).TypeArguments(0)) 1069Return types.OfType(Of INamedTypeSymbol)().SelectMany(Function(t) GetCollectionElementType(t))
Microsoft.CodeAnalysis.VisualBasic.Workspaces.UnitTests (4)
CodeGeneration\SyntaxGeneratorTests.vb (4)
21Private ReadOnly _ienumerableInt As INamedTypeSymbol 212Dim typeC = DirectCast(compilation.GlobalNamespace.GetMembers("C").First, INamedTypeSymbol) 3469Dim symbolC = DirectCast(comp.GlobalNamespace.GetMembers("C").First(), INamedTypeSymbol) 3727Dim symbolC = DirectCast(comp.GlobalNamespace.GetMembers("C").First(), INamedTypeSymbol)
Microsoft.CodeAnalysis.Workspaces (765)
Editing\DeclarationModifiers.cs (3)
64is INamedTypeSymbol 73var type = symbol as INamedTypeSymbol;
Editing\SymbolEditorExtensions.cs (3)
59INamedTypeSymbol symbol, 63var baseType = symbol.BaseType; 95INamedTypeSymbol symbol,
Editing\SyntaxGenerator.cs (4)
756var type = (INamedTypeSymbol)symbol; 843var type = (INamedTypeSymbol)symbol;
FindSymbols\FindReferences\BaseTypeFinder.cs (7)
14public static ImmutableArray<INamedTypeSymbol> FindBaseTypesAndInterfaces(INamedTypeSymbol type) 39foreach (var type in FindBaseTypes(symbol.ContainingType)) 80private static ImmutableArray<INamedTypeSymbol> FindBaseTypes(INamedTypeSymbol type) 82var typesBuilder = ArrayBuilder<INamedTypeSymbol>.GetInstance(); 84var currentType = type.BaseType;
FindSymbols\FindReferences\DependentProjectsFinder.cs (1)
249var attrType = attr.AttributeClass;
FindSymbols\FindReferences\DependentTypeFinder.cs (30)
21using SymbolSet = HashSet<INamedTypeSymbol>; 46private static readonly Func<INamedTypeSymbol, bool> s_isInterface = static t => t is { TypeKind: TypeKind.Interface }; 47private static readonly Func<INamedTypeSymbol, bool> s_isNonSealedClass = static t => t is { TypeKind: TypeKind.Class, IsSealed: false }; 48private static readonly Func<INamedTypeSymbol, bool> s_isInterfaceOrNonSealedClass = static t => s_isInterface(t) || s_isNonSealedClass(t); 50private static readonly ObjectPool<PooledHashSet<INamedTypeSymbol>> s_symbolSetPool = PooledHashSet<INamedTypeSymbol>.CreatePool(SymbolEquivalenceComparer.Instance); 53/// Walks down a <paramref name="type"/>'s inheritance tree looking for more <see cref="INamedTypeSymbol"/>'s 61private static async Task<ImmutableArray<INamedTypeSymbol>> DescendInheritanceTreeAsync( 62INamedTypeSymbol type, 65Func<INamedTypeSymbol, SymbolSet, bool> typeMatches, 66Func<INamedTypeSymbol, bool> shouldContinueSearching, 210foreach (var type in typesToSearchFor) 255Func<INamedTypeSymbol, bool>? predicate) 267if (info.TryResolve(semanticModel, cancellationToken) is INamedTypeSymbol namedType && 283if (info.TryResolve(semanticModel, cancellationToken) is INamedTypeSymbol namedType && 352foreach (var metadataType in metadataTypes) 361foreach (var derivedType in symbolTreeInfo.GetDerivedMetadataTypes(baseTypeName, compilation, cancellationToken)) 378foreach (var type in foundTypes) 385foreach (var type in foundTypes) 389private static void AddRange(SymbolSet foundTypes, SymbolSet currentTypes, Func<INamedTypeSymbol, bool> shouldContinueSearching) 392foreach (var type in foundTypes) 400INamedTypeSymbol type, 513private static bool TypeHasBaseTypeInSet(INamedTypeSymbol type, SymbolSet set) 515var baseType = type.BaseType?.OriginalDefinition; 519private static bool TypeHasInterfaceInSet(INamedTypeSymbol type, SymbolSet set) 521foreach (var interfaceType in type.Interfaces) 540Func<INamedTypeSymbol, bool> shouldContinueSearching) 547foreach (var derivedType in tempBuffer) 561public static PooledDisposer<PooledHashSet<INamedTypeSymbol>> GetSymbolSet(out SymbolSet instance) 566return new PooledDisposer<PooledHashSet<INamedTypeSymbol>>(pooledInstance);
FindSymbols\FindReferences\DependentTypeFinder_DerivedClasses.cs (5)
15private static Task<ImmutableArray<INamedTypeSymbol>> FindDerivedClassesInCurrentProcessAsync( 16INamedTypeSymbol type, 24static bool TypeMatches(INamedTypeSymbol type, HashSet<INamedTypeSymbol> set) 34return SpecializedTasks.EmptyImmutableArray<INamedTypeSymbol>();
FindSymbols\FindReferences\DependentTypeFinder_DerivedInterfaces.cs (5)
15private static Task<ImmutableArray<INamedTypeSymbol>> FindDerivedInterfacesInCurrentProcessAsync( 16INamedTypeSymbol type, 25static bool TypeMatches(INamedTypeSymbol type, HashSet<INamedTypeSymbol> set) 35return SpecializedTasks.EmptyImmutableArray<INamedTypeSymbol>();
FindSymbols\FindReferences\DependentTypeFinder_ImplementingTypes.cs (4)
14private static async Task<ImmutableArray<INamedTypeSymbol>> FindImplementingTypesInCurrentProcessAsync( 15INamedTypeSymbol type, 37static bool TypeMatches(INamedTypeSymbol type, HashSet<INamedTypeSymbol> set)
FindSymbols\FindReferences\DependentTypeFinder_Remote.cs (7)
18public static async Task<ImmutableArray<INamedTypeSymbol>> FindTypesAsync( 19INamedTypeSymbol type, 52public static async Task<ImmutableArray<INamedTypeSymbol>> FindTypesInCurrentProcessAsync( 53INamedTypeSymbol type, 82private static async Task<ImmutableArray<INamedTypeSymbol>> RehydrateAsync(Solution solution, ImmutableArray<SerializableSymbolAndProjectId> values, CancellationToken cancellationToken) 84using var _ = ArrayBuilder<INamedTypeSymbol>.GetInstance(out var builder); 89if (rehydrated is INamedTypeSymbol namedType)
FindSymbols\FindReferences\Finders\AbstractReferenceFinder.cs (1)
788var containingType = definition.ContainingType;
FindSymbols\FindReferences\Finders\AbstractReferenceFinder_GlobalSuppressions.cs (4)
68var suppressMessageAttribute = semanticModel.Compilation.SuppressMessageAttributeType(); 97INamedTypeSymbol suppressMessageAttribute, CancellationToken cancellationToken, out int offsetOfReferenceInToken) 154INamedTypeSymbol suppressMessageAttribute, 197var attributeSymbol = semanticModel.GetSymbolInfo(attributeNode, cancellationToken).Symbol?.ContainingType;
FindSymbols\FindReferences\Finders\ConstructorInitializerSymbolReferenceFinder.cs (2)
96var containingType = semanticModel.GetEnclosingNamedType(token.SpanStart, cancellationToken); 101var containingType = semanticModel.GetEnclosingNamedType(token.SpanStart, cancellationToken);
FindSymbols\FindReferences\Finders\ConstructorSymbolReferenceFinder.cs (3)
51var containingType = symbol.ContainingType; 65var containingType = symbol.ContainingType; 123var containingType = methodSymbol.ContainingType;
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)
70ContainingType: INamedTypeSymbol { Name: "Program", ContainingNamespace.IsGlobalNamespace: true }
FindSymbols\FindReferences\Finders\NamedTypeSymbolReferenceFinder.cs (12)
18internal sealed class NamedTypeSymbolReferenceFinder : AbstractReferenceFinder<INamedTypeSymbol> 20protected override bool CanFind(INamedTypeSymbol symbol) 23protected override Task<ImmutableArray<string>> DetermineGlobalAliasesAsync(INamedTypeSymbol symbol, Project project, CancellationToken cancellationToken) 29INamedTypeSymbol symbol, 54INamedTypeSymbol symbol, 109INamedTypeSymbol namedType, 142INamedTypeSymbol namedType, 159INamedTypeSymbol namedType, FindReferencesDocumentState state, Action<FinderLocation, TData> processResult, TData processResultData, string alias, CancellationToken cancellationToken) 177INamedTypeSymbol symbol, 192INamedTypeSymbol namedType, 209INamedTypeSymbol symbol, 229INamedTypeSymbol namedType,
FindSymbols\FindReferences\Finders\ParameterSymbolReferenceFinder.cs (1)
210var containingType = containingMethod.ContainingType;
FindSymbols\FindReferences\FindReferencesSearchEngine.SymbolSet.cs (1)
116if (aliasSymbol.Target is INamedTypeSymbol or INamespaceSymbol)
FindSymbols\SymbolFinder.cs (1)
228if (linkedSymbol is INamedTypeSymbol linkedNamedType &&
FindSymbols\SymbolFinder_Helpers.cs (9)
97using var _ = PooledDictionary<INamedTypeSymbol, INamedTypeSymbol>.GetInstance(out var equivalentTypesWithDifferingAssemblies); 122Dictionary<INamedTypeSymbol, INamedTypeSymbol> equivalentTypesWithDifferingAssemblies) 155INamedTypeSymbol candidate, 156INamedTypeSymbol forwardedTo) 178var resolvedType = assembly.ResolveForwardedType(candidateFullMetadataName); 187private static INamedTypeSymbol GetOridinalUnderlyingType(INamedTypeSymbol type)
FindSymbols\SymbolFinder_Hierarchy.cs (26)
48var containingType = symbol.ContainingType; 62foreach (var type in derivedTypes) 143var containingType = symbol.ContainingType.OriginalDefinition; 151foreach (var type in allTypes) 153foreach (var interfaceType in type.AllInterfaces) 212public static Task<IEnumerable<INamedTypeSymbol>> FindDerivedClassesAsync( 213INamedTypeSymbol type, Solution solution, IImmutableSet<Project>? projects, CancellationToken cancellationToken) 230public static async Task<IEnumerable<INamedTypeSymbol>> FindDerivedClassesAsync( 231INamedTypeSymbol type, Solution solution, bool transitive = true, IImmutableSet<Project>? projects = null, CancellationToken cancellationToken = default) 243/// <inheritdoc cref="FindDerivedClassesArrayAsync(INamedTypeSymbol, Solution, bool, IImmutableSet{Project}, CancellationToken)"/> 245internal static async Task<ImmutableArray<INamedTypeSymbol>> FindDerivedClassesArrayAsync( 246INamedTypeSymbol type, Solution solution, bool transitive, IImmutableSet<Project>? projects = null, CancellationToken cancellationToken = default) 266public static async Task<IEnumerable<INamedTypeSymbol>> FindDerivedInterfacesAsync( 267INamedTypeSymbol type, Solution solution, bool transitive = true, IImmutableSet<Project>? projects = null, CancellationToken cancellationToken = default) 279/// <inheritdoc cref="FindDerivedInterfacesAsync(INamedTypeSymbol, Solution, bool, IImmutableSet{Project}, CancellationToken)"/> 281internal static async Task<ImmutableArray<INamedTypeSymbol>> FindDerivedInterfacesArrayAsync( 282INamedTypeSymbol type, Solution solution, bool transitive, IImmutableSet<Project>? projects = null, CancellationToken cancellationToken = default) 302public static async Task<IEnumerable<INamedTypeSymbol>> FindImplementationsAsync( 303INamedTypeSymbol type, Solution solution, bool transitive = true, IImmutableSet<Project>? projects = null, CancellationToken cancellationToken = default) 315/// <inheritdoc cref="FindImplementationsAsync(INamedTypeSymbol, Solution, bool, IImmutableSet{Project}, CancellationToken)"/> 317internal static async Task<ImmutableArray<INamedTypeSymbol>> FindImplementationsArrayAsync( 318INamedTypeSymbol type, Solution solution, bool transitive, IImmutableSet<Project>? projects = null, CancellationToken cancellationToken = default) 329/// cref="INamedTypeSymbol"/> this will be both immediate and transitive implementations. 342if (symbol is INamedTypeSymbol namedTypeSymbol) 361var containingType = symbol.ContainingType.OriginalDefinition; 371foreach (var t in allTypes)
FindSymbols\SymbolTree\SymbolTreeInfo.cs (3)
498public ImmutableArray<INamedTypeSymbol> GetDerivedMetadataTypes( 504using var builder = TemporaryArray<INamedTypeSymbol>.Empty; 514if (symbol is INamedTypeSymbol namedType)
FindSymbols\SymbolTree\SymbolTreeInfo_Source.cs (3)
187if (symbol is INamedTypeSymbol namedType) 210else if (symbol is INamedTypeSymbol namedTypeSymbol) 214foreach (var childType in namedTypeSymbol.GetTypeMembers())
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)
40protected static ISet<INamedTypeSymbol> ComputeOuterTypes(SyntaxContext context, CancellationToken cancellationToken) 45var containingType = enclosingSymbol.GetContainingTypeOrThis(); 52return SpecializedCollections.EmptySet<INamedTypeSymbol>(); 59private ImmutableArray<INamedTypeSymbol> _lazyOuterTypesAndBases; 60private ImmutableArray<INamedTypeSymbol> _lazyEnclosingTypeBases; 74var namedType = (INamedTypeSymbol)symbol; 126var containingTypeOriginalDefinition = symbol.ContainingType.OriginalDefinition; 141private ImmutableArray<INamedTypeSymbol> GetOuterTypesAndBases() 153private ImmutableArray<INamedTypeSymbol> GetEnclosingTypeBases() 157var 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\RenameUtilities.cs (2)
196var containingType = symbol.ContainingType; 338if (symbol is INamedTypeSymbol { IsImplicitlyDeclared: true, TypeKind: TypeKind.Delegate, AssociatedSymbol: not null } typeSymbol)
Rename\SymbolicRenameLocations.ReferenceProcessing.cs (5)
81case INamedTypeSymbol nt: 107((INamedTypeSymbol)referencedSymbol.ContainingSymbol).TypeKind == TypeKind.Interface && 126&& possibleType is INamedTypeSymbol namedType 204var 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) 188var asyncEnumerableType = compilation.IAsyncEnumerableOfTType(); 202foreach (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\Compilers\Core\Portable\SourceGeneration\GeneratedCodeUtilities.cs (1)
19ISymbol symbol, INamedTypeSymbol generatedCodeAttribute)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Extensions\OperationExtensions.cs (2)
405var notImplementedExceptionType = compilation.NotImplementedExceptionType(); 454static bool IsThrowNotImplementedOperation(INamedTypeSymbol notImplementedExceptionType, IOperation? operation)
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); 177var enumerableType = semanticModel.Compilation.IEnumerableOfTType();
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\NamingStyles\NamingStyleRules.cs (3)
65var containingType = symbol.ContainingType; 87var containingType = symbol.ContainingType; 90foreach (var implementedInterface in implementedInterfaces)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Services\SemanticFacts\ISemanticFacts.cs (4)
67bool LastEnumValueHasInitializer(INamedTypeSymbol namedTypeSymbol); 88bool IsPartial(INamedTypeSymbol typeSymbol, CancellationToken cancellationToken); 107bool IsInExpressionTree(SemanticModel semanticModel, SyntaxNode node, [NotNullWhen(true)] INamedTypeSymbol? expressionType, CancellationToken cancellationToken); 122bool TryGetPrimaryConstructor(INamedTypeSymbol typeSymbol, [NotNullWhen(true)] out IMethodSymbol? primaryConstructor);
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\SymbolKey\SymbolKey.AnonymousFunctionOrDelegateSymbolKey.cs (1)
65var anonymousDelegate = methodSymbol.AssociatedAnonymousDelegate;
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\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\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\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\SymbolKey\SymbolKey.FunctionPointerTypeSymbolKey.cs (2)
37var callingConventionModifiers = ImmutableArray<INamedTypeSymbol>.Empty; 40using var modifiersBuilder = reader.ReadSymbolKeyArray<IFunctionPointerTypeSymbol, INamedTypeSymbol>(
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\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\SymbolKey\SymbolKey.ParameterSymbolKey.cs (2)
64var delegateInvoke = (eventSymbol.Type as INamedTypeSymbol)?.DelegateInvokeMethod; 73case INamedTypeSymbol { IsExtension: true, ExtensionParameter: { } extensionParameter }:
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\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\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Utilities\AbstractSpeculationAnalyzer.cs (5)
417var type = methodSymbol.ContainingType; 418var newType = newMethodSymbol.ContainingType; 491private static bool EnumTypesAreCompatible(INamedTypeSymbol type1, INamedTypeSymbol type2) 992var newSymbolContainingType = newSymbol.ContainingType;
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Utilities\EnumValueUtilities.cs (1)
21public static object GetNextEnumValue(INamedTypeSymbol enumType)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Compilation\CompilationExtensions.cs (78)
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? EventArgsType(this Compilation compilation) 129public static INamedTypeSymbol? NotImplementedExceptionType(this Compilation compilation) 132public static INamedTypeSymbol? EqualityComparerOfTType(this Compilation compilation) 135public static INamedTypeSymbol? ActionType(this Compilation compilation) 138public static INamedTypeSymbol? ExpressionOfTType(this Compilation compilation) 141public static INamedTypeSymbol? EditorBrowsableAttributeType(this Compilation compilation) 144public static INamedTypeSymbol? EditorBrowsableStateType(this Compilation compilation) 147public static INamedTypeSymbol? TaskType(this Compilation compilation) 150public static INamedTypeSymbol? TaskOfTType(this Compilation compilation) 153public static INamedTypeSymbol? ValueTaskType(this Compilation compilation) 156public static INamedTypeSymbol? ValueTaskOfTType(this Compilation compilation) 159public static INamedTypeSymbol? IEnumerableType(this Compilation compilation) 162public static INamedTypeSymbol? IEnumerableOfTType(this Compilation compilation) 165public static INamedTypeSymbol? IEnumeratorOfTType(this Compilation compilation) 168public static INamedTypeSymbol? IListOfTType(this Compilation compilation) 171public static INamedTypeSymbol? IReadOnlyListOfTType(this Compilation compilation) 174public static INamedTypeSymbol? ISetOfTType(this Compilation compilation) 177public static INamedTypeSymbol? IReadOnlySetOfTType(this Compilation compilation) 180public static INamedTypeSymbol? IAsyncEnumerableOfTType(this Compilation compilation) 183public static INamedTypeSymbol? IAsyncEnumeratorOfTType(this Compilation compilation) 186public static INamedTypeSymbol? ImmutableArrayOfTType(this Compilation compilation) 189public static INamedTypeSymbol? SerializableAttributeType(this Compilation compilation) 192public static INamedTypeSymbol? CoClassType(this Compilation compilation) 195public static INamedTypeSymbol? ComAliasNameAttributeType(this Compilation compilation) 198public static INamedTypeSymbol? SuppressMessageAttributeType(this Compilation compilation) 201public static INamedTypeSymbol? TupleElementNamesAttributeType(this Compilation compilation) 204public static INamedTypeSymbol? NativeIntegerAttributeType(this Compilation compilation) 207public static INamedTypeSymbol? DynamicAttributeType(this Compilation compilation) 210public static INamedTypeSymbol? LazyOfTType(this Compilation compilation) 213public static INamedTypeSymbol? ISerializableType(this Compilation compilation) 216public static INamedTypeSymbol? SerializationInfoType(this Compilation compilation) 219public static INamedTypeSymbol? StreamingContextType(this Compilation compilation) 222public static INamedTypeSymbol? OnDeserializingAttribute(this Compilation compilation) 225public static INamedTypeSymbol? OnDeserializedAttribute(this Compilation compilation) 228public static INamedTypeSymbol? OnSerializingAttribute(this Compilation compilation) 231public static INamedTypeSymbol? OnSerializedAttribute(this Compilation compilation) 234public static INamedTypeSymbol? ComRegisterFunctionAttribute(this Compilation compilation) 237public static INamedTypeSymbol? ComUnregisterFunctionAttribute(this Compilation compilation) 240public static INamedTypeSymbol? ConditionalAttribute(this Compilation compilation) 243public static INamedTypeSymbol? ObsoleteAttribute(this Compilation compilation) 246public static INamedTypeSymbol? SystemCompositionImportingConstructorAttribute(this Compilation compilation) 249public static INamedTypeSymbol? SystemComponentModelCompositionImportingConstructorAttribute(this Compilation compilation) 252public static INamedTypeSymbol? SystemIDisposableType(this Compilation compilation) 255public static INamedTypeSymbol? NotNullAttribute(this Compilation compilation) 258public static INamedTypeSymbol? MaybeNullAttribute(this Compilation compilation) 261public static INamedTypeSymbol? MaybeNullWhenAttribute(this Compilation compilation) 264public static INamedTypeSymbol? AllowNullAttribute(this Compilation compilation) 267public static INamedTypeSymbol? DisallowNullAttribute(this Compilation compilation) 270public static INamedTypeSymbol? DataMemberAttribute(this Compilation compilation) 273public static INamedTypeSymbol? DataContractAttribute(this Compilation compilation) 276public static INamedTypeSymbol? AsyncMethodBuilderAttribute(this Compilation compilation) 279public static INamedTypeSymbol? CancellationTokenType(this Compilation compilation) 282public static INamedTypeSymbol? ValueTupleType(this Compilation compilation, int arity) 285public static INamedTypeSymbol? ListOfTType(this Compilation compilation) 288public static INamedTypeSymbol? ReadOnlySpanOfTType(this Compilation compilation) 291public static INamedTypeSymbol? SpanOfTType(this Compilation compilation) 294public static INamedTypeSymbol? InterpolatedStringHandlerAttributeType(this Compilation compilation) 322public static INamedTypeSymbol? GetBestTypeByMetadataName(this Compilation compilation, string fullyQualifiedMetadataName) 324INamedTypeSymbol? type = null; 326foreach (var currentType in compilation.GetTypesByMetadataName(fullyQualifiedMetadataName)) 361foreach (var candidateTopLevelType in compilation.SourceModule.GlobalNamespace.GetTypeMembers(WellKnownMemberNames.TopLevelStatementsEntryPointTypeName, arity: 0)) 373public static INamedTypeSymbol? TryGetCallingConventionSymbol(this Compilation compilation, string callingConvention)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\IMethodSymbolExtensions.cs (4)
44public static bool HasEventHandlerSignature(this IMethodSymbol method, [NotNullWhen(returnValue: true)] INamedTypeSymbol? eventArgsType) 103public static bool IsEntryPoint(this IMethodSymbol methodSymbol, INamedTypeSymbol? taskType, INamedTypeSymbol? genericTaskType) 119if (method.ReturnType is not INamedTypeSymbol { Arity: 0 })
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\INamedTypeSymbolExtensions.cs (73)
23public static IEnumerable<INamedTypeSymbol> GetBaseTypesAndThis(this INamedTypeSymbol? namedType) 25var current = namedType; 33public static ImmutableArray<ITypeParameterSymbol> GetAllTypeParameters(this INamedTypeSymbol? symbol) 39public static ImmutableArray<ITypeSymbol> GetAllTypeArguments(this INamedTypeSymbol? symbol) 45private static Stack<INamedTypeSymbol> GetContainmentStack(INamedTypeSymbol? symbol) 47var stack = new Stack<INamedTypeSymbol>(); 48for (var current = symbol; current != null; current = current.ContainingType) 56public static bool IsContainedWithin([NotNullWhen(returnValue: true)] this INamedTypeSymbol? symbol, INamedTypeSymbol outer) 59for (var current = symbol; current != null; current = current.ContainingType) 70public static ISymbol? FindImplementationForAbstractMember(this INamedTypeSymbol? type, ISymbol symbol) 81private static bool ImplementationExists(INamedTypeSymbol classOrStructType, ISymbol member) 85this INamedTypeSymbol classOrStructType, 87Func<INamedTypeSymbol, ISymbol, bool> isValidImplementation, 117private static bool IsInterfacePropertyImplemented(INamedTypeSymbol classOrStructType, IPropertySymbol propertySymbol) 125static bool IsAccessorImplemented(IMethodSymbol? accessor, INamedTypeSymbol classOrStructType) 131private static bool IsAbstractPropertyImplemented(INamedTypeSymbol classOrStructType, IPropertySymbol propertySymbol) 154this INamedTypeSymbol classOrStructType, 156Func<INamedTypeSymbol, ISymbol, bool> isValid, 179public static ImmutableArray<(INamedTypeSymbol type, ImmutableArray<ISymbol> members)> GetAllUnimplementedMembers( 180this INamedTypeSymbol classOrStructType, 181IEnumerable<INamedTypeSymbol> interfaces, 197static ImmutableArray<ISymbol> GetImplicitlyImplementableMembers(INamedTypeSymbol type, ISymbol within) 249public static ImmutableArray<(INamedTypeSymbol type, ImmutableArray<ISymbol> members)> GetAllUnimplementedMembersInThis( 250this INamedTypeSymbol classOrStructType, 251IEnumerable<INamedTypeSymbol> interfacesOrAbstractClasses, 267public static ImmutableArray<(INamedTypeSymbol type, ImmutableArray<ISymbol> members)> GetAllUnimplementedMembersInThis( 268this INamedTypeSymbol classOrStructType, 269IEnumerable<INamedTypeSymbol> interfacesOrAbstractClasses, 270Func<INamedTypeSymbol, ISymbol, ImmutableArray<ISymbol>> interfaceMemberGetter, 286public static ImmutableArray<(INamedTypeSymbol type, ImmutableArray<ISymbol> members)> GetAllUnimplementedExplicitMembers( 287this INamedTypeSymbol classOrStructType, 288IEnumerable<INamedTypeSymbol> interfaces, 300private static ImmutableArray<ISymbol> GetExplicitlyImplementableMembers(INamedTypeSymbol type, ISymbol within) 327private static ImmutableArray<(INamedTypeSymbol type, ImmutableArray<ISymbol> members)> GetAllUnimplementedMembers( 328this INamedTypeSymbol classOrStructType, 329IEnumerable<INamedTypeSymbol> interfacesOrAbstractClasses, 330Func<INamedTypeSymbol, ISymbol, Func<INamedTypeSymbol, ISymbol, bool>, CancellationToken, bool> isImplemented, 331Func<INamedTypeSymbol, ISymbol, bool> isValidImplementation, 332Func<INamedTypeSymbol, ISymbol, ImmutableArray<ISymbol>> interfaceMemberGetter, 361private static ImmutableArray<INamedTypeSymbol> GetTypesToImplement( 362INamedTypeSymbol classOrStructType, 363IEnumerable<INamedTypeSymbol> interfacesOrAbstractClasses, 372private static ImmutableArray<INamedTypeSymbol> GetAbstractClassesToImplement( 373IEnumerable<INamedTypeSymbol> abstractClasses) 378private static ImmutableArray<INamedTypeSymbol> GetInterfacesToImplement( 379INamedTypeSymbol classOrStructType, 380IEnumerable<INamedTypeSymbol> interfaces, 387var interfacesToImplement = new List<INamedTypeSymbol>( 392var baseType = classOrStructType.BaseType; 403this INamedTypeSymbol classOrStructType, 404INamedTypeSymbol interfaceType, 405Func<INamedTypeSymbol, ISymbol, Func<INamedTypeSymbol, ISymbol, bool>, CancellationToken, bool> isImplemented, 406Func<INamedTypeSymbol, ISymbol, bool> isValidImplementation, 407Func<INamedTypeSymbol, ISymbol, ImmutableArray<ISymbol>> interfaceMemberGetter, 449this INamedTypeSymbol attributeSymbol, 455var systemAttributeType = compilation.AttributeType(); 457foreach (var type in attributeSymbol.GetBaseTypesAndThis()) 517private static ImmutableArray<ISymbol> GetMembers(INamedTypeSymbol type, ISymbol within) 531this INamedTypeSymbol containingType, CancellationToken cancellationToken) 548foreach (var type in baseTypes) 569Dictionary<ISymbol, int> result, INamedTypeSymbol containingType, CancellationToken cancellationToken) 590Dictionary<ISymbol, int> result, INamedTypeSymbol containingType, CancellationToken cancellationToken) 612Dictionary<ISymbol, int> result, INamedTypeSymbol containingType, 613INamedTypeSymbol type, ref int index, CancellationToken cancellationToken) 626private static bool IsOverridable(ISymbol member, INamedTypeSymbol containingType) 669public static INamedTypeSymbol TryConstruct(this INamedTypeSymbol type, ITypeSymbol[] typeArguments) 672public static bool IsCollectionBuilderAttribute([NotNullWhen(true)] this INamedTypeSymbol? type)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\INamespaceOrTypeSymbolExtensions.cs (3)
90public static IEnumerable<INamedTypeSymbol> GetAllTypes( 106var namedType = (INamedTypeSymbol)current;
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\ISymbolExtensions.cs (15)
98foreach (var baseType in symbol.ContainingType.GetBaseTypes()) 107bool TryFindLooseMatch(ISymbol symbol, INamedTypeSymbol baseType, [NotNullWhen(true)] out ISymbol? looseMatch) 156foreach (var iface in symbol.ContainingType.AllInterfaces) 214public static INamedTypeSymbol? GetContainingTypeOrThis(this ISymbol symbol) 216if (symbol is INamedTypeSymbol namedType) 309=> symbol is INamedTypeSymbol { IsAnonymousType: true }; 352SymbolKind.NamedType => ((INamedTypeSymbol)symbol).Arity, 433INamedTypeSymbol nt => nt.TypeParameters, 454INamedTypeSymbol nt => nt.TypeArguments, 463var containingType = symbol.ContainingType; 504var delegateType = compilation.GetTypeByMetadataName(method.ReturnsVoid 533=> symbol is INamedTypeSymbol { IsStatic: true }; 545foreach (var type in namespaceOrType.GetAllTypes(cancellationToken)) 559return ((INamedTypeSymbol)symbol).GetMembers().OfType<IPropertySymbol>().Where(p => p.CanBeReferencedByName); 809public static bool HasAttribute([NotNullWhen(true)] this ISymbol? symbol, [NotNullWhen(true)] INamedTypeSymbol? attributeClass)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\ISymbolExtensions.RequiresUnsafeModifierVisitor.cs (1)
56public override bool VisitNamedType(INamedTypeSymbol symbol)
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\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\ITypeGenerator.cs (1)
13ITypeSymbol Construct(INamedTypeSymbol namedType, ITypeSymbol[] typeArguments);
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\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\ITypeSymbolExtensions.AnonymousTypeRemover.cs (1)
42public override ITypeSymbol VisitNamedType(INamedTypeSymbol symbol)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\ITypeSymbolExtensions.CollectTypeParameterSymbolsVisitor.cs (1)
57public override void VisitNamedType(INamedTypeSymbol symbol)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\ITypeSymbolExtensions.CompilationTypeGenerator.cs (1)
19public ITypeSymbol Construct(INamedTypeSymbol namedType, ITypeSymbol[] typeArguments)
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) 315INamedTypeSymbol n => ContainsAnonymousType(n), 320private static bool ContainsAnonymousType(INamedTypeSymbol type) 410public static INamedTypeSymbol? GetDelegateType(this ITypeSymbol? typeSymbol, Compilation compilation) 414var expressionOfT = compilation.ExpressionOfTType(); 417var typeArgument = ((INamedTypeSymbol)typeSymbol).TypeArguments[0]; 418return typeArgument as INamedTypeSymbol; 423return typeSymbol as INamedTypeSymbol; 576var n2 = t2 as INamedTypeSymbol; 578if (t1 is not INamedTypeSymbol n1) 628public static bool IsEnumType([NotNullWhen(true)] this ITypeSymbol? type, [NotNullWhen(true)] out INamedTypeSymbol? enumType) 632enumType = (INamedTypeSymbol)type; 724if (type is not INamedTypeSymbol 777=> type is INamedTypeSymbol 785=> symbol is INamedTypeSymbol 793=> type is INamedTypeSymbol namedType &&
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\ITypeSymbolExtensions.MinimalAccessibilityVisitor.cs (2)
42foreach (var callingConventionType in symbol.Signature.UnmanagedCallingConventionTypes) 50public override Accessibility VisitNamedType(INamedTypeSymbol symbol)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\ITypeSymbolExtensions.SubstituteTypesVisitor.cs (1)
58public override ITypeSymbol VisitNamedType(INamedTypeSymbol symbol)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\ITypeSymbolExtensions.UnavailableTypeParameterRemover.cs (1)
43public override ITypeSymbol VisitNamedType(INamedTypeSymbol symbol)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\ITypeSymbolExtensions.UnnamedErrorTypeRemover.cs (1)
42public override ITypeSymbol VisitNamedType(INamedTypeSymbol symbol)
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\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\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\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\SymbolEquivalenceComparer.ParameterSymbolEqualityComparer.cs (2)
23Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies,
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\SymbolEquivalenceComparer.SignatureTypeSymbolEquivalenceComparer.cs (2)
18public bool Equals(ITypeSymbol? x, ITypeSymbol? y, Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies)
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\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\AbstractFlagsEnumGenerator.cs (10)
15protected abstract SyntaxNode CreateExplicitlyCastedLiteralValue(INamedTypeSymbol enumType, SpecialType underlyingSpecialType, object constantValue); 16protected abstract bool IsValidName(INamedTypeSymbol enumType, string name); 20public SyntaxNode CreateEnumConstantValue(INamedTypeSymbol enumType, object constantValue) 36private static bool IsFlagsEnum(INamedTypeSymbol typeSymbol) 48var type = ctor.ContainingType; 61private SyntaxNode CreateFlagsEnumConstantValue(INamedTypeSymbol enumType, object constantValue) 72INamedTypeSymbol enumType, 138IFieldSymbol field, INamedTypeSymbol enumType, SpecialType underlyingSpecialType) 168INamedTypeSymbol enumType, 185private SyntaxNode CreateNonFlagsEnumConstantValue(INamedTypeSymbol enumType, object constantValue)
src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\CodeGenerationHelpers.cs (2)
25var exceptionType = compilation.GetTypeByMetadataName(exceptionMetadataName); 150public static IEnumerable<ISymbol> GetMembers(INamedTypeSymbol namedType)
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\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\CodeGenerator.cs (8)
29public static Task<Document> AddEventDeclarationAsync(CodeGenerationSolutionContext context, INamedTypeSymbol destination, IEventSymbol @event, CancellationToken cancellationToken) 36public static Task<Document> AddFieldDeclarationAsync(CodeGenerationSolutionContext context, INamedTypeSymbol destination, IFieldSymbol field, CancellationToken cancellationToken) 43public static Task<Document> AddMethodDeclarationAsync(CodeGenerationSolutionContext context, INamedTypeSymbol destination, IMethodSymbol method, CancellationToken cancellationToken) 50public static Task<Document> AddPropertyDeclarationAsync(CodeGenerationSolutionContext context, INamedTypeSymbol destination, IPropertySymbol property, CancellationToken cancellationToken) 57public static Task<Document> AddNamedTypeDeclarationAsync(CodeGenerationSolutionContext context, INamedTypeSymbol destination, INamedTypeSymbol namedType, CancellationToken cancellationToken) 64public static Task<Document> AddNamedTypeDeclarationAsync(CodeGenerationSolutionContext context, INamespaceSymbol destination, INamedTypeSymbol namedType, CancellationToken cancellationToken) 85public static Task<Document> AddMemberDeclarationsAsync(CodeGenerationSolutionContext context, INamedTypeSymbol destination, IEnumerable<ISymbol> members, CancellationToken cancellationToken)
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\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\INamedTypeSymbolExtensions.cs (2)
11public static CodeGenerationAbstractNamedTypeSymbol ToCodeGenerationSymbol(this INamedTypeSymbol namedType) 32namedType.GetMembers().WhereAsArray(s => s is not INamedTypeSymbol),
src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\Symbols\CodeGenerationAbstractMethodSymbol.cs (3)
23INamedTypeSymbol containingType, 98public INamedTypeSymbol AssociatedAnonymousDelegate => null; 108public ImmutableArray<INamedTypeSymbol> UnmanagedCallingConventionTypes => [];
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\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\Symbols\CodeGenerationAttributeData.cs (2)
13INamedTypeSymbol attributeClass, 20protected override INamedTypeSymbol CommonAttributeClass => attributeClass;
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\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\Symbols\CodeGenerationConstructorSymbol.cs (1)
11INamedTypeSymbol? containingType,
src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\Symbols\CodeGenerationConversionSymbol.cs (1)
11INamedTypeSymbol? containingType,
src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\Symbols\CodeGenerationDestructorSymbol.cs (1)
10INamedTypeSymbol? containingType,
src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\Symbols\CodeGenerationEventSymbol.cs (1)
12INamedTypeSymbol? containingType,
src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\Symbols\CodeGenerationFieldSymbol.cs (1)
13INamedTypeSymbol containingType,
src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\Symbols\CodeGenerationMethodSymbol.cs (1)
23INamedTypeSymbol containingType,
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\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\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\Symbols\CodeGenerationNamespaceSymbol.cs (1)
57public static INamedTypeSymbol ImplicitType => null;
src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\Symbols\CodeGenerationOperatorSymbol.cs (1)
11INamedTypeSymbol? containingType,
src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\Symbols\CodeGenerationParameterSymbol.cs (1)
13INamedTypeSymbol containingType,
src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\Symbols\CodeGenerationPropertySymbol.cs (1)
13INamedTypeSymbol containingType,
src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\Symbols\CodeGenerationSymbol.cs (3)
27public INamedTypeSymbol ContainingType { get; protected set; } 31INamedTypeSymbol containingType, 162public ImmutableArray<AttributeData> GetAttributes(INamedTypeSymbol attributeType)
src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\Symbols\CodeGenerationTypeParameterSymbol.cs (3)
12INamedTypeSymbol containingType, 80public INamedTypeSymbol DeclaringType 84return this.ContainingSymbol as INamedTypeSymbol;
src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\Symbols\CodeGenerationTypeSymbol.cs (4)
14INamedTypeSymbol containingType, 27public virtual INamedTypeSymbol BaseType => null; 29public virtual ImmutableArray<INamedTypeSymbol> Interfaces 32public ImmutableArray<INamedTypeSymbol> AllInterfaces
src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\TypeGenerator.cs (1)
21public ITypeSymbol Construct(INamedTypeSymbol namedType, ITypeSymbol[] typeArguments)
src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\Editing\ImportAdderService.cs (2)
202foreach (var namedType in SymbolAnnotation.GetSymbols(annotation, model.Compilation).OfType<INamedTypeSymbol>())
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\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\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\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\Extensions\KnownTypes.cs (8)
9public readonly INamedTypeSymbol? TaskType = compilation.TaskType(); 10public readonly INamedTypeSymbol? TaskOfTType = compilation.TaskOfTType(); 11public readonly INamedTypeSymbol? ValueTaskType = compilation.ValueTaskType(); 12public readonly INamedTypeSymbol? ValueTaskOfTType = compilation.ValueTaskOfTType(); 14public readonly INamedTypeSymbol? IEnumerableOfTType = compilation.IEnumerableOfTType(); 15public readonly INamedTypeSymbol? IEnumeratorOfTType = compilation.IEnumeratorOfTType(); 17public readonly INamedTypeSymbol? IAsyncEnumerableOfTType = compilation.IAsyncEnumerableOfTType(); 18public readonly INamedTypeSymbol? IAsyncEnumeratorOfTType = compilation.IAsyncEnumeratorOfTType();
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\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\Extensions\SyntaxGeneratorExtensions_CreateEqualsMethod.cs (11)
32INamedTypeSymbol containingType, 63INamedTypeSymbol containingType, 65INamedTypeSymbol constructedEquatableType, 109INamedTypeSymbol containingType, 218var iequatableType = compilation.GetTypeByMetadataName(typeof(IEquatable<>).FullName); 271INamedTypeSymbol containingType, 382private static bool ImplementsIEquatable(ITypeSymbol memberType, INamedTypeSymbol iequatableType) 388var constructed = iequatableType.Construct(memberType); 433private static bool HasExistingBaseEqualsMethod(INamedTypeSymbol containingType) 456INamedTypeSymbol? containingType, 490INamedTypeSymbol? containingType,
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\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\Extensions\SyntaxGeneratorExtensions_Negate.cs (1)
446var containingType = property.ContainingType;
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\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\LanguageServices\SemanticsFactsService\AbstractSemanticFactsService.cs (7)
127var valueTaskType = compilation.ValueTaskType(); 163(INamedTypeSymbol?, IMethodSymbol?) GetIDisposableInterfaceAndDisposeMethod(string typeName, string methodName) 165var 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\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\LanguageServices\SyntaxGeneratorInternalExtensions\SyntaxGeneratorInternal.cs (1)
117public abstract SyntaxNode DeclarationPattern(INamedTypeSymbol type, string name);
src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\LanguageServices\TypeInferenceService\AbstractTypeInferenceService.AbstractTypeInferrer.cs (1)
102protected static IEnumerable<TypeInferenceInfo> GetCollectionElementType(INamedTypeSymbol type)
src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\Simplification\SimplificationHelpers.cs (1)
80var typeSymbol = semanticModel.Compilation.GetSpecialType(specialType);
Microsoft.CodeAnalysis.Workspaces.MSBuild.UnitTests (6)
VisualStudioMSBuildWorkspaceTests.cs (6)
2522var symbol = comp.GetTypeByMetadataName("System.Console"); 2540var symbol = comp.GetTypeByMetadataName("CSharpProject.CSharpClass"); 2558var symbol = comp.GetTypeByMetadataName("VisualBasicProject.VisualBasicClass"); 2576var cssymbol = cscomp.GetTypeByMetadataName("CSharpProject.CSharpClass"); 2584var vbsymbol = vbcomp.GetTypeByMetadataName("VisualBasicProject.VisualBasicClass"); 2585var parent = vbsymbol.BaseType; // this is the vb imported version of the csharp symbol
Microsoft.CodeAnalysis.Workspaces.UnitTests (30)
FindReferencesTests.cs (8)
339var typeB = comp.GetTypeByMetadataName("B"); 350var typeC = comp.GetTypeByMetadataName("C"); 361var typeA = comp.GetTypeByMetadataName("A"); 506var baseType = portableCompilation.GetTypeByMetadataName("N.BaseClass"); 510var derivedType = normalCompilation.GetTypeByMetadataName("M.DerivedClass"); 572var symbol = compilation.GetTypeByMetadataName("C"); 607var symbol = compilation.GetTypeByMetadataName("C"); 651var symbol = compilation.GetTypeByMetadataName("Test.Dummy+NestedDummy");
SolutionTests\SolutionTests.cs (1)
4014var classC = comp3.GetTypeByMetadataName("C");
SymbolKeyTests.cs (16)
726var type = GetDeclaredSymbols(compilation).OfType<INamedTypeSymbol>().First(); 727var constructed = type.Construct(compilation.GetSpecialType(SpecialType.System_Int32), type.TypeParameters[1]); 747var outer = GetDeclaredSymbols(compilation).OfType<INamedTypeSymbol>().First(s => s.Name == "A"); 748var constructed = outer.Construct(compilation.GetSpecialType(SpecialType.System_String)); 749var inner = constructed.GetTypeMembers().Single(); 771var a = GetDeclaredSymbols(compilation).OfType<INamedTypeSymbol>().Single(s => s.Name == "A"); 772var a_b = a.GetTypeMembers().Single(); 779var a_string = a.Construct(compilation.GetSpecialType(SpecialType.System_String)); 780var a_string_b = a_string.GetTypeMembers().Single(); 786var a_string_b_int = a_string_b.Construct(compilation.GetSpecialType(SpecialType.System_Int32)); 794var a_b_int = a_b.Construct(compilation.GetSpecialType(SpecialType.System_Int32)); 814var typeParameter = GetDeclaredSymbols(compilation).OfType<INamedTypeSymbol>().Where(n => !n.IsImplicitlyDeclared).Single().TypeParameters.Single(); 827var typeParameter = GetDeclaredSymbols(compilation).OfType<INamedTypeSymbol>()
UtilityTest\DocumentationCommentIdTests.cs (5)
335var outerType = compilation.GetTypeByMetadataName("Acme.OuterType`1"); 336var innerType = compilation.GetTypeByMetadataName("Acme.OuterType`1+InnerType`2"); 338var ienum = compilation.GetTypeByMetadataName("System.Collections.Generic.IEnumerable`1"); 339var ienumTP = ienum.Construct(outerType.TypeArguments[0]); 340var intType = compilation.GetSpecialType(SpecialType.System_Int32);
Microsoft.DotNet.CodeAnalysis (1)
Analyzers\ResourceUsageAnalyzer.cs (1)
23INamedTypeSymbol SRSymbol { get; set; }
Microsoft.Extensions.Logging.Generators (14)
LoggerMessageGenerator.Parser.cs (8)
39INamedTypeSymbol? loggerMessageAttribute = _compilation.GetBestTypeByMetadataName(LoggerMessageAttribute); 46INamedTypeSymbol? loggerSymbol = _compilation.GetBestTypeByMetadataName("Microsoft.Extensions.Logging.ILogger"); 53INamedTypeSymbol? logLevelSymbol = _compilation.GetBestTypeByMetadataName("Microsoft.Extensions.Logging.LogLevel"); 60INamedTypeSymbol? exceptionSymbol = _compilation.GetBestTypeByMetadataName("System.Exception"); 67INamedTypeSymbol enumerableSymbol = _compilation.GetSpecialType(SpecialType.System_Collections_IEnumerable); 68INamedTypeSymbol stringSymbol = _compilation.GetSpecialType(SpecialType.System_String); 631INamedTypeSymbol? classType = sm.GetDeclaredSymbol(classDec, _cancellationToken); 633INamedTypeSymbol? currentClassType = classType;
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\libraries\Common\src\Roslyn\SyntaxValueProvider_ForAttributeWithMetadataName.cs (2)
27/// the <see cref="INamedTypeSymbol"/> for <c>"C"</c>. 75/// cref="SyntaxNode"/>s if that node has an attribute on it that binds to a <see cref="INamedTypeSymbol"/> with the
Microsoft.Extensions.Options.SourceGeneration (61)
Emitter.cs (1)
89INamedTypeSymbol? validatorTypeSymbol = compilation.GetBestTypeByMetadataName("System.ComponentModel.DataAnnotations.Validator");
Parser.cs (18)
212if (type is INamedTypeSymbol mt) 245type = ((INamedTypeSymbol)type).TypeArguments[0]; 251return ((INamedTypeSymbol)type).TypeArguments[0]; 255foreach (var implementingInterface in type.AllInterfaces) 273modelType = ((INamedTypeSymbol)modelType).TypeArguments[0]; 278var baseType = modelType.BaseType; 352var attributeType = attribute.AttributeClass!; 368var transValidatorType = attribute.ConstructorArguments[0].Value as INamedTypeSymbol; 431var enumerationValidatorType = attribute.ConstructorArguments[0].Value as INamedTypeSymbol; 639typeSymbol = ((INamedTypeSymbol)typeSymbol).TypeArguments[0]; 661if (argumentValue is INamedTypeSymbol namedTypeSymbol) 690mt = ((INamedTypeSymbol)mt).TypeArguments[0]; 736foreach (var implementingInterface in modelType.AllInterfaces) 750foreach (var implementingInterface in validatorType.AllInterfaces) 763foreach (var implementingInterface in validatorType.AllInterfaces) 817value is INamedTypeSymbol sym)
ParserUtilities.cs (3)
60foreach (var iface in type.AllInterfaces) 78type = ((INamedTypeSymbol)type).TypeArguments[0]; // extract the T from a Nullable<T> 93foreach (var interfaceType in typeSymbol.AllInterfaces)
src\libraries\Common\src\Roslyn\GetBestTypeByMetadataName.cs (4)
38public static INamedTypeSymbol? GetBestTypeByMetadataName(this Compilation compilation, string fullyQualifiedMetadataName) 41var type = compilation.GetTypeByMetadataName(fullyQualifiedMetadataName); 53var currentType = referencedAssembly.GetTypeByMetadataName(fullyQualifiedMetadataName); 88public static INamedTypeSymbol? GetBestTypeByMetadataName(this Compilation compilation, Type type) =>
SymbolHolder.cs (17)
12INamedTypeSymbol OptionsValidatorSymbol, 13INamedTypeSymbol ValidationAttributeSymbol, 14INamedTypeSymbol MaxLengthAttributeSymbol, 15INamedTypeSymbol MinLengthAttributeSymbol, 16INamedTypeSymbol CompareAttributeSymbol, 17INamedTypeSymbol? LengthAttributeSymbol, 18INamedTypeSymbol? UnconditionalSuppressMessageAttributeSymbol, 19INamedTypeSymbol RangeAttributeSymbol, 20INamedTypeSymbol ICollectionSymbol, 21INamedTypeSymbol DataTypeAttributeSymbol, 22INamedTypeSymbol ValidateOptionsSymbol, 23INamedTypeSymbol IValidatableObjectSymbol, 24INamedTypeSymbol GenericIEnumerableSymbol, 25INamedTypeSymbol TypeSymbol, 26INamedTypeSymbol TimeSpanSymbol, 27INamedTypeSymbol ValidateObjectMembersAttributeSymbol, 28INamedTypeSymbol ValidateEnumeratedItemsAttributeSymbol);
SymbolLoader.cs (18)
30INamedTypeSymbol? GetSymbol(string metadataName) => compilation.GetTypeByMetadataName(metadataName); 33var optionsValidatorSymbol = GetSymbol(OptionsValidatorAttribute); 34var validationAttributeSymbol = GetSymbol(ValidationAttribute); 35var maxLengthAttributeSymbol = GetSymbol(MaxLengthAttribute); 36var minLengthAttributeSymbol = GetSymbol(MinLengthAttribute); 37var compareAttributeSymbol = GetSymbol(CompareAttribute); 38var lengthAttributeSymbol = GetSymbol(LengthAttribute); 39var rangeAttributeSymbol = GetSymbol(RangeAttribute); 40var iCollectionSymbol = GetSymbol(ICollectionType); 41var dataTypeAttributeSymbol = GetSymbol(DataTypeAttribute); 42var ivalidatableObjectSymbol = GetSymbol(IValidatableObjectType); 43var validateOptionsSymbol = GetSymbol(IValidateOptionsType); 44var genericIEnumerableSymbol = GetSymbol(GenericIEnumerableType); 45var typeSymbol = GetSymbol(TypeOfType); 46var timeSpanSymbol = GetSymbol(TimeSpanType); 47var validateObjectMembersAttribute = GetSymbol(ValidateObjectMembersAttribute); 48var validateEnumeratedItemsAttribute = GetSymbol(ValidateEnumeratedItemsAttribute); 49var unconditionalSuppressMessageAttributeSymbol = GetSymbol(UnconditionalSuppressMessageAttributeType);
Microsoft.Extensions.Validation.ValidationsGenerator (77)
Extensions\ISymbolExtensions.cs (1)
13public static string GetDisplayName(this ISymbol property, INamedTypeSymbol displayAttribute)
Extensions\ITypeSymbolExtensions.cs (19)
13public static bool IsEnumerable(this ITypeSymbol type, INamedTypeSymbol enumerable) 23public static bool ImplementsValidationAttribute(this ITypeSymbol typeSymbol, INamedTypeSymbol validationAttributeSymbol) 25var baseType = typeSymbol.BaseType; 38public static ITypeSymbol UnwrapType(this ITypeSymbol type, INamedTypeSymbol enumerable) 41type is INamedTypeSymbol { TypeArguments.Length: 1 }) 44type = ((INamedTypeSymbol)type).TypeArguments[0]; 54if (type is INamedTypeSymbol namedType && namedType.IsEnumerable(enumerable) && namedType.TypeArguments.Length == 1) 65foreach (var iface in type.AllInterfaces) 75internal static ImmutableArray<INamedTypeSymbol>? GetJsonDerivedTypes(this ITypeSymbol type, INamedTypeSymbol jsonDerivedTypeAttribute) 77var derivedTypes = ImmutableArray.CreateBuilder<INamedTypeSymbol>(); 82var derivedType = (INamedTypeSymbol?)attribute.ConstructorArguments[0].Value; 108internal static IPropertySymbol? FindPropertyIncludingBaseTypes(this INamedTypeSymbol typeSymbol, string propertyName) 120if (typeSymbol.BaseType is INamedTypeSymbol baseType) 134internal static bool IsServiceParameter(this IParameterSymbol parameter, INamedTypeSymbol fromServiceMetadataSymbol, INamedTypeSymbol fromKeyedServiceAttributeSymbol) 148internal static bool IsServiceProperty(this IPropertySymbol property, INamedTypeSymbol fromServiceMetadataSymbol, INamedTypeSymbol fromKeyedServiceAttributeSymbol)
Models\RequiredSymbols.cs (16)
9INamedTypeSymbol DisplayAttribute, 10INamedTypeSymbol ValidationAttribute, 11INamedTypeSymbol IEnumerable, 12INamedTypeSymbol IValidatableObject, 13INamedTypeSymbol JsonDerivedTypeAttribute, 14INamedTypeSymbol RequiredAttribute, 15INamedTypeSymbol CustomValidationAttribute, 16INamedTypeSymbol HttpContext, 17INamedTypeSymbol HttpRequest, 18INamedTypeSymbol HttpResponse, 19INamedTypeSymbol CancellationToken, 20INamedTypeSymbol IFormCollection, 21INamedTypeSymbol IFormFileCollection, 22INamedTypeSymbol IFormFile, 23INamedTypeSymbol Stream, 24INamedTypeSymbol PipeReader
Parsers\ValidationsGenerator.TypesParser.cs (7)
29var fromServiceMetadataSymbol = wellKnownTypes.Get( 31var fromKeyedServiceAttributeSymbol = wellKnownTypes.Get( 71var current = typeSymbol.BaseType; 89foreach (var derivedType in derivedTypes ?? []) 113var fromServiceMetadataSymbol = wellKnownTypes.Get( 115var fromKeyedServiceAttributeSymbol = wellKnownTypes.Get( 120if (typeSymbol is INamedTypeSymbol { IsRecord: true } namedType)
src\Shared\RoslynUtils\ParsabilityHelper.cs (7)
117var iParsableTypeSymbol = wellKnownTypes.Get(WellKnownType.System_IParsable_T); 126var iBindableFromHttpContextTypeSymbol = wellKnownTypes.Get(WellKnownType.Microsoft_AspNetCore_Http_IBindableFromHttpContext_T); 127var constructedTypeSymbol = typeSymbol.AllInterfaces.FirstOrDefault( 140methodSymbol.ReturnType is INamedTypeSymbol returnType && 152methodSymbol.ReturnType is INamedTypeSymbol returnType && 156private static bool IsReturningValueTaskOfTOrNullableT(INamedTypeSymbol returnType, ITypeSymbol containingType, WellKnownTypes wellKnownTypes) 214if (bindAsyncMethod.ReturnType is INamedTypeSymbol returnType && !IsReturningValueTaskOfTOrNullableT(returnType, typeSymbol, wellKnownTypes))
src\Shared\RoslynUtils\SymbolExtensions.cs (17)
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 TryGetAttribute(this ImmutableArray<AttributeData> attributes, INamedTypeSymbol attributeType, [NotNullWhen(true)] out AttributeData? matchedAttribute) 85public static bool HasAttributeImplementingInterface(this ISymbol symbol, INamedTypeSymbol interfaceType) 90public static bool TryGetAttributeImplementingInterface(this ISymbol symbol, INamedTypeSymbol interfaceType, [NotNullWhen(true)] out AttributeData? matchedAttribute) 105public static bool HasAttributeImplementingInterface(this ImmutableArray<AttributeData> attributes, INamedTypeSymbol interfaceType) 110public static bool TryGetAttributeImplementingInterface(this ImmutableArray<AttributeData> attributes, INamedTypeSymbol interfaceType, [NotNullWhen(true)] out AttributeData? matchedAttribute) 127foreach (var t in type.AllInterfaces) 137public static bool IsType(this INamedTypeSymbol type, string typeName, SemanticModel semanticModel) 140public static bool IsType(this INamedTypeSymbol type, INamedTypeSymbol otherType) 165parameterSymbol.Type is INamedTypeSymbol 171propertySymbol.Type is INamedTypeSymbol
src\Shared\RoslynUtils\WellKnownTypes.cs (10)
20private readonly INamedTypeSymbol?[] _lazyWellKnownTypes; 52_lazyWellKnownTypes = new INamedTypeSymbol?[WellKnownTypeData.WellKnownTypeNames.Length]; 56public INamedTypeSymbol Get(SpecialType type) 61public INamedTypeSymbol Get(WellKnownTypeData.WellKnownType type) 64var symbol = _lazyWellKnownTypes[index]; 75private INamedTypeSymbol GetAndCache(int index) 77var result = GetTypeByMetadataNameInTargetAssembly(WellKnownTypeData.WellKnownTypeNames[index]); 90private INamedTypeSymbol? GetTypeByMetadataNameInTargetAssembly(string metadataName) 105foreach (var type in types) 153foreach (var t in type.AllInterfaces)
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)
110var attributeType = ctor?.ContainingType; 123static 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)
110var attributeType = ctor?.ContainingType; 123static string GetAttributeDisplayName(INamedTypeSymbol attributeType)
SymbolHolder.cs (1)
10internal sealed record class SymbolHolder(INamedTypeSymbol OptionsContextAttribute);
SymbolLoader.cs (1)
14var optionsContextAttribute = compilation.GetTypeByMetadataName("Microsoft.Extensions.Options.Contextual.OptionsContextAttribute");
Microsoft.Gen.ContextualOptions.Unit.Tests (4)
EmitterTests.cs (4)
32Mock.Of<INamedTypeSymbol>(sym => sym.Name == "Struct1" && sym.ContainingNamespace.ToString() == "Microsoft.GenContextualOptions.TestClasses"), 56Mock.Of<INamedTypeSymbol>(sym => sym.Name == "Class2" && sym.ContainingNamespace.ToString() == "Microsoft.GenContextualOptions.TestClasses"), 84Mock.Of<INamedTypeSymbol>(sym => sym.Name == "Record1" && sym.ContainingNamespace.ToString() == "Microsoft.GenContextualOptions.TestClasses"), 112Mock.Of<INamedTypeSymbol>(sym => sym.Name == "NamespacelessRecord" && sym.ContainingNamespace.IsGlobalNamespace),
Microsoft.Gen.Logging (55)
Parsing\Parser.cs (5)
330var parentType = methodSymbol.ContainingType.ContainingType; 470private static List<INamedTypeSymbol> GetDataClassificationAttributes(ISymbol symbol, SymbolHolder symbols) 568extractedType = ((INamedTypeSymbol)paramTypeSymbol).TypeArguments[0]; 625INamedTypeSymbol? classType = sm.GetDeclaredSymbol(classDec, _cancellationToken); 626INamedTypeSymbol? currentClassType = classType;
Parsing\Parser.LogProperties.cs (7)
46paramTypeSymbol = ((INamedTypeSymbol)paramTypeSymbol).TypeArguments[0]; 93var namedType = type as INamedTypeSymbol; 105var sensitivePropsFromCtor = new Dictionary<string, List<INamedTypeSymbol>>(); 187extractedType = ((INamedTypeSymbol)extractedType).TypeArguments[0]; 274extractedType = ((INamedTypeSymbol)extractedType).TypeArguments[0]; 344symType = ((INamedTypeSymbol)symType).TypeArguments[0];
Parsing\Parser.Records.cs (3)
35var namedType = type as INamedTypeSymbol; 130extractedType = ((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)
110var attributeType = ctor?.ContainingType; 123static string GetAttributeDisplayName(INamedTypeSymbol attributeType)
src\Generators\Shared\ParserUtilities.cs (1)
65foreach (var iface in type.AllInterfaces)
src\Generators\Shared\RoslynExtensions.cs (4)
44public static INamedTypeSymbol? GetBestTypeByMetadataName(this Compilation compilation, string fullyQualifiedMetadataName) 47var type = compilation.GetTypeByMetadataName(fullyQualifiedMetadataName); 65var currentType = referencedAssembly.GetTypeByMetadataName(fullyQualifiedMetadataName); 101public 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 (36)
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)
147var parentType = methodSymbol.ContainingType.ContainingType; 212private static ITypeSymbol? GetGenericType(INamedTypeSymbol symbol) 218INamedTypeSymbol? methodAttributeSymbol, 581if (returnType is INamedTypeSymbol { Arity: > 0 }) 619constructorArg.Value is not INamedTypeSymbol strongTypeSymbol) 789if (typeSymbol is INamedTypeSymbol namedTypeSymbol) 816if (typeSymbol is not INamedTypeSymbol namedTypeSymbol) 854INamedTypeSymbol namedTypeSymbol, 900INamedTypeSymbol? parentObjectBase = symbol.BaseType;
src\Generators\Microsoft.Gen.Metrics\SymbolHolder.cs (8)
11INamedTypeSymbol MeterSymbol, 12INamedTypeSymbol CounterAttribute, 13INamedTypeSymbol? CounterOfTAttribute, 14INamedTypeSymbol HistogramAttribute, 15INamedTypeSymbol? HistogramOfTAttribute, 16INamedTypeSymbol? GaugeAttribute, 17INamedTypeSymbol LongTypeSymbol, 18INamedTypeSymbol? TagNameAttribute);
src\Generators\Microsoft.Gen.Metrics\SymbolLoader.cs (8)
20var meterClassSymbol = compilation.GetTypeByMetadataName(MeterClass); 21var counterAttribute = compilation.GetTypeByMetadataName(CounterAttribute); 22var histogramAttribute = compilation.GetTypeByMetadataName(HistogramAttribute); 32var counterTAttribute = compilation.GetTypeByMetadataName(CounterTAttribute); 33var histogramTAttribute = compilation.GetTypeByMetadataName(HistogramTAttribute); 34var gaugeAttribute = compilation.GetTypeByMetadataName(GaugeAttribute); 35var tagNameAttribute = compilation.GetTypeByMetadataName(TagNameAttribute); 36var longType = compilation.GetSpecialType(SpecialType.System_Int64);
src\Generators\Shared\GeneratorUtilities.cs (2)
110var attributeType = ctor?.ContainingType; 123static string GetAttributeDisplayName(INamedTypeSymbol attributeType)
src\Generators\Shared\ParserUtilities.cs (1)
65foreach (var iface in type.AllInterfaces)
Microsoft.Gen.Metrics (34)
Exceptions\TransitiveTypeCycleException.cs (2)
13public TransitiveTypeCycleException(ISymbol parent, INamedTypeSymbol namedType) 21public INamedTypeSymbol NamedType { get; }
Parser.cs (9)
147var parentType = methodSymbol.ContainingType.ContainingType; 212private static ITypeSymbol? GetGenericType(INamedTypeSymbol symbol) 218INamedTypeSymbol? methodAttributeSymbol, 581if (returnType is INamedTypeSymbol { Arity: > 0 }) 619constructorArg.Value is not INamedTypeSymbol strongTypeSymbol) 789if (typeSymbol is INamedTypeSymbol namedTypeSymbol) 816if (typeSymbol is not INamedTypeSymbol namedTypeSymbol) 854INamedTypeSymbol namedTypeSymbol, 900INamedTypeSymbol? parentObjectBase = symbol.BaseType;
src\Generators\Shared\GeneratorUtilities.cs (2)
110var attributeType = ctor?.ContainingType; 123static string GetAttributeDisplayName(INamedTypeSymbol attributeType)
src\Generators\Shared\ParserUtilities.cs (1)
65foreach (var iface in type.AllInterfaces)
src\Generators\Shared\RoslynExtensions.cs (4)
44public static INamedTypeSymbol? GetBestTypeByMetadataName(this Compilation compilation, string fullyQualifiedMetadataName) 47var type = compilation.GetTypeByMetadataName(fullyQualifiedMetadataName); 65var currentType = referencedAssembly.GetTypeByMetadataName(fullyQualifiedMetadataName); 101public static INamedTypeSymbol? GetBestTypeByMetadataName(this Compilation compilation, Type type) =>
SymbolHolder.cs (8)
11INamedTypeSymbol MeterSymbol, 12INamedTypeSymbol CounterAttribute, 13INamedTypeSymbol? CounterOfTAttribute, 14INamedTypeSymbol HistogramAttribute, 15INamedTypeSymbol? HistogramOfTAttribute, 16INamedTypeSymbol? GaugeAttribute, 17INamedTypeSymbol LongTypeSymbol, 18INamedTypeSymbol? TagNameAttribute);
SymbolLoader.cs (8)
20var meterClassSymbol = compilation.GetTypeByMetadataName(MeterClass); 21var counterAttribute = compilation.GetTypeByMetadataName(CounterAttribute); 22var histogramAttribute = compilation.GetTypeByMetadataName(HistogramAttribute); 32var counterTAttribute = compilation.GetTypeByMetadataName(CounterTAttribute); 33var histogramTAttribute = compilation.GetTypeByMetadataName(HistogramTAttribute); 34var gaugeAttribute = compilation.GetTypeByMetadataName(GaugeAttribute); 35var tagNameAttribute = compilation.GetTypeByMetadataName(TagNameAttribute); 36var longType = compilation.GetSpecialType(SpecialType.System_Int64);
Microsoft.Gen.MetricsReports (30)
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)
147var parentType = methodSymbol.ContainingType.ContainingType; 212private static ITypeSymbol? GetGenericType(INamedTypeSymbol symbol) 218INamedTypeSymbol? methodAttributeSymbol, 581if (returnType is INamedTypeSymbol { Arity: > 0 }) 619constructorArg.Value is not INamedTypeSymbol strongTypeSymbol) 789if (typeSymbol is INamedTypeSymbol namedTypeSymbol) 816if (typeSymbol is not INamedTypeSymbol namedTypeSymbol) 854INamedTypeSymbol namedTypeSymbol, 900INamedTypeSymbol? parentObjectBase = symbol.BaseType;
src\Generators\Microsoft.Gen.Metrics\SymbolHolder.cs (8)
11INamedTypeSymbol MeterSymbol, 12INamedTypeSymbol CounterAttribute, 13INamedTypeSymbol? CounterOfTAttribute, 14INamedTypeSymbol HistogramAttribute, 15INamedTypeSymbol? HistogramOfTAttribute, 16INamedTypeSymbol? GaugeAttribute, 17INamedTypeSymbol LongTypeSymbol, 18INamedTypeSymbol? TagNameAttribute);
src\Generators\Microsoft.Gen.Metrics\SymbolLoader.cs (8)
20var meterClassSymbol = compilation.GetTypeByMetadataName(MeterClass); 21var counterAttribute = compilation.GetTypeByMetadataName(CounterAttribute); 22var histogramAttribute = compilation.GetTypeByMetadataName(HistogramAttribute); 32var counterTAttribute = compilation.GetTypeByMetadataName(CounterTAttribute); 33var histogramTAttribute = compilation.GetTypeByMetadataName(HistogramTAttribute); 34var gaugeAttribute = compilation.GetTypeByMetadataName(GaugeAttribute); 35var tagNameAttribute = compilation.GetTypeByMetadataName(TagNameAttribute); 36var longType = compilation.GetSpecialType(SpecialType.System_Int64);
src\Generators\Shared\GeneratorUtilities.cs (2)
110var attributeType = ctor?.ContainingType; 123static string GetAttributeDisplayName(INamedTypeSymbol attributeType)
src\Generators\Shared\ParserUtilities.cs (1)
65foreach (var iface in type.AllInterfaces)
Microsoft.Interop.ComInterfaceGenerator (64)
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\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\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)
97var 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)
ComClassGenerator.cs (2)
33var type = (INamedTypeSymbol)context.TargetSymbol;
ComClassInfo.cs (2)
26public static DiagnosticOr<ComClassInfo> From(INamedTypeSymbol type, ClassDeclarationSyntax syntax, bool unsafeCodeIsEnabled) 43foreach (INamedTypeSymbol iface in type.AllInterfaces)
ComInterfaceGenerator.cs (5)
42static (context, ct) => context.TargetSymbol is INamedTypeSymbol interfaceSymbol 262INamedTypeSymbol? lcidConversionAttrType = environment.LcidConversionAttrType; 263INamedTypeSymbol? suppressGCTransitionAttrType = environment.SuppressGCTransitionAttrType; 264INamedTypeSymbol? unmanagedCallConvAttrType = environment.UnmanagedCallConvAttrType; 413(INamedTypeSymbol)generatedComInterfaceAttributeData.ExceptionToUnmanagedMarshaller,
ComInterfaceInfo.cs (15)
11using InterfaceInfo = (Microsoft.Interop.ComInterfaceInfo InterfaceInfo, Microsoft.CodeAnalysis.INamedTypeSymbol Symbol); 12using DiagnosticOrInterfaceInfo = Microsoft.Interop.DiagnosticOr<(Microsoft.Interop.ComInterfaceInfo InterfaceInfo, Microsoft.CodeAnalysis.INamedTypeSymbol Symbol)>; 55public static DiagnosticOrInterfaceInfo From(INamedTypeSymbol symbol, InterfaceDeclarationSyntax syntax, StubEnvironment env, CancellationToken _) 85if (!TryGetBaseComInterface(symbol, syntax, out INamedTypeSymbol? baseSymbol, out DiagnosticInfo? baseDiagnostic)) 145INamedTypeSymbol symbol) 147if (!TryGetBaseComInterface(symbol, null, out INamedTypeSymbol? baseSymbol, out _) || baseSymbol is null) 156var thisSymbol = baseSymbol; 179private static bool IsInPartialContext(INamedTypeSymbol symbol, InterfaceDeclarationSyntax syntax, [NotNullWhen(false)] out DiagnosticInfo? diagnostic) 196INamedTypeSymbol interfaceSymbol, 256INamedTypeSymbol interfaceSymbol, 296if (attrSymbolInfo.ExceptionToUnmanagedMarshaller is INamedTypeSymbol exceptionToUnmanagedMarshallerType) 322private static bool TryGetBaseComInterface(INamedTypeSymbol comIface, InterfaceDeclarationSyntax? syntax, out INamedTypeSymbol? baseComIface, [NotNullWhen(false)] out DiagnosticInfo? diagnostic) 326foreach (var implemented in comIface.Interfaces) 357private static bool TryGetGuid(INamedTypeSymbol interfaceSymbol, InterfaceDeclarationSyntax syntax, [NotNullWhen(true)] out Guid? guid, [NotNullWhen(false)] out DiagnosticInfo? diagnostic)
ComMethodInfo.cs (1)
40public static SequenceEqualImmutableArray<DiagnosticOr<(ComMethodInfo ComMethod, IMethodSymbol Symbol)>> GetMethodsFromInterface((ComInterfaceInfo ifaceContext, INamedTypeSymbol ifaceSymbol) data, CancellationToken ct)
GeneratedComInterfaceAttributeData.cs (2)
40public static bool TryGetGeneratedComInterfaceAttributeFromInterface(INamedTypeSymbol interfaceSymbol, [NotNullWhen(true)] out AttributeData? generatedComInterfaceAttribute) 54public static GeneratedComInterfaceCompilationData GetAttributeDataFromInterfaceSymbol(INamedTypeSymbol interfaceSymbol)
src\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)
149INamedTypeSymbol? exceptionMarshallingCustomType = null; 181if (exceptionMarshallingCustomTypeValue.Value is not INamedTypeSymbol) 185exceptionMarshallingCustomType = (INamedTypeSymbol)exceptionMarshallingCustomTypeValue.Value; 201INamedTypeSymbol? lcidConversionAttrType = environment.Compilation.GetTypeByMetadataName(TypeNames.LCIDConversionAttribute); 202INamedTypeSymbol? suppressGCTransitionAttrType = environment.Compilation.GetTypeByMetadataName(TypeNames.SuppressGCTransitionAttribute); 203INamedTypeSymbol? unmanagedCallConvAttrType = environment.Compilation.GetTypeByMetadataName(TypeNames.UnmanagedCallConvAttribute); 204INamedTypeSymbol iUnmanagedInterfaceTypeType = environment.Compilation.GetTypeByMetadataName(TypeNames.IUnmanagedInterfaceType_Metadata)!; 292INamedTypeSymbol expectedUnmanagedInterfaceType = iUnmanagedInterfaceTypeType;
Microsoft.Interop.JavaScript.JSImportGenerator (11)
JSManagedTypeInfo.cs (6)
102case INamedTypeSymbol { ConstructedFrom.SpecialType: SpecialType.System_Nullable_T } nullable: 120case INamedTypeSymbol { TypeArguments.Length: 1 } taskType when fullTypeName.StartsWith(Constants.TaskGlobal, StringComparison.Ordinal): 128case INamedTypeSymbol { TypeArguments.Length: 1 } spanType when fullTypeName.StartsWith(Constants.SpanGlobal, StringComparison.Ordinal): 136case INamedTypeSymbol { TypeArguments.Length: 1 } arraySegmentType when fullTypeName.StartsWith(Constants.ArraySegmentGlobal, StringComparison.Ordinal): 146case INamedTypeSymbol actionType when fullTypeName.StartsWith(Constants.ActionGlobal, StringComparison.Ordinal): 157case INamedTypeSymbol funcType when fullTypeName.StartsWith(Constants.FuncGlobal, StringComparison.Ordinal):
JSMarshalAsAttributeInfoParser.cs (5)
15private readonly INamedTypeSymbol _jsMarshalAsAttribute; 21public bool CanParseAttributeType(INamedTypeSymbol attributeType) => attributeType.IsGenericType && SymbolEqualityComparer.Default.Equals(_jsMarshalAsAttribute, attributeType.ConstructUnboundGenericType()); 26INamedTypeSymbol? jsTypeArgs = attributeData.AttributeClass.TypeArguments[0] as INamedTypeSymbol; 35foreach (var ta in jsTypeArgs.TypeArguments.Cast<INamedTypeSymbol>().Select(x => x.ToDisplayString()))
Microsoft.Interop.LibraryImportGenerator (70)
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)
205INamedTypeSymbol? dllImportAttrType = editor.SemanticModel.Compilation.GetBestTypeByMetadataName(TypeNames.DllImportAttribute); 210INamedTypeSymbol libraryImportAttrType = editor.SemanticModel.Compilation.GetBestTypeByMetadataName(TypeNames.LibraryImportAttribute)!; 416INamedTypeSymbol libraryImportAttrType, 659private 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\NativeMarshallingAttributeAnalyzer.cs (4)
103(INamedTypeSymbol?)typeOfOp.TypeOperand); 111INamedTypeSymbol? entryType) 125if (managedType is not INamedTypeSymbol namedManagedType) 145entryType = (INamedTypeSymbol)resolvedEntryType;
Analyzers\ShapeBreakingDiagnosticSuppressor.cs (8)
43if (FindContainingEntryPointTypeAndManagedType(diagnosedSymbol.ContainingType) is (INamedTypeSymbol entryPointMarshallerType, INamedTypeSymbol managedType)) 56private static (INamedTypeSymbol EntryPointType, INamedTypeSymbol ManagedType)? FindContainingEntryPointTypeAndManagedType(INamedTypeSymbol marshallerType) 58for (INamedTypeSymbol containingType = marshallerType; containingType is not null; containingType = containingType.ContainingType) 64&& attr.ConstructorArguments[2].Value is INamedTypeSymbol marshallerTypeInAttribute 69return (containingType, (INamedTypeSymbol)attrData.ConstructorArguments[0].Value);
LibraryImportGenerator.cs (5)
226INamedTypeSymbol? lcidConversionAttrType = environment.LcidConversionAttrType; 227INamedTypeSymbol? suppressGCTransitionAttrType = environment.SuppressGCTransitionAttrType; 228INamedTypeSymbol? unmanagedCallConvAttrType = environment.UnmanagedCallConvAttrType; 229INamedTypeSymbol? defaultDllImportSearchPathsAttrType = environment.DefaultDllImportSearchPathsAttrType; 230INamedTypeSymbol? wasmImportLinkageAttrType = environment.WasmImportLinkageAttrType;
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 (6)
DownlevelLibraryImportGenerator.cs (2)
167INamedTypeSymbol? lcidConversionAttrType = environment.LcidConversionAttrType; 168INamedTypeSymbol? defaultDllImportSearchPathsAttrType = environment.DefaultDllImportSearchPathsAttrType;
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 (124)
ArrayMarshallingInfoProvider.cs (1)
48INamedTypeSymbol? arrayMarshaller;
BlittableTypeMarshallingInfoProvider.cs (1)
23public bool CanProvideMarshallingInfoForType(ITypeSymbol type) => type is INamedTypeSymbol { IsUnmanagedType: true } unmanagedType
ComInterfaceMarshallingInfoProvider.cs (2)
24public bool CanParseAttributeType(INamedTypeSymbol attributeType) => attributeType.ToDisplayString() == TypeNames.GeneratedComInterfaceAttribute; 35INamedTypeSymbol? comInterfaceMarshaller = compilation.GetTypeByMetadataName(TypeNames.System_Runtime_InteropServices_Marshalling_ComInterfaceMarshaller_Metadata);
CustomMarshallingInfoHelper.cs (7)
15INamedTypeSymbol entryPointType, 58else if (type is INamedTypeSymbol namedManagedCollectionType && entryPointType.IsUnboundGenericType) 70entryPointType = (INamedTypeSymbol)resolvedEntryPointType; 90if (type is INamedTypeSymbol namedManagedType && entryPointType.IsUnboundGenericType) 102entryPointType = (INamedTypeSymbol)resolvedEntryPointType; 135INamedTypeSymbol entryPointType, 175INamedTypeSymbol? marshallerType = compilation.GetBestTypeByMetadataName(marshallerName);
InteropAttributeData.cs (4)
50public INamedTypeSymbol? StringMarshallingCustomType { get; init; } 60INamedTypeSymbol? stringMarshallingCustomType = null; 85if (stringMarshallingCustomTypeValue.Value is not INamedTypeSymbol) 89stringMarshallingCustomType = (INamedTypeSymbol)stringMarshallingCustomTypeValue.Value;
ISymbolExtensions.cs (2)
15public static bool IsAccessibleFromFileScopedClass(this INamedTypeSymbol symbol, [NotNullWhen(false)] out string? details) 23for (ISymbol current = symbol.ContainingSymbol; current is INamedTypeSymbol currentType; current = currentType.ContainingSymbol)
ManagedTypeInfo.cs (2)
50return new EnumTypeInfo(typeName, diagnosticFormattedName, ((INamedTypeSymbol)type).EnumUnderlyingType!.SpecialType); 66return new DelegateTypeInfo(typeName, diagnosticFormattedName, type is INamedTypeSymbol { IsGenericType: true });
ManualTypeMarshallingHelper.cs (40)
81private static void IgnoreArityMismatch(INamedTypeSymbol _, INamedTypeSymbol __) { } 83public static bool IsLinearCollectionEntryPoint(INamedTypeSymbol entryPointType) 95INamedTypeSymbol entryPointType, 104INamedTypeSymbol entryPointType, 107Action<INamedTypeSymbol, INamedTypeSymbol> onArityMismatch, 114INamedTypeSymbol entryPointType, 124INamedTypeSymbol entryPointType, 128Action<INamedTypeSymbol, INamedTypeSymbol> onArityMismatch, 135INamedTypeSymbol entryPointType, 138Action<INamedTypeSymbol, INamedTypeSymbol> onArityMismatch, 146INamedTypeSymbol entryPointType, 151Action<INamedTypeSymbol, INamedTypeSymbol> onArityMismatch, 241public static bool TryResolveEntryPointType(INamedTypeSymbol managedType, ITypeSymbol typeInAttribute, bool isLinearCollectionMarshalling, Action<INamedTypeSymbol, INamedTypeSymbol> onArityMismatch, [NotNullWhen(true)] out ITypeSymbol? entryPoint) 243if (typeInAttribute is not INamedTypeSymbol entryPointType) 255INamedTypeSymbol instantiatedEntryType = entryPointType.ResolveUnboundConstructedTypeToConstructedType(managedType, out int numOriginalArgsSubstituted, out int extraArgumentsInTemplate); 283public static bool TryResolveManagedType(INamedTypeSymbol entryPointType, ITypeSymbol typeInAttribute, bool isLinearCollectionMarshalling, Action<INamedTypeSymbol, INamedTypeSymbol> onArityMismatch, [NotNullWhen(true)] out ITypeSymbol? managed) 285if (typeInAttribute is not INamedTypeSymbol namedMarshallerType) 298INamedTypeSymbol instantiatedManagedType = namedMarshallerType.ResolveUnboundConstructedTypeToConstructedType(entryPointType, out int numOriginalArgsSubstituted, out int extraArgumentsInTemplate); 326public static bool TryResolveMarshallerType(INamedTypeSymbol entryPointType, ITypeSymbol typeInAttribute, Action<INamedTypeSymbol, INamedTypeSymbol> onArityMismatch, [NotNullWhen(true)] out ITypeSymbol? marshallerType) 328if (typeInAttribute is not INamedTypeSymbol namedMarshallerType) 334INamedTypeSymbol instantiatedMarshallerType = namedMarshallerType.ResolveUnboundConstructedTypeToConstructedType(entryPointType, out int numOriginalArgsSubstituted, out int extraArgumentsInTemplate); 348/// Resolve a non-<see cref="INamedTypeSymbol"/> <paramref name="managedType"/> to the correct 356public static ITypeSymbol ReplaceGenericPlaceholderInType(ITypeSymbol managedType, INamedTypeSymbol entryType, Compilation compilation) 467collectionElementType = ((INamedTypeSymbol)methods.ManagedValuesSource.ReturnType).TypeArguments[0]; 498collectionElementType = ((INamedTypeSymbol)methods.ManagedValuesDestination.ReturnType).TypeArguments[0]; 525bufferElementType = ManagedTypeInfo.CreateTypeInfoForTypeSymbol(((INamedTypeSymbol)methods.ToUnmanagedWithBuffer.Parameters[1].Type).TypeArguments[0]); 573collectionElementType = ((INamedTypeSymbol)methods.ManagedValuesSource.ReturnType).TypeArguments[0]; 591collectionElementType = ((INamedTypeSymbol)methods.ManagedValuesDestination.ReturnType).TypeArguments[0]; 605bufferElementType = ManagedTypeInfo.CreateTypeInfoForTypeSymbol(((INamedTypeSymbol)methods.FromManagedWithBuffer.Parameters[1].Type).TypeArguments[0]);
MarshalAsParser.cs (1)
131public bool CanParseAttributeType(INamedTypeSymbol attributeType) => attributeType.ToDisplayString() == TypeNames.System_Runtime_InteropServices_MarshalAsAttribute;
MarshalAsWithCustomMarshallersParser.cs (3)
35public bool CanParseAttributeType(INamedTypeSymbol attributeType) => attributeType.ToDisplayString() == TypeNames.System_Runtime_InteropServices_MarshalAsAttribute; 46return type is INamedTypeSymbol { IsComImport: true } 66else if (arrayInfo.ArraySubType == UnmanagedType.Interface && elementType is not INamedTypeSymbol { IsComImport: true })
MarshallerShape.cs (15)
116INamedTypeSymbol spanOfT = compilation.GetTypeByMetadataName(TypeNames.System_Span_Metadata)!; 120INamedTypeSymbol readOnlySpanOfT = compilation.GetTypeByMetadataName(TypeNames.System_ReadOnlySpan_Metadata)!; 226if (typeToCheck is INamedTypeSymbol namedType) 236INamedTypeSymbol currentType = containingType as INamedTypeSymbol; 346.FirstOrDefault(m => m is { IsStatic: true, Parameters.Length: 1, ReturnsVoid: false, ReturnType: INamedTypeSymbol returnType } 356.FirstOrDefault(m => m is { IsStatic: true, Parameters.Length: 2, ReturnsVoid: false, ReturnType: INamedTypeSymbol returnType } 386.FirstOrDefault(m => m is { IsStatic: true, Parameters.Length: 1, ReturnsVoid: false, ReturnType: INamedTypeSymbol returnType } 396.FirstOrDefault(m => m is { IsStatic: true, Parameters.Length: 2, ReturnsVoid: false, ReturnType: INamedTypeSymbol returnType } 454INamedTypeSymbol spanOfT = compilation.GetTypeByMetadataName(TypeNames.System_Span_Metadata)!; 459INamedTypeSymbol readOnlySpanOfT = compilation.GetTypeByMetadataName(TypeNames.System_ReadOnlySpan_Metadata)!; 690.FirstOrDefault(m => m is { IsStatic: false, Parameters.Length: 0, ReturnsVoid: false, ReturnType: INamedTypeSymbol returnType } 699.FirstOrDefault(m => m is { IsStatic: false, Parameters.Length: 0, ReturnsVoid: false, ReturnType: INamedTypeSymbol returnType } 708.FirstOrDefault(m => m is { IsStatic: false, Parameters.Length: 1, ReturnsVoid: false, ReturnType: INamedTypeSymbol returnType } 718.FirstOrDefault(m => m is { IsStatic: false, Parameters.Length: 1, ReturnsVoid: false, ReturnType: INamedTypeSymbol returnType }
MarshallingAttributeInfo.cs (2)
16/// Since it contains a <see cref="INamedTypeSymbol"/>, it should not be used as a field on any types 21INamedTypeSymbol? StringMarshallingCustomType
MarshallingInfoParser.cs (2)
39bool CanParseAttributeType(INamedTypeSymbol attributeType); 61bool CanParseAttributeType(INamedTypeSymbol attributeType);
MarshalUsingAttributeParser.cs (2)
26public bool CanParseAttributeType(INamedTypeSymbol attributeType) => attributeType.ToDisplayString() == TypeNames.MarshalUsingAttribute; 46if (attributeData.ConstructorArguments[0].Value is not INamedTypeSymbol namedType)
NativeMarshallingAttributeParser.cs (2)
20public bool CanParseAttributeType(INamedTypeSymbol attributeType) => attributeType.ToDisplayString() == TypeNames.NativeMarshallingAttribute; 31if (attributeData.ConstructorArguments[0].Value is not INamedTypeSymbol entryPointType)
SafeHandleMarshallingInfoProvider.cs (4)
18private readonly INamedTypeSymbol? _safeHandleType = compilation.GetBestTypeByMetadataName(TypeNames.System_Runtime_InteropServices_SafeHandle); 19private readonly INamedTypeSymbol? _safeHandleMarshallerType = compilation.GetBestTypeByMetadataName(TypeNames.System_Runtime_InteropServices_Marshalling_SafeHandleMarshaller_Metadata); 44if (type is INamedTypeSymbol named && !named.IsAbstract && named.InstanceConstructors.Length > 0) 63INamedTypeSymbol entryPointType = _safeHandleMarshallerType.Construct(type);
SignatureContext.cs (1)
161for (INamedTypeSymbol type = method.ContainingType; type is not null; type = type.ContainingType)
src\libraries\Common\src\Roslyn\GetBestTypeByMetadataName.cs (4)
38public static INamedTypeSymbol? GetBestTypeByMetadataName(this Compilation compilation, string fullyQualifiedMetadataName) 41var type = compilation.GetTypeByMetadataName(fullyQualifiedMetadataName); 53var currentType = referencedAssembly.GetTypeByMetadataName(fullyQualifiedMetadataName); 88public static INamedTypeSymbol? GetBestTypeByMetadataName(this Compilation compilation, Type type) =>
StubEnvironment.cs (15)
21private Optional<INamedTypeSymbol?> _lcidConversionAttrType; 22public INamedTypeSymbol? LcidConversionAttrType 30_lcidConversionAttrType = new Optional<INamedTypeSymbol?>(Compilation.GetTypeByMetadataName(TypeNames.LCIDConversionAttribute)); 35private Optional<INamedTypeSymbol?> _suppressGCTransitionAttrType; 36public INamedTypeSymbol? SuppressGCTransitionAttrType 44_suppressGCTransitionAttrType = new Optional<INamedTypeSymbol?>(Compilation.GetTypeByMetadataName(TypeNames.SuppressGCTransitionAttribute)); 49private Optional<INamedTypeSymbol?> _unmanagedCallConvAttrType; 50public INamedTypeSymbol? UnmanagedCallConvAttrType 58_unmanagedCallConvAttrType = new Optional<INamedTypeSymbol?>(Compilation.GetTypeByMetadataName(TypeNames.UnmanagedCallConvAttribute)); 63private Optional<INamedTypeSymbol?> _defaultDllImportSearchPathsAttrType; 64public INamedTypeSymbol? DefaultDllImportSearchPathsAttrType 72_defaultDllImportSearchPathsAttrType = new Optional<INamedTypeSymbol?>(Compilation.GetTypeByMetadataName(TypeNames.DefaultDllImportSearchPathsAttribute)); 77private Optional<INamedTypeSymbol?> _wasmImportLinkageAttrType; 78public INamedTypeSymbol? WasmImportLinkageAttrType 86_wasmImportLinkageAttrType = new Optional<INamedTypeSymbol?>(Compilation.GetTypeByMetadataName(TypeNames.WasmImportLinkageAttribute));
TypePositionInfo.cs (2)
118INamedTypeSymbol outAttributeType = compilation.GetTypeByMetadataName(TypeNames.System_Runtime_InteropServices_OutAttribute)!; 119INamedTypeSymbol inAttributeType = compilation.GetTypeByMetadataName(TypeNames.System_Runtime_InteropServices_InAttribute)!;
TypeSymbolExtensions.cs (12)
210(INamedTypeSymbol namedType, INamedTypeSymbol namedOther) => SymbolEqualityComparer.Default.Equals(namedType.ConstructedFrom, namedOther.ConstructedFrom), 223public static INamedTypeSymbol ResolveUnboundConstructedTypeToConstructedType(this INamedTypeSymbol unboundConstructedType, INamedTypeSymbol instantiatedTemplateType, out int numOriginalTypeArgumentsSubstituted, out int extraTypeArgumentsInTemplate) 229Stack<INamedTypeSymbol> originalNestedTypes = new(); 230for (INamedTypeSymbol originalTypeDefinition = unboundConstructedType.OriginalDefinition; originalTypeDefinition is not null; originalTypeDefinition = originalTypeDefinition.ContainingType) 237INamedTypeSymbol currentType = null; 249INamedTypeSymbol originalNestedType = originalNestedTypes.Pop(); 305public static (ImmutableArray<ITypeSymbol> TypeArguments, ImmutableArray<NullableAnnotation> TypeArgumentNullableAnnotations) GetAllTypeArgumentsIncludingInContainingTypes(this INamedTypeSymbol genericType) 310for (INamedTypeSymbol instantiatedType = genericType; instantiatedType is not null; instantiatedType = instantiatedType.ContainingType) 330public static bool IsOfType(this INamedTypeSymbol type, string typeName)
Microsoft.Maui.Controls.BindingSourceGen (3)
ISymbolExtensions.cs (1)
31 var containgType = propertySymbol.ContainingType;
ITypeSymbolExtensions.cs (2)
28 typeInfo is INamedTypeSymbol namedTypeSymbol 41 return ((INamedTypeSymbol)typeSymbol).TypeArguments[0].ToDisplayString(SymbolDisplayFormat.FullyQualifiedFormat);
Microsoft.Maui.Controls.SourceGen (5)
CodeBehindGenerator.cs (5)
186 INamedTypeSymbol? xmlnsDefinitonAttribute = compilation.GetTypesByMetadataName(typeof(XmlnsDefinitionAttribute).FullName) 190 INamedTypeSymbol? internalsVisibleToAttribute = compilation.GetTypeByMetadataName(typeof(InternalsVisibleToAttribute).FullName); 548 IList<INamedTypeSymbol> types = compilation.GetTypesByMetadataName(fullName); 555 foreach (INamedTypeSymbol type in types) 583 static bool IsPublicOrVisibleInternal(INamedTypeSymbol type, IEnumerable<IAssemblySymbol> internalsVisible)
Microsoft.ML.InternalCodeAnalyzer (23)
BaseTestClassAnalyzer.cs (10)
52private readonly INamedTypeSymbol _factAttribute; 53private readonly INamedTypeSymbol _baseTestClass; 54private readonly INamedTypeSymbol _ITbaseTestClass; 55private readonly ConcurrentDictionary<INamedTypeSymbol, bool> _knownTestAttributes = new ConcurrentDictionary<INamedTypeSymbol, bool>(SymbolEqualityComparer.Default); 57public AnalyzerImpl(Compilation compilation, INamedTypeSymbol factAttribute) 67var namedType = (INamedTypeSymbol)context.Symbol; 84private bool ExtendsBaseTestClass(INamedTypeSymbol namedType) 90for (var current = namedType; current is object; current = current.BaseType)
BestFriendAnalyzer.cs (2)
55var bestFriendAttributeType = comp.GetTypeByMetadataName(attributeName); 58var wantsToBeBestFriendsAttributeType = comp.GetTypeByMetadataName(assemblyAttributeName);
BestFriendOnPublicDeclarationsAnalyzer.cs (2)
48var attribute = context.Compilation.GetTypeByMetadataName(attributeName); 57private void AnalyzeCore(SymbolAnalysisContext context, INamedTypeSymbol attributeType)
IMethodSymbolExtensions.cs (2)
12public static bool IsTestMethod(this IMethodSymbol method, ConcurrentDictionary<INamedTypeSymbol, bool> knownTestAttributes, INamedTypeSymbol factAttribute)
INamedTypeSymbolExtensions.cs (6)
13public static bool IsTestAttribute(this INamedTypeSymbol attributeClass, ConcurrentDictionary<INamedTypeSymbol, bool> knownTestAttributes, INamedTypeSymbol factAttribute) 21private static bool ExtendsFactAttribute(INamedTypeSymbol namedType, INamedTypeSymbol factAttribute) 24for (var current = namedType; current is object; current = current.BaseType)
RelaxTestNamingSuppressor.cs (1)
31var knownTestAttributes = new ConcurrentDictionary<INamedTypeSymbol, bool>(SymbolEqualityComparer.Default);
Microsoft.VisualStudio.LanguageServices (75)
ExtractClass\ExtractClassViewModel.cs (2)
19private readonly INamedTypeSymbol _selectedType; 24INamedTypeSymbol selectedType,
ExtractClass\VisualStudioExtractClassOptionsService.cs (1)
43INamedTypeSymbol selectedType,
Implementation\ContainedLanguageRefactorNotifyService.cs (2)
77else if (symbol is INamedTypeSymbol && (symbol as INamedTypeSymbol).TypeKind == TypeKind.Class)
Library\ObjectBrowser\AbstractDescriptionBuilder.cs (5)
174var symbol = typeListItem.ResolveTypedSymbol(compilation); 233protected abstract Task BuildDelegateDeclarationAsync(INamedTypeSymbol typeSymbol, _VSOBJDESCOPTIONS options, CancellationToken cancellationToken); 234protected abstract Task BuildTypeDeclarationAsync(INamedTypeSymbol typeSymbol, _VSOBJDESCOPTIONS options, CancellationToken cancellationToken); 418if (DocumentationCommentId.GetFirstSymbolForDeclarationId(exceptionType, compilation) is INamedTypeSymbol exceptionTypeSymbol) 443return symbol is INamedTypeSymbol { TypeKind: TypeKind.Delegate }
Library\ObjectBrowser\AbstractListItemFactory.cs (26)
59protected static string GetSimpleDisplayText(INamedTypeSymbol namedTypeSymbol) 88var containingType = memberSymbol.ContainingType; 98protected TypeListItem CreateSimpleTypeListItem(INamedTypeSymbol namedTypeSymbol, ProjectId projectId, bool hidden) 111protected TypeListItem CreateFullyQualifiedTypeListItem(INamedTypeSymbol namedTypeSymbol, ProjectId projectId, bool hidden) 205private ImmutableArray<ObjectListItem> GetBaseTypeListItems(INamedTypeSymbol namedTypeSymbol, Compilation compilation, ProjectId projectId) 213var symbolBuilder = ImmutableArray.CreateBuilder<INamedTypeSymbol>(); 221foreach (var interfaceSymbol in namedTypeSymbol.Interfaces) 240var typeSymbol = parentTypeItem.ResolveTypedSymbol(compilation); 264var typeSymbol = parentTypeItem.ResolveTypedSymbol(compilation); 291INamedTypeSymbol namedTypeSymbol, 316private static ImmutableArray<ISymbol> GetMemberSymbols(INamedTypeSymbol namedTypeSymbol, Compilation compilation) 332private static ImmutableArray<ISymbol> GetInheritedMemberSymbols(INamedTypeSymbol namedTypeSymbol, Compilation compilation) 339foreach (var baseType in namedTypeSymbol.GetBaseTypes()) 374private static void AddOverriddenMembers(INamedTypeSymbol namedTypeSymbol, ref HashSet<ISymbol> overriddenMembers) 400var typeSymbol = parentTypeItem.ResolveTypedSymbol(compilation); 537foreach (var typeMember in namespaceOrTypeSymbol.GetTypeMembers()) 548private static ImmutableArray<INamedTypeSymbol> GetAccessibleTypeMembers(INamespaceOrTypeSymbol namespaceOrTypeSymbol, IAssemblySymbol assemblySymbol) 551var builder = ImmutableArray.CreateBuilder<INamedTypeSymbol>(typeMembers.Length); 553foreach (var typeMember in typeMembers) 564private static bool IncludeTypeMember(INamedTypeSymbol typeMember, IAssemblySymbol assemblySymbol) 663private static ImmutableArray<INamedTypeSymbol> GetAccessibleTypes(INamespaceSymbol namespaceSymbol, Compilation compilation) 666var builder = ImmutableArray.CreateBuilder<INamedTypeSymbol>(typeMembers.Length); 667using var _ = ArrayBuilder<INamedTypeSymbol>.GetInstance(out var stack); 669foreach (var typeMember in typeMembers) 677foreach (var nestedTypeMember in GetAccessibleTypeMembers(typeSymbol, compilation.Assembly)) 787foreach (var type in types)
Library\ObjectBrowser\AbstractObjectBrowserLibraryManager.cs (1)
442return this.LibraryService.NavInfoFactory.CreateForType((INamedTypeSymbol)symbol, project, compilation, useExpandedHierarchy);
Library\ObjectBrowser\Lists\TypeListItem.cs (2)
9internal sealed class TypeListItem : SymbolListItem<INamedTypeSymbol> 11internal TypeListItem(ProjectId projectId, INamedTypeSymbol typeSymbol, string displayText, string fullNameText, string searchText, bool isHidden)
Library\ObjectBrowser\ObjectList.cs (1)
432var typeSymbol = typeListItem.ResolveTypedSymbol(compilation);
Library\VsNavInfo\NavInfoFactory.cs (1)
79typeSymbol = ((INamedTypeSymbol)typeSymbol).TypeArguments[0];
MoveStaticMembers\TypeNameItem.cs (2)
14public INamedTypeSymbol? NamedType { get; } 20public TypeNameItem(bool isFromHistory, string declarationFile, INamedTypeSymbol type)
MoveStaticMembers\VisualStudioMoveStaticMembersOptionsService.cs (8)
39public readonly LinkedList<INamedTypeSymbol> History = new(); 41public MoveStaticMembersOptions GetMoveMembersToTypeOptions(Document document, INamedTypeSymbol selectedType, ImmutableArray<ISymbol> selectedNodeSymbols) 89INamedTypeSymbol selectedType, 91LinkedList<INamedTypeSymbol> history, 161INamedTypeSymbol currentType, 163LinkedList<INamedTypeSymbol> history, 184private static bool IsValidTypeToMoveBetween(INamedTypeSymbol destinationType, INamedTypeSymbol sourceType)
ProjectSystem\AbstractEntryPointFinder.cs (2)
13protected readonly HashSet<INamedTypeSymbol> EntryPoints = []; 25public override void VisitNamedType(INamedTypeSymbol symbol)
ProjectSystem\AbstractEntryPointFinderService.cs (2)
12public abstract IEnumerable<INamedTypeSymbol> FindEntryPoints(Compilation compilation, bool findFormsOnly); 14public IEnumerable<INamedTypeSymbol> FindEntryPoints(INamespaceSymbol symbol, bool findFormsOnly)
ProjectSystem\IEntryPointFinderService.cs (2)
21IEnumerable<INamedTypeSymbol> FindEntryPoints(INamespaceSymbol symbol, bool findFormsOnly); 28IEnumerable<INamedTypeSymbol> FindEntryPoints(Compilation compilation, bool findFormsOnly);
PullMemberUp\MainDialog\BaseTypeTreeNodeViewModel.cs (4)
22internal sealed class BaseTypeTreeNodeViewModel : SymbolViewModel<INamedTypeSymbol> 36private BaseTypeTreeNodeViewModel(INamedTypeSymbol node, IGlyphService glyphService) : base(node, glyphService) 46INamedTypeSymbol root, 55var currentTypeSymbol = currentTreeNode.Symbol;
PullMemberUp\VisualStudioPullMemberUpService.cs (1)
43var containingType = selectedMembers[0].ContainingType;
Venus\ContainedLanguageCodeSupport.cs (13)
46var type = document.Project.GetCompilationAsync(cancellationToken).WaitAndGetResult_Venus(cancellationToken).GetTypeByMetadataName(className); 59var type = document.Project.GetCompilationAsync(cancellationToken).WaitAndGetResult_Venus(cancellationToken).GetTypeByMetadataName(className); 90var type = compilation.GetTypeByMetadataName(className); 108var methods = type.GetMembers().OfType<IMethodSymbol>().Where(m => m.CompatibleSignatureToDelegate((INamedTypeSymbol)eventType)); 158var type = thisCompilation.GetTypeByMetadataName(className); 177if (eventType.Kind != SymbolKind.NamedType || ((INamedTypeSymbol)eventType).DelegateInvokeMethod == null) 188var invokeMethod = ((INamedTypeSymbol)eventType).DelegateInvokeMethod; 260var type = thisDocument.Project.GetCompilationAsync(cancellationToken).WaitAndGetResult_Venus(cancellationToken).GetTypeByMetadataName(className); 293var type = document.Project.GetCompilationAsync(cancellationToken).WaitAndGetResult_Venus(cancellationToken).GetTypeByMetadataName(className); 422var type = document.Project.GetCompilationAsync(cancellationToken).WaitAndGetResult_Venus(cancellationToken).GetTypeByMetadataName(typeName); 461internal static ISymbol LookupMemberId(INamedTypeSymbol type, string uniqueMemberID) 478Document document, string objectTypeName, string nameOfEvent, INamedTypeSymbol type, CancellationToken cancellationToken) 483var objectType = compilation.GetTypeByMetadataName(objectTypeName);
Microsoft.VisualStudio.LanguageServices.CSharp (20)
CodeModel\CSharpCodeModelService.cs (3)
2059public override EnvDTE80.vsCMClassKind GetClassKind(SyntaxNode typeNode, INamedTypeSymbol typeSymbol) 2155public override EnvDTE80.vsCMDataTypeKind GetDataTypeKind(SyntaxNode typeNode, INamedTypeSymbol symbol) 2218public override EnvDTE80.vsCMInheritanceKind GetInheritanceKind(SyntaxNode typeNode, INamedTypeSymbol typeSymbol)
CodeModel\CSharpCodeModelService_Prototype.cs (8)
38var namedType = (INamedTypeSymbol)symbol; 41return GetDelegatePrototype((INamedTypeSymbol)symbol, flags); 63return GetDelegatePrototype(delegateDeclaration, (INamedTypeSymbol)symbol, flags); 74private string GetDelegatePrototype(INamedTypeSymbol symbol, PrototypeFlags flags) 96private string GetDelegatePrototype(DelegateDeclarationSyntax node, INamedTypeSymbol symbol, PrototypeFlags flags) 303private void AppendDelegatePrototype(StringBuilder builder, INamedTypeSymbol symbol, PrototypeFlags flags, string baseName) 584if (includeGenerics && current is INamedTypeSymbol { Arity: > 0 } namedType)
CodeModel\MethodXml\MethodXmlBuilder.cs (1)
492if (leftHandSymbol is INamedTypeSymbol namedType)
ObjectBrowser\DescriptionBuilder.cs (6)
31INamedTypeSymbol typeSymbol, _VSOBJDESCOPTIONS options, CancellationToken cancellationToken) 62INamedTypeSymbol typeSymbol, _VSOBJDESCOPTIONS options, CancellationToken cancellationToken) 96var underlyingType = typeSymbol.EnumUnderlyingType; 108var baseType = typeSymbol.BaseType; 161private void BuildTypeModifiers(INamedTypeSymbol typeSymbol) 318private async Task BuildGenericConstraintsAsync(INamedTypeSymbol typeSymbol, CancellationToken cancellationToken)
ProjectSystemShim\CSharpEntryPointFinder.cs (1)
17public static IEnumerable<INamedTypeSymbol> FindEntryPoints(Compilation compilation)
ProjectSystemShim\CSharpEntryPointFinderService.cs (1)
19public override IEnumerable<INamedTypeSymbol> FindEntryPoints(Compilation compilation, bool findFormsOnly)
Microsoft.VisualStudio.LanguageServices.CSharp.UnitTests (8)
GlyphExtensionsTests.cs (7)
71pointedAtType: (INamedTypeSymbol)CreateSymbolMock(SymbolKind.NamedType, typeKind: TypeKind.Class)); 80containingType: (INamedTypeSymbol)CreateSymbolMock(SymbolKind.NamedType, typeKind: TypeKind.Enum)); 100elementType: (INamedTypeSymbol)CreateSymbolMock(SymbolKind.NamedType, typeKind: TypeKind.Class)); 105target: (INamedTypeSymbol)CreateSymbolMock(SymbolKind.NamedType, typeKind: TypeKind.Class)); 181INamedTypeSymbol containingType = null, 198INamedTypeSymbol containingType = null, 233var namedTypeMock = symbolMock.As<INamedTypeSymbol>();
ProjectSystemShim\EntryPointFinderTests.cs (1)
35private static void Validate(string signature, Action<IEnumerable<INamedTypeSymbol>> validate)
Microsoft.VisualStudio.LanguageServices.UnitTests (3)
CommonControls\NewTypeDestinationSelectionViewModelTests.vb (1)
237Dim extractableMembers = DirectCast(symbol, INamedTypeSymbol).GetMembers().Where(Function(s) Not (TypeOf s Is IMethodSymbol) OrElse DirectCast(s, IMethodSymbol).MethodKind <> MethodKind.Constructor)
ExtractInterface\ExtractInterfaceViewModelTests.vb (1)
298Dim extractableMembers = DirectCast(symbol, INamedTypeSymbol).GetMembers().Where(Function(s) Not (TypeOf s Is IMethodSymbol) OrElse DirectCast(s, IMethodSymbol).MethodKind <> MethodKind.Constructor)
MoveStaticMembers\MoveStaticMembersViewModelTest.vb (1)
40New LinkedList(Of INamedTypeSymbol),
Microsoft.VisualStudio.LanguageServices.VisualBasic (18)
CodeModel\Extenders\GenericExtender.vb (2)
32Dim typeSymbol = CType(_codeType.Value.LookupTypeSymbol(), INamedTypeSymbol) 60Dim typeSymbol = CType(_codeType.Value.LookupTypeSymbol(), INamedTypeSymbol)
CodeModel\VisualBasicCodeModelService.vb (5)
2144Public Overrides Function GetClassKind(typeNode As SyntaxNode, typeSymbol As INamedTypeSymbol) As EnvDTE80.vsCMClassKind 2358Public Overrides Function GetDataTypeKind(typeNode As SyntaxNode, symbol As INamedTypeSymbol) As EnvDTE80.vsCMDataTypeKind 2571Public Overrides Function GetInheritanceKind(typeNode As SyntaxNode, typeSymbol As INamedTypeSymbol) As EnvDTE80.vsCMInheritanceKind 2907(symbol.Kind = SymbolKind.NamedType AndAlso DirectCast(symbol, INamedTypeSymbol).TypeKind = TypeKind.Module) OrElse 3115Dim namedTypeSymbol = TryCast(typeSymbol, INamedTypeSymbol)
CodeModel\VisualBasicCodeModelService_Prototype.vb (2)
42Dim namedTypeSymbol = DirectCast(symbol, INamedTypeSymbol) 48Dim eventType = TryCast(eventSymbol.Type, INamedTypeSymbol)
Help\VisualBasicHelpContextService.vb (2)
105If Not isContainingType AndAlso TypeOf symbol Is INamedTypeSymbol Then 106Dim type = DirectCast(symbol, INamedTypeSymbol)
ObjectBrowser\DescriptionBuilder.vb (4)
30typeSymbol As INamedTypeSymbol, 68typeSymbol As INamedTypeSymbol, 304Dim delegateInvokeMethod = CType(eventType, INamedTypeSymbol).DelegateInvokeMethod 332Private Sub BuildTypeModifiers(typeSymbol As INamedTypeSymbol)
ProjectSystemShim\VisualBasicEntryPointFinder.vb (2)
27Public Shared Function FindEntryPoints(compilation As Compilation, findFormsOnly As Boolean) As IEnumerable(Of INamedTypeSymbol) 35Public Overrides Sub VisitNamedType(symbol As INamedTypeSymbol)
ProjectSystemShim\VisualBasicEntryPointFinderService.vb (1)
20Public Overrides Function FindEntryPoints(compilation As Compilation, findFormsOnly As Boolean) As IEnumerable(Of INamedTypeSymbol)
Mvc.Analyzers.Test (61)
CodeAnalysisExtensionsTest.cs (52)
25var attribute = compilation.GetTypeByMetadataName(typeof(ProducesResponseTypeAttribute).FullName); 26var testClass = compilation.GetTypeByMetadataName("TestApp.TestController"); 53var attribute = compilation.GetTypeByMetadataName(typeof(ProducesResponseTypeAttribute).FullName); 54var testClass = compilation.GetTypeByMetadataName("TestApp.TestClass"); 90var attribute = compilation.GetTypeByMetadataName(typeof(ProducesResponseTypeAttribute).FullName); 91var testClass = compilation.GetTypeByMetadataName("TestApp.TestClass"); 127var attribute = compilation.GetTypeByMetadataName(typeof(ProducesResponseTypeAttribute).FullName); 128var testClass = compilation.GetTypeByMetadataName("TestApp.TestClass"); 164var attribute = compilation.GetTypeByMetadataName(typeof(ProducesResponseTypeAttribute).FullName); 165var testClass = compilation.GetTypeByMetadataName("TestApp.TestClass"); 209var attribute = compilation.GetTypeByMetadataName(typeof(ProducesResponseTypeAttribute).FullName); 210var testClass = compilation.GetTypeByMetadataName("TestApp.TestClass"); 252var attribute = compilation.GetTypeByMetadataName(typeof(ProducesResponseTypeAttribute).FullName); 253var testClass = compilation.GetTypeByMetadataName("TestApp.TestClass"); 279var attribute = compilation.GetTypeByMetadataName(typeof(ApiConventionTypeAttribute).FullName); 280var testClass = compilation.GetTypeByMetadataName("TestApp.TestClass"); 306var attribute = compilation.GetTypeByMetadataName(typeof(ApiConventionTypeAttribute).FullName); 307var testClass = compilation.GetTypeByMetadataName("TestApp.TestClass"); 349var attribute = compilation.GetTypeByMetadataName(typeof(ApiConventionTypeAttribute).FullName); 350var testClass = compilation.GetTypeByMetadataName("TestApp.TestClass"); 397var attribute = compilation.GetTypeByMetadataName(typeof(ApiConventionTypeAttribute).FullName); 398var testClass = compilation.GetTypeByMetadataName("TestApp.TestClass"); 435var attribute = compilation.GetTypeByMetadataName(typeof(ApiConventionTypeAttribute).FullName); 436var testClass = compilation.GetTypeByMetadataName("TestApp.TestClass"); 473var attribute = compilation.GetTypeByMetadataName("TestApp.HasAttribute_ReturnsFalseIfTypeDoesNotHaveAttribute"); 474var testClass = compilation.GetTypeByMetadataName("TestApp.HasAttribute_ReturnsFalseIfTypeDoesNotHaveAttributeTest"); 503var attribute = compilation.GetTypeByMetadataName("Microsoft.AspNetCore.Mvc.ControllerAttribute"); 504var testClass = compilation.GetTypeByMetadataName("TestApp.TestController"); 529var attribute = compilation.GetTypeByMetadataName("Microsoft.AspNetCore.Mvc.ControllerAttribute"); 530var testClass = compilation.GetTypeByMetadataName($"TestApp.TestController"); 560var @interface = compilation.GetTypeByMetadataName("TestApp.ITestInterface"); 561var testClass = compilation.GetTypeByMetadataName("TestApp.TestController"); 590var attribute = compilation.GetTypeByMetadataName("TestApp.TestAttribute"); 591var testClass = compilation.GetTypeByMetadataName("TestApp.TestController"); 624var attribute = compilation.GetTypeByMetadataName("TestApp.TestAttribute"); 625var testClass = compilation.GetTypeByMetadataName("TestApp.TestController"); 655var attribute = compilation.GetTypeByMetadataName("TestApp.TestAttribute"); 656var testClass = compilation.GetTypeByMetadataName("TestApp.TestController"); 689var attribute = compilation.GetTypeByMetadataName("TestApp.TestAttribute"); 690var testClass = compilation.GetTypeByMetadataName("TestApp.TestController"); 715var sourceType = compilation.GetTypeByMetadataName("TestApp.TypeA"); 716var target = compilation.GetTypeByMetadataName("TestApp.TypeB"); 736var sourceType = compilation.GetTypeByMetadataName("TestApp.TypeA"); 737var target = compilation.GetTypeByMetadataName("System.IDisposable"); 757var sourceType = compilation.GetTypeByMetadataName("TestApp.TestType"); 758var target = compilation.GetTypeByMetadataName("TestApp.TestType"); 782var sourceType = compilation.GetTypeByMetadataName("TestApp.ITestInterface"); 783var target = compilation.GetTypeByMetadataName("TestApp.TestType"); 805var sourceType = compilation.GetTypeByMetadataName("TestApp.ITestInterface"); 806var target = compilation.GetTypeByMetadataName("TestApp.ITestInterface"); 838var sourceType = compilation.GetTypeByMetadataName("TestApp.ITestInterface"); 839var target = compilation.GetTypeByMetadataName("TestApp.TestClass");
TopLevelParameterNameAnalyzerTest.cs (9)
320var modelType = compilation.GetTypeByMetadataName("Microsoft.AspNetCore.Mvc.Analyzers.TopLevelParameterNameAnalyzerTestFiles.TestController"); 410var modelType = compilation.Assembly.GetTypeByMetadataName("Microsoft.AspNetCore.Mvc.Analyzers.TopLevelParameterNameAnalyzerTestFiles.TestController"); 435var type = compilation.GetTypeByMetadataName("TestApp.GetNameTests"); 460var type = compilation.GetTypeByMetadataName("TestApp.GetNameTests"); 484var type = compilation.GetTypeByMetadataName("TestApp.GetNameTests"); 508var type = compilation.GetTypeByMetadataName("TestApp.GetNameTests"); 532var type = compilation.GetTypeByMetadataName("TestApp.SpecifiesModelTypeTests"); 555var type = compilation.GetTypeByMetadataName("TestApp.SpecifiesModelTypeTests"); 578var type = compilation.GetTypeByMetadataName("TestApp.SpecifiesModelTypeTests");
Mvc.Api.Analyzers.Test (64)
ActualApiResponseMetadataFactoryTest.cs (4)
73var returnType = compilation.GetTypeByMetadataName($"{Namespace}.TestController"); 369var type = compilation.GetTypeByMetadataName(typeName); 390var controllerType = compilation.GetTypeByMetadataName(controllerTypeName); 409var returnType = compilation.GetTypeByMetadataName($"{Namespace}.{test}");
ApiControllerFactsTest.cs (5)
52var type = compilation.GetTypeByMetadataName(typeof(ApiConventionAnalyzerTest_IndexModel).FullName); 68var type = compilation.GetTypeByMetadataName(typeof(ApiConventionAnalyzerTest_NotApiController).FullName); 84var type = compilation.GetTypeByMetadataName(typeof(ApiConventionAnalyzerTest_NotAction).FullName); 100var type = compilation.GetTypeByMetadataName(typeof(ApiConventionAnalyzerTest_Valid).FullName); 116var type = compilation.GetTypeByMetadataName(typeof(IsApiControllerAction_ReturnsTrue_IfAttributeIsDeclaredOnAssemblyController).FullName);
DeclaredApiResponseMetadataTest.cs (1)
155protected override INamedTypeSymbol CommonAttributeClass => throw new System.NotImplementedException();
MvcFactsTest.cs (13)
66var controllerAttribute = compilation.GetTypeByMetadataName(ControllerAttribute); 67var nonControllerAttribute = compilation.GetTypeByMetadataName(NonControllerAttribute); 68var typeSymbol = compilation.GetTypeByMetadataName(type.FullName); 80var controllerAttribute = compilation.GetTypeByMetadataName(ControllerAttribute); 81var nonControllerAttribute = compilation.GetTypeByMetadataName(NonControllerAttribute); 82var typeSymbol = compilation.GetTypeByMetadataName(type.FullName); 150var nonActionAttribute = compilation.GetTypeByMetadataName(NonActionAttribute); 152var typeSymbol = compilation.GetTypeByMetadataName(type.FullName); 182var nonActionAttribute = compilation.GetTypeByMetadataName(NonActionAttribute); 184var typeSymbol = compilation.GetTypeByMetadataName(typeof(NotDisposableWithDisposeThatIsNotInterfaceContract).FullName); 197var nonActionAttribute = compilation.GetTypeByMetadataName(NonActionAttribute); 199var typeSymbol = compilation.GetTypeByMetadataName(type.FullName); 211var type = compilation.GetSpecialType(SpecialType.System_IDisposable);
SymbolApiConventionMatcherTest.cs (18)
274var typeSymbol = compilation.GetTypeByMetadataName(type.FullName); 275var conventionTypeSymbol = compilation.GetTypeByMetadataName(conventionType.FullName); 290var type = compilation.GetTypeByMetadataName(BaseTypeName); 291var conventionType = compilation.GetTypeByMetadataName(BaseTypeName); 306var type = compilation.GetTypeByMetadataName(DerivedTypeName); 307var conventionType = compilation.GetTypeByMetadataName(BaseTypeName); 322var type = compilation.GetTypeByMetadataName(BaseTypeName); 323var conventionType = compilation.GetTypeByMetadataName(DerivedTypeName); 338var type = compilation.GetSpecialType(SpecialType.System_String); 339var conventionType = compilation.GetTypeByMetadataName(BaseTypeName); 430var testController = compilation.GetTypeByMetadataName(TestControllerName); 431var testConvention = compilation.GetTypeByMetadataName(TestConventionName); 450var testConvention = compilation.GetTypeByMetadataName(TestConventionName); 468var testConvention = compilation.GetTypeByMetadataName(TestConventionName); 486var testConvention = compilation.GetTypeByMetadataName(TestConventionName); 504var testConvention = compilation.GetTypeByMetadataName(TestConventionName); 523var testConvention = compilation.GetTypeByMetadataName(TestConventionName); 542var testConvention = compilation.GetTypeByMetadataName(TestConventionName);
SymbolApiResponseMetadataProviderTest.cs (23)
18var controller = compilation.GetTypeByMetadataName($"{Namespace}.{nameof(GetResponseMetadata_ControllerWithoutConvention)}"); 36var controller = compilation.GetTypeByMetadataName($"{Namespace}.{nameof(GetResponseMetadata_ControllerWithoutConvention)}"); 54var controller = compilation.GetTypeByMetadataName($"{Namespace}.{nameof(GetResponseMetadata_ControllerActionWithAttributes)}"); 72var controller = compilation.GetTypeByMetadataName($"{Namespace}.{nameof(GetResponseMetadata_ControllerActionWithAttributes)}"); 95var controller = compilation.GetTypeByMetadataName($"{Namespace}.{nameof(GetResponseMetadata_ControllerActionWithAttributes)}"); 118var controller = compilation.GetTypeByMetadataName($"{Namespace}.{nameof(GetResponseMetadata_ControllerActionWithAttributes)}"); 141var controller = compilation.GetTypeByMetadataName($"{Namespace}.{nameof(GetResponseMetadata_ControllerActionWithAttributes)}"); 164var controller = compilation.GetTypeByMetadataName($"{Namespace}.{nameof(GetResponseMetadata_ControllerActionWithAttributes)}"); 186var controller = compilation.GetTypeByMetadataName($"{Namespace}.{nameof(GetResponseMetadata_ControllerActionWithAttributes)}"); 217var controller = compilation.GetTypeByMetadataName($"{Namespace}.{nameof(GetResponseMetadata_ControllerActionWithAttributes)}"); 239var controller = compilation.GetTypeByMetadataName($"{Namespace}.{nameof(GetResponseMetadata_ControllerActionWithAttributes)}"); 272var controller = compilation.GetTypeByMetadataName($"{Namespace}.{typeName}"); 295var controller = compilation.GetTypeByMetadataName(type.FullName); 317var controller = compilation.GetTypeByMetadataName(type.FullName); 391var controller = compilation.GetTypeByMetadataName($"{Namespace}.{nameof(GetResponseMetadata_ControllerActionWithAttributes)}"); 405var expected = compilation.GetTypeByMetadataName(typeof(ProblemDetails).FullName); 407var type = compilation.GetTypeByMetadataName(typeof(GetErrorResponseType_ReturnsProblemDetails_IfNoAttributeIsDiscoveredController).FullName); 423var expected = compilation.GetTypeByMetadataName(typeof(GetErrorResponseType_ReturnsTypeDefinedAtAssemblyModel).FullName); 425var type = compilation.GetTypeByMetadataName(typeof(GetErrorResponseType_ReturnsTypeDefinedAtAssemblyController).FullName); 441var expected = compilation.GetTypeByMetadataName(typeof(GetErrorResponseType_ReturnsTypeDefinedAtControllerModel).FullName); 443var type = compilation.GetTypeByMetadataName(typeof(GetErrorResponseType_ReturnsTypeDefinedAtControllerController).FullName); 459var expected = compilation.GetTypeByMetadataName(typeof(GetErrorResponseType_ReturnsTypeDefinedAtActionModel).FullName); 461var type = compilation.GetTypeByMetadataName(typeof(GetErrorResponseType_ReturnsTypeDefinedAtActionController).FullName);
Roslyn.Diagnostics.Analyzers (837)
AbstractApplyTraitToClass`1.cs (1)
29INamedTypeSymbol TraitAttribute,
AbstractCreateTestAccessor`1.cs (2)
37var typeSymbol = (INamedTypeSymbol)semanticModel.GetDeclaredSymbol(type, context.CancellationToken);
AbstractDoNotCopyValue.cs (8)
315public override void VisitNamedType(INamedTypeSymbol symbol) 1375{ Type: INamedTypeSymbol { OriginalDefinition: var taskType } } 1567var nullableUnderlyingType = ((INamedTypeSymbol)type).TypeArguments.FirstOrDefault(); 1666private readonly ConcurrentDictionary<INamedTypeSymbol, bool> _typesToNonCopyable 1669public INamedTypeSymbol? ValueTaskT { get; } 1670public INamedTypeSymbol? ConfiguredValueTaskAwaitableT { get; } 1691if (symbol is not INamedTypeSymbol namedTypeSymbol) 1704private 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;
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) &&
PartsExportedWithMEFv2MustBeMarkedAsShared.cs (4)
44var exportAttribute = compilationContext.Compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemCompositionExportAttribute); 45var attributeUsageAttribute = compilationContext.Compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemAttributeUsageAttribute); 55var namedType = (INamedTypeSymbol)symbolContext.Symbol;
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\Compilers\Core\Portable\SourceGeneration\GeneratedCodeUtilities.cs (1)
19ISymbol symbol, INamedTypeSymbol generatedCodeAttribute)
src\RoslynAnalyzers\Utilities\Compiler\CodeMetrics\CodeAnalysisMetricData.AssemblyMetricData.cs (2)
21ImmutableHashSet<INamedTypeSymbol> coupledNamedTypes, 45var coupledTypesBuilder = ImmutableHashSet.CreateBuilder<INamedTypeSymbol>();
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\RoslynAnalyzers\Utilities\Compiler\CodeMetrics\CodeAnalysisMetricData.EventMetricData.cs (2)
18ImmutableHashSet<INamedTypeSymbol> coupledNamedTypes, 30var coupledTypesBuilder = ImmutableHashSet.CreateBuilder<INamedTypeSymbol>();
src\RoslynAnalyzers\Utilities\Compiler\CodeMetrics\CodeAnalysisMetricData.FieldMetricData.cs (2)
18ImmutableHashSet<INamedTypeSymbol> coupledNamedTypes, 29var coupledTypesBuilder = ImmutableHashSet.CreateBuilder<INamedTypeSymbol>();
src\RoslynAnalyzers\Utilities\Compiler\CodeMetrics\CodeAnalysisMetricData.MethodMetricData.cs (2)
18ImmutableHashSet<INamedTypeSymbol> coupledNamedTypes, 29var coupledTypesBuilder = ImmutableHashSet.CreateBuilder<INamedTypeSymbol>();
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\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\RoslynAnalyzers\Utilities\Compiler\CodeMetrics\CodeAnalysisMetricData.PropertyMetricData.cs (2)
18ImmutableHashSet<INamedTypeSymbol> coupledNamedTypes, 30var coupledTypesBuilder = ImmutableHashSet.CreateBuilder<INamedTypeSymbol>();
src\RoslynAnalyzers\Utilities\Compiler\CodeMetrics\CodeMetricsAnalysisContext.cs (2)
18Func<INamedTypeSymbol, bool>? isExcludedFromInheritanceCountFunc = null) 32public Func<INamedTypeSymbol, bool> IsExcludedFromInheritanceCountFunc { get; }
src\RoslynAnalyzers\Utilities\Compiler\CodeMetrics\MetricsHelper.cs (12)
39internal static void AddCoupledNamedTypes(ImmutableHashSet<INamedTypeSymbol>.Builder builder, WellKnownTypeProvider wellKnownTypeProvider, 40ImmutableHashSet<INamedTypeSymbol> coupledTypes) 42foreach (var coupledType in coupledTypes) 48internal static void AddCoupledNamedTypes(ImmutableHashSet<INamedTypeSymbol>.Builder builder, WellKnownTypeProvider wellKnownTypeProvider, 54internal static void AddCoupledNamedTypes(ImmutableHashSet<INamedTypeSymbol>.Builder builder, WellKnownTypeProvider wellKnownTypeProvider, 195ImmutableHashSet<INamedTypeSymbol>.Builder builder, 349private static void AddCoupledNamedTypesCore(ImmutableHashSet<INamedTypeSymbol>.Builder builder, ITypeSymbol typeOpt, 352if (typeOpt is INamedTypeSymbol usedType && 370static bool isIgnoreableType(INamedTypeSymbol namedType, WellKnownTypeProvider wellKnownTypeProvider) 400internal static void RemoveContainingTypes(ISymbol symbol, ImmutableHashSet<INamedTypeSymbol>.Builder coupledTypesBuilder) 402var namedType = symbol as INamedTypeSymbol ?? symbol.ContainingType;
src\RoslynAnalyzers\Utilities\Compiler\DiagnosticHelpers.cs (1)
68if (symbol is INamedTypeSymbol namedType &&
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\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\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) 208private static bool HasDisposeCloseAsyncMethodSignature(this IMethodSymbol method, INamedTypeSymbol? taskType) 216INamedTypeSymbol? task, 217INamedTypeSymbol? valueTask, 218INamedTypeSymbol? configuredValueTaskAwaitable) 231private static bool HasOverriddenDisposeCoreAsyncMethodSignature(this IMethodSymbol method, [NotNullWhen(returnValue: true)] INamedTypeSymbol? task) 244private static bool HasVirtualOrOverrideDisposeCoreAsyncMethodSignature(this IMethodSymbol method, [NotNullWhen(returnValue: true)] INamedTypeSymbol? valueTask) 258INamedTypeSymbol? iDisposable = compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemIDisposable); 259INamedTypeSymbol? iAsyncDisposable = compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemIAsyncDisposable); 260INamedTypeSymbol? configuredAsyncDisposable = compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemRuntimeCompilerServicesConfiguredAsyncDisposable); 261INamedTypeSymbol? task = compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemThreadingTasksTask); 262INamedTypeSymbol? valueTask = compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemThreadingTasksValueTask); 263INamedTypeSymbol? configuredValueTaskAwaitable = compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemRuntimeCompilerServicesConfiguredValueTaskAwaitable); 272INamedTypeSymbol? iDisposable, 273INamedTypeSymbol? iAsyncDisposable, 274INamedTypeSymbol? configuredAsyncDisposable, 275INamedTypeSymbol? task, 276INamedTypeSymbol? valueTask, 277INamedTypeSymbol? configuredValueTaskAwaitable) 321public static bool IsSerializationConstructor([NotNullWhen(returnValue: true)] this IMethodSymbol? method, INamedTypeSymbol? serializationInfoType, INamedTypeSymbol? streamingContextType) 327public static bool IsGetObjectData([NotNullWhen(returnValue: true)] this IMethodSymbol? method, INamedTypeSymbol? serializationInfoType, INamedTypeSymbol? streamingContextType) 374public static bool IsCollectionAddMethod(this IMethodSymbol method, ImmutableHashSet<INamedTypeSymbol> iCollectionTypes) 395public static bool IsTaskFromResultMethod(this IMethodSymbol method, [NotNullWhen(returnValue: true)] INamedTypeSymbol? taskType) 404public static bool IsTaskConfigureAwaitMethod(this IMethodSymbol method, [NotNullWhen(returnValue: true)] INamedTypeSymbol? genericTaskType) 416public static bool IsAsyncDisposableConfigureAwaitMethod(this IMethodSymbol method, [NotNullWhen(returnValue: true)] INamedTypeSymbol? asyncDisposableType, [NotNullWhen(returnValue: true)] INamedTypeSymbol? taskAsyncEnumerableExtensions) 493public static bool IsLockMethod(this IMethodSymbol method, [NotNullWhen(returnValue: true)] INamedTypeSymbol? systemThreadingMonitor) 503public static bool IsInterlockedExchangeMethod(this IMethodSymbol method, INamedTypeSymbol? systemThreadingInterlocked) 515public static bool IsInterlockedCompareExchangeMethod(this IMethodSymbol method, INamedTypeSymbol? systemThreadingInterlocked) 546public static bool IsBenchmarkOrXUnitTestMethod(this IMethodSymbol method, ConcurrentDictionary<INamedTypeSymbol, bool> knownTestAttributes, INamedTypeSymbol? benchmarkAttribute, INamedTypeSymbol? xunitFactAttribute) 571var typeSymbol = methodSymbol.ContainingType;
src\RoslynAnalyzers\Utilities\Compiler\Extensions\INamedTypeSymbolExtensions.cs (9)
19public static bool IsFileLocal(this INamedTypeSymbol symbol) => symbol.IsFileLocal; 43public static bool DerivesFromOrImplementsAnyConstructionOf(this INamedTypeSymbol type, INamedTypeSymbol parentType) 50for (INamedTypeSymbol? baseType = type.OriginalDefinition; 68public static bool OverridesEquals(this INamedTypeSymbol symbol) 74public static bool IsBenchmarkOrXUnitTestAttribute(this INamedTypeSymbol attributeClass, ConcurrentDictionary<INamedTypeSymbol, bool> knownTestAttributes, INamedTypeSymbol? benchmarkAttribute, INamedTypeSymbol? xunitFactAttribute)
src\RoslynAnalyzers\Utilities\Compiler\Extensions\IPropertySymbolExtensions.cs (1)
36var typeSymbol = propertySymbol.ContainingType;
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\RoslynAnalyzers\Utilities\Compiler\Extensions\ITypeSymbolExtensions.cs (14)
116INamedTypeSymbol? iDisposable, 117INamedTypeSymbol? iAsyncDisposable, 118INamedTypeSymbol? configuredAsyncDisposable) 140static bool IsInterfaceOrImplementsInterface(ITypeSymbol type, INamedTypeSymbol? interfaceType) 150public static IEnumerable<AttributeData> GetApplicableAttributes(this INamedTypeSymbol type, INamedTypeSymbol? attributeUsageAttribute) 182static bool IsInheritedAttribute(AttributeData attributeData, INamedTypeSymbol attributeUsageAttribute) 184for (var currentAttributeClass = attributeData.AttributeClass; 217public static IEnumerable<AttributeData> GetApplicableExportAttributes(this INamedTypeSymbol? type, INamedTypeSymbol? exportAttributeV1, INamedTypeSymbol? exportAttributeV2, INamedTypeSymbol? inheritedExportAttribute) 265=> typeSymbol.IsNullableValueType() && ((INamedTypeSymbol)typeSymbol).TypeArguments[0].SpecialType == SpecialType.System_Boolean; 268=> (typeSymbol as INamedTypeSymbol)?.TupleUnderlyingType ?? typeSymbol;
src\RoslynAnalyzers\Utilities\Compiler\Options\AnalyzerOptionsExtensions.cs (9)
281if (symbol is INamedTypeSymbol namedType && !excludedTypeNamesWithDerivedTypes.IsEmpty) 283foreach (var type in namedType.GetBaseTypesAndThis()) 379public static SymbolNamesWithValueOption<INamedTypeSymbol?> GetAdditionalRequiredGenericInterfaces( 386private static SymbolNamesWithValueOption<INamedTypeSymbol?> GetAdditionalRequiredGenericInterfaces( 394static SymbolNamesWithValueOption<INamedTypeSymbol?>.NameParts GetParts(string name, Compilation compilation) 401return new SymbolNamesWithValueOption<INamedTypeSymbol?>.NameParts(name, null); 413matchingSymbols[0] is not INamedTypeSymbol namedType || 418return new SymbolNamesWithValueOption<INamedTypeSymbol?>.NameParts(split[0], null); 421return new SymbolNamesWithValueOption<INamedTypeSymbol?>.NameParts(split[0], namedType);
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\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\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Extensions\OperationExtensions.cs (2)
405var notImplementedExceptionType = compilation.NotImplementedExceptionType(); 454static bool IsThrowNotImplementedOperation(INamedTypeSymbol notImplementedExceptionType, IOperation? operation)
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); 177var enumerableType = semanticModel.Compilation.IEnumerableOfTType();
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\NamingStyles\NamingStyleRules.cs (3)
65var containingType = symbol.ContainingType; 87var containingType = symbol.ContainingType; 90foreach (var implementedInterface in implementedInterfaces)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Services\SemanticFacts\ISemanticFacts.cs (4)
67bool LastEnumValueHasInitializer(INamedTypeSymbol namedTypeSymbol); 88bool IsPartial(INamedTypeSymbol typeSymbol, CancellationToken cancellationToken); 107bool IsInExpressionTree(SemanticModel semanticModel, SyntaxNode node, [NotNullWhen(true)] INamedTypeSymbol? expressionType, CancellationToken cancellationToken); 122bool TryGetPrimaryConstructor(INamedTypeSymbol typeSymbol, [NotNullWhen(true)] out IMethodSymbol? primaryConstructor);
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\SymbolKey\SymbolKey.AnonymousFunctionOrDelegateSymbolKey.cs (1)
65var anonymousDelegate = methodSymbol.AssociatedAnonymousDelegate;
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\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\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\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\SymbolKey\SymbolKey.FunctionPointerTypeSymbolKey.cs (2)
37var callingConventionModifiers = ImmutableArray<INamedTypeSymbol>.Empty; 40using var modifiersBuilder = reader.ReadSymbolKeyArray<IFunctionPointerTypeSymbol, INamedTypeSymbol>(
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\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\SymbolKey\SymbolKey.ParameterSymbolKey.cs (1)
64var delegateInvoke = (eventSymbol.Type as INamedTypeSymbol)?.DelegateInvokeMethod;
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\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\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Utilities\AbstractSpeculationAnalyzer.cs (5)
417var type = methodSymbol.ContainingType; 418var newType = newMethodSymbol.ContainingType; 491private static bool EnumTypesAreCompatible(INamedTypeSymbol type1, INamedTypeSymbol type2) 992var newSymbolContainingType = newSymbol.ContainingType;
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Utilities\EnumValueUtilities.cs (1)
21public static object GetNextEnumValue(INamedTypeSymbol enumType)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Compilation\CompilationExtensions.cs (78)
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? EventArgsType(this Compilation compilation) 129public static INamedTypeSymbol? NotImplementedExceptionType(this Compilation compilation) 132public static INamedTypeSymbol? EqualityComparerOfTType(this Compilation compilation) 135public static INamedTypeSymbol? ActionType(this Compilation compilation) 138public static INamedTypeSymbol? ExpressionOfTType(this Compilation compilation) 141public static INamedTypeSymbol? EditorBrowsableAttributeType(this Compilation compilation) 144public static INamedTypeSymbol? EditorBrowsableStateType(this Compilation compilation) 147public static INamedTypeSymbol? TaskType(this Compilation compilation) 150public static INamedTypeSymbol? TaskOfTType(this Compilation compilation) 153public static INamedTypeSymbol? ValueTaskType(this Compilation compilation) 156public static INamedTypeSymbol? ValueTaskOfTType(this Compilation compilation) 159public static INamedTypeSymbol? IEnumerableType(this Compilation compilation) 162public static INamedTypeSymbol? IEnumerableOfTType(this Compilation compilation) 165public static INamedTypeSymbol? IEnumeratorOfTType(this Compilation compilation) 168public static INamedTypeSymbol? IListOfTType(this Compilation compilation) 171public static INamedTypeSymbol? IReadOnlyListOfTType(this Compilation compilation) 174public static INamedTypeSymbol? ISetOfTType(this Compilation compilation) 177public static INamedTypeSymbol? IReadOnlySetOfTType(this Compilation compilation) 180public static INamedTypeSymbol? IAsyncEnumerableOfTType(this Compilation compilation) 183public static INamedTypeSymbol? IAsyncEnumeratorOfTType(this Compilation compilation) 186public static INamedTypeSymbol? ImmutableArrayOfTType(this Compilation compilation) 189public static INamedTypeSymbol? SerializableAttributeType(this Compilation compilation) 192public static INamedTypeSymbol? CoClassType(this Compilation compilation) 195public static INamedTypeSymbol? ComAliasNameAttributeType(this Compilation compilation) 198public static INamedTypeSymbol? SuppressMessageAttributeType(this Compilation compilation) 201public static INamedTypeSymbol? TupleElementNamesAttributeType(this Compilation compilation) 204public static INamedTypeSymbol? NativeIntegerAttributeType(this Compilation compilation) 207public static INamedTypeSymbol? DynamicAttributeType(this Compilation compilation) 210public static INamedTypeSymbol? LazyOfTType(this Compilation compilation) 213public static INamedTypeSymbol? ISerializableType(this Compilation compilation) 216public static INamedTypeSymbol? SerializationInfoType(this Compilation compilation) 219public static INamedTypeSymbol? StreamingContextType(this Compilation compilation) 222public static INamedTypeSymbol? OnDeserializingAttribute(this Compilation compilation) 225public static INamedTypeSymbol? OnDeserializedAttribute(this Compilation compilation) 228public static INamedTypeSymbol? OnSerializingAttribute(this Compilation compilation) 231public static INamedTypeSymbol? OnSerializedAttribute(this Compilation compilation) 234public static INamedTypeSymbol? ComRegisterFunctionAttribute(this Compilation compilation) 237public static INamedTypeSymbol? ComUnregisterFunctionAttribute(this Compilation compilation) 240public static INamedTypeSymbol? ConditionalAttribute(this Compilation compilation) 243public static INamedTypeSymbol? ObsoleteAttribute(this Compilation compilation) 246public static INamedTypeSymbol? SystemCompositionImportingConstructorAttribute(this Compilation compilation) 249public static INamedTypeSymbol? SystemComponentModelCompositionImportingConstructorAttribute(this Compilation compilation) 252public static INamedTypeSymbol? SystemIDisposableType(this Compilation compilation) 255public static INamedTypeSymbol? NotNullAttribute(this Compilation compilation) 258public static INamedTypeSymbol? MaybeNullAttribute(this Compilation compilation) 261public static INamedTypeSymbol? MaybeNullWhenAttribute(this Compilation compilation) 264public static INamedTypeSymbol? AllowNullAttribute(this Compilation compilation) 267public static INamedTypeSymbol? DisallowNullAttribute(this Compilation compilation) 270public static INamedTypeSymbol? DataMemberAttribute(this Compilation compilation) 273public static INamedTypeSymbol? DataContractAttribute(this Compilation compilation) 276public static INamedTypeSymbol? AsyncMethodBuilderAttribute(this Compilation compilation) 279public static INamedTypeSymbol? CancellationTokenType(this Compilation compilation) 282public static INamedTypeSymbol? ValueTupleType(this Compilation compilation, int arity) 285public static INamedTypeSymbol? ListOfTType(this Compilation compilation) 288public static INamedTypeSymbol? ReadOnlySpanOfTType(this Compilation compilation) 291public static INamedTypeSymbol? SpanOfTType(this Compilation compilation) 294public static INamedTypeSymbol? InterpolatedStringHandlerAttributeType(this Compilation compilation) 322public static INamedTypeSymbol? GetBestTypeByMetadataName(this Compilation compilation, string fullyQualifiedMetadataName) 324INamedTypeSymbol? type = null; 326foreach (var currentType in compilation.GetTypesByMetadataName(fullyQualifiedMetadataName)) 361foreach (var candidateTopLevelType in compilation.SourceModule.GlobalNamespace.GetTypeMembers(WellKnownMemberNames.TopLevelStatementsEntryPointTypeName, arity: 0)) 373public static INamedTypeSymbol? TryGetCallingConventionSymbol(this Compilation compilation, string callingConvention)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\IMethodSymbolExtensions.cs (4)
44public static bool HasEventHandlerSignature(this IMethodSymbol method, [NotNullWhen(returnValue: true)] INamedTypeSymbol? eventArgsType) 103public static bool IsEntryPoint(this IMethodSymbol methodSymbol, INamedTypeSymbol? taskType, INamedTypeSymbol? genericTaskType) 119if (method.ReturnType is not INamedTypeSymbol { Arity: 0 })
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\INamedTypeSymbolExtensions.cs (73)
23public static IEnumerable<INamedTypeSymbol> GetBaseTypesAndThis(this INamedTypeSymbol? namedType) 25var current = namedType; 33public static ImmutableArray<ITypeParameterSymbol> GetAllTypeParameters(this INamedTypeSymbol? symbol) 39public static ImmutableArray<ITypeSymbol> GetAllTypeArguments(this INamedTypeSymbol? symbol) 45private static Stack<INamedTypeSymbol> GetContainmentStack(INamedTypeSymbol? symbol) 47var stack = new Stack<INamedTypeSymbol>(); 48for (var current = symbol; current != null; current = current.ContainingType) 56public static bool IsContainedWithin([NotNullWhen(returnValue: true)] this INamedTypeSymbol? symbol, INamedTypeSymbol outer) 59for (var current = symbol; current != null; current = current.ContainingType) 70public static ISymbol? FindImplementationForAbstractMember(this INamedTypeSymbol? type, ISymbol symbol) 81private static bool ImplementationExists(INamedTypeSymbol classOrStructType, ISymbol member) 85this INamedTypeSymbol classOrStructType, 87Func<INamedTypeSymbol, ISymbol, bool> isValidImplementation, 117private static bool IsInterfacePropertyImplemented(INamedTypeSymbol classOrStructType, IPropertySymbol propertySymbol) 125static bool IsAccessorImplemented(IMethodSymbol? accessor, INamedTypeSymbol classOrStructType) 131private static bool IsAbstractPropertyImplemented(INamedTypeSymbol classOrStructType, IPropertySymbol propertySymbol) 154this INamedTypeSymbol classOrStructType, 156Func<INamedTypeSymbol, ISymbol, bool> isValid, 179public static ImmutableArray<(INamedTypeSymbol type, ImmutableArray<ISymbol> members)> GetAllUnimplementedMembers( 180this INamedTypeSymbol classOrStructType, 181IEnumerable<INamedTypeSymbol> interfaces, 197static ImmutableArray<ISymbol> GetImplicitlyImplementableMembers(INamedTypeSymbol type, ISymbol within) 249public static ImmutableArray<(INamedTypeSymbol type, ImmutableArray<ISymbol> members)> GetAllUnimplementedMembersInThis( 250this INamedTypeSymbol classOrStructType, 251IEnumerable<INamedTypeSymbol> interfacesOrAbstractClasses, 267public static ImmutableArray<(INamedTypeSymbol type, ImmutableArray<ISymbol> members)> GetAllUnimplementedMembersInThis( 268this INamedTypeSymbol classOrStructType, 269IEnumerable<INamedTypeSymbol> interfacesOrAbstractClasses, 270Func<INamedTypeSymbol, ISymbol, ImmutableArray<ISymbol>> interfaceMemberGetter, 286public static ImmutableArray<(INamedTypeSymbol type, ImmutableArray<ISymbol> members)> GetAllUnimplementedExplicitMembers( 287this INamedTypeSymbol classOrStructType, 288IEnumerable<INamedTypeSymbol> interfaces, 300private static ImmutableArray<ISymbol> GetExplicitlyImplementableMembers(INamedTypeSymbol type, ISymbol within) 327private static ImmutableArray<(INamedTypeSymbol type, ImmutableArray<ISymbol> members)> GetAllUnimplementedMembers( 328this INamedTypeSymbol classOrStructType, 329IEnumerable<INamedTypeSymbol> interfacesOrAbstractClasses, 330Func<INamedTypeSymbol, ISymbol, Func<INamedTypeSymbol, ISymbol, bool>, CancellationToken, bool> isImplemented, 331Func<INamedTypeSymbol, ISymbol, bool> isValidImplementation, 332Func<INamedTypeSymbol, ISymbol, ImmutableArray<ISymbol>> interfaceMemberGetter, 361private static ImmutableArray<INamedTypeSymbol> GetTypesToImplement( 362INamedTypeSymbol classOrStructType, 363IEnumerable<INamedTypeSymbol> interfacesOrAbstractClasses, 372private static ImmutableArray<INamedTypeSymbol> GetAbstractClassesToImplement( 373IEnumerable<INamedTypeSymbol> abstractClasses) 378private static ImmutableArray<INamedTypeSymbol> GetInterfacesToImplement( 379INamedTypeSymbol classOrStructType, 380IEnumerable<INamedTypeSymbol> interfaces, 387var interfacesToImplement = new List<INamedTypeSymbol>( 392var baseType = classOrStructType.BaseType; 403this INamedTypeSymbol classOrStructType, 404INamedTypeSymbol interfaceType, 405Func<INamedTypeSymbol, ISymbol, Func<INamedTypeSymbol, ISymbol, bool>, CancellationToken, bool> isImplemented, 406Func<INamedTypeSymbol, ISymbol, bool> isValidImplementation, 407Func<INamedTypeSymbol, ISymbol, ImmutableArray<ISymbol>> interfaceMemberGetter, 449this INamedTypeSymbol attributeSymbol, 455var systemAttributeType = compilation.AttributeType(); 457foreach (var type in attributeSymbol.GetBaseTypesAndThis()) 517private static ImmutableArray<ISymbol> GetMembers(INamedTypeSymbol type, ISymbol within) 531this INamedTypeSymbol containingType, CancellationToken cancellationToken) 548foreach (var type in baseTypes) 569Dictionary<ISymbol, int> result, INamedTypeSymbol containingType, CancellationToken cancellationToken) 590Dictionary<ISymbol, int> result, INamedTypeSymbol containingType, CancellationToken cancellationToken) 612Dictionary<ISymbol, int> result, INamedTypeSymbol containingType, 613INamedTypeSymbol type, ref int index, CancellationToken cancellationToken) 626private static bool IsOverridable(ISymbol member, INamedTypeSymbol containingType) 669public static INamedTypeSymbol TryConstruct(this INamedTypeSymbol type, ITypeSymbol[] typeArguments) 672public static bool IsCollectionBuilderAttribute([NotNullWhen(true)] this INamedTypeSymbol? type)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\INamespaceOrTypeSymbolExtensions.cs (3)
90public static IEnumerable<INamedTypeSymbol> GetAllTypes( 106var namedType = (INamedTypeSymbol)current;
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\ISymbolExtensions.cs (15)
98foreach (var baseType in symbol.ContainingType.GetBaseTypes()) 107bool TryFindLooseMatch(ISymbol symbol, INamedTypeSymbol baseType, [NotNullWhen(true)] out ISymbol? looseMatch) 156foreach (var iface in symbol.ContainingType.AllInterfaces) 214public static INamedTypeSymbol? GetContainingTypeOrThis(this ISymbol symbol) 216if (symbol is INamedTypeSymbol namedType) 309=> symbol is INamedTypeSymbol { IsAnonymousType: true }; 352SymbolKind.NamedType => ((INamedTypeSymbol)symbol).Arity, 433INamedTypeSymbol nt => nt.TypeParameters, 454INamedTypeSymbol nt => nt.TypeArguments, 463var containingType = symbol.ContainingType; 504var delegateType = compilation.GetTypeByMetadataName(method.ReturnsVoid 533=> symbol is INamedTypeSymbol { IsStatic: true }; 545foreach (var type in namespaceOrType.GetAllTypes(cancellationToken)) 559return ((INamedTypeSymbol)symbol).GetMembers().OfType<IPropertySymbol>().Where(p => p.CanBeReferencedByName); 809public static bool HasAttribute([NotNullWhen(true)] this ISymbol? symbol, [NotNullWhen(true)] INamedTypeSymbol? attributeClass)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\ISymbolExtensions.RequiresUnsafeModifierVisitor.cs (1)
56public override bool VisitNamedType(INamedTypeSymbol symbol)
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\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\ITypeGenerator.cs (1)
13ITypeSymbol Construct(INamedTypeSymbol namedType, ITypeSymbol[] typeArguments);
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\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\ITypeSymbolExtensions.AnonymousTypeRemover.cs (1)
42public override ITypeSymbol VisitNamedType(INamedTypeSymbol symbol)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\ITypeSymbolExtensions.CollectTypeParameterSymbolsVisitor.cs (1)
57public override void VisitNamedType(INamedTypeSymbol symbol)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\ITypeSymbolExtensions.CompilationTypeGenerator.cs (1)
19public ITypeSymbol Construct(INamedTypeSymbol namedType, ITypeSymbol[] typeArguments)
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) 315INamedTypeSymbol n => ContainsAnonymousType(n), 320private static bool ContainsAnonymousType(INamedTypeSymbol type) 410public static INamedTypeSymbol? GetDelegateType(this ITypeSymbol? typeSymbol, Compilation compilation) 414var expressionOfT = compilation.ExpressionOfTType(); 417var typeArgument = ((INamedTypeSymbol)typeSymbol).TypeArguments[0]; 418return typeArgument as INamedTypeSymbol; 423return typeSymbol as INamedTypeSymbol; 576var n2 = t2 as INamedTypeSymbol; 578if (t1 is not INamedTypeSymbol n1) 628public static bool IsEnumType([NotNullWhen(true)] this ITypeSymbol? type, [NotNullWhen(true)] out INamedTypeSymbol? enumType) 632enumType = (INamedTypeSymbol)type; 724if (type is not INamedTypeSymbol 777=> type is INamedTypeSymbol 785=> symbol is INamedTypeSymbol 793=> type is INamedTypeSymbol namedType &&
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\ITypeSymbolExtensions.MinimalAccessibilityVisitor.cs (2)
42foreach (var callingConventionType in symbol.Signature.UnmanagedCallingConventionTypes) 50public override Accessibility VisitNamedType(INamedTypeSymbol symbol)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\ITypeSymbolExtensions.SubstituteTypesVisitor.cs (1)
58public override ITypeSymbol VisitNamedType(INamedTypeSymbol symbol)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\ITypeSymbolExtensions.UnavailableTypeParameterRemover.cs (1)
43public override ITypeSymbol VisitNamedType(INamedTypeSymbol symbol)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\ITypeSymbolExtensions.UnnamedErrorTypeRemover.cs (1)
42public override ITypeSymbol VisitNamedType(INamedTypeSymbol symbol)
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\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\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\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\SymbolEquivalenceComparer.ParameterSymbolEqualityComparer.cs (2)
23Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies,
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\SymbolEquivalenceComparer.SignatureTypeSymbolEquivalenceComparer.cs (2)
18public bool Equals(ITypeSymbol? x, ITypeSymbol? y, Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies)
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\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\AbstractFlagsEnumGenerator.cs (10)
15protected abstract SyntaxNode CreateExplicitlyCastedLiteralValue(INamedTypeSymbol enumType, SpecialType underlyingSpecialType, object constantValue); 16protected abstract bool IsValidName(INamedTypeSymbol enumType, string name); 20public SyntaxNode CreateEnumConstantValue(INamedTypeSymbol enumType, object constantValue) 36private static bool IsFlagsEnum(INamedTypeSymbol typeSymbol) 48var type = ctor.ContainingType; 61private SyntaxNode CreateFlagsEnumConstantValue(INamedTypeSymbol enumType, object constantValue) 72INamedTypeSymbol enumType, 138IFieldSymbol field, INamedTypeSymbol enumType, SpecialType underlyingSpecialType) 168INamedTypeSymbol enumType, 185private SyntaxNode CreateNonFlagsEnumConstantValue(INamedTypeSymbol enumType, object constantValue)
src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\CodeGenerationHelpers.cs (2)
25var exceptionType = compilation.GetTypeByMetadataName(exceptionMetadataName); 150public static IEnumerable<ISymbol> GetMembers(INamedTypeSymbol namedType)
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\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\CodeGenerator.cs (8)
29public static Task<Document> AddEventDeclarationAsync(CodeGenerationSolutionContext context, INamedTypeSymbol destination, IEventSymbol @event, CancellationToken cancellationToken) 36public static Task<Document> AddFieldDeclarationAsync(CodeGenerationSolutionContext context, INamedTypeSymbol destination, IFieldSymbol field, CancellationToken cancellationToken) 43public static Task<Document> AddMethodDeclarationAsync(CodeGenerationSolutionContext context, INamedTypeSymbol destination, IMethodSymbol method, CancellationToken cancellationToken) 50public static Task<Document> AddPropertyDeclarationAsync(CodeGenerationSolutionContext context, INamedTypeSymbol destination, IPropertySymbol property, CancellationToken cancellationToken) 57public static Task<Document> AddNamedTypeDeclarationAsync(CodeGenerationSolutionContext context, INamedTypeSymbol destination, INamedTypeSymbol namedType, CancellationToken cancellationToken) 64public static Task<Document> AddNamedTypeDeclarationAsync(CodeGenerationSolutionContext context, INamespaceSymbol destination, INamedTypeSymbol namedType, CancellationToken cancellationToken) 85public static Task<Document> AddMemberDeclarationsAsync(CodeGenerationSolutionContext context, INamedTypeSymbol destination, IEnumerable<ISymbol> members, CancellationToken cancellationToken)
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\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\INamedTypeSymbolExtensions.cs (2)
11public static CodeGenerationAbstractNamedTypeSymbol ToCodeGenerationSymbol(this INamedTypeSymbol namedType) 32namedType.GetMembers().WhereAsArray(s => s is not INamedTypeSymbol),
src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\Symbols\CodeGenerationAbstractMethodSymbol.cs (3)
23INamedTypeSymbol containingType, 98public INamedTypeSymbol AssociatedAnonymousDelegate => null; 108public ImmutableArray<INamedTypeSymbol> UnmanagedCallingConventionTypes => [];
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\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\Symbols\CodeGenerationAttributeData.cs (2)
13INamedTypeSymbol attributeClass, 20protected override INamedTypeSymbol CommonAttributeClass => attributeClass;
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\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\Symbols\CodeGenerationConstructorSymbol.cs (1)
11INamedTypeSymbol? containingType,
src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\Symbols\CodeGenerationConversionSymbol.cs (1)
11INamedTypeSymbol? containingType,
src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\Symbols\CodeGenerationDestructorSymbol.cs (1)
10INamedTypeSymbol? containingType,
src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\Symbols\CodeGenerationEventSymbol.cs (1)
12INamedTypeSymbol? containingType,
src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\Symbols\CodeGenerationFieldSymbol.cs (1)
13INamedTypeSymbol containingType,
src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\Symbols\CodeGenerationMethodSymbol.cs (1)
23INamedTypeSymbol containingType,
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\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\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\Symbols\CodeGenerationNamespaceSymbol.cs (1)
57public static INamedTypeSymbol ImplicitType => null;
src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\Symbols\CodeGenerationOperatorSymbol.cs (1)
11INamedTypeSymbol? containingType,
src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\Symbols\CodeGenerationParameterSymbol.cs (1)
13INamedTypeSymbol containingType,
src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\Symbols\CodeGenerationPropertySymbol.cs (1)
13INamedTypeSymbol containingType,
src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\Symbols\CodeGenerationSymbol.cs (3)
27public INamedTypeSymbol ContainingType { get; protected set; } 31INamedTypeSymbol containingType, 162public ImmutableArray<AttributeData> GetAttributes(INamedTypeSymbol attributeType)
src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\Symbols\CodeGenerationTypeParameterSymbol.cs (3)
12INamedTypeSymbol containingType, 80public INamedTypeSymbol DeclaringType 84return this.ContainingSymbol as INamedTypeSymbol;
src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\Symbols\CodeGenerationTypeSymbol.cs (4)
14INamedTypeSymbol containingType, 27public virtual INamedTypeSymbol BaseType => null; 29public virtual ImmutableArray<INamedTypeSymbol> Interfaces 32public ImmutableArray<INamedTypeSymbol> AllInterfaces
src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\TypeGenerator.cs (1)
21public ITypeSymbol Construct(INamedTypeSymbol namedType, ITypeSymbol[] typeArguments)
src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\Editing\ImportAdderService.cs (2)
202foreach (var namedType in SymbolAnnotation.GetSymbols(annotation, model.Compilation).OfType<INamedTypeSymbol>())
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\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\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\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\Extensions\KnownTypes.cs (8)
9public readonly INamedTypeSymbol? TaskType = compilation.TaskType(); 10public readonly INamedTypeSymbol? TaskOfTType = compilation.TaskOfTType(); 11public readonly INamedTypeSymbol? ValueTaskType = compilation.ValueTaskType(); 12public readonly INamedTypeSymbol? ValueTaskOfTType = compilation.ValueTaskOfTType(); 14public readonly INamedTypeSymbol? IEnumerableOfTType = compilation.IEnumerableOfTType(); 15public readonly INamedTypeSymbol? IEnumeratorOfTType = compilation.IEnumeratorOfTType(); 17public readonly INamedTypeSymbol? IAsyncEnumerableOfTType = compilation.IAsyncEnumerableOfTType(); 18public readonly INamedTypeSymbol? IAsyncEnumeratorOfTType = compilation.IAsyncEnumeratorOfTType();
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\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\Extensions\SyntaxGeneratorExtensions_CreateEqualsMethod.cs (11)
32INamedTypeSymbol containingType, 63INamedTypeSymbol containingType, 65INamedTypeSymbol constructedEquatableType, 109INamedTypeSymbol containingType, 218var iequatableType = compilation.GetTypeByMetadataName(typeof(IEquatable<>).FullName); 271INamedTypeSymbol containingType, 382private static bool ImplementsIEquatable(ITypeSymbol memberType, INamedTypeSymbol iequatableType) 388var constructed = iequatableType.Construct(memberType); 433private static bool HasExistingBaseEqualsMethod(INamedTypeSymbol containingType) 456INamedTypeSymbol? containingType, 490INamedTypeSymbol? containingType,
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\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\Extensions\SyntaxGeneratorExtensions_Negate.cs (1)
446var containingType = property.ContainingType;
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\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\LanguageServices\SemanticsFactsService\AbstractSemanticFactsService.cs (7)
127var valueTaskType = compilation.ValueTaskType(); 163(INamedTypeSymbol?, IMethodSymbol?) GetIDisposableInterfaceAndDisposeMethod(string typeName, string methodName) 165var 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\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\LanguageServices\SyntaxGeneratorInternalExtensions\SyntaxGeneratorInternal.cs (1)
117public abstract SyntaxNode DeclarationPattern(INamedTypeSymbol type, string name);
src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\LanguageServices\TypeInferenceService\AbstractTypeInferenceService.AbstractTypeInferrer.cs (1)
102protected static IEnumerable<TypeInferenceInfo> GetCollectionElementType(INamedTypeSymbol type)
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 (105)
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\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\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\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Extensions\ITypeSymbolExtensions.cs (1)
40public static bool TryGetPrimaryConstructor(this INamedTypeSymbol typeSymbol, [NotNullWhen(true)] out IMethodSymbol? primaryConstructor)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Extensions\SemanticModelExtensions.cs (3)
211var containingType = semanticModel.GetDeclaredSymbol(type.GetAncestor<BaseTypeDeclarationSyntax>(), cancellationToken); 332var symbol = semanticModel.GetDeclaredSymbol(typeDeclaration, cancellationToken); 460public static INamedTypeSymbol GetRequiredDeclaredSymbol(this SemanticModel semanticModel, BaseTypeDeclarationSyntax syntax, CancellationToken cancellationToken)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Extensions\SyntaxNodeExtensions.cs (2)
789[NotNullWhen(true)] INamedTypeSymbol? expressionType, 822static bool TakesExpressionTree(SymbolInfo info, INamedTypeSymbol expressionType)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Services\SemanticFacts\CSharpSemanticFacts.cs (5)
94public bool LastEnumValueHasInitializer(INamedTypeSymbol namedTypeSymbol) 231public bool IsPartial(INamedTypeSymbol typeSymbol, CancellationToken cancellationToken) 286var type = model.Compilation.TryGetCallingConventionSymbol(syntax.Name.ValueText); 393public bool IsInExpressionTree(SemanticModel semanticModel, SyntaxNode node, [NotNullWhen(true)] INamedTypeSymbol? expressionType, CancellationToken cancellationToken) 422public bool TryGetPrimaryConstructor(INamedTypeSymbol typeSymbol, [NotNullWhen(true)] out IMethodSymbol? primaryConstructor)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Simplification\Simplifiers\CastSimplifier.cs (9)
127var enumType = semanticModel.GetTypeInfo(castExpression.Expression, cancellationToken).Type as INamedTypeSymbol; 162var enumType = semanticModel.GetTypeInfo(castExpression.Expression, cancellationToken).Type as INamedTypeSymbol; 627if (castedType is not INamedTypeSymbol namedCastedType || 628originalConvertedType is not INamedTypeSymbol originalNamedConvertedType) 988if (conversionOperation.Operand.Type is not INamedTypeSymbol original) 997for (var type = original; type != null; type = type.BaseType) 1363var rewrittenContainingType = rewrittenMemberSymbol.ContainingType;
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\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\CodeGeneration\CSharpFlagsEnumGenerator.cs (2)
22INamedTypeSymbol enumType, 39protected override bool IsValidName(INamedTypeSymbol enumType, string name)
src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\CodeGeneration\EnumMemberGenerator.cs (3)
159var namedType = enumMember.Type as INamedTypeSymbol; 160var underlyingType = namedType?.EnumUnderlyingType;
src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\CodeGeneration\ExpressionGenerator.cs (1)
60if (type is INamedTypeSymbol { TypeKind: TypeKind.Enum } enumType)
src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\CodeGeneration\MethodGenerator.cs (1)
370if (method.IsReadOnly && (method.ContainingSymbol as INamedTypeSymbol)?.IsReadOnly != true)
src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\CodeGeneration\NamedTypeGenerator.cs (14)
27INamedTypeSymbol namedType, 41INamedTypeSymbol namedType, 56INamedTypeSymbol namedType, 72INamedTypeSymbol namedType, 155INamedTypeSymbol namedType, 185INamedTypeSymbol namedType, 229INamedTypeSymbol namedType, 247INamedTypeSymbol namedType, 264INamedTypeSymbol namedType, CSharpCodeGenerationContextInfo info) 270INamedTypeSymbol namedType, 314INamedTypeSymbol namedType, CSharpCodeGenerationContextInfo info) 319private static BaseListSyntax? GenerateBaseList(INamedTypeSymbol namedType) 325foreach (var type in namedType.Interfaces) 334private static SyntaxList<TypeParameterConstraintClauseSyntax> GenerateConstraintClauses(INamedTypeSymbol namedType)
src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\Editing\CSharpImportAdder.cs (1)
112foreach (var type in ns.GetTypeMembers())
src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\Extensions\ContextQuery\SyntaxTreeExtensions.cs (4)
1035INamedTypeSymbol nt => nt.Arity > 0, 1044return symbols.All(static s => s is INamedTypeSymbol or IMethodSymbol); 2886var delegateType = CSharpTypeInferenceService.Instance.InferDelegateType( 3060return ((INamedTypeSymbol)symbol).TypeKind == TypeKind.Enum;
src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\Extensions\ITypeSymbolExtensions.ExpressionSyntaxGeneratorVisitor.cs (1)
41public override ExpressionSyntax VisitNamedType(INamedTypeSymbol symbol)
src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\Extensions\ITypeSymbolExtensions.TypeSyntaxGeneratorVisitor.cs (5)
118public static bool TryCreateNativeIntegerType(INamedTypeSymbol symbol, [NotNullWhen(true)] out TypeSyntax? syntax) 174public TypeSyntax CreateSimpleTypeSyntax(INamedTypeSymbol symbol) 224private static TypeSyntax? TryCreateSpecializedNamedTypeSyntax(INamedTypeSymbol symbol) 250private static TupleTypeSyntax CreateTupleTypeSyntax(INamedTypeSymbol symbol) 263public override TypeSyntax VisitNamedType(INamedTypeSymbol symbol)
src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\Extensions\TypeDeclarationSyntaxExtensions.cs (1)
76var typeSymbol = model.GetRequiredDeclaredSymbol(typeNode, cancellationToken);
src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\LanguageServices\CSharpSyntaxGeneratorInternal.cs (1)
210public override SyntaxNode DeclarationPattern(INamedTypeSymbol type, string name)
src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\LanguageServices\CSharpTypeInferenceService.TypeInferrer.cs (25)
330if (types.Any(t => t is INamedTypeSymbol)) 332return types.OfType<INamedTypeSymbol>().SelectMany(t => 363.OfType<INamedTypeSymbol>() 440if (info.Type is not INamedTypeSymbol type) 461if (info.Type is not INamedTypeSymbol type) 567if (info.Type is INamedTypeSymbol type) 704var inferredNamedType = (INamedTypeSymbol)inferredType; 705var returnNamedType = (INamedTypeSymbol)returnType; 1256var enumerableType = forEachStatementSyntax.AwaitKeyword == default 1408if (types.Any(t => t is INamedTypeSymbol)) 1410return types.OfType<INamedTypeSymbol>().SelectMany(t => 1431if (types.Any(t => t is INamedTypeSymbol)) 1438return types.OfType<INamedTypeSymbol>().SelectMany(t => 1583var type = Compilation.CreateTupleTypeSymbol( 1618var type = types.FirstOrDefault().InferredType.GetDelegateType(this.Compilation); 1739var taskOfT = this.Compilation.TaskOfTType(); 1748var ienumerableType = this.Compilation.IEnumerableOfTType(); 1762var delegateType = argumentTypes.FirstOrDefault().InferredType.GetDelegateType(this.Compilation); 1967var task = this.Compilation.TaskType(); 1968var taskOfT = this.Compilation.TaskOfTType(); 1994return memberType is INamedTypeSymbol namedType && namedType.TypeArguments.Length == 1 2008var namedTypeSymbol = (INamedTypeSymbol)type;
src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\LanguageServices\InitializeParameter\InitializeParameterHelpers.cs (1)
102var namedType = parameter.ContainingType;
Roslyn.Diagnostics.VisualBasic.Analyzers (34)
BasicSpecializedEnumerableCreationAnalyzer.vb (4)
16Protected Overrides Sub GetCodeBlockStartedAnalyzer(context As CompilationStartAnalysisContext, genericEnumerableSymbol As INamedTypeSymbol, genericEmptyEnumerableSymbol As IMethodSymbol) 23Public Sub New(genericEnumerableSymbol As INamedTypeSymbol, genericEmptyEnumerableSymbol As IMethodSymbol) 27Protected Overrides Sub GetSyntaxAnalyzer(context As CodeBlockStartAnalysisContext(Of SyntaxKind), genericEnumerableSymbol As INamedTypeSymbol, genericEmptyEnumerableSymbol As IMethodSymbol) 35Public Sub New(genericEnumerableSymbol As INamedTypeSymbol, genericEmptyEnumerableSymbol As IMethodSymbol)
BasicSymbolDeclaredEventMustBeGeneratedForSourceSymbols.vb (5)
19Protected Overrides Function GetCompilationAnalyzer(compilation As Compilation, symbolType As INamedTypeSymbol) As CompilationAnalyzer 42Private ReadOnly _sourceModuleType As INamedTypeSymbol 48Public Sub New(symbolType As INamedTypeSymbol, compilationType As INamedTypeSymbol, sourceModuleSymbol As INamedTypeSymbol)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\VisualBasic\Extensions\SyntaxNodeExtensions.vb (1)
1066expressionTypeOpt As INamedTypeSymbol,
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\VisualBasic\Services\SemanticFacts\VisualBasicSemanticFacts.vb (4)
96Public Function LastEnumValueHasInitializer(namedTypeSymbol As INamedTypeSymbol) As Boolean Implements ISemanticFacts.LastEnumValueHasInitializer 217Public Function IsPartial(typeSymbol As INamedTypeSymbol, cancellationToken As CancellationToken) As Boolean Implements ISemanticFacts.IsPartial 281Public Function IsInExpressionTree(semanticModel As SemanticModel, node As SyntaxNode, expressionTypeOpt As INamedTypeSymbol, cancellationToken As CancellationToken) As Boolean Implements ISemanticFacts.IsInExpressionTree 337Public Function TryGetPrimaryConstructor(typeSymbol As INamedTypeSymbol, <NotNullWhen(True)> ByRef primaryConstructor As IMethodSymbol) As Boolean Implements ISemanticFacts.TryGetPrimaryConstructor
src\Workspaces\SharedUtilitiesAndExtensions\Workspace\VisualBasic\CodeGeneration\EnumMemberGenerator.vb (1)
136Dim namedType = TryCast(enumMember.Type, INamedTypeSymbol)
src\Workspaces\SharedUtilitiesAndExtensions\Workspace\VisualBasic\CodeGeneration\ExpressionGenerator.vb (2)
48Return GenerateExpression(generator, DirectCast(type, INamedTypeSymbol).TypeArguments(0), value, canUseFieldReference) 51DirectCast(type, INamedTypeSymbol), value), ExpressionSyntax)
src\Workspaces\SharedUtilitiesAndExtensions\Workspace\VisualBasic\CodeGeneration\VisualBasicCodeGenerationService.vb (2)
178namedType As INamedTypeSymbol, 572Public Overrides Function CreateNamedTypeDeclaration(namedType As INamedTypeSymbol,
src\Workspaces\SharedUtilitiesAndExtensions\Workspace\VisualBasic\Editing\VisualBasicImportAdder.vb (2)
103Dim type = TryCast(typeOrNamespace, INamedTypeSymbol) 116Dim moduleType = TryCast(member, INamedTypeSymbol)
src\Workspaces\SharedUtilitiesAndExtensions\Workspace\VisualBasic\Extensions\ExpressionSyntaxGeneratorVisitor.vb (1)
32Public Overrides Function VisitNamedType(symbol As INamedTypeSymbol) As ExpressionSyntax
src\Workspaces\SharedUtilitiesAndExtensions\Workspace\VisualBasic\Extensions\TypeSyntaxGeneratorVisitor.vb (4)
65Public Function CreateSimpleTypeSyntax(symbol As INamedTypeSymbol) As TypeSyntax 94Private Shared Function TryCreateSpecializedNamedTypeSyntax(symbol As INamedTypeSymbol) As TypeSyntax 137Private Shared Function CreateTupleTypeSyntax(symbol As INamedTypeSymbol) As TypeSyntax 152Public Overrides Function VisitNamedType(symbol As INamedTypeSymbol) As TypeSyntax
src\Workspaces\SharedUtilitiesAndExtensions\Workspace\VisualBasic\LanguageServices\VisualBasicSyntaxGeneratorInternal.vb (1)
479Public Overrides Function DeclarationPattern(type As INamedTypeSymbol, name As String) As SyntaxNode
src\Workspaces\SharedUtilitiesAndExtensions\Workspace\VisualBasic\LanguageServices\VisualBasicTypeInferenceService.TypeInferrer.vb (7)
110If TypeOf typeSymbol IsNot INamedTypeSymbol Then 220OfType(Of INamedTypeSymbol)(). 294Dim namedType = TryCast(info.Symbol, INamedTypeSymbol) 512Return New TypeInferenceInfo(DirectCast(t.InferredType, INamedTypeSymbol).TypeArguments(0)) 772If TypeOf memberType Is INamedTypeSymbol Then 776Return CreateResult(DirectCast(memberType, INamedTypeSymbol).TypeArguments(0)) 1069Return types.OfType(Of INamedTypeSymbol)().SelectMany(Function(t) GetCollectionElementType(t))
Roslyn.VisualStudio.Next.UnitTests (1)
Remote\SnapshotSerializationTests.cs (1)
595var objectType = compilation.GetTypeByMetadataName("System.Object");
SemanticSearch.BuildTask (7)
GenerateFilteredReferenceAssembliesTask.cs (7)
144var types = new List<INamedTypeSymbol>(); 279List<INamedTypeSymbol> types, 292case INamedTypeSymbol type: 336var isIncluded = symbol is not INamedTypeSymbol; 371var types = new List<INamedTypeSymbol>(); 437private static unsafe void UpdateTypeDefinitions(BinaryWriter writer, MetadataReader metadataReader, ImmutableArray<ApiPattern> patterns, ImmutableArray<INamedTypeSymbol> symbols, int metadataOffset) 445var symbol = GetSymbolWithToken(symbols, ref symbolIndex, handle);
System.Private.CoreLib.Generators (72)
IntrinsicsInSystemPrivateCoreLibAnalyzer.cs (72)
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); 233return Array.Empty<INamedTypeSymbol>(); 236return new INamedTypeSymbol[] { isSupportedType }; 240var isSupportedType = GetIsSupportedTypeSymbol(model, identifier); 243return Array.Empty<INamedTypeSymbol>(); 246return new INamedTypeSymbol[] { isSupportedType }; 258var retVal = new INamedTypeSymbol[decomposedLeft.Length + decomposedRight.Length]; 265return Array.Empty<INamedTypeSymbol>(); 270return Array.Empty<INamedTypeSymbol>(); 273private static INamedTypeSymbol[][] DecomposePropertySymbolForIsSupportedGroups_Property(OperationAnalysisContext context, SemanticModel model, ExpressionSyntax expressionToDecompose) 278return Array.Empty<INamedTypeSymbol[]>(); 283var typeSymbol = symbolInfo.Symbol.ContainingSymbol as INamedTypeSymbol; 286return new INamedTypeSymbol[][] { new INamedTypeSymbol[] { typeSymbol } }; 306return Array.Empty<INamedTypeSymbol[]>(); 309private static INamedTypeSymbol[][] DecomposeConditionForIsSupportedGroups(OperationAnalysisContext context, SemanticModel model, ExpressionSyntax expressionToDecompose) 335return new INamedTypeSymbol[][] { GatherAndConditions(model, binaryExpression) }; 345return Array.Empty<INamedTypeSymbol[]>(); 347var retVal = new INamedTypeSymbol[decomposedLeft.Length + decomposedRight.Length][]; 376return Array.Empty<INamedTypeSymbol[]>(); 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 (221)
Helpers\KnownTypeSymbols.cs (159)
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? StackOfTType => GetOrResolveType(typeof(Stack<>), ref _StackOfTType); 56private Option<INamedTypeSymbol?> _StackOfTType; 58public INamedTypeSymbol? QueueOfTType => GetOrResolveType(typeof(Queue<>), ref _QueueOfTType); 59private Option<INamedTypeSymbol?> _QueueOfTType; 61public INamedTypeSymbol? ConcurrentStackType => GetOrResolveType(typeof(ConcurrentStack<>), ref _ConcurrentStackType); 62private Option<INamedTypeSymbol?> _ConcurrentStackType; 64public INamedTypeSymbol? ConcurrentQueueType => GetOrResolveType(typeof(ConcurrentQueue<>), ref _ConcurrentQueueType); 65private Option<INamedTypeSymbol?> _ConcurrentQueueType; 67public INamedTypeSymbol? IDictionaryType => GetOrResolveType(typeof(IDictionary), ref _IDictionaryType); 68private Option<INamedTypeSymbol?> _IDictionaryType; 70public INamedTypeSymbol? IListType => GetOrResolveType(typeof(IList), ref _IListType); 71private Option<INamedTypeSymbol?> _IListType; 73public INamedTypeSymbol? StackType => GetOrResolveType(typeof(Stack), ref _StackType); 74private Option<INamedTypeSymbol?> _StackType; 76public INamedTypeSymbol? QueueType => GetOrResolveType(typeof(Queue), ref _QueueType); 77private Option<INamedTypeSymbol?> _QueueType; 79public INamedTypeSymbol? KeyValuePair => GetOrResolveType(typeof(KeyValuePair<,>), ref _KeyValuePair); 80private Option<INamedTypeSymbol?> _KeyValuePair; 82public INamedTypeSymbol? ImmutableArrayType => GetOrResolveType(typeof(ImmutableArray<>), ref _ImmutableArrayType); 83private Option<INamedTypeSymbol?> _ImmutableArrayType; 85public INamedTypeSymbol? ImmutableListType => GetOrResolveType(typeof(ImmutableList<>), ref _ImmutableListType); 86private Option<INamedTypeSymbol?> _ImmutableListType; 88public INamedTypeSymbol? IImmutableListType => GetOrResolveType(typeof(IImmutableList<>), ref _IImmutableListType); 89private Option<INamedTypeSymbol?> _IImmutableListType; 91public INamedTypeSymbol? ImmutableStackType => GetOrResolveType(typeof(ImmutableStack<>), ref _ImmutableStackType); 92private Option<INamedTypeSymbol?> _ImmutableStackType; 94public INamedTypeSymbol? IImmutableStackType => GetOrResolveType(typeof(IImmutableStack<>), ref _IImmutableStackType); 95private Option<INamedTypeSymbol?> _IImmutableStackType; 97public INamedTypeSymbol? ImmutableQueueType => GetOrResolveType(typeof(ImmutableQueue<>), ref _ImmutableQueueType); 98private Option<INamedTypeSymbol?> _ImmutableQueueType; 100public INamedTypeSymbol? IImmutableQueueType => GetOrResolveType(typeof(IImmutableQueue<>), ref _IImmutableQueueType); 101private Option<INamedTypeSymbol?> _IImmutableQueueType; 103public INamedTypeSymbol? ImmutableSortedType => GetOrResolveType(typeof(ImmutableSortedSet<>), ref _ImmutableSortedType); 104private Option<INamedTypeSymbol?> _ImmutableSortedType; 106public INamedTypeSymbol? ImmutableHashSetType => GetOrResolveType(typeof(ImmutableHashSet<>), ref _ImmutableHashSetType); 107private Option<INamedTypeSymbol?> _ImmutableHashSetType; 109public INamedTypeSymbol? IImmutableSetType => GetOrResolveType(typeof(IImmutableSet<>), ref _IImmutableSetType); 110private Option<INamedTypeSymbol?> _IImmutableSetType; 112public INamedTypeSymbol? ImmutableDictionaryType => GetOrResolveType(typeof(ImmutableDictionary<,>), ref _ImmutableDictionaryType); 113private Option<INamedTypeSymbol?> _ImmutableDictionaryType; 115public INamedTypeSymbol? ImmutableSortedDictionaryType => GetOrResolveType(typeof(ImmutableSortedDictionary<,>), ref _ImmutableSortedDictionaryType); 116private Option<INamedTypeSymbol?> _ImmutableSortedDictionaryType; 118public INamedTypeSymbol? IImmutableDictionaryType => GetOrResolveType(typeof(IImmutableDictionary<,>), ref _IImmutableDictionaryType); 119private Option<INamedTypeSymbol?> _IImmutableDictionaryType; 121public INamedTypeSymbol? KeyedCollectionType => GetOrResolveType(typeof(KeyedCollection<,>), ref _KeyedCollectionType); 122private Option<INamedTypeSymbol?> _KeyedCollectionType; 124public INamedTypeSymbol ObjectType => _ObjectType ??= Compilation.GetSpecialType(SpecialType.System_Object); 125private INamedTypeSymbol? _ObjectType; 127public INamedTypeSymbol StringType => _StringType ??= Compilation.GetSpecialType(SpecialType.System_String); 128private INamedTypeSymbol? _StringType; 130public INamedTypeSymbol? DateTimeOffsetType => GetOrResolveType(typeof(DateTimeOffset), ref _DateTimeOffsetType); 131private Option<INamedTypeSymbol?> _DateTimeOffsetType; 133public INamedTypeSymbol? TimeSpanType => GetOrResolveType(typeof(TimeSpan), ref _TimeSpanType); 134private Option<INamedTypeSymbol?> _TimeSpanType; 136public INamedTypeSymbol? DateOnlyType => GetOrResolveType("System.DateOnly", ref _DateOnlyType); 137private Option<INamedTypeSymbol?> _DateOnlyType; 139public INamedTypeSymbol? TimeOnlyType => GetOrResolveType("System.TimeOnly", ref _TimeOnlyType); 140private Option<INamedTypeSymbol?> _TimeOnlyType; 142public INamedTypeSymbol? Int128Type => GetOrResolveType("System.Int128", ref _Int128Type); 143private Option<INamedTypeSymbol?> _Int128Type; 145public INamedTypeSymbol? UInt128Type => GetOrResolveType("System.UInt128", ref _UInt128Type); 146private Option<INamedTypeSymbol?> _UInt128Type; 148public INamedTypeSymbol? HalfType => GetOrResolveType("System.Half", ref _HalfType); 149private Option<INamedTypeSymbol?> _HalfType; 157public INamedTypeSymbol? MemoryByteType => _MemoryByteType.HasValue 161private Option<INamedTypeSymbol?> _MemoryByteType; 163public INamedTypeSymbol? ReadOnlyMemoryByteType => _ReadOnlyMemoryByteType.HasValue 167private Option<INamedTypeSymbol?> _ReadOnlyMemoryByteType; 169public INamedTypeSymbol? GuidType => GetOrResolveType(typeof(Guid), ref _GuidType); 170private Option<INamedTypeSymbol?> _GuidType; 172public INamedTypeSymbol? UriType => GetOrResolveType(typeof(Uri), ref _UriType); 173private Option<INamedTypeSymbol?> _UriType; 175public INamedTypeSymbol? VersionType => GetOrResolveType(typeof(Version), ref _VersionType); 176private Option<INamedTypeSymbol?> _VersionType; 179public INamedTypeSymbol? JsonConverterType => GetOrResolveType("System.Text.Json.Serialization.JsonConverter", ref _JsonConverterType); 180private Option<INamedTypeSymbol?> _JsonConverterType; 182public INamedTypeSymbol? JsonSerializerContextType => GetOrResolveType("System.Text.Json.Serialization.JsonSerializerContext", ref _JsonSerializerContextType); 183private Option<INamedTypeSymbol?> _JsonSerializerContextType; 185public INamedTypeSymbol? JsonSerializableAttributeType => GetOrResolveType("System.Text.Json.Serialization.JsonSerializableAttribute", ref _JsonSerializableAttributeType); 186private Option<INamedTypeSymbol?> _JsonSerializableAttributeType; 188public INamedTypeSymbol? JsonDocumentType => GetOrResolveType("System.Text.Json.JsonDocument", ref _JsonDocumentType); 189private Option<INamedTypeSymbol?> _JsonDocumentType; 191public INamedTypeSymbol? JsonElementType => GetOrResolveType("System.Text.Json.JsonElement", ref _JsonElementType); 192private Option<INamedTypeSymbol?> _JsonElementType; 194public INamedTypeSymbol? JsonNodeType => GetOrResolveType("System.Text.Json.Nodes.JsonNode", ref _JsonNodeType); 195private Option<INamedTypeSymbol?> _JsonNodeType; 197public INamedTypeSymbol? JsonValueType => GetOrResolveType("System.Text.Json.Nodes.JsonValue", ref _JsonValueType); 198private Option<INamedTypeSymbol?> _JsonValueType; 200public INamedTypeSymbol? JsonObjectType => GetOrResolveType("System.Text.Json.Nodes.JsonObject", ref _JsonObjectType); 201private Option<INamedTypeSymbol?> _JsonObjectType; 203public INamedTypeSymbol? JsonArrayType => GetOrResolveType("System.Text.Json.Nodes.JsonArray", ref _JsonArrayType); 204private Option<INamedTypeSymbol?> _JsonArrayType; 207public INamedTypeSymbol? JsonConverterAttributeType => GetOrResolveType("System.Text.Json.Serialization.JsonConverterAttribute", ref _JsonConverterAttributeType); 208private Option<INamedTypeSymbol?> _JsonConverterAttributeType; 210public INamedTypeSymbol? JsonDerivedTypeAttributeType => GetOrResolveType("System.Text.Json.Serialization.JsonDerivedTypeAttribute", ref _JsonDerivedTypeAttributeType); 211private Option<INamedTypeSymbol?> _JsonDerivedTypeAttributeType; 213public INamedTypeSymbol? JsonNumberHandlingAttributeType => GetOrResolveType("System.Text.Json.Serialization.JsonNumberHandlingAttribute", ref _JsonNumberHandlingAttributeType); 214private Option<INamedTypeSymbol?> _JsonNumberHandlingAttributeType; 216public INamedTypeSymbol? JsonObjectCreationHandlingAttributeType => GetOrResolveType("System.Text.Json.Serialization.JsonObjectCreationHandlingAttribute", ref _JsonObjectCreationHandlingAttributeType); 217private Option<INamedTypeSymbol?> _JsonObjectCreationHandlingAttributeType; 219public INamedTypeSymbol? JsonSourceGenerationOptionsAttributeType => GetOrResolveType("System.Text.Json.Serialization.JsonSourceGenerationOptionsAttribute", ref _JsonSourceGenerationOptionsAttributeType); 220private Option<INamedTypeSymbol?> _JsonSourceGenerationOptionsAttributeType; 222public INamedTypeSymbol? JsonUnmappedMemberHandlingAttributeType => GetOrResolveType("System.Text.Json.Serialization.JsonUnmappedMemberHandlingAttribute", ref _JsonUnmappedMemberHandlingAttributeType); 223private Option<INamedTypeSymbol?> _JsonUnmappedMemberHandlingAttributeType; 225public INamedTypeSymbol? JsonConstructorAttributeType => GetOrResolveType("System.Text.Json.Serialization.JsonConstructorAttribute", ref _JsonConstructorAttributeType); 226private Option<INamedTypeSymbol?> _JsonConstructorAttributeType; 228public INamedTypeSymbol? SetsRequiredMembersAttributeType => GetOrResolveType("System.Diagnostics.CodeAnalysis.SetsRequiredMembersAttribute", ref _SetsRequiredMembersAttributeType); 229private Option<INamedTypeSymbol?> _SetsRequiredMembersAttributeType; 231public INamedTypeSymbol? JsonStringEnumConverterType => GetOrResolveType("System.Text.Json.Serialization.JsonStringEnumConverter", ref _JsonStringEnumConverterType); 232private Option<INamedTypeSymbol?> _JsonStringEnumConverterType; 234public INamedTypeSymbol? JsonStringEnumConverterOfTType => GetOrResolveType("System.Text.Json.Serialization.JsonStringEnumConverter`1", ref _JsonStringEnumConverterOfTType); 235private Option<INamedTypeSymbol?> _JsonStringEnumConverterOfTType; 237public INamedTypeSymbol? IJsonOnSerializingType => GetOrResolveType(JsonConstants.IJsonOnSerializingFullName, ref _IJsonOnSerializingType); 238private Option<INamedTypeSymbol?> _IJsonOnSerializingType; 240public INamedTypeSymbol? IJsonOnSerializedType => GetOrResolveType(JsonConstants.IJsonOnSerializedFullName, ref _IJsonOnSerializedType); 241private Option<INamedTypeSymbol?> _IJsonOnSerializedType; 244public INamedTypeSymbol? DelegateType => _DelegateType ??= Compilation.GetSpecialType(SpecialType.System_Delegate); 245private INamedTypeSymbol? _DelegateType; 247public INamedTypeSymbol? MemberInfoType => GetOrResolveType(typeof(MemberInfo), ref _MemberInfoType); 248private Option<INamedTypeSymbol?> _MemberInfoType; 250public INamedTypeSymbol? SerializationInfoType => GetOrResolveType(typeof(Runtime.Serialization.SerializationInfo), ref _SerializationInfoType); 251private Option<INamedTypeSymbol?> _SerializationInfoType; 253public INamedTypeSymbol? IntPtrType => GetOrResolveType(typeof(IntPtr), ref _IntPtrType); 254private Option<INamedTypeSymbol?> _IntPtrType; 256public INamedTypeSymbol? UIntPtrType => GetOrResolveType(typeof(UIntPtr), ref _UIntPtrType); 257private Option<INamedTypeSymbol?> _UIntPtrType; 259public INamedTypeSymbol? MemoryType => GetOrResolveType(typeof(Memory<>), ref _MemoryType); 260private Option<INamedTypeSymbol?> _MemoryType; 262public INamedTypeSymbol? ReadOnlyMemoryType => GetOrResolveType(typeof(ReadOnlyMemory<>), ref _ReadOnlyMemoryType); 263private Option<INamedTypeSymbol?> _ReadOnlyMemoryType; 267if (type is not INamedTypeSymbol { IsGenericType: true, ConstructedFrom: INamedTypeSymbol genericTypeDef }) 320if (type is not INamedTypeSymbol { IsGenericType: true, ConstructedFrom: INamedTypeSymbol genericTypeDef }) 345private INamedTypeSymbol? GetOrResolveType(Type type, ref Option<INamedTypeSymbol?> field) 348private INamedTypeSymbol? GetOrResolveType(string fullyQualifiedName, ref Option<INamedTypeSymbol?> field) 355INamedTypeSymbol? type = Compilation.GetBestTypeByMetadataName(fullyQualifiedName);
Helpers\RoslynExtensions.cs (25)
21public static INamedTypeSymbol? GetBestTypeByMetadataName(this Compilation compilation, Type type) 59if (type is INamedTypeSymbol namedType) 82INamedTypeSymbol? containingType = namedType.ContainingType; 86containingType = (INamedTypeSymbol)compilation.EraseCompileTimeMetadata(containingType); 106if (type.IsAbstract || type.TypeKind is TypeKind.Interface || type is not INamedTypeSymbol namedType) 116public static IEnumerable<IMethodSymbol> GetExplicitlyDeclaredInstanceConstructors(this INamedTypeSymbol type) 119public static bool ContainsAttribute(this ISymbol memberInfo, INamedTypeSymbol? attributeType) 140for (INamedTypeSymbol? current = type as INamedTypeSymbol; current != null; current = current.BaseType) 151public static INamedTypeSymbol? GetCompatibleGenericBaseType(this ITypeSymbol type, INamedTypeSymbol? baseType) 162foreach (INamedTypeSymbol interfaceType in type.AllInterfaces) 171for (INamedTypeSymbol? current = type as INamedTypeSymbol; current != null; current = current.BaseType) 181static bool IsMatchingGenericType(INamedTypeSymbol candidate, INamedTypeSymbol baseType) 188=> type is INamedTypeSymbol { IsGenericType: true } namedType && SymbolEqualityComparer.Default.Equals(namedType, namedType.ConstructedFrom); 203if (type.IsValueType && type is INamedTypeSymbol { OriginalDefinition.SpecialType: SpecialType.System_Nullable_T }) 205elementType = ((INamedTypeSymbol)type).TypeArguments[0]; 229public static INamedTypeSymbol[] GetSortedTypeHierarchy(this ITypeSymbol type) 231if (type is not INamedTypeSymbol namedType) 233return Array.Empty<INamedTypeSymbol>(); 238var list = new List<INamedTypeSymbol>(); 239for (INamedTypeSymbol? current = namedType; current != null; current = current.BaseType) 251return JsonHelpers.TraverseGraphWithTopologicalSort<INamedTypeSymbol>(namedType, static t => t.AllInterfaces, SymbolEqualityComparer.Default);
JsonSourceGenerator.Parser.cs (30)
92INamedTypeSymbol? contextTypeSymbol = semanticModel.GetDeclaredSymbol(contextClassDeclaration, cancellationToken); 194INamedTypeSymbol? typeSymbol = semanticModel.GetDeclaredSymbol(currentType, cancellationToken); 230INamedTypeSymbol contextClassSymbol, 242INamedTypeSymbol? attributeClass = attributeData.AttributeClass; 261private SourceGenerationOptionsSpec ParseJsonSourceGenerationOptionsAttribute(INamedTypeSymbol contextType, AttributeData attributeData) 505private TypeGenerationSpec ParseTypeGenerationSpec(in TypeToGenerate typeToGenerate, INamedTypeSymbol contextType, SourceGenerationOptionsSpec? options) 537if (type is { IsRefLikeType: true } or INamedTypeSymbol { IsUnboundGenericType: true } or IErrorTypeSymbol) 565INamedTypeSymbol converterSymbol = _knownSymbols.JsonStringEnumConverterOfTType.Construct(type); 690INamedTypeSymbol contextType, 707INamedTypeSymbol? attributeType = attributeData.AttributeClass; 754INamedTypeSymbol? actualTypeToConvert; 764valueType = ((INamedTypeSymbol)type).TypeArguments[0]; 772valueType = ((INamedTypeSymbol)type).TypeArguments[0]; 778if (type.GetCompatibleGenericBaseType(_knownSymbols.IAsyncEnumerableOfTType) is INamedTypeSymbol iAsyncEnumerableType) 816ImmutableArray<ITypeSymbol> genericArgs = ((INamedTypeSymbol)type).TypeArguments; 837valueType = ((INamedTypeSymbol)type).TypeArguments[0]; 912INamedTypeSymbol? dictionary = _knownSymbols.DictionaryOfTKeyTValueType?.Construct(keyType, valueType); 917INamedTypeSymbol contextType, 929foreach (INamedTypeSymbol currentType in typeToGenerate.Type.GetSortedTypeHierarchy()) 1107INamedTypeSymbol? actualDictionaryType = type.GetCompatibleGenericBaseType(_knownSymbols.IDictionaryOfTKeyTValueType); 1119INamedTypeSymbol contextType, 1236INamedTypeSymbol contextType, 1262INamedTypeSymbol? attributeType = attributeData.AttributeClass; 1338INamedTypeSymbol contextType, 1573private TypeRef? GetConverterTypeFromJsonConverterAttribute(INamedTypeSymbol contextType, ISymbol declaringSymbol, AttributeData attributeData) 1588private TypeRef? GetConverterTypeFromAttribute(INamedTypeSymbol contextType, ITypeSymbol? converterType, ISymbol declaringSymbol, AttributeData attributeData) 1590if (converterType is not INamedTypeSymbol namedConverterType || 1704if (type is not INamedTypeSymbol namedType || !namedType.IsGenericType) 1735if (type is not INamedTypeSymbol namedType) 1792private bool IsSymbolAccessibleWithin(ISymbol symbol, INamedTypeSymbol within)
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\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 (14)
RegexGenerator.Parser.cs (1)
42INamedTypeSymbol? regexSymbol = compilation.GetBestTypeByMetadataName(RegexName);
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 (6)
44if (!ProjectSupportsRegexSourceGenerator(compilation, out INamedTypeSymbol? regexTypeSymbol)) 62static HashSet<IMethodSymbol> GetMethodSymbolHash(INamedTypeSymbol regexTypeSymbol, HashSet<string> methodNames) 90private static void AnalyzeInvocation(OperationAnalysisContext context, INamedTypeSymbol regexTypeSymbol, HashSet<IMethodSymbol> staticMethodsToDetect) 122private static void AnalyzeObjectCreation(OperationAnalysisContext context, INamedTypeSymbol regexTypeSymbol) 231private static bool ProjectSupportsRegexSourceGenerator(Compilation compilation, [NotNullWhen(true)] out INamedTypeSymbol? regexTypeSymbol) 239INamedTypeSymbol? generatedRegexAttributeTypeSymbol = compilation.GetTypeByMetadataName(GeneratedRegexTypeName);
UpgradeToGeneratedRegexCodeFixer.cs (3)
86INamedTypeSymbol? regexSymbol = compilation.GetTypeByMetadataName(RegexTypeName); 87INamedTypeSymbol? generatedRegexAttributeSymbol = compilation.GetTypeByMetadataName(GeneratedRegexTypeName); 109INamedTypeSymbol? typeSymbol = typeDeclarationOrCompilationUnit is TypeDeclarationSyntax typeDeclaration ?
System.Windows.Forms.Analyzers.CSharp (7)
System\Windows\Forms\CSharp\Analyzers\AvoidPassingTaskWithoutCancellationToken\AvoidPassingTaskWithoutCancellationTokenAnalyzer.cs (5)
51INamedTypeSymbol? containingType = methodSymbol.ContainingType; 57if (funcParameter.Type is not INamedTypeSymbol funcType 72if (objectTypeInfo.Type is not INamedTypeSymbol objectType 86if (funcType.DelegateInvokeMethod?.ReturnType is INamedTypeSymbol returnType 97static bool IsAncestorOrSelfOfType(INamedTypeSymbol? type, string typeName) =>
System\Windows\Forms\CSharp\Analyzers\ImplementITypedDataObject\ImplementITypedDataObjectAnalyzer.cs (1)
46if (semanticModel.GetDeclaredSymbol(classDeclaration) is not INamedTypeSymbol classSymbol)
System\Windows\Forms\CSharp\Analyzers\MissingPropertySerializationConfiguration\MissingPropertySerializationConfigurationAnalyzer.cs (1)
84INamedTypeSymbol classSymbol = propertySymbol.ContainingType;
System.Windows.Forms.Analyzers.VisualBasic (8)
Analyzers\AvoidPassingTaskWithoutCancellationToken\AvoidPassingTaskWithoutCancellationTokenAnalyzer.vb (7)
50Dim containingType As INamedTypeSymbol = methodSymbol.ContainingType 56If Not (TypeOf funcParameter.Type Is INamedTypeSymbol) Then 60Dim funcType = DirectCast(funcParameter.Type, INamedTypeSymbol) 74If Not (TypeOf objectTypeInfo.Type Is INamedTypeSymbol) Then 78Dim objectType = DirectCast(objectTypeInfo.Type, INamedTypeSymbol) 91Dim returnType = TryCast(funcType.DelegateInvokeMethod.ReturnType, INamedTypeSymbol) 104Private Shared Function IsAncestorOrSelfOfType(type As INamedTypeSymbol, typeName As String) As Boolean
Analyzers\MissingPropertySerializationConfiguration\MissingPropertySerializationConfigurationDiagnosticAnalyzer.vb (1)
83Dim classSymbol As INamedTypeSymbol = propertySymbol.ContainingType
System.Windows.Forms.PrivateSourceGenerators (1)
System\Windows\Forms\SourceGenerators\EnumValidationGenerator.cs (1)
205INamedTypeSymbol? flagsAttributeType = compilation.GetTypeByMetadataName("System.FlagsAttribute");
Test.Utilities (513)
src\Compilers\Core\Portable\SourceGeneration\GeneratedCodeUtilities.cs (1)
19ISymbol symbol, INamedTypeSymbol generatedCodeAttribute)
src\RoslynAnalyzers\Utilities\Compiler\DiagnosticHelpers.cs (1)
68if (symbol is INamedTypeSymbol namedType &&
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\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\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) 208private static bool HasDisposeCloseAsyncMethodSignature(this IMethodSymbol method, INamedTypeSymbol? taskType) 216INamedTypeSymbol? task, 217INamedTypeSymbol? valueTask, 218INamedTypeSymbol? configuredValueTaskAwaitable) 231private static bool HasOverriddenDisposeCoreAsyncMethodSignature(this IMethodSymbol method, [NotNullWhen(returnValue: true)] INamedTypeSymbol? task) 244private static bool HasVirtualOrOverrideDisposeCoreAsyncMethodSignature(this IMethodSymbol method, [NotNullWhen(returnValue: true)] INamedTypeSymbol? valueTask) 258INamedTypeSymbol? iDisposable = compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemIDisposable); 259INamedTypeSymbol? iAsyncDisposable = compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemIAsyncDisposable); 260INamedTypeSymbol? configuredAsyncDisposable = compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemRuntimeCompilerServicesConfiguredAsyncDisposable); 261INamedTypeSymbol? task = compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemThreadingTasksTask); 262INamedTypeSymbol? valueTask = compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemThreadingTasksValueTask); 263INamedTypeSymbol? configuredValueTaskAwaitable = compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemRuntimeCompilerServicesConfiguredValueTaskAwaitable); 272INamedTypeSymbol? iDisposable, 273INamedTypeSymbol? iAsyncDisposable, 274INamedTypeSymbol? configuredAsyncDisposable, 275INamedTypeSymbol? task, 276INamedTypeSymbol? valueTask, 277INamedTypeSymbol? configuredValueTaskAwaitable) 321public static bool IsSerializationConstructor([NotNullWhen(returnValue: true)] this IMethodSymbol? method, INamedTypeSymbol? serializationInfoType, INamedTypeSymbol? streamingContextType) 327public static bool IsGetObjectData([NotNullWhen(returnValue: true)] this IMethodSymbol? method, INamedTypeSymbol? serializationInfoType, INamedTypeSymbol? streamingContextType) 374public static bool IsCollectionAddMethod(this IMethodSymbol method, ImmutableHashSet<INamedTypeSymbol> iCollectionTypes) 395public static bool IsTaskFromResultMethod(this IMethodSymbol method, [NotNullWhen(returnValue: true)] INamedTypeSymbol? taskType) 404public static bool IsTaskConfigureAwaitMethod(this IMethodSymbol method, [NotNullWhen(returnValue: true)] INamedTypeSymbol? genericTaskType) 416public static bool IsAsyncDisposableConfigureAwaitMethod(this IMethodSymbol method, [NotNullWhen(returnValue: true)] INamedTypeSymbol? asyncDisposableType, [NotNullWhen(returnValue: true)] INamedTypeSymbol? taskAsyncEnumerableExtensions) 493public static bool IsLockMethod(this IMethodSymbol method, [NotNullWhen(returnValue: true)] INamedTypeSymbol? systemThreadingMonitor) 503public static bool IsInterlockedExchangeMethod(this IMethodSymbol method, INamedTypeSymbol? systemThreadingInterlocked) 515public static bool IsInterlockedCompareExchangeMethod(this IMethodSymbol method, INamedTypeSymbol? systemThreadingInterlocked) 546public static bool IsBenchmarkOrXUnitTestMethod(this IMethodSymbol method, ConcurrentDictionary<INamedTypeSymbol, bool> knownTestAttributes, INamedTypeSymbol? benchmarkAttribute, INamedTypeSymbol? xunitFactAttribute) 571var typeSymbol = methodSymbol.ContainingType;
src\RoslynAnalyzers\Utilities\Compiler\Extensions\INamedTypeSymbolExtensions.cs (9)
19public static bool IsFileLocal(this INamedTypeSymbol symbol) => symbol.IsFileLocal; 43public static bool DerivesFromOrImplementsAnyConstructionOf(this INamedTypeSymbol type, INamedTypeSymbol parentType) 50for (INamedTypeSymbol? baseType = type.OriginalDefinition; 68public static bool OverridesEquals(this INamedTypeSymbol symbol) 74public static bool IsBenchmarkOrXUnitTestAttribute(this INamedTypeSymbol attributeClass, ConcurrentDictionary<INamedTypeSymbol, bool> knownTestAttributes, INamedTypeSymbol? benchmarkAttribute, INamedTypeSymbol? xunitFactAttribute)
src\RoslynAnalyzers\Utilities\Compiler\Extensions\IPropertySymbolExtensions.cs (1)
36var typeSymbol = propertySymbol.ContainingType;
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\RoslynAnalyzers\Utilities\Compiler\Extensions\ITypeSymbolExtensions.cs (14)
116INamedTypeSymbol? iDisposable, 117INamedTypeSymbol? iAsyncDisposable, 118INamedTypeSymbol? configuredAsyncDisposable) 140static bool IsInterfaceOrImplementsInterface(ITypeSymbol type, INamedTypeSymbol? interfaceType) 150public static IEnumerable<AttributeData> GetApplicableAttributes(this INamedTypeSymbol type, INamedTypeSymbol? attributeUsageAttribute) 182static bool IsInheritedAttribute(AttributeData attributeData, INamedTypeSymbol attributeUsageAttribute) 184for (var currentAttributeClass = attributeData.AttributeClass; 217public static IEnumerable<AttributeData> GetApplicableExportAttributes(this INamedTypeSymbol? type, INamedTypeSymbol? exportAttributeV1, INamedTypeSymbol? exportAttributeV2, INamedTypeSymbol? inheritedExportAttribute) 265=> typeSymbol.IsNullableValueType() && ((INamedTypeSymbol)typeSymbol).TypeArguments[0].SpecialType == SpecialType.System_Boolean; 268=> (typeSymbol as INamedTypeSymbol)?.TupleUnderlyingType ?? typeSymbol;
src\RoslynAnalyzers\Utilities\Compiler\Options\AnalyzerOptionsExtensions.cs (9)
281if (symbol is INamedTypeSymbol namedType && !excludedTypeNamesWithDerivedTypes.IsEmpty) 283foreach (var type in namedType.GetBaseTypesAndThis()) 379public static SymbolNamesWithValueOption<INamedTypeSymbol?> GetAdditionalRequiredGenericInterfaces( 386private static SymbolNamesWithValueOption<INamedTypeSymbol?> GetAdditionalRequiredGenericInterfaces( 394static SymbolNamesWithValueOption<INamedTypeSymbol?>.NameParts GetParts(string name, Compilation compilation) 401return new SymbolNamesWithValueOption<INamedTypeSymbol?>.NameParts(name, null); 413matchingSymbols[0] is not INamedTypeSymbol namedType || 418return new SymbolNamesWithValueOption<INamedTypeSymbol?>.NameParts(split[0], null); 421return new SymbolNamesWithValueOption<INamedTypeSymbol?>.NameParts(split[0], namedType);
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\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\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Extensions\OperationExtensions.cs (2)
405var notImplementedExceptionType = compilation.NotImplementedExceptionType(); 454static bool IsThrowNotImplementedOperation(INamedTypeSymbol notImplementedExceptionType, IOperation? operation)
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); 177var enumerableType = semanticModel.Compilation.IEnumerableOfTType();
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\NamingStyles\NamingStyleRules.cs (3)
65var containingType = symbol.ContainingType; 87var containingType = symbol.ContainingType; 90foreach (var implementedInterface in implementedInterfaces)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Services\SemanticFacts\ISemanticFacts.cs (4)
67bool LastEnumValueHasInitializer(INamedTypeSymbol namedTypeSymbol); 88bool IsPartial(INamedTypeSymbol typeSymbol, CancellationToken cancellationToken); 107bool IsInExpressionTree(SemanticModel semanticModel, SyntaxNode node, [NotNullWhen(true)] INamedTypeSymbol? expressionType, CancellationToken cancellationToken); 122bool TryGetPrimaryConstructor(INamedTypeSymbol typeSymbol, [NotNullWhen(true)] out IMethodSymbol? primaryConstructor);
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\SymbolKey\SymbolKey.AnonymousFunctionOrDelegateSymbolKey.cs (1)
65var anonymousDelegate = methodSymbol.AssociatedAnonymousDelegate;
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\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\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\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\SymbolKey\SymbolKey.FunctionPointerTypeSymbolKey.cs (2)
37var callingConventionModifiers = ImmutableArray<INamedTypeSymbol>.Empty; 40using var modifiersBuilder = reader.ReadSymbolKeyArray<IFunctionPointerTypeSymbol, INamedTypeSymbol>(
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\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\SymbolKey\SymbolKey.ParameterSymbolKey.cs (1)
64var delegateInvoke = (eventSymbol.Type as INamedTypeSymbol)?.DelegateInvokeMethod;
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\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\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Utilities\AbstractSpeculationAnalyzer.cs (5)
417var type = methodSymbol.ContainingType; 418var newType = newMethodSymbol.ContainingType; 491private static bool EnumTypesAreCompatible(INamedTypeSymbol type1, INamedTypeSymbol type2) 992var newSymbolContainingType = newSymbol.ContainingType;
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Utilities\EnumValueUtilities.cs (1)
21public static object GetNextEnumValue(INamedTypeSymbol enumType)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Compilation\CompilationExtensions.cs (78)
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? EventArgsType(this Compilation compilation) 129public static INamedTypeSymbol? NotImplementedExceptionType(this Compilation compilation) 132public static INamedTypeSymbol? EqualityComparerOfTType(this Compilation compilation) 135public static INamedTypeSymbol? ActionType(this Compilation compilation) 138public static INamedTypeSymbol? ExpressionOfTType(this Compilation compilation) 141public static INamedTypeSymbol? EditorBrowsableAttributeType(this Compilation compilation) 144public static INamedTypeSymbol? EditorBrowsableStateType(this Compilation compilation) 147public static INamedTypeSymbol? TaskType(this Compilation compilation) 150public static INamedTypeSymbol? TaskOfTType(this Compilation compilation) 153public static INamedTypeSymbol? ValueTaskType(this Compilation compilation) 156public static INamedTypeSymbol? ValueTaskOfTType(this Compilation compilation) 159public static INamedTypeSymbol? IEnumerableType(this Compilation compilation) 162public static INamedTypeSymbol? IEnumerableOfTType(this Compilation compilation) 165public static INamedTypeSymbol? IEnumeratorOfTType(this Compilation compilation) 168public static INamedTypeSymbol? IListOfTType(this Compilation compilation) 171public static INamedTypeSymbol? IReadOnlyListOfTType(this Compilation compilation) 174public static INamedTypeSymbol? ISetOfTType(this Compilation compilation) 177public static INamedTypeSymbol? IReadOnlySetOfTType(this Compilation compilation) 180public static INamedTypeSymbol? IAsyncEnumerableOfTType(this Compilation compilation) 183public static INamedTypeSymbol? IAsyncEnumeratorOfTType(this Compilation compilation) 186public static INamedTypeSymbol? ImmutableArrayOfTType(this Compilation compilation) 189public static INamedTypeSymbol? SerializableAttributeType(this Compilation compilation) 192public static INamedTypeSymbol? CoClassType(this Compilation compilation) 195public static INamedTypeSymbol? ComAliasNameAttributeType(this Compilation compilation) 198public static INamedTypeSymbol? SuppressMessageAttributeType(this Compilation compilation) 201public static INamedTypeSymbol? TupleElementNamesAttributeType(this Compilation compilation) 204public static INamedTypeSymbol? NativeIntegerAttributeType(this Compilation compilation) 207public static INamedTypeSymbol? DynamicAttributeType(this Compilation compilation) 210public static INamedTypeSymbol? LazyOfTType(this Compilation compilation) 213public static INamedTypeSymbol? ISerializableType(this Compilation compilation) 216public static INamedTypeSymbol? SerializationInfoType(this Compilation compilation) 219public static INamedTypeSymbol? StreamingContextType(this Compilation compilation) 222public static INamedTypeSymbol? OnDeserializingAttribute(this Compilation compilation) 225public static INamedTypeSymbol? OnDeserializedAttribute(this Compilation compilation) 228public static INamedTypeSymbol? OnSerializingAttribute(this Compilation compilation) 231public static INamedTypeSymbol? OnSerializedAttribute(this Compilation compilation) 234public static INamedTypeSymbol? ComRegisterFunctionAttribute(this Compilation compilation) 237public static INamedTypeSymbol? ComUnregisterFunctionAttribute(this Compilation compilation) 240public static INamedTypeSymbol? ConditionalAttribute(this Compilation compilation) 243public static INamedTypeSymbol? ObsoleteAttribute(this Compilation compilation) 246public static INamedTypeSymbol? SystemCompositionImportingConstructorAttribute(this Compilation compilation) 249public static INamedTypeSymbol? SystemComponentModelCompositionImportingConstructorAttribute(this Compilation compilation) 252public static INamedTypeSymbol? SystemIDisposableType(this Compilation compilation) 255public static INamedTypeSymbol? NotNullAttribute(this Compilation compilation) 258public static INamedTypeSymbol? MaybeNullAttribute(this Compilation compilation) 261public static INamedTypeSymbol? MaybeNullWhenAttribute(this Compilation compilation) 264public static INamedTypeSymbol? AllowNullAttribute(this Compilation compilation) 267public static INamedTypeSymbol? DisallowNullAttribute(this Compilation compilation) 270public static INamedTypeSymbol? DataMemberAttribute(this Compilation compilation) 273public static INamedTypeSymbol? DataContractAttribute(this Compilation compilation) 276public static INamedTypeSymbol? AsyncMethodBuilderAttribute(this Compilation compilation) 279public static INamedTypeSymbol? CancellationTokenType(this Compilation compilation) 282public static INamedTypeSymbol? ValueTupleType(this Compilation compilation, int arity) 285public static INamedTypeSymbol? ListOfTType(this Compilation compilation) 288public static INamedTypeSymbol? ReadOnlySpanOfTType(this Compilation compilation) 291public static INamedTypeSymbol? SpanOfTType(this Compilation compilation) 294public static INamedTypeSymbol? InterpolatedStringHandlerAttributeType(this Compilation compilation) 322public static INamedTypeSymbol? GetBestTypeByMetadataName(this Compilation compilation, string fullyQualifiedMetadataName) 324INamedTypeSymbol? type = null; 326foreach (var currentType in compilation.GetTypesByMetadataName(fullyQualifiedMetadataName)) 361foreach (var candidateTopLevelType in compilation.SourceModule.GlobalNamespace.GetTypeMembers(WellKnownMemberNames.TopLevelStatementsEntryPointTypeName, arity: 0)) 373public static INamedTypeSymbol? TryGetCallingConventionSymbol(this Compilation compilation, string callingConvention)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\IMethodSymbolExtensions.cs (4)
44public static bool HasEventHandlerSignature(this IMethodSymbol method, [NotNullWhen(returnValue: true)] INamedTypeSymbol? eventArgsType) 103public static bool IsEntryPoint(this IMethodSymbol methodSymbol, INamedTypeSymbol? taskType, INamedTypeSymbol? genericTaskType) 119if (method.ReturnType is not INamedTypeSymbol { Arity: 0 })
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\INamedTypeSymbolExtensions.cs (73)
23public static IEnumerable<INamedTypeSymbol> GetBaseTypesAndThis(this INamedTypeSymbol? namedType) 25var current = namedType; 33public static ImmutableArray<ITypeParameterSymbol> GetAllTypeParameters(this INamedTypeSymbol? symbol) 39public static ImmutableArray<ITypeSymbol> GetAllTypeArguments(this INamedTypeSymbol? symbol) 45private static Stack<INamedTypeSymbol> GetContainmentStack(INamedTypeSymbol? symbol) 47var stack = new Stack<INamedTypeSymbol>(); 48for (var current = symbol; current != null; current = current.ContainingType) 56public static bool IsContainedWithin([NotNullWhen(returnValue: true)] this INamedTypeSymbol? symbol, INamedTypeSymbol outer) 59for (var current = symbol; current != null; current = current.ContainingType) 70public static ISymbol? FindImplementationForAbstractMember(this INamedTypeSymbol? type, ISymbol symbol) 81private static bool ImplementationExists(INamedTypeSymbol classOrStructType, ISymbol member) 85this INamedTypeSymbol classOrStructType, 87Func<INamedTypeSymbol, ISymbol, bool> isValidImplementation, 117private static bool IsInterfacePropertyImplemented(INamedTypeSymbol classOrStructType, IPropertySymbol propertySymbol) 125static bool IsAccessorImplemented(IMethodSymbol? accessor, INamedTypeSymbol classOrStructType) 131private static bool IsAbstractPropertyImplemented(INamedTypeSymbol classOrStructType, IPropertySymbol propertySymbol) 154this INamedTypeSymbol classOrStructType, 156Func<INamedTypeSymbol, ISymbol, bool> isValid, 179public static ImmutableArray<(INamedTypeSymbol type, ImmutableArray<ISymbol> members)> GetAllUnimplementedMembers( 180this INamedTypeSymbol classOrStructType, 181IEnumerable<INamedTypeSymbol> interfaces, 197static ImmutableArray<ISymbol> GetImplicitlyImplementableMembers(INamedTypeSymbol type, ISymbol within) 249public static ImmutableArray<(INamedTypeSymbol type, ImmutableArray<ISymbol> members)> GetAllUnimplementedMembersInThis( 250this INamedTypeSymbol classOrStructType, 251IEnumerable<INamedTypeSymbol> interfacesOrAbstractClasses, 267public static ImmutableArray<(INamedTypeSymbol type, ImmutableArray<ISymbol> members)> GetAllUnimplementedMembersInThis( 268this INamedTypeSymbol classOrStructType, 269IEnumerable<INamedTypeSymbol> interfacesOrAbstractClasses, 270Func<INamedTypeSymbol, ISymbol, ImmutableArray<ISymbol>> interfaceMemberGetter, 286public static ImmutableArray<(INamedTypeSymbol type, ImmutableArray<ISymbol> members)> GetAllUnimplementedExplicitMembers( 287this INamedTypeSymbol classOrStructType, 288IEnumerable<INamedTypeSymbol> interfaces, 300private static ImmutableArray<ISymbol> GetExplicitlyImplementableMembers(INamedTypeSymbol type, ISymbol within) 327private static ImmutableArray<(INamedTypeSymbol type, ImmutableArray<ISymbol> members)> GetAllUnimplementedMembers( 328this INamedTypeSymbol classOrStructType, 329IEnumerable<INamedTypeSymbol> interfacesOrAbstractClasses, 330Func<INamedTypeSymbol, ISymbol, Func<INamedTypeSymbol, ISymbol, bool>, CancellationToken, bool> isImplemented, 331Func<INamedTypeSymbol, ISymbol, bool> isValidImplementation, 332Func<INamedTypeSymbol, ISymbol, ImmutableArray<ISymbol>> interfaceMemberGetter, 361private static ImmutableArray<INamedTypeSymbol> GetTypesToImplement( 362INamedTypeSymbol classOrStructType, 363IEnumerable<INamedTypeSymbol> interfacesOrAbstractClasses, 372private static ImmutableArray<INamedTypeSymbol> GetAbstractClassesToImplement( 373IEnumerable<INamedTypeSymbol> abstractClasses) 378private static ImmutableArray<INamedTypeSymbol> GetInterfacesToImplement( 379INamedTypeSymbol classOrStructType, 380IEnumerable<INamedTypeSymbol> interfaces, 387var interfacesToImplement = new List<INamedTypeSymbol>( 392var baseType = classOrStructType.BaseType; 403this INamedTypeSymbol classOrStructType, 404INamedTypeSymbol interfaceType, 405Func<INamedTypeSymbol, ISymbol, Func<INamedTypeSymbol, ISymbol, bool>, CancellationToken, bool> isImplemented, 406Func<INamedTypeSymbol, ISymbol, bool> isValidImplementation, 407Func<INamedTypeSymbol, ISymbol, ImmutableArray<ISymbol>> interfaceMemberGetter, 449this INamedTypeSymbol attributeSymbol, 455var systemAttributeType = compilation.AttributeType(); 457foreach (var type in attributeSymbol.GetBaseTypesAndThis()) 517private static ImmutableArray<ISymbol> GetMembers(INamedTypeSymbol type, ISymbol within) 531this INamedTypeSymbol containingType, CancellationToken cancellationToken) 548foreach (var type in baseTypes) 569Dictionary<ISymbol, int> result, INamedTypeSymbol containingType, CancellationToken cancellationToken) 590Dictionary<ISymbol, int> result, INamedTypeSymbol containingType, CancellationToken cancellationToken) 612Dictionary<ISymbol, int> result, INamedTypeSymbol containingType, 613INamedTypeSymbol type, ref int index, CancellationToken cancellationToken) 626private static bool IsOverridable(ISymbol member, INamedTypeSymbol containingType) 669public static INamedTypeSymbol TryConstruct(this INamedTypeSymbol type, ITypeSymbol[] typeArguments) 672public static bool IsCollectionBuilderAttribute([NotNullWhen(true)] this INamedTypeSymbol? type)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\INamespaceOrTypeSymbolExtensions.cs (3)
90public static IEnumerable<INamedTypeSymbol> GetAllTypes( 106var namedType = (INamedTypeSymbol)current;
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\ISymbolExtensions.cs (15)
98foreach (var baseType in symbol.ContainingType.GetBaseTypes()) 107bool TryFindLooseMatch(ISymbol symbol, INamedTypeSymbol baseType, [NotNullWhen(true)] out ISymbol? looseMatch) 156foreach (var iface in symbol.ContainingType.AllInterfaces) 214public static INamedTypeSymbol? GetContainingTypeOrThis(this ISymbol symbol) 216if (symbol is INamedTypeSymbol namedType) 309=> symbol is INamedTypeSymbol { IsAnonymousType: true }; 352SymbolKind.NamedType => ((INamedTypeSymbol)symbol).Arity, 433INamedTypeSymbol nt => nt.TypeParameters, 454INamedTypeSymbol nt => nt.TypeArguments, 463var containingType = symbol.ContainingType; 504var delegateType = compilation.GetTypeByMetadataName(method.ReturnsVoid 533=> symbol is INamedTypeSymbol { IsStatic: true }; 545foreach (var type in namespaceOrType.GetAllTypes(cancellationToken)) 559return ((INamedTypeSymbol)symbol).GetMembers().OfType<IPropertySymbol>().Where(p => p.CanBeReferencedByName); 809public static bool HasAttribute([NotNullWhen(true)] this ISymbol? symbol, [NotNullWhen(true)] INamedTypeSymbol? attributeClass)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\ISymbolExtensions.RequiresUnsafeModifierVisitor.cs (1)
56public override bool VisitNamedType(INamedTypeSymbol symbol)
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\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\ITypeGenerator.cs (1)
13ITypeSymbol Construct(INamedTypeSymbol namedType, ITypeSymbol[] typeArguments);
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\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\ITypeSymbolExtensions.AnonymousTypeRemover.cs (1)
42public override ITypeSymbol VisitNamedType(INamedTypeSymbol symbol)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\ITypeSymbolExtensions.CollectTypeParameterSymbolsVisitor.cs (1)
57public override void VisitNamedType(INamedTypeSymbol symbol)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\ITypeSymbolExtensions.CompilationTypeGenerator.cs (1)
19public ITypeSymbol Construct(INamedTypeSymbol namedType, ITypeSymbol[] typeArguments)
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) 315INamedTypeSymbol n => ContainsAnonymousType(n), 320private static bool ContainsAnonymousType(INamedTypeSymbol type) 410public static INamedTypeSymbol? GetDelegateType(this ITypeSymbol? typeSymbol, Compilation compilation) 414var expressionOfT = compilation.ExpressionOfTType(); 417var typeArgument = ((INamedTypeSymbol)typeSymbol).TypeArguments[0]; 418return typeArgument as INamedTypeSymbol; 423return typeSymbol as INamedTypeSymbol; 576var n2 = t2 as INamedTypeSymbol; 578if (t1 is not INamedTypeSymbol n1) 628public static bool IsEnumType([NotNullWhen(true)] this ITypeSymbol? type, [NotNullWhen(true)] out INamedTypeSymbol? enumType) 632enumType = (INamedTypeSymbol)type; 724if (type is not INamedTypeSymbol 777=> type is INamedTypeSymbol 785=> symbol is INamedTypeSymbol 793=> type is INamedTypeSymbol namedType &&
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\ITypeSymbolExtensions.MinimalAccessibilityVisitor.cs (2)
42foreach (var callingConventionType in symbol.Signature.UnmanagedCallingConventionTypes) 50public override Accessibility VisitNamedType(INamedTypeSymbol symbol)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\ITypeSymbolExtensions.SubstituteTypesVisitor.cs (1)
58public override ITypeSymbol VisitNamedType(INamedTypeSymbol symbol)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\ITypeSymbolExtensions.UnavailableTypeParameterRemover.cs (1)
43public override ITypeSymbol VisitNamedType(INamedTypeSymbol symbol)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\ITypeSymbolExtensions.UnnamedErrorTypeRemover.cs (1)
42public override ITypeSymbol VisitNamedType(INamedTypeSymbol symbol)
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\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\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\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\SymbolEquivalenceComparer.ParameterSymbolEqualityComparer.cs (2)
23Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies,
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\SymbolEquivalenceComparer.SignatureTypeSymbolEquivalenceComparer.cs (2)
18public bool Equals(ITypeSymbol? x, ITypeSymbol? y, Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies)
Text.Analyzers (733)
EnumsShouldHavePluralNames.cs (4)
60INamedTypeSymbol? flagsAttribute = compilationContext.Compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemFlagsAttribute); 70private static void AnalyzeSymbol(SymbolAnalysisContext context, INamedTypeSymbol flagsAttribute) 72var symbol = (INamedTypeSymbol)context.Symbol;
IdentifiersShouldBeSpelledCorrectly.cs (1)
340case INamedTypeSymbol type:
src\Compilers\Core\Portable\SourceGeneration\GeneratedCodeUtilities.cs (1)
19ISymbol symbol, INamedTypeSymbol generatedCodeAttribute)
src\RoslynAnalyzers\Utilities\Compiler\CodeMetrics\CodeAnalysisMetricData.AssemblyMetricData.cs (2)
21ImmutableHashSet<INamedTypeSymbol> coupledNamedTypes, 45var coupledTypesBuilder = ImmutableHashSet.CreateBuilder<INamedTypeSymbol>();
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\RoslynAnalyzers\Utilities\Compiler\CodeMetrics\CodeAnalysisMetricData.EventMetricData.cs (2)
18ImmutableHashSet<INamedTypeSymbol> coupledNamedTypes, 30var coupledTypesBuilder = ImmutableHashSet.CreateBuilder<INamedTypeSymbol>();
src\RoslynAnalyzers\Utilities\Compiler\CodeMetrics\CodeAnalysisMetricData.FieldMetricData.cs (2)
18ImmutableHashSet<INamedTypeSymbol> coupledNamedTypes, 29var coupledTypesBuilder = ImmutableHashSet.CreateBuilder<INamedTypeSymbol>();
src\RoslynAnalyzers\Utilities\Compiler\CodeMetrics\CodeAnalysisMetricData.MethodMetricData.cs (2)
18ImmutableHashSet<INamedTypeSymbol> coupledNamedTypes, 29var coupledTypesBuilder = ImmutableHashSet.CreateBuilder<INamedTypeSymbol>();
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\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\RoslynAnalyzers\Utilities\Compiler\CodeMetrics\CodeAnalysisMetricData.PropertyMetricData.cs (2)
18ImmutableHashSet<INamedTypeSymbol> coupledNamedTypes, 30var coupledTypesBuilder = ImmutableHashSet.CreateBuilder<INamedTypeSymbol>();
src\RoslynAnalyzers\Utilities\Compiler\CodeMetrics\CodeMetricsAnalysisContext.cs (2)
18Func<INamedTypeSymbol, bool>? isExcludedFromInheritanceCountFunc = null) 32public Func<INamedTypeSymbol, bool> IsExcludedFromInheritanceCountFunc { get; }
src\RoslynAnalyzers\Utilities\Compiler\CodeMetrics\MetricsHelper.cs (12)
39internal static void AddCoupledNamedTypes(ImmutableHashSet<INamedTypeSymbol>.Builder builder, WellKnownTypeProvider wellKnownTypeProvider, 40ImmutableHashSet<INamedTypeSymbol> coupledTypes) 42foreach (var coupledType in coupledTypes) 48internal static void AddCoupledNamedTypes(ImmutableHashSet<INamedTypeSymbol>.Builder builder, WellKnownTypeProvider wellKnownTypeProvider, 54internal static void AddCoupledNamedTypes(ImmutableHashSet<INamedTypeSymbol>.Builder builder, WellKnownTypeProvider wellKnownTypeProvider, 195ImmutableHashSet<INamedTypeSymbol>.Builder builder, 349private static void AddCoupledNamedTypesCore(ImmutableHashSet<INamedTypeSymbol>.Builder builder, ITypeSymbol typeOpt, 352if (typeOpt is INamedTypeSymbol usedType && 370static bool isIgnoreableType(INamedTypeSymbol namedType, WellKnownTypeProvider wellKnownTypeProvider) 400internal static void RemoveContainingTypes(ISymbol symbol, ImmutableHashSet<INamedTypeSymbol>.Builder coupledTypesBuilder) 402var namedType = symbol as INamedTypeSymbol ?? symbol.ContainingType;
src\RoslynAnalyzers\Utilities\Compiler\DiagnosticHelpers.cs (1)
68if (symbol is INamedTypeSymbol namedType &&
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\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\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) 208private static bool HasDisposeCloseAsyncMethodSignature(this IMethodSymbol method, INamedTypeSymbol? taskType) 216INamedTypeSymbol? task, 217INamedTypeSymbol? valueTask, 218INamedTypeSymbol? configuredValueTaskAwaitable) 231private static bool HasOverriddenDisposeCoreAsyncMethodSignature(this IMethodSymbol method, [NotNullWhen(returnValue: true)] INamedTypeSymbol? task) 244private static bool HasVirtualOrOverrideDisposeCoreAsyncMethodSignature(this IMethodSymbol method, [NotNullWhen(returnValue: true)] INamedTypeSymbol? valueTask) 258INamedTypeSymbol? iDisposable = compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemIDisposable); 259INamedTypeSymbol? iAsyncDisposable = compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemIAsyncDisposable); 260INamedTypeSymbol? configuredAsyncDisposable = compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemRuntimeCompilerServicesConfiguredAsyncDisposable); 261INamedTypeSymbol? task = compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemThreadingTasksTask); 262INamedTypeSymbol? valueTask = compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemThreadingTasksValueTask); 263INamedTypeSymbol? configuredValueTaskAwaitable = compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemRuntimeCompilerServicesConfiguredValueTaskAwaitable); 272INamedTypeSymbol? iDisposable, 273INamedTypeSymbol? iAsyncDisposable, 274INamedTypeSymbol? configuredAsyncDisposable, 275INamedTypeSymbol? task, 276INamedTypeSymbol? valueTask, 277INamedTypeSymbol? configuredValueTaskAwaitable) 321public static bool IsSerializationConstructor([NotNullWhen(returnValue: true)] this IMethodSymbol? method, INamedTypeSymbol? serializationInfoType, INamedTypeSymbol? streamingContextType) 327public static bool IsGetObjectData([NotNullWhen(returnValue: true)] this IMethodSymbol? method, INamedTypeSymbol? serializationInfoType, INamedTypeSymbol? streamingContextType) 374public static bool IsCollectionAddMethod(this IMethodSymbol method, ImmutableHashSet<INamedTypeSymbol> iCollectionTypes) 395public static bool IsTaskFromResultMethod(this IMethodSymbol method, [NotNullWhen(returnValue: true)] INamedTypeSymbol? taskType) 404public static bool IsTaskConfigureAwaitMethod(this IMethodSymbol method, [NotNullWhen(returnValue: true)] INamedTypeSymbol? genericTaskType) 416public static bool IsAsyncDisposableConfigureAwaitMethod(this IMethodSymbol method, [NotNullWhen(returnValue: true)] INamedTypeSymbol? asyncDisposableType, [NotNullWhen(returnValue: true)] INamedTypeSymbol? taskAsyncEnumerableExtensions) 493public static bool IsLockMethod(this IMethodSymbol method, [NotNullWhen(returnValue: true)] INamedTypeSymbol? systemThreadingMonitor) 503public static bool IsInterlockedExchangeMethod(this IMethodSymbol method, INamedTypeSymbol? systemThreadingInterlocked) 515public static bool IsInterlockedCompareExchangeMethod(this IMethodSymbol method, INamedTypeSymbol? systemThreadingInterlocked) 546public static bool IsBenchmarkOrXUnitTestMethod(this IMethodSymbol method, ConcurrentDictionary<INamedTypeSymbol, bool> knownTestAttributes, INamedTypeSymbol? benchmarkAttribute, INamedTypeSymbol? xunitFactAttribute) 571var typeSymbol = methodSymbol.ContainingType;
src\RoslynAnalyzers\Utilities\Compiler\Extensions\INamedTypeSymbolExtensions.cs (9)
19public static bool IsFileLocal(this INamedTypeSymbol symbol) => symbol.IsFileLocal; 43public static bool DerivesFromOrImplementsAnyConstructionOf(this INamedTypeSymbol type, INamedTypeSymbol parentType) 50for (INamedTypeSymbol? baseType = type.OriginalDefinition; 68public static bool OverridesEquals(this INamedTypeSymbol symbol) 74public static bool IsBenchmarkOrXUnitTestAttribute(this INamedTypeSymbol attributeClass, ConcurrentDictionary<INamedTypeSymbol, bool> knownTestAttributes, INamedTypeSymbol? benchmarkAttribute, INamedTypeSymbol? xunitFactAttribute)
src\RoslynAnalyzers\Utilities\Compiler\Extensions\IPropertySymbolExtensions.cs (1)
36var typeSymbol = propertySymbol.ContainingType;
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\RoslynAnalyzers\Utilities\Compiler\Extensions\ITypeSymbolExtensions.cs (14)
116INamedTypeSymbol? iDisposable, 117INamedTypeSymbol? iAsyncDisposable, 118INamedTypeSymbol? configuredAsyncDisposable) 140static bool IsInterfaceOrImplementsInterface(ITypeSymbol type, INamedTypeSymbol? interfaceType) 150public static IEnumerable<AttributeData> GetApplicableAttributes(this INamedTypeSymbol type, INamedTypeSymbol? attributeUsageAttribute) 182static bool IsInheritedAttribute(AttributeData attributeData, INamedTypeSymbol attributeUsageAttribute) 184for (var currentAttributeClass = attributeData.AttributeClass; 217public static IEnumerable<AttributeData> GetApplicableExportAttributes(this INamedTypeSymbol? type, INamedTypeSymbol? exportAttributeV1, INamedTypeSymbol? exportAttributeV2, INamedTypeSymbol? inheritedExportAttribute) 265=> typeSymbol.IsNullableValueType() && ((INamedTypeSymbol)typeSymbol).TypeArguments[0].SpecialType == SpecialType.System_Boolean; 268=> (typeSymbol as INamedTypeSymbol)?.TupleUnderlyingType ?? typeSymbol;
src\RoslynAnalyzers\Utilities\Compiler\Options\AnalyzerOptionsExtensions.cs (9)
281if (symbol is INamedTypeSymbol namedType && !excludedTypeNamesWithDerivedTypes.IsEmpty) 283foreach (var type in namedType.GetBaseTypesAndThis()) 379public static SymbolNamesWithValueOption<INamedTypeSymbol?> GetAdditionalRequiredGenericInterfaces( 386private static SymbolNamesWithValueOption<INamedTypeSymbol?> GetAdditionalRequiredGenericInterfaces( 394static SymbolNamesWithValueOption<INamedTypeSymbol?>.NameParts GetParts(string name, Compilation compilation) 401return new SymbolNamesWithValueOption<INamedTypeSymbol?>.NameParts(name, null); 413matchingSymbols[0] is not INamedTypeSymbol namedType || 418return new SymbolNamesWithValueOption<INamedTypeSymbol?>.NameParts(split[0], null); 421return new SymbolNamesWithValueOption<INamedTypeSymbol?>.NameParts(split[0], namedType);
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\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\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Extensions\OperationExtensions.cs (2)
405var notImplementedExceptionType = compilation.NotImplementedExceptionType(); 454static bool IsThrowNotImplementedOperation(INamedTypeSymbol notImplementedExceptionType, IOperation? operation)
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); 177var enumerableType = semanticModel.Compilation.IEnumerableOfTType();
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\NamingStyles\NamingStyleRules.cs (3)
65var containingType = symbol.ContainingType; 87var containingType = symbol.ContainingType; 90foreach (var implementedInterface in implementedInterfaces)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Services\SemanticFacts\ISemanticFacts.cs (4)
67bool LastEnumValueHasInitializer(INamedTypeSymbol namedTypeSymbol); 88bool IsPartial(INamedTypeSymbol typeSymbol, CancellationToken cancellationToken); 107bool IsInExpressionTree(SemanticModel semanticModel, SyntaxNode node, [NotNullWhen(true)] INamedTypeSymbol? expressionType, CancellationToken cancellationToken); 122bool TryGetPrimaryConstructor(INamedTypeSymbol typeSymbol, [NotNullWhen(true)] out IMethodSymbol? primaryConstructor);
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\SymbolKey\SymbolKey.AnonymousFunctionOrDelegateSymbolKey.cs (1)
65var anonymousDelegate = methodSymbol.AssociatedAnonymousDelegate;
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\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\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\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\SymbolKey\SymbolKey.FunctionPointerTypeSymbolKey.cs (2)
37var callingConventionModifiers = ImmutableArray<INamedTypeSymbol>.Empty; 40using var modifiersBuilder = reader.ReadSymbolKeyArray<IFunctionPointerTypeSymbol, INamedTypeSymbol>(
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\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\SymbolKey\SymbolKey.ParameterSymbolKey.cs (1)
64var delegateInvoke = (eventSymbol.Type as INamedTypeSymbol)?.DelegateInvokeMethod;
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\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\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Utilities\AbstractSpeculationAnalyzer.cs (5)
417var type = methodSymbol.ContainingType; 418var newType = newMethodSymbol.ContainingType; 491private static bool EnumTypesAreCompatible(INamedTypeSymbol type1, INamedTypeSymbol type2) 992var newSymbolContainingType = newSymbol.ContainingType;
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Utilities\EnumValueUtilities.cs (1)
21public static object GetNextEnumValue(INamedTypeSymbol enumType)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Compilation\CompilationExtensions.cs (78)
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? EventArgsType(this Compilation compilation) 129public static INamedTypeSymbol? NotImplementedExceptionType(this Compilation compilation) 132public static INamedTypeSymbol? EqualityComparerOfTType(this Compilation compilation) 135public static INamedTypeSymbol? ActionType(this Compilation compilation) 138public static INamedTypeSymbol? ExpressionOfTType(this Compilation compilation) 141public static INamedTypeSymbol? EditorBrowsableAttributeType(this Compilation compilation) 144public static INamedTypeSymbol? EditorBrowsableStateType(this Compilation compilation) 147public static INamedTypeSymbol? TaskType(this Compilation compilation) 150public static INamedTypeSymbol? TaskOfTType(this Compilation compilation) 153public static INamedTypeSymbol? ValueTaskType(this Compilation compilation) 156public static INamedTypeSymbol? ValueTaskOfTType(this Compilation compilation) 159public static INamedTypeSymbol? IEnumerableType(this Compilation compilation) 162public static INamedTypeSymbol? IEnumerableOfTType(this Compilation compilation) 165public static INamedTypeSymbol? IEnumeratorOfTType(this Compilation compilation) 168public static INamedTypeSymbol? IListOfTType(this Compilation compilation) 171public static INamedTypeSymbol? IReadOnlyListOfTType(this Compilation compilation) 174public static INamedTypeSymbol? ISetOfTType(this Compilation compilation) 177public static INamedTypeSymbol? IReadOnlySetOfTType(this Compilation compilation) 180public static INamedTypeSymbol? IAsyncEnumerableOfTType(this Compilation compilation) 183public static INamedTypeSymbol? IAsyncEnumeratorOfTType(this Compilation compilation) 186public static INamedTypeSymbol? ImmutableArrayOfTType(this Compilation compilation) 189public static INamedTypeSymbol? SerializableAttributeType(this Compilation compilation) 192public static INamedTypeSymbol? CoClassType(this Compilation compilation) 195public static INamedTypeSymbol? ComAliasNameAttributeType(this Compilation compilation) 198public static INamedTypeSymbol? SuppressMessageAttributeType(this Compilation compilation) 201public static INamedTypeSymbol? TupleElementNamesAttributeType(this Compilation compilation) 204public static INamedTypeSymbol? NativeIntegerAttributeType(this Compilation compilation) 207public static INamedTypeSymbol? DynamicAttributeType(this Compilation compilation) 210public static INamedTypeSymbol? LazyOfTType(this Compilation compilation) 213public static INamedTypeSymbol? ISerializableType(this Compilation compilation) 216public static INamedTypeSymbol? SerializationInfoType(this Compilation compilation) 219public static INamedTypeSymbol? StreamingContextType(this Compilation compilation) 222public static INamedTypeSymbol? OnDeserializingAttribute(this Compilation compilation) 225public static INamedTypeSymbol? OnDeserializedAttribute(this Compilation compilation) 228public static INamedTypeSymbol? OnSerializingAttribute(this Compilation compilation) 231public static INamedTypeSymbol? OnSerializedAttribute(this Compilation compilation) 234public static INamedTypeSymbol? ComRegisterFunctionAttribute(this Compilation compilation) 237public static INamedTypeSymbol? ComUnregisterFunctionAttribute(this Compilation compilation) 240public static INamedTypeSymbol? ConditionalAttribute(this Compilation compilation) 243public static INamedTypeSymbol? ObsoleteAttribute(this Compilation compilation) 246public static INamedTypeSymbol? SystemCompositionImportingConstructorAttribute(this Compilation compilation) 249public static INamedTypeSymbol? SystemComponentModelCompositionImportingConstructorAttribute(this Compilation compilation) 252public static INamedTypeSymbol? SystemIDisposableType(this Compilation compilation) 255public static INamedTypeSymbol? NotNullAttribute(this Compilation compilation) 258public static INamedTypeSymbol? MaybeNullAttribute(this Compilation compilation) 261public static INamedTypeSymbol? MaybeNullWhenAttribute(this Compilation compilation) 264public static INamedTypeSymbol? AllowNullAttribute(this Compilation compilation) 267public static INamedTypeSymbol? DisallowNullAttribute(this Compilation compilation) 270public static INamedTypeSymbol? DataMemberAttribute(this Compilation compilation) 273public static INamedTypeSymbol? DataContractAttribute(this Compilation compilation) 276public static INamedTypeSymbol? AsyncMethodBuilderAttribute(this Compilation compilation) 279public static INamedTypeSymbol? CancellationTokenType(this Compilation compilation) 282public static INamedTypeSymbol? ValueTupleType(this Compilation compilation, int arity) 285public static INamedTypeSymbol? ListOfTType(this Compilation compilation) 288public static INamedTypeSymbol? ReadOnlySpanOfTType(this Compilation compilation) 291public static INamedTypeSymbol? SpanOfTType(this Compilation compilation) 294public static INamedTypeSymbol? InterpolatedStringHandlerAttributeType(this Compilation compilation) 322public static INamedTypeSymbol? GetBestTypeByMetadataName(this Compilation compilation, string fullyQualifiedMetadataName) 324INamedTypeSymbol? type = null; 326foreach (var currentType in compilation.GetTypesByMetadataName(fullyQualifiedMetadataName)) 361foreach (var candidateTopLevelType in compilation.SourceModule.GlobalNamespace.GetTypeMembers(WellKnownMemberNames.TopLevelStatementsEntryPointTypeName, arity: 0)) 373public static INamedTypeSymbol? TryGetCallingConventionSymbol(this Compilation compilation, string callingConvention)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\IMethodSymbolExtensions.cs (4)
44public static bool HasEventHandlerSignature(this IMethodSymbol method, [NotNullWhen(returnValue: true)] INamedTypeSymbol? eventArgsType) 103public static bool IsEntryPoint(this IMethodSymbol methodSymbol, INamedTypeSymbol? taskType, INamedTypeSymbol? genericTaskType) 119if (method.ReturnType is not INamedTypeSymbol { Arity: 0 })
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\INamedTypeSymbolExtensions.cs (73)
23public static IEnumerable<INamedTypeSymbol> GetBaseTypesAndThis(this INamedTypeSymbol? namedType) 25var current = namedType; 33public static ImmutableArray<ITypeParameterSymbol> GetAllTypeParameters(this INamedTypeSymbol? symbol) 39public static ImmutableArray<ITypeSymbol> GetAllTypeArguments(this INamedTypeSymbol? symbol) 45private static Stack<INamedTypeSymbol> GetContainmentStack(INamedTypeSymbol? symbol) 47var stack = new Stack<INamedTypeSymbol>(); 48for (var current = symbol; current != null; current = current.ContainingType) 56public static bool IsContainedWithin([NotNullWhen(returnValue: true)] this INamedTypeSymbol? symbol, INamedTypeSymbol outer) 59for (var current = symbol; current != null; current = current.ContainingType) 70public static ISymbol? FindImplementationForAbstractMember(this INamedTypeSymbol? type, ISymbol symbol) 81private static bool ImplementationExists(INamedTypeSymbol classOrStructType, ISymbol member) 85this INamedTypeSymbol classOrStructType, 87Func<INamedTypeSymbol, ISymbol, bool> isValidImplementation, 117private static bool IsInterfacePropertyImplemented(INamedTypeSymbol classOrStructType, IPropertySymbol propertySymbol) 125static bool IsAccessorImplemented(IMethodSymbol? accessor, INamedTypeSymbol classOrStructType) 131private static bool IsAbstractPropertyImplemented(INamedTypeSymbol classOrStructType, IPropertySymbol propertySymbol) 154this INamedTypeSymbol classOrStructType, 156Func<INamedTypeSymbol, ISymbol, bool> isValid, 179public static ImmutableArray<(INamedTypeSymbol type, ImmutableArray<ISymbol> members)> GetAllUnimplementedMembers( 180this INamedTypeSymbol classOrStructType, 181IEnumerable<INamedTypeSymbol> interfaces, 197static ImmutableArray<ISymbol> GetImplicitlyImplementableMembers(INamedTypeSymbol type, ISymbol within) 249public static ImmutableArray<(INamedTypeSymbol type, ImmutableArray<ISymbol> members)> GetAllUnimplementedMembersInThis( 250this INamedTypeSymbol classOrStructType, 251IEnumerable<INamedTypeSymbol> interfacesOrAbstractClasses, 267public static ImmutableArray<(INamedTypeSymbol type, ImmutableArray<ISymbol> members)> GetAllUnimplementedMembersInThis( 268this INamedTypeSymbol classOrStructType, 269IEnumerable<INamedTypeSymbol> interfacesOrAbstractClasses, 270Func<INamedTypeSymbol, ISymbol, ImmutableArray<ISymbol>> interfaceMemberGetter, 286public static ImmutableArray<(INamedTypeSymbol type, ImmutableArray<ISymbol> members)> GetAllUnimplementedExplicitMembers( 287this INamedTypeSymbol classOrStructType, 288IEnumerable<INamedTypeSymbol> interfaces, 300private static ImmutableArray<ISymbol> GetExplicitlyImplementableMembers(INamedTypeSymbol type, ISymbol within) 327private static ImmutableArray<(INamedTypeSymbol type, ImmutableArray<ISymbol> members)> GetAllUnimplementedMembers( 328this INamedTypeSymbol classOrStructType, 329IEnumerable<INamedTypeSymbol> interfacesOrAbstractClasses, 330Func<INamedTypeSymbol, ISymbol, Func<INamedTypeSymbol, ISymbol, bool>, CancellationToken, bool> isImplemented, 331Func<INamedTypeSymbol, ISymbol, bool> isValidImplementation, 332Func<INamedTypeSymbol, ISymbol, ImmutableArray<ISymbol>> interfaceMemberGetter, 361private static ImmutableArray<INamedTypeSymbol> GetTypesToImplement( 362INamedTypeSymbol classOrStructType, 363IEnumerable<INamedTypeSymbol> interfacesOrAbstractClasses, 372private static ImmutableArray<INamedTypeSymbol> GetAbstractClassesToImplement( 373IEnumerable<INamedTypeSymbol> abstractClasses) 378private static ImmutableArray<INamedTypeSymbol> GetInterfacesToImplement( 379INamedTypeSymbol classOrStructType, 380IEnumerable<INamedTypeSymbol> interfaces, 387var interfacesToImplement = new List<INamedTypeSymbol>( 392var baseType = classOrStructType.BaseType; 403this INamedTypeSymbol classOrStructType, 404INamedTypeSymbol interfaceType, 405Func<INamedTypeSymbol, ISymbol, Func<INamedTypeSymbol, ISymbol, bool>, CancellationToken, bool> isImplemented, 406Func<INamedTypeSymbol, ISymbol, bool> isValidImplementation, 407Func<INamedTypeSymbol, ISymbol, ImmutableArray<ISymbol>> interfaceMemberGetter, 449this INamedTypeSymbol attributeSymbol, 455var systemAttributeType = compilation.AttributeType(); 457foreach (var type in attributeSymbol.GetBaseTypesAndThis()) 517private static ImmutableArray<ISymbol> GetMembers(INamedTypeSymbol type, ISymbol within) 531this INamedTypeSymbol containingType, CancellationToken cancellationToken) 548foreach (var type in baseTypes) 569Dictionary<ISymbol, int> result, INamedTypeSymbol containingType, CancellationToken cancellationToken) 590Dictionary<ISymbol, int> result, INamedTypeSymbol containingType, CancellationToken cancellationToken) 612Dictionary<ISymbol, int> result, INamedTypeSymbol containingType, 613INamedTypeSymbol type, ref int index, CancellationToken cancellationToken) 626private static bool IsOverridable(ISymbol member, INamedTypeSymbol containingType) 669public static INamedTypeSymbol TryConstruct(this INamedTypeSymbol type, ITypeSymbol[] typeArguments) 672public static bool IsCollectionBuilderAttribute([NotNullWhen(true)] this INamedTypeSymbol? type)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\INamespaceOrTypeSymbolExtensions.cs (3)
90public static IEnumerable<INamedTypeSymbol> GetAllTypes( 106var namedType = (INamedTypeSymbol)current;
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\ISymbolExtensions.cs (15)
98foreach (var baseType in symbol.ContainingType.GetBaseTypes()) 107bool TryFindLooseMatch(ISymbol symbol, INamedTypeSymbol baseType, [NotNullWhen(true)] out ISymbol? looseMatch) 156foreach (var iface in symbol.ContainingType.AllInterfaces) 214public static INamedTypeSymbol? GetContainingTypeOrThis(this ISymbol symbol) 216if (symbol is INamedTypeSymbol namedType) 309=> symbol is INamedTypeSymbol { IsAnonymousType: true }; 352SymbolKind.NamedType => ((INamedTypeSymbol)symbol).Arity, 433INamedTypeSymbol nt => nt.TypeParameters, 454INamedTypeSymbol nt => nt.TypeArguments, 463var containingType = symbol.ContainingType; 504var delegateType = compilation.GetTypeByMetadataName(method.ReturnsVoid 533=> symbol is INamedTypeSymbol { IsStatic: true }; 545foreach (var type in namespaceOrType.GetAllTypes(cancellationToken)) 559return ((INamedTypeSymbol)symbol).GetMembers().OfType<IPropertySymbol>().Where(p => p.CanBeReferencedByName); 809public static bool HasAttribute([NotNullWhen(true)] this ISymbol? symbol, [NotNullWhen(true)] INamedTypeSymbol? attributeClass)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\ISymbolExtensions.RequiresUnsafeModifierVisitor.cs (1)
56public override bool VisitNamedType(INamedTypeSymbol symbol)
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\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\ITypeGenerator.cs (1)
13ITypeSymbol Construct(INamedTypeSymbol namedType, ITypeSymbol[] typeArguments);
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\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\ITypeSymbolExtensions.AnonymousTypeRemover.cs (1)
42public override ITypeSymbol VisitNamedType(INamedTypeSymbol symbol)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\ITypeSymbolExtensions.CollectTypeParameterSymbolsVisitor.cs (1)
57public override void VisitNamedType(INamedTypeSymbol symbol)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\ITypeSymbolExtensions.CompilationTypeGenerator.cs (1)
19public ITypeSymbol Construct(INamedTypeSymbol namedType, ITypeSymbol[] typeArguments)
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) 315INamedTypeSymbol n => ContainsAnonymousType(n), 320private static bool ContainsAnonymousType(INamedTypeSymbol type) 410public static INamedTypeSymbol? GetDelegateType(this ITypeSymbol? typeSymbol, Compilation compilation) 414var expressionOfT = compilation.ExpressionOfTType(); 417var typeArgument = ((INamedTypeSymbol)typeSymbol).TypeArguments[0]; 418return typeArgument as INamedTypeSymbol; 423return typeSymbol as INamedTypeSymbol; 576var n2 = t2 as INamedTypeSymbol; 578if (t1 is not INamedTypeSymbol n1) 628public static bool IsEnumType([NotNullWhen(true)] this ITypeSymbol? type, [NotNullWhen(true)] out INamedTypeSymbol? enumType) 632enumType = (INamedTypeSymbol)type; 724if (type is not INamedTypeSymbol 777=> type is INamedTypeSymbol 785=> symbol is INamedTypeSymbol 793=> type is INamedTypeSymbol namedType &&
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\ITypeSymbolExtensions.MinimalAccessibilityVisitor.cs (2)
42foreach (var callingConventionType in symbol.Signature.UnmanagedCallingConventionTypes) 50public override Accessibility VisitNamedType(INamedTypeSymbol symbol)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\ITypeSymbolExtensions.SubstituteTypesVisitor.cs (1)
58public override ITypeSymbol VisitNamedType(INamedTypeSymbol symbol)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\ITypeSymbolExtensions.UnavailableTypeParameterRemover.cs (1)
43public override ITypeSymbol VisitNamedType(INamedTypeSymbol symbol)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\ITypeSymbolExtensions.UnnamedErrorTypeRemover.cs (1)
42public override ITypeSymbol VisitNamedType(INamedTypeSymbol symbol)
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\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\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\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\SymbolEquivalenceComparer.ParameterSymbolEqualityComparer.cs (2)
23Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies,
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\SymbolEquivalenceComparer.SignatureTypeSymbolEquivalenceComparer.cs (2)
18public bool Equals(ITypeSymbol? x, ITypeSymbol? y, Dictionary<INamedTypeSymbol, INamedTypeSymbol>? equivalentTypesWithDifferingAssemblies)
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\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\AbstractFlagsEnumGenerator.cs (10)
15protected abstract SyntaxNode CreateExplicitlyCastedLiteralValue(INamedTypeSymbol enumType, SpecialType underlyingSpecialType, object constantValue); 16protected abstract bool IsValidName(INamedTypeSymbol enumType, string name); 20public SyntaxNode CreateEnumConstantValue(INamedTypeSymbol enumType, object constantValue) 36private static bool IsFlagsEnum(INamedTypeSymbol typeSymbol) 48var type = ctor.ContainingType; 61private SyntaxNode CreateFlagsEnumConstantValue(INamedTypeSymbol enumType, object constantValue) 72INamedTypeSymbol enumType, 138IFieldSymbol field, INamedTypeSymbol enumType, SpecialType underlyingSpecialType) 168INamedTypeSymbol enumType, 185private SyntaxNode CreateNonFlagsEnumConstantValue(INamedTypeSymbol enumType, object constantValue)
src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\CodeGenerationHelpers.cs (2)
25var exceptionType = compilation.GetTypeByMetadataName(exceptionMetadataName); 150public static IEnumerable<ISymbol> GetMembers(INamedTypeSymbol namedType)
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\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\CodeGenerator.cs (8)
29public static Task<Document> AddEventDeclarationAsync(CodeGenerationSolutionContext context, INamedTypeSymbol destination, IEventSymbol @event, CancellationToken cancellationToken) 36public static Task<Document> AddFieldDeclarationAsync(CodeGenerationSolutionContext context, INamedTypeSymbol destination, IFieldSymbol field, CancellationToken cancellationToken) 43public static Task<Document> AddMethodDeclarationAsync(CodeGenerationSolutionContext context, INamedTypeSymbol destination, IMethodSymbol method, CancellationToken cancellationToken) 50public static Task<Document> AddPropertyDeclarationAsync(CodeGenerationSolutionContext context, INamedTypeSymbol destination, IPropertySymbol property, CancellationToken cancellationToken) 57public static Task<Document> AddNamedTypeDeclarationAsync(CodeGenerationSolutionContext context, INamedTypeSymbol destination, INamedTypeSymbol namedType, CancellationToken cancellationToken) 64public static Task<Document> AddNamedTypeDeclarationAsync(CodeGenerationSolutionContext context, INamespaceSymbol destination, INamedTypeSymbol namedType, CancellationToken cancellationToken) 85public static Task<Document> AddMemberDeclarationsAsync(CodeGenerationSolutionContext context, INamedTypeSymbol destination, IEnumerable<ISymbol> members, CancellationToken cancellationToken)
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\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\INamedTypeSymbolExtensions.cs (2)
11public static CodeGenerationAbstractNamedTypeSymbol ToCodeGenerationSymbol(this INamedTypeSymbol namedType) 32namedType.GetMembers().WhereAsArray(s => s is not INamedTypeSymbol),
src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\Symbols\CodeGenerationAbstractMethodSymbol.cs (3)
23INamedTypeSymbol containingType, 98public INamedTypeSymbol AssociatedAnonymousDelegate => null; 108public ImmutableArray<INamedTypeSymbol> UnmanagedCallingConventionTypes => [];
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\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\Symbols\CodeGenerationAttributeData.cs (2)
13INamedTypeSymbol attributeClass, 20protected override INamedTypeSymbol CommonAttributeClass => attributeClass;
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\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\Symbols\CodeGenerationConstructorSymbol.cs (1)
11INamedTypeSymbol? containingType,
src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\Symbols\CodeGenerationConversionSymbol.cs (1)
11INamedTypeSymbol? containingType,
src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\Symbols\CodeGenerationDestructorSymbol.cs (1)
10INamedTypeSymbol? containingType,
src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\Symbols\CodeGenerationEventSymbol.cs (1)
12INamedTypeSymbol? containingType,
src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\Symbols\CodeGenerationFieldSymbol.cs (1)
13INamedTypeSymbol containingType,
src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\Symbols\CodeGenerationMethodSymbol.cs (1)
23INamedTypeSymbol containingType,
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\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\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\Symbols\CodeGenerationNamespaceSymbol.cs (1)
57public static INamedTypeSymbol ImplicitType => null;
src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\Symbols\CodeGenerationOperatorSymbol.cs (1)
11INamedTypeSymbol? containingType,
src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\Symbols\CodeGenerationParameterSymbol.cs (1)
13INamedTypeSymbol containingType,
src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\Symbols\CodeGenerationPropertySymbol.cs (1)
13INamedTypeSymbol containingType,
src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\Symbols\CodeGenerationSymbol.cs (3)
27public INamedTypeSymbol ContainingType { get; protected set; } 31INamedTypeSymbol containingType, 162public ImmutableArray<AttributeData> GetAttributes(INamedTypeSymbol attributeType)
src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\Symbols\CodeGenerationTypeParameterSymbol.cs (3)
12INamedTypeSymbol containingType, 80public INamedTypeSymbol DeclaringType 84return this.ContainingSymbol as INamedTypeSymbol;
src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\Symbols\CodeGenerationTypeSymbol.cs (4)
14INamedTypeSymbol containingType, 27public virtual INamedTypeSymbol BaseType => null; 29public virtual ImmutableArray<INamedTypeSymbol> Interfaces 32public ImmutableArray<INamedTypeSymbol> AllInterfaces
src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\TypeGenerator.cs (1)
21public ITypeSymbol Construct(INamedTypeSymbol namedType, ITypeSymbol[] typeArguments)
src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\Editing\ImportAdderService.cs (2)
202foreach (var namedType in SymbolAnnotation.GetSymbols(annotation, model.Compilation).OfType<INamedTypeSymbol>())
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\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\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\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\Extensions\KnownTypes.cs (8)
9public readonly INamedTypeSymbol? TaskType = compilation.TaskType(); 10public readonly INamedTypeSymbol? TaskOfTType = compilation.TaskOfTType(); 11public readonly INamedTypeSymbol? ValueTaskType = compilation.ValueTaskType(); 12public readonly INamedTypeSymbol? ValueTaskOfTType = compilation.ValueTaskOfTType(); 14public readonly INamedTypeSymbol? IEnumerableOfTType = compilation.IEnumerableOfTType(); 15public readonly INamedTypeSymbol? IEnumeratorOfTType = compilation.IEnumeratorOfTType(); 17public readonly INamedTypeSymbol? IAsyncEnumerableOfTType = compilation.IAsyncEnumerableOfTType(); 18public readonly INamedTypeSymbol? IAsyncEnumeratorOfTType = compilation.IAsyncEnumeratorOfTType();
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\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\Extensions\SyntaxGeneratorExtensions_CreateEqualsMethod.cs (11)
32INamedTypeSymbol containingType, 63INamedTypeSymbol containingType, 65INamedTypeSymbol constructedEquatableType, 109INamedTypeSymbol containingType, 218var iequatableType = compilation.GetTypeByMetadataName(typeof(IEquatable<>).FullName); 271INamedTypeSymbol containingType, 382private static bool ImplementsIEquatable(ITypeSymbol memberType, INamedTypeSymbol iequatableType) 388var constructed = iequatableType.Construct(memberType); 433private static bool HasExistingBaseEqualsMethod(INamedTypeSymbol containingType) 456INamedTypeSymbol? containingType, 490INamedTypeSymbol? containingType,
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\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\Extensions\SyntaxGeneratorExtensions_Negate.cs (1)
446var containingType = property.ContainingType;
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\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\LanguageServices\SemanticsFactsService\AbstractSemanticFactsService.cs (7)
127var valueTaskType = compilation.ValueTaskType(); 163(INamedTypeSymbol?, IMethodSymbol?) GetIDisposableInterfaceAndDisposeMethod(string typeName, string methodName) 165var 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\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\LanguageServices\SyntaxGeneratorInternalExtensions\SyntaxGeneratorInternal.cs (1)
117public abstract SyntaxNode DeclarationPattern(INamedTypeSymbol type, string name);
src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\LanguageServices\TypeInferenceService\AbstractTypeInferenceService.AbstractTypeInferrer.cs (1)
102protected static IEnumerable<TypeInferenceInfo> GetCollectionElementType(INamedTypeSymbol type)
src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\Simplification\SimplificationHelpers.cs (1)
80var typeSymbol = semanticModel.Compilation.GetSpecialType(specialType);