File tree Expand file tree Collapse file tree 1 file changed +10
-5
lines changed Expand file tree Collapse file tree 1 file changed +10
-5
lines changed Original file line number Diff line number Diff line change 30413041
30423042(defn parse-global-refer-spec
30433043 [env args]
3044- (let [xs (filter #(-> % first (= :refer-global )) args)]
3045- (if-not (= 1 (count xs))
3046- (throw (error env " Only one :refer-global form is allowed per namespace definition" ))
3044+ (let [xs (filter #(-> % first (= :refer-global )) args)
3045+ cnt (count xs)]
3046+ (cond
3047+ (> cnt 1 )
3048+ (throw (error env (str " Only one :refer-global form is allowed per namespace definition " (count xs))))
3049+
3050+ (== cnt 1 )
30473051 (let [[_ refers & {:keys [rename] :as renames-only}] (first xs)
30483052 err-str " Only [:refer-global (names)] and optionally `:rename {from to}` specs supported" ]
30493053 (when-not (and (vector? refers) (every? symbol refers))
33553359 core-renames (reduce (fn [m [original renamed]]
33563360 (assoc m renamed (symbol " cljs.core" (str original))))
33573361 {} core-renames)
3362+ {global-uses :use global-renames :rename } (parse-global-refer-spec env args)
33583363 deps (atom [])
33593364 ; ; as-aliases can only be used *once* because they are about the reader
33603365 aliases (atom {:fns as-aliases :macros as-aliases})
34163421 :use-macros use-macros
34173422 :require-macros require-macros
34183423 :rename-macros rename-macros
3419- :uses uses
3424+ :uses ( merge uses global-uses)
34203425 :requires requires
3421- :renames (merge renames core-renames)
3426+ :renames (merge renames core-renames global-renames )
34223427 :imports imports}]
34233428 (swap! env/*compiler* update-in [::namespaces name] merge ns-info)
34243429 (merge {:op :ns
You can’t perform that action at this time.
0 commit comments