From 2d93ce532ce1670ae9234984df057b303006c9e4 Mon Sep 17 00:00:00 2001 From: Andy Fingerhut Date: Sun, 28 Oct 2012 20:31:17 -0700 Subject: [PATCH] TTRACE-2: Eliminate a few uses of reflection in tools.trace --- src/main/clojure/clojure/tools/trace.clj | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/main/clojure/clojure/tools/trace.clj b/src/main/clojure/clojure/tools/trace.clj index 9528c7f..e66b0a6 100644 --- a/src/main/clojure/clojure/tools/trace.clj +++ b/src/main/clojure/clojure/tools/trace.clj @@ -200,14 +200,14 @@ such as clojure.core/+" (defn ^{:skip-wiki true} trace-compose-exception "Re-create a new exception with a composed message from the given exception and the message to be added. The exception stack trace is kept at a minimum." - [exception message] + [^Exception exception ^String message] (let [klass (class exception) previous-msg (.getMessage exception) - composed-msg(str previous-msg (if-not (.endsWith previous-msg "\n") "\n") message (if-not (.endsWith message "\n") "\n")) + composed-msg (str previous-msg (if-not (.endsWith previous-msg "\n") "\n") message (if-not (.endsWith message "\n") "\n")) ctor (.getConstructor klass (into-array [java.lang.String])) new-exception (cast klass (.newInstance ctor (into-array String [composed-msg]))) new-stack-trace (into-array java.lang.StackTraceElement [(aget (.getStackTrace exception) 0)]) - _ (.setStackTrace new-exception new-stack-trace)] + _ (.setStackTrace ^Exception new-exception new-stack-trace)] new-exception)) (defn ^{:skip-wiki true} trace-form @@ -239,7 +239,7 @@ such as clojure.core/+" ([ns s] (trace-var* (ns-resolve ns s))) ([v] - (let [v (if (var? v) v (resolve v)) + (let [^clojure.lang.Var v (if (var? v) v (resolve v)) ns (.ns v) s (.sym v)] (if (and (ifn? @v) (-> v meta :macro not)) @@ -259,7 +259,7 @@ such as clojure.core/+" ([ns s] (untrace-var* (ns-resolve ns s))) ([v] - (let [v (if (var? v) v (resolve v)) + (let [^clojure.lang.Var v (if (var? v) v (resolve v)) ns (.ns v) s (.sym v) f ((meta v) ::traced)] -- 1.8.0