private void visitPyConditionalPartStatements(@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);
    }
  }
private void visitPyConditionalPartStatements(@NotNull PyConditionalStatementPart part,
                                                @NotNull PyTypeAssertionEvaluator assertionEvaluator,
                                                @NotNull PyStatement node)