void (@NotNull PsiElement expr, @NotNull PsiElement scope, @NotNull ArrayList<? super PsiElement> acc, BiPredicate<PsiElement, PsiElement> comparator, boolean goIntoInner) { if (scope.equals(expr)) { acc.add(expr); return; } for (PsiElement child : scope.getChildren()) { if (goIntoInner || !(child instanceof GrTypeDefinition) && !(child instanceof GrMethod && scope instanceof GroovyFileBase)) { if (PsiEquivalenceUtil.areEquivalent(child, expr, comparator, false)) { acc.add(child); } else { collectOccurrences(expr, child, acc, comparator, goIntoInner); } } } }