public class BlockScope extends Scope
| Modifier and Type | Field and Description |
|---|---|
static VariableBinding[] |
EmulationPathToImplicitThis |
CaseStatement |
enclosingCase |
FlowInfo |
finallyInfo
Used only during analyseCode and only for checking if a resource was closed in a finallyBlock.
|
int |
localIndex |
LocalVariableBinding[] |
locals |
int |
maxOffset |
static VariableBinding[] |
NoEnclosingInstanceInConstructorCall |
static VariableBinding[] |
NoEnclosingInstanceInStaticContext |
int |
offset |
BlockScope[] |
shiftScopes |
int |
startIndex |
int |
subscopeCount |
Scope[] |
subscopes |
AUTOBOX_COMPATIBLE, BLOCK_SCOPE, CLASS_SCOPE, COMPATIBLE, COMPILATION_UNIT_SCOPE, EQUAL_OR_MORE_SPECIFIC, kind, METHOD_SCOPE, MORE_GENERIC, NOT_COMPATIBLE, NOT_RELATED, parent, VARARGS_COMPATIBLE| Modifier | Constructor and Description |
|---|---|
|
BlockScope(BlockScope parent) |
|
BlockScope(BlockScope parent,
boolean addToParentScope) |
|
BlockScope(BlockScope parent,
int variableCount) |
protected |
BlockScope(int kind,
Scope parent) |
| Modifier and Type | Method and Description |
|---|---|
void |
addAnonymousType(TypeDeclaration anonymousType,
ReferenceBinding superBinding) |
void |
addLocalType(TypeDeclaration localType) |
void |
addLocalVariable(LocalVariableBinding binding) |
void |
addSubscope(Scope childScope) |
boolean |
allowBlankFinalFieldAssignment(FieldBinding binding)
Answer true if the receiver is suitable for assigning final blank fields.
|
void |
checkUnclosedCloseables(FlowInfo flowInfo,
FlowContext flowContext,
ASTNode location,
BlockScope locationScope)
At the end of a block check the closing-status of all tracked closeables that are declared in this block.
|
void |
correlateTrackingVarsIfElse(FlowInfo thenFlowInfo,
FlowInfo elseFlowInfo)
If one branch of an if-else closes any AutoCloseable resource, and if the same
resource is known to be null on the other branch mark it as closed, too,
so that merging both branches indicates that the resource is always closed.
|
void |
emulateOuterAccess(LocalVariableBinding outerLocalVariable) |
ReferenceBinding |
findLocalType(char[] name) |
LocalDeclaration[] |
findLocalVariableDeclarations(int position)
Returns all declarations of most specific locals containing a given position in their source range.
|
LocalVariableBinding |
findVariable(char[] variableName) |
Binding |
getBinding(char[][] compoundName,
int mask,
InvocationSite invocationSite,
boolean needResolve) |
Binding |
getBinding(char[][] compoundName,
InvocationSite invocationSite) |
VariableBinding[] |
getEmulationPath(LocalVariableBinding outerLocalVariable) |
Object[] |
getEmulationPath(ReferenceBinding targetEnclosingType,
boolean onlyExactMatch,
boolean denyEnclosingArgInConstructorCall) |
boolean |
isDuplicateLocalVariable(char[] name) |
int |
maxShiftedOffset() |
boolean |
needBlankFinalFieldInitializationCheck(FieldBinding binding)
Returns true if the context requires to check initialization of final blank fields.
|
ProblemReporter |
problemReporter() |
void |
propagateInnerEmulation(ReferenceBinding targetType,
boolean isEnclosingInstanceSupplied) |
void |
pruneWrapperTrackingVar(FakedTrackingVariable trackingVariable)
Unregister a wrapper resource without affecting its inner.
|
TypeDeclaration |
referenceType() |
int |
registerTrackingVariable(FakedTrackingVariable fakedTrackingVariable)
Register a tracking variable and compute its id.
|
void |
removeTrackingVar(FakedTrackingVariable trackingVariable)
When are no longer interested in this tracking variable - remove it.
|
void |
resetDeclaringClassMethodStaticFlag(TypeBinding enclosingInstanceType)
This method is used to reset the CanBeStatic on all enclosing methods until the method
belonging to the enclosingInstanceType
|
void |
resetEnclosingMethodStaticFlag()
This method is used to reset the CanBeStatic the enclosing method of the current block
|
int |
scopeIndex() |
String |
toString() |
String |
toString(int tab) |
boxing, classScope, compareTypes, compilationUnitScope, compilerOptions, computeCompatibleMethod, computeCompatibleMethod, connectTypeVariables, convertEliminatingTypeVariables, createArrayType, createTypeVariables, deferBoundCheck, enclosingClassScope, enclosingMethodScope, enclosingReceiverType, enclosingReferenceContext, enclosingSourceType, environment, findDefaultAbstractMethod, findDirectMemberType, findExactMethod, findField, findField, findMemberType, findMethod, findMethod, findMethodForArray, findMethodInSuperInterfaces, findType, getBaseType, getBinding, getConstructor, getCurrentPackage, getDeclarationModifiers, getField, getImplicitMethod, getJavaIoSerializable, getJavaLangAnnotationAnnotation, getJavaLangAssertionError, getJavaLangClass, getJavaLangCloneable, getJavaLangEnum, getJavaLangIterable, getJavaLangObject, getJavaLangString, getJavaLangThrowable, getJavaUtilIterator, getMemberType, getMethod, getOnlyPackage, getPackage, getStaticFactory, getType, getType, getType, getTypeOrPackage, greaterLowerBound, greaterLowerBound, hasErasedCandidatesCollisions, innermostSwitchCase, isAcceptableMethod, isBoxingCompatibleWith, isDefinedInField, isDefinedInMethod, isDefinedInSameUnit, isDefinedInType, isInsideCase, isInsideDeprecatedCode, isPossibleSubtypeOfRawType, lowerUpperBound, methodScope, minimalErasedCandidates, mostSpecificClassMethodBinding, mostSpecificInterfaceMethodBinding, mostSpecificMethodBinding, outerMostClassScope, outerMostMethodScope, parameterCompatibilityLevel, parameterCompatibilityLevel, referenceCompilationUnit, referenceContext, substitute, substitute, substitute, validateNullAnnotationpublic LocalVariableBinding[] locals
public int localIndex
public int startIndex
public int offset
public int maxOffset
public BlockScope[] shiftScopes
public Scope[] subscopes
public int subscopeCount
public CaseStatement enclosingCase
public static final VariableBinding[] EmulationPathToImplicitThis
public static final VariableBinding[] NoEnclosingInstanceInConstructorCall
public static final VariableBinding[] NoEnclosingInstanceInStaticContext
public FlowInfo finallyInfo
public BlockScope(BlockScope parent)
public BlockScope(BlockScope parent, boolean addToParentScope)
public BlockScope(BlockScope parent, int variableCount)
protected BlockScope(int kind,
Scope parent)
public final void addAnonymousType(TypeDeclaration anonymousType, ReferenceBinding superBinding)
public final void addLocalType(TypeDeclaration localType)
public final void addLocalVariable(LocalVariableBinding binding)
public void addSubscope(Scope childScope)
public final boolean allowBlankFinalFieldAssignment(FieldBinding binding)
public void emulateOuterAccess(LocalVariableBinding outerLocalVariable)
public final ReferenceBinding findLocalType(char[] name)
public LocalDeclaration[] findLocalVariableDeclarations(int position)
public LocalVariableBinding findVariable(char[] variableName)
findVariable in class Scopepublic Binding getBinding(char[][] compoundName, int mask, InvocationSite invocationSite, boolean needResolve)
public final Binding getBinding(char[][] compoundName, InvocationSite invocationSite)
public VariableBinding[] getEmulationPath(LocalVariableBinding outerLocalVariable)
public Object[] getEmulationPath(ReferenceBinding targetEnclosingType, boolean onlyExactMatch, boolean denyEnclosingArgInConstructorCall)
public final boolean isDuplicateLocalVariable(char[] name)
public int maxShiftedOffset()
public final boolean needBlankFinalFieldInitializationCheck(FieldBinding binding)
public ProblemReporter problemReporter()
problemReporter in class Scopepublic void propagateInnerEmulation(ReferenceBinding targetType, boolean isEnclosingInstanceSupplied)
public TypeDeclaration referenceType()
public int scopeIndex()
public String toString(int tab)
public void resetEnclosingMethodStaticFlag()
public void resetDeclaringClassMethodStaticFlag(TypeBinding enclosingInstanceType)
enclosingInstanceType - type of which an enclosing instance is required in the code.public int registerTrackingVariable(FakedTrackingVariable fakedTrackingVariable)
public void removeTrackingVar(FakedTrackingVariable trackingVariable)
public void pruneWrapperTrackingVar(FakedTrackingVariable trackingVariable)
public void checkUnclosedCloseables(FlowInfo flowInfo, FlowContext flowContext, ASTNode location, BlockScope locationScope)
public void correlateTrackingVarsIfElse(FlowInfo thenFlowInfo, FlowInfo elseFlowInfo)
Copyright © 2013. All rights reserved.