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": [ "interfaces": [
"java.util.function.Predicate" "java.util.function.Predicate"
, "java.util.function.Function"
] ]
}] }]

View file

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

View file

@ -66,4 +66,5 @@
(binding [*in* rdr] (read-line) (read-line)) (.getLineNumber rdr)")))) (binding [*in* rdr] (read-line) (read-line)) (.getLineNumber rdr)"))))
(deftest FI-coercion (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!))"))))