From ad49c86a42ef6b31c90180b2631d74284f4214e5 Mon Sep 17 00:00:00 2001 From: Anna Kozlova Date: Tue, 2 Sep 2014 11:47:45 +0400 Subject: [PATCH] method refs: fix type parameters context --- .../PsiMethodReferenceCompatibilityConstraint.java | 6 +++--- .../daemon/lambda/NewMethodRefHighlightingTest.java | 1 - 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/java/java-psi-impl/src/com/intellij/psi/impl/source/resolve/graphInference/constraints/PsiMethodReferenceCompatibilityConstraint.java b/java/java-psi-impl/src/com/intellij/psi/impl/source/resolve/graphInference/constraints/PsiMethodReferenceCompatibilityConstraint.java index fbfd8195fc11..b5e4188e1644 100644 --- a/java/java-psi-impl/src/com/intellij/psi/impl/source/resolve/graphInference/constraints/PsiMethodReferenceCompatibilityConstraint.java +++ b/java/java-psi-impl/src/com/intellij/psi/impl/source/resolve/graphInference/constraints/PsiMethodReferenceCompatibilityConstraint.java @@ -169,11 +169,11 @@ public class PsiMethodReferenceCompatibilityConstraint implements ConstraintForm } LOG.assertTrue(referencedMethodReturnType != null, method); - session.initBounds(method.getTypeParameters()); + session.initBounds(myExpression, method.getTypeParameters()); if (!PsiTreeUtil.isContextAncestor(containingClass, myExpression, false) || PsiUtil.getEnclosingStaticElement(myExpression, containingClass) != null) { - session.initBounds(containingClass.getTypeParameters()); + session.initBounds(myExpression, containingClass.getTypeParameters()); } //if i) the method reference elides NonWildTypeArguments, @@ -243,7 +243,7 @@ public class PsiMethodReferenceCompatibilityConstraint implements ConstraintForm final PsiClass qualifierClass = PsiUtil.resolveClassInType(qualifierType); if (qualifierClass != null) { - session.initBounds(qualifierClass.getTypeParameters()); + session.initBounds(myExpression, qualifierClass.getTypeParameters()); constraints.add(new StrictSubtypingConstraint(session.substituteWithInferenceVariables(qualifierType), session.substituteWithInferenceVariables(substitutor.substitute(targetParameters[0].getType())))); } diff --git a/java/java-tests/testSrc/com/intellij/codeInsight/daemon/lambda/NewMethodRefHighlightingTest.java b/java/java-tests/testSrc/com/intellij/codeInsight/daemon/lambda/NewMethodRefHighlightingTest.java index c981137d0253..437159d1646e 100644 --- a/java/java-tests/testSrc/com/intellij/codeInsight/daemon/lambda/NewMethodRefHighlightingTest.java +++ b/java/java-tests/testSrc/com/intellij/codeInsight/daemon/lambda/NewMethodRefHighlightingTest.java @@ -305,7 +305,6 @@ public class NewMethodRefHighlightingTest extends LightDaemonAnalyzerTestCase { doTest(); } - @Bombed(day = 30, month = Calendar.SEPTEMBER) public void testAdditionalConstraints3Level() throws Exception { doTest(); }