Skip to content

Commit 25602b9

Browse files
author
dnolen
committed
fix some AOT oddities in the const enhancement
1 parent 9a1fae9 commit 25602b9

File tree

1 file changed

+6
-2
lines changed

1 file changed

+6
-2
lines changed

src/clj/cljs/core.clj

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1434,6 +1434,11 @@
14341434
cljs.analyzer/*cljs-file*)))))
14351435
(assoc m test expr)))
14361436

1437+
(defn- const? [env x]
1438+
(core/let [m (core/and (core/list? x)
1439+
(ana/resolve-var env (last x)))]
1440+
(core/when m (core/get m :const))))
1441+
14371442
(defmacro case
14381443
"Takes an expression, and a set of clauses.
14391444
@@ -1481,10 +1486,9 @@
14811486
(assoc-test m test expr env)))
14821487
{} (partition 2 clauses))
14831488
esym (gensym)
1484-
const? #(:const (and (list? %) (ana/resolve-var env (last %))))
14851489
tests (keys pairs)]
14861490
(cond
1487-
(every? (some-fn core/number? core/string? core/char? const?) tests)
1491+
(every? (some-fn core/number? core/string? core/char? #(const? env %)) tests)
14881492
(core/let [no-default (if (odd? (count clauses)) (butlast clauses) clauses)
14891493
tests (mapv #(if (seq? %) (vec %) [%]) (take-nth 2 no-default))
14901494
thens (vec (take-nth 2 (drop 1 no-default)))]

0 commit comments

Comments
 (0)