From 0b332431d355f2244f6a19cd6f6efa8efdc648de Mon Sep 17 00:00:00 2001 From: Michiel Borkent Date: Sat, 13 Mar 2021 18:08:36 +0100 Subject: [PATCH] Fix proxy instance check --- sci | 2 +- src/babashka/impl/proxy.clj | 4 ++-- test/babashka/proxy_test.clj | 6 +++++- 3 files changed, 8 insertions(+), 4 deletions(-) diff --git a/sci b/sci index bf0fc870..a10c28f0 160000 --- a/sci +++ b/sci @@ -1 +1 @@ -Subproject commit bf0fc870e5d9060ea79dd49594487d600bb64571 +Subproject commit a10c28f012075a98dedb06f8158341a1b7baea9a diff --git a/src/babashka/impl/proxy.clj b/src/babashka/impl/proxy.clj index ad3aaba8..4ebfba60 100644 --- a/src/babashka/impl/proxy.clj +++ b/src/babashka/impl/proxy.clj @@ -12,8 +12,8 @@ (.getName clazz)) (defn proxy-fn [{:keys [class interfaces protocols methods]}] - (let [interfaces (set (map class-name interfaces))] - (case [(class-name class) interfaces ] + (let [interface-names (set (map class-name interfaces))] + (case [(class-name class) interface-names] ;; This combination is used by pathom3 ["clojure.lang.APersistentMap" #{"clojure.lang.IMeta" "clojure.lang.IObj"}] (proxy [clojure.lang.APersistentMap clojure.lang.IMeta clojure.lang.IObj sci.impl.types.IReified] [] diff --git a/test/babashka/proxy_test.clj b/test/babashka/proxy_test.clj index bfd05534..496f6449 100644 --- a/test/babashka/proxy_test.clj +++ b/test/babashka/proxy_test.clj @@ -63,6 +63,8 @@ (seq m) (meta (with-meta m {:a 1})) (d/datafy m) + (instance? clojure.lang.APersistentMap m) + (instance? java.io.FilenameFilter m) ,]))) (require 'clojure.pprint) @@ -72,5 +74,7 @@ 5 3 5 false '([:a 1] [:b 2] [:c 3]) {:a 1} - {:datafied true}] + {:datafied true} + true + false] (bb (with-out-str (clojure.pprint/pprint code))))))