Please try whether my CLJ-2013 <https://dev.clojure.org/jira/browse/CLJ-2013> patch fixes the issue for you. From my observation it should.
On Saturday, April 22, 2017 at 7:31:48 PM UTC+2, Yegor Timoshenko wrote: > > (require '[clojure.spec :as s]) > (require '[clojure.spec.test :refer [instrument]]) > > (defn request ([url]) ([params url])) > > (s/fdef request > :args (s/cat :params (s/? map?) :url string?)) > > (instrument `request) > (request [] "") > > ExceptionInfo Call to #'user/request did not conform to spec: > In: [0] val: [] fails at: [:args :url] predicate: string? > :clojure.spec/args ([] "") > :clojure.spec/failure :instrument > :clojure.spec.test/caller {:file "form-init1226863901212006294.clj", > :line 1, :var-scope user/eval2193} > clojure.core/ex-info (core.clj:4725) > > I expected that it would fail at `map?` predicate rather than at `string?` > predicate. > s/or produces better explanation, but at the same time is relatively more > verbose: > > (require '[clojure.spec :as s]) > (require '[clojure.spec.test :refer [instrument]]) > > (defn request ([url]) ([params url])) > > (s/fdef request > :args (s/or :simple (s/cat :url string?) > :advanced (s/cat :params map? :url string?))) > > (instrument `request) > (request [] "") > > ExceptionInfo Call to #'user/request did not conform to spec: > In: [0] val: [] fails at: [:args :simple :url] predicate: string? > In: [0] val: [] fails at: [:args :advanced :params] predicate: map? > :clojure.spec/args ([] "") > :clojure.spec/failure :instrument > :clojure.spec.test/caller {:file "form-init1226863901212006294.clj", > :line 1, :var-scope user/eval2208} > clojure.core/ex-info (core.clj:4725) > > Is it subject to improvement? https://dev.clojure.org/jira/browse/CLJ-1982 > might be the same issue. > -- You received this message because you are subscribed to the Google Groups "Clojure" group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups "Clojure" group. To unsubscribe from this group and stop receiving emails from it, send an email to clojure+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.