From 3a272301128ad47de5ee1fedf36b1853fdfd321b Mon Sep 17 00:00:00 2001 From: Anna Kozlova Date: Mon, 8 Jun 2020 08:42:21 +0200 Subject: [PATCH] java: redundant explicit types: do not check parent call when expected type is known (IDEA-242819) GitOrigin-RevId: c1df310c5834f632a02c09adf5126c7c75a3de81 --- .../com/intellij/psi/impl/PsiDiamondTypeUtil.java | 4 ++++ .../explicit2diamond/afterExpectedTypeJava1.7.java | 12 ++++++++++++ .../explicit2diamond/beforeExpectedTypeJava1.7.java | 12 ++++++++++++ 3 files changed, 28 insertions(+) create mode 100644 java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/explicit2diamond/afterExpectedTypeJava1.7.java create mode 100644 java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/explicit2diamond/beforeExpectedTypeJava1.7.java diff --git a/java/java-psi-impl/src/com/intellij/psi/impl/PsiDiamondTypeUtil.java b/java/java-psi-impl/src/com/intellij/psi/impl/PsiDiamondTypeUtil.java index dcd510084428..65546943498b 100644 --- a/java/java-psi-impl/src/com/intellij/psi/impl/PsiDiamondTypeUtil.java +++ b/java/java-psi-impl/src/com/intellij/psi/impl/PsiDiamondTypeUtil.java @@ -239,6 +239,10 @@ public class PsiDiamondTypeUtil { } } + if (typeByParent != null) { + return true; + } + PsiCallExpression newParentCall = exprCopy != null ? PsiTreeUtil.getParentOfType(exprCopy, PsiCallExpression.class) : null; PsiCallExpression oldParentCall = PsiTreeUtil.getParentOfType(context, PsiCallExpression.class); if (newParentCall != null && oldParentCall != null && diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/explicit2diamond/afterExpectedTypeJava1.7.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/explicit2diamond/afterExpectedTypeJava1.7.java new file mode 100644 index 000000000000..be0aa0f654d8 --- /dev/null +++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/explicit2diamond/afterExpectedTypeJava1.7.java @@ -0,0 +1,12 @@ +// "Replace with <>" "true" +import java.util.*; + +class MyTest { + private static void foo() { + Map> radinv = new TreeMap<>(); + List idxs = null; + radinv.put("null", idxs = new ArrayList<>()); + } + + +} diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/explicit2diamond/beforeExpectedTypeJava1.7.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/explicit2diamond/beforeExpectedTypeJava1.7.java new file mode 100644 index 000000000000..f41ebff480b9 --- /dev/null +++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/explicit2diamond/beforeExpectedTypeJava1.7.java @@ -0,0 +1,12 @@ +// "Replace with <>" "true" +import java.util.*; + +class MyTest { + private static void foo() { + Map> radinv = new TreeMap<>(); + List idxs = null; + radinv.put("null", idxs = new ArrayListeger>()); + } + + +}