This commit is contained in:
Michiel Borkent 2022-04-03 17:29:30 +02:00
parent ced77f4ae5
commit 9e520f3a9c
2 changed files with 17 additions and 5 deletions

View file

@ -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

View file

@ -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,