From 85f72bfc0fee76db241fa1555592f1c710b56d32 Mon Sep 17 00:00:00 2001 From: Tagir Valeev Date: Fri, 15 Nov 2019 14:33:14 +0700 Subject: [PATCH] testResolveDiamondBeforeOuterCall (fails if new expression type is requested before highlighting) GitOrigin-RevId: b01abb3fbbebe28e3115aa109005851b62a02e7b --- .../expressions/ResolveDiamondBeforeOuterCall.java | 12 ++++++++++++ .../daemon/lambda/Java8ExpressionsCheckTest.java | 10 ++++++++++ 2 files changed, 22 insertions(+) create mode 100644 java/java-tests/testData/codeInsight/daemonCodeAnalyzer/lambda/expressions/ResolveDiamondBeforeOuterCall.java diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/lambda/expressions/ResolveDiamondBeforeOuterCall.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/lambda/expressions/ResolveDiamondBeforeOuterCall.java new file mode 100644 index 000000000000..ede774083501 --- /dev/null +++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/lambda/expressions/ResolveDiamondBeforeOuterCall.java @@ -0,0 +1,12 @@ +import java.util.Collection; +import java.util.Set; +import java.util.TreeSet; + +class Test { + Test(final Set set) { + System.out.println(join(new TreeSet<>(set), "")); + } + + public static String join(Iterable items, String separator) {return items+separator;} + public static String join(Collection strings, String separator) {return strings + separator;} +} \ No newline at end of file diff --git a/java/java-tests/testSrc/com/intellij/java/codeInsight/daemon/lambda/Java8ExpressionsCheckTest.java b/java/java-tests/testSrc/com/intellij/java/codeInsight/daemon/lambda/Java8ExpressionsCheckTest.java index b05b89da860c..5ab3dd2d8945 100644 --- a/java/java-tests/testSrc/com/intellij/java/codeInsight/daemon/lambda/Java8ExpressionsCheckTest.java +++ b/java/java-tests/testSrc/com/intellij/java/codeInsight/daemon/lambda/Java8ExpressionsCheckTest.java @@ -23,6 +23,7 @@ import com.intellij.psi.impl.source.resolve.DefaultParameterTypeInferencePolicy; import com.intellij.psi.infos.CandidateInfo; import com.intellij.psi.infos.MethodCandidateInfo; import com.intellij.psi.util.PsiTreeUtil; +import com.intellij.util.containers.ContainerUtil; import org.jetbrains.annotations.NonNls; import java.util.Collection; @@ -298,6 +299,15 @@ public class Java8ExpressionsCheckTest extends LightDaemonAnalyzerTestCase { doTestAllMethodCallExpressions(); } + public void testResolveDiamondBeforeOuterCall() { + configure(); + doHighlighting(); // remove this call, and test will fail + PsiNewExpression newExpression = ContainerUtil.getOnlyItem(PsiTreeUtil.findChildrenOfType(getFile(), PsiNewExpression.class)); + assertNotNull(newExpression); + PsiType type = newExpression.getType(); + assertEquals("java.util.TreeSet", type.getCanonicalText()); + } + private void doTestAllMethodCallExpressions() { configure(); final Collection methodCallExpressions = PsiTreeUtil.findChildrenOfType(getFile(), PsiCallExpression.class);