From d3e16bb623b75f19b7e5cce33458684e25e1284d Mon Sep 17 00:00:00 2001 From: Alexandr Suhinin Date: Mon, 14 Dec 2020 11:04:56 +0200 Subject: [PATCH] IDEA-257697: don't suggest `Pull Members Up` in `Refactor This` popup if there is no super class GitOrigin-RevId: 2fccf23464b85bf7d578e79b64bc7a27193a79b4 --- .../refactoring/memberPullUp/JavaPullUpHandler.java | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/java/java-impl/src/com/intellij/refactoring/memberPullUp/JavaPullUpHandler.java b/java/java-impl/src/com/intellij/refactoring/memberPullUp/JavaPullUpHandler.java index 09ba2a42460c..c2bd885b7a5f 100644 --- a/java/java-impl/src/com/intellij/refactoring/memberPullUp/JavaPullUpHandler.java +++ b/java/java-impl/src/com/intellij/refactoring/memberPullUp/JavaPullUpHandler.java @@ -29,6 +29,7 @@ import com.intellij.refactoring.util.classMembers.MemberInfoStorage; import com.intellij.util.SmartList; import com.intellij.util.containers.MultiMap; import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; import java.util.List; @@ -44,7 +45,15 @@ public class JavaPullUpHandler implements RefactoringActionHandler, PullUpDialog @Override public boolean isAvailableForQuickList(@NotNull Editor editor, @NotNull PsiFile file, @NotNull DataContext dataContext) { - return !getElements(editor, file, true).isEmpty(); + List elements = getElements(editor, file, true); + if (elements.isEmpty()) return false; + return isClassWithExtends(PsiTreeUtil.getParentOfType(elements.get(0), PsiClass.class, false)); + } + + private static boolean isClassWithExtends(@Nullable PsiClass psiClass){ + if (psiClass == null) return false; + PsiReferenceList extendsList = psiClass.getExtendsList(); + return extendsList != null && extendsList.getReferenceElements().length > 0; } @Override