@Override
    public void visitPyFunction(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));
          }
        }
      }
    }
@Override
    public void visitPyFunction(final @NotNull PyFunction function)