Class PurityChecker.PurityCheckerHelper
- Enclosing class:
- PurityChecker
protected static class PurityChecker.PurityCheckerHelper
extends com.sun.source.util.TreePathScanner<Void,Void>
Helper class to keep
PurityChecker
's interface clean.-
Field Summary
Modifier and TypeFieldDescriptionprotected final AnnotationProvider
The annotation provider (typically an AnnotatedTypeFactory). -
Constructor Summary
ConstructorDescriptionPurityCheckerHelper
(AnnotationProvider annoProvider, boolean assumeSideEffectFree, boolean assumeDeterministic) Create a PurityCheckerHelper. -
Method Summary
Modifier and TypeMethodDescriptionprotected void
assignmentCheck
(com.sun.source.tree.ExpressionTree variable) Check whethervariable
is permitted on the left-hand-side of an assignment.protected boolean
isLocalVariable
(com.sun.source.tree.ExpressionTree variable) Checks if the argument is a local variable.visitAssignment
(com.sun.source.tree.AssignmentTree node, Void ignore) visitCatch
(com.sun.source.tree.CatchTree node, Void ignore) visitCompoundAssignment
(com.sun.source.tree.CompoundAssignmentTree node, Void ignore) visitMethodInvocation
(com.sun.source.tree.MethodInvocationTree node, Void ignore) visitNewClass
(com.sun.source.tree.NewClassTree node, Void ignore) visitUnary
(com.sun.source.tree.UnaryTree node, Void ignore) Methods inherited from class com.sun.source.util.TreePathScanner
getCurrentPath, scan, scan
Methods inherited from class com.sun.source.util.TreeScanner
reduce, scan, visitAnnotatedType, visitAnnotation, visitArrayAccess, visitArrayType, visitAssert, visitBinary, visitBindingPattern, visitBlock, visitBreak, visitCase, visitClass, visitCompilationUnit, visitConditionalExpression, visitContinue, visitDefaultCaseLabel, visitDoWhileLoop, visitEmptyStatement, visitEnhancedForLoop, visitErroneous, visitExports, visitExpressionStatement, visitForLoop, visitGuardedPattern, visitIdentifier, visitIf, visitImport, visitInstanceOf, visitIntersectionType, visitLabeledStatement, visitLambdaExpression, visitLiteral, visitMemberReference, visitMemberSelect, visitMethod, visitModifiers, visitModule, visitNewArray, visitOpens, visitOther, visitPackage, visitParameterizedType, visitParenthesized, visitParenthesizedPattern, visitPrimitiveType, visitProvides, visitRequires, visitReturn, visitSwitch, visitSwitchExpression, visitSynchronized, visitThrow, visitTry, visitTypeCast, visitTypeParameter, visitUnionType, visitUses, visitVariable, visitWhileLoop, visitWildcard, visitYield
-
Field Details
-
annoProvider
The annotation provider (typically an AnnotatedTypeFactory).
-
-
Constructor Details
-
PurityCheckerHelper
public PurityCheckerHelper(AnnotationProvider annoProvider, boolean assumeSideEffectFree, boolean assumeDeterministic) Create a PurityCheckerHelper.- Parameters:
annoProvider
- the annotation providerassumeSideEffectFree
- true if all methods should be assumed to be @SideEffectFreeassumeDeterministic
- true if all methods should be assumed to be @Deterministic
-
-
Method Details
-
visitCatch
-
visitMethodInvocation
-
visitNewClass
-
visitAssignment
-
visitUnary
-
assignmentCheck
protected void assignmentCheck(com.sun.source.tree.ExpressionTree variable) Check whethervariable
is permitted on the left-hand-side of an assignment.- Parameters:
variable
- the lhs to check
-
isLocalVariable
protected boolean isLocalVariable(com.sun.source.tree.ExpressionTree variable) Checks if the argument is a local variable.- Parameters:
variable
- the tree to check- Returns:
- true if the argument is a local variable
-
visitCompoundAssignment
-