@NotNull
  private static List<@NotNull PyCallableType> getImplicitResolveResults(@NotNull PyCallExpression call,
                                                                         @NotNull PyResolveContext resolveContext) {
    if (!resolveContext.allowImplicits()) return Collections.emptyList();

    final PyExpression callee = call.getCallee();
    final TypeEvalContext context = resolveContext.getTypeEvalContext();
    if (callee instanceof PyQualifiedExpression qualifiedCallee) {
      final String referencedName = qualifiedCallee.getReferencedName();
      if (referencedName == null) return Collections.emptyList();

      final PyExpression qualifier = qualifiedCallee.getQualifier();
      if (qualifier == null || !canQualifyAnImplicitName(qualifier)) return Collections.emptyList();

      final PyType qualifierType = context.getType(qualifier);
      if (PyTypeChecker.isUnknown(qualifierType, context) ||
          qualifierType instanceof PyStructuralType && ((PyStructuralType)qualifierType).isInferredFromUsages()) {
        final ResolveResultList resolveResults = new ResolveResultList();
        PyResolveUtil.addImplicitResolveResults(referencedName, resolveResults, qualifiedCallee);

        return selectCallableTypes(forEveryScopeTakeOverloadsOtherwiseImplementations(resolveResults, context), context);
      }
    }

    return Collections.emptyList();
  }
@NotNull
  private static List<@NotNull PyCallableType> getImplicitResolveResults(@NotNull PyCallExpression call,
                                                                         @NotNull PyResolveContext resolveContext)