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

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

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

Methods in org.eclipse.jdt.internal.compiler.ast that return FlowInfo
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)
           
 FlowInfo FieldDeclaration.analyseCode(MethodScope initializationScope, FlowContext flowContext, FlowInfo flowInfo)
           
 FlowInfo Initializer.analyseCode(MethodScope currentScope, FlowContext flowContext, FlowInfo flowInfo)
           
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.
 

Methods in org.eclipse.jdt.internal.compiler.ast with parameters of type FlowInfo
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)
           
static void FakedTrackingVariable.analyseCloseableAllocation(BlockScope scope, FlowInfo flowInfo, AllocationExpression allocation)
          Compute/assign a tracking variable for a freshly allocated closeable value, using information from our white lists.
 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)
           
 void Clinit.analyseCode(ClassScope classScope, InitializationFlowContext staticInitializerFlowContext, FlowInfo flowInfo)
           
 void ConstructorDeclaration.analyseCode(ClassScope classScope, InitializationFlowContext initializerFlowContext, FlowInfo flowInfo, int initialReachMode)
          The flowInfo corresponds to non-static field initialization infos.
 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)
           
 void AllocationExpression.checkCapturedLocalInitializationIfNecessary(ReferenceBinding checkedType, BlockScope currentScope, FlowInfo flowInfo)
           
 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.
 int Statement.complainIfUnreachable(FlowInfo flowInfo, BlockScope scope, int previousComplaintLevel, boolean endOfBlock)
           
 int EmptyStatement.complainIfUnreachable(FlowInfo flowInfo, BlockScope scope, int complaintLevel, boolean endOfBlock)
           
 int FakedTrackingVariable.findMostSpecificStatus(FlowInfo flowInfo, BlockScope currentScope, BlockScope locationScope)
           
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.
 boolean FakedTrackingVariable.hasDefinitelyNoResource(FlowInfo flowInfo)
          Answer true if we know for sure that no resource is bound to this variable at the point of 'flowInfo'.
 void TypeDeclaration.manageEnclosingInstanceAccessIfNecessary(BlockScope currentScope, FlowInfo flowInfo)
           
 void SingleNameReference.manageEnclosingInstanceAccessIfNecessary(BlockScope currentScope, FlowInfo flowInfo)
           
 void QualifiedAllocationExpression.manageEnclosingInstanceAccessIfNecessary(BlockScope currentScope, FlowInfo flowInfo)
           
 void QualifiedNameReference.manageEnclosingInstanceAccessIfNecessary(BlockScope currentScope, FlowInfo flowInfo)
           
 void AllocationExpression.manageEnclosingInstanceAccessIfNecessary(BlockScope currentScope, FlowInfo flowInfo)
           
 void TypeDeclaration.manageEnclosingInstanceAccessIfNecessary(ClassScope currentScope, FlowInfo flowInfo)
          Access emulation for a local member type force to emulation of access to direct enclosing instance.
 void QualifiedNameReference.manageSyntheticAccessIfNecessary(BlockScope currentScope, FieldBinding fieldBinding, int index, FlowInfo flowInfo)
          index is <0 to denote write access emulation
 void AssertStatement.manageSyntheticAccessIfNecessary(BlockScope currentScope, FlowInfo flowInfo)
           
 void ExplicitConstructorCall.manageSyntheticAccessIfNecessary(BlockScope currentScope, FlowInfo flowInfo)
           
 void AllocationExpression.manageSyntheticAccessIfNecessary(BlockScope currentScope, FlowInfo flowInfo)
           
 void ReferenceExpression.manageSyntheticAccessIfNecessary(BlockScope currentScope, FlowInfo flowInfo)
           
 void MessageSend.manageSyntheticAccessIfNecessary(BlockScope currentScope, FlowInfo flowInfo)
           
 void FieldReference.manageSyntheticAccessIfNecessary(BlockScope currentScope, FlowInfo flowInfo, boolean isReadAccess)
           
 void SingleNameReference.manageSyntheticAccessIfNecessary(BlockScope currentScope, FlowInfo flowInfo, boolean isReadAccess)
           
 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 FunctionalExpression.nullStatus(FlowInfo flowInfo)
           
 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)
           
static void FakedTrackingVariable.preConnectTrackerAcrossAssignment(ASTNode location, LocalVariableBinding local, Expression rhs, FlowInfo flowInfo)
          Before analyzing an assignment of this shape: singleName = new Allocation() connect any tracking variable of the LHS with the allocation on the RHS.
 

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

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

Subclasses of FlowInfo in org.eclipse.jdt.internal.compiler.flow
 class ConditionalFlowInfo
          Record conditional initialization status during definite assignment analysis
 class UnconditionalFlowInfo
          Record initialization status during definite assignment analysis No caching of pre-allocated instances.
 

Fields in org.eclipse.jdt.internal.compiler.flow declared as FlowInfo
 FlowInfo[] InitializationFlowContext.exceptionThrowerFlowInfos
           
 FlowInfo InitializationFlowContext.initsBeforeContext
           
 FlowInfo FlowContext.initsOnFinally
           
 FlowInfo ConditionalFlowInfo.initsWhenFalse
           
 FlowInfo ConditionalFlowInfo.initsWhenTrue
           
 

Methods in org.eclipse.jdt.internal.compiler.flow that return FlowInfo
 FlowInfo ConditionalFlowInfo.addInitializationsFrom(FlowInfo otherInits)
           
abstract  FlowInfo FlowInfo.addInitializationsFrom(FlowInfo otherInits)
          Add other inits to this flow info, then return this.
 FlowInfo UnconditionalFlowInfo.addInitializationsFrom(FlowInfo inits)
           
 FlowInfo ConditionalFlowInfo.addNullInfoFrom(FlowInfo otherInits)
           
abstract  FlowInfo FlowInfo.addNullInfoFrom(FlowInfo otherInits)
          Add all null information from otherInits to this flow info and return this.
 FlowInfo UnconditionalFlowInfo.addNullInfoFrom(FlowInfo inits)
           
 FlowInfo ConditionalFlowInfo.addPotentialInitializationsFrom(FlowInfo otherInits)
           
abstract  FlowInfo FlowInfo.addPotentialInitializationsFrom(FlowInfo otherInits)
          Compose other inits over this flow info, then return this.
 FlowInfo UnconditionalFlowInfo.addPotentialInitializationsFrom(FlowInfo inits)
           
 FlowInfo ConditionalFlowInfo.asNegatedCondition()
           
 FlowInfo FlowInfo.asNegatedCondition()
           
static FlowInfo FlowInfo.conditional(FlowInfo initsWhenTrue, FlowInfo initsWhenFalse)
           
 FlowInfo ConditionalFlowInfo.copy()
           
abstract  FlowInfo FlowInfo.copy()
          Return a deep copy of the current instance.
 FlowInfo UnconditionalFlowInfo.copy()
           
 FlowInfo FlowContext.getInitsForFinalBlankInitializationCheck(TypeBinding declaringType, FlowInfo flowInfo)
           
 FlowInfo FlowContext.initsOnBreak()
           
 FlowInfo ConditionalFlowInfo.initsWhenFalse()
           
abstract  FlowInfo FlowInfo.initsWhenFalse()
          Return the flow info that would result from the path associated to the value false for the condition expression that generated this flow info.
 FlowInfo UnconditionalFlowInfo.initsWhenFalse()
           
 FlowInfo ConditionalFlowInfo.initsWhenTrue()
           
abstract  FlowInfo FlowInfo.initsWhenTrue()
          Return the flow info that would result from the path associated to the value true for the condition expression that generated this flow info.
 FlowInfo UnconditionalFlowInfo.initsWhenTrue()
           
 FlowInfo ConditionalFlowInfo.safeInitsWhenTrue()
           
abstract  FlowInfo FlowInfo.safeInitsWhenTrue()
          Return a flow info that carries the same information as the result of initsWhenTrue, but warrantied to be different from this.
Caveat: side effects on the result may affect components of this.
 FlowInfo UnconditionalFlowInfo.safeInitsWhenTrue()
           
 FlowInfo ConditionalFlowInfo.setReachMode(int reachMode)
           
abstract  FlowInfo FlowInfo.setReachMode(int reachMode)
          Set this flow info reach mode and return this.
 FlowInfo UnconditionalFlowInfo.setReachMode(int reachMode)
           
 

Methods in org.eclipse.jdt.internal.compiler.flow with parameters of type FlowInfo
 FlowInfo ConditionalFlowInfo.addInitializationsFrom(FlowInfo otherInits)
           
abstract  FlowInfo FlowInfo.addInitializationsFrom(FlowInfo otherInits)
          Add other inits to this flow info, then return this.
 FlowInfo UnconditionalFlowInfo.addInitializationsFrom(FlowInfo inits)
           
 FlowInfo ConditionalFlowInfo.addNullInfoFrom(FlowInfo otherInits)
           
abstract  FlowInfo FlowInfo.addNullInfoFrom(FlowInfo otherInits)
          Add all null information from otherInits to this flow info and return this.
 FlowInfo UnconditionalFlowInfo.addNullInfoFrom(FlowInfo inits)
           
 FlowInfo ConditionalFlowInfo.addPotentialInitializationsFrom(FlowInfo otherInits)
           
abstract  FlowInfo FlowInfo.addPotentialInitializationsFrom(FlowInfo otherInits)
          Compose other inits over this flow info, then return this.
 FlowInfo UnconditionalFlowInfo.addPotentialInitializationsFrom(FlowInfo inits)
           
 void FlowContext.checkExceptionHandlers(TypeBinding[] raisedExceptions, ASTNode location, FlowInfo flowInfo, BlockScope scope)
           
 void FlowContext.checkExceptionHandlers(TypeBinding raisedException, ASTNode location, FlowInfo flowInfo, BlockScope scope)
           
 void FlowContext.checkExceptionHandlers(TypeBinding raisedException, ASTNode location, FlowInfo flowInfo, BlockScope scope, boolean isExceptionOnAutoClose)
           
 void InitializationFlowContext.checkInitializerExceptions(BlockScope currentScope, FlowContext initializerContext, FlowInfo flowInfo)
           
protected  void FlowContext.checkUnboxing(Scope scope, Expression expression, FlowInfo flowInfo)
          During deferred checking re-visit a previously recording unboxing situation.
 void FinallyFlowContext.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.
 void LoopingFlowContext.complainOnDeferredFinalChecks(BlockScope scope, FlowInfo flowInfo)
          Perform deferred checks relative to final variables duplicate initialization of lack of initialization.
 void LoopingFlowContext.complainOnDeferredNullChecks(BlockScope scope, FlowInfo callerFlowInfo)
          Perform deferred checks relative to the null status of local variables.
static FlowInfo FlowInfo.conditional(FlowInfo initsWhenTrue, FlowInfo initsWhenFalse)
           
 FlowInfo FlowContext.getInitsForFinalBlankInitializationCheck(TypeBinding declaringType, FlowInfo flowInfo)
           
static UnconditionalFlowInfo FlowInfo.mergedOptimizedBranches(FlowInfo initsWhenTrue, boolean isOptimizedTrue, FlowInfo initsWhenFalse, boolean isOptimizedFalse, boolean allowFakeDeadBranch)
          Merge branches using optimized boolean conditions
static UnconditionalFlowInfo FlowInfo.mergedOptimizedBranchesIfElse(FlowInfo initsWhenTrue, boolean isOptimizedTrue, FlowInfo initsWhenFalse, boolean isOptimizedFalse, boolean allowFakeDeadBranch, FlowInfo flowInfo, IfStatement ifStatement, boolean reportDeadCodeInKnownPattern)
          Merge if-else branches using optimized boolean conditions
 void TryFlowContext.mergeFinallyNullInfo(FlowInfo flowInfo)
           
 void FlowContext.mergeFinallyNullInfo(FlowInfo flowInfo)
          Merge the effect of a statement presumably contained in a try-block, i.e., record how the collected info will affect the corresponding finally-block.
 void FlowContext.recordBreakFrom(FlowInfo flowInfo)
           
 void SwitchFlowContext.recordBreakFrom(FlowInfo flowInfo)
           
 void FlowContext.recordContinueFrom(FlowContext innerFlowContext, FlowInfo flowInfo)
           
 void LoopingFlowContext.recordContinueFrom(FlowContext innerFlowContext, FlowInfo flowInfo)
           
 boolean FlowContext.recordExitAgainstResource(BlockScope scope, FlowInfo flowInfo, FakedTrackingVariable trackingVar, ASTNode reference)
          Record that we found an early exit from a method while a resource is in scope.
 boolean LoopingFlowContext.recordExitAgainstResource(BlockScope scope, FlowInfo flowInfo, FakedTrackingVariable trackingVar, ASTNode reference)
          Record the fact that we see an early exit (in 'reference') while 'trackingVar' is in scope and may be unclosed.
 void FlowContext.recordSettingFinal(VariableBinding variable, Reference finalReference, FlowInfo flowInfo)
           
 void FinallyFlowContext.recordUnboxing(Scope scope, Expression expression, int nullStatus, FlowInfo flowInfo)
           
 void FlowContext.recordUnboxing(Scope scope, Expression expression, int nullStatus, FlowInfo flowInfo)
          Either AST analysis or checking of a child flow context has encountered an unboxing situation.
 void LoopingFlowContext.recordUnboxing(Scope scope, Expression expression, int nullStatus, FlowInfo flowInfo)
           
 void FinallyFlowContext.recordUsingNullReference(Scope scope, LocalVariableBinding local, ASTNode location, int checkType, FlowInfo flowInfo)
           
 void FlowContext.recordUsingNullReference(Scope scope, LocalVariableBinding local, ASTNode location, int checkType, FlowInfo flowInfo)
          Record a null reference for use by deferred checks.
 void LoopingFlowContext.recordUsingNullReference(Scope scope, LocalVariableBinding local, ASTNode location, int checkType, FlowInfo flowInfo)
           
 void LoopingFlowContext.simulateThrowAfterLoopBack(FlowInfo flowInfo)
           
 

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

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

Fields in org.eclipse.jdt.internal.compiler.lookup declared as FlowInfo
 FlowInfo BlockScope.finallyInfo
          Used only during analyseCode and only for checking if a resource was closed in a finallyBlock.
 

Methods in org.eclipse.jdt.internal.compiler.lookup with parameters of type FlowInfo
 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.
 void BlockScope.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.
 int MethodScope.recordInitializationStates(FlowInfo flowInfo)