@Override
  @Nullable
  default PyAstExpression getReceiver(@Nullable PyAstCallable resolvedCallee) {
    if (resolvedCallee instanceof PyAstFunction function) {
      if (!PyNames.NEW.equals(function.getName()) && function.getModifier() == PyAstFunction.Modifier.STATICMETHOD) {
        return null;
      }
    }

    final PyAstExpression callee = getCallee();
    if (callee != null && isImplicitlyInvokedMethod(resolvedCallee) && !Objects.equals(resolvedCallee.getName(), callee.getName())) {
      return callee;
    }

    if (callee instanceof PyAstQualifiedExpression) {
      return ((PyAstQualifiedExpression)callee).getQualifier();
    }

    return null;
  }
@Override
  @Nullable
  default PyAstExpression getReceiver(@Nullable PyAstCallable resolvedCallee)