Add optional inc/dec bytecode tests
This commit is contained in:
parent
473a5dd6ed
commit
cde7cf2caf
@ -88,4 +88,42 @@ class BytecodeRecentOpsTest {
|
|||||||
""".trimIndent()
|
""".trimIndent()
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
fun optionalIndexIncDecSkipsOnNullReceiver() = runTest {
|
||||||
|
eval(
|
||||||
|
"""
|
||||||
|
var count = 0
|
||||||
|
fun idx() { count = count + 1; return 1 }
|
||||||
|
var a: List<Int>? = null
|
||||||
|
val r = a?[idx()]++
|
||||||
|
assertEquals(null, r)
|
||||||
|
assertEquals(0, count)
|
||||||
|
""".trimIndent()
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
fun optionalIndexIncDecUpdatesOnNonNullReceiver() = runTest {
|
||||||
|
eval(
|
||||||
|
"""
|
||||||
|
var a = [1, 2, 3]
|
||||||
|
val r = a?[1]++
|
||||||
|
assertEquals(2, r)
|
||||||
|
assertEquals(3, a[1])
|
||||||
|
""".trimIndent()
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
fun optionalClassScopeIncDec() = runTest {
|
||||||
|
eval(
|
||||||
|
"""
|
||||||
|
class C { static var x = 1 }
|
||||||
|
val r = C?.x++
|
||||||
|
assertEquals(1, r)
|
||||||
|
assertEquals(2, C.x)
|
||||||
|
""".trimIndent()
|
||||||
|
)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user