void (final @NotNull PyFunction function) { final PyClass cls = function.getContainingClass(); if (cls == null) return; if (PyUtil.isInitOrNewMethod(function) || PyKnownDecoratorUtil.hasUnknownOrChangingSignatureDecorator(function, myTypeEvalContext) || ContainerUtil.exists(PyInspectionExtension.EP_NAME.getExtensions(), e -> e.ignoreMethodParameters(function, myTypeEvalContext))) { return; } for (PsiElement psiElement : PySuperMethodsSearch.search(function, myTypeEvalContext)) { if (psiElement instanceof PyFunction baseMethod) { if (!PyUtil.isSignatureCompatibleTo(function, baseMethod, myTypeEvalContext)) { final PyClass baseClass = baseMethod.getContainingClass(); final String msg = PyPsiBundle.message("INSP.signature.mismatch", cls.getName() + "." + function.getName() + "()", baseClass != null ? baseClass.getName() : ""); registerProblem(function.getParameterList(), msg, PythonUiService.getInstance().createPyChangeSignatureQuickFixForMismatchingMethods(function, baseMethod)); } } } }