Class CanBeStaticAnalyzer

java.lang.Object
com.google.errorprone.bugpatterns.CanBeStaticAnalyzer

public class CanBeStaticAnalyzer extends Object
Analyzes trees for references to their enclosing instance.
  • Nested Class Summary

    Nested Classes
    Modifier and Type
    Class
    Description
    static class 
    Stores the result of a can-be-static query.
  • Method Summary

    Modifier and Type
    Method
    Description
    canBeStaticResult(Tree tree, com.sun.tools.javac.code.Symbol owner, VisitorState state)
     
    static boolean
    referencesOuter(Tree tree, com.sun.tools.javac.code.Symbol owner, VisitorState state)
    Returns true if the tree references its enclosing class.
    void
    scan(com.sun.tools.javac.tree.JCTree arg0)
     
    void
    scan(com.sun.tools.javac.util.List<? extends com.sun.tools.javac.tree.JCTree> arg0)
     
    void
    visitAnnotatedType(com.sun.tools.javac.tree.JCTree.JCAnnotatedType arg0)
     
    void
    visitAnnotation(com.sun.tools.javac.tree.JCTree.JCAnnotation tree)
     
    void
    visitAnyPattern(com.sun.tools.javac.tree.JCTree.JCAnyPattern arg0)
     
    void
    visitApply(com.sun.tools.javac.tree.JCTree.JCMethodInvocation arg0)
     
    void
    visitAssert(com.sun.tools.javac.tree.JCTree.JCAssert arg0)
     
    void
    visitAssign(com.sun.tools.javac.tree.JCTree.JCAssign arg0)
     
    void
    visitAssignop(com.sun.tools.javac.tree.JCTree.JCAssignOp arg0)
     
    void
    visitBinary(com.sun.tools.javac.tree.JCTree.JCBinary arg0)
     
    void
    visitBindingPattern(com.sun.tools.javac.tree.JCTree.JCBindingPattern arg0)
     
    void
    visitBlock(com.sun.tools.javac.tree.JCTree.JCBlock arg0)
     
    void
    visitBreak(com.sun.tools.javac.tree.JCTree.JCBreak arg0)
     
    void
    visitCase(com.sun.tools.javac.tree.JCTree.JCCase arg0)
     
    void
    visitCatch(com.sun.tools.javac.tree.JCTree.JCCatch arg0)
     
    void
    visitClassDef(com.sun.tools.javac.tree.JCTree.JCClassDecl arg0)
     
    void
    visitConditional(com.sun.tools.javac.tree.JCTree.JCConditional arg0)
     
    void
    visitConstantCaseLabel(com.sun.tools.javac.tree.JCTree.JCConstantCaseLabel arg0)
     
    void
    visitContinue(com.sun.tools.javac.tree.JCTree.JCContinue arg0)
     
    void
    visitDefaultCaseLabel(com.sun.tools.javac.tree.JCTree.JCDefaultCaseLabel arg0)
     
    void
    visitDoLoop(com.sun.tools.javac.tree.JCTree.JCDoWhileLoop arg0)
     
    void
    visitErroneous(com.sun.tools.javac.tree.JCTree.JCErroneous arg0)
     
    void
    visitExec(com.sun.tools.javac.tree.JCTree.JCExpressionStatement arg0)
     
    void
    visitExports(com.sun.tools.javac.tree.JCTree.JCExports arg0)
     
    void
    visitForeachLoop(com.sun.tools.javac.tree.JCTree.JCEnhancedForLoop arg0)
     
    void
    visitForLoop(com.sun.tools.javac.tree.JCTree.JCForLoop arg0)
     
    void
    visitIdent(com.sun.tools.javac.tree.JCTree.JCIdent tree)
     
    void
    visitIf(com.sun.tools.javac.tree.JCTree.JCIf arg0)
     
    void
    visitImport(com.sun.tools.javac.tree.JCTree.JCImport arg0)
     
    void
    visitIndexed(com.sun.tools.javac.tree.JCTree.JCArrayAccess arg0)
     
    void
    visitLabelled(com.sun.tools.javac.tree.JCTree.JCLabeledStatement arg0)
     
    void
    visitLambda(com.sun.tools.javac.tree.JCTree.JCLambda arg0)
     
    void
    visitLetExpr(com.sun.tools.javac.tree.JCTree.LetExpr arg0)
     
    void
    visitLiteral(com.sun.tools.javac.tree.JCTree.JCLiteral arg0)
     
    void
    visitMethodDef(com.sun.tools.javac.tree.JCTree.JCMethodDecl arg0)
     
    void
    visitModifiers(com.sun.tools.javac.tree.JCTree.JCModifiers arg0)
     
    void
    visitModuleDef(com.sun.tools.javac.tree.JCTree.JCModuleDecl arg0)
     
    void
    visitModuleImport(com.sun.tools.javac.tree.JCTree.JCModuleImport arg0)
     
    void
    visitNewArray(com.sun.tools.javac.tree.JCTree.JCNewArray arg0)
     
    void
    visitNewClass(com.sun.tools.javac.tree.JCTree.JCNewClass tree)
     
    void
    visitOpens(com.sun.tools.javac.tree.JCTree.JCOpens arg0)
     
    void
    visitPackageDef(com.sun.tools.javac.tree.JCTree.JCPackageDecl arg0)
     
    void
    visitParens(com.sun.tools.javac.tree.JCTree.JCParens arg0)
     
    void
    visitPatternCaseLabel(com.sun.tools.javac.tree.JCTree.JCPatternCaseLabel arg0)
     
    void
    visitProvides(com.sun.tools.javac.tree.JCTree.JCProvides arg0)
     
    void
    visitRecordPattern(com.sun.tools.javac.tree.JCTree.JCRecordPattern arg0)
     
    void
    visitReference(com.sun.tools.javac.tree.JCTree.JCMemberReference tree)
     
    void
    visitRequires(com.sun.tools.javac.tree.JCTree.JCRequires arg0)
     
    void
    visitReturn(com.sun.tools.javac.tree.JCTree.JCReturn arg0)
     
    void
    visitSelect(com.sun.tools.javac.tree.JCTree.JCFieldAccess tree)
     
    void
    visitSkip(com.sun.tools.javac.tree.JCTree.JCSkip arg0)
     
    void
    visitSwitch(com.sun.tools.javac.tree.JCTree.JCSwitch arg0)
     
    void
    visitSwitchExpression(com.sun.tools.javac.tree.JCTree.JCSwitchExpression arg0)
     
    void
    visitSynchronized(com.sun.tools.javac.tree.JCTree.JCSynchronized arg0)
     
    void
    visitThrow(com.sun.tools.javac.tree.JCTree.JCThrow arg0)
     
    void
    visitTopLevel(com.sun.tools.javac.tree.JCTree.JCCompilationUnit arg0)
     
    void
    visitTree(com.sun.tools.javac.tree.JCTree arg0)
     
    void
    visitTry(com.sun.tools.javac.tree.JCTree.JCTry arg0)
     
    void
    visitTypeApply(com.sun.tools.javac.tree.JCTree.JCTypeApply arg0)
     
    void
    visitTypeArray(com.sun.tools.javac.tree.JCTree.JCArrayTypeTree arg0)
     
    void
    visitTypeBoundKind(com.sun.tools.javac.tree.JCTree.TypeBoundKind arg0)
     
    void
    visitTypeCast(com.sun.tools.javac.tree.JCTree.JCTypeCast arg0)
     
    void
    visitTypeIdent(com.sun.tools.javac.tree.JCTree.JCPrimitiveTypeTree arg0)
     
    void
    visitTypeIntersection(com.sun.tools.javac.tree.JCTree.JCTypeIntersection arg0)
     
    void
    visitTypeParameter(com.sun.tools.javac.tree.JCTree.JCTypeParameter arg0)
     
    void
    visitTypeTest(com.sun.tools.javac.tree.JCTree.JCInstanceOf arg0)
     
    void
    visitTypeUnion(com.sun.tools.javac.tree.JCTree.JCTypeUnion arg0)
     
    void
    visitUnary(com.sun.tools.javac.tree.JCTree.JCUnary arg0)
     
    void
    visitUses(com.sun.tools.javac.tree.JCTree.JCUses arg0)
     
    void
    visitVarDef(com.sun.tools.javac.tree.JCTree.JCVariableDecl arg0)
     
    void
    visitWhileLoop(com.sun.tools.javac.tree.JCTree.JCWhileLoop arg0)
     
    void
    visitWildcard(com.sun.tools.javac.tree.JCTree.JCWildcard arg0)
     
    void
    visitYield(com.sun.tools.javac.tree.JCTree.JCYield arg0)
     

    Methods inherited from class Object

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

    • referencesOuter

      public static boolean referencesOuter(Tree tree, com.sun.tools.javac.code.Symbol owner, VisitorState state)
      Returns true if the tree references its enclosing class.
    • canBeStaticResult

      public static CanBeStaticAnalyzer.CanBeStaticResult canBeStaticResult(Tree tree, com.sun.tools.javac.code.Symbol owner, VisitorState state)
    • visitIdent

      public void visitIdent(com.sun.tools.javac.tree.JCTree.JCIdent tree)
    • visitSelect

      public void visitSelect(com.sun.tools.javac.tree.JCTree.JCFieldAccess tree)
    • visitNewClass

      public void visitNewClass(com.sun.tools.javac.tree.JCTree.JCNewClass tree)
    • visitReference

      public void visitReference(com.sun.tools.javac.tree.JCTree.JCMemberReference tree)
    • visitAnnotation

      public void visitAnnotation(com.sun.tools.javac.tree.JCTree.JCAnnotation tree)
    • scan

      public void scan(com.sun.tools.javac.tree.JCTree arg0)
    • scan

      public void scan(com.sun.tools.javac.util.List<? extends com.sun.tools.javac.tree.JCTree> arg0)
    • visitTopLevel

      public void visitTopLevel(com.sun.tools.javac.tree.JCTree.JCCompilationUnit arg0)
    • visitPackageDef

      public void visitPackageDef(com.sun.tools.javac.tree.JCTree.JCPackageDecl arg0)
    • visitModuleDef

      public void visitModuleDef(com.sun.tools.javac.tree.JCTree.JCModuleDecl arg0)
    • visitExports

      public void visitExports(com.sun.tools.javac.tree.JCTree.JCExports arg0)
    • visitModuleImport

      public void visitModuleImport(com.sun.tools.javac.tree.JCTree.JCModuleImport arg0)
    • visitOpens

      public void visitOpens(com.sun.tools.javac.tree.JCTree.JCOpens arg0)
    • visitProvides

      public void visitProvides(com.sun.tools.javac.tree.JCTree.JCProvides arg0)
    • visitRequires

      public void visitRequires(com.sun.tools.javac.tree.JCTree.JCRequires arg0)
    • visitUses

      public void visitUses(com.sun.tools.javac.tree.JCTree.JCUses arg0)
    • visitImport

      public void visitImport(com.sun.tools.javac.tree.JCTree.JCImport arg0)
    • visitClassDef

      public void visitClassDef(com.sun.tools.javac.tree.JCTree.JCClassDecl arg0)
    • visitMethodDef

      public void visitMethodDef(com.sun.tools.javac.tree.JCTree.JCMethodDecl arg0)
    • visitVarDef

      public void visitVarDef(com.sun.tools.javac.tree.JCTree.JCVariableDecl arg0)
    • visitSkip

      public void visitSkip(com.sun.tools.javac.tree.JCTree.JCSkip arg0)
    • visitBlock

      public void visitBlock(com.sun.tools.javac.tree.JCTree.JCBlock arg0)
    • visitDoLoop

      public void visitDoLoop(com.sun.tools.javac.tree.JCTree.JCDoWhileLoop arg0)
    • visitWhileLoop

      public void visitWhileLoop(com.sun.tools.javac.tree.JCTree.JCWhileLoop arg0)
    • visitForLoop

      public void visitForLoop(com.sun.tools.javac.tree.JCTree.JCForLoop arg0)
    • visitForeachLoop

      public void visitForeachLoop(com.sun.tools.javac.tree.JCTree.JCEnhancedForLoop arg0)
    • visitLabelled

      public void visitLabelled(com.sun.tools.javac.tree.JCTree.JCLabeledStatement arg0)
    • visitSwitch

      public void visitSwitch(com.sun.tools.javac.tree.JCTree.JCSwitch arg0)
    • visitCase

      public void visitCase(com.sun.tools.javac.tree.JCTree.JCCase arg0)
    • visitSwitchExpression

      public void visitSwitchExpression(com.sun.tools.javac.tree.JCTree.JCSwitchExpression arg0)
    • visitSynchronized

      public void visitSynchronized(com.sun.tools.javac.tree.JCTree.JCSynchronized arg0)
    • visitTry

      public void visitTry(com.sun.tools.javac.tree.JCTree.JCTry arg0)
    • visitCatch

      public void visitCatch(com.sun.tools.javac.tree.JCTree.JCCatch arg0)
    • visitConditional

      public void visitConditional(com.sun.tools.javac.tree.JCTree.JCConditional arg0)
    • visitIf

      public void visitIf(com.sun.tools.javac.tree.JCTree.JCIf arg0)
    • visitExec

      public void visitExec(com.sun.tools.javac.tree.JCTree.JCExpressionStatement arg0)
    • visitBreak

      public void visitBreak(com.sun.tools.javac.tree.JCTree.JCBreak arg0)
    • visitYield

      public void visitYield(com.sun.tools.javac.tree.JCTree.JCYield arg0)
    • visitContinue

      public void visitContinue(com.sun.tools.javac.tree.JCTree.JCContinue arg0)
    • visitReturn

      public void visitReturn(com.sun.tools.javac.tree.JCTree.JCReturn arg0)
    • visitThrow

      public void visitThrow(com.sun.tools.javac.tree.JCTree.JCThrow arg0)
    • visitAssert

      public void visitAssert(com.sun.tools.javac.tree.JCTree.JCAssert arg0)
    • visitApply

      public void visitApply(com.sun.tools.javac.tree.JCTree.JCMethodInvocation arg0)
    • visitNewArray

      public void visitNewArray(com.sun.tools.javac.tree.JCTree.JCNewArray arg0)
    • visitLambda

      public void visitLambda(com.sun.tools.javac.tree.JCTree.JCLambda arg0)
    • visitParens

      public void visitParens(com.sun.tools.javac.tree.JCTree.JCParens arg0)
    • visitAssign

      public void visitAssign(com.sun.tools.javac.tree.JCTree.JCAssign arg0)
    • visitAssignop

      public void visitAssignop(com.sun.tools.javac.tree.JCTree.JCAssignOp arg0)
    • visitUnary

      public void visitUnary(com.sun.tools.javac.tree.JCTree.JCUnary arg0)
    • visitBinary

      public void visitBinary(com.sun.tools.javac.tree.JCTree.JCBinary arg0)
    • visitTypeCast

      public void visitTypeCast(com.sun.tools.javac.tree.JCTree.JCTypeCast arg0)
    • visitTypeTest

      public void visitTypeTest(com.sun.tools.javac.tree.JCTree.JCInstanceOf arg0)
    • visitBindingPattern

      public void visitBindingPattern(com.sun.tools.javac.tree.JCTree.JCBindingPattern arg0)
    • visitDefaultCaseLabel

      public void visitDefaultCaseLabel(com.sun.tools.javac.tree.JCTree.JCDefaultCaseLabel arg0)
    • visitConstantCaseLabel

      public void visitConstantCaseLabel(com.sun.tools.javac.tree.JCTree.JCConstantCaseLabel arg0)
    • visitPatternCaseLabel

      public void visitPatternCaseLabel(com.sun.tools.javac.tree.JCTree.JCPatternCaseLabel arg0)
    • visitAnyPattern

      public void visitAnyPattern(com.sun.tools.javac.tree.JCTree.JCAnyPattern arg0)
    • visitRecordPattern

      public void visitRecordPattern(com.sun.tools.javac.tree.JCTree.JCRecordPattern arg0)
    • visitIndexed

      public void visitIndexed(com.sun.tools.javac.tree.JCTree.JCArrayAccess arg0)
    • visitLiteral

      public void visitLiteral(com.sun.tools.javac.tree.JCTree.JCLiteral arg0)
    • visitTypeIdent

      public void visitTypeIdent(com.sun.tools.javac.tree.JCTree.JCPrimitiveTypeTree arg0)
    • visitTypeArray

      public void visitTypeArray(com.sun.tools.javac.tree.JCTree.JCArrayTypeTree arg0)
    • visitTypeApply

      public void visitTypeApply(com.sun.tools.javac.tree.JCTree.JCTypeApply arg0)
    • visitTypeUnion

      public void visitTypeUnion(com.sun.tools.javac.tree.JCTree.JCTypeUnion arg0)
    • visitTypeIntersection

      public void visitTypeIntersection(com.sun.tools.javac.tree.JCTree.JCTypeIntersection arg0)
    • visitTypeParameter

      public void visitTypeParameter(com.sun.tools.javac.tree.JCTree.JCTypeParameter arg0)
    • visitWildcard

      public void visitWildcard(com.sun.tools.javac.tree.JCTree.JCWildcard arg0)
    • visitTypeBoundKind

      public void visitTypeBoundKind(com.sun.tools.javac.tree.JCTree.TypeBoundKind arg0)
    • visitModifiers

      public void visitModifiers(com.sun.tools.javac.tree.JCTree.JCModifiers arg0)
    • visitAnnotatedType

      public void visitAnnotatedType(com.sun.tools.javac.tree.JCTree.JCAnnotatedType arg0)
    • visitErroneous

      public void visitErroneous(com.sun.tools.javac.tree.JCTree.JCErroneous arg0)
    • visitLetExpr

      public void visitLetExpr(com.sun.tools.javac.tree.JCTree.LetExpr arg0)
    • visitTree

      public void visitTree(com.sun.tools.javac.tree.JCTree arg0)