- Type Parameters:
D
- The type of data-flow facts to be computed by the tabulation problem.
public interface FlowFunction<FieldRef,D,Stmt,Method>
A flow function computes which of the finitely many D-type values are reachable
from the current source values. Typically there will be one such function
associated with every possible control flow.
NOTE: To be able to produce deterministic benchmarking results, we have found that
it helps to return LinkedHashSet
s from #computeTargets(Object)
. This is
because the duration of IDE's fixed point iteration may depend on the iteration order.
Within the solver, we have tried to fix this order as much as possible, but the
order, in general, does also depend on the order in which the result set
of #computeTargets(Object)
is traversed.
NOTE: Methods defined on this type may be called simultaneously by different threads.
Hence, classes implementing this interface should synchronize accesses to
any mutable shared state.