1 instantiation of EntityRegistry
ILAssembler (1)
GrammarVisitor.cs (1)
79private readonly EntityRegistry _entityRegistry = new();
143 references to EntityRegistry
ILAssembler (143)
BlobBuilderExtensions.cs (2)
86public static void WriteTypeEntity(this BlobBuilder builder, EntityRegistry.TypeEntity entity) 88if (entity is EntityRegistry.FakeTypeEntity fakeEntity)
GrammarVisitor.cs (141)
79private readonly EntityRegistry _entityRegistry = new(); 116public sealed record Type(EntityRegistry.TypeEntity Entity) : TypedefEntry; 118public sealed record Member(EntityRegistry.EntityBase Entity) : TypedefEntry; 119public sealed record CustomAttribute(EntityRegistry.EntityBase Constructor, BlobBuilder Value) : TypedefEntry; 150if (entity is EntityRegistry.MethodDefinitionEntity method && method.ExportOrdinal >= 0) 297if (entity is EntityRegistry.MethodDefinitionEntity method && 324if (entity is EntityRegistry.MethodDefinitionEntity method && 382if (entity is not EntityRegistry.MethodDefinitionEntity method) 422private static BlobBuilder EncodeSequencePoints(List<EntityRegistry.SequencePoint> sequencePoints) 553private EntityRegistry.AssemblyOrRefEntity? _currentAssemblyOrRef; 595_entityRegistry.Assembly ??= new EntityRegistry.AssemblyEntity(assemblyName); 740((EntityRegistry.AssemblyReferenceEntity)_currentAssemblyOrRef!).Hash = blob; 752public GrammarResult.Literal<EntityRegistry.AssemblyReferenceEntity> VisitAssemblyRefHead(CILParser.AssemblyRefHeadContext context) 869public GrammarResult.Literal<EntityRegistry.TypeEntity> VisitCatchClause(CILParser.CatchClauseContext context) => VisitTypeSpec(context.typeSpec()); 889blob.WriteUTF8((name as EntityRegistry.IHasReflectionNotation)?.ReflectionNotation ?? ""); 921public GrammarResult.Literal<(GrammarResult.Flag<TypeAttributes> Attribute, EntityRegistry.WellKnownBaseType? FallbackBase, bool RequireSealed)> VisitClassAttr(CILParser.ClassAttrContext context) 930EntityRegistry.WellKnownBaseType? fallbackBase = null; 934fallbackBase = EntityRegistry.WellKnownBaseType.System_ValueType; 938fallbackBase = EntityRegistry.WellKnownBaseType.System_Enum; 951return new((new(context.VALUE() is not null ? TypeAttributes.Sealed : 0), EntityRegistry.WellKnownBaseType.System_Enum, false)); 956return new((new(TypeAttributes.Sealed), EntityRegistry.WellKnownBaseType.System_ValueType, true)); 989public CurrentMethodContext(EntityRegistry.MethodDefinitionEntity definition) 994public EntityRegistry.MethodDefinitionEntity Definition { get; } 1089public GrammarResult.Literal<EntityRegistry.TypeDefinitionEntity> VisitClassHead(CILParser.ClassHeadContext context) 1128EntityRegistry.WellKnownBaseType? fallbackBase = _options.NoAutoInherit ? null : EntityRegistry.WellKnownBaseType.System_Object; 1182EntityRegistry.GenericParameterEntity? param = VisitTyparsClause(context.typarsClause()).Value[i]; 1241public GrammarResult.Literal<EntityRegistry.TypeEntity> VisitClassName(CILParser.ClassNameContext context) 1248return new(new EntityRegistry.FakeTypeEntity(default(TypeDefinitionHandle))); 1258return new(new EntityRegistry.FakeTypeEntity(default(TypeDefinitionHandle))); 1264return new(new EntityRegistry.FakeTypeEntity(default(TypeDefinitionHandle))); 1273return new(new EntityRegistry.FakeTypeEntity(default(TypeDefinitionHandle))); 1280EntityRegistry.EntityBase? resolutionContext = null; 1290return new(new EntityRegistry.FakeTypeEntity(default(TypeDefinitionHandle))); 1304resolutionContext = new EntityRegistry.FakeTypeEntity(default(ModuleDefinitionHandle)); 1309EntityRegistry.TypeReferenceEntity typeRef = _entityRegistry.GetOrCreateTypeReference(resolutionContext, VisitSlashedName(slashedName).Value); 1318EntityRegistry.TypeEntity ResolveTypeDef() 1335EntityRegistry.TypeDefinitionEntity? typeDef = null; 1350return new EntityRegistry.FakeTypeEntity(default(TypeDefinitionHandle)); 1359EntityRegistry.EntityBase resolvedToken = VisitMdtoken(typeToken).Value; 1361if (resolvedToken is not EntityRegistry.TypeEntity type) 1363return new(new EntityRegistry.FakeTypeEntity(resolvedToken.Handle)); 1390if (VisitClassName(className).Value is EntityRegistry.IHasReflectionNotation notation) 1431public GrammarResult.Literal<EntityRegistry.CustomAttributeEntity?> VisitCustomAttrDecl(CILParser.CustomAttrDeclContext context) 1462public GrammarResult.Literal<EntityRegistry.CustomAttributeEntity?> VisitCustomDescrInMethodBody(CILParser.CustomDescrInMethodBodyContext context) 1529public GrammarResult.Literal<EntityRegistry.CustomAttributeEntity> VisitCustomDescr(CILParser.CustomDescrContext context) 1558public GrammarResult.Literal<EntityRegistry.CustomAttributeEntity> VisitCustomDescrWithOwner(CILParser.CustomDescrWithOwnerContext context) 1591public GrammarResult.Literal<EntityRegistry.EntityBase> VisitCustomType(CILParser.CustomTypeContext context) => VisitMethodRef(context.methodRef()); 1707private readonly Stack<EntityRegistry.TypeDefinitionEntity> _currentTypeDefinition = new(); 1910EntityRegistry.TypeEntity typeEntity = VisitClassName(className).Value; 1966EntityRegistry.GenericParameterEntity? genericParameter = _currentMethod.Definition.GenericParameters[i]; 2012EntityRegistry.GenericParameterEntity? genericParameter = _currentTypeDefinition.Peek().GenericParameters[i]; 2093public GrammarResult.Literal<(MethodSemanticsAttributes, EntityRegistry.EntityBase)?> VisitEventDecl(CILParser.EventDeclContext context) 2100EntityRegistry.EntityBase memberReference = VisitMethodRef(context.methodRef()).Value; 2113public GrammarResult.Sequence<(MethodSemanticsAttributes, EntityRegistry.EntityBase)> VisitEventDecls(CILParser.EventDeclsContext context) 2121public GrammarResult.Literal<EntityRegistry.EventEntity> VisitEventHead(CILParser.EventHeadContext context) 2125return new(new EntityRegistry.EventEntity(eventAttributes, VisitTypeSpec(context.typeSpec()).Value, name)); 2151public GrammarResult.Literal<(EntityRegistry.EntityBase? implementation, int typedefId, ImmutableArray<EntityRegistry.CustomAttributeEntity> attrs)> VisitExptypeDecls(CILParser.ExptypeDeclsContext context) 2157EntityRegistry.EntityBase? implementationEntity = null; 2159var attrs = ImmutableArray.CreateBuilder<EntityRegistry.CustomAttributeEntity>(); 2165if (VisitCustomAttrDecl(attr).Value is EntityRegistry.CustomAttributeEntity customAttribute) 2174if (entity is null or EntityRegistry.FakeTypeEntity) 2224EntityRegistry.EntityBase? ResolveBetterEntity(EntityRegistry.EntityBase? newImplementation) 2230(_, EntityRegistry.FileEntity) => newImplementation, 2231(EntityRegistry.FileEntity, _) => implementationEntity, 2232(_, EntityRegistry.AssemblyEntity) => newImplementation, 2233(EntityRegistry.AssemblyEntity, _) => implementationEntity, 2234(_, EntityRegistry.TypeEntity) => newImplementation, 2235(EntityRegistry.TypeEntity, _) => implementationEntity, 2241EntityRegistry.ExportedTypeEntity? ResolveExportedType(CILParser.SlashedNameContext slashedName) 2254EntityRegistry.ExportedTypeEntity? exportedType = null; 2284public GrammarResult.Literal<EntityRegistry.TypeEntity?> VisitExtendsClause(CILParser.ExtendsClauseContext context) 2365EntityRegistry.SequencePoint.Hidden(ilOffset)); 2370new EntityRegistry.SequencePoint(ilOffset, startLine, startColumn, endLine, endColumn)); 2456var field = EntityRegistry.CreateUnrecordedFieldDefinition(fieldAttrs, _currentTypeDefinition.PeekOrDefault()!, name, signature.Builder); 2582public GrammarResult.Literal<EntityRegistry.EntityBase> VisitFieldRef(CILParser.FieldRefContext context) 2598EntityRegistry.TypeEntity definingType = _currentTypeDefinition.PeekOrDefault() ?? _entityRegistry.ModuleType; 2692public GrammarResult.Literal<EntityRegistry.FileEntity> VisitFileDecl(CILParser.FileDeclContext context) 2906public GrammarResult.Sequence<EntityRegistry.InterfaceImplementationEntity> VisitImplClause(CILParser.ImplClauseContext context) => context.implList() is {} implList ? VisitImplList(implList) : new(ImmutableArray<EntityRegistry.InterfaceImplementationEntity>.Empty); 2909public GrammarResult.Sequence<EntityRegistry.InterfaceImplementationEntity> VisitImplList(CILParser.ImplListContext context) 2911var builder = ImmutableArray.CreateBuilder<EntityRegistry.InterfaceImplementationEntity>(); 2914builder.Add(EntityRegistry.CreateUnrecordedInterfaceImplementation(_currentTypeDefinition.PeekOrDefault()!, VisitTypeSpec(impl).Value)); 2980if (fieldRef is EntityRegistry.MemberReferenceEntity memberRef) 3017if (methodRef is EntityRegistry.MemberReferenceEntity memberRef) 3454public GrammarResult.Literal<(EntityRegistry.EntityBase? implementation, uint offset, ImmutableArray<EntityRegistry.CustomAttributeEntity> attributes)> VisitManifestResDecls(CILParser.ManifestResDeclsContext context) 3456EntityRegistry.EntityBase? implementation = null; 3458var attributes = ImmutableArray.CreateBuilder<EntityRegistry.CustomAttributeEntity>(); 3471if (kind == ".file" && implementation is not EntityRegistry.AssemblyReferenceEntity) 3554public GrammarResult.Literal<EntityRegistry.EntityBase> VisitMdtoken(CILParser.MdtokenContext context) 3560public GrammarResult.Literal<EntityRegistry.EntityBase> VisitMemberRef(CILParser.MemberRefContext context) 3717_currentTypeDefinition.PeekOrDefault()!.MethodImplementations.Add(EntityRegistry.CreateUnrecordedMethodImplementation(currentMethod.Definition, methodRef)); 3729EntityRegistry.GenericParameterEntity? param = null; 3770EntityRegistry.GenericParameterEntity? param = null; 3802EntityRegistry.GenericParameterConstraintEntity? constraint = null; 3814constraint = EntityRegistry.CreateGenericConstraint(baseType); 3885public GrammarResult.Literal<EntityRegistry.MethodDefinitionEntity> VisitMethodHead(CILParser.MethodHeadContext context) 3889var methodDefinition = EntityRegistry.CreateUnrecordedMethodDefinition(containingType, name); 3911(EntityRegistry.ModuleReferenceEntity Module, string? EntryPoint, MethodImportAttributes Attributes)? pInvokeInformation = null; 3943EntityRegistry.GenericParameterEntity? param = typeParameters[i]; 3960methodDefinition.Parameters.Add(EntityRegistry.CreateParameter(returnValue.Attributes, returnValue.Name, returnValue.MarshallingDescriptor, 0)); 3965methodDefinition.Parameters.Add(EntityRegistry.CreateParameter(arg.Attributes, arg.Name, arg.MarshallingDescriptor, i + 1)); 3973if (!EntityRegistry.TryAddMethodDefinitionToContainingType(methodDefinition)) 4003public GrammarResult.Literal<EntityRegistry.EntityBase> VisitMethodRef(CILParser.MethodRefContext context) 4023EntityRegistry.TypeEntity owner = _currentTypeDefinition.PeekOrDefault() ?? _entityRegistry.ModuleType; 4418public GrammarResult.Literal<EntityRegistry.EntityBase> VisitOwnerType(CILParser.OwnerTypeContext context) 4525public GrammarResult.Literal<(MethodSemanticsAttributes, EntityRegistry.EntityBase)?> VisitPropDecl(CILParser.PropDeclContext context) 4532EntityRegistry.EntityBase memberReference = VisitMethodRef(context.methodRef()).Value; 4544public GrammarResult.Sequence<(MethodSemanticsAttributes, EntityRegistry.EntityBase)> VisitPropDecls(CILParser.PropDeclsContext context) 4552public GrammarResult.Literal<EntityRegistry.PropertyEntity> VisitPropHead(CILParser.PropHeadContext context) 4570var property = new EntityRegistry.PropertyEntity(propAttrs, signature, name); 4621if (context.typeSpec() is CILParser.TypeSpecContext typeSpec && VisitTypeSpec(typeSpec).Value is EntityRegistry.IHasReflectionNotation reflectionNotation) 4651public GrammarResult.Literal<EntityRegistry.DeclarativeSecurityAttributeEntity?> VisitSecDecl(CILParser.SecDeclContext context) 4686internal sealed record Catch(EntityRegistry.TypeEntity Type, LabelHandle Start, LabelHandle End) : ExceptionClause(Start, End); 4799blob.WriteSerializedString((VisitClassName(context.className()).Value as EntityRegistry.IHasReflectionNotation)?.ReflectionNotation ?? ""); 4830blob.WriteSerializedString(VisitClassName(className).Value is EntityRegistry.IHasReflectionNotation reflection ? reflection.ReflectionNotation : string.Empty); 5001public GrammarResult.Sequence<EntityRegistry.GenericParameterConstraintEntity> VisitTyBound(CILParser.TyBoundContext? context) 5006return new(ImmutableArray<EntityRegistry.GenericParameterConstraintEntity>.Empty); 5011.Select(EntityRegistry.CreateGenericConstraint) 5017public GrammarResult.Literal<EntityRegistry.GenericParameterEntity> VisitTypar(CILParser.TyparContext context) 5020EntityRegistry.GenericParameterEntity genericParameter = EntityRegistry.CreateGenericParameter(attributes, VisitDottedName(context.dottedName()).Value); 5054public GrammarResult.Sequence<EntityRegistry.GenericParameterEntity> VisitTypars(CILParser.TyparsContext context) 5057ImmutableArray<EntityRegistry.GenericParameterEntity>.Builder builder = ImmutableArray.CreateBuilder<EntityRegistry.GenericParameterEntity>(typeParameters.Length); 5067public GrammarResult.Sequence<EntityRegistry.GenericParameterEntity> VisitTyparsClause(CILParser.TyparsClauseContext context) => context.typars() is null ? new(ImmutableArray<EntityRegistry.GenericParameterEntity>.Empty) : VisitTypars(context.typars()); 5225private EntityRegistry.TypeEntity? TryResolveTypedefAsType(string alias) 5260private EntityRegistry.EntityBase? TryResolveTypedefAsMember(string alias) 5272private (EntityRegistry.EntityBase Constructor, BlobBuilder Value)? TryResolveTypedefAsCustomAttribute(string alias) 5294public GrammarResult.Sequence<EntityRegistry.TypeEntity> VisitTypeList(CILParser.TypeListContext context) 5297ImmutableArray<EntityRegistry.TypeEntity>.Builder builder = ImmutableArray.CreateBuilder<EntityRegistry.TypeEntity>(bounds.Length); 5306public GrammarResult.Literal<EntityRegistry.TypeEntity> VisitTypeSpec(CILParser.TypeSpecContext context) 5317EntityRegistry.ModuleReferenceEntity? module = _entityRegistry.FindModuleReference(nameToResolve); 5321return new(new EntityRegistry.FakeTypeEntity(MetadataTokens.ModuleReferenceHandle(0))); 5323return new(new EntityRegistry.FakeTypeEntity(module.Handle)); 5327return new(new EntityRegistry.FakeTypeEntity(