misc/vim: inform the user when no results are found
[nit.git] / c_src / nit__astbuilder.sep.1.c
1 #include "nit__astbuilder.sep.0.h"
2 /* method astbuilder#ASTBuilder#mmodule for (self: ASTBuilder): MModule */
3 val* nit___nit__ASTBuilder___mmodule(val* self) {
4 val* var /* : MModule */;
5 val* var1 /* : MModule */;
6 var1 = self->attrs[COLOR_nit__astbuilder__ASTBuilder___mmodule].val; /* _mmodule on <self:ASTBuilder> */
7 if (unlikely(var1 == NULL)) {
8 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule");
9 PRINT_ERROR(" (%s:%d)\n", FILE_nit__astbuilder, 25);
10 show_backtrace(1);
11 }
12 var = var1;
13 RET_LABEL:;
14 return var;
15 }
16 /* method astbuilder#ASTBuilder#mmodule= for (self: ASTBuilder, MModule) */
17 void nit___nit__ASTBuilder___mmodule_61d(val* self, val* p0) {
18 self->attrs[COLOR_nit__astbuilder__ASTBuilder___mmodule].val = p0; /* _mmodule on <self:ASTBuilder> */
19 RET_LABEL:;
20 }
21 /* method astbuilder#ASTBuilder#anchor for (self: ASTBuilder): nullable MClassType */
22 val* nit___nit__ASTBuilder___anchor(val* self) {
23 val* var /* : nullable MClassType */;
24 val* var1 /* : nullable MClassType */;
25 var1 = self->attrs[COLOR_nit__astbuilder__ASTBuilder___anchor].val; /* _anchor on <self:ASTBuilder> */
26 var = var1;
27 RET_LABEL:;
28 return var;
29 }
30 /* method astbuilder#ASTBuilder#anchor= for (self: ASTBuilder, nullable MClassType) */
31 void nit___nit__ASTBuilder___anchor_61d(val* self, val* p0) {
32 self->attrs[COLOR_nit__astbuilder__ASTBuilder___anchor].val = p0; /* _anchor on <self:ASTBuilder> */
33 RET_LABEL:;
34 }
35 /* method astbuilder#ASTBuilder#make_int for (self: ASTBuilder, Int): AIntExpr */
36 val* nit___nit__ASTBuilder___make_int(val* self, long p0) {
37 val* var /* : AIntExpr */;
38 long var_value /* var value: Int */;
39 val* var1 /* : ADecIntExpr */;
40 val* var2 /* : MModule */;
41 val* var4 /* : MModule */;
42 static val* varonce;
43 val* var5 /* : String */;
44 char* var6 /* : NativeString */;
45 long var7 /* : Int */;
46 val* var8 /* : FlatString */;
47 val* var9 /* : MClass */;
48 val* var10 /* : MClassType */;
49 val* var12 /* : MClassType */;
50 var_value = p0;
51 var1 = NEW_nit__ADecIntExpr(&type_nit__ADecIntExpr);
52 {
53 { /* Inline astbuilder#ASTBuilder#mmodule (self) on <self:ASTBuilder> */
54 var4 = self->attrs[COLOR_nit__astbuilder__ASTBuilder___mmodule].val; /* _mmodule on <self:ASTBuilder> */
55 if (unlikely(var4 == NULL)) {
56 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule");
57 PRINT_ERROR(" (%s:%d)\n", FILE_nit__astbuilder, 25);
58 show_backtrace(1);
59 }
60 var2 = var4;
61 RET_LABEL3:(void)0;
62 }
63 }
64 if (varonce) {
65 var5 = varonce;
66 } else {
67 var6 = "Int";
68 var7 = 3;
69 var8 = standard___standard__NativeString___to_s_with_length(var6, var7);
70 var5 = var8;
71 varonce = var5;
72 }
73 {
74 var9 = nit__model___MModule___get_primitive_class(var2, var5);
75 }
76 {
77 { /* Inline model#MClass#mclass_type (var9) on <var9:MClass> */
78 var12 = var9->attrs[COLOR_nit__model__MClass___mclass_type].val; /* _mclass_type on <var9:MClass> */
79 if (unlikely(var12 == NULL)) {
80 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass_type");
81 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 438);
82 show_backtrace(1);
83 }
84 var10 = var12;
85 RET_LABEL11:(void)0;
86 }
87 }
88 {
89 nit__astbuilder___ADecIntExpr___make(var1, var_value, var10); /* Direct call astbuilder#ADecIntExpr#make on <var1:ADecIntExpr>*/
90 }
91 var = var1;
92 goto RET_LABEL;
93 RET_LABEL:;
94 return var;
95 }
96 /* method astbuilder#ASTBuilder#make_new for (self: ASTBuilder, CallSite, nullable Array[AExpr]): ANewExpr */
97 val* nit___nit__ASTBuilder___make_new(val* self, val* p0, val* p1) {
98 val* var /* : ANewExpr */;
99 val* var_callsite /* var callsite: CallSite */;
100 val* var_args /* var args: nullable Array[AExpr] */;
101 val* var1 /* : ANewExpr */;
102 var_callsite = p0;
103 var_args = p1;
104 var1 = NEW_nit__ANewExpr(&type_nit__ANewExpr);
105 {
106 nit__astbuilder___ANewExpr___make(var1, var_callsite, var_args); /* Direct call astbuilder#ANewExpr#make on <var1:ANewExpr>*/
107 }
108 var = var1;
109 goto RET_LABEL;
110 RET_LABEL:;
111 return var;
112 }
113 /* method astbuilder#ASTBuilder#make_call for (self: ASTBuilder, AExpr, CallSite, nullable Array[AExpr]): ACallExpr */
114 val* nit___nit__ASTBuilder___make_call(val* self, val* p0, val* p1, val* p2) {
115 val* var /* : ACallExpr */;
116 val* var_recv /* var recv: AExpr */;
117 val* var_callsite /* var callsite: CallSite */;
118 val* var_args /* var args: nullable Array[AExpr] */;
119 val* var1 /* : ACallExpr */;
120 var_recv = p0;
121 var_callsite = p1;
122 var_args = p2;
123 var1 = NEW_nit__ACallExpr(&type_nit__ACallExpr);
124 {
125 nit__astbuilder___ACallExpr___make(var1, var_recv, var_callsite, var_args); /* Direct call astbuilder#ACallExpr#make on <var1:ACallExpr>*/
126 }
127 var = var1;
128 goto RET_LABEL;
129 RET_LABEL:;
130 return var;
131 }
132 /* method astbuilder#ASTBuilder#make_block for (self: ASTBuilder): ABlockExpr */
133 val* nit___nit__ASTBuilder___make_block(val* self) {
134 val* var /* : ABlockExpr */;
135 val* var1 /* : ABlockExpr */;
136 var1 = NEW_nit__ABlockExpr(&type_nit__ABlockExpr);
137 {
138 nit__astbuilder___ABlockExpr___make(var1); /* Direct call astbuilder#ABlockExpr#make on <var1:ABlockExpr>*/
139 }
140 var = var1;
141 goto RET_LABEL;
142 RET_LABEL:;
143 return var;
144 }
145 /* method astbuilder#ASTBuilder#make_loop for (self: ASTBuilder): ALoopExpr */
146 val* nit___nit__ASTBuilder___make_loop(val* self) {
147 val* var /* : ALoopExpr */;
148 val* var1 /* : ALoopExpr */;
149 var1 = NEW_nit__ALoopExpr(&type_nit__ALoopExpr);
150 {
151 nit__astbuilder___ALoopExpr___make(var1); /* Direct call astbuilder#ALoopExpr#make on <var1:ALoopExpr>*/
152 }
153 var = var1;
154 goto RET_LABEL;
155 RET_LABEL:;
156 return var;
157 }
158 /* method astbuilder#ASTBuilder#make_var_read for (self: ASTBuilder, Variable, MType): AVarExpr */
159 val* nit___nit__ASTBuilder___make_var_read(val* self, val* p0, val* p1) {
160 val* var /* : AVarExpr */;
161 val* var_variable /* var variable: Variable */;
162 val* var_mtype /* var mtype: MType */;
163 val* var1 /* : AVarExpr */;
164 var_variable = p0;
165 var_mtype = p1;
166 var1 = NEW_nit__AVarExpr(&type_nit__AVarExpr);
167 {
168 nit__astbuilder___AVarExpr___make(var1, var_variable, var_mtype); /* Direct call astbuilder#AVarExpr#make on <var1:AVarExpr>*/
169 }
170 var = var1;
171 goto RET_LABEL;
172 RET_LABEL:;
173 return var;
174 }
175 /* method astbuilder#ASTBuilder#make_var_assign for (self: ASTBuilder, Variable, AExpr): AVarAssignExpr */
176 val* nit___nit__ASTBuilder___make_var_assign(val* self, val* p0, val* p1) {
177 val* var /* : AVarAssignExpr */;
178 val* var_variable /* var variable: Variable */;
179 val* var_value /* var value: AExpr */;
180 val* var1 /* : AVarAssignExpr */;
181 var_variable = p0;
182 var_value = p1;
183 var1 = NEW_nit__AVarAssignExpr(&type_nit__AVarAssignExpr);
184 {
185 nit__astbuilder___AVarAssignExpr___make(var1, var_variable, var_value); /* Direct call astbuilder#AVarAssignExpr#make on <var1:AVarAssignExpr>*/
186 }
187 var = var1;
188 goto RET_LABEL;
189 RET_LABEL:;
190 return var;
191 }
192 /* method astbuilder#ASTBuilder#make_attr_read for (self: ASTBuilder, AExpr, MAttribute): AAttrExpr */
193 val* nit___nit__ASTBuilder___make_attr_read(val* self, val* p0, val* p1) {
194 val* var /* : AAttrExpr */;
195 val* var_recv /* var recv: AExpr */;
196 val* var_attribute /* var attribute: MAttribute */;
197 val* var1 /* : MPropDef */;
198 val* var3 /* : MPropDef */;
199 val* var4 /* : nullable MType */;
200 val* var6 /* : nullable MType */;
201 val* var7 /* : nullable MType */;
202 val* var8 /* : nullable MClassType */;
203 val* var10 /* : nullable MClassType */;
204 val* var11 /* : MModule */;
205 val* var13 /* : MModule */;
206 short int var14 /* : Bool */;
207 val* var15 /* : MType */;
208 val* var_mtype /* var mtype: MType */;
209 val* var16 /* : AAttrExpr */;
210 var_recv = p0;
211 var_attribute = p1;
212 {
213 { /* Inline model#MProperty#intro (var_attribute) on <var_attribute:MAttribute> */
214 var3 = var_attribute->attrs[COLOR_nit__model__MProperty___intro].val; /* _intro on <var_attribute:MAttribute> */
215 if (unlikely(var3 == NULL)) {
216 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro");
217 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1773);
218 show_backtrace(1);
219 }
220 var1 = var3;
221 RET_LABEL2:(void)0;
222 }
223 }
224 {
225 { /* Inline model#MAttributeDef#static_mtype (var1) on <var1:MPropDef(MAttributeDef)> */
226 var6 = var1->attrs[COLOR_nit__model__MAttributeDef___static_mtype].val; /* _static_mtype on <var1:MPropDef(MAttributeDef)> */
227 var4 = var6;
228 RET_LABEL5:(void)0;
229 }
230 }
231 {
232 var7 = ((val* (*)(val* self))(var_recv->class->vft[COLOR_nit__typing__AExpr__mtype]))(var_recv) /* mtype on <var_recv:AExpr>*/;
233 }
234 if (unlikely(var7 == NULL)) {
235 PRINT_ERROR("Runtime error: %s", "Cast failed");
236 PRINT_ERROR(" (%s:%d)\n", FILE_nit__astbuilder, 77);
237 show_backtrace(1);
238 }
239 {
240 { /* Inline astbuilder#ASTBuilder#anchor (self) on <self:ASTBuilder> */
241 var10 = self->attrs[COLOR_nit__astbuilder__ASTBuilder___anchor].val; /* _anchor on <self:ASTBuilder> */
242 var8 = var10;
243 RET_LABEL9:(void)0;
244 }
245 }
246 {
247 { /* Inline astbuilder#ASTBuilder#mmodule (self) on <self:ASTBuilder> */
248 var13 = self->attrs[COLOR_nit__astbuilder__ASTBuilder___mmodule].val; /* _mmodule on <self:ASTBuilder> */
249 if (unlikely(var13 == NULL)) {
250 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule");
251 PRINT_ERROR(" (%s:%d)\n", FILE_nit__astbuilder, 25);
252 show_backtrace(1);
253 }
254 var11 = var13;
255 RET_LABEL12:(void)0;
256 }
257 }
258 var14 = 1;
259 if (var4 == NULL) {
260 PRINT_ERROR("Runtime error: %s", "Receiver is null");
261 PRINT_ERROR(" (%s:%d)\n", FILE_nit__astbuilder, 77);
262 show_backtrace(1);
263 } else {
264 var15 = ((val* (*)(val* self, val* p0, val* p1, val* p2, short int p3))(var4->class->vft[COLOR_nit__model__MType__resolve_for]))(var4, var7, var8, var11, var14) /* resolve_for on <var4:nullable MType>*/;
265 }
266 var_mtype = var15;
267 var16 = NEW_nit__AAttrExpr(&type_nit__AAttrExpr);
268 {
269 nit__astbuilder___AAttrExpr___make(var16, var_recv, var_attribute, var_mtype); /* Direct call astbuilder#AAttrExpr#make on <var16:AAttrExpr>*/
270 }
271 var = var16;
272 goto RET_LABEL;
273 RET_LABEL:;
274 return var;
275 }
276 /* method astbuilder#ASTBuilder#make_attr_assign for (self: ASTBuilder, AExpr, MAttribute, AExpr): AAttrAssignExpr */
277 val* nit___nit__ASTBuilder___make_attr_assign(val* self, val* p0, val* p1, val* p2) {
278 val* var /* : AAttrAssignExpr */;
279 val* var_recv /* var recv: AExpr */;
280 val* var_attribute /* var attribute: MAttribute */;
281 val* var_value /* var value: AExpr */;
282 val* var1 /* : AAttrAssignExpr */;
283 var_recv = p0;
284 var_attribute = p1;
285 var_value = p2;
286 var1 = NEW_nit__AAttrAssignExpr(&type_nit__AAttrAssignExpr);
287 {
288 nit__astbuilder___AAttrAssignExpr___make(var1, var_recv, var_attribute, var_value); /* Direct call astbuilder#AAttrAssignExpr#make on <var1:AAttrAssignExpr>*/
289 }
290 var = var1;
291 goto RET_LABEL;
292 RET_LABEL:;
293 return var;
294 }
295 /* method astbuilder#ASTBuilder#make_do for (self: ASTBuilder): ADoExpr */
296 val* nit___nit__ASTBuilder___make_do(val* self) {
297 val* var /* : ADoExpr */;
298 val* var1 /* : ADoExpr */;
299 var1 = NEW_nit__ADoExpr(&type_nit__ADoExpr);
300 {
301 nit__astbuilder___ADoExpr___make(var1); /* Direct call astbuilder#ADoExpr#make on <var1:ADoExpr>*/
302 }
303 var = var1;
304 goto RET_LABEL;
305 RET_LABEL:;
306 return var;
307 }
308 /* method astbuilder#ASTBuilder#make_break for (self: ASTBuilder, EscapeMark): ABreakExpr */
309 val* nit___nit__ASTBuilder___make_break(val* self, val* p0) {
310 val* var /* : ABreakExpr */;
311 val* var_escapemark /* var escapemark: EscapeMark */;
312 val* var1 /* : ABreakExpr */;
313 var_escapemark = p0;
314 var1 = NEW_nit__ABreakExpr(&type_nit__ABreakExpr);
315 {
316 nit__astbuilder___ABreakExpr___make(var1, var_escapemark); /* Direct call astbuilder#ABreakExpr#make on <var1:ABreakExpr>*/
317 }
318 var = var1;
319 goto RET_LABEL;
320 RET_LABEL:;
321 return var;
322 }
323 /* method astbuilder#ASTBuilder#make_if for (self: ASTBuilder, AExpr, nullable MType): AIfExpr */
324 val* nit___nit__ASTBuilder___make_if(val* self, val* p0, val* p1) {
325 val* var /* : AIfExpr */;
326 val* var_condition /* var condition: AExpr */;
327 val* var_mtype /* var mtype: nullable MType */;
328 val* var1 /* : AIfExpr */;
329 var_condition = p0;
330 var_mtype = p1;
331 var1 = NEW_nit__AIfExpr(&type_nit__AIfExpr);
332 {
333 nit__astbuilder___AIfExpr___make(var1, var_condition, var_mtype); /* Direct call astbuilder#AIfExpr#make on <var1:AIfExpr>*/
334 }
335 var = var1;
336 goto RET_LABEL;
337 RET_LABEL:;
338 return var;
339 }
340 /* method astbuilder#ASTBuilder#init for (self: ASTBuilder) */
341 void nit___nit__ASTBuilder___standard__kernel__Object__init(val* self) {
342 {
343 ((void (*)(val* self))(self->class->vft[COLOR_nit___nit__ASTBuilder___standard__kernel__Object__init]))(self) /* init on <self:ASTBuilder>*/;
344 }
345 RET_LABEL:;
346 }
347 /* method astbuilder#AExpr#make_var_read for (self: AExpr): AVarExpr */
348 val* nit__astbuilder___AExpr___make_var_read(val* self) {
349 val* var /* : AVarExpr */;
350 val* var1 /* : nullable Variable */;
351 val* var3 /* : nullable Variable */;
352 val* var_variable /* var variable: nullable Variable */;
353 val* var4 /* : null */;
354 short int var5 /* : Bool */;
355 short int var6 /* : Bool */;
356 val* var_other /* var other: nullable Object */;
357 short int var8 /* : Bool */;
358 short int var10 /* : Bool */;
359 val* var11 /* : nullable ANode */;
360 val* var13 /* : nullable ANode */;
361 val* var14 /* : null */;
362 short int var15 /* : Bool */;
363 short int var16 /* : Bool */;
364 val* var_other18 /* var other: nullable Object */;
365 short int var19 /* : Bool */;
366 short int var20 /* : Bool */;
367 val* var21 /* : AExpr */;
368 val* var_place /* var place: AExpr */;
369 val* var22 /* : Variable */;
370 static val* varonce;
371 val* var23 /* : String */;
372 char* var24 /* : NativeString */;
373 long var25 /* : Int */;
374 val* var26 /* : FlatString */;
375 val* var27 /* : nullable MType */;
376 val* var29 /* : AVarAssignExpr */;
377 val* var_nvar /* var nvar: AVarAssignExpr */;
378 val* var31 /* : AVarExpr */;
379 val* var32 /* : nullable MType */;
380 val* var34 /* : nullable MType */;
381 {
382 { /* Inline astbuilder#AExpr#variable_cache (self) on <self:AExpr> */
383 var3 = self->attrs[COLOR_nit__astbuilder__AExpr___variable_cache].val; /* _variable_cache on <self:AExpr> */
384 var1 = var3;
385 RET_LABEL2:(void)0;
386 }
387 }
388 var_variable = var1;
389 var4 = NULL;
390 if (var_variable == NULL) {
391 var5 = 1; /* is null */
392 } else {
393 var5 = 0; /* arg is null but recv is not */
394 }
395 if (0) {
396 { /* Inline kernel#Object#== (var_variable,var4) on <var_variable:nullable Variable> */
397 var_other = var4;
398 {
399 { /* Inline kernel#Object#is_same_instance (var_variable,var_other) on <var_variable:nullable Variable(Variable)> */
400 var10 = var_variable == var_other;
401 var8 = var10;
402 goto RET_LABEL9;
403 RET_LABEL9:(void)0;
404 }
405 }
406 var6 = var8;
407 goto RET_LABEL7;
408 RET_LABEL7:(void)0;
409 }
410 var5 = var6;
411 }
412 if (var5){
413 {
414 { /* Inline parser_nodes#ANode#parent (self) on <self:AExpr> */
415 var13 = self->attrs[COLOR_nit__parser_nodes__ANode___parent].val; /* _parent on <self:AExpr> */
416 var11 = var13;
417 RET_LABEL12:(void)0;
418 }
419 }
420 var14 = NULL;
421 if (var11 == NULL) {
422 var15 = 0; /* is null */
423 } else {
424 var15 = 1; /* arg is null and recv is not */
425 }
426 if (0) {
427 { /* Inline kernel#Object#!= (var11,var14) on <var11:nullable ANode> */
428 var_other18 = var14;
429 {
430 var19 = ((short int (*)(val* self, val* p0))(var11->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var11, var_other18) /* == on <var11:nullable ANode(ANode)>*/;
431 }
432 var20 = !var19;
433 var16 = var20;
434 goto RET_LABEL17;
435 RET_LABEL17:(void)0;
436 }
437 var15 = var16;
438 }
439 if (unlikely(!var15)) {
440 PRINT_ERROR("Runtime error: %s", "Assert failed");
441 PRINT_ERROR(" (%s:%d)\n", FILE_nit__astbuilder, 117);
442 show_backtrace(1);
443 }
444 {
445 var21 = nit__astbuilder___AExpr___detach_with_placeholder(self);
446 }
447 var_place = var21;
448 var22 = NEW_nit__Variable(&type_nit__Variable);
449 if (varonce) {
450 var23 = varonce;
451 } else {
452 var24 = "";
453 var25 = 0;
454 var26 = standard___standard__NativeString___to_s_with_length(var24, var25);
455 var23 = var26;
456 varonce = var23;
457 }
458 {
459 ((void (*)(val* self, val* p0))(var22->class->vft[COLOR_nit__scope__Variable__name_61d]))(var22, var23) /* name= on <var22:Variable>*/;
460 }
461 {
462 ((void (*)(val* self))(var22->class->vft[COLOR_standard__kernel__Object__init]))(var22) /* init on <var22:Variable>*/;
463 }
464 var_variable = var22;
465 {
466 var27 = ((val* (*)(val* self))(self->class->vft[COLOR_nit__typing__AExpr__mtype]))(self) /* mtype on <self:AExpr>*/;
467 }
468 {
469 { /* Inline typing#Variable#declared_type= (var_variable,var27) on <var_variable:nullable Variable(Variable)> */
470 var_variable->attrs[COLOR_nit__typing__Variable___declared_type].val = var27; /* _declared_type on <var_variable:nullable Variable(Variable)> */
471 RET_LABEL28:(void)0;
472 }
473 }
474 var29 = NEW_nit__AVarAssignExpr(&type_nit__AVarAssignExpr);
475 {
476 nit__astbuilder___AVarAssignExpr___make(var29, var_variable, self); /* Direct call astbuilder#AVarAssignExpr#make on <var29:AVarAssignExpr>*/
477 }
478 var_nvar = var29;
479 {
480 nit___nit__Prod___ANode__replace_with(var_place, var_nvar); /* Direct call parser_nodes#Prod#replace_with on <var_place:AExpr>*/
481 }
482 {
483 { /* Inline astbuilder#AExpr#variable_cache= (self,var_variable) on <self:AExpr> */
484 self->attrs[COLOR_nit__astbuilder__AExpr___variable_cache].val = var_variable; /* _variable_cache on <self:AExpr> */
485 RET_LABEL30:(void)0;
486 }
487 }
488 } else {
489 }
490 var31 = NEW_nit__AVarExpr(&type_nit__AVarExpr);
491 {
492 { /* Inline typing#Variable#declared_type (var_variable) on <var_variable:nullable Variable(Variable)> */
493 var34 = var_variable->attrs[COLOR_nit__typing__Variable___declared_type].val; /* _declared_type on <var_variable:nullable Variable(Variable)> */
494 var32 = var34;
495 RET_LABEL33:(void)0;
496 }
497 }
498 if (unlikely(var32 == NULL)) {
499 PRINT_ERROR("Runtime error: %s", "Cast failed");
500 PRINT_ERROR(" (%s:%d)\n", FILE_nit__astbuilder, 125);
501 show_backtrace(1);
502 }
503 {
504 nit__astbuilder___AVarExpr___make(var31, var_variable, var32); /* Direct call astbuilder#AVarExpr#make on <var31:AVarExpr>*/
505 }
506 var = var31;
507 goto RET_LABEL;
508 RET_LABEL:;
509 return var;
510 }
511 /* method astbuilder#AExpr#variable_cache for (self: AExpr): nullable Variable */
512 val* nit__astbuilder___AExpr___variable_cache(val* self) {
513 val* var /* : nullable Variable */;
514 val* var1 /* : nullable Variable */;
515 var1 = self->attrs[COLOR_nit__astbuilder__AExpr___variable_cache].val; /* _variable_cache on <self:AExpr> */
516 var = var1;
517 RET_LABEL:;
518 return var;
519 }
520 /* method astbuilder#AExpr#variable_cache= for (self: AExpr, nullable Variable) */
521 void nit__astbuilder___AExpr___variable_cache_61d(val* self, val* p0) {
522 self->attrs[COLOR_nit__astbuilder__AExpr___variable_cache].val = p0; /* _variable_cache on <self:AExpr> */
523 RET_LABEL:;
524 }
525 /* method astbuilder#AExpr#detach_with_placeholder for (self: AExpr): AExpr */
526 val* nit__astbuilder___AExpr___detach_with_placeholder(val* self) {
527 val* var /* : AExpr */;
528 val* var1 /* : APlaceholderExpr */;
529 val* var_h /* var h: APlaceholderExpr */;
530 var1 = NEW_nit__APlaceholderExpr(&type_nit__APlaceholderExpr);
531 {
532 nit___nit__APlaceholderExpr___make(var1); /* Direct call astbuilder#APlaceholderExpr#make on <var1:APlaceholderExpr>*/
533 }
534 var_h = var1;
535 {
536 nit___nit__Prod___ANode__replace_with(self, var_h); /* Direct call parser_nodes#Prod#replace_with on <self:AExpr>*/
537 }
538 var = var_h;
539 goto RET_LABEL;
540 RET_LABEL:;
541 return var;
542 }
543 /* method astbuilder#AExpr#add for (self: AExpr, AExpr) */
544 void nit__astbuilder___AExpr___add(val* self, val* p0) {
545 val* var_expr /* var expr: AExpr */;
546 static val* varonce;
547 val* var /* : String */;
548 char* var1 /* : NativeString */;
549 long var2 /* : Int */;
550 val* var3 /* : FlatString */;
551 val* var4 /* : String */;
552 val* var5 /* : Array[Object] */;
553 long var6 /* : Int */;
554 val* var7 /* : NativeArray[Object] */;
555 val* var8 /* : String */;
556 var_expr = p0;
557 if (varonce) {
558 var = varonce;
559 } else {
560 var1 = "add not implemented in ";
561 var2 = 23;
562 var3 = standard___standard__NativeString___to_s_with_length(var1, var2);
563 var = var3;
564 varonce = var;
565 }
566 {
567 var4 = standard__string___Object___inspect(self);
568 }
569 var5 = NEW_standard__Array(&type_standard__Array__standard__Object);
570 { /* var5 = array_instance Array[Object] */
571 var6 = 2;
572 var7 = NEW_standard__NativeArray(var6, &type_standard__NativeArray__standard__Object);
573 ((struct instance_standard__NativeArray*)var7)->values[0] = (val*) var;
574 ((struct instance_standard__NativeArray*)var7)->values[1] = (val*) var4;
575 {
576 ((void (*)(val* self, val* p0, long p1))(var5->class->vft[COLOR_standard__array__Array__with_native]))(var5, var7, var6) /* with_native on <var5:Array[Object]>*/;
577 }
578 }
579 {
580 var8 = ((val* (*)(val* self))(var5->class->vft[COLOR_standard__string__Object__to_s]))(var5) /* to_s on <var5:Array[Object]>*/;
581 }
582 {
583 standard__file___Object___print(self, var8); /* Direct call file#Object#print on <self:AExpr>*/
584 }
585 PRINT_ERROR("Runtime error: %s", "Aborted");
586 PRINT_ERROR(" (%s:%d)\n", FILE_nit__astbuilder, 160);
587 show_backtrace(1);
588 RET_LABEL:;
589 }
590 /* method astbuilder#APlaceholderExpr#make for (self: APlaceholderExpr) */
591 void nit___nit__APlaceholderExpr___make(val* self) {
592 {
593 { /* Inline kernel#Object#init (self) on <self:APlaceholderExpr> */
594 RET_LABEL1:(void)0;
595 }
596 }
597 RET_LABEL:;
598 }
599 /* method astbuilder#ABlockExpr#make for (self: ABlockExpr) */
600 void nit__astbuilder___ABlockExpr___make(val* self) {
601 short int var /* : Bool */;
602 var = 1;
603 {
604 { /* Inline typing#AExpr#is_typed= (self,var) on <self:ABlockExpr> */
605 self->attrs[COLOR_nit__typing__AExpr___is_typed].s = var; /* _is_typed on <self:ABlockExpr> */
606 RET_LABEL1:(void)0;
607 }
608 }
609 RET_LABEL:;
610 }
611 /* method astbuilder#ABlockExpr#add for (self: ABlockExpr, AExpr) */
612 void nit__astbuilder___ABlockExpr___AExpr__add(val* self, val* p0) {
613 val* var_expr /* var expr: AExpr */;
614 val* var /* : ANodes[AExpr] */;
615 val* var2 /* : ANodes[AExpr] */;
616 var_expr = p0;
617 {
618 { /* Inline parser_nodes#ABlockExpr#n_expr (self) on <self:ABlockExpr> */
619 var2 = self->attrs[COLOR_nit__parser_nodes__ABlockExpr___n_expr].val; /* _n_expr on <self:ABlockExpr> */
620 if (unlikely(var2 == NULL)) {
621 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
622 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 1565);
623 show_backtrace(1);
624 }
625 var = var2;
626 RET_LABEL1:(void)0;
627 }
628 }
629 {
630 standard___standard__Sequence___SimpleCollection__add(var, var_expr); /* Direct call abstract_collection#Sequence#add on <var:ANodes[AExpr]>*/
631 }
632 RET_LABEL:;
633 }
634 /* method astbuilder#ALoopExpr#make for (self: ALoopExpr) */
635 void nit__astbuilder___ALoopExpr___make(val* self) {
636 val* var /* : TKwloop */;
637 short int var2 /* : Bool */;
638 val* var4 /* : ABlockExpr */;
639 val* var6 /* : nullable AExpr */;
640 val* var8 /* : nullable AExpr */;
641 short int var9 /* : Bool */;
642 var = NEW_nit__TKwloop(&type_nit__TKwloop);
643 {
644 { /* Inline kernel#Object#init (var) on <var:TKwloop> */
645 RET_LABEL1:(void)0;
646 }
647 }
648 self->attrs[COLOR_nit__parser_nodes__ALoopExpr___n_kwloop].val = var; /* _n_kwloop on <self:ALoopExpr> */
649 var2 = 1;
650 {
651 { /* Inline typing#AExpr#is_typed= (self,var2) on <self:ALoopExpr> */
652 self->attrs[COLOR_nit__typing__AExpr___is_typed].s = var2; /* _is_typed on <self:ALoopExpr> */
653 RET_LABEL3:(void)0;
654 }
655 }
656 var4 = NEW_nit__ABlockExpr(&type_nit__ABlockExpr);
657 {
658 { /* Inline kernel#Object#init (var4) on <var4:ABlockExpr> */
659 RET_LABEL5:(void)0;
660 }
661 }
662 {
663 nit__parser_prod___ALoopExpr___n_block_61d(self, var4); /* Direct call parser_prod#ALoopExpr#n_block= on <self:ALoopExpr>*/
664 }
665 {
666 { /* Inline parser_nodes#ALoopExpr#n_block (self) on <self:ALoopExpr> */
667 var8 = self->attrs[COLOR_nit__parser_nodes__ALoopExpr___n_block].val; /* _n_block on <self:ALoopExpr> */
668 var6 = var8;
669 RET_LABEL7:(void)0;
670 }
671 }
672 var9 = 1;
673 if (var6 == NULL) {
674 PRINT_ERROR("Runtime error: %s", "Receiver is null");
675 PRINT_ERROR(" (%s:%d)\n", FILE_nit__astbuilder, 196);
676 show_backtrace(1);
677 } else {
678 { /* Inline typing#AExpr#is_typed= (var6,var9) on <var6:nullable AExpr> */
679 if (unlikely(var6 == NULL)) {
680 PRINT_ERROR("Runtime error: %s", "Receiver is null");
681 PRINT_ERROR(" (%s:%d)\n", FILE_nit__typing, 627);
682 show_backtrace(1);
683 }
684 var6->attrs[COLOR_nit__typing__AExpr___is_typed].s = var9; /* _is_typed on <var6:nullable AExpr> */
685 RET_LABEL10:(void)0;
686 }
687 }
688 RET_LABEL:;
689 }
690 /* method astbuilder#ALoopExpr#add for (self: ALoopExpr, AExpr) */
691 void nit__astbuilder___ALoopExpr___AExpr__add(val* self, val* p0) {
692 val* var_expr /* var expr: AExpr */;
693 val* var /* : nullable AExpr */;
694 val* var2 /* : nullable AExpr */;
695 var_expr = p0;
696 {
697 { /* Inline parser_nodes#ALoopExpr#n_block (self) on <self:ALoopExpr> */
698 var2 = self->attrs[COLOR_nit__parser_nodes__ALoopExpr___n_block].val; /* _n_block on <self:ALoopExpr> */
699 var = var2;
700 RET_LABEL1:(void)0;
701 }
702 }
703 if (var == NULL) {
704 PRINT_ERROR("Runtime error: %s", "Receiver is null");
705 PRINT_ERROR(" (%s:%d)\n", FILE_nit__astbuilder, 201);
706 show_backtrace(1);
707 } else {
708 ((void (*)(val* self, val* p0))(var->class->vft[COLOR_nit__astbuilder__AExpr__add]))(var, var_expr) /* add on <var:nullable AExpr>*/;
709 }
710 RET_LABEL:;
711 }
712 /* method astbuilder#ADoExpr#make for (self: ADoExpr) */
713 void nit__astbuilder___ADoExpr___make(val* self) {
714 val* var /* : TKwdo */;
715 short int var2 /* : Bool */;
716 val* var4 /* : ABlockExpr */;
717 val* var6 /* : nullable AExpr */;
718 val* var8 /* : nullable AExpr */;
719 short int var9 /* : Bool */;
720 var = NEW_nit__TKwdo(&type_nit__TKwdo);
721 {
722 { /* Inline kernel#Object#init (var) on <var:TKwdo> */
723 RET_LABEL1:(void)0;
724 }
725 }
726 self->attrs[COLOR_nit__parser_nodes__ADoExpr___n_kwdo].val = var; /* _n_kwdo on <self:ADoExpr> */
727 var2 = 1;
728 {
729 { /* Inline typing#AExpr#is_typed= (self,var2) on <self:ADoExpr> */
730 self->attrs[COLOR_nit__typing__AExpr___is_typed].s = var2; /* _is_typed on <self:ADoExpr> */
731 RET_LABEL3:(void)0;
732 }
733 }
734 var4 = NEW_nit__ABlockExpr(&type_nit__ABlockExpr);
735 {
736 { /* Inline kernel#Object#init (var4) on <var4:ABlockExpr> */
737 RET_LABEL5:(void)0;
738 }
739 }
740 {
741 nit__parser_prod___ADoExpr___n_block_61d(self, var4); /* Direct call parser_prod#ADoExpr#n_block= on <self:ADoExpr>*/
742 }
743 {
744 { /* Inline parser_nodes#ADoExpr#n_block (self) on <self:ADoExpr> */
745 var8 = self->attrs[COLOR_nit__parser_nodes__ADoExpr___n_block].val; /* _n_block on <self:ADoExpr> */
746 var6 = var8;
747 RET_LABEL7:(void)0;
748 }
749 }
750 var9 = 1;
751 if (var6 == NULL) {
752 PRINT_ERROR("Runtime error: %s", "Receiver is null");
753 PRINT_ERROR(" (%s:%d)\n", FILE_nit__astbuilder, 211);
754 show_backtrace(1);
755 } else {
756 { /* Inline typing#AExpr#is_typed= (var6,var9) on <var6:nullable AExpr> */
757 if (unlikely(var6 == NULL)) {
758 PRINT_ERROR("Runtime error: %s", "Receiver is null");
759 PRINT_ERROR(" (%s:%d)\n", FILE_nit__typing, 627);
760 show_backtrace(1);
761 }
762 var6->attrs[COLOR_nit__typing__AExpr___is_typed].s = var9; /* _is_typed on <var6:nullable AExpr> */
763 RET_LABEL10:(void)0;
764 }
765 }
766 RET_LABEL:;
767 }
768 /* method astbuilder#ADoExpr#add for (self: ADoExpr, AExpr) */
769 void nit__astbuilder___ADoExpr___AExpr__add(val* self, val* p0) {
770 val* var_expr /* var expr: AExpr */;
771 val* var /* : nullable AExpr */;
772 val* var2 /* : nullable AExpr */;
773 var_expr = p0;
774 {
775 { /* Inline parser_nodes#ADoExpr#n_block (self) on <self:ADoExpr> */
776 var2 = self->attrs[COLOR_nit__parser_nodes__ADoExpr___n_block].val; /* _n_block on <self:ADoExpr> */
777 var = var2;
778 RET_LABEL1:(void)0;
779 }
780 }
781 if (var == NULL) {
782 PRINT_ERROR("Runtime error: %s", "Receiver is null");
783 PRINT_ERROR(" (%s:%d)\n", FILE_nit__astbuilder, 227);
784 show_backtrace(1);
785 } else {
786 ((void (*)(val* self, val* p0))(var->class->vft[COLOR_nit__astbuilder__AExpr__add]))(var, var_expr) /* add on <var:nullable AExpr>*/;
787 }
788 RET_LABEL:;
789 }
790 /* method astbuilder#ABreakExpr#make for (self: ABreakExpr, EscapeMark) */
791 void nit__astbuilder___ABreakExpr___make(val* self, val* p0) {
792 val* var_escapemark /* var escapemark: EscapeMark */;
793 val* var /* : TKwbreak */;
794 val* var3 /* : Array[AEscapeExpr] */;
795 val* var5 /* : Array[AEscapeExpr] */;
796 short int var6 /* : Bool */;
797 var_escapemark = p0;
798 var = NEW_nit__TKwbreak(&type_nit__TKwbreak);
799 {
800 { /* Inline kernel#Object#init (var) on <var:TKwbreak> */
801 RET_LABEL1:(void)0;
802 }
803 }
804 self->attrs[COLOR_nit__parser_nodes__ABreakExpr___n_kwbreak].val = var; /* _n_kwbreak on <self:ABreakExpr> */
805 {
806 { /* Inline scope#AEscapeExpr#escapemark= (self,var_escapemark) on <self:ABreakExpr> */
807 self->attrs[COLOR_nit__scope__AEscapeExpr___escapemark].val = var_escapemark; /* _escapemark on <self:ABreakExpr> */
808 RET_LABEL2:(void)0;
809 }
810 }
811 {
812 { /* Inline scope#EscapeMark#escapes (var_escapemark) on <var_escapemark:EscapeMark> */
813 var5 = var_escapemark->attrs[COLOR_nit__scope__EscapeMark___escapes].val; /* _escapes on <var_escapemark:EscapeMark> */
814 if (unlikely(var5 == NULL)) {
815 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _escapes");
816 PRINT_ERROR(" (%s:%d)\n", FILE_nit__scope, 58);
817 show_backtrace(1);
818 }
819 var3 = var5;
820 RET_LABEL4:(void)0;
821 }
822 }
823 {
824 standard___standard__Array___standard__abstract_collection__SimpleCollection__add(var3, self); /* Direct call array#Array#add on <var3:Array[AEscapeExpr]>*/
825 }
826 var6 = 1;
827 {
828 { /* Inline typing#AExpr#is_typed= (self,var6) on <self:ABreakExpr> */
829 self->attrs[COLOR_nit__typing__AExpr___is_typed].s = var6; /* _is_typed on <self:ABreakExpr> */
830 RET_LABEL7:(void)0;
831 }
832 }
833 RET_LABEL:;
834 }
835 /* method astbuilder#AIfExpr#make for (self: AIfExpr, AExpr, nullable MType) */
836 void nit__astbuilder___AIfExpr___make(val* self, val* p0, val* p1) {
837 val* var_condition /* var condition: AExpr */;
838 val* var_mtype /* var mtype: nullable MType */;
839 val* var /* : TKwif */;
840 val* var2 /* : AExpr */;
841 val* var4 /* : ABlockExpr */;
842 val* var5 /* : ABlockExpr */;
843 short int var7 /* : Bool */;
844 var_condition = p0;
845 var_mtype = p1;
846 var = NEW_nit__TKwif(&type_nit__TKwif);
847 {
848 { /* Inline kernel#Object#init (var) on <var:TKwif> */
849 RET_LABEL1:(void)0;
850 }
851 }
852 self->attrs[COLOR_nit__parser_nodes__AIfExpr___n_kwif].val = var; /* _n_kwif on <self:AIfExpr> */
853 self->attrs[COLOR_nit__parser_nodes__AIfExpr___n_expr].val = var_condition; /* _n_expr on <self:AIfExpr> */
854 var2 = self->attrs[COLOR_nit__parser_nodes__AIfExpr___n_expr].val; /* _n_expr on <self:AIfExpr> */
855 if (unlikely(var2 == NULL)) {
856 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
857 PRINT_ERROR(" (%s:%d)\n", FILE_nit__astbuilder, 246);
858 show_backtrace(1);
859 }
860 {
861 { /* Inline parser_nodes#ANode#parent= (var2,self) on <var2:AExpr> */
862 var2->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var2:AExpr> */
863 RET_LABEL3:(void)0;
864 }
865 }
866 var4 = NEW_nit__ABlockExpr(&type_nit__ABlockExpr);
867 {
868 nit__astbuilder___ABlockExpr___make(var4); /* Direct call astbuilder#ABlockExpr#make on <var4:ABlockExpr>*/
869 }
870 self->attrs[COLOR_nit__parser_nodes__AIfExpr___n_then].val = var4; /* _n_then on <self:AIfExpr> */
871 var5 = NEW_nit__ABlockExpr(&type_nit__ABlockExpr);
872 {
873 nit__astbuilder___ABlockExpr___make(var5); /* Direct call astbuilder#ABlockExpr#make on <var5:ABlockExpr>*/
874 }
875 self->attrs[COLOR_nit__parser_nodes__AIfExpr___n_else].val = var5; /* _n_else on <self:AIfExpr> */
876 {
877 { /* Inline typing#AExpr#mtype= (self,var_mtype) on <self:AIfExpr> */
878 self->attrs[COLOR_nit__typing__AExpr___mtype].val = var_mtype; /* _mtype on <self:AIfExpr> */
879 RET_LABEL6:(void)0;
880 }
881 }
882 var7 = 1;
883 {
884 { /* Inline typing#AExpr#is_typed= (self,var7) on <self:AIfExpr> */
885 self->attrs[COLOR_nit__typing__AExpr___is_typed].s = var7; /* _is_typed on <self:AIfExpr> */
886 RET_LABEL8:(void)0;
887 }
888 }
889 RET_LABEL:;
890 }
891 /* method astbuilder#AType#make for (self: AType) */
892 void nit__astbuilder___AType___make(val* self) {
893 val* var /* : TClassid */;
894 var = NEW_nit__TClassid(&type_nit__TClassid);
895 {
896 { /* Inline kernel#Object#init (var) on <var:TClassid> */
897 RET_LABEL1:(void)0;
898 }
899 }
900 self->attrs[COLOR_nit__parser_nodes__AType___n_id].val = var; /* _n_id on <self:AType> */
901 RET_LABEL:;
902 }
903 /* method astbuilder#ADecIntExpr#make for (self: ADecIntExpr, Int, MType) */
904 void nit__astbuilder___ADecIntExpr___make(val* self, long p0, val* p1) {
905 long var_value /* var value: Int */;
906 val* var_t /* var t: MType */;
907 val* var /* : nullable Int */;
908 val* var2 /* : TNumber */;
909 var_value = p0;
910 var_t = p1;
911 {
912 { /* Inline literal#AIntExpr#value= (self,var_value) on <self:ADecIntExpr> */
913 var = BOX_standard__Int(var_value); /* autobox from Int to nullable Int */
914 self->attrs[COLOR_nit__literal__AIntExpr___value].val = var; /* _value on <self:ADecIntExpr> */
915 RET_LABEL1:(void)0;
916 }
917 }
918 var2 = NEW_nit__TNumber(&type_nit__TNumber);
919 {
920 { /* Inline kernel#Object#init (var2) on <var2:TNumber> */
921 RET_LABEL3:(void)0;
922 }
923 }
924 self->attrs[COLOR_nit__parser_nodes__ADecIntExpr___n_number].val = var2; /* _n_number on <self:ADecIntExpr> */
925 {
926 { /* Inline typing#AExpr#mtype= (self,var_t) on <self:ADecIntExpr> */
927 self->attrs[COLOR_nit__typing__AExpr___mtype].val = var_t; /* _mtype on <self:ADecIntExpr> */
928 RET_LABEL4:(void)0;
929 }
930 }
931 RET_LABEL:;
932 }
933 /* method astbuilder#ANewExpr#make for (self: ANewExpr, CallSite, nullable Array[AExpr]) */
934 void nit__astbuilder___ANewExpr___make(val* self, val* p0, val* p1) {
935 val* var_callsite /* var callsite: CallSite */;
936 val* var_args /* var args: nullable Array[AExpr] */;
937 val* var /* : TKwnew */;
938 val* var2 /* : AType */;
939 val* var3 /* : AListExprs */;
940 val* var5 /* : null */;
941 short int var6 /* : Bool */;
942 short int var7 /* : Bool */;
943 val* var_other /* var other: nullable Object */;
944 short int var9 /* : Bool */;
945 short int var10 /* : Bool */;
946 val* var11 /* : AExprs */;
947 val* var13 /* : AExprs */;
948 val* var14 /* : ANodes[AExpr] */;
949 val* var16 /* : ANodes[AExpr] */;
950 val* var18 /* : MType */;
951 val* var20 /* : MType */;
952 short int var21 /* : Bool */;
953 int cltype;
954 int idtype;
955 const char* var_class_name;
956 val* var23 /* : MMethod */;
957 val* var25 /* : MMethod */;
958 short int var26 /* : Bool */;
959 short int var28 /* : Bool */;
960 val* var29 /* : MSignature */;
961 val* var31 /* : MSignature */;
962 val* var32 /* : nullable MType */;
963 val* var34 /* : nullable MType */;
964 val* var36 /* : MType */;
965 val* var38 /* : MType */;
966 short int var40 /* : Bool */;
967 var_callsite = p0;
968 var_args = p1;
969 var = NEW_nit__TKwnew(&type_nit__TKwnew);
970 {
971 { /* Inline kernel#Object#init (var) on <var:TKwnew> */
972 RET_LABEL1:(void)0;
973 }
974 }
975 self->attrs[COLOR_nit__parser_nodes__ANewExpr___n_kwnew].val = var; /* _n_kwnew on <self:ANewExpr> */
976 var2 = NEW_nit__AType(&type_nit__AType);
977 {
978 nit__astbuilder___AType___make(var2); /* Direct call astbuilder#AType#make on <var2:AType>*/
979 }
980 self->attrs[COLOR_nit__parser_nodes__ANewExpr___n_type].val = var2; /* _n_type on <self:ANewExpr> */
981 var3 = NEW_nit__AListExprs(&type_nit__AListExprs);
982 {
983 { /* Inline kernel#Object#init (var3) on <var3:AListExprs> */
984 RET_LABEL4:(void)0;
985 }
986 }
987 self->attrs[COLOR_nit__parser_nodes__ANewExpr___n_args].val = var3; /* _n_args on <self:ANewExpr> */
988 var5 = NULL;
989 if (var_args == NULL) {
990 var6 = 0; /* is null */
991 } else {
992 var6 = 1; /* arg is null and recv is not */
993 }
994 if (0) {
995 { /* Inline kernel#Object#!= (var_args,var5) on <var_args:nullable Array[AExpr]> */
996 var_other = var5;
997 {
998 var9 = ((short int (*)(val* self, val* p0))(var_args->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_args, var_other) /* == on <var_args:nullable Array[AExpr](Array[AExpr])>*/;
999 }
1000 var10 = !var9;
1001 var7 = var10;
1002 goto RET_LABEL8;
1003 RET_LABEL8:(void)0;
1004 }
1005 var6 = var7;
1006 }
1007 if (var6){
1008 {
1009 { /* Inline parser_nodes#ANewExpr#n_args (self) on <self:ANewExpr> */
1010 var13 = self->attrs[COLOR_nit__parser_nodes__ANewExpr___n_args].val; /* _n_args on <self:ANewExpr> */
1011 if (unlikely(var13 == NULL)) {
1012 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_args");
1013 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 1968);
1014 show_backtrace(1);
1015 }
1016 var11 = var13;
1017 RET_LABEL12:(void)0;
1018 }
1019 }
1020 {
1021 { /* Inline parser_nodes#AExprs#n_exprs (var11) on <var11:AExprs> */
1022 var16 = var11->attrs[COLOR_nit__parser_nodes__AExprs___n_exprs].val; /* _n_exprs on <var11:AExprs> */
1023 if (unlikely(var16 == NULL)) {
1024 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_exprs");
1025 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 2408);
1026 show_backtrace(1);
1027 }
1028 var14 = var16;
1029 RET_LABEL15:(void)0;
1030 }
1031 }
1032 {
1033 standard___standard__SimpleCollection___add_all(var14, var_args); /* Direct call abstract_collection#SimpleCollection#add_all on <var14:ANodes[AExpr]>*/
1034 }
1035 } else {
1036 }
1037 {
1038 { /* Inline typing#ANewExpr#callsite= (self,var_callsite) on <self:ANewExpr> */
1039 self->attrs[COLOR_nit__typing__ANewExpr___callsite].val = var_callsite; /* _callsite on <self:ANewExpr> */
1040 RET_LABEL17:(void)0;
1041 }
1042 }
1043 {
1044 { /* Inline typing#CallSite#recv (var_callsite) on <var_callsite:CallSite> */
1045 var20 = var_callsite->attrs[COLOR_nit__typing__CallSite___recv].val; /* _recv on <var_callsite:CallSite> */
1046 if (unlikely(var20 == NULL)) {
1047 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _recv");
1048 PRINT_ERROR(" (%s:%d)\n", FILE_nit__typing, 473);
1049 show_backtrace(1);
1050 }
1051 var18 = var20;
1052 RET_LABEL19:(void)0;
1053 }
1054 }
1055 /* <var18:MType> isa MClassType */
1056 cltype = type_nit__MClassType.color;
1057 idtype = type_nit__MClassType.id;
1058 if(cltype >= var18->type->table_size) {
1059 var21 = 0;
1060 } else {
1061 var21 = var18->type->type_table[cltype] == idtype;
1062 }
1063 if (unlikely(!var21)) {
1064 var_class_name = var18 == NULL ? "null" : var18->type->name;
1065 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "MClassType", var_class_name);
1066 PRINT_ERROR(" (%s:%d)\n", FILE_nit__astbuilder, 280);
1067 show_backtrace(1);
1068 }
1069 {
1070 { /* Inline typing#ANewExpr#recvtype= (self,var18) on <self:ANewExpr> */
1071 self->attrs[COLOR_nit__typing__ANewExpr___recvtype].val = var18; /* _recvtype on <self:ANewExpr> */
1072 RET_LABEL22:(void)0;
1073 }
1074 }
1075 {
1076 { /* Inline typing#CallSite#mproperty (var_callsite) on <var_callsite:CallSite> */
1077 var25 = var_callsite->attrs[COLOR_nit__typing__CallSite___mproperty].val; /* _mproperty on <var_callsite:CallSite> */
1078 if (unlikely(var25 == NULL)) {
1079 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty");
1080 PRINT_ERROR(" (%s:%d)\n", FILE_nit__typing, 487);
1081 show_backtrace(1);
1082 }
1083 var23 = var25;
1084 RET_LABEL24:(void)0;
1085 }
1086 }
1087 {
1088 { /* Inline model#MMethod#is_new (var23) on <var23:MMethod> */
1089 var28 = var23->attrs[COLOR_nit__model__MMethod___is_new].s; /* _is_new on <var23:MMethod> */
1090 var26 = var28;
1091 RET_LABEL27:(void)0;
1092 }
1093 }
1094 if (var26){
1095 {
1096 { /* Inline typing#CallSite#msignature (var_callsite) on <var_callsite:CallSite> */
1097 var31 = var_callsite->attrs[COLOR_nit__typing__CallSite___msignature].val; /* _msignature on <var_callsite:CallSite> */
1098 if (unlikely(var31 == NULL)) {
1099 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _msignature");
1100 PRINT_ERROR(" (%s:%d)\n", FILE_nit__typing, 494);
1101 show_backtrace(1);
1102 }
1103 var29 = var31;
1104 RET_LABEL30:(void)0;
1105 }
1106 }
1107 {
1108 { /* Inline model#MSignature#return_mtype (var29) on <var29:MSignature> */
1109 var34 = var29->attrs[COLOR_nit__model__MSignature___return_mtype].val; /* _return_mtype on <var29:MSignature> */
1110 var32 = var34;
1111 RET_LABEL33:(void)0;
1112 }
1113 }
1114 {
1115 { /* Inline typing#AExpr#mtype= (self,var32) on <self:ANewExpr> */
1116 self->attrs[COLOR_nit__typing__AExpr___mtype].val = var32; /* _mtype on <self:ANewExpr> */
1117 RET_LABEL35:(void)0;
1118 }
1119 }
1120 } else {
1121 {
1122 { /* Inline typing#CallSite#recv (var_callsite) on <var_callsite:CallSite> */
1123 var38 = var_callsite->attrs[COLOR_nit__typing__CallSite___recv].val; /* _recv on <var_callsite:CallSite> */
1124 if (unlikely(var38 == NULL)) {
1125 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _recv");
1126 PRINT_ERROR(" (%s:%d)\n", FILE_nit__typing, 473);
1127 show_backtrace(1);
1128 }
1129 var36 = var38;
1130 RET_LABEL37:(void)0;
1131 }
1132 }
1133 {
1134 { /* Inline typing#AExpr#mtype= (self,var36) on <self:ANewExpr> */
1135 self->attrs[COLOR_nit__typing__AExpr___mtype].val = var36; /* _mtype on <self:ANewExpr> */
1136 RET_LABEL39:(void)0;
1137 }
1138 }
1139 }
1140 var40 = 1;
1141 {
1142 { /* Inline typing#AExpr#is_typed= (self,var40) on <self:ANewExpr> */
1143 self->attrs[COLOR_nit__typing__AExpr___is_typed].s = var40; /* _is_typed on <self:ANewExpr> */
1144 RET_LABEL41:(void)0;
1145 }
1146 }
1147 RET_LABEL:;
1148 }
1149 /* method astbuilder#ACallExpr#make for (self: ACallExpr, AExpr, CallSite, nullable Array[AExpr]) */
1150 void nit__astbuilder___ACallExpr___make(val* self, val* p0, val* p1, val* p2) {
1151 val* var_recv /* var recv: AExpr */;
1152 val* var_callsite /* var callsite: CallSite */;
1153 val* var_args /* var args: nullable Array[AExpr] */;
1154 val* var /* : AListExprs */;
1155 val* var2 /* : TId */;
1156 val* var4 /* : null */;
1157 short int var5 /* : Bool */;
1158 short int var6 /* : Bool */;
1159 val* var_other /* var other: nullable Object */;
1160 short int var8 /* : Bool */;
1161 short int var9 /* : Bool */;
1162 val* var10 /* : AExprs */;
1163 val* var12 /* : AExprs */;
1164 val* var13 /* : ANodes[AExpr] */;
1165 val* var15 /* : ANodes[AExpr] */;
1166 val* var17 /* : MSignature */;
1167 val* var19 /* : MSignature */;
1168 val* var20 /* : nullable MType */;
1169 val* var22 /* : nullable MType */;
1170 short int var24 /* : Bool */;
1171 var_recv = p0;
1172 var_callsite = p1;
1173 var_args = p2;
1174 self->attrs[COLOR_nit__parser_nodes__ASendExpr___n_expr].val = var_recv; /* _n_expr on <self:ACallExpr> */
1175 var = NEW_nit__AListExprs(&type_nit__AListExprs);
1176 {
1177 { /* Inline kernel#Object#init (var) on <var:AListExprs> */
1178 RET_LABEL1:(void)0;
1179 }
1180 }
1181 self->attrs[COLOR_nit__parser_nodes__ACallFormExpr___n_args].val = var; /* _n_args on <self:ACallExpr> */
1182 var2 = NEW_nit__TId(&type_nit__TId);
1183 {
1184 { /* Inline kernel#Object#init (var2) on <var2:TId> */
1185 RET_LABEL3:(void)0;
1186 }
1187 }
1188 self->attrs[COLOR_nit__parser_nodes__ACallFormExpr___n_id].val = var2; /* _n_id on <self:ACallExpr> */
1189 var4 = NULL;
1190 if (var_args == NULL) {
1191 var5 = 0; /* is null */
1192 } else {
1193 var5 = 1; /* arg is null and recv is not */
1194 }
1195 if (0) {
1196 { /* Inline kernel#Object#!= (var_args,var4) on <var_args:nullable Array[AExpr]> */
1197 var_other = var4;
1198 {
1199 var8 = ((short int (*)(val* self, val* p0))(var_args->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_args, var_other) /* == on <var_args:nullable Array[AExpr](Array[AExpr])>*/;
1200 }
1201 var9 = !var8;
1202 var6 = var9;
1203 goto RET_LABEL7;
1204 RET_LABEL7:(void)0;
1205 }
1206 var5 = var6;
1207 }
1208 if (var5){
1209 {
1210 { /* Inline parser_nodes#ACallFormExpr#n_args (self) on <self:ACallExpr> */
1211 var12 = self->attrs[COLOR_nit__parser_nodes__ACallFormExpr___n_args].val; /* _n_args on <self:ACallExpr> */
1212 if (unlikely(var12 == NULL)) {
1213 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_args");
1214 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 2002);
1215 show_backtrace(1);
1216 }
1217 var10 = var12;
1218 RET_LABEL11:(void)0;
1219 }
1220 }
1221 {
1222 { /* Inline parser_nodes#AExprs#n_exprs (var10) on <var10:AExprs> */
1223 var15 = var10->attrs[COLOR_nit__parser_nodes__AExprs___n_exprs].val; /* _n_exprs on <var10:AExprs> */
1224 if (unlikely(var15 == NULL)) {
1225 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_exprs");
1226 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 2408);
1227 show_backtrace(1);
1228 }
1229 var13 = var15;
1230 RET_LABEL14:(void)0;
1231 }
1232 }
1233 {
1234 standard___standard__SimpleCollection___add_all(var13, var_args); /* Direct call abstract_collection#SimpleCollection#add_all on <var13:ANodes[AExpr]>*/
1235 }
1236 } else {
1237 }
1238 {
1239 { /* Inline typing#ASendExpr#callsite= (self,var_callsite) on <self:ACallExpr> */
1240 self->attrs[COLOR_nit__typing__ASendExpr___callsite].val = var_callsite; /* _callsite on <self:ACallExpr> */
1241 RET_LABEL16:(void)0;
1242 }
1243 }
1244 {
1245 { /* Inline typing#CallSite#msignature (var_callsite) on <var_callsite:CallSite> */
1246 var19 = var_callsite->attrs[COLOR_nit__typing__CallSite___msignature].val; /* _msignature on <var_callsite:CallSite> */
1247 if (unlikely(var19 == NULL)) {
1248 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _msignature");
1249 PRINT_ERROR(" (%s:%d)\n", FILE_nit__typing, 494);
1250 show_backtrace(1);
1251 }
1252 var17 = var19;
1253 RET_LABEL18:(void)0;
1254 }
1255 }
1256 {
1257 { /* Inline model#MSignature#return_mtype (var17) on <var17:MSignature> */
1258 var22 = var17->attrs[COLOR_nit__model__MSignature___return_mtype].val; /* _return_mtype on <var17:MSignature> */
1259 var20 = var22;
1260 RET_LABEL21:(void)0;
1261 }
1262 }
1263 {
1264 { /* Inline typing#AExpr#mtype= (self,var20) on <self:ACallExpr> */
1265 self->attrs[COLOR_nit__typing__AExpr___mtype].val = var20; /* _mtype on <self:ACallExpr> */
1266 RET_LABEL23:(void)0;
1267 }
1268 }
1269 var24 = 1;
1270 {
1271 { /* Inline typing#AExpr#is_typed= (self,var24) on <self:ACallExpr> */
1272 self->attrs[COLOR_nit__typing__AExpr___is_typed].s = var24; /* _is_typed on <self:ACallExpr> */
1273 RET_LABEL25:(void)0;
1274 }
1275 }
1276 RET_LABEL:;
1277 }
1278 /* method astbuilder#AAttrExpr#make for (self: AAttrExpr, AExpr, MAttribute, MType) */
1279 void nit__astbuilder___AAttrExpr___make(val* self, val* p0, val* p1, val* p2) {
1280 val* var_recv /* var recv: AExpr */;
1281 val* var_attribute /* var attribute: MAttribute */;
1282 val* var_t /* var t: MType */;
1283 val* var /* : TAttrid */;
1284 var_recv = p0;
1285 var_attribute = p1;
1286 var_t = p2;
1287 self->attrs[COLOR_nit__parser_nodes__AAttrFormExpr___n_expr].val = var_recv; /* _n_expr on <self:AAttrExpr> */
1288 {
1289 { /* Inline parser_nodes#ANode#parent= (var_recv,self) on <var_recv:AExpr> */
1290 var_recv->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_recv:AExpr> */
1291 RET_LABEL1:(void)0;
1292 }
1293 }
1294 var = NEW_nit__TAttrid(&type_nit__TAttrid);
1295 {
1296 { /* Inline kernel#Object#init (var) on <var:TAttrid> */
1297 RET_LABEL2:(void)0;
1298 }
1299 }
1300 self->attrs[COLOR_nit__parser_nodes__AAttrFormExpr___n_id].val = var; /* _n_id on <self:AAttrExpr> */
1301 {
1302 { /* Inline typing#AAttrFormExpr#mproperty= (self,var_attribute) on <self:AAttrExpr> */
1303 self->attrs[COLOR_nit__typing__AAttrFormExpr___mproperty].val = var_attribute; /* _mproperty on <self:AAttrExpr> */
1304 RET_LABEL3:(void)0;
1305 }
1306 }
1307 {
1308 { /* Inline typing#AExpr#mtype= (self,var_t) on <self:AAttrExpr> */
1309 self->attrs[COLOR_nit__typing__AExpr___mtype].val = var_t; /* _mtype on <self:AAttrExpr> */
1310 RET_LABEL4:(void)0;
1311 }
1312 }
1313 RET_LABEL:;
1314 }
1315 /* method astbuilder#AAttrAssignExpr#make for (self: AAttrAssignExpr, AExpr, MAttribute, AExpr) */
1316 void nit__astbuilder___AAttrAssignExpr___make(val* self, val* p0, val* p1, val* p2) {
1317 val* var_recv /* var recv: AExpr */;
1318 val* var_attribute /* var attribute: MAttribute */;
1319 val* var_value /* var value: AExpr */;
1320 val* var /* : TAttrid */;
1321 val* var4 /* : TAssign */;
1322 val* var7 /* : nullable MType */;
1323 var_recv = p0;
1324 var_attribute = p1;
1325 var_value = p2;
1326 self->attrs[COLOR_nit__parser_nodes__AAttrFormExpr___n_expr].val = var_recv; /* _n_expr on <self:AAttrAssignExpr> */
1327 {
1328 { /* Inline parser_nodes#ANode#parent= (var_recv,self) on <var_recv:AExpr> */
1329 var_recv->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_recv:AExpr> */
1330 RET_LABEL1:(void)0;
1331 }
1332 }
1333 var = NEW_nit__TAttrid(&type_nit__TAttrid);
1334 {
1335 { /* Inline kernel#Object#init (var) on <var:TAttrid> */
1336 RET_LABEL2:(void)0;
1337 }
1338 }
1339 self->attrs[COLOR_nit__parser_nodes__AAttrFormExpr___n_id].val = var; /* _n_id on <self:AAttrAssignExpr> */
1340 self->attrs[COLOR_nit__parser_nodes__AAssignFormExpr___n_value].val = var_value; /* _n_value on <self:AAttrAssignExpr> */
1341 {
1342 { /* Inline parser_nodes#ANode#parent= (var_value,self) on <var_value:AExpr> */
1343 var_value->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_value:AExpr> */
1344 RET_LABEL3:(void)0;
1345 }
1346 }
1347 var4 = NEW_nit__TAssign(&type_nit__TAssign);
1348 {
1349 { /* Inline kernel#Object#init (var4) on <var4:TAssign> */
1350 RET_LABEL5:(void)0;
1351 }
1352 }
1353 self->attrs[COLOR_nit__parser_nodes__AAssignFormExpr___n_assign].val = var4; /* _n_assign on <self:AAttrAssignExpr> */
1354 {
1355 { /* Inline typing#AAttrFormExpr#mproperty= (self,var_attribute) on <self:AAttrAssignExpr> */
1356 self->attrs[COLOR_nit__typing__AAttrFormExpr___mproperty].val = var_attribute; /* _mproperty on <self:AAttrAssignExpr> */
1357 RET_LABEL6:(void)0;
1358 }
1359 }
1360 {
1361 var7 = ((val* (*)(val* self))(var_value->class->vft[COLOR_nit__typing__AExpr__mtype]))(var_value) /* mtype on <var_value:AExpr>*/;
1362 }
1363 {
1364 { /* Inline typing#AExpr#mtype= (self,var7) on <self:AAttrAssignExpr> */
1365 self->attrs[COLOR_nit__typing__AExpr___mtype].val = var7; /* _mtype on <self:AAttrAssignExpr> */
1366 RET_LABEL8:(void)0;
1367 }
1368 }
1369 RET_LABEL:;
1370 }
1371 /* method astbuilder#AVarExpr#make for (self: AVarExpr, Variable, MType) */
1372 void nit__astbuilder___AVarExpr___make(val* self, val* p0, val* p1) {
1373 val* var_v /* var v: Variable */;
1374 val* var_mtype /* var mtype: MType */;
1375 val* var /* : TId */;
1376 var_v = p0;
1377 var_mtype = p1;
1378 var = NEW_nit__TId(&type_nit__TId);
1379 {
1380 { /* Inline kernel#Object#init (var) on <var:TId> */
1381 RET_LABEL1:(void)0;
1382 }
1383 }
1384 self->attrs[COLOR_nit__parser_nodes__AVarFormExpr___n_id].val = var; /* _n_id on <self:AVarExpr> */
1385 {
1386 { /* Inline scope#AVarFormExpr#variable= (self,var_v) on <self:AVarExpr> */
1387 self->attrs[COLOR_nit__scope__AVarFormExpr___variable].val = var_v; /* _variable on <self:AVarExpr> */
1388 RET_LABEL2:(void)0;
1389 }
1390 }
1391 {
1392 { /* Inline typing#AExpr#mtype= (self,var_mtype) on <self:AVarExpr> */
1393 self->attrs[COLOR_nit__typing__AExpr___mtype].val = var_mtype; /* _mtype on <self:AVarExpr> */
1394 RET_LABEL3:(void)0;
1395 }
1396 }
1397 RET_LABEL:;
1398 }
1399 /* method astbuilder#AVarAssignExpr#make for (self: AVarAssignExpr, Variable, AExpr) */
1400 void nit__astbuilder___AVarAssignExpr___make(val* self, val* p0, val* p1) {
1401 val* var_v /* var v: Variable */;
1402 val* var_value /* var value: AExpr */;
1403 val* var /* : TId */;
1404 val* var3 /* : TAssign */;
1405 val* var6 /* : nullable MType */;
1406 var_v = p0;
1407 var_value = p1;
1408 var = NEW_nit__TId(&type_nit__TId);
1409 {
1410 { /* Inline kernel#Object#init (var) on <var:TId> */
1411 RET_LABEL1:(void)0;
1412 }
1413 }
1414 self->attrs[COLOR_nit__parser_nodes__AVarFormExpr___n_id].val = var; /* _n_id on <self:AVarAssignExpr> */
1415 self->attrs[COLOR_nit__parser_nodes__AAssignFormExpr___n_value].val = var_value; /* _n_value on <self:AVarAssignExpr> */
1416 {
1417 { /* Inline parser_nodes#ANode#parent= (var_value,self) on <var_value:AExpr> */
1418 var_value->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_value:AExpr> */
1419 RET_LABEL2:(void)0;
1420 }
1421 }
1422 var3 = NEW_nit__TAssign(&type_nit__TAssign);
1423 {
1424 { /* Inline kernel#Object#init (var3) on <var3:TAssign> */
1425 RET_LABEL4:(void)0;
1426 }
1427 }
1428 self->attrs[COLOR_nit__parser_nodes__AAssignFormExpr___n_assign].val = var3; /* _n_assign on <self:AVarAssignExpr> */
1429 {
1430 { /* Inline scope#AVarFormExpr#variable= (self,var_v) on <self:AVarAssignExpr> */
1431 self->attrs[COLOR_nit__scope__AVarFormExpr___variable].val = var_v; /* _variable on <self:AVarAssignExpr> */
1432 RET_LABEL5:(void)0;
1433 }
1434 }
1435 {
1436 var6 = ((val* (*)(val* self))(var_value->class->vft[COLOR_nit__typing__AExpr__mtype]))(var_value) /* mtype on <var_value:AExpr>*/;
1437 }
1438 {
1439 { /* Inline typing#AExpr#mtype= (self,var6) on <self:AVarAssignExpr> */
1440 self->attrs[COLOR_nit__typing__AExpr___mtype].val = var6; /* _mtype on <self:AVarAssignExpr> */
1441 RET_LABEL7:(void)0;
1442 }
1443 }
1444 RET_LABEL:;
1445 }