From 23299457db54fdd4e0e06bc1d93489de6c9dc99f Mon Sep 17 00:00:00 2001 From: Nathan Marz Date: Thu, 1 Sep 2016 21:46:04 -0400 Subject: [PATCH] fixes --- src/clj/com/rpl/specter/impl.cljc | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/src/clj/com/rpl/specter/impl.cljc b/src/clj/com/rpl/specter/impl.cljc index f4a8c2d..69b8345 100644 --- a/src/clj/com/rpl/specter/impl.cljc +++ b/src/clj/com/rpl/specter/impl.cljc @@ -659,10 +659,7 @@ (->DynamicVal (:sym o)) (instance? SpecialFormUse o) - (let [code (:code o) - v (->DynamicVal code)] - (if (= 'fn* (first code)) - (->DynamicFunction pred* [v]))) + (->DynamicVal (:code o)) (instance? FnInvocation o) (let [op (magic-precompilation* (:op o)) @@ -733,9 +730,15 @@ (resolve-magic-code path))) (instance? DynamicVal o) - (if (-> o :code direct-nav?) - (:code o) - `(coerce-nav ~(:code o))) + (let [code (:code o)] + (cond (direct-nav? code) + code + + (or (set? code) (and (fn-invocation? code) (= 'fn* (first code)))) + `(pred* ~code) + + :else + `(coerce-nav ~code))) (instance? DynamicFunction o) (let [op (resolve-dynamic-fn-arg (:op o))