void (@NotNull PyCallExpression node) { if (node.isCalleeText(PyNames.ISINSTANCE, PyNames.ASSERT_IS_INSTANCE)) { final PyExpression[] args = node.getArguments(); if (args.length == 2 && args[0] instanceof PyReferenceExpression target) { final PyExpression typeElement = args[1]; pushAssertion(target, myPositive, false, context -> context.getType(typeElement), typeElement); } } else if (node.isCalleeText(PyNames.CALLABLE_BUILTIN)) { final PyExpression[] args = node.getArguments(); if (args.length == 1 && args[0] instanceof PyReferenceExpression target) { pushAssertion(target, myPositive, false, context -> PyTypingTypeProvider.createTypingCallableType(node), null); } } else if (node.isCalleeText(PyNames.ISSUBCLASS)) { final PyExpression[] args = node.getArguments(); if (args.length == 2 && args[0] instanceof PyReferenceExpression target) { final PyExpression typeElement = args[1]; pushAssertion(target, myPositive, true, context -> context.getType(typeElement), typeElement); } } }