import eclipse 3.1 M4 compiler
[org.ibex.tool.git] / src / org / eclipse / jdt / internal / compiler / lookup / TagBits.java
index 556a7c4..ffc6b55 100644 (file)
  *******************************************************************************/
 package org.eclipse.jdt.internal.compiler.lookup;
 
+import org.eclipse.jdt.internal.compiler.ast.ASTNode;
+
 public interface TagBits {
+    
        // Tag bits in the tagBits int of every TypeBinding
-       final int IsArrayType = 0x0001;
-       final int IsBaseType = 0x0002;
-       final int IsNestedType = 0x0004;
-       final int IsMemberType = 0x0008;
-       final int MemberTypeMask = IsNestedType | IsMemberType;
-       final int IsLocalType = 0x0010;
-       final int LocalTypeMask = IsNestedType | IsLocalType;
-       final int IsAnonymousType = 0x0020;
-       final int AnonymousTypeMask = LocalTypeMask | IsAnonymousType;
-       final int IsBinaryBinding = 0x0040;
-
-       // for the type hierarchy check used by ClassScope
-       final int BeginHierarchyCheck = 0x0100;
-       final int EndHierarchyCheck = 0x0200;
-
+       long IsArrayType = ASTNode.Bit1;
+       long IsBaseType = ASTNode.Bit2;
+       long IsNestedType = ASTNode.Bit3;
+       long IsMemberType = ASTNode.Bit4;
+       long MemberTypeMask = IsNestedType | IsMemberType;
+       long IsLocalType = ASTNode.Bit5;
+       long LocalTypeMask = IsNestedType | IsLocalType;
+       long IsAnonymousType = ASTNode.Bit6;
+       long AnonymousTypeMask = LocalTypeMask | IsAnonymousType;
+       long IsBinaryBinding = ASTNode.Bit7;
+       
+       // for the type cycle hierarchy check used by ClassScope
+       long BeginHierarchyCheck = ASTNode.Bit9;  // type
+       long EndHierarchyCheck = ASTNode.Bit10; // type
+       long HasParameterAnnotations = ASTNode.Bit11; // method
+       
        // test bit to see if default abstract methods were computed
-       final int KnowsDefaultAbstractMethods = 0x0400;
+       long KnowsDefaultAbstractMethods = ASTNode.Bit11;
 
        // Reusable bit currently used by Scopes
-       final int InterfaceVisited = 0x0800;
+       long InterfaceVisited = ASTNode.Bit12;
 
        // test bits to see if parts of binary types are faulted
-       final int AreFieldsComplete = 0x1000;
-       final int AreMethodsComplete = 0x2000;
+       long AreFieldsComplete = ASTNode.Bit13;
+       long AreMethodsComplete = ASTNode.Bit14;
 
        // test bit to avoid asking a type for a member type (includes inherited member types)
-       final int HasNoMemberTypes = 0x4000;
+       long HasNoMemberTypes = ASTNode.Bit15;
 
        // test bit to identify if the type's hierarchy is inconsistent
-       final int HierarchyHasProblems = 0x8000;
+       long HierarchyHasProblems = ASTNode.Bit16;
+
+       // set for parameterized type NOT of the form X<?,?>
+       long IsBoundParameterizedType = ASTNode.Bit24; 
+
+       // used by BinaryTypeBinding
+       long HasUnresolvedTypeVariables = ASTNode.Bit25;
+       long HasUnresolvedSuperclass = ASTNode.Bit26;
+       long HasUnresolvedSuperinterfaces = ASTNode.Bit27;
+       long HasUnresolvedEnclosingType = ASTNode.Bit28;
+       long HasUnresolvedMemberTypes = ASTNode.Bit29;
+
+       long HasTypeVariable = ASTNode.Bit30; // set either for type variables (direct) or parameterized types indirectly referencing type variables
+       long HasDirectWildcard = ASTNode.Bit31; // set for parameterized types directly referencing wildcards
+       
+       // for the annotation cycle hierarchy check used by ClassScope
+       long BeginAnnotationCheck = ASTNode.Bit32L;
+       long EndAnnotationCheck = ASTNode.Bit33L;
+       
+       // standard annotations
+       // 9-bits for targets
+       long AnnotationResolved = ASTNode.Bit34L;
+       long AnnotationTarget = ASTNode.Bit35L; // @Target({}) only sets this bit
+       long AnnotationForType = ASTNode.Bit36L;
+       long AnnotationForField = ASTNode.Bit37L;
+       long AnnotationForMethod = ASTNode.Bit38L;
+       long AnnotationForParameter = ASTNode.Bit39L;
+       long AnnotationForConstructor = ASTNode.Bit40L;
+       long AnnotationForLocalVariable = ASTNode.Bit41L;
+       long AnnotationForAnnotationType = ASTNode.Bit42L;
+       long AnnotationForPackage = ASTNode.Bit43L;
+       long AnnotationTargetMASK = AnnotationTarget
+                               | AnnotationForType | AnnotationForField
+                               | AnnotationForMethod | AnnotationForParameter
+                               | AnnotationForConstructor | AnnotationForLocalVariable
+                               | AnnotationForAnnotationType | AnnotationForPackage;
+       // 2-bits for retention (should check (tagBits & RetentionMask) == RuntimeRetention
+       long AnnotationSourceRetention = ASTNode.Bit44L;
+       long AnnotationClassRetention = ASTNode.Bit45L;
+       long AnnotationRuntimeRetention = AnnotationSourceRetention | AnnotationClassRetention;
+       long AnnotationRetentionMASK = AnnotationSourceRetention | AnnotationClassRetention | AnnotationRuntimeRetention;
+       // marker annotations
+       long AnnotationDeprecated = ASTNode.Bit46L;
+       long AnnotationDocumented = ASTNode.Bit47L;
+       long AnnotationInherited = ASTNode.Bit48L;
+       long AnnotationOverride = ASTNode.Bit49L;
+       long AnnotationSuppressWarnings = ASTNode.Bit50L;
 }