JVM_IR: write raw types as raw in JVM generic signatures

This commit is contained in:
Dmitry Petrov
2020-09-03 16:22:11 +03:00
parent 475522f938
commit dd016b759e
5 changed files with 27 additions and 16 deletions
@@ -11,17 +11,17 @@ fun testReturnsRawGenericIn(j: JRaw) = j.returnsRawGenericIn()
fun testReturnsRawGenericOut(j: JRaw) = j.returnsRawGenericOut()
fun testBothRawAndGeneric(j: JRaw, list: List<Any?>) = j.returnsRawList()
class KRaw(j: JRaw) : JRaw by j
// JVM: public <(Ljava/util/List<Ljava/lang/Object;>;)V> method takesRawList(p0: java.util.List): void
// JVM_IR: public <(Ljava/util/List<+Ljava/lang/Object;>;)V> method takesRawList(p0: java.util.List): void
// FILE: JRaw.java
import java.util.*;
public interface JRaw {
void takesRawList(List list);
List returnsRawList();
List bothRawAndGeneric(List<Object> list1, List list2);
void takesRawGenericInv(GenericInv g);
GenericInv returnsRawGenericInv();
void takesRawGenericIn(GenericIn g);
@@ -27,6 +27,7 @@ public final class<null> KRaw {
public <(LGenericInv<Ljava/lang/Number;>;)V> method takesRawGenericInv(p0: GenericInv): void
public <(LGenericOut<+Ljava/lang/Number;>;)V> method takesRawGenericOut(p0: GenericOut): void
public <(Ljava/util/List<Ljava/lang/Object;>;)V> method takesRawList(p0: java.util.List): void
public <(Ljava/util/List<Ljava/lang/Object;>;Ljava/util/List<Ljava/lang/Object;>;)Ljava/util/List<Ljava/lang/Object;>;> method bothRawAndGeneric(p0: java.util.List, p1: java.util.List): java.util.List
public <null> method <init>(@org.jetbrains.annotations.NotNull p0: JRaw): void
private synthetic final field <null> $$delegate_0: JRaw
}
@@ -37,4 +38,5 @@ public final class<null> RawTypeInSignatureKt {
public final static <(LJRaw;)LGenericIn<Ljava/lang/Number;>;> method testReturnsRawGenericIn(@org.jetbrains.annotations.NotNull p0: JRaw): GenericIn
public final static <(LJRaw;)LGenericInv<Ljava/lang/Number;>;> method testReturnsRawGenericInv(@org.jetbrains.annotations.NotNull p0: JRaw): GenericInv
public final static <(LJRaw;)LGenericOut<Ljava/lang/Number;>;> method testReturnsRawGenericOut(@org.jetbrains.annotations.NotNull p0: JRaw): GenericOut
public final static <(LJRaw;Ljava/util/List<+Ljava/lang/Object;>;)Ljava/util/List<Ljava/lang/Object;>;> method testBothRawAndGeneric(@org.jetbrains.annotations.NotNull p0: JRaw, @org.jetbrains.annotations.NotNull p1: java.util.List): java.util.List
}
@@ -19,22 +19,24 @@ public final class<<T:Ljava/lang/Number;>Ljava/lang/Object;> GenericOut {
@kotlin.Metadata
public final class<null> KRaw {
// source: 'rawTypeInSignature.kt'
public <()LGenericIn<Ljava/lang/Number;>;> method returnsRawGenericIn(): GenericIn
public <()LGenericInv<Ljava/lang/Number;>;> method returnsRawGenericInv(): GenericInv
public <()LGenericOut<Ljava/lang/Number;>;> method returnsRawGenericOut(): GenericOut
public <()Ljava/util/List<Ljava/lang/Object;>;> method returnsRawList(): java.util.List
public <(LGenericIn<-Ljava/lang/Number;>;)V> method takesRawGenericIn(p0: GenericIn): void
public <(LGenericInv<Ljava/lang/Number;>;)V> method takesRawGenericInv(p0: GenericInv): void
public <(LGenericOut<+Ljava/lang/Number;>;)V> method takesRawGenericOut(p0: GenericOut): void
public <(Ljava/util/List<+Ljava/lang/Object;>;)V> method takesRawList(p0: java.util.List): void
public <(Ljava/util/List<+Ljava/lang/Object;>;Ljava/util/List;)Ljava/util/List;> method bothRawAndGeneric(p0: java.util.List, p1: java.util.List): java.util.List
public <null> method <init>(@org.jetbrains.annotations.NotNull p0: JRaw): void
public <null> method returnsRawGenericIn(): GenericIn
public <null> method returnsRawGenericInv(): GenericInv
public <null> method returnsRawGenericOut(): GenericOut
public <null> method returnsRawList(): java.util.List
public <null> method takesRawGenericIn(p0: GenericIn): void
public <null> method takesRawGenericInv(p0: GenericInv): void
public <null> method takesRawGenericOut(p0: GenericOut): void
public <null> method takesRawList(p0: java.util.List): void
private synthetic final field <null> $$delegate_0: JRaw
}
@kotlin.Metadata
public final class<null> RawTypeInSignatureKt {
// source: 'rawTypeInSignature.kt'
public final static <(LJRaw;)LGenericIn<Ljava/lang/Number;>;> method testReturnsRawGenericIn(@org.jetbrains.annotations.NotNull p0: JRaw): GenericIn
public final static <(LJRaw;)LGenericInv<Ljava/lang/Number;>;> method testReturnsRawGenericInv(@org.jetbrains.annotations.NotNull p0: JRaw): GenericInv
public final static <(LJRaw;)LGenericOut<Ljava/lang/Number;>;> method testReturnsRawGenericOut(@org.jetbrains.annotations.NotNull p0: JRaw): GenericOut
public final static <(LJRaw;Ljava/util/List<+Ljava/lang/Object;>;)Ljava/util/List;> method testBothRawAndGeneric(@org.jetbrains.annotations.NotNull p0: JRaw, @org.jetbrains.annotations.NotNull p1: java.util.List): java.util.List
public final static <null> method testReturnsRawGenericIn(@org.jetbrains.annotations.NotNull p0: JRaw): GenericIn
public final static <null> method testReturnsRawGenericInv(@org.jetbrains.annotations.NotNull p0: JRaw): GenericInv
public final static <null> method testReturnsRawGenericOut(@org.jetbrains.annotations.NotNull p0: JRaw): GenericOut
}