| // ISSUE: KT-87290 | |
| // WITH_STDLIB | |
| // WORKS_WHEN_VALUE_CLASS | |
| // MODULE: lib | |
| // FILE: lib.kt | |
| OPTIONAL_JVM_INLINE_ANNOTATION | |
| value class Wrapper(val value: Int) { | |
| context(prefix: String) | |
| val value: String | |
| get() = prefix | |
| } | |
| OPTIONAL_JVM_INLINE_ANNOTATION | |
| value class Wrapper1(val value: Int) { | |
| context(prefix: String) | |
| private val value: String | |
| get() = prefix | |
| } | |
| OPTIONAL_JVM_INLINE_ANNOTATION | |
| value class Wrapper2(private val value: Int) { | |
| context(prefix: String) | |
| val value: String | |
| get() = prefix | |
| } | |
| // MODULE: main(lib) | |
| // FILE: main.kt | |
| fun box(): String { | |
| val w0 = Wrapper(42) | |
| if (w0.value != 42) return w0.value.toString() | |
| val w1 = Wrapper1(42) | |
| if (w1.value != 42) return w1.value.toString() | |
| val w2 = Wrapper2(42) | |
| context("SOME") { | |
| if (w1.value != 42) return w1.value.toString() | |
| if (w2.value != "SOME") return w2.value | |
| } | |
| return "OK" | |
| } |