Skip to content

Commit

Permalink
fix ns :rename not properly using ns aliases
Browse files Browse the repository at this point in the history
fixes #218
  • Loading branch information
thheller committed Mar 12, 2018
1 parent 0749e08 commit 6e433a5
Show file tree
Hide file tree
Showing 2 changed files with 32 additions and 1 deletion.
12 changes: 11 additions & 1 deletion src/main/shadow/build/ns_form.clj
Expand Up @@ -506,7 +506,7 @@
)))

(defn rewrite-ns-aliases
[{:keys [requires uses deps] :as ast}
[{:keys [requires uses deps renames] :as ast}
{:keys [ns-aliases] :as state}]

(if-not (seq ns-aliases)
Expand Down Expand Up @@ -537,6 +537,16 @@
(rewrite-ns-map requires true)
:uses
(rewrite-ns-map uses false)
:renames
(reduce-kv
(fn [renames var fqn-name]
(let [ns (symbol (namespace fqn-name))
alias-ns (get ns-aliases ns)]
(if-not alias-ns
renames
(assoc renames var (symbol (str alias-ns) (name fqn-name))))))
renames
renames)
:ns-aliases
ns-aliases
))))
Expand Down
21 changes: 21 additions & 0 deletions src/repl/shadow/cljs/ns_form_test.clj
Expand Up @@ -152,6 +152,27 @@
(pprint ast)
(pprint ast-resolved)))

(deftest test-parse-and-rewrite-rename
(let [test
'(ns something
(:require [react-dnd-html5-backend :rename {default HTML5Backend}]))

ast
(ns-form/parse test)

ast-resolved
(ns-form/rewrite-ns-aliases ast
{:ns-aliases
'{react-dnd-html5-backend alias$react-dnd-html5-backend}})]

(is (= 'alias$react-dnd-html5-backend (get-in ast-resolved [:requires 'react-dnd-html5-backend])))
(is (= '[goog cljs.core alias$react-dnd-html5-backend] (:deps ast-resolved)))
(is (= 'alias$react-dnd-html5-backend/default (get-in ast-resolved [:renames 'HTML5Backend])))
(pprint ast)
(pprint ast-resolved)))



(deftest test-parse-repl-require
(let [test-ns
'(ns cljs.user)
Expand Down

0 comments on commit 6e433a5

Please sign in to comment.