Skip to content

VectorMap#{remove, init, tail} broken in Scala 2.13.0-M5 #11100

@xuwei-k

Description

@xuwei-k

https://github.com/scala/scala/blob/98a68df30390337425388bc9d586a46dacc7c6c4/src/library/scala/collection/immutable/VectorMap.scala#L65-L72

Welcome to Scala 2.13.0-M5 (Java HotSpot(TM) 64-Bit Server VM, Java 1.8.0_181).
Type in expressions for evaluation. Or try :help.

scala> import scala.collection.immutable.VectorMap
import scala.collection.immutable.VectorMap

scala> val x = VectorMap(1 -> "a", 2 -> "b")
x: scala.collection.immutable.VectorMap[Int,String] = VectorMap(1 -> a, 2 -> b)

scala> lazy val y = x remove 1
y: scala.collection.immutable.VectorMap[Int,String] = <lazy>

scala> y.size
res0: Int = 1

scala> y.toString
java.util.NoSuchElementException: key not found: 1
  at scala.collection.MapOps.default(Map.scala:217)
  at scala.collection.MapOps.default$(Map.scala:216)
  at scala.collection.AbstractMap.default(Map.scala:343)
  at scala.collection.MapOps.apply(Map.scala:133)
  at scala.collection.MapOps.apply$(Map.scala:132)
  at scala.collection.AbstractMap.apply(Map.scala:343)
  at scala.collection.immutable.VectorMap$$anon$1.next(VectorMap.scala:56)
  at scala.collection.immutable.VectorMap$$anon$1.next(VectorMap.scala:49)
  at scala.collection.Iterator$$anon$9.next(Iterator.scala:552)
  at scala.collection.IterableOnceOps.addString(IterableOnce.scala:1131)
  at scala.collection.IterableOnceOps.addString$(IterableOnce.scala:1126)
  at scala.collection.AbstractIterator.addString(Iterator.scala:1186)
  at scala.collection.MapOps.addString(Map.scala:290)
  at scala.collection.MapOps.addString$(Map.scala:289)
  at scala.collection.AbstractMap.addString(Map.scala:343)
  at scala.collection.IterableOnceOps.mkString(IterableOnce.scala:1076)
  at scala.collection.IterableOnceOps.mkString$(IterableOnce.scala:1074)
  at scala.collection.AbstractIterable.mkString(Iterable.scala:898)
  at scala.collection.Iterable.toString(Iterable.scala:83)
  at scala.collection.Iterable.toString$(Iterable.scala:83)
  at scala.collection.Map.toString(Map.scala:60)
  at scala.collection.Map.toString$(Map.scala:60)
  at scala.collection.AbstractMap.toString(Map.scala:343)
  ... 40 elided

scala> y + (1 -> "c")
res2: scala.collection.immutable.VectorMap[Int,String] = VectorMap(1 -> c, 1 -> c)

/cc @mdedetrich

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions