org.eclipse.jdt.internal.compiler.flow
Class FinallyFlowContext
java.lang.Object
org.eclipse.jdt.internal.compiler.flow.FlowContext
org.eclipse.jdt.internal.compiler.flow.FinallyFlowContext
- All Implemented Interfaces:
- TypeConstants
public class FinallyFlowContext
- extends FlowContext
Reflects the context of code analysis, keeping track of enclosing
try statements, exception handlers, etc...
Fields inherited from class org.eclipse.jdt.internal.compiler.flow.FlowContext |
associatedNode, CAN_ONLY_NON_NULL, CAN_ONLY_NULL, CAN_ONLY_NULL_NON_NULL, CHECK_MASK, CONTEXT_MASK, DEFER_NULL_DIAGNOSTIC, HIDE_NULL_COMPARISON_WARNING, IN_ASSIGNMENT, IN_COMPARISON_NON_NULL, IN_COMPARISON_NULL, IN_INSTANCEOF, initsOnFinally, MAY_NULL, NotContinuableContext, parent, PREEMPT_NULL_DIAGNOSTIC, tagBits |
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, EQUALS, FLOAT, GETCLASS, HASHCODE, INIT, INT, INVOKE, 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_AUTOCLOSEABLE, 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_INVOKE_METHODHANDLE_$_POLYMORPHICSIGNATURE, JAVA_LANG_INVOKE_METHODHANDLE_POLYMORPHICSIGNATURE, 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_SAFEVARARGS, 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_COLLECTION, JAVA_UTIL_ITERATOR, JAVAX_RMI_CORBA_STUB, 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_CONSTANT_INITIALIZATION_METHOD_PREFIX, SYNTHETIC_ENUM_VALUES, SYNTHETIC_OUTER_LOCAL_PREFIX, SYNTHETIC_STATIC_FACTORY, 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 |
Methods inherited from class org.eclipse.jdt.internal.compiler.flow.FlowContext |
breakLabel, checkExceptionHandlers, checkExceptionHandlers, checkExceptionHandlers, continueLabel, getInitsForFinalBlankInitializationCheck, getTargetContextForBreakLabel, getTargetContextForContinueLabel, getTargetContextForDefaultBreak, getTargetContextForDefaultContinue, initsOnBreak, initsOnReturn, isBreakable, isContinuable, isNonReturningContext, labelName, recordBreakFrom, recordBreakTo, recordContinueFrom, recordReturnFrom, recordSettingFinal, subroutine, toString |
FinallyFlowContext
public FinallyFlowContext(FlowContext parent,
ASTNode associatedNode)
complainOnDeferredChecks
public void complainOnDeferredChecks(FlowInfo flowInfo,
BlockScope scope)
- Given some contextual initialization info (derived from a try block or a catch block), this
code will check that the subroutine context does not also initialize a final variable potentially set
redundantly.
individualToString
public String individualToString()
- Overrides:
individualToString
in class FlowContext
isSubRoutine
public boolean isSubRoutine()
- Overrides:
isSubRoutine
in class FlowContext
recordFinalAssignment
protected boolean recordFinalAssignment(VariableBinding binding,
Reference finalAssignment)
- Overrides:
recordFinalAssignment
in class FlowContext
recordUsingNullReference
public void recordUsingNullReference(Scope scope,
LocalVariableBinding local,
Expression reference,
int checkType,
FlowInfo flowInfo)
- Description copied from class:
FlowContext
- Record a null reference for use by deferred checks. Only looping or
finally contexts really record that information. The context may
emit an error immediately depending on the status of local against
flowInfo and its nature (only looping of finally contexts defer part
of the checks; nonetheless, contexts that are nested into a looping or a
finally context get affected and delegate some checks to their enclosing
context).
- Overrides:
recordUsingNullReference
in class FlowContext
- Parameters:
scope
- the scope into which the check is performedlocal
- the local variable involved in the checkreference
- the expression within which local liescheckType
- the status against which the check must be performed; one
of CAN_ONLY_NULL
, CAN_ONLY_NULL_NON_NULL
, MAY_NULL
, potentially
combined with a context indicator (one of FlowContext.IN_COMPARISON_NULL
,
FlowContext.IN_COMPARISON_NON_NULL
, FlowContext.IN_ASSIGNMENT
or FlowContext.IN_INSTANCEOF
)flowInfo
- the flow info at the check point; deferring contexts will
perform supplementary checks against flow info instances that cannot
be known at the time of calling this method (they are influenced by
code that follows the current point)
recordNullReference
protected void recordNullReference(LocalVariableBinding local,
Expression expression,
int status)
- Description copied from class:
FlowContext
- Record a null reference for use by deferred checks. Only looping or
finally contexts really record that information.
- Overrides:
recordNullReference
in class FlowContext
- Parameters:
local
- the local variable involved in the checkexpression
- the expression within which local laysstatus
- the status against which the check must be performed; one of
CAN_ONLY_NULL
, CAN_ONLY_NULL_NON_NULL
, MAY_NULL
,
CAN_ONLY_NON_NULL
, potentially
combined with a context indicator (one of FlowContext.IN_COMPARISON_NULL
,
FlowContext.IN_COMPARISON_NON_NULL
, FlowContext.IN_ASSIGNMENT
or FlowContext.IN_INSTANCEOF
)
Copyright © 2012. All Rights Reserved.