Class PurityChecker

java.lang.Object
org.checkerframework.dataflow.util.PurityChecker

public class PurityChecker extends Object
A visitor that determines the purity (as defined by SideEffectFree, Deterministic, and Pure) of a statement or expression. The entry point is method checkPurity(com.sun.source.util.TreePath, org.checkerframework.javacutil.AnnotationProvider, boolean, boolean, boolean).
See Also:
  • Constructor Details

    • PurityChecker

      public PurityChecker()
  • Method Details

    • checkPurity

      public static PurityChecker.PurityResult checkPurity(TreePath statement, AnnotationProvider annoProvider, boolean assumeSideEffectFree, boolean assumeDeterministic, boolean assumePureGetters)
      Compute whether the given statement is side-effect-free, deterministic, or both. Returns a result that can be queried.
      Parameters:
      statement - the statement to check
      annoProvider - the annotation provider
      assumeSideEffectFree - true if all methods should be assumed to be @SideEffectFree
      assumeDeterministic - true if all methods should be assumed to be @Deterministic
      assumePureGetters - true if all getter methods should be assumed to be @Pure
      Returns:
      information about whether the given statement is side-effect-free, deterministic, or both