Skip to content

Commit

Permalink
CLJS-1090: macros imported from clojure.core missing docs
Browse files Browse the repository at this point in the history
Need to copy over additional metadata from original var.
  • Loading branch information
swannodette committed Mar 12, 2015
1 parent 4b80a31 commit 70e73c5
Showing 1 changed file with 24 additions and 8 deletions.
32 changes: 24 additions & 8 deletions src/clj/cljs/core.clj
Expand Up @@ -47,14 +47,30 @@
(defmacro import-macros [ns [& vars]]
(core/let [ns (find-ns ns)
vars (map #(ns-resolve ns %) vars)
syms (map (core/fn [^clojure.lang.Var v] (core/-> v .sym (with-meta {:macro true}))) vars)
defs (map (core/fn [sym var]
`(do (def ~sym (deref ~var))
;for AOT compilation
(alter-meta! (var ~sym) assoc :macro true)))
syms vars)]
`(do ~@defs
:imported)))
syms (map
(core/fn [^clojure.lang.Var v]
(core/-> v .sym
(with-meta
(merge
{:macro true}
(update-in (select-keys (meta v) [:arglists :doc :file :line])
[:arglists] (core/fn [arglists] `(quote ~arglists)))))))
vars)
defs (map
(core/fn [sym var]
(core/let [{:keys [arglists doc file line]} (meta sym)]
`(do
(def ~sym (deref ~var))
;for AOT compilation
(alter-meta! (var ~sym) assoc
:macro true
:arglists ~arglists
:doc ~doc
:file ~file
:line ~line))))
syms vars)]
`(do ~@defs
:imported)))

(import-macros clojure.core
[-> ->> .. assert comment cond
Expand Down

0 comments on commit 70e73c5

Please sign in to comment.