blob: 990e0525ec4502c9d678c7b029e42031d524e924 [file]
// LANGUAGE: +FullValueClasses
// CHECK_BYTECODE_LISTING
// WORKS_WHEN_VALUE_CLASS
OPTIONAL_JVM_INLINE_ANNOTATION
value class InnerInline(val x: Int) {
fun f(z: InnerInline) {}
fun g(t: FullValue) {}
fun h(t1: OuterInline) {}
}
value class FullValue(val x: InnerInline, val y: InnerInline) {
fun f(z: InnerInline) {}
fun g(t: FullValue) {}
fun h(t1: OuterInline) {}
}
OPTIONAL_JVM_INLINE_ANNOTATION
value class OuterInline(val x: FullValue) {
fun f(z: InnerInline) {}
fun g(t: FullValue) {}
fun h(t1: OuterInline) {}
}
fun box(): String {
val inner1 = InnerInline(1)
val inner2 = InnerInline(2)
require(inner1.x == 1)
require(inner2.x == 2)
val full = FullValue(inner1, inner2)
require(full.x == inner1)
require(full.y == inner2)
val outer = OuterInline(full)
require(outer.x == full)
return "OK"
}