From aa4d5c5963026bc46c83148d6d0a3db8308eb84f Mon Sep 17 00:00:00 2001 From: Andy Fingerhut Date: Sun, 28 Oct 2012 18:07:26 -0700 Subject: [PATCH] TNS-4: Eliminate several uses of reflection in tools.namespace --- src/main/clojure/clojure/tools/namespace.clj | 2 +- src/main/clojure/clojure/tools/namespace/dependency.clj | 8 ++++---- src/main/clojure/clojure/tools/namespace/dir.clj | 12 ++++++------ src/main/clojure/clojure/tools/namespace/file.clj | 2 +- 4 files changed, 12 insertions(+), 12 deletions(-) diff --git a/src/main/clojure/clojure/tools/namespace.clj b/src/main/clojure/clojure/tools/namespace.clj index 45dc2ca..5fc0090 100644 --- a/src/main/clojure/clojure/tools/namespace.clj +++ b/src/main/clojure/clojure/tools/namespace.clj @@ -109,7 +109,7 @@ loader-classpath (take-while identity - (iterate #(.getParent %) classloader))))) + (iterate #(.getParent ^ClassLoader %) classloader))))) ([] (classpath (clojure.lang.RT/baseLoader)))) (defn- classpath-directories [] diff --git a/src/main/clojure/clojure/tools/namespace/dependency.clj b/src/main/clojure/clojure/tools/namespace/dependency.clj index 1e4a19d..c4ac580 100644 --- a/src/main/clojure/clojure/tools/namespace/dependency.clj +++ b/src/main/clojure/clojure/tools/namespace/dependency.clj @@ -71,10 +71,10 @@ DependencyGraphUpdate (depend [graph node dep] (when (depends? graph dep node) - (throw (Exception. - (binding [*print-length* 10] - (str "Circular dependency between " - (pr-str node) " and " (pr-str dep)))))) + (let [^String msg (binding [*print-length* 10] + (str "Circular dependency between " + (pr-str node) " and " (pr-str dep)))] + (throw (Exception. msg)))) (MapDependencyGraph. (update-in dependencies [node] set-conj dep) (update-in dependents [dep] set-conj node))) diff --git a/src/main/clojure/clojure/tools/namespace/dir.clj b/src/main/clojure/clojure/tools/namespace/dir.clj index 0eb4881..9f9b0f1 100644 --- a/src/main/clojure/clojure/tools/namespace/dir.clj +++ b/src/main/clojure/clojure/tools/namespace/dir.clj @@ -20,13 +20,13 @@ (defn- find-files [dirs] (->> dirs (map io/file) - (filter #(.exists %)) + (filter #(.exists ^File %)) (mapcat file-seq) (filter file/clojure-file?) - (map #(.getCanonicalFile %)))) + (map #(.getCanonicalFile ^File %)))) (defn- modified-files [tracker files] - (filter #(< (::time tracker 0) (.lastModified %)) files)) + (filter #(< (::time tracker 0) (.lastModified ^File %)) files)) (defn- deleted-files [tracker files] (set/difference (::files tracker #{}) (set files))) @@ -41,8 +41,8 @@ (assoc ::time now)))) (defn- dirs-on-classpath [] - (filter #(.isDirectory %) - (map #(File. %) + (filter #(.isDirectory ^File %) + (map #(File. ^String %) (string/split (System/getProperty "java.class.path") (Pattern/compile (Pattern/quote File/pathSeparator)))))) @@ -70,4 +70,4 @@ (let [ds (or (seq dirs) (dirs-on-classpath)) files (find-files ds) deleted (seq (deleted-files tracker files))] - (update-files tracker deleted files))) \ No newline at end of file + (update-files tracker deleted files))) diff --git a/src/main/clojure/clojure/tools/namespace/file.clj b/src/main/clojure/clojure/tools/namespace/file.clj index 3509c26..a345622 100644 --- a/src/main/clojure/clojure/tools/namespace/file.clj +++ b/src/main/clojure/clojure/tools/namespace/file.clj @@ -25,7 +25,7 @@ (defn clojure-file? "Returns true if the java.io.File represents a normal Clojure source file." - [file] + [^java.io.File file] (and (.isFile file) (.endsWith (.getName file) ".clj"))) -- 1.8.0