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 */;
9 val
* var1
/* : String */;
10 char* var2
/* : NativeString */;
11 long var3
/* : Int */;
12 val
* var4
/* : FlatString */;
13 val
* var5
/* : String */;
15 val
* var7
/* : String */;
16 char* var8
/* : NativeString */;
17 long var9
/* : Int */;
18 val
* var10
/* : FlatString */;
19 static val
* varonce11
;
20 val
* var12
/* : String */;
21 char* var13
/* : NativeString */;
22 long var14
/* : Int */;
23 val
* var15
/* : FlatString */;
24 val
* var16
/* : Array[Object] */;
25 long var17
/* : Int */;
26 val
* var18
/* : NativeArray[Object] */;
27 val
* var19
/* : String */;
28 val
* var20
/* : MClassType */;
29 val
* var21
/* : RuntimeVariable */;
30 val
* var_res
/* var res: RuntimeVariable */;
31 static val
* varonce22
;
32 val
* var23
/* : String */;
33 char* var24
/* : NativeString */;
34 long var25
/* : Int */;
35 val
* var26
/* : FlatString */;
36 val
* var27
/* : String */;
37 val
* var_cltype
/* var cltype: String */;
38 static val
* varonce28
;
39 val
* var29
/* : String */;
40 char* var30
/* : NativeString */;
41 long var31
/* : Int */;
42 val
* var32
/* : FlatString */;
43 static val
* varonce33
;
44 val
* var34
/* : String */;
45 char* var35
/* : NativeString */;
46 long var36
/* : Int */;
47 val
* var37
/* : FlatString */;
48 val
* var38
/* : Array[Object] */;
49 long var39
/* : Int */;
50 val
* var40
/* : NativeArray[Object] */;
51 val
* var41
/* : String */;
52 static val
* varonce42
;
53 val
* var43
/* : String */;
54 char* var44
/* : NativeString */;
55 long var45
/* : Int */;
56 val
* var46
/* : FlatString */;
57 val
* var47
/* : String */;
58 val
* var_idtype
/* var idtype: String */;
59 static val
* varonce48
;
60 val
* var49
/* : String */;
61 char* var50
/* : NativeString */;
62 long var51
/* : Int */;
63 val
* var52
/* : FlatString */;
64 static val
* varonce53
;
65 val
* var54
/* : String */;
66 char* var55
/* : NativeString */;
67 long var56
/* : Int */;
68 val
* var57
/* : FlatString */;
69 val
* var58
/* : Array[Object] */;
70 long var59
/* : Int */;
71 val
* var60
/* : NativeArray[Object] */;
72 val
* var61
/* : String */;
73 short int var62
/* : Bool */;
74 short int var_maybe_null
/* var maybe_null: Bool */;
75 static val
* varonce63
;
76 val
* var64
/* : String */;
77 char* var65
/* : NativeString */;
78 long var66
/* : Int */;
79 val
* var67
/* : FlatString */;
80 val
* var_accept_null
/* var accept_null: String */;
81 short int var68
/* : Bool */;
84 val
* var69
/* : MType */;
85 val
* var71
/* : MType */;
86 static val
* varonce72
;
87 val
* var73
/* : String */;
88 char* var74
/* : NativeString */;
89 long var75
/* : Int */;
90 val
* var76
/* : FlatString */;
91 short int var77
/* : Bool */;
94 val
* var80
/* : nullable StaticFrame */;
95 val
* var82
/* : nullable StaticFrame */;
96 val
* var83
/* : MPropDef */;
97 val
* var85
/* : MPropDef */;
98 val
* var86
/* : MClassDef */;
99 val
* var88
/* : MClassDef */;
100 val
* var89
/* : MClassType */;
101 val
* var91
/* : MClassType */;
102 val
* var92
/* : nullable StaticFrame */;
103 val
* var94
/* : nullable StaticFrame */;
104 val
* var95
/* : MPropDef */;
105 val
* var97
/* : MPropDef */;
106 val
* var98
/* : MClassDef */;
107 val
* var100
/* : MClassDef */;
108 val
* var101
/* : MClassType */;
109 val
* var103
/* : MClassType */;
110 val
* var104
/* : nullable StaticFrame */;
111 val
* var106
/* : nullable StaticFrame */;
112 val
* var107
/* : MPropDef */;
113 val
* var109
/* : MPropDef */;
114 val
* var110
/* : MClassDef */;
115 val
* var112
/* : MClassDef */;
116 val
* var113
/* : MModule */;
117 val
* var115
/* : MModule */;
118 short int var116
/* : Bool */;
119 val
* var117
/* : MType */;
120 short int var118
/* : Bool */;
123 val
* var121
/* : MType */;
124 val
* var123
/* : MType */;
125 static val
* varonce124
;
126 val
* var125
/* : String */;
127 char* var126
/* : NativeString */;
128 long var127
/* : Int */;
129 val
* var128
/* : FlatString */;
130 val
* var129
/* : MType */;
131 val
* var131
/* : MType */;
132 val
* var132
/* : nullable StaticFrame */;
133 val
* var134
/* : nullable StaticFrame */;
134 val
* var135
/* : MPropDef */;
135 val
* var137
/* : MPropDef */;
136 val
* var138
/* : MClassDef */;
137 val
* var140
/* : MClassDef */;
138 val
* var141
/* : MModule */;
139 val
* var143
/* : MModule */;
140 val
* var144
/* : nullable StaticFrame */;
141 val
* var146
/* : nullable StaticFrame */;
142 val
* var147
/* : MPropDef */;
143 val
* var149
/* : MPropDef */;
144 val
* var150
/* : MClassDef */;
145 val
* var152
/* : MClassDef */;
146 val
* var153
/* : MClassType */;
147 val
* var155
/* : MClassType */;
148 short int var156
/* : Bool */;
149 static val
* varonce157
;
150 val
* var158
/* : String */;
151 char* var159
/* : NativeString */;
152 long var160
/* : Int */;
153 val
* var161
/* : FlatString */;
154 val
* var162
/* : String */;
155 static val
* varonce163
;
156 val
* var164
/* : String */;
157 char* var165
/* : NativeString */;
158 long var166
/* : Int */;
159 val
* var167
/* : FlatString */;
160 static val
* varonce168
;
161 val
* var169
/* : String */;
162 char* var170
/* : NativeString */;
163 long var171
/* : Int */;
164 val
* var172
/* : FlatString */;
165 val
* var173
/* : Array[Object] */;
166 long var174
/* : Int */;
167 val
* var175
/* : NativeArray[Object] */;
168 val
* var176
/* : String */;
169 val
* var177
/* : AbstractCompiler */;
170 val
* var179
/* : AbstractCompiler */;
171 val
* var180
/* : ModelBuilder */;
172 val
* var182
/* : ModelBuilder */;
173 val
* var183
/* : ToolContext */;
174 val
* var185
/* : ToolContext */;
175 val
* var186
/* : OptionBool */;
176 val
* var188
/* : OptionBool */;
177 val
* var189
/* : nullable Object */;
178 val
* var191
/* : nullable Object */;
179 short int var192
/* : Bool */;
180 val
* var193
/* : AbstractCompiler */;
181 val
* var195
/* : AbstractCompiler */;
182 val
* var196
/* : HashMap[String, Int] */;
183 val
* var198
/* : HashMap[String, Int] */;
184 val
* var_
/* var : HashMap[String, Int] */;
185 val
* var_199
/* var : String */;
186 val
* var200
/* : nullable Object */;
187 long var201
/* : Int */;
188 long var202
/* : Int */;
189 short int var204
/* : Bool */;
192 const char* var_class_name
;
193 long var207
/* : Int */;
194 long var208
/* : Int */;
195 val
* var209
/* : nullable Object */;
196 static val
* varonce210
;
197 val
* var211
/* : String */;
198 char* var212
/* : NativeString */;
199 long var213
/* : Int */;
200 val
* var214
/* : FlatString */;
201 static val
* varonce215
;
202 val
* var216
/* : String */;
203 char* var217
/* : NativeString */;
204 long var218
/* : Int */;
205 val
* var219
/* : FlatString */;
206 val
* var220
/* : Array[Object] */;
207 long var221
/* : Int */;
208 val
* var222
/* : NativeArray[Object] */;
209 val
* var223
/* : String */;
210 val
* var224
/* : MType */;
211 val
* var226
/* : MType */;
212 val
* var227
/* : String */;
213 static val
* varonce228
;
214 val
* var229
/* : String */;
215 char* var230
/* : NativeString */;
216 long var231
/* : Int */;
217 val
* var232
/* : FlatString */;
218 short int var233
/* : Bool */;
219 static val
* varonce234
;
220 val
* var235
/* : String */;
221 char* var236
/* : NativeString */;
222 long var237
/* : Int */;
223 val
* var238
/* : FlatString */;
224 val
* var239
/* : Array[Object] */;
225 long var240
/* : Int */;
226 val
* var241
/* : NativeArray[Object] */;
227 val
* var242
/* : String */;
228 val
* var_class_ptr
/* var class_ptr: nullable Object */;
229 val
* var243
/* : MType */;
230 val
* var245
/* : MType */;
231 short int var246
/* : Bool */;
234 const char* var_class_name249
;
235 val
* var250
/* : MClass */;
236 val
* var252
/* : MClass */;
237 val
* var_mclass
/* var mclass: MClass */;
238 static val
* varonce253
;
239 val
* var254
/* : String */;
240 char* var255
/* : NativeString */;
241 long var256
/* : Int */;
242 val
* var257
/* : FlatString */;
243 val
* var258
/* : String */;
244 val
* var259
/* : Array[Object] */;
245 long var260
/* : Int */;
246 val
* var261
/* : NativeArray[Object] */;
247 val
* var262
/* : String */;
248 static val
* varonce263
;
249 val
* var264
/* : String */;
250 char* var265
/* : NativeString */;
251 long var266
/* : Int */;
252 val
* var267
/* : FlatString */;
253 val
* var268
/* : String */;
254 static val
* varonce269
;
255 val
* var270
/* : String */;
256 char* var271
/* : NativeString */;
257 long var272
/* : Int */;
258 val
* var273
/* : FlatString */;
259 val
* var274
/* : Array[Object] */;
260 long var275
/* : Int */;
261 val
* var276
/* : NativeArray[Object] */;
262 val
* var277
/* : String */;
263 short int var278
/* : Bool */;
266 static val
* varonce281
;
267 val
* var282
/* : String */;
268 char* var283
/* : NativeString */;
269 long var284
/* : Int */;
270 val
* var285
/* : FlatString */;
271 val
* var286
/* : MClass */;
272 val
* var288
/* : MClass */;
273 val
* var289
/* : String */;
274 val
* var290
/* : Array[Object] */;
275 long var291
/* : Int */;
276 val
* var292
/* : NativeArray[Object] */;
277 val
* var293
/* : String */;
278 static val
* varonce294
;
279 val
* var295
/* : String */;
280 char* var296
/* : NativeString */;
281 long var297
/* : Int */;
282 val
* var298
/* : FlatString */;
283 val
* var299
/* : MClass */;
284 val
* var301
/* : MClass */;
285 val
* var302
/* : String */;
286 static val
* varonce303
;
287 val
* var304
/* : String */;
288 char* var305
/* : NativeString */;
289 long var306
/* : Int */;
290 val
* var307
/* : FlatString */;
291 val
* var308
/* : Array[Object] */;
292 long var309
/* : Int */;
293 val
* var310
/* : NativeArray[Object] */;
294 val
* var311
/* : String */;
295 static val
* varonce312
;
296 val
* var313
/* : String */;
297 char* var314
/* : NativeString */;
298 long var315
/* : Int */;
299 val
* var316
/* : FlatString */;
300 val
* var317
/* : MClass */;
301 val
* var319
/* : MClass */;
302 val
* var320
/* : String */;
303 static val
* varonce321
;
304 val
* var322
/* : String */;
305 char* var323
/* : NativeString */;
306 long var324
/* : Int */;
307 val
* var325
/* : FlatString */;
308 val
* var326
/* : Array[Object] */;
309 long var327
/* : Int */;
310 val
* var328
/* : NativeArray[Object] */;
311 val
* var329
/* : String */;
312 val
* var330
/* : AbstractCompiler */;
313 val
* var332
/* : AbstractCompiler */;
314 val
* var333
/* : ModelBuilder */;
315 val
* var335
/* : ModelBuilder */;
316 val
* var336
/* : ToolContext */;
317 val
* var338
/* : ToolContext */;
318 val
* var339
/* : OptionBool */;
319 val
* var341
/* : OptionBool */;
320 val
* var342
/* : nullable Object */;
321 val
* var344
/* : nullable Object */;
322 short int var345
/* : Bool */;
323 val
* var346
/* : AbstractCompiler */;
324 val
* var348
/* : AbstractCompiler */;
325 val
* var349
/* : HashMap[String, Int] */;
326 val
* var351
/* : HashMap[String, Int] */;
327 val
* var_352
/* var : HashMap[String, Int] */;
328 val
* var_353
/* var : String */;
329 val
* var354
/* : nullable Object */;
330 long var355
/* : Int */;
331 long var356
/* : Int */;
332 short int var358
/* : Bool */;
335 const char* var_class_name361
;
336 long var362
/* : Int */;
337 long var363
/* : Int */;
338 val
* var364
/* : nullable Object */;
339 static val
* varonce365
;
340 val
* var366
/* : String */;
341 char* var367
/* : NativeString */;
342 long var368
/* : Int */;
343 val
* var369
/* : FlatString */;
344 static val
* varonce370
;
345 val
* var371
/* : String */;
346 char* var372
/* : NativeString */;
347 long var373
/* : Int */;
348 val
* var374
/* : FlatString */;
349 val
* var375
/* : Array[Object] */;
350 long var376
/* : Int */;
351 val
* var377
/* : NativeArray[Object] */;
352 val
* var378
/* : String */;
353 short int var379
/* : Bool */;
356 val
* var382
/* : nullable StaticFrame */;
357 val
* var384
/* : nullable StaticFrame */;
358 val
* var385
/* : Array[RuntimeVariable] */;
359 val
* var387
/* : Array[RuntimeVariable] */;
360 val
* var388
/* : nullable Object */;
361 val
* var_recv
/* var recv: RuntimeVariable */;
362 val
* var389
/* : MType */;
363 val
* var391
/* : MType */;
364 val
* var392
/* : String */;
365 static val
* varonce393
;
366 val
* var394
/* : String */;
367 char* var395
/* : NativeString */;
368 long var396
/* : Int */;
369 val
* var397
/* : FlatString */;
370 short int var398
/* : Bool */;
371 static val
* varonce399
;
372 val
* var400
/* : String */;
373 char* var401
/* : NativeString */;
374 long var402
/* : Int */;
375 val
* var403
/* : FlatString */;
376 val
* var404
/* : Array[Object] */;
377 long var405
/* : Int */;
378 val
* var406
/* : NativeArray[Object] */;
379 val
* var407
/* : String */;
380 val
* var_recv_ptr
/* var recv_ptr: nullable Object */;
381 val
* var408
/* : MType */;
382 val
* var410
/* : MType */;
383 short int var411
/* : Bool */;
386 const char* var_class_name414
;
387 val
* var415
/* : MClass */;
388 val
* var417
/* : MClass */;
389 val
* var_mclass418
/* var mclass: MClass */;
390 static val
* varonce419
;
391 val
* var420
/* : String */;
392 char* var421
/* : NativeString */;
393 long var422
/* : Int */;
394 val
* var423
/* : FlatString */;
395 val
* var424
/* : String */;
396 val
* var425
/* : Array[Object] */;
397 long var426
/* : Int */;
398 val
* var427
/* : NativeArray[Object] */;
399 val
* var428
/* : String */;
400 static val
* varonce429
;
401 val
* var430
/* : String */;
402 char* var431
/* : NativeString */;
403 long var432
/* : Int */;
404 val
* var433
/* : FlatString */;
405 val
* var434
/* : String */;
406 static val
* varonce435
;
407 val
* var436
/* : String */;
408 char* var437
/* : NativeString */;
409 long var438
/* : Int */;
410 val
* var439
/* : FlatString */;
411 val
* var440
/* : Array[Object] */;
412 long var441
/* : Int */;
413 val
* var442
/* : NativeArray[Object] */;
414 val
* var443
/* : String */;
415 static val
* varonce444
;
416 val
* var445
/* : String */;
417 char* var446
/* : NativeString */;
418 long var447
/* : Int */;
419 val
* var448
/* : FlatString */;
420 val
* var449
/* : String */;
421 val
* var_entry
/* var entry: String */;
422 static val
* varonce450
;
423 val
* var451
/* : String */;
424 char* var452
/* : NativeString */;
425 long var453
/* : Int */;
426 val
* var454
/* : FlatString */;
427 static val
* varonce455
;
428 val
* var456
/* : String */;
429 char* var457
/* : NativeString */;
430 long var458
/* : Int */;
431 val
* var459
/* : FlatString */;
432 val
* var460
/* : Array[Object] */;
433 long var461
/* : Int */;
434 val
* var462
/* : NativeArray[Object] */;
435 val
* var463
/* : String */;
436 val
* var464
/* : MVirtualTypeProp */;
437 val
* var466
/* : MVirtualTypeProp */;
438 val
* var467
/* : String */;
439 static val
* varonce468
;
440 val
* var469
/* : String */;
441 char* var470
/* : NativeString */;
442 long var471
/* : Int */;
443 val
* var472
/* : FlatString */;
444 static val
* varonce473
;
445 val
* var474
/* : String */;
446 char* var475
/* : NativeString */;
447 long var476
/* : Int */;
448 val
* var477
/* : FlatString */;
449 val
* var478
/* : MVirtualTypeProp */;
450 val
* var480
/* : MVirtualTypeProp */;
451 val
* var481
/* : String */;
452 static val
* varonce482
;
453 val
* var483
/* : String */;
454 char* var484
/* : NativeString */;
455 long var485
/* : Int */;
456 val
* var486
/* : FlatString */;
457 val
* var487
/* : Array[Object] */;
458 long var488
/* : Int */;
459 val
* var489
/* : NativeArray[Object] */;
460 val
* var490
/* : String */;
461 static val
* varonce491
;
462 val
* var492
/* : String */;
463 char* var493
/* : NativeString */;
464 long var494
/* : Int */;
465 val
* var495
/* : FlatString */;
466 static val
* varonce496
;
467 val
* var497
/* : String */;
468 char* var498
/* : NativeString */;
469 long var499
/* : Int */;
470 val
* var500
/* : FlatString */;
471 val
* var501
/* : Array[Object] */;
472 long var502
/* : Int */;
473 val
* var503
/* : NativeArray[Object] */;
474 val
* var504
/* : String */;
475 static val
* varonce505
;
476 val
* var506
/* : String */;
477 char* var507
/* : NativeString */;
478 long var508
/* : Int */;
479 val
* var509
/* : FlatString */;
480 static val
* varonce510
;
481 val
* var511
/* : String */;
482 char* var512
/* : NativeString */;
483 long var513
/* : Int */;
484 val
* var514
/* : FlatString */;
485 val
* var515
/* : Array[Object] */;
486 long var516
/* : Int */;
487 val
* var517
/* : NativeArray[Object] */;
488 val
* var518
/* : String */;
489 short int var519
/* : Bool */;
490 short int var_520
/* var : Bool */;
491 static val
* varonce521
;
492 val
* var522
/* : String */;
493 char* var523
/* : NativeString */;
494 long var524
/* : Int */;
495 val
* var525
/* : FlatString */;
496 short int var526
/* : Bool */;
497 static val
* varonce527
;
498 val
* var528
/* : String */;
499 char* var529
/* : NativeString */;
500 long var530
/* : Int */;
501 val
* var531
/* : FlatString */;
502 val
* var532
/* : String */;
503 val
* var_is_nullable
/* var is_nullable: String */;
504 static val
* varonce533
;
505 val
* var534
/* : String */;
506 char* var535
/* : NativeString */;
507 long var536
/* : Int */;
508 val
* var537
/* : FlatString */;
509 static val
* varonce538
;
510 val
* var539
/* : String */;
511 char* var540
/* : NativeString */;
512 long var541
/* : Int */;
513 val
* var542
/* : FlatString */;
514 val
* var543
/* : Array[Object] */;
515 long var544
/* : Int */;
516 val
* var545
/* : NativeArray[Object] */;
517 val
* var546
/* : String */;
518 static val
* varonce547
;
519 val
* var548
/* : String */;
520 char* var549
/* : NativeString */;
521 long var550
/* : Int */;
522 val
* var551
/* : FlatString */;
523 static val
* varonce552
;
524 val
* var553
/* : String */;
525 char* var554
/* : NativeString */;
526 long var555
/* : Int */;
527 val
* var556
/* : FlatString */;
528 val
* var557
/* : Array[Object] */;
529 long var558
/* : Int */;
530 val
* var559
/* : NativeArray[Object] */;
531 val
* var560
/* : String */;
532 val
* var561
/* : String */;
533 val
* var562
/* : AbstractCompiler */;
534 val
* var564
/* : AbstractCompiler */;
535 val
* var565
/* : ModelBuilder */;
536 val
* var567
/* : ModelBuilder */;
537 val
* var568
/* : ToolContext */;
538 val
* var570
/* : ToolContext */;
539 val
* var571
/* : OptionBool */;
540 val
* var573
/* : OptionBool */;
541 val
* var574
/* : nullable Object */;
542 val
* var576
/* : nullable Object */;
543 short int var577
/* : Bool */;
544 val
* var578
/* : AbstractCompiler */;
545 val
* var580
/* : AbstractCompiler */;
546 val
* var581
/* : HashMap[String, Int] */;
547 val
* var583
/* : HashMap[String, Int] */;
548 val
* var_584
/* var : HashMap[String, Int] */;
549 val
* var_585
/* var : String */;
550 val
* var586
/* : nullable Object */;
551 long var587
/* : Int */;
552 long var588
/* : Int */;
553 short int var590
/* : Bool */;
556 const char* var_class_name593
;
557 long var594
/* : Int */;
558 long var595
/* : Int */;
559 val
* var596
/* : nullable Object */;
560 static val
* varonce597
;
561 val
* var598
/* : String */;
562 char* var599
/* : NativeString */;
563 long var600
/* : Int */;
564 val
* var601
/* : FlatString */;
565 static val
* varonce602
;
566 val
* var603
/* : String */;
567 char* var604
/* : NativeString */;
568 long var605
/* : Int */;
569 val
* var606
/* : FlatString */;
570 val
* var607
/* : Array[Object] */;
571 long var608
/* : Int */;
572 val
* var609
/* : NativeArray[Object] */;
573 val
* var610
/* : String */;
574 static val
* varonce611
;
575 val
* var612
/* : String */;
576 char* var613
/* : NativeString */;
577 long var614
/* : Int */;
578 val
* var615
/* : FlatString */;
579 val
* var616
/* : String */;
580 static val
* varonce617
;
581 val
* var618
/* : String */;
582 char* var619
/* : NativeString */;
583 long var620
/* : Int */;
584 val
* var621
/* : FlatString */;
585 static val
* varonce622
;
586 val
* var623
/* : String */;
587 char* var624
/* : NativeString */;
588 long var625
/* : Int */;
589 val
* var626
/* : FlatString */;
590 val
* var627
/* : Array[Object] */;
591 long var628
/* : Int */;
592 val
* var629
/* : NativeArray[Object] */;
593 val
* var630
/* : String */;
594 static val
* varonce631
;
595 val
* var632
/* : String */;
596 char* var633
/* : NativeString */;
597 long var634
/* : Int */;
598 val
* var635
/* : FlatString */;
599 static val
* varonce636
;
600 val
* var637
/* : String */;
601 char* var638
/* : NativeString */;
602 long var639
/* : Int */;
603 val
* var640
/* : FlatString */;
604 val
* var641
/* : Array[Object] */;
605 long var642
/* : Int */;
606 val
* var643
/* : NativeArray[Object] */;
607 val
* var644
/* : String */;
608 static val
* varonce645
;
609 val
* var646
/* : String */;
610 char* var647
/* : NativeString */;
611 long var648
/* : Int */;
612 val
* var649
/* : FlatString */;
613 static val
* varonce650
;
614 val
* var651
/* : String */;
615 char* var652
/* : NativeString */;
616 long var653
/* : Int */;
617 val
* var654
/* : FlatString */;
618 val
* var655
/* : Array[Object] */;
619 long var656
/* : Int */;
620 val
* var657
/* : NativeArray[Object] */;
621 val
* var658
/* : String */;
622 static val
* varonce659
;
623 val
* var660
/* : String */;
624 char* var661
/* : NativeString */;
625 long var662
/* : Int */;
626 val
* var663
/* : FlatString */;
627 static val
* varonce664
;
628 val
* var665
/* : String */;
629 char* var666
/* : NativeString */;
630 long var667
/* : Int */;
631 val
* var668
/* : FlatString */;
632 static val
* varonce669
;
633 val
* var670
/* : String */;
634 char* var671
/* : NativeString */;
635 long var672
/* : Int */;
636 val
* var673
/* : FlatString */;
637 static val
* varonce674
;
638 val
* var675
/* : String */;
639 char* var676
/* : NativeString */;
640 long var677
/* : Int */;
641 val
* var678
/* : FlatString */;
642 val
* var679
/* : Array[Object] */;
643 long var680
/* : Int */;
644 val
* var681
/* : NativeArray[Object] */;
645 val
* var682
/* : String */;
646 static val
* varonce683
;
647 val
* var684
/* : String */;
648 char* var685
/* : NativeString */;
649 long var686
/* : Int */;
650 val
* var687
/* : FlatString */;
651 val
* var688
/* : Array[Object] */;
652 long var689
/* : Int */;
653 val
* var690
/* : NativeArray[Object] */;
654 val
* var691
/* : String */;
655 static val
* varonce692
;
656 val
* var693
/* : String */;
657 char* var694
/* : NativeString */;
658 long var695
/* : Int */;
659 val
* var696
/* : FlatString */;
660 static val
* varonce697
;
661 val
* var698
/* : String */;
662 char* var699
/* : NativeString */;
663 long var700
/* : Int */;
664 val
* var701
/* : FlatString */;
665 static val
* varonce702
;
666 val
* var703
/* : String */;
667 char* var704
/* : NativeString */;
668 long var705
/* : Int */;
669 val
* var706
/* : FlatString */;
670 static val
* varonce707
;
671 val
* var708
/* : String */;
672 char* var709
/* : NativeString */;
673 long var710
/* : Int */;
674 val
* var711
/* : FlatString */;
675 static val
* varonce712
;
676 val
* var713
/* : String */;
677 char* var714
/* : NativeString */;
678 long var715
/* : Int */;
679 val
* var716
/* : FlatString */;
680 val
* var717
/* : Array[Object] */;
681 long var718
/* : Int */;
682 val
* var719
/* : NativeArray[Object] */;
683 val
* var720
/* : String */;
684 static val
* varonce721
;
685 val
* var722
/* : String */;
686 char* var723
/* : NativeString */;
687 long var724
/* : Int */;
688 val
* var725
/* : FlatString */;
689 static val
* varonce726
;
690 val
* var727
/* : String */;
691 char* var728
/* : NativeString */;
692 long var729
/* : Int */;
693 val
* var730
/* : FlatString */;
700 var2
= "/* type test for ";
702 var4
= standard___standard__NativeString___to_s_with_length(var2
, var3
);
707 var5
= nit___nit__RuntimeVariable___standard__string__Object__inspect(var_value
);
714 var10
= standard___standard__NativeString___to_s_with_length(var8
, var9
);
723 var15
= standard___standard__NativeString___to_s_with_length(var13
, var14
);
727 var16
= NEW_standard__Array(&type_standard__Array__standard__Object
);
728 { /* var16 = array_instance Array[Object] */
730 var18
= NEW_standard__NativeArray(var17
, &type_standard__NativeArray__standard__Object
);
731 ((struct instance_standard__NativeArray
*)var18
)->values
[0] = (val
*) var1
;
732 ((struct instance_standard__NativeArray
*)var18
)->values
[1] = (val
*) var5
;
733 ((struct instance_standard__NativeArray
*)var18
)->values
[2] = (val
*) var7
;
734 ((struct instance_standard__NativeArray
*)var18
)->values
[3] = (val
*) var_mtype
;
735 ((struct instance_standard__NativeArray
*)var18
)->values
[4] = (val
*) var12
;
737 ((void (*)(val
* self
, val
* p0
, long p1
))(var16
->class->vft
[COLOR_standard__array__Array__with_native
]))(var16
, var18
, var17
) /* with_native on <var16:Array[Object]>*/;
741 var19
= ((val
* (*)(val
* self
))(var16
->class->vft
[COLOR_standard__string__Object__to_s
]))(var16
) /* to_s on <var16:Array[Object]>*/;
744 nit___nit__AbstractCompilerVisitor___add(self
, var19
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <self:SeparateErasureCompilerVisitor>*/
747 var20
= nit___nit__AbstractCompilerVisitor___bool_type(self
);
750 var21
= nit___nit__AbstractCompilerVisitor___new_var(self
, var20
);
758 var26
= standard___standard__NativeString___to_s_with_length(var24
, var25
);
763 var27
= nit___nit__AbstractCompilerVisitor___get_name(self
, var23
);
771 var32
= standard___standard__NativeString___to_s_with_length(var30
, var31
);
780 var37
= standard___standard__NativeString___to_s_with_length(var35
, var36
);
784 var38
= NEW_standard__Array(&type_standard__Array__standard__Object
);
785 { /* var38 = array_instance Array[Object] */
787 var40
= NEW_standard__NativeArray(var39
, &type_standard__NativeArray__standard__Object
);
788 ((struct instance_standard__NativeArray
*)var40
)->values
[0] = (val
*) var29
;
789 ((struct instance_standard__NativeArray
*)var40
)->values
[1] = (val
*) var_cltype
;
790 ((struct instance_standard__NativeArray
*)var40
)->values
[2] = (val
*) var34
;
792 ((void (*)(val
* self
, val
* p0
, long p1
))(var38
->class->vft
[COLOR_standard__array__Array__with_native
]))(var38
, var40
, var39
) /* with_native on <var38:Array[Object]>*/;
796 var41
= ((val
* (*)(val
* self
))(var38
->class->vft
[COLOR_standard__string__Object__to_s
]))(var38
) /* to_s on <var38:Array[Object]>*/;
799 nit___nit__AbstractCompilerVisitor___add_decl(self
, var41
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <self:SeparateErasureCompilerVisitor>*/
806 var46
= standard___standard__NativeString___to_s_with_length(var44
, var45
);
811 var47
= nit___nit__AbstractCompilerVisitor___get_name(self
, var43
);
819 var52
= standard___standard__NativeString___to_s_with_length(var50
, var51
);
828 var57
= standard___standard__NativeString___to_s_with_length(var55
, var56
);
832 var58
= NEW_standard__Array(&type_standard__Array__standard__Object
);
833 { /* var58 = array_instance Array[Object] */
835 var60
= NEW_standard__NativeArray(var59
, &type_standard__NativeArray__standard__Object
);
836 ((struct instance_standard__NativeArray
*)var60
)->values
[0] = (val
*) var49
;
837 ((struct instance_standard__NativeArray
*)var60
)->values
[1] = (val
*) var_idtype
;
838 ((struct instance_standard__NativeArray
*)var60
)->values
[2] = (val
*) var54
;
840 ((void (*)(val
* self
, val
* p0
, long p1
))(var58
->class->vft
[COLOR_standard__array__Array__with_native
]))(var58
, var60
, var59
) /* with_native on <var58:Array[Object]>*/;
844 var61
= ((val
* (*)(val
* self
))(var58
->class->vft
[COLOR_standard__string__Object__to_s
]))(var58
) /* to_s on <var58:Array[Object]>*/;
847 nit___nit__AbstractCompilerVisitor___add_decl(self
, var61
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <self:SeparateErasureCompilerVisitor>*/
850 var62
= nit___nit__SeparateCompilerVisitor___maybe_null(self
, var_value
);
852 var_maybe_null
= var62
;
858 var67
= standard___standard__NativeString___to_s_with_length(var65
, var66
);
862 var_accept_null
= var64
;
863 /* <var_mtype:MType> isa MNullableType */
864 cltype
= type_nit__MNullableType
.color
;
865 idtype
= type_nit__MNullableType
.id
;
866 if(cltype
>= var_mtype
->type
->table_size
) {
869 var68
= var_mtype
->type
->type_table
[cltype
] == idtype
;
873 { /* Inline model#MNullableType#mtype (var_mtype) on <var_mtype:MType(MNullableType)> */
874 var71
= var_mtype
->attrs
[COLOR_nit__model__MNullableType___mtype
].val
; /* _mtype on <var_mtype:MType(MNullableType)> */
875 if (unlikely(var71
== NULL
)) {
876 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
877 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 1506);
890 var76
= standard___standard__NativeString___to_s_with_length(var74
, var75
);
894 var_accept_null
= var73
;
897 /* <var_mtype:MType> isa MParameterType */
898 cltype78
= type_nit__MParameterType
.color
;
899 idtype79
= type_nit__MParameterType
.id
;
900 if(cltype78
>= var_mtype
->type
->table_size
) {
903 var77
= var_mtype
->type
->type_table
[cltype78
] == idtype79
;
907 { /* Inline abstract_compiler#AbstractCompilerVisitor#frame (self) on <self:SeparateErasureCompilerVisitor> */
908 var82
= self
->attrs
[COLOR_nit__abstract_compiler__AbstractCompilerVisitor___frame
].val
; /* _frame on <self:SeparateErasureCompilerVisitor> */
914 PRINT_ERROR("Runtime error: %s", "Receiver is null");
915 PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_erasure_compiler
, 510);
918 { /* Inline abstract_compiler#StaticFrame#mpropdef (var80) on <var80:nullable StaticFrame> */
919 if (unlikely(var80
== NULL
)) {
920 PRINT_ERROR("Runtime error: %s", "Receiver is null");
921 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler
, 1724);
924 var85
= var80
->attrs
[COLOR_nit__abstract_compiler__StaticFrame___mpropdef
].val
; /* _mpropdef on <var80:nullable StaticFrame> */
925 if (unlikely(var85
== NULL
)) {
926 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mpropdef");
927 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler
, 1724);
935 { /* Inline model#MPropDef#mclassdef (var83) on <var83:MPropDef> */
936 var88
= var83
->attrs
[COLOR_nit__model__MPropDef___mclassdef
].val
; /* _mclassdef on <var83:MPropDef> */
937 if (unlikely(var88
== NULL
)) {
938 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdef");
939 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 2010);
947 { /* Inline model#MClassDef#bound_mtype (var86) on <var86:MClassDef> */
948 var91
= var86
->attrs
[COLOR_nit__model__MClassDef___bound_mtype
].val
; /* _bound_mtype on <var86:MClassDef> */
949 if (unlikely(var91
== NULL
)) {
950 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _bound_mtype");
951 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 495);
959 { /* Inline abstract_compiler#AbstractCompilerVisitor#frame (self) on <self:SeparateErasureCompilerVisitor> */
960 var94
= self
->attrs
[COLOR_nit__abstract_compiler__AbstractCompilerVisitor___frame
].val
; /* _frame on <self:SeparateErasureCompilerVisitor> */
966 PRINT_ERROR("Runtime error: %s", "Receiver is null");
967 PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_erasure_compiler
, 510);
970 { /* Inline abstract_compiler#StaticFrame#mpropdef (var92) on <var92:nullable StaticFrame> */
971 if (unlikely(var92
== NULL
)) {
972 PRINT_ERROR("Runtime error: %s", "Receiver is null");
973 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler
, 1724);
976 var97
= var92
->attrs
[COLOR_nit__abstract_compiler__StaticFrame___mpropdef
].val
; /* _mpropdef on <var92:nullable StaticFrame> */
977 if (unlikely(var97
== NULL
)) {
978 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mpropdef");
979 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler
, 1724);
987 { /* Inline model#MPropDef#mclassdef (var95) on <var95:MPropDef> */
988 var100
= var95
->attrs
[COLOR_nit__model__MPropDef___mclassdef
].val
; /* _mclassdef on <var95:MPropDef> */
989 if (unlikely(var100
== NULL
)) {
990 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdef");
991 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 2010);
999 { /* Inline model#MClassDef#bound_mtype (var98) on <var98:MClassDef> */
1000 var103
= var98
->attrs
[COLOR_nit__model__MClassDef___bound_mtype
].val
; /* _bound_mtype on <var98:MClassDef> */
1001 if (unlikely(var103
== NULL
)) {
1002 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _bound_mtype");
1003 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 495);
1007 RET_LABEL102
:(void)0;
1011 { /* Inline abstract_compiler#AbstractCompilerVisitor#frame (self) on <self:SeparateErasureCompilerVisitor> */
1012 var106
= self
->attrs
[COLOR_nit__abstract_compiler__AbstractCompilerVisitor___frame
].val
; /* _frame on <self:SeparateErasureCompilerVisitor> */
1014 RET_LABEL105
:(void)0;
1017 if (var104
== NULL
) {
1018 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1019 PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_erasure_compiler
, 510);
1022 { /* Inline abstract_compiler#StaticFrame#mpropdef (var104) on <var104:nullable StaticFrame> */
1023 if (unlikely(var104
== NULL
)) {
1024 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1025 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler
, 1724);
1028 var109
= var104
->attrs
[COLOR_nit__abstract_compiler__StaticFrame___mpropdef
].val
; /* _mpropdef on <var104:nullable StaticFrame> */
1029 if (unlikely(var109
== NULL
)) {
1030 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mpropdef");
1031 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler
, 1724);
1035 RET_LABEL108
:(void)0;
1039 { /* Inline model#MPropDef#mclassdef (var107) on <var107:MPropDef> */
1040 var112
= var107
->attrs
[COLOR_nit__model__MPropDef___mclassdef
].val
; /* _mclassdef on <var107:MPropDef> */
1041 if (unlikely(var112
== NULL
)) {
1042 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdef");
1043 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 2010);
1047 RET_LABEL111
:(void)0;
1051 { /* Inline model#MClassDef#mmodule (var110) on <var110:MClassDef> */
1052 var115
= var110
->attrs
[COLOR_nit__model__MClassDef___mmodule
].val
; /* _mmodule on <var110:MClassDef> */
1053 if (unlikely(var115
== NULL
)) {
1054 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule");
1055 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 489);
1059 RET_LABEL114
:(void)0;
1064 var117
= nit___nit__MParameterType___MType__resolve_for(var_mtype
, var89
, var101
, var113
, var116
);
1067 /* <var_mtype:MType> isa MNullableType */
1068 cltype119
= type_nit__MNullableType
.color
;
1069 idtype120
= type_nit__MNullableType
.id
;
1070 if(cltype119
>= var_mtype
->type
->table_size
) {
1073 var118
= var_mtype
->type
->type_table
[cltype119
] == idtype120
;
1077 { /* Inline model#MNullableType#mtype (var_mtype) on <var_mtype:MType(MNullableType)> */
1078 var123
= var_mtype
->attrs
[COLOR_nit__model__MNullableType___mtype
].val
; /* _mtype on <var_mtype:MType(MNullableType)> */
1079 if (unlikely(var123
== NULL
)) {
1080 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
1081 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 1506);
1085 RET_LABEL122
:(void)0;
1090 var125
= varonce124
;
1094 var128
= standard___standard__NativeString___to_s_with_length(var126
, var127
);
1096 varonce124
= var125
;
1098 var_accept_null
= var125
;
1104 { /* Inline abstract_compiler#RuntimeVariable#mcasttype (var_value) on <var_value:RuntimeVariable> */
1105 var131
= var_value
->attrs
[COLOR_nit__abstract_compiler__RuntimeVariable___mcasttype
].val
; /* _mcasttype on <var_value:RuntimeVariable> */
1106 if (unlikely(var131
== NULL
)) {
1107 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mcasttype");
1108 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler
, 1683);
1112 RET_LABEL130
:(void)0;
1116 { /* Inline abstract_compiler#AbstractCompilerVisitor#frame (self) on <self:SeparateErasureCompilerVisitor> */
1117 var134
= self
->attrs
[COLOR_nit__abstract_compiler__AbstractCompilerVisitor___frame
].val
; /* _frame on <self:SeparateErasureCompilerVisitor> */
1119 RET_LABEL133
:(void)0;
1122 if (var132
== NULL
) {
1123 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1124 PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_erasure_compiler
, 517);
1127 { /* Inline abstract_compiler#StaticFrame#mpropdef (var132) on <var132:nullable StaticFrame> */
1128 if (unlikely(var132
== NULL
)) {
1129 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1130 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler
, 1724);
1133 var137
= var132
->attrs
[COLOR_nit__abstract_compiler__StaticFrame___mpropdef
].val
; /* _mpropdef on <var132:nullable StaticFrame> */
1134 if (unlikely(var137
== NULL
)) {
1135 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mpropdef");
1136 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler
, 1724);
1140 RET_LABEL136
:(void)0;
1144 { /* Inline model#MPropDef#mclassdef (var135) on <var135:MPropDef> */
1145 var140
= var135
->attrs
[COLOR_nit__model__MPropDef___mclassdef
].val
; /* _mclassdef on <var135:MPropDef> */
1146 if (unlikely(var140
== NULL
)) {
1147 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdef");
1148 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 2010);
1152 RET_LABEL139
:(void)0;
1156 { /* Inline model#MClassDef#mmodule (var138) on <var138:MClassDef> */
1157 var143
= var138
->attrs
[COLOR_nit__model__MClassDef___mmodule
].val
; /* _mmodule on <var138:MClassDef> */
1158 if (unlikely(var143
== NULL
)) {
1159 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule");
1160 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 489);
1164 RET_LABEL142
:(void)0;
1168 { /* Inline abstract_compiler#AbstractCompilerVisitor#frame (self) on <self:SeparateErasureCompilerVisitor> */
1169 var146
= self
->attrs
[COLOR_nit__abstract_compiler__AbstractCompilerVisitor___frame
].val
; /* _frame on <self:SeparateErasureCompilerVisitor> */
1171 RET_LABEL145
:(void)0;
1174 if (var144
== NULL
) {
1175 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1176 PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_erasure_compiler
, 517);
1179 { /* Inline abstract_compiler#StaticFrame#mpropdef (var144) on <var144:nullable StaticFrame> */
1180 if (unlikely(var144
== NULL
)) {
1181 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1182 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler
, 1724);
1185 var149
= var144
->attrs
[COLOR_nit__abstract_compiler__StaticFrame___mpropdef
].val
; /* _mpropdef on <var144:nullable StaticFrame> */
1186 if (unlikely(var149
== NULL
)) {
1187 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mpropdef");
1188 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler
, 1724);
1192 RET_LABEL148
:(void)0;
1196 { /* Inline model#MPropDef#mclassdef (var147) on <var147:MPropDef> */
1197 var152
= var147
->attrs
[COLOR_nit__model__MPropDef___mclassdef
].val
; /* _mclassdef on <var147:MPropDef> */
1198 if (unlikely(var152
== NULL
)) {
1199 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdef");
1200 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 2010);
1204 RET_LABEL151
:(void)0;
1208 { /* Inline model#MClassDef#bound_mtype (var150) on <var150:MClassDef> */
1209 var155
= var150
->attrs
[COLOR_nit__model__MClassDef___bound_mtype
].val
; /* _bound_mtype on <var150:MClassDef> */
1210 if (unlikely(var155
== NULL
)) {
1211 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _bound_mtype");
1212 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 495);
1216 RET_LABEL154
:(void)0;
1220 var156
= nit___nit__MType___is_subtype(var129
, var141
, var153
, var_mtype
);
1224 var158
= varonce157
;
1226 var159
= " = 1; /* easy ";
1228 var161
= standard___standard__NativeString___to_s_with_length(var159
, var160
);
1230 varonce157
= var158
;
1233 var162
= nit___nit__RuntimeVariable___standard__string__Object__inspect(var_value
);
1236 var164
= varonce163
;
1240 var167
= standard___standard__NativeString___to_s_with_length(var165
, var166
);
1242 varonce163
= var164
;
1245 var169
= varonce168
;
1249 var172
= standard___standard__NativeString___to_s_with_length(var170
, var171
);
1251 varonce168
= var169
;
1253 var173
= NEW_standard__Array(&type_standard__Array__standard__Object
);
1254 { /* var173 = array_instance Array[Object] */
1256 var175
= NEW_standard__NativeArray(var174
, &type_standard__NativeArray__standard__Object
);
1257 ((struct instance_standard__NativeArray
*)var175
)->values
[0] = (val
*) var_res
;
1258 ((struct instance_standard__NativeArray
*)var175
)->values
[1] = (val
*) var158
;
1259 ((struct instance_standard__NativeArray
*)var175
)->values
[2] = (val
*) var162
;
1260 ((struct instance_standard__NativeArray
*)var175
)->values
[3] = (val
*) var164
;
1261 ((struct instance_standard__NativeArray
*)var175
)->values
[4] = (val
*) var_mtype
;
1262 ((struct instance_standard__NativeArray
*)var175
)->values
[5] = (val
*) var169
;
1264 ((void (*)(val
* self
, val
* p0
, long p1
))(var173
->class->vft
[COLOR_standard__array__Array__with_native
]))(var173
, var175
, var174
) /* with_native on <var173:Array[Object]>*/;
1268 var176
= ((val
* (*)(val
* self
))(var173
->class->vft
[COLOR_standard__string__Object__to_s
]))(var173
) /* to_s on <var173:Array[Object]>*/;
1271 nit___nit__AbstractCompilerVisitor___add(self
, var176
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <self:SeparateErasureCompilerVisitor>*/
1274 { /* Inline abstract_compiler#AbstractCompilerVisitor#compiler (self) on <self:SeparateErasureCompilerVisitor> */
1275 var179
= self
->attrs
[COLOR_nit__abstract_compiler__AbstractCompilerVisitor___compiler
].val
; /* _compiler on <self:SeparateErasureCompilerVisitor> */
1276 if (unlikely(var179
== NULL
)) {
1277 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _compiler");
1278 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler
, 1059);
1282 RET_LABEL178
:(void)0;
1286 { /* Inline abstract_compiler#AbstractCompiler#modelbuilder (var177) on <var177:AbstractCompiler(SeparateCompiler)> */
1287 var182
= var177
->attrs
[COLOR_nit__abstract_compiler__AbstractCompiler___modelbuilder
].val
; /* _modelbuilder on <var177:AbstractCompiler(SeparateCompiler)> */
1288 if (unlikely(var182
== NULL
)) {
1289 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
1290 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler
, 481);
1294 RET_LABEL181
:(void)0;
1298 { /* Inline modelbuilder_base#ModelBuilder#toolcontext (var180) on <var180:ModelBuilder> */
1299 var185
= var180
->attrs
[COLOR_nit__modelbuilder_base__ModelBuilder___toolcontext
].val
; /* _toolcontext on <var180:ModelBuilder> */
1300 if (unlikely(var185
== NULL
)) {
1301 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
1302 PRINT_ERROR(" (%s:%d)\n", FILE_nit__modelbuilder_base
, 47);
1306 RET_LABEL184
:(void)0;
1310 { /* Inline abstract_compiler#ToolContext#opt_typing_test_metrics (var183) on <var183:ToolContext> */
1311 var188
= var183
->attrs
[COLOR_nit__abstract_compiler__ToolContext___opt_typing_test_metrics
].val
; /* _opt_typing_test_metrics on <var183:ToolContext> */
1312 if (unlikely(var188
== NULL
)) {
1313 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_typing_test_metrics");
1314 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler
, 59);
1318 RET_LABEL187
:(void)0;
1322 { /* Inline opts#Option#value (var186) on <var186:OptionBool> */
1323 var191
= var186
->attrs
[COLOR_opts__Option___value
].val
; /* _value on <var186:OptionBool> */
1325 RET_LABEL190
:(void)0;
1328 var192
= ((struct instance_standard__Bool
*)var189
)->value
; /* autounbox from nullable Object to Bool */;
1331 { /* Inline abstract_compiler#AbstractCompilerVisitor#compiler (self) on <self:SeparateErasureCompilerVisitor> */
1332 var195
= self
->attrs
[COLOR_nit__abstract_compiler__AbstractCompilerVisitor___compiler
].val
; /* _compiler on <self:SeparateErasureCompilerVisitor> */
1333 if (unlikely(var195
== NULL
)) {
1334 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _compiler");
1335 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler
, 1059);
1339 RET_LABEL194
:(void)0;
1343 { /* Inline abstract_compiler#AbstractCompiler#count_type_test_skipped (var193) on <var193:AbstractCompiler(SeparateCompiler)> */
1344 var198
= var193
->attrs
[COLOR_nit__abstract_compiler__AbstractCompiler___count_type_test_skipped
].val
; /* _count_type_test_skipped on <var193:AbstractCompiler(SeparateCompiler)> */
1345 if (unlikely(var198
== NULL
)) {
1346 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _count_type_test_skipped");
1347 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler
, 966);
1351 RET_LABEL197
:(void)0;
1357 var200
= standard___standard__HashMap___standard__abstract_collection__MapRead___91d_93d(var_
, var_199
);
1361 { /* Inline kernel#Int#+ (var200,var201) on <var200:nullable Object(Int)> */
1362 /* Covariant cast for argument 0 (i) <var201:Int> isa OTHER */
1363 /* <var201:Int> isa OTHER */
1364 var204
= 1; /* easy <var201:Int> isa OTHER*/
1365 if (unlikely(!var204
)) {
1366 var_class_name
= type_standard__Int
.name
;
1367 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name
);
1368 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel
, 413);
1371 var207
= ((struct instance_standard__Int
*)var200
)->value
; /* autounbox from nullable Object to Int */;
1372 var208
= var207
+ var201
;
1375 RET_LABEL203
:(void)0;
1379 var209
= BOX_standard__Int(var202
); /* autobox from Int to nullable Object */
1380 standard___standard__HashMap___standard__abstract_collection__Map___91d_93d_61d(var_
, var_199
, var209
); /* Direct call hash_collection#HashMap#[]= on <var_:HashMap[String, Int]>*/
1383 var211
= varonce210
;
1385 var212
= "count_type_test_skipped_";
1387 var214
= standard___standard__NativeString___to_s_with_length(var212
, var213
);
1389 varonce210
= var211
;
1392 var216
= varonce215
;
1396 var219
= standard___standard__NativeString___to_s_with_length(var217
, var218
);
1398 varonce215
= var216
;
1400 var220
= NEW_standard__Array(&type_standard__Array__standard__Object
);
1401 { /* var220 = array_instance Array[Object] */
1403 var222
= NEW_standard__NativeArray(var221
, &type_standard__NativeArray__standard__Object
);
1404 ((struct instance_standard__NativeArray
*)var222
)->values
[0] = (val
*) var211
;
1405 ((struct instance_standard__NativeArray
*)var222
)->values
[1] = (val
*) var_tag
;
1406 ((struct instance_standard__NativeArray
*)var222
)->values
[2] = (val
*) var216
;
1408 ((void (*)(val
* self
, val
* p0
, long p1
))(var220
->class->vft
[COLOR_standard__array__Array__with_native
]))(var220
, var222
, var221
) /* with_native on <var220:Array[Object]>*/;
1412 var223
= ((val
* (*)(val
* self
))(var220
->class->vft
[COLOR_standard__string__Object__to_s
]))(var220
) /* to_s on <var220:Array[Object]>*/;
1415 nit___nit__AbstractCompilerVisitor___add(self
, var223
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <self:SeparateErasureCompilerVisitor>*/
1424 { /* Inline abstract_compiler#RuntimeVariable#mtype (var_value) on <var_value:RuntimeVariable> */
1425 var226
= var_value
->attrs
[COLOR_nit__abstract_compiler__RuntimeVariable___mtype
].val
; /* _mtype on <var_value:RuntimeVariable> */
1426 if (unlikely(var226
== NULL
)) {
1427 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
1428 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler
, 1680);
1432 RET_LABEL225
:(void)0;
1436 var227
= ((val
* (*)(val
* self
))(var224
->class->vft
[COLOR_nit__abstract_compiler__MType__ctype
]))(var224
) /* ctype on <var224:MType>*/;
1439 var229
= varonce228
;
1443 var232
= standard___standard__NativeString___to_s_with_length(var230
, var231
);
1445 varonce228
= var229
;
1448 var233
= ((short int (*)(val
* self
, val
* p0
))(var227
->class->vft
[COLOR_standard__kernel__Object___61d_61d
]))(var227
, var229
) /* == on <var227:String>*/;
1452 var235
= varonce234
;
1454 var236
= "->class->";
1456 var238
= standard___standard__NativeString___to_s_with_length(var236
, var237
);
1458 varonce234
= var235
;
1460 var239
= NEW_standard__Array(&type_standard__Array__standard__Object
);
1461 { /* var239 = array_instance Array[Object] */
1463 var241
= NEW_standard__NativeArray(var240
, &type_standard__NativeArray__standard__Object
);
1464 ((struct instance_standard__NativeArray
*)var241
)->values
[0] = (val
*) var_value
;
1465 ((struct instance_standard__NativeArray
*)var241
)->values
[1] = (val
*) var235
;
1467 ((void (*)(val
* self
, val
* p0
, long p1
))(var239
->class->vft
[COLOR_standard__array__Array__with_native
]))(var239
, var241
, var240
) /* with_native on <var239:Array[Object]>*/;
1471 var242
= ((val
* (*)(val
* self
))(var239
->class->vft
[COLOR_standard__string__Object__to_s
]))(var239
) /* to_s on <var239:Array[Object]>*/;
1473 var_class_ptr
= var242
;
1476 { /* Inline abstract_compiler#RuntimeVariable#mtype (var_value) on <var_value:RuntimeVariable> */
1477 var245
= var_value
->attrs
[COLOR_nit__abstract_compiler__RuntimeVariable___mtype
].val
; /* _mtype on <var_value:RuntimeVariable> */
1478 if (unlikely(var245
== NULL
)) {
1479 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
1480 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler
, 1680);
1484 RET_LABEL244
:(void)0;
1487 /* <var243:MType> isa MClassType */
1488 cltype247
= type_nit__MClassType
.color
;
1489 idtype248
= type_nit__MClassType
.id
;
1490 if(cltype247
>= var243
->type
->table_size
) {
1493 var246
= var243
->type
->type_table
[cltype247
] == idtype248
;
1495 if (unlikely(!var246
)) {
1496 var_class_name249
= var243
== NULL ?
"null" : var243
->type
->name
;
1497 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "MClassType", var_class_name249
);
1498 PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_erasure_compiler
, 530);
1502 { /* Inline model#MClassType#mclass (var243) on <var243:MType(MClassType)> */
1503 var252
= var243
->attrs
[COLOR_nit__model__MClassType___mclass
].val
; /* _mclass on <var243:MType(MClassType)> */
1504 if (unlikely(var252
== NULL
)) {
1505 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
1506 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 1058);
1510 RET_LABEL251
:(void)0;
1513 var_mclass
= var250
;
1515 var254
= varonce253
;
1519 var257
= standard___standard__NativeString___to_s_with_length(var255
, var256
);
1521 varonce253
= var254
;
1524 var258
= nit___nit__MClass___nit__model_base__MEntity__c_name(var_mclass
);
1526 var259
= NEW_standard__Array(&type_standard__Array__standard__Object
);
1527 { /* var259 = array_instance Array[Object] */
1529 var261
= NEW_standard__NativeArray(var260
, &type_standard__NativeArray__standard__Object
);
1530 ((struct instance_standard__NativeArray
*)var261
)->values
[0] = (val
*) var254
;
1531 ((struct instance_standard__NativeArray
*)var261
)->values
[1] = (val
*) var258
;
1533 ((void (*)(val
* self
, val
* p0
, long p1
))(var259
->class->vft
[COLOR_standard__array__Array__with_native
]))(var259
, var261
, var260
) /* with_native on <var259:Array[Object]>*/;
1537 var262
= ((val
* (*)(val
* self
))(var259
->class->vft
[COLOR_standard__string__Object__to_s
]))(var259
) /* to_s on <var259:Array[Object]>*/;
1540 nit___nit__AbstractCompilerVisitor___require_declaration(self
, var262
); /* Direct call abstract_compiler#AbstractCompilerVisitor#require_declaration on <self:SeparateErasureCompilerVisitor>*/
1543 var264
= varonce263
;
1547 var267
= standard___standard__NativeString___to_s_with_length(var265
, var266
);
1549 varonce263
= var264
;
1552 var268
= nit___nit__MClass___nit__model_base__MEntity__c_name(var_mclass
);
1555 var270
= varonce269
;
1559 var273
= standard___standard__NativeString___to_s_with_length(var271
, var272
);
1561 varonce269
= var270
;
1563 var274
= NEW_standard__Array(&type_standard__Array__standard__Object
);
1564 { /* var274 = array_instance Array[Object] */
1566 var276
= NEW_standard__NativeArray(var275
, &type_standard__NativeArray__standard__Object
);
1567 ((struct instance_standard__NativeArray
*)var276
)->values
[0] = (val
*) var264
;
1568 ((struct instance_standard__NativeArray
*)var276
)->values
[1] = (val
*) var268
;
1569 ((struct instance_standard__NativeArray
*)var276
)->values
[2] = (val
*) var270
;
1571 ((void (*)(val
* self
, val
* p0
, long p1
))(var274
->class->vft
[COLOR_standard__array__Array__with_native
]))(var274
, var276
, var275
) /* with_native on <var274:Array[Object]>*/;
1575 var277
= ((val
* (*)(val
* self
))(var274
->class->vft
[COLOR_standard__string__Object__to_s
]))(var274
) /* to_s on <var274:Array[Object]>*/;
1577 var_class_ptr
= var277
;
1579 /* <var_mtype:MType> isa MClassType */
1580 cltype279
= type_nit__MClassType
.color
;
1581 idtype280
= type_nit__MClassType
.id
;
1582 if(cltype279
>= var_mtype
->type
->table_size
) {
1585 var278
= var_mtype
->type
->type_table
[cltype279
] == idtype280
;
1589 var282
= varonce281
;
1593 var285
= standard___standard__NativeString___to_s_with_length(var283
, var284
);
1595 varonce281
= var282
;
1598 { /* Inline model#MClassType#mclass (var_mtype) on <var_mtype:MType(MClassType)> */
1599 var288
= var_mtype
->attrs
[COLOR_nit__model__MClassType___mclass
].val
; /* _mclass on <var_mtype:MType(MClassType)> */
1600 if (unlikely(var288
== NULL
)) {
1601 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
1602 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 1058);
1606 RET_LABEL287
:(void)0;
1610 var289
= nit___nit__MClass___nit__model_base__MEntity__c_name(var286
);
1612 var290
= NEW_standard__Array(&type_standard__Array__standard__Object
);
1613 { /* var290 = array_instance Array[Object] */
1615 var292
= NEW_standard__NativeArray(var291
, &type_standard__NativeArray__standard__Object
);
1616 ((struct instance_standard__NativeArray
*)var292
)->values
[0] = (val
*) var282
;
1617 ((struct instance_standard__NativeArray
*)var292
)->values
[1] = (val
*) var289
;
1619 ((void (*)(val
* self
, val
* p0
, long p1
))(var290
->class->vft
[COLOR_standard__array__Array__with_native
]))(var290
, var292
, var291
) /* with_native on <var290:Array[Object]>*/;
1623 var293
= ((val
* (*)(val
* self
))(var290
->class->vft
[COLOR_standard__string__Object__to_s
]))(var290
) /* to_s on <var290:Array[Object]>*/;
1626 nit___nit__AbstractCompilerVisitor___require_declaration(self
, var293
); /* Direct call abstract_compiler#AbstractCompilerVisitor#require_declaration on <self:SeparateErasureCompilerVisitor>*/
1629 var295
= varonce294
;
1631 var296
= " = class_";
1633 var298
= standard___standard__NativeString___to_s_with_length(var296
, var297
);
1635 varonce294
= var295
;
1638 { /* Inline model#MClassType#mclass (var_mtype) on <var_mtype:MType(MClassType)> */
1639 var301
= var_mtype
->attrs
[COLOR_nit__model__MClassType___mclass
].val
; /* _mclass on <var_mtype:MType(MClassType)> */
1640 if (unlikely(var301
== NULL
)) {
1641 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
1642 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 1058);
1646 RET_LABEL300
:(void)0;
1650 var302
= nit___nit__MClass___nit__model_base__MEntity__c_name(var299
);
1653 var304
= varonce303
;
1657 var307
= standard___standard__NativeString___to_s_with_length(var305
, var306
);
1659 varonce303
= var304
;
1661 var308
= NEW_standard__Array(&type_standard__Array__standard__Object
);
1662 { /* var308 = array_instance Array[Object] */
1664 var310
= NEW_standard__NativeArray(var309
, &type_standard__NativeArray__standard__Object
);
1665 ((struct instance_standard__NativeArray
*)var310
)->values
[0] = (val
*) var_cltype
;
1666 ((struct instance_standard__NativeArray
*)var310
)->values
[1] = (val
*) var295
;
1667 ((struct instance_standard__NativeArray
*)var310
)->values
[2] = (val
*) var302
;
1668 ((struct instance_standard__NativeArray
*)var310
)->values
[3] = (val
*) var304
;
1670 ((void (*)(val
* self
, val
* p0
, long p1
))(var308
->class->vft
[COLOR_standard__array__Array__with_native
]))(var308
, var310
, var309
) /* with_native on <var308:Array[Object]>*/;
1674 var311
= ((val
* (*)(val
* self
))(var308
->class->vft
[COLOR_standard__string__Object__to_s
]))(var308
) /* to_s on <var308:Array[Object]>*/;
1677 nit___nit__AbstractCompilerVisitor___add(self
, var311
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <self:SeparateErasureCompilerVisitor>*/
1680 var313
= varonce312
;
1682 var314
= " = class_";
1684 var316
= standard___standard__NativeString___to_s_with_length(var314
, var315
);
1686 varonce312
= var313
;
1689 { /* Inline model#MClassType#mclass (var_mtype) on <var_mtype:MType(MClassType)> */
1690 var319
= var_mtype
->attrs
[COLOR_nit__model__MClassType___mclass
].val
; /* _mclass on <var_mtype:MType(MClassType)> */
1691 if (unlikely(var319
== NULL
)) {
1692 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
1693 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 1058);
1697 RET_LABEL318
:(void)0;
1701 var320
= nit___nit__MClass___nit__model_base__MEntity__c_name(var317
);
1704 var322
= varonce321
;
1708 var325
= standard___standard__NativeString___to_s_with_length(var323
, var324
);
1710 varonce321
= var322
;
1712 var326
= NEW_standard__Array(&type_standard__Array__standard__Object
);
1713 { /* var326 = array_instance Array[Object] */
1715 var328
= NEW_standard__NativeArray(var327
, &type_standard__NativeArray__standard__Object
);
1716 ((struct instance_standard__NativeArray
*)var328
)->values
[0] = (val
*) var_idtype
;
1717 ((struct instance_standard__NativeArray
*)var328
)->values
[1] = (val
*) var313
;
1718 ((struct instance_standard__NativeArray
*)var328
)->values
[2] = (val
*) var320
;
1719 ((struct instance_standard__NativeArray
*)var328
)->values
[3] = (val
*) var322
;
1721 ((void (*)(val
* self
, val
* p0
, long p1
))(var326
->class->vft
[COLOR_standard__array__Array__with_native
]))(var326
, var328
, var327
) /* with_native on <var326:Array[Object]>*/;
1725 var329
= ((val
* (*)(val
* self
))(var326
->class->vft
[COLOR_standard__string__Object__to_s
]))(var326
) /* to_s on <var326:Array[Object]>*/;
1728 nit___nit__AbstractCompilerVisitor___add(self
, var329
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <self:SeparateErasureCompilerVisitor>*/
1731 { /* Inline abstract_compiler#AbstractCompilerVisitor#compiler (self) on <self:SeparateErasureCompilerVisitor> */
1732 var332
= self
->attrs
[COLOR_nit__abstract_compiler__AbstractCompilerVisitor___compiler
].val
; /* _compiler on <self:SeparateErasureCompilerVisitor> */
1733 if (unlikely(var332
== NULL
)) {
1734 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _compiler");
1735 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler
, 1059);
1739 RET_LABEL331
:(void)0;
1743 { /* Inline abstract_compiler#AbstractCompiler#modelbuilder (var330) on <var330:AbstractCompiler(SeparateCompiler)> */
1744 var335
= var330
->attrs
[COLOR_nit__abstract_compiler__AbstractCompiler___modelbuilder
].val
; /* _modelbuilder on <var330:AbstractCompiler(SeparateCompiler)> */
1745 if (unlikely(var335
== NULL
)) {
1746 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
1747 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler
, 481);
1751 RET_LABEL334
:(void)0;
1755 { /* Inline modelbuilder_base#ModelBuilder#toolcontext (var333) on <var333:ModelBuilder> */
1756 var338
= var333
->attrs
[COLOR_nit__modelbuilder_base__ModelBuilder___toolcontext
].val
; /* _toolcontext on <var333:ModelBuilder> */
1757 if (unlikely(var338
== NULL
)) {
1758 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
1759 PRINT_ERROR(" (%s:%d)\n", FILE_nit__modelbuilder_base
, 47);
1763 RET_LABEL337
:(void)0;
1767 { /* Inline abstract_compiler#ToolContext#opt_typing_test_metrics (var336) on <var336:ToolContext> */
1768 var341
= var336
->attrs
[COLOR_nit__abstract_compiler__ToolContext___opt_typing_test_metrics
].val
; /* _opt_typing_test_metrics on <var336:ToolContext> */
1769 if (unlikely(var341
== NULL
)) {
1770 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_typing_test_metrics");
1771 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler
, 59);
1775 RET_LABEL340
:(void)0;
1779 { /* Inline opts#Option#value (var339) on <var339:OptionBool> */
1780 var344
= var339
->attrs
[COLOR_opts__Option___value
].val
; /* _value on <var339:OptionBool> */
1782 RET_LABEL343
:(void)0;
1785 var345
= ((struct instance_standard__Bool
*)var342
)->value
; /* autounbox from nullable Object to Bool */;
1788 { /* Inline abstract_compiler#AbstractCompilerVisitor#compiler (self) on <self:SeparateErasureCompilerVisitor> */
1789 var348
= self
->attrs
[COLOR_nit__abstract_compiler__AbstractCompilerVisitor___compiler
].val
; /* _compiler on <self:SeparateErasureCompilerVisitor> */
1790 if (unlikely(var348
== NULL
)) {
1791 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _compiler");
1792 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler
, 1059);
1796 RET_LABEL347
:(void)0;
1800 { /* Inline abstract_compiler#AbstractCompiler#count_type_test_resolved (var346) on <var346:AbstractCompiler(SeparateCompiler)> */
1801 var351
= var346
->attrs
[COLOR_nit__abstract_compiler__AbstractCompiler___count_type_test_resolved
].val
; /* _count_type_test_resolved on <var346:AbstractCompiler(SeparateCompiler)> */
1802 if (unlikely(var351
== NULL
)) {
1803 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _count_type_test_resolved");
1804 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler
, 964);
1808 RET_LABEL350
:(void)0;
1814 var354
= standard___standard__HashMap___standard__abstract_collection__MapRead___91d_93d(var_352
, var_353
);
1818 { /* Inline kernel#Int#+ (var354,var355) on <var354:nullable Object(Int)> */
1819 /* Covariant cast for argument 0 (i) <var355:Int> isa OTHER */
1820 /* <var355:Int> isa OTHER */
1821 var358
= 1; /* easy <var355:Int> isa OTHER*/
1822 if (unlikely(!var358
)) {
1823 var_class_name361
= type_standard__Int
.name
;
1824 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name361
);
1825 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel
, 413);
1828 var362
= ((struct instance_standard__Int
*)var354
)->value
; /* autounbox from nullable Object to Int */;
1829 var363
= var362
+ var355
;
1832 RET_LABEL357
:(void)0;
1836 var364
= BOX_standard__Int(var356
); /* autobox from Int to nullable Object */
1837 standard___standard__HashMap___standard__abstract_collection__Map___91d_93d_61d(var_352
, var_353
, var364
); /* Direct call hash_collection#HashMap#[]= on <var_352:HashMap[String, Int]>*/
1840 var366
= varonce365
;
1842 var367
= "count_type_test_resolved_";
1844 var369
= standard___standard__NativeString___to_s_with_length(var367
, var368
);
1846 varonce365
= var366
;
1849 var371
= varonce370
;
1853 var374
= standard___standard__NativeString___to_s_with_length(var372
, var373
);
1855 varonce370
= var371
;
1857 var375
= NEW_standard__Array(&type_standard__Array__standard__Object
);
1858 { /* var375 = array_instance Array[Object] */
1860 var377
= NEW_standard__NativeArray(var376
, &type_standard__NativeArray__standard__Object
);
1861 ((struct instance_standard__NativeArray
*)var377
)->values
[0] = (val
*) var366
;
1862 ((struct instance_standard__NativeArray
*)var377
)->values
[1] = (val
*) var_tag
;
1863 ((struct instance_standard__NativeArray
*)var377
)->values
[2] = (val
*) var371
;
1865 ((void (*)(val
* self
, val
* p0
, long p1
))(var375
->class->vft
[COLOR_standard__array__Array__with_native
]))(var375
, var377
, var376
) /* with_native on <var375:Array[Object]>*/;
1869 var378
= ((val
* (*)(val
* self
))(var375
->class->vft
[COLOR_standard__string__Object__to_s
]))(var375
) /* to_s on <var375:Array[Object]>*/;
1872 nit___nit__AbstractCompilerVisitor___add(self
, var378
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <self:SeparateErasureCompilerVisitor>*/
1877 /* <var_mtype:MType> isa MVirtualType */
1878 cltype380
= type_nit__MVirtualType
.color
;
1879 idtype381
= type_nit__MVirtualType
.id
;
1880 if(cltype380
>= var_mtype
->type
->table_size
) {
1883 var379
= var_mtype
->type
->type_table
[cltype380
] == idtype381
;
1887 { /* Inline abstract_compiler#AbstractCompilerVisitor#frame (self) on <self:SeparateErasureCompilerVisitor> */
1888 var384
= self
->attrs
[COLOR_nit__abstract_compiler__AbstractCompilerVisitor___frame
].val
; /* _frame on <self:SeparateErasureCompilerVisitor> */
1890 RET_LABEL383
:(void)0;
1893 if (var382
== NULL
) {
1894 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1895 PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_erasure_compiler
, 544);
1898 { /* Inline abstract_compiler#StaticFrame#arguments (var382) on <var382:nullable StaticFrame> */
1899 if (unlikely(var382
== NULL
)) {
1900 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1901 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler
, 1731);
1904 var387
= var382
->attrs
[COLOR_nit__abstract_compiler__StaticFrame___arguments
].val
; /* _arguments on <var382:nullable StaticFrame> */
1905 if (unlikely(var387
== NULL
)) {
1906 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _arguments");
1907 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler
, 1731);
1911 RET_LABEL386
:(void)0;
1915 var388
= standard___standard__SequenceRead___Collection__first(var385
);
1919 { /* Inline abstract_compiler#RuntimeVariable#mtype (var_recv) on <var_recv:RuntimeVariable> */
1920 var391
= var_recv
->attrs
[COLOR_nit__abstract_compiler__RuntimeVariable___mtype
].val
; /* _mtype on <var_recv:RuntimeVariable> */
1921 if (unlikely(var391
== NULL
)) {
1922 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
1923 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler
, 1680);
1927 RET_LABEL390
:(void)0;
1931 var392
= ((val
* (*)(val
* self
))(var389
->class->vft
[COLOR_nit__abstract_compiler__MType__ctype
]))(var389
) /* ctype on <var389:MType>*/;
1934 var394
= varonce393
;
1938 var397
= standard___standard__NativeString___to_s_with_length(var395
, var396
);
1940 varonce393
= var394
;
1943 var398
= ((short int (*)(val
* self
, val
* p0
))(var392
->class->vft
[COLOR_standard__kernel__Object___61d_61d
]))(var392
, var394
) /* == on <var392:String>*/;
1947 var400
= varonce399
;
1949 var401
= "->class->";
1951 var403
= standard___standard__NativeString___to_s_with_length(var401
, var402
);
1953 varonce399
= var400
;
1955 var404
= NEW_standard__Array(&type_standard__Array__standard__Object
);
1956 { /* var404 = array_instance Array[Object] */
1958 var406
= NEW_standard__NativeArray(var405
, &type_standard__NativeArray__standard__Object
);
1959 ((struct instance_standard__NativeArray
*)var406
)->values
[0] = (val
*) var_recv
;
1960 ((struct instance_standard__NativeArray
*)var406
)->values
[1] = (val
*) var400
;
1962 ((void (*)(val
* self
, val
* p0
, long p1
))(var404
->class->vft
[COLOR_standard__array__Array__with_native
]))(var404
, var406
, var405
) /* with_native on <var404:Array[Object]>*/;
1966 var407
= ((val
* (*)(val
* self
))(var404
->class->vft
[COLOR_standard__string__Object__to_s
]))(var404
) /* to_s on <var404:Array[Object]>*/;
1968 var_recv_ptr
= var407
;
1971 { /* Inline abstract_compiler#RuntimeVariable#mtype (var_recv) on <var_recv:RuntimeVariable> */
1972 var410
= var_recv
->attrs
[COLOR_nit__abstract_compiler__RuntimeVariable___mtype
].val
; /* _mtype on <var_recv:RuntimeVariable> */
1973 if (unlikely(var410
== NULL
)) {
1974 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
1975 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler
, 1680);
1979 RET_LABEL409
:(void)0;
1982 /* <var408:MType> isa MClassType */
1983 cltype412
= type_nit__MClassType
.color
;
1984 idtype413
= type_nit__MClassType
.id
;
1985 if(cltype412
>= var408
->type
->table_size
) {
1988 var411
= var408
->type
->type_table
[cltype412
] == idtype413
;
1990 if (unlikely(!var411
)) {
1991 var_class_name414
= var408
== NULL ?
"null" : var408
->type
->name
;
1992 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "MClassType", var_class_name414
);
1993 PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_erasure_compiler
, 549);
1997 { /* Inline model#MClassType#mclass (var408) on <var408:MType(MClassType)> */
1998 var417
= var408
->attrs
[COLOR_nit__model__MClassType___mclass
].val
; /* _mclass on <var408:MType(MClassType)> */
1999 if (unlikely(var417
== NULL
)) {
2000 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
2001 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 1058);
2005 RET_LABEL416
:(void)0;
2008 var_mclass418
= var415
;
2010 var420
= varonce419
;
2014 var423
= standard___standard__NativeString___to_s_with_length(var421
, var422
);
2016 varonce419
= var420
;
2019 var424
= nit___nit__MClass___nit__model_base__MEntity__c_name(var_mclass418
);
2021 var425
= NEW_standard__Array(&type_standard__Array__standard__Object
);
2022 { /* var425 = array_instance Array[Object] */
2024 var427
= NEW_standard__NativeArray(var426
, &type_standard__NativeArray__standard__Object
);
2025 ((struct instance_standard__NativeArray
*)var427
)->values
[0] = (val
*) var420
;
2026 ((struct instance_standard__NativeArray
*)var427
)->values
[1] = (val
*) var424
;
2028 ((void (*)(val
* self
, val
* p0
, long p1
))(var425
->class->vft
[COLOR_standard__array__Array__with_native
]))(var425
, var427
, var426
) /* with_native on <var425:Array[Object]>*/;
2032 var428
= ((val
* (*)(val
* self
))(var425
->class->vft
[COLOR_standard__string__Object__to_s
]))(var425
) /* to_s on <var425:Array[Object]>*/;
2035 nit___nit__AbstractCompilerVisitor___require_declaration(self
, var428
); /* Direct call abstract_compiler#AbstractCompilerVisitor#require_declaration on <self:SeparateErasureCompilerVisitor>*/
2038 var430
= varonce429
;
2042 var433
= standard___standard__NativeString___to_s_with_length(var431
, var432
);
2044 varonce429
= var430
;
2047 var434
= nit___nit__MClass___nit__model_base__MEntity__c_name(var_mclass418
);
2050 var436
= varonce435
;
2054 var439
= standard___standard__NativeString___to_s_with_length(var437
, var438
);
2056 varonce435
= var436
;
2058 var440
= NEW_standard__Array(&type_standard__Array__standard__Object
);
2059 { /* var440 = array_instance Array[Object] */
2061 var442
= NEW_standard__NativeArray(var441
, &type_standard__NativeArray__standard__Object
);
2062 ((struct instance_standard__NativeArray
*)var442
)->values
[0] = (val
*) var430
;
2063 ((struct instance_standard__NativeArray
*)var442
)->values
[1] = (val
*) var434
;
2064 ((struct instance_standard__NativeArray
*)var442
)->values
[2] = (val
*) var436
;
2066 ((void (*)(val
* self
, val
* p0
, long p1
))(var440
->class->vft
[COLOR_standard__array__Array__with_native
]))(var440
, var442
, var441
) /* with_native on <var440:Array[Object]>*/;
2070 var443
= ((val
* (*)(val
* self
))(var440
->class->vft
[COLOR_standard__string__Object__to_s
]))(var440
) /* to_s on <var440:Array[Object]>*/;
2072 var_recv_ptr
= var443
;
2075 var445
= varonce444
;
2079 var448
= standard___standard__NativeString___to_s_with_length(var446
, var447
);
2081 varonce444
= var445
;
2084 var449
= nit___nit__AbstractCompilerVisitor___get_name(self
, var445
);
2088 var451
= varonce450
;
2090 var452
= "struct vts_entry ";
2092 var454
= standard___standard__NativeString___to_s_with_length(var452
, var453
);
2094 varonce450
= var451
;
2097 var456
= varonce455
;
2101 var459
= standard___standard__NativeString___to_s_with_length(var457
, var458
);
2103 varonce455
= var456
;
2105 var460
= NEW_standard__Array(&type_standard__Array__standard__Object
);
2106 { /* var460 = array_instance Array[Object] */
2108 var462
= NEW_standard__NativeArray(var461
, &type_standard__NativeArray__standard__Object
);
2109 ((struct instance_standard__NativeArray
*)var462
)->values
[0] = (val
*) var451
;
2110 ((struct instance_standard__NativeArray
*)var462
)->values
[1] = (val
*) var_entry
;
2111 ((struct instance_standard__NativeArray
*)var462
)->values
[2] = (val
*) var456
;
2113 ((void (*)(val
* self
, val
* p0
, long p1
))(var460
->class->vft
[COLOR_standard__array__Array__with_native
]))(var460
, var462
, var461
) /* with_native on <var460:Array[Object]>*/;
2117 var463
= ((val
* (*)(val
* self
))(var460
->class->vft
[COLOR_standard__string__Object__to_s
]))(var460
) /* to_s on <var460:Array[Object]>*/;
2120 nit___nit__AbstractCompilerVisitor___add(self
, var463
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <self:SeparateErasureCompilerVisitor>*/
2123 { /* Inline model#MVirtualType#mproperty (var_mtype) on <var_mtype:MType(MVirtualType)> */
2124 var466
= var_mtype
->attrs
[COLOR_nit__model__MVirtualType___mproperty
].val
; /* _mproperty on <var_mtype:MType(MVirtualType)> */
2125 if (unlikely(var466
== NULL
)) {
2126 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty");
2127 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 1254);
2131 RET_LABEL465
:(void)0;
2135 var467
= nit__separate_compiler___MEntity___const_color(var464
);
2138 nit___nit__AbstractCompilerVisitor___require_declaration(self
, var467
); /* Direct call abstract_compiler#AbstractCompilerVisitor#require_declaration on <self:SeparateErasureCompilerVisitor>*/
2141 var469
= varonce468
;
2145 var472
= standard___standard__NativeString___to_s_with_length(var470
, var471
);
2147 varonce468
= var469
;
2150 var474
= varonce473
;
2152 var475
= "vts_table->vts[";
2154 var477
= standard___standard__NativeString___to_s_with_length(var475
, var476
);
2156 varonce473
= var474
;
2159 { /* Inline model#MVirtualType#mproperty (var_mtype) on <var_mtype:MType(MVirtualType)> */
2160 var480
= var_mtype
->attrs
[COLOR_nit__model__MVirtualType___mproperty
].val
; /* _mproperty on <var_mtype:MType(MVirtualType)> */
2161 if (unlikely(var480
== NULL
)) {
2162 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty");
2163 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 1254);
2167 RET_LABEL479
:(void)0;
2171 var481
= nit__separate_compiler___MEntity___const_color(var478
);
2174 var483
= varonce482
;
2178 var486
= standard___standard__NativeString___to_s_with_length(var484
, var485
);
2180 varonce482
= var483
;
2182 var487
= NEW_standard__Array(&type_standard__Array__standard__Object
);
2183 { /* var487 = array_instance Array[Object] */
2185 var489
= NEW_standard__NativeArray(var488
, &type_standard__NativeArray__standard__Object
);
2186 ((struct instance_standard__NativeArray
*)var489
)->values
[0] = (val
*) var_entry
;
2187 ((struct instance_standard__NativeArray
*)var489
)->values
[1] = (val
*) var469
;
2188 ((struct instance_standard__NativeArray
*)var489
)->values
[2] = (val
*) var_recv_ptr
;
2189 ((struct instance_standard__NativeArray
*)var489
)->values
[3] = (val
*) var474
;
2190 ((struct instance_standard__NativeArray
*)var489
)->values
[4] = (val
*) var481
;
2191 ((struct instance_standard__NativeArray
*)var489
)->values
[5] = (val
*) var483
;
2193 ((void (*)(val
* self
, val
* p0
, long p1
))(var487
->class->vft
[COLOR_standard__array__Array__with_native
]))(var487
, var489
, var488
) /* with_native on <var487:Array[Object]>*/;
2197 var490
= ((val
* (*)(val
* self
))(var487
->class->vft
[COLOR_standard__string__Object__to_s
]))(var487
) /* to_s on <var487:Array[Object]>*/;
2200 nit___nit__AbstractCompilerVisitor___add(self
, var490
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <self:SeparateErasureCompilerVisitor>*/
2203 var492
= varonce491
;
2207 var495
= standard___standard__NativeString___to_s_with_length(var493
, var494
);
2209 varonce491
= var492
;
2212 var497
= varonce496
;
2214 var498
= ".class->color;";
2216 var500
= standard___standard__NativeString___to_s_with_length(var498
, var499
);
2218 varonce496
= var497
;
2220 var501
= NEW_standard__Array(&type_standard__Array__standard__Object
);
2221 { /* var501 = array_instance Array[Object] */
2223 var503
= NEW_standard__NativeArray(var502
, &type_standard__NativeArray__standard__Object
);
2224 ((struct instance_standard__NativeArray
*)var503
)->values
[0] = (val
*) var_cltype
;
2225 ((struct instance_standard__NativeArray
*)var503
)->values
[1] = (val
*) var492
;
2226 ((struct instance_standard__NativeArray
*)var503
)->values
[2] = (val
*) var_entry
;
2227 ((struct instance_standard__NativeArray
*)var503
)->values
[3] = (val
*) var497
;
2229 ((void (*)(val
* self
, val
* p0
, long p1
))(var501
->class->vft
[COLOR_standard__array__Array__with_native
]))(var501
, var503
, var502
) /* with_native on <var501:Array[Object]>*/;
2233 var504
= ((val
* (*)(val
* self
))(var501
->class->vft
[COLOR_standard__string__Object__to_s
]))(var501
) /* to_s on <var501:Array[Object]>*/;
2236 nit___nit__AbstractCompilerVisitor___add(self
, var504
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <self:SeparateErasureCompilerVisitor>*/
2239 var506
= varonce505
;
2243 var509
= standard___standard__NativeString___to_s_with_length(var507
, var508
);
2245 varonce505
= var506
;
2248 var511
= varonce510
;
2250 var512
= ".class->id;";
2252 var514
= standard___standard__NativeString___to_s_with_length(var512
, var513
);
2254 varonce510
= var511
;
2256 var515
= NEW_standard__Array(&type_standard__Array__standard__Object
);
2257 { /* var515 = array_instance Array[Object] */
2259 var517
= NEW_standard__NativeArray(var516
, &type_standard__NativeArray__standard__Object
);
2260 ((struct instance_standard__NativeArray
*)var517
)->values
[0] = (val
*) var_idtype
;
2261 ((struct instance_standard__NativeArray
*)var517
)->values
[1] = (val
*) var506
;
2262 ((struct instance_standard__NativeArray
*)var517
)->values
[2] = (val
*) var_entry
;
2263 ((struct instance_standard__NativeArray
*)var517
)->values
[3] = (val
*) var511
;
2265 ((void (*)(val
* self
, val
* p0
, long p1
))(var515
->class->vft
[COLOR_standard__array__Array__with_native
]))(var515
, var517
, var516
) /* with_native on <var515:Array[Object]>*/;
2269 var518
= ((val
* (*)(val
* self
))(var515
->class->vft
[COLOR_standard__string__Object__to_s
]))(var515
) /* to_s on <var515:Array[Object]>*/;
2272 nit___nit__AbstractCompilerVisitor___add(self
, var518
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <self:SeparateErasureCompilerVisitor>*/
2274 var_520
= var_maybe_null
;
2275 if (var_maybe_null
){
2277 var522
= varonce521
;
2281 var525
= standard___standard__NativeString___to_s_with_length(var523
, var524
);
2283 varonce521
= var522
;
2286 var526
= ((short int (*)(val
* self
, val
* p0
))(var_accept_null
->class->vft
[COLOR_standard__kernel__Object___61d_61d
]))(var_accept_null
, var522
) /* == on <var_accept_null:String>*/;
2294 var528
= varonce527
;
2296 var529
= "is_nullable";
2298 var531
= standard___standard__NativeString___to_s_with_length(var529
, var530
);
2300 varonce527
= var528
;
2303 var532
= nit___nit__AbstractCompilerVisitor___get_name(self
, var528
);
2305 var_is_nullable
= var532
;
2307 var534
= varonce533
;
2309 var535
= "short int ";
2311 var537
= standard___standard__NativeString___to_s_with_length(var535
, var536
);
2313 varonce533
= var534
;
2316 var539
= varonce538
;
2320 var542
= standard___standard__NativeString___to_s_with_length(var540
, var541
);
2322 varonce538
= var539
;
2324 var543
= NEW_standard__Array(&type_standard__Array__standard__Object
);
2325 { /* var543 = array_instance Array[Object] */
2327 var545
= NEW_standard__NativeArray(var544
, &type_standard__NativeArray__standard__Object
);
2328 ((struct instance_standard__NativeArray
*)var545
)->values
[0] = (val
*) var534
;
2329 ((struct instance_standard__NativeArray
*)var545
)->values
[1] = (val
*) var_is_nullable
;
2330 ((struct instance_standard__NativeArray
*)var545
)->values
[2] = (val
*) var539
;
2332 ((void (*)(val
* self
, val
* p0
, long p1
))(var543
->class->vft
[COLOR_standard__array__Array__with_native
]))(var543
, var545
, var544
) /* with_native on <var543:Array[Object]>*/;
2336 var546
= ((val
* (*)(val
* self
))(var543
->class->vft
[COLOR_standard__string__Object__to_s
]))(var543
) /* to_s on <var543:Array[Object]>*/;
2339 nit___nit__AbstractCompilerVisitor___add_decl(self
, var546
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <self:SeparateErasureCompilerVisitor>*/
2342 var548
= varonce547
;
2346 var551
= standard___standard__NativeString___to_s_with_length(var549
, var550
);
2348 varonce547
= var548
;
2351 var553
= varonce552
;
2353 var554
= ".is_nullable;";
2355 var556
= standard___standard__NativeString___to_s_with_length(var554
, var555
);
2357 varonce552
= var553
;
2359 var557
= NEW_standard__Array(&type_standard__Array__standard__Object
);
2360 { /* var557 = array_instance Array[Object] */
2362 var559
= NEW_standard__NativeArray(var558
, &type_standard__NativeArray__standard__Object
);
2363 ((struct instance_standard__NativeArray
*)var559
)->values
[0] = (val
*) var_is_nullable
;
2364 ((struct instance_standard__NativeArray
*)var559
)->values
[1] = (val
*) var548
;
2365 ((struct instance_standard__NativeArray
*)var559
)->values
[2] = (val
*) var_entry
;
2366 ((struct instance_standard__NativeArray
*)var559
)->values
[3] = (val
*) var553
;
2368 ((void (*)(val
* self
, val
* p0
, long p1
))(var557
->class->vft
[COLOR_standard__array__Array__with_native
]))(var557
, var559
, var558
) /* with_native on <var557:Array[Object]>*/;
2372 var560
= ((val
* (*)(val
* self
))(var557
->class->vft
[COLOR_standard__string__Object__to_s
]))(var557
) /* to_s on <var557:Array[Object]>*/;
2375 nit___nit__AbstractCompilerVisitor___add(self
, var560
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <self:SeparateErasureCompilerVisitor>*/
2378 var561
= standard___standard__String___Object__to_s(var_is_nullable
);
2380 var_accept_null
= var561
;
2384 { /* Inline abstract_compiler#AbstractCompilerVisitor#compiler (self) on <self:SeparateErasureCompilerVisitor> */
2385 var564
= self
->attrs
[COLOR_nit__abstract_compiler__AbstractCompilerVisitor___compiler
].val
; /* _compiler on <self:SeparateErasureCompilerVisitor> */
2386 if (unlikely(var564
== NULL
)) {
2387 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _compiler");
2388 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler
, 1059);
2392 RET_LABEL563
:(void)0;
2396 { /* Inline abstract_compiler#AbstractCompiler#modelbuilder (var562) on <var562:AbstractCompiler(SeparateCompiler)> */
2397 var567
= var562
->attrs
[COLOR_nit__abstract_compiler__AbstractCompiler___modelbuilder
].val
; /* _modelbuilder on <var562:AbstractCompiler(SeparateCompiler)> */
2398 if (unlikely(var567
== NULL
)) {
2399 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
2400 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler
, 481);
2404 RET_LABEL566
:(void)0;
2408 { /* Inline modelbuilder_base#ModelBuilder#toolcontext (var565) on <var565:ModelBuilder> */
2409 var570
= var565
->attrs
[COLOR_nit__modelbuilder_base__ModelBuilder___toolcontext
].val
; /* _toolcontext on <var565:ModelBuilder> */
2410 if (unlikely(var570
== NULL
)) {
2411 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
2412 PRINT_ERROR(" (%s:%d)\n", FILE_nit__modelbuilder_base
, 47);
2416 RET_LABEL569
:(void)0;
2420 { /* Inline abstract_compiler#ToolContext#opt_typing_test_metrics (var568) on <var568:ToolContext> */
2421 var573
= var568
->attrs
[COLOR_nit__abstract_compiler__ToolContext___opt_typing_test_metrics
].val
; /* _opt_typing_test_metrics on <var568:ToolContext> */
2422 if (unlikely(var573
== NULL
)) {
2423 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_typing_test_metrics");
2424 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler
, 59);
2428 RET_LABEL572
:(void)0;
2432 { /* Inline opts#Option#value (var571) on <var571:OptionBool> */
2433 var576
= var571
->attrs
[COLOR_opts__Option___value
].val
; /* _value on <var571:OptionBool> */
2435 RET_LABEL575
:(void)0;
2438 var577
= ((struct instance_standard__Bool
*)var574
)->value
; /* autounbox from nullable Object to Bool */;
2441 { /* Inline abstract_compiler#AbstractCompilerVisitor#compiler (self) on <self:SeparateErasureCompilerVisitor> */
2442 var580
= self
->attrs
[COLOR_nit__abstract_compiler__AbstractCompilerVisitor___compiler
].val
; /* _compiler on <self:SeparateErasureCompilerVisitor> */
2443 if (unlikely(var580
== NULL
)) {
2444 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _compiler");
2445 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler
, 1059);
2449 RET_LABEL579
:(void)0;
2453 { /* Inline abstract_compiler#AbstractCompiler#count_type_test_unresolved (var578) on <var578:AbstractCompiler(SeparateCompiler)> */
2454 var583
= var578
->attrs
[COLOR_nit__abstract_compiler__AbstractCompiler___count_type_test_unresolved
].val
; /* _count_type_test_unresolved on <var578:AbstractCompiler(SeparateCompiler)> */
2455 if (unlikely(var583
== NULL
)) {
2456 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _count_type_test_unresolved");
2457 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler
, 965);
2461 RET_LABEL582
:(void)0;
2467 var586
= standard___standard__HashMap___standard__abstract_collection__MapRead___91d_93d(var_584
, var_585
);
2471 { /* Inline kernel#Int#+ (var586,var587) on <var586:nullable Object(Int)> */
2472 /* Covariant cast for argument 0 (i) <var587:Int> isa OTHER */
2473 /* <var587:Int> isa OTHER */
2474 var590
= 1; /* easy <var587:Int> isa OTHER*/
2475 if (unlikely(!var590
)) {
2476 var_class_name593
= type_standard__Int
.name
;
2477 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name593
);
2478 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel
, 413);
2481 var594
= ((struct instance_standard__Int
*)var586
)->value
; /* autounbox from nullable Object to Int */;
2482 var595
= var594
+ var587
;
2485 RET_LABEL589
:(void)0;
2489 var596
= BOX_standard__Int(var588
); /* autobox from Int to nullable Object */
2490 standard___standard__HashMap___standard__abstract_collection__Map___91d_93d_61d(var_584
, var_585
, var596
); /* Direct call hash_collection#HashMap#[]= on <var_584:HashMap[String, Int]>*/
2493 var598
= varonce597
;
2495 var599
= "count_type_test_unresolved_";
2497 var601
= standard___standard__NativeString___to_s_with_length(var599
, var600
);
2499 varonce597
= var598
;
2502 var603
= varonce602
;
2506 var606
= standard___standard__NativeString___to_s_with_length(var604
, var605
);
2508 varonce602
= var603
;
2510 var607
= NEW_standard__Array(&type_standard__Array__standard__Object
);
2511 { /* var607 = array_instance Array[Object] */
2513 var609
= NEW_standard__NativeArray(var608
, &type_standard__NativeArray__standard__Object
);
2514 ((struct instance_standard__NativeArray
*)var609
)->values
[0] = (val
*) var598
;
2515 ((struct instance_standard__NativeArray
*)var609
)->values
[1] = (val
*) var_tag
;
2516 ((struct instance_standard__NativeArray
*)var609
)->values
[2] = (val
*) var603
;
2518 ((void (*)(val
* self
, val
* p0
, long p1
))(var607
->class->vft
[COLOR_standard__array__Array__with_native
]))(var607
, var609
, var608
) /* with_native on <var607:Array[Object]>*/;
2522 var610
= ((val
* (*)(val
* self
))(var607
->class->vft
[COLOR_standard__string__Object__to_s
]))(var607
) /* to_s on <var607:Array[Object]>*/;
2525 nit___nit__AbstractCompilerVisitor___add(self
, var610
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <self:SeparateErasureCompilerVisitor>*/
2531 var612
= varonce611
;
2533 var613
= "type_test(";
2535 var615
= standard___standard__NativeString___to_s_with_length(var613
, var614
);
2537 varonce611
= var612
;
2540 var616
= nit___nit__RuntimeVariable___standard__string__Object__inspect(var_value
);
2543 var618
= varonce617
;
2547 var621
= standard___standard__NativeString___to_s_with_length(var619
, var620
);
2549 varonce617
= var618
;
2552 var623
= varonce622
;
2556 var626
= standard___standard__NativeString___to_s_with_length(var624
, var625
);
2558 varonce622
= var623
;
2560 var627
= NEW_standard__Array(&type_standard__Array__standard__Object
);
2561 { /* var627 = array_instance Array[Object] */
2563 var629
= NEW_standard__NativeArray(var628
, &type_standard__NativeArray__standard__Object
);
2564 ((struct instance_standard__NativeArray
*)var629
)->values
[0] = (val
*) var612
;
2565 ((struct instance_standard__NativeArray
*)var629
)->values
[1] = (val
*) var616
;
2566 ((struct instance_standard__NativeArray
*)var629
)->values
[2] = (val
*) var618
;
2567 ((struct instance_standard__NativeArray
*)var629
)->values
[3] = (val
*) var_mtype
;
2568 ((struct instance_standard__NativeArray
*)var629
)->values
[4] = (val
*) var623
;
2570 ((void (*)(val
* self
, val
* p0
, long p1
))(var627
->class->vft
[COLOR_standard__array__Array__with_native
]))(var627
, var629
, var628
) /* with_native on <var627:Array[Object]>*/;
2574 var630
= ((val
* (*)(val
* self
))(var627
->class->vft
[COLOR_standard__string__Object__to_s
]))(var627
) /* to_s on <var627:Array[Object]>*/;
2577 nit___nit__AbstractCompilerVisitor___debug(self
, var630
); /* Direct call abstract_compiler#AbstractCompilerVisitor#debug on <self:SeparateErasureCompilerVisitor>*/
2579 PRINT_ERROR("Runtime error: %s", "Aborted");
2580 PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_erasure_compiler
, 571);
2584 if (var_maybe_null
){
2586 var632
= varonce631
;
2590 var635
= standard___standard__NativeString___to_s_with_length(var633
, var634
);
2592 varonce631
= var632
;
2595 var637
= varonce636
;
2597 var638
= " == NULL) {";
2599 var640
= standard___standard__NativeString___to_s_with_length(var638
, var639
);
2601 varonce636
= var637
;
2603 var641
= NEW_standard__Array(&type_standard__Array__standard__Object
);
2604 { /* var641 = array_instance Array[Object] */
2606 var643
= NEW_standard__NativeArray(var642
, &type_standard__NativeArray__standard__Object
);
2607 ((struct instance_standard__NativeArray
*)var643
)->values
[0] = (val
*) var632
;
2608 ((struct instance_standard__NativeArray
*)var643
)->values
[1] = (val
*) var_value
;
2609 ((struct instance_standard__NativeArray
*)var643
)->values
[2] = (val
*) var637
;
2611 ((void (*)(val
* self
, val
* p0
, long p1
))(var641
->class->vft
[COLOR_standard__array__Array__with_native
]))(var641
, var643
, var642
) /* with_native on <var641:Array[Object]>*/;
2615 var644
= ((val
* (*)(val
* self
))(var641
->class->vft
[COLOR_standard__string__Object__to_s
]))(var641
) /* to_s on <var641:Array[Object]>*/;
2618 nit___nit__AbstractCompilerVisitor___add(self
, var644
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <self:SeparateErasureCompilerVisitor>*/
2621 var646
= varonce645
;
2625 var649
= standard___standard__NativeString___to_s_with_length(var647
, var648
);
2627 varonce645
= var646
;
2630 var651
= varonce650
;
2634 var654
= standard___standard__NativeString___to_s_with_length(var652
, var653
);
2636 varonce650
= var651
;
2638 var655
= NEW_standard__Array(&type_standard__Array__standard__Object
);
2639 { /* var655 = array_instance Array[Object] */
2641 var657
= NEW_standard__NativeArray(var656
, &type_standard__NativeArray__standard__Object
);
2642 ((struct instance_standard__NativeArray
*)var657
)->values
[0] = (val
*) var_res
;
2643 ((struct instance_standard__NativeArray
*)var657
)->values
[1] = (val
*) var646
;
2644 ((struct instance_standard__NativeArray
*)var657
)->values
[2] = (val
*) var_accept_null
;
2645 ((struct instance_standard__NativeArray
*)var657
)->values
[3] = (val
*) var651
;
2647 ((void (*)(val
* self
, val
* p0
, long p1
))(var655
->class->vft
[COLOR_standard__array__Array__with_native
]))(var655
, var657
, var656
) /* with_native on <var655:Array[Object]>*/;
2651 var658
= ((val
* (*)(val
* self
))(var655
->class->vft
[COLOR_standard__string__Object__to_s
]))(var655
) /* to_s on <var655:Array[Object]>*/;
2654 nit___nit__AbstractCompilerVisitor___add(self
, var658
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <self:SeparateErasureCompilerVisitor>*/
2657 var660
= varonce659
;
2659 var661
= "} else {";
2661 var663
= standard___standard__NativeString___to_s_with_length(var661
, var662
);
2663 varonce659
= var660
;
2666 nit___nit__AbstractCompilerVisitor___add(self
, var660
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <self:SeparateErasureCompilerVisitor>*/
2671 var665
= varonce664
;
2675 var668
= standard___standard__NativeString___to_s_with_length(var666
, var667
);
2677 varonce664
= var665
;
2680 var670
= varonce669
;
2684 var673
= standard___standard__NativeString___to_s_with_length(var671
, var672
);
2686 varonce669
= var670
;
2689 var675
= varonce674
;
2691 var676
= "type_table->size) {";
2693 var678
= standard___standard__NativeString___to_s_with_length(var676
, var677
);
2695 varonce674
= var675
;
2697 var679
= NEW_standard__Array(&type_standard__Array__standard__Object
);
2698 { /* var679 = array_instance Array[Object] */
2700 var681
= NEW_standard__NativeArray(var680
, &type_standard__NativeArray__standard__Object
);
2701 ((struct instance_standard__NativeArray
*)var681
)->values
[0] = (val
*) var665
;
2702 ((struct instance_standard__NativeArray
*)var681
)->values
[1] = (val
*) var_cltype
;
2703 ((struct instance_standard__NativeArray
*)var681
)->values
[2] = (val
*) var670
;
2704 ((struct instance_standard__NativeArray
*)var681
)->values
[3] = (val
*) var_class_ptr
;
2705 ((struct instance_standard__NativeArray
*)var681
)->values
[4] = (val
*) var675
;
2707 ((void (*)(val
* self
, val
* p0
, long p1
))(var679
->class->vft
[COLOR_standard__array__Array__with_native
]))(var679
, var681
, var680
) /* with_native on <var679:Array[Object]>*/;
2711 var682
= ((val
* (*)(val
* self
))(var679
->class->vft
[COLOR_standard__string__Object__to_s
]))(var679
) /* to_s on <var679:Array[Object]>*/;
2714 nit___nit__AbstractCompilerVisitor___add(self
, var682
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <self:SeparateErasureCompilerVisitor>*/
2717 var684
= varonce683
;
2721 var687
= standard___standard__NativeString___to_s_with_length(var685
, var686
);
2723 varonce683
= var684
;
2725 var688
= NEW_standard__Array(&type_standard__Array__standard__Object
);
2726 { /* var688 = array_instance Array[Object] */
2728 var690
= NEW_standard__NativeArray(var689
, &type_standard__NativeArray__standard__Object
);
2729 ((struct instance_standard__NativeArray
*)var690
)->values
[0] = (val
*) var_res
;
2730 ((struct instance_standard__NativeArray
*)var690
)->values
[1] = (val
*) var684
;
2732 ((void (*)(val
* self
, val
* p0
, long p1
))(var688
->class->vft
[COLOR_standard__array__Array__with_native
]))(var688
, var690
, var689
) /* with_native on <var688:Array[Object]>*/;
2736 var691
= ((val
* (*)(val
* self
))(var688
->class->vft
[COLOR_standard__string__Object__to_s
]))(var688
) /* to_s on <var688:Array[Object]>*/;
2739 nit___nit__AbstractCompilerVisitor___add(self
, var691
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <self:SeparateErasureCompilerVisitor>*/
2742 var693
= varonce692
;
2744 var694
= "} else {";
2746 var696
= standard___standard__NativeString___to_s_with_length(var694
, var695
);
2748 varonce692
= var693
;
2751 nit___nit__AbstractCompilerVisitor___add(self
, var693
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <self:SeparateErasureCompilerVisitor>*/
2754 var698
= varonce697
;
2758 var701
= standard___standard__NativeString___to_s_with_length(var699
, var700
);
2760 varonce697
= var698
;
2763 var703
= varonce702
;
2765 var704
= "type_table->table[";
2767 var706
= standard___standard__NativeString___to_s_with_length(var704
, var705
);
2769 varonce702
= var703
;
2772 var708
= varonce707
;
2776 var711
= standard___standard__NativeString___to_s_with_length(var709
, var710
);
2778 varonce707
= var708
;
2781 var713
= varonce712
;
2785 var716
= standard___standard__NativeString___to_s_with_length(var714
, var715
);
2787 varonce712
= var713
;
2789 var717
= NEW_standard__Array(&type_standard__Array__standard__Object
);
2790 { /* var717 = array_instance Array[Object] */
2792 var719
= NEW_standard__NativeArray(var718
, &type_standard__NativeArray__standard__Object
);
2793 ((struct instance_standard__NativeArray
*)var719
)->values
[0] = (val
*) var_res
;
2794 ((struct instance_standard__NativeArray
*)var719
)->values
[1] = (val
*) var698
;
2795 ((struct instance_standard__NativeArray
*)var719
)->values
[2] = (val
*) var_class_ptr
;
2796 ((struct instance_standard__NativeArray
*)var719
)->values
[3] = (val
*) var703
;
2797 ((struct instance_standard__NativeArray
*)var719
)->values
[4] = (val
*) var_cltype
;
2798 ((struct instance_standard__NativeArray
*)var719
)->values
[5] = (val
*) var708
;
2799 ((struct instance_standard__NativeArray
*)var719
)->values
[6] = (val
*) var_idtype
;
2800 ((struct instance_standard__NativeArray
*)var719
)->values
[7] = (val
*) var713
;
2802 ((void (*)(val
* self
, val
* p0
, long p1
))(var717
->class->vft
[COLOR_standard__array__Array__with_native
]))(var717
, var719
, var718
) /* with_native on <var717:Array[Object]>*/;
2806 var720
= ((val
* (*)(val
* self
))(var717
->class->vft
[COLOR_standard__string__Object__to_s
]))(var717
) /* to_s on <var717:Array[Object]>*/;
2809 nit___nit__AbstractCompilerVisitor___add(self
, var720
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <self:SeparateErasureCompilerVisitor>*/
2812 var722
= varonce721
;
2816 var725
= standard___standard__NativeString___to_s_with_length(var723
, var724
);
2818 varonce721
= var722
;
2821 nit___nit__AbstractCompilerVisitor___add(self
, var722
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <self:SeparateErasureCompilerVisitor>*/
2823 if (var_maybe_null
){
2825 var727
= varonce726
;
2829 var730
= standard___standard__NativeString___to_s_with_length(var728
, var729
);
2831 varonce726
= var727
;
2834 nit___nit__AbstractCompilerVisitor___add(self
, var727
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <self:SeparateErasureCompilerVisitor>*/
2843 /* method separate_erasure_compiler#SeparateErasureCompilerVisitor#unbox_extern for (self: SeparateErasureCompilerVisitor, RuntimeVariable, MType): RuntimeVariable */
2844 val
* nit___nit__SeparateErasureCompilerVisitor___nit__abstract_compiler__AbstractCompilerVisitor__unbox_extern(val
* self
, val
* p0
, val
* p1
) {
2845 val
* var
/* : RuntimeVariable */;
2846 val
* var_value
/* var value: RuntimeVariable */;
2847 val
* var_mtype
/* var mtype: MType */;
2848 short int var1
/* : Bool */;
2849 short int var2
/* : Bool */;
2850 short int var3
/* : Bool */;
2853 short int var_
/* var : Bool */;
2854 val
* var4
/* : MClass */;
2855 val
* var6
/* : MClass */;
2856 val
* var7
/* : MClassKind */;
2857 val
* var9
/* : MClassKind */;
2858 val
* var10
/* : MClassKind */;
2859 short int var11
/* : Bool */;
2860 val
* var_other
/* var other: nullable Object */;
2861 short int var13
/* : Bool */;
2862 short int var15
/* : Bool */;
2863 short int var_16
/* var : Bool */;
2864 val
* var17
/* : MClass */;
2865 val
* var19
/* : MClass */;
2866 val
* var20
/* : String */;
2867 val
* var22
/* : String */;
2868 static val
* varonce
;
2869 val
* var23
/* : String */;
2870 char* var24
/* : NativeString */;
2871 long var25
/* : Int */;
2872 val
* var26
/* : FlatString */;
2873 short int var27
/* : Bool */;
2874 val
* var_other29
/* var other: nullable Object */;
2875 short int var30
/* : Bool */;
2876 short int var31
/* : Bool */;
2877 val
* var32
/* : AbstractCompiler */;
2878 val
* var34
/* : AbstractCompiler */;
2879 val
* var35
/* : MModule */;
2880 val
* var37
/* : MModule */;
2881 val
* var38
/* : MClassType */;
2882 val
* var_pointer_type
/* var pointer_type: MClassType */;
2883 val
* var39
/* : RuntimeVariable */;
2884 val
* var_res
/* var res: RuntimeVariable */;
2885 static val
* varonce40
;
2886 val
* var41
/* : String */;
2887 char* var42
/* : NativeString */;
2888 long var43
/* : Int */;
2889 val
* var44
/* : FlatString */;
2890 val
* var45
/* : String */;
2891 static val
* varonce46
;
2892 val
* var47
/* : String */;
2893 char* var48
/* : NativeString */;
2894 long var49
/* : Int */;
2895 val
* var50
/* : FlatString */;
2896 static val
* varonce51
;
2897 val
* var52
/* : String */;
2898 char* var53
/* : NativeString */;
2899 long var54
/* : Int */;
2900 val
* var55
/* : FlatString */;
2901 val
* var56
/* : MType */;
2902 val
* var58
/* : MType */;
2903 static val
* varonce59
;
2904 val
* var60
/* : String */;
2905 char* var61
/* : NativeString */;
2906 long var62
/* : Int */;
2907 val
* var63
/* : FlatString */;
2908 val
* var64
/* : Array[Object] */;
2909 long var65
/* : Int */;
2910 val
* var66
/* : NativeArray[Object] */;
2911 val
* var67
/* : String */;
2914 /* <var_mtype:MType> isa MClassType */
2915 cltype
= type_nit__MClassType
.color
;
2916 idtype
= type_nit__MClassType
.id
;
2917 if(cltype
>= var_mtype
->type
->table_size
) {
2920 var3
= var_mtype
->type
->type_table
[cltype
] == idtype
;
2925 { /* Inline model#MClassType#mclass (var_mtype) on <var_mtype:MType(MClassType)> */
2926 var6
= var_mtype
->attrs
[COLOR_nit__model__MClassType___mclass
].val
; /* _mclass on <var_mtype:MType(MClassType)> */
2927 if (unlikely(var6
== NULL
)) {
2928 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
2929 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 1058);
2937 { /* Inline model#MClass#kind (var4) on <var4:MClass> */
2938 var9
= var4
->attrs
[COLOR_nit__model__MClass___kind
].val
; /* _kind on <var4:MClass> */
2939 if (unlikely(var9
== NULL
)) {
2940 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _kind");
2941 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 399);
2949 var10
= nit__model___standard__Object___extern_kind(self
);
2952 { /* Inline kernel#Object#== (var7,var10) on <var7:MClassKind> */
2955 { /* Inline kernel#Object#is_same_instance (var7,var_other) on <var7:MClassKind> */
2956 var15
= var7
== var_other
;
2959 RET_LABEL14
:(void)0;
2964 RET_LABEL12
:(void)0;
2974 { /* Inline model#MClassType#mclass (var_mtype) on <var_mtype:MType(MClassType)> */
2975 var19
= var_mtype
->attrs
[COLOR_nit__model__MClassType___mclass
].val
; /* _mclass on <var_mtype:MType(MClassType)> */
2976 if (unlikely(var19
== NULL
)) {
2977 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
2978 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 1058);
2982 RET_LABEL18
:(void)0;
2986 { /* Inline model#MClass#name (var17) on <var17:MClass> */
2987 var22
= var17
->attrs
[COLOR_nit__model__MClass___name
].val
; /* _name on <var17:MClass> */
2988 if (unlikely(var22
== NULL
)) {
2989 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
2990 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 348);
2994 RET_LABEL21
:(void)0;
3000 var24
= "NativeString";
3002 var26
= standard___standard__NativeString___to_s_with_length(var24
, var25
);
3007 { /* Inline kernel#Object#!= (var20,var23) on <var20:String> */
3008 var_other29
= var23
;
3010 var30
= ((short int (*)(val
* self
, val
* p0
))(var20
->class->vft
[COLOR_standard__kernel__Object___61d_61d
]))(var20
, var_other29
) /* == on <var20:String>*/;
3015 RET_LABEL28
:(void)0;
3024 { /* Inline abstract_compiler#AbstractCompilerVisitor#compiler (self) on <self:SeparateErasureCompilerVisitor> */
3025 var34
= self
->attrs
[COLOR_nit__abstract_compiler__AbstractCompilerVisitor___compiler
].val
; /* _compiler on <self:SeparateErasureCompilerVisitor> */
3026 if (unlikely(var34
== NULL
)) {
3027 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _compiler");
3028 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler
, 1059);
3032 RET_LABEL33
:(void)0;
3036 { /* Inline abstract_compiler#AbstractCompiler#mainmodule (var32) on <var32:AbstractCompiler(SeparateCompiler)> */
3037 var37
= var32
->attrs
[COLOR_nit__abstract_compiler__AbstractCompiler___mainmodule
].val
; /* _mainmodule on <var32:AbstractCompiler(SeparateCompiler)> */
3038 if (unlikely(var37
== NULL
)) {
3039 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule");
3040 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler
, 474);
3044 RET_LABEL36
:(void)0;
3048 var38
= nit__model___MModule___pointer_type(var35
);
3050 var_pointer_type
= var38
;
3052 var39
= nit___nit__AbstractCompilerVisitor___new_var_extern(self
, var_mtype
);
3058 var42
= " = ((struct instance_";
3060 var44
= standard___standard__NativeString___to_s_with_length(var42
, var43
);
3065 var45
= ((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>*/;
3072 var50
= standard___standard__NativeString___to_s_with_length(var48
, var49
);
3079 var53
= ")->value; /* unboxing ";
3081 var55
= standard___standard__NativeString___to_s_with_length(var53
, var54
);
3086 { /* Inline abstract_compiler#RuntimeVariable#mtype (var_value) on <var_value:RuntimeVariable> */
3087 var58
= var_value
->attrs
[COLOR_nit__abstract_compiler__RuntimeVariable___mtype
].val
; /* _mtype on <var_value:RuntimeVariable> */
3088 if (unlikely(var58
== NULL
)) {
3089 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
3090 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler
, 1680);
3094 RET_LABEL57
:(void)0;
3102 var63
= standard___standard__NativeString___to_s_with_length(var61
, var62
);
3106 var64
= NEW_standard__Array(&type_standard__Array__standard__Object
);
3107 { /* var64 = array_instance Array[Object] */
3109 var66
= NEW_standard__NativeArray(var65
, &type_standard__NativeArray__standard__Object
);
3110 ((struct instance_standard__NativeArray
*)var66
)->values
[0] = (val
*) var_res
;
3111 ((struct instance_standard__NativeArray
*)var66
)->values
[1] = (val
*) var41
;
3112 ((struct instance_standard__NativeArray
*)var66
)->values
[2] = (val
*) var45
;
3113 ((struct instance_standard__NativeArray
*)var66
)->values
[3] = (val
*) var47
;
3114 ((struct instance_standard__NativeArray
*)var66
)->values
[4] = (val
*) var_value
;
3115 ((struct instance_standard__NativeArray
*)var66
)->values
[5] = (val
*) var52
;
3116 ((struct instance_standard__NativeArray
*)var66
)->values
[6] = (val
*) var56
;
3117 ((struct instance_standard__NativeArray
*)var66
)->values
[7] = (val
*) var60
;
3119 ((void (*)(val
* self
, val
* p0
, long p1
))(var64
->class->vft
[COLOR_standard__array__Array__with_native
]))(var64
, var66
, var65
) /* with_native on <var64:Array[Object]>*/;
3123 var67
= ((val
* (*)(val
* self
))(var64
->class->vft
[COLOR_standard__string__Object__to_s
]))(var64
) /* to_s on <var64:Array[Object]>*/;
3126 nit___nit__AbstractCompilerVisitor___add(self
, var67
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <self:SeparateErasureCompilerVisitor>*/
3137 /* method separate_erasure_compiler#SeparateErasureCompilerVisitor#box_extern for (self: SeparateErasureCompilerVisitor, RuntimeVariable, MType): RuntimeVariable */
3138 val
* nit___nit__SeparateErasureCompilerVisitor___nit__abstract_compiler__AbstractCompilerVisitor__box_extern(val
* self
, val
* p0
, val
* p1
) {
3139 val
* var
/* : RuntimeVariable */;
3140 val
* var_value
/* var value: RuntimeVariable */;
3141 val
* var_mtype
/* var mtype: MType */;
3142 short int var1
/* : Bool */;
3143 short int var2
/* : Bool */;
3144 short int var3
/* : Bool */;
3147 short int var_
/* var : Bool */;
3148 val
* var4
/* : MClass */;
3149 val
* var6
/* : MClass */;
3150 val
* var7
/* : MClassKind */;
3151 val
* var9
/* : MClassKind */;
3152 val
* var10
/* : MClassKind */;
3153 short int var11
/* : Bool */;
3154 val
* var_other
/* var other: nullable Object */;
3155 short int var13
/* : Bool */;
3156 short int var15
/* : Bool */;
3157 short int var_16
/* var : Bool */;
3158 val
* var17
/* : MClass */;
3159 val
* var19
/* : MClass */;
3160 val
* var20
/* : String */;
3161 val
* var22
/* : String */;
3162 static val
* varonce
;
3163 val
* var23
/* : String */;
3164 char* var24
/* : NativeString */;
3165 long var25
/* : Int */;
3166 val
* var26
/* : FlatString */;
3167 short int var27
/* : Bool */;
3168 val
* var_other29
/* var other: nullable Object */;
3169 short int var30
/* : Bool */;
3170 short int var31
/* : Bool */;
3171 val
* var32
/* : AbstractCompiler */;
3172 val
* var34
/* : AbstractCompiler */;
3173 val
* var35
/* : MModule */;
3174 val
* var37
/* : MModule */;
3175 val
* var38
/* : MClassType */;
3176 val
* var_valtype
/* var valtype: MClassType */;
3177 val
* var39
/* : RuntimeVariable */;
3178 val
* var_res
/* var res: RuntimeVariable */;
3179 short int var40
/* : Bool */;
3180 val
* var41
/* : AbstractCompiler */;
3181 val
* var43
/* : AbstractCompiler */;
3182 val
* var44
/* : nullable RapidTypeAnalysis */;
3183 val
* var46
/* : nullable RapidTypeAnalysis */;
3184 val
* var47
/* : null */;
3185 short int var48
/* : Bool */;
3186 short int var49
/* : Bool */;
3187 short int var51
/* : Bool */;
3188 short int var52
/* : Bool */;
3189 short int var_53
/* var : Bool */;
3190 val
* var54
/* : AbstractCompiler */;
3191 val
* var56
/* : AbstractCompiler */;
3192 val
* var57
/* : nullable RapidTypeAnalysis */;
3193 val
* var59
/* : nullable RapidTypeAnalysis */;
3194 val
* var60
/* : HashSet[MClassType] */;
3195 val
* var62
/* : HashSet[MClassType] */;
3196 val
* var63
/* : MType */;
3197 val
* var65
/* : MType */;
3198 short int var66
/* : Bool */;
3201 const char* var_class_name
;
3202 short int var69
/* : Bool */;
3203 short int var70
/* : Bool */;
3204 static val
* varonce71
;
3205 val
* var72
/* : String */;
3206 char* var73
/* : NativeString */;
3207 long var74
/* : Int */;
3208 val
* var75
/* : FlatString */;
3209 val
* var76
/* : MType */;
3210 val
* var78
/* : MType */;
3211 static val
* varonce79
;
3212 val
* var80
/* : String */;
3213 char* var81
/* : NativeString */;
3214 long var82
/* : Int */;
3215 val
* var83
/* : FlatString */;
3216 val
* var84
/* : MType */;
3217 val
* var86
/* : MType */;
3218 static val
* varonce87
;
3219 val
* var88
/* : String */;
3220 char* var89
/* : NativeString */;
3221 long var90
/* : Int */;
3222 val
* var91
/* : FlatString */;
3223 val
* var92
/* : Array[Object] */;
3224 long var93
/* : Int */;
3225 val
* var94
/* : NativeArray[Object] */;
3226 val
* var95
/* : String */;
3227 static val
* varonce96
;
3228 val
* var97
/* : String */;
3229 char* var98
/* : NativeString */;
3230 long var99
/* : Int */;
3231 val
* var100
/* : FlatString */;
3232 static val
* varonce101
;
3233 val
* var102
/* : String */;
3234 char* var103
/* : NativeString */;
3235 long var104
/* : Int */;
3236 val
* var105
/* : FlatString */;
3237 val
* var106
/* : String */;
3238 val
* var107
/* : Array[Object] */;
3239 long var108
/* : Int */;
3240 val
* var109
/* : NativeArray[Object] */;
3241 val
* var110
/* : String */;
3242 static val
* varonce111
;
3243 val
* var112
/* : String */;
3244 char* var113
/* : NativeString */;
3245 long var114
/* : Int */;
3246 val
* var115
/* : FlatString */;
3247 val
* var116
/* : String */;
3248 static val
* varonce117
;
3249 val
* var118
/* : String */;
3250 char* var119
/* : NativeString */;
3251 long var120
/* : Int */;
3252 val
* var121
/* : FlatString */;
3253 static val
* varonce122
;
3254 val
* var123
/* : String */;
3255 char* var124
/* : NativeString */;
3256 long var125
/* : Int */;
3257 val
* var126
/* : FlatString */;
3258 val
* var127
/* : MType */;
3259 val
* var129
/* : MType */;
3260 static val
* varonce130
;
3261 val
* var131
/* : String */;
3262 char* var132
/* : NativeString */;
3263 long var133
/* : Int */;
3264 val
* var134
/* : FlatString */;
3265 val
* var135
/* : Array[Object] */;
3266 long var136
/* : Int */;
3267 val
* var137
/* : NativeArray[Object] */;
3268 val
* var138
/* : String */;
3269 static val
* varonce139
;
3270 val
* var140
/* : String */;
3271 char* var141
/* : NativeString */;
3272 long var142
/* : Int */;
3273 val
* var143
/* : FlatString */;
3274 val
* var144
/* : String */;
3275 val
* var145
/* : Array[Object] */;
3276 long var146
/* : Int */;
3277 val
* var147
/* : NativeArray[Object] */;
3278 val
* var148
/* : String */;
3279 static val
* varonce149
;
3280 val
* var150
/* : String */;
3281 char* var151
/* : NativeString */;
3282 long var152
/* : Int */;
3283 val
* var153
/* : FlatString */;
3284 val
* var154
/* : String */;
3285 static val
* varonce155
;
3286 val
* var156
/* : String */;
3287 char* var157
/* : NativeString */;
3288 long var158
/* : Int */;
3289 val
* var159
/* : FlatString */;
3290 val
* var160
/* : Array[Object] */;
3291 long var161
/* : Int */;
3292 val
* var162
/* : NativeArray[Object] */;
3293 val
* var163
/* : String */;
3296 /* <var_mtype:MType> isa MClassType */
3297 cltype
= type_nit__MClassType
.color
;
3298 idtype
= type_nit__MClassType
.id
;
3299 if(cltype
>= var_mtype
->type
->table_size
) {
3302 var3
= var_mtype
->type
->type_table
[cltype
] == idtype
;
3307 { /* Inline model#MClassType#mclass (var_mtype) on <var_mtype:MType(MClassType)> */
3308 var6
= var_mtype
->attrs
[COLOR_nit__model__MClassType___mclass
].val
; /* _mclass on <var_mtype:MType(MClassType)> */
3309 if (unlikely(var6
== NULL
)) {
3310 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
3311 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 1058);
3319 { /* Inline model#MClass#kind (var4) on <var4:MClass> */
3320 var9
= var4
->attrs
[COLOR_nit__model__MClass___kind
].val
; /* _kind on <var4:MClass> */
3321 if (unlikely(var9
== NULL
)) {
3322 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _kind");
3323 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 399);
3331 var10
= nit__model___standard__Object___extern_kind(self
);
3334 { /* Inline kernel#Object#== (var7,var10) on <var7:MClassKind> */
3337 { /* Inline kernel#Object#is_same_instance (var7,var_other) on <var7:MClassKind> */
3338 var15
= var7
== var_other
;
3341 RET_LABEL14
:(void)0;
3346 RET_LABEL12
:(void)0;
3356 { /* Inline model#MClassType#mclass (var_mtype) on <var_mtype:MType(MClassType)> */
3357 var19
= var_mtype
->attrs
[COLOR_nit__model__MClassType___mclass
].val
; /* _mclass on <var_mtype:MType(MClassType)> */
3358 if (unlikely(var19
== NULL
)) {
3359 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
3360 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 1058);
3364 RET_LABEL18
:(void)0;
3368 { /* Inline model#MClass#name (var17) on <var17:MClass> */
3369 var22
= var17
->attrs
[COLOR_nit__model__MClass___name
].val
; /* _name on <var17:MClass> */
3370 if (unlikely(var22
== NULL
)) {
3371 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
3372 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 348);
3376 RET_LABEL21
:(void)0;
3382 var24
= "NativeString";
3384 var26
= standard___standard__NativeString___to_s_with_length(var24
, var25
);
3389 { /* Inline kernel#Object#!= (var20,var23) on <var20:String> */
3390 var_other29
= var23
;
3392 var30
= ((short int (*)(val
* self
, val
* p0
))(var20
->class->vft
[COLOR_standard__kernel__Object___61d_61d
]))(var20
, var_other29
) /* == on <var20:String>*/;
3397 RET_LABEL28
:(void)0;
3406 { /* Inline abstract_compiler#AbstractCompilerVisitor#compiler (self) on <self:SeparateErasureCompilerVisitor> */
3407 var34
= self
->attrs
[COLOR_nit__abstract_compiler__AbstractCompilerVisitor___compiler
].val
; /* _compiler on <self:SeparateErasureCompilerVisitor> */
3408 if (unlikely(var34
== NULL
)) {
3409 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _compiler");
3410 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler
, 1059);
3414 RET_LABEL33
:(void)0;
3418 { /* Inline abstract_compiler#AbstractCompiler#mainmodule (var32) on <var32:AbstractCompiler(SeparateCompiler)> */
3419 var37
= var32
->attrs
[COLOR_nit__abstract_compiler__AbstractCompiler___mainmodule
].val
; /* _mainmodule on <var32:AbstractCompiler(SeparateCompiler)> */
3420 if (unlikely(var37
== NULL
)) {
3421 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule");
3422 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler
, 474);
3426 RET_LABEL36
:(void)0;
3430 var38
= nit__model___MModule___pointer_type(var35
);
3432 var_valtype
= var38
;
3434 var39
= nit___nit__AbstractCompilerVisitor___new_var(self
, var_mtype
);
3438 { /* Inline abstract_compiler#AbstractCompilerVisitor#compiler (self) on <self:SeparateErasureCompilerVisitor> */
3439 var43
= self
->attrs
[COLOR_nit__abstract_compiler__AbstractCompilerVisitor___compiler
].val
; /* _compiler on <self:SeparateErasureCompilerVisitor> */
3440 if (unlikely(var43
== NULL
)) {
3441 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _compiler");
3442 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler
, 1059);
3446 RET_LABEL42
:(void)0;
3450 { /* Inline separate_compiler#SeparateCompiler#runtime_type_analysis (var41) on <var41:AbstractCompiler(SeparateCompiler)> */
3451 var46
= var41
->attrs
[COLOR_nit__separate_compiler__SeparateCompiler___runtime_type_analysis
].val
; /* _runtime_type_analysis on <var41:AbstractCompiler(SeparateCompiler)> */
3453 RET_LABEL45
:(void)0;
3457 if (var44
== NULL
) {
3458 var48
= 0; /* is null */
3460 var48
= 1; /* arg is null and recv is not */
3463 { /* Inline kernel#Object#!= (var44,var47) on <var44:nullable RapidTypeAnalysis> */
3464 var_other29
= var47
;
3466 var51
= ((short int (*)(val
* self
, val
* p0
))(var44
->class->vft
[COLOR_standard__kernel__Object___61d_61d
]))(var44
, var_other29
) /* == on <var44:nullable RapidTypeAnalysis(RapidTypeAnalysis)>*/;
3471 RET_LABEL50
:(void)0;
3478 { /* Inline abstract_compiler#AbstractCompilerVisitor#compiler (self) on <self:SeparateErasureCompilerVisitor> */
3479 var56
= self
->attrs
[COLOR_nit__abstract_compiler__AbstractCompilerVisitor___compiler
].val
; /* _compiler on <self:SeparateErasureCompilerVisitor> */
3480 if (unlikely(var56
== NULL
)) {
3481 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _compiler");
3482 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler
, 1059);
3486 RET_LABEL55
:(void)0;
3490 { /* Inline separate_compiler#SeparateCompiler#runtime_type_analysis (var54) on <var54:AbstractCompiler(SeparateCompiler)> */
3491 var59
= var54
->attrs
[COLOR_nit__separate_compiler__SeparateCompiler___runtime_type_analysis
].val
; /* _runtime_type_analysis on <var54:AbstractCompiler(SeparateCompiler)> */
3493 RET_LABEL58
:(void)0;
3496 if (var57
== NULL
) {
3497 PRINT_ERROR("Runtime error: %s", "Receiver is null");
3498 PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_erasure_compiler
, 611);
3501 { /* Inline rapid_type_analysis#RapidTypeAnalysis#live_types (var57) on <var57:nullable RapidTypeAnalysis> */
3502 if (unlikely(var57
== NULL
)) {
3503 PRINT_ERROR("Runtime error: %s", "Receiver is null");
3504 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 53);
3507 var62
= var57
->attrs
[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___live_types
].val
; /* _live_types on <var57:nullable RapidTypeAnalysis> */
3508 if (unlikely(var62
== NULL
)) {
3509 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_types");
3510 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 53);
3514 RET_LABEL61
:(void)0;
3518 { /* Inline abstract_compiler#RuntimeVariable#mtype (var_value) on <var_value:RuntimeVariable> */
3519 var65
= var_value
->attrs
[COLOR_nit__abstract_compiler__RuntimeVariable___mtype
].val
; /* _mtype on <var_value:RuntimeVariable> */
3520 if (unlikely(var65
== NULL
)) {
3521 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
3522 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler
, 1680);
3526 RET_LABEL64
:(void)0;
3529 /* <var63:MType> isa MClassType */
3530 cltype67
= type_nit__MClassType
.color
;
3531 idtype68
= type_nit__MClassType
.id
;
3532 if(cltype67
>= var63
->type
->table_size
) {
3535 var66
= var63
->type
->type_table
[cltype67
] == idtype68
;
3537 if (unlikely(!var66
)) {
3538 var_class_name
= var63
== NULL ?
"null" : var63
->type
->name
;
3539 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "MClassType", var_class_name
);
3540 PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_erasure_compiler
, 611);
3544 var69
= standard___standard__HashSet___standard__abstract_collection__Collection__has(var60
, var63
);
3555 var73
= "/*no boxing of ";
3557 var75
= standard___standard__NativeString___to_s_with_length(var73
, var74
);
3562 { /* Inline abstract_compiler#RuntimeVariable#mtype (var_value) on <var_value:RuntimeVariable> */
3563 var78
= var_value
->attrs
[COLOR_nit__abstract_compiler__RuntimeVariable___mtype
].val
; /* _mtype on <var_value:RuntimeVariable> */
3564 if (unlikely(var78
== NULL
)) {
3565 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
3566 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler
, 1680);
3570 RET_LABEL77
:(void)0;
3578 var83
= standard___standard__NativeString___to_s_with_length(var81
, var82
);
3583 { /* Inline abstract_compiler#RuntimeVariable#mtype (var_value) on <var_value:RuntimeVariable> */
3584 var86
= var_value
->attrs
[COLOR_nit__abstract_compiler__RuntimeVariable___mtype
].val
; /* _mtype on <var_value:RuntimeVariable> */
3585 if (unlikely(var86
== NULL
)) {
3586 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
3587 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler
, 1680);
3591 RET_LABEL85
:(void)0;
3597 var89
= " is not live! */";
3599 var91
= standard___standard__NativeString___to_s_with_length(var89
, var90
);
3603 var92
= NEW_standard__Array(&type_standard__Array__standard__Object
);
3604 { /* var92 = array_instance Array[Object] */
3606 var94
= NEW_standard__NativeArray(var93
, &type_standard__NativeArray__standard__Object
);
3607 ((struct instance_standard__NativeArray
*)var94
)->values
[0] = (val
*) var72
;
3608 ((struct instance_standard__NativeArray
*)var94
)->values
[1] = (val
*) var76
;
3609 ((struct instance_standard__NativeArray
*)var94
)->values
[2] = (val
*) var80
;
3610 ((struct instance_standard__NativeArray
*)var94
)->values
[3] = (val
*) var84
;
3611 ((struct instance_standard__NativeArray
*)var94
)->values
[4] = (val
*) var88
;
3613 ((void (*)(val
* self
, val
* p0
, long p1
))(var92
->class->vft
[COLOR_standard__array__Array__with_native
]))(var92
, var94
, var93
) /* with_native on <var92:Array[Object]>*/;
3617 var95
= ((val
* (*)(val
* self
))(var92
->class->vft
[COLOR_standard__string__Object__to_s
]))(var92
) /* to_s on <var92:Array[Object]>*/;
3620 nit___nit__AbstractCompilerVisitor___add(self
, var95
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <self:SeparateErasureCompilerVisitor>*/
3625 var98
= "PRINT_ERROR(\"Dead code executed!\\n\"); show_backtrace(1);";
3627 var100
= standard___standard__NativeString___to_s_with_length(var98
, var99
);
3632 nit___nit__AbstractCompilerVisitor___add(self
, var97
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <self:SeparateErasureCompilerVisitor>*/
3639 var102
= varonce101
;
3643 var105
= standard___standard__NativeString___to_s_with_length(var103
, var104
);
3645 varonce101
= var102
;
3648 var106
= ((val
* (*)(val
* self
))(var_valtype
->class->vft
[COLOR_nit__model_base__MEntity__c_name
]))(var_valtype
) /* c_name on <var_valtype:MClassType>*/;
3650 var107
= NEW_standard__Array(&type_standard__Array__standard__Object
);
3651 { /* var107 = array_instance Array[Object] */
3653 var109
= NEW_standard__NativeArray(var108
, &type_standard__NativeArray__standard__Object
);
3654 ((struct instance_standard__NativeArray
*)var109
)->values
[0] = (val
*) var102
;
3655 ((struct instance_standard__NativeArray
*)var109
)->values
[1] = (val
*) var106
;
3657 ((void (*)(val
* self
, val
* p0
, long p1
))(var107
->class->vft
[COLOR_standard__array__Array__with_native
]))(var107
, var109
, var108
) /* with_native on <var107:Array[Object]>*/;
3661 var110
= ((val
* (*)(val
* self
))(var107
->class->vft
[COLOR_standard__string__Object__to_s
]))(var107
) /* to_s on <var107:Array[Object]>*/;
3664 nit___nit__AbstractCompilerVisitor___require_declaration(self
, var110
); /* Direct call abstract_compiler#AbstractCompilerVisitor#require_declaration on <self:SeparateErasureCompilerVisitor>*/
3667 var112
= varonce111
;
3671 var115
= standard___standard__NativeString___to_s_with_length(var113
, var114
);
3673 varonce111
= var112
;
3676 var116
= ((val
* (*)(val
* self
))(var_valtype
->class->vft
[COLOR_nit__model_base__MEntity__c_name
]))(var_valtype
) /* c_name on <var_valtype:MClassType>*/;
3679 var118
= varonce117
;
3683 var121
= standard___standard__NativeString___to_s_with_length(var119
, var120
);
3685 varonce117
= var118
;
3688 var123
= varonce122
;
3690 var124
= "); /* boxing ";
3692 var126
= standard___standard__NativeString___to_s_with_length(var124
, var125
);
3694 varonce122
= var123
;
3697 { /* Inline abstract_compiler#RuntimeVariable#mtype (var_value) on <var_value:RuntimeVariable> */
3698 var129
= var_value
->attrs
[COLOR_nit__abstract_compiler__RuntimeVariable___mtype
].val
; /* _mtype on <var_value:RuntimeVariable> */
3699 if (unlikely(var129
== NULL
)) {
3700 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
3701 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler
, 1680);
3705 RET_LABEL128
:(void)0;
3709 var131
= varonce130
;
3713 var134
= standard___standard__NativeString___to_s_with_length(var132
, var133
);
3715 varonce130
= var131
;
3717 var135
= NEW_standard__Array(&type_standard__Array__standard__Object
);
3718 { /* var135 = array_instance Array[Object] */
3720 var137
= NEW_standard__NativeArray(var136
, &type_standard__NativeArray__standard__Object
);
3721 ((struct instance_standard__NativeArray
*)var137
)->values
[0] = (val
*) var_res
;
3722 ((struct instance_standard__NativeArray
*)var137
)->values
[1] = (val
*) var112
;
3723 ((struct instance_standard__NativeArray
*)var137
)->values
[2] = (val
*) var116
;
3724 ((struct instance_standard__NativeArray
*)var137
)->values
[3] = (val
*) var118
;
3725 ((struct instance_standard__NativeArray
*)var137
)->values
[4] = (val
*) var_value
;
3726 ((struct instance_standard__NativeArray
*)var137
)->values
[5] = (val
*) var123
;
3727 ((struct instance_standard__NativeArray
*)var137
)->values
[6] = (val
*) var127
;
3728 ((struct instance_standard__NativeArray
*)var137
)->values
[7] = (val
*) var131
;
3730 ((void (*)(val
* self
, val
* p0
, long p1
))(var135
->class->vft
[COLOR_standard__array__Array__with_native
]))(var135
, var137
, var136
) /* with_native on <var135:Array[Object]>*/;
3734 var138
= ((val
* (*)(val
* self
))(var135
->class->vft
[COLOR_standard__string__Object__to_s
]))(var135
) /* to_s on <var135:Array[Object]>*/;
3737 nit___nit__AbstractCompilerVisitor___add(self
, var138
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <self:SeparateErasureCompilerVisitor>*/
3740 var140
= varonce139
;
3744 var143
= standard___standard__NativeString___to_s_with_length(var141
, var142
);
3746 varonce139
= var140
;
3749 var144
= ((val
* (*)(val
* self
))(var_mtype
->class->vft
[COLOR_nit__model_base__MEntity__c_name
]))(var_mtype
) /* c_name on <var_mtype:MType(MClassType)>*/;
3751 var145
= NEW_standard__Array(&type_standard__Array__standard__Object
);
3752 { /* var145 = array_instance Array[Object] */
3754 var147
= NEW_standard__NativeArray(var146
, &type_standard__NativeArray__standard__Object
);
3755 ((struct instance_standard__NativeArray
*)var147
)->values
[0] = (val
*) var140
;
3756 ((struct instance_standard__NativeArray
*)var147
)->values
[1] = (val
*) var144
;
3758 ((void (*)(val
* self
, val
* p0
, long p1
))(var145
->class->vft
[COLOR_standard__array__Array__with_native
]))(var145
, var147
, var146
) /* with_native on <var145:Array[Object]>*/;
3762 var148
= ((val
* (*)(val
* self
))(var145
->class->vft
[COLOR_standard__string__Object__to_s
]))(var145
) /* to_s on <var145:Array[Object]>*/;
3765 nit___nit__AbstractCompilerVisitor___require_declaration(self
, var148
); /* Direct call abstract_compiler#AbstractCompilerVisitor#require_declaration on <self:SeparateErasureCompilerVisitor>*/
3768 var150
= varonce149
;
3770 var151
= "->class = &class_";
3772 var153
= standard___standard__NativeString___to_s_with_length(var151
, var152
);
3774 varonce149
= var150
;
3777 var154
= ((val
* (*)(val
* self
))(var_mtype
->class->vft
[COLOR_nit__model_base__MEntity__c_name
]))(var_mtype
) /* c_name on <var_mtype:MType(MClassType)>*/;
3780 var156
= varonce155
;
3784 var159
= standard___standard__NativeString___to_s_with_length(var157
, var158
);
3786 varonce155
= var156
;
3788 var160
= NEW_standard__Array(&type_standard__Array__standard__Object
);
3789 { /* var160 = array_instance Array[Object] */
3791 var162
= NEW_standard__NativeArray(var161
, &type_standard__NativeArray__standard__Object
);
3792 ((struct instance_standard__NativeArray
*)var162
)->values
[0] = (val
*) var_res
;
3793 ((struct instance_standard__NativeArray
*)var162
)->values
[1] = (val
*) var150
;
3794 ((struct instance_standard__NativeArray
*)var162
)->values
[2] = (val
*) var154
;
3795 ((struct instance_standard__NativeArray
*)var162
)->values
[3] = (val
*) var156
;
3797 ((void (*)(val
* self
, val
* p0
, long p1
))(var160
->class->vft
[COLOR_standard__array__Array__with_native
]))(var160
, var162
, var161
) /* with_native on <var160:Array[Object]>*/;
3801 var163
= ((val
* (*)(val
* self
))(var160
->class->vft
[COLOR_standard__string__Object__to_s
]))(var160
) /* to_s on <var160:Array[Object]>*/;
3804 nit___nit__AbstractCompilerVisitor___add(self
, var163
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <self:SeparateErasureCompilerVisitor>*/
3815 /* method separate_erasure_compiler#SeparateErasureCompilerVisitor#class_name_string for (self: SeparateErasureCompilerVisitor, RuntimeVariable): String */
3816 val
* nit___nit__SeparateErasureCompilerVisitor___nit__abstract_compiler__AbstractCompilerVisitor__class_name_string(val
* self
, val
* p0
) {
3817 val
* var
/* : String */;
3818 val
* var_value
/* var value: RuntimeVariable */;
3819 static val
* varonce
;
3820 val
* var1
/* : String */;
3821 char* var2
/* : NativeString */;
3822 long var3
/* : Int */;
3823 val
* var4
/* : FlatString */;
3824 val
* var5
/* : String */;
3825 val
* var_res
/* var res: String */;
3826 static val
* varonce6
;
3827 val
* var7
/* : String */;
3828 char* var8
/* : NativeString */;
3829 long var9
/* : Int */;
3830 val
* var10
/* : FlatString */;
3831 static val
* varonce11
;
3832 val
* var12
/* : String */;
3833 char* var13
/* : NativeString */;
3834 long var14
/* : Int */;
3835 val
* var15
/* : FlatString */;
3836 val
* var16
/* : Array[Object] */;
3837 long var17
/* : Int */;
3838 val
* var18
/* : NativeArray[Object] */;
3839 val
* var19
/* : String */;
3840 val
* var20
/* : MType */;
3841 val
* var22
/* : MType */;
3842 val
* var23
/* : String */;
3843 static val
* varonce24
;
3844 val
* var25
/* : String */;
3845 char* var26
/* : NativeString */;
3846 long var27
/* : Int */;
3847 val
* var28
/* : FlatString */;
3848 short int var29
/* : Bool */;
3849 static val
* varonce30
;
3850 val
* var31
/* : String */;
3851 char* var32
/* : NativeString */;
3852 long var33
/* : Int */;
3853 val
* var34
/* : FlatString */;
3854 static val
* varonce35
;
3855 val
* var36
/* : String */;
3856 char* var37
/* : NativeString */;
3857 long var38
/* : Int */;
3858 val
* var39
/* : FlatString */;
3859 static val
* varonce40
;
3860 val
* var41
/* : String */;
3861 char* var42
/* : NativeString */;
3862 long var43
/* : Int */;
3863 val
* var44
/* : FlatString */;
3864 val
* var45
/* : Array[Object] */;
3865 long var46
/* : Int */;
3866 val
* var47
/* : NativeArray[Object] */;
3867 val
* var48
/* : String */;
3868 static val
* varonce49
;
3869 val
* var50
/* : String */;
3870 char* var51
/* : NativeString */;
3871 long var52
/* : Int */;
3872 val
* var53
/* : FlatString */;
3873 val
* var54
/* : MType */;
3874 val
* var56
/* : MType */;
3875 val
* var57
/* : String */;
3876 val
* var58
/* : Array[Object] */;
3877 long var59
/* : Int */;
3878 val
* var60
/* : NativeArray[Object] */;
3879 val
* var61
/* : String */;
3880 static val
* varonce62
;
3881 val
* var63
/* : String */;
3882 char* var64
/* : NativeString */;
3883 long var65
/* : Int */;
3884 val
* var66
/* : FlatString */;
3885 val
* var67
/* : MType */;
3886 val
* var69
/* : MType */;
3887 val
* var70
/* : String */;
3888 static val
* varonce71
;
3889 val
* var72
/* : String */;
3890 char* var73
/* : NativeString */;
3891 long var74
/* : Int */;
3892 val
* var75
/* : FlatString */;
3893 val
* var76
/* : Array[Object] */;
3894 long var77
/* : Int */;
3895 val
* var78
/* : NativeArray[Object] */;
3896 val
* var79
/* : String */;
3901 var2
= "var_class_name";
3903 var4
= standard___standard__NativeString___to_s_with_length(var2
, var3
);
3908 var5
= nit___nit__AbstractCompilerVisitor___get_name(self
, var1
);
3914 var8
= "const char* ";
3916 var10
= standard___standard__NativeString___to_s_with_length(var8
, var9
);
3925 var15
= standard___standard__NativeString___to_s_with_length(var13
, var14
);
3929 var16
= NEW_standard__Array(&type_standard__Array__standard__Object
);
3930 { /* var16 = array_instance Array[Object] */
3932 var18
= NEW_standard__NativeArray(var17
, &type_standard__NativeArray__standard__Object
);
3933 ((struct instance_standard__NativeArray
*)var18
)->values
[0] = (val
*) var7
;
3934 ((struct instance_standard__NativeArray
*)var18
)->values
[1] = (val
*) var_res
;
3935 ((struct instance_standard__NativeArray
*)var18
)->values
[2] = (val
*) var12
;
3937 ((void (*)(val
* self
, val
* p0
, long p1
))(var16
->class->vft
[COLOR_standard__array__Array__with_native
]))(var16
, var18
, var17
) /* with_native on <var16:Array[Object]>*/;
3941 var19
= ((val
* (*)(val
* self
))(var16
->class->vft
[COLOR_standard__string__Object__to_s
]))(var16
) /* to_s on <var16:Array[Object]>*/;
3944 nit___nit__AbstractCompilerVisitor___add_decl(self
, var19
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <self:SeparateErasureCompilerVisitor>*/
3947 { /* Inline abstract_compiler#RuntimeVariable#mtype (var_value) on <var_value:RuntimeVariable> */
3948 var22
= var_value
->attrs
[COLOR_nit__abstract_compiler__RuntimeVariable___mtype
].val
; /* _mtype on <var_value:RuntimeVariable> */
3949 if (unlikely(var22
== NULL
)) {
3950 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
3951 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler
, 1680);
3955 RET_LABEL21
:(void)0;
3959 var23
= ((val
* (*)(val
* self
))(var20
->class->vft
[COLOR_nit__abstract_compiler__MType__ctype
]))(var20
) /* ctype on <var20:MType>*/;
3966 var28
= standard___standard__NativeString___to_s_with_length(var26
, var27
);
3971 var29
= ((short int (*)(val
* self
, val
* p0
))(var23
->class->vft
[COLOR_standard__kernel__Object___61d_61d
]))(var23
, var25
) /* == on <var23:String>*/;
3979 var34
= standard___standard__NativeString___to_s_with_length(var32
, var33
);
3986 var37
= " == NULL ? \"null\" : ";
3988 var39
= standard___standard__NativeString___to_s_with_length(var37
, var38
);
3995 var42
= "->class->name;";
3997 var44
= standard___standard__NativeString___to_s_with_length(var42
, var43
);
4001 var45
= NEW_standard__Array(&type_standard__Array__standard__Object
);
4002 { /* var45 = array_instance Array[Object] */
4004 var47
= NEW_standard__NativeArray(var46
, &type_standard__NativeArray__standard__Object
);
4005 ((struct instance_standard__NativeArray
*)var47
)->values
[0] = (val
*) var_res
;
4006 ((struct instance_standard__NativeArray
*)var47
)->values
[1] = (val
*) var31
;
4007 ((struct instance_standard__NativeArray
*)var47
)->values
[2] = (val
*) var_value
;
4008 ((struct instance_standard__NativeArray
*)var47
)->values
[3] = (val
*) var36
;
4009 ((struct instance_standard__NativeArray
*)var47
)->values
[4] = (val
*) var_value
;
4010 ((struct instance_standard__NativeArray
*)var47
)->values
[5] = (val
*) var41
;
4012 ((void (*)(val
* self
, val
* p0
, long p1
))(var45
->class->vft
[COLOR_standard__array__Array__with_native
]))(var45
, var47
, var46
) /* with_native on <var45:Array[Object]>*/;
4016 var48
= ((val
* (*)(val
* self
))(var45
->class->vft
[COLOR_standard__string__Object__to_s
]))(var45
) /* to_s on <var45:Array[Object]>*/;
4019 nit___nit__AbstractCompilerVisitor___add(self
, var48
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <self:SeparateErasureCompilerVisitor>*/
4027 var53
= standard___standard__NativeString___to_s_with_length(var51
, var52
);
4032 { /* Inline abstract_compiler#RuntimeVariable#mtype (var_value) on <var_value:RuntimeVariable> */
4033 var56
= var_value
->attrs
[COLOR_nit__abstract_compiler__RuntimeVariable___mtype
].val
; /* _mtype on <var_value:RuntimeVariable> */
4034 if (unlikely(var56
== NULL
)) {
4035 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
4036 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler
, 1680);
4040 RET_LABEL55
:(void)0;
4044 var57
= ((val
* (*)(val
* self
))(var54
->class->vft
[COLOR_nit__model_base__MEntity__c_name
]))(var54
) /* c_name on <var54:MType>*/;
4046 var58
= NEW_standard__Array(&type_standard__Array__standard__Object
);
4047 { /* var58 = array_instance Array[Object] */
4049 var60
= NEW_standard__NativeArray(var59
, &type_standard__NativeArray__standard__Object
);
4050 ((struct instance_standard__NativeArray
*)var60
)->values
[0] = (val
*) var50
;
4051 ((struct instance_standard__NativeArray
*)var60
)->values
[1] = (val
*) var57
;
4053 ((void (*)(val
* self
, val
* p0
, long p1
))(var58
->class->vft
[COLOR_standard__array__Array__with_native
]))(var58
, var60
, var59
) /* with_native on <var58:Array[Object]>*/;
4057 var61
= ((val
* (*)(val
* self
))(var58
->class->vft
[COLOR_standard__string__Object__to_s
]))(var58
) /* to_s on <var58:Array[Object]>*/;
4060 nit___nit__AbstractCompilerVisitor___require_declaration(self
, var61
); /* Direct call abstract_compiler#AbstractCompilerVisitor#require_declaration on <self:SeparateErasureCompilerVisitor>*/
4065 var64
= " = class_";
4067 var66
= standard___standard__NativeString___to_s_with_length(var64
, var65
);
4072 { /* Inline abstract_compiler#RuntimeVariable#mtype (var_value) on <var_value:RuntimeVariable> */
4073 var69
= var_value
->attrs
[COLOR_nit__abstract_compiler__RuntimeVariable___mtype
].val
; /* _mtype on <var_value:RuntimeVariable> */
4074 if (unlikely(var69
== NULL
)) {
4075 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
4076 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler
, 1680);
4080 RET_LABEL68
:(void)0;
4084 var70
= ((val
* (*)(val
* self
))(var67
->class->vft
[COLOR_nit__model_base__MEntity__c_name
]))(var67
) /* c_name on <var67:MType>*/;
4091 var75
= standard___standard__NativeString___to_s_with_length(var73
, var74
);
4095 var76
= NEW_standard__Array(&type_standard__Array__standard__Object
);
4096 { /* var76 = array_instance Array[Object] */
4098 var78
= NEW_standard__NativeArray(var77
, &type_standard__NativeArray__standard__Object
);
4099 ((struct instance_standard__NativeArray
*)var78
)->values
[0] = (val
*) var_res
;
4100 ((struct instance_standard__NativeArray
*)var78
)->values
[1] = (val
*) var63
;
4101 ((struct instance_standard__NativeArray
*)var78
)->values
[2] = (val
*) var70
;
4102 ((struct instance_standard__NativeArray
*)var78
)->values
[3] = (val
*) var72
;
4104 ((void (*)(val
* self
, val
* p0
, long p1
))(var76
->class->vft
[COLOR_standard__array__Array__with_native
]))(var76
, var78
, var77
) /* with_native on <var76:Array[Object]>*/;
4108 var79
= ((val
* (*)(val
* self
))(var76
->class->vft
[COLOR_standard__string__Object__to_s
]))(var76
) /* to_s on <var76:Array[Object]>*/;
4111 nit___nit__AbstractCompilerVisitor___add(self
, var79
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <self:SeparateErasureCompilerVisitor>*/
4119 /* method separate_erasure_compiler#SeparateErasureCompilerVisitor#native_array_instance for (self: SeparateErasureCompilerVisitor, MType, RuntimeVariable): RuntimeVariable */
4120 val
* nit___nit__SeparateErasureCompilerVisitor___nit__abstract_compiler__AbstractCompilerVisitor__native_array_instance(val
* self
, val
* p0
, val
* p1
) {
4121 val
* var
/* : RuntimeVariable */;
4122 val
* var_elttype
/* var elttype: MType */;
4123 val
* var_length
/* var length: RuntimeVariable */;
4124 static val
* varonce
;
4125 val
* var1
/* : String */;
4126 char* var2
/* : NativeString */;
4127 long var3
/* : Int */;
4128 val
* var4
/* : FlatString */;
4129 val
* var5
/* : MClass */;
4130 val
* var_nclass
/* var nclass: MClass */;
4131 val
* var6
/* : Array[MType] */;
4132 long var7
/* : Int */;
4133 val
* var_
/* var : Array[MType] */;
4134 val
* var8
/* : MClassType */;
4135 val
* var_mtype
/* var mtype: MClassType */;
4136 val
* var9
/* : RuntimeVariable */;
4137 val
* var_res
/* var res: RuntimeVariable */;
4138 short int var10
/* : Bool */;
4139 static val
* varonce12
;
4140 val
* var13
/* : String */;
4141 char* var14
/* : NativeString */;
4142 long var15
/* : Int */;
4143 val
* var16
/* : FlatString */;
4144 val
* var17
/* : String */;
4145 val
* var18
/* : Array[Object] */;
4146 long var19
/* : Int */;
4147 val
* var20
/* : NativeArray[Object] */;
4148 val
* var21
/* : String */;
4149 static val
* varonce22
;
4150 val
* var23
/* : String */;
4151 char* var24
/* : NativeString */;
4152 long var25
/* : Int */;
4153 val
* var26
/* : FlatString */;
4154 val
* var27
/* : String */;
4155 static val
* varonce28
;
4156 val
* var29
/* : String */;
4157 char* var30
/* : NativeString */;
4158 long var31
/* : Int */;
4159 val
* var32
/* : FlatString */;
4160 static val
* varonce33
;
4161 val
* var34
/* : String */;
4162 char* var35
/* : NativeString */;
4163 long var36
/* : Int */;
4164 val
* var37
/* : FlatString */;
4165 val
* var38
/* : Array[Object] */;
4166 long var39
/* : Int */;
4167 val
* var40
/* : NativeArray[Object] */;
4168 val
* var41
/* : String */;
4174 var2
= "NativeArray";
4176 var4
= standard___standard__NativeString___to_s_with_length(var2
, var3
);
4181 var5
= nit___nit__AbstractCompilerVisitor___get_class(self
, var1
);
4184 var6
= NEW_standard__Array(&type_standard__Array__nit__MType
);
4187 standard___standard__Array___with_capacity(var6
, var7
); /* Direct call array#Array#with_capacity on <var6:Array[MType]>*/
4191 standard___standard__AbstractArray___standard__abstract_collection__Sequence__push(var_
, var_elttype
); /* Direct call array#AbstractArray#push on <var_:Array[MType]>*/
4194 var8
= nit___nit__MClass___get_mtype(var_nclass
, var_
);
4198 var9
= nit___nit__AbstractCompilerVisitor___new_var(self
, var_mtype
);
4203 { /* Inline abstract_compiler#RuntimeVariable#is_exact= (var_res,var10) on <var_res:RuntimeVariable> */
4204 var_res
->attrs
[COLOR_nit__abstract_compiler__RuntimeVariable___is_exact
].s
= var10
; /* _is_exact on <var_res:RuntimeVariable> */
4205 RET_LABEL11
:(void)0;
4213 var16
= standard___standard__NativeString___to_s_with_length(var14
, var15
);
4218 var17
= nit___nit__MClass___nit__model_base__MEntity__c_name(var_nclass
);
4220 var18
= NEW_standard__Array(&type_standard__Array__standard__Object
);
4221 { /* var18 = array_instance Array[Object] */
4223 var20
= NEW_standard__NativeArray(var19
, &type_standard__NativeArray__standard__Object
);
4224 ((struct instance_standard__NativeArray
*)var20
)->values
[0] = (val
*) var13
;
4225 ((struct instance_standard__NativeArray
*)var20
)->values
[1] = (val
*) var17
;
4227 ((void (*)(val
* self
, val
* p0
, long p1
))(var18
->class->vft
[COLOR_standard__array__Array__with_native
]))(var18
, var20
, var19
) /* with_native on <var18:Array[Object]>*/;
4231 var21
= ((val
* (*)(val
* self
))(var18
->class->vft
[COLOR_standard__string__Object__to_s
]))(var18
) /* to_s on <var18:Array[Object]>*/;
4234 nit___nit__AbstractCompilerVisitor___require_declaration(self
, var21
); /* Direct call abstract_compiler#AbstractCompilerVisitor#require_declaration on <self:SeparateErasureCompilerVisitor>*/
4241 var26
= standard___standard__NativeString___to_s_with_length(var24
, var25
);
4246 var27
= nit___nit__MClass___nit__model_base__MEntity__c_name(var_nclass
);
4253 var32
= standard___standard__NativeString___to_s_with_length(var30
, var31
);
4262 var37
= standard___standard__NativeString___to_s_with_length(var35
, var36
);
4266 var38
= NEW_standard__Array(&type_standard__Array__standard__Object
);
4267 { /* var38 = array_instance Array[Object] */
4269 var40
= NEW_standard__NativeArray(var39
, &type_standard__NativeArray__standard__Object
);
4270 ((struct instance_standard__NativeArray
*)var40
)->values
[0] = (val
*) var_res
;
4271 ((struct instance_standard__NativeArray
*)var40
)->values
[1] = (val
*) var23
;
4272 ((struct instance_standard__NativeArray
*)var40
)->values
[2] = (val
*) var27
;
4273 ((struct instance_standard__NativeArray
*)var40
)->values
[3] = (val
*) var29
;
4274 ((struct instance_standard__NativeArray
*)var40
)->values
[4] = (val
*) var_length
;
4275 ((struct instance_standard__NativeArray
*)var40
)->values
[5] = (val
*) var34
;
4277 ((void (*)(val
* self
, val
* p0
, long p1
))(var38
->class->vft
[COLOR_standard__array__Array__with_native
]))(var38
, var40
, var39
) /* with_native on <var38:Array[Object]>*/;
4281 var41
= ((val
* (*)(val
* self
))(var38
->class->vft
[COLOR_standard__string__Object__to_s
]))(var38
) /* to_s on <var38:Array[Object]>*/;
4284 nit___nit__AbstractCompilerVisitor___add(self
, var41
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <self:SeparateErasureCompilerVisitor>*/
4291 /* method separate_erasure_compiler#SeparateErasureCompilerVisitor#calloc_array for (self: SeparateErasureCompilerVisitor, MType, Array[RuntimeVariable]) */
4292 void nit___nit__SeparateErasureCompilerVisitor___nit__abstract_compiler__AbstractCompilerVisitor__calloc_array(val
* self
, val
* p0
, val
* p1
) {
4293 val
* var_ret_type
/* var ret_type: MType */;
4294 val
* var_arguments
/* var arguments: Array[RuntimeVariable] */;
4295 short int var
/* : Bool */;
4298 const char* var_class_name
;
4299 val
* var_ret
/* var ret: MClassType */;
4300 static val
* varonce
;
4301 val
* var1
/* : String */;
4302 char* var2
/* : NativeString */;
4303 long var3
/* : Int */;
4304 val
* var4
/* : FlatString */;
4305 val
* var5
/* : MClass */;
4306 val
* var7
/* : MClass */;
4307 val
* var8
/* : String */;
4308 val
* var9
/* : Array[Object] */;
4309 long var10
/* : Int */;
4310 val
* var11
/* : NativeArray[Object] */;
4311 val
* var12
/* : String */;
4312 static val
* varonce13
;
4313 val
* var14
/* : String */;
4314 char* var15
/* : NativeString */;
4315 long var16
/* : Int */;
4316 val
* var17
/* : FlatString */;
4317 val
* var18
/* : MClass */;
4318 val
* var20
/* : MClass */;
4319 val
* var21
/* : String */;
4320 static val
* varonce22
;
4321 val
* var23
/* : String */;
4322 char* var24
/* : NativeString */;
4323 long var25
/* : Int */;
4324 val
* var26
/* : FlatString */;
4325 long var27
/* : Int */;
4326 val
* var28
/* : nullable Object */;
4327 static val
* varonce29
;
4328 val
* var30
/* : String */;
4329 char* var31
/* : NativeString */;
4330 long var32
/* : Int */;
4331 val
* var33
/* : FlatString */;
4332 val
* var34
/* : Array[Object] */;
4333 long var35
/* : Int */;
4334 val
* var36
/* : NativeArray[Object] */;
4335 val
* var37
/* : String */;
4336 val
* var38
/* : RuntimeVariable */;
4339 /* <var_ret_type:MType> isa MClassType */
4340 cltype
= type_nit__MClassType
.color
;
4341 idtype
= type_nit__MClassType
.id
;
4342 if(cltype
>= var_ret_type
->type
->table_size
) {
4345 var
= var_ret_type
->type
->type_table
[cltype
] == idtype
;
4347 if (unlikely(!var
)) {
4348 var_class_name
= var_ret_type
== NULL ?
"null" : var_ret_type
->type
->name
;
4349 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "MClassType", var_class_name
);
4350 PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_erasure_compiler
, 652);
4353 var_ret
= var_ret_type
;
4359 var4
= standard___standard__NativeString___to_s_with_length(var2
, var3
);
4364 { /* Inline model#MClassType#mclass (var_ret) on <var_ret:MClassType> */
4365 var7
= var_ret
->attrs
[COLOR_nit__model__MClassType___mclass
].val
; /* _mclass on <var_ret:MClassType> */
4366 if (unlikely(var7
== NULL
)) {
4367 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
4368 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 1058);
4376 var8
= nit___nit__MClass___nit__model_base__MEntity__c_name(var5
);
4378 var9
= NEW_standard__Array(&type_standard__Array__standard__Object
);
4379 { /* var9 = array_instance Array[Object] */
4381 var11
= NEW_standard__NativeArray(var10
, &type_standard__NativeArray__standard__Object
);
4382 ((struct instance_standard__NativeArray
*)var11
)->values
[0] = (val
*) var1
;
4383 ((struct instance_standard__NativeArray
*)var11
)->values
[1] = (val
*) var8
;
4385 ((void (*)(val
* self
, val
* p0
, long p1
))(var9
->class->vft
[COLOR_standard__array__Array__with_native
]))(var9
, var11
, var10
) /* with_native on <var9:Array[Object]>*/;
4389 var12
= ((val
* (*)(val
* self
))(var9
->class->vft
[COLOR_standard__string__Object__to_s
]))(var9
) /* to_s on <var9:Array[Object]>*/;
4392 nit___nit__AbstractCompilerVisitor___require_declaration(self
, var12
); /* Direct call abstract_compiler#AbstractCompilerVisitor#require_declaration on <self:SeparateErasureCompilerVisitor>*/
4399 var17
= standard___standard__NativeString___to_s_with_length(var15
, var16
);
4404 { /* Inline model#MClassType#mclass (var_ret) on <var_ret:MClassType> */
4405 var20
= var_ret
->attrs
[COLOR_nit__model__MClassType___mclass
].val
; /* _mclass on <var_ret:MClassType> */
4406 if (unlikely(var20
== NULL
)) {
4407 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
4408 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 1058);
4412 RET_LABEL19
:(void)0;
4416 var21
= nit___nit__MClass___nit__model_base__MEntity__c_name(var18
);
4423 var26
= standard___standard__NativeString___to_s_with_length(var24
, var25
);
4429 var28
= standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var_arguments
, var27
);
4436 var33
= standard___standard__NativeString___to_s_with_length(var31
, var32
);
4440 var34
= NEW_standard__Array(&type_standard__Array__standard__Object
);
4441 { /* var34 = array_instance Array[Object] */
4443 var36
= NEW_standard__NativeArray(var35
, &type_standard__NativeArray__standard__Object
);
4444 ((struct instance_standard__NativeArray
*)var36
)->values
[0] = (val
*) var14
;
4445 ((struct instance_standard__NativeArray
*)var36
)->values
[1] = (val
*) var21
;
4446 ((struct instance_standard__NativeArray
*)var36
)->values
[2] = (val
*) var23
;
4447 ((struct instance_standard__NativeArray
*)var36
)->values
[3] = (val
*) var28
;
4448 ((struct instance_standard__NativeArray
*)var36
)->values
[4] = (val
*) var30
;
4450 ((void (*)(val
* self
, val
* p0
, long p1
))(var34
->class->vft
[COLOR_standard__array__Array__with_native
]))(var34
, var36
, var35
) /* with_native on <var34:Array[Object]>*/;
4454 var37
= ((val
* (*)(val
* self
))(var34
->class->vft
[COLOR_standard__string__Object__to_s
]))(var34
) /* to_s on <var34:Array[Object]>*/;
4457 var38
= nit___nit__AbstractCompilerVisitor___new_expr(self
, var37
, var_ret_type
);
4460 nit___nit__AbstractCompilerVisitor___ret(self
, var38
); /* Direct call abstract_compiler#AbstractCompilerVisitor#ret on <self:SeparateErasureCompilerVisitor>*/