5
// Jb Evain (jbevain@gmail.com)
7
// Copyright (c) 2008 - 2011 Jb Evain
9
// Permission is hereby granted, free of charge, to any person obtaining
10
// a copy of this software and associated documentation files (the
11
// "Software"), to deal in the Software without restriction, including
12
// without limitation the rights to use, copy, modify, merge, publish,
13
// distribute, sublicense, and/or sell copies of the Software, and to
14
// permit persons to whom the Software is furnished to do so, subject to
15
// the following conditions:
17
// The above copyright notice and this permission notice shall be
18
// included in all copies or substantial portions of the Software.
20
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
21
// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
22
// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
23
// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
24
// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
25
// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
26
// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
29
namespace Mono.Cecil.Metadata {
31
enum ElementType : byte {
47
Ptr = 0x0f, // Followed by <type> token
48
ByRef = 0x10, // Followed by <type> token
49
ValueType = 0x11, // Followed by <type> token
50
Class = 0x12, // Followed by <type> token
51
Var = 0x13, // Followed by generic parameter number
52
Array = 0x14, // <type> <rank> <boundsCount> <bound1> <loCount> <lo1>
53
GenericInst = 0x15, // <type> <type-arg-count> <type-1> ... <type-n> */
55
I = 0x18, // System.IntPtr
56
U = 0x19, // System.UIntPtr
57
FnPtr = 0x1b, // Followed by full method signature
58
Object = 0x1c, // System.Object
59
SzArray = 0x1d, // Single-dim array with 0 lower bound
60
MVar = 0x1e, // Followed by generic parameter number
61
CModReqD = 0x1f, // Required modifier : followed by a TypeDef or TypeRef token
62
CModOpt = 0x20, // Optional modifier : followed by a TypeDef or TypeRef token
63
Internal = 0x21, // Implemented within the CLI
64
Modifier = 0x40, // Or'd with following element types
65
Sentinel = 0x41, // Sentinel for varargs method signature
66
Pinned = 0x45, // Denotes a local variable that points at a pinned object
68
// special undocumented constants