private static boolean superHasNonAbstractConstructor(@NotNull PyClass cls, @NotNull TypeEvalContext context) {
      final String className = cls.getName();

      for (PyClass baseClass : cls.getAncestorClasses(context)) {
        if (!PyUtil.isObjectClass(baseClass) &&
            !Objects.equals(className, baseClass.getName())) {
          var initMethod = baseClass.findMethodByName(INIT, false, context);
          if (initMethod != null && !PyKnownDecoratorUtil.hasAbstractDecorator(initMethod, context)) {
            return true;
          }
        }
      }

      return false;
    }
private static boolean superHasNonAbstractConstructor(@NotNull PyClass cls, @NotNull TypeEvalContext context)