org.eclipse.jdt.internal.compiler.lookup
Class Scope
java.lang.Object
org.eclipse.jdt.internal.compiler.lookup.Scope
- All Implemented Interfaces:
- TypeConstants, TypeIds
- Direct Known Subclasses:
- BlockScope, ClassScope, CompilationUnitScope
public abstract class Scope
- extends java.lang.Object
- implements TypeConstants, TypeIds
Fields inherited from interface org.eclipse.jdt.internal.compiler.lookup.TypeConstants |
ANNOTATION, ANNOTATION_PREFIX, ANNOTATION_SUFFIX, ANONYM_PREFIX, ANONYM_SUFFIX, BOOLEAN, BYTE, CHAR, CharArray_JAVA_IO_OBJECTINPUTSTREAM, CharArray_JAVA_IO_OBJECTOUTPUTSTREAM, CharArray_JAVA_IO_OBJECTSTREAMFIELD, CharArray_JAVA_LANG_ANNOTATION_ANNOTATION, CharArray_JAVA_LANG_ENUM, CharArray_JAVA_LANG_OBJECT, CLINIT, CLONE, CONSTRAINT_EQUAL, CONSTRAINT_EXTENDS, CONSTRAINT_SUPER, DOUBLE, FLOAT, GETCLASS, INIT, INT, IO, JAVA, JAVA_IO, JAVA_IO_EXTERNALIZABLE, JAVA_IO_IOEXCEPTION, JAVA_IO_OBJECTINPUTSTREAM, JAVA_IO_OBJECTOUTPUTSTREAM, JAVA_IO_OBJECTSTREAMEXCEPTION, JAVA_IO_PRINTSTREAM, JAVA_IO_SERIALIZABLE, JAVA_LANG, JAVA_LANG_ANNOTATION_ANNOTATION, JAVA_LANG_ANNOTATION_DOCUMENTED, JAVA_LANG_ANNOTATION_ELEMENTTYPE, JAVA_LANG_ANNOTATION_INHERITED, JAVA_LANG_ANNOTATION_RETENTION, JAVA_LANG_ANNOTATION_RETENTIONPOLICY, JAVA_LANG_ANNOTATION_TARGET, JAVA_LANG_ASSERTIONERROR, JAVA_LANG_BOOLEAN, JAVA_LANG_BYTE, JAVA_LANG_CHARACTER, JAVA_LANG_CLASS, JAVA_LANG_CLASSNOTFOUNDEXCEPTION, JAVA_LANG_CLONEABLE, JAVA_LANG_DEPRECATED, JAVA_LANG_DOUBLE, JAVA_LANG_ENUM, JAVA_LANG_ERROR, JAVA_LANG_EXCEPTION, JAVA_LANG_FLOAT, JAVA_LANG_ILLEGALARGUMENTEXCEPTION, JAVA_LANG_INTEGER, JAVA_LANG_ITERABLE, JAVA_LANG_LONG, JAVA_LANG_NOCLASSDEFERROR, JAVA_LANG_OBJECT, JAVA_LANG_OVERRIDE, JAVA_LANG_REFLECT_CONSTRUCTOR, JAVA_LANG_REFLECT_FIELD, JAVA_LANG_REFLECT_METHOD, JAVA_LANG_RUNTIMEEXCEPTION, JAVA_LANG_SHORT, JAVA_LANG_STRING, JAVA_LANG_STRINGBUFFER, JAVA_LANG_STRINGBUILDER, JAVA_LANG_SUPPRESSWARNINGS, JAVA_LANG_SYSTEM, JAVA_LANG_THROWABLE, JAVA_LANG_VOID, JAVA_UTIL_ITERATOR, JML_ANNOTATION, JML_ANNOTATION_CODE_BIGINT_MATH, JML_ANNOTATION_CODE_JAVA_MATH, JML_ANNOTATION_CODE_SAFE_MATH, JML_ANNOTATION_GHOST, JML_ANNOTATION_HELPER, JML_ANNOTATION_INSTANCE, JML_ANNOTATION_MODEL, JML_ANNOTATION_NON_NULL, JML_ANNOTATION_NON_NULL_BY_DEFAULT, JML_ANNOTATION_NULLABLE, JML_ANNOTATION_NULLABLE_BY_DEFAULT, JML_ANNOTATION_PEER, JML_ANNOTATION_PKG, JML_ANNOTATION_PURE, JML_ANNOTATION_READONLY, JML_ANNOTATION_REP, JML_ANNOTATION_SPEC_BIGINT_MATH, JML_ANNOTATION_SPEC_JAVA_MATH, JML_ANNOTATION_SPEC_PROTECTED, JML_ANNOTATION_SPEC_PUBLIC, JML_ANNOTATION_SPEC_SAFE_MATH, JML_ANNOTATION_TYPE_CODE_BIGINT_MATH, JML_ANNOTATION_TYPE_CODE_JAVA_MATH, JML_ANNOTATION_TYPE_CODE_SAFE_MATH, JML_ANNOTATION_TYPE_GHOST, JML_ANNOTATION_TYPE_HELPER, JML_ANNOTATION_TYPE_INSTANCE, JML_ANNOTATION_TYPE_MODEL, JML_ANNOTATION_TYPE_NON_NULL_BY_DEFAULT, JML_ANNOTATION_TYPE_NONNULL, JML_ANNOTATION_TYPE_NULLABLE, JML_ANNOTATION_TYPE_NULLABLE_BY_DEFAULT, JML_ANNOTATION_TYPE_PEER, JML_ANNOTATION_TYPE_PURE, JML_ANNOTATION_TYPE_READONLY, JML_ANNOTATION_TYPE_REP, JML_ANNOTATION_TYPE_SPEC_BIGINT_MATH, JML_ANNOTATION_TYPE_SPEC_JAVA_MATH, JML_ANNOTATION_TYPE_SPEC_PROTECTED, JML_ANNOTATION_TYPE_SPEC_PUBLIC, JML_ANNOTATION_TYPE_SPEC_SAFE_MATH, JML_ANNOTATION_TYPE_UNINITIALIZED, JML_ANNOTATION_UNINITIALIZED, JML_ORG, JML_RUNTIME, JML_RUNTIME_ANNOTATION, JML4, JMLSPECS, LANG, LENGTH, LONG, MAIN, MISMATCH, NULL, OBJECT, OK, PACKAGE_INFO_NAME, READOBJECT, READRESOLVE, REFLECT, SERIALPERSISTENTFIELDS, SERIALVERSIONUID, SHORT, SYNTHETIC_ACCESS_METHOD_PREFIX, SYNTHETIC_ASSERT_DISABLED, SYNTHETIC_CLASS, SYNTHETIC_ENCLOSING_INSTANCE_PREFIX, SYNTHETIC_ENUM_VALUES, SYNTHETIC_OUTER_LOCAL_PREFIX, SYNTHETIC_SWITCH_ENUM_TABLE, TYPE, UNCHECKED, UPPER_ANNOTATION_TYPE, UPPER_CLASS, UPPER_CONSTRUCTOR, UPPER_FIELD, UPPER_LOCAL_VARIABLE, UPPER_METHOD, UPPER_PACKAGE, UPPER_PARAMETER, UPPER_RUNTIME, UPPER_SOURCE, UTIL, VALUE, VALUEOF, VALUES, VOID, WILDCARD_CAPTURE, WILDCARD_CAPTURE_NAME_PREFIX, WILDCARD_CAPTURE_NAME_SUFFIX, WILDCARD_EXTENDS, WILDCARD_MINUS, WILDCARD_NAME, WILDCARD_PLUS, WILDCARD_STAR, WILDCARD_SUPER, WRITEOBJECT, WRITEREPLACE |
Fields inherited from interface org.eclipse.jdt.internal.compiler.lookup.TypeIds |
Boolean2Boolean, Boolean2Int, Boolean2String, BOXING, Byte2Byte, Byte2Char, Byte2Double, Byte2Float, Byte2Int, Byte2Long, Byte2Short, Byte2String, Char2Byte, Char2Char, Char2Double, Char2Float, Char2Int, Char2Long, Char2Short, Char2String, COMPILE_TYPE_MASK, Double2Byte, Double2Char, Double2Double, Double2Float, Double2Int, Double2Long, Double2Short, Double2String, Float2Byte, Float2Char, Float2Double, Float2Float, Float2Int, Float2Long, Float2Short, Float2String, IMPLICIT_CONVERSION_MASK, Int2Byte, Int2Char, Int2Double, Int2Float, Int2Int, Int2Long, Int2Short, Int2String, Long2Byte, Long2Char, Long2Double, Long2Float, Long2Int, Long2Long, Long2Short, Long2String, NoId, Null2String, Object2Object, Object2String, Short2Byte, Short2Char, Short2Double, Short2Float, Short2Int, Short2Long, Short2Short, Short2String, String2String, T_boolean, T_byte, T_char, T_double, T_float, T_int, T_JavaIoException, T_JavaIoExternalizable, T_JavaIoObjectStreamException, T_JavaIoPrintStream, T_JavaIoSerializable, T_JavaLangAnnotationAnnotation, T_JavaLangAnnotationDocumented, T_JavaLangAnnotationElementType, T_JavaLangAnnotationInherited, T_JavaLangAnnotationRetention, T_JavaLangAnnotationRetentionPolicy, T_JavaLangAnnotationTarget, T_JavaLangAssertionError, T_JavaLangBoolean, T_JavaLangByte, T_JavaLangCharacter, T_JavaLangClass, T_JavaLangClassNotFoundException, T_JavaLangCloneable, T_JavaLangDeprecated, T_JavaLangDouble, T_JavaLangEnum, T_JavaLangError, T_JavaLangException, T_JavaLangFloat, T_JavaLangIllegalArgumentException, T_JavaLangInteger, T_JavaLangIterable, T_JavaLangLong, T_JavaLangNoClassDefError, T_JavaLangObject, T_JavaLangOverride, T_JavaLangReflectConstructor, T_JavaLangReflectField, T_JavaLangReflectMethod, T_JavaLangRuntimeException, T_JavaLangShort, T_JavaLangString, T_JavaLangStringBuffer, T_JavaLangStringBuilder, T_JavaLangSuppressWarnings, T_JavaLangSystem, T_JavaLangThrowable, T_JavaLangVoid, T_JavaUtilIterator, T_long, T_null, T_short, T_undefined, T_void, UNBOXING |
Method Summary |
TypeBinding |
boxing(TypeBinding type)
|
ClassScope |
classScope()
|
static int |
compareTypes(TypeBinding left,
TypeBinding right)
|
CompilationUnitScope |
compilationUnitScope()
|
CompilerOptions |
compilerOptions()
Finds the most specific compiler options |
ArrayBinding |
createArrayType(TypeBinding type,
int dimension)
|
TypeVariableBinding[] |
createTypeVariables(TypeParameter[] typeParameters,
Binding declaringElement)
|
ClassScope |
enclosingClassScope()
|
MethodScope |
enclosingMethodScope()
|
ReferenceBinding |
enclosingReceiverType()
|
ReferenceContext |
enclosingReferenceContext()
Returns the immediately enclosing reference context, starting from current scope parent. |
SourceTypeBinding |
enclosingSourceType()
|
LookupEnvironment |
environment()
|
ReferenceBinding |
findDirectMemberType(char[] typeName,
ReferenceBinding enclosingType)
|
MethodBinding |
findExactMethod(ReferenceBinding receiverType,
char[] selector,
TypeBinding[] argumentTypes,
InvocationSite invocationSite)
|
FieldBinding |
findField(TypeBinding receiverType,
char[] fieldName,
InvocationSite invocationSite,
boolean needResolve)
|
ReferenceBinding |
findMemberType(char[] typeName,
ReferenceBinding enclosingType)
|
MethodBinding |
findMethod(ReferenceBinding receiverType,
char[] selector,
TypeBinding[] argumentTypes,
InvocationSite invocationSite)
|
MethodBinding |
findMethod(ReferenceBinding receiverType,
char[] selector,
TypeBinding[] argumentTypes,
InvocationSite invocationSite,
boolean inStaticContext)
|
MethodBinding |
findMethodForArray(ArrayBinding receiverType,
char[] selector,
TypeBinding[] argumentTypes,
InvocationSite invocationSite)
|
ReferenceBinding |
findType(char[] typeName,
PackageBinding declarationPackage,
PackageBinding invocationPackage)
|
LocalVariableBinding |
findVariable(char[] variable)
|
static TypeBinding |
getBaseType(char[] name)
|
Binding |
getBinding(char[] name,
int mask,
InvocationSite invocationSite,
boolean needResolve)
|
MethodBinding |
getConstructor(ReferenceBinding receiverType,
TypeBinding[] argumentTypes,
InvocationSite invocationSite)
|
PackageBinding |
getCurrentPackage()
|
int |
getDeclarationModifiers()
Returns the modifiers of the innermost enclosing declaration. |
FieldBinding |
getField(TypeBinding receiverType,
char[] fieldName,
InvocationSite invocationSite)
|
MethodBinding |
getImplicitMethod(char[] selector,
TypeBinding[] argumentTypes,
InvocationSite invocationSite)
|
ReferenceBinding |
getJavaIoSerializable()
|
ReferenceBinding |
getJavaLangAnnotationAnnotation()
|
ReferenceBinding |
getJavaLangAssertionError()
|
ReferenceBinding |
getJavaLangClass()
|
ReferenceBinding |
getJavaLangCloneable()
|
ReferenceBinding |
getJavaLangEnum()
|
ReferenceBinding |
getJavaLangIterable()
|
ReferenceBinding |
getJavaLangObject()
|
ReferenceBinding |
getJavaLangString()
|
ReferenceBinding |
getJavaLangThrowable()
|
ReferenceBinding |
getJavaUtilIterator()
|
ReferenceBinding |
getMemberType(char[] typeName,
ReferenceBinding enclosingType)
|
MethodBinding |
getMethod(TypeBinding receiverType,
char[] selector,
TypeBinding[] argumentTypes,
InvocationSite invocationSite)
|
Binding |
getPackage(char[][] compoundName)
|
TypeBinding |
getType(char[] name)
|
TypeBinding |
getType(char[][] compoundName,
int typeNameLength)
|
TypeBinding |
getType(char[] name,
PackageBinding packageBinding)
|
Binding |
getTypeOrPackage(char[][] compoundName)
|
static ReferenceBinding[] |
greaterLowerBound(ReferenceBinding[] types)
|
static TypeBinding[] |
greaterLowerBound(TypeBinding[] types)
|
CaseStatement |
innermostSwitchCase()
Returns the immediately enclosing switchCase statement (carried by closest blockScope), |
boolean |
isBoxingCompatibleWith(TypeBinding expressionType,
TypeBinding targetType)
|
boolean |
isDefinedInField(FieldBinding field)
|
boolean |
isDefinedInMethod(MethodBinding method)
|
boolean |
isDefinedInSameUnit(ReferenceBinding type)
|
boolean |
isDefinedInType(ReferenceBinding type)
|
boolean |
isInsideCase(CaseStatement caseStatement)
Returns true if the scope or one of its parent is associated to a given caseStatement, denoting
being part of a given switch case statement. |
boolean |
isInsideDeprecatedCode()
|
TypeBinding |
lowerUpperBound(TypeBinding[] types)
Returns VoidBinding if types have no intersection (e.g. |
MethodScope |
methodScope()
|
ClassScope |
outerMostClassScope()
|
MethodScope |
outerMostMethodScope()
|
int |
parameterCompatibilityLevel(MethodBinding method,
TypeBinding[] arguments)
|
abstract ProblemReporter |
problemReporter()
|
CompilationUnitDeclaration |
referenceCompilationUnit()
|
ReferenceContext |
referenceContext()
Returns the nearest reference context, starting from current scope. |
static ReferenceBinding[] |
substitute(Substitution substitution,
ReferenceBinding[] originalTypes)
Returns an array of types, where original types got substituted given a substitution. |
static TypeBinding |
substitute(Substitution substitution,
TypeBinding originalType)
Returns a type, where original type was substituted using the receiver
parameterized type. |
static TypeBinding[] |
substitute(Substitution substitution,
TypeBinding[] originalTypes)
Returns an array of types, where original types got substituted given a substitution. |
Methods inherited from class java.lang.Object |
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
BLOCK_SCOPE
public static final int BLOCK_SCOPE
- See Also:
- Constant Field Values
CLASS_SCOPE
public static final int CLASS_SCOPE
- See Also:
- Constant Field Values
COMPILATION_UNIT_SCOPE
public static final int COMPILATION_UNIT_SCOPE
- See Also:
- Constant Field Values
METHOD_SCOPE
public static final int METHOD_SCOPE
- See Also:
- Constant Field Values
NOT_COMPATIBLE
public static final int NOT_COMPATIBLE
- See Also:
- Constant Field Values
COMPATIBLE
public static final int COMPATIBLE
- See Also:
- Constant Field Values
AUTOBOX_COMPATIBLE
public static final int AUTOBOX_COMPATIBLE
- See Also:
- Constant Field Values
VARARGS_COMPATIBLE
public static final int VARARGS_COMPATIBLE
- See Also:
- Constant Field Values
EQUAL_OR_MORE_SPECIFIC
public static final int EQUAL_OR_MORE_SPECIFIC
- See Also:
- Constant Field Values
NOT_RELATED
public static final int NOT_RELATED
- See Also:
- Constant Field Values
MORE_GENERIC
public static final int MORE_GENERIC
- See Also:
- Constant Field Values
kind
public int kind
parent
public Scope parent
compareTypes
public static int compareTypes(TypeBinding left,
TypeBinding right)
getBaseType
public static TypeBinding getBaseType(char[] name)
greaterLowerBound
public static ReferenceBinding[] greaterLowerBound(ReferenceBinding[] types)
greaterLowerBound
public static TypeBinding[] greaterLowerBound(TypeBinding[] types)
substitute
public static ReferenceBinding[] substitute(Substitution substitution,
ReferenceBinding[] originalTypes)
- Returns an array of types, where original types got substituted given a substitution.
Only allocate an array if anything is different.
substitute
public static TypeBinding substitute(Substitution substitution,
TypeBinding originalType)
- Returns a type, where original type was substituted using the receiver
parameterized type.
In raw mode, all parameterized type denoting same original type are converted
to raw types. e.g.
class X {
X foo;
X bar;
} when used in raw fashion, then type of both foo and bar is raw type X.
substitute
public static TypeBinding[] substitute(Substitution substitution,
TypeBinding[] originalTypes)
- Returns an array of types, where original types got substituted given a substitution.
Only allocate an array if anything is different.
boxing
public TypeBinding boxing(TypeBinding type)
classScope
public final ClassScope classScope()
compilationUnitScope
public final CompilationUnitScope compilationUnitScope()
compilerOptions
public final CompilerOptions compilerOptions()
- Finds the most specific compiler options
createArrayType
public ArrayBinding createArrayType(TypeBinding type,
int dimension)
createTypeVariables
public TypeVariableBinding[] createTypeVariables(TypeParameter[] typeParameters,
Binding declaringElement)
enclosingClassScope
public final ClassScope enclosingClassScope()
enclosingMethodScope
public final MethodScope enclosingMethodScope()
enclosingReceiverType
public final ReferenceBinding enclosingReceiverType()
enclosingReferenceContext
public ReferenceContext enclosingReferenceContext()
- Returns the immediately enclosing reference context, starting from current scope parent.
If starting on a class, it will skip current class. If starting on unitScope, returns null.
enclosingSourceType
public final SourceTypeBinding enclosingSourceType()
environment
public final LookupEnvironment environment()
findDirectMemberType
public ReferenceBinding findDirectMemberType(char[] typeName,
ReferenceBinding enclosingType)
findExactMethod
public MethodBinding findExactMethod(ReferenceBinding receiverType,
char[] selector,
TypeBinding[] argumentTypes,
InvocationSite invocationSite)
findField
public FieldBinding findField(TypeBinding receiverType,
char[] fieldName,
InvocationSite invocationSite,
boolean needResolve)
findMemberType
public ReferenceBinding findMemberType(char[] typeName,
ReferenceBinding enclosingType)
findMethod
public MethodBinding findMethod(ReferenceBinding receiverType,
char[] selector,
TypeBinding[] argumentTypes,
InvocationSite invocationSite)
findMethod
public MethodBinding findMethod(ReferenceBinding receiverType,
char[] selector,
TypeBinding[] argumentTypes,
InvocationSite invocationSite,
boolean inStaticContext)
findMethodForArray
public MethodBinding findMethodForArray(ArrayBinding receiverType,
char[] selector,
TypeBinding[] argumentTypes,
InvocationSite invocationSite)
findType
public ReferenceBinding findType(char[] typeName,
PackageBinding declarationPackage,
PackageBinding invocationPackage)
findVariable
public LocalVariableBinding findVariable(char[] variable)
getBinding
public Binding getBinding(char[] name,
int mask,
InvocationSite invocationSite,
boolean needResolve)
getConstructor
public MethodBinding getConstructor(ReferenceBinding receiverType,
TypeBinding[] argumentTypes,
InvocationSite invocationSite)
getCurrentPackage
public final PackageBinding getCurrentPackage()
getDeclarationModifiers
public int getDeclarationModifiers()
- Returns the modifiers of the innermost enclosing declaration.
- Returns:
- modifiers
getField
public FieldBinding getField(TypeBinding receiverType,
char[] fieldName,
InvocationSite invocationSite)
getImplicitMethod
public MethodBinding getImplicitMethod(char[] selector,
TypeBinding[] argumentTypes,
InvocationSite invocationSite)
getJavaIoSerializable
public final ReferenceBinding getJavaIoSerializable()
getJavaLangAnnotationAnnotation
public final ReferenceBinding getJavaLangAnnotationAnnotation()
getJavaLangAssertionError
public final ReferenceBinding getJavaLangAssertionError()
getJavaLangClass
public final ReferenceBinding getJavaLangClass()
getJavaLangCloneable
public final ReferenceBinding getJavaLangCloneable()
getJavaLangEnum
public final ReferenceBinding getJavaLangEnum()
getJavaLangIterable
public final ReferenceBinding getJavaLangIterable()
getJavaLangObject
public final ReferenceBinding getJavaLangObject()
getJavaLangString
public final ReferenceBinding getJavaLangString()
getJavaLangThrowable
public final ReferenceBinding getJavaLangThrowable()
getJavaUtilIterator
public final ReferenceBinding getJavaUtilIterator()
getMemberType
public final ReferenceBinding getMemberType(char[] typeName,
ReferenceBinding enclosingType)
getMethod
public MethodBinding getMethod(TypeBinding receiverType,
char[] selector,
TypeBinding[] argumentTypes,
InvocationSite invocationSite)
getPackage
public final Binding getPackage(char[][] compoundName)
getType
public final TypeBinding getType(char[] name)
getType
public final TypeBinding getType(char[] name,
PackageBinding packageBinding)
getType
public final TypeBinding getType(char[][] compoundName,
int typeNameLength)
getTypeOrPackage
public final Binding getTypeOrPackage(char[][] compoundName)
innermostSwitchCase
public CaseStatement innermostSwitchCase()
- Returns the immediately enclosing switchCase statement (carried by closest blockScope),
isBoxingCompatibleWith
public boolean isBoxingCompatibleWith(TypeBinding expressionType,
TypeBinding targetType)
isDefinedInField
public final boolean isDefinedInField(FieldBinding field)
isDefinedInMethod
public final boolean isDefinedInMethod(MethodBinding method)
isDefinedInSameUnit
public final boolean isDefinedInSameUnit(ReferenceBinding type)
isDefinedInType
public final boolean isDefinedInType(ReferenceBinding type)
isInsideCase
public boolean isInsideCase(CaseStatement caseStatement)
- Returns true if the scope or one of its parent is associated to a given caseStatement, denoting
being part of a given switch case statement.
isInsideDeprecatedCode
public boolean isInsideDeprecatedCode()
lowerUpperBound
public TypeBinding lowerUpperBound(TypeBinding[] types)
- Returns VoidBinding if types have no intersection (e.g. 2 unrelated interfaces), or null if
no common supertype (e.g. List and List), or the intersection type if possible
methodScope
public final MethodScope methodScope()
outerMostClassScope
public final ClassScope outerMostClassScope()
outerMostMethodScope
public final MethodScope outerMostMethodScope()
parameterCompatibilityLevel
public int parameterCompatibilityLevel(MethodBinding method,
TypeBinding[] arguments)
problemReporter
public abstract ProblemReporter problemReporter()
referenceCompilationUnit
public final CompilationUnitDeclaration referenceCompilationUnit()
referenceContext
public ReferenceContext referenceContext()
- Returns the nearest reference context, starting from current scope.
If starting on a class, it will return current class. If starting on unitScope, returns unit.