Your boolean-supplier should be:

(s/def ::boolean-supplier
  (s/fspec
    :args (s/cat)
    :ret boolean?))



On Thursday, January 17, 2019 at 6:38:44 AM UTC-6, Josip Gracin wrote:
>
> Hi!
>
> The following test throws an exception when run using "lein test" and I 
> can't figure out why.
>
> (ns issue
>   (:require  [clojure.test :as t]
>              [clojure.spec.alpha :as s]
>              [clojure.spec.test.alpha :as st]))
>
> (s/fdef ::boolean-supplier
>   :args (s/cat)
>   :ret boolean?)
>
> (defn make-fn [boolean-supplier]
>   (fn []
>     (boolean-supplier)))
>
> (s/fdef make-fn
>   :args (s/cat :supplier ::boolean-supplier))
>
> (t/deftest issue
>   (t/testing "issue demo"
>     (st/instrument)
>     (make-fn (fn [] true))))
>
> Here's the output of "lein test":
>
> $ lein test                       
>                                                          
> lein test issue                                                
>                                                                   
> lein test :only issue/issue                                                
>       
>                                                            
> ERROR in (issue) (Compiler.java:7647)                          
> Uncaught exception, not in assertion.                                      
>             
> expected: nil                                                              
>    
>   actual: clojure.lang.Compiler$CompilerException: Syntax error compiling 
> at (clojure/test/check/clojure_test.cljc:95:1).
> #:clojure.error{:phase :compile-syntax-check, :line 95, :column 1, :source 
> "clojure/test/check/clojure_test.cljc"}
>  at clojure.lang.Compiler.load (Compiler.java:7647)                        
>   
>     clojure.lang.RT.loadResourceScript (RT.java:381)                 
>     clojure.lang.RT.loadResourceScript (RT.java:372)                      
>                       
>     clojure.lang.RT.load (RT.java:463)                          
>     clojure.lang.RT.load (RT.java:428)
>     ...
> Caused by: java.lang.ClassCastException: clojure.lang.AFunction$1 cannot 
> be cast to clojure.lang.MultiFn
>  at clojure.core$get_method.invokeStatic (core.clj:1817)
>     clojure.core$get_method.invoke (core.clj:1817)                        
>              
>     clojure.test.check.clojure_test$eval1131.invokeStatic 
> (clojure_test.cljc:95)
>     clojure.test.check.clojure_test$eval1131.invoke (clojure_test.cljc:95)
>     clojure.lang.Compiler.eval (Compiler.java:7176)                        
>   
>     clojure.lang.Compiler.load (Compiler.java:7635)
>     ...
>
> Using Java 10.0.2 and the following dependencies:
>
> $ lein deps :tree
>  [clojure-complete "0.2.5" :exclusions [[org.clojure/clojure]]]
>  [nrepl "0.5.3" :exclusions [[org.clojure/clojure]]]
>    [nrepl/bencode "1.0.0"]
>  [org.clojure/clojure "1.10.0"]
>  [org.clojure/core.specs.alpha "0.2.44"]
>  [org.clojure/spec.alpha "0.2.176"]
>  [org.clojure/test.check "0.9.0"]
>
> Any ideas?
>
>

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