Skip to content

Overriding productPrefix breaks case class hash code #13033

Closed
scala/scala
#11023
@lrytz

Description

@lrytz

Since scala/scala#7693

scala> abstract case class C1(a: Int)
     | class C2(a: Int) extends C1(a) { override def productPrefix = "C2" }
     | class C3(a: Int) extends C1(a) { override def productPrefix = "C3" }

scala> val s = collection.mutable.HashSet.empty[C1]

scala> s.addOne(new C2(1))

scala> val c3 = new C3(1)

scala> s.find(_ == c3)
val res1: Option[C1] = Some(C2(1))

scala> s.contains(c3)
val res2: Boolean = false

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions