diff --git a/libraries/stdlib/src/kotlin/collections/Maps.kt b/libraries/stdlib/src/kotlin/collections/Maps.kt index e859d6c4d2e..47669a7cdaa 100644 --- a/libraries/stdlib/src/kotlin/collections/Maps.kt +++ b/libraries/stdlib/src/kotlin/collections/Maps.kt @@ -6,7 +6,7 @@ package kotlin import java.io.Serializable import java.util.* -private object EmptyMap : Map, Serializable { +private object EmptyMap : Map, Serializable { override fun equals(other: Any?): Boolean = other is Map<*,*> && other.isEmpty() override fun hashCode(): Int = 0 override fun toString(): String = "{}" @@ -14,11 +14,11 @@ private object EmptyMap : Map, Serializable { override val size: Int get() = 0 override fun isEmpty(): Boolean = true - override fun containsKey(key: Any): Boolean = false + override fun containsKey(key: Any?): Boolean = false override fun containsValue(value: Nothing): Boolean = false - override fun get(key: Any): Nothing? = null - override val entries: Set> get() = EmptySet - override val keys: Set get() = EmptySet + override fun get(key: Any?): Nothing? = null + override val entries: Set> get() = EmptySet + override val keys: Set get() = EmptySet override val values: Collection get() = EmptyList private fun readResolve(): Any = EmptyMap diff --git a/libraries/stdlib/test/collections/CollectionBehaviors.kt b/libraries/stdlib/test/collections/CollectionBehaviors.kt index 91e6a415199..033ca2a5a29 100644 --- a/libraries/stdlib/test/collections/CollectionBehaviors.kt +++ b/libraries/stdlib/test/collections/CollectionBehaviors.kt @@ -89,6 +89,10 @@ public fun CompareContext>.mapBehavior() { if (expected.isEmpty().not()) propertyEquals { contains(keySet().first()) } + propertyEquals { containsKeyRaw(keys.firstOrNull()) } + propertyEquals { containsValueRaw(values.firstOrNull()) } + propertyEquals { getRaw(null) } + compareProperty( { keySet() }, { setBehavior("keySet") } ) compareProperty( { entrySet() }, { setBehavior("entrySet") } ) compareProperty( { values() }, { collectionBehavior("values") })