请在2024年Clojure调查!中分享您的想法。

欢迎!请查阅关于页面以了解更多关于如何使用本站的信息。

0
REPL
clj -Sdeps '{:deps {org.clojure/clojurescript {:mvn/version "RELEASE"}}}'
Clojure 1.10.3
user=> (require '[cljs.analyzer.api :as api])
nil
user=> (source api/ns-publics)
Execution error at user/eval138 (REPL:1).
Invalid token: ::ana/namespaces
user=>

不确定这是否是一个已知的错误。

ns-publics的源头

(defn ns-publics
  "Given a namespace return all the public var analysis maps. Analagous to
  clojure.core/ns-publics but returns var analysis maps not vars."
  ([ns]
   (ns-publics env/*compiler* ns))
  ([state ns]
   {:pre [(symbol? ns)]}
   (->> (merge
          (get-in @state [::ana/namespaces ns :macros])
          (get-in @state [::ana/namespaces ns :defs]))
        (remove (fn [[k v]] (:private v)))
        (into {}))))

1 答案

+1

选择
 
最佳答案

我认为我们可能已经在某处记录了这个问题,这涉及到源宏没有ns上下文来在读取时解析自动解析的关键字,而现在有了可插拔的解析器,这肯定是可以修复的。

...