我正尝试在变量上设置一些args列表元数据。但是访问元数据时没有保留args列表。
tmp ❯❯❯ clj -A:cljs -m cljs.main -re node -r
ClojureScript 1.10.773
cljs.user=> (def ^{:arglists '[[x]]} thing 3)
#'cljs.user/thing
cljs.user=> (:arglists (meta #'thing))
()
Clojure中会保留这个数据。
tmp ❯❯❯ clj
Clojure 1.10.1
user=> (def ^{:arglists '[[x]]} thing 3)
#'user/thing
user=> (:arglists (meta #'thing))
[[x]]
在cljs中,它也会保留非arglists元数据。
cljs.user=> (def ^{:foo '[[x]]} thing 3)
#'cljs.user/thing
cljs.user=> (:foo (meta #'thing))
(quote [[x]])
wonder,这个是否是因为ClojureScript中"vars"的独特性质而有必要的行为,还是因为一个bug。
编辑
似乎是bug。Jira任务: https://clojure.atlassian.net/browse/CLJS-3277