blob: 240546f75c287e842febed9f44bbf2fb12ecf61e [file]
// WITH_STDLIB
// WORKS_WHEN_VALUE_CLASS
// CHECK_BYTECODE_TEXT
// MODULE: lib
// FILE: lib.kt
inline value class A(val x: Int)
OPTIONAL_JVM_INLINE_ANNOTATION
value inline class B(val s: String)
fun takeA(a: A): Int = a.x
fun takeB(b: B): String = b.s
// 1 box-impl\(I\)LA;
// 1 box-impl\(Ljava/lang/String;\)LB;
// MODULE: main(lib)
// FILE: main.kt
inline value class C(val a: A)
OPTIONAL_JVM_INLINE_ANNOTATION
value inline class D(val b: B)
fun takeC(c: C): Int = takeA(c.a)
fun takeD(d: D): String = takeB(d.b)
fun box(): String {
val c = C(A(1))
if (takeC(c) != 1) return "Fail 1"
if ((c as Any) != C(A(1))) return "Fail 2"
if (c.toString() != "C(a=A(x=1))") return "Fail 3"
return takeD(D(B("O"))) + D(B("K")).b.s
}
// 1 box-impl\(I\)LC;
// 1 box-impl\(Ljava/lang/String;\)LD;