blob: 8c62fe8846a015e9c5c7a89ff5ed24d9beaa657d [file]
// MODULE: lib
// FILE: lib.kt
value class IntWrapper(val x: Int) {
constructor(s: String): this(s.length)
}
value class StringWrapper(val s: String)
// MODULE: main(lib)
// FILE: main.kt
import kotlin.native.internal.*
import kotlin.test.*
fun createIntWrapper(): Any = IntWrapper(117)
fun createStringWrapper(): Any = StringWrapper("fail")
fun foo(x: Int?) {
x?.let {
val i = createIntWrapper()
initInstance(i, IntWrapper(it))
assertEquals((i as IntWrapper).x, 42)
}
}
fun box(): String {
val i = createIntWrapper()
initInstance(i, IntWrapper(42))
assertEquals((i as IntWrapper).x, 42)
initInstance(i, IntWrapper("zzz"))
assertEquals((i as IntWrapper).x, 3)
foo(42)
val s = createStringWrapper()
initInstance(s, StringWrapper("OK"))
return (s as StringWrapper).s
}