void (final @NotNull PyCallExpression node) { final PyExpression callee = node.getCallee(); final var callNodeType = getCalleeNodeType(callee); // Flow abrupted if (callNodeType instanceof NoReturnCallKind) { callee.accept(this); for (PyExpression expression : node.getArguments()) { expression.accept(this); } abruptFlow(node); } else if (callNodeType instanceof TypeGuardCallKind typeGuardCallKind && node.getArguments().length > 0) { expressionToGuards.put(node, typeGuardCallKind.pyFunction); super.visitPyCallExpression(node); } else { super.visitPyCallExpression(node); } if (node.isCalleeText(PyNames.ASSERT_IS_INSTANCE)) { final PyTypeAssertionEvaluator assertionEvaluator = new PyTypeAssertionEvaluator(); node.accept(assertionEvaluator); InstructionBuilder.addAssertInstructions(myBuilder, assertionEvaluator); } }