Files
kotlin-fork/compiler/testData/diagnostics/tests/backingField/InitCustomSetter.kt
T
Nikita Bobko d9d4dee582 [FIR] fix false negative MUST_BE_INITIALIZED for deferred init + custom setter case
^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
2023-05-23 14:12:28 +03:00

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
}
}