private static boolean isConstructorCall(@NotNull PyCallExpression call, @NotNull PyClass cls, @NotNull TypeEvalContext context) {
        final PyExpression callee = call.getCallee();

        if (callee == null || !INIT.equals(callee.getName())) {
          return false;
        }

        final PyExpression calleeQualifier = Optional
          .of(callee)
          .filter(PyQualifiedExpression.class::isInstance)
          .map(PyQualifiedExpression.class::cast)
          .map(PyQualifiedExpression::getQualifier)
          .orElse(null);

        return calleeQualifier != null && (isSuperCall(calleeQualifier, cls, context) || isSuperClassCall(calleeQualifier, cls, context));
      }
private static boolean isConstructorCall(@NotNull PyCallExpression call, @NotNull PyClass cls, @NotNull TypeEvalContext context)