summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/jvm/clojure/lang/LazySeq.java10
-rw-r--r--src/jvm/clojure/lang/PersistentList.java2
2 files changed, 8 insertions, 4 deletions
diff --git a/src/jvm/clojure/lang/LazySeq.java b/src/jvm/clojure/lang/LazySeq.java
index 1769d43f..824af56d 100644
--- a/src/jvm/clojure/lang/LazySeq.java
+++ b/src/jvm/clojure/lang/LazySeq.java
@@ -71,8 +71,7 @@ public class LazySeq extends AFn implements ISeq, List {
}
public boolean equiv(Object o) {
- ISeq s = seq();
- return s == o || (s != null && s.equiv(o));
+ return equals(o);
}
public int hashCode() {
@@ -81,7 +80,12 @@ public class LazySeq extends AFn implements ISeq, List {
public boolean equals(Object o) {
ISeq s = seq();
- return s == o || (s != null && s.equals(o));
+ if( s == o )
+ return true;
+ if( s != null )
+ return s.equiv(o);
+ else
+ return (o instanceof Sequential || o instanceof List) && RT.seq(o) == null;
}
diff --git a/src/jvm/clojure/lang/PersistentList.java b/src/jvm/clojure/lang/PersistentList.java
index d63e80db..9b446e96 100644
--- a/src/jvm/clojure/lang/PersistentList.java
+++ b/src/jvm/clojure/lang/PersistentList.java
@@ -120,7 +120,7 @@ public Object reduce(IFn f, Object start) throws Exception{
}
public boolean equals(Object o) {
- return (o instanceof Sequential || o instanceof List) && RT.count(o) == 0;
+ return (o instanceof Sequential || o instanceof List) && RT.seq(o) == null;
}
public boolean equiv(Object o){