summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/boot.clj4
-rw-r--r--src/jvm/clojure/lang/RT.java4
2 files changed, 5 insertions, 3 deletions
diff --git a/src/boot.clj b/src/boot.clj
index 9a6f2002..3f9a27bd 100644
--- a/src/boot.clj
+++ b/src/boot.clj
@@ -782,8 +782,8 @@
ret#))
-(defn int [#^Number x]
- (. x (intValue)))
+(defn int [x]
+ (. clojure.lang.RT (intCast x)))
(defn long [#^Number x]
(. x (longValue)))
diff --git a/src/jvm/clojure/lang/RT.java b/src/jvm/clojure/lang/RT.java
index e657459d..1b63f7af 100644
--- a/src/jvm/clojure/lang/RT.java
+++ b/src/jvm/clojure/lang/RT.java
@@ -491,7 +491,9 @@ static public short shortCast(Object x){
}
static public int intCast(Object x){
- return ((Number) x).intValue();
+ if(x instanceof Number)
+ return ((Number) x).intValue();
+ return ((Character) x).charValue();
}
static public long longCast(Object x){