We're updating the issue view to help you get more done. 

High-arity .apply on spec-instrumented function throws "Invalid arity" error

Description

With ClojureScript 1.10.238, if you call .apply with over 21 arguments on a function that has been instrumented with cljs.spec.test.alpha/instrument, you will get an error about invalid arity. This problem does not occur with ClojureScript 1.9.954.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 (require '[cljs.spec.alpha :as s] '[cljs.spec.test.alpha :as stest]) (defn my-fun [& args] (prn :args args)) (s/fdef my-fun :args (s/cat :args (s/* any?))) (.apply my-fun nil (into-array (range 22))) ;; :args (0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21) (stest/instrument) (.apply my-fun nil (into-array (range 22))) ;; Error: Invalid arity: 22 ;; at Function.G__10112 [as call] (.../cljs/core.js:6798:7) ;; at Function.cljs.core.MetaFn.apply (.../cljs/core.js:6829:24) ;; at repl:1:96

Regular apply works as expected.

Environment

ClojureScript 1.10.238

Status

Assignee

Unassigned

Reporter

Miikka Koskinen

Labels

None

Approval

None

Patch

None

Priority

Major