Class PurityChecker
java.lang.Object
org.checkerframework.dataflow.util.PurityChecker
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:
-
Nested Class Summary
Modifier and TypeClassDescriptionprotected static class
Helper class to keepPurityChecker
's interface clean.static class
Result of thePurityChecker
. -
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionstatic 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.
-
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 checkannoProvider
- the annotation providerassumeSideEffectFree
- true if all methods should be assumed to be @SideEffectFreeassumeDeterministic
- true if all methods should be assumed to be @DeterministicassumePureGetters
- 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
-