Hi Gordon, I ran into this earlier too. It's because s/def is a macro and needs access to [::foo ::bar] at compile time, whereas 'ks' is only def'd at runtime. At least that's how I understand it!
Cheers, On Monday, 30 May 2016 05:14:18 UTC+10, Gordon Stratton wrote: > > Hi all, > > clojure.spec/keys is documented to accept vectors for :req, :req-un, > etc. Shouldn't that also work if such a vector is previously bound? > > Clojure 1.9.0-alpha3 > user=> (require '[clojure.spec :as s]) > nil > user=> (def ks [::foo ::bar]) > #'user/ks > user=> (s/def ::foospec (s/keys :req ks)) > CompilerException java.lang.IllegalArgumentException: Don't know how > to create ISeq from: clojure.lang.Symbol, > compiling:(NO_SOURCE_PATH:3:18) > user=> (s/def ::foospec (s/keys :req [::foo ::bar])) > :user/foospec > -- 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.