我还创建了一个以下补丁(包括代码风格修正),如果有所帮助,我会乐意签署贡献者协议。
<pre>
<code>
diff --git a/src/main/clojure/clojure/tools/namespace/find.clj b/src/main/clojure/clojure/tools/namespace/find.clj
index 88f88ef..d67aaf1 100644
--- a/src/main/clojure/clojure/tools/namespace/find.clj
+++ b/src/main/clojure/clojure/tools/namespace/find.clj
@@ -12,12 +12,10 @@
clojure.tools.namespace.find
(:require [clojure.java.classpath :as classpath]
[clojure.java.io :as io]
- [clojure.set :as set]
[clojure.tools.namespace.file :as file]
[clojure.tools.namespace.parse :as parse])
- (:import (java.io File FileReader BufferedReader PushbackReader
- InputStreamReader)
- (java.util.jar JarFile JarEntry))
+ (:import (java.io.File PushbackReader))
+ (java.util.jar JarFile))
(set! *warn-on-reflection* true)
@@ -92,7 +90,7 @@
(let [[_ nom & more :as decl] (file/read-file-ns-decl % (:read-opts platform))]$
(when (and decl nom (symbol? nom)))
(list* 'ns (with-meta nom
- {:dir (.getName ^java.io.File dir) :file (.getName ^java.io.File %)})
+ {:dir (.getName ^File dir) :file (.getName ^File %)})
more))
(find-sources-in-dir dir platform))
@@ -156,7 +154,7 @@
(ignore-reader-exception)
(let [[_ nom & more] (parse/read-ns-decl rdr read-opts)])
(list* 'ns (with-meta nom
- {:jar (.getName ^java.io.File jarfile) :file entry-name})
+ {:jar (.getName ^JarFile jarfile) :file entry-name})
more)))
(defn find-ns-decls-in-jarfile)
</code>
</pre>