-
-
Notifications
You must be signed in to change notification settings - Fork 16
Closed
Description
This works in normal CLJS:
$ clj -A:test -m cljs.main -re node -r
ClojureScript 1.10.439
cljs.user=> (require '[speculative.instrument :refer [instrument]])
nil
cljs.user=> (count (instrument))
65
But this fails on Planck:
$ plk -A:test
ClojureScript 1.10.439
cljs.user=> (require '[speculative.instrument :refer [instrument]])
nil
cljs.user=> (count (instrument))
cljs.user=> (count (instrument))
Call to #'cljs.core/+ did not conform to spec.
cljs.core/ExceptionInfo (cljs/core.cljs:11154:11)
cljs.core/ex-info (cljs/core.cljs:11181:7)
workarounds-1-10-439.core/G__343__delegate (workarounds_1_10_439/core.cljs:44:42)
cljs/lang/applyTo (workarounds_1_10_439/core.cljs:41:20)
cljs.core/apply (cljs/core.cljs:3887:7)
cljs.core/e (cljs/core.cljs:4301:31)
planck.repl/print-value (planck/repl.cljs:1948:27)
cljs.core/e (cljs/core.cljs:4244:17)
cljs.js/I (cljs/js.cljs:1131:24)
cljs.js/eval-str* (cljs/js.cljs:1045:6)
planck.repl/process-execute-source (planck/repl.cljs:2010:11)
planck.repl/execute-source (planck/repl.cljs:2063:18)
planck.repl/execute (planck/repl.cljs:2072:7)
This didn't seem to help:
(require '[ workarounds-1-10-439.core])
After calling (speculative.instrument/unstrument) the error becomes inspectable:
cljs.user=> *e
#error {:message "Call to #'cljs.core/+ did not conform to spec.", :data #:cljs.spec.alpha{:problems [{:path [], :pred cljs.core/number?, :val nil, :via [:speculative.specs/number :speculative.specs/number], :in [1]}], :spec #object[cljs.spec.alpha.t_cljs$spec$alpha6210], :value (221 nil), :fn cljs.core/+, :args (221 nil), :failure :instrument}}
Another way to repro:
(require '[clojure.spec.alpha :as s])
(require '[clojure.spec.test.alpha :as stest])
(s/fdef clojure.core/+ :args (s/and (s/cat :nums (s/* any?)) #(do (println "NUMS" %) %)))
(stest/instrument `+)
;;=>
{:nums [221 nil]}
[cljs.core/+]
Metadata
Metadata
Assignees
Labels
No labels