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.

Reply via email to