| 
42 | 42 |       :req-un [::name :cljs.analyzer.specs.binding/local]  | 
43 | 43 |       :opt-un [::variadic? ::init ::shadow])))  | 
44 | 44 | 
 
  | 
45 |  | -(defmethod node :if [_]  | 
46 |  | -  (s/merge ::base  | 
47 |  | -    (s/keys  | 
48 |  | -      :req-un [::test ::then]  | 
49 |  | -      :opt-un [::else])))  | 
50 |  | - | 
51 |  | -(s/def ::literal? boolean?)  | 
52 |  | -(s/def ::val any?)  | 
53 |  | - | 
54 |  | -(defmethod node :const [_]  | 
55 |  | -  (s/merge ::base  | 
56 |  | -    (s/keys  | 
57 |  | -      :req-un [::val]  | 
58 |  | -      ;; ::literal? is required in the AST REF, but we don't actually use it  | 
59 |  | -      ;; should check tools.analyzer  | 
60 |  | -      :opt-un [::literal?])))  | 
61 |  | - | 
62 |  | -(s/def ::keys (s/* ::node))  | 
63 |  | -(s/def ::vals (s/* ::node))  | 
64 |  | - | 
65 |  | -(defmethod node :map [_]  | 
66 |  | -  (s/merge ::base  | 
67 |  | -    (s/keys :req-un [::keys ::vals])))  | 
68 |  | - | 
69 |  | -(s/def ::items (s/* ::node))  | 
70 |  | - | 
71 |  | -(defmethod node :list [_]  | 
72 |  | -  (s/merge ::base  | 
73 |  | -    (s/keys  | 
74 |  | -     :req-un [::items])))  | 
75 |  | - | 
76 |  | -(defmethod node :vector [_]  | 
77 |  | -  (s/merge ::base  | 
78 |  | -    (s/keys  | 
79 |  | -      :req-un [::items])))  | 
80 |  | - | 
81 |  | -(defmethod node :set [_]  | 
82 |  | -  (s/merge ::base  | 
83 |  | -    (s/keys  | 
84 |  | -      :req-un [::items])))  | 
85 |  | - | 
86 |  | -(defmethod node :js-object [_]  | 
87 |  | -  (s/merge ::base  | 
88 |  | -    (s/keys  | 
89 |  | -      :req-un [::keys ::vals])))  | 
90 |  | - | 
91 |  | -(defmethod node :js-array [_]  | 
92 |  | -  (s/merge ::base  | 
93 |  | -    (s/keys  | 
94 |  | -      :req-un [::items])))  | 
95 |  | - | 
96 |  | -(s/def ::ns symbol?)  | 
97 |  | - | 
98 |  | -(defmethod node :js-var [_]  | 
99 |  | -  (s/merge ::base  | 
100 |  | -    (s/keys  | 
101 |  | -      :req-un [::ns ::name])))  | 
102 |  | - | 
103 |  | -(s/def ::var ::node)  | 
104 |  | -(s/def ::sym ::node)  | 
105 |  | -(s/def ::meta map?)  | 
106 |  | - | 
107 |  | -(defmethod node :the-var [_]  | 
108 |  | -  (s/merge ::base  | 
109 |  | -    (s/keys  | 
110 |  | -      :opt-un [::var ::sym ::meta])))  | 
111 |  | - | 
112 | 45 | (s/def ::nodes (s/* ::node))  | 
113 | 46 | (s/def ::default ::node)  | 
114 | 47 | 
 
  | 
 | 
131 | 64 |     (s/keys  | 
132 | 65 |       :req-un [::then])))  | 
133 | 66 | 
 
  | 
134 |  | -(s/def ::the-var ::node)  | 
 | 67 | +(s/def ::literal? boolean?)  | 
 | 68 | +(s/def ::val any?)  | 
 | 69 | + | 
 | 70 | +(defmethod node :const [_]  | 
 | 71 | +  (s/merge ::base  | 
 | 72 | +    (s/keys  | 
 | 73 | +      :req-un [::val]  | 
 | 74 | +      ;; ::literal? is required in the AST REF, but we don't actually use it  | 
 | 75 | +      ;; should check tools.analyzer  | 
 | 76 | +      :opt-un [::literal?])))  | 
135 | 77 | 
 
  | 
136 | 78 | (defmethod node :def [_]  | 
137 | 79 |   (s/merge ::base  | 
 | 
196 | 138 |     (s/keys  | 
197 | 139 |       :req-un [::field ::target])))  | 
198 | 140 | 
 
  | 
 | 141 | +(defmethod node :if [_]  | 
 | 142 | +  (s/merge ::base  | 
 | 143 | +    (s/keys  | 
 | 144 | +      :req-un [::test ::then]  | 
 | 145 | +      :opt-un [::else])))  | 
 | 146 | + | 
199 | 147 | (s/def ::fn ::node)  | 
200 | 148 | 
 
  | 
201 | 149 | (defmethod node :invoke [_]  | 
202 | 150 |   (s/merge ::base  | 
203 | 151 |     (s/keys  | 
204 | 152 |       :req-un [::fn ::args])))  | 
205 | 153 | 
 
  | 
 | 154 | +(s/def ::code string?)  | 
 | 155 | + | 
 | 156 | +(defmethod node :js [_]  | 
 | 157 | +  (s/merge ::base  | 
 | 158 | +    (s/keys  | 
 | 159 | +      :opt-un [::code])))  | 
 | 160 | + | 
 | 161 | +(defmethod node :js-array [_]  | 
 | 162 | +  (s/merge ::base  | 
 | 163 | +    (s/keys  | 
 | 164 | +      :req-un [::items])))  | 
 | 165 | + | 
 | 166 | +(defmethod node :js-object [_]  | 
 | 167 | +  (s/merge ::base  | 
 | 168 | +    (s/keys  | 
 | 169 | +      :req-un [::keys ::vals])))  | 
 | 170 | + | 
 | 171 | +(s/def ::ns symbol?)  | 
 | 172 | + | 
 | 173 | +(defmethod node :js-var [_]  | 
 | 174 | +  (s/merge ::base  | 
 | 175 | +    (s/keys  | 
 | 176 | +      :req-un [::ns ::name])))  | 
 | 177 | + | 
206 | 178 | (s/def ::bindings (s/* ::node))  | 
207 | 179 | 
 
  | 
208 | 180 | (defmethod node :let [_]  | 
 | 
215 | 187 |     (s/keys  | 
216 | 188 |       :req-un [::bindings ::body])))  | 
217 | 189 | 
 
  | 
 | 190 | +(s/def ::items (s/* ::node))  | 
 | 191 | + | 
 | 192 | +;; TODO: not in ast-ref  | 
 | 193 | +(defmethod node :list [_]  | 
 | 194 | +  (s/merge ::base  | 
 | 195 | +    (s/keys  | 
 | 196 | +      :req-un [::items])))  | 
 | 197 | + | 
218 | 198 | (defmethod node :local [_]  | 
219 | 199 |   (s/merge ::base  | 
220 | 200 |     (s/keys  | 
 | 
225 | 205 |     (s/keys  | 
226 | 206 |       :req-un [::bindings ::body])))  | 
227 | 207 | 
 
  | 
 | 208 | +(s/def ::keys (s/* ::node))  | 
 | 209 | +(s/def ::vals (s/* ::node))  | 
 | 210 | + | 
 | 211 | +(defmethod node :map [_]  | 
 | 212 | +  (s/merge ::base  | 
 | 213 | +    (s/keys :req-un [::keys ::vals])))  | 
 | 214 | + | 
228 | 215 | (s/def ::class ::node)  | 
229 | 216 | 
 
  | 
230 | 217 | (defmethod node :new [_]  | 
 | 
259 | 246 |     (s/keys  | 
260 | 247 |       :req-un [::target ::val])))  | 
261 | 248 | 
 
  | 
 | 249 | +(s/def ::var ::node)  | 
 | 250 | +(s/def ::sym ::node)  | 
 | 251 | +(s/def ::meta map?)  | 
 | 252 | + | 
 | 253 | +(defmethod node :the-var [_]  | 
 | 254 | +  (s/merge ::base  | 
 | 255 | +    (s/keys  | 
 | 256 | +      :opt-un [::var ::sym ::meta])))  | 
 | 257 | + | 
 | 258 | +(s/def ::the-var ::node)  | 
 | 259 | + | 
262 | 260 | (s/def ::exception ::node)  | 
263 | 261 | 
 
  | 
264 | 262 | (defmethod node :throw [_]  | 
 | 
281 | 279 | 
 
  | 
282 | 280 | (s/def ::meta ::node)  | 
283 | 281 | 
 
  | 
284 |  | -(defmethod node :with-meta [_]  | 
 | 282 | +(defmethod node :vector [_]  | 
285 | 283 |   (s/merge ::base  | 
286 | 284 |     (s/keys  | 
287 |  | -      :req-un [::meta ::expr])))  | 
288 |  | - | 
289 |  | -(s/def ::code string?)  | 
 | 285 | +      :req-un [::items])))  | 
290 | 286 | 
 
  | 
291 |  | -(defmethod node :js [_]  | 
 | 287 | +(defmethod node :with-meta [_]  | 
292 | 288 |   (s/merge ::base  | 
293 | 289 |     (s/keys  | 
294 |  | -      :opt-un [::code])))  | 
 | 290 | +      :req-un [::meta ::expr])))  | 
295 | 291 | 
 
  | 
296 | 292 | (comment  | 
297 | 293 | 
 
  | 
 | 
0 commit comments