mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
inline super: append implements cases to extends list of type parameter (IDEA-149230)
This commit is contained in:
+1
-1
@@ -47,7 +47,7 @@ public class SafeDeleteExtendsClassUsageInfo extends SafeDeleteReferenceUsageInf
|
||||
final PsiElementFactory elementFactory = JavaPsiFacade.getInstance(refClass.getProject()).getElementFactory();
|
||||
|
||||
final PsiReferenceList extendsList = refClass.getExtendsList();
|
||||
final PsiReferenceList extendingImplementsList = myExtendingClass.getImplementsList();
|
||||
final PsiReferenceList extendingImplementsList = myExtendingClass instanceof PsiTypeParameter ? myExtendingClass.getExtendsList() : myExtendingClass.getImplementsList();
|
||||
if (extendsList != null) {
|
||||
final PsiClassType[] referenceTypes = extendsList.getReferencedTypes();
|
||||
final PsiReferenceList listToAddExtends = refClass.isInterface() == myExtendingClass.isInterface() || myExtendingClass instanceof PsiTypeParameter ? myExtendingClass.getExtendsList() : extendingImplementsList;
|
||||
|
||||
+2
@@ -0,0 +1,2 @@
|
||||
interface Int<T> {
|
||||
}
|
||||
+4
@@ -0,0 +1,4 @@
|
||||
abstract class Test implements Runnable {
|
||||
<T extends Runnable> void m() {
|
||||
}
|
||||
}
|
||||
+4
@@ -0,0 +1,4 @@
|
||||
interface Int<T> {
|
||||
}
|
||||
abstract class Super implements Runnable {
|
||||
}
|
||||
+4
@@ -0,0 +1,4 @@
|
||||
abstract class Test extends Super {
|
||||
<T extends Super> void m() {
|
||||
}
|
||||
}
|
||||
@@ -16,7 +16,6 @@
|
||||
package com.intellij.refactoring;
|
||||
|
||||
import com.intellij.JavaTestUtil;
|
||||
import com.intellij.openapi.vfs.VirtualFile;
|
||||
import com.intellij.psi.PsiClass;
|
||||
import com.intellij.psi.search.GlobalSearchScope;
|
||||
import com.intellij.refactoring.inlineSuperClass.InlineSuperClassRefactoringProcessor;
|
||||
@@ -70,6 +69,7 @@ public class InlineSuperClassTest extends MultiFileTestCase {
|
||||
public void testMultipleSubclassesInheritsOneBaseBase() { doTestMultipleSubclasses(); }
|
||||
public void testInlineSuperclassExtendsList() { doTest(); }
|
||||
public void testInterfaceHierarchyWithSubstitution() { doTest(); }
|
||||
public void testTypeParameterBound() { doTest();}
|
||||
|
||||
private void doTest() {
|
||||
doTest(false, false);
|
||||
|
||||
Reference in New Issue
Block a user