void (@NotNull PyConditionalStatementPart part, @NotNull PyTypeAssertionEvaluator assertionEvaluator, @NotNull PyStatement node) { final PyStatementList statements = part.getStatementList(); startConditionalNodeAndCheckGuards(statements, part.getCondition(), true); InstructionBuilder.addAssertInstructions(myBuilder, assertionEvaluator); statements.accept(this); if (!(node instanceof PyLoopStatement)) { // outcoming edges will be looped myBuilder.processPending( (pendingScope, instruction) -> { if (pendingScope != null && PsiTreeUtil.isAncestor(statements, pendingScope, false)) { myBuilder.addPendingEdge(node, instruction); } else { myBuilder.addPendingEdge(pendingScope, instruction); } } ); myBuilder.addPendingEdge(node, myBuilder.prevInstruction); } }