protected RuntimeGenericParameterTypeInfo(MetadataReader reader, GenericParameterHandle genericParameterHandle) { Reader = reader; GenericParameterHandle = genericParameterHandle; _genericParameter = genericParameterHandle.GetGenericParameter(reader); _position = _genericParameter.Number; }
internal RuntimeGenericParameterType(MetadataReader reader, GenericParameterHandle genericParameterHandle) { _reader = reader; _genericParameterHandle = genericParameterHandle; _genericParameter = _genericParameterHandle.GetGenericParameter(_reader); _position = _genericParameter.Number; }
protected EcmaFormatRuntimeGenericParameterTypeInfo(MetadataReader reader, GenericParameterHandle genericParameterHandle, GenericParameter genericParameter) : base(genericParameter.Index) { Reader = reader; GenericParameterHandle = genericParameterHandle; _genericParameter = genericParameter; }
protected NativeFormatRuntimeGenericParameterTypeInfo(MetadataReader reader, GenericParameterHandle genericParameterHandle, GenericParameter genericParameter) : base(genericParameter.Number) { Reader = reader; GenericParameterHandle = genericParameterHandle; _genericParameter = genericParameter; }
internal MetadataGenericParameterType( MetadataAssembly assembly, GenericParameterHandle handle, MetadataType declaringType) : this(assembly, handle, declaringType, null) { }
internal RuntimeGenericParameterType(MetadataReader reader, GenericParameterHandle genericParameterHandle) { _reader = reader; _genericParameterHandle = genericParameterHandle; _genericParameter = _genericParameterHandle.GetGenericParameter(_reader); _position = _genericParameter.Number; }
private GenericParameterWrapper(AssemblyMetadata assemblyMetadata, IHandleTypeNamedWrapper owner, GenericParameterHandle handle, GenericParameterAttributes genericParameterAttribute) { AssemblyMetadata = assemblyMetadata; Owner = owner; Handle = handle; _genericParameterAttribute = genericParameterAttribute; GenericParameter = assemblyMetadata.MetadataReader.GetGenericParameter(handle); _attributes = new Lazy <IReadOnlyList <AttributeWrapper> >(() => AttributeWrapper.CreateChecked(GenericParameter.GetCustomAttributes(), assemblyMetadata), LazyThreadSafetyMode.PublicationOnly); _parent = new Lazy <IHandleTypeNamedWrapper?>(() => WrapperFactory.Create(GenericParameter.Parent, assemblyMetadata), LazyThreadSafetyMode.PublicationOnly); _name = new Lazy <string>(() => GenericParameter.Name.GetName(assemblyMetadata)); switch (genericParameterAttribute & GenericParameterAttributes.VarianceMask) { case GenericParameterAttributes.Contravariant: Variance = VarianceType.Contravariant; break; case GenericParameterAttributes.Covariant: Variance = VarianceType.Covariant; break; default: Variance = VarianceType.Invariant; break; } _constraints = new Lazy <IReadOnlyList <GenericParameterConstraintWrapper> >(() => GenericParameterConstraintWrapper.CreateChecked(GenericParameter.GetConstraints(), this, AssemblyMetadata), LazyThreadSafetyMode.PublicationOnly); }
public GenericParamEntry(PEFile module, GenericParameterHandle handle) { this.metadataOffset = module.Reader.PEHeaders.MetadataStartOffset; this.module = module; this.metadata = module.Metadata; this.handle = handle; this.genericParam = metadata.GetGenericParameter(handle); }
internal GenericParameter(MetadataReader reader, GenericParameterHandle handle) { Debug.Assert(reader != null); Debug.Assert(!handle.IsNil); _reader = reader; _rowId = handle.RowId; }
internal PETypeParameterSymbol( PEModuleSymbol moduleSymbol, PEMethodSymbol definingMethod, ushort ordinal, GenericParameterHandle handle) : this(moduleSymbol, (Symbol)definingMethod, ordinal, handle) { }
internal GenericParameter(MetadataReader reader, GenericParameterHandle handle) { Debug.Assert(reader != null); Debug.Assert(!handle.IsNil); _reader = reader; _rowId = handle.RowId; }
private MetadataTypeParameter(MetadataModule module, IEntity owner, int index, string name, GenericParameterHandle handle, GenericParameterAttributes attr) : base(owner, index, name, GetVariance(attr)) { this.module = module; this.handle = handle; this.attr = attr; }
internal PETypeParameterSymbol( PEModuleSymbol moduleSymbol, PEMethodSymbol definingMethod, ushort ordinal, GenericParameterHandle handle) : this(moduleSymbol, (Symbol)definingMethod, ordinal, handle) { }
internal EcmaGenericParameterType(GenericParameterHandle handle, EcmaModule module) : base() { Debug.Assert(!handle.IsNil); Handle = handle; _ecmaModule = module; _neverAccessThisExceptThroughGenericParameterProperty = handle.GetGenericParameter(Reader); }
} // Read public static uint Read(this NativeReader reader, uint offset, out GenericParameterHandle handle) { uint value; offset = reader.DecodeUnsigned(offset, out value); handle = new GenericParameterHandle((int)value); handle._Validate(); return(offset); } // Read
public string GetGenericMethodTypeParameterName(int index) { GenericParameterHandle genericParameter = GetGenericMethodTypeParameterHandleOrNull(index); if (genericParameter.IsNil) { return(index.ToString()); } return(module.Metadata.GetString(module.Metadata.GetGenericParameter(genericParameter).Name)); }
internal MetadataGenericParameterType( MetadataAssembly assembly, GenericParameterHandle handle, MetadataType declaringType, MetadataMethodInfo declaringMethod) : base(assembly, default(TypeDefinitionHandle)) { _isMethodParameter = declaringMethod != null; _declaringMethod = declaringMethod; _declaringType = declaringType; _metadata = assembly.Metadata; _handle = handle; }
internal static MrType CreateFromGenericParameterHandle( GenericParameterHandle handle, MrAssembly assembly, int arrayRank = 0, bool isReference = false, bool isPointer = false) { return(new MrType(handle, assembly) { ArrayRank = arrayRank, IsReference = isReference, IsPointer = isPointer }); }
void WriteTypeParameter(GenericParameterHandle paramRef, int index, ILNameSyntax syntax) { if (paramRef.IsNil || syntax == ILNameSyntax.SignatureNoNamedTypeParameters) { output.Write(index.ToString()); } else { var param = metadata.GetGenericParameter(paramRef); if (param.Name.IsNil) { output.Write(param.Index.ToString()); } else { output.Write(DisassemblerHelpers.Escape(metadata.GetString(param.Name))); } } }
private PETypeParameterSymbol( PEModuleSymbol moduleSymbol, Symbol definingSymbol, ushort ordinal, GenericParameterHandle handle ) { Debug.Assert((object)moduleSymbol != null); Debug.Assert((object)definingSymbol != null); Debug.Assert(ordinal >= 0); Debug.Assert(!handle.IsNil); _containingSymbol = definingSymbol; GenericParameterAttributes flags = 0; try { moduleSymbol.Module.GetGenericParamPropsOrThrow(handle, out _name, out flags); } catch (BadImageFormatException) { if ((object)_name == null) { _name = string.Empty; } _lazyCachedConstraintsUseSiteInfo.Initialize( new CSDiagnosticInfo(ErrorCode.ERR_BindToBogus, this) ); } // Clear the '.ctor' flag if both '.ctor' and 'valuetype' are // set since '.ctor' is redundant in that case. _flags = ((flags & GenericParameterAttributes.NotNullableValueTypeConstraint) == 0) ? flags : (flags & ~GenericParameterAttributes.DefaultConstructorConstraint); _ordinal = ordinal; _handle = handle; }
private PETypeParameterSymbol( PEModuleSymbol moduleSymbol, Symbol definingSymbol, ushort ordinal, GenericParameterHandle handle) { Debug.Assert((object)moduleSymbol != null); Debug.Assert((object)definingSymbol != null); Debug.Assert(ordinal >= 0); Debug.Assert(!handle.IsNil); _containingSymbol = definingSymbol; GenericParameterAttributes flags = 0; try { moduleSymbol.Module.GetGenericParamPropsOrThrow(handle, out _name, out flags); } catch (BadImageFormatException) { if ((object)_name == null) { _name = string.Empty; } _lazyBoundsErrorInfo = new CSDiagnosticInfo(ErrorCode.ERR_BindToBogus, this); } // Clear the '.ctor' flag if both '.ctor' and 'valuetype' are // set since '.ctor' is redundant in that case. _flags = ((flags & GenericParameterAttributes.NotNullableValueTypeConstraint) == 0) ? flags : (flags & ~GenericParameterAttributes.DefaultConstructorConstraint); _ordinal = ordinal; _handle = handle; }
public IEnumerable <IExtractionProduct> PopulateHandle(GenericContext gc, GenericParameterHandle parameterHandle) { if (!parameterHandle.IsNil) { var tp = cx.mdReader.GetGenericParameter(parameterHandle); if (tp.Attributes.HasFlag(GenericParameterAttributes.Contravariant)) { yield return(Tuples.cil_typeparam_contravariant(this)); } if (tp.Attributes.HasFlag(GenericParameterAttributes.Covariant)) { yield return(Tuples.cil_typeparam_covariant(this)); } if (tp.Attributes.HasFlag(GenericParameterAttributes.DefaultConstructorConstraint)) { yield return(Tuples.cil_typeparam_new(this)); } if (tp.Attributes.HasFlag(GenericParameterAttributes.ReferenceTypeConstraint)) { yield return(Tuples.cil_typeparam_class(this)); } if (tp.Attributes.HasFlag(GenericParameterAttributes.NotNullableValueTypeConstraint)) { yield return(Tuples.cil_typeparam_struct(this)); } foreach (var constraint in tp.GetConstraints().Select(h => cx.mdReader.GetGenericParameterConstraint(h))) { var t = (Type)cx.CreateGeneric(this.gc, constraint.Type); yield return(t); yield return(Tuples.cil_typeparam_constraint(this, t)); } } }
internal RuntimeGenericParameterTypeForMethods(MetadataReader reader, GenericParameterHandle genericParameterHandle, RuntimeNamedMethodInfo declaringRuntimeNamedMethodInfo) : base(reader, genericParameterHandle) { _declaringRuntimeNamedMethodInfo = declaringRuntimeNamedMethodInfo; }
public QGenericParameter(MetadataReader reader, GenericParameterHandle handle) { _reader = reader; _handle = handle; }
public void AddGenericParameterConstraint( GenericParameterHandle genericParameter, EntityHandle constraint) { _genericParamConstraintTable.Add(new GenericParamConstraintRow { Owner = (uint)MetadataTokens.GetRowNumber(genericParameter), Constraint = (uint)CodedIndex.ToTypeDefOrRef(constraint), }); }
public Mapping<GenericParameterHandle> MapGenericParameter(GenericParameterHandle handle) { return _genericParameters.GetOrAdd(handle, MapGenericParameterImpl); }
public static MetadataTypeParameter Create(MetadataModule module, IEntity owner, int index, GenericParameterHandle handle) { var metadata = module.metadata; var gp = metadata.GetGenericParameter(handle); Debug.Assert(gp.Index == index); return(new MetadataTypeParameter(module, owner, index, module.GetString(gp.Name), handle, gp.Attributes)); }
internal EcmaGenericParameter(EcmaModule module, GenericParameterHandle handle) { _module = module; _handle = handle; }
// // Retrieves the unified Type object for a generic method parameter type. // internal static RuntimeGenericParameterTypeForMethods GetRuntimeGenericParameterTypeForMethods(RuntimeNamedMethodInfo methodOwner, MetadataReader reader, GenericParameterHandle genericParameterHandle) { RuntimeGenericParameterTypeForMethods.UnificationKey key = new RuntimeGenericParameterTypeForMethods.UnificationKey(methodOwner, reader, genericParameterHandle); return(GenericParameterTypeForMethodsTable.Table.GetOrAdd(key)); }
// // For app-compat reasons, we need to make sure that only TypeInfo instance exists for a given semantic type. If you change this, you must change the way // RuntimeTypeInfo.Equals() is implemented. // internal static NativeFormatRuntimeGenericParameterTypeInfoForTypes GetRuntimeGenericParameterTypeInfoForTypes(NativeFormatRuntimeNamedTypeInfo typeOwner, GenericParameterHandle genericParameterHandle) { UnificationKey key = new UnificationKey(typeOwner.Reader, typeOwner.TypeDefinitionHandle, genericParameterHandle); NativeFormatRuntimeGenericParameterTypeInfoForTypes type = GenericParameterTypeForTypesTable.Table.GetOrAdd(key); type.EstablishDebugName(); return(type); }
internal GenericParameterConstraintHandleCollection FindConstraintsForGenericParam(GenericParameterHandle genericParameter) { int startRowNumber, endRowNumber; this.Block.BinarySearchReferenceRange( this.NumberOfRows, this.RowSize, _OwnerOffset, (uint)genericParameter.RowId, _IsGenericParamTableRowRefSizeSmall, out startRowNumber, out endRowNumber); if (startRowNumber == -1) { return default(GenericParameterConstraintHandleCollection); } return new GenericParameterConstraintHandleCollection( firstRowId: startRowNumber + 1, count: (ushort)(endRowNumber - startRowNumber + 1)); }
internal Handle GetOwner(GenericParameterHandle handle) { int rowOffset = (int)(handle.RowId - 1) * this.RowSize; return TypeOrMethodDefTag.ConvertToToken(this.Block.PeekTaggedReference(rowOffset + this.OwnerOffset, this.IsTypeOrMethodDefRefSizeSmall)); }
private Mapping<GenericParameterHandle> MapGenericParameterImpl(GenericParameterHandle handle) { throw new NotImplementedException(); }
public GenericParameter GetGenericParameter(GenericParameterHandle handle) { return new GenericParameter(this, handle); }
public UnificationKey(RuntimeNamedMethodInfo methodOwner, MetadataReader reader, GenericParameterHandle genericParameterHandle) { MethodOwner = methodOwner; GenericParameterHandle = genericParameterHandle; Reader = reader; }
unsafe public SharpLangTypeGenericParameter(SharpLangModule module, GenericParameterHandle handle) : base(null) { this.InternalModule = module; this.InternalHandle = handle; }
internal EcmaGenericTypeParameterType(GenericParameterHandle handle, EcmaModule module) : base(handle, module) { }
// // For app-compat reasons, we need to make sure that only TypeInfo instance exists for a given semantic type. If you change this, you must change the way // RuntimeTypeInfo.Equals() is implemented. // internal static NativeFormatRuntimeGenericParameterTypeInfoForMethods GetRuntimeGenericParameterTypeInfoForMethods(RuntimeNamedMethodInfo methodOwner, MetadataReader reader, GenericParameterHandle genericParameterHandle) { UnificationKey key = new UnificationKey(methodOwner, reader, genericParameterHandle); NativeFormatRuntimeGenericParameterTypeInfoForMethods type = GenericParameterTypeForMethodsTable.Table.GetOrAdd(key); type.EstablishDebugName(); return(type); }
internal ushort GetNumber(GenericParameterHandle handle) { int rowOffset = (handle.RowId - 1) * this.RowSize; return this.Block.PeekUInt16(rowOffset + _NumberOffset); }
private RuntimeGenericParameterTypeInfoForTypes(MetadataReader reader, GenericParameterHandle genericParameterHandle, RuntimeTypeInfo declaringRuntimeNamedTypeInfo) : base(reader, genericParameterHandle) { _declaringRuntimeNamedTypeInfo = declaringRuntimeNamedTypeInfo; }
internal GenericParameterAttributes GetFlags(GenericParameterHandle handle) { int rowOffset = (handle.RowId - 1) * this.RowSize; return (GenericParameterAttributes)this.Block.PeekUInt16(rowOffset + _FlagsOffset); }
internal NativeFormatGenericParameter(NativeFormatMetadataUnit metadataUnit, GenericParameterHandle handle) { _metadataUnit = metadataUnit; _handle = handle; }
internal StringHandle GetName(GenericParameterHandle handle) { int rowOffset = (handle.RowId - 1) * this.RowSize; return StringHandle.FromOffset(this.Block.PeekHeapReference(rowOffset + _NameOffset, _IsStringHeapRefSizeSmall)); }
public void IsNil() { Assert.False(ModuleDefinitionHandle.FromRowId(1).IsNil); Assert.False(AssemblyDefinitionHandle.FromRowId(1).IsNil); Assert.False(InterfaceImplementationHandle.FromRowId(1).IsNil); Assert.False(MethodDefinitionHandle.FromRowId(1).IsNil); Assert.False(MethodSpecificationHandle.FromRowId(1).IsNil); Assert.False(TypeDefinitionHandle.FromRowId(1).IsNil); Assert.False(ExportedTypeHandle.FromRowId(1).IsNil); Assert.False(TypeReferenceHandle.FromRowId(1).IsNil); Assert.False(TypeSpecificationHandle.FromRowId(1).IsNil); Assert.False(MemberReferenceHandle.FromRowId(1).IsNil); Assert.False(FieldDefinitionHandle.FromRowId(1).IsNil); Assert.False(EventDefinitionHandle.FromRowId(1).IsNil); Assert.False(PropertyDefinitionHandle.FromRowId(1).IsNil); Assert.False(StandaloneSignatureHandle.FromRowId(1).IsNil); Assert.False(MemberReferenceHandle.FromRowId(1).IsNil); Assert.False(FieldDefinitionHandle.FromRowId(1).IsNil); Assert.False(EventDefinitionHandle.FromRowId(1).IsNil); Assert.False(PropertyDefinitionHandle.FromRowId(1).IsNil); Assert.False(ParameterHandle.FromRowId(1).IsNil); Assert.False(GenericParameterHandle.FromRowId(1).IsNil); Assert.False(GenericParameterConstraintHandle.FromRowId(1).IsNil); Assert.False(ModuleReferenceHandle.FromRowId(1).IsNil); Assert.False(CustomAttributeHandle.FromRowId(1).IsNil); Assert.False(DeclarativeSecurityAttributeHandle.FromRowId(1).IsNil); Assert.False(ManifestResourceHandle.FromRowId(1).IsNil); Assert.False(ConstantHandle.FromRowId(1).IsNil); Assert.False(ManifestResourceHandle.FromRowId(1).IsNil); Assert.False(AssemblyFileHandle.FromRowId(1).IsNil); Assert.False(MethodImplementationHandle.FromRowId(1).IsNil); Assert.False(AssemblyReferenceHandle.FromRowId(1).IsNil); Assert.False(((EntityHandle)ModuleDefinitionHandle.FromRowId(1)).IsNil); Assert.False(((EntityHandle)AssemblyDefinitionHandle.FromRowId(1)).IsNil); Assert.False(((EntityHandle)InterfaceImplementationHandle.FromRowId(1)).IsNil); Assert.False(((EntityHandle)MethodDefinitionHandle.FromRowId(1)).IsNil); Assert.False(((EntityHandle)MethodSpecificationHandle.FromRowId(1)).IsNil); Assert.False(((EntityHandle)TypeDefinitionHandle.FromRowId(1)).IsNil); Assert.False(((EntityHandle)ExportedTypeHandle.FromRowId(1)).IsNil); Assert.False(((EntityHandle)TypeReferenceHandle.FromRowId(1)).IsNil); Assert.False(((EntityHandle)TypeSpecificationHandle.FromRowId(1)).IsNil); Assert.False(((EntityHandle)MemberReferenceHandle.FromRowId(1)).IsNil); Assert.False(((EntityHandle)FieldDefinitionHandle.FromRowId(1)).IsNil); Assert.False(((EntityHandle)EventDefinitionHandle.FromRowId(1)).IsNil); Assert.False(((EntityHandle)PropertyDefinitionHandle.FromRowId(1)).IsNil); Assert.False(((EntityHandle)StandaloneSignatureHandle.FromRowId(1)).IsNil); Assert.False(((EntityHandle)MemberReferenceHandle.FromRowId(1)).IsNil); Assert.False(((EntityHandle)FieldDefinitionHandle.FromRowId(1)).IsNil); Assert.False(((EntityHandle)EventDefinitionHandle.FromRowId(1)).IsNil); Assert.False(((EntityHandle)PropertyDefinitionHandle.FromRowId(1)).IsNil); Assert.False(((EntityHandle)ParameterHandle.FromRowId(1)).IsNil); Assert.False(((EntityHandle)GenericParameterHandle.FromRowId(1)).IsNil); Assert.False(((EntityHandle)GenericParameterConstraintHandle.FromRowId(1)).IsNil); Assert.False(((EntityHandle)ModuleReferenceHandle.FromRowId(1)).IsNil); Assert.False(((EntityHandle)CustomAttributeHandle.FromRowId(1)).IsNil); Assert.False(((EntityHandle)DeclarativeSecurityAttributeHandle.FromRowId(1)).IsNil); Assert.False(((EntityHandle)ManifestResourceHandle.FromRowId(1)).IsNil); Assert.False(((EntityHandle)ConstantHandle.FromRowId(1)).IsNil); Assert.False(((EntityHandle)ManifestResourceHandle.FromRowId(1)).IsNil); Assert.False(((EntityHandle)AssemblyFileHandle.FromRowId(1)).IsNil); Assert.False(((EntityHandle)MethodImplementationHandle.FromRowId(1)).IsNil); Assert.False(((EntityHandle)AssemblyReferenceHandle.FromRowId(1)).IsNil); Assert.False(StringHandle.FromOffset(1).IsNil); Assert.False(BlobHandle.FromOffset(1).IsNil); Assert.False(UserStringHandle.FromOffset(1).IsNil); Assert.False(GuidHandle.FromIndex(1).IsNil); Assert.False(((Handle)StringHandle.FromOffset(1)).IsNil); Assert.False(((Handle)BlobHandle.FromOffset(1)).IsNil); Assert.False(((Handle)UserStringHandle.FromOffset(1)).IsNil); Assert.False(((Handle)GuidHandle.FromIndex(1)).IsNil); Assert.True(ModuleDefinitionHandle.FromRowId(0).IsNil); Assert.True(AssemblyDefinitionHandle.FromRowId(0).IsNil); Assert.True(InterfaceImplementationHandle.FromRowId(0).IsNil); Assert.True(MethodDefinitionHandle.FromRowId(0).IsNil); Assert.True(MethodSpecificationHandle.FromRowId(0).IsNil); Assert.True(TypeDefinitionHandle.FromRowId(0).IsNil); Assert.True(ExportedTypeHandle.FromRowId(0).IsNil); Assert.True(TypeReferenceHandle.FromRowId(0).IsNil); Assert.True(TypeSpecificationHandle.FromRowId(0).IsNil); Assert.True(MemberReferenceHandle.FromRowId(0).IsNil); Assert.True(FieldDefinitionHandle.FromRowId(0).IsNil); Assert.True(EventDefinitionHandle.FromRowId(0).IsNil); Assert.True(PropertyDefinitionHandle.FromRowId(0).IsNil); Assert.True(StandaloneSignatureHandle.FromRowId(0).IsNil); Assert.True(MemberReferenceHandle.FromRowId(0).IsNil); Assert.True(FieldDefinitionHandle.FromRowId(0).IsNil); Assert.True(EventDefinitionHandle.FromRowId(0).IsNil); Assert.True(PropertyDefinitionHandle.FromRowId(0).IsNil); Assert.True(ParameterHandle.FromRowId(0).IsNil); Assert.True(GenericParameterHandle.FromRowId(0).IsNil); Assert.True(GenericParameterConstraintHandle.FromRowId(0).IsNil); Assert.True(ModuleReferenceHandle.FromRowId(0).IsNil); Assert.True(CustomAttributeHandle.FromRowId(0).IsNil); Assert.True(DeclarativeSecurityAttributeHandle.FromRowId(0).IsNil); Assert.True(ManifestResourceHandle.FromRowId(0).IsNil); Assert.True(ConstantHandle.FromRowId(0).IsNil); Assert.True(ManifestResourceHandle.FromRowId(0).IsNil); Assert.True(AssemblyFileHandle.FromRowId(0).IsNil); Assert.True(MethodImplementationHandle.FromRowId(0).IsNil); Assert.True(AssemblyReferenceHandle.FromRowId(0).IsNil); Assert.True(((EntityHandle)ModuleDefinitionHandle.FromRowId(0)).IsNil); Assert.True(((EntityHandle)AssemblyDefinitionHandle.FromRowId(0)).IsNil); Assert.True(((EntityHandle)InterfaceImplementationHandle.FromRowId(0)).IsNil); Assert.True(((EntityHandle)MethodDefinitionHandle.FromRowId(0)).IsNil); Assert.True(((EntityHandle)MethodSpecificationHandle.FromRowId(0)).IsNil); Assert.True(((EntityHandle)TypeDefinitionHandle.FromRowId(0)).IsNil); Assert.True(((EntityHandle)ExportedTypeHandle.FromRowId(0)).IsNil); Assert.True(((EntityHandle)TypeReferenceHandle.FromRowId(0)).IsNil); Assert.True(((EntityHandle)TypeSpecificationHandle.FromRowId(0)).IsNil); Assert.True(((EntityHandle)MemberReferenceHandle.FromRowId(0)).IsNil); Assert.True(((EntityHandle)FieldDefinitionHandle.FromRowId(0)).IsNil); Assert.True(((EntityHandle)EventDefinitionHandle.FromRowId(0)).IsNil); Assert.True(((EntityHandle)PropertyDefinitionHandle.FromRowId(0)).IsNil); Assert.True(((EntityHandle)StandaloneSignatureHandle.FromRowId(0)).IsNil); Assert.True(((EntityHandle)MemberReferenceHandle.FromRowId(0)).IsNil); Assert.True(((EntityHandle)FieldDefinitionHandle.FromRowId(0)).IsNil); Assert.True(((EntityHandle)EventDefinitionHandle.FromRowId(0)).IsNil); Assert.True(((EntityHandle)PropertyDefinitionHandle.FromRowId(0)).IsNil); Assert.True(((EntityHandle)ParameterHandle.FromRowId(0)).IsNil); Assert.True(((EntityHandle)GenericParameterHandle.FromRowId(0)).IsNil); Assert.True(((EntityHandle)GenericParameterConstraintHandle.FromRowId(0)).IsNil); Assert.True(((EntityHandle)ModuleReferenceHandle.FromRowId(0)).IsNil); Assert.True(((EntityHandle)CustomAttributeHandle.FromRowId(0)).IsNil); Assert.True(((EntityHandle)DeclarativeSecurityAttributeHandle.FromRowId(0)).IsNil); Assert.True(((EntityHandle)ManifestResourceHandle.FromRowId(0)).IsNil); Assert.True(((EntityHandle)ConstantHandle.FromRowId(0)).IsNil); Assert.True(((EntityHandle)ManifestResourceHandle.FromRowId(0)).IsNil); Assert.True(((EntityHandle)AssemblyFileHandle.FromRowId(0)).IsNil); Assert.True(((EntityHandle)MethodImplementationHandle.FromRowId(0)).IsNil); Assert.True(((EntityHandle)AssemblyReferenceHandle.FromRowId(0)).IsNil); // heaps: Assert.True(StringHandle.FromOffset(0).IsNil); Assert.True(BlobHandle.FromOffset(0).IsNil); Assert.True(UserStringHandle.FromOffset(0).IsNil); Assert.True(GuidHandle.FromIndex(0).IsNil); Assert.True(((Handle)StringHandle.FromOffset(0)).IsNil); Assert.True(((Handle)BlobHandle.FromOffset(0)).IsNil); Assert.True(((Handle)UserStringHandle.FromOffset(0)).IsNil); Assert.True(((Handle)GuidHandle.FromIndex(0)).IsNil); // virtual: Assert.False(AssemblyReferenceHandle.FromVirtualIndex(0).IsNil); Assert.False(StringHandle.FromVirtualIndex(0).IsNil); Assert.False(BlobHandle.FromVirtualIndex(0, 0).IsNil); Assert.False(((Handle)AssemblyReferenceHandle.FromVirtualIndex(0)).IsNil); Assert.False(((Handle)StringHandle.FromVirtualIndex(0)).IsNil); Assert.False(((Handle)BlobHandle.FromVirtualIndex(0, 0)).IsNil); }
internal EntityHandle GetOwner(GenericParameterHandle handle) { int rowOffset = (handle.RowId - 1) * this.RowSize; return TypeOrMethodDefTag.ConvertToHandle(this.Block.PeekTaggedReference(rowOffset + _OwnerOffset, _IsTypeOrMethodDefRefSizeSmall)); }
private EcmaFormatRuntimeGenericParameterTypeInfoForTypes(MetadataReader reader, GenericParameterHandle genericParameterHandle, RuntimeTypeDefinitionTypeInfo declaringType) : base(reader, genericParameterHandle, reader.GetGenericParameter(genericParameterHandle)) { _declaringType = declaringType; }
internal StringHandle GetName(GenericParameterHandle handle) { int rowOffset = (int)(handle.RowId - 1) * this.RowSize; return StringHandle.FromIndex(this.Block.PeekReference(rowOffset + this.NameOffset, this.IsStringHeapRefSizeSmall)); }