Files
kotlin-fork/compiler/testData/codegen/box/valueClasses/throwingMFVCReassignments.kt
T
Evgeniy.Zhelenskiy 14b8e41967 [IR] Integrate MFVC with Inline classes
#KT-1179
2022-10-07 12:43:39 +00:00

34 lines
684 B
Kotlin
Vendored

// WITH_STDLIB
// TARGET_BACKEND: JVM_IR
// WORKS_WHEN_VALUE_CLASS
// LANGUAGE: +ValueClasses
// CHECK_BYTECODE_LISTING
@JvmInline
value class DPoint(val x: Double, val y: Double)
class PointBox(var value: DPoint)
fun box(): String {
var p = DPoint(1.0, 2.0)
try {
p = DPoint(3.0, error("Failure"))
} catch (_: Exception) {
}
if (p != DPoint(1.0, 2.0)) {
return "Partially reassigned variable"
}
val box = PointBox(p)
try {
box.value = DPoint(3.0, error("Failure"))
} catch (_: Exception) {
}
if (box.value != DPoint(1.0, 2.0)) {
return "Partially reassigned field"
}
return "OK"
}