blob: dac6373b0e9b9391233348ff27d29b01da4d88d6 [file]
// LANGUAGE: +ValueClasses
// TARGET_BACKEND: JVM_IR
// WITH_STDLIB
package pack
@JvmInline
value class MyValueClass(val foo: Foo<Int>)
@JvmInline
value class Foo<T>(val a: T, val b: T)
@JvmInline
value class MyValueClass1(val foo: FooAlias)
typealias FooAlias = Foo<Int>
fun box(): String {
val myValueClass = MyValueClass(Foo(2, 3))
require(myValueClass.toString() == "MyValueClass(foo=${myValueClass.foo})") { myValueClass.toString() }
require(myValueClass.toString() == "MyValueClass(foo=Foo(a=${myValueClass.foo.a}, b=${myValueClass.foo.b}))") { myValueClass.toString() }
val myValueClass1 = MyValueClass1(FooAlias(2, 3))
require(myValueClass1.toString() == "MyValueClass1(foo=${myValueClass.foo})") { myValueClass.toString() }
require(myValueClass1.toString() == "MyValueClass1(foo=Foo(a=${myValueClass.foo.a}, b=${myValueClass.foo.b}))") { myValueClass.toString() }
return "OK"
}