Skip to content

Commit 712a8d8

Browse files
mfikesswannodette
authored andcommitted
CLJS-1740: Self-host: Need to port more of CLJS-1733
This ports more of the changes for CLJS-1733, covering 2 items: 1. Move the missing that is calculated early in the let to be calculated later at its use site (agument to ana/check-uses). 2. Bind ana/*analyze-deps* when calling check-use-macros-inferring-missing and check-rename-macros-inferring-missing as this dynamic var is consulted inside those fns.
1 parent 252f389 commit 712a8d8

File tree

1 file changed

+43
-41
lines changed

1 file changed

+43
-41
lines changed

src/main/cljs/cljs/js.cljs

Lines changed: 43 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -449,49 +449,51 @@
449449
{:keys [uses requires require-macros use-macros reload reloads]} rewritten-ast]
450450
(if (:error res)
451451
(cb res)
452-
(let [missing (when (and (:*analyze-deps* bound-vars) (seq uses))
453-
(ana/missing-uses uses env))]
454-
(if (:*load-macros* bound-vars)
455-
(do
456-
(when (:verbose opts) (debug-prn "Processing :use-macros for" (:name ast)))
457-
(load-macros bound-vars :use-macros use-macros reload reloads opts
458-
(fn [res]
459-
(if (:error res)
460-
(cb res)
461-
(do
462-
(when (:verbose opts) (debug-prn "Processing :require-macros for" (:name ast)))
463-
(load-macros bound-vars :require-macros require-macros reloads reloads opts
464-
(fn [res]
465-
(if (:error res)
466-
(cb res)
467-
(let [res (try
468-
(when (seq use-macros)
469-
(when (:verbose opts) (debug-prn "Checking :use-macros for" (:name ast)))
470-
(ana/check-use-macros use-macros env))
471-
{:value nil}
472-
(catch :default cause
473-
(wrap-error
474-
(ana/error ana-env
475-
(str "Could not parse ns form " (:name ast)) cause))))]
476-
(if (:error res)
477-
(cb res)
478-
(try
479-
(let [ast' (-> rewritten-ast
452+
(if (:*load-macros* bound-vars)
453+
(do
454+
(when (:verbose opts) (debug-prn "Processing :use-macros for" (:name ast)))
455+
(load-macros bound-vars :use-macros use-macros reload reloads opts
456+
(fn [res]
457+
(if (:error res)
458+
(cb res)
459+
(do
460+
(when (:verbose opts) (debug-prn "Processing :require-macros for" (:name ast)))
461+
(load-macros bound-vars :require-macros require-macros reloads reloads opts
462+
(fn [res]
463+
(if (:error res)
464+
(cb res)
465+
(let [res (try
466+
(when (seq use-macros)
467+
(when (:verbose opts) (debug-prn "Checking :use-macros for" (:name ast)))
468+
(ana/check-use-macros use-macros env))
469+
{:value nil}
470+
(catch :default cause
471+
(wrap-error
472+
(ana/error ana-env
473+
(str "Could not parse ns form " (:name ast)) cause))))]
474+
(if (:error res)
475+
(cb res)
476+
(try
477+
(binding [ana/*analyze-deps* (:*analyze-deps* bound-vars)]
478+
(let [ast' (-> rewritten-ast
480479
(ana/check-use-macros-inferring-missing env)
481480
(ana/check-rename-macros-inferring-missing env))]
482-
(cb {:value ast'}))
483-
(catch :default cause
484-
(cb (wrap-error
485-
(ana/error ana-env
486-
(str "Could not parse ns form " (:name ast)) cause)))))))))))))))
487-
(try
488-
(when (:verbose opts) (debug-prn "Checking uses"))
489-
(ana/check-uses missing env)
490-
(cb {:value ast})
491-
(catch :default cause
492-
(cb (wrap-error
493-
(ana/error ana-env
494-
(str "Could not parse ns form " (:name ast)) cause))))))))))]
481+
(cb {:value ast'})))
482+
(catch :default cause
483+
(cb (wrap-error
484+
(ana/error ana-env
485+
(str "Could not parse ns form " (:name ast)) cause)))))))))))))))
486+
(try
487+
(when (:verbose opts) (debug-prn "Checking uses"))
488+
(ana/check-uses
489+
(when (and (:*analyze-deps* bound-vars) (seq uses))
490+
(ana/missing-uses uses env))
491+
env)
492+
(cb {:value ast})
493+
(catch :default cause
494+
(cb (wrap-error
495+
(ana/error ana-env
496+
(str "Could not parse ns form " (:name ast)) cause)))))))))]
495497
(cond
496498
(and load (seq (:deps ast)))
497499
(load-deps bound-vars ana-env (:name ast) (:deps ast) (dissoc opts :macros-ns)

0 commit comments

Comments
 (0)