当前失败的示例
`
(ns a-b.core)
(defn doit [])
(ns a-b.other
(:require [a-b.core :as core]))
(let [a_b 2]
(core/doit)) ;; 失败,a_b没有被正确地阴影化
;; 相关
(let [a_b 1, a-b 2] a_b) ;; 冲突,返回2!
(let [a-b 1, a_b 2] a_b) ;; 冲突,返回2!
(let [goog "2"] (js-obj goog 2) ;; 失败。覆盖了goog!
`
由于编译器的阴影逻辑相当昂贵,并且动态计算每个“第一个命名空间段”的混淆名称可能会将编译器速度减慢近2倍(或更多),我们可能应该重新引入这种方法
https://github.com/clojure/clojurescript/commit/1c71ab3bff27dc4a099b06e122ec3fdf5a2a8ba8
也就是说,维护一个第一ns段集合并在此处进行简单的集合查找。我们可能只需要存储混淆名称,并在混淆后进行查找来修复上述错误。我们还应该添加"goog"。