diff options
author | Lukas Rytz <lukas.rytz@gmail.com> | 2014-12-05 16:35:01 +0100 |
---|---|---|
committer | Lukas Rytz <lukas.rytz@gmail.com> | 2014-12-11 16:40:00 +0100 |
commit | c24fc38887adb72029e153c27669fe27f089cc42 (patch) | |
tree | 5f7516816fdceb42895f5f74afa9542d6a728d46 | |
parent | f13fc65f38821dd06da35c488f2be89efec20a4c (diff) | |
download | scala-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.java | 2 | ||||
-rw-r--r-- | test/files/run/t9030.scala | 19 |
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)) +} |