A quick follow-up - if I use s/assert instead of s/valid you can see the 
problem with the s/or tag (:b in this case) getting into the assertion val

(s/assert (s/and (s/or :a (s/and #(empty? (::data %))
                                 #(empty? (::path %)))
                       :b #(= (::val %) (get-in (::data %) (::path %))))
                 (s/keys :req [::val ::data ::path]))
  {::data [:zob] ::path [0] ::val :zob})

Error: Spec assertion failed
val: [:b {:clarity.cursors/data [:zob], :clarity.cursors/path [0], 
:clarity.cursors/val :zob}] fails predicate: map?
:cljs.spec/failure  :assertion-failed

-- 
Note that posts from new members are moderated - please be patient with your 
first post.
--- 
You received this message because you are subscribed to the Google Groups 
"ClojureScript" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojurescript+unsubscr...@googlegroups.com.
To post to this group, send email to clojurescript@googlegroups.com.
Visit this group at https://groups.google.com/group/clojurescript.

Reply via email to