diff options
author | Rich Hickey <richhickey@gmail.com> | 2010-10-18 10:59:36 -0400 |
---|---|---|
committer | Rich Hickey <richhickey@gmail.com> | 2010-10-18 10:59:36 -0400 |
commit | ebcdd71828b1d4ec7df79a1dea963ede3e046ca1 (patch) | |
tree | 36654647a9e6ed94b8fd3b7e3c4b394503acc87c | |
parent | 2987bcdcb5c3151629ba111944a9c2f54db9ef55 (diff) | |
parent | 23746eea2349427de10ace01ef9178c707cebc3e (diff) |
Merge branch 'master' into direct
-rw-r--r-- | src/jvm/clojure/lang/RT.java | 5 | ||||
-rw-r--r-- | src/jvm/clojure/lang/Util.java | 24 |
2 files changed, 27 insertions, 2 deletions
diff --git a/src/jvm/clojure/lang/RT.java b/src/jvm/clojure/lang/RT.java index 2c720c5f..e144855b 100644 --- a/src/jvm/clojure/lang/RT.java +++ b/src/jvm/clojure/lang/RT.java @@ -950,9 +950,10 @@ static public int intCast(float x){ } static public int intCast(long x){ - if(x < Integer.MIN_VALUE || x > Integer.MAX_VALUE) + int i = (int) x; + if(i != x) throw new IllegalArgumentException("Value out of range for int: " + x); - return (int) x; + return i; } static public int intCast(double x){ diff --git a/src/jvm/clojure/lang/Util.java b/src/jvm/clojure/lang/Util.java index 47366026..5b5ee4ec 100644 --- a/src/jvm/clojure/lang/Util.java +++ b/src/jvm/clojure/lang/Util.java @@ -33,6 +33,30 @@ static public boolean equiv(Object k1, Object k2){ return false; } +static public boolean equiv(long k1, long k2){ + return k1 == k2; +} + +static public boolean equiv(Object k1, long k2){ + return equiv(k1, (Object)k2); +} + +static public boolean equiv(long k1, Object k2){ + return equiv((Object)k1, k2); +} + +static public boolean equiv(double k1, double k2){ + return k1 == k2; +} + +static public boolean equiv(Object k1, double k2){ + return equiv(k1, (Object)k2); +} + +static public boolean equiv(double k1, Object k2){ + return equiv((Object)k1, k2); +} + static public boolean pcequiv(Object k1, Object k2){ if(k1 instanceof IPersistentCollection) return ((IPersistentCollection)k1).equiv(k2); |