diff --git a/java/java-psi-impl/src/com/intellij/psi/impl/source/resolve/graphInference/InferenceSession.java b/java/java-psi-impl/src/com/intellij/psi/impl/source/resolve/graphInference/InferenceSession.java index d0c39a9f6852..9d742baac7cc 100644 --- a/java/java-psi-impl/src/com/intellij/psi/impl/source/resolve/graphInference/InferenceSession.java +++ b/java/java-psi-impl/src/com/intellij/psi/impl/source/resolve/graphInference/InferenceSession.java @@ -1627,7 +1627,8 @@ public class InferenceSession { final PsiType qType = JavaPsiFacade.getElementFactory(method.getProject()).createType(containingClass, psiSubstitutor); - addConstraint(new TypeCompatibilityConstraint(substituteWithInferenceVariables(qType), pType)); + addConstraint(new TypeCompatibilityConstraint(substituteWithInferenceVariables(qType), + PsiUtil.captureToplevelWildcards(pType, reference))); if (methodContainingClass != null) { psiSubstitutor = JavaClassSupers.getInstance().getSuperClassSubstitutor(methodContainingClass, containingClass, reference.getResolveScope(), psiSubstitutor); diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/lambda/newMethodRef/CaptureOnDedicatedParameterOfSecondSearch.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/lambda/newMethodRef/CaptureOnDedicatedParameterOfSecondSearch.java new file mode 100644 index 000000000000..9b969c7dcf9a --- /dev/null +++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/lambda/newMethodRef/CaptureOnDedicatedParameterOfSecondSearch.java @@ -0,0 +1,13 @@ +class MyTest { + { + Appender data = Map::appendData; + } +} + +interface Map { + void appendData(String appender) ; +} + +interface Appender { + void append(Map map, String appender); +} \ No newline at end of file diff --git a/java/java-tests/testSrc/com/intellij/java/codeInsight/daemon/lambda/NewMethodRefHighlightingTest.java b/java/java-tests/testSrc/com/intellij/java/codeInsight/daemon/lambda/NewMethodRefHighlightingTest.java index dac38b204af0..5c38411b6057 100644 --- a/java/java-tests/testSrc/com/intellij/java/codeInsight/daemon/lambda/NewMethodRefHighlightingTest.java +++ b/java/java-tests/testSrc/com/intellij/java/codeInsight/daemon/lambda/NewMethodRefHighlightingTest.java @@ -184,6 +184,7 @@ public class NewMethodRefHighlightingTest extends LightDaemonAnalyzerTestCase { public void testPreferErrorOnTopLevelToFailedSubstitutorOnNestedLevel() { doTest(); } public void testDontIgnoreIncompatibilitiesDuringFirstApplicabilityCheck() { doTest(); } + public void testCaptureOnDedicatedParameterOfSecondSearch() { doTest(); } private void doTest() { doTest(false);