void (final PsiElement scope, final PsiElement first, final PsiElement last, final PairConsumer<? super PsiElement, ? super PsiElement> result) { final PsiElement[] children = getFilteredChildren(scope, null, true); NextChild: for (int i = 0; i < children.length;) { PsiElement child = children[i]; if (child != first) { int j = i; PsiElement next = first; while (areElementsEquivalent(children[j], next)) { j++; if (next == last) { result.consume(child, children[j - 1]); i = j + 1; continue NextChild; } next = PsiTreeUtil.skipWhitespacesForward(next); } if (i == j) { addRangeDuplicates(child, first, last, result); } } i++; } }