Class ErrorProneScanner
java.lang.Object
com.sun.source.util.TreeScanner<Void, VisitorState>
com.sun.source.util.TreePathScanner<Void, VisitorState>
com.google.errorprone.scanner.Scanner
com.google.errorprone.scanner.ErrorProneScanner
- All Implemented Interfaces:
TreeVisitor<Void, VisitorState>
Scans the parsed AST, looking for violations of any of the enabled checks.
- Author:
- Alex Eagle (alexeagle@google.com)
-
Constructor Summary
ConstructorsConstructorDescriptionErrorProneScanner
(BugChecker... checkers) Create an error-prone scanner for the given checkers.ErrorProneScanner
(Iterable<BugChecker> checkers) Create an error-prone scanner for a non-hardcoded set of checkers.ErrorProneScanner
(Iterable<BugChecker> checkers, Map<String, BugPattern.SeverityLevel> severities) Create an error-prone scanner for a non-hardcoded set of checkers. -
Method Summary
Modifier and TypeMethodDescriptioncom.google.common.collect.ImmutableSet
<BugChecker> protected Set
<? extends com.sun.tools.javac.util.Name> Returns a set of all the custom suppression annotation types used by theBugChecker
s in thisScanner
.protected void
handleError
(Suppressible s, Throwable t) Handles an exception thrown by an individual BugPattern.Returns a mapping between the canonical names of checks and theirBugPattern.SeverityLevel
.visitAnnotatedType
(AnnotatedTypeTree tree, VisitorState visitorState) visitAnnotation
(AnnotationTree tree, VisitorState visitorState) visitArrayAccess
(ArrayAccessTree tree, VisitorState visitorState) visitArrayType
(ArrayTypeTree tree, VisitorState visitorState) visitAssert
(AssertTree tree, VisitorState visitorState) visitAssignment
(AssignmentTree tree, VisitorState visitorState) visitBinary
(BinaryTree tree, VisitorState visitorState) visitBindingPattern
(BindingPatternTree tree, VisitorState visitorState) visitBlock
(BlockTree tree, VisitorState visitorState) visitBreak
(BreakTree tree, VisitorState visitorState) visitCase
(CaseTree tree, VisitorState visitorState) visitCatch
(CatchTree tree, VisitorState visitorState) visitClass
(ClassTree tree, VisitorState visitorState) visitCompilationUnit
(CompilationUnitTree tree, VisitorState visitorState) visitCompoundAssignment
(CompoundAssignmentTree tree, VisitorState visitorState) visitConditionalExpression
(ConditionalExpressionTree tree, VisitorState visitorState) visitContinue
(ContinueTree tree, VisitorState visitorState) visitDoWhileLoop
(DoWhileLoopTree tree, VisitorState visitorState) visitEmptyStatement
(EmptyStatementTree tree, VisitorState visitorState) visitEnhancedForLoop
(EnhancedForLoopTree tree, VisitorState visitorState) visitExports
(ExportsTree tree, VisitorState visitorState) visitExpressionStatement
(ExpressionStatementTree tree, VisitorState visitorState) visitForLoop
(ForLoopTree tree, VisitorState visitorState) visitIdentifier
(IdentifierTree tree, VisitorState visitorState) visitIf
(IfTree tree, VisitorState visitorState) visitImport
(ImportTree tree, VisitorState visitorState) visitInstanceOf
(InstanceOfTree tree, VisitorState visitorState) visitIntersectionType
(IntersectionTypeTree tree, VisitorState visitorState) visitLabeledStatement
(LabeledStatementTree tree, VisitorState visitorState) visitLambdaExpression
(LambdaExpressionTree tree, VisitorState visitorState) visitLiteral
(LiteralTree tree, VisitorState visitorState) visitMemberReference
(MemberReferenceTree tree, VisitorState visitorState) visitMemberSelect
(MemberSelectTree tree, VisitorState visitorState) visitMethod
(MethodTree tree, VisitorState visitorState) visitMethodInvocation
(MethodInvocationTree tree, VisitorState visitorState) visitModifiers
(ModifiersTree tree, VisitorState visitorState) visitModule
(ModuleTree tree, VisitorState visitorState) visitNewArray
(NewArrayTree tree, VisitorState visitorState) visitNewClass
(NewClassTree tree, VisitorState visitorState) visitOpens
(OpensTree tree, VisitorState visitorState) visitPackage
(PackageTree tree, VisitorState visitorState) visitParameterizedType
(ParameterizedTypeTree tree, VisitorState visitorState) visitParenthesized
(ParenthesizedTree tree, VisitorState visitorState) visitPrimitiveType
(PrimitiveTypeTree tree, VisitorState visitorState) visitProvides
(ProvidesTree tree, VisitorState visitorState) visitRequires
(RequiresTree tree, VisitorState visitorState) visitReturn
(ReturnTree tree, VisitorState visitorState) visitSwitch
(SwitchTree tree, VisitorState visitorState) visitSwitchExpression
(SwitchExpressionTree tree, VisitorState visitorState) visitSynchronized
(SynchronizedTree tree, VisitorState visitorState) visitThrow
(ThrowTree tree, VisitorState visitorState) visitTry
(TryTree tree, VisitorState visitorState) visitTypeCast
(TypeCastTree tree, VisitorState visitorState) visitTypeParameter
(TypeParameterTree tree, VisitorState visitorState) visitUnary
(UnaryTree tree, VisitorState visitorState) visitUnionType
(UnionTypeTree tree, VisitorState visitorState) visitUses
(UsesTree tree, VisitorState visitorState) visitVariable
(VariableTree tree, VisitorState visitorState) visitWhileLoop
(WhileLoopTree tree, VisitorState visitorState) visitWildcard
(WildcardTree tree, VisitorState visitorState) visitYield
(YieldTree tree, VisitorState visitorState) Methods inherited from class Scanner
isSuppressed, reportMatch, scan, scan
Methods inherited from class TreePathScanner
getCurrentPath
Methods inherited from class TreeScanner
reduce, scan, visitAnyPattern, visitConstantCaseLabel, visitDeconstructionPattern, visitDefaultCaseLabel, visitErroneous, visitOther, visitPatternCaseLabel
-
Constructor Details
-
ErrorProneScanner
Create an error-prone scanner for the given checkers.- Parameters:
checkers
- The checkers that this scanner should use.
-
ErrorProneScanner
Create an error-prone scanner for a non-hardcoded set of checkers.- Parameters:
checkers
- The checkers that this scanner should use.
-
ErrorProneScanner
public ErrorProneScanner(Iterable<BugChecker> checkers, Map<String, BugPattern.SeverityLevel> severities) Create an error-prone scanner for a non-hardcoded set of checkers.- Parameters:
checkers
- The checkers that this scanner should use.severities
- The default check severities.
-
-
Method Details
-
getCustomSuppressionAnnotations
protected Set<? extends com.sun.tools.javac.util.Name> getCustomSuppressionAnnotations(VisitorState state) Description copied from class:Scanner
Returns a set of all the custom suppression annotation types used by theBugChecker
s in thisScanner
.- Overrides:
getCustomSuppressionAnnotations
in classScanner
-
visitAnnotation
- Specified by:
visitAnnotation
in interfaceTreeVisitor<Void, VisitorState>
- Overrides:
visitAnnotation
in classTreeScanner<Void, VisitorState>
-
visitAnnotatedType
- Specified by:
visitAnnotatedType
in interfaceTreeVisitor<Void, VisitorState>
- Overrides:
visitAnnotatedType
in classTreeScanner<Void, VisitorState>
-
visitArrayAccess
- Specified by:
visitArrayAccess
in interfaceTreeVisitor<Void, VisitorState>
- Overrides:
visitArrayAccess
in classTreeScanner<Void, VisitorState>
-
visitArrayType
- Specified by:
visitArrayType
in interfaceTreeVisitor<Void, VisitorState>
- Overrides:
visitArrayType
in classTreeScanner<Void, VisitorState>
-
visitAssert
- Specified by:
visitAssert
in interfaceTreeVisitor<Void, VisitorState>
- Overrides:
visitAssert
in classTreeScanner<Void, VisitorState>
-
visitAssignment
- Specified by:
visitAssignment
in interfaceTreeVisitor<Void, VisitorState>
- Overrides:
visitAssignment
in classTreeScanner<Void, VisitorState>
-
visitBinary
- Specified by:
visitBinary
in interfaceTreeVisitor<Void, VisitorState>
- Overrides:
visitBinary
in classTreeScanner<Void, VisitorState>
-
visitBindingPattern
- Specified by:
visitBindingPattern
in interfaceTreeVisitor<Void, VisitorState>
- Overrides:
visitBindingPattern
in classTreeScanner<Void, VisitorState>
-
visitBlock
- Specified by:
visitBlock
in interfaceTreeVisitor<Void, VisitorState>
- Overrides:
visitBlock
in classTreeScanner<Void, VisitorState>
-
visitBreak
- Specified by:
visitBreak
in interfaceTreeVisitor<Void, VisitorState>
- Overrides:
visitBreak
in classTreeScanner<Void, VisitorState>
-
visitCase
- Specified by:
visitCase
in interfaceTreeVisitor<Void, VisitorState>
- Overrides:
visitCase
in classTreeScanner<Void, VisitorState>
-
visitCatch
- Specified by:
visitCatch
in interfaceTreeVisitor<Void, VisitorState>
- Overrides:
visitCatch
in classTreeScanner<Void, VisitorState>
-
visitClass
- Specified by:
visitClass
in interfaceTreeVisitor<Void, VisitorState>
- Overrides:
visitClass
in classTreeScanner<Void, VisitorState>
-
visitCompilationUnit
- Specified by:
visitCompilationUnit
in interfaceTreeVisitor<Void, VisitorState>
- Overrides:
visitCompilationUnit
in classTreeScanner<Void, VisitorState>
-
visitCompoundAssignment
- Specified by:
visitCompoundAssignment
in interfaceTreeVisitor<Void, VisitorState>
- Overrides:
visitCompoundAssignment
in classTreeScanner<Void, VisitorState>
-
visitConditionalExpression
- Specified by:
visitConditionalExpression
in interfaceTreeVisitor<Void, VisitorState>
- Overrides:
visitConditionalExpression
in classTreeScanner<Void, VisitorState>
-
visitContinue
- Specified by:
visitContinue
in interfaceTreeVisitor<Void, VisitorState>
- Overrides:
visitContinue
in classTreeScanner<Void, VisitorState>
-
visitDoWhileLoop
- Specified by:
visitDoWhileLoop
in interfaceTreeVisitor<Void, VisitorState>
- Overrides:
visitDoWhileLoop
in classTreeScanner<Void, VisitorState>
-
visitEmptyStatement
- Specified by:
visitEmptyStatement
in interfaceTreeVisitor<Void, VisitorState>
- Overrides:
visitEmptyStatement
in classTreeScanner<Void, VisitorState>
-
visitEnhancedForLoop
- Specified by:
visitEnhancedForLoop
in interfaceTreeVisitor<Void, VisitorState>
- Overrides:
visitEnhancedForLoop
in classTreeScanner<Void, VisitorState>
-
visitExports
- Specified by:
visitExports
in interfaceTreeVisitor<Void, VisitorState>
- Overrides:
visitExports
in classTreeScanner<Void, VisitorState>
-
visitExpressionStatement
- Specified by:
visitExpressionStatement
in interfaceTreeVisitor<Void, VisitorState>
- Overrides:
visitExpressionStatement
in classTreeScanner<Void, VisitorState>
-
visitForLoop
- Specified by:
visitForLoop
in interfaceTreeVisitor<Void, VisitorState>
- Overrides:
visitForLoop
in classTreeScanner<Void, VisitorState>
-
visitIdentifier
- Specified by:
visitIdentifier
in interfaceTreeVisitor<Void, VisitorState>
- Overrides:
visitIdentifier
in classTreeScanner<Void, VisitorState>
-
visitIf
- Specified by:
visitIf
in interfaceTreeVisitor<Void, VisitorState>
- Overrides:
visitIf
in classTreeScanner<Void, VisitorState>
-
visitImport
- Specified by:
visitImport
in interfaceTreeVisitor<Void, VisitorState>
- Overrides:
visitImport
in classTreeScanner<Void, VisitorState>
-
visitInstanceOf
- Specified by:
visitInstanceOf
in interfaceTreeVisitor<Void, VisitorState>
- Overrides:
visitInstanceOf
in classTreeScanner<Void, VisitorState>
-
visitIntersectionType
- Specified by:
visitIntersectionType
in interfaceTreeVisitor<Void, VisitorState>
- Overrides:
visitIntersectionType
in classTreeScanner<Void, VisitorState>
-
visitLabeledStatement
- Specified by:
visitLabeledStatement
in interfaceTreeVisitor<Void, VisitorState>
- Overrides:
visitLabeledStatement
in classTreeScanner<Void, VisitorState>
-
visitLambdaExpression
- Specified by:
visitLambdaExpression
in interfaceTreeVisitor<Void, VisitorState>
- Overrides:
visitLambdaExpression
in classTreeScanner<Void, VisitorState>
-
visitLiteral
- Specified by:
visitLiteral
in interfaceTreeVisitor<Void, VisitorState>
- Overrides:
visitLiteral
in classTreeScanner<Void, VisitorState>
-
visitMemberReference
- Specified by:
visitMemberReference
in interfaceTreeVisitor<Void, VisitorState>
- Overrides:
visitMemberReference
in classTreeScanner<Void, VisitorState>
-
visitMemberSelect
- Specified by:
visitMemberSelect
in interfaceTreeVisitor<Void, VisitorState>
- Overrides:
visitMemberSelect
in classTreeScanner<Void, VisitorState>
-
visitMethod
- Specified by:
visitMethod
in interfaceTreeVisitor<Void, VisitorState>
- Overrides:
visitMethod
in classTreeScanner<Void, VisitorState>
-
visitMethodInvocation
- Specified by:
visitMethodInvocation
in interfaceTreeVisitor<Void, VisitorState>
- Overrides:
visitMethodInvocation
in classTreeScanner<Void, VisitorState>
-
visitModifiers
- Specified by:
visitModifiers
in interfaceTreeVisitor<Void, VisitorState>
- Overrides:
visitModifiers
in classTreeScanner<Void, VisitorState>
-
visitModule
- Specified by:
visitModule
in interfaceTreeVisitor<Void, VisitorState>
- Overrides:
visitModule
in classTreeScanner<Void, VisitorState>
-
visitNewArray
- Specified by:
visitNewArray
in interfaceTreeVisitor<Void, VisitorState>
- Overrides:
visitNewArray
in classTreeScanner<Void, VisitorState>
-
visitNewClass
- Specified by:
visitNewClass
in interfaceTreeVisitor<Void, VisitorState>
- Overrides:
visitNewClass
in classTreeScanner<Void, VisitorState>
-
visitOpens
- Specified by:
visitOpens
in interfaceTreeVisitor<Void, VisitorState>
- Overrides:
visitOpens
in classTreeScanner<Void, VisitorState>
-
visitPackage
- Specified by:
visitPackage
in interfaceTreeVisitor<Void, VisitorState>
- Overrides:
visitPackage
in classTreeScanner<Void, VisitorState>
-
visitParameterizedType
- Specified by:
visitParameterizedType
in interfaceTreeVisitor<Void, VisitorState>
- Overrides:
visitParameterizedType
in classTreeScanner<Void, VisitorState>
-
visitParenthesized
- Specified by:
visitParenthesized
in interfaceTreeVisitor<Void, VisitorState>
- Overrides:
visitParenthesized
in classTreeScanner<Void, VisitorState>
-
visitPrimitiveType
- Specified by:
visitPrimitiveType
in interfaceTreeVisitor<Void, VisitorState>
- Overrides:
visitPrimitiveType
in classTreeScanner<Void, VisitorState>
-
visitProvides
- Specified by:
visitProvides
in interfaceTreeVisitor<Void, VisitorState>
- Overrides:
visitProvides
in classTreeScanner<Void, VisitorState>
-
visitRequires
- Specified by:
visitRequires
in interfaceTreeVisitor<Void, VisitorState>
- Overrides:
visitRequires
in classTreeScanner<Void, VisitorState>
-
visitReturn
- Specified by:
visitReturn
in interfaceTreeVisitor<Void, VisitorState>
- Overrides:
visitReturn
in classTreeScanner<Void, VisitorState>
-
visitSwitchExpression
- Specified by:
visitSwitchExpression
in interfaceTreeVisitor<Void, VisitorState>
- Overrides:
visitSwitchExpression
in classTreeScanner<Void, VisitorState>
-
visitSwitch
- Specified by:
visitSwitch
in interfaceTreeVisitor<Void, VisitorState>
- Overrides:
visitSwitch
in classTreeScanner<Void, VisitorState>
-
visitSynchronized
- Specified by:
visitSynchronized
in interfaceTreeVisitor<Void, VisitorState>
- Overrides:
visitSynchronized
in classTreeScanner<Void, VisitorState>
-
visitThrow
- Specified by:
visitThrow
in interfaceTreeVisitor<Void, VisitorState>
- Overrides:
visitThrow
in classTreeScanner<Void, VisitorState>
-
visitTry
- Specified by:
visitTry
in interfaceTreeVisitor<Void, VisitorState>
- Overrides:
visitTry
in classTreeScanner<Void, VisitorState>
-
visitTypeCast
- Specified by:
visitTypeCast
in interfaceTreeVisitor<Void, VisitorState>
- Overrides:
visitTypeCast
in classTreeScanner<Void, VisitorState>
-
visitTypeParameter
- Specified by:
visitTypeParameter
in interfaceTreeVisitor<Void, VisitorState>
- Overrides:
visitTypeParameter
in classTreeScanner<Void, VisitorState>
-
visitUnary
- Specified by:
visitUnary
in interfaceTreeVisitor<Void, VisitorState>
- Overrides:
visitUnary
in classTreeScanner<Void, VisitorState>
-
visitUnionType
- Specified by:
visitUnionType
in interfaceTreeVisitor<Void, VisitorState>
- Overrides:
visitUnionType
in classTreeScanner<Void, VisitorState>
-
visitUses
- Specified by:
visitUses
in interfaceTreeVisitor<Void, VisitorState>
- Overrides:
visitUses
in classTreeScanner<Void, VisitorState>
-
visitVariable
- Specified by:
visitVariable
in interfaceTreeVisitor<Void, VisitorState>
- Overrides:
visitVariable
in classTreeScanner<Void, VisitorState>
-
visitWhileLoop
- Specified by:
visitWhileLoop
in interfaceTreeVisitor<Void, VisitorState>
- Overrides:
visitWhileLoop
in classTreeScanner<Void, VisitorState>
-
visitWildcard
- Specified by:
visitWildcard
in interfaceTreeVisitor<Void, VisitorState>
- Overrides:
visitWildcard
in classTreeScanner<Void, VisitorState>
-
visitYield
- Specified by:
visitYield
in interfaceTreeVisitor<Void, VisitorState>
- Overrides:
visitYield
in classTreeScanner<Void, VisitorState>
-
handleError
Handles an exception thrown by an individual BugPattern. By default, wraps the exception in anErrorProneError
and rethrows. May be overridden by subclasses, for example to log the error and continue.- Overrides:
handleError
in classScanner
-
severityMap
Description copied from class:Scanner
Returns a mapping between the canonical names of checks and theirBugPattern.SeverityLevel
.- Overrides:
severityMap
in classScanner
-
getBugCheckers
-