File tree Expand file tree Collapse file tree 2 files changed +20
-4
lines changed Expand file tree Collapse file tree 2 files changed +20
-4
lines changed Original file line number Diff line number Diff line change 655
655
656
656
(defmethod parse 'var
657
657
[op env [_ sym :as form] _ _]
658
- (let [var (resolve-var env sym (confirm-var-exists-throw ))]
658
+ (let [var (resolve-var env sym (confirm-var-exists-throw ))
659
+ expr-env (assoc env :context :expr )]
659
660
{:env env :op :var-special :form form
660
- :var (analyze env sym)
661
- :sym (analyze env `(quote ~(symbol (name (:ns var)) (name (:name var)))))
661
+ :var (analyze expr- env sym)
662
+ :sym (analyze expr- env `(quote ~(symbol (name (:ns var)) (name (:name var)))))
662
663
:meta (let [ks [:ns :doc :file :line :column ]
663
664
m (merge
664
665
(assoc (zipmap ks (map #(list 'quote (get var %)) ks))
669
670
uks (keys user-meta)]
670
671
(zipmap uks
671
672
(map #(list 'quote (get user-meta %)) uks))))]
672
- (analyze env m))}))
673
+ (analyze expr- env m))}))
673
674
674
675
(defmethod parse 'if
675
676
[op env [_ test then else :as form] name _]
Original file line number Diff line number Diff line change 2721
2721
(is (= identity (dispatch-fn cljs-1144)))
2722
2722
(is (= ::default (default-dispatch-val cljs-1144 ))))
2723
2723
2724
+ (defn foo-1187 [] (print " foo!" ))
2725
+
2726
+ (defn bar-1187 [] (print " bar!" ))
2727
+
2728
+ (defn print-foo-1187 [fb]
2729
+ (apply
2730
+ (case fb
2731
+ :foo #'foo-1187
2732
+ :bar #'bar-1187) []))
2733
+
2734
+ (deftest test-cljs-1187 []
2735
+ (testing " Internal var nodes analyzed in expression context"
2736
+ (is (= (with-out-str (print-foo-1187 :foo ))
2737
+ " foo!" ))))
2738
+
2724
2739
(comment
2725
2740
; ; ObjMap
2726
2741
; ; (let [ks (map (partial str "foo") (range 500))
You can’t perform that action at this time.
0 commit comments