Generate static backing fields for properties in object
#KT-4973 Fixed
This commit is contained in:
@@ -0,0 +1,11 @@
|
||||
object Foo {
|
||||
val bar: String
|
||||
|
||||
{
|
||||
bar = "OK"
|
||||
}
|
||||
}
|
||||
|
||||
fun box(): String {
|
||||
return Foo.bar
|
||||
}
|
||||
@@ -1,17 +0,0 @@
|
||||
|
||||
class A {
|
||||
class object {
|
||||
private var r: Int = 1;
|
||||
|
||||
fun a(): Int {
|
||||
r++
|
||||
++r
|
||||
return r
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
fun box() : String {
|
||||
val p = A.a()
|
||||
return if (p == 3) return "OK" else "fail"
|
||||
}
|
||||
@@ -0,0 +1,74 @@
|
||||
|
||||
class A {
|
||||
class object {
|
||||
private var r: Int = 1;
|
||||
|
||||
fun test(): Int {
|
||||
r++
|
||||
++r
|
||||
return r
|
||||
}
|
||||
|
||||
var holder: String = ""
|
||||
|
||||
var r2: Int = 1;
|
||||
get() {
|
||||
holder += "getR2"
|
||||
return $r2
|
||||
}
|
||||
|
||||
fun test2() : Int {
|
||||
r2++
|
||||
++r2
|
||||
return $r2
|
||||
}
|
||||
|
||||
var r3: Int = 1;
|
||||
set(p: Int) {
|
||||
holder += "setR3"
|
||||
$r3 = p
|
||||
}
|
||||
|
||||
fun test3() : Int {
|
||||
r3++
|
||||
++r3
|
||||
return $r3
|
||||
}
|
||||
|
||||
var r4: Int = 1;
|
||||
get() {
|
||||
holder += "getR4"
|
||||
return $r4
|
||||
}
|
||||
set(p: Int) {
|
||||
holder += "setR4"
|
||||
$r4 = p
|
||||
}
|
||||
|
||||
fun test4() : Int {
|
||||
r4++
|
||||
holder += ":"
|
||||
++r4
|
||||
return $r4
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
fun box() : String {
|
||||
val p = A.test()
|
||||
if (p != 3) return "fail 1: $p"
|
||||
|
||||
val p2 = A.test2()
|
||||
var holderValue = A.holder
|
||||
if (p2 != 3 || holderValue != "getR2getR2getR2") return "fail 2: $p2 ${holderValue}"
|
||||
|
||||
A.holder = ""
|
||||
val p3 = A.test3()
|
||||
if (p3 != 3 || A.holder != "setR3setR3") return "fail 3: $p3 ${A.holder}"
|
||||
|
||||
A.holder = ""
|
||||
val p4 = A.test4()
|
||||
if (p4 != 3 || A.holder != "getR4setR4:getR4setR4getR4") return "fail 4: $p4 ${A.holder}"
|
||||
|
||||
return "OK"
|
||||
}
|
||||
@@ -0,0 +1,71 @@
|
||||
object A {
|
||||
private var r: Int = 1;
|
||||
|
||||
fun test() : Int {
|
||||
r++
|
||||
++r
|
||||
return r
|
||||
}
|
||||
|
||||
var holder: String = ""
|
||||
|
||||
var r2: Int = 1;
|
||||
get() {
|
||||
holder += "getR2"
|
||||
return $r2
|
||||
}
|
||||
|
||||
fun test2() : Int {
|
||||
r2++
|
||||
++r2
|
||||
return $r2
|
||||
}
|
||||
|
||||
var r3: Int = 1;
|
||||
set(p: Int) {
|
||||
holder += "setR3"
|
||||
$r3 = p
|
||||
}
|
||||
|
||||
fun test3() : Int {
|
||||
r3++
|
||||
++r3
|
||||
return $r3
|
||||
}
|
||||
|
||||
var r4: Int = 1;
|
||||
get() {
|
||||
holder += "getR4"
|
||||
return $r4
|
||||
}
|
||||
set(p: Int) {
|
||||
holder += "setR4"
|
||||
$r4 = p
|
||||
}
|
||||
|
||||
fun test4() : Int {
|
||||
r4++
|
||||
holder += ":"
|
||||
++r4
|
||||
return $r4
|
||||
}
|
||||
}
|
||||
|
||||
fun box() : String {
|
||||
val p = A.test()
|
||||
if (p != 3) return "fail 1: $p"
|
||||
|
||||
val p2 = A.test2()
|
||||
val holderValue = A.holder
|
||||
if (p2 != 3 || holderValue != "getR2getR2getR2") return "fail 2: $p2 ${holderValue}"
|
||||
|
||||
A.holder = ""
|
||||
val p3 = A.test3()
|
||||
if (p3 != 3 || A.holder != "setR3setR3") return "fail 3: $p3 ${A.holder}"
|
||||
|
||||
A.holder = ""
|
||||
val p4 = A.test4()
|
||||
if (p4 != 3 || A.holder != "getR4setR4:getR4setR4getR4") return "fail 4: $p4 ${A.holder}"
|
||||
|
||||
return "OK"
|
||||
}
|
||||
@@ -1,14 +0,0 @@
|
||||
object A {
|
||||
private var r: Int = 1;
|
||||
|
||||
fun a() : Int {
|
||||
r++
|
||||
++r
|
||||
return r
|
||||
}
|
||||
}
|
||||
|
||||
fun box() : String {
|
||||
val p = A.a()
|
||||
return if (p == 3) return "OK" else "fail"
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
object A {
|
||||
private val p = "OK";
|
||||
|
||||
object B {
|
||||
val z = p;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
fun box(): String {
|
||||
return A.B.z
|
||||
}
|
||||
Reference in New Issue
Block a user