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 3041
3041
3042
3042
(defn parse-global-refer-spec
3043
3043
[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 )
3047
3051
(let [[_ refers & {:keys [rename] :as renames-only}] (first xs)
3048
3052
err-str " Only [:refer-global (names)] and optionally `:rename {from to}` specs supported" ]
3049
3053
(when-not (and (vector? refers) (every? symbol refers))
3355
3359
core-renames (reduce (fn [m [original renamed]]
3356
3360
(assoc m renamed (symbol " cljs.core" (str original))))
3357
3361
{} core-renames)
3362
+ {global-uses :use global-renames :rename } (parse-global-refer-spec env args)
3358
3363
deps (atom [])
3359
3364
; ; as-aliases can only be used *once* because they are about the reader
3360
3365
aliases (atom {:fns as-aliases :macros as-aliases})
3416
3421
:use-macros use-macros
3417
3422
:require-macros require-macros
3418
3423
:rename-macros rename-macros
3419
- :uses uses
3424
+ :uses ( merge uses global-uses)
3420
3425
:requires requires
3421
- :renames (merge renames core-renames)
3426
+ :renames (merge renames core-renames global-renames )
3422
3427
:imports imports}]
3423
3428
(swap! env/*compiler* update-in [::namespaces name] merge ns-info)
3424
3429
(merge {:op :ns
You can’t perform that action at this time.
0 commit comments