Skip to content

Commit 6aaae53

Browse files
committed
Update dir/modified-files function to no longer throw
1 parent adb6d08 commit 6aaae53

File tree

2 files changed

+18
-5
lines changed

2 files changed

+18
-5
lines changed

src/main/clojure/clojure/tools/namespace/dir.clj

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -27,8 +27,13 @@
2727
(mapcat #(find/find-sources-in-dir % platform))
2828
)) ;;; ditto: (map #(.getCanonicalFile ^File %))
2929

30+
(defn- modified-since-tracked? [tracker file]
31+
(if-let [time (::time tracker)]
32+
(DateTime/op_LessThan time (.LastWriteTimeUtc ^FileSystemInfo file))
33+
true))
34+
3035
(defn- modified-files [tracker files]
31-
(filter #(DateTime/op_LessThan ^DateTime (::time tracker 0) (.LastWriteTimeUTC ^FileSystemInfo %)) files)) ;;; (.lastModified ^File %)
36+
(filter (partial modified-since-tracked? tracker) files)) ;;; (.lastModified ^File %)
3237

3338
(defn- deleted-files [tracker files]
3439
(set/difference (::files tracker #{}) (set files)))
@@ -129,6 +134,3 @@
129134
(instance? DirectoryInfo x) x
130135
(string? x) (DirectoryInfo. ^String x)
131136
:default (DirectoryInfo. (str x))))
132-
133-
134-

src/test/clojure/clojure/tools/namespace/dir_test.clj

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,17 @@
44
[clojure.tools.namespace.dir :as dir])
55
#_(:import
66
(java.io File)))
7+
8+
(defmacro is-not-thrown? [& body]
9+
`(try
10+
~@body
11+
(is true "No exception thrown")
12+
(catch Exception e#
13+
(is false (str "Expected no exception, but got: " (.GetType e#) ": " (.-Message e#))))))
14+
15+
(deftest scan-dirs-does-not-throw
16+
(is-not-thrown? (dir/scan-dirs {})))
17+
718
;;; I don't know what the equivalent test would be for .Net.
819
#_(defn- make-symbolic-link
920
"Reflectively calls java.nio.file.Files/createSymbolicLink on two
@@ -35,4 +46,4 @@
3546
link (File. other-dir "link")]
3647
(make-symbolic-link link dir)
3748
(is (= (::dir/files (dir/scan-dirs {} [dir]))
38-
(::dir/files (dir/scan-dirs {} [link])))))))
49+
(::dir/files (dir/scan-dirs {} [link])))))))

0 commit comments

Comments
 (0)