cl_ast/ast_visitor/
visit.rs1use crate::ast::*;
4use cl_structures::span::Span;
5
6use super::walk::Walk;
7
8pub trait Visit<'a>: Sized {
12 #[inline]
14 fn visit<W: Walk>(&mut self, walker: &'a W) -> &mut Self {
15 walker.visit_in(self);
16 self
17 }
18 fn visit_children<W: Walk>(&mut self, walker: &'a W) {
20 walker.children(self)
21 }
22
23 fn visit_span(&mut self, value: &'a Span) {
24 value.children(self)
25 }
26 fn visit_mutability(&mut self, value: &'a Mutability) {
27 value.children(self)
28 }
29 fn visit_visibility(&mut self, value: &'a Visibility) {
30 value.children(self)
31 }
32 fn visit_sym(&mut self, value: &'a Sym) {
33 value.children(self)
34 }
35 fn visit_literal(&mut self, value: &'a Literal) {
36 value.children(self)
37 }
38 fn visit_bool(&mut self, value: &'a bool) {
39 value.children(self)
40 }
41 fn visit_char(&mut self, value: &'a char) {
42 value.children(self)
43 }
44 fn visit_int(&mut self, value: &'a u128) {
45 value.children(self)
46 }
47 fn visit_smuggled_float(&mut self, value: &'a u64) {
48 value.children(self)
49 }
50 fn visit_string(&mut self, value: &'a str) {
51 value.children(self)
52 }
53 fn visit_file(&mut self, value: &'a File) {
54 value.children(self)
55 }
56 fn visit_attrs(&mut self, value: &'a Attrs) {
57 value.children(self)
58 }
59 fn visit_meta(&mut self, value: &'a Meta) {
60 value.children(self)
61 }
62 fn visit_meta_kind(&mut self, value: &'a MetaKind) {
63 value.children(self)
64 }
65 fn visit_item(&mut self, value: &'a Item) {
66 value.children(self)
67 }
68 fn visit_item_kind(&mut self, value: &'a ItemKind) {
69 value.children(self)
70 }
71 fn visit_generics(&mut self, value: &'a Generics) {
72 value.children(self)
73 }
74 fn visit_alias(&mut self, value: &'a Alias) {
75 value.children(self)
76 }
77 fn visit_const(&mut self, value: &'a Const) {
78 value.children(self)
79 }
80 fn visit_static(&mut self, value: &'a Static) {
81 value.children(self)
82 }
83 fn visit_module(&mut self, value: &'a Module) {
84 value.children(self)
85 }
86 fn visit_function(&mut self, value: &'a Function) {
87 value.children(self)
88 }
89 fn visit_struct(&mut self, value: &'a Struct) {
90 value.children(self)
91 }
92 fn visit_struct_kind(&mut self, value: &'a StructKind) {
93 value.children(self)
94 }
95 fn visit_struct_member(&mut self, value: &'a StructMember) {
96 value.children(self)
97 }
98 fn visit_enum(&mut self, value: &'a Enum) {
99 value.children(self)
100 }
101 fn visit_variant(&mut self, value: &'a Variant) {
102 value.children(self)
103 }
104 fn visit_impl(&mut self, value: &'a Impl) {
105 value.children(self)
106 }
107 fn visit_impl_kind(&mut self, value: &'a ImplKind) {
108 value.children(self)
109 }
110 fn visit_use(&mut self, value: &'a Use) {
111 value.children(self)
112 }
113 fn visit_use_tree(&mut self, value: &'a UseTree) {
114 value.children(self)
115 }
116 fn visit_ty(&mut self, value: &'a Ty) {
117 value.children(self)
118 }
119 fn visit_ty_kind(&mut self, value: &'a TyKind) {
120 value.children(self)
121 }
122 fn visit_ty_array(&mut self, value: &'a TyArray) {
123 value.children(self)
124 }
125 fn visit_ty_slice(&mut self, value: &'a TySlice) {
126 value.children(self)
127 }
128 fn visit_ty_tuple(&mut self, value: &'a TyTuple) {
129 value.children(self)
130 }
131 fn visit_ty_ref(&mut self, value: &'a TyRef) {
132 value.children(self)
133 }
134 fn visit_ty_fn(&mut self, value: &'a TyFn) {
135 value.children(self)
136 }
137 fn visit_path(&mut self, value: &'a Path) {
138 value.children(self)
139 }
140 fn visit_path_part(&mut self, value: &'a PathPart) {
141 value.children(self)
142 }
143 fn visit_stmt(&mut self, value: &'a Stmt) {
144 value.children(self)
145 }
146 fn visit_stmt_kind(&mut self, value: &'a StmtKind) {
147 value.children(self)
148 }
149 fn visit_semi(&mut self, value: &'a Semi) {
150 value.children(self)
151 }
152 fn visit_expr(&mut self, value: &'a Expr) {
153 value.children(self)
154 }
155 fn visit_expr_kind(&mut self, value: &'a ExprKind) {
156 value.children(self)
157 }
158 fn visit_closure(&mut self, value: &'a Closure) {
159 value.children(self)
160 }
161 fn visit_quote(&mut self, value: &'a Quote) {
162 value.children(self)
163 }
164 fn visit_let(&mut self, value: &'a Let) {
165 value.children(self)
166 }
167
168 fn visit_pattern(&mut self, value: &'a Pattern) {
169 value.children(self)
170 }
171
172 fn visit_match(&mut self, value: &'a Match) {
173 value.children(self)
174 }
175
176 fn visit_match_arm(&mut self, value: &'a MatchArm) {
177 value.children(self)
178 }
179
180 fn visit_assign(&mut self, value: &'a Assign) {
181 value.children(self)
182 }
183 fn visit_modify(&mut self, value: &'a Modify) {
184 value.children(self)
185 }
186 fn visit_modify_kind(&mut self, value: &'a ModifyKind) {
187 value.children(self)
188 }
189 fn visit_binary(&mut self, value: &'a Binary) {
190 value.children(self)
191 }
192 fn visit_binary_kind(&mut self, value: &'a BinaryKind) {
193 value.children(self)
194 }
195 fn visit_unary(&mut self, value: &'a Unary) {
196 value.children(self)
197 }
198 fn visit_unary_kind(&mut self, value: &'a UnaryKind) {
199 value.children(self)
200 }
201
202 fn visit_cast(&mut self, value: &'a Cast) {
203 value.children(self)
204 }
205 fn visit_member(&mut self, value: &'a Member) {
206 value.children(self)
207 }
208 fn visit_member_kind(&mut self, value: &'a MemberKind) {
209 value.children(self)
210 }
211 fn visit_index(&mut self, value: &'a Index) {
212 value.children(self)
213 }
214 fn visit_structor(&mut self, value: &'a Structor) {
215 value.children(self)
216 }
217 fn visit_fielder(&mut self, value: &'a Fielder) {
218 value.children(self)
219 }
220 fn visit_array(&mut self, value: &'a Array) {
221 value.children(self)
222 }
223 fn visit_array_rep(&mut self, value: &'a ArrayRep) {
224 value.children(self)
225 }
226 fn visit_addrof(&mut self, value: &'a AddrOf) {
227 value.children(self)
228 }
229 fn visit_block(&mut self, value: &'a Block) {
230 value.children(self)
231 }
232 fn visit_group(&mut self, value: &'a Group) {
233 value.children(self)
234 }
235 fn visit_tuple(&mut self, value: &'a Tuple) {
236 value.children(self)
237 }
238 fn visit_while(&mut self, value: &'a While) {
239 value.children(self)
240 }
241 fn visit_if(&mut self, value: &'a If) {
242 value.children(self)
243 }
244 fn visit_for(&mut self, value: &'a For) {
245 value.children(self)
246 }
247 fn visit_else(&mut self, value: &'a Else) {
248 value.children(self)
249 }
250 fn visit_break(&mut self, value: &'a Break) {
251 value.children(self)
252 }
253 fn visit_return(&mut self, value: &'a Return) {
254 value.children(self)
255 }
256 fn visit_continue(&mut self) {}
257}