jwrapper: accept interfaces
[nit.git] / c_src / astvalidation.sep.1.c
1 #include "astvalidation.sep.0.h"
2 /* method astvalidation#ASTValidationVisitor#visit for (self: ASTValidationVisitor, ANode) */
3 void astvalidation__ASTValidationVisitor__visit(val* self, val* p0) {
4 val* var_node /* var node: ANode */;
5 val* var /* : List[ANode] */;
6 val* var2 /* : List[ANode] */;
7 val* var3 /* : List[ANode] */;
8 val* var5 /* : List[ANode] */;
9 val* var6 /* : nullable Object */;
10 var_node = p0;
11 {
12 { /* Inline astvalidation#ASTValidationVisitor#path (self) on <self:ASTValidationVisitor> */
13 var2 = self->attrs[COLOR_astvalidation__ASTValidationVisitor___path].val; /* _path on <self:ASTValidationVisitor> */
14 if (unlikely(var2 == NULL)) {
15 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _path");
16 PRINT_ERROR(" (%s:%d)\n", "astvalidation.nit", 29);
17 show_backtrace(1);
18 }
19 var = var2;
20 RET_LABEL1:(void)0;
21 }
22 }
23 {
24 list__List__unshift(var, var_node); /* Direct call list#List#unshift on <var:List[ANode]>*/
25 }
26 {
27 ((void (*)(val*, val*))(var_node->class->vft[COLOR_astvalidation__ANode__accept_ast_validation]))(var_node, self) /* accept_ast_validation on <var_node:ANode>*/;
28 }
29 {
30 { /* Inline astvalidation#ASTValidationVisitor#path (self) on <self:ASTValidationVisitor> */
31 var5 = self->attrs[COLOR_astvalidation__ASTValidationVisitor___path].val; /* _path on <self:ASTValidationVisitor> */
32 if (unlikely(var5 == NULL)) {
33 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _path");
34 PRINT_ERROR(" (%s:%d)\n", "astvalidation.nit", 29);
35 show_backtrace(1);
36 }
37 var3 = var5;
38 RET_LABEL4:(void)0;
39 }
40 }
41 {
42 var6 = list__List__shift(var3);
43 }
44 RET_LABEL:;
45 }
46 /* method astvalidation#ASTValidationVisitor#visit for (self: Object, ANode) */
47 void VIRTUAL_astvalidation__ASTValidationVisitor__visit(val* self, val* p0) {
48 astvalidation__ASTValidationVisitor__visit(self, p0); /* Direct call astvalidation#ASTValidationVisitor#visit on <self:Object(ASTValidationVisitor)>*/
49 RET_LABEL:;
50 }
51 /* method astvalidation#ASTValidationVisitor#path for (self: ASTValidationVisitor): List[ANode] */
52 val* astvalidation__ASTValidationVisitor__path(val* self) {
53 val* var /* : List[ANode] */;
54 val* var1 /* : List[ANode] */;
55 var1 = self->attrs[COLOR_astvalidation__ASTValidationVisitor___path].val; /* _path on <self:ASTValidationVisitor> */
56 if (unlikely(var1 == NULL)) {
57 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _path");
58 PRINT_ERROR(" (%s:%d)\n", "astvalidation.nit", 29);
59 show_backtrace(1);
60 }
61 var = var1;
62 RET_LABEL:;
63 return var;
64 }
65 /* method astvalidation#ASTValidationVisitor#path for (self: Object): List[ANode] */
66 val* VIRTUAL_astvalidation__ASTValidationVisitor__path(val* self) {
67 val* var /* : List[ANode] */;
68 val* var1 /* : List[ANode] */;
69 val* var3 /* : List[ANode] */;
70 { /* Inline astvalidation#ASTValidationVisitor#path (self) on <self:Object(ASTValidationVisitor)> */
71 var3 = self->attrs[COLOR_astvalidation__ASTValidationVisitor___path].val; /* _path on <self:Object(ASTValidationVisitor)> */
72 if (unlikely(var3 == NULL)) {
73 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _path");
74 PRINT_ERROR(" (%s:%d)\n", "astvalidation.nit", 29);
75 show_backtrace(1);
76 }
77 var1 = var3;
78 RET_LABEL2:(void)0;
79 }
80 var = var1;
81 RET_LABEL:;
82 return var;
83 }
84 /* method astvalidation#ASTValidationVisitor#seen for (self: ASTValidationVisitor): HashSet[ANode] */
85 val* astvalidation__ASTValidationVisitor__seen(val* self) {
86 val* var /* : HashSet[ANode] */;
87 val* var1 /* : HashSet[ANode] */;
88 var1 = self->attrs[COLOR_astvalidation__ASTValidationVisitor___seen].val; /* _seen on <self:ASTValidationVisitor> */
89 if (unlikely(var1 == NULL)) {
90 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _seen");
91 PRINT_ERROR(" (%s:%d)\n", "astvalidation.nit", 30);
92 show_backtrace(1);
93 }
94 var = var1;
95 RET_LABEL:;
96 return var;
97 }
98 /* method astvalidation#ASTValidationVisitor#seen for (self: Object): HashSet[ANode] */
99 val* VIRTUAL_astvalidation__ASTValidationVisitor__seen(val* self) {
100 val* var /* : HashSet[ANode] */;
101 val* var1 /* : HashSet[ANode] */;
102 val* var3 /* : HashSet[ANode] */;
103 { /* Inline astvalidation#ASTValidationVisitor#seen (self) on <self:Object(ASTValidationVisitor)> */
104 var3 = self->attrs[COLOR_astvalidation__ASTValidationVisitor___seen].val; /* _seen on <self:Object(ASTValidationVisitor)> */
105 if (unlikely(var3 == NULL)) {
106 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _seen");
107 PRINT_ERROR(" (%s:%d)\n", "astvalidation.nit", 30);
108 show_backtrace(1);
109 }
110 var1 = var3;
111 RET_LABEL2:(void)0;
112 }
113 var = var1;
114 RET_LABEL:;
115 return var;
116 }
117 /* method astvalidation#ANode#accept_ast_validation for (self: ANode, ASTValidationVisitor) */
118 void astvalidation__ANode__accept_ast_validation(val* self, val* p0) {
119 val* var_v /* var v: ASTValidationVisitor */;
120 val* var /* : nullable ANode */;
121 val* var2 /* : nullable ANode */;
122 val* var_parent /* var parent: nullable ANode */;
123 val* var3 /* : List[ANode] */;
124 val* var5 /* : List[ANode] */;
125 long var6 /* : Int */;
126 long var7 /* : Int */;
127 short int var8 /* : Bool */;
128 short int var10 /* : Bool */;
129 int cltype;
130 int idtype;
131 const char* var_class_name;
132 short int var11 /* : Bool */;
133 val* var12 /* : List[ANode] */;
134 val* var14 /* : List[ANode] */;
135 long var15 /* : Int */;
136 val* var16 /* : nullable Object */;
137 val* var_path_parent /* var path_parent: ANode */;
138 val* var17 /* : null */;
139 short int var18 /* : Bool */;
140 short int var19 /* : Bool */;
141 val* var_other /* var other: nullable Object */;
142 short int var21 /* : Bool */;
143 short int var23 /* : Bool */;
144 short int var25 /* : Bool */;
145 short int var26 /* : Bool */;
146 val* var_other28 /* var other: nullable Object */;
147 short int var29 /* : Bool */;
148 short int var30 /* : Bool */;
149 short int var31 /* : Bool */;
150 static val* varonce;
151 val* var33 /* : String */;
152 char* var34 /* : NativeString */;
153 long var35 /* : Int */;
154 val* var36 /* : FlatString */;
155 static val* varonce37;
156 val* var38 /* : String */;
157 char* var39 /* : NativeString */;
158 long var40 /* : Int */;
159 val* var41 /* : FlatString */;
160 val* var42 /* : Array[Object] */;
161 long var43 /* : Int */;
162 val* var44 /* : NativeArray[Object] */;
163 val* var45 /* : String */;
164 val* var46 /* : HashSet[ANode] */;
165 val* var48 /* : HashSet[ANode] */;
166 short int var49 /* : Bool */;
167 static val* varonce50;
168 val* var51 /* : String */;
169 char* var52 /* : NativeString */;
170 long var53 /* : Int */;
171 val* var54 /* : FlatString */;
172 val* var55 /* : HashSet[ANode] */;
173 val* var57 /* : HashSet[ANode] */;
174 short int var58 /* : Bool */;
175 short int var59 /* : Bool */;
176 val* var60 /* : nullable ANode */;
177 val* var62 /* : nullable ANode */;
178 val* var63 /* : Location */;
179 val* var65 /* : Location */;
180 var_v = p0;
181 {
182 { /* Inline parser_nodes#ANode#parent (self) on <self:ANode> */
183 var2 = self->attrs[COLOR_parser_nodes__ANode___parent].val; /* _parent on <self:ANode> */
184 var = var2;
185 RET_LABEL1:(void)0;
186 }
187 }
188 var_parent = var;
189 {
190 { /* Inline astvalidation#ASTValidationVisitor#path (var_v) on <var_v:ASTValidationVisitor> */
191 var5 = var_v->attrs[COLOR_astvalidation__ASTValidationVisitor___path].val; /* _path on <var_v:ASTValidationVisitor> */
192 if (unlikely(var5 == NULL)) {
193 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _path");
194 PRINT_ERROR(" (%s:%d)\n", "astvalidation.nit", 29);
195 show_backtrace(1);
196 }
197 var3 = var5;
198 RET_LABEL4:(void)0;
199 }
200 }
201 {
202 var6 = list__List__length(var3);
203 }
204 var7 = 1;
205 {
206 { /* Inline kernel#Int#> (var6,var7) on <var6:Int> */
207 /* Covariant cast for argument 0 (i) <var7:Int> isa OTHER */
208 /* <var7:Int> isa OTHER */
209 var10 = 1; /* easy <var7:Int> isa OTHER*/
210 if (unlikely(!var10)) {
211 var_class_name = type_kernel__Int.name;
212 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
213 PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 373);
214 show_backtrace(1);
215 }
216 var11 = var6 > var7;
217 var8 = var11;
218 goto RET_LABEL9;
219 RET_LABEL9:(void)0;
220 }
221 }
222 if (var8){
223 {
224 { /* Inline astvalidation#ASTValidationVisitor#path (var_v) on <var_v:ASTValidationVisitor> */
225 var14 = var_v->attrs[COLOR_astvalidation__ASTValidationVisitor___path].val; /* _path on <var_v:ASTValidationVisitor> */
226 if (unlikely(var14 == NULL)) {
227 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _path");
228 PRINT_ERROR(" (%s:%d)\n", "astvalidation.nit", 29);
229 show_backtrace(1);
230 }
231 var12 = var14;
232 RET_LABEL13:(void)0;
233 }
234 }
235 var15 = 1;
236 {
237 var16 = list__List___91d_93d(var12, var15);
238 }
239 var_path_parent = var16;
240 var17 = NULL;
241 if (var_parent == NULL) {
242 var18 = 1; /* is null */
243 } else {
244 var18 = 0; /* arg is null but recv is not */
245 }
246 if (0) {
247 { /* Inline kernel#Object#== (var_parent,var17) on <var_parent:nullable ANode> */
248 var_other = var17;
249 {
250 { /* Inline kernel#Object#is_same_instance (var_parent,var_other) on <var_parent:nullable ANode(ANode)> */
251 var23 = var_parent == var_other;
252 var21 = var23;
253 goto RET_LABEL22;
254 RET_LABEL22:(void)0;
255 }
256 }
257 var19 = var21;
258 goto RET_LABEL20;
259 RET_LABEL20:(void)0;
260 }
261 var18 = var19;
262 }
263 if (var18){
264 {
265 { /* Inline parser_nodes#ANode#parent= (self,var_path_parent) on <self:ANode> */
266 self->attrs[COLOR_parser_nodes__ANode___parent].val = var_path_parent; /* _parent on <self:ANode> */
267 RET_LABEL24:(void)0;
268 }
269 }
270 } else {
271 {
272 { /* Inline kernel#Object#!= (var_parent,var_path_parent) on <var_parent:nullable ANode(ANode)> */
273 var_other28 = var_path_parent;
274 {
275 var30 = ((short int (*)(val*, val*))(var_parent->class->vft[COLOR_kernel__Object___61d_61d]))(var_parent, var_other28) /* == on <var_parent:nullable ANode(ANode)>*/;
276 var29 = var30;
277 }
278 var31 = !var29;
279 var26 = var31;
280 goto RET_LABEL27;
281 RET_LABEL27:(void)0;
282 }
283 var25 = var26;
284 }
285 if (var25){
286 {
287 { /* Inline parser_nodes#ANode#parent= (self,var_path_parent) on <self:ANode> */
288 self->attrs[COLOR_parser_nodes__ANode___parent].val = var_path_parent; /* _parent on <self:ANode> */
289 RET_LABEL32:(void)0;
290 }
291 }
292 if (varonce) {
293 var33 = varonce;
294 } else {
295 var34 = "PARENT: expected parent: ";
296 var35 = 25;
297 var36 = string__NativeString__to_s_with_length(var34, var35);
298 var33 = var36;
299 varonce = var33;
300 }
301 if (varonce37) {
302 var38 = varonce37;
303 } else {
304 var39 = ", got ";
305 var40 = 6;
306 var41 = string__NativeString__to_s_with_length(var39, var40);
307 var38 = var41;
308 varonce37 = var38;
309 }
310 var42 = NEW_array__Array(&type_array__Arraykernel__Object);
311 { /* var42 = array_instance Array[Object] */
312 var43 = 4;
313 var44 = NEW_array__NativeArray(var43, &type_array__NativeArraykernel__Object);
314 ((struct instance_array__NativeArray*)var44)->values[0] = (val*) var33;
315 ((struct instance_array__NativeArray*)var44)->values[1] = (val*) var_path_parent;
316 ((struct instance_array__NativeArray*)var44)->values[2] = (val*) var38;
317 ((struct instance_array__NativeArray*)var44)->values[3] = (val*) var_parent;
318 {
319 ((void (*)(val*, val*, long))(var42->class->vft[COLOR_array__Array__with_native]))(var42, var44, var43) /* with_native on <var42:Array[Object]>*/;
320 }
321 }
322 {
323 var45 = ((val* (*)(val*))(var42->class->vft[COLOR_string__Object__to_s]))(var42) /* to_s on <var42:Array[Object]>*/;
324 }
325 {
326 parser_nodes__ANode__debug(self, var45); /* Direct call parser_nodes#ANode#debug on <self:ANode>*/
327 }
328 } else {
329 }
330 }
331 } else {
332 }
333 {
334 { /* Inline astvalidation#ASTValidationVisitor#seen (var_v) on <var_v:ASTValidationVisitor> */
335 var48 = var_v->attrs[COLOR_astvalidation__ASTValidationVisitor___seen].val; /* _seen on <var_v:ASTValidationVisitor> */
336 if (unlikely(var48 == NULL)) {
337 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _seen");
338 PRINT_ERROR(" (%s:%d)\n", "astvalidation.nit", 30);
339 show_backtrace(1);
340 }
341 var46 = var48;
342 RET_LABEL47:(void)0;
343 }
344 }
345 {
346 var49 = hash_collection__HashSet__has(var46, self);
347 }
348 if (var49){
349 if (varonce50) {
350 var51 = varonce50;
351 } else {
352 var52 = "DUPLICATE: already seen node. NOTATREE";
353 var53 = 38;
354 var54 = string__NativeString__to_s_with_length(var52, var53);
355 var51 = var54;
356 varonce50 = var51;
357 }
358 {
359 parser_nodes__ANode__debug(self, var51); /* Direct call parser_nodes#ANode#debug on <self:ANode>*/
360 }
361 } else {
362 }
363 {
364 { /* Inline astvalidation#ASTValidationVisitor#seen (var_v) on <var_v:ASTValidationVisitor> */
365 var57 = var_v->attrs[COLOR_astvalidation__ASTValidationVisitor___seen].val; /* _seen on <var_v:ASTValidationVisitor> */
366 if (unlikely(var57 == NULL)) {
367 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _seen");
368 PRINT_ERROR(" (%s:%d)\n", "astvalidation.nit", 30);
369 show_backtrace(1);
370 }
371 var55 = var57;
372 RET_LABEL56:(void)0;
373 }
374 }
375 {
376 hash_collection__HashSet__add(var55, self); /* Direct call hash_collection#HashSet#add on <var55:HashSet[ANode]>*/
377 }
378 var58 = self->attrs[COLOR_parser_nodes__ANode___location].val != NULL; /* _location on <self:ANode> */
379 var59 = !var58;
380 if (var59){
381 {
382 { /* Inline parser_nodes#ANode#parent (self) on <self:ANode> */
383 var62 = self->attrs[COLOR_parser_nodes__ANode___parent].val; /* _parent on <self:ANode> */
384 var60 = var62;
385 RET_LABEL61:(void)0;
386 }
387 }
388 if (var60 == NULL) {
389 PRINT_ERROR("Runtime error: %s", "Receiver is null");
390 PRINT_ERROR(" (%s:%d)\n", "astvalidation.nit", 56);
391 show_backtrace(1);
392 } else {
393 { /* Inline parser_nodes#ANode#location (var60) on <var60:nullable ANode> */
394 if (unlikely(var60 == NULL)) {
395 PRINT_ERROR("Runtime error: %s", "Receiver is null");
396 PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 23);
397 show_backtrace(1);
398 }
399 var65 = var60->attrs[COLOR_parser_nodes__ANode___location].val; /* _location on <var60:nullable ANode> */
400 if (unlikely(var65 == NULL)) {
401 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _location");
402 PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 23);
403 show_backtrace(1);
404 }
405 var63 = var65;
406 RET_LABEL64:(void)0;
407 }
408 }
409 self->attrs[COLOR_parser_nodes__ANode___location].val = var63; /* _location on <self:ANode> */
410 } else {
411 }
412 {
413 ((void (*)(val*, val*))(self->class->vft[COLOR_parser_nodes__ANode__visit_all]))(self, var_v) /* visit_all on <self:ANode>*/;
414 }
415 RET_LABEL:;
416 }
417 /* method astvalidation#ANode#accept_ast_validation for (self: Object, ASTValidationVisitor) */
418 void VIRTUAL_astvalidation__ANode__accept_ast_validation(val* self, val* p0) {
419 astvalidation__ANode__accept_ast_validation(self, p0); /* Direct call astvalidation#ANode#accept_ast_validation on <self:Object(ANode)>*/
420 RET_LABEL:;
421 }
422 /* method astvalidation#AAnnotations#accept_ast_validation for (self: AAnnotations, ASTValidationVisitor) */
423 void astvalidation__AAnnotations__accept_ast_validation(val* self, val* p0) {
424 val* var_v /* var v: ASTValidationVisitor */;
425 var_v = p0;
426 RET_LABEL:;
427 }
428 /* method astvalidation#AAnnotations#accept_ast_validation for (self: Object, ASTValidationVisitor) */
429 void VIRTUAL_astvalidation__AAnnotations__accept_ast_validation(val* self, val* p0) {
430 val* var_v /* var v: ASTValidationVisitor */;
431 { /* Inline astvalidation#AAnnotations#accept_ast_validation (self,p0) on <self:Object(AAnnotations)> */
432 var_v = p0;
433 RET_LABEL1:(void)0;
434 }
435 RET_LABEL:;
436 }
437 /* method astvalidation#AExpr#accept_ast_validation for (self: AExpr, ASTValidationVisitor) */
438 void astvalidation__AExpr__accept_ast_validation(val* self, val* p0) {
439 val* var_v /* var v: ASTValidationVisitor */;
440 short int var /* : Bool */;
441 val* var1 /* : nullable MType */;
442 val* var2 /* : null */;
443 short int var3 /* : Bool */;
444 short int var4 /* : Bool */;
445 val* var_other /* var other: nullable Object */;
446 short int var6 /* : Bool */;
447 short int var8 /* : Bool */;
448 short int var_ /* var : Bool */;
449 short int var9 /* : Bool */;
450 short int var11 /* : Bool */;
451 short int var12 /* : Bool */;
452 static val* varonce;
453 val* var13 /* : String */;
454 char* var14 /* : NativeString */;
455 long var15 /* : Int */;
456 val* var16 /* : FlatString */;
457 var_v = p0;
458 {
459 ((void (*)(val*, val*))(self->class->vft[COLOR_astvalidation__AExpr__accept_ast_validation]))(self, p0) /* accept_ast_validation on <self:AExpr>*/;
460 }
461 {
462 var1 = ((val* (*)(val*))(self->class->vft[COLOR_typing__AExpr__mtype]))(self) /* mtype on <self:AExpr>*/;
463 }
464 var2 = NULL;
465 if (var1 == NULL) {
466 var3 = 1; /* is null */
467 } else {
468 var3 = 0; /* arg is null but recv is not */
469 }
470 if (0) {
471 { /* Inline kernel#Object#== (var1,var2) on <var1:nullable MType> */
472 var_other = var2;
473 {
474 { /* Inline kernel#Object#is_same_instance (var1,var_other) on <var1:nullable MType(MType)> */
475 var8 = var1 == var_other;
476 var6 = var8;
477 goto RET_LABEL7;
478 RET_LABEL7:(void)0;
479 }
480 }
481 var4 = var6;
482 goto RET_LABEL5;
483 RET_LABEL5:(void)0;
484 }
485 var3 = var4;
486 }
487 var_ = var3;
488 if (var3){
489 {
490 { /* Inline typing#AExpr#is_typed (self) on <self:AExpr> */
491 var11 = self->attrs[COLOR_typing__AExpr___is_typed].s; /* _is_typed on <self:AExpr> */
492 var9 = var11;
493 RET_LABEL10:(void)0;
494 }
495 }
496 var12 = !var9;
497 var = var12;
498 } else {
499 var = var_;
500 }
501 if (var){
502 if (varonce) {
503 var13 = varonce;
504 } else {
505 var14 = "TYPING: untyped expression";
506 var15 = 26;
507 var16 = string__NativeString__to_s_with_length(var14, var15);
508 var13 = var16;
509 varonce = var13;
510 }
511 {
512 parser_nodes__ANode__debug(self, var13); /* Direct call parser_nodes#ANode#debug on <self:AExpr>*/
513 }
514 } else {
515 }
516 RET_LABEL:;
517 }
518 /* method astvalidation#AExpr#accept_ast_validation for (self: Object, ASTValidationVisitor) */
519 void VIRTUAL_astvalidation__AExpr__accept_ast_validation(val* self, val* p0) {
520 astvalidation__AExpr__accept_ast_validation(self, p0); /* Direct call astvalidation#AExpr#accept_ast_validation on <self:Object(AExpr)>*/
521 RET_LABEL:;
522 }
523 /* method astvalidation#APlaceholderExpr#accept_ast_validation for (self: APlaceholderExpr, ASTValidationVisitor) */
524 void astvalidation__APlaceholderExpr__accept_ast_validation(val* self, val* p0) {
525 val* var_v /* var v: ASTValidationVisitor */;
526 static val* varonce;
527 val* var /* : String */;
528 char* var1 /* : NativeString */;
529 long var2 /* : Int */;
530 val* var3 /* : FlatString */;
531 var_v = p0;
532 {
533 ((void (*)(val*, val*))(self->class->vft[COLOR_astvalidation__APlaceholderExpr__accept_ast_validation]))(self, p0) /* accept_ast_validation on <self:APlaceholderExpr>*/;
534 }
535 if (varonce) {
536 var = varonce;
537 } else {
538 var1 = "PARENT: remaining placeholder";
539 var2 = 29;
540 var3 = string__NativeString__to_s_with_length(var1, var2);
541 var = var3;
542 varonce = var;
543 }
544 {
545 parser_nodes__ANode__debug(self, var); /* Direct call parser_nodes#ANode#debug on <self:APlaceholderExpr>*/
546 }
547 RET_LABEL:;
548 }
549 /* method astvalidation#APlaceholderExpr#accept_ast_validation for (self: Object, ASTValidationVisitor) */
550 void VIRTUAL_astvalidation__APlaceholderExpr__accept_ast_validation(val* self, val* p0) {
551 astvalidation__APlaceholderExpr__accept_ast_validation(self, p0); /* Direct call astvalidation#APlaceholderExpr#accept_ast_validation on <self:Object(APlaceholderExpr)>*/
552 RET_LABEL:;
553 }