Don't skip receiver with side effects on static calls

#KT-6278 Fixed
This commit is contained in:
Michael Bogdanov
2014-11-18 15:35:06 +03:00
parent 5a8944085a
commit ec649e83c3
8 changed files with 200 additions and 45 deletions
@@ -0,0 +1,47 @@
import kotlin.platform.platformStatic
object A {
platformStatic var a: Int = 1
var b: Int = 1
[platformStatic] get
var c: Int = 1
[platformStatic] set
}
var holder = ""
fun getA(): A {
holder += "getA()"
return A
}
fun box(): String {
var p = A.a++
if (p != 1 || A.a != 2) return "fail 1"
p = A.b++
if (p != 1 || A.b != 2) return "fail 2"
p = A.c++
if (p != 1 || A.c != 2) return "fail 3"
p = getA().a++
if (p != 2 || A.a != 3 || holder != "getA()") return "fail 4: $holder"
holder = ""
p = getA().b++
if (p != 2 || A.b != 3 || holder != "getA()") return "fail 5: $holder"
holder = ""
p = getA().c++
if (p != 2 || A.c != 3 || holder != "getA()") return "fail 6: $holder"
holder = ""
return "OK"
}