List<Instruction> (@NotNull List<Instruction> instructions) { List<Instruction> simplified = new ArrayList<>(); for (Instruction instruction : instructions) { Check check = tryCast(instruction, Check.class); if (check != null && !check.hasElseBranch()) check.myInstructions = run(check.myInstructions); simplified.add(instruction); if (instruction instanceof Return || instruction instanceof Throw) return simplified; } return simplified; }