File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change 4747(defmacro import-macros [ns [& vars]]
4848 (core/let [ns (find-ns ns )
4949 vars (map #(ns-resolve ns %) vars)
50- syms (map (core/fn [^clojure.lang.Var v] (core/-> v .sym (with-meta {:macro true }))) vars)
51- defs (map (core/fn [sym var]
52- `(do (def ~sym (deref ~var))
53- ; for AOT compilation
54- (alter-meta! (var ~sym) assoc :macro true )))
55- syms vars)]
56- `(do ~@defs
57- :imported )))
50+ syms (map
51+ (core/fn [^clojure.lang.Var v]
52+ (core/-> v .sym
53+ (with-meta
54+ (merge
55+ {:macro true }
56+ (update-in (select-keys (meta v) [:arglists :doc :file :line ])
57+ [:arglists ] (core/fn [arglists] `(quote ~arglists)))))))
58+ vars)
59+ defs (map
60+ (core/fn [sym var]
61+ (core/let [{:keys [arglists doc file line]} (meta sym)]
62+ `(do
63+ (def ~sym (deref ~var))
64+ ; for AOT compilation
65+ (alter-meta! (var ~sym) assoc
66+ :macro true
67+ :arglists ~arglists
68+ :doc ~doc
69+ :file ~file
70+ :line ~line))))
71+ syms vars)]
72+ `(do ~@defs
73+ :imported )))
5874
5975(import-macros clojure.core
6076 [-> ->> .. assert comment cond
You can’t perform that action at this time.
0 commit comments