bbaldino
08/02/2019, 3:35 PMbbaldino
08/02/2019, 3:40 PMbbaldino
08/02/2019, 3:43 PMinline class WrappingInt(val value: Int) {
operator fun inc(): WrappingInt = plus(1)
operator fun plus(num: Int): WrappingInt = WrappingInt((value + num) and 0xFFFF)
}
fun main() {
var x = WrappingInt(65535)
x++
println(x) // prints 0 (correct)
var y = WrappingInt(65535)
++y
println(y) // prints 65536
}bbaldino
08/02/2019, 3:48 PMbbaldino
08/02/2019, 3:50 PMbbaldino
08/02/2019, 3:51 PMbbaldino
08/02/2019, 4:04 PMvar z = WrappingInt(65535)
val zz = { ->
++z
println(z)
}bbaldino
08/02/2019, 4:04 PMbbaldino
08/02/2019, 4:09 PMshould block for this reason, i think, so this was a sneaky one 😕