store/[org.clojure/core.typed "0.2.82"] clj::clojure.core.typed.collect-utils/collect-ns*

Official Documentation

Add notes
Arities
==================================================
   [nsym {:keys [ast-for-ns collect-asts collect-ns]}]

Docstring
==================================================
  Collect type annotations and dependency information
  for namespace symbol nsym, and recursively check 
  declared typed namespace dependencies.

Source

(defn collect-ns*
  "Collect type annotations and dependency information
  for namespace symbol nsym, and recursively check 
  declared typed namespace dependencies."
  ([nsym {:keys [ast-for-ns collect-asts
                 collect-ns]}]
   {:pre [(symbol? nsym)
          ast-for-ns
          collect-asts
          collect-ns]}
   (p/p :collect-phase-utils/collect-ns
   (if (already-collected? nsym)
     (do #_(println (str "Already collected " nsym ", skipping"))
         #_(flush)
         nil)
     ; assume we're collecting this namespace, but only collect
     ; dependencies if they appear to refer to clojure.core.tyoed
     (do (collected-ns! nsym)
         (println (str "Start collecting " nsym))
         (flush)
         ;collect dependencies
         (let [deps (dep-u/deps-for-ns nsym)]
           (doseq [dep deps
                   :when (dep-u/should-check-ns? dep)]
             (collect-ns dep)))
         ;collect this namespace
         (let [asts (p/p :collect-phase/get-clj-analysis (ast-for-ns nsym))]
           (p/p :collect/collect-form
              (collect-asts asts)))
         (println (str "Finished collecting " nsym))
         (flush))))))

Uses on crossclj