KT-4152 Wrong postfix increment/decrement calculation
#KT-4152 Fixed
This commit is contained in:
@@ -0,0 +1,41 @@
|
||||
class X(var value: Long)
|
||||
|
||||
fun X.inc(): X {
|
||||
this.value++
|
||||
return this
|
||||
}
|
||||
|
||||
fun X.dec(): X {
|
||||
this.value--
|
||||
return this
|
||||
}
|
||||
|
||||
class Z {
|
||||
|
||||
public var counter: Int = 0;
|
||||
|
||||
public var prop: X = X(0)
|
||||
get() {
|
||||
counter++; return $prop
|
||||
}
|
||||
set(a: X) {
|
||||
counter++
|
||||
$prop = a;
|
||||
}
|
||||
}
|
||||
|
||||
fun box(): String {
|
||||
var z = Z()
|
||||
z.prop++
|
||||
|
||||
if (z.counter != 2) return "fail in postfix increment: ${z.counter} != 2"
|
||||
if (z.prop.value != 1.toLong()) return "fail in postfix increment: ${z.prop.value} != 1"
|
||||
|
||||
z = Z()
|
||||
z.prop--
|
||||
|
||||
if (z.counter != 2) return "fail in postfix decrement: ${z.counter} != 2"
|
||||
if (z.prop.value != -1.toLong()) return "fail in postfix decrement: ${z.prop.value} != -1"
|
||||
|
||||
return "OK"
|
||||
}
|
||||
@@ -0,0 +1,29 @@
|
||||
public var inc: Int = 0;
|
||||
|
||||
public var propInc: Int = 0
|
||||
get() {inc++; return $propInc}
|
||||
set(a: Int) {
|
||||
inc++
|
||||
$propInc = a
|
||||
}
|
||||
|
||||
public var dec: Int = 0;
|
||||
|
||||
public var propDec: Int = 0;
|
||||
get() { dec--; return $propDec}
|
||||
set(a: Int) {
|
||||
dec--
|
||||
$propDec = a
|
||||
}
|
||||
|
||||
fun box(): String {
|
||||
propInc++
|
||||
if (inc != 2) return "fail in postfix increment: ${inc} != 2"
|
||||
if (propInc != 1) return "fail in postfix increment: ${propInc} != 1"
|
||||
|
||||
propDec--
|
||||
if (dec != -2) return "fail in postfix decrement: ${dec} != -2"
|
||||
if (propDec != -1) return "fail in postfix decrement: ${propDec} != -1"
|
||||
|
||||
return "OK"
|
||||
}
|
||||
Reference in New Issue
Block a user