This commit is contained in:
Michiel Borkent 2024-10-10 17:18:55 +02:00
parent 420a6c7748
commit d92036ee2e
3 changed files with 96 additions and 87 deletions

View file

@ -1,5 +1,6 @@
[{
"interfaces": [
"java.util.function.Predicate"
, "java.util.function.Function"
]
}]

View file

@ -668,9 +668,10 @@
c))
m (assoc m :public-class
(fn [v]
;; (prn :v v)
;; NOTE: a series of instance check, so far, is still cheaper
;; than piggybacking on defmulti or defprotocol
(cond (instance? java.lang.Process v)
(let [res (cond (instance? java.lang.Process v)
java.lang.Process
(instance? java.lang.ProcessHandle v)
java.lang.ProcessHandle
@ -697,6 +698,8 @@
java.nio.file.FileSystem
(instance? java.nio.file.PathMatcher v)
java.nio.file.PathMatcher
(instance? java.util.stream.Stream v)
java.util.stream.Stream
(instance? java.util.stream.IntStream v)
java.util.stream.IntStream
(instance? java.util.stream.BaseStream v)
@ -754,8 +757,12 @@
java.util.Set
(instance? java.io.Closeable v)
java.io.Closeable
(instance? java.util.Collection v)
java.util.Collection
;; keep commas for merge friendliness
)))
)]
;; (prn :res res)
res)))
m (assoc m (list 'quote 'clojure.lang.Var) 'sci.lang.Var)
m (assoc m (list 'quote 'clojure.lang.Namespace) 'sci.lang.Namespace)]
m))

View file

@ -66,4 +66,5 @@
(binding [*in* rdr] (read-line) (read-line)) (.getLineNumber rdr)"))))
(deftest FI-coercion
(is (true? (bb nil "(= [1 3] (into [] (doto (java.util.ArrayList. [1 2 3]) (.removeIf even?))))"))))
(is (true? (bb nil "(= [1 3] (into [] (doto (java.util.ArrayList. [1 2 3]) (.removeIf even?))))")))
(is (true? (bb nil "(= '(\\9) (-> \"a9-\" seq .stream (.filter Character/isDigit) stream-seq!))"))))