| // !LANGUAGE: +InlineClasses |
| |
| // FILE: utils.kt |
| |
| inline class UInt(private val value: Int) { |
| fun asInt() = value |
| } |
| |
| inline class UIntArray(private val intArray: IntArray) { |
| operator fun get(index: Int): UInt = UInt(intArray[index]) |
| |
| operator fun set(index: Int, value: UInt) { |
| intArray[index] = value.asInt() |
| } |
| } |
| |
| // FILE: test.kt |
| |
| fun UIntArray.swap(i: Int, j: Int) { |
| this[j] = this[i].also { this[i] = this[j] } |
| } |
| |
| // @TestKt.class: |
| // 0 INVOKEVIRTUAL UInt.unbox |
| // 0 INVOKESTATIC UInt\$Erased.box |
| // 0 INVOKESTATIC UInt\.box |
| // 0 intValue |
| // 0 valueOf |