Skip to content

Commit d93c379

Browse files
committed
[nomerge] Revert backported RBTree changes that are 2.13.x only
Changes from: scala/scala#7481 scala/scala#8783 Backported in: scala/scala@9bfb183#diff-f99536a3327e638dcf239518f2c3f0ceR195 scala/scala@48809df#diff-f99536a3327e638dcf239518f2c3f0ceL214 ... are reverted. I've added a test for the legacy behaviour that we don't want to break.
1 parent 3b60031 commit d93c379

File tree

1 file changed

+2
-2
lines changed

1 file changed

+2
-2
lines changed

library/src/scala/collection/immutable/RedBlackTree.scala

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -281,8 +281,8 @@ private[collection] object RedBlackTree {
281281
balanceLeft(tree, upd(tree.left, k, v, overwrite))
282282
else if (cmp > 0)
283283
balanceRight(tree, upd(tree.right, k, v, overwrite))
284-
else if (overwrite && (v.asInstanceOf[AnyRef] ne tree.value.asInstanceOf[AnyRef]))
285-
mkTree(isBlackTree(tree), tree.key, v, tree.left, tree.right)
284+
else if ((overwrite && (v.asInstanceOf[AnyRef] ne tree.value.asInstanceOf[AnyRef])) || k != tree.key)
285+
mkTree(isBlackTree(tree), k, v, tree.left, tree.right)
286286
else tree
287287
}
288288
private[this] def updNth[A, B, B1 >: B](tree: Tree[A, B], idx: Int, k: A, v: B1): Tree[A, B1] = if (tree eq null) {

0 commit comments

Comments
 (0)