Skip to content

Commit 1df205c

Browse files
puredangerstuarthalloway
authored andcommitted
CLJ-2417 sort and sort-by should retain meta
Signed-off-by: Stuart Halloway <[email protected]>
1 parent f27f6de commit 1df205c

File tree

2 files changed

+5
-1
lines changed

2 files changed

+5
-1
lines changed

src/clj/clojure/core.clj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3105,7 +3105,7 @@
31053105
(if (seq coll)
31063106
(let [a (to-array coll)]
31073107
(. java.util.Arrays (sort a comp))
3108-
(seq a))
3108+
(with-meta (seq a) (meta coll)))
31093109
())))
31103110

31113111
(defn sort-by

test/clojure/test_clojure/sequences.clj

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1364,3 +1364,7 @@
13641364
(doseq [i (range 100)]
13651365
(is (= s1 (concat (subseq s2 < i) (subseq s2 >= i))))
13661366
(is (= (reverse s1) (concat (rsubseq s2 >= i) (rsubseq s2 < i)))))))
1367+
1368+
(deftest test-sort-retains-meta
1369+
(= {:a true} (meta (sort (with-meta (range 10) {:a true}))))
1370+
(= {:a true} (meta (sort-by :a (with-meta (seq [{:a 5} {:a 2} {:a 3}]) {:a true})))))

0 commit comments

Comments
 (0)