Uses of Class
org.eclipse.jdt.internal.compiler.flow.FlowContext

Packages that use FlowContext
org.eclipse.jdt.internal.compiler.ast   
org.eclipse.jdt.internal.compiler.flow   
org.eclipse.jdt.internal.compiler.lookup   
 

Uses of FlowContext in org.eclipse.jdt.internal.compiler.ast
 

Methods in org.eclipse.jdt.internal.compiler.ast with parameters of type FlowContext
protected  void Statement.analyseArguments(BlockScope currentScope, FlowContext flowContext, FlowInfo flowInfo, MethodBinding methodBinding, Expression[] arguments)
          Analysing arguments of MessageSend, ExplicitConstructorCall, AllocationExpression.
abstract  FlowInfo Reference.analyseAssignment(BlockScope currentScope, FlowContext flowContext, FlowInfo flowInfo, Assignment assignment, boolean isCompound)
           
 FlowInfo FieldReference.analyseAssignment(BlockScope currentScope, FlowContext flowContext, FlowInfo flowInfo, Assignment assignment, boolean isCompound)
           
 FlowInfo SingleNameReference.analyseAssignment(BlockScope currentScope, FlowContext flowContext, FlowInfo flowInfo, Assignment assignment, boolean isCompound)
           
 FlowInfo QualifiedNameReference.analyseAssignment(BlockScope currentScope, FlowContext flowContext, FlowInfo flowInfo, Assignment assignment, boolean isCompound)
           
 FlowInfo ArrayReference.analyseAssignment(BlockScope currentScope, FlowContext flowContext, FlowInfo flowInfo, Assignment assignment, boolean compoundAssignment)
           
 FlowInfo ThisReference.analyseAssignment(BlockScope currentScope, FlowContext flowContext, FlowInfo flowInfo, Assignment assignment, boolean isCompound)
           
 FlowInfo DoStatement.analyseCode(BlockScope currentScope, FlowContext flowContext, FlowInfo flowInfo)
           
 FlowInfo AssertStatement.analyseCode(BlockScope currentScope, FlowContext flowContext, FlowInfo flowInfo)
           
 FlowInfo Reference.analyseCode(BlockScope currentScope, FlowContext flowContext, FlowInfo flowInfo)
           
abstract  FlowInfo Statement.analyseCode(BlockScope currentScope, FlowContext flowContext, FlowInfo flowInfo)
           
 FlowInfo FieldReference.analyseCode(BlockScope currentScope, FlowContext flowContext, FlowInfo flowInfo)
           
 FlowInfo Expression.analyseCode(BlockScope currentScope, FlowContext flowContext, FlowInfo flowInfo)
           
 FlowInfo OR_OR_Expression.analyseCode(BlockScope currentScope, FlowContext flowContext, FlowInfo flowInfo)
           
 FlowInfo Assignment.analyseCode(BlockScope currentScope, FlowContext flowContext, FlowInfo flowInfo)
           
 FlowInfo CombinedBinaryExpression.analyseCode(BlockScope currentScope, FlowContext flowContext, FlowInfo flowInfo)
           
 FlowInfo ExplicitConstructorCall.analyseCode(BlockScope currentScope, FlowContext flowContext, FlowInfo flowInfo)
           
 FlowInfo AbstractVariableDeclaration.analyseCode(BlockScope currentScope, FlowContext flowContext, FlowInfo flowInfo)
           
 FlowInfo ForStatement.analyseCode(BlockScope currentScope, FlowContext flowContext, FlowInfo flowInfo)
           
 FlowInfo ConditionalExpression.analyseCode(BlockScope currentScope, FlowContext flowContext, FlowInfo flowInfo)
           
 FlowInfo TypeDeclaration.analyseCode(BlockScope currentScope, FlowContext flowContext, FlowInfo flowInfo)
          Flow analysis for a local innertype
 FlowInfo EmptyStatement.analyseCode(BlockScope currentScope, FlowContext flowContext, FlowInfo flowInfo)
           
 FlowInfo ForeachStatement.analyseCode(BlockScope currentScope, FlowContext flowContext, FlowInfo flowInfo)
           
 FlowInfo ThrowStatement.analyseCode(BlockScope currentScope, FlowContext flowContext, FlowInfo flowInfo)
           
 FlowInfo SynchronizedStatement.analyseCode(BlockScope currentScope, FlowContext flowContext, FlowInfo flowInfo)
           
 FlowInfo WhileStatement.analyseCode(BlockScope currentScope, FlowContext flowContext, FlowInfo flowInfo)
           
 FlowInfo TypeReference.analyseCode(BlockScope currentScope, FlowContext flowContext, FlowInfo flowInfo)
           
 FlowInfo SingleNameReference.analyseCode(BlockScope currentScope, FlowContext flowContext, FlowInfo flowInfo)
           
 FlowInfo AND_AND_Expression.analyseCode(BlockScope currentScope, FlowContext flowContext, FlowInfo flowInfo)
           
 FlowInfo LocalDeclaration.analyseCode(BlockScope currentScope, FlowContext flowContext, FlowInfo flowInfo)
           
 FlowInfo ArrayInitializer.analyseCode(BlockScope currentScope, FlowContext flowContext, FlowInfo flowInfo)
           
 FlowInfo QualifiedAllocationExpression.analyseCode(BlockScope currentScope, FlowContext flowContext, FlowInfo flowInfo)
           
 FlowInfo LabeledStatement.analyseCode(BlockScope currentScope, FlowContext flowContext, FlowInfo flowInfo)
           
 FlowInfo IfStatement.analyseCode(BlockScope currentScope, FlowContext flowContext, FlowInfo flowInfo)
           
 FlowInfo LambdaExpression.analyseCode(BlockScope currentScope, FlowContext flowContext, FlowInfo flowInfo)
           
 FlowInfo QualifiedNameReference.analyseCode(BlockScope currentScope, FlowContext flowContext, FlowInfo flowInfo)
           
 FlowInfo ArrayReference.analyseCode(BlockScope currentScope, FlowContext flowContext, FlowInfo flowInfo)
           
 FlowInfo AllocationExpression.analyseCode(BlockScope currentScope, FlowContext flowContext, FlowInfo flowInfo)
           
 FlowInfo ReturnStatement.analyseCode(BlockScope currentScope, FlowContext flowContext, FlowInfo flowInfo)
           
 FlowInfo CompoundAssignment.analyseCode(BlockScope currentScope, FlowContext flowContext, FlowInfo flowInfo)
           
 FlowInfo InstanceOfExpression.analyseCode(BlockScope currentScope, FlowContext flowContext, FlowInfo flowInfo)
           
 FlowInfo UnaryExpression.analyseCode(BlockScope currentScope, FlowContext flowContext, FlowInfo flowInfo)
           
 FlowInfo SwitchStatement.analyseCode(BlockScope currentScope, FlowContext flowContext, FlowInfo flowInfo)
           
 FlowInfo QualifiedThisReference.analyseCode(BlockScope currentScope, FlowContext flowContext, FlowInfo flowInfo)
           
 FlowInfo ReferenceExpression.analyseCode(BlockScope currentScope, FlowContext flowContext, FlowInfo flowInfo)
           
 FlowInfo Block.analyseCode(BlockScope currentScope, FlowContext flowContext, FlowInfo flowInfo)
           
 FlowInfo ClassLiteralAccess.analyseCode(BlockScope currentScope, FlowContext flowContext, FlowInfo flowInfo)
           
 FlowInfo ArrayAllocationExpression.analyseCode(BlockScope currentScope, FlowContext flowContext, FlowInfo flowInfo)
           
 FlowInfo BreakStatement.analyseCode(BlockScope currentScope, FlowContext flowContext, FlowInfo flowInfo)
           
 FlowInfo EqualExpression.analyseCode(BlockScope currentScope, FlowContext flowContext, FlowInfo flowInfo)
           
 FlowInfo BinaryExpression.analyseCode(BlockScope currentScope, FlowContext flowContext, FlowInfo flowInfo)
           
 FlowInfo CaseStatement.analyseCode(BlockScope currentScope, FlowContext flowContext, FlowInfo flowInfo)
           
 FlowInfo ContinueStatement.analyseCode(BlockScope currentScope, FlowContext flowContext, FlowInfo flowInfo)
           
 FlowInfo Literal.analyseCode(BlockScope currentScope, FlowContext flowContext, FlowInfo flowInfo)
           
 FlowInfo CastExpression.analyseCode(BlockScope currentScope, FlowContext flowContext, FlowInfo flowInfo)
           
 FlowInfo MessageSend.analyseCode(BlockScope currentScope, FlowContext flowContext, FlowInfo flowInfo)
           
 FlowInfo TryStatement.analyseCode(BlockScope currentScope, FlowContext flowContext, FlowInfo flowInfo)
           
 FlowInfo FieldReference.analyseCode(BlockScope currentScope, FlowContext flowContext, FlowInfo flowInfo, boolean valueRequired)
           
 FlowInfo Expression.analyseCode(BlockScope currentScope, FlowContext flowContext, FlowInfo flowInfo, boolean valueRequired)
          More sophisticated for of the flow analysis used for analyzing expressions, and be able to optimize out portions of expressions where no actual value is required.
 FlowInfo SingleNameReference.analyseCode(BlockScope currentScope, FlowContext flowContext, FlowInfo flowInfo, boolean valueRequired)
           
 FlowInfo QualifiedNameReference.analyseCode(BlockScope currentScope, FlowContext flowContext, FlowInfo flowInfo, boolean valueRequired)
           
 FlowInfo QualifiedThisReference.analyseCode(BlockScope currentScope, FlowContext flowContext, FlowInfo flowInfo, boolean valueRequired)
           
 void TypeDeclaration.analyseCode(ClassScope currentScope, FlowContext flowContext, FlowInfo flowInfo)
          Flow analysis for a local member innertype
 void MethodDeclaration.analyseCode(ClassScope classScope, FlowContext flowContext, FlowInfo flowInfo)
           
 FlowInfo FieldDeclaration.analyseCode(MethodScope initializationScope, FlowContext flowContext, FlowInfo flowInfo)
           
 FlowInfo Initializer.analyseCode(MethodScope currentScope, FlowContext flowContext, FlowInfo flowInfo)
           
protected  void Statement.checkAgainstNullTypeAnnotation(BlockScope scope, TypeBinding requiredType, Expression expression, FlowContext flowContext, FlowInfo flowInfo)
           
static int NullAnnotationMatching.checkAssignment(BlockScope currentScope, FlowContext flowContext, VariableBinding var, int nullStatus, Expression expression, TypeBinding providedType)
          Check null-ness of 'var' against a possible null annotation
 boolean Reference.checkNPE(BlockScope scope, FlowContext flowContext, FlowInfo flowInfo)
           
 boolean FieldReference.checkNPE(BlockScope scope, FlowContext flowContext, FlowInfo flowInfo)
           
 boolean Expression.checkNPE(BlockScope scope, FlowContext flowContext, FlowInfo flowInfo)
          Check this expression against potential NPEs, which may occur: if the expression is the receiver in a field access, qualified allocation, array reference or message send incl.
 boolean ConditionalExpression.checkNPE(BlockScope scope, FlowContext flowContext, FlowInfo flowInfo)
           
 boolean SingleNameReference.checkNPE(BlockScope scope, FlowContext flowContext, FlowInfo flowInfo)
           
 boolean QualifiedNameReference.checkNPE(BlockScope scope, FlowContext flowContext, FlowInfo flowInfo)
           
 boolean ArrayReference.checkNPE(BlockScope scope, FlowContext flowContext, FlowInfo flowInfo)
           
 boolean ThisReference.checkNPE(BlockScope scope, FlowContext flowContext, FlowInfo flowInfo)
           
 boolean CastExpression.checkNPE(BlockScope scope, FlowContext flowContext, FlowInfo flowInfo)
           
 boolean MessageSend.checkNPE(BlockScope scope, FlowContext flowContext, FlowInfo flowInfo)
           
protected  void Expression.checkNPEbyUnboxing(BlockScope scope, FlowContext flowContext, FlowInfo flowInfo)
          If this expression requires unboxing check if that operation can throw NPE.
static FakedTrackingVariable FakedTrackingVariable.getCloseTrackingVariable(Expression expression, FlowInfo flowInfo, FlowContext flowContext)
          If expression resolves to a value of type AutoCloseable answer the variable that tracks closing of that local.
static void FakedTrackingVariable.handleResourceAssignment(BlockScope scope, FlowInfo upstreamInfo, FlowInfo flowInfo, FlowContext flowContext, ASTNode location, Expression rhs, LocalVariableBinding local)
          Given the rhs of an assignment or local declaration has a (Auto)Closeable type (or null), setup for leak analysis now: Create or re-use a tracking variable, and wire and initialize everything.
 void FakedTrackingVariable.markClose(FlowInfo flowInfo, FlowContext flowContext)
          Mark that this resource is closed locally.
static FlowInfo FakedTrackingVariable.markPassedToOutside(BlockScope scope, Expression expression, FlowInfo flowInfo, FlowContext flowContext, boolean owned)
          Mark that this resource is passed to some outside code (as argument to a method/ctor call or as a return value from the current method), and thus should be considered as potentially closed.
 int Reference.nullStatus(FlowInfo flowInfo, FlowContext flowContext)
           
 int Expression.nullStatus(FlowInfo flowInfo, FlowContext flowContext)
           
 int Assignment.nullStatus(FlowInfo flowInfo, FlowContext flowContext)
           
 int ConditionalExpression.nullStatus(FlowInfo flowInfo, FlowContext flowContext)
           
 int SingleNameReference.nullStatus(FlowInfo flowInfo, FlowContext flowContext)
           
 int CompoundAssignment.nullStatus(FlowInfo flowInfo, FlowContext flowContext)
           
 int ThisReference.nullStatus(FlowInfo flowInfo, FlowContext flowContext)
           
 int CastExpression.nullStatus(FlowInfo flowInfo, FlowContext flowContext)
           
 int NullLiteral.nullStatus(FlowInfo flowInfo, FlowContext flowContext)
           
 int MessageSend.nullStatus(FlowInfo flowInfo, FlowContext flowContext)
           
 

Constructors in org.eclipse.jdt.internal.compiler.ast with parameters of type FlowContext
FakedTrackingVariable(LocalVariableBinding original, ASTNode location, FlowInfo flowInfo, FlowContext flowContext, int nullStatus)
           
 

Uses of FlowContext in org.eclipse.jdt.internal.compiler.flow
 

Subclasses of FlowContext in org.eclipse.jdt.internal.compiler.flow
 class ExceptionHandlingFlowContext
          Reflects the context of code analysis, keeping track of enclosing try statements, exception handlers, etc...
 class FinallyFlowContext
          Reflects the context of code analysis, keeping track of enclosing try statements, exception handlers, etc...
 class InitializationFlowContext
          Reflects the context of code analysis, keeping track of enclosing try statements, exception handlers, etc...
 class InsideSubRoutineFlowContext
          Reflects the context of code analysis, keeping track of enclosing try statements, exception handlers, etc...
 class LabelFlowContext
          Reflects the context of code analysis, keeping track of enclosing try statements, exception handlers, etc...
 class LoopingFlowContext
          Reflects the context of code analysis, keeping track of enclosing try statements, exception handlers, etc...
 class SwitchFlowContext
          Reflects the context of code analysis, keeping track of enclosing try statements, exception handlers, etc...
 class TryFlowContext
          Shared implementation for try-statement-related flow contexts.
 

Fields in org.eclipse.jdt.internal.compiler.flow declared as FlowContext
 FlowContext ExceptionHandlingFlowContext.initializationParent
           
static FlowContext FlowContext.NotContinuableContext
           
 FlowContext TryFlowContext.outerTryContext
          For a try statement nested inside a finally block this reference points to the flow context of the outer try block, for access to its initsOnFinally.
 FlowContext FlowContext.parent
           
 FlowContext FinallyFlowContext.tryContext
           
 

Methods in org.eclipse.jdt.internal.compiler.flow that return FlowContext
 FlowContext FlowContext.getLocalParent()
          Answer the parent flow context but be careful not to cross the boundary of a nested type, or null if no such parent exists.
 FlowContext FlowContext.getTargetContextForBreakLabel(char[] labelName)
           
 FlowContext FlowContext.getTargetContextForContinueLabel(char[] labelName)
           
 FlowContext FlowContext.getTargetContextForDefaultBreak()
           
 FlowContext FlowContext.getTargetContextForDefaultContinue()
           
 

Methods in org.eclipse.jdt.internal.compiler.flow with parameters of type FlowContext
 void InitializationFlowContext.checkInitializerExceptions(BlockScope currentScope, FlowContext initializerContext, FlowInfo flowInfo)
           
 void FlowContext.recordBreakTo(FlowContext targetContext)
           
 void LoopingFlowContext.recordBreakTo(FlowContext targetContext)
           
 void FlowContext.recordContinueFrom(FlowContext innerFlowContext, FlowInfo flowInfo)
           
 void LoopingFlowContext.recordContinueFrom(FlowContext innerFlowContext, FlowInfo flowInfo)
           
 

Constructors in org.eclipse.jdt.internal.compiler.flow with parameters of type FlowContext
ExceptionHandlingFlowContext(FlowContext parent, ASTNode associatedNode, ReferenceBinding[] handledExceptions, FlowContext initializationParent, BlockScope scope, UnconditionalFlowInfo flowInfo)
           
ExceptionHandlingFlowContext(FlowContext parent, TryStatement tryStatement, ReferenceBinding[] handledExceptions, int[] exceptionToCatchBlockMap, FlowContext initializationParent, BlockScope scope, FlowInfo flowInfo)
           
FinallyFlowContext(FlowContext parent, ASTNode associatedNode, ExceptionHandlingFlowContext tryContext)
           
FlowContext(FlowContext parent, ASTNode associatedNode)
           
InitializationFlowContext(FlowContext parent, ASTNode associatedNode, FlowInfo initsBeforeContext, FlowContext initializationParent, BlockScope scope)
           
InsideSubRoutineFlowContext(FlowContext parent, ASTNode associatedNode)
           
LabelFlowContext(FlowContext parent, ASTNode associatedNode, char[] labelName, BranchLabel breakLabel, BlockScope scope)
           
LoopingFlowContext(FlowContext parent, FlowInfo upstreamNullFlowInfo, ASTNode associatedNode, BranchLabel breakLabel, BranchLabel continueLabel, Scope associatedScope, boolean isPreTest)
           
SwitchFlowContext(FlowContext parent, ASTNode associatedNode, BranchLabel breakLabel, boolean isPreTest)
           
TryFlowContext(FlowContext parent, ASTNode associatedNode)
           
 

Uses of FlowContext in org.eclipse.jdt.internal.compiler.lookup
 

Methods in org.eclipse.jdt.internal.compiler.lookup with parameters of type FlowContext
 void BlockScope.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.