mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
lambda: check assignable takes into account wildcards (IDEA-108195)
This commit is contained in:
@@ -151,7 +151,7 @@ public class LambdaUtil {
|
||||
}
|
||||
return false;
|
||||
}
|
||||
final PsiClassType.ClassResolveResult resolveResult = PsiUtil.resolveGenericsClassInType(leftType);
|
||||
final PsiClassType.ClassResolveResult resolveResult = PsiUtil.resolveGenericsClassInType(GenericsUtil.eliminateWildcards(leftType));
|
||||
final PsiClass psiClass = resolveResult.getElement();
|
||||
if (psiClass instanceof PsiAnonymousClass) {
|
||||
return isAcceptable(lambdaExpression, ((PsiAnonymousClass)psiClass).getBaseClassType(), checkReturnType);
|
||||
|
||||
+12
@@ -0,0 +1,12 @@
|
||||
class Demo {
|
||||
|
||||
Function<Supplier<Double>, ? extends Supplier<Double>> mapper2 = (sa) -> () -> sa.get() + 1.0;
|
||||
|
||||
interface Supplier<T> {
|
||||
public T get();
|
||||
}
|
||||
|
||||
interface Function<T, R> {
|
||||
public R apply(T t);
|
||||
}
|
||||
}
|
||||
+1
@@ -87,6 +87,7 @@ public class LambdaHighlightingTest extends LightDaemonAnalyzerTestCase {
|
||||
public void testConditionalInferenceFromOppositePart() { doTest(); }
|
||||
public void testDeclaredTypeParameterBoundsAndUnboundedWildcard() { doTest(); }
|
||||
public void testConflictResolution() throws Exception {doTest();}
|
||||
public void testIDEA108195() throws Exception {doTest();}
|
||||
|
||||
private void doTest() {
|
||||
doTest(false);
|
||||
|
||||
Reference in New Issue
Block a user