Class PurityChecker.PurityCheckerHelper

java.lang.Object
com.sun.source.util.TreeScanner<R,P>
com.sun.source.util.TreePathScanner<Void,Void>
org.checkerframework.dataflow.util.PurityChecker.PurityCheckerHelper
All Implemented Interfaces:
com.sun.source.tree.TreeVisitor<Void,Void>
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

    Fields
    Modifier and Type
    Field
    Description
    protected final AnnotationProvider
    The annotation provider (typically an AnnotatedTypeFactory).
  • Constructor Summary

    Constructors
    Constructor
    Description
    PurityCheckerHelper(AnnotationProvider annoProvider, boolean assumeSideEffectFree, boolean assumeDeterministic)
    Create a PurityCheckerHelper.
  • Method Summary

    Modifier and Type
    Method
    Description
    protected void
    assignmentCheck(com.sun.source.tree.ExpressionTree variable)
    Check whether variable 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

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Field Details

    • annoProvider

      protected final AnnotationProvider 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 provider
      assumeSideEffectFree - true if all methods should be assumed to be @SideEffectFree
      assumeDeterministic - true if all methods should be assumed to be @Deterministic
  • Method Details

    • visitCatch

      public Void visitCatch(com.sun.source.tree.CatchTree node, Void ignore)
      Specified by:
      visitCatch in interface com.sun.source.tree.TreeVisitor<Void,Void>
      Overrides:
      visitCatch in class com.sun.source.util.TreeScanner<Void,Void>
    • visitMethodInvocation

      public Void visitMethodInvocation(com.sun.source.tree.MethodInvocationTree node, Void ignore)
      Specified by:
      visitMethodInvocation in interface com.sun.source.tree.TreeVisitor<Void,Void>
      Overrides:
      visitMethodInvocation in class com.sun.source.util.TreeScanner<Void,Void>
    • visitNewClass

      public Void visitNewClass(com.sun.source.tree.NewClassTree node, Void ignore)
      Specified by:
      visitNewClass in interface com.sun.source.tree.TreeVisitor<Void,Void>
      Overrides:
      visitNewClass in class com.sun.source.util.TreeScanner<Void,Void>
    • visitAssignment

      public Void visitAssignment(com.sun.source.tree.AssignmentTree node, Void ignore)
      Specified by:
      visitAssignment in interface com.sun.source.tree.TreeVisitor<Void,Void>
      Overrides:
      visitAssignment in class com.sun.source.util.TreeScanner<Void,Void>
    • visitUnary

      public Void visitUnary(com.sun.source.tree.UnaryTree node, Void ignore)
      Specified by:
      visitUnary in interface com.sun.source.tree.TreeVisitor<Void,Void>
      Overrides:
      visitUnary in class com.sun.source.util.TreeScanner<Void,Void>
    • assignmentCheck

      protected void assignmentCheck(com.sun.source.tree.ExpressionTree variable)
      Check whether variable 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 Void visitCompoundAssignment(com.sun.source.tree.CompoundAssignmentTree node, Void ignore)
      Specified by:
      visitCompoundAssignment in interface com.sun.source.tree.TreeVisitor<Void,Void>
      Overrides:
      visitCompoundAssignment in class com.sun.source.util.TreeScanner<Void,Void>