From ef8039caccb821e983c539647f59a7f4517cdca3 Mon Sep 17 00:00:00 2001 From: Nathan Marz Date: Wed, 15 Jun 2016 11:41:12 -0400 Subject: [PATCH] error if pathed fn used where navigator expected --- src/clj/com/rpl/specter/impl.cljx | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/src/clj/com/rpl/specter/impl.cljx b/src/clj/com/rpl/specter/impl.cljx index ab9bd38..8a9055d 100644 --- a/src/clj/com/rpl/specter/impl.cljx +++ b/src/clj/com/rpl/specter/impl.cljx @@ -1246,9 +1246,17 @@ (instance? VarUse p) (let [v (:var p) vv (:val p)] - (cond (-> v meta :dynamic) (magic-fail! "Var " (:sym p) " is dynamic") - (valid-navigator? vv) vv - :else (magic-fail! "Var " (:sym p) " is not a navigator") + (cond (-> v meta :dynamic) + (magic-fail! "Var " (:sym p) " is dynamic") + + (and (fn? vv) (-> v meta :pathedfn)) + (throw-illegal "Cannot use pathed fn '" (:sym p) "' where navigator expected") + + (valid-navigator? vv) + vv + + :else + (magic-fail! "Var " (:sym p) " is not a navigator") )) (instance? SpecialFormUse p)