5757 (let [k (if (symbol? k) (ns-qualify &env k) k)
5858 form (res &env spec-form)]
5959 (swap! registry-ref assoc k form)
60- `(cljs.spec/ def-impl '~k '~form ~spec-form)))
60+ `(def-impl '~k '~form ~spec-form)))
6161
6262(defmacro spec
6363 " Takes a single predicate form, e.g. can be the name of a predicate,
7676 Returns a spec."
7777 [form & {:keys [gen]}]
7878 (when form
79- `(cljs.spec/ spec-impl '~(res &env form) ~form ~gen nil )))
79+ `(spec-impl '~(res &env form) ~form ~gen nil )))
8080
8181(defmacro multi-spec
8282 " Takes the name of a spec/predicate-returning multimethod and a
105105 though those values are not evident in the spec.
106106"
107107 [mm retag]
108- `(cljs.spec/ multi-spec-impl '~(res &env mm) (var ~mm) ~retag))
108+ `(multi-spec-impl '~(res &env mm) (var ~mm) ~retag))
109109
110110(defmacro keys
111111 " Creates and returns a map validating spec. :req and :opt are both
160160 pred-exprs (into pred-exprs (parse-req req-un unk))
161161 pred-forms (walk/postwalk #(res &env %) pred-exprs)]
162162 ; ; `(map-spec-impl ~req-keys '~req ~opt '~pred-forms ~pred-exprs ~gen)
163- `(cljs.spec/ map-spec-impl {:req '~req :opt '~opt :req-un '~req-un :opt-un '~opt-un
164- :req-keys '~req-keys :req-specs '~req-specs
165- :opt-keys '~opt-keys :opt-specs '~opt-specs
166- :pred-forms '~pred-forms
167- :pred-exprs ~pred-exprs
168- :gfn ~gen})))
163+ `(map-spec-impl {:req '~req :opt '~opt :req-un '~req-un :opt-un '~opt-un
164+ :req-keys '~req-keys :req-specs '~req-specs
165+ :opt-keys '~opt-keys :opt-specs '~opt-specs
166+ :pred-forms '~pred-forms
167+ :pred-exprs ~pred-exprs
168+ :gfn ~gen})))
169169
170170(defmacro or
171171 " Takes key+pred pairs, e.g.
182182 pred-forms (mapv second pairs)
183183 pf (mapv #(res &env %) pred-forms)]
184184 (clojure.core/assert (clojure.core/and (even? (count key-pred-forms)) (every? keyword? keys)) " spec/or expects k1 p1 k2 p2..., where ks are keywords" )
185- `(cljs.spec/ or-spec-impl ~keys '~pf ~pred-forms nil )))
185+ `(or-spec-impl ~keys '~pf ~pred-forms nil )))
186186
187187(defmacro and
188188 " Takes predicate/spec-forms, e.g.
192192 Returns a spec that returns the conformed value. Successive
193193 conformed values propagate through rest of predicates."
194194 [& pred-forms]
195- `(cljs.spec/ and-spec-impl '~(mapv #(res &env %) pred-forms) ~(vec pred-forms) nil ))
195+ `(and-spec-impl '~(mapv #(res &env %) pred-forms) ~(vec pred-forms) nil ))
196196
197197(defmacro every
198198 " takes a pred and validates collection elements against that pred.
224224 See also - coll-of, every-kv
225225"
226226 [pred & {:keys [into kind count max-count min-count distinct gen-max gen-into gen] :as opts}]
227- (let [nopts (-> opts (dissoc :gen ) (assoc :cljs.spec/ kind-form `'~(res &env (:kind opts))))]
228- `(cljs.spec/ every-impl '~pred ~pred ~nopts ~gen)))
227+ (let [nopts (-> opts (dissoc :gen ) (assoc :: kind-form `'~(res &env (:kind opts))))]
228+ `(every-impl '~pred ~pred ~nopts ~gen)))
229229
230230(defmacro every-kv
231231 " like 'every' but takes separate key and val preds and works on associative collections.
235235 See also - map-of"
236236
237237 [kpred vpred & opts]
238- `(every (tuple ~kpred ~vpred) :cljs.spec/ kfn (fn [i# v#] (nth v# 0 )) :into {} ~@opts))
238+ `(every (tuple ~kpred ~vpred) :: kfn (fn [i# v#] (nth v# 0 )) :into {} ~@opts))
239239
240240(defmacro coll-of
241241 " Returns a spec for a collection of items satisfying pred. Unlike
249249
250250 See also - every, map-of"
251251 [pred & opts]
252- `(every ~pred :cljs.spec/ conform-all true ~@opts))
252+ `(every ~pred :: conform-all true ~@opts))
253253
254254(defmacro map-of
255255 " Returns a spec for a map whose keys satisfy kpred and vals satisfy
262262
263263 See also - every-kv"
264264 [kpred vpred & opts]
265- `(every-kv ~kpred ~vpred :cljs.spec/ conform-all true :kind map? ~@opts))
265+ `(every-kv ~kpred ~vpred :: conform-all true :kind map? ~@opts))
266266
267267(defmacro *
268268 " Returns a regex op that matches zero or more values matching
269269 pred. Produces a vector of matches iff there is at least one match"
270270 [pred-form]
271- `(cljs.spec/ rep-impl '~(res &env pred-form) ~pred-form))
271+ `(rep-impl '~(res &env pred-form) ~pred-form))
272272
273273(defmacro +
274274 " Returns a regex op that matches one or more values matching
275275 pred. Produces a vector of matches"
276276 [pred-form]
277- `(cljs.spec/ rep+impl '~(res &env pred-form) ~pred-form))
277+ `(rep+impl '~(res &env pred-form) ~pred-form))
278278
279279(defmacro ?
280280 " Returns a regex op that matches zero or one value matching
281281 pred. Produces a single value (not a collection) if matched."
282282 [pred-form]
283- `(cljs.spec/ maybe-impl ~pred-form '~pred-form))
283+ `(maybe-impl ~pred-form '~pred-form))
284284
285285(defmacro alt
286286 " Takes key+pred pairs, e.g.
297297 pred-forms (mapv second pairs)
298298 pf (mapv #(res &env %) pred-forms)]
299299 (clojure.core/assert (clojure.core/and (even? (count key-pred-forms)) (every? keyword? keys)) " alt expects k1 p1 k2 p2..., where ks are keywords" )
300- `(cljs.spec/ alt-impl ~keys ~pred-forms '~pf)))
300+ `(alt-impl ~keys ~pred-forms '~pf)))
301301
302302(defmacro cat
303303 " Takes key+pred pairs, e.g.
313313 pf (mapv #(res &env %) pred-forms)]
314314 ; ;(prn key-pred-forms)
315315 (clojure.core/assert (clojure.core/and (even? (count key-pred-forms)) (every? keyword? keys)) " cat expects k1 p1 k2 p2..., where ks are keywords" )
316- `(cljs.spec/ cat-impl ~keys ~pred-forms '~pf)))
316+ `(cat-impl ~keys ~pred-forms '~pf)))
317317
318318(defmacro &
319319 " takes a regex op re, and predicates. Returns a regex-op that consumes
320320 input as per re but subjects the resulting value to the
321321 conjunction of the predicates, and any conforming they might perform."
322322 [re & preds]
323323 (let [pv (vec preds)]
324- `(cljs.spec/ amp-impl ~re ~pv '~(mapv #(res &env %) pv))))
324+ `(amp-impl ~re ~pv '~(mapv #(res &env %) pv))))
325325
326326(defmacro conformer
327327 " takes a predicate function with the semantics of conform i.e. it should return either a
328328 (possibly converted) value or :cljs.spec/invalid, and returns a
329329 spec that uses it as a predicate/conformer. Optionally takes a
330330 second fn that does unform of result of first"
331- ([f] `(cljs.spec/ spec-impl '~f ~f nil true ))
332- ([f unf] `(cljs.spec/ spec-impl '~f ~f nil true ~unf)))
331+ ([f] `(spec-impl '~f ~f nil true ))
332+ ([f unf] `(spec-impl '~f ~f nil true ~unf)))
333333
334334(defmacro fspec
335335 " takes :args :ret and (optional) :fn kwargs whose values are preds
347347 that returns a test.check generator."
348348 [& {:keys [args ret fn gen]}]
349349 (let [env &env]
350- `(cljs.spec/ fspec-impl (spec ~args) '~(res env args)
350+ `(fspec-impl (spec ~args) '~(res env args)
351351 (spec ~ret) '~(res env ret)
352352 (spec ~fn) '~(res env fn ) ~gen)))
353353
357357 will be referred to in paths using its ordinal."
358358 [& preds]
359359 (clojure.core/assert (not (empty? preds)))
360- `(cljs.spec/ tuple-impl '~(mapv #(res &env %) preds) ~(vec preds)))
360+ `(tuple-impl '~(mapv #(res &env %) preds) ~(vec preds)))
361361
362362(def ^:private _speced_vars (atom #{}))
363363
398398 :ret symbol?)"
399399 [fn-sym & specs]
400400 (swap! _speced_vars conj (ns-qualify &env fn-sym))
401- `(cljs.spec/def ~fn-sym (cljs.spec/ fspec ~@specs)))
401+ `(cljs.spec/def ~fn-sym (fspec ~@specs)))
402402
403403(defmacro keys*
404404 " takes the same arguments as spec/keys and returns a regex op that matches sequences of key/values,
416416 {:i1 42, :m {:a 1, :c 2, :d 4}, :i2 99}"
417417 [& kspecs]
418418 `(let [mspec# (keys ~@kspecs)]
419- (cljs.spec/ with-gen (cljs.spec/ & (* (cat :cljs.spec/ k keyword? :cljs.spec/ v cljs.core/any?)) :cljs.spec/ kvs->map mspec#)
420- (fn [] (gen/fmap (fn [m#] (apply concat m#)) (cljs.spec/ gen mspec#))))))
419+ (with-gen (& (* (cat :: k keyword? :: v cljs.core/any?)) :: kvs->map mspec#)
420+ (fn [] (gen/fmap (fn [m#] (apply concat m#)) (gen mspec#))))))
421421
422422(defmacro nilable
423423 " returns a spec that accepts nil and values satisfiying pred"
424424 [pred]
425- `(and (or :cljs.spec/ nil nil? :cljs.spec/ pred ~pred) (conformer second)))
425+ `(and (or :: nil nil? :: pred ~pred) (conformer second)))
426426
427427(defmacro inst-in
428428 " Returns a spec that validates insts in the range from start
431431 `(let [st# (cljs.core/inst-ms ~start)
432432 et# (cljs.core/inst-ms ~end)
433433 mkdate# (fn [d#] (js/Date. d#))]
434- (spec (and cljs.core/inst? #(cljs.spec/ inst-in-range? ~start ~end %))
434+ (spec (and cljs.core/inst? #(inst-in-range? ~start ~end %))
435435 :gen (fn []
436436 (gen/fmap mkdate#
437437 (gen/large-integer* {:min st# :max et#}))))))
440440 " Returns a spec that validates longs in the range from start
441441 (inclusive) to end (exclusive)."
442442 [start end]
443- `(spec (and c/int? #(cljs.spec/ int-in-range? ~start ~end %))
443+ `(spec (and c/int? #(int-in-range? ~start ~end %))
444444 :gen #(gen/large-integer* {:min ~start :max (dec ~end)})))
445445
446446(defmacro merge
450450 predicates. Unlike 'and', merge can generate maps satisfying the
451451 union of the predicates."
452452 [& pred-forms]
453- `(cljs.spec/ merge-spec-impl '~(mapv #(res &env %) pred-forms) ~(vec pred-forms) nil ))
453+ `(merge-spec-impl '~(mapv #(res &env %) pred-forms) ~(vec pred-forms) nil ))
454454
455455(defmacro exercise-fn
456456 " exercises the fn named by sym (a symbol) by applying it to
467467 (= (first sym) 'quote))
468468 second)]
469469 `(let [fspec# ~(if-not fspec
470- `(cljs.spec/ get-spec '~(:name (resolve &env sym)))
470+ `(get-spec '~(:name (resolve &env sym)))
471471 fspec)
472472 f# ~sym]
473- (for [args# (gen/sample (cljs.spec/ gen (:args fspec#)) ~n)]
473+ (for [args# (gen/sample (gen (:args fspec#)) ~n)]
474474 [args# (apply f# args#)])))))
475475
476476(defmacro ^:private init-compile-asserts []
@@ -489,8 +489,8 @@ If (check-asserts?) is false at runtime, always returns x. Defaults to
489489value of 'cljs.spec/*runtime-asserts*', or false if not set. You can
490490toggle check-asserts? with (check-asserts bool)."
491491 [spec x]
492- `(if cljs.spec/ *compile-asserts*
493- (if cljs.spec/ *runtime-asserts*
494- (cljs.spec/ assert* ~spec ~x)
492+ `(if *compile-asserts*
493+ (if *runtime-asserts*
494+ (assert* ~spec ~x)
495495 ~x)
496496 ~x))
0 commit comments