diff --git a/java/java-impl/src/com/intellij/refactoring/inline/InlineToAnonymousClassHandler.java b/java/java-impl/src/com/intellij/refactoring/inline/InlineToAnonymousClassHandler.java index 217fe1902f11..cb211400ab47 100644 --- a/java/java-impl/src/com/intellij/refactoring/inline/InlineToAnonymousClassHandler.java +++ b/java/java-impl/src/com/intellij/refactoring/inline/InlineToAnonymousClassHandler.java @@ -203,6 +203,9 @@ public class InlineToAnonymousClassHandler extends JavaInlineActionHandler { @Nullable public static String getCannotInlineMessage(final PsiClass psiClass) { + if (psiClass instanceof PsiTypeParameter) { + return "Type parameters cannot be inlined"; + } if (psiClass.isAnnotationType()) { return "Annotation types cannot be inlined"; } diff --git a/java/java-tests/testData/refactoring/inlineToAnonymousClass/NoInlineTypeParameter.java b/java/java-tests/testData/refactoring/inlineToAnonymousClass/NoInlineTypeParameter.java new file mode 100644 index 000000000000..e40cf2fa1541 --- /dev/null +++ b/java/java-tests/testData/refactoring/inlineToAnonymousClass/NoInlineTypeParameter.java @@ -0,0 +1,4 @@ +class B{} +class A<T> extends B { + A a; +} \ No newline at end of file diff --git a/java/java-tests/testSrc/com/intellij/refactoring/inline/InlineToAnonymousClassTest.java b/java/java-tests/testSrc/com/intellij/refactoring/inline/InlineToAnonymousClassTest.java index b27f7d28b0f3..2511fcee81da 100644 --- a/java/java-tests/testSrc/com/intellij/refactoring/inline/InlineToAnonymousClassTest.java +++ b/java/java-tests/testSrc/com/intellij/refactoring/inline/InlineToAnonymousClassTest.java @@ -332,6 +332,10 @@ public class InlineToAnonymousClassTest extends LightRefactoringTestCase { doTestNoInline("Library classes cannot be inlined"); } + public void testNoInlineTypeParameter() throws Exception { + doTestNoInline("Type parameters cannot be inlined"); + } + public void testNoInlineNoUsages() throws Exception { doTestPreprocessUsages("Class is never used"); }