Treat field initializer as class initializer

when checking for allowance of other field initialization in lambda
with EXACTLY_ONCE contract.
 #KT-40948 Fixed
This commit is contained in:
Ilmir Usmanov
2020-10-12 00:39:08 +02:00
parent 3b5706972e
commit d7b9920eba
4 changed files with 60 additions and 1 deletions
@@ -129,3 +129,24 @@ class Test4 {
}
}
}
@kotlin.contracts.ExperimentalContracts
class Test5 {
val a: String
val b: String
val c: String
val d: String
val aInit = inlineMe {
a = "OK"
}
val bInit = crossinlineMe {
<!CAPTURED_VAL_INITIALIZATION!>b<!> = "OK"
}
val cInit = noinlineMe {
<!CAPTURED_VAL_INITIALIZATION!>c<!> = "OK"
}
val dInit = notinline {
<!CAPTURED_VAL_INITIALIZATION!>d<!> = "OK"
}
}