Beispiel #1
0
 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;
 }
Beispiel #5
0
 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);
 }
Beispiel #9
0
        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;
        }
Beispiel #12
0
 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);
        }
Beispiel #15
0
        } // 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
Beispiel #16
0
        public string GetGenericMethodTypeParameterName(int index)
        {
            GenericParameterHandle genericParameter = GetGenericMethodTypeParameterHandleOrNull(index);

            if (genericParameter.IsNil)
            {
                return(index.ToString());
            }
            return(module.Metadata.GetString(module.Metadata.GetGenericParameter(genericParameter).Name));
        }
Beispiel #17
0
 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)));
         }
     }
 }
Beispiel #20
0
        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;
        }
Beispiel #22
0
        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;
 }
Beispiel #24
0
 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);
 }
Beispiel #27
0
        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;
 }
Beispiel #29
0
 //
 // 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);
        }
Beispiel #31
0
        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));
        }
Beispiel #32
0
 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();
 }
Beispiel #34
0
 public GenericParameter GetGenericParameter(GenericParameterHandle handle)
 {
     return new GenericParameter(this, handle);
 }
Beispiel #35
0
 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);
        }
Beispiel #39
0
 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;
 }
Beispiel #41
0
 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;
 }
Beispiel #43
0
 internal StringHandle GetName(GenericParameterHandle handle)
 {
     int rowOffset = (handle.RowId - 1) * this.RowSize;
     return StringHandle.FromOffset(this.Block.PeekHeapReference(rowOffset + _NameOffset, _IsStringHeapRefSizeSmall));
 }
Beispiel #44
0
        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);
        }
Beispiel #45
0
 internal EntityHandle GetOwner(GenericParameterHandle handle)
 {
     int rowOffset = (handle.RowId - 1) * this.RowSize;
     return TypeOrMethodDefTag.ConvertToHandle(this.Block.PeekTaggedReference(rowOffset + _OwnerOffset, _IsTypeOrMethodDefRefSizeSmall));
 }
Beispiel #46
0
 private EcmaFormatRuntimeGenericParameterTypeInfoForTypes(MetadataReader reader, GenericParameterHandle genericParameterHandle, RuntimeTypeDefinitionTypeInfo declaringType)
     : base(reader, genericParameterHandle, reader.GetGenericParameter(genericParameterHandle))
 {
     _declaringType = declaringType;
 }
Beispiel #47
0
 internal StringHandle GetName(GenericParameterHandle handle)
 {
     int rowOffset = (int)(handle.RowId - 1) * this.RowSize;
     return StringHandle.FromIndex(this.Block.PeekReference(rowOffset + this.NameOffset, this.IsStringHeapRefSizeSmall));
 }