summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLukas Rytz <lukas.rytz@gmail.com>2014-12-05 16:35:01 +0100
committerLukas Rytz <lukas.rytz@gmail.com>2014-12-11 16:40:00 +0100
commitc24fc38887adb72029e153c27669fe27f089cc42 (patch)
tree5f7516816fdceb42895f5f74afa9542d6a728d46
parentf13fc65f38821dd06da35c488f2be89efec20a4c (diff)
downloadscala-c24fc38887adb72029e153c27669fe27f089cc42.tar.gz
scala-c24fc38887adb72029e153c27669fe27f089cc42.tar.bz2
scala-c24fc38887adb72029e153c27669fe27f089cc42.zip
SI-9030 make BoxesRunTime.equalsNumChar public
When comparing a Number and a Character, the backend directly emits a call to this method.
-rw-r--r--src/library/scala/runtime/BoxesRunTime.java2
-rw-r--r--test/files/run/t9030.scala19
2 files changed, 20 insertions, 1 deletions
diff --git a/src/library/scala/runtime/BoxesRunTime.java b/src/library/scala/runtime/BoxesRunTime.java
index 82a3b00ac4..a6df20165d 100644
--- a/src/library/scala/runtime/BoxesRunTime.java
+++ b/src/library/scala/runtime/BoxesRunTime.java
@@ -183,7 +183,7 @@ public final class BoxesRunTime
return xc.equals(y);
}
- private static boolean equalsNumChar(java.lang.Number xn, java.lang.Character yc) {
+ public static boolean equalsNumChar(java.lang.Number xn, java.lang.Character yc) {
if (yc == null)
return xn == null;
diff --git a/test/files/run/t9030.scala b/test/files/run/t9030.scala
new file mode 100644
index 0000000000..48d24e5b54
--- /dev/null
+++ b/test/files/run/t9030.scala
@@ -0,0 +1,19 @@
+object Test extends App {
+
+ // For these methods, the compiler emits calls to BoxesRuntime.equalsNumNum/equalsNumChar/equalsNumObject directly
+
+ def numNum(a: java.lang.Number, b: java.lang.Number) = assert(a == b)
+ def numChar(a: java.lang.Number, b: java.lang.Character) = assert(a == b)
+ def numObject(a: java.lang.Number, b: java.lang.Object) = assert(a == b)
+
+ // The compiler doesn't use equalsCharObject directly, but still adding an example for completeness
+
+ def charObject(a: java.lang.Character, b: java.lang.Object) = assert(a == b)
+
+ numNum(new Integer(1), new Integer(1))
+ numChar(new Integer(97), new Character('a'))
+ numObject(new Integer(1), new Integer(1))
+ numObject(new Integer(97), new Character('a'))
+
+ charObject(new Character('a'), new Integer(97))
+}