diff --git a/sci b/sci index 870ff5cb..7452e4d3 160000 --- a/sci +++ b/sci @@ -1 +1 @@ -Subproject commit 870ff5cbdb75b13891b049fe961133b7c34e48fd +Subproject commit 7452e4d328d1be6c4d639ed34999ca714be1ba3c diff --git a/src/babashka/impl/clojure/spec/alpha.clj b/src/babashka/impl/clojure/spec/alpha.clj index aea90ddd..2df93012 100644 --- a/src/babashka/impl/clojure/spec/alpha.clj +++ b/src/babashka/impl/clojure/spec/alpha.clj @@ -367,6 +367,10 @@ (let [k (if (symbol? k) (ns-qualify k) k)] `(clojure.spec.alpha/def-impl '~k '~(res spec-form) ~spec-form))) +(defmacro internal-def + [k spec-form] + `(def-impl '~k '~(res spec-form) ~spec-form)) + (defn registry "returns the registry map, prefer 'get-spec' to lookup a spec by name" [] @@ -940,7 +944,10 @@ (specize* [s _] s) Spec - (conform* [_ x] (let [ret (pred x)] + (conform* [_ x] (let [;; _ (prn :pred pred :descr (describe pred) :x x) + ret (pred x) + ;; _ (prn :ret ret) + ] (if cpred? ret (if ret x :clojure.spec.alpha/invalid)))) @@ -1806,7 +1813,7 @@ (describe* [_] `(clojure.spec.alpha/fspec :args ~aform :ret ~rform :fn ~fform))))) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; non-primitives ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -(babashka.impl.clojure.spec.alpha/def +(internal-def :clojure.spec.alpha/kvs->map (conformer #(zipmap (map :clojure.spec.alpha/k %) (map :clojure.spec.alpha/v %)) #(map (fn [[k v]] {:clojure.spec.alpha/k k :clojure.spec.alpha/v v}) %)))