Files
kotlin/compiler/testData/codegen/box/operatorConventions/assignmentOperations.kt
2013-03-21 21:21:54 +04:00

36 lines
916 B
Kotlin
Vendored

class A() {
var x = 0
}
fun A.plusAssign(y: Int) { x += y }
fun A.minusAssign(y: Int) { x -= y }
fun A.timesAssign(y: Int) { x *= y }
fun A.divAssign(y: Int) { x /= y }
fun A.modAssign(y: Int) { x %= y }
fun box(): String {
val original = A()
val a = original
a += 1
if (!(a identityEquals original)) return "Fail 1: $a !== $original"
if (a.x != 1) return "Fail 2: ${a.x} != 1"
a -= 2
if (!(a identityEquals original)) return "Fail 3: $a !== $original"
if (a.x != -1) return "Fail 4: ${a.x} != -1"
a *= -10
if (!(a identityEquals original)) return "Fail 5: $a !== $original"
if (a.x != 10) return "Fail 6: ${a.x} != 10"
a /= 3
if (!(a identityEquals original)) return "Fail 7: $a !== $original"
if (a.x != 3) return "Fail 8: ${a.x} != 3"
a %= 2
if (!(a identityEquals original)) return "Fail 9: $a !== $original"
if (a.x != 1) return "Fail 10: ${a.x} != 1"
return "OK"
}