summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorGilles Dubochet <gilles.dubochet@epfl.ch>2008-03-20 14:56:41 +0000
committerGilles Dubochet <gilles.dubochet@epfl.ch>2008-03-20 14:56:41 +0000
commit75b4429e15e88c1b94407b8f1824861bf3125d14 (patch)
tree7498164d3e3b8c6631dcc354c5a799b3ed3360c9 /src
parent6854959bc237babd4012c6466cf9f89044cbb5c3 (diff)
downloadscala-75b4429e15e88c1b94407b8f1824861bf3125d14.tar.gz
scala-75b4429e15e88c1b94407b8f1824861bf3125d14.tar.bz2
scala-75b4429e15e88c1b94407b8f1824861bf3125d14.zip
Fixed issues #584 and #602.
Diffstat (limited to 'src')
-rw-r--r--src/cldc-library/scala/runtime/BoxesRunTime.java26
-rw-r--r--src/compiler/scala/tools/nsc/transform/CleanUp.scala2
-rw-r--r--src/library/scala/runtime/BoxesRunTime.java34
3 files changed, 45 insertions, 17 deletions
diff --git a/src/cldc-library/scala/runtime/BoxesRunTime.java b/src/cldc-library/scala/runtime/BoxesRunTime.java
index 6d50c05627..33c418381a 100644
--- a/src/cldc-library/scala/runtime/BoxesRunTime.java
+++ b/src/cldc-library/scala/runtime/BoxesRunTime.java
@@ -127,27 +127,39 @@ public class BoxesRunTime {
/* UNBOXING ... UNBOXING ... UNBOXING ... UNBOXING ... UNBOXING ... UNBOXING ... UNBOXING */
public static boolean unboxToBoolean(Object b) {
- return b == null ? false : ((Boolean)b).booleanValue();
+ if (b == null)
+ throw new ClassCastException("null is no Boolean value");
+ return ((Boolean)b).booleanValue();
}
public static char unboxToChar(Object c) {
- return c == null ? 0 : ((Character)c).charValue();
+ if (c == null)
+ throw new ClassCastException("null is no Char value");
+ return ((Character)c).charValue();
}
public static byte unboxToByte(Object b) {
- return b == null ? 0 : ((Byte)b).byteValue();
+ if (b == null)
+ throw new ClassCastException("null is no Byte value");
+ return ((Byte)b).byteValue();
}
public static short unboxToShort(Object s) {
- return s == null ? 0 : ((Short)s).shortValue();
+ if (s == null)
+ throw new ClassCastException("null is no Short value");
+ return ((Short)s).shortValue();
}
public static int unboxToInt(Object i) {
- return i == null ? 0 : ((Integer)i).intValue();
+ if (i == null)
+ throw new ClassCastException("null is no Int value");
+ return ((Integer)i).intValue();
}
public static long unboxToLong(Object l) {
- return l == null ? 0 : ((Long)l).longValue();
+ if (l == null)
+ throw new ClassCastException("null is no Long value");
+ return ((Long)l).longValue();
}
/* COMPARISON ... COMPARISON ... COMPARISON ... COMPARISON ... COMPARISON ... COMPARISON */
@@ -192,7 +204,7 @@ public class BoxesRunTime {
}
/** arg1 - arg2 */
- public static Object substract(Object arg1, Object arg2) throws Error {
+ public static Object subtract(Object arg1, Object arg2) throws Error {
throw new Error();
}
diff --git a/src/compiler/scala/tools/nsc/transform/CleanUp.scala b/src/compiler/scala/tools/nsc/transform/CleanUp.scala
index 526662013d..3612a4d62e 100644
--- a/src/compiler/scala/tools/nsc/transform/CleanUp.scala
+++ b/src/compiler/scala/tools/nsc/transform/CleanUp.scala
@@ -257,7 +257,7 @@ abstract class CleanUp extends Transform {
case nme.ADD =>
(definitions.getMember(definitions.BoxesRunTimeClass, newTermName("add")), testForNumber)
case nme.SUB =>
- (definitions.getMember(definitions.BoxesRunTimeClass, newTermName("substract")), testForNumber)
+ (definitions.getMember(definitions.BoxesRunTimeClass, newTermName("subtract")), testForNumber)
case nme.MUL =>
(definitions.getMember(definitions.BoxesRunTimeClass, newTermName("multiply")), testForNumber)
case nme.DIV =>
diff --git a/src/library/scala/runtime/BoxesRunTime.java b/src/library/scala/runtime/BoxesRunTime.java
index 553a1a08d3..932c530901 100644
--- a/src/library/scala/runtime/BoxesRunTime.java
+++ b/src/library/scala/runtime/BoxesRunTime.java
@@ -135,35 +135,51 @@ public class BoxesRunTime {
/* UNBOXING ... UNBOXING ... UNBOXING ... UNBOXING ... UNBOXING ... UNBOXING ... UNBOXING */
public static boolean unboxToBoolean(Object b) {
- return b == null ? false : ((Boolean)b).booleanValue();
+ if (b == null)
+ throw new ClassCastException("null is no Boolean value");
+ return ((Boolean)b).booleanValue();
}
public static char unboxToChar(Object c) {
- return c == null ? 0 : ((Character)c).charValue();
+ if (c == null)
+ throw new ClassCastException("null is no Char value");
+ return ((Character)c).charValue();
}
public static byte unboxToByte(Object b) {
- return b == null ? 0 : ((Byte)b).byteValue();
+ if (b == null)
+ throw new ClassCastException("null is no Byte value");
+ return ((Byte)b).byteValue();
}
public static short unboxToShort(Object s) {
- return s == null ? 0 : ((Short)s).shortValue();
+ if (s == null)
+ throw new ClassCastException("null is no Short value");
+ return ((Short)s).shortValue();
}
public static int unboxToInt(Object i) {
- return i == null ? 0 : ((Integer)i).intValue();
+ if (i == null)
+ throw new ClassCastException("null is no Int value");
+ return ((Integer)i).intValue();
}
public static long unboxToLong(Object l) {
- return l == null ? 0 : ((Long)l).longValue();
+ if (l == null)
+ throw new ClassCastException("null is no Long value");
+ return ((Long)l).longValue();
}
public static float unboxToFloat(Object f) {
- return f == null ? 0.0f : ((Float)f).floatValue();
+ if (f == null)
+ throw new ClassCastException("null is no Float value");
+ return ((Float)f).floatValue();
}
public static double unboxToDouble(Object d) {
- return d == null ? 0.0d : ((Double)d).doubleValue();
+ if (d == null)
+ throw new ClassCastException("null is no Double value");
+ return ((Double)d).doubleValue();
}
/* COMPARISON ... COMPARISON ... COMPARISON ... COMPARISON ... COMPARISON ... COMPARISON */
@@ -240,7 +256,7 @@ public class BoxesRunTime {
}
/** arg1 - arg2 */
- public static Object substract(Object arg1, Object arg2) throws NoSuchMethodException {
+ public static Object subtract(Object arg1, Object arg2) throws NoSuchMethodException {
int code1 = typeCode(arg1);
int code2 = typeCode(arg2);
int maxcode = (code1 < code2) ? code2 : code1;