diff --git a/src/babashka/impl/classes.clj b/src/babashka/impl/classes.clj index 3e652f9f..caf60197 100644 --- a/src/babashka/impl/classes.clj +++ b/src/babashka/impl/classes.clj @@ -243,6 +243,7 @@ java.nio.file.PathMatcher java.nio.file.Paths java.nio.file.StandardCopyOption + java.nio.file.attribute.BasicFileAttributes java.nio.file.attribute.FileAttribute java.nio.file.attribute.FileTime java.nio.file.attribute.PosixFilePermission @@ -463,7 +464,10 @@ (first (t/getInterfaces v)) ;; fix for #1061 (instance? java.io.Closeable v) - java.io.Closeable))))) + java.io.Closeable + (instance? java.nio.file.attribute.BasicFileAttributes v) + java.nio.file.attribute.BasicFileAttributes + ,,,))))) (def class-map (gen-class-map)) diff --git a/test/babashka/main_test.clj b/test/babashka/main_test.clj index 51eb69d5..b4a81fa1 100644 --- a/test/babashka/main_test.clj +++ b/test/babashka/main_test.clj @@ -412,7 +412,13 @@ (let [v (bb nil "-f" (.getPath (io/file "test-resources" "babashka" "glob.clj")))] (is (vector? v)) (is (.exists (io/file (first v))))) - (is (= :success (bb nil "(with-open [str (java.nio.file.Files/newDirectoryStream (.toPath (clojure.java.io/file \".\")))] :success)"))))) + (is (= :success (bb nil "(with-open [str (java.nio.file.Files/newDirectoryStream (.toPath (clojure.java.io/file \".\")))] :success)"))) + (is (string? (bb nil + '(do (import [java.nio.file Files LinkOption]) + (import [java.nio.file.attribute BasicFileAttributes]) + (def attrs (Files/readAttributes (.toPath (io/file ".")) BasicFileAttributes ^"[Ljava.nio.file.LinkOption;" + (into-array LinkOption []))) + (str (.lastModifiedTime attrs)))))))) (deftest future-print-test (testing "the root binding of sci/*out*"