Switching off propagation of types and KotlinSignatures for platform types

This commit is contained in:
Andrey Breslav
2014-06-24 17:54:32 +04:00
parent fefadaa171
commit c3c72fc528
7 changed files with 145 additions and 10 deletions
@@ -0,0 +1,48 @@
// FILE: p/G.java
package p;
public interface G<TG> {
}
// FILE: p/A.kt
package p;
public trait A<TA> {
fun foo(p: A<TA>)
}
// FILE: p/B.java
package p;
public class B<TB> implements A<TB> {
void foo(A<TB> p) {}
}
// FILE: p/C.java
package p;
public class C<TC> extends B<TC> implements A<TC> {
}
// FILE: p/P.java
package p;
public class P {
}
// FILE: k.kt
import p.*
abstract class K: C<P>() {
}
abstract class AL: java.util.ArrayList<P>() {
}
@@ -0,0 +1,30 @@
// FILE: p/A.java
package p;
public interface A {
<TA> void foo(TA p);
}
// FILE: p/B.java
package p;
public class B implements A {
<TB> void foo(TB p) {}
}
// FILE: p/C.java
package p;
public class C extends B implements A {
}
// FILE: k.kt
import p.*
abstract class K: C() {
}
@@ -0,0 +1,26 @@
// FILE: p/I.java
package p;
import p.J.Param
public interface I {
String s();
}
// FILE: p/J.java
package p;
public class J implements I {
public String s() { return null; }
}
// FILE: k.kt
import p.*
fun test() {
val s = J().s()
s.get(0)
s!!.get(0)
}