Skip to content

Commit 1b8f844

Browse files
borkdudemk
andauthored
Exercise transitive deps in test and re-use analyze-doc-deps (#774)
Co-authored-by: Martin Kavalar <martin@nextjournal.com>
1 parent 26f47e6 commit 1b8f844

File tree

2 files changed

+8
-26
lines changed

2 files changed

+8
-26
lines changed

src/nextjournal/clerk/analyzer.clj

Lines changed: 3 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -501,33 +501,12 @@
501501
(filter (comp #{:code} :type)
502502
blocks))))
503503

504-
(defn transitive-deps
505-
([id analysis-info]
506-
(loop [seen #{}
507-
deps #{id}
508-
res #{}]
509-
(if (seq deps)
510-
(let [dep (first deps)]
511-
(if (contains? seen dep)
512-
(recur seen (rest deps) res)
513-
(let [{new-deps :deps} (get analysis-info dep)
514-
seen (conj seen dep)
515-
deps (concat (rest deps) new-deps)
516-
res (into res deps)]
517-
(recur seen deps res))))
518-
res))))
519-
520-
#_(transitive-deps id analysis-info)
521-
522-
#_(transitive-deps :main {:main {:deps [:main :other]}
523-
:other {:deps [:another]}
524-
:another {:deps [:another-one :another :main]}})
525-
526504
(defn run-macros [init-state]
527-
(let [{:keys [blocks ->analysis-info]} init-state
505+
(let [{:keys [blocks]} init-state
528506
macro-block-ids (keep #(when (:macro %)
529507
(:id %)) blocks)
530-
deps (mapcat #(transitive-deps % ->analysis-info) macro-block-ids)
508+
{:keys [graph]} (analyze-doc-deps init-state)
509+
deps (mapcat (partial dep/transitive-dependencies graph) macro-block-ids)
531510
all-block-ids (into (set macro-block-ids) deps)
532511
all-blocks (filter #(contains? all-block-ids (:id %)) blocks)]
533512
(doseq [block all-blocks]

test/nextjournal/clerk/eval_test.clj

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -294,14 +294,17 @@
294294
(remove-ns 'fixture-ns)
295295
(clerk/clear-cache!)
296296
(let [ns "(ns my-random-namespace)
297+
(defn helper-compile-time1 [x] x)
298+
(defn helper-compile-time2 [x] (helper-compile-time1 x))
299+
297300
(defn macro-helper* [x] x)
298301
299302
(defmacro attempt1
300303
[& body]
304+
(helper-compile-time2
301305
`(macro-helper* (try
302306
(do ~@body)
303-
(catch Exception e# e#))))
304-
307+
(catch Exception e# e#)))))
305308
306309
(def a1
307310
(do

0 commit comments

Comments
 (0)