private static @NotNull Iterable<ResultWithContext> findExplicitDeclarations(@NotNull String name,
                                                                               @NotNull MultiMap<String, PsiClass> ownClasses,
                                                                               @NotNull MultiMap<String, PsiImportStatement> typeImports,
                                                                               @NotNull MultiMap<String, PsiImportStaticStatement> staticImports) {
    List<ResultWithContext> result = new ArrayList<>();
    for (PsiClass psiClass : ownClasses.get(name)) {
      result.add(new ResultWithContext(psiClass, null));
    }
    for (PsiImportStatement statement : typeImports.get(name)) {
      PsiElement target = statement.resolve();
      if (target == null || target instanceof PsiClass) {
        result.add(new ResultWithContext((PsiNamedElement)target, statement));
      }
    }
    for (PsiImportStaticStatement statement : staticImports.get(name)) {
      PsiJavaCodeReferenceElement reference = statement.getImportReference();
      if (reference != null) {
        JavaResolveResult[] targets = reference.multiResolve(false);
        if (targets.length == 0) {
          result.add(new ResultWithContext(null, statement));
        } else {
          for (JavaResolveResult target : targets) {
            PsiElement element = target.getElement();
            if (element instanceof PsiNamedElement) {
              result.add(new ResultWithContext((PsiNamedElement)element, statement));
            }
          }
        }
      }
    }
    return JBIterable.from(result).unique(ResultWithContext::getElement);
  }
private static @NotNull Iterable<ResultWithContext> findExplicitDeclarations(@NotNull String name,
                                                                               @NotNull MultiMap<String, PsiClass> ownClasses,
                                                                               @NotNull MultiMap<String, PsiImportStatement> typeImports,
                                                                               @NotNull MultiMap<String, PsiImportStaticStatement> staticImports)