diff --git a/libraries/stdlib/src/kotlin/collections/Maps.kt b/libraries/stdlib/src/kotlin/collections/Maps.kt index 780b6e76ed1..6b48e07975c 100644 --- a/libraries/stdlib/src/kotlin/collections/Maps.kt +++ b/libraries/stdlib/src/kotlin/collections/Maps.kt @@ -298,8 +298,7 @@ public inline operator fun Map.iterator(): Iterator MutableMap.iterator(): MutableIterator> = entries.iterator() diff --git a/libraries/stdlib/test/collections/MapTest.kt b/libraries/stdlib/test/collections/MapTest.kt index 913edb14a42..6cf7d6dced3 100644 --- a/libraries/stdlib/test/collections/MapTest.kt +++ b/libraries/stdlib/test/collections/MapTest.kt @@ -97,6 +97,18 @@ class MapTest { assertEquals("beverage,beer,location,Mells,name,James", list.joinToString(",")) } + @Test fun iterateAndMutate() { + val map = mutableMapOf("beverage" to "beer", "location" to "Mells", "name" to "James") + val it = map.iterator() + for (e in it) { + when (e.key) { + "beverage" -> e.setValue("juice") + "location" -> it.remove() + } + } + assertEquals(mapOf("beverage" to "juice", "name" to "James"), map) + } + @Test fun onEach() {