macro | previously cljs.spec.test/instrument-1 | Edit |
(instrument-1 [quote s] opts)
(defmacro instrument-1
[[quote s] opts]
(when-let [v (ana-api/resolve &env s)]
(let [var-name (:name v)]
(when (and (nil? (:const v))
#?(:cljs (nil? (:macro v)))
(contains? #?(:clj (s/speced-vars)
:cljs (cljs.spec.alpha$macros/speced-vars))
var-name))
(swap! instrumented-vars conj var-name)
`(let [checked# (#'instrument-1* '~s (var ~s) ~opts)]
(when checked# (set! ~s checked#))
'~var-name)))))