method references on lambda parameters for incomplete code (EA-66008 - assert: InferenceSession.collectApplicabilityConstraints)

This commit is contained in:
Anna Kozlova
2015-07-22 12:34:09 +02:00
parent ac362814a7
commit 3a9f429d3e
3 changed files with 19 additions and 1 deletions
@@ -1231,7 +1231,9 @@ public class InferenceSession {
final PsiMethodReferenceUtil.QualifierResolveResult qualifierResolveResult = PsiMethodReferenceUtil.getQualifierResolveResult(reference);
final PsiClass containingClass = qualifierResolveResult.getContainingClass();
LOG.assertTrue(containingClass != null, myContext);
if (containingClass == null) {
return resolveSubset(myInferenceVariables, mySiteSubstitutor);
}
final PsiParameter[] functionalMethodParameters = interfaceMethod.getParameterList().getParameters();
final PsiParameter[] parameters = method.getParameterList().getParameters();
@@ -0,0 +1,12 @@
import java.util.function.Function;
class Test {
{
foo(s -> {
foo(s::concat);
return s;
});
}
<S,<error descr="'>' expected."><error descr="Type parameter expected"> </error></error> void foo(Function<String, String> f){}
}
@@ -418,6 +418,10 @@ public class NewMethodRefHighlightingTest extends LightDaemonAnalyzerTestCase {
doTest();
}
public void testIncompleteCodeWithMethodReferenceOverLambdaParameter() throws Exception {
doTest();
}
private void doTest() {
doTest(false);
}