diff options
-rw-r--r-- | src/boot.clj | 4 | ||||
-rw-r--r-- | src/jvm/clojure/lang/RT.java | 4 |
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){ |