private RuntimeFatMethodParameterInfo(MethodBase member, MethodHandle methodHandle, int position, ParameterHandle parameterHandle, MetadataReader reader, Handle typeHandle, TypeContext typeContext)
     : base(member, position, reader, typeHandle, typeContext)
 {
     _methodHandle = methodHandle;
     _parameterHandle = parameterHandle;
     _parameter = parameterHandle.GetParameter(reader);
 }
 protected RuntimeMethodParameterInfo(MethodBase member, int position, MetadataReader reader, Handle typeHandle, TypeContext typeContext)
     : base(member, position)
 {
     Reader = reader;
     _typeHandle = typeHandle;
     _typeContext = typeContext;
 }
Ejemplo n.º 3
0
        // TODO
        // bool _hasModifiers;

        public NativeFormatSignatureParser(NativeFormatMetadataUnit metadataUnit, Handle signatureHandle, MetadataReader metadataReader)
        {
            _metadataUnit = metadataUnit;
            _signatureHandle = signatureHandle;
            _metadataReader = metadataReader;
            // _hasModifiers = false;
        }
Ejemplo n.º 4
0
 public static uint Read(this NativeReader reader, uint offset, out Handle handle)
 {
     uint rawValue;
     offset = reader.DecodeUnsigned(offset, out rawValue);
     handle = new Handle((HandleType)(byte)rawValue, (int)(rawValue >> 8));
     return offset;
 }
Ejemplo n.º 5
0
 public static bool GetAttributeTypeAndConstructor(this MetadataReader metadataReader, CustomAttributeHandle attributeHandle,
     out Handle attributeType, out Handle attributeCtor)
 {
     CustomAttribute attribute = metadataReader.GetCustomAttribute(attributeHandle);
     attributeCtor = attribute.Constructor;
     attributeType = attribute.GetAttributeTypeHandle(metadataReader);
     return true;
 }
Ejemplo n.º 6
0
        public static bool GetAttributeTypeNamespaceAndName(this MetadataReader metadataReader, Handle attributeType,
            out string namespaceString, out ConstantStringValueHandle nameHandle)
        {
            namespaceString = null;
            nameHandle = default(ConstantStringValueHandle);

            if (attributeType.HandleType == HandleType.TypeReference)
            {
                TypeReference typeRefRow = metadataReader.GetTypeReference(attributeType.ToTypeReferenceHandle(metadataReader));
                HandleType handleType = typeRefRow.ParentNamespaceOrType.HandleType;

                // Nested type?
                if (handleType == HandleType.TypeReference || handleType == HandleType.TypeDefinition)
                    return false;

                nameHandle = typeRefRow.TypeName;
                namespaceString = metadataReader.GetNamespaceName(typeRefRow.ParentNamespaceOrType.ToNamespaceReferenceHandle(metadataReader));
                return true;
            }
            else if (attributeType.HandleType == HandleType.TypeDefinition)
            {
                var def = metadataReader.GetTypeDefinition(attributeType.ToTypeDefinitionHandle(metadataReader));

                // Nested type?
                if (IsNested(def.Flags))
                    return false;

                nameHandle = def.Name;
                namespaceString = metadataReader.GetNamespaceName(def.NamespaceDefinition);
                return true;
            }
            else
            {
                // unsupported metadata
                return false;
            }
        }
Ejemplo n.º 7
0
        } // ToTypeForwarderHandle

        internal TypeInstantiationSignatureHandle ToTypeInstantiationSignatureHandle(Handle handle)
        {
            return new TypeInstantiationSignatureHandle(handle._value);
        } // ToTypeInstantiationSignatureHandle
Ejemplo n.º 8
0
        } // ToTypeDefinitionHandle

        internal TypeForwarderHandle ToTypeForwarderHandle(Handle handle)
        {
            return new TypeForwarderHandle(handle._value);
        } // ToTypeForwarderHandle
Ejemplo n.º 9
0
        } // ToScopeReferenceHandle

        internal TypeDefinitionHandle ToTypeDefinitionHandle(Handle handle)
        {
            return new TypeDefinitionHandle(handle._value);
        } // ToTypeDefinitionHandle
Ejemplo n.º 10
0
        } // ToScopeDefinitionHandle

        internal ScopeReferenceHandle ToScopeReferenceHandle(Handle handle)
        {
            return new ScopeReferenceHandle(handle._value);
        } // ToScopeReferenceHandle
Ejemplo n.º 11
0
        } // ToMethodTypeVariableSignatureHandle

        internal NamedArgumentHandle ToNamedArgumentHandle(Handle handle)
        {
            return new NamedArgumentHandle(handle._value);
        } // ToNamedArgumentHandle
Ejemplo n.º 12
0
 public bool Equals(Handle handle)
 {
     return(_value == handle._value);
 }
Ejemplo n.º 13
0
        } // ToTypeSpecificationHandle

        internal TypeVariableSignatureHandle ToTypeVariableSignatureHandle(Handle handle)
        {
            return new TypeVariableSignatureHandle(handle._value);
        } // ToTypeVariableSignatureHandle
Ejemplo n.º 14
0
        } // ToPropertyHandle

        internal PropertySignatureHandle ToPropertySignatureHandle(Handle handle)
        {
            return new PropertySignatureHandle(handle._value);
        } // ToPropertySignatureHandle
Ejemplo n.º 15
0
        } // ToParameterHandle

        internal ParameterTypeSignatureHandle ToParameterTypeSignatureHandle(Handle handle)
        {
            return new ParameterTypeSignatureHandle(handle._value);
        } // ToParameterTypeSignatureHandle
Ejemplo n.º 16
0
        } // ToParameterTypeSignatureHandle

        internal PointerSignatureHandle ToPointerSignatureHandle(Handle handle)
        {
            return new PointerSignatureHandle(handle._value);
        } // ToPointerSignatureHandle
Ejemplo n.º 17
0
        } // ToNamespaceReferenceHandle

        internal ParameterHandle ToParameterHandle(Handle handle)
        {
            return new ParameterHandle(handle._value);
        } // ToParameterHandle
Ejemplo n.º 18
0
        } // ToNamespaceDefinitionHandle

        internal NamespaceReferenceHandle ToNamespaceReferenceHandle(Handle handle)
        {
            return new NamespaceReferenceHandle(handle._value);
        } // ToNamespaceReferenceHandle
Ejemplo n.º 19
0
        } // ToNamedArgumentHandle

        internal NamespaceDefinitionHandle ToNamespaceDefinitionHandle(Handle handle)
        {
            return new NamespaceDefinitionHandle(handle._value);
        } // ToNamespaceDefinitionHandle
Ejemplo n.º 20
0
        } // ToTypeInstantiationSignatureHandle

        internal TypeReferenceHandle ToTypeReferenceHandle(Handle handle)
        {
            return new TypeReferenceHandle(handle._value);
        } // ToTypeReferenceHandle
Ejemplo n.º 21
0
 /// <summary>
 /// Idempotent - simply returns the provided handle value. Exists for
 /// consistency so that generated code does not need to handle this
 /// as a special case.
 /// </summary>
 public Handle ToHandle(Handle handle)
 {
     return handle;
 }
Ejemplo n.º 22
0
        } // ToTypeReferenceHandle

        internal TypeSpecificationHandle ToTypeSpecificationHandle(Handle handle)
        {
            return new TypeSpecificationHandle(handle._value);
        } // ToTypeSpecificationHandle
Ejemplo n.º 23
0
        } // Read

        public static uint Read(this NativeReader reader, uint offset, out Handle[] values)
        {
            uint count;
            offset = reader.DecodeUnsigned(offset, out count);
            if (count == 0)
            {
                values = s_emptyHandleArray;
            }
            else
            {
                values = new Handle[count];
                for (uint i = 0; i < count; ++i)
                {
                    Handle tmp;
                    offset = reader.Read(offset, out tmp);
                    values[i] = tmp;
                }
            }
            return offset;
        } // Read
Ejemplo n.º 24
0
 internal ConstantCharValueHandle(Handle handle) : this(handle._value)
 {
 }
Ejemplo n.º 25
0
 /// <summary>
 /// Idempotent - simply returns the provided handle value. Exists for
 /// consistency so that generated code does not need to handle this
 /// as a special case.
 /// </summary>
 public Handle ToHandle(Handle handle)
 {
     return(handle);
 }
Ejemplo n.º 26
0
        } // ToQualifiedFieldHandle

        internal QualifiedMethodHandle ToQualifiedMethodHandle(Handle handle)
        {
            return new QualifiedMethodHandle(handle._value);
        } // ToQualifiedMethodHandle
Ejemplo n.º 27
0
        } // ToMethodSignatureHandle

        internal MethodTypeVariableSignatureHandle ToMethodTypeVariableSignatureHandle(Handle handle)
        {
            return new MethodTypeVariableSignatureHandle(handle._value);
        } // ToMethodTypeVariableSignatureHandle
Ejemplo n.º 28
0
 /// <summary>
 /// Returns true if handle is null.
 /// </summary>
 public bool IsNull(Handle handle)
 {
     return handle._value == NullHandle._value;
 }
Ejemplo n.º 29
0
        } // ToQualifiedMethodHandle

        internal ReturnTypeSignatureHandle ToReturnTypeSignatureHandle(Handle handle)
        {
            return new ReturnTypeSignatureHandle(handle._value);
        } // ToReturnTypeSignatureHandle
Ejemplo n.º 30
0
 public bool Equals(Handle handle)
 {
     return _value == handle._value;
 }
Ejemplo n.º 31
0
        } // ToReturnTypeSignatureHandle

        internal SZArraySignatureHandle ToSZArraySignatureHandle(Handle handle)
        {
            return new SZArraySignatureHandle(handle._value);
        } // ToSZArraySignatureHandle
Ejemplo n.º 32
0
        } // ToSZArraySignatureHandle

        internal ScopeDefinitionHandle ToScopeDefinitionHandle(Handle handle)
        {
            return new ScopeDefinitionHandle(handle._value);
        } // ToScopeDefinitionHandle
Ejemplo n.º 33
0
 /// <summary>
 /// Returns true if handle is null.
 /// </summary>
 public bool IsNull(Handle handle)
 {
     return(handle._value == NullHandle._value);
 }