Details
-
Type:
Defect
-
Status:
Closed
-
Priority:
Major
-
Resolution: Completed
-
Affects Version/s: Release 1.4
-
Fix Version/s: Release 1.5
-
Component/s: None
-
Labels:None
-
Patch:Code and Test
-
Approval:Ok
Description
There are two issues:
1) PersistentQueue's hash function doesn't match its equiv function:
(def iq (conj clojure.lang.PersistentQueue/EMPTY (Integer. -1)))
(def lq (conj clojure.lang.PersistentQueue/EMPTY (Long. -1)))
[(= iq lq) (= (hash iq) (hash lq))]
;=> [true false]
2) PersistentQueue's hash function doesn't match PersistentVector's hash:
(def q (conj clojure.lang.PersistentQueue/EMPTY 1 2 3))
[(= [1 2 3] q) (= (hash [1 2 3]) (hash q))]
;=> [true false]
Attachments
Activity
Nicola Mometto
made changes -
| Field | Original Value | New Value |
|---|---|---|
| Attachment | 001-fix-PersistentQueue-hash.clj [ 11499 ] |
Philip Potter
made changes -
| Attachment | 001-make-PersistentQueue-hash-match-equiv.diff [ 11500 ] |
Andy Fingerhut
made changes -
| Patch | Code and Test [ 10002 ] |
Philip Potter
made changes -
| Attachment | 002-make-PersistentQueue-hash-match-equiv.diff [ 11502 ] |
Philip Potter
made changes -
| Assignee | Philip Potter [ ppotter ] |
Chouser
made changes -
| Approval | Screened [ 10004 ] |
Rich Hickey
made changes -
| Approval | Screened [ 10004 ] | Ok [ 10007 ] |
| Fix Version/s | Release 1.5 [ 10150 ] |
Stuart Halloway
made changes -
| Resolution | Completed [ 1 ] | |
| Status | Open [ 1 ] | Closed [ 6 ] |