3 instantiations of SourceNamedTypeSymbol
Microsoft.CodeAnalysis.CSharp (3)
Symbols\Source\SourceMemberContainerSymbol.cs (1)
1447var t = new SourceNamedTypeSymbol(this, childDeclaration, diagnostics);
Symbols\Source\SourceNamedTypeSymbol.cs (1)
109return new SourceNamedTypeSymbol(ContainingType, declaration, BindingDiagnosticBag.Discarded, newData);
Symbols\Source\SourceNamespaceSymbol.cs (1)
418return new SourceNamedTypeSymbol(this, (MergedTypeDeclaration)declaration, diagnostics);
113 references to SourceNamedTypeSymbol
Microsoft.CodeAnalysis.CSharp (113)
Binder\Binder_Conversions.cs (1)
1530if (!SourceNamedTypeSymbol.IsValidCollectionBuilderType(builderType))
Binder\Binder_Expressions.cs (2)
5251return constructor.ContainingType is SourceNamedTypeSymbol sourceType && 8979&& SourceNamedTypeSymbol.ReduceExtensionMember(binder.Compilation, method, receiverType, wasExtensionFullyInferred: out _) is null)
Binder\Binder_Symbols.cs (1)
1603if (SourceNamedTypeSymbol.ReduceExtensionMember(this.Compilation, symbol, receiverType, wasExtensionFullyInferred: out _) is { } compatibleSubstitutedMember)
Binder\BinderFactory.BinderFactoryVisitor.cs (8)
666var container = ((NamespaceOrTypeSymbol)outer.ContainingMemberOrLambda).GetSourceTypeMember(parent); 701var container = ((NamespaceOrTypeSymbol)outer.ContainingMemberOrLambda).GetSourceTypeMember(parent.Identifier.ValueText, 0, SyntaxKind.EnumDeclaration, parent); 766var typeSymbol = ((NamespaceOrTypeSymbol)resultBinder.ContainingMemberOrLambda).GetSourceTypeMember(parent); 1268SourceNamedTypeSymbol type = ((NamespaceOrTypeSymbol)outerBinder.ContainingMemberOrLambda).GetSourceTypeMember((TypeDeclarationSyntax)memberSyntax); 1276SourceNamedTypeSymbol type = ((NamespaceOrTypeSymbol)outerBinder.ContainingMemberOrLambda).GetSourceTypeMember((TypeDeclarationSyntax)memberSyntax); 1320SourceNamedTypeSymbol delegateType = ((NamespaceOrTypeSymbol)outerBinder.ContainingMemberOrLambda).GetSourceTypeMember((DelegateDeclarationSyntax)memberSyntax); 1357SourceNamedTypeSymbol typeSymbol = ((NamespaceOrTypeSymbol)outerBinder.ContainingMemberOrLambda).GetSourceTypeMember(typeDeclSyntax); 1376SourceNamedTypeSymbol delegateType = ((NamespaceOrTypeSymbol)outerBinder.ContainingMemberOrLambda).GetSourceTypeMember((DelegateDeclarationSyntax)memberSyntax);
Compilation\CSharpSemanticModel.cs (1)
1697if (SourceNamedTypeSymbol.ReduceExtensionMember(binder.Compilation, symbol, receiverType, wasExtensionFullyInferred: out _) is { } compatibleSubstitutedMember)
Compiler\DocumentationCommentCompiler.cs (12)
227if (symbol.IsExtension && (SourceNamedTypeSymbol)symbol.ContainingType is { } containingType) 230ImmutableArray<SourceNamedTypeSymbol> extensions = containingType.GetExtensionGroupingInfo().GetMergedExtensions((SourceNamedTypeSymbol)symbol); 257appendContainedExtensions((SourceNamedTypeSymbol)symbol); 263void appendContainedExtensions(SourceNamedTypeSymbol containingType) 268foreach (ImmutableArray<SourceNamedTypeSymbol> extensions in extensionGroupingInfo.EnumerateMergedExtensionBlocks()) 272foreach (var extension in extensions) 283void appendMergedExtensionBlocks(IEnumerable<SourceNamedTypeSymbol> extensions) 287if (!collectDocCommentNodes(extensions, docCommentNodesBuilder, out SourceNamedTypeSymbol firstExtension)) 303bool collectDocCommentNodes(IEnumerable<SourceNamedTypeSymbol> extensions, ArrayBuilder<DocumentationCommentTriviaSyntax> docCommentNodesBuilder, out SourceNamedTypeSymbol firstExtension) 306foreach (var extension in extensions)
Compiler\MethodCompiler.cs (1)
502if (containingType.IsExtension && ((SourceNamedTypeSymbol)containingType).TryGetOrCreateExtensionMarker() is { } marker)
Emitter\Model\MethodSymbolAdapter.cs (2)
92return ((SourceMemberContainerTypeSymbol)containingType.ContainingType).GetExtensionGroupingInfo().GetCorrespondingGroupingType((SourceNamedTypeSymbol)containingType); 320return ((SourceMemberContainerTypeSymbol)containingType.ContainingType).GetExtensionGroupingInfo().GetCorrespondingGroupingType((SourceNamedTypeSymbol)containingType);
Emitter\Model\PropertySymbolAdapter.cs (2)
227return ((SourceMemberContainerTypeSymbol)containingType.ContainingType).GetExtensionGroupingInfo().GetCorrespondingGroupingType((SourceNamedTypeSymbol)containingType); 254return ((SourceMemberContainerTypeSymbol)containingType.ContainingType).GetExtensionGroupingInfo().GetCorrespondingGroupingType((SourceNamedTypeSymbol)containingType);
Symbols\Extensions\SourceExtensionImplementationMethodSymbol.cs (1)
126parameters.Add(new ExtensionMetadataMethodParameterSymbol(this, ((SourceNamedTypeSymbol)_originalMethod.ContainingType).ExtensionParameter!));
Symbols\MemberSymbolExtensions.cs (2)
284constructed = (MethodSymbol?)SourceNamedTypeSymbol.ReduceExtensionMember(compilation, constructed, receiverType, out bool wasExtensionFullyInferred); 299var result = (PropertySymbol?)SourceNamedTypeSymbol.ReduceExtensionMember(compilation, property, receiverType, wasExtensionFullyInferred: out bool wasFullyInferred);
Symbols\NamespaceOrTypeSymbol.cs (5)
188internal SourceNamedTypeSymbol? GetSourceTypeMember(TypeDeclarationSyntax syntax) 197internal SourceNamedTypeSymbol? GetSourceTypeMember(DelegateDeclarationSyntax syntax) 207internal SourceNamedTypeSymbol? GetSourceTypeMember( 217var memberT = member as SourceNamedTypeSymbol;
Symbols\PublicModel\MethodSymbol.cs (1)
217return (IMethodSymbol?)SourceNamedTypeSymbol.ReduceExtensionMember(compilation: null, _underlying, csharpReceiver, wasExtensionFullyInferred: out _).GetPublicSymbol();
Symbols\PublicModel\PropertySymbol.cs (1)
124return (IPropertySymbol?)SourceNamedTypeSymbol.ReduceExtensionMember(compilation: null, _underlying, csharpReceiver, wasExtensionFullyInferred: out _).GetPublicSymbol();
Symbols\Source\ExtensionGroupingInfo.cs (39)
31var groupingMap = new Dictionary<string, MultiDictionary<string, SourceNamedTypeSymbol>>(EqualityComparer<string>.Default); 40var sourceNamedType = (SourceNamedTypeSymbol)type; 44MultiDictionary<string, SourceNamedTypeSymbol>? markerMap; 48markerMap = new MultiDictionary<string, SourceNamedTypeSymbol>(EqualityComparer<string>.Default, ReferenceEqualityComparer.Instance); 58foreach (KeyValuePair<string, MultiDictionary<string, SourceNamedTypeSymbol>> pair in groupingMap) 76var type1 = (SourceNamedTypeSymbol)typeMembers[i]; 84var type2 = (SourceNamedTypeSymbol)typeMembers[j]; 110return GetCorrespondingMarkerType((SourceNamedTypeSymbol)markerMethod.ContainingType); 113private ExtensionMarkerType GetCorrespondingMarkerType(SourceNamedTypeSymbol extension) 149foreach (var extension in GetCorrespondingMarkerType((SourceNamedTypeSymbol)marker.ContainingType).UnderlyingExtensions) 173public Cci.ITypeDefinition GetCorrespondingGroupingType(SourceNamedTypeSymbol extension) 194internal ImmutableArray<SourceNamedTypeSymbol> GetMergedExtensions(SourceNamedTypeSymbol extension) 203internal IEnumerable<ImmutableArray<SourceNamedTypeSymbol>> EnumerateMergedExtensionBlocks() 214internal static bool HaveSameILSignature(SourceNamedTypeSymbol extension1, SourceNamedTypeSymbol extension2) 249internal static bool HaveSameCSharpSignature(SourceNamedTypeSymbol extension1, SourceNamedTypeSymbol extension2) 430PooledHashSet<SourceNamedTypeSymbol>? alreadyReportedExtensions = null; 437foreach (ImmutableArray<SourceNamedTypeSymbol> mergedBlocks in EnumerateMergedExtensionBlocks()) 445static IEnumerable<SourceNamedTypeSymbol> enumerateExtensionsInGrouping(ExtensionGroupingType groupingType) 449foreach (var extension in marker.UnderlyingExtensions) 456static void checkCollisions(IEnumerable<SourceNamedTypeSymbol> extensions, Func<SourceNamedTypeSymbol, SourceNamedTypeSymbol, bool> compare, 457ref PooledHashSet<SourceNamedTypeSymbol>? alreadyReportedExtensions, BindingDiagnosticBag diagnostics) 459SourceNamedTypeSymbol? first = null; 461foreach (SourceNamedTypeSymbol extension in extensions) 474alreadyReportedExtensions ??= PooledHashSet<SourceNamedTypeSymbol>.GetInstance(); 688public ExtensionGroupingType(string name, MultiDictionary<string, SourceNamedTypeSymbol> extensionMarkerTypes) 749foreach (var type in marker.UnderlyingExtensions) 772foreach (var type in marker.UnderlyingExtensions) 847public readonly ImmutableArray<SourceNamedTypeSymbol> UnderlyingExtensions; 850public ExtensionMarkerType(ExtensionGroupingType groupingType, string name, MultiDictionary<string, SourceNamedTypeSymbol>.ValueSet extensions) 855var builder = ArrayBuilder<SourceNamedTypeSymbol>.GetInstance(extensions.Count);
Symbols\Source\SourceAssemblySymbol.cs (4)
2727var containingType = field.ContainingType as SourceNamedTypeSymbol; 2788var containingType = field.ContainingType as SourceNamedTypeSymbol;
Symbols\Source\SourceConstructorSymbolBase.cs (2)
222var containingType = (SourceNamedTypeSymbol)this.ContainingType;
Symbols\Source\SourceDelegateMethodSymbol.cs (4)
188return (SourceNamedTypeSymbol)ContainingSymbol; 201return OneOrMany.Create(((SourceNamedTypeSymbol)ContainingSymbol).GetAttributeDeclarations()); 362: base((SourceNamedTypeSymbol)invoke.ContainingType, iAsyncResultType, syntax, MethodKind.Ordinary, RefKind.None, DeclarationModifiers.Virtual | DeclarationModifiers.Public) 402: base((SourceNamedTypeSymbol)invoke.ContainingType, invoke.ReturnTypeWithAnnotations, syntax, MethodKind.Ordinary, invoke.RefKind, DeclarationModifiers.Virtual | DeclarationModifiers.Public)
Symbols\Source\SourceMemberContainerSymbol.cs (7)
642((SourceNamedTypeSymbol)this).TryGetOrCreateExtensionMarker(); 675((SourceNamedTypeSymbol)this).TryGetOrCreateExtensionMarker()?.ForceComplete(locationOpt, filter: null, cancellationToken); 1437var conflictDict = new Dictionary<(string name, int arity, SyntaxTree? syntaxTree), SourceNamedTypeSymbol>(); 1447var t = new SourceNamedTypeSymbol(this, childDeclaration, diagnostics); 1453SourceNamedTypeSymbol? other; 1659var valueField = ((SourceNamedTypeSymbol)this).EnumValueField; 2667((SourceNamedTypeSymbol)this).TryGetOrCreateExtensionMarker()?.AfterAddingTypeMembersChecks(conversions, diagnostics);
Symbols\Source\SourceMethodSymbol.cs (1)
298AddSynthesizedAttribute(ref attributes, moduleBuilder.SynthesizeExtensionMarkerAttribute(target, ((SourceNamedTypeSymbol)target.ContainingType).ExtensionMarkerName));
Symbols\Source\SourceMethodSymbolWithAttributes.cs (1)
1575if (curr is SourceNamedTypeSymbol { HasSecurityCriticalAttributes: true })
Symbols\Source\SourceNamedTypeSymbol.cs (1)
1822var originalType = this;
Symbols\Source\SourceNamespaceSymbol.cs (1)
389if (otherSymbol is SourceNamedTypeSymbol { MergedDeclaration.NameLocations: var typeNameLocations })
Symbols\Source\SourcePropertySymbolBase.cs (1)
1464AddSynthesizedAttribute(ref attributes, moduleBuilder.SynthesizeExtensionMarkerAttribute(this, ((SourceNamedTypeSymbol)this.ContainingType).ExtensionMarkerName));
Symbols\Source\SourceTypeParameterSymbol.cs (2)
452private readonly SourceNamedTypeSymbol _owner; 455public SourceTypeTypeParameterSymbol(SourceNamedTypeSymbol owner, string name, int ordinal, VarianceKind varianceKind, ImmutableArray<Location> locations, ImmutableArray<SyntaxReference> syntaxRefs)
Symbols\Source\TypeParameterBuilder.cs (2)
23private readonly SourceNamedTypeSymbol _owner; 26internal TypeParameterBuilder(SyntaxReference syntaxRef, SourceNamedTypeSymbol owner, Location location)
Symbols\Synthesized\Records\SynthesizedPrimaryConstructor.cs (2)
28Debug.Assert(containingType is SourceNamedTypeSymbol); 76return new OneOrMany<SyntaxList<AttributeListSyntax>>(((SourceNamedTypeSymbol)ContainingType).GetAttributeDeclarations());
Symbols\Synthesized\SynthesizedEnumValueFieldSymbol.cs (2)
19public SynthesizedEnumValueFieldSymbol(SourceNamedTypeSymbol containingEnum) 37return TypeWithAnnotations.Create(((SourceNamedTypeSymbol)ContainingType).EnumUnderlyingType);
Symbols\Synthesized\SynthesizedSimpleProgramEntryPointSymbol.cs (3)
89var type = GetSimpleProgramNamedTypeSymbol(compilation); 113private static SourceNamedTypeSymbol? GetSimpleProgramNamedTypeSymbol(CSharpCompilation compilation) 115return compilation.SourceModule.GlobalNamespace.GetTypeMembers(WellKnownMemberNames.TopLevelStatementsEntryPointTypeName).OfType<SourceNamedTypeSymbol>().SingleOrDefault(s => s.IsSimpleProgram);
Symbols\TypeSymbolExtensions.cs (1)
1561return type is SourceNamedTypeSymbol { IsPartial: true };