summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRich Hickey <richhickey@gmail.com>2010-10-18 10:59:36 -0400
committerRich Hickey <richhickey@gmail.com>2010-10-18 10:59:36 -0400
commitebcdd71828b1d4ec7df79a1dea963ede3e046ca1 (patch)
tree36654647a9e6ed94b8fd3b7e3c4b394503acc87c
parent2987bcdcb5c3151629ba111944a9c2f54db9ef55 (diff)
parent23746eea2349427de10ace01ef9178c707cebc3e (diff)
Merge branch 'master' into direct
-rw-r--r--src/jvm/clojure/lang/RT.java5
-rw-r--r--src/jvm/clojure/lang/Util.java24
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);