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
FieldsModifier and TypeFieldDescriptionprotected final AnnotationProviderThe annotation provider (typically an AnnotatedTypeFactory). -
Constructor Summary
ConstructorsConstructorDescriptionPurityCheckerHelper(AnnotationProvider annoProvider, boolean assumeSideEffectFree, boolean assumeDeterministic) Create a PurityCheckerHelper. -
Method Summary
Modifier and TypeMethodDescriptionprotected voidassignmentCheck(com.sun.source.tree.ExpressionTree variable) Check whethervariableis permitted on the left-hand-side of an assignment.protected booleanisLocalVariable(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, scanMethods 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 whethervariableis 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
-