From df8c65a286e90e93972bb69392bc106128427dde Mon Sep 17 00:00:00 2001 From: Rich Hickey Date: Mon, 18 Oct 2010 09:15:01 -0400 Subject: support primitive = for longs and doubles --- src/jvm/clojure/lang/Util.java | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) (limited to 'src') 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); -- cgit v1.2.3-70-g09d2 From 23746eea2349427de10ace01ef9178c707cebc3e Mon Sep 17 00:00:00 2001 From: Rich Hickey Date: Mon, 18 Oct 2010 10:28:05 -0400 Subject: tweak int coercion perf --- src/jvm/clojure/lang/RT.java | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'src') diff --git a/src/jvm/clojure/lang/RT.java b/src/jvm/clojure/lang/RT.java index 97abd85a..0dba3399 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){ -- cgit v1.2.3-70-g09d2