visit

open fun visit(breakStmt: BreakStmt, unused: Void): Boolean(source)

A break statement cannot complete normally.


open fun visit(continueStmt: ContinueStmt, unused: Void): Boolean(source)

A continue statement cannot complete normally.


open fun visit(returnStmt: ReturnStmt, unused: Void): Boolean(source)

A return statement cannot complete normally.


open fun visit(throwStmt: ThrowStmt, unused: Void): Boolean(source)

A throw statement cannot complete normally.


open fun visit(yieldStmt: YieldStmt, unused: Void): Boolean(source)

A yield statement cannot complete normally.


open fun visit(block: BlockStmt, unused: Void): Boolean(source)

An empty block that is not a switch block can complete normally iff it is reachable. A non-empty block that is not a switch block can complete normally iff the last statement in it can complete normally. The first statement in a non-empty block that is not a switch block is reachable iff the block is reachable. Every other statement S in a non-empty block that is not a switch block is reachable iff the statement preceding S can complete normally.


open fun visit(labeledStmt: LabeledStmt, unused: Void): Boolean(source)

A labeled statement can complete normally if at least one of the following is true: - The contained statement can complete normally. - There is a reachable break statement that exits the labeled statement.


open fun visit(ifStmt: IfStmt, unused: Void): Boolean(source)

An if-then statement can complete normally iff it is reachable. An if-then-else statement can complete normally iff the then-statement can complete normally or the else-statement can complete normally.


open fun visit(whileStmt: WhileStmt, unused: Void): Boolean(source)

A while statement can complete normally iff at least one of the following is true: - The while statement is reachable and the condition expression is not a constant expression with value true. - There is a reachable break statement that exits the while statement.


open fun visit(doStmt: DoStmt, unused: Void): Boolean(source)

A do statement can complete normally iff at least one of the following is true: - The contained statement can complete normally and the condition expression is not a constant expression with value true. - The do statement contains a reachable continue statement with no label, and the do statement is the innermost while, do, or for statement that contains that continue statement, and the continue statement continues that do statement, and the condition expression is not a constant expression with value true. - The do statement contains a reachable continue statement with label L, and the do statement has label L, and the continue statement continues that do statement, and the condition expression is not a constant expression with value true. - There is a reachable break statement that exits the do statement.


open fun visit(forStmt: ForStmt, unused: Void): Boolean(source)

A basic for statement can complete normally iff at least one of the following is true: - The for statement is reachable, there is a condition expression, and the condition expression is not a constant expression with value true. - There is a reachable break statement that exits the for statement.


open fun visit(synchronizedStmt: SynchronizedStmt, unused: Void): Boolean(source)

A synchronized statement can complete normally iff the contained statement can complete normally.


open fun visit(tryStmt: TryStmt, unused: Void): Boolean(source)

A try statement can complete normally iff both of the following are true: - The try block can complete normally or any catch block can complete normally. - If the try statement has a finally block, then the finally block can complete normally.


open fun visit(switchStmt: SwitchStmt, unused: Void): Boolean(source)

A switch statement whose switch block is empty, or contains only switch labels, can complete normally. A switch statement whose switch block consists of switch labeled statement groups can complete normally iff at least one of the following is true: - The last statement in the switch block can complete normally. - There is at least one switch label after the last switch block statement group. - There is a reachable break statement that exits the switch statement. - The switch statement is not enhanced and its switch block does not contain a default label. A switch statement whose switch block consists of switch rules can complete normally iff at least one of the following is true: - One of the switch rules introduces a switch rule expression (which is necessarily a statement expression). - One of the switch rules introduces a switch rule block that can complete normally. - One of the switch rules introduces a switch rule block that contains a reachable break statement which exits the switch statement. - The switch statement is not enhanced and its switch block does not contain a default label.