All Classes and Interfaces
Class
Description
Implementation of common features for
BackwardAnalysisImpl and ForwardAnalysisImpl.A worklist is a priority queue of blocks in which the order is given by depth-first ordering to
place non-loop predecessors ahead of successors.
AbstractCFGVisualizer<V extends AbstractValue<V>,S extends Store<S>,T extends TransferFunction<V,S>>
This abstract class makes implementing a
CFGVisualizer easier.Whether to visualize before or after a block.
A default implementation of the node visitor interface.
An abstract value used in the org.checkerframework.dataflow analysis.
This interface defines a dataflow analysis, given a control flow graph and a transfer function.
In calls to
Analysis#runAnalysisFor, whether to return the store before or after the
given node.The direction of an analysis instance.
An
AnalysisResult represents the result of a org.checkerframework.dataflow analysis by
providing the abstract values given a node or a tree.An array access.
A node for an array access:
JavaExpression for array creations.
A node for new array creation.
A node representing an array type used in an expression such as a field access.
A node for the
AssertionError when an assertion fails.A node for an assignment:
BackwardAnalysis<V extends AbstractValue<V>,S extends Store<S>,T extends BackwardTransferFunction<V,S>>
This interface defines a backward analysis, given a control flow graph and a backward transfer
function.
BackwardAnalysisImpl<V extends AbstractValue<V>,S extends Store<S>,T extends BackwardTransferFunction<V,S>>
An implementation of a backward analysis to solve a org.checkerframework.dataflow problem given a
control flow graph and a backward transfer function.
Interface of a backward transfer function for the abstract interpretation used for the backward
flow analysis.
JavaExpression for binary operations.
A node for a binary expression.
A node for the bitwise or logical (single bit) and operation:
A node for the bitwise complement operation:
A node for the bitwise or logical (single bit) or operation:
A node for the bitwise or logical (single bit) xor operation:
Represents a basic block in a control flow graph.
The types of basic blocks.
Base class of the
Block implementation hierarchy.A node for a boolean literal:
The playground for busy expression analysis.
A busy expression store contains a set of busy expressions represented by nodes.
A busy expression transfer function
BusyExprValue class contains a BinaryOperationNode.
A node for a case in a switch statement.
A CatchMarkerNode is a marker node for the beginning or end of a catch block.
Builds the control flow graph of some Java code (either a method, or an arbitrary statement).
Generate the control flow graph of a given method in a given class.
The result of the CFG process, contains the control flow graph when successful.
Class that performs phase one of the translation process.
Class that performs phase three of the translation process.
A simple wrapper object that holds a basic block and allows to set one of its successors.
Class that performs phase two of the translation process.
Launcher to generate the DOT or String representation of the control flow graph of a given method
in a given class.
Options for running analysis on files.
Perform some visualization on a control flow graph.
A node for a character literal.
A node representing a class declaration that occurs within a method, for example, an anonymous
class declaration.
A ClassName represents either a class literal or the occurrence of a class as part of a static
field access or static method invocation.
A node representing a class name used in an expression such as a static method invocation.
A node for a conditional and expression:
Represents a conditional basic block.
Implementation of a conditional basic block.
An extended node of type
ExtendedNode.ExtendedNodeType.CONDITIONAL_JUMP.A node for a conditional not expression:
A node for a conditional or expression:
Implementation of a
TransferResult with two non-exceptional stores.Run constant propagation for a specific file and create a PDF of the CFG.
A store that records information about constant values.
A control flow graph (CFG for short) of a single method.
Generate a graph description in the DOT language of a control graph.
A node for a double literal.
A node for an equality check:
Represents a basic block that contains exactly one
Node which can throw an exception.Implementation of
ExceptionBlock.A node for a reference to 'this'.
A node for an expression that is used as a statement.
An extended node can be one of several things (depending on its
type):
NODE: NodeHolder.Extended node types (description see above).
A FieldAccess represents a field access.
A node for a field access, including a method accesses:
A node for the floating-point division:
A node for the floating-point remainder:
A node for a float literal.
A formal parameter, represented by its 1-based index.
ForwardAnalysis<V extends AbstractValue<V>,S extends Store<S>,T extends ForwardTransferFunction<V,S>>
This interface defines a forward analysis, given a control flow graph and a forward transfer
function.
ForwardAnalysisImpl<V extends AbstractValue<V>,S extends Store<S>,T extends ForwardTransferFunction<V,S>>
An implementation of a forward analysis to solve a org.checkerframework.dataflow problem given a
control flow graph and a forward transfer function.
Interface of a forward transfer function for the abstract interpretation used for the forward
flow analysis.
A node for member references and lambdas.
A node for the greater than comparison:
A node for the greater than or equal comparison:
A node to model the implicit
this, e.g., in a field access.A node for the instanceof operator:
A node for the integer division:
A node for an integer literal.
A node for the integer remainder:
This class represents a Java expression and its type.
This class calls
JavaExpressionConverter.convert(JavaExpression) on each subexpression of the JavaExpression and returns a new JavaExpression built from the result of calling
convert on each subexpression.A simple scanner for
JavaExpression.A simple visitor for
JavaExpression.A label is used to refer to other extended nodes using a mapping from labels to extended nodes.
A node for the single expression body of a single-expression lambda.
A node for bitwise left shift operations:
A node for the less than comparison:
A node for the less than or equal comparison:
The playground of live variable analysis.
A LiveVarNode contains a CFG node, which can only be a LocalVariableNode or FieldAccessNode.
A live variable store contains a set of live variables represented by nodes.
A live variable transfer function.
A local variable.
A node for a local variable or a parameter:
A node for a long literal.
MarkerNodes are no-op Nodes used for debugging information.
A node for a method access, including a receiver:
A call to a @Deterministic method.
A node for method invocation.
A node for the narrowing primitive conversion operation.
A node in the abstract representation used for Java code inside a basic block.
A utility class to operate on a given
Node.A visitor for a
Node tree.A node for the not equal comparison:
A node for the unary 'nullchk' operation (generated by the Java compiler):
A node for the null literal.
A node for the numerical addition:
A node for the unary minus operation:
A node for the numerical multiplication:
A node for the unary plus operation:
A node for the numerical subtraction:
A node for new object creation.
A node representing a package name used in an expression such as a constructor invocation.
A node for a parameterized type occurring in an expression:
A wrapper object to pass around the result of phase one.
A node representing a primitive type used in an expression such as a field access.
A visitor that determines the purity (as defined by
SideEffectFree, Deterministic, and Pure) of a statement or expression.Helper class to keep
PurityChecker's interface clean.Result of the
PurityChecker.A utility class for working with the
SideEffectFree, Deterministic, and Pure annotations.A ReachingDefinitionNode contains a CFG node, which can only be a AssignmentNode.
The playground for reaching definition analysis.
A reaching definition store contains a set of reaching definitions represented by
ReachingDefinitionNode
The reaching definition transfer function.
A regular basic block that contains a sequence of
Nodes.Implementation of a regular basic block.
Implementation of a
TransferResult with just one non-exceptional store.A node for a return statement:
A node for a short literal.
A node for bitwise right shift operations with sign extension:
A basic block that has exactly one non-exceptional successor.
A basic block that has at most one successor.
Represents a special basic block; i.e., one of the following:
Entry block of a method.
The types of special basic blocks.
The implementation of a
SpecialBlock.A store is used to keep track of the information that the org.checkerframework.dataflow analysis
has accumulated at any given point in time.
A flow rule describes how stores flow along one edge between basic blocks.
Generate the String representation of a control flow graph.
A node for string concatenation:
A node for the string conversion operation.
A node for an string literal.
A node for a reference to 'super'.
A node for a switch expression.
This represents the start and end of a synchronized code block.
A node for a conditional expression:
A node for a reference to 'this', either implicit or explicit.
A use of
this.A node for exception throws:
Interface of a transfer function for the abstract interpretation used for the flow analysis.
TransferInput is used as the input type of the individual transfer functions of a ForwardTransferFunction or a BackwardTransferFunction.TransferResult is used as the result type of the individual transfer functions of a
TransferFunction.A node for the cast operator:
JavaExpression for unary operations.
A node for a postfix or an unary expression.
Represents an abstract syntax tree of type
Tree that underlies a given control flow
graph.If the underlying AST is a lambda.
If the underlying AST is a method.
If the underlying AST is a statement or expression.
The kinds of underlying ASTs.
Stands for any expression that the Dataflow Framework lacks explicit support for.
A node for bitwise right shift operations with zero extension:
UnusedAbstractValue is an AbstractValue that is not involved in any lub computation during
dataflow analysis.
JavaExpression for literals.
A node for a literals that have some form of value:
integer literal
long literal
char literal
string literal
float literal
double literal
boolean literal
null literal
A node for a variable declaration, including local variables and fields:
This class has methods to viewpoint-adapt
JavaExpression by replacing ThisReference and FormalParameter expressions with the given JavaExpressions.A node for the widening primitive conversion operation.