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 655655
656656(defmethod parse 'var
657657 [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 )]
659660 {: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)))))
662663 :meta (let [ks [:ns :doc :file :line :column ]
663664 m (merge
664665 (assoc (zipmap ks (map #(list 'quote (get var %)) ks))
669670 uks (keys user-meta)]
670671 (zipmap uks
671672 (map #(list 'quote (get user-meta %)) uks))))]
672- (analyze env m))}))
673+ (analyze expr- env m))}))
673674
674675(defmethod parse 'if
675676 [op env [_ test then else :as form] name _]
Original file line number Diff line number Diff line change 27212721 (is (= identity (dispatch-fn cljs-1144)))
27222722 (is (= ::default (default-dispatch-val cljs-1144 ))))
27232723
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+
27242739(comment
27252740 ; ; ObjMap
27262741 ; ; (let [ks (map (partial str "foo") (range 500))
You can’t perform that action at this time.
0 commit comments