File tree Expand file tree Collapse file tree 1 file changed +24
-8
lines changed Expand file tree Collapse file tree 1 file changed +24
-8
lines changed Original file line number Diff line number Diff line change 47
47
(defmacro import-macros [ns [& vars]]
48
48
(core/let [ns (find-ns ns )
49
49
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 )))
58
74
59
75
(import-macros clojure.core
60
76
[-> ->> .. assert comment cond
You can’t perform that action at this time.
0 commit comments