README: document nit_env.sh
[nit.git] / c_src / nit__separate_erasure_compiler.sep.2.c
1 #include "nit__separate_erasure_compiler.sep.0.h"
2 /* method separate_erasure_compiler#SeparateErasureCompilerVisitor#type_test for (self: SeparateErasureCompilerVisitor, RuntimeVariable, MType, String): RuntimeVariable */
3 val* nit___nit__SeparateErasureCompilerVisitor___nit__abstract_compiler__AbstractCompilerVisitor__type_test(val* self, val* p0, val* p1, val* p2) {
4 val* var /* : RuntimeVariable */;
5 val* var_value /* var value: RuntimeVariable */;
6 val* var_mtype /* var mtype: MType */;
7 val* var_tag /* var tag: String */;
8 val* var1 /* : NativeArray[String] */;
9 static val* varonce;
10 static val* varonce2;
11 val* var3 /* : String */;
12 char* var4 /* : NativeString */;
13 val* var5 /* : FlatString */;
14 static val* varonce6;
15 val* var7 /* : String */;
16 char* var8 /* : NativeString */;
17 val* var9 /* : FlatString */;
18 static val* varonce10;
19 val* var11 /* : String */;
20 char* var12 /* : NativeString */;
21 val* var13 /* : FlatString */;
22 val* var14 /* : String */;
23 val* var15 /* : String */;
24 val* var16 /* : String */;
25 val* var17 /* : MClassType */;
26 val* var18 /* : RuntimeVariable */;
27 val* var_res /* var res: RuntimeVariable */;
28 static val* varonce19;
29 val* var20 /* : String */;
30 char* var21 /* : NativeString */;
31 val* var22 /* : FlatString */;
32 val* var23 /* : String */;
33 val* var_cltype /* var cltype: String */;
34 val* var25 /* : NativeArray[String] */;
35 static val* varonce24;
36 static val* varonce26;
37 val* var27 /* : String */;
38 char* var28 /* : NativeString */;
39 val* var29 /* : FlatString */;
40 static val* varonce30;
41 val* var31 /* : String */;
42 char* var32 /* : NativeString */;
43 val* var33 /* : FlatString */;
44 val* var34 /* : String */;
45 static val* varonce35;
46 val* var36 /* : String */;
47 char* var37 /* : NativeString */;
48 val* var38 /* : FlatString */;
49 val* var39 /* : String */;
50 val* var_idtype /* var idtype: String */;
51 val* var41 /* : NativeArray[String] */;
52 static val* varonce40;
53 static val* varonce42;
54 val* var43 /* : String */;
55 char* var44 /* : NativeString */;
56 val* var45 /* : FlatString */;
57 static val* varonce46;
58 val* var47 /* : String */;
59 char* var48 /* : NativeString */;
60 val* var49 /* : FlatString */;
61 val* var50 /* : String */;
62 short int var51 /* : Bool */;
63 short int var_maybe_null /* var maybe_null: Bool */;
64 static val* varonce52;
65 val* var53 /* : String */;
66 char* var54 /* : NativeString */;
67 val* var55 /* : FlatString */;
68 val* var_accept_null /* var accept_null: String */;
69 short int var56 /* : Bool */;
70 int cltype;
71 int idtype;
72 val* var57 /* : MType */;
73 val* var59 /* : MType */;
74 static val* varonce60;
75 val* var61 /* : String */;
76 char* var62 /* : NativeString */;
77 val* var63 /* : FlatString */;
78 short int var64 /* : Bool */;
79 int cltype65;
80 int idtype66;
81 val* var67 /* : nullable StaticFrame */;
82 val* var69 /* : nullable StaticFrame */;
83 val* var70 /* : MPropDef */;
84 val* var72 /* : MPropDef */;
85 val* var73 /* : MClassDef */;
86 val* var75 /* : MClassDef */;
87 val* var76 /* : MClassType */;
88 val* var78 /* : MClassType */;
89 val* var79 /* : nullable StaticFrame */;
90 val* var81 /* : nullable StaticFrame */;
91 val* var82 /* : MPropDef */;
92 val* var84 /* : MPropDef */;
93 val* var85 /* : MClassDef */;
94 val* var87 /* : MClassDef */;
95 val* var88 /* : MClassType */;
96 val* var90 /* : MClassType */;
97 val* var91 /* : nullable StaticFrame */;
98 val* var93 /* : nullable StaticFrame */;
99 val* var94 /* : MPropDef */;
100 val* var96 /* : MPropDef */;
101 val* var97 /* : MClassDef */;
102 val* var99 /* : MClassDef */;
103 val* var100 /* : MModule */;
104 val* var102 /* : MModule */;
105 val* var103 /* : MType */;
106 short int var104 /* : Bool */;
107 int cltype105;
108 int idtype106;
109 val* var107 /* : MType */;
110 val* var109 /* : MType */;
111 static val* varonce110;
112 val* var111 /* : String */;
113 char* var112 /* : NativeString */;
114 val* var113 /* : FlatString */;
115 val* var114 /* : MType */;
116 val* var116 /* : MType */;
117 val* var117 /* : nullable StaticFrame */;
118 val* var119 /* : nullable StaticFrame */;
119 val* var120 /* : MPropDef */;
120 val* var122 /* : MPropDef */;
121 val* var123 /* : MClassDef */;
122 val* var125 /* : MClassDef */;
123 val* var126 /* : MModule */;
124 val* var128 /* : MModule */;
125 val* var129 /* : nullable StaticFrame */;
126 val* var131 /* : nullable StaticFrame */;
127 val* var132 /* : MPropDef */;
128 val* var134 /* : MPropDef */;
129 val* var135 /* : MClassDef */;
130 val* var137 /* : MClassDef */;
131 val* var138 /* : MClassType */;
132 val* var140 /* : MClassType */;
133 short int var141 /* : Bool */;
134 val* var143 /* : NativeArray[String] */;
135 static val* varonce142;
136 static val* varonce144;
137 val* var145 /* : String */;
138 char* var146 /* : NativeString */;
139 val* var147 /* : FlatString */;
140 static val* varonce148;
141 val* var149 /* : String */;
142 char* var150 /* : NativeString */;
143 val* var151 /* : FlatString */;
144 static val* varonce152;
145 val* var153 /* : String */;
146 char* var154 /* : NativeString */;
147 val* var155 /* : FlatString */;
148 val* var156 /* : String */;
149 val* var157 /* : String */;
150 val* var158 /* : String */;
151 val* var159 /* : String */;
152 val* var160 /* : AbstractCompiler */;
153 val* var162 /* : AbstractCompiler */;
154 val* var163 /* : ModelBuilder */;
155 val* var165 /* : ModelBuilder */;
156 val* var166 /* : ToolContext */;
157 val* var168 /* : ToolContext */;
158 val* var169 /* : OptionBool */;
159 val* var171 /* : OptionBool */;
160 val* var172 /* : nullable Object */;
161 val* var174 /* : nullable Object */;
162 short int var175 /* : Bool */;
163 val* var176 /* : AbstractCompiler */;
164 val* var178 /* : AbstractCompiler */;
165 val* var179 /* : HashMap[String, Int] */;
166 val* var181 /* : HashMap[String, Int] */;
167 val* var_ /* var : HashMap[String, Int] */;
168 val* var_182 /* var : String */;
169 val* var183 /* : nullable Object */;
170 long var184 /* : Int */;
171 short int var186 /* : Bool */;
172 int cltype187;
173 int idtype188;
174 const char* var_class_name;
175 long var189 /* : Int */;
176 long var190 /* : Int */;
177 val* var191 /* : nullable Object */;
178 val* var193 /* : NativeArray[String] */;
179 static val* varonce192;
180 static val* varonce194;
181 val* var195 /* : String */;
182 char* var196 /* : NativeString */;
183 val* var197 /* : FlatString */;
184 static val* varonce198;
185 val* var199 /* : String */;
186 char* var200 /* : NativeString */;
187 val* var201 /* : FlatString */;
188 val* var202 /* : String */;
189 val* var203 /* : MType */;
190 val* var205 /* : MType */;
191 short int var206 /* : Bool */;
192 short int var207 /* : Bool */;
193 val* var209 /* : NativeArray[String] */;
194 static val* varonce208;
195 static val* varonce210;
196 val* var211 /* : String */;
197 char* var212 /* : NativeString */;
198 val* var213 /* : FlatString */;
199 val* var214 /* : String */;
200 val* var215 /* : String */;
201 val* var_class_ptr /* var class_ptr: nullable Object */;
202 val* var216 /* : MType */;
203 val* var218 /* : MType */;
204 short int var219 /* : Bool */;
205 int cltype220;
206 int idtype221;
207 const char* var_class_name222;
208 val* var223 /* : MClass */;
209 val* var225 /* : MClass */;
210 val* var_mclass /* var mclass: MClass */;
211 val* var227 /* : NativeArray[String] */;
212 static val* varonce226;
213 static val* varonce228;
214 val* var229 /* : String */;
215 char* var230 /* : NativeString */;
216 val* var231 /* : FlatString */;
217 val* var232 /* : String */;
218 val* var233 /* : String */;
219 val* var235 /* : NativeArray[String] */;
220 static val* varonce234;
221 static val* varonce236;
222 val* var237 /* : String */;
223 char* var238 /* : NativeString */;
224 val* var239 /* : FlatString */;
225 static val* varonce240;
226 val* var241 /* : String */;
227 char* var242 /* : NativeString */;
228 val* var243 /* : FlatString */;
229 val* var244 /* : String */;
230 val* var245 /* : String */;
231 short int var246 /* : Bool */;
232 int cltype247;
233 int idtype248;
234 val* var250 /* : NativeArray[String] */;
235 static val* varonce249;
236 static val* varonce251;
237 val* var252 /* : String */;
238 char* var253 /* : NativeString */;
239 val* var254 /* : FlatString */;
240 val* var255 /* : MClass */;
241 val* var257 /* : MClass */;
242 val* var258 /* : String */;
243 val* var259 /* : String */;
244 val* var261 /* : NativeArray[String] */;
245 static val* varonce260;
246 static val* varonce262;
247 val* var263 /* : String */;
248 char* var264 /* : NativeString */;
249 val* var265 /* : FlatString */;
250 static val* varonce266;
251 val* var267 /* : String */;
252 char* var268 /* : NativeString */;
253 val* var269 /* : FlatString */;
254 val* var270 /* : MClass */;
255 val* var272 /* : MClass */;
256 val* var273 /* : String */;
257 val* var274 /* : String */;
258 val* var276 /* : NativeArray[String] */;
259 static val* varonce275;
260 static val* varonce277;
261 val* var278 /* : String */;
262 char* var279 /* : NativeString */;
263 val* var280 /* : FlatString */;
264 static val* varonce281;
265 val* var282 /* : String */;
266 char* var283 /* : NativeString */;
267 val* var284 /* : FlatString */;
268 val* var285 /* : MClass */;
269 val* var287 /* : MClass */;
270 val* var288 /* : String */;
271 val* var289 /* : String */;
272 val* var290 /* : AbstractCompiler */;
273 val* var292 /* : AbstractCompiler */;
274 val* var293 /* : ModelBuilder */;
275 val* var295 /* : ModelBuilder */;
276 val* var296 /* : ToolContext */;
277 val* var298 /* : ToolContext */;
278 val* var299 /* : OptionBool */;
279 val* var301 /* : OptionBool */;
280 val* var302 /* : nullable Object */;
281 val* var304 /* : nullable Object */;
282 short int var305 /* : Bool */;
283 val* var306 /* : AbstractCompiler */;
284 val* var308 /* : AbstractCompiler */;
285 val* var309 /* : HashMap[String, Int] */;
286 val* var311 /* : HashMap[String, Int] */;
287 val* var_312 /* var : HashMap[String, Int] */;
288 val* var_313 /* var : String */;
289 val* var314 /* : nullable Object */;
290 long var315 /* : Int */;
291 short int var317 /* : Bool */;
292 int cltype318;
293 int idtype319;
294 const char* var_class_name320;
295 long var321 /* : Int */;
296 long var322 /* : Int */;
297 val* var323 /* : nullable Object */;
298 val* var325 /* : NativeArray[String] */;
299 static val* varonce324;
300 static val* varonce326;
301 val* var327 /* : String */;
302 char* var328 /* : NativeString */;
303 val* var329 /* : FlatString */;
304 static val* varonce330;
305 val* var331 /* : String */;
306 char* var332 /* : NativeString */;
307 val* var333 /* : FlatString */;
308 val* var334 /* : String */;
309 short int var335 /* : Bool */;
310 int cltype336;
311 int idtype337;
312 val* var338 /* : nullable StaticFrame */;
313 val* var340 /* : nullable StaticFrame */;
314 val* var341 /* : Array[RuntimeVariable] */;
315 val* var343 /* : Array[RuntimeVariable] */;
316 val* var344 /* : nullable Object */;
317 val* var_recv /* var recv: RuntimeVariable */;
318 val* var345 /* : MType */;
319 val* var347 /* : MType */;
320 short int var348 /* : Bool */;
321 short int var349 /* : Bool */;
322 val* var351 /* : NativeArray[String] */;
323 static val* varonce350;
324 static val* varonce352;
325 val* var353 /* : String */;
326 char* var354 /* : NativeString */;
327 val* var355 /* : FlatString */;
328 val* var356 /* : String */;
329 val* var357 /* : String */;
330 val* var_recv_ptr /* var recv_ptr: nullable Object */;
331 val* var358 /* : MType */;
332 val* var360 /* : MType */;
333 short int var361 /* : Bool */;
334 int cltype362;
335 int idtype363;
336 const char* var_class_name364;
337 val* var365 /* : MClass */;
338 val* var367 /* : MClass */;
339 val* var_mclass368 /* var mclass: MClass */;
340 val* var370 /* : NativeArray[String] */;
341 static val* varonce369;
342 static val* varonce371;
343 val* var372 /* : String */;
344 char* var373 /* : NativeString */;
345 val* var374 /* : FlatString */;
346 val* var375 /* : String */;
347 val* var376 /* : String */;
348 val* var378 /* : NativeArray[String] */;
349 static val* varonce377;
350 static val* varonce379;
351 val* var380 /* : String */;
352 char* var381 /* : NativeString */;
353 val* var382 /* : FlatString */;
354 static val* varonce383;
355 val* var384 /* : String */;
356 char* var385 /* : NativeString */;
357 val* var386 /* : FlatString */;
358 val* var387 /* : String */;
359 val* var388 /* : String */;
360 static val* varonce389;
361 val* var390 /* : String */;
362 char* var391 /* : NativeString */;
363 val* var392 /* : FlatString */;
364 val* var393 /* : String */;
365 val* var_entry /* var entry: String */;
366 val* var395 /* : NativeArray[String] */;
367 static val* varonce394;
368 static val* varonce396;
369 val* var397 /* : String */;
370 char* var398 /* : NativeString */;
371 val* var399 /* : FlatString */;
372 static val* varonce400;
373 val* var401 /* : String */;
374 char* var402 /* : NativeString */;
375 val* var403 /* : FlatString */;
376 val* var404 /* : String */;
377 val* var405 /* : MVirtualTypeProp */;
378 val* var407 /* : MVirtualTypeProp */;
379 val* var408 /* : String */;
380 val* var410 /* : NativeArray[String] */;
381 static val* varonce409;
382 static val* varonce411;
383 val* var412 /* : String */;
384 char* var413 /* : NativeString */;
385 val* var414 /* : FlatString */;
386 static val* varonce415;
387 val* var416 /* : String */;
388 char* var417 /* : NativeString */;
389 val* var418 /* : FlatString */;
390 static val* varonce419;
391 val* var420 /* : String */;
392 char* var421 /* : NativeString */;
393 val* var422 /* : FlatString */;
394 val* var423 /* : MVirtualTypeProp */;
395 val* var425 /* : MVirtualTypeProp */;
396 val* var426 /* : String */;
397 val* var427 /* : String */;
398 val* var429 /* : NativeArray[String] */;
399 static val* varonce428;
400 static val* varonce430;
401 val* var431 /* : String */;
402 char* var432 /* : NativeString */;
403 val* var433 /* : FlatString */;
404 static val* varonce434;
405 val* var435 /* : String */;
406 char* var436 /* : NativeString */;
407 val* var437 /* : FlatString */;
408 val* var438 /* : String */;
409 val* var440 /* : NativeArray[String] */;
410 static val* varonce439;
411 static val* varonce441;
412 val* var442 /* : String */;
413 char* var443 /* : NativeString */;
414 val* var444 /* : FlatString */;
415 static val* varonce445;
416 val* var446 /* : String */;
417 char* var447 /* : NativeString */;
418 val* var448 /* : FlatString */;
419 val* var449 /* : String */;
420 short int var450 /* : Bool */;
421 short int var_451 /* var : Bool */;
422 static val* varonce452;
423 val* var453 /* : String */;
424 char* var454 /* : NativeString */;
425 val* var455 /* : FlatString */;
426 short int var456 /* : Bool */;
427 static val* varonce457;
428 val* var458 /* : String */;
429 char* var459 /* : NativeString */;
430 val* var460 /* : FlatString */;
431 val* var461 /* : String */;
432 val* var_is_nullable /* var is_nullable: String */;
433 val* var463 /* : NativeArray[String] */;
434 static val* varonce462;
435 static val* varonce464;
436 val* var465 /* : String */;
437 char* var466 /* : NativeString */;
438 val* var467 /* : FlatString */;
439 static val* varonce468;
440 val* var469 /* : String */;
441 char* var470 /* : NativeString */;
442 val* var471 /* : FlatString */;
443 val* var472 /* : String */;
444 val* var474 /* : NativeArray[String] */;
445 static val* varonce473;
446 static val* varonce475;
447 val* var476 /* : String */;
448 char* var477 /* : NativeString */;
449 val* var478 /* : FlatString */;
450 static val* varonce479;
451 val* var480 /* : String */;
452 char* var481 /* : NativeString */;
453 val* var482 /* : FlatString */;
454 val* var483 /* : String */;
455 val* var484 /* : String */;
456 val* var485 /* : AbstractCompiler */;
457 val* var487 /* : AbstractCompiler */;
458 val* var488 /* : ModelBuilder */;
459 val* var490 /* : ModelBuilder */;
460 val* var491 /* : ToolContext */;
461 val* var493 /* : ToolContext */;
462 val* var494 /* : OptionBool */;
463 val* var496 /* : OptionBool */;
464 val* var497 /* : nullable Object */;
465 val* var499 /* : nullable Object */;
466 short int var500 /* : Bool */;
467 val* var501 /* : AbstractCompiler */;
468 val* var503 /* : AbstractCompiler */;
469 val* var504 /* : HashMap[String, Int] */;
470 val* var506 /* : HashMap[String, Int] */;
471 val* var_507 /* var : HashMap[String, Int] */;
472 val* var_508 /* var : String */;
473 val* var509 /* : nullable Object */;
474 long var510 /* : Int */;
475 short int var512 /* : Bool */;
476 int cltype513;
477 int idtype514;
478 const char* var_class_name515;
479 long var516 /* : Int */;
480 long var517 /* : Int */;
481 val* var518 /* : nullable Object */;
482 val* var520 /* : NativeArray[String] */;
483 static val* varonce519;
484 static val* varonce521;
485 val* var522 /* : String */;
486 char* var523 /* : NativeString */;
487 val* var524 /* : FlatString */;
488 static val* varonce525;
489 val* var526 /* : String */;
490 char* var527 /* : NativeString */;
491 val* var528 /* : FlatString */;
492 val* var529 /* : String */;
493 val* var531 /* : NativeArray[String] */;
494 static val* varonce530;
495 static val* varonce532;
496 val* var533 /* : String */;
497 char* var534 /* : NativeString */;
498 val* var535 /* : FlatString */;
499 static val* varonce536;
500 val* var537 /* : String */;
501 char* var538 /* : NativeString */;
502 val* var539 /* : FlatString */;
503 static val* varonce540;
504 val* var541 /* : String */;
505 char* var542 /* : NativeString */;
506 val* var543 /* : FlatString */;
507 val* var544 /* : String */;
508 val* var545 /* : String */;
509 val* var546 /* : String */;
510 val* var548 /* : NativeArray[String] */;
511 static val* varonce547;
512 static val* varonce549;
513 val* var550 /* : String */;
514 char* var551 /* : NativeString */;
515 val* var552 /* : FlatString */;
516 static val* varonce553;
517 val* var554 /* : String */;
518 char* var555 /* : NativeString */;
519 val* var556 /* : FlatString */;
520 val* var557 /* : String */;
521 val* var558 /* : String */;
522 val* var560 /* : NativeArray[String] */;
523 static val* varonce559;
524 static val* varonce561;
525 val* var562 /* : String */;
526 char* var563 /* : NativeString */;
527 val* var564 /* : FlatString */;
528 static val* varonce565;
529 val* var566 /* : String */;
530 char* var567 /* : NativeString */;
531 val* var568 /* : FlatString */;
532 val* var569 /* : String */;
533 val* var570 /* : String */;
534 static val* varonce571;
535 val* var572 /* : String */;
536 char* var573 /* : NativeString */;
537 val* var574 /* : FlatString */;
538 val* var576 /* : NativeArray[String] */;
539 static val* varonce575;
540 static val* varonce577;
541 val* var578 /* : String */;
542 char* var579 /* : NativeString */;
543 val* var580 /* : FlatString */;
544 static val* varonce581;
545 val* var582 /* : String */;
546 char* var583 /* : NativeString */;
547 val* var584 /* : FlatString */;
548 static val* varonce585;
549 val* var586 /* : String */;
550 char* var587 /* : NativeString */;
551 val* var588 /* : FlatString */;
552 val* var589 /* : String */;
553 val* var591 /* : NativeArray[String] */;
554 static val* varonce590;
555 static val* varonce592;
556 val* var593 /* : String */;
557 char* var594 /* : NativeString */;
558 val* var595 /* : FlatString */;
559 val* var596 /* : String */;
560 val* var597 /* : String */;
561 static val* varonce598;
562 val* var599 /* : String */;
563 char* var600 /* : NativeString */;
564 val* var601 /* : FlatString */;
565 val* var603 /* : NativeArray[String] */;
566 static val* varonce602;
567 static val* varonce604;
568 val* var605 /* : String */;
569 char* var606 /* : NativeString */;
570 val* var607 /* : FlatString */;
571 static val* varonce608;
572 val* var609 /* : String */;
573 char* var610 /* : NativeString */;
574 val* var611 /* : FlatString */;
575 static val* varonce612;
576 val* var613 /* : String */;
577 char* var614 /* : NativeString */;
578 val* var615 /* : FlatString */;
579 static val* varonce616;
580 val* var617 /* : String */;
581 char* var618 /* : NativeString */;
582 val* var619 /* : FlatString */;
583 val* var620 /* : String */;
584 val* var621 /* : String */;
585 static val* varonce622;
586 val* var623 /* : String */;
587 char* var624 /* : NativeString */;
588 val* var625 /* : FlatString */;
589 static val* varonce626;
590 val* var627 /* : String */;
591 char* var628 /* : NativeString */;
592 val* var629 /* : FlatString */;
593 var_value = p0;
594 var_mtype = p1;
595 var_tag = p2;
596 if (unlikely(varonce==NULL)) {
597 var1 = NEW_standard__NativeArray(5l, &type_standard__NativeArray__standard__String);
598 if (likely(varonce2!=NULL)) {
599 var3 = varonce2;
600 } else {
601 var4 = "/* type test for ";
602 var5 = standard___standard__NativeString___to_s_with_length(var4, 17l);
603 var3 = var5;
604 varonce2 = var3;
605 }
606 ((struct instance_standard__NativeArray*)var1)->values[0]=var3;
607 if (likely(varonce6!=NULL)) {
608 var7 = varonce6;
609 } else {
610 var8 = " isa ";
611 var9 = standard___standard__NativeString___to_s_with_length(var8, 5l);
612 var7 = var9;
613 varonce6 = var7;
614 }
615 ((struct instance_standard__NativeArray*)var1)->values[2]=var7;
616 if (likely(varonce10!=NULL)) {
617 var11 = varonce10;
618 } else {
619 var12 = " */";
620 var13 = standard___standard__NativeString___to_s_with_length(var12, 3l);
621 var11 = var13;
622 varonce10 = var11;
623 }
624 ((struct instance_standard__NativeArray*)var1)->values[4]=var11;
625 } else {
626 var1 = varonce;
627 varonce = NULL;
628 }
629 {
630 var14 = nit___nit__RuntimeVariable___standard__string__Object__inspect(var_value);
631 }
632 ((struct instance_standard__NativeArray*)var1)->values[1]=var14;
633 {
634 var15 = ((val*(*)(val* self))(var_mtype->class->vft[COLOR_standard__string__Object__to_s]))(var_mtype); /* to_s on <var_mtype:MType>*/
635 }
636 ((struct instance_standard__NativeArray*)var1)->values[3]=var15;
637 {
638 var16 = ((val*(*)(val* self))(var1->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var1); /* native_to_s on <var1:NativeArray[String]>*/
639 }
640 varonce = var1;
641 {
642 nit___nit__AbstractCompilerVisitor___add(self, var16); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <self:SeparateErasureCompilerVisitor>*/
643 }
644 {
645 var17 = nit___nit__AbstractCompilerVisitor___bool_type(self);
646 }
647 {
648 var18 = nit___nit__AbstractCompilerVisitor___new_var(self, var17);
649 }
650 var_res = var18;
651 if (likely(varonce19!=NULL)) {
652 var20 = varonce19;
653 } else {
654 var21 = "cltype";
655 var22 = standard___standard__NativeString___to_s_with_length(var21, 6l);
656 var20 = var22;
657 varonce19 = var20;
658 }
659 {
660 var23 = nit___nit__AbstractCompilerVisitor___get_name(self, var20);
661 }
662 var_cltype = var23;
663 if (unlikely(varonce24==NULL)) {
664 var25 = NEW_standard__NativeArray(3l, &type_standard__NativeArray__standard__String);
665 if (likely(varonce26!=NULL)) {
666 var27 = varonce26;
667 } else {
668 var28 = "int ";
669 var29 = standard___standard__NativeString___to_s_with_length(var28, 4l);
670 var27 = var29;
671 varonce26 = var27;
672 }
673 ((struct instance_standard__NativeArray*)var25)->values[0]=var27;
674 if (likely(varonce30!=NULL)) {
675 var31 = varonce30;
676 } else {
677 var32 = ";";
678 var33 = standard___standard__NativeString___to_s_with_length(var32, 1l);
679 var31 = var33;
680 varonce30 = var31;
681 }
682 ((struct instance_standard__NativeArray*)var25)->values[2]=var31;
683 } else {
684 var25 = varonce24;
685 varonce24 = NULL;
686 }
687 ((struct instance_standard__NativeArray*)var25)->values[1]=var_cltype;
688 {
689 var34 = ((val*(*)(val* self))(var25->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var25); /* native_to_s on <var25:NativeArray[String]>*/
690 }
691 varonce24 = var25;
692 {
693 nit___nit__AbstractCompilerVisitor___add_decl(self, var34); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <self:SeparateErasureCompilerVisitor>*/
694 }
695 if (likely(varonce35!=NULL)) {
696 var36 = varonce35;
697 } else {
698 var37 = "idtype";
699 var38 = standard___standard__NativeString___to_s_with_length(var37, 6l);
700 var36 = var38;
701 varonce35 = var36;
702 }
703 {
704 var39 = nit___nit__AbstractCompilerVisitor___get_name(self, var36);
705 }
706 var_idtype = var39;
707 if (unlikely(varonce40==NULL)) {
708 var41 = NEW_standard__NativeArray(3l, &type_standard__NativeArray__standard__String);
709 if (likely(varonce42!=NULL)) {
710 var43 = varonce42;
711 } else {
712 var44 = "int ";
713 var45 = standard___standard__NativeString___to_s_with_length(var44, 4l);
714 var43 = var45;
715 varonce42 = var43;
716 }
717 ((struct instance_standard__NativeArray*)var41)->values[0]=var43;
718 if (likely(varonce46!=NULL)) {
719 var47 = varonce46;
720 } else {
721 var48 = ";";
722 var49 = standard___standard__NativeString___to_s_with_length(var48, 1l);
723 var47 = var49;
724 varonce46 = var47;
725 }
726 ((struct instance_standard__NativeArray*)var41)->values[2]=var47;
727 } else {
728 var41 = varonce40;
729 varonce40 = NULL;
730 }
731 ((struct instance_standard__NativeArray*)var41)->values[1]=var_idtype;
732 {
733 var50 = ((val*(*)(val* self))(var41->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var41); /* native_to_s on <var41:NativeArray[String]>*/
734 }
735 varonce40 = var41;
736 {
737 nit___nit__AbstractCompilerVisitor___add_decl(self, var50); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <self:SeparateErasureCompilerVisitor>*/
738 }
739 {
740 var51 = nit___nit__SeparateCompilerVisitor___maybe_null(self, var_value);
741 }
742 var_maybe_null = var51;
743 if (likely(varonce52!=NULL)) {
744 var53 = varonce52;
745 } else {
746 var54 = "0";
747 var55 = standard___standard__NativeString___to_s_with_length(var54, 1l);
748 var53 = var55;
749 varonce52 = var53;
750 }
751 var_accept_null = var53;
752 /* <var_mtype:MType> isa MNullableType */
753 cltype = type_nit__MNullableType.color;
754 idtype = type_nit__MNullableType.id;
755 if(cltype >= var_mtype->type->table_size) {
756 var56 = 0;
757 } else {
758 var56 = var_mtype->type->type_table[cltype] == idtype;
759 }
760 if (var56){
761 {
762 { /* Inline model#MProxyType#mtype (var_mtype) on <var_mtype:MType(MNullableType)> */
763 var59 = var_mtype->attrs[COLOR_nit__model__MProxyType___mtype].val; /* _mtype on <var_mtype:MType(MNullableType)> */
764 if (unlikely(var59 == NULL)) {
765 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
766 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1598);
767 fatal_exit(1);
768 }
769 var57 = var59;
770 RET_LABEL58:(void)0;
771 }
772 }
773 var_mtype = var57;
774 if (likely(varonce60!=NULL)) {
775 var61 = varonce60;
776 } else {
777 var62 = "1";
778 var63 = standard___standard__NativeString___to_s_with_length(var62, 1l);
779 var61 = var63;
780 varonce60 = var61;
781 }
782 var_accept_null = var61;
783 } else {
784 }
785 /* <var_mtype:MType> isa MParameterType */
786 cltype65 = type_nit__MParameterType.color;
787 idtype66 = type_nit__MParameterType.id;
788 if(cltype65 >= var_mtype->type->table_size) {
789 var64 = 0;
790 } else {
791 var64 = var_mtype->type->type_table[cltype65] == idtype66;
792 }
793 if (var64){
794 {
795 { /* Inline abstract_compiler#AbstractCompilerVisitor#frame (self) on <self:SeparateErasureCompilerVisitor> */
796 var69 = self->attrs[COLOR_nit__abstract_compiler__AbstractCompilerVisitor___frame].val; /* _frame on <self:SeparateErasureCompilerVisitor> */
797 var67 = var69;
798 RET_LABEL68:(void)0;
799 }
800 }
801 if (var67 == NULL) {
802 PRINT_ERROR("Runtime error: %s", "Receiver is null");
803 PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_erasure_compiler, 521);
804 fatal_exit(1);
805 } else {
806 { /* Inline abstract_compiler#StaticFrame#mpropdef (var67) on <var67:nullable StaticFrame> */
807 if (unlikely(var67 == NULL)) {
808 PRINT_ERROR("Runtime error: %s", "Receiver is null");
809 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1828);
810 fatal_exit(1);
811 }
812 var72 = var67->attrs[COLOR_nit__abstract_compiler__StaticFrame___mpropdef].val; /* _mpropdef on <var67:nullable StaticFrame> */
813 if (unlikely(var72 == NULL)) {
814 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mpropdef");
815 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1828);
816 fatal_exit(1);
817 }
818 var70 = var72;
819 RET_LABEL71:(void)0;
820 }
821 }
822 {
823 { /* Inline model#MPropDef#mclassdef (var70) on <var70:MPropDef> */
824 var75 = var70->attrs[COLOR_nit__model__MPropDef___mclassdef].val; /* _mclassdef on <var70:MPropDef> */
825 if (unlikely(var75 == NULL)) {
826 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdef");
827 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 2209);
828 fatal_exit(1);
829 }
830 var73 = var75;
831 RET_LABEL74:(void)0;
832 }
833 }
834 {
835 { /* Inline model#MClassDef#bound_mtype (var73) on <var73:MClassDef> */
836 var78 = var73->attrs[COLOR_nit__model__MClassDef___bound_mtype].val; /* _bound_mtype on <var73:MClassDef> */
837 if (unlikely(var78 == NULL)) {
838 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _bound_mtype");
839 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 556);
840 fatal_exit(1);
841 }
842 var76 = var78;
843 RET_LABEL77:(void)0;
844 }
845 }
846 {
847 { /* Inline abstract_compiler#AbstractCompilerVisitor#frame (self) on <self:SeparateErasureCompilerVisitor> */
848 var81 = self->attrs[COLOR_nit__abstract_compiler__AbstractCompilerVisitor___frame].val; /* _frame on <self:SeparateErasureCompilerVisitor> */
849 var79 = var81;
850 RET_LABEL80:(void)0;
851 }
852 }
853 if (var79 == NULL) {
854 PRINT_ERROR("Runtime error: %s", "Receiver is null");
855 PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_erasure_compiler, 521);
856 fatal_exit(1);
857 } else {
858 { /* Inline abstract_compiler#StaticFrame#mpropdef (var79) on <var79:nullable StaticFrame> */
859 if (unlikely(var79 == NULL)) {
860 PRINT_ERROR("Runtime error: %s", "Receiver is null");
861 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1828);
862 fatal_exit(1);
863 }
864 var84 = var79->attrs[COLOR_nit__abstract_compiler__StaticFrame___mpropdef].val; /* _mpropdef on <var79:nullable StaticFrame> */
865 if (unlikely(var84 == NULL)) {
866 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mpropdef");
867 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1828);
868 fatal_exit(1);
869 }
870 var82 = var84;
871 RET_LABEL83:(void)0;
872 }
873 }
874 {
875 { /* Inline model#MPropDef#mclassdef (var82) on <var82:MPropDef> */
876 var87 = var82->attrs[COLOR_nit__model__MPropDef___mclassdef].val; /* _mclassdef on <var82:MPropDef> */
877 if (unlikely(var87 == NULL)) {
878 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdef");
879 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 2209);
880 fatal_exit(1);
881 }
882 var85 = var87;
883 RET_LABEL86:(void)0;
884 }
885 }
886 {
887 { /* Inline model#MClassDef#bound_mtype (var85) on <var85:MClassDef> */
888 var90 = var85->attrs[COLOR_nit__model__MClassDef___bound_mtype].val; /* _bound_mtype on <var85:MClassDef> */
889 if (unlikely(var90 == NULL)) {
890 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _bound_mtype");
891 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 556);
892 fatal_exit(1);
893 }
894 var88 = var90;
895 RET_LABEL89:(void)0;
896 }
897 }
898 {
899 { /* Inline abstract_compiler#AbstractCompilerVisitor#frame (self) on <self:SeparateErasureCompilerVisitor> */
900 var93 = self->attrs[COLOR_nit__abstract_compiler__AbstractCompilerVisitor___frame].val; /* _frame on <self:SeparateErasureCompilerVisitor> */
901 var91 = var93;
902 RET_LABEL92:(void)0;
903 }
904 }
905 if (var91 == NULL) {
906 PRINT_ERROR("Runtime error: %s", "Receiver is null");
907 PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_erasure_compiler, 521);
908 fatal_exit(1);
909 } else {
910 { /* Inline abstract_compiler#StaticFrame#mpropdef (var91) on <var91:nullable StaticFrame> */
911 if (unlikely(var91 == NULL)) {
912 PRINT_ERROR("Runtime error: %s", "Receiver is null");
913 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1828);
914 fatal_exit(1);
915 }
916 var96 = var91->attrs[COLOR_nit__abstract_compiler__StaticFrame___mpropdef].val; /* _mpropdef on <var91:nullable StaticFrame> */
917 if (unlikely(var96 == NULL)) {
918 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mpropdef");
919 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1828);
920 fatal_exit(1);
921 }
922 var94 = var96;
923 RET_LABEL95:(void)0;
924 }
925 }
926 {
927 { /* Inline model#MPropDef#mclassdef (var94) on <var94:MPropDef> */
928 var99 = var94->attrs[COLOR_nit__model__MPropDef___mclassdef].val; /* _mclassdef on <var94:MPropDef> */
929 if (unlikely(var99 == NULL)) {
930 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdef");
931 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 2209);
932 fatal_exit(1);
933 }
934 var97 = var99;
935 RET_LABEL98:(void)0;
936 }
937 }
938 {
939 { /* Inline model#MClassDef#mmodule (var97) on <var97:MClassDef> */
940 var102 = var97->attrs[COLOR_nit__model__MClassDef___mmodule].val; /* _mmodule on <var97:MClassDef> */
941 if (unlikely(var102 == NULL)) {
942 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule");
943 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 550);
944 fatal_exit(1);
945 }
946 var100 = var102;
947 RET_LABEL101:(void)0;
948 }
949 }
950 {
951 var103 = nit___nit__MParameterType___MType__resolve_for(var_mtype, var76, var88, var100, 0);
952 }
953 var_mtype = var103;
954 /* <var_mtype:MType> isa MNullableType */
955 cltype105 = type_nit__MNullableType.color;
956 idtype106 = type_nit__MNullableType.id;
957 if(cltype105 >= var_mtype->type->table_size) {
958 var104 = 0;
959 } else {
960 var104 = var_mtype->type->type_table[cltype105] == idtype106;
961 }
962 if (var104){
963 {
964 { /* Inline model#MProxyType#mtype (var_mtype) on <var_mtype:MType(MNullableType)> */
965 var109 = var_mtype->attrs[COLOR_nit__model__MProxyType___mtype].val; /* _mtype on <var_mtype:MType(MNullableType)> */
966 if (unlikely(var109 == NULL)) {
967 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
968 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1598);
969 fatal_exit(1);
970 }
971 var107 = var109;
972 RET_LABEL108:(void)0;
973 }
974 }
975 var_mtype = var107;
976 if (likely(varonce110!=NULL)) {
977 var111 = varonce110;
978 } else {
979 var112 = "1";
980 var113 = standard___standard__NativeString___to_s_with_length(var112, 1l);
981 var111 = var113;
982 varonce110 = var111;
983 }
984 var_accept_null = var111;
985 } else {
986 }
987 } else {
988 }
989 {
990 { /* Inline abstract_compiler#RuntimeVariable#mcasttype (var_value) on <var_value:RuntimeVariable> */
991 var116 = var_value->attrs[COLOR_nit__abstract_compiler__RuntimeVariable___mcasttype].val; /* _mcasttype on <var_value:RuntimeVariable> */
992 if (unlikely(var116 == NULL)) {
993 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mcasttype");
994 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1787);
995 fatal_exit(1);
996 }
997 var114 = var116;
998 RET_LABEL115:(void)0;
999 }
1000 }
1001 {
1002 { /* Inline abstract_compiler#AbstractCompilerVisitor#frame (self) on <self:SeparateErasureCompilerVisitor> */
1003 var119 = self->attrs[COLOR_nit__abstract_compiler__AbstractCompilerVisitor___frame].val; /* _frame on <self:SeparateErasureCompilerVisitor> */
1004 var117 = var119;
1005 RET_LABEL118:(void)0;
1006 }
1007 }
1008 if (var117 == NULL) {
1009 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1010 PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_erasure_compiler, 528);
1011 fatal_exit(1);
1012 } else {
1013 { /* Inline abstract_compiler#StaticFrame#mpropdef (var117) on <var117:nullable StaticFrame> */
1014 if (unlikely(var117 == NULL)) {
1015 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1016 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1828);
1017 fatal_exit(1);
1018 }
1019 var122 = var117->attrs[COLOR_nit__abstract_compiler__StaticFrame___mpropdef].val; /* _mpropdef on <var117:nullable StaticFrame> */
1020 if (unlikely(var122 == NULL)) {
1021 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mpropdef");
1022 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1828);
1023 fatal_exit(1);
1024 }
1025 var120 = var122;
1026 RET_LABEL121:(void)0;
1027 }
1028 }
1029 {
1030 { /* Inline model#MPropDef#mclassdef (var120) on <var120:MPropDef> */
1031 var125 = var120->attrs[COLOR_nit__model__MPropDef___mclassdef].val; /* _mclassdef on <var120:MPropDef> */
1032 if (unlikely(var125 == NULL)) {
1033 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdef");
1034 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 2209);
1035 fatal_exit(1);
1036 }
1037 var123 = var125;
1038 RET_LABEL124:(void)0;
1039 }
1040 }
1041 {
1042 { /* Inline model#MClassDef#mmodule (var123) on <var123:MClassDef> */
1043 var128 = var123->attrs[COLOR_nit__model__MClassDef___mmodule].val; /* _mmodule on <var123:MClassDef> */
1044 if (unlikely(var128 == NULL)) {
1045 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule");
1046 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 550);
1047 fatal_exit(1);
1048 }
1049 var126 = var128;
1050 RET_LABEL127:(void)0;
1051 }
1052 }
1053 {
1054 { /* Inline abstract_compiler#AbstractCompilerVisitor#frame (self) on <self:SeparateErasureCompilerVisitor> */
1055 var131 = self->attrs[COLOR_nit__abstract_compiler__AbstractCompilerVisitor___frame].val; /* _frame on <self:SeparateErasureCompilerVisitor> */
1056 var129 = var131;
1057 RET_LABEL130:(void)0;
1058 }
1059 }
1060 if (var129 == NULL) {
1061 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1062 PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_erasure_compiler, 528);
1063 fatal_exit(1);
1064 } else {
1065 { /* Inline abstract_compiler#StaticFrame#mpropdef (var129) on <var129:nullable StaticFrame> */
1066 if (unlikely(var129 == NULL)) {
1067 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1068 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1828);
1069 fatal_exit(1);
1070 }
1071 var134 = var129->attrs[COLOR_nit__abstract_compiler__StaticFrame___mpropdef].val; /* _mpropdef on <var129:nullable StaticFrame> */
1072 if (unlikely(var134 == NULL)) {
1073 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mpropdef");
1074 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1828);
1075 fatal_exit(1);
1076 }
1077 var132 = var134;
1078 RET_LABEL133:(void)0;
1079 }
1080 }
1081 {
1082 { /* Inline model#MPropDef#mclassdef (var132) on <var132:MPropDef> */
1083 var137 = var132->attrs[COLOR_nit__model__MPropDef___mclassdef].val; /* _mclassdef on <var132:MPropDef> */
1084 if (unlikely(var137 == NULL)) {
1085 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdef");
1086 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 2209);
1087 fatal_exit(1);
1088 }
1089 var135 = var137;
1090 RET_LABEL136:(void)0;
1091 }
1092 }
1093 {
1094 { /* Inline model#MClassDef#bound_mtype (var135) on <var135:MClassDef> */
1095 var140 = var135->attrs[COLOR_nit__model__MClassDef___bound_mtype].val; /* _bound_mtype on <var135:MClassDef> */
1096 if (unlikely(var140 == NULL)) {
1097 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _bound_mtype");
1098 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 556);
1099 fatal_exit(1);
1100 }
1101 var138 = var140;
1102 RET_LABEL139:(void)0;
1103 }
1104 }
1105 {
1106 var141 = nit___nit__MType___is_subtype(var114, var126, var138, var_mtype);
1107 }
1108 if (var141){
1109 if (unlikely(varonce142==NULL)) {
1110 var143 = NEW_standard__NativeArray(6l, &type_standard__NativeArray__standard__String);
1111 if (likely(varonce144!=NULL)) {
1112 var145 = varonce144;
1113 } else {
1114 var146 = " = 1; /* easy ";
1115 var147 = standard___standard__NativeString___to_s_with_length(var146, 14l);
1116 var145 = var147;
1117 varonce144 = var145;
1118 }
1119 ((struct instance_standard__NativeArray*)var143)->values[1]=var145;
1120 if (likely(varonce148!=NULL)) {
1121 var149 = varonce148;
1122 } else {
1123 var150 = " isa ";
1124 var151 = standard___standard__NativeString___to_s_with_length(var150, 5l);
1125 var149 = var151;
1126 varonce148 = var149;
1127 }
1128 ((struct instance_standard__NativeArray*)var143)->values[3]=var149;
1129 if (likely(varonce152!=NULL)) {
1130 var153 = varonce152;
1131 } else {
1132 var154 = "*/";
1133 var155 = standard___standard__NativeString___to_s_with_length(var154, 2l);
1134 var153 = var155;
1135 varonce152 = var153;
1136 }
1137 ((struct instance_standard__NativeArray*)var143)->values[5]=var153;
1138 } else {
1139 var143 = varonce142;
1140 varonce142 = NULL;
1141 }
1142 {
1143 var156 = ((val*(*)(val* self))(var_res->class->vft[COLOR_standard__string__Object__to_s]))(var_res); /* to_s on <var_res:RuntimeVariable>*/
1144 }
1145 ((struct instance_standard__NativeArray*)var143)->values[0]=var156;
1146 {
1147 var157 = nit___nit__RuntimeVariable___standard__string__Object__inspect(var_value);
1148 }
1149 ((struct instance_standard__NativeArray*)var143)->values[2]=var157;
1150 {
1151 var158 = ((val*(*)(val* self))(var_mtype->class->vft[COLOR_standard__string__Object__to_s]))(var_mtype); /* to_s on <var_mtype:MType>*/
1152 }
1153 ((struct instance_standard__NativeArray*)var143)->values[4]=var158;
1154 {
1155 var159 = ((val*(*)(val* self))(var143->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var143); /* native_to_s on <var143:NativeArray[String]>*/
1156 }
1157 varonce142 = var143;
1158 {
1159 nit___nit__AbstractCompilerVisitor___add(self, var159); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <self:SeparateErasureCompilerVisitor>*/
1160 }
1161 {
1162 { /* Inline abstract_compiler#AbstractCompilerVisitor#compiler (self) on <self:SeparateErasureCompilerVisitor> */
1163 var162 = self->attrs[COLOR_nit__abstract_compiler__AbstractCompilerVisitor___compiler].val; /* _compiler on <self:SeparateErasureCompilerVisitor> */
1164 if (unlikely(var162 == NULL)) {
1165 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _compiler");
1166 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1102);
1167 fatal_exit(1);
1168 }
1169 var160 = var162;
1170 RET_LABEL161:(void)0;
1171 }
1172 }
1173 {
1174 { /* Inline abstract_compiler#AbstractCompiler#modelbuilder (var160) on <var160:AbstractCompiler(SeparateCompiler)> */
1175 var165 = var160->attrs[COLOR_nit__abstract_compiler__AbstractCompiler___modelbuilder].val; /* _modelbuilder on <var160:AbstractCompiler(SeparateCompiler)> */
1176 if (unlikely(var165 == NULL)) {
1177 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
1178 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 522);
1179 fatal_exit(1);
1180 }
1181 var163 = var165;
1182 RET_LABEL164:(void)0;
1183 }
1184 }
1185 {
1186 { /* Inline modelbuilder_base#ModelBuilder#toolcontext (var163) on <var163:ModelBuilder> */
1187 var168 = var163->attrs[COLOR_nit__modelbuilder_base__ModelBuilder___toolcontext].val; /* _toolcontext on <var163:ModelBuilder> */
1188 if (unlikely(var168 == NULL)) {
1189 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
1190 PRINT_ERROR(" (%s:%d)\n", FILE_nit__modelbuilder_base, 47);
1191 fatal_exit(1);
1192 }
1193 var166 = var168;
1194 RET_LABEL167:(void)0;
1195 }
1196 }
1197 {
1198 { /* Inline abstract_compiler#ToolContext#opt_typing_test_metrics (var166) on <var166:ToolContext> */
1199 var171 = var166->attrs[COLOR_nit__abstract_compiler__ToolContext___opt_typing_test_metrics].val; /* _opt_typing_test_metrics on <var166:ToolContext> */
1200 if (unlikely(var171 == NULL)) {
1201 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_typing_test_metrics");
1202 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 60);
1203 fatal_exit(1);
1204 }
1205 var169 = var171;
1206 RET_LABEL170:(void)0;
1207 }
1208 }
1209 {
1210 { /* Inline opts#Option#value (var169) on <var169:OptionBool> */
1211 var174 = var169->attrs[COLOR_opts__Option___value].val; /* _value on <var169:OptionBool> */
1212 var172 = var174;
1213 RET_LABEL173:(void)0;
1214 }
1215 }
1216 var175 = (short int)((long)(var172)>>2);
1217 if (var175){
1218 {
1219 { /* Inline abstract_compiler#AbstractCompilerVisitor#compiler (self) on <self:SeparateErasureCompilerVisitor> */
1220 var178 = self->attrs[COLOR_nit__abstract_compiler__AbstractCompilerVisitor___compiler].val; /* _compiler on <self:SeparateErasureCompilerVisitor> */
1221 if (unlikely(var178 == NULL)) {
1222 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _compiler");
1223 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1102);
1224 fatal_exit(1);
1225 }
1226 var176 = var178;
1227 RET_LABEL177:(void)0;
1228 }
1229 }
1230 {
1231 { /* Inline abstract_compiler#AbstractCompiler#count_type_test_skipped (var176) on <var176:AbstractCompiler(SeparateCompiler)> */
1232 var181 = var176->attrs[COLOR_nit__abstract_compiler__AbstractCompiler___count_type_test_skipped].val; /* _count_type_test_skipped on <var176:AbstractCompiler(SeparateCompiler)> */
1233 if (unlikely(var181 == NULL)) {
1234 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _count_type_test_skipped");
1235 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1017);
1236 fatal_exit(1);
1237 }
1238 var179 = var181;
1239 RET_LABEL180:(void)0;
1240 }
1241 }
1242 var_ = var179;
1243 var_182 = var_tag;
1244 {
1245 var183 = standard___standard__HashMap___standard__abstract_collection__MapRead___91d_93d(var_, var_182);
1246 }
1247 {
1248 { /* Inline kernel#Int#+ (var183,1l) on <var183:nullable Object(Int)> */
1249 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
1250 /* <1l:Int> isa OTHER */
1251 var186 = 1; /* easy <1l:Int> isa OTHER*/
1252 if (unlikely(!var186)) {
1253 var_class_name = type_standard__Int.name;
1254 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
1255 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 537);
1256 fatal_exit(1);
1257 }
1258 var189 = (long)(var183)>>2;
1259 var190 = var189 + 1l;
1260 var184 = var190;
1261 goto RET_LABEL185;
1262 RET_LABEL185:(void)0;
1263 }
1264 }
1265 {
1266 var191 = (val*)(var184<<2|1);
1267 standard___standard__HashMap___standard__abstract_collection__Map___91d_93d_61d(var_, var_182, var191); /* Direct call hash_collection#HashMap#[]= on <var_:HashMap[String, Int]>*/
1268 }
1269 if (unlikely(varonce192==NULL)) {
1270 var193 = NEW_standard__NativeArray(3l, &type_standard__NativeArray__standard__String);
1271 if (likely(varonce194!=NULL)) {
1272 var195 = varonce194;
1273 } else {
1274 var196 = "count_type_test_skipped_";
1275 var197 = standard___standard__NativeString___to_s_with_length(var196, 24l);
1276 var195 = var197;
1277 varonce194 = var195;
1278 }
1279 ((struct instance_standard__NativeArray*)var193)->values[0]=var195;
1280 if (likely(varonce198!=NULL)) {
1281 var199 = varonce198;
1282 } else {
1283 var200 = "++;";
1284 var201 = standard___standard__NativeString___to_s_with_length(var200, 3l);
1285 var199 = var201;
1286 varonce198 = var199;
1287 }
1288 ((struct instance_standard__NativeArray*)var193)->values[2]=var199;
1289 } else {
1290 var193 = varonce192;
1291 varonce192 = NULL;
1292 }
1293 ((struct instance_standard__NativeArray*)var193)->values[1]=var_tag;
1294 {
1295 var202 = ((val*(*)(val* self))(var193->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var193); /* native_to_s on <var193:NativeArray[String]>*/
1296 }
1297 varonce192 = var193;
1298 {
1299 nit___nit__AbstractCompilerVisitor___add(self, var202); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <self:SeparateErasureCompilerVisitor>*/
1300 }
1301 } else {
1302 }
1303 var = var_res;
1304 goto RET_LABEL;
1305 } else {
1306 }
1307 {
1308 { /* Inline abstract_compiler#RuntimeVariable#mtype (var_value) on <var_value:RuntimeVariable> */
1309 var205 = var_value->attrs[COLOR_nit__abstract_compiler__RuntimeVariable___mtype].val; /* _mtype on <var_value:RuntimeVariable> */
1310 if (unlikely(var205 == NULL)) {
1311 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
1312 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1784);
1313 fatal_exit(1);
1314 }
1315 var203 = var205;
1316 RET_LABEL204:(void)0;
1317 }
1318 }
1319 {
1320 var206 = ((short int(*)(val* self))(var203->class->vft[COLOR_nit__abstract_compiler__MType__is_c_primitive]))(var203); /* is_c_primitive on <var203:MType>*/
1321 }
1322 var207 = !var206;
1323 if (var207){
1324 if (unlikely(varonce208==NULL)) {
1325 var209 = NEW_standard__NativeArray(2l, &type_standard__NativeArray__standard__String);
1326 if (likely(varonce210!=NULL)) {
1327 var211 = varonce210;
1328 } else {
1329 var212 = "->class->";
1330 var213 = standard___standard__NativeString___to_s_with_length(var212, 9l);
1331 var211 = var213;
1332 varonce210 = var211;
1333 }
1334 ((struct instance_standard__NativeArray*)var209)->values[1]=var211;
1335 } else {
1336 var209 = varonce208;
1337 varonce208 = NULL;
1338 }
1339 {
1340 var214 = ((val*(*)(val* self))(var_value->class->vft[COLOR_standard__string__Object__to_s]))(var_value); /* to_s on <var_value:RuntimeVariable>*/
1341 }
1342 ((struct instance_standard__NativeArray*)var209)->values[0]=var214;
1343 {
1344 var215 = ((val*(*)(val* self))(var209->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var209); /* native_to_s on <var209:NativeArray[String]>*/
1345 }
1346 varonce208 = var209;
1347 var_class_ptr = var215;
1348 } else {
1349 {
1350 { /* Inline abstract_compiler#RuntimeVariable#mtype (var_value) on <var_value:RuntimeVariable> */
1351 var218 = var_value->attrs[COLOR_nit__abstract_compiler__RuntimeVariable___mtype].val; /* _mtype on <var_value:RuntimeVariable> */
1352 if (unlikely(var218 == NULL)) {
1353 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
1354 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1784);
1355 fatal_exit(1);
1356 }
1357 var216 = var218;
1358 RET_LABEL217:(void)0;
1359 }
1360 }
1361 /* <var216:MType> isa MClassType */
1362 cltype220 = type_nit__MClassType.color;
1363 idtype221 = type_nit__MClassType.id;
1364 if(cltype220 >= var216->type->table_size) {
1365 var219 = 0;
1366 } else {
1367 var219 = var216->type->type_table[cltype220] == idtype221;
1368 }
1369 if (unlikely(!var219)) {
1370 var_class_name222 = var216 == NULL ? "null" : var216->type->name;
1371 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "MClassType", var_class_name222);
1372 PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_erasure_compiler, 541);
1373 fatal_exit(1);
1374 }
1375 {
1376 { /* Inline model#MClassType#mclass (var216) on <var216:MType(MClassType)> */
1377 var225 = var216->attrs[COLOR_nit__model__MClassType___mclass].val; /* _mclass on <var216:MType(MClassType)> */
1378 if (unlikely(var225 == NULL)) {
1379 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
1380 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1138);
1381 fatal_exit(1);
1382 }
1383 var223 = var225;
1384 RET_LABEL224:(void)0;
1385 }
1386 }
1387 var_mclass = var223;
1388 if (unlikely(varonce226==NULL)) {
1389 var227 = NEW_standard__NativeArray(2l, &type_standard__NativeArray__standard__String);
1390 if (likely(varonce228!=NULL)) {
1391 var229 = varonce228;
1392 } else {
1393 var230 = "class_";
1394 var231 = standard___standard__NativeString___to_s_with_length(var230, 6l);
1395 var229 = var231;
1396 varonce228 = var229;
1397 }
1398 ((struct instance_standard__NativeArray*)var227)->values[0]=var229;
1399 } else {
1400 var227 = varonce226;
1401 varonce226 = NULL;
1402 }
1403 {
1404 var232 = nit___nit__MClass___nit__model_base__MEntity__c_name(var_mclass);
1405 }
1406 ((struct instance_standard__NativeArray*)var227)->values[1]=var232;
1407 {
1408 var233 = ((val*(*)(val* self))(var227->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var227); /* native_to_s on <var227:NativeArray[String]>*/
1409 }
1410 varonce226 = var227;
1411 {
1412 nit___nit__AbstractCompilerVisitor___require_declaration(self, var233); /* Direct call abstract_compiler#AbstractCompilerVisitor#require_declaration on <self:SeparateErasureCompilerVisitor>*/
1413 }
1414 if (unlikely(varonce234==NULL)) {
1415 var235 = NEW_standard__NativeArray(3l, &type_standard__NativeArray__standard__String);
1416 if (likely(varonce236!=NULL)) {
1417 var237 = varonce236;
1418 } else {
1419 var238 = "class_";
1420 var239 = standard___standard__NativeString___to_s_with_length(var238, 6l);
1421 var237 = var239;
1422 varonce236 = var237;
1423 }
1424 ((struct instance_standard__NativeArray*)var235)->values[0]=var237;
1425 if (likely(varonce240!=NULL)) {
1426 var241 = varonce240;
1427 } else {
1428 var242 = ".";
1429 var243 = standard___standard__NativeString___to_s_with_length(var242, 1l);
1430 var241 = var243;
1431 varonce240 = var241;
1432 }
1433 ((struct instance_standard__NativeArray*)var235)->values[2]=var241;
1434 } else {
1435 var235 = varonce234;
1436 varonce234 = NULL;
1437 }
1438 {
1439 var244 = nit___nit__MClass___nit__model_base__MEntity__c_name(var_mclass);
1440 }
1441 ((struct instance_standard__NativeArray*)var235)->values[1]=var244;
1442 {
1443 var245 = ((val*(*)(val* self))(var235->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var235); /* native_to_s on <var235:NativeArray[String]>*/
1444 }
1445 varonce234 = var235;
1446 var_class_ptr = var245;
1447 }
1448 /* <var_mtype:MType> isa MClassType */
1449 cltype247 = type_nit__MClassType.color;
1450 idtype248 = type_nit__MClassType.id;
1451 if(cltype247 >= var_mtype->type->table_size) {
1452 var246 = 0;
1453 } else {
1454 var246 = var_mtype->type->type_table[cltype247] == idtype248;
1455 }
1456 if (var246){
1457 if (unlikely(varonce249==NULL)) {
1458 var250 = NEW_standard__NativeArray(2l, &type_standard__NativeArray__standard__String);
1459 if (likely(varonce251!=NULL)) {
1460 var252 = varonce251;
1461 } else {
1462 var253 = "class_";
1463 var254 = standard___standard__NativeString___to_s_with_length(var253, 6l);
1464 var252 = var254;
1465 varonce251 = var252;
1466 }
1467 ((struct instance_standard__NativeArray*)var250)->values[0]=var252;
1468 } else {
1469 var250 = varonce249;
1470 varonce249 = NULL;
1471 }
1472 {
1473 { /* Inline model#MClassType#mclass (var_mtype) on <var_mtype:MType(MClassType)> */
1474 var257 = var_mtype->attrs[COLOR_nit__model__MClassType___mclass].val; /* _mclass on <var_mtype:MType(MClassType)> */
1475 if (unlikely(var257 == NULL)) {
1476 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
1477 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1138);
1478 fatal_exit(1);
1479 }
1480 var255 = var257;
1481 RET_LABEL256:(void)0;
1482 }
1483 }
1484 {
1485 var258 = nit___nit__MClass___nit__model_base__MEntity__c_name(var255);
1486 }
1487 ((struct instance_standard__NativeArray*)var250)->values[1]=var258;
1488 {
1489 var259 = ((val*(*)(val* self))(var250->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var250); /* native_to_s on <var250:NativeArray[String]>*/
1490 }
1491 varonce249 = var250;
1492 {
1493 nit___nit__AbstractCompilerVisitor___require_declaration(self, var259); /* Direct call abstract_compiler#AbstractCompilerVisitor#require_declaration on <self:SeparateErasureCompilerVisitor>*/
1494 }
1495 if (unlikely(varonce260==NULL)) {
1496 var261 = NEW_standard__NativeArray(4l, &type_standard__NativeArray__standard__String);
1497 if (likely(varonce262!=NULL)) {
1498 var263 = varonce262;
1499 } else {
1500 var264 = " = class_";
1501 var265 = standard___standard__NativeString___to_s_with_length(var264, 9l);
1502 var263 = var265;
1503 varonce262 = var263;
1504 }
1505 ((struct instance_standard__NativeArray*)var261)->values[1]=var263;
1506 if (likely(varonce266!=NULL)) {
1507 var267 = varonce266;
1508 } else {
1509 var268 = ".color;";
1510 var269 = standard___standard__NativeString___to_s_with_length(var268, 7l);
1511 var267 = var269;
1512 varonce266 = var267;
1513 }
1514 ((struct instance_standard__NativeArray*)var261)->values[3]=var267;
1515 } else {
1516 var261 = varonce260;
1517 varonce260 = NULL;
1518 }
1519 ((struct instance_standard__NativeArray*)var261)->values[0]=var_cltype;
1520 {
1521 { /* Inline model#MClassType#mclass (var_mtype) on <var_mtype:MType(MClassType)> */
1522 var272 = var_mtype->attrs[COLOR_nit__model__MClassType___mclass].val; /* _mclass on <var_mtype:MType(MClassType)> */
1523 if (unlikely(var272 == NULL)) {
1524 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
1525 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1138);
1526 fatal_exit(1);
1527 }
1528 var270 = var272;
1529 RET_LABEL271:(void)0;
1530 }
1531 }
1532 {
1533 var273 = nit___nit__MClass___nit__model_base__MEntity__c_name(var270);
1534 }
1535 ((struct instance_standard__NativeArray*)var261)->values[2]=var273;
1536 {
1537 var274 = ((val*(*)(val* self))(var261->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var261); /* native_to_s on <var261:NativeArray[String]>*/
1538 }
1539 varonce260 = var261;
1540 {
1541 nit___nit__AbstractCompilerVisitor___add(self, var274); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <self:SeparateErasureCompilerVisitor>*/
1542 }
1543 if (unlikely(varonce275==NULL)) {
1544 var276 = NEW_standard__NativeArray(4l, &type_standard__NativeArray__standard__String);
1545 if (likely(varonce277!=NULL)) {
1546 var278 = varonce277;
1547 } else {
1548 var279 = " = class_";
1549 var280 = standard___standard__NativeString___to_s_with_length(var279, 9l);
1550 var278 = var280;
1551 varonce277 = var278;
1552 }
1553 ((struct instance_standard__NativeArray*)var276)->values[1]=var278;
1554 if (likely(varonce281!=NULL)) {
1555 var282 = varonce281;
1556 } else {
1557 var283 = ".id;";
1558 var284 = standard___standard__NativeString___to_s_with_length(var283, 4l);
1559 var282 = var284;
1560 varonce281 = var282;
1561 }
1562 ((struct instance_standard__NativeArray*)var276)->values[3]=var282;
1563 } else {
1564 var276 = varonce275;
1565 varonce275 = NULL;
1566 }
1567 ((struct instance_standard__NativeArray*)var276)->values[0]=var_idtype;
1568 {
1569 { /* Inline model#MClassType#mclass (var_mtype) on <var_mtype:MType(MClassType)> */
1570 var287 = var_mtype->attrs[COLOR_nit__model__MClassType___mclass].val; /* _mclass on <var_mtype:MType(MClassType)> */
1571 if (unlikely(var287 == NULL)) {
1572 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
1573 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1138);
1574 fatal_exit(1);
1575 }
1576 var285 = var287;
1577 RET_LABEL286:(void)0;
1578 }
1579 }
1580 {
1581 var288 = nit___nit__MClass___nit__model_base__MEntity__c_name(var285);
1582 }
1583 ((struct instance_standard__NativeArray*)var276)->values[2]=var288;
1584 {
1585 var289 = ((val*(*)(val* self))(var276->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var276); /* native_to_s on <var276:NativeArray[String]>*/
1586 }
1587 varonce275 = var276;
1588 {
1589 nit___nit__AbstractCompilerVisitor___add(self, var289); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <self:SeparateErasureCompilerVisitor>*/
1590 }
1591 {
1592 { /* Inline abstract_compiler#AbstractCompilerVisitor#compiler (self) on <self:SeparateErasureCompilerVisitor> */
1593 var292 = self->attrs[COLOR_nit__abstract_compiler__AbstractCompilerVisitor___compiler].val; /* _compiler on <self:SeparateErasureCompilerVisitor> */
1594 if (unlikely(var292 == NULL)) {
1595 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _compiler");
1596 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1102);
1597 fatal_exit(1);
1598 }
1599 var290 = var292;
1600 RET_LABEL291:(void)0;
1601 }
1602 }
1603 {
1604 { /* Inline abstract_compiler#AbstractCompiler#modelbuilder (var290) on <var290:AbstractCompiler(SeparateCompiler)> */
1605 var295 = var290->attrs[COLOR_nit__abstract_compiler__AbstractCompiler___modelbuilder].val; /* _modelbuilder on <var290:AbstractCompiler(SeparateCompiler)> */
1606 if (unlikely(var295 == NULL)) {
1607 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
1608 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 522);
1609 fatal_exit(1);
1610 }
1611 var293 = var295;
1612 RET_LABEL294:(void)0;
1613 }
1614 }
1615 {
1616 { /* Inline modelbuilder_base#ModelBuilder#toolcontext (var293) on <var293:ModelBuilder> */
1617 var298 = var293->attrs[COLOR_nit__modelbuilder_base__ModelBuilder___toolcontext].val; /* _toolcontext on <var293:ModelBuilder> */
1618 if (unlikely(var298 == NULL)) {
1619 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
1620 PRINT_ERROR(" (%s:%d)\n", FILE_nit__modelbuilder_base, 47);
1621 fatal_exit(1);
1622 }
1623 var296 = var298;
1624 RET_LABEL297:(void)0;
1625 }
1626 }
1627 {
1628 { /* Inline abstract_compiler#ToolContext#opt_typing_test_metrics (var296) on <var296:ToolContext> */
1629 var301 = var296->attrs[COLOR_nit__abstract_compiler__ToolContext___opt_typing_test_metrics].val; /* _opt_typing_test_metrics on <var296:ToolContext> */
1630 if (unlikely(var301 == NULL)) {
1631 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_typing_test_metrics");
1632 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 60);
1633 fatal_exit(1);
1634 }
1635 var299 = var301;
1636 RET_LABEL300:(void)0;
1637 }
1638 }
1639 {
1640 { /* Inline opts#Option#value (var299) on <var299:OptionBool> */
1641 var304 = var299->attrs[COLOR_opts__Option___value].val; /* _value on <var299:OptionBool> */
1642 var302 = var304;
1643 RET_LABEL303:(void)0;
1644 }
1645 }
1646 var305 = (short int)((long)(var302)>>2);
1647 if (var305){
1648 {
1649 { /* Inline abstract_compiler#AbstractCompilerVisitor#compiler (self) on <self:SeparateErasureCompilerVisitor> */
1650 var308 = self->attrs[COLOR_nit__abstract_compiler__AbstractCompilerVisitor___compiler].val; /* _compiler on <self:SeparateErasureCompilerVisitor> */
1651 if (unlikely(var308 == NULL)) {
1652 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _compiler");
1653 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1102);
1654 fatal_exit(1);
1655 }
1656 var306 = var308;
1657 RET_LABEL307:(void)0;
1658 }
1659 }
1660 {
1661 { /* Inline abstract_compiler#AbstractCompiler#count_type_test_resolved (var306) on <var306:AbstractCompiler(SeparateCompiler)> */
1662 var311 = var306->attrs[COLOR_nit__abstract_compiler__AbstractCompiler___count_type_test_resolved].val; /* _count_type_test_resolved on <var306:AbstractCompiler(SeparateCompiler)> */
1663 if (unlikely(var311 == NULL)) {
1664 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _count_type_test_resolved");
1665 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1015);
1666 fatal_exit(1);
1667 }
1668 var309 = var311;
1669 RET_LABEL310:(void)0;
1670 }
1671 }
1672 var_312 = var309;
1673 var_313 = var_tag;
1674 {
1675 var314 = standard___standard__HashMap___standard__abstract_collection__MapRead___91d_93d(var_312, var_313);
1676 }
1677 {
1678 { /* Inline kernel#Int#+ (var314,1l) on <var314:nullable Object(Int)> */
1679 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
1680 /* <1l:Int> isa OTHER */
1681 var317 = 1; /* easy <1l:Int> isa OTHER*/
1682 if (unlikely(!var317)) {
1683 var_class_name320 = type_standard__Int.name;
1684 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name320);
1685 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 537);
1686 fatal_exit(1);
1687 }
1688 var321 = (long)(var314)>>2;
1689 var322 = var321 + 1l;
1690 var315 = var322;
1691 goto RET_LABEL316;
1692 RET_LABEL316:(void)0;
1693 }
1694 }
1695 {
1696 var323 = (val*)(var315<<2|1);
1697 standard___standard__HashMap___standard__abstract_collection__Map___91d_93d_61d(var_312, var_313, var323); /* Direct call hash_collection#HashMap#[]= on <var_312:HashMap[String, Int]>*/
1698 }
1699 if (unlikely(varonce324==NULL)) {
1700 var325 = NEW_standard__NativeArray(3l, &type_standard__NativeArray__standard__String);
1701 if (likely(varonce326!=NULL)) {
1702 var327 = varonce326;
1703 } else {
1704 var328 = "count_type_test_resolved_";
1705 var329 = standard___standard__NativeString___to_s_with_length(var328, 25l);
1706 var327 = var329;
1707 varonce326 = var327;
1708 }
1709 ((struct instance_standard__NativeArray*)var325)->values[0]=var327;
1710 if (likely(varonce330!=NULL)) {
1711 var331 = varonce330;
1712 } else {
1713 var332 = "++;";
1714 var333 = standard___standard__NativeString___to_s_with_length(var332, 3l);
1715 var331 = var333;
1716 varonce330 = var331;
1717 }
1718 ((struct instance_standard__NativeArray*)var325)->values[2]=var331;
1719 } else {
1720 var325 = varonce324;
1721 varonce324 = NULL;
1722 }
1723 ((struct instance_standard__NativeArray*)var325)->values[1]=var_tag;
1724 {
1725 var334 = ((val*(*)(val* self))(var325->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var325); /* native_to_s on <var325:NativeArray[String]>*/
1726 }
1727 varonce324 = var325;
1728 {
1729 nit___nit__AbstractCompilerVisitor___add(self, var334); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <self:SeparateErasureCompilerVisitor>*/
1730 }
1731 } else {
1732 }
1733 } else {
1734 /* <var_mtype:MType> isa MVirtualType */
1735 cltype336 = type_nit__MVirtualType.color;
1736 idtype337 = type_nit__MVirtualType.id;
1737 if(cltype336 >= var_mtype->type->table_size) {
1738 var335 = 0;
1739 } else {
1740 var335 = var_mtype->type->type_table[cltype336] == idtype337;
1741 }
1742 if (var335){
1743 {
1744 { /* Inline abstract_compiler#AbstractCompilerVisitor#frame (self) on <self:SeparateErasureCompilerVisitor> */
1745 var340 = self->attrs[COLOR_nit__abstract_compiler__AbstractCompilerVisitor___frame].val; /* _frame on <self:SeparateErasureCompilerVisitor> */
1746 var338 = var340;
1747 RET_LABEL339:(void)0;
1748 }
1749 }
1750 if (var338 == NULL) {
1751 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1752 PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_erasure_compiler, 555);
1753 fatal_exit(1);
1754 } else {
1755 { /* Inline abstract_compiler#StaticFrame#arguments (var338) on <var338:nullable StaticFrame> */
1756 if (unlikely(var338 == NULL)) {
1757 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1758 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1835);
1759 fatal_exit(1);
1760 }
1761 var343 = var338->attrs[COLOR_nit__abstract_compiler__StaticFrame___arguments].val; /* _arguments on <var338:nullable StaticFrame> */
1762 if (unlikely(var343 == NULL)) {
1763 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _arguments");
1764 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1835);
1765 fatal_exit(1);
1766 }
1767 var341 = var343;
1768 RET_LABEL342:(void)0;
1769 }
1770 }
1771 {
1772 var344 = standard___standard__SequenceRead___Collection__first(var341);
1773 }
1774 var_recv = var344;
1775 {
1776 { /* Inline abstract_compiler#RuntimeVariable#mtype (var_recv) on <var_recv:RuntimeVariable> */
1777 var347 = var_recv->attrs[COLOR_nit__abstract_compiler__RuntimeVariable___mtype].val; /* _mtype on <var_recv:RuntimeVariable> */
1778 if (unlikely(var347 == NULL)) {
1779 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
1780 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1784);
1781 fatal_exit(1);
1782 }
1783 var345 = var347;
1784 RET_LABEL346:(void)0;
1785 }
1786 }
1787 {
1788 var348 = ((short int(*)(val* self))(var345->class->vft[COLOR_nit__abstract_compiler__MType__is_c_primitive]))(var345); /* is_c_primitive on <var345:MType>*/
1789 }
1790 var349 = !var348;
1791 if (var349){
1792 if (unlikely(varonce350==NULL)) {
1793 var351 = NEW_standard__NativeArray(2l, &type_standard__NativeArray__standard__String);
1794 if (likely(varonce352!=NULL)) {
1795 var353 = varonce352;
1796 } else {
1797 var354 = "->class->";
1798 var355 = standard___standard__NativeString___to_s_with_length(var354, 9l);
1799 var353 = var355;
1800 varonce352 = var353;
1801 }
1802 ((struct instance_standard__NativeArray*)var351)->values[1]=var353;
1803 } else {
1804 var351 = varonce350;
1805 varonce350 = NULL;
1806 }
1807 {
1808 var356 = ((val*(*)(val* self))(var_recv->class->vft[COLOR_standard__string__Object__to_s]))(var_recv); /* to_s on <var_recv:RuntimeVariable>*/
1809 }
1810 ((struct instance_standard__NativeArray*)var351)->values[0]=var356;
1811 {
1812 var357 = ((val*(*)(val* self))(var351->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var351); /* native_to_s on <var351:NativeArray[String]>*/
1813 }
1814 varonce350 = var351;
1815 var_recv_ptr = var357;
1816 } else {
1817 {
1818 { /* Inline abstract_compiler#RuntimeVariable#mtype (var_recv) on <var_recv:RuntimeVariable> */
1819 var360 = var_recv->attrs[COLOR_nit__abstract_compiler__RuntimeVariable___mtype].val; /* _mtype on <var_recv:RuntimeVariable> */
1820 if (unlikely(var360 == NULL)) {
1821 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
1822 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1784);
1823 fatal_exit(1);
1824 }
1825 var358 = var360;
1826 RET_LABEL359:(void)0;
1827 }
1828 }
1829 /* <var358:MType> isa MClassType */
1830 cltype362 = type_nit__MClassType.color;
1831 idtype363 = type_nit__MClassType.id;
1832 if(cltype362 >= var358->type->table_size) {
1833 var361 = 0;
1834 } else {
1835 var361 = var358->type->type_table[cltype362] == idtype363;
1836 }
1837 if (unlikely(!var361)) {
1838 var_class_name364 = var358 == NULL ? "null" : var358->type->name;
1839 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "MClassType", var_class_name364);
1840 PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_erasure_compiler, 560);
1841 fatal_exit(1);
1842 }
1843 {
1844 { /* Inline model#MClassType#mclass (var358) on <var358:MType(MClassType)> */
1845 var367 = var358->attrs[COLOR_nit__model__MClassType___mclass].val; /* _mclass on <var358:MType(MClassType)> */
1846 if (unlikely(var367 == NULL)) {
1847 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
1848 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1138);
1849 fatal_exit(1);
1850 }
1851 var365 = var367;
1852 RET_LABEL366:(void)0;
1853 }
1854 }
1855 var_mclass368 = var365;
1856 if (unlikely(varonce369==NULL)) {
1857 var370 = NEW_standard__NativeArray(2l, &type_standard__NativeArray__standard__String);
1858 if (likely(varonce371!=NULL)) {
1859 var372 = varonce371;
1860 } else {
1861 var373 = "class_";
1862 var374 = standard___standard__NativeString___to_s_with_length(var373, 6l);
1863 var372 = var374;
1864 varonce371 = var372;
1865 }
1866 ((struct instance_standard__NativeArray*)var370)->values[0]=var372;
1867 } else {
1868 var370 = varonce369;
1869 varonce369 = NULL;
1870 }
1871 {
1872 var375 = nit___nit__MClass___nit__model_base__MEntity__c_name(var_mclass368);
1873 }
1874 ((struct instance_standard__NativeArray*)var370)->values[1]=var375;
1875 {
1876 var376 = ((val*(*)(val* self))(var370->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var370); /* native_to_s on <var370:NativeArray[String]>*/
1877 }
1878 varonce369 = var370;
1879 {
1880 nit___nit__AbstractCompilerVisitor___require_declaration(self, var376); /* Direct call abstract_compiler#AbstractCompilerVisitor#require_declaration on <self:SeparateErasureCompilerVisitor>*/
1881 }
1882 if (unlikely(varonce377==NULL)) {
1883 var378 = NEW_standard__NativeArray(3l, &type_standard__NativeArray__standard__String);
1884 if (likely(varonce379!=NULL)) {
1885 var380 = varonce379;
1886 } else {
1887 var381 = "class_";
1888 var382 = standard___standard__NativeString___to_s_with_length(var381, 6l);
1889 var380 = var382;
1890 varonce379 = var380;
1891 }
1892 ((struct instance_standard__NativeArray*)var378)->values[0]=var380;
1893 if (likely(varonce383!=NULL)) {
1894 var384 = varonce383;
1895 } else {
1896 var385 = ".";
1897 var386 = standard___standard__NativeString___to_s_with_length(var385, 1l);
1898 var384 = var386;
1899 varonce383 = var384;
1900 }
1901 ((struct instance_standard__NativeArray*)var378)->values[2]=var384;
1902 } else {
1903 var378 = varonce377;
1904 varonce377 = NULL;
1905 }
1906 {
1907 var387 = nit___nit__MClass___nit__model_base__MEntity__c_name(var_mclass368);
1908 }
1909 ((struct instance_standard__NativeArray*)var378)->values[1]=var387;
1910 {
1911 var388 = ((val*(*)(val* self))(var378->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var378); /* native_to_s on <var378:NativeArray[String]>*/
1912 }
1913 varonce377 = var378;
1914 var_recv_ptr = var388;
1915 }
1916 if (likely(varonce389!=NULL)) {
1917 var390 = varonce389;
1918 } else {
1919 var391 = "entry";
1920 var392 = standard___standard__NativeString___to_s_with_length(var391, 5l);
1921 var390 = var392;
1922 varonce389 = var390;
1923 }
1924 {
1925 var393 = nit___nit__AbstractCompilerVisitor___get_name(self, var390);
1926 }
1927 var_entry = var393;
1928 if (unlikely(varonce394==NULL)) {
1929 var395 = NEW_standard__NativeArray(3l, &type_standard__NativeArray__standard__String);
1930 if (likely(varonce396!=NULL)) {
1931 var397 = varonce396;
1932 } else {
1933 var398 = "struct vts_entry ";
1934 var399 = standard___standard__NativeString___to_s_with_length(var398, 17l);
1935 var397 = var399;
1936 varonce396 = var397;
1937 }
1938 ((struct instance_standard__NativeArray*)var395)->values[0]=var397;
1939 if (likely(varonce400!=NULL)) {
1940 var401 = varonce400;
1941 } else {
1942 var402 = ";";
1943 var403 = standard___standard__NativeString___to_s_with_length(var402, 1l);
1944 var401 = var403;
1945 varonce400 = var401;
1946 }
1947 ((struct instance_standard__NativeArray*)var395)->values[2]=var401;
1948 } else {
1949 var395 = varonce394;
1950 varonce394 = NULL;
1951 }
1952 ((struct instance_standard__NativeArray*)var395)->values[1]=var_entry;
1953 {
1954 var404 = ((val*(*)(val* self))(var395->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var395); /* native_to_s on <var395:NativeArray[String]>*/
1955 }
1956 varonce394 = var395;
1957 {
1958 nit___nit__AbstractCompilerVisitor___add(self, var404); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <self:SeparateErasureCompilerVisitor>*/
1959 }
1960 {
1961 { /* Inline model#MVirtualType#mproperty (var_mtype) on <var_mtype:MType(MVirtualType)> */
1962 var407 = var_mtype->attrs[COLOR_nit__model__MVirtualType___mproperty].val; /* _mproperty on <var_mtype:MType(MVirtualType)> */
1963 if (unlikely(var407 == NULL)) {
1964 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty");
1965 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1344);
1966 fatal_exit(1);
1967 }
1968 var405 = var407;
1969 RET_LABEL406:(void)0;
1970 }
1971 }
1972 {
1973 var408 = nit__separate_compiler___MEntity___const_color(var405);
1974 }
1975 {
1976 nit___nit__AbstractCompilerVisitor___require_declaration(self, var408); /* Direct call abstract_compiler#AbstractCompilerVisitor#require_declaration on <self:SeparateErasureCompilerVisitor>*/
1977 }
1978 if (unlikely(varonce409==NULL)) {
1979 var410 = NEW_standard__NativeArray(6l, &type_standard__NativeArray__standard__String);
1980 if (likely(varonce411!=NULL)) {
1981 var412 = varonce411;
1982 } else {
1983 var413 = " = ";
1984 var414 = standard___standard__NativeString___to_s_with_length(var413, 3l);
1985 var412 = var414;
1986 varonce411 = var412;
1987 }
1988 ((struct instance_standard__NativeArray*)var410)->values[1]=var412;
1989 if (likely(varonce415!=NULL)) {
1990 var416 = varonce415;
1991 } else {
1992 var417 = "vts_table->vts[";
1993 var418 = standard___standard__NativeString___to_s_with_length(var417, 15l);
1994 var416 = var418;
1995 varonce415 = var416;
1996 }
1997 ((struct instance_standard__NativeArray*)var410)->values[3]=var416;
1998 if (likely(varonce419!=NULL)) {
1999 var420 = varonce419;
2000 } else {
2001 var421 = "];";
2002 var422 = standard___standard__NativeString___to_s_with_length(var421, 2l);
2003 var420 = var422;
2004 varonce419 = var420;
2005 }
2006 ((struct instance_standard__NativeArray*)var410)->values[5]=var420;
2007 } else {
2008 var410 = varonce409;
2009 varonce409 = NULL;
2010 }
2011 ((struct instance_standard__NativeArray*)var410)->values[0]=var_entry;
2012 ((struct instance_standard__NativeArray*)var410)->values[2]=var_recv_ptr;
2013 {
2014 { /* Inline model#MVirtualType#mproperty (var_mtype) on <var_mtype:MType(MVirtualType)> */
2015 var425 = var_mtype->attrs[COLOR_nit__model__MVirtualType___mproperty].val; /* _mproperty on <var_mtype:MType(MVirtualType)> */
2016 if (unlikely(var425 == NULL)) {
2017 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty");
2018 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1344);
2019 fatal_exit(1);
2020 }
2021 var423 = var425;
2022 RET_LABEL424:(void)0;
2023 }
2024 }
2025 {
2026 var426 = nit__separate_compiler___MEntity___const_color(var423);
2027 }
2028 ((struct instance_standard__NativeArray*)var410)->values[4]=var426;
2029 {
2030 var427 = ((val*(*)(val* self))(var410->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var410); /* native_to_s on <var410:NativeArray[String]>*/
2031 }
2032 varonce409 = var410;
2033 {
2034 nit___nit__AbstractCompilerVisitor___add(self, var427); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <self:SeparateErasureCompilerVisitor>*/
2035 }
2036 if (unlikely(varonce428==NULL)) {
2037 var429 = NEW_standard__NativeArray(4l, &type_standard__NativeArray__standard__String);
2038 if (likely(varonce430!=NULL)) {
2039 var431 = varonce430;
2040 } else {
2041 var432 = " = ";
2042 var433 = standard___standard__NativeString___to_s_with_length(var432, 3l);
2043 var431 = var433;
2044 varonce430 = var431;
2045 }
2046 ((struct instance_standard__NativeArray*)var429)->values[1]=var431;
2047 if (likely(varonce434!=NULL)) {
2048 var435 = varonce434;
2049 } else {
2050 var436 = ".class->color;";
2051 var437 = standard___standard__NativeString___to_s_with_length(var436, 14l);
2052 var435 = var437;
2053 varonce434 = var435;
2054 }
2055 ((struct instance_standard__NativeArray*)var429)->values[3]=var435;
2056 } else {
2057 var429 = varonce428;
2058 varonce428 = NULL;
2059 }
2060 ((struct instance_standard__NativeArray*)var429)->values[0]=var_cltype;
2061 ((struct instance_standard__NativeArray*)var429)->values[2]=var_entry;
2062 {
2063 var438 = ((val*(*)(val* self))(var429->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var429); /* native_to_s on <var429:NativeArray[String]>*/
2064 }
2065 varonce428 = var429;
2066 {
2067 nit___nit__AbstractCompilerVisitor___add(self, var438); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <self:SeparateErasureCompilerVisitor>*/
2068 }
2069 if (unlikely(varonce439==NULL)) {
2070 var440 = NEW_standard__NativeArray(4l, &type_standard__NativeArray__standard__String);
2071 if (likely(varonce441!=NULL)) {
2072 var442 = varonce441;
2073 } else {
2074 var443 = " = ";
2075 var444 = standard___standard__NativeString___to_s_with_length(var443, 3l);
2076 var442 = var444;
2077 varonce441 = var442;
2078 }
2079 ((struct instance_standard__NativeArray*)var440)->values[1]=var442;
2080 if (likely(varonce445!=NULL)) {
2081 var446 = varonce445;
2082 } else {
2083 var447 = ".class->id;";
2084 var448 = standard___standard__NativeString___to_s_with_length(var447, 11l);
2085 var446 = var448;
2086 varonce445 = var446;
2087 }
2088 ((struct instance_standard__NativeArray*)var440)->values[3]=var446;
2089 } else {
2090 var440 = varonce439;
2091 varonce439 = NULL;
2092 }
2093 ((struct instance_standard__NativeArray*)var440)->values[0]=var_idtype;
2094 ((struct instance_standard__NativeArray*)var440)->values[2]=var_entry;
2095 {
2096 var449 = ((val*(*)(val* self))(var440->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var440); /* native_to_s on <var440:NativeArray[String]>*/
2097 }
2098 varonce439 = var440;
2099 {
2100 nit___nit__AbstractCompilerVisitor___add(self, var449); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <self:SeparateErasureCompilerVisitor>*/
2101 }
2102 var_451 = var_maybe_null;
2103 if (var_maybe_null){
2104 if (likely(varonce452!=NULL)) {
2105 var453 = varonce452;
2106 } else {
2107 var454 = "0";
2108 var455 = standard___standard__NativeString___to_s_with_length(var454, 1l);
2109 var453 = var455;
2110 varonce452 = var453;
2111 }
2112 {
2113 var456 = ((short int(*)(val* self, val* p0))(var_accept_null->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_accept_null, var453); /* == on <var_accept_null:String>*/
2114 }
2115 var450 = var456;
2116 } else {
2117 var450 = var_451;
2118 }
2119 if (var450){
2120 if (likely(varonce457!=NULL)) {
2121 var458 = varonce457;
2122 } else {
2123 var459 = "is_nullable";
2124 var460 = standard___standard__NativeString___to_s_with_length(var459, 11l);
2125 var458 = var460;
2126 varonce457 = var458;
2127 }
2128 {
2129 var461 = nit___nit__AbstractCompilerVisitor___get_name(self, var458);
2130 }
2131 var_is_nullable = var461;
2132 if (unlikely(varonce462==NULL)) {
2133 var463 = NEW_standard__NativeArray(3l, &type_standard__NativeArray__standard__String);
2134 if (likely(varonce464!=NULL)) {
2135 var465 = varonce464;
2136 } else {
2137 var466 = "short int ";
2138 var467 = standard___standard__NativeString___to_s_with_length(var466, 10l);
2139 var465 = var467;
2140 varonce464 = var465;
2141 }
2142 ((struct instance_standard__NativeArray*)var463)->values[0]=var465;
2143 if (likely(varonce468!=NULL)) {
2144 var469 = varonce468;
2145 } else {
2146 var470 = ";";
2147 var471 = standard___standard__NativeString___to_s_with_length(var470, 1l);
2148 var469 = var471;
2149 varonce468 = var469;
2150 }
2151 ((struct instance_standard__NativeArray*)var463)->values[2]=var469;
2152 } else {
2153 var463 = varonce462;
2154 varonce462 = NULL;
2155 }
2156 ((struct instance_standard__NativeArray*)var463)->values[1]=var_is_nullable;
2157 {
2158 var472 = ((val*(*)(val* self))(var463->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var463); /* native_to_s on <var463:NativeArray[String]>*/
2159 }
2160 varonce462 = var463;
2161 {
2162 nit___nit__AbstractCompilerVisitor___add_decl(self, var472); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <self:SeparateErasureCompilerVisitor>*/
2163 }
2164 if (unlikely(varonce473==NULL)) {
2165 var474 = NEW_standard__NativeArray(4l, &type_standard__NativeArray__standard__String);
2166 if (likely(varonce475!=NULL)) {
2167 var476 = varonce475;
2168 } else {
2169 var477 = " = ";
2170 var478 = standard___standard__NativeString___to_s_with_length(var477, 3l);
2171 var476 = var478;
2172 varonce475 = var476;
2173 }
2174 ((struct instance_standard__NativeArray*)var474)->values[1]=var476;
2175 if (likely(varonce479!=NULL)) {
2176 var480 = varonce479;
2177 } else {
2178 var481 = ".is_nullable;";
2179 var482 = standard___standard__NativeString___to_s_with_length(var481, 13l);
2180 var480 = var482;
2181 varonce479 = var480;
2182 }
2183 ((struct instance_standard__NativeArray*)var474)->values[3]=var480;
2184 } else {
2185 var474 = varonce473;
2186 varonce473 = NULL;
2187 }
2188 ((struct instance_standard__NativeArray*)var474)->values[0]=var_is_nullable;
2189 ((struct instance_standard__NativeArray*)var474)->values[2]=var_entry;
2190 {
2191 var483 = ((val*(*)(val* self))(var474->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var474); /* native_to_s on <var474:NativeArray[String]>*/
2192 }
2193 varonce473 = var474;
2194 {
2195 nit___nit__AbstractCompilerVisitor___add(self, var483); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <self:SeparateErasureCompilerVisitor>*/
2196 }
2197 {
2198 var484 = standard___standard__String___Object__to_s(var_is_nullable);
2199 }
2200 var_accept_null = var484;
2201 } else {
2202 }
2203 {
2204 { /* Inline abstract_compiler#AbstractCompilerVisitor#compiler (self) on <self:SeparateErasureCompilerVisitor> */
2205 var487 = self->attrs[COLOR_nit__abstract_compiler__AbstractCompilerVisitor___compiler].val; /* _compiler on <self:SeparateErasureCompilerVisitor> */
2206 if (unlikely(var487 == NULL)) {
2207 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _compiler");
2208 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1102);
2209 fatal_exit(1);
2210 }
2211 var485 = var487;
2212 RET_LABEL486:(void)0;
2213 }
2214 }
2215 {
2216 { /* Inline abstract_compiler#AbstractCompiler#modelbuilder (var485) on <var485:AbstractCompiler(SeparateCompiler)> */
2217 var490 = var485->attrs[COLOR_nit__abstract_compiler__AbstractCompiler___modelbuilder].val; /* _modelbuilder on <var485:AbstractCompiler(SeparateCompiler)> */
2218 if (unlikely(var490 == NULL)) {
2219 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
2220 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 522);
2221 fatal_exit(1);
2222 }
2223 var488 = var490;
2224 RET_LABEL489:(void)0;
2225 }
2226 }
2227 {
2228 { /* Inline modelbuilder_base#ModelBuilder#toolcontext (var488) on <var488:ModelBuilder> */
2229 var493 = var488->attrs[COLOR_nit__modelbuilder_base__ModelBuilder___toolcontext].val; /* _toolcontext on <var488:ModelBuilder> */
2230 if (unlikely(var493 == NULL)) {
2231 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
2232 PRINT_ERROR(" (%s:%d)\n", FILE_nit__modelbuilder_base, 47);
2233 fatal_exit(1);
2234 }
2235 var491 = var493;
2236 RET_LABEL492:(void)0;
2237 }
2238 }
2239 {
2240 { /* Inline abstract_compiler#ToolContext#opt_typing_test_metrics (var491) on <var491:ToolContext> */
2241 var496 = var491->attrs[COLOR_nit__abstract_compiler__ToolContext___opt_typing_test_metrics].val; /* _opt_typing_test_metrics on <var491:ToolContext> */
2242 if (unlikely(var496 == NULL)) {
2243 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_typing_test_metrics");
2244 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 60);
2245 fatal_exit(1);
2246 }
2247 var494 = var496;
2248 RET_LABEL495:(void)0;
2249 }
2250 }
2251 {
2252 { /* Inline opts#Option#value (var494) on <var494:OptionBool> */
2253 var499 = var494->attrs[COLOR_opts__Option___value].val; /* _value on <var494:OptionBool> */
2254 var497 = var499;
2255 RET_LABEL498:(void)0;
2256 }
2257 }
2258 var500 = (short int)((long)(var497)>>2);
2259 if (var500){
2260 {
2261 { /* Inline abstract_compiler#AbstractCompilerVisitor#compiler (self) on <self:SeparateErasureCompilerVisitor> */
2262 var503 = self->attrs[COLOR_nit__abstract_compiler__AbstractCompilerVisitor___compiler].val; /* _compiler on <self:SeparateErasureCompilerVisitor> */
2263 if (unlikely(var503 == NULL)) {
2264 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _compiler");
2265 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1102);
2266 fatal_exit(1);
2267 }
2268 var501 = var503;
2269 RET_LABEL502:(void)0;
2270 }
2271 }
2272 {
2273 { /* Inline abstract_compiler#AbstractCompiler#count_type_test_unresolved (var501) on <var501:AbstractCompiler(SeparateCompiler)> */
2274 var506 = var501->attrs[COLOR_nit__abstract_compiler__AbstractCompiler___count_type_test_unresolved].val; /* _count_type_test_unresolved on <var501:AbstractCompiler(SeparateCompiler)> */
2275 if (unlikely(var506 == NULL)) {
2276 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _count_type_test_unresolved");
2277 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1016);
2278 fatal_exit(1);
2279 }
2280 var504 = var506;
2281 RET_LABEL505:(void)0;
2282 }
2283 }
2284 var_507 = var504;
2285 var_508 = var_tag;
2286 {
2287 var509 = standard___standard__HashMap___standard__abstract_collection__MapRead___91d_93d(var_507, var_508);
2288 }
2289 {
2290 { /* Inline kernel#Int#+ (var509,1l) on <var509:nullable Object(Int)> */
2291 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
2292 /* <1l:Int> isa OTHER */
2293 var512 = 1; /* easy <1l:Int> isa OTHER*/
2294 if (unlikely(!var512)) {
2295 var_class_name515 = type_standard__Int.name;
2296 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name515);
2297 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 537);
2298 fatal_exit(1);
2299 }
2300 var516 = (long)(var509)>>2;
2301 var517 = var516 + 1l;
2302 var510 = var517;
2303 goto RET_LABEL511;
2304 RET_LABEL511:(void)0;
2305 }
2306 }
2307 {
2308 var518 = (val*)(var510<<2|1);
2309 standard___standard__HashMap___standard__abstract_collection__Map___91d_93d_61d(var_507, var_508, var518); /* Direct call hash_collection#HashMap#[]= on <var_507:HashMap[String, Int]>*/
2310 }
2311 if (unlikely(varonce519==NULL)) {
2312 var520 = NEW_standard__NativeArray(3l, &type_standard__NativeArray__standard__String);
2313 if (likely(varonce521!=NULL)) {
2314 var522 = varonce521;
2315 } else {
2316 var523 = "count_type_test_unresolved_";
2317 var524 = standard___standard__NativeString___to_s_with_length(var523, 27l);
2318 var522 = var524;
2319 varonce521 = var522;
2320 }
2321 ((struct instance_standard__NativeArray*)var520)->values[0]=var522;
2322 if (likely(varonce525!=NULL)) {
2323 var526 = varonce525;
2324 } else {
2325 var527 = "++;";
2326 var528 = standard___standard__NativeString___to_s_with_length(var527, 3l);
2327 var526 = var528;
2328 varonce525 = var526;
2329 }
2330 ((struct instance_standard__NativeArray*)var520)->values[2]=var526;
2331 } else {
2332 var520 = varonce519;
2333 varonce519 = NULL;
2334 }
2335 ((struct instance_standard__NativeArray*)var520)->values[1]=var_tag;
2336 {
2337 var529 = ((val*(*)(val* self))(var520->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var520); /* native_to_s on <var520:NativeArray[String]>*/
2338 }
2339 varonce519 = var520;
2340 {
2341 nit___nit__AbstractCompilerVisitor___add(self, var529); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <self:SeparateErasureCompilerVisitor>*/
2342 }
2343 } else {
2344 }
2345 } else {
2346 if (unlikely(varonce530==NULL)) {
2347 var531 = NEW_standard__NativeArray(5l, &type_standard__NativeArray__standard__String);
2348 if (likely(varonce532!=NULL)) {
2349 var533 = varonce532;
2350 } else {
2351 var534 = "type_test(";
2352 var535 = standard___standard__NativeString___to_s_with_length(var534, 10l);
2353 var533 = var535;
2354 varonce532 = var533;
2355 }
2356 ((struct instance_standard__NativeArray*)var531)->values[0]=var533;
2357 if (likely(varonce536!=NULL)) {
2358 var537 = varonce536;
2359 } else {
2360 var538 = ", ";
2361 var539 = standard___standard__NativeString___to_s_with_length(var538, 2l);
2362 var537 = var539;
2363 varonce536 = var537;
2364 }
2365 ((struct instance_standard__NativeArray*)var531)->values[2]=var537;
2366 if (likely(varonce540!=NULL)) {
2367 var541 = varonce540;
2368 } else {
2369 var542 = ")";
2370 var543 = standard___standard__NativeString___to_s_with_length(var542, 1l);
2371 var541 = var543;
2372 varonce540 = var541;
2373 }
2374 ((struct instance_standard__NativeArray*)var531)->values[4]=var541;
2375 } else {
2376 var531 = varonce530;
2377 varonce530 = NULL;
2378 }
2379 {
2380 var544 = nit___nit__RuntimeVariable___standard__string__Object__inspect(var_value);
2381 }
2382 ((struct instance_standard__NativeArray*)var531)->values[1]=var544;
2383 {
2384 var545 = ((val*(*)(val* self))(var_mtype->class->vft[COLOR_standard__string__Object__to_s]))(var_mtype); /* to_s on <var_mtype:MType>*/
2385 }
2386 ((struct instance_standard__NativeArray*)var531)->values[3]=var545;
2387 {
2388 var546 = ((val*(*)(val* self))(var531->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var531); /* native_to_s on <var531:NativeArray[String]>*/
2389 }
2390 varonce530 = var531;
2391 {
2392 nit___nit__AbstractCompilerVisitor___debug(self, var546); /* Direct call abstract_compiler#AbstractCompilerVisitor#debug on <self:SeparateErasureCompilerVisitor>*/
2393 }
2394 PRINT_ERROR("Runtime error: %s", "Aborted");
2395 PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_erasure_compiler, 582);
2396 fatal_exit(1);
2397 }
2398 }
2399 if (var_maybe_null){
2400 if (unlikely(varonce547==NULL)) {
2401 var548 = NEW_standard__NativeArray(3l, &type_standard__NativeArray__standard__String);
2402 if (likely(varonce549!=NULL)) {
2403 var550 = varonce549;
2404 } else {
2405 var551 = "if(";
2406 var552 = standard___standard__NativeString___to_s_with_length(var551, 3l);
2407 var550 = var552;
2408 varonce549 = var550;
2409 }
2410 ((struct instance_standard__NativeArray*)var548)->values[0]=var550;
2411 if (likely(varonce553!=NULL)) {
2412 var554 = varonce553;
2413 } else {
2414 var555 = " == NULL) {";
2415 var556 = standard___standard__NativeString___to_s_with_length(var555, 11l);
2416 var554 = var556;
2417 varonce553 = var554;
2418 }
2419 ((struct instance_standard__NativeArray*)var548)->values[2]=var554;
2420 } else {
2421 var548 = varonce547;
2422 varonce547 = NULL;
2423 }
2424 {
2425 var557 = ((val*(*)(val* self))(var_value->class->vft[COLOR_standard__string__Object__to_s]))(var_value); /* to_s on <var_value:RuntimeVariable>*/
2426 }
2427 ((struct instance_standard__NativeArray*)var548)->values[1]=var557;
2428 {
2429 var558 = ((val*(*)(val* self))(var548->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var548); /* native_to_s on <var548:NativeArray[String]>*/
2430 }
2431 varonce547 = var548;
2432 {
2433 nit___nit__AbstractCompilerVisitor___add(self, var558); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <self:SeparateErasureCompilerVisitor>*/
2434 }
2435 if (unlikely(varonce559==NULL)) {
2436 var560 = NEW_standard__NativeArray(4l, &type_standard__NativeArray__standard__String);
2437 if (likely(varonce561!=NULL)) {
2438 var562 = varonce561;
2439 } else {
2440 var563 = " = ";
2441 var564 = standard___standard__NativeString___to_s_with_length(var563, 3l);
2442 var562 = var564;
2443 varonce561 = var562;
2444 }
2445 ((struct instance_standard__NativeArray*)var560)->values[1]=var562;
2446 if (likely(varonce565!=NULL)) {
2447 var566 = varonce565;
2448 } else {
2449 var567 = ";";
2450 var568 = standard___standard__NativeString___to_s_with_length(var567, 1l);
2451 var566 = var568;
2452 varonce565 = var566;
2453 }
2454 ((struct instance_standard__NativeArray*)var560)->values[3]=var566;
2455 } else {
2456 var560 = varonce559;
2457 varonce559 = NULL;
2458 }
2459 {
2460 var569 = ((val*(*)(val* self))(var_res->class->vft[COLOR_standard__string__Object__to_s]))(var_res); /* to_s on <var_res:RuntimeVariable>*/
2461 }
2462 ((struct instance_standard__NativeArray*)var560)->values[0]=var569;
2463 ((struct instance_standard__NativeArray*)var560)->values[2]=var_accept_null;
2464 {
2465 var570 = ((val*(*)(val* self))(var560->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var560); /* native_to_s on <var560:NativeArray[String]>*/
2466 }
2467 varonce559 = var560;
2468 {
2469 nit___nit__AbstractCompilerVisitor___add(self, var570); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <self:SeparateErasureCompilerVisitor>*/
2470 }
2471 if (likely(varonce571!=NULL)) {
2472 var572 = varonce571;
2473 } else {
2474 var573 = "} else {";
2475 var574 = standard___standard__NativeString___to_s_with_length(var573, 8l);
2476 var572 = var574;
2477 varonce571 = var572;
2478 }
2479 {
2480 nit___nit__AbstractCompilerVisitor___add(self, var572); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <self:SeparateErasureCompilerVisitor>*/
2481 }
2482 } else {
2483 }
2484 if (unlikely(varonce575==NULL)) {
2485 var576 = NEW_standard__NativeArray(5l, &type_standard__NativeArray__standard__String);
2486 if (likely(varonce577!=NULL)) {
2487 var578 = varonce577;
2488 } else {
2489 var579 = "if(";
2490 var580 = standard___standard__NativeString___to_s_with_length(var579, 3l);
2491 var578 = var580;
2492 varonce577 = var578;
2493 }
2494 ((struct instance_standard__NativeArray*)var576)->values[0]=var578;
2495 if (likely(varonce581!=NULL)) {
2496 var582 = varonce581;
2497 } else {
2498 var583 = " >= ";
2499 var584 = standard___standard__NativeString___to_s_with_length(var583, 4l);
2500 var582 = var584;
2501 varonce581 = var582;
2502 }
2503 ((struct instance_standard__NativeArray*)var576)->values[2]=var582;
2504 if (likely(varonce585!=NULL)) {
2505 var586 = varonce585;
2506 } else {
2507 var587 = "type_table->size) {";
2508 var588 = standard___standard__NativeString___to_s_with_length(var587, 19l);
2509 var586 = var588;
2510 varonce585 = var586;
2511 }
2512 ((struct instance_standard__NativeArray*)var576)->values[4]=var586;
2513 } else {
2514 var576 = varonce575;
2515 varonce575 = NULL;
2516 }
2517 ((struct instance_standard__NativeArray*)var576)->values[1]=var_cltype;
2518 ((struct instance_standard__NativeArray*)var576)->values[3]=var_class_ptr;
2519 {
2520 var589 = ((val*(*)(val* self))(var576->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var576); /* native_to_s on <var576:NativeArray[String]>*/
2521 }
2522 varonce575 = var576;
2523 {
2524 nit___nit__AbstractCompilerVisitor___add(self, var589); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <self:SeparateErasureCompilerVisitor>*/
2525 }
2526 if (unlikely(varonce590==NULL)) {
2527 var591 = NEW_standard__NativeArray(2l, &type_standard__NativeArray__standard__String);
2528 if (likely(varonce592!=NULL)) {
2529 var593 = varonce592;
2530 } else {
2531 var594 = " = 0;";
2532 var595 = standard___standard__NativeString___to_s_with_length(var594, 5l);
2533 var593 = var595;
2534 varonce592 = var593;
2535 }
2536 ((struct instance_standard__NativeArray*)var591)->values[1]=var593;
2537 } else {
2538 var591 = varonce590;
2539 varonce590 = NULL;
2540 }
2541 {
2542 var596 = ((val*(*)(val* self))(var_res->class->vft[COLOR_standard__string__Object__to_s]))(var_res); /* to_s on <var_res:RuntimeVariable>*/
2543 }
2544 ((struct instance_standard__NativeArray*)var591)->values[0]=var596;
2545 {
2546 var597 = ((val*(*)(val* self))(var591->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var591); /* native_to_s on <var591:NativeArray[String]>*/
2547 }
2548 varonce590 = var591;
2549 {
2550 nit___nit__AbstractCompilerVisitor___add(self, var597); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <self:SeparateErasureCompilerVisitor>*/
2551 }
2552 if (likely(varonce598!=NULL)) {
2553 var599 = varonce598;
2554 } else {
2555 var600 = "} else {";
2556 var601 = standard___standard__NativeString___to_s_with_length(var600, 8l);
2557 var599 = var601;
2558 varonce598 = var599;
2559 }
2560 {
2561 nit___nit__AbstractCompilerVisitor___add(self, var599); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <self:SeparateErasureCompilerVisitor>*/
2562 }
2563 if (unlikely(varonce602==NULL)) {
2564 var603 = NEW_standard__NativeArray(8l, &type_standard__NativeArray__standard__String);
2565 if (likely(varonce604!=NULL)) {
2566 var605 = varonce604;
2567 } else {
2568 var606 = " = ";
2569 var607 = standard___standard__NativeString___to_s_with_length(var606, 3l);
2570 var605 = var607;
2571 varonce604 = var605;
2572 }
2573 ((struct instance_standard__NativeArray*)var603)->values[1]=var605;
2574 if (likely(varonce608!=NULL)) {
2575 var609 = varonce608;
2576 } else {
2577 var610 = "type_table->table[";
2578 var611 = standard___standard__NativeString___to_s_with_length(var610, 18l);
2579 var609 = var611;
2580 varonce608 = var609;
2581 }
2582 ((struct instance_standard__NativeArray*)var603)->values[3]=var609;
2583 if (likely(varonce612!=NULL)) {
2584 var613 = varonce612;
2585 } else {
2586 var614 = "] == ";
2587 var615 = standard___standard__NativeString___to_s_with_length(var614, 5l);
2588 var613 = var615;
2589 varonce612 = var613;
2590 }
2591 ((struct instance_standard__NativeArray*)var603)->values[5]=var613;
2592 if (likely(varonce616!=NULL)) {
2593 var617 = varonce616;
2594 } else {
2595 var618 = ";";
2596 var619 = standard___standard__NativeString___to_s_with_length(var618, 1l);
2597 var617 = var619;
2598 varonce616 = var617;
2599 }
2600 ((struct instance_standard__NativeArray*)var603)->values[7]=var617;
2601 } else {
2602 var603 = varonce602;
2603 varonce602 = NULL;
2604 }
2605 {
2606 var620 = ((val*(*)(val* self))(var_res->class->vft[COLOR_standard__string__Object__to_s]))(var_res); /* to_s on <var_res:RuntimeVariable>*/
2607 }
2608 ((struct instance_standard__NativeArray*)var603)->values[0]=var620;
2609 ((struct instance_standard__NativeArray*)var603)->values[2]=var_class_ptr;
2610 ((struct instance_standard__NativeArray*)var603)->values[4]=var_cltype;
2611 ((struct instance_standard__NativeArray*)var603)->values[6]=var_idtype;
2612 {
2613 var621 = ((val*(*)(val* self))(var603->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var603); /* native_to_s on <var603:NativeArray[String]>*/
2614 }
2615 varonce602 = var603;
2616 {
2617 nit___nit__AbstractCompilerVisitor___add(self, var621); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <self:SeparateErasureCompilerVisitor>*/
2618 }
2619 if (likely(varonce622!=NULL)) {
2620 var623 = varonce622;
2621 } else {
2622 var624 = "}";
2623 var625 = standard___standard__NativeString___to_s_with_length(var624, 1l);
2624 var623 = var625;
2625 varonce622 = var623;
2626 }
2627 {
2628 nit___nit__AbstractCompilerVisitor___add(self, var623); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <self:SeparateErasureCompilerVisitor>*/
2629 }
2630 if (var_maybe_null){
2631 if (likely(varonce626!=NULL)) {
2632 var627 = varonce626;
2633 } else {
2634 var628 = "}";
2635 var629 = standard___standard__NativeString___to_s_with_length(var628, 1l);
2636 var627 = var629;
2637 varonce626 = var627;
2638 }
2639 {
2640 nit___nit__AbstractCompilerVisitor___add(self, var627); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <self:SeparateErasureCompilerVisitor>*/
2641 }
2642 } else {
2643 }
2644 var = var_res;
2645 goto RET_LABEL;
2646 RET_LABEL:;
2647 return var;
2648 }
2649 /* method separate_erasure_compiler#SeparateErasureCompilerVisitor#unbox_extern for (self: SeparateErasureCompilerVisitor, RuntimeVariable, MType): RuntimeVariable */
2650 val* nit___nit__SeparateErasureCompilerVisitor___nit__abstract_compiler__AbstractCompilerVisitor__unbox_extern(val* self, val* p0, val* p1) {
2651 val* var /* : RuntimeVariable */;
2652 val* var_value /* var value: RuntimeVariable */;
2653 val* var_mtype /* var mtype: MType */;
2654 short int var1 /* : Bool */;
2655 short int var2 /* : Bool */;
2656 short int var3 /* : Bool */;
2657 int cltype;
2658 int idtype;
2659 short int var_ /* var : Bool */;
2660 val* var4 /* : MClass */;
2661 val* var6 /* : MClass */;
2662 val* var7 /* : MClassKind */;
2663 val* var9 /* : MClassKind */;
2664 val* var10 /* : Sys */;
2665 val* var11 /* : MClassKind */;
2666 short int var12 /* : Bool */;
2667 val* var_other /* var other: nullable Object */;
2668 short int var14 /* : Bool */;
2669 short int var16 /* : Bool */;
2670 short int var_17 /* var : Bool */;
2671 val* var18 /* : MClass */;
2672 val* var20 /* : MClass */;
2673 val* var21 /* : String */;
2674 val* var23 /* : String */;
2675 static val* varonce;
2676 val* var24 /* : String */;
2677 char* var25 /* : NativeString */;
2678 val* var26 /* : FlatString */;
2679 short int var27 /* : Bool */;
2680 val* var_other29 /* var other: nullable Object */;
2681 short int var30 /* : Bool */;
2682 short int var31 /* : Bool */;
2683 val* var32 /* : AbstractCompiler */;
2684 val* var34 /* : AbstractCompiler */;
2685 val* var35 /* : MModule */;
2686 val* var37 /* : MModule */;
2687 val* var38 /* : MClassType */;
2688 val* var_pointer_type /* var pointer_type: MClassType */;
2689 val* var39 /* : RuntimeVariable */;
2690 val* var_res /* var res: RuntimeVariable */;
2691 val* var41 /* : NativeArray[String] */;
2692 static val* varonce40;
2693 static val* varonce42;
2694 val* var43 /* : String */;
2695 char* var44 /* : NativeString */;
2696 val* var45 /* : FlatString */;
2697 static val* varonce46;
2698 val* var47 /* : String */;
2699 char* var48 /* : NativeString */;
2700 val* var49 /* : FlatString */;
2701 static val* varonce50;
2702 val* var51 /* : String */;
2703 char* var52 /* : NativeString */;
2704 val* var53 /* : FlatString */;
2705 static val* varonce54;
2706 val* var55 /* : String */;
2707 char* var56 /* : NativeString */;
2708 val* var57 /* : FlatString */;
2709 val* var58 /* : String */;
2710 val* var59 /* : String */;
2711 val* var60 /* : String */;
2712 val* var61 /* : MType */;
2713 val* var63 /* : MType */;
2714 val* var64 /* : String */;
2715 val* var65 /* : String */;
2716 var_value = p0;
2717 var_mtype = p1;
2718 /* <var_mtype:MType> isa MClassType */
2719 cltype = type_nit__MClassType.color;
2720 idtype = type_nit__MClassType.id;
2721 if(cltype >= var_mtype->type->table_size) {
2722 var3 = 0;
2723 } else {
2724 var3 = var_mtype->type->type_table[cltype] == idtype;
2725 }
2726 var_ = var3;
2727 if (var3){
2728 {
2729 { /* Inline model#MClassType#mclass (var_mtype) on <var_mtype:MType(MClassType)> */
2730 var6 = var_mtype->attrs[COLOR_nit__model__MClassType___mclass].val; /* _mclass on <var_mtype:MType(MClassType)> */
2731 if (unlikely(var6 == NULL)) {
2732 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
2733 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1138);
2734 fatal_exit(1);
2735 }
2736 var4 = var6;
2737 RET_LABEL5:(void)0;
2738 }
2739 }
2740 {
2741 { /* Inline model#MClass#kind (var4) on <var4:MClass> */
2742 var9 = var4->attrs[COLOR_nit__model__MClass___kind].val; /* _kind on <var4:MClass> */
2743 if (unlikely(var9 == NULL)) {
2744 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _kind");
2745 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 436);
2746 fatal_exit(1);
2747 }
2748 var7 = var9;
2749 RET_LABEL8:(void)0;
2750 }
2751 }
2752 var10 = glob_sys;
2753 {
2754 var11 = nit__model___standard__Sys___extern_kind(var10);
2755 }
2756 {
2757 { /* Inline kernel#Object#== (var7,var11) on <var7:MClassKind> */
2758 var_other = var11;
2759 {
2760 { /* Inline kernel#Object#is_same_instance (var7,var_other) on <var7:MClassKind> */
2761 var16 = var7 == var_other;
2762 var14 = var16;
2763 goto RET_LABEL15;
2764 RET_LABEL15:(void)0;
2765 }
2766 }
2767 var12 = var14;
2768 goto RET_LABEL13;
2769 RET_LABEL13:(void)0;
2770 }
2771 }
2772 var2 = var12;
2773 } else {
2774 var2 = var_;
2775 }
2776 var_17 = var2;
2777 if (var2){
2778 {
2779 { /* Inline model#MClassType#mclass (var_mtype) on <var_mtype:MType(MClassType)> */
2780 var20 = var_mtype->attrs[COLOR_nit__model__MClassType___mclass].val; /* _mclass on <var_mtype:MType(MClassType)> */
2781 if (unlikely(var20 == NULL)) {
2782 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
2783 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1138);
2784 fatal_exit(1);
2785 }
2786 var18 = var20;
2787 RET_LABEL19:(void)0;
2788 }
2789 }
2790 {
2791 { /* Inline model#MClass#name (var18) on <var18:MClass> */
2792 var23 = var18->attrs[COLOR_nit__model__MClass___name].val; /* _name on <var18:MClass> */
2793 if (unlikely(var23 == NULL)) {
2794 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
2795 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 362);
2796 fatal_exit(1);
2797 }
2798 var21 = var23;
2799 RET_LABEL22:(void)0;
2800 }
2801 }
2802 if (likely(varonce!=NULL)) {
2803 var24 = varonce;
2804 } else {
2805 var25 = "NativeString";
2806 var26 = standard___standard__NativeString___to_s_with_length(var25, 12l);
2807 var24 = var26;
2808 varonce = var24;
2809 }
2810 {
2811 { /* Inline kernel#Object#!= (var21,var24) on <var21:String> */
2812 var_other29 = var24;
2813 {
2814 var30 = ((short int(*)(val* self, val* p0))(var21->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var21, var_other29); /* == on <var21:String>*/
2815 }
2816 var31 = !var30;
2817 var27 = var31;
2818 goto RET_LABEL28;
2819 RET_LABEL28:(void)0;
2820 }
2821 }
2822 var1 = var27;
2823 } else {
2824 var1 = var_17;
2825 }
2826 if (var1){
2827 {
2828 { /* Inline abstract_compiler#AbstractCompilerVisitor#compiler (self) on <self:SeparateErasureCompilerVisitor> */
2829 var34 = self->attrs[COLOR_nit__abstract_compiler__AbstractCompilerVisitor___compiler].val; /* _compiler on <self:SeparateErasureCompilerVisitor> */
2830 if (unlikely(var34 == NULL)) {
2831 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _compiler");
2832 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1102);
2833 fatal_exit(1);
2834 }
2835 var32 = var34;
2836 RET_LABEL33:(void)0;
2837 }
2838 }
2839 {
2840 { /* Inline abstract_compiler#AbstractCompiler#mainmodule (var32) on <var32:AbstractCompiler(SeparateCompiler)> */
2841 var37 = var32->attrs[COLOR_nit__abstract_compiler__AbstractCompiler___mainmodule].val; /* _mainmodule on <var32:AbstractCompiler(SeparateCompiler)> */
2842 if (unlikely(var37 == NULL)) {
2843 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule");
2844 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 515);
2845 fatal_exit(1);
2846 }
2847 var35 = var37;
2848 RET_LABEL36:(void)0;
2849 }
2850 }
2851 {
2852 var38 = nit__model___MModule___pointer_type(var35);
2853 }
2854 var_pointer_type = var38;
2855 {
2856 var39 = nit___nit__AbstractCompilerVisitor___new_var_extern(self, var_mtype);
2857 }
2858 var_res = var39;
2859 if (unlikely(varonce40==NULL)) {
2860 var41 = NEW_standard__NativeArray(8l, &type_standard__NativeArray__standard__String);
2861 if (likely(varonce42!=NULL)) {
2862 var43 = varonce42;
2863 } else {
2864 var44 = " = ((struct instance_";
2865 var45 = standard___standard__NativeString___to_s_with_length(var44, 21l);
2866 var43 = var45;
2867 varonce42 = var43;
2868 }
2869 ((struct instance_standard__NativeArray*)var41)->values[1]=var43;
2870 if (likely(varonce46!=NULL)) {
2871 var47 = varonce46;
2872 } else {
2873 var48 = "*)";
2874 var49 = standard___standard__NativeString___to_s_with_length(var48, 2l);
2875 var47 = var49;
2876 varonce46 = var47;
2877 }
2878 ((struct instance_standard__NativeArray*)var41)->values[3]=var47;
2879 if (likely(varonce50!=NULL)) {
2880 var51 = varonce50;
2881 } else {
2882 var52 = ")->value; /* unboxing ";
2883 var53 = standard___standard__NativeString___to_s_with_length(var52, 22l);
2884 var51 = var53;
2885 varonce50 = var51;
2886 }
2887 ((struct instance_standard__NativeArray*)var41)->values[5]=var51;
2888 if (likely(varonce54!=NULL)) {
2889 var55 = varonce54;
2890 } else {
2891 var56 = " */";
2892 var57 = standard___standard__NativeString___to_s_with_length(var56, 3l);
2893 var55 = var57;
2894 varonce54 = var55;
2895 }
2896 ((struct instance_standard__NativeArray*)var41)->values[7]=var55;
2897 } else {
2898 var41 = varonce40;
2899 varonce40 = NULL;
2900 }
2901 {
2902 var58 = ((val*(*)(val* self))(var_res->class->vft[COLOR_standard__string__Object__to_s]))(var_res); /* to_s on <var_res:RuntimeVariable>*/
2903 }
2904 ((struct instance_standard__NativeArray*)var41)->values[0]=var58;
2905 {
2906 var59 = ((val*(*)(val* self))(var_pointer_type->class->vft[COLOR_nit__model_base__MEntity__c_name]))(var_pointer_type); /* c_name on <var_pointer_type:MClassType>*/
2907 }
2908 ((struct instance_standard__NativeArray*)var41)->values[2]=var59;
2909 {
2910 var60 = ((val*(*)(val* self))(var_value->class->vft[COLOR_standard__string__Object__to_s]))(var_value); /* to_s on <var_value:RuntimeVariable>*/
2911 }
2912 ((struct instance_standard__NativeArray*)var41)->values[4]=var60;
2913 {
2914 { /* Inline abstract_compiler#RuntimeVariable#mtype (var_value) on <var_value:RuntimeVariable> */
2915 var63 = var_value->attrs[COLOR_nit__abstract_compiler__RuntimeVariable___mtype].val; /* _mtype on <var_value:RuntimeVariable> */
2916 if (unlikely(var63 == NULL)) {
2917 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
2918 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1784);
2919 fatal_exit(1);
2920 }
2921 var61 = var63;
2922 RET_LABEL62:(void)0;
2923 }
2924 }
2925 {
2926 var64 = ((val*(*)(val* self))(var61->class->vft[COLOR_standard__string__Object__to_s]))(var61); /* to_s on <var61:MType>*/
2927 }
2928 ((struct instance_standard__NativeArray*)var41)->values[6]=var64;
2929 {
2930 var65 = ((val*(*)(val* self))(var41->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var41); /* native_to_s on <var41:NativeArray[String]>*/
2931 }
2932 varonce40 = var41;
2933 {
2934 nit___nit__AbstractCompilerVisitor___add(self, var65); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <self:SeparateErasureCompilerVisitor>*/
2935 }
2936 var = var_res;
2937 goto RET_LABEL;
2938 } else {
2939 var = var_value;
2940 goto RET_LABEL;
2941 }
2942 RET_LABEL:;
2943 return var;
2944 }
2945 /* method separate_erasure_compiler#SeparateErasureCompilerVisitor#box_extern for (self: SeparateErasureCompilerVisitor, RuntimeVariable, MType): RuntimeVariable */
2946 val* nit___nit__SeparateErasureCompilerVisitor___nit__abstract_compiler__AbstractCompilerVisitor__box_extern(val* self, val* p0, val* p1) {
2947 val* var /* : RuntimeVariable */;
2948 val* var_value /* var value: RuntimeVariable */;
2949 val* var_mtype /* var mtype: MType */;
2950 short int var1 /* : Bool */;
2951 short int var2 /* : Bool */;
2952 short int var3 /* : Bool */;
2953 int cltype;
2954 int idtype;
2955 short int var_ /* var : Bool */;
2956 val* var4 /* : MClass */;
2957 val* var6 /* : MClass */;
2958 val* var7 /* : MClassKind */;
2959 val* var9 /* : MClassKind */;
2960 val* var10 /* : Sys */;
2961 val* var11 /* : MClassKind */;
2962 short int var12 /* : Bool */;
2963 val* var_other /* var other: nullable Object */;
2964 short int var14 /* : Bool */;
2965 short int var16 /* : Bool */;
2966 short int var_17 /* var : Bool */;
2967 val* var18 /* : MClass */;
2968 val* var20 /* : MClass */;
2969 val* var21 /* : String */;
2970 val* var23 /* : String */;
2971 static val* varonce;
2972 val* var24 /* : String */;
2973 char* var25 /* : NativeString */;
2974 val* var26 /* : FlatString */;
2975 short int var27 /* : Bool */;
2976 val* var_other29 /* var other: nullable Object */;
2977 short int var30 /* : Bool */;
2978 short int var31 /* : Bool */;
2979 val* var32 /* : AbstractCompiler */;
2980 val* var34 /* : AbstractCompiler */;
2981 val* var35 /* : MModule */;
2982 val* var37 /* : MModule */;
2983 val* var38 /* : MClassType */;
2984 val* var_valtype /* var valtype: MClassType */;
2985 val* var39 /* : RuntimeVariable */;
2986 val* var_res /* var res: RuntimeVariable */;
2987 short int var40 /* : Bool */;
2988 val* var41 /* : AbstractCompiler */;
2989 val* var43 /* : AbstractCompiler */;
2990 val* var44 /* : nullable RapidTypeAnalysis */;
2991 val* var46 /* : nullable RapidTypeAnalysis */;
2992 short int var47 /* : Bool */;
2993 short int var48 /* : Bool */;
2994 short int var50 /* : Bool */;
2995 short int var51 /* : Bool */;
2996 short int var_52 /* var : Bool */;
2997 val* var53 /* : AbstractCompiler */;
2998 val* var55 /* : AbstractCompiler */;
2999 val* var56 /* : nullable RapidTypeAnalysis */;
3000 val* var58 /* : nullable RapidTypeAnalysis */;
3001 val* var59 /* : HashSet[MClassType] */;
3002 val* var61 /* : HashSet[MClassType] */;
3003 val* var62 /* : MType */;
3004 val* var64 /* : MType */;
3005 short int var65 /* : Bool */;
3006 int cltype66;
3007 int idtype67;
3008 const char* var_class_name;
3009 short int var68 /* : Bool */;
3010 short int var69 /* : Bool */;
3011 val* var71 /* : NativeArray[String] */;
3012 static val* varonce70;
3013 static val* varonce72;
3014 val* var73 /* : String */;
3015 char* var74 /* : NativeString */;
3016 val* var75 /* : FlatString */;
3017 static val* varonce76;
3018 val* var77 /* : String */;
3019 char* var78 /* : NativeString */;
3020 val* var79 /* : FlatString */;
3021 static val* varonce80;
3022 val* var81 /* : String */;
3023 char* var82 /* : NativeString */;
3024 val* var83 /* : FlatString */;
3025 val* var84 /* : MType */;
3026 val* var86 /* : MType */;
3027 val* var87 /* : String */;
3028 val* var88 /* : MType */;
3029 val* var90 /* : MType */;
3030 val* var91 /* : String */;
3031 val* var92 /* : String */;
3032 static val* varonce93;
3033 val* var94 /* : String */;
3034 char* var95 /* : NativeString */;
3035 val* var96 /* : FlatString */;
3036 val* var98 /* : NativeArray[String] */;
3037 static val* varonce97;
3038 static val* varonce99;
3039 val* var100 /* : String */;
3040 char* var101 /* : NativeString */;
3041 val* var102 /* : FlatString */;
3042 val* var103 /* : String */;
3043 val* var104 /* : String */;
3044 val* var106 /* : NativeArray[String] */;
3045 static val* varonce105;
3046 static val* varonce107;
3047 val* var108 /* : String */;
3048 char* var109 /* : NativeString */;
3049 val* var110 /* : FlatString */;
3050 static val* varonce111;
3051 val* var112 /* : String */;
3052 char* var113 /* : NativeString */;
3053 val* var114 /* : FlatString */;
3054 static val* varonce115;
3055 val* var116 /* : String */;
3056 char* var117 /* : NativeString */;
3057 val* var118 /* : FlatString */;
3058 static val* varonce119;
3059 val* var120 /* : String */;
3060 char* var121 /* : NativeString */;
3061 val* var122 /* : FlatString */;
3062 val* var123 /* : String */;
3063 val* var124 /* : String */;
3064 val* var125 /* : String */;
3065 val* var126 /* : MType */;
3066 val* var128 /* : MType */;
3067 val* var129 /* : String */;
3068 val* var130 /* : String */;
3069 val* var132 /* : NativeArray[String] */;
3070 static val* varonce131;
3071 static val* varonce133;
3072 val* var134 /* : String */;
3073 char* var135 /* : NativeString */;
3074 val* var136 /* : FlatString */;
3075 val* var137 /* : String */;
3076 val* var138 /* : String */;
3077 val* var140 /* : NativeArray[String] */;
3078 static val* varonce139;
3079 static val* varonce141;
3080 val* var142 /* : String */;
3081 char* var143 /* : NativeString */;
3082 val* var144 /* : FlatString */;
3083 static val* varonce145;
3084 val* var146 /* : String */;
3085 char* var147 /* : NativeString */;
3086 val* var148 /* : FlatString */;
3087 val* var149 /* : String */;
3088 val* var150 /* : String */;
3089 val* var151 /* : String */;
3090 var_value = p0;
3091 var_mtype = p1;
3092 /* <var_mtype:MType> isa MClassType */
3093 cltype = type_nit__MClassType.color;
3094 idtype = type_nit__MClassType.id;
3095 if(cltype >= var_mtype->type->table_size) {
3096 var3 = 0;
3097 } else {
3098 var3 = var_mtype->type->type_table[cltype] == idtype;
3099 }
3100 var_ = var3;
3101 if (var3){
3102 {
3103 { /* Inline model#MClassType#mclass (var_mtype) on <var_mtype:MType(MClassType)> */
3104 var6 = var_mtype->attrs[COLOR_nit__model__MClassType___mclass].val; /* _mclass on <var_mtype:MType(MClassType)> */
3105 if (unlikely(var6 == NULL)) {
3106 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
3107 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1138);
3108 fatal_exit(1);
3109 }
3110 var4 = var6;
3111 RET_LABEL5:(void)0;
3112 }
3113 }
3114 {
3115 { /* Inline model#MClass#kind (var4) on <var4:MClass> */
3116 var9 = var4->attrs[COLOR_nit__model__MClass___kind].val; /* _kind on <var4:MClass> */
3117 if (unlikely(var9 == NULL)) {
3118 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _kind");
3119 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 436);
3120 fatal_exit(1);
3121 }
3122 var7 = var9;
3123 RET_LABEL8:(void)0;
3124 }
3125 }
3126 var10 = glob_sys;
3127 {
3128 var11 = nit__model___standard__Sys___extern_kind(var10);
3129 }
3130 {
3131 { /* Inline kernel#Object#== (var7,var11) on <var7:MClassKind> */
3132 var_other = var11;
3133 {
3134 { /* Inline kernel#Object#is_same_instance (var7,var_other) on <var7:MClassKind> */
3135 var16 = var7 == var_other;
3136 var14 = var16;
3137 goto RET_LABEL15;
3138 RET_LABEL15:(void)0;
3139 }
3140 }
3141 var12 = var14;
3142 goto RET_LABEL13;
3143 RET_LABEL13:(void)0;
3144 }
3145 }
3146 var2 = var12;
3147 } else {
3148 var2 = var_;
3149 }
3150 var_17 = var2;
3151 if (var2){
3152 {
3153 { /* Inline model#MClassType#mclass (var_mtype) on <var_mtype:MType(MClassType)> */
3154 var20 = var_mtype->attrs[COLOR_nit__model__MClassType___mclass].val; /* _mclass on <var_mtype:MType(MClassType)> */
3155 if (unlikely(var20 == NULL)) {
3156 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
3157 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1138);
3158 fatal_exit(1);
3159 }
3160 var18 = var20;
3161 RET_LABEL19:(void)0;
3162 }
3163 }
3164 {
3165 { /* Inline model#MClass#name (var18) on <var18:MClass> */
3166 var23 = var18->attrs[COLOR_nit__model__MClass___name].val; /* _name on <var18:MClass> */
3167 if (unlikely(var23 == NULL)) {
3168 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
3169 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 362);
3170 fatal_exit(1);
3171 }
3172 var21 = var23;
3173 RET_LABEL22:(void)0;
3174 }
3175 }
3176 if (likely(varonce!=NULL)) {
3177 var24 = varonce;
3178 } else {
3179 var25 = "NativeString";
3180 var26 = standard___standard__NativeString___to_s_with_length(var25, 12l);
3181 var24 = var26;
3182 varonce = var24;
3183 }
3184 {
3185 { /* Inline kernel#Object#!= (var21,var24) on <var21:String> */
3186 var_other29 = var24;
3187 {
3188 var30 = ((short int(*)(val* self, val* p0))(var21->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var21, var_other29); /* == on <var21:String>*/
3189 }
3190 var31 = !var30;
3191 var27 = var31;
3192 goto RET_LABEL28;
3193 RET_LABEL28:(void)0;
3194 }
3195 }
3196 var1 = var27;
3197 } else {
3198 var1 = var_17;
3199 }
3200 if (var1){
3201 {
3202 { /* Inline abstract_compiler#AbstractCompilerVisitor#compiler (self) on <self:SeparateErasureCompilerVisitor> */
3203 var34 = self->attrs[COLOR_nit__abstract_compiler__AbstractCompilerVisitor___compiler].val; /* _compiler on <self:SeparateErasureCompilerVisitor> */
3204 if (unlikely(var34 == NULL)) {
3205 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _compiler");
3206 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1102);
3207 fatal_exit(1);
3208 }
3209 var32 = var34;
3210 RET_LABEL33:(void)0;
3211 }
3212 }
3213 {
3214 { /* Inline abstract_compiler#AbstractCompiler#mainmodule (var32) on <var32:AbstractCompiler(SeparateCompiler)> */
3215 var37 = var32->attrs[COLOR_nit__abstract_compiler__AbstractCompiler___mainmodule].val; /* _mainmodule on <var32:AbstractCompiler(SeparateCompiler)> */
3216 if (unlikely(var37 == NULL)) {
3217 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule");
3218 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 515);
3219 fatal_exit(1);
3220 }
3221 var35 = var37;
3222 RET_LABEL36:(void)0;
3223 }
3224 }
3225 {
3226 var38 = nit__model___MModule___pointer_type(var35);
3227 }
3228 var_valtype = var38;
3229 {
3230 var39 = nit___nit__AbstractCompilerVisitor___new_var(self, var_mtype);
3231 }
3232 var_res = var39;
3233 {
3234 { /* Inline abstract_compiler#AbstractCompilerVisitor#compiler (self) on <self:SeparateErasureCompilerVisitor> */
3235 var43 = self->attrs[COLOR_nit__abstract_compiler__AbstractCompilerVisitor___compiler].val; /* _compiler on <self:SeparateErasureCompilerVisitor> */
3236 if (unlikely(var43 == NULL)) {
3237 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _compiler");
3238 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1102);
3239 fatal_exit(1);
3240 }
3241 var41 = var43;
3242 RET_LABEL42:(void)0;
3243 }
3244 }
3245 {
3246 { /* Inline separate_compiler#SeparateCompiler#runtime_type_analysis (var41) on <var41:AbstractCompiler(SeparateCompiler)> */
3247 var46 = var41->attrs[COLOR_nit__separate_compiler__SeparateCompiler___runtime_type_analysis].val; /* _runtime_type_analysis on <var41:AbstractCompiler(SeparateCompiler)> */
3248 var44 = var46;
3249 RET_LABEL45:(void)0;
3250 }
3251 }
3252 if (var44 == NULL) {
3253 var47 = 0; /* is null */
3254 } else {
3255 var47 = 1; /* arg is null and recv is not */
3256 }
3257 if (0) {
3258 { /* Inline kernel#Object#!= (var44,((val*)NULL)) on <var44:nullable RapidTypeAnalysis> */
3259 var_other29 = ((val*)NULL);
3260 {
3261 var50 = ((short int(*)(val* self, val* p0))(var44->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var44, var_other29); /* == on <var44:nullable RapidTypeAnalysis(RapidTypeAnalysis)>*/
3262 }
3263 var51 = !var50;
3264 var48 = var51;
3265 goto RET_LABEL49;
3266 RET_LABEL49:(void)0;
3267 }
3268 var47 = var48;
3269 }
3270 var_52 = var47;
3271 if (var47){
3272 {
3273 { /* Inline abstract_compiler#AbstractCompilerVisitor#compiler (self) on <self:SeparateErasureCompilerVisitor> */
3274 var55 = self->attrs[COLOR_nit__abstract_compiler__AbstractCompilerVisitor___compiler].val; /* _compiler on <self:SeparateErasureCompilerVisitor> */
3275 if (unlikely(var55 == NULL)) {
3276 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _compiler");
3277 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1102);
3278 fatal_exit(1);
3279 }
3280 var53 = var55;
3281 RET_LABEL54:(void)0;
3282 }
3283 }
3284 {
3285 { /* Inline separate_compiler#SeparateCompiler#runtime_type_analysis (var53) on <var53:AbstractCompiler(SeparateCompiler)> */
3286 var58 = var53->attrs[COLOR_nit__separate_compiler__SeparateCompiler___runtime_type_analysis].val; /* _runtime_type_analysis on <var53:AbstractCompiler(SeparateCompiler)> */
3287 var56 = var58;
3288 RET_LABEL57:(void)0;
3289 }
3290 }
3291 if (var56 == NULL) {
3292 PRINT_ERROR("Runtime error: %s", "Receiver is null");
3293 PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_erasure_compiler, 622);
3294 fatal_exit(1);
3295 } else {
3296 { /* Inline rapid_type_analysis#RapidTypeAnalysis#live_types (var56) on <var56:nullable RapidTypeAnalysis> */
3297 if (unlikely(var56 == NULL)) {
3298 PRINT_ERROR("Runtime error: %s", "Receiver is null");
3299 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis, 60);
3300 fatal_exit(1);
3301 }
3302 var61 = var56->attrs[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___live_types].val; /* _live_types on <var56:nullable RapidTypeAnalysis> */
3303 if (unlikely(var61 == NULL)) {
3304 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_types");
3305 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis, 60);
3306 fatal_exit(1);
3307 }
3308 var59 = var61;
3309 RET_LABEL60:(void)0;
3310 }
3311 }
3312 {
3313 { /* Inline abstract_compiler#RuntimeVariable#mtype (var_value) on <var_value:RuntimeVariable> */
3314 var64 = var_value->attrs[COLOR_nit__abstract_compiler__RuntimeVariable___mtype].val; /* _mtype on <var_value:RuntimeVariable> */
3315 if (unlikely(var64 == NULL)) {
3316 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
3317 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1784);
3318 fatal_exit(1);
3319 }
3320 var62 = var64;
3321 RET_LABEL63:(void)0;
3322 }
3323 }
3324 /* <var62:MType> isa MClassType */
3325 cltype66 = type_nit__MClassType.color;
3326 idtype67 = type_nit__MClassType.id;
3327 if(cltype66 >= var62->type->table_size) {
3328 var65 = 0;
3329 } else {
3330 var65 = var62->type->type_table[cltype66] == idtype67;
3331 }
3332 if (unlikely(!var65)) {
3333 var_class_name = var62 == NULL ? "null" : var62->type->name;
3334 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "MClassType", var_class_name);
3335 PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_erasure_compiler, 622);
3336 fatal_exit(1);
3337 }
3338 {
3339 var68 = standard___standard__HashSet___standard__abstract_collection__Collection__has(var59, var62);
3340 }
3341 var69 = !var68;
3342 var40 = var69;
3343 } else {
3344 var40 = var_52;
3345 }
3346 if (var40){
3347 if (unlikely(varonce70==NULL)) {
3348 var71 = NEW_standard__NativeArray(5l, &type_standard__NativeArray__standard__String);
3349 if (likely(varonce72!=NULL)) {
3350 var73 = varonce72;
3351 } else {
3352 var74 = "/*no boxing of ";
3353 var75 = standard___standard__NativeString___to_s_with_length(var74, 15l);
3354 var73 = var75;
3355 varonce72 = var73;
3356 }
3357 ((struct instance_standard__NativeArray*)var71)->values[0]=var73;
3358 if (likely(varonce76!=NULL)) {
3359 var77 = varonce76;
3360 } else {
3361 var78 = ": ";
3362 var79 = standard___standard__NativeString___to_s_with_length(var78, 2l);
3363 var77 = var79;
3364 varonce76 = var77;
3365 }
3366 ((struct instance_standard__NativeArray*)var71)->values[2]=var77;
3367 if (likely(varonce80!=NULL)) {
3368 var81 = varonce80;
3369 } else {
3370 var82 = " is not live! */";
3371 var83 = standard___standard__NativeString___to_s_with_length(var82, 16l);
3372 var81 = var83;
3373 varonce80 = var81;
3374 }
3375 ((struct instance_standard__NativeArray*)var71)->values[4]=var81;
3376 } else {
3377 var71 = varonce70;
3378 varonce70 = NULL;
3379 }
3380 {
3381 { /* Inline abstract_compiler#RuntimeVariable#mtype (var_value) on <var_value:RuntimeVariable> */
3382 var86 = var_value->attrs[COLOR_nit__abstract_compiler__RuntimeVariable___mtype].val; /* _mtype on <var_value:RuntimeVariable> */
3383 if (unlikely(var86 == NULL)) {
3384 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
3385 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1784);
3386 fatal_exit(1);
3387 }
3388 var84 = var86;
3389 RET_LABEL85:(void)0;
3390 }
3391 }
3392 {
3393 var87 = ((val*(*)(val* self))(var84->class->vft[COLOR_standard__string__Object__to_s]))(var84); /* to_s on <var84:MType>*/
3394 }
3395 ((struct instance_standard__NativeArray*)var71)->values[1]=var87;
3396 {
3397 { /* Inline abstract_compiler#RuntimeVariable#mtype (var_value) on <var_value:RuntimeVariable> */
3398 var90 = var_value->attrs[COLOR_nit__abstract_compiler__RuntimeVariable___mtype].val; /* _mtype on <var_value:RuntimeVariable> */
3399 if (unlikely(var90 == NULL)) {
3400 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
3401 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1784);
3402 fatal_exit(1);
3403 }
3404 var88 = var90;
3405 RET_LABEL89:(void)0;
3406 }
3407 }
3408 {
3409 var91 = ((val*(*)(val* self))(var88->class->vft[COLOR_standard__string__Object__to_s]))(var88); /* to_s on <var88:MType>*/
3410 }
3411 ((struct instance_standard__NativeArray*)var71)->values[3]=var91;
3412 {
3413 var92 = ((val*(*)(val* self))(var71->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var71); /* native_to_s on <var71:NativeArray[String]>*/
3414 }
3415 varonce70 = var71;
3416 {
3417 nit___nit__AbstractCompilerVisitor___add(self, var92); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <self:SeparateErasureCompilerVisitor>*/
3418 }
3419 if (likely(varonce93!=NULL)) {
3420 var94 = varonce93;
3421 } else {
3422 var95 = "PRINT_ERROR(\"Dead code executed!\\n\"); fatal_exit(1);";
3423 var96 = standard___standard__NativeString___to_s_with_length(var95, 52l);
3424 var94 = var96;
3425 varonce93 = var94;
3426 }
3427 {
3428 nit___nit__AbstractCompilerVisitor___add(self, var94); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <self:SeparateErasureCompilerVisitor>*/
3429 }
3430 var = var_res;
3431 goto RET_LABEL;
3432 } else {
3433 }
3434 if (unlikely(varonce97==NULL)) {
3435 var98 = NEW_standard__NativeArray(2l, &type_standard__NativeArray__standard__String);
3436 if (likely(varonce99!=NULL)) {
3437 var100 = varonce99;
3438 } else {
3439 var101 = "BOX_";
3440 var102 = standard___standard__NativeString___to_s_with_length(var101, 4l);
3441 var100 = var102;
3442 varonce99 = var100;
3443 }
3444 ((struct instance_standard__NativeArray*)var98)->values[0]=var100;
3445 } else {
3446 var98 = varonce97;
3447 varonce97 = NULL;
3448 }
3449 {
3450 var103 = ((val*(*)(val* self))(var_valtype->class->vft[COLOR_nit__model_base__MEntity__c_name]))(var_valtype); /* c_name on <var_valtype:MClassType>*/
3451 }
3452 ((struct instance_standard__NativeArray*)var98)->values[1]=var103;
3453 {
3454 var104 = ((val*(*)(val* self))(var98->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var98); /* native_to_s on <var98:NativeArray[String]>*/
3455 }
3456 varonce97 = var98;
3457 {
3458 nit___nit__AbstractCompilerVisitor___require_declaration(self, var104); /* Direct call abstract_compiler#AbstractCompilerVisitor#require_declaration on <self:SeparateErasureCompilerVisitor>*/
3459 }
3460 if (unlikely(varonce105==NULL)) {
3461 var106 = NEW_standard__NativeArray(8l, &type_standard__NativeArray__standard__String);
3462 if (likely(varonce107!=NULL)) {
3463 var108 = varonce107;
3464 } else {
3465 var109 = " = BOX_";
3466 var110 = standard___standard__NativeString___to_s_with_length(var109, 7l);
3467 var108 = var110;
3468 varonce107 = var108;
3469 }
3470 ((struct instance_standard__NativeArray*)var106)->values[1]=var108;
3471 if (likely(varonce111!=NULL)) {
3472 var112 = varonce111;
3473 } else {
3474 var113 = "(";
3475 var114 = standard___standard__NativeString___to_s_with_length(var113, 1l);
3476 var112 = var114;
3477 varonce111 = var112;
3478 }
3479 ((struct instance_standard__NativeArray*)var106)->values[3]=var112;
3480 if (likely(varonce115!=NULL)) {
3481 var116 = varonce115;
3482 } else {
3483 var117 = "); /* boxing ";
3484 var118 = standard___standard__NativeString___to_s_with_length(var117, 13l);
3485 var116 = var118;
3486 varonce115 = var116;
3487 }
3488 ((struct instance_standard__NativeArray*)var106)->values[5]=var116;
3489 if (likely(varonce119!=NULL)) {
3490 var120 = varonce119;
3491 } else {
3492 var121 = " */";
3493 var122 = standard___standard__NativeString___to_s_with_length(var121, 3l);
3494 var120 = var122;
3495 varonce119 = var120;
3496 }
3497 ((struct instance_standard__NativeArray*)var106)->values[7]=var120;
3498 } else {
3499 var106 = varonce105;
3500 varonce105 = NULL;
3501 }
3502 {
3503 var123 = ((val*(*)(val* self))(var_res->class->vft[COLOR_standard__string__Object__to_s]))(var_res); /* to_s on <var_res:RuntimeVariable>*/
3504 }
3505 ((struct instance_standard__NativeArray*)var106)->values[0]=var123;
3506 {
3507 var124 = ((val*(*)(val* self))(var_valtype->class->vft[COLOR_nit__model_base__MEntity__c_name]))(var_valtype); /* c_name on <var_valtype:MClassType>*/
3508 }
3509 ((struct instance_standard__NativeArray*)var106)->values[2]=var124;
3510 {
3511 var125 = ((val*(*)(val* self))(var_value->class->vft[COLOR_standard__string__Object__to_s]))(var_value); /* to_s on <var_value:RuntimeVariable>*/
3512 }
3513 ((struct instance_standard__NativeArray*)var106)->values[4]=var125;
3514 {
3515 { /* Inline abstract_compiler#RuntimeVariable#mtype (var_value) on <var_value:RuntimeVariable> */
3516 var128 = var_value->attrs[COLOR_nit__abstract_compiler__RuntimeVariable___mtype].val; /* _mtype on <var_value:RuntimeVariable> */
3517 if (unlikely(var128 == NULL)) {
3518 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
3519 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1784);
3520 fatal_exit(1);
3521 }
3522 var126 = var128;
3523 RET_LABEL127:(void)0;
3524 }
3525 }
3526 {
3527 var129 = ((val*(*)(val* self))(var126->class->vft[COLOR_standard__string__Object__to_s]))(var126); /* to_s on <var126:MType>*/
3528 }
3529 ((struct instance_standard__NativeArray*)var106)->values[6]=var129;
3530 {
3531 var130 = ((val*(*)(val* self))(var106->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var106); /* native_to_s on <var106:NativeArray[String]>*/
3532 }
3533 varonce105 = var106;
3534 {
3535 nit___nit__AbstractCompilerVisitor___add(self, var130); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <self:SeparateErasureCompilerVisitor>*/
3536 }
3537 if (unlikely(varonce131==NULL)) {
3538 var132 = NEW_standard__NativeArray(2l, &type_standard__NativeArray__standard__String);
3539 if (likely(varonce133!=NULL)) {
3540 var134 = varonce133;
3541 } else {
3542 var135 = "class_";
3543 var136 = standard___standard__NativeString___to_s_with_length(var135, 6l);
3544 var134 = var136;
3545 varonce133 = var134;
3546 }
3547 ((struct instance_standard__NativeArray*)var132)->values[0]=var134;
3548 } else {
3549 var132 = varonce131;
3550 varonce131 = NULL;
3551 }
3552 {
3553 var137 = ((val*(*)(val* self))(var_mtype->class->vft[COLOR_nit__model_base__MEntity__c_name]))(var_mtype); /* c_name on <var_mtype:MType(MClassType)>*/
3554 }
3555 ((struct instance_standard__NativeArray*)var132)->values[1]=var137;
3556 {
3557 var138 = ((val*(*)(val* self))(var132->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var132); /* native_to_s on <var132:NativeArray[String]>*/
3558 }
3559 varonce131 = var132;
3560 {
3561 nit___nit__AbstractCompilerVisitor___require_declaration(self, var138); /* Direct call abstract_compiler#AbstractCompilerVisitor#require_declaration on <self:SeparateErasureCompilerVisitor>*/
3562 }
3563 if (unlikely(varonce139==NULL)) {
3564 var140 = NEW_standard__NativeArray(4l, &type_standard__NativeArray__standard__String);
3565 if (likely(varonce141!=NULL)) {
3566 var142 = varonce141;
3567 } else {
3568 var143 = "->class = &class_";
3569 var144 = standard___standard__NativeString___to_s_with_length(var143, 17l);
3570 var142 = var144;
3571 varonce141 = var142;
3572 }
3573 ((struct instance_standard__NativeArray*)var140)->values[1]=var142;
3574 if (likely(varonce145!=NULL)) {
3575 var146 = varonce145;
3576 } else {
3577 var147 = ";";
3578 var148 = standard___standard__NativeString___to_s_with_length(var147, 1l);
3579 var146 = var148;
3580 varonce145 = var146;
3581 }
3582 ((struct instance_standard__NativeArray*)var140)->values[3]=var146;
3583 } else {
3584 var140 = varonce139;
3585 varonce139 = NULL;
3586 }
3587 {
3588 var149 = ((val*(*)(val* self))(var_res->class->vft[COLOR_standard__string__Object__to_s]))(var_res); /* to_s on <var_res:RuntimeVariable>*/
3589 }
3590 ((struct instance_standard__NativeArray*)var140)->values[0]=var149;
3591 {
3592 var150 = ((val*(*)(val* self))(var_mtype->class->vft[COLOR_nit__model_base__MEntity__c_name]))(var_mtype); /* c_name on <var_mtype:MType(MClassType)>*/
3593 }
3594 ((struct instance_standard__NativeArray*)var140)->values[2]=var150;
3595 {
3596 var151 = ((val*(*)(val* self))(var140->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var140); /* native_to_s on <var140:NativeArray[String]>*/
3597 }
3598 varonce139 = var140;
3599 {
3600 nit___nit__AbstractCompilerVisitor___add(self, var151); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <self:SeparateErasureCompilerVisitor>*/
3601 }
3602 var = var_res;
3603 goto RET_LABEL;
3604 } else {
3605 var = var_value;
3606 goto RET_LABEL;
3607 }
3608 RET_LABEL:;
3609 return var;
3610 }
3611 /* method separate_erasure_compiler#SeparateErasureCompilerVisitor#class_name_string for (self: SeparateErasureCompilerVisitor, RuntimeVariable): String */
3612 val* nit___nit__SeparateErasureCompilerVisitor___nit__abstract_compiler__AbstractCompilerVisitor__class_name_string(val* self, val* p0) {
3613 val* var /* : String */;
3614 val* var_value /* var value: RuntimeVariable */;
3615 static val* varonce;
3616 val* var1 /* : String */;
3617 char* var2 /* : NativeString */;
3618 val* var3 /* : FlatString */;
3619 val* var4 /* : String */;
3620 val* var_res /* var res: String */;
3621 val* var6 /* : NativeArray[String] */;
3622 static val* varonce5;
3623 static val* varonce7;
3624 val* var8 /* : String */;
3625 char* var9 /* : NativeString */;
3626 val* var10 /* : FlatString */;
3627 static val* varonce11;
3628 val* var12 /* : String */;
3629 char* var13 /* : NativeString */;
3630 val* var14 /* : FlatString */;
3631 val* var15 /* : String */;
3632 val* var16 /* : MType */;
3633 val* var18 /* : MType */;
3634 short int var19 /* : Bool */;
3635 short int var20 /* : Bool */;
3636 val* var22 /* : NativeArray[String] */;
3637 static val* varonce21;
3638 static val* varonce23;
3639 val* var24 /* : String */;
3640 char* var25 /* : NativeString */;
3641 val* var26 /* : FlatString */;
3642 static val* varonce27;
3643 val* var28 /* : String */;
3644 char* var29 /* : NativeString */;
3645 val* var30 /* : FlatString */;
3646 static val* varonce31;
3647 val* var32 /* : String */;
3648 char* var33 /* : NativeString */;
3649 val* var34 /* : FlatString */;
3650 val* var35 /* : String */;
3651 val* var36 /* : String */;
3652 val* var37 /* : String */;
3653 val* var39 /* : NativeArray[String] */;
3654 static val* varonce38;
3655 static val* varonce40;
3656 val* var41 /* : String */;
3657 char* var42 /* : NativeString */;
3658 val* var43 /* : FlatString */;
3659 val* var44 /* : MType */;
3660 val* var46 /* : MType */;
3661 val* var47 /* : String */;
3662 val* var48 /* : String */;
3663 val* var50 /* : NativeArray[String] */;
3664 static val* varonce49;
3665 static val* varonce51;
3666 val* var52 /* : String */;
3667 char* var53 /* : NativeString */;
3668 val* var54 /* : FlatString */;
3669 static val* varonce55;
3670 val* var56 /* : String */;
3671 char* var57 /* : NativeString */;
3672 val* var58 /* : FlatString */;
3673 val* var59 /* : MType */;
3674 val* var61 /* : MType */;
3675 val* var62 /* : String */;
3676 val* var63 /* : String */;
3677 var_value = p0;
3678 if (likely(varonce!=NULL)) {
3679 var1 = varonce;
3680 } else {
3681 var2 = "var_class_name";
3682 var3 = standard___standard__NativeString___to_s_with_length(var2, 14l);
3683 var1 = var3;
3684 varonce = var1;
3685 }
3686 {
3687 var4 = nit___nit__AbstractCompilerVisitor___get_name(self, var1);
3688 }
3689 var_res = var4;
3690 if (unlikely(varonce5==NULL)) {
3691 var6 = NEW_standard__NativeArray(3l, &type_standard__NativeArray__standard__String);
3692 if (likely(varonce7!=NULL)) {
3693 var8 = varonce7;
3694 } else {
3695 var9 = "const char* ";
3696 var10 = standard___standard__NativeString___to_s_with_length(var9, 12l);
3697 var8 = var10;
3698 varonce7 = var8;
3699 }
3700 ((struct instance_standard__NativeArray*)var6)->values[0]=var8;
3701 if (likely(varonce11!=NULL)) {
3702 var12 = varonce11;
3703 } else {
3704 var13 = ";";
3705 var14 = standard___standard__NativeString___to_s_with_length(var13, 1l);
3706 var12 = var14;
3707 varonce11 = var12;
3708 }
3709 ((struct instance_standard__NativeArray*)var6)->values[2]=var12;
3710 } else {
3711 var6 = varonce5;
3712 varonce5 = NULL;
3713 }
3714 ((struct instance_standard__NativeArray*)var6)->values[1]=var_res;
3715 {
3716 var15 = ((val*(*)(val* self))(var6->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var6); /* native_to_s on <var6:NativeArray[String]>*/
3717 }
3718 varonce5 = var6;
3719 {
3720 nit___nit__AbstractCompilerVisitor___add_decl(self, var15); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <self:SeparateErasureCompilerVisitor>*/
3721 }
3722 {
3723 { /* Inline abstract_compiler#RuntimeVariable#mtype (var_value) on <var_value:RuntimeVariable> */
3724 var18 = var_value->attrs[COLOR_nit__abstract_compiler__RuntimeVariable___mtype].val; /* _mtype on <var_value:RuntimeVariable> */
3725 if (unlikely(var18 == NULL)) {
3726 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
3727 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1784);
3728 fatal_exit(1);
3729 }
3730 var16 = var18;
3731 RET_LABEL17:(void)0;
3732 }
3733 }
3734 {
3735 var19 = ((short int(*)(val* self))(var16->class->vft[COLOR_nit__abstract_compiler__MType__is_c_primitive]))(var16); /* is_c_primitive on <var16:MType>*/
3736 }
3737 var20 = !var19;
3738 if (var20){
3739 if (unlikely(varonce21==NULL)) {
3740 var22 = NEW_standard__NativeArray(6l, &type_standard__NativeArray__standard__String);
3741 if (likely(varonce23!=NULL)) {
3742 var24 = varonce23;
3743 } else {
3744 var25 = " = ";
3745 var26 = standard___standard__NativeString___to_s_with_length(var25, 3l);
3746 var24 = var26;
3747 varonce23 = var24;
3748 }
3749 ((struct instance_standard__NativeArray*)var22)->values[1]=var24;
3750 if (likely(varonce27!=NULL)) {
3751 var28 = varonce27;
3752 } else {
3753 var29 = " == NULL ? \"null\" : ";
3754 var30 = standard___standard__NativeString___to_s_with_length(var29, 20l);
3755 var28 = var30;
3756 varonce27 = var28;
3757 }
3758 ((struct instance_standard__NativeArray*)var22)->values[3]=var28;
3759 if (likely(varonce31!=NULL)) {
3760 var32 = varonce31;
3761 } else {
3762 var33 = "->class->name;";
3763 var34 = standard___standard__NativeString___to_s_with_length(var33, 14l);
3764 var32 = var34;
3765 varonce31 = var32;
3766 }
3767 ((struct instance_standard__NativeArray*)var22)->values[5]=var32;
3768 } else {
3769 var22 = varonce21;
3770 varonce21 = NULL;
3771 }
3772 ((struct instance_standard__NativeArray*)var22)->values[0]=var_res;
3773 {
3774 var35 = ((val*(*)(val* self))(var_value->class->vft[COLOR_standard__string__Object__to_s]))(var_value); /* to_s on <var_value:RuntimeVariable>*/
3775 }
3776 ((struct instance_standard__NativeArray*)var22)->values[2]=var35;
3777 {
3778 var36 = ((val*(*)(val* self))(var_value->class->vft[COLOR_standard__string__Object__to_s]))(var_value); /* to_s on <var_value:RuntimeVariable>*/
3779 }
3780 ((struct instance_standard__NativeArray*)var22)->values[4]=var36;
3781 {
3782 var37 = ((val*(*)(val* self))(var22->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var22); /* native_to_s on <var22:NativeArray[String]>*/
3783 }
3784 varonce21 = var22;
3785 {
3786 nit___nit__AbstractCompilerVisitor___add(self, var37); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <self:SeparateErasureCompilerVisitor>*/
3787 }
3788 } else {
3789 if (unlikely(varonce38==NULL)) {
3790 var39 = NEW_standard__NativeArray(2l, &type_standard__NativeArray__standard__String);
3791 if (likely(varonce40!=NULL)) {
3792 var41 = varonce40;
3793 } else {
3794 var42 = "class_";
3795 var43 = standard___standard__NativeString___to_s_with_length(var42, 6l);
3796 var41 = var43;
3797 varonce40 = var41;
3798 }
3799 ((struct instance_standard__NativeArray*)var39)->values[0]=var41;
3800 } else {
3801 var39 = varonce38;
3802 varonce38 = NULL;
3803 }
3804 {
3805 { /* Inline abstract_compiler#RuntimeVariable#mtype (var_value) on <var_value:RuntimeVariable> */
3806 var46 = var_value->attrs[COLOR_nit__abstract_compiler__RuntimeVariable___mtype].val; /* _mtype on <var_value:RuntimeVariable> */
3807 if (unlikely(var46 == NULL)) {
3808 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
3809 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1784);
3810 fatal_exit(1);
3811 }
3812 var44 = var46;
3813 RET_LABEL45:(void)0;
3814 }
3815 }
3816 {
3817 var47 = ((val*(*)(val* self))(var44->class->vft[COLOR_nit__model_base__MEntity__c_name]))(var44); /* c_name on <var44:MType>*/
3818 }
3819 ((struct instance_standard__NativeArray*)var39)->values[1]=var47;
3820 {
3821 var48 = ((val*(*)(val* self))(var39->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var39); /* native_to_s on <var39:NativeArray[String]>*/
3822 }
3823 varonce38 = var39;
3824 {
3825 nit___nit__AbstractCompilerVisitor___require_declaration(self, var48); /* Direct call abstract_compiler#AbstractCompilerVisitor#require_declaration on <self:SeparateErasureCompilerVisitor>*/
3826 }
3827 if (unlikely(varonce49==NULL)) {
3828 var50 = NEW_standard__NativeArray(4l, &type_standard__NativeArray__standard__String);
3829 if (likely(varonce51!=NULL)) {
3830 var52 = varonce51;
3831 } else {
3832 var53 = " = class_";
3833 var54 = standard___standard__NativeString___to_s_with_length(var53, 9l);
3834 var52 = var54;
3835 varonce51 = var52;
3836 }
3837 ((struct instance_standard__NativeArray*)var50)->values[1]=var52;
3838 if (likely(varonce55!=NULL)) {
3839 var56 = varonce55;
3840 } else {
3841 var57 = ".name;";
3842 var58 = standard___standard__NativeString___to_s_with_length(var57, 6l);
3843 var56 = var58;
3844 varonce55 = var56;
3845 }
3846 ((struct instance_standard__NativeArray*)var50)->values[3]=var56;
3847 } else {
3848 var50 = varonce49;
3849 varonce49 = NULL;
3850 }
3851 ((struct instance_standard__NativeArray*)var50)->values[0]=var_res;
3852 {
3853 { /* Inline abstract_compiler#RuntimeVariable#mtype (var_value) on <var_value:RuntimeVariable> */
3854 var61 = var_value->attrs[COLOR_nit__abstract_compiler__RuntimeVariable___mtype].val; /* _mtype on <var_value:RuntimeVariable> */
3855 if (unlikely(var61 == NULL)) {
3856 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
3857 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1784);
3858 fatal_exit(1);
3859 }
3860 var59 = var61;
3861 RET_LABEL60:(void)0;
3862 }
3863 }
3864 {
3865 var62 = ((val*(*)(val* self))(var59->class->vft[COLOR_nit__model_base__MEntity__c_name]))(var59); /* c_name on <var59:MType>*/
3866 }
3867 ((struct instance_standard__NativeArray*)var50)->values[2]=var62;
3868 {
3869 var63 = ((val*(*)(val* self))(var50->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var50); /* native_to_s on <var50:NativeArray[String]>*/
3870 }
3871 varonce49 = var50;
3872 {
3873 nit___nit__AbstractCompilerVisitor___add(self, var63); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <self:SeparateErasureCompilerVisitor>*/
3874 }
3875 }
3876 var = var_res;
3877 goto RET_LABEL;
3878 RET_LABEL:;
3879 return var;
3880 }
3881 /* method separate_erasure_compiler#SeparateErasureCompilerVisitor#native_array_instance for (self: SeparateErasureCompilerVisitor, MType, RuntimeVariable): RuntimeVariable */
3882 val* nit___nit__SeparateErasureCompilerVisitor___nit__abstract_compiler__AbstractCompilerVisitor__native_array_instance(val* self, val* p0, val* p1) {
3883 val* var /* : RuntimeVariable */;
3884 val* var_elttype /* var elttype: MType */;
3885 val* var_length /* var length: RuntimeVariable */;
3886 val* var1 /* : MModule */;
3887 val* var2 /* : MClass */;
3888 val* var_nclass /* var nclass: MClass */;
3889 val* var3 /* : Array[MType] */;
3890 val* var_ /* var : Array[MType] */;
3891 val* var4 /* : MClassType */;
3892 val* var_mtype /* var mtype: MClassType */;
3893 val* var5 /* : RuntimeVariable */;
3894 val* var_res /* var res: RuntimeVariable */;
3895 val* var7 /* : NativeArray[String] */;
3896 static val* varonce;
3897 static val* varonce8;
3898 val* var9 /* : String */;
3899 char* var10 /* : NativeString */;
3900 val* var11 /* : FlatString */;
3901 val* var12 /* : String */;
3902 val* var13 /* : String */;
3903 val* var15 /* : NativeArray[String] */;
3904 static val* varonce14;
3905 static val* varonce16;
3906 val* var17 /* : String */;
3907 char* var18 /* : NativeString */;
3908 val* var19 /* : FlatString */;
3909 static val* varonce20;
3910 val* var21 /* : String */;
3911 char* var22 /* : NativeString */;
3912 val* var23 /* : FlatString */;
3913 static val* varonce24;
3914 val* var25 /* : String */;
3915 char* var26 /* : NativeString */;
3916 val* var27 /* : FlatString */;
3917 val* var28 /* : String */;
3918 val* var29 /* : String */;
3919 val* var30 /* : String */;
3920 val* var31 /* : String */;
3921 var_elttype = p0;
3922 var_length = p1;
3923 {
3924 var1 = nit___nit__AbstractCompilerVisitor___mmodule(self);
3925 }
3926 {
3927 var2 = nit__model___MModule___native_array_class(var1);
3928 }
3929 var_nclass = var2;
3930 var3 = NEW_standard__Array(&type_standard__Array__nit__MType);
3931 {
3932 standard___standard__Array___with_capacity(var3, 1l); /* Direct call array#Array#with_capacity on <var3:Array[MType]>*/
3933 }
3934 var_ = var3;
3935 {
3936 standard___standard__AbstractArray___standard__abstract_collection__Sequence__push(var_, var_elttype); /* Direct call array#AbstractArray#push on <var_:Array[MType]>*/
3937 }
3938 {
3939 var4 = nit___nit__MClass___get_mtype(var_nclass, var_);
3940 }
3941 var_mtype = var4;
3942 {
3943 var5 = nit___nit__AbstractCompilerVisitor___new_var(self, var_mtype);
3944 }
3945 var_res = var5;
3946 {
3947 { /* Inline abstract_compiler#RuntimeVariable#is_exact= (var_res,1) on <var_res:RuntimeVariable> */
3948 var_res->attrs[COLOR_nit__abstract_compiler__RuntimeVariable___is_exact].s = 1; /* _is_exact on <var_res:RuntimeVariable> */
3949 RET_LABEL6:(void)0;
3950 }
3951 }
3952 if (unlikely(varonce==NULL)) {
3953 var7 = NEW_standard__NativeArray(2l, &type_standard__NativeArray__standard__String);
3954 if (likely(varonce8!=NULL)) {
3955 var9 = varonce8;
3956 } else {
3957 var10 = "NEW_";
3958 var11 = standard___standard__NativeString___to_s_with_length(var10, 4l);
3959 var9 = var11;
3960 varonce8 = var9;
3961 }
3962 ((struct instance_standard__NativeArray*)var7)->values[0]=var9;
3963 } else {
3964 var7 = varonce;
3965 varonce = NULL;
3966 }
3967 {
3968 var12 = nit___nit__MClass___nit__model_base__MEntity__c_name(var_nclass);
3969 }
3970 ((struct instance_standard__NativeArray*)var7)->values[1]=var12;
3971 {
3972 var13 = ((val*(*)(val* self))(var7->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var7); /* native_to_s on <var7:NativeArray[String]>*/
3973 }
3974 varonce = var7;
3975 {
3976 nit___nit__AbstractCompilerVisitor___require_declaration(self, var13); /* Direct call abstract_compiler#AbstractCompilerVisitor#require_declaration on <self:SeparateErasureCompilerVisitor>*/
3977 }
3978 if (unlikely(varonce14==NULL)) {
3979 var15 = NEW_standard__NativeArray(6l, &type_standard__NativeArray__standard__String);
3980 if (likely(varonce16!=NULL)) {
3981 var17 = varonce16;
3982 } else {
3983 var18 = " = NEW_";
3984 var19 = standard___standard__NativeString___to_s_with_length(var18, 7l);
3985 var17 = var19;
3986 varonce16 = var17;
3987 }
3988 ((struct instance_standard__NativeArray*)var15)->values[1]=var17;
3989 if (likely(varonce20!=NULL)) {
3990 var21 = varonce20;
3991 } else {
3992 var22 = "(";
3993 var23 = standard___standard__NativeString___to_s_with_length(var22, 1l);
3994 var21 = var23;
3995 varonce20 = var21;
3996 }
3997 ((struct instance_standard__NativeArray*)var15)->values[3]=var21;
3998 if (likely(varonce24!=NULL)) {
3999 var25 = varonce24;
4000 } else {
4001 var26 = ");";
4002 var27 = standard___standard__NativeString___to_s_with_length(var26, 2l);
4003 var25 = var27;
4004 varonce24 = var25;
4005 }
4006 ((struct instance_standard__NativeArray*)var15)->values[5]=var25;
4007 } else {
4008 var15 = varonce14;
4009 varonce14 = NULL;
4010 }
4011 {
4012 var28 = ((val*(*)(val* self))(var_res->class->vft[COLOR_standard__string__Object__to_s]))(var_res); /* to_s on <var_res:RuntimeVariable>*/
4013 }
4014 ((struct instance_standard__NativeArray*)var15)->values[0]=var28;
4015 {
4016 var29 = nit___nit__MClass___nit__model_base__MEntity__c_name(var_nclass);
4017 }
4018 ((struct instance_standard__NativeArray*)var15)->values[2]=var29;
4019 {
4020 var30 = ((val*(*)(val* self))(var_length->class->vft[COLOR_standard__string__Object__to_s]))(var_length); /* to_s on <var_length:RuntimeVariable>*/
4021 }
4022 ((struct instance_standard__NativeArray*)var15)->values[4]=var30;
4023 {
4024 var31 = ((val*(*)(val* self))(var15->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var15); /* native_to_s on <var15:NativeArray[String]>*/
4025 }
4026 varonce14 = var15;
4027 {
4028 nit___nit__AbstractCompilerVisitor___add(self, var31); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <self:SeparateErasureCompilerVisitor>*/
4029 }
4030 var = var_res;
4031 goto RET_LABEL;
4032 RET_LABEL:;
4033 return var;
4034 }
4035 /* method separate_erasure_compiler#SeparateErasureCompilerVisitor#calloc_array for (self: SeparateErasureCompilerVisitor, MType, Array[RuntimeVariable]) */
4036 void nit___nit__SeparateErasureCompilerVisitor___nit__abstract_compiler__AbstractCompilerVisitor__calloc_array(val* self, val* p0, val* p1) {
4037 val* var_ret_type /* var ret_type: MType */;
4038 val* var_arguments /* var arguments: Array[RuntimeVariable] */;
4039 short int var /* : Bool */;
4040 int cltype;
4041 int idtype;
4042 const char* var_class_name;
4043 val* var_ret /* var ret: MClassType */;
4044 val* var1 /* : NativeArray[String] */;
4045 static val* varonce;
4046 static val* varonce2;
4047 val* var3 /* : String */;
4048 char* var4 /* : NativeString */;
4049 val* var5 /* : FlatString */;
4050 val* var6 /* : MClass */;
4051 val* var8 /* : MClass */;
4052 val* var9 /* : String */;
4053 val* var10 /* : String */;
4054 val* var12 /* : NativeArray[String] */;
4055 static val* varonce11;
4056 static val* varonce13;
4057 val* var14 /* : String */;
4058 char* var15 /* : NativeString */;
4059 val* var16 /* : FlatString */;
4060 static val* varonce17;
4061 val* var18 /* : String */;
4062 char* var19 /* : NativeString */;
4063 val* var20 /* : FlatString */;
4064 static val* varonce21;
4065 val* var22 /* : String */;
4066 char* var23 /* : NativeString */;
4067 val* var24 /* : FlatString */;
4068 val* var25 /* : MClass */;
4069 val* var27 /* : MClass */;
4070 val* var28 /* : String */;
4071 val* var29 /* : nullable Object */;
4072 val* var30 /* : String */;
4073 val* var31 /* : String */;
4074 val* var32 /* : RuntimeVariable */;
4075 var_ret_type = p0;
4076 var_arguments = p1;
4077 /* <var_ret_type:MType> isa MClassType */
4078 cltype = type_nit__MClassType.color;
4079 idtype = type_nit__MClassType.id;
4080 if(cltype >= var_ret_type->type->table_size) {
4081 var = 0;
4082 } else {
4083 var = var_ret_type->type->type_table[cltype] == idtype;
4084 }
4085 if (unlikely(!var)) {
4086 var_class_name = var_ret_type == NULL ? "null" : var_ret_type->type->name;
4087 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "MClassType", var_class_name);
4088 PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_erasure_compiler, 663);
4089 fatal_exit(1);
4090 }
4091 var_ret = var_ret_type;
4092 if (unlikely(varonce==NULL)) {
4093 var1 = NEW_standard__NativeArray(2l, &type_standard__NativeArray__standard__String);
4094 if (likely(varonce2!=NULL)) {
4095 var3 = varonce2;
4096 } else {
4097 var4 = "NEW_";
4098 var5 = standard___standard__NativeString___to_s_with_length(var4, 4l);
4099 var3 = var5;
4100 varonce2 = var3;
4101 }
4102 ((struct instance_standard__NativeArray*)var1)->values[0]=var3;
4103 } else {
4104 var1 = varonce;
4105 varonce = NULL;
4106 }
4107 {
4108 { /* Inline model#MClassType#mclass (var_ret) on <var_ret:MClassType> */
4109 var8 = var_ret->attrs[COLOR_nit__model__MClassType___mclass].val; /* _mclass on <var_ret:MClassType> */
4110 if (unlikely(var8 == NULL)) {
4111 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
4112 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1138);
4113 fatal_exit(1);
4114 }
4115 var6 = var8;
4116 RET_LABEL7:(void)0;
4117 }
4118 }
4119 {
4120 var9 = nit___nit__MClass___nit__model_base__MEntity__c_name(var6);
4121 }
4122 ((struct instance_standard__NativeArray*)var1)->values[1]=var9;
4123 {
4124 var10 = ((val*(*)(val* self))(var1->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var1); /* native_to_s on <var1:NativeArray[String]>*/
4125 }
4126 varonce = var1;
4127 {
4128 nit___nit__AbstractCompilerVisitor___require_declaration(self, var10); /* Direct call abstract_compiler#AbstractCompilerVisitor#require_declaration on <self:SeparateErasureCompilerVisitor>*/
4129 }
4130 if (unlikely(varonce11==NULL)) {
4131 var12 = NEW_standard__NativeArray(5l, &type_standard__NativeArray__standard__String);
4132 if (likely(varonce13!=NULL)) {
4133 var14 = varonce13;
4134 } else {
4135 var15 = "NEW_";
4136 var16 = standard___standard__NativeString___to_s_with_length(var15, 4l);
4137 var14 = var16;
4138 varonce13 = var14;
4139 }
4140 ((struct instance_standard__NativeArray*)var12)->values[0]=var14;
4141 if (likely(varonce17!=NULL)) {
4142 var18 = varonce17;
4143 } else {
4144 var19 = "(";
4145 var20 = standard___standard__NativeString___to_s_with_length(var19, 1l);
4146 var18 = var20;
4147 varonce17 = var18;
4148 }
4149 ((struct instance_standard__NativeArray*)var12)->values[2]=var18;
4150 if (likely(varonce21!=NULL)) {
4151 var22 = varonce21;
4152 } else {
4153 var23 = ")";
4154 var24 = standard___standard__NativeString___to_s_with_length(var23, 1l);
4155 var22 = var24;
4156 varonce21 = var22;
4157 }
4158 ((struct instance_standard__NativeArray*)var12)->values[4]=var22;
4159 } else {
4160 var12 = varonce11;
4161 varonce11 = NULL;
4162 }
4163 {
4164 { /* Inline model#MClassType#mclass (var_ret) on <var_ret:MClassType> */
4165 var27 = var_ret->attrs[COLOR_nit__model__MClassType___mclass].val; /* _mclass on <var_ret:MClassType> */
4166 if (unlikely(var27 == NULL)) {
4167 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
4168 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1138);
4169 fatal_exit(1);
4170 }
4171 var25 = var27;
4172 RET_LABEL26:(void)0;
4173 }
4174 }
4175 {
4176 var28 = nit___nit__MClass___nit__model_base__MEntity__c_name(var25);
4177 }
4178 ((struct instance_standard__NativeArray*)var12)->values[1]=var28;
4179 {
4180 var29 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var_arguments, 1l);
4181 }
4182 {
4183 var30 = ((val*(*)(val* self))(var29->class->vft[COLOR_standard__string__Object__to_s]))(var29); /* to_s on <var29:nullable Object(RuntimeVariable)>*/
4184 }
4185 ((struct instance_standard__NativeArray*)var12)->values[3]=var30;
4186 {
4187 var31 = ((val*(*)(val* self))(var12->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var12); /* native_to_s on <var12:NativeArray[String]>*/
4188 }
4189 varonce11 = var12;
4190 {
4191 var32 = nit___nit__AbstractCompilerVisitor___new_expr(self, var31, var_ret_type);
4192 }
4193 {
4194 nit___nit__AbstractCompilerVisitor___ret(self, var32); /* Direct call abstract_compiler#AbstractCompilerVisitor#ret on <self:SeparateErasureCompilerVisitor>*/
4195 }
4196 RET_LABEL:;
4197 }