@Override
    public void visitPyFunction(@NotNull PyFunction node) {
      final PyClass cls = PyUtil.turnConstructorIntoClass(node);
      if (cls == null || !cls.isNewStyleClass(myTypeEvalContext)) return;

      final List<PyFunction> complementaryMethods = findComplementaryMethods(cls, node);

      for (PyFunction complementaryMethod : complementaryMethods) {
        if (PyUtil.isSignatureCompatibleTo(complementaryMethod, node, myTypeEvalContext) ||
            PyUtil.isSignatureCompatibleTo(node, complementaryMethod, myTypeEvalContext)) {
          return;
        }
      }

      if (complementaryMethods.size() == 1) {
        registerIncompatibilityProblem(node, PythonUiService.getInstance().createPyChangeSignatureQuickFixForMismatchingMethods(
          node, complementaryMethods.get(0)));
      }
      else if (!complementaryMethods.isEmpty()) {
        registerIncompatibilityProblem(node, null);
      }
    }
@Override
    public void visitPyFunction(@NotNull PyFunction node)