Package com.google.errorprone.refaster
Class ControlFlowVisitor
- java.lang.Object
-
- com.sun.source.util.SimpleTreeVisitor<ControlFlowVisitor.Result,com.google.errorprone.refaster.ControlFlowVisitor.BreakContext>
-
- com.google.errorprone.refaster.ControlFlowVisitor
-
- All Implemented Interfaces:
TreeVisitor<ControlFlowVisitor.Result,com.google.errorprone.refaster.ControlFlowVisitor.BreakContext>
public class ControlFlowVisitor extends SimpleTreeVisitor<ControlFlowVisitor.Result,com.google.errorprone.refaster.ControlFlowVisitor.BreakContext>
Analyzes a series of statements to determine whether they don't, sometimes, or never return.- Author:
- [email protected] (Louis Wasserman)
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
ControlFlowVisitor.Result
The state of whether a sequence of statements may return, break out of the visited statements, or neither.
-
Field Summary
Fields Modifier and Type Field Description static ControlFlowVisitor
INSTANCE
-
Fields inherited from class com.sun.source.util.SimpleTreeVisitor
DEFAULT_VALUE
-
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected ControlFlowVisitor.Result
defaultAction(Tree node, com.google.errorprone.refaster.ControlFlowVisitor.BreakContext cxt)
ControlFlowVisitor.Result
visitBlock(BlockTree node, com.google.errorprone.refaster.ControlFlowVisitor.BreakContext cxt)
ControlFlowVisitor.Result
visitBreak(BreakTree node, com.google.errorprone.refaster.ControlFlowVisitor.BreakContext cxt)
ControlFlowVisitor.Result
visitCase(CaseTree node, com.google.errorprone.refaster.ControlFlowVisitor.BreakContext cxt)
ControlFlowVisitor.Result
visitCatch(CatchTree node, com.google.errorprone.refaster.ControlFlowVisitor.BreakContext cxt)
ControlFlowVisitor.Result
visitContinue(ContinueTree node, com.google.errorprone.refaster.ControlFlowVisitor.BreakContext cxt)
ControlFlowVisitor.Result
visitDoWhileLoop(DoWhileLoopTree node, com.google.errorprone.refaster.ControlFlowVisitor.BreakContext cxt)
ControlFlowVisitor.Result
visitEnhancedForLoop(EnhancedForLoopTree node, com.google.errorprone.refaster.ControlFlowVisitor.BreakContext cxt)
ControlFlowVisitor.Result
visitExpressionStatement(ExpressionStatementTree node, com.google.errorprone.refaster.ControlFlowVisitor.BreakContext cxt)
ControlFlowVisitor.Result
visitForLoop(ForLoopTree node, com.google.errorprone.refaster.ControlFlowVisitor.BreakContext cxt)
ControlFlowVisitor.Result
visitIf(IfTree node, com.google.errorprone.refaster.ControlFlowVisitor.BreakContext cxt)
ControlFlowVisitor.Result
visitLabeledStatement(LabeledStatementTree node, com.google.errorprone.refaster.ControlFlowVisitor.BreakContext cxt)
ControlFlowVisitor.Result
visitReturn(ReturnTree node, com.google.errorprone.refaster.ControlFlowVisitor.BreakContext cxt)
ControlFlowVisitor.Result
visitStatement(StatementTree node)
ControlFlowVisitor.Result
visitStatements(Iterable<? extends StatementTree> nodes)
ControlFlowVisitor.Result
visitSwitch(SwitchTree node, com.google.errorprone.refaster.ControlFlowVisitor.BreakContext cxt)
ControlFlowVisitor.Result
visitSynchronized(SynchronizedTree node, com.google.errorprone.refaster.ControlFlowVisitor.BreakContext cxt)
ControlFlowVisitor.Result
visitThrow(ThrowTree node, com.google.errorprone.refaster.ControlFlowVisitor.BreakContext cxt)
ControlFlowVisitor.Result
visitTry(TryTree node, com.google.errorprone.refaster.ControlFlowVisitor.BreakContext cxt)
ControlFlowVisitor.Result
visitWhileLoop(WhileLoopTree node, com.google.errorprone.refaster.ControlFlowVisitor.BreakContext cxt)
-
Methods inherited from class com.sun.source.util.SimpleTreeVisitor
visit, visit, visitAnnotatedType, visitAnnotation, visitArrayAccess, visitArrayType, visitAssert, visitAssignment, visitBinary, visitClass, visitCompilationUnit, visitCompoundAssignment, visitConditionalExpression, visitEmptyStatement, visitErroneous, visitExports, visitIdentifier, visitImport, visitInstanceOf, visitIntersectionType, visitLambdaExpression, visitLiteral, visitMemberReference, visitMemberSelect, visitMethod, visitMethodInvocation, visitModifiers, visitModule, visitNewArray, visitNewClass, visitOpens, visitOther, visitPackage, visitParameterizedType, visitParenthesized, visitPrimitiveType, visitProvides, visitRequires, visitTypeCast, visitTypeParameter, visitUnary, visitUnionType, visitUses, visitVariable, visitWildcard
-
-
-
-
Field Detail
-
INSTANCE
public static final ControlFlowVisitor INSTANCE
-
-
Method Detail
-
visitStatement
public ControlFlowVisitor.Result visitStatement(StatementTree node)
-
visitStatements
public ControlFlowVisitor.Result visitStatements(Iterable<? extends StatementTree> nodes)
-
defaultAction
protected ControlFlowVisitor.Result defaultAction(Tree node, com.google.errorprone.refaster.ControlFlowVisitor.BreakContext cxt)
- Overrides:
defaultAction
in classSimpleTreeVisitor<ControlFlowVisitor.Result,com.google.errorprone.refaster.ControlFlowVisitor.BreakContext>
-
visitBlock
public ControlFlowVisitor.Result visitBlock(BlockTree node, com.google.errorprone.refaster.ControlFlowVisitor.BreakContext cxt)
- Specified by:
visitBlock
in interfaceTreeVisitor<ControlFlowVisitor.Result,com.google.errorprone.refaster.ControlFlowVisitor.BreakContext>
- Overrides:
visitBlock
in classSimpleTreeVisitor<ControlFlowVisitor.Result,com.google.errorprone.refaster.ControlFlowVisitor.BreakContext>
-
visitDoWhileLoop
public ControlFlowVisitor.Result visitDoWhileLoop(DoWhileLoopTree node, com.google.errorprone.refaster.ControlFlowVisitor.BreakContext cxt)
- Specified by:
visitDoWhileLoop
in interfaceTreeVisitor<ControlFlowVisitor.Result,com.google.errorprone.refaster.ControlFlowVisitor.BreakContext>
- Overrides:
visitDoWhileLoop
in classSimpleTreeVisitor<ControlFlowVisitor.Result,com.google.errorprone.refaster.ControlFlowVisitor.BreakContext>
-
visitWhileLoop
public ControlFlowVisitor.Result visitWhileLoop(WhileLoopTree node, com.google.errorprone.refaster.ControlFlowVisitor.BreakContext cxt)
- Specified by:
visitWhileLoop
in interfaceTreeVisitor<ControlFlowVisitor.Result,com.google.errorprone.refaster.ControlFlowVisitor.BreakContext>
- Overrides:
visitWhileLoop
in classSimpleTreeVisitor<ControlFlowVisitor.Result,com.google.errorprone.refaster.ControlFlowVisitor.BreakContext>
-
visitForLoop
public ControlFlowVisitor.Result visitForLoop(ForLoopTree node, com.google.errorprone.refaster.ControlFlowVisitor.BreakContext cxt)
- Specified by:
visitForLoop
in interfaceTreeVisitor<ControlFlowVisitor.Result,com.google.errorprone.refaster.ControlFlowVisitor.BreakContext>
- Overrides:
visitForLoop
in classSimpleTreeVisitor<ControlFlowVisitor.Result,com.google.errorprone.refaster.ControlFlowVisitor.BreakContext>
-
visitEnhancedForLoop
public ControlFlowVisitor.Result visitEnhancedForLoop(EnhancedForLoopTree node, com.google.errorprone.refaster.ControlFlowVisitor.BreakContext cxt)
- Specified by:
visitEnhancedForLoop
in interfaceTreeVisitor<ControlFlowVisitor.Result,com.google.errorprone.refaster.ControlFlowVisitor.BreakContext>
- Overrides:
visitEnhancedForLoop
in classSimpleTreeVisitor<ControlFlowVisitor.Result,com.google.errorprone.refaster.ControlFlowVisitor.BreakContext>
-
visitSwitch
public ControlFlowVisitor.Result visitSwitch(SwitchTree node, com.google.errorprone.refaster.ControlFlowVisitor.BreakContext cxt)
- Specified by:
visitSwitch
in interfaceTreeVisitor<ControlFlowVisitor.Result,com.google.errorprone.refaster.ControlFlowVisitor.BreakContext>
- Overrides:
visitSwitch
in classSimpleTreeVisitor<ControlFlowVisitor.Result,com.google.errorprone.refaster.ControlFlowVisitor.BreakContext>
-
visitCase
public ControlFlowVisitor.Result visitCase(CaseTree node, com.google.errorprone.refaster.ControlFlowVisitor.BreakContext cxt)
- Specified by:
visitCase
in interfaceTreeVisitor<ControlFlowVisitor.Result,com.google.errorprone.refaster.ControlFlowVisitor.BreakContext>
- Overrides:
visitCase
in classSimpleTreeVisitor<ControlFlowVisitor.Result,com.google.errorprone.refaster.ControlFlowVisitor.BreakContext>
-
visitSynchronized
public ControlFlowVisitor.Result visitSynchronized(SynchronizedTree node, com.google.errorprone.refaster.ControlFlowVisitor.BreakContext cxt)
- Specified by:
visitSynchronized
in interfaceTreeVisitor<ControlFlowVisitor.Result,com.google.errorprone.refaster.ControlFlowVisitor.BreakContext>
- Overrides:
visitSynchronized
in classSimpleTreeVisitor<ControlFlowVisitor.Result,com.google.errorprone.refaster.ControlFlowVisitor.BreakContext>
-
visitTry
public ControlFlowVisitor.Result visitTry(TryTree node, com.google.errorprone.refaster.ControlFlowVisitor.BreakContext cxt)
- Specified by:
visitTry
in interfaceTreeVisitor<ControlFlowVisitor.Result,com.google.errorprone.refaster.ControlFlowVisitor.BreakContext>
- Overrides:
visitTry
in classSimpleTreeVisitor<ControlFlowVisitor.Result,com.google.errorprone.refaster.ControlFlowVisitor.BreakContext>
-
visitCatch
public ControlFlowVisitor.Result visitCatch(CatchTree node, com.google.errorprone.refaster.ControlFlowVisitor.BreakContext cxt)
- Specified by:
visitCatch
in interfaceTreeVisitor<ControlFlowVisitor.Result,com.google.errorprone.refaster.ControlFlowVisitor.BreakContext>
- Overrides:
visitCatch
in classSimpleTreeVisitor<ControlFlowVisitor.Result,com.google.errorprone.refaster.ControlFlowVisitor.BreakContext>
-
visitIf
public ControlFlowVisitor.Result visitIf(IfTree node, com.google.errorprone.refaster.ControlFlowVisitor.BreakContext cxt)
- Specified by:
visitIf
in interfaceTreeVisitor<ControlFlowVisitor.Result,com.google.errorprone.refaster.ControlFlowVisitor.BreakContext>
- Overrides:
visitIf
in classSimpleTreeVisitor<ControlFlowVisitor.Result,com.google.errorprone.refaster.ControlFlowVisitor.BreakContext>
-
visitExpressionStatement
public ControlFlowVisitor.Result visitExpressionStatement(ExpressionStatementTree node, com.google.errorprone.refaster.ControlFlowVisitor.BreakContext cxt)
- Specified by:
visitExpressionStatement
in interfaceTreeVisitor<ControlFlowVisitor.Result,com.google.errorprone.refaster.ControlFlowVisitor.BreakContext>
- Overrides:
visitExpressionStatement
in classSimpleTreeVisitor<ControlFlowVisitor.Result,com.google.errorprone.refaster.ControlFlowVisitor.BreakContext>
-
visitLabeledStatement
public ControlFlowVisitor.Result visitLabeledStatement(LabeledStatementTree node, com.google.errorprone.refaster.ControlFlowVisitor.BreakContext cxt)
- Specified by:
visitLabeledStatement
in interfaceTreeVisitor<ControlFlowVisitor.Result,com.google.errorprone.refaster.ControlFlowVisitor.BreakContext>
- Overrides:
visitLabeledStatement
in classSimpleTreeVisitor<ControlFlowVisitor.Result,com.google.errorprone.refaster.ControlFlowVisitor.BreakContext>
-
visitBreak
public ControlFlowVisitor.Result visitBreak(BreakTree node, com.google.errorprone.refaster.ControlFlowVisitor.BreakContext cxt)
- Specified by:
visitBreak
in interfaceTreeVisitor<ControlFlowVisitor.Result,com.google.errorprone.refaster.ControlFlowVisitor.BreakContext>
- Overrides:
visitBreak
in classSimpleTreeVisitor<ControlFlowVisitor.Result,com.google.errorprone.refaster.ControlFlowVisitor.BreakContext>
-
visitContinue
public ControlFlowVisitor.Result visitContinue(ContinueTree node, com.google.errorprone.refaster.ControlFlowVisitor.BreakContext cxt)
- Specified by:
visitContinue
in interfaceTreeVisitor<ControlFlowVisitor.Result,com.google.errorprone.refaster.ControlFlowVisitor.BreakContext>
- Overrides:
visitContinue
in classSimpleTreeVisitor<ControlFlowVisitor.Result,com.google.errorprone.refaster.ControlFlowVisitor.BreakContext>
-
visitReturn
public ControlFlowVisitor.Result visitReturn(ReturnTree node, com.google.errorprone.refaster.ControlFlowVisitor.BreakContext cxt)
- Specified by:
visitReturn
in interfaceTreeVisitor<ControlFlowVisitor.Result,com.google.errorprone.refaster.ControlFlowVisitor.BreakContext>
- Overrides:
visitReturn
in classSimpleTreeVisitor<ControlFlowVisitor.Result,com.google.errorprone.refaster.ControlFlowVisitor.BreakContext>
-
visitThrow
public ControlFlowVisitor.Result visitThrow(ThrowTree node, com.google.errorprone.refaster.ControlFlowVisitor.BreakContext cxt)
- Specified by:
visitThrow
in interfaceTreeVisitor<ControlFlowVisitor.Result,com.google.errorprone.refaster.ControlFlowVisitor.BreakContext>
- Overrides:
visitThrow
in classSimpleTreeVisitor<ControlFlowVisitor.Result,com.google.errorprone.refaster.ControlFlowVisitor.BreakContext>
-
-