diff --git a/java/java-psi-impl/src/com/intellij/psi/impl/source/resolve/graphInference/constraints/ExpressionCompatibilityConstraint.java b/java/java-psi-impl/src/com/intellij/psi/impl/source/resolve/graphInference/constraints/ExpressionCompatibilityConstraint.java index 8db944aaf904..ff27f9ca4ceb 100644 --- a/java/java-psi-impl/src/com/intellij/psi/impl/source/resolve/graphInference/constraints/ExpressionCompatibilityConstraint.java +++ b/java/java-psi-impl/src/com/intellij/psi/impl/source/resolve/graphInference/constraints/ExpressionCompatibilityConstraint.java @@ -116,7 +116,8 @@ public class ExpressionCompatibilityConstraint extends InputOutputConstraintForm params[i] = typeParams[i]; } } - final PsiSubstitutor siteSubstitutor = resolveResult instanceof MethodCandidateInfo ? ((MethodCandidateInfo)resolveResult).getSiteSubstitutor() : PsiSubstitutor.EMPTY; + final PsiSubstitutor siteSubstitutor = resolveResult instanceof MethodCandidateInfo && method != null && !method.isConstructor() + ? ((MethodCandidateInfo)resolveResult).getSiteSubstitutor() : PsiSubstitutor.EMPTY; for (PsiTypeParameter typeParameter : siteSubstitutor.getSubstitutionMap().keySet()) { substitutor = substitutor.put(typeParameter, substitutor.substitute(siteSubstitutor.substitute(typeParameter))); } diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/lambda/newLambda/DiamondInLambdaReturn.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/lambda/newLambda/DiamondInLambdaReturn.java new file mode 100644 index 000000000000..8f547d2038ba --- /dev/null +++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/lambda/newLambda/DiamondInLambdaReturn.java @@ -0,0 +1,9 @@ +import java.util.*; +import java.util.stream.Collectors; +import java.util.stream.Stream; + +class Test { + Set collect(Stream map){ + return map.collect(Collectors.toCollection(() -> new LinkedHashSet<>())); + } +} diff --git a/java/java-tests/testSrc/com/intellij/codeInsight/daemon/lambda/NewLambdaHighlightingTest.java b/java/java-tests/testSrc/com/intellij/codeInsight/daemon/lambda/NewLambdaHighlightingTest.java index 89ddef20df0e..f2a61d838846 100644 --- a/java/java-tests/testSrc/com/intellij/codeInsight/daemon/lambda/NewLambdaHighlightingTest.java +++ b/java/java-tests/testSrc/com/intellij/codeInsight/daemon/lambda/NewLambdaHighlightingTest.java @@ -138,6 +138,10 @@ public class NewLambdaHighlightingTest extends LightDaemonAnalyzerTestCase { doTest(); } + public void testDiamondInLambdaReturn() throws Exception { + doTest(); + } + private void doTest() { doTest(false); }