MCPcopy Index your code
hub / github.com/clojure/clojure / doEquals

Method doEquals

src/jvm/clojure/lang/APersistentVector.java:45–87  ·  view source on GitHub ↗
(IPersistentVector v, Object obj)

Source from the content-addressed store, hash-verified

43}
44
45static boolean doEquals(IPersistentVector v, Object obj){
46 if(obj instanceof IPersistentVector)
47 {
48 IPersistentVector ov = (IPersistentVector) obj;
49 if(ov.count() != v.count())
50 return false;
51 for(int i = 0;i< v.count();i++)
52 {
53 if(!Util.equals(v.nth(i), ov.nth(i)))
54 return false;
55 }
56 return true;
57 }
58 else if(obj instanceof List)
59 {
60 Collection ma = (Collection) obj;
61 if(ma.size() != v.count() || ma.hashCode() != v.hashCode())
62 return false;
63 for(Iterator i1 = ((List) v).iterator(), i2 = ma.iterator();
64 i1.hasNext();)
65 {
66 if(!Util.equals(i1.next(), i2.next()))
67 return false;
68 }
69 return true;
70 }
71 else
72 {
73 if(!(obj instanceof Sequential))
74 return false;
75 ISeq ms = RT.seq(obj);
76 for(int i = 0; i < v.count(); i++, ms = ms.next())
77 {
78 if(ms == null || !Util.equals(v.nth(i), ms.first()))
79 return false;
80 }
81 if(ms != null)
82 return false;
83 }
84
85 return true;
86
87}
88
89static boolean doEquiv(IPersistentVector v, Object obj){
90 if(obj instanceof IPersistentVector)

Callers 1

equalsMethod · 0.95

Calls 10

equalsMethod · 0.95
nextMethod · 0.95
seqMethod · 0.95
firstMethod · 0.95
countMethod · 0.65
nthMethod · 0.65
iteratorMethod · 0.65
sizeMethod · 0.45
hashCodeMethod · 0.45
hasNextMethod · 0.45

Tested by

no test coverage detected