misc/vim: inform the user when no results are found
[nit.git] / c_src / nit__astvalidation.sep.1.c
1 #include "nit__astvalidation.sep.0.h"
2 /* method astvalidation#ASTValidationVisitor#visit for (self: ASTValidationVisitor, ANode) */
3 void nit___nit__ASTValidationVisitor___nit__parser_nodes__Visitor__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_nit__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", FILE_nit__astvalidation, 29);
17 show_backtrace(1);
18 }
19 var = var2;
20 RET_LABEL1:(void)0;
21 }
22 }
23 {
24 standard___standard__List___standard__abstract_collection__Sequence__unshift(var, var_node); /* Direct call list#List#unshift on <var:List[ANode]>*/
25 }
26 {
27 ((void (*)(val* self, val* p0))(var_node->class->vft[COLOR_nit__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_nit__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", FILE_nit__astvalidation, 29);
35 show_backtrace(1);
36 }
37 var3 = var5;
38 RET_LABEL4:(void)0;
39 }
40 }
41 {
42 var6 = standard___standard__List___standard__abstract_collection__Sequence__shift(var3);
43 }
44 RET_LABEL:;
45 }
46 /* method astvalidation#ASTValidationVisitor#path for (self: ASTValidationVisitor): List[ANode] */
47 val* nit___nit__ASTValidationVisitor___path(val* self) {
48 val* var /* : List[ANode] */;
49 val* var1 /* : List[ANode] */;
50 var1 = self->attrs[COLOR_nit__astvalidation__ASTValidationVisitor___path].val; /* _path on <self:ASTValidationVisitor> */
51 if (unlikely(var1 == NULL)) {
52 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _path");
53 PRINT_ERROR(" (%s:%d)\n", FILE_nit__astvalidation, 29);
54 show_backtrace(1);
55 }
56 var = var1;
57 RET_LABEL:;
58 return var;
59 }
60 /* method astvalidation#ASTValidationVisitor#seen for (self: ASTValidationVisitor): HashSet[ANode] */
61 val* nit___nit__ASTValidationVisitor___seen(val* self) {
62 val* var /* : HashSet[ANode] */;
63 val* var1 /* : HashSet[ANode] */;
64 var1 = self->attrs[COLOR_nit__astvalidation__ASTValidationVisitor___seen].val; /* _seen on <self:ASTValidationVisitor> */
65 if (unlikely(var1 == NULL)) {
66 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _seen");
67 PRINT_ERROR(" (%s:%d)\n", FILE_nit__astvalidation, 30);
68 show_backtrace(1);
69 }
70 var = var1;
71 RET_LABEL:;
72 return var;
73 }
74 /* method astvalidation#ANode#accept_ast_validation for (self: ANode, ASTValidationVisitor) */
75 void nit__astvalidation___ANode___accept_ast_validation(val* self, val* p0) {
76 val* var_v /* var v: ASTValidationVisitor */;
77 val* var /* : nullable ANode */;
78 val* var2 /* : nullable ANode */;
79 val* var_parent /* var parent: nullable ANode */;
80 val* var3 /* : List[ANode] */;
81 val* var5 /* : List[ANode] */;
82 long var6 /* : Int */;
83 long var7 /* : Int */;
84 short int var8 /* : Bool */;
85 short int var10 /* : Bool */;
86 int cltype;
87 int idtype;
88 const char* var_class_name;
89 short int var11 /* : Bool */;
90 val* var12 /* : List[ANode] */;
91 val* var14 /* : List[ANode] */;
92 long var15 /* : Int */;
93 val* var16 /* : nullable Object */;
94 val* var_path_parent /* var path_parent: ANode */;
95 val* var17 /* : null */;
96 short int var18 /* : Bool */;
97 short int var19 /* : Bool */;
98 val* var_other /* var other: nullable Object */;
99 short int var21 /* : Bool */;
100 short int var23 /* : Bool */;
101 short int var25 /* : Bool */;
102 val* var_other27 /* var other: nullable Object */;
103 short int var28 /* : Bool */;
104 short int var29 /* : Bool */;
105 static val* varonce;
106 val* var31 /* : String */;
107 char* var32 /* : NativeString */;
108 long var33 /* : Int */;
109 val* var34 /* : FlatString */;
110 static val* varonce35;
111 val* var36 /* : String */;
112 char* var37 /* : NativeString */;
113 long var38 /* : Int */;
114 val* var39 /* : FlatString */;
115 val* var40 /* : Array[Object] */;
116 long var41 /* : Int */;
117 val* var42 /* : NativeArray[Object] */;
118 val* var43 /* : String */;
119 val* var44 /* : HashSet[ANode] */;
120 val* var46 /* : HashSet[ANode] */;
121 short int var47 /* : Bool */;
122 static val* varonce48;
123 val* var49 /* : String */;
124 char* var50 /* : NativeString */;
125 long var51 /* : Int */;
126 val* var52 /* : FlatString */;
127 val* var53 /* : HashSet[ANode] */;
128 val* var55 /* : HashSet[ANode] */;
129 short int var56 /* : Bool */;
130 short int var57 /* : Bool */;
131 val* var58 /* : nullable ANode */;
132 val* var60 /* : nullable ANode */;
133 val* var61 /* : Location */;
134 val* var63 /* : Location */;
135 var_v = p0;
136 {
137 { /* Inline parser_nodes#ANode#parent (self) on <self:ANode> */
138 var2 = self->attrs[COLOR_nit__parser_nodes__ANode___parent].val; /* _parent on <self:ANode> */
139 var = var2;
140 RET_LABEL1:(void)0;
141 }
142 }
143 var_parent = var;
144 {
145 { /* Inline astvalidation#ASTValidationVisitor#path (var_v) on <var_v:ASTValidationVisitor> */
146 var5 = var_v->attrs[COLOR_nit__astvalidation__ASTValidationVisitor___path].val; /* _path on <var_v:ASTValidationVisitor> */
147 if (unlikely(var5 == NULL)) {
148 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _path");
149 PRINT_ERROR(" (%s:%d)\n", FILE_nit__astvalidation, 29);
150 show_backtrace(1);
151 }
152 var3 = var5;
153 RET_LABEL4:(void)0;
154 }
155 }
156 {
157 var6 = standard___standard__List___standard__abstract_collection__Collection__length(var3);
158 }
159 var7 = 1;
160 {
161 { /* Inline kernel#Int#> (var6,var7) on <var6:Int> */
162 /* Covariant cast for argument 0 (i) <var7:Int> isa OTHER */
163 /* <var7:Int> isa OTHER */
164 var10 = 1; /* easy <var7:Int> isa OTHER*/
165 if (unlikely(!var10)) {
166 var_class_name = type_standard__Int.name;
167 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
168 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 412);
169 show_backtrace(1);
170 }
171 var11 = var6 > var7;
172 var8 = var11;
173 goto RET_LABEL9;
174 RET_LABEL9:(void)0;
175 }
176 }
177 if (var8){
178 {
179 { /* Inline astvalidation#ASTValidationVisitor#path (var_v) on <var_v:ASTValidationVisitor> */
180 var14 = var_v->attrs[COLOR_nit__astvalidation__ASTValidationVisitor___path].val; /* _path on <var_v:ASTValidationVisitor> */
181 if (unlikely(var14 == NULL)) {
182 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _path");
183 PRINT_ERROR(" (%s:%d)\n", FILE_nit__astvalidation, 29);
184 show_backtrace(1);
185 }
186 var12 = var14;
187 RET_LABEL13:(void)0;
188 }
189 }
190 var15 = 1;
191 {
192 var16 = standard___standard__List___standard__abstract_collection__SequenceRead___91d_93d(var12, var15);
193 }
194 var_path_parent = var16;
195 var17 = NULL;
196 if (var_parent == NULL) {
197 var18 = 1; /* is null */
198 } else {
199 var18 = 0; /* arg is null but recv is not */
200 }
201 if (0) {
202 { /* Inline kernel#Object#== (var_parent,var17) on <var_parent:nullable ANode> */
203 var_other = var17;
204 {
205 { /* Inline kernel#Object#is_same_instance (var_parent,var_other) on <var_parent:nullable ANode(ANode)> */
206 var23 = var_parent == var_other;
207 var21 = var23;
208 goto RET_LABEL22;
209 RET_LABEL22:(void)0;
210 }
211 }
212 var19 = var21;
213 goto RET_LABEL20;
214 RET_LABEL20:(void)0;
215 }
216 var18 = var19;
217 }
218 if (var18){
219 {
220 { /* Inline parser_nodes#ANode#parent= (self,var_path_parent) on <self:ANode> */
221 self->attrs[COLOR_nit__parser_nodes__ANode___parent].val = var_path_parent; /* _parent on <self:ANode> */
222 RET_LABEL24:(void)0;
223 }
224 }
225 } else {
226 {
227 { /* Inline kernel#Object#!= (var_parent,var_path_parent) on <var_parent:nullable ANode(ANode)> */
228 var_other27 = var_path_parent;
229 {
230 var28 = ((short int (*)(val* self, val* p0))(var_parent->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_parent, var_other27) /* == on <var_parent:nullable ANode(ANode)>*/;
231 }
232 var29 = !var28;
233 var25 = var29;
234 goto RET_LABEL26;
235 RET_LABEL26:(void)0;
236 }
237 }
238 if (var25){
239 {
240 { /* Inline parser_nodes#ANode#parent= (self,var_path_parent) on <self:ANode> */
241 self->attrs[COLOR_nit__parser_nodes__ANode___parent].val = var_path_parent; /* _parent on <self:ANode> */
242 RET_LABEL30:(void)0;
243 }
244 }
245 if (varonce) {
246 var31 = varonce;
247 } else {
248 var32 = "PARENT: expected parent: ";
249 var33 = 25;
250 var34 = standard___standard__NativeString___to_s_with_length(var32, var33);
251 var31 = var34;
252 varonce = var31;
253 }
254 if (varonce35) {
255 var36 = varonce35;
256 } else {
257 var37 = ", got ";
258 var38 = 6;
259 var39 = standard___standard__NativeString___to_s_with_length(var37, var38);
260 var36 = var39;
261 varonce35 = var36;
262 }
263 var40 = NEW_standard__Array(&type_standard__Array__standard__Object);
264 { /* var40 = array_instance Array[Object] */
265 var41 = 4;
266 var42 = NEW_standard__NativeArray(var41, &type_standard__NativeArray__standard__Object);
267 ((struct instance_standard__NativeArray*)var42)->values[0] = (val*) var31;
268 ((struct instance_standard__NativeArray*)var42)->values[1] = (val*) var_path_parent;
269 ((struct instance_standard__NativeArray*)var42)->values[2] = (val*) var36;
270 ((struct instance_standard__NativeArray*)var42)->values[3] = (val*) var_parent;
271 {
272 ((void (*)(val* self, val* p0, long p1))(var40->class->vft[COLOR_standard__array__Array__with_native]))(var40, var42, var41) /* with_native on <var40:Array[Object]>*/;
273 }
274 }
275 {
276 var43 = ((val* (*)(val* self))(var40->class->vft[COLOR_standard__string__Object__to_s]))(var40) /* to_s on <var40:Array[Object]>*/;
277 }
278 {
279 nit___nit__ANode___debug(self, var43); /* Direct call parser_nodes#ANode#debug on <self:ANode>*/
280 }
281 } else {
282 }
283 }
284 } else {
285 }
286 {
287 { /* Inline astvalidation#ASTValidationVisitor#seen (var_v) on <var_v:ASTValidationVisitor> */
288 var46 = var_v->attrs[COLOR_nit__astvalidation__ASTValidationVisitor___seen].val; /* _seen on <var_v:ASTValidationVisitor> */
289 if (unlikely(var46 == NULL)) {
290 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _seen");
291 PRINT_ERROR(" (%s:%d)\n", FILE_nit__astvalidation, 30);
292 show_backtrace(1);
293 }
294 var44 = var46;
295 RET_LABEL45:(void)0;
296 }
297 }
298 {
299 var47 = standard___standard__HashSet___standard__abstract_collection__Collection__has(var44, self);
300 }
301 if (var47){
302 if (varonce48) {
303 var49 = varonce48;
304 } else {
305 var50 = "DUPLICATE: already seen node. NOTATREE";
306 var51 = 38;
307 var52 = standard___standard__NativeString___to_s_with_length(var50, var51);
308 var49 = var52;
309 varonce48 = var49;
310 }
311 {
312 nit___nit__ANode___debug(self, var49); /* Direct call parser_nodes#ANode#debug on <self:ANode>*/
313 }
314 } else {
315 }
316 {
317 { /* Inline astvalidation#ASTValidationVisitor#seen (var_v) on <var_v:ASTValidationVisitor> */
318 var55 = var_v->attrs[COLOR_nit__astvalidation__ASTValidationVisitor___seen].val; /* _seen on <var_v:ASTValidationVisitor> */
319 if (unlikely(var55 == NULL)) {
320 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _seen");
321 PRINT_ERROR(" (%s:%d)\n", FILE_nit__astvalidation, 30);
322 show_backtrace(1);
323 }
324 var53 = var55;
325 RET_LABEL54:(void)0;
326 }
327 }
328 {
329 standard___standard__HashSet___standard__abstract_collection__SimpleCollection__add(var53, self); /* Direct call hash_collection#HashSet#add on <var53:HashSet[ANode]>*/
330 }
331 var56 = self->attrs[COLOR_nit__parser_nodes__ANode___location].val != NULL; /* _location on <self:ANode> */
332 var57 = !var56;
333 if (var57){
334 {
335 { /* Inline parser_nodes#ANode#parent (self) on <self:ANode> */
336 var60 = self->attrs[COLOR_nit__parser_nodes__ANode___parent].val; /* _parent on <self:ANode> */
337 var58 = var60;
338 RET_LABEL59:(void)0;
339 }
340 }
341 if (var58 == NULL) {
342 PRINT_ERROR("Runtime error: %s", "Receiver is null");
343 PRINT_ERROR(" (%s:%d)\n", FILE_nit__astvalidation, 56);
344 show_backtrace(1);
345 } else {
346 { /* Inline parser_nodes#ANode#location (var58) on <var58:nullable ANode> */
347 if (unlikely(var58 == NULL)) {
348 PRINT_ERROR("Runtime error: %s", "Receiver is null");
349 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 23);
350 show_backtrace(1);
351 }
352 var63 = var58->attrs[COLOR_nit__parser_nodes__ANode___location].val; /* _location on <var58:nullable ANode> */
353 if (unlikely(var63 == NULL)) {
354 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _location");
355 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 23);
356 show_backtrace(1);
357 }
358 var61 = var63;
359 RET_LABEL62:(void)0;
360 }
361 }
362 self->attrs[COLOR_nit__parser_nodes__ANode___location].val = var61; /* _location on <self:ANode> */
363 } else {
364 }
365 {
366 ((void (*)(val* self, val* p0))(self->class->vft[COLOR_nit__parser_nodes__ANode__visit_all]))(self, var_v) /* visit_all on <self:ANode>*/;
367 }
368 RET_LABEL:;
369 }
370 /* method astvalidation#AAnnotations#accept_ast_validation for (self: AAnnotations, ASTValidationVisitor) */
371 void nit__astvalidation___AAnnotations___ANode__accept_ast_validation(val* self, val* p0) {
372 val* var_v /* var v: ASTValidationVisitor */;
373 var_v = p0;
374 RET_LABEL:;
375 }
376 /* method astvalidation#AExpr#accept_ast_validation for (self: AExpr, ASTValidationVisitor) */
377 void nit__astvalidation___AExpr___ANode__accept_ast_validation(val* self, val* p0) {
378 val* var_v /* var v: ASTValidationVisitor */;
379 short int var /* : Bool */;
380 val* var1 /* : nullable MType */;
381 val* var2 /* : null */;
382 short int var3 /* : Bool */;
383 short int var4 /* : Bool */;
384 val* var_other /* var other: nullable Object */;
385 short int var6 /* : Bool */;
386 short int var8 /* : Bool */;
387 short int var_ /* var : Bool */;
388 short int var9 /* : Bool */;
389 short int var11 /* : Bool */;
390 short int var12 /* : Bool */;
391 static val* varonce;
392 val* var13 /* : String */;
393 char* var14 /* : NativeString */;
394 long var15 /* : Int */;
395 val* var16 /* : FlatString */;
396 var_v = p0;
397 {
398 ((void (*)(val* self, val* p0))(self->class->vft[COLOR_nit__astvalidation___AExpr___ANode__accept_ast_validation]))(self, p0) /* accept_ast_validation on <self:AExpr>*/;
399 }
400 {
401 var1 = ((val* (*)(val* self))(self->class->vft[COLOR_nit__typing__AExpr__mtype]))(self) /* mtype on <self:AExpr>*/;
402 }
403 var2 = NULL;
404 if (var1 == NULL) {
405 var3 = 1; /* is null */
406 } else {
407 var3 = 0; /* arg is null but recv is not */
408 }
409 if (0) {
410 { /* Inline kernel#Object#== (var1,var2) on <var1:nullable MType> */
411 var_other = var2;
412 {
413 { /* Inline kernel#Object#is_same_instance (var1,var_other) on <var1:nullable MType(MType)> */
414 var8 = var1 == var_other;
415 var6 = var8;
416 goto RET_LABEL7;
417 RET_LABEL7:(void)0;
418 }
419 }
420 var4 = var6;
421 goto RET_LABEL5;
422 RET_LABEL5:(void)0;
423 }
424 var3 = var4;
425 }
426 var_ = var3;
427 if (var3){
428 {
429 { /* Inline typing#AExpr#is_typed (self) on <self:AExpr> */
430 var11 = self->attrs[COLOR_nit__typing__AExpr___is_typed].s; /* _is_typed on <self:AExpr> */
431 var9 = var11;
432 RET_LABEL10:(void)0;
433 }
434 }
435 var12 = !var9;
436 var = var12;
437 } else {
438 var = var_;
439 }
440 if (var){
441 if (varonce) {
442 var13 = varonce;
443 } else {
444 var14 = "TYPING: untyped expression";
445 var15 = 26;
446 var16 = standard___standard__NativeString___to_s_with_length(var14, var15);
447 var13 = var16;
448 varonce = var13;
449 }
450 {
451 nit___nit__ANode___debug(self, var13); /* Direct call parser_nodes#ANode#debug on <self:AExpr>*/
452 }
453 } else {
454 }
455 RET_LABEL:;
456 }
457 /* method astvalidation#APlaceholderExpr#accept_ast_validation for (self: APlaceholderExpr, ASTValidationVisitor) */
458 void nit__astvalidation___APlaceholderExpr___ANode__accept_ast_validation(val* self, val* p0) {
459 val* var_v /* var v: ASTValidationVisitor */;
460 static val* varonce;
461 val* var /* : String */;
462 char* var1 /* : NativeString */;
463 long var2 /* : Int */;
464 val* var3 /* : FlatString */;
465 var_v = p0;
466 {
467 ((void (*)(val* self, val* p0))(self->class->vft[COLOR_nit__astvalidation___APlaceholderExpr___ANode__accept_ast_validation]))(self, p0) /* accept_ast_validation on <self:APlaceholderExpr>*/;
468 }
469 if (varonce) {
470 var = varonce;
471 } else {
472 var1 = "PARENT: remaining placeholder";
473 var2 = 29;
474 var3 = standard___standard__NativeString___to_s_with_length(var1, var2);
475 var = var3;
476 varonce = var;
477 }
478 {
479 nit___nit__ANode___debug(self, var); /* Direct call parser_nodes#ANode#debug on <self:APlaceholderExpr>*/
480 }
481 RET_LABEL:;
482 }