From f2ebc25583986ac01941f28cca610e4141bbd4e3 Mon Sep 17 00:00:00 2001 From: Anna Kozlova Date: Fri, 29 May 2015 17:08:31 +0200 Subject: [PATCH] disable inline to anonymous for type params (IDEA-140846) --- .../refactoring/inline/InlineToAnonymousClassHandler.java | 3 +++ .../inlineToAnonymousClass/NoInlineTypeParameter.java | 4 ++++ .../refactoring/inline/InlineToAnonymousClassTest.java | 4 ++++ 3 files changed, 11 insertions(+) create mode 100644 java/java-tests/testData/refactoring/inlineToAnonymousClass/NoInlineTypeParameter.java 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"); }