1 /*******************************************************************************
2 * Copyright (c) 2000, 2004 IBM Corporation and others.
3 * All rights reserved. This program and the accompanying materials
4 * are made available under the terms of the Common Public License v1.0
5 * which accompanies this distribution, and is available at
6 * http://www.eclipse.org/legal/cpl-v10.html
9 * IBM Corporation - initial API and implementation
10 *******************************************************************************/
11 package org.eclipse.jdt.internal.compiler.lookup;
13 import org.eclipse.jdt.internal.compiler.ast.ASTNode;
15 public interface TagBits {
17 // Tag bits in the tagBits int of every TypeBinding
18 long IsArrayType = ASTNode.Bit1;
19 long IsBaseType = ASTNode.Bit2;
20 long IsNestedType = ASTNode.Bit3;
21 long IsMemberType = ASTNode.Bit4;
22 long MemberTypeMask = IsNestedType | IsMemberType;
23 long IsLocalType = ASTNode.Bit5;
24 long LocalTypeMask = IsNestedType | IsLocalType;
25 long IsAnonymousType = ASTNode.Bit6;
26 long AnonymousTypeMask = LocalTypeMask | IsAnonymousType;
27 long IsBinaryBinding = ASTNode.Bit7;
29 // for the type cycle hierarchy check used by ClassScope
30 long BeginHierarchyCheck = ASTNode.Bit9; // type
31 long EndHierarchyCheck = ASTNode.Bit10; // type
32 long HasParameterAnnotations = ASTNode.Bit11; // method
34 // test bit to see if default abstract methods were computed
35 long KnowsDefaultAbstractMethods = ASTNode.Bit11;
37 // Reusable bit currently used by Scopes
38 long InterfaceVisited = ASTNode.Bit12;
40 // test bits to see if parts of binary types are faulted
41 long AreFieldsComplete = ASTNode.Bit13;
42 long AreMethodsComplete = ASTNode.Bit14;
44 // test bit to avoid asking a type for a member type (includes inherited member types)
45 long HasNoMemberTypes = ASTNode.Bit15;
47 // test bit to identify if the type's hierarchy is inconsistent
48 long HierarchyHasProblems = ASTNode.Bit16;
50 // set for parameterized type NOT of the form X<?,?>
51 long IsBoundParameterizedType = ASTNode.Bit24;
53 // used by BinaryTypeBinding
54 long HasUnresolvedTypeVariables = ASTNode.Bit25;
55 long HasUnresolvedSuperclass = ASTNode.Bit26;
56 long HasUnresolvedSuperinterfaces = ASTNode.Bit27;
57 long HasUnresolvedEnclosingType = ASTNode.Bit28;
58 long HasUnresolvedMemberTypes = ASTNode.Bit29;
60 long HasTypeVariable = ASTNode.Bit30; // set either for type variables (direct) or parameterized types indirectly referencing type variables
61 long HasDirectWildcard = ASTNode.Bit31; // set for parameterized types directly referencing wildcards
63 // for the annotation cycle hierarchy check used by ClassScope
64 long BeginAnnotationCheck = ASTNode.Bit32L;
65 long EndAnnotationCheck = ASTNode.Bit33L;
67 // standard annotations
69 long AnnotationResolved = ASTNode.Bit34L;
70 long AnnotationTarget = ASTNode.Bit35L; // @Target({}) only sets this bit
71 long AnnotationForType = ASTNode.Bit36L;
72 long AnnotationForField = ASTNode.Bit37L;
73 long AnnotationForMethod = ASTNode.Bit38L;
74 long AnnotationForParameter = ASTNode.Bit39L;
75 long AnnotationForConstructor = ASTNode.Bit40L;
76 long AnnotationForLocalVariable = ASTNode.Bit41L;
77 long AnnotationForAnnotationType = ASTNode.Bit42L;
78 long AnnotationForPackage = ASTNode.Bit43L;
79 long AnnotationTargetMASK = AnnotationTarget
80 | AnnotationForType | AnnotationForField
81 | AnnotationForMethod | AnnotationForParameter
82 | AnnotationForConstructor | AnnotationForLocalVariable
83 | AnnotationForAnnotationType | AnnotationForPackage;
84 // 2-bits for retention (should check (tagBits & RetentionMask) == RuntimeRetention
85 long AnnotationSourceRetention = ASTNode.Bit44L;
86 long AnnotationClassRetention = ASTNode.Bit45L;
87 long AnnotationRuntimeRetention = AnnotationSourceRetention | AnnotationClassRetention;
88 long AnnotationRetentionMASK = AnnotationSourceRetention | AnnotationClassRetention | AnnotationRuntimeRetention;
90 long AnnotationDeprecated = ASTNode.Bit46L;
91 long AnnotationDocumented = ASTNode.Bit47L;
92 long AnnotationInherited = ASTNode.Bit48L;
93 long AnnotationOverride = ASTNode.Bit49L;
94 long AnnotationSuppressWarnings = ASTNode.Bit50L;