Skip to content

Commit 94c1886

Browse files
committed
for fn invokes to be replace we also need to update :info
1 parent 23492ae commit 94c1886

File tree

2 files changed

+16
-11
lines changed

2 files changed

+16
-11
lines changed

src/main/cljs/cljs/analyzer/passes/lite.cljc

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,10 @@
1717
cljs.core/vec cljs.core/simple-vec})
1818

1919
(defn update-var [{:keys [name] :as ast}]
20-
(update ast :name ctor->simple-ctor))
20+
(let [replacement (get ctor->simple-ctor name)]
21+
(-> ast
22+
(assoc :name replacement)
23+
(assoc-in [:info :name] replacement))))
2124

2225
(defn replace-var? [ast]
2326
(and (var? ast)

src/test/clojure/cljs/analyzer_pass_tests.clj

Lines changed: 12 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -181,18 +181,20 @@
181181
(deftest test-lite-mode-pass
182182
(let [aenv (assoc (ana/empty-env) :context :expr)
183183
env (env/default-compiler-env {:lite-mode true})]
184-
(is (= 'cljs.core/simple-vec
185-
(-> (env/with-compiler-env env
186-
(comp/with-core-cljs {}
187-
(fn []
188-
(analyze aenv 'cljs.core/vec))))
189-
:name)))
190-
(is (= 'cljs.core/simple-vector
191-
(-> (env/with-compiler-env env
184+
(let [ast (env/with-compiler-env env
192185
(comp/with-core-cljs {}
193186
(fn []
194-
(analyze aenv 'cljs.core/vector))))
195-
:name)))))
187+
(analyze aenv 'cljs.core/vec))))]
188+
(is (= 'cljs.core/simple-vec
189+
(-> ast :name)
190+
(-> ast :info :name))))
191+
(let [ast (env/with-compiler-env env
192+
(comp/with-core-cljs {}
193+
(fn []
194+
(analyze aenv 'cljs.core/vector))))]
195+
(is (= 'cljs.core/simple-vector
196+
(-> ast :name)
197+
(-> ast :info :name))))))
196198

197199
(comment
198200
(test/run-tests)

0 commit comments

Comments
 (0)