IJ-CR-4613 refactor this: suggest pull member up to interface & clarify test names

GitOrigin-RevId: 6276c4c7c7ecf78261354e52760dcb6a47982b89
This commit is contained in:
Alexandr Suhinin
2020-12-30 15:56:00 +00:00
committed by intellij-monorepo-bot
parent 8053ebb072
commit 27d949bafb
5 changed files with 18 additions and 7 deletions
@@ -47,13 +47,13 @@ public class JavaPullUpHandler implements RefactoringActionHandler, PullUpDialog
public boolean isAvailableForQuickList(@NotNull Editor editor, @NotNull PsiFile file, @NotNull DataContext dataContext) {
List<PsiElement> elements = getElements(editor, file, true);
if (elements.isEmpty()) return false;
return isClassWithExtends(PsiTreeUtil.getParentOfType(elements.get(0), PsiClass.class, false));
PsiClass psiClass = PsiTreeUtil.getParentOfType(elements.get(0), PsiClass.class, false);
if (psiClass == null) return false;
return isNotEmpty(psiClass.getExtendsList()) || isNotEmpty(psiClass.getImplementsList());
}
private static boolean isClassWithExtends(@Nullable PsiClass psiClass){
if (psiClass == null) return false;
PsiReferenceList extendsList = psiClass.getExtendsList();
return extendsList != null && extendsList.getReferenceElements().length > 0;
private static boolean isNotEmpty(@Nullable PsiReferenceList referenceList){
return referenceList != null && referenceList.getReferenceElements().length > 0;
}
@Override
@@ -0,0 +1,7 @@
interface A { }
class B implements A {
void <caret>test() {
System.out.println();
}
}
@@ -11,11 +11,15 @@ import org.jetbrains.annotations.NonNls
class RefactorThisTest: LightJavaCodeInsightTestCase() {
private val BASE_PATH: @NonNls String = "/refactoring/refactorThis"
fun testPullMembersUp() {
fun testPullMembersUpWithExtends() {
assertTrue(doActionExists<PullUpAction>())
}
fun testPullMembersUp1() {
fun testPullMembersUpWithImplements() {
assertTrue(doActionExists<PullUpAction>())
}
fun testPullMembersUpFiltered() {
assertFalse(doActionExists<PullUpAction>())
}