@Override
    public @NotNull ModCommand perform(@NotNull Project project, @NotNull ProblemDescriptor descriptor) {
      final PsiElement methodNameIdentifier = descriptor.getPsiElement();
      final PsiMethod method = (PsiMethod)methodNameIdentifier.getParent();
      assert method != null;
      final PsiMethod[] superMethods = method.findSuperMethods();
      SearchScope scope = GlobalSearchScope.allScope(project);
      final Collection<PsiReference> references = ReferencesSearch.search(method, scope).findAll();
      return ModCommand.psiUpdate(method, (m, updater) -> {
        List<PsiElement> writableRefs = ContainerUtil.map(references, ref -> updater.getWritable(ref.getElement()));
        for (PsiElement e : writableRefs) {
          PsiReference reference = e.getReference();
          if (reference != null) {
            reference.bindToElement(superMethods[0]);
          }
        }
        m.delete();
      });
    }
@Override
    public @NotNull ModCommand perform(@NotNull Project project, @NotNull ProblemDescriptor descriptor)