Scala的BigDecimal违反了equals/hashCode合约吗?

oxb*_*kes 3 scala equals hashcode bigdecimal

根据Ordered trait需求,equalsScala BigDecimal类的方法与排序一致.但是,哈希码只是从包装中获取java.math.BigDecimal,因此与equals不一致.

object DecTest {
  def main(args: Array[String]) {
    val d1 = BigDecimal("2")
    val d2 = BigDecimal("2.00")
    println(d1 == d2) //prints true
    println(d1.hashCode == d2.hashCode) //prints false
  }
}
Run Code Online (Sandbox Code Playgroud)

我找不到任何关于这是一个已知问题的提法.我错过了什么吗?

oxb*_*kes 7

Scala用户邮件列表上的人似乎同意这是一个错误.我想它直到现在还没有被选中,因为没有人曾经BigDecimal在哈希结构中使用过键作为键.它已被提交为错误#2304