diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/clj/clojure/core.clj | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/src/clj/clojure/core.clj b/src/clj/clojure/core.clj index 65b3bc2d..b3f364c6 100644 --- a/src/clj/clojure/core.clj +++ b/src/clj/clojure/core.clj @@ -191,10 +191,14 @@ with-meta (fn with-meta [^clojure.lang.IObj x m] (. x (withMeta m)))) +(def ^{:private true :dynamic true} + assert-valid-fdecl (fn [fdecl])) + (def ^{:private true} sigs (fn [fdecl] + (assert-valid-fdecl fdecl) (let [asig (fn [fdecl] (let [arglist (first fdecl) @@ -5652,3 +5656,9 @@ (keepi (inc idx) (rest s)) (cons x (keepi (inc idx) (rest s)))))))))] (keepi 0 coll)))) + +(defn- ^{:dynamic true} assert-valid-fdecl + "A good fdecl looks like (([a] ...) ([a b] ...)) near the end of defn." + [fdecl] + (if-let [bad-args (seq (remove #(vector? %) (map first fdecl)))] + (throw (IllegalArgumentException. (str "Parameter declaration " (first bad-args) " should be a vector"))))) |