Map inline classes in generic argument position to theirs wrap classes
This commit is contained in:
+18
@@ -0,0 +1,18 @@
|
||||
// !LANGUAGE: +InlineClasses
|
||||
|
||||
class Inv<T>
|
||||
|
||||
inline class UInt(val value: Int)
|
||||
|
||||
object Test {
|
||||
fun asNotNullTypeArgument(i: Inv<UInt>) {}
|
||||
fun asInnerTypeArgument(i: Inv<Inv<UInt>>) {}
|
||||
}
|
||||
|
||||
// method: Test::asNotNullTypeArgument
|
||||
// jvm signature: (LInv;)V
|
||||
// generic signature: (LInv<LUInt;>;)V
|
||||
|
||||
// method: Test::asInnerTypeArgument
|
||||
// jvm signature: (LInv;)V
|
||||
// generic signature: (LInv<LInv<LUInt;>;>;)V
|
||||
+17
@@ -0,0 +1,17 @@
|
||||
// !LANGUAGE: +InlineClasses
|
||||
|
||||
inline class Foo(val b: Bar)
|
||||
inline class Bar(val i: Int)
|
||||
|
||||
object Test {
|
||||
fun simple(f: Foo) {}
|
||||
fun listOfFoo(f: List<Foo>) {}
|
||||
}
|
||||
|
||||
// method: Test::simple
|
||||
// jvm signature: (I)V
|
||||
// generic signature: null
|
||||
|
||||
// method: Test::listOfFoo
|
||||
// jvm signature: (Ljava/util/List;)V
|
||||
// generic signature: (Ljava/util/List<LFoo;>;)V
|
||||
+24
@@ -0,0 +1,24 @@
|
||||
// !LANGUAGE: +InlineClasses
|
||||
|
||||
class Inv<T>
|
||||
|
||||
inline class AsList<T>(val list: List<T>)
|
||||
inline class UInt(val value: Int)
|
||||
|
||||
object Test {
|
||||
fun withInlineClassArgument(a: AsList<UInt>) {}
|
||||
fun withListOfInlineClassArgument(a: AsList<List<UInt>>) {}
|
||||
fun withInnerGenericInlineClass(a: AsList<AsList<List<UInt>>>) {}
|
||||
}
|
||||
|
||||
// method: Test::withInlineClassArgument
|
||||
// jvm signature: (Ljava/util/List;)V
|
||||
// generic signature: (Ljava/util/List<LUInt;>;)V
|
||||
|
||||
// method: Test::withListOfInlineClassArgument
|
||||
// jvm signature: (Ljava/util/List;)V
|
||||
// generic signature: (Ljava/util/List<+Ljava/util/List<LUInt;>;>;)V
|
||||
|
||||
// method: Test::withInnerGenericInlineClass
|
||||
// jvm signature: (Ljava/util/List;)V
|
||||
// generic signature: (Ljava/util/List<LAsList<Ljava/util/List<Ljava/lang/Integer;>;>;>;)V
|
||||
Reference in New Issue
Block a user