void (@NotNull PsiElement element, @NotNull final String newName, @NotNull final Map<PsiElement, String> allRenames, @NotNull SearchScope scope) { final PsiMethod method = (PsiMethod) element; PsiMethod[] siblings = method.getUserData(SuperMethodWarningUtil.SIBLINGS); if (siblings == null) { siblings = new PsiMethod[] {method}; } for (PsiMethod sibling : siblings) { //append all super methods if (sibling != method) { allRenames.put(sibling, newName); } Collection<PsiMethod> allOverriders = ProgressManager.getInstance().runProcessWithProgressSynchronously( () -> OverridingMethodsSearch.search(sibling, scope, true).findAll(), RefactoringBundle.message("searching.for.overrides"), true, element.getProject() ); for (PsiMethod overrider : allOverriders) { if (overrider instanceof PsiMirrorElement) { final PsiElement prototype = ((PsiMirrorElement)overrider).getPrototype(); if (prototype instanceof PsiMethod) { overrider = (PsiMethod)prototype; } } if (overrider instanceof SyntheticElement) continue; final String overriderName = overrider.getName(); final String baseName = sibling.getName(); final String newOverriderName = RefactoringUtil.suggestNewOverriderName(overriderName, baseName, newName); if (newOverriderName != null) { RenameUtil.assertNonCompileElement(overrider); allRenames.put(overrider, newOverriderName); } } } }