mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
method references with qualifier with captured wildcard type: retrieve upper bound as it is done for method calls
This commit is contained in:
@@ -122,7 +122,13 @@ public class PsiMethodReferenceUtil {
|
||||
PsiSubstitutor substitutor = PsiSubstitutor.EMPTY;
|
||||
final PsiExpression expression = methodReferenceExpression.getQualifierExpression();
|
||||
if (expression != null) {
|
||||
final PsiType expressionType = replaceArrayType(expression.getType(), expression);
|
||||
PsiType expressionType = expression.getType();
|
||||
if (expressionType instanceof PsiCapturedWildcardType) {
|
||||
expressionType = ((PsiCapturedWildcardType)expressionType).getUpperBound();
|
||||
}
|
||||
else {
|
||||
expressionType = replaceArrayType(expressionType, expression);
|
||||
}
|
||||
PsiClassType.ClassResolveResult result = PsiUtil.resolveGenericsClassInType(expressionType);
|
||||
containingClass = result.getElement();
|
||||
if (containingClass != null) {
|
||||
|
||||
+11
@@ -0,0 +1,11 @@
|
||||
|
||||
final class Test {
|
||||
static <T> T create(Iterable<? extends T> iterable) {
|
||||
return null;
|
||||
}
|
||||
|
||||
public static <T> void testError(Iterable<? extends T> iterable) {
|
||||
Runnable r = create(iterable)::toString;
|
||||
}
|
||||
|
||||
}
|
||||
+4
@@ -482,6 +482,10 @@ public class NewMethodRefHighlightingTest extends LightDaemonAnalyzerTestCase {
|
||||
doTest();
|
||||
}
|
||||
|
||||
public void testQualifierOfCapturedWildcardType() throws Exception {
|
||||
doTest();
|
||||
}
|
||||
|
||||
private void doTest() {
|
||||
doTest(false);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user