Class PurityChecker.PurityCheckerHelper
- java.lang.Object
-
- com.sun.source.util.TreeScanner<R,P>
-
- com.sun.source.util.TreePathScanner<java.lang.Void,java.lang.Void>
-
- org.checkerframework.dataflow.util.PurityChecker.PurityCheckerHelper
-
- All Implemented Interfaces:
com.sun.source.tree.TreeVisitor<java.lang.Void,java.lang.Void>
- Enclosing class:
- PurityChecker
protected static class PurityChecker.PurityCheckerHelper extends com.sun.source.util.TreePathScanner<java.lang.Void,java.lang.Void>
Helper class to keepPurityChecker
's interface clean.The scanner is run on a single statement, not on a class or method.
-
-
Field Summary
Fields Modifier and Type Field Description protected AnnotationProvider
annoProvider
The annotation provider (typically an AnnotatedTypeFactory).
-
Constructor Summary
Constructors Constructor Description PurityCheckerHelper(AnnotationProvider annoProvider, boolean assumeSideEffectFree, boolean assumeDeterministic)
Create a PurityCheckerHelper.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected 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.java.lang.Void
visitAssignment(com.sun.source.tree.AssignmentTree tree, java.lang.Void ignore)
java.lang.Void
visitCatch(com.sun.source.tree.CatchTree tree, java.lang.Void ignore)
java.lang.Void
visitCompoundAssignment(com.sun.source.tree.CompoundAssignmentTree tree, java.lang.Void ignore)
java.lang.Void
visitMethodInvocation(com.sun.source.tree.MethodInvocationTree tree, java.lang.Void ignore)
java.lang.Void
visitNewClass(com.sun.source.tree.NewClassTree tree, java.lang.Void ignore)
java.lang.Void
visitUnary(com.sun.source.tree.UnaryTree tree, java.lang.Void ignore)
-
Methods inherited from class com.sun.source.util.TreeScanner
reduce, scan, visitAnnotatedType, visitAnnotation, visitArrayAccess, visitArrayType, visitAssert, visitBinary, visitBlock, visitBreak, visitCase, visitClass, visitCompilationUnit, visitConditionalExpression, visitContinue, visitDoWhileLoop, visitEmptyStatement, visitEnhancedForLoop, visitErroneous, visitExports, visitExpressionStatement, visitForLoop, visitIdentifier, visitIf, visitImport, visitInstanceOf, visitIntersectionType, visitLabeledStatement, visitLambdaExpression, visitLiteral, visitMemberReference, visitMemberSelect, visitMethod, visitModifiers, visitModule, visitNewArray, visitOpens, visitOther, visitPackage, visitParameterizedType, visitParenthesized, visitPrimitiveType, visitProvides, visitRequires, visitReturn, visitSwitch, visitSynchronized, visitThrow, visitTry, visitTypeCast, visitTypeParameter, visitUnionType, visitUses, visitVariable, visitWhileLoop, visitWildcard
-
-
-
-
Field Detail
-
annoProvider
protected final AnnotationProvider annoProvider
The annotation provider (typically an AnnotatedTypeFactory).
-
-
Constructor Detail
-
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 Detail
-
visitCatch
public java.lang.Void visitCatch(com.sun.source.tree.CatchTree tree, java.lang.Void ignore)
- Specified by:
visitCatch
in interfacecom.sun.source.tree.TreeVisitor<java.lang.Void,java.lang.Void>
- Overrides:
visitCatch
in classcom.sun.source.util.TreeScanner<java.lang.Void,java.lang.Void>
-
visitMethodInvocation
public java.lang.Void visitMethodInvocation(com.sun.source.tree.MethodInvocationTree tree, java.lang.Void ignore)
- Specified by:
visitMethodInvocation
in interfacecom.sun.source.tree.TreeVisitor<java.lang.Void,java.lang.Void>
- Overrides:
visitMethodInvocation
in classcom.sun.source.util.TreeScanner<java.lang.Void,java.lang.Void>
-
visitNewClass
public java.lang.Void visitNewClass(com.sun.source.tree.NewClassTree tree, java.lang.Void ignore)
- Specified by:
visitNewClass
in interfacecom.sun.source.tree.TreeVisitor<java.lang.Void,java.lang.Void>
- Overrides:
visitNewClass
in classcom.sun.source.util.TreeScanner<java.lang.Void,java.lang.Void>
-
visitAssignment
public java.lang.Void visitAssignment(com.sun.source.tree.AssignmentTree tree, java.lang.Void ignore)
- Specified by:
visitAssignment
in interfacecom.sun.source.tree.TreeVisitor<java.lang.Void,java.lang.Void>
- Overrides:
visitAssignment
in classcom.sun.source.util.TreeScanner<java.lang.Void,java.lang.Void>
-
visitUnary
public java.lang.Void visitUnary(com.sun.source.tree.UnaryTree tree, java.lang.Void ignore)
- Specified by:
visitUnary
in interfacecom.sun.source.tree.TreeVisitor<java.lang.Void,java.lang.Void>
- Overrides:
visitUnary
in classcom.sun.source.util.TreeScanner<java.lang.Void,java.lang.Void>
-
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
public java.lang.Void visitCompoundAssignment(com.sun.source.tree.CompoundAssignmentTree tree, java.lang.Void ignore)
- Specified by:
visitCompoundAssignment
in interfacecom.sun.source.tree.TreeVisitor<java.lang.Void,java.lang.Void>
- Overrides:
visitCompoundAssignment
in classcom.sun.source.util.TreeScanner<java.lang.Void,java.lang.Void>
-
-