edu.umd.cs.findbugs.ba.type
public class TypeAnalysis extends FrameDataflowAnalysis<Type,TypeFrame> implements EdgeTypes
As a side effect, the analysis computes the exception set throwable on each exception edge in the CFG. This information can be used to prune infeasible exception edges, and mark exception edges which propagate only implicit exceptions.
See Also: Dataflow DataflowAnalysis TypeFrame
Field Summary | |
---|---|
protected CFG | cfg |
static boolean | DEBUG |
static boolean | FORCE_ACCURATE_EXCEPTIONS
Force computation of accurate exceptions. |
protected MethodGen | methodGen |
Constructor Summary | |
---|---|
TypeAnalysis(Method method, MethodGen methodGen, CFG cfg, DepthFirstSearch dfs, TypeMerger typeMerger, TypeFrameModelingVisitor visitor, RepositoryLookupFailureCallback lookupFailureCallback, ExceptionSetFactory exceptionSetFactory)
Constructor. | |
TypeAnalysis(Method method, MethodGen methodGen, CFG cfg, DepthFirstSearch dfs, TypeMerger typeMerger, RepositoryLookupFailureCallback lookupFailureCallback, ExceptionSetFactory exceptionSetFactory)
Constructor. | |
TypeAnalysis(Method method, MethodGen methodGen, CFG cfg, DepthFirstSearch dfs, RepositoryLookupFailureCallback lookupFailureCallback, ExceptionSetFactory exceptionSetFactory)
Constructor which uses StandardTypeMerger. |
Method Summary | |
---|---|
TypeFrame | createFact() |
ExceptionSet | getEdgeExceptionSet(Edge edge)
Get the set of exceptions that can be thrown on given edge.
|
void | initEntryFact(TypeFrame result) |
static void | main(String[] argv) |
void | meetInto(TypeFrame fact, Edge edge, TypeFrame result) |
void | setFieldStoreTypeDatabase(FieldStoreTypeDatabase database)
Set the FieldStoreTypeDatabase.
|
void | setValueNumberDataflow(ValueNumberDataflow valueNumberDataflow)
Set the ValueNumberDataflow for the method being analyzed.
|
Parameters: method TODO methodGen the MethodGen whose CFG we'll be analyzing cfg the control flow graph dfs DepthFirstSearch of the method typeMerger object to merge types visitor a TypeFrameModelingVisitor to use to model the effect of instructions lookupFailureCallback lookup failure callback exceptionSetFactory factory for creating ExceptionSet objects
Parameters: method TODO methodGen the MethodGen whose CFG we'll be analyzing cfg the control flow graph dfs DepthFirstSearch of the method typeMerger object to merge types lookupFailureCallback lookup failure callback exceptionSetFactory factory for creating ExceptionSet objects
Parameters: method TODO methodGen the MethodGen whose CFG we'll be analyzing cfg the control flow graph dfs DepthFirstSearch of the method lookupFailureCallback callback for Repository lookup failures exceptionSetFactory factory for creating ExceptionSet objects
Parameters: edge the Edge
Returns: the ExceptionSet
Parameters: database the FieldStoreTypeDatabase
Parameters: valueNumberDataflow the ValueNumberDataflow