From f743710c6aa42196d610982b159eba11ee084371 Mon Sep 17 00:00:00 2001 From: David Nolen Date: Mon, 11 May 2026 07:18:12 -0400 Subject: [PATCH 1/4] wip --- src/main/cljs/cljs/core/specs/alpha.cljc | 22 ++++++++++++++++------ 1 file changed, 16 insertions(+), 6 deletions(-) diff --git a/src/main/cljs/cljs/core/specs/alpha.cljc b/src/main/cljs/cljs/core/specs/alpha.cljc index f2475aeae..5a703eec8 100644 --- a/src/main/cljs/cljs/core/specs/alpha.cljc +++ b/src/main/cljs/cljs/core/specs/alpha.cljc @@ -188,14 +188,24 @@ :libs (s/+ (s/alt :libspec ::use-macros-libspec :flag #{:reload :reload-all :verbose}))))) +(s/def ::ns-refer-global + (s/spec (s/cat :clause #{:refer-global} + :only #{:only} + :symbols (s/+ symbol?)))) + +(s/def ::ns-require-global + (s/spec (s/cat :clause #{:require-global} + :body (s/+ ::libspec)))) (s/def ::ns-clauses - (s/* (s/alt :refer-clojure ::ns-refer-clojure - :require ::ns-require - :require-macros ::ns-require-macros - :import ::ns-import - :use ::ns-use - :use-macros ::ns-use-macros))) + (s/* (s/alt + :refer-clojure ::ns-refer-clojure + :require ::ns-require + :require-macros ::ns-require-macros + :import ::ns-import + :use ::ns-use + :use-macros ::ns-use-macros + :refer-global :require-global))) (s/def ::ns-form (s/cat :ns-name simple-symbol? From f4be576097635c7615aa83d4972923ee9205f74d Mon Sep 17 00:00:00 2001 From: davidnolen Date: Wed, 27 May 2026 10:20:34 -0400 Subject: [PATCH 2/4] fix :refer-global spec --- src/main/cljs/cljs/core/specs/alpha.cljc | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/main/cljs/cljs/core/specs/alpha.cljc b/src/main/cljs/cljs/core/specs/alpha.cljc index 5a703eec8..a1b153fe0 100644 --- a/src/main/cljs/cljs/core/specs/alpha.cljc +++ b/src/main/cljs/cljs/core/specs/alpha.cljc @@ -190,8 +190,7 @@ (s/def ::ns-refer-global (s/spec (s/cat :clause #{:refer-global} - :only #{:only} - :symbols (s/+ symbol?)))) + :options (s/keys* :req-un [::only])))) (s/def ::ns-require-global (s/spec (s/cat :clause #{:require-global} From 9c975340e440be0c45422d17a38977e328d5faf2 Mon Sep 17 00:00:00 2001 From: davidnolen Date: Wed, 27 May 2026 10:33:56 -0400 Subject: [PATCH 3/4] fix typos --- src/main/cljs/cljs/core/specs/alpha.cljc | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/main/cljs/cljs/core/specs/alpha.cljc b/src/main/cljs/cljs/core/specs/alpha.cljc index a1b153fe0..60e35fe4b 100644 --- a/src/main/cljs/cljs/core/specs/alpha.cljc +++ b/src/main/cljs/cljs/core/specs/alpha.cljc @@ -204,7 +204,8 @@ :import ::ns-import :use ::ns-use :use-macros ::ns-use-macros - :refer-global :require-global))) + :refer-global ::ns-refer-global + :require-global ::ns-require-global))) (s/def ::ns-form (s/cat :ns-name simple-symbol? From 9104e8ad6c0e44e1f4e2b5992e56989ac2c66ff4 Mon Sep 17 00:00:00 2001 From: davidnolen Date: Wed, 27 May 2026 10:48:00 -0400 Subject: [PATCH 4/4] loading the specs into the tests is too annoyin, just some eval comments for now --- src/main/cljs/cljs/core/specs/alpha.cljc | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/src/main/cljs/cljs/core/specs/alpha.cljc b/src/main/cljs/cljs/core/specs/alpha.cljc index 60e35fe4b..fb06430a3 100644 --- a/src/main/cljs/cljs/core/specs/alpha.cljc +++ b/src/main/cljs/cljs/core/specs/alpha.cljc @@ -243,3 +243,16 @@ (s/fdef core/use-macros :args (s/+ (s/alt :libspec (quoted ::use-macros-libspec) :flag #{:reload :reload-all :verbose}))) + +(comment + + (s/valid? ::ns-refer-global + '(:refer-global :only [Date] :rename {Date MyDate})) + + (s/valid? ::ns-refer-global + '(:refer-global :only)) + + (s/valid? ::ns-require-global + '(:require-global [jquery :as jq :refer [carousel] :rename {carousel car}])) + +)