fix regression in cljs that causes warning for record fields named var and other reserved words

This commit is contained in:
nathanmarz 2017-06-27 08:22:20 -04:00
parent cfb191e1cd
commit 179d818503
2 changed files with 16 additions and 4 deletions

View file

@ -421,8 +421,10 @@
(defrecord LocalSym
[val sym])
;; needs to be named "avar" instead of "var" due to regression in cljs circa
;; 6/26/2017. See https://github.com/nathanmarz/specter/issues/215
(defrecord VarUse
[val var sym])
[val avar sym])
(defrecord SpecialFormUse
[val code])
@ -686,14 +688,14 @@
(preserve-map magic-precompilation* o)
(instance? VarUse o)
(if (dynamic-var? (:var o))
(if (dynamic-var? (:avar o))
(->DynamicVal (maybe-direct-nav
(:sym o)
(or (-> o :var direct-nav?)
(or (-> o :avar direct-nav?)
(-> o :sym direct-nav?))))
(maybe-direct-nav
(:val o)
(or (-> o :var direct-nav?)
(or (-> o :avar direct-nav?)
(-> o :sym direct-nav?)
(-> o :val direct-nav?))))

View file

@ -1577,6 +1577,16 @@
(is (= [1 3 3] (transform MIDDLE inc [1 2 3])))
)
(def ^:dynamic *dvar* :a)
(defn dvar-tester []
(select-any *dvar* {:a 1 :b 2}))
(deftest dynamic-var-ic-test
(is (= 1 (dvar-tester)))
(is (= 2 (binding [*dvar* :b] (dvar-tester))))
)
#?(:clj
(do
(defprotocolpath FooPP)