Defining flexible type semantic equality through subtyping

This commit is contained in:
Andrey Breslav
2014-10-14 08:07:55 +04:00
parent f41a8d2c00
commit 3453809b4b
6 changed files with 41 additions and 4 deletions
@@ -0,0 +1,24 @@
// FILE: p/J.java
package p;
public class J<T> {
public void foo(Ref<T[]> r) {}
}
// FILE: p/Ref.java
package p;
public class Ref<T> {
public static <T> Ref<T> create() { return null; }
}
// FILE: k.kt
import p.*
fun main(j: J<String>) {
val r = Ref.create<Array<String>>()
j.foo(r)
}
@@ -0,0 +1,3 @@
package
internal fun main(/*0*/ j: p.J<kotlin.String>): kotlin.Unit