From 9e520f3a9c3787c2142ebeff9987a01c0e3e95f4 Mon Sep 17 00:00:00 2001 From: Michiel Borkent Date: Sun, 3 Apr 2022 17:29:30 +0200 Subject: [PATCH] wip --- feature-spec-alpha/babashka/impl/spec.clj | 16 ++++++++++++++-- src/babashka/impl/clojure/spec/alpha.clj | 6 +++--- 2 files changed, 17 insertions(+), 5 deletions(-) diff --git a/feature-spec-alpha/babashka/impl/spec.clj b/feature-spec-alpha/babashka/impl/spec.clj index 34a280f6..69544792 100644 --- a/feature-spec-alpha/babashka/impl/spec.clj +++ b/feature-spec-alpha/babashka/impl/spec.clj @@ -56,6 +56,8 @@ 'every (copy-var s/every sns) 'every-impl (copy-var s/every-impl sns) 'every-kv (copy-var s/every-kv sns) + 'keys (copy-var s/keys sns) + 'map-spec-impl (copy-var s/map-spec-impl sns) 'map-of (copy-var s/map-of sns) 'spec (copy-var s/spec sns) 'spec-impl (copy-var s/spec-impl sns) @@ -68,7 +70,16 @@ 'double-in (copy-var s/double-in sns) 'inst-in (copy-var s/inst-in sns) 'inst-in-range? (copy-var s/inst-in-range? sns) - #_#_'explain-data (copy-var s/explain-data sns)}) + 'conform (copy-var s/conform sns) + 'explain-data (copy-var s/explain-data sns) + 'describe (copy-var s/describe sns) + 'form (copy-var s/form sns) + 'unform (copy-var s/unform sns) + 'nilable (copy-var s/nilable sns) + 'nilable-impl (copy-var s/nilable-impl sns) + 'nonconforming (copy-var s/nonconforming sns) + 'get-spec (copy-var s/get-spec sns) + 'exercise (copy-var s/exercise sns)}) #_:clj-kondo/ignore (def test-namespace @@ -80,7 +91,8 @@ {'fmap (copy-var gen/fmap gns) 'generate (copy-var gen/generate gns) 'large-integer* (copy-var gen/large-integer* gns) - 'double* (copy-var gen/double* gns)}) + 'double* (copy-var gen/double* gns) + 'return (copy-var gen/return gns)}) ;; def-impl ;; -> spec? ;; OK diff --git a/src/babashka/impl/clojure/spec/alpha.clj b/src/babashka/impl/clojure/spec/alpha.clj index a5aa9a01..446bf88b 100644 --- a/src/babashka/impl/clojure/spec/alpha.clj +++ b/src/babashka/impl/clojure/spec/alpha.clj @@ -471,7 +471,7 @@ pred-exprs (mapv (fn [e] `(fn* [~gx] ~e)) pred-exprs) pred-forms (walk/postwalk res pred-exprs)] ;; `(map-spec-impl ~req-keys '~req ~opt '~pred-forms ~pred-exprs ~gen) - `(map-spec-impl {:req '~req :opt '~opt :req-un '~req-un :opt-un '~opt-un + `(clojure.spec.alpha/map-spec-impl {:req '~req :opt '~opt :req-un '~req-un :opt-un '~opt-un :req-keys '~req-keys :req-specs '~req-specs :opt-keys '~opt-keys :opt-specs '~opt-specs :pred-forms '~pred-forms @@ -1815,7 +1815,7 @@ [& kspecs] `(let [mspec# (keys ~@kspecs)] (with-gen (clojure.spec.alpha/& (* (cat ::k keyword? ::v any?)) ::kvs->map mspec#) - (fn [] (gen/fmap (fn [m#] (apply concat m#)) (gen mspec#)))))) + (fn [] (clojure.spec.gen.alpha/fmap (fn [m#] (apply concat m#)) (gen mspec#)))))) (defn ^:skip-wiki nonconforming "takes a spec and returns a spec that has the same properties except @@ -1868,7 +1868,7 @@ "returns a spec that accepts nil and values satisfying pred" [pred] (let [pf (res pred)] - `(nilable-impl '~pf ~pred nil))) + `(clojure.spec.alpha/nilable-impl '~pf ~pred nil))) (defn exercise "generates a number (default 10) of values compatible with spec and maps conform over them,