From 32d2e5d36c5255b1f682e6c0c16ba3a69b7f82ef Mon Sep 17 00:00:00 2001 From: "Roman.Ivanov" Date: Thu, 28 Jun 2018 15:08:35 +0700 Subject: [PATCH] CreateTypeParameterFromUsage: do not suggest fix in new expr IDEA-194610 --- .../impl/quickfix/CreateTypeParameterFromUsageFix.java | 7 ++++++- .../createTypeParameterFromUsage/beforeNewExpr.java | 7 +++++++ 2 files changed, 13 insertions(+), 1 deletion(-) create mode 100644 java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/createTypeParameterFromUsage/beforeNewExpr.java diff --git a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/CreateTypeParameterFromUsageFix.java b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/CreateTypeParameterFromUsageFix.java index e78280c64a87..8b177745d49d 100644 --- a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/CreateTypeParameterFromUsageFix.java +++ b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/CreateTypeParameterFromUsageFix.java @@ -162,7 +162,12 @@ public class CreateTypeParameterFromUsageFix extends BaseIntentionAction { if (!PsiUtil.isLanguageLevel5OrHigher(element)) return null; if (element.isQualified()) return null; PsiElement parent = element.getParent(); - if (parent instanceof PsiMethodCallExpression || parent instanceof PsiJavaCodeReferenceElement || element instanceof PsiReferenceExpression) return null; + if (parent instanceof PsiMethodCallExpression || + parent instanceof PsiJavaCodeReferenceElement || + parent instanceof PsiNewExpression || + element instanceof PsiReferenceExpression) { + return null; + } List candidates = collectParentClassesAndMethodsUntilStatic(element, findFirstOnly); if (candidates.isEmpty()) return null; String name = element.getReferenceName(); diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/createTypeParameterFromUsage/beforeNewExpr.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/createTypeParameterFromUsage/beforeNewExpr.java new file mode 100644 index 000000000000..e6feb9da1d72 --- /dev/null +++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/createTypeParameterFromUsage/beforeNewExpr.java @@ -0,0 +1,7 @@ +// "Create type parameter 'B'" "false" + +class A { + public static void main(String[] args) { + new A().new B(); + } +} \ No newline at end of file