Skip to content

Commit 8498f9c

Browse files
committed
fix s/def expansion
1 parent fd8b61f commit 8498f9c

File tree

1 file changed

+6
-5
lines changed

1 file changed

+6
-5
lines changed

src/main/clojure/clojure/alpha/spec.clj

+6-5
Original file line numberDiff line numberDiff line change
@@ -450,12 +450,13 @@
450450
(nil? spec-form) nil ;; remove mapping
451451

452452
(c/or (list? spec-form) (seq? spec-form))
453-
(let [op (first spec-form)]
453+
(let [explicated-form (explicate (ns-name *ns*) spec-form)
454+
op (first explicated-form)]
454455
(cond
455-
(#{'fn 'fn* `c/fn} op) `(s/spec ~spec-form)
456-
(contains? (-> #'create-spec deref methods c/keys set) (ns-qualify op)) spec-form
457-
:else (throw (ex-info (str "Unable to def " k ", unknown spec op: " (ns-qualify op))
458-
{:k k :form spec-form}))))
456+
(#{'fn 'fn* `c/fn} op) `(s/spec ~explicated-form)
457+
(contains? (-> #'create-spec deref methods c/keys set) op) explicated-form
458+
:else (throw (ex-info (str "Unable to def " k ", unknown spec op: " op)
459+
{:k k :form explicated-form}))))
459460

460461
:else
461462
(throw (ex-info (str "Unable to def " k ", invalid spec definition: " (pr-str spec-form))

0 commit comments

Comments
 (0)