summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRich Hickey <richhickey@gmail.com>2007-11-30 13:11:15 +0000
committerRich Hickey <richhickey@gmail.com>2007-11-30 13:11:15 +0000
commit2c5046342298d7f8bf370c0dd5fc13e813936202 (patch)
tree817d33f6129bed237f30787fa287b92a057340f4
parent6d881e2b6f8169605759c4f835d160c70a24a7e2 (diff)
added char coercion function, removed implicit Number conversion to Character
-rw-r--r--src/boot.clj5
-rw-r--r--src/jvm/clojure/lang/Reflector.java4
2 files changed, 6 insertions, 3 deletions
diff --git a/src/boot.clj b/src/boot.clj
index 5baf8898..ff9a0b65 100644
--- a/src/boot.clj
+++ b/src/boot.clj
@@ -666,6 +666,9 @@
(defn byte [#^Number x]
(. x (byteValue)))
+(defn char [x]
+ (. clojure.lang.RT (charCast x)))
+
(defn boolean [x]
(if x
(. Boolean TRUE)
@@ -783,7 +786,7 @@
doto memfn
read *in*
time
- int long float double short byte boolean
+ int long float double short byte boolean char
aget aset aset-boolean aset-int aset-long aset-float aset-double aset-short aset-byte
make-array
actor actor-of !
diff --git a/src/jvm/clojure/lang/Reflector.java b/src/jvm/clojure/lang/Reflector.java
index f789dbd8..0591e4f9 100644
--- a/src/jvm/clojure/lang/Reflector.java
+++ b/src/jvm/clojure/lang/Reflector.java
@@ -267,8 +267,8 @@ static Object boxArg(Class paramType, Object arg){
return n.doubleValue();
else if(paramType == long.class)
return n.longValue();
- else if(paramType == char.class)
- return (char) n.intValue();
+// else if(paramType == char.class)
+// return (char) n.intValue();
else if(paramType == short.class)
return n.shortValue();
else