FIR: Fix SAM conversion for raw types with non-trivial TP upper bounds

This commit is contained in:
Denis Zharkov
2020-11-09 10:11:33 +03:00
parent ce4a11144d
commit 233bb47b99
9 changed files with 65 additions and 48 deletions
@@ -1,33 +0,0 @@
// !CHECK_TYPE
// FILE: Function.java
public interface Function<E extends java.util.Map<String, Integer>, F extends CharSequence> {
F handle(E e);
}
// FILE: A.java
public class A {
public void foo(Function<?, ?> l) {
}
public static void bar(Function<?, ?> l) {
}
}
// FILE: main.kt
fun main() {
A().foo {
x ->
x checkType { <!INAPPLICABLE_CANDIDATE!>_<!><Map<String, Int>?>() }
""
}
A.bar {
x ->
x checkType { <!INAPPLICABLE_CANDIDATE!>_<!><Map<String, Int>>() }
""
}
val block: (Map<String, Int>) -> CharSequence = { x -> x.toString() }
A().<!INAPPLICABLE_CANDIDATE!>foo<!>(block)
A.<!INAPPLICABLE_CANDIDATE!>bar<!>(block)
}
@@ -1,3 +1,4 @@
// FIR_IDENTICAL
// !CHECK_TYPE
// FILE: Function.java
public interface Function<E extends java.util.Map<String, Integer>, F extends CharSequence> {