From e802ee05a7415ef2150da6da61e134483479a2eb Mon Sep 17 00:00:00 2001 From: Abduqodiri Qurbonzoda Date: Fri, 2 Jun 2023 17:09:42 +0300 Subject: [PATCH] [K/N] Do not override equals/hashCode for AbstractMutableMap.values collection --- .../src/kotlin/collections/AbstractMutableMap.kt | 9 --------- .../stdlib/test/collections/AbstractCollectionsTest.kt | 6 ++++++ 2 files changed, 6 insertions(+), 9 deletions(-) diff --git a/libraries/stdlib/native-wasm/src/kotlin/collections/AbstractMutableMap.kt b/libraries/stdlib/native-wasm/src/kotlin/collections/AbstractMutableMap.kt index 2af9ffa90b1..560223d93f3 100644 --- a/libraries/stdlib/native-wasm/src/kotlin/collections/AbstractMutableMap.kt +++ b/libraries/stdlib/native-wasm/src/kotlin/collections/AbstractMutableMap.kt @@ -97,15 +97,6 @@ public actual abstract class AbstractMutableMap protected actual construct } override val size: Int get() = this@AbstractMutableMap.size - - // TODO: should we implement them this way? Currently it's unspecified in JVM - override fun equals(other: Any?): Boolean { - if (this === other) return true - if (other !is Collection<*>) return false - return AbstractList.orderedEquals(this, other) - } - - override fun hashCode(): Int = AbstractList.orderedHashCode(this) } } return _values!! diff --git a/libraries/stdlib/test/collections/AbstractCollectionsTest.kt b/libraries/stdlib/test/collections/AbstractCollectionsTest.kt index 2d6bebb229d..c3849775eee 100644 --- a/libraries/stdlib/test/collections/AbstractCollectionsTest.kt +++ b/libraries/stdlib/test/collections/AbstractCollectionsTest.kt @@ -74,6 +74,9 @@ class AbstractCollectionsTest { compare(map.toMap(), map) { mapBehavior() } + + // values collection does not provide equals implementation + assertNotEquals(map.values, ReadOnlyMap().values) } class MutColl(val storage: MutableCollection = mutableListOf()) : AbstractMutableCollection() { @@ -165,5 +168,8 @@ class AbstractCollectionsTest { compare(map.storage, map) { mapBehavior() } + + // values collection does not provide equals implementation + assertNotEquals(map.values, MutMap(map).values) } } \ No newline at end of file