Merge: doc: fixed some typos and other misc. corrections
[nit.git] / c_src / nitc__abstract_compiler.sep.3.c
1 #include "nitc__abstract_compiler.sep.0.h"
2 /* method abstract_compiler$AbstractCompilerVisitor$get_property for (self: AbstractCompilerVisitor, String, MType): MMethod */
3 val* nitc___nitc__AbstractCompilerVisitor___get_property(val* self, val* p0, val* p1) {
4 val* var /* : MMethod */;
5 val* var_name /* var name: String */;
6 val* var_recv /* var recv: MType */;
7 short int var1 /* : Bool */;
8 int cltype;
9 int idtype;
10 val* var2 /* : AbstractCompiler */;
11 val* var4 /* : AbstractCompiler */;
12 val* var5 /* : ModelBuilder */;
13 val* var7 /* : ModelBuilder */;
14 val* var8 /* : nullable ANode */;
15 val* var10 /* : nullable ANode */;
16 val* var11 /* : MClass */;
17 val* var13 /* : MClass */;
18 val* var14 /* : AbstractCompiler */;
19 val* var16 /* : AbstractCompiler */;
20 val* var17 /* : MModule */;
21 val* var19 /* : MModule */;
22 val* var20 /* : MMethod */;
23 var_name = p0;
24 var_recv = p1;
25 /* <var_recv:MType> isa MClassType */
26 cltype = type_nitc__MClassType.color;
27 idtype = type_nitc__MClassType.id;
28 if(cltype >= var_recv->type->table_size) {
29 var1 = 0;
30 } else {
31 var1 = var_recv->type->type_table[cltype] == idtype;
32 }
33 if (unlikely(!var1)) {
34 if(catchStack.cursor >= 0){
35 longjmp(catchStack.envs[catchStack.cursor], 1);
36 }
37 PRINT_ERROR("Runtime error: %s", "Assert failed");
38 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 1239);
39 fatal_exit(1);
40 }
41 {
42 { /* Inline abstract_compiler$AbstractCompilerVisitor$compiler (self) on <self:AbstractCompilerVisitor> */
43 var4 = self->attrs[COLOR_nitc__abstract_compiler__AbstractCompilerVisitor___compiler].val; /* _compiler on <self:AbstractCompilerVisitor> */
44 if (unlikely(var4 == NULL)) {
45 if(catchStack.cursor >= 0){
46 longjmp(catchStack.envs[catchStack.cursor], 1);
47 }
48 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _compiler");
49 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 1214);
50 fatal_exit(1);
51 }
52 var2 = var4;
53 RET_LABEL3:(void)0;
54 }
55 }
56 {
57 { /* Inline abstract_compiler$AbstractCompiler$modelbuilder (var2) on <var2:AbstractCompiler> */
58 var7 = var2->attrs[COLOR_nitc__abstract_compiler__AbstractCompiler___modelbuilder].val; /* _modelbuilder on <var2:AbstractCompiler> */
59 if (unlikely(var7 == NULL)) {
60 if(catchStack.cursor >= 0){
61 longjmp(catchStack.envs[catchStack.cursor], 1);
62 }
63 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
64 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 552);
65 fatal_exit(1);
66 }
67 var5 = var7;
68 RET_LABEL6:(void)0;
69 }
70 }
71 {
72 { /* Inline abstract_compiler$AbstractCompilerVisitor$current_node (self) on <self:AbstractCompilerVisitor> */
73 var10 = self->attrs[COLOR_nitc__abstract_compiler__AbstractCompilerVisitor___current_node].val; /* _current_node on <self:AbstractCompilerVisitor> */
74 var8 = var10;
75 RET_LABEL9:(void)0;
76 }
77 }
78 {
79 { /* Inline model$MClassType$mclass (var_recv) on <var_recv:MType(MClassType)> */
80 var13 = var_recv->attrs[COLOR_nitc__model__MClassType___mclass].val; /* _mclass on <var_recv:MType(MClassType)> */
81 if (unlikely(var13 == NULL)) {
82 if(catchStack.cursor >= 0){
83 longjmp(catchStack.envs[catchStack.cursor], 1);
84 }
85 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
86 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1197);
87 fatal_exit(1);
88 }
89 var11 = var13;
90 RET_LABEL12:(void)0;
91 }
92 }
93 {
94 { /* Inline abstract_compiler$AbstractCompilerVisitor$compiler (self) on <self:AbstractCompilerVisitor> */
95 var16 = self->attrs[COLOR_nitc__abstract_compiler__AbstractCompilerVisitor___compiler].val; /* _compiler on <self:AbstractCompilerVisitor> */
96 if (unlikely(var16 == NULL)) {
97 if(catchStack.cursor >= 0){
98 longjmp(catchStack.envs[catchStack.cursor], 1);
99 }
100 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _compiler");
101 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 1214);
102 fatal_exit(1);
103 }
104 var14 = var16;
105 RET_LABEL15:(void)0;
106 }
107 }
108 {
109 { /* Inline abstract_compiler$AbstractCompiler$mainmodule (var14) on <var14:AbstractCompiler> */
110 var19 = var14->attrs[COLOR_nitc__abstract_compiler__AbstractCompiler___mainmodule].val; /* _mainmodule on <var14:AbstractCompiler> */
111 if (unlikely(var19 == NULL)) {
112 if(catchStack.cursor >= 0){
113 longjmp(catchStack.envs[catchStack.cursor], 1);
114 }
115 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule");
116 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 545);
117 fatal_exit(1);
118 }
119 var17 = var19;
120 RET_LABEL18:(void)0;
121 }
122 }
123 {
124 var20 = nitc___nitc__ModelBuilder___force_get_primitive_method(var5, var8, var_name, var11, var17);
125 }
126 var = var20;
127 goto RET_LABEL;
128 RET_LABEL:;
129 return var;
130 }
131 /* method abstract_compiler$AbstractCompilerVisitor$compile_callsite for (self: AbstractCompilerVisitor, CallSite, Array[RuntimeVariable]): nullable RuntimeVariable */
132 val* nitc___nitc__AbstractCompilerVisitor___compile_callsite(val* self, val* p0, val* p1) {
133 val* var /* : nullable RuntimeVariable */;
134 val* var_callsite /* var callsite: CallSite */;
135 val* var_arguments /* var arguments: Array[RuntimeVariable] */;
136 short int var1 /* : Bool */;
137 short int var3 /* : Bool */;
138 val* var4 /* : MMethodDef */;
139 val* var6 /* : MMethodDef */;
140 val* var7 /* : Array[MProperty] */;
141 val* var9 /* : Array[MProperty] */;
142 val* var_initializers /* var initializers: Array[MProperty] */;
143 short int var10 /* : Bool */;
144 short int var11 /* : Bool */;
145 val* var12 /* : nullable Object */;
146 val* var_recv /* var recv: RuntimeVariable */;
147 long var_i /* var i: Int */;
148 val* var_ /* var : Array[MProperty] */;
149 val* var13 /* : IndexedIterator[nullable Object] */;
150 val* var_14 /* var : IndexedIterator[MProperty] */;
151 short int var15 /* : Bool */;
152 val* var16 /* : nullable Object */;
153 val* var_p /* var p: MProperty */;
154 short int var17 /* : Bool */;
155 int cltype;
156 int idtype;
157 val* var18 /* : Array[RuntimeVariable] */;
158 val* var_19 /* var : Array[RuntimeVariable] */;
159 val* var_args /* var args: Array[RuntimeVariable] */;
160 val* var20 /* : MPropDef */;
161 val* var22 /* : MPropDef */;
162 val* var23 /* : nullable MSignature */;
163 val* var25 /* : nullable MSignature */;
164 val* var26 /* : Array[MParameter] */;
165 val* var28 /* : Array[MParameter] */;
166 val* var_29 /* var : Array[MParameter] */;
167 val* var30 /* : IndexedIterator[nullable Object] */;
168 val* var_31 /* var : IndexedIterator[MParameter] */;
169 short int var32 /* : Bool */;
170 val* var34 /* : nullable Object */;
171 val* var_x /* var x: MParameter */;
172 val* var35 /* : nullable Object */;
173 long var36 /* : Int */;
174 short int var38 /* : Bool */;
175 int cltype39;
176 int idtype40;
177 const char* var_class_name;
178 long var41 /* : Int */;
179 val* var42 /* : nullable RuntimeVariable */;
180 short int var43 /* : Bool */;
181 int cltype44;
182 int idtype45;
183 val* var46 /* : nullable Object */;
184 long var47 /* : Int */;
185 short int var49 /* : Bool */;
186 int cltype50;
187 int idtype51;
188 const char* var_class_name52;
189 long var53 /* : Int */;
190 long var54 /* : Int */;
191 long var56 /* : Int */;
192 short int var57 /* : Bool */;
193 short int var59 /* : Bool */;
194 val* var60 /* : MMethod */;
195 val* var62 /* : MMethod */;
196 val* var63 /* : Array[RuntimeVariable] */;
197 val* var_64 /* var : Array[RuntimeVariable] */;
198 val* var65 /* : nullable RuntimeVariable */;
199 val* var66 /* : MMethod */;
200 val* var68 /* : MMethod */;
201 val* var69 /* : nullable RuntimeVariable */;
202 var_callsite = p0;
203 var_arguments = p1;
204 {
205 { /* Inline model_base$MEntity$is_broken (var_callsite) on <var_callsite:CallSite> */
206 var3 = var_callsite->attrs[COLOR_nitc__model_base__MEntity___is_broken].s; /* _is_broken on <var_callsite:CallSite> */
207 var1 = var3;
208 RET_LABEL2:(void)0;
209 }
210 }
211 if (var1){
212 var = ((val*)NULL);
213 goto RET_LABEL;
214 } else {
215 }
216 {
217 { /* Inline typing$CallSite$mpropdef (var_callsite) on <var_callsite:CallSite> */
218 var6 = var_callsite->attrs[COLOR_nitc__typing__CallSite___mpropdef].val; /* _mpropdef on <var_callsite:CallSite> */
219 if (unlikely(var6 == NULL)) {
220 if(catchStack.cursor >= 0){
221 longjmp(catchStack.envs[catchStack.cursor], 1);
222 }
223 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mpropdef");
224 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__typing, 659);
225 fatal_exit(1);
226 }
227 var4 = var6;
228 RET_LABEL5:(void)0;
229 }
230 }
231 {
232 { /* Inline model$MMethodDef$initializers (var4) on <var4:MMethodDef> */
233 var9 = var4->attrs[COLOR_nitc__model__MMethodDef___initializers].val; /* _initializers on <var4:MMethodDef> */
234 if (unlikely(var9 == NULL)) {
235 if(catchStack.cursor >= 0){
236 longjmp(catchStack.envs[catchStack.cursor], 1);
237 }
238 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _initializers");
239 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 2492);
240 fatal_exit(1);
241 }
242 var7 = var9;
243 RET_LABEL8:(void)0;
244 }
245 }
246 var_initializers = var7;
247 {
248 var10 = core___core__AbstractArrayRead___core__abstract_collection__Collection__is_empty(var_initializers);
249 }
250 var11 = !var10;
251 if (var11){
252 {
253 var12 = core___core__SequenceRead___Collection__first(var_arguments);
254 }
255 var_recv = var12;
256 var_i = 1l;
257 var_ = var_initializers;
258 {
259 var13 = core___core__AbstractArrayRead___core__abstract_collection__Collection__iterator(var_);
260 }
261 var_14 = var13;
262 for(;;) {
263 {
264 var15 = ((short int(*)(val* self))((((long)var_14&3)?class_info[((long)var_14&3)]:var_14->class)->vft[COLOR_core__abstract_collection__Iterator__is_ok]))(var_14); /* is_ok on <var_14:IndexedIterator[MProperty]>*/
265 }
266 if (var15){
267 } else {
268 goto BREAK_label;
269 }
270 {
271 var16 = ((val*(*)(val* self))((((long)var_14&3)?class_info[((long)var_14&3)]:var_14->class)->vft[COLOR_core__abstract_collection__Iterator__item]))(var_14); /* item on <var_14:IndexedIterator[MProperty]>*/
272 }
273 var_p = var16;
274 /* <var_p:MProperty> isa MMethod */
275 cltype = type_nitc__MMethod.color;
276 idtype = type_nitc__MMethod.id;
277 if(cltype >= var_p->type->table_size) {
278 var17 = 0;
279 } else {
280 var17 = var_p->type->type_table[cltype] == idtype;
281 }
282 if (var17){
283 var18 = NEW_core__Array(&type_core__Array__nitc__RuntimeVariable);
284 {
285 core___core__Array___with_capacity(var18, 1l); /* Direct call array$Array$with_capacity on <var18:Array[RuntimeVariable]>*/
286 }
287 var_19 = var18;
288 {
289 core___core__AbstractArray___core__abstract_collection__Sequence__push(var_19, var_recv); /* Direct call array$AbstractArray$push on <var_19:Array[RuntimeVariable]>*/
290 }
291 var_args = var_19;
292 {
293 { /* Inline model$MProperty$intro (var_p) on <var_p:MProperty(MMethod)> */
294 var22 = var_p->attrs[COLOR_nitc__model__MProperty___intro].val; /* _intro on <var_p:MProperty(MMethod)> */
295 if (unlikely(var22 == NULL)) {
296 if(catchStack.cursor >= 0){
297 longjmp(catchStack.envs[catchStack.cursor], 1);
298 }
299 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro");
300 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 2097);
301 fatal_exit(1);
302 }
303 var20 = var22;
304 RET_LABEL21:(void)0;
305 }
306 }
307 {
308 { /* Inline model$MMethodDef$msignature (var20) on <var20:MPropDef(MMethodDef)> */
309 var25 = var20->attrs[COLOR_nitc__model__MMethodDef___msignature].val; /* _msignature on <var20:MPropDef(MMethodDef)> */
310 var23 = var25;
311 RET_LABEL24:(void)0;
312 }
313 }
314 if (var23 == NULL) {
315 if(catchStack.cursor >= 0){
316 longjmp(catchStack.envs[catchStack.cursor], 1);
317 }
318 PRINT_ERROR("Runtime error: %s", "Receiver is null");
319 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 1254);
320 fatal_exit(1);
321 } else {
322 { /* Inline model$MSignature$mparameters (var23) on <var23:nullable MSignature> */
323 if (unlikely(var23 == NULL)) {
324 if(catchStack.cursor >= 0){
325 longjmp(catchStack.envs[catchStack.cursor], 1);
326 }
327 PRINT_ERROR("Runtime error: %s", "Receiver is null");
328 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1879);
329 fatal_exit(1);
330 }
331 var28 = var23->attrs[COLOR_nitc__model__MSignature___mparameters].val; /* _mparameters on <var23:nullable MSignature> */
332 if (unlikely(var28 == NULL)) {
333 if(catchStack.cursor >= 0){
334 longjmp(catchStack.envs[catchStack.cursor], 1);
335 }
336 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mparameters");
337 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1879);
338 fatal_exit(1);
339 }
340 var26 = var28;
341 RET_LABEL27:(void)0;
342 }
343 }
344 var_29 = var26;
345 {
346 var30 = core___core__AbstractArrayRead___core__abstract_collection__Collection__iterator(var_29);
347 }
348 var_31 = var30;
349 for(;;) {
350 {
351 var32 = ((short int(*)(val* self))((((long)var_31&3)?class_info[((long)var_31&3)]:var_31->class)->vft[COLOR_core__abstract_collection__Iterator__is_ok]))(var_31); /* is_ok on <var_31:IndexedIterator[MParameter]>*/
352 }
353 if (var32){
354 } else {
355 goto BREAK_label33;
356 }
357 {
358 var34 = ((val*(*)(val* self))((((long)var_31&3)?class_info[((long)var_31&3)]:var_31->class)->vft[COLOR_core__abstract_collection__Iterator__item]))(var_31); /* item on <var_31:IndexedIterator[MParameter]>*/
359 }
360 var_x = var34;
361 {
362 var35 = core___core__Array___core__abstract_collection__SequenceRead___91d_93d(var_arguments, var_i);
363 }
364 {
365 core___core__Array___core__abstract_collection__SimpleCollection__add(var_args, var35); /* Direct call array$Array$add on <var_args:Array[RuntimeVariable]>*/
366 }
367 {
368 { /* Inline kernel$Int$+ (var_i,1l) on <var_i:Int> */
369 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
370 /* <1l:Int> isa OTHER */
371 var38 = 1; /* easy <1l:Int> isa OTHER*/
372 if (unlikely(!var38)) {
373 var_class_name = type_core__Int.name;
374 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
375 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 728);
376 fatal_exit(1);
377 }
378 var41 = var_i + 1l;
379 var36 = var41;
380 goto RET_LABEL37;
381 RET_LABEL37:(void)0;
382 }
383 }
384 var_i = var36;
385 {
386 ((void(*)(val* self))((((long)var_31&3)?class_info[((long)var_31&3)]:var_31->class)->vft[COLOR_core__abstract_collection__Iterator__next]))(var_31); /* next on <var_31:IndexedIterator[MParameter]>*/
387 }
388 }
389 BREAK_label33: (void)0;
390 {
391 ((void(*)(val* self))((((long)var_31&3)?class_info[((long)var_31&3)]:var_31->class)->vft[COLOR_core__abstract_collection__Iterator__finish]))(var_31); /* finish on <var_31:IndexedIterator[MParameter]>*/
392 }
393 {
394 var42 = nitc___nitc__SeparateCompilerVisitor___nitc__abstract_compiler__AbstractCompilerVisitor__send(self, var_p, var_args);
395 }
396 } else {
397 /* <var_p:MProperty> isa MAttribute */
398 cltype44 = type_nitc__MAttribute.color;
399 idtype45 = type_nitc__MAttribute.id;
400 if(cltype44 >= var_p->type->table_size) {
401 var43 = 0;
402 } else {
403 var43 = var_p->type->type_table[cltype44] == idtype45;
404 }
405 if (var43){
406 {
407 var46 = core___core__Array___core__abstract_collection__SequenceRead___91d_93d(var_arguments, var_i);
408 }
409 {
410 nitc___nitc__SeparateCompilerVisitor___nitc__abstract_compiler__AbstractCompilerVisitor__write_attribute(self, var_p, var_recv, var46); /* Direct call separate_compiler$SeparateCompilerVisitor$write_attribute on <self:AbstractCompilerVisitor>*/
411 }
412 {
413 { /* Inline kernel$Int$+ (var_i,1l) on <var_i:Int> */
414 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
415 /* <1l:Int> isa OTHER */
416 var49 = 1; /* easy <1l:Int> isa OTHER*/
417 if (unlikely(!var49)) {
418 var_class_name52 = type_core__Int.name;
419 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name52);
420 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 728);
421 fatal_exit(1);
422 }
423 var53 = var_i + 1l;
424 var47 = var53;
425 goto RET_LABEL48;
426 RET_LABEL48:(void)0;
427 }
428 }
429 var_i = var47;
430 } else {
431 if(catchStack.cursor >= 0){
432 longjmp(catchStack.envs[catchStack.cursor], 1);
433 }
434 PRINT_ERROR("Runtime error: %s", "Aborted");
435 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 1262);
436 fatal_exit(1);
437 }
438 }
439 {
440 ((void(*)(val* self))((((long)var_14&3)?class_info[((long)var_14&3)]:var_14->class)->vft[COLOR_core__abstract_collection__Iterator__next]))(var_14); /* next on <var_14:IndexedIterator[MProperty]>*/
441 }
442 }
443 BREAK_label: (void)0;
444 {
445 ((void(*)(val* self))((((long)var_14&3)?class_info[((long)var_14&3)]:var_14->class)->vft[COLOR_core__abstract_collection__Iterator__finish]))(var_14); /* finish on <var_14:IndexedIterator[MProperty]>*/
446 }
447 {
448 { /* Inline array$AbstractArrayRead$length (var_arguments) on <var_arguments:Array[RuntimeVariable]> */
449 var56 = var_arguments->attrs[COLOR_core__array__AbstractArrayRead___length].l; /* _length on <var_arguments:Array[RuntimeVariable]> */
450 var54 = var56;
451 RET_LABEL55:(void)0;
452 }
453 }
454 {
455 { /* Inline kernel$Int$== (var_i,var54) on <var_i:Int> */
456 var59 = var_i == var54;
457 var57 = var59;
458 goto RET_LABEL58;
459 RET_LABEL58:(void)0;
460 }
461 }
462 if (unlikely(!var57)) {
463 if(catchStack.cursor >= 0){
464 longjmp(catchStack.envs[catchStack.cursor], 1);
465 }
466 PRINT_ERROR("Runtime error: %s", "Assert failed");
467 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 1264);
468 fatal_exit(1);
469 }
470 {
471 { /* Inline typing$CallSite$mproperty (var_callsite) on <var_callsite:CallSite> */
472 var62 = var_callsite->attrs[COLOR_nitc__typing__CallSite___mproperty].val; /* _mproperty on <var_callsite:CallSite> */
473 if (unlikely(var62 == NULL)) {
474 if(catchStack.cursor >= 0){
475 longjmp(catchStack.envs[catchStack.cursor], 1);
476 }
477 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty");
478 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__typing, 656);
479 fatal_exit(1);
480 }
481 var60 = var62;
482 RET_LABEL61:(void)0;
483 }
484 }
485 var63 = NEW_core__Array(&type_core__Array__nitc__RuntimeVariable);
486 {
487 core___core__Array___with_capacity(var63, 1l); /* Direct call array$Array$with_capacity on <var63:Array[RuntimeVariable]>*/
488 }
489 var_64 = var63;
490 {
491 core___core__AbstractArray___core__abstract_collection__Sequence__push(var_64, var_recv); /* Direct call array$AbstractArray$push on <var_64:Array[RuntimeVariable]>*/
492 }
493 {
494 var65 = nitc___nitc__SeparateCompilerVisitor___nitc__abstract_compiler__AbstractCompilerVisitor__send(self, var60, var_64);
495 }
496 var = var65;
497 goto RET_LABEL;
498 } else {
499 }
500 {
501 { /* Inline typing$CallSite$mproperty (var_callsite) on <var_callsite:CallSite> */
502 var68 = var_callsite->attrs[COLOR_nitc__typing__CallSite___mproperty].val; /* _mproperty on <var_callsite:CallSite> */
503 if (unlikely(var68 == NULL)) {
504 if(catchStack.cursor >= 0){
505 longjmp(catchStack.envs[catchStack.cursor], 1);
506 }
507 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty");
508 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__typing, 656);
509 fatal_exit(1);
510 }
511 var66 = var68;
512 RET_LABEL67:(void)0;
513 }
514 }
515 {
516 var69 = nitc___nitc__SeparateCompilerVisitor___nitc__abstract_compiler__AbstractCompilerVisitor__send(self, var66, var_arguments);
517 }
518 var = var69;
519 goto RET_LABEL;
520 RET_LABEL:;
521 return var;
522 }
523 /* method abstract_compiler$AbstractCompilerVisitor$nit_alloc for (self: AbstractCompilerVisitor, String, nullable String): String */
524 val* nitc___nitc__AbstractCompilerVisitor___nit_alloc(val* self, val* p0, val* p1) {
525 val* var /* : String */;
526 val* var_size /* var size: String */;
527 val* var_tag /* var tag: nullable String */;
528 val* var1 /* : NativeArray[String] */;
529 static val* varonce;
530 static val* varonce2;
531 val* var3 /* : String */;
532 char* var4 /* : CString */;
533 val* var5 /* : String */;
534 val* var6 /* : nullable Int */;
535 val* var7 /* : nullable Int */;
536 val* var8 /* : nullable Bool */;
537 val* var9 /* : nullable Bool */;
538 static val* varonce10;
539 val* var11 /* : String */;
540 char* var12 /* : CString */;
541 val* var13 /* : String */;
542 val* var14 /* : nullable Int */;
543 val* var15 /* : nullable Int */;
544 val* var16 /* : nullable Bool */;
545 val* var17 /* : nullable Bool */;
546 val* var18 /* : String */;
547 var_size = p0;
548 var_tag = p1;
549 if (unlikely(varonce==NULL)) {
550 var1 = NEW_core__NativeArray((int)3l, &type_core__NativeArray__core__String);
551 if (likely(varonce2!=NULL)) {
552 var3 = varonce2;
553 } else {
554 var4 = "nit_alloc(";
555 var6 = (val*)(10l<<2|1);
556 var7 = (val*)(10l<<2|1);
557 var8 = (val*)((long)(0)<<2|3);
558 var9 = (val*)((long)(0)<<2|3);
559 var5 = core__flat___CString___to_s_unsafe(var4, var6, var7, var8, var9);
560 var3 = var5;
561 varonce2 = var3;
562 }
563 ((struct instance_core__NativeArray*)var1)->values[0]=var3;
564 if (likely(varonce10!=NULL)) {
565 var11 = varonce10;
566 } else {
567 var12 = ")";
568 var14 = (val*)(1l<<2|1);
569 var15 = (val*)(1l<<2|1);
570 var16 = (val*)((long)(0)<<2|3);
571 var17 = (val*)((long)(0)<<2|3);
572 var13 = core__flat___CString___to_s_unsafe(var12, var14, var15, var16, var17);
573 var11 = var13;
574 varonce10 = var11;
575 }
576 ((struct instance_core__NativeArray*)var1)->values[2]=var11;
577 } else {
578 var1 = varonce;
579 varonce = NULL;
580 }
581 ((struct instance_core__NativeArray*)var1)->values[1]=var_size;
582 {
583 var18 = ((val*(*)(val* self))(var1->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var1); /* native_to_s on <var1:NativeArray[String]>*/
584 }
585 varonce = var1;
586 var = var18;
587 goto RET_LABEL;
588 RET_LABEL:;
589 return var;
590 }
591 /* method abstract_compiler$AbstractCompilerVisitor$varargize for (self: AbstractCompilerVisitor, MMethodDef, nullable SignatureMap, RuntimeVariable, SequenceRead[AExpr]): Array[RuntimeVariable] */
592 val* nitc___nitc__AbstractCompilerVisitor___varargize(val* self, val* p0, val* p1, val* p2, val* p3) {
593 val* var /* : Array[RuntimeVariable] */;
594 val* var_mpropdef /* var mpropdef: MMethodDef */;
595 val* var_map /* var map: nullable SignatureMap */;
596 val* var_recv /* var recv: RuntimeVariable */;
597 val* var_args /* var args: SequenceRead[AExpr] */;
598 val* var1 /* : MSignature */;
599 val* var2 /* : nullable MSignature */;
600 val* var4 /* : nullable MSignature */;
601 val* var5 /* : nullable MSignature */;
602 val* var7 /* : nullable MSignature */;
603 val* var_msignature /* var msignature: MSignature */;
604 val* var8 /* : Array[RuntimeVariable] */;
605 val* var_res /* var res: Array[RuntimeVariable] */;
606 long var9 /* : Int */;
607 short int var10 /* : Bool */;
608 short int var12 /* : Bool */;
609 short int var13 /* : Bool */;
610 short int var14 /* : Bool */;
611 val* var_other /* var other: nullable Object */;
612 short int var16 /* : Bool */;
613 short int var18 /* : Bool */;
614 long var19 /* : Int */;
615 long var20 /* : Int */;
616 short int var21 /* : Bool */;
617 short int var23 /* : Bool */;
618 val* var_ /* var : SequenceRead[AExpr] */;
619 val* var24 /* : Iterator[nullable Object] */;
620 val* var_25 /* var : IndexedIterator[AExpr] */;
621 short int var26 /* : Bool */;
622 val* var27 /* : nullable Object */;
623 val* var_ne /* var ne: AExpr */;
624 val* var28 /* : RuntimeVariable */;
625 val* var29 /* : Array[RuntimeVariable] */;
626 long var30 /* : Int */;
627 val* var_exprs /* var exprs: Array[RuntimeVariable] */;
628 val* var_31 /* var : SequenceRead[AExpr] */;
629 val* var32 /* : Iterator[nullable Object] */;
630 val* var_33 /* var : IndexedIterator[AExpr] */;
631 short int var34 /* : Bool */;
632 val* var36 /* : nullable Object */;
633 val* var_ne37 /* var ne: AExpr */;
634 val* var38 /* : RuntimeVariable */;
635 long var_i /* var i: Int */;
636 long var39 /* : Int */;
637 long var_40 /* var : Int */;
638 short int var41 /* : Bool */;
639 short int var43 /* : Bool */;
640 int cltype;
641 int idtype;
642 const char* var_class_name;
643 short int var44 /* : Bool */;
644 val* var46 /* : Array[MParameter] */;
645 val* var48 /* : Array[MParameter] */;
646 val* var49 /* : nullable Object */;
647 val* var_param /* var param: MParameter */;
648 val* var50 /* : ArrayMap[Int, Int] */;
649 val* var52 /* : ArrayMap[Int, Int] */;
650 val* var53 /* : nullable Object */;
651 val* var54 /* : nullable Object */;
652 val* var_j /* var j: nullable Int */;
653 short int var55 /* : Bool */;
654 short int var56 /* : Bool */;
655 short int var58 /* : Bool */;
656 val* var59 /* : RuntimeVariable */;
657 short int var61 /* : Bool */;
658 short int var62 /* : Bool */;
659 short int var64 /* : Bool */;
660 short int var_65 /* var : Bool */;
661 val* var66 /* : nullable Object */;
662 long var67 /* : Int */;
663 long var69 /* : Int */;
664 short int var70 /* : Bool */;
665 short int var72 /* : Bool */;
666 int cltype73;
667 int idtype74;
668 const char* var_class_name75;
669 short int var76 /* : Bool */;
670 val* var77 /* : nullable Object */;
671 long var78 /* : Int */;
672 long var80 /* : Int */;
673 val* var81 /* : Array[nullable Object] */;
674 long var82 /* : Int */;
675 val* var_vararg /* var vararg: Array[RuntimeVariable] */;
676 val* var83 /* : MType */;
677 val* var85 /* : MType */;
678 val* var_elttype /* var elttype: MType */;
679 val* var86 /* : RuntimeVariable */;
680 val* var_arg /* var arg: RuntimeVariable */;
681 val* var87 /* : nullable Object */;
682 long var88 /* : Int */;
683 long var89 /* : Int */;
684 var_mpropdef = p0;
685 var_map = p1;
686 var_recv = p2;
687 var_args = p3;
688 {
689 { /* Inline model$MMethodDef$new_msignature (var_mpropdef) on <var_mpropdef:MMethodDef> */
690 var4 = var_mpropdef->attrs[COLOR_nitc__model__MMethodDef___new_msignature].val; /* _new_msignature on <var_mpropdef:MMethodDef> */
691 var2 = var4;
692 RET_LABEL3:(void)0;
693 }
694 }
695 if (var2!=NULL) {
696 var1 = var2;
697 } else {
698 {
699 { /* Inline model$MMethodDef$msignature (var_mpropdef) on <var_mpropdef:MMethodDef> */
700 var7 = var_mpropdef->attrs[COLOR_nitc__model__MMethodDef___msignature].val; /* _msignature on <var_mpropdef:MMethodDef> */
701 var5 = var7;
702 RET_LABEL6:(void)0;
703 }
704 }
705 if (unlikely(var5 == NULL)) {
706 if(catchStack.cursor >= 0){
707 longjmp(catchStack.envs[catchStack.cursor], 1);
708 }
709 PRINT_ERROR("Runtime error: %s", "Cast failed");
710 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 1299);
711 fatal_exit(1);
712 }
713 var1 = var5;
714 }
715 var_msignature = var1;
716 var8 = NEW_core__Array(&type_core__Array__nitc__RuntimeVariable);
717 {
718 core___core__Array___core__kernel__Object__init(var8); /* Direct call array$Array$init on <var8:Array[RuntimeVariable]>*/
719 }
720 var_res = var8;
721 {
722 core___core__Array___core__abstract_collection__SimpleCollection__add(var_res, var_recv); /* Direct call array$Array$add on <var_res:Array[RuntimeVariable]>*/
723 }
724 {
725 var9 = nitc___nitc__MSignature___arity(var_msignature);
726 }
727 {
728 { /* Inline kernel$Int$== (var9,0l) on <var9:Int> */
729 var12 = var9 == 0l;
730 var10 = var12;
731 goto RET_LABEL11;
732 RET_LABEL11:(void)0;
733 }
734 }
735 if (var10){
736 var = var_res;
737 goto RET_LABEL;
738 } else {
739 }
740 if (var_map == NULL) {
741 var13 = 1; /* is null */
742 } else {
743 var13 = 0; /* arg is null but recv is not */
744 }
745 if (0) {
746 { /* Inline kernel$Object$== (var_map,((val*)NULL)) on <var_map:nullable SignatureMap> */
747 var_other = ((val*)NULL);
748 {
749 { /* Inline kernel$Object$is_same_instance (var_map,var_other) on <var_map:nullable SignatureMap(SignatureMap)> */
750 var18 = var_map == var_other;
751 var16 = var18;
752 goto RET_LABEL17;
753 RET_LABEL17:(void)0;
754 }
755 }
756 var14 = var16;
757 goto RET_LABEL15;
758 RET_LABEL15:(void)0;
759 }
760 var13 = var14;
761 }
762 if (var13){
763 {
764 var19 = ((long(*)(val* self))((((long)var_args&3)?class_info[((long)var_args&3)]:var_args->class)->vft[COLOR_core__abstract_collection__Collection__length]))(var_args); /* length on <var_args:SequenceRead[AExpr]>*/
765 }
766 {
767 var20 = nitc___nitc__MSignature___arity(var_msignature);
768 }
769 {
770 { /* Inline kernel$Int$== (var19,var20) on <var19:Int> */
771 var23 = var19 == var20;
772 var21 = var23;
773 goto RET_LABEL22;
774 RET_LABEL22:(void)0;
775 }
776 }
777 if (unlikely(!var21)) {
778 if(catchStack.cursor >= 0){
779 longjmp(catchStack.envs[catchStack.cursor], 1);
780 }
781 PRINT_ERROR("Runtime error: %s", "Assert failed");
782 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 1306);
783 fatal_exit(1);
784 }
785 var_ = var_args;
786 {
787 var24 = ((val*(*)(val* self))((((long)var_&3)?class_info[((long)var_&3)]:var_->class)->vft[COLOR_core__abstract_collection__Collection__iterator]))(var_); /* iterator on <var_:SequenceRead[AExpr]>*/
788 }
789 var_25 = var24;
790 for(;;) {
791 {
792 var26 = ((short int(*)(val* self))((((long)var_25&3)?class_info[((long)var_25&3)]:var_25->class)->vft[COLOR_core__abstract_collection__Iterator__is_ok]))(var_25); /* is_ok on <var_25:IndexedIterator[AExpr]>*/
793 }
794 if (var26){
795 } else {
796 goto BREAK_label;
797 }
798 {
799 var27 = ((val*(*)(val* self))((((long)var_25&3)?class_info[((long)var_25&3)]:var_25->class)->vft[COLOR_core__abstract_collection__Iterator__item]))(var_25); /* item on <var_25:IndexedIterator[AExpr]>*/
800 }
801 var_ne = var27;
802 {
803 var28 = nitc___nitc__AbstractCompilerVisitor___expr(self, var_ne, ((val*)NULL));
804 }
805 {
806 core___core__Array___core__abstract_collection__SimpleCollection__add(var_res, var28); /* Direct call array$Array$add on <var_res:Array[RuntimeVariable]>*/
807 }
808 {
809 ((void(*)(val* self))((((long)var_25&3)?class_info[((long)var_25&3)]:var_25->class)->vft[COLOR_core__abstract_collection__Iterator__next]))(var_25); /* next on <var_25:IndexedIterator[AExpr]>*/
810 }
811 }
812 BREAK_label: (void)0;
813 {
814 ((void(*)(val* self))((((long)var_25&3)?class_info[((long)var_25&3)]:var_25->class)->vft[COLOR_core__abstract_collection__Iterator__finish]))(var_25); /* finish on <var_25:IndexedIterator[AExpr]>*/
815 }
816 var = var_res;
817 goto RET_LABEL;
818 } else {
819 }
820 var29 = NEW_core__Array(&type_core__Array__nitc__RuntimeVariable);
821 {
822 var30 = ((long(*)(val* self))((((long)var_args&3)?class_info[((long)var_args&3)]:var_args->class)->vft[COLOR_core__abstract_collection__Collection__length]))(var_args); /* length on <var_args:SequenceRead[AExpr]>*/
823 }
824 {
825 core___core__Array___with_capacity(var29, var30); /* Direct call array$Array$with_capacity on <var29:Array[RuntimeVariable]>*/
826 }
827 var_exprs = var29;
828 var_31 = var_args;
829 {
830 var32 = ((val*(*)(val* self))((((long)var_31&3)?class_info[((long)var_31&3)]:var_31->class)->vft[COLOR_core__abstract_collection__Collection__iterator]))(var_31); /* iterator on <var_31:SequenceRead[AExpr]>*/
831 }
832 var_33 = var32;
833 for(;;) {
834 {
835 var34 = ((short int(*)(val* self))((((long)var_33&3)?class_info[((long)var_33&3)]:var_33->class)->vft[COLOR_core__abstract_collection__Iterator__is_ok]))(var_33); /* is_ok on <var_33:IndexedIterator[AExpr]>*/
836 }
837 if (var34){
838 } else {
839 goto BREAK_label35;
840 }
841 {
842 var36 = ((val*(*)(val* self))((((long)var_33&3)?class_info[((long)var_33&3)]:var_33->class)->vft[COLOR_core__abstract_collection__Iterator__item]))(var_33); /* item on <var_33:IndexedIterator[AExpr]>*/
843 }
844 var_ne37 = var36;
845 {
846 var38 = nitc___nitc__AbstractCompilerVisitor___expr(self, var_ne37, ((val*)NULL));
847 }
848 {
849 core___core__Array___core__abstract_collection__SimpleCollection__add(var_exprs, var38); /* Direct call array$Array$add on <var_exprs:Array[RuntimeVariable]>*/
850 }
851 {
852 ((void(*)(val* self))((((long)var_33&3)?class_info[((long)var_33&3)]:var_33->class)->vft[COLOR_core__abstract_collection__Iterator__next]))(var_33); /* next on <var_33:IndexedIterator[AExpr]>*/
853 }
854 }
855 BREAK_label35: (void)0;
856 {
857 ((void(*)(val* self))((((long)var_33&3)?class_info[((long)var_33&3)]:var_33->class)->vft[COLOR_core__abstract_collection__Iterator__finish]))(var_33); /* finish on <var_33:IndexedIterator[AExpr]>*/
858 }
859 var_i = 0l;
860 {
861 var39 = nitc___nitc__MSignature___arity(var_msignature);
862 }
863 var_40 = var39;
864 for(;;) {
865 {
866 { /* Inline kernel$Int$< (var_i,var_40) on <var_i:Int> */
867 /* Covariant cast for argument 0 (i) <var_40:Int> isa OTHER */
868 /* <var_40:Int> isa OTHER */
869 var43 = 1; /* easy <var_40:Int> isa OTHER*/
870 if (unlikely(!var43)) {
871 var_class_name = type_core__Int.name;
872 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
873 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 725);
874 fatal_exit(1);
875 }
876 var44 = var_i < var_40;
877 var41 = var44;
878 goto RET_LABEL42;
879 RET_LABEL42:(void)0;
880 }
881 }
882 if (var41){
883 } else {
884 goto BREAK_label45;
885 }
886 {
887 { /* Inline model$MSignature$mparameters (var_msignature) on <var_msignature:MSignature> */
888 var48 = var_msignature->attrs[COLOR_nitc__model__MSignature___mparameters].val; /* _mparameters on <var_msignature:MSignature> */
889 if (unlikely(var48 == NULL)) {
890 if(catchStack.cursor >= 0){
891 longjmp(catchStack.envs[catchStack.cursor], 1);
892 }
893 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mparameters");
894 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1879);
895 fatal_exit(1);
896 }
897 var46 = var48;
898 RET_LABEL47:(void)0;
899 }
900 }
901 {
902 var49 = core___core__Array___core__abstract_collection__SequenceRead___91d_93d(var46, var_i);
903 }
904 var_param = var49;
905 {
906 { /* Inline typing$SignatureMap$map (var_map) on <var_map:nullable SignatureMap(SignatureMap)> */
907 var52 = var_map->attrs[COLOR_nitc__typing__SignatureMap___map].val; /* _map on <var_map:nullable SignatureMap(SignatureMap)> */
908 if (unlikely(var52 == NULL)) {
909 if(catchStack.cursor >= 0){
910 longjmp(catchStack.envs[catchStack.cursor], 1);
911 }
912 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _map");
913 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__typing, 632);
914 fatal_exit(1);
915 }
916 var50 = var52;
917 RET_LABEL51:(void)0;
918 }
919 }
920 {
921 var54 = (val*)(var_i<<2|1);
922 var53 = core___core__MapRead___get_or_null(var50, var54);
923 }
924 var_j = var53;
925 if (var_j == NULL) {
926 var55 = 1; /* is null */
927 } else {
928 var55 = 0; /* arg is null but recv is not */
929 }
930 if (0) {
931 { /* Inline kernel$Int$== (var_j,((val*)NULL)) on <var_j:nullable Int> */
932 var58 = 0; /* incompatible types Int vs. null; cannot be NULL */
933 var56 = var58;
934 goto RET_LABEL57;
935 RET_LABEL57:(void)0;
936 }
937 var55 = var56;
938 }
939 if (var55){
940 {
941 var59 = nitc___nitc__AbstractCompilerVisitor___null_instance(self);
942 }
943 {
944 core___core__Array___core__abstract_collection__SimpleCollection__add(var_res, var59); /* Direct call array$Array$add on <var_res:Array[RuntimeVariable]>*/
945 }
946 goto BREAK_label60;
947 } else {
948 }
949 {
950 { /* Inline model$MParameter$is_vararg (var_param) on <var_param:MParameter> */
951 var64 = var_param->attrs[COLOR_nitc__model__MParameter___is_vararg].s; /* _is_vararg on <var_param:MParameter> */
952 var62 = var64;
953 RET_LABEL63:(void)0;
954 }
955 }
956 var_65 = var62;
957 if (var62){
958 {
959 var66 = ((val*(*)(val* self, long p0))((((long)var_args&3)?class_info[((long)var_args&3)]:var_args->class)->vft[COLOR_core__abstract_collection__SequenceRead___91d_93d]))(var_args, var_i); /* [] on <var_args:SequenceRead[AExpr]>*/
960 }
961 {
962 { /* Inline typing$AExpr$vararg_decl (var66) on <var66:nullable Object(AExpr)> */
963 var69 = var66->attrs[COLOR_nitc__typing__AExpr___vararg_decl].l; /* _vararg_decl on <var66:nullable Object(AExpr)> */
964 var67 = var69;
965 RET_LABEL68:(void)0;
966 }
967 }
968 {
969 { /* Inline kernel$Int$> (var67,0l) on <var67:Int> */
970 /* Covariant cast for argument 0 (i) <0l:Int> isa OTHER */
971 /* <0l:Int> isa OTHER */
972 var72 = 1; /* easy <0l:Int> isa OTHER*/
973 if (unlikely(!var72)) {
974 var_class_name75 = type_core__Int.name;
975 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name75);
976 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 727);
977 fatal_exit(1);
978 }
979 var76 = var67 > 0l;
980 var70 = var76;
981 goto RET_LABEL71;
982 RET_LABEL71:(void)0;
983 }
984 }
985 var61 = var70;
986 } else {
987 var61 = var_65;
988 }
989 if (var61){
990 {
991 var77 = ((val*(*)(val* self, long p0))((((long)var_args&3)?class_info[((long)var_args&3)]:var_args->class)->vft[COLOR_core__abstract_collection__SequenceRead___91d_93d]))(var_args, var_i); /* [] on <var_args:SequenceRead[AExpr]>*/
992 }
993 {
994 { /* Inline typing$AExpr$vararg_decl (var77) on <var77:nullable Object(AExpr)> */
995 var80 = var77->attrs[COLOR_nitc__typing__AExpr___vararg_decl].l; /* _vararg_decl on <var77:nullable Object(AExpr)> */
996 var78 = var80;
997 RET_LABEL79:(void)0;
998 }
999 }
1000 {
1001 var82 = (long)(var_j)>>2;
1002 var81 = core___core__AbstractArrayRead___sub(var_exprs, var82, var78);
1003 }
1004 var_vararg = var81;
1005 {
1006 { /* Inline model$MParameter$mtype (var_param) on <var_param:MParameter> */
1007 var85 = var_param->attrs[COLOR_nitc__model__MParameter___mtype].val; /* _mtype on <var_param:MParameter> */
1008 if (unlikely(var85 == NULL)) {
1009 if(catchStack.cursor >= 0){
1010 longjmp(catchStack.envs[catchStack.cursor], 1);
1011 }
1012 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
1013 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1996);
1014 fatal_exit(1);
1015 }
1016 var83 = var85;
1017 RET_LABEL84:(void)0;
1018 }
1019 }
1020 var_elttype = var83;
1021 {
1022 var86 = nitc___nitc__SeparateCompilerVisitor___nitc__abstract_compiler__AbstractCompilerVisitor__vararg_instance(self, var_mpropdef, var_recv, var_vararg, var_elttype);
1023 }
1024 var_arg = var86;
1025 {
1026 core___core__Array___core__abstract_collection__SimpleCollection__add(var_res, var_arg); /* Direct call array$Array$add on <var_res:Array[RuntimeVariable]>*/
1027 }
1028 goto BREAK_label60;
1029 } else {
1030 }
1031 {
1032 var88 = (long)(var_j)>>2;
1033 var87 = core___core__Array___core__abstract_collection__SequenceRead___91d_93d(var_exprs, var88);
1034 }
1035 {
1036 core___core__Array___core__abstract_collection__SimpleCollection__add(var_res, var87); /* Direct call array$Array$add on <var_res:Array[RuntimeVariable]>*/
1037 }
1038 BREAK_label60: (void)0;
1039 {
1040 var89 = core___core__Int___Discrete__successor(var_i, 1l);
1041 }
1042 var_i = var89;
1043 }
1044 BREAK_label45: (void)0;
1045 var = var_res;
1046 goto RET_LABEL;
1047 RET_LABEL:;
1048 return var;
1049 }
1050 /* method abstract_compiler$AbstractCompilerVisitor$anchor for (self: AbstractCompilerVisitor, MType): MType */
1051 val* nitc___nitc__AbstractCompilerVisitor___anchor(val* self, val* p0) {
1052 val* var /* : MType */;
1053 val* var_mtype /* var mtype: MType */;
1054 short int var1 /* : Bool */;
1055 short int var2 /* : Bool */;
1056 val* var3 /* : AbstractCompiler */;
1057 val* var5 /* : AbstractCompiler */;
1058 val* var6 /* : MModule */;
1059 val* var8 /* : MModule */;
1060 val* var9 /* : nullable StaticFrame */;
1061 val* var11 /* : nullable StaticFrame */;
1062 val* var12 /* : MClassType */;
1063 val* var14 /* : MClassType */;
1064 val* var15 /* : MType */;
1065 var_mtype = p0;
1066 {
1067 var1 = ((short int(*)(val* self))(var_mtype->class->vft[COLOR_nitc__model__MType__need_anchor]))(var_mtype); /* need_anchor on <var_mtype:MType>*/
1068 }
1069 var2 = !var1;
1070 if (var2){
1071 var = var_mtype;
1072 goto RET_LABEL;
1073 } else {
1074 }
1075 {
1076 { /* Inline abstract_compiler$AbstractCompilerVisitor$compiler (self) on <self:AbstractCompilerVisitor> */
1077 var5 = self->attrs[COLOR_nitc__abstract_compiler__AbstractCompilerVisitor___compiler].val; /* _compiler on <self:AbstractCompilerVisitor> */
1078 if (unlikely(var5 == NULL)) {
1079 if(catchStack.cursor >= 0){
1080 longjmp(catchStack.envs[catchStack.cursor], 1);
1081 }
1082 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _compiler");
1083 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 1214);
1084 fatal_exit(1);
1085 }
1086 var3 = var5;
1087 RET_LABEL4:(void)0;
1088 }
1089 }
1090 {
1091 { /* Inline abstract_compiler$AbstractCompiler$mainmodule (var3) on <var3:AbstractCompiler> */
1092 var8 = var3->attrs[COLOR_nitc__abstract_compiler__AbstractCompiler___mainmodule].val; /* _mainmodule on <var3:AbstractCompiler> */
1093 if (unlikely(var8 == NULL)) {
1094 if(catchStack.cursor >= 0){
1095 longjmp(catchStack.envs[catchStack.cursor], 1);
1096 }
1097 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule");
1098 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 545);
1099 fatal_exit(1);
1100 }
1101 var6 = var8;
1102 RET_LABEL7:(void)0;
1103 }
1104 }
1105 {
1106 { /* Inline abstract_compiler$AbstractCompilerVisitor$frame (self) on <self:AbstractCompilerVisitor> */
1107 var11 = self->attrs[COLOR_nitc__abstract_compiler__AbstractCompilerVisitor___frame].val; /* _frame on <self:AbstractCompilerVisitor> */
1108 var9 = var11;
1109 RET_LABEL10:(void)0;
1110 }
1111 }
1112 if (var9 == NULL) {
1113 if(catchStack.cursor >= 0){
1114 longjmp(catchStack.envs[catchStack.cursor], 1);
1115 }
1116 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1117 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 1346);
1118 fatal_exit(1);
1119 } else {
1120 { /* Inline abstract_compiler$StaticFrame$receiver (var9) on <var9:nullable StaticFrame> */
1121 if (unlikely(var9 == NULL)) {
1122 if(catchStack.cursor >= 0){
1123 longjmp(catchStack.envs[catchStack.cursor], 1);
1124 }
1125 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1126 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 2031);
1127 fatal_exit(1);
1128 }
1129 var14 = var9->attrs[COLOR_nitc__abstract_compiler__StaticFrame___receiver].val; /* _receiver on <var9:nullable StaticFrame> */
1130 if (unlikely(var14 == NULL)) {
1131 if(catchStack.cursor >= 0){
1132 longjmp(catchStack.envs[catchStack.cursor], 1);
1133 }
1134 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _receiver");
1135 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 2031);
1136 fatal_exit(1);
1137 }
1138 var12 = var14;
1139 RET_LABEL13:(void)0;
1140 }
1141 }
1142 {
1143 var15 = ((val*(*)(val* self, val* p0, val* p1))(var_mtype->class->vft[COLOR_nitc__model__MType__anchor_to]))(var_mtype, var6, var12); /* anchor_to on <var_mtype:MType>*/
1144 }
1145 var = var15;
1146 goto RET_LABEL;
1147 RET_LABEL:;
1148 return var;
1149 }
1150 /* method abstract_compiler$AbstractCompilerVisitor$resolve_for for (self: AbstractCompilerVisitor, MType, RuntimeVariable): MType */
1151 val* nitc___nitc__AbstractCompilerVisitor___resolve_for(val* self, val* p0, val* p1) {
1152 val* var /* : MType */;
1153 val* var_mtype /* var mtype: MType */;
1154 val* var_recv /* var recv: RuntimeVariable */;
1155 short int var1 /* : Bool */;
1156 short int var2 /* : Bool */;
1157 val* var3 /* : MType */;
1158 val* var5 /* : MType */;
1159 val* var6 /* : nullable StaticFrame */;
1160 val* var8 /* : nullable StaticFrame */;
1161 val* var9 /* : MClassType */;
1162 val* var11 /* : MClassType */;
1163 val* var12 /* : AbstractCompiler */;
1164 val* var14 /* : AbstractCompiler */;
1165 val* var15 /* : MModule */;
1166 val* var17 /* : MModule */;
1167 val* var18 /* : MType */;
1168 var_mtype = p0;
1169 var_recv = p1;
1170 {
1171 var1 = ((short int(*)(val* self))(var_mtype->class->vft[COLOR_nitc__model__MType__need_anchor]))(var_mtype); /* need_anchor on <var_mtype:MType>*/
1172 }
1173 var2 = !var1;
1174 if (var2){
1175 var = var_mtype;
1176 goto RET_LABEL;
1177 } else {
1178 }
1179 {
1180 { /* Inline abstract_compiler$RuntimeVariable$mcasttype (var_recv) on <var_recv:RuntimeVariable> */
1181 var5 = var_recv->attrs[COLOR_nitc__abstract_compiler__RuntimeVariable___mcasttype].val; /* _mcasttype on <var_recv:RuntimeVariable> */
1182 if (unlikely(var5 == NULL)) {
1183 if(catchStack.cursor >= 0){
1184 longjmp(catchStack.envs[catchStack.cursor], 1);
1185 }
1186 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mcasttype");
1187 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 1986);
1188 fatal_exit(1);
1189 }
1190 var3 = var5;
1191 RET_LABEL4:(void)0;
1192 }
1193 }
1194 {
1195 { /* Inline abstract_compiler$AbstractCompilerVisitor$frame (self) on <self:AbstractCompilerVisitor> */
1196 var8 = self->attrs[COLOR_nitc__abstract_compiler__AbstractCompilerVisitor___frame].val; /* _frame on <self:AbstractCompilerVisitor> */
1197 var6 = var8;
1198 RET_LABEL7:(void)0;
1199 }
1200 }
1201 if (var6 == NULL) {
1202 if(catchStack.cursor >= 0){
1203 longjmp(catchStack.envs[catchStack.cursor], 1);
1204 }
1205 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1206 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 1352);
1207 fatal_exit(1);
1208 } else {
1209 { /* Inline abstract_compiler$StaticFrame$receiver (var6) on <var6:nullable StaticFrame> */
1210 if (unlikely(var6 == NULL)) {
1211 if(catchStack.cursor >= 0){
1212 longjmp(catchStack.envs[catchStack.cursor], 1);
1213 }
1214 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1215 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 2031);
1216 fatal_exit(1);
1217 }
1218 var11 = var6->attrs[COLOR_nitc__abstract_compiler__StaticFrame___receiver].val; /* _receiver on <var6:nullable StaticFrame> */
1219 if (unlikely(var11 == NULL)) {
1220 if(catchStack.cursor >= 0){
1221 longjmp(catchStack.envs[catchStack.cursor], 1);
1222 }
1223 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _receiver");
1224 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 2031);
1225 fatal_exit(1);
1226 }
1227 var9 = var11;
1228 RET_LABEL10:(void)0;
1229 }
1230 }
1231 {
1232 { /* Inline abstract_compiler$AbstractCompilerVisitor$compiler (self) on <self:AbstractCompilerVisitor> */
1233 var14 = self->attrs[COLOR_nitc__abstract_compiler__AbstractCompilerVisitor___compiler].val; /* _compiler on <self:AbstractCompilerVisitor> */
1234 if (unlikely(var14 == NULL)) {
1235 if(catchStack.cursor >= 0){
1236 longjmp(catchStack.envs[catchStack.cursor], 1);
1237 }
1238 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _compiler");
1239 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 1214);
1240 fatal_exit(1);
1241 }
1242 var12 = var14;
1243 RET_LABEL13:(void)0;
1244 }
1245 }
1246 {
1247 { /* Inline abstract_compiler$AbstractCompiler$mainmodule (var12) on <var12:AbstractCompiler> */
1248 var17 = var12->attrs[COLOR_nitc__abstract_compiler__AbstractCompiler___mainmodule].val; /* _mainmodule on <var12:AbstractCompiler> */
1249 if (unlikely(var17 == NULL)) {
1250 if(catchStack.cursor >= 0){
1251 longjmp(catchStack.envs[catchStack.cursor], 1);
1252 }
1253 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule");
1254 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 545);
1255 fatal_exit(1);
1256 }
1257 var15 = var17;
1258 RET_LABEL16:(void)0;
1259 }
1260 }
1261 {
1262 var18 = ((val*(*)(val* self, val* p0, val* p1, val* p2, short int p3))(var_mtype->class->vft[COLOR_nitc__model__MType__resolve_for]))(var_mtype, var3, var9, var15, 1); /* resolve_for on <var_mtype:MType>*/
1263 }
1264 var = var18;
1265 goto RET_LABEL;
1266 RET_LABEL:;
1267 return var;
1268 }
1269 /* method abstract_compiler$AbstractCompilerVisitor$autoadapt for (self: AbstractCompilerVisitor, RuntimeVariable, MType): RuntimeVariable */
1270 val* nitc___nitc__AbstractCompilerVisitor___autoadapt(val* self, val* p0, val* p1) {
1271 val* var /* : RuntimeVariable */;
1272 val* var_value /* var value: RuntimeVariable */;
1273 val* var_mtype /* var mtype: MType */;
1274 val* var1 /* : MType */;
1275 val* var2 /* : MType */;
1276 val* var4 /* : MType */;
1277 val* var_valmtype /* var valmtype: MType */;
1278 val* var5 /* : AbstractCompiler */;
1279 val* var7 /* : AbstractCompiler */;
1280 val* var8 /* : MModule */;
1281 val* var10 /* : MModule */;
1282 short int var11 /* : Bool */;
1283 short int var12 /* : Bool */;
1284 short int var13 /* : Bool */;
1285 int cltype;
1286 int idtype;
1287 short int var_ /* var : Bool */;
1288 val* var14 /* : MType */;
1289 val* var16 /* : MType */;
1290 val* var17 /* : AbstractCompiler */;
1291 val* var19 /* : AbstractCompiler */;
1292 val* var20 /* : MModule */;
1293 val* var22 /* : MModule */;
1294 short int var23 /* : Bool */;
1295 val* var24 /* : MType */;
1296 val* var26 /* : MType */;
1297 val* var27 /* : RuntimeVariable */;
1298 val* var28 /* : String */;
1299 val* var30 /* : String */;
1300 val* var31 /* : MType */;
1301 val* var33 /* : MType */;
1302 val* var_res /* var res: RuntimeVariable */;
1303 var_value = p0;
1304 var_mtype = p1;
1305 {
1306 var1 = nitc___nitc__AbstractCompilerVisitor___anchor(self, var_mtype);
1307 }
1308 var_mtype = var1;
1309 {
1310 { /* Inline abstract_compiler$RuntimeVariable$mcasttype (var_value) on <var_value:RuntimeVariable> */
1311 var4 = var_value->attrs[COLOR_nitc__abstract_compiler__RuntimeVariable___mcasttype].val; /* _mcasttype on <var_value:RuntimeVariable> */
1312 if (unlikely(var4 == NULL)) {
1313 if(catchStack.cursor >= 0){
1314 longjmp(catchStack.envs[catchStack.cursor], 1);
1315 }
1316 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mcasttype");
1317 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 1986);
1318 fatal_exit(1);
1319 }
1320 var2 = var4;
1321 RET_LABEL3:(void)0;
1322 }
1323 }
1324 var_valmtype = var2;
1325 {
1326 { /* Inline abstract_compiler$AbstractCompilerVisitor$compiler (self) on <self:AbstractCompilerVisitor> */
1327 var7 = self->attrs[COLOR_nitc__abstract_compiler__AbstractCompilerVisitor___compiler].val; /* _compiler on <self:AbstractCompilerVisitor> */
1328 if (unlikely(var7 == NULL)) {
1329 if(catchStack.cursor >= 0){
1330 longjmp(catchStack.envs[catchStack.cursor], 1);
1331 }
1332 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _compiler");
1333 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 1214);
1334 fatal_exit(1);
1335 }
1336 var5 = var7;
1337 RET_LABEL6:(void)0;
1338 }
1339 }
1340 {
1341 { /* Inline abstract_compiler$AbstractCompiler$mainmodule (var5) on <var5:AbstractCompiler> */
1342 var10 = var5->attrs[COLOR_nitc__abstract_compiler__AbstractCompiler___mainmodule].val; /* _mainmodule on <var5:AbstractCompiler> */
1343 if (unlikely(var10 == NULL)) {
1344 if(catchStack.cursor >= 0){
1345 longjmp(catchStack.envs[catchStack.cursor], 1);
1346 }
1347 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule");
1348 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 545);
1349 fatal_exit(1);
1350 }
1351 var8 = var10;
1352 RET_LABEL9:(void)0;
1353 }
1354 }
1355 {
1356 var11 = nitc___nitc__MType___is_subtype(var_valmtype, var8, ((val*)NULL), var_mtype);
1357 }
1358 if (var11){
1359 var = var_value;
1360 goto RET_LABEL;
1361 } else {
1362 }
1363 /* <var_valmtype:MType> isa MNullableType */
1364 cltype = type_nitc__MNullableType.color;
1365 idtype = type_nitc__MNullableType.id;
1366 if(cltype >= var_valmtype->type->table_size) {
1367 var13 = 0;
1368 } else {
1369 var13 = var_valmtype->type->type_table[cltype] == idtype;
1370 }
1371 var_ = var13;
1372 if (var13){
1373 {
1374 { /* Inline model$MProxyType$mtype (var_valmtype) on <var_valmtype:MType(MNullableType)> */
1375 var16 = var_valmtype->attrs[COLOR_nitc__model__MProxyType___mtype].val; /* _mtype on <var_valmtype:MType(MNullableType)> */
1376 if (unlikely(var16 == NULL)) {
1377 if(catchStack.cursor >= 0){
1378 longjmp(catchStack.envs[catchStack.cursor], 1);
1379 }
1380 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
1381 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1689);
1382 fatal_exit(1);
1383 }
1384 var14 = var16;
1385 RET_LABEL15:(void)0;
1386 }
1387 }
1388 {
1389 { /* Inline abstract_compiler$AbstractCompilerVisitor$compiler (self) on <self:AbstractCompilerVisitor> */
1390 var19 = self->attrs[COLOR_nitc__abstract_compiler__AbstractCompilerVisitor___compiler].val; /* _compiler on <self:AbstractCompilerVisitor> */
1391 if (unlikely(var19 == NULL)) {
1392 if(catchStack.cursor >= 0){
1393 longjmp(catchStack.envs[catchStack.cursor], 1);
1394 }
1395 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _compiler");
1396 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 1214);
1397 fatal_exit(1);
1398 }
1399 var17 = var19;
1400 RET_LABEL18:(void)0;
1401 }
1402 }
1403 {
1404 { /* Inline abstract_compiler$AbstractCompiler$mainmodule (var17) on <var17:AbstractCompiler> */
1405 var22 = var17->attrs[COLOR_nitc__abstract_compiler__AbstractCompiler___mainmodule].val; /* _mainmodule on <var17:AbstractCompiler> */
1406 if (unlikely(var22 == NULL)) {
1407 if(catchStack.cursor >= 0){
1408 longjmp(catchStack.envs[catchStack.cursor], 1);
1409 }
1410 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule");
1411 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 545);
1412 fatal_exit(1);
1413 }
1414 var20 = var22;
1415 RET_LABEL21:(void)0;
1416 }
1417 }
1418 {
1419 var23 = nitc___nitc__MType___is_subtype(var14, var20, ((val*)NULL), var_mtype);
1420 }
1421 var12 = var23;
1422 } else {
1423 var12 = var_;
1424 }
1425 if (var12){
1426 {
1427 { /* Inline model$MProxyType$mtype (var_valmtype) on <var_valmtype:MType(MNullableType)> */
1428 var26 = var_valmtype->attrs[COLOR_nitc__model__MProxyType___mtype].val; /* _mtype on <var_valmtype:MType(MNullableType)> */
1429 if (unlikely(var26 == NULL)) {
1430 if(catchStack.cursor >= 0){
1431 longjmp(catchStack.envs[catchStack.cursor], 1);
1432 }
1433 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
1434 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1689);
1435 fatal_exit(1);
1436 }
1437 var24 = var26;
1438 RET_LABEL25:(void)0;
1439 }
1440 }
1441 var_mtype = var24;
1442 } else {
1443 }
1444 var27 = NEW_nitc__RuntimeVariable(&type_nitc__RuntimeVariable);
1445 {
1446 { /* Inline abstract_compiler$RuntimeVariable$name (var_value) on <var_value:RuntimeVariable> */
1447 var30 = var_value->attrs[COLOR_nitc__abstract_compiler__RuntimeVariable___name].val; /* _name on <var_value:RuntimeVariable> */
1448 if (unlikely(var30 == NULL)) {
1449 if(catchStack.cursor >= 0){
1450 longjmp(catchStack.envs[catchStack.cursor], 1);
1451 }
1452 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
1453 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 1980);
1454 fatal_exit(1);
1455 }
1456 var28 = var30;
1457 RET_LABEL29:(void)0;
1458 }
1459 }
1460 {
1461 { /* Inline abstract_compiler$RuntimeVariable$mtype (var_value) on <var_value:RuntimeVariable> */
1462 var33 = var_value->attrs[COLOR_nitc__abstract_compiler__RuntimeVariable___mtype].val; /* _mtype on <var_value:RuntimeVariable> */
1463 if (unlikely(var33 == NULL)) {
1464 if(catchStack.cursor >= 0){
1465 longjmp(catchStack.envs[catchStack.cursor], 1);
1466 }
1467 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
1468 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 1983);
1469 fatal_exit(1);
1470 }
1471 var31 = var33;
1472 RET_LABEL32:(void)0;
1473 }
1474 }
1475 {
1476 ((void(*)(val* self, val* p0))(var27->class->vft[COLOR_nitc__abstract_compiler__RuntimeVariable__name_61d]))(var27, var28); /* name= on <var27:RuntimeVariable>*/
1477 }
1478 {
1479 ((void(*)(val* self, val* p0))(var27->class->vft[COLOR_nitc__abstract_compiler__RuntimeVariable__mtype_61d]))(var27, var31); /* mtype= on <var27:RuntimeVariable>*/
1480 }
1481 {
1482 ((void(*)(val* self, val* p0))(var27->class->vft[COLOR_nitc__abstract_compiler__RuntimeVariable__mcasttype_61d]))(var27, var_mtype); /* mcasttype= on <var27:RuntimeVariable>*/
1483 }
1484 {
1485 ((void(*)(val* self))(var27->class->vft[COLOR_core__kernel__Object__init]))(var27); /* init on <var27:RuntimeVariable>*/
1486 }
1487 var_res = var27;
1488 var = var_res;
1489 goto RET_LABEL;
1490 RET_LABEL:;
1491 return var;
1492 }
1493 /* method abstract_compiler$AbstractCompilerVisitor$monomorphic_send for (self: AbstractCompilerVisitor, MMethod, MType, Array[RuntimeVariable]): nullable RuntimeVariable */
1494 val* nitc___nitc__AbstractCompilerVisitor___monomorphic_send(val* self, val* p0, val* p1, val* p2) {
1495 val* var /* : nullable RuntimeVariable */;
1496 val* var_m /* var m: MMethod */;
1497 val* var_t /* var t: MType */;
1498 val* var_args /* var args: Array[RuntimeVariable] */;
1499 short int var1 /* : Bool */;
1500 int cltype;
1501 int idtype;
1502 val* var2 /* : AbstractCompiler */;
1503 val* var4 /* : AbstractCompiler */;
1504 val* var5 /* : MModule */;
1505 val* var7 /* : MModule */;
1506 val* var8 /* : MPropDef */;
1507 val* var_propdef /* var propdef: MMethodDef */;
1508 val* var9 /* : nullable RuntimeVariable */;
1509 var_m = p0;
1510 var_t = p1;
1511 var_args = p2;
1512 /* <var_t:MType> isa MClassType */
1513 cltype = type_nitc__MClassType.color;
1514 idtype = type_nitc__MClassType.id;
1515 if(cltype >= var_t->type->table_size) {
1516 var1 = 0;
1517 } else {
1518 var1 = var_t->type->type_table[cltype] == idtype;
1519 }
1520 if (unlikely(!var1)) {
1521 if(catchStack.cursor >= 0){
1522 longjmp(catchStack.envs[catchStack.cursor], 1);
1523 }
1524 PRINT_ERROR("Runtime error: %s", "Assert failed");
1525 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 1419);
1526 fatal_exit(1);
1527 }
1528 {
1529 { /* Inline abstract_compiler$AbstractCompilerVisitor$compiler (self) on <self:AbstractCompilerVisitor> */
1530 var4 = self->attrs[COLOR_nitc__abstract_compiler__AbstractCompilerVisitor___compiler].val; /* _compiler on <self:AbstractCompilerVisitor> */
1531 if (unlikely(var4 == NULL)) {
1532 if(catchStack.cursor >= 0){
1533 longjmp(catchStack.envs[catchStack.cursor], 1);
1534 }
1535 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _compiler");
1536 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 1214);
1537 fatal_exit(1);
1538 }
1539 var2 = var4;
1540 RET_LABEL3:(void)0;
1541 }
1542 }
1543 {
1544 { /* Inline abstract_compiler$AbstractCompiler$mainmodule (var2) on <var2:AbstractCompiler> */
1545 var7 = var2->attrs[COLOR_nitc__abstract_compiler__AbstractCompiler___mainmodule].val; /* _mainmodule on <var2:AbstractCompiler> */
1546 if (unlikely(var7 == NULL)) {
1547 if(catchStack.cursor >= 0){
1548 longjmp(catchStack.envs[catchStack.cursor], 1);
1549 }
1550 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule");
1551 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 545);
1552 fatal_exit(1);
1553 }
1554 var5 = var7;
1555 RET_LABEL6:(void)0;
1556 }
1557 }
1558 {
1559 var8 = nitc___nitc__MProperty___lookup_first_definition(var_m, var5, var_t);
1560 }
1561 var_propdef = var8;
1562 {
1563 var9 = nitc___nitc__SeparateCompilerVisitor___nitc__abstract_compiler__AbstractCompilerVisitor__call(self, var_propdef, var_t, var_args);
1564 }
1565 var = var9;
1566 goto RET_LABEL;
1567 RET_LABEL:;
1568 return var;
1569 }
1570 /* method abstract_compiler$AbstractCompilerVisitor$monomorphic_super_send for (self: AbstractCompilerVisitor, MMethodDef, MType, Array[RuntimeVariable]): nullable RuntimeVariable */
1571 val* nitc___nitc__AbstractCompilerVisitor___monomorphic_super_send(val* self, val* p0, val* p1, val* p2) {
1572 val* var /* : nullable RuntimeVariable */;
1573 val* var_m /* var m: MMethodDef */;
1574 val* var_t /* var t: MType */;
1575 val* var_args /* var args: Array[RuntimeVariable] */;
1576 short int var1 /* : Bool */;
1577 int cltype;
1578 int idtype;
1579 val* var2 /* : AbstractCompiler */;
1580 val* var4 /* : AbstractCompiler */;
1581 val* var5 /* : MModule */;
1582 val* var7 /* : MModule */;
1583 val* var8 /* : MPropDef */;
1584 val* var9 /* : nullable RuntimeVariable */;
1585 var_m = p0;
1586 var_t = p1;
1587 var_args = p2;
1588 /* <var_t:MType> isa MClassType */
1589 cltype = type_nitc__MClassType.color;
1590 idtype = type_nitc__MClassType.id;
1591 if(cltype >= var_t->type->table_size) {
1592 var1 = 0;
1593 } else {
1594 var1 = var_t->type->type_table[cltype] == idtype;
1595 }
1596 if (unlikely(!var1)) {
1597 if(catchStack.cursor >= 0){
1598 longjmp(catchStack.envs[catchStack.cursor], 1);
1599 }
1600 PRINT_ERROR("Runtime error: %s", "Assert failed");
1601 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 1427);
1602 fatal_exit(1);
1603 }
1604 {
1605 { /* Inline abstract_compiler$AbstractCompilerVisitor$compiler (self) on <self:AbstractCompilerVisitor> */
1606 var4 = self->attrs[COLOR_nitc__abstract_compiler__AbstractCompilerVisitor___compiler].val; /* _compiler on <self:AbstractCompilerVisitor> */
1607 if (unlikely(var4 == NULL)) {
1608 if(catchStack.cursor >= 0){
1609 longjmp(catchStack.envs[catchStack.cursor], 1);
1610 }
1611 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _compiler");
1612 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 1214);
1613 fatal_exit(1);
1614 }
1615 var2 = var4;
1616 RET_LABEL3:(void)0;
1617 }
1618 }
1619 {
1620 { /* Inline abstract_compiler$AbstractCompiler$mainmodule (var2) on <var2:AbstractCompiler> */
1621 var7 = var2->attrs[COLOR_nitc__abstract_compiler__AbstractCompiler___mainmodule].val; /* _mainmodule on <var2:AbstractCompiler> */
1622 if (unlikely(var7 == NULL)) {
1623 if(catchStack.cursor >= 0){
1624 longjmp(catchStack.envs[catchStack.cursor], 1);
1625 }
1626 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule");
1627 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 545);
1628 fatal_exit(1);
1629 }
1630 var5 = var7;
1631 RET_LABEL6:(void)0;
1632 }
1633 }
1634 {
1635 var8 = nitc___nitc__MPropDef___lookup_next_definition(var_m, var5, var_t);
1636 }
1637 var_m = var8;
1638 {
1639 var9 = nitc___nitc__SeparateCompilerVisitor___nitc__abstract_compiler__AbstractCompilerVisitor__call(self, var_m, var_t, var_args);
1640 }
1641 var = var9;
1642 goto RET_LABEL;
1643 RET_LABEL:;
1644 return var;
1645 }
1646 /* method abstract_compiler$AbstractCompilerVisitor$maybenull for (self: AbstractCompilerVisitor, RuntimeVariable): Bool */
1647 short int nitc___nitc__AbstractCompilerVisitor___maybenull(val* self, val* p0) {
1648 short int var /* : Bool */;
1649 val* var_value /* var value: RuntimeVariable */;
1650 short int var1 /* : Bool */;
1651 val* var2 /* : MType */;
1652 val* var4 /* : MType */;
1653 short int var5 /* : Bool */;
1654 int cltype;
1655 int idtype;
1656 short int var_ /* var : Bool */;
1657 val* var6 /* : MType */;
1658 val* var8 /* : MType */;
1659 short int var9 /* : Bool */;
1660 int cltype10;
1661 int idtype11;
1662 var_value = p0;
1663 {
1664 { /* Inline abstract_compiler$RuntimeVariable$mcasttype (var_value) on <var_value:RuntimeVariable> */
1665 var4 = var_value->attrs[COLOR_nitc__abstract_compiler__RuntimeVariable___mcasttype].val; /* _mcasttype on <var_value:RuntimeVariable> */
1666 if (unlikely(var4 == NULL)) {
1667 if(catchStack.cursor >= 0){
1668 longjmp(catchStack.envs[catchStack.cursor], 1);
1669 }
1670 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mcasttype");
1671 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 1986);
1672 fatal_exit(1);
1673 }
1674 var2 = var4;
1675 RET_LABEL3:(void)0;
1676 }
1677 }
1678 /* <var2:MType> isa MNullableType */
1679 cltype = type_nitc__MNullableType.color;
1680 idtype = type_nitc__MNullableType.id;
1681 if(cltype >= var2->type->table_size) {
1682 var5 = 0;
1683 } else {
1684 var5 = var2->type->type_table[cltype] == idtype;
1685 }
1686 var_ = var5;
1687 if (var5){
1688 var1 = var_;
1689 } else {
1690 {
1691 { /* Inline abstract_compiler$RuntimeVariable$mcasttype (var_value) on <var_value:RuntimeVariable> */
1692 var8 = var_value->attrs[COLOR_nitc__abstract_compiler__RuntimeVariable___mcasttype].val; /* _mcasttype on <var_value:RuntimeVariable> */
1693 if (unlikely(var8 == NULL)) {
1694 if(catchStack.cursor >= 0){
1695 longjmp(catchStack.envs[catchStack.cursor], 1);
1696 }
1697 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mcasttype");
1698 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 1986);
1699 fatal_exit(1);
1700 }
1701 var6 = var8;
1702 RET_LABEL7:(void)0;
1703 }
1704 }
1705 /* <var6:MType> isa MNullType */
1706 cltype10 = type_nitc__MNullType.color;
1707 idtype11 = type_nitc__MNullType.id;
1708 if(cltype10 >= var6->type->table_size) {
1709 var9 = 0;
1710 } else {
1711 var9 = var6->type->type_table[cltype10] == idtype11;
1712 }
1713 var1 = var9;
1714 }
1715 var = var1;
1716 goto RET_LABEL;
1717 RET_LABEL:;
1718 return var;
1719 }
1720 /* method abstract_compiler$AbstractCompilerVisitor$check_recv_notnull for (self: AbstractCompilerVisitor, RuntimeVariable) */
1721 void nitc___nitc__AbstractCompilerVisitor___check_recv_notnull(val* self, val* p0) {
1722 val* var_recv /* var recv: RuntimeVariable */;
1723 val* var /* : AbstractCompiler */;
1724 val* var2 /* : AbstractCompiler */;
1725 val* var3 /* : ModelBuilder */;
1726 val* var5 /* : ModelBuilder */;
1727 val* var6 /* : ToolContext */;
1728 val* var8 /* : ToolContext */;
1729 val* var9 /* : OptionBool */;
1730 val* var11 /* : OptionBool */;
1731 val* var12 /* : nullable Object */;
1732 val* var14 /* : nullable Object */;
1733 short int var15 /* : Bool */;
1734 short int var16 /* : Bool */;
1735 val* var17 /* : NativeArray[String] */;
1736 static val* varonce;
1737 static val* varonce18;
1738 val* var19 /* : String */;
1739 char* var20 /* : CString */;
1740 val* var21 /* : String */;
1741 val* var22 /* : nullable Int */;
1742 val* var23 /* : nullable Int */;
1743 val* var24 /* : nullable Bool */;
1744 val* var25 /* : nullable Bool */;
1745 static val* varonce26;
1746 val* var27 /* : String */;
1747 char* var28 /* : CString */;
1748 val* var29 /* : String */;
1749 val* var30 /* : nullable Int */;
1750 val* var31 /* : nullable Int */;
1751 val* var32 /* : nullable Bool */;
1752 val* var33 /* : nullable Bool */;
1753 val* var34 /* : String */;
1754 val* var35 /* : String */;
1755 static val* varonce36;
1756 val* var37 /* : String */;
1757 char* var38 /* : CString */;
1758 val* var39 /* : String */;
1759 val* var40 /* : nullable Int */;
1760 val* var41 /* : nullable Int */;
1761 val* var42 /* : nullable Bool */;
1762 val* var43 /* : nullable Bool */;
1763 static val* varonce44;
1764 val* var45 /* : String */;
1765 char* var46 /* : CString */;
1766 val* var47 /* : String */;
1767 val* var48 /* : nullable Int */;
1768 val* var49 /* : nullable Int */;
1769 val* var50 /* : nullable Bool */;
1770 val* var51 /* : nullable Bool */;
1771 var_recv = p0;
1772 {
1773 { /* Inline abstract_compiler$AbstractCompilerVisitor$compiler (self) on <self:AbstractCompilerVisitor> */
1774 var2 = self->attrs[COLOR_nitc__abstract_compiler__AbstractCompilerVisitor___compiler].val; /* _compiler on <self:AbstractCompilerVisitor> */
1775 if (unlikely(var2 == NULL)) {
1776 if(catchStack.cursor >= 0){
1777 longjmp(catchStack.envs[catchStack.cursor], 1);
1778 }
1779 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _compiler");
1780 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 1214);
1781 fatal_exit(1);
1782 }
1783 var = var2;
1784 RET_LABEL1:(void)0;
1785 }
1786 }
1787 {
1788 { /* Inline abstract_compiler$AbstractCompiler$modelbuilder (var) on <var:AbstractCompiler> */
1789 var5 = var->attrs[COLOR_nitc__abstract_compiler__AbstractCompiler___modelbuilder].val; /* _modelbuilder on <var:AbstractCompiler> */
1790 if (unlikely(var5 == NULL)) {
1791 if(catchStack.cursor >= 0){
1792 longjmp(catchStack.envs[catchStack.cursor], 1);
1793 }
1794 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
1795 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 552);
1796 fatal_exit(1);
1797 }
1798 var3 = var5;
1799 RET_LABEL4:(void)0;
1800 }
1801 }
1802 {
1803 { /* Inline modelbuilder_base$ModelBuilder$toolcontext (var3) on <var3:ModelBuilder> */
1804 var8 = var3->attrs[COLOR_nitc__modelbuilder_base__ModelBuilder___toolcontext].val; /* _toolcontext on <var3:ModelBuilder> */
1805 if (unlikely(var8 == NULL)) {
1806 if(catchStack.cursor >= 0){
1807 longjmp(catchStack.envs[catchStack.cursor], 1);
1808 }
1809 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
1810 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__modelbuilder_base, 47);
1811 fatal_exit(1);
1812 }
1813 var6 = var8;
1814 RET_LABEL7:(void)0;
1815 }
1816 }
1817 {
1818 { /* Inline abstract_compiler$ToolContext$opt_no_check_null (var6) on <var6:ToolContext> */
1819 var11 = var6->attrs[COLOR_nitc__abstract_compiler__ToolContext___opt_no_check_null].val; /* _opt_no_check_null on <var6:ToolContext> */
1820 if (unlikely(var11 == NULL)) {
1821 if(catchStack.cursor >= 0){
1822 longjmp(catchStack.envs[catchStack.cursor], 1);
1823 }
1824 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_no_check_null");
1825 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 56);
1826 fatal_exit(1);
1827 }
1828 var9 = var11;
1829 RET_LABEL10:(void)0;
1830 }
1831 }
1832 {
1833 { /* Inline opts$Option$value (var9) on <var9:OptionBool> */
1834 var14 = var9->attrs[COLOR_opts__Option___value].val; /* _value on <var9:OptionBool> */
1835 var12 = var14;
1836 RET_LABEL13:(void)0;
1837 }
1838 }
1839 var15 = (short int)((long)(var12)>>2);
1840 if (var15){
1841 goto RET_LABEL;
1842 } else {
1843 }
1844 {
1845 var16 = nitc___nitc__AbstractCompilerVisitor___maybenull(self, var_recv);
1846 }
1847 if (var16){
1848 if (unlikely(varonce==NULL)) {
1849 var17 = NEW_core__NativeArray((int)3l, &type_core__NativeArray__core__String);
1850 if (likely(varonce18!=NULL)) {
1851 var19 = varonce18;
1852 } else {
1853 var20 = "if (unlikely(";
1854 var22 = (val*)(13l<<2|1);
1855 var23 = (val*)(13l<<2|1);
1856 var24 = (val*)((long)(0)<<2|3);
1857 var25 = (val*)((long)(0)<<2|3);
1858 var21 = core__flat___CString___to_s_unsafe(var20, var22, var23, var24, var25);
1859 var19 = var21;
1860 varonce18 = var19;
1861 }
1862 ((struct instance_core__NativeArray*)var17)->values[0]=var19;
1863 if (likely(varonce26!=NULL)) {
1864 var27 = varonce26;
1865 } else {
1866 var28 = " == NULL)) {";
1867 var30 = (val*)(12l<<2|1);
1868 var31 = (val*)(12l<<2|1);
1869 var32 = (val*)((long)(0)<<2|3);
1870 var33 = (val*)((long)(0)<<2|3);
1871 var29 = core__flat___CString___to_s_unsafe(var28, var30, var31, var32, var33);
1872 var27 = var29;
1873 varonce26 = var27;
1874 }
1875 ((struct instance_core__NativeArray*)var17)->values[2]=var27;
1876 } else {
1877 var17 = varonce;
1878 varonce = NULL;
1879 }
1880 {
1881 var34 = ((val*(*)(val* self))(var_recv->class->vft[COLOR_core__abstract_text__Object__to_s]))(var_recv); /* to_s on <var_recv:RuntimeVariable>*/
1882 }
1883 ((struct instance_core__NativeArray*)var17)->values[1]=var34;
1884 {
1885 var35 = ((val*(*)(val* self))(var17->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var17); /* native_to_s on <var17:NativeArray[String]>*/
1886 }
1887 varonce = var17;
1888 {
1889 nitc___nitc__AbstractCompilerVisitor___add(self, var35); /* Direct call abstract_compiler$AbstractCompilerVisitor$add on <self:AbstractCompilerVisitor>*/
1890 }
1891 if (likely(varonce36!=NULL)) {
1892 var37 = varonce36;
1893 } else {
1894 var38 = "Receiver is null";
1895 var40 = (val*)(16l<<2|1);
1896 var41 = (val*)(16l<<2|1);
1897 var42 = (val*)((long)(0)<<2|3);
1898 var43 = (val*)((long)(0)<<2|3);
1899 var39 = core__flat___CString___to_s_unsafe(var38, var40, var41, var42, var43);
1900 var37 = var39;
1901 varonce36 = var37;
1902 }
1903 {
1904 nitc___nitc__AbstractCompilerVisitor___add_abort(self, var37); /* Direct call abstract_compiler$AbstractCompilerVisitor$add_abort on <self:AbstractCompilerVisitor>*/
1905 }
1906 if (likely(varonce44!=NULL)) {
1907 var45 = varonce44;
1908 } else {
1909 var46 = "}";
1910 var48 = (val*)(1l<<2|1);
1911 var49 = (val*)(1l<<2|1);
1912 var50 = (val*)((long)(0)<<2|3);
1913 var51 = (val*)((long)(0)<<2|3);
1914 var47 = core__flat___CString___to_s_unsafe(var46, var48, var49, var50, var51);
1915 var45 = var47;
1916 varonce44 = var45;
1917 }
1918 {
1919 nitc___nitc__AbstractCompilerVisitor___add(self, var45); /* Direct call abstract_compiler$AbstractCompilerVisitor$add on <self:AbstractCompilerVisitor>*/
1920 }
1921 } else {
1922 }
1923 RET_LABEL:;
1924 }
1925 /* method abstract_compiler$AbstractCompilerVisitor$names for (self: AbstractCompilerVisitor): HashSet[String] */
1926 val* nitc___nitc__AbstractCompilerVisitor___names(val* self) {
1927 val* var /* : HashSet[String] */;
1928 val* var1 /* : HashSet[String] */;
1929 var1 = self->attrs[COLOR_nitc__abstract_compiler__AbstractCompilerVisitor___names].val; /* _names on <self:AbstractCompilerVisitor> */
1930 if (unlikely(var1 == NULL)) {
1931 if(catchStack.cursor >= 0){
1932 longjmp(catchStack.envs[catchStack.cursor], 1);
1933 }
1934 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _names");
1935 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 1465);
1936 fatal_exit(1);
1937 }
1938 var = var1;
1939 RET_LABEL:;
1940 return var;
1941 }
1942 /* method abstract_compiler$AbstractCompilerVisitor$last for (self: AbstractCompilerVisitor): Int */
1943 long nitc___nitc__AbstractCompilerVisitor___last(val* self) {
1944 long var /* : Int */;
1945 long var1 /* : Int */;
1946 var1 = self->attrs[COLOR_nitc__abstract_compiler__AbstractCompilerVisitor___last].l; /* _last on <self:AbstractCompilerVisitor> */
1947 var = var1;
1948 RET_LABEL:;
1949 return var;
1950 }
1951 /* method abstract_compiler$AbstractCompilerVisitor$last= for (self: AbstractCompilerVisitor, Int) */
1952 void nitc___nitc__AbstractCompilerVisitor___last_61d(val* self, long p0) {
1953 self->attrs[COLOR_nitc__abstract_compiler__AbstractCompilerVisitor___last].l = p0; /* _last on <self:AbstractCompilerVisitor> */
1954 RET_LABEL:;
1955 }
1956 /* method abstract_compiler$AbstractCompilerVisitor$get_name for (self: AbstractCompilerVisitor, String): String */
1957 val* nitc___nitc__AbstractCompilerVisitor___get_name(val* self, val* p0) {
1958 val* var /* : String */;
1959 val* var_s /* var s: String */;
1960 val* var1 /* : HashSet[String] */;
1961 val* var3 /* : HashSet[String] */;
1962 short int var4 /* : Bool */;
1963 short int var5 /* : Bool */;
1964 val* var6 /* : HashSet[String] */;
1965 val* var8 /* : HashSet[String] */;
1966 long var9 /* : Int */;
1967 long var11 /* : Int */;
1968 long var12 /* : Int */;
1969 short int var14 /* : Bool */;
1970 int cltype;
1971 int idtype;
1972 const char* var_class_name;
1973 long var15 /* : Int */;
1974 long var_i /* var i: Int */;
1975 val* var16 /* : String */;
1976 val* var17 /* : Text */;
1977 val* var_s2 /* var s2: String */;
1978 val* var18 /* : HashSet[String] */;
1979 val* var20 /* : HashSet[String] */;
1980 short int var21 /* : Bool */;
1981 short int var22 /* : Bool */;
1982 val* var24 /* : HashSet[String] */;
1983 val* var26 /* : HashSet[String] */;
1984 long var27 /* : Int */;
1985 short int var29 /* : Bool */;
1986 int cltype30;
1987 int idtype31;
1988 const char* var_class_name32;
1989 long var33 /* : Int */;
1990 var_s = p0;
1991 {
1992 { /* Inline abstract_compiler$AbstractCompilerVisitor$names (self) on <self:AbstractCompilerVisitor> */
1993 var3 = self->attrs[COLOR_nitc__abstract_compiler__AbstractCompilerVisitor___names].val; /* _names on <self:AbstractCompilerVisitor> */
1994 if (unlikely(var3 == NULL)) {
1995 if(catchStack.cursor >= 0){
1996 longjmp(catchStack.envs[catchStack.cursor], 1);
1997 }
1998 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _names");
1999 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 1465);
2000 fatal_exit(1);
2001 }
2002 var1 = var3;
2003 RET_LABEL2:(void)0;
2004 }
2005 }
2006 {
2007 var4 = core___core__HashSet___core__abstract_collection__Collection__has(var1, var_s);
2008 }
2009 var5 = !var4;
2010 if (var5){
2011 {
2012 { /* Inline abstract_compiler$AbstractCompilerVisitor$names (self) on <self:AbstractCompilerVisitor> */
2013 var8 = self->attrs[COLOR_nitc__abstract_compiler__AbstractCompilerVisitor___names].val; /* _names on <self:AbstractCompilerVisitor> */
2014 if (unlikely(var8 == NULL)) {
2015 if(catchStack.cursor >= 0){
2016 longjmp(catchStack.envs[catchStack.cursor], 1);
2017 }
2018 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _names");
2019 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 1465);
2020 fatal_exit(1);
2021 }
2022 var6 = var8;
2023 RET_LABEL7:(void)0;
2024 }
2025 }
2026 {
2027 core___core__HashSet___core__abstract_collection__SimpleCollection__add(var6, var_s); /* Direct call hash_collection$HashSet$add on <var6:HashSet[String]>*/
2028 }
2029 var = var_s;
2030 goto RET_LABEL;
2031 } else {
2032 }
2033 {
2034 { /* Inline abstract_compiler$AbstractCompilerVisitor$last (self) on <self:AbstractCompilerVisitor> */
2035 var11 = self->attrs[COLOR_nitc__abstract_compiler__AbstractCompilerVisitor___last].l; /* _last on <self:AbstractCompilerVisitor> */
2036 var9 = var11;
2037 RET_LABEL10:(void)0;
2038 }
2039 }
2040 {
2041 { /* Inline kernel$Int$+ (var9,1l) on <var9:Int> */
2042 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
2043 /* <1l:Int> isa OTHER */
2044 var14 = 1; /* easy <1l:Int> isa OTHER*/
2045 if (unlikely(!var14)) {
2046 var_class_name = type_core__Int.name;
2047 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
2048 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 728);
2049 fatal_exit(1);
2050 }
2051 var15 = var9 + 1l;
2052 var12 = var15;
2053 goto RET_LABEL13;
2054 RET_LABEL13:(void)0;
2055 }
2056 }
2057 var_i = var12;
2058 for(;;) {
2059 {
2060 var16 = core__flat___Int___core__abstract_text__Object__to_s(var_i);
2061 }
2062 {
2063 var17 = ((val*(*)(val* self, val* p0))(var_s->class->vft[COLOR_core__abstract_text__Text___43d]))(var_s, var16); /* + on <var_s:String>*/
2064 }
2065 var_s2 = var17;
2066 {
2067 { /* Inline abstract_compiler$AbstractCompilerVisitor$names (self) on <self:AbstractCompilerVisitor> */
2068 var20 = self->attrs[COLOR_nitc__abstract_compiler__AbstractCompilerVisitor___names].val; /* _names on <self:AbstractCompilerVisitor> */
2069 if (unlikely(var20 == NULL)) {
2070 if(catchStack.cursor >= 0){
2071 longjmp(catchStack.envs[catchStack.cursor], 1);
2072 }
2073 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _names");
2074 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 1465);
2075 fatal_exit(1);
2076 }
2077 var18 = var20;
2078 RET_LABEL19:(void)0;
2079 }
2080 }
2081 {
2082 var21 = core___core__HashSet___core__abstract_collection__Collection__has(var18, var_s2);
2083 }
2084 var22 = !var21;
2085 if (var22){
2086 {
2087 { /* Inline abstract_compiler$AbstractCompilerVisitor$last= (self,var_i) on <self:AbstractCompilerVisitor> */
2088 self->attrs[COLOR_nitc__abstract_compiler__AbstractCompilerVisitor___last].l = var_i; /* _last on <self:AbstractCompilerVisitor> */
2089 RET_LABEL23:(void)0;
2090 }
2091 }
2092 {
2093 { /* Inline abstract_compiler$AbstractCompilerVisitor$names (self) on <self:AbstractCompilerVisitor> */
2094 var26 = self->attrs[COLOR_nitc__abstract_compiler__AbstractCompilerVisitor___names].val; /* _names on <self:AbstractCompilerVisitor> */
2095 if (unlikely(var26 == NULL)) {
2096 if(catchStack.cursor >= 0){
2097 longjmp(catchStack.envs[catchStack.cursor], 1);
2098 }
2099 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _names");
2100 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 1465);
2101 fatal_exit(1);
2102 }
2103 var24 = var26;
2104 RET_LABEL25:(void)0;
2105 }
2106 }
2107 {
2108 core___core__HashSet___core__abstract_collection__SimpleCollection__add(var24, var_s2); /* Direct call hash_collection$HashSet$add on <var24:HashSet[String]>*/
2109 }
2110 var = var_s2;
2111 goto RET_LABEL;
2112 } else {
2113 }
2114 {
2115 { /* Inline kernel$Int$+ (var_i,1l) on <var_i:Int> */
2116 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
2117 /* <1l:Int> isa OTHER */
2118 var29 = 1; /* easy <1l:Int> isa OTHER*/
2119 if (unlikely(!var29)) {
2120 var_class_name32 = type_core__Int.name;
2121 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name32);
2122 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 728);
2123 fatal_exit(1);
2124 }
2125 var33 = var_i + 1l;
2126 var27 = var33;
2127 goto RET_LABEL28;
2128 RET_LABEL28:(void)0;
2129 }
2130 }
2131 var_i = var27;
2132 }
2133 RET_LABEL:;
2134 return var;
2135 }
2136 /* method abstract_compiler$AbstractCompilerVisitor$escapemark_name for (self: AbstractCompilerVisitor, nullable EscapeMark): String */
2137 val* nitc___nitc__AbstractCompilerVisitor___escapemark_name(val* self, val* p0) {
2138 val* var /* : String */;
2139 val* var_e /* var e: nullable EscapeMark */;
2140 short int var1 /* : Bool */;
2141 short int var2 /* : Bool */;
2142 val* var_other /* var other: nullable Object */;
2143 short int var4 /* : Bool */;
2144 short int var5 /* : Bool */;
2145 val* var6 /* : nullable StaticFrame */;
2146 val* var8 /* : nullable StaticFrame */;
2147 val* var9 /* : HashMap[EscapeMark, String] */;
2148 val* var11 /* : HashMap[EscapeMark, String] */;
2149 short int var12 /* : Bool */;
2150 val* var13 /* : nullable StaticFrame */;
2151 val* var15 /* : nullable StaticFrame */;
2152 val* var16 /* : HashMap[EscapeMark, String] */;
2153 val* var18 /* : HashMap[EscapeMark, String] */;
2154 val* var19 /* : nullable Object */;
2155 val* var20 /* : nullable String */;
2156 val* var22 /* : nullable String */;
2157 val* var_name /* var name: nullable String */;
2158 short int var23 /* : Bool */;
2159 short int var24 /* : Bool */;
2160 static val* varonce;
2161 val* var25 /* : String */;
2162 char* var26 /* : CString */;
2163 val* var27 /* : String */;
2164 val* var28 /* : nullable Int */;
2165 val* var29 /* : nullable Int */;
2166 val* var30 /* : nullable Bool */;
2167 val* var31 /* : nullable Bool */;
2168 val* var32 /* : String */;
2169 val* var33 /* : nullable StaticFrame */;
2170 val* var35 /* : nullable StaticFrame */;
2171 val* var36 /* : HashMap[EscapeMark, String] */;
2172 val* var38 /* : HashMap[EscapeMark, String] */;
2173 var_e = p0;
2174 if (var_e == NULL) {
2175 var1 = 0; /* is null */
2176 } else {
2177 var1 = 1; /* arg is null and recv is not */
2178 }
2179 if (0) {
2180 { /* Inline kernel$Object$!= (var_e,((val*)NULL)) on <var_e:nullable EscapeMark> */
2181 var_other = ((val*)NULL);
2182 {
2183 var4 = ((short int(*)(val* self, val* p0))(var_e->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_e, var_other); /* == on <var_e:nullable EscapeMark(EscapeMark)>*/
2184 }
2185 var5 = !var4;
2186 var2 = var5;
2187 goto RET_LABEL3;
2188 RET_LABEL3:(void)0;
2189 }
2190 var1 = var2;
2191 }
2192 if (unlikely(!var1)) {
2193 if(catchStack.cursor >= 0){
2194 longjmp(catchStack.envs[catchStack.cursor], 1);
2195 }
2196 PRINT_ERROR("Runtime error: %s", "Assert failed");
2197 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 1490);
2198 fatal_exit(1);
2199 }
2200 {
2201 { /* Inline abstract_compiler$AbstractCompilerVisitor$frame (self) on <self:AbstractCompilerVisitor> */
2202 var8 = self->attrs[COLOR_nitc__abstract_compiler__AbstractCompilerVisitor___frame].val; /* _frame on <self:AbstractCompilerVisitor> */
2203 var6 = var8;
2204 RET_LABEL7:(void)0;
2205 }
2206 }
2207 if (var6 == NULL) {
2208 if(catchStack.cursor >= 0){
2209 longjmp(catchStack.envs[catchStack.cursor], 1);
2210 }
2211 PRINT_ERROR("Runtime error: %s", "Receiver is null");
2212 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 1491);
2213 fatal_exit(1);
2214 } else {
2215 { /* Inline abstract_compiler$StaticFrame$escapemark_names (var6) on <var6:nullable StaticFrame> */
2216 if (unlikely(var6 == NULL)) {
2217 if(catchStack.cursor >= 0){
2218 longjmp(catchStack.envs[catchStack.cursor], 1);
2219 }
2220 PRINT_ERROR("Runtime error: %s", "Receiver is null");
2221 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 2043);
2222 fatal_exit(1);
2223 }
2224 var11 = var6->attrs[COLOR_nitc__abstract_compiler__StaticFrame___escapemark_names].val; /* _escapemark_names on <var6:nullable StaticFrame> */
2225 if (unlikely(var11 == NULL)) {
2226 if(catchStack.cursor >= 0){
2227 longjmp(catchStack.envs[catchStack.cursor], 1);
2228 }
2229 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _escapemark_names");
2230 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 2043);
2231 fatal_exit(1);
2232 }
2233 var9 = var11;
2234 RET_LABEL10:(void)0;
2235 }
2236 }
2237 {
2238 var12 = core___core__HashMap___core__abstract_collection__MapRead__has_key(var9, var_e);
2239 }
2240 if (var12){
2241 {
2242 { /* Inline abstract_compiler$AbstractCompilerVisitor$frame (self) on <self:AbstractCompilerVisitor> */
2243 var15 = self->attrs[COLOR_nitc__abstract_compiler__AbstractCompilerVisitor___frame].val; /* _frame on <self:AbstractCompilerVisitor> */
2244 var13 = var15;
2245 RET_LABEL14:(void)0;
2246 }
2247 }
2248 if (var13 == NULL) {
2249 if(catchStack.cursor >= 0){
2250 longjmp(catchStack.envs[catchStack.cursor], 1);
2251 }
2252 PRINT_ERROR("Runtime error: %s", "Receiver is null");
2253 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 1491);
2254 fatal_exit(1);
2255 } else {
2256 { /* Inline abstract_compiler$StaticFrame$escapemark_names (var13) on <var13:nullable StaticFrame> */
2257 if (unlikely(var13 == NULL)) {
2258 if(catchStack.cursor >= 0){
2259 longjmp(catchStack.envs[catchStack.cursor], 1);
2260 }
2261 PRINT_ERROR("Runtime error: %s", "Receiver is null");
2262 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 2043);
2263 fatal_exit(1);
2264 }
2265 var18 = var13->attrs[COLOR_nitc__abstract_compiler__StaticFrame___escapemark_names].val; /* _escapemark_names on <var13:nullable StaticFrame> */
2266 if (unlikely(var18 == NULL)) {
2267 if(catchStack.cursor >= 0){
2268 longjmp(catchStack.envs[catchStack.cursor], 1);
2269 }
2270 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _escapemark_names");
2271 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 2043);
2272 fatal_exit(1);
2273 }
2274 var16 = var18;
2275 RET_LABEL17:(void)0;
2276 }
2277 }
2278 {
2279 var19 = core___core__HashMap___core__abstract_collection__MapRead___91d_93d(var16, var_e);
2280 }
2281 var = var19;
2282 goto RET_LABEL;
2283 } else {
2284 }
2285 {
2286 { /* Inline scope$EscapeMark$name (var_e) on <var_e:nullable EscapeMark(EscapeMark)> */
2287 var22 = var_e->attrs[COLOR_nitc__scope__EscapeMark___name].val; /* _name on <var_e:nullable EscapeMark(EscapeMark)> */
2288 var20 = var22;
2289 RET_LABEL21:(void)0;
2290 }
2291 }
2292 var_name = var20;
2293 if (var_name == NULL) {
2294 var23 = 1; /* is null */
2295 } else {
2296 var23 = 0; /* arg is null but recv is not */
2297 }
2298 if (0) {
2299 var24 = ((short int(*)(val* self, val* p0))(var_name->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_name, ((val*)NULL)); /* == on <var_name:nullable String>*/
2300 var23 = var24;
2301 }
2302 if (var23){
2303 if (likely(varonce!=NULL)) {
2304 var25 = varonce;
2305 } else {
2306 var26 = "label";
2307 var28 = (val*)(5l<<2|1);
2308 var29 = (val*)(5l<<2|1);
2309 var30 = (val*)((long)(0)<<2|3);
2310 var31 = (val*)((long)(0)<<2|3);
2311 var27 = core__flat___CString___to_s_unsafe(var26, var28, var29, var30, var31);
2312 var25 = var27;
2313 varonce = var25;
2314 }
2315 var_name = var25;
2316 } else {
2317 }
2318 {
2319 var32 = nitc___nitc__AbstractCompilerVisitor___get_name(self, var_name);
2320 }
2321 var_name = var32;
2322 {
2323 { /* Inline abstract_compiler$AbstractCompilerVisitor$frame (self) on <self:AbstractCompilerVisitor> */
2324 var35 = self->attrs[COLOR_nitc__abstract_compiler__AbstractCompilerVisitor___frame].val; /* _frame on <self:AbstractCompilerVisitor> */
2325 var33 = var35;
2326 RET_LABEL34:(void)0;
2327 }
2328 }
2329 if (var33 == NULL) {
2330 if(catchStack.cursor >= 0){
2331 longjmp(catchStack.envs[catchStack.cursor], 1);
2332 }
2333 PRINT_ERROR("Runtime error: %s", "Receiver is null");
2334 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 1495);
2335 fatal_exit(1);
2336 } else {
2337 { /* Inline abstract_compiler$StaticFrame$escapemark_names (var33) on <var33:nullable StaticFrame> */
2338 if (unlikely(var33 == NULL)) {
2339 if(catchStack.cursor >= 0){
2340 longjmp(catchStack.envs[catchStack.cursor], 1);
2341 }
2342 PRINT_ERROR("Runtime error: %s", "Receiver is null");
2343 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 2043);
2344 fatal_exit(1);
2345 }
2346 var38 = var33->attrs[COLOR_nitc__abstract_compiler__StaticFrame___escapemark_names].val; /* _escapemark_names on <var33:nullable StaticFrame> */
2347 if (unlikely(var38 == NULL)) {
2348 if(catchStack.cursor >= 0){
2349 longjmp(catchStack.envs[catchStack.cursor], 1);
2350 }
2351 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _escapemark_names");
2352 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 2043);
2353 fatal_exit(1);
2354 }
2355 var36 = var38;
2356 RET_LABEL37:(void)0;
2357 }
2358 }
2359 {
2360 core___core__HashMap___core__abstract_collection__Map___91d_93d_61d(var36, var_e, var_name); /* Direct call hash_collection$HashMap$[]= on <var36:HashMap[EscapeMark, String]>*/
2361 }
2362 var = var_name;
2363 goto RET_LABEL;
2364 RET_LABEL:;
2365 return var;
2366 }
2367 /* method abstract_compiler$AbstractCompilerVisitor$add_escape_label for (self: AbstractCompilerVisitor, nullable EscapeMark) */
2368 void nitc___nitc__AbstractCompilerVisitor___add_escape_label(val* self, val* p0) {
2369 val* var_e /* var e: nullable EscapeMark */;
2370 short int var /* : Bool */;
2371 short int var1 /* : Bool */;
2372 val* var_other /* var other: nullable Object */;
2373 short int var3 /* : Bool */;
2374 short int var5 /* : Bool */;
2375 val* var6 /* : Array[AEscapeExpr] */;
2376 val* var8 /* : Array[AEscapeExpr] */;
2377 short int var9 /* : Bool */;
2378 val* var10 /* : NativeArray[String] */;
2379 static val* varonce;
2380 static val* varonce11;
2381 val* var12 /* : String */;
2382 char* var13 /* : CString */;
2383 val* var14 /* : String */;
2384 val* var15 /* : nullable Int */;
2385 val* var16 /* : nullable Int */;
2386 val* var17 /* : nullable Bool */;
2387 val* var18 /* : nullable Bool */;
2388 static val* varonce19;
2389 val* var20 /* : String */;
2390 char* var21 /* : CString */;
2391 val* var22 /* : String */;
2392 val* var23 /* : nullable Int */;
2393 val* var24 /* : nullable Int */;
2394 val* var25 /* : nullable Bool */;
2395 val* var26 /* : nullable Bool */;
2396 val* var27 /* : String */;
2397 val* var28 /* : String */;
2398 var_e = p0;
2399 if (var_e == NULL) {
2400 var = 1; /* is null */
2401 } else {
2402 var = 0; /* arg is null but recv is not */
2403 }
2404 if (0) {
2405 { /* Inline kernel$Object$== (var_e,((val*)NULL)) on <var_e:nullable EscapeMark> */
2406 var_other = ((val*)NULL);
2407 {
2408 { /* Inline kernel$Object$is_same_instance (var_e,var_other) on <var_e:nullable EscapeMark(EscapeMark)> */
2409 var5 = var_e == var_other;
2410 var3 = var5;
2411 goto RET_LABEL4;
2412 RET_LABEL4:(void)0;
2413 }
2414 }
2415 var1 = var3;
2416 goto RET_LABEL2;
2417 RET_LABEL2:(void)0;
2418 }
2419 var = var1;
2420 }
2421 if (var){
2422 goto RET_LABEL;
2423 } else {
2424 }
2425 {
2426 { /* Inline scope$EscapeMark$escapes (var_e) on <var_e:nullable EscapeMark(EscapeMark)> */
2427 var8 = var_e->attrs[COLOR_nitc__scope__EscapeMark___escapes].val; /* _escapes on <var_e:nullable EscapeMark(EscapeMark)> */
2428 if (unlikely(var8 == NULL)) {
2429 if(catchStack.cursor >= 0){
2430 longjmp(catchStack.envs[catchStack.cursor], 1);
2431 }
2432 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _escapes");
2433 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__scope, 59);
2434 fatal_exit(1);
2435 }
2436 var6 = var8;
2437 RET_LABEL7:(void)0;
2438 }
2439 }
2440 {
2441 var9 = core___core__AbstractArrayRead___core__abstract_collection__Collection__is_empty(var6);
2442 }
2443 if (var9){
2444 goto RET_LABEL;
2445 } else {
2446 }
2447 if (unlikely(varonce==NULL)) {
2448 var10 = NEW_core__NativeArray((int)3l, &type_core__NativeArray__core__String);
2449 if (likely(varonce11!=NULL)) {
2450 var12 = varonce11;
2451 } else {
2452 var13 = "BREAK_";
2453 var15 = (val*)(6l<<2|1);
2454 var16 = (val*)(6l<<2|1);
2455 var17 = (val*)((long)(0)<<2|3);
2456 var18 = (val*)((long)(0)<<2|3);
2457 var14 = core__flat___CString___to_s_unsafe(var13, var15, var16, var17, var18);
2458 var12 = var14;
2459 varonce11 = var12;
2460 }
2461 ((struct instance_core__NativeArray*)var10)->values[0]=var12;
2462 if (likely(varonce19!=NULL)) {
2463 var20 = varonce19;
2464 } else {
2465 var21 = ": (void)0;";
2466 var23 = (val*)(10l<<2|1);
2467 var24 = (val*)(10l<<2|1);
2468 var25 = (val*)((long)(0)<<2|3);
2469 var26 = (val*)((long)(0)<<2|3);
2470 var22 = core__flat___CString___to_s_unsafe(var21, var23, var24, var25, var26);
2471 var20 = var22;
2472 varonce19 = var20;
2473 }
2474 ((struct instance_core__NativeArray*)var10)->values[2]=var20;
2475 } else {
2476 var10 = varonce;
2477 varonce = NULL;
2478 }
2479 {
2480 var27 = nitc___nitc__AbstractCompilerVisitor___escapemark_name(self, var_e);
2481 }
2482 ((struct instance_core__NativeArray*)var10)->values[1]=var27;
2483 {
2484 var28 = ((val*(*)(val* self))(var10->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var10); /* native_to_s on <var10:NativeArray[String]>*/
2485 }
2486 varonce = var10;
2487 {
2488 nitc___nitc__AbstractCompilerVisitor___add(self, var28); /* Direct call abstract_compiler$AbstractCompilerVisitor$add on <self:AbstractCompilerVisitor>*/
2489 }
2490 RET_LABEL:;
2491 }
2492 /* method abstract_compiler$AbstractCompilerVisitor$variables for (self: AbstractCompilerVisitor): HashMap[Variable, RuntimeVariable] */
2493 val* nitc___nitc__AbstractCompilerVisitor___variables(val* self) {
2494 val* var /* : HashMap[Variable, RuntimeVariable] */;
2495 val* var1 /* : HashMap[Variable, RuntimeVariable] */;
2496 var1 = self->attrs[COLOR_nitc__abstract_compiler__AbstractCompilerVisitor___variables].val; /* _variables on <self:AbstractCompilerVisitor> */
2497 if (unlikely(var1 == NULL)) {
2498 if(catchStack.cursor >= 0){
2499 longjmp(catchStack.envs[catchStack.cursor], 1);
2500 }
2501 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _variables");
2502 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 1513);
2503 fatal_exit(1);
2504 }
2505 var = var1;
2506 RET_LABEL:;
2507 return var;
2508 }
2509 /* method abstract_compiler$AbstractCompilerVisitor$variable for (self: AbstractCompilerVisitor, Variable): RuntimeVariable */
2510 val* nitc___nitc__AbstractCompilerVisitor___variable(val* self, val* p0) {
2511 val* var /* : RuntimeVariable */;
2512 val* var_variable /* var variable: Variable */;
2513 val* var1 /* : HashMap[Variable, RuntimeVariable] */;
2514 val* var3 /* : HashMap[Variable, RuntimeVariable] */;
2515 short int var4 /* : Bool */;
2516 val* var5 /* : HashMap[Variable, RuntimeVariable] */;
2517 val* var7 /* : HashMap[Variable, RuntimeVariable] */;
2518 val* var8 /* : nullable Object */;
2519 val* var9 /* : NativeArray[String] */;
2520 static val* varonce;
2521 static val* varonce10;
2522 val* var11 /* : String */;
2523 char* var12 /* : CString */;
2524 val* var13 /* : String */;
2525 val* var14 /* : nullable Int */;
2526 val* var15 /* : nullable Int */;
2527 val* var16 /* : nullable Bool */;
2528 val* var17 /* : nullable Bool */;
2529 val* var18 /* : String */;
2530 val* var20 /* : String */;
2531 val* var21 /* : String */;
2532 val* var22 /* : String */;
2533 val* var_name /* var name: String */;
2534 val* var23 /* : nullable MType */;
2535 val* var25 /* : nullable MType */;
2536 val* var_mtype /* var mtype: MType */;
2537 val* var26 /* : MType */;
2538 val* var27 /* : RuntimeVariable */;
2539 val* var_res /* var res: RuntimeVariable */;
2540 val* var29 /* : NativeArray[String] */;
2541 static val* varonce28;
2542 static val* varonce30;
2543 val* var31 /* : String */;
2544 char* var32 /* : CString */;
2545 val* var33 /* : String */;
2546 val* var34 /* : nullable Int */;
2547 val* var35 /* : nullable Int */;
2548 val* var36 /* : nullable Bool */;
2549 val* var37 /* : nullable Bool */;
2550 static val* varonce38;
2551 val* var39 /* : String */;
2552 char* var40 /* : CString */;
2553 val* var41 /* : String */;
2554 val* var42 /* : nullable Int */;
2555 val* var43 /* : nullable Int */;
2556 val* var44 /* : nullable Bool */;
2557 val* var45 /* : nullable Bool */;
2558 static val* varonce46;
2559 val* var47 /* : String */;
2560 char* var48 /* : CString */;
2561 val* var49 /* : String */;
2562 val* var50 /* : nullable Int */;
2563 val* var51 /* : nullable Int */;
2564 val* var52 /* : nullable Bool */;
2565 val* var53 /* : nullable Bool */;
2566 static val* varonce54;
2567 val* var55 /* : String */;
2568 char* var56 /* : CString */;
2569 val* var57 /* : String */;
2570 val* var58 /* : nullable Int */;
2571 val* var59 /* : nullable Int */;
2572 val* var60 /* : nullable Bool */;
2573 val* var61 /* : nullable Bool */;
2574 val* var62 /* : String */;
2575 val* var63 /* : String */;
2576 val* var64 /* : String */;
2577 val* var65 /* : String */;
2578 val* var66 /* : HashMap[Variable, RuntimeVariable] */;
2579 val* var68 /* : HashMap[Variable, RuntimeVariable] */;
2580 var_variable = p0;
2581 {
2582 { /* Inline abstract_compiler$AbstractCompilerVisitor$variables (self) on <self:AbstractCompilerVisitor> */
2583 var3 = self->attrs[COLOR_nitc__abstract_compiler__AbstractCompilerVisitor___variables].val; /* _variables on <self:AbstractCompilerVisitor> */
2584 if (unlikely(var3 == NULL)) {
2585 if(catchStack.cursor >= 0){
2586 longjmp(catchStack.envs[catchStack.cursor], 1);
2587 }
2588 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _variables");
2589 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 1513);
2590 fatal_exit(1);
2591 }
2592 var1 = var3;
2593 RET_LABEL2:(void)0;
2594 }
2595 }
2596 {
2597 var4 = core___core__HashMap___core__abstract_collection__MapRead__has_key(var1, var_variable);
2598 }
2599 if (var4){
2600 {
2601 { /* Inline abstract_compiler$AbstractCompilerVisitor$variables (self) on <self:AbstractCompilerVisitor> */
2602 var7 = self->attrs[COLOR_nitc__abstract_compiler__AbstractCompilerVisitor___variables].val; /* _variables on <self:AbstractCompilerVisitor> */
2603 if (unlikely(var7 == NULL)) {
2604 if(catchStack.cursor >= 0){
2605 longjmp(catchStack.envs[catchStack.cursor], 1);
2606 }
2607 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _variables");
2608 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 1513);
2609 fatal_exit(1);
2610 }
2611 var5 = var7;
2612 RET_LABEL6:(void)0;
2613 }
2614 }
2615 {
2616 var8 = core___core__HashMap___core__abstract_collection__MapRead___91d_93d(var5, var_variable);
2617 }
2618 var = var8;
2619 goto RET_LABEL;
2620 } else {
2621 if (unlikely(varonce==NULL)) {
2622 var9 = NEW_core__NativeArray((int)2l, &type_core__NativeArray__core__String);
2623 if (likely(varonce10!=NULL)) {
2624 var11 = varonce10;
2625 } else {
2626 var12 = "var_";
2627 var14 = (val*)(4l<<2|1);
2628 var15 = (val*)(4l<<2|1);
2629 var16 = (val*)((long)(0)<<2|3);
2630 var17 = (val*)((long)(0)<<2|3);
2631 var13 = core__flat___CString___to_s_unsafe(var12, var14, var15, var16, var17);
2632 var11 = var13;
2633 varonce10 = var11;
2634 }
2635 ((struct instance_core__NativeArray*)var9)->values[0]=var11;
2636 } else {
2637 var9 = varonce;
2638 varonce = NULL;
2639 }
2640 {
2641 { /* Inline scope$Variable$name (var_variable) on <var_variable:Variable> */
2642 var20 = var_variable->attrs[COLOR_nitc__scope__Variable___name].val; /* _name on <var_variable:Variable> */
2643 if (unlikely(var20 == NULL)) {
2644 if(catchStack.cursor >= 0){
2645 longjmp(catchStack.envs[catchStack.cursor], 1);
2646 }
2647 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
2648 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__scope, 36);
2649 fatal_exit(1);
2650 }
2651 var18 = var20;
2652 RET_LABEL19:(void)0;
2653 }
2654 }
2655 ((struct instance_core__NativeArray*)var9)->values[1]=var18;
2656 {
2657 var21 = ((val*(*)(val* self))(var9->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var9); /* native_to_s on <var9:NativeArray[String]>*/
2658 }
2659 varonce = var9;
2660 {
2661 var22 = nitc___nitc__AbstractCompilerVisitor___get_name(self, var21);
2662 }
2663 var_name = var22;
2664 {
2665 { /* Inline typing$Variable$declared_type (var_variable) on <var_variable:Variable> */
2666 var25 = var_variable->attrs[COLOR_nitc__typing__Variable___declared_type].val; /* _declared_type on <var_variable:Variable> */
2667 var23 = var25;
2668 RET_LABEL24:(void)0;
2669 }
2670 }
2671 if (unlikely(var23 == NULL)) {
2672 if(catchStack.cursor >= 0){
2673 longjmp(catchStack.envs[catchStack.cursor], 1);
2674 }
2675 PRINT_ERROR("Runtime error: %s", "Cast failed");
2676 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 1522);
2677 fatal_exit(1);
2678 }
2679 var_mtype = var23;
2680 {
2681 var26 = nitc___nitc__AbstractCompilerVisitor___anchor(self, var_mtype);
2682 }
2683 var_mtype = var26;
2684 var27 = NEW_nitc__RuntimeVariable(&type_nitc__RuntimeVariable);
2685 {
2686 ((void(*)(val* self, val* p0))(var27->class->vft[COLOR_nitc__abstract_compiler__RuntimeVariable__name_61d]))(var27, var_name); /* name= on <var27:RuntimeVariable>*/
2687 }
2688 {
2689 ((void(*)(val* self, val* p0))(var27->class->vft[COLOR_nitc__abstract_compiler__RuntimeVariable__mtype_61d]))(var27, var_mtype); /* mtype= on <var27:RuntimeVariable>*/
2690 }
2691 {
2692 ((void(*)(val* self, val* p0))(var27->class->vft[COLOR_nitc__abstract_compiler__RuntimeVariable__mcasttype_61d]))(var27, var_mtype); /* mcasttype= on <var27:RuntimeVariable>*/
2693 }
2694 {
2695 ((void(*)(val* self))(var27->class->vft[COLOR_core__kernel__Object__init]))(var27); /* init on <var27:RuntimeVariable>*/
2696 }
2697 var_res = var27;
2698 if (unlikely(varonce28==NULL)) {
2699 var29 = NEW_core__NativeArray((int)8l, &type_core__NativeArray__core__String);
2700 if (likely(varonce30!=NULL)) {
2701 var31 = varonce30;
2702 } else {
2703 var32 = " ";
2704 var34 = (val*)(1l<<2|1);
2705 var35 = (val*)(1l<<2|1);
2706 var36 = (val*)((long)(0)<<2|3);
2707 var37 = (val*)((long)(0)<<2|3);
2708 var33 = core__flat___CString___to_s_unsafe(var32, var34, var35, var36, var37);
2709 var31 = var33;
2710 varonce30 = var31;
2711 }
2712 ((struct instance_core__NativeArray*)var29)->values[1]=var31;
2713 if (likely(varonce38!=NULL)) {
2714 var39 = varonce38;
2715 } else {
2716 var40 = " /* var ";
2717 var42 = (val*)(8l<<2|1);
2718 var43 = (val*)(8l<<2|1);
2719 var44 = (val*)((long)(0)<<2|3);
2720 var45 = (val*)((long)(0)<<2|3);
2721 var41 = core__flat___CString___to_s_unsafe(var40, var42, var43, var44, var45);
2722 var39 = var41;
2723 varonce38 = var39;
2724 }
2725 ((struct instance_core__NativeArray*)var29)->values[3]=var39;
2726 if (likely(varonce46!=NULL)) {
2727 var47 = varonce46;
2728 } else {
2729 var48 = ": ";
2730 var50 = (val*)(2l<<2|1);
2731 var51 = (val*)(2l<<2|1);
2732 var52 = (val*)((long)(0)<<2|3);
2733 var53 = (val*)((long)(0)<<2|3);
2734 var49 = core__flat___CString___to_s_unsafe(var48, var50, var51, var52, var53);
2735 var47 = var49;
2736 varonce46 = var47;
2737 }
2738 ((struct instance_core__NativeArray*)var29)->values[5]=var47;
2739 if (likely(varonce54!=NULL)) {
2740 var55 = varonce54;
2741 } else {
2742 var56 = " */;";
2743 var58 = (val*)(4l<<2|1);
2744 var59 = (val*)(4l<<2|1);
2745 var60 = (val*)((long)(0)<<2|3);
2746 var61 = (val*)((long)(0)<<2|3);
2747 var57 = core__flat___CString___to_s_unsafe(var56, var58, var59, var60, var61);
2748 var55 = var57;
2749 varonce54 = var55;
2750 }
2751 ((struct instance_core__NativeArray*)var29)->values[7]=var55;
2752 } else {
2753 var29 = varonce28;
2754 varonce28 = NULL;
2755 }
2756 {
2757 var62 = ((val*(*)(val* self))(var_mtype->class->vft[COLOR_nitc__abstract_compiler__MType__ctype]))(var_mtype); /* ctype on <var_mtype:MType>*/
2758 }
2759 ((struct instance_core__NativeArray*)var29)->values[0]=var62;
2760 ((struct instance_core__NativeArray*)var29)->values[2]=var_name;
2761 {
2762 var63 = ((val*(*)(val* self))(var_variable->class->vft[COLOR_core__abstract_text__Object__to_s]))(var_variable); /* to_s on <var_variable:Variable>*/
2763 }
2764 ((struct instance_core__NativeArray*)var29)->values[4]=var63;
2765 {
2766 var64 = ((val*(*)(val* self))(var_mtype->class->vft[COLOR_core__abstract_text__Object__to_s]))(var_mtype); /* to_s on <var_mtype:MType>*/
2767 }
2768 ((struct instance_core__NativeArray*)var29)->values[6]=var64;
2769 {
2770 var65 = ((val*(*)(val* self))(var29->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var29); /* native_to_s on <var29:NativeArray[String]>*/
2771 }
2772 varonce28 = var29;
2773 {
2774 nitc___nitc__AbstractCompilerVisitor___add_decl(self, var65); /* Direct call abstract_compiler$AbstractCompilerVisitor$add_decl on <self:AbstractCompilerVisitor>*/
2775 }
2776 {
2777 { /* Inline abstract_compiler$AbstractCompilerVisitor$variables (self) on <self:AbstractCompilerVisitor> */
2778 var68 = self->attrs[COLOR_nitc__abstract_compiler__AbstractCompilerVisitor___variables].val; /* _variables on <self:AbstractCompilerVisitor> */
2779 if (unlikely(var68 == NULL)) {
2780 if(catchStack.cursor >= 0){
2781 longjmp(catchStack.envs[catchStack.cursor], 1);
2782 }
2783 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _variables");
2784 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 1513);
2785 fatal_exit(1);
2786 }
2787 var66 = var68;
2788 RET_LABEL67:(void)0;
2789 }
2790 }
2791 {
2792 core___core__HashMap___core__abstract_collection__Map___91d_93d_61d(var66, var_variable, var_res); /* Direct call hash_collection$HashMap$[]= on <var66:HashMap[Variable, RuntimeVariable]>*/
2793 }
2794 var = var_res;
2795 goto RET_LABEL;
2796 }
2797 RET_LABEL:;
2798 return var;
2799 }
2800 /* method abstract_compiler$AbstractCompilerVisitor$new_var for (self: AbstractCompilerVisitor, MType): RuntimeVariable */
2801 val* nitc___nitc__AbstractCompilerVisitor___new_var(val* self, val* p0) {
2802 val* var /* : RuntimeVariable */;
2803 val* var_mtype /* var mtype: MType */;
2804 val* var1 /* : MType */;
2805 static val* varonce;
2806 val* var2 /* : String */;
2807 char* var3 /* : CString */;
2808 val* var4 /* : String */;
2809 val* var5 /* : nullable Int */;
2810 val* var6 /* : nullable Int */;
2811 val* var7 /* : nullable Bool */;
2812 val* var8 /* : nullable Bool */;
2813 val* var9 /* : String */;
2814 val* var_name /* var name: String */;
2815 val* var10 /* : RuntimeVariable */;
2816 val* var_res /* var res: RuntimeVariable */;
2817 val* var12 /* : NativeArray[String] */;
2818 static val* varonce11;
2819 static val* varonce13;
2820 val* var14 /* : String */;
2821 char* var15 /* : CString */;
2822 val* var16 /* : String */;
2823 val* var17 /* : nullable Int */;
2824 val* var18 /* : nullable Int */;
2825 val* var19 /* : nullable Bool */;
2826 val* var20 /* : nullable Bool */;
2827 static val* varonce21;
2828 val* var22 /* : String */;
2829 char* var23 /* : CString */;
2830 val* var24 /* : String */;
2831 val* var25 /* : nullable Int */;
2832 val* var26 /* : nullable Int */;
2833 val* var27 /* : nullable Bool */;
2834 val* var28 /* : nullable Bool */;
2835 static val* varonce29;
2836 val* var30 /* : String */;
2837 char* var31 /* : CString */;
2838 val* var32 /* : String */;
2839 val* var33 /* : nullable Int */;
2840 val* var34 /* : nullable Int */;
2841 val* var35 /* : nullable Bool */;
2842 val* var36 /* : nullable Bool */;
2843 val* var37 /* : String */;
2844 val* var38 /* : String */;
2845 val* var39 /* : String */;
2846 var_mtype = p0;
2847 {
2848 var1 = nitc___nitc__AbstractCompilerVisitor___anchor(self, var_mtype);
2849 }
2850 var_mtype = var1;
2851 if (likely(varonce!=NULL)) {
2852 var2 = varonce;
2853 } else {
2854 var3 = "var";
2855 var5 = (val*)(3l<<2|1);
2856 var6 = (val*)(3l<<2|1);
2857 var7 = (val*)((long)(0)<<2|3);
2858 var8 = (val*)((long)(0)<<2|3);
2859 var4 = core__flat___CString___to_s_unsafe(var3, var5, var6, var7, var8);
2860 var2 = var4;
2861 varonce = var2;
2862 }
2863 {
2864 var9 = nitc___nitc__AbstractCompilerVisitor___get_name(self, var2);
2865 }
2866 var_name = var9;
2867 var10 = NEW_nitc__RuntimeVariable(&type_nitc__RuntimeVariable);
2868 {
2869 ((void(*)(val* self, val* p0))(var10->class->vft[COLOR_nitc__abstract_compiler__RuntimeVariable__name_61d]))(var10, var_name); /* name= on <var10:RuntimeVariable>*/
2870 }
2871 {
2872 ((void(*)(val* self, val* p0))(var10->class->vft[COLOR_nitc__abstract_compiler__RuntimeVariable__mtype_61d]))(var10, var_mtype); /* mtype= on <var10:RuntimeVariable>*/
2873 }
2874 {
2875 ((void(*)(val* self, val* p0))(var10->class->vft[COLOR_nitc__abstract_compiler__RuntimeVariable__mcasttype_61d]))(var10, var_mtype); /* mcasttype= on <var10:RuntimeVariable>*/
2876 }
2877 {
2878 ((void(*)(val* self))(var10->class->vft[COLOR_core__kernel__Object__init]))(var10); /* init on <var10:RuntimeVariable>*/
2879 }
2880 var_res = var10;
2881 if (unlikely(varonce11==NULL)) {
2882 var12 = NEW_core__NativeArray((int)6l, &type_core__NativeArray__core__String);
2883 if (likely(varonce13!=NULL)) {
2884 var14 = varonce13;
2885 } else {
2886 var15 = " ";
2887 var17 = (val*)(1l<<2|1);
2888 var18 = (val*)(1l<<2|1);
2889 var19 = (val*)((long)(0)<<2|3);
2890 var20 = (val*)((long)(0)<<2|3);
2891 var16 = core__flat___CString___to_s_unsafe(var15, var17, var18, var19, var20);
2892 var14 = var16;
2893 varonce13 = var14;
2894 }
2895 ((struct instance_core__NativeArray*)var12)->values[1]=var14;
2896 if (likely(varonce21!=NULL)) {
2897 var22 = varonce21;
2898 } else {
2899 var23 = " /* : ";
2900 var25 = (val*)(6l<<2|1);
2901 var26 = (val*)(6l<<2|1);
2902 var27 = (val*)((long)(0)<<2|3);
2903 var28 = (val*)((long)(0)<<2|3);
2904 var24 = core__flat___CString___to_s_unsafe(var23, var25, var26, var27, var28);
2905 var22 = var24;
2906 varonce21 = var22;
2907 }
2908 ((struct instance_core__NativeArray*)var12)->values[3]=var22;
2909 if (likely(varonce29!=NULL)) {
2910 var30 = varonce29;
2911 } else {
2912 var31 = " */;";
2913 var33 = (val*)(4l<<2|1);
2914 var34 = (val*)(4l<<2|1);
2915 var35 = (val*)((long)(0)<<2|3);
2916 var36 = (val*)((long)(0)<<2|3);
2917 var32 = core__flat___CString___to_s_unsafe(var31, var33, var34, var35, var36);
2918 var30 = var32;
2919 varonce29 = var30;
2920 }
2921 ((struct instance_core__NativeArray*)var12)->values[5]=var30;
2922 } else {
2923 var12 = varonce11;
2924 varonce11 = NULL;
2925 }
2926 {
2927 var37 = ((val*(*)(val* self))(var_mtype->class->vft[COLOR_nitc__abstract_compiler__MType__ctype]))(var_mtype); /* ctype on <var_mtype:MType>*/
2928 }
2929 ((struct instance_core__NativeArray*)var12)->values[0]=var37;
2930 ((struct instance_core__NativeArray*)var12)->values[2]=var_name;
2931 {
2932 var38 = ((val*(*)(val* self))(var_mtype->class->vft[COLOR_core__abstract_text__Object__to_s]))(var_mtype); /* to_s on <var_mtype:MType>*/
2933 }
2934 ((struct instance_core__NativeArray*)var12)->values[4]=var38;
2935 {
2936 var39 = ((val*(*)(val* self))(var12->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var12); /* native_to_s on <var12:NativeArray[String]>*/
2937 }
2938 varonce11 = var12;
2939 {
2940 nitc___nitc__AbstractCompilerVisitor___add_decl(self, var39); /* Direct call abstract_compiler$AbstractCompilerVisitor$add_decl on <self:AbstractCompilerVisitor>*/
2941 }
2942 var = var_res;
2943 goto RET_LABEL;
2944 RET_LABEL:;
2945 return var;
2946 }
2947 /* method abstract_compiler$AbstractCompilerVisitor$new_var_extern for (self: AbstractCompilerVisitor, MType): RuntimeVariable */
2948 val* nitc___nitc__AbstractCompilerVisitor___new_var_extern(val* self, val* p0) {
2949 val* var /* : RuntimeVariable */;
2950 val* var_mtype /* var mtype: MType */;
2951 val* var1 /* : MType */;
2952 static val* varonce;
2953 val* var2 /* : String */;
2954 char* var3 /* : CString */;
2955 val* var4 /* : String */;
2956 val* var5 /* : nullable Int */;
2957 val* var6 /* : nullable Int */;
2958 val* var7 /* : nullable Bool */;
2959 val* var8 /* : nullable Bool */;
2960 val* var9 /* : String */;
2961 val* var_name /* var name: String */;
2962 val* var10 /* : RuntimeVariable */;
2963 val* var_res /* var res: RuntimeVariable */;
2964 val* var12 /* : NativeArray[String] */;
2965 static val* varonce11;
2966 static val* varonce13;
2967 val* var14 /* : String */;
2968 char* var15 /* : CString */;
2969 val* var16 /* : String */;
2970 val* var17 /* : nullable Int */;
2971 val* var18 /* : nullable Int */;
2972 val* var19 /* : nullable Bool */;
2973 val* var20 /* : nullable Bool */;
2974 static val* varonce21;
2975 val* var22 /* : String */;
2976 char* var23 /* : CString */;
2977 val* var24 /* : String */;
2978 val* var25 /* : nullable Int */;
2979 val* var26 /* : nullable Int */;
2980 val* var27 /* : nullable Bool */;
2981 val* var28 /* : nullable Bool */;
2982 static val* varonce29;
2983 val* var30 /* : String */;
2984 char* var31 /* : CString */;
2985 val* var32 /* : String */;
2986 val* var33 /* : nullable Int */;
2987 val* var34 /* : nullable Int */;
2988 val* var35 /* : nullable Bool */;
2989 val* var36 /* : nullable Bool */;
2990 val* var37 /* : String */;
2991 val* var38 /* : String */;
2992 val* var39 /* : String */;
2993 var_mtype = p0;
2994 {
2995 var1 = nitc___nitc__AbstractCompilerVisitor___anchor(self, var_mtype);
2996 }
2997 var_mtype = var1;
2998 if (likely(varonce!=NULL)) {
2999 var2 = varonce;
3000 } else {
3001 var3 = "var";
3002 var5 = (val*)(3l<<2|1);
3003 var6 = (val*)(3l<<2|1);
3004 var7 = (val*)((long)(0)<<2|3);
3005 var8 = (val*)((long)(0)<<2|3);
3006 var4 = core__flat___CString___to_s_unsafe(var3, var5, var6, var7, var8);
3007 var2 = var4;
3008 varonce = var2;
3009 }
3010 {
3011 var9 = nitc___nitc__AbstractCompilerVisitor___get_name(self, var2);
3012 }
3013 var_name = var9;
3014 var10 = NEW_nitc__RuntimeVariable(&type_nitc__RuntimeVariable);
3015 {
3016 ((void(*)(val* self, val* p0))(var10->class->vft[COLOR_nitc__abstract_compiler__RuntimeVariable__name_61d]))(var10, var_name); /* name= on <var10:RuntimeVariable>*/
3017 }
3018 {
3019 ((void(*)(val* self, val* p0))(var10->class->vft[COLOR_nitc__abstract_compiler__RuntimeVariable__mtype_61d]))(var10, var_mtype); /* mtype= on <var10:RuntimeVariable>*/
3020 }
3021 {
3022 ((void(*)(val* self, val* p0))(var10->class->vft[COLOR_nitc__abstract_compiler__RuntimeVariable__mcasttype_61d]))(var10, var_mtype); /* mcasttype= on <var10:RuntimeVariable>*/
3023 }
3024 {
3025 ((void(*)(val* self))(var10->class->vft[COLOR_core__kernel__Object__init]))(var10); /* init on <var10:RuntimeVariable>*/
3026 }
3027 var_res = var10;
3028 if (unlikely(varonce11==NULL)) {
3029 var12 = NEW_core__NativeArray((int)6l, &type_core__NativeArray__core__String);
3030 if (likely(varonce13!=NULL)) {
3031 var14 = varonce13;
3032 } else {
3033 var15 = " ";
3034 var17 = (val*)(1l<<2|1);
3035 var18 = (val*)(1l<<2|1);
3036 var19 = (val*)((long)(0)<<2|3);
3037 var20 = (val*)((long)(0)<<2|3);
3038 var16 = core__flat___CString___to_s_unsafe(var15, var17, var18, var19, var20);
3039 var14 = var16;
3040 varonce13 = var14;
3041 }
3042 ((struct instance_core__NativeArray*)var12)->values[1]=var14;
3043 if (likely(varonce21!=NULL)) {
3044 var22 = varonce21;
3045 } else {
3046 var23 = " /* : ";
3047 var25 = (val*)(6l<<2|1);
3048 var26 = (val*)(6l<<2|1);
3049 var27 = (val*)((long)(0)<<2|3);
3050 var28 = (val*)((long)(0)<<2|3);
3051 var24 = core__flat___CString___to_s_unsafe(var23, var25, var26, var27, var28);
3052 var22 = var24;
3053 varonce21 = var22;
3054 }
3055 ((struct instance_core__NativeArray*)var12)->values[3]=var22;
3056 if (likely(varonce29!=NULL)) {
3057 var30 = varonce29;
3058 } else {
3059 var31 = " for extern */;";
3060 var33 = (val*)(15l<<2|1);
3061 var34 = (val*)(15l<<2|1);
3062 var35 = (val*)((long)(0)<<2|3);
3063 var36 = (val*)((long)(0)<<2|3);
3064 var32 = core__flat___CString___to_s_unsafe(var31, var33, var34, var35, var36);
3065 var30 = var32;
3066 varonce29 = var30;
3067 }
3068 ((struct instance_core__NativeArray*)var12)->values[5]=var30;
3069 } else {
3070 var12 = varonce11;
3071 varonce11 = NULL;
3072 }
3073 {
3074 var37 = ((val*(*)(val* self))(var_mtype->class->vft[COLOR_nitc__abstract_compiler__MType__ctype_extern]))(var_mtype); /* ctype_extern on <var_mtype:MType>*/
3075 }
3076 ((struct instance_core__NativeArray*)var12)->values[0]=var37;
3077 ((struct instance_core__NativeArray*)var12)->values[2]=var_name;
3078 {
3079 var38 = ((val*(*)(val* self))(var_mtype->class->vft[COLOR_core__abstract_text__Object__to_s]))(var_mtype); /* to_s on <var_mtype:MType>*/
3080 }
3081 ((struct instance_core__NativeArray*)var12)->values[4]=var38;
3082 {
3083 var39 = ((val*(*)(val* self))(var12->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var12); /* native_to_s on <var12:NativeArray[String]>*/
3084 }
3085 varonce11 = var12;
3086 {
3087 nitc___nitc__AbstractCompilerVisitor___add_decl(self, var39); /* Direct call abstract_compiler$AbstractCompilerVisitor$add_decl on <self:AbstractCompilerVisitor>*/
3088 }
3089 var = var_res;
3090 goto RET_LABEL;
3091 RET_LABEL:;
3092 return var;
3093 }
3094 /* method abstract_compiler$AbstractCompilerVisitor$new_named_var for (self: AbstractCompilerVisitor, MType, String): RuntimeVariable */
3095 val* nitc___nitc__AbstractCompilerVisitor___new_named_var(val* self, val* p0, val* p1) {
3096 val* var /* : RuntimeVariable */;
3097 val* var_mtype /* var mtype: MType */;
3098 val* var_name /* var name: String */;
3099 val* var1 /* : MType */;
3100 val* var2 /* : RuntimeVariable */;
3101 val* var_res /* var res: RuntimeVariable */;
3102 val* var3 /* : NativeArray[String] */;
3103 static val* varonce;
3104 static val* varonce4;
3105 val* var5 /* : String */;
3106 char* var6 /* : CString */;
3107 val* var7 /* : String */;
3108 val* var8 /* : nullable Int */;
3109 val* var9 /* : nullable Int */;
3110 val* var10 /* : nullable Bool */;
3111 val* var11 /* : nullable Bool */;
3112 static val* varonce12;
3113 val* var13 /* : String */;
3114 char* var14 /* : CString */;
3115 val* var15 /* : String */;
3116 val* var16 /* : nullable Int */;
3117 val* var17 /* : nullable Int */;
3118 val* var18 /* : nullable Bool */;
3119 val* var19 /* : nullable Bool */;
3120 static val* varonce20;
3121 val* var21 /* : String */;
3122 char* var22 /* : CString */;
3123 val* var23 /* : String */;
3124 val* var24 /* : nullable Int */;
3125 val* var25 /* : nullable Int */;
3126 val* var26 /* : nullable Bool */;
3127 val* var27 /* : nullable Bool */;
3128 val* var28 /* : String */;
3129 val* var29 /* : String */;
3130 val* var30 /* : String */;
3131 var_mtype = p0;
3132 var_name = p1;
3133 {
3134 var1 = nitc___nitc__AbstractCompilerVisitor___anchor(self, var_mtype);
3135 }
3136 var_mtype = var1;
3137 var2 = NEW_nitc__RuntimeVariable(&type_nitc__RuntimeVariable);
3138 {
3139 ((void(*)(val* self, val* p0))(var2->class->vft[COLOR_nitc__abstract_compiler__RuntimeVariable__name_61d]))(var2, var_name); /* name= on <var2:RuntimeVariable>*/
3140 }
3141 {
3142 ((void(*)(val* self, val* p0))(var2->class->vft[COLOR_nitc__abstract_compiler__RuntimeVariable__mtype_61d]))(var2, var_mtype); /* mtype= on <var2:RuntimeVariable>*/
3143 }
3144 {
3145 ((void(*)(val* self, val* p0))(var2->class->vft[COLOR_nitc__abstract_compiler__RuntimeVariable__mcasttype_61d]))(var2, var_mtype); /* mcasttype= on <var2:RuntimeVariable>*/
3146 }
3147 {
3148 ((void(*)(val* self))(var2->class->vft[COLOR_core__kernel__Object__init]))(var2); /* init on <var2:RuntimeVariable>*/
3149 }
3150 var_res = var2;
3151 if (unlikely(varonce==NULL)) {
3152 var3 = NEW_core__NativeArray((int)6l, &type_core__NativeArray__core__String);
3153 if (likely(varonce4!=NULL)) {
3154 var5 = varonce4;
3155 } else {
3156 var6 = " ";
3157 var8 = (val*)(1l<<2|1);
3158 var9 = (val*)(1l<<2|1);
3159 var10 = (val*)((long)(0)<<2|3);
3160 var11 = (val*)((long)(0)<<2|3);
3161 var7 = core__flat___CString___to_s_unsafe(var6, var8, var9, var10, var11);
3162 var5 = var7;
3163 varonce4 = var5;
3164 }
3165 ((struct instance_core__NativeArray*)var3)->values[1]=var5;
3166 if (likely(varonce12!=NULL)) {
3167 var13 = varonce12;
3168 } else {
3169 var14 = " /* : ";
3170 var16 = (val*)(6l<<2|1);
3171 var17 = (val*)(6l<<2|1);
3172 var18 = (val*)((long)(0)<<2|3);
3173 var19 = (val*)((long)(0)<<2|3);
3174 var15 = core__flat___CString___to_s_unsafe(var14, var16, var17, var18, var19);
3175 var13 = var15;
3176 varonce12 = var13;
3177 }
3178 ((struct instance_core__NativeArray*)var3)->values[3]=var13;
3179 if (likely(varonce20!=NULL)) {
3180 var21 = varonce20;
3181 } else {
3182 var22 = " */;";
3183 var24 = (val*)(4l<<2|1);
3184 var25 = (val*)(4l<<2|1);
3185 var26 = (val*)((long)(0)<<2|3);
3186 var27 = (val*)((long)(0)<<2|3);
3187 var23 = core__flat___CString___to_s_unsafe(var22, var24, var25, var26, var27);
3188 var21 = var23;
3189 varonce20 = var21;
3190 }
3191 ((struct instance_core__NativeArray*)var3)->values[5]=var21;
3192 } else {
3193 var3 = varonce;
3194 varonce = NULL;
3195 }
3196 {
3197 var28 = ((val*(*)(val* self))(var_mtype->class->vft[COLOR_nitc__abstract_compiler__MType__ctype]))(var_mtype); /* ctype on <var_mtype:MType>*/
3198 }
3199 ((struct instance_core__NativeArray*)var3)->values[0]=var28;
3200 ((struct instance_core__NativeArray*)var3)->values[2]=var_name;
3201 {
3202 var29 = ((val*(*)(val* self))(var_mtype->class->vft[COLOR_core__abstract_text__Object__to_s]))(var_mtype); /* to_s on <var_mtype:MType>*/
3203 }
3204 ((struct instance_core__NativeArray*)var3)->values[4]=var29;
3205 {
3206 var30 = ((val*(*)(val* self))(var3->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var3); /* native_to_s on <var3:NativeArray[String]>*/
3207 }
3208 varonce = var3;
3209 {
3210 nitc___nitc__AbstractCompilerVisitor___add_decl(self, var30); /* Direct call abstract_compiler$AbstractCompilerVisitor$add_decl on <self:AbstractCompilerVisitor>*/
3211 }
3212 var = var_res;
3213 goto RET_LABEL;
3214 RET_LABEL:;
3215 return var;
3216 }
3217 /* method abstract_compiler$AbstractCompilerVisitor$assign for (self: AbstractCompilerVisitor, RuntimeVariable, RuntimeVariable) */
3218 void nitc___nitc__AbstractCompilerVisitor___assign(val* self, val* p0, val* p1) {
3219 val* var_left /* var left: RuntimeVariable */;
3220 val* var_right /* var right: RuntimeVariable */;
3221 val* var /* : MType */;
3222 val* var2 /* : MType */;
3223 val* var3 /* : RuntimeVariable */;
3224 val* var4 /* : NativeArray[String] */;
3225 static val* varonce;
3226 static val* varonce5;
3227 val* var6 /* : String */;
3228 char* var7 /* : CString */;
3229 val* var8 /* : String */;
3230 val* var9 /* : nullable Int */;
3231 val* var10 /* : nullable Int */;
3232 val* var11 /* : nullable Bool */;
3233 val* var12 /* : nullable Bool */;
3234 static val* varonce13;
3235 val* var14 /* : String */;
3236 char* var15 /* : CString */;
3237 val* var16 /* : String */;
3238 val* var17 /* : nullable Int */;
3239 val* var18 /* : nullable Int */;
3240 val* var19 /* : nullable Bool */;
3241 val* var20 /* : nullable Bool */;
3242 val* var21 /* : String */;
3243 val* var22 /* : String */;
3244 val* var23 /* : String */;
3245 var_left = p0;
3246 var_right = p1;
3247 {
3248 { /* Inline abstract_compiler$RuntimeVariable$mtype (var_left) on <var_left:RuntimeVariable> */
3249 var2 = var_left->attrs[COLOR_nitc__abstract_compiler__RuntimeVariable___mtype].val; /* _mtype on <var_left:RuntimeVariable> */
3250 if (unlikely(var2 == NULL)) {
3251 if(catchStack.cursor >= 0){
3252 longjmp(catchStack.envs[catchStack.cursor], 1);
3253 }
3254 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
3255 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 1983);
3256 fatal_exit(1);
3257 }
3258 var = var2;
3259 RET_LABEL1:(void)0;
3260 }
3261 }
3262 {
3263 var3 = nitc___nitc__SeparateCompilerVisitor___nitc__abstract_compiler__AbstractCompilerVisitor__autobox(self, var_right, var);
3264 }
3265 var_right = var3;
3266 if (unlikely(varonce==NULL)) {
3267 var4 = NEW_core__NativeArray((int)4l, &type_core__NativeArray__core__String);
3268 if (likely(varonce5!=NULL)) {
3269 var6 = varonce5;
3270 } else {
3271 var7 = " = ";
3272 var9 = (val*)(3l<<2|1);
3273 var10 = (val*)(3l<<2|1);
3274 var11 = (val*)((long)(0)<<2|3);
3275 var12 = (val*)((long)(0)<<2|3);
3276 var8 = core__flat___CString___to_s_unsafe(var7, var9, var10, var11, var12);
3277 var6 = var8;
3278 varonce5 = var6;
3279 }
3280 ((struct instance_core__NativeArray*)var4)->values[1]=var6;
3281 if (likely(varonce13!=NULL)) {
3282 var14 = varonce13;
3283 } else {
3284 var15 = ";";
3285 var17 = (val*)(1l<<2|1);
3286 var18 = (val*)(1l<<2|1);
3287 var19 = (val*)((long)(0)<<2|3);
3288 var20 = (val*)((long)(0)<<2|3);
3289 var16 = core__flat___CString___to_s_unsafe(var15, var17, var18, var19, var20);
3290 var14 = var16;
3291 varonce13 = var14;
3292 }
3293 ((struct instance_core__NativeArray*)var4)->values[3]=var14;
3294 } else {
3295 var4 = varonce;
3296 varonce = NULL;
3297 }
3298 {
3299 var21 = ((val*(*)(val* self))(var_left->class->vft[COLOR_core__abstract_text__Object__to_s]))(var_left); /* to_s on <var_left:RuntimeVariable>*/
3300 }
3301 ((struct instance_core__NativeArray*)var4)->values[0]=var21;
3302 {
3303 var22 = ((val*(*)(val* self))(var_right->class->vft[COLOR_core__abstract_text__Object__to_s]))(var_right); /* to_s on <var_right:RuntimeVariable>*/
3304 }
3305 ((struct instance_core__NativeArray*)var4)->values[2]=var22;
3306 {
3307 var23 = ((val*(*)(val* self))(var4->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var4); /* native_to_s on <var4:NativeArray[String]>*/
3308 }
3309 varonce = var4;
3310 {
3311 nitc___nitc__AbstractCompilerVisitor___add(self, var23); /* Direct call abstract_compiler$AbstractCompilerVisitor$add on <self:AbstractCompilerVisitor>*/
3312 }
3313 RET_LABEL:;
3314 }
3315 /* method abstract_compiler$AbstractCompilerVisitor$init_instance_or_extern for (self: AbstractCompilerVisitor, MClassType): RuntimeVariable */
3316 val* nitc___nitc__AbstractCompilerVisitor___init_instance_or_extern(val* self, val* p0) {
3317 val* var /* : RuntimeVariable */;
3318 val* var_mtype /* var mtype: MClassType */;
3319 val* var1 /* : String */;
3320 val* var_ctype /* var ctype: String */;
3321 val* var2 /* : MClass */;
3322 val* var4 /* : MClass */;
3323 val* var5 /* : String */;
3324 val* var7 /* : String */;
3325 static val* varonce;
3326 val* var8 /* : String */;
3327 char* var9 /* : CString */;
3328 val* var10 /* : String */;
3329 val* var11 /* : nullable Int */;
3330 val* var12 /* : nullable Int */;
3331 val* var13 /* : nullable Bool */;
3332 val* var14 /* : nullable Bool */;
3333 short int var15 /* : Bool */;
3334 val* var_other /* var other: nullable Object */;
3335 short int var17 /* : Bool */;
3336 short int var18 /* : Bool */;
3337 short int var19 /* : Bool */;
3338 short int var20 /* : Bool */;
3339 val* var21 /* : RuntimeVariable */;
3340 val* var_recv /* var recv: nullable Object */;
3341 static val* varonce22;
3342 val* var23 /* : String */;
3343 char* var24 /* : CString */;
3344 val* var25 /* : String */;
3345 val* var26 /* : nullable Int */;
3346 val* var27 /* : nullable Int */;
3347 val* var28 /* : nullable Bool */;
3348 val* var29 /* : nullable Bool */;
3349 short int var30 /* : Bool */;
3350 static val* varonce31;
3351 val* var32 /* : String */;
3352 char* var33 /* : CString */;
3353 val* var34 /* : String */;
3354 val* var35 /* : nullable Int */;
3355 val* var36 /* : nullable Int */;
3356 val* var37 /* : nullable Bool */;
3357 val* var38 /* : nullable Bool */;
3358 val* var39 /* : RuntimeVariable */;
3359 val* var41 /* : NativeArray[String] */;
3360 static val* varonce40;
3361 static val* varonce42;
3362 val* var43 /* : String */;
3363 char* var44 /* : CString */;
3364 val* var45 /* : String */;
3365 val* var46 /* : nullable Int */;
3366 val* var47 /* : nullable Int */;
3367 val* var48 /* : nullable Bool */;
3368 val* var49 /* : nullable Bool */;
3369 static val* varonce50;
3370 val* var51 /* : String */;
3371 char* var52 /* : CString */;
3372 val* var53 /* : String */;
3373 val* var54 /* : nullable Int */;
3374 val* var55 /* : nullable Int */;
3375 val* var56 /* : nullable Bool */;
3376 val* var57 /* : nullable Bool */;
3377 val* var58 /* : String */;
3378 val* var59 /* : RuntimeVariable */;
3379 var_mtype = p0;
3380 {
3381 var1 = nitc__abstract_compiler___MClassType___MType__ctype(var_mtype);
3382 }
3383 var_ctype = var1;
3384 {
3385 { /* Inline model$MClassType$mclass (var_mtype) on <var_mtype:MClassType> */
3386 var4 = var_mtype->attrs[COLOR_nitc__model__MClassType___mclass].val; /* _mclass on <var_mtype:MClassType> */
3387 if (unlikely(var4 == NULL)) {
3388 if(catchStack.cursor >= 0){
3389 longjmp(catchStack.envs[catchStack.cursor], 1);
3390 }
3391 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
3392 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1197);
3393 fatal_exit(1);
3394 }
3395 var2 = var4;
3396 RET_LABEL3:(void)0;
3397 }
3398 }
3399 {
3400 { /* Inline model$MClass$name (var2) on <var2:MClass> */
3401 var7 = var2->attrs[COLOR_nitc__model__MClass___name].val; /* _name on <var2:MClass> */
3402 if (unlikely(var7 == NULL)) {
3403 if(catchStack.cursor >= 0){
3404 longjmp(catchStack.envs[catchStack.cursor], 1);
3405 }
3406 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
3407 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 396);
3408 fatal_exit(1);
3409 }
3410 var5 = var7;
3411 RET_LABEL6:(void)0;
3412 }
3413 }
3414 if (likely(varonce!=NULL)) {
3415 var8 = varonce;
3416 } else {
3417 var9 = "NativeArray";
3418 var11 = (val*)(11l<<2|1);
3419 var12 = (val*)(11l<<2|1);
3420 var13 = (val*)((long)(0)<<2|3);
3421 var14 = (val*)((long)(0)<<2|3);
3422 var10 = core__flat___CString___to_s_unsafe(var9, var11, var12, var13, var14);
3423 var8 = var10;
3424 varonce = var8;
3425 }
3426 {
3427 { /* Inline kernel$Object$!= (var5,var8) on <var5:String> */
3428 var_other = var8;
3429 {
3430 var17 = ((short int(*)(val* self, val* p0))(var5->class->vft[COLOR_core__kernel__Object___61d_61d]))(var5, var_other); /* == on <var5:String>*/
3431 }
3432 var18 = !var17;
3433 var15 = var18;
3434 goto RET_LABEL16;
3435 RET_LABEL16:(void)0;
3436 }
3437 }
3438 if (unlikely(!var15)) {
3439 if(catchStack.cursor >= 0){
3440 longjmp(catchStack.envs[catchStack.cursor], 1);
3441 }
3442 PRINT_ERROR("Runtime error: %s", "Assert failed");
3443 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 1580);
3444 fatal_exit(1);
3445 }
3446 {
3447 var19 = nitc__abstract_compiler___MClassType___MType__is_c_primitive(var_mtype);
3448 }
3449 var20 = !var19;
3450 if (var20){
3451 {
3452 var21 = ((val*(*)(val* self, val* p0))(self->class->vft[COLOR_nitc__abstract_compiler__AbstractCompilerVisitor__init_instance]))(self, var_mtype); /* init_instance on <self:AbstractCompilerVisitor>*/
3453 }
3454 var_recv = var21;
3455 } else {
3456 if (likely(varonce22!=NULL)) {
3457 var23 = varonce22;
3458 } else {
3459 var24 = "char*";
3460 var26 = (val*)(5l<<2|1);
3461 var27 = (val*)(5l<<2|1);
3462 var28 = (val*)((long)(0)<<2|3);
3463 var29 = (val*)((long)(0)<<2|3);
3464 var25 = core__flat___CString___to_s_unsafe(var24, var26, var27, var28, var29);
3465 var23 = var25;
3466 varonce22 = var23;
3467 }
3468 {
3469 var30 = ((short int(*)(val* self, val* p0))(var_ctype->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_ctype, var23); /* == on <var_ctype:String>*/
3470 }
3471 if (var30){
3472 if (likely(varonce31!=NULL)) {
3473 var32 = varonce31;
3474 } else {
3475 var33 = "NULL/*special!*/";
3476 var35 = (val*)(16l<<2|1);
3477 var36 = (val*)(16l<<2|1);
3478 var37 = (val*)((long)(0)<<2|3);
3479 var38 = (val*)((long)(0)<<2|3);
3480 var34 = core__flat___CString___to_s_unsafe(var33, var35, var36, var37, var38);
3481 var32 = var34;
3482 varonce31 = var32;
3483 }
3484 {
3485 var39 = nitc___nitc__AbstractCompilerVisitor___new_expr(self, var32, var_mtype);
3486 }
3487 var_recv = var39;
3488 } else {
3489 if (unlikely(varonce40==NULL)) {
3490 var41 = NEW_core__NativeArray((int)3l, &type_core__NativeArray__core__String);
3491 if (likely(varonce42!=NULL)) {
3492 var43 = varonce42;
3493 } else {
3494 var44 = "(";
3495 var46 = (val*)(1l<<2|1);
3496 var47 = (val*)(1l<<2|1);
3497 var48 = (val*)((long)(0)<<2|3);
3498 var49 = (val*)((long)(0)<<2|3);
3499 var45 = core__flat___CString___to_s_unsafe(var44, var46, var47, var48, var49);
3500 var43 = var45;
3501 varonce42 = var43;
3502 }
3503 ((struct instance_core__NativeArray*)var41)->values[0]=var43;
3504 if (likely(varonce50!=NULL)) {
3505 var51 = varonce50;
3506 } else {
3507 var52 = ")0/*special!*/";
3508 var54 = (val*)(14l<<2|1);
3509 var55 = (val*)(14l<<2|1);
3510 var56 = (val*)((long)(0)<<2|3);
3511 var57 = (val*)((long)(0)<<2|3);
3512 var53 = core__flat___CString___to_s_unsafe(var52, var54, var55, var56, var57);
3513 var51 = var53;
3514 varonce50 = var51;
3515 }
3516 ((struct instance_core__NativeArray*)var41)->values[2]=var51;
3517 } else {
3518 var41 = varonce40;
3519 varonce40 = NULL;
3520 }
3521 ((struct instance_core__NativeArray*)var41)->values[1]=var_ctype;
3522 {
3523 var58 = ((val*(*)(val* self))(var41->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var41); /* native_to_s on <var41:NativeArray[String]>*/
3524 }
3525 varonce40 = var41;
3526 {
3527 var59 = nitc___nitc__AbstractCompilerVisitor___new_expr(self, var58, var_mtype);
3528 }
3529 var_recv = var59;
3530 }
3531 }
3532 var = var_recv;
3533 goto RET_LABEL;
3534 RET_LABEL:;
3535 return var;
3536 }
3537 /* method abstract_compiler$AbstractCompilerVisitor$set_finalizer for (self: AbstractCompilerVisitor, RuntimeVariable) */
3538 void nitc___nitc__AbstractCompilerVisitor___set_finalizer(val* self, val* p0) {
3539 val* var_recv /* var recv: RuntimeVariable */;
3540 val* var /* : MType */;
3541 val* var2 /* : MType */;
3542 val* var_mtype /* var mtype: MType */;
3543 val* var3 /* : AbstractCompiler */;
3544 val* var5 /* : AbstractCompiler */;
3545 val* var6 /* : MModule */;
3546 val* var8 /* : MModule */;
3547 val* var9 /* : nullable MClassType */;
3548 val* var_finalizable_type /* var finalizable_type: nullable MClassType */;
3549 short int var10 /* : Bool */;
3550 short int var11 /* : Bool */;
3551 short int var12 /* : Bool */;
3552 short int var13 /* : Bool */;
3553 val* var_other /* var other: nullable Object */;
3554 short int var15 /* : Bool */;
3555 short int var16 /* : Bool */;
3556 short int var_ /* var : Bool */;
3557 short int var17 /* : Bool */;
3558 short int var18 /* : Bool */;
3559 short int var_19 /* var : Bool */;
3560 val* var20 /* : AbstractCompiler */;
3561 val* var22 /* : AbstractCompiler */;
3562 val* var23 /* : MModule */;
3563 val* var25 /* : MModule */;
3564 short int var26 /* : Bool */;
3565 val* var27 /* : NativeArray[String] */;
3566 static val* varonce;
3567 static val* varonce28;
3568 val* var29 /* : String */;
3569 char* var30 /* : CString */;
3570 val* var31 /* : String */;
3571 val* var32 /* : nullable Int */;
3572 val* var33 /* : nullable Int */;
3573 val* var34 /* : nullable Bool */;
3574 val* var35 /* : nullable Bool */;
3575 static val* varonce36;
3576 val* var37 /* : String */;
3577 char* var38 /* : CString */;
3578 val* var39 /* : String */;
3579 val* var40 /* : nullable Int */;
3580 val* var41 /* : nullable Int */;
3581 val* var42 /* : nullable Bool */;
3582 val* var43 /* : nullable Bool */;
3583 val* var44 /* : String */;
3584 val* var45 /* : String */;
3585 var_recv = p0;
3586 {
3587 { /* Inline abstract_compiler$RuntimeVariable$mtype (var_recv) on <var_recv:RuntimeVariable> */
3588 var2 = var_recv->attrs[COLOR_nitc__abstract_compiler__RuntimeVariable___mtype].val; /* _mtype on <var_recv:RuntimeVariable> */
3589 if (unlikely(var2 == NULL)) {
3590 if(catchStack.cursor >= 0){
3591 longjmp(catchStack.envs[catchStack.cursor], 1);
3592 }
3593 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
3594 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 1983);
3595 fatal_exit(1);
3596 }
3597 var = var2;
3598 RET_LABEL1:(void)0;
3599 }
3600 }
3601 var_mtype = var;
3602 {
3603 { /* Inline abstract_compiler$AbstractCompilerVisitor$compiler (self) on <self:AbstractCompilerVisitor> */
3604 var5 = self->attrs[COLOR_nitc__abstract_compiler__AbstractCompilerVisitor___compiler].val; /* _compiler on <self:AbstractCompilerVisitor> */
3605 if (unlikely(var5 == NULL)) {
3606 if(catchStack.cursor >= 0){
3607 longjmp(catchStack.envs[catchStack.cursor], 1);
3608 }
3609 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _compiler");
3610 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 1214);
3611 fatal_exit(1);
3612 }
3613 var3 = var5;
3614 RET_LABEL4:(void)0;
3615 }
3616 }
3617 {
3618 { /* Inline abstract_compiler$AbstractCompiler$mainmodule (var3) on <var3:AbstractCompiler> */
3619 var8 = var3->attrs[COLOR_nitc__abstract_compiler__AbstractCompiler___mainmodule].val; /* _mainmodule on <var3:AbstractCompiler> */
3620 if (unlikely(var8 == NULL)) {
3621 if(catchStack.cursor >= 0){
3622 longjmp(catchStack.envs[catchStack.cursor], 1);
3623 }
3624 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule");
3625 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 545);
3626 fatal_exit(1);
3627 }
3628 var6 = var8;
3629 RET_LABEL7:(void)0;
3630 }
3631 }
3632 {
3633 var9 = nitc__model___MModule___finalizable_type(var6);
3634 }
3635 var_finalizable_type = var9;
3636 if (var_finalizable_type == NULL) {
3637 var12 = 0; /* is null */
3638 } else {
3639 var12 = 1; /* arg is null and recv is not */
3640 }
3641 if (0) {
3642 { /* Inline kernel$Object$!= (var_finalizable_type,((val*)NULL)) on <var_finalizable_type:nullable MClassType> */
3643 var_other = ((val*)NULL);
3644 {
3645 var15 = ((short int(*)(val* self, val* p0))(var_finalizable_type->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_finalizable_type, var_other); /* == on <var_finalizable_type:nullable MClassType(MClassType)>*/
3646 }
3647 var16 = !var15;
3648 var13 = var16;
3649 goto RET_LABEL14;
3650 RET_LABEL14:(void)0;
3651 }
3652 var12 = var13;
3653 }
3654 var_ = var12;
3655 if (var12){
3656 {
3657 var17 = ((short int(*)(val* self))(var_mtype->class->vft[COLOR_nitc__model__MType__need_anchor]))(var_mtype); /* need_anchor on <var_mtype:MType>*/
3658 }
3659 var18 = !var17;
3660 var11 = var18;
3661 } else {
3662 var11 = var_;
3663 }
3664 var_19 = var11;
3665 if (var11){
3666 {
3667 { /* Inline abstract_compiler$AbstractCompilerVisitor$compiler (self) on <self:AbstractCompilerVisitor> */
3668 var22 = self->attrs[COLOR_nitc__abstract_compiler__AbstractCompilerVisitor___compiler].val; /* _compiler on <self:AbstractCompilerVisitor> */
3669 if (unlikely(var22 == NULL)) {
3670 if(catchStack.cursor >= 0){
3671 longjmp(catchStack.envs[catchStack.cursor], 1);
3672 }
3673 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _compiler");
3674 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 1214);
3675 fatal_exit(1);
3676 }
3677 var20 = var22;
3678 RET_LABEL21:(void)0;
3679 }
3680 }
3681 {
3682 { /* Inline abstract_compiler$AbstractCompiler$mainmodule (var20) on <var20:AbstractCompiler> */
3683 var25 = var20->attrs[COLOR_nitc__abstract_compiler__AbstractCompiler___mainmodule].val; /* _mainmodule on <var20:AbstractCompiler> */
3684 if (unlikely(var25 == NULL)) {
3685 if(catchStack.cursor >= 0){
3686 longjmp(catchStack.envs[catchStack.cursor], 1);
3687 }
3688 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule");
3689 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 545);
3690 fatal_exit(1);
3691 }
3692 var23 = var25;
3693 RET_LABEL24:(void)0;
3694 }
3695 }
3696 {
3697 var26 = nitc___nitc__MType___is_subtype(var_mtype, var23, ((val*)NULL), var_finalizable_type);
3698 }
3699 var10 = var26;
3700 } else {
3701 var10 = var_19;
3702 }
3703 if (var10){
3704 if (unlikely(varonce==NULL)) {
3705 var27 = NEW_core__NativeArray((int)3l, &type_core__NativeArray__core__String);
3706 if (likely(varonce28!=NULL)) {
3707 var29 = varonce28;
3708 } else {
3709 var30 = "gc_register_finalizer(";
3710 var32 = (val*)(22l<<2|1);
3711 var33 = (val*)(22l<<2|1);
3712 var34 = (val*)((long)(0)<<2|3);
3713 var35 = (val*)((long)(0)<<2|3);
3714 var31 = core__flat___CString___to_s_unsafe(var30, var32, var33, var34, var35);
3715 var29 = var31;
3716 varonce28 = var29;
3717 }
3718 ((struct instance_core__NativeArray*)var27)->values[0]=var29;
3719 if (likely(varonce36!=NULL)) {
3720 var37 = varonce36;
3721 } else {
3722 var38 = ");";
3723 var40 = (val*)(2l<<2|1);
3724 var41 = (val*)(2l<<2|1);
3725 var42 = (val*)((long)(0)<<2|3);
3726 var43 = (val*)((long)(0)<<2|3);
3727 var39 = core__flat___CString___to_s_unsafe(var38, var40, var41, var42, var43);
3728 var37 = var39;
3729 varonce36 = var37;
3730 }
3731 ((struct instance_core__NativeArray*)var27)->values[2]=var37;
3732 } else {
3733 var27 = varonce;
3734 varonce = NULL;
3735 }
3736 {
3737 var44 = ((val*(*)(val* self))(var_recv->class->vft[COLOR_core__abstract_text__Object__to_s]))(var_recv); /* to_s on <var_recv:RuntimeVariable>*/
3738 }
3739 ((struct instance_core__NativeArray*)var27)->values[1]=var44;
3740 {
3741 var45 = ((val*(*)(val* self))(var27->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var27); /* native_to_s on <var27:NativeArray[String]>*/
3742 }
3743 varonce = var27;
3744 {
3745 nitc___nitc__AbstractCompilerVisitor___add(self, var45); /* Direct call abstract_compiler$AbstractCompilerVisitor$add on <self:AbstractCompilerVisitor>*/
3746 }
3747 } else {
3748 }
3749 RET_LABEL:;
3750 }
3751 /* method abstract_compiler$AbstractCompilerVisitor$mmodule for (self: AbstractCompilerVisitor): MModule */
3752 val* nitc___nitc__AbstractCompilerVisitor___mmodule(val* self) {
3753 val* var /* : MModule */;
3754 val* var1 /* : AbstractCompiler */;
3755 val* var3 /* : AbstractCompiler */;
3756 val* var4 /* : MModule */;
3757 val* var6 /* : MModule */;
3758 {
3759 { /* Inline abstract_compiler$AbstractCompilerVisitor$compiler (self) on <self:AbstractCompilerVisitor> */
3760 var3 = self->attrs[COLOR_nitc__abstract_compiler__AbstractCompilerVisitor___compiler].val; /* _compiler on <self:AbstractCompilerVisitor> */
3761 if (unlikely(var3 == NULL)) {
3762 if(catchStack.cursor >= 0){
3763 longjmp(catchStack.envs[catchStack.cursor], 1);
3764 }
3765 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _compiler");
3766 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 1214);
3767 fatal_exit(1);
3768 }
3769 var1 = var3;
3770 RET_LABEL2:(void)0;
3771 }
3772 }
3773 {
3774 { /* Inline abstract_compiler$AbstractCompiler$mainmodule (var1) on <var1:AbstractCompiler> */
3775 var6 = var1->attrs[COLOR_nitc__abstract_compiler__AbstractCompiler___mainmodule].val; /* _mainmodule on <var1:AbstractCompiler> */
3776 if (unlikely(var6 == NULL)) {
3777 if(catchStack.cursor >= 0){
3778 longjmp(catchStack.envs[catchStack.cursor], 1);
3779 }
3780 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule");
3781 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 545);
3782 fatal_exit(1);
3783 }
3784 var4 = var6;
3785 RET_LABEL5:(void)0;
3786 }
3787 }
3788 var = var4;
3789 goto RET_LABEL;
3790 RET_LABEL:;
3791 return var;
3792 }
3793 /* method abstract_compiler$AbstractCompilerVisitor$int_instance for (self: AbstractCompilerVisitor, Int): RuntimeVariable */
3794 val* nitc___nitc__AbstractCompilerVisitor___int_instance(val* self, long p0) {
3795 val* var /* : RuntimeVariable */;
3796 long var_value /* var value: Int */;
3797 val* var1 /* : MModule */;
3798 val* var2 /* : MClassType */;
3799 val* var_t /* var t: MClassType */;
3800 val* var3 /* : RuntimeVariable */;
3801 val* var4 /* : NativeArray[String] */;
3802 static val* varonce;
3803 static val* varonce5;
3804 val* var6 /* : String */;
3805 char* var7 /* : CString */;
3806 val* var8 /* : String */;
3807 val* var9 /* : nullable Int */;
3808 val* var10 /* : nullable Int */;
3809 val* var11 /* : nullable Bool */;
3810 val* var12 /* : nullable Bool */;
3811 val* var13 /* : String */;
3812 val* var14 /* : String */;
3813 val* var_res /* var res: RuntimeVariable */;
3814 var_value = p0;
3815 {
3816 var1 = nitc___nitc__AbstractCompilerVisitor___mmodule(self);
3817 }
3818 {
3819 var2 = nitc__model___MModule___int_type(var1);
3820 }
3821 var_t = var2;
3822 var3 = NEW_nitc__RuntimeVariable(&type_nitc__RuntimeVariable);
3823 if (unlikely(varonce==NULL)) {
3824 var4 = NEW_core__NativeArray((int)2l, &type_core__NativeArray__core__String);
3825 if (likely(varonce5!=NULL)) {
3826 var6 = varonce5;
3827 } else {
3828 var7 = "l";
3829 var9 = (val*)(1l<<2|1);
3830 var10 = (val*)(1l<<2|1);
3831 var11 = (val*)((long)(0)<<2|3);
3832 var12 = (val*)((long)(0)<<2|3);
3833 var8 = core__flat___CString___to_s_unsafe(var7, var9, var10, var11, var12);
3834 var6 = var8;
3835 varonce5 = var6;
3836 }
3837 ((struct instance_core__NativeArray*)var4)->values[1]=var6;
3838 } else {
3839 var4 = varonce;
3840 varonce = NULL;
3841 }
3842 {
3843 var13 = core__flat___Int___core__abstract_text__Object__to_s(var_value);
3844 }
3845 ((struct instance_core__NativeArray*)var4)->values[0]=var13;
3846 {
3847 var14 = ((val*(*)(val* self))(var4->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var4); /* native_to_s on <var4:NativeArray[String]>*/
3848 }
3849 varonce = var4;
3850 {
3851 ((void(*)(val* self, val* p0))(var3->class->vft[COLOR_nitc__abstract_compiler__RuntimeVariable__name_61d]))(var3, var14); /* name= on <var3:RuntimeVariable>*/
3852 }
3853 {
3854 ((void(*)(val* self, val* p0))(var3->class->vft[COLOR_nitc__abstract_compiler__RuntimeVariable__mtype_61d]))(var3, var_t); /* mtype= on <var3:RuntimeVariable>*/
3855 }
3856 {
3857 ((void(*)(val* self, val* p0))(var3->class->vft[COLOR_nitc__abstract_compiler__RuntimeVariable__mcasttype_61d]))(var3, var_t); /* mcasttype= on <var3:RuntimeVariable>*/
3858 }
3859 {
3860 ((void(*)(val* self))(var3->class->vft[COLOR_core__kernel__Object__init]))(var3); /* init on <var3:RuntimeVariable>*/
3861 }
3862 var_res = var3;
3863 var = var_res;
3864 goto RET_LABEL;
3865 RET_LABEL:;
3866 return var;
3867 }
3868 /* method abstract_compiler$AbstractCompilerVisitor$byte_instance for (self: AbstractCompilerVisitor, Byte): RuntimeVariable */
3869 val* nitc___nitc__AbstractCompilerVisitor___byte_instance(val* self, unsigned char p0) {
3870 val* var /* : RuntimeVariable */;
3871 unsigned char var_value /* var value: Byte */;
3872 val* var1 /* : MModule */;
3873 val* var2 /* : MClassType */;
3874 val* var_t /* var t: MClassType */;
3875 val* var3 /* : RuntimeVariable */;
3876 val* var4 /* : NativeArray[String] */;
3877 static val* varonce;
3878 static val* varonce5;
3879 val* var6 /* : String */;
3880 char* var7 /* : CString */;
3881 val* var8 /* : String */;
3882 val* var9 /* : nullable Int */;
3883 val* var10 /* : nullable Int */;
3884 val* var11 /* : nullable Bool */;
3885 val* var12 /* : nullable Bool */;
3886 static val* varonce13;
3887 val* var14 /* : String */;
3888 char* var15 /* : CString */;
3889 val* var16 /* : String */;
3890 val* var17 /* : nullable Int */;
3891 val* var18 /* : nullable Int */;
3892 val* var19 /* : nullable Bool */;
3893 val* var20 /* : nullable Bool */;
3894 val* var21 /* : String */;
3895 val* var22 /* : String */;
3896 val* var_res /* var res: RuntimeVariable */;
3897 var_value = p0;
3898 {
3899 var1 = nitc___nitc__AbstractCompilerVisitor___mmodule(self);
3900 }
3901 {
3902 var2 = nitc__model___MModule___byte_type(var1);
3903 }
3904 var_t = var2;
3905 var3 = NEW_nitc__RuntimeVariable(&type_nitc__RuntimeVariable);
3906 if (unlikely(varonce==NULL)) {
3907 var4 = NEW_core__NativeArray((int)3l, &type_core__NativeArray__core__String);
3908 if (likely(varonce5!=NULL)) {
3909 var6 = varonce5;
3910 } else {
3911 var7 = "((unsigned char)";
3912 var9 = (val*)(16l<<2|1);
3913 var10 = (val*)(16l<<2|1);
3914 var11 = (val*)((long)(0)<<2|3);
3915 var12 = (val*)((long)(0)<<2|3);
3916 var8 = core__flat___CString___to_s_unsafe(var7, var9, var10, var11, var12);
3917 var6 = var8;
3918 varonce5 = var6;
3919 }
3920 ((struct instance_core__NativeArray*)var4)->values[0]=var6;
3921 if (likely(varonce13!=NULL)) {
3922 var14 = varonce13;
3923 } else {
3924 var15 = ")";
3925 var17 = (val*)(1l<<2|1);
3926 var18 = (val*)(1l<<2|1);
3927 var19 = (val*)((long)(0)<<2|3);
3928 var20 = (val*)((long)(0)<<2|3);
3929 var16 = core__flat___CString___to_s_unsafe(var15, var17, var18, var19, var20);
3930 var14 = var16;
3931 varonce13 = var14;
3932 }
3933 ((struct instance_core__NativeArray*)var4)->values[2]=var14;
3934 } else {
3935 var4 = varonce;
3936 varonce = NULL;
3937 }
3938 {
3939 var21 = core__abstract_text___Byte___Object__to_s(var_value);
3940 }
3941 ((struct instance_core__NativeArray*)var4)->values[1]=var21;
3942 {
3943 var22 = ((val*(*)(val* self))(var4->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var4); /* native_to_s on <var4:NativeArray[String]>*/
3944 }
3945 varonce = var4;
3946 {
3947 ((void(*)(val* self, val* p0))(var3->class->vft[COLOR_nitc__abstract_compiler__RuntimeVariable__name_61d]))(var3, var22); /* name= on <var3:RuntimeVariable>*/
3948 }
3949 {
3950 ((void(*)(val* self, val* p0))(var3->class->vft[COLOR_nitc__abstract_compiler__RuntimeVariable__mtype_61d]))(var3, var_t); /* mtype= on <var3:RuntimeVariable>*/
3951 }
3952 {
3953 ((void(*)(val* self, val* p0))(var3->class->vft[COLOR_nitc__abstract_compiler__RuntimeVariable__mcasttype_61d]))(var3, var_t); /* mcasttype= on <var3:RuntimeVariable>*/
3954 }
3955 {
3956 ((void(*)(val* self))(var3->class->vft[COLOR_core__kernel__Object__init]))(var3); /* init on <var3:RuntimeVariable>*/
3957 }
3958 var_res = var3;
3959 var = var_res;
3960 goto RET_LABEL;
3961 RET_LABEL:;
3962 return var;
3963 }
3964 /* method abstract_compiler$AbstractCompilerVisitor$int8_instance for (self: AbstractCompilerVisitor, Int8): RuntimeVariable */
3965 val* nitc___nitc__AbstractCompilerVisitor___int8_instance(val* self, int8_t p0) {
3966 val* var /* : RuntimeVariable */;
3967 int8_t var_value /* var value: Int8 */;
3968 val* var1 /* : MModule */;
3969 val* var2 /* : MClassType */;
3970 val* var_t /* var t: MClassType */;
3971 val* var3 /* : RuntimeVariable */;
3972 val* var4 /* : NativeArray[String] */;
3973 static val* varonce;
3974 static val* varonce5;
3975 val* var6 /* : String */;
3976 char* var7 /* : CString */;
3977 val* var8 /* : String */;
3978 val* var9 /* : nullable Int */;
3979 val* var10 /* : nullable Int */;
3980 val* var11 /* : nullable Bool */;
3981 val* var12 /* : nullable Bool */;
3982 static val* varonce13;
3983 val* var14 /* : String */;
3984 char* var15 /* : CString */;
3985 val* var16 /* : String */;
3986 val* var17 /* : nullable Int */;
3987 val* var18 /* : nullable Int */;
3988 val* var19 /* : nullable Bool */;
3989 val* var20 /* : nullable Bool */;
3990 val* var21 /* : String */;
3991 val* var22 /* : String */;
3992 val* var_res /* var res: RuntimeVariable */;
3993 var_value = p0;
3994 {
3995 var1 = nitc___nitc__AbstractCompilerVisitor___mmodule(self);
3996 }
3997 {
3998 var2 = nitc__model___MModule___int8_type(var1);
3999 }
4000 var_t = var2;
4001 var3 = NEW_nitc__RuntimeVariable(&type_nitc__RuntimeVariable);
4002 if (unlikely(varonce==NULL)) {
4003 var4 = NEW_core__NativeArray((int)3l, &type_core__NativeArray__core__String);
4004 if (likely(varonce5!=NULL)) {
4005 var6 = varonce5;
4006 } else {
4007 var7 = "INT8_C(";
4008 var9 = (val*)(7l<<2|1);
4009 var10 = (val*)(7l<<2|1);
4010 var11 = (val*)((long)(0)<<2|3);
4011 var12 = (val*)((long)(0)<<2|3);
4012 var8 = core__flat___CString___to_s_unsafe(var7, var9, var10, var11, var12);
4013 var6 = var8;
4014 varonce5 = var6;
4015 }
4016 ((struct instance_core__NativeArray*)var4)->values[0]=var6;
4017 if (likely(varonce13!=NULL)) {
4018 var14 = varonce13;
4019 } else {
4020 var15 = ")";
4021 var17 = (val*)(1l<<2|1);
4022 var18 = (val*)(1l<<2|1);
4023 var19 = (val*)((long)(0)<<2|3);
4024 var20 = (val*)((long)(0)<<2|3);
4025 var16 = core__flat___CString___to_s_unsafe(var15, var17, var18, var19, var20);
4026 var14 = var16;
4027 varonce13 = var14;
4028 }
4029 ((struct instance_core__NativeArray*)var4)->values[2]=var14;
4030 } else {
4031 var4 = varonce;
4032 varonce = NULL;
4033 }
4034 {
4035 var21 = core__fixed_ints_text___Int8___core__abstract_text__Object__to_s(var_value);
4036 }
4037 ((struct instance_core__NativeArray*)var4)->values[1]=var21;
4038 {
4039 var22 = ((val*(*)(val* self))(var4->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var4); /* native_to_s on <var4:NativeArray[String]>*/
4040 }
4041 varonce = var4;
4042 {
4043 ((void(*)(val* self, val* p0))(var3->class->vft[COLOR_nitc__abstract_compiler__RuntimeVariable__name_61d]))(var3, var22); /* name= on <var3:RuntimeVariable>*/
4044 }
4045 {
4046 ((void(*)(val* self, val* p0))(var3->class->vft[COLOR_nitc__abstract_compiler__RuntimeVariable__mtype_61d]))(var3, var_t); /* mtype= on <var3:RuntimeVariable>*/
4047 }
4048 {
4049 ((void(*)(val* self, val* p0))(var3->class->vft[COLOR_nitc__abstract_compiler__RuntimeVariable__mcasttype_61d]))(var3, var_t); /* mcasttype= on <var3:RuntimeVariable>*/
4050 }
4051 {
4052 ((void(*)(val* self))(var3->class->vft[COLOR_core__kernel__Object__init]))(var3); /* init on <var3:RuntimeVariable>*/
4053 }
4054 var_res = var3;
4055 var = var_res;
4056 goto RET_LABEL;
4057 RET_LABEL:;
4058 return var;
4059 }
4060 /* method abstract_compiler$AbstractCompilerVisitor$int16_instance for (self: AbstractCompilerVisitor, Int16): RuntimeVariable */
4061 val* nitc___nitc__AbstractCompilerVisitor___int16_instance(val* self, int16_t p0) {
4062 val* var /* : RuntimeVariable */;
4063 int16_t var_value /* var value: Int16 */;
4064 val* var1 /* : MModule */;
4065 val* var2 /* : MClassType */;
4066 val* var_t /* var t: MClassType */;
4067 val* var3 /* : RuntimeVariable */;
4068 val* var4 /* : NativeArray[String] */;
4069 static val* varonce;
4070 static val* varonce5;
4071 val* var6 /* : String */;
4072 char* var7 /* : CString */;
4073 val* var8 /* : String */;
4074 val* var9 /* : nullable Int */;
4075 val* var10 /* : nullable Int */;
4076 val* var11 /* : nullable Bool */;
4077 val* var12 /* : nullable Bool */;
4078 static val* varonce13;
4079 val* var14 /* : String */;
4080 char* var15 /* : CString */;
4081 val* var16 /* : String */;
4082 val* var17 /* : nullable Int */;
4083 val* var18 /* : nullable Int */;
4084 val* var19 /* : nullable Bool */;
4085 val* var20 /* : nullable Bool */;
4086 val* var21 /* : String */;
4087 val* var22 /* : String */;
4088 val* var_res /* var res: RuntimeVariable */;
4089 var_value = p0;
4090 {
4091 var1 = nitc___nitc__AbstractCompilerVisitor___mmodule(self);
4092 }
4093 {
4094 var2 = nitc__model___MModule___int16_type(var1);
4095 }
4096 var_t = var2;
4097 var3 = NEW_nitc__RuntimeVariable(&type_nitc__RuntimeVariable);
4098 if (unlikely(varonce==NULL)) {
4099 var4 = NEW_core__NativeArray((int)3l, &type_core__NativeArray__core__String);
4100 if (likely(varonce5!=NULL)) {
4101 var6 = varonce5;
4102 } else {
4103 var7 = "INT16_C(";
4104 var9 = (val*)(8l<<2|1);
4105 var10 = (val*)(8l<<2|1);
4106 var11 = (val*)((long)(0)<<2|3);
4107 var12 = (val*)((long)(0)<<2|3);
4108 var8 = core__flat___CString___to_s_unsafe(var7, var9, var10, var11, var12);
4109 var6 = var8;
4110 varonce5 = var6;
4111 }
4112 ((struct instance_core__NativeArray*)var4)->values[0]=var6;
4113 if (likely(varonce13!=NULL)) {
4114 var14 = varonce13;
4115 } else {
4116 var15 = ")";
4117 var17 = (val*)(1l<<2|1);
4118 var18 = (val*)(1l<<2|1);
4119 var19 = (val*)((long)(0)<<2|3);
4120 var20 = (val*)((long)(0)<<2|3);
4121 var16 = core__flat___CString___to_s_unsafe(var15, var17, var18, var19, var20);
4122 var14 = var16;
4123 varonce13 = var14;
4124 }
4125 ((struct instance_core__NativeArray*)var4)->values[2]=var14;
4126 } else {
4127 var4 = varonce;
4128 varonce = NULL;
4129 }
4130 {
4131 var21 = core__fixed_ints_text___Int16___core__abstract_text__Object__to_s(var_value);
4132 }
4133 ((struct instance_core__NativeArray*)var4)->values[1]=var21;
4134 {
4135 var22 = ((val*(*)(val* self))(var4->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var4); /* native_to_s on <var4:NativeArray[String]>*/
4136 }
4137 varonce = var4;
4138 {
4139 ((void(*)(val* self, val* p0))(var3->class->vft[COLOR_nitc__abstract_compiler__RuntimeVariable__name_61d]))(var3, var22); /* name= on <var3:RuntimeVariable>*/
4140 }
4141 {
4142 ((void(*)(val* self, val* p0))(var3->class->vft[COLOR_nitc__abstract_compiler__RuntimeVariable__mtype_61d]))(var3, var_t); /* mtype= on <var3:RuntimeVariable>*/
4143 }
4144 {
4145 ((void(*)(val* self, val* p0))(var3->class->vft[COLOR_nitc__abstract_compiler__RuntimeVariable__mcasttype_61d]))(var3, var_t); /* mcasttype= on <var3:RuntimeVariable>*/
4146 }
4147 {
4148 ((void(*)(val* self))(var3->class->vft[COLOR_core__kernel__Object__init]))(var3); /* init on <var3:RuntimeVariable>*/
4149 }
4150 var_res = var3;
4151 var = var_res;
4152 goto RET_LABEL;
4153 RET_LABEL:;
4154 return var;
4155 }
4156 /* method abstract_compiler$AbstractCompilerVisitor$uint16_instance for (self: AbstractCompilerVisitor, UInt16): RuntimeVariable */
4157 val* nitc___nitc__AbstractCompilerVisitor___uint16_instance(val* self, uint16_t p0) {
4158 val* var /* : RuntimeVariable */;
4159 uint16_t var_value /* var value: UInt16 */;
4160 val* var1 /* : MModule */;
4161 val* var2 /* : MClassType */;
4162 val* var_t /* var t: MClassType */;
4163 val* var3 /* : RuntimeVariable */;
4164 val* var4 /* : NativeArray[String] */;
4165 static val* varonce;
4166 static val* varonce5;
4167 val* var6 /* : String */;
4168 char* var7 /* : CString */;
4169 val* var8 /* : String */;
4170 val* var9 /* : nullable Int */;
4171 val* var10 /* : nullable Int */;
4172 val* var11 /* : nullable Bool */;
4173 val* var12 /* : nullable Bool */;
4174 static val* varonce13;
4175 val* var14 /* : String */;
4176 char* var15 /* : CString */;
4177 val* var16 /* : String */;
4178 val* var17 /* : nullable Int */;
4179 val* var18 /* : nullable Int */;
4180 val* var19 /* : nullable Bool */;
4181 val* var20 /* : nullable Bool */;
4182 val* var21 /* : String */;
4183 val* var22 /* : String */;
4184 val* var_res /* var res: RuntimeVariable */;
4185 var_value = p0;
4186 {
4187 var1 = nitc___nitc__AbstractCompilerVisitor___mmodule(self);
4188 }
4189 {
4190 var2 = nitc__model___MModule___uint16_type(var1);
4191 }
4192 var_t = var2;
4193 var3 = NEW_nitc__RuntimeVariable(&type_nitc__RuntimeVariable);
4194 if (unlikely(varonce==NULL)) {
4195 var4 = NEW_core__NativeArray((int)3l, &type_core__NativeArray__core__String);
4196 if (likely(varonce5!=NULL)) {
4197 var6 = varonce5;
4198 } else {
4199 var7 = "UINT16_C(";
4200 var9 = (val*)(9l<<2|1);
4201 var10 = (val*)(9l<<2|1);
4202 var11 = (val*)((long)(0)<<2|3);
4203 var12 = (val*)((long)(0)<<2|3);
4204 var8 = core__flat___CString___to_s_unsafe(var7, var9, var10, var11, var12);
4205 var6 = var8;
4206 varonce5 = var6;
4207 }
4208 ((struct instance_core__NativeArray*)var4)->values[0]=var6;
4209 if (likely(varonce13!=NULL)) {
4210 var14 = varonce13;
4211 } else {
4212 var15 = ")";
4213 var17 = (val*)(1l<<2|1);
4214 var18 = (val*)(1l<<2|1);
4215 var19 = (val*)((long)(0)<<2|3);
4216 var20 = (val*)((long)(0)<<2|3);
4217 var16 = core__flat___CString___to_s_unsafe(var15, var17, var18, var19, var20);
4218 var14 = var16;
4219 varonce13 = var14;
4220 }
4221 ((struct instance_core__NativeArray*)var4)->values[2]=var14;
4222 } else {
4223 var4 = varonce;
4224 varonce = NULL;
4225 }
4226 {
4227 var21 = core__fixed_ints_text___UInt16___core__abstract_text__Object__to_s(var_value);
4228 }
4229 ((struct instance_core__NativeArray*)var4)->values[1]=var21;
4230 {
4231 var22 = ((val*(*)(val* self))(var4->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var4); /* native_to_s on <var4:NativeArray[String]>*/
4232 }
4233 varonce = var4;
4234 {
4235 ((void(*)(val* self, val* p0))(var3->class->vft[COLOR_nitc__abstract_compiler__RuntimeVariable__name_61d]))(var3, var22); /* name= on <var3:RuntimeVariable>*/
4236 }
4237 {
4238 ((void(*)(val* self, val* p0))(var3->class->vft[COLOR_nitc__abstract_compiler__RuntimeVariable__mtype_61d]))(var3, var_t); /* mtype= on <var3:RuntimeVariable>*/
4239 }
4240 {
4241 ((void(*)(val* self, val* p0))(var3->class->vft[COLOR_nitc__abstract_compiler__RuntimeVariable__mcasttype_61d]))(var3, var_t); /* mcasttype= on <var3:RuntimeVariable>*/
4242 }
4243 {
4244 ((void(*)(val* self))(var3->class->vft[COLOR_core__kernel__Object__init]))(var3); /* init on <var3:RuntimeVariable>*/
4245 }
4246 var_res = var3;
4247 var = var_res;
4248 goto RET_LABEL;
4249 RET_LABEL:;
4250 return var;
4251 }
4252 /* method abstract_compiler$AbstractCompilerVisitor$int32_instance for (self: AbstractCompilerVisitor, Int32): RuntimeVariable */
4253 val* nitc___nitc__AbstractCompilerVisitor___int32_instance(val* self, int32_t p0) {
4254 val* var /* : RuntimeVariable */;
4255 int32_t var_value /* var value: Int32 */;
4256 val* var1 /* : MModule */;
4257 val* var2 /* : MClassType */;
4258 val* var_t /* var t: MClassType */;
4259 val* var3 /* : RuntimeVariable */;
4260 val* var4 /* : NativeArray[String] */;
4261 static val* varonce;
4262 static val* varonce5;
4263 val* var6 /* : String */;
4264 char* var7 /* : CString */;
4265 val* var8 /* : String */;
4266 val* var9 /* : nullable Int */;
4267 val* var10 /* : nullable Int */;
4268 val* var11 /* : nullable Bool */;
4269 val* var12 /* : nullable Bool */;
4270 static val* varonce13;
4271 val* var14 /* : String */;
4272 char* var15 /* : CString */;
4273 val* var16 /* : String */;
4274 val* var17 /* : nullable Int */;
4275 val* var18 /* : nullable Int */;
4276 val* var19 /* : nullable Bool */;
4277 val* var20 /* : nullable Bool */;
4278 val* var21 /* : String */;
4279 val* var22 /* : String */;
4280 val* var_res /* var res: RuntimeVariable */;
4281 var_value = p0;
4282 {
4283 var1 = nitc___nitc__AbstractCompilerVisitor___mmodule(self);
4284 }
4285 {
4286 var2 = nitc__model___MModule___int32_type(var1);
4287 }
4288 var_t = var2;
4289 var3 = NEW_nitc__RuntimeVariable(&type_nitc__RuntimeVariable);
4290 if (unlikely(varonce==NULL)) {
4291 var4 = NEW_core__NativeArray((int)3l, &type_core__NativeArray__core__String);
4292 if (likely(varonce5!=NULL)) {
4293 var6 = varonce5;
4294 } else {
4295 var7 = "INT32_C(";
4296 var9 = (val*)(8l<<2|1);
4297 var10 = (val*)(8l<<2|1);
4298 var11 = (val*)((long)(0)<<2|3);
4299 var12 = (val*)((long)(0)<<2|3);
4300 var8 = core__flat___CString___to_s_unsafe(var7, var9, var10, var11, var12);
4301 var6 = var8;
4302 varonce5 = var6;
4303 }
4304 ((struct instance_core__NativeArray*)var4)->values[0]=var6;
4305 if (likely(varonce13!=NULL)) {
4306 var14 = varonce13;
4307 } else {
4308 var15 = ")";
4309 var17 = (val*)(1l<<2|1);
4310 var18 = (val*)(1l<<2|1);
4311 var19 = (val*)((long)(0)<<2|3);
4312 var20 = (val*)((long)(0)<<2|3);
4313 var16 = core__flat___CString___to_s_unsafe(var15, var17, var18, var19, var20);
4314 var14 = var16;
4315 varonce13 = var14;
4316 }
4317 ((struct instance_core__NativeArray*)var4)->values[2]=var14;
4318 } else {
4319 var4 = varonce;
4320 varonce = NULL;
4321 }
4322 {
4323 var21 = core__fixed_ints_text___Int32___core__abstract_text__Object__to_s(var_value);
4324 }
4325 ((struct instance_core__NativeArray*)var4)->values[1]=var21;
4326 {
4327 var22 = ((val*(*)(val* self))(var4->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var4); /* native_to_s on <var4:NativeArray[String]>*/
4328 }
4329 varonce = var4;
4330 {
4331 ((void(*)(val* self, val* p0))(var3->class->vft[COLOR_nitc__abstract_compiler__RuntimeVariable__name_61d]))(var3, var22); /* name= on <var3:RuntimeVariable>*/
4332 }
4333 {
4334 ((void(*)(val* self, val* p0))(var3->class->vft[COLOR_nitc__abstract_compiler__RuntimeVariable__mtype_61d]))(var3, var_t); /* mtype= on <var3:RuntimeVariable>*/
4335 }
4336 {
4337 ((void(*)(val* self, val* p0))(var3->class->vft[COLOR_nitc__abstract_compiler__RuntimeVariable__mcasttype_61d]))(var3, var_t); /* mcasttype= on <var3:RuntimeVariable>*/
4338 }
4339 {
4340 ((void(*)(val* self))(var3->class->vft[COLOR_core__kernel__Object__init]))(var3); /* init on <var3:RuntimeVariable>*/
4341 }
4342 var_res = var3;
4343 var = var_res;
4344 goto RET_LABEL;
4345 RET_LABEL:;
4346 return var;
4347 }
4348 /* method abstract_compiler$AbstractCompilerVisitor$uint32_instance for (self: AbstractCompilerVisitor, UInt32): RuntimeVariable */
4349 val* nitc___nitc__AbstractCompilerVisitor___uint32_instance(val* self, uint32_t p0) {
4350 val* var /* : RuntimeVariable */;
4351 uint32_t var_value /* var value: UInt32 */;
4352 val* var1 /* : MModule */;
4353 val* var2 /* : MClassType */;
4354 val* var_t /* var t: MClassType */;
4355 val* var3 /* : RuntimeVariable */;
4356 val* var4 /* : NativeArray[String] */;
4357 static val* varonce;
4358 static val* varonce5;
4359 val* var6 /* : String */;
4360 char* var7 /* : CString */;
4361 val* var8 /* : String */;
4362 val* var9 /* : nullable Int */;
4363 val* var10 /* : nullable Int */;
4364 val* var11 /* : nullable Bool */;
4365 val* var12 /* : nullable Bool */;
4366 static val* varonce13;
4367 val* var14 /* : String */;
4368 char* var15 /* : CString */;
4369 val* var16 /* : String */;
4370 val* var17 /* : nullable Int */;
4371 val* var18 /* : nullable Int */;
4372 val* var19 /* : nullable Bool */;
4373 val* var20 /* : nullable Bool */;
4374 val* var21 /* : String */;
4375 val* var22 /* : String */;
4376 val* var_res /* var res: RuntimeVariable */;
4377 var_value = p0;
4378 {
4379 var1 = nitc___nitc__AbstractCompilerVisitor___mmodule(self);
4380 }
4381 {
4382 var2 = nitc__model___MModule___uint32_type(var1);
4383 }
4384 var_t = var2;
4385 var3 = NEW_nitc__RuntimeVariable(&type_nitc__RuntimeVariable);
4386 if (unlikely(varonce==NULL)) {
4387 var4 = NEW_core__NativeArray((int)3l, &type_core__NativeArray__core__String);
4388 if (likely(varonce5!=NULL)) {
4389 var6 = varonce5;
4390 } else {
4391 var7 = "UINT32_C(";
4392 var9 = (val*)(9l<<2|1);
4393 var10 = (val*)(9l<<2|1);
4394 var11 = (val*)((long)(0)<<2|3);
4395 var12 = (val*)((long)(0)<<2|3);
4396 var8 = core__flat___CString___to_s_unsafe(var7, var9, var10, var11, var12);
4397 var6 = var8;
4398 varonce5 = var6;
4399 }
4400 ((struct instance_core__NativeArray*)var4)->values[0]=var6;
4401 if (likely(varonce13!=NULL)) {
4402 var14 = varonce13;
4403 } else {
4404 var15 = ")";
4405 var17 = (val*)(1l<<2|1);
4406 var18 = (val*)(1l<<2|1);
4407 var19 = (val*)((long)(0)<<2|3);
4408 var20 = (val*)((long)(0)<<2|3);
4409 var16 = core__flat___CString___to_s_unsafe(var15, var17, var18, var19, var20);
4410 var14 = var16;
4411 varonce13 = var14;
4412 }
4413 ((struct instance_core__NativeArray*)var4)->values[2]=var14;
4414 } else {
4415 var4 = varonce;
4416 varonce = NULL;
4417 }
4418 {
4419 var21 = core__fixed_ints_text___UInt32___core__abstract_text__Object__to_s(var_value);
4420 }
4421 ((struct instance_core__NativeArray*)var4)->values[1]=var21;
4422 {
4423 var22 = ((val*(*)(val* self))(var4->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var4); /* native_to_s on <var4:NativeArray[String]>*/
4424 }
4425 varonce = var4;
4426 {
4427 ((void(*)(val* self, val* p0))(var3->class->vft[COLOR_nitc__abstract_compiler__RuntimeVariable__name_61d]))(var3, var22); /* name= on <var3:RuntimeVariable>*/
4428 }
4429 {
4430 ((void(*)(val* self, val* p0))(var3->class->vft[COLOR_nitc__abstract_compiler__RuntimeVariable__mtype_61d]))(var3, var_t); /* mtype= on <var3:RuntimeVariable>*/
4431 }
4432 {
4433 ((void(*)(val* self, val* p0))(var3->class->vft[COLOR_nitc__abstract_compiler__RuntimeVariable__mcasttype_61d]))(var3, var_t); /* mcasttype= on <var3:RuntimeVariable>*/
4434 }
4435 {
4436 ((void(*)(val* self))(var3->class->vft[COLOR_core__kernel__Object__init]))(var3); /* init on <var3:RuntimeVariable>*/
4437 }
4438 var_res = var3;
4439 var = var_res;
4440 goto RET_LABEL;
4441 RET_LABEL:;
4442 return var;
4443 }
4444 /* method abstract_compiler$AbstractCompilerVisitor$char_instance for (self: AbstractCompilerVisitor, Char): RuntimeVariable */
4445 val* nitc___nitc__AbstractCompilerVisitor___char_instance(val* self, uint32_t p0) {
4446 val* var /* : RuntimeVariable */;
4447 uint32_t var_value /* var value: Char */;
4448 val* var1 /* : MModule */;
4449 val* var2 /* : MClassType */;
4450 val* var_t /* var t: MClassType */;
4451 long var3 /* : Int */;
4452 long var5 /* : Int */;
4453 short int var6 /* : Bool */;
4454 short int var8 /* : Bool */;
4455 int cltype;
4456 int idtype;
4457 const char* var_class_name;
4458 short int var9 /* : Bool */;
4459 val* var10 /* : RuntimeVariable */;
4460 val* var11 /* : NativeArray[String] */;
4461 static val* varonce;
4462 static val* varonce12;
4463 val* var13 /* : String */;
4464 char* var14 /* : CString */;
4465 val* var15 /* : String */;
4466 val* var16 /* : nullable Int */;
4467 val* var17 /* : nullable Int */;
4468 val* var18 /* : nullable Bool */;
4469 val* var19 /* : nullable Bool */;
4470 static val* varonce20;
4471 val* var21 /* : String */;
4472 char* var22 /* : CString */;
4473 val* var23 /* : String */;
4474 val* var24 /* : nullable Int */;
4475 val* var25 /* : nullable Int */;
4476 val* var26 /* : nullable Bool */;
4477 val* var27 /* : nullable Bool */;
4478 val* var28 /* : String */;
4479 val* var29 /* : String */;
4480 val* var30 /* : String */;
4481 val* var31 /* : RuntimeVariable */;
4482 val* var33 /* : NativeArray[String] */;
4483 static val* varonce32;
4484 long var34 /* : Int */;
4485 long var36 /* : Int */;
4486 val* var37 /* : String */;
4487 val* var38 /* : String */;
4488 var_value = p0;
4489 {
4490 var1 = nitc___nitc__AbstractCompilerVisitor___mmodule(self);
4491 }
4492 {
4493 var2 = nitc__model___MModule___char_type(var1);
4494 }
4495 var_t = var2;
4496 {
4497 { /* Inline kernel$Char$code_point (var_value) on <var_value:Char> */
4498 var5 = (long)var_value;
4499 var3 = var5;
4500 goto RET_LABEL4;
4501 RET_LABEL4:(void)0;
4502 }
4503 }
4504 {
4505 { /* Inline kernel$Int$< (var3,128l) on <var3:Int> */
4506 /* Covariant cast for argument 0 (i) <128l:Int> isa OTHER */
4507 /* <128l:Int> isa OTHER */
4508 var8 = 1; /* easy <128l:Int> isa OTHER*/
4509 if (unlikely(!var8)) {
4510 var_class_name = type_core__Int.name;
4511 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
4512 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 725);
4513 fatal_exit(1);
4514 }
4515 var9 = var3 < 128l;
4516 var6 = var9;
4517 goto RET_LABEL7;
4518 RET_LABEL7:(void)0;
4519 }
4520 }
4521 if (var6){
4522 var10 = NEW_nitc__RuntimeVariable(&type_nitc__RuntimeVariable);
4523 if (unlikely(varonce==NULL)) {
4524 var11 = NEW_core__NativeArray((int)3l, &type_core__NativeArray__core__String);
4525 if (likely(varonce12!=NULL)) {
4526 var13 = varonce12;
4527 } else {
4528 var14 = "\'";
4529 var16 = (val*)(1l<<2|1);
4530 var17 = (val*)(1l<<2|1);
4531 var18 = (val*)((long)(0)<<2|3);
4532 var19 = (val*)((long)(0)<<2|3);
4533 var15 = core__flat___CString___to_s_unsafe(var14, var16, var17, var18, var19);
4534 var13 = var15;
4535 varonce12 = var13;
4536 }
4537 ((struct instance_core__NativeArray*)var11)->values[0]=var13;
4538 if (likely(varonce20!=NULL)) {
4539 var21 = varonce20;
4540 } else {
4541 var22 = "\'";
4542 var24 = (val*)(1l<<2|1);
4543 var25 = (val*)(1l<<2|1);
4544 var26 = (val*)((long)(0)<<2|3);
4545 var27 = (val*)((long)(0)<<2|3);
4546 var23 = core__flat___CString___to_s_unsafe(var22, var24, var25, var26, var27);
4547 var21 = var23;
4548 varonce20 = var21;
4549 }
4550 ((struct instance_core__NativeArray*)var11)->values[2]=var21;
4551 } else {
4552 var11 = varonce;
4553 varonce = NULL;
4554 }
4555 {
4556 var28 = core__abstract_text___Char___Object__to_s(var_value);
4557 }
4558 {
4559 var29 = ((val*(*)(val* self))(var28->class->vft[COLOR_core__abstract_text__Text__escape_to_c]))(var28); /* escape_to_c on <var28:String>*/
4560 }
4561 ((struct instance_core__NativeArray*)var11)->values[1]=var29;
4562 {
4563 var30 = ((val*(*)(val* self))(var11->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var11); /* native_to_s on <var11:NativeArray[String]>*/
4564 }
4565 varonce = var11;
4566 {
4567 ((void(*)(val* self, val* p0))(var10->class->vft[COLOR_nitc__abstract_compiler__RuntimeVariable__name_61d]))(var10, var30); /* name= on <var10:RuntimeVariable>*/
4568 }
4569 {
4570 ((void(*)(val* self, val* p0))(var10->class->vft[COLOR_nitc__abstract_compiler__RuntimeVariable__mtype_61d]))(var10, var_t); /* mtype= on <var10:RuntimeVariable>*/
4571 }
4572 {
4573 ((void(*)(val* self, val* p0))(var10->class->vft[COLOR_nitc__abstract_compiler__RuntimeVariable__mcasttype_61d]))(var10, var_t); /* mcasttype= on <var10:RuntimeVariable>*/
4574 }
4575 {
4576 ((void(*)(val* self))(var10->class->vft[COLOR_core__kernel__Object__init]))(var10); /* init on <var10:RuntimeVariable>*/
4577 }
4578 var = var10;
4579 goto RET_LABEL;
4580 } else {
4581 var31 = NEW_nitc__RuntimeVariable(&type_nitc__RuntimeVariable);
4582 if (unlikely(varonce32==NULL)) {
4583 var33 = NEW_core__NativeArray((int)1l, &type_core__NativeArray__core__String);
4584 } else {
4585 var33 = varonce32;
4586 varonce32 = NULL;
4587 }
4588 {
4589 { /* Inline kernel$Char$code_point (var_value) on <var_value:Char> */
4590 var36 = (long)var_value;
4591 var34 = var36;
4592 goto RET_LABEL35;
4593 RET_LABEL35:(void)0;
4594 }
4595 }
4596 var37 = core__flat___Int___core__abstract_text__Object__to_s(var34);
4597 ((struct instance_core__NativeArray*)var33)->values[0]=var37;
4598 {
4599 var38 = ((val*(*)(val* self))(var33->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var33); /* native_to_s on <var33:NativeArray[String]>*/
4600 }
4601 varonce32 = var33;
4602 {
4603 ((void(*)(val* self, val* p0))(var31->class->vft[COLOR_nitc__abstract_compiler__RuntimeVariable__name_61d]))(var31, var38); /* name= on <var31:RuntimeVariable>*/
4604 }
4605 {
4606 ((void(*)(val* self, val* p0))(var31->class->vft[COLOR_nitc__abstract_compiler__RuntimeVariable__mtype_61d]))(var31, var_t); /* mtype= on <var31:RuntimeVariable>*/
4607 }
4608 {
4609 ((void(*)(val* self, val* p0))(var31->class->vft[COLOR_nitc__abstract_compiler__RuntimeVariable__mcasttype_61d]))(var31, var_t); /* mcasttype= on <var31:RuntimeVariable>*/
4610 }
4611 {
4612 ((void(*)(val* self))(var31->class->vft[COLOR_core__kernel__Object__init]))(var31); /* init on <var31:RuntimeVariable>*/
4613 }
4614 var = var31;
4615 goto RET_LABEL;
4616 }
4617 RET_LABEL:;
4618 return var;
4619 }
4620 /* method abstract_compiler$AbstractCompilerVisitor$float_instance for (self: AbstractCompilerVisitor, String): RuntimeVariable */
4621 val* nitc___nitc__AbstractCompilerVisitor___float_instance(val* self, val* p0) {
4622 val* var /* : RuntimeVariable */;
4623 val* var_value /* var value: String */;
4624 val* var1 /* : MModule */;
4625 val* var2 /* : MClassType */;
4626 val* var_t /* var t: MClassType */;
4627 val* var3 /* : RuntimeVariable */;
4628 val* var4 /* : NativeArray[String] */;
4629 static val* varonce;
4630 val* var5 /* : String */;
4631 val* var_res /* var res: RuntimeVariable */;
4632 var_value = p0;
4633 {
4634 var1 = nitc___nitc__AbstractCompilerVisitor___mmodule(self);
4635 }
4636 {
4637 var2 = nitc__model___MModule___float_type(var1);
4638 }
4639 var_t = var2;
4640 var3 = NEW_nitc__RuntimeVariable(&type_nitc__RuntimeVariable);
4641 if (unlikely(varonce==NULL)) {
4642 var4 = NEW_core__NativeArray((int)1l, &type_core__NativeArray__core__String);
4643 } else {
4644 var4 = varonce;
4645 varonce = NULL;
4646 }
4647 ((struct instance_core__NativeArray*)var4)->values[0]=var_value;
4648 {
4649 var5 = ((val*(*)(val* self))(var4->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var4); /* native_to_s on <var4:NativeArray[String]>*/
4650 }
4651 varonce = var4;
4652 {
4653 ((void(*)(val* self, val* p0))(var3->class->vft[COLOR_nitc__abstract_compiler__RuntimeVariable__name_61d]))(var3, var5); /* name= on <var3:RuntimeVariable>*/
4654 }
4655 {
4656 ((void(*)(val* self, val* p0))(var3->class->vft[COLOR_nitc__abstract_compiler__RuntimeVariable__mtype_61d]))(var3, var_t); /* mtype= on <var3:RuntimeVariable>*/
4657 }
4658 {
4659 ((void(*)(val* self, val* p0))(var3->class->vft[COLOR_nitc__abstract_compiler__RuntimeVariable__mcasttype_61d]))(var3, var_t); /* mcasttype= on <var3:RuntimeVariable>*/
4660 }
4661 {
4662 ((void(*)(val* self))(var3->class->vft[COLOR_core__kernel__Object__init]))(var3); /* init on <var3:RuntimeVariable>*/
4663 }
4664 var_res = var3;
4665 var = var_res;
4666 goto RET_LABEL;
4667 RET_LABEL:;
4668 return var;
4669 }
4670 /* method abstract_compiler$AbstractCompilerVisitor$bool_instance for (self: AbstractCompilerVisitor, Bool): RuntimeVariable */
4671 val* nitc___nitc__AbstractCompilerVisitor___bool_instance(val* self, short int p0) {
4672 val* var /* : RuntimeVariable */;
4673 short int var_value /* var value: Bool */;
4674 val* var1 /* : String */;
4675 static val* varonce;
4676 val* var2 /* : String */;
4677 char* var3 /* : CString */;
4678 val* var4 /* : String */;
4679 val* var5 /* : nullable Int */;
4680 val* var6 /* : nullable Int */;
4681 val* var7 /* : nullable Bool */;
4682 val* var8 /* : nullable Bool */;
4683 static val* varonce9;
4684 val* var10 /* : String */;
4685 char* var11 /* : CString */;
4686 val* var12 /* : String */;
4687 val* var13 /* : nullable Int */;
4688 val* var14 /* : nullable Int */;
4689 val* var15 /* : nullable Bool */;
4690 val* var16 /* : nullable Bool */;
4691 val* var_s /* var s: String */;
4692 val* var17 /* : RuntimeVariable */;
4693 val* var18 /* : MClassType */;
4694 val* var19 /* : MClassType */;
4695 val* var_res /* var res: RuntimeVariable */;
4696 var_value = p0;
4697 if (var_value){
4698 if (likely(varonce!=NULL)) {
4699 var2 = varonce;
4700 } else {
4701 var3 = "1";
4702 var5 = (val*)(1l<<2|1);
4703 var6 = (val*)(1l<<2|1);
4704 var7 = (val*)((long)(0)<<2|3);
4705 var8 = (val*)((long)(0)<<2|3);
4706 var4 = core__flat___CString___to_s_unsafe(var3, var5, var6, var7, var8);
4707 var2 = var4;
4708 varonce = var2;
4709 }
4710 var1 = var2;
4711 } else {
4712 if (likely(varonce9!=NULL)) {
4713 var10 = varonce9;
4714 } else {
4715 var11 = "0";
4716 var13 = (val*)(1l<<2|1);
4717 var14 = (val*)(1l<<2|1);
4718 var15 = (val*)((long)(0)<<2|3);
4719 var16 = (val*)((long)(0)<<2|3);
4720 var12 = core__flat___CString___to_s_unsafe(var11, var13, var14, var15, var16);
4721 var10 = var12;
4722 varonce9 = var10;
4723 }
4724 var1 = var10;
4725 }
4726 var_s = var1;
4727 var17 = NEW_nitc__RuntimeVariable(&type_nitc__RuntimeVariable);
4728 {
4729 var18 = nitc___nitc__AbstractCompilerVisitor___bool_type(self);
4730 }
4731 {
4732 var19 = nitc___nitc__AbstractCompilerVisitor___bool_type(self);
4733 }
4734 {
4735 ((void(*)(val* self, val* p0))(var17->class->vft[COLOR_nitc__abstract_compiler__RuntimeVariable__name_61d]))(var17, var_s); /* name= on <var17:RuntimeVariable>*/
4736 }
4737 {
4738 ((void(*)(val* self, val* p0))(var17->class->vft[COLOR_nitc__abstract_compiler__RuntimeVariable__mtype_61d]))(var17, var18); /* mtype= on <var17:RuntimeVariable>*/
4739 }
4740 {
4741 ((void(*)(val* self, val* p0))(var17->class->vft[COLOR_nitc__abstract_compiler__RuntimeVariable__mcasttype_61d]))(var17, var19); /* mcasttype= on <var17:RuntimeVariable>*/
4742 }
4743 {
4744 ((void(*)(val* self))(var17->class->vft[COLOR_core__kernel__Object__init]))(var17); /* init on <var17:RuntimeVariable>*/
4745 }
4746 var_res = var17;
4747 var = var_res;
4748 goto RET_LABEL;
4749 RET_LABEL:;
4750 return var;
4751 }
4752 /* method abstract_compiler$AbstractCompilerVisitor$null_instance for (self: AbstractCompilerVisitor): RuntimeVariable */
4753 val* nitc___nitc__AbstractCompilerVisitor___null_instance(val* self) {
4754 val* var /* : RuntimeVariable */;
4755 val* var1 /* : AbstractCompiler */;
4756 val* var3 /* : AbstractCompiler */;
4757 val* var4 /* : MModule */;
4758 val* var6 /* : MModule */;
4759 val* var7 /* : Model */;
4760 val* var9 /* : Model */;
4761 val* var10 /* : MNullType */;
4762 val* var12 /* : MNullType */;
4763 val* var_t /* var t: MNullType */;
4764 val* var13 /* : RuntimeVariable */;
4765 static val* varonce;
4766 val* var14 /* : String */;
4767 char* var15 /* : CString */;
4768 val* var16 /* : String */;
4769 val* var17 /* : nullable Int */;
4770 val* var18 /* : nullable Int */;
4771 val* var19 /* : nullable Bool */;
4772 val* var20 /* : nullable Bool */;
4773 val* var_res /* var res: RuntimeVariable */;
4774 {
4775 { /* Inline abstract_compiler$AbstractCompilerVisitor$compiler (self) on <self:AbstractCompilerVisitor> */
4776 var3 = self->attrs[COLOR_nitc__abstract_compiler__AbstractCompilerVisitor___compiler].val; /* _compiler on <self:AbstractCompilerVisitor> */
4777 if (unlikely(var3 == NULL)) {
4778 if(catchStack.cursor >= 0){
4779 longjmp(catchStack.envs[catchStack.cursor], 1);
4780 }
4781 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _compiler");
4782 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 1214);
4783 fatal_exit(1);
4784 }
4785 var1 = var3;
4786 RET_LABEL2:(void)0;
4787 }
4788 }
4789 {
4790 { /* Inline abstract_compiler$AbstractCompiler$mainmodule (var1) on <var1:AbstractCompiler> */
4791 var6 = var1->attrs[COLOR_nitc__abstract_compiler__AbstractCompiler___mainmodule].val; /* _mainmodule on <var1:AbstractCompiler> */
4792 if (unlikely(var6 == NULL)) {
4793 if(catchStack.cursor >= 0){
4794 longjmp(catchStack.envs[catchStack.cursor], 1);
4795 }
4796 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule");
4797 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 545);
4798 fatal_exit(1);
4799 }
4800 var4 = var6;
4801 RET_LABEL5:(void)0;
4802 }
4803 }
4804 {
4805 { /* Inline mmodule$MModule$model (var4) on <var4:MModule> */
4806 var9 = var4->attrs[COLOR_nitc__mmodule__MModule___model].val; /* _model on <var4:MModule> */
4807 if (unlikely(var9 == NULL)) {
4808 if(catchStack.cursor >= 0){
4809 longjmp(catchStack.envs[catchStack.cursor], 1);
4810 }
4811 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _model");
4812 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__mmodule, 77);
4813 fatal_exit(1);
4814 }
4815 var7 = var9;
4816 RET_LABEL8:(void)0;
4817 }
4818 }
4819 {
4820 { /* Inline model$Model$null_type (var7) on <var7:Model> */
4821 var12 = var7->attrs[COLOR_nitc__model__Model___null_type].val; /* _null_type on <var7:Model> */
4822 if (unlikely(var12 == NULL)) {
4823 if(catchStack.cursor >= 0){
4824 longjmp(catchStack.envs[catchStack.cursor], 1);
4825 }
4826 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _null_type");
4827 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 103);
4828 fatal_exit(1);
4829 }
4830 var10 = var12;
4831 RET_LABEL11:(void)0;
4832 }
4833 }
4834 var_t = var10;
4835 var13 = NEW_nitc__RuntimeVariable(&type_nitc__RuntimeVariable);
4836 if (likely(varonce!=NULL)) {
4837 var14 = varonce;
4838 } else {
4839 var15 = "((val*)NULL)";
4840 var17 = (val*)(12l<<2|1);
4841 var18 = (val*)(12l<<2|1);
4842 var19 = (val*)((long)(0)<<2|3);
4843 var20 = (val*)((long)(0)<<2|3);
4844 var16 = core__flat___CString___to_s_unsafe(var15, var17, var18, var19, var20);
4845 var14 = var16;
4846 varonce = var14;
4847 }
4848 {
4849 ((void(*)(val* self, val* p0))(var13->class->vft[COLOR_nitc__abstract_compiler__RuntimeVariable__name_61d]))(var13, var14); /* name= on <var13:RuntimeVariable>*/
4850 }
4851 {
4852 ((void(*)(val* self, val* p0))(var13->class->vft[COLOR_nitc__abstract_compiler__RuntimeVariable__mtype_61d]))(var13, var_t); /* mtype= on <var13:RuntimeVariable>*/
4853 }
4854 {
4855 ((void(*)(val* self, val* p0))(var13->class->vft[COLOR_nitc__abstract_compiler__RuntimeVariable__mcasttype_61d]))(var13, var_t); /* mcasttype= on <var13:RuntimeVariable>*/
4856 }
4857 {
4858 ((void(*)(val* self))(var13->class->vft[COLOR_core__kernel__Object__init]))(var13); /* init on <var13:RuntimeVariable>*/
4859 }
4860 var_res = var13;
4861 var = var_res;
4862 goto RET_LABEL;
4863 RET_LABEL:;
4864 return var;
4865 }
4866 /* method abstract_compiler$AbstractCompilerVisitor$c_string_instance for (self: AbstractCompilerVisitor, CString, Int): RuntimeVariable */
4867 val* nitc___nitc__AbstractCompilerVisitor___c_string_instance(val* self, char* p0, long p1) {
4868 val* var /* : RuntimeVariable */;
4869 char* var_ns /* var ns: CString */;
4870 long var_len /* var len: Int */;
4871 val* var1 /* : MModule */;
4872 val* var2 /* : MClassType */;
4873 val* var_mtype /* var mtype: MClassType */;
4874 val* var3 /* : RuntimeVariable */;
4875 val* var_nat /* var nat: RuntimeVariable */;
4876 static val* varoncenew;
4877 static int varoncenew_guard;
4878 val* var4 /* : Buffer */;
4879 val* var5 /* : Buffer */;
4880 long var6 /* : Int */;
4881 short int var8 /* : Bool */;
4882 int cltype;
4883 int idtype;
4884 const char* var_class_name;
4885 long var9 /* : Int */;
4886 val* var10 /* : Buffer */;
4887 val* var_byte_esc /* var byte_esc: Buffer */;
4888 long var_i /* var i: Int */;
4889 long var_ /* var : Int */;
4890 short int var11 /* : Bool */;
4891 short int var13 /* : Bool */;
4892 int cltype14;
4893 int idtype15;
4894 const char* var_class_name16;
4895 short int var17 /* : Bool */;
4896 val* var18 /* : NativeArray[String] */;
4897 static val* varonce;
4898 static val* varonce19;
4899 val* var20 /* : String */;
4900 char* var21 /* : CString */;
4901 val* var22 /* : String */;
4902 val* var23 /* : nullable Int */;
4903 val* var24 /* : nullable Int */;
4904 val* var25 /* : nullable Bool */;
4905 val* var26 /* : nullable Bool */;
4906 unsigned char var27 /* : Byte */;
4907 unsigned char var29 /* : Byte */;
4908 val* var30 /* : String */;
4909 val* var31 /* : Text */;
4910 val* var32 /* : String */;
4911 long var33 /* : Int */;
4912 val* var35 /* : NativeArray[String] */;
4913 static val* varonce34;
4914 static val* varonce36;
4915 val* var37 /* : String */;
4916 char* var38 /* : CString */;
4917 val* var39 /* : String */;
4918 val* var40 /* : nullable Int */;
4919 val* var41 /* : nullable Int */;
4920 val* var42 /* : nullable Bool */;
4921 val* var43 /* : nullable Bool */;
4922 static val* varonce44;
4923 val* var45 /* : String */;
4924 char* var46 /* : CString */;
4925 val* var47 /* : String */;
4926 val* var48 /* : nullable Int */;
4927 val* var49 /* : nullable Int */;
4928 val* var50 /* : nullable Bool */;
4929 val* var51 /* : nullable Bool */;
4930 val* var52 /* : String */;
4931 val* var53 /* : String */;
4932 val* var54 /* : String */;
4933 var_ns = p0;
4934 var_len = p1;
4935 {
4936 var1 = nitc___nitc__AbstractCompilerVisitor___mmodule(self);
4937 }
4938 {
4939 var2 = nitc__model___MModule___c_string_type(var1);
4940 }
4941 var_mtype = var2;
4942 {
4943 var3 = nitc___nitc__AbstractCompilerVisitor___new_var(self, var_mtype);
4944 }
4945 var_nat = var3;
4946 if (likely(varoncenew_guard)) {
4947 var4 = varoncenew;
4948 } else {
4949 var5 = NEW_core__Buffer(&type_core__Buffer);
4950 var4 = var5;
4951 varoncenew = var4;
4952 varoncenew_guard = 1;
4953 }
4954 {
4955 { /* Inline kernel$Int$* (var_len,4l) on <var_len:Int> */
4956 /* Covariant cast for argument 0 (i) <4l:Int> isa OTHER */
4957 /* <4l:Int> isa OTHER */
4958 var8 = 1; /* easy <4l:Int> isa OTHER*/
4959 if (unlikely(!var8)) {
4960 var_class_name = type_core__Int.name;
4961 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
4962 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 732);
4963 fatal_exit(1);
4964 }
4965 var9 = var_len * 4l;
4966 var6 = var9;
4967 goto RET_LABEL7;
4968 RET_LABEL7:(void)0;
4969 }
4970 }
4971 {
4972 var10 = core__flat___Buffer___with_cap(var4, var6);
4973 }
4974 var_byte_esc = var10;
4975 var_i = 0l;
4976 var_ = var_len;
4977 for(;;) {
4978 {
4979 { /* Inline kernel$Int$< (var_i,var_) on <var_i:Int> */
4980 /* Covariant cast for argument 0 (i) <var_:Int> isa OTHER */
4981 /* <var_:Int> isa OTHER */
4982 var13 = 1; /* easy <var_:Int> isa OTHER*/
4983 if (unlikely(!var13)) {
4984 var_class_name16 = type_core__Int.name;
4985 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name16);
4986 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 725);
4987 fatal_exit(1);
4988 }
4989 var17 = var_i < var_;
4990 var11 = var17;
4991 goto RET_LABEL12;
4992 RET_LABEL12:(void)0;
4993 }
4994 }
4995 if (var11){
4996 } else {
4997 goto BREAK_label;
4998 }
4999 if (unlikely(varonce==NULL)) {
5000 var18 = NEW_core__NativeArray((int)2l, &type_core__NativeArray__core__String);
5001 if (likely(varonce19!=NULL)) {
5002 var20 = varonce19;
5003 } else {
5004 var21 = "\\x";
5005 var23 = (val*)(2l<<2|1);
5006 var24 = (val*)(2l<<2|1);
5007 var25 = (val*)((long)(0)<<2|3);
5008 var26 = (val*)((long)(0)<<2|3);
5009 var22 = core__flat___CString___to_s_unsafe(var21, var23, var24, var25, var26);
5010 var20 = var22;
5011 varonce19 = var20;
5012 }
5013 ((struct instance_core__NativeArray*)var18)->values[0]=var20;
5014 } else {
5015 var18 = varonce;
5016 varonce = NULL;
5017 }
5018 {
5019 { /* Inline native$CString$[] (var_ns,var_i) on <var_ns:CString> */
5020 var29 = (unsigned char)((int)var_ns[var_i]);
5021 var27 = var29;
5022 goto RET_LABEL28;
5023 RET_LABEL28:(void)0;
5024 }
5025 }
5026 {
5027 var30 = core__abstract_text___Byte___Object__to_s(var27);
5028 }
5029 {
5030 var31 = ((val*(*)(val* self, long p0))(var30->class->vft[COLOR_core__abstract_text__Text__substring_from]))(var30, 2l); /* substring_from on <var30:String>*/
5031 }
5032 ((struct instance_core__NativeArray*)var18)->values[1]=var31;
5033 {
5034 var32 = ((val*(*)(val* self))(var18->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var18); /* native_to_s on <var18:NativeArray[String]>*/
5035 }
5036 varonce = var18;
5037 {
5038 ((void(*)(val* self, val* p0))(var_byte_esc->class->vft[COLOR_core__abstract_text__Buffer__append]))(var_byte_esc, var32); /* append on <var_byte_esc:Buffer>*/
5039 }
5040 {
5041 var33 = core___core__Int___Discrete__successor(var_i, 1l);
5042 }
5043 var_i = var33;
5044 }
5045 BREAK_label: (void)0;
5046 if (unlikely(varonce34==NULL)) {
5047 var35 = NEW_core__NativeArray((int)4l, &type_core__NativeArray__core__String);
5048 if (likely(varonce36!=NULL)) {
5049 var37 = varonce36;
5050 } else {
5051 var38 = " = \"";
5052 var40 = (val*)(4l<<2|1);
5053 var41 = (val*)(4l<<2|1);
5054 var42 = (val*)((long)(0)<<2|3);
5055 var43 = (val*)((long)(0)<<2|3);
5056 var39 = core__flat___CString___to_s_unsafe(var38, var40, var41, var42, var43);
5057 var37 = var39;
5058 varonce36 = var37;
5059 }
5060 ((struct instance_core__NativeArray*)var35)->values[1]=var37;
5061 if (likely(varonce44!=NULL)) {
5062 var45 = varonce44;
5063 } else {
5064 var46 = "\";";
5065 var48 = (val*)(2l<<2|1);
5066 var49 = (val*)(2l<<2|1);
5067 var50 = (val*)((long)(0)<<2|3);
5068 var51 = (val*)((long)(0)<<2|3);
5069 var47 = core__flat___CString___to_s_unsafe(var46, var48, var49, var50, var51);
5070 var45 = var47;
5071 varonce44 = var45;
5072 }
5073 ((struct instance_core__NativeArray*)var35)->values[3]=var45;
5074 } else {
5075 var35 = varonce34;
5076 varonce34 = NULL;
5077 }
5078 {
5079 var52 = ((val*(*)(val* self))(var_nat->class->vft[COLOR_core__abstract_text__Object__to_s]))(var_nat); /* to_s on <var_nat:RuntimeVariable>*/
5080 }
5081 ((struct instance_core__NativeArray*)var35)->values[0]=var52;
5082 {
5083 var53 = ((val*(*)(val* self))(var_byte_esc->class->vft[COLOR_core__abstract_text__Object__to_s]))(var_byte_esc); /* to_s on <var_byte_esc:Buffer>*/
5084 }
5085 ((struct instance_core__NativeArray*)var35)->values[2]=var53;
5086 {
5087 var54 = ((val*(*)(val* self))(var35->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var35); /* native_to_s on <var35:NativeArray[String]>*/
5088 }
5089 varonce34 = var35;
5090 {
5091 nitc___nitc__AbstractCompilerVisitor___add(self, var54); /* Direct call abstract_compiler$AbstractCompilerVisitor$add on <self:AbstractCompilerVisitor>*/
5092 }
5093 var = var_nat;
5094 goto RET_LABEL;
5095 RET_LABEL:;
5096 return var;
5097 }
5098 /* method abstract_compiler$AbstractCompilerVisitor$string_instance for (self: AbstractCompilerVisitor, String): RuntimeVariable */
5099 val* nitc___nitc__AbstractCompilerVisitor___string_instance(val* self, val* p0) {
5100 val* var /* : RuntimeVariable */;
5101 val* var_string /* var string: String */;
5102 val* var1 /* : MModule */;
5103 val* var2 /* : MClassType */;
5104 val* var_mtype /* var mtype: MClassType */;
5105 static val* varonce;
5106 val* var3 /* : String */;
5107 char* var4 /* : CString */;
5108 val* var5 /* : String */;
5109 val* var6 /* : nullable Int */;
5110 val* var7 /* : nullable Int */;
5111 val* var8 /* : nullable Bool */;
5112 val* var9 /* : nullable Bool */;
5113 val* var10 /* : String */;
5114 val* var_name /* var name: String */;
5115 val* var12 /* : NativeArray[String] */;
5116 static val* varonce11;
5117 static val* varonce13;
5118 val* var14 /* : String */;
5119 char* var15 /* : CString */;
5120 val* var16 /* : String */;
5121 val* var17 /* : nullable Int */;
5122 val* var18 /* : nullable Int */;
5123 val* var19 /* : nullable Bool */;
5124 val* var20 /* : nullable Bool */;
5125 static val* varonce21;
5126 val* var22 /* : String */;
5127 char* var23 /* : CString */;
5128 val* var24 /* : String */;
5129 val* var25 /* : nullable Int */;
5130 val* var26 /* : nullable Int */;
5131 val* var27 /* : nullable Bool */;
5132 val* var28 /* : nullable Bool */;
5133 static val* varonce29;
5134 val* var30 /* : String */;
5135 char* var31 /* : CString */;
5136 val* var32 /* : String */;
5137 val* var33 /* : nullable Int */;
5138 val* var34 /* : nullable Int */;
5139 val* var35 /* : nullable Bool */;
5140 val* var36 /* : nullable Bool */;
5141 val* var37 /* : String */;
5142 val* var38 /* : String */;
5143 val* var39 /* : RuntimeVariable */;
5144 val* var_res /* var res: RuntimeVariable */;
5145 val* var41 /* : NativeArray[String] */;
5146 static val* varonce40;
5147 static val* varonce42;
5148 val* var43 /* : String */;
5149 char* var44 /* : CString */;
5150 val* var45 /* : String */;
5151 val* var46 /* : nullable Int */;
5152 val* var47 /* : nullable Int */;
5153 val* var48 /* : nullable Bool */;
5154 val* var49 /* : nullable Bool */;
5155 static val* varonce50;
5156 val* var51 /* : String */;
5157 char* var52 /* : CString */;
5158 val* var53 /* : String */;
5159 val* var54 /* : nullable Int */;
5160 val* var55 /* : nullable Int */;
5161 val* var56 /* : nullable Bool */;
5162 val* var57 /* : nullable Bool */;
5163 val* var58 /* : String */;
5164 val* var60 /* : NativeArray[String] */;
5165 static val* varonce59;
5166 static val* varonce61;
5167 val* var62 /* : String */;
5168 char* var63 /* : CString */;
5169 val* var64 /* : String */;
5170 val* var65 /* : nullable Int */;
5171 val* var66 /* : nullable Int */;
5172 val* var67 /* : nullable Bool */;
5173 val* var68 /* : nullable Bool */;
5174 static val* varonce69;
5175 val* var70 /* : String */;
5176 char* var71 /* : CString */;
5177 val* var72 /* : String */;
5178 val* var73 /* : nullable Int */;
5179 val* var74 /* : nullable Int */;
5180 val* var75 /* : nullable Bool */;
5181 val* var76 /* : nullable Bool */;
5182 val* var77 /* : String */;
5183 val* var78 /* : String */;
5184 static val* varonce79;
5185 val* var80 /* : String */;
5186 char* var81 /* : CString */;
5187 val* var82 /* : String */;
5188 val* var83 /* : nullable Int */;
5189 val* var84 /* : nullable Int */;
5190 val* var85 /* : nullable Bool */;
5191 val* var86 /* : nullable Bool */;
5192 val* var87 /* : MModule */;
5193 val* var88 /* : MClassType */;
5194 val* var_native_mtype /* var native_mtype: MClassType */;
5195 val* var89 /* : RuntimeVariable */;
5196 val* var_nat /* var nat: RuntimeVariable */;
5197 val* var91 /* : NativeArray[String] */;
5198 static val* varonce90;
5199 static val* varonce92;
5200 val* var93 /* : String */;
5201 char* var94 /* : CString */;
5202 val* var95 /* : String */;
5203 val* var96 /* : nullable Int */;
5204 val* var97 /* : nullable Int */;
5205 val* var98 /* : nullable Bool */;
5206 val* var99 /* : nullable Bool */;
5207 static val* varonce100;
5208 val* var101 /* : String */;
5209 char* var102 /* : CString */;
5210 val* var103 /* : String */;
5211 val* var104 /* : nullable Int */;
5212 val* var105 /* : nullable Int */;
5213 val* var106 /* : nullable Bool */;
5214 val* var107 /* : nullable Bool */;
5215 val* var108 /* : String */;
5216 val* var109 /* : String */;
5217 val* var110 /* : String */;
5218 long var111 /* : Int */;
5219 val* var112 /* : RuntimeVariable */;
5220 val* var_byte_length /* var byte_length: RuntimeVariable */;
5221 long var113 /* : Int */;
5222 val* var114 /* : RuntimeVariable */;
5223 val* var_unilen /* var unilen: RuntimeVariable */;
5224 val* var116 /* : NativeArray[String] */;
5225 static val* varonce115;
5226 static val* varonce117;
5227 val* var118 /* : String */;
5228 char* var119 /* : CString */;
5229 val* var120 /* : String */;
5230 val* var121 /* : nullable Int */;
5231 val* var122 /* : nullable Int */;
5232 val* var123 /* : nullable Bool */;
5233 val* var124 /* : nullable Bool */;
5234 static val* varonce125;
5235 val* var126 /* : String */;
5236 char* var127 /* : CString */;
5237 val* var128 /* : String */;
5238 val* var129 /* : nullable Int */;
5239 val* var130 /* : nullable Int */;
5240 val* var131 /* : nullable Bool */;
5241 val* var132 /* : nullable Bool */;
5242 val* var133 /* : String */;
5243 static val* varonce134;
5244 val* var135 /* : String */;
5245 char* var136 /* : CString */;
5246 val* var137 /* : String */;
5247 val* var138 /* : nullable Int */;
5248 val* var139 /* : nullable Int */;
5249 val* var140 /* : nullable Bool */;
5250 val* var141 /* : nullable Bool */;
5251 val* var142 /* : MMethod */;
5252 val* var143 /* : Array[RuntimeVariable] */;
5253 val* var_ /* var : Array[RuntimeVariable] */;
5254 val* var144 /* : RuntimeVariable */;
5255 val* var145 /* : Object */;
5256 val* var146 /* : RuntimeVariable */;
5257 val* var147 /* : Object */;
5258 val* var148 /* : nullable RuntimeVariable */;
5259 val* var149 /* : String */;
5260 val* var150 /* : String */;
5261 val* var152 /* : NativeArray[String] */;
5262 static val* varonce151;
5263 static val* varonce153;
5264 val* var154 /* : String */;
5265 char* var155 /* : CString */;
5266 val* var156 /* : String */;
5267 val* var157 /* : nullable Int */;
5268 val* var158 /* : nullable Int */;
5269 val* var159 /* : nullable Bool */;
5270 val* var160 /* : nullable Bool */;
5271 static val* varonce161;
5272 val* var162 /* : String */;
5273 char* var163 /* : CString */;
5274 val* var164 /* : String */;
5275 val* var165 /* : nullable Int */;
5276 val* var166 /* : nullable Int */;
5277 val* var167 /* : nullable Bool */;
5278 val* var168 /* : nullable Bool */;
5279 val* var169 /* : String */;
5280 val* var170 /* : String */;
5281 static val* varonce171;
5282 val* var172 /* : String */;
5283 char* var173 /* : CString */;
5284 val* var174 /* : String */;
5285 val* var175 /* : nullable Int */;
5286 val* var176 /* : nullable Int */;
5287 val* var177 /* : nullable Bool */;
5288 val* var178 /* : nullable Bool */;
5289 var_string = p0;
5290 {
5291 var1 = nitc___nitc__AbstractCompilerVisitor___mmodule(self);
5292 }
5293 {
5294 var2 = nitc__model___MModule___string_type(var1);
5295 }
5296 var_mtype = var2;
5297 if (likely(varonce!=NULL)) {
5298 var3 = varonce;
5299 } else {
5300 var4 = "varonce";
5301 var6 = (val*)(7l<<2|1);
5302 var7 = (val*)(7l<<2|1);
5303 var8 = (val*)((long)(0)<<2|3);
5304 var9 = (val*)((long)(0)<<2|3);
5305 var5 = core__flat___CString___to_s_unsafe(var4, var6, var7, var8, var9);
5306 var3 = var5;
5307 varonce = var3;
5308 }
5309 {
5310 var10 = nitc___nitc__AbstractCompilerVisitor___get_name(self, var3);
5311 }
5312 var_name = var10;
5313 if (unlikely(varonce11==NULL)) {
5314 var12 = NEW_core__NativeArray((int)5l, &type_core__NativeArray__core__String);
5315 if (likely(varonce13!=NULL)) {
5316 var14 = varonce13;
5317 } else {
5318 var15 = "static ";
5319 var17 = (val*)(7l<<2|1);
5320 var18 = (val*)(7l<<2|1);
5321 var19 = (val*)((long)(0)<<2|3);
5322 var20 = (val*)((long)(0)<<2|3);
5323 var16 = core__flat___CString___to_s_unsafe(var15, var17, var18, var19, var20);
5324 var14 = var16;
5325 varonce13 = var14;
5326 }
5327 ((struct instance_core__NativeArray*)var12)->values[0]=var14;
5328 if (likely(varonce21!=NULL)) {
5329 var22 = varonce21;
5330 } else {
5331 var23 = " ";
5332 var25 = (val*)(1l<<2|1);
5333 var26 = (val*)(1l<<2|1);
5334 var27 = (val*)((long)(0)<<2|3);
5335 var28 = (val*)((long)(0)<<2|3);
5336 var24 = core__flat___CString___to_s_unsafe(var23, var25, var26, var27, var28);
5337 var22 = var24;
5338 varonce21 = var22;
5339 }
5340 ((struct instance_core__NativeArray*)var12)->values[2]=var22;
5341 if (likely(varonce29!=NULL)) {
5342 var30 = varonce29;
5343 } else {
5344 var31 = ";";
5345 var33 = (val*)(1l<<2|1);
5346 var34 = (val*)(1l<<2|1);
5347 var35 = (val*)((long)(0)<<2|3);
5348 var36 = (val*)((long)(0)<<2|3);
5349 var32 = core__flat___CString___to_s_unsafe(var31, var33, var34, var35, var36);
5350 var30 = var32;
5351 varonce29 = var30;
5352 }
5353 ((struct instance_core__NativeArray*)var12)->values[4]=var30;
5354 } else {
5355 var12 = varonce11;
5356 varonce11 = NULL;
5357 }
5358 {
5359 var37 = nitc__abstract_compiler___MClassType___MType__ctype(var_mtype);
5360 }
5361 ((struct instance_core__NativeArray*)var12)->values[1]=var37;
5362 ((struct instance_core__NativeArray*)var12)->values[3]=var_name;
5363 {
5364 var38 = ((val*(*)(val* self))(var12->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var12); /* native_to_s on <var12:NativeArray[String]>*/
5365 }
5366 varonce11 = var12;
5367 {
5368 nitc___nitc__AbstractCompilerVisitor___add_decl(self, var38); /* Direct call abstract_compiler$AbstractCompilerVisitor$add_decl on <self:AbstractCompilerVisitor>*/
5369 }
5370 {
5371 var39 = nitc___nitc__AbstractCompilerVisitor___new_var(self, var_mtype);
5372 }
5373 var_res = var39;
5374 if (unlikely(varonce40==NULL)) {
5375 var41 = NEW_core__NativeArray((int)3l, &type_core__NativeArray__core__String);
5376 if (likely(varonce42!=NULL)) {
5377 var43 = varonce42;
5378 } else {
5379 var44 = "if (likely(";
5380 var46 = (val*)(11l<<2|1);
5381 var47 = (val*)(11l<<2|1);
5382 var48 = (val*)((long)(0)<<2|3);
5383 var49 = (val*)((long)(0)<<2|3);
5384 var45 = core__flat___CString___to_s_unsafe(var44, var46, var47, var48, var49);
5385 var43 = var45;
5386 varonce42 = var43;
5387 }
5388 ((struct instance_core__NativeArray*)var41)->values[0]=var43;
5389 if (likely(varonce50!=NULL)) {
5390 var51 = varonce50;
5391 } else {
5392 var52 = "!=NULL)) {";
5393 var54 = (val*)(10l<<2|1);
5394 var55 = (val*)(10l<<2|1);
5395 var56 = (val*)((long)(0)<<2|3);
5396 var57 = (val*)((long)(0)<<2|3);
5397 var53 = core__flat___CString___to_s_unsafe(var52, var54, var55, var56, var57);
5398 var51 = var53;
5399 varonce50 = var51;
5400 }
5401 ((struct instance_core__NativeArray*)var41)->values[2]=var51;
5402 } else {
5403 var41 = varonce40;
5404 varonce40 = NULL;
5405 }
5406 ((struct instance_core__NativeArray*)var41)->values[1]=var_name;
5407 {
5408 var58 = ((val*(*)(val* self))(var41->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var41); /* native_to_s on <var41:NativeArray[String]>*/
5409 }
5410 varonce40 = var41;
5411 {
5412 nitc___nitc__AbstractCompilerVisitor___add(self, var58); /* Direct call abstract_compiler$AbstractCompilerVisitor$add on <self:AbstractCompilerVisitor>*/
5413 }
5414 if (unlikely(varonce59==NULL)) {
5415 var60 = NEW_core__NativeArray((int)4l, &type_core__NativeArray__core__String);
5416 if (likely(varonce61!=NULL)) {
5417 var62 = varonce61;
5418 } else {
5419 var63 = " = ";
5420 var65 = (val*)(3l<<2|1);
5421 var66 = (val*)(3l<<2|1);
5422 var67 = (val*)((long)(0)<<2|3);
5423 var68 = (val*)((long)(0)<<2|3);
5424 var64 = core__flat___CString___to_s_unsafe(var63, var65, var66, var67, var68);
5425 var62 = var64;
5426 varonce61 = var62;
5427 }
5428 ((struct instance_core__NativeArray*)var60)->values[1]=var62;
5429 if (likely(varonce69!=NULL)) {
5430 var70 = varonce69;
5431 } else {
5432 var71 = ";";
5433 var73 = (val*)(1l<<2|1);
5434 var74 = (val*)(1l<<2|1);
5435 var75 = (val*)((long)(0)<<2|3);
5436 var76 = (val*)((long)(0)<<2|3);
5437 var72 = core__flat___CString___to_s_unsafe(var71, var73, var74, var75, var76);
5438 var70 = var72;
5439 varonce69 = var70;
5440 }
5441 ((struct instance_core__NativeArray*)var60)->values[3]=var70;
5442 } else {
5443 var60 = varonce59;
5444 varonce59 = NULL;
5445 }
5446 {
5447 var77 = ((val*(*)(val* self))(var_res->class->vft[COLOR_core__abstract_text__Object__to_s]))(var_res); /* to_s on <var_res:RuntimeVariable>*/
5448 }
5449 ((struct instance_core__NativeArray*)var60)->values[0]=var77;
5450 ((struct instance_core__NativeArray*)var60)->values[2]=var_name;
5451 {
5452 var78 = ((val*(*)(val* self))(var60->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var60); /* native_to_s on <var60:NativeArray[String]>*/
5453 }
5454 varonce59 = var60;
5455 {
5456 nitc___nitc__AbstractCompilerVisitor___add(self, var78); /* Direct call abstract_compiler$AbstractCompilerVisitor$add on <self:AbstractCompilerVisitor>*/
5457 }
5458 if (likely(varonce79!=NULL)) {
5459 var80 = varonce79;
5460 } else {
5461 var81 = "} else {";
5462 var83 = (val*)(8l<<2|1);
5463 var84 = (val*)(8l<<2|1);
5464 var85 = (val*)((long)(0)<<2|3);
5465 var86 = (val*)((long)(0)<<2|3);
5466 var82 = core__flat___CString___to_s_unsafe(var81, var83, var84, var85, var86);
5467 var80 = var82;
5468 varonce79 = var80;
5469 }
5470 {
5471 nitc___nitc__AbstractCompilerVisitor___add(self, var80); /* Direct call abstract_compiler$AbstractCompilerVisitor$add on <self:AbstractCompilerVisitor>*/
5472 }
5473 {
5474 var87 = nitc___nitc__AbstractCompilerVisitor___mmodule(self);
5475 }
5476 {
5477 var88 = nitc__model___MModule___c_string_type(var87);
5478 }
5479 var_native_mtype = var88;
5480 {
5481 var89 = nitc___nitc__AbstractCompilerVisitor___new_var(self, var_native_mtype);
5482 }
5483 var_nat = var89;
5484 if (unlikely(varonce90==NULL)) {
5485 var91 = NEW_core__NativeArray((int)4l, &type_core__NativeArray__core__String);
5486 if (likely(varonce92!=NULL)) {
5487 var93 = varonce92;
5488 } else {
5489 var94 = " = \"";
5490 var96 = (val*)(4l<<2|1);
5491 var97 = (val*)(4l<<2|1);
5492 var98 = (val*)((long)(0)<<2|3);
5493 var99 = (val*)((long)(0)<<2|3);
5494 var95 = core__flat___CString___to_s_unsafe(var94, var96, var97, var98, var99);
5495 var93 = var95;
5496 varonce92 = var93;
5497 }
5498 ((struct instance_core__NativeArray*)var91)->values[1]=var93;
5499 if (likely(varonce100!=NULL)) {
5500 var101 = varonce100;
5501 } else {
5502 var102 = "\";";
5503 var104 = (val*)(2l<<2|1);
5504 var105 = (val*)(2l<<2|1);
5505 var106 = (val*)((long)(0)<<2|3);
5506 var107 = (val*)((long)(0)<<2|3);
5507 var103 = core__flat___CString___to_s_unsafe(var102, var104, var105, var106, var107);
5508 var101 = var103;
5509 varonce100 = var101;
5510 }
5511 ((struct instance_core__NativeArray*)var91)->values[3]=var101;
5512 } else {
5513 var91 = varonce90;
5514 varonce90 = NULL;
5515 }
5516 {
5517 var108 = ((val*(*)(val* self))(var_nat->class->vft[COLOR_core__abstract_text__Object__to_s]))(var_nat); /* to_s on <var_nat:RuntimeVariable>*/
5518 }
5519 ((struct instance_core__NativeArray*)var91)->values[0]=var108;
5520 {
5521 var109 = ((val*(*)(val* self))(var_string->class->vft[COLOR_core__abstract_text__Text__escape_to_c]))(var_string); /* escape_to_c on <var_string:String>*/
5522 }
5523 ((struct instance_core__NativeArray*)var91)->values[2]=var109;
5524 {
5525 var110 = ((val*(*)(val* self))(var91->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var91); /* native_to_s on <var91:NativeArray[String]>*/
5526 }
5527 varonce90 = var91;
5528 {
5529 nitc___nitc__AbstractCompilerVisitor___add(self, var110); /* Direct call abstract_compiler$AbstractCompilerVisitor$add on <self:AbstractCompilerVisitor>*/
5530 }
5531 {
5532 var111 = ((long(*)(val* self))(var_string->class->vft[COLOR_core__abstract_text__Text__byte_length]))(var_string); /* byte_length on <var_string:String>*/
5533 }
5534 {
5535 var112 = nitc___nitc__AbstractCompilerVisitor___int_instance(self, var111);
5536 }
5537 var_byte_length = var112;
5538 {
5539 var113 = ((long(*)(val* self))(var_string->class->vft[COLOR_core__abstract_text__Text__length]))(var_string); /* length on <var_string:String>*/
5540 }
5541 {
5542 var114 = nitc___nitc__AbstractCompilerVisitor___int_instance(self, var113);
5543 }
5544 var_unilen = var114;
5545 if (unlikely(varonce115==NULL)) {
5546 var116 = NEW_core__NativeArray((int)4l, &type_core__NativeArray__core__String);
5547 if (likely(varonce117!=NULL)) {
5548 var118 = varonce117;
5549 } else {
5550 var119 = " = ";
5551 var121 = (val*)(3l<<2|1);
5552 var122 = (val*)(3l<<2|1);
5553 var123 = (val*)((long)(0)<<2|3);
5554 var124 = (val*)((long)(0)<<2|3);
5555 var120 = core__flat___CString___to_s_unsafe(var119, var121, var122, var123, var124);
5556 var118 = var120;
5557 varonce117 = var118;
5558 }
5559 ((struct instance_core__NativeArray*)var116)->values[1]=var118;
5560 if (likely(varonce125!=NULL)) {
5561 var126 = varonce125;
5562 } else {
5563 var127 = ";";
5564 var129 = (val*)(1l<<2|1);
5565 var130 = (val*)(1l<<2|1);
5566 var131 = (val*)((long)(0)<<2|3);
5567 var132 = (val*)((long)(0)<<2|3);
5568 var128 = core__flat___CString___to_s_unsafe(var127, var129, var130, var131, var132);
5569 var126 = var128;
5570 varonce125 = var126;
5571 }
5572 ((struct instance_core__NativeArray*)var116)->values[3]=var126;
5573 } else {
5574 var116 = varonce115;
5575 varonce115 = NULL;
5576 }
5577 {
5578 var133 = ((val*(*)(val* self))(var_res->class->vft[COLOR_core__abstract_text__Object__to_s]))(var_res); /* to_s on <var_res:RuntimeVariable>*/
5579 }
5580 ((struct instance_core__NativeArray*)var116)->values[0]=var133;
5581 if (likely(varonce134!=NULL)) {
5582 var135 = varonce134;
5583 } else {
5584 var136 = "to_s_unsafe";
5585 var138 = (val*)(11l<<2|1);
5586 var139 = (val*)(11l<<2|1);
5587 var140 = (val*)((long)(0)<<2|3);
5588 var141 = (val*)((long)(0)<<2|3);
5589 var137 = core__flat___CString___to_s_unsafe(var136, var138, var139, var140, var141);
5590 var135 = var137;
5591 varonce134 = var135;
5592 }
5593 {
5594 var142 = nitc___nitc__AbstractCompilerVisitor___get_property(self, var135, var_native_mtype);
5595 }
5596 var143 = NEW_core__Array(&type_core__Array__nitc__RuntimeVariable);
5597 {
5598 core___core__Array___with_capacity(var143, 5l); /* Direct call array$Array$with_capacity on <var143:Array[RuntimeVariable]>*/
5599 }
5600 var_ = var143;
5601 {
5602 core___core__AbstractArray___core__abstract_collection__Sequence__push(var_, var_nat); /* Direct call array$AbstractArray$push on <var_:Array[RuntimeVariable]>*/
5603 }
5604 {
5605 core___core__AbstractArray___core__abstract_collection__Sequence__push(var_, var_byte_length); /* Direct call array$AbstractArray$push on <var_:Array[RuntimeVariable]>*/
5606 }
5607 {
5608 core___core__AbstractArray___core__abstract_collection__Sequence__push(var_, var_unilen); /* Direct call array$AbstractArray$push on <var_:Array[RuntimeVariable]>*/
5609 }
5610 {
5611 var145 = (val*)((long)(0)<<2|3);
5612 var144 = nitc___nitc__AbstractCompilerVisitor___value_instance(self, var145);
5613 }
5614 {
5615 core___core__AbstractArray___core__abstract_collection__Sequence__push(var_, var144); /* Direct call array$AbstractArray$push on <var_:Array[RuntimeVariable]>*/
5616 }
5617 {
5618 var147 = (val*)((long)(0)<<2|3);
5619 var146 = nitc___nitc__AbstractCompilerVisitor___value_instance(self, var147);
5620 }
5621 {
5622 core___core__AbstractArray___core__abstract_collection__Sequence__push(var_, var146); /* Direct call array$AbstractArray$push on <var_:Array[RuntimeVariable]>*/
5623 }
5624 {
5625 var148 = nitc___nitc__SeparateCompilerVisitor___nitc__abstract_compiler__AbstractCompilerVisitor__send(self, var142, var_);
5626 }
5627 if (unlikely(var148 == NULL)) {
5628 if(catchStack.cursor >= 0){
5629 longjmp(catchStack.envs[catchStack.cursor], 1);
5630 }
5631 PRINT_ERROR("Runtime error: %s", "Cast failed");
5632 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 1728);
5633 fatal_exit(1);
5634 }
5635 {
5636 var149 = ((val*(*)(val* self))(var148->class->vft[COLOR_core__abstract_text__Object__to_s]))(var148); /* to_s on <var148:nullable RuntimeVariable(RuntimeVariable)>*/
5637 }
5638 ((struct instance_core__NativeArray*)var116)->values[2]=var149;
5639 {
5640 var150 = ((val*(*)(val* self))(var116->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var116); /* native_to_s on <var116:NativeArray[String]>*/
5641 }
5642 varonce115 = var116;
5643 {
5644 nitc___nitc__AbstractCompilerVisitor___add(self, var150); /* Direct call abstract_compiler$AbstractCompilerVisitor$add on <self:AbstractCompilerVisitor>*/
5645 }
5646 if (unlikely(varonce151==NULL)) {
5647 var152 = NEW_core__NativeArray((int)4l, &type_core__NativeArray__core__String);
5648 if (likely(varonce153!=NULL)) {
5649 var154 = varonce153;
5650 } else {
5651 var155 = " = ";
5652 var157 = (val*)(3l<<2|1);
5653 var158 = (val*)(3l<<2|1);
5654 var159 = (val*)((long)(0)<<2|3);
5655 var160 = (val*)((long)(0)<<2|3);
5656 var156 = core__flat___CString___to_s_unsafe(var155, var157, var158, var159, var160);
5657 var154 = var156;
5658 varonce153 = var154;
5659 }
5660 ((struct instance_core__NativeArray*)var152)->values[1]=var154;
5661 if (likely(varonce161!=NULL)) {
5662 var162 = varonce161;
5663 } else {
5664 var163 = ";";
5665 var165 = (val*)(1l<<2|1);
5666 var166 = (val*)(1l<<2|1);
5667 var167 = (val*)((long)(0)<<2|3);
5668 var168 = (val*)((long)(0)<<2|3);
5669 var164 = core__flat___CString___to_s_unsafe(var163, var165, var166, var167, var168);
5670 var162 = var164;
5671 varonce161 = var162;
5672 }
5673 ((struct instance_core__NativeArray*)var152)->values[3]=var162;
5674 } else {
5675 var152 = varonce151;
5676 varonce151 = NULL;
5677 }
5678 ((struct instance_core__NativeArray*)var152)->values[0]=var_name;
5679 {
5680 var169 = ((val*(*)(val* self))(var_res->class->vft[COLOR_core__abstract_text__Object__to_s]))(var_res); /* to_s on <var_res:RuntimeVariable>*/
5681 }
5682 ((struct instance_core__NativeArray*)var152)->values[2]=var169;
5683 {
5684 var170 = ((val*(*)(val* self))(var152->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var152); /* native_to_s on <var152:NativeArray[String]>*/
5685 }
5686 varonce151 = var152;
5687 {
5688 nitc___nitc__AbstractCompilerVisitor___add(self, var170); /* Direct call abstract_compiler$AbstractCompilerVisitor$add on <self:AbstractCompilerVisitor>*/
5689 }
5690 if (likely(varonce171!=NULL)) {
5691 var172 = varonce171;
5692 } else {
5693 var173 = "}";
5694 var175 = (val*)(1l<<2|1);
5695 var176 = (val*)(1l<<2|1);
5696 var177 = (val*)((long)(0)<<2|3);
5697 var178 = (val*)((long)(0)<<2|3);
5698 var174 = core__flat___CString___to_s_unsafe(var173, var175, var176, var177, var178);
5699 var172 = var174;
5700 varonce171 = var172;
5701 }
5702 {
5703 nitc___nitc__AbstractCompilerVisitor___add(self, var172); /* Direct call abstract_compiler$AbstractCompilerVisitor$add on <self:AbstractCompilerVisitor>*/
5704 }
5705 var = var_res;
5706 goto RET_LABEL;
5707 RET_LABEL:;
5708 return var;
5709 }
5710 /* method abstract_compiler$AbstractCompilerVisitor$value_instance for (self: AbstractCompilerVisitor, Object): RuntimeVariable */
5711 val* nitc___nitc__AbstractCompilerVisitor___value_instance(val* self, val* p0) {
5712 val* var /* : RuntimeVariable */;
5713 val* var_object /* var object: Object */;
5714 short int var1 /* : Bool */;
5715 int cltype;
5716 int idtype;
5717 val* var2 /* : RuntimeVariable */;
5718 long var3 /* : Int */;
5719 short int var4 /* : Bool */;
5720 int cltype5;
5721 int idtype6;
5722 val* var7 /* : RuntimeVariable */;
5723 short int var8 /* : Bool */;
5724 short int var9 /* : Bool */;
5725 int cltype10;
5726 int idtype11;
5727 val* var12 /* : RuntimeVariable */;
5728 var_object = p0;
5729 /* <var_object:Object> isa Int */
5730 cltype = type_core__Int.color;
5731 idtype = type_core__Int.id;
5732 if(cltype >= (((long)var_object&3)?type_info[((long)var_object&3)]:var_object->type)->table_size) {
5733 var1 = 0;
5734 } else {
5735 var1 = (((long)var_object&3)?type_info[((long)var_object&3)]:var_object->type)->type_table[cltype] == idtype;
5736 }
5737 if (var1){
5738 {
5739 var3 = (long)(var_object)>>2;
5740 var2 = nitc___nitc__AbstractCompilerVisitor___int_instance(self, var3);
5741 }
5742 var = var2;
5743 goto RET_LABEL;
5744 } else {
5745 /* <var_object:Object> isa Bool */
5746 cltype5 = type_core__Bool.color;
5747 idtype6 = type_core__Bool.id;
5748 if(cltype5 >= (((long)var_object&3)?type_info[((long)var_object&3)]:var_object->type)->table_size) {
5749 var4 = 0;
5750 } else {
5751 var4 = (((long)var_object&3)?type_info[((long)var_object&3)]:var_object->type)->type_table[cltype5] == idtype6;
5752 }
5753 if (var4){
5754 {
5755 var8 = (short int)((long)(var_object)>>2);
5756 var7 = nitc___nitc__AbstractCompilerVisitor___bool_instance(self, var8);
5757 }
5758 var = var7;
5759 goto RET_LABEL;
5760 } else {
5761 /* <var_object:Object> isa String */
5762 cltype10 = type_core__String.color;
5763 idtype11 = type_core__String.id;
5764 if(cltype10 >= (((long)var_object&3)?type_info[((long)var_object&3)]:var_object->type)->table_size) {
5765 var9 = 0;
5766 } else {
5767 var9 = (((long)var_object&3)?type_info[((long)var_object&3)]:var_object->type)->type_table[cltype10] == idtype11;
5768 }
5769 if (var9){
5770 {
5771 var12 = nitc___nitc__AbstractCompilerVisitor___string_instance(self, var_object);
5772 }
5773 var = var12;
5774 goto RET_LABEL;
5775 } else {
5776 if(catchStack.cursor >= 0){
5777 longjmp(catchStack.envs[catchStack.cursor], 1);
5778 }
5779 PRINT_ERROR("Runtime error: %s", "Aborted");
5780 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 1743);
5781 fatal_exit(1);
5782 }
5783 }
5784 }
5785 RET_LABEL:;
5786 return var;
5787 }
5788 /* method abstract_compiler$AbstractCompilerVisitor$add for (self: AbstractCompilerVisitor, String) */
5789 void nitc___nitc__AbstractCompilerVisitor___add(val* self, val* p0) {
5790 val* var_s /* var s: String */;
5791 val* var /* : CodeWriter */;
5792 val* var2 /* : CodeWriter */;
5793 val* var3 /* : Array[String] */;
5794 val* var5 /* : Array[String] */;
5795 var_s = p0;
5796 {
5797 { /* Inline abstract_compiler$AbstractCompilerVisitor$writer (self) on <self:AbstractCompilerVisitor> */
5798 var2 = self->attrs[COLOR_nitc__abstract_compiler__AbstractCompilerVisitor___writer].val; /* _writer on <self:AbstractCompilerVisitor> */
5799 if (unlikely(var2 == NULL)) {
5800 if(catchStack.cursor >= 0){
5801 longjmp(catchStack.envs[catchStack.cursor], 1);
5802 }
5803 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _writer");
5804 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 1229);
5805 fatal_exit(1);
5806 }
5807 var = var2;
5808 RET_LABEL1:(void)0;
5809 }
5810 }
5811 {
5812 { /* Inline abstract_compiler$CodeWriter$lines (var) on <var:CodeWriter> */
5813 var5 = var->attrs[COLOR_nitc__abstract_compiler__CodeWriter___lines].val; /* _lines on <var:CodeWriter> */
5814 if (unlikely(var5 == NULL)) {
5815 if(catchStack.cursor >= 0){
5816 longjmp(catchStack.envs[catchStack.cursor], 1);
5817 }
5818 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _lines");
5819 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 1189);
5820 fatal_exit(1);
5821 }
5822 var3 = var5;
5823 RET_LABEL4:(void)0;
5824 }
5825 }
5826 {
5827 core___core__Array___core__abstract_collection__SimpleCollection__add(var3, var_s); /* Direct call array$Array$add on <var3:Array[String]>*/
5828 }
5829 RET_LABEL:;
5830 }
5831 /* method abstract_compiler$AbstractCompilerVisitor$add_decl for (self: AbstractCompilerVisitor, String) */
5832 void nitc___nitc__AbstractCompilerVisitor___add_decl(val* self, val* p0) {
5833 val* var_s /* var s: String */;
5834 val* var /* : CodeWriter */;
5835 val* var2 /* : CodeWriter */;
5836 val* var3 /* : Array[String] */;
5837 val* var5 /* : Array[String] */;
5838 var_s = p0;
5839 {
5840 { /* Inline abstract_compiler$AbstractCompilerVisitor$writer (self) on <self:AbstractCompilerVisitor> */
5841 var2 = self->attrs[COLOR_nitc__abstract_compiler__AbstractCompilerVisitor___writer].val; /* _writer on <self:AbstractCompilerVisitor> */
5842 if (unlikely(var2 == NULL)) {
5843 if(catchStack.cursor >= 0){
5844 longjmp(catchStack.envs[catchStack.cursor], 1);
5845 }
5846 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _writer");
5847 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 1229);
5848 fatal_exit(1);
5849 }
5850 var = var2;
5851 RET_LABEL1:(void)0;
5852 }
5853 }
5854 {
5855 { /* Inline abstract_compiler$CodeWriter$decl_lines (var) on <var:CodeWriter> */
5856 var5 = var->attrs[COLOR_nitc__abstract_compiler__CodeWriter___decl_lines].val; /* _decl_lines on <var:CodeWriter> */
5857 if (unlikely(var5 == NULL)) {
5858 if(catchStack.cursor >= 0){
5859 longjmp(catchStack.envs[catchStack.cursor], 1);
5860 }
5861 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _decl_lines");
5862 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 1192);
5863 fatal_exit(1);
5864 }
5865 var3 = var5;
5866 RET_LABEL4:(void)0;
5867 }
5868 }
5869 {
5870 core___core__Array___core__abstract_collection__SimpleCollection__add(var3, var_s); /* Direct call array$Array$add on <var3:Array[String]>*/
5871 }
5872 RET_LABEL:;
5873 }
5874 /* method abstract_compiler$AbstractCompilerVisitor$require_declaration for (self: AbstractCompilerVisitor, String) */
5875 void nitc___nitc__AbstractCompilerVisitor___require_declaration(val* self, val* p0) {
5876 val* var_key /* var key: String */;
5877 val* var /* : CodeWriter */;
5878 val* var2 /* : CodeWriter */;
5879 val* var3 /* : CodeFile */;
5880 val* var5 /* : CodeFile */;
5881 val* var6 /* : HashSet[String] */;
5882 val* var8 /* : HashSet[String] */;
5883 val* var_reqs /* var reqs: HashSet[String] */;
5884 short int var9 /* : Bool */;
5885 val* var10 /* : nullable ANode */;
5886 val* var12 /* : nullable ANode */;
5887 val* var_node /* var node: nullable ANode */;
5888 short int var13 /* : Bool */;
5889 short int var14 /* : Bool */;
5890 val* var_other /* var other: nullable Object */;
5891 short int var16 /* : Bool */;
5892 short int var17 /* : Bool */;
5893 val* var18 /* : AbstractCompiler */;
5894 val* var20 /* : AbstractCompiler */;
5895 val* var21 /* : HashMap[String, ANode] */;
5896 val* var23 /* : HashMap[String, ANode] */;
5897 var_key = p0;
5898 {
5899 { /* Inline abstract_compiler$AbstractCompilerVisitor$writer (self) on <self:AbstractCompilerVisitor> */
5900 var2 = self->attrs[COLOR_nitc__abstract_compiler__AbstractCompilerVisitor___writer].val; /* _writer on <self:AbstractCompilerVisitor> */
5901 if (unlikely(var2 == NULL)) {
5902 if(catchStack.cursor >= 0){
5903 longjmp(catchStack.envs[catchStack.cursor], 1);
5904 }
5905 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _writer");
5906 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 1229);
5907 fatal_exit(1);
5908 }
5909 var = var2;
5910 RET_LABEL1:(void)0;
5911 }
5912 }
5913 {
5914 { /* Inline abstract_compiler$CodeWriter$file (var) on <var:CodeWriter> */
5915 var5 = var->attrs[COLOR_nitc__abstract_compiler__CodeWriter___file].val; /* _file on <var:CodeWriter> */
5916 if (unlikely(var5 == NULL)) {
5917 if(catchStack.cursor >= 0){
5918 longjmp(catchStack.envs[catchStack.cursor], 1);
5919 }
5920 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _file");
5921 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 1186);
5922 fatal_exit(1);
5923 }
5924 var3 = var5;
5925 RET_LABEL4:(void)0;
5926 }
5927 }
5928 {
5929 { /* Inline abstract_compiler$CodeFile$required_declarations (var3) on <var3:CodeFile> */
5930 var8 = var3->attrs[COLOR_nitc__abstract_compiler__CodeFile___required_declarations].val; /* _required_declarations on <var3:CodeFile> */
5931 if (unlikely(var8 == NULL)) {
5932 if(catchStack.cursor >= 0){
5933 longjmp(catchStack.envs[catchStack.cursor], 1);
5934 }
5935 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _required_declarations");
5936 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 1176);
5937 fatal_exit(1);
5938 }
5939 var6 = var8;
5940 RET_LABEL7:(void)0;
5941 }
5942 }
5943 var_reqs = var6;
5944 {
5945 var9 = core___core__HashSet___core__abstract_collection__Collection__has(var_reqs, var_key);
5946 }
5947 if (var9){
5948 goto RET_LABEL;
5949 } else {
5950 }
5951 {
5952 core___core__HashSet___core__abstract_collection__SimpleCollection__add(var_reqs, var_key); /* Direct call hash_collection$HashSet$add on <var_reqs:HashSet[String]>*/
5953 }
5954 {
5955 { /* Inline abstract_compiler$AbstractCompilerVisitor$current_node (self) on <self:AbstractCompilerVisitor> */
5956 var12 = self->attrs[COLOR_nitc__abstract_compiler__AbstractCompilerVisitor___current_node].val; /* _current_node on <self:AbstractCompilerVisitor> */
5957 var10 = var12;
5958 RET_LABEL11:(void)0;
5959 }
5960 }
5961 var_node = var10;
5962 if (var_node == NULL) {
5963 var13 = 0; /* is null */
5964 } else {
5965 var13 = 1; /* arg is null and recv is not */
5966 }
5967 if (0) {
5968 { /* Inline kernel$Object$!= (var_node,((val*)NULL)) on <var_node:nullable ANode> */
5969 var_other = ((val*)NULL);
5970 {
5971 var16 = ((short int(*)(val* self, val* p0))(var_node->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_node, var_other); /* == on <var_node:nullable ANode(ANode)>*/
5972 }
5973 var17 = !var16;
5974 var14 = var17;
5975 goto RET_LABEL15;
5976 RET_LABEL15:(void)0;
5977 }
5978 var13 = var14;
5979 }
5980 if (var13){
5981 {
5982 { /* Inline abstract_compiler$AbstractCompilerVisitor$compiler (self) on <self:AbstractCompilerVisitor> */
5983 var20 = self->attrs[COLOR_nitc__abstract_compiler__AbstractCompilerVisitor___compiler].val; /* _compiler on <self:AbstractCompilerVisitor> */
5984 if (unlikely(var20 == NULL)) {
5985 if(catchStack.cursor >= 0){
5986 longjmp(catchStack.envs[catchStack.cursor], 1);
5987 }
5988 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _compiler");
5989 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 1214);
5990 fatal_exit(1);
5991 }
5992 var18 = var20;
5993 RET_LABEL19:(void)0;
5994 }
5995 }
5996 {
5997 { /* Inline abstract_compiler$AbstractCompiler$requirers_of_declarations (var18) on <var18:AbstractCompiler> */
5998 var23 = var18->attrs[COLOR_nitc__abstract_compiler__AbstractCompiler___requirers_of_declarations].val; /* _requirers_of_declarations on <var18:AbstractCompiler> */
5999 if (unlikely(var23 == NULL)) {
6000 if(catchStack.cursor >= 0){
6001 longjmp(catchStack.envs[catchStack.cursor], 1);
6002 }
6003 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _requirers_of_declarations");
6004 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 617);
6005 fatal_exit(1);
6006 }
6007 var21 = var23;
6008 RET_LABEL22:(void)0;
6009 }
6010 }
6011 {
6012 core___core__HashMap___core__abstract_collection__Map___91d_93d_61d(var21, var_key, var_node); /* Direct call hash_collection$HashMap$[]= on <var21:HashMap[String, ANode]>*/
6013 }
6014 } else {
6015 }
6016 RET_LABEL:;
6017 }
6018 /* method abstract_compiler$AbstractCompilerVisitor$declare_once for (self: AbstractCompilerVisitor, String) */
6019 void nitc___nitc__AbstractCompilerVisitor___declare_once(val* self, val* p0) {
6020 val* var_s /* var s: String */;
6021 val* var /* : AbstractCompiler */;
6022 val* var2 /* : AbstractCompiler */;
6023 var_s = p0;
6024 {
6025 { /* Inline abstract_compiler$AbstractCompilerVisitor$compiler (self) on <self:AbstractCompilerVisitor> */
6026 var2 = self->attrs[COLOR_nitc__abstract_compiler__AbstractCompilerVisitor___compiler].val; /* _compiler on <self:AbstractCompilerVisitor> */
6027 if (unlikely(var2 == NULL)) {
6028 if(catchStack.cursor >= 0){
6029 longjmp(catchStack.envs[catchStack.cursor], 1);
6030 }
6031 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _compiler");
6032 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 1214);
6033 fatal_exit(1);
6034 }
6035 var = var2;
6036 RET_LABEL1:(void)0;
6037 }
6038 }
6039 {
6040 nitc___nitc__AbstractCompiler___provide_declaration(var, var_s, var_s); /* Direct call abstract_compiler$AbstractCompiler$provide_declaration on <var:AbstractCompiler>*/
6041 }
6042 {
6043 nitc___nitc__AbstractCompilerVisitor___require_declaration(self, var_s); /* Direct call abstract_compiler$AbstractCompilerVisitor$require_declaration on <self:AbstractCompilerVisitor>*/
6044 }
6045 RET_LABEL:;
6046 }
6047 /* method abstract_compiler$AbstractCompilerVisitor$add_extern for (self: AbstractCompilerVisitor, MModule) */
6048 void nitc___nitc__AbstractCompilerVisitor___add_extern(val* self, val* p0) {
6049 val* var_mmodule /* var mmodule: MModule */;
6050 val* var /* : nullable String */;
6051 val* var_file /* var file: nullable String */;
6052 static val* varonce;
6053 val* var1 /* : String */;
6054 char* var2 /* : CString */;
6055 val* var3 /* : String */;
6056 val* var4 /* : nullable Int */;
6057 val* var5 /* : nullable Int */;
6058 val* var6 /* : nullable Bool */;
6059 val* var7 /* : nullable Bool */;
6060 val* var8 /* : String */;
6061 static val* varonce9;
6062 val* var10 /* : String */;
6063 char* var11 /* : CString */;
6064 val* var12 /* : String */;
6065 val* var13 /* : nullable Int */;
6066 val* var14 /* : nullable Int */;
6067 val* var15 /* : nullable Bool */;
6068 val* var16 /* : nullable Bool */;
6069 val* var17 /* : Text */;
6070 val* var_tryfile /* var tryfile: String */;
6071 short int var18 /* : Bool */;
6072 val* var20 /* : NativeArray[String] */;
6073 static val* varonce19;
6074 static val* varonce21;
6075 val* var22 /* : String */;
6076 char* var23 /* : CString */;
6077 val* var24 /* : String */;
6078 val* var25 /* : nullable Int */;
6079 val* var26 /* : nullable Int */;
6080 val* var27 /* : nullable Bool */;
6081 val* var28 /* : nullable Bool */;
6082 static val* varonce29;
6083 val* var30 /* : String */;
6084 char* var31 /* : CString */;
6085 val* var32 /* : String */;
6086 val* var33 /* : nullable Int */;
6087 val* var34 /* : nullable Int */;
6088 val* var35 /* : nullable Bool */;
6089 val* var36 /* : nullable Bool */;
6090 val* var37 /* : String */;
6091 val* var38 /* : String */;
6092 val* var39 /* : AbstractCompiler */;
6093 val* var41 /* : AbstractCompiler */;
6094 val* var42 /* : Array[String] */;
6095 val* var44 /* : Array[String] */;
6096 static val* varonce45;
6097 val* var46 /* : String */;
6098 char* var47 /* : CString */;
6099 val* var48 /* : String */;
6100 val* var49 /* : nullable Int */;
6101 val* var50 /* : nullable Int */;
6102 val* var51 /* : nullable Bool */;
6103 val* var52 /* : nullable Bool */;
6104 val* var53 /* : Text */;
6105 short int var54 /* : Bool */;
6106 val* var56 /* : NativeArray[String] */;
6107 static val* varonce55;
6108 static val* varonce57;
6109 val* var58 /* : String */;
6110 char* var59 /* : CString */;
6111 val* var60 /* : String */;
6112 val* var61 /* : nullable Int */;
6113 val* var62 /* : nullable Int */;
6114 val* var63 /* : nullable Bool */;
6115 val* var64 /* : nullable Bool */;
6116 static val* varonce65;
6117 val* var66 /* : String */;
6118 char* var67 /* : CString */;
6119 val* var68 /* : String */;
6120 val* var69 /* : nullable Int */;
6121 val* var70 /* : nullable Int */;
6122 val* var71 /* : nullable Bool */;
6123 val* var72 /* : nullable Bool */;
6124 val* var73 /* : String */;
6125 val* var74 /* : String */;
6126 val* var75 /* : AbstractCompiler */;
6127 val* var77 /* : AbstractCompiler */;
6128 val* var78 /* : Array[String] */;
6129 val* var80 /* : Array[String] */;
6130 val* var81 /* : AbstractCompiler */;
6131 val* var83 /* : AbstractCompiler */;
6132 val* var84 /* : ArraySet[String] */;
6133 val* var86 /* : ArraySet[String] */;
6134 short int var87 /* : Bool */;
6135 val* var88 /* : AbstractCompiler */;
6136 val* var90 /* : AbstractCompiler */;
6137 val* var91 /* : ArraySet[String] */;
6138 val* var93 /* : ArraySet[String] */;
6139 static val* varonce94;
6140 val* var95 /* : String */;
6141 char* var96 /* : CString */;
6142 val* var97 /* : String */;
6143 val* var98 /* : nullable Int */;
6144 val* var99 /* : nullable Int */;
6145 val* var100 /* : nullable Bool */;
6146 val* var101 /* : nullable Bool */;
6147 val* var102 /* : Text */;
6148 short int var103 /* : Bool */;
6149 short int var104 /* : Bool */;
6150 static val* varonce105;
6151 val* var106 /* : String */;
6152 char* var107 /* : CString */;
6153 val* var108 /* : String */;
6154 val* var109 /* : nullable Int */;
6155 val* var110 /* : nullable Int */;
6156 val* var111 /* : nullable Bool */;
6157 val* var112 /* : nullable Bool */;
6158 val* var113 /* : Text */;
6159 short int var114 /* : Bool */;
6160 short int var115 /* : Bool */;
6161 val* var116 /* : ExternCFile */;
6162 val* var117 /* : String */;
6163 static val* varonce118;
6164 val* var119 /* : String */;
6165 char* var120 /* : CString */;
6166 val* var121 /* : String */;
6167 val* var122 /* : nullable Int */;
6168 val* var123 /* : nullable Int */;
6169 val* var124 /* : nullable Bool */;
6170 val* var125 /* : nullable Bool */;
6171 val* var_f /* var f: ExternCFile */;
6172 val* var126 /* : AbstractCompiler */;
6173 val* var128 /* : AbstractCompiler */;
6174 val* var129 /* : Array[ExternFile] */;
6175 val* var131 /* : Array[ExternFile] */;
6176 val* var132 /* : AbstractCompiler */;
6177 val* var134 /* : AbstractCompiler */;
6178 val* var135 /* : Array[String] */;
6179 val* var137 /* : Array[String] */;
6180 var_mmodule = p0;
6181 {
6182 var = nitc___nitc__MModule___filepath(var_mmodule);
6183 }
6184 var_file = var;
6185 if (likely(varonce!=NULL)) {
6186 var1 = varonce;
6187 } else {
6188 var2 = ".nit";
6189 var4 = (val*)(4l<<2|1);
6190 var5 = (val*)(4l<<2|1);
6191 var6 = (val*)((long)(0)<<2|3);
6192 var7 = (val*)((long)(0)<<2|3);
6193 var3 = core__flat___CString___to_s_unsafe(var2, var4, var5, var6, var7);
6194 var1 = var3;
6195 varonce = var1;
6196 }
6197 if (var_file == NULL) {
6198 if(catchStack.cursor >= 0){
6199 longjmp(catchStack.envs[catchStack.cursor], 1);
6200 }
6201 PRINT_ERROR("Runtime error: %s", "Receiver is null");
6202 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 1785);
6203 fatal_exit(1);
6204 } else {
6205 var8 = core__file___String___strip_extension(var_file, var1);
6206 }
6207 var_file = var8;
6208 if (likely(varonce9!=NULL)) {
6209 var10 = varonce9;
6210 } else {
6211 var11 = ".nit.h";
6212 var13 = (val*)(6l<<2|1);
6213 var14 = (val*)(6l<<2|1);
6214 var15 = (val*)((long)(0)<<2|3);
6215 var16 = (val*)((long)(0)<<2|3);
6216 var12 = core__flat___CString___to_s_unsafe(var11, var13, var14, var15, var16);
6217 var10 = var12;
6218 varonce9 = var10;
6219 }
6220 {
6221 var17 = ((val*(*)(val* self, val* p0))(var_file->class->vft[COLOR_core__abstract_text__Text___43d]))(var_file, var10); /* + on <var_file:nullable String(String)>*/
6222 }
6223 var_tryfile = var17;
6224 {
6225 var18 = core__file___Text___file_exists(var_tryfile);
6226 }
6227 if (var18){
6228 if (unlikely(varonce19==NULL)) {
6229 var20 = NEW_core__NativeArray((int)3l, &type_core__NativeArray__core__String);
6230 if (likely(varonce21!=NULL)) {
6231 var22 = varonce21;
6232 } else {
6233 var23 = "#include \"";
6234 var25 = (val*)(10l<<2|1);
6235 var26 = (val*)(10l<<2|1);
6236 var27 = (val*)((long)(0)<<2|3);
6237 var28 = (val*)((long)(0)<<2|3);
6238 var24 = core__flat___CString___to_s_unsafe(var23, var25, var26, var27, var28);
6239 var22 = var24;
6240 varonce21 = var22;
6241 }
6242 ((struct instance_core__NativeArray*)var20)->values[0]=var22;
6243 if (likely(varonce29!=NULL)) {
6244 var30 = varonce29;
6245 } else {
6246 var31 = "\"";
6247 var33 = (val*)(1l<<2|1);
6248 var34 = (val*)(1l<<2|1);
6249 var35 = (val*)((long)(0)<<2|3);
6250 var36 = (val*)((long)(0)<<2|3);
6251 var32 = core__flat___CString___to_s_unsafe(var31, var33, var34, var35, var36);
6252 var30 = var32;
6253 varonce29 = var30;
6254 }
6255 ((struct instance_core__NativeArray*)var20)->values[2]=var30;
6256 } else {
6257 var20 = varonce19;
6258 varonce19 = NULL;
6259 }
6260 {
6261 var37 = ((val*(*)(val* self, val* p0))(var_tryfile->class->vft[COLOR_core__file__String__basename]))(var_tryfile, ((val*)NULL)); /* basename on <var_tryfile:String>*/
6262 }
6263 ((struct instance_core__NativeArray*)var20)->values[1]=var37;
6264 {
6265 var38 = ((val*(*)(val* self))(var20->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var20); /* native_to_s on <var20:NativeArray[String]>*/
6266 }
6267 varonce19 = var20;
6268 {
6269 nitc___nitc__AbstractCompilerVisitor___declare_once(self, var38); /* Direct call abstract_compiler$AbstractCompilerVisitor$declare_once on <self:AbstractCompilerVisitor>*/
6270 }
6271 {
6272 { /* Inline abstract_compiler$AbstractCompilerVisitor$compiler (self) on <self:AbstractCompilerVisitor> */
6273 var41 = self->attrs[COLOR_nitc__abstract_compiler__AbstractCompilerVisitor___compiler].val; /* _compiler on <self:AbstractCompilerVisitor> */
6274 if (unlikely(var41 == NULL)) {
6275 if(catchStack.cursor >= 0){
6276 longjmp(catchStack.envs[catchStack.cursor], 1);
6277 }
6278 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _compiler");
6279 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 1214);
6280 fatal_exit(1);
6281 }
6282 var39 = var41;
6283 RET_LABEL40:(void)0;
6284 }
6285 }
6286 {
6287 { /* Inline abstract_compiler$AbstractCompiler$files_to_copy (var39) on <var39:AbstractCompiler> */
6288 var44 = var39->attrs[COLOR_nitc__abstract_compiler__AbstractCompiler___files_to_copy].val; /* _files_to_copy on <var39:AbstractCompiler> */
6289 if (unlikely(var44 == NULL)) {
6290 if(catchStack.cursor >= 0){
6291 longjmp(catchStack.envs[catchStack.cursor], 1);
6292 }
6293 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _files_to_copy");
6294 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 1078);
6295 fatal_exit(1);
6296 }
6297 var42 = var44;
6298 RET_LABEL43:(void)0;
6299 }
6300 }
6301 {
6302 core___core__Array___core__abstract_collection__SimpleCollection__add(var42, var_tryfile); /* Direct call array$Array$add on <var42:Array[String]>*/
6303 }
6304 } else {
6305 }
6306 if (likely(varonce45!=NULL)) {
6307 var46 = varonce45;
6308 } else {
6309 var47 = "_nit.h";
6310 var49 = (val*)(6l<<2|1);
6311 var50 = (val*)(6l<<2|1);
6312 var51 = (val*)((long)(0)<<2|3);
6313 var52 = (val*)((long)(0)<<2|3);
6314 var48 = core__flat___CString___to_s_unsafe(var47, var49, var50, var51, var52);
6315 var46 = var48;
6316 varonce45 = var46;
6317 }
6318 {
6319 var53 = ((val*(*)(val* self, val* p0))(var_file->class->vft[COLOR_core__abstract_text__Text___43d]))(var_file, var46); /* + on <var_file:nullable String(String)>*/
6320 }
6321 var_tryfile = var53;
6322 {
6323 var54 = core__file___Text___file_exists(var_tryfile);
6324 }
6325 if (var54){
6326 if (unlikely(varonce55==NULL)) {
6327 var56 = NEW_core__NativeArray((int)3l, &type_core__NativeArray__core__String);
6328 if (likely(varonce57!=NULL)) {
6329 var58 = varonce57;
6330 } else {
6331 var59 = "#include \"";
6332 var61 = (val*)(10l<<2|1);
6333 var62 = (val*)(10l<<2|1);
6334 var63 = (val*)((long)(0)<<2|3);
6335 var64 = (val*)((long)(0)<<2|3);
6336 var60 = core__flat___CString___to_s_unsafe(var59, var61, var62, var63, var64);
6337 var58 = var60;
6338 varonce57 = var58;
6339 }
6340 ((struct instance_core__NativeArray*)var56)->values[0]=var58;
6341 if (likely(varonce65!=NULL)) {
6342 var66 = varonce65;
6343 } else {
6344 var67 = "\"";
6345 var69 = (val*)(1l<<2|1);
6346 var70 = (val*)(1l<<2|1);
6347 var71 = (val*)((long)(0)<<2|3);
6348 var72 = (val*)((long)(0)<<2|3);
6349 var68 = core__flat___CString___to_s_unsafe(var67, var69, var70, var71, var72);
6350 var66 = var68;
6351 varonce65 = var66;
6352 }
6353 ((struct instance_core__NativeArray*)var56)->values[2]=var66;
6354 } else {
6355 var56 = varonce55;
6356 varonce55 = NULL;
6357 }
6358 {
6359 var73 = ((val*(*)(val* self, val* p0))(var_tryfile->class->vft[COLOR_core__file__String__basename]))(var_tryfile, ((val*)NULL)); /* basename on <var_tryfile:String>*/
6360 }
6361 ((struct instance_core__NativeArray*)var56)->values[1]=var73;
6362 {
6363 var74 = ((val*(*)(val* self))(var56->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var56); /* native_to_s on <var56:NativeArray[String]>*/
6364 }
6365 varonce55 = var56;
6366 {
6367 nitc___nitc__AbstractCompilerVisitor___declare_once(self, var74); /* Direct call abstract_compiler$AbstractCompilerVisitor$declare_once on <self:AbstractCompilerVisitor>*/
6368 }
6369 {
6370 { /* Inline abstract_compiler$AbstractCompilerVisitor$compiler (self) on <self:AbstractCompilerVisitor> */
6371 var77 = self->attrs[COLOR_nitc__abstract_compiler__AbstractCompilerVisitor___compiler].val; /* _compiler on <self:AbstractCompilerVisitor> */
6372 if (unlikely(var77 == NULL)) {
6373 if(catchStack.cursor >= 0){
6374 longjmp(catchStack.envs[catchStack.cursor], 1);
6375 }
6376 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _compiler");
6377 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 1214);
6378 fatal_exit(1);
6379 }
6380 var75 = var77;
6381 RET_LABEL76:(void)0;
6382 }
6383 }
6384 {
6385 { /* Inline abstract_compiler$AbstractCompiler$files_to_copy (var75) on <var75:AbstractCompiler> */
6386 var80 = var75->attrs[COLOR_nitc__abstract_compiler__AbstractCompiler___files_to_copy].val; /* _files_to_copy on <var75:AbstractCompiler> */
6387 if (unlikely(var80 == NULL)) {
6388 if(catchStack.cursor >= 0){
6389 longjmp(catchStack.envs[catchStack.cursor], 1);
6390 }
6391 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _files_to_copy");
6392 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 1078);
6393 fatal_exit(1);
6394 }
6395 var78 = var80;
6396 RET_LABEL79:(void)0;
6397 }
6398 }
6399 {
6400 core___core__Array___core__abstract_collection__SimpleCollection__add(var78, var_tryfile); /* Direct call array$Array$add on <var78:Array[String]>*/
6401 }
6402 } else {
6403 }
6404 {
6405 { /* Inline abstract_compiler$AbstractCompilerVisitor$compiler (self) on <self:AbstractCompilerVisitor> */
6406 var83 = self->attrs[COLOR_nitc__abstract_compiler__AbstractCompilerVisitor___compiler].val; /* _compiler on <self:AbstractCompilerVisitor> */
6407 if (unlikely(var83 == NULL)) {
6408 if(catchStack.cursor >= 0){
6409 longjmp(catchStack.envs[catchStack.cursor], 1);
6410 }
6411 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _compiler");
6412 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 1214);
6413 fatal_exit(1);
6414 }
6415 var81 = var83;
6416 RET_LABEL82:(void)0;
6417 }
6418 }
6419 {
6420 { /* Inline abstract_compiler$AbstractCompiler$seen_extern (var81) on <var81:AbstractCompiler> */
6421 var86 = var81->attrs[COLOR_nitc__abstract_compiler__AbstractCompiler___seen_extern].val; /* _seen_extern on <var81:AbstractCompiler> */
6422 if (unlikely(var86 == NULL)) {
6423 if(catchStack.cursor >= 0){
6424 longjmp(catchStack.envs[catchStack.cursor], 1);
6425 }
6426 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _seen_extern");
6427 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 1081);
6428 fatal_exit(1);
6429 }
6430 var84 = var86;
6431 RET_LABEL85:(void)0;
6432 }
6433 }
6434 {
6435 var87 = core___core__ArraySet___core__abstract_collection__Collection__has(var84, var_file);
6436 }
6437 if (var87){
6438 goto RET_LABEL;
6439 } else {
6440 }
6441 {
6442 { /* Inline abstract_compiler$AbstractCompilerVisitor$compiler (self) on <self:AbstractCompilerVisitor> */
6443 var90 = self->attrs[COLOR_nitc__abstract_compiler__AbstractCompilerVisitor___compiler].val; /* _compiler on <self:AbstractCompilerVisitor> */
6444 if (unlikely(var90 == NULL)) {
6445 if(catchStack.cursor >= 0){
6446 longjmp(catchStack.envs[catchStack.cursor], 1);
6447 }
6448 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _compiler");
6449 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 1214);
6450 fatal_exit(1);
6451 }
6452 var88 = var90;
6453 RET_LABEL89:(void)0;
6454 }
6455 }
6456 {
6457 { /* Inline abstract_compiler$AbstractCompiler$seen_extern (var88) on <var88:AbstractCompiler> */
6458 var93 = var88->attrs[COLOR_nitc__abstract_compiler__AbstractCompiler___seen_extern].val; /* _seen_extern on <var88:AbstractCompiler> */
6459 if (unlikely(var93 == NULL)) {
6460 if(catchStack.cursor >= 0){
6461 longjmp(catchStack.envs[catchStack.cursor], 1);
6462 }
6463 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _seen_extern");
6464 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 1081);
6465 fatal_exit(1);
6466 }
6467 var91 = var93;
6468 RET_LABEL92:(void)0;
6469 }
6470 }
6471 {
6472 core___core__ArraySet___core__abstract_collection__SimpleCollection__add(var91, var_file); /* Direct call array$ArraySet$add on <var91:ArraySet[String]>*/
6473 }
6474 if (likely(varonce94!=NULL)) {
6475 var95 = varonce94;
6476 } else {
6477 var96 = ".nit.c";
6478 var98 = (val*)(6l<<2|1);
6479 var99 = (val*)(6l<<2|1);
6480 var100 = (val*)((long)(0)<<2|3);
6481 var101 = (val*)((long)(0)<<2|3);
6482 var97 = core__flat___CString___to_s_unsafe(var96, var98, var99, var100, var101);
6483 var95 = var97;
6484 varonce94 = var95;
6485 }
6486 {
6487 var102 = ((val*(*)(val* self, val* p0))(var_file->class->vft[COLOR_core__abstract_text__Text___43d]))(var_file, var95); /* + on <var_file:nullable String(String)>*/
6488 }
6489 var_tryfile = var102;
6490 {
6491 var103 = core__file___Text___file_exists(var_tryfile);
6492 }
6493 var104 = !var103;
6494 if (var104){
6495 if (likely(varonce105!=NULL)) {
6496 var106 = varonce105;
6497 } else {
6498 var107 = "_nit.c";
6499 var109 = (val*)(6l<<2|1);
6500 var110 = (val*)(6l<<2|1);
6501 var111 = (val*)((long)(0)<<2|3);
6502 var112 = (val*)((long)(0)<<2|3);
6503 var108 = core__flat___CString___to_s_unsafe(var107, var109, var110, var111, var112);
6504 var106 = var108;
6505 varonce105 = var106;
6506 }
6507 {
6508 var113 = ((val*(*)(val* self, val* p0))(var_file->class->vft[COLOR_core__abstract_text__Text___43d]))(var_file, var106); /* + on <var_file:nullable String(String)>*/
6509 }
6510 var_tryfile = var113;
6511 {
6512 var114 = core__file___Text___file_exists(var_tryfile);
6513 }
6514 var115 = !var114;
6515 if (var115){
6516 goto RET_LABEL;
6517 } else {
6518 }
6519 } else {
6520 }
6521 var116 = NEW_nitc__ExternCFile(&type_nitc__ExternCFile);
6522 {
6523 var117 = ((val*(*)(val* self, val* p0))(var_tryfile->class->vft[COLOR_core__file__String__basename]))(var_tryfile, ((val*)NULL)); /* basename on <var_tryfile:String>*/
6524 }
6525 if (likely(varonce118!=NULL)) {
6526 var119 = varonce118;
6527 } else {
6528 var120 = "";
6529 var122 = (val*)(0l<<2|1);
6530 var123 = (val*)(0l<<2|1);
6531 var124 = (val*)((long)(0)<<2|3);
6532 var125 = (val*)((long)(0)<<2|3);
6533 var121 = core__flat___CString___to_s_unsafe(var120, var122, var123, var124, var125);
6534 var119 = var121;
6535 varonce118 = var119;
6536 }
6537 {
6538 ((void(*)(val* self, val* p0))(var116->class->vft[COLOR_nitc__c_tools__ExternFile__filename_61d]))(var116, var117); /* filename= on <var116:ExternCFile>*/
6539 }
6540 {
6541 ((void(*)(val* self, val* p0))(var116->class->vft[COLOR_nitc__c_tools__ExternCFile__cflags_61d]))(var116, var119); /* cflags= on <var116:ExternCFile>*/
6542 }
6543 {
6544 ((void(*)(val* self))(var116->class->vft[COLOR_core__kernel__Object__init]))(var116); /* init on <var116:ExternCFile>*/
6545 }
6546 var_f = var116;
6547 {
6548 { /* Inline abstract_compiler$AbstractCompilerVisitor$compiler (self) on <self:AbstractCompilerVisitor> */
6549 var128 = self->attrs[COLOR_nitc__abstract_compiler__AbstractCompilerVisitor___compiler].val; /* _compiler on <self:AbstractCompilerVisitor> */
6550 if (unlikely(var128 == NULL)) {
6551 if(catchStack.cursor >= 0){
6552 longjmp(catchStack.envs[catchStack.cursor], 1);
6553 }
6554 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _compiler");
6555 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 1214);
6556 fatal_exit(1);
6557 }
6558 var126 = var128;
6559 RET_LABEL127:(void)0;
6560 }
6561 }
6562 {
6563 { /* Inline abstract_compiler$AbstractCompiler$extern_bodies (var126) on <var126:AbstractCompiler> */
6564 var131 = var126->attrs[COLOR_nitc__abstract_compiler__AbstractCompiler___extern_bodies].val; /* _extern_bodies on <var126:AbstractCompiler> */
6565 if (unlikely(var131 == NULL)) {
6566 if(catchStack.cursor >= 0){
6567 longjmp(catchStack.envs[catchStack.cursor], 1);
6568 }
6569 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _extern_bodies");
6570 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 1075);
6571 fatal_exit(1);
6572 }
6573 var129 = var131;
6574 RET_LABEL130:(void)0;
6575 }
6576 }
6577 {
6578 core___core__Array___core__abstract_collection__SimpleCollection__add(var129, var_f); /* Direct call array$Array$add on <var129:Array[ExternFile]>*/
6579 }
6580 {
6581 { /* Inline abstract_compiler$AbstractCompilerVisitor$compiler (self) on <self:AbstractCompilerVisitor> */
6582 var134 = self->attrs[COLOR_nitc__abstract_compiler__AbstractCompilerVisitor___compiler].val; /* _compiler on <self:AbstractCompilerVisitor> */
6583 if (unlikely(var134 == NULL)) {
6584 if(catchStack.cursor >= 0){
6585 longjmp(catchStack.envs[catchStack.cursor], 1);
6586 }
6587 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _compiler");
6588 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 1214);
6589 fatal_exit(1);
6590 }
6591 var132 = var134;
6592 RET_LABEL133:(void)0;
6593 }
6594 }
6595 {
6596 { /* Inline abstract_compiler$AbstractCompiler$files_to_copy (var132) on <var132:AbstractCompiler> */
6597 var137 = var132->attrs[COLOR_nitc__abstract_compiler__AbstractCompiler___files_to_copy].val; /* _files_to_copy on <var132:AbstractCompiler> */
6598 if (unlikely(var137 == NULL)) {
6599 if(catchStack.cursor >= 0){
6600 longjmp(catchStack.envs[catchStack.cursor], 1);
6601 }
6602 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _files_to_copy");
6603 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 1078);
6604 fatal_exit(1);
6605 }
6606 var135 = var137;
6607 RET_LABEL136:(void)0;
6608 }
6609 }
6610 {
6611 core___core__Array___core__abstract_collection__SimpleCollection__add(var135, var_tryfile); /* Direct call array$Array$add on <var135:Array[String]>*/
6612 }
6613 RET_LABEL:;
6614 }
6615 /* method abstract_compiler$AbstractCompilerVisitor$new_expr for (self: AbstractCompilerVisitor, String, MType): RuntimeVariable */
6616 val* nitc___nitc__AbstractCompilerVisitor___new_expr(val* self, val* p0, val* p1) {
6617 val* var /* : RuntimeVariable */;
6618 val* var_cexpr /* var cexpr: String */;
6619 val* var_mtype /* var mtype: MType */;
6620 val* var1 /* : RuntimeVariable */;
6621 val* var_res /* var res: RuntimeVariable */;
6622 val* var2 /* : NativeArray[String] */;
6623 static val* varonce;
6624 static val* varonce3;
6625 val* var4 /* : String */;
6626 char* var5 /* : CString */;
6627 val* var6 /* : String */;
6628 val* var7 /* : nullable Int */;
6629 val* var8 /* : nullable Int */;
6630 val* var9 /* : nullable Bool */;
6631 val* var10 /* : nullable Bool */;
6632 static val* varonce11;
6633 val* var12 /* : String */;
6634 char* var13 /* : CString */;
6635 val* var14 /* : String */;
6636 val* var15 /* : nullable Int */;
6637 val* var16 /* : nullable Int */;
6638 val* var17 /* : nullable Bool */;
6639 val* var18 /* : nullable Bool */;
6640 val* var19 /* : String */;
6641 val* var20 /* : String */;
6642 var_cexpr = p0;
6643 var_mtype = p1;
6644 {
6645 var1 = nitc___nitc__AbstractCompilerVisitor___new_var(self, var_mtype);
6646 }
6647 var_res = var1;
6648 if (unlikely(varonce==NULL)) {
6649 var2 = NEW_core__NativeArray((int)4l, &type_core__NativeArray__core__String);
6650 if (likely(varonce3!=NULL)) {
6651 var4 = varonce3;
6652 } else {
6653 var5 = " = ";
6654 var7 = (val*)(3l<<2|1);
6655 var8 = (val*)(3l<<2|1);
6656 var9 = (val*)((long)(0)<<2|3);
6657 var10 = (val*)((long)(0)<<2|3);
6658 var6 = core__flat___CString___to_s_unsafe(var5, var7, var8, var9, var10);
6659 var4 = var6;
6660 varonce3 = var4;
6661 }
6662 ((struct instance_core__NativeArray*)var2)->values[1]=var4;
6663 if (likely(varonce11!=NULL)) {
6664 var12 = varonce11;
6665 } else {
6666 var13 = ";";
6667 var15 = (val*)(1l<<2|1);
6668 var16 = (val*)(1l<<2|1);
6669 var17 = (val*)((long)(0)<<2|3);
6670 var18 = (val*)((long)(0)<<2|3);
6671 var14 = core__flat___CString___to_s_unsafe(var13, var15, var16, var17, var18);
6672 var12 = var14;
6673 varonce11 = var12;
6674 }
6675 ((struct instance_core__NativeArray*)var2)->values[3]=var12;
6676 } else {
6677 var2 = varonce;
6678 varonce = NULL;
6679 }
6680 {
6681 var19 = ((val*(*)(val* self))(var_res->class->vft[COLOR_core__abstract_text__Object__to_s]))(var_res); /* to_s on <var_res:RuntimeVariable>*/
6682 }
6683 ((struct instance_core__NativeArray*)var2)->values[0]=var19;
6684 ((struct instance_core__NativeArray*)var2)->values[2]=var_cexpr;
6685 {
6686 var20 = ((val*(*)(val* self))(var2->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var2); /* native_to_s on <var2:NativeArray[String]>*/
6687 }
6688 varonce = var2;
6689 {
6690 nitc___nitc__AbstractCompilerVisitor___add(self, var20); /* Direct call abstract_compiler$AbstractCompilerVisitor$add on <self:AbstractCompilerVisitor>*/
6691 }
6692 var = var_res;
6693 goto RET_LABEL;
6694 RET_LABEL:;
6695 return var;
6696 }
6697 /* method abstract_compiler$AbstractCompilerVisitor$add_abort for (self: AbstractCompilerVisitor, String) */
6698 void nitc___nitc__AbstractCompilerVisitor___add_abort(val* self, val* p0) {
6699 val* var_message /* var message: String */;
6700 static val* varonce;
6701 val* var /* : String */;
6702 char* var1 /* : CString */;
6703 val* var2 /* : String */;
6704 val* var3 /* : nullable Int */;
6705 val* var4 /* : nullable Int */;
6706 val* var5 /* : nullable Bool */;
6707 val* var6 /* : nullable Bool */;
6708 static val* varonce7;
6709 val* var8 /* : String */;
6710 char* var9 /* : CString */;
6711 val* var10 /* : String */;
6712 val* var11 /* : nullable Int */;
6713 val* var12 /* : nullable Int */;
6714 val* var13 /* : nullable Bool */;
6715 val* var14 /* : nullable Bool */;
6716 static val* varonce15;
6717 val* var16 /* : String */;
6718 char* var17 /* : CString */;
6719 val* var18 /* : String */;
6720 val* var19 /* : nullable Int */;
6721 val* var20 /* : nullable Int */;
6722 val* var21 /* : nullable Bool */;
6723 val* var22 /* : nullable Bool */;
6724 val* var24 /* : NativeArray[String] */;
6725 static val* varonce23;
6726 static val* varonce25;
6727 val* var26 /* : String */;
6728 char* var27 /* : CString */;
6729 val* var28 /* : String */;
6730 val* var29 /* : nullable Int */;
6731 val* var30 /* : nullable Int */;
6732 val* var31 /* : nullable Bool */;
6733 val* var32 /* : nullable Bool */;
6734 static val* varonce33;
6735 val* var34 /* : String */;
6736 char* var35 /* : CString */;
6737 val* var36 /* : String */;
6738 val* var37 /* : nullable Int */;
6739 val* var38 /* : nullable Int */;
6740 val* var39 /* : nullable Bool */;
6741 val* var40 /* : nullable Bool */;
6742 val* var41 /* : String */;
6743 val* var42 /* : String */;
6744 var_message = p0;
6745 if (likely(varonce!=NULL)) {
6746 var = varonce;
6747 } else {
6748 var1 = "if(catchStack.cursor >= 0){";
6749 var3 = (val*)(27l<<2|1);
6750 var4 = (val*)(27l<<2|1);
6751 var5 = (val*)((long)(0)<<2|3);
6752 var6 = (val*)((long)(0)<<2|3);
6753 var2 = core__flat___CString___to_s_unsafe(var1, var3, var4, var5, var6);
6754 var = var2;
6755 varonce = var;
6756 }
6757 {
6758 nitc___nitc__AbstractCompilerVisitor___add(self, var); /* Direct call abstract_compiler$AbstractCompilerVisitor$add on <self:AbstractCompilerVisitor>*/
6759 }
6760 if (likely(varonce7!=NULL)) {
6761 var8 = varonce7;
6762 } else {
6763 var9 = "longjmp(catchStack.envs[catchStack.cursor], 1);";
6764 var11 = (val*)(47l<<2|1);
6765 var12 = (val*)(47l<<2|1);
6766 var13 = (val*)((long)(0)<<2|3);
6767 var14 = (val*)((long)(0)<<2|3);
6768 var10 = core__flat___CString___to_s_unsafe(var9, var11, var12, var13, var14);
6769 var8 = var10;
6770 varonce7 = var8;
6771 }
6772 {
6773 nitc___nitc__AbstractCompilerVisitor___add(self, var8); /* Direct call abstract_compiler$AbstractCompilerVisitor$add on <self:AbstractCompilerVisitor>*/
6774 }
6775 if (likely(varonce15!=NULL)) {
6776 var16 = varonce15;
6777 } else {
6778 var17 = "}";
6779 var19 = (val*)(1l<<2|1);
6780 var20 = (val*)(1l<<2|1);
6781 var21 = (val*)((long)(0)<<2|3);
6782 var22 = (val*)((long)(0)<<2|3);
6783 var18 = core__flat___CString___to_s_unsafe(var17, var19, var20, var21, var22);
6784 var16 = var18;
6785 varonce15 = var16;
6786 }
6787 {
6788 nitc___nitc__AbstractCompilerVisitor___add(self, var16); /* Direct call abstract_compiler$AbstractCompilerVisitor$add on <self:AbstractCompilerVisitor>*/
6789 }
6790 if (unlikely(varonce23==NULL)) {
6791 var24 = NEW_core__NativeArray((int)3l, &type_core__NativeArray__core__String);
6792 if (likely(varonce25!=NULL)) {
6793 var26 = varonce25;
6794 } else {
6795 var27 = "PRINT_ERROR(\"Runtime error: %s\", \"";
6796 var29 = (val*)(34l<<2|1);
6797 var30 = (val*)(34l<<2|1);
6798 var31 = (val*)((long)(0)<<2|3);
6799 var32 = (val*)((long)(0)<<2|3);
6800 var28 = core__flat___CString___to_s_unsafe(var27, var29, var30, var31, var32);
6801 var26 = var28;
6802 varonce25 = var26;
6803 }
6804 ((struct instance_core__NativeArray*)var24)->values[0]=var26;
6805 if (likely(varonce33!=NULL)) {
6806 var34 = varonce33;
6807 } else {
6808 var35 = "\");";
6809 var37 = (val*)(3l<<2|1);
6810 var38 = (val*)(3l<<2|1);
6811 var39 = (val*)((long)(0)<<2|3);
6812 var40 = (val*)((long)(0)<<2|3);
6813 var36 = core__flat___CString___to_s_unsafe(var35, var37, var38, var39, var40);
6814 var34 = var36;
6815 varonce33 = var34;
6816 }
6817 ((struct instance_core__NativeArray*)var24)->values[2]=var34;
6818 } else {
6819 var24 = varonce23;
6820 varonce23 = NULL;
6821 }
6822 {
6823 var41 = ((val*(*)(val* self))(var_message->class->vft[COLOR_core__abstract_text__Text__escape_to_c]))(var_message); /* escape_to_c on <var_message:String>*/
6824 }
6825 ((struct instance_core__NativeArray*)var24)->values[1]=var41;
6826 {
6827 var42 = ((val*(*)(val* self))(var24->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var24); /* native_to_s on <var24:NativeArray[String]>*/
6828 }
6829 varonce23 = var24;
6830 {
6831 nitc___nitc__AbstractCompilerVisitor___add(self, var42); /* Direct call abstract_compiler$AbstractCompilerVisitor$add on <self:AbstractCompilerVisitor>*/
6832 }
6833 {
6834 nitc___nitc__AbstractCompilerVisitor___add_raw_abort(self); /* Direct call abstract_compiler$AbstractCompilerVisitor$add_raw_abort on <self:AbstractCompilerVisitor>*/
6835 }
6836 RET_LABEL:;
6837 }
6838 /* method abstract_compiler$AbstractCompilerVisitor$add_raw_abort for (self: AbstractCompilerVisitor) */
6839 void nitc___nitc__AbstractCompilerVisitor___add_raw_abort(val* self) {
6840 short int var /* : Bool */;
6841 short int var1 /* : Bool */;
6842 val* var2 /* : nullable ANode */;
6843 val* var4 /* : nullable ANode */;
6844 short int var5 /* : Bool */;
6845 short int var6 /* : Bool */;
6846 val* var_other /* var other: nullable Object */;
6847 short int var8 /* : Bool */;
6848 short int var9 /* : Bool */;
6849 short int var_ /* var : Bool */;
6850 val* var10 /* : nullable ANode */;
6851 val* var12 /* : nullable ANode */;
6852 val* var13 /* : Location */;
6853 val* var15 /* : Location */;
6854 val* var16 /* : nullable SourceFile */;
6855 val* var18 /* : nullable SourceFile */;
6856 short int var19 /* : Bool */;
6857 short int var20 /* : Bool */;
6858 short int var22 /* : Bool */;
6859 short int var23 /* : Bool */;
6860 short int var_24 /* var : Bool */;
6861 val* var25 /* : nullable ANode */;
6862 val* var27 /* : nullable ANode */;
6863 val* var28 /* : Location */;
6864 val* var30 /* : Location */;
6865 val* var31 /* : nullable SourceFile */;
6866 val* var33 /* : nullable SourceFile */;
6867 val* var34 /* : nullable MModule */;
6868 val* var36 /* : nullable MModule */;
6869 short int var37 /* : Bool */;
6870 short int var38 /* : Bool */;
6871 short int var40 /* : Bool */;
6872 short int var41 /* : Bool */;
6873 val* var42 /* : NativeArray[String] */;
6874 static val* varonce;
6875 static val* varonce43;
6876 val* var44 /* : String */;
6877 char* var45 /* : CString */;
6878 val* var46 /* : String */;
6879 val* var47 /* : nullable Int */;
6880 val* var48 /* : nullable Int */;
6881 val* var49 /* : nullable Bool */;
6882 val* var50 /* : nullable Bool */;
6883 val* var51 /* : nullable ANode */;
6884 val* var53 /* : nullable ANode */;
6885 val* var54 /* : Location */;
6886 val* var56 /* : Location */;
6887 val* var57 /* : nullable SourceFile */;
6888 val* var59 /* : nullable SourceFile */;
6889 val* var60 /* : nullable MModule */;
6890 val* var62 /* : nullable MModule */;
6891 val* var63 /* : String */;
6892 val* var64 /* : String */;
6893 val* var_f /* var f: String */;
6894 val* var66 /* : NativeArray[String] */;
6895 static val* varonce65;
6896 static val* varonce67;
6897 val* var68 /* : String */;
6898 char* var69 /* : CString */;
6899 val* var70 /* : String */;
6900 val* var71 /* : nullable Int */;
6901 val* var72 /* : nullable Int */;
6902 val* var73 /* : nullable Bool */;
6903 val* var74 /* : nullable Bool */;
6904 static val* varonce75;
6905 val* var76 /* : String */;
6906 char* var77 /* : CString */;
6907 val* var78 /* : String */;
6908 val* var79 /* : nullable Int */;
6909 val* var80 /* : nullable Int */;
6910 val* var81 /* : nullable Bool */;
6911 val* var82 /* : nullable Bool */;
6912 static val* varonce83;
6913 val* var84 /* : String */;
6914 char* var85 /* : CString */;
6915 val* var86 /* : String */;
6916 val* var87 /* : nullable Int */;
6917 val* var88 /* : nullable Int */;
6918 val* var89 /* : nullable Bool */;
6919 val* var90 /* : nullable Bool */;
6920 val* var91 /* : nullable ANode */;
6921 val* var93 /* : nullable ANode */;
6922 val* var94 /* : Location */;
6923 val* var96 /* : Location */;
6924 long var97 /* : Int */;
6925 long var99 /* : Int */;
6926 val* var100 /* : String */;
6927 val* var101 /* : String */;
6928 static val* varonce102;
6929 val* var103 /* : String */;
6930 char* var104 /* : CString */;
6931 val* var105 /* : String */;
6932 val* var106 /* : nullable Int */;
6933 val* var107 /* : nullable Int */;
6934 val* var108 /* : nullable Bool */;
6935 val* var109 /* : nullable Bool */;
6936 static val* varonce110;
6937 val* var111 /* : String */;
6938 char* var112 /* : CString */;
6939 val* var113 /* : String */;
6940 val* var114 /* : nullable Int */;
6941 val* var115 /* : nullable Int */;
6942 val* var116 /* : nullable Bool */;
6943 val* var117 /* : nullable Bool */;
6944 {
6945 { /* Inline abstract_compiler$AbstractCompilerVisitor$current_node (self) on <self:AbstractCompilerVisitor> */
6946 var4 = self->attrs[COLOR_nitc__abstract_compiler__AbstractCompilerVisitor___current_node].val; /* _current_node on <self:AbstractCompilerVisitor> */
6947 var2 = var4;
6948 RET_LABEL3:(void)0;
6949 }
6950 }
6951 if (var2 == NULL) {
6952 var5 = 0; /* is null */
6953 } else {
6954 var5 = 1; /* arg is null and recv is not */
6955 }
6956 if (0) {
6957 { /* Inline kernel$Object$!= (var2,((val*)NULL)) on <var2:nullable ANode> */
6958 var_other = ((val*)NULL);
6959 {
6960 var8 = ((short int(*)(val* self, val* p0))(var2->class->vft[COLOR_core__kernel__Object___61d_61d]))(var2, var_other); /* == on <var2:nullable ANode(ANode)>*/
6961 }
6962 var9 = !var8;
6963 var6 = var9;
6964 goto RET_LABEL7;
6965 RET_LABEL7:(void)0;
6966 }
6967 var5 = var6;
6968 }
6969 var_ = var5;
6970 if (var5){
6971 {
6972 { /* Inline abstract_compiler$AbstractCompilerVisitor$current_node (self) on <self:AbstractCompilerVisitor> */
6973 var12 = self->attrs[COLOR_nitc__abstract_compiler__AbstractCompilerVisitor___current_node].val; /* _current_node on <self:AbstractCompilerVisitor> */
6974 var10 = var12;
6975 RET_LABEL11:(void)0;
6976 }
6977 }
6978 if (var10 == NULL) {
6979 if(catchStack.cursor >= 0){
6980 longjmp(catchStack.envs[catchStack.cursor], 1);
6981 }
6982 PRINT_ERROR("Runtime error: %s", "Receiver is null");
6983 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 1830);
6984 fatal_exit(1);
6985 } else {
6986 { /* Inline parser_nodes$ANode$location (var10) on <var10:nullable ANode> */
6987 if (unlikely(var10 == NULL)) {
6988 if(catchStack.cursor >= 0){
6989 longjmp(catchStack.envs[catchStack.cursor], 1);
6990 }
6991 PRINT_ERROR("Runtime error: %s", "Receiver is null");
6992 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 25);
6993 fatal_exit(1);
6994 }
6995 var15 = var10->attrs[COLOR_nitc__parser_nodes__ANode___location].val; /* _location on <var10:nullable ANode> */
6996 if (unlikely(var15 == NULL)) {
6997 if(catchStack.cursor >= 0){
6998 longjmp(catchStack.envs[catchStack.cursor], 1);
6999 }
7000 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _location");
7001 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 25);
7002 fatal_exit(1);
7003 }
7004 var13 = var15;
7005 RET_LABEL14:(void)0;
7006 }
7007 }
7008 {
7009 { /* Inline location$Location$file (var13) on <var13:Location> */
7010 var18 = var13->attrs[COLOR_nitc__location__Location___file].val; /* _file on <var13:Location> */
7011 var16 = var18;
7012 RET_LABEL17:(void)0;
7013 }
7014 }
7015 if (var16 == NULL) {
7016 var19 = 0; /* is null */
7017 } else {
7018 var19 = 1; /* arg is null and recv is not */
7019 }
7020 if (0) {
7021 { /* Inline kernel$Object$!= (var16,((val*)NULL)) on <var16:nullable SourceFile> */
7022 var_other = ((val*)NULL);
7023 {
7024 var22 = ((short int(*)(val* self, val* p0))(var16->class->vft[COLOR_core__kernel__Object___61d_61d]))(var16, var_other); /* == on <var16:nullable SourceFile(SourceFile)>*/
7025 }
7026 var23 = !var22;
7027 var20 = var23;
7028 goto RET_LABEL21;
7029 RET_LABEL21:(void)0;
7030 }
7031 var19 = var20;
7032 }
7033 var1 = var19;
7034 } else {
7035 var1 = var_;
7036 }
7037 var_24 = var1;
7038 if (var1){
7039 {
7040 { /* Inline abstract_compiler$AbstractCompilerVisitor$current_node (self) on <self:AbstractCompilerVisitor> */
7041 var27 = self->attrs[COLOR_nitc__abstract_compiler__AbstractCompilerVisitor___current_node].val; /* _current_node on <self:AbstractCompilerVisitor> */
7042 var25 = var27;
7043 RET_LABEL26:(void)0;
7044 }
7045 }
7046 if (var25 == NULL) {
7047 if(catchStack.cursor >= 0){
7048 longjmp(catchStack.envs[catchStack.cursor], 1);
7049 }
7050 PRINT_ERROR("Runtime error: %s", "Receiver is null");
7051 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 1831);
7052 fatal_exit(1);
7053 } else {
7054 { /* Inline parser_nodes$ANode$location (var25) on <var25:nullable ANode> */
7055 if (unlikely(var25 == NULL)) {
7056 if(catchStack.cursor >= 0){
7057 longjmp(catchStack.envs[catchStack.cursor], 1);
7058 }
7059 PRINT_ERROR("Runtime error: %s", "Receiver is null");
7060 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 25);
7061 fatal_exit(1);
7062 }
7063 var30 = var25->attrs[COLOR_nitc__parser_nodes__ANode___location].val; /* _location on <var25:nullable ANode> */
7064 if (unlikely(var30 == NULL)) {
7065 if(catchStack.cursor >= 0){
7066 longjmp(catchStack.envs[catchStack.cursor], 1);
7067 }
7068 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _location");
7069 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 25);
7070 fatal_exit(1);
7071 }
7072 var28 = var30;
7073 RET_LABEL29:(void)0;
7074 }
7075 }
7076 {
7077 { /* Inline location$Location$file (var28) on <var28:Location> */
7078 var33 = var28->attrs[COLOR_nitc__location__Location___file].val; /* _file on <var28:Location> */
7079 var31 = var33;
7080 RET_LABEL32:(void)0;
7081 }
7082 }
7083 if (var31 == NULL) {
7084 if(catchStack.cursor >= 0){
7085 longjmp(catchStack.envs[catchStack.cursor], 1);
7086 }
7087 PRINT_ERROR("Runtime error: %s", "Receiver is null");
7088 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 1831);
7089 fatal_exit(1);
7090 } else {
7091 { /* Inline loader$SourceFile$mmodule (var31) on <var31:nullable SourceFile> */
7092 if (unlikely(var31 == NULL)) {
7093 if(catchStack.cursor >= 0){
7094 longjmp(catchStack.envs[catchStack.cursor], 1);
7095 }
7096 PRINT_ERROR("Runtime error: %s", "Receiver is null");
7097 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__loader, 1226);
7098 fatal_exit(1);
7099 }
7100 var36 = var31->attrs[COLOR_nitc__loader__SourceFile___mmodule].val; /* _mmodule on <var31:nullable SourceFile> */
7101 var34 = var36;
7102 RET_LABEL35:(void)0;
7103 }
7104 }
7105 if (var34 == NULL) {
7106 var37 = 0; /* is null */
7107 } else {
7108 var37 = 1; /* arg is null and recv is not */
7109 }
7110 if (0) {
7111 { /* Inline kernel$Object$!= (var34,((val*)NULL)) on <var34:nullable MModule> */
7112 var_other = ((val*)NULL);
7113 {
7114 var40 = ((short int(*)(val* self, val* p0))(var34->class->vft[COLOR_core__kernel__Object___61d_61d]))(var34, var_other); /* == on <var34:nullable MModule(MModule)>*/
7115 }
7116 var41 = !var40;
7117 var38 = var41;
7118 goto RET_LABEL39;
7119 RET_LABEL39:(void)0;
7120 }
7121 var37 = var38;
7122 }
7123 var = var37;
7124 } else {
7125 var = var_24;
7126 }
7127 if (var){
7128 if (unlikely(varonce==NULL)) {
7129 var42 = NEW_core__NativeArray((int)2l, &type_core__NativeArray__core__String);
7130 if (likely(varonce43!=NULL)) {
7131 var44 = varonce43;
7132 } else {
7133 var45 = "FILE_";
7134 var47 = (val*)(5l<<2|1);
7135 var48 = (val*)(5l<<2|1);
7136 var49 = (val*)((long)(0)<<2|3);
7137 var50 = (val*)((long)(0)<<2|3);
7138 var46 = core__flat___CString___to_s_unsafe(var45, var47, var48, var49, var50);
7139 var44 = var46;
7140 varonce43 = var44;
7141 }
7142 ((struct instance_core__NativeArray*)var42)->values[0]=var44;
7143 } else {
7144 var42 = varonce;
7145 varonce = NULL;
7146 }
7147 {
7148 { /* Inline abstract_compiler$AbstractCompilerVisitor$current_node (self) on <self:AbstractCompilerVisitor> */
7149 var53 = self->attrs[COLOR_nitc__abstract_compiler__AbstractCompilerVisitor___current_node].val; /* _current_node on <self:AbstractCompilerVisitor> */
7150 var51 = var53;
7151 RET_LABEL52:(void)0;
7152 }
7153 }
7154 if (var51 == NULL) {
7155 if(catchStack.cursor >= 0){
7156 longjmp(catchStack.envs[catchStack.cursor], 1);
7157 }
7158 PRINT_ERROR("Runtime error: %s", "Receiver is null");
7159 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 1832);
7160 fatal_exit(1);
7161 } else {
7162 { /* Inline parser_nodes$ANode$location (var51) on <var51:nullable ANode> */
7163 if (unlikely(var51 == NULL)) {
7164 if(catchStack.cursor >= 0){
7165 longjmp(catchStack.envs[catchStack.cursor], 1);
7166 }
7167 PRINT_ERROR("Runtime error: %s", "Receiver is null");
7168 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 25);
7169 fatal_exit(1);
7170 }
7171 var56 = var51->attrs[COLOR_nitc__parser_nodes__ANode___location].val; /* _location on <var51:nullable ANode> */
7172 if (unlikely(var56 == NULL)) {
7173 if(catchStack.cursor >= 0){
7174 longjmp(catchStack.envs[catchStack.cursor], 1);
7175 }
7176 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _location");
7177 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 25);
7178 fatal_exit(1);
7179 }
7180 var54 = var56;
7181 RET_LABEL55:(void)0;
7182 }
7183 }
7184 {
7185 { /* Inline location$Location$file (var54) on <var54:Location> */
7186 var59 = var54->attrs[COLOR_nitc__location__Location___file].val; /* _file on <var54:Location> */
7187 var57 = var59;
7188 RET_LABEL58:(void)0;
7189 }
7190 }
7191 if (var57 == NULL) {
7192 if(catchStack.cursor >= 0){
7193 longjmp(catchStack.envs[catchStack.cursor], 1);
7194 }
7195 PRINT_ERROR("Runtime error: %s", "Receiver is null");
7196 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 1832);
7197 fatal_exit(1);
7198 } else {
7199 { /* Inline loader$SourceFile$mmodule (var57) on <var57:nullable SourceFile> */
7200 if (unlikely(var57 == NULL)) {
7201 if(catchStack.cursor >= 0){
7202 longjmp(catchStack.envs[catchStack.cursor], 1);
7203 }
7204 PRINT_ERROR("Runtime error: %s", "Receiver is null");
7205 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__loader, 1226);
7206 fatal_exit(1);
7207 }
7208 var62 = var57->attrs[COLOR_nitc__loader__SourceFile___mmodule].val; /* _mmodule on <var57:nullable SourceFile> */
7209 var60 = var62;
7210 RET_LABEL61:(void)0;
7211 }
7212 }
7213 if (var60 == NULL) {
7214 if(catchStack.cursor >= 0){
7215 longjmp(catchStack.envs[catchStack.cursor], 1);
7216 }
7217 PRINT_ERROR("Runtime error: %s", "Receiver is null");
7218 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 1832);
7219 fatal_exit(1);
7220 } else {
7221 var63 = nitc___nitc__MModule___nitc__model_base__MEntity__c_name(var60);
7222 }
7223 ((struct instance_core__NativeArray*)var42)->values[1]=var63;
7224 {
7225 var64 = ((val*(*)(val* self))(var42->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var42); /* native_to_s on <var42:NativeArray[String]>*/
7226 }
7227 varonce = var42;
7228 var_f = var64;
7229 {
7230 nitc___nitc__AbstractCompilerVisitor___require_declaration(self, var_f); /* Direct call abstract_compiler$AbstractCompilerVisitor$require_declaration on <self:AbstractCompilerVisitor>*/
7231 }
7232 if (unlikely(varonce65==NULL)) {
7233 var66 = NEW_core__NativeArray((int)5l, &type_core__NativeArray__core__String);
7234 if (likely(varonce67!=NULL)) {
7235 var68 = varonce67;
7236 } else {
7237 var69 = "PRINT_ERROR(\" (%s:%d)\\n\", ";
7238 var71 = (val*)(26l<<2|1);
7239 var72 = (val*)(26l<<2|1);
7240 var73 = (val*)((long)(0)<<2|3);
7241 var74 = (val*)((long)(0)<<2|3);
7242 var70 = core__flat___CString___to_s_unsafe(var69, var71, var72, var73, var74);
7243 var68 = var70;
7244 varonce67 = var68;
7245 }
7246 ((struct instance_core__NativeArray*)var66)->values[0]=var68;
7247 if (likely(varonce75!=NULL)) {
7248 var76 = varonce75;
7249 } else {
7250 var77 = ", ";
7251 var79 = (val*)(2l<<2|1);
7252 var80 = (val*)(2l<<2|1);
7253 var81 = (val*)((long)(0)<<2|3);
7254 var82 = (val*)((long)(0)<<2|3);
7255 var78 = core__flat___CString___to_s_unsafe(var77, var79, var80, var81, var82);
7256 var76 = var78;
7257 varonce75 = var76;
7258 }
7259 ((struct instance_core__NativeArray*)var66)->values[2]=var76;
7260 if (likely(varonce83!=NULL)) {
7261 var84 = varonce83;
7262 } else {
7263 var85 = ");";
7264 var87 = (val*)(2l<<2|1);
7265 var88 = (val*)(2l<<2|1);
7266 var89 = (val*)((long)(0)<<2|3);
7267 var90 = (val*)((long)(0)<<2|3);
7268 var86 = core__flat___CString___to_s_unsafe(var85, var87, var88, var89, var90);
7269 var84 = var86;
7270 varonce83 = var84;
7271 }
7272 ((struct instance_core__NativeArray*)var66)->values[4]=var84;
7273 } else {
7274 var66 = varonce65;
7275 varonce65 = NULL;
7276 }
7277 ((struct instance_core__NativeArray*)var66)->values[1]=var_f;
7278 {
7279 { /* Inline abstract_compiler$AbstractCompilerVisitor$current_node (self) on <self:AbstractCompilerVisitor> */
7280 var93 = self->attrs[COLOR_nitc__abstract_compiler__AbstractCompilerVisitor___current_node].val; /* _current_node on <self:AbstractCompilerVisitor> */
7281 var91 = var93;
7282 RET_LABEL92:(void)0;
7283 }
7284 }
7285 if (var91 == NULL) {
7286 if(catchStack.cursor >= 0){
7287 longjmp(catchStack.envs[catchStack.cursor], 1);
7288 }
7289 PRINT_ERROR("Runtime error: %s", "Receiver is null");
7290 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 1834);
7291 fatal_exit(1);
7292 } else {
7293 { /* Inline parser_nodes$ANode$location (var91) on <var91:nullable ANode> */
7294 if (unlikely(var91 == NULL)) {
7295 if(catchStack.cursor >= 0){
7296 longjmp(catchStack.envs[catchStack.cursor], 1);
7297 }
7298 PRINT_ERROR("Runtime error: %s", "Receiver is null");
7299 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 25);
7300 fatal_exit(1);
7301 }
7302 var96 = var91->attrs[COLOR_nitc__parser_nodes__ANode___location].val; /* _location on <var91:nullable ANode> */
7303 if (unlikely(var96 == NULL)) {
7304 if(catchStack.cursor >= 0){
7305 longjmp(catchStack.envs[catchStack.cursor], 1);
7306 }
7307 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _location");
7308 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 25);
7309 fatal_exit(1);
7310 }
7311 var94 = var96;
7312 RET_LABEL95:(void)0;
7313 }
7314 }
7315 {
7316 { /* Inline location$Location$line_start (var94) on <var94:Location> */
7317 var99 = var94->attrs[COLOR_nitc__location__Location___line_start].l; /* _line_start on <var94:Location> */
7318 var97 = var99;
7319 RET_LABEL98:(void)0;
7320 }
7321 }
7322 var100 = core__flat___Int___core__abstract_text__Object__to_s(var97);
7323 ((struct instance_core__NativeArray*)var66)->values[3]=var100;
7324 {
7325 var101 = ((val*(*)(val* self))(var66->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var66); /* native_to_s on <var66:NativeArray[String]>*/
7326 }
7327 varonce65 = var66;
7328 {
7329 nitc___nitc__AbstractCompilerVisitor___add(self, var101); /* Direct call abstract_compiler$AbstractCompilerVisitor$add on <self:AbstractCompilerVisitor>*/
7330 }
7331 } else {
7332 if (likely(varonce102!=NULL)) {
7333 var103 = varonce102;
7334 } else {
7335 var104 = "PRINT_ERROR(\"\\n\");";
7336 var106 = (val*)(18l<<2|1);
7337 var107 = (val*)(18l<<2|1);
7338 var108 = (val*)((long)(0)<<2|3);
7339 var109 = (val*)((long)(0)<<2|3);
7340 var105 = core__flat___CString___to_s_unsafe(var104, var106, var107, var108, var109);
7341 var103 = var105;
7342 varonce102 = var103;
7343 }
7344 {
7345 nitc___nitc__AbstractCompilerVisitor___add(self, var103); /* Direct call abstract_compiler$AbstractCompilerVisitor$add on <self:AbstractCompilerVisitor>*/
7346 }
7347 }
7348 if (likely(varonce110!=NULL)) {
7349 var111 = varonce110;
7350 } else {
7351 var112 = "fatal_exit(1);";
7352 var114 = (val*)(14l<<2|1);
7353 var115 = (val*)(14l<<2|1);
7354 var116 = (val*)((long)(0)<<2|3);
7355 var117 = (val*)((long)(0)<<2|3);
7356 var113 = core__flat___CString___to_s_unsafe(var112, var114, var115, var116, var117);
7357 var111 = var113;
7358 varonce110 = var111;
7359 }
7360 {
7361 nitc___nitc__AbstractCompilerVisitor___add(self, var111); /* Direct call abstract_compiler$AbstractCompilerVisitor$add on <self:AbstractCompilerVisitor>*/
7362 }
7363 RET_LABEL:;
7364 }
7365 /* method abstract_compiler$AbstractCompilerVisitor$add_cast for (self: AbstractCompilerVisitor, RuntimeVariable, MType, String) */
7366 void nitc___nitc__AbstractCompilerVisitor___add_cast(val* self, val* p0, val* p1, val* p2) {
7367 val* var_value /* var value: RuntimeVariable */;
7368 val* var_mtype /* var mtype: MType */;
7369 val* var_tag /* var tag: String */;
7370 val* var /* : RuntimeVariable */;
7371 val* var_res /* var res: RuntimeVariable */;
7372 val* var1 /* : NativeArray[String] */;
7373 static val* varonce;
7374 static val* varonce2;
7375 val* var3 /* : String */;
7376 char* var4 /* : CString */;
7377 val* var5 /* : String */;
7378 val* var6 /* : nullable Int */;
7379 val* var7 /* : nullable Int */;
7380 val* var8 /* : nullable Bool */;
7381 val* var9 /* : nullable Bool */;
7382 static val* varonce10;
7383 val* var11 /* : String */;
7384 char* var12 /* : CString */;
7385 val* var13 /* : String */;
7386 val* var14 /* : nullable Int */;
7387 val* var15 /* : nullable Int */;
7388 val* var16 /* : nullable Bool */;
7389 val* var17 /* : nullable Bool */;
7390 val* var18 /* : String */;
7391 val* var19 /* : String */;
7392 val* var20 /* : String */;
7393 val* var_cn /* var cn: String */;
7394 val* var22 /* : NativeArray[String] */;
7395 static val* varonce21;
7396 static val* varonce23;
7397 val* var24 /* : String */;
7398 char* var25 /* : CString */;
7399 val* var26 /* : String */;
7400 val* var27 /* : nullable Int */;
7401 val* var28 /* : nullable Int */;
7402 val* var29 /* : nullable Bool */;
7403 val* var30 /* : nullable Bool */;
7404 static val* varonce31;
7405 val* var32 /* : String */;
7406 char* var33 /* : CString */;
7407 val* var34 /* : String */;
7408 val* var35 /* : nullable Int */;
7409 val* var36 /* : nullable Int */;
7410 val* var37 /* : nullable Bool */;
7411 val* var38 /* : nullable Bool */;
7412 static val* varonce39;
7413 val* var40 /* : String */;
7414 char* var41 /* : CString */;
7415 val* var42 /* : String */;
7416 val* var43 /* : nullable Int */;
7417 val* var44 /* : nullable Int */;
7418 val* var45 /* : nullable Bool */;
7419 val* var46 /* : nullable Bool */;
7420 val* var47 /* : String */;
7421 val* var48 /* : String */;
7422 val* var49 /* : String */;
7423 static val* varonce50;
7424 val* var51 /* : String */;
7425 char* var52 /* : CString */;
7426 val* var53 /* : String */;
7427 val* var54 /* : nullable Int */;
7428 val* var55 /* : nullable Int */;
7429 val* var56 /* : nullable Bool */;
7430 val* var57 /* : nullable Bool */;
7431 var_value = p0;
7432 var_mtype = p1;
7433 var_tag = p2;
7434 {
7435 var = ((val*(*)(val* self, val* p0, val* p1, val* p2))(self->class->vft[COLOR_nitc__abstract_compiler__AbstractCompilerVisitor__type_test]))(self, var_value, var_mtype, var_tag); /* type_test on <self:AbstractCompilerVisitor>*/
7436 }
7437 var_res = var;
7438 if (unlikely(varonce==NULL)) {
7439 var1 = NEW_core__NativeArray((int)3l, &type_core__NativeArray__core__String);
7440 if (likely(varonce2!=NULL)) {
7441 var3 = varonce2;
7442 } else {
7443 var4 = "if (unlikely(!";
7444 var6 = (val*)(14l<<2|1);
7445 var7 = (val*)(14l<<2|1);
7446 var8 = (val*)((long)(0)<<2|3);
7447 var9 = (val*)((long)(0)<<2|3);
7448 var5 = core__flat___CString___to_s_unsafe(var4, var6, var7, var8, var9);
7449 var3 = var5;
7450 varonce2 = var3;
7451 }
7452 ((struct instance_core__NativeArray*)var1)->values[0]=var3;
7453 if (likely(varonce10!=NULL)) {
7454 var11 = varonce10;
7455 } else {
7456 var12 = ")) {";
7457 var14 = (val*)(4l<<2|1);
7458 var15 = (val*)(4l<<2|1);
7459 var16 = (val*)((long)(0)<<2|3);
7460 var17 = (val*)((long)(0)<<2|3);
7461 var13 = core__flat___CString___to_s_unsafe(var12, var14, var15, var16, var17);
7462 var11 = var13;
7463 varonce10 = var11;
7464 }
7465 ((struct instance_core__NativeArray*)var1)->values[2]=var11;
7466 } else {
7467 var1 = varonce;
7468 varonce = NULL;
7469 }
7470 {
7471 var18 = ((val*(*)(val* self))(var_res->class->vft[COLOR_core__abstract_text__Object__to_s]))(var_res); /* to_s on <var_res:RuntimeVariable>*/
7472 }
7473 ((struct instance_core__NativeArray*)var1)->values[1]=var18;
7474 {
7475 var19 = ((val*(*)(val* self))(var1->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var1); /* native_to_s on <var1:NativeArray[String]>*/
7476 }
7477 varonce = var1;
7478 {
7479 nitc___nitc__AbstractCompilerVisitor___add(self, var19); /* Direct call abstract_compiler$AbstractCompilerVisitor$add on <self:AbstractCompilerVisitor>*/
7480 }
7481 {
7482 var20 = ((val*(*)(val* self, val* p0))(self->class->vft[COLOR_nitc__abstract_compiler__AbstractCompilerVisitor__class_name_string]))(self, var_value); /* class_name_string on <self:AbstractCompilerVisitor>*/
7483 }
7484 var_cn = var20;
7485 if (unlikely(varonce21==NULL)) {
7486 var22 = NEW_core__NativeArray((int)5l, &type_core__NativeArray__core__String);
7487 if (likely(varonce23!=NULL)) {
7488 var24 = varonce23;
7489 } else {
7490 var25 = "PRINT_ERROR(\"Runtime error: Cast failed. Expected `%s`, got `%s`\", \"";
7491 var27 = (val*)(68l<<2|1);
7492 var28 = (val*)(68l<<2|1);
7493 var29 = (val*)((long)(0)<<2|3);
7494 var30 = (val*)((long)(0)<<2|3);
7495 var26 = core__flat___CString___to_s_unsafe(var25, var27, var28, var29, var30);
7496 var24 = var26;
7497 varonce23 = var24;
7498 }
7499 ((struct instance_core__NativeArray*)var22)->values[0]=var24;
7500 if (likely(varonce31!=NULL)) {
7501 var32 = varonce31;
7502 } else {
7503 var33 = "\", ";
7504 var35 = (val*)(3l<<2|1);
7505 var36 = (val*)(3l<<2|1);
7506 var37 = (val*)((long)(0)<<2|3);
7507 var38 = (val*)((long)(0)<<2|3);
7508 var34 = core__flat___CString___to_s_unsafe(var33, var35, var36, var37, var38);
7509 var32 = var34;
7510 varonce31 = var32;
7511 }
7512 ((struct instance_core__NativeArray*)var22)->values[2]=var32;
7513 if (likely(varonce39!=NULL)) {
7514 var40 = varonce39;
7515 } else {
7516 var41 = ");";
7517 var43 = (val*)(2l<<2|1);
7518 var44 = (val*)(2l<<2|1);
7519 var45 = (val*)((long)(0)<<2|3);
7520 var46 = (val*)((long)(0)<<2|3);
7521 var42 = core__flat___CString___to_s_unsafe(var41, var43, var44, var45, var46);
7522 var40 = var42;
7523 varonce39 = var40;
7524 }
7525 ((struct instance_core__NativeArray*)var22)->values[4]=var40;
7526 } else {
7527 var22 = varonce21;
7528 varonce21 = NULL;
7529 }
7530 {
7531 var47 = ((val*(*)(val* self))(var_mtype->class->vft[COLOR_core__abstract_text__Object__to_s]))(var_mtype); /* to_s on <var_mtype:MType>*/
7532 }
7533 {
7534 var48 = ((val*(*)(val* self))(var47->class->vft[COLOR_core__abstract_text__Text__escape_to_c]))(var47); /* escape_to_c on <var47:String>*/
7535 }
7536 ((struct instance_core__NativeArray*)var22)->values[1]=var48;
7537 ((struct instance_core__NativeArray*)var22)->values[3]=var_cn;
7538 {
7539 var49 = ((val*(*)(val* self))(var22->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var22); /* native_to_s on <var22:NativeArray[String]>*/
7540 }
7541 varonce21 = var22;
7542 {
7543 nitc___nitc__AbstractCompilerVisitor___add(self, var49); /* Direct call abstract_compiler$AbstractCompilerVisitor$add on <self:AbstractCompilerVisitor>*/
7544 }
7545 {
7546 nitc___nitc__AbstractCompilerVisitor___add_raw_abort(self); /* Direct call abstract_compiler$AbstractCompilerVisitor$add_raw_abort on <self:AbstractCompilerVisitor>*/
7547 }
7548 if (likely(varonce50!=NULL)) {
7549 var51 = varonce50;
7550 } else {
7551 var52 = "}";
7552 var54 = (val*)(1l<<2|1);
7553 var55 = (val*)(1l<<2|1);
7554 var56 = (val*)((long)(0)<<2|3);
7555 var57 = (val*)((long)(0)<<2|3);
7556 var53 = core__flat___CString___to_s_unsafe(var52, var54, var55, var56, var57);
7557 var51 = var53;
7558 varonce50 = var51;
7559 }
7560 {
7561 nitc___nitc__AbstractCompilerVisitor___add(self, var51); /* Direct call abstract_compiler$AbstractCompilerVisitor$add on <self:AbstractCompilerVisitor>*/
7562 }
7563 RET_LABEL:;
7564 }
7565 /* method abstract_compiler$AbstractCompilerVisitor$ret for (self: AbstractCompilerVisitor, RuntimeVariable) */
7566 void nitc___nitc__AbstractCompilerVisitor___ret(val* self, val* p0) {
7567 val* var_s /* var s: RuntimeVariable */;
7568 val* var /* : nullable StaticFrame */;
7569 val* var2 /* : nullable StaticFrame */;
7570 val* var3 /* : nullable RuntimeVariable */;
7571 val* var5 /* : nullable RuntimeVariable */;
7572 val* var6 /* : NativeArray[String] */;
7573 static val* varonce;
7574 static val* varonce7;
7575 val* var8 /* : String */;
7576 char* var9 /* : CString */;
7577 val* var10 /* : String */;
7578 val* var11 /* : nullable Int */;
7579 val* var12 /* : nullable Int */;
7580 val* var13 /* : nullable Bool */;
7581 val* var14 /* : nullable Bool */;
7582 static val* varonce15;
7583 val* var16 /* : String */;
7584 char* var17 /* : CString */;
7585 val* var18 /* : String */;
7586 val* var19 /* : nullable Int */;
7587 val* var20 /* : nullable Int */;
7588 val* var21 /* : nullable Bool */;
7589 val* var22 /* : nullable Bool */;
7590 val* var23 /* : nullable StaticFrame */;
7591 val* var25 /* : nullable StaticFrame */;
7592 val* var26 /* : nullable String */;
7593 val* var28 /* : nullable String */;
7594 val* var29 /* : String */;
7595 var_s = p0;
7596 {
7597 { /* Inline abstract_compiler$AbstractCompilerVisitor$frame (self) on <self:AbstractCompilerVisitor> */
7598 var2 = self->attrs[COLOR_nitc__abstract_compiler__AbstractCompilerVisitor___frame].val; /* _frame on <self:AbstractCompilerVisitor> */
7599 var = var2;
7600 RET_LABEL1:(void)0;
7601 }
7602 }
7603 if (var == NULL) {
7604 if(catchStack.cursor >= 0){
7605 longjmp(catchStack.envs[catchStack.cursor], 1);
7606 }
7607 PRINT_ERROR("Runtime error: %s", "Receiver is null");
7608 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 1855);
7609 fatal_exit(1);
7610 } else {
7611 { /* Inline abstract_compiler$StaticFrame$returnvar (var) on <var:nullable StaticFrame> */
7612 if (unlikely(var == NULL)) {
7613 if(catchStack.cursor >= 0){
7614 longjmp(catchStack.envs[catchStack.cursor], 1);
7615 }
7616 PRINT_ERROR("Runtime error: %s", "Receiver is null");
7617 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 2037);
7618 fatal_exit(1);
7619 }
7620 var5 = var->attrs[COLOR_nitc__abstract_compiler__StaticFrame___returnvar].val; /* _returnvar on <var:nullable StaticFrame> */
7621 var3 = var5;
7622 RET_LABEL4:(void)0;
7623 }
7624 }
7625 if (unlikely(var3 == NULL)) {
7626 if(catchStack.cursor >= 0){
7627 longjmp(catchStack.envs[catchStack.cursor], 1);
7628 }
7629 PRINT_ERROR("Runtime error: %s", "Cast failed");
7630 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 1855);
7631 fatal_exit(1);
7632 }
7633 {
7634 nitc___nitc__AbstractCompilerVisitor___assign(self, var3, var_s); /* Direct call abstract_compiler$AbstractCompilerVisitor$assign on <self:AbstractCompilerVisitor>*/
7635 }
7636 if (unlikely(varonce==NULL)) {
7637 var6 = NEW_core__NativeArray((int)3l, &type_core__NativeArray__core__String);
7638 if (likely(varonce7!=NULL)) {
7639 var8 = varonce7;
7640 } else {
7641 var9 = "goto ";
7642 var11 = (val*)(5l<<2|1);
7643 var12 = (val*)(5l<<2|1);
7644 var13 = (val*)((long)(0)<<2|3);
7645 var14 = (val*)((long)(0)<<2|3);
7646 var10 = core__flat___CString___to_s_unsafe(var9, var11, var12, var13, var14);
7647 var8 = var10;
7648 varonce7 = var8;
7649 }
7650 ((struct instance_core__NativeArray*)var6)->values[0]=var8;
7651 if (likely(varonce15!=NULL)) {
7652 var16 = varonce15;
7653 } else {
7654 var17 = ";";
7655 var19 = (val*)(1l<<2|1);
7656 var20 = (val*)(1l<<2|1);
7657 var21 = (val*)((long)(0)<<2|3);
7658 var22 = (val*)((long)(0)<<2|3);
7659 var18 = core__flat___CString___to_s_unsafe(var17, var19, var20, var21, var22);
7660 var16 = var18;
7661 varonce15 = var16;
7662 }
7663 ((struct instance_core__NativeArray*)var6)->values[2]=var16;
7664 } else {
7665 var6 = varonce;
7666 varonce = NULL;
7667 }
7668 {
7669 { /* Inline abstract_compiler$AbstractCompilerVisitor$frame (self) on <self:AbstractCompilerVisitor> */
7670 var25 = self->attrs[COLOR_nitc__abstract_compiler__AbstractCompilerVisitor___frame].val; /* _frame on <self:AbstractCompilerVisitor> */
7671 var23 = var25;
7672 RET_LABEL24:(void)0;
7673 }
7674 }
7675 if (var23 == NULL) {
7676 if(catchStack.cursor >= 0){
7677 longjmp(catchStack.envs[catchStack.cursor], 1);
7678 }
7679 PRINT_ERROR("Runtime error: %s", "Receiver is null");
7680 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 1856);
7681 fatal_exit(1);
7682 } else {
7683 { /* Inline abstract_compiler$StaticFrame$returnlabel (var23) on <var23:nullable StaticFrame> */
7684 if (unlikely(var23 == NULL)) {
7685 if(catchStack.cursor >= 0){
7686 longjmp(catchStack.envs[catchStack.cursor], 1);
7687 }
7688 PRINT_ERROR("Runtime error: %s", "Receiver is null");
7689 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 2040);
7690 fatal_exit(1);
7691 }
7692 var28 = var23->attrs[COLOR_nitc__abstract_compiler__StaticFrame___returnlabel].val; /* _returnlabel on <var23:nullable StaticFrame> */
7693 var26 = var28;
7694 RET_LABEL27:(void)0;
7695 }
7696 }
7697 if (unlikely(var26 == NULL)) {
7698 if(catchStack.cursor >= 0){
7699 longjmp(catchStack.envs[catchStack.cursor], 1);
7700 }
7701 PRINT_ERROR("Runtime error: %s", "Cast failed");
7702 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 1856);
7703 fatal_exit(1);
7704 }
7705 ((struct instance_core__NativeArray*)var6)->values[1]=var26;
7706 {
7707 var29 = ((val*(*)(val* self))(var6->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var6); /* native_to_s on <var6:NativeArray[String]>*/
7708 }
7709 varonce = var6;
7710 {
7711 nitc___nitc__AbstractCompilerVisitor___add(self, var29); /* Direct call abstract_compiler$AbstractCompilerVisitor$add on <self:AbstractCompilerVisitor>*/
7712 }
7713 RET_LABEL:;
7714 }
7715 /* method abstract_compiler$AbstractCompilerVisitor$stmt for (self: AbstractCompilerVisitor, nullable AExpr) */
7716 void nitc___nitc__AbstractCompilerVisitor___stmt(val* self, val* p0) {
7717 val* var_nexpr /* var nexpr: nullable AExpr */;
7718 short int var /* : Bool */;
7719 short int var1 /* : Bool */;
7720 val* var_other /* var other: nullable Object */;
7721 short int var3 /* : Bool */;
7722 short int var5 /* : Bool */;
7723 short int var6 /* : Bool */;
7724 short int var8 /* : Bool */;
7725 static val* varonce;
7726 val* var9 /* : String */;
7727 char* var10 /* : CString */;
7728 val* var11 /* : String */;
7729 val* var12 /* : nullable Int */;
7730 val* var13 /* : nullable Int */;
7731 val* var14 /* : nullable Bool */;
7732 val* var15 /* : nullable Bool */;
7733 val* var16 /* : nullable AArrayExpr */;
7734 val* var18 /* : nullable AArrayExpr */;
7735 val* var_narray /* var narray: nullable AArrayExpr */;
7736 short int var19 /* : Bool */;
7737 short int var20 /* : Bool */;
7738 val* var_other22 /* var other: nullable Object */;
7739 short int var23 /* : Bool */;
7740 short int var24 /* : Bool */;
7741 val* var25 /* : nullable StaticFrame */;
7742 val* var27 /* : nullable StaticFrame */;
7743 val* var28 /* : nullable RuntimeVariable */;
7744 val* var30 /* : nullable RuntimeVariable */;
7745 val* var_recv /* var recv: RuntimeVariable */;
7746 val* var31 /* : nullable MType */;
7747 val* var33 /* : nullable MType */;
7748 val* var34 /* : RuntimeVariable */;
7749 val* var_val /* var val: RuntimeVariable */;
7750 val* var35 /* : nullable CallSite */;
7751 val* var37 /* : nullable CallSite */;
7752 val* var38 /* : Array[RuntimeVariable] */;
7753 val* var_ /* var : Array[RuntimeVariable] */;
7754 val* var39 /* : nullable RuntimeVariable */;
7755 val* var40 /* : nullable ANode */;
7756 val* var42 /* : nullable ANode */;
7757 val* var_old /* var old: nullable ANode */;
7758 var_nexpr = p0;
7759 if (var_nexpr == NULL) {
7760 var = 1; /* is null */
7761 } else {
7762 var = 0; /* arg is null but recv is not */
7763 }
7764 if (0) {
7765 { /* Inline kernel$Object$== (var_nexpr,((val*)NULL)) on <var_nexpr:nullable AExpr> */
7766 var_other = ((val*)NULL);
7767 {
7768 { /* Inline kernel$Object$is_same_instance (var_nexpr,var_other) on <var_nexpr:nullable AExpr(AExpr)> */
7769 var5 = var_nexpr == var_other;
7770 var3 = var5;
7771 goto RET_LABEL4;
7772 RET_LABEL4:(void)0;
7773 }
7774 }
7775 var1 = var3;
7776 goto RET_LABEL2;
7777 RET_LABEL2:(void)0;
7778 }
7779 var = var1;
7780 }
7781 if (var){
7782 goto RET_LABEL;
7783 } else {
7784 }
7785 {
7786 { /* Inline modelbuilder_base$ANode$is_broken (var_nexpr) on <var_nexpr:nullable AExpr(AExpr)> */
7787 var8 = var_nexpr->attrs[COLOR_nitc__modelbuilder_base__ANode___is_broken].s; /* _is_broken on <var_nexpr:nullable AExpr(AExpr)> */
7788 var6 = var8;
7789 RET_LABEL7:(void)0;
7790 }
7791 }
7792 if (var6){
7793 if (likely(varonce!=NULL)) {
7794 var9 = varonce;
7795 } else {
7796 var10 = "FATAL: bad statement executed.";
7797 var12 = (val*)(30l<<2|1);
7798 var13 = (val*)(30l<<2|1);
7799 var14 = (val*)((long)(0)<<2|3);
7800 var15 = (val*)((long)(0)<<2|3);
7801 var11 = core__flat___CString___to_s_unsafe(var10, var12, var13, var14, var15);
7802 var9 = var11;
7803 varonce = var9;
7804 }
7805 {
7806 nitc___nitc__AbstractCompilerVisitor___add_abort(self, var9); /* Direct call abstract_compiler$AbstractCompilerVisitor$add_abort on <self:AbstractCompilerVisitor>*/
7807 }
7808 goto RET_LABEL;
7809 } else {
7810 }
7811 {
7812 { /* Inline typing$AExpr$comprehension (var_nexpr) on <var_nexpr:nullable AExpr(AExpr)> */
7813 var18 = var_nexpr->attrs[COLOR_nitc__typing__AExpr___comprehension].val; /* _comprehension on <var_nexpr:nullable AExpr(AExpr)> */
7814 var16 = var18;
7815 RET_LABEL17:(void)0;
7816 }
7817 }
7818 var_narray = var16;
7819 if (var_narray == NULL) {
7820 var19 = 0; /* is null */
7821 } else {
7822 var19 = 1; /* arg is null and recv is not */
7823 }
7824 if (0) {
7825 { /* Inline kernel$Object$!= (var_narray,((val*)NULL)) on <var_narray:nullable AArrayExpr> */
7826 var_other22 = ((val*)NULL);
7827 {
7828 var23 = ((short int(*)(val* self, val* p0))(var_narray->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_narray, var_other22); /* == on <var_narray:nullable AArrayExpr(AArrayExpr)>*/
7829 }
7830 var24 = !var23;
7831 var20 = var24;
7832 goto RET_LABEL21;
7833 RET_LABEL21:(void)0;
7834 }
7835 var19 = var20;
7836 }
7837 if (var19){
7838 {
7839 { /* Inline abstract_compiler$AbstractCompilerVisitor$frame (self) on <self:AbstractCompilerVisitor> */
7840 var27 = self->attrs[COLOR_nitc__abstract_compiler__AbstractCompilerVisitor___frame].val; /* _frame on <self:AbstractCompilerVisitor> */
7841 var25 = var27;
7842 RET_LABEL26:(void)0;
7843 }
7844 }
7845 if (var25 == NULL) {
7846 if(catchStack.cursor >= 0){
7847 longjmp(catchStack.envs[catchStack.cursor], 1);
7848 }
7849 PRINT_ERROR("Runtime error: %s", "Receiver is null");
7850 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 1873);
7851 fatal_exit(1);
7852 } else {
7853 { /* Inline abstract_compiler$StaticFrame$comprehension (var25) on <var25:nullable StaticFrame> */
7854 if (unlikely(var25 == NULL)) {
7855 if(catchStack.cursor >= 0){
7856 longjmp(catchStack.envs[catchStack.cursor], 1);
7857 }
7858 PRINT_ERROR("Runtime error: %s", "Receiver is null");
7859 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 2047);
7860 fatal_exit(1);
7861 }
7862 var30 = var25->attrs[COLOR_nitc__abstract_compiler__StaticFrame___comprehension].val; /* _comprehension on <var25:nullable StaticFrame> */
7863 var28 = var30;
7864 RET_LABEL29:(void)0;
7865 }
7866 }
7867 if (unlikely(var28 == NULL)) {
7868 if(catchStack.cursor >= 0){
7869 longjmp(catchStack.envs[catchStack.cursor], 1);
7870 }
7871 PRINT_ERROR("Runtime error: %s", "Cast failed");
7872 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 1873);
7873 fatal_exit(1);
7874 }
7875 var_recv = var28;
7876 {
7877 { /* Inline typing$AArrayExpr$element_mtype (var_narray) on <var_narray:nullable AArrayExpr(AArrayExpr)> */
7878 var33 = var_narray->attrs[COLOR_nitc__typing__AArrayExpr___element_mtype].val; /* _element_mtype on <var_narray:nullable AArrayExpr(AArrayExpr)> */
7879 var31 = var33;
7880 RET_LABEL32:(void)0;
7881 }
7882 }
7883 {
7884 var34 = nitc___nitc__AbstractCompilerVisitor___expr(self, var_nexpr, var31);
7885 }
7886 var_val = var34;
7887 {
7888 { /* Inline typing$AArrayExpr$push_callsite (var_narray) on <var_narray:nullable AArrayExpr(AArrayExpr)> */
7889 var37 = var_narray->attrs[COLOR_nitc__typing__AArrayExpr___push_callsite].val; /* _push_callsite on <var_narray:nullable AArrayExpr(AArrayExpr)> */
7890 var35 = var37;
7891 RET_LABEL36:(void)0;
7892 }
7893 }
7894 if (unlikely(var35 == NULL)) {
7895 if(catchStack.cursor >= 0){
7896 longjmp(catchStack.envs[catchStack.cursor], 1);
7897 }
7898 PRINT_ERROR("Runtime error: %s", "Cast failed");
7899 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 1875);
7900 fatal_exit(1);
7901 }
7902 var38 = NEW_core__Array(&type_core__Array__nitc__RuntimeVariable);
7903 {
7904 core___core__Array___with_capacity(var38, 2l); /* Direct call array$Array$with_capacity on <var38:Array[RuntimeVariable]>*/
7905 }
7906 var_ = var38;
7907 {
7908 core___core__AbstractArray___core__abstract_collection__Sequence__push(var_, var_recv); /* Direct call array$AbstractArray$push on <var_:Array[RuntimeVariable]>*/
7909 }
7910 {
7911 core___core__AbstractArray___core__abstract_collection__Sequence__push(var_, var_val); /* Direct call array$AbstractArray$push on <var_:Array[RuntimeVariable]>*/
7912 }
7913 {
7914 var39 = ((val*(*)(val* self, val* p0, val* p1))(self->class->vft[COLOR_nitc__abstract_compiler__AbstractCompilerVisitor__compile_callsite]))(self, var35, var_); /* compile_callsite on <self:AbstractCompilerVisitor>*/
7915 }
7916 goto RET_LABEL;
7917 } else {
7918 }
7919 {
7920 { /* Inline abstract_compiler$AbstractCompilerVisitor$current_node (self) on <self:AbstractCompilerVisitor> */
7921 var42 = self->attrs[COLOR_nitc__abstract_compiler__AbstractCompilerVisitor___current_node].val; /* _current_node on <self:AbstractCompilerVisitor> */
7922 var40 = var42;
7923 RET_LABEL41:(void)0;
7924 }
7925 }
7926 var_old = var40;
7927 {
7928 { /* Inline abstract_compiler$AbstractCompilerVisitor$current_node= (self,var_nexpr) on <self:AbstractCompilerVisitor> */
7929 self->attrs[COLOR_nitc__abstract_compiler__AbstractCompilerVisitor___current_node].val = var_nexpr; /* _current_node on <self:AbstractCompilerVisitor> */
7930 RET_LABEL43:(void)0;
7931 }
7932 }
7933 {
7934 ((void(*)(val* self, val* p0))(var_nexpr->class->vft[COLOR_nitc__abstract_compiler__AExpr__stmt]))(var_nexpr, self); /* stmt on <var_nexpr:nullable AExpr(AExpr)>*/
7935 }
7936 {
7937 { /* Inline abstract_compiler$AbstractCompilerVisitor$current_node= (self,var_old) on <self:AbstractCompilerVisitor> */
7938 self->attrs[COLOR_nitc__abstract_compiler__AbstractCompilerVisitor___current_node].val = var_old; /* _current_node on <self:AbstractCompilerVisitor> */
7939 RET_LABEL44:(void)0;
7940 }
7941 }
7942 RET_LABEL:;
7943 }
7944 /* method abstract_compiler$AbstractCompilerVisitor$expr for (self: AbstractCompilerVisitor, AExpr, nullable MType): RuntimeVariable */
7945 val* nitc___nitc__AbstractCompilerVisitor___expr(val* self, val* p0, val* p1) {
7946 val* var /* : RuntimeVariable */;
7947 val* var_nexpr /* var nexpr: AExpr */;
7948 val* var_mtype /* var mtype: nullable MType */;
7949 val* var1 /* : nullable ANode */;
7950 val* var3 /* : nullable ANode */;
7951 val* var_old /* var old: nullable ANode */;
7952 val* var_res /* var res: nullable Object */;
7953 val* var5 /* : nullable MType */;
7954 short int var6 /* : Bool */;
7955 short int var7 /* : Bool */;
7956 val* var_other /* var other: nullable Object */;
7957 short int var9 /* : Bool */;
7958 short int var10 /* : Bool */;
7959 val* var11 /* : nullable RuntimeVariable */;
7960 short int var12 /* : Bool */;
7961 short int var13 /* : Bool */;
7962 val* var_other15 /* var other: nullable Object */;
7963 short int var16 /* : Bool */;
7964 short int var18 /* : Bool */;
7965 static val* varonce;
7966 val* var19 /* : String */;
7967 char* var20 /* : CString */;
7968 val* var21 /* : String */;
7969 val* var22 /* : nullable Int */;
7970 val* var23 /* : nullable Int */;
7971 val* var24 /* : nullable Bool */;
7972 val* var25 /* : nullable Bool */;
7973 short int var26 /* : Bool */;
7974 short int var27 /* : Bool */;
7975 short int var29 /* : Bool */;
7976 short int var31 /* : Bool */;
7977 val* var32 /* : AbstractCompiler */;
7978 val* var34 /* : AbstractCompiler */;
7979 val* var35 /* : MModule */;
7980 val* var37 /* : MModule */;
7981 val* var38 /* : MClassType */;
7982 val* var39 /* : RuntimeVariable */;
7983 short int var41 /* : Bool */;
7984 short int var42 /* : Bool */;
7985 short int var44 /* : Bool */;
7986 short int var45 /* : Bool */;
7987 val* var46 /* : MType */;
7988 val* var47 /* : RuntimeVariable */;
7989 val* var48 /* : nullable MType */;
7990 val* var49 /* : RuntimeVariable */;
7991 val* var50 /* : nullable MType */;
7992 val* var52 /* : nullable MType */;
7993 val* var_implicit_cast_to /* var implicit_cast_to: nullable MType */;
7994 short int var53 /* : Bool */;
7995 short int var54 /* : Bool */;
7996 short int var55 /* : Bool */;
7997 short int var57 /* : Bool */;
7998 short int var58 /* : Bool */;
7999 short int var_ /* var : Bool */;
8000 val* var59 /* : AbstractCompiler */;
8001 val* var61 /* : AbstractCompiler */;
8002 val* var62 /* : ModelBuilder */;
8003 val* var64 /* : ModelBuilder */;
8004 val* var65 /* : ToolContext */;
8005 val* var67 /* : ToolContext */;
8006 val* var68 /* : OptionBool */;
8007 val* var70 /* : OptionBool */;
8008 val* var71 /* : nullable Object */;
8009 val* var73 /* : nullable Object */;
8010 short int var74 /* : Bool */;
8011 short int var75 /* : Bool */;
8012 static val* varonce76;
8013 val* var77 /* : String */;
8014 char* var78 /* : CString */;
8015 val* var79 /* : String */;
8016 val* var80 /* : nullable Int */;
8017 val* var81 /* : nullable Int */;
8018 val* var82 /* : nullable Bool */;
8019 val* var83 /* : nullable Bool */;
8020 val* var84 /* : RuntimeVariable */;
8021 var_nexpr = p0;
8022 var_mtype = p1;
8023 {
8024 { /* Inline abstract_compiler$AbstractCompilerVisitor$current_node (self) on <self:AbstractCompilerVisitor> */
8025 var3 = self->attrs[COLOR_nitc__abstract_compiler__AbstractCompilerVisitor___current_node].val; /* _current_node on <self:AbstractCompilerVisitor> */
8026 var1 = var3;
8027 RET_LABEL2:(void)0;
8028 }
8029 }
8030 var_old = var1;
8031 {
8032 { /* Inline abstract_compiler$AbstractCompilerVisitor$current_node= (self,var_nexpr) on <self:AbstractCompilerVisitor> */
8033 self->attrs[COLOR_nitc__abstract_compiler__AbstractCompilerVisitor___current_node].val = var_nexpr; /* _current_node on <self:AbstractCompilerVisitor> */
8034 RET_LABEL4:(void)0;
8035 }
8036 }
8037 var_res = ((val*)NULL);
8038 {
8039 var5 = ((val*(*)(val* self))(var_nexpr->class->vft[COLOR_nitc__typing__AExpr__mtype]))(var_nexpr); /* mtype on <var_nexpr:AExpr>*/
8040 }
8041 if (var5 == NULL) {
8042 var6 = 0; /* is null */
8043 } else {
8044 var6 = 1; /* arg is null and recv is not */
8045 }
8046 if (0) {
8047 { /* Inline kernel$Object$!= (var5,((val*)NULL)) on <var5:nullable MType> */
8048 var_other = ((val*)NULL);
8049 {
8050 var9 = ((short int(*)(val* self, val* p0))(var5->class->vft[COLOR_core__kernel__Object___61d_61d]))(var5, var_other); /* == on <var5:nullable MType(MType)>*/
8051 }
8052 var10 = !var9;
8053 var7 = var10;
8054 goto RET_LABEL8;
8055 RET_LABEL8:(void)0;
8056 }
8057 var6 = var7;
8058 }
8059 if (var6){
8060 {
8061 var11 = ((val*(*)(val* self, val* p0))(var_nexpr->class->vft[COLOR_nitc__abstract_compiler__AExpr__expr]))(var_nexpr, self); /* expr on <var_nexpr:AExpr>*/
8062 }
8063 var_res = var11;
8064 } else {
8065 }
8066 if (var_res == NULL) {
8067 var12 = 1; /* is null */
8068 } else {
8069 var12 = 0; /* arg is null but recv is not */
8070 }
8071 if (0) {
8072 { /* Inline kernel$Object$== (var_res,((val*)NULL)) on <var_res:nullable Object(nullable RuntimeVariable)> */
8073 var_other15 = ((val*)NULL);
8074 {
8075 { /* Inline kernel$Object$is_same_instance (var_res,var_other15) on <var_res:nullable Object(RuntimeVariable)> */
8076 var18 = var_res == var_other15;
8077 var16 = var18;
8078 goto RET_LABEL17;
8079 RET_LABEL17:(void)0;
8080 }
8081 }
8082 var13 = var16;
8083 goto RET_LABEL14;
8084 RET_LABEL14:(void)0;
8085 }
8086 var12 = var13;
8087 }
8088 if (var12){
8089 if (likely(varonce!=NULL)) {
8090 var19 = varonce;
8091 } else {
8092 var20 = "FATAL: bad expression executed.";
8093 var22 = (val*)(31l<<2|1);
8094 var23 = (val*)(31l<<2|1);
8095 var24 = (val*)((long)(0)<<2|3);
8096 var25 = (val*)((long)(0)<<2|3);
8097 var21 = core__flat___CString___to_s_unsafe(var20, var22, var23, var24, var25);
8098 var19 = var21;
8099 varonce = var19;
8100 }
8101 {
8102 nitc___nitc__AbstractCompilerVisitor___add_abort(self, var19); /* Direct call abstract_compiler$AbstractCompilerVisitor$add_abort on <self:AbstractCompilerVisitor>*/
8103 }
8104 if (var_mtype == NULL) {
8105 var26 = 1; /* is null */
8106 } else {
8107 var26 = 0; /* arg is null but recv is not */
8108 }
8109 if (0) {
8110 { /* Inline kernel$Object$== (var_mtype,((val*)NULL)) on <var_mtype:nullable MType> */
8111 var_other15 = ((val*)NULL);
8112 {
8113 { /* Inline kernel$Object$is_same_instance (var_mtype,var_other15) on <var_mtype:nullable MType(MType)> */
8114 var31 = var_mtype == var_other15;
8115 var29 = var31;
8116 goto RET_LABEL30;
8117 RET_LABEL30:(void)0;
8118 }
8119 }
8120 var27 = var29;
8121 goto RET_LABEL28;
8122 RET_LABEL28:(void)0;
8123 }
8124 var26 = var27;
8125 }
8126 if (var26){
8127 {
8128 { /* Inline abstract_compiler$AbstractCompilerVisitor$compiler (self) on <self:AbstractCompilerVisitor> */
8129 var34 = self->attrs[COLOR_nitc__abstract_compiler__AbstractCompilerVisitor___compiler].val; /* _compiler on <self:AbstractCompilerVisitor> */
8130 if (unlikely(var34 == NULL)) {
8131 if(catchStack.cursor >= 0){
8132 longjmp(catchStack.envs[catchStack.cursor], 1);
8133 }
8134 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _compiler");
8135 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 1214);
8136 fatal_exit(1);
8137 }
8138 var32 = var34;
8139 RET_LABEL33:(void)0;
8140 }
8141 }
8142 {
8143 { /* Inline abstract_compiler$AbstractCompiler$mainmodule (var32) on <var32:AbstractCompiler> */
8144 var37 = var32->attrs[COLOR_nitc__abstract_compiler__AbstractCompiler___mainmodule].val; /* _mainmodule on <var32:AbstractCompiler> */
8145 if (unlikely(var37 == NULL)) {
8146 if(catchStack.cursor >= 0){
8147 longjmp(catchStack.envs[catchStack.cursor], 1);
8148 }
8149 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule");
8150 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 545);
8151 fatal_exit(1);
8152 }
8153 var35 = var37;
8154 RET_LABEL36:(void)0;
8155 }
8156 }
8157 {
8158 var38 = nitc__model___MModule___object_type(var35);
8159 }
8160 var_mtype = var38;
8161 } else {
8162 }
8163 {
8164 var39 = nitc___nitc__AbstractCompilerVisitor___new_var(self, var_mtype);
8165 }
8166 var_res = var39;
8167 {
8168 { /* Inline abstract_compiler$AbstractCompilerVisitor$current_node= (self,var_old) on <self:AbstractCompilerVisitor> */
8169 self->attrs[COLOR_nitc__abstract_compiler__AbstractCompilerVisitor___current_node].val = var_old; /* _current_node on <self:AbstractCompilerVisitor> */
8170 RET_LABEL40:(void)0;
8171 }
8172 }
8173 var = var_res;
8174 goto RET_LABEL;
8175 } else {
8176 }
8177 if (var_mtype == NULL) {
8178 var41 = 0; /* is null */
8179 } else {
8180 var41 = 1; /* arg is null and recv is not */
8181 }
8182 if (0) {
8183 { /* Inline kernel$Object$!= (var_mtype,((val*)NULL)) on <var_mtype:nullable MType> */
8184 var_other = ((val*)NULL);
8185 {
8186 var44 = ((short int(*)(val* self, val* p0))(var_mtype->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_mtype, var_other); /* == on <var_mtype:nullable MType(MType)>*/
8187 }
8188 var45 = !var44;
8189 var42 = var45;
8190 goto RET_LABEL43;
8191 RET_LABEL43:(void)0;
8192 }
8193 var41 = var42;
8194 }
8195 if (var41){
8196 {
8197 var46 = nitc___nitc__AbstractCompilerVisitor___anchor(self, var_mtype);
8198 }
8199 var_mtype = var46;
8200 {
8201 var47 = nitc___nitc__SeparateCompilerVisitor___nitc__abstract_compiler__AbstractCompilerVisitor__autobox(self, var_res, var_mtype);
8202 }
8203 var_res = var47;
8204 } else {
8205 }
8206 {
8207 var48 = ((val*(*)(val* self))(var_nexpr->class->vft[COLOR_nitc__typing__AExpr__mtype]))(var_nexpr); /* mtype on <var_nexpr:AExpr>*/
8208 }
8209 if (unlikely(var48 == NULL)) {
8210 if(catchStack.cursor >= 0){
8211 longjmp(catchStack.envs[catchStack.cursor], 1);
8212 }
8213 PRINT_ERROR("Runtime error: %s", "Cast failed");
8214 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 1914);
8215 fatal_exit(1);
8216 }
8217 {
8218 var49 = nitc___nitc__AbstractCompilerVisitor___autoadapt(self, var_res, var48);
8219 }
8220 var_res = var49;
8221 {
8222 { /* Inline typing$AExpr$implicit_cast_to (var_nexpr) on <var_nexpr:AExpr> */
8223 var52 = var_nexpr->attrs[COLOR_nitc__typing__AExpr___implicit_cast_to].val; /* _implicit_cast_to on <var_nexpr:AExpr> */
8224 var50 = var52;
8225 RET_LABEL51:(void)0;
8226 }
8227 }
8228 var_implicit_cast_to = var50;
8229 if (var_implicit_cast_to == NULL) {
8230 var54 = 0; /* is null */
8231 } else {
8232 var54 = 1; /* arg is null and recv is not */
8233 }
8234 if (0) {
8235 { /* Inline kernel$Object$!= (var_implicit_cast_to,((val*)NULL)) on <var_implicit_cast_to:nullable MType> */
8236 var_other = ((val*)NULL);
8237 {
8238 var57 = ((short int(*)(val* self, val* p0))(var_implicit_cast_to->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_implicit_cast_to, var_other); /* == on <var_implicit_cast_to:nullable MType(MType)>*/
8239 }
8240 var58 = !var57;
8241 var55 = var58;
8242 goto RET_LABEL56;
8243 RET_LABEL56:(void)0;
8244 }
8245 var54 = var55;
8246 }
8247 var_ = var54;
8248 if (var54){
8249 {
8250 { /* Inline abstract_compiler$AbstractCompilerVisitor$compiler (self) on <self:AbstractCompilerVisitor> */
8251 var61 = self->attrs[COLOR_nitc__abstract_compiler__AbstractCompilerVisitor___compiler].val; /* _compiler on <self:AbstractCompilerVisitor> */
8252 if (unlikely(var61 == NULL)) {
8253 if(catchStack.cursor >= 0){
8254 longjmp(catchStack.envs[catchStack.cursor], 1);
8255 }
8256 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _compiler");
8257 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 1214);
8258 fatal_exit(1);
8259 }
8260 var59 = var61;
8261 RET_LABEL60:(void)0;
8262 }
8263 }
8264 {
8265 { /* Inline abstract_compiler$AbstractCompiler$modelbuilder (var59) on <var59:AbstractCompiler> */
8266 var64 = var59->attrs[COLOR_nitc__abstract_compiler__AbstractCompiler___modelbuilder].val; /* _modelbuilder on <var59:AbstractCompiler> */
8267 if (unlikely(var64 == NULL)) {
8268 if(catchStack.cursor >= 0){
8269 longjmp(catchStack.envs[catchStack.cursor], 1);
8270 }
8271 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
8272 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 552);
8273 fatal_exit(1);
8274 }
8275 var62 = var64;
8276 RET_LABEL63:(void)0;
8277 }
8278 }
8279 {
8280 { /* Inline modelbuilder_base$ModelBuilder$toolcontext (var62) on <var62:ModelBuilder> */
8281 var67 = var62->attrs[COLOR_nitc__modelbuilder_base__ModelBuilder___toolcontext].val; /* _toolcontext on <var62:ModelBuilder> */
8282 if (unlikely(var67 == NULL)) {
8283 if(catchStack.cursor >= 0){
8284 longjmp(catchStack.envs[catchStack.cursor], 1);
8285 }
8286 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
8287 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__modelbuilder_base, 47);
8288 fatal_exit(1);
8289 }
8290 var65 = var67;
8291 RET_LABEL66:(void)0;
8292 }
8293 }
8294 {
8295 { /* Inline abstract_compiler$ToolContext$opt_no_check_autocast (var65) on <var65:ToolContext> */
8296 var70 = var65->attrs[COLOR_nitc__abstract_compiler__ToolContext___opt_no_check_autocast].val; /* _opt_no_check_autocast on <var65:ToolContext> */
8297 if (unlikely(var70 == NULL)) {
8298 if(catchStack.cursor >= 0){
8299 longjmp(catchStack.envs[catchStack.cursor], 1);
8300 }
8301 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_no_check_autocast");
8302 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 54);
8303 fatal_exit(1);
8304 }
8305 var68 = var70;
8306 RET_LABEL69:(void)0;
8307 }
8308 }
8309 {
8310 { /* Inline opts$Option$value (var68) on <var68:OptionBool> */
8311 var73 = var68->attrs[COLOR_opts__Option___value].val; /* _value on <var68:OptionBool> */
8312 var71 = var73;
8313 RET_LABEL72:(void)0;
8314 }
8315 }
8316 var74 = (short int)((long)(var71)>>2);
8317 var75 = !var74;
8318 var53 = var75;
8319 } else {
8320 var53 = var_;
8321 }
8322 if (var53){
8323 if (likely(varonce76!=NULL)) {
8324 var77 = varonce76;
8325 } else {
8326 var78 = "auto";
8327 var80 = (val*)(4l<<2|1);
8328 var81 = (val*)(4l<<2|1);
8329 var82 = (val*)((long)(0)<<2|3);
8330 var83 = (val*)((long)(0)<<2|3);
8331 var79 = core__flat___CString___to_s_unsafe(var78, var80, var81, var82, var83);
8332 var77 = var79;
8333 varonce76 = var77;
8334 }
8335 {
8336 nitc___nitc__AbstractCompilerVisitor___add_cast(self, var_res, var_implicit_cast_to, var77); /* Direct call abstract_compiler$AbstractCompilerVisitor$add_cast on <self:AbstractCompilerVisitor>*/
8337 }
8338 {
8339 var84 = nitc___nitc__AbstractCompilerVisitor___autoadapt(self, var_res, var_implicit_cast_to);
8340 }
8341 var_res = var84;
8342 } else {
8343 }
8344 {
8345 { /* Inline abstract_compiler$AbstractCompilerVisitor$current_node= (self,var_old) on <self:AbstractCompilerVisitor> */
8346 self->attrs[COLOR_nitc__abstract_compiler__AbstractCompilerVisitor___current_node].val = var_old; /* _current_node on <self:AbstractCompilerVisitor> */
8347 RET_LABEL85:(void)0;
8348 }
8349 }
8350 var = var_res;
8351 goto RET_LABEL;
8352 RET_LABEL:;
8353 return var;
8354 }
8355 /* method abstract_compiler$AbstractCompilerVisitor$expr_bool for (self: AbstractCompilerVisitor, AExpr): RuntimeVariable */
8356 val* nitc___nitc__AbstractCompilerVisitor___expr_bool(val* self, val* p0) {
8357 val* var /* : RuntimeVariable */;
8358 val* var_nexpr /* var nexpr: AExpr */;
8359 val* var1 /* : MClassType */;
8360 val* var2 /* : RuntimeVariable */;
8361 var_nexpr = p0;
8362 {
8363 var1 = nitc___nitc__AbstractCompilerVisitor___bool_type(self);
8364 }
8365 {
8366 var2 = nitc___nitc__AbstractCompilerVisitor___expr(self, var_nexpr, var1);
8367 }
8368 var = var2;
8369 goto RET_LABEL;
8370 RET_LABEL:;
8371 return var;
8372 }
8373 /* method abstract_compiler$AbstractCompilerVisitor$debug for (self: AbstractCompilerVisitor, String) */
8374 void nitc___nitc__AbstractCompilerVisitor___debug(val* self, val* p0) {
8375 val* var_message /* var message: String */;
8376 val* var /* : nullable ANode */;
8377 val* var2 /* : nullable ANode */;
8378 val* var_node /* var node: nullable ANode */;
8379 short int var3 /* : Bool */;
8380 short int var4 /* : Bool */;
8381 val* var_other /* var other: nullable Object */;
8382 short int var6 /* : Bool */;
8383 short int var8 /* : Bool */;
8384 val* var9 /* : Sys */;
8385 val* var10 /* : NativeArray[String] */;
8386 static val* varonce;
8387 static val* varonce11;
8388 val* var12 /* : String */;
8389 char* var13 /* : CString */;
8390 val* var14 /* : String */;
8391 val* var15 /* : nullable Int */;
8392 val* var16 /* : nullable Int */;
8393 val* var17 /* : nullable Bool */;
8394 val* var18 /* : nullable Bool */;
8395 val* var19 /* : String */;
8396 val* var21 /* : NativeArray[String] */;
8397 static val* varonce20;
8398 static val* varonce22;
8399 val* var23 /* : String */;
8400 char* var24 /* : CString */;
8401 val* var25 /* : String */;
8402 val* var26 /* : nullable Int */;
8403 val* var27 /* : nullable Int */;
8404 val* var28 /* : nullable Bool */;
8405 val* var29 /* : nullable Bool */;
8406 static val* varonce30;
8407 val* var31 /* : String */;
8408 char* var32 /* : CString */;
8409 val* var33 /* : String */;
8410 val* var34 /* : nullable Int */;
8411 val* var35 /* : nullable Int */;
8412 val* var36 /* : nullable Bool */;
8413 val* var37 /* : nullable Bool */;
8414 val* var38 /* : String */;
8415 var_message = p0;
8416 {
8417 { /* Inline abstract_compiler$AbstractCompilerVisitor$current_node (self) on <self:AbstractCompilerVisitor> */
8418 var2 = self->attrs[COLOR_nitc__abstract_compiler__AbstractCompilerVisitor___current_node].val; /* _current_node on <self:AbstractCompilerVisitor> */
8419 var = var2;
8420 RET_LABEL1:(void)0;
8421 }
8422 }
8423 var_node = var;
8424 if (var_node == NULL) {
8425 var3 = 1; /* is null */
8426 } else {
8427 var3 = 0; /* arg is null but recv is not */
8428 }
8429 if (0) {
8430 { /* Inline kernel$Object$== (var_node,((val*)NULL)) on <var_node:nullable ANode> */
8431 var_other = ((val*)NULL);
8432 {
8433 { /* Inline kernel$Object$is_same_instance (var_node,var_other) on <var_node:nullable ANode(ANode)> */
8434 var8 = var_node == var_other;
8435 var6 = var8;
8436 goto RET_LABEL7;
8437 RET_LABEL7:(void)0;
8438 }
8439 }
8440 var4 = var6;
8441 goto RET_LABEL5;
8442 RET_LABEL5:(void)0;
8443 }
8444 var3 = var4;
8445 }
8446 if (var3){
8447 var9 = glob_sys;
8448 if (unlikely(varonce==NULL)) {
8449 var10 = NEW_core__NativeArray((int)2l, &type_core__NativeArray__core__String);
8450 if (likely(varonce11!=NULL)) {
8451 var12 = varonce11;
8452 } else {
8453 var13 = "?: ";
8454 var15 = (val*)(3l<<2|1);
8455 var16 = (val*)(3l<<2|1);
8456 var17 = (val*)((long)(0)<<2|3);
8457 var18 = (val*)((long)(0)<<2|3);
8458 var14 = core__flat___CString___to_s_unsafe(var13, var15, var16, var17, var18);
8459 var12 = var14;
8460 varonce11 = var12;
8461 }
8462 ((struct instance_core__NativeArray*)var10)->values[0]=var12;
8463 } else {
8464 var10 = varonce;
8465 varonce = NULL;
8466 }
8467 ((struct instance_core__NativeArray*)var10)->values[1]=var_message;
8468 {
8469 var19 = ((val*(*)(val* self))(var10->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var10); /* native_to_s on <var10:NativeArray[String]>*/
8470 }
8471 varonce = var10;
8472 {
8473 core__file___Sys___print(var9, var19); /* Direct call file$Sys$print on <var9:Sys>*/
8474 }
8475 } else {
8476 {
8477 nitc___nitc__ANode___debug(var_node, var_message); /* Direct call parser_nodes$ANode$debug on <var_node:nullable ANode(ANode)>*/
8478 }
8479 }
8480 if (unlikely(varonce20==NULL)) {
8481 var21 = NEW_core__NativeArray((int)3l, &type_core__NativeArray__core__String);
8482 if (likely(varonce22!=NULL)) {
8483 var23 = varonce22;
8484 } else {
8485 var24 = "/* DEBUG: ";
8486 var26 = (val*)(10l<<2|1);
8487 var27 = (val*)(10l<<2|1);
8488 var28 = (val*)((long)(0)<<2|3);
8489 var29 = (val*)((long)(0)<<2|3);
8490 var25 = core__flat___CString___to_s_unsafe(var24, var26, var27, var28, var29);
8491 var23 = var25;
8492 varonce22 = var23;
8493 }
8494 ((struct instance_core__NativeArray*)var21)->values[0]=var23;
8495 if (likely(varonce30!=NULL)) {
8496 var31 = varonce30;
8497 } else {
8498 var32 = " */";
8499 var34 = (val*)(3l<<2|1);
8500 var35 = (val*)(3l<<2|1);
8501 var36 = (val*)((long)(0)<<2|3);
8502 var37 = (val*)((long)(0)<<2|3);
8503 var33 = core__flat___CString___to_s_unsafe(var32, var34, var35, var36, var37);
8504 var31 = var33;
8505 varonce30 = var31;
8506 }
8507 ((struct instance_core__NativeArray*)var21)->values[2]=var31;
8508 } else {
8509 var21 = varonce20;
8510 varonce20 = NULL;
8511 }
8512 ((struct instance_core__NativeArray*)var21)->values[1]=var_message;
8513 {
8514 var38 = ((val*(*)(val* self))(var21->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var21); /* native_to_s on <var21:NativeArray[String]>*/
8515 }
8516 varonce20 = var21;
8517 {
8518 nitc___nitc__AbstractCompilerVisitor___add(self, var38); /* Direct call abstract_compiler$AbstractCompilerVisitor$add on <self:AbstractCompilerVisitor>*/
8519 }
8520 RET_LABEL:;
8521 }
8522 /* method abstract_compiler$AbstractRuntimeFunction$mmethoddef for (self: AbstractRuntimeFunction): MMethodDef */
8523 val* nitc___nitc__AbstractRuntimeFunction___mmethoddef(val* self) {
8524 val* var /* : MMethodDef */;
8525 val* var1 /* : MMethodDef */;
8526 var1 = self->attrs[COLOR_nitc__abstract_compiler__AbstractRuntimeFunction___mmethoddef].val; /* _mmethoddef on <self:AbstractRuntimeFunction> */
8527 if (unlikely(var1 == NULL)) {
8528 if(catchStack.cursor >= 0){
8529 longjmp(catchStack.envs[catchStack.cursor], 1);
8530 }
8531 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmethoddef");
8532 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 1947);
8533 fatal_exit(1);
8534 }
8535 var = var1;
8536 RET_LABEL:;
8537 return var;
8538 }
8539 /* method abstract_compiler$AbstractRuntimeFunction$mmethoddef= for (self: AbstractRuntimeFunction, MMethodDef) */
8540 void nitc___nitc__AbstractRuntimeFunction___mmethoddef_61d(val* self, val* p0) {
8541 self->attrs[COLOR_nitc__abstract_compiler__AbstractRuntimeFunction___mmethoddef].val = p0; /* _mmethoddef on <self:AbstractRuntimeFunction> */
8542 RET_LABEL:;
8543 }
8544 /* method abstract_compiler$AbstractRuntimeFunction$c_name for (self: AbstractRuntimeFunction): String */
8545 val* nitc___nitc__AbstractRuntimeFunction___c_name(val* self) {
8546 val* var /* : String */;
8547 val* var1 /* : nullable String */;
8548 val* var3 /* : nullable String */;
8549 val* var_res /* var res: nullable String */;
8550 short int var4 /* : Bool */;
8551 short int var5 /* : Bool */;
8552 val* var_other /* var other: nullable Object */;
8553 short int var7 /* : Bool */;
8554 short int var8 /* : Bool */;
8555 val* var9 /* : String */;
8556 val* var11 /* : String */;
8557 {
8558 { /* Inline abstract_compiler$AbstractRuntimeFunction$c_name_cache (self) on <self:AbstractRuntimeFunction> */
8559 var3 = self->attrs[COLOR_nitc__abstract_compiler__AbstractRuntimeFunction___c_name_cache].val; /* _c_name_cache on <self:AbstractRuntimeFunction> */
8560 var1 = var3;
8561 RET_LABEL2:(void)0;
8562 }
8563 }
8564 var_res = var1;
8565 if (var_res == NULL) {
8566 var4 = 0; /* is null */
8567 } else {
8568 var4 = 1; /* arg is null and recv is not */
8569 }
8570 if (0) {
8571 { /* Inline kernel$Object$!= (var_res,((val*)NULL)) on <var_res:nullable String> */
8572 var_other = ((val*)NULL);
8573 {
8574 var7 = ((short int(*)(val* self, val* p0))(var_res->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_res, var_other); /* == on <var_res:nullable String(String)>*/
8575 }
8576 var8 = !var7;
8577 var5 = var8;
8578 goto RET_LABEL6;
8579 RET_LABEL6:(void)0;
8580 }
8581 var4 = var5;
8582 }
8583 if (var4){
8584 var = var_res;
8585 goto RET_LABEL;
8586 } else {
8587 }
8588 {
8589 { /* Inline separate_compiler$SeparateRuntimeFunction$build_c_name (self) on <self:AbstractRuntimeFunction> */
8590 var11 = self->attrs[COLOR_nitc__separate_compiler__SeparateRuntimeFunction___build_c_name].val; /* _build_c_name on <self:AbstractRuntimeFunction> */
8591 if (unlikely(var11 == NULL)) {
8592 if(catchStack.cursor >= 0){
8593 longjmp(catchStack.envs[catchStack.cursor], 1);
8594 }
8595 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _build_c_name");
8596 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_compiler, 2239);
8597 fatal_exit(1);
8598 }
8599 var9 = var11;
8600 RET_LABEL10:(void)0;
8601 }
8602 }
8603 var_res = var9;
8604 {
8605 { /* Inline abstract_compiler$AbstractRuntimeFunction$c_name_cache= (self,var_res) on <self:AbstractRuntimeFunction> */
8606 self->attrs[COLOR_nitc__abstract_compiler__AbstractRuntimeFunction___c_name_cache].val = var_res; /* _c_name_cache on <self:AbstractRuntimeFunction> */
8607 RET_LABEL12:(void)0;
8608 }
8609 }
8610 var = var_res;
8611 goto RET_LABEL;
8612 RET_LABEL:;
8613 return var;
8614 }
8615 /* method abstract_compiler$AbstractRuntimeFunction$c_name_cache for (self: AbstractRuntimeFunction): nullable String */
8616 val* nitc___nitc__AbstractRuntimeFunction___c_name_cache(val* self) {
8617 val* var /* : nullable String */;
8618 val* var1 /* : nullable String */;
8619 var1 = self->attrs[COLOR_nitc__abstract_compiler__AbstractRuntimeFunction___c_name_cache].val; /* _c_name_cache on <self:AbstractRuntimeFunction> */
8620 var = var1;
8621 RET_LABEL:;
8622 return var;
8623 }
8624 /* method abstract_compiler$AbstractRuntimeFunction$c_name_cache= for (self: AbstractRuntimeFunction, nullable String) */
8625 void nitc___nitc__AbstractRuntimeFunction___c_name_cache_61d(val* self, val* p0) {
8626 self->attrs[COLOR_nitc__abstract_compiler__AbstractRuntimeFunction___c_name_cache].val = p0; /* _c_name_cache on <self:AbstractRuntimeFunction> */
8627 RET_LABEL:;
8628 }
8629 /* method abstract_compiler$AbstractRuntimeFunction$init for (self: AbstractRuntimeFunction) */
8630 void nitc___nitc__AbstractRuntimeFunction___core__kernel__Object__init(val* self) {
8631 {
8632 ((void(*)(val* self))(self->class->vft[COLOR_nitc___nitc__AbstractRuntimeFunction___core__kernel__Object__init]))(self); /* init on <self:AbstractRuntimeFunction>*/
8633 }
8634 RET_LABEL:;
8635 }
8636 /* method abstract_compiler$RuntimeVariable$name for (self: RuntimeVariable): String */
8637 val* nitc___nitc__RuntimeVariable___name(val* self) {
8638 val* var /* : String */;
8639 val* var1 /* : String */;
8640 var1 = self->attrs[COLOR_nitc__abstract_compiler__RuntimeVariable___name].val; /* _name on <self:RuntimeVariable> */
8641 if (unlikely(var1 == NULL)) {
8642 if(catchStack.cursor >= 0){
8643 longjmp(catchStack.envs[catchStack.cursor], 1);
8644 }
8645 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
8646 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 1980);
8647 fatal_exit(1);
8648 }
8649 var = var1;
8650 RET_LABEL:;
8651 return var;
8652 }
8653 /* method abstract_compiler$RuntimeVariable$name= for (self: RuntimeVariable, String) */
8654 void nitc___nitc__RuntimeVariable___name_61d(val* self, val* p0) {
8655 self->attrs[COLOR_nitc__abstract_compiler__RuntimeVariable___name].val = p0; /* _name on <self:RuntimeVariable> */
8656 RET_LABEL:;
8657 }
8658 /* method abstract_compiler$RuntimeVariable$mtype for (self: RuntimeVariable): MType */
8659 val* nitc___nitc__RuntimeVariable___mtype(val* self) {
8660 val* var /* : MType */;
8661 val* var1 /* : MType */;
8662 var1 = self->attrs[COLOR_nitc__abstract_compiler__RuntimeVariable___mtype].val; /* _mtype on <self:RuntimeVariable> */
8663 if (unlikely(var1 == NULL)) {
8664 if(catchStack.cursor >= 0){
8665 longjmp(catchStack.envs[catchStack.cursor], 1);
8666 }
8667 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
8668 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 1983);
8669 fatal_exit(1);
8670 }
8671 var = var1;
8672 RET_LABEL:;
8673 return var;
8674 }
8675 /* method abstract_compiler$RuntimeVariable$mtype= for (self: RuntimeVariable, MType) */
8676 void nitc___nitc__RuntimeVariable___mtype_61d(val* self, val* p0) {
8677 self->attrs[COLOR_nitc__abstract_compiler__RuntimeVariable___mtype].val = p0; /* _mtype on <self:RuntimeVariable> */
8678 RET_LABEL:;
8679 }
8680 /* method abstract_compiler$RuntimeVariable$mcasttype for (self: RuntimeVariable): MType */
8681 val* nitc___nitc__RuntimeVariable___mcasttype(val* self) {
8682 val* var /* : MType */;
8683 val* var1 /* : MType */;
8684 var1 = self->attrs[COLOR_nitc__abstract_compiler__RuntimeVariable___mcasttype].val; /* _mcasttype on <self:RuntimeVariable> */
8685 if (unlikely(var1 == NULL)) {
8686 if(catchStack.cursor >= 0){
8687 longjmp(catchStack.envs[catchStack.cursor], 1);
8688 }
8689 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mcasttype");
8690 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 1986);
8691 fatal_exit(1);
8692 }
8693 var = var1;
8694 RET_LABEL:;
8695 return var;
8696 }
8697 /* method abstract_compiler$RuntimeVariable$mcasttype= for (self: RuntimeVariable, MType) */
8698 void nitc___nitc__RuntimeVariable___mcasttype_61d(val* self, val* p0) {
8699 self->attrs[COLOR_nitc__abstract_compiler__RuntimeVariable___mcasttype].val = p0; /* _mcasttype on <self:RuntimeVariable> */
8700 RET_LABEL:;
8701 }
8702 /* method abstract_compiler$RuntimeVariable$is_exact for (self: RuntimeVariable): Bool */
8703 short int nitc___nitc__RuntimeVariable___is_exact(val* self) {
8704 short int var /* : Bool */;
8705 short int var1 /* : Bool */;
8706 var1 = self->attrs[COLOR_nitc__abstract_compiler__RuntimeVariable___is_exact].s; /* _is_exact on <self:RuntimeVariable> */
8707 var = var1;
8708 RET_LABEL:;
8709 return var;
8710 }
8711 /* method abstract_compiler$RuntimeVariable$is_exact= for (self: RuntimeVariable, Bool) */
8712 void nitc___nitc__RuntimeVariable___is_exact_61d(val* self, short int p0) {
8713 self->attrs[COLOR_nitc__abstract_compiler__RuntimeVariable___is_exact].s = p0; /* _is_exact on <self:RuntimeVariable> */
8714 RET_LABEL:;
8715 }
8716 /* method abstract_compiler$RuntimeVariable$init for (self: RuntimeVariable) */
8717 void nitc___nitc__RuntimeVariable___core__kernel__Object__init(val* self) {
8718 val* var /* : MType */;
8719 val* var2 /* : MType */;
8720 short int var3 /* : Bool */;
8721 short int var4 /* : Bool */;
8722 val* var5 /* : MType */;
8723 val* var7 /* : MType */;
8724 short int var8 /* : Bool */;
8725 short int var9 /* : Bool */;
8726 {
8727 ((void(*)(val* self))(self->class->vft[COLOR_nitc___nitc__RuntimeVariable___core__kernel__Object__init]))(self); /* init on <self:RuntimeVariable>*/
8728 }
8729 {
8730 { /* Inline abstract_compiler$RuntimeVariable$mtype (self) on <self:RuntimeVariable> */
8731 var2 = self->attrs[COLOR_nitc__abstract_compiler__RuntimeVariable___mtype].val; /* _mtype on <self:RuntimeVariable> */
8732 if (unlikely(var2 == NULL)) {
8733 if(catchStack.cursor >= 0){
8734 longjmp(catchStack.envs[catchStack.cursor], 1);
8735 }
8736 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
8737 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 1983);
8738 fatal_exit(1);
8739 }
8740 var = var2;
8741 RET_LABEL1:(void)0;
8742 }
8743 }
8744 {
8745 var3 = ((short int(*)(val* self))(var->class->vft[COLOR_nitc__model__MType__need_anchor]))(var); /* need_anchor on <var:MType>*/
8746 }
8747 var4 = !var3;
8748 if (unlikely(!var4)) {
8749 if(catchStack.cursor >= 0){
8750 longjmp(catchStack.envs[catchStack.cursor], 1);
8751 }
8752 PRINT_ERROR("Runtime error: %s", "Assert failed");
8753 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 1995);
8754 fatal_exit(1);
8755 }
8756 {
8757 { /* Inline abstract_compiler$RuntimeVariable$mcasttype (self) on <self:RuntimeVariable> */
8758 var7 = self->attrs[COLOR_nitc__abstract_compiler__RuntimeVariable___mcasttype].val; /* _mcasttype on <self:RuntimeVariable> */
8759 if (unlikely(var7 == NULL)) {
8760 if(catchStack.cursor >= 0){
8761 longjmp(catchStack.envs[catchStack.cursor], 1);
8762 }
8763 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mcasttype");
8764 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 1986);
8765 fatal_exit(1);
8766 }
8767 var5 = var7;
8768 RET_LABEL6:(void)0;
8769 }
8770 }
8771 {
8772 var8 = ((short int(*)(val* self))(var5->class->vft[COLOR_nitc__model__MType__need_anchor]))(var5); /* need_anchor on <var5:MType>*/
8773 }
8774 var9 = !var8;
8775 if (unlikely(!var9)) {
8776 if(catchStack.cursor >= 0){
8777 longjmp(catchStack.envs[catchStack.cursor], 1);
8778 }
8779 PRINT_ERROR("Runtime error: %s", "Assert failed");
8780 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 1996);
8781 fatal_exit(1);
8782 }
8783 RET_LABEL:;
8784 }
8785 /* method abstract_compiler$RuntimeVariable$to_s for (self: RuntimeVariable): String */
8786 val* nitc___nitc__RuntimeVariable___core__abstract_text__Object__to_s(val* self) {
8787 val* var /* : String */;
8788 val* var1 /* : String */;
8789 val* var3 /* : String */;
8790 {
8791 { /* Inline abstract_compiler$RuntimeVariable$name (self) on <self:RuntimeVariable> */
8792 var3 = self->attrs[COLOR_nitc__abstract_compiler__RuntimeVariable___name].val; /* _name on <self:RuntimeVariable> */
8793 if (unlikely(var3 == NULL)) {
8794 if(catchStack.cursor >= 0){
8795 longjmp(catchStack.envs[catchStack.cursor], 1);
8796 }
8797 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
8798 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 1980);
8799 fatal_exit(1);
8800 }
8801 var1 = var3;
8802 RET_LABEL2:(void)0;
8803 }
8804 }
8805 var = var1;
8806 goto RET_LABEL;
8807 RET_LABEL:;
8808 return var;
8809 }
8810 /* method abstract_compiler$RuntimeVariable$inspect for (self: RuntimeVariable): String */
8811 val* nitc___nitc__RuntimeVariable___core__abstract_text__Object__inspect(val* self) {
8812 val* var /* : String */;
8813 short int var1 /* : Bool */;
8814 short int var3 /* : Bool */;
8815 static val* varonce;
8816 val* var4 /* : String */;
8817 char* var5 /* : CString */;
8818 val* var6 /* : String */;
8819 val* var7 /* : nullable Int */;
8820 val* var8 /* : nullable Int */;
8821 val* var9 /* : nullable Bool */;
8822 val* var10 /* : nullable Bool */;
8823 val* var_exact_str /* var exact_str: nullable Object */;
8824 static val* varonce11;
8825 val* var12 /* : String */;
8826 char* var13 /* : CString */;
8827 val* var14 /* : String */;
8828 val* var15 /* : nullable Int */;
8829 val* var16 /* : nullable Int */;
8830 val* var17 /* : nullable Bool */;
8831 val* var18 /* : nullable Bool */;
8832 val* var19 /* : MType */;
8833 val* var21 /* : MType */;
8834 val* var22 /* : MType */;
8835 val* var24 /* : MType */;
8836 short int var25 /* : Bool */;
8837 val* var_other /* var other: nullable Object */;
8838 short int var27 /* : Bool */;
8839 short int var29 /* : Bool */;
8840 val* var31 /* : NativeArray[String] */;
8841 static val* varonce30;
8842 val* var32 /* : MType */;
8843 val* var34 /* : MType */;
8844 val* var35 /* : String */;
8845 val* var36 /* : String */;
8846 val* var_type_str /* var type_str: nullable Object */;
8847 val* var38 /* : NativeArray[String] */;
8848 static val* varonce37;
8849 static val* varonce39;
8850 val* var40 /* : String */;
8851 char* var41 /* : CString */;
8852 val* var42 /* : String */;
8853 val* var43 /* : nullable Int */;
8854 val* var44 /* : nullable Int */;
8855 val* var45 /* : nullable Bool */;
8856 val* var46 /* : nullable Bool */;
8857 static val* varonce47;
8858 val* var48 /* : String */;
8859 char* var49 /* : CString */;
8860 val* var50 /* : String */;
8861 val* var51 /* : nullable Int */;
8862 val* var52 /* : nullable Int */;
8863 val* var53 /* : nullable Bool */;
8864 val* var54 /* : nullable Bool */;
8865 val* var55 /* : MType */;
8866 val* var57 /* : MType */;
8867 val* var58 /* : String */;
8868 val* var59 /* : MType */;
8869 val* var61 /* : MType */;
8870 val* var62 /* : String */;
8871 val* var63 /* : String */;
8872 val* var65 /* : NativeArray[String] */;
8873 static val* varonce64;
8874 static val* varonce66;
8875 val* var67 /* : String */;
8876 char* var68 /* : CString */;
8877 val* var69 /* : String */;
8878 val* var70 /* : nullable Int */;
8879 val* var71 /* : nullable Int */;
8880 val* var72 /* : nullable Bool */;
8881 val* var73 /* : nullable Bool */;
8882 static val* varonce74;
8883 val* var75 /* : String */;
8884 char* var76 /* : CString */;
8885 val* var77 /* : String */;
8886 val* var78 /* : nullable Int */;
8887 val* var79 /* : nullable Int */;
8888 val* var80 /* : nullable Bool */;
8889 val* var81 /* : nullable Bool */;
8890 static val* varonce82;
8891 val* var83 /* : String */;
8892 char* var84 /* : CString */;
8893 val* var85 /* : String */;
8894 val* var86 /* : nullable Int */;
8895 val* var87 /* : nullable Int */;
8896 val* var88 /* : nullable Bool */;
8897 val* var89 /* : nullable Bool */;
8898 val* var90 /* : String */;
8899 val* var92 /* : String */;
8900 val* var93 /* : String */;
8901 {
8902 { /* Inline abstract_compiler$RuntimeVariable$is_exact (self) on <self:RuntimeVariable> */
8903 var3 = self->attrs[COLOR_nitc__abstract_compiler__RuntimeVariable___is_exact].s; /* _is_exact on <self:RuntimeVariable> */
8904 var1 = var3;
8905 RET_LABEL2:(void)0;
8906 }
8907 }
8908 if (var1){
8909 if (likely(varonce!=NULL)) {
8910 var4 = varonce;
8911 } else {
8912 var5 = " exact";
8913 var7 = (val*)(6l<<2|1);
8914 var8 = (val*)(6l<<2|1);
8915 var9 = (val*)((long)(0)<<2|3);
8916 var10 = (val*)((long)(0)<<2|3);
8917 var6 = core__flat___CString___to_s_unsafe(var5, var7, var8, var9, var10);
8918 var4 = var6;
8919 varonce = var4;
8920 }
8921 var_exact_str = var4;
8922 } else {
8923 if (likely(varonce11!=NULL)) {
8924 var12 = varonce11;
8925 } else {
8926 var13 = "";
8927 var15 = (val*)(0l<<2|1);
8928 var16 = (val*)(0l<<2|1);
8929 var17 = (val*)((long)(0)<<2|3);
8930 var18 = (val*)((long)(0)<<2|3);
8931 var14 = core__flat___CString___to_s_unsafe(var13, var15, var16, var17, var18);
8932 var12 = var14;
8933 varonce11 = var12;
8934 }
8935 var_exact_str = var12;
8936 }
8937 {
8938 { /* Inline abstract_compiler$RuntimeVariable$mtype (self) on <self:RuntimeVariable> */
8939 var21 = self->attrs[COLOR_nitc__abstract_compiler__RuntimeVariable___mtype].val; /* _mtype on <self:RuntimeVariable> */
8940 if (unlikely(var21 == NULL)) {
8941 if(catchStack.cursor >= 0){
8942 longjmp(catchStack.envs[catchStack.cursor], 1);
8943 }
8944 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
8945 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 1983);
8946 fatal_exit(1);
8947 }
8948 var19 = var21;
8949 RET_LABEL20:(void)0;
8950 }
8951 }
8952 {
8953 { /* Inline abstract_compiler$RuntimeVariable$mcasttype (self) on <self:RuntimeVariable> */
8954 var24 = self->attrs[COLOR_nitc__abstract_compiler__RuntimeVariable___mcasttype].val; /* _mcasttype on <self:RuntimeVariable> */
8955 if (unlikely(var24 == NULL)) {
8956 if(catchStack.cursor >= 0){
8957 longjmp(catchStack.envs[catchStack.cursor], 1);
8958 }
8959 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mcasttype");
8960 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 1986);
8961 fatal_exit(1);
8962 }
8963 var22 = var24;
8964 RET_LABEL23:(void)0;
8965 }
8966 }
8967 {
8968 { /* Inline kernel$Object$== (var19,var22) on <var19:MType> */
8969 var_other = var22;
8970 {
8971 { /* Inline kernel$Object$is_same_instance (var19,var_other) on <var19:MType> */
8972 var29 = var19 == var_other;
8973 var27 = var29;
8974 goto RET_LABEL28;
8975 RET_LABEL28:(void)0;
8976 }
8977 }
8978 var25 = var27;
8979 goto RET_LABEL26;
8980 RET_LABEL26:(void)0;
8981 }
8982 }
8983 if (var25){
8984 if (unlikely(varonce30==NULL)) {
8985 var31 = NEW_core__NativeArray((int)2l, &type_core__NativeArray__core__String);
8986 } else {
8987 var31 = varonce30;
8988 varonce30 = NULL;
8989 }
8990 {
8991 { /* Inline abstract_compiler$RuntimeVariable$mtype (self) on <self:RuntimeVariable> */
8992 var34 = self->attrs[COLOR_nitc__abstract_compiler__RuntimeVariable___mtype].val; /* _mtype on <self:RuntimeVariable> */
8993 if (unlikely(var34 == NULL)) {
8994 if(catchStack.cursor >= 0){
8995 longjmp(catchStack.envs[catchStack.cursor], 1);
8996 }
8997 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
8998 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 1983);
8999 fatal_exit(1);
9000 }
9001 var32 = var34;
9002 RET_LABEL33:(void)0;
9003 }
9004 }
9005 {
9006 var35 = ((val*(*)(val* self))(var32->class->vft[COLOR_core__abstract_text__Object__to_s]))(var32); /* to_s on <var32:MType>*/
9007 }
9008 ((struct instance_core__NativeArray*)var31)->values[0]=var35;
9009 ((struct instance_core__NativeArray*)var31)->values[1]=var_exact_str;
9010 {
9011 var36 = ((val*(*)(val* self))(var31->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var31); /* native_to_s on <var31:NativeArray[String]>*/
9012 }
9013 varonce30 = var31;
9014 var_type_str = var36;
9015 } else {
9016 if (unlikely(varonce37==NULL)) {
9017 var38 = NEW_core__NativeArray((int)5l, &type_core__NativeArray__core__String);
9018 if (likely(varonce39!=NULL)) {
9019 var40 = varonce39;
9020 } else {
9021 var41 = "(";
9022 var43 = (val*)(1l<<2|1);
9023 var44 = (val*)(1l<<2|1);
9024 var45 = (val*)((long)(0)<<2|3);
9025 var46 = (val*)((long)(0)<<2|3);
9026 var42 = core__flat___CString___to_s_unsafe(var41, var43, var44, var45, var46);
9027 var40 = var42;
9028 varonce39 = var40;
9029 }
9030 ((struct instance_core__NativeArray*)var38)->values[1]=var40;
9031 if (likely(varonce47!=NULL)) {
9032 var48 = varonce47;
9033 } else {
9034 var49 = ")";
9035 var51 = (val*)(1l<<2|1);
9036 var52 = (val*)(1l<<2|1);
9037 var53 = (val*)((long)(0)<<2|3);
9038 var54 = (val*)((long)(0)<<2|3);
9039 var50 = core__flat___CString___to_s_unsafe(var49, var51, var52, var53, var54);
9040 var48 = var50;
9041 varonce47 = var48;
9042 }
9043 ((struct instance_core__NativeArray*)var38)->values[4]=var48;
9044 } else {
9045 var38 = varonce37;
9046 varonce37 = NULL;
9047 }
9048 {
9049 { /* Inline abstract_compiler$RuntimeVariable$mtype (self) on <self:RuntimeVariable> */
9050 var57 = self->attrs[COLOR_nitc__abstract_compiler__RuntimeVariable___mtype].val; /* _mtype on <self:RuntimeVariable> */
9051 if (unlikely(var57 == NULL)) {
9052 if(catchStack.cursor >= 0){
9053 longjmp(catchStack.envs[catchStack.cursor], 1);
9054 }
9055 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
9056 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 1983);
9057 fatal_exit(1);
9058 }
9059 var55 = var57;
9060 RET_LABEL56:(void)0;
9061 }
9062 }
9063 {
9064 var58 = ((val*(*)(val* self))(var55->class->vft[COLOR_core__abstract_text__Object__to_s]))(var55); /* to_s on <var55:MType>*/
9065 }
9066 ((struct instance_core__NativeArray*)var38)->values[0]=var58;
9067 {
9068 { /* Inline abstract_compiler$RuntimeVariable$mcasttype (self) on <self:RuntimeVariable> */
9069 var61 = self->attrs[COLOR_nitc__abstract_compiler__RuntimeVariable___mcasttype].val; /* _mcasttype on <self:RuntimeVariable> */
9070 if (unlikely(var61 == NULL)) {
9071 if(catchStack.cursor >= 0){
9072 longjmp(catchStack.envs[catchStack.cursor], 1);
9073 }
9074 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mcasttype");
9075 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 1986);
9076 fatal_exit(1);
9077 }
9078 var59 = var61;
9079 RET_LABEL60:(void)0;
9080 }
9081 }
9082 {
9083 var62 = ((val*(*)(val* self))(var59->class->vft[COLOR_core__abstract_text__Object__to_s]))(var59); /* to_s on <var59:MType>*/
9084 }
9085 ((struct instance_core__NativeArray*)var38)->values[2]=var62;
9086 ((struct instance_core__NativeArray*)var38)->values[3]=var_exact_str;
9087 {
9088 var63 = ((val*(*)(val* self))(var38->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var38); /* native_to_s on <var38:NativeArray[String]>*/
9089 }
9090 varonce37 = var38;
9091 var_type_str = var63;
9092 }
9093 if (unlikely(varonce64==NULL)) {
9094 var65 = NEW_core__NativeArray((int)5l, &type_core__NativeArray__core__String);
9095 if (likely(varonce66!=NULL)) {
9096 var67 = varonce66;
9097 } else {
9098 var68 = "<";
9099 var70 = (val*)(1l<<2|1);
9100 var71 = (val*)(1l<<2|1);
9101 var72 = (val*)((long)(0)<<2|3);
9102 var73 = (val*)((long)(0)<<2|3);
9103 var69 = core__flat___CString___to_s_unsafe(var68, var70, var71, var72, var73);
9104 var67 = var69;
9105 varonce66 = var67;
9106 }
9107 ((struct instance_core__NativeArray*)var65)->values[0]=var67;
9108 if (likely(varonce74!=NULL)) {
9109 var75 = varonce74;
9110 } else {
9111 var76 = ":";
9112 var78 = (val*)(1l<<2|1);
9113 var79 = (val*)(1l<<2|1);
9114 var80 = (val*)((long)(0)<<2|3);
9115 var81 = (val*)((long)(0)<<2|3);
9116 var77 = core__flat___CString___to_s_unsafe(var76, var78, var79, var80, var81);
9117 var75 = var77;
9118 varonce74 = var75;
9119 }
9120 ((struct instance_core__NativeArray*)var65)->values[2]=var75;
9121 if (likely(varonce82!=NULL)) {
9122 var83 = varonce82;
9123 } else {
9124 var84 = ">";
9125 var86 = (val*)(1l<<2|1);
9126 var87 = (val*)(1l<<2|1);
9127 var88 = (val*)((long)(0)<<2|3);
9128 var89 = (val*)((long)(0)<<2|3);
9129 var85 = core__flat___CString___to_s_unsafe(var84, var86, var87, var88, var89);
9130 var83 = var85;
9131 varonce82 = var83;
9132 }
9133 ((struct instance_core__NativeArray*)var65)->values[4]=var83;
9134 } else {
9135 var65 = varonce64;
9136 varonce64 = NULL;
9137 }
9138 {
9139 { /* Inline abstract_compiler$RuntimeVariable$name (self) on <self:RuntimeVariable> */
9140 var92 = self->attrs[COLOR_nitc__abstract_compiler__RuntimeVariable___name].val; /* _name on <self:RuntimeVariable> */
9141 if (unlikely(var92 == NULL)) {
9142 if(catchStack.cursor >= 0){
9143 longjmp(catchStack.envs[catchStack.cursor], 1);
9144 }
9145 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
9146 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 1980);
9147 fatal_exit(1);
9148 }
9149 var90 = var92;
9150 RET_LABEL91:(void)0;
9151 }
9152 }
9153 ((struct instance_core__NativeArray*)var65)->values[1]=var90;
9154 ((struct instance_core__NativeArray*)var65)->values[3]=var_type_str;
9155 {
9156 var93 = ((val*(*)(val* self))(var65->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var65); /* native_to_s on <var65:NativeArray[String]>*/
9157 }
9158 varonce64 = var65;
9159 var = var93;
9160 goto RET_LABEL;
9161 RET_LABEL:;
9162 return var;
9163 }
9164 /* method abstract_compiler$StaticFrame$visitor= for (self: StaticFrame, AbstractCompilerVisitor) */
9165 void nitc___nitc__StaticFrame___visitor_61d(val* self, val* p0) {
9166 short int var /* : Bool */;
9167 int cltype;
9168 int idtype;
9169 const struct type* type_struct;
9170 const char* var_class_name;
9171 /* Covariant cast for argument 0 (visitor) <p0:AbstractCompilerVisitor> isa VISITOR */
9172 /* <p0:AbstractCompilerVisitor> isa VISITOR */
9173 type_struct = self->type->resolution_table->types[COLOR_nitc__abstract_compiler__StaticFrame__VISITOR];
9174 cltype = type_struct->color;
9175 idtype = type_struct->id;
9176 if(cltype >= p0->type->table_size) {
9177 var = 0;
9178 } else {
9179 var = p0->type->type_table[cltype] == idtype;
9180 }
9181 if (unlikely(!var)) {
9182 var_class_name = p0 == NULL ? "null" : p0->type->name;
9183 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "VISITOR", var_class_name);
9184 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 2024);
9185 fatal_exit(1);
9186 }
9187 self->attrs[COLOR_nitc__abstract_compiler__StaticFrame___visitor].val = p0; /* _visitor on <self:StaticFrame> */
9188 RET_LABEL:;
9189 }
9190 /* method abstract_compiler$StaticFrame$mpropdef for (self: StaticFrame): MPropDef */
9191 val* nitc___nitc__StaticFrame___mpropdef(val* self) {
9192 val* var /* : MPropDef */;
9193 val* var1 /* : MPropDef */;
9194 var1 = self->attrs[COLOR_nitc__abstract_compiler__StaticFrame___mpropdef].val; /* _mpropdef on <self:StaticFrame> */
9195 if (unlikely(var1 == NULL)) {
9196 if(catchStack.cursor >= 0){
9197 longjmp(catchStack.envs[catchStack.cursor], 1);
9198 }
9199 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mpropdef");
9200 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 2027);
9201 fatal_exit(1);
9202 }
9203 var = var1;
9204 RET_LABEL:;
9205 return var;
9206 }
9207 /* method abstract_compiler$StaticFrame$mpropdef= for (self: StaticFrame, MPropDef) */
9208 void nitc___nitc__StaticFrame___mpropdef_61d(val* self, val* p0) {
9209 self->attrs[COLOR_nitc__abstract_compiler__StaticFrame___mpropdef].val = p0; /* _mpropdef on <self:StaticFrame> */
9210 RET_LABEL:;
9211 }
9212 /* method abstract_compiler$StaticFrame$receiver for (self: StaticFrame): MClassType */
9213 val* nitc___nitc__StaticFrame___receiver(val* self) {
9214 val* var /* : MClassType */;
9215 val* var1 /* : MClassType */;
9216 var1 = self->attrs[COLOR_nitc__abstract_compiler__StaticFrame___receiver].val; /* _receiver on <self:StaticFrame> */
9217 if (unlikely(var1 == NULL)) {
9218 if(catchStack.cursor >= 0){
9219 longjmp(catchStack.envs[catchStack.cursor], 1);
9220 }
9221 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _receiver");
9222 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 2031);
9223 fatal_exit(1);
9224 }
9225 var = var1;
9226 RET_LABEL:;
9227 return var;
9228 }
9229 /* method abstract_compiler$StaticFrame$receiver= for (self: StaticFrame, MClassType) */
9230 void nitc___nitc__StaticFrame___receiver_61d(val* self, val* p0) {
9231 self->attrs[COLOR_nitc__abstract_compiler__StaticFrame___receiver].val = p0; /* _receiver on <self:StaticFrame> */
9232 RET_LABEL:;
9233 }
9234 /* method abstract_compiler$StaticFrame$arguments for (self: StaticFrame): Array[RuntimeVariable] */
9235 val* nitc___nitc__StaticFrame___arguments(val* self) {
9236 val* var /* : Array[RuntimeVariable] */;
9237 val* var1 /* : Array[RuntimeVariable] */;
9238 var1 = self->attrs[COLOR_nitc__abstract_compiler__StaticFrame___arguments].val; /* _arguments on <self:StaticFrame> */
9239 if (unlikely(var1 == NULL)) {
9240 if(catchStack.cursor >= 0){
9241 longjmp(catchStack.envs[catchStack.cursor], 1);
9242 }
9243 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _arguments");
9244 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 2034);
9245 fatal_exit(1);
9246 }
9247 var = var1;
9248 RET_LABEL:;
9249 return var;
9250 }
9251 /* method abstract_compiler$StaticFrame$arguments= for (self: StaticFrame, Array[RuntimeVariable]) */
9252 void nitc___nitc__StaticFrame___arguments_61d(val* self, val* p0) {
9253 self->attrs[COLOR_nitc__abstract_compiler__StaticFrame___arguments].val = p0; /* _arguments on <self:StaticFrame> */
9254 RET_LABEL:;
9255 }
9256 /* method abstract_compiler$StaticFrame$returnvar for (self: StaticFrame): nullable RuntimeVariable */
9257 val* nitc___nitc__StaticFrame___returnvar(val* self) {
9258 val* var /* : nullable RuntimeVariable */;
9259 val* var1 /* : nullable RuntimeVariable */;
9260 var1 = self->attrs[COLOR_nitc__abstract_compiler__StaticFrame___returnvar].val; /* _returnvar on <self:StaticFrame> */
9261 var = var1;
9262 RET_LABEL:;
9263 return var;
9264 }
9265 /* method abstract_compiler$StaticFrame$returnvar= for (self: StaticFrame, nullable RuntimeVariable) */
9266 void nitc___nitc__StaticFrame___returnvar_61d(val* self, val* p0) {
9267 self->attrs[COLOR_nitc__abstract_compiler__StaticFrame___returnvar].val = p0; /* _returnvar on <self:StaticFrame> */
9268 RET_LABEL:;
9269 }
9270 /* method abstract_compiler$StaticFrame$returnlabel for (self: StaticFrame): nullable String */
9271 val* nitc___nitc__StaticFrame___returnlabel(val* self) {
9272 val* var /* : nullable String */;
9273 val* var1 /* : nullable String */;
9274 var1 = self->attrs[COLOR_nitc__abstract_compiler__StaticFrame___returnlabel].val; /* _returnlabel on <self:StaticFrame> */
9275 var = var1;
9276 RET_LABEL:;
9277 return var;
9278 }
9279 /* method abstract_compiler$StaticFrame$returnlabel= for (self: StaticFrame, nullable String) */
9280 void nitc___nitc__StaticFrame___returnlabel_61d(val* self, val* p0) {
9281 self->attrs[COLOR_nitc__abstract_compiler__StaticFrame___returnlabel].val = p0; /* _returnlabel on <self:StaticFrame> */
9282 RET_LABEL:;
9283 }
9284 /* method abstract_compiler$StaticFrame$escapemark_names for (self: StaticFrame): HashMap[EscapeMark, String] */
9285 val* nitc___nitc__StaticFrame___escapemark_names(val* self) {
9286 val* var /* : HashMap[EscapeMark, String] */;
9287 val* var1 /* : HashMap[EscapeMark, String] */;
9288 var1 = self->attrs[COLOR_nitc__abstract_compiler__StaticFrame___escapemark_names].val; /* _escapemark_names on <self:StaticFrame> */
9289 if (unlikely(var1 == NULL)) {
9290 if(catchStack.cursor >= 0){
9291 longjmp(catchStack.envs[catchStack.cursor], 1);
9292 }
9293 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _escapemark_names");
9294 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 2043);
9295 fatal_exit(1);
9296 }
9297 var = var1;
9298 RET_LABEL:;
9299 return var;
9300 }
9301 /* method abstract_compiler$StaticFrame$comprehension for (self: StaticFrame): nullable RuntimeVariable */
9302 val* nitc___nitc__StaticFrame___comprehension(val* self) {
9303 val* var /* : nullable RuntimeVariable */;
9304 val* var1 /* : nullable RuntimeVariable */;
9305 var1 = self->attrs[COLOR_nitc__abstract_compiler__StaticFrame___comprehension].val; /* _comprehension on <self:StaticFrame> */
9306 var = var1;
9307 RET_LABEL:;
9308 return var;
9309 }
9310 /* method abstract_compiler$StaticFrame$comprehension= for (self: StaticFrame, nullable RuntimeVariable) */
9311 void nitc___nitc__StaticFrame___comprehension_61d(val* self, val* p0) {
9312 self->attrs[COLOR_nitc__abstract_compiler__StaticFrame___comprehension].val = p0; /* _comprehension on <self:StaticFrame> */
9313 RET_LABEL:;
9314 }
9315 /* method abstract_compiler$StaticFrame$init for (self: StaticFrame) */
9316 void nitc___nitc__StaticFrame___core__kernel__Object__init(val* self) {
9317 {
9318 ((void(*)(val* self))(self->class->vft[COLOR_nitc___nitc__StaticFrame___core__kernel__Object__init]))(self); /* init on <self:StaticFrame>*/
9319 }
9320 RET_LABEL:;
9321 }
9322 /* method abstract_compiler$MType$ctype for (self: MType): String */
9323 val* nitc__abstract_compiler___MType___ctype(val* self) {
9324 val* var /* : String */;
9325 static val* varonce;
9326 val* var1 /* : String */;
9327 char* var2 /* : CString */;
9328 val* var3 /* : String */;
9329 val* var4 /* : nullable Int */;
9330 val* var5 /* : nullable Int */;
9331 val* var6 /* : nullable Bool */;
9332 val* var7 /* : nullable Bool */;
9333 if (likely(varonce!=NULL)) {
9334 var1 = varonce;
9335 } else {
9336 var2 = "val*";
9337 var4 = (val*)(4l<<2|1);
9338 var5 = (val*)(4l<<2|1);
9339 var6 = (val*)((long)(0)<<2|3);
9340 var7 = (val*)((long)(0)<<2|3);
9341 var3 = core__flat___CString___to_s_unsafe(var2, var4, var5, var6, var7);
9342 var1 = var3;
9343 varonce = var1;
9344 }
9345 var = var1;
9346 goto RET_LABEL;
9347 RET_LABEL:;
9348 return var;
9349 }
9350 /* method abstract_compiler$MType$ctype_extern for (self: MType): String */
9351 val* nitc__abstract_compiler___MType___ctype_extern(val* self) {
9352 val* var /* : String */;
9353 static val* varonce;
9354 val* var1 /* : String */;
9355 char* var2 /* : CString */;
9356 val* var3 /* : String */;
9357 val* var4 /* : nullable Int */;
9358 val* var5 /* : nullable Int */;
9359 val* var6 /* : nullable Bool */;
9360 val* var7 /* : nullable Bool */;
9361 if (likely(varonce!=NULL)) {
9362 var1 = varonce;
9363 } else {
9364 var2 = "val*";
9365 var4 = (val*)(4l<<2|1);
9366 var5 = (val*)(4l<<2|1);
9367 var6 = (val*)((long)(0)<<2|3);
9368 var7 = (val*)((long)(0)<<2|3);
9369 var3 = core__flat___CString___to_s_unsafe(var2, var4, var5, var6, var7);
9370 var1 = var3;
9371 varonce = var1;
9372 }
9373 var = var1;
9374 goto RET_LABEL;
9375 RET_LABEL:;
9376 return var;
9377 }
9378 /* method abstract_compiler$MType$ctypename for (self: MType): String */
9379 val* nitc__abstract_compiler___MType___ctypename(val* self) {
9380 val* var /* : String */;
9381 static val* varonce;
9382 val* var1 /* : String */;
9383 char* var2 /* : CString */;
9384 val* var3 /* : String */;
9385 val* var4 /* : nullable Int */;
9386 val* var5 /* : nullable Int */;
9387 val* var6 /* : nullable Bool */;
9388 val* var7 /* : nullable Bool */;
9389 if (likely(varonce!=NULL)) {
9390 var1 = varonce;
9391 } else {
9392 var2 = "val";
9393 var4 = (val*)(3l<<2|1);
9394 var5 = (val*)(3l<<2|1);
9395 var6 = (val*)((long)(0)<<2|3);
9396 var7 = (val*)((long)(0)<<2|3);
9397 var3 = core__flat___CString___to_s_unsafe(var2, var4, var5, var6, var7);
9398 var1 = var3;
9399 varonce = var1;
9400 }
9401 var = var1;
9402 goto RET_LABEL;
9403 RET_LABEL:;
9404 return var;
9405 }
9406 /* method abstract_compiler$MType$is_c_primitive for (self: MType): Bool */
9407 short int nitc__abstract_compiler___MType___is_c_primitive(val* self) {
9408 short int var /* : Bool */;
9409 var = 0;
9410 goto RET_LABEL;
9411 RET_LABEL:;
9412 return var;
9413 }