File tree Expand file tree Collapse file tree 1 file changed +25
-0
lines changed
Expand file tree Collapse file tree 1 file changed +25
-0
lines changed Original file line number Diff line number Diff line change 384384 (let [sym (symbol name)]
385385 (get (:requires (:ns env)) sym sym)))
386386
387+ (defn resolve-macro-ns-alias [env name]
388+ (let [sym (symbol name)]
389+ (get (:require-macros (:ns env)) sym sym)))
390+
387391(defn confirm-ns [env ns-sym]
388392 (when (and (nil? (get '#{cljs.core goog Math goog.string} ns-sym))
389393 (nil? (get (-> env :ns :requires ) ns-sym))
479483 (when (and ev (not (-> ev :dynamic )))
480484 (warning :dynamic env {:ev ev :name (:name ev)})))))
481485
486+ (defn resolve-macro-var [env sym]
487+ (let [ns (-> env :ns :name )
488+ namespaces (get @env/*compiler* ::namespaces )]
489+ (cond
490+ (namespace sym)
491+ (let [ns (namespace sym)
492+ ns (if (= " clojure.core" ns ) " cljs.core" ns )
493+ full-ns (resolve-macro-ns-alias env ns )]
494+ (get-in namespaces [full-ns :macros (symbol (name sym))]))
495+
496+ (get-in namespaces [ns :use-macros sym])
497+ (let [full-ns (get-in namespaces [ns :uses-macros sym])]
498+ (get-in namespaces [full-ns :macros sym]))
499+
500+ :else
501+ (let [ns (cond
502+ (get-in namespaces [ns :macros sym]) ns
503+ (core-name? env sym) 'cljs.core)]
504+ (when ns
505+ (get-in namespaces [ns :macros sym]))))))
506+
482507(defn ns-dependents
483508 ([ns ]
484509 (util/topo-sort ns
You can’t perform that action at this time.
0 commit comments