Shame on me, I had 2 spec with the same name in the same file... 
:slap-me-im-famous:

On Wednesday, September 27, 2017 at 11:48:27 AM UTC+2, Khalid Jebbari wrote:
>
> Hello,
>
> I've written a spec with an attached generator. The generator works ONLY 
> if I rename the spec (yes, the keyword), this is really weird.
>
> -------
> Environment :
>
> > java -version
> openjdk version "1.8.0_144"
> OpenJDK Runtime Environment (build 1.8.0_144-b01)
> OpenJDK 64-Bit Server VM (build 25.144-b01, mixed mode)
>
> [org.clojure/clojure "1.9.0-beta1"]
> [org.clojure/test.check "0.10.0-alpha2" :scope "test"]
>
> --------
> Full code :
>
> (ns myns.specs
>   (:require [clojure.spec.alpha :as s]
>             [clojure.string :as str]
>             [clojure.test.check.generators :as g]))
>
> (def url-path (g/fmap #(apply str "/" %) (g/vector g/char-alphanumeric 5 
> 10)))
>
> (s/def :url/path (s/with-gen (s/and string? #(re-matches #"^(/.*)+" %))
>                              (fn path-gen []
>                                (g/fmap #(apply str %) (g/vector url-path 1 
> 3)))))
>
> --------
> Generation fails :
>
> (g/sample (s/gen :url/path) 3)
> clojure.lang.ExceptionInfo: Couldn't satisfy such-that predicate after 100 
> tries.
>
>
> --------
> If I rename `:url/path` to `:url/path2` or `::path`, it works fine !
>
> I tried searching the source code of spec to see if there was already a 
> spec with the same name, but there was none. I have no idea where this 
> problem comes from. Any help appreciated.
>

-- 
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