Support custom accessors for top-level properties in scripts.
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
public var inc: Int = 0;
|
||||
public var inc: Int = 0
|
||||
|
||||
public var propInc: Int = 0
|
||||
get() {++inc; return field}
|
||||
@@ -7,9 +7,9 @@ public var propInc: Int = 0
|
||||
field = a
|
||||
}
|
||||
|
||||
public var dec: Int = 0;
|
||||
public var dec: Int = 0
|
||||
|
||||
public var propDec: Int = 0;
|
||||
public var propDec: Int = 0
|
||||
get() { --dec; return field}
|
||||
set(a: Int) {
|
||||
--dec
|
||||
|
||||
@@ -9,7 +9,7 @@ public var propInc: Int = 0
|
||||
|
||||
public var dec: Int = 0;
|
||||
|
||||
public var propDec: Int = 0;
|
||||
public var propDec: Int = 0
|
||||
get() { dec--; return field}
|
||||
set(a: Int) {
|
||||
dec--
|
||||
|
||||
@@ -10,7 +10,7 @@ class A {
|
||||
|
||||
var holder: String = ""
|
||||
|
||||
var r2: Int = 1;
|
||||
var r2: Int = 1
|
||||
get() {
|
||||
holder += "getR2"
|
||||
return field
|
||||
@@ -22,7 +22,7 @@ class A {
|
||||
return r2
|
||||
}
|
||||
|
||||
var r3: Int = 1;
|
||||
var r3: Int = 1
|
||||
set(p: Int) {
|
||||
holder += "setR3"
|
||||
field = p
|
||||
@@ -34,7 +34,7 @@ class A {
|
||||
return r3
|
||||
}
|
||||
|
||||
var r4: Int = 1;
|
||||
var r4: Int = 1
|
||||
get() {
|
||||
holder += "getR4"
|
||||
return field
|
||||
|
||||
+3
-3
@@ -9,7 +9,7 @@ object A {
|
||||
|
||||
var holder: String = ""
|
||||
|
||||
var r2: Int = 1;
|
||||
var r2: Int = 1
|
||||
get() {
|
||||
holder += "getR2"
|
||||
return field
|
||||
@@ -21,7 +21,7 @@ object A {
|
||||
return r2
|
||||
}
|
||||
|
||||
var r3: Int = 1;
|
||||
var r3: Int = 1
|
||||
set(p: Int) {
|
||||
holder += "setR3"
|
||||
field = p
|
||||
@@ -33,7 +33,7 @@ object A {
|
||||
return r3
|
||||
}
|
||||
|
||||
var r4: Int = 1;
|
||||
var r4: Int = 1
|
||||
get() {
|
||||
holder += "getR4"
|
||||
return field
|
||||
|
||||
+1
-1
@@ -7,7 +7,7 @@ annotation class Accessor(val value: String)
|
||||
|
||||
interface Z {
|
||||
@Property("OK")
|
||||
val z: String;
|
||||
val z: String
|
||||
@Accessor("OK")
|
||||
get() = "OK"
|
||||
}
|
||||
|
||||
Vendored
+1
-1
@@ -7,7 +7,7 @@ annotation class Accessor(val value: String)
|
||||
|
||||
interface Z {
|
||||
@Property("OK")
|
||||
val z: String;
|
||||
val z: String
|
||||
@Accessor("OK")
|
||||
get() = "OK"
|
||||
}
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
// KOTLIN_CONFIGURATION_FLAGS: +JVM.JVM8_TARGET_WITH_DEFAULTS
|
||||
|
||||
interface Z {
|
||||
val z: String;
|
||||
val z: String
|
||||
get() = "OK"
|
||||
}
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
// JVM_TARGET: 1.8
|
||||
|
||||
interface Z {
|
||||
val z: String;
|
||||
val z: String
|
||||
get() = "OK"
|
||||
}
|
||||
|
||||
|
||||
@@ -0,0 +1,25 @@
|
||||
var log = "begin"
|
||||
fun append(msg: String) {
|
||||
log = "$log;$msg"
|
||||
}
|
||||
|
||||
val test1 get() = run {
|
||||
append("test1.get")
|
||||
"1"
|
||||
}
|
||||
|
||||
val test2 get() = run {
|
||||
append("test2.get")
|
||||
test1
|
||||
}
|
||||
|
||||
var test3: String = "Z"
|
||||
set(value) {
|
||||
append("test3.set")
|
||||
field = value
|
||||
}
|
||||
|
||||
test3 = "3"
|
||||
|
||||
val r = "$test1;$test2;$test3|$log"
|
||||
// expected: r: 1;1;3|begin;test3.set;test1.get;test2.get;test1.get
|
||||
Reference in New Issue
Block a user