summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/jvm/clojure/lang/Num.java2
-rw-r--r--src/jvm/clojure/lang/RT.java11
2 files changed, 11 insertions, 2 deletions
diff --git a/src/jvm/clojure/lang/Num.java b/src/jvm/clojure/lang/Num.java
index 5d8df4f5..7c5e0526 100644
--- a/src/jvm/clojure/lang/Num.java
+++ b/src/jvm/clojure/lang/Num.java
@@ -144,6 +144,8 @@ static public Num divide(BigInteger n, BigInteger d){
}
static public boolean equiv(Object x, Object y){
+ if(!(y instanceof Number && x instanceof Number))
+ return false;
return Num.from(x).equiv(Num.from(y));
}
diff --git a/src/jvm/clojure/lang/RT.java b/src/jvm/clojure/lang/RT.java
index 4edfc3bd..6937afcb 100644
--- a/src/jvm/clojure/lang/RT.java
+++ b/src/jvm/clojure/lang/RT.java
@@ -208,8 +208,15 @@ static public int nextID(){
}
static public boolean equal(Object k1, Object k2){
- return k1 == k2 ||
- (k1 != null && k1.equals(k2));
+ if(k1 == k2)
+ return true;
+ if(k1 != null)
+ {
+ if(k1 instanceof Number)
+ return Num.equiv(k1, k2);
+ return k1.equals(k2);
+ }
+ return false;
}
//static public Object eq(Object arg1, Object arg2){