File tree Expand file tree Collapse file tree 4 files changed +38
-1
lines changed Expand file tree Collapse file tree 4 files changed +38
-1
lines changed Original file line number Diff line number Diff line change 22
22
(list x)
23
23
x))
24
24
25
+ (defn- enumerate-namespace* [sym-or-syms]
26
+ (into #{}
27
+ (mapcat
28
+ (fn [sym]
29
+ (->> (vals (ana-api/ns-interns sym))
30
+ (map :name )
31
+ (map
32
+ (fn [name-sym]
33
+ (symbol (name sym) (name name-sym)))))))
34
+ (collectionize sym-or-syms)))
35
+
36
+ (defmacro enumerate-namespace
37
+ " Given a symbol naming an ns, or a collection of such symbols,
38
+ returns the set of all symbols naming vars in those nses."
39
+ [ns-sym-or-syms]
40
+ `'~(enumerate-namespace* (eval ns-sym-or-syms)))
41
+
25
42
(defn- fn-spec-name?
26
43
[s]
27
44
(symbol? s))
Original file line number Diff line number Diff line change
1
+ (ns cljs.spec.test.test-ns1 )
2
+
3
+ (def x 1 )
4
+
5
+ (def y 2 )
Original file line number Diff line number Diff line change
1
+ (ns cljs.spec.test.test-ns2 )
2
+
3
+ (def z 3 )
Original file line number Diff line number Diff line change 2
2
(:require-macros [cljs.spec.test.test-macros])
3
3
(:require [cljs.test :as test :refer-macros [deftest is are run-tests]]
4
4
[cljs.spec.alpha :as s]
5
- [cljs.spec.test.alpha :as stest]))
5
+ [cljs.spec.test.alpha :as stest]
6
+ [cljs.spec.test.test-ns1]
7
+ [cljs.spec.test.test-ns2]))
6
8
7
9
(s/fdef clojure.core/symbol
8
10
:args (s/alt :separate (s/cat :ns string? :n string?)
85
87
86
88
(deftest test-2755
87
89
(is (uri? (ffirst (s/exercise uri? 1 )))))
90
+
91
+ (deftest test-cljs-2665
92
+ (is (= '#{cljs.spec.test.test-ns1/x cljs.spec.test.test-ns1/y cljs.spec.test.test-ns2/z}
93
+ (stest/enumerate-namespace '[cljs.spec.test.test-ns1 cljs.spec.test.test-ns2])))
94
+ (is (= '#{cljs.spec.test.test-ns1/x cljs.spec.test.test-ns1/y cljs.spec.test.test-ns2/z}
95
+ (stest/enumerate-namespace ['cljs.spec.test.test-ns1 'cljs.spec.test.test-ns2])))
96
+ (is (= '#{cljs.spec.test.test-ns1/x cljs.spec.test.test-ns1/y}
97
+ (stest/enumerate-namespace 'cljs.spec.test.test-ns1)))
98
+ (is (= '#{cljs.spec.test.test-ns2/z}
99
+ (stest/enumerate-namespace 'cljs.spec.test.test-ns2))))
You can’t perform that action at this time.
0 commit comments