/******************************************************************************* * Copyright (c) 2000, 2010 IBM Corporation and others. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * IBM Corporation - initial API and implementation *******************************************************************************/ 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 long IsArrayType= ASTNode.Bit1; long IsBaseType= ASTNode.Bit2; long IsNestedType= ASTNode.Bit3; long IsMemberType= ASTNode.Bit4; long ContainsNestedTypeReferences= ASTNode.Bit12; // method/parameterized type binding long MemberTypeMask= IsNestedType | IsMemberType | ContainsNestedTypeReferences; long IsLocalType= ASTNode.Bit5; long LocalTypeMask= IsNestedType | IsLocalType | ContainsNestedTypeReferences; long IsAnonymousType= ASTNode.Bit6; long AnonymousTypeMask= LocalTypeMask | IsAnonymousType | ContainsNestedTypeReferences; long IsBinaryBinding= ASTNode.Bit7; // set for all bindings either representing a missing type (type), or directly referencing a missing type (field/method/variable) long HasMissingType= ASTNode.Bit8; // for method long HasUncheckedTypeArgumentForBoundCheck= ASTNode.Bit9; // set when method has argument(s) that couldn't be resolved long HasUnresolvedArguments= ASTNode.Bit10; // for the type cycle hierarchy check used by ClassScope long BeginHierarchyCheck= ASTNode.Bit9; // type long EndHierarchyCheck= ASTNode.Bit10; // type long PauseHierarchyCheck= ASTNode.Bit20; // type long HasParameterAnnotations= ASTNode.Bit11; // method/constructor // test bit to see if default abstract methods were computed long KnowsDefaultAbstractMethods= ASTNode.Bit11; // type long IsArgument= ASTNode.Bit11; // local long ClearPrivateModifier= ASTNode.Bit10; // constructor binding // test bits to see if parts of binary types are faulted long AreFieldsSorted= ASTNode.Bit13; long AreFieldsComplete= ASTNode.Bit14; // sorted and all resolved long AreMethodsSorted= ASTNode.Bit15; long AreMethodsComplete= ASTNode.Bit16; // sorted and all resolved // test bit to avoid asking a type for a member type (includes inherited member types) long HasNoMemberTypes= ASTNode.Bit17; // test bit to identify if the type's hierarchy is inconsistent long HierarchyHasProblems= ASTNode.Bit18; // test bit to identify if the type's type variables have been connected long TypeVariablesAreConnected= ASTNode.Bit19; // set for parameterized type with successful bound check long PassedBoundCheck= ASTNode.Bit23; // 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 DeprecatedAnnotationResolved= ASTNode.Bit35L; long AnnotationTarget= ASTNode.Bit36L; // @Target({}) only sets this bit long AnnotationForType= ASTNode.Bit37L; long AnnotationForField= ASTNode.Bit38L; long AnnotationForMethod= ASTNode.Bit39L; long AnnotationForParameter= ASTNode.Bit40L; long AnnotationForConstructor= ASTNode.Bit41L; long AnnotationForLocalVariable= ASTNode.Bit42L; long AnnotationForAnnotationType= ASTNode.Bit43L; long AnnotationForPackage= ASTNode.Bit44L; long AnnotationTargetMASK= AnnotationTarget | AnnotationForType | AnnotationForField | AnnotationForMethod | AnnotationForParameter | AnnotationForConstructor | AnnotationForLocalVariable | AnnotationForAnnotationType | AnnotationForPackage; // 2-bits for retention (should check (tagBits & RetentionMask) == RuntimeRetention long AnnotationSourceRetention= ASTNode.Bit45L; long AnnotationClassRetention= ASTNode.Bit46L; long AnnotationRuntimeRetention= AnnotationSourceRetention | AnnotationClassRetention; long AnnotationRetentionMASK= AnnotationSourceRetention | AnnotationClassRetention | AnnotationRuntimeRetention; // marker annotations long AnnotationDeprecated= ASTNode.Bit47L; long AnnotationDocumented= ASTNode.Bit48L; long AnnotationInherited= ASTNode.Bit49L; long AnnotationOverride= ASTNode.Bit50L; long AnnotationSuppressWarnings= ASTNode.Bit51L; long AllStandardAnnotationsMask= AnnotationTargetMASK | AnnotationRetentionMASK | AnnotationDeprecated | AnnotationDocumented | AnnotationInherited | AnnotationOverride | AnnotationSuppressWarnings; long DefaultValueResolved= ASTNode.Bit52L; // set when type contains non-private constructor(s) long HasNonPrivateConstructor= ASTNode.Bit53L; }