in src/java/org/jetbrains/plugins/clojure/psi/impl/ClojureFileImpl.java [290:321]
public boolean processDeclarations(@NotNull PsiScopeProcessor processor, @NotNull ResolveState state, PsiElement lastParent, @NotNull PsiElement place) {
//Process precedent read forms
ResolveUtil.processChildren(this, processor, state, lastParent, place);
final JavaPsiFacade facade = JavaPsiFacade.getInstance(getProject());
// Add all java.lang classes
final PsiPackage javaLang = facade.findPackage(ClojurePsiUtil.JAVA_LANG);
if (javaLang != null) {
for (PsiClass clazz : javaLang.getClasses()) {
if (!ResolveUtil.processElement(processor, clazz)) {
return false;
}
}
}
//Add top-level package names
final PsiPackage rootPackage = JavaPsiFacade.getInstance(getProject()).findPackage("");
if (rootPackage != null) {
NamespaceUtil.getNamespaceElement(rootPackage).processDeclarations(processor, state, null, place);
}
// Add all symbols from default namespaces
for (PsiNamedElement element : NamespaceUtil.getDefaultDefinitions(getProject())) {
if (PsiTreeUtil.findCommonParent(element, place) != element && !ResolveUtil.processElement(processor, element)) {
return false;
}
}
return super.processDeclarations(processor, state, lastParent, place);
}