private static boolean processVectorAliasSymbols()

in src/java/org/jetbrains/plugins/clojure/psi/impl/ImportOwner.java [301:326]


  private static boolean processVectorAliasSymbols(PsiScopeProcessor processor, ClVector vector, ClSymbol firstSymbol) {
    for (PsiElement child : vector.getChildren()) {
      if (child instanceof ClKeyword && ((ClKeyword) child).getName().equals(ClojureKeywords.AS)) {
        NameHint nameHint = processor.getHint(NameHint.KEY);
        final PsiElement symbol = ClojurePsiUtil.getNextNonWhiteSpace(child);
        if (symbol instanceof ClSymbol) {
          String alias = nameHint == null ? null : nameHint.getName(ResolveState.initial());
          final String aliasName = ((ClSymbol) symbol).getName();
          if (alias != null && alias.equals(aliasName)) {
            for (ResolveResult result : firstSymbol.multiResolve(false)) {
              final PsiElement element = result.getElement();
              if (element instanceof PsiNamedElement) {
                PsiNamedElement namedElement = (PsiNamedElement) element;
                return processor.execute(namedElement, ResolveState.initial());
              }
            }
          } else if (nameHint == null) {
            if (!processor.execute(symbol, ResolveState.initial())) return false;
          }
        }
        break;
      }
    }

    return true;
  }