d9d4dee582
^KT-58346 Fixed Review: https://jetbrains.team/p/kt/reviews/9967 BTW this commit accidentaly and partially fixes KT-57553 for K2, because of a cleaner K2 architecture. I will unify MUST_BE_INITIALIZED behaviour in K1 and K2 in the next commits
32 lines
560 B
Kotlin
Vendored
32 lines
560 B
Kotlin
Vendored
// FIR_IDENTICAL
|
|
class My(val v: Int) {
|
|
// Ok: setter is just private
|
|
var x: Int
|
|
private set
|
|
|
|
<!MUST_BE_INITIALIZED!>var y: Int<!>
|
|
set(arg) { field = arg }
|
|
|
|
<!MUST_BE_INITIALIZED!>var z: Int<!>
|
|
set(arg) { field = arg }
|
|
|
|
// Ok: initializer available
|
|
var w: Int = v
|
|
set(arg) { field = arg }
|
|
|
|
// Ok: no backing field
|
|
var u: Int
|
|
get() = w
|
|
set(arg) { w = 2 * arg }
|
|
|
|
constructor(): this(0) {
|
|
z = v
|
|
}
|
|
|
|
init {
|
|
x = 1
|
|
y = 2
|
|
u = 3
|
|
}
|
|
}
|