diff --git a/java/java-impl/src/com/intellij/refactoring/safeDelete/usageInfo/SafeDeleteExtendsClassUsageInfo.java b/java/java-impl/src/com/intellij/refactoring/safeDelete/usageInfo/SafeDeleteExtendsClassUsageInfo.java index 4b586aa979b1..596df66375e4 100644 --- a/java/java-impl/src/com/intellij/refactoring/safeDelete/usageInfo/SafeDeleteExtendsClassUsageInfo.java +++ b/java/java-impl/src/com/intellij/refactoring/safeDelete/usageInfo/SafeDeleteExtendsClassUsageInfo.java @@ -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; diff --git a/java/java-tests/testData/refactoring/inlineSuperClass/typeParameterBound/after/Super.java b/java/java-tests/testData/refactoring/inlineSuperClass/typeParameterBound/after/Super.java new file mode 100644 index 000000000000..f0c2064481b6 --- /dev/null +++ b/java/java-tests/testData/refactoring/inlineSuperClass/typeParameterBound/after/Super.java @@ -0,0 +1,2 @@ +interface Int { +} diff --git a/java/java-tests/testData/refactoring/inlineSuperClass/typeParameterBound/after/Test.java b/java/java-tests/testData/refactoring/inlineSuperClass/typeParameterBound/after/Test.java new file mode 100644 index 000000000000..57debb255ebd --- /dev/null +++ b/java/java-tests/testData/refactoring/inlineSuperClass/typeParameterBound/after/Test.java @@ -0,0 +1,4 @@ +abstract class Test implements Runnable { + void m() { + } +} \ No newline at end of file diff --git a/java/java-tests/testData/refactoring/inlineSuperClass/typeParameterBound/before/Super.java b/java/java-tests/testData/refactoring/inlineSuperClass/typeParameterBound/before/Super.java new file mode 100644 index 000000000000..5cad93fa93a4 --- /dev/null +++ b/java/java-tests/testData/refactoring/inlineSuperClass/typeParameterBound/before/Super.java @@ -0,0 +1,4 @@ +interface Int { +} +abstract class Super implements Runnable { +} diff --git a/java/java-tests/testData/refactoring/inlineSuperClass/typeParameterBound/before/Test.java b/java/java-tests/testData/refactoring/inlineSuperClass/typeParameterBound/before/Test.java new file mode 100644 index 000000000000..6c08bc994ab4 --- /dev/null +++ b/java/java-tests/testData/refactoring/inlineSuperClass/typeParameterBound/before/Test.java @@ -0,0 +1,4 @@ +abstract class Test extends Super { + void m() { + } +} \ No newline at end of file diff --git a/java/java-tests/testSrc/com/intellij/refactoring/InlineSuperClassTest.java b/java/java-tests/testSrc/com/intellij/refactoring/InlineSuperClassTest.java index 658f41934f9d..043874000c2b 100644 --- a/java/java-tests/testSrc/com/intellij/refactoring/InlineSuperClassTest.java +++ b/java/java-tests/testSrc/com/intellij/refactoring/InlineSuperClassTest.java @@ -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);