boolean (GrOpenBlock block, Collection<GrStatement> returnStatements) { if (block == null) return false; GrStatement[] statements = block.getStatements(); if (statements.length == 0) return false; GrStatement last = statements[statements.length - 1]; if (returnStatements.contains(last)) { returnStatements.remove(last); return true; } if (last instanceof GrIfStatement) { return checkTailIfStatement(((GrIfStatement) last), returnStatements); } return false; }