void (@NotNull PyBinaryExpression node, @NotNull PyExpression subExpression, @Nullable PyTypeAssertionEvaluator previousAssertionEvaluator, @Nullable PyTypeAssertionEvaluator assertionEvaluator, boolean conditionResultToContinue) { if (previousAssertionEvaluator != null) { InstructionBuilder.addAssertInstructions(myBuilder, previousAssertionEvaluator); } subExpression.accept(this); if (assertionEvaluator != null) { subExpression.accept(assertionEvaluator); } final var branchingPoint = myBuilder.prevInstruction; final var outside = new ConditionalInstructionImpl(myBuilder, null, subExpression, !conditionResultToContinue); myBuilder.addNode(outside); addTypeGuardAssertions(subExpression, !conditionResultToContinue); myBuilder.addPendingEdge(node, myBuilder.prevInstruction); myBuilder.prevInstruction = branchingPoint; final var toTheNext = new ConditionalInstructionImpl(myBuilder, null, subExpression, conditionResultToContinue); addTypeGuardAssertions(subExpression, conditionResultToContinue); myBuilder.addNode(toTheNext); }