Skip to content

Commit 065fcad

Browse files
committed
Fixed equals and hashcode #37
1 parent 8c5b1be commit 065fcad

File tree

4 files changed

+36
-0
lines changed

4 files changed

+36
-0
lines changed

js/src/main/scala-2.10/scalajson.ast/unsafe/JValue.scala

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -109,6 +109,15 @@ final case class JNumber(value: String, constructedFlag: Int = 0)
109109
case n => n
110110
}
111111

112+
override def equals(obj: scala.Any): Boolean = {
113+
obj match {
114+
case jNumber: JNumber => jNumber.value == this.value
115+
case _ => false
116+
}
117+
}
118+
119+
override def hashCode(): Int = value.##
120+
112121
def toInt: Option[Long] = {
113122
if ((constructedFlag & NumberFlags.int) == NumberFlags.int)
114123
Some(value.toInt)

js/src/main/scala/scalajson/ast/unsafe/JValue.scala

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -103,6 +103,15 @@ final case class JNumber(value: String, constructedFlag: Int = 0)
103103
case n => n
104104
}
105105

106+
override def equals(obj: scala.Any): Boolean = {
107+
obj match {
108+
case jNumber: JNumber => jNumber.value == this.value
109+
case _ => false
110+
}
111+
}
112+
113+
override def hashCode(): Int = value.##
114+
106115
def toInt: Option[Long] = {
107116
if ((constructedFlag & NumberFlags.int) == NumberFlags.int)
108117
Some(value.toInt)

jvm/src/main/scala-2.10/scalajson.ast/unsafe/JValue.scala

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -87,6 +87,15 @@ final case class JNumber(value: String, constructedFlag: Int = 0)
8787
case _ => throw new NumberFormatException(value)
8888
}
8989

90+
override def equals(obj: scala.Any): Boolean = {
91+
obj match {
92+
case jNumber: JNumber => jNumber.value == this.value
93+
case _ => false
94+
}
95+
}
96+
97+
override def hashCode(): Int = value.##
98+
9099
def toInt: Option[Long] = {
91100
if ((constructedFlag & NumberFlags.int) == NumberFlags.int)
92101
Some(value.toInt)

jvm/src/main/scala/scalajson/ast/unsafe/JValue.scala

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -90,6 +90,15 @@ final case class JNumber(value: String, constructedFlag: Int = 0)
9090
case _ => throw new NumberFormatException(value)
9191
}
9292

93+
override def equals(obj: scala.Any): Boolean = {
94+
obj match {
95+
case jNumber: JNumber => jNumber.value == this.value
96+
case _ => false
97+
}
98+
}
99+
100+
override def hashCode(): Int = value.##
101+
93102
def toInt: Option[Long] = {
94103
if ((constructedFlag & NumberFlags.int) == NumberFlags.int)
95104
Some(value.toInt)

0 commit comments

Comments
 (0)