2024年Clojure状态调查!中分享您的看法。

欢迎!请在关于页面查看有关此功能的一些更多信息。

closed

+1
空集合上的元数据丢失


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


此错误会传播到^:const变量

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


*原因:* 与CLJ-1093一样,空集合被替换为一个空的EmptyExpr,丢失了元数据

*建议:* 如果存在元数据,不要替换为EmptyExpr。

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

*审核:**
带注释关闭: 已发布

19 答案

0

由:sohta

这个功能有没有可能修复?我最近遇到了这个问题。

0
由:alexmiller

Rich已经过目,现在正在考虑中。
0

由:sohta

耶!希望一切顺利 :)

0
参考: https://clojure.atlassian.net/browse/CLJ-1187(由bronsa报告)
...