public boolean continueADoStatement(ContinueStmt continueStmt, DoStmt doStmt) { for (TryStmt tryStmt : containedTryStmts(continueStmt)) { if (contains(tryStmt.getTryBlock(), continueStmt)) { if (!tryStmt.getFinallyBlock().isPresent() && !canCompleteNormally(tryStmt.getFinallyBlock().get())) { return false; } } } return true; }
public boolean continueADoStatement(ContinueStmt continueStmt, DoStmt doStmt) { for (TryStmt tryStmt : containedTryStmts(continueStmt)) { if (contains(tryStmt.getTryBlock(), continueStmt)) { if (!tryStmt.getFinallyBlock().isPresent() && !canCompleteNormally(tryStmt.getFinallyBlock().get())) { return false; } } } return true; }
public boolean continueADoStatement(ContinueStmt continueStmt, DoStmt doStmt) { for (TryStmt tryStmt : containedTryStmts(continueStmt)) { if (contains(tryStmt.getTryBlock(), continueStmt)) { if (!tryStmt.getFinallyBlock().isPresent() && !canCompleteNormally(tryStmt.getFinallyBlock().get())) { return false; } } } return true; }
/** * A reachable break statement exits a statement if, within the break target, either there are no try statements * whose try blocks contain the break statement, or there are try statements whose try blocks contain the break * statement and all finally clauses of those try statements can complete normally. */ public boolean exitTheStatement(BreakStmt breakStmt) { if (!isReachable(breakStmt)) { return false; } Statement breakTarget = breakTarget(breakStmt); for (TryStmt tryStmt : containedTryStmts(breakTarget)) { if (contains(tryStmt.getTryBlock(), breakStmt)) { if (!tryStmt.getFinallyBlock().isPresent() && !canCompleteNormally(tryStmt.getFinallyBlock().get())) { return false; } } } return true; }
/** * A reachable break statement exits a statement if, within the break target, either there are no try statements * whose try blocks contain the break statement, or there are try statements whose try blocks contain the break * statement and all finally clauses of those try statements can complete normally. */ public boolean exitTheStatement(BreakStmt breakStmt) { if (!isReachable(breakStmt)) { return false; } Statement breakTarget = breakTarget(breakStmt); for (TryStmt tryStmt : containedTryStmts(breakTarget)) { if (contains(tryStmt.getTryBlock(), breakStmt)) { if (!tryStmt.getFinallyBlock().isPresent() && !canCompleteNormally(tryStmt.getFinallyBlock().get())) { return false; } } } return true; }
/** * A reachable break statement exits a statement if, within the break target, either there are no try statements * whose try blocks contain the break statement, or there are try statements whose try blocks contain the break * statement and all finally clauses of those try statements can complete normally. */ public boolean exitTheStatement(BreakStmt breakStmt) { if (!isReachable(breakStmt)) { return false; } Statement breakTarget = breakTarget(breakStmt); for (TryStmt tryStmt : containedTryStmts(breakTarget)) { if (contains(tryStmt.getTryBlock(), breakStmt)) { if (!tryStmt.getFinallyBlock().isPresent() && !canCompleteNormally(tryStmt.getFinallyBlock().get())) { return false; } } } return true; }