001: /*******************************************************************************
002: * Copyright (c) 2000, 2006 IBM Corporation and others.
003: * All rights reserved. This program and the accompanying materials
004: * are made available under the terms of the Eclipse Public License v1.0
005: * which accompanies this distribution, and is available at
006: * http://www.eclipse.org/legal/epl-v10.html
007: *
008: * Contributors:
009: * IBM Corporation - initial API and implementation
010: *******************************************************************************/package org.eclipse.jdt.internal.compiler.lookup;
011:
012: public interface TypeIds {
013:
014: //base type void null undefined Object String
015: //should have an id that is 0<= id <= 15
016: // The IDs below must be representable using 4 bits so as to fit in operator signatures.
017: final int T_undefined = 0; // should not be changed
018: final int T_JavaLangObject = 1;
019: final int T_char = 2;
020: final int T_byte = 3;
021: final int T_short = 4;
022: final int T_boolean = 5;
023: final int T_void = 6;
024: final int T_long = 7;
025: final int T_double = 8;
026: final int T_float = 9;
027: final int T_int = 10;
028: final int T_JavaLangString = 11;
029: final int T_null = 12;
030:
031: //=========end of 4 bits constraint===========
032:
033: // well-known exception types
034: final int T_JavaLangClass = 16;
035: final int T_JavaLangStringBuffer = 17;
036: final int T_JavaLangSystem = 18;
037: final int T_JavaLangError = 19;
038: final int T_JavaLangReflectConstructor = 20;
039: final int T_JavaLangThrowable = 21;
040: final int T_JavaLangNoClassDefError = 22;
041: final int T_JavaLangClassNotFoundException = 23;
042: final int T_JavaLangRuntimeException = 24;
043: final int T_JavaLangException = 25;
044:
045: // wrapper types
046: final int T_JavaLangByte = 26;
047: final int T_JavaLangShort = 27;
048: final int T_JavaLangCharacter = 28;
049: final int T_JavaLangInteger = 29;
050: final int T_JavaLangLong = 30;
051: final int T_JavaLangFloat = 31;
052: final int T_JavaLangDouble = 32;
053: final int T_JavaLangBoolean = 33;
054: final int T_JavaLangVoid = 34;
055:
056: // 1.4 features
057: final int T_JavaLangAssertionError = 35;
058:
059: // array interfaces
060: final int T_JavaLangCloneable = 36;
061: final int T_JavaIoSerializable = 37;
062:
063: // 1.5 features
064: final int T_JavaLangIterable = 38;
065: final int T_JavaUtilIterator = 39;
066: final int T_JavaLangStringBuilder = 40;
067: final int T_JavaLangEnum = 41;
068: final int T_JavaLangIllegalArgumentException = 42;
069: final int T_JavaLangAnnotationAnnotation = 43;
070: final int T_JavaLangDeprecated = 44;
071: final int T_JavaLangAnnotationDocumented = 45;
072: final int T_JavaLangAnnotationInherited = 46;
073: final int T_JavaLangOverride = 47;
074: final int T_JavaLangAnnotationRetention = 48;
075: final int T_JavaLangSuppressWarnings = 49;
076: final int T_JavaLangAnnotationTarget = 50;
077: final int T_JavaLangAnnotationRetentionPolicy = 51;
078: final int T_JavaLangAnnotationElementType = 52;
079:
080: final int T_JavaIoPrintStream = 53;
081:
082: final int T_JavaLangReflectField = 54;
083: final int T_JavaLangReflectMethod = 55;
084:
085: final int T_JavaIoExternalizable = 56;
086: final int T_JavaIoObjectStreamException = 57;
087: final int T_JavaIoException = 58;
088:
089: final int NoId = Integer.MAX_VALUE;
090:
091: public static final int IMPLICIT_CONVERSION_MASK = 0xFF;
092: public static final int COMPILE_TYPE_MASK = 0xF;
093:
094: // implicit conversions: <compileType> to <runtimeType> (note: booleans are integers at runtime)
095: final int Boolean2Int = T_boolean + (T_int << 4);
096: final int Boolean2String = T_boolean + (T_JavaLangString << 4);
097: final int Boolean2Boolean = T_boolean + (T_boolean << 4);
098: final int Byte2Byte = T_byte + (T_byte << 4);
099: final int Byte2Short = T_byte + (T_short << 4);
100: final int Byte2Char = T_byte + (T_char << 4);
101: final int Byte2Int = T_byte + (T_int << 4);
102: final int Byte2Long = T_byte + (T_long << 4);
103: final int Byte2Float = T_byte + (T_float << 4);
104: final int Byte2Double = T_byte + (T_double << 4);
105: final int Byte2String = T_byte + (T_JavaLangString << 4);
106: final int Short2Byte = T_short + (T_byte << 4);
107: final int Short2Short = T_short + (T_short << 4);
108: final int Short2Char = T_short + (T_char << 4);
109: final int Short2Int = T_short + (T_int << 4);
110: final int Short2Long = T_short + (T_long << 4);
111: final int Short2Float = T_short + (T_float << 4);
112: final int Short2Double = T_short + (T_double << 4);
113: final int Short2String = T_short + (T_JavaLangString << 4);
114: final int Char2Byte = T_char + (T_byte << 4);
115: final int Char2Short = T_char + (T_short << 4);
116: final int Char2Char = T_char + (T_char << 4);
117: final int Char2Int = T_char + (T_int << 4);
118: final int Char2Long = T_char + (T_long << 4);
119: final int Char2Float = T_char + (T_float << 4);
120: final int Char2Double = T_char + (T_double << 4);
121: final int Char2String = T_char + (T_JavaLangString << 4);
122: final int Int2Byte = T_int + (T_byte << 4);
123: final int Int2Short = T_int + (T_short << 4);
124: final int Int2Char = T_int + (T_char << 4);
125: final int Int2Int = T_int + (T_int << 4);
126: final int Int2Long = T_int + (T_long << 4);
127: final int Int2Float = T_int + (T_float << 4);
128: final int Int2Double = T_int + (T_double << 4);
129: final int Int2String = T_int + (T_JavaLangString << 4);
130: final int Long2Byte = T_long + (T_byte << 4);
131: final int Long2Short = T_long + (T_short << 4);
132: final int Long2Char = T_long + (T_char << 4);
133: final int Long2Int = T_long + (T_int << 4);
134: final int Long2Long = T_long + (T_long << 4);
135: final int Long2Float = T_long + (T_float << 4);
136: final int Long2Double = T_long + (T_double << 4);
137: final int Long2String = T_long + (T_JavaLangString << 4);
138: final int Float2Byte = T_float + (T_byte << 4);
139: final int Float2Short = T_float + (T_short << 4);
140: final int Float2Char = T_float + (T_char << 4);
141: final int Float2Int = T_float + (T_int << 4);
142: final int Float2Long = T_float + (T_long << 4);
143: final int Float2Float = T_float + (T_float << 4);
144: final int Float2Double = T_float + (T_double << 4);
145: final int Float2String = T_float + (T_JavaLangString << 4);
146: final int Double2Byte = T_double + (T_byte << 4);
147: final int Double2Short = T_double + (T_short << 4);
148: final int Double2Char = T_double + (T_char << 4);
149: final int Double2Int = T_double + (T_int << 4);
150: final int Double2Long = T_double + (T_long << 4);
151: final int Double2Float = T_double + (T_float << 4);
152: final int Double2Double = T_double + (T_double << 4);
153: final int Double2String = T_double + (T_JavaLangString << 4);
154: final int String2String = T_JavaLangString
155: + (T_JavaLangString << 4);
156: final int Object2String = T_JavaLangObject
157: + (T_JavaLangString << 4);
158: final int Null2String = T_null + (T_JavaLangString << 4);
159: final int Object2Object = T_JavaLangObject
160: + (T_JavaLangObject << 4);
161: final int BOXING = 0x200;
162: final int UNBOXING = 0x400;
163: }
|