class A { fun plusAssign(x: Int) {} fun minusAssign(x: Int) {} fun timesAssign(x: Int) {} fun divAssign(x: Int) {} fun modAssign(x: Int) {} } fun testVal() { val a = A() a += 1 a -= 1 a *= 1 a /= 1 a %= 1 } fun testExpr() { A() += 1 A() -= 1 A() *= 1 A() /= 1 A() %= 1 } class B { fun plus(x: Int): B = B() fun minus(x: Int): B = B() fun times(x: Int): B = B() fun div(x: Int): B = B() fun mod(x: Int): B = B() } fun testWrong() { B() += 1 B() -= 1 B() *= 1 B() /= 1 B() %= 1 }