Skip to content

Commit c40a475

Browse files
committed
CLJS-2837: [spec] cat specs should verify value is sequential
1 parent a93ac96 commit c40a475

File tree

2 files changed

+5
-5
lines changed

2 files changed

+5
-5
lines changed

src/main/cljs/cljs/spec/alpha.cljs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1248,14 +1248,14 @@
12481248

12491249
Spec
12501250
(conform* [_ x]
1251-
(if (c/or (nil? x) (coll? x))
1251+
(if (c/or (nil? x) (sequential? x))
12521252
(re-conform re (seq x))
12531253
::invalid))
12541254
(unform* [_ x] (op-unform re x))
12551255
(explain* [_ path via in x]
1256-
(if (c/or (nil? x) (coll? x))
1256+
(if (c/or (nil? x) (sequential? x))
12571257
(re-explain path via in re (seq x))
1258-
[{:path path :pred (op-describe re) :val x :via via :in in}]))
1258+
[{:path path :pred `(fn [~'%] (c/or (nil? ~'%) (sequential? ~'%))) :val x :via via :in in}]))
12591259
(gen* [_ overrides path rmap]
12601260
(if gfn
12611261
(gfn)

src/test/cljs/cljs/spec_test.cljs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -204,15 +204,15 @@
204204

205205
opt nil nil nil
206206
opt [] nil nil
207-
opt :k ::s/invalid '[{:pred (cljs.spec.alpha/? cljs.core/keyword?), :val :k}]
207+
opt :k ::s/invalid '[{:pred (cljs.core/fn [%] (cljs.core/or (cljs.core/nil? %) (cljs.core/sequential? %))), :val :k}]
208208
opt [:k] :k nil
209209
opt [:k1 :k2] ::s/invalid '[{:reason "Extra input", :pred (cljs.spec.alpha/? cljs.core/keyword?), :val (:k2)}]
210210
opt [:k1 :k2 "x"] ::s/invalid '[{:reason "Extra input", :pred (cljs.spec.alpha/? cljs.core/keyword?), :val (:k2 "x")}]
211211
opt ["a"] ::s/invalid '[{:pred cljs.core/keyword?, :val "a"}]
212212

213213
andre nil nil nil
214214
andre [] nil nil
215-
andre :k ::s/invalid '[{:pred (cljs.spec.alpha/& (cljs.spec.alpha/* cljs.core/keyword?) cljs.spec-test/even-count?), :val :k}]
215+
andre :k ::s/invalid '[{:pred (cljs.core/fn [%] (cljs.core/or (cljs.core/nil? %) (cljs.core/sequential? %))), :val :k}]
216216
andre [:k] ::s/invalid '[{:pred cljs.spec-test/even-count?, :val [:k]}]
217217
andre [:j :k] [:j :k] nil
218218

0 commit comments

Comments
 (0)