diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/clj/clojure/genclass.clj | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/src/clj/clojure/genclass.clj b/src/clj/clojure/genclass.clj index fbc7dfe8..e998d996 100644 --- a/src/clj/clojure/genclass.clj +++ b/src/clj/clojure/genclass.clj @@ -90,7 +90,18 @@ strx (str "java.lang." strx)))))) +;; someday this can be made codepoint aware +(defn- valid-java-method-name + [^String s] + (= s (clojure.lang.Compiler/munge s))) + +(defn- validate-generate-class-options + [{:keys [methods]}] + (let [[mname] (remove valid-java-method-name (map (comp str first) methods))] + (when mname (throw (IllegalArgumentException. (str "Not a valid method name: " mname)))))) + (defn- generate-class [options-map] + (validate-generate-class-options options-map) (let [default-options {:prefix "-" :load-impl-ns true :impl-ns (ns-name *ns*)} {:keys [name extends implements constructors methods main factory state init exposes exposes-methods prefix load-impl-ns impl-ns post-init]} |