Use mapping mode for inline class underlying type without wrapping

This commit is contained in:
Dmitry Petrov
2018-08-15 17:01:30 +03:00
parent 06ef8824b6
commit b6e3218ca2
9 changed files with 195 additions and 9 deletions
@@ -1,24 +1,41 @@
// !LANGUAGE: +InlineClasses
class Inv<T>
inline class AsList<T>(val list: List<T>)
inline class UInt(val value: Int)
inline class AsList<T>(val list: List<T>)
inline class AsCmp<T>(val cmp: Comparable<T>)
object Test {
fun withInlineClassArgument(a: AsList<UInt>) {}
fun withInlineClassArgumentOut(a: AsList<UInt>) {}
fun withInlineClassArgumentIn(a: AsCmp<UInt>) {}
fun withListOfInlineClassArgument(a: AsList<List<UInt>>) {}
fun withInnerGenericInlineClass(a: AsList<AsList<List<UInt>>>) {}
fun withComparableOfInlineClassArgument(a: AsCmp<Comparable<UInt>>) {}
fun withInnerGenericInlineClassOut(a: AsList<AsList<List<UInt>>>) {}
fun withInnerGenericInlineClassIn(a: AsCmp<AsCmp<Comparable<UInt>>>) {}
}
// method: Test::withInlineClassArgument
// method: Test::withInlineClassArgumentOut
// jvm signature: (Ljava/util/List;)V
// generic signature: (Ljava/util/List<LUInt;>;)V
// method: Test::withInlineClassArgumentIn
// jvm signature: (Ljava/lang/Comparable;)V
// generic signature: (Ljava/lang/Comparable<-LUInt;>;)V
// method: Test::withListOfInlineClassArgument
// jvm signature: (Ljava/util/List;)V
// generic signature: (Ljava/util/List<+Ljava/util/List<LUInt;>;>;)V
// method: Test::withInnerGenericInlineClass
// method: Test::withComparableOfInlineClassArgument
// jvm signature: (Ljava/lang/Comparable;)V
// generic signature: (Ljava/lang/Comparable<-Ljava/lang/Comparable<-LUInt;>;>;)V
// method: Test::withInnerGenericInlineClassOut
// jvm signature: (Ljava/util/List;)V
// generic signature: (Ljava/util/List<LAsList<Ljava/util/List<Ljava/lang/Integer;>;>;>;)V
// generic signature: (Ljava/util/List<LAsList<Ljava/util/List<LUInt;>;>;>;)V
// method: Test::withInnerGenericInlineClassIn
// jvm signature: (Ljava/lang/Comparable;)V
// generic signature: (Ljava/lang/Comparable<-LAsCmp<Ljava/lang/Comparable<LUInt;>;>;>;)V