void (@NotNull PsiElement element, @NotNull final String newName, @NotNull final Map<? extends PsiElement, String> allRenames, @NotNull final List<UsageInfo> result) { if (element instanceof PsiMethod method) { OverridingMethodsSearch.search(method).forEach(overrider -> { PsiElement original = overrider; if (overrider instanceof PsiMirrorElement) { original = ((PsiMirrorElement)overrider).getPrototype(); } if (original instanceof SyntheticElement) return true; if (original instanceof GrField) { result.add(new FieldNameCollisionInfo((GrField)original, method)); } return true; }); } final ListIterator<UsageInfo> iterator = result.listIterator(); while (iterator.hasNext()) { final UsageInfo info = iterator.next(); final PsiElement ref = info.getElement(); if (ref instanceof GrReferenceExpression || ref == null) continue; if (!RenameUtil.isValidName(element.getProject(), ref, newName)) { iterator.add(new UnresolvableCollisionUsageInfo(ref, element) { @Override public String getDescription() { return RefactoringBundle.message("0.is.not.an.identifier", newName, ref.getText()); } }); } } }