Skip to content

Commit d72323e

Browse files
authored
Merge pull request #4181 from dotty-staging/fix/boolean-eq
Fix #4180: Can't compare Scala and Java Booleans
2 parents b74b492 + 92feee6 commit d72323e

File tree

3 files changed

+12
-3
lines changed

3 files changed

+12
-3
lines changed

library/src/scala/Eq.scala

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,4 +55,7 @@ object Eq extends Eq[Any, Any] {
5555
implicit def eqNumFloat : Eq[Number, Float] = Eq
5656
implicit def eqDoubleNum: Eq[Double, Number] = Eq
5757
implicit def eqNumDouble: Eq[Number, Double] = Eq
58-
}
58+
59+
implicit def eqSBoolJBool: Eq[Boolean, java.lang.Boolean] = Eq
60+
implicit def eqJBoolSBool: Eq[java.lang.Boolean, Boolean] = Eq
61+
}

tests/neg/equality.scala

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -58,8 +58,8 @@ object equality {
5858

5959
1 == true // error
6060

61-
null == true // OK by eqProxy
62-
true == null // error
61+
null == true // OK by eqProxy or eqJBoolSBool
62+
true == null // OK by eqSBoolJBool
6363
null == 1 // OK by eqProxy or eqNumInt
6464
1 == null // OK by eqIntNum
6565

tests/pos/i4180.scala

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
object Test {
2+
def foo(s: Boolean, j: java.lang.Boolean) = {
3+
val a = s == j
4+
val b = j == s
5+
}
6+
}

0 commit comments

Comments
 (0)