Skip to content

Commit 0b930f1

Browse files
puredangerstuarthalloway
authored andcommitted
CLJ-2027 Defer calling empty until later in namespace map printing
Signed-off-by: Stuart Halloway <stu@cognitect.com>
1 parent 48966ee commit 0b930f1

File tree

2 files changed

+6
-3
lines changed

2 files changed

+6
-3
lines changed

src/clj/clojure/core_print.clj

+2-2
Original file line numberDiff line numberDiff line change
@@ -236,15 +236,15 @@
236236
(when *print-namespace-maps*
237237
(loop [ns nil
238238
[[k v :as entry] & entries] (seq m)
239-
lm (empty m)]
239+
lm {}]
240240
(if entry
241241
(when (or (keyword? k) (symbol? k))
242242
(if ns
243243
(when (= ns (namespace k))
244244
(recur ns entries (assoc lm (strip-ns k) v)))
245245
(when-let [new-ns (namespace k)]
246246
(recur new-ns entries (assoc lm (strip-ns k) v)))))
247-
[ns lm]))))
247+
[ns (apply conj (empty m) lm)]))))
248248

249249
(defmethod print-method clojure.lang.IPersistentMap [m, ^Writer w]
250250
(print-meta m w)

test/clojure/test_clojure/printer.clj

+4-1
Original file line numberDiff line numberDiff line change
@@ -136,4 +136,7 @@
136136

137137
(deftest print-ns-maps
138138
(is (= "#:user{:a 1}" (binding [*print-namespace-maps* true] (pr-str {:user/a 1}))))
139-
(is (= "{:user/a 1}" (binding [*print-namespace-maps* false] (pr-str {:user/a 1})))))
139+
(is (= "{:user/a 1}" (binding [*print-namespace-maps* false] (pr-str {:user/a 1}))))
140+
(let [date-map (bean (java.util.Date. 0))]
141+
(is (= (binding [*print-namespace-maps* true] (pr-str date-map))
142+
(binding [*print-namespace-maps* false] (pr-str date-map))))))

0 commit comments

Comments
 (0)