boolean (@NotNull PsiElement thisElement, @NotNull PsiScopeProcessor processor, @NotNull ResolveState state, PsiElement lastParent, PsiElement place) { PsiElement child = null; if (lastParent != null && lastParent.getParent() == thisElement) { child = lastParent.getPrevSibling(); if (child == null) return true; // first element } if (child == null) { child = thisElement.getLastChild(); } while (child != null) { if (!child.processDeclarations(processor, state, null, place)) return false; child = child.getPrevSibling(); } return true; }