Skip to content

Commit 8d8a55a

Browse files
committed
* rest of the bits from the ast-ref
1 parent 56a6721 commit 8d8a55a

File tree

1 file changed

+94
-5
lines changed

1 file changed

+94
-5
lines changed

src/test/clojure/cljs/analyzer/specs.cljc

Lines changed: 94 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -84,18 +84,18 @@
8484
(s/keys
8585
:req-un [::keys ::vals])))
8686

87+
(defmethod node :js-array [_]
88+
(s/merge ::base
89+
(s/keys
90+
:req-un [::items])))
91+
8792
(s/def ::ns symbol?)
8893

8994
(defmethod node :js-var [_]
9095
(s/merge ::base
9196
(s/keys
9297
:req-un [::ns ::name])))
9398

94-
(defmethod node :js-array [_]
95-
(s/merge ::base
96-
(s/keys
97-
:req-un [::items])))
98-
9999
(s/def ::var ::node)
100100
(s/def ::sym ::node)
101101
(s/def ::meta map?)
@@ -200,6 +200,95 @@
200200
(s/keys
201201
:req-un [::fn ::args])))
202202

203+
(s/def ::bindings (s/* ::node))
204+
205+
(defmethod node :let [_]
206+
(s/merge ::base
207+
(s/keys
208+
:req-un [::bindings ::body])))
209+
210+
(defmethod node :letfn [_]
211+
(s/merge ::base
212+
(s/keys
213+
:req-un [::bindings ::body])))
214+
215+
(defmethod node :local [_]
216+
(s/merge ::base
217+
(s/keys
218+
:req-un [:cljs.analyzer.specs.binding/local ::name])))
219+
220+
(defmethod node :loop [_]
221+
(s/merge ::base
222+
(s/keys
223+
:req-un [::bindings ::body])))
224+
225+
(s/def ::class ::node)
226+
227+
(defmethod node :new [_]
228+
(s/merge ::base
229+
(s/keys
230+
:req-un [::class ::args])))
231+
232+
(defmethod node :no-op [_]
233+
::base)
234+
235+
(defmethod node :no-op [_]
236+
::base)
237+
238+
(defmethod node :no-op [_]
239+
::base)
240+
241+
(s/def ::expr ::node)
242+
243+
(defmethod node :quote [_]
244+
(s/merge ::base
245+
(s/keys
246+
:req-un [::expr ::literal?])))
247+
248+
(s/def ::exprs (s/* ::nodes))
249+
250+
(defmethod node :recur [_]
251+
(s/merge ::base
252+
(s/keys
253+
:req-un [::exprs])))
254+
255+
(defmethod node :set [_]
256+
(s/merge ::base
257+
(s/keys
258+
:req-un [::items])))
259+
260+
(defmethod node :set! [_]
261+
(s/merge ::base
262+
(s/keys
263+
:req-un [::target ::val])))
264+
265+
(s/def ::exception ::node)
266+
267+
(defmethod node :throw [_]
268+
(s/merge ::base
269+
(s/keys
270+
:req-un [::exception])))
271+
272+
(s/def ::catch ::node)
273+
(s/def ::finally ::node)
274+
275+
(defmethod node :try [_]
276+
(s/merge ::base
277+
(s/keys
278+
:req-un [::body ::catch ::name ::finally])))
279+
280+
(defmethod node :var [_]
281+
(s/merge ::base
282+
(s/keys
283+
:req-un [::ns ::name])))
284+
285+
(s/def ::meta ::node)
286+
287+
(defmethod node :with-meta [_]
288+
(s/merge ::base
289+
(s/keys
290+
:req-un [::meta ::expr])))
291+
203292
(comment
204293

205294
(s/valid? ::node 1)

0 commit comments

Comments
 (0)