Fix for KT-9140: Default parameters are passed as nulls when using indexing [ ] invocation
#KT-9140 Fixed
This commit is contained in:
+26
@@ -0,0 +1,26 @@
|
||||
var inc: String = ""
|
||||
|
||||
class X {
|
||||
var result: String = "fail"
|
||||
|
||||
operator fun get(name: String, type: String = "none") = name + inc + type
|
||||
|
||||
operator fun set(name: String, s: String) {
|
||||
result = name + s;
|
||||
}
|
||||
}
|
||||
|
||||
operator fun String.inc(): String {
|
||||
inc = this + "1"
|
||||
return this + "1"
|
||||
}
|
||||
|
||||
fun box(): String {
|
||||
var x = X()
|
||||
val res = ++x["a"]
|
||||
if (x.result != "aanone1") return "fail 1: ${x.result}"
|
||||
|
||||
if (res != "aanone1none") return "fail 2: ${res}"
|
||||
|
||||
return "OK"
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
class X {
|
||||
operator fun get(name: String, type: String = "none") = name + type
|
||||
}
|
||||
|
||||
fun box(): String {
|
||||
if (X().get("a") != "anone") return "fail 1: ${X().get("a")}"
|
||||
|
||||
if (X()["a"] != "anone") return "fail 2: ${X()["a"]}"
|
||||
|
||||
return "OK"
|
||||
}
|
||||
+31
@@ -0,0 +1,31 @@
|
||||
class X {
|
||||
var result: String = "fail"
|
||||
|
||||
operator fun get(name: String, type: String = "none") = name + type
|
||||
|
||||
operator fun set(name: String, s: String) {
|
||||
result = name + s;
|
||||
}
|
||||
}
|
||||
|
||||
class Y {
|
||||
var result: String = "fail"
|
||||
|
||||
operator fun get(name: String, type: String = "no", type2: String = "ne") = name + type + type2
|
||||
|
||||
operator fun set(name: String, s: String) {
|
||||
result = name + s;
|
||||
}
|
||||
}
|
||||
|
||||
fun box(): String {
|
||||
var x = X()
|
||||
x["a"] += "OK"
|
||||
if (x.result != "aanoneOK") return "fail: ${x.result}"
|
||||
|
||||
var y = Y()
|
||||
y["a"] += "OK"
|
||||
if (y.result != "aanoneOK") return "fail: ${y.result}"
|
||||
|
||||
return "OK"
|
||||
}
|
||||
Reference in New Issue
Block a user