FE: add more tests around KT-56061

This commit is contained in:
Mikhail Glukhikh
2023-01-24 13:30:53 +01:00
committed by Space Team
parent 17500b225d
commit 5fc0aa769b
3 changed files with 47 additions and 3 deletions
+22 -1
View File
@@ -9,6 +9,12 @@ public class Container<E> {
}
public void setWrapper(Wrapper<E> wrapper) {}
public E getSimple() {
return null;
}
public void setSimple(E e) {}
}
// FILE: Wrapper.java
@@ -22,19 +28,28 @@ fun foo(container: Container<*>, wrapper: Wrapper<String>) {
container.w = <!TYPE_MISMATCH!>wrapper<!>
<!SYNTHETIC_SETTER_PROJECTED_OUT!>container.wrapper<!> = wrapper
container.setWrapper(<!TYPE_MISMATCH!>wrapper<!>)
container.simple = "123"
container.setSimple(<!TYPE_MISMATCH!>"123"<!>)
}
fun bar(container: Container<String>, wrapper: Wrapper<String>) {
container.wrapper = wrapper
container.setWrapper(wrapper)
container.simple = "123"
container.setSimple("123")
}
fun baz(container: Container<Any>, wrapper: Wrapper<String>) {
container.wrapper = <!TYPE_MISMATCH!>wrapper<!>
container.simple = "123"
container.setSimple("123")
}
fun gau(container: Container<String>, wrapper: Wrapper<Any>) {
container.wrapper = <!TYPE_MISMATCH!>wrapper<!>
container.simple = <!CONSTANT_EXPECTED_TYPE_MISMATCH!>456<!>
}
fun dif(container: Container<String>, wrapper: Wrapper<Int>) {
@@ -44,14 +59,20 @@ fun dif(container: Container<String>, wrapper: Wrapper<Int>) {
fun out(container: Container<out Any>, wrapper: Wrapper<String>) {
<!SYNTHETIC_SETTER_PROJECTED_OUT!>container.wrapper<!> = wrapper
container.setWrapper(<!TYPE_MISMATCH!>wrapper<!>)
container.simple = "123"
container.setSimple(<!TYPE_MISMATCH!>"123"<!>)
}
fun inn(container: Container<in String>, wrapper: Wrapper<Any>) {
<!SYNTHETIC_SETTER_PROJECTED_OUT!>container.wrapper<!> = wrapper
container.setWrapper(<!TYPE_MISMATCH!>wrapper<!>)
container.simple = 456
container.setSimple(<!CONSTANT_EXPECTED_TYPE_MISMATCH!>456<!>)
}
fun <T> generic(container: Container<out T>, wrapper: Wrapper<out T>) {
fun <T> generic(container: Container<out T>, wrapper: Wrapper<out T>, arg: T) {
<!SYNTHETIC_SETTER_PROJECTED_OUT!>container.wrapper<!> = wrapper
container.setWrapper(<!TYPE_MISMATCH!>wrapper<!>)
container.simple = arg
container.setSimple(<!TYPE_MISMATCH!>arg<!>)
}