@Override
  public void prepareRenaming(@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;
          }
        }

        PsiMember realMember = overrider instanceof LightRecordMethod lrm ? lrm.getRecordComponent() : overrider;
        if (realMember instanceof SyntheticElement) continue;

        final String overriderName = realMember.getName();
        final String baseName = sibling.getName();
        final String newOverriderName = RefactoringUtil.suggestNewOverriderName(overriderName, baseName, newName);
        if (newOverriderName != null) {
          RenameUtil.assertNonCompileElement(realMember);
          allRenames.put(realMember, newOverriderName);
        }
      }
    }
  }
@Override
  public void prepareRenaming(@NotNull PsiElement element, @NotNull final String newName, @NotNull final Map<PsiElement, String> allRenames, @NotNull SearchScope scope)