// WITH_STDLIB // WORKS_WHEN_VALUE_CLASS // LANGUAGE: +ValueClasses, +GenericInlineClassParameter OPTIONAL_JVM_INLINE_ANNOTATION value class WrappingInt(val value: T) { operator fun inc(): WrappingInt = plus(1) operator fun plus(num: Int): WrappingInt = WrappingInt(((value + num) and 0xFFFF) as T) } fun box(): String { var x = WrappingInt(65535) x++ if (x.value != 0) throw AssertionError("x++: ${x.value}") var y = WrappingInt(65535) ++y if (y.value != 0) throw AssertionError("++y: ${y.value}") return "OK" }