blob: 2c5509c6507da0632d3af0bf4bdef252603840a5 [file] [log] [blame]
// WITH_STDLIB
// WORKS_WHEN_VALUE_CLASS
// LANGUAGE: +ValueClasses, +GenericInlineClassParameter
OPTIONAL_JVM_INLINE_ANNOTATION
value class Augmented<T: Int>(val x: T) {
override fun toString(): String = (x + 1).toString()
}
OPTIONAL_JVM_INLINE_ANNOTATION
value class AsAny<T: Any>(val a: T) {
override fun toString(): String = "AsAny: $a"
}
data class AugmentedAndAsAny(val a: Augmented<Int>, val b: AsAny<Int>)
fun box(): String {
val a = Augmented(0)
val single = "$a"
if (single != "1") return "Fail 1: $single"
val asAny = AsAny(42)
val asAnyString = "$asAny"
if (asAnyString != "AsAny: 42") return "Fail 2: $asAnyString"
val b = Augmented(1)
val two = "$a and $b"
if (two != "1 and 2") return "Fail 3: $two"
val d = AugmentedAndAsAny(a, asAny)
if (d.toString() != "AugmentedAndAsAny(a=1, b=AsAny: 42)") return "Fail 4: $d"
return "OK"
}