boolean (@Nullable GrStatement statement) { if (statement == null) { return true; } if (statement instanceof GrBreakStatement || statement instanceof GrContinueStatement || statement instanceof GrReturnStatement || statement instanceof GrYieldStatement || statement instanceof GrThrowStatement) { return false; } else if (statement instanceof GrForStatement) { return forStatementMayReturnNormally((GrForStatement)statement); } else if (statement instanceof GrWhileStatement) { return whileStatementMayReturnNormally((GrWhileStatement)statement); } else if (statement instanceof GrBlockStatement) { return blockMayCompleteNormally((GrBlockStatement)statement); } else if (statement instanceof GrSynchronizedStatement syncStatement) { return openBlockMayCompleteNormally(syncStatement.getBody()); } else if (statement instanceof GrLabeledStatement) { return labeledStatementMayCompleteNormally((GrLabeledStatement)statement); } else if (statement instanceof GrIfStatement) { return ifStatementMayReturnNormally((GrIfStatement)statement); } else if (statement instanceof GrTryCatchStatement) { return tryStatementMayReturnNormally((GrTryCatchStatement)statement); } else if (statement instanceof GrSwitchStatement) { return switchStatementMayReturnNormally((GrSwitchStatement)statement); } // other statement type else { return true; } }