Skip to content

Commit 689f6d3

Browse files
anmonteirodnolen
authored andcommitted
CLJS-1700: Support clojure.* aliasing when not in vector
1 parent 82dce0b commit 689f6d3

File tree

2 files changed

+14
-9
lines changed

2 files changed

+14
-9
lines changed

src/main/clojure/cljs/analyzer.cljc

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1925,14 +1925,14 @@
19251925
possible."
19261926
[args]
19271927
(letfn [(process-spec [maybe-spec]
1928-
(if (sequential? maybe-spec)
1929-
(let [[lib & xs] maybe-spec]
1930-
(if (aliasable-clj-ns? lib)
1931-
(let [lib' (clj-ns->cljs-ns lib)
1932-
spec (cons lib' xs)]
1933-
[spec (list lib' :as lib)])
1934-
[maybe-spec]))
1935-
[maybe-spec]))
1928+
(let [[lib & xs] (if (sequential? maybe-spec)
1929+
maybe-spec
1930+
[maybe-spec])]
1931+
(if (and (symbol? lib) (aliasable-clj-ns? lib))
1932+
(let [lib' (clj-ns->cljs-ns lib)
1933+
spec (cons lib' xs)]
1934+
(into (if xs [spec] []) [(list lib' :as lib)]))
1935+
[maybe-spec])))
19361936
(process-form [[k & specs :as form]]
19371937
(if (#{:use :require} k)
19381938
(cons k (mapcat process-spec specs))

src/test/clojure/cljs/analyzer_tests.clj

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -285,7 +285,12 @@
285285
(:require (clojure.spec :as s) :reload)))
286286
'((:refer-clojure :exclude [first])
287287
(:require-macros (bar :refer [quux]) :reload)
288-
(:require (cljs.spec :as s) (cljs.spec :as clojure.spec) :reload)))))
288+
(:require (cljs.spec :as s) (cljs.spec :as clojure.spec) :reload))))
289+
(is (= (a/rewrite-cljs-aliases
290+
'((:require-macros (bar :refer [quux]) :reload)
291+
(:require clojure.spec :reload)))
292+
'((:require-macros (bar :refer [quux]) :reload)
293+
(:require (cljs.spec :as clojure.spec) :reload)))))
289294

290295
;; =============================================================================
291296
;; Namespace metadata

0 commit comments

Comments
 (0)