Skip to content

Commit 64be690

Browse files
authored
CLJS-3399: :as-alias does not work with symbols (#204)
resolve-ns-alias needs to look at as-aliases. Add tests.
1 parent 0ccd19f commit 64be690

2 files changed

Lines changed: 11 additions & 3 deletions

File tree

src/main/clojure/cljs/analyzer.cljc

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -917,8 +917,11 @@
917917
([env name]
918918
(resolve-ns-alias env name (symbol name)))
919919
([env name not-found]
920-
(let [sym (symbol name)]
921-
(get (:requires (:ns env)) sym not-found))))
920+
(let [sym (symbol name)
921+
{:keys [requires as-aliases]} (:ns env)]
922+
(or (get requires sym)
923+
(get as-aliases sym)
924+
not-found))))
922925

923926
(defn resolve-macro-ns-alias
924927
([env name]

src/test/cljs/cljs/ns_test.cljs

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,8 @@
1515
[cljs.test]
1616
[cljs.ns-test.foo :refer [baz]]
1717
[clojure.set :as s :refer [intersection] :rename {intersection itsc}]
18-
[cljs.analyzer :as ana])
18+
[cljs.analyzer :as ana]
19+
[fake.ns :as-alias fake])
1920
(:use [cljs.ns-test.bar :only [quux]]))
2021

2122
(def + -)
@@ -43,3 +44,7 @@
4344
(is (.isArrayLike js/goog array-like))
4445
(is (goog/isArrayLike array-like))
4546
(is (goog-alias/isArrayLike array-like))))
47+
48+
(deftest test-cljs-3399
49+
(is (= ::fake/foo :fake.ns/foo)
50+
(= `fake/foo `fake.ns/foo)))

0 commit comments

Comments
 (0)