| // IGNORE_KLIB_BACKEND_ERRORS_WITH_CUSTOM_SECOND_STAGE: Native:2.3 | |
| // ^^^ KT-84133 is fixed in 2.4.0-Beta1 | |
| // 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 | |
| } |