13 types derived from NamedTypeSymbol
Microsoft.CodeAnalysis.CSharp (13)
Symbols\AnonymousTypes\PublicSymbols\AnonymousManager.TypeOrDelegatePublicSymbol.cs (1)
16internal abstract class AnonymousTypeOrDelegatePublicSymbol : NamedTypeSymbol
Symbols\AnonymousTypes\SynthesizedSymbols\AnonymousType.TypeOrDelegateTemplateSymbol.cs (1)
30internal abstract class AnonymousTypeOrDelegateTemplateSymbol : NamedTypeSymbol
Symbols\ErrorTypeSymbol.cs (1)
20internal abstract partial class ErrorTypeSymbol : NamedTypeSymbol
Symbols\Metadata\PE\PENamedTypeSymbol.cs (1)
31internal abstract class PENamedTypeSymbol : NamedTypeSymbol
Symbols\Source\SourceMemberContainerSymbol.cs (1)
26internal abstract partial class SourceMemberContainerTypeSymbol : NamedTypeSymbol
Symbols\Synthesized\ReadOnlyListType\SynthesizedReadOnlyListEnumeratorTypeSymbol.cs (1)
17internal sealed class SynthesizedReadOnlyListEnumeratorTypeSymbol : NamedTypeSymbol
Symbols\Synthesized\ReadOnlyListType\SynthesizedReadOnlyListTypeSymbol.cs (1)
55internal sealed class SynthesizedReadOnlyListTypeSymbol : NamedTypeSymbol
Symbols\Synthesized\SynthesizedContainer.cs (1)
22internal abstract class SynthesizedContainer : NamedTypeSymbol
Symbols\Synthesized\SynthesizedEmbeddedAttributeSymbol.cs (1)
29internal abstract class SynthesizedEmbeddedAttributeSymbolBase : NamedTypeSymbol
Symbols\Synthesized\SynthesizedHotReloadExceptionSymbol.cs (1)
19internal sealed class SynthesizedHotReloadExceptionSymbol : NamedTypeSymbol
Symbols\Synthesized\SynthesizedInlineArrayTypeSymbol.cs (1)
24internal sealed class SynthesizedInlineArrayTypeSymbol : NamedTypeSymbol
Symbols\Synthesized\SynthesizedPrivateImplementationDetailsType.cs (1)
19internal sealed partial class SynthesizedPrivateImplementationDetailsType : NamedTypeSymbol
Symbols\Wrapped\WrappedNamedTypeSymbol.cs (1)
25internal abstract class WrappedNamedTypeSymbol : NamedTypeSymbol
3513 references to NamedTypeSymbol
Microsoft.CodeAnalysis.CSharp (3513)
Binder\Binder.cs (8)
453internal NamedTypeSymbol? ContainingType 462NamedTypeSymbol namedType => namedType, 484return ((NamedTypeSymbol)containingMember).IsScriptClass; 521internal virtual NamedTypeSymbol? ParamsCollectionTypeInProgress => null; 671NamedTypeSymbol? containingType, 737NamedTypeSymbol? containingType, 827NamedTypeSymbol within, 836NamedTypeSymbol within,
Binder\Binder.WithQueryLambdaParametersBinder.cs (2)
74var receiverType = receiver.Type as NamedTypeSymbol;
Binder\Binder_AnonymousTypes.cs (2)
107NamedTypeSymbol anonymousType = manager.ConstructAnonymousTypeSymbol(descriptor, diagnostics); 201return ((NamedTypeSymbol)member).IsScriptClass;
Binder\Binder_Attributes.cs (19)
30ImmutableArray<Binder> binders, ImmutableArray<AttributeSyntax> attributesToBind, Symbol ownerSymbol, NamedTypeSymbol[] boundAttributeTypes, 55var boundTypeSymbol = (NamedTypeSymbol)boundType.Type; 74ImmutableArray<NamedTypeSymbol> boundAttributeTypes, 91NamedTypeSymbol boundAttributeType = boundAttributeTypes[i]; 127AttributeSyntax node, NamedTypeSymbol boundAttributeType, 138internal BoundAttribute BindAttribute(AttributeSyntax node, NamedTypeSymbol attributeType, Symbol? attributedMember, BindingDiagnosticBag diagnostics) 155private static BoundAttribute BindAttributeCore(Binder binder, AttributeSyntax node, NamedTypeSymbol attributeType, Symbol? attributedMember, BindingDiagnosticBag diagnostics) 168NamedTypeSymbol attributeTypeForBinding = attributeType; 174if (errorType.CandidateSymbols.Length == 1 && errorType.CandidateSymbols[0] is NamedTypeSymbol) 176attributeTypeForBinding = (NamedTypeSymbol)errorType.CandidateSymbols[0]; 286var attributeType = (NamedTypeSymbol)boundAttribute.Type; 413protected bool IsAttributeConditionallyOmitted(NamedTypeSymbol attributeType, SyntaxTree? syntaxTree, ref CompoundUseSiteInfo<AssemblySymbol> useSiteInfo) 434var baseType = attributeType.BaseTypeWithDefinitionUseSiteDiagnostics(ref useSiteInfo); 453NamedTypeSymbol attributeType, 516private BoundAssignmentOperator BindNamedAttributeArgument(AttributeArgumentSyntax namedArgument, NamedTypeSymbol attributeType, BindingDiagnosticBag diagnostics) 600private Symbol BindNamedAttributeArgumentName(AttributeArgumentSyntax namedArgument, NamedTypeSymbol attributeType, BindingDiagnosticBag diagnostics, out bool wasError, out LookupResultKind resultKind) 615private TypeSymbol BindNamedAttributeArgumentType(AttributeArgumentSyntax namedArgument, Symbol namedArgumentNameSymbol, NamedTypeSymbol attributeType, BindingDiagnosticBag diagnostics)
Binder\Binder_Await.cs (4)
345if (expression.Type is not NamedTypeSymbol { Arity: 0 or 1 } exprType) 350var asyncHelpersType = GetSpecialType(InternalSpecialType.System_Runtime_CompilerServices_AsyncHelpers, diagnostics, expression.Syntax); 410NamedTypeSymbol exprType, 682var INotifyCompletion = GetWellKnownType(WellKnownType.System_Runtime_CompilerServices_INotifyCompletion, diagnostics, node);
Binder\Binder_Conversions.cs (48)
155NamedTypeSymbol.ReportTupleNamesMismatchesIfAny(destination, sourceTuple, diagnostics); 243BindUnconvertedInterpolatedExpressionToHandlerType(source, (NamedTypeSymbol)destination, diagnostics), 615.AsMember((NamedTypeSymbol)destination) 616.Construct([((NamedTypeSymbol)source.Type).TypeArgumentsWithAnnotationsNoUseSiteDiagnostics[0]]) 691var sourceElementType = ((NamedTypeSymbol)source).TypeArgumentsWithAnnotationsNoUseSiteDiagnostics[0].Type; 692var destinationElementType = ((NamedTypeSymbol)destination).TypeArgumentsWithAnnotationsNoUseSiteDiagnostics[0].Type; 724((NamedTypeSymbol)parameter.Type).TypeArgumentsWithAnnotationsNoUseSiteDiagnostics[0].Type.Equals(typeArgument.Type, TypeCompareKind.ConsiderEverything) && 726((NamedTypeSymbol)method.ReturnType).TypeArgumentsWithAnnotationsNoUseSiteDiagnostics[0].Type.Equals(((NamedTypeSymbol)arg.destination).TypeParameters[0], TypeCompareKind.ConsiderEverything)); 734Debug.Assert(((NamedTypeSymbol)readOnlySpanType).TypeArgumentsWithAnnotationsNoUseSiteDiagnostics[0].SpecialType is SpecialType.System_Char); 740TryFindSingleMethod(memoryExtensionsType.GetSymbol<NamedTypeSymbol>(), WellKnownMemberNames.AsSpanMethodName, 0, 791var stringFactory = GetWellKnownType(WellKnownType.System_Runtime_CompilerServices_FormattableStringFactory, diagnostics, unconvertedSource.Syntax); 862return binder.BindClassCreationExpression(syntax, type.Name, typeNode: syntax, (NamedTypeSymbol)type, arguments, diagnostics, initializerOpt, wasTargetTyped: true); 866return binder.BindDelegateCreationExpression(syntax, (NamedTypeSymbol)type, arguments, initializerOpt, wasTargetTyped: true, diagnostics); 868return binder.BindInterfaceCreationExpression(syntax, (NamedTypeSymbol)type, diagnostics, typeNode: syntax, arguments, initializerOpt, wasTargetTyped: true); 1036if (_targetType is NamedTypeSymbol namedType && 1037_binder.HasParamsCollectionTypeInProgress(namedType, out NamedTypeSymbol? inProgress, out MethodSymbol? inProgressConstructor)) 1106if (@this._targetType is NamedTypeSymbol namedType) 1296var constructedListType = @this._binder 1357var namedType = (NamedTypeSymbol)@this._targetType; 1499NamedTypeSymbol namedType, 1506var targetTypeOriginalDefinition = namedType.OriginalDefinition; 1524NamedTypeSymbol targetType, 1542var readOnlySpanType = Compilation.GetWellKnownType(WellKnownType.System_ReadOnlySpan_T); 1569if (method.Parameters is not [.., { RefKind: RefKind.None, Type: NamedTypeSymbol parameterType }] 1597parameterType = (NamedTypeSymbol)methodWithTargetTypeParameters.Parameters.Last().Type; 1637var parameterType = (NamedTypeSymbol)collectionBuilderMethod.Parameters.Last().Type; 1678if (targetType is NamedTypeSymbol namedType) 1811private bool HasParamsCollectionTypeInProgress(NamedTypeSymbol toCheck, 1812[NotNullWhen(returnValue: true)] out NamedTypeSymbol? inProgress, 1838NamedTypeSymbol? namedType = targetType as NamedTypeSymbol; 2770var instantiatedType = analysis.Operator.ContainingType; 2847var delegateType = source.GetInferredDelegateType(ref useSiteInfo); 2911var boundLambda = unboundLambda.Bind((NamedTypeSymbol)destination, isExpressionTree: destination.IsGenericOrNonGenericExpressionType(out _)).WithInAnonymousFunctionConversion(); 3004var delegateType = targetType.GetDelegateType(); 3155NamedTypeSymbol targetType = (NamedTypeSymbol)destinationWithoutNullable; 3158NamedTypeSymbol.ReportTupleNamesMismatchesIfAny(targetType, sourceTuple, diagnostics); 3166if (sourceTuple.Type is NamedTypeSymbol { IsTupleType: true } sourceType) 3456var containingType = this.ContainingType; 3527Debug.Assert(delegateType is NamedTypeSymbol { TypeKind: TypeKind.Delegate, DelegateInvokeMethod: { HasUseSiteError: false } } 3533NamedTypeSymbol { DelegateInvokeMethod: { } invokeMethod } => invokeMethod, 3775NamedTypeSymbol delegateType, 3921var underlyingType = ((NamedTypeSymbol)destination).EnumUnderlyingType;
Binder\Binder_Crefs.cs (19)
293foreach (var nested in candidateTypes(containerOpt)) 303var constructedNested = (NamedTypeSymbol)ConstructWithCrefTypeParameters(extensionArity, extensionTypeArguments, nested); 367ImmutableArray<NamedTypeSymbol> candidateTypes(NamespaceOrTypeSymbol? containerOpt) 369if (containerOpt is NamedTypeSymbol namedType) 374NamedTypeSymbol? containingType = ContainingType; 380NamedTypeSymbol? enclosingType = containingType.IsExtension ? containingType.ContainingType : containingType; 609NamedTypeSymbol? constructorType = null; 613NamedTypeSymbol? containerType = containerOpt as NamedTypeSymbol; 631NamedTypeSymbol? binderContainingType = this.ContainingType; 781NamedTypeSymbol namedType = (NamedTypeSymbol)type; 804private static bool IsNestedTypeOfUnconstructedGenericType(NamedTypeSymbol type) 806NamedTypeSymbol containing = type.ContainingType; 938NamedTypeSymbol? constructedCandidateType = constructedCandidate as NamedTypeSymbol; 1122Debug.Assert(symbol is NamedTypeSymbol); 1123symbol = ((NamedTypeSymbol)symbol).Construct(typeArgumentsWithAnnotations.ToImmutableAndFree());
Binder\Binder_Deconstruct.cs (4)
126var voidType = GetSpecialType(SpecialType.System_Void, diagnostics, node); 534return NamedTypeSymbol.CreateTuple( 584var type = NamedTypeSymbol.CreateTuple(
Binder\Binder_Expressions.cs (82)
58if (memberOpt is { ContainingSymbol: NamedTypeSymbol { IsExtension: true } }) 63var containingType = memberOpt?.ContainingType; 249internal NamedTypeSymbol CreateErrorType(string name = "") 452var delegateType = expr.GetInferredDelegateType(ref useSiteInfo); 539|| this.ContainingMemberOrLambda is NamedTypeSymbol { IsExtension: true }); 1017var tupleType = NamedTypeSymbol.CreateTuple( 1095NamedTypeSymbol tupleTypeOpt = null; 1103tupleTypeOpt = NamedTypeSymbol.CreateTuple(node.Location, elements, locations, elementNames, 1109NamedTypeSymbol.VerifyTupleTypePresent(elements.Length, node, this.Compilation, diagnostics); 1243if (name == null || NamedTypeSymbol.IsTupleElementNameReserved(name) != -1) 1730symbol = ConstructNamedTypeUnlessTypeArgumentOmitted(node, (NamedTypeSymbol)symbol, typeArgumentList, typeArgumentsWithAnnotations, diagnostics); 1760var type = BindNativeIntegerSymbolIfAny(identifier, diagnostics); 1836if (symbol.ContainingSymbol is NamedTypeSymbol { OriginalDefinition: var symbolContainerDefinition } && 1844NamedTypeSymbol baseToCheck = containingTypeDefinition.BaseTypeNoUseSiteDiagnostics; 2016var currentType = this.ContainingType; 2024var declaringType = members[0].ContainingType; 2114primaryCtor.ContainingSymbol is NamedTypeSymbol { IsRecord: false, IsRecordStruct: false } || 2379var currentType = this.ContainingType; 2381NamedTypeSymbol declaringType = member.ContainingType; 2442private BoundExpression TryBindInteractiveReceiver(SyntaxNode syntax, NamedTypeSymbol memberDeclaringType) 2593private BoundThisReference ThisReference(SyntaxNode node, NamedTypeSymbol thisTypeOpt, bool hasErrors = false, bool wasCompilerGenerated = false) 2693NamedTypeSymbol nullableType = GetSpecialType(SpecialType.System_Nullable_T, diagnostics, node); 2773NamedTypeSymbol nullableType = GetSpecialType(SpecialType.System_Nullable_T, diagnostics, node); 2800NamedTypeSymbol nullableType = GetSpecialType(SpecialType.System_Nullable_T, diagnostics, operand); 2900!MethodGroupConversionDoesNotExistOrHasErrors((BoundMethodGroup)operand, (NamedTypeSymbol)targetType, syntax.Location, diagnostics, out _)) 3753Debug.Assert(handlerType is NamedTypeSymbol { IsInterpolatedStringHandlerType: true }); 3872var receiverParameter = ((NamedTypeSymbol)methodResult.Member.ContainingSymbol).ExtensionParameter; 3958(NamedTypeSymbol)handlerType, 4695var spanType = GetWellKnownType(WellKnownType.System_Span_T, diagnostics, node); 4916NamedTypeSymbol containingType = constructor.ContainingType; 4937NamedTypeSymbol initializerType = containingType; 5053NamedTypeSymbol initializerType, 5076NamedTypeSymbol baseType = constructor.ContainingType.BaseTypeNoUseSiteDiagnostics; 5198static void validateRecordCopyConstructor(MethodSymbol constructor, NamedTypeSymbol baseType, MethodSymbol resultMember, Location errorLocation, BindingDiagnosticBag diagnostics) 5300return BindClassCreationExpression(node, (NamedTypeSymbol)type, GetName(node.Type), diagnostics, originalType); 5303return BindDelegateCreationExpression(node, (NamedTypeSymbol)type, diagnostics); 5306return BindInterfaceCreationExpression(node, (NamedTypeSymbol)type, diagnostics); 5504private BoundExpression BindDelegateCreationExpression(ObjectCreationExpressionSyntax node, NamedTypeSymbol type, BindingDiagnosticBag diagnostics) 5513private BoundExpression BindDelegateCreationExpression(SyntaxNode node, NamedTypeSymbol type, AnalyzedArguments analyzedArguments, InitializerExpressionSyntax initializerOpt, bool wasTargetTyped, BindingDiagnosticBag diagnostics) 5625var sourceDelegate = (NamedTypeSymbol)argument.Type; 5682private BoundExpression BindClassCreationExpression(ObjectCreationExpressionSyntax node, NamedTypeSymbol type, string typeName, BindingDiagnosticBag diagnostics, TypeSymbol initializerType = null) 5717NamedTypeSymbol type, 6450NamedTypeSymbol collectionsIEnumerableType = this.GetSpecialType(SpecialType.System_Collections_IEnumerable, diagnostics, node); 6782NamedTypeSymbol containingType = this.ContainingType; 6820NamedTypeSymbol type, 6918NamedTypeSymbol type, 7005NamedTypeSymbol type, 7062private BoundObjectInitializerExpressionBase MakeBoundInitializerOpt(SyntaxNode typeNode, NamedTypeSymbol type, InitializerExpressionSyntax initializerSyntaxOpt, TypeSymbol initializerTypeOpt, BindingDiagnosticBag diagnostics) 7075private BoundExpression BindInterfaceCreationExpression(ObjectCreationExpressionSyntax node, NamedTypeSymbol type, BindingDiagnosticBag diagnostics) 7084private BoundExpression BindInterfaceCreationExpression(SyntaxNode node, NamedTypeSymbol type, BindingDiagnosticBag diagnostics, SyntaxNode typeNode, AnalyzedArguments analyzedArguments, InitializerExpressionSyntax initializerOpt, bool wasTargetTyped) 7098NamedTypeSymbol coClassType = type.ComImportCoClass; 7110private BoundExpression BindComImportCoClassCreationExpression(SyntaxNode node, NamedTypeSymbol interfaceType, NamedTypeSymbol coClassType, BindingDiagnosticBag diagnostics, SyntaxNode typeNode, AnalyzedArguments analyzedArguments, InitializerExpressionSyntax initializerOpt, bool wasTargetTyped) 7193NamedTypeSymbol interfaceType, 7194NamedTypeSymbol coClassType, 7303NamedTypeSymbol typeContainingConstructors, 7342NamedTypeSymbol typeContainingConstructors, 7464private ImmutableArray<MethodSymbol> GetAccessibleConstructorsForOverloadResolution(NamedTypeSymbol type, ref CompoundUseSiteInfo<AssemblySymbol> useSiteInfo) 7470private ImmutableArray<MethodSymbol> GetAccessibleConstructorsForOverloadResolution(NamedTypeSymbol type, bool allowProtectedConstructorsOfBaseType, out ImmutableArray<MethodSymbol> allInstanceConstructors, ref CompoundUseSiteInfo<AssemblySymbol> useSiteInfo) 7477type = type.GetNonErrorGuess() as NamedTypeSymbol ?? type; 7484private static ConstantValue FoldParameterlessValueTypeConstructor(NamedTypeSymbol type) 7592var type = GetWellKnownType(WellKnownType.System_ReadOnlySpan_T, diagnostics, node).Construct(GetSpecialType(SpecialType.System_Byte, diagnostics, node)); 8061var type = (NamedTypeSymbol)sym; 8482var namedType = ((NamedTypeSymbol)type).ConstructedFrom; 8695var type = (NamedTypeSymbol)symbol; 9128NamedTypeSymbol type = fieldSymbol.ContainingType; 9251NamedTypeSymbol underlyingType = null; 9255NamedTypeSymbol enumType = null; 9256NamedTypeSymbol type = fieldSymbol.ContainingType; 9277enumType = (NamedTypeSymbol)fieldType; 9292var containingType = this.ContainingType; 10022var int32 = GetSpecialType(SpecialType.System_Int32, diagnostics, node); 10094NamedTypeSymbol int32 = GetSpecialType(SpecialType.System_Int32, diagnostics, node); 11103internal NamedTypeSymbol? GetMethodGroupDelegateType(BoundMethodGroup node) 11486internal NamedTypeSymbol? GetMethodGroupOrLambdaDelegateType( 11545var delegateType = Compilation.GetWellKnownType(wkDelegateType); 11578static bool checkConstraints(CSharpCompilation compilation, ConversionsBase conversions, NamedTypeSymbol delegateType, ImmutableArray<TypeWithAnnotations> typeArguments)
Binder\Binder_Initializers.cs (1)
207Debug.Assert(scriptClassBinder.ContainingMemberOrLambda is NamedTypeSymbol { IsScriptClass: true });
Binder\Binder_InterpolatedString.cs (16)
41var stringType = GetSpecialType(SpecialType.System_String, diagnostics, node); 55var intType = GetSpecialType(SpecialType.System_Int32, diagnostics, node); 264return BindUnconvertedInterpolatedExpressionToFactory(unconvertedInterpolatedString, parts, (NamedTypeSymbol)unconvertedInterpolatedString.Type, factoryMethod: "Format", unconvertedInterpolatedString.Type, diagnostics); 284var interpolatedStringHandlerType = Compilation.GetWellKnownType(WellKnownType.System_Runtime_CompilerServices_DefaultInterpolatedStringHandler); 334NamedTypeSymbol factoryType, 450var interpolatedStringHandlerType = Compilation.GetWellKnownType(WellKnownType.System_Runtime_CompilerServices_DefaultInterpolatedStringHandler); 517var @string = GetSpecialType(SpecialType.System_String, diagnostics, rootSyntax); 557NamedTypeSymbol interpolatedStringHandlerType, 576NamedTypeSymbol interpolatedStringHandlerType, 603NamedTypeSymbol interpolatedStringHandlerType, 635NamedTypeSymbol interpolatedStringHandlerType, 711var intType = GetSpecialType(SpecialType.System_Int32, diagnostics, syntax); 722var boolType = GetSpecialType(SpecialType.System_Boolean, diagnostics, syntax); 817static void populateArguments(SyntaxNode syntax, ImmutableArray<BoundInterpolatedStringArgumentPlaceholder> additionalConstructorArguments, int baseStringLength, int numFormatHoles, NamedTypeSymbol intType, ArrayBuilder<BoundExpression> argumentsBuilder) 853var objectType = GetSpecialType(SpecialType.System_Object, diagnostics, unconvertedInterpolatedString.Syntax); 998var expected = builderPatternExpectsBool == true ? Compilation.GetSpecialType(SpecialType.System_Boolean) : Compilation.GetSpecialType(SpecialType.System_Void);
Binder\Binder_Invocation.cs (7)
348NamedTypeSymbol delegateType; 637NamedTypeSymbol delegateType) 1145NamedTypeSymbol delegateTypeOpt, 2026private static NamedTypeSymbol GetDelegateType(BoundExpression expr) 2030var type = expr.Type as NamedTypeSymbol; 2195var discarded = unboundArgument.Bind((NamedTypeSymbol)parameterType, isExpressionTree: false);
Binder\Binder_Lookup.cs (69)
233this.LookupMembersInInterface(result, (NamedTypeSymbol)type, name, arity, basesBeingResolved, options, originalBinder, diagnose, ref useSiteInfo); 724var namedType = (NamedTypeSymbol)symbol; 857PooledHashSet<NamedTypeSymbol> visited = null; 867NamedTypeSymbol namedType = currentType as NamedTypeSymbol; 921NamedTypeSymbol type, 958NamedTypeSymbol idictSymbol, iroDictSymbol, iListSymbol, iCollectionSymbol, inccSymbol, inpcSymbol; 962foreach (var iface in type.AllInterfacesWithDefinitionUseSiteDiagnostics(ref useSiteInfo)) 1003private void GetWellKnownWinRTMemberInterfaces(out NamedTypeSymbol idictSymbol, out NamedTypeSymbol iroDictSymbol, out NamedTypeSymbol iListSymbol, out NamedTypeSymbol iCollectionSymbol, out NamedTypeSymbol inccSymbol, out NamedTypeSymbol inpcSymbol) 1013private static bool ShouldAddWinRTMembersForInterface(NamedTypeSymbol iface, NamedTypeSymbol idictSymbol, NamedTypeSymbol iroDictSymbol, NamedTypeSymbol iListSymbol, NamedTypeSymbol iCollectionSymbol, NamedTypeSymbol inccSymbol, NamedTypeSymbol inpcSymbol) 1015var iFaceOriginal = iface.OriginalDefinition; 1060NamedTypeSymbol type, 1082private static ImmutableArray<NamedTypeSymbol> GetBaseInterfaces(NamedTypeSymbol type, ConsList<TypeSymbol> basesBeingResolved, ref CompoundUseSiteInfo<AssemblySymbol> useSiteInfo) 1091return ImmutableArray<NamedTypeSymbol>.Empty; 1098return ImmutableArray<NamedTypeSymbol>.Empty; 1114var cycleGuard = ConsList<NamedTypeSymbol>.Empty.Prepend(type.OriginalDefinition); 1118var result = ArrayBuilder<NamedTypeSymbol>.GetInstance(); 1119var visited = new HashSet<NamedTypeSymbol>(Symbols.SymbolEqualityComparer.ConsiderEverything); 1128foreach (var candidate in result) 1135static void addAllInterfaces(NamedTypeSymbol @interface, HashSet<NamedTypeSymbol> visited, ArrayBuilder<NamedTypeSymbol> result, ConsList<TypeSymbol> basesBeingResolved, ConsList<NamedTypeSymbol> cycleGuard) 1137NamedTypeSymbol originalDefinition; 1143ImmutableArray<NamedTypeSymbol> baseInterfaces = @interface.GetDeclaredInterfaces(basesBeingResolved); 1150var baseInterface = baseInterfaces[i]; 1163ImmutableArray<NamedTypeSymbol> interfaces, 1176HashSet<NamedTypeSymbol> seenInterfaces = null; 1179seenInterfaces = new HashSet<NamedTypeSymbol>(Symbols.SymbolEqualityComparer.IgnoringNullable); 1182foreach (NamedTypeSymbol baseInterface in interfaces) 1196private void LookupMembersInInterface(LookupResult current, NamedTypeSymbol type, string name, int arity, ConsList<TypeSymbol> basesBeingResolved, LookupOptions options, Binder originalBinder, bool diagnose, ref CompoundUseSiteInfo<AssemblySymbol> useSiteInfo) 1233private static bool IsDerivedType(NamedTypeSymbol baseType, NamedTypeSymbol derivedType, ConsList<TypeSymbol> basesBeingResolved, CSharpCompilation compilation, ref CompoundUseSiteInfo<AssemblySymbol> useSiteInfo) 1239for (NamedTypeSymbol b = derivedType.BaseTypeWithDefinitionUseSiteDiagnostics(ref useSiteInfo); (object)b != null; b = b.BaseTypeWithDefinitionUseSiteDiagnostics(ref useSiteInfo)) 1246PooledHashSet<NamedTypeSymbol> visited = null; 1248for (var b = (NamedTypeSymbol)derivedType.GetNextBaseTypeNoUseSiteDiagnostics(basesBeingResolved, compilation, ref visited); 1250b = (NamedTypeSymbol)b.GetNextBaseTypeNoUseSiteDiagnostics(basesBeingResolved, compilation, ref visited)) 1284var hiddenContainer = sym.ContainingType; 1290var hidingContainer = hidingSym.ContainingType; 1343return nsOrType.GetTypeMembers(name).Cast<NamedTypeSymbol, Symbol>(); 1347return ((NamedTypeSymbol)nsOrType).GetEarlyAttributeDecodingMembers(name); 1371return ((NamedTypeSymbol)nsOrType).GetEarlyAttributeDecodingMembers(); 1385while (symbol is not null and not NamedTypeSymbol { IsFileLocal: true }) 1402var symbolFileIdentifier = ((NamedTypeSymbol)symbol).AssociatedFileIdentifier; 1822NamedTypeSymbol namedType = (NamedTypeSymbol)symbol; 2022private void AddWinRTMembersLookupSymbolsInfo(LookupSymbolsInfo result, NamedTypeSymbol type, LookupOptions options, Binder originalBinder, TypeSymbol accessThroughType) 2024NamedTypeSymbol idictSymbol, iroDictSymbol, iListSymbol, iCollectionSymbol, inccSymbol, inpcSymbol; 2028foreach (var iface in type.AllInterfacesNoUseSiteDiagnostics) 2039PooledHashSet<NamedTypeSymbol> visited = null; 2048NamedTypeSymbol namedType = type as NamedTypeSymbol; 2074foreach (var baseInterface in type.AllInterfacesNoUseSiteDiagnostics) 2090NamedTypeSymbol effectiveBaseClass = type.EffectiveBaseClassNoUseSiteDiagnostics; 2093foreach (var baseInterface in type.AllEffectiveInterfacesNoUseSiteDiagnostics)
Binder\Binder_NameConflicts.cs (2)
70if (tp.ContainingSymbol is NamedTypeSymbol { IsExtension: true }) 90if (parameters[0] is { ContainingSymbol: NamedTypeSymbol { IsExtension: true }, Name: var receiverName } && receiverName == name)
Binder\Binder_Operators.cs (14)
1380return type is NamedTypeSymbol namedType && Compilation.IsReadOnlySpanType(namedType) && 1603var booleanType = Compilation.GetSpecialType(SpecialType.System_Boolean); 1622if (type is not NamedTypeSymbol { IsInterface: false } namedType || namedType.IsNullableType()) 1756NamedTypeSymbol t = (NamedTypeSymbol)signature.Method.ContainingType; 1890NamedTypeSymbol declaringType, 1948NamedTypeSymbol extensionContainingType = signature.Method.OriginalDefinition.ContainingType.ContainingType; 1982NamedTypeSymbol extensionContainingType, 3919NamedTypeSymbol.AddOperators(typeOperators, extensionCandidatesInSingleScope); 4441var underlyingType = operand.Type.GetEnumUnderlyingType()!; 4448var upconvertType = upconvertSpecialType == underlyingType.SpecialType ? 4852NamedTypeSymbol unionMatchingInputType; 4853NamedTypeSymbol unionType = null; 5729var objectType = GetSpecialType(SpecialType.System_Object, diagnostics, node);
Binder\Binder_Patterns.cs (89)
19protected NamedTypeSymbol? PrepareForUnionMatchingIfAppropriateAndReturnUnionMatchingInputType(SyntaxNode node, ref TypeSymbol inputType, ref NamedTypeSymbol? unionType, BindingDiagnosticBag diagnostics) 21if (inputType.IsUnionMatchingInputType(out var unionTypeOverride)) 25var originalInputType = (NamedTypeSymbol)inputType; 36internal static PropertySymbol? GetUnionTypeValueProperty(NamedTypeSymbol inputUnionType, ref CompoundUseSiteInfo<AssemblySymbol> useSiteInfo) 40NamedTypeSymbol? membersInterfaceForDefinition = inputUnionType.GetMemberProviderInterfaceForDefinition(); 44NamedTypeSymbol membersInterface = membersInterfaceForDefinition.AsMember(inputUnionType); 64static PropertySymbol? reportDiagnosticAndReturnProperty(NamedTypeSymbol memberProvider, PropertySymbol? valueProperty, ref CompoundUseSiteInfo<AssemblySymbol> useSiteInfo) 107private static PropertySymbol? TryGetOwnOrInheritedUnionProperty(NamedTypeSymbol inputUnionType, string memberName, IsSuitableUnionProperty isSuitableUnionMember, ref CompoundUseSiteInfo<AssemblySymbol> useSiteInfo) 109for (NamedTypeSymbol declaringType = inputUnionType.OriginalDefinition; 117NamedTypeSymbol possiblyConstructedOrSubstitutedType; 137static bool getMemberDeclaredInType(NamedTypeSymbol declaringType, string memberName, IsSuitableUnionProperty isSuitableUnionMember, [NotNullWhen(true)] out PropertySymbol? member) 152internal static PropertySymbol? GetUnionTypeValuePropertyNoUseSiteDiagnostics(NamedTypeSymbol inputUnionType) 158internal static bool IsUnionTypeValueProperty(NamedTypeSymbol unionType, Symbol symbol) 163internal static PropertySymbol? GetUnionTypeHasValueProperty(NamedTypeSymbol inputUnionType) 167NamedTypeSymbol? membersInterfaceForDefinition = inputUnionType.GetMemberProviderInterfaceForDefinition(); 223internal static MethodSymbol? GetUnionTypeTryGetValueMethod(ConversionsBase conversions, NamedTypeSymbol inputUnionType, TypeSymbol type) 229NamedTypeSymbol? membersInterfaceForDefinition = inputUnionType.GetMemberProviderInterfaceForDefinition(); 242for (NamedTypeSymbol declaringType = inputUnionType.OriginalDefinition; 246NamedTypeSymbol possiblyConstructedOrSubstitutedType; 274NamedTypeSymbol inputUnionType, 276NamedTypeSymbol possiblyConstructedOrSubstitutedType, 277NamedTypeSymbol declaringType, 375internal static bool IsUnionTypeTryGetValueMethod(NamedTypeSymbol unionType, MethodSymbol method) 384NamedTypeSymbol originalContainingType = method.ContainingType.OriginalDefinition; 385NamedTypeSymbol unionDefinition = unionType.OriginalDefinition; 387NamedTypeSymbol? membersInterfaceForDefinition = unionType.GetMemberProviderInterfaceForDefinition(); 398for (var container = unionDefinition; container is not null; container = container.BaseTypeNoUseSiteDiagnostics) 414static bool isMatch(MethodSymbol method, NamedTypeSymbol unionDefinition) 437internal static bool IsUnionTypeHasValueProperty(NamedTypeSymbol unionType, PropertySymbol property) 462NamedTypeSymbol? unionType = null; 602ref NamedTypeSymbol? unionType, 631ref NamedTypeSymbol? unionType, 667var systemRangeType = GetWellKnownType(WellKnownType.System_Range, diagnostics, node); 695NamedTypeSymbol? unionType = null; 730NamedTypeSymbol? unionType = null; 743ref NamedTypeSymbol? unionType, 750NamedTypeSymbol? unionMatchingInputType = PrepareForUnionMatchingIfAppropriateAndReturnUnionMatchingInputType(node, ref inputType, ref unionType, diagnostics); 843var systemIndexType = GetWellKnownType(WellKnownType.System_Index, diagnostics, node); 869ref NamedTypeSymbol? unionType, 881ref NamedTypeSymbol? unionType, 887NamedTypeSymbol? unionTypeOnEntry = unionType; 888NamedTypeSymbol? unionMatchingInputType = PrepareForUnionMatchingIfAppropriateAndReturnUnionMatchingInputType(node, ref inputType, ref unionType, diagnostics); 940internal static bool IsClassOrNullableValueTypeUnionNullPatternMatching([NotNullWhen(true)] NamedTypeSymbol? unionMatchingInputType, [NotNullWhen(true)] ConstantValue? constantValueOpt) 991NamedTypeSymbol? unionType, 1021NamedTypeSymbol? unionType, 1041NamedTypeSymbol? unionType, 1086NamedTypeSymbol? unionType, 1267NamedTypeSymbol? unionType, 1369NamedTypeSymbol unionType, 1438ref NamedTypeSymbol? unionType, 1445NamedTypeSymbol? unionMatchingInputType = PrepareForUnionMatchingIfAppropriateAndReturnUnionMatchingInputType(node, ref inputType, ref unionType, diagnostics); 1458NamedTypeSymbol? unionType, 1534NamedTypeSymbol? unionType, 1565ref NamedTypeSymbol? unionType, 1572NamedTypeSymbol? unionMatchingInputType = PrepareForUnionMatchingIfAppropriateAndReturnUnionMatchingInputType(node, ref inputType, ref unionType, diagnostics); 1620ShouldUseITupleForRecursivePattern(node, declType, diagnostics, out var iTupleType, out var iTupleGetLength, out var iTupleGetItem)) 1717NamedTypeSymbol? unionType = null; 1738var objectType = Compilation.GetSpecialType(SpecialType.System_Object); 1751NamedTypeSymbol? unionType = null; 1789foundField = CheckIsTupleElement(subpatternSyntax.NameColon.Name, (NamedTypeSymbol)declType, name, i, diagnostics); 1797NamedTypeSymbol? unionType = null; 1811[NotNullWhen(true)] out NamedTypeSymbol? iTupleType, 1849[NotNullWhen(true)] out NamedTypeSymbol? iTupleType, 1900bool hasBaseInterface(TypeSymbol type, NamedTypeSymbol possibleBaseInterface) 1912private static FieldSymbol? CheckIsTupleElement(SyntaxNode node, NamedTypeSymbol tupleType, string name, int tupleIndex, BindingDiagnosticBag diagnostics) 1934ref NamedTypeSymbol? unionType, 1962ref NamedTypeSymbol? unionType, 2003BoundPattern bindParenthesizedVariableDesignation(VariableDesignationSyntax node, ref NamedTypeSymbol? unionType, TypeSymbol inputType, bool permitDesignations, bool hasErrors, BindingDiagnosticBag diagnostics, out bool hasUnionMatching) 2005NamedTypeSymbol? unionMatchingInputType = PrepareForUnionMatchingIfAppropriateAndReturnUnionMatchingInputType(node, ref inputType, ref unionType, diagnostics); 2038ShouldUseITuple(node, strippedInputType, diagnostics, out var iTupleType, out var iTupleGetLength, out var iTupleGetItem)) 2061NamedTypeSymbol? varUnionType = null; 2086NamedTypeSymbol? unionType = null; 2100var objectType = Compilation.GetSpecialType(SpecialType.System_Object); 2104NamedTypeSymbol? unionType = null; 2163NamedTypeSymbol? unionType = null; 2275ref NamedTypeSymbol? unionType, 2281NamedTypeSymbol? unionMatchingInputType = PrepareForUnionMatchingIfAppropriateAndReturnUnionMatchingInputType(node, ref inputType, ref unionType, diagnostics); 2293ref NamedTypeSymbol? unionType, 2299NamedTypeSymbol? unionMatchingInputType = PrepareForUnionMatchingIfAppropriateAndReturnUnionMatchingInputType(node, ref inputType, ref unionType, diagnostics); 2391ref NamedTypeSymbol? unionType, 2398NamedTypeSymbol? unionMatchingInputType = PrepareForUnionMatchingIfAppropriateAndReturnUnionMatchingInputType(node, ref inputType, ref unionType, diagnostics); 2415NamedTypeSymbol? currentUnionType = unionType; 2423ref NamedTypeSymbol? unionType, 2445NamedTypeSymbol? incomingUnionType = unionType; 2476NamedTypeSymbol? incomingUnionType, 2477ref NamedTypeSymbol? unionType, 2491NamedTypeSymbol? rightUnionType = unionType;
Binder\Binder_Query.cs (2)
819NamedTypeSymbol anonymousType = manager.ConstructAnonymousTypeSymbol(typeDescriptor, diagnostics); 1029protected BoundExpression MakeConstruction(CSharpSyntaxNode node, NamedTypeSymbol toCreate, ImmutableArray<BoundExpression> args, BindingDiagnosticBag diagnostics)
Binder\Binder_QueryErrors.cs (7)
89var ienumerable_t = Compilation.GetSpecialType(SpecialType.System_Collections_Generic_IEnumerable_T); 90var iqueryable_t = Compilation.GetWellKnownType(WellKnownType.System_Linq_IQueryable_T); 96private static bool HasUniqueInterface(TypeSymbol instanceType, NamedTypeSymbol interfaceType, ref CompoundUseSiteInfo<AssemblySymbol> useSiteInfo) 102private static bool HasUniqueInterface(TypeSymbol instanceType, NamedTypeSymbol interfaceType, ref bool nonUnique, ref CompoundUseSiteInfo<AssemblySymbol> useSiteInfo) 105foreach (var i in instanceType.AllInterfacesWithDefinitionUseSiteDiagnostics(ref useSiteInfo)) 127var ienumerable = Compilation.GetSpecialType(SpecialType.System_Collections_IEnumerable); 128var iqueryable = Compilation.GetWellKnownType(WellKnownType.System_Linq_IQueryable);
Binder\Binder_Statements.cs (8)
2105conversionError(diagnostics, ErrorCode.ERR_ExpressionTreeMustHaveDelegate, ((NamedTypeSymbol)targetType).TypeArgumentsWithAnnotationsNoUseSiteDiagnostics[0].Type); 2148var delegateType = targetType.GetDelegateType(); 2686var boolean = GetSpecialType(SpecialType.System_Boolean, diagnostics, node); 3892NamedTypeSymbol containingType = constructor.ContainingType; 3893NamedTypeSymbol baseType = containingType.BaseTypeNoUseSiteDiagnostics; 3993NamedTypeSymbol baseType = constructor.ContainingType.BaseTypeNoUseSiteDiagnostics; 4055NamedTypeSymbol containingType = constructor.ContainingType; 4056NamedTypeSymbol baseType = containingType.BaseTypeNoUseSiteDiagnostics;
Binder\Binder_Symbols.cs (39)
357&& containing is not NamedTypeSymbol { IsExtension: true }) 567var type = (NamedTypeSymbol)constructedType.Type; 582var type = BindPredefinedTypeSymbol(predefinedType, diagnostics); 746return NamedTypeSymbol.CreateTuple(syntax.Location, 802int reserved = NamedTypeSymbol.IsTupleElementNameReserved(name); 821private NamedTypeSymbol BindPredefinedTypeSymbol(PredefinedTypeSyntax node, BindingDiagnosticBag diagnostics) 1003private NamedTypeSymbol BindNativeIntegerSymbolIfAny(IdentifierNameSyntax node, BindingDiagnosticBag diagnostics) 1222NamedTypeSymbol unconstructedType = LookupGenericTypeName( 1224NamedTypeSymbol resultType; 1272private NamedTypeSymbol LookupGenericTypeName( 1312NamedTypeSymbol type = lookupResultSymbol as NamedTypeSymbol; 1395private NamedTypeSymbol ConstructNamedTypeUnlessTypeArgumentOmitted(SyntaxNode typeSyntax, NamedTypeSymbol type, SeparatedSyntaxList<TypeSyntax> typeArgumentsSyntax, ImmutableArray<TypeWithAnnotations> typeArguments, BindingDiagnosticBag diagnostics) 1631private NamedTypeSymbol ConstructNamedType( 1632NamedTypeSymbol type, 1676((NamedTypeSymbol)left).IsUnboundGenericType; 1683left = ((NamedTypeSymbol)left).OriginalDefinition; 1702var namedTypeRight = right.Symbol as NamedTypeSymbol; 1713internal NamedTypeSymbol GetSpecialType(ExtendedSpecialType typeId, BindingDiagnosticBag diagnostics, SyntaxNode node) 1718internal static NamedTypeSymbol GetSpecialType(CSharpCompilation compilation, ExtendedSpecialType typeId, SyntaxNode node, BindingDiagnosticBag diagnostics) 1720NamedTypeSymbol typeSymbol = compilation.GetSpecialType(typeId); 1726internal static NamedTypeSymbol GetSpecialType(CSharpCompilation compilation, ExtendedSpecialType typeId, Location location, BindingDiagnosticBag diagnostics) 1728NamedTypeSymbol typeSymbol = compilation.GetSpecialType(typeId); 1832internal NamedTypeSymbol GetWellKnownType(WellKnownType type, BindingDiagnosticBag diagnostics, SyntaxNode node) 1841internal NamedTypeSymbol GetWellKnownType(WellKnownType type, BindingDiagnosticBag diagnostics, Location location) 1850internal static NamedTypeSymbol GetWellKnownType(CSharpCompilation compilation, WellKnownType type, BindingDiagnosticBag diagnostics, SyntaxNode node) 1856internal static NamedTypeSymbol GetWellKnownType(CSharpCompilation compilation, WellKnownType type, BindingDiagnosticBag diagnostics, Location location) 1858NamedTypeSymbol typeSymbol = compilation.GetWellKnownType(type); 1864internal static bool TryGetOptionalWellKnownType(CSharpCompilation compilation, WellKnownType type, BindingDiagnosticBag diagnostics, Location location, [NotNullWhen(true)] out NamedTypeSymbol? typeSymbol) 1886internal NamedTypeSymbol GetWellKnownType(WellKnownType type, ref CompoundUseSiteInfo<AssemblySymbol> useSiteInfo) 1888NamedTypeSymbol typeSymbol = this.Compilation.GetWellKnownType(type); 2287Compilation.IsAttributeType((NamedTypeSymbol)first) && 2288Compilation.IsAttributeType((NamedTypeSymbol)second)) 2351Emit.NoPia.EmbeddedTypesManager.IsValidEmbeddableType((NamedTypeSymbol)singleResult, where, diagnostics.DiagnosticBag); 2607if (symbol is NamedTypeSymbol { IsFileLocal: true }) 2723var forwardedType =
Binder\Binder_TupleOperators.cs (3)
416var tuple = NamedTypeSymbol.CreateTuple(locationOpt: null, 427NamedTypeSymbol nullableT = GetSpecialType(SpecialType.System_Nullable_T, diagnostics, syntax);
Binder\Binder_Unsafe.cs (5)
63typeArguments[i].Type is NamedTypeSymbol typeArgument) 72case NamedTypeSymbol typeSymbol: 79typeSymbol.TypeArgumentsWithAnnotationsNoUseSiteDiagnostics[i].Type is NamedTypeSymbol typeArgument) 89static void checkTypeArgumentWithConstructorConstraint(Binder @this, TypeParameterSymbol typeParameter, NamedTypeSymbol typeArgument, Symbol targetSymbol, T arg, Func<T, Location?> location, DiagnosticBag diagnostics) 149if (shouldCheckConstraints && symbol is NamedTypeSymbol { TypeParameters.Length: > 0 })
Binder\BinderFactory.BinderFactoryVisitor.cs (9)
434private NamedTypeSymbol GetContainerType(Binder binder, CSharpSyntaxNode node) 437var container = containingSymbol as NamedTypeSymbol; 514NamedTypeSymbol container = GetContainerType(outerBinder, baseMethodDeclarationSyntax); 533NamedTypeSymbol container = GetContainerType(outerBinder, basePropertyDeclarationSyntax); 550NamedTypeSymbol container = GetContainerType(outerBinder, eventDeclarationSyntax); 560private Symbol GetMemberSymbol(string memberName, TextSpan memberSpan, NamedTypeSymbol container, SymbolKind kind) 971var scriptClass = compilation.ScriptClass; 1338for (NamedTypeSymbol curr = outerBinder.ContainingType; (object)curr != null; curr = curr.ContainingType)
Binder\DecisionDagBuilder.cs (7)
479propertyInput.Type is NamedTypeSymbol { IsUnionType: true } match && 501var iTupleType = getLengthProperty.ContainingType; 672tryGetValueInput.Type is NamedTypeSymbol { IsUnionType: true } match) 731propertyInput.Type is NamedTypeSymbol { IsUnionType: true } match && 744if (inputInfo.UnionValue is { } unionValue && Binder.GetUnionTypeHasValueProperty((NamedTypeSymbol)inputInfo.DagTemp.Type) is PropertySymbol hasValue) 787if (Binder.GetUnionTypeTryGetValueMethod(_conversions, (NamedTypeSymbol)inputInfo.DagTemp.Type, type) is MethodSymbol tryGetValue) 1000input.Type is NamedTypeSymbol { IsUnionType: true } unionType &&
Binder\EarlyWellKnownAttributeBinder.cs (2)
27AttributeSyntax node, NamedTypeSymbol boundAttributeType, 43AttributeSyntax node, NamedTypeSymbol boundAttributeType,
Binder\ExpressionVariableFinder.cs (3)
606NamedTypeSymbol? container = _scopeBinder.ContainingType; 627NamedTypeSymbol? container = _scopeBinder.ContainingType; 654NamedTypeSymbol container = _scopeBinder.ContainingType;
Binder\ForEachLoopBinder.cs (14)
734nullableValueGetter = nullableValueGetter.AsMember((NamedTypeSymbol)collectionExprType); 858NamedTypeSymbol spanType = GetWellKnownType(wellKnownSpan, diagnostics, collectionExpr.Syntax); 1090NamedTypeSymbol collectionType = (NamedTypeSymbol)builder.CollectionType; 1150moveNextMethod = moveNextAsync.AsMember((NamedTypeSymbol)enumeratorType); 1162builder.CurrentPropertyGetter = currentPropertyGetter.AsMember((NamedTypeSymbol)enumeratorType); 1278NamedTypeSymbol targetInterface = isAsync ? this.Compilation.GetWellKnownType(WellKnownType.System_IAsyncDisposable) : this.Compilation.GetSpecialType(SpecialType.System_IDisposable); 1807NamedTypeSymbol implementedIEnumerable = GetIEnumerableOfT(type, isAsync, Compilation, ref useSiteInfo, out foundMultiple, out bool needSupportForRefStructInterfaces); 1816var implementedNonGeneric = this.Compilation.GetSpecialType(SpecialType.System_Collections_IEnumerable); 1837internal static NamedTypeSymbol GetIEnumerableOfT( 1841NamedTypeSymbol implementedIEnumerable = null; 1861private static void GetIEnumerableOfT(ImmutableArray<NamedTypeSymbol> interfaces, bool isAsync, CSharpCompilation compilation, ref NamedTypeSymbol result, ref bool foundMultiple) 1870foreach (NamedTypeSymbol @interface in interfaces)
Binder\ImportChain.cs (2)
116else if (target is NamedTypeSymbol { ContainingAssembly.IsLinked: false } or not NamedTypeSymbol)
Binder\InContainerBinder.cs (3)
54get { return (_container.Kind == SymbolKind.NamedType) && ((NamedTypeSymbol)_container).IsScriptClass; } 59var type = _container as NamedTypeSymbol;
Binder\InMethodBinder.cs (4)
156var objectType = compilation.GetSpecialType(SpecialType.System_Object); 165return ((NamedTypeSymbol)returnType).TypeArgumentsWithAnnotationsNoUseSiteDiagnostics[0]; 171return ((NamedTypeSymbol)returnType).TypeArgumentsWithAnnotationsNoUseSiteDiagnostics[0]; 296if (parameter.ContainingSymbol is NamedTypeSymbol { IsExtension: true })
Binder\InSubmissionClassBinder.cs (3)
26internal InSubmissionClassBinder(NamedTypeSymbol submissionClass, Binder next, CompilationUnitSyntax declarationSyntax, bool inUsings) 47this.LookupMembersInSubmissions(result, (NamedTypeSymbol)Container, _declarationSyntax, _inUsings, name, arity, basesBeingResolved, options, originalBinder, diagnose, ref useSiteInfo); 52this.AddMemberLookupSymbolsInfoInSubmissions(result, (NamedTypeSymbol)Container, _inUsings, options, originalBinder);
Binder\LocalBinderFactory.cs (4)
312ParameterSymbol parameter when parameter.ContainingSymbol is not NamedTypeSymbol => getAllParameters(parameter), 315NamedTypeSymbol namedType when namedType.IsDelegateType() => getDelegateParameters(namedType), 344case NamedTypeSymbol namedType when namedType.IsDelegateType(): 352static ImmutableArray<ParameterSymbol> getDelegateParameters(NamedTypeSymbol delegateType)
Binder\LockBinder.cs (1)
91if (scopeType is not NamedTypeSymbol { Name: WellKnownMemberNames.LockScopeTypeName, Arity: 0, IsValueType: true, IsRefLikeType: true, DeclaredAccessibility: Accessibility.Public } ||
Binder\ParamsCollectionTypeInProgressBinder.cs (3)
15private readonly NamedTypeSymbol? _inProgress; 19NamedTypeSymbol? inProgress, 32internal override NamedTypeSymbol? ParamsCollectionTypeInProgress => _inProgress;
Binder\PatternExplainer.cs (2)
708e.Input.Type is NamedTypeSymbol { IsUnionType: true } unionType && 788if (type is NamedTypeSymbol { TypeKind: TypeKind.Enum } e)
Binder\RefSafetyAnalysis.cs (3)
45var type = symbol.ContainingType; 48var def = type.OriginalDefinition; 1328var elementType = ((NamedTypeSymbol)spanPlaceholder.Type!).TypeArgumentsWithAnnotationsNoUseSiteDiagnostics[0];
Binder\Semantics\AccessCheck.cs (41)
39NamedTypeSymbol within, 54NamedTypeSymbol within, 145Debug.Assert(within is NamedTypeSymbol || within is AssemblySymbol); 158return IsNamedTypeAccessible((NamedTypeSymbol)symbol, within, ref useSiteInfo, basesBeingResolved); 223private static bool IsNamedTypeAccessible(NamedTypeSymbol type, Symbol within, ref CompoundUseSiteInfo<AssemblySymbol> useSiteInfo, ConsList<TypeSymbol> basesBeingResolved = null) 225Debug.Assert(within is NamedTypeSymbol || within is AssemblySymbol); 246var containingType = type.ContainingType; 261Debug.Assert(within is NamedTypeSymbol || within is AssemblySymbol); 281var withinType = within as NamedTypeSymbol; 298NamedTypeSymbol containingType, // the symbol's containing type 307Debug.Assert(within is NamedTypeSymbol || within is AssemblySymbol); 343NamedTypeSymbol containingType, // the symbol's containing type 354var originalContainingType = containingType.OriginalDefinition; 355var withinType = within as NamedTypeSymbol; 417NamedTypeSymbol withinType, 419NamedTypeSymbol originalContainingType, 460var current = withinType.OriginalDefinition; 495NamedTypeSymbol originalContainingType) 497Debug.Assert(within is NamedTypeSymbol || within is AssemblySymbol); 499var withinType = within as NamedTypeSymbol; 515NamedTypeSymbol withinType, 516NamedTypeSymbol originalContainingType) 524var current = withinType.OriginalDefinition; 546NamedTypeSymbol baseType, 554PooledHashSet<NamedTypeSymbol> interfacesLookedAt = null; 555ArrayBuilder<NamedTypeSymbol> baseInterfaces = null; 560interfacesLookedAt = PooledHashSet<NamedTypeSymbol>.GetInstance(); 561baseInterfaces = ArrayBuilder<NamedTypeSymbol>.GetInstance(); 564PooledHashSet<NamedTypeSymbol> visited = null; 606NamedTypeSymbol currentBase = baseInterfaces.Pop(); 625foreach (var candidate in interfacesLookedAt) 636static void getBaseInterfaces(TypeSymbol derived, ArrayBuilder<NamedTypeSymbol> baseInterfaces, PooledHashSet<NamedTypeSymbol> interfacesLookedAt, ConsList<TypeSymbol> basesBeingResolved) 643ImmutableArray<NamedTypeSymbol> declaredInterfaces; 651case NamedTypeSymbol namedType: 660foreach (var @interface in declaredInterfaces) 662NamedTypeSymbol definition = @interface.OriginalDefinition; 697internal static ErrorCode GetProtectedMemberInSealedTypeError(NamedTypeSymbol containingType)
Binder\Semantics\Conversions\Conversions.cs (6)
58Debug.Assert(methodSymbol == ((NamedTypeSymbol)destination).DelegateInvokeMethod); 140if (destination is NamedTypeSymbol { IsInterpolatedStringHandlerType: true }) 298var delegateType = type.GetDelegateType(); 408public Conversion MethodGroupConversion(SyntaxNode syntax, MethodGroup methodGroup, NamedTypeSymbol delegateType, ref CompoundUseSiteInfo<AssemblySymbol> useSiteInfo) 536var spanType = _binder.GetWellKnownType(WellKnownType.System_Span_T, ref useSiteInfo); 539var spanType_T = spanType.Construct(sourceExpression.ElementType);
Binder\Semantics\Conversions\ConversionsBase.cs (60)
974var d = derivedType as NamedTypeSymbol; 980foreach (var iface in d.AllInterfacesWithDefinitionUseSiteDiagnostics(ref useSiteInfo)) 1165HasIdentityConversionInternal(((NamedTypeSymbol)destination.OriginalDefinition).Construct(ImmutableArray.Create(elementType)), destination)) 1492var delegateType = (NamedTypeSymbol)type; 1601private static LambdaConversionResult IsAnonymousFunctionCompatibleWithExpressionTree(UnboundLambda anonymousFunction, NamedTypeSymbol type, CSharpCompilation compilation) 1634var multicastDelegateType = corLibrary.GetSpecialType(SpecialType.System_MulticastDelegate); 1650return IsAnonymousFunctionCompatibleWithExpressionTree(anonymousFunction, (NamedTypeSymbol)type, compilation); 1689else if ((destination as NamedTypeSymbol)?.HasCollectionBuilderAttribute(out _, out _) == true) 1716var specialType = compilation.GetSpecialType(specialInterface); 1723if (targetType is NamedTypeSymbol { Arity: 1 } namedType 1913private static bool HasIdentityConversionToAny(NamedTypeSymbol type, ArrayBuilder<(NamedTypeSymbol ParticipatingType, TypeParameterSymbol ConstrainedToTypeOpt)> targetTypes) 2600NamedTypeSymbol destinationAgg = (NamedTypeSymbol)destination; 2840var derivedType = this.corLibrary.GetDeclaredSpecialType(SpecialType.System_MulticastDelegate); 2852var sourceDelegate = sourceType.GetInternalDelegateType(); 2858var destinationDelegate = destinationType.GetInternalDelegateType(); 2939var effectiveBaseClass = source.EffectiveBaseClass(ref useSiteInfo); 2974foreach (var i in source.AllEffectiveInterfacesWithDefinitionUseSiteDiagnostics(ref useSiteInfo)) 2999var d = derivedType as NamedTypeSymbol; 3005foreach (var i in d.AllInterfacesWithDefinitionUseSiteDiagnostics(ref useSiteInfo)) 3016internal bool ImplementsVarianceCompatibleInterface(NamedTypeSymbol derivedType, TypeSymbol baseType, ref CompoundUseSiteInfo<AssemblySymbol> useSiteInfo) 3021internal bool HasImplicitConversionToOrImplementsVarianceCompatibleInterface(TypeSymbol typeToCheck, NamedTypeSymbol targetInterfaceType, ref CompoundUseSiteInfo<AssemblySymbol> useSiteInfo, out bool needSupportForRefStructInterfaces) 3041private bool IsRefLikeOrAllowsRefLikeTypeImplementingVarianceCompatibleInterface(TypeSymbol typeToCheck, NamedTypeSymbol targetInterfaceType, ref CompoundUseSiteInfo<AssemblySymbol> useSiteInfo) 3055internal bool HasImplicitConversionToOrImplementsVarianceCompatibleInterface(BoundExpression expressionToCheck, NamedTypeSymbol targetInterfaceType, ref CompoundUseSiteInfo<AssemblySymbol> useSiteInfo, out bool needSupportForRefStructInterfaces) 3093NamedTypeSymbol? s = source as NamedTypeSymbol; 3094NamedTypeSymbol? d = destination as NamedTypeSymbol; 3112NamedTypeSymbol? s = source as NamedTypeSymbol; 3113NamedTypeSymbol? d = destination as NamedTypeSymbol; 3127private bool HasVariantConversion(NamedTypeSymbol source, NamedTypeSymbol destination, ref CompoundUseSiteInfo<AssemblySymbol> useSiteInfo) 3158private ThreeState HasVariantConversionQuick(NamedTypeSymbol source, NamedTypeSymbol destination) 3168NamedTypeSymbol typeSymbol = source.OriginalDefinition; 3177private bool HasVariantConversionNoCycleCheck(NamedTypeSymbol source, NamedTypeSymbol destination, ref CompoundUseSiteInfo<AssemblySymbol> useSiteInfo) 3256static bool isTypeIEquatable(NamedTypeSymbol type) 3571for (var type = t.EffectiveBaseClass(ref useSiteInfo); (object)type != null; type = type.BaseTypeWithDefinitionUseSiteDiagnostics(ref useSiteInfo)) 3623for (var type = t.EffectiveBaseClass(ref useSiteInfo); (object)type != null; type = type.BaseTypeWithDefinitionUseSiteDiagnostics(ref useSiteInfo)) 3689var sourceType = (NamedTypeSymbol)source; 3690var destinationType = (NamedTypeSymbol)destination; 3691var original = sourceType.OriginalDefinition; 3774foreach (var iface in this.corLibrary.GetDeclaredSpecialType(SpecialType.System_Array).AllInterfacesWithDefinitionUseSiteDiagnostics(ref useSiteInfo)) 3791if (HasExplicitReferenceConversion(sourceArray.ElementType, ((NamedTypeSymbol)destination).TypeArgumentWithDefinitionUseSiteDiagnostics(0, ref useSiteInfo).Type, ref useSiteInfo)) 3811var sourceElement = ((NamedTypeSymbol)source).TypeArgumentWithDefinitionUseSiteDiagnostics(0, ref useSiteInfo).Type; 3986var spanElementType = ((NamedTypeSymbol)destination).TypeArgumentsWithDefinitionUseSiteDiagnostics(ref useSiteInfo)[0]; 3993var spanElementType = ((NamedTypeSymbol)destination).TypeArgumentsWithDefinitionUseSiteDiagnostics(ref useSiteInfo)[0]; 4003var sourceElementType = ((NamedTypeSymbol)source).TypeArgumentsWithDefinitionUseSiteDiagnostics(ref useSiteInfo)[0]; 4004var destinationElementType = ((NamedTypeSymbol)destination).TypeArgumentsWithDefinitionUseSiteDiagnostics(ref useSiteInfo)[0]; 4013var spanElementType = ((NamedTypeSymbol)destination).TypeArgumentsWithDefinitionUseSiteDiagnostics(ref useSiteInfo)[0]; 4049var spanElementType = ((NamedTypeSymbol)destination).TypeArgumentsWithDefinitionUseSiteDiagnostics(ref useSiteInfo)[0];
Binder\Semantics\Conversions\UserDefinedConversions.cs (8)
17public static void AddTypesParticipatingInUserDefinedConversion(ArrayBuilder<(NamedTypeSymbol ParticipatingType, TypeParameterSymbol? ConstrainedToTypeOpt)> result, TypeSymbol type, bool includeBaseTypes, ref CompoundUseSiteInfo<AssemblySymbol> useSiteInfo) 94NamedTypeSymbol effectiveBaseClass = typeParameter.EffectiveBaseClass(ref useSiteInfo); 97ImmutableArray<NamedTypeSymbol> interfaces = includeBaseTypes ? 101foreach (NamedTypeSymbol iface in interfaces) 114static void addFromClassOrStruct(ArrayBuilder<(NamedTypeSymbol ParticipatingType, TypeParameterSymbol? ConstrainedToTypeOpt)> result, bool excludeExisting, TypeSymbol type, bool includeBaseTypes, ref CompoundUseSiteInfo<AssemblySymbol> useSiteInfo) 118var namedType = (NamedTypeSymbol)type; 130NamedTypeSymbol t = type.BaseTypeWithDefinitionUseSiteDiagnostics(ref useSiteInfo);
Binder\Semantics\Conversions\UserDefinedExplicitConversions.cs (7)
36var d = ArrayBuilder<(NamedTypeSymbol ParticipatingType, TypeParameterSymbol ConstrainedToTypeOpt)>.GetInstance(); 74private static void ComputeUserDefinedExplicitConversionTypeSet(TypeSymbol source, TypeSymbol target, ArrayBuilder<(NamedTypeSymbol ParticipatingType, TypeParameterSymbol ConstrainedToTypeOpt)> d, ref CompoundUseSiteInfo<AssemblySymbol> useSiteInfo) 90ArrayBuilder<(NamedTypeSymbol ParticipatingType, TypeParameterSymbol ConstrainedToTypeOpt)> d, 102foreach ((NamedTypeSymbol declaringType, TypeParameterSymbol constrainedToTypeOpt) in d) 117foreach ((NamedTypeSymbol declaringType, TypeParameterSymbol constrainedToTypeOpt) in d) 128NamedTypeSymbol declaringType, 147NamedTypeSymbol declaringType,
Binder\Semantics\Conversions\UserDefinedImplicitConversions.cs (11)
80var d = ArrayBuilder<(NamedTypeSymbol ParticipatingType, TypeParameterSymbol ConstrainedToTypeOpt)>.GetInstance(); 118private static void ComputeUserDefinedImplicitConversionTypeSet(TypeSymbol s, TypeSymbol t, ArrayBuilder<(NamedTypeSymbol ParticipatingType, TypeParameterSymbol ConstrainedToTypeOpt)> d, ref CompoundUseSiteInfo<AssemblySymbol> useSiteInfo) 146ArrayBuilder<(NamedTypeSymbol ParticipatingType, TypeParameterSymbol ConstrainedToTypeOpt)> d, 255foreach ((NamedTypeSymbol declaringType, TypeParameterSymbol constrainedToTypeOpt) in d) 270foreach ((NamedTypeSymbol declaringType, TypeParameterSymbol constrainedToTypeOpt) in d) 281NamedTypeSymbol declaringType, 887private NamedTypeSymbol MakeNullableType(TypeSymbol type) 889var nullable = this.corLibrary.GetDeclaredSpecialType(SpecialType.System_Nullable_T); 963var d = ArrayBuilder<(NamedTypeSymbol ParticipatingType, TypeParameterSymbol ConstrainedToTypeOpt)>.GetInstance(); 994if (target.StrippedType() is not NamedTypeSymbol namedTarget || !namedTarget.IsUnionType) 1025NamedTypeSymbol declaringType,
Binder\Semantics\Operators\BinaryOperatorOverloadResolution.cs (15)
235ImmutableArray<NamedTypeSymbol> interfaces = default; 244GetUserDefinedBinaryOperatorsFromType(constrainedToTypeOpt, (NamedTypeSymbol)operatorSourceOpt, kind, name1, name2Opt, operators); 267var shadowedInterfaces = PooledHashSet<NamedTypeSymbol>.GetInstance(); 269foreach (NamedTypeSymbol @interface in interfaces) 487var underlying = enumType.GetEnumUnderlyingType(); 491var nullableEnum = Compilation.GetOrCreateNullableType(enumType); 492var nullableUnderlying = Compilation.GetOrCreateNullableType(underlying); 540var boolean = Compilation.GetSpecialType(SpecialType.System_Boolean); 798var @object = Compilation.GetSpecialType(SpecialType.System_Object); 902NamedTypeSymbol current = type0 as NamedTypeSymbol; 949NamedTypeSymbol type, 989private static void GetDeclaredUserDefinedBinaryOperators(TypeSymbol? constrainedToTypeOpt, NamedTypeSymbol type, BinaryOperatorKind kind, string name, ArrayBuilder<BinaryOperatorSignature> operators) 1507NamedTypeSymbol.AddOperators(typeOperators, extensionCandidatesInSingleScope); 1518NamedTypeSymbol extension = method.ContainingType;
Binder\Semantics\Operators\UnaryOperatorOverloadResolution.cs (16)
19private NamedTypeSymbol MakeNullable(TypeSymbol type) 148NamedTypeSymbol.AddOperators(typeOperators, extensionCandidatesInSingleScope); 159NamedTypeSymbol extension = method.ContainingType; 258var xExtension = x.OriginalDefinition.ContainingType; 261var yExtension = y.OriginalDefinition.ContainingType; 274private static NamedTypeSymbol Normalize(NamedTypeSymbol extension) 290var extension = op.OriginalDefinition.ContainingType; 565var nullableEnum = Compilation.GetOrCreateNullableType(enumType); 670NamedTypeSymbol current = declaringTypeOrTypeParameter as NamedTypeSymbol; 698ImmutableArray<NamedTypeSymbol> interfaces = default; 710var shadowedInterfaces = PooledHashSet<NamedTypeSymbol>.GetInstance(); 714foreach (NamedTypeSymbol @interface in interfaces) 769NamedTypeSymbol type, 809private static void GetDeclaredUserDefinedUnaryOperators(TypeSymbol? constrainedToTypeOpt, NamedTypeSymbol type, UnaryOperatorKind kind, string name, ArrayBuilder<UnaryOperatorSignature> operators)
Binder\Semantics\OverloadResolution\MethodTypeInference.cs (66)
59private static readonly ObjectPool<PooledDictionary<NamedTypeSymbol, NamedTypeSymbol>> s_poolInstance 60= PooledDictionary<NamedTypeSymbol, NamedTypeSymbol>.CreatePool(Symbols.SymbolEqualityComparer.IgnoringNullable); 62internal static PooledDictionary<NamedTypeSymbol, NamedTypeSymbol> GetInstance() 137private readonly NamedTypeSymbol _constructedContainingTypeOfMethod; 179NamedTypeSymbol constructedContainingTypeOfMethod, 328NamedTypeSymbol constructedContainingTypeOfMethod, 733var destination = (NamedTypeSymbol)target.Type; 929var destination = (NamedTypeSymbol)formalType.Type; 1087NamedTypeSymbol n => n.DelegateInvokeMethod, 1410var delegateType = target.Type.GetDelegateType(); 1468NamedTypeSymbol n => (n.DelegateInvokeMethod, false), 1571var delegateType = target.Type.GetDelegateType(); 1769return ((NamedTypeSymbol)type).TypeArgumentsWithAnnotationsNoUseSiteDiagnostics[0]; 1809ExactOrBoundsInference(kind, ((NamedTypeSymbol)source.Type).TypeArgumentsWithAnnotationsNoUseSiteDiagnostics[0], ((NamedTypeSymbol)target.Type).TypeArgumentsWithAnnotationsNoUseSiteDiagnostics[0], ref useSiteInfo); 1867var namedSource = source.Type as NamedTypeSymbol; 1873var namedTarget = target.Type as NamedTypeSymbol; 1942private void ExactTypeArgumentInference(NamedTypeSymbol source, NamedTypeSymbol target, ref CompoundUseSiteInfo<AssemblySymbol> useSiteInfo) 2110return ((NamedTypeSymbol)target).TypeArgumentWithDefinitionUseSiteDiagnostics(0, ref useSiteInfo); 2199var constructedTarget = target as NamedTypeSymbol; 2219var constructedSource = source as NamedTypeSymbol; 2258private bool LowerBoundClassInference(TypeSymbol source, NamedTypeSymbol target, ref CompoundUseSiteInfo<AssemblySymbol> useSiteInfo) 2280NamedTypeSymbol sourceBase = null; 2303private bool LowerBoundInterfaceInference(TypeSymbol source, NamedTypeSymbol target, ref CompoundUseSiteInfo<AssemblySymbol> useSiteInfo) 2321ImmutableArray<NamedTypeSymbol> allInterfaces; 2344NamedTypeSymbol matchingInterface = GetInterfaceInferenceBound(allInterfaces, target); 2353internal static ImmutableArray<NamedTypeSymbol> ModuloReferenceTypeNullabilityDifferences(ImmutableArray<NamedTypeSymbol> interfaces, VarianceKind variance) 2357foreach (var @interface in interfaces) 2359if (dictionary.TryGetValue(@interface, out var found)) 2361var merged = (NamedTypeSymbol)found.MergeEquivalentTypes(@interface, variance); 2375private void LowerBoundTypeArgumentInference(NamedTypeSymbol source, NamedTypeSymbol target, ref CompoundUseSiteInfo<AssemblySymbol> useSiteInfo) 2602var constructedSource = source as NamedTypeSymbol; 2618var constructedTarget = target as NamedTypeSymbol; 2655private bool UpperBoundClassInference(NamedTypeSymbol source, TypeSymbol target, ref CompoundUseSiteInfo<AssemblySymbol> useSiteInfo) 2669var targetBase = target.BaseTypeWithDefinitionUseSiteDiagnostics(ref useSiteInfo); 2684private bool UpperBoundInterfaceInference(NamedTypeSymbol source, TypeSymbol target, ref CompoundUseSiteInfo<AssemblySymbol> useSiteInfo) 2710ImmutableArray<NamedTypeSymbol> allInterfaces = target.AllInterfacesWithDefinitionUseSiteDiagnostics(ref useSiteInfo); 2715NamedTypeSymbol bestInterface = GetInterfaceInferenceBound(allInterfaces, source); 2725private void UpperBoundTypeArgumentInference(NamedTypeSymbol source, NamedTypeSymbol target, ref CompoundUseSiteInfo<AssemblySymbol> useSiteInfo) 2991var resultType = functionType.GetInternalDelegateType(); 2995var expressionOfTType = compilation.GetWellKnownType(WellKnownType.System_Linq_Expressions_Expression_T); 3060private TypeWithAnnotations InferReturnType(BoundExpression source, NamedTypeSymbol target, ref CompoundUseSiteInfo<AssemblySymbol> useSiteInfo) 3115var fixedDelegate = (NamedTypeSymbol)GetFixedDelegateOrFunctionPointer(target); 3154private static NamedTypeSymbol GetInterfaceInferenceBound(ImmutableArray<NamedTypeSymbol> interfaces, NamedTypeSymbol target) 3157NamedTypeSymbol matchingInterface = null; 3158foreach (var currentInterface in interfaces) 3188NamedTypeSymbol extension,
Binder\Semantics\OverloadResolution\OverloadResolution.cs (37)
204members.All(static m => m.ContainingSymbol is NamedTypeSymbol { BaseTypeNoUseSiteDiagnostics.SpecialType: SpecialType.System_Object })); 370Dictionary<NamedTypeSymbol, ArrayBuilder<TMember>> containingTypeMapOpt = null; 717Debug.Assert(unmanagedCallingConventionTypes.All(u => FunctionPointerTypeSymbol.IsCallingConventionModifier((NamedTypeSymbol)u))); 902private static Dictionary<NamedTypeSymbol, ArrayBuilder<TMember>> PartitionMembersByContainingType<TMember>(ArrayBuilder<TMember> members) where TMember : Symbol 904Dictionary<NamedTypeSymbol, ArrayBuilder<TMember>> containingTypeMap = new Dictionary<NamedTypeSymbol, ArrayBuilder<TMember>>(); 908NamedTypeSymbol containingType = member.ContainingType; 920private static void ClearContainingTypeMap<TMember>(ref Dictionary<NamedTypeSymbol, ArrayBuilder<TMember>> containingTypeMapOpt) where TMember : Symbol 1065Dictionary<NamedTypeSymbol, ArrayBuilder<TMember>> containingTypeMapOpt, 1129NamedTypeSymbol memberContainingType = member.ContainingType; 1132NamedTypeSymbol otherType = pair.Key; 1448NamedTypeSymbol memberContainingType = member.ContainingType; 1451NamedTypeSymbol otherContainingType = otherMember.ContainingType; 1645var currentType = result.LeastOverriddenMember.ContainingType; 1658if (currentType.IsInterfaceType() && type.IsInterfaceType() && currentType.AllInterfacesWithDefinitionUseSiteDiagnostics(ref useSiteInfo).Contains((NamedTypeSymbol)type)) 1714var type = result.LeastOverriddenMember.ContainingType; 1886var resultsByContainingType = PooledDictionary<NamedTypeSymbol, OneOrMany<TMemberResolution>>.GetInstance(); 1902NamedTypeSymbol containingType = memberWithPriority.IsExtensionBlockMember() 2688bool isExtensionParameterOfStaticExtensionMember = parameter is { ContainingSymbol: NamedTypeSymbol { IsExtension: true, ExtensionParameter: var extensionParameter } } 2847var n1 = t1 as NamedTypeSymbol; 2848var n2 = t2 as NamedTypeSymbol; 3289NamedTypeSymbol d; 3312y = ((NamedTypeSymbol)y).TypeArgumentsWithAnnotationsNoUseSiteDiagnostics[0].Type; 3391var destination = (NamedTypeSymbol)targetType; 3552return BetterConversionTargetCore(((NamedTypeSymbol)type1).TypeArgumentsWithAnnotationsNoUseSiteDiagnostics[0].Type, 3553((NamedTypeSymbol)type2).TypeArgumentsWithAnnotationsNoUseSiteDiagnostics[0].Type, 3566NamedTypeSymbol d1; 3570NamedTypeSymbol d2; 3663var type1Element = ((NamedTypeSymbol)type1).TypeArgumentsWithAnnotationsNoUseSiteDiagnostics[0].Type; 3664var type2Element = ((NamedTypeSymbol)type2).TypeArgumentsWithAnnotationsNoUseSiteDiagnostics[0].Type; 3675private bool IsMethodGroupConversionIncompatibleWithDelegate(BoundMethodGroup node, NamedTypeSymbol delegateType, Conversion conv) 3697NamedTypeSymbol d1; 3701NamedTypeSymbol d2; 4604&& parameters.ParameterTypes[argumentPosition].Type is NamedTypeSymbol { IsInterpolatedStringHandlerType: true, IsValueType: true })
Binder\Semantics\OverloadResolution\OverloadResolutionResult.cs (7)
215NamedTypeSymbol typeContainingConstructor, 216NamedTypeSymbol delegateTypeBeingInvoked, 880NamedTypeSymbol delegateTypeBeingInvoked, 915NamedTypeSymbol delegateTypeBeingInvoked, 963NamedTypeSymbol typeContainingConstructor, 964NamedTypeSymbol delegateTypeBeingInvoked) 1411parameter.Type is NamedTypeSymbol { IsInterpolatedStringHandlerType: true };
Binder\Semantics\SemanticFacts.cs (2)
25NamedTypeSymbol within, 26NamedTypeSymbol throughTypeOpt = null)
Binder\SwitchBinder.cs (3)
226NamedTypeSymbol unionType = null; 271if (!conversion.IsUnion && !(caseExpression.IsLiteralNull() && SwitchGoverningType.StrippedType() is NamedTypeSymbol { IsUnionType: true })) 278NamedTypeSymbol unionType = null;
Binder\SwitchBinder_Patterns.cs (2)
250NamedTypeSymbol unionType = null; 283NamedTypeSymbol unionType = null;
Binder\SwitchExpressionArmBinder.cs (1)
42NamedTypeSymbol? unionType = null;
Binder\UnionMatchingRewriter.cs (13)
55private NamedTypeSymbol ObjectType => _compilation.GetSpecialType(SpecialType.System_Object); 57private static BoundPatternWithUnionMatching CreatePatternWithUnionMatching(NamedTypeSymbol unionMatchingInputType, BoundPattern innerPattern) 62PropertySymbol? valueProperty = Binder.GetUnionTypeValuePropertyNoUseSiteDiagnostics((NamedTypeSymbol)unionMatchingInputType.StrippedType()); 81if (Binder.IsClassOrNullableValueTypeUnionNullPatternMatching((NamedTypeSymbol)node.InputType, node.ConstantValue) && node.NarrowedType.Equals(node.InputType, TypeCompareKind.AllIgnoreOptions)) 86(NamedTypeSymbol)node.InputType, 99(NamedTypeSymbol)node.InputType, 112(NamedTypeSymbol)node.InputType, 136(NamedTypeSymbol)node.InputType, 150(NamedTypeSymbol)node.InputType, 164(NamedTypeSymbol)node.InputType, 178(NamedTypeSymbol)node.InputType, 191(NamedTypeSymbol)node.InputType, 207(NamedTypeSymbol)node.InputType,
Binder\UsingStatementBinder.cs (4)
242NamedTypeSymbol disposableInterface = getDisposableInterface(hasAwait); 268NamedTypeSymbol alternateInterface = getDisposableInterface(!hasAwait); 281bool implementsInterface(bool fromExpression, NamedTypeSymbol targetInterface, BindingDiagnosticBag diagnostics) 310NamedTypeSymbol getDisposableInterface(bool isAsync)
Binder\WithClassTypeParametersBinder.cs (2)
20private readonly NamedTypeSymbol _namedType; 23internal WithClassTypeParametersBinder(NamedTypeSymbol container, Binder next)
Binder\WithExtensionParameterBinder.cs (2)
16private readonly NamedTypeSymbol _type; 18internal WithExtensionParameterBinder(NamedTypeSymbol type, Binder next)
Binder\WithPrimaryConstructorParametersBinder.cs (2)
17private readonly NamedTypeSymbol _type; 21internal WithPrimaryConstructorParametersBinder(NamedTypeSymbol type, Binder next)
Binder\WithUsingNamespacesAndTypesBinder.cs (1)
98else if (nsOrType.NamespaceOrType is NamedTypeSymbol namedType)
BoundTree\BoundExpressionExtensions.cs (3)
135public static NamedTypeSymbol? GetInferredDelegateType(this BoundExpression expr, ref CompoundUseSiteInfo<AssemblySymbol> useSiteInfo) 139var delegateType = expr.GetFunctionType()?.GetInternalDelegateType(); 275return receiverType is NamedTypeSymbol { Kind: SymbolKind.NamedType, IsComImport: true };
BoundTree\BoundInlineArrayAccess.cs (3)
20NamedTypeSymbol 50NamedTypeSymbol 62Debug.Assert(((NamedTypeSymbol)Type).TypeArgumentsWithAnnotationsNoUseSiteDiagnostics[0].Equals(Expression.Type?.TryGetInlineArrayElementField()?.TypeWithAnnotations ?? default, TypeCompareKind.ConsiderEverything));
BoundTree\NullabilityRewriter.cs (1)
235var updatedDelegateType = _snapshotManager?.GetUpdatedDelegateTypeForLambda(lambda);
BoundTree\UnboundLambda.cs (36)
155var delegateType = Type.GetDelegateType(); 174internal LambdaSymbol CreateLambdaSymbol(NamedTypeSymbol delegateType, Symbol containingSymbol) => 318NamedTypeSymbol? taskType = null; 319var delegateReturnType = delegateType?.GetDelegateType()?.DelegateInvokeMethod?.ReturnType as NamedTypeSymbol; 332var resultType = taskType?.Arity == 0 ? 347var taskTypeT = taskType?.Arity == 1 ? 467public BoundLambda Bind(NamedTypeSymbol delegateType, bool isExpressionTree) 473public BoundLambda BindForReturnTypeInference(NamedTypeSymbol delegateType) 502public TypeWithAnnotations InferReturnType(ConversionsBase conversions, NamedTypeSymbol delegateType, ref CompoundUseSiteInfo<AssemblySymbol> useSiteInfo, out bool inferredFromFunctionType) 543Constraint = "Avoid " + nameof(ConcurrentDictionary<(NamedTypeSymbol, bool), BoundLambda>) + " which has a large default size, but this cache is normally small.")] 544private ImmutableDictionary<(NamedTypeSymbol Type, bool IsExpressionLambda), BoundLambda>? _bindingCache; 560_bindingCache = ImmutableDictionary<(NamedTypeSymbol Type, bool IsExpressionLambda), BoundLambda>.Empty.WithComparers(BindingCacheComparer.Instance); 636public BoundLambda Bind(NamedTypeSymbol delegateType, bool isTargetExpressionTree) 672private static MethodSymbol? DelegateInvokeMethod(NamedTypeSymbol? delegateType) 738internal NamedTypeSymbol? InferDelegateType() 818private BoundLambda ReallyBind(NamedTypeSymbol delegateType, bool inExpressionTree) 950internal LambdaSymbol CreateLambdaSymbol(NamedTypeSymbol delegateType, Symbol containingSymbol) 984NamedTypeSymbol? delegateType, 1071public BoundLambda BindForReturnTypeInference(NamedTypeSymbol delegateType) 1092public readonly NamedTypeSymbol? TaskLikeReturnTypeOpt; 1096private ReturnInferenceCacheKey(ImmutableArray<TypeWithAnnotations> parameterTypes, ImmutableArray<RefKind> parameterRefKinds, NamedTypeSymbol? taskLikeReturnTypeOpt) 1143public static ReturnInferenceCacheKey Create(NamedTypeSymbol? delegateType, bool isAsync) 1145GetFields(delegateType, isAsync, out var parameterTypes, out var parameterRefKinds, out var taskLikeReturnTypeOpt); 1154NamedTypeSymbol? delegateType, 1158out NamedTypeSymbol? taskLikeReturnTypeOpt) 1186var delegateReturnType = invoke.ReturnType as NamedTypeSymbol; 1255var delegateType = (NamedTypeSymbol?)lambda.Type; 1262NamedTypeSymbol? delegateType, 1278var t = (inferredReturnType.HadExpressionlessReturn || inferredReturnType.NumExpressions == 0) 1482private sealed class BindingCacheComparer : IEqualityComparer<(NamedTypeSymbol Type, bool IsExpressionTree)> 1486public bool Equals([AllowNull] (NamedTypeSymbol Type, bool IsExpressionTree) x, [AllowNull] (NamedTypeSymbol Type, bool IsExpressionTree) y) 1489public int GetHashCode([DisallowNull] (NamedTypeSymbol Type, bool IsExpressionTree) obj)
CodeGen\CodeGenerator.cs (1)
186returnTypeWithAnnotations = ((NamedTypeSymbol)returnType).TypeArgumentsWithAnnotationsNoUseSiteDiagnostics[0];
CodeGen\CodeGenerator_HasHome.cs (2)
75if (!IsAnyReadOnly(addressKind) && containingSymbol is MethodSymbol { ContainingSymbol: NamedTypeSymbol, IsEffectivelyReadOnly: true }) 245if (!TypeSymbol.Equals(field.ContainingType, containingSymbol.ContainingSymbol as NamedTypeSymbol, TypeCompareKind.AllIgnoreOptions))
CodeGen\EmitAddress.cs (1)
568var fixedImpl = field.FixedImplementationType(_module);
CodeGen\EmitArrayInitializer.cs (4)
397private bool TryEmitOptimizedReadonlySpanCreation(NamedTypeSymbol spanType, BoundExpression wrappedExpression, bool used, BoundExpression inPlaceTarget, out bool avoidInPlace, BoundExpression? start = null, BoundExpression? length = null) 630bool tryEmitAsCachedArrayFromBlob(NamedTypeSymbol spanType, BoundExpression wrappedExpression, int elementCount, ImmutableArray<byte> data, ref ArrayTypeSymbol arrayType, TypeSymbol elementType) 680bool tryEmitAsCachedArrayOfConstants(BoundArrayCreation arrayCreation, ArrayTypeSymbol arrayType, TypeSymbol elementType, NamedTypeSymbol spanType, bool used, BoundExpression? inPlaceTarget, out bool avoidInPlace) 754void emitEmptyReadonlySpan(NamedTypeSymbol spanType, BoundExpression wrappedExpression, bool used, BoundExpression? inPlaceTarget)
CodeGen\EmitConversion.cs (4)
71var typeTo = (NamedTypeSymbol)expression.Type; 324fromType = ((NamedTypeSymbol)fromType).EnumUnderlyingType; 333toType = ((NamedTypeSymbol)toType).EnumUnderlyingType;
CodeGen\EmitExpression.cs (12)
179var thisType = _method.ContainingType; 1031elementType = ((NamedTypeSymbol)elementType).EnumUnderlyingType; 1447type = ((NamedTypeSymbol)type).EnumUnderlyingType; 1685if (receiver is not BoundTypeExpression { Type: TypeParameterSymbol or NamedTypeSymbol { IsUnionType: true } }) 1879NamedTypeSymbol methodContainingType = method.ContainingType; 2214private bool IsReadOnlyCall(MethodSymbol method, NamedTypeSymbol methodContainingType) 2344var containingType = method.ContainingType; 2508TryEmitOptimizedReadonlySpanCreation((NamedTypeSymbol)expression.Type, expression.Arguments[0], used, inPlaceTarget, out avoidInPlace, 2526if (originalDef.ContainingType.Name == NamedTypeSymbol.ValueTupleTypeName && 3261elementType = ((NamedTypeSymbol)elementType).EnumUnderlyingType; 3359type = ((NamedTypeSymbol)type).EnumUnderlyingType; 4026(to.IsInterfaceType() && from.IsInterfaceType() && !from.InterfacesAndTheirBaseInterfacesNoUseSiteDiagnostics.ContainsKey((NamedTypeSymbol)to));
CodeGen\EmitStackAllocInitializer.cs (3)
24Debug.Assert(type is PointerTypeSymbol || type is NamedTypeSymbol); 29: ((NamedTypeSymbol)type).TypeArgumentsWithAnnotationsNoUseSiteDiagnostics[0]).Type; 74var readOnlySpan = spanGetItemDefinition.ContainingType.Construct(elementType);
CodeGen\EmitStatement.cs (5)
1420var int32Type = Binder.GetSpecialType(_module.Compilation, SpecialType.System_Int32, syntaxNode, _diagnostics); 1448var charType = Binder.GetSpecialType(_module.Compilation, SpecialType.System_Char, syntaxNode, _diagnostics); 1551var UInt32Type = Binder.GetSpecialType(_module.Compilation, SpecialType.System_UInt32, syntaxNode, _diagnostics); 1667var spanCharLengthMethod = spanTLengthMethod.AsMember((NamedTypeSymbol)keyType); 1692var spanCharLengthMethod = spanTIndexerMethod.AsMember((NamedTypeSymbol)keyType);
CodeGen\Optimizer.cs (2)
1181if ((method.IsAbstract || method.IsVirtual) && receiver is BoundTypeExpression { Type: TypeParameterSymbol or NamedTypeSymbol { IsUnionType: true } } typeExpression) 2322if (receiverOpt is BoundTypeExpression { AliasOpt: null, BoundContainingTypeOpt: null, BoundDimensionsOpt: { IsEmpty: true }, Type: TypeParameterSymbol or NamedTypeSymbol { IsUnionType: true } } typeExpression)
Compilation\AttributeSemanticModel.cs (5)
23NamedTypeSymbol attributeType, 39public static AttributeSemanticModel Create(PublicSemanticModel containingSemanticModel, AttributeSyntax syntax, NamedTypeSymbol attributeType, AliasSymbol aliasOpt, Symbol? attributeTarget, Binder rootBinder, ImmutableDictionary<Symbol, Symbol>? parentRemappedSymbolsOpt) 48public static SpeculativeSemanticModelWithMemberModel CreateSpeculative(SyntaxTreeSemanticModel parentSemanticModel, AttributeSyntax syntax, NamedTypeSymbol attributeType, AliasSymbol aliasOpt, Binder rootBinder, ImmutableDictionary<Symbol, Symbol> parentRemappedSymbolsOpt, int position) 53private NamedTypeSymbol AttributeType 57return (NamedTypeSymbol)MemberSymbol;
Compilation\BuiltInOperators.cs (2)
693Debug.Assert(((NamedTypeSymbol)readonlySpanOfByte).TypeArgumentsWithAnnotationsNoUseSiteDiagnostics.Single().Type.SpecialType is SpecialType.System_Byte); 837var typeArgument = kind.OperandTypes() switch
Compilation\CSharpCompilation.cs (27)
60private NamedTypeSymbol? _lazyScriptClass = ErrorTypeSymbol.UnknownResultType; 151private ConcurrentCache<TypeSymbol, NamedTypeSymbol>? _lazyTypeToNullableVersion; 1617internal new NamedTypeSymbol? ScriptClass 1744internal NamedTypeSymbol GetSpecialType(ExtendedSpecialType specialType) 1751NamedTypeSymbol result; 1766private ConcurrentCache<TypeSymbol, NamedTypeSymbol> TypeToNullableVersion 1770return InterlockedOperations.Initialize(ref _lazyTypeToNullableVersion, static () => new ConcurrentCache<TypeSymbol, NamedTypeSymbol>(size: 100)); 1781internal NamedTypeSymbol GetOrCreateNullableType(TypeSymbol typeArgument) 1789if (!typeToNullableVersion.TryGetValue(typeArgument, out var constructedNullableInstance)) 1905internal new NamedTypeSymbol? GetTypeByMetadataName(string fullyQualifiedMetadataName) 1907var result = this.Assembly.GetTypeByMetadataName(fullyQualifiedMetadataName, includeReferences: true, isWellKnownType: false, conflicts: out var _); 1927internal new NamedTypeSymbol ObjectType 2001NamedTypeSymbol? mainType; 2005var scriptClass = this.ScriptClass; 2031mainType = mainTypeOrNamespace as NamedTypeSymbol; 2275if (!(method.ReturnType is NamedTypeSymbol namedType)) 2511AccessCheck.IsSymbolAccessible(symbol0, (NamedTypeSymbol)within0, ref discardedUseSiteInfo, throughType0); 3810case NamedTypeSymbol namedType: 3817public override void VisitNamedType(NamedTypeSymbol symbol) 4328var internalType = type.EnsureCSharpSymbolOrNull($"{nameof(callingConventionTypes)}[{index}]"); 4343internal new NamedTypeSymbol CreateNativeIntegerTypeSymbol(bool signed) 4363return NamedTypeSymbol.CreateTuple( 4380NamedTypeSymbol csharpUnderlyingTuple = underlyingType.EnsureCSharpSymbolOrNull(nameof(underlyingType)); 4391var tupleType = NamedTypeSymbol.CreateTuple( 4659=> IsReadOnlySpanType(type) && ((NamedTypeSymbol)type).TypeArgumentsWithAnnotationsNoUseSiteDiagnostics[0].SpecialType == SpecialType.System_Byte; 4897var typeSymbol = GetSpecialType(type);
Compilation\CSharpSemanticModel.cs (19)
417NamedTypeSymbol attributeType = (NamedTypeSymbol)binder.BindType(attribute.Name, BindingDiagnosticBag.Discarded, out aliasOpt).Type; 1611if ((object)containingType != null && containingType.Kind == SymbolKind.NamedType && ((NamedTypeSymbol)containingType).IsScriptClass) 2783var attributeType = (NamedTypeSymbol)binder.BindType(attribute.Name, BindingDiagnosticBag.Discarded, out aliasOpt).Type; 3610var namedType = (NamedTypeSymbol)attribute.Type; 3619if (candidateSymbols.Length == 1 && candidateSymbols[0] is NamedTypeSymbol) 3621namedType = (NamedTypeSymbol)candidateSymbols[0]; 3702NamedTypeSymbol containingType = binder.ContainingType; 3750private static ParameterSymbol GetThisParameter(TypeSymbol typeOfThis, NamedTypeSymbol containingType, Symbol containingMember, out LookupResultKind resultKind) 3889var objectType = binaryOperator.Type.ContainingAssembly.GetSpecialType(SpecialType.System_Object); 3994NamedTypeSymbol typeSymbol = null; 4015typeSymbol = (NamedTypeSymbol)unwrappedSymbols[0]; 4026typeSymbol = unwrappedSymbols[0] as NamedTypeSymbol; 4040NamedTypeSymbol typeSymbolOpt, 5219return (GetSymbolInfo(tupleTypeSyntax, cancellationToken).Symbol.GetSymbol() as NamedTypeSymbol)?.TupleElements.ElementAtOrDefault(tupleTypeSyntax.Elements.IndexOf(declarationSyntax)).GetPublicSymbol(); 5241typeDeclaration, namedType.GetSymbol<NamedTypeSymbol>()); 5297protected static SynthesizedPrimaryConstructor TryGetSynthesizedPrimaryConstructor(TypeDeclarationSyntax node, NamedTypeSymbol type)
Compilation\MemberSemanticModel.cs (6)
1126var anonymousType = bound.Type as NamedTypeSymbol; 1142return (bound == null) ? null : (bound.Type as NamedTypeSymbol).GetPublicSymbol(); 1163var tupleLiteralType = GetTypeOfTupleLiteral(tupleLiteral); 1179private NamedTypeSymbol GetTypeOfTupleLiteral(TupleExpressionSyntax declaratorSyntax) 1183return (bound as BoundTupleExpression)?.Type as NamedTypeSymbol;
Compilation\PublicSemanticModel.cs (2)
20var attributeType = (NamedTypeSymbol)enclosingBinder.BindType(attribute.Name, BindingDiagnosticBag.Discarded, out aliasOpt).Type;
Compilation\SpeculativeSemanticModelWithMemberModel.cs (1)
45NamedTypeSymbol attributeType,
Compilation\SyntaxTreeSemanticModel.cs (10)
760internal PublicSemanticModel CreateSpeculativeAttributeSemanticModel(int position, AttributeSyntax attribute, Binder binder, AliasSymbol aliasOpt, NamedTypeSymbol attributeType) 1377private NamedTypeSymbol GetDeclaredType(BaseTypeDeclarationSyntax declarationSyntax) 1390private NamedTypeSymbol GetDeclaredExtension(ExtensionBlockDeclarationSyntax extensionDeclaration) 1402if (symbol is NamedTypeSymbol { IsExtension: true } && symbol.HasLocationContainedWithin(this.SyntaxTree, declarationSpan, out var wasZeroWidthMatch)) 1405return (NamedTypeSymbol)symbol; 1412private NamedTypeSymbol GetDeclaredType(DelegateDeclarationSyntax declarationSyntax) 1420private NamedTypeSymbol GetDeclaredNamedType(CSharpSyntaxNode declarationSyntax, string name) 1428return GetDeclaredMember(container, declarationSyntax.Span, isKnownToBeANamespace: false, name) as NamedTypeSymbol; 2141var delegateType = (GetDeclaredSymbol(memberDecl, cancellationToken) as INamedTypeSymbol).GetSymbol(); 2217case NamedTypeSymbol typeSymbol:
Compiler\ClsComplianceChecker.cs (32)
237public override void VisitNamedType(NamedTypeSymbol symbol) 273private bool HasAcceptableAttributeConstructor(NamedTypeSymbol attributeType) 450CheckMemberDistinctness((NamedTypeSymbol)symbol); 473NamedTypeSymbol type = (NamedTypeSymbol)symbol; 501NamedTypeSymbol containingType = symbol.ContainingType; 512private void CheckBaseTypeCompliance(NamedTypeSymbol symbol) 520foreach (NamedTypeSymbol interfaceType in symbol.InterfacesNoUseSiteDiagnostics()) 531NamedTypeSymbol baseType = symbol.EnumUnderlyingType ?? symbol.BaseTypeNoUseSiteDiagnostics; // null for interfaces 545NamedTypeSymbol containingType = symbol.ContainingType; 553private void CheckTypeParameterCompliance(ImmutableArray<TypeParameterSymbol> typeParameters, NamedTypeSymbol context) 572private void CheckParameterCompliance(ImmutableArray<ParameterSymbol> parameters, NamedTypeSymbol context) 747symbol = ((NamedTypeSymbol)symbol).DelegateInvokeMethod; 812NamedTypeSymbol type = (NamedTypeSymbol)symbol; 819foreach (NamedTypeSymbol @interface in type.InterfacesAndTheirBaseInterfacesNoUseSiteDiagnostics.Keys) // NOTE: would be hand-rolled in a standalone component. 835NamedTypeSymbol baseType = type.BaseTypeNoUseSiteDiagnostics; 981private bool IsCompliantType(TypeSymbol type, NamedTypeSymbol context) 1006return IsCompliantType((NamedTypeSymbol)type, context); 1012private bool IsCompliantType(NamedTypeSymbol type, NamedTypeSymbol context) 1063private static bool IsInaccessibleBecauseOfConstruction(NamedTypeSymbol type, NamedTypeSymbol context) 1068Dictionary<NamedTypeSymbol, NamedTypeSymbol> containingTypes = null; // maps definition to constructed 1070NamedTypeSymbol containingType = type.ContainingType; 1075containingTypes = new Dictionary<NamedTypeSymbol, NamedTypeSymbol>(); 1094NamedTypeSymbol contextBaseType = context; 1097NamedTypeSymbol containingType; 1192NamedTypeSymbol attributeClass = data.AttributeClass; 1269return symbol.Kind == SymbolKind.NamedType && ((NamedTypeSymbol)symbol).IsImplicitClass;
Compiler\DocumentationCommentCompiler.cs (3)
217public override void VisitNamedType(NamedTypeSymbol symbol) 245if (member is NamedTypeSymbol { IsExtension: true }) 758MethodSymbol delegateInvoke = ((NamedTypeSymbol)symbol).DelegateInvokeMethod;
Compiler\DocumentationCommentCompiler.IncludeElementExpander.cs (4)
570NamedTypeSymbol typeSymbol = (NamedTypeSymbol)memberSymbol; 592NamedTypeSymbol typeSymbol = (NamedTypeSymbol)currentSymbol;
Compiler\MethodBodySynthesizer.cs (8)
38var objectType = constructor.ContainingAssembly.GetSpecialType(SpecialType.System_Object); 94var intType = compilation.GetSpecialType(SpecialType.System_Int32); 95var objectType = compilation.GetSpecialType(SpecialType.System_Object); 244NamedTypeSymbol fieldType = (NamedTypeSymbol)field.Type; 282field.IsStatic || field.ContainingSymbol is NamedTypeSymbol { IsExtension: true } ? null : new BoundThisReference(syntax, accessor.ThisParameter.Type), 378BoundThisReference fieldReceiver = eventSymbol.IsStatic || eventSymbol.ContainingSymbol is NamedTypeSymbol { IsExtension: true } ? 597NamedTypeSymbol baseType = method.ContainingType.BaseTypeNoUseSiteDiagnostics;
Compiler\MethodBodySynthesizer.Lowered.cs (5)
148NamedTypeSymbol spanChar = F.WellKnownType(_isReadOnlySpan 384NamedTypeSymbol equalityComparerType = system_Collections_Generic_EqualityComparer_T__GetHashCode.ContainingType; 385NamedTypeSymbol constructedEqualityComparer = equalityComparerType.Construct(valueToHash.Type); 418NamedTypeSymbol equalityComparerType = equalityComparer_Equals.ContainingType; 426var constructedEqualityComparer = equalityComparerType.Construct(field.Type);
Compiler\MethodCompiler.cs (6)
175methodCompiler.CompileSynthesizedMethods([(NamedTypeSymbol)hotReloadException], diagnostics); 417public override object VisitNamedType(NamedTypeSymbol symbol, TypeCompilationState arg) 440private Task CompileNamedTypeAsync(NamedTypeSymbol symbol) 455private void CompileNamedType(NamedTypeSymbol containingType) 710private void CompileSynthesizedMethods(ImmutableArray<NamedTypeSymbol> additionalTypes, BindingDiagnosticBag diagnostics) 714foreach (var additionalType in additionalTypes)
Compiler\ModuleCompilationState.cs (1)
11internal sealed class ModuleCompilationState : ModuleCompilationState<NamedTypeSymbol, MethodSymbol>
Compiler\SynthesizedMetadataCompiler.cs (1)
62public override void VisitNamedType(NamedTypeSymbol symbol)
Compiler\TypeCompilationState.cs (4)
57private readonly NamedTypeSymbol? _typeOpt; 82public TypeCompilationState(NamedTypeSymbol? typeOpt, CSharpCompilation compilation, PEModuleBuilder? moduleBuilderOpt) 92public NamedTypeSymbol Type 106public NamedTypeSymbol? DynamicOperationContextType
DocumentationComments\DocumentationCommentIDVisitor.cs (1)
69public override object VisitNamedType(NamedTypeSymbol symbol, StringBuilder builder)
DocumentationComments\DocumentationCommentIDVisitor.PartVisitor.cs (4)
159Debug.Assert(containingSymbol is NamedTypeSymbol); 163for (NamedTypeSymbol curr = containingSymbol.ContainingType; (object)curr != null; curr = curr.ContainingType) 175public override object VisitNamedType(NamedTypeSymbol symbol, StringBuilder builder) 178if ((object)containingSymbol != null && (containingSymbol.Name.Length != 0 || containingSymbol is NamedTypeSymbol { IsExtension: true }))
Emitter\EditAndContinue\CSharpSymbolMatcher.cs (32)
291public override Symbol? VisitNamedType(NamedTypeSymbol sourceType) 293var originalDef = sourceType.OriginalDefinition; 299var otherDef = (NamedTypeSymbol?)Visit(originalDef); 350return (NamedTypeSymbol?)value.Type?.GetInternalSymbol(); 358return (NamedTypeSymbol?)value.Type?.GetInternalSymbol(); 363return (NamedTypeSymbol?)value.Delegate?.GetInternalSymbol(); 458SymbolKind.NamedType or SymbolKind.ErrorType => ((NamedTypeSymbol)otherContainer).TypeParameters, 473var type = (NamedTypeSymbol?)Visit(((CSharpCustomModifier)modifier).ModifierSymbol); 508var otherDelegateType = (NamedTypeSymbol?)otherTypeCandidate.Type.GetInternalSymbol(); 521bool isCorrespondingAnonymousDelegate(NamedTypeSymbol type, NamedTypeSymbol otherType) 548var otherType = (NamedTypeSymbol?)Visit(member.ContainingType); 635private bool AreNamedTypesEqual(NamedTypeSymbol type, NamedTypeSymbol other) 646private static NamedTypeSymbol SubstituteTypeParameters(NamedTypeSymbol type) 781return AreNamedTypesEqual((NamedTypeSymbol)type, (NamedTypeSymbol)other); 797var type = (NamedTypeSymbol)symbol; 854private readonly NamedTypeSymbol _systemObject; 856public DeepTranslator(NamedTypeSymbol systemObject) 891public override Symbol VisitNamedType(NamedTypeSymbol type) 893var originalDef = type.OriginalDefinition; 901var translatedOriginalDef = (NamedTypeSymbol)this.Visit(originalDef); 964var translatedType = (NamedTypeSymbol)this.Visit(((CSharpCustomModifier)modifier).ModifierSymbol);
Emitter\EditAndContinue\EmitHelpers.cs (1)
172var type = compilation.GetWellKnownType(WellKnownType.System_Runtime_CompilerServices_HotReloadException);
Emitter\EditAndContinue\PEDeltaAssemblyBuilder.cs (10)
138var type = (NamedTypeSymbol)metadataDecoder.GetTypeOfToken(handle); 154var type = (NamedTypeSymbol)metadataDecoder.GetTypeOfToken(handle); 172var type = (NamedTypeSymbol)metadataDecoder.GetTypeOfToken(handle); 309var exceptionType = Compilation.GetWellKnownType(WellKnownType.System_Exception); 310var actionOfTType = Compilation.GetWellKnownType(WellKnownType.System_Action_T); 311var stringType = Compilation.GetSpecialType(SpecialType.System_String); 312var intType = Compilation.GetSpecialType(SpecialType.System_Int32);
Emitter\Model\AttributeDataAdapter.cs (1)
180var type = this.AttributeClass;
Emitter\Model\GenericNamespaceTypeInstanceReference.cs (1)
19public GenericNamespaceTypeInstanceReference(NamedTypeSymbol underlyingNamedType)
Emitter\Model\GenericNestedTypeInstanceReference.cs (1)
18public GenericNestedTypeInstanceReference(NamedTypeSymbol underlyingNamedType)
Emitter\Model\GenericTypeInstanceReference.cs (1)
25public GenericTypeInstanceReference(NamedTypeSymbol underlyingNamedType)
Emitter\Model\MethodSymbolAdapter.cs (3)
84NamedTypeSymbol containingType = AdaptedMethodSymbol.ContainingType; 276NamedTypeSymbol container = AdaptedMethodSymbol.ContainingType; 319var containingType = AdaptedMethodSymbol.ContainingType;
Emitter\Model\NamedTypeReference.cs (2)
19protected readonly NamedTypeSymbol UnderlyingNamedType; 21public NamedTypeReference(NamedTypeSymbol underlyingNamedType)
Emitter\Model\NamedTypeSymbolAdapter.cs (15)
291NamedTypeSymbol baseType = AdaptedNamedTypeSymbol.BaseTypeNoUseSiteDiagnostics; 490foreach (NamedTypeSymbol @interface in AdaptedNamedTypeSymbol.GetInterfacesToEmit()) 658foreach (NamedTypeSymbol type in AdaptedNamedTypeSymbol.GetTypeMembers()) // Ordered. 977internal abstract ImmutableArray<NamedTypeSymbol> GetInterfacesToEmit(); 979protected ImmutableArray<NamedTypeSymbol> CalculateInterfacesToEmit() 984ArrayBuilder<NamedTypeSymbol> builder = ArrayBuilder<NamedTypeSymbol>.GetInstance(); 985HashSet<NamedTypeSymbol> seen = null; 996private static void InterfacesVisit(NamedTypeSymbol namedType, ArrayBuilder<NamedTypeSymbol> builder, ref HashSet<NamedTypeSymbol> seen) 1001foreach (NamedTypeSymbol @interface in namedType.InterfacesNoUseSiteDiagnostics()) 1006seen = new HashSet<NamedTypeSymbol>(Symbols.SymbolEqualityComparer.CLRSignature); 1072internal NamedTypeSymbolAdapter(NamedTypeSymbol underlyingNamedTypeSymbol) 1084internal NamedTypeSymbol AdaptedNamedTypeSymbol { get; }
Emitter\Model\PEAssemblyBuilder.cs (15)
29private readonly ImmutableArray<NamedTypeSymbol> _additionalTypes; 36private NamedTypeSymbol _lazyEmbeddedAttribute; 77ImmutableArray<NamedTypeSymbol> additionalTypes) 92public sealed override ImmutableArray<NamedTypeSymbol> GetAdditionalTopLevelTypes() 95internal sealed override ImmutableArray<NamedTypeSymbol> GetEmbeddedTypes(BindingDiagnosticBag diagnostics) 97var builder = ArrayBuilder<NamedTypeSymbol>.GetInstance(); 670where T : NamedTypeSymbol 672Debug.Assert(!allowUserDefinedAttribute || typeof(T) == typeof(NamedTypeSymbol)); 675var userDefinedAttribute = getExistingType(description); 703NamedTypeSymbol? getExistingType(AttributeDescription description) 706var userDefinedAttribute = _sourceAssembly.SourceModule.LookupTopLevelMetadataType(ref attributeMetadataName); 734private NamedTypeSymbol GetWellKnownType(WellKnownType type, BindingDiagnosticBag diagnostics) 736var result = _sourceAssembly.DeclaringCompilation.GetWellKnownType(type); 741private NamedTypeSymbol GetSpecialType(SpecialType type, BindingDiagnosticBag diagnostics) 743var result = _sourceAssembly.DeclaringCompilation.GetSpecialType(type);
Emitter\Model\PEModuleBuilder.cs (77)
28internal abstract class PEModuleBuilder : PEModuleBuilder<CSharpCompilation, SourceModuleSymbol, AssemblySymbol, TypeSymbol, NamedTypeSymbol, MethodSymbol, SyntaxNode, NoPia.EmbeddedTypesManager, ModuleCompilationState> 50private Dictionary<FieldSymbol, NamedTypeSymbol> _fixedImplementationTypes; 53private readonly ConcurrentDictionary<int, NamedTypeSymbol> _inlineArrayTypes = new ConcurrentDictionary<int, NamedTypeSymbol>(); 54private readonly NamedTypeSymbol[] _readOnlyListTypes = new NamedTypeSymbol[(int)SynthesizedReadOnlyListKind.List + 1]; 215internal sealed override IEnumerable<Cci.INestedTypeDefinition> GetSynthesizedNestedTypes(NamedTypeSymbol container) 389if (!((NamedTypeSymbol)member).IsExtension) 505internal virtual NamedTypeSymbol GetDynamicOperationContextType(NamedTypeSymbol contextType) 575yield return ((NamedTypeSymbol)member).GetCciAdapter(); 602foreach (var member in (symbol.IsNamespace ? symbol.GetMembers() : symbol.GetTypeMembers().Cast<NamedTypeSymbol, Symbol>())) 609if (namespaceOrType is NamedTypeSymbol { IsExtension: true }) 639foreach (var type in symbol.GetTypeMembers("")) 703internal static HashSet<NamedTypeSymbol> GetForwardedTypes(SourceAssemblySymbol sourceAssembly, ArrayBuilder<Cci.ExportedType>? builder, EmitContext? context) 705var seenTopLevelForwardedTypes = new HashSet<NamedTypeSymbol>(); 720var exportedNamesMap = new Dictionary<string, NamedTypeSymbol>(StringOrdinalComparer.Instance); 733var type = (NamedTypeSymbol)exportedType.Type.GetInternalSymbol(); 758NamedTypeSymbol contender; 790HashSet<NamedTypeSymbol> seenTopLevelTypes, 791CommonAssemblyWellKnownAttributeData<NamedTypeSymbol> wellKnownAttributeData, 800var stack = ArrayBuilder<(NamedTypeSymbol type, int parentIndex)>.GetInstance(); 803IEnumerable<NamedTypeSymbol> orderedForwardedTypes = wellKnownAttributeData.ForwardedTypes; 810foreach (NamedTypeSymbol forwardedType in orderedForwardedTypes) 812NamedTypeSymbol originalDefinition = forwardedType.OriginalDefinition; 839static void processTopItemFromStack(ArrayBuilder<(NamedTypeSymbol type, int parentIndex)> stack, EmitContext context, ArrayBuilder<Cci.ExportedType> builder) 859ImmutableArray<NamedTypeSymbol> nested = type.GetTypeMembers(); // Ordered. 927static void pushNestedTypes(ArrayBuilder<(NamedTypeSymbol type, int parentIndex)> stack, int index, ImmutableArray<NamedTypeSymbol> nested) 941static void pushAndProcessNestedTypes(ArrayBuilder<(NamedTypeSymbol type, int parentIndex)> stack, EmitContext context, int index, ImmutableArray<NamedTypeSymbol> nested, ArrayBuilder<Cci.ExportedType> builder) 966private NamedTypeSymbol GetUntranslatedSpecialType(SpecialType specialType, SyntaxNode syntaxNodeOpt, DiagnosticBag diagnostics) 970var typeSymbol = SourceModule.ContainingAssembly.GetSpecialType(specialType); 998var namedType = typeRef.GetInternalSymbol() as NamedTypeSymbol; 1107NamedTypeSymbol namedTypeSymbol, 1168NamedTypeSymbol container = namedTypeSymbol.ContainingType; 1212else if (namedTypeSymbol.NativeIntegerUnderlyingType is NamedTypeSymbol underlyingType) 1229private void CheckTupleUnderlyingType(NamedTypeSymbol namedTypeSymbol, SyntaxNode syntaxNodeOpt, DiagnosticBag diagnostics) 1235var declaredBase = namedTypeSymbol.BaseTypeNoUseSiteDiagnostics; 1264public static bool IsGenericType(NamedTypeSymbol toCheck) 1304return Translate((NamedTypeSymbol)typeSymbol, syntaxNodeOpt, diagnostics); 1402NamedTypeSymbol container = methodSymbol.ContainingType; 1476NamedTypeSymbol container = methodSymbol.ContainingType; 1615public NamedTypeSymbol SetFixedImplementationType(SourceMemberFieldSymbol field) 1619Interlocked.CompareExchange(ref _fixedImplementationTypes, new Dictionary<FieldSymbol, NamedTypeSymbol>(), null); 1624NamedTypeSymbol result; 1741NamedTypeSymbol byteType = Compilation.GetSpecialType(SpecialType.System_Byte); 1762NamedTypeSymbol byteType = Compilation.GetSpecialType(SpecialType.System_Byte); 1825NamedTypeSymbol booleanType = Compilation.GetSpecialType(SpecialType.System_Boolean); 2097internal MethodSymbol EnsureInlineArrayAsSpanExists(SyntaxNode syntaxNode, NamedTypeSymbol spanType, NamedTypeSymbol intType, DiagnosticBag diagnostics) 2114internal NamedTypeSymbol EnsureInlineArrayTypeExists(SyntaxNode syntaxNode, SyntheticBoundNodeFactory factory, int arrayLength, BindingDiagnosticBag diagnostics) 2125if (Binder.TryGetOptionalWellKnownType(Compilation, arrayWellKnownType, diagnostics, syntaxNode.Location, out var existingType)) 2143internal NamedTypeSymbol EnsureReadOnlyListTypeExists(SyntaxNode syntaxNode, SynthesizedReadOnlyListKind kind, DiagnosticBag diagnostics) 2148ref NamedTypeSymbol readOnlyListType = ref _readOnlyListTypes[(int)kind]; 2149NamedTypeSymbol typeSymbol; 2168internal MethodSymbol EnsureInlineArrayAsReadOnlySpanExists(SyntaxNode syntaxNode, NamedTypeSymbol spanType, NamedTypeSymbol intType, DiagnosticBag diagnostics) 2185internal MethodSymbol EnsureInlineArrayElementRefExists(SyntaxNode syntaxNode, NamedTypeSymbol intType, DiagnosticBag diagnostics) 2201internal MethodSymbol EnsureInlineArrayElementRefReadOnlyExists(SyntaxNode syntaxNode, NamedTypeSymbol intType, DiagnosticBag diagnostics) 2254public override ImmutableArray<NamedTypeSymbol> GetAdditionalTopLevelTypes() 2256ImmutableArray<NamedTypeSymbol> prepend = []; 2260ArrayBuilder<NamedTypeSymbol> builder = ArrayBuilder<NamedTypeSymbol>.GetInstance(_inlineArrayTypes.Count + _readOnlyListTypes.Length); 2262foreach (var type in _readOnlyListTypes) 2287public sealed override ImmutableArray<NamedTypeSymbol> GetEmbeddedTypes(DiagnosticBag diagnostics) 2298internal virtual ImmutableArray<NamedTypeSymbol> GetEmbeddedTypes(BindingDiagnosticBag diagnostics) 2313public override void AddSynthesizedDefinition(NamedTypeSymbol container, Cci.INestedTypeDefinition nestedType) 2315Debug.Assert(container is not NamedTypeSymbol { IsExtension: true } || nestedType.GetInternalSymbol() is FixedFieldImplementationType); 2319public override void AddSynthesizedDefinition(NamedTypeSymbol container, Cci.IFieldDefinition field) 2321Debug.Assert(container is not NamedTypeSymbol { IsExtension: true }); 2325public override void AddSynthesizedDefinition(NamedTypeSymbol container, Cci.IMethodDefinition method) 2327Debug.Assert(container is not NamedTypeSymbol { IsExtension: true }); 2331public override void AddSynthesizedDefinition(NamedTypeSymbol container, Cci.IPropertyDefinition property) 2333Debug.Assert(container is not NamedTypeSymbol { IsExtension: true });
Emitter\Model\PropertySymbolAdapter.cs (2)
226var containingType = AdaptedPropertySymbol.ContainingType; 253var containingType = AdaptedPropertySymbol.ContainingType;
Emitter\Model\SpecializedGenericNestedTypeInstanceReference.cs (1)
24public SpecializedGenericNestedTypeInstanceReference(NamedTypeSymbol underlyingNamedType)
Emitter\Model\SpecializedNestedTypeReference.cs (1)
21public SpecializedNestedTypeReference(NamedTypeSymbol underlyingNamedType)
Emitter\Model\SynthesizedPrivateImplementationDetailsStaticConstructor.cs (1)
18internal SynthesizedPrivateImplementationDetailsStaticConstructor(SynthesizedPrivateImplementationDetailsType privateImplementationType, NamedTypeSymbol voidType)
Emitter\Model\TypeParameterSymbolAdapter.cs (2)
231return ((NamedTypeSymbol)AdaptedTypeParameterSymbol.ContainingSymbol).GetCciAdapter(); 356return ((NamedTypeSymbol)AdaptedTypeParameterSymbol.ContainingSymbol).GetCciAdapter();
Emitter\NoPia\EmbeddedEvent.cs (5)
71NamedTypeSymbol underlyingContainingType = ContainingType.UnderlyingNamedType.AdaptedNamedTypeSymbol; 79NamedTypeSymbol sourceInterface = null; 89sourceInterface = attrData.CommonConstructorArguments[0].ValueInternal as NamedTypeSymbol; 95foreach (NamedTypeSymbol source in sourceInterface.AllInterfacesNoUseSiteDiagnostics) 128private bool EmbedMatchingInterfaceMethods(NamedTypeSymbol sourceInterface, SyntaxNode syntaxNodeOpt, DiagnosticBag diagnostics)
Emitter\NoPia\EmbeddedType.cs (4)
61foreach (NamedTypeSymbol @interface in UnderlyingNamedType.AdaptedNamedTypeSymbol.GetInterfacesToEmit()) 83NamedTypeSymbol baseType = UnderlyingNamedType.AdaptedNamedTypeSymbol.BaseTypeNoUseSiteDiagnostics; 129foreach (NamedTypeSymbol @interface in UnderlyingNamedType.AdaptedNamedTypeSymbol.GetInterfacesToEmit()) 273var stringType = TypeManager.GetSystemStringType(syntaxNodeOpt, diagnostics);
Emitter\NoPia\EmbeddedTypesManager.cs (7)
40private NamedTypeSymbol _lazySystemStringType = ErrorTypeSymbol.UnknownResultType; 62public NamedTypeSymbol GetSystemStringType(SyntaxNode syntaxNodeOpt, DiagnosticBag diagnostics) 66var typeSymbol = ModuleBeingBuilt.Compilation.GetSpecialType(SpecialType.System_String); 304NamedTypeSymbol namedType, 401NamedTypeSymbol namedType, 418NamedTypeSymbol namedType, 667NamedTypeSymbol namedType = member.AdaptedSymbol.ContainingType;
FlowAnalysis\AbstractFlowPass.cs (1)
949InputType: NamedTypeSymbol { TypeKind: TypeKind.Struct, IsUnionType: true } inputType,
FlowAnalysis\DefiniteAssignment.cs (3)
1215NamedTypeSymbol containingType = thisParameter.ContainingType; 2612var namedType = (NamedTypeSymbol)type;
FlowAnalysis\EmptyStructTypeCache.cs (18)
20private SmallDictionary<NamedTypeSymbol, bool> _cache; 29private SmallDictionary<NamedTypeSymbol, bool> Cache 33return _cache ?? (_cache = new SmallDictionary<NamedTypeSymbol, bool>(Symbols.SymbolEqualityComparer.ConsiderEverything)); 81return IsEmptyStructType(type, ConsList<NamedTypeSymbol>.Empty); 89private bool IsEmptyStructType(TypeSymbol type, ConsList<NamedTypeSymbol> typesWithMembersOfThisType) 91var nts = type as NamedTypeSymbol; 111private bool CheckStruct(ConsList<NamedTypeSymbol> typesWithMembersOfThisType, NamedTypeSymbol nts) 117typesWithMembersOfThisType = new ConsList<NamedTypeSymbol>(nts, typesWithMembersOfThisType); 127var nts = type.OriginalDefinition as NamedTypeSymbol; 135private bool CheckStructInstanceFields(ConsList<NamedTypeSymbol> typesWithMembersOfThisType, NamedTypeSymbol type) 165var nts = type as NamedTypeSymbol; 174public IEnumerable<FieldSymbol> GetStructFields(NamedTypeSymbol type, bool includeStatic) 192private FieldSymbol GetActualField(Symbol member, NamedTypeSymbol type)
FlowAnalysis\FlowAnalysisPass.cs (1)
117NamedTypeSymbol containingType = method.ContainingType;
FlowAnalysis\LocalDataFlowPass.cs (1)
174var restField = containingType.GetMembers(NamedTypeSymbol.ValueTupleRestFieldName).FirstOrDefault(s => s is not TupleVirtualElementFieldSymbol) as FieldSymbol;
FlowAnalysis\NullableWalker.cs (91)
961static ImmutableArray<Symbol> membersToBeInitialized(NamedTypeSymbol containingType, bool includeAllMembers, bool includeCurrentTypeRequiredMembers, bool includeBaseRequiredMembers) 1218var type = method.ContainingType; 1980if (node is BoundLambda boundLambda && originalSymbol is LambdaSymbol l && updatedSymbol is NamedTypeSymbol n) 2069_variables[containingSlot].Symbol.GetTypeOrReturnType().Type is NamedTypeSymbol { IsUnionType: true, UnionCaseTypes: not [] } unionType && 2777(possibleBase.IsInterfaceType() && conversionsWithoutNullability.HasImplicitConversionToOrImplementsVarianceCompatibleInterface(possibleDerived, (NamedTypeSymbol)possibleBase, ref discardedUseSiteInfo, needSupportForRefStructInterfaces: out _)); 3223type = ((NamedTypeSymbol)returnType.Type).TypeArgumentsWithAnnotationsNoUseSiteDiagnostics.Single(); 3828return type.IsErrorType() || type.IsDynamic() || type.HasUseSiteError || (type.IsAnonymousType && canIgnoreAnonymousType((NamedTypeSymbol)type)); 3830static bool canIgnoreAnonymousType(NamedTypeSymbol type) 3846(LambdaSymbol l, NamedTypeSymbol n) _ when n.IsDelegateType() => AreLambdaAndNewDelegateSimilar(l, n), 3854private static bool AreLambdaAndNewDelegateSimilar(LambdaSymbol l, NamedTypeSymbol n) 4056var allTypeArguments = ((NamedTypeSymbol)collectionFinalType).GetAllTypeArgumentsNoUseSiteDiagnostics(); 4410var containingType = constructor?.ContainingType; 4465type is NamedTypeSymbol { IsUnionType: true } unionType && 4467NamedTypeSymbol.IsSuitableUnionConstructor(constructor)) 4706var extension = symbol.OriginalDefinition.ContainingType; 4986var members = ((NamedTypeSymbol)type).GetMembersUnordered(); 5033var anonymousType = (NamedTypeSymbol)node.Type; 5121NamedTypeSymbol spanType => getSpanElementType(spanType), 5198NamedTypeSymbol spanType => setSpanElementType(spanType, inferredType), 5206static TypeWithAnnotations getSpanElementType(NamedTypeSymbol namedType) 5213static TypeSymbol setSpanElementType(NamedTypeSymbol namedType, TypeWithAnnotations elementType) 5373type = TypeWithAnnotations.Create(((NamedTypeSymbol)node.Type).OriginalDefinition.Construct(ImmutableArray.Create(type))); 5718NamedTypeSymbol extension = method.OriginalDefinition.ContainingType; 6080var containingType = this._symbol?.ContainingType; 6101for (NamedTypeSymbol baseType = effectiveBase(type); !(baseType is null); baseType = baseType.BaseTypeNoUseSiteDiagnostics) 6106foreach (NamedTypeSymbol interfaceType in inheritedInterfaces(type)) 6112static NamedTypeSymbol effectiveBase(TypeSymbol type) => type switch 6118static ImmutableArray<NamedTypeSymbol> inheritedInterfaces(TypeSymbol type) => type switch 6122_ => ImmutableArray<NamedTypeSymbol>.Empty, 7157var wellKnownType = wellKnownMethod.ContainingType; 7159var constructedType = wellKnownType.Construct(ImmutableArray.Create(parameterType)); 7974var type = method.ContainingType; 7999receiverType is NamedTypeSymbol { IsUnionType: true } unionType && 8489receiverType is NamedTypeSymbol { IsUnionType: true } unionType && 8965private void CheckExtensionConstraints(SyntaxNode syntax, NamedTypeSymbol extension) 9137var containingType = type as NamedTypeSymbol; 9157var symbolContainer = symbol.ContainingType; 9182foreach (var @interface in containingType.AllInterfacesNoUseSiteDiagnostics) 9209bool tryAsMemberOfSingleType(NamedTypeSymbol singleType, [NotNullWhen(true)] out Symbol? result) 9388var tupleOpt = (NamedTypeSymbol?)node.Type; 9427NamedTypeSymbol tupleType, 9435Debug.Assert(values.Length == (useRestField ? Math.Min(tupleType.TupleElements.Length, NamedTypeSymbol.ValueTupleRestPosition) : tupleType.TupleElements.Length)); 9443n = Math.Min(n, NamedTypeSymbol.ValueTupleRestPosition - 1); 9451values.Length == NamedTypeSymbol.ValueTupleRestPosition && 9452tupleType.GetMembers(NamedTypeSymbol.ValueTupleRestFieldName).FirstOrDefault() is FieldSymbol restField) 9454var argOrdinal = getArgumentOrdinalFromParameterOrdinal(NamedTypeSymbol.ValueTupleRestPosition - 1); 9503var valueTuple = operandType as NamedTypeSymbol; 9510var targetElements = ((NamedTypeSymbol)targetType).TupleElements; 9590Debug.Assert(targetField.TypeWithAnnotations.Type.StrippedType() is NamedTypeSymbol { IsUnionType: true }); 9691private void ReportNullabilityMismatchWithTargetDelegate(Location location, NamedTypeSymbol delegateType, BoundLambda lambda) 9889NamedTypeSymbol { TypeKind: TypeKind.Delegate, DelegateInvokeMethod: { Parameters: { } parameters } signature } => (signature, parameters), 9899var delegateType = targetType.GetDelegateType(); 10625var toType = (NamedTypeSymbol)targetType.StrippedType(); 10695targetTypeWithNullability.Type.StrippedType() is NamedTypeSymbol { IsUnionType: true } unionType && 10860Action<NamedTypeSymbol>? analysisCompletion; 10862var delegateType = (NamedTypeSymbol)node.Type; 10890TypeWithState setAnalyzedNullability(BoundDelegateCreationExpression node, NamedTypeSymbol delegateType, Action<NamedTypeSymbol>? analysisCompletion, bool isTargetTyped) 10907void setAnalyzedNullabilityAsContinuation(BoundDelegateCreationExpression node, Action<NamedTypeSymbol>? analysisCompletion) 10913var delegateType = (NamedTypeSymbol)resultTypeWithAnnotations.Type; 10921Action<NamedTypeSymbol>? visitMethodGroupArgument(BoundDelegateCreationExpression node, NamedTypeSymbol delegateType, BoundMethodGroup group) 10929Action<NamedTypeSymbol>? analyzeMethodGroupConversion(BoundDelegateCreationExpression node, NamedTypeSymbol delegateType, BoundMethodGroup group, bool isTargetTyped) 10950Action<NamedTypeSymbol>? analyzeMethodGroupConversionAsContinuation(BoundDelegateCreationExpression node, BoundMethodGroup group) 10952return (NamedTypeSymbol delegateType) => 10958Action<NamedTypeSymbol>? visitLambdaArgument(NamedTypeSymbol delegateType, BoundLambda lambda, bool isTargetTyped) 10965Action<NamedTypeSymbol>? analyzeLambdaConversion(NamedTypeSymbol delegateType, BoundLambda lambda, bool isTargetTyped) 10982Action<NamedTypeSymbol> analyzeLambdaConversionAsContinuation(BoundLambda lambda) 10984return (NamedTypeSymbol delegateType) => analyzeLambdaConversion(delegateType, lambda, isTargetTyped: false); 10987Action<NamedTypeSymbol>? visitDelegateArgument(NamedTypeSymbol delegateType, BoundExpression arg, bool isTargetTyped) 11001Action<NamedTypeSymbol>? analyzeDelegateConversion(NamedTypeSymbol delegateType, BoundExpression arg, bool isTargetTyped) 11021Action<NamedTypeSymbol> analyzeDelegateConversionAsContinuation(BoundExpression arg) 11023return (NamedTypeSymbol delegateType) => analyzeDelegateConversion(delegateType, arg, isTargetTyped: false); 11136private void VisitLambda(BoundLambda node, NamedTypeSymbol? delegateTypeOpt, Optional<LocalState> initialState = default) 11689if (expr.Type is NamedTypeSymbol { IsTupleType: true } tupleType) 12258receiverType.Type is NamedTypeSymbol { IsUnionType: true } unionType && 12337valueProperty = getValue?.AsMember((NamedTypeSymbol)containingType)?.AssociatedSymbol; 12512NamedTypeSymbol spanType = compilation.GetWellKnownType(wellKnownSpan); 12814NamedTypeSymbol extension = method.OriginalDefinition.ContainingType;
FlowAnalysis\NullableWalker.SnapshotManager.cs (2)
72internal NamedTypeSymbol? GetUpdatedDelegateTypeForLambda(LambdaSymbol lambda) 76return (NamedTypeSymbol)updatedDelegate;
Lowering\AsyncRewriter\AsyncExceptionHandlerRewriter.cs (3)
35NamedTypeSymbol containingType, 112NamedTypeSymbol containingType, 223var exceptionType = _F.SpecialType(SpecialType.System_Object);
Lowering\AsyncRewriter\AsyncMethodBuilderMemberCollection.cs (18)
34internal readonly NamedTypeSymbol BuilderType; 87NamedTypeSymbol builderType, 116var builderType = F.WellKnownType(WellKnownType.System_Runtime_CompilerServices_AsyncIteratorMethodBuilder); 150var builderType = F.WellKnownType(WellKnownType.System_Runtime_CompilerServices_AsyncVoidMethodBuilder); 184var returnType = (NamedTypeSymbol)method.ReturnType; 185NamedTypeSymbol builderType; 255var returnType = (NamedTypeSymbol)method.ReturnType; 266NamedTypeSymbol builderType; 339private static NamedTypeSymbol ValidateBuilderType(SyntheticBoundNodeFactory F, TypeSymbol builderAttributeArgument, Accessibility desiredAccessibility, bool isGeneric, bool forMethodLevelBuilder = false) 341var builderType = builderAttributeArgument as NamedTypeSymbol; 374NamedTypeSymbol builderType, 423NamedTypeSymbol builderType, 471NamedTypeSymbol builderType) 500NamedTypeSymbol builderType, 501NamedTypeSymbol returnType)
Lowering\AsyncRewriter\AsyncRewriter.AsyncIteratorRewriter.cs (24)
126NamedTypeSymbol boolType = F.SpecialType(SpecialType.System_Boolean); 200protected override void InitializeStateMachine(ArrayBuilder<BoundStatement> bodyBuilder, NamedTypeSymbol frameType, LocalSymbol stateMachineLocal) 263protected override BoundStatement GenerateStateMachineCreation(LocalSymbol stateMachineVariable, NamedTypeSymbol frameType, IReadOnlyDictionary<Symbol, CapturedSymbolReplacement> proxies) 298NamedTypeSymbol IAsyncEnumeratorOfElementType = 305var promiseType = (NamedTypeSymbol)_promiseOfValueOrEndField.Type; 313var moveNextAsyncReturnType = (NamedTypeSymbol)IAsyncEnumerableOfElementType_MoveNextAsync.ReturnType; 380.SymbolAsMember((NamedTypeSymbol)_promiseOfValueOrEndField.Type); 402.AsMember((NamedTypeSymbol)_promiseOfValueOrEndField.Type); 454.AsMember((NamedTypeSymbol)IAsyncDisposable_DisposeAsync.ReturnType); 478NamedTypeSymbol IAsyncEnumeratorOfElementType = 496NamedTypeSymbol IValueTaskSourceOfBool = 506.AsMember((NamedTypeSymbol)_promiseOfValueOrEndField.Type); 521NamedTypeSymbol IValueTaskSourceOfBool = 531.AsMember((NamedTypeSymbol)_promiseOfValueOrEndField.Type); 547NamedTypeSymbol IValueTaskSourceOfBool = 557.AsMember((NamedTypeSymbol)_promiseOfValueOrEndField.Type); 584.AsMember((NamedTypeSymbol)_promiseOfValueOrEndField.Type); 608.AsMember((NamedTypeSymbol)_promiseOfValueOrEndField.Type); 630.AsMember((NamedTypeSymbol)_promiseOfValueOrEndField.Type); 651NamedTypeSymbol IAsyncEnumerableOfElementType = 687setResultMethod = (MethodSymbol)setResultMethod.SymbolAsMember((NamedTypeSymbol)_promiseOfValueOrEndField.Type); 693setExceptionMethod = (MethodSymbol)setExceptionMethod.SymbolAsMember((NamedTypeSymbol)_promiseOfValueOrEndField.Type);
Lowering\AsyncRewriter\AsyncRewriter.cs (2)
202protected override void InitializeStateMachine(ArrayBuilder<BoundStatement> bodyBuilder, NamedTypeSymbol frameType, LocalSymbol stateMachineLocal) 214protected override BoundStatement GenerateStateMachineCreation(LocalSymbol stateMachineVariable, NamedTypeSymbol frameType, IReadOnlyDictionary<Symbol, CapturedSymbolReplacement> proxies)
Lowering\AsyncRewriter\AsyncStateMachine.cs (3)
22private readonly ImmutableArray<NamedTypeSymbol> _interfaces; 30var interfaces = ArrayBuilder<NamedTypeSymbol>.GetInstance(); 78internal override ImmutableArray<NamedTypeSymbol> InterfacesNoUseSiteDiagnostics(ConsList<TypeSymbol> basesBeingResolved)
Lowering\BoundTreeToDifferentEnclosingContextRewriter.cs (7)
204var newType = (NamedTypeSymbol)TypeMap.SubstituteType(property.ContainingType).AsTypeSymbolOnly(); 224.AsMember((NamedTypeSymbol)TypeMap.SubstituteType(property.ContainingType).AsTypeSymbolOnly()) 238.AsMember((NamedTypeSymbol)TypeMap.SubstituteType(field.ContainingType).AsTypeSymbolOnly()); 259var newType = (NamedTypeSymbol)TypeMap.SubstituteType(method.ContainingType).AsTypeSymbolOnly(); 281.AsMember((NamedTypeSymbol)TypeMap.SubstituteType(method.ContainingType).AsTypeSymbolOnly())
Lowering\ClosureConversion\ClosureConversion.cs (20)
92private readonly Dictionary<NamedTypeSymbol, Symbol> _framePointers = new Dictionary<NamedTypeSymbol, Symbol>(); 163NamedTypeSymbol thisType, 233NamedTypeSymbol thisType, 338protected override NamedTypeSymbol ContainingType 429NamedTypeSymbol translatedLambdaContainer; 592private BoundExpression FrameOfType(SyntaxNode syntax, NamedTypeSymbol frameType) 607protected override BoundExpression FramePointer(SyntaxNode syntax, NamedTypeSymbol frameClass) 678NamedTypeSymbol frameType = frame.ConstructIfGeneric(frameTypeParameters); 709BoundExpression right = FrameOfType(syntax, frameParent.Type as NamedTypeSymbol); 859FramePointer(node.Syntax, (NamedTypeSymbol)node.Type)); 912var frameType = (NamedTypeSymbol)loweredSymbol.Parameters[i].Type.OriginalDefinition; 947NamedTypeSymbol constructedFrame; 1032out NamedTypeSymbol constructedFrame) 1034var translatedLambdaContainer = synthesizedMethod.ContainingType; 1436NamedTypeSymbol translatedLambdaContainer; 1528out NamedTypeSymbol translatedLambdaContainer, 1648NamedTypeSymbol translatedLambdaContainer; 1664NamedTypeSymbol constructedFrame;
Lowering\ClosureConversion\ExpressionLambdaRewriter.cs (24)
25private NamedTypeSymbol _ExpressionType; 26private NamedTypeSymbol ExpressionType 38private NamedTypeSymbol _ParameterExpressionType; 39private NamedTypeSymbol ParameterExpressionType 51private NamedTypeSymbol _ElementInitType; 52private NamedTypeSymbol ElementInitType 64private NamedTypeSymbol _MemberBindingType; 66public NamedTypeSymbol MemberBindingType 78private readonly NamedTypeSymbol _int32Type; 80private readonly NamedTypeSymbol _objectType; 82private readonly NamedTypeSymbol _nullableType; 84private NamedTypeSymbol _MemberInfoType; 85private NamedTypeSymbol MemberInfoType 97private readonly NamedTypeSymbol _IEnumerableType; 607var e = type as NamedTypeSymbol; 742var nullable = (NamedTypeSymbol)node.Type; 818var d = node.Argument.Type as NamedTypeSymbol; 872var underlyingDelegateType = node.Type.GetDelegateType(); 1109NamedTypeSymbol iEnumerableType = _IEnumerableType.Construct(ExpressionType); 1118var anonType = (NamedTypeSymbol)node.Type;
Lowering\ClosureConversion\SynthesizedClosureMethod.cs (5)
20private readonly ImmutableArray<NamedTypeSymbol> _structEnvironments; 26NamedTypeSymbol containingType, 81var constructedStructClosures = ArrayBuilder<NamedTypeSymbol>.GetInstance(); 84NamedTypeSymbol constructed; 101_structEnvironments = ImmutableArray<NamedTypeSymbol>.CastUp(structEnvironments);
Lowering\DiagnosticsPass_Warnings.cs (5)
114NamedTypeSymbol marshalByRefType = compilation.GetWellKnownType(WellKnownType.System_MarshalByRefObject); 153var interlocked = _compilation.GetWellKnownType(WellKnownType.System_Threading_Interlocked); 355NamedTypeSymbol nt = conv.Operand.Type as NamedTypeSymbol; 362for (var t = nt; (object)t != null; t = t.BaseTypeNoUseSiteDiagnostics)
Lowering\Instrumentation\CodeCoverageInstrumenter.cs (1)
145var containingType = method.ContainingType;
Lowering\Instrumentation\LocalStateTracingInstrumenter.cs (3)
175var contextType = factory.Compilation.GetWellKnownType(WellKnownType.Microsoft_CodeAnalysis_Runtime_LocalStoreTracker); 186private static bool IsSameOrNestedType(NamedTypeSymbol type, NamedTypeSymbol otherType)
Lowering\IteratorRewriter\IteratorConstructor.cs (1)
26var intType = container.DeclaringCompilation.GetSpecialType(SpecialType.System_Int32);
Lowering\IteratorRewriter\IteratorRewriter.cs (4)
218var IEnumeratorOfElementType = F.SpecialType(SpecialType.System_Collections_Generic_IEnumerator_T).Construct(ImmutableArray.Create(_elementType)); 258var IEnumerableOfElementType = F.SpecialType(SpecialType.System_Collections_Generic_IEnumerable_T).Construct(_elementType.Type); 301protected override void InitializeStateMachine(ArrayBuilder<BoundStatement> bodyBuilder, NamedTypeSymbol frameType, LocalSymbol stateMachineLocal) 312protected override BoundStatement GenerateStateMachineCreation(LocalSymbol stateMachineVariable, NamedTypeSymbol frameType, IReadOnlyDictionary<Symbol, CapturedSymbolReplacement> proxies)
Lowering\IteratorRewriter\IteratorStateMachine.cs (4)
22private readonly ImmutableArray<NamedTypeSymbol> _interfaces; 31var interfaces = ArrayBuilder<NamedTypeSymbol>.GetInstance(); 56internal override ImmutableArray<NamedTypeSymbol> InterfacesNoUseSiteDiagnostics(ConsList<TypeSymbol> basesBeingResolved) 61internal override NamedTypeSymbol BaseTypeNoUseSiteDiagnostics => ContainingAssembly.GetSpecialType(SpecialType.System_Object);
Lowering\LocalRewriter\DelegateCacheContainer.cs (5)
18private readonly NamedTypeSymbol? _constructedContainer; 22internal DelegateCacheContainer(NamedTypeSymbol containingType, int generationOrdinal) 31internal DelegateCacheContainer(NamedTypeSymbol containingType, Symbol owner, int topLevelMethodOrdinal, int ownerUniqueId, int generationOrdinal) 33owner is NamedTypeSymbol type ? 40Debug.Assert(owner is NamedTypeSymbol { Arity: > 0 } or MethodSymbol { Arity: > 0 });
Lowering\LocalRewriter\DelegateCacheRewriter.cs (2)
151if (enclosingSymbol is NamedTypeSymbol { IsExtension: true, Arity: > 0 }) 192if (enclosingSymbol is NamedTypeSymbol { IsExtension: true, Arity: > 0 } extensionType &&
Lowering\LocalRewriter\DynamicSiteContainer.cs (2)
19(topLevelMethod.ContainingSymbol is NamedTypeSymbol { IsExtension: true } extensionType ? extensionType.TypeParameters : []).Concat( 31if (containingSymbol is NamedTypeSymbol { IsExtension: true })
Lowering\LocalRewriter\LocalRewriter.cs (3)
60NamedTypeSymbol? containingType, 88NamedTypeSymbol containingType, 334var delegateType = node.Type.GetDelegateType();
Lowering\LocalRewriter\LocalRewriter.DecisionDagRewriter.cs (2)
792NamedTypeSymbol int64Type = _factory.SpecialType(SpecialType.System_Int64); 802NamedTypeSymbol uint64Type = _factory.SpecialType(SpecialType.System_UInt64);
Lowering\LocalRewriter\LocalRewriter_BinaryOperator.cs (6)
654var boolean = _compilation.GetSpecialType(SpecialType.System_Boolean); 1662NamedTypeSymbol nullableBoolType = _compilation.GetOrCreateNullableType(boolType); 1925var nullableType2 = nullableType as NamedTypeSymbol; 1932var nullableType2 = (NamedTypeSymbol)nullableType;
Lowering\LocalRewriter\LocalRewriter_Call.cs (7)
48NamedTypeSymbol firstContainer = node.ApplicableMethods.First().ContainingType; 1280if (paramType is NamedTypeSymbol { IsInterpolatedStringHandlerType: true, IsValueType: true }) 1319NamedTypeSymbol? receiverNamedType = tryGetReceiverNamedType(methodOrIndexer, invokedAsExtensionMethod); 1327static NamedTypeSymbol? tryGetReceiverNamedType(Symbol methodOrIndexer, bool invokedAsExtensionMethod) 1331return ((MethodSymbol)methodOrIndexer).Parameters[0].Type as NamedTypeSymbol; 1337return methodOrIndexer.ContainingType.ExtensionParameter.Type as NamedTypeSymbol; 1340return (NamedTypeSymbol?)methodOrIndexer.ContainingType;
Lowering\LocalRewriter\LocalRewriter_CollectionExpression.cs (32)
212var iCollectionOfTType = _compilation.GetSpecialType(SpecialType.System_Collections_Generic_ICollection_T); 213var iCollectionOfElementType = iCollectionOfTType.Construct(((NamedTypeSymbol)targetEnumerableType).TypeArgumentsWithAnnotationsNoUseSiteDiagnostics); 233Elements: [BoundCollectionExpressionSpreadElement { Expression: { Type: NamedTypeSymbol spreadType } expr }], 259Debug.Assert(collectionType is ArrayTypeSymbol or NamedTypeSymbol); 266var namedType = (NamedTypeSymbol)collectionType; 278ArrayTypeSymbol getBackingArrayType(NamedTypeSymbol collectionType) 288BoundExpression createImmutableArray(BoundCollectionExpression node, NamedTypeSymbol immutableArrayType) 318BoundExpression? tryCreateNonArrayBackedSpan(BoundCollectionExpression node, NamedTypeSymbol spanType, bool isReadOnlySpan) 358BoundExpression createSpan(BoundCollectionExpression node, NamedTypeSymbol spanType, bool isReadOnlySpan) 411var listToArray = ((MethodSymbol)_factory.WellKnownMember(WellKnownMember.System_Collections_Generic_List_T__ToArray)).AsMember((NamedTypeSymbol)list.Type); 486Debug.Assert(node.Type is NamedTypeSymbol); 491var collectionType = (NamedTypeSymbol)node.Type; 517var synthesizedType = _factory.ModuleBuilderOpt.EnsureReadOnlyListTypeExists(syntax, kind: kind, _diagnostics.DiagnosticBag).Construct(typeArgs); 592var spanType = (NamedTypeSymbol)readonlySpanParameter.Type; 656var spanType = _factory 667var inlineArrayType = _factory.ModuleBuilderOpt.EnsureInlineArrayTypeExists(syntax, _factory, arrayLength, _diagnostics).Construct(ImmutableArray.Create(elementType)); 670var intType = _factory.SpecialType(SpecialType.System_Int32); 777return _factory.Call(rewrittenSpreadExpression, listToArrayMethod.AsMember((NamedTypeSymbol)spreadExpression.Type!)); 801return _factory.Call(rewrittenSpreadExpression, toArrayMethod.AsMember((NamedTypeSymbol)rewrittenSpreadExpression.Type!)); 993var spanOfElementType = spanCtorArray.ContainingType.Construct(arrayType.ElementType); 1001if (type is not NamedTypeSymbol namedType) 1141var spreadLength = _factory.Call(spreadOperandAsSpan, getLengthMethod.AsMember((NamedTypeSymbol)spreadOperandAsSpan.Type!)); 1142var targetSlice = _factory.Call(spanTemp, spanSliceMethod.AsMember((NamedTypeSymbol)spanTemp.Type!), indexTemp, spreadLength); 1143sideEffects.Add(_factory.Call(spreadOperandAsSpan, copyToMethod.AsMember((NamedTypeSymbol)spreadOperandAsSpan.Type!), targetSlice)); 1164var collectionType = _factory.WellKnownType(WellKnownType.System_Collections_Generic_List_T).Construct(typeArguments); 1250var spanGetItem = ((MethodSymbol)_factory.WellKnownMember(WellKnownMember.System_Span_T__get_Item)).AsMember((NamedTypeSymbol)spanTemp.Type); 1275Debug.Assert(spanTemp.Type is NamedTypeSymbol); 1278var elementType = ((NamedTypeSymbol)spanTemp.Type).TypeArgumentsWithAnnotationsNoUseSiteDiagnostics[0].Type;
Lowering\LocalRewriter\LocalRewriter_CompoundAssignmentOperator.cs (2)
617var memberContainingType = fieldOrEvent.ContainingType; 896private BoundExpression BoxReceiver(BoundExpression rewrittenReceiver, NamedTypeSymbol memberContainingType)
Lowering\LocalRewriter\LocalRewriter_ConditionalAccess.cs (1)
136loweredAccessExpression = _factory.New((NamedTypeSymbol)nodeType, loweredAccessExpression);
Lowering\LocalRewriter\LocalRewriter_Conversion.cs (20)
25Debug.Assert(node.Type is NamedTypeSymbol { IsInterpolatedStringHandlerType: true }); 96var byteType = ((NamedTypeSymbol)node.Type).TypeArgumentsWithAnnotationsNoUseSiteDiagnostics.Single().Type; 115result = new BoundObjectCreationExpression(node.Syntax, ctor.AsMember((NamedTypeSymbol)node.Type), utf8Bytes, _factory.Literal(0), _factory.Literal(length)); 505var underlyingTypeFrom = rewrittenOperand.Type.GetEnumUnderlyingType()!; 516var underlyingTypeTo = rewrittenType.GetEnumUnderlyingType()!; 554rewrittenType: (NamedTypeSymbol)rewrittenType); 604NamedTypeSymbol spanType = (NamedTypeSymbol)rewrittenType; 627var destinationType = (NamedTypeSymbol)rewrittenType; 668MethodSymbol implicitOperator = implicitOperatorDefinition.AsMember((NamedTypeSymbol)sourceType); 680TypeWithAnnotations sourceElementType = ((NamedTypeSymbol)sourceType).TypeArgumentsWithAnnotationsNoUseSiteDiagnostics[0]; 701TypeWithAnnotations sourceElementType = ((NamedTypeSymbol)sourceType).TypeArgumentsWithAnnotationsNoUseSiteDiagnostics[0]; 922userDefinedConversionRewrittenType = ((NamedTypeSymbol)rewrittenOperand.Type.OriginalDefinition).Construct(userDefinedConversionRewrittenType); 1021NamedTypeSymbol rewrittenType) 1027var tupleTypeSymbol = (NamedTypeSymbol)rewrittenOperand.Type; 1186rewrittenOperandType = rewrittenOperandType.IsNullableType() ? ((NamedTypeSymbol)rewrittenOperandType.OriginalDefinition).Construct(typeFromUnderlying) : typeFromUnderlying; 1944var underlying = toType.GetEnumUnderlyingType(); 1957var underlying = fromType.GetEnumUnderlyingType();
Lowering\LocalRewriter\LocalRewriter_DeconstructionAssignmentOperator.cs (2)
264var tupleType = NamedTypeSymbol.CreateTuple(locationOpt: null, elementTypesWithAnnotations: builder!.SelectAsArray(e => TypeWithAnnotations.Create(e.Type)),
Lowering\LocalRewriter\LocalRewriter_Event.cs (7)
26var @interface = node.Event.ContainingType; 97NamedTypeSymbol tokenType = _factory.WellKnownType(WellKnownType.System_Runtime_InteropServices_WindowsRuntime_EventRegistrationToken); 98NamedTypeSymbol marshalType = _factory.WellKnownType(WellKnownType.System_Runtime_InteropServices_WindowsRuntime_WindowsRuntimeMarshal); 100NamedTypeSymbol actionType = _factory.WellKnownType(WellKnownType.System_Action_T).Construct(tokenType); 141NamedTypeSymbol func2Type = _factory.WellKnownType(WellKnownType.System_Func_T2).Construct(eventType, tokenType); 237NamedTypeSymbol fieldType = (NamedTypeSymbol)fieldSymbol.Type;
Lowering\LocalRewriter\LocalRewriter_Field.cs (8)
55var tupleType = tupleField.ContainingType; 57NamedTypeSymbol currentLinkType = tupleType; 74WellKnownMember wellKnownTupleRest = NamedTypeSymbol.GetTupleTypeMember(NamedTypeSymbol.ValueTupleRestPosition, NamedTypeSymbol.ValueTupleRestPosition); 75var tupleRestField = (FieldSymbol?)NamedTypeSymbol.GetWellKnownMemberInType(currentLinkType.OriginalDefinition, wellKnownTupleRest, _diagnostics, syntax); 89currentLinkType = (NamedTypeSymbol)currentLinkType.TypeArgumentsWithAnnotationsNoUseSiteDiagnostics[NamedTypeSymbol.ValueTupleRestPosition - 1].Type;
Lowering\LocalRewriter\LocalRewriter_ForEachStatement.cs (9)
88var spanType = (NamedTypeSymbol)nodeExpressionType; 94var spanType = (NamedTypeSymbol)nodeExpressionType; 331NamedTypeSymbol? idisposableTypeSymbol = null; 412var objectType = _factory.SpecialType(SpecialType.System_Object); 608NamedTypeSymbol? collectionType = (NamedTypeSymbol?)collectionExpression.Type; 772NamedTypeSymbol intType = rewriter._factory.SpecialType(SpecialType.System_Int32);
Lowering\LocalRewriter\LocalRewriter_Index.cs (1)
17NamedTypeSymbol booleanType = _compilation.GetSpecialType(SpecialType.System_Boolean);
Lowering\LocalRewriter\LocalRewriter_IndexerAccess.cs (9)
283MethodSymbol createSpan = getCreateSpanHelper(node, spanType: getItemOrSliceHelper.ContainingType, intType: (NamedTypeSymbol)getItemOrSliceHelper.Parameters[0].Type); 284getItemOrSliceHelper = getItemOrSliceHelper.AsMember((NamedTypeSymbol)createSpan.ReturnType); 384MethodSymbol getCreateSpanHelper(BoundInlineArrayAccess node, NamedTypeSymbol spanType, NamedTypeSymbol intType) 406var intType = (NamedTypeSymbol)index.Type; 454NamedTypeSymbol spanType = getItemOrSliceHelper.ContainingType; 456getItemOrSliceHelper = getItemOrSliceHelper.AsMember((NamedTypeSymbol)createSpan.ReturnType); 1107if (method is not { Name: WellKnownMemberNames.SliceMethodName, OriginalDefinition: var originalDefinition, ContainingType: NamedTypeSymbol containingType })
Lowering\LocalRewriter\LocalRewriter_ObjectCreationExpression.cs (2)
81Debug.Assert(TypeSymbol.Equals(rewrittenObjectCreation.Type, ((NamedTypeSymbol)node.Type).ComImportCoClass, TypeCompareKind.ConsiderEverything2)); 114Debug.Assert(TypeSymbol.Equals(rewrittenObjectCreation.Type, ((NamedTypeSymbol)node.Type).ComImportCoClass, TypeCompareKind.ConsiderEverything2));
Lowering\LocalRewriter\LocalRewriter_StackAlloc.cs (2)
52var spanType = (NamedTypeSymbol)type;
Lowering\LocalRewriter\LocalRewriter_StringConcat.cs (6)
154var charType = _compilation.GetSpecialType(SpecialType.System_Char); 444if (call is { Arguments: [], ReceiverOpt.Type: NamedTypeSymbol { SpecialType: SpecialType.System_Char } charType, Method: { Name: "ToString" } method } 482NamedTypeSymbol charType, 492var readOnlySpanOfChar = readOnlySpanCtorRefParamGeneric.ContainingType.Construct(charType); 669var type = (NamedTypeSymbol)expr.Type;
Lowering\LocalRewriter\LocalRewriter_StringInterpolation.cs (1)
102var boolType = _compilation.GetSpecialType(SpecialType.System_Boolean);
Lowering\LocalRewriter\LocalRewriter_SwitchExpression.cs (1)
126var objectType = _factory.SpecialType(SpecialType.System_Object);
Lowering\LocalRewriter\LocalRewriter_TupleCreationExpression.cs (15)
40return MakeTupleCreationExpression(node.Syntax, (NamedTypeSymbol)node.Type, rewrittenArguments); 43private BoundExpression MakeTupleCreationExpression(SyntaxNode syntax, NamedTypeSymbol type, ImmutableArray<BoundExpression> rewrittenArguments) 47ArrayBuilder<NamedTypeSymbol> underlyingTupleTypeChain = ArrayBuilder<NamedTypeSymbol>.GetInstance(); 48NamedTypeSymbol.GetUnderlyingTypeChain(type, underlyingTupleTypeChain); 53NamedTypeSymbol smallestType = underlyingTupleTypeChain.Pop(); 55underlyingTupleTypeChain.Count * (NamedTypeSymbol.ValueTupleRestPosition - 1), 57var smallestCtor = (MethodSymbol?)NamedTypeSymbol.GetWellKnownMemberInType(smallestType.OriginalDefinition, 58NamedTypeSymbol.GetTupleCtor(smallestType.Arity), 73NamedTypeSymbol tuple8Type = underlyingTupleTypeChain.Peek(); 74var tuple8Ctor = (MethodSymbol?)NamedTypeSymbol.GetWellKnownMemberInType(tuple8Type.OriginalDefinition, 75NamedTypeSymbol.GetTupleCtor(NamedTypeSymbol.ValueTupleRestPosition), 89(underlyingTupleTypeChain.Count - 1) * (NamedTypeSymbol.ValueTupleRestPosition - 1), 90NamedTypeSymbol.ValueTupleRestPosition - 1)
Lowering\LocalRewriter\LocalRewriter_UnaryOperator.cs (3)
133var underlyingType = loweredOperand.Type.GetEnumUnderlyingType(); 136var upconvertType = upconvertSpecialType == underlyingType.SpecialType ? 1122NamedTypeSymbol type = _compilation.GetSpecialType(specialType);
Lowering\LocalRewriter\LoweredDynamicOperationFactory.cs (14)
20private NamedTypeSymbol? _currentDynamicCallSiteContainer; 504var resultType = _factory.SpecialType(SpecialType.System_Boolean); 611NamedTypeSymbol? delegateTypeOverMethodTypeParameters = GetDelegateType(loweredReceiver, receiverRefKind, loweredArguments, refKinds, loweredRight, resultType); 612NamedTypeSymbol callSiteTypeGeneric = _factory.WellKnownType(WellKnownType.System_Runtime_CompilerServices_CallSite_T); 643var callSiteType = callSiteTypeGeneric.Construct(new[] { delegateTypeOverMethodTypeParameters }); 685private static NamedTypeSymbol CreateCallSiteContainer(SyntheticBoundNodeFactory factory, int methodOrdinal, int localFunctionOrdinal) 706internal FieldSymbol DefineCallSiteStorageSymbol(NamedTypeSymbol containerDefinition, NamedTypeSymbol delegateTypeOverMethodTypeParameters, TypeMap methodToContainerTypeParametersMap) 709var delegateTypeOverContainerTypeParameters = methodToContainerTypeParametersMap.SubstituteNamedType(delegateTypeOverMethodTypeParameters); 710var callSiteType = _factory.Compilation.GetWellKnownType(WellKnownType.System_Runtime_CompilerServices_CallSite_T); 719internal NamedTypeSymbol? GetDelegateType( 729var callSiteType = _factory.WellKnownType(WellKnownType.System_Runtime_CompilerServices_CallSite); 747var delegateType = _factory.Compilation.GetWellKnownType(wkDelegateType); 899var systemObjectType = _factory.SpecialType(SpecialType.System_Object);
Lowering\MethodToClassRewriter.cs (6)
27protected abstract BoundExpression FramePointer(SyntaxNode syntax, NamedTypeSymbol frameClass); 30protected abstract NamedTypeSymbol ContainingType { get; } 164var containingType = this.ContainingType; 323.AsMember((NamedTypeSymbol)this.VisitType(node.Field.ContainingType)); 332.AsMember((NamedTypeSymbol)this.VisitType(node.FieldSymbol.ContainingType)); 387internal BaseMethodWrapperSymbol(NamedTypeSymbol containingType, MethodSymbol methodBeingWrapped, SyntaxNode syntax, string name)
Lowering\StateMachineRewriter\CapturedSymbol.cs (6)
26public abstract BoundExpression Replacement<TArg>(SyntaxNode node, Func<NamedTypeSymbol, TArg, BoundExpression> makeFrame, TArg arg); 39public override BoundExpression Replacement<TArg>(SyntaxNode node, Func<NamedTypeSymbol, TArg, BoundExpression> makeFrame, TArg arg) 42var field = this.HoistedField.AsMember((NamedTypeSymbol)frame.Type); 57public override BoundExpression Replacement<TArg>(SyntaxNode node, Func<NamedTypeSymbol, TArg, BoundExpression> makeFrame, TArg arg) 60var field = this.HoistedField.AsMember((NamedTypeSymbol)frame.Type); 78public override BoundExpression Replacement<TArg>(SyntaxNode node, Func<NamedTypeSymbol, TArg, BoundExpression> makeFrame, TArg arg)
Lowering\StateMachineRewriter\MethodToStateMachineRewriter.cs (2)
195protected override NamedTypeSymbol ContainingType 208protected override BoundExpression FramePointer(SyntaxNode syntax, NamedTypeSymbol frameClass)
Lowering\StateMachineRewriter\StateMachineFieldSymbol.cs (5)
32public StateMachineFieldSymbol(NamedTypeSymbol stateMachineType, TypeWithAnnotations type, string name, bool isPublic, bool isThis) 38public StateMachineFieldSymbol(NamedTypeSymbol stateMachineType, TypeSymbol type, string name, SynthesizedLocalKind synthesizedKind, int slotIndex, bool isPublic) 43public StateMachineFieldSymbol(NamedTypeSymbol stateMachineType, TypeSymbol type, string name, LocalSlotDebugInfo slotDebugInfo, int slotIndex, bool isPublic) : 48public StateMachineFieldSymbol(NamedTypeSymbol stateMachineType, TypeWithAnnotations type, string name, LocalSlotDebugInfo slotDebugInfo, int slotIndex, bool isPublic) 93public StateMachineFieldSymbolForRegularParameter(NamedTypeSymbol stateMachineType, TypeWithAnnotations type, string name, ParameterSymbol parameter, bool isPublic)
Lowering\StateMachineRewriter\StateMachineRewriter.cs (4)
81protected abstract void InitializeStateMachine(ArrayBuilder<BoundStatement> bodyBuilder, NamedTypeSymbol frameType, LocalSymbol stateMachineLocal); 86protected abstract BoundStatement GenerateStateMachineCreation(LocalSymbol stateMachineVariable, NamedTypeSymbol frameType, IReadOnlyDictionary<Symbol, CapturedSymbolReplacement> proxies); 243var containingType = method.ContainingType; 296var frameType = method.IsGenericMethod ? stateMachineType.Construct(method.TypeArgumentsWithAnnotations, unbound: false) : stateMachineType;
Lowering\StateMachineRewriter\StateMachineTypeSymbol.cs (1)
62var kickoffType = KickoffMethod.ContainingType;
Lowering\SynthesizedMethodBaseSymbol.cs (1)
33protected SynthesizedMethodBaseSymbol(NamedTypeSymbol containingType,
Lowering\SynthesizedSubmissionFields.cs (3)
25private readonly NamedTypeSymbol _declaringSubmissionClass; 31public SynthesizedSubmissionFields(CSharpCompilation compilation, NamedTypeSymbol submissionClass) 94internal void AddToType(NamedTypeSymbol containingType, PEModuleBuilder moduleBeingBuilt)
Lowering\SyntheticBoundNodeFactory.cs (18)
57private NamedTypeSymbol? _currentType; 58public NamedTypeSymbol? CurrentType 119public SyntheticBoundNodeFactory(MethodSymbol? topLevelMethodOpt, NamedTypeSymbol? currentClassOpt, SyntaxNode node, TypeCompilationState compilationState, BindingDiagnosticBag diagnostics, InstrumentationState? instrumentationState = null) 152public void AddNestedType(NamedTypeSymbol nestedType) 159public void OpenNestedType(NamedTypeSymbol nestedType) 215public void AddField(NamedTypeSymbol containingType, FieldSymbol field) 238public BoundBaseReference Base(NamedTypeSymbol baseType) 301public NamedTypeSymbol SpecialType(SpecialType st) 303NamedTypeSymbol specialType = Compilation.GetSpecialType(st); 313public NamedTypeSymbol WellKnownType(WellKnownType wt) 315NamedTypeSymbol wellKnownType = Compilation.GetWellKnownType(wt); 693var objectType = SpecialType(Microsoft.CodeAnalysis.SpecialType.System_Object); 765public BoundObjectCreationExpression New(NamedTypeSymbol type, params BoundExpression[] args) 774public BoundObjectCreationExpression New(NamedTypeSymbol type, ImmutableArray<BoundExpression> args) 1226NamedTypeSymbol baseType = CurrentFunction.ThisParameter.Type.BaseTypeNoUseSiteDiagnostics; 1336NamedTypeSymbol constructorInfo = WellKnownType(Microsoft.CodeAnalysis.WellKnownType.System_Reflection_ConstructorInfo); 1469private MethodSymbol GetMethodFromHandleMethod(NamedTypeSymbol methodContainer, TypeSymbol systemReflectionMethodOrConstructorInfo) 1493private MethodSymbol GetFieldFromHandleMethod(NamedTypeSymbol fieldContainer)
Operations\CSharpOperationFactory.cs (1)
1963var iDisposable = enumeratorInfoOpt.IsAsync
Operations\CSharpOperationFactory_Methods.cs (1)
435PropertySymbol property = AnonymousTypeManager.GetAnonymousTypeProperty(type.GetSymbol<NamedTypeSymbol>(), i);
SymbolDisplay\SymbolDisplayVisitor.Types.cs (7)
178&& symbol is Symbols.PublicModel.Symbol { UnderlyingSymbol: NamedTypeSymbol { } internalSymbol1 } 188&& symbol is Symbols.PublicModel.Symbol { UnderlyingSymbol: NamedTypeSymbol { AssociatedFileIdentifier: { } identifier } internalSymbol2 }) 340NamedTypeSymbol? underlyingTypeSymbol = (symbol as Symbols.PublicModel.NamedTypeSymbol)?.UnderlyingNamedTypeSymbol; 478private ImmutableArray<ImmutableArray<CustomModifier>> GetTypeArgumentsModifiers(NamedTypeSymbol? underlyingTypeSymbol) 542while (currentUnderlying.Arity == NamedTypeSymbol.ValueTupleRestPosition) 544tupleSymbol = (INamedTypeSymbol)currentUnderlying.TypeArguments[NamedTypeSymbol.ValueTupleRestPosition - 1]; 561NamedTypeSymbol? underlyingTypeSymbol = (symbol as Symbols.PublicModel.NamedTypeSymbol)?.UnderlyingNamedTypeSymbol;
Symbols\AbstractTypeMap.cs (21)
25internal virtual NamedTypeSymbol SubstituteTypeDeclaration(NamedTypeSymbol previous) 29NamedTypeSymbol newContainingType = SubstituteNamedType(previous.ContainingType); 41internal NamedTypeSymbol SubstituteNamedType(NamedTypeSymbol previous) 57NamedTypeSymbol oldConstructedFrom = previous.ConstructedFrom; 58NamedTypeSymbol newConstructedFrom = SubstituteTypeDeclaration(oldConstructedFrom); 102result = SubstituteNamedType((NamedTypeSymbol)previous); 142NamedTypeSymbol modifier = ((CSharpCustomModifier)customModifiers[i]).ModifierSymbol; 143var substituted = SubstituteNamedType(modifier); 195ImmutableArray<NamedTypeSymbol> interfaces = t.InterfacesNoUseSiteDiagnostics(); 200Debug.Assert(interfaces[0] is NamedTypeSymbol); // IList<T> 201interfaces = ImmutableArray.Create<NamedTypeSymbol>(SubstituteNamedType(interfaces[0])); 205Debug.Assert(interfaces[0] is NamedTypeSymbol); // IList<T> 206interfaces = ImmutableArray.Create<NamedTypeSymbol>(SubstituteNamedType(interfaces[0]), SubstituteNamedType(interfaces[1])); 408internal ImmutableArray<NamedTypeSymbol> SubstituteNamedTypes(ImmutableArray<NamedTypeSymbol> original) 410NamedTypeSymbol[] result = null; 414var t = original[i]; 415var substituted = SubstituteNamedType(t); 420result = new NamedTypeSymbol[original.Length];
Symbols\AnonymousTypes\AnonymousTypeManager.cs (6)
31public NamedTypeSymbol ConstructAnonymousTypeSymbol(AnonymousTypeDescriptor typeDescr, BindingDiagnosticBag diagnostics) 44public NamedTypeSymbol ConstructAnonymousDelegateSymbol(AnonymousTypeDescriptor typeDescr) 55internal static PropertySymbol GetAnonymousTypeProperty(NamedTypeSymbol type, int index) 67internal static ImmutableArray<TypeWithAnnotations> GetAnonymousTypeFieldTypes(NamedTypeSymbol type) 79public static NamedTypeSymbol ConstructAnonymousTypeSymbol(NamedTypeSymbol type, ImmutableArray<TypeWithAnnotations> newFieldTypes)
Symbols\AnonymousTypes\AnonymousTypeManager.SymbolCollection.cs (8)
112public NamedTypeSymbol System_Object 117public NamedTypeSymbol System_Void 122public NamedTypeSymbol System_Boolean 127public NamedTypeSymbol System_String 132public NamedTypeSymbol System_Int32 137public NamedTypeSymbol System_IntPtr 142public NamedTypeSymbol System_MulticastDelegate 147public NamedTypeSymbol System_Diagnostics_DebuggerBrowsableState
Symbols\AnonymousTypes\AnonymousTypeManager.Templates.cs (10)
179private NamedTypeSymbol ConstructAnonymousDelegateImplementationSymbol(AnonymousDelegatePublicSymbol anonymous, int generation) 408private NamedTypeSymbol ConstructAnonymousTypeImplementationSymbol(AnonymousTypePublicSymbol anonymous) 667internal ImmutableArray<NamedTypeSymbol> GetAllCreatedTemplates() 671var builder = ArrayBuilder<NamedTypeSymbol>.GetInstance(); 700internal static bool IsAnonymousTypeTemplate(NamedTypeSymbol type) 709internal static ImmutableArray<MethodSymbol> GetAnonymousTypeHiddenMethods(NamedTypeSymbol type) 718internal static NamedTypeSymbol TranslateAnonymousTypeSymbol(NamedTypeSymbol type) 733NamedTypeSymbol translatedType = TranslateAnonymousTypeSymbol(method.ContainingType); 735foreach (var member in ((NamedTypeSymbol)translatedType.OriginalDefinition).GetMembers(method.Name))
Symbols\AnonymousTypes\PublicSymbols\AnonymousManager.TypeOrDelegatePublicSymbol.cs (19)
32internal abstract NamedTypeSymbol MapToImplementationSymbol(); 36protected override NamedTypeSymbol WithTupleDataCore(TupleExtraData newData) 145internal sealed override ImmutableArray<NamedTypeSymbol> CandidateClosedSubtypeDefinitions => []; 147public sealed override ImmutableArray<NamedTypeSymbol> GetTypeMembers() 149return ImmutableArray<NamedTypeSymbol>.Empty; 152public sealed override ImmutableArray<NamedTypeSymbol> GetTypeMembers(ReadOnlyMemory<char> name) 154return ImmutableArray<NamedTypeSymbol>.Empty; 157public sealed override ImmutableArray<NamedTypeSymbol> GetTypeMembers(ReadOnlyMemory<char> name, int arity) 159return ImmutableArray<NamedTypeSymbol>.Empty; 167internal sealed override ImmutableArray<NamedTypeSymbol> InterfacesNoUseSiteDiagnostics(ConsList<TypeSymbol> basesBeingResolved) 169return ImmutableArray<NamedTypeSymbol>.Empty; 172internal sealed override ImmutableArray<NamedTypeSymbol> GetInterfacesToEmit() 177internal abstract override NamedTypeSymbol BaseTypeNoUseSiteDiagnostics { get; } 206public sealed override NamedTypeSymbol ConstructedFrom 271internal sealed override NamedTypeSymbol GetDeclaredBaseType(ConsList<TypeSymbol> basesBeingResolved) 276internal sealed override ImmutableArray<NamedTypeSymbol> GetDeclaredInterfaces(ConsList<TypeSymbol> basesBeingResolved) 278return ImmutableArray<NamedTypeSymbol>.Empty; 281internal sealed override NamedTypeSymbol AsNativeInteger() => throw ExceptionUtilities.Unreachable(); 283internal sealed override NamedTypeSymbol? NativeIntegerUnderlyingType => null;
Symbols\AnonymousTypes\PublicSymbols\AnonymousType.DelegatePublicSymbol.cs (2)
24internal override NamedTypeSymbol MapToImplementationSymbol() 39internal override NamedTypeSymbol BaseTypeNoUseSiteDiagnostics => Manager.System_MulticastDelegate;
Symbols\AnonymousTypes\PublicSymbols\AnonymousType.TypePublicSymbol.cs (2)
64internal override NamedTypeSymbol MapToImplementationSymbol() 83internal override NamedTypeSymbol BaseTypeNoUseSiteDiagnostics => Manager.System_Object;
Symbols\AnonymousTypes\SynthesizedSymbols\AnonymousType.ConstructorSymbol.cs (1)
22internal AnonymousTypeConstructorSymbol(NamedTypeSymbol container, ImmutableArray<AnonymousTypePropertySymbol> properties)
Symbols\AnonymousTypes\SynthesizedSymbols\AnonymousType.DelegateTemplateSymbol.cs (6)
235internal override ImmutableArray<NamedTypeSymbol> CandidateClosedSubtypeDefinitions => []; 243internal override ImmutableArray<NamedTypeSymbol> GetInterfacesToEmit() => ImmutableArray<NamedTypeSymbol>.Empty; 245internal override ImmutableArray<NamedTypeSymbol> InterfacesNoUseSiteDiagnostics(ConsList<TypeSymbol>? basesBeingResolved = null) => ImmutableArray<NamedTypeSymbol>.Empty; 247internal override NamedTypeSymbol BaseTypeNoUseSiteDiagnostics => Manager.System_MulticastDelegate;
Symbols\AnonymousTypes\SynthesizedSymbols\AnonymousType.EqualsMethodSymbol.cs (1)
21internal AnonymousTypeEqualsMethodSymbol(NamedTypeSymbol container)
Symbols\AnonymousTypes\SynthesizedSymbols\AnonymousType.FieldSymbol.cs (1)
110public override NamedTypeSymbol ContainingType
Symbols\AnonymousTypes\SynthesizedSymbols\AnonymousType.GetHashCodeMethodSymbol.cs (1)
27internal AnonymousTypeGetHashCodeMethodSymbol(NamedTypeSymbol container)
Symbols\AnonymousTypes\SynthesizedSymbols\AnonymousType.PropertySymbol.cs (3)
21private readonly NamedTypeSymbol _containingType; 40NamedTypeSymbol container, 173public override NamedTypeSymbol ContainingType
Symbols\AnonymousTypes\SynthesizedSymbols\AnonymousType.SynthesizedMethodBase.cs (3)
22private readonly NamedTypeSymbol _containingType; 25public SynthesizedMethodBase(NamedTypeSymbol containingType, string name) 46public override NamedTypeSymbol ContainingType
Symbols\AnonymousTypes\SynthesizedSymbols\AnonymousType.TemplateSymbol.cs (6)
110internal override ImmutableArray<NamedTypeSymbol> CandidateClosedSubtypeDefinitions => []; 142internal override ImmutableArray<NamedTypeSymbol> InterfacesNoUseSiteDiagnostics(ConsList<TypeSymbol> basesBeingResolved) 144return ImmutableArray<NamedTypeSymbol>.Empty; 147internal override ImmutableArray<NamedTypeSymbol> GetInterfacesToEmit() 149return ImmutableArray<NamedTypeSymbol>.Empty; 152internal override NamedTypeSymbol BaseTypeNoUseSiteDiagnostics => this.Manager.System_Object;
Symbols\AnonymousTypes\SynthesizedSymbols\AnonymousType.ToStringMethodSymbol.cs (1)
27internal AnonymousTypeToStringMethodSymbol(NamedTypeSymbol container)
Symbols\AnonymousTypes\SynthesizedSymbols\AnonymousType.TypeOrDelegateTemplateSymbol.cs (14)
55protected sealed override NamedTypeSymbol WithTupleDataCore(TupleExtraData newData) 196public sealed override ImmutableArray<NamedTypeSymbol> GetTypeMembers() 198return ImmutableArray<NamedTypeSymbol>.Empty; 201public sealed override ImmutableArray<NamedTypeSymbol> GetTypeMembers(ReadOnlyMemory<char> name) 203return ImmutableArray<NamedTypeSymbol>.Empty; 206public sealed override ImmutableArray<NamedTypeSymbol> GetTypeMembers(ReadOnlyMemory<char> name, int arity) 208return ImmutableArray<NamedTypeSymbol>.Empty; 236public sealed override NamedTypeSymbol ConstructedFrom 241internal abstract override NamedTypeSymbol BaseTypeNoUseSiteDiagnostics { get; } 243internal sealed override NamedTypeSymbol GetDeclaredBaseType(ConsList<TypeSymbol> basesBeingResolved) 248internal sealed override ImmutableArray<NamedTypeSymbol> GetDeclaredInterfaces(ConsList<TypeSymbol> basesBeingResolved) 250return ImmutableArray<NamedTypeSymbol>.Empty; 326internal sealed override NamedTypeSymbol AsNativeInteger() => throw ExceptionUtilities.Unreachable(); 328internal sealed override NamedTypeSymbol? NativeIntegerUnderlyingType => null;
Symbols\AnonymousTypes\SynthesizedSymbols\AnonymousType.TypeParameterSymbol.cs (3)
132internal override ImmutableArray<NamedTypeSymbol> GetInterfaces(ConsList<TypeParameterSymbol> inProgress) 134return ImmutableArray<NamedTypeSymbol>.Empty; 137internal override NamedTypeSymbol GetEffectiveBaseClass(ConsList<TypeParameterSymbol> inProgress)
Symbols\ArrayTypeSymbol.cs (26)
24private readonly NamedTypeSymbol _baseType; 28NamedTypeSymbol array) 55NamedTypeSymbol array) 78NamedTypeSymbol array) 85NamedTypeSymbol array, 86ImmutableArray<NamedTypeSymbol> constructedInterfaces) 105private static ImmutableArray<NamedTypeSymbol> GetSZArrayInterfaces( 109var constructedInterfaces = ArrayBuilder<NamedTypeSymbol>.GetInstance(); 113var iListOfT = declaringAssembly.GetSpecialType(SpecialType.System_Collections_Generic_IList_T); 119var iReadOnlyListOfT = declaringAssembly.GetSpecialType(SpecialType.System_Collections_Generic_IReadOnlyList_T); 221internal override NamedTypeSymbol BaseTypeNoUseSiteDiagnostics => _baseType; 272public override ImmutableArray<NamedTypeSymbol> GetTypeMembers() 274return ImmutableArray<NamedTypeSymbol>.Empty; 277public override ImmutableArray<NamedTypeSymbol> GetTypeMembers(ReadOnlyMemory<char> name) 279return ImmutableArray<NamedTypeSymbol>.Empty; 282public override ImmutableArray<NamedTypeSymbol> GetTypeMembers(ReadOnlyMemory<char> name, int arity) 284return ImmutableArray<NamedTypeSymbol>.Empty; 510private readonly ImmutableArray<NamedTypeSymbol> _interfaces; 514NamedTypeSymbol array, 515ImmutableArray<NamedTypeSymbol> constructedInterfaces) 549internal override ImmutableArray<NamedTypeSymbol> InterfacesNoUseSiteDiagnostics(ConsList<TypeSymbol>? basesBeingResolved = null) 573NamedTypeSymbol array) 596internal sealed override ImmutableArray<NamedTypeSymbol> InterfacesNoUseSiteDiagnostics(ConsList<TypeSymbol>? basesBeingResolved = null) 598return ImmutableArray<NamedTypeSymbol>.Empty; 607NamedTypeSymbol array) 636NamedTypeSymbol array)
Symbols\AssemblySymbol.cs (30)
329internal abstract NamedTypeSymbol? LookupDeclaredTopLevelMetadataType(ref MetadataTypeName emittedName); 341internal abstract NamedTypeSymbol LookupDeclaredOrForwardedTopLevelMetadataType(ref MetadataTypeName emittedName, ConsList<AssemblySymbol>? visitedAssemblies); 348public NamedTypeSymbol? ResolveForwardedType(string fullyQualifiedMetadataName) 362internal virtual NamedTypeSymbol? TryLookupForwardedMetadataTypeWithCycleDetection(ref MetadataTypeName emittedName, ConsList<AssemblySymbol>? visitedAssemblies) 379internal abstract IEnumerable<NamedTypeSymbol> GetAllTopLevelForwardedTypes(); 387internal abstract NamedTypeSymbol GetDeclaredSpecialType(ExtendedSpecialType type); 393internal virtual void RegisterDeclaredSpecialType(NamedTypeSymbol corType) 413internal virtual NamedTypeSymbol GetNativeIntegerType(NamedTypeSymbol underlyingType) 631internal NamedTypeSymbol GetSpecialType(ExtendedSpecialType type) 648internal NamedTypeSymbol ObjectType 661internal NamedTypeSymbol GetPrimitiveType(Microsoft.Cci.PrimitiveTypeCode type) 672public NamedTypeSymbol? GetTypeByMetadataName(string fullyQualifiedMetadataName) 679var result = this.GetTypeByMetadataName(fullyQualifiedMetadataName, includeReferences: false, isWellKnownType: false, conflicts: out var _); 710internal NamedTypeSymbol? GetTypeByMetadataName( 719NamedTypeSymbol? type; 830var symbol = (NamedTypeSymbol?)GetTypeByReflectionType(nestedTypes[i].AsType()); 867NamedTypeSymbol? symbol = GetTopLevelTypeByMetadataName(ref mdName, assemblyId, includeReferences: true, isWellKnownType: false, conflicts: out var _); 884private NamedTypeSymbol? ApplyGenericArguments(NamedTypeSymbol symbol, Type[] typeArguments, ref int currentTypeArgument) 912internal NamedTypeSymbol? GetTopLevelTypeByMetadataName( 931NamedTypeSymbol? result; 956NamedTypeSymbol? corLibCandidate = GetTopLevelTypeByMetadataName(CorLibrary, ref metadataName, assemblyOpt); 991NamedTypeSymbol? candidate = GetTopLevelTypeByMetadataName(assembly, ref metadataName, assemblyOpt); 1046bool isValidCandidate([NotNullWhen(true)] NamedTypeSymbol? candidate, bool isWellKnownType) 1054private bool IsInCorLib(NamedTypeSymbol type) 1059private bool IsValidWellKnownType(NamedTypeSymbol? result) 1072private static NamedTypeSymbol? GetTopLevelTypeByMetadataName(AssemblySymbol assembly, ref MetadataTypeName metadataName, AssemblyIdentity? assemblyOpt) 1079var result = assembly.LookupDeclaredTopLevelMetadataType(ref metadataName);
Symbols\Attributes\AttributeData.cs (5)
30public new abstract NamedTypeSymbol? AttributeClass { get; } 86internal static bool IsTargetEarlyAttribute(NamedTypeSymbol attributeType, AttributeSyntax attributeSyntax, AttributeDescription description) 114var wellKnownType = compilation.GetWellKnownType(WellKnownType.System_Security_Permissions_SecurityAttribute); 517NamedTypeSymbol attrType = this.AttributeClass; 553private static bool PermissionSetAttributeTypeHasRequiredProperty(NamedTypeSymbol permissionSetType, string propName)
Symbols\Attributes\PEAttributeData.cs (3)
22private NamedTypeSymbol? _lazyAttributeClass = ErrorTypeSymbol.UnknownResultType; // Indicates uninitialized. 34public override NamedTypeSymbol? AttributeClass 94Interlocked.CompareExchange(ref _lazyAttributeClass, (NamedTypeSymbol?)attributeClass, ErrorTypeSymbol.UnknownResultType); // Serves as a flag, so do it last.
Symbols\Attributes\RetargetingAttributeData.cs (3)
18private readonly NamedTypeSymbol? _attributeClass; 25NamedTypeSymbol? attributeClass, 40public override NamedTypeSymbol? AttributeClass => _attributeClass;
Symbols\Attributes\SourceAttributeData.cs (9)
21private readonly NamedTypeSymbol _attributeClass; 33NamedTypeSymbol attributeClass, 61internal SourceAttributeData(CSharpCompilation compilation, AttributeSyntax attributeSyntax, NamedTypeSymbol attributeClass, MethodSymbol? attributeConstructor, bool hasErrors) 78NamedTypeSymbol attributeClass, 89public override NamedTypeSymbol AttributeClass 224internal static int GetTargetAttributeSignatureIndex(CSharpCompilation compilation, NamedTypeSymbol attributeClass, MethodSymbol? attributeConstructor, AttributeDescription description) 295var namedType = (NamedTypeSymbol)parameterType; 473internal static bool IsTargetAttribute(NamedTypeSymbol attributeClass, string namespaceName, string typeName)
Symbols\Attributes\WellKnownAttributeData\TypeWellKnownAttributeData.cs (2)
18private NamedTypeSymbol _comImportCoClass; 19public NamedTypeSymbol ComImportCoClass
Symbols\BaseTypeAnalysis.cs (22)
18internal static bool TypeDependsOn(NamedTypeSymbol depends, NamedTypeSymbol on) 33private static void TypeDependsClosure(NamedTypeSymbol type, CSharpCompilation currentCompilation, HashSet<Symbol> partialClosure) 45foreach (var bt in type.GetDeclaredInterfaces(null)) 63internal static bool StructDependsOn(NamedTypeSymbol depends, NamedTypeSymbol on) 69var hs = PooledHashSet<NamedTypeSymbol>.GetInstance(); 70var typesWithCycle = PooledHashSet<NamedTypeSymbol>.GetInstance(); 71StructDependsClosure(depends, hs, typesWithCycle, ConsList<NamedTypeSymbol>.Empty.Prepend(on)); 80private static void StructDependsClosure(NamedTypeSymbol type, HashSet<NamedTypeSymbol> partialClosure, HashSet<NamedTypeSymbol> typesWithCycle, ConsList<NamedTypeSymbol> on) 112static void visitFields(NamedTypeSymbol type, HashSet<NamedTypeSymbol> partialClosure, HashSet<NamedTypeSymbol> typesWithCycle, ConsList<NamedTypeSymbol> on) 123StructDependsClosure((NamedTypeSymbol)fieldType, partialClosure, typesWithCycle, on); 144internal static ManagedKind GetManagedKind(NamedTypeSymbol type, ref CompoundUseSiteInfo<AssemblySymbol> useSiteInfo) 173static (bool definitelyManaged, bool hasGenerics) dependsOnDefinitelyManagedType(NamedTypeSymbol type, HashSet<Symbol> partialClosure, ref CompoundUseSiteInfo<AssemblySymbol> useSiteInfo) 217NamedTypeSymbol fieldNamedType = fieldType as NamedTypeSymbol;
Symbols\Compilation_WellKnownMembers.cs (19)
26private NamedTypeSymbol?[]? _lazyWellKnownTypes; 103NamedTypeSymbol type = descriptor.IsSpecialTypeMember 125internal NamedTypeSymbol GetWellKnownType(WellKnownType type) 136Interlocked.CompareExchange(ref _lazyWellKnownTypes, new NamedTypeSymbol[(int)WellKnownTypes.Count], null); 141NamedTypeSymbol? result; 232var wkType = GetWellKnownType(wellKnownType); 251internal static Symbol? GetRuntimeMember(NamedTypeSymbol declaringType, in MemberDescriptor descriptor, SignatureComparer<MethodSymbol, FieldSymbol, PropertySymbol, TypeSymbol, ParameterSymbol> comparer, AssemblySymbol? accessWithinOpt) 468var systemByte = GetSpecialType(SpecialType.System_Byte); 471var systemUnit32 = GetSpecialType(SpecialType.System_UInt32); 709var userDefinedAttribute = GetWellKnownType(attributeType); 828NamedTypeSymbol booleanType = GetSpecialType(SpecialType.System_Boolean); 842var stringType = GetSpecialType(SpecialType.System_String); 855var attributeTargetsType = GetWellKnownType(WellKnownType.System_AttributeTargets); 856var boolType = GetSpecialType(SpecialType.System_Boolean); 1143NamedTypeSymbol named = (NamedTypeSymbol)type; 1161NamedTypeSymbol named = (NamedTypeSymbol)type; 1170return (NamedTypeSymbol)named.OriginalDefinition;
Symbols\ConstraintsHelper.cs (35)
141ImmutableArray<NamedTypeSymbol> interfaces; 143NamedTypeSymbol effectiveBaseClass = corLibrary.GetSpecialType(typeParameter.HasValueTypeConstraint ? SpecialType.System_ValueType : SpecialType.System_Object); 148interfaces = ImmutableArray<NamedTypeSymbol>.Empty; 153var interfacesBuilder = ArrayBuilder<NamedTypeSymbol>.GetInstance(); 163NamedTypeSymbol constraintEffectiveBase; 227AddInterface(interfacesBuilder, (NamedTypeSymbol)constraintType.Type); 233constraintEffectiveBase = (NamedTypeSymbol)constraintType.Type; 275constraintEffectiveBase = (NamedTypeSymbol)constraintType.Type; 591((NamedTypeSymbol)type).CheckConstraints(args); 606this NamedTypeSymbol tuple, 625var underlyingTupleTypeChain = ArrayBuilder<NamedTypeSymbol>.GetInstance(); 626NamedTypeSymbol.GetUnderlyingTypeChain(tuple, underlyingTupleTypeChain); 629foreach (var underlyingTuple in underlyingTupleTypeChain) 647offset += NamedTypeSymbol.ValueTupleRestIndex; 663var location = ordinal == NamedTypeSymbol.ValueTupleRestIndex ? typeSyntax.Location : elementLocations[ordinal + offset]; 677this NamedTypeSymbol type, 718public static bool CheckConstraints(this NamedTypeSymbol type, in CheckConstraintsArgs args) 758private static bool HasDuplicateInterfaces(NamedTypeSymbol type, ConsList<TypeSymbol> basesBeingResolved) 787foreach (var i in array) 805return type.InterfacesNoUseSiteDiagnostics(basesBeingResolved).HasDuplicates<NamedTypeSymbol>(SymbolEqualityComparer.IgnoringDynamicTupleNamesAndNullability); 842NamedTypeSymbol type, 1091if (typeArgument.Type is NamedTypeSymbol { IsInterface: true } iface && SelfOrBaseHasStaticAbstractMember(iface, ref useSiteInfo, out Symbol member)) 1370if (conversions.HasBoxingConversion(typeArgument.Type.IsNullableType() ? ((NamedTypeSymbol)typeArgument.Type).ConstructedFrom : typeArgument.Type, 1376if (typeArgument.Type is NamedTypeSymbol { IsRefLikeType: true } refLike && 1408private static bool SelfOrBaseHasStaticAbstractMember(NamedTypeSymbol iface, ref CompoundUseSiteInfo<AssemblySymbol> useSiteInfo, out Symbol memberWithoutImplementation) 1421foreach (var baseInterface in iface.InterfacesAndTheirBaseInterfacesNoUseSiteDiagnostics.Keys) 1455private static void AddInterfaces(ArrayBuilder<NamedTypeSymbol> builder, ImmutableArray<NamedTypeSymbol> interfaces) 1457foreach (var @interface in interfaces) 1463private static void AddInterface(ArrayBuilder<NamedTypeSymbol> builder, NamedTypeSymbol @interface) 1484return SatisfiesPublicParameterlessConstructor((NamedTypeSymbol)typeArgument, synthesizedIfMissing: true); 1496return SatisfiesPublicParameterlessConstructor((NamedTypeSymbol)typeArgument, synthesizedIfMissing: false); 1513private static ConstructorConstraintError SatisfiesPublicParameterlessConstructor(NamedTypeSymbol type, bool synthesizedIfMissing) 1576public static bool RequiresChecking(NamedTypeSymbol type)
Symbols\ConstructedNamedTypeSymbol.cs (7)
20internal SubstitutedNestedTypeSymbol(SubstitutedNamedTypeSymbol newContainer, NamedTypeSymbol originalDefinition) 38public override NamedTypeSymbol ConstructedFrom 48protected override NamedTypeSymbol WithTupleDataCore(TupleExtraData newData) 60private readonly NamedTypeSymbol _constructedFrom; 62internal ConstructedNamedTypeSymbol(NamedTypeSymbol constructedFrom, ImmutableArray<TypeWithAnnotations> typeArgumentsWithAnnotations, bool unbound = false, TupleExtraData tupleData = null) 75protected override NamedTypeSymbol WithTupleDataCore(TupleExtraData newData) 80public override NamedTypeSymbol ConstructedFrom
Symbols\CustomModifier.cs (9)
17protected readonly NamedTypeSymbol modifier; 19private CSharpCustomModifier(NamedTypeSymbol modifier) 36public NamedTypeSymbol ModifierSymbol 48internal static CustomModifier CreateOptional(NamedTypeSymbol modifier) 53internal static CustomModifier CreateRequired(NamedTypeSymbol modifier) 69var modifier = (NamedTypeSymbol)customModifier.Modifier; 75public OptionalCustomModifier(NamedTypeSymbol modifier) 107public RequiredCustomModifier(NamedTypeSymbol modifier)
Symbols\DynamicTypeSymbol.cs (9)
87internal override NamedTypeSymbol? BaseTypeNoUseSiteDiagnostics => null; 89internal override ImmutableArray<NamedTypeSymbol> InterfacesNoUseSiteDiagnostics(ConsList<TypeSymbol>? basesBeingResolved) 91return ImmutableArray<NamedTypeSymbol>.Empty; 143public override ImmutableArray<NamedTypeSymbol> GetTypeMembers(ReadOnlyMemory<char> name) 145return ImmutableArray<NamedTypeSymbol>.Empty; 148public override ImmutableArray<NamedTypeSymbol> GetTypeMembers() 150return ImmutableArray<NamedTypeSymbol>.Empty; 210var other = t2 as NamedTypeSymbol;
Symbols\ErrorTypeSymbol.cs (28)
146internal sealed override ImmutableArray<NamedTypeSymbol> CandidateClosedSubtypeDefinitions => []; 195public override ImmutableArray<NamedTypeSymbol> GetTypeMembers() 197return ImmutableArray<NamedTypeSymbol>.Empty; 206public override ImmutableArray<NamedTypeSymbol> GetTypeMembers(ReadOnlyMemory<char> name) 208return ImmutableArray<NamedTypeSymbol>.Empty; 217public override ImmutableArray<NamedTypeSymbol> GetTypeMembers(ReadOnlyMemory<char> name, int arity) 219return ImmutableArray<NamedTypeSymbol>.Empty; 359public override NamedTypeSymbol ConstructedFrom 445internal override NamedTypeSymbol? BaseTypeNoUseSiteDiagnostics => null; 461internal override ImmutableArray<NamedTypeSymbol> InterfacesNoUseSiteDiagnostics(ConsList<TypeSymbol>? basesBeingResolved) 463return ImmutableArray<NamedTypeSymbol>.Empty; 466internal override ImmutableArray<NamedTypeSymbol> GetInterfacesToEmit() 468return ImmutableArray<NamedTypeSymbol>.Empty; 471internal override NamedTypeSymbol? GetDeclaredBaseType(ConsList<TypeSymbol> basesBeingResolved) 476internal override ImmutableArray<NamedTypeSymbol> GetDeclaredInterfaces(ConsList<TypeSymbol> basesBeingResolved) 478return ImmutableArray<NamedTypeSymbol>.Empty; 481protected override NamedTypeSymbol ConstructCore(ImmutableArray<TypeWithAnnotations> typeArguments, bool unbound) 486internal override NamedTypeSymbol AsMember(NamedTypeSymbol newOwner) 558internal override NamedTypeSymbol AsNativeInteger() => throw ExceptionUtilities.Unreachable(); 560internal override NamedTypeSymbol? NativeIntegerUnderlyingType => null; 613public override NamedTypeSymbol OriginalDefinition 685protected override NamedTypeSymbol WithTupleDataCore(TupleExtraData newData) 700public override NamedTypeSymbol ConstructedFrom 718private readonly NamedTypeSymbol _containingSymbol; 722public SubstitutedNestedErrorTypeSymbol(NamedTypeSymbol containingSymbol, ErrorTypeSymbol originalDefinition) : 739public override NamedTypeSymbol ConstructedFrom 754protected override NamedTypeSymbol WithTupleDataCore(TupleExtraData newData)
Symbols\ErrorTypeSymbol.ErrorTypeParameterSymbol.cs (3)
167internal override ImmutableArray<NamedTypeSymbol> GetInterfaces(ConsList<TypeParameterSymbol> inProgress) 169return ImmutableArray<NamedTypeSymbol>.Empty; 172internal override NamedTypeSymbol? GetEffectiveBaseClass(ConsList<TypeParameterSymbol> inProgress)
Symbols\EventSymbol.cs (2)
168internal EventSymbol GetLeastOverriddenEvent(NamedTypeSymbol? accessingTypeOpt) 265internal EventSymbol AsMember(NamedTypeSymbol newOwner)
Symbols\ExtendedErrorTypeSymbol.cs (7)
94protected override NamedTypeSymbol WithTupleDataCore(TupleExtraData newData) 167public override NamedTypeSymbol OriginalDefinition 184public override NamedTypeSymbol ConstructedFrom 192internal override NamedTypeSymbol? GetDeclaredBaseType(ConsList<TypeSymbol> basesBeingResolved) 197internal override ImmutableArray<NamedTypeSymbol> GetDeclaredInterfaces(ConsList<TypeSymbol> basesBeingResolved) 199return ImmutableArray<NamedTypeSymbol>.Empty; 318return ((NamedTypeSymbol)symbol).Arity;
Symbols\Extensions\ReceiverParameterSymbol.cs (2)
14private readonly NamedTypeSymbol _containingType; 16public ReceiverParameterSymbol(NamedTypeSymbol containingType, ParameterSymbol originalParameter) :
Symbols\Extensions\SourceExtensionImplementationMethodSymbol.cs (2)
140if (underlyingParameter.ContainingSymbol is NamedTypeSymbol) 224Debug.Assert(_underlyingParameter.ContainingSymbol is not NamedTypeSymbol);
Symbols\FieldSymbol.cs (5)
122internal virtual NamedTypeSymbol FixedImplementationType(PEModuleBuilder emitModule) 327internal virtual FieldSymbol AsMember(NamedTypeSymbol newOwner) 486var tupleElementPosition = NamedTypeSymbol.MatchesCanonicalTupleElementName(Name); 493Debug.Assert(tupleElementPosition < NamedTypeSymbol.ValueTupleRestPosition); 495WellKnownMember wellKnownMember = NamedTypeSymbol.GetTupleTypeMember(arity, tupleElementPosition);
Symbols\FunctionPointers\FunctionPointerMethodSymbol.cs (6)
210NamedTypeSymbol? specifierType; 314var attributeType = refKind switch 639internal override ImmutableArray<NamedTypeSymbol> UnmanagedCallingConventionTypes 645return ImmutableArray<NamedTypeSymbol>.Empty; 651return ImmutableArray<NamedTypeSymbol>.Empty; 654var builder = ArrayBuilder<NamedTypeSymbol>.GetInstance(modifiersToSearch.Length);
Symbols\FunctionPointers\FunctionPointerTypeSymbol.cs (8)
88internal override NamedTypeSymbol? BaseTypeNoUseSiteDiagnostics => null; 95public override ImmutableArray<NamedTypeSymbol> GetTypeMembers() => ImmutableArray<NamedTypeSymbol>.Empty; 96public override ImmutableArray<NamedTypeSymbol> GetTypeMembers(ReadOnlyMemory<char> name) => ImmutableArray<NamedTypeSymbol>.Empty; 98internal override ImmutableArray<NamedTypeSymbol> InterfacesNoUseSiteDiagnostics(ConsList<TypeSymbol>? basesBeingResolved = null) => ImmutableArray<NamedTypeSymbol>.Empty; 207internal static bool IsCallingConventionModifier(NamedTypeSymbol modifierType)
Symbols\FunctionTypeSymbol.cs (24)
37private static readonly NamedTypeSymbol Uninitialized = new UnsupportedMetadataTypeSymbol(); 40private readonly Func<Binder, BoundExpression, NamedTypeSymbol?>? _calculateDelegate; 43private NamedTypeSymbol? _lazyDelegateType; 45internal static FunctionTypeSymbol? CreateIfFeatureEnabled(SyntaxNode syntax, Binder binder, Func<Binder, BoundExpression, NamedTypeSymbol?> calculateDelegate) 52private FunctionTypeSymbol(Binder binder, Func<Binder, BoundExpression, NamedTypeSymbol?> calculateDelegate) 59internal FunctionTypeSymbol(NamedTypeSymbol delegateType) 77internal NamedTypeSymbol? GetInternalDelegateType() 85var delegateType = _calculateDelegate(_binder, _expression); 86var result = Interlocked.CompareExchange(ref _lazyDelegateType, delegateType, Uninitialized); 124internal override NamedTypeSymbol? BaseTypeNoUseSiteDiagnostics => null; 140public override ImmutableArray<NamedTypeSymbol> GetTypeMembers() => throw ExceptionUtilities.Unreachable(); 142public override ImmutableArray<NamedTypeSymbol> GetTypeMembers(ReadOnlyMemory<char> name) => throw ExceptionUtilities.Unreachable(); 158internal override ImmutableArray<NamedTypeSymbol> InterfacesNoUseSiteDiagnostics(ConsList<TypeSymbol>? basesBeingResolved = null) => ImmutableArray<NamedTypeSymbol>.Empty; 164var thisDelegateType = GetInternalDelegateType(); 166var otherDelegateType = otherType.GetInternalDelegateType(); 173var mergedDelegateType = (NamedTypeSymbol)thisDelegateType.MergeEquivalentTypes(otherDelegateType, variance); 181var thisDelegateType = GetInternalDelegateType(); 186return WithDelegateType((NamedTypeSymbol)thisDelegateType.SetNullabilityForReferenceTypes(transform)); 189private FunctionTypeSymbol WithDelegateType(NamedTypeSymbol delegateType) 191var thisDelegateType = GetInternalDelegateType(); 214var thisDelegateType = GetInternalDelegateType(); 215var otherDelegateType = otherType.GetInternalDelegateType();
Symbols\MemberSymbolExtensions.cs (11)
98return member is { ContainingSymbol: NamedTypeSymbol { IsExtension: true }, OriginalDefinition: not SynthesizedExtensionMarker }; 103return member.ContainingSymbol is NamedTypeSymbol { IsExtension: true }; 211NamedTypeSymbol extension = method.ContainingType; 232NamedTypeSymbol extension = property.ContainingType; 513internal static Symbol SymbolAsMember(this Symbol s, NamedTypeSymbol newOwner) 522return ((NamedTypeSymbol)s).AsMember(newOwner); 544return ((NamedTypeSymbol)symbol).Arity; 576return ((NamedTypeSymbol)symbol).TypeParameters; 594return ((NamedTypeSymbol)symbol).TypeArgumentsWithAnnotationsNoUseSiteDiagnostics.SelectAsArray(TypeMap.AsTypeSymbol); 650internal static bool IsDefaultValueTypeConstructor(this NamedTypeSymbol type, ConstructorInitializerSyntax initializerSyntax) 903internal static Symbol GetLeastOverriddenMember(this Symbol member, NamedTypeSymbol accessingTypeOpt)
Symbols\MergedNamespaceSymbol.cs (9)
232internal sealed override ImmutableArray<NamedTypeSymbol> GetTypeMembersUnordered() 234return ImmutableArray.CreateRange<NamedTypeSymbol>(GetMembersUnordered().OfType<NamedTypeSymbol>()); 237public sealed override ImmutableArray<NamedTypeSymbol> GetTypeMembers() 239return ImmutableArray.CreateRange<NamedTypeSymbol>(GetMembers().OfType<NamedTypeSymbol>()); 242public override ImmutableArray<NamedTypeSymbol> GetTypeMembers(ReadOnlyMemory<char> name) 245return ImmutableArray.CreateRange<NamedTypeSymbol>(_cachedLookup[name].OfType<NamedTypeSymbol>());
Symbols\Metadata\PE\DynamicTypeDecoder.cs (5)
161return TransformNamedType((NamedTypeSymbol)type); 215private NamedTypeSymbol TransformNamedType(NamedTypeSymbol namedType, bool isContaining = false) 224NamedTypeSymbol containingType = namedType.ContainingType; 225NamedTypeSymbol newContainingType;
Symbols\Metadata\PE\MemberRefMetadataDecoder.cs (4)
66NamedTypeSymbol namedType = _containingType as NamedTypeSymbol; 86private static void GetGenericTypeParameterSymbol(int position, NamedTypeSymbol namedType, out int cumulativeArity, out TypeParameterSymbol typeArgument) 93var containingType = namedType.ContainingType;
Symbols\Metadata\PE\MetadataDecoder.cs (11)
120var result = container.LookupMetadataType(ref emittedName); 123return result ?? new MissingMetadataTypeSymbol.Nested((NamedTypeSymbol)container, ref emittedName); 168var result = m.LookupTopLevelMetadataType(ref emittedName); 233var namedType = (NamedTypeSymbol)symbol; 329internal static NamedTypeSymbol SubstituteNoPiaLocalType( 338NamedTypeSymbol? result = null; 371NamedTypeSymbol? candidate = assembly.LookupDeclaredTopLevelMetadataType(ref name); 550? scope.AllInterfacesNoUseSiteDiagnostics.IndexOf((NamedTypeSymbol)targetTypeSymbol, 0, SymbolEqualityComparer.CLRSignature) != -1 570return definition.SymbolAsMember((NamedTypeSymbol)targetTypeSymbol); 578foreach (NamedTypeSymbol @interface in typeSymbol.InterfacesNoUseSiteDiagnostics())
Symbols\Metadata\PE\NativeIntegerTypeDecoder.cs (4)
100return TransformNamedType((NamedTypeSymbol)type); 108private NamedTypeSymbol? TransformNamedType(NamedTypeSymbol type) 149NamedTypeSymbol result = haveChanges ? type.WithTypeArguments(allTypeArguments.ToImmutable()) : type;
Symbols\Metadata\PE\PEAssemblySymbol.cs (2)
190internal override IEnumerable<NamedTypeSymbol> GetAllTopLevelForwardedTypes() 197internal override NamedTypeSymbol? TryLookupForwardedMetadataTypeWithCycleDetection(ref MetadataTypeName emittedName, ConsList<AssemblySymbol>? visitedAssemblies)
Symbols\Metadata\PE\PEEventSymbol.cs (4)
171NamedTypeSymbol eventRegistrationTokenTable_T = ((PEModuleSymbol)(this.ContainingModule)).EventRegistrationTokenTable_T; 173TypeSymbol.Equals(_eventTypeWithAnnotations.Type, ((NamedTypeSymbol)candidateAssociatedFieldType).TypeArgumentsWithAnnotationsNoUseSiteDiagnostics[0].Type, TypeCompareKind.ConsiderEverything2)) 194NamedTypeSymbol token = ((PEModuleSymbol)(this.ContainingModule)).EventRegistrationToken; 228public override NamedTypeSymbol ContainingType
Symbols\Metadata\PE\PEFieldSymbol.cs (4)
130private NamedTypeSymbol _lazyFixedImplementationType; 171public override NamedTypeSymbol ContainingType 337_lazyFixedImplementationType = type.Type as NamedTypeSymbol; 444internal override NamedTypeSymbol FixedImplementationType(PEModuleBuilder emitModule)
Symbols\Metadata\PE\PEMethodSymbol.cs (1)
466public override NamedTypeSymbol ContainingType => _containingType;
Symbols\Metadata\PE\PEModuleSymbol.cs (14)
50private NamedTypeSymbol? _lazySystemTypeSymbol; 51private NamedTypeSymbol? _lazyEventRegistrationTokenSymbol; 52private NamedTypeSymbol? _lazyEventRegistrationTokenTableSymbol; 441internal NamedTypeSymbol EventRegistrationToken 458internal NamedTypeSymbol EventRegistrationTokenTable_T 475internal NamedTypeSymbol SystemTypeSymbol 490private NamedTypeSymbol GetTypeSymbolForWellKnownType(WellKnownType type) 494NamedTypeSymbol? currentModuleResult = this.LookupTopLevelMetadataType(ref emittedName); 507NamedTypeSymbol? referencedAssemblyResult = null; 510NamedTypeSymbol currResult = assembly.LookupDeclaredOrForwardedTopLevelMetadataType(ref emittedName, visitedAssemblies: null); 540static bool isAcceptableSystemTypeSymbol(NamedTypeSymbol candidate) 590internal NamedTypeSymbol LookupTopLevelMetadataTypeWithNoPiaLocalTypeUnification(ref MetadataTypeName emittedName, out bool isNoPiaLocalType) 592NamedTypeSymbol? result; 653internal IEnumerable<NamedTypeSymbol> GetForwardedTypes()
Symbols\Metadata\PE\PENamedTypeSymbol.cs (61)
76private NamedTypeSymbol _lazyBaseType = ErrorTypeSymbol.UnknownResultType; 77private ImmutableArray<NamedTypeSymbol> _lazyInterfaces = default(ImmutableArray<NamedTypeSymbol>); 78private NamedTypeSymbol _lazyDeclaredBaseType = ErrorTypeSymbol.UnknownResultType; 79private ImmutableArray<NamedTypeSymbol> _lazyDeclaredInterfaces = default(ImmutableArray<NamedTypeSymbol>); 136internal NamedTypeSymbol lazyEnumUnderlyingType; 147internal NamedTypeSymbol lazyComImportCoClassType = ErrorTypeSymbol.UnknownResultType; 156internal ImmutableArray<NamedTypeSymbol> lazyCandidateClosedSubtypeDefinitions = default; 722internal override NamedTypeSymbol BaseTypeNoUseSiteDiagnostics 735internal override ImmutableArray<NamedTypeSymbol> InterfacesNoUseSiteDiagnostics(ConsList<TypeSymbol> basesBeingResolved = null) 739ImmutableInterlocked.InterlockedCompareExchange(ref _lazyInterfaces, MakeAcyclicInterfaces(), default(ImmutableArray<NamedTypeSymbol>)); 745internal override ImmutableArray<NamedTypeSymbol> GetInterfacesToEmit() 750internal override NamedTypeSymbol GetDeclaredBaseType(ConsList<TypeSymbol> basesBeingResolved) 755private NamedTypeSymbol GetDeclaredBaseType(bool skipTransformsIfNecessary) 759var baseType = MakeDeclaredBaseType(); 773baseType = (NamedTypeSymbol)NullableTypeDecoder.TransformType(TypeWithAnnotations.Create(decodedType), _handle, moduleSymbol, accessSymbol: this, nullableContext: this).Type; 782internal override ImmutableArray<NamedTypeSymbol> GetDeclaredInterfaces(ConsList<TypeSymbol> basesBeingResolved) 786ImmutableInterlocked.InterlockedCompareExchange(ref _lazyDeclaredInterfaces, MakeDeclaredInterfaces(), default(ImmutableArray<NamedTypeSymbol>)); 792private NamedTypeSymbol MakeDeclaredBaseType() 802return (NamedTypeSymbol)new MetadataDecoder(moduleSymbol, this).GetTypeOfToken(token); 814private ImmutableArray<NamedTypeSymbol> MakeDeclaredInterfaces() 823var symbols = ArrayBuilder<NamedTypeSymbol>.GetInstance(interfaceImpls.Count); 835var namedTypeSymbol = typeSymbol as NamedTypeSymbol ?? new UnsupportedMetadataTypeSymbol(); // interface list contains a bad type 842return ImmutableArray<NamedTypeSymbol>.Empty; 846return ImmutableArray.Create<NamedTypeSymbol>(new UnsupportedMetadataTypeSymbol(mrEx)); 850public override NamedTypeSymbol ConstructedFrom 866public override NamedTypeSymbol ContainingType 870return _container as NamedTypeSymbol; 936public override NamedTypeSymbol EnumUnderlyingType 1221internal sealed override ImmutableArray<NamedTypeSymbol> CandidateClosedSubtypeDefinitions 1236ImmutableArray<NamedTypeSymbol> findClosedSubtypes() 1238var subtypeDefinitionsBuilder = ArrayBuilder<NamedTypeSymbol>.GetInstance(); 1274subtypeDefinitionsBuilder.Add((NamedTypeSymbol)candidateSubtype); 1294var candidateSubtype = (NamedTypeSymbol)decoder.GetTypeOfToken(candidateTypeDefHandle); 1312NamedTypeSymbol container = this; 1655NamedTypeSymbol underlyingType = null; 1684underlyingType = (NamedTypeSymbol)type; 1993internal override ImmutableArray<NamedTypeSymbol> GetTypeMembersUnordered() 1998public override ImmutableArray<NamedTypeSymbol> GetTypeMembers() 2004private ImmutableArray<NamedTypeSymbol> GetMemberTypesPrivate() 2017return ImmutableCollectionsMarshal.AsImmutableArray<NamedTypeSymbol>(result); 2046public override ImmutableArray<NamedTypeSymbol> GetTypeMembers(ReadOnlyMemory<char> name) 2054return StaticCast<NamedTypeSymbol>.From(t); 2057return ImmutableArray<NamedTypeSymbol>.Empty; 2060public override ImmutableArray<NamedTypeSymbol> GetTypeMembers(ReadOnlyMemory<char> name, int arity) 2345private NamedTypeSymbol MakeAcyclicBaseType() 2347NamedTypeSymbol declaredBase = GetDeclaredBaseType(null); 2364private ImmutableArray<NamedTypeSymbol> MakeAcyclicInterfaces() 2973internal override NamedTypeSymbol ComImportCoClass 2991var coClassType = ((object)type != null && (type.TypeKind == TypeKind.Class || type.IsErrorType())) ? (NamedTypeSymbol)type : null; 3187protected override NamedTypeSymbol WithTupleDataCore(TupleExtraData newData) 3215internal override NamedTypeSymbol AsNativeInteger() 3226internal override NamedTypeSymbol NativeIntegerUnderlyingType => null; 3276protected sealed override NamedTypeSymbol WithTupleDataCore(TupleExtraData newData) 3321internal sealed override NamedTypeSymbol AsNativeInteger() => throw ExceptionUtilities.Unreachable(); 3323internal sealed override NamedTypeSymbol NativeIntegerUnderlyingType => null; 3377var container = this.ContainingType;
Symbols\Metadata\PE\PENamespaceSymbol.cs (10)
95private ImmutableArray<NamedTypeSymbol> GetMemberTypesPrivate() 105return StaticCast<NamedTypeSymbol>.From(_lazyFlattenedTypes); 147public sealed override ImmutableArray<NamedTypeSymbol> GetTypeMembers() 154public sealed override ImmutableArray<NamedTypeSymbol> GetTypeMembers(ReadOnlyMemory<char> name) 161? StaticCast<NamedTypeSymbol>.From(t) 162: ImmutableArray<NamedTypeSymbol>.Empty; 165public sealed override ImmutableArray<NamedTypeSymbol> GetTypeMembers(ReadOnlyMemory<char> name, int arity) 334internal NamedTypeSymbol? UnifyIfNoPiaLocalType(ref MetadataTypeName emittedTypeName) 343var result = (NamedTypeSymbol)new MetadataDecoder(ContainingPEModule).GetTypeOfToken(typeDef, out bool isNoPiaLocalType);
Symbols\Metadata\PE\PEParameterSymbol.cs (2)
882else if (paramNames.IsDefault || Type is not NamedTypeSymbol { IsInterpolatedStringHandlerType: true }) 920if (ContainingSymbol is { IsStatic: false, ContainingSymbol: NamedTypeSymbol { IsExtension: true, ExtensionParameter.Name: var extensionParameterName } }
Symbols\Metadata\PE\PEPropertySymbol.cs (1)
429public override NamedTypeSymbol ContainingType
Symbols\Metadata\PE\PETypeParameterSymbol.cs (4)
622internal override ImmutableArray<NamedTypeSymbol> GetInterfaces(ConsList<TypeParameterSymbol> inProgress) 625return (bounds != null) ? bounds.Interfaces : ImmutableArray<NamedTypeSymbol>.Empty; 628internal override NamedTypeSymbol GetEffectiveBaseClass(ConsList<TypeParameterSymbol> inProgress) 719private NamedTypeSymbol GetDefaultBaseType()
Symbols\Metadata\PE\SymbolFactory.cs (6)
100NamedTypeSymbol genericType = (NamedTypeSymbol)genericTypeDef; 109NamedTypeSymbol typeToCheck = genericType; 151NamedTypeSymbol constructedType = substitution.SubstituteNamedType(genericType); 163var namedType = type as NamedTypeSymbol;
Symbols\Metadata\PE\TupleTypeDecoder.cs (8)
28/// a <see cref="NamedTypeSymbol"/> with attached names. 194return DecodeNamedType((NamedTypeSymbol)type); 250private NamedTypeSymbol DecodeNamedType(NamedTypeSymbol type) 256NamedTypeSymbol decodedType = type; 259NamedTypeSymbol containingType = type.ContainingType; 260NamedTypeSymbol? decodedContainingType; 299decodedType = NamedTypeSymbol.CreateTuple(decodedType, elementNames);
Symbols\MetadataOrSourceAssemblySymbol.cs (8)
27private NamedTypeSymbol[] _lazySpecialTypes; 45internal sealed override NamedTypeSymbol GetDeclaredSpecialType(ExtendedSpecialType type) 58NamedTypeSymbol? result = module.LookupTopLevelMetadataType(ref emittedName); 80internal sealed override void RegisterDeclaredSpecialType(NamedTypeSymbol corType) 91new NamedTypeSymbol[(int)InternalSpecialType.NextAvailable], null); 135internal sealed override NamedTypeSymbol GetNativeIntegerType(NamedTypeSymbol underlyingType) 205NamedTypeSymbol type = GetDeclaredSpecialType(descriptor.DeclaringSpecialType);
Symbols\MethodSymbol.cs (8)
427internal MethodSymbol GetLeastOverriddenMethod(NamedTypeSymbol accessingTypeOpt) 438private MethodSymbol GetLeastOverriddenMethodCore(NamedTypeSymbol accessingTypeOpt, bool requireSameReturnType) 486internal MethodSymbol GetConstructedLeastOverriddenMethod(NamedTypeSymbol accessingTypeOpt, bool requireSameReturnType) 886if (typeArguments.Any(NamedTypeSymbol.TypeWithAnnotationsIsNullFunction)) 904internal MethodSymbol AsMember(NamedTypeSymbol newOwner) 942internal virtual ImmutableArray<NamedTypeSymbol> UnmanagedCallingConventionTypes => ImmutableArray<NamedTypeSymbol>.Empty; 1030if (!(callConvTypedConstant.ValueInternal is NamedTypeSymbol callConvType)
Symbols\MethodSymbolExtensions.cs (3)
162&& method.ReturnType is NamedTypeSymbol { Arity: 0 } 172&& method.ReturnType is NamedTypeSymbol { Arity: 1 } 221method.ContainingType is NamedTypeSymbol containingType &&
Symbols\MissingAssemblySymbol.cs (5)
171internal override NamedTypeSymbol LookupDeclaredOrForwardedTopLevelMetadataType(ref MetadataTypeName emittedName, ConsList<AssemblySymbol>? visitedAssemblies) 176internal override NamedTypeSymbol? LookupDeclaredTopLevelMetadataType(ref MetadataTypeName emittedName) 183internal override NamedTypeSymbol GetDeclaredSpecialType(ExtendedSpecialType type) 215internal sealed override IEnumerable<NamedTypeSymbol> GetAllTopLevelForwardedTypes() 217return SpecializedCollections.EmptyEnumerable<NamedTypeSymbol>();
Symbols\MissingCorLibrarySymbol.cs (4)
30private NamedTypeSymbol[] _lazySpecialTypes; 60internal override NamedTypeSymbol GetDeclaredSpecialType(ExtendedSpecialType type) 72new NamedTypeSymbol[(int)InternalSpecialType.NextAvailable], null); 78NamedTypeSymbol corType = new MissingMetadataTypeSymbol.TopLevel(this.moduleSymbol, ref emittedFullName, type);
Symbols\MissingMetadataTypeSymbol.cs (8)
206protected override NamedTypeSymbol WithTupleDataCore(TupleExtraData newData) 343internal sealed override NamedTypeSymbol AsNativeInteger() => AsNativeInteger(asNativeInt: true); 364internal sealed override NamedTypeSymbol? NativeIntegerUnderlyingType => _isNativeInt ? AsNativeInteger(asNativeInt: false) : null; 406private readonly NamedTypeSymbol _containingType; 408public Nested(NamedTypeSymbol containingType, string name, int arity, bool mangleName) 416public Nested(NamedTypeSymbol containingType, ref MetadataTypeName emittedName) 421private Nested(NamedTypeSymbol containingType, ref MetadataTypeName emittedName, bool mangleName) 445protected override NamedTypeSymbol WithTupleDataCore(TupleExtraData newData)
Symbols\MissingModuleSymbol.cs (1)
148internal override NamedTypeSymbol? LookupTopLevelMetadataType(ref MetadataTypeName emittedName)
Symbols\MissingNamespaceSymbol.cs (6)
110public override ImmutableArray<NamedTypeSymbol> GetTypeMembers() 112return ImmutableArray<NamedTypeSymbol>.Empty; 115public override ImmutableArray<NamedTypeSymbol> GetTypeMembers(ReadOnlyMemory<char> name) 117return ImmutableArray<NamedTypeSymbol>.Empty; 120public override ImmutableArray<NamedTypeSymbol> GetTypeMembers(ReadOnlyMemory<char> name, int arity) 122return ImmutableArray<NamedTypeSymbol>.Empty;
Symbols\ModuleSymbol.cs (1)
305internal abstract NamedTypeSymbol? LookupTopLevelMetadataType(ref MetadataTypeName emittedName);
Symbols\NamedTypeSymbol.cs (63)
96public abstract NamedTypeSymbol ConstructedFrom { get; } 102public virtual NamedTypeSymbol EnumUnderlyingType 110public override NamedTypeSymbol ContainingType 118return this.ContainingSymbol as NamedTypeSymbol; 440foreach (NamedTypeSymbol nestedType in GetTypeMembers(name: "")) 711internal bool TryGetClosedSubtypes(out ImmutableArray<NamedTypeSymbol> subtypes) 726var resultBuilder = ArrayBuilder<NamedTypeSymbol>.GetInstance(candidateSubtypes.Length); 742static bool tryGetSpeakableSubtypes(NamedTypeSymbol @this, ImmutableArray<NamedTypeSymbol> candidateSubtypes, ArrayBuilder<NamedTypeSymbol> resultBuilder, HashSet<TypeParameterSymbol> baseTypeTypeParameters) 744foreach (var candidateSubtype in candidateSubtypes) 766internal abstract ImmutableArray<NamedTypeSymbol> CandidateClosedSubtypeDefinitions { get; } 915public abstract override ImmutableArray<NamedTypeSymbol> GetTypeMembers(); 923public abstract override ImmutableArray<NamedTypeSymbol> GetTypeMembers(ReadOnlyMemory<char> name, int arity); 1006internal abstract NamedTypeSymbol GetDeclaredBaseType(ConsList<TypeSymbol> basesBeingResolved); 1008internal abstract ImmutableArray<NamedTypeSymbol> GetDeclaredInterfaces(ConsList<TypeSymbol> basesBeingResolved); 1044NamedTypeSymbol other = t2 as NamedTypeSymbol; 1048var thisOriginalDefinition = this.OriginalDefinition; 1049var otherOriginalDefinition = other.OriginalDefinition; 1083private bool EqualsComplicatedCases(NamedTypeSymbol other, TypeCompareKind comparison) 1139bool tupleNamesEquals(NamedTypeSymbol other, TypeCompareKind comparison) 1219NamedTypeSymbol result = haveChanges ? this.WithTypeArguments(allTypeArguments.ToImmutable()) : this; 1224internal NamedTypeSymbol WithTypeArguments(ImmutableArray<TypeWithAnnotations> allTypeArguments) 1226var definition = this.OriginalDefinition; 1242bool haveChanges = MergeEquivalentTypeArguments(this, (NamedTypeSymbol)other, variance, allTypeParameters, allTypeArguments); 1244NamedTypeSymbol result; 1258return IsTupleType ? MergeTupleNames((NamedTypeSymbol)other, result) : result; 1268NamedTypeSymbol typeA, 1269NamedTypeSymbol typeB, 1280var definition = typeA.OriginalDefinition; 1343public NamedTypeSymbol Construct(params TypeSymbol[] typeArguments) 1354public NamedTypeSymbol Construct(ImmutableArray<TypeSymbol> typeArguments) 1364public NamedTypeSymbol Construct(IEnumerable<TypeSymbol> typeArguments) 1373public NamedTypeSymbol ConstructUnboundGenericType() 1378internal NamedTypeSymbol GetUnboundGenericTypeOrSelf() 1406private NamedTypeSymbol ConstructWithoutModifiers(ImmutableArray<TypeSymbol> typeArguments, bool unbound) 1422internal NamedTypeSymbol Construct(ImmutableArray<TypeWithAnnotations> typeArguments) 1427internal NamedTypeSymbol Construct(ImmutableArray<TypeWithAnnotations> typeArguments, bool unbound) 1464protected virtual NamedTypeSymbol ConstructCore(ImmutableArray<TypeWithAnnotations> typeArguments, bool unbound) 1476for (var current = this; !ReferenceEquals(current, null); current = current.ContainingType) 1507var outer = ContainingType; 1528var outer = ContainingType; 1547var outer = ContainingType; 1566public new virtual NamedTypeSymbol OriginalDefinition 1592internal virtual NamedTypeSymbol AsMember(NamedTypeSymbol newOwner) 1621NamedTypeSymbol currentType = this; 1666NamedTypeSymbol @base = this.BaseTypeNoUseSiteDiagnostics; 1703var @base = this.BaseTypeNoUseSiteDiagnostics; 1767var baseType = this.BaseTypeNoUseSiteDiagnostics; 1836internal virtual NamedTypeSymbol ComImportCoClass 1917NamedTypeSymbol? membersInterfaceForDefinition = GetMemberProviderInterfaceForDefinition(); 1921var definition = this.OriginalDefinition; 1922NamedTypeSymbol membersInterface = membersInterfaceForDefinition.AsMember(this); 1953static bool isSuitableUnionFactory(NamedTypeSymbol unionType, MethodSymbol factory) 1974internal NamedTypeSymbol? GetMemberProviderInterfaceForDefinition() 1978foreach (var type in this.OriginalDefinition.GetTypeMembers(WellKnownMemberNames.UnionMembersInterfaceName)) 2038typeToCheck = ((NamedTypeSymbol)typeToCheck).TypeArgumentsWithAnnotationsNoUseSiteDiagnostics[ValueTupleRestPosition - 1].Type; 2042arity = (typeToCheck as NamedTypeSymbol)?.Arity ?? 0; 2044if (arity > 0 && arity < ValueTupleRestPosition && ((NamedTypeSymbol)typeToCheck).IsTupleTypeOfCardinality(out tupleCardinality)) 2063internal abstract NamedTypeSymbol AsNativeInteger(); 2070internal abstract NamedTypeSymbol NativeIntegerUnderlyingType { get; }
Symbols\NamespaceOrTypeSymbol.cs (14)
140internal virtual ImmutableArray<NamedTypeSymbol> GetTypeMembersUnordered() 153public abstract ImmutableArray<NamedTypeSymbol> GetTypeMembers(); 161public ImmutableArray<NamedTypeSymbol> GetTypeMembers(string name) 170public ImmutableArray<NamedTypeSymbol> GetTypeMembers(string name, int arity) 174public abstract ImmutableArray<NamedTypeSymbol> GetTypeMembers(ReadOnlyMemory<char> name); 177public virtual ImmutableArray<NamedTypeSymbol> GetTypeMembers(ReadOnlyMemory<char> name, int arity) 215foreach (var member in GetTypeMembers(name, arity)) 255internal virtual NamedTypeSymbol? LookupMetadataType(ref MetadataTypeName emittedTypeName) 261Debug.Assert(scope is NamespaceSymbol or NamedTypeSymbol); 268NamedTypeSymbol? namedType = null; 270ImmutableArray<NamedTypeSymbol> namespaceOrTypeMembers; 284foreach (var named in namespaceOrTypeMembers) 332foreach (var named in namespaceOrTypeMembers) 361foreach (var named in namespaceOrTypeMembers)
Symbols\NamespaceSymbol.cs (5)
24private ImmutableArray<NamedTypeSymbol> _lazyTypesMightContainExtensions; 91public sealed override NamedTypeSymbol ContainingType 227internal NamedTypeSymbol ImplicitType 317private ImmutableArray<NamedTypeSymbol> TypesMightContainExtensions 353foreach (var type in typesWithExtensionMethods)
Symbols\NativeIntegerTypeSymbol.cs (23)
27private ImmutableArray<NamedTypeSymbol> _lazyInterfaces; 31internal NativeIntegerTypeSymbol(NamedTypeSymbol underlyingType) : base(underlyingType, tupleData: null) 42public override NamedTypeSymbol ConstructedFrom => this; 50internal override NamedTypeSymbol BaseTypeNoUseSiteDiagnostics => _underlyingType.BaseTypeNoUseSiteDiagnostics; 60internal override ImmutableArray<NamedTypeSymbol> CandidateClosedSubtypeDefinitions => []; 148public override ImmutableArray<NamedTypeSymbol> GetTypeMembers() => ImmutableArray<NamedTypeSymbol>.Empty; 150public override ImmutableArray<NamedTypeSymbol> GetTypeMembers(ReadOnlyMemory<char> name) => ImmutableArray<NamedTypeSymbol>.Empty; 152public override ImmutableArray<NamedTypeSymbol> GetTypeMembers(ReadOnlyMemory<char> name, int arity) => ImmutableArray<NamedTypeSymbol>.Empty; 154internal override NamedTypeSymbol GetDeclaredBaseType(ConsList<TypeSymbol> basesBeingResolved) => _underlyingType.GetDeclaredBaseType(basesBeingResolved); 156internal override ImmutableArray<NamedTypeSymbol> GetDeclaredInterfaces(ConsList<TypeSymbol> basesBeingResolved) => GetInterfaces(basesBeingResolved); 164internal override ImmutableArray<NamedTypeSymbol> GetInterfacesToEmit() => throw ExceptionUtilities.Unreachable(); 166internal override ImmutableArray<NamedTypeSymbol> InterfacesNoUseSiteDiagnostics(ConsList<TypeSymbol>? basesBeingResolved = null) => GetInterfaces(basesBeingResolved); 168protected override NamedTypeSymbol WithTupleDataCore(TupleExtraData newData) => throw ExceptionUtilities.Unreachable(); 181internal sealed override NamedTypeSymbol AsNativeInteger() => throw ExceptionUtilities.Unreachable(); 183internal sealed override NamedTypeSymbol NativeIntegerUnderlyingType => _underlyingType; 228private ImmutableArray<NamedTypeSymbol> GetInterfaces(ConsList<TypeSymbol>? basesBeingResolved) 255internal NamedTypeSymbol SubstituteUnderlyingType(NamedTypeSymbol type) => GetTypeMap().SubstituteNamedType(type); 327internal override NamedTypeSymbol SubstituteTypeDeclaration(NamedTypeSymbol previous)
Symbols\NonMissingAssemblySymbol.cs (15)
32private readonly ConcurrentDictionary<MetadataTypeName.Key, NamedTypeSymbol> _emittedNameToTypeMap = 33new ConcurrentDictionary<MetadataTypeName.Key, NamedTypeSymbol>(); 80internal sealed override NamedTypeSymbol? LookupDeclaredTopLevelMetadataType(ref MetadataTypeName emittedName) 82NamedTypeSymbol? result = null; 133private NamedTypeSymbol? LookupDeclaredTopLevelMetadataTypeInModules(ref MetadataTypeName emittedName) 140NamedTypeSymbol? result = module.LookupTopLevelMetadataType(ref emittedName); 161internal sealed override NamedTypeSymbol LookupDeclaredOrForwardedTopLevelMetadataType(ref MetadataTypeName emittedName, ConsList<AssemblySymbol>? visitedAssemblies) 163NamedTypeSymbol? result = LookupTopLevelMetadataTypeInCache(ref emittedName); 186internal abstract override NamedTypeSymbol? TryLookupForwardedMetadataTypeWithCycleDetection(ref MetadataTypeName emittedName, ConsList<AssemblySymbol>? visitedAssemblies); 188private NamedTypeSymbol? LookupTopLevelMetadataTypeInCache(ref MetadataTypeName emittedName) 190NamedTypeSymbol? result; 202internal NamedTypeSymbol CachedTypeByEmittedName(string emittedname) 219private NamedTypeSymbol CacheTopLevelMetadataType( 221NamedTypeSymbol result) 223NamedTypeSymbol result1;
Symbols\NonMissingModuleSymbol.cs (2)
188internal sealed override NamedTypeSymbol? LookupTopLevelMetadataType(ref MetadataTypeName emittedName) 190NamedTypeSymbol? result;
Symbols\NoPiaAmbiguousCanonicalTypeSymbol.cs (7)
23private readonly NamedTypeSymbol _firstCandidate; 24private readonly NamedTypeSymbol _secondCandidate; 28NamedTypeSymbol firstCandidate, 29NamedTypeSymbol secondCandidate, 38protected override NamedTypeSymbol WithTupleDataCore(TupleExtraData newData) 63public NamedTypeSymbol FirstCandidate 71public NamedTypeSymbol SecondCandidate
Symbols\NoPiaIllegalGenericInstantiationSymbol.cs (4)
22private readonly NamedTypeSymbol _underlyingSymbol; 24public NoPiaIllegalGenericInstantiationSymbol(ModuleSymbol exposingModule, NamedTypeSymbol underlyingSymbol) 30protected override NamedTypeSymbol WithTupleDataCore(TupleExtraData newData) 47public NamedTypeSymbol UnderlyingSymbol
Symbols\NoPiaMissingCanonicalTypeSymbol.cs (1)
45protected override NamedTypeSymbol WithTupleDataCore(TupleExtraData newData)
Symbols\OverriddenOrHiddenMembersHelpers.cs (17)
114NamedTypeSymbol containingType = member.ContainingType; 142private static void FindOverriddenOrHiddenMembers(Symbol member, NamedTypeSymbol containingType, bool memberIsFromSomeCompilation, 159for (NamedTypeSymbol currType = containingType.BaseTypeNoUseSiteDiagnostics; 413NamedTypeSymbol containingType = member.ContainingType; 416PooledHashSet<NamedTypeSymbol> membersOfOtherKindsHidden = PooledHashSet<NamedTypeSymbol>.GetInstance(); 417PooledHashSet<NamedTypeSymbol> allMembersHidden = PooledHashSet<NamedTypeSymbol>.GetInstance(); // Implies membersOfOtherKindsHidden. 421foreach (NamedTypeSymbol currType in containingType.AllInterfacesNoUseSiteDiagnostics) // NB: topologically sorted 448foreach (var hidden in currType.AllInterfacesNoUseSiteDiagnostics) 465foreach (var hidden in currType.AllInterfacesNoUseSiteDiagnostics) 480foreach (var hidden in currType.AllInterfacesNoUseSiteDiagnostics) 535NamedTypeSymbol memberContainingType, 537NamedTypeSymbol currType, 1027NamedTypeSymbol containingType = method.ContainingType; 1029for (NamedTypeSymbol currType = containingType.BaseTypeNoUseSiteDiagnostics; !ReferenceEquals(currType, null); currType = currType.BaseTypeNoUseSiteDiagnostics) 1070private static bool IsOverriddenSymbolAccessible(Symbol overridden, NamedTypeSymbol overridingContainingType)
Symbols\OverriddenOrHiddenMembersResult.cs (3)
60NamedTypeSymbol overriddenByDefinitionContaining = overriddenByDefinitionMember.ContainingType; 61NamedTypeSymbol overriddenByDefinitionContainingTypeDefinition = overriddenByDefinitionContaining.OriginalDefinition; 62for (NamedTypeSymbol baseType = substitutedOverridingMember.ContainingType.BaseTypeNoUseSiteDiagnostics;
Symbols\PlaceholderTypeArgumentSymbol.cs (1)
29protected override NamedTypeSymbol WithTupleDataCore(TupleExtraData newData)
Symbols\PointerTypeSymbol.cs (9)
79internal override NamedTypeSymbol? BaseTypeNoUseSiteDiagnostics 88internal override ImmutableArray<NamedTypeSymbol> InterfacesNoUseSiteDiagnostics(ConsList<TypeSymbol>? basesBeingResolved) 91return ImmutableArray<NamedTypeSymbol>.Empty; 143public override ImmutableArray<NamedTypeSymbol> GetTypeMembers() 145return ImmutableArray<NamedTypeSymbol>.Empty; 148public override ImmutableArray<NamedTypeSymbol> GetTypeMembers(ReadOnlyMemory<char> name) 150return ImmutableArray<NamedTypeSymbol>.Empty; 153public override ImmutableArray<NamedTypeSymbol> GetTypeMembers(ReadOnlyMemory<char> name, int arity) 155return ImmutableArray<NamedTypeSymbol>.Empty;
Symbols\PropertySymbol.cs (2)
262internal PropertySymbol GetLeastOverriddenProperty(NamedTypeSymbol accessingTypeOpt) 378internal PropertySymbol AsMember(NamedTypeSymbol newOwner)
Symbols\PublicModel\ErrorTypeSymbol.cs (1)
32internal override Symbols.NamedTypeSymbol UnderlyingNamedTypeSymbol => _underlying;
Symbols\PublicModel\MethodSymbol.cs (1)
365var enclosing = _underlying.ContainingType.ContainingType;
Symbols\PublicModel\NamedTypeSymbol.cs (3)
22internal abstract Symbols.NamedTypeSymbol UnderlyingNamedTypeSymbol { get; } 175var type = UnderlyingNamedTypeSymbol; 176var tupleUnderlyingType = type.TupleUnderlyingType;
Symbols\PublicModel\NonErrorNamedTypeSymbol.cs (3)
13private readonly Symbols.NamedTypeSymbol _underlying; 15public NonErrorNamedTypeSymbol(Symbols.NamedTypeSymbol underlying, CodeAnalysis.NullableAnnotation nullableAnnotation) 33internal override Symbols.NamedTypeSymbol UnderlyingNamedTypeSymbol => _underlying;
Symbols\PublicModel\TypeSymbol.cs (4)
31if (UnderlyingTypeSymbol is Symbols.NamedTypeSymbol { IsExtension: true }) 160bool ITypeSymbol.IsExtension => UnderlyingTypeSymbol is Symbols.NamedTypeSymbol { IsExtension: true }; 166return UnderlyingTypeSymbol is Symbols.NamedTypeSymbol namedType 203bool ITypeSymbol.IsUnion => UnderlyingTypeSymbol is Symbols.NamedTypeSymbol { IsUnionType: true };
Symbols\Retargeting\RetargetingAssemblySymbol.cs (11)
75private ConcurrentDictionary<NamedTypeSymbol, NamedTypeSymbol> _noPiaUnificationMap; 80internal ConcurrentDictionary<NamedTypeSymbol, NamedTypeSymbol> NoPiaUnificationMap => 81LazyInitializer.EnsureInitialized(ref _noPiaUnificationMap, () => new ConcurrentDictionary<NamedTypeSymbol, NamedTypeSymbol>(concurrencyLevel: 2, capacity: 0)); 236internal override NamedTypeSymbol GetDeclaredSpecialType(ExtendedSpecialType type) 311internal override NamedTypeSymbol? TryLookupForwardedMetadataTypeWithCycleDetection(ref MetadataTypeName emittedName, ConsList<AssemblySymbol>? visitedAssemblies) 313NamedTypeSymbol? underlying = _underlyingAssembly.TryLookupForwardedMetadataTypeWithCycleDetection(ref emittedName, visitedAssemblies: null); 325internal override IEnumerable<NamedTypeSymbol> GetAllTopLevelForwardedTypes() 327foreach (NamedTypeSymbol underlying in _underlyingAssembly.GetAllTopLevelForwardedTypes())
Symbols\Retargeting\RetargetingMethodSymbol.cs (1)
250builder.Add((INamedTypeSymbolInternal)RetargetingTranslator.Retarget((NamedTypeSymbol)identifier));
Symbols\Retargeting\RetargetingModuleSymbol.cs (4)
57private ConcurrentDictionary<NamedTypeSymbol, NamedTypeSymbol>? _symbolMap; 59public ConcurrentDictionary<NamedTypeSymbol, NamedTypeSymbol> SymbolMap => LazyInitializer.EnsureInitialized(ref _symbolMap);
Symbols\Retargeting\RetargetingNamedTypeSymbol.cs (33)
37private NamedTypeSymbol _lazyBaseType = ErrorTypeSymbol.UnknownResultType; 38private ImmutableArray<NamedTypeSymbol> _lazyInterfaces = default(ImmutableArray<NamedTypeSymbol>); 40private NamedTypeSymbol _lazyDeclaredBaseType = ErrorTypeSymbol.UnknownResultType; 41private ImmutableArray<NamedTypeSymbol> _lazyDeclaredInterfaces; 50public RetargetingNamedTypeSymbol(RetargetingModuleSymbol retargetingModule, NamedTypeSymbol underlyingType, TupleExtraData tupleData = null) 59protected override NamedTypeSymbol WithTupleDataCore(TupleExtraData newData) 132public override NamedTypeSymbol ConstructedFrom 140public override NamedTypeSymbol EnumUnderlyingType 144var underlying = _underlyingType.EnumUnderlyingType; 161internal override ImmutableArray<NamedTypeSymbol> CandidateClosedSubtypeDefinitions => this.RetargetingTranslator.Retarget(_underlyingType.CandidateClosedSubtypeDefinitions); 237internal override ImmutableArray<NamedTypeSymbol> GetTypeMembersUnordered() 242public override ImmutableArray<NamedTypeSymbol> GetTypeMembers() 247public override ImmutableArray<NamedTypeSymbol> GetTypeMembers(ReadOnlyMemory<char> name) 252public override ImmutableArray<NamedTypeSymbol> GetTypeMembers(ReadOnlyMemory<char> name, int arity) 293internal override NamedTypeSymbol? LookupMetadataType(ref MetadataTypeName typeName) 295NamedTypeSymbol? underlyingResult = _underlyingType.LookupMetadataType(ref typeName); 316internal override NamedTypeSymbol BaseTypeNoUseSiteDiagnostics 322NamedTypeSymbol acyclicBase = GetDeclaredBaseType(null); 327var underlyingBase = _underlyingType.BaseTypeNoUseSiteDiagnostics; 346internal override ImmutableArray<NamedTypeSymbol> InterfacesNoUseSiteDiagnostics(ConsList<TypeSymbol> basesBeingResolved) 357ImmutableArray<NamedTypeSymbol> result = declaredInterfaces 360ImmutableInterlocked.InterlockedCompareExchange(ref _lazyInterfaces, result, default(ImmutableArray<NamedTypeSymbol>)); 366internal override ImmutableArray<NamedTypeSymbol> GetInterfacesToEmit() 371internal override NamedTypeSymbol GetDeclaredBaseType(ConsList<TypeSymbol> basesBeingResolved) 375var underlyingBase = _underlyingType.GetDeclaredBaseType(basesBeingResolved); 376var declaredBase = (object)underlyingBase != null ? this.RetargetingTranslator.Retarget(underlyingBase, RetargetOptions.RetargetPrimitiveTypesByName) : null; 383internal override ImmutableArray<NamedTypeSymbol> GetDeclaredInterfaces(ConsList<TypeSymbol> basesBeingResolved) 389ImmutableInterlocked.InterlockedCompareExchange(ref _lazyDeclaredInterfaces, result, default(ImmutableArray<NamedTypeSymbol>)); 406internal override NamedTypeSymbol ComImportCoClass 410NamedTypeSymbol coClass = _underlyingType.ComImportCoClass; 433internal sealed override NamedTypeSymbol AsNativeInteger() => throw ExceptionUtilities.Unreachable(); 435internal sealed override NamedTypeSymbol NativeIntegerUnderlyingType => null;
Symbols\Retargeting\RetargetingNamespaceSymbol.cs (12)
42private ImmutableArray<NamedTypeSymbol> _lazyTypeMembers; 90if (s.Kind == SymbolKind.NamedType && ((NamedTypeSymbol)s).IsExplicitDefinitionOfNoPiaLocalType) 111internal override ImmutableArray<NamedTypeSymbol> GetTypeMembersUnordered() 116public override ImmutableArray<NamedTypeSymbol> GetTypeMembers() 127private ImmutableArray<NamedTypeSymbol> RetargetTypeMembers(ImmutableArray<NamedTypeSymbol> underlyingMembers) 129var builder = ArrayBuilder<NamedTypeSymbol>.GetInstance(underlyingMembers.Length); 131foreach (NamedTypeSymbol t in underlyingMembers) 146public override ImmutableArray<NamedTypeSymbol> GetTypeMembers(ReadOnlyMemory<char> name) 151public override ImmutableArray<NamedTypeSymbol> GetTypeMembers(ReadOnlyMemory<char> name, int arity) 219internal override NamedTypeSymbol? LookupMetadataType(ref MetadataTypeName typeName) 224NamedTypeSymbol? underlying = _underlyingNamespace.LookupMetadataType(ref typeName);
Symbols\Retargeting\RetargetingSymbolTranslator.cs (56)
57return new RetargetingNamedTypeSymbol(this, (NamedTypeSymbol)symbol); 164Debug.Assert(symbol.Kind != SymbolKind.NamedType || ((NamedTypeSymbol)symbol).PrimitiveTypeCode == Cci.PrimitiveTypeCode.NotPrimitive); 180public TypeWithAnnotations Retarget(TypeWithAnnotations underlyingType, RetargetOptions options, NamedTypeSymbol asDynamicIfNoPiaContainingType = null) 205private NamedTypeSymbol RetargetNamedTypeDefinition(NamedTypeSymbol type, RetargetOptions options) 211var result = RetargetNamedTypeDefinition(type.NativeIntegerUnderlyingType, options); 276private NamedTypeSymbol RetargetNamedTypeDefinitionFromUnderlyingAssembly(NamedTypeSymbol type) 285var container = type.ContainingType; 292return (NamedTypeSymbol)this.SymbolMap.GetOrAdd(type, new UnsupportedMetadataTypeSymbol()); 298return (NamedTypeSymbol)this.SymbolMap.GetOrAdd(type, _retargetingModule._createRetargetingNamedType); 310private NamedTypeSymbol RetargetNoPiaLocalType(NamedTypeSymbol type) 312NamedTypeSymbol cached; 320NamedTypeSymbol result; 401private static NamedTypeSymbol RetargetNamedTypeDefinition(PENamedTypeSymbol type, PEModuleSymbol addedModule) 410return (NamedTypeSymbol)cached; 413NamedTypeSymbol? result; 415NamedTypeSymbol containingType = type.ContainingType; 423NamedTypeSymbol scope = RetargetNamedTypeDefinition((PENamedTypeSymbol)containingType, addedModule); 440private static NamedTypeSymbol PerformTypeRetargeting( 442NamedTypeSymbol type) 444NamedTypeSymbol? result; 449NamedTypeSymbol containingType = type.ContainingType; 450NamedTypeSymbol? result1; 458NamedTypeSymbol scope = PerformTypeRetargeting(ref destination, containingType); 483public NamedTypeSymbol Retarget(NamedTypeSymbol type, RetargetOptions options) 485NamedTypeSymbol originalDefinition = type.OriginalDefinition; 487NamedTypeSymbol newDefinition = RetargetNamedTypeDefinition(originalDefinition, options); 514NamedTypeSymbol genericType = type; 551NamedTypeSymbol constructedType; 662var namedType = (NamedTypeSymbol)symbol; 720NamedTypeSymbol oldModifierSymbol = ((CSharpCustomModifier)oldModifier).ModifierSymbol; 721NamedTypeSymbol newModifierSymbol = Retarget(oldModifierSymbol, RetargetOptions.RetargetPrimitiveTypesByName); // should be retargeted by name 834public ImmutableArray<NamedTypeSymbol> Retarget(ImmutableArray<NamedTypeSymbol> sequence) 891var containingType = method.ContainingType; 892var retargetedType = Retarget(containingType, RetargetOptions.RetargetPrimitiveTypesByName); 939var containingType = property.ContainingType; 940var retargetedType = Retarget(containingType, RetargetOptions.RetargetPrimitiveTypesByName); 955var containingType = @event.ContainingType; 956var retargetedType = Retarget(containingType, RetargetOptions.RetargetPrimitiveTypesByName); 964private MethodSymbol FindMethodInRetargetedType(MethodSymbol method, NamedTypeSymbol retargetedType, IEqualityComparer<MethodSymbol> retargetedMethodComparer) 971private readonly NamedTypeSymbol _retargetedType; 974private RetargetedTypeMethodFinder(RetargetingModuleSymbol retargetingModule, NamedTypeSymbol retargetedType, MethodSymbol toFind) : 981public static MethodSymbol Find(RetargetingSymbolTranslator translator, MethodSymbol method, NamedTypeSymbol retargetedType, IEqualityComparer<MethodSymbol> retargetedMethodComparer) 998NamedTypeSymbol retargetedType, 1055NamedTypeSymbol containingType = _toFind.ContainingType; 1056NamedTypeSymbol retargetedContainingType = _retargetedType; 1074private PropertySymbol FindPropertyInRetargetedType(PropertySymbol property, NamedTypeSymbol retargetedType, IEqualityComparer<PropertySymbol> retargetedPropertyComparer) 1110private EventSymbol FindEventInRetargetedType(EventSymbol @event, NamedTypeSymbol retargetedType) 1163NamedTypeSymbol oldAttributeType = oldAttributeData.AttributeClass; 1164NamedTypeSymbol newAttributeType; 1329public override Symbol VisitNamedType(NamedTypeSymbol symbol, RetargetOptions options)
Symbols\Retargeting\RetargetingTypeParameterSymbol.cs (2)
99internal override ImmutableArray<NamedTypeSymbol> GetInterfaces(ConsList<TypeParameterSymbol> inProgress) 104internal override NamedTypeSymbol GetEffectiveBaseClass(ConsList<TypeParameterSymbol> inProgress)
Symbols\Source\CrefTypeParameterSymbol.cs (3)
202internal override ImmutableArray<NamedTypeSymbol> GetInterfaces(ConsList<TypeParameterSymbol> inProgress) 204return ImmutableArray<NamedTypeSymbol>.Empty; 207internal override NamedTypeSymbol GetEffectiveBaseClass(ConsList<TypeParameterSymbol> inProgress)
Symbols\Source\ExplicitInterfaceHelpers.cs (8)
130var unsubstitutedInterfaceType = unsubstitutedPropertyImplemented.ContainingType; 132var explicitInterfaceType = map.SubstituteNamedType(unsubstitutedInterfaceType); 193var containingType = implementingMember.ContainingType; 217var explicitInterfaceNamedType = (NamedTypeSymbol)explicitInterfaceType; 221MultiDictionary<NamedTypeSymbol, NamedTypeSymbol>.ValueSet set = containingType.InterfacesAndTheirBaseInterfacesNoUseSiteDiagnostics[explicitInterfaceNamedType]; 421NamedTypeSymbol explicitInterfaceType = implementedMember.ContainingType;
Symbols\Source\ExtensionGroupingInfo.cs (3)
33foreach (var type in container.GetTypeMembers("")) 72ImmutableArray<NamedTypeSymbol> typeMembers = container.GetTypeMembers(""); 735NamedTypeSymbol? containingType = ExtensionMarkerTypes[0].UnderlyingExtensions[0].ContainingType;
Symbols\Source\FieldSymbolWithAttributesAndModifiers.cs (1)
118internal sealed override (CSharpAttributeData?, BoundAttribute?) EarlyDecodeWellKnownAttribute(ref EarlyDecodeWellKnownAttributeArguments<EarlyWellKnownAttributeBinder, NamedTypeSymbol, AttributeSyntax, AttributeLocation> arguments)
Symbols\Source\ImplicitNamedTypeSymbol.cs (11)
31protected override NamedTypeSymbol WithTupleDataCore(TupleExtraData newData) 45protected override Location GetCorrespondingBaseListLocation(NamedTypeSymbol @base) 56internal override NamedTypeSymbol BaseTypeNoUseSiteDiagnostics 66internal override NamedTypeSymbol GetDeclaredBaseType(ConsList<TypeSymbol> basesBeingResolved) 71internal override ImmutableArray<NamedTypeSymbol> InterfacesNoUseSiteDiagnostics(ConsList<TypeSymbol> basesBeingResolved) 73return ImmutableArray<NamedTypeSymbol>.Empty; 76internal override ImmutableArray<NamedTypeSymbol> GetDeclaredInterfaces(ConsList<TypeSymbol> basesBeingResolved) 78return ImmutableArray<NamedTypeSymbol>.Empty; 106internal override NamedTypeSymbol ComImportCoClass 182internal sealed override NamedTypeSymbol AsNativeInteger() => throw ExceptionUtilities.Unreachable(); 184internal sealed override NamedTypeSymbol NativeIntegerUnderlyingType => null;
Symbols\Source\IndexedTypeParameterSymbol.cs (3)
217internal override ImmutableArray<NamedTypeSymbol> GetInterfaces(ConsList<TypeParameterSymbol> inProgress) 219return ImmutableArray<NamedTypeSymbol>.Empty; 222internal override NamedTypeSymbol GetEffectiveBaseClass(ConsList<TypeParameterSymbol> inProgress)
Symbols\Source\ParameterHelpers.cs (4)
534NamedTypeSymbol extension = extensionMember.ContainingType; 552static void reportUnusedExtensionTypeParameters(Symbol extensionMember, ImmutableArray<ParameterSymbol> parameters, BindingDiagnosticBag diagnostics, NamedTypeSymbol extension, ParameterSymbol extensionParameter, PooledHashSet<TypeParameterSymbol> usedTypeParameters) 1220var requiresLocationType = binder.GetWellKnownType(WellKnownType.System_Runtime_CompilerServices_RequiresLocationAttribute, diagnostics, syntax); 1231var modifierType = binder.GetWellKnownType(modifier, diagnostics, syntax);
Symbols\Source\SourceAssemblySymbol.cs (34)
22using CommonAssemblyWellKnownAttributeData = Microsoft.CodeAnalysis.CommonAssemblyWellKnownAttributeData<Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol>; 75private IDictionary<string, NamedTypeSymbol> _lazyForwardedTypesFromSource; 1067var topLevelTypesFromModules = ArrayBuilder<NamedTypeSymbol>.GetInstance(); 1085NamedTypeSymbol x = topLevelTypesFromModules[i]; 1086NamedTypeSymbol y = topLevelTypesFromModules[i + 1]; 1122private class NameCollisionForAddedModulesTypeComparer : IComparer<NamedTypeSymbol> 1128public int Compare(NamedTypeSymbol x, NamedTypeSymbol y) 1226var attributeClass = attribute.AttributeClass; 1389HashSet<NamedTypeSymbol> forwardedTypes = null; 1397foreach (NamedTypeSymbol forwarded in peModuleSymbol.GetForwardedTypes()) 1409forwardedTypes = new HashSet<NamedTypeSymbol>(); 1709internal HashSet<NamedTypeSymbol> GetForwardedTypes() 1822var securityActionType = _compilation.GetWellKnownType(WellKnownType.System_Security_Permissions_SecurityAction); 1831var boolType = _compilation.GetSpecialType(SpecialType.System_Boolean); 1894var obj = GetSpecialType(SpecialType.System_Object); 1971var int32Type = _compilation.GetSpecialType(SpecialType.System_Int32); 1991var boolType = _compilation.GetSpecialType(SpecialType.System_Boolean); 2025var stringType = _compilation.GetSpecialType(SpecialType.System_String); 2035var stringType = _compilation.GetSpecialType(SpecialType.System_String); 2085if (((NamedTypeSymbol)member).MightContainExtensions) 2255HashSet<NamedTypeSymbol> forwardedTypes = assemblyData.ForwardedTypes; 2258forwardedTypes = new HashSet<NamedTypeSymbol>() { (NamedTypeSymbol)forwardedType }; 2261else if (!forwardedTypes.Add((NamedTypeSymbol)forwardedType)) 2829internal override NamedTypeSymbol? TryLookupForwardedMetadataTypeWithCycleDetection(ref MetadataTypeName emittedName, ConsList<AssemblySymbol>? visitedAssemblies) 2849IDictionary<string, NamedTypeSymbol> forwardedTypesFromSource; 2851HashSet<NamedTypeSymbol> forwardedTypes = GetForwardedTypes(); 2855forwardedTypesFromSource = new Dictionary<string, NamedTypeSymbol>(StringOrdinalComparer.Instance); 2857foreach (NamedTypeSymbol forwardedType in forwardedTypes) 2859NamedTypeSymbol originalDefinition = forwardedType.OriginalDefinition; 2871forwardedTypesFromSource = SpecializedCollections.EmptyDictionary<string, NamedTypeSymbol>(); 2877NamedTypeSymbol? result; 2959internal override IEnumerable<NamedTypeSymbol> GetAllTopLevelForwardedTypes()
Symbols\Source\SourceComplexParameterSymbol.cs (7)
619internal override void EarlyDecodeWellKnownAttributeType(NamedTypeSymbol attributeType, AttributeSyntax attributeSyntax) 642internal override (CSharpAttributeData?, BoundAttribute?) EarlyDecodeWellKnownAttribute(ref EarlyDecodeWellKnownAttributeArguments<EarlyWellKnownAttributeBinder, NamedTypeSymbol, AttributeSyntax, AttributeLocation> arguments) 731private (CSharpAttributeData?, BoundAttribute?) EarlyDecodeAttributeForDefaultParameterValue(AttributeDescription description, ref EarlyDecodeWellKnownAttributeArguments<EarlyWellKnownAttributeBinder, NamedTypeSymbol, AttributeSyntax, AttributeLocation> arguments) 1005((NamedTypeSymbol)arg.TypeInternal).EnumUnderlyingType.SpecialType : 1287if (Type is not NamedTypeSymbol { IsInterpolatedStringHandlerType: true } handlerType) 1695syntax, (NamedTypeSymbol)Type, diagnostics, forParams: true); 1706if (ContainingSymbol.ContainingSymbol is NamedTypeSymbol) // No need to check for lambdas or local function
Symbols\Source\SourceConstructorSymbol.cs (2)
99NamedTypeSymbol containingType, 142NamedTypeSymbol containingType, ConstructorDeclarationSyntax syntax, MethodKind methodKind, bool hasBody, Location location, BindingDiagnosticBag diagnostics,
Symbols\Source\SourceConstructorSymbolBase.cs (1)
242internal override (CSharpAttributeData?, BoundAttribute?) EarlyDecodeWellKnownAttribute(ref EarlyDecodeWellKnownAttributeArguments<EarlyWellKnownAttributeBinder, NamedTypeSymbol, AttributeSyntax, AttributeLocation> arguments)
Symbols\Source\SourceDelegateMethodSymbol.cs (1)
288var modifierType = binder.GetWellKnownType(WellKnownType.System_Runtime_InteropServices_InAttribute, diagnostics, syntax.ReturnType);
Symbols\Source\SourceDestructorSymbol.cs (2)
65private static (DeclarationModifiers, Flags) MakeModifiersAndFlags(NamedTypeSymbol containingType, DestructorDeclarationSyntax syntax, bool isNullableAnalysisEnabled, Location location, BindingDiagnosticBag diagnostics, out bool modifierErrors) 135private static DeclarationModifiers MakeModifiers(NamedTypeSymbol containingType, SyntaxTokenList modifiers, Location location, BindingDiagnosticBag diagnostics, out bool modifierErrors)
Symbols\Source\SourceEventSymbol.cs (3)
106public override NamedTypeSymbol ContainingType 299internal override (CSharpAttributeData?, BoundAttribute?) EarlyDecodeWellKnownAttribute(ref EarlyDecodeWellKnownAttributeArguments<EarlyWellKnownAttributeBinder, NamedTypeSymbol, AttributeSyntax, AttributeLocation> arguments) 815foreach (NamedTypeSymbol @interface in this.containingType.InterfacesAndTheirBaseInterfacesNoUseSiteDiagnostics.Keys)
Symbols\Source\SourceFieldSymbol.cs (1)
106public override NamedTypeSymbol ContainingType
Symbols\Source\SourceFixedFieldSymbol.cs (4)
46var systemType = compilation.GetWellKnownType(WellKnownType.System_Type); 47var intType = compilation.GetSpecialType(SpecialType.System_Int32); 142internal override NamedTypeSymbol FixedImplementationType(PEModuleBuilder emitModule) 237internal override NamedTypeSymbol BaseTypeNoUseSiteDiagnostics
Symbols\Source\SourceMemberContainerSymbol.cs (57)
208private static readonly Dictionary<ReadOnlyMemory<char>, ImmutableArray<NamedTypeSymbol>> s_emptyTypeMembers = 209new Dictionary<ReadOnlyMemory<char>, ImmutableArray<NamedTypeSymbol>>(EmptyReadOnlyMemoryOfCharComparer.Instance); 211private Dictionary<ReadOnlyMemory<char>, ImmutableArray<NamedTypeSymbol>>? _lazyTypeMembers; 223private ImmutableArray<NamedTypeSymbol> _lazyClosedSubtypeCandidates; 266var containingType = this.ContainingType; 317if (((NamedTypeSymbol)containingSymbol).IsInterface) 617var discarded = this.EnumUnderlyingType; 801public sealed override NamedTypeSymbol? ContainingType 805return _containingSymbol as NamedTypeSymbol; 905internal sealed override ImmutableArray<NamedTypeSymbol> CandidateClosedSubtypeDefinitions 921ImmutableArray<NamedTypeSymbol> findClosedSubtypes() 926var subtypes = ArrayBuilder<NamedTypeSymbol>.GetInstance(); 930if (namespaceOrType is NamedTypeSymbol namedType) 1390internal override ImmutableArray<NamedTypeSymbol> GetTypeMembersUnordered() 1395public override ImmutableArray<NamedTypeSymbol> GetTypeMembers() 1400public override ImmutableArray<NamedTypeSymbol> GetTypeMembers(ReadOnlyMemory<char> name) 1402ImmutableArray<NamedTypeSymbol> members; 1408return ImmutableArray<NamedTypeSymbol>.Empty; 1411public override ImmutableArray<NamedTypeSymbol> GetTypeMembers(ReadOnlyMemory<char> name, int arity) 1416private Dictionary<ReadOnlyMemory<char>, ImmutableArray<NamedTypeSymbol>> GetTypeMembersDictionary() 1434private Dictionary<ReadOnlyMemory<char>, ImmutableArray<NamedTypeSymbol>> MakeTypeMembers(BindingDiagnosticBag diagnostics) 1436var symbols = ArrayBuilder<NamedTypeSymbol>.GetInstance(); 1479foreach (var t in symbols) 1518if (this.ExtensionParameter is { Type: NamedTypeSymbol { Name: var extendedTypeName } }) 1827if (member is NamedTypeSymbol type) 1986var baseType = BaseTypeNoUseSiteDiagnostics; 2081bool hasBaseTypeOrInterface(Func<NamedTypeSymbol, bool> predicate) 2130Dictionary<ReadOnlyMemory<char>, ImmutableArray<NamedTypeSymbol>>? typesByName, 2528Dictionary<ReadOnlyMemory<char>, ImmutableArray<NamedTypeSymbol>>? typesByName, 2540IEnumerable<IGrouping<string, NamedTypeSymbol>> extensionsByReceiverType = GetTypeMembers("").Where(static t => t.IsExtension).GroupBy(static t => ((SourceNamedTypeSymbol)t).ExtensionGroupingName!); 2556static (Dictionary<ReadOnlyMemory<char>, ImmutableArray<Symbol>>? membersByName, ImmutableArray<Symbol> membersUnordered) mergeMembersInGroup(IGrouping<string, NamedTypeSymbol> grouping) 2560NamedTypeSymbol? masterExtension = null; 2563foreach (NamedTypeSymbol item in grouping) 2565var extension = item; 2616static ImmutableArray<Symbol> concatMembers(ImmutableArray<Symbol> existingMembers, NamedTypeSymbol extension, ImmutableArray<Symbol> newMembers, ref ImmutableArray<Symbol> membersUnordered) 2785BaseTypeAnalysis.StructDependsOn((NamedTypeSymbol)type, this) && 3095var instanceMap = new Dictionary<NamedTypeSymbol, NamedTypeSymbol>(ReferenceEqualityComparer.Instance); 3116var type = (NamedTypeSymbol)f.Type; 3127private static bool InfiniteFlatteningGraph(SourceMemberContainerTypeSymbol top, NamedTypeSymbol t, Dictionary<NamedTypeSymbol, NamedTypeSymbol> instanceMap) 3130var tOriginal = t.OriginalDefinition; 3131if (instanceMap.TryGetValue(tOriginal, out var oldInstance)) 3145var type = (NamedTypeSymbol)f.Type; 3270Dictionary<ReadOnlyMemory<char>, ImmutableArray<NamedTypeSymbol>> typesByName) 3272foreach ((ReadOnlyMemory<char> name, ImmutableArray<NamedTypeSymbol> types) in typesByName) 3934ImmutableArray<Symbol> types = GetTypeMembers(name).Cast<NamedTypeSymbol, Symbol>(); 3992foreach (var type in GetTypeMembers("")) 5335var currentBaseType = this.BaseTypeNoUseSiteDiagnostics; 6133var baseType = BaseTypeNoUseSiteDiagnostics; 6138foreach (var @interface in GetInterfacesToEmit()) 6171NamedTypeSymbol baseType = this.BaseTypeNoUseSiteDiagnostics; 6250foreach (var type in this.GetTypeMembers()) 6270public sealed override NamedTypeSymbol ConstructedFrom
Symbols\Source\SourceMemberContainerSymbol_ImplementationChecks.cs (32)
90NamedTypeSymbol baseType = this.BaseTypeNoUseSiteDiagnostics; 121MultiDictionary<NamedTypeSymbol, NamedTypeSymbol> interfacesAndTheirBases = this.InterfacesAndTheirBaseInterfacesNoUseSiteDiagnostics; 123foreach (var @interface in this.AllInterfacesNoUseSiteDiagnostics) 342protected abstract Location GetCorrespondingBaseListLocation(NamedTypeSymbol @base); 345private Location GetImplementsLocationOrFallback(NamedTypeSymbol implementedInterface) 350internal Location? GetImplementsLocation(NamedTypeSymbol implementedInterface) 359NamedTypeSymbol directInterface = null; 360foreach (var iface in this.InterfacesNoUseSiteDiagnostics()) 442private HasBaseTypeDeclaringInterfaceResult HasBaseClassDeclaringInterface(NamedTypeSymbol @interface) 446for (NamedTypeSymbol currType = this.BaseTypeNoUseSiteDiagnostics; (object)currType != null; currType = currType.BaseTypeNoUseSiteDiagnostics) 457private static bool DeclaresBaseInterface(NamedTypeSymbol currType, NamedTypeSymbol @interface, ref HasBaseTypeDeclaringInterfaceResult result) 459MultiDictionary<NamedTypeSymbol, NamedTypeSymbol>.ValueSet set = currType.InterfacesAndTheirBaseInterfacesNoUseSiteDiagnostics[@interface]; 477private void HasBaseInterfaceDeclaringInterface(NamedTypeSymbol baseInterface, NamedTypeSymbol @interface, ref HasBaseTypeDeclaringInterfaceResult matchResult) 485foreach (var interfaceType in this.AllInterfacesNoUseSiteDiagnostics) 504var baseType = this.BaseTypeNoUseSiteDiagnostics; 714NamedTypeSymbol currType = this.BaseTypeNoUseSiteDiagnostics; 850NamedTypeSymbol overridingType = overridingMember.ContainingType; 889var overridingType = overridingMember.ContainingType; 1075var overridingType = overridingProperty.ContainingType; 1822NamedTypeSymbol[] interfaces = this.InterfacesAndTheirBaseInterfacesNoUseSiteDiagnostics.Keys.ToArray(); 1828NamedTypeSymbol interface1 = interfaces[i1]; 1829NamedTypeSymbol interface2 = interfaces[i2]; 1839var temp = interface1; 1966private static bool IsPossibleImplementationUnderRuntimeRules(MethodSymbol implementingMethod, NamedTypeSymbol @interface) 1968NamedTypeSymbol type = implementingMethod.ContainingType; 1974NamedTypeSymbol baseType = type.BaseTypeNoUseSiteDiagnostics; 1990private static bool IsOverrideOfPossibleImplementationUnderRuntimeRules(MethodSymbol implementingMethod, NamedTypeSymbol @interface) 2005internal sealed override ImmutableArray<NamedTypeSymbol> GetInterfacesToEmit()
Symbols\Source\SourceMemberFieldSymbol.cs (3)
176internal static DeclarationModifiers MakeModifiers(NamedTypeSymbol containingType, SyntaxToken firstIdentifier, SyntaxTokenList modifiers, bool isRefField, BindingDiagnosticBag diagnostics, out bool modifierErrors) 324internal override NamedTypeSymbol FixedImplementationType(PEModuleBuilder emitModule) 479NamedTypeSymbol tokenTableType = this.DeclaringCompilation.GetWellKnownType(WellKnownType.System_Runtime_InteropServices_WindowsRuntime_EventRegistrationTokenTable_T);
Symbols\Source\SourceMemberMethodSymbol.cs (4)
307private readonly NamedTypeSymbol _containingType; 333NamedTypeSymbol containingType, 395NamedTypeSymbol containingType = ContainingType; 528public override NamedTypeSymbol ContainingType
Symbols\Source\SourceMethodSymbol.cs (1)
181if (moduleBuilder.CompilationState.TryGetStateMachineType(target, out NamedTypeSymbol? stateMachineType))
Symbols\Source\SourceMethodSymbolWithAttributes.cs (7)
331internal override (CSharpAttributeData?, BoundAttribute?) EarlyDecodeWellKnownAttribute(ref EarlyDecodeWellKnownAttributeArguments<EarlyWellKnownAttributeBinder, NamedTypeSymbol, AttributeSyntax, AttributeLocation> arguments) 1451var systemType = @this.DeclaringCompilation.GetWellKnownType(WellKnownType.System_Type); 1459static (m, systemType) => m is FieldSymbol { Type: ArrayTypeSymbol { ElementType: NamedTypeSymbol elementType } } && elementType.Equals(systemType, TypeCompareKind.ConsiderEverything), 1487if (ContainingSymbol is NamedTypeSymbol { IsComImport: true, TypeKind: TypeKind.Class or TypeKind.Interface }) 1573for (NamedTypeSymbol curr = this.ContainingType; (object)curr != null; curr = curr.ContainingType) 1595var iAsyncEnumerableType = DeclaringCompilation.GetWellKnownType(WellKnownType.System_Collections_Generic_IAsyncEnumerable_T); 1599var cancellationTokenType = DeclaringCompilation.GetWellKnownType(WellKnownType.System_Threading_CancellationToken);
Symbols\Source\SourceModuleSymbol.cs (3)
181if (((NamedTypeSymbol)s).IsExplicitDefinitionOfNoPiaLocalType) 702CommonAssemblyWellKnownAttributeData<NamedTypeSymbol> decodedData = ((SourceAssemblySymbol)this.ContainingAssembly).GetSourceDecodedWellKnownAttributeData(); 711CommonAssemblyWellKnownAttributeData<NamedTypeSymbol> decodedData = ((SourceAssemblySymbol)this.ContainingAssembly).GetSourceDecodedWellKnownAttributeData();
Symbols\Source\SourceNamedTypeSymbol.cs (15)
39protected override Location GetCorrespondingBaseListLocation(NamedTypeSymbol @base) 107protected override NamedTypeSymbol WithTupleDataCore(TupleExtraData newData) 907internal override (CSharpAttributeData?, BoundAttribute?) EarlyDecodeWellKnownAttribute(ref EarlyDecodeWellKnownAttributeArguments<EarlyWellKnownAttributeBinder, NamedTypeSymbol, AttributeSyntax, AttributeLocation> arguments) 1257return builderType is NamedTypeSymbol { TypeKind: TypeKind.Class or TypeKind.Struct, IsGenericType: false }; 1363var coClassType = argument.ValueInternal as NamedTypeSymbol; 1380internal override NamedTypeSymbol ComImportCoClass 1660var baseType = this.BaseTypeNoUseSiteDiagnostics; 1872internal override NamedTypeSymbol AsNativeInteger() 1883internal override NamedTypeSymbol NativeIntegerUnderlyingType => null; 1987NamedTypeSymbol? index = null; 1988NamedTypeSymbol? range = null; 2010NamedTypeSymbol? span = null; 2011NamedTypeSymbol? readOnlySpan = null; 2026Conversions.HasIdentityConversion(((NamedTypeSymbol)returnTypeOriginalDefinition).Construct(ImmutableArray.Create(elementType)), returnType))
Symbols\Source\SourceNamedTypeSymbol_Bases.cs (61)
24private Tuple<NamedTypeSymbol, ImmutableArray<NamedTypeSymbol>> _lazyDeclaredBases; 26private NamedTypeSymbol _lazyBaseType = ErrorTypeSymbol.UnknownResultType; 27private ImmutableArray<NamedTypeSymbol> _lazyInterfaces; 35internal sealed override NamedTypeSymbol BaseTypeNoUseSiteDiagnostics 46var tmp = ContainingType.BaseTypeNoUseSiteDiagnostics; 50var acyclicBase = this.MakeAcyclicBaseType(diagnostics); 66internal sealed override ImmutableArray<NamedTypeSymbol> InterfacesNoUseSiteDiagnostics(ConsList<TypeSymbol> basesBeingResolved) 72return ImmutableArray<NamedTypeSymbol>.Empty; 77if (ImmutableInterlocked.InterlockedCompareExchange(ref _lazyInterfaces, acyclicInterfaces, default(ImmutableArray<NamedTypeSymbol>)).IsDefault) 89var localBase = this.BaseTypeNoUseSiteDiagnostics; 168MultiDictionary<NamedTypeSymbol, NamedTypeSymbol>.ValueSet set = pair.Value; 170foreach (var @interface in set) 177NamedTypeSymbol other = pair.Key; 178foreach (var @interface in set) 212private SourceLocation FindBaseRefSyntax(NamedTypeSymbol baseSym) 255internal Tuple<NamedTypeSymbol, ImmutableArray<NamedTypeSymbol>> GetDeclaredBases(ConsList<TypeSymbol> basesBeingResolved) 270internal override NamedTypeSymbol GetDeclaredBaseType(ConsList<TypeSymbol> basesBeingResolved) 275internal override ImmutableArray<NamedTypeSymbol> GetDeclaredInterfaces(ConsList<TypeSymbol> basesBeingResolved) 280private Tuple<NamedTypeSymbol, ImmutableArray<NamedTypeSymbol>> MakeDeclaredBases(ConsList<TypeSymbol> basesBeingResolved, BindingDiagnosticBag diagnostics) 285return new Tuple<NamedTypeSymbol, ImmutableArray<NamedTypeSymbol>>(null, ImmutableArray<NamedTypeSymbol>.Empty); 291var baseInterfaces = ArrayBuilder<NamedTypeSymbol>.GetInstance(); 293NamedTypeSymbol baseType = null; 296var interfaceLocations = SpecializedSymbolCollections.GetPooledSymbolDictionaryInstance<NamedTypeSymbol, SourceLocation>(); 300Tuple<NamedTypeSymbol, ImmutableArray<NamedTypeSymbol>> one = MakeOneDeclaredBases(newBasesBeingResolved, decl, diagnostics); 303var partBase = one.Item1; 358foreach (var t in partInterfaces) 374var type = DeclaringCompilation.GetWellKnownType(WellKnownType.System_IEquatable_T).Construct(this); 380var type = DeclaringCompilation.GetWellKnownType(WellKnownType.System_Runtime_CompilerServices_IUnion); 432for (NamedTypeSymbol type = this; type is not null; type = type.ContainingType) 451foreach (var i in baseInterfacesRO) 470return new Tuple<NamedTypeSymbol, ImmutableArray<NamedTypeSymbol>>(baseType, baseInterfacesRO); 472static void addImplicitlyImplementedInterface(ArrayBuilder<NamedTypeSymbol> baseInterfaces, NamedTypeSymbol type) 493private Tuple<NamedTypeSymbol, ImmutableArray<NamedTypeSymbol>> MakeOneDeclaredBases(ConsList<TypeSymbol> newBasesBeingResolved, SingleTypeDeclaration decl, BindingDiagnosticBag diagnostics) 501NamedTypeSymbol localBase = null; 502var localInterfaces = ArrayBuilder<NamedTypeSymbol>.GetInstance(); 581localBase = (NamedTypeSymbol)baseType; 606foreach (var t in localInterfaces) 635localInterfaces.Add((NamedTypeSymbol)baseType); 643localBase = (NamedTypeSymbol)baseType; 661localInterfaces.Add((NamedTypeSymbol)baseType); 683return new Tuple<NamedTypeSymbol, ImmutableArray<NamedTypeSymbol>>(localBase, localInterfaces.ToImmutableAndFree()); 719private ImmutableArray<NamedTypeSymbol> MakeAcyclicInterfaces(ConsList<TypeSymbol> basesBeingResolved, BindingDiagnosticBag diagnostics) 726return ImmutableArray<NamedTypeSymbol>.Empty; 732ArrayBuilder<NamedTypeSymbol> result = isInterface ? ArrayBuilder<NamedTypeSymbol>.GetInstance() : null; 733foreach (var t in declaredInterfaces) 755foreach (var @interface in t.AllInterfacesNoUseSiteDiagnostics) 770private NamedTypeSymbol MakeAcyclicBaseType(BindingDiagnosticBag diagnostics) 774NamedTypeSymbol declaredBase; 834NamedTypeSymbol current = declaredBase;
Symbols\Source\SourceNamedTypeSymbol_Enum.cs (5)
18private NamedTypeSymbol _lazyEnumUnderlyingType = ErrorTypeSymbol.UnknownResultType; 24public override NamedTypeSymbol EnumUnderlyingType 44private NamedTypeSymbol GetEnumUnderlyingType(BindingDiagnosticBag diagnostics) 72return (NamedTypeSymbol)type; 76NamedTypeSymbol defaultUnderlyingType = compilation.GetSpecialType(SpecialType.System_Int32);
Symbols\Source\SourceNamedTypeSymbol_Extension.cs (16)
159if (type is NamedTypeSymbol namedType) 193static void appendNamedType(TypeSymbol type, StringBuilder builder, NamedTypeSymbol namedType) 224static void appendContainingType(NamedTypeSymbol namedType, StringBuilder builder) 235static void appendTypeArguments(NamedTypeSymbol namedType, StringBuilder builder) 466if (type is NamedTypeSymbol namedType) 497static void appendNamedType(NamedTypeSymbol namedType, StringBuilder builder) 562static void appendContainingType(NamedTypeSymbol namedType, StringBuilder builder) 573static void appendTypeArguments(NamedTypeSymbol namedType, StringBuilder builder) 762static void appendCallingConventionTypes(ImmutableArray<NamedTypeSymbol> callingConventionTypes, StringBuilder builder) 1037var containingType = this.ContainingType; 1179NamedTypeSymbol extension = extensionMember.ContainingType; 1189NamedTypeSymbol? constructedExtension = inferExtensionTypeArguments(extension, receiverType, compilation, out wasExtensionFullyInferred); 1215static NamedTypeSymbol? inferExtensionTypeArguments(NamedTypeSymbol extension, TypeSymbol receiverType, CSharpCompilation? compilation, out bool wasExtensionFullyInferred) 1238var result = extension.Construct(typeArgsForConstruct); 1252static ImmutableArray<TypeWithAnnotations> fillNotInferredTypeArguments(NamedTypeSymbol extension, ImmutableArray<TypeWithAnnotations> typeArgs, out bool wasFullyInferred)
Symbols\Source\SourceNamespaceSymbol.AliasesAndUsings.cs (2)
810var importedType = (NamedTypeSymbol)imported;
Symbols\Source\SourceNamespaceSymbol.cs (13)
32private Dictionary<ReadOnlyMemory<char>, ImmutableArray<NamedTypeSymbol>> _nameToTypeMembersMap; 34private ImmutableArray<NamedTypeSymbol> _lazyTypeMembersUnordered; 179internal override ImmutableArray<NamedTypeSymbol> GetTypeMembersUnordered() 190public override ImmutableArray<NamedTypeSymbol> GetTypeMembers() 195public override ImmutableArray<NamedTypeSymbol> GetTypeMembers(ReadOnlyMemory<char> name) 197ImmutableArray<NamedTypeSymbol> members; 200: ImmutableArray<NamedTypeSymbol>.Empty; 203public override ImmutableArray<NamedTypeSymbol> GetTypeMembers(ReadOnlyMemory<char> name, int arity) 248private Dictionary<ReadOnlyMemory<char>, ImmutableArray<NamedTypeSymbol>> GetNameToTypeMembersMap() 256ImmutableArrayExtensions.GetTypesFromMemberMap<ReadOnlyMemory<char>, NamespaceOrTypeSymbol, NamedTypeSymbol>( 283ImmutableArrayExtensions.CreateNameToMembersMap<ReadOnlyMemory<char>, NamespaceOrTypeSymbol, NamedTypeSymbol, NamespaceSymbol>(builder, result); 444var type = member as NamedTypeSymbol;
Symbols\Source\SourceOrdinaryMethodOrUserDefinedOperatorSymbol.cs (2)
24protected SourceOrdinaryMethodOrUserDefinedOperatorSymbol(NamedTypeSymbol containingType, SyntaxReference syntaxReferenceOpt, Location location, bool isIterator, (DeclarationModifiers declarationModifiers, Flags flags) modifiersAndFlags) 120var modifierType = Binder.GetWellKnownType(DeclaringCompilation, WellKnownType.System_Runtime_InteropServices_InAttribute, diagnostics, ReturnTypeLocation);
Symbols\Source\SourceOrdinaryMethodSymbol.cs (8)
24NamedTypeSymbol containingType, 49NamedTypeSymbol containingType, 90NamedTypeSymbol containingType, Location location, MethodDeclarationSyntax syntax, MethodKind methodKind, 436private static DeclarationModifiers MakeDeclarationModifiers(MethodDeclarationSyntax syntax, NamedTypeSymbol containingType, Location location, DeclarationModifiers allowedModifiers, BindingDiagnosticBag diagnostics) 727private static (DeclarationModifiers mods, bool hasExplicitAccessMod) MakeModifiers(MethodDeclarationSyntax syntax, NamedTypeSymbol containingType, MethodKind methodKind, bool hasBody, Location location, BindingDiagnosticBag diagnostics) 964NamedTypeSymbol containingType, 1021NamedTypeSymbol containingType, 1180if (tpEnclosing.ContainingSymbol is NamedTypeSymbol { IsExtension: true })
Symbols\Source\SourceOrdinaryMethodSymbolBase.cs (1)
30NamedTypeSymbol containingType,
Symbols\Source\SourceParameterSymbol.cs (1)
111Debug.Assert((owner.Kind == SymbolKind.Method) || (owner.Kind == SymbolKind.Property) || owner is NamedTypeSymbol { IsExtension: true });
Symbols\Source\SourcePropertyAccessorSymbol.cs (10)
30NamedTypeSymbol containingType, 67NamedTypeSymbol containingType, 88NamedTypeSymbol containingType, 114NamedTypeSymbol containingType, 131NamedTypeSymbol containingType, 166NamedTypeSymbol containingType, 200NamedTypeSymbol containingType, 249NamedTypeSymbol containingType, SourcePropertySymbolBase property, DeclarationModifiers propertyModifiers, Location location, 422var isInitOnlyType = Binder.GetWellKnownType(this.DeclaringCompilation, 534private static DeclarationModifiers MakeModifiers(NamedTypeSymbol containingType, SyntaxTokenList modifiers, bool isExplicitInterfaceImplementation,
Symbols\Source\SourcePropertySymbol.cs (3)
372NamedTypeSymbol containingType, 589NamedTypeSymbol containingType = ContainingType; 672var containingTypeForFileTypeCheck = this.ContainingType;
Symbols\Source\SourcePropertySymbolBase.cs (3)
272var modifierType = Binder.GetWellKnownType(DeclaringCompilation, WellKnownType.System_Runtime_InteropServices_InAttribute, diagnostics, TypeLocation); 535public override NamedTypeSymbol ContainingType 1464internal override (CSharpAttributeData?, BoundAttribute?) EarlyDecodeWellKnownAttribute(ref EarlyDecodeWellKnownAttributeArguments<EarlyWellKnownAttributeBinder, NamedTypeSymbol, AttributeSyntax, AttributeLocation> arguments)
Symbols\Source\SourceTypeParameterSymbol.cs (4)
99internal override ImmutableArray<NamedTypeSymbol> GetInterfaces(ConsList<TypeParameterSymbol> inProgress) 102return (bounds != null) ? bounds.Interfaces : ImmutableArray<NamedTypeSymbol>.Empty; 105internal override NamedTypeSymbol GetEffectiveBaseClass(ConsList<TypeParameterSymbol> inProgress) 345private NamedTypeSymbol GetDefaultBaseType()
Symbols\Source\SourceUserDefinedOperatorSymbolBase.cs (1)
924public static bool IsSelfConstrainedTypeParameter(TypeSymbol type, NamedTypeSymbol containingType)
Symbols\Source\SynthesizedAttributeData.cs (2)
47public override NamedTypeSymbol AttributeClass => _wellKnownMember.ContainingType; 77public override NamedTypeSymbol AttributeClass => _original.AttributeClass;
Symbols\Source\SynthesizedSourceOrdinaryMethodSymbol.cs (1)
18/// Common base for ordinary methods synthesized by compiler and added to the <see cref="NamedTypeSymbol.GetMembers()"/> result.
Symbols\SubstitutedFieldSymbol.cs (3)
46public override NamedTypeSymbol ContainingType 97internal override NamedTypeSymbol FixedImplementationType(PEModuleBuilder emitModule) 103return (NamedTypeSymbol)_containingType.TypeSubstitution.SubstituteType(OriginalDefinition.FixedImplementationType(emitModule)).Type;
Symbols\SubstitutedMethodSymbol.cs (3)
41internal SubstitutedMethodSymbol(NamedTypeSymbol containingSymbol, MethodSymbol originalDefinition) 203public override NamedTypeSymbol ContainingType 207return _containingSymbol is NamedTypeSymbol nt ? nt : _containingSymbol.ContainingType;
Symbols\SubstitutedNamedTypeSymbol.cs (26)
27private static readonly Func<Symbol, NamedTypeSymbol, Symbol> s_symbolAsMemberFunc = SymbolExtensions.SymbolAsMember; 47private NamedTypeSymbol _lazyBaseType = ErrorTypeSymbol.UnknownResultType; 57protected SubstitutedNamedTypeSymbol(Symbol newContainer, TypeMap map, NamedTypeSymbol originalDefinition, NamedTypeSymbol constructedFrom = null, bool unbound = false, TupleExtraData tupleData = null) 131public override NamedTypeSymbol ContainingType 135return _newContainer as NamedTypeSymbol; 144public sealed override NamedTypeSymbol OriginalDefinition 149internal sealed override NamedTypeSymbol GetDeclaredBaseType(ConsList<TypeSymbol> basesBeingResolved) 154internal sealed override ImmutableArray<NamedTypeSymbol> GetDeclaredInterfaces(ConsList<TypeSymbol> basesBeingResolved) 156return _unbound ? ImmutableArray<NamedTypeSymbol>.Empty : Map.SubstituteNamedTypes(OriginalDefinition.GetDeclaredInterfaces(basesBeingResolved)); 159internal sealed override NamedTypeSymbol BaseTypeNoUseSiteDiagnostics 170var baseType = Map.SubstituteNamedType(OriginalDefinition.BaseTypeNoUseSiteDiagnostics); 179internal sealed override ImmutableArray<NamedTypeSymbol> InterfacesNoUseSiteDiagnostics(ConsList<TypeSymbol> basesBeingResolved) 181return _unbound ? ImmutableArray<NamedTypeSymbol>.Empty : Map.SubstituteNamedTypes(OriginalDefinition.InterfacesNoUseSiteDiagnostics(basesBeingResolved)); 184internal override ImmutableArray<NamedTypeSymbol> GetInterfacesToEmit() 214internal sealed override ImmutableArray<NamedTypeSymbol> GetTypeMembersUnordered() 219public sealed override ImmutableArray<NamedTypeSymbol> GetTypeMembers() 224public sealed override ImmutableArray<NamedTypeSymbol> GetTypeMembers(ReadOnlyMemory<char> name) 229public sealed override ImmutableArray<NamedTypeSymbol> GetTypeMembers(ReadOnlyMemory<char> name, int arity) 238internal sealed override ImmutableArray<NamedTypeSymbol> CandidateClosedSubtypeDefinitions => OriginalDefinition.CandidateClosedSubtypeDefinitions; 256builder.Add(((NamedTypeSymbol)t).AsMember(this)); 306builder.Add(((NamedTypeSymbol)t).AsMember(this)); 416public sealed override NamedTypeSymbol EnumUnderlyingType 444internal sealed override NamedTypeSymbol ComImportCoClass 484internal sealed override NamedTypeSymbol AsNativeInteger() => throw ExceptionUtilities.Unreachable(); 486internal sealed override NamedTypeSymbol NativeIntegerUnderlyingType => null;
Symbols\SubstitutedParameterSymbol.cs (1)
29internal SubstitutedParameterSymbol(NamedTypeSymbol containingSymbol, TypeMap map, ParameterSymbol originalParameter) :
Symbols\SubstitutedPropertySymbol.cs (1)
47public override NamedTypeSymbol ContainingType
Symbols\SubstitutedTypeParameterSymbol.cs (2)
177internal override ImmutableArray<NamedTypeSymbol> GetInterfaces(ConsList<TypeParameterSymbol> inProgress) 182internal override NamedTypeSymbol GetEffectiveBaseClass(ConsList<TypeParameterSymbol> inProgress)
Symbols\Symbol.cs (7)
112public virtual NamedTypeSymbol ContainingType 118NamedTypeSymbol containerAsType = container as NamedTypeSymbol; 656var namedType = (NamedTypeSymbol)this; 1290NamedTypeSymbol modifierType = ((CSharpCustomModifier)modifier).ModifierSymbol; 1775&& variable is ParameterSymbol { ContainingSymbol: NamedTypeSymbol { IsExtension: true } })
Symbols\Symbol_Attributes.cs (20)
67var namedType = (NamedTypeSymbol)this; 122internal virtual void EarlyDecodeWellKnownAttributeType(NamedTypeSymbol attributeType, AttributeSyntax attributeSyntax) 142internal virtual (CSharpAttributeData?, BoundAttribute?) EarlyDecodeWellKnownAttribute(ref EarlyDecodeWellKnownAttributeArguments<EarlyWellKnownAttributeBinder, NamedTypeSymbol, AttributeSyntax, AttributeLocation> arguments) 148ref EarlyDecodeWellKnownAttributeArguments<EarlyWellKnownAttributeBinder, NamedTypeSymbol, AttributeSyntax, AttributeLocation> arguments, 153var type = arguments.AttributeType; 337var attributeTypesBuilder = new NamedTypeSymbol[totalAttributesCount]; 353ImmutableArray<NamedTypeSymbol> boundAttributeTypes = attributeTypesBuilder.AsImmutableOrNull(); 556var boundTypeSymbol = (NamedTypeSymbol)boundType.Type; 779ImmutableArray<NamedTypeSymbol> boundAttributeTypes, 792var arguments = new EarlyDecodeWellKnownAttributeArguments<EarlyWellKnownAttributeBinder, NamedTypeSymbol, AttributeSyntax, AttributeLocation>(); 797NamedTypeSymbol boundAttributeType = boundAttributeTypes[i]; 826private void EarlyDecodeWellKnownAttributeTypes(ImmutableArray<NamedTypeSymbol> attributeTypes, ImmutableArray<AttributeSyntax> attributeSyntaxList) 833var attributeType = attributeTypes[i]; 863HashSet<NamedTypeSymbol> uniqueAttributeTypes = new HashSet<NamedTypeSymbol>(); 904HashSet<NamedTypeSymbol> uniqueAttributeTypes) 908NamedTypeSymbol attributeType = attribute.AttributeClass; 911if (this is NamedTypeSymbol { IsExtension: true })
Symbols\SymbolExtensions.cs (23)
34public static NamedTypeSymbol ConstructIfGeneric(this NamedTypeSymbol type, ImmutableArray<TypeWithAnnotations> typeArguments) 42return symbol is NamedTypeSymbol && (object?)symbol.ContainingType != null; 48public static bool IsAccessibleViaInheritance(this NamedTypeSymbol superType, NamedTypeSymbol subType, ref CompoundUseSiteInfo<AssemblySymbol> useSiteInfo) 61NamedTypeSymbol originalSuperType = superType.OriginalDefinition; 62for (NamedTypeSymbol? current = subType; 74foreach (NamedTypeSymbol current in subType.AllInterfacesWithDefinitionUseSiteDiagnostics(ref useSiteInfo)) 163NamedTypeSymbol type; 186type = (NamedTypeSymbol)symbol; 206return ((NamedTypeSymbol)symbol).ConstructedFrom; 304var upperLevelType = symbol.Kind == SymbolKind.NamedType ? (NamedTypeSymbol)symbol : symbol.ContainingType; 338return ((NamedTypeSymbol)symbol).Arity; 414internal static NamedTypeSymbol? EnsureCSharpSymbolOrNull(this INamedTypeSymbol? symbol, string paramName) 416return (NamedTypeSymbol?)EnsureCSharpSymbolOrNull((ISymbol?)symbol, paramName); 569internal static INamedTypeSymbol? GetPublicSymbol(this NamedTypeSymbol? symbol) 707internal static ImmutableArray<INamedTypeSymbol> GetPublicSymbols(this ImmutableArray<NamedTypeSymbol> symbols) 772internal static NamedTypeSymbol? GetSymbol(this INamedTypeSymbol? symbol) 774return symbol.GetSymbol<NamedTypeSymbol>(); 826return parameter.ContainingSymbol is NamedTypeSymbol { IsExtension: true }; 837internal static ImmutableArray<TypeWithAnnotations> GetAllTypeArgumentsNoUseSiteDiagnostics(this NamedTypeSymbol symbol) 840for (var current = symbol; current is not null; current = current.ContainingType)
Symbols\SymbolVisitor.cs (1)
80public virtual void VisitNamedType(NamedTypeSymbol symbol)
Symbols\SymbolVisitor`1.cs (1)
80public virtual TResult VisitNamedType(NamedTypeSymbol symbol)
Symbols\SymbolVisitor`2.cs (2)
88/// Called when visiting a <see cref="NamedTypeSymbol" />; Override this with specific 94public virtual TResult VisitNamedType(NamedTypeSymbol symbol, TArgument argument)
Symbols\Synthesized\ReadOnlyListType\SynthesizedReadOnlyListEnumeratorTypeSymbol.cs (20)
20private readonly ImmutableArray<NamedTypeSymbol> _interfaces; 35var iDisposable = compilation.GetSpecialType(SpecialType.System_IDisposable); 36var iEnumerator = compilation.GetSpecialType(SpecialType.System_Collections_IEnumerator); 37var iEnumeratorT = compilation.GetSpecialType(SpecialType.System_Collections_Generic_IEnumerator_T).Construct(typeArgs); 133public override NamedTypeSymbol ConstructedFrom => this; 185internal override ImmutableArray<NamedTypeSymbol> CandidateClosedSubtypeDefinitions => []; 213internal override NamedTypeSymbol? NativeIntegerUnderlyingType => null; 215internal override NamedTypeSymbol BaseTypeNoUseSiteDiagnostics => ContainingAssembly.GetSpecialType(SpecialType.System_Object); 227public override ImmutableArray<NamedTypeSymbol> GetTypeMembers() => ImmutableArray<NamedTypeSymbol>.Empty; 229public override ImmutableArray<NamedTypeSymbol> GetTypeMembers(ReadOnlyMemory<char> name, int arity) => ImmutableArray<NamedTypeSymbol>.Empty; 231public override ImmutableArray<NamedTypeSymbol> GetTypeMembers(ReadOnlyMemory<char> name) => ImmutableArray<NamedTypeSymbol>.Empty; 233protected override NamedTypeSymbol WithTupleDataCore(TupleExtraData newData) => throw ExceptionUtilities.Unreachable(); 235internal override NamedTypeSymbol AsNativeInteger() => throw ExceptionUtilities.Unreachable(); 241internal override NamedTypeSymbol GetDeclaredBaseType(ConsList<TypeSymbol> basesBeingResolved) => BaseTypeNoUseSiteDiagnostics; 243internal override ImmutableArray<NamedTypeSymbol> GetDeclaredInterfaces(ConsList<TypeSymbol> basesBeingResolved) => _interfaces; 251internal override ImmutableArray<NamedTypeSymbol> GetInterfacesToEmit() => _interfaces; 282internal override ImmutableArray<NamedTypeSymbol> InterfacesNoUseSiteDiagnostics(ConsList<TypeSymbol>? basesBeingResolved = null) => _interfaces;
Symbols\Synthesized\ReadOnlyListType\SynthesizedReadOnlyListMethod.cs (1)
13internal SynthesizedReadOnlyListMethod(NamedTypeSymbol containingType, MethodSymbol interfaceMethod, GenerateMethodBodyDelegate generateMethodBody) :
Symbols\Synthesized\ReadOnlyListType\SynthesizedReadOnlyListProperty.cs (2)
12private readonly NamedTypeSymbol _containingType; 16NamedTypeSymbol containingType,
Symbols\Synthesized\ReadOnlyListType\SynthesizedReadOnlyListTypeParameterSymbol.cs (3)
63internal override NamedTypeSymbol GetEffectiveBaseClass(ConsList<TypeParameterSymbol> inProgress) => ContainingAssembly.GetSpecialType(SpecialType.System_Object); 65internal override ImmutableArray<NamedTypeSymbol> GetInterfaces(ConsList<TypeParameterSymbol> inProgress) => ImmutableArray<NamedTypeSymbol>.Empty;
Symbols\Synthesized\ReadOnlyListType\SynthesizedReadOnlyListTypeSymbol.cs (34)
128internal static NamedTypeSymbol Create(SourceModuleSymbol containingModule, string name, SynthesizedReadOnlyListKind kind) 258private readonly ImmutableArray<NamedTypeSymbol> _interfaces; 261private readonly NamedTypeSymbol? _enumeratorType; 287var iEnumerable = compilation.GetSpecialType(SpecialType.System_Collections_IEnumerable); 288var iCollection = compilation.GetWellKnownType(WellKnownType.System_Collections_ICollection); 289var iList = compilation.GetWellKnownType(WellKnownType.System_Collections_IList); 290var iEnumerableT = compilation.GetSpecialType(SpecialType.System_Collections_Generic_IEnumerable_T).Construct(typeArgs); 291var iReadOnlyCollectionT = compilation.GetSpecialType(SpecialType.System_Collections_Generic_IReadOnlyCollection_T).Construct(typeArgs); 292var iReadOnlyListT = compilation.GetSpecialType(SpecialType.System_Collections_Generic_IReadOnlyList_T).Construct(typeArgs); 293var iCollectionT = compilation.GetSpecialType(SpecialType.System_Collections_Generic_ICollection_T).Construct(typeArgs); 294var iListT = compilation.GetSpecialType(SpecialType.System_Collections_Generic_IList_T).Construct(typeArgs); 479var enumeratorType = containingType._enumeratorType; 487NamedTypeSymbol interfaceType = interfaceMethod.ContainingType; 586NamedTypeSymbol interfaceType = interfaceMethod.ContainingType; 629NamedTypeSymbol objectType = f.SpecialType(SpecialType.System_Object); 652NamedTypeSymbol interfaceType = interfaceMethod.ContainingType; 736NamedTypeSymbol interfaceType = interfaceMethod.ContainingType; 789var equalityComparerType = equalityComparer_Equals.ContainingType; 790var constructedEqualityComparer = equalityComparerType.Construct(fieldType); 820return symbol.SymbolAsMember((NamedTypeSymbol)_field.Type); 846public override NamedTypeSymbol ConstructedFrom => this; 898internal override ImmutableArray<NamedTypeSymbol> CandidateClosedSubtypeDefinitions => []; 926internal override NamedTypeSymbol? NativeIntegerUnderlyingType => null; 928internal override NamedTypeSymbol BaseTypeNoUseSiteDiagnostics => ContainingAssembly.GetSpecialType(SpecialType.System_Object); 940public override ImmutableArray<NamedTypeSymbol> GetTypeMembers() 943: ImmutableArray<NamedTypeSymbol>.Empty; 945public override ImmutableArray<NamedTypeSymbol> GetTypeMembers(ReadOnlyMemory<char> name, int arity) 948public override ImmutableArray<NamedTypeSymbol> GetTypeMembers(ReadOnlyMemory<char> name) 951protected override NamedTypeSymbol WithTupleDataCore(TupleExtraData newData) => throw ExceptionUtilities.Unreachable(); 953internal override NamedTypeSymbol AsNativeInteger() => throw ExceptionUtilities.Unreachable(); 959internal override NamedTypeSymbol GetDeclaredBaseType(ConsList<TypeSymbol> basesBeingResolved) => BaseTypeNoUseSiteDiagnostics; 961internal override ImmutableArray<NamedTypeSymbol> GetDeclaredInterfaces(ConsList<TypeSymbol> basesBeingResolved) => _interfaces; 969internal override ImmutableArray<NamedTypeSymbol> GetInterfacesToEmit() => _interfaces; 1006internal override ImmutableArray<NamedTypeSymbol> InterfacesNoUseSiteDiagnostics(ConsList<TypeSymbol>? basesBeingResolved = null) => _interfaces;
Symbols\Synthesized\Records\SynthesizedPrimaryConstructor.cs (1)
144internal override (CSharpAttributeData?, BoundAttribute?) EarlyDecodeWellKnownAttribute(ref EarlyDecodeWellKnownAttributeArguments<EarlyWellKnownAttributeBinder, NamedTypeSymbol, AttributeSyntax, AttributeLocation> arguments)
Symbols\Synthesized\Records\SynthesizedPrimaryConstructorParameterBackingFieldSymbol.cs (1)
68public override NamedTypeSymbol ContainingType
Symbols\Synthesized\Records\SynthesizedRecordBaseEquals.cs (1)
66NamedTypeSymbol objectType = F.SpecialType(SpecialType.System_Object);
Symbols\Synthesized\Records\SynthesizedRecordClone.cs (3)
83private static MethodSymbol? VirtualCloneInBase(NamedTypeSymbol containingType) 85NamedTypeSymbol baseType = containingType.BaseTypeNoUseSiteDiagnostics; 143if (containingType.IsObjectType() || containingType is not NamedTypeSymbol containingNamedType)
Symbols\Synthesized\Records\SynthesizedRecordCopyCtor.cs (3)
89internal static MethodSymbol? FindCopyConstructor(NamedTypeSymbol containingType, NamedTypeSymbol within, ref CompoundUseSiteInfo<AssemblySymbol> useSiteInfo) 145NamedTypeSymbol containingType = member.ContainingType;
Symbols\Synthesized\Records\SynthesizedRecordEqualityContractProperty.cs (2)
105var baseType = overriding.ContainingType.BaseTypeNoUseSiteDiagnostics; 144NamedTypeSymbol containingType,
Symbols\Synthesized\Records\SynthesizedRecordPrintMembers.cs (3)
219var objectType = F.SpecialType(SpecialType.System_Object); 269NamedTypeSymbol baseType = overriding.ContainingType.BaseTypeNoUseSiteDiagnostics; 305private static bool IsReadOnly(NamedTypeSymbol containingType, IEnumerable<Symbol> userDefinedMembers)
Symbols\Synthesized\Records\SynthesizedRecordToString.cs (1)
56var stringBuilder = F.WellKnownType(WellKnownType.System_Text_StringBuilder);
Symbols\Synthesized\SynthesizedBackingFieldSymbol.cs (1)
270public override NamedTypeSymbol ContainingType
Symbols\Synthesized\SynthesizedContainer.cs (17)
75protected override NamedTypeSymbol WithTupleDataCore(TupleExtraData newData) 90public override NamedTypeSymbol ConstructedFrom => this; 113internal sealed override ImmutableArray<NamedTypeSymbol> CandidateClosedSubtypeDefinitions => []; 150public override ImmutableArray<NamedTypeSymbol> GetTypeMembers() => ImmutableArray<NamedTypeSymbol>.Empty; 152public override ImmutableArray<NamedTypeSymbol> GetTypeMembers(ReadOnlyMemory<char> name) => ImmutableArray<NamedTypeSymbol>.Empty; 154public override ImmutableArray<NamedTypeSymbol> GetTypeMembers(ReadOnlyMemory<char> name, int arity) => ImmutableArray<NamedTypeSymbol>.Empty; 164internal override ImmutableArray<NamedTypeSymbol> InterfacesNoUseSiteDiagnostics(ConsList<TypeSymbol> basesBeingResolved) => ImmutableArray<NamedTypeSymbol>.Empty; 166internal override ImmutableArray<NamedTypeSymbol> GetInterfacesToEmit() => CalculateInterfacesToEmit(); 168internal override NamedTypeSymbol BaseTypeNoUseSiteDiagnostics => ContainingAssembly.GetSpecialType(this.TypeKind == TypeKind.Struct ? SpecialType.System_ValueType : SpecialType.System_Object); 170internal override NamedTypeSymbol GetDeclaredBaseType(ConsList<TypeSymbol> basesBeingResolved) => BaseTypeNoUseSiteDiagnostics; 172internal override ImmutableArray<NamedTypeSymbol> GetDeclaredInterfaces(ConsList<TypeSymbol> basesBeingResolved) => InterfacesNoUseSiteDiagnostics(basesBeingResolved); 214internal sealed override NamedTypeSymbol AsNativeInteger() => throw ExceptionUtilities.Unreachable(); 216internal sealed override NamedTypeSymbol NativeIntegerUnderlyingType => null;
Symbols\Synthesized\SynthesizedDelegateSymbol.cs (3)
17public SynthesizedDelegateConstructor(NamedTypeSymbol containingType, TypeSymbol objectType, TypeSymbol intPtrType) 53private readonly NamedTypeSymbol _containingType; 56NamedTypeSymbol containingType,
Symbols\Synthesized\SynthesizedEmbeddedAttributeSymbol.cs (23)
32private readonly NamedTypeSymbol _baseType; 40NamedTypeSymbol baseType) 63public override NamedTypeSymbol ConstructedFrom => this; 75internal sealed override ImmutableArray<NamedTypeSymbol> CandidateClosedSubtypeDefinitions => []; 150internal override NamedTypeSymbol BaseTypeNoUseSiteDiagnostics => _baseType; 154protected override NamedTypeSymbol WithTupleDataCore(TupleExtraData newData) => throw ExceptionUtilities.Unreachable(); 160public override ImmutableArray<NamedTypeSymbol> GetTypeMembers() => ImmutableArray<NamedTypeSymbol>.Empty; 162public override ImmutableArray<NamedTypeSymbol> GetTypeMembers(ReadOnlyMemory<char> name) => ImmutableArray<NamedTypeSymbol>.Empty; 164public override ImmutableArray<NamedTypeSymbol> GetTypeMembers(ReadOnlyMemory<char> name, int arity) => ImmutableArray<NamedTypeSymbol>.Empty; 170internal override NamedTypeSymbol GetDeclaredBaseType(ConsList<TypeSymbol> basesBeingResolved) => _baseType; 172internal override ImmutableArray<NamedTypeSymbol> GetDeclaredInterfaces(ConsList<TypeSymbol> basesBeingResolved) => ImmutableArray<NamedTypeSymbol>.Empty; 180internal override ImmutableArray<NamedTypeSymbol> GetInterfacesToEmit() => ImmutableArray<NamedTypeSymbol>.Empty; 184internal override ImmutableArray<NamedTypeSymbol> InterfacesNoUseSiteDiagnostics(ConsList<TypeSymbol> basesBeingResolved = null) => ImmutableArray<NamedTypeSymbol>.Empty; 211internal sealed override NamedTypeSymbol AsNativeInteger() => throw ExceptionUtilities.Unreachable(); 213internal sealed override NamedTypeSymbol NativeIntegerUnderlyingType => null; 253NamedTypeSymbol baseType) 267NamedTypeSymbol containingType,
Symbols\Synthesized\SynthesizedEmbeddedExtensionMarkerNameAttributeSymbol.cs (1)
26NamedTypeSymbol systemAttributeType,
Symbols\Synthesized\SynthesizedEmbeddedLifetimeAnnotationAttributeSymbol.cs (1)
18NamedTypeSymbol systemAttributeType)
Symbols\Synthesized\SynthesizedEmbeddedMemorySafetyRulesAttributeSymbol.cs (1)
37NamedTypeSymbol systemAttributeType,
Symbols\Synthesized\SynthesizedEmbeddedNativeIntegerAttributeSymbol.cs (1)
26NamedTypeSymbol systemAttributeType,
Symbols\Synthesized\SynthesizedEmbeddedNullableAttributeSymbol.cs (2)
28NamedTypeSymbol systemAttributeType, 117NamedTypeSymbol containingType,
Symbols\Synthesized\SynthesizedEmbeddedNullableContextAttributeSymbol.cs (1)
25NamedTypeSymbol systemAttributeType,
Symbols\Synthesized\SynthesizedEmbeddedNullablePublicOnlyAttributeSymbol.cs (1)
25NamedTypeSymbol systemAttributeType,
Symbols\Synthesized\SynthesizedEmbeddedRefSafetyRulesAttributeSymbol.cs (1)
23NamedTypeSymbol systemAttributeType,
Symbols\Synthesized\SynthesizedEntryPointSymbol.cs (8)
25private readonly NamedTypeSymbol _containingType; 29var containingType = initializerMethod.ContainingType; 33var systemObject = Binder.GetSpecialType(compilation, SpecialType.System_Object, DummySyntax(), diagnostics); 43var systemVoid = Binder.GetSpecialType(compilation, SpecialType.System_Void, DummySyntax(), diagnostics); 48private SynthesizedEntryPointSymbol(NamedTypeSymbol containingType) 350internal AsyncForwardEntryPoint(CSharpCompilation compilation, NamedTypeSymbol containingType, MethodSymbol userMain) : 486internal ScriptEntryPoint(NamedTypeSymbol containingType, TypeWithAnnotations returnType) : 576internal SubmissionEntryPoint(NamedTypeSymbol containingType, TypeWithAnnotations returnType, TypeSymbol submissionArrayType) :
Symbols\Synthesized\SynthesizedExplicitImplementationForwardingMethod.cs (1)
27public SynthesizedExplicitImplementationForwardingMethod(MethodSymbol interfaceMethod, MethodSymbol implementingMethod, NamedTypeSymbol implementingType)
Symbols\Synthesized\SynthesizedFieldSymbol.cs (1)
24NamedTypeSymbol containingType,
Symbols\Synthesized\SynthesizedFieldSymbolBase.cs (3)
20private readonly NamedTypeSymbol _containingType; 25NamedTypeSymbol containingType, 152public override NamedTypeSymbol ContainingType
Symbols\Synthesized\SynthesizedGlobalMethodSymbol.cs (1)
82public sealed override NamedTypeSymbol ContainingType
Symbols\Synthesized\SynthesizedHotReloadExceptionConstructorSymbol.cs (2)
14internal SynthesizedHotReloadExceptionConstructorSymbol(NamedTypeSymbol containingType, TypeSymbol stringType, TypeSymbol intType) : 55var delegateInvoke = (containingType.CreatedActionField.Type as NamedTypeSymbol)?.DelegateInvokeMethod;
Symbols\Synthesized\SynthesizedHotReloadExceptionSymbol.cs (16)
31private readonly NamedTypeSymbol _baseType; 39NamedTypeSymbol exceptionType, 40NamedTypeSymbol actionOfTType, 82public override ImmutableArray<NamedTypeSymbol> GetTypeMembers() => []; 83public override ImmutableArray<NamedTypeSymbol> GetTypeMembers(ReadOnlyMemory<char> name) => []; 84public override ImmutableArray<NamedTypeSymbol> GetTypeMembers(ReadOnlyMemory<char> name, int arity) => []; 100public override NamedTypeSymbol ConstructedFrom => this; 104internal override ImmutableArray<NamedTypeSymbol> CandidateClosedSubtypeDefinitions => []; 139internal override NamedTypeSymbol BaseTypeNoUseSiteDiagnostics => _baseType; 141protected override NamedTypeSymbol WithTupleDataCore(TupleExtraData newData) => throw ExceptionUtilities.Unreachable(); 144internal override NamedTypeSymbol GetDeclaredBaseType(ConsList<TypeSymbol> basesBeingResolved) => _baseType; 145internal override ImmutableArray<NamedTypeSymbol> GetDeclaredInterfaces(ConsList<TypeSymbol> basesBeingResolved) => []; 148internal override ImmutableArray<NamedTypeSymbol> GetInterfacesToEmit() => []; 150internal override ImmutableArray<NamedTypeSymbol> InterfacesNoUseSiteDiagnostics(ConsList<TypeSymbol>? basesBeingResolved = null) => []; 154internal sealed override NamedTypeSymbol AsNativeInteger() => throw ExceptionUtilities.Unreachable(); 155internal sealed override NamedTypeSymbol? NativeIntegerUnderlyingType => null;
Symbols\Synthesized\SynthesizedImplementationMethod.cs (3)
18private readonly NamedTypeSymbol _implementingType; 30NamedTypeSymbol implementingType, 120public sealed override NamedTypeSymbol ContainingType
Symbols\Synthesized\SynthesizedInlineArrayAsReadOnlySpanMethod.cs (2)
12internal SynthesizedInlineArrayAsReadOnlySpanMethod(SynthesizedPrivateImplementationDetailsType privateImplType, string synthesizedMethodName, NamedTypeSymbol spanType, NamedTypeSymbol intType)
Symbols\Synthesized\SynthesizedInlineArrayAsSpanMethod.cs (2)
12internal SynthesizedInlineArrayAsSpanMethod(SynthesizedPrivateImplementationDetailsType privateImplType, string synthesizedMethodName, NamedTypeSymbol spanType, NamedTypeSymbol intType)
Symbols\Synthesized\SynthesizedInlineArrayElementRefMethod.cs (1)
12internal SynthesizedInlineArrayElementRefMethod(SynthesizedPrivateImplementationDetailsType privateImplType, string synthesizedMethodName, NamedTypeSymbol intType)
Symbols\Synthesized\SynthesizedInlineArrayElementRefReadOnlyMethod.cs (1)
12internal SynthesizedInlineArrayElementRefReadOnlyMethod(SynthesizedPrivateImplementationDetailsType privateImplType, string synthesizedMethodName, NamedTypeSymbol intType)
Symbols\Synthesized\SynthesizedInlineArrayTypeSymbol.cs (22)
50public override NamedTypeSymbol ConstructedFrom => this; 100internal override ImmutableArray<NamedTypeSymbol> CandidateClosedSubtypeDefinitions => []; 134internal override NamedTypeSymbol? NativeIntegerUnderlyingType => null; 136internal override NamedTypeSymbol BaseTypeNoUseSiteDiagnostics => ContainingAssembly.GetSpecialType(SpecialType.System_ValueType); 148public override ImmutableArray<NamedTypeSymbol> GetTypeMembers() => ImmutableArray<NamedTypeSymbol>.Empty; 150public override ImmutableArray<NamedTypeSymbol> GetTypeMembers(ReadOnlyMemory<char> name, int arity) => ImmutableArray<NamedTypeSymbol>.Empty; 152public override ImmutableArray<NamedTypeSymbol> GetTypeMembers(ReadOnlyMemory<char> name) => ImmutableArray<NamedTypeSymbol>.Empty; 154protected override NamedTypeSymbol WithTupleDataCore(TupleExtraData newData) => throw ExceptionUtilities.Unreachable(); 156internal override NamedTypeSymbol AsNativeInteger() => throw ExceptionUtilities.Unreachable(); 162internal override NamedTypeSymbol GetDeclaredBaseType(ConsList<TypeSymbol> basesBeingResolved) => BaseTypeNoUseSiteDiagnostics; 164internal override ImmutableArray<NamedTypeSymbol> GetDeclaredInterfaces(ConsList<TypeSymbol> basesBeingResolved) => ImmutableArray<NamedTypeSymbol>.Empty; 172internal override ImmutableArray<NamedTypeSymbol> GetInterfacesToEmit() => ImmutableArray<NamedTypeSymbol>.Empty; 197internal override ImmutableArray<NamedTypeSymbol> InterfacesNoUseSiteDiagnostics(ConsList<TypeSymbol>? basesBeingResolved = null) => ImmutableArray<NamedTypeSymbol>.Empty; 268internal override NamedTypeSymbol GetEffectiveBaseClass(ConsList<TypeParameterSymbol> inProgress) => ContainingAssembly.GetSpecialType(SpecialType.System_Object); 270internal override ImmutableArray<NamedTypeSymbol> GetInterfaces(ConsList<TypeParameterSymbol> inProgress) => ImmutableArray<NamedTypeSymbol>.Empty;
Symbols\Synthesized\SynthesizedInstanceConstructor.cs (4)
18private readonly NamedTypeSymbol _containingType; 20internal SynthesizedInstanceConstructor(NamedTypeSymbol containingType) 60public sealed override NamedTypeSymbol ContainingType 198NamedTypeSymbol containingType = this.ContainingType;
Symbols\Synthesized\SynthesizedInteractiveInitializerMethod.cs (1)
266var taskT = compilation.GetWellKnownType(WellKnownType.System_Threading_Tasks_Task_T);
Symbols\Synthesized\SynthesizedIntrinsicOperatorSymbol.cs (2)
323public override NamedTypeSymbol ContainingType 327return _containingType as NamedTypeSymbol;
Symbols\Synthesized\SynthesizedLambdaCacheFieldSymbol.cs (1)
19public SynthesizedLambdaCacheFieldSymbol(NamedTypeSymbol containingType, TypeSymbol type, string name, MethodSymbol topLevelMethod, bool isReadOnly, bool isStatic)
Symbols\Synthesized\SynthesizedPrivateImplementationDetailsType.cs (21)
23private readonly NamedTypeSymbol _objectType; 25public SynthesizedPrivateImplementationDetailsType(PrivateImplementationDetails privateImplementationDetails, NamespaceSymbol globalNamespace, NamedTypeSymbol objectType) 43public override NamedTypeSymbol ConstructedFrom => this; 89internal override ImmutableArray<NamedTypeSymbol> CandidateClosedSubtypeDefinitions => []; 117internal override NamedTypeSymbol? NativeIntegerUnderlyingType => null; 119internal override NamedTypeSymbol BaseTypeNoUseSiteDiagnostics => _objectType; 131public override ImmutableArray<NamedTypeSymbol> GetTypeMembers() => ImmutableArray<NamedTypeSymbol>.Empty; 133public override ImmutableArray<NamedTypeSymbol> GetTypeMembers(ReadOnlyMemory<char> name, int arity) => ImmutableArray<NamedTypeSymbol>.Empty; 135public override ImmutableArray<NamedTypeSymbol> GetTypeMembers(ReadOnlyMemory<char> name) => ImmutableArray<NamedTypeSymbol>.Empty; 137protected override NamedTypeSymbol WithTupleDataCore(TupleExtraData newData) 142internal override NamedTypeSymbol AsNativeInteger() 154internal override NamedTypeSymbol GetDeclaredBaseType(ConsList<TypeSymbol> basesBeingResolved) => _objectType; 156internal override ImmutableArray<NamedTypeSymbol> GetDeclaredInterfaces(ConsList<TypeSymbol> basesBeingResolved) => ImmutableArray<NamedTypeSymbol>.Empty; 170internal override ImmutableArray<NamedTypeSymbol> GetInterfacesToEmit() => ImmutableArray<NamedTypeSymbol>.Empty; 195internal override ImmutableArray<NamedTypeSymbol> InterfacesNoUseSiteDiagnostics(ConsList<TypeSymbol>? basesBeingResolved = null) => ImmutableArray<NamedTypeSymbol>.Empty;
Symbols\Synthesized\SynthesizedStaticConstructor.cs (3)
14private readonly NamedTypeSymbol _containingType; 17internal SynthesizedStaticConstructor(NamedTypeSymbol containingType) 30public override NamedTypeSymbol ContainingType
Symbols\Synthesized\SynthesizedSubmissionConstructor.cs (1)
16internal SynthesizedSubmissionConstructor(NamedTypeSymbol containingType, BindingDiagnosticBag diagnostics)
Symbols\Synthesized\SynthesizedTypeParameterSymbol.cs (1)
31(ContainingSymbol is NamedTypeSymbol ? TypeParameterKind.Type :
Symbols\SynthesizedNamespaceSymbol.cs (6)
67public override ImmutableArray<NamedTypeSymbol> GetTypeMembers() 68=> ImmutableArray<NamedTypeSymbol>.Empty; 70public override ImmutableArray<NamedTypeSymbol> GetTypeMembers(ReadOnlyMemory<char> name) 71=> ImmutableArray<NamedTypeSymbol>.Empty; 73public override ImmutableArray<NamedTypeSymbol> GetTypeMembers(ReadOnlyMemory<char> name, int arity) 74=> ImmutableArray<NamedTypeSymbol>.Empty;
Symbols\SynthesizedSimpleMethodTypeParameterSymbol.cs (2)
115internal override ImmutableArray<NamedTypeSymbol> GetInterfaces(ConsList<TypeParameterSymbol> inProgress) 120internal override NamedTypeSymbol GetEffectiveBaseClass(ConsList<TypeParameterSymbol> inProgress)
Symbols\Tuples\TupleErrorFieldSymbol.cs (2)
39NamedTypeSymbol container, 193internal override FieldSymbol AsMember(NamedTypeSymbol newOwner)
Symbols\Tuples\TupleFieldSymbol.cs (16)
28protected readonly NamedTypeSymbol _containingTuple; 38NamedTypeSymbol container, 108NamedTypeSymbol originalContainer = ContainingType.OriginalDefinition; 209internal override FieldSymbol AsMember(NamedTypeSymbol newOwner) 213NamedTypeSymbol newUnderlyingOwner = GetNewUnderlyingOwner(newOwner); 217protected NamedTypeSymbol GetNewUnderlyingOwner(NamedTypeSymbol newOwner) 220NamedTypeSymbol newUnderlyingOwner = newOwner; 221while (currentIndex >= NamedTypeSymbol.ValueTupleRestIndex) 223newUnderlyingOwner = (NamedTypeSymbol)newUnderlyingOwner.TypeArgumentsWithAnnotationsNoUseSiteDiagnostics[NamedTypeSymbol.ValueTupleRestIndex].Type; 224currentIndex -= NamedTypeSymbol.ValueTupleRestIndex; 255NamedTypeSymbol container, 272Debug.Assert((correspondingDefaultFieldOpt is null) == (NamedTypeSymbol.TupleMemberName(tupleElementIndex + 1) == name)); 330internal override FieldSymbol AsMember(NamedTypeSymbol newOwner) 335NamedTypeSymbol newUnderlyingOwner = GetNewUnderlyingOwner(newOwner);
Symbols\Tuples\TupleTypeSymbol.cs (54)
29internal static NamedTypeSymbol CreateTuple( 52NamedTypeSymbol underlyingType = getTupleUnderlyingType(elementTypesWithAnnotations, syntax, compilation, diagnostics); 61var constructedType = CreateTuple(underlyingType, elementNames, errorPositions, elementLocations, locations); 73static NamedTypeSymbol getTupleUnderlyingType(ImmutableArray<TypeWithAnnotations> elementTypes, CSharpSyntaxNode? syntax, CSharpCompilation compilation, BindingDiagnosticBag? diagnostics) 79NamedTypeSymbol firstTupleType = compilation.GetWellKnownType(GetTupleType(remainder)); 85NamedTypeSymbol? chainedTupleType = null; 99public static NamedTypeSymbol CreateTuple( 100NamedTypeSymbol tupleCompatibleType, 110internal NamedTypeSymbol WithTupleDataFrom(NamedTypeSymbol original) 120internal NamedTypeSymbol? TupleUnderlyingType 126internal NamedTypeSymbol WithElementTypes(ImmutableArray<TypeWithAnnotations> newElementTypes) 131NamedTypeSymbol firstTupleType; 132NamedTypeSymbol? chainedTupleType; 133if (Arity < NamedTypeSymbol.ValueTupleRestPosition) 141var underlyingType = this; 144underlyingType = ((NamedTypeSymbol)underlyingType.TypeArgumentsWithAnnotationsNoUseSiteDiagnostics[NamedTypeSymbol.ValueTupleRestIndex].Type); 146while (underlyingType.Arity >= NamedTypeSymbol.ValueTupleRestPosition); 160internal NamedTypeSymbol WithElementNames(ImmutableArray<string?> newElementNames, 170private NamedTypeSymbol WithTupleData(TupleExtraData newData) 195protected abstract NamedTypeSymbol WithTupleDataCore(TupleExtraData newData); 203internal static void GetUnderlyingTypeChain(NamedTypeSymbol underlyingTupleType, ArrayBuilder<NamedTypeSymbol> underlyingTupleTypeChain) 205NamedTypeSymbol currentType = underlyingTupleType; 210if (currentType.Arity == NamedTypeSymbol.ValueTupleRestPosition) 212currentType = (NamedTypeSymbol)currentType.TypeArgumentsWithAnnotationsNoUseSiteDiagnostics[NamedTypeSymbol.ValueTupleRestPosition - 1].Type; 231private static NamedTypeSymbol ConstructTupleUnderlyingType(NamedTypeSymbol firstTupleType, NamedTypeSymbol? chainedTupleTypeOpt, ImmutableArray<TypeWithAnnotations> elementTypes) 239NamedTypeSymbol currentSymbol = firstTupleType.Construct(ImmutableArray.Create(elementTypes, (chainLength - 1) * (ValueTupleRestPosition - 1), remainder)); 251private static void ReportUseSiteAndObsoleteDiagnostics(CSharpSyntaxNode? syntax, BindingDiagnosticBag diagnostics, NamedTypeSymbol firstTupleType) 267NamedTypeSymbol firstTupleType = compilation.GetWellKnownType(GetTupleType(remainder)); 272NamedTypeSymbol chainedTupleType = compilation.GetWellKnownType(GetTupleType(ValueTupleRestPosition)); 486internal static Symbol? GetWellKnownMemberInType(NamedTypeSymbol type, WellKnownMember relativeMember, BindingDiagnosticBag diagnostics, SyntaxNode? syntax) 515static Symbol? GetWellKnownMemberInType(NamedTypeSymbol type, WellKnownMember relativeMember) 578NamedTypeSymbol currentValueTuple = this; 710var oldUnderlying = currentValueTuple; 711currentValueTuple = (NamedTypeSymbol)oldUnderlying.TypeArgumentsWithAnnotationsNoUseSiteDiagnostics[ValueTupleRestIndex].Type; 737NamedTypeSymbol container = getNestedTupleUnderlyingType(this, fieldChainLength - 1).OriginalDefinition; 787static NamedTypeSymbol getNestedTupleUnderlyingType(NamedTypeSymbol topLevelUnderlyingType, int depth) 789NamedTypeSymbol found = topLevelUnderlyingType; 792found = (NamedTypeSymbol)found.TypeArgumentsWithAnnotationsNoUseSiteDiagnostics[ValueTupleRestPosition - 1].Type; 853private TypeSymbol MergeTupleNames(NamedTypeSymbol other, NamedTypeSymbol mergedType) 917internal NamedTypeSymbol TupleUnderlyingType { get; } 919internal TupleExtraData(NamedTypeSymbol underlyingType) 929internal TupleExtraData(NamedTypeSymbol underlyingType, ImmutableArray<string?> elementNames, 967public ImmutableArray<TypeWithAnnotations> TupleElementTypesWithAnnotations(NamedTypeSymbol tuple) 977static ImmutableArray<TypeWithAnnotations> collectTupleElementTypesWithAnnotations(NamedTypeSymbol tuple) 999public ImmutableArray<FieldSymbol> TupleElements(NamedTypeSymbol tuple) 1009ImmutableArray<FieldSymbol> collectTupleElementFields(NamedTypeSymbol tuple)
Symbols\TypeMap.cs (4)
61private static SmallDictionary<TypeParameterSymbol, TypeWithAnnotations> ForType(NamedTypeSymbol containingType) 69internal TypeMap(NamedTypeSymbol containingType, ImmutableArray<TypeParameterSymbol> typeParameters, ImmutableArray<TypeWithAnnotations> typeArguments) 139internal TypeMap WithAlphaRename(NamedTypeSymbol oldOwner, NamedTypeSymbol newOwner, out ImmutableArray<TypeParameterSymbol> newTypeParameters)
Symbols\TypeParameterBounds.cs (4)
25ImmutableArray<NamedTypeSymbol> interfaces, 26NamedTypeSymbol effectiveBaseClass, 57public readonly ImmutableArray<NamedTypeSymbol> Interfaces; 62public readonly NamedTypeSymbol EffectiveBaseClass;
Symbols\TypeParameterSymbol.cs (24)
135public NamedTypeSymbol DeclaringType 139return this.ContainingSymbol as NamedTypeSymbol; 156public sealed override ImmutableArray<NamedTypeSymbol> GetTypeMembers() 158return ImmutableArray<NamedTypeSymbol>.Empty; 162public sealed override ImmutableArray<NamedTypeSymbol> GetTypeMembers(ReadOnlyMemory<char> name) 164return ImmutableArray<NamedTypeSymbol>.Empty; 168public sealed override ImmutableArray<NamedTypeSymbol> GetTypeMembers(ReadOnlyMemory<char> name, int arity) 170return ImmutableArray<NamedTypeSymbol>.Empty; 241internal sealed override NamedTypeSymbol BaseTypeNoUseSiteDiagnostics => null; 243internal sealed override ImmutableArray<NamedTypeSymbol> InterfacesNoUseSiteDiagnostics(ConsList<TypeSymbol> basesBeingResolved = null) 245return ImmutableArray<NamedTypeSymbol>.Empty; 248protected sealed override ImmutableArray<NamedTypeSymbol> GetAllInterfaces() 250return ImmutableArray<NamedTypeSymbol>.Empty; 260internal NamedTypeSymbol EffectiveBaseClassNoUseSiteDiagnostics 269internal NamedTypeSymbol EffectiveBaseClass(ref CompoundUseSiteInfo<AssemblySymbol> useSiteInfo) 272var result = EffectiveBaseClassNoUseSiteDiagnostics; 285internal ImmutableArray<NamedTypeSymbol> EffectiveInterfacesNoUseSiteDiagnostics 294internal ImmutableArray<NamedTypeSymbol> EffectiveInterfacesWithDefinitionUseSiteDiagnostics(ref CompoundUseSiteInfo<AssemblySymbol> useSiteInfo) 298foreach (var iface in result) 336internal ImmutableArray<NamedTypeSymbol> AllEffectiveInterfacesNoUseSiteDiagnostics 344internal ImmutableArray<NamedTypeSymbol> AllEffectiveInterfacesWithDefinitionUseSiteDiagnostics(ref CompoundUseSiteInfo<AssemblySymbol> useSiteInfo) 356foreach (var iface in result) 386internal abstract ImmutableArray<NamedTypeSymbol> GetInterfaces(ConsList<TypeParameterSymbol> inProgress); 388internal abstract NamedTypeSymbol GetEffectiveBaseClass(ConsList<TypeParameterSymbol> inProgress);
Symbols\TypeSymbol.cs (61)
50internal ImmutableArray<NamedTypeSymbol> allInterfaces; 55internal MultiDictionary<NamedTypeSymbol, NamedTypeSymbol> interfacesAndTheirBaseInterfaces; 57internal static readonly MultiDictionary<NamedTypeSymbol, NamedTypeSymbol> EmptyInterfacesAndTheirBaseInterfaces = 58new MultiDictionary<NamedTypeSymbol, NamedTypeSymbol>(0, SymbolEqualityComparer.CLRSignature); 162internal abstract NamedTypeSymbol BaseTypeNoUseSiteDiagnostics { get; } 164internal NamedTypeSymbol BaseTypeWithDefinitionUseSiteDiagnostics(ref CompoundUseSiteInfo<AssemblySymbol> useSiteInfo) 166var result = BaseTypeNoUseSiteDiagnostics; 176internal NamedTypeSymbol BaseTypeOriginalDefinition(ref CompoundUseSiteInfo<AssemblySymbol> useSiteInfo) 178var result = BaseTypeNoUseSiteDiagnostics; 193internal abstract ImmutableArray<NamedTypeSymbol> InterfacesNoUseSiteDiagnostics(ConsList<TypeSymbol> basesBeingResolved = null); 205internal ImmutableArray<NamedTypeSymbol> AllInterfacesNoUseSiteDiagnostics 213internal ImmutableArray<NamedTypeSymbol> AllInterfacesWithDefinitionUseSiteDiagnostics(ref CompoundUseSiteInfo<AssemblySymbol> useSiteInfo) 226foreach (var iface in result) 263var t = this.BaseTypeWithDefinitionUseSiteDiagnostics(ref useSiteInfo); 319protected virtual ImmutableArray<NamedTypeSymbol> GetAllInterfaces() 324return ImmutableArray<NamedTypeSymbol>.Empty; 339protected virtual ImmutableArray<NamedTypeSymbol> MakeAllInterfaces() 341var result = ArrayBuilder<NamedTypeSymbol>.GetInstance(); 342var visited = new HashSet<NamedTypeSymbol>(SymbolEqualityComparer.ConsiderEverything); 356static void addAllInterfaces(NamedTypeSymbol @interface, HashSet<NamedTypeSymbol> visited, ArrayBuilder<NamedTypeSymbol> result) 360ImmutableArray<NamedTypeSymbol> baseInterfaces = @interface.InterfacesNoUseSiteDiagnostics(); 363var baseInterface = baseInterfaces[i]; 382internal MultiDictionary<NamedTypeSymbol, NamedTypeSymbol> InterfacesAndTheirBaseInterfacesNoUseSiteDiagnostics 402internal MultiDictionary<NamedTypeSymbol, NamedTypeSymbol> InterfacesAndTheirBaseInterfacesWithDefinitionUseSiteDiagnostics(ref CompoundUseSiteInfo<AssemblySymbol> useSiteInfo) 406foreach (var iface in result.Keys) 417private static MultiDictionary<NamedTypeSymbol, NamedTypeSymbol> MakeInterfacesAndTheirBaseInterfaces(ImmutableArray<NamedTypeSymbol> declaredInterfaces) 419var resultBuilder = new MultiDictionary<NamedTypeSymbol, NamedTypeSymbol>(declaredInterfaces.Length, SymbolEqualityComparer.CLRSignature, SymbolEqualityComparer.ConsiderEverything); 420foreach (var @interface in declaredInterfaces) 424foreach (var baseInterface in @interface.AllInterfacesNoUseSiteDiagnostics) 459return FindMostSpecificImplementation(interfaceMember, (NamedTypeSymbol)this, ref discardedUseSiteInfo); 734var interfaceType = interfaceMember.ContainingType; 813NamedTypeSymbol interfaceType = interfaceMember.ContainingType; 1017if (implementingType is NamedTypeSymbol named && 1111private static Symbol FindMostSpecificImplementation(Symbol interfaceMember, NamedTypeSymbol implementingInterface, ref CompoundUseSiteInfo<AssemblySymbol> useSiteInfo) 1159ImmutableArray<NamedTypeSymbol> allInterfaces = implementingType.AllInterfacesWithDefinitionUseSiteDiagnostics(ref useSiteInfo); 1245NamedTypeSymbol implementingInterface = inplementingAccessor1.ContainingType; 1266ImmutableArray<NamedTypeSymbol> allInterfaces, 1271var implementations = ArrayBuilder<(MultiDictionary<Symbol, Symbol>.ValueSet MethodSet, MultiDictionary<NamedTypeSymbol, NamedTypeSymbol> Bases)>.GetInstance(); 1273foreach (var interfaceType in allInterfaces) 1290(MultiDictionary<Symbol, Symbol>.ValueSet methodSet, MultiDictionary<NamedTypeSymbol, NamedTypeSymbol> bases) = implementations[i]; 1292NamedTypeSymbol previousContainingType = previous.ContainingType; 1324MultiDictionary<NamedTypeSymbol, NamedTypeSymbol> bases = interfaceType.InterfacesAndTheirBaseInterfacesWithDefinitionUseSiteDiagnostics(ref useSiteInfo); 1383internal static MultiDictionary<Symbol, Symbol>.ValueSet FindImplementationInInterface(Symbol interfaceMember, NamedTypeSymbol interfaceType) 1387NamedTypeSymbol containingType = interfaceMember.ContainingType; 2106var @interface = interfaceMember.ContainingType; 2171var @interface = interfaceMember.ContainingType; 2558foreach (FieldSymbol field in ((NamedTypeSymbol)this).OriginalDefinition.GetFieldsToEmit()) 2576elementField = elementField.AsMember((NamedTypeSymbol)this);
Symbols\TypeSymbolExtensions.cs (66)
29foreach (NamedTypeSymbol @interface in subType.AllInterfacesWithDefinitionUseSiteDiagnostics(ref useSiteInfo)) 160if (type is NamedTypeSymbol nt 175RoslynDebug.Assert(type is NamedTypeSymbol); //not testing Kind because it may be an ErrorType 177return ((NamedTypeSymbol)type).TypeArgumentsWithAnnotationsNoUseSiteDiagnostics[0]; 187public bool IsSubjectForUnionMatching => patternInputType.StrippedType() is NamedTypeSymbol { IsUnionType: true }; 189public bool IsUnionMatchingInputType([NotNullWhen(true)] out NamedTypeSymbol? unionType) 191if (patternInputType.StrippedType() is NamedTypeSymbol { IsUnionType: true } named) 232public static NamedTypeSymbol? GetEnumUnderlyingType(this TypeSymbol? type) 234return (type is NamedTypeSymbol namedType) ? namedType.EnumUnderlyingType : null; 245var underlyingType = type.GetEnumUnderlyingType(); 352return type.Kind == SymbolKind.NamedType && ((NamedTypeSymbol)type).IsInterface; 406if (type is NamedTypeSymbol 424if (type is NamedTypeSymbol 457internal static ImmutableArray<NamedTypeSymbol> GetAllInterfacesOrEffectiveInterfaces(this TypeSymbol type) 471return ImmutableArray<NamedTypeSymbol>.Empty; 478public static NamedTypeSymbol? GetDelegateType(this TypeSymbol? type) 483type = ((NamedTypeSymbol)type).TypeArgumentsWithAnnotationsNoUseSiteDiagnostics[0].Type; 486return type.IsDelegateType() ? (NamedTypeSymbol)type : null; 519if (_type.OriginalDefinition is NamedTypeSymbol type) 559if (!(type is NamedTypeSymbol t)) 641elementTypes = ((NamedTypeSymbol)type).TupleElementTypesWithAnnotations; 753return !IsAsRestrictive((NamedTypeSymbol)type, sym, ref useSiteInfo); 828var containingType = current.ContainingType; 936var typeArguments = ((NamedTypeSymbol)current).TypeArgumentsWithAnnotationsNoUseSiteDiagnostics; 1089var parent1 = s1.ContainingType; 1099for (var parent2 = s2.ContainingType; (object)parent2 != null; parent2 = parent2.ContainingType) 1111var parent2 = s2.ContainingType; 1123var parent1 = s1.ContainingType; 1141for (var parent2 = s2.ContainingType; (object)parent2 != null; parent2 = parent2.ContainingType) 1201NamedTypeSymbol parent1 = s1.ContainingType; 1208var parent1OriginalDefinition = parent1.OriginalDefinition; 1209for (var parent2 = s2.ContainingType; (object)parent2 != null; parent2 = parent2.ContainingType) 1230return type is NamedTypeSymbol { IsUnboundGenericType: true }; 1233public static bool IsTopLevelType(this NamedTypeSymbol type) 1452return type is NamedTypeSymbol 1465return type is NamedTypeSymbol 1478return type is NamedTypeSymbol 1489return type is NamedTypeSymbol 1500return type is NamedTypeSymbol 1566var foundType = type.VisitType(predicate: (type, _, _) => type is NamedTypeSymbol { IsFileLocal: true }, arg: (object?)null); 1570internal static string? GetFileLocalTypeMetadataNamePrefix(this NamedTypeSymbol type) 1608return ((NamedTypeSymbol)type).EnumUnderlyingType.SpecialType.IsValidVolatileFieldType(); 1652internal static int ComputeHashCode(this NamedTypeSymbol type) 1694static bool wasConstructedForAnnotations(NamedTypeSymbol type) 1727public static TypeSymbol AsDynamicIfNoPia(this TypeSymbol type, NamedTypeSymbol containingType) 1732public static bool TryAsDynamicIfNoPia(this TypeSymbol type, NamedTypeSymbol containingType, [NotNullWhen(true)] out TypeSymbol? result) 1769internal static ImmutableArray<TypeParameterSymbol> GetAllTypeParameters(this NamedTypeSymbol type) 1786internal static void GetAllTypeParameters(this NamedTypeSymbol type, ArrayBuilder<TypeParameterSymbol> result) 1788var containingType = type.ContainingType; 1801internal static TypeParameterSymbol? FindEnclosingTypeParameter(this NamedTypeSymbol type, string name) 1857internal static bool HasNameQualifier(this NamedTypeSymbol type, string qualifiedName) 1914var namedType = type as NamedTypeSymbol; 1932if (!(type is NamedTypeSymbol { Arity: 1 } namedType)) 1945if (!(type is NamedTypeSymbol { Arity: 1 } namedType)) 1955if (!(type is NamedTypeSymbol { Arity: 1 } namedType)) 1973internal static bool IsCustomTaskType(this NamedTypeSymbol type, [NotNullWhen(true)] out TypeSymbol? builderArgument) 2006var namedType = (NamedTypeSymbol)type; 2047private static bool NormalizeTaskTypesInNamedType(CSharpCompilation compilation, ref NamedTypeSymbol type) 2070var originalType = type; 2071var originalDefinition = originalType.OriginalDefinition; 2083var taskType = compilation.GetWellKnownType( 2220return typeSymbol is NamedTypeSymbol { Name: WellKnownMemberNames.LockTypeName, Arity: 0, ContainingType: null } && 2226return typeSymbol is NamedTypeSymbol 2264return type is NamedTypeSymbol { Name: "INumberBase", IsInterface: true, Arity: 1, ContainingType: null } &&
Symbols\TypeUnification.cs (11)
25public static NamedTypeSymbol? TryUnifyClosedSubtype(NamedTypeSymbol candidateSubtype, NamedTypeSymbol closedType) 30var candidateBaseType = candidateSubtype.BaseTypeNoUseSiteDiagnostics; 36return (NamedTypeSymbol)SubstituteAllTypeParameters(substitution, TypeWithAnnotations.Create(candidateSubtype)).Type; 167NamedTypeSymbol nt1 = (NamedTypeSymbol)t1.Type; 168NamedTypeSymbol nt2 = (NamedTypeSymbol)t2.Type; 295NamedTypeSymbol namedType = (NamedTypeSymbol)type;
Symbols\TypeWithAnnotations.cs (2)
608var namedType = type as NamedTypeSymbol;
Symbols\UnboundGenericType.cs (6)
19public static NamedTypeSymbol AsUnboundGenericType(this NamedTypeSymbol type) 27var original = type.OriginalDefinition; 29NamedTypeSymbol originalContainingType = original.ContainingType; 31var constructedFrom = ((object)originalContainingType == null) ? 72protected override NamedTypeSymbol WithTupleDataCore(TupleExtraData newData)
Symbols\UnsupportedMetadataTypeSymbol.cs (1)
20protected override NamedTypeSymbol WithTupleDataCore(TupleExtraData newData)
Symbols\VarianceSafety.cs (10)
29internal static void CheckInterfaceVarianceSafety(this NamedTypeSymbol interfaceType, BindingDiagnosticBag diagnostics) 33foreach (NamedTypeSymbol baseInterface in interfaceType.InterfacesNoUseSiteDiagnostics()) 62CheckNestedTypeVarianceSafety((NamedTypeSymbol)member, diagnostics); 71private static void CheckNestedTypeVarianceSafety(NamedTypeSymbol member, BindingDiagnosticBag diagnostics) 89NamedTypeSymbol container = GetEnclosingVariantInterface(member); 99internal static NamedTypeSymbol GetEnclosingVariantInterface(Symbol member) 101for (var container = member.ContainingType; container is object; container = container.ContainingType) 338var namedType = (NamedTypeSymbol)type; 360NamedTypeSymbol namedType,
Symbols\Wrapped\WrappedNamedTypeSymbol.cs (3)
30protected readonly NamedTypeSymbol _underlyingType; 32public WrappedNamedTypeSymbol(NamedTypeSymbol underlyingType, TupleExtraData tupleData) 39public NamedTypeSymbol UnderlyingNamedType
Syntax\SyntaxFacts.cs (1)
510return NamedTypeSymbol.IsTupleElementNameReserved(elementName) != -1;
Utilities\TypeSymbolExtensions.cs (15)
52var namedType = (NamedTypeSymbol)type; 135var namedType = (NamedTypeSymbol)type; 179internal static TypeSymbol GetNextBaseTypeNoUseSiteDiagnostics(this TypeSymbol type, ConsList<TypeSymbol> basesBeingResolved, CSharpCompilation compilation, ref PooledHashSet<NamedTypeSymbol> visited) 190return GetNextDeclaredBase((NamedTypeSymbol)type, basesBeingResolved, compilation, ref visited); 210private static TypeSymbol GetNextDeclaredBase(NamedTypeSymbol type, ConsList<TypeSymbol> basesBeingResolved, CSharpCompilation compilation, ref PooledHashSet<NamedTypeSymbol> visited) 226var nextType = type.GetDeclaredBaseType(basesBeingResolved); 235var origType = type.OriginalDefinition; 244visited = visited ?? PooledHashSet<NamedTypeSymbol>.GetInstance(); 255private static void SetKnownToHaveNoDeclaredBaseCycles(ref PooledHashSet<NamedTypeSymbol> visited) 259foreach (var v in visited) 269private static NamedTypeSymbol GetDefaultBaseOrNull(NamedTypeSymbol type, CSharpCompilation compilation)
Utilities\TypeUnionValueSet.cs (3)
280if (originalClosedBase is null || sampleType is not NamedTypeSymbol namedType) 285Debug.Assert(originalClosedBase is NamedTypeSymbol { IsClosed: true }); 291static bool isInvalidClosedSubtype(NamedTypeSymbol possibleClosedSubtype, TypeSymbol originalClosedBase, Binder binder, ref CompoundUseSiteInfo<AssemblySymbol> useSiteInfo)
Utilities\ValueSetFactory.ClosedClassTypeUnionValueSetFactory.cs (8)
16private readonly NamedTypeSymbol _closedClass; 18public ClosedClassTypeUnionValueSetFactory(NamedTypeSymbol closedClass) 20Debug.Assert(closedClass is NamedTypeSymbol { IsClosed: true }); 26if (possibleClosedClass is not NamedTypeSymbol namedType || !namedType.TryGetClosedSubtypes(out var subtypes) || subtypes.IsEmpty) 35private static void ExpandClosedSubtypesCore(ImmutableArray<NamedTypeSymbol> subtypes, NamedTypeSymbol originalBase, ArrayBuilder<TypeUnionValueSet.CaseInfo> builder) 38foreach (var subtype in subtypes) 51private static void AddCaseInfo(ArrayBuilder<TypeUnionValueSet.CaseInfo> builder, TypeSymbol caseType, NamedTypeSymbol? originalClosedBase)
Utilities\ValueSetFactory.cs (3)
76var unionType = (NamedTypeSymbol)unionInstance.Type; 85if (compilation.IsFeatureEnabled(MessageID.IDS_FeatureClosedClasses) && input.Type is NamedTypeSymbol { IsClosed: true } closedClass)
Utilities\ValueSetFactory.UnionTypeTypeUnionValueSetFactory.cs (3)
16private readonly NamedTypeSymbol _unionType; 18public UnionTypeTypeUnionValueSetFactory(NamedTypeSymbol unionType) 20Debug.Assert(unionType is NamedTypeSymbol { IsUnionType: true });