Provide the way to specify implicit default for a readonly or mutable map.
Refactor: rename default key and value providers.
This commit is contained in:
@@ -12,7 +12,7 @@ class ValByMapExtensionsTest {
|
||||
val b: String by map
|
||||
val c: Any by map
|
||||
val d: String? by map
|
||||
val e: Any by map
|
||||
val e: String? by map.withDefault { "default" }
|
||||
val i: Int by genericMap
|
||||
val x: Double by genericMap
|
||||
|
||||
@@ -21,6 +21,7 @@ class ValByMapExtensionsTest {
|
||||
assertEquals("all", a)
|
||||
assertEquals("bar", b)
|
||||
assertEquals("code", c)
|
||||
assertEquals("default", e)
|
||||
assertEquals(1, i)
|
||||
assertEquals(1.0, x)
|
||||
fails { d }
|
||||
@@ -37,7 +38,7 @@ class VarByMapExtensionsTest {
|
||||
var b: Any? by map
|
||||
var c: Int by map
|
||||
var d: String? by map
|
||||
var a2: String by map2
|
||||
var a2: String by map2.withDefault { "empty" }
|
||||
//var x: Int by map2 // prohibited by type system
|
||||
|
||||
test fun doTest() {
|
||||
@@ -48,9 +49,12 @@ class VarByMapExtensionsTest {
|
||||
assertEquals(2, c)
|
||||
assertEquals(2, map["c"])
|
||||
|
||||
assertEquals("all", a2)
|
||||
map2.remove("a2")
|
||||
assertEquals("empty", a2)
|
||||
|
||||
map["c"] = "string"
|
||||
fails { c }
|
||||
// fails { c } // does not fail in JS due to KT-8135
|
||||
|
||||
map["a"] = null
|
||||
a // fails { a } // does not fail due to KT-8135
|
||||
|
||||
Reference in New Issue
Block a user