1 #include "separate_compiler.sep.0.h"
2 /* method separate_compiler#SeparateCompiler#compile_class_to_c for (self: SeparateCompiler, MClass) */
3 void separate_compiler__SeparateCompiler__compile_class_to_c(val
* self
, val
* p0
) {
4 val
* var_mclass
/* var mclass: MClass */;
5 val
* var
/* : MClassDef */;
6 val
* var1
/* : MClassType */;
7 val
* var3
/* : MClassType */;
8 val
* var_mtype
/* var mtype: MClassType */;
9 val
* var4
/* : String */;
10 val
* var_c_name
/* var c_name: String */;
11 val
* var5
/* : String */;
12 val
* var_c_instance_name
/* var c_instance_name: String */;
13 val
* var6
/* : Map[MClass, Array[nullable MPropDef]] */;
14 val
* var8
/* : Map[MClass, Array[nullable MPropDef]] */;
15 val
* var9
/* : nullable Object */;
16 val
* var_vft
/* var vft: Array[nullable MPropDef] */;
17 val
* var10
/* : Map[MClass, Array[nullable MPropDef]] */;
18 val
* var12
/* : Map[MClass, Array[nullable MPropDef]] */;
19 val
* var13
/* : nullable Object */;
20 val
* var_attrs
/* var attrs: Array[nullable MPropDef] */;
21 val
* var14
/* : AbstractCompilerVisitor */;
22 val
* var_v
/* var v: SeparateCompilerVisitor */;
23 val
* var15
/* : nullable RapidTypeAnalysis */;
24 val
* var17
/* : nullable RapidTypeAnalysis */;
25 val
* var_rta
/* var rta: nullable RapidTypeAnalysis */;
26 short int var18
/* : Bool */;
27 short int var19
/* : Bool */;
28 short int var20
/* : Bool */;
29 val
* var21
/* : null */;
30 short int var22
/* : Bool */;
31 short int var23
/* : Bool */;
32 val
* var_other
/* var other: nullable Object */;
33 short int var25
/* : Bool */;
34 short int var26
/* : Bool */;
35 short int var27
/* : Bool */;
36 short int var_
/* var : Bool */;
37 val
* var28
/* : HashSet[MClass] */;
38 val
* var30
/* : HashSet[MClass] */;
39 short int var31
/* : Bool */;
40 short int var32
/* : Bool */;
41 short int var_33
/* var : Bool */;
42 val
* var34
/* : String */;
44 val
* var35
/* : String */;
45 char* var36
/* : NativeString */;
46 long var37
/* : Int */;
47 val
* var38
/* : FlatString */;
48 short int var39
/* : Bool */;
49 short int var40
/* : Bool */;
50 short int var_41
/* var : Bool */;
51 val
* var42
/* : String */;
52 val
* var44
/* : String */;
53 static val
* varonce45
;
54 val
* var46
/* : String */;
55 char* var47
/* : NativeString */;
56 long var48
/* : Int */;
57 val
* var49
/* : FlatString */;
58 short int var50
/* : Bool */;
59 short int var51
/* : Bool */;
60 short int var53
/* : Bool */;
61 short int var54
/* : Bool */;
62 short int var55
/* : Bool */;
63 short int var_is_dead
/* var is_dead: Bool */;
64 static val
* varonce56
;
65 val
* var57
/* : String */;
66 char* var58
/* : NativeString */;
67 long var59
/* : Int */;
68 val
* var60
/* : FlatString */;
69 static val
* varonce61
;
70 val
* var62
/* : String */;
71 char* var63
/* : NativeString */;
72 long var64
/* : Int */;
73 val
* var65
/* : FlatString */;
74 val
* var66
/* : Array[Object] */;
75 long var67
/* : Int */;
76 val
* var68
/* : NativeArray[Object] */;
77 val
* var69
/* : String */;
78 short int var70
/* : Bool */;
79 static val
* varonce71
;
80 val
* var72
/* : String */;
81 char* var73
/* : NativeString */;
82 long var74
/* : Int */;
83 val
* var75
/* : FlatString */;
84 val
* var76
/* : Array[Object] */;
85 long var77
/* : Int */;
86 val
* var78
/* : NativeArray[Object] */;
87 val
* var79
/* : String */;
88 static val
* varonce80
;
89 val
* var81
/* : String */;
90 char* var82
/* : NativeString */;
91 long var83
/* : Int */;
92 val
* var84
/* : FlatString */;
93 static val
* varonce85
;
94 val
* var86
/* : String */;
95 char* var87
/* : NativeString */;
96 long var88
/* : Int */;
97 val
* var89
/* : FlatString */;
98 val
* var90
/* : Array[Object] */;
99 long var91
/* : Int */;
100 val
* var92
/* : NativeArray[Object] */;
101 val
* var93
/* : String */;
102 static val
* varonce94
;
103 val
* var95
/* : String */;
104 char* var96
/* : NativeString */;
105 long var97
/* : Int */;
106 val
* var98
/* : FlatString */;
107 static val
* varonce99
;
108 val
* var100
/* : String */;
109 char* var101
/* : NativeString */;
110 long var102
/* : Int */;
111 val
* var103
/* : FlatString */;
112 val
* var104
/* : Array[Object] */;
113 long var105
/* : Int */;
114 val
* var106
/* : NativeArray[Object] */;
115 val
* var107
/* : String */;
116 long var108
/* : Int */;
117 static val
* varonce109
;
118 val
* var110
/* : String */;
119 char* var111
/* : NativeString */;
120 long var112
/* : Int */;
121 val
* var113
/* : FlatString */;
122 val
* var114
/* : Array[Object] */;
123 long var115
/* : Int */;
124 val
* var116
/* : NativeArray[Object] */;
125 val
* var117
/* : Object */;
126 val
* var118
/* : String */;
127 static val
* varonce119
;
128 val
* var120
/* : String */;
129 char* var121
/* : NativeString */;
130 long var122
/* : Int */;
131 val
* var123
/* : FlatString */;
132 val
* var124
/* : Range[Int] */;
133 long var125
/* : Int */;
134 long var126
/* : Int */;
135 val
* var127
/* : Discrete */;
136 val
* var128
/* : Discrete */;
137 val
* var129
/* : Iterator[Discrete] */;
138 short int var130
/* : Bool */;
139 val
* var131
/* : nullable Object */;
140 long var_i
/* var i: Int */;
141 long var132
/* : Int */;
142 val
* var133
/* : nullable Object */;
143 val
* var_mpropdef
/* var mpropdef: nullable MPropDef */;
144 val
* var134
/* : null */;
145 short int var135
/* : Bool */;
146 short int var136
/* : Bool */;
147 val
* var_other138
/* var other: nullable Object */;
148 short int var139
/* : Bool */;
149 short int var141
/* : Bool */;
150 static val
* varonce142
;
151 val
* var143
/* : String */;
152 char* var144
/* : NativeString */;
153 long var145
/* : Int */;
154 val
* var146
/* : FlatString */;
155 short int var147
/* : Bool */;
158 short int var148
/* : Bool */;
159 val
* var149
/* : null */;
160 short int var150
/* : Bool */;
161 short int var151
/* : Bool */;
162 short int var153
/* : Bool */;
163 short int var154
/* : Bool */;
164 short int var155
/* : Bool */;
165 short int var_156
/* var : Bool */;
166 val
* var157
/* : HashSet[MMethodDef] */;
167 val
* var159
/* : HashSet[MMethodDef] */;
168 short int var160
/* : Bool */;
169 short int var161
/* : Bool */;
170 static val
* varonce162
;
171 val
* var163
/* : String */;
172 char* var164
/* : NativeString */;
173 long var165
/* : Int */;
174 val
* var166
/* : FlatString */;
175 val
* var167
/* : MModule */;
176 val
* var169
/* : MModule */;
177 static val
* varonce170
;
178 val
* var171
/* : String */;
179 char* var172
/* : NativeString */;
180 long var173
/* : Int */;
181 val
* var174
/* : FlatString */;
182 static val
* varonce175
;
183 val
* var176
/* : String */;
184 char* var177
/* : NativeString */;
185 long var178
/* : Int */;
186 val
* var179
/* : FlatString */;
187 static val
* varonce180
;
188 val
* var181
/* : String */;
189 char* var182
/* : NativeString */;
190 long var183
/* : Int */;
191 val
* var184
/* : FlatString */;
192 val
* var185
/* : Array[Object] */;
193 long var186
/* : Int */;
194 val
* var187
/* : NativeArray[Object] */;
195 val
* var188
/* : String */;
196 val
* var189
/* : AbstractRuntimeFunction */;
197 val
* var_rf
/* var rf: AbstractRuntimeFunction */;
198 val
* var190
/* : String */;
199 static val
* varonce191
;
200 val
* var192
/* : String */;
201 char* var193
/* : NativeString */;
202 long var194
/* : Int */;
203 val
* var195
/* : FlatString */;
204 val
* var196
/* : String */;
205 static val
* varonce197
;
206 val
* var198
/* : String */;
207 char* var199
/* : NativeString */;
208 long var200
/* : Int */;
209 val
* var201
/* : FlatString */;
210 val
* var202
/* : MModule */;
211 val
* var204
/* : MModule */;
212 static val
* varonce205
;
213 val
* var206
/* : String */;
214 char* var207
/* : NativeString */;
215 long var208
/* : Int */;
216 val
* var209
/* : FlatString */;
217 static val
* varonce210
;
218 val
* var211
/* : String */;
219 char* var212
/* : NativeString */;
220 long var213
/* : Int */;
221 val
* var214
/* : FlatString */;
222 static val
* varonce215
;
223 val
* var216
/* : String */;
224 char* var217
/* : NativeString */;
225 long var218
/* : Int */;
226 val
* var219
/* : FlatString */;
227 val
* var220
/* : Array[Object] */;
228 long var221
/* : Int */;
229 val
* var222
/* : NativeArray[Object] */;
230 val
* var223
/* : String */;
231 static val
* varonce224
;
232 val
* var225
/* : String */;
233 char* var226
/* : NativeString */;
234 long var227
/* : Int */;
235 val
* var228
/* : FlatString */;
236 static val
* varonce229
;
237 val
* var230
/* : String */;
238 char* var231
/* : NativeString */;
239 long var232
/* : Int */;
240 val
* var233
/* : FlatString */;
241 val
* var234
/* : String */;
242 static val
* varonce235
;
243 val
* var236
/* : String */;
244 char* var237
/* : NativeString */;
245 long var238
/* : Int */;
246 val
* var239
/* : FlatString */;
247 short int var240
/* : Bool */;
248 short int var241
/* : Bool */;
249 short int var243
/* : Bool */;
250 short int var244
/* : Bool */;
251 short int var245
/* : Bool */;
252 short int var246
/* : Bool */;
253 val
* var247
/* : MClass */;
254 val
* var249
/* : MClass */;
255 val
* var250
/* : String */;
256 val
* var252
/* : String */;
257 static val
* varonce253
;
258 val
* var254
/* : String */;
259 char* var255
/* : NativeString */;
260 long var256
/* : Int */;
261 val
* var257
/* : FlatString */;
262 short int var258
/* : Bool */;
263 short int var259
/* : Bool */;
264 short int var_260
/* var : Bool */;
265 val
* var261
/* : MClass */;
266 val
* var263
/* : MClass */;
267 val
* var264
/* : MClassKind */;
268 val
* var266
/* : MClassKind */;
269 val
* var267
/* : MClassKind */;
270 short int var268
/* : Bool */;
271 short int var269
/* : Bool */;
272 short int var271
/* : Bool */;
273 short int var272
/* : Bool */;
274 short int var273
/* : Bool */;
275 val
* var274
/* : CodeWriter */;
276 val
* var276
/* : CodeWriter */;
277 static val
* varonce277
;
278 val
* var278
/* : String */;
279 char* var279
/* : NativeString */;
280 long var280
/* : Int */;
281 val
* var281
/* : FlatString */;
282 static val
* varonce282
;
283 val
* var283
/* : String */;
284 char* var284
/* : NativeString */;
285 long var285
/* : Int */;
286 val
* var286
/* : FlatString */;
287 val
* var287
/* : Array[Object] */;
288 long var288
/* : Int */;
289 val
* var289
/* : NativeArray[Object] */;
290 val
* var290
/* : String */;
291 val
* var291
/* : CodeWriter */;
292 val
* var293
/* : CodeWriter */;
293 static val
* varonce294
;
294 val
* var295
/* : String */;
295 char* var296
/* : NativeString */;
296 long var297
/* : Int */;
297 val
* var298
/* : FlatString */;
298 val
* var299
/* : CodeWriter */;
299 val
* var301
/* : CodeWriter */;
300 static val
* varonce302
;
301 val
* var303
/* : String */;
302 char* var304
/* : NativeString */;
303 long var305
/* : Int */;
304 val
* var306
/* : FlatString */;
305 val
* var307
/* : CodeWriter */;
306 val
* var309
/* : CodeWriter */;
307 val
* var310
/* : String */;
308 static val
* varonce311
;
309 val
* var312
/* : String */;
310 char* var313
/* : NativeString */;
311 long var314
/* : Int */;
312 val
* var315
/* : FlatString */;
313 val
* var316
/* : Array[Object] */;
314 long var317
/* : Int */;
315 val
* var318
/* : NativeArray[Object] */;
316 val
* var319
/* : String */;
317 val
* var320
/* : CodeWriter */;
318 val
* var322
/* : CodeWriter */;
319 static val
* varonce323
;
320 val
* var324
/* : String */;
321 char* var325
/* : NativeString */;
322 long var326
/* : Int */;
323 val
* var327
/* : FlatString */;
324 val
* var328
/* : HashSet[MClassType] */;
325 val
* var330
/* : HashSet[MClassType] */;
326 short int var331
/* : Bool */;
327 short int var332
/* : Bool */;
328 static val
* varonce333
;
329 val
* var334
/* : String */;
330 char* var335
/* : NativeString */;
331 long var336
/* : Int */;
332 val
* var337
/* : FlatString */;
333 val
* var338
/* : Array[Object] */;
334 long var339
/* : Int */;
335 val
* var340
/* : NativeArray[Object] */;
336 val
* var341
/* : String */;
337 static val
* varonce342
;
338 val
* var343
/* : String */;
339 char* var344
/* : NativeString */;
340 long var345
/* : Int */;
341 val
* var346
/* : FlatString */;
342 static val
* varonce347
;
343 val
* var348
/* : String */;
344 char* var349
/* : NativeString */;
345 long var350
/* : Int */;
346 val
* var351
/* : FlatString */;
347 val
* var352
/* : String */;
348 static val
* varonce353
;
349 val
* var354
/* : String */;
350 char* var355
/* : NativeString */;
351 long var356
/* : Int */;
352 val
* var357
/* : FlatString */;
353 val
* var358
/* : Array[Object] */;
354 long var359
/* : Int */;
355 val
* var360
/* : NativeArray[Object] */;
356 val
* var361
/* : String */;
357 static val
* varonce362
;
358 val
* var363
/* : String */;
359 char* var364
/* : NativeString */;
360 long var365
/* : Int */;
361 val
* var366
/* : FlatString */;
362 static val
* varonce367
;
363 val
* var368
/* : String */;
364 char* var369
/* : NativeString */;
365 long var370
/* : Int */;
366 val
* var371
/* : FlatString */;
367 val
* var372
/* : Array[Object] */;
368 long var373
/* : Int */;
369 val
* var374
/* : NativeArray[Object] */;
370 val
* var375
/* : String */;
371 static val
* varonce376
;
372 val
* var377
/* : String */;
373 char* var378
/* : NativeString */;
374 long var379
/* : Int */;
375 val
* var380
/* : FlatString */;
376 val
* var381
/* : String */;
377 static val
* varonce382
;
378 val
* var383
/* : String */;
379 char* var384
/* : NativeString */;
380 long var385
/* : Int */;
381 val
* var386
/* : FlatString */;
382 val
* var387
/* : String */;
383 static val
* varonce388
;
384 val
* var389
/* : String */;
385 char* var390
/* : NativeString */;
386 long var391
/* : Int */;
387 val
* var392
/* : FlatString */;
388 val
* var393
/* : Array[Object] */;
389 long var394
/* : Int */;
390 val
* var395
/* : NativeArray[Object] */;
391 val
* var396
/* : String */;
392 static val
* varonce397
;
393 val
* var398
/* : String */;
394 char* var399
/* : NativeString */;
395 long var400
/* : Int */;
396 val
* var401
/* : FlatString */;
397 static val
* varonce402
;
398 val
* var403
/* : String */;
399 char* var404
/* : NativeString */;
400 long var405
/* : Int */;
401 val
* var406
/* : FlatString */;
402 static val
* varonce407
;
403 val
* var408
/* : String */;
404 char* var409
/* : NativeString */;
405 long var410
/* : Int */;
406 val
* var411
/* : FlatString */;
407 val
* var412
/* : Array[Object] */;
408 long var413
/* : Int */;
409 val
* var414
/* : NativeArray[Object] */;
410 val
* var415
/* : String */;
411 static val
* varonce416
;
412 val
* var417
/* : String */;
413 char* var418
/* : NativeString */;
414 long var419
/* : Int */;
415 val
* var420
/* : FlatString */;
416 val
* var421
/* : Array[Object] */;
417 long var422
/* : Int */;
418 val
* var423
/* : NativeArray[Object] */;
419 val
* var424
/* : String */;
420 static val
* varonce425
;
421 val
* var426
/* : String */;
422 char* var427
/* : NativeString */;
423 long var428
/* : Int */;
424 val
* var429
/* : FlatString */;
425 static val
* varonce430
;
426 val
* var431
/* : String */;
427 char* var432
/* : NativeString */;
428 long var433
/* : Int */;
429 val
* var434
/* : FlatString */;
430 val
* var435
/* : Array[Object] */;
431 long var436
/* : Int */;
432 val
* var437
/* : NativeArray[Object] */;
433 val
* var438
/* : String */;
434 static val
* varonce439
;
435 val
* var440
/* : String */;
436 char* var441
/* : NativeString */;
437 long var442
/* : Int */;
438 val
* var443
/* : FlatString */;
439 val
* var444
/* : Array[Object] */;
440 long var445
/* : Int */;
441 val
* var446
/* : NativeArray[Object] */;
442 val
* var447
/* : String */;
443 static val
* varonce448
;
444 val
* var449
/* : String */;
445 char* var450
/* : NativeString */;
446 long var451
/* : Int */;
447 val
* var452
/* : FlatString */;
448 static val
* varonce453
;
449 val
* var454
/* : String */;
450 char* var455
/* : NativeString */;
451 long var456
/* : Int */;
452 val
* var457
/* : FlatString */;
453 val
* var458
/* : Array[Object] */;
454 long var459
/* : Int */;
455 val
* var460
/* : NativeArray[Object] */;
456 val
* var461
/* : String */;
457 static val
* varonce462
;
458 val
* var463
/* : String */;
459 char* var464
/* : NativeString */;
460 long var465
/* : Int */;
461 val
* var466
/* : FlatString */;
462 static val
* varonce467
;
463 val
* var468
/* : String */;
464 char* var469
/* : NativeString */;
465 long var470
/* : Int */;
466 val
* var471
/* : FlatString */;
467 static val
* varonce472
;
468 val
* var473
/* : String */;
469 char* var474
/* : NativeString */;
470 long var475
/* : Int */;
471 val
* var476
/* : FlatString */;
472 val
* var477
/* : String */;
473 val
* var479
/* : String */;
474 static val
* varonce480
;
475 val
* var481
/* : String */;
476 char* var482
/* : NativeString */;
477 long var483
/* : Int */;
478 val
* var484
/* : FlatString */;
479 short int var485
/* : Bool */;
480 short int var486
/* : Bool */;
481 val
* var487
/* : CodeWriter */;
482 val
* var489
/* : CodeWriter */;
483 static val
* varonce490
;
484 val
* var491
/* : String */;
485 char* var492
/* : NativeString */;
486 long var493
/* : Int */;
487 val
* var494
/* : FlatString */;
488 static val
* varonce495
;
489 val
* var496
/* : String */;
490 char* var497
/* : NativeString */;
491 long var498
/* : Int */;
492 val
* var499
/* : FlatString */;
493 val
* var500
/* : Array[Object] */;
494 long var501
/* : Int */;
495 val
* var502
/* : NativeArray[Object] */;
496 val
* var503
/* : String */;
497 val
* var504
/* : CodeWriter */;
498 val
* var506
/* : CodeWriter */;
499 static val
* varonce507
;
500 val
* var508
/* : String */;
501 char* var509
/* : NativeString */;
502 long var510
/* : Int */;
503 val
* var511
/* : FlatString */;
504 val
* var512
/* : CodeWriter */;
505 val
* var514
/* : CodeWriter */;
506 static val
* varonce515
;
507 val
* var516
/* : String */;
508 char* var517
/* : NativeString */;
509 long var518
/* : Int */;
510 val
* var519
/* : FlatString */;
511 val
* var520
/* : CodeWriter */;
512 val
* var522
/* : CodeWriter */;
513 static val
* varonce523
;
514 val
* var524
/* : String */;
515 char* var525
/* : NativeString */;
516 long var526
/* : Int */;
517 val
* var527
/* : FlatString */;
518 val
* var528
/* : CodeWriter */;
519 val
* var530
/* : CodeWriter */;
520 static val
* varonce531
;
521 val
* var532
/* : String */;
522 char* var533
/* : NativeString */;
523 long var534
/* : Int */;
524 val
* var535
/* : FlatString */;
525 val
* var536
/* : CodeWriter */;
526 val
* var538
/* : CodeWriter */;
527 static val
* varonce539
;
528 val
* var540
/* : String */;
529 char* var541
/* : NativeString */;
530 long var542
/* : Int */;
531 val
* var543
/* : FlatString */;
532 static val
* varonce544
;
533 val
* var545
/* : String */;
534 char* var546
/* : NativeString */;
535 long var547
/* : Int */;
536 val
* var548
/* : FlatString */;
537 val
* var549
/* : Array[Object] */;
538 long var550
/* : Int */;
539 val
* var551
/* : NativeArray[Object] */;
540 val
* var552
/* : String */;
541 val
* var553
/* : String */;
542 static val
* varonce554
;
543 val
* var555
/* : String */;
544 char* var556
/* : NativeString */;
545 long var557
/* : Int */;
546 val
* var558
/* : FlatString */;
547 static val
* varonce559
;
548 val
* var560
/* : String */;
549 char* var561
/* : NativeString */;
550 long var562
/* : Int */;
551 val
* var563
/* : FlatString */;
552 val
* var564
/* : Array[Object] */;
553 long var565
/* : Int */;
554 val
* var566
/* : NativeArray[Object] */;
555 val
* var567
/* : String */;
556 static val
* varonce568
;
557 val
* var569
/* : String */;
558 char* var570
/* : NativeString */;
559 long var571
/* : Int */;
560 val
* var572
/* : FlatString */;
561 static val
* varonce573
;
562 val
* var574
/* : String */;
563 char* var575
/* : NativeString */;
564 long var576
/* : Int */;
565 val
* var577
/* : FlatString */;
566 val
* var578
/* : Array[Object] */;
567 long var579
/* : Int */;
568 val
* var580
/* : NativeArray[Object] */;
569 val
* var581
/* : String */;
570 val
* var582
/* : String */;
571 static val
* varonce583
;
572 val
* var584
/* : String */;
573 char* var585
/* : NativeString */;
574 long var586
/* : Int */;
575 val
* var587
/* : FlatString */;
576 static val
* varonce588
;
577 val
* var589
/* : String */;
578 char* var590
/* : NativeString */;
579 long var591
/* : Int */;
580 val
* var592
/* : FlatString */;
581 val
* var593
/* : Array[Object] */;
582 long var594
/* : Int */;
583 val
* var595
/* : NativeArray[Object] */;
584 val
* var596
/* : String */;
585 static val
* varonce597
;
586 val
* var598
/* : String */;
587 char* var599
/* : NativeString */;
588 long var600
/* : Int */;
589 val
* var601
/* : FlatString */;
590 val
* var602
/* : String */;
591 val
* var_res
/* var res: String */;
592 static val
* varonce603
;
593 val
* var604
/* : String */;
594 char* var605
/* : NativeString */;
595 long var606
/* : Int */;
596 val
* var607
/* : FlatString */;
597 static val
* varonce608
;
598 val
* var609
/* : String */;
599 char* var610
/* : NativeString */;
600 long var611
/* : Int */;
601 val
* var612
/* : FlatString */;
602 static val
* varonce613
;
603 val
* var614
/* : String */;
604 char* var615
/* : NativeString */;
605 long var616
/* : Int */;
606 val
* var617
/* : FlatString */;
607 val
* var618
/* : Array[Object] */;
608 long var619
/* : Int */;
609 val
* var620
/* : NativeArray[Object] */;
610 val
* var621
/* : String */;
611 val
* var622
/* : Array[MType] */;
612 val
* var624
/* : Array[MType] */;
613 val
* var625
/* : nullable Object */;
614 val
* var_mtype_elt
/* var mtype_elt: MType */;
615 static val
* varonce626
;
616 val
* var627
/* : String */;
617 char* var628
/* : NativeString */;
618 long var629
/* : Int */;
619 val
* var630
/* : FlatString */;
620 static val
* varonce631
;
621 val
* var632
/* : String */;
622 char* var633
/* : NativeString */;
623 long var634
/* : Int */;
624 val
* var635
/* : FlatString */;
625 val
* var636
/* : String */;
626 static val
* varonce637
;
627 val
* var638
/* : String */;
628 char* var639
/* : NativeString */;
629 long var640
/* : Int */;
630 val
* var641
/* : FlatString */;
631 val
* var642
/* : Array[Object] */;
632 long var643
/* : Int */;
633 val
* var644
/* : NativeArray[Object] */;
634 val
* var645
/* : String */;
635 static val
* varonce646
;
636 val
* var647
/* : String */;
637 char* var648
/* : NativeString */;
638 long var649
/* : Int */;
639 val
* var650
/* : FlatString */;
640 val
* var651
/* : Array[Object] */;
641 long var652
/* : Int */;
642 val
* var653
/* : NativeArray[Object] */;
643 val
* var654
/* : String */;
644 static val
* varonce655
;
645 val
* var656
/* : String */;
646 char* var657
/* : NativeString */;
647 long var658
/* : Int */;
648 val
* var659
/* : FlatString */;
649 static val
* varonce660
;
650 val
* var661
/* : String */;
651 char* var662
/* : NativeString */;
652 long var663
/* : Int */;
653 val
* var664
/* : FlatString */;
654 val
* var665
/* : Array[Object] */;
655 long var666
/* : Int */;
656 val
* var667
/* : NativeArray[Object] */;
657 val
* var668
/* : String */;
658 static val
* varonce669
;
659 val
* var670
/* : String */;
660 char* var671
/* : NativeString */;
661 long var672
/* : Int */;
662 val
* var673
/* : FlatString */;
663 static val
* varonce674
;
664 val
* var675
/* : String */;
665 char* var676
/* : NativeString */;
666 long var677
/* : Int */;
667 val
* var678
/* : FlatString */;
668 val
* var679
/* : Array[Object] */;
669 long var680
/* : Int */;
670 val
* var681
/* : NativeArray[Object] */;
671 val
* var682
/* : String */;
672 static val
* varonce683
;
673 val
* var684
/* : String */;
674 char* var685
/* : NativeString */;
675 long var686
/* : Int */;
676 val
* var687
/* : FlatString */;
677 val
* var688
/* : Array[Object] */;
678 long var689
/* : Int */;
679 val
* var690
/* : NativeArray[Object] */;
680 val
* var691
/* : String */;
681 static val
* varonce692
;
682 val
* var693
/* : String */;
683 char* var694
/* : NativeString */;
684 long var695
/* : Int */;
685 val
* var696
/* : FlatString */;
686 static val
* varonce697
;
687 val
* var698
/* : String */;
688 char* var699
/* : NativeString */;
689 long var700
/* : Int */;
690 val
* var701
/* : FlatString */;
691 val
* var702
/* : Array[Object] */;
692 long var703
/* : Int */;
693 val
* var704
/* : NativeArray[Object] */;
694 val
* var705
/* : String */;
695 static val
* varonce706
;
696 val
* var707
/* : String */;
697 char* var708
/* : NativeString */;
698 long var709
/* : Int */;
699 val
* var710
/* : FlatString */;
700 static val
* varonce711
;
701 val
* var712
/* : String */;
702 char* var713
/* : NativeString */;
703 long var714
/* : Int */;
704 val
* var715
/* : FlatString */;
705 val
* var716
/* : Array[Object] */;
706 long var717
/* : Int */;
707 val
* var718
/* : NativeArray[Object] */;
708 val
* var719
/* : String */;
709 val
* var720
/* : String */;
710 static val
* varonce721
;
711 val
* var722
/* : String */;
712 char* var723
/* : NativeString */;
713 long var724
/* : Int */;
714 val
* var725
/* : FlatString */;
715 static val
* varonce726
;
716 val
* var727
/* : String */;
717 char* var728
/* : NativeString */;
718 long var729
/* : Int */;
719 val
* var730
/* : FlatString */;
720 val
* var731
/* : Array[Object] */;
721 long var732
/* : Int */;
722 val
* var733
/* : NativeArray[Object] */;
723 val
* var734
/* : String */;
724 static val
* varonce735
;
725 val
* var736
/* : String */;
726 char* var737
/* : NativeString */;
727 long var738
/* : Int */;
728 val
* var739
/* : FlatString */;
729 static val
* varonce740
;
730 val
* var741
/* : String */;
731 char* var742
/* : NativeString */;
732 long var743
/* : Int */;
733 val
* var744
/* : FlatString */;
734 val
* var745
/* : Array[Object] */;
735 long var746
/* : Int */;
736 val
* var747
/* : NativeArray[Object] */;
737 val
* var748
/* : String */;
738 val
* var749
/* : String */;
739 static val
* varonce750
;
740 val
* var751
/* : String */;
741 char* var752
/* : NativeString */;
742 long var753
/* : Int */;
743 val
* var754
/* : FlatString */;
744 static val
* varonce755
;
745 val
* var756
/* : String */;
746 char* var757
/* : NativeString */;
747 long var758
/* : Int */;
748 val
* var759
/* : FlatString */;
749 val
* var760
/* : Array[Object] */;
750 long var761
/* : Int */;
751 val
* var762
/* : NativeArray[Object] */;
752 val
* var763
/* : String */;
753 static val
* varonce764
;
754 val
* var765
/* : String */;
755 char* var766
/* : NativeString */;
756 long var767
/* : Int */;
757 val
* var768
/* : FlatString */;
758 val
* var769
/* : Array[Object] */;
759 long var770
/* : Int */;
760 val
* var771
/* : NativeArray[Object] */;
761 val
* var772
/* : String */;
762 static val
* varonce773
;
763 val
* var774
/* : String */;
764 char* var775
/* : NativeString */;
765 long var776
/* : Int */;
766 val
* var777
/* : FlatString */;
767 val
* var778
/* : RuntimeVariable */;
768 val
* var_res779
/* var res: RuntimeVariable */;
769 short int var780
/* : Bool */;
770 static val
* varonce782
;
771 val
* var783
/* : String */;
772 char* var784
/* : NativeString */;
773 long var785
/* : Int */;
774 val
* var786
/* : FlatString */;
775 long var787
/* : Int */;
776 static val
* varonce788
;
777 val
* var789
/* : String */;
778 char* var790
/* : NativeString */;
779 long var791
/* : Int */;
780 val
* var792
/* : FlatString */;
781 val
* var793
/* : Array[Object] */;
782 long var794
/* : Int */;
783 val
* var795
/* : NativeArray[Object] */;
784 val
* var796
/* : Object */;
785 val
* var797
/* : String */;
786 static val
* varonce798
;
787 val
* var799
/* : String */;
788 char* var800
/* : NativeString */;
789 long var801
/* : Int */;
790 val
* var802
/* : FlatString */;
791 val
* var803
/* : Array[Object] */;
792 long var804
/* : Int */;
793 val
* var805
/* : NativeArray[Object] */;
794 val
* var806
/* : String */;
795 static val
* varonce807
;
796 val
* var808
/* : String */;
797 char* var809
/* : NativeString */;
798 long var810
/* : Int */;
799 val
* var811
/* : FlatString */;
800 static val
* varonce812
;
801 val
* var813
/* : String */;
802 char* var814
/* : NativeString */;
803 long var815
/* : Int */;
804 val
* var816
/* : FlatString */;
805 val
* var817
/* : Array[Object] */;
806 long var818
/* : Int */;
807 val
* var819
/* : NativeArray[Object] */;
808 val
* var820
/* : String */;
809 static val
* varonce821
;
810 val
* var822
/* : String */;
811 char* var823
/* : NativeString */;
812 long var824
/* : Int */;
813 val
* var825
/* : FlatString */;
814 static val
* varonce826
;
815 val
* var827
/* : String */;
816 char* var828
/* : NativeString */;
817 long var829
/* : Int */;
818 val
* var830
/* : FlatString */;
819 val
* var831
/* : Array[Object] */;
820 long var832
/* : Int */;
821 val
* var833
/* : NativeArray[Object] */;
822 val
* var834
/* : String */;
823 static val
* varonce835
;
824 val
* var836
/* : String */;
825 char* var837
/* : NativeString */;
826 long var838
/* : Int */;
827 val
* var839
/* : FlatString */;
828 static val
* varonce840
;
829 val
* var841
/* : String */;
830 char* var842
/* : NativeString */;
831 long var843
/* : Int */;
832 val
* var844
/* : FlatString */;
833 val
* var845
/* : Array[Object] */;
834 long var846
/* : Int */;
835 val
* var847
/* : NativeArray[Object] */;
836 val
* var848
/* : String */;
837 static val
* varonce849
;
838 val
* var850
/* : String */;
839 char* var851
/* : NativeString */;
840 long var852
/* : Int */;
841 val
* var853
/* : FlatString */;
844 var
= model__MClass__intro(var_mclass
);
847 { /* Inline model#MClassDef#bound_mtype (var) on <var:MClassDef> */
848 var3
= var
->attrs
[COLOR_model__MClassDef___bound_mtype
].val
; /* _bound_mtype on <var:MClassDef> */
849 if (unlikely(var3
== NULL
)) {
850 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _bound_mtype");
851 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 477);
860 var4
= abstract_compiler__MClass__c_name(var_mclass
);
864 var5
= separate_compiler__MClass__c_instance_name(var_mclass
);
866 var_c_instance_name
= var5
;
868 { /* Inline separate_compiler#SeparateCompiler#method_tables (self) on <self:SeparateCompiler> */
869 var8
= self
->attrs
[COLOR_separate_compiler__SeparateCompiler___method_tables
].val
; /* _method_tables on <self:SeparateCompiler> */
870 if (unlikely(var8
== NULL
)) {
871 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _method_tables");
872 PRINT_ERROR(" (%s:%d)\n", "src/separate_compiler.nit", 792);
880 var9
= ((val
* (*)(val
*, val
*))(var6
->class->vft
[COLOR_abstract_collection__MapRead___91d_93d
]))(var6
, var_mclass
) /* [] on <var6:Map[MClass, Array[nullable MPropDef]]>*/;
884 { /* Inline separate_compiler#SeparateCompiler#attr_tables (self) on <self:SeparateCompiler> */
885 var12
= self
->attrs
[COLOR_separate_compiler__SeparateCompiler___attr_tables
].val
; /* _attr_tables on <self:SeparateCompiler> */
886 if (unlikely(var12
== NULL
)) {
887 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _attr_tables");
888 PRINT_ERROR(" (%s:%d)\n", "src/separate_compiler.nit", 793);
896 var13
= ((val
* (*)(val
*, val
*))(var10
->class->vft
[COLOR_abstract_collection__MapRead___91d_93d
]))(var10
, var_mclass
) /* [] on <var10:Map[MClass, Array[nullable MPropDef]]>*/;
900 var14
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__new_visitor
]))(self
) /* new_visitor on <self:SeparateCompiler>*/;
904 { /* Inline separate_compiler#SeparateCompiler#runtime_type_analysis (self) on <self:SeparateCompiler> */
905 var17
= self
->attrs
[COLOR_separate_compiler__SeparateCompiler___runtime_type_analysis
].val
; /* _runtime_type_analysis on <self:SeparateCompiler> */
912 if (var_rta
== NULL
) {
913 var22
= 0; /* is null */
915 var22
= 1; /* arg is null and recv is not */
918 { /* Inline kernel#Object#!= (var_rta,var21) on <var_rta:nullable RapidTypeAnalysis> */
921 var26
= ((short int (*)(val
*, val
*))(var_rta
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var_rta
, var_other
) /* == on <var_rta:nullable RapidTypeAnalysis(RapidTypeAnalysis)>*/;
934 { /* Inline rapid_type_analysis#RapidTypeAnalysis#live_classes (var_rta) on <var_rta:nullable RapidTypeAnalysis(RapidTypeAnalysis)> */
935 var30
= var_rta
->attrs
[COLOR_rapid_type_analysis__RapidTypeAnalysis___live_classes
].val
; /* _live_classes on <var_rta:nullable RapidTypeAnalysis(RapidTypeAnalysis)> */
936 if (unlikely(var30
== NULL
)) {
937 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_classes");
938 PRINT_ERROR(" (%s:%d)\n", "src/rapid_type_analysis.nit", 64);
946 var31
= hash_collection__HashSet__has(var28
, var_mclass
);
956 var34
= abstract_compiler__MClassType__ctype(var_mtype
);
963 var38
= string__NativeString__to_s_with_length(var36
, var37
);
968 var40
= string__FlatString___61d_61d(var34
, var35
);
978 { /* Inline model#MClass#name (var_mclass) on <var_mclass:MClass> */
979 var44
= var_mclass
->attrs
[COLOR_model__MClass___name
].val
; /* _name on <var_mclass:MClass> */
980 if (unlikely(var44
== NULL
)) {
981 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
982 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 340);
992 var47
= "NativeArray";
994 var49
= string__NativeString__to_s_with_length(var47
, var48
);
999 { /* Inline kernel#Object#!= (var42,var46) on <var42:String> */
1002 var54
= ((short int (*)(val
*, val
*))(var42
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var42
, var_other
) /* == on <var42:String>*/;
1008 RET_LABEL52
:(void)0;
1016 var_is_dead
= var18
;
1020 var58
= "/* runtime class ";
1022 var60
= string__NativeString__to_s_with_length(var58
, var59
);
1031 var65
= string__NativeString__to_s_with_length(var63
, var64
);
1035 var66
= NEW_array__Array(&type_array__Arraykernel__Object
);
1036 { /* var66 = array_instance Array[Object] */
1038 var68
= NEW_array__NativeArray(var67
, &type_array__NativeArraykernel__Object
);
1039 ((struct instance_array__NativeArray
*)var68
)->values
[0] = (val
*) var57
;
1040 ((struct instance_array__NativeArray
*)var68
)->values
[1] = (val
*) var_c_name
;
1041 ((struct instance_array__NativeArray
*)var68
)->values
[2] = (val
*) var62
;
1043 ((void (*)(val
*, val
*, long))(var66
->class->vft
[COLOR_array__Array__with_native
]))(var66
, var68
, var67
) /* with_native on <var66:Array[Object]>*/;
1047 var69
= ((val
* (*)(val
*))(var66
->class->vft
[COLOR_string__Object__to_s
]))(var66
) /* to_s on <var66:Array[Object]>*/;
1050 abstract_compiler__AbstractCompilerVisitor__add_decl(var_v
, var69
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:SeparateCompilerVisitor>*/
1052 var70
= !var_is_dead
;
1059 var75
= string__NativeString__to_s_with_length(var73
, var74
);
1063 var76
= NEW_array__Array(&type_array__Arraykernel__Object
);
1064 { /* var76 = array_instance Array[Object] */
1066 var78
= NEW_array__NativeArray(var77
, &type_array__NativeArraykernel__Object
);
1067 ((struct instance_array__NativeArray
*)var78
)->values
[0] = (val
*) var72
;
1068 ((struct instance_array__NativeArray
*)var78
)->values
[1] = (val
*) var_c_name
;
1070 ((void (*)(val
*, val
*, long))(var76
->class->vft
[COLOR_array__Array__with_native
]))(var76
, var78
, var77
) /* with_native on <var76:Array[Object]>*/;
1074 var79
= ((val
* (*)(val
*))(var76
->class->vft
[COLOR_string__Object__to_s
]))(var76
) /* to_s on <var76:Array[Object]>*/;
1079 var82
= "extern const struct class class_";
1081 var84
= string__NativeString__to_s_with_length(var82
, var83
);
1090 var89
= string__NativeString__to_s_with_length(var87
, var88
);
1094 var90
= NEW_array__Array(&type_array__Arraykernel__Object
);
1095 { /* var90 = array_instance Array[Object] */
1097 var92
= NEW_array__NativeArray(var91
, &type_array__NativeArraykernel__Object
);
1098 ((struct instance_array__NativeArray
*)var92
)->values
[0] = (val
*) var81
;
1099 ((struct instance_array__NativeArray
*)var92
)->values
[1] = (val
*) var_c_name
;
1100 ((struct instance_array__NativeArray
*)var92
)->values
[2] = (val
*) var86
;
1102 ((void (*)(val
*, val
*, long))(var90
->class->vft
[COLOR_array__Array__with_native
]))(var90
, var92
, var91
) /* with_native on <var90:Array[Object]>*/;
1106 var93
= ((val
* (*)(val
*))(var90
->class->vft
[COLOR_string__Object__to_s
]))(var90
) /* to_s on <var90:Array[Object]>*/;
1109 abstract_compiler__AbstractCompiler__provide_declaration(self
, var79
, var93
); /* Direct call abstract_compiler#AbstractCompiler#provide_declaration on <self:SeparateCompiler>*/
1114 var96
= "const struct class class_";
1116 var98
= string__NativeString__to_s_with_length(var96
, var97
);
1125 var103
= string__NativeString__to_s_with_length(var101
, var102
);
1129 var104
= NEW_array__Array(&type_array__Arraykernel__Object
);
1130 { /* var104 = array_instance Array[Object] */
1132 var106
= NEW_array__NativeArray(var105
, &type_array__NativeArraykernel__Object
);
1133 ((struct instance_array__NativeArray
*)var106
)->values
[0] = (val
*) var95
;
1134 ((struct instance_array__NativeArray
*)var106
)->values
[1] = (val
*) var_c_name
;
1135 ((struct instance_array__NativeArray
*)var106
)->values
[2] = (val
*) var100
;
1137 ((void (*)(val
*, val
*, long))(var104
->class->vft
[COLOR_array__Array__with_native
]))(var104
, var106
, var105
) /* with_native on <var104:Array[Object]>*/;
1141 var107
= ((val
* (*)(val
*))(var104
->class->vft
[COLOR_string__Object__to_s
]))(var104
) /* to_s on <var104:Array[Object]>*/;
1144 abstract_compiler__AbstractCompilerVisitor__add_decl(var_v
, var107
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:SeparateCompilerVisitor>*/
1147 var108
= separate_compiler__SeparateCompiler__box_kind_of(self
, var_mclass
);
1150 var110
= varonce109
;
1152 var111
= ", /* box_kind */";
1154 var113
= string__NativeString__to_s_with_length(var111
, var112
);
1156 varonce109
= var110
;
1158 var114
= NEW_array__Array(&type_array__Arraykernel__Object
);
1159 { /* var114 = array_instance Array[Object] */
1161 var116
= NEW_array__NativeArray(var115
, &type_array__NativeArraykernel__Object
);
1162 var117
= BOX_kernel__Int(var108
); /* autobox from Int to Object */
1163 ((struct instance_array__NativeArray
*)var116
)->values
[0] = (val
*) var117
;
1164 ((struct instance_array__NativeArray
*)var116
)->values
[1] = (val
*) var110
;
1166 ((void (*)(val
*, val
*, long))(var114
->class->vft
[COLOR_array__Array__with_native
]))(var114
, var116
, var115
) /* with_native on <var114:Array[Object]>*/;
1170 var118
= ((val
* (*)(val
*))(var114
->class->vft
[COLOR_string__Object__to_s
]))(var114
) /* to_s on <var114:Array[Object]>*/;
1173 abstract_compiler__AbstractCompilerVisitor__add_decl(var_v
, var118
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:SeparateCompilerVisitor>*/
1176 var120
= varonce119
;
1180 var123
= string__NativeString__to_s_with_length(var121
, var122
);
1182 varonce119
= var120
;
1185 abstract_compiler__AbstractCompilerVisitor__add_decl(var_v
, var120
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:SeparateCompilerVisitor>*/
1187 var124
= NEW_range__Range(&type_range__Rangekernel__Int
);
1190 var126
= array__AbstractArrayRead__length(var_vft
);
1193 var127
= BOX_kernel__Int(var125
); /* autobox from Int to Discrete */
1194 var128
= BOX_kernel__Int(var126
); /* autobox from Int to Discrete */
1195 range__Range__without_last(var124
, var127
, var128
); /* Direct call range#Range#without_last on <var124:Range[Int]>*/
1198 var129
= range__Range__iterator(var124
);
1202 var130
= ((short int (*)(val
*))(var129
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var129
) /* is_ok on <var129:Iterator[Discrete]>*/;
1206 var131
= ((val
* (*)(val
*))(var129
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var129
) /* item on <var129:Iterator[Discrete]>*/;
1208 var132
= ((struct instance_kernel__Int
*)var131
)->value
; /* autounbox from nullable Object to Int */;
1211 var133
= array__Array___91d_93d(var_vft
, var_i
);
1213 var_mpropdef
= var133
;
1215 if (var_mpropdef
== NULL
) {
1216 var135
= 1; /* is null */
1218 var135
= 0; /* arg is null but recv is not */
1221 { /* Inline kernel#Object#== (var_mpropdef,var134) on <var_mpropdef:nullable MPropDef> */
1222 var_other138
= var134
;
1224 { /* Inline kernel#Object#is_same_instance (var_mpropdef,var_other138) on <var_mpropdef:nullable MPropDef(MPropDef)> */
1225 var141
= var_mpropdef
== var_other138
;
1228 RET_LABEL140
:(void)0;
1233 RET_LABEL137
:(void)0;
1239 var143
= varonce142
;
1241 var144
= "NULL, /* empty */";
1243 var146
= string__NativeString__to_s_with_length(var144
, var145
);
1245 varonce142
= var143
;
1248 abstract_compiler__AbstractCompilerVisitor__add_decl(var_v
, var143
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:SeparateCompilerVisitor>*/
1251 /* <var_mpropdef:nullable MPropDef(MPropDef)> isa MMethodDef */
1252 cltype
= type_model__MMethodDef
.color
;
1253 idtype
= type_model__MMethodDef
.id
;
1254 if(cltype
>= var_mpropdef
->type
->table_size
) {
1257 var147
= var_mpropdef
->type
->type_table
[cltype
] == idtype
;
1259 if (unlikely(!var147
)) {
1260 PRINT_ERROR("Runtime error: %s", "Assert failed");
1261 PRINT_ERROR(" (%s:%d)\n", "src/separate_compiler.nit", 686);
1265 if (var_rta
== NULL
) {
1266 var150
= 0; /* is null */
1268 var150
= 1; /* arg is null and recv is not */
1271 { /* Inline kernel#Object#!= (var_rta,var149) on <var_rta:nullable RapidTypeAnalysis> */
1274 var154
= ((short int (*)(val
*, val
*))(var_rta
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var_rta
, var_other
) /* == on <var_rta:nullable RapidTypeAnalysis(RapidTypeAnalysis)>*/;
1280 RET_LABEL152
:(void)0;
1287 { /* Inline rapid_type_analysis#RapidTypeAnalysis#live_methoddefs (var_rta) on <var_rta:nullable RapidTypeAnalysis(RapidTypeAnalysis)> */
1288 var159
= var_rta
->attrs
[COLOR_rapid_type_analysis__RapidTypeAnalysis___live_methoddefs
].val
; /* _live_methoddefs on <var_rta:nullable RapidTypeAnalysis(RapidTypeAnalysis)> */
1289 if (unlikely(var159
== NULL
)) {
1290 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_methoddefs");
1291 PRINT_ERROR(" (%s:%d)\n", "src/rapid_type_analysis.nit", 74);
1295 RET_LABEL158
:(void)0;
1299 var160
= hash_collection__HashSet__has(var157
, var_mpropdef
);
1308 var163
= varonce162
;
1310 var164
= "NULL, /* DEAD ";
1312 var166
= string__NativeString__to_s_with_length(var164
, var165
);
1314 varonce162
= var163
;
1317 { /* Inline model#MClass#intro_mmodule (var_mclass) on <var_mclass:MClass> */
1318 var169
= var_mclass
->attrs
[COLOR_model__MClass___intro_mmodule
].val
; /* _intro_mmodule on <var_mclass:MClass> */
1319 if (unlikely(var169
== NULL
)) {
1320 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro_mmodule");
1321 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 335);
1325 RET_LABEL168
:(void)0;
1329 var171
= varonce170
;
1333 var174
= string__NativeString__to_s_with_length(var172
, var173
);
1335 varonce170
= var171
;
1338 var176
= varonce175
;
1342 var179
= string__NativeString__to_s_with_length(var177
, var178
);
1344 varonce175
= var176
;
1347 var181
= varonce180
;
1351 var184
= string__NativeString__to_s_with_length(var182
, var183
);
1353 varonce180
= var181
;
1355 var185
= NEW_array__Array(&type_array__Arraykernel__Object
);
1356 { /* var185 = array_instance Array[Object] */
1358 var187
= NEW_array__NativeArray(var186
, &type_array__NativeArraykernel__Object
);
1359 ((struct instance_array__NativeArray
*)var187
)->values
[0] = (val
*) var163
;
1360 ((struct instance_array__NativeArray
*)var187
)->values
[1] = (val
*) var167
;
1361 ((struct instance_array__NativeArray
*)var187
)->values
[2] = (val
*) var171
;
1362 ((struct instance_array__NativeArray
*)var187
)->values
[3] = (val
*) var_mclass
;
1363 ((struct instance_array__NativeArray
*)var187
)->values
[4] = (val
*) var176
;
1364 ((struct instance_array__NativeArray
*)var187
)->values
[5] = (val
*) var_mpropdef
;
1365 ((struct instance_array__NativeArray
*)var187
)->values
[6] = (val
*) var181
;
1367 ((void (*)(val
*, val
*, long))(var185
->class->vft
[COLOR_array__Array__with_native
]))(var185
, var187
, var186
) /* with_native on <var185:Array[Object]>*/;
1371 var188
= ((val
* (*)(val
*))(var185
->class->vft
[COLOR_string__Object__to_s
]))(var185
) /* to_s on <var185:Array[Object]>*/;
1374 abstract_compiler__AbstractCompilerVisitor__add_decl(var_v
, var188
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:SeparateCompilerVisitor>*/
1376 goto CONTINUE_label
;
1380 var189
= separate_compiler__MMethodDef__virtual_runtime_function(var_mpropdef
);
1384 var190
= abstract_compiler__AbstractRuntimeFunction__c_name(var_rf
);
1387 abstract_compiler__AbstractCompilerVisitor__require_declaration(var_v
, var190
); /* Direct call abstract_compiler#AbstractCompilerVisitor#require_declaration on <var_v:SeparateCompilerVisitor>*/
1390 var192
= varonce191
;
1392 var193
= "(nitmethod_t)";
1394 var195
= string__NativeString__to_s_with_length(var193
, var194
);
1396 varonce191
= var192
;
1399 var196
= abstract_compiler__AbstractRuntimeFunction__c_name(var_rf
);
1402 var198
= varonce197
;
1404 var199
= ", /* pointer to ";
1406 var201
= string__NativeString__to_s_with_length(var199
, var200
);
1408 varonce197
= var198
;
1411 { /* Inline model#MClass#intro_mmodule (var_mclass) on <var_mclass:MClass> */
1412 var204
= var_mclass
->attrs
[COLOR_model__MClass___intro_mmodule
].val
; /* _intro_mmodule on <var_mclass:MClass> */
1413 if (unlikely(var204
== NULL
)) {
1414 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro_mmodule");
1415 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 335);
1419 RET_LABEL203
:(void)0;
1423 var206
= varonce205
;
1427 var209
= string__NativeString__to_s_with_length(var207
, var208
);
1429 varonce205
= var206
;
1432 var211
= varonce210
;
1436 var214
= string__NativeString__to_s_with_length(var212
, var213
);
1438 varonce210
= var211
;
1441 var216
= varonce215
;
1445 var219
= string__NativeString__to_s_with_length(var217
, var218
);
1447 varonce215
= var216
;
1449 var220
= NEW_array__Array(&type_array__Arraykernel__Object
);
1450 { /* var220 = array_instance Array[Object] */
1452 var222
= NEW_array__NativeArray(var221
, &type_array__NativeArraykernel__Object
);
1453 ((struct instance_array__NativeArray
*)var222
)->values
[0] = (val
*) var192
;
1454 ((struct instance_array__NativeArray
*)var222
)->values
[1] = (val
*) var196
;
1455 ((struct instance_array__NativeArray
*)var222
)->values
[2] = (val
*) var198
;
1456 ((struct instance_array__NativeArray
*)var222
)->values
[3] = (val
*) var202
;
1457 ((struct instance_array__NativeArray
*)var222
)->values
[4] = (val
*) var206
;
1458 ((struct instance_array__NativeArray
*)var222
)->values
[5] = (val
*) var_mclass
;
1459 ((struct instance_array__NativeArray
*)var222
)->values
[6] = (val
*) var211
;
1460 ((struct instance_array__NativeArray
*)var222
)->values
[7] = (val
*) var_mpropdef
;
1461 ((struct instance_array__NativeArray
*)var222
)->values
[8] = (val
*) var216
;
1463 ((void (*)(val
*, val
*, long))(var220
->class->vft
[COLOR_array__Array__with_native
]))(var220
, var222
, var221
) /* with_native on <var220:Array[Object]>*/;
1467 var223
= ((val
* (*)(val
*))(var220
->class->vft
[COLOR_string__Object__to_s
]))(var220
) /* to_s on <var220:Array[Object]>*/;
1470 abstract_compiler__AbstractCompilerVisitor__add_decl(var_v
, var223
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:SeparateCompilerVisitor>*/
1473 CONTINUE_label
: (void)0;
1475 ((void (*)(val
*))(var129
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var129
) /* next on <var129:Iterator[Discrete]>*/;
1478 BREAK_label
: (void)0;
1480 var225
= varonce224
;
1484 var228
= string__NativeString__to_s_with_length(var226
, var227
);
1486 varonce224
= var225
;
1489 abstract_compiler__AbstractCompilerVisitor__add_decl(var_v
, var225
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:SeparateCompilerVisitor>*/
1492 var230
= varonce229
;
1496 var233
= string__NativeString__to_s_with_length(var231
, var232
);
1498 varonce229
= var230
;
1501 abstract_compiler__AbstractCompilerVisitor__add_decl(var_v
, var230
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:SeparateCompilerVisitor>*/
1506 var234
= abstract_compiler__MClassType__ctype(var_mtype
);
1509 var236
= varonce235
;
1513 var239
= string__NativeString__to_s_with_length(var237
, var238
);
1515 varonce235
= var236
;
1518 { /* Inline kernel#Object#!= (var234,var236) on <var234:String> */
1521 var244
= ((short int (*)(val
*, val
*))(var234
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var234
, var_other
) /* == on <var234:String>*/;
1527 RET_LABEL242
:(void)0;
1533 { /* Inline model#MClassType#mclass (var_mtype) on <var_mtype:MClassType> */
1534 var249
= var_mtype
->attrs
[COLOR_model__MClassType___mclass
].val
; /* _mclass on <var_mtype:MClassType> */
1535 if (unlikely(var249
== NULL
)) {
1536 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
1537 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 969);
1541 RET_LABEL248
:(void)0;
1545 { /* Inline model#MClass#name (var247) on <var247:MClass> */
1546 var252
= var247
->attrs
[COLOR_model__MClass___name
].val
; /* _name on <var247:MClass> */
1547 if (unlikely(var252
== NULL
)) {
1548 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
1549 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 340);
1553 RET_LABEL251
:(void)0;
1557 var254
= varonce253
;
1561 var257
= string__NativeString__to_s_with_length(var255
, var256
);
1563 varonce253
= var254
;
1566 var259
= string__FlatString___61d_61d(var250
, var254
);
1574 { /* Inline model#MClassType#mclass (var_mtype) on <var_mtype:MClassType> */
1575 var263
= var_mtype
->attrs
[COLOR_model__MClassType___mclass
].val
; /* _mclass on <var_mtype:MClassType> */
1576 if (unlikely(var263
== NULL
)) {
1577 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
1578 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 969);
1582 RET_LABEL262
:(void)0;
1586 { /* Inline model#MClass#kind (var261) on <var261:MClass> */
1587 var266
= var261
->attrs
[COLOR_model__MClass___kind
].val
; /* _kind on <var261:MClass> */
1588 if (unlikely(var266
== NULL
)) {
1589 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _kind");
1590 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 355);
1594 RET_LABEL265
:(void)0;
1598 var267
= model__Object__extern_kind(self
);
1601 { /* Inline kernel#Object#!= (var264,var267) on <var264:MClassKind> */
1604 var272
= ((short int (*)(val
*, val
*))(var264
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var264
, var_other
) /* == on <var264:MClassKind>*/;
1610 RET_LABEL270
:(void)0;
1618 { /* Inline abstract_compiler#AbstractCompiler#header (self) on <self:SeparateCompiler> */
1619 var276
= self
->attrs
[COLOR_abstract_compiler__AbstractCompiler___header
].val
; /* _header on <self:SeparateCompiler> */
1620 if (unlikely(var276
== NULL
)) {
1621 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _header");
1622 PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 472);
1626 RET_LABEL275
:(void)0;
1630 var278
= varonce277
;
1632 var279
= "struct instance_";
1634 var281
= string__NativeString__to_s_with_length(var279
, var280
);
1636 varonce277
= var278
;
1639 var283
= varonce282
;
1643 var286
= string__NativeString__to_s_with_length(var284
, var285
);
1645 varonce282
= var283
;
1647 var287
= NEW_array__Array(&type_array__Arraykernel__Object
);
1648 { /* var287 = array_instance Array[Object] */
1650 var289
= NEW_array__NativeArray(var288
, &type_array__NativeArraykernel__Object
);
1651 ((struct instance_array__NativeArray
*)var289
)->values
[0] = (val
*) var278
;
1652 ((struct instance_array__NativeArray
*)var289
)->values
[1] = (val
*) var_c_instance_name
;
1653 ((struct instance_array__NativeArray
*)var289
)->values
[2] = (val
*) var283
;
1655 ((void (*)(val
*, val
*, long))(var287
->class->vft
[COLOR_array__Array__with_native
]))(var287
, var289
, var288
) /* with_native on <var287:Array[Object]>*/;
1659 var290
= ((val
* (*)(val
*))(var287
->class->vft
[COLOR_string__Object__to_s
]))(var287
) /* to_s on <var287:Array[Object]>*/;
1662 abstract_compiler__CodeWriter__add_decl(var274
, var290
); /* Direct call abstract_compiler#CodeWriter#add_decl on <var274:CodeWriter>*/
1665 { /* Inline abstract_compiler#AbstractCompiler#header (self) on <self:SeparateCompiler> */
1666 var293
= self
->attrs
[COLOR_abstract_compiler__AbstractCompiler___header
].val
; /* _header on <self:SeparateCompiler> */
1667 if (unlikely(var293
== NULL
)) {
1668 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _header");
1669 PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 472);
1673 RET_LABEL292
:(void)0;
1677 var295
= varonce294
;
1679 var296
= "const struct type *type;";
1681 var298
= string__NativeString__to_s_with_length(var296
, var297
);
1683 varonce294
= var295
;
1686 abstract_compiler__CodeWriter__add_decl(var291
, var295
); /* Direct call abstract_compiler#CodeWriter#add_decl on <var291:CodeWriter>*/
1689 { /* Inline abstract_compiler#AbstractCompiler#header (self) on <self:SeparateCompiler> */
1690 var301
= self
->attrs
[COLOR_abstract_compiler__AbstractCompiler___header
].val
; /* _header on <self:SeparateCompiler> */
1691 if (unlikely(var301
== NULL
)) {
1692 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _header");
1693 PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 472);
1697 RET_LABEL300
:(void)0;
1701 var303
= varonce302
;
1703 var304
= "const struct class *class;";
1705 var306
= string__NativeString__to_s_with_length(var304
, var305
);
1707 varonce302
= var303
;
1710 abstract_compiler__CodeWriter__add_decl(var299
, var303
); /* Direct call abstract_compiler#CodeWriter#add_decl on <var299:CodeWriter>*/
1713 { /* Inline abstract_compiler#AbstractCompiler#header (self) on <self:SeparateCompiler> */
1714 var309
= self
->attrs
[COLOR_abstract_compiler__AbstractCompiler___header
].val
; /* _header on <self:SeparateCompiler> */
1715 if (unlikely(var309
== NULL
)) {
1716 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _header");
1717 PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 472);
1721 RET_LABEL308
:(void)0;
1725 var310
= abstract_compiler__MClassType__ctype(var_mtype
);
1728 var312
= varonce311
;
1732 var315
= string__NativeString__to_s_with_length(var313
, var314
);
1734 varonce311
= var312
;
1736 var316
= NEW_array__Array(&type_array__Arraykernel__Object
);
1737 { /* var316 = array_instance Array[Object] */
1739 var318
= NEW_array__NativeArray(var317
, &type_array__NativeArraykernel__Object
);
1740 ((struct instance_array__NativeArray
*)var318
)->values
[0] = (val
*) var310
;
1741 ((struct instance_array__NativeArray
*)var318
)->values
[1] = (val
*) var312
;
1743 ((void (*)(val
*, val
*, long))(var316
->class->vft
[COLOR_array__Array__with_native
]))(var316
, var318
, var317
) /* with_native on <var316:Array[Object]>*/;
1747 var319
= ((val
* (*)(val
*))(var316
->class->vft
[COLOR_string__Object__to_s
]))(var316
) /* to_s on <var316:Array[Object]>*/;
1750 abstract_compiler__CodeWriter__add_decl(var307
, var319
); /* Direct call abstract_compiler#CodeWriter#add_decl on <var307:CodeWriter>*/
1753 { /* Inline abstract_compiler#AbstractCompiler#header (self) on <self:SeparateCompiler> */
1754 var322
= self
->attrs
[COLOR_abstract_compiler__AbstractCompiler___header
].val
; /* _header on <self:SeparateCompiler> */
1755 if (unlikely(var322
== NULL
)) {
1756 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _header");
1757 PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 472);
1761 RET_LABEL321
:(void)0;
1765 var324
= varonce323
;
1769 var327
= string__NativeString__to_s_with_length(var325
, var326
);
1771 varonce323
= var324
;
1774 abstract_compiler__CodeWriter__add_decl(var320
, var324
); /* Direct call abstract_compiler#CodeWriter#add_decl on <var320:CodeWriter>*/
1778 if (var_rta
== NULL
) {
1779 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1780 PRINT_ERROR(" (%s:%d)\n", "src/separate_compiler.nit", 710);
1783 { /* Inline rapid_type_analysis#RapidTypeAnalysis#live_types (var_rta) on <var_rta:nullable RapidTypeAnalysis> */
1784 if (unlikely(var_rta
== NULL
)) {
1785 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1786 PRINT_ERROR(" (%s:%d)\n", "src/rapid_type_analysis.nit", 55);
1789 var330
= var_rta
->attrs
[COLOR_rapid_type_analysis__RapidTypeAnalysis___live_types
].val
; /* _live_types on <var_rta:nullable RapidTypeAnalysis> */
1790 if (unlikely(var330
== NULL
)) {
1791 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_types");
1792 PRINT_ERROR(" (%s:%d)\n", "src/rapid_type_analysis.nit", 55);
1796 RET_LABEL329
:(void)0;
1800 var331
= hash_collection__HashSet__has(var328
, var_mtype
);
1808 var334
= varonce333
;
1812 var337
= string__NativeString__to_s_with_length(var335
, var336
);
1814 varonce333
= var334
;
1816 var338
= NEW_array__Array(&type_array__Arraykernel__Object
);
1817 { /* var338 = array_instance Array[Object] */
1819 var340
= NEW_array__NativeArray(var339
, &type_array__NativeArraykernel__Object
);
1820 ((struct instance_array__NativeArray
*)var340
)->values
[0] = (val
*) var334
;
1821 ((struct instance_array__NativeArray
*)var340
)->values
[1] = (val
*) var_c_name
;
1823 ((void (*)(val
*, val
*, long))(var338
->class->vft
[COLOR_array__Array__with_native
]))(var338
, var340
, var339
) /* with_native on <var338:Array[Object]>*/;
1827 var341
= ((val
* (*)(val
*))(var338
->class->vft
[COLOR_string__Object__to_s
]))(var338
) /* to_s on <var338:Array[Object]>*/;
1830 var343
= varonce342
;
1832 var344
= "val* BOX_";
1834 var346
= string__NativeString__to_s_with_length(var344
, var345
);
1836 varonce342
= var343
;
1839 var348
= varonce347
;
1843 var351
= string__NativeString__to_s_with_length(var349
, var350
);
1845 varonce347
= var348
;
1848 var352
= abstract_compiler__MClassType__ctype(var_mtype
);
1851 var354
= varonce353
;
1855 var357
= string__NativeString__to_s_with_length(var355
, var356
);
1857 varonce353
= var354
;
1859 var358
= NEW_array__Array(&type_array__Arraykernel__Object
);
1860 { /* var358 = array_instance Array[Object] */
1862 var360
= NEW_array__NativeArray(var359
, &type_array__NativeArraykernel__Object
);
1863 ((struct instance_array__NativeArray
*)var360
)->values
[0] = (val
*) var343
;
1864 ((struct instance_array__NativeArray
*)var360
)->values
[1] = (val
*) var_c_name
;
1865 ((struct instance_array__NativeArray
*)var360
)->values
[2] = (val
*) var348
;
1866 ((struct instance_array__NativeArray
*)var360
)->values
[3] = (val
*) var352
;
1867 ((struct instance_array__NativeArray
*)var360
)->values
[4] = (val
*) var354
;
1869 ((void (*)(val
*, val
*, long))(var358
->class->vft
[COLOR_array__Array__with_native
]))(var358
, var360
, var359
) /* with_native on <var358:Array[Object]>*/;
1873 var361
= ((val
* (*)(val
*))(var358
->class->vft
[COLOR_string__Object__to_s
]))(var358
) /* to_s on <var358:Array[Object]>*/;
1876 abstract_compiler__AbstractCompiler__provide_declaration(self
, var341
, var361
); /* Direct call abstract_compiler#AbstractCompiler#provide_declaration on <self:SeparateCompiler>*/
1879 var363
= varonce362
;
1881 var364
= "/* allocate ";
1883 var366
= string__NativeString__to_s_with_length(var364
, var365
);
1885 varonce362
= var363
;
1888 var368
= varonce367
;
1892 var371
= string__NativeString__to_s_with_length(var369
, var370
);
1894 varonce367
= var368
;
1896 var372
= NEW_array__Array(&type_array__Arraykernel__Object
);
1897 { /* var372 = array_instance Array[Object] */
1899 var374
= NEW_array__NativeArray(var373
, &type_array__NativeArraykernel__Object
);
1900 ((struct instance_array__NativeArray
*)var374
)->values
[0] = (val
*) var363
;
1901 ((struct instance_array__NativeArray
*)var374
)->values
[1] = (val
*) var_mtype
;
1902 ((struct instance_array__NativeArray
*)var374
)->values
[2] = (val
*) var368
;
1904 ((void (*)(val
*, val
*, long))(var372
->class->vft
[COLOR_array__Array__with_native
]))(var372
, var374
, var373
) /* with_native on <var372:Array[Object]>*/;
1908 var375
= ((val
* (*)(val
*))(var372
->class->vft
[COLOR_string__Object__to_s
]))(var372
) /* to_s on <var372:Array[Object]>*/;
1911 abstract_compiler__AbstractCompilerVisitor__add_decl(var_v
, var375
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:SeparateCompilerVisitor>*/
1914 var377
= varonce376
;
1916 var378
= "val* BOX_";
1918 var380
= string__NativeString__to_s_with_length(var378
, var379
);
1920 varonce376
= var377
;
1923 var381
= ((val
* (*)(val
*))(var_mtype
->class->vft
[COLOR_abstract_compiler__MType__c_name
]))(var_mtype
) /* c_name on <var_mtype:MClassType>*/;
1926 var383
= varonce382
;
1930 var386
= string__NativeString__to_s_with_length(var384
, var385
);
1932 varonce382
= var383
;
1935 var387
= abstract_compiler__MClassType__ctype(var_mtype
);
1938 var389
= varonce388
;
1940 var390
= " value) {";
1942 var392
= string__NativeString__to_s_with_length(var390
, var391
);
1944 varonce388
= var389
;
1946 var393
= NEW_array__Array(&type_array__Arraykernel__Object
);
1947 { /* var393 = array_instance Array[Object] */
1949 var395
= NEW_array__NativeArray(var394
, &type_array__NativeArraykernel__Object
);
1950 ((struct instance_array__NativeArray
*)var395
)->values
[0] = (val
*) var377
;
1951 ((struct instance_array__NativeArray
*)var395
)->values
[1] = (val
*) var381
;
1952 ((struct instance_array__NativeArray
*)var395
)->values
[2] = (val
*) var383
;
1953 ((struct instance_array__NativeArray
*)var395
)->values
[3] = (val
*) var387
;
1954 ((struct instance_array__NativeArray
*)var395
)->values
[4] = (val
*) var389
;
1956 ((void (*)(val
*, val
*, long))(var393
->class->vft
[COLOR_array__Array__with_native
]))(var393
, var395
, var394
) /* with_native on <var393:Array[Object]>*/;
1960 var396
= ((val
* (*)(val
*))(var393
->class->vft
[COLOR_string__Object__to_s
]))(var393
) /* to_s on <var393:Array[Object]>*/;
1963 abstract_compiler__AbstractCompilerVisitor__add_decl(var_v
, var396
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:SeparateCompilerVisitor>*/
1966 var398
= varonce397
;
1968 var399
= "struct instance_";
1970 var401
= string__NativeString__to_s_with_length(var399
, var400
);
1972 varonce397
= var398
;
1975 var403
= varonce402
;
1977 var404
= "*res = nit_alloc(sizeof(struct instance_";
1979 var406
= string__NativeString__to_s_with_length(var404
, var405
);
1981 varonce402
= var403
;
1984 var408
= varonce407
;
1988 var411
= string__NativeString__to_s_with_length(var409
, var410
);
1990 varonce407
= var408
;
1992 var412
= NEW_array__Array(&type_array__Arraykernel__Object
);
1993 { /* var412 = array_instance Array[Object] */
1995 var414
= NEW_array__NativeArray(var413
, &type_array__NativeArraykernel__Object
);
1996 ((struct instance_array__NativeArray
*)var414
)->values
[0] = (val
*) var398
;
1997 ((struct instance_array__NativeArray
*)var414
)->values
[1] = (val
*) var_c_instance_name
;
1998 ((struct instance_array__NativeArray
*)var414
)->values
[2] = (val
*) var403
;
1999 ((struct instance_array__NativeArray
*)var414
)->values
[3] = (val
*) var_c_instance_name
;
2000 ((struct instance_array__NativeArray
*)var414
)->values
[4] = (val
*) var408
;
2002 ((void (*)(val
*, val
*, long))(var412
->class->vft
[COLOR_array__Array__with_native
]))(var412
, var414
, var413
) /* with_native on <var412:Array[Object]>*/;
2006 var415
= ((val
* (*)(val
*))(var412
->class->vft
[COLOR_string__Object__to_s
]))(var412
) /* to_s on <var412:Array[Object]>*/;
2009 abstract_compiler__AbstractCompilerVisitor__add(var_v
, var415
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <var_v:SeparateCompilerVisitor>*/
2012 var417
= varonce416
;
2016 var420
= string__NativeString__to_s_with_length(var418
, var419
);
2018 varonce416
= var417
;
2020 var421
= NEW_array__Array(&type_array__Arraykernel__Object
);
2021 { /* var421 = array_instance Array[Object] */
2023 var423
= NEW_array__NativeArray(var422
, &type_array__NativeArraykernel__Object
);
2024 ((struct instance_array__NativeArray
*)var423
)->values
[0] = (val
*) var417
;
2025 ((struct instance_array__NativeArray
*)var423
)->values
[1] = (val
*) var_c_name
;
2027 ((void (*)(val
*, val
*, long))(var421
->class->vft
[COLOR_array__Array__with_native
]))(var421
, var423
, var422
) /* with_native on <var421:Array[Object]>*/;
2031 var424
= ((val
* (*)(val
*))(var421
->class->vft
[COLOR_string__Object__to_s
]))(var421
) /* to_s on <var421:Array[Object]>*/;
2034 abstract_compiler__AbstractCompilerVisitor__require_declaration(var_v
, var424
); /* Direct call abstract_compiler#AbstractCompilerVisitor#require_declaration on <var_v:SeparateCompilerVisitor>*/
2037 var426
= varonce425
;
2039 var427
= "res->type = &type_";
2041 var429
= string__NativeString__to_s_with_length(var427
, var428
);
2043 varonce425
= var426
;
2046 var431
= varonce430
;
2050 var434
= string__NativeString__to_s_with_length(var432
, var433
);
2052 varonce430
= var431
;
2054 var435
= NEW_array__Array(&type_array__Arraykernel__Object
);
2055 { /* var435 = array_instance Array[Object] */
2057 var437
= NEW_array__NativeArray(var436
, &type_array__NativeArraykernel__Object
);
2058 ((struct instance_array__NativeArray
*)var437
)->values
[0] = (val
*) var426
;
2059 ((struct instance_array__NativeArray
*)var437
)->values
[1] = (val
*) var_c_name
;
2060 ((struct instance_array__NativeArray
*)var437
)->values
[2] = (val
*) var431
;
2062 ((void (*)(val
*, val
*, long))(var435
->class->vft
[COLOR_array__Array__with_native
]))(var435
, var437
, var436
) /* with_native on <var435:Array[Object]>*/;
2066 var438
= ((val
* (*)(val
*))(var435
->class->vft
[COLOR_string__Object__to_s
]))(var435
) /* to_s on <var435:Array[Object]>*/;
2069 abstract_compiler__AbstractCompilerVisitor__add(var_v
, var438
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <var_v:SeparateCompilerVisitor>*/
2072 var440
= varonce439
;
2076 var443
= string__NativeString__to_s_with_length(var441
, var442
);
2078 varonce439
= var440
;
2080 var444
= NEW_array__Array(&type_array__Arraykernel__Object
);
2081 { /* var444 = array_instance Array[Object] */
2083 var446
= NEW_array__NativeArray(var445
, &type_array__NativeArraykernel__Object
);
2084 ((struct instance_array__NativeArray
*)var446
)->values
[0] = (val
*) var440
;
2085 ((struct instance_array__NativeArray
*)var446
)->values
[1] = (val
*) var_c_name
;
2087 ((void (*)(val
*, val
*, long))(var444
->class->vft
[COLOR_array__Array__with_native
]))(var444
, var446
, var445
) /* with_native on <var444:Array[Object]>*/;
2091 var447
= ((val
* (*)(val
*))(var444
->class->vft
[COLOR_string__Object__to_s
]))(var444
) /* to_s on <var444:Array[Object]>*/;
2094 abstract_compiler__AbstractCompilerVisitor__require_declaration(var_v
, var447
); /* Direct call abstract_compiler#AbstractCompilerVisitor#require_declaration on <var_v:SeparateCompilerVisitor>*/
2097 var449
= varonce448
;
2099 var450
= "res->class = &class_";
2101 var452
= string__NativeString__to_s_with_length(var450
, var451
);
2103 varonce448
= var449
;
2106 var454
= varonce453
;
2110 var457
= string__NativeString__to_s_with_length(var455
, var456
);
2112 varonce453
= var454
;
2114 var458
= NEW_array__Array(&type_array__Arraykernel__Object
);
2115 { /* var458 = array_instance Array[Object] */
2117 var460
= NEW_array__NativeArray(var459
, &type_array__NativeArraykernel__Object
);
2118 ((struct instance_array__NativeArray
*)var460
)->values
[0] = (val
*) var449
;
2119 ((struct instance_array__NativeArray
*)var460
)->values
[1] = (val
*) var_c_name
;
2120 ((struct instance_array__NativeArray
*)var460
)->values
[2] = (val
*) var454
;
2122 ((void (*)(val
*, val
*, long))(var458
->class->vft
[COLOR_array__Array__with_native
]))(var458
, var460
, var459
) /* with_native on <var458:Array[Object]>*/;
2126 var461
= ((val
* (*)(val
*))(var458
->class->vft
[COLOR_string__Object__to_s
]))(var458
) /* to_s on <var458:Array[Object]>*/;
2129 abstract_compiler__AbstractCompilerVisitor__add(var_v
, var461
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <var_v:SeparateCompilerVisitor>*/
2132 var463
= varonce462
;
2134 var464
= "res->value = value;";
2136 var466
= string__NativeString__to_s_with_length(var464
, var465
);
2138 varonce462
= var463
;
2141 abstract_compiler__AbstractCompilerVisitor__add(var_v
, var463
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <var_v:SeparateCompilerVisitor>*/
2144 var468
= varonce467
;
2146 var469
= "return (val*)res;";
2148 var471
= string__NativeString__to_s_with_length(var469
, var470
);
2150 varonce467
= var468
;
2153 abstract_compiler__AbstractCompilerVisitor__add(var_v
, var468
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <var_v:SeparateCompilerVisitor>*/
2156 var473
= varonce472
;
2160 var476
= string__NativeString__to_s_with_length(var474
, var475
);
2162 varonce472
= var473
;
2165 abstract_compiler__AbstractCompilerVisitor__add(var_v
, var473
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <var_v:SeparateCompilerVisitor>*/
2170 { /* Inline model#MClass#name (var_mclass) on <var_mclass:MClass> */
2171 var479
= var_mclass
->attrs
[COLOR_model__MClass___name
].val
; /* _name on <var_mclass:MClass> */
2172 if (unlikely(var479
== NULL
)) {
2173 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
2174 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 340);
2178 RET_LABEL478
:(void)0;
2182 var481
= varonce480
;
2184 var482
= "NativeArray";
2186 var484
= string__NativeString__to_s_with_length(var482
, var483
);
2188 varonce480
= var481
;
2191 var486
= string__FlatString___61d_61d(var477
, var481
);
2196 { /* Inline abstract_compiler#AbstractCompiler#header (self) on <self:SeparateCompiler> */
2197 var489
= self
->attrs
[COLOR_abstract_compiler__AbstractCompiler___header
].val
; /* _header on <self:SeparateCompiler> */
2198 if (unlikely(var489
== NULL
)) {
2199 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _header");
2200 PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 472);
2204 RET_LABEL488
:(void)0;
2208 var491
= varonce490
;
2210 var492
= "struct instance_";
2212 var494
= string__NativeString__to_s_with_length(var492
, var493
);
2214 varonce490
= var491
;
2217 var496
= varonce495
;
2221 var499
= string__NativeString__to_s_with_length(var497
, var498
);
2223 varonce495
= var496
;
2225 var500
= NEW_array__Array(&type_array__Arraykernel__Object
);
2226 { /* var500 = array_instance Array[Object] */
2228 var502
= NEW_array__NativeArray(var501
, &type_array__NativeArraykernel__Object
);
2229 ((struct instance_array__NativeArray
*)var502
)->values
[0] = (val
*) var491
;
2230 ((struct instance_array__NativeArray
*)var502
)->values
[1] = (val
*) var_c_instance_name
;
2231 ((struct instance_array__NativeArray
*)var502
)->values
[2] = (val
*) var496
;
2233 ((void (*)(val
*, val
*, long))(var500
->class->vft
[COLOR_array__Array__with_native
]))(var500
, var502
, var501
) /* with_native on <var500:Array[Object]>*/;
2237 var503
= ((val
* (*)(val
*))(var500
->class->vft
[COLOR_string__Object__to_s
]))(var500
) /* to_s on <var500:Array[Object]>*/;
2240 abstract_compiler__CodeWriter__add_decl(var487
, var503
); /* Direct call abstract_compiler#CodeWriter#add_decl on <var487:CodeWriter>*/
2243 { /* Inline abstract_compiler#AbstractCompiler#header (self) on <self:SeparateCompiler> */
2244 var506
= self
->attrs
[COLOR_abstract_compiler__AbstractCompiler___header
].val
; /* _header on <self:SeparateCompiler> */
2245 if (unlikely(var506
== NULL
)) {
2246 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _header");
2247 PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 472);
2251 RET_LABEL505
:(void)0;
2255 var508
= varonce507
;
2257 var509
= "const struct type *type;";
2259 var511
= string__NativeString__to_s_with_length(var509
, var510
);
2261 varonce507
= var508
;
2264 abstract_compiler__CodeWriter__add_decl(var504
, var508
); /* Direct call abstract_compiler#CodeWriter#add_decl on <var504:CodeWriter>*/
2267 { /* Inline abstract_compiler#AbstractCompiler#header (self) on <self:SeparateCompiler> */
2268 var514
= self
->attrs
[COLOR_abstract_compiler__AbstractCompiler___header
].val
; /* _header on <self:SeparateCompiler> */
2269 if (unlikely(var514
== NULL
)) {
2270 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _header");
2271 PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 472);
2275 RET_LABEL513
:(void)0;
2279 var516
= varonce515
;
2281 var517
= "const struct class *class;";
2283 var519
= string__NativeString__to_s_with_length(var517
, var518
);
2285 varonce515
= var516
;
2288 abstract_compiler__CodeWriter__add_decl(var512
, var516
); /* Direct call abstract_compiler#CodeWriter#add_decl on <var512:CodeWriter>*/
2291 { /* Inline abstract_compiler#AbstractCompiler#header (self) on <self:SeparateCompiler> */
2292 var522
= self
->attrs
[COLOR_abstract_compiler__AbstractCompiler___header
].val
; /* _header on <self:SeparateCompiler> */
2293 if (unlikely(var522
== NULL
)) {
2294 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _header");
2295 PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 472);
2299 RET_LABEL521
:(void)0;
2303 var524
= varonce523
;
2305 var525
= "int length;";
2307 var527
= string__NativeString__to_s_with_length(var525
, var526
);
2309 varonce523
= var524
;
2312 abstract_compiler__CodeWriter__add_decl(var520
, var524
); /* Direct call abstract_compiler#CodeWriter#add_decl on <var520:CodeWriter>*/
2315 { /* Inline abstract_compiler#AbstractCompiler#header (self) on <self:SeparateCompiler> */
2316 var530
= self
->attrs
[COLOR_abstract_compiler__AbstractCompiler___header
].val
; /* _header on <self:SeparateCompiler> */
2317 if (unlikely(var530
== NULL
)) {
2318 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _header");
2319 PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 472);
2323 RET_LABEL529
:(void)0;
2327 var532
= varonce531
;
2329 var533
= "val* values[0];";
2331 var535
= string__NativeString__to_s_with_length(var533
, var534
);
2333 varonce531
= var532
;
2336 abstract_compiler__CodeWriter__add_decl(var528
, var532
); /* Direct call abstract_compiler#CodeWriter#add_decl on <var528:CodeWriter>*/
2339 { /* Inline abstract_compiler#AbstractCompiler#header (self) on <self:SeparateCompiler> */
2340 var538
= self
->attrs
[COLOR_abstract_compiler__AbstractCompiler___header
].val
; /* _header on <self:SeparateCompiler> */
2341 if (unlikely(var538
== NULL
)) {
2342 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _header");
2343 PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 472);
2347 RET_LABEL537
:(void)0;
2351 var540
= varonce539
;
2355 var543
= string__NativeString__to_s_with_length(var541
, var542
);
2357 varonce539
= var540
;
2360 abstract_compiler__CodeWriter__add_decl(var536
, var540
); /* Direct call abstract_compiler#CodeWriter#add_decl on <var536:CodeWriter>*/
2363 var545
= varonce544
;
2367 var548
= string__NativeString__to_s_with_length(var546
, var547
);
2369 varonce544
= var545
;
2371 var549
= NEW_array__Array(&type_array__Arraykernel__Object
);
2372 { /* var549 = array_instance Array[Object] */
2374 var551
= NEW_array__NativeArray(var550
, &type_array__NativeArraykernel__Object
);
2375 ((struct instance_array__NativeArray
*)var551
)->values
[0] = (val
*) var545
;
2376 ((struct instance_array__NativeArray
*)var551
)->values
[1] = (val
*) var_c_name
;
2378 ((void (*)(val
*, val
*, long))(var549
->class->vft
[COLOR_array__Array__with_native
]))(var549
, var551
, var550
) /* with_native on <var549:Array[Object]>*/;
2382 var552
= ((val
* (*)(val
*))(var549
->class->vft
[COLOR_string__Object__to_s
]))(var549
) /* to_s on <var549:Array[Object]>*/;
2385 var553
= abstract_compiler__MClassType__ctype(var_mtype
);
2388 var555
= varonce554
;
2392 var558
= string__NativeString__to_s_with_length(var556
, var557
);
2394 varonce554
= var555
;
2397 var560
= varonce559
;
2399 var561
= "(int length, const struct type* type);";
2401 var563
= string__NativeString__to_s_with_length(var561
, var562
);
2403 varonce559
= var560
;
2405 var564
= NEW_array__Array(&type_array__Arraykernel__Object
);
2406 { /* var564 = array_instance Array[Object] */
2408 var566
= NEW_array__NativeArray(var565
, &type_array__NativeArraykernel__Object
);
2409 ((struct instance_array__NativeArray
*)var566
)->values
[0] = (val
*) var553
;
2410 ((struct instance_array__NativeArray
*)var566
)->values
[1] = (val
*) var555
;
2411 ((struct instance_array__NativeArray
*)var566
)->values
[2] = (val
*) var_c_name
;
2412 ((struct instance_array__NativeArray
*)var566
)->values
[3] = (val
*) var560
;
2414 ((void (*)(val
*, val
*, long))(var564
->class->vft
[COLOR_array__Array__with_native
]))(var564
, var566
, var565
) /* with_native on <var564:Array[Object]>*/;
2418 var567
= ((val
* (*)(val
*))(var564
->class->vft
[COLOR_string__Object__to_s
]))(var564
) /* to_s on <var564:Array[Object]>*/;
2421 abstract_compiler__AbstractCompiler__provide_declaration(self
, var552
, var567
); /* Direct call abstract_compiler#AbstractCompiler#provide_declaration on <self:SeparateCompiler>*/
2424 var569
= varonce568
;
2426 var570
= "/* allocate ";
2428 var572
= string__NativeString__to_s_with_length(var570
, var571
);
2430 varonce568
= var569
;
2433 var574
= varonce573
;
2437 var577
= string__NativeString__to_s_with_length(var575
, var576
);
2439 varonce573
= var574
;
2441 var578
= NEW_array__Array(&type_array__Arraykernel__Object
);
2442 { /* var578 = array_instance Array[Object] */
2444 var580
= NEW_array__NativeArray(var579
, &type_array__NativeArraykernel__Object
);
2445 ((struct instance_array__NativeArray
*)var580
)->values
[0] = (val
*) var569
;
2446 ((struct instance_array__NativeArray
*)var580
)->values
[1] = (val
*) var_mtype
;
2447 ((struct instance_array__NativeArray
*)var580
)->values
[2] = (val
*) var574
;
2449 ((void (*)(val
*, val
*, long))(var578
->class->vft
[COLOR_array__Array__with_native
]))(var578
, var580
, var579
) /* with_native on <var578:Array[Object]>*/;
2453 var581
= ((val
* (*)(val
*))(var578
->class->vft
[COLOR_string__Object__to_s
]))(var578
) /* to_s on <var578:Array[Object]>*/;
2456 abstract_compiler__AbstractCompilerVisitor__add_decl(var_v
, var581
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:SeparateCompilerVisitor>*/
2459 var582
= abstract_compiler__MClassType__ctype(var_mtype
);
2462 var584
= varonce583
;
2466 var587
= string__NativeString__to_s_with_length(var585
, var586
);
2468 varonce583
= var584
;
2471 var589
= varonce588
;
2473 var590
= "(int length, const struct type* type) {";
2475 var592
= string__NativeString__to_s_with_length(var590
, var591
);
2477 varonce588
= var589
;
2479 var593
= NEW_array__Array(&type_array__Arraykernel__Object
);
2480 { /* var593 = array_instance Array[Object] */
2482 var595
= NEW_array__NativeArray(var594
, &type_array__NativeArraykernel__Object
);
2483 ((struct instance_array__NativeArray
*)var595
)->values
[0] = (val
*) var582
;
2484 ((struct instance_array__NativeArray
*)var595
)->values
[1] = (val
*) var584
;
2485 ((struct instance_array__NativeArray
*)var595
)->values
[2] = (val
*) var_c_name
;
2486 ((struct instance_array__NativeArray
*)var595
)->values
[3] = (val
*) var589
;
2488 ((void (*)(val
*, val
*, long))(var593
->class->vft
[COLOR_array__Array__with_native
]))(var593
, var595
, var594
) /* with_native on <var593:Array[Object]>*/;
2492 var596
= ((val
* (*)(val
*))(var593
->class->vft
[COLOR_string__Object__to_s
]))(var593
) /* to_s on <var593:Array[Object]>*/;
2495 abstract_compiler__AbstractCompilerVisitor__add_decl(var_v
, var596
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:SeparateCompilerVisitor>*/
2498 var598
= varonce597
;
2502 var601
= string__NativeString__to_s_with_length(var599
, var600
);
2504 varonce597
= var598
;
2507 var602
= abstract_compiler__AbstractCompilerVisitor__get_name(var_v
, var598
);
2511 var604
= varonce603
;
2513 var605
= "struct instance_";
2515 var607
= string__NativeString__to_s_with_length(var605
, var606
);
2517 varonce603
= var604
;
2520 var609
= varonce608
;
2524 var612
= string__NativeString__to_s_with_length(var610
, var611
);
2526 varonce608
= var609
;
2529 var614
= varonce613
;
2533 var617
= string__NativeString__to_s_with_length(var615
, var616
);
2535 varonce613
= var614
;
2537 var618
= NEW_array__Array(&type_array__Arraykernel__Object
);
2538 { /* var618 = array_instance Array[Object] */
2540 var620
= NEW_array__NativeArray(var619
, &type_array__NativeArraykernel__Object
);
2541 ((struct instance_array__NativeArray
*)var620
)->values
[0] = (val
*) var604
;
2542 ((struct instance_array__NativeArray
*)var620
)->values
[1] = (val
*) var_c_instance_name
;
2543 ((struct instance_array__NativeArray
*)var620
)->values
[2] = (val
*) var609
;
2544 ((struct instance_array__NativeArray
*)var620
)->values
[3] = (val
*) var_res
;
2545 ((struct instance_array__NativeArray
*)var620
)->values
[4] = (val
*) var614
;
2547 ((void (*)(val
*, val
*, long))(var618
->class->vft
[COLOR_array__Array__with_native
]))(var618
, var620
, var619
) /* with_native on <var618:Array[Object]>*/;
2551 var621
= ((val
* (*)(val
*))(var618
->class->vft
[COLOR_string__Object__to_s
]))(var618
) /* to_s on <var618:Array[Object]>*/;
2554 abstract_compiler__AbstractCompilerVisitor__add_decl(var_v
, var621
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:SeparateCompilerVisitor>*/
2557 { /* Inline model#MClassType#arguments (var_mtype) on <var_mtype:MClassType> */
2558 var624
= var_mtype
->attrs
[COLOR_model__MClassType___arguments
].val
; /* _arguments on <var_mtype:MClassType> */
2559 if (unlikely(var624
== NULL
)) {
2560 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _arguments");
2561 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 979);
2565 RET_LABEL623
:(void)0;
2569 var625
= abstract_collection__SequenceRead__first(var622
);
2571 var_mtype_elt
= var625
;
2573 var627
= varonce626
;
2575 var628
= " = nit_alloc(sizeof(struct instance_";
2577 var630
= string__NativeString__to_s_with_length(var628
, var629
);
2579 varonce626
= var627
;
2582 var632
= varonce631
;
2584 var633
= ") + length*sizeof(";
2586 var635
= string__NativeString__to_s_with_length(var633
, var634
);
2588 varonce631
= var632
;
2591 var636
= ((val
* (*)(val
*))(var_mtype_elt
->class->vft
[COLOR_abstract_compiler__MType__ctype
]))(var_mtype_elt
) /* ctype on <var_mtype_elt:MType>*/;
2594 var638
= varonce637
;
2598 var641
= string__NativeString__to_s_with_length(var639
, var640
);
2600 varonce637
= var638
;
2602 var642
= NEW_array__Array(&type_array__Arraykernel__Object
);
2603 { /* var642 = array_instance Array[Object] */
2605 var644
= NEW_array__NativeArray(var643
, &type_array__NativeArraykernel__Object
);
2606 ((struct instance_array__NativeArray
*)var644
)->values
[0] = (val
*) var_res
;
2607 ((struct instance_array__NativeArray
*)var644
)->values
[1] = (val
*) var627
;
2608 ((struct instance_array__NativeArray
*)var644
)->values
[2] = (val
*) var_c_instance_name
;
2609 ((struct instance_array__NativeArray
*)var644
)->values
[3] = (val
*) var632
;
2610 ((struct instance_array__NativeArray
*)var644
)->values
[4] = (val
*) var636
;
2611 ((struct instance_array__NativeArray
*)var644
)->values
[5] = (val
*) var638
;
2613 ((void (*)(val
*, val
*, long))(var642
->class->vft
[COLOR_array__Array__with_native
]))(var642
, var644
, var643
) /* with_native on <var642:Array[Object]>*/;
2617 var645
= ((val
* (*)(val
*))(var642
->class->vft
[COLOR_string__Object__to_s
]))(var642
) /* to_s on <var642:Array[Object]>*/;
2620 abstract_compiler__AbstractCompilerVisitor__add(var_v
, var645
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <var_v:SeparateCompilerVisitor>*/
2623 var647
= varonce646
;
2625 var648
= "->type = type;";
2627 var650
= string__NativeString__to_s_with_length(var648
, var649
);
2629 varonce646
= var647
;
2631 var651
= NEW_array__Array(&type_array__Arraykernel__Object
);
2632 { /* var651 = array_instance Array[Object] */
2634 var653
= NEW_array__NativeArray(var652
, &type_array__NativeArraykernel__Object
);
2635 ((struct instance_array__NativeArray
*)var653
)->values
[0] = (val
*) var_res
;
2636 ((struct instance_array__NativeArray
*)var653
)->values
[1] = (val
*) var647
;
2638 ((void (*)(val
*, val
*, long))(var651
->class->vft
[COLOR_array__Array__with_native
]))(var651
, var653
, var652
) /* with_native on <var651:Array[Object]>*/;
2642 var654
= ((val
* (*)(val
*))(var651
->class->vft
[COLOR_string__Object__to_s
]))(var651
) /* to_s on <var651:Array[Object]>*/;
2645 abstract_compiler__AbstractCompilerVisitor__add(var_v
, var654
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <var_v:SeparateCompilerVisitor>*/
2648 var656
= varonce655
;
2652 var659
= string__NativeString__to_s_with_length(var657
, var658
);
2654 varonce655
= var656
;
2657 separate_compiler__SeparateCompiler__hardening_live_type(self
, var_v
, var656
); /* Direct call separate_compiler#SeparateCompiler#hardening_live_type on <self:SeparateCompiler>*/
2660 var661
= varonce660
;
2664 var664
= string__NativeString__to_s_with_length(var662
, var663
);
2666 varonce660
= var661
;
2668 var665
= NEW_array__Array(&type_array__Arraykernel__Object
);
2669 { /* var665 = array_instance Array[Object] */
2671 var667
= NEW_array__NativeArray(var666
, &type_array__NativeArraykernel__Object
);
2672 ((struct instance_array__NativeArray
*)var667
)->values
[0] = (val
*) var661
;
2673 ((struct instance_array__NativeArray
*)var667
)->values
[1] = (val
*) var_c_name
;
2675 ((void (*)(val
*, val
*, long))(var665
->class->vft
[COLOR_array__Array__with_native
]))(var665
, var667
, var666
) /* with_native on <var665:Array[Object]>*/;
2679 var668
= ((val
* (*)(val
*))(var665
->class->vft
[COLOR_string__Object__to_s
]))(var665
) /* to_s on <var665:Array[Object]>*/;
2682 abstract_compiler__AbstractCompilerVisitor__require_declaration(var_v
, var668
); /* Direct call abstract_compiler#AbstractCompilerVisitor#require_declaration on <var_v:SeparateCompilerVisitor>*/
2685 var670
= varonce669
;
2687 var671
= "->class = &class_";
2689 var673
= string__NativeString__to_s_with_length(var671
, var672
);
2691 varonce669
= var670
;
2694 var675
= varonce674
;
2698 var678
= string__NativeString__to_s_with_length(var676
, var677
);
2700 varonce674
= var675
;
2702 var679
= NEW_array__Array(&type_array__Arraykernel__Object
);
2703 { /* var679 = array_instance Array[Object] */
2705 var681
= NEW_array__NativeArray(var680
, &type_array__NativeArraykernel__Object
);
2706 ((struct instance_array__NativeArray
*)var681
)->values
[0] = (val
*) var_res
;
2707 ((struct instance_array__NativeArray
*)var681
)->values
[1] = (val
*) var670
;
2708 ((struct instance_array__NativeArray
*)var681
)->values
[2] = (val
*) var_c_name
;
2709 ((struct instance_array__NativeArray
*)var681
)->values
[3] = (val
*) var675
;
2711 ((void (*)(val
*, val
*, long))(var679
->class->vft
[COLOR_array__Array__with_native
]))(var679
, var681
, var680
) /* with_native on <var679:Array[Object]>*/;
2715 var682
= ((val
* (*)(val
*))(var679
->class->vft
[COLOR_string__Object__to_s
]))(var679
) /* to_s on <var679:Array[Object]>*/;
2718 abstract_compiler__AbstractCompilerVisitor__add(var_v
, var682
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <var_v:SeparateCompilerVisitor>*/
2721 var684
= varonce683
;
2723 var685
= "->length = length;";
2725 var687
= string__NativeString__to_s_with_length(var685
, var686
);
2727 varonce683
= var684
;
2729 var688
= NEW_array__Array(&type_array__Arraykernel__Object
);
2730 { /* var688 = array_instance Array[Object] */
2732 var690
= NEW_array__NativeArray(var689
, &type_array__NativeArraykernel__Object
);
2733 ((struct instance_array__NativeArray
*)var690
)->values
[0] = (val
*) var_res
;
2734 ((struct instance_array__NativeArray
*)var690
)->values
[1] = (val
*) var684
;
2736 ((void (*)(val
*, val
*, long))(var688
->class->vft
[COLOR_array__Array__with_native
]))(var688
, var690
, var689
) /* with_native on <var688:Array[Object]>*/;
2740 var691
= ((val
* (*)(val
*))(var688
->class->vft
[COLOR_string__Object__to_s
]))(var688
) /* to_s on <var688:Array[Object]>*/;
2743 abstract_compiler__AbstractCompilerVisitor__add(var_v
, var691
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <var_v:SeparateCompilerVisitor>*/
2746 var693
= varonce692
;
2748 var694
= "return (val*)";
2750 var696
= string__NativeString__to_s_with_length(var694
, var695
);
2752 varonce692
= var693
;
2755 var698
= varonce697
;
2759 var701
= string__NativeString__to_s_with_length(var699
, var700
);
2761 varonce697
= var698
;
2763 var702
= NEW_array__Array(&type_array__Arraykernel__Object
);
2764 { /* var702 = array_instance Array[Object] */
2766 var704
= NEW_array__NativeArray(var703
, &type_array__NativeArraykernel__Object
);
2767 ((struct instance_array__NativeArray
*)var704
)->values
[0] = (val
*) var693
;
2768 ((struct instance_array__NativeArray
*)var704
)->values
[1] = (val
*) var_res
;
2769 ((struct instance_array__NativeArray
*)var704
)->values
[2] = (val
*) var698
;
2771 ((void (*)(val
*, val
*, long))(var702
->class->vft
[COLOR_array__Array__with_native
]))(var702
, var704
, var703
) /* with_native on <var702:Array[Object]>*/;
2775 var705
= ((val
* (*)(val
*))(var702
->class->vft
[COLOR_string__Object__to_s
]))(var702
) /* to_s on <var702:Array[Object]>*/;
2778 abstract_compiler__AbstractCompilerVisitor__add(var_v
, var705
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <var_v:SeparateCompilerVisitor>*/
2781 var707
= varonce706
;
2785 var710
= string__NativeString__to_s_with_length(var708
, var709
);
2787 varonce706
= var707
;
2790 abstract_compiler__AbstractCompilerVisitor__add(var_v
, var707
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <var_v:SeparateCompilerVisitor>*/
2797 var712
= varonce711
;
2801 var715
= string__NativeString__to_s_with_length(var713
, var714
);
2803 varonce711
= var712
;
2805 var716
= NEW_array__Array(&type_array__Arraykernel__Object
);
2806 { /* var716 = array_instance Array[Object] */
2808 var718
= NEW_array__NativeArray(var717
, &type_array__NativeArraykernel__Object
);
2809 ((struct instance_array__NativeArray
*)var718
)->values
[0] = (val
*) var712
;
2810 ((struct instance_array__NativeArray
*)var718
)->values
[1] = (val
*) var_c_name
;
2812 ((void (*)(val
*, val
*, long))(var716
->class->vft
[COLOR_array__Array__with_native
]))(var716
, var718
, var717
) /* with_native on <var716:Array[Object]>*/;
2816 var719
= ((val
* (*)(val
*))(var716
->class->vft
[COLOR_string__Object__to_s
]))(var716
) /* to_s on <var716:Array[Object]>*/;
2819 var720
= abstract_compiler__MClassType__ctype(var_mtype
);
2822 var722
= varonce721
;
2826 var725
= string__NativeString__to_s_with_length(var723
, var724
);
2828 varonce721
= var722
;
2831 var727
= varonce726
;
2833 var728
= "(const struct type* type);";
2835 var730
= string__NativeString__to_s_with_length(var728
, var729
);
2837 varonce726
= var727
;
2839 var731
= NEW_array__Array(&type_array__Arraykernel__Object
);
2840 { /* var731 = array_instance Array[Object] */
2842 var733
= NEW_array__NativeArray(var732
, &type_array__NativeArraykernel__Object
);
2843 ((struct instance_array__NativeArray
*)var733
)->values
[0] = (val
*) var720
;
2844 ((struct instance_array__NativeArray
*)var733
)->values
[1] = (val
*) var722
;
2845 ((struct instance_array__NativeArray
*)var733
)->values
[2] = (val
*) var_c_name
;
2846 ((struct instance_array__NativeArray
*)var733
)->values
[3] = (val
*) var727
;
2848 ((void (*)(val
*, val
*, long))(var731
->class->vft
[COLOR_array__Array__with_native
]))(var731
, var733
, var732
) /* with_native on <var731:Array[Object]>*/;
2852 var734
= ((val
* (*)(val
*))(var731
->class->vft
[COLOR_string__Object__to_s
]))(var731
) /* to_s on <var731:Array[Object]>*/;
2855 abstract_compiler__AbstractCompiler__provide_declaration(self
, var719
, var734
); /* Direct call abstract_compiler#AbstractCompiler#provide_declaration on <self:SeparateCompiler>*/
2858 var736
= varonce735
;
2860 var737
= "/* allocate ";
2862 var739
= string__NativeString__to_s_with_length(var737
, var738
);
2864 varonce735
= var736
;
2867 var741
= varonce740
;
2871 var744
= string__NativeString__to_s_with_length(var742
, var743
);
2873 varonce740
= var741
;
2875 var745
= NEW_array__Array(&type_array__Arraykernel__Object
);
2876 { /* var745 = array_instance Array[Object] */
2878 var747
= NEW_array__NativeArray(var746
, &type_array__NativeArraykernel__Object
);
2879 ((struct instance_array__NativeArray
*)var747
)->values
[0] = (val
*) var736
;
2880 ((struct instance_array__NativeArray
*)var747
)->values
[1] = (val
*) var_mtype
;
2881 ((struct instance_array__NativeArray
*)var747
)->values
[2] = (val
*) var741
;
2883 ((void (*)(val
*, val
*, long))(var745
->class->vft
[COLOR_array__Array__with_native
]))(var745
, var747
, var746
) /* with_native on <var745:Array[Object]>*/;
2887 var748
= ((val
* (*)(val
*))(var745
->class->vft
[COLOR_string__Object__to_s
]))(var745
) /* to_s on <var745:Array[Object]>*/;
2890 abstract_compiler__AbstractCompilerVisitor__add_decl(var_v
, var748
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:SeparateCompilerVisitor>*/
2893 var749
= abstract_compiler__MClassType__ctype(var_mtype
);
2896 var751
= varonce750
;
2900 var754
= string__NativeString__to_s_with_length(var752
, var753
);
2902 varonce750
= var751
;
2905 var756
= varonce755
;
2907 var757
= "(const struct type* type) {";
2909 var759
= string__NativeString__to_s_with_length(var757
, var758
);
2911 varonce755
= var756
;
2913 var760
= NEW_array__Array(&type_array__Arraykernel__Object
);
2914 { /* var760 = array_instance Array[Object] */
2916 var762
= NEW_array__NativeArray(var761
, &type_array__NativeArraykernel__Object
);
2917 ((struct instance_array__NativeArray
*)var762
)->values
[0] = (val
*) var749
;
2918 ((struct instance_array__NativeArray
*)var762
)->values
[1] = (val
*) var751
;
2919 ((struct instance_array__NativeArray
*)var762
)->values
[2] = (val
*) var_c_name
;
2920 ((struct instance_array__NativeArray
*)var762
)->values
[3] = (val
*) var756
;
2922 ((void (*)(val
*, val
*, long))(var760
->class->vft
[COLOR_array__Array__with_native
]))(var760
, var762
, var761
) /* with_native on <var760:Array[Object]>*/;
2926 var763
= ((val
* (*)(val
*))(var760
->class->vft
[COLOR_string__Object__to_s
]))(var760
) /* to_s on <var760:Array[Object]>*/;
2929 abstract_compiler__AbstractCompilerVisitor__add_decl(var_v
, var763
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:SeparateCompilerVisitor>*/
2933 var765
= varonce764
;
2935 var766
= " is DEAD";
2937 var768
= string__NativeString__to_s_with_length(var766
, var767
);
2939 varonce764
= var765
;
2941 var769
= NEW_array__Array(&type_array__Arraykernel__Object
);
2942 { /* var769 = array_instance Array[Object] */
2944 var771
= NEW_array__NativeArray(var770
, &type_array__NativeArraykernel__Object
);
2945 ((struct instance_array__NativeArray
*)var771
)->values
[0] = (val
*) var_mclass
;
2946 ((struct instance_array__NativeArray
*)var771
)->values
[1] = (val
*) var765
;
2948 ((void (*)(val
*, val
*, long))(var769
->class->vft
[COLOR_array__Array__with_native
]))(var769
, var771
, var770
) /* with_native on <var769:Array[Object]>*/;
2952 var772
= ((val
* (*)(val
*))(var769
->class->vft
[COLOR_string__Object__to_s
]))(var769
) /* to_s on <var769:Array[Object]>*/;
2955 abstract_compiler__AbstractCompilerVisitor__add_abort(var_v
, var772
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_abort on <var_v:SeparateCompilerVisitor>*/
2959 var774
= varonce773
;
2963 var777
= string__NativeString__to_s_with_length(var775
, var776
);
2965 varonce773
= var774
;
2968 var778
= abstract_compiler__AbstractCompilerVisitor__new_named_var(var_v
, var_mtype
, var774
);
2970 var_res779
= var778
;
2973 { /* Inline abstract_compiler#RuntimeVariable#is_exact= (var_res779,var780) on <var_res779:RuntimeVariable> */
2974 var_res779
->attrs
[COLOR_abstract_compiler__RuntimeVariable___is_exact
].s
= var780
; /* _is_exact on <var_res779:RuntimeVariable> */
2975 RET_LABEL781
:(void)0;
2979 var783
= varonce782
;
2981 var784
= " = nit_alloc(sizeof(struct instance) + ";
2983 var786
= string__NativeString__to_s_with_length(var784
, var785
);
2985 varonce782
= var783
;
2988 var787
= array__AbstractArrayRead__length(var_attrs
);
2991 var789
= varonce788
;
2993 var790
= "*sizeof(nitattribute_t));";
2995 var792
= string__NativeString__to_s_with_length(var790
, var791
);
2997 varonce788
= var789
;
2999 var793
= NEW_array__Array(&type_array__Arraykernel__Object
);
3000 { /* var793 = array_instance Array[Object] */
3002 var795
= NEW_array__NativeArray(var794
, &type_array__NativeArraykernel__Object
);
3003 ((struct instance_array__NativeArray
*)var795
)->values
[0] = (val
*) var_res779
;
3004 ((struct instance_array__NativeArray
*)var795
)->values
[1] = (val
*) var783
;
3005 var796
= BOX_kernel__Int(var787
); /* autobox from Int to Object */
3006 ((struct instance_array__NativeArray
*)var795
)->values
[2] = (val
*) var796
;
3007 ((struct instance_array__NativeArray
*)var795
)->values
[3] = (val
*) var789
;
3009 ((void (*)(val
*, val
*, long))(var793
->class->vft
[COLOR_array__Array__with_native
]))(var793
, var795
, var794
) /* with_native on <var793:Array[Object]>*/;
3013 var797
= ((val
* (*)(val
*))(var793
->class->vft
[COLOR_string__Object__to_s
]))(var793
) /* to_s on <var793:Array[Object]>*/;
3016 abstract_compiler__AbstractCompilerVisitor__add(var_v
, var797
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <var_v:SeparateCompilerVisitor>*/
3019 var799
= varonce798
;
3021 var800
= "->type = type;";
3023 var802
= string__NativeString__to_s_with_length(var800
, var801
);
3025 varonce798
= var799
;
3027 var803
= NEW_array__Array(&type_array__Arraykernel__Object
);
3028 { /* var803 = array_instance Array[Object] */
3030 var805
= NEW_array__NativeArray(var804
, &type_array__NativeArraykernel__Object
);
3031 ((struct instance_array__NativeArray
*)var805
)->values
[0] = (val
*) var_res779
;
3032 ((struct instance_array__NativeArray
*)var805
)->values
[1] = (val
*) var799
;
3034 ((void (*)(val
*, val
*, long))(var803
->class->vft
[COLOR_array__Array__with_native
]))(var803
, var805
, var804
) /* with_native on <var803:Array[Object]>*/;
3038 var806
= ((val
* (*)(val
*))(var803
->class->vft
[COLOR_string__Object__to_s
]))(var803
) /* to_s on <var803:Array[Object]>*/;
3041 abstract_compiler__AbstractCompilerVisitor__add(var_v
, var806
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <var_v:SeparateCompilerVisitor>*/
3044 var808
= varonce807
;
3048 var811
= string__NativeString__to_s_with_length(var809
, var810
);
3050 varonce807
= var808
;
3053 separate_compiler__SeparateCompiler__hardening_live_type(self
, var_v
, var808
); /* Direct call separate_compiler#SeparateCompiler#hardening_live_type on <self:SeparateCompiler>*/
3056 var813
= varonce812
;
3060 var816
= string__NativeString__to_s_with_length(var814
, var815
);
3062 varonce812
= var813
;
3064 var817
= NEW_array__Array(&type_array__Arraykernel__Object
);
3065 { /* var817 = array_instance Array[Object] */
3067 var819
= NEW_array__NativeArray(var818
, &type_array__NativeArraykernel__Object
);
3068 ((struct instance_array__NativeArray
*)var819
)->values
[0] = (val
*) var813
;
3069 ((struct instance_array__NativeArray
*)var819
)->values
[1] = (val
*) var_c_name
;
3071 ((void (*)(val
*, val
*, long))(var817
->class->vft
[COLOR_array__Array__with_native
]))(var817
, var819
, var818
) /* with_native on <var817:Array[Object]>*/;
3075 var820
= ((val
* (*)(val
*))(var817
->class->vft
[COLOR_string__Object__to_s
]))(var817
) /* to_s on <var817:Array[Object]>*/;
3078 abstract_compiler__AbstractCompilerVisitor__require_declaration(var_v
, var820
); /* Direct call abstract_compiler#AbstractCompilerVisitor#require_declaration on <var_v:SeparateCompilerVisitor>*/
3081 var822
= varonce821
;
3083 var823
= "->class = &class_";
3085 var825
= string__NativeString__to_s_with_length(var823
, var824
);
3087 varonce821
= var822
;
3090 var827
= varonce826
;
3094 var830
= string__NativeString__to_s_with_length(var828
, var829
);
3096 varonce826
= var827
;
3098 var831
= NEW_array__Array(&type_array__Arraykernel__Object
);
3099 { /* var831 = array_instance Array[Object] */
3101 var833
= NEW_array__NativeArray(var832
, &type_array__NativeArraykernel__Object
);
3102 ((struct instance_array__NativeArray
*)var833
)->values
[0] = (val
*) var_res779
;
3103 ((struct instance_array__NativeArray
*)var833
)->values
[1] = (val
*) var822
;
3104 ((struct instance_array__NativeArray
*)var833
)->values
[2] = (val
*) var_c_name
;
3105 ((struct instance_array__NativeArray
*)var833
)->values
[3] = (val
*) var827
;
3107 ((void (*)(val
*, val
*, long))(var831
->class->vft
[COLOR_array__Array__with_native
]))(var831
, var833
, var832
) /* with_native on <var831:Array[Object]>*/;
3111 var834
= ((val
* (*)(val
*))(var831
->class->vft
[COLOR_string__Object__to_s
]))(var831
) /* to_s on <var831:Array[Object]>*/;
3114 abstract_compiler__AbstractCompilerVisitor__add(var_v
, var834
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <var_v:SeparateCompilerVisitor>*/
3117 abstract_compiler__AbstractCompiler__generate_init_attr(self
, var_v
, var_res779
, var_mtype
); /* Direct call abstract_compiler#AbstractCompiler#generate_init_attr on <self:SeparateCompiler>*/
3120 var836
= varonce835
;
3124 var839
= string__NativeString__to_s_with_length(var837
, var838
);
3126 varonce835
= var836
;
3129 var841
= varonce840
;
3133 var844
= string__NativeString__to_s_with_length(var842
, var843
);
3135 varonce840
= var841
;
3137 var845
= NEW_array__Array(&type_array__Arraykernel__Object
);
3138 { /* var845 = array_instance Array[Object] */
3140 var847
= NEW_array__NativeArray(var846
, &type_array__NativeArraykernel__Object
);
3141 ((struct instance_array__NativeArray
*)var847
)->values
[0] = (val
*) var836
;
3142 ((struct instance_array__NativeArray
*)var847
)->values
[1] = (val
*) var_res779
;
3143 ((struct instance_array__NativeArray
*)var847
)->values
[2] = (val
*) var841
;
3145 ((void (*)(val
*, val
*, long))(var845
->class->vft
[COLOR_array__Array__with_native
]))(var845
, var847
, var846
) /* with_native on <var845:Array[Object]>*/;
3149 var848
= ((val
* (*)(val
*))(var845
->class->vft
[COLOR_string__Object__to_s
]))(var845
) /* to_s on <var845:Array[Object]>*/;
3152 abstract_compiler__AbstractCompilerVisitor__add(var_v
, var848
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <var_v:SeparateCompilerVisitor>*/
3156 var850
= varonce849
;
3160 var853
= string__NativeString__to_s_with_length(var851
, var852
);
3162 varonce849
= var850
;
3165 abstract_compiler__AbstractCompilerVisitor__add(var_v
, var850
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <var_v:SeparateCompilerVisitor>*/
3169 /* method separate_compiler#SeparateCompiler#compile_class_to_c for (self: Object, MClass) */
3170 void VIRTUAL_separate_compiler__SeparateCompiler__compile_class_to_c(val
* self
, val
* p0
) {
3171 separate_compiler__SeparateCompiler__compile_class_to_c(self
, p0
); /* Direct call separate_compiler#SeparateCompiler#compile_class_to_c on <self:Object(SeparateCompiler)>*/
3174 /* method separate_compiler#SeparateCompiler#hardening_live_type for (self: SeparateCompiler, SeparateCompilerVisitor, String) */
3175 void separate_compiler__SeparateCompiler__hardening_live_type(val
* self
, val
* p0
, val
* p1
) {
3176 short int var
/* : Bool */;
3179 const struct type
* type_struct
;
3180 const char* var_class_name
;
3181 val
* var_v
/* var v: SeparateCompilerVisitor */;
3182 val
* var_t
/* var t: String */;
3183 val
* var1
/* : AbstractCompiler */;
3184 val
* var3
/* : AbstractCompiler */;
3185 val
* var4
/* : ModelBuilder */;
3186 val
* var6
/* : ModelBuilder */;
3187 val
* var7
/* : ToolContext */;
3188 val
* var9
/* : ToolContext */;
3189 val
* var10
/* : OptionBool */;
3190 val
* var12
/* : OptionBool */;
3191 val
* var13
/* : nullable Object */;
3192 val
* var15
/* : nullable Object */;
3193 short int var16
/* : Bool */;
3194 short int var17
/* : Bool */;
3195 static val
* varonce
;
3196 val
* var18
/* : String */;
3197 char* var19
/* : NativeString */;
3198 long var20
/* : Int */;
3199 val
* var21
/* : FlatString */;
3200 static val
* varonce22
;
3201 val
* var23
/* : String */;
3202 char* var24
/* : NativeString */;
3203 long var25
/* : Int */;
3204 val
* var26
/* : FlatString */;
3205 val
* var27
/* : Array[Object] */;
3206 long var28
/* : Int */;
3207 val
* var29
/* : NativeArray[Object] */;
3208 val
* var30
/* : String */;
3209 static val
* varonce31
;
3210 val
* var32
/* : String */;
3211 char* var33
/* : NativeString */;
3212 long var34
/* : Int */;
3213 val
* var35
/* : FlatString */;
3214 static val
* varonce36
;
3215 val
* var37
/* : String */;
3216 char* var38
/* : NativeString */;
3217 long var39
/* : Int */;
3218 val
* var40
/* : FlatString */;
3219 static val
* varonce41
;
3220 val
* var42
/* : String */;
3221 char* var43
/* : NativeString */;
3222 long var44
/* : Int */;
3223 val
* var45
/* : FlatString */;
3224 static val
* varonce46
;
3225 val
* var47
/* : String */;
3226 char* var48
/* : NativeString */;
3227 long var49
/* : Int */;
3228 val
* var50
/* : FlatString */;
3229 val
* var51
/* : Array[Object] */;
3230 long var52
/* : Int */;
3231 val
* var53
/* : NativeArray[Object] */;
3232 val
* var54
/* : String */;
3233 static val
* varonce55
;
3234 val
* var56
/* : String */;
3235 char* var57
/* : NativeString */;
3236 long var58
/* : Int */;
3237 val
* var59
/* : FlatString */;
3238 static val
* varonce60
;
3239 val
* var61
/* : String */;
3240 char* var62
/* : NativeString */;
3241 long var63
/* : Int */;
3242 val
* var64
/* : FlatString */;
3243 val
* var65
/* : Array[Object] */;
3244 long var66
/* : Int */;
3245 val
* var67
/* : NativeArray[Object] */;
3246 val
* var68
/* : String */;
3247 static val
* varonce69
;
3248 val
* var70
/* : String */;
3249 char* var71
/* : NativeString */;
3250 long var72
/* : Int */;
3251 val
* var73
/* : FlatString */;
3252 static val
* varonce74
;
3253 val
* var75
/* : String */;
3254 char* var76
/* : NativeString */;
3255 long var77
/* : Int */;
3256 val
* var78
/* : FlatString */;
3257 /* Covariant cast for argument 0 (v) <p0:SeparateCompilerVisitor> isa VISITOR */
3258 /* <p0:SeparateCompilerVisitor> isa VISITOR */
3259 type_struct
= self
->type
->resolution_table
->types
[COLOR_abstract_compiler__AbstractCompiler_VTVISITOR
];
3260 cltype
= type_struct
->color
;
3261 idtype
= type_struct
->id
;
3262 if(cltype
>= p0
->type
->table_size
) {
3265 var
= p0
->type
->type_table
[cltype
] == idtype
;
3267 if (unlikely(!var
)) {
3268 var_class_name
= p0
== NULL ?
"null" : p0
->type
->name
;
3269 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "VISITOR", var_class_name
);
3270 PRINT_ERROR(" (%s:%d)\n", "src/separate_compiler.nit", 773);
3276 { /* Inline abstract_compiler#AbstractCompilerVisitor#compiler (var_v) on <var_v:SeparateCompilerVisitor> */
3277 var3
= var_v
->attrs
[COLOR_abstract_compiler__AbstractCompilerVisitor___compiler
].val
; /* _compiler on <var_v:SeparateCompilerVisitor> */
3278 if (unlikely(var3
== NULL
)) {
3279 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _compiler");
3280 PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 984);
3288 { /* Inline abstract_compiler#AbstractCompiler#modelbuilder (var1) on <var1:AbstractCompiler(SeparateCompiler)> */
3289 var6
= var1
->attrs
[COLOR_abstract_compiler__AbstractCompiler___modelbuilder
].val
; /* _modelbuilder on <var1:AbstractCompiler(SeparateCompiler)> */
3290 if (unlikely(var6
== NULL
)) {
3291 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
3292 PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 443);
3300 { /* Inline modelbuilder#ModelBuilder#toolcontext (var4) on <var4:ModelBuilder> */
3301 var9
= var4
->attrs
[COLOR_modelbuilder__ModelBuilder___toolcontext
].val
; /* _toolcontext on <var4:ModelBuilder> */
3302 if (unlikely(var9
== NULL
)) {
3303 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
3304 PRINT_ERROR(" (%s:%d)\n", "src/modelbuilder.nit", 101);
3312 { /* Inline abstract_compiler#ToolContext#opt_hardening (var7) on <var7:ToolContext> */
3313 var12
= var7
->attrs
[COLOR_abstract_compiler__ToolContext___opt_hardening
].val
; /* _opt_hardening on <var7:ToolContext> */
3314 if (unlikely(var12
== NULL
)) {
3315 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_hardening");
3316 PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 42);
3320 RET_LABEL11
:(void)0;
3324 { /* Inline opts#Option#value (var10) on <var10:OptionBool> */
3325 var15
= var10
->attrs
[COLOR_opts__Option___value
].val
; /* _value on <var10:OptionBool> */
3327 RET_LABEL14
:(void)0;
3330 var16
= ((struct instance_kernel__Bool
*)var13
)->value
; /* autounbox from nullable Object to Bool */;
3341 var21
= string__NativeString__to_s_with_length(var19
, var20
);
3348 var24
= " == NULL) {";
3350 var26
= string__NativeString__to_s_with_length(var24
, var25
);
3354 var27
= NEW_array__Array(&type_array__Arraykernel__Object
);
3355 { /* var27 = array_instance Array[Object] */
3357 var29
= NEW_array__NativeArray(var28
, &type_array__NativeArraykernel__Object
);
3358 ((struct instance_array__NativeArray
*)var29
)->values
[0] = (val
*) var18
;
3359 ((struct instance_array__NativeArray
*)var29
)->values
[1] = (val
*) var_t
;
3360 ((struct instance_array__NativeArray
*)var29
)->values
[2] = (val
*) var23
;
3362 ((void (*)(val
*, val
*, long))(var27
->class->vft
[COLOR_array__Array__with_native
]))(var27
, var29
, var28
) /* with_native on <var27:Array[Object]>*/;
3366 var30
= ((val
* (*)(val
*))(var27
->class->vft
[COLOR_string__Object__to_s
]))(var27
) /* to_s on <var27:Array[Object]>*/;
3369 abstract_compiler__AbstractCompilerVisitor__add(var_v
, var30
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <var_v:SeparateCompilerVisitor>*/
3374 var33
= "type null";
3376 var35
= string__NativeString__to_s_with_length(var33
, var34
);
3381 abstract_compiler__AbstractCompilerVisitor__add_abort(var_v
, var32
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_abort on <var_v:SeparateCompilerVisitor>*/
3388 var40
= string__NativeString__to_s_with_length(var38
, var39
);
3393 abstract_compiler__AbstractCompilerVisitor__add(var_v
, var37
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <var_v:SeparateCompilerVisitor>*/
3400 var45
= string__NativeString__to_s_with_length(var43
, var44
);
3407 var48
= "->table_size == 0) {";
3409 var50
= string__NativeString__to_s_with_length(var48
, var49
);
3413 var51
= NEW_array__Array(&type_array__Arraykernel__Object
);
3414 { /* var51 = array_instance Array[Object] */
3416 var53
= NEW_array__NativeArray(var52
, &type_array__NativeArraykernel__Object
);
3417 ((struct instance_array__NativeArray
*)var53
)->values
[0] = (val
*) var42
;
3418 ((struct instance_array__NativeArray
*)var53
)->values
[1] = (val
*) var_t
;
3419 ((struct instance_array__NativeArray
*)var53
)->values
[2] = (val
*) var47
;
3421 ((void (*)(val
*, val
*, long))(var51
->class->vft
[COLOR_array__Array__with_native
]))(var51
, var53
, var52
) /* with_native on <var51:Array[Object]>*/;
3425 var54
= ((val
* (*)(val
*))(var51
->class->vft
[COLOR_string__Object__to_s
]))(var51
) /* to_s on <var51:Array[Object]>*/;
3428 abstract_compiler__AbstractCompilerVisitor__add(var_v
, var54
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <var_v:SeparateCompilerVisitor>*/
3433 var57
= "PRINT_ERROR(\"Insantiation of a dead type: %s\\n\", ";
3435 var59
= string__NativeString__to_s_with_length(var57
, var58
);
3444 var64
= string__NativeString__to_s_with_length(var62
, var63
);
3448 var65
= NEW_array__Array(&type_array__Arraykernel__Object
);
3449 { /* var65 = array_instance Array[Object] */
3451 var67
= NEW_array__NativeArray(var66
, &type_array__NativeArraykernel__Object
);
3452 ((struct instance_array__NativeArray
*)var67
)->values
[0] = (val
*) var56
;
3453 ((struct instance_array__NativeArray
*)var67
)->values
[1] = (val
*) var_t
;
3454 ((struct instance_array__NativeArray
*)var67
)->values
[2] = (val
*) var61
;
3456 ((void (*)(val
*, val
*, long))(var65
->class->vft
[COLOR_array__Array__with_native
]))(var65
, var67
, var66
) /* with_native on <var65:Array[Object]>*/;
3460 var68
= ((val
* (*)(val
*))(var65
->class->vft
[COLOR_string__Object__to_s
]))(var65
) /* to_s on <var65:Array[Object]>*/;
3463 abstract_compiler__AbstractCompilerVisitor__add(var_v
, var68
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <var_v:SeparateCompilerVisitor>*/
3468 var71
= "type dead";
3470 var73
= string__NativeString__to_s_with_length(var71
, var72
);
3475 abstract_compiler__AbstractCompilerVisitor__add_abort(var_v
, var70
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_abort on <var_v:SeparateCompilerVisitor>*/
3482 var78
= string__NativeString__to_s_with_length(var76
, var77
);
3487 abstract_compiler__AbstractCompilerVisitor__add(var_v
, var75
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <var_v:SeparateCompilerVisitor>*/
3491 /* method separate_compiler#SeparateCompiler#hardening_live_type for (self: Object, SeparateCompilerVisitor, String) */
3492 void VIRTUAL_separate_compiler__SeparateCompiler__hardening_live_type(val
* self
, val
* p0
, val
* p1
) {
3493 separate_compiler__SeparateCompiler__hardening_live_type(self
, p0
, p1
); /* Direct call separate_compiler#SeparateCompiler#hardening_live_type on <self:Object(SeparateCompiler)>*/
3496 /* method separate_compiler#SeparateCompiler#new_visitor for (self: SeparateCompiler): SeparateCompilerVisitor */
3497 val
* separate_compiler__SeparateCompiler__new_visitor(val
* self
) {
3498 val
* var
/* : SeparateCompilerVisitor */;
3499 val
* var1
/* : SeparateCompilerVisitor */;
3500 short int var2
/* : Bool */;
3503 const struct type
* type_struct
;
3504 const char* var_class_name
;
3505 var1
= NEW_separate_compiler__SeparateCompilerVisitor(&type_separate_compiler__SeparateCompilerVisitor
);
3507 abstract_compiler__AbstractCompilerVisitor__init(var1
, self
); /* Direct call abstract_compiler#AbstractCompilerVisitor#init on <var1:SeparateCompilerVisitor>*/
3509 /* <var1:SeparateCompilerVisitor> isa VISITOR */
3510 type_struct
= self
->type
->resolution_table
->types
[COLOR_abstract_compiler__AbstractCompiler_VTVISITOR
];
3511 cltype
= type_struct
->color
;
3512 idtype
= type_struct
->id
;
3513 if(cltype
>= var1
->type
->table_size
) {
3516 var2
= var1
->type
->type_table
[cltype
] == idtype
;
3518 if (unlikely(!var2
)) {
3519 var_class_name
= var1
== NULL ?
"null" : var1
->type
->name
;
3520 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "VISITOR", var_class_name
);
3521 PRINT_ERROR(" (%s:%d)\n", "src/separate_compiler.nit", 786);
3529 /* method separate_compiler#SeparateCompiler#new_visitor for (self: Object): AbstractCompilerVisitor */
3530 val
* VIRTUAL_separate_compiler__SeparateCompiler__new_visitor(val
* self
) {
3531 val
* var
/* : AbstractCompilerVisitor */;
3532 val
* var1
/* : SeparateCompilerVisitor */;
3533 var1
= separate_compiler__SeparateCompiler__new_visitor(self
);
3538 /* method separate_compiler#SeparateCompiler#type_tables for (self: SeparateCompiler): Map[MType, Array[nullable MType]] */
3539 val
* separate_compiler__SeparateCompiler__type_tables(val
* self
) {
3540 val
* var
/* : Map[MType, Array[nullable MType]] */;
3541 val
* var1
/* : Map[MType, Array[nullable MType]] */;
3542 var1
= self
->attrs
[COLOR_separate_compiler__SeparateCompiler___type_tables
].val
; /* _type_tables on <self:SeparateCompiler> */
3543 if (unlikely(var1
== NULL
)) {
3544 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _type_tables");
3545 PRINT_ERROR(" (%s:%d)\n", "src/separate_compiler.nit", 790);
3552 /* method separate_compiler#SeparateCompiler#type_tables for (self: Object): Map[MType, Array[nullable MType]] */
3553 val
* VIRTUAL_separate_compiler__SeparateCompiler__type_tables(val
* self
) {
3554 val
* var
/* : Map[MType, Array[nullable MType]] */;
3555 val
* var1
/* : Map[MType, Array[nullable MType]] */;
3556 val
* var3
/* : Map[MType, Array[nullable MType]] */;
3557 { /* Inline separate_compiler#SeparateCompiler#type_tables (self) on <self:Object(SeparateCompiler)> */
3558 var3
= self
->attrs
[COLOR_separate_compiler__SeparateCompiler___type_tables
].val
; /* _type_tables on <self:Object(SeparateCompiler)> */
3559 if (unlikely(var3
== NULL
)) {
3560 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _type_tables");
3561 PRINT_ERROR(" (%s:%d)\n", "src/separate_compiler.nit", 790);
3571 /* method separate_compiler#SeparateCompiler#type_tables= for (self: SeparateCompiler, Map[MType, Array[nullable MType]]) */
3572 void separate_compiler__SeparateCompiler__type_tables_61d(val
* self
, val
* p0
) {
3573 self
->attrs
[COLOR_separate_compiler__SeparateCompiler___type_tables
].val
= p0
; /* _type_tables on <self:SeparateCompiler> */
3576 /* method separate_compiler#SeparateCompiler#type_tables= for (self: Object, Map[MType, Array[nullable MType]]) */
3577 void VIRTUAL_separate_compiler__SeparateCompiler__type_tables_61d(val
* self
, val
* p0
) {
3578 { /* Inline separate_compiler#SeparateCompiler#type_tables= (self,p0) on <self:Object(SeparateCompiler)> */
3579 self
->attrs
[COLOR_separate_compiler__SeparateCompiler___type_tables
].val
= p0
; /* _type_tables on <self:Object(SeparateCompiler)> */
3584 /* method separate_compiler#SeparateCompiler#resolution_tables for (self: SeparateCompiler): Map[MClassType, Array[nullable MType]] */
3585 val
* separate_compiler__SeparateCompiler__resolution_tables(val
* self
) {
3586 val
* var
/* : Map[MClassType, Array[nullable MType]] */;
3587 val
* var1
/* : Map[MClassType, Array[nullable MType]] */;
3588 var1
= self
->attrs
[COLOR_separate_compiler__SeparateCompiler___resolution_tables
].val
; /* _resolution_tables on <self:SeparateCompiler> */
3589 if (unlikely(var1
== NULL
)) {
3590 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _resolution_tables");
3591 PRINT_ERROR(" (%s:%d)\n", "src/separate_compiler.nit", 791);
3598 /* method separate_compiler#SeparateCompiler#resolution_tables for (self: Object): Map[MClassType, Array[nullable MType]] */
3599 val
* VIRTUAL_separate_compiler__SeparateCompiler__resolution_tables(val
* self
) {
3600 val
* var
/* : Map[MClassType, Array[nullable MType]] */;
3601 val
* var1
/* : Map[MClassType, Array[nullable MType]] */;
3602 val
* var3
/* : Map[MClassType, Array[nullable MType]] */;
3603 { /* Inline separate_compiler#SeparateCompiler#resolution_tables (self) on <self:Object(SeparateCompiler)> */
3604 var3
= self
->attrs
[COLOR_separate_compiler__SeparateCompiler___resolution_tables
].val
; /* _resolution_tables on <self:Object(SeparateCompiler)> */
3605 if (unlikely(var3
== NULL
)) {
3606 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _resolution_tables");
3607 PRINT_ERROR(" (%s:%d)\n", "src/separate_compiler.nit", 791);
3617 /* method separate_compiler#SeparateCompiler#resolution_tables= for (self: SeparateCompiler, Map[MClassType, Array[nullable MType]]) */
3618 void separate_compiler__SeparateCompiler__resolution_tables_61d(val
* self
, val
* p0
) {
3619 self
->attrs
[COLOR_separate_compiler__SeparateCompiler___resolution_tables
].val
= p0
; /* _resolution_tables on <self:SeparateCompiler> */
3622 /* method separate_compiler#SeparateCompiler#resolution_tables= for (self: Object, Map[MClassType, Array[nullable MType]]) */
3623 void VIRTUAL_separate_compiler__SeparateCompiler__resolution_tables_61d(val
* self
, val
* p0
) {
3624 { /* Inline separate_compiler#SeparateCompiler#resolution_tables= (self,p0) on <self:Object(SeparateCompiler)> */
3625 self
->attrs
[COLOR_separate_compiler__SeparateCompiler___resolution_tables
].val
= p0
; /* _resolution_tables on <self:Object(SeparateCompiler)> */
3630 /* method separate_compiler#SeparateCompiler#method_tables for (self: SeparateCompiler): Map[MClass, Array[nullable MPropDef]] */
3631 val
* separate_compiler__SeparateCompiler__method_tables(val
* self
) {
3632 val
* var
/* : Map[MClass, Array[nullable MPropDef]] */;
3633 val
* var1
/* : Map[MClass, Array[nullable MPropDef]] */;
3634 var1
= self
->attrs
[COLOR_separate_compiler__SeparateCompiler___method_tables
].val
; /* _method_tables on <self:SeparateCompiler> */
3635 if (unlikely(var1
== NULL
)) {
3636 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _method_tables");
3637 PRINT_ERROR(" (%s:%d)\n", "src/separate_compiler.nit", 792);
3644 /* method separate_compiler#SeparateCompiler#method_tables for (self: Object): Map[MClass, Array[nullable MPropDef]] */
3645 val
* VIRTUAL_separate_compiler__SeparateCompiler__method_tables(val
* self
) {
3646 val
* var
/* : Map[MClass, Array[nullable MPropDef]] */;
3647 val
* var1
/* : Map[MClass, Array[nullable MPropDef]] */;
3648 val
* var3
/* : Map[MClass, Array[nullable MPropDef]] */;
3649 { /* Inline separate_compiler#SeparateCompiler#method_tables (self) on <self:Object(SeparateCompiler)> */
3650 var3
= self
->attrs
[COLOR_separate_compiler__SeparateCompiler___method_tables
].val
; /* _method_tables on <self:Object(SeparateCompiler)> */
3651 if (unlikely(var3
== NULL
)) {
3652 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _method_tables");
3653 PRINT_ERROR(" (%s:%d)\n", "src/separate_compiler.nit", 792);
3663 /* method separate_compiler#SeparateCompiler#method_tables= for (self: SeparateCompiler, Map[MClass, Array[nullable MPropDef]]) */
3664 void separate_compiler__SeparateCompiler__method_tables_61d(val
* self
, val
* p0
) {
3665 self
->attrs
[COLOR_separate_compiler__SeparateCompiler___method_tables
].val
= p0
; /* _method_tables on <self:SeparateCompiler> */
3668 /* method separate_compiler#SeparateCompiler#method_tables= for (self: Object, Map[MClass, Array[nullable MPropDef]]) */
3669 void VIRTUAL_separate_compiler__SeparateCompiler__method_tables_61d(val
* self
, val
* p0
) {
3670 { /* Inline separate_compiler#SeparateCompiler#method_tables= (self,p0) on <self:Object(SeparateCompiler)> */
3671 self
->attrs
[COLOR_separate_compiler__SeparateCompiler___method_tables
].val
= p0
; /* _method_tables on <self:Object(SeparateCompiler)> */
3676 /* method separate_compiler#SeparateCompiler#attr_tables for (self: SeparateCompiler): Map[MClass, Array[nullable MPropDef]] */
3677 val
* separate_compiler__SeparateCompiler__attr_tables(val
* self
) {
3678 val
* var
/* : Map[MClass, Array[nullable MPropDef]] */;
3679 val
* var1
/* : Map[MClass, Array[nullable MPropDef]] */;
3680 var1
= self
->attrs
[COLOR_separate_compiler__SeparateCompiler___attr_tables
].val
; /* _attr_tables on <self:SeparateCompiler> */
3681 if (unlikely(var1
== NULL
)) {
3682 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _attr_tables");
3683 PRINT_ERROR(" (%s:%d)\n", "src/separate_compiler.nit", 793);
3690 /* method separate_compiler#SeparateCompiler#attr_tables for (self: Object): Map[MClass, Array[nullable MPropDef]] */
3691 val
* VIRTUAL_separate_compiler__SeparateCompiler__attr_tables(val
* self
) {
3692 val
* var
/* : Map[MClass, Array[nullable MPropDef]] */;
3693 val
* var1
/* : Map[MClass, Array[nullable MPropDef]] */;
3694 val
* var3
/* : Map[MClass, Array[nullable MPropDef]] */;
3695 { /* Inline separate_compiler#SeparateCompiler#attr_tables (self) on <self:Object(SeparateCompiler)> */
3696 var3
= self
->attrs
[COLOR_separate_compiler__SeparateCompiler___attr_tables
].val
; /* _attr_tables on <self:Object(SeparateCompiler)> */
3697 if (unlikely(var3
== NULL
)) {
3698 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _attr_tables");
3699 PRINT_ERROR(" (%s:%d)\n", "src/separate_compiler.nit", 793);
3709 /* method separate_compiler#SeparateCompiler#attr_tables= for (self: SeparateCompiler, Map[MClass, Array[nullable MPropDef]]) */
3710 void separate_compiler__SeparateCompiler__attr_tables_61d(val
* self
, val
* p0
) {
3711 self
->attrs
[COLOR_separate_compiler__SeparateCompiler___attr_tables
].val
= p0
; /* _attr_tables on <self:SeparateCompiler> */
3714 /* method separate_compiler#SeparateCompiler#attr_tables= for (self: Object, Map[MClass, Array[nullable MPropDef]]) */
3715 void VIRTUAL_separate_compiler__SeparateCompiler__attr_tables_61d(val
* self
, val
* p0
) {
3716 { /* Inline separate_compiler#SeparateCompiler#attr_tables= (self,p0) on <self:Object(SeparateCompiler)> */
3717 self
->attrs
[COLOR_separate_compiler__SeparateCompiler___attr_tables
].val
= p0
; /* _attr_tables on <self:Object(SeparateCompiler)> */
3722 /* method separate_compiler#SeparateCompiler#display_stats for (self: SeparateCompiler) */
3723 void separate_compiler__SeparateCompiler__display_stats(val
* self
) {
3724 val
* var
/* : ModelBuilder */;
3725 val
* var2
/* : ModelBuilder */;
3726 val
* var3
/* : ToolContext */;
3727 val
* var5
/* : ToolContext */;
3728 val
* var6
/* : OptionBool */;
3729 val
* var8
/* : OptionBool */;
3730 val
* var9
/* : nullable Object */;
3731 val
* var11
/* : nullable Object */;
3732 short int var12
/* : Bool */;
3733 val
* var13
/* : ModelBuilder */;
3734 val
* var15
/* : ModelBuilder */;
3735 val
* var16
/* : ToolContext */;
3736 val
* var18
/* : ToolContext */;
3737 val
* var19
/* : OptionBool */;
3738 val
* var21
/* : OptionBool */;
3739 val
* var22
/* : nullable Object */;
3740 val
* var24
/* : nullable Object */;
3741 short int var25
/* : Bool */;
3742 val
* var26
/* : ModelBuilder */;
3743 val
* var28
/* : ModelBuilder */;
3744 val
* var29
/* : ToolContext */;
3745 val
* var31
/* : ToolContext */;
3746 val
* var_tc
/* var tc: ToolContext */;
3747 static val
* varonce
;
3748 val
* var32
/* : String */;
3749 char* var33
/* : NativeString */;
3750 long var34
/* : Int */;
3751 val
* var35
/* : FlatString */;
3752 long var36
/* : Int */;
3753 val
* var37
/* : ModelBuilder */;
3754 val
* var39
/* : ModelBuilder */;
3755 long var40
/* : Int */;
3756 long var42
/* : Int */;
3757 val
* var43
/* : ModelBuilder */;
3758 val
* var45
/* : ModelBuilder */;
3759 long var46
/* : Int */;
3760 long var48
/* : Int */;
3761 long var49
/* : Int */;
3762 short int var51
/* : Bool */;
3765 const char* var_class_name
;
3766 long var52
/* : Int */;
3767 val
* var53
/* : ModelBuilder */;
3768 val
* var55
/* : ModelBuilder */;
3769 long var56
/* : Int */;
3770 long var58
/* : Int */;
3771 long var59
/* : Int */;
3772 short int var61
/* : Bool */;
3775 const char* var_class_name64
;
3776 long var65
/* : Int */;
3777 long var_nb_invok_total
/* var nb_invok_total: Int */;
3778 static val
* varonce66
;
3779 val
* var67
/* : String */;
3780 char* var68
/* : NativeString */;
3781 long var69
/* : Int */;
3782 val
* var70
/* : FlatString */;
3783 val
* var71
/* : Array[Object] */;
3784 long var72
/* : Int */;
3785 val
* var73
/* : NativeArray[Object] */;
3786 val
* var74
/* : Object */;
3787 val
* var75
/* : String */;
3788 long var76
/* : Int */;
3789 static val
* varonce77
;
3790 val
* var78
/* : String */;
3791 char* var79
/* : NativeString */;
3792 long var80
/* : Int */;
3793 val
* var81
/* : FlatString */;
3794 val
* var82
/* : ModelBuilder */;
3795 val
* var84
/* : ModelBuilder */;
3796 long var85
/* : Int */;
3797 long var87
/* : Int */;
3798 static val
* varonce88
;
3799 val
* var89
/* : String */;
3800 char* var90
/* : NativeString */;
3801 long var91
/* : Int */;
3802 val
* var92
/* : FlatString */;
3803 val
* var93
/* : ModelBuilder */;
3804 val
* var95
/* : ModelBuilder */;
3805 long var96
/* : Int */;
3806 long var98
/* : Int */;
3807 val
* var99
/* : String */;
3808 static val
* varonce100
;
3809 val
* var101
/* : String */;
3810 char* var102
/* : NativeString */;
3811 long var103
/* : Int */;
3812 val
* var104
/* : FlatString */;
3813 val
* var105
/* : Array[Object] */;
3814 long var106
/* : Int */;
3815 val
* var107
/* : NativeArray[Object] */;
3816 val
* var108
/* : Object */;
3817 val
* var109
/* : String */;
3818 long var110
/* : Int */;
3819 static val
* varonce111
;
3820 val
* var112
/* : String */;
3821 char* var113
/* : NativeString */;
3822 long var114
/* : Int */;
3823 val
* var115
/* : FlatString */;
3824 val
* var116
/* : ModelBuilder */;
3825 val
* var118
/* : ModelBuilder */;
3826 long var119
/* : Int */;
3827 long var121
/* : Int */;
3828 static val
* varonce122
;
3829 val
* var123
/* : String */;
3830 char* var124
/* : NativeString */;
3831 long var125
/* : Int */;
3832 val
* var126
/* : FlatString */;
3833 val
* var127
/* : ModelBuilder */;
3834 val
* var129
/* : ModelBuilder */;
3835 long var130
/* : Int */;
3836 long var132
/* : Int */;
3837 val
* var133
/* : String */;
3838 static val
* varonce134
;
3839 val
* var135
/* : String */;
3840 char* var136
/* : NativeString */;
3841 long var137
/* : Int */;
3842 val
* var138
/* : FlatString */;
3843 val
* var139
/* : Array[Object] */;
3844 long var140
/* : Int */;
3845 val
* var141
/* : NativeArray[Object] */;
3846 val
* var142
/* : Object */;
3847 val
* var143
/* : String */;
3848 long var144
/* : Int */;
3849 static val
* varonce145
;
3850 val
* var146
/* : String */;
3851 char* var147
/* : NativeString */;
3852 long var148
/* : Int */;
3853 val
* var149
/* : FlatString */;
3854 val
* var150
/* : ModelBuilder */;
3855 val
* var152
/* : ModelBuilder */;
3856 long var153
/* : Int */;
3857 long var155
/* : Int */;
3858 static val
* varonce156
;
3859 val
* var157
/* : String */;
3860 char* var158
/* : NativeString */;
3861 long var159
/* : Int */;
3862 val
* var160
/* : FlatString */;
3863 val
* var161
/* : ModelBuilder */;
3864 val
* var163
/* : ModelBuilder */;
3865 long var164
/* : Int */;
3866 long var166
/* : Int */;
3867 val
* var167
/* : String */;
3868 static val
* varonce168
;
3869 val
* var169
/* : String */;
3870 char* var170
/* : NativeString */;
3871 long var171
/* : Int */;
3872 val
* var172
/* : FlatString */;
3873 val
* var173
/* : Array[Object] */;
3874 long var174
/* : Int */;
3875 val
* var175
/* : NativeArray[Object] */;
3876 val
* var176
/* : Object */;
3877 val
* var177
/* : String */;
3878 long var178
/* : Int */;
3880 ((void (*)(val
*))(self
->class->vft
[COLOR_separate_compiler__SeparateCompiler__display_stats
]))(self
) /* display_stats on <self:SeparateCompiler>*/;
3883 { /* Inline abstract_compiler#AbstractCompiler#modelbuilder (self) on <self:SeparateCompiler> */
3884 var2
= self
->attrs
[COLOR_abstract_compiler__AbstractCompiler___modelbuilder
].val
; /* _modelbuilder on <self:SeparateCompiler> */
3885 if (unlikely(var2
== NULL
)) {
3886 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
3887 PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 443);
3895 { /* Inline modelbuilder#ModelBuilder#toolcontext (var) on <var:ModelBuilder> */
3896 var5
= var
->attrs
[COLOR_modelbuilder__ModelBuilder___toolcontext
].val
; /* _toolcontext on <var:ModelBuilder> */
3897 if (unlikely(var5
== NULL
)) {
3898 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
3899 PRINT_ERROR(" (%s:%d)\n", "src/modelbuilder.nit", 101);
3907 { /* Inline separate_compiler#ToolContext#opt_tables_metrics (var3) on <var3:ToolContext> */
3908 var8
= var3
->attrs
[COLOR_separate_compiler__ToolContext___opt_tables_metrics
].val
; /* _opt_tables_metrics on <var3:ToolContext> */
3909 if (unlikely(var8
== NULL
)) {
3910 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_tables_metrics");
3911 PRINT_ERROR(" (%s:%d)\n", "src/separate_compiler.nit", 44);
3919 { /* Inline opts#Option#value (var6) on <var6:OptionBool> */
3920 var11
= var6
->attrs
[COLOR_opts__Option___value
].val
; /* _value on <var6:OptionBool> */
3922 RET_LABEL10
:(void)0;
3925 var12
= ((struct instance_kernel__Bool
*)var9
)->value
; /* autounbox from nullable Object to Bool */;
3928 ((void (*)(val
*))(self
->class->vft
[COLOR_separate_compiler__SeparateCompiler__display_sizes
]))(self
) /* display_sizes on <self:SeparateCompiler>*/;
3933 { /* Inline abstract_compiler#AbstractCompiler#modelbuilder (self) on <self:SeparateCompiler> */
3934 var15
= self
->attrs
[COLOR_abstract_compiler__AbstractCompiler___modelbuilder
].val
; /* _modelbuilder on <self:SeparateCompiler> */
3935 if (unlikely(var15
== NULL
)) {
3936 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
3937 PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 443);
3941 RET_LABEL14
:(void)0;
3945 { /* Inline modelbuilder#ModelBuilder#toolcontext (var13) on <var13:ModelBuilder> */
3946 var18
= var13
->attrs
[COLOR_modelbuilder__ModelBuilder___toolcontext
].val
; /* _toolcontext on <var13:ModelBuilder> */
3947 if (unlikely(var18
== NULL
)) {
3948 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
3949 PRINT_ERROR(" (%s:%d)\n", "src/modelbuilder.nit", 101);
3953 RET_LABEL17
:(void)0;
3957 { /* Inline abstract_compiler#ToolContext#opt_isset_checks_metrics (var16) on <var16:ToolContext> */
3958 var21
= var16
->attrs
[COLOR_abstract_compiler__ToolContext___opt_isset_checks_metrics
].val
; /* _opt_isset_checks_metrics on <var16:ToolContext> */
3959 if (unlikely(var21
== NULL
)) {
3960 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_isset_checks_metrics");
3961 PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 60);
3965 RET_LABEL20
:(void)0;
3969 { /* Inline opts#Option#value (var19) on <var19:OptionBool> */
3970 var24
= var19
->attrs
[COLOR_opts__Option___value
].val
; /* _value on <var19:OptionBool> */
3972 RET_LABEL23
:(void)0;
3975 var25
= ((struct instance_kernel__Bool
*)var22
)->value
; /* autounbox from nullable Object to Bool */;
3978 separate_compiler__SeparateCompiler__display_isset_checks(self
); /* Direct call separate_compiler#SeparateCompiler#display_isset_checks on <self:SeparateCompiler>*/
3983 { /* Inline abstract_compiler#AbstractCompiler#modelbuilder (self) on <self:SeparateCompiler> */
3984 var28
= self
->attrs
[COLOR_abstract_compiler__AbstractCompiler___modelbuilder
].val
; /* _modelbuilder on <self:SeparateCompiler> */
3985 if (unlikely(var28
== NULL
)) {
3986 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
3987 PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 443);
3991 RET_LABEL27
:(void)0;
3995 { /* Inline modelbuilder#ModelBuilder#toolcontext (var26) on <var26:ModelBuilder> */
3996 var31
= var26
->attrs
[COLOR_modelbuilder__ModelBuilder___toolcontext
].val
; /* _toolcontext on <var26:ModelBuilder> */
3997 if (unlikely(var31
== NULL
)) {
3998 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
3999 PRINT_ERROR(" (%s:%d)\n", "src/modelbuilder.nit", 101);
4003 RET_LABEL30
:(void)0;
4010 var33
= "# implementation of method invocation";
4012 var35
= string__NativeString__to_s_with_length(var33
, var34
);
4018 toolcontext__ToolContext__info(var_tc
, var32
, var36
); /* Direct call toolcontext#ToolContext#info on <var_tc:ToolContext>*/
4021 { /* Inline abstract_compiler#AbstractCompiler#modelbuilder (self) on <self:SeparateCompiler> */
4022 var39
= self
->attrs
[COLOR_abstract_compiler__AbstractCompiler___modelbuilder
].val
; /* _modelbuilder on <self:SeparateCompiler> */
4023 if (unlikely(var39
== NULL
)) {
4024 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
4025 PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 443);
4029 RET_LABEL38
:(void)0;
4033 { /* Inline separate_compiler#ModelBuilder#nb_invok_by_tables (var37) on <var37:ModelBuilder> */
4034 var42
= var37
->attrs
[COLOR_separate_compiler__ModelBuilder___nb_invok_by_tables
].l
; /* _nb_invok_by_tables on <var37:ModelBuilder> */
4036 RET_LABEL41
:(void)0;
4040 { /* Inline abstract_compiler#AbstractCompiler#modelbuilder (self) on <self:SeparateCompiler> */
4041 var45
= self
->attrs
[COLOR_abstract_compiler__AbstractCompiler___modelbuilder
].val
; /* _modelbuilder on <self:SeparateCompiler> */
4042 if (unlikely(var45
== NULL
)) {
4043 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
4044 PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 443);
4048 RET_LABEL44
:(void)0;
4052 { /* Inline separate_compiler#ModelBuilder#nb_invok_by_direct (var43) on <var43:ModelBuilder> */
4053 var48
= var43
->attrs
[COLOR_separate_compiler__ModelBuilder___nb_invok_by_direct
].l
; /* _nb_invok_by_direct on <var43:ModelBuilder> */
4055 RET_LABEL47
:(void)0;
4059 { /* Inline kernel#Int#+ (var40,var46) on <var40:Int> */
4060 /* Covariant cast for argument 0 (i) <var46:Int> isa OTHER */
4061 /* <var46:Int> isa OTHER */
4062 var51
= 1; /* easy <var46:Int> isa OTHER*/
4063 if (unlikely(!var51
)) {
4064 var_class_name
= type_kernel__Int
.name
;
4065 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name
);
4066 PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 328);
4069 var52
= var40
+ var46
;
4072 RET_LABEL50
:(void)0;
4076 { /* Inline abstract_compiler#AbstractCompiler#modelbuilder (self) on <self:SeparateCompiler> */
4077 var55
= self
->attrs
[COLOR_abstract_compiler__AbstractCompiler___modelbuilder
].val
; /* _modelbuilder on <self:SeparateCompiler> */
4078 if (unlikely(var55
== NULL
)) {
4079 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
4080 PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 443);
4084 RET_LABEL54
:(void)0;
4088 { /* Inline separate_compiler#ModelBuilder#nb_invok_by_inline (var53) on <var53:ModelBuilder> */
4089 var58
= var53
->attrs
[COLOR_separate_compiler__ModelBuilder___nb_invok_by_inline
].l
; /* _nb_invok_by_inline on <var53:ModelBuilder> */
4091 RET_LABEL57
:(void)0;
4095 { /* Inline kernel#Int#+ (var49,var56) on <var49:Int> */
4096 /* Covariant cast for argument 0 (i) <var56:Int> isa OTHER */
4097 /* <var56:Int> isa OTHER */
4098 var61
= 1; /* easy <var56:Int> isa OTHER*/
4099 if (unlikely(!var61
)) {
4100 var_class_name64
= type_kernel__Int
.name
;
4101 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name64
);
4102 PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 328);
4105 var65
= var49
+ var56
;
4108 RET_LABEL60
:(void)0;
4111 var_nb_invok_total
= var59
;
4115 var68
= "total number of invocations: ";
4117 var70
= string__NativeString__to_s_with_length(var68
, var69
);
4121 var71
= NEW_array__Array(&type_array__Arraykernel__Object
);
4122 { /* var71 = array_instance Array[Object] */
4124 var73
= NEW_array__NativeArray(var72
, &type_array__NativeArraykernel__Object
);
4125 ((struct instance_array__NativeArray
*)var73
)->values
[0] = (val
*) var67
;
4126 var74
= BOX_kernel__Int(var_nb_invok_total
); /* autobox from Int to Object */
4127 ((struct instance_array__NativeArray
*)var73
)->values
[1] = (val
*) var74
;
4129 ((void (*)(val
*, val
*, long))(var71
->class->vft
[COLOR_array__Array__with_native
]))(var71
, var73
, var72
) /* with_native on <var71:Array[Object]>*/;
4133 var75
= ((val
* (*)(val
*))(var71
->class->vft
[COLOR_string__Object__to_s
]))(var71
) /* to_s on <var71:Array[Object]>*/;
4137 toolcontext__ToolContext__info(var_tc
, var75
, var76
); /* Direct call toolcontext#ToolContext#info on <var_tc:ToolContext>*/
4142 var79
= "invocations by VFT send: ";
4144 var81
= string__NativeString__to_s_with_length(var79
, var80
);
4149 { /* Inline abstract_compiler#AbstractCompiler#modelbuilder (self) on <self:SeparateCompiler> */
4150 var84
= self
->attrs
[COLOR_abstract_compiler__AbstractCompiler___modelbuilder
].val
; /* _modelbuilder on <self:SeparateCompiler> */
4151 if (unlikely(var84
== NULL
)) {
4152 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
4153 PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 443);
4157 RET_LABEL83
:(void)0;
4161 { /* Inline separate_compiler#ModelBuilder#nb_invok_by_tables (var82) on <var82:ModelBuilder> */
4162 var87
= var82
->attrs
[COLOR_separate_compiler__ModelBuilder___nb_invok_by_tables
].l
; /* _nb_invok_by_tables on <var82:ModelBuilder> */
4164 RET_LABEL86
:(void)0;
4172 var92
= string__NativeString__to_s_with_length(var90
, var91
);
4177 { /* Inline abstract_compiler#AbstractCompiler#modelbuilder (self) on <self:SeparateCompiler> */
4178 var95
= self
->attrs
[COLOR_abstract_compiler__AbstractCompiler___modelbuilder
].val
; /* _modelbuilder on <self:SeparateCompiler> */
4179 if (unlikely(var95
== NULL
)) {
4180 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
4181 PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 443);
4185 RET_LABEL94
:(void)0;
4189 { /* Inline separate_compiler#ModelBuilder#nb_invok_by_tables (var93) on <var93:ModelBuilder> */
4190 var98
= var93
->attrs
[COLOR_separate_compiler__ModelBuilder___nb_invok_by_tables
].l
; /* _nb_invok_by_tables on <var93:ModelBuilder> */
4192 RET_LABEL97
:(void)0;
4196 var99
= abstract_compiler__AbstractCompiler__div(self
, var96
, var_nb_invok_total
);
4199 var101
= varonce100
;
4203 var104
= string__NativeString__to_s_with_length(var102
, var103
);
4205 varonce100
= var101
;
4207 var105
= NEW_array__Array(&type_array__Arraykernel__Object
);
4208 { /* var105 = array_instance Array[Object] */
4210 var107
= NEW_array__NativeArray(var106
, &type_array__NativeArraykernel__Object
);
4211 ((struct instance_array__NativeArray
*)var107
)->values
[0] = (val
*) var78
;
4212 var108
= BOX_kernel__Int(var85
); /* autobox from Int to Object */
4213 ((struct instance_array__NativeArray
*)var107
)->values
[1] = (val
*) var108
;
4214 ((struct instance_array__NativeArray
*)var107
)->values
[2] = (val
*) var89
;
4215 ((struct instance_array__NativeArray
*)var107
)->values
[3] = (val
*) var99
;
4216 ((struct instance_array__NativeArray
*)var107
)->values
[4] = (val
*) var101
;
4218 ((void (*)(val
*, val
*, long))(var105
->class->vft
[COLOR_array__Array__with_native
]))(var105
, var107
, var106
) /* with_native on <var105:Array[Object]>*/;
4222 var109
= ((val
* (*)(val
*))(var105
->class->vft
[COLOR_string__Object__to_s
]))(var105
) /* to_s on <var105:Array[Object]>*/;
4226 toolcontext__ToolContext__info(var_tc
, var109
, var110
); /* Direct call toolcontext#ToolContext#info on <var_tc:ToolContext>*/
4229 var112
= varonce111
;
4231 var113
= "invocations by direct call: ";
4233 var115
= string__NativeString__to_s_with_length(var113
, var114
);
4235 varonce111
= var112
;
4238 { /* Inline abstract_compiler#AbstractCompiler#modelbuilder (self) on <self:SeparateCompiler> */
4239 var118
= self
->attrs
[COLOR_abstract_compiler__AbstractCompiler___modelbuilder
].val
; /* _modelbuilder on <self:SeparateCompiler> */
4240 if (unlikely(var118
== NULL
)) {
4241 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
4242 PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 443);
4246 RET_LABEL117
:(void)0;
4250 { /* Inline separate_compiler#ModelBuilder#nb_invok_by_direct (var116) on <var116:ModelBuilder> */
4251 var121
= var116
->attrs
[COLOR_separate_compiler__ModelBuilder___nb_invok_by_direct
].l
; /* _nb_invok_by_direct on <var116:ModelBuilder> */
4253 RET_LABEL120
:(void)0;
4257 var123
= varonce122
;
4261 var126
= string__NativeString__to_s_with_length(var124
, var125
);
4263 varonce122
= var123
;
4266 { /* Inline abstract_compiler#AbstractCompiler#modelbuilder (self) on <self:SeparateCompiler> */
4267 var129
= self
->attrs
[COLOR_abstract_compiler__AbstractCompiler___modelbuilder
].val
; /* _modelbuilder on <self:SeparateCompiler> */
4268 if (unlikely(var129
== NULL
)) {
4269 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
4270 PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 443);
4274 RET_LABEL128
:(void)0;
4278 { /* Inline separate_compiler#ModelBuilder#nb_invok_by_direct (var127) on <var127:ModelBuilder> */
4279 var132
= var127
->attrs
[COLOR_separate_compiler__ModelBuilder___nb_invok_by_direct
].l
; /* _nb_invok_by_direct on <var127:ModelBuilder> */
4281 RET_LABEL131
:(void)0;
4285 var133
= abstract_compiler__AbstractCompiler__div(self
, var130
, var_nb_invok_total
);
4288 var135
= varonce134
;
4292 var138
= string__NativeString__to_s_with_length(var136
, var137
);
4294 varonce134
= var135
;
4296 var139
= NEW_array__Array(&type_array__Arraykernel__Object
);
4297 { /* var139 = array_instance Array[Object] */
4299 var141
= NEW_array__NativeArray(var140
, &type_array__NativeArraykernel__Object
);
4300 ((struct instance_array__NativeArray
*)var141
)->values
[0] = (val
*) var112
;
4301 var142
= BOX_kernel__Int(var119
); /* autobox from Int to Object */
4302 ((struct instance_array__NativeArray
*)var141
)->values
[1] = (val
*) var142
;
4303 ((struct instance_array__NativeArray
*)var141
)->values
[2] = (val
*) var123
;
4304 ((struct instance_array__NativeArray
*)var141
)->values
[3] = (val
*) var133
;
4305 ((struct instance_array__NativeArray
*)var141
)->values
[4] = (val
*) var135
;
4307 ((void (*)(val
*, val
*, long))(var139
->class->vft
[COLOR_array__Array__with_native
]))(var139
, var141
, var140
) /* with_native on <var139:Array[Object]>*/;
4311 var143
= ((val
* (*)(val
*))(var139
->class->vft
[COLOR_string__Object__to_s
]))(var139
) /* to_s on <var139:Array[Object]>*/;
4315 toolcontext__ToolContext__info(var_tc
, var143
, var144
); /* Direct call toolcontext#ToolContext#info on <var_tc:ToolContext>*/
4318 var146
= varonce145
;
4320 var147
= "invocations by inlining: ";
4322 var149
= string__NativeString__to_s_with_length(var147
, var148
);
4324 varonce145
= var146
;
4327 { /* Inline abstract_compiler#AbstractCompiler#modelbuilder (self) on <self:SeparateCompiler> */
4328 var152
= self
->attrs
[COLOR_abstract_compiler__AbstractCompiler___modelbuilder
].val
; /* _modelbuilder on <self:SeparateCompiler> */
4329 if (unlikely(var152
== NULL
)) {
4330 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
4331 PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 443);
4335 RET_LABEL151
:(void)0;
4339 { /* Inline separate_compiler#ModelBuilder#nb_invok_by_inline (var150) on <var150:ModelBuilder> */
4340 var155
= var150
->attrs
[COLOR_separate_compiler__ModelBuilder___nb_invok_by_inline
].l
; /* _nb_invok_by_inline on <var150:ModelBuilder> */
4342 RET_LABEL154
:(void)0;
4346 var157
= varonce156
;
4350 var160
= string__NativeString__to_s_with_length(var158
, var159
);
4352 varonce156
= var157
;
4355 { /* Inline abstract_compiler#AbstractCompiler#modelbuilder (self) on <self:SeparateCompiler> */
4356 var163
= self
->attrs
[COLOR_abstract_compiler__AbstractCompiler___modelbuilder
].val
; /* _modelbuilder on <self:SeparateCompiler> */
4357 if (unlikely(var163
== NULL
)) {
4358 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
4359 PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 443);
4363 RET_LABEL162
:(void)0;
4367 { /* Inline separate_compiler#ModelBuilder#nb_invok_by_inline (var161) on <var161:ModelBuilder> */
4368 var166
= var161
->attrs
[COLOR_separate_compiler__ModelBuilder___nb_invok_by_inline
].l
; /* _nb_invok_by_inline on <var161:ModelBuilder> */
4370 RET_LABEL165
:(void)0;
4374 var167
= abstract_compiler__AbstractCompiler__div(self
, var164
, var_nb_invok_total
);
4377 var169
= varonce168
;
4381 var172
= string__NativeString__to_s_with_length(var170
, var171
);
4383 varonce168
= var169
;
4385 var173
= NEW_array__Array(&type_array__Arraykernel__Object
);
4386 { /* var173 = array_instance Array[Object] */
4388 var175
= NEW_array__NativeArray(var174
, &type_array__NativeArraykernel__Object
);
4389 ((struct instance_array__NativeArray
*)var175
)->values
[0] = (val
*) var146
;
4390 var176
= BOX_kernel__Int(var153
); /* autobox from Int to Object */
4391 ((struct instance_array__NativeArray
*)var175
)->values
[1] = (val
*) var176
;
4392 ((struct instance_array__NativeArray
*)var175
)->values
[2] = (val
*) var157
;
4393 ((struct instance_array__NativeArray
*)var175
)->values
[3] = (val
*) var167
;
4394 ((struct instance_array__NativeArray
*)var175
)->values
[4] = (val
*) var169
;
4396 ((void (*)(val
*, val
*, long))(var173
->class->vft
[COLOR_array__Array__with_native
]))(var173
, var175
, var174
) /* with_native on <var173:Array[Object]>*/;
4400 var177
= ((val
* (*)(val
*))(var173
->class->vft
[COLOR_string__Object__to_s
]))(var173
) /* to_s on <var173:Array[Object]>*/;
4404 toolcontext__ToolContext__info(var_tc
, var177
, var178
); /* Direct call toolcontext#ToolContext#info on <var_tc:ToolContext>*/
4408 /* method separate_compiler#SeparateCompiler#display_stats for (self: Object) */
4409 void VIRTUAL_separate_compiler__SeparateCompiler__display_stats(val
* self
) {
4410 separate_compiler__SeparateCompiler__display_stats(self
); /* Direct call separate_compiler#SeparateCompiler#display_stats on <self:Object(SeparateCompiler)>*/
4413 /* method separate_compiler#SeparateCompiler#display_sizes for (self: SeparateCompiler) */
4414 void separate_compiler__SeparateCompiler__display_sizes(val
* self
) {
4415 static val
* varonce
;
4416 val
* var
/* : String */;
4417 char* var1
/* : NativeString */;
4418 long var2
/* : Int */;
4419 val
* var3
/* : FlatString */;
4420 static val
* varonce4
;
4421 val
* var5
/* : String */;
4422 char* var6
/* : NativeString */;
4423 long var7
/* : Int */;
4424 val
* var8
/* : FlatString */;
4425 long var9
/* : Int */;
4426 long var_total
/* var total: Int */;
4427 long var10
/* : Int */;
4428 long var_holes
/* var holes: Int */;
4429 val
* var11
/* : Map[MType, Array[nullable MType]] */;
4430 val
* var13
/* : Map[MType, Array[nullable MType]] */;
4431 val
* var14
/* : MapIterator[Object, nullable Object] */;
4432 short int var15
/* : Bool */;
4433 val
* var16
/* : Object */;
4434 val
* var_t
/* var t: MType */;
4435 val
* var17
/* : nullable Object */;
4436 val
* var_table
/* var table: Array[nullable MType] */;
4437 long var18
/* : Int */;
4438 long var19
/* : Int */;
4439 short int var21
/* : Bool */;
4442 const char* var_class_name
;
4443 long var22
/* : Int */;
4444 val
* var23
/* : ArrayIterator[nullable Object] */;
4445 short int var24
/* : Bool */;
4446 val
* var25
/* : nullable Object */;
4447 val
* var_e
/* var e: nullable MType */;
4448 val
* var26
/* : null */;
4449 short int var27
/* : Bool */;
4450 short int var28
/* : Bool */;
4451 val
* var_other
/* var other: nullable Object */;
4452 short int var30
/* : Bool */;
4453 short int var32
/* : Bool */;
4454 long var33
/* : Int */;
4455 long var34
/* : Int */;
4456 short int var36
/* : Bool */;
4459 const char* var_class_name39
;
4460 long var40
/* : Int */;
4461 static val
* varonce42
;
4462 val
* var43
/* : String */;
4463 char* var44
/* : NativeString */;
4464 long var45
/* : Int */;
4465 val
* var46
/* : FlatString */;
4466 static val
* varonce47
;
4467 val
* var48
/* : String */;
4468 char* var49
/* : NativeString */;
4469 long var50
/* : Int */;
4470 val
* var51
/* : FlatString */;
4471 val
* var52
/* : Array[Object] */;
4472 long var53
/* : Int */;
4473 val
* var54
/* : NativeArray[Object] */;
4474 val
* var55
/* : Object */;
4475 val
* var56
/* : Object */;
4476 val
* var57
/* : String */;
4477 static val
* varonce58
;
4478 val
* var59
/* : String */;
4479 char* var60
/* : NativeString */;
4480 long var61
/* : Int */;
4481 val
* var62
/* : FlatString */;
4482 static val
* varonce63
;
4483 val
* var64
/* : String */;
4484 char* var65
/* : NativeString */;
4485 long var66
/* : Int */;
4486 val
* var67
/* : FlatString */;
4487 long var68
/* : Int */;
4488 long var69
/* : Int */;
4489 val
* var70
/* : Map[MClassType, Array[nullable MType]] */;
4490 val
* var72
/* : Map[MClassType, Array[nullable MType]] */;
4491 val
* var73
/* : MapIterator[Object, nullable Object] */;
4492 short int var74
/* : Bool */;
4493 val
* var75
/* : Object */;
4494 val
* var_t76
/* var t: MClassType */;
4495 val
* var77
/* : nullable Object */;
4496 val
* var_table78
/* var table: Array[nullable MType] */;
4497 long var79
/* : Int */;
4498 long var80
/* : Int */;
4499 short int var82
/* : Bool */;
4502 const char* var_class_name85
;
4503 long var86
/* : Int */;
4504 val
* var87
/* : ArrayIterator[nullable Object] */;
4505 short int var88
/* : Bool */;
4506 val
* var89
/* : nullable Object */;
4507 val
* var_e90
/* var e: nullable MType */;
4508 val
* var91
/* : null */;
4509 short int var92
/* : Bool */;
4510 short int var93
/* : Bool */;
4511 short int var95
/* : Bool */;
4512 short int var97
/* : Bool */;
4513 long var98
/* : Int */;
4514 long var99
/* : Int */;
4515 short int var101
/* : Bool */;
4518 const char* var_class_name104
;
4519 long var105
/* : Int */;
4520 static val
* varonce108
;
4521 val
* var109
/* : String */;
4522 char* var110
/* : NativeString */;
4523 long var111
/* : Int */;
4524 val
* var112
/* : FlatString */;
4525 static val
* varonce113
;
4526 val
* var114
/* : String */;
4527 char* var115
/* : NativeString */;
4528 long var116
/* : Int */;
4529 val
* var117
/* : FlatString */;
4530 val
* var118
/* : Array[Object] */;
4531 long var119
/* : Int */;
4532 val
* var120
/* : NativeArray[Object] */;
4533 val
* var121
/* : Object */;
4534 val
* var122
/* : Object */;
4535 val
* var123
/* : String */;
4536 static val
* varonce124
;
4537 val
* var125
/* : String */;
4538 char* var126
/* : NativeString */;
4539 long var127
/* : Int */;
4540 val
* var128
/* : FlatString */;
4541 static val
* varonce129
;
4542 val
* var130
/* : String */;
4543 char* var131
/* : NativeString */;
4544 long var132
/* : Int */;
4545 val
* var133
/* : FlatString */;
4546 long var134
/* : Int */;
4547 long var135
/* : Int */;
4548 val
* var136
/* : Map[MClass, Array[nullable MPropDef]] */;
4549 val
* var138
/* : Map[MClass, Array[nullable MPropDef]] */;
4550 val
* var139
/* : MapIterator[Object, nullable Object] */;
4551 short int var140
/* : Bool */;
4552 val
* var141
/* : Object */;
4553 val
* var_t142
/* var t: MClass */;
4554 val
* var143
/* : nullable Object */;
4555 val
* var_table144
/* var table: Array[nullable MPropDef] */;
4556 long var145
/* : Int */;
4557 long var146
/* : Int */;
4558 short int var148
/* : Bool */;
4561 const char* var_class_name151
;
4562 long var152
/* : Int */;
4563 val
* var153
/* : ArrayIterator[nullable Object] */;
4564 short int var154
/* : Bool */;
4565 val
* var155
/* : nullable Object */;
4566 val
* var_e156
/* var e: nullable MPropDef */;
4567 val
* var157
/* : null */;
4568 short int var158
/* : Bool */;
4569 short int var159
/* : Bool */;
4570 short int var161
/* : Bool */;
4571 short int var163
/* : Bool */;
4572 long var164
/* : Int */;
4573 long var165
/* : Int */;
4574 short int var167
/* : Bool */;
4577 const char* var_class_name170
;
4578 long var171
/* : Int */;
4579 static val
* varonce174
;
4580 val
* var175
/* : String */;
4581 char* var176
/* : NativeString */;
4582 long var177
/* : Int */;
4583 val
* var178
/* : FlatString */;
4584 static val
* varonce179
;
4585 val
* var180
/* : String */;
4586 char* var181
/* : NativeString */;
4587 long var182
/* : Int */;
4588 val
* var183
/* : FlatString */;
4589 val
* var184
/* : Array[Object] */;
4590 long var185
/* : Int */;
4591 val
* var186
/* : NativeArray[Object] */;
4592 val
* var187
/* : Object */;
4593 val
* var188
/* : Object */;
4594 val
* var189
/* : String */;
4595 static val
* varonce190
;
4596 val
* var191
/* : String */;
4597 char* var192
/* : NativeString */;
4598 long var193
/* : Int */;
4599 val
* var194
/* : FlatString */;
4600 static val
* varonce195
;
4601 val
* var196
/* : String */;
4602 char* var197
/* : NativeString */;
4603 long var198
/* : Int */;
4604 val
* var199
/* : FlatString */;
4605 long var200
/* : Int */;
4606 long var201
/* : Int */;
4607 val
* var202
/* : Map[MClass, Array[nullable MPropDef]] */;
4608 val
* var204
/* : Map[MClass, Array[nullable MPropDef]] */;
4609 val
* var205
/* : MapIterator[Object, nullable Object] */;
4610 short int var206
/* : Bool */;
4611 val
* var207
/* : Object */;
4612 val
* var_t208
/* var t: MClass */;
4613 val
* var209
/* : nullable Object */;
4614 val
* var_table210
/* var table: Array[nullable MPropDef] */;
4615 long var211
/* : Int */;
4616 long var212
/* : Int */;
4617 short int var214
/* : Bool */;
4620 const char* var_class_name217
;
4621 long var218
/* : Int */;
4622 val
* var219
/* : ArrayIterator[nullable Object] */;
4623 short int var220
/* : Bool */;
4624 val
* var221
/* : nullable Object */;
4625 val
* var_e222
/* var e: nullable MPropDef */;
4626 val
* var223
/* : null */;
4627 short int var224
/* : Bool */;
4628 short int var225
/* : Bool */;
4629 short int var227
/* : Bool */;
4630 short int var229
/* : Bool */;
4631 long var230
/* : Int */;
4632 long var231
/* : Int */;
4633 short int var233
/* : Bool */;
4636 const char* var_class_name236
;
4637 long var237
/* : Int */;
4638 static val
* varonce240
;
4639 val
* var241
/* : String */;
4640 char* var242
/* : NativeString */;
4641 long var243
/* : Int */;
4642 val
* var244
/* : FlatString */;
4643 static val
* varonce245
;
4644 val
* var246
/* : String */;
4645 char* var247
/* : NativeString */;
4646 long var248
/* : Int */;
4647 val
* var249
/* : FlatString */;
4648 val
* var250
/* : Array[Object] */;
4649 long var251
/* : Int */;
4650 val
* var252
/* : NativeArray[Object] */;
4651 val
* var253
/* : Object */;
4652 val
* var254
/* : Object */;
4653 val
* var255
/* : String */;
4657 var1
= "# size of subtyping tables";
4659 var3
= string__NativeString__to_s_with_length(var1
, var2
);
4664 file__Object__print(self
, var
); /* Direct call file#Object#print on <self:SeparateCompiler>*/
4669 var6
= "\11total \11holes";
4671 var8
= string__NativeString__to_s_with_length(var6
, var7
);
4676 file__Object__print(self
, var5
); /* Direct call file#Object#print on <self:SeparateCompiler>*/
4683 { /* Inline separate_compiler#SeparateCompiler#type_tables (self) on <self:SeparateCompiler> */
4684 var13
= self
->attrs
[COLOR_separate_compiler__SeparateCompiler___type_tables
].val
; /* _type_tables on <self:SeparateCompiler> */
4685 if (unlikely(var13
== NULL
)) {
4686 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _type_tables");
4687 PRINT_ERROR(" (%s:%d)\n", "src/separate_compiler.nit", 790);
4691 RET_LABEL12
:(void)0;
4695 var14
= ((val
* (*)(val
*))(var11
->class->vft
[COLOR_abstract_collection__MapRead__iterator
]))(var11
) /* iterator on <var11:Map[MType, Array[nullable MType]]>*/;
4699 var15
= ((short int (*)(val
*))(var14
->class->vft
[COLOR_abstract_collection__MapIterator__is_ok
]))(var14
) /* is_ok on <var14:MapIterator[Object, nullable Object]>*/;
4703 var16
= ((val
* (*)(val
*))(var14
->class->vft
[COLOR_abstract_collection__MapIterator__key
]))(var14
) /* key on <var14:MapIterator[Object, nullable Object]>*/;
4707 var17
= ((val
* (*)(val
*))(var14
->class->vft
[COLOR_abstract_collection__MapIterator__item
]))(var14
) /* item on <var14:MapIterator[Object, nullable Object]>*/;
4711 var18
= array__AbstractArrayRead__length(var_table
);
4714 { /* Inline kernel#Int#+ (var_total,var18) on <var_total:Int> */
4715 /* Covariant cast for argument 0 (i) <var18:Int> isa OTHER */
4716 /* <var18:Int> isa OTHER */
4717 var21
= 1; /* easy <var18:Int> isa OTHER*/
4718 if (unlikely(!var21
)) {
4719 var_class_name
= type_kernel__Int
.name
;
4720 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name
);
4721 PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 328);
4724 var22
= var_total
+ var18
;
4727 RET_LABEL20
:(void)0;
4732 var23
= array__AbstractArrayRead__iterator(var_table
);
4736 var24
= array__ArrayIterator__is_ok(var23
);
4740 var25
= array__ArrayIterator__item(var23
);
4744 if (var_e
== NULL
) {
4745 var27
= 1; /* is null */
4747 var27
= 0; /* arg is null but recv is not */
4750 { /* Inline kernel#Object#== (var_e,var26) on <var_e:nullable MType> */
4753 { /* Inline kernel#Object#is_same_instance (var_e,var_other) on <var_e:nullable MType(MType)> */
4754 var32
= var_e
== var_other
;
4757 RET_LABEL31
:(void)0;
4762 RET_LABEL29
:(void)0;
4769 { /* Inline kernel#Int#+ (var_holes,var33) on <var_holes:Int> */
4770 /* Covariant cast for argument 0 (i) <var33:Int> isa OTHER */
4771 /* <var33:Int> isa OTHER */
4772 var36
= 1; /* easy <var33:Int> isa OTHER*/
4773 if (unlikely(!var36
)) {
4774 var_class_name39
= type_kernel__Int
.name
;
4775 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name39
);
4776 PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 328);
4779 var40
= var_holes
+ var33
;
4782 RET_LABEL35
:(void)0;
4788 CONTINUE_label
: (void)0;
4790 array__ArrayIterator__next(var23
); /* Direct call array#ArrayIterator#next on <var23:ArrayIterator[nullable Object]>*/
4793 BREAK_label
: (void)0;
4794 CONTINUE_label41
: (void)0;
4796 ((void (*)(val
*))(var14
->class->vft
[COLOR_abstract_collection__MapIterator__next
]))(var14
) /* next on <var14:MapIterator[Object, nullable Object]>*/;
4799 BREAK_label41
: (void)0;
4805 var46
= string__NativeString__to_s_with_length(var44
, var45
);
4814 var51
= string__NativeString__to_s_with_length(var49
, var50
);
4818 var52
= NEW_array__Array(&type_array__Arraykernel__Object
);
4819 { /* var52 = array_instance Array[Object] */
4821 var54
= NEW_array__NativeArray(var53
, &type_array__NativeArraykernel__Object
);
4822 ((struct instance_array__NativeArray
*)var54
)->values
[0] = (val
*) var43
;
4823 var55
= BOX_kernel__Int(var_total
); /* autobox from Int to Object */
4824 ((struct instance_array__NativeArray
*)var54
)->values
[1] = (val
*) var55
;
4825 ((struct instance_array__NativeArray
*)var54
)->values
[2] = (val
*) var48
;
4826 var56
= BOX_kernel__Int(var_holes
); /* autobox from Int to Object */
4827 ((struct instance_array__NativeArray
*)var54
)->values
[3] = (val
*) var56
;
4829 ((void (*)(val
*, val
*, long))(var52
->class->vft
[COLOR_array__Array__with_native
]))(var52
, var54
, var53
) /* with_native on <var52:Array[Object]>*/;
4833 var57
= ((val
* (*)(val
*))(var52
->class->vft
[COLOR_string__Object__to_s
]))(var52
) /* to_s on <var52:Array[Object]>*/;
4836 file__Object__print(self
, var57
); /* Direct call file#Object#print on <self:SeparateCompiler>*/
4841 var60
= "# size of resolution tables";
4843 var62
= string__NativeString__to_s_with_length(var60
, var61
);
4848 file__Object__print(self
, var59
); /* Direct call file#Object#print on <self:SeparateCompiler>*/
4853 var65
= "\11total \11holes";
4855 var67
= string__NativeString__to_s_with_length(var65
, var66
);
4860 file__Object__print(self
, var64
); /* Direct call file#Object#print on <self:SeparateCompiler>*/
4867 { /* Inline separate_compiler#SeparateCompiler#resolution_tables (self) on <self:SeparateCompiler> */
4868 var72
= self
->attrs
[COLOR_separate_compiler__SeparateCompiler___resolution_tables
].val
; /* _resolution_tables on <self:SeparateCompiler> */
4869 if (unlikely(var72
== NULL
)) {
4870 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _resolution_tables");
4871 PRINT_ERROR(" (%s:%d)\n", "src/separate_compiler.nit", 791);
4875 RET_LABEL71
:(void)0;
4879 var73
= ((val
* (*)(val
*))(var70
->class->vft
[COLOR_abstract_collection__MapRead__iterator
]))(var70
) /* iterator on <var70:Map[MClassType, Array[nullable MType]]>*/;
4883 var74
= ((short int (*)(val
*))(var73
->class->vft
[COLOR_abstract_collection__MapIterator__is_ok
]))(var73
) /* is_ok on <var73:MapIterator[Object, nullable Object]>*/;
4887 var75
= ((val
* (*)(val
*))(var73
->class->vft
[COLOR_abstract_collection__MapIterator__key
]))(var73
) /* key on <var73:MapIterator[Object, nullable Object]>*/;
4891 var77
= ((val
* (*)(val
*))(var73
->class->vft
[COLOR_abstract_collection__MapIterator__item
]))(var73
) /* item on <var73:MapIterator[Object, nullable Object]>*/;
4893 var_table78
= var77
;
4895 var79
= array__AbstractArrayRead__length(var_table78
);
4898 { /* Inline kernel#Int#+ (var_total,var79) on <var_total:Int> */
4899 /* Covariant cast for argument 0 (i) <var79:Int> isa OTHER */
4900 /* <var79:Int> isa OTHER */
4901 var82
= 1; /* easy <var79:Int> isa OTHER*/
4902 if (unlikely(!var82
)) {
4903 var_class_name85
= type_kernel__Int
.name
;
4904 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name85
);
4905 PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 328);
4908 var86
= var_total
+ var79
;
4911 RET_LABEL81
:(void)0;
4916 var87
= array__AbstractArrayRead__iterator(var_table78
);
4920 var88
= array__ArrayIterator__is_ok(var87
);
4924 var89
= array__ArrayIterator__item(var87
);
4928 if (var_e90
== NULL
) {
4929 var92
= 1; /* is null */
4931 var92
= 0; /* arg is null but recv is not */
4934 { /* Inline kernel#Object#== (var_e90,var91) on <var_e90:nullable MType> */
4937 { /* Inline kernel#Object#is_same_instance (var_e90,var_other) on <var_e90:nullable MType(MType)> */
4938 var97
= var_e90
== var_other
;
4941 RET_LABEL96
:(void)0;
4946 RET_LABEL94
:(void)0;
4953 { /* Inline kernel#Int#+ (var_holes,var98) on <var_holes:Int> */
4954 /* Covariant cast for argument 0 (i) <var98:Int> isa OTHER */
4955 /* <var98:Int> isa OTHER */
4956 var101
= 1; /* easy <var98:Int> isa OTHER*/
4957 if (unlikely(!var101
)) {
4958 var_class_name104
= type_kernel__Int
.name
;
4959 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name104
);
4960 PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 328);
4963 var105
= var_holes
+ var98
;
4966 RET_LABEL100
:(void)0;
4972 CONTINUE_label106
: (void)0;
4974 array__ArrayIterator__next(var87
); /* Direct call array#ArrayIterator#next on <var87:ArrayIterator[nullable Object]>*/
4977 BREAK_label106
: (void)0;
4978 CONTINUE_label107
: (void)0;
4980 ((void (*)(val
*))(var73
->class->vft
[COLOR_abstract_collection__MapIterator__next
]))(var73
) /* next on <var73:MapIterator[Object, nullable Object]>*/;
4983 BREAK_label107
: (void)0;
4985 var109
= varonce108
;
4989 var112
= string__NativeString__to_s_with_length(var110
, var111
);
4991 varonce108
= var109
;
4994 var114
= varonce113
;
4998 var117
= string__NativeString__to_s_with_length(var115
, var116
);
5000 varonce113
= var114
;
5002 var118
= NEW_array__Array(&type_array__Arraykernel__Object
);
5003 { /* var118 = array_instance Array[Object] */
5005 var120
= NEW_array__NativeArray(var119
, &type_array__NativeArraykernel__Object
);
5006 ((struct instance_array__NativeArray
*)var120
)->values
[0] = (val
*) var109
;
5007 var121
= BOX_kernel__Int(var_total
); /* autobox from Int to Object */
5008 ((struct instance_array__NativeArray
*)var120
)->values
[1] = (val
*) var121
;
5009 ((struct instance_array__NativeArray
*)var120
)->values
[2] = (val
*) var114
;
5010 var122
= BOX_kernel__Int(var_holes
); /* autobox from Int to Object */
5011 ((struct instance_array__NativeArray
*)var120
)->values
[3] = (val
*) var122
;
5013 ((void (*)(val
*, val
*, long))(var118
->class->vft
[COLOR_array__Array__with_native
]))(var118
, var120
, var119
) /* with_native on <var118:Array[Object]>*/;
5017 var123
= ((val
* (*)(val
*))(var118
->class->vft
[COLOR_string__Object__to_s
]))(var118
) /* to_s on <var118:Array[Object]>*/;
5020 file__Object__print(self
, var123
); /* Direct call file#Object#print on <self:SeparateCompiler>*/
5023 var125
= varonce124
;
5025 var126
= "# size of methods tables";
5027 var128
= string__NativeString__to_s_with_length(var126
, var127
);
5029 varonce124
= var125
;
5032 file__Object__print(self
, var125
); /* Direct call file#Object#print on <self:SeparateCompiler>*/
5035 var130
= varonce129
;
5037 var131
= "\11total \11holes";
5039 var133
= string__NativeString__to_s_with_length(var131
, var132
);
5041 varonce129
= var130
;
5044 file__Object__print(self
, var130
); /* Direct call file#Object#print on <self:SeparateCompiler>*/
5051 { /* Inline separate_compiler#SeparateCompiler#method_tables (self) on <self:SeparateCompiler> */
5052 var138
= self
->attrs
[COLOR_separate_compiler__SeparateCompiler___method_tables
].val
; /* _method_tables on <self:SeparateCompiler> */
5053 if (unlikely(var138
== NULL
)) {
5054 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _method_tables");
5055 PRINT_ERROR(" (%s:%d)\n", "src/separate_compiler.nit", 792);
5059 RET_LABEL137
:(void)0;
5063 var139
= ((val
* (*)(val
*))(var136
->class->vft
[COLOR_abstract_collection__MapRead__iterator
]))(var136
) /* iterator on <var136:Map[MClass, Array[nullable MPropDef]]>*/;
5067 var140
= ((short int (*)(val
*))(var139
->class->vft
[COLOR_abstract_collection__MapIterator__is_ok
]))(var139
) /* is_ok on <var139:MapIterator[Object, nullable Object]>*/;
5071 var141
= ((val
* (*)(val
*))(var139
->class->vft
[COLOR_abstract_collection__MapIterator__key
]))(var139
) /* key on <var139:MapIterator[Object, nullable Object]>*/;
5075 var143
= ((val
* (*)(val
*))(var139
->class->vft
[COLOR_abstract_collection__MapIterator__item
]))(var139
) /* item on <var139:MapIterator[Object, nullable Object]>*/;
5077 var_table144
= var143
;
5079 var145
= array__AbstractArrayRead__length(var_table144
);
5082 { /* Inline kernel#Int#+ (var_total,var145) on <var_total:Int> */
5083 /* Covariant cast for argument 0 (i) <var145:Int> isa OTHER */
5084 /* <var145:Int> isa OTHER */
5085 var148
= 1; /* easy <var145:Int> isa OTHER*/
5086 if (unlikely(!var148
)) {
5087 var_class_name151
= type_kernel__Int
.name
;
5088 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name151
);
5089 PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 328);
5092 var152
= var_total
+ var145
;
5095 RET_LABEL147
:(void)0;
5100 var153
= array__AbstractArrayRead__iterator(var_table144
);
5104 var154
= array__ArrayIterator__is_ok(var153
);
5108 var155
= array__ArrayIterator__item(var153
);
5112 if (var_e156
== NULL
) {
5113 var158
= 1; /* is null */
5115 var158
= 0; /* arg is null but recv is not */
5118 { /* Inline kernel#Object#== (var_e156,var157) on <var_e156:nullable MPropDef> */
5121 { /* Inline kernel#Object#is_same_instance (var_e156,var_other) on <var_e156:nullable MPropDef(MPropDef)> */
5122 var163
= var_e156
== var_other
;
5125 RET_LABEL162
:(void)0;
5130 RET_LABEL160
:(void)0;
5137 { /* Inline kernel#Int#+ (var_holes,var164) on <var_holes:Int> */
5138 /* Covariant cast for argument 0 (i) <var164:Int> isa OTHER */
5139 /* <var164:Int> isa OTHER */
5140 var167
= 1; /* easy <var164:Int> isa OTHER*/
5141 if (unlikely(!var167
)) {
5142 var_class_name170
= type_kernel__Int
.name
;
5143 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name170
);
5144 PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 328);
5147 var171
= var_holes
+ var164
;
5150 RET_LABEL166
:(void)0;
5156 CONTINUE_label172
: (void)0;
5158 array__ArrayIterator__next(var153
); /* Direct call array#ArrayIterator#next on <var153:ArrayIterator[nullable Object]>*/
5161 BREAK_label172
: (void)0;
5162 CONTINUE_label173
: (void)0;
5164 ((void (*)(val
*))(var139
->class->vft
[COLOR_abstract_collection__MapIterator__next
]))(var139
) /* next on <var139:MapIterator[Object, nullable Object]>*/;
5167 BREAK_label173
: (void)0;
5169 var175
= varonce174
;
5173 var178
= string__NativeString__to_s_with_length(var176
, var177
);
5175 varonce174
= var175
;
5178 var180
= varonce179
;
5182 var183
= string__NativeString__to_s_with_length(var181
, var182
);
5184 varonce179
= var180
;
5186 var184
= NEW_array__Array(&type_array__Arraykernel__Object
);
5187 { /* var184 = array_instance Array[Object] */
5189 var186
= NEW_array__NativeArray(var185
, &type_array__NativeArraykernel__Object
);
5190 ((struct instance_array__NativeArray
*)var186
)->values
[0] = (val
*) var175
;
5191 var187
= BOX_kernel__Int(var_total
); /* autobox from Int to Object */
5192 ((struct instance_array__NativeArray
*)var186
)->values
[1] = (val
*) var187
;
5193 ((struct instance_array__NativeArray
*)var186
)->values
[2] = (val
*) var180
;
5194 var188
= BOX_kernel__Int(var_holes
); /* autobox from Int to Object */
5195 ((struct instance_array__NativeArray
*)var186
)->values
[3] = (val
*) var188
;
5197 ((void (*)(val
*, val
*, long))(var184
->class->vft
[COLOR_array__Array__with_native
]))(var184
, var186
, var185
) /* with_native on <var184:Array[Object]>*/;
5201 var189
= ((val
* (*)(val
*))(var184
->class->vft
[COLOR_string__Object__to_s
]))(var184
) /* to_s on <var184:Array[Object]>*/;
5204 file__Object__print(self
, var189
); /* Direct call file#Object#print on <self:SeparateCompiler>*/
5207 var191
= varonce190
;
5209 var192
= "# size of attributes tables";
5211 var194
= string__NativeString__to_s_with_length(var192
, var193
);
5213 varonce190
= var191
;
5216 file__Object__print(self
, var191
); /* Direct call file#Object#print on <self:SeparateCompiler>*/
5219 var196
= varonce195
;
5221 var197
= "\11total \11holes";
5223 var199
= string__NativeString__to_s_with_length(var197
, var198
);
5225 varonce195
= var196
;
5228 file__Object__print(self
, var196
); /* Direct call file#Object#print on <self:SeparateCompiler>*/
5235 { /* Inline separate_compiler#SeparateCompiler#attr_tables (self) on <self:SeparateCompiler> */
5236 var204
= self
->attrs
[COLOR_separate_compiler__SeparateCompiler___attr_tables
].val
; /* _attr_tables on <self:SeparateCompiler> */
5237 if (unlikely(var204
== NULL
)) {
5238 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _attr_tables");
5239 PRINT_ERROR(" (%s:%d)\n", "src/separate_compiler.nit", 793);
5243 RET_LABEL203
:(void)0;
5247 var205
= ((val
* (*)(val
*))(var202
->class->vft
[COLOR_abstract_collection__MapRead__iterator
]))(var202
) /* iterator on <var202:Map[MClass, Array[nullable MPropDef]]>*/;
5251 var206
= ((short int (*)(val
*))(var205
->class->vft
[COLOR_abstract_collection__MapIterator__is_ok
]))(var205
) /* is_ok on <var205:MapIterator[Object, nullable Object]>*/;
5255 var207
= ((val
* (*)(val
*))(var205
->class->vft
[COLOR_abstract_collection__MapIterator__key
]))(var205
) /* key on <var205:MapIterator[Object, nullable Object]>*/;
5259 var209
= ((val
* (*)(val
*))(var205
->class->vft
[COLOR_abstract_collection__MapIterator__item
]))(var205
) /* item on <var205:MapIterator[Object, nullable Object]>*/;
5261 var_table210
= var209
;
5263 var211
= array__AbstractArrayRead__length(var_table210
);
5266 { /* Inline kernel#Int#+ (var_total,var211) on <var_total:Int> */
5267 /* Covariant cast for argument 0 (i) <var211:Int> isa OTHER */
5268 /* <var211:Int> isa OTHER */
5269 var214
= 1; /* easy <var211:Int> isa OTHER*/
5270 if (unlikely(!var214
)) {
5271 var_class_name217
= type_kernel__Int
.name
;
5272 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name217
);
5273 PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 328);
5276 var218
= var_total
+ var211
;
5279 RET_LABEL213
:(void)0;
5284 var219
= array__AbstractArrayRead__iterator(var_table210
);
5288 var220
= array__ArrayIterator__is_ok(var219
);
5292 var221
= array__ArrayIterator__item(var219
);
5296 if (var_e222
== NULL
) {
5297 var224
= 1; /* is null */
5299 var224
= 0; /* arg is null but recv is not */
5302 { /* Inline kernel#Object#== (var_e222,var223) on <var_e222:nullable MPropDef> */
5305 { /* Inline kernel#Object#is_same_instance (var_e222,var_other) on <var_e222:nullable MPropDef(MPropDef)> */
5306 var229
= var_e222
== var_other
;
5309 RET_LABEL228
:(void)0;
5314 RET_LABEL226
:(void)0;
5321 { /* Inline kernel#Int#+ (var_holes,var230) on <var_holes:Int> */
5322 /* Covariant cast for argument 0 (i) <var230:Int> isa OTHER */
5323 /* <var230:Int> isa OTHER */
5324 var233
= 1; /* easy <var230:Int> isa OTHER*/
5325 if (unlikely(!var233
)) {
5326 var_class_name236
= type_kernel__Int
.name
;
5327 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name236
);
5328 PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 328);
5331 var237
= var_holes
+ var230
;
5334 RET_LABEL232
:(void)0;
5340 CONTINUE_label238
: (void)0;
5342 array__ArrayIterator__next(var219
); /* Direct call array#ArrayIterator#next on <var219:ArrayIterator[nullable Object]>*/
5345 BREAK_label238
: (void)0;
5346 CONTINUE_label239
: (void)0;
5348 ((void (*)(val
*))(var205
->class->vft
[COLOR_abstract_collection__MapIterator__next
]))(var205
) /* next on <var205:MapIterator[Object, nullable Object]>*/;
5351 BREAK_label239
: (void)0;
5353 var241
= varonce240
;
5357 var244
= string__NativeString__to_s_with_length(var242
, var243
);
5359 varonce240
= var241
;
5362 var246
= varonce245
;
5366 var249
= string__NativeString__to_s_with_length(var247
, var248
);
5368 varonce245
= var246
;
5370 var250
= NEW_array__Array(&type_array__Arraykernel__Object
);
5371 { /* var250 = array_instance Array[Object] */
5373 var252
= NEW_array__NativeArray(var251
, &type_array__NativeArraykernel__Object
);
5374 ((struct instance_array__NativeArray
*)var252
)->values
[0] = (val
*) var241
;
5375 var253
= BOX_kernel__Int(var_total
); /* autobox from Int to Object */
5376 ((struct instance_array__NativeArray
*)var252
)->values
[1] = (val
*) var253
;
5377 ((struct instance_array__NativeArray
*)var252
)->values
[2] = (val
*) var246
;
5378 var254
= BOX_kernel__Int(var_holes
); /* autobox from Int to Object */
5379 ((struct instance_array__NativeArray
*)var252
)->values
[3] = (val
*) var254
;
5381 ((void (*)(val
*, val
*, long))(var250
->class->vft
[COLOR_array__Array__with_native
]))(var250
, var252
, var251
) /* with_native on <var250:Array[Object]>*/;
5385 var255
= ((val
* (*)(val
*))(var250
->class->vft
[COLOR_string__Object__to_s
]))(var250
) /* to_s on <var250:Array[Object]>*/;
5388 file__Object__print(self
, var255
); /* Direct call file#Object#print on <self:SeparateCompiler>*/
5392 /* method separate_compiler#SeparateCompiler#display_sizes for (self: Object) */
5393 void VIRTUAL_separate_compiler__SeparateCompiler__display_sizes(val
* self
) {
5394 separate_compiler__SeparateCompiler__display_sizes(self
); /* Direct call separate_compiler#SeparateCompiler#display_sizes on <self:Object(SeparateCompiler)>*/
5397 /* method separate_compiler#SeparateCompiler#isset_checks_count for (self: SeparateCompiler): Int */
5398 long separate_compiler__SeparateCompiler__isset_checks_count(val
* self
) {
5399 long var
/* : Int */;
5400 long var1
/* : Int */;
5401 var1
= self
->attrs
[COLOR_separate_compiler__SeparateCompiler___isset_checks_count
].l
; /* _isset_checks_count on <self:SeparateCompiler> */
5406 /* method separate_compiler#SeparateCompiler#isset_checks_count for (self: Object): Int */
5407 long VIRTUAL_separate_compiler__SeparateCompiler__isset_checks_count(val
* self
) {
5408 long var
/* : Int */;
5409 long var1
/* : Int */;
5410 long var3
/* : Int */;
5411 { /* Inline separate_compiler#SeparateCompiler#isset_checks_count (self) on <self:Object(SeparateCompiler)> */
5412 var3
= self
->attrs
[COLOR_separate_compiler__SeparateCompiler___isset_checks_count
].l
; /* _isset_checks_count on <self:Object(SeparateCompiler)> */
5420 /* method separate_compiler#SeparateCompiler#isset_checks_count= for (self: SeparateCompiler, Int) */
5421 void separate_compiler__SeparateCompiler__isset_checks_count_61d(val
* self
, long p0
) {
5422 self
->attrs
[COLOR_separate_compiler__SeparateCompiler___isset_checks_count
].l
= p0
; /* _isset_checks_count on <self:SeparateCompiler> */
5425 /* method separate_compiler#SeparateCompiler#isset_checks_count= for (self: Object, Int) */
5426 void VIRTUAL_separate_compiler__SeparateCompiler__isset_checks_count_61d(val
* self
, long p0
) {
5427 { /* Inline separate_compiler#SeparateCompiler#isset_checks_count= (self,p0) on <self:Object(SeparateCompiler)> */
5428 self
->attrs
[COLOR_separate_compiler__SeparateCompiler___isset_checks_count
].l
= p0
; /* _isset_checks_count on <self:Object(SeparateCompiler)> */
5433 /* method separate_compiler#SeparateCompiler#attr_read_count for (self: SeparateCompiler): Int */
5434 long separate_compiler__SeparateCompiler__attr_read_count(val
* self
) {
5435 long var
/* : Int */;
5436 long var1
/* : Int */;
5437 var1
= self
->attrs
[COLOR_separate_compiler__SeparateCompiler___attr_read_count
].l
; /* _attr_read_count on <self:SeparateCompiler> */
5442 /* method separate_compiler#SeparateCompiler#attr_read_count for (self: Object): Int */
5443 long VIRTUAL_separate_compiler__SeparateCompiler__attr_read_count(val
* self
) {
5444 long var
/* : Int */;
5445 long var1
/* : Int */;
5446 long var3
/* : Int */;
5447 { /* Inline separate_compiler#SeparateCompiler#attr_read_count (self) on <self:Object(SeparateCompiler)> */
5448 var3
= self
->attrs
[COLOR_separate_compiler__SeparateCompiler___attr_read_count
].l
; /* _attr_read_count on <self:Object(SeparateCompiler)> */
5456 /* method separate_compiler#SeparateCompiler#attr_read_count= for (self: SeparateCompiler, Int) */
5457 void separate_compiler__SeparateCompiler__attr_read_count_61d(val
* self
, long p0
) {
5458 self
->attrs
[COLOR_separate_compiler__SeparateCompiler___attr_read_count
].l
= p0
; /* _attr_read_count on <self:SeparateCompiler> */
5461 /* method separate_compiler#SeparateCompiler#attr_read_count= for (self: Object, Int) */
5462 void VIRTUAL_separate_compiler__SeparateCompiler__attr_read_count_61d(val
* self
, long p0
) {
5463 { /* Inline separate_compiler#SeparateCompiler#attr_read_count= (self,p0) on <self:Object(SeparateCompiler)> */
5464 self
->attrs
[COLOR_separate_compiler__SeparateCompiler___attr_read_count
].l
= p0
; /* _attr_read_count on <self:Object(SeparateCompiler)> */
5469 /* method separate_compiler#SeparateCompiler#display_isset_checks for (self: SeparateCompiler) */
5470 void separate_compiler__SeparateCompiler__display_isset_checks(val
* self
) {
5471 static val
* varonce
;
5472 val
* var
/* : String */;
5473 char* var1
/* : NativeString */;
5474 long var2
/* : Int */;
5475 val
* var3
/* : FlatString */;
5476 static val
* varonce4
;
5477 val
* var5
/* : String */;
5478 char* var6
/* : NativeString */;
5479 long var7
/* : Int */;
5480 val
* var8
/* : FlatString */;
5481 long var9
/* : Int */;
5482 long var11
/* : Int */;
5483 val
* var12
/* : Array[Object] */;
5484 long var13
/* : Int */;
5485 val
* var14
/* : NativeArray[Object] */;
5486 val
* var15
/* : Object */;
5487 val
* var16
/* : String */;
5488 static val
* varonce17
;
5489 val
* var18
/* : String */;
5490 char* var19
/* : NativeString */;
5491 long var20
/* : Int */;
5492 val
* var21
/* : FlatString */;
5493 static val
* varonce22
;
5494 val
* var23
/* : String */;
5495 char* var24
/* : NativeString */;
5496 long var25
/* : Int */;
5497 val
* var26
/* : FlatString */;
5498 long var27
/* : Int */;
5499 long var29
/* : Int */;
5500 val
* var30
/* : Array[Object] */;
5501 long var31
/* : Int */;
5502 val
* var32
/* : NativeArray[Object] */;
5503 val
* var33
/* : Object */;
5504 val
* var34
/* : String */;
5508 var1
= "# total number of compiled attribute reads";
5510 var3
= string__NativeString__to_s_with_length(var1
, var2
);
5515 file__Object__print(self
, var
); /* Direct call file#Object#print on <self:SeparateCompiler>*/
5522 var8
= string__NativeString__to_s_with_length(var6
, var7
);
5527 { /* Inline separate_compiler#SeparateCompiler#attr_read_count (self) on <self:SeparateCompiler> */
5528 var11
= self
->attrs
[COLOR_separate_compiler__SeparateCompiler___attr_read_count
].l
; /* _attr_read_count on <self:SeparateCompiler> */
5530 RET_LABEL10
:(void)0;
5533 var12
= NEW_array__Array(&type_array__Arraykernel__Object
);
5534 { /* var12 = array_instance Array[Object] */
5536 var14
= NEW_array__NativeArray(var13
, &type_array__NativeArraykernel__Object
);
5537 ((struct instance_array__NativeArray
*)var14
)->values
[0] = (val
*) var5
;
5538 var15
= BOX_kernel__Int(var9
); /* autobox from Int to Object */
5539 ((struct instance_array__NativeArray
*)var14
)->values
[1] = (val
*) var15
;
5541 ((void (*)(val
*, val
*, long))(var12
->class->vft
[COLOR_array__Array__with_native
]))(var12
, var14
, var13
) /* with_native on <var12:Array[Object]>*/;
5545 var16
= ((val
* (*)(val
*))(var12
->class->vft
[COLOR_string__Object__to_s
]))(var12
) /* to_s on <var12:Array[Object]>*/;
5548 file__Object__print(self
, var16
); /* Direct call file#Object#print on <self:SeparateCompiler>*/
5553 var19
= "# total number of compiled isset-checks";
5555 var21
= string__NativeString__to_s_with_length(var19
, var20
);
5560 file__Object__print(self
, var18
); /* Direct call file#Object#print on <self:SeparateCompiler>*/
5567 var26
= string__NativeString__to_s_with_length(var24
, var25
);
5572 { /* Inline separate_compiler#SeparateCompiler#isset_checks_count (self) on <self:SeparateCompiler> */
5573 var29
= self
->attrs
[COLOR_separate_compiler__SeparateCompiler___isset_checks_count
].l
; /* _isset_checks_count on <self:SeparateCompiler> */
5575 RET_LABEL28
:(void)0;
5578 var30
= NEW_array__Array(&type_array__Arraykernel__Object
);
5579 { /* var30 = array_instance Array[Object] */
5581 var32
= NEW_array__NativeArray(var31
, &type_array__NativeArraykernel__Object
);
5582 ((struct instance_array__NativeArray
*)var32
)->values
[0] = (val
*) var23
;
5583 var33
= BOX_kernel__Int(var27
); /* autobox from Int to Object */
5584 ((struct instance_array__NativeArray
*)var32
)->values
[1] = (val
*) var33
;
5586 ((void (*)(val
*, val
*, long))(var30
->class->vft
[COLOR_array__Array__with_native
]))(var30
, var32
, var31
) /* with_native on <var30:Array[Object]>*/;
5590 var34
= ((val
* (*)(val
*))(var30
->class->vft
[COLOR_string__Object__to_s
]))(var30
) /* to_s on <var30:Array[Object]>*/;
5593 file__Object__print(self
, var34
); /* Direct call file#Object#print on <self:SeparateCompiler>*/
5597 /* method separate_compiler#SeparateCompiler#display_isset_checks for (self: Object) */
5598 void VIRTUAL_separate_compiler__SeparateCompiler__display_isset_checks(val
* self
) {
5599 separate_compiler__SeparateCompiler__display_isset_checks(self
); /* Direct call separate_compiler#SeparateCompiler#display_isset_checks on <self:Object(SeparateCompiler)>*/
5602 /* method separate_compiler#SeparateCompiler#compile_nitni_structs for (self: SeparateCompiler) */
5603 void separate_compiler__SeparateCompiler__compile_nitni_structs(val
* self
) {
5604 val
* var
/* : CodeWriter */;
5605 val
* var2
/* : CodeWriter */;
5606 static val
* varonce
;
5607 val
* var3
/* : String */;
5608 char* var4
/* : NativeString */;
5609 long var5
/* : Int */;
5610 val
* var6
/* : FlatString */;
5612 { /* Inline abstract_compiler#AbstractCompiler#header (self) on <self:SeparateCompiler> */
5613 var2
= self
->attrs
[COLOR_abstract_compiler__AbstractCompiler___header
].val
; /* _header on <self:SeparateCompiler> */
5614 if (unlikely(var2
== NULL
)) {
5615 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _header");
5616 PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 472);
5626 var4
= "struct nitni_instance {\n\11struct nitni_instance *next,\n\11\11*prev; /* adjacent global references in global list */\n\11int count; /* number of time this global reference has been marked */\n\11struct instance *value;\n};\n";
5628 var6
= string__NativeString__to_s_with_length(var4
, var5
);
5633 abstract_compiler__CodeWriter__add_decl(var
, var3
); /* Direct call abstract_compiler#CodeWriter#add_decl on <var:CodeWriter>*/
5636 ((void (*)(val
*))(self
->class->vft
[COLOR_separate_compiler__SeparateCompiler__compile_nitni_structs
]))(self
) /* compile_nitni_structs on <self:SeparateCompiler>*/;
5640 /* method separate_compiler#SeparateCompiler#compile_nitni_structs for (self: Object) */
5641 void VIRTUAL_separate_compiler__SeparateCompiler__compile_nitni_structs(val
* self
) {
5642 separate_compiler__SeparateCompiler__compile_nitni_structs(self
); /* Direct call separate_compiler#SeparateCompiler#compile_nitni_structs on <self:Object(SeparateCompiler)>*/
5645 /* method separate_compiler#SeparateCompiler#finalize_ffi_for_module for (self: SeparateCompiler, MModule) */
5646 void separate_compiler__SeparateCompiler__finalize_ffi_for_module(val
* self
, val
* p0
) {
5647 val
* var_mmodule
/* var mmodule: MModule */;
5648 val
* var
/* : MModule */;
5649 val
* var2
/* : MModule */;
5650 val
* var_old_module
/* var old_module: MModule */;
5653 { /* Inline abstract_compiler#AbstractCompiler#mainmodule (self) on <self:SeparateCompiler> */
5654 var2
= self
->attrs
[COLOR_abstract_compiler__AbstractCompiler___mainmodule
].val
; /* _mainmodule on <self:SeparateCompiler> */
5655 if (unlikely(var2
== NULL
)) {
5656 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule");
5657 PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 436);
5664 var_old_module
= var
;
5666 { /* Inline abstract_compiler#AbstractCompiler#mainmodule= (self,var_mmodule) on <self:SeparateCompiler> */
5667 self
->attrs
[COLOR_abstract_compiler__AbstractCompiler___mainmodule
].val
= var_mmodule
; /* _mainmodule on <self:SeparateCompiler> */
5672 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_separate_compiler__SeparateCompiler__finalize_ffi_for_module
]))(self
, p0
) /* finalize_ffi_for_module on <self:SeparateCompiler>*/;
5675 { /* Inline abstract_compiler#AbstractCompiler#mainmodule= (self,var_old_module) on <self:SeparateCompiler> */
5676 self
->attrs
[COLOR_abstract_compiler__AbstractCompiler___mainmodule
].val
= var_old_module
; /* _mainmodule on <self:SeparateCompiler> */
5682 /* method separate_compiler#SeparateCompiler#finalize_ffi_for_module for (self: Object, MModule) */
5683 void VIRTUAL_separate_compiler__SeparateCompiler__finalize_ffi_for_module(val
* self
, val
* p0
) {
5684 separate_compiler__SeparateCompiler__finalize_ffi_for_module(self
, p0
); /* Direct call separate_compiler#SeparateCompiler#finalize_ffi_for_module on <self:Object(SeparateCompiler)>*/
5687 /* method separate_compiler#SeparateCompilerVisitor#adapt_signature for (self: SeparateCompilerVisitor, MMethodDef, Array[RuntimeVariable]) */
5688 void separate_compiler__SeparateCompilerVisitor__adapt_signature(val
* self
, val
* p0
, val
* p1
) {
5689 val
* var_m
/* var m: MMethodDef */;
5690 val
* var_args
/* var args: Array[RuntimeVariable] */;
5691 val
* var
/* : nullable MSignature */;
5692 val
* var2
/* : nullable MSignature */;
5693 val
* var3
/* : MClassDef */;
5694 val
* var5
/* : MClassDef */;
5695 val
* var6
/* : MClassType */;
5696 val
* var8
/* : MClassType */;
5697 val
* var9
/* : MClassDef */;
5698 val
* var11
/* : MClassDef */;
5699 val
* var12
/* : MClassType */;
5700 val
* var14
/* : MClassType */;
5701 val
* var15
/* : MClassDef */;
5702 val
* var17
/* : MClassDef */;
5703 val
* var18
/* : MModule */;
5704 val
* var20
/* : MModule */;
5705 short int var21
/* : Bool */;
5706 val
* var22
/* : MSignature */;
5707 val
* var_msignature
/* var msignature: MSignature */;
5708 val
* var23
/* : nullable Object */;
5709 val
* var_recv
/* var recv: RuntimeVariable */;
5710 val
* var24
/* : MType */;
5711 val
* var26
/* : MType */;
5712 val
* var27
/* : String */;
5713 val
* var28
/* : MClassDef */;
5714 val
* var30
/* : MClassDef */;
5715 val
* var31
/* : MClass */;
5716 val
* var33
/* : MClass */;
5717 val
* var34
/* : MClassType */;
5718 val
* var36
/* : MClassType */;
5719 val
* var37
/* : String */;
5720 short int var38
/* : Bool */;
5721 short int var39
/* : Bool */;
5722 val
* var_other
/* var other: nullable Object */;
5723 short int var41
/* : Bool */;
5724 short int var42
/* : Bool */;
5725 short int var43
/* : Bool */;
5726 val
* var44
/* : nullable Object */;
5727 val
* var45
/* : MClassDef */;
5728 val
* var47
/* : MClassDef */;
5729 val
* var48
/* : MClass */;
5730 val
* var50
/* : MClass */;
5731 val
* var51
/* : MClassType */;
5732 val
* var53
/* : MClassType */;
5733 val
* var54
/* : RuntimeVariable */;
5734 val
* var55
/* : Range[Int] */;
5735 long var56
/* : Int */;
5736 long var57
/* : Int */;
5737 val
* var58
/* : Discrete */;
5738 val
* var59
/* : Discrete */;
5739 val
* var60
/* : Iterator[Discrete] */;
5740 short int var61
/* : Bool */;
5741 val
* var62
/* : nullable Object */;
5742 long var_i
/* var i: Int */;
5743 long var63
/* : Int */;
5744 val
* var64
/* : Array[MParameter] */;
5745 val
* var66
/* : Array[MParameter] */;
5746 val
* var67
/* : nullable Object */;
5747 val
* var68
/* : MType */;
5748 val
* var70
/* : MType */;
5749 val
* var_t
/* var t: MType */;
5750 long var71
/* : Int */;
5751 long var73
/* : Int */;
5752 short int var74
/* : Bool */;
5753 short int var75
/* : Bool */;
5754 short int var77
/* : Bool */;
5755 long var78
/* : Int */;
5756 long var79
/* : Int */;
5757 short int var81
/* : Bool */;
5760 const char* var_class_name
;
5761 long var82
/* : Int */;
5762 val
* var83
/* : nullable Object */;
5763 val
* var84
/* : MType */;
5764 val
* var86
/* : MType */;
5765 long var87
/* : Int */;
5766 long var88
/* : Int */;
5767 short int var90
/* : Bool */;
5770 const char* var_class_name93
;
5771 long var94
/* : Int */;
5772 long var95
/* : Int */;
5773 long var96
/* : Int */;
5774 short int var98
/* : Bool */;
5777 const char* var_class_name101
;
5778 long var102
/* : Int */;
5779 val
* var103
/* : nullable Object */;
5780 val
* var104
/* : RuntimeVariable */;
5784 { /* Inline model#MMethodDef#msignature (var_m) on <var_m:MMethodDef> */
5785 var2
= var_m
->attrs
[COLOR_model__MMethodDef___msignature
].val
; /* _msignature on <var_m:MMethodDef> */
5791 { /* Inline model#MPropDef#mclassdef (var_m) on <var_m:MMethodDef> */
5792 var5
= var_m
->attrs
[COLOR_model__MPropDef___mclassdef
].val
; /* _mclassdef on <var_m:MMethodDef> */
5793 if (unlikely(var5
== NULL
)) {
5794 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdef");
5795 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1879);
5803 { /* Inline model#MClassDef#bound_mtype (var3) on <var3:MClassDef> */
5804 var8
= var3
->attrs
[COLOR_model__MClassDef___bound_mtype
].val
; /* _bound_mtype on <var3:MClassDef> */
5805 if (unlikely(var8
== NULL
)) {
5806 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _bound_mtype");
5807 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 477);
5815 { /* Inline model#MPropDef#mclassdef (var_m) on <var_m:MMethodDef> */
5816 var11
= var_m
->attrs
[COLOR_model__MPropDef___mclassdef
].val
; /* _mclassdef on <var_m:MMethodDef> */
5817 if (unlikely(var11
== NULL
)) {
5818 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdef");
5819 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1879);
5823 RET_LABEL10
:(void)0;
5827 { /* Inline model#MClassDef#bound_mtype (var9) on <var9:MClassDef> */
5828 var14
= var9
->attrs
[COLOR_model__MClassDef___bound_mtype
].val
; /* _bound_mtype on <var9:MClassDef> */
5829 if (unlikely(var14
== NULL
)) {
5830 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _bound_mtype");
5831 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 477);
5835 RET_LABEL13
:(void)0;
5839 { /* Inline model#MPropDef#mclassdef (var_m) on <var_m:MMethodDef> */
5840 var17
= var_m
->attrs
[COLOR_model__MPropDef___mclassdef
].val
; /* _mclassdef on <var_m:MMethodDef> */
5841 if (unlikely(var17
== NULL
)) {
5842 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdef");
5843 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1879);
5847 RET_LABEL16
:(void)0;
5851 { /* Inline model#MClassDef#mmodule (var15) on <var15:MClassDef> */
5852 var20
= var15
->attrs
[COLOR_model__MClassDef___mmodule
].val
; /* _mmodule on <var15:MClassDef> */
5853 if (unlikely(var20
== NULL
)) {
5854 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule");
5855 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 471);
5859 RET_LABEL19
:(void)0;
5864 PRINT_ERROR("Runtime error: %s", "Receiver is null");
5865 PRINT_ERROR(" (%s:%d)\n", "src/separate_compiler.nit", 896);
5868 var22
= model__MSignature__resolve_for(var
, var6
, var12
, var18
, var21
);
5870 var_msignature
= var22
;
5872 var23
= abstract_collection__SequenceRead__first(var_args
);
5876 { /* Inline abstract_compiler#RuntimeVariable#mtype (var_recv) on <var_recv:RuntimeVariable> */
5877 var26
= var_recv
->attrs
[COLOR_abstract_compiler__RuntimeVariable___mtype
].val
; /* _mtype on <var_recv:RuntimeVariable> */
5878 if (unlikely(var26
== NULL
)) {
5879 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
5880 PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 1484);
5884 RET_LABEL25
:(void)0;
5888 var27
= ((val
* (*)(val
*))(var24
->class->vft
[COLOR_abstract_compiler__MType__ctype
]))(var24
) /* ctype on <var24:MType>*/;
5891 { /* Inline model#MPropDef#mclassdef (var_m) on <var_m:MMethodDef> */
5892 var30
= var_m
->attrs
[COLOR_model__MPropDef___mclassdef
].val
; /* _mclassdef on <var_m:MMethodDef> */
5893 if (unlikely(var30
== NULL
)) {
5894 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdef");
5895 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1879);
5899 RET_LABEL29
:(void)0;
5903 { /* Inline model#MClassDef#mclass (var28) on <var28:MClassDef> */
5904 var33
= var28
->attrs
[COLOR_model__MClassDef___mclass
].val
; /* _mclass on <var28:MClassDef> */
5905 if (unlikely(var33
== NULL
)) {
5906 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
5907 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 474);
5911 RET_LABEL32
:(void)0;
5915 { /* Inline model#MClass#mclass_type (var31) on <var31:MClass> */
5916 var36
= var31
->attrs
[COLOR_model__MClass___mclass_type
].val
; /* _mclass_type on <var31:MClass> */
5917 if (unlikely(var36
== NULL
)) {
5918 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass_type");
5919 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 417);
5923 RET_LABEL35
:(void)0;
5927 var37
= abstract_compiler__MClassType__ctype(var34
);
5930 { /* Inline kernel#Object#!= (var27,var37) on <var27:String> */
5933 var42
= ((short int (*)(val
*, val
*))(var27
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var27
, var_other
) /* == on <var27:String>*/;
5939 RET_LABEL40
:(void)0;
5945 var44
= abstract_collection__SequenceRead__first(var_args
);
5948 { /* Inline model#MPropDef#mclassdef (var_m) on <var_m:MMethodDef> */
5949 var47
= var_m
->attrs
[COLOR_model__MPropDef___mclassdef
].val
; /* _mclassdef on <var_m:MMethodDef> */
5950 if (unlikely(var47
== NULL
)) {
5951 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdef");
5952 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1879);
5956 RET_LABEL46
:(void)0;
5960 { /* Inline model#MClassDef#mclass (var45) on <var45:MClassDef> */
5961 var50
= var45
->attrs
[COLOR_model__MClassDef___mclass
].val
; /* _mclass on <var45:MClassDef> */
5962 if (unlikely(var50
== NULL
)) {
5963 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
5964 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 474);
5968 RET_LABEL49
:(void)0;
5972 { /* Inline model#MClass#mclass_type (var48) on <var48:MClass> */
5973 var53
= var48
->attrs
[COLOR_model__MClass___mclass_type
].val
; /* _mclass_type on <var48:MClass> */
5974 if (unlikely(var53
== NULL
)) {
5975 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass_type");
5976 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 417);
5980 RET_LABEL52
:(void)0;
5984 var54
= separate_compiler__SeparateCompilerVisitor__autobox(self
, var44
, var51
);
5987 abstract_collection__Sequence__first_61d(var_args
, var54
); /* Direct call abstract_collection#Sequence#first= on <var_args:Array[RuntimeVariable]>*/
5991 var55
= NEW_range__Range(&type_range__Rangekernel__Int
);
5994 var57
= model__MSignature__arity(var_msignature
);
5997 var58
= BOX_kernel__Int(var56
); /* autobox from Int to Discrete */
5998 var59
= BOX_kernel__Int(var57
); /* autobox from Int to Discrete */
5999 range__Range__without_last(var55
, var58
, var59
); /* Direct call range#Range#without_last on <var55:Range[Int]>*/
6002 var60
= range__Range__iterator(var55
);
6006 var61
= ((short int (*)(val
*))(var60
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var60
) /* is_ok on <var60:Iterator[Discrete]>*/;
6010 var62
= ((val
* (*)(val
*))(var60
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var60
) /* item on <var60:Iterator[Discrete]>*/;
6012 var63
= ((struct instance_kernel__Int
*)var62
)->value
; /* autounbox from nullable Object to Int */;
6015 { /* Inline model#MSignature#mparameters (var_msignature) on <var_msignature:MSignature> */
6016 var66
= var_msignature
->attrs
[COLOR_model__MSignature___mparameters
].val
; /* _mparameters on <var_msignature:MSignature> */
6017 if (unlikely(var66
== NULL
)) {
6018 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mparameters");
6019 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1452);
6023 RET_LABEL65
:(void)0;
6027 var67
= array__Array___91d_93d(var64
, var_i
);
6030 { /* Inline model#MParameter#mtype (var67) on <var67:nullable Object(MParameter)> */
6031 var70
= var67
->attrs
[COLOR_model__MParameter___mtype
].val
; /* _mtype on <var67:nullable Object(MParameter)> */
6032 if (unlikely(var70
== NULL
)) {
6033 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
6034 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1552);
6038 RET_LABEL69
:(void)0;
6043 { /* Inline model#MSignature#vararg_rank (var_msignature) on <var_msignature:MSignature> */
6044 var73
= var_msignature
->attrs
[COLOR_model__MSignature___vararg_rank
].l
; /* _vararg_rank on <var_msignature:MSignature> */
6046 RET_LABEL72
:(void)0;
6050 { /* Inline kernel#Int#== (var_i,var71) on <var_i:Int> */
6051 var77
= var_i
== var71
;
6054 RET_LABEL76
:(void)0;
6061 { /* Inline kernel#Int#+ (var_i,var78) on <var_i:Int> */
6062 /* Covariant cast for argument 0 (i) <var78:Int> isa OTHER */
6063 /* <var78:Int> isa OTHER */
6064 var81
= 1; /* easy <var78:Int> isa OTHER*/
6065 if (unlikely(!var81
)) {
6066 var_class_name
= type_kernel__Int
.name
;
6067 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name
);
6068 PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 328);
6071 var82
= var_i
+ var78
;
6074 RET_LABEL80
:(void)0;
6078 var83
= array__Array___91d_93d(var_args
, var79
);
6081 { /* Inline abstract_compiler#RuntimeVariable#mtype (var83) on <var83:nullable Object(RuntimeVariable)> */
6082 var86
= var83
->attrs
[COLOR_abstract_compiler__RuntimeVariable___mtype
].val
; /* _mtype on <var83:nullable Object(RuntimeVariable)> */
6083 if (unlikely(var86
== NULL
)) {
6084 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
6085 PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 1484);
6089 RET_LABEL85
:(void)0;
6097 { /* Inline kernel#Int#+ (var_i,var87) on <var_i:Int> */
6098 /* Covariant cast for argument 0 (i) <var87:Int> isa OTHER */
6099 /* <var87:Int> isa OTHER */
6100 var90
= 1; /* easy <var87:Int> isa OTHER*/
6101 if (unlikely(!var90
)) {
6102 var_class_name93
= type_kernel__Int
.name
;
6103 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name93
);
6104 PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 328);
6107 var94
= var_i
+ var87
;
6110 RET_LABEL89
:(void)0;
6115 { /* Inline kernel#Int#+ (var_i,var95) on <var_i:Int> */
6116 /* Covariant cast for argument 0 (i) <var95:Int> isa OTHER */
6117 /* <var95:Int> isa OTHER */
6118 var98
= 1; /* easy <var95:Int> isa OTHER*/
6119 if (unlikely(!var98
)) {
6120 var_class_name101
= type_kernel__Int
.name
;
6121 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name101
);
6122 PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 328);
6125 var102
= var_i
+ var95
;
6128 RET_LABEL97
:(void)0;
6132 var103
= array__Array___91d_93d(var_args
, var96
);
6135 var104
= separate_compiler__SeparateCompilerVisitor__autobox(self
, var103
, var_t
);
6138 array__Array___91d_93d_61d(var_args
, var88
, var104
); /* Direct call array#Array#[]= on <var_args:Array[RuntimeVariable]>*/
6140 CONTINUE_label
: (void)0;
6142 ((void (*)(val
*))(var60
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var60
) /* next on <var60:Iterator[Discrete]>*/;
6145 BREAK_label
: (void)0;
6148 /* method separate_compiler#SeparateCompilerVisitor#adapt_signature for (self: Object, MMethodDef, Array[RuntimeVariable]) */
6149 void VIRTUAL_separate_compiler__SeparateCompilerVisitor__adapt_signature(val
* self
, val
* p0
, val
* p1
) {
6150 separate_compiler__SeparateCompilerVisitor__adapt_signature(self
, p0
, p1
); /* Direct call separate_compiler#SeparateCompilerVisitor#adapt_signature on <self:Object(SeparateCompilerVisitor)>*/
6153 /* method separate_compiler#SeparateCompilerVisitor#autobox for (self: SeparateCompilerVisitor, RuntimeVariable, MType): RuntimeVariable */
6154 val
* separate_compiler__SeparateCompilerVisitor__autobox(val
* self
, val
* p0
, val
* p1
) {
6155 val
* var
/* : RuntimeVariable */;
6156 val
* var_value
/* var value: RuntimeVariable */;
6157 val
* var_mtype
/* var mtype: MType */;
6158 val
* var1
/* : MType */;
6159 val
* var3
/* : MType */;
6160 short int var4
/* : Bool */;
6161 short int var5
/* : Bool */;
6162 val
* var_other
/* var other: nullable Object */;
6163 short int var7
/* : Bool */;
6164 short int var9
/* : Bool */;
6165 short int var10
/* : Bool */;
6166 val
* var11
/* : MType */;
6167 val
* var13
/* : MType */;
6168 val
* var14
/* : String */;
6169 static val
* varonce
;
6170 val
* var15
/* : String */;
6171 char* var16
/* : NativeString */;
6172 long var17
/* : Int */;
6173 val
* var18
/* : FlatString */;
6174 short int var19
/* : Bool */;
6175 short int var20
/* : Bool */;
6176 short int var_
/* var : Bool */;
6177 val
* var21
/* : String */;
6178 static val
* varonce22
;
6179 val
* var23
/* : String */;
6180 char* var24
/* : NativeString */;
6181 long var25
/* : Int */;
6182 val
* var26
/* : FlatString */;
6183 short int var27
/* : Bool */;
6184 short int var28
/* : Bool */;
6185 val
* var29
/* : MType */;
6186 val
* var31
/* : MType */;
6187 val
* var32
/* : String */;
6188 static val
* varonce33
;
6189 val
* var34
/* : String */;
6190 char* var35
/* : NativeString */;
6191 long var36
/* : Int */;
6192 val
* var37
/* : FlatString */;
6193 short int var38
/* : Bool */;
6194 short int var39
/* : Bool */;
6195 static val
* varonce40
;
6196 val
* var41
/* : String */;
6197 char* var42
/* : NativeString */;
6198 long var43
/* : Int */;
6199 val
* var44
/* : FlatString */;
6200 val
* var45
/* : String */;
6201 static val
* varonce46
;
6202 val
* var47
/* : String */;
6203 char* var48
/* : NativeString */;
6204 long var49
/* : Int */;
6205 val
* var50
/* : FlatString */;
6206 static val
* varonce51
;
6207 val
* var52
/* : String */;
6208 char* var53
/* : NativeString */;
6209 long var54
/* : Int */;
6210 val
* var55
/* : FlatString */;
6211 val
* var56
/* : MType */;
6212 val
* var58
/* : MType */;
6213 static val
* varonce59
;
6214 val
* var60
/* : String */;
6215 char* var61
/* : NativeString */;
6216 long var62
/* : Int */;
6217 val
* var63
/* : FlatString */;
6218 static val
* varonce64
;
6219 val
* var65
/* : String */;
6220 char* var66
/* : NativeString */;
6221 long var67
/* : Int */;
6222 val
* var68
/* : FlatString */;
6223 val
* var69
/* : Array[Object] */;
6224 long var70
/* : Int */;
6225 val
* var71
/* : NativeArray[Object] */;
6226 val
* var72
/* : String */;
6227 val
* var73
/* : RuntimeVariable */;
6228 val
* var74
/* : String */;
6229 static val
* varonce75
;
6230 val
* var76
/* : String */;
6231 char* var77
/* : NativeString */;
6232 long var78
/* : Int */;
6233 val
* var79
/* : FlatString */;
6234 short int var80
/* : Bool */;
6235 short int var81
/* : Bool */;
6236 val
* var82
/* : MType */;
6237 val
* var84
/* : MType */;
6238 short int var85
/* : Bool */;
6241 const char* var_class_name
;
6242 val
* var_valtype
/* var valtype: MClassType */;
6243 val
* var86
/* : RuntimeVariable */;
6244 val
* var_res
/* var res: RuntimeVariable */;
6245 short int var87
/* : Bool */;
6246 val
* var88
/* : AbstractCompiler */;
6247 val
* var90
/* : AbstractCompiler */;
6248 val
* var91
/* : nullable RapidTypeAnalysis */;
6249 val
* var93
/* : nullable RapidTypeAnalysis */;
6250 val
* var94
/* : null */;
6251 short int var95
/* : Bool */;
6252 short int var96
/* : Bool */;
6253 val
* var_other98
/* var other: nullable Object */;
6254 short int var99
/* : Bool */;
6255 short int var100
/* : Bool */;
6256 short int var101
/* : Bool */;
6257 short int var_102
/* var : Bool */;
6258 val
* var103
/* : AbstractCompiler */;
6259 val
* var105
/* : AbstractCompiler */;
6260 val
* var106
/* : nullable RapidTypeAnalysis */;
6261 val
* var108
/* : nullable RapidTypeAnalysis */;
6262 val
* var109
/* : HashSet[MClassType] */;
6263 val
* var111
/* : HashSet[MClassType] */;
6264 short int var112
/* : Bool */;
6265 short int var113
/* : Bool */;
6266 static val
* varonce114
;
6267 val
* var115
/* : String */;
6268 char* var116
/* : NativeString */;
6269 long var117
/* : Int */;
6270 val
* var118
/* : FlatString */;
6271 val
* var119
/* : MType */;
6272 val
* var121
/* : MType */;
6273 static val
* varonce122
;
6274 val
* var123
/* : String */;
6275 char* var124
/* : NativeString */;
6276 long var125
/* : Int */;
6277 val
* var126
/* : FlatString */;
6278 static val
* varonce127
;
6279 val
* var128
/* : String */;
6280 char* var129
/* : NativeString */;
6281 long var130
/* : Int */;
6282 val
* var131
/* : FlatString */;
6283 val
* var132
/* : MType */;
6284 val
* var134
/* : MType */;
6285 static val
* varonce135
;
6286 val
* var136
/* : String */;
6287 char* var137
/* : NativeString */;
6288 long var138
/* : Int */;
6289 val
* var139
/* : FlatString */;
6290 val
* var140
/* : Array[Object] */;
6291 long var141
/* : Int */;
6292 val
* var142
/* : NativeArray[Object] */;
6293 val
* var143
/* : String */;
6294 static val
* varonce144
;
6295 val
* var145
/* : String */;
6296 char* var146
/* : NativeString */;
6297 long var147
/* : Int */;
6298 val
* var148
/* : FlatString */;
6299 static val
* varonce149
;
6300 val
* var150
/* : String */;
6301 char* var151
/* : NativeString */;
6302 long var152
/* : Int */;
6303 val
* var153
/* : FlatString */;
6304 val
* var154
/* : String */;
6305 val
* var155
/* : Array[Object] */;
6306 long var156
/* : Int */;
6307 val
* var157
/* : NativeArray[Object] */;
6308 val
* var158
/* : String */;
6309 static val
* varonce159
;
6310 val
* var160
/* : String */;
6311 char* var161
/* : NativeString */;
6312 long var162
/* : Int */;
6313 val
* var163
/* : FlatString */;
6314 val
* var164
/* : String */;
6315 static val
* varonce165
;
6316 val
* var166
/* : String */;
6317 char* var167
/* : NativeString */;
6318 long var168
/* : Int */;
6319 val
* var169
/* : FlatString */;
6320 static val
* varonce170
;
6321 val
* var171
/* : String */;
6322 char* var172
/* : NativeString */;
6323 long var173
/* : Int */;
6324 val
* var174
/* : FlatString */;
6325 val
* var175
/* : MType */;
6326 val
* var177
/* : MType */;
6327 static val
* varonce178
;
6328 val
* var179
/* : String */;
6329 char* var180
/* : NativeString */;
6330 long var181
/* : Int */;
6331 val
* var182
/* : FlatString */;
6332 static val
* varonce183
;
6333 val
* var184
/* : String */;
6334 char* var185
/* : NativeString */;
6335 long var186
/* : Int */;
6336 val
* var187
/* : FlatString */;
6337 val
* var188
/* : Array[Object] */;
6338 long var189
/* : Int */;
6339 val
* var190
/* : NativeArray[Object] */;
6340 val
* var191
/* : String */;
6341 short int var192
/* : Bool */;
6342 short int var193
/* : Bool */;
6343 short int var194
/* : Bool */;
6344 val
* var195
/* : MType */;
6345 val
* var197
/* : MType */;
6346 val
* var198
/* : String */;
6347 static val
* varonce199
;
6348 val
* var200
/* : String */;
6349 char* var201
/* : NativeString */;
6350 long var202
/* : Int */;
6351 val
* var203
/* : FlatString */;
6352 short int var204
/* : Bool */;
6353 short int var205
/* : Bool */;
6354 short int var_206
/* var : Bool */;
6355 val
* var207
/* : String */;
6356 static val
* varonce208
;
6357 val
* var209
/* : String */;
6358 char* var210
/* : NativeString */;
6359 long var211
/* : Int */;
6360 val
* var212
/* : FlatString */;
6361 short int var213
/* : Bool */;
6362 short int var214
/* : Bool */;
6363 short int var_215
/* var : Bool */;
6364 short int var216
/* : Bool */;
6365 val
* var217
/* : MType */;
6366 val
* var219
/* : MType */;
6367 val
* var220
/* : String */;
6368 static val
* varonce221
;
6369 val
* var222
/* : String */;
6370 char* var223
/* : NativeString */;
6371 long var224
/* : Int */;
6372 val
* var225
/* : FlatString */;
6373 short int var226
/* : Bool */;
6374 short int var227
/* : Bool */;
6375 short int var_228
/* var : Bool */;
6376 val
* var229
/* : String */;
6377 static val
* varonce230
;
6378 val
* var231
/* : String */;
6379 char* var232
/* : NativeString */;
6380 long var233
/* : Int */;
6381 val
* var234
/* : FlatString */;
6382 short int var235
/* : Bool */;
6383 short int var236
/* : Bool */;
6384 short int var_237
/* var : Bool */;
6385 short int var238
/* : Bool */;
6386 val
* var239
/* : MType */;
6387 val
* var241
/* : MType */;
6388 val
* var242
/* : String */;
6389 static val
* varonce243
;
6390 val
* var244
/* : String */;
6391 char* var245
/* : NativeString */;
6392 long var246
/* : Int */;
6393 val
* var247
/* : FlatString */;
6394 short int var248
/* : Bool */;
6395 short int var249
/* : Bool */;
6396 short int var_250
/* var : Bool */;
6397 val
* var251
/* : String */;
6398 static val
* varonce252
;
6399 val
* var253
/* : String */;
6400 char* var254
/* : NativeString */;
6401 long var255
/* : Int */;
6402 val
* var256
/* : FlatString */;
6403 short int var257
/* : Bool */;
6404 short int var258
/* : Bool */;
6405 val
* var259
/* : RuntimeVariable */;
6406 val
* var_res260
/* var res: RuntimeVariable */;
6407 static val
* varonce261
;
6408 val
* var262
/* : String */;
6409 char* var263
/* : NativeString */;
6410 long var264
/* : Int */;
6411 val
* var265
/* : FlatString */;
6412 static val
* varonce266
;
6413 val
* var267
/* : String */;
6414 char* var268
/* : NativeString */;
6415 long var269
/* : Int */;
6416 val
* var270
/* : FlatString */;
6417 val
* var271
/* : MType */;
6418 val
* var273
/* : MType */;
6419 static val
* varonce274
;
6420 val
* var275
/* : String */;
6421 char* var276
/* : NativeString */;
6422 long var277
/* : Int */;
6423 val
* var278
/* : FlatString */;
6424 static val
* varonce279
;
6425 val
* var280
/* : String */;
6426 char* var281
/* : NativeString */;
6427 long var282
/* : Int */;
6428 val
* var283
/* : FlatString */;
6429 val
* var284
/* : Array[Object] */;
6430 long var285
/* : Int */;
6431 val
* var286
/* : NativeArray[Object] */;
6432 val
* var287
/* : String */;
6433 static val
* varonce288
;
6434 val
* var289
/* : String */;
6435 char* var290
/* : NativeString */;
6436 long var291
/* : Int */;
6437 val
* var292
/* : FlatString */;
6438 val
* var293
/* : MType */;
6439 val
* var295
/* : MType */;
6440 static val
* varonce296
;
6441 val
* var297
/* : String */;
6442 char* var298
/* : NativeString */;
6443 long var299
/* : Int */;
6444 val
* var300
/* : FlatString */;
6445 static val
* varonce301
;
6446 val
* var302
/* : String */;
6447 char* var303
/* : NativeString */;
6448 long var304
/* : Int */;
6449 val
* var305
/* : FlatString */;
6450 val
* var306
/* : Array[Object] */;
6451 long var307
/* : Int */;
6452 val
* var308
/* : NativeArray[Object] */;
6453 val
* var309
/* : String */;
6457 { /* Inline abstract_compiler#RuntimeVariable#mtype (var_value) on <var_value:RuntimeVariable> */
6458 var3
= var_value
->attrs
[COLOR_abstract_compiler__RuntimeVariable___mtype
].val
; /* _mtype on <var_value:RuntimeVariable> */
6459 if (unlikely(var3
== NULL
)) {
6460 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
6461 PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 1484);
6469 { /* Inline kernel#Object#== (var1,var_mtype) on <var1:MType> */
6470 var_other
= var_mtype
;
6472 { /* Inline kernel#Object#is_same_instance (var1,var_other) on <var1:MType> */
6473 var9
= var1
== var_other
;
6490 { /* Inline abstract_compiler#RuntimeVariable#mtype (var_value) on <var_value:RuntimeVariable> */
6491 var13
= var_value
->attrs
[COLOR_abstract_compiler__RuntimeVariable___mtype
].val
; /* _mtype on <var_value:RuntimeVariable> */
6492 if (unlikely(var13
== NULL
)) {
6493 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
6494 PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 1484);
6498 RET_LABEL12
:(void)0;
6502 var14
= ((val
* (*)(val
*))(var11
->class->vft
[COLOR_abstract_compiler__MType__ctype
]))(var11
) /* ctype on <var11:MType>*/;
6509 var18
= string__NativeString__to_s_with_length(var16
, var17
);
6514 var20
= string__FlatString___61d_61d(var14
, var15
);
6520 var21
= ((val
* (*)(val
*))(var_mtype
->class->vft
[COLOR_abstract_compiler__MType__ctype
]))(var_mtype
) /* ctype on <var_mtype:MType>*/;
6527 var26
= string__NativeString__to_s_with_length(var24
, var25
);
6532 var28
= string__FlatString___61d_61d(var21
, var23
);
6544 { /* Inline abstract_compiler#RuntimeVariable#mtype (var_value) on <var_value:RuntimeVariable> */
6545 var31
= var_value
->attrs
[COLOR_abstract_compiler__RuntimeVariable___mtype
].val
; /* _mtype on <var_value:RuntimeVariable> */
6546 if (unlikely(var31
== NULL
)) {
6547 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
6548 PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 1484);
6552 RET_LABEL30
:(void)0;
6556 var32
= ((val
* (*)(val
*))(var29
->class->vft
[COLOR_abstract_compiler__MType__ctype
]))(var29
) /* ctype on <var29:MType>*/;
6563 var37
= string__NativeString__to_s_with_length(var35
, var36
);
6568 var39
= string__FlatString___61d_61d(var32
, var34
);
6575 var42
= "((struct instance_";
6577 var44
= string__NativeString__to_s_with_length(var42
, var43
);
6582 var45
= ((val
* (*)(val
*))(var_mtype
->class->vft
[COLOR_separate_compiler__MType__c_instance_name
]))(var_mtype
) /* c_instance_name on <var_mtype:MType>*/;
6589 var50
= string__NativeString__to_s_with_length(var48
, var49
);
6596 var53
= ")->value; /* autounbox from ";
6598 var55
= string__NativeString__to_s_with_length(var53
, var54
);
6603 { /* Inline abstract_compiler#RuntimeVariable#mtype (var_value) on <var_value:RuntimeVariable> */
6604 var58
= var_value
->attrs
[COLOR_abstract_compiler__RuntimeVariable___mtype
].val
; /* _mtype on <var_value:RuntimeVariable> */
6605 if (unlikely(var58
== NULL
)) {
6606 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
6607 PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 1484);
6611 RET_LABEL57
:(void)0;
6619 var63
= string__NativeString__to_s_with_length(var61
, var62
);
6628 var68
= string__NativeString__to_s_with_length(var66
, var67
);
6632 var69
= NEW_array__Array(&type_array__Arraykernel__Object
);
6633 { /* var69 = array_instance Array[Object] */
6635 var71
= NEW_array__NativeArray(var70
, &type_array__NativeArraykernel__Object
);
6636 ((struct instance_array__NativeArray
*)var71
)->values
[0] = (val
*) var41
;
6637 ((struct instance_array__NativeArray
*)var71
)->values
[1] = (val
*) var45
;
6638 ((struct instance_array__NativeArray
*)var71
)->values
[2] = (val
*) var47
;
6639 ((struct instance_array__NativeArray
*)var71
)->values
[3] = (val
*) var_value
;
6640 ((struct instance_array__NativeArray
*)var71
)->values
[4] = (val
*) var52
;
6641 ((struct instance_array__NativeArray
*)var71
)->values
[5] = (val
*) var56
;
6642 ((struct instance_array__NativeArray
*)var71
)->values
[6] = (val
*) var60
;
6643 ((struct instance_array__NativeArray
*)var71
)->values
[7] = (val
*) var_mtype
;
6644 ((struct instance_array__NativeArray
*)var71
)->values
[8] = (val
*) var65
;
6646 ((void (*)(val
*, val
*, long))(var69
->class->vft
[COLOR_array__Array__with_native
]))(var69
, var71
, var70
) /* with_native on <var69:Array[Object]>*/;
6650 var72
= ((val
* (*)(val
*))(var69
->class->vft
[COLOR_string__Object__to_s
]))(var69
) /* to_s on <var69:Array[Object]>*/;
6653 var73
= abstract_compiler__AbstractCompilerVisitor__new_expr(self
, var72
, var_mtype
);
6659 var74
= ((val
* (*)(val
*))(var_mtype
->class->vft
[COLOR_abstract_compiler__MType__ctype
]))(var_mtype
) /* ctype on <var_mtype:MType>*/;
6666 var79
= string__NativeString__to_s_with_length(var77
, var78
);
6671 var81
= string__FlatString___61d_61d(var74
, var76
);
6676 { /* Inline abstract_compiler#RuntimeVariable#mtype (var_value) on <var_value:RuntimeVariable> */
6677 var84
= var_value
->attrs
[COLOR_abstract_compiler__RuntimeVariable___mtype
].val
; /* _mtype on <var_value:RuntimeVariable> */
6678 if (unlikely(var84
== NULL
)) {
6679 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
6680 PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 1484);
6684 RET_LABEL83
:(void)0;
6687 /* <var82:MType> isa MClassType */
6688 cltype
= type_model__MClassType
.color
;
6689 idtype
= type_model__MClassType
.id
;
6690 if(cltype
>= var82
->type
->table_size
) {
6693 var85
= var82
->type
->type_table
[cltype
] == idtype
;
6695 if (unlikely(!var85
)) {
6696 var_class_name
= var82
== NULL ?
"null" : var82
->type
->name
;
6697 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "MClassType", var_class_name
);
6698 PRINT_ERROR(" (%s:%d)\n", "src/separate_compiler.nit", 919);
6701 var_valtype
= var82
;
6703 var86
= abstract_compiler__AbstractCompilerVisitor__new_var(self
, var_mtype
);
6707 { /* Inline abstract_compiler#AbstractCompilerVisitor#compiler (self) on <self:SeparateCompilerVisitor> */
6708 var90
= self
->attrs
[COLOR_abstract_compiler__AbstractCompilerVisitor___compiler
].val
; /* _compiler on <self:SeparateCompilerVisitor> */
6709 if (unlikely(var90
== NULL
)) {
6710 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _compiler");
6711 PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 984);
6715 RET_LABEL89
:(void)0;
6719 { /* Inline separate_compiler#SeparateCompiler#runtime_type_analysis (var88) on <var88:AbstractCompiler(SeparateCompiler)> */
6720 var93
= var88
->attrs
[COLOR_separate_compiler__SeparateCompiler___runtime_type_analysis
].val
; /* _runtime_type_analysis on <var88:AbstractCompiler(SeparateCompiler)> */
6722 RET_LABEL92
:(void)0;
6726 if (var91
== NULL
) {
6727 var95
= 0; /* is null */
6729 var95
= 1; /* arg is null and recv is not */
6732 { /* Inline kernel#Object#!= (var91,var94) on <var91:nullable RapidTypeAnalysis> */
6733 var_other98
= var94
;
6735 var100
= ((short int (*)(val
*, val
*))(var91
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var91
, var_other98
) /* == on <var91:nullable RapidTypeAnalysis(RapidTypeAnalysis)>*/;
6741 RET_LABEL97
:(void)0;
6748 { /* Inline abstract_compiler#AbstractCompilerVisitor#compiler (self) on <self:SeparateCompilerVisitor> */
6749 var105
= self
->attrs
[COLOR_abstract_compiler__AbstractCompilerVisitor___compiler
].val
; /* _compiler on <self:SeparateCompilerVisitor> */
6750 if (unlikely(var105
== NULL
)) {
6751 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _compiler");
6752 PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 984);
6756 RET_LABEL104
:(void)0;
6760 { /* Inline separate_compiler#SeparateCompiler#runtime_type_analysis (var103) on <var103:AbstractCompiler(SeparateCompiler)> */
6761 var108
= var103
->attrs
[COLOR_separate_compiler__SeparateCompiler___runtime_type_analysis
].val
; /* _runtime_type_analysis on <var103:AbstractCompiler(SeparateCompiler)> */
6763 RET_LABEL107
:(void)0;
6766 if (var106
== NULL
) {
6767 PRINT_ERROR("Runtime error: %s", "Receiver is null");
6768 PRINT_ERROR(" (%s:%d)\n", "src/separate_compiler.nit", 921);
6771 { /* Inline rapid_type_analysis#RapidTypeAnalysis#live_types (var106) on <var106:nullable RapidTypeAnalysis> */
6772 if (unlikely(var106
== NULL
)) {
6773 PRINT_ERROR("Runtime error: %s", "Receiver is null");
6774 PRINT_ERROR(" (%s:%d)\n", "src/rapid_type_analysis.nit", 55);
6777 var111
= var106
->attrs
[COLOR_rapid_type_analysis__RapidTypeAnalysis___live_types
].val
; /* _live_types on <var106:nullable RapidTypeAnalysis> */
6778 if (unlikely(var111
== NULL
)) {
6779 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_types");
6780 PRINT_ERROR(" (%s:%d)\n", "src/rapid_type_analysis.nit", 55);
6784 RET_LABEL110
:(void)0;
6788 var112
= hash_collection__HashSet__has(var109
, var_valtype
);
6797 var115
= varonce114
;
6799 var116
= "/*no autobox from ";
6801 var118
= string__NativeString__to_s_with_length(var116
, var117
);
6803 varonce114
= var115
;
6806 { /* Inline abstract_compiler#RuntimeVariable#mtype (var_value) on <var_value:RuntimeVariable> */
6807 var121
= var_value
->attrs
[COLOR_abstract_compiler__RuntimeVariable___mtype
].val
; /* _mtype on <var_value:RuntimeVariable> */
6808 if (unlikely(var121
== NULL
)) {
6809 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
6810 PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 1484);
6814 RET_LABEL120
:(void)0;
6818 var123
= varonce122
;
6822 var126
= string__NativeString__to_s_with_length(var124
, var125
);
6824 varonce122
= var123
;
6827 var128
= varonce127
;
6831 var131
= string__NativeString__to_s_with_length(var129
, var130
);
6833 varonce127
= var128
;
6836 { /* Inline abstract_compiler#RuntimeVariable#mtype (var_value) on <var_value:RuntimeVariable> */
6837 var134
= var_value
->attrs
[COLOR_abstract_compiler__RuntimeVariable___mtype
].val
; /* _mtype on <var_value:RuntimeVariable> */
6838 if (unlikely(var134
== NULL
)) {
6839 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
6840 PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 1484);
6844 RET_LABEL133
:(void)0;
6848 var136
= varonce135
;
6850 var137
= " is not live! */";
6852 var139
= string__NativeString__to_s_with_length(var137
, var138
);
6854 varonce135
= var136
;
6856 var140
= NEW_array__Array(&type_array__Arraykernel__Object
);
6857 { /* var140 = array_instance Array[Object] */
6859 var142
= NEW_array__NativeArray(var141
, &type_array__NativeArraykernel__Object
);
6860 ((struct instance_array__NativeArray
*)var142
)->values
[0] = (val
*) var115
;
6861 ((struct instance_array__NativeArray
*)var142
)->values
[1] = (val
*) var119
;
6862 ((struct instance_array__NativeArray
*)var142
)->values
[2] = (val
*) var123
;
6863 ((struct instance_array__NativeArray
*)var142
)->values
[3] = (val
*) var_mtype
;
6864 ((struct instance_array__NativeArray
*)var142
)->values
[4] = (val
*) var128
;
6865 ((struct instance_array__NativeArray
*)var142
)->values
[5] = (val
*) var132
;
6866 ((struct instance_array__NativeArray
*)var142
)->values
[6] = (val
*) var136
;
6868 ((void (*)(val
*, val
*, long))(var140
->class->vft
[COLOR_array__Array__with_native
]))(var140
, var142
, var141
) /* with_native on <var140:Array[Object]>*/;
6872 var143
= ((val
* (*)(val
*))(var140
->class->vft
[COLOR_string__Object__to_s
]))(var140
) /* to_s on <var140:Array[Object]>*/;
6875 abstract_compiler__AbstractCompilerVisitor__add(self
, var143
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <self:SeparateCompilerVisitor>*/
6878 var145
= varonce144
;
6880 var146
= "PRINT_ERROR(\"Dead code executed!\\n\"); show_backtrace(1);";
6882 var148
= string__NativeString__to_s_with_length(var146
, var147
);
6884 varonce144
= var145
;
6887 abstract_compiler__AbstractCompilerVisitor__add(self
, var145
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <self:SeparateCompilerVisitor>*/
6894 var150
= varonce149
;
6898 var153
= string__NativeString__to_s_with_length(var151
, var152
);
6900 varonce149
= var150
;
6903 var154
= ((val
* (*)(val
*))(var_valtype
->class->vft
[COLOR_abstract_compiler__MType__c_name
]))(var_valtype
) /* c_name on <var_valtype:MClassType>*/;
6905 var155
= NEW_array__Array(&type_array__Arraykernel__Object
);
6906 { /* var155 = array_instance Array[Object] */
6908 var157
= NEW_array__NativeArray(var156
, &type_array__NativeArraykernel__Object
);
6909 ((struct instance_array__NativeArray
*)var157
)->values
[0] = (val
*) var150
;
6910 ((struct instance_array__NativeArray
*)var157
)->values
[1] = (val
*) var154
;
6912 ((void (*)(val
*, val
*, long))(var155
->class->vft
[COLOR_array__Array__with_native
]))(var155
, var157
, var156
) /* with_native on <var155:Array[Object]>*/;
6916 var158
= ((val
* (*)(val
*))(var155
->class->vft
[COLOR_string__Object__to_s
]))(var155
) /* to_s on <var155:Array[Object]>*/;
6919 abstract_compiler__AbstractCompilerVisitor__require_declaration(self
, var158
); /* Direct call abstract_compiler#AbstractCompilerVisitor#require_declaration on <self:SeparateCompilerVisitor>*/
6922 var160
= varonce159
;
6926 var163
= string__NativeString__to_s_with_length(var161
, var162
);
6928 varonce159
= var160
;
6931 var164
= ((val
* (*)(val
*))(var_valtype
->class->vft
[COLOR_abstract_compiler__MType__c_name
]))(var_valtype
) /* c_name on <var_valtype:MClassType>*/;
6934 var166
= varonce165
;
6938 var169
= string__NativeString__to_s_with_length(var167
, var168
);
6940 varonce165
= var166
;
6943 var171
= varonce170
;
6945 var172
= "); /* autobox from ";
6947 var174
= string__NativeString__to_s_with_length(var172
, var173
);
6949 varonce170
= var171
;
6952 { /* Inline abstract_compiler#RuntimeVariable#mtype (var_value) on <var_value:RuntimeVariable> */
6953 var177
= var_value
->attrs
[COLOR_abstract_compiler__RuntimeVariable___mtype
].val
; /* _mtype on <var_value:RuntimeVariable> */
6954 if (unlikely(var177
== NULL
)) {
6955 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
6956 PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 1484);
6960 RET_LABEL176
:(void)0;
6964 var179
= varonce178
;
6968 var182
= string__NativeString__to_s_with_length(var180
, var181
);
6970 varonce178
= var179
;
6973 var184
= varonce183
;
6977 var187
= string__NativeString__to_s_with_length(var185
, var186
);
6979 varonce183
= var184
;
6981 var188
= NEW_array__Array(&type_array__Arraykernel__Object
);
6982 { /* var188 = array_instance Array[Object] */
6984 var190
= NEW_array__NativeArray(var189
, &type_array__NativeArraykernel__Object
);
6985 ((struct instance_array__NativeArray
*)var190
)->values
[0] = (val
*) var_res
;
6986 ((struct instance_array__NativeArray
*)var190
)->values
[1] = (val
*) var160
;
6987 ((struct instance_array__NativeArray
*)var190
)->values
[2] = (val
*) var164
;
6988 ((struct instance_array__NativeArray
*)var190
)->values
[3] = (val
*) var166
;
6989 ((struct instance_array__NativeArray
*)var190
)->values
[4] = (val
*) var_value
;
6990 ((struct instance_array__NativeArray
*)var190
)->values
[5] = (val
*) var171
;
6991 ((struct instance_array__NativeArray
*)var190
)->values
[6] = (val
*) var175
;
6992 ((struct instance_array__NativeArray
*)var190
)->values
[7] = (val
*) var179
;
6993 ((struct instance_array__NativeArray
*)var190
)->values
[8] = (val
*) var_mtype
;
6994 ((struct instance_array__NativeArray
*)var190
)->values
[9] = (val
*) var184
;
6996 ((void (*)(val
*, val
*, long))(var188
->class->vft
[COLOR_array__Array__with_native
]))(var188
, var190
, var189
) /* with_native on <var188:Array[Object]>*/;
7000 var191
= ((val
* (*)(val
*))(var188
->class->vft
[COLOR_string__Object__to_s
]))(var188
) /* to_s on <var188:Array[Object]>*/;
7003 abstract_compiler__AbstractCompilerVisitor__add(self
, var191
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <self:SeparateCompilerVisitor>*/
7009 { /* Inline abstract_compiler#RuntimeVariable#mtype (var_value) on <var_value:RuntimeVariable> */
7010 var197
= var_value
->attrs
[COLOR_abstract_compiler__RuntimeVariable___mtype
].val
; /* _mtype on <var_value:RuntimeVariable> */
7011 if (unlikely(var197
== NULL
)) {
7012 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
7013 PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 1484);
7017 RET_LABEL196
:(void)0;
7021 var198
= ((val
* (*)(val
*))(var195
->class->vft
[COLOR_abstract_compiler__MType__ctype
]))(var195
) /* ctype on <var195:MType>*/;
7024 var200
= varonce199
;
7028 var203
= string__NativeString__to_s_with_length(var201
, var202
);
7030 varonce199
= var200
;
7033 var205
= string__FlatString___61d_61d(var198
, var200
);
7039 var207
= ((val
* (*)(val
*))(var_mtype
->class->vft
[COLOR_abstract_compiler__MType__ctype
]))(var_mtype
) /* ctype on <var_mtype:MType>*/;
7042 var209
= varonce208
;
7046 var212
= string__NativeString__to_s_with_length(var210
, var211
);
7048 varonce208
= var209
;
7051 var214
= string__FlatString___61d_61d(var207
, var209
);
7063 { /* Inline abstract_compiler#RuntimeVariable#mtype (var_value) on <var_value:RuntimeVariable> */
7064 var219
= var_value
->attrs
[COLOR_abstract_compiler__RuntimeVariable___mtype
].val
; /* _mtype on <var_value:RuntimeVariable> */
7065 if (unlikely(var219
== NULL
)) {
7066 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
7067 PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 1484);
7071 RET_LABEL218
:(void)0;
7075 var220
= ((val
* (*)(val
*))(var217
->class->vft
[COLOR_abstract_compiler__MType__ctype
]))(var217
) /* ctype on <var217:MType>*/;
7078 var222
= varonce221
;
7082 var225
= string__NativeString__to_s_with_length(var223
, var224
);
7084 varonce221
= var222
;
7087 var227
= string__FlatString___61d_61d(var220
, var222
);
7093 var229
= ((val
* (*)(val
*))(var_mtype
->class->vft
[COLOR_abstract_compiler__MType__ctype
]))(var_mtype
) /* ctype on <var_mtype:MType>*/;
7096 var231
= varonce230
;
7100 var234
= string__NativeString__to_s_with_length(var232
, var233
);
7102 varonce230
= var231
;
7105 var236
= string__FlatString___61d_61d(var229
, var231
);
7119 { /* Inline abstract_compiler#RuntimeVariable#mtype (var_value) on <var_value:RuntimeVariable> */
7120 var241
= var_value
->attrs
[COLOR_abstract_compiler__RuntimeVariable___mtype
].val
; /* _mtype on <var_value:RuntimeVariable> */
7121 if (unlikely(var241
== NULL
)) {
7122 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
7123 PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 1484);
7127 RET_LABEL240
:(void)0;
7131 var242
= ((val
* (*)(val
*))(var239
->class->vft
[COLOR_abstract_compiler__MType__ctype
]))(var239
) /* ctype on <var239:MType>*/;
7134 var244
= varonce243
;
7138 var247
= string__NativeString__to_s_with_length(var245
, var246
);
7140 varonce243
= var244
;
7143 var249
= string__FlatString___61d_61d(var242
, var244
);
7149 var251
= ((val
* (*)(val
*))(var_mtype
->class->vft
[COLOR_abstract_compiler__MType__ctype
]))(var_mtype
) /* ctype on <var_mtype:MType>*/;
7152 var253
= varonce252
;
7156 var256
= string__NativeString__to_s_with_length(var254
, var255
);
7158 varonce252
= var253
;
7161 var258
= string__FlatString___61d_61d(var251
, var253
);
7175 var259
= abstract_compiler__AbstractCompilerVisitor__new_var(self
, var_mtype
);
7177 var_res260
= var259
;
7179 var262
= varonce261
;
7183 var265
= string__NativeString__to_s_with_length(var263
, var264
);
7185 varonce261
= var262
;
7188 var267
= varonce266
;
7190 var268
= " left unintialized (cannot convert ";
7192 var270
= string__NativeString__to_s_with_length(var268
, var269
);
7194 varonce266
= var267
;
7197 { /* Inline abstract_compiler#RuntimeVariable#mtype (var_value) on <var_value:RuntimeVariable> */
7198 var273
= var_value
->attrs
[COLOR_abstract_compiler__RuntimeVariable___mtype
].val
; /* _mtype on <var_value:RuntimeVariable> */
7199 if (unlikely(var273
== NULL
)) {
7200 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
7201 PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 1484);
7205 RET_LABEL272
:(void)0;
7209 var275
= varonce274
;
7213 var278
= string__NativeString__to_s_with_length(var276
, var277
);
7215 varonce274
= var275
;
7218 var280
= varonce279
;
7222 var283
= string__NativeString__to_s_with_length(var281
, var282
);
7224 varonce279
= var280
;
7226 var284
= NEW_array__Array(&type_array__Arraykernel__Object
);
7227 { /* var284 = array_instance Array[Object] */
7229 var286
= NEW_array__NativeArray(var285
, &type_array__NativeArraykernel__Object
);
7230 ((struct instance_array__NativeArray
*)var286
)->values
[0] = (val
*) var262
;
7231 ((struct instance_array__NativeArray
*)var286
)->values
[1] = (val
*) var_res260
;
7232 ((struct instance_array__NativeArray
*)var286
)->values
[2] = (val
*) var267
;
7233 ((struct instance_array__NativeArray
*)var286
)->values
[3] = (val
*) var271
;
7234 ((struct instance_array__NativeArray
*)var286
)->values
[4] = (val
*) var275
;
7235 ((struct instance_array__NativeArray
*)var286
)->values
[5] = (val
*) var_mtype
;
7236 ((struct instance_array__NativeArray
*)var286
)->values
[6] = (val
*) var280
;
7238 ((void (*)(val
*, val
*, long))(var284
->class->vft
[COLOR_array__Array__with_native
]))(var284
, var286
, var285
) /* with_native on <var284:Array[Object]>*/;
7242 var287
= ((val
* (*)(val
*))(var284
->class->vft
[COLOR_string__Object__to_s
]))(var284
) /* to_s on <var284:Array[Object]>*/;
7245 abstract_compiler__AbstractCompilerVisitor__add(self
, var287
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <self:SeparateCompilerVisitor>*/
7248 var289
= varonce288
;
7250 var290
= "PRINT_ERROR(\"Cast error: Cannot cast %s to %s.\\n\", \"";
7252 var292
= string__NativeString__to_s_with_length(var290
, var291
);
7254 varonce288
= var289
;
7257 { /* Inline abstract_compiler#RuntimeVariable#mtype (var_value) on <var_value:RuntimeVariable> */
7258 var295
= var_value
->attrs
[COLOR_abstract_compiler__RuntimeVariable___mtype
].val
; /* _mtype on <var_value:RuntimeVariable> */
7259 if (unlikely(var295
== NULL
)) {
7260 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
7261 PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 1484);
7265 RET_LABEL294
:(void)0;
7269 var297
= varonce296
;
7273 var300
= string__NativeString__to_s_with_length(var298
, var299
);
7275 varonce296
= var297
;
7278 var302
= varonce301
;
7280 var303
= "\"); show_backtrace(1);";
7282 var305
= string__NativeString__to_s_with_length(var303
, var304
);
7284 varonce301
= var302
;
7286 var306
= NEW_array__Array(&type_array__Arraykernel__Object
);
7287 { /* var306 = array_instance Array[Object] */
7289 var308
= NEW_array__NativeArray(var307
, &type_array__NativeArraykernel__Object
);
7290 ((struct instance_array__NativeArray
*)var308
)->values
[0] = (val
*) var289
;
7291 ((struct instance_array__NativeArray
*)var308
)->values
[1] = (val
*) var293
;
7292 ((struct instance_array__NativeArray
*)var308
)->values
[2] = (val
*) var297
;
7293 ((struct instance_array__NativeArray
*)var308
)->values
[3] = (val
*) var_mtype
;
7294 ((struct instance_array__NativeArray
*)var308
)->values
[4] = (val
*) var302
;
7296 ((void (*)(val
*, val
*, long))(var306
->class->vft
[COLOR_array__Array__with_native
]))(var306
, var308
, var307
) /* with_native on <var306:Array[Object]>*/;
7300 var309
= ((val
* (*)(val
*))(var306
->class->vft
[COLOR_string__Object__to_s
]))(var306
) /* to_s on <var306:Array[Object]>*/;
7303 abstract_compiler__AbstractCompilerVisitor__add(self
, var309
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <self:SeparateCompilerVisitor>*/
7315 /* method separate_compiler#SeparateCompilerVisitor#autobox for (self: Object, RuntimeVariable, MType): RuntimeVariable */
7316 val
* VIRTUAL_separate_compiler__SeparateCompilerVisitor__autobox(val
* self
, val
* p0
, val
* p1
) {
7317 val
* var
/* : RuntimeVariable */;
7318 val
* var1
/* : RuntimeVariable */;
7319 var1
= separate_compiler__SeparateCompilerVisitor__autobox(self
, p0
, p1
);
7324 /* method separate_compiler#SeparateCompilerVisitor#type_info for (self: SeparateCompilerVisitor, RuntimeVariable): String */
7325 val
* separate_compiler__SeparateCompilerVisitor__type_info(val
* self
, val
* p0
) {
7326 val
* var
/* : String */;
7327 val
* var_value
/* var value: RuntimeVariable */;
7328 val
* var1
/* : MType */;
7329 val
* var3
/* : MType */;
7330 val
* var4
/* : String */;
7331 static val
* varonce
;
7332 val
* var5
/* : String */;
7333 char* var6
/* : NativeString */;
7334 long var7
/* : Int */;
7335 val
* var8
/* : FlatString */;
7336 short int var9
/* : Bool */;
7337 short int var10
/* : Bool */;
7338 static val
* varonce11
;
7339 val
* var12
/* : String */;
7340 char* var13
/* : NativeString */;
7341 long var14
/* : Int */;
7342 val
* var15
/* : FlatString */;
7343 val
* var16
/* : Array[Object] */;
7344 long var17
/* : Int */;
7345 val
* var18
/* : NativeArray[Object] */;
7346 val
* var19
/* : String */;
7347 val
* var20
/* : AbstractCompiler */;
7348 val
* var22
/* : AbstractCompiler */;
7349 val
* var23
/* : Set[MType] */;
7350 val
* var25
/* : Set[MType] */;
7351 val
* var26
/* : MType */;
7352 val
* var28
/* : MType */;
7353 static val
* varonce29
;
7354 val
* var30
/* : String */;
7355 char* var31
/* : NativeString */;
7356 long var32
/* : Int */;
7357 val
* var33
/* : FlatString */;
7358 val
* var34
/* : MType */;
7359 val
* var36
/* : MType */;
7360 val
* var37
/* : String */;
7361 val
* var38
/* : Array[Object] */;
7362 long var39
/* : Int */;
7363 val
* var40
/* : NativeArray[Object] */;
7364 val
* var41
/* : String */;
7365 static val
* varonce42
;
7366 val
* var43
/* : String */;
7367 char* var44
/* : NativeString */;
7368 long var45
/* : Int */;
7369 val
* var46
/* : FlatString */;
7370 val
* var47
/* : MType */;
7371 val
* var49
/* : MType */;
7372 val
* var50
/* : String */;
7373 static val
* varonce51
;
7374 val
* var52
/* : String */;
7375 char* var53
/* : NativeString */;
7376 long var54
/* : Int */;
7377 val
* var55
/* : FlatString */;
7378 val
* var56
/* : Array[Object] */;
7379 long var57
/* : Int */;
7380 val
* var58
/* : NativeArray[Object] */;
7381 val
* var59
/* : String */;
7384 { /* Inline abstract_compiler#RuntimeVariable#mtype (var_value) on <var_value:RuntimeVariable> */
7385 var3
= var_value
->attrs
[COLOR_abstract_compiler__RuntimeVariable___mtype
].val
; /* _mtype on <var_value:RuntimeVariable> */
7386 if (unlikely(var3
== NULL
)) {
7387 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
7388 PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 1484);
7396 var4
= ((val
* (*)(val
*))(var1
->class->vft
[COLOR_abstract_compiler__MType__ctype
]))(var1
) /* ctype on <var1:MType>*/;
7403 var8
= string__NativeString__to_s_with_length(var6
, var7
);
7408 var10
= string__FlatString___61d_61d(var4
, var5
);
7417 var15
= string__NativeString__to_s_with_length(var13
, var14
);
7421 var16
= NEW_array__Array(&type_array__Arraykernel__Object
);
7422 { /* var16 = array_instance Array[Object] */
7424 var18
= NEW_array__NativeArray(var17
, &type_array__NativeArraykernel__Object
);
7425 ((struct instance_array__NativeArray
*)var18
)->values
[0] = (val
*) var_value
;
7426 ((struct instance_array__NativeArray
*)var18
)->values
[1] = (val
*) var12
;
7428 ((void (*)(val
*, val
*, long))(var16
->class->vft
[COLOR_array__Array__with_native
]))(var16
, var18
, var17
) /* with_native on <var16:Array[Object]>*/;
7432 var19
= ((val
* (*)(val
*))(var16
->class->vft
[COLOR_string__Object__to_s
]))(var16
) /* to_s on <var16:Array[Object]>*/;
7438 { /* Inline abstract_compiler#AbstractCompilerVisitor#compiler (self) on <self:SeparateCompilerVisitor> */
7439 var22
= self
->attrs
[COLOR_abstract_compiler__AbstractCompilerVisitor___compiler
].val
; /* _compiler on <self:SeparateCompilerVisitor> */
7440 if (unlikely(var22
== NULL
)) {
7441 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _compiler");
7442 PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 984);
7446 RET_LABEL21
:(void)0;
7450 { /* Inline separate_compiler#SeparateCompiler#undead_types (var20) on <var20:AbstractCompiler(SeparateCompiler)> */
7451 var25
= var20
->attrs
[COLOR_separate_compiler__SeparateCompiler___undead_types
].val
; /* _undead_types on <var20:AbstractCompiler(SeparateCompiler)> */
7452 if (unlikely(var25
== NULL
)) {
7453 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _undead_types");
7454 PRINT_ERROR(" (%s:%d)\n", "src/separate_compiler.nit", 155);
7458 RET_LABEL24
:(void)0;
7462 { /* Inline abstract_compiler#RuntimeVariable#mtype (var_value) on <var_value:RuntimeVariable> */
7463 var28
= var_value
->attrs
[COLOR_abstract_compiler__RuntimeVariable___mtype
].val
; /* _mtype on <var_value:RuntimeVariable> */
7464 if (unlikely(var28
== NULL
)) {
7465 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
7466 PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 1484);
7470 RET_LABEL27
:(void)0;
7474 ((void (*)(val
*, val
*))(var23
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var23
, var26
) /* add on <var23:Set[MType]>*/;
7481 var33
= string__NativeString__to_s_with_length(var31
, var32
);
7486 { /* Inline abstract_compiler#RuntimeVariable#mtype (var_value) on <var_value:RuntimeVariable> */
7487 var36
= var_value
->attrs
[COLOR_abstract_compiler__RuntimeVariable___mtype
].val
; /* _mtype on <var_value:RuntimeVariable> */
7488 if (unlikely(var36
== NULL
)) {
7489 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
7490 PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 1484);
7494 RET_LABEL35
:(void)0;
7498 var37
= ((val
* (*)(val
*))(var34
->class->vft
[COLOR_abstract_compiler__MType__c_name
]))(var34
) /* c_name on <var34:MType>*/;
7500 var38
= NEW_array__Array(&type_array__Arraykernel__Object
);
7501 { /* var38 = array_instance Array[Object] */
7503 var40
= NEW_array__NativeArray(var39
, &type_array__NativeArraykernel__Object
);
7504 ((struct instance_array__NativeArray
*)var40
)->values
[0] = (val
*) var30
;
7505 ((struct instance_array__NativeArray
*)var40
)->values
[1] = (val
*) var37
;
7507 ((void (*)(val
*, val
*, long))(var38
->class->vft
[COLOR_array__Array__with_native
]))(var38
, var40
, var39
) /* with_native on <var38:Array[Object]>*/;
7511 var41
= ((val
* (*)(val
*))(var38
->class->vft
[COLOR_string__Object__to_s
]))(var38
) /* to_s on <var38:Array[Object]>*/;
7514 abstract_compiler__AbstractCompilerVisitor__require_declaration(self
, var41
); /* Direct call abstract_compiler#AbstractCompilerVisitor#require_declaration on <self:SeparateCompilerVisitor>*/
7521 var46
= string__NativeString__to_s_with_length(var44
, var45
);
7526 { /* Inline abstract_compiler#RuntimeVariable#mtype (var_value) on <var_value:RuntimeVariable> */
7527 var49
= var_value
->attrs
[COLOR_abstract_compiler__RuntimeVariable___mtype
].val
; /* _mtype on <var_value:RuntimeVariable> */
7528 if (unlikely(var49
== NULL
)) {
7529 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
7530 PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 1484);
7534 RET_LABEL48
:(void)0;
7538 var50
= ((val
* (*)(val
*))(var47
->class->vft
[COLOR_abstract_compiler__MType__c_name
]))(var47
) /* c_name on <var47:MType>*/;
7545 var55
= string__NativeString__to_s_with_length(var53
, var54
);
7549 var56
= NEW_array__Array(&type_array__Arraykernel__Object
);
7550 { /* var56 = array_instance Array[Object] */
7552 var58
= NEW_array__NativeArray(var57
, &type_array__NativeArraykernel__Object
);
7553 ((struct instance_array__NativeArray
*)var58
)->values
[0] = (val
*) var43
;
7554 ((struct instance_array__NativeArray
*)var58
)->values
[1] = (val
*) var50
;
7555 ((struct instance_array__NativeArray
*)var58
)->values
[2] = (val
*) var52
;
7557 ((void (*)(val
*, val
*, long))(var56
->class->vft
[COLOR_array__Array__with_native
]))(var56
, var58
, var57
) /* with_native on <var56:Array[Object]>*/;
7561 var59
= ((val
* (*)(val
*))(var56
->class->vft
[COLOR_string__Object__to_s
]))(var56
) /* to_s on <var56:Array[Object]>*/;
7569 /* method separate_compiler#SeparateCompilerVisitor#type_info for (self: Object, RuntimeVariable): String */
7570 val
* VIRTUAL_separate_compiler__SeparateCompilerVisitor__type_info(val
* self
, val
* p0
) {
7571 val
* var
/* : String */;
7572 val
* var1
/* : String */;
7573 var1
= separate_compiler__SeparateCompilerVisitor__type_info(self
, p0
);
7578 /* method separate_compiler#SeparateCompilerVisitor#compile_callsite for (self: SeparateCompilerVisitor, CallSite, Array[RuntimeVariable]): nullable RuntimeVariable */
7579 val
* separate_compiler__SeparateCompilerVisitor__compile_callsite(val
* self
, val
* p0
, val
* p1
) {
7580 val
* var
/* : nullable RuntimeVariable */;
7581 val
* var_callsite
/* var callsite: CallSite */;
7582 val
* var_args
/* var args: Array[RuntimeVariable] */;
7583 val
* var1
/* : AbstractCompiler */;
7584 val
* var3
/* : AbstractCompiler */;
7585 val
* var4
/* : nullable RapidTypeAnalysis */;
7586 val
* var6
/* : nullable RapidTypeAnalysis */;
7587 val
* var_rta
/* var rta: nullable RapidTypeAnalysis */;
7588 val
* var7
/* : nullable Object */;
7589 val
* var8
/* : MType */;
7590 val
* var10
/* : MType */;
7591 val
* var_recv
/* var recv: MType */;
7592 short int var11
/* : Bool */;
7593 val
* var12
/* : AbstractCompiler */;
7594 val
* var14
/* : AbstractCompiler */;
7595 val
* var15
/* : ModelBuilder */;
7596 val
* var17
/* : ModelBuilder */;
7597 val
* var18
/* : ToolContext */;
7598 val
* var20
/* : ToolContext */;
7599 val
* var21
/* : OptionBool */;
7600 val
* var23
/* : OptionBool */;
7601 val
* var24
/* : nullable Object */;
7602 val
* var26
/* : nullable Object */;
7603 short int var27
/* : Bool */;
7604 short int var_
/* var : Bool */;
7605 val
* var28
/* : null */;
7606 short int var29
/* : Bool */;
7607 short int var30
/* : Bool */;
7608 val
* var_other
/* var other: nullable Object */;
7609 short int var32
/* : Bool */;
7610 short int var33
/* : Bool */;
7611 short int var34
/* : Bool */;
7612 val
* var35
/* : Set[MMethodDef] */;
7613 val
* var_tgs
/* var tgs: Set[MMethodDef] */;
7614 long var36
/* : Int */;
7615 long var37
/* : Int */;
7616 short int var38
/* : Bool */;
7617 short int var39
/* : Bool */;
7618 short int var41
/* : Bool */;
7619 val
* var42
/* : MMethod */;
7620 val
* var44
/* : MMethod */;
7621 val
* var_mmethod
/* var mmethod: MMethod */;
7622 val
* var45
/* : MPropDef */;
7623 val
* var46
/* : MPropDef */;
7624 val
* var47
/* : nullable MSignature */;
7625 val
* var49
/* : nullable MSignature */;
7626 val
* var50
/* : nullable RuntimeVariable */;
7627 val
* var_res0
/* var res0: nullable RuntimeVariable */;
7628 val
* var51
/* : nullable Object */;
7629 val
* var52
/* : nullable Object */;
7630 val
* var53
/* : MClassDef */;
7631 val
* var55
/* : MClassDef */;
7632 val
* var56
/* : MClassType */;
7633 val
* var58
/* : MClassType */;
7634 val
* var59
/* : nullable RuntimeVariable */;
7635 val
* var_res
/* var res: nullable RuntimeVariable */;
7636 val
* var60
/* : null */;
7637 short int var61
/* : Bool */;
7638 short int var62
/* : Bool */;
7639 short int var64
/* : Bool */;
7640 short int var65
/* : Bool */;
7641 short int var66
/* : Bool */;
7642 val
* var67
/* : null */;
7643 short int var68
/* : Bool */;
7644 short int var69
/* : Bool */;
7645 short int var71
/* : Bool */;
7646 short int var72
/* : Bool */;
7647 short int var73
/* : Bool */;
7648 static val
* varonce
;
7649 val
* var74
/* : String */;
7650 char* var75
/* : NativeString */;
7651 long var76
/* : Int */;
7652 val
* var77
/* : FlatString */;
7653 val
* var78
/* : nullable RuntimeVariable */;
7657 { /* Inline abstract_compiler#AbstractCompilerVisitor#compiler (self) on <self:SeparateCompilerVisitor> */
7658 var3
= self
->attrs
[COLOR_abstract_compiler__AbstractCompilerVisitor___compiler
].val
; /* _compiler on <self:SeparateCompilerVisitor> */
7659 if (unlikely(var3
== NULL
)) {
7660 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _compiler");
7661 PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 984);
7669 { /* Inline separate_compiler#SeparateCompiler#runtime_type_analysis (var1) on <var1:AbstractCompiler(SeparateCompiler)> */
7670 var6
= var1
->attrs
[COLOR_separate_compiler__SeparateCompiler___runtime_type_analysis
].val
; /* _runtime_type_analysis on <var1:AbstractCompiler(SeparateCompiler)> */
7677 var7
= abstract_collection__SequenceRead__first(var_args
);
7680 { /* Inline abstract_compiler#RuntimeVariable#mtype (var7) on <var7:nullable Object(RuntimeVariable)> */
7681 var10
= var7
->attrs
[COLOR_abstract_compiler__RuntimeVariable___mtype
].val
; /* _mtype on <var7:nullable Object(RuntimeVariable)> */
7682 if (unlikely(var10
== NULL
)) {
7683 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
7684 PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 1484);
7693 { /* Inline abstract_compiler#AbstractCompilerVisitor#compiler (self) on <self:SeparateCompilerVisitor> */
7694 var14
= self
->attrs
[COLOR_abstract_compiler__AbstractCompilerVisitor___compiler
].val
; /* _compiler on <self:SeparateCompilerVisitor> */
7695 if (unlikely(var14
== NULL
)) {
7696 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _compiler");
7697 PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 984);
7701 RET_LABEL13
:(void)0;
7705 { /* Inline abstract_compiler#AbstractCompiler#modelbuilder (var12) on <var12:AbstractCompiler(SeparateCompiler)> */
7706 var17
= var12
->attrs
[COLOR_abstract_compiler__AbstractCompiler___modelbuilder
].val
; /* _modelbuilder on <var12:AbstractCompiler(SeparateCompiler)> */
7707 if (unlikely(var17
== NULL
)) {
7708 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
7709 PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 443);
7713 RET_LABEL16
:(void)0;
7717 { /* Inline modelbuilder#ModelBuilder#toolcontext (var15) on <var15:ModelBuilder> */
7718 var20
= var15
->attrs
[COLOR_modelbuilder__ModelBuilder___toolcontext
].val
; /* _toolcontext on <var15:ModelBuilder> */
7719 if (unlikely(var20
== NULL
)) {
7720 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
7721 PRINT_ERROR(" (%s:%d)\n", "src/modelbuilder.nit", 101);
7725 RET_LABEL19
:(void)0;
7729 { /* Inline separate_compiler#ToolContext#opt_direct_call_monomorph (var18) on <var18:ToolContext> */
7730 var23
= var18
->attrs
[COLOR_separate_compiler__ToolContext___opt_direct_call_monomorph
].val
; /* _opt_direct_call_monomorph on <var18:ToolContext> */
7731 if (unlikely(var23
== NULL
)) {
7732 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_direct_call_monomorph");
7733 PRINT_ERROR(" (%s:%d)\n", "src/separate_compiler.nit", 36);
7737 RET_LABEL22
:(void)0;
7741 { /* Inline opts#Option#value (var21) on <var21:OptionBool> */
7742 var26
= var21
->attrs
[COLOR_opts__Option___value
].val
; /* _value on <var21:OptionBool> */
7744 RET_LABEL25
:(void)0;
7747 var27
= ((struct instance_kernel__Bool
*)var24
)->value
; /* autounbox from nullable Object to Bool */;
7751 if (var_rta
== NULL
) {
7752 var29
= 0; /* is null */
7754 var29
= 1; /* arg is null and recv is not */
7757 { /* Inline kernel#Object#!= (var_rta,var28) on <var_rta:nullable RapidTypeAnalysis> */
7760 var33
= ((short int (*)(val
*, val
*))(var_rta
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var_rta
, var_other
) /* == on <var_rta:nullable RapidTypeAnalysis(RapidTypeAnalysis)>*/;
7766 RET_LABEL31
:(void)0;
7776 var35
= rapid_type_analysis__RapidTypeAnalysis__live_targets(var_rta
, var_callsite
);
7780 var36
= ((long (*)(val
*))(var_tgs
->class->vft
[COLOR_abstract_collection__Collection__length
]))(var_tgs
) /* length on <var_tgs:Set[MMethodDef]>*/;
7784 { /* Inline kernel#Int#== (var36,var37) on <var36:Int> */
7785 var41
= var36
== var37
;
7788 RET_LABEL40
:(void)0;
7794 { /* Inline typing#CallSite#mproperty (var_callsite) on <var_callsite:CallSite> */
7795 var44
= var_callsite
->attrs
[COLOR_typing__CallSite___mproperty
].val
; /* _mproperty on <var_callsite:CallSite> */
7796 if (unlikely(var44
== NULL
)) {
7797 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty");
7798 PRINT_ERROR(" (%s:%d)\n", "src/typing.nit", 422);
7802 RET_LABEL43
:(void)0;
7805 var_mmethod
= var42
;
7807 var45
= model__MProperty__intro(var_mmethod
);
7810 var46
= model__MProperty__intro(var_mmethod
);
7813 { /* Inline model#MMethodDef#msignature (var46) on <var46:MPropDef(MMethodDef)> */
7814 var49
= var46
->attrs
[COLOR_model__MMethodDef___msignature
].val
; /* _msignature on <var46:MPropDef(MMethodDef)> */
7816 RET_LABEL48
:(void)0;
7819 if (unlikely(var47
== NULL
)) {
7820 PRINT_ERROR("Runtime error: %s", "Cast failed");
7821 PRINT_ERROR(" (%s:%d)\n", "src/separate_compiler.nit", 964);
7825 abstract_compiler__AbstractCompilerVisitor__varargize(self
, var45
, var47
, var_args
); /* Direct call abstract_compiler#AbstractCompilerVisitor#varargize on <self:SeparateCompilerVisitor>*/
7828 var50
= separate_compiler__SeparateCompilerVisitor__before_send(self
, var_mmethod
, var_args
);
7832 var51
= ((val
* (*)(val
*))(var_tgs
->class->vft
[COLOR_abstract_collection__Collection__first
]))(var_tgs
) /* first on <var_tgs:Set[MMethodDef]>*/;
7835 var52
= ((val
* (*)(val
*))(var_tgs
->class->vft
[COLOR_abstract_collection__Collection__first
]))(var_tgs
) /* first on <var_tgs:Set[MMethodDef]>*/;
7838 { /* Inline model#MPropDef#mclassdef (var52) on <var52:nullable Object(MMethodDef)> */
7839 var55
= var52
->attrs
[COLOR_model__MPropDef___mclassdef
].val
; /* _mclassdef on <var52:nullable Object(MMethodDef)> */
7840 if (unlikely(var55
== NULL
)) {
7841 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdef");
7842 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1879);
7846 RET_LABEL54
:(void)0;
7850 { /* Inline model#MClassDef#bound_mtype (var53) on <var53:MClassDef> */
7851 var58
= var53
->attrs
[COLOR_model__MClassDef___bound_mtype
].val
; /* _bound_mtype on <var53:MClassDef> */
7852 if (unlikely(var58
== NULL
)) {
7853 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _bound_mtype");
7854 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 477);
7858 RET_LABEL57
:(void)0;
7862 var59
= separate_compiler__SeparateCompilerVisitor__call(self
, var51
, var56
, var_args
);
7866 if (var_res0
== NULL
) {
7867 var61
= 0; /* is null */
7869 var61
= 1; /* arg is null and recv is not */
7872 { /* Inline kernel#Object#!= (var_res0,var60) on <var_res0:nullable RuntimeVariable> */
7875 var65
= ((short int (*)(val
*, val
*))(var_res0
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var_res0
, var_other
) /* == on <var_res0:nullable RuntimeVariable(RuntimeVariable)>*/;
7881 RET_LABEL63
:(void)0;
7887 if (var_res
== NULL
) {
7888 var68
= 0; /* is null */
7890 var68
= 1; /* arg is null and recv is not */
7893 { /* Inline kernel#Object#!= (var_res,var67) on <var_res:nullable RuntimeVariable> */
7896 var72
= ((short int (*)(val
*, val
*))(var_res
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var_res
, var_other
) /* == on <var_res:nullable RuntimeVariable(RuntimeVariable)>*/;
7902 RET_LABEL70
:(void)0;
7906 if (unlikely(!var68
)) {
7907 PRINT_ERROR("Runtime error: %s", "Assert failed");
7908 PRINT_ERROR(" (%s:%d)\n", "src/separate_compiler.nit", 968);
7912 abstract_compiler__AbstractCompilerVisitor__assign(self
, var_res0
, var_res
); /* Direct call abstract_compiler#AbstractCompilerVisitor#assign on <self:SeparateCompilerVisitor>*/
7922 var77
= string__NativeString__to_s_with_length(var75
, var76
);
7927 abstract_compiler__AbstractCompilerVisitor__add(self
, var74
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <self:SeparateCompilerVisitor>*/
7936 var78
= ((val
* (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_separate_compiler__SeparateCompilerVisitor__compile_callsite
]))(self
, p0
, p1
) /* compile_callsite on <self:SeparateCompilerVisitor>*/;
7943 /* method separate_compiler#SeparateCompilerVisitor#compile_callsite for (self: Object, CallSite, Array[RuntimeVariable]): nullable RuntimeVariable */
7944 val
* VIRTUAL_separate_compiler__SeparateCompilerVisitor__compile_callsite(val
* self
, val
* p0
, val
* p1
) {
7945 val
* var
/* : nullable RuntimeVariable */;
7946 val
* var1
/* : nullable RuntimeVariable */;
7947 var1
= separate_compiler__SeparateCompilerVisitor__compile_callsite(self
, p0
, p1
);
7952 /* method separate_compiler#SeparateCompilerVisitor#send for (self: SeparateCompilerVisitor, MMethod, Array[RuntimeVariable]): nullable RuntimeVariable */
7953 val
* separate_compiler__SeparateCompilerVisitor__send(val
* self
, val
* p0
, val
* p1
) {
7954 val
* var
/* : nullable RuntimeVariable */;
7955 val
* var_mmethod
/* var mmethod: MMethod */;
7956 val
* var_arguments
/* var arguments: Array[RuntimeVariable] */;
7957 val
* var1
/* : MPropDef */;
7958 val
* var2
/* : MPropDef */;
7959 val
* var3
/* : nullable MSignature */;
7960 val
* var5
/* : nullable MSignature */;
7961 val
* var6
/* : nullable Object */;
7962 val
* var7
/* : MType */;
7963 val
* var9
/* : MType */;
7964 val
* var10
/* : String */;
7965 static val
* varonce
;
7966 val
* var11
/* : String */;
7967 char* var12
/* : NativeString */;
7968 long var13
/* : Int */;
7969 val
* var14
/* : FlatString */;
7970 short int var15
/* : Bool */;
7971 short int var16
/* : Bool */;
7972 val
* var_other
/* var other: nullable Object */;
7973 short int var18
/* : Bool */;
7974 short int var19
/* : Bool */;
7975 short int var20
/* : Bool */;
7976 val
* var21
/* : AbstractCompiler */;
7977 val
* var23
/* : AbstractCompiler */;
7978 val
* var24
/* : MModule */;
7979 val
* var26
/* : MModule */;
7980 val
* var_m
/* var m: MModule */;
7981 val
* var27
/* : AbstractCompiler */;
7982 val
* var29
/* : AbstractCompiler */;
7983 val
* var30
/* : AbstractCompiler */;
7984 val
* var32
/* : AbstractCompiler */;
7985 val
* var33
/* : MModule */;
7986 val
* var35
/* : MModule */;
7987 val
* var37
/* : nullable Object */;
7988 val
* var38
/* : MType */;
7989 val
* var40
/* : MType */;
7990 val
* var41
/* : nullable RuntimeVariable */;
7991 val
* var_res
/* var res: nullable RuntimeVariable */;
7992 val
* var42
/* : AbstractCompiler */;
7993 val
* var44
/* : AbstractCompiler */;
7994 val
* var46
/* : String */;
7995 val
* var47
/* : nullable RuntimeVariable */;
7999 var1
= model__MProperty__intro(var_mmethod
);
8002 var2
= model__MProperty__intro(var_mmethod
);
8005 { /* Inline model#MMethodDef#msignature (var2) on <var2:MPropDef(MMethodDef)> */
8006 var5
= var2
->attrs
[COLOR_model__MMethodDef___msignature
].val
; /* _msignature on <var2:MPropDef(MMethodDef)> */
8011 if (unlikely(var3
== NULL
)) {
8012 PRINT_ERROR("Runtime error: %s", "Cast failed");
8013 PRINT_ERROR(" (%s:%d)\n", "src/separate_compiler.nit", 980);
8017 abstract_compiler__AbstractCompilerVisitor__varargize(self
, var1
, var3
, var_arguments
); /* Direct call abstract_compiler#AbstractCompilerVisitor#varargize on <self:SeparateCompilerVisitor>*/
8020 var6
= abstract_collection__SequenceRead__first(var_arguments
);
8023 { /* Inline abstract_compiler#RuntimeVariable#mcasttype (var6) on <var6:nullable Object(RuntimeVariable)> */
8024 var9
= var6
->attrs
[COLOR_abstract_compiler__RuntimeVariable___mcasttype
].val
; /* _mcasttype on <var6:nullable Object(RuntimeVariable)> */
8025 if (unlikely(var9
== NULL
)) {
8026 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mcasttype");
8027 PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 1487);
8035 var10
= ((val
* (*)(val
*))(var7
->class->vft
[COLOR_abstract_compiler__MType__ctype
]))(var7
) /* ctype on <var7:MType>*/;
8042 var14
= string__NativeString__to_s_with_length(var12
, var13
);
8047 { /* Inline kernel#Object#!= (var10,var11) on <var10:String> */
8050 var19
= ((short int (*)(val
*, val
*))(var10
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var10
, var_other
) /* == on <var10:String>*/;
8056 RET_LABEL17
:(void)0;
8062 { /* Inline abstract_compiler#AbstractCompilerVisitor#compiler (self) on <self:SeparateCompilerVisitor> */
8063 var23
= self
->attrs
[COLOR_abstract_compiler__AbstractCompilerVisitor___compiler
].val
; /* _compiler on <self:SeparateCompilerVisitor> */
8064 if (unlikely(var23
== NULL
)) {
8065 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _compiler");
8066 PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 984);
8070 RET_LABEL22
:(void)0;
8074 { /* Inline abstract_compiler#AbstractCompiler#mainmodule (var21) on <var21:AbstractCompiler(SeparateCompiler)> */
8075 var26
= var21
->attrs
[COLOR_abstract_compiler__AbstractCompiler___mainmodule
].val
; /* _mainmodule on <var21:AbstractCompiler(SeparateCompiler)> */
8076 if (unlikely(var26
== NULL
)) {
8077 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule");
8078 PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 436);
8082 RET_LABEL25
:(void)0;
8087 { /* Inline abstract_compiler#AbstractCompilerVisitor#compiler (self) on <self:SeparateCompilerVisitor> */
8088 var29
= self
->attrs
[COLOR_abstract_compiler__AbstractCompilerVisitor___compiler
].val
; /* _compiler on <self:SeparateCompilerVisitor> */
8089 if (unlikely(var29
== NULL
)) {
8090 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _compiler");
8091 PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 984);
8095 RET_LABEL28
:(void)0;
8099 { /* Inline abstract_compiler#AbstractCompilerVisitor#compiler (self) on <self:SeparateCompilerVisitor> */
8100 var32
= self
->attrs
[COLOR_abstract_compiler__AbstractCompilerVisitor___compiler
].val
; /* _compiler on <self:SeparateCompilerVisitor> */
8101 if (unlikely(var32
== NULL
)) {
8102 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _compiler");
8103 PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 984);
8107 RET_LABEL31
:(void)0;
8111 { /* Inline abstract_compiler#AbstractCompiler#realmainmodule (var30) on <var30:AbstractCompiler(SeparateCompiler)> */
8112 var35
= var30
->attrs
[COLOR_abstract_compiler__AbstractCompiler___realmainmodule
].val
; /* _realmainmodule on <var30:AbstractCompiler(SeparateCompiler)> */
8113 if (unlikely(var35
== NULL
)) {
8114 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _realmainmodule");
8115 PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 440);
8119 RET_LABEL34
:(void)0;
8123 { /* Inline abstract_compiler#AbstractCompiler#mainmodule= (var27,var33) on <var27:AbstractCompiler(SeparateCompiler)> */
8124 var27
->attrs
[COLOR_abstract_compiler__AbstractCompiler___mainmodule
].val
= var33
; /* _mainmodule on <var27:AbstractCompiler(SeparateCompiler)> */
8125 RET_LABEL36
:(void)0;
8129 var37
= abstract_collection__SequenceRead__first(var_arguments
);
8132 { /* Inline abstract_compiler#RuntimeVariable#mcasttype (var37) on <var37:nullable Object(RuntimeVariable)> */
8133 var40
= var37
->attrs
[COLOR_abstract_compiler__RuntimeVariable___mcasttype
].val
; /* _mcasttype on <var37:nullable Object(RuntimeVariable)> */
8134 if (unlikely(var40
== NULL
)) {
8135 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mcasttype");
8136 PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 1487);
8140 RET_LABEL39
:(void)0;
8144 var41
= abstract_compiler__AbstractCompilerVisitor__monomorphic_send(self
, var_mmethod
, var38
, var_arguments
);
8148 { /* Inline abstract_compiler#AbstractCompilerVisitor#compiler (self) on <self:SeparateCompilerVisitor> */
8149 var44
= self
->attrs
[COLOR_abstract_compiler__AbstractCompilerVisitor___compiler
].val
; /* _compiler on <self:SeparateCompilerVisitor> */
8150 if (unlikely(var44
== NULL
)) {
8151 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _compiler");
8152 PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 984);
8156 RET_LABEL43
:(void)0;
8160 { /* Inline abstract_compiler#AbstractCompiler#mainmodule= (var42,var_m) on <var42:AbstractCompiler(SeparateCompiler)> */
8161 var42
->attrs
[COLOR_abstract_compiler__AbstractCompiler___mainmodule
].val
= var_m
; /* _mainmodule on <var42:AbstractCompiler(SeparateCompiler)> */
8162 RET_LABEL45
:(void)0;
8170 var46
= separate_compiler__MProperty__const_color(var_mmethod
);
8173 var47
= separate_compiler__SeparateCompilerVisitor__table_send(self
, var_mmethod
, var_arguments
, var46
);
8180 /* method separate_compiler#SeparateCompilerVisitor#send for (self: Object, MMethod, Array[RuntimeVariable]): nullable RuntimeVariable */
8181 val
* VIRTUAL_separate_compiler__SeparateCompilerVisitor__send(val
* self
, val
* p0
, val
* p1
) {
8182 val
* var
/* : nullable RuntimeVariable */;
8183 val
* var1
/* : nullable RuntimeVariable */;
8184 var1
= separate_compiler__SeparateCompilerVisitor__send(self
, p0
, p1
);
8189 /* method separate_compiler#SeparateCompilerVisitor#before_send for (self: SeparateCompilerVisitor, MMethod, Array[RuntimeVariable]): nullable RuntimeVariable */
8190 val
* separate_compiler__SeparateCompilerVisitor__before_send(val
* self
, val
* p0
, val
* p1
) {
8191 val
* var
/* : nullable RuntimeVariable */;
8192 val
* var_mmethod
/* var mmethod: MMethod */;
8193 val
* var_arguments
/* var arguments: Array[RuntimeVariable] */;
8194 val
* var1
/* : null */;
8195 val
* var_res
/* var res: nullable RuntimeVariable */;
8196 val
* var2
/* : nullable Object */;
8197 val
* var_recv
/* var recv: RuntimeVariable */;
8198 short int var3
/* : Bool */;
8199 short int var4
/* : Bool */;
8200 val
* var5
/* : AbstractCompiler */;
8201 val
* var7
/* : AbstractCompiler */;
8202 val
* var8
/* : ModelBuilder */;
8203 val
* var10
/* : ModelBuilder */;
8204 val
* var11
/* : ToolContext */;
8205 val
* var13
/* : ToolContext */;
8206 val
* var14
/* : OptionBool */;
8207 val
* var16
/* : OptionBool */;
8208 val
* var17
/* : nullable Object */;
8209 val
* var19
/* : nullable Object */;
8210 short int var20
/* : Bool */;
8211 short int var21
/* : Bool */;
8212 short int var_
/* var : Bool */;
8213 val
* var22
/* : String */;
8214 val
* var24
/* : String */;
8215 static val
* varonce
;
8216 val
* var25
/* : String */;
8217 char* var26
/* : NativeString */;
8218 long var27
/* : Int */;
8219 val
* var28
/* : FlatString */;
8220 short int var29
/* : Bool */;
8221 short int var30
/* : Bool */;
8222 short int var_31
/* var : Bool */;
8223 val
* var32
/* : String */;
8224 val
* var34
/* : String */;
8225 static val
* varonce35
;
8226 val
* var36
/* : String */;
8227 char* var37
/* : NativeString */;
8228 long var38
/* : Int */;
8229 val
* var39
/* : FlatString */;
8230 short int var40
/* : Bool */;
8231 short int var41
/* : Bool */;
8232 short int var_consider_null
/* var consider_null: Bool */;
8233 short int var42
/* : Bool */;
8234 val
* var43
/* : MType */;
8235 val
* var45
/* : MType */;
8236 short int var46
/* : Bool */;
8239 short int var_47
/* var : Bool */;
8240 short int var_maybenull
/* var maybenull: Bool */;
8241 static val
* varonce48
;
8242 val
* var49
/* : String */;
8243 char* var50
/* : NativeString */;
8244 long var51
/* : Int */;
8245 val
* var52
/* : FlatString */;
8246 static val
* varonce53
;
8247 val
* var54
/* : String */;
8248 char* var55
/* : NativeString */;
8249 long var56
/* : Int */;
8250 val
* var57
/* : FlatString */;
8251 val
* var58
/* : Array[Object] */;
8252 long var59
/* : Int */;
8253 val
* var60
/* : NativeArray[Object] */;
8254 val
* var61
/* : String */;
8255 val
* var62
/* : String */;
8256 val
* var64
/* : String */;
8257 static val
* varonce65
;
8258 val
* var66
/* : String */;
8259 char* var67
/* : NativeString */;
8260 long var68
/* : Int */;
8261 val
* var69
/* : FlatString */;
8262 short int var70
/* : Bool */;
8263 short int var71
/* : Bool */;
8264 val
* var72
/* : MClassType */;
8265 val
* var73
/* : RuntimeVariable */;
8266 long var74
/* : Int */;
8267 val
* var75
/* : nullable Object */;
8268 val
* var_arg
/* var arg: RuntimeVariable */;
8269 val
* var76
/* : MType */;
8270 val
* var78
/* : MType */;
8271 short int var79
/* : Bool */;
8274 static val
* varonce82
;
8275 val
* var83
/* : String */;
8276 char* var84
/* : NativeString */;
8277 long var85
/* : Int */;
8278 val
* var86
/* : FlatString */;
8279 static val
* varonce87
;
8280 val
* var88
/* : String */;
8281 char* var89
/* : NativeString */;
8282 long var90
/* : Int */;
8283 val
* var91
/* : FlatString */;
8284 val
* var92
/* : Array[Object] */;
8285 long var93
/* : Int */;
8286 val
* var94
/* : NativeArray[Object] */;
8287 val
* var95
/* : String */;
8288 val
* var96
/* : MType */;
8289 val
* var98
/* : MType */;
8290 short int var99
/* : Bool */;
8293 static val
* varonce102
;
8294 val
* var103
/* : String */;
8295 char* var104
/* : NativeString */;
8296 long var105
/* : Int */;
8297 val
* var106
/* : FlatString */;
8298 val
* var107
/* : Array[Object] */;
8299 long var108
/* : Int */;
8300 val
* var109
/* : NativeArray[Object] */;
8301 val
* var110
/* : String */;
8302 static val
* varonce111
;
8303 val
* var112
/* : String */;
8304 char* var113
/* : NativeString */;
8305 long var114
/* : Int */;
8306 val
* var115
/* : FlatString */;
8307 val
* var116
/* : String */;
8308 static val
* varonce117
;
8309 val
* var118
/* : String */;
8310 char* var119
/* : NativeString */;
8311 long var120
/* : Int */;
8312 val
* var121
/* : FlatString */;
8313 val
* var122
/* : Array[Object] */;
8314 long var123
/* : Int */;
8315 val
* var124
/* : NativeArray[Object] */;
8316 val
* var125
/* : String */;
8317 val
* var126
/* : String */;
8318 val
* var128
/* : String */;
8319 static val
* varonce129
;
8320 val
* var130
/* : String */;
8321 char* var131
/* : NativeString */;
8322 long var132
/* : Int */;
8323 val
* var133
/* : FlatString */;
8324 short int var134
/* : Bool */;
8325 short int var135
/* : Bool */;
8326 val
* var136
/* : MClassType */;
8327 val
* var137
/* : RuntimeVariable */;
8328 long var138
/* : Int */;
8329 val
* var139
/* : nullable Object */;
8330 val
* var_arg140
/* var arg: RuntimeVariable */;
8331 val
* var141
/* : MType */;
8332 val
* var143
/* : MType */;
8333 short int var144
/* : Bool */;
8336 static val
* varonce147
;
8337 val
* var148
/* : String */;
8338 char* var149
/* : NativeString */;
8339 long var150
/* : Int */;
8340 val
* var151
/* : FlatString */;
8341 static val
* varonce152
;
8342 val
* var153
/* : String */;
8343 char* var154
/* : NativeString */;
8344 long var155
/* : Int */;
8345 val
* var156
/* : FlatString */;
8346 val
* var157
/* : Array[Object] */;
8347 long var158
/* : Int */;
8348 val
* var159
/* : NativeArray[Object] */;
8349 val
* var160
/* : String */;
8350 val
* var161
/* : MType */;
8351 val
* var163
/* : MType */;
8352 short int var164
/* : Bool */;
8355 static val
* varonce167
;
8356 val
* var168
/* : String */;
8357 char* var169
/* : NativeString */;
8358 long var170
/* : Int */;
8359 val
* var171
/* : FlatString */;
8360 val
* var172
/* : Array[Object] */;
8361 long var173
/* : Int */;
8362 val
* var174
/* : NativeArray[Object] */;
8363 val
* var175
/* : String */;
8364 static val
* varonce176
;
8365 val
* var177
/* : String */;
8366 char* var178
/* : NativeString */;
8367 long var179
/* : Int */;
8368 val
* var180
/* : FlatString */;
8369 val
* var181
/* : String */;
8370 static val
* varonce182
;
8371 val
* var183
/* : String */;
8372 char* var184
/* : NativeString */;
8373 long var185
/* : Int */;
8374 val
* var186
/* : FlatString */;
8375 val
* var187
/* : Array[Object] */;
8376 long var188
/* : Int */;
8377 val
* var189
/* : NativeArray[Object] */;
8378 val
* var190
/* : String */;
8379 static val
* varonce191
;
8380 val
* var192
/* : String */;
8381 char* var193
/* : NativeString */;
8382 long var194
/* : Int */;
8383 val
* var195
/* : FlatString */;
8384 static val
* varonce196
;
8385 val
* var197
/* : String */;
8386 char* var198
/* : NativeString */;
8387 long var199
/* : Int */;
8388 val
* var200
/* : FlatString */;
8389 static val
* varonce201
;
8390 val
* var202
/* : String */;
8391 char* var203
/* : NativeString */;
8392 long var204
/* : Int */;
8393 val
* var205
/* : FlatString */;
8394 short int var206
/* : Bool */;
8395 val
* var207
/* : AbstractCompiler */;
8396 val
* var209
/* : AbstractCompiler */;
8397 val
* var210
/* : ModelBuilder */;
8398 val
* var212
/* : ModelBuilder */;
8399 val
* var213
/* : ToolContext */;
8400 val
* var215
/* : ToolContext */;
8401 val
* var216
/* : OptionBool */;
8402 val
* var218
/* : OptionBool */;
8403 val
* var219
/* : nullable Object */;
8404 val
* var221
/* : nullable Object */;
8405 short int var222
/* : Bool */;
8406 short int var223
/* : Bool */;
8407 short int var_224
/* var : Bool */;
8408 short int var225
/* : Bool */;
8409 val
* var226
/* : String */;
8410 val
* var228
/* : String */;
8411 static val
* varonce229
;
8412 val
* var230
/* : String */;
8413 char* var231
/* : NativeString */;
8414 long var232
/* : Int */;
8415 val
* var233
/* : FlatString */;
8416 short int var234
/* : Bool */;
8417 short int var235
/* : Bool */;
8418 short int var_236
/* var : Bool */;
8419 val
* var237
/* : String */;
8420 val
* var239
/* : String */;
8421 static val
* varonce240
;
8422 val
* var241
/* : String */;
8423 char* var242
/* : NativeString */;
8424 long var243
/* : Int */;
8425 val
* var244
/* : FlatString */;
8426 short int var245
/* : Bool */;
8427 short int var246
/* : Bool */;
8428 val
* var247
/* : null */;
8429 short int var248
/* : Bool */;
8430 short int var249
/* : Bool */;
8431 val
* var_other
/* var other: nullable Object */;
8432 short int var251
/* : Bool */;
8433 short int var253
/* : Bool */;
8434 val
* var254
/* : MClassType */;
8435 val
* var255
/* : RuntimeVariable */;
8436 long var256
/* : Int */;
8437 val
* var257
/* : nullable Object */;
8438 val
* var_arg258
/* var arg: RuntimeVariable */;
8439 val
* var259
/* : MType */;
8440 val
* var261
/* : MType */;
8441 short int var262
/* : Bool */;
8444 val
* var265
/* : String */;
8445 val
* var267
/* : String */;
8446 static val
* varonce268
;
8447 val
* var269
/* : String */;
8448 char* var270
/* : NativeString */;
8449 long var271
/* : Int */;
8450 val
* var272
/* : FlatString */;
8451 short int var273
/* : Bool */;
8452 short int var274
/* : Bool */;
8453 static val
* varonce275
;
8454 val
* var276
/* : String */;
8455 char* var277
/* : NativeString */;
8456 long var278
/* : Int */;
8457 val
* var279
/* : FlatString */;
8458 val
* var280
/* : Array[Object] */;
8459 long var281
/* : Int */;
8460 val
* var282
/* : NativeArray[Object] */;
8461 val
* var283
/* : String */;
8462 static val
* varonce284
;
8463 val
* var285
/* : String */;
8464 char* var286
/* : NativeString */;
8465 long var287
/* : Int */;
8466 val
* var288
/* : FlatString */;
8467 val
* var289
/* : Array[Object] */;
8468 long var290
/* : Int */;
8469 val
* var291
/* : NativeArray[Object] */;
8470 val
* var292
/* : String */;
8471 static val
* varonce293
;
8472 val
* var294
/* : String */;
8473 char* var295
/* : NativeString */;
8474 long var296
/* : Int */;
8475 val
* var297
/* : FlatString */;
8476 static val
* varonce298
;
8477 val
* var299
/* : String */;
8478 char* var300
/* : NativeString */;
8479 long var301
/* : Int */;
8480 val
* var302
/* : FlatString */;
8486 var2
= abstract_collection__SequenceRead__first(var_arguments
);
8490 { /* Inline abstract_compiler#AbstractCompilerVisitor#compiler (self) on <self:SeparateCompilerVisitor> */
8491 var7
= self
->attrs
[COLOR_abstract_compiler__AbstractCompilerVisitor___compiler
].val
; /* _compiler on <self:SeparateCompilerVisitor> */
8492 if (unlikely(var7
== NULL
)) {
8493 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _compiler");
8494 PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 984);
8502 { /* Inline abstract_compiler#AbstractCompiler#modelbuilder (var5) on <var5:AbstractCompiler(SeparateCompiler)> */
8503 var10
= var5
->attrs
[COLOR_abstract_compiler__AbstractCompiler___modelbuilder
].val
; /* _modelbuilder on <var5:AbstractCompiler(SeparateCompiler)> */
8504 if (unlikely(var10
== NULL
)) {
8505 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
8506 PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 443);
8514 { /* Inline modelbuilder#ModelBuilder#toolcontext (var8) on <var8:ModelBuilder> */
8515 var13
= var8
->attrs
[COLOR_modelbuilder__ModelBuilder___toolcontext
].val
; /* _toolcontext on <var8:ModelBuilder> */
8516 if (unlikely(var13
== NULL
)) {
8517 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
8518 PRINT_ERROR(" (%s:%d)\n", "src/modelbuilder.nit", 101);
8522 RET_LABEL12
:(void)0;
8526 { /* Inline abstract_compiler#ToolContext#opt_no_check_other (var11) on <var11:ToolContext> */
8527 var16
= var11
->attrs
[COLOR_abstract_compiler__ToolContext___opt_no_check_other
].val
; /* _opt_no_check_other on <var11:ToolContext> */
8528 if (unlikely(var16
== NULL
)) {
8529 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_no_check_other");
8530 PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 54);
8534 RET_LABEL15
:(void)0;
8538 { /* Inline opts#Option#value (var14) on <var14:OptionBool> */
8539 var19
= var14
->attrs
[COLOR_opts__Option___value
].val
; /* _value on <var14:OptionBool> */
8541 RET_LABEL18
:(void)0;
8544 var20
= ((struct instance_kernel__Bool
*)var17
)->value
; /* autounbox from nullable Object to Bool */;
8551 { /* Inline model#MProperty#name (var_mmethod) on <var_mmethod:MMethod> */
8552 var24
= var_mmethod
->attrs
[COLOR_model__MProperty___name
].val
; /* _name on <var_mmethod:MMethod> */
8553 if (unlikely(var24
== NULL
)) {
8554 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
8555 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1607);
8559 RET_LABEL23
:(void)0;
8567 var28
= string__NativeString__to_s_with_length(var26
, var27
);
8572 var30
= string__FlatString___61d_61d(var22
, var25
);
8582 { /* Inline model#MProperty#name (var_mmethod) on <var_mmethod:MMethod> */
8583 var34
= var_mmethod
->attrs
[COLOR_model__MProperty___name
].val
; /* _name on <var_mmethod:MMethod> */
8584 if (unlikely(var34
== NULL
)) {
8585 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
8586 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1607);
8590 RET_LABEL33
:(void)0;
8598 var39
= string__NativeString__to_s_with_length(var37
, var38
);
8603 var41
= string__FlatString___61d_61d(var32
, var36
);
8608 var_consider_null
= var3
;
8610 { /* Inline abstract_compiler#RuntimeVariable#mcasttype (var_recv) on <var_recv:RuntimeVariable> */
8611 var45
= var_recv
->attrs
[COLOR_abstract_compiler__RuntimeVariable___mcasttype
].val
; /* _mcasttype on <var_recv:RuntimeVariable> */
8612 if (unlikely(var45
== NULL
)) {
8613 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mcasttype");
8614 PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 1487);
8618 RET_LABEL44
:(void)0;
8621 /* <var43:MType> isa MNullableType */
8622 cltype
= type_model__MNullableType
.color
;
8623 idtype
= type_model__MNullableType
.id
;
8624 if(cltype
>= var43
->type
->table_size
) {
8627 var46
= var43
->type
->type_table
[cltype
] == idtype
;
8631 var42
= var_consider_null
;
8635 var_maybenull
= var42
;
8642 var52
= string__NativeString__to_s_with_length(var50
, var51
);
8649 var55
= " == NULL) {";
8651 var57
= string__NativeString__to_s_with_length(var55
, var56
);
8655 var58
= NEW_array__Array(&type_array__Arraykernel__Object
);
8656 { /* var58 = array_instance Array[Object] */
8658 var60
= NEW_array__NativeArray(var59
, &type_array__NativeArraykernel__Object
);
8659 ((struct instance_array__NativeArray
*)var60
)->values
[0] = (val
*) var49
;
8660 ((struct instance_array__NativeArray
*)var60
)->values
[1] = (val
*) var_recv
;
8661 ((struct instance_array__NativeArray
*)var60
)->values
[2] = (val
*) var54
;
8663 ((void (*)(val
*, val
*, long))(var58
->class->vft
[COLOR_array__Array__with_native
]))(var58
, var60
, var59
) /* with_native on <var58:Array[Object]>*/;
8667 var61
= ((val
* (*)(val
*))(var58
->class->vft
[COLOR_string__Object__to_s
]))(var58
) /* to_s on <var58:Array[Object]>*/;
8670 abstract_compiler__AbstractCompilerVisitor__add(self
, var61
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <self:SeparateCompilerVisitor>*/
8673 { /* Inline model#MProperty#name (var_mmethod) on <var_mmethod:MMethod> */
8674 var64
= var_mmethod
->attrs
[COLOR_model__MProperty___name
].val
; /* _name on <var_mmethod:MMethod> */
8675 if (unlikely(var64
== NULL
)) {
8676 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
8677 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1607);
8681 RET_LABEL63
:(void)0;
8689 var69
= string__NativeString__to_s_with_length(var67
, var68
);
8694 var71
= string__FlatString___61d_61d(var62
, var66
);
8699 var72
= abstract_compiler__AbstractCompilerVisitor__bool_type(self
);
8702 var73
= abstract_compiler__AbstractCompilerVisitor__new_var(self
, var72
);
8707 var75
= array__Array___91d_93d(var_arguments
, var74
);
8711 { /* Inline abstract_compiler#RuntimeVariable#mcasttype (var_arg) on <var_arg:RuntimeVariable> */
8712 var78
= var_arg
->attrs
[COLOR_abstract_compiler__RuntimeVariable___mcasttype
].val
; /* _mcasttype on <var_arg:RuntimeVariable> */
8713 if (unlikely(var78
== NULL
)) {
8714 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mcasttype");
8715 PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 1487);
8719 RET_LABEL77
:(void)0;
8722 /* <var76:MType> isa MNullableType */
8723 cltype80
= type_model__MNullableType
.color
;
8724 idtype81
= type_model__MNullableType
.id
;
8725 if(cltype80
>= var76
->type
->table_size
) {
8728 var79
= var76
->type
->type_table
[cltype80
] == idtype81
;
8736 var86
= string__NativeString__to_s_with_length(var84
, var85
);
8743 var89
= " == NULL);";
8745 var91
= string__NativeString__to_s_with_length(var89
, var90
);
8749 var92
= NEW_array__Array(&type_array__Arraykernel__Object
);
8750 { /* var92 = array_instance Array[Object] */
8752 var94
= NEW_array__NativeArray(var93
, &type_array__NativeArraykernel__Object
);
8753 ((struct instance_array__NativeArray
*)var94
)->values
[0] = (val
*) var_res
;
8754 ((struct instance_array__NativeArray
*)var94
)->values
[1] = (val
*) var83
;
8755 ((struct instance_array__NativeArray
*)var94
)->values
[2] = (val
*) var_arg
;
8756 ((struct instance_array__NativeArray
*)var94
)->values
[3] = (val
*) var88
;
8758 ((void (*)(val
*, val
*, long))(var92
->class->vft
[COLOR_array__Array__with_native
]))(var92
, var94
, var93
) /* with_native on <var92:Array[Object]>*/;
8762 var95
= ((val
* (*)(val
*))(var92
->class->vft
[COLOR_string__Object__to_s
]))(var92
) /* to_s on <var92:Array[Object]>*/;
8765 abstract_compiler__AbstractCompilerVisitor__add(self
, var95
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <self:SeparateCompilerVisitor>*/
8769 { /* Inline abstract_compiler#RuntimeVariable#mcasttype (var_arg) on <var_arg:RuntimeVariable> */
8770 var98
= var_arg
->attrs
[COLOR_abstract_compiler__RuntimeVariable___mcasttype
].val
; /* _mcasttype on <var_arg:RuntimeVariable> */
8771 if (unlikely(var98
== NULL
)) {
8772 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mcasttype");
8773 PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 1487);
8777 RET_LABEL97
:(void)0;
8780 /* <var96:MType> isa MNullType */
8781 cltype100
= type_model__MNullType
.color
;
8782 idtype101
= type_model__MNullType
.id
;
8783 if(cltype100
>= var96
->type
->table_size
) {
8786 var99
= var96
->type
->type_table
[cltype100
] == idtype101
;
8790 var103
= varonce102
;
8792 var104
= " = 1; /* is null */";
8794 var106
= string__NativeString__to_s_with_length(var104
, var105
);
8796 varonce102
= var103
;
8798 var107
= NEW_array__Array(&type_array__Arraykernel__Object
);
8799 { /* var107 = array_instance Array[Object] */
8801 var109
= NEW_array__NativeArray(var108
, &type_array__NativeArraykernel__Object
);
8802 ((struct instance_array__NativeArray
*)var109
)->values
[0] = (val
*) var_res
;
8803 ((struct instance_array__NativeArray
*)var109
)->values
[1] = (val
*) var103
;
8805 ((void (*)(val
*, val
*, long))(var107
->class->vft
[COLOR_array__Array__with_native
]))(var107
, var109
, var108
) /* with_native on <var107:Array[Object]>*/;
8809 var110
= ((val
* (*)(val
*))(var107
->class->vft
[COLOR_string__Object__to_s
]))(var107
) /* to_s on <var107:Array[Object]>*/;
8812 abstract_compiler__AbstractCompilerVisitor__add(self
, var110
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <self:SeparateCompilerVisitor>*/
8816 var112
= varonce111
;
8818 var113
= " = 0; /* ";
8820 var115
= string__NativeString__to_s_with_length(var113
, var114
);
8822 varonce111
= var112
;
8825 var116
= abstract_compiler__RuntimeVariable__inspect(var_arg
);
8828 var118
= varonce117
;
8830 var119
= " cannot be null */";
8832 var121
= string__NativeString__to_s_with_length(var119
, var120
);
8834 varonce117
= var118
;
8836 var122
= NEW_array__Array(&type_array__Arraykernel__Object
);
8837 { /* var122 = array_instance Array[Object] */
8839 var124
= NEW_array__NativeArray(var123
, &type_array__NativeArraykernel__Object
);
8840 ((struct instance_array__NativeArray
*)var124
)->values
[0] = (val
*) var_res
;
8841 ((struct instance_array__NativeArray
*)var124
)->values
[1] = (val
*) var112
;
8842 ((struct instance_array__NativeArray
*)var124
)->values
[2] = (val
*) var116
;
8843 ((struct instance_array__NativeArray
*)var124
)->values
[3] = (val
*) var118
;
8845 ((void (*)(val
*, val
*, long))(var122
->class->vft
[COLOR_array__Array__with_native
]))(var122
, var124
, var123
) /* with_native on <var122:Array[Object]>*/;
8849 var125
= ((val
* (*)(val
*))(var122
->class->vft
[COLOR_string__Object__to_s
]))(var122
) /* to_s on <var122:Array[Object]>*/;
8852 abstract_compiler__AbstractCompilerVisitor__add(self
, var125
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <self:SeparateCompilerVisitor>*/
8858 { /* Inline model#MProperty#name (var_mmethod) on <var_mmethod:MMethod> */
8859 var128
= var_mmethod
->attrs
[COLOR_model__MProperty___name
].val
; /* _name on <var_mmethod:MMethod> */
8860 if (unlikely(var128
== NULL
)) {
8861 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
8862 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1607);
8866 RET_LABEL127
:(void)0;
8870 var130
= varonce129
;
8874 var133
= string__NativeString__to_s_with_length(var131
, var132
);
8876 varonce129
= var130
;
8879 var135
= string__FlatString___61d_61d(var126
, var130
);
8884 var136
= abstract_compiler__AbstractCompilerVisitor__bool_type(self
);
8887 var137
= abstract_compiler__AbstractCompilerVisitor__new_var(self
, var136
);
8892 var139
= array__Array___91d_93d(var_arguments
, var138
);
8894 var_arg140
= var139
;
8896 { /* Inline abstract_compiler#RuntimeVariable#mcasttype (var_arg140) on <var_arg140:RuntimeVariable> */
8897 var143
= var_arg140
->attrs
[COLOR_abstract_compiler__RuntimeVariable___mcasttype
].val
; /* _mcasttype on <var_arg140:RuntimeVariable> */
8898 if (unlikely(var143
== NULL
)) {
8899 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mcasttype");
8900 PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 1487);
8904 RET_LABEL142
:(void)0;
8907 /* <var141:MType> isa MNullableType */
8908 cltype145
= type_model__MNullableType
.color
;
8909 idtype146
= type_model__MNullableType
.id
;
8910 if(cltype145
>= var141
->type
->table_size
) {
8913 var144
= var141
->type
->type_table
[cltype145
] == idtype146
;
8917 var148
= varonce147
;
8921 var151
= string__NativeString__to_s_with_length(var149
, var150
);
8923 varonce147
= var148
;
8926 var153
= varonce152
;
8928 var154
= " != NULL);";
8930 var156
= string__NativeString__to_s_with_length(var154
, var155
);
8932 varonce152
= var153
;
8934 var157
= NEW_array__Array(&type_array__Arraykernel__Object
);
8935 { /* var157 = array_instance Array[Object] */
8937 var159
= NEW_array__NativeArray(var158
, &type_array__NativeArraykernel__Object
);
8938 ((struct instance_array__NativeArray
*)var159
)->values
[0] = (val
*) var_res
;
8939 ((struct instance_array__NativeArray
*)var159
)->values
[1] = (val
*) var148
;
8940 ((struct instance_array__NativeArray
*)var159
)->values
[2] = (val
*) var_arg140
;
8941 ((struct instance_array__NativeArray
*)var159
)->values
[3] = (val
*) var153
;
8943 ((void (*)(val
*, val
*, long))(var157
->class->vft
[COLOR_array__Array__with_native
]))(var157
, var159
, var158
) /* with_native on <var157:Array[Object]>*/;
8947 var160
= ((val
* (*)(val
*))(var157
->class->vft
[COLOR_string__Object__to_s
]))(var157
) /* to_s on <var157:Array[Object]>*/;
8950 abstract_compiler__AbstractCompilerVisitor__add(self
, var160
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <self:SeparateCompilerVisitor>*/
8954 { /* Inline abstract_compiler#RuntimeVariable#mcasttype (var_arg140) on <var_arg140:RuntimeVariable> */
8955 var163
= var_arg140
->attrs
[COLOR_abstract_compiler__RuntimeVariable___mcasttype
].val
; /* _mcasttype on <var_arg140:RuntimeVariable> */
8956 if (unlikely(var163
== NULL
)) {
8957 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mcasttype");
8958 PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 1487);
8962 RET_LABEL162
:(void)0;
8965 /* <var161:MType> isa MNullType */
8966 cltype165
= type_model__MNullType
.color
;
8967 idtype166
= type_model__MNullType
.id
;
8968 if(cltype165
>= var161
->type
->table_size
) {
8971 var164
= var161
->type
->type_table
[cltype165
] == idtype166
;
8975 var168
= varonce167
;
8977 var169
= " = 0; /* is null */";
8979 var171
= string__NativeString__to_s_with_length(var169
, var170
);
8981 varonce167
= var168
;
8983 var172
= NEW_array__Array(&type_array__Arraykernel__Object
);
8984 { /* var172 = array_instance Array[Object] */
8986 var174
= NEW_array__NativeArray(var173
, &type_array__NativeArraykernel__Object
);
8987 ((struct instance_array__NativeArray
*)var174
)->values
[0] = (val
*) var_res
;
8988 ((struct instance_array__NativeArray
*)var174
)->values
[1] = (val
*) var168
;
8990 ((void (*)(val
*, val
*, long))(var172
->class->vft
[COLOR_array__Array__with_native
]))(var172
, var174
, var173
) /* with_native on <var172:Array[Object]>*/;
8994 var175
= ((val
* (*)(val
*))(var172
->class->vft
[COLOR_string__Object__to_s
]))(var172
) /* to_s on <var172:Array[Object]>*/;
8997 abstract_compiler__AbstractCompilerVisitor__add(self
, var175
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <self:SeparateCompilerVisitor>*/
9001 var177
= varonce176
;
9003 var178
= " = 1; /* ";
9005 var180
= string__NativeString__to_s_with_length(var178
, var179
);
9007 varonce176
= var177
;
9010 var181
= abstract_compiler__RuntimeVariable__inspect(var_arg140
);
9013 var183
= varonce182
;
9015 var184
= " cannot be null */";
9017 var186
= string__NativeString__to_s_with_length(var184
, var185
);
9019 varonce182
= var183
;
9021 var187
= NEW_array__Array(&type_array__Arraykernel__Object
);
9022 { /* var187 = array_instance Array[Object] */
9024 var189
= NEW_array__NativeArray(var188
, &type_array__NativeArraykernel__Object
);
9025 ((struct instance_array__NativeArray
*)var189
)->values
[0] = (val
*) var_res
;
9026 ((struct instance_array__NativeArray
*)var189
)->values
[1] = (val
*) var177
;
9027 ((struct instance_array__NativeArray
*)var189
)->values
[2] = (val
*) var181
;
9028 ((struct instance_array__NativeArray
*)var189
)->values
[3] = (val
*) var183
;
9030 ((void (*)(val
*, val
*, long))(var187
->class->vft
[COLOR_array__Array__with_native
]))(var187
, var189
, var188
) /* with_native on <var187:Array[Object]>*/;
9034 var190
= ((val
* (*)(val
*))(var187
->class->vft
[COLOR_string__Object__to_s
]))(var187
) /* to_s on <var187:Array[Object]>*/;
9037 abstract_compiler__AbstractCompilerVisitor__add(self
, var190
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <self:SeparateCompilerVisitor>*/
9043 var192
= varonce191
;
9045 var193
= "Receiver is null";
9047 var195
= string__NativeString__to_s_with_length(var193
, var194
);
9049 varonce191
= var192
;
9052 abstract_compiler__AbstractCompilerVisitor__add_abort(self
, var192
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_abort on <self:SeparateCompilerVisitor>*/
9057 var197
= varonce196
;
9059 var198
= "} else {";
9061 var200
= string__NativeString__to_s_with_length(var198
, var199
);
9063 varonce196
= var197
;
9066 abstract_compiler__AbstractCompilerVisitor__add(self
, var197
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <self:SeparateCompilerVisitor>*/
9070 var202
= varonce201
;
9074 var205
= string__NativeString__to_s_with_length(var203
, var204
);
9076 varonce201
= var202
;
9079 abstract_compiler__AbstractCompilerVisitor__add(self
, var202
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <self:SeparateCompilerVisitor>*/
9083 { /* Inline abstract_compiler#AbstractCompilerVisitor#compiler (self) on <self:SeparateCompilerVisitor> */
9084 var209
= self
->attrs
[COLOR_abstract_compiler__AbstractCompilerVisitor___compiler
].val
; /* _compiler on <self:SeparateCompilerVisitor> */
9085 if (unlikely(var209
== NULL
)) {
9086 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _compiler");
9087 PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 984);
9091 RET_LABEL208
:(void)0;
9095 { /* Inline abstract_compiler#AbstractCompiler#modelbuilder (var207) on <var207:AbstractCompiler(SeparateCompiler)> */
9096 var212
= var207
->attrs
[COLOR_abstract_compiler__AbstractCompiler___modelbuilder
].val
; /* _modelbuilder on <var207:AbstractCompiler(SeparateCompiler)> */
9097 if (unlikely(var212
== NULL
)) {
9098 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
9099 PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 443);
9103 RET_LABEL211
:(void)0;
9107 { /* Inline modelbuilder#ModelBuilder#toolcontext (var210) on <var210:ModelBuilder> */
9108 var215
= var210
->attrs
[COLOR_modelbuilder__ModelBuilder___toolcontext
].val
; /* _toolcontext on <var210:ModelBuilder> */
9109 if (unlikely(var215
== NULL
)) {
9110 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
9111 PRINT_ERROR(" (%s:%d)\n", "src/modelbuilder.nit", 101);
9115 RET_LABEL214
:(void)0;
9119 { /* Inline separate_compiler#ToolContext#opt_no_shortcut_equate (var213) on <var213:ToolContext> */
9120 var218
= var213
->attrs
[COLOR_separate_compiler__ToolContext___opt_no_shortcut_equate
].val
; /* _opt_no_shortcut_equate on <var213:ToolContext> */
9121 if (unlikely(var218
== NULL
)) {
9122 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_no_shortcut_equate");
9123 PRINT_ERROR(" (%s:%d)\n", "src/separate_compiler.nit", 30);
9127 RET_LABEL217
:(void)0;
9131 { /* Inline opts#Option#value (var216) on <var216:OptionBool> */
9132 var221
= var216
->attrs
[COLOR_opts__Option___value
].val
; /* _value on <var216:OptionBool> */
9134 RET_LABEL220
:(void)0;
9137 var222
= ((struct instance_kernel__Bool
*)var219
)->value
; /* autounbox from nullable Object to Bool */;
9142 { /* Inline model#MProperty#name (var_mmethod) on <var_mmethod:MMethod> */
9143 var228
= var_mmethod
->attrs
[COLOR_model__MProperty___name
].val
; /* _name on <var_mmethod:MMethod> */
9144 if (unlikely(var228
== NULL
)) {
9145 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
9146 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1607);
9150 RET_LABEL227
:(void)0;
9154 var230
= varonce229
;
9158 var233
= string__NativeString__to_s_with_length(var231
, var232
);
9160 varonce229
= var230
;
9163 var235
= string__FlatString___61d_61d(var226
, var230
);
9171 { /* Inline model#MProperty#name (var_mmethod) on <var_mmethod:MMethod> */
9172 var239
= var_mmethod
->attrs
[COLOR_model__MProperty___name
].val
; /* _name on <var_mmethod:MMethod> */
9173 if (unlikely(var239
== NULL
)) {
9174 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
9175 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1607);
9179 RET_LABEL238
:(void)0;
9183 var241
= varonce240
;
9187 var244
= string__NativeString__to_s_with_length(var242
, var243
);
9189 varonce240
= var241
;
9192 var246
= string__FlatString___61d_61d(var237
, var241
);
9203 if (var_res
== NULL
) {
9204 var248
= 1; /* is null */
9206 var248
= 0; /* arg is null but recv is not */
9209 { /* Inline kernel#Object#== (var_res,var247) on <var_res:nullable RuntimeVariable> */
9212 { /* Inline kernel#Object#is_same_instance (var_res,var_other) on <var_res:nullable RuntimeVariable(RuntimeVariable)> */
9213 var253
= var_res
== var_other
;
9216 RET_LABEL252
:(void)0;
9221 RET_LABEL250
:(void)0;
9227 var254
= abstract_compiler__AbstractCompilerVisitor__bool_type(self
);
9230 var255
= abstract_compiler__AbstractCompilerVisitor__new_var(self
, var254
);
9237 var257
= array__Array___91d_93d(var_arguments
, var256
);
9239 var_arg258
= var257
;
9241 { /* Inline abstract_compiler#RuntimeVariable#mcasttype (var_arg258) on <var_arg258:RuntimeVariable> */
9242 var261
= var_arg258
->attrs
[COLOR_abstract_compiler__RuntimeVariable___mcasttype
].val
; /* _mcasttype on <var_arg258:RuntimeVariable> */
9243 if (unlikely(var261
== NULL
)) {
9244 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mcasttype");
9245 PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 1487);
9249 RET_LABEL260
:(void)0;
9252 /* <var259:MType> isa MNullType */
9253 cltype263
= type_model__MNullType
.color
;
9254 idtype264
= type_model__MNullType
.id
;
9255 if(cltype263
>= var259
->type
->table_size
) {
9258 var262
= var259
->type
->type_table
[cltype263
] == idtype264
;
9262 { /* Inline model#MProperty#name (var_mmethod) on <var_mmethod:MMethod> */
9263 var267
= var_mmethod
->attrs
[COLOR_model__MProperty___name
].val
; /* _name on <var_mmethod:MMethod> */
9264 if (unlikely(var267
== NULL
)) {
9265 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
9266 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1607);
9270 RET_LABEL266
:(void)0;
9274 var269
= varonce268
;
9278 var272
= string__NativeString__to_s_with_length(var270
, var271
);
9280 varonce268
= var269
;
9283 var274
= string__FlatString___61d_61d(var265
, var269
);
9288 var276
= varonce275
;
9290 var277
= " = 0; /* arg is null but recv is not */";
9292 var279
= string__NativeString__to_s_with_length(var277
, var278
);
9294 varonce275
= var276
;
9296 var280
= NEW_array__Array(&type_array__Arraykernel__Object
);
9297 { /* var280 = array_instance Array[Object] */
9299 var282
= NEW_array__NativeArray(var281
, &type_array__NativeArraykernel__Object
);
9300 ((struct instance_array__NativeArray
*)var282
)->values
[0] = (val
*) var_res
;
9301 ((struct instance_array__NativeArray
*)var282
)->values
[1] = (val
*) var276
;
9303 ((void (*)(val
*, val
*, long))(var280
->class->vft
[COLOR_array__Array__with_native
]))(var280
, var282
, var281
) /* with_native on <var280:Array[Object]>*/;
9307 var283
= ((val
* (*)(val
*))(var280
->class->vft
[COLOR_string__Object__to_s
]))(var280
) /* to_s on <var280:Array[Object]>*/;
9310 abstract_compiler__AbstractCompilerVisitor__add(self
, var283
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <self:SeparateCompilerVisitor>*/
9314 var285
= varonce284
;
9316 var286
= " = 1; /* arg is null and recv is not */";
9318 var288
= string__NativeString__to_s_with_length(var286
, var287
);
9320 varonce284
= var285
;
9322 var289
= NEW_array__Array(&type_array__Arraykernel__Object
);
9323 { /* var289 = array_instance Array[Object] */
9325 var291
= NEW_array__NativeArray(var290
, &type_array__NativeArraykernel__Object
);
9326 ((struct instance_array__NativeArray
*)var291
)->values
[0] = (val
*) var_res
;
9327 ((struct instance_array__NativeArray
*)var291
)->values
[1] = (val
*) var285
;
9329 ((void (*)(val
*, val
*, long))(var289
->class->vft
[COLOR_array__Array__with_native
]))(var289
, var291
, var290
) /* with_native on <var289:Array[Object]>*/;
9333 var292
= ((val
* (*)(val
*))(var289
->class->vft
[COLOR_string__Object__to_s
]))(var289
) /* to_s on <var289:Array[Object]>*/;
9336 abstract_compiler__AbstractCompilerVisitor__add(self
, var292
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <self:SeparateCompilerVisitor>*/
9340 var294
= varonce293
;
9344 var297
= string__NativeString__to_s_with_length(var295
, var296
);
9346 varonce293
= var294
;
9349 abstract_compiler__AbstractCompilerVisitor__add(self
, var294
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <self:SeparateCompilerVisitor>*/
9352 var299
= varonce298
;
9354 var300
= "if (0) {";
9356 var302
= string__NativeString__to_s_with_length(var300
, var301
);
9358 varonce298
= var299
;
9361 abstract_compiler__AbstractCompilerVisitor__add(self
, var299
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <self:SeparateCompilerVisitor>*/
9372 /* method separate_compiler#SeparateCompilerVisitor#before_send for (self: Object, MMethod, Array[RuntimeVariable]): nullable RuntimeVariable */
9373 val
* VIRTUAL_separate_compiler__SeparateCompilerVisitor__before_send(val
* self
, val
* p0
, val
* p1
) {
9374 val
* var
/* : nullable RuntimeVariable */;
9375 val
* var1
/* : nullable RuntimeVariable */;
9376 var1
= separate_compiler__SeparateCompilerVisitor__before_send(self
, p0
, p1
);