|
340 | 340 | (str "Could not require " name) cause))))))
|
341 | 341 | (cb {:value true})))))
|
342 | 342 |
|
343 |
| -(declare ns-side-effects analyze-deps) |
344 |
| - |
345 | 343 | (defn- patch-alias-map
|
346 | 344 | [compiler in from to]
|
347 | 345 | (let [patch (fn [k add-if-present?]
|
|
482 | 480 | (cb {:value nil})))
|
483 | 481 |
|
484 | 482 | (defn- rewrite-ns-ast
|
485 |
| - [ast smap] |
486 |
| - (let [rewrite-renames (fn [m] |
487 |
| - (when m |
488 |
| - (reduce (fn [acc [renamed qualified-sym :as entry]] |
489 |
| - (let [from (symbol (namespace qualified-sym)) |
490 |
| - to (get smap from)] |
491 |
| - (if (some? to) |
492 |
| - (assoc acc renamed (symbol (str to) (name qualified-sym))) |
493 |
| - (merge acc entry)))) |
494 |
| - {} m)))] |
495 |
| - (-> ast |
496 |
| - (update :uses #(walk/postwalk-replace smap %)) |
497 |
| - (update :use-macros #(walk/postwalk-replace smap %)) |
498 |
| - (update :requires #(merge smap (walk/postwalk-replace smap %))) |
499 |
| - (update :require-macros #(merge smap (walk/postwalk-replace smap %))) |
500 |
| - (update :renames rewrite-renames) |
501 |
| - (update :rename-macros rewrite-renames)))) |
| 483 | + ([ast smap] |
| 484 | + (rewrite-ns-ast ast smap false)) |
| 485 | + ([ast smap macros?] |
| 486 | + (let [[uk rk renk] (if macros? |
| 487 | + [:use-macros :require-macros :rename-macros] |
| 488 | + [:uses :requires :renames]) |
| 489 | + rewrite-renames (fn [m] |
| 490 | + (when m |
| 491 | + (reduce (fn [acc [renamed qualified-sym :as entry]] |
| 492 | + (let [from (symbol (namespace qualified-sym)) |
| 493 | + to (get smap from)] |
| 494 | + (if (some? to) |
| 495 | + (assoc acc renamed (symbol (str to) (name qualified-sym))) |
| 496 | + (merge acc entry)))) |
| 497 | + {} m)))] |
| 498 | + (-> ast |
| 499 | + (update uk #(walk/postwalk-replace smap %)) |
| 500 | + (update rk #(merge smap (walk/postwalk-replace smap %))) |
| 501 | + (update renk rewrite-renames))))) |
502 | 502 |
|
503 | 503 | (defn- check-macro-autoload-inferring-missing
|
504 | 504 | [{:keys [requires name] :as ast} cenv]
|
|
522 | 522 | (if (#{:ns :ns*} op)
|
523 | 523 | (letfn [(check-uses-and-load-macros [res rewritten-ast]
|
524 | 524 | (let [env (:*compiler* bound-vars)
|
525 |
| - {:keys [uses require-macros use-macros reload reloads name]} rewritten-ast] |
| 525 | + {:keys [uses use-macros reload reloads name]} rewritten-ast] |
526 | 526 | (if (:error res)
|
527 | 527 | (cb res)
|
528 | 528 | (if (:*load-macros* bound-vars)
|
|
532 | 532 | (fn [res]
|
533 | 533 | (if (:error res)
|
534 | 534 | (cb res)
|
535 |
| - (let [{:keys [require-macros] :as rewritten-ast} (rewrite-ns-ast rewritten-ast (:aliased-loads res))] |
| 535 | + (let [{:keys [require-macros] :as rewritten-ast} (rewrite-ns-ast rewritten-ast (:aliased-loads res) true)] |
536 | 536 | (when (:verbose opts) (debug-prn "Processing :require-macros for" (:name ast)))
|
537 | 537 | (load-macros bound-vars :require-macros require-macros name reload reloads opts
|
538 | 538 | (fn [res']
|
539 | 539 | (if (:error res')
|
540 | 540 | (cb res')
|
541 |
| - (let [{:keys [require-macros use-macros] :as rewritten-ast} (rewrite-ns-ast rewritten-ast (:aliased-loads res)) |
| 541 | + (let [{:keys [use-macros] :as rewritten-ast} (rewrite-ns-ast rewritten-ast (:aliased-loads res) true) |
542 | 542 | res' (try
|
543 | 543 | (when (seq use-macros)
|
544 | 544 | (when (:verbose opts) (debug-prn "Checking :use-macros for" (:name ast)))
|
|
0 commit comments