Skip to content

Commit

Permalink
CLJS-697: top-level symbol reference doesn't get an automatically
Browse files Browse the repository at this point in the history
inserted ns-name

Add another resolve-var . case, check the current ns
  • Loading branch information
swannodette committed Nov 24, 2013
1 parent 8f7a199 commit d4bf882
Showing 1 changed file with 12 additions and 7 deletions.
19 changes: 12 additions & 7 deletions src/clj/cljs/analyzer.clj
Expand Up @@ -331,11 +331,16 @@
lb (-> env :locals prefix)] lb (-> env :locals prefix)]
(if lb (if lb
{:name (symbol (str (:name lb) suffix))} {:name (symbol (str (:name lb) suffix))}
(if-let [full-ns (get-in @env/*compiler* [::namespaces (-> env :ns :name) :imports prefix])] (let [cur-ns (-> env :ns :name)]
{:name (symbol (str full-ns) suffix)} (if-let [full-ns (get-in @env/*compiler* [::namespaces cur-ns :imports prefix])]
(merge (get-in @env/*compiler* [::namespaces prefix :defs (symbol suffix)]) {:name (symbol (str full-ns) suffix)}
{:name (if (= "" prefix) (symbol suffix) (symbol (str prefix) suffix)) (if-let [info (get-in @env/*compiler* [::namespaces cur-ns :defs prefix])]
:ns prefix})))) (merge info
{:name (symbol (str cur-ns) (str sym))
:ns cur-ns})
(merge (get-in @env/*compiler* [::namespaces prefix :defs (symbol suffix)])
{:name (if (= "" prefix) (symbol suffix) (symbol (str prefix) suffix))
:ns prefix}))))))


(get-in @env/*compiler* [::namespaces (-> env :ns :name) :uses sym]) (get-in @env/*compiler* [::namespaces (-> env :ns :name) :uses sym])
(let [full-ns (get-in @env/*compiler* [::namespaces (-> env :ns :name) :uses sym])] (let [full-ns (get-in @env/*compiler* [::namespaces (-> env :ns :name) :uses sym])]
Expand All @@ -354,8 +359,8 @@
(when confirm (when confirm
(confirm env full-ns sym)) (confirm env full-ns sym))
(merge (get-in @env/*compiler* [::namespaces full-ns :defs sym]) (merge (get-in @env/*compiler* [::namespaces full-ns :defs sym])
{:name (symbol (str full-ns) (str sym)) {:name (symbol (str full-ns) (str sym))
:ns full-ns}))))))) :ns full-ns})))))))


(defn resolve-existing-var [env sym] (defn resolve-existing-var [env sym]
(if-not (-> sym meta ::no-resolve) (if-not (-> sym meta ::no-resolve)
Expand Down

0 comments on commit d4bf882

Please sign in to comment.