1 // Licensed to the .NET Foundation under one or more agreements. 2 // The .NET Foundation licenses this file to you under the MIT license. 3 // See the LICENSE file in the project root for more information. 4 5 namespace System.Reflection.Metadata.Ecma335 6 { 7 [Flags] 8 internal enum TypeDefTreatment : byte 9 { 10 None = 0, 11 12 KindMask = 0x0f, 13 NormalNonAttribute = 1, 14 NormalAttribute = 2, 15 UnmangleWinRTName = 3, 16 PrefixWinRTName = 4, 17 RedirectedToClrType = 5, 18 RedirectedToClrAttribute = 6, 19 20 MarkAbstractFlag = 0x10, 21 MarkInternalFlag = 0x20 22 } 23 24 internal enum TypeRefTreatment : byte 25 { 26 None = 0, 27 SystemDelegate = 1, 28 SystemAttribute = 2, 29 30 // RowId is an index to the projection info table. 31 UseProjectionInfo = 3, 32 } 33 34 internal enum TypeRefSignatureTreatment : byte 35 { 36 None = 0, 37 ProjectedToClass = 1, 38 ProjectedToValueType = 2, 39 } 40 41 [Flags] 42 internal enum MethodDefTreatment : byte 43 { 44 None = 0, 45 46 KindMask = 0x0f, 47 Other = 1, 48 DelegateMethod = 2, 49 AttributeMethod = 3, 50 InterfaceMethod = 4, 51 Implementation = 5, 52 HiddenInterfaceImplementation = 6, 53 DisposeMethod = 7, 54 55 MarkAbstractFlag = 0x10, 56 MarkPublicFlag = 0x20, 57 // TODO: In the latest Adapter.cpp sources this seems to be no longer applicable (confirm?) 58 // MarkSpecialName = 0x40 59 } 60 61 [Flags] 62 internal enum FieldDefTreatment : byte 63 { 64 None = 0, 65 EnumValue = 1, 66 } 67 68 [Flags] 69 internal enum MemberRefTreatment : byte 70 { 71 None = 0, 72 Dispose = 1, 73 } 74 75 [Flags] 76 internal enum CustomAttributeTreatment : byte 77 { 78 None = 0, 79 WinMD = 1, 80 } 81 82 [Flags] 83 internal enum CustomAttributeValueTreatment : byte 84 { 85 None = 0, 86 AttributeUsageAllowSingle = 1, 87 AttributeUsageAllowMultiple = 2, 88 AttributeUsageVersionAttribute = 3, 89 AttributeUsageDeprecatedAttribute = 4, 90 } 91 } 92