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 Microsoft.CSharp.RuntimeBinder.Syntax 6 { 7 internal enum PredefinedType : uint 8 { 9 PT_BYTE, 10 PT_SHORT, 11 PT_INT, 12 PT_LONG, 13 PT_FLOAT, 14 PT_DOUBLE, 15 PT_DECIMAL, 16 PT_CHAR, 17 PT_BOOL, 18 19 // "simple" types are certain types that the compiler knows about for conversion and operator purposes.ses. 20 // Keep these first so that we can build conversion tables on their ordinals... Don't change the orderer 21 // of the simple types because it will mess up conversion tables. 22 // The following Quasi-Simple types are considered simple, except they are non-CLS compliant 23 PT_SBYTE, 24 PT_USHORT, 25 PT_UINT, 26 PT_ULONG, 27 28 // The special "pointer-sized int" types. Note that this are not considered numeric types from the compiler's point of view -- 29 // they are special only in that they have special signature encodings. 30 FirstNonSimpleType, 31 PT_INTPTR = FirstNonSimpleType, 32 PT_UINTPTR, 33 34 PT_OBJECT, 35 36 // THE ORDER ABOVE HERE IS IMPORTANT!!! It is used in tables in both fncbind and ilgen 37 PT_STRING, 38 PT_DELEGATE, 39 PT_MULTIDEL, 40 PT_ARRAY, 41 PT_TYPE, 42 PT_VALUE, 43 PT_ENUM, 44 PT_DATETIME, 45 46 // predefined types for the BCL 47 PT_IENUMERABLE, 48 49 // Generic variants of enumerator interfaces 50 PT_G_IENUMERABLE, 51 52 // Nullable<T> 53 PT_G_OPTIONAL, 54 55 // LINQ 56 PT_G_IQUERYABLE, 57 PT_G_ICOLLECTION, 58 PT_G_ILIST, 59 PT_G_EXPRESSION, 60 PT_EXPRESSION, 61 PT_BINARYEXPRESSION, 62 PT_UNARYEXPRESSION, 63 PT_CONSTANTEXPRESSION, 64 PT_PARAMETEREXPRESSION, 65 PT_MEMBEREXPRESSION, 66 PT_METHODCALLEXPRESSION, 67 PT_NEWEXPRESSION, 68 PT_NEWARRAYEXPRESSION, 69 PT_INVOCATIONEXPRESSION, 70 PT_FIELDINFO, 71 PT_METHODINFO, 72 PT_CONSTRUCTORINFO, 73 PT_PROPERTYINFO, 74 PT_MISSING, 75 76 PT_G_IREADONLYLIST, 77 PT_G_IREADONLYCOLLECTION, 78 PT_FUNC, 79 PT_COUNT, 80 PT_VOID, // (special case) 81 82 PT_UNDEFINEDINDEX = 0xffffffff, 83 } 84 } 85