[K/N] Do not override equals/hashCode for AbstractMutableMap.values collection

This commit is contained in:
Abduqodiri Qurbonzoda
2023-06-02 17:09:42 +03:00
committed by Space Team
parent 6015e12db8
commit e802ee05a7
2 changed files with 6 additions and 9 deletions
@@ -97,15 +97,6 @@ public actual abstract class AbstractMutableMap<K, V> 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!!
@@ -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<String> = mutableListOf()) : AbstractMutableCollection<String>() {
@@ -165,5 +168,8 @@ class AbstractCollectionsTest {
compare(map.storage, map) {
mapBehavior()
}
// values collection does not provide equals implementation
assertNotEquals(map.values, MutMap(map).values)
}
}