Share your thoughts in the 2024 State of Clojure Survey!

Welcome! Please see the About page for a little more info on how this works.

+1 vote
in Collections by
closed by
meta on empty collections is lost:


user=> (meta '^:foo [])
nil   ;; expected {:foo true} as in:
user=> (meta '^:foo [1])
{:foo true}


This bug propagates to ^:const vars:

user=> (def ^:const foo ^:foo [])
#'user/foo
user=> (meta foo)
nil
user=> (meta @#'foo)
{:foo true}


*Cause:* As in CLJ-1093, empty collections are replaced with an EmptyExpr that loses meta

*Proposed:* Don't replace with EmptyExpr if meta is present.

*Patch:* 0001-Support-retrieval-of-metadata-from-quoted-empty-lite.patch

*Screened by:*
closed with the note: released

19 Answers

0 votes
by

Comment made by: sohta

Any chance this will be fixed yet? I've run into it recently.

0 votes
by
_Comment made by: alexmiller_

It’s been vetted by Rich so it’s in the path to consideration.
0 votes
by

Comment made by: sohta

Yey! I hope things will go smoothly :)

0 votes
by
Reference: https://clojure.atlassian.net/browse/CLJ-1187 (reported by bronsa)
...