public final class DataFlow extends Object
Analysis
.Modifier and Type | Class and Description |
---|---|
static interface |
DataFlow.Result<A extends org.checkerframework.dataflow.analysis.AbstractValue<A>,S extends org.checkerframework.dataflow.analysis.Store<S>,T extends org.checkerframework.dataflow.analysis.TransferFunction<A,S>>
A pair of Analysis and ControlFlowGraph.
|
Constructor and Description |
---|
DataFlow() |
Modifier and Type | Method and Description |
---|---|
static <A extends org.checkerframework.dataflow.analysis.AbstractValue<A>,S extends org.checkerframework.dataflow.analysis.Store<S>,T extends org.checkerframework.dataflow.analysis.TransferFunction<A,S>> |
expressionDataflow(com.sun.source.util.TreePath exprPath,
com.sun.tools.javac.util.Context context,
T transfer)
Runs the
transfer dataflow analysis to compute the abstract value of the expression
which is the leaf of exprPath . |
@Nullable public static <A extends org.checkerframework.dataflow.analysis.AbstractValue<A>,S extends org.checkerframework.dataflow.analysis.Store<S>,T extends org.checkerframework.dataflow.analysis.TransferFunction<A,S>> A expressionDataflow(com.sun.source.util.TreePath exprPath, com.sun.tools.javac.util.Context context, T transfer)
transfer
dataflow analysis to compute the abstract value of the expression
which is the leaf of exprPath
.
The expression must be part of a method, lambda, or initializer (inline field initializer or initializer block). Example of an expression outside of such constructs is the identifier in an import statement.
Note that for intializers, each inline field initializer or initializer block is treated separately. I.e., we don't merge all initializers into one virtual block for dataflow.
null
if the expression is not part
of a method, lambda or initializerCopyright © 2019. All rights reserved.