diff options
author | Rich Hickey <richhickey@gmail.com> | 2008-08-25 22:29:46 +0000 |
---|---|---|
committer | Rich Hickey <richhickey@gmail.com> | 2008-08-25 22:29:46 +0000 |
commit | 4173663ec077ae80945d3dd10175b53f85e9be2e (patch) | |
tree | 7783728683cfa499dd4705eff27199317f1b4f41 /src | |
parent | 2e9afaecf3623ea89002c8cd66d6a61b1e8a2bc5 (diff) |
improved UnsupportedOperationException message, patch from Chouser
Diffstat (limited to 'src')
-rw-r--r-- | src/clj/clojure/genclass.clj | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/src/clj/clojure/genclass.clj b/src/clj/clojure/genclass.clj index 1649c22c..3b958dee 100644 --- a/src/clj/clojure/genclass.clj +++ b/src/clj/clojure/genclass.clj @@ -197,6 +197,10 @@ (. gen pop) (. gen visitInsn (. Opcodes ACONST_NULL)) (. gen mark end-label))) + emit-unsupported (fn [gen m] + (. gen (throwException ex-type (str (. m (getName)) " (" + pkg-name "/" sname "-" (.getName m) + " not defined?)")))) emit-forwarding-method (fn [mname pclasses rclass as-static else-gen] (let [ptypes (to-types pclasses) @@ -381,15 +385,13 @@ mm (do (emit-forwarding-method (.getName meth) (.getParameterTypes meth) (.getReturnType meth) false - (fn [gen m] - (. gen (throwException ex-type (. m (getName)))))) + emit-unsupported) (assoc mm (method-sig meth) meth)))) mm (mapcat #(.getMethods %) interfaces)) ;extra methods (doseq [mname pclasses rclass :as msig] methods (emit-forwarding-method (str mname) pclasses rclass (:static ^msig) - (fn [gen m] - (. gen (throwException ex-type (. m (getName)))))))) + emit-unsupported))) ;main (when main @@ -411,7 +413,7 @@ (. gen goTo end-label) ;no main found (. gen mark no-main-label) - (. gen (throwException ex-type (str main-name " not defined"))) + (. gen (throwException ex-type (str pkg-name "/" main-name " not defined"))) (. gen mark end-label) (. gen (returnValue)) (. gen (endMethod)))) |