Switching off propagation of types and KotlinSignatures for platform types
This commit is contained in:
@@ -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)
|
||||
}
|
||||
Reference in New Issue
Block a user