1 #include "separate_compiler.sep.0.h"
2 /* method separate_compiler#SeparateCompilerVisitor#type_test for (self: SeparateCompilerVisitor, RuntimeVariable, MType, String): RuntimeVariable */
3 val
* separate_compiler__SeparateCompilerVisitor__type_test(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
4 val
* var
/* : RuntimeVariable */;
5 val
* var_value
/* var value: RuntimeVariable */;
6 val
* var_mtype
/* var mtype: MType */;
7 val
* var_tag
/* var tag: String */;
9 val
* var1
/* : String */;
10 char* var2
/* : NativeString */;
11 long var3
/* : Int */;
12 val
* var4
/* : FlatString */;
13 val
* var5
/* : String */;
15 val
* var7
/* : String */;
16 char* var8
/* : NativeString */;
17 long var9
/* : Int */;
18 val
* var10
/* : FlatString */;
19 static val
* varonce11
;
20 val
* var12
/* : String */;
21 char* var13
/* : NativeString */;
22 long var14
/* : Int */;
23 val
* var15
/* : FlatString */;
24 val
* var16
/* : Array[Object] */;
25 long var17
/* : Int */;
26 val
* var18
/* : NativeArray[Object] */;
27 val
* var19
/* : String */;
28 val
* var20
/* : AbstractCompiler */;
29 val
* var22
/* : AbstractCompiler */;
30 val
* var_compiler
/* var compiler: SeparateCompiler */;
31 val
* var23
/* : nullable Frame */;
32 val
* var25
/* : nullable Frame */;
33 val
* var26
/* : Array[RuntimeVariable] */;
34 val
* var28
/* : Array[RuntimeVariable] */;
35 val
* var29
/* : nullable Object */;
36 val
* var_recv
/* var recv: RuntimeVariable */;
37 val
* var30
/* : String */;
38 val
* var_recv_type_info
/* var recv_type_info: String */;
39 val
* var31
/* : MClassType */;
40 val
* var32
/* : RuntimeVariable */;
41 val
* var_res
/* var res: RuntimeVariable */;
42 static val
* varonce33
;
43 val
* var34
/* : String */;
44 char* var35
/* : NativeString */;
45 long var36
/* : Int */;
46 val
* var37
/* : FlatString */;
47 val
* var38
/* : String */;
48 val
* var_cltype
/* var cltype: String */;
49 static val
* varonce39
;
50 val
* var40
/* : String */;
51 char* var41
/* : NativeString */;
52 long var42
/* : Int */;
53 val
* var43
/* : FlatString */;
54 static val
* varonce44
;
55 val
* var45
/* : String */;
56 char* var46
/* : NativeString */;
57 long var47
/* : Int */;
58 val
* var48
/* : FlatString */;
59 val
* var49
/* : Array[Object] */;
60 long var50
/* : Int */;
61 val
* var51
/* : NativeArray[Object] */;
62 val
* var52
/* : String */;
63 static val
* varonce53
;
64 val
* var54
/* : String */;
65 char* var55
/* : NativeString */;
66 long var56
/* : Int */;
67 val
* var57
/* : FlatString */;
68 val
* var58
/* : String */;
69 val
* var_idtype
/* var idtype: String */;
70 static val
* varonce59
;
71 val
* var60
/* : String */;
72 char* var61
/* : NativeString */;
73 long var62
/* : Int */;
74 val
* var63
/* : FlatString */;
75 static val
* varonce64
;
76 val
* var65
/* : String */;
77 char* var66
/* : NativeString */;
78 long var67
/* : Int */;
79 val
* var68
/* : FlatString */;
80 val
* var69
/* : Array[Object] */;
81 long var70
/* : Int */;
82 val
* var71
/* : NativeArray[Object] */;
83 val
* var72
/* : String */;
84 short int var73
/* : Bool */;
85 short int var_maybe_null
/* var maybe_null: Bool */;
86 static val
* varonce74
;
87 val
* var75
/* : String */;
88 char* var76
/* : NativeString */;
89 long var77
/* : Int */;
90 val
* var78
/* : FlatString */;
91 val
* var_accept_null
/* var accept_null: String */;
92 val
* var_ntype
/* var ntype: MType */;
93 short int var79
/* : Bool */;
96 val
* var80
/* : MType */;
97 val
* var82
/* : MType */;
98 static val
* varonce83
;
99 val
* var84
/* : String */;
100 char* var85
/* : NativeString */;
101 long var86
/* : Int */;
102 val
* var87
/* : FlatString */;
103 val
* var88
/* : MType */;
104 val
* var90
/* : MType */;
105 val
* var91
/* : nullable Frame */;
106 val
* var93
/* : nullable Frame */;
107 val
* var94
/* : MPropDef */;
108 val
* var96
/* : MPropDef */;
109 val
* var97
/* : MClassDef */;
110 val
* var99
/* : MClassDef */;
111 val
* var100
/* : MModule */;
112 val
* var102
/* : MModule */;
113 val
* var103
/* : nullable Frame */;
114 val
* var105
/* : nullable Frame */;
115 val
* var106
/* : MPropDef */;
116 val
* var108
/* : MPropDef */;
117 val
* var109
/* : MClassDef */;
118 val
* var111
/* : MClassDef */;
119 val
* var112
/* : MClassType */;
120 val
* var114
/* : MClassType */;
121 short int var115
/* : Bool */;
122 static val
* varonce116
;
123 val
* var117
/* : String */;
124 char* var118
/* : NativeString */;
125 long var119
/* : Int */;
126 val
* var120
/* : FlatString */;
127 val
* var121
/* : String */;
128 static val
* varonce122
;
129 val
* var123
/* : String */;
130 char* var124
/* : NativeString */;
131 long var125
/* : Int */;
132 val
* var126
/* : FlatString */;
133 static val
* varonce127
;
134 val
* var128
/* : String */;
135 char* var129
/* : NativeString */;
136 long var130
/* : Int */;
137 val
* var131
/* : FlatString */;
138 val
* var132
/* : Array[Object] */;
139 long var133
/* : Int */;
140 val
* var134
/* : NativeArray[Object] */;
141 val
* var135
/* : String */;
142 val
* var136
/* : ModelBuilder */;
143 val
* var138
/* : ModelBuilder */;
144 val
* var139
/* : ToolContext */;
145 val
* var141
/* : ToolContext */;
146 val
* var142
/* : OptionBool */;
147 val
* var144
/* : OptionBool */;
148 val
* var145
/* : nullable Object */;
149 val
* var147
/* : nullable Object */;
150 short int var148
/* : Bool */;
151 val
* var149
/* : AbstractCompiler */;
152 val
* var151
/* : AbstractCompiler */;
153 val
* var152
/* : HashMap[String, Int] */;
154 val
* var154
/* : HashMap[String, Int] */;
155 val
* var_
/* var : HashMap[String, Int] */;
156 val
* var_155
/* var : String */;
157 val
* var156
/* : nullable Object */;
158 long var157
/* : Int */;
159 long var158
/* : Int */;
160 short int var160
/* : Bool */;
163 const char* var_class_name
;
164 long var163
/* : Int */;
165 long var164
/* : Int */;
166 val
* var165
/* : nullable Object */;
167 static val
* varonce166
;
168 val
* var167
/* : String */;
169 char* var168
/* : NativeString */;
170 long var169
/* : Int */;
171 val
* var170
/* : FlatString */;
172 static val
* varonce171
;
173 val
* var172
/* : String */;
174 char* var173
/* : NativeString */;
175 long var174
/* : Int */;
176 val
* var175
/* : FlatString */;
177 val
* var176
/* : Array[Object] */;
178 long var177
/* : Int */;
179 val
* var178
/* : NativeArray[Object] */;
180 val
* var179
/* : String */;
181 short int var180
/* : Bool */;
182 static val
* varonce181
;
183 val
* var182
/* : String */;
184 char* var183
/* : NativeString */;
185 long var184
/* : Int */;
186 val
* var185
/* : FlatString */;
187 val
* var186
/* : String */;
188 val
* var_type_struct
/* var type_struct: String */;
189 static val
* varonce187
;
190 val
* var188
/* : String */;
191 char* var189
/* : NativeString */;
192 long var190
/* : Int */;
193 val
* var191
/* : FlatString */;
194 static val
* varonce192
;
195 val
* var193
/* : String */;
196 char* var194
/* : NativeString */;
197 long var195
/* : Int */;
198 val
* var196
/* : FlatString */;
199 val
* var197
/* : Array[Object] */;
200 long var198
/* : Int */;
201 val
* var199
/* : NativeArray[Object] */;
202 val
* var200
/* : String */;
203 val
* var201
/* : nullable Frame */;
204 val
* var203
/* : nullable Frame */;
205 val
* var204
/* : MPropDef */;
206 val
* var206
/* : MPropDef */;
207 val
* var207
/* : MClassDef */;
208 val
* var209
/* : MClassDef */;
209 val
* var210
/* : String */;
210 static val
* varonce211
;
211 val
* var212
/* : String */;
212 char* var213
/* : NativeString */;
213 long var214
/* : Int */;
214 val
* var215
/* : FlatString */;
215 static val
* varonce216
;
216 val
* var217
/* : String */;
217 char* var218
/* : NativeString */;
218 long var219
/* : Int */;
219 val
* var220
/* : FlatString */;
220 val
* var221
/* : String */;
221 static val
* varonce222
;
222 val
* var223
/* : String */;
223 char* var224
/* : NativeString */;
224 long var225
/* : Int */;
225 val
* var226
/* : FlatString */;
226 val
* var227
/* : Array[Object] */;
227 long var228
/* : Int */;
228 val
* var229
/* : NativeArray[Object] */;
229 val
* var230
/* : String */;
230 val
* var231
/* : ModelBuilder */;
231 val
* var233
/* : ModelBuilder */;
232 val
* var234
/* : ToolContext */;
233 val
* var236
/* : ToolContext */;
234 val
* var237
/* : OptionBool */;
235 val
* var239
/* : OptionBool */;
236 val
* var240
/* : nullable Object */;
237 val
* var242
/* : nullable Object */;
238 short int var243
/* : Bool */;
239 val
* var244
/* : AbstractCompiler */;
240 val
* var246
/* : AbstractCompiler */;
241 val
* var247
/* : HashMap[String, Int] */;
242 val
* var249
/* : HashMap[String, Int] */;
243 val
* var_250
/* var : HashMap[String, Int] */;
244 val
* var_251
/* var : String */;
245 val
* var252
/* : nullable Object */;
246 long var253
/* : Int */;
247 long var254
/* : Int */;
248 short int var256
/* : Bool */;
251 const char* var_class_name259
;
252 long var260
/* : Int */;
253 long var261
/* : Int */;
254 val
* var262
/* : nullable Object */;
255 static val
* varonce263
;
256 val
* var264
/* : String */;
257 char* var265
/* : NativeString */;
258 long var266
/* : Int */;
259 val
* var267
/* : FlatString */;
260 static val
* varonce268
;
261 val
* var269
/* : String */;
262 char* var270
/* : NativeString */;
263 long var271
/* : Int */;
264 val
* var272
/* : FlatString */;
265 val
* var273
/* : Array[Object] */;
266 long var274
/* : Int */;
267 val
* var275
/* : NativeArray[Object] */;
268 val
* var276
/* : String */;
269 static val
* varonce277
;
270 val
* var278
/* : String */;
271 char* var279
/* : NativeString */;
272 long var280
/* : Int */;
273 val
* var281
/* : FlatString */;
274 static val
* varonce282
;
275 val
* var283
/* : String */;
276 char* var284
/* : NativeString */;
277 long var285
/* : Int */;
278 val
* var286
/* : FlatString */;
279 val
* var287
/* : Array[Object] */;
280 long var288
/* : Int */;
281 val
* var289
/* : NativeArray[Object] */;
282 val
* var290
/* : String */;
283 static val
* varonce291
;
284 val
* var292
/* : String */;
285 char* var293
/* : NativeString */;
286 long var294
/* : Int */;
287 val
* var295
/* : FlatString */;
288 static val
* varonce296
;
289 val
* var297
/* : String */;
290 char* var298
/* : NativeString */;
291 long var299
/* : Int */;
292 val
* var300
/* : FlatString */;
293 val
* var301
/* : Array[Object] */;
294 long var302
/* : Int */;
295 val
* var303
/* : NativeArray[Object] */;
296 val
* var304
/* : String */;
297 short int var305
/* : Bool */;
298 short int var_306
/* var : Bool */;
299 static val
* varonce307
;
300 val
* var308
/* : String */;
301 char* var309
/* : NativeString */;
302 long var310
/* : Int */;
303 val
* var311
/* : FlatString */;
304 short int var312
/* : Bool */;
305 short int var313
/* : Bool */;
306 static val
* varonce314
;
307 val
* var315
/* : String */;
308 char* var316
/* : NativeString */;
309 long var317
/* : Int */;
310 val
* var318
/* : FlatString */;
311 val
* var319
/* : String */;
312 val
* var_is_nullable
/* var is_nullable: String */;
313 static val
* varonce320
;
314 val
* var321
/* : String */;
315 char* var322
/* : NativeString */;
316 long var323
/* : Int */;
317 val
* var324
/* : FlatString */;
318 static val
* varonce325
;
319 val
* var326
/* : String */;
320 char* var327
/* : NativeString */;
321 long var328
/* : Int */;
322 val
* var329
/* : FlatString */;
323 val
* var330
/* : Array[Object] */;
324 long var331
/* : Int */;
325 val
* var332
/* : NativeArray[Object] */;
326 val
* var333
/* : String */;
327 static val
* varonce334
;
328 val
* var335
/* : String */;
329 char* var336
/* : NativeString */;
330 long var337
/* : Int */;
331 val
* var338
/* : FlatString */;
332 static val
* varonce339
;
333 val
* var340
/* : String */;
334 char* var341
/* : NativeString */;
335 long var342
/* : Int */;
336 val
* var343
/* : FlatString */;
337 val
* var344
/* : Array[Object] */;
338 long var345
/* : Int */;
339 val
* var346
/* : NativeArray[Object] */;
340 val
* var347
/* : String */;
341 val
* var348
/* : String */;
342 short int var349
/* : Bool */;
345 val
* var352
/* : Set[MType] */;
346 val
* var354
/* : Set[MType] */;
347 static val
* varonce355
;
348 val
* var356
/* : String */;
349 char* var357
/* : NativeString */;
350 long var358
/* : Int */;
351 val
* var359
/* : FlatString */;
352 val
* var360
/* : String */;
353 val
* var361
/* : Array[Object] */;
354 long var362
/* : Int */;
355 val
* var363
/* : NativeArray[Object] */;
356 val
* var364
/* : String */;
357 static val
* varonce365
;
358 val
* var366
/* : String */;
359 char* var367
/* : NativeString */;
360 long var368
/* : Int */;
361 val
* var369
/* : FlatString */;
362 val
* var370
/* : String */;
363 static val
* varonce371
;
364 val
* var372
/* : String */;
365 char* var373
/* : NativeString */;
366 long var374
/* : Int */;
367 val
* var375
/* : FlatString */;
368 val
* var376
/* : Array[Object] */;
369 long var377
/* : Int */;
370 val
* var378
/* : NativeArray[Object] */;
371 val
* var379
/* : String */;
372 static val
* varonce380
;
373 val
* var381
/* : String */;
374 char* var382
/* : NativeString */;
375 long var383
/* : Int */;
376 val
* var384
/* : FlatString */;
377 val
* var385
/* : String */;
378 static val
* varonce386
;
379 val
* var387
/* : String */;
380 char* var388
/* : NativeString */;
381 long var389
/* : Int */;
382 val
* var390
/* : FlatString */;
383 val
* var391
/* : Array[Object] */;
384 long var392
/* : Int */;
385 val
* var393
/* : NativeArray[Object] */;
386 val
* var394
/* : String */;
387 static val
* varonce395
;
388 val
* var396
/* : String */;
389 char* var397
/* : NativeString */;
390 long var398
/* : Int */;
391 val
* var399
/* : FlatString */;
392 val
* var400
/* : String */;
393 static val
* varonce401
;
394 val
* var402
/* : String */;
395 char* var403
/* : NativeString */;
396 long var404
/* : Int */;
397 val
* var405
/* : FlatString */;
398 val
* var406
/* : Array[Object] */;
399 long var407
/* : Int */;
400 val
* var408
/* : NativeArray[Object] */;
401 val
* var409
/* : String */;
402 val
* var410
/* : ModelBuilder */;
403 val
* var412
/* : ModelBuilder */;
404 val
* var413
/* : ToolContext */;
405 val
* var415
/* : ToolContext */;
406 val
* var416
/* : OptionBool */;
407 val
* var418
/* : OptionBool */;
408 val
* var419
/* : nullable Object */;
409 val
* var421
/* : nullable Object */;
410 short int var422
/* : Bool */;
411 val
* var423
/* : AbstractCompiler */;
412 val
* var425
/* : AbstractCompiler */;
413 val
* var426
/* : HashMap[String, Int] */;
414 val
* var428
/* : HashMap[String, Int] */;
415 val
* var_429
/* var : HashMap[String, Int] */;
416 val
* var_430
/* var : String */;
417 val
* var431
/* : nullable Object */;
418 long var432
/* : Int */;
419 long var433
/* : Int */;
420 short int var435
/* : Bool */;
423 const char* var_class_name438
;
424 long var439
/* : Int */;
425 long var440
/* : Int */;
426 val
* var441
/* : nullable Object */;
427 static val
* varonce442
;
428 val
* var443
/* : String */;
429 char* var444
/* : NativeString */;
430 long var445
/* : Int */;
431 val
* var446
/* : FlatString */;
432 static val
* varonce447
;
433 val
* var448
/* : String */;
434 char* var449
/* : NativeString */;
435 long var450
/* : Int */;
436 val
* var451
/* : FlatString */;
437 val
* var452
/* : Array[Object] */;
438 long var453
/* : Int */;
439 val
* var454
/* : NativeArray[Object] */;
440 val
* var455
/* : String */;
441 static val
* varonce456
;
442 val
* var457
/* : String */;
443 char* var458
/* : NativeString */;
444 long var459
/* : Int */;
445 val
* var460
/* : FlatString */;
446 static val
* varonce461
;
447 val
* var462
/* : String */;
448 char* var463
/* : NativeString */;
449 long var464
/* : Int */;
450 val
* var465
/* : FlatString */;
451 val
* var466
/* : String */;
452 static val
* varonce467
;
453 val
* var468
/* : String */;
454 char* var469
/* : NativeString */;
455 long var470
/* : Int */;
456 val
* var471
/* : FlatString */;
457 val
* var472
/* : Array[Object] */;
458 long var473
/* : Int */;
459 val
* var474
/* : NativeArray[Object] */;
460 val
* var475
/* : String */;
461 static val
* varonce476
;
462 val
* var477
/* : String */;
463 char* var478
/* : NativeString */;
464 long var479
/* : Int */;
465 val
* var480
/* : FlatString */;
466 static val
* varonce481
;
467 val
* var482
/* : String */;
468 char* var483
/* : NativeString */;
469 long var484
/* : Int */;
470 val
* var485
/* : FlatString */;
471 val
* var486
/* : Array[Object] */;
472 long var487
/* : Int */;
473 val
* var488
/* : NativeArray[Object] */;
474 val
* var489
/* : String */;
475 static val
* varonce490
;
476 val
* var491
/* : String */;
477 char* var492
/* : NativeString */;
478 long var493
/* : Int */;
479 val
* var494
/* : FlatString */;
480 static val
* varonce495
;
481 val
* var496
/* : String */;
482 char* var497
/* : NativeString */;
483 long var498
/* : Int */;
484 val
* var499
/* : FlatString */;
485 val
* var500
/* : Array[Object] */;
486 long var501
/* : Int */;
487 val
* var502
/* : NativeArray[Object] */;
488 val
* var503
/* : String */;
489 static val
* varonce504
;
490 val
* var505
/* : String */;
491 char* var506
/* : NativeString */;
492 long var507
/* : Int */;
493 val
* var508
/* : FlatString */;
494 val
* var509
/* : String */;
495 val
* var_value_type_info
/* var value_type_info: String */;
496 static val
* varonce510
;
497 val
* var511
/* : String */;
498 char* var512
/* : NativeString */;
499 long var513
/* : Int */;
500 val
* var514
/* : FlatString */;
501 static val
* varonce515
;
502 val
* var516
/* : String */;
503 char* var517
/* : NativeString */;
504 long var518
/* : Int */;
505 val
* var519
/* : FlatString */;
506 static val
* varonce520
;
507 val
* var521
/* : String */;
508 char* var522
/* : NativeString */;
509 long var523
/* : Int */;
510 val
* var524
/* : FlatString */;
511 val
* var525
/* : Array[Object] */;
512 long var526
/* : Int */;
513 val
* var527
/* : NativeArray[Object] */;
514 val
* var528
/* : String */;
515 static val
* varonce529
;
516 val
* var530
/* : String */;
517 char* var531
/* : NativeString */;
518 long var532
/* : Int */;
519 val
* var533
/* : FlatString */;
520 val
* var534
/* : Array[Object] */;
521 long var535
/* : Int */;
522 val
* var536
/* : NativeArray[Object] */;
523 val
* var537
/* : String */;
524 static val
* varonce538
;
525 val
* var539
/* : String */;
526 char* var540
/* : NativeString */;
527 long var541
/* : Int */;
528 val
* var542
/* : FlatString */;
529 static val
* varonce543
;
530 val
* var544
/* : String */;
531 char* var545
/* : NativeString */;
532 long var546
/* : Int */;
533 val
* var547
/* : FlatString */;
534 static val
* varonce548
;
535 val
* var549
/* : String */;
536 char* var550
/* : NativeString */;
537 long var551
/* : Int */;
538 val
* var552
/* : FlatString */;
539 static val
* varonce553
;
540 val
* var554
/* : String */;
541 char* var555
/* : NativeString */;
542 long var556
/* : Int */;
543 val
* var557
/* : FlatString */;
544 static val
* varonce558
;
545 val
* var559
/* : String */;
546 char* var560
/* : NativeString */;
547 long var561
/* : Int */;
548 val
* var562
/* : FlatString */;
549 val
* var563
/* : Array[Object] */;
550 long var564
/* : Int */;
551 val
* var565
/* : NativeArray[Object] */;
552 val
* var566
/* : String */;
553 static val
* varonce567
;
554 val
* var568
/* : String */;
555 char* var569
/* : NativeString */;
556 long var570
/* : Int */;
557 val
* var571
/* : FlatString */;
558 static val
* varonce572
;
559 val
* var573
/* : String */;
560 char* var574
/* : NativeString */;
561 long var575
/* : Int */;
562 val
* var576
/* : FlatString */;
571 var4
= string__NativeString__to_s_with_length(var2
, var3
);
576 var5
= abstract_compiler__RuntimeVariable__inspect(var_value
);
583 var10
= string__NativeString__to_s_with_length(var8
, var9
);
592 var15
= string__NativeString__to_s_with_length(var13
, var14
);
596 var16
= NEW_array__Array(&type_array__Arraykernel__Object
);
597 { /* var16 = array_instance Array[Object] */
599 var18
= NEW_array__NativeArray(var17
, &type_array__NativeArraykernel__Object
);
600 ((struct instance_array__NativeArray
*)var18
)->values
[0] = (val
*) var1
;
601 ((struct instance_array__NativeArray
*)var18
)->values
[1] = (val
*) var5
;
602 ((struct instance_array__NativeArray
*)var18
)->values
[2] = (val
*) var7
;
603 ((struct instance_array__NativeArray
*)var18
)->values
[3] = (val
*) var_mtype
;
604 ((struct instance_array__NativeArray
*)var18
)->values
[4] = (val
*) var12
;
606 ((void (*)(val
*, val
*, long))(var16
->class->vft
[COLOR_array__Array__with_native
]))(var16
, var18
, var17
) /* with_native on <var16:Array[Object]>*/;
610 var19
= ((val
* (*)(val
*))(var16
->class->vft
[COLOR_string__Object__to_s
]))(var16
) /* to_s on <var16:Array[Object]>*/;
613 abstract_compiler__AbstractCompilerVisitor__add(self
, var19
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <self:SeparateCompilerVisitor>*/
616 { /* Inline abstract_compiler#AbstractCompilerVisitor#compiler (self) on <self:SeparateCompilerVisitor> */
617 var22
= self
->attrs
[COLOR_abstract_compiler__AbstractCompilerVisitor___compiler
].val
; /* _compiler on <self:SeparateCompilerVisitor> */
618 if (unlikely(var22
== NULL
)) {
619 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _compiler");
620 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 1041);
627 var_compiler
= var20
;
629 { /* Inline abstract_compiler#AbstractCompilerVisitor#frame (self) on <self:SeparateCompilerVisitor> */
630 var25
= self
->attrs
[COLOR_abstract_compiler__AbstractCompilerVisitor___frame
].val
; /* _frame on <self:SeparateCompilerVisitor> */
636 PRINT_ERROR("Runtime error: %s", "Receiver is null");
637 PRINT_ERROR(" (%s:%d)\n", "compiler/separate_compiler.nit", 1466);
640 { /* Inline abstract_compiler#Frame#arguments (var23) on <var23:nullable Frame> */
641 if (unlikely(var23
== NULL
)) {
642 PRINT_ERROR("Runtime error: %s", "Receiver is null");
643 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 1688);
646 var28
= var23
->attrs
[COLOR_abstract_compiler__Frame___arguments
].val
; /* _arguments on <var23:nullable Frame> */
647 if (unlikely(var28
== NULL
)) {
648 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _arguments");
649 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 1688);
657 var29
= abstract_collection__SequenceRead__first(var26
);
661 var30
= separate_compiler__SeparateCompilerVisitor__type_info(self
, var_recv
);
663 var_recv_type_info
= var30
;
665 var31
= abstract_compiler__AbstractCompilerVisitor__bool_type(self
);
668 var32
= abstract_compiler__AbstractCompilerVisitor__new_var(self
, var31
);
676 var37
= string__NativeString__to_s_with_length(var35
, var36
);
681 var38
= abstract_compiler__AbstractCompilerVisitor__get_name(self
, var34
);
689 var43
= string__NativeString__to_s_with_length(var41
, var42
);
698 var48
= string__NativeString__to_s_with_length(var46
, var47
);
702 var49
= NEW_array__Array(&type_array__Arraykernel__Object
);
703 { /* var49 = array_instance Array[Object] */
705 var51
= NEW_array__NativeArray(var50
, &type_array__NativeArraykernel__Object
);
706 ((struct instance_array__NativeArray
*)var51
)->values
[0] = (val
*) var40
;
707 ((struct instance_array__NativeArray
*)var51
)->values
[1] = (val
*) var_cltype
;
708 ((struct instance_array__NativeArray
*)var51
)->values
[2] = (val
*) var45
;
710 ((void (*)(val
*, val
*, long))(var49
->class->vft
[COLOR_array__Array__with_native
]))(var49
, var51
, var50
) /* with_native on <var49:Array[Object]>*/;
714 var52
= ((val
* (*)(val
*))(var49
->class->vft
[COLOR_string__Object__to_s
]))(var49
) /* to_s on <var49:Array[Object]>*/;
717 abstract_compiler__AbstractCompilerVisitor__add_decl(self
, var52
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <self:SeparateCompilerVisitor>*/
724 var57
= string__NativeString__to_s_with_length(var55
, var56
);
729 var58
= abstract_compiler__AbstractCompilerVisitor__get_name(self
, var54
);
737 var63
= string__NativeString__to_s_with_length(var61
, var62
);
746 var68
= string__NativeString__to_s_with_length(var66
, var67
);
750 var69
= NEW_array__Array(&type_array__Arraykernel__Object
);
751 { /* var69 = array_instance Array[Object] */
753 var71
= NEW_array__NativeArray(var70
, &type_array__NativeArraykernel__Object
);
754 ((struct instance_array__NativeArray
*)var71
)->values
[0] = (val
*) var60
;
755 ((struct instance_array__NativeArray
*)var71
)->values
[1] = (val
*) var_idtype
;
756 ((struct instance_array__NativeArray
*)var71
)->values
[2] = (val
*) var65
;
758 ((void (*)(val
*, val
*, long))(var69
->class->vft
[COLOR_array__Array__with_native
]))(var69
, var71
, var70
) /* with_native on <var69:Array[Object]>*/;
762 var72
= ((val
* (*)(val
*))(var69
->class->vft
[COLOR_string__Object__to_s
]))(var69
) /* to_s on <var69:Array[Object]>*/;
765 abstract_compiler__AbstractCompilerVisitor__add_decl(self
, var72
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <self:SeparateCompilerVisitor>*/
768 var73
= separate_compiler__SeparateCompilerVisitor__maybe_null(self
, var_value
);
770 var_maybe_null
= var73
;
776 var78
= string__NativeString__to_s_with_length(var76
, var77
);
780 var_accept_null
= var75
;
781 var_ntype
= var_mtype
;
782 /* <var_ntype:MType> isa MNullableType */
783 cltype
= type_model__MNullableType
.color
;
784 idtype
= type_model__MNullableType
.id
;
785 if(cltype
>= var_ntype
->type
->table_size
) {
788 var79
= var_ntype
->type
->type_table
[cltype
] == idtype
;
792 { /* Inline model#MNullableType#mtype (var_ntype) on <var_ntype:MType(MNullableType)> */
793 var82
= var_ntype
->attrs
[COLOR_model__MNullableType___mtype
].val
; /* _mtype on <var_ntype:MType(MNullableType)> */
794 if (unlikely(var82
== NULL
)) {
795 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
796 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1388);
809 var87
= string__NativeString__to_s_with_length(var85
, var86
);
813 var_accept_null
= var84
;
817 { /* Inline abstract_compiler#RuntimeVariable#mcasttype (var_value) on <var_value:RuntimeVariable> */
818 var90
= var_value
->attrs
[COLOR_abstract_compiler__RuntimeVariable___mcasttype
].val
; /* _mcasttype on <var_value:RuntimeVariable> */
819 if (unlikely(var90
== NULL
)) {
820 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mcasttype");
821 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 1637);
829 { /* Inline abstract_compiler#AbstractCompilerVisitor#frame (self) on <self:SeparateCompilerVisitor> */
830 var93
= self
->attrs
[COLOR_abstract_compiler__AbstractCompilerVisitor___frame
].val
; /* _frame on <self:SeparateCompilerVisitor> */
836 PRINT_ERROR("Runtime error: %s", "Receiver is null");
837 PRINT_ERROR(" (%s:%d)\n", "compiler/separate_compiler.nit", 1484);
840 { /* Inline abstract_compiler#Frame#mpropdef (var91) on <var91:nullable Frame> */
841 if (unlikely(var91
== NULL
)) {
842 PRINT_ERROR("Runtime error: %s", "Receiver is null");
843 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 1681);
846 var96
= var91
->attrs
[COLOR_abstract_compiler__Frame___mpropdef
].val
; /* _mpropdef on <var91:nullable Frame> */
847 if (unlikely(var96
== NULL
)) {
848 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mpropdef");
849 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 1681);
857 { /* Inline model#MPropDef#mclassdef (var94) on <var94:MPropDef> */
858 var99
= var94
->attrs
[COLOR_model__MPropDef___mclassdef
].val
; /* _mclassdef on <var94:MPropDef> */
859 if (unlikely(var99
== NULL
)) {
860 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdef");
861 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1895);
869 { /* Inline model#MClassDef#mmodule (var97) on <var97:MClassDef> */
870 var102
= var97
->attrs
[COLOR_model__MClassDef___mmodule
].val
; /* _mmodule on <var97:MClassDef> */
871 if (unlikely(var102
== NULL
)) {
872 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule");
873 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 489);
877 RET_LABEL101
:(void)0;
881 { /* Inline abstract_compiler#AbstractCompilerVisitor#frame (self) on <self:SeparateCompilerVisitor> */
882 var105
= self
->attrs
[COLOR_abstract_compiler__AbstractCompilerVisitor___frame
].val
; /* _frame on <self:SeparateCompilerVisitor> */
884 RET_LABEL104
:(void)0;
887 if (var103
== NULL
) {
888 PRINT_ERROR("Runtime error: %s", "Receiver is null");
889 PRINT_ERROR(" (%s:%d)\n", "compiler/separate_compiler.nit", 1484);
892 { /* Inline abstract_compiler#Frame#mpropdef (var103) on <var103:nullable Frame> */
893 if (unlikely(var103
== NULL
)) {
894 PRINT_ERROR("Runtime error: %s", "Receiver is null");
895 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 1681);
898 var108
= var103
->attrs
[COLOR_abstract_compiler__Frame___mpropdef
].val
; /* _mpropdef on <var103:nullable Frame> */
899 if (unlikely(var108
== NULL
)) {
900 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mpropdef");
901 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 1681);
905 RET_LABEL107
:(void)0;
909 { /* Inline model#MPropDef#mclassdef (var106) on <var106:MPropDef> */
910 var111
= var106
->attrs
[COLOR_model__MPropDef___mclassdef
].val
; /* _mclassdef on <var106:MPropDef> */
911 if (unlikely(var111
== NULL
)) {
912 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdef");
913 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1895);
917 RET_LABEL110
:(void)0;
921 { /* Inline model#MClassDef#bound_mtype (var109) on <var109:MClassDef> */
922 var114
= var109
->attrs
[COLOR_model__MClassDef___bound_mtype
].val
; /* _bound_mtype on <var109:MClassDef> */
923 if (unlikely(var114
== NULL
)) {
924 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _bound_mtype");
925 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 495);
929 RET_LABEL113
:(void)0;
933 var115
= model__MType__is_subtype(var88
, var100
, var112
, var_mtype
);
939 var118
= " = 1; /* easy ";
941 var120
= string__NativeString__to_s_with_length(var118
, var119
);
946 var121
= abstract_compiler__RuntimeVariable__inspect(var_value
);
953 var126
= string__NativeString__to_s_with_length(var124
, var125
);
962 var131
= string__NativeString__to_s_with_length(var129
, var130
);
966 var132
= NEW_array__Array(&type_array__Arraykernel__Object
);
967 { /* var132 = array_instance Array[Object] */
969 var134
= NEW_array__NativeArray(var133
, &type_array__NativeArraykernel__Object
);
970 ((struct instance_array__NativeArray
*)var134
)->values
[0] = (val
*) var_res
;
971 ((struct instance_array__NativeArray
*)var134
)->values
[1] = (val
*) var117
;
972 ((struct instance_array__NativeArray
*)var134
)->values
[2] = (val
*) var121
;
973 ((struct instance_array__NativeArray
*)var134
)->values
[3] = (val
*) var123
;
974 ((struct instance_array__NativeArray
*)var134
)->values
[4] = (val
*) var_mtype
;
975 ((struct instance_array__NativeArray
*)var134
)->values
[5] = (val
*) var128
;
977 ((void (*)(val
*, val
*, long))(var132
->class->vft
[COLOR_array__Array__with_native
]))(var132
, var134
, var133
) /* with_native on <var132:Array[Object]>*/;
981 var135
= ((val
* (*)(val
*))(var132
->class->vft
[COLOR_string__Object__to_s
]))(var132
) /* to_s on <var132:Array[Object]>*/;
984 abstract_compiler__AbstractCompilerVisitor__add(self
, var135
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <self:SeparateCompilerVisitor>*/
987 { /* Inline abstract_compiler#AbstractCompiler#modelbuilder (var_compiler) on <var_compiler:SeparateCompiler> */
988 var138
= var_compiler
->attrs
[COLOR_abstract_compiler__AbstractCompiler___modelbuilder
].val
; /* _modelbuilder on <var_compiler:SeparateCompiler> */
989 if (unlikely(var138
== NULL
)) {
990 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
991 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 470);
995 RET_LABEL137
:(void)0;
999 { /* Inline modelbuilder#ModelBuilder#toolcontext (var136) on <var136:ModelBuilder> */
1000 var141
= var136
->attrs
[COLOR_modelbuilder__ModelBuilder___toolcontext
].val
; /* _toolcontext on <var136:ModelBuilder> */
1001 if (unlikely(var141
== NULL
)) {
1002 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
1003 PRINT_ERROR(" (%s:%d)\n", "modelbuilder.nit", 106);
1007 RET_LABEL140
:(void)0;
1011 { /* Inline abstract_compiler#ToolContext#opt_typing_test_metrics (var139) on <var139:ToolContext> */
1012 var144
= var139
->attrs
[COLOR_abstract_compiler__ToolContext___opt_typing_test_metrics
].val
; /* _opt_typing_test_metrics on <var139:ToolContext> */
1013 if (unlikely(var144
== NULL
)) {
1014 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_typing_test_metrics");
1015 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 61);
1019 RET_LABEL143
:(void)0;
1023 { /* Inline opts#Option#value (var142) on <var142:OptionBool> */
1024 var147
= var142
->attrs
[COLOR_opts__Option___value
].val
; /* _value on <var142:OptionBool> */
1026 RET_LABEL146
:(void)0;
1029 var148
= ((struct instance_kernel__Bool
*)var145
)->value
; /* autounbox from nullable Object to Bool */;
1032 { /* Inline abstract_compiler#AbstractCompilerVisitor#compiler (self) on <self:SeparateCompilerVisitor> */
1033 var151
= self
->attrs
[COLOR_abstract_compiler__AbstractCompilerVisitor___compiler
].val
; /* _compiler on <self:SeparateCompilerVisitor> */
1034 if (unlikely(var151
== NULL
)) {
1035 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _compiler");
1036 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 1041);
1040 RET_LABEL150
:(void)0;
1044 { /* Inline abstract_compiler#AbstractCompiler#count_type_test_skipped (var149) on <var149:AbstractCompiler(SeparateCompiler)> */
1045 var154
= var149
->attrs
[COLOR_abstract_compiler__AbstractCompiler___count_type_test_skipped
].val
; /* _count_type_test_skipped on <var149:AbstractCompiler(SeparateCompiler)> */
1046 if (unlikely(var154
== NULL
)) {
1047 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _count_type_test_skipped");
1048 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 947);
1052 RET_LABEL153
:(void)0;
1058 var156
= hash_collection__HashMap___91d_93d(var_
, var_155
);
1062 { /* Inline kernel#Int#+ (var156,var157) on <var156:nullable Object(Int)> */
1063 /* Covariant cast for argument 0 (i) <var157:Int> isa OTHER */
1064 /* <var157:Int> isa OTHER */
1065 var160
= 1; /* easy <var157:Int> isa OTHER*/
1066 if (unlikely(!var160
)) {
1067 var_class_name
= type_kernel__Int
.name
;
1068 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name
);
1069 PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 374);
1072 var163
= ((struct instance_kernel__Int
*)var156
)->value
; /* autounbox from nullable Object to Int */;
1073 var164
= var163
+ var157
;
1076 RET_LABEL159
:(void)0;
1080 var165
= BOX_kernel__Int(var158
); /* autobox from Int to nullable Object */
1081 hash_collection__HashMap___91d_93d_61d(var_
, var_155
, var165
); /* Direct call hash_collection#HashMap#[]= on <var_:HashMap[String, Int]>*/
1084 var167
= varonce166
;
1086 var168
= "count_type_test_skipped_";
1088 var170
= string__NativeString__to_s_with_length(var168
, var169
);
1090 varonce166
= var167
;
1093 var172
= varonce171
;
1097 var175
= string__NativeString__to_s_with_length(var173
, var174
);
1099 varonce171
= var172
;
1101 var176
= NEW_array__Array(&type_array__Arraykernel__Object
);
1102 { /* var176 = array_instance Array[Object] */
1104 var178
= NEW_array__NativeArray(var177
, &type_array__NativeArraykernel__Object
);
1105 ((struct instance_array__NativeArray
*)var178
)->values
[0] = (val
*) var167
;
1106 ((struct instance_array__NativeArray
*)var178
)->values
[1] = (val
*) var_tag
;
1107 ((struct instance_array__NativeArray
*)var178
)->values
[2] = (val
*) var172
;
1109 ((void (*)(val
*, val
*, long))(var176
->class->vft
[COLOR_array__Array__with_native
]))(var176
, var178
, var177
) /* with_native on <var176:Array[Object]>*/;
1113 var179
= ((val
* (*)(val
*))(var176
->class->vft
[COLOR_string__Object__to_s
]))(var176
) /* to_s on <var176:Array[Object]>*/;
1116 abstract_compiler__AbstractCompilerVisitor__add(self
, var179
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <self:SeparateCompilerVisitor>*/
1125 var180
= ((short int (*)(val
*))(var_ntype
->class->vft
[COLOR_model__MType__need_anchor
]))(var_ntype
) /* need_anchor on <var_ntype:MType>*/;
1129 var182
= varonce181
;
1131 var183
= "type_struct";
1133 var185
= string__NativeString__to_s_with_length(var183
, var184
);
1135 varonce181
= var182
;
1138 var186
= abstract_compiler__AbstractCompilerVisitor__get_name(self
, var182
);
1140 var_type_struct
= var186
;
1142 var188
= varonce187
;
1144 var189
= "const struct type* ";
1146 var191
= string__NativeString__to_s_with_length(var189
, var190
);
1148 varonce187
= var188
;
1151 var193
= varonce192
;
1155 var196
= string__NativeString__to_s_with_length(var194
, var195
);
1157 varonce192
= var193
;
1159 var197
= NEW_array__Array(&type_array__Arraykernel__Object
);
1160 { /* var197 = array_instance Array[Object] */
1162 var199
= NEW_array__NativeArray(var198
, &type_array__NativeArraykernel__Object
);
1163 ((struct instance_array__NativeArray
*)var199
)->values
[0] = (val
*) var188
;
1164 ((struct instance_array__NativeArray
*)var199
)->values
[1] = (val
*) var_type_struct
;
1165 ((struct instance_array__NativeArray
*)var199
)->values
[2] = (val
*) var193
;
1167 ((void (*)(val
*, val
*, long))(var197
->class->vft
[COLOR_array__Array__with_native
]))(var197
, var199
, var198
) /* with_native on <var197:Array[Object]>*/;
1171 var200
= ((val
* (*)(val
*))(var197
->class->vft
[COLOR_string__Object__to_s
]))(var197
) /* to_s on <var197:Array[Object]>*/;
1174 abstract_compiler__AbstractCompilerVisitor__add_decl(self
, var200
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <self:SeparateCompilerVisitor>*/
1177 separate_compiler__SeparateCompilerVisitor__hardening_live_open_type(self
, var_mtype
); /* Direct call separate_compiler#SeparateCompilerVisitor#hardening_live_open_type on <self:SeparateCompilerVisitor>*/
1180 { /* Inline abstract_compiler#AbstractCompilerVisitor#frame (self) on <self:SeparateCompilerVisitor> */
1181 var203
= self
->attrs
[COLOR_abstract_compiler__AbstractCompilerVisitor___frame
].val
; /* _frame on <self:SeparateCompilerVisitor> */
1183 RET_LABEL202
:(void)0;
1186 if (var201
== NULL
) {
1187 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1188 PRINT_ERROR(" (%s:%d)\n", "compiler/separate_compiler.nit", 1499);
1191 { /* Inline abstract_compiler#Frame#mpropdef (var201) on <var201:nullable Frame> */
1192 if (unlikely(var201
== NULL
)) {
1193 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1194 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 1681);
1197 var206
= var201
->attrs
[COLOR_abstract_compiler__Frame___mpropdef
].val
; /* _mpropdef on <var201:nullable Frame> */
1198 if (unlikely(var206
== NULL
)) {
1199 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mpropdef");
1200 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 1681);
1204 RET_LABEL205
:(void)0;
1208 { /* Inline model#MPropDef#mclassdef (var204) on <var204:MPropDef> */
1209 var209
= var204
->attrs
[COLOR_model__MPropDef___mclassdef
].val
; /* _mclassdef on <var204:MPropDef> */
1210 if (unlikely(var209
== NULL
)) {
1211 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdef");
1212 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1895);
1216 RET_LABEL208
:(void)0;
1220 separate_compiler__SeparateCompilerVisitor__link_unresolved_type(self
, var207
, var_mtype
); /* Direct call separate_compiler#SeparateCompilerVisitor#link_unresolved_type on <self:SeparateCompilerVisitor>*/
1223 var210
= separate_compiler__MType__const_color(var_mtype
);
1226 abstract_compiler__AbstractCompilerVisitor__require_declaration(self
, var210
); /* Direct call abstract_compiler#AbstractCompilerVisitor#require_declaration on <self:SeparateCompilerVisitor>*/
1229 var212
= varonce211
;
1233 var215
= string__NativeString__to_s_with_length(var213
, var214
);
1235 varonce211
= var212
;
1238 var217
= varonce216
;
1240 var218
= "->resolution_table->types[";
1242 var220
= string__NativeString__to_s_with_length(var218
, var219
);
1244 varonce216
= var217
;
1247 var221
= separate_compiler__MType__const_color(var_mtype
);
1250 var223
= varonce222
;
1254 var226
= string__NativeString__to_s_with_length(var224
, var225
);
1256 varonce222
= var223
;
1258 var227
= NEW_array__Array(&type_array__Arraykernel__Object
);
1259 { /* var227 = array_instance Array[Object] */
1261 var229
= NEW_array__NativeArray(var228
, &type_array__NativeArraykernel__Object
);
1262 ((struct instance_array__NativeArray
*)var229
)->values
[0] = (val
*) var_type_struct
;
1263 ((struct instance_array__NativeArray
*)var229
)->values
[1] = (val
*) var212
;
1264 ((struct instance_array__NativeArray
*)var229
)->values
[2] = (val
*) var_recv_type_info
;
1265 ((struct instance_array__NativeArray
*)var229
)->values
[3] = (val
*) var217
;
1266 ((struct instance_array__NativeArray
*)var229
)->values
[4] = (val
*) var221
;
1267 ((struct instance_array__NativeArray
*)var229
)->values
[5] = (val
*) var223
;
1269 ((void (*)(val
*, val
*, long))(var227
->class->vft
[COLOR_array__Array__with_native
]))(var227
, var229
, var228
) /* with_native on <var227:Array[Object]>*/;
1273 var230
= ((val
* (*)(val
*))(var227
->class->vft
[COLOR_string__Object__to_s
]))(var227
) /* to_s on <var227:Array[Object]>*/;
1276 abstract_compiler__AbstractCompilerVisitor__add(self
, var230
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <self:SeparateCompilerVisitor>*/
1279 { /* Inline abstract_compiler#AbstractCompiler#modelbuilder (var_compiler) on <var_compiler:SeparateCompiler> */
1280 var233
= var_compiler
->attrs
[COLOR_abstract_compiler__AbstractCompiler___modelbuilder
].val
; /* _modelbuilder on <var_compiler:SeparateCompiler> */
1281 if (unlikely(var233
== NULL
)) {
1282 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
1283 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 470);
1287 RET_LABEL232
:(void)0;
1291 { /* Inline modelbuilder#ModelBuilder#toolcontext (var231) on <var231:ModelBuilder> */
1292 var236
= var231
->attrs
[COLOR_modelbuilder__ModelBuilder___toolcontext
].val
; /* _toolcontext on <var231:ModelBuilder> */
1293 if (unlikely(var236
== NULL
)) {
1294 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
1295 PRINT_ERROR(" (%s:%d)\n", "modelbuilder.nit", 106);
1299 RET_LABEL235
:(void)0;
1303 { /* Inline abstract_compiler#ToolContext#opt_typing_test_metrics (var234) on <var234:ToolContext> */
1304 var239
= var234
->attrs
[COLOR_abstract_compiler__ToolContext___opt_typing_test_metrics
].val
; /* _opt_typing_test_metrics on <var234:ToolContext> */
1305 if (unlikely(var239
== NULL
)) {
1306 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_typing_test_metrics");
1307 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 61);
1311 RET_LABEL238
:(void)0;
1315 { /* Inline opts#Option#value (var237) on <var237:OptionBool> */
1316 var242
= var237
->attrs
[COLOR_opts__Option___value
].val
; /* _value on <var237:OptionBool> */
1318 RET_LABEL241
:(void)0;
1321 var243
= ((struct instance_kernel__Bool
*)var240
)->value
; /* autounbox from nullable Object to Bool */;
1324 { /* Inline abstract_compiler#AbstractCompilerVisitor#compiler (self) on <self:SeparateCompilerVisitor> */
1325 var246
= self
->attrs
[COLOR_abstract_compiler__AbstractCompilerVisitor___compiler
].val
; /* _compiler on <self:SeparateCompilerVisitor> */
1326 if (unlikely(var246
== NULL
)) {
1327 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _compiler");
1328 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 1041);
1332 RET_LABEL245
:(void)0;
1336 { /* Inline abstract_compiler#AbstractCompiler#count_type_test_unresolved (var244) on <var244:AbstractCompiler(SeparateCompiler)> */
1337 var249
= var244
->attrs
[COLOR_abstract_compiler__AbstractCompiler___count_type_test_unresolved
].val
; /* _count_type_test_unresolved on <var244:AbstractCompiler(SeparateCompiler)> */
1338 if (unlikely(var249
== NULL
)) {
1339 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _count_type_test_unresolved");
1340 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 946);
1344 RET_LABEL248
:(void)0;
1350 var252
= hash_collection__HashMap___91d_93d(var_250
, var_251
);
1354 { /* Inline kernel#Int#+ (var252,var253) on <var252:nullable Object(Int)> */
1355 /* Covariant cast for argument 0 (i) <var253:Int> isa OTHER */
1356 /* <var253:Int> isa OTHER */
1357 var256
= 1; /* easy <var253:Int> isa OTHER*/
1358 if (unlikely(!var256
)) {
1359 var_class_name259
= type_kernel__Int
.name
;
1360 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name259
);
1361 PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 374);
1364 var260
= ((struct instance_kernel__Int
*)var252
)->value
; /* autounbox from nullable Object to Int */;
1365 var261
= var260
+ var253
;
1368 RET_LABEL255
:(void)0;
1372 var262
= BOX_kernel__Int(var254
); /* autobox from Int to nullable Object */
1373 hash_collection__HashMap___91d_93d_61d(var_250
, var_251
, var262
); /* Direct call hash_collection#HashMap#[]= on <var_250:HashMap[String, Int]>*/
1376 var264
= varonce263
;
1378 var265
= "count_type_test_unresolved_";
1380 var267
= string__NativeString__to_s_with_length(var265
, var266
);
1382 varonce263
= var264
;
1385 var269
= varonce268
;
1389 var272
= string__NativeString__to_s_with_length(var270
, var271
);
1391 varonce268
= var269
;
1393 var273
= NEW_array__Array(&type_array__Arraykernel__Object
);
1394 { /* var273 = array_instance Array[Object] */
1396 var275
= NEW_array__NativeArray(var274
, &type_array__NativeArraykernel__Object
);
1397 ((struct instance_array__NativeArray
*)var275
)->values
[0] = (val
*) var264
;
1398 ((struct instance_array__NativeArray
*)var275
)->values
[1] = (val
*) var_tag
;
1399 ((struct instance_array__NativeArray
*)var275
)->values
[2] = (val
*) var269
;
1401 ((void (*)(val
*, val
*, long))(var273
->class->vft
[COLOR_array__Array__with_native
]))(var273
, var275
, var274
) /* with_native on <var273:Array[Object]>*/;
1405 var276
= ((val
* (*)(val
*))(var273
->class->vft
[COLOR_string__Object__to_s
]))(var273
) /* to_s on <var273:Array[Object]>*/;
1408 abstract_compiler__AbstractCompilerVisitor__add(self
, var276
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <self:SeparateCompilerVisitor>*/
1413 separate_compiler__SeparateCompilerVisitor__hardening_cast_type(self
, var_type_struct
); /* Direct call separate_compiler#SeparateCompilerVisitor#hardening_cast_type on <self:SeparateCompilerVisitor>*/
1416 var278
= varonce277
;
1420 var281
= string__NativeString__to_s_with_length(var279
, var280
);
1422 varonce277
= var278
;
1425 var283
= varonce282
;
1427 var284
= "->color;";
1429 var286
= string__NativeString__to_s_with_length(var284
, var285
);
1431 varonce282
= var283
;
1433 var287
= NEW_array__Array(&type_array__Arraykernel__Object
);
1434 { /* var287 = array_instance Array[Object] */
1436 var289
= NEW_array__NativeArray(var288
, &type_array__NativeArraykernel__Object
);
1437 ((struct instance_array__NativeArray
*)var289
)->values
[0] = (val
*) var_cltype
;
1438 ((struct instance_array__NativeArray
*)var289
)->values
[1] = (val
*) var278
;
1439 ((struct instance_array__NativeArray
*)var289
)->values
[2] = (val
*) var_type_struct
;
1440 ((struct instance_array__NativeArray
*)var289
)->values
[3] = (val
*) var283
;
1442 ((void (*)(val
*, val
*, long))(var287
->class->vft
[COLOR_array__Array__with_native
]))(var287
, var289
, var288
) /* with_native on <var287:Array[Object]>*/;
1446 var290
= ((val
* (*)(val
*))(var287
->class->vft
[COLOR_string__Object__to_s
]))(var287
) /* to_s on <var287:Array[Object]>*/;
1449 abstract_compiler__AbstractCompilerVisitor__add(self
, var290
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <self:SeparateCompilerVisitor>*/
1452 var292
= varonce291
;
1456 var295
= string__NativeString__to_s_with_length(var293
, var294
);
1458 varonce291
= var292
;
1461 var297
= varonce296
;
1465 var300
= string__NativeString__to_s_with_length(var298
, var299
);
1467 varonce296
= var297
;
1469 var301
= NEW_array__Array(&type_array__Arraykernel__Object
);
1470 { /* var301 = array_instance Array[Object] */
1472 var303
= NEW_array__NativeArray(var302
, &type_array__NativeArraykernel__Object
);
1473 ((struct instance_array__NativeArray
*)var303
)->values
[0] = (val
*) var_idtype
;
1474 ((struct instance_array__NativeArray
*)var303
)->values
[1] = (val
*) var292
;
1475 ((struct instance_array__NativeArray
*)var303
)->values
[2] = (val
*) var_type_struct
;
1476 ((struct instance_array__NativeArray
*)var303
)->values
[3] = (val
*) var297
;
1478 ((void (*)(val
*, val
*, long))(var301
->class->vft
[COLOR_array__Array__with_native
]))(var301
, var303
, var302
) /* with_native on <var301:Array[Object]>*/;
1482 var304
= ((val
* (*)(val
*))(var301
->class->vft
[COLOR_string__Object__to_s
]))(var301
) /* to_s on <var301:Array[Object]>*/;
1485 abstract_compiler__AbstractCompilerVisitor__add(self
, var304
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <self:SeparateCompilerVisitor>*/
1487 var_306
= var_maybe_null
;
1488 if (var_maybe_null
){
1490 var308
= varonce307
;
1494 var311
= string__NativeString__to_s_with_length(var309
, var310
);
1496 varonce307
= var308
;
1499 var313
= string__FlatString___61d_61d(var_accept_null
, var308
);
1508 var315
= varonce314
;
1510 var316
= "is_nullable";
1512 var318
= string__NativeString__to_s_with_length(var316
, var317
);
1514 varonce314
= var315
;
1517 var319
= abstract_compiler__AbstractCompilerVisitor__get_name(self
, var315
);
1519 var_is_nullable
= var319
;
1521 var321
= varonce320
;
1523 var322
= "short int ";
1525 var324
= string__NativeString__to_s_with_length(var322
, var323
);
1527 varonce320
= var321
;
1530 var326
= varonce325
;
1534 var329
= string__NativeString__to_s_with_length(var327
, var328
);
1536 varonce325
= var326
;
1538 var330
= NEW_array__Array(&type_array__Arraykernel__Object
);
1539 { /* var330 = array_instance Array[Object] */
1541 var332
= NEW_array__NativeArray(var331
, &type_array__NativeArraykernel__Object
);
1542 ((struct instance_array__NativeArray
*)var332
)->values
[0] = (val
*) var321
;
1543 ((struct instance_array__NativeArray
*)var332
)->values
[1] = (val
*) var_is_nullable
;
1544 ((struct instance_array__NativeArray
*)var332
)->values
[2] = (val
*) var326
;
1546 ((void (*)(val
*, val
*, long))(var330
->class->vft
[COLOR_array__Array__with_native
]))(var330
, var332
, var331
) /* with_native on <var330:Array[Object]>*/;
1550 var333
= ((val
* (*)(val
*))(var330
->class->vft
[COLOR_string__Object__to_s
]))(var330
) /* to_s on <var330:Array[Object]>*/;
1553 abstract_compiler__AbstractCompilerVisitor__add_decl(self
, var333
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <self:SeparateCompilerVisitor>*/
1556 var335
= varonce334
;
1560 var338
= string__NativeString__to_s_with_length(var336
, var337
);
1562 varonce334
= var335
;
1565 var340
= varonce339
;
1567 var341
= "->is_nullable;";
1569 var343
= string__NativeString__to_s_with_length(var341
, var342
);
1571 varonce339
= var340
;
1573 var344
= NEW_array__Array(&type_array__Arraykernel__Object
);
1574 { /* var344 = array_instance Array[Object] */
1576 var346
= NEW_array__NativeArray(var345
, &type_array__NativeArraykernel__Object
);
1577 ((struct instance_array__NativeArray
*)var346
)->values
[0] = (val
*) var_is_nullable
;
1578 ((struct instance_array__NativeArray
*)var346
)->values
[1] = (val
*) var335
;
1579 ((struct instance_array__NativeArray
*)var346
)->values
[2] = (val
*) var_type_struct
;
1580 ((struct instance_array__NativeArray
*)var346
)->values
[3] = (val
*) var340
;
1582 ((void (*)(val
*, val
*, long))(var344
->class->vft
[COLOR_array__Array__with_native
]))(var344
, var346
, var345
) /* with_native on <var344:Array[Object]>*/;
1586 var347
= ((val
* (*)(val
*))(var344
->class->vft
[COLOR_string__Object__to_s
]))(var344
) /* to_s on <var344:Array[Object]>*/;
1589 abstract_compiler__AbstractCompilerVisitor__add(self
, var347
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <self:SeparateCompilerVisitor>*/
1592 var348
= string__String__to_s(var_is_nullable
);
1594 var_accept_null
= var348
;
1598 /* <var_ntype:MType> isa MClassType */
1599 cltype350
= type_model__MClassType
.color
;
1600 idtype351
= type_model__MClassType
.id
;
1601 if(cltype350
>= var_ntype
->type
->table_size
) {
1604 var349
= var_ntype
->type
->type_table
[cltype350
] == idtype351
;
1608 { /* Inline separate_compiler#SeparateCompiler#undead_types (var_compiler) on <var_compiler:SeparateCompiler> */
1609 var354
= var_compiler
->attrs
[COLOR_separate_compiler__SeparateCompiler___undead_types
].val
; /* _undead_types on <var_compiler:SeparateCompiler> */
1610 if (unlikely(var354
== NULL
)) {
1611 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _undead_types");
1612 PRINT_ERROR(" (%s:%d)\n", "compiler/separate_compiler.nit", 156);
1616 RET_LABEL353
:(void)0;
1620 ((void (*)(val
*, val
*))(var352
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var352
, var_mtype
) /* add on <var352:Set[MType]>*/;
1623 var356
= varonce355
;
1627 var359
= string__NativeString__to_s_with_length(var357
, var358
);
1629 varonce355
= var356
;
1632 var360
= ((val
* (*)(val
*))(var_mtype
->class->vft
[COLOR_abstract_compiler__MType__c_name
]))(var_mtype
) /* c_name on <var_mtype:MType>*/;
1634 var361
= NEW_array__Array(&type_array__Arraykernel__Object
);
1635 { /* var361 = array_instance Array[Object] */
1637 var363
= NEW_array__NativeArray(var362
, &type_array__NativeArraykernel__Object
);
1638 ((struct instance_array__NativeArray
*)var363
)->values
[0] = (val
*) var356
;
1639 ((struct instance_array__NativeArray
*)var363
)->values
[1] = (val
*) var360
;
1641 ((void (*)(val
*, val
*, long))(var361
->class->vft
[COLOR_array__Array__with_native
]))(var361
, var363
, var362
) /* with_native on <var361:Array[Object]>*/;
1645 var364
= ((val
* (*)(val
*))(var361
->class->vft
[COLOR_string__Object__to_s
]))(var361
) /* to_s on <var361:Array[Object]>*/;
1648 abstract_compiler__AbstractCompilerVisitor__require_declaration(self
, var364
); /* Direct call abstract_compiler#AbstractCompilerVisitor#require_declaration on <self:SeparateCompilerVisitor>*/
1651 var366
= varonce365
;
1655 var369
= string__NativeString__to_s_with_length(var367
, var368
);
1657 varonce365
= var366
;
1660 var370
= ((val
* (*)(val
*))(var_mtype
->class->vft
[COLOR_abstract_compiler__MType__c_name
]))(var_mtype
) /* c_name on <var_mtype:MType>*/;
1663 var372
= varonce371
;
1667 var375
= string__NativeString__to_s_with_length(var373
, var374
);
1669 varonce371
= var372
;
1671 var376
= NEW_array__Array(&type_array__Arraykernel__Object
);
1672 { /* var376 = array_instance Array[Object] */
1674 var378
= NEW_array__NativeArray(var377
, &type_array__NativeArraykernel__Object
);
1675 ((struct instance_array__NativeArray
*)var378
)->values
[0] = (val
*) var366
;
1676 ((struct instance_array__NativeArray
*)var378
)->values
[1] = (val
*) var370
;
1677 ((struct instance_array__NativeArray
*)var378
)->values
[2] = (val
*) var372
;
1679 ((void (*)(val
*, val
*, long))(var376
->class->vft
[COLOR_array__Array__with_native
]))(var376
, var378
, var377
) /* with_native on <var376:Array[Object]>*/;
1683 var379
= ((val
* (*)(val
*))(var376
->class->vft
[COLOR_string__Object__to_s
]))(var376
) /* to_s on <var376:Array[Object]>*/;
1686 separate_compiler__SeparateCompilerVisitor__hardening_cast_type(self
, var379
); /* Direct call separate_compiler#SeparateCompilerVisitor#hardening_cast_type on <self:SeparateCompilerVisitor>*/
1689 var381
= varonce380
;
1691 var382
= " = type_";
1693 var384
= string__NativeString__to_s_with_length(var382
, var383
);
1695 varonce380
= var381
;
1698 var385
= ((val
* (*)(val
*))(var_mtype
->class->vft
[COLOR_abstract_compiler__MType__c_name
]))(var_mtype
) /* c_name on <var_mtype:MType>*/;
1701 var387
= varonce386
;
1705 var390
= string__NativeString__to_s_with_length(var388
, var389
);
1707 varonce386
= var387
;
1709 var391
= NEW_array__Array(&type_array__Arraykernel__Object
);
1710 { /* var391 = array_instance Array[Object] */
1712 var393
= NEW_array__NativeArray(var392
, &type_array__NativeArraykernel__Object
);
1713 ((struct instance_array__NativeArray
*)var393
)->values
[0] = (val
*) var_cltype
;
1714 ((struct instance_array__NativeArray
*)var393
)->values
[1] = (val
*) var381
;
1715 ((struct instance_array__NativeArray
*)var393
)->values
[2] = (val
*) var385
;
1716 ((struct instance_array__NativeArray
*)var393
)->values
[3] = (val
*) var387
;
1718 ((void (*)(val
*, val
*, long))(var391
->class->vft
[COLOR_array__Array__with_native
]))(var391
, var393
, var392
) /* with_native on <var391:Array[Object]>*/;
1722 var394
= ((val
* (*)(val
*))(var391
->class->vft
[COLOR_string__Object__to_s
]))(var391
) /* to_s on <var391:Array[Object]>*/;
1725 abstract_compiler__AbstractCompilerVisitor__add(self
, var394
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <self:SeparateCompilerVisitor>*/
1728 var396
= varonce395
;
1730 var397
= " = type_";
1732 var399
= string__NativeString__to_s_with_length(var397
, var398
);
1734 varonce395
= var396
;
1737 var400
= ((val
* (*)(val
*))(var_mtype
->class->vft
[COLOR_abstract_compiler__MType__c_name
]))(var_mtype
) /* c_name on <var_mtype:MType>*/;
1740 var402
= varonce401
;
1744 var405
= string__NativeString__to_s_with_length(var403
, var404
);
1746 varonce401
= var402
;
1748 var406
= NEW_array__Array(&type_array__Arraykernel__Object
);
1749 { /* var406 = array_instance Array[Object] */
1751 var408
= NEW_array__NativeArray(var407
, &type_array__NativeArraykernel__Object
);
1752 ((struct instance_array__NativeArray
*)var408
)->values
[0] = (val
*) var_idtype
;
1753 ((struct instance_array__NativeArray
*)var408
)->values
[1] = (val
*) var396
;
1754 ((struct instance_array__NativeArray
*)var408
)->values
[2] = (val
*) var400
;
1755 ((struct instance_array__NativeArray
*)var408
)->values
[3] = (val
*) var402
;
1757 ((void (*)(val
*, val
*, long))(var406
->class->vft
[COLOR_array__Array__with_native
]))(var406
, var408
, var407
) /* with_native on <var406:Array[Object]>*/;
1761 var409
= ((val
* (*)(val
*))(var406
->class->vft
[COLOR_string__Object__to_s
]))(var406
) /* to_s on <var406:Array[Object]>*/;
1764 abstract_compiler__AbstractCompilerVisitor__add(self
, var409
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <self:SeparateCompilerVisitor>*/
1767 { /* Inline abstract_compiler#AbstractCompiler#modelbuilder (var_compiler) on <var_compiler:SeparateCompiler> */
1768 var412
= var_compiler
->attrs
[COLOR_abstract_compiler__AbstractCompiler___modelbuilder
].val
; /* _modelbuilder on <var_compiler:SeparateCompiler> */
1769 if (unlikely(var412
== NULL
)) {
1770 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
1771 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 470);
1775 RET_LABEL411
:(void)0;
1779 { /* Inline modelbuilder#ModelBuilder#toolcontext (var410) on <var410:ModelBuilder> */
1780 var415
= var410
->attrs
[COLOR_modelbuilder__ModelBuilder___toolcontext
].val
; /* _toolcontext on <var410:ModelBuilder> */
1781 if (unlikely(var415
== NULL
)) {
1782 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
1783 PRINT_ERROR(" (%s:%d)\n", "modelbuilder.nit", 106);
1787 RET_LABEL414
:(void)0;
1791 { /* Inline abstract_compiler#ToolContext#opt_typing_test_metrics (var413) on <var413:ToolContext> */
1792 var418
= var413
->attrs
[COLOR_abstract_compiler__ToolContext___opt_typing_test_metrics
].val
; /* _opt_typing_test_metrics on <var413:ToolContext> */
1793 if (unlikely(var418
== NULL
)) {
1794 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_typing_test_metrics");
1795 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 61);
1799 RET_LABEL417
:(void)0;
1803 { /* Inline opts#Option#value (var416) on <var416:OptionBool> */
1804 var421
= var416
->attrs
[COLOR_opts__Option___value
].val
; /* _value on <var416:OptionBool> */
1806 RET_LABEL420
:(void)0;
1809 var422
= ((struct instance_kernel__Bool
*)var419
)->value
; /* autounbox from nullable Object to Bool */;
1812 { /* Inline abstract_compiler#AbstractCompilerVisitor#compiler (self) on <self:SeparateCompilerVisitor> */
1813 var425
= self
->attrs
[COLOR_abstract_compiler__AbstractCompilerVisitor___compiler
].val
; /* _compiler on <self:SeparateCompilerVisitor> */
1814 if (unlikely(var425
== NULL
)) {
1815 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _compiler");
1816 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 1041);
1820 RET_LABEL424
:(void)0;
1824 { /* Inline abstract_compiler#AbstractCompiler#count_type_test_resolved (var423) on <var423:AbstractCompiler(SeparateCompiler)> */
1825 var428
= var423
->attrs
[COLOR_abstract_compiler__AbstractCompiler___count_type_test_resolved
].val
; /* _count_type_test_resolved on <var423:AbstractCompiler(SeparateCompiler)> */
1826 if (unlikely(var428
== NULL
)) {
1827 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _count_type_test_resolved");
1828 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 945);
1832 RET_LABEL427
:(void)0;
1838 var431
= hash_collection__HashMap___91d_93d(var_429
, var_430
);
1842 { /* Inline kernel#Int#+ (var431,var432) on <var431:nullable Object(Int)> */
1843 /* Covariant cast for argument 0 (i) <var432:Int> isa OTHER */
1844 /* <var432:Int> isa OTHER */
1845 var435
= 1; /* easy <var432:Int> isa OTHER*/
1846 if (unlikely(!var435
)) {
1847 var_class_name438
= type_kernel__Int
.name
;
1848 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name438
);
1849 PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 374);
1852 var439
= ((struct instance_kernel__Int
*)var431
)->value
; /* autounbox from nullable Object to Int */;
1853 var440
= var439
+ var432
;
1856 RET_LABEL434
:(void)0;
1860 var441
= BOX_kernel__Int(var433
); /* autobox from Int to nullable Object */
1861 hash_collection__HashMap___91d_93d_61d(var_429
, var_430
, var441
); /* Direct call hash_collection#HashMap#[]= on <var_429:HashMap[String, Int]>*/
1864 var443
= varonce442
;
1866 var444
= "count_type_test_resolved_";
1868 var446
= string__NativeString__to_s_with_length(var444
, var445
);
1870 varonce442
= var443
;
1873 var448
= varonce447
;
1877 var451
= string__NativeString__to_s_with_length(var449
, var450
);
1879 varonce447
= var448
;
1881 var452
= NEW_array__Array(&type_array__Arraykernel__Object
);
1882 { /* var452 = array_instance Array[Object] */
1884 var454
= NEW_array__NativeArray(var453
, &type_array__NativeArraykernel__Object
);
1885 ((struct instance_array__NativeArray
*)var454
)->values
[0] = (val
*) var443
;
1886 ((struct instance_array__NativeArray
*)var454
)->values
[1] = (val
*) var_tag
;
1887 ((struct instance_array__NativeArray
*)var454
)->values
[2] = (val
*) var448
;
1889 ((void (*)(val
*, val
*, long))(var452
->class->vft
[COLOR_array__Array__with_native
]))(var452
, var454
, var453
) /* with_native on <var452:Array[Object]>*/;
1893 var455
= ((val
* (*)(val
*))(var452
->class->vft
[COLOR_string__Object__to_s
]))(var452
) /* to_s on <var452:Array[Object]>*/;
1896 abstract_compiler__AbstractCompilerVisitor__add(self
, var455
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <self:SeparateCompilerVisitor>*/
1902 var457
= varonce456
;
1904 var458
= "PRINT_ERROR(\"NOT YET IMPLEMENTED: type_test(%s, ";
1906 var460
= string__NativeString__to_s_with_length(var458
, var459
);
1908 varonce456
= var457
;
1911 var462
= varonce461
;
1913 var463
= ").\\n\", \"";
1915 var465
= string__NativeString__to_s_with_length(var463
, var464
);
1917 varonce461
= var462
;
1920 var466
= abstract_compiler__RuntimeVariable__inspect(var_value
);
1923 var468
= varonce467
;
1925 var469
= "\"); show_backtrace(1);";
1927 var471
= string__NativeString__to_s_with_length(var469
, var470
);
1929 varonce467
= var468
;
1931 var472
= NEW_array__Array(&type_array__Arraykernel__Object
);
1932 { /* var472 = array_instance Array[Object] */
1934 var474
= NEW_array__NativeArray(var473
, &type_array__NativeArraykernel__Object
);
1935 ((struct instance_array__NativeArray
*)var474
)->values
[0] = (val
*) var457
;
1936 ((struct instance_array__NativeArray
*)var474
)->values
[1] = (val
*) var_mtype
;
1937 ((struct instance_array__NativeArray
*)var474
)->values
[2] = (val
*) var462
;
1938 ((struct instance_array__NativeArray
*)var474
)->values
[3] = (val
*) var466
;
1939 ((struct instance_array__NativeArray
*)var474
)->values
[4] = (val
*) var468
;
1941 ((void (*)(val
*, val
*, long))(var472
->class->vft
[COLOR_array__Array__with_native
]))(var472
, var474
, var473
) /* with_native on <var472:Array[Object]>*/;
1945 var475
= ((val
* (*)(val
*))(var472
->class->vft
[COLOR_string__Object__to_s
]))(var472
) /* to_s on <var472:Array[Object]>*/;
1948 abstract_compiler__AbstractCompilerVisitor__add(self
, var475
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <self:SeparateCompilerVisitor>*/
1952 if (var_maybe_null
){
1954 var477
= varonce476
;
1958 var480
= string__NativeString__to_s_with_length(var478
, var479
);
1960 varonce476
= var477
;
1963 var482
= varonce481
;
1965 var483
= " == NULL) {";
1967 var485
= string__NativeString__to_s_with_length(var483
, var484
);
1969 varonce481
= var482
;
1971 var486
= NEW_array__Array(&type_array__Arraykernel__Object
);
1972 { /* var486 = array_instance Array[Object] */
1974 var488
= NEW_array__NativeArray(var487
, &type_array__NativeArraykernel__Object
);
1975 ((struct instance_array__NativeArray
*)var488
)->values
[0] = (val
*) var477
;
1976 ((struct instance_array__NativeArray
*)var488
)->values
[1] = (val
*) var_value
;
1977 ((struct instance_array__NativeArray
*)var488
)->values
[2] = (val
*) var482
;
1979 ((void (*)(val
*, val
*, long))(var486
->class->vft
[COLOR_array__Array__with_native
]))(var486
, var488
, var487
) /* with_native on <var486:Array[Object]>*/;
1983 var489
= ((val
* (*)(val
*))(var486
->class->vft
[COLOR_string__Object__to_s
]))(var486
) /* to_s on <var486:Array[Object]>*/;
1986 abstract_compiler__AbstractCompilerVisitor__add(self
, var489
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <self:SeparateCompilerVisitor>*/
1989 var491
= varonce490
;
1993 var494
= string__NativeString__to_s_with_length(var492
, var493
);
1995 varonce490
= var491
;
1998 var496
= varonce495
;
2002 var499
= string__NativeString__to_s_with_length(var497
, var498
);
2004 varonce495
= var496
;
2006 var500
= NEW_array__Array(&type_array__Arraykernel__Object
);
2007 { /* var500 = array_instance Array[Object] */
2009 var502
= NEW_array__NativeArray(var501
, &type_array__NativeArraykernel__Object
);
2010 ((struct instance_array__NativeArray
*)var502
)->values
[0] = (val
*) var_res
;
2011 ((struct instance_array__NativeArray
*)var502
)->values
[1] = (val
*) var491
;
2012 ((struct instance_array__NativeArray
*)var502
)->values
[2] = (val
*) var_accept_null
;
2013 ((struct instance_array__NativeArray
*)var502
)->values
[3] = (val
*) var496
;
2015 ((void (*)(val
*, val
*, long))(var500
->class->vft
[COLOR_array__Array__with_native
]))(var500
, var502
, var501
) /* with_native on <var500:Array[Object]>*/;
2019 var503
= ((val
* (*)(val
*))(var500
->class->vft
[COLOR_string__Object__to_s
]))(var500
) /* to_s on <var500:Array[Object]>*/;
2022 abstract_compiler__AbstractCompilerVisitor__add(self
, var503
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <self:SeparateCompilerVisitor>*/
2025 var505
= varonce504
;
2027 var506
= "} else {";
2029 var508
= string__NativeString__to_s_with_length(var506
, var507
);
2031 varonce504
= var505
;
2034 abstract_compiler__AbstractCompilerVisitor__add(self
, var505
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <self:SeparateCompilerVisitor>*/
2039 var509
= separate_compiler__SeparateCompilerVisitor__type_info(self
, var_value
);
2041 var_value_type_info
= var509
;
2043 var511
= varonce510
;
2047 var514
= string__NativeString__to_s_with_length(var512
, var513
);
2049 varonce510
= var511
;
2052 var516
= varonce515
;
2056 var519
= string__NativeString__to_s_with_length(var517
, var518
);
2058 varonce515
= var516
;
2061 var521
= varonce520
;
2063 var522
= "->table_size) {";
2065 var524
= string__NativeString__to_s_with_length(var522
, var523
);
2067 varonce520
= var521
;
2069 var525
= NEW_array__Array(&type_array__Arraykernel__Object
);
2070 { /* var525 = array_instance Array[Object] */
2072 var527
= NEW_array__NativeArray(var526
, &type_array__NativeArraykernel__Object
);
2073 ((struct instance_array__NativeArray
*)var527
)->values
[0] = (val
*) var511
;
2074 ((struct instance_array__NativeArray
*)var527
)->values
[1] = (val
*) var_cltype
;
2075 ((struct instance_array__NativeArray
*)var527
)->values
[2] = (val
*) var516
;
2076 ((struct instance_array__NativeArray
*)var527
)->values
[3] = (val
*) var_value_type_info
;
2077 ((struct instance_array__NativeArray
*)var527
)->values
[4] = (val
*) var521
;
2079 ((void (*)(val
*, val
*, long))(var525
->class->vft
[COLOR_array__Array__with_native
]))(var525
, var527
, var526
) /* with_native on <var525:Array[Object]>*/;
2083 var528
= ((val
* (*)(val
*))(var525
->class->vft
[COLOR_string__Object__to_s
]))(var525
) /* to_s on <var525:Array[Object]>*/;
2086 abstract_compiler__AbstractCompilerVisitor__add(self
, var528
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <self:SeparateCompilerVisitor>*/
2089 var530
= varonce529
;
2093 var533
= string__NativeString__to_s_with_length(var531
, var532
);
2095 varonce529
= var530
;
2097 var534
= NEW_array__Array(&type_array__Arraykernel__Object
);
2098 { /* var534 = array_instance Array[Object] */
2100 var536
= NEW_array__NativeArray(var535
, &type_array__NativeArraykernel__Object
);
2101 ((struct instance_array__NativeArray
*)var536
)->values
[0] = (val
*) var_res
;
2102 ((struct instance_array__NativeArray
*)var536
)->values
[1] = (val
*) var530
;
2104 ((void (*)(val
*, val
*, long))(var534
->class->vft
[COLOR_array__Array__with_native
]))(var534
, var536
, var535
) /* with_native on <var534:Array[Object]>*/;
2108 var537
= ((val
* (*)(val
*))(var534
->class->vft
[COLOR_string__Object__to_s
]))(var534
) /* to_s on <var534:Array[Object]>*/;
2111 abstract_compiler__AbstractCompilerVisitor__add(self
, var537
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <self:SeparateCompilerVisitor>*/
2114 var539
= varonce538
;
2116 var540
= "} else {";
2118 var542
= string__NativeString__to_s_with_length(var540
, var541
);
2120 varonce538
= var539
;
2123 abstract_compiler__AbstractCompilerVisitor__add(self
, var539
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <self:SeparateCompilerVisitor>*/
2126 var544
= varonce543
;
2130 var547
= string__NativeString__to_s_with_length(var545
, var546
);
2132 varonce543
= var544
;
2135 var549
= varonce548
;
2137 var550
= "->type_table[";
2139 var552
= string__NativeString__to_s_with_length(var550
, var551
);
2141 varonce548
= var549
;
2144 var554
= varonce553
;
2148 var557
= string__NativeString__to_s_with_length(var555
, var556
);
2150 varonce553
= var554
;
2153 var559
= varonce558
;
2157 var562
= string__NativeString__to_s_with_length(var560
, var561
);
2159 varonce558
= var559
;
2161 var563
= NEW_array__Array(&type_array__Arraykernel__Object
);
2162 { /* var563 = array_instance Array[Object] */
2164 var565
= NEW_array__NativeArray(var564
, &type_array__NativeArraykernel__Object
);
2165 ((struct instance_array__NativeArray
*)var565
)->values
[0] = (val
*) var_res
;
2166 ((struct instance_array__NativeArray
*)var565
)->values
[1] = (val
*) var544
;
2167 ((struct instance_array__NativeArray
*)var565
)->values
[2] = (val
*) var_value_type_info
;
2168 ((struct instance_array__NativeArray
*)var565
)->values
[3] = (val
*) var549
;
2169 ((struct instance_array__NativeArray
*)var565
)->values
[4] = (val
*) var_cltype
;
2170 ((struct instance_array__NativeArray
*)var565
)->values
[5] = (val
*) var554
;
2171 ((struct instance_array__NativeArray
*)var565
)->values
[6] = (val
*) var_idtype
;
2172 ((struct instance_array__NativeArray
*)var565
)->values
[7] = (val
*) var559
;
2174 ((void (*)(val
*, val
*, long))(var563
->class->vft
[COLOR_array__Array__with_native
]))(var563
, var565
, var564
) /* with_native on <var563:Array[Object]>*/;
2178 var566
= ((val
* (*)(val
*))(var563
->class->vft
[COLOR_string__Object__to_s
]))(var563
) /* to_s on <var563:Array[Object]>*/;
2181 abstract_compiler__AbstractCompilerVisitor__add(self
, var566
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <self:SeparateCompilerVisitor>*/
2184 var568
= varonce567
;
2188 var571
= string__NativeString__to_s_with_length(var569
, var570
);
2190 varonce567
= var568
;
2193 abstract_compiler__AbstractCompilerVisitor__add(self
, var568
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <self:SeparateCompilerVisitor>*/
2195 if (var_maybe_null
){
2197 var573
= varonce572
;
2201 var576
= string__NativeString__to_s_with_length(var574
, var575
);
2203 varonce572
= var573
;
2206 abstract_compiler__AbstractCompilerVisitor__add(self
, var573
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <self:SeparateCompilerVisitor>*/
2215 /* method separate_compiler#SeparateCompilerVisitor#type_test for (self: Object, RuntimeVariable, MType, String): RuntimeVariable */
2216 val
* VIRTUAL_separate_compiler__SeparateCompilerVisitor__type_test(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
2217 val
* var
/* : RuntimeVariable */;
2218 val
* var1
/* : RuntimeVariable */;
2219 var1
= separate_compiler__SeparateCompilerVisitor__type_test(self
, p0
, p1
, p2
);
2224 /* method separate_compiler#SeparateCompilerVisitor#is_same_type_test for (self: SeparateCompilerVisitor, RuntimeVariable, RuntimeVariable): RuntimeVariable */
2225 val
* separate_compiler__SeparateCompilerVisitor__is_same_type_test(val
* self
, val
* p0
, val
* p1
) {
2226 val
* var
/* : RuntimeVariable */;
2227 val
* var_value1
/* var value1: RuntimeVariable */;
2228 val
* var_value2
/* var value2: RuntimeVariable */;
2229 val
* var1
/* : MClassType */;
2230 val
* var2
/* : RuntimeVariable */;
2231 val
* var_res
/* var res: RuntimeVariable */;
2232 short int var3
/* : Bool */;
2233 val
* var4
/* : MType */;
2234 val
* var6
/* : MType */;
2235 val
* var7
/* : String */;
2236 static val
* varonce
;
2237 val
* var8
/* : String */;
2238 char* var9
/* : NativeString */;
2239 long var10
/* : Int */;
2240 val
* var11
/* : FlatString */;
2241 short int var12
/* : Bool */;
2242 short int var13
/* : Bool */;
2243 val
* var_other
/* var other: nullable Object */;
2244 short int var15
/* : Bool */;
2245 short int var16
/* : Bool */;
2246 short int var17
/* : Bool */;
2247 short int var_
/* var : Bool */;
2248 val
* var18
/* : MType */;
2249 val
* var20
/* : MType */;
2250 val
* var21
/* : String */;
2251 static val
* varonce22
;
2252 val
* var23
/* : String */;
2253 char* var24
/* : NativeString */;
2254 long var25
/* : Int */;
2255 val
* var26
/* : FlatString */;
2256 short int var27
/* : Bool */;
2257 short int var28
/* : Bool */;
2258 val
* var_tmp
/* var tmp: RuntimeVariable */;
2259 val
* var29
/* : MType */;
2260 val
* var31
/* : MType */;
2261 val
* var32
/* : String */;
2262 static val
* varonce33
;
2263 val
* var34
/* : String */;
2264 char* var35
/* : NativeString */;
2265 long var36
/* : Int */;
2266 val
* var37
/* : FlatString */;
2267 short int var38
/* : Bool */;
2268 short int var39
/* : Bool */;
2269 short int var41
/* : Bool */;
2270 short int var42
/* : Bool */;
2271 short int var43
/* : Bool */;
2272 val
* var44
/* : MType */;
2273 val
* var46
/* : MType */;
2274 val
* var47
/* : MType */;
2275 val
* var49
/* : MType */;
2276 short int var50
/* : Bool */;
2277 short int var51
/* : Bool */;
2278 val
* var_other53
/* var other: nullable Object */;
2279 short int var54
/* : Bool */;
2280 short int var56
/* : Bool */;
2281 static val
* varonce57
;
2282 val
* var58
/* : String */;
2283 char* var59
/* : NativeString */;
2284 long var60
/* : Int */;
2285 val
* var61
/* : FlatString */;
2286 val
* var62
/* : MType */;
2287 val
* var64
/* : MType */;
2288 static val
* varonce65
;
2289 val
* var66
/* : String */;
2290 char* var67
/* : NativeString */;
2291 long var68
/* : Int */;
2292 val
* var69
/* : FlatString */;
2293 val
* var70
/* : MType */;
2294 val
* var72
/* : MType */;
2295 static val
* varonce73
;
2296 val
* var74
/* : String */;
2297 char* var75
/* : NativeString */;
2298 long var76
/* : Int */;
2299 val
* var77
/* : FlatString */;
2300 val
* var78
/* : Array[Object] */;
2301 long var79
/* : Int */;
2302 val
* var80
/* : NativeArray[Object] */;
2303 val
* var81
/* : String */;
2304 val
* var82
/* : MType */;
2305 val
* var84
/* : MType */;
2306 val
* var85
/* : String */;
2307 static val
* varonce86
;
2308 val
* var87
/* : String */;
2309 char* var88
/* : NativeString */;
2310 long var89
/* : Int */;
2311 val
* var90
/* : FlatString */;
2312 short int var91
/* : Bool */;
2313 short int var92
/* : Bool */;
2314 short int var94
/* : Bool */;
2315 short int var95
/* : Bool */;
2316 short int var96
/* : Bool */;
2317 static val
* varonce97
;
2318 val
* var98
/* : String */;
2319 char* var99
/* : NativeString */;
2320 long var100
/* : Int */;
2321 val
* var101
/* : FlatString */;
2322 val
* var102
/* : MType */;
2323 val
* var104
/* : MType */;
2324 static val
* varonce105
;
2325 val
* var106
/* : String */;
2326 char* var107
/* : NativeString */;
2327 long var108
/* : Int */;
2328 val
* var109
/* : FlatString */;
2329 val
* var110
/* : MType */;
2330 val
* var112
/* : MType */;
2331 static val
* varonce113
;
2332 val
* var114
/* : String */;
2333 char* var115
/* : NativeString */;
2334 long var116
/* : Int */;
2335 val
* var117
/* : FlatString */;
2336 val
* var118
/* : Array[Object] */;
2337 long var119
/* : Int */;
2338 val
* var120
/* : NativeArray[Object] */;
2339 val
* var121
/* : String */;
2340 val
* var122
/* : MType */;
2341 val
* var124
/* : MType */;
2342 short int var125
/* : Bool */;
2345 const char* var_class_name
;
2346 val
* var_mtype1
/* var mtype1: MClassType */;
2347 static val
* varonce126
;
2348 val
* var127
/* : String */;
2349 char* var128
/* : NativeString */;
2350 long var129
/* : Int */;
2351 val
* var130
/* : FlatString */;
2352 val
* var131
/* : String */;
2353 val
* var132
/* : Array[Object] */;
2354 long var133
/* : Int */;
2355 val
* var134
/* : NativeArray[Object] */;
2356 val
* var135
/* : String */;
2357 static val
* varonce136
;
2358 val
* var137
/* : String */;
2359 char* var138
/* : NativeString */;
2360 long var139
/* : Int */;
2361 val
* var140
/* : FlatString */;
2362 static val
* varonce141
;
2363 val
* var142
/* : String */;
2364 char* var143
/* : NativeString */;
2365 long var144
/* : Int */;
2366 val
* var145
/* : FlatString */;
2367 static val
* varonce146
;
2368 val
* var147
/* : String */;
2369 char* var148
/* : NativeString */;
2370 long var149
/* : Int */;
2371 val
* var150
/* : FlatString */;
2372 val
* var151
/* : String */;
2373 static val
* varonce152
;
2374 val
* var153
/* : String */;
2375 char* var154
/* : NativeString */;
2376 long var155
/* : Int */;
2377 val
* var156
/* : FlatString */;
2378 val
* var157
/* : Array[Object] */;
2379 long var158
/* : Int */;
2380 val
* var159
/* : NativeArray[Object] */;
2381 val
* var160
/* : String */;
2382 static val
* varonce161
;
2383 val
* var162
/* : String */;
2384 char* var163
/* : NativeString */;
2385 long var164
/* : Int */;
2386 val
* var165
/* : FlatString */;
2387 static val
* varonce166
;
2388 val
* var167
/* : String */;
2389 char* var168
/* : NativeString */;
2390 long var169
/* : Int */;
2391 val
* var170
/* : FlatString */;
2392 static val
* varonce171
;
2393 val
* var172
/* : String */;
2394 char* var173
/* : NativeString */;
2395 long var174
/* : Int */;
2396 val
* var175
/* : FlatString */;
2397 static val
* varonce176
;
2398 val
* var177
/* : String */;
2399 char* var178
/* : NativeString */;
2400 long var179
/* : Int */;
2401 val
* var180
/* : FlatString */;
2402 static val
* varonce181
;
2403 val
* var182
/* : String */;
2404 char* var183
/* : NativeString */;
2405 long var184
/* : Int */;
2406 val
* var185
/* : FlatString */;
2407 static val
* varonce186
;
2408 val
* var187
/* : String */;
2409 char* var188
/* : NativeString */;
2410 long var189
/* : Int */;
2411 val
* var190
/* : FlatString */;
2412 static val
* varonce191
;
2413 val
* var192
/* : String */;
2414 char* var193
/* : NativeString */;
2415 long var194
/* : Int */;
2416 val
* var195
/* : FlatString */;
2417 val
* var196
/* : Array[Object] */;
2418 long var197
/* : Int */;
2419 val
* var198
/* : NativeArray[Object] */;
2420 val
* var199
/* : String */;
2424 var1
= abstract_compiler__AbstractCompilerVisitor__bool_type(self
);
2427 var2
= abstract_compiler__AbstractCompilerVisitor__new_var(self
, var1
);
2431 { /* Inline abstract_compiler#RuntimeVariable#mtype (var_value2) on <var_value2:RuntimeVariable> */
2432 var6
= var_value2
->attrs
[COLOR_abstract_compiler__RuntimeVariable___mtype
].val
; /* _mtype on <var_value2:RuntimeVariable> */
2433 if (unlikely(var6
== NULL
)) {
2434 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
2435 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 1634);
2443 var7
= ((val
* (*)(val
*))(var4
->class->vft
[COLOR_abstract_compiler__MType__ctype
]))(var4
) /* ctype on <var4:MType>*/;
2450 var11
= string__NativeString__to_s_with_length(var9
, var10
);
2455 { /* Inline kernel#Object#!= (var7,var8) on <var7:String> */
2458 var16
= ((short int (*)(val
*, val
*))(var7
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var7
, var_other
) /* == on <var7:String>*/;
2464 RET_LABEL14
:(void)0;
2471 { /* Inline abstract_compiler#RuntimeVariable#mtype (var_value1) on <var_value1:RuntimeVariable> */
2472 var20
= var_value1
->attrs
[COLOR_abstract_compiler__RuntimeVariable___mtype
].val
; /* _mtype on <var_value1:RuntimeVariable> */
2473 if (unlikely(var20
== NULL
)) {
2474 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
2475 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 1634);
2479 RET_LABEL19
:(void)0;
2483 var21
= ((val
* (*)(val
*))(var18
->class->vft
[COLOR_abstract_compiler__MType__ctype
]))(var18
) /* ctype on <var18:MType>*/;
2490 var26
= string__NativeString__to_s_with_length(var24
, var25
);
2495 var28
= string__FlatString___61d_61d(var21
, var23
);
2503 var_tmp
= var_value1
;
2504 var_value1
= var_value2
;
2505 var_value2
= var_tmp
;
2509 { /* Inline abstract_compiler#RuntimeVariable#mtype (var_value1) on <var_value1:RuntimeVariable> */
2510 var31
= var_value1
->attrs
[COLOR_abstract_compiler__RuntimeVariable___mtype
].val
; /* _mtype on <var_value1:RuntimeVariable> */
2511 if (unlikely(var31
== NULL
)) {
2512 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
2513 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 1634);
2517 RET_LABEL30
:(void)0;
2521 var32
= ((val
* (*)(val
*))(var29
->class->vft
[COLOR_abstract_compiler__MType__ctype
]))(var29
) /* ctype on <var29:MType>*/;
2528 var37
= string__NativeString__to_s_with_length(var35
, var36
);
2533 { /* Inline kernel#Object#!= (var32,var34) on <var32:String> */
2536 var42
= ((short int (*)(val
*, val
*))(var32
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var32
, var_other
) /* == on <var32:String>*/;
2542 RET_LABEL40
:(void)0;
2548 { /* Inline abstract_compiler#RuntimeVariable#mtype (var_value2) on <var_value2:RuntimeVariable> */
2549 var46
= var_value2
->attrs
[COLOR_abstract_compiler__RuntimeVariable___mtype
].val
; /* _mtype on <var_value2:RuntimeVariable> */
2550 if (unlikely(var46
== NULL
)) {
2551 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
2552 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 1634);
2556 RET_LABEL45
:(void)0;
2560 { /* Inline abstract_compiler#RuntimeVariable#mtype (var_value1) on <var_value1:RuntimeVariable> */
2561 var49
= var_value1
->attrs
[COLOR_abstract_compiler__RuntimeVariable___mtype
].val
; /* _mtype on <var_value1:RuntimeVariable> */
2562 if (unlikely(var49
== NULL
)) {
2563 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
2564 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 1634);
2568 RET_LABEL48
:(void)0;
2572 { /* Inline kernel#Object#== (var44,var47) on <var44:MType> */
2573 var_other53
= var47
;
2575 { /* Inline kernel#Object#is_same_instance (var44,var_other53) on <var44:MType> */
2576 var56
= var44
== var_other53
;
2579 RET_LABEL55
:(void)0;
2584 RET_LABEL52
:(void)0;
2592 var59
= " = 1; /* is_same_type_test: compatible types ";
2594 var61
= string__NativeString__to_s_with_length(var59
, var60
);
2599 { /* Inline abstract_compiler#RuntimeVariable#mtype (var_value1) on <var_value1:RuntimeVariable> */
2600 var64
= var_value1
->attrs
[COLOR_abstract_compiler__RuntimeVariable___mtype
].val
; /* _mtype on <var_value1:RuntimeVariable> */
2601 if (unlikely(var64
== NULL
)) {
2602 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
2603 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 1634);
2607 RET_LABEL63
:(void)0;
2615 var69
= string__NativeString__to_s_with_length(var67
, var68
);
2620 { /* Inline abstract_compiler#RuntimeVariable#mtype (var_value2) on <var_value2:RuntimeVariable> */
2621 var72
= var_value2
->attrs
[COLOR_abstract_compiler__RuntimeVariable___mtype
].val
; /* _mtype on <var_value2:RuntimeVariable> */
2622 if (unlikely(var72
== NULL
)) {
2623 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
2624 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 1634);
2628 RET_LABEL71
:(void)0;
2636 var77
= string__NativeString__to_s_with_length(var75
, var76
);
2640 var78
= NEW_array__Array(&type_array__Arraykernel__Object
);
2641 { /* var78 = array_instance Array[Object] */
2643 var80
= NEW_array__NativeArray(var79
, &type_array__NativeArraykernel__Object
);
2644 ((struct instance_array__NativeArray
*)var80
)->values
[0] = (val
*) var_res
;
2645 ((struct instance_array__NativeArray
*)var80
)->values
[1] = (val
*) var58
;
2646 ((struct instance_array__NativeArray
*)var80
)->values
[2] = (val
*) var62
;
2647 ((struct instance_array__NativeArray
*)var80
)->values
[3] = (val
*) var66
;
2648 ((struct instance_array__NativeArray
*)var80
)->values
[4] = (val
*) var70
;
2649 ((struct instance_array__NativeArray
*)var80
)->values
[5] = (val
*) var74
;
2651 ((void (*)(val
*, val
*, long))(var78
->class->vft
[COLOR_array__Array__with_native
]))(var78
, var80
, var79
) /* with_native on <var78:Array[Object]>*/;
2655 var81
= ((val
* (*)(val
*))(var78
->class->vft
[COLOR_string__Object__to_s
]))(var78
) /* to_s on <var78:Array[Object]>*/;
2658 abstract_compiler__AbstractCompilerVisitor__add(self
, var81
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <self:SeparateCompilerVisitor>*/
2662 { /* Inline abstract_compiler#RuntimeVariable#mtype (var_value2) on <var_value2:RuntimeVariable> */
2663 var84
= var_value2
->attrs
[COLOR_abstract_compiler__RuntimeVariable___mtype
].val
; /* _mtype on <var_value2:RuntimeVariable> */
2664 if (unlikely(var84
== NULL
)) {
2665 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
2666 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 1634);
2670 RET_LABEL83
:(void)0;
2674 var85
= ((val
* (*)(val
*))(var82
->class->vft
[COLOR_abstract_compiler__MType__ctype
]))(var82
) /* ctype on <var82:MType>*/;
2681 var90
= string__NativeString__to_s_with_length(var88
, var89
);
2686 { /* Inline kernel#Object#!= (var85,var87) on <var85:String> */
2689 var95
= ((short int (*)(val
*, val
*))(var85
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var85
, var_other
) /* == on <var85:String>*/;
2695 RET_LABEL93
:(void)0;
2703 var99
= " = 0; /* is_same_type_test: incompatible types ";
2705 var101
= string__NativeString__to_s_with_length(var99
, var100
);
2710 { /* Inline abstract_compiler#RuntimeVariable#mtype (var_value1) on <var_value1:RuntimeVariable> */
2711 var104
= var_value1
->attrs
[COLOR_abstract_compiler__RuntimeVariable___mtype
].val
; /* _mtype on <var_value1:RuntimeVariable> */
2712 if (unlikely(var104
== NULL
)) {
2713 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
2714 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 1634);
2718 RET_LABEL103
:(void)0;
2722 var106
= varonce105
;
2726 var109
= string__NativeString__to_s_with_length(var107
, var108
);
2728 varonce105
= var106
;
2731 { /* Inline abstract_compiler#RuntimeVariable#mtype (var_value2) on <var_value2:RuntimeVariable> */
2732 var112
= var_value2
->attrs
[COLOR_abstract_compiler__RuntimeVariable___mtype
].val
; /* _mtype on <var_value2:RuntimeVariable> */
2733 if (unlikely(var112
== NULL
)) {
2734 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
2735 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 1634);
2739 RET_LABEL111
:(void)0;
2743 var114
= varonce113
;
2747 var117
= string__NativeString__to_s_with_length(var115
, var116
);
2749 varonce113
= var114
;
2751 var118
= NEW_array__Array(&type_array__Arraykernel__Object
);
2752 { /* var118 = array_instance Array[Object] */
2754 var120
= NEW_array__NativeArray(var119
, &type_array__NativeArraykernel__Object
);
2755 ((struct instance_array__NativeArray
*)var120
)->values
[0] = (val
*) var_res
;
2756 ((struct instance_array__NativeArray
*)var120
)->values
[1] = (val
*) var98
;
2757 ((struct instance_array__NativeArray
*)var120
)->values
[2] = (val
*) var102
;
2758 ((struct instance_array__NativeArray
*)var120
)->values
[3] = (val
*) var106
;
2759 ((struct instance_array__NativeArray
*)var120
)->values
[4] = (val
*) var110
;
2760 ((struct instance_array__NativeArray
*)var120
)->values
[5] = (val
*) var114
;
2762 ((void (*)(val
*, val
*, long))(var118
->class->vft
[COLOR_array__Array__with_native
]))(var118
, var120
, var119
) /* with_native on <var118:Array[Object]>*/;
2766 var121
= ((val
* (*)(val
*))(var118
->class->vft
[COLOR_string__Object__to_s
]))(var118
) /* to_s on <var118:Array[Object]>*/;
2769 abstract_compiler__AbstractCompilerVisitor__add(self
, var121
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <self:SeparateCompilerVisitor>*/
2773 { /* Inline abstract_compiler#RuntimeVariable#mtype (var_value1) on <var_value1:RuntimeVariable> */
2774 var124
= var_value1
->attrs
[COLOR_abstract_compiler__RuntimeVariable___mtype
].val
; /* _mtype on <var_value1:RuntimeVariable> */
2775 if (unlikely(var124
== NULL
)) {
2776 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
2777 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 1634);
2781 RET_LABEL123
:(void)0;
2784 /* <var122:MType> isa MClassType */
2785 cltype
= type_model__MClassType
.color
;
2786 idtype
= type_model__MClassType
.id
;
2787 if(cltype
>= var122
->type
->table_size
) {
2790 var125
= var122
->type
->type_table
[cltype
] == idtype
;
2792 if (unlikely(!var125
)) {
2793 var_class_name
= var122
== NULL ?
"null" : var122
->type
->name
;
2794 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "MClassType", var_class_name
);
2795 PRINT_ERROR(" (%s:%d)\n", "compiler/separate_compiler.nit", 1563);
2798 var_mtype1
= var122
;
2800 var127
= varonce126
;
2804 var130
= string__NativeString__to_s_with_length(var128
, var129
);
2806 varonce126
= var127
;
2809 var131
= ((val
* (*)(val
*))(var_mtype1
->class->vft
[COLOR_abstract_compiler__MType__c_name
]))(var_mtype1
) /* c_name on <var_mtype1:MClassType>*/;
2811 var132
= NEW_array__Array(&type_array__Arraykernel__Object
);
2812 { /* var132 = array_instance Array[Object] */
2814 var134
= NEW_array__NativeArray(var133
, &type_array__NativeArraykernel__Object
);
2815 ((struct instance_array__NativeArray
*)var134
)->values
[0] = (val
*) var127
;
2816 ((struct instance_array__NativeArray
*)var134
)->values
[1] = (val
*) var131
;
2818 ((void (*)(val
*, val
*, long))(var132
->class->vft
[COLOR_array__Array__with_native
]))(var132
, var134
, var133
) /* with_native on <var132:Array[Object]>*/;
2822 var135
= ((val
* (*)(val
*))(var132
->class->vft
[COLOR_string__Object__to_s
]))(var132
) /* to_s on <var132:Array[Object]>*/;
2825 abstract_compiler__AbstractCompilerVisitor__require_declaration(self
, var135
); /* Direct call abstract_compiler#AbstractCompilerVisitor#require_declaration on <self:SeparateCompilerVisitor>*/
2828 var137
= varonce136
;
2832 var140
= string__NativeString__to_s_with_length(var138
, var139
);
2834 varonce136
= var137
;
2837 var142
= varonce141
;
2839 var143
= " != NULL) && (";
2841 var145
= string__NativeString__to_s_with_length(var143
, var144
);
2843 varonce141
= var142
;
2846 var147
= varonce146
;
2848 var148
= "->class == &class_";
2850 var150
= string__NativeString__to_s_with_length(var148
, var149
);
2852 varonce146
= var147
;
2855 var151
= ((val
* (*)(val
*))(var_mtype1
->class->vft
[COLOR_abstract_compiler__MType__c_name
]))(var_mtype1
) /* c_name on <var_mtype1:MClassType>*/;
2858 var153
= varonce152
;
2860 var154
= "); /* is_same_type_test */";
2862 var156
= string__NativeString__to_s_with_length(var154
, var155
);
2864 varonce152
= var153
;
2866 var157
= NEW_array__Array(&type_array__Arraykernel__Object
);
2867 { /* var157 = array_instance Array[Object] */
2869 var159
= NEW_array__NativeArray(var158
, &type_array__NativeArraykernel__Object
);
2870 ((struct instance_array__NativeArray
*)var159
)->values
[0] = (val
*) var_res
;
2871 ((struct instance_array__NativeArray
*)var159
)->values
[1] = (val
*) var137
;
2872 ((struct instance_array__NativeArray
*)var159
)->values
[2] = (val
*) var_value2
;
2873 ((struct instance_array__NativeArray
*)var159
)->values
[3] = (val
*) var142
;
2874 ((struct instance_array__NativeArray
*)var159
)->values
[4] = (val
*) var_value2
;
2875 ((struct instance_array__NativeArray
*)var159
)->values
[5] = (val
*) var147
;
2876 ((struct instance_array__NativeArray
*)var159
)->values
[6] = (val
*) var151
;
2877 ((struct instance_array__NativeArray
*)var159
)->values
[7] = (val
*) var153
;
2879 ((void (*)(val
*, val
*, long))(var157
->class->vft
[COLOR_array__Array__with_native
]))(var157
, var159
, var158
) /* with_native on <var157:Array[Object]>*/;
2883 var160
= ((val
* (*)(val
*))(var157
->class->vft
[COLOR_string__Object__to_s
]))(var157
) /* to_s on <var157:Array[Object]>*/;
2886 abstract_compiler__AbstractCompilerVisitor__add(self
, var160
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <self:SeparateCompilerVisitor>*/
2892 var162
= varonce161
;
2896 var165
= string__NativeString__to_s_with_length(var163
, var164
);
2898 varonce161
= var162
;
2901 var167
= varonce166
;
2905 var170
= string__NativeString__to_s_with_length(var168
, var169
);
2907 varonce166
= var167
;
2910 var172
= varonce171
;
2914 var175
= string__NativeString__to_s_with_length(var173
, var174
);
2916 varonce171
= var172
;
2919 var177
= varonce176
;
2921 var178
= " != NULL && ";
2923 var180
= string__NativeString__to_s_with_length(var178
, var179
);
2925 varonce176
= var177
;
2928 var182
= varonce181
;
2930 var183
= " != NULL && ";
2932 var185
= string__NativeString__to_s_with_length(var183
, var184
);
2934 varonce181
= var182
;
2937 var187
= varonce186
;
2939 var188
= "->class == ";
2941 var190
= string__NativeString__to_s_with_length(var188
, var189
);
2943 varonce186
= var187
;
2946 var192
= varonce191
;
2948 var193
= "->class); /* is_same_type_test */";
2950 var195
= string__NativeString__to_s_with_length(var193
, var194
);
2952 varonce191
= var192
;
2954 var196
= NEW_array__Array(&type_array__Arraykernel__Object
);
2955 { /* var196 = array_instance Array[Object] */
2957 var198
= NEW_array__NativeArray(var197
, &type_array__NativeArraykernel__Object
);
2958 ((struct instance_array__NativeArray
*)var198
)->values
[0] = (val
*) var_res
;
2959 ((struct instance_array__NativeArray
*)var198
)->values
[1] = (val
*) var162
;
2960 ((struct instance_array__NativeArray
*)var198
)->values
[2] = (val
*) var_value1
;
2961 ((struct instance_array__NativeArray
*)var198
)->values
[3] = (val
*) var167
;
2962 ((struct instance_array__NativeArray
*)var198
)->values
[4] = (val
*) var_value2
;
2963 ((struct instance_array__NativeArray
*)var198
)->values
[5] = (val
*) var172
;
2964 ((struct instance_array__NativeArray
*)var198
)->values
[6] = (val
*) var_value1
;
2965 ((struct instance_array__NativeArray
*)var198
)->values
[7] = (val
*) var177
;
2966 ((struct instance_array__NativeArray
*)var198
)->values
[8] = (val
*) var_value2
;
2967 ((struct instance_array__NativeArray
*)var198
)->values
[9] = (val
*) var182
;
2968 ((struct instance_array__NativeArray
*)var198
)->values
[10] = (val
*) var_value1
;
2969 ((struct instance_array__NativeArray
*)var198
)->values
[11] = (val
*) var187
;
2970 ((struct instance_array__NativeArray
*)var198
)->values
[12] = (val
*) var_value2
;
2971 ((struct instance_array__NativeArray
*)var198
)->values
[13] = (val
*) var192
;
2973 ((void (*)(val
*, val
*, long))(var196
->class->vft
[COLOR_array__Array__with_native
]))(var196
, var198
, var197
) /* with_native on <var196:Array[Object]>*/;
2977 var199
= ((val
* (*)(val
*))(var196
->class->vft
[COLOR_string__Object__to_s
]))(var196
) /* to_s on <var196:Array[Object]>*/;
2980 abstract_compiler__AbstractCompilerVisitor__add(self
, var199
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <self:SeparateCompilerVisitor>*/
2988 /* method separate_compiler#SeparateCompilerVisitor#is_same_type_test for (self: Object, RuntimeVariable, RuntimeVariable): RuntimeVariable */
2989 val
* VIRTUAL_separate_compiler__SeparateCompilerVisitor__is_same_type_test(val
* self
, val
* p0
, val
* p1
) {
2990 val
* var
/* : RuntimeVariable */;
2991 val
* var1
/* : RuntimeVariable */;
2992 var1
= separate_compiler__SeparateCompilerVisitor__is_same_type_test(self
, p0
, p1
);
2997 /* method separate_compiler#SeparateCompilerVisitor#class_name_string for (self: SeparateCompilerVisitor, RuntimeVariable): String */
2998 val
* separate_compiler__SeparateCompilerVisitor__class_name_string(val
* self
, val
* p0
) {
2999 val
* var
/* : String */;
3000 val
* var_value
/* var value: RuntimeVariable */;
3001 static val
* varonce
;
3002 val
* var1
/* : String */;
3003 char* var2
/* : NativeString */;
3004 long var3
/* : Int */;
3005 val
* var4
/* : FlatString */;
3006 val
* var5
/* : String */;
3007 val
* var_res
/* var res: String */;
3008 static val
* varonce6
;
3009 val
* var7
/* : String */;
3010 char* var8
/* : NativeString */;
3011 long var9
/* : Int */;
3012 val
* var10
/* : FlatString */;
3013 static val
* varonce11
;
3014 val
* var12
/* : String */;
3015 char* var13
/* : NativeString */;
3016 long var14
/* : Int */;
3017 val
* var15
/* : FlatString */;
3018 val
* var16
/* : Array[Object] */;
3019 long var17
/* : Int */;
3020 val
* var18
/* : NativeArray[Object] */;
3021 val
* var19
/* : String */;
3022 val
* var20
/* : MType */;
3023 val
* var22
/* : MType */;
3024 val
* var23
/* : String */;
3025 static val
* varonce24
;
3026 val
* var25
/* : String */;
3027 char* var26
/* : NativeString */;
3028 long var27
/* : Int */;
3029 val
* var28
/* : FlatString */;
3030 short int var29
/* : Bool */;
3031 short int var30
/* : Bool */;
3032 static val
* varonce31
;
3033 val
* var32
/* : String */;
3034 char* var33
/* : NativeString */;
3035 long var34
/* : Int */;
3036 val
* var35
/* : FlatString */;
3037 static val
* varonce36
;
3038 val
* var37
/* : String */;
3039 char* var38
/* : NativeString */;
3040 long var39
/* : Int */;
3041 val
* var40
/* : FlatString */;
3042 static val
* varonce41
;
3043 val
* var42
/* : String */;
3044 char* var43
/* : NativeString */;
3045 long var44
/* : Int */;
3046 val
* var45
/* : FlatString */;
3047 val
* var46
/* : Array[Object] */;
3048 long var47
/* : Int */;
3049 val
* var48
/* : NativeArray[Object] */;
3050 val
* var49
/* : String */;
3051 short int var50
/* : Bool */;
3052 short int var51
/* : Bool */;
3053 val
* var52
/* : MType */;
3054 val
* var54
/* : MType */;
3055 short int var55
/* : Bool */;
3058 short int var_
/* var : Bool */;
3059 val
* var56
/* : MType */;
3060 val
* var58
/* : MType */;
3061 short int var59
/* : Bool */;
3064 const char* var_class_name
;
3065 val
* var62
/* : MClass */;
3066 val
* var64
/* : MClass */;
3067 val
* var65
/* : MClassKind */;
3068 val
* var67
/* : MClassKind */;
3069 val
* var68
/* : MClassKind */;
3070 short int var69
/* : Bool */;
3071 short int var70
/* : Bool */;
3072 val
* var_other
/* var other: nullable Object */;
3073 short int var72
/* : Bool */;
3074 short int var74
/* : Bool */;
3075 short int var_75
/* var : Bool */;
3076 val
* var76
/* : MType */;
3077 val
* var78
/* : MType */;
3078 short int var79
/* : Bool */;
3081 const char* var_class_name82
;
3082 val
* var83
/* : String */;
3083 static val
* varonce84
;
3084 val
* var85
/* : String */;
3085 char* var86
/* : NativeString */;
3086 long var87
/* : Int */;
3087 val
* var88
/* : FlatString */;
3088 short int var89
/* : Bool */;
3089 short int var90
/* : Bool */;
3090 val
* var_other92
/* var other: nullable Object */;
3091 short int var93
/* : Bool */;
3092 short int var94
/* : Bool */;
3093 short int var95
/* : Bool */;
3094 static val
* varonce96
;
3095 val
* var97
/* : String */;
3096 char* var98
/* : NativeString */;
3097 long var99
/* : Int */;
3098 val
* var100
/* : FlatString */;
3099 val
* var101
/* : MType */;
3100 val
* var103
/* : MType */;
3101 short int var104
/* : Bool */;
3104 const char* var_class_name107
;
3105 val
* var108
/* : MClass */;
3106 val
* var110
/* : MClass */;
3107 static val
* varonce111
;
3108 val
* var112
/* : String */;
3109 char* var113
/* : NativeString */;
3110 long var114
/* : Int */;
3111 val
* var115
/* : FlatString */;
3112 val
* var116
/* : Array[Object] */;
3113 long var117
/* : Int */;
3114 val
* var118
/* : NativeArray[Object] */;
3115 val
* var119
/* : String */;
3116 static val
* varonce120
;
3117 val
* var121
/* : String */;
3118 char* var122
/* : NativeString */;
3119 long var123
/* : Int */;
3120 val
* var124
/* : FlatString */;
3121 val
* var125
/* : MType */;
3122 val
* var127
/* : MType */;
3123 val
* var128
/* : String */;
3124 val
* var129
/* : Array[Object] */;
3125 long var130
/* : Int */;
3126 val
* var131
/* : NativeArray[Object] */;
3127 val
* var132
/* : String */;
3128 static val
* varonce133
;
3129 val
* var134
/* : String */;
3130 char* var135
/* : NativeString */;
3131 long var136
/* : Int */;
3132 val
* var137
/* : FlatString */;
3133 val
* var138
/* : MType */;
3134 val
* var140
/* : MType */;
3135 val
* var141
/* : String */;
3136 static val
* varonce142
;
3137 val
* var143
/* : String */;
3138 char* var144
/* : NativeString */;
3139 long var145
/* : Int */;
3140 val
* var146
/* : FlatString */;
3141 val
* var147
/* : Array[Object] */;
3142 long var148
/* : Int */;
3143 val
* var149
/* : NativeArray[Object] */;
3144 val
* var150
/* : String */;
3149 var2
= "var_class_name";
3151 var4
= string__NativeString__to_s_with_length(var2
, var3
);
3156 var5
= abstract_compiler__AbstractCompilerVisitor__get_name(self
, var1
);
3162 var8
= "const char* ";
3164 var10
= string__NativeString__to_s_with_length(var8
, var9
);
3173 var15
= string__NativeString__to_s_with_length(var13
, var14
);
3177 var16
= NEW_array__Array(&type_array__Arraykernel__Object
);
3178 { /* var16 = array_instance Array[Object] */
3180 var18
= NEW_array__NativeArray(var17
, &type_array__NativeArraykernel__Object
);
3181 ((struct instance_array__NativeArray
*)var18
)->values
[0] = (val
*) var7
;
3182 ((struct instance_array__NativeArray
*)var18
)->values
[1] = (val
*) var_res
;
3183 ((struct instance_array__NativeArray
*)var18
)->values
[2] = (val
*) var12
;
3185 ((void (*)(val
*, val
*, long))(var16
->class->vft
[COLOR_array__Array__with_native
]))(var16
, var18
, var17
) /* with_native on <var16:Array[Object]>*/;
3189 var19
= ((val
* (*)(val
*))(var16
->class->vft
[COLOR_string__Object__to_s
]))(var16
) /* to_s on <var16:Array[Object]>*/;
3192 abstract_compiler__AbstractCompilerVisitor__add_decl(self
, var19
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <self:SeparateCompilerVisitor>*/
3195 { /* Inline abstract_compiler#RuntimeVariable#mtype (var_value) on <var_value:RuntimeVariable> */
3196 var22
= var_value
->attrs
[COLOR_abstract_compiler__RuntimeVariable___mtype
].val
; /* _mtype on <var_value:RuntimeVariable> */
3197 if (unlikely(var22
== NULL
)) {
3198 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
3199 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 1634);
3203 RET_LABEL21
:(void)0;
3207 var23
= ((val
* (*)(val
*))(var20
->class->vft
[COLOR_abstract_compiler__MType__ctype
]))(var20
) /* ctype on <var20:MType>*/;
3214 var28
= string__NativeString__to_s_with_length(var26
, var27
);
3219 var30
= string__FlatString___61d_61d(var23
, var25
);
3228 var35
= string__NativeString__to_s_with_length(var33
, var34
);
3235 var38
= " == NULL ? \"null\" : ";
3237 var40
= string__NativeString__to_s_with_length(var38
, var39
);
3244 var43
= "->type->name;";
3246 var45
= string__NativeString__to_s_with_length(var43
, var44
);
3250 var46
= NEW_array__Array(&type_array__Arraykernel__Object
);
3251 { /* var46 = array_instance Array[Object] */
3253 var48
= NEW_array__NativeArray(var47
, &type_array__NativeArraykernel__Object
);
3254 ((struct instance_array__NativeArray
*)var48
)->values
[0] = (val
*) var_res
;
3255 ((struct instance_array__NativeArray
*)var48
)->values
[1] = (val
*) var32
;
3256 ((struct instance_array__NativeArray
*)var48
)->values
[2] = (val
*) var_value
;
3257 ((struct instance_array__NativeArray
*)var48
)->values
[3] = (val
*) var37
;
3258 ((struct instance_array__NativeArray
*)var48
)->values
[4] = (val
*) var_value
;
3259 ((struct instance_array__NativeArray
*)var48
)->values
[5] = (val
*) var42
;
3261 ((void (*)(val
*, val
*, long))(var46
->class->vft
[COLOR_array__Array__with_native
]))(var46
, var48
, var47
) /* with_native on <var46:Array[Object]>*/;
3265 var49
= ((val
* (*)(val
*))(var46
->class->vft
[COLOR_string__Object__to_s
]))(var46
) /* to_s on <var46:Array[Object]>*/;
3268 abstract_compiler__AbstractCompilerVisitor__add(self
, var49
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <self:SeparateCompilerVisitor>*/
3272 { /* Inline abstract_compiler#RuntimeVariable#mtype (var_value) on <var_value:RuntimeVariable> */
3273 var54
= var_value
->attrs
[COLOR_abstract_compiler__RuntimeVariable___mtype
].val
; /* _mtype on <var_value:RuntimeVariable> */
3274 if (unlikely(var54
== NULL
)) {
3275 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
3276 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 1634);
3280 RET_LABEL53
:(void)0;
3283 /* <var52:MType> isa MClassType */
3284 cltype
= type_model__MClassType
.color
;
3285 idtype
= type_model__MClassType
.id
;
3286 if(cltype
>= var52
->type
->table_size
) {
3289 var55
= var52
->type
->type_table
[cltype
] == idtype
;
3294 { /* Inline abstract_compiler#RuntimeVariable#mtype (var_value) on <var_value:RuntimeVariable> */
3295 var58
= var_value
->attrs
[COLOR_abstract_compiler__RuntimeVariable___mtype
].val
; /* _mtype on <var_value:RuntimeVariable> */
3296 if (unlikely(var58
== NULL
)) {
3297 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
3298 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 1634);
3302 RET_LABEL57
:(void)0;
3305 /* <var56:MType> isa MClassType */
3306 cltype60
= type_model__MClassType
.color
;
3307 idtype61
= type_model__MClassType
.id
;
3308 if(cltype60
>= var56
->type
->table_size
) {
3311 var59
= var56
->type
->type_table
[cltype60
] == idtype61
;
3313 if (unlikely(!var59
)) {
3314 var_class_name
= var56
== NULL ?
"null" : var56
->type
->name
;
3315 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "MClassType", var_class_name
);
3316 PRINT_ERROR(" (%s:%d)\n", "compiler/separate_compiler.nit", 1579);
3320 { /* Inline model#MClassType#mclass (var56) on <var56:MType(MClassType)> */
3321 var64
= var56
->attrs
[COLOR_model__MClassType___mclass
].val
; /* _mclass on <var56:MType(MClassType)> */
3322 if (unlikely(var64
== NULL
)) {
3323 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
3324 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 986);
3328 RET_LABEL63
:(void)0;
3332 { /* Inline model#MClass#kind (var62) on <var62:MClass> */
3333 var67
= var62
->attrs
[COLOR_model__MClass___kind
].val
; /* _kind on <var62:MClass> */
3334 if (unlikely(var67
== NULL
)) {
3335 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _kind");
3336 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 371);
3340 RET_LABEL66
:(void)0;
3344 var68
= model__Object__extern_kind(self
);
3347 { /* Inline kernel#Object#== (var65,var68) on <var65:MClassKind> */
3350 { /* Inline kernel#Object#is_same_instance (var65,var_other) on <var65:MClassKind> */
3351 var74
= var65
== var_other
;
3354 RET_LABEL73
:(void)0;
3359 RET_LABEL71
:(void)0;
3370 { /* Inline abstract_compiler#RuntimeVariable#mtype (var_value) on <var_value:RuntimeVariable> */
3371 var78
= var_value
->attrs
[COLOR_abstract_compiler__RuntimeVariable___mtype
].val
; /* _mtype on <var_value:RuntimeVariable> */
3372 if (unlikely(var78
== NULL
)) {
3373 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
3374 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 1634);
3378 RET_LABEL77
:(void)0;
3381 /* <var76:MType> isa MClassType */
3382 cltype80
= type_model__MClassType
.color
;
3383 idtype81
= type_model__MClassType
.id
;
3384 if(cltype80
>= var76
->type
->table_size
) {
3387 var79
= var76
->type
->type_table
[cltype80
] == idtype81
;
3389 if (unlikely(!var79
)) {
3390 var_class_name82
= var76
== NULL ?
"null" : var76
->type
->name
;
3391 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "MClassType", var_class_name82
);
3392 PRINT_ERROR(" (%s:%d)\n", "compiler/separate_compiler.nit", 1580);
3396 var83
= model__MType__name(var76
);
3401 var86
= "NativeString";
3403 var88
= string__NativeString__to_s_with_length(var86
, var87
);
3408 { /* Inline kernel#Object#!= (var83,var85) on <var83:String> */
3409 var_other92
= var85
;
3411 var94
= ((short int (*)(val
*, val
*))(var83
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var83
, var_other92
) /* == on <var83:String>*/;
3417 RET_LABEL91
:(void)0;
3431 var100
= string__NativeString__to_s_with_length(var98
, var99
);
3436 { /* Inline abstract_compiler#RuntimeVariable#mtype (var_value) on <var_value:RuntimeVariable> */
3437 var103
= var_value
->attrs
[COLOR_abstract_compiler__RuntimeVariable___mtype
].val
; /* _mtype on <var_value:RuntimeVariable> */
3438 if (unlikely(var103
== NULL
)) {
3439 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
3440 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 1634);
3444 RET_LABEL102
:(void)0;
3447 /* <var101:MType> isa MClassType */
3448 cltype105
= type_model__MClassType
.color
;
3449 idtype106
= type_model__MClassType
.id
;
3450 if(cltype105
>= var101
->type
->table_size
) {
3453 var104
= var101
->type
->type_table
[cltype105
] == idtype106
;
3455 if (unlikely(!var104
)) {
3456 var_class_name107
= var101
== NULL ?
"null" : var101
->type
->name
;
3457 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "MClassType", var_class_name107
);
3458 PRINT_ERROR(" (%s:%d)\n", "compiler/separate_compiler.nit", 1581);
3462 { /* Inline model#MClassType#mclass (var101) on <var101:MType(MClassType)> */
3463 var110
= var101
->attrs
[COLOR_model__MClassType___mclass
].val
; /* _mclass on <var101:MType(MClassType)> */
3464 if (unlikely(var110
== NULL
)) {
3465 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
3466 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 986);
3470 RET_LABEL109
:(void)0;
3474 var112
= varonce111
;
3478 var115
= string__NativeString__to_s_with_length(var113
, var114
);
3480 varonce111
= var112
;
3482 var116
= NEW_array__Array(&type_array__Arraykernel__Object
);
3483 { /* var116 = array_instance Array[Object] */
3485 var118
= NEW_array__NativeArray(var117
, &type_array__NativeArraykernel__Object
);
3486 ((struct instance_array__NativeArray
*)var118
)->values
[0] = (val
*) var_res
;
3487 ((struct instance_array__NativeArray
*)var118
)->values
[1] = (val
*) var97
;
3488 ((struct instance_array__NativeArray
*)var118
)->values
[2] = (val
*) var108
;
3489 ((struct instance_array__NativeArray
*)var118
)->values
[3] = (val
*) var112
;
3491 ((void (*)(val
*, val
*, long))(var116
->class->vft
[COLOR_array__Array__with_native
]))(var116
, var118
, var117
) /* with_native on <var116:Array[Object]>*/;
3495 var119
= ((val
* (*)(val
*))(var116
->class->vft
[COLOR_string__Object__to_s
]))(var116
) /* to_s on <var116:Array[Object]>*/;
3498 abstract_compiler__AbstractCompilerVisitor__add(self
, var119
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <self:SeparateCompilerVisitor>*/
3502 var121
= varonce120
;
3506 var124
= string__NativeString__to_s_with_length(var122
, var123
);
3508 varonce120
= var121
;
3511 { /* Inline abstract_compiler#RuntimeVariable#mtype (var_value) on <var_value:RuntimeVariable> */
3512 var127
= var_value
->attrs
[COLOR_abstract_compiler__RuntimeVariable___mtype
].val
; /* _mtype on <var_value:RuntimeVariable> */
3513 if (unlikely(var127
== NULL
)) {
3514 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
3515 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 1634);
3519 RET_LABEL126
:(void)0;
3523 var128
= ((val
* (*)(val
*))(var125
->class->vft
[COLOR_abstract_compiler__MType__c_name
]))(var125
) /* c_name on <var125:MType>*/;
3525 var129
= NEW_array__Array(&type_array__Arraykernel__Object
);
3526 { /* var129 = array_instance Array[Object] */
3528 var131
= NEW_array__NativeArray(var130
, &type_array__NativeArraykernel__Object
);
3529 ((struct instance_array__NativeArray
*)var131
)->values
[0] = (val
*) var121
;
3530 ((struct instance_array__NativeArray
*)var131
)->values
[1] = (val
*) var128
;
3532 ((void (*)(val
*, val
*, long))(var129
->class->vft
[COLOR_array__Array__with_native
]))(var129
, var131
, var130
) /* with_native on <var129:Array[Object]>*/;
3536 var132
= ((val
* (*)(val
*))(var129
->class->vft
[COLOR_string__Object__to_s
]))(var129
) /* to_s on <var129:Array[Object]>*/;
3539 abstract_compiler__AbstractCompilerVisitor__require_declaration(self
, var132
); /* Direct call abstract_compiler#AbstractCompilerVisitor#require_declaration on <self:SeparateCompilerVisitor>*/
3542 var134
= varonce133
;
3544 var135
= " = type_";
3546 var137
= string__NativeString__to_s_with_length(var135
, var136
);
3548 varonce133
= var134
;
3551 { /* Inline abstract_compiler#RuntimeVariable#mtype (var_value) on <var_value:RuntimeVariable> */
3552 var140
= var_value
->attrs
[COLOR_abstract_compiler__RuntimeVariable___mtype
].val
; /* _mtype on <var_value:RuntimeVariable> */
3553 if (unlikely(var140
== NULL
)) {
3554 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
3555 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 1634);
3559 RET_LABEL139
:(void)0;
3563 var141
= ((val
* (*)(val
*))(var138
->class->vft
[COLOR_abstract_compiler__MType__c_name
]))(var138
) /* c_name on <var138:MType>*/;
3566 var143
= varonce142
;
3570 var146
= string__NativeString__to_s_with_length(var144
, var145
);
3572 varonce142
= var143
;
3574 var147
= NEW_array__Array(&type_array__Arraykernel__Object
);
3575 { /* var147 = array_instance Array[Object] */
3577 var149
= NEW_array__NativeArray(var148
, &type_array__NativeArraykernel__Object
);
3578 ((struct instance_array__NativeArray
*)var149
)->values
[0] = (val
*) var_res
;
3579 ((struct instance_array__NativeArray
*)var149
)->values
[1] = (val
*) var134
;
3580 ((struct instance_array__NativeArray
*)var149
)->values
[2] = (val
*) var141
;
3581 ((struct instance_array__NativeArray
*)var149
)->values
[3] = (val
*) var143
;
3583 ((void (*)(val
*, val
*, long))(var147
->class->vft
[COLOR_array__Array__with_native
]))(var147
, var149
, var148
) /* with_native on <var147:Array[Object]>*/;
3587 var150
= ((val
* (*)(val
*))(var147
->class->vft
[COLOR_string__Object__to_s
]))(var147
) /* to_s on <var147:Array[Object]>*/;
3590 abstract_compiler__AbstractCompilerVisitor__add(self
, var150
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <self:SeparateCompilerVisitor>*/
3599 /* method separate_compiler#SeparateCompilerVisitor#class_name_string for (self: Object, RuntimeVariable): String */
3600 val
* VIRTUAL_separate_compiler__SeparateCompilerVisitor__class_name_string(val
* self
, val
* p0
) {
3601 val
* var
/* : String */;
3602 val
* var1
/* : String */;
3603 var1
= separate_compiler__SeparateCompilerVisitor__class_name_string(self
, p0
);
3608 /* method separate_compiler#SeparateCompilerVisitor#equal_test for (self: SeparateCompilerVisitor, RuntimeVariable, RuntimeVariable): RuntimeVariable */
3609 val
* separate_compiler__SeparateCompilerVisitor__equal_test(val
* self
, val
* p0
, val
* p1
) {
3610 val
* var
/* : RuntimeVariable */;
3611 val
* var_value1
/* var value1: RuntimeVariable */;
3612 val
* var_value2
/* var value2: RuntimeVariable */;
3613 val
* var1
/* : MClassType */;
3614 val
* var2
/* : RuntimeVariable */;
3615 val
* var_res
/* var res: RuntimeVariable */;
3616 short int var3
/* : Bool */;
3617 val
* var4
/* : MType */;
3618 val
* var6
/* : MType */;
3619 val
* var7
/* : String */;
3620 static val
* varonce
;
3621 val
* var8
/* : String */;
3622 char* var9
/* : NativeString */;
3623 long var10
/* : Int */;
3624 val
* var11
/* : FlatString */;
3625 short int var12
/* : Bool */;
3626 short int var13
/* : Bool */;
3627 val
* var_other
/* var other: nullable Object */;
3628 short int var15
/* : Bool */;
3629 short int var16
/* : Bool */;
3630 short int var17
/* : Bool */;
3631 short int var_
/* var : Bool */;
3632 val
* var18
/* : MType */;
3633 val
* var20
/* : MType */;
3634 val
* var21
/* : String */;
3635 static val
* varonce22
;
3636 val
* var23
/* : String */;
3637 char* var24
/* : NativeString */;
3638 long var25
/* : Int */;
3639 val
* var26
/* : FlatString */;
3640 short int var27
/* : Bool */;
3641 short int var28
/* : Bool */;
3642 val
* var_tmp
/* var tmp: RuntimeVariable */;
3643 val
* var29
/* : MType */;
3644 val
* var31
/* : MType */;
3645 val
* var32
/* : String */;
3646 static val
* varonce33
;
3647 val
* var34
/* : String */;
3648 char* var35
/* : NativeString */;
3649 long var36
/* : Int */;
3650 val
* var37
/* : FlatString */;
3651 short int var38
/* : Bool */;
3652 short int var39
/* : Bool */;
3653 short int var41
/* : Bool */;
3654 short int var42
/* : Bool */;
3655 short int var43
/* : Bool */;
3656 val
* var44
/* : MType */;
3657 val
* var46
/* : MType */;
3658 val
* var47
/* : MType */;
3659 val
* var49
/* : MType */;
3660 short int var50
/* : Bool */;
3661 short int var51
/* : Bool */;
3662 val
* var_other53
/* var other: nullable Object */;
3663 short int var54
/* : Bool */;
3664 short int var56
/* : Bool */;
3665 static val
* varonce57
;
3666 val
* var58
/* : String */;
3667 char* var59
/* : NativeString */;
3668 long var60
/* : Int */;
3669 val
* var61
/* : FlatString */;
3670 static val
* varonce62
;
3671 val
* var63
/* : String */;
3672 char* var64
/* : NativeString */;
3673 long var65
/* : Int */;
3674 val
* var66
/* : FlatString */;
3675 static val
* varonce67
;
3676 val
* var68
/* : String */;
3677 char* var69
/* : NativeString */;
3678 long var70
/* : Int */;
3679 val
* var71
/* : FlatString */;
3680 val
* var72
/* : Array[Object] */;
3681 long var73
/* : Int */;
3682 val
* var74
/* : NativeArray[Object] */;
3683 val
* var75
/* : String */;
3684 val
* var76
/* : MType */;
3685 val
* var78
/* : MType */;
3686 val
* var79
/* : String */;
3687 static val
* varonce80
;
3688 val
* var81
/* : String */;
3689 char* var82
/* : NativeString */;
3690 long var83
/* : Int */;
3691 val
* var84
/* : FlatString */;
3692 short int var85
/* : Bool */;
3693 short int var86
/* : Bool */;
3694 short int var88
/* : Bool */;
3695 short int var89
/* : Bool */;
3696 short int var90
/* : Bool */;
3697 static val
* varonce91
;
3698 val
* var92
/* : String */;
3699 char* var93
/* : NativeString */;
3700 long var94
/* : Int */;
3701 val
* var95
/* : FlatString */;
3702 val
* var96
/* : MType */;
3703 val
* var98
/* : MType */;
3704 static val
* varonce99
;
3705 val
* var100
/* : String */;
3706 char* var101
/* : NativeString */;
3707 long var102
/* : Int */;
3708 val
* var103
/* : FlatString */;
3709 val
* var104
/* : MType */;
3710 val
* var106
/* : MType */;
3711 static val
* varonce107
;
3712 val
* var108
/* : String */;
3713 char* var109
/* : NativeString */;
3714 long var110
/* : Int */;
3715 val
* var111
/* : FlatString */;
3716 val
* var112
/* : Array[Object] */;
3717 long var113
/* : Int */;
3718 val
* var114
/* : NativeArray[Object] */;
3719 val
* var115
/* : String */;
3720 val
* var116
/* : MType */;
3721 val
* var118
/* : MType */;
3722 short int var119
/* : Bool */;
3725 const char* var_class_name
;
3726 val
* var_mtype1
/* var mtype1: MClassType */;
3727 static val
* varonce120
;
3728 val
* var121
/* : String */;
3729 char* var122
/* : NativeString */;
3730 long var123
/* : Int */;
3731 val
* var124
/* : FlatString */;
3732 val
* var125
/* : String */;
3733 val
* var126
/* : Array[Object] */;
3734 long var127
/* : Int */;
3735 val
* var128
/* : NativeArray[Object] */;
3736 val
* var129
/* : String */;
3737 static val
* varonce130
;
3738 val
* var131
/* : String */;
3739 char* var132
/* : NativeString */;
3740 long var133
/* : Int */;
3741 val
* var134
/* : FlatString */;
3742 static val
* varonce135
;
3743 val
* var136
/* : String */;
3744 char* var137
/* : NativeString */;
3745 long var138
/* : Int */;
3746 val
* var139
/* : FlatString */;
3747 static val
* varonce140
;
3748 val
* var141
/* : String */;
3749 char* var142
/* : NativeString */;
3750 long var143
/* : Int */;
3751 val
* var144
/* : FlatString */;
3752 val
* var145
/* : String */;
3753 static val
* varonce146
;
3754 val
* var147
/* : String */;
3755 char* var148
/* : NativeString */;
3756 long var149
/* : Int */;
3757 val
* var150
/* : FlatString */;
3758 val
* var151
/* : Array[Object] */;
3759 long var152
/* : Int */;
3760 val
* var153
/* : NativeArray[Object] */;
3761 val
* var154
/* : String */;
3762 static val
* varonce155
;
3763 val
* var156
/* : String */;
3764 char* var157
/* : NativeString */;
3765 long var158
/* : Int */;
3766 val
* var159
/* : FlatString */;
3767 static val
* varonce160
;
3768 val
* var161
/* : String */;
3769 char* var162
/* : NativeString */;
3770 long var163
/* : Int */;
3771 val
* var164
/* : FlatString */;
3772 val
* var165
/* : Array[Object] */;
3773 long var166
/* : Int */;
3774 val
* var167
/* : NativeArray[Object] */;
3775 val
* var168
/* : String */;
3776 static val
* varonce169
;
3777 val
* var170
/* : String */;
3778 char* var171
/* : NativeString */;
3779 long var172
/* : Int */;
3780 val
* var173
/* : FlatString */;
3781 val
* var174
/* : MType */;
3782 val
* var176
/* : MType */;
3783 val
* var177
/* : RuntimeVariable */;
3784 static val
* varonce178
;
3785 val
* var179
/* : String */;
3786 char* var180
/* : NativeString */;
3787 long var181
/* : Int */;
3788 val
* var182
/* : FlatString */;
3789 static val
* varonce183
;
3790 val
* var184
/* : String */;
3791 char* var185
/* : NativeString */;
3792 long var186
/* : Int */;
3793 val
* var187
/* : FlatString */;
3794 val
* var188
/* : Array[Object] */;
3795 long var189
/* : Int */;
3796 val
* var190
/* : NativeArray[Object] */;
3797 val
* var191
/* : String */;
3798 static val
* varonce192
;
3799 val
* var193
/* : String */;
3800 char* var194
/* : NativeString */;
3801 long var195
/* : Int */;
3802 val
* var196
/* : FlatString */;
3803 short int var197
/* : Bool */;
3804 short int var_maybe_null
/* var maybe_null: Bool */;
3805 val
* var198
/* : Array[String] */;
3806 val
* var_test
/* var test: Array[String] */;
3807 val
* var199
/* : MType */;
3808 val
* var201
/* : MType */;
3809 val
* var_t1
/* var t1: MType */;
3810 short int var202
/* : Bool */;
3813 static val
* varonce205
;
3814 val
* var206
/* : String */;
3815 char* var207
/* : NativeString */;
3816 long var208
/* : Int */;
3817 val
* var209
/* : FlatString */;
3818 val
* var210
/* : Array[Object] */;
3819 long var211
/* : Int */;
3820 val
* var212
/* : NativeArray[Object] */;
3821 val
* var213
/* : String */;
3822 val
* var214
/* : MType */;
3823 val
* var216
/* : MType */;
3824 short int var217
/* : Bool */;
3825 val
* var218
/* : MType */;
3826 val
* var220
/* : MType */;
3827 val
* var_t2
/* var t2: MType */;
3828 short int var221
/* : Bool */;
3831 static val
* varonce224
;
3832 val
* var225
/* : String */;
3833 char* var226
/* : NativeString */;
3834 long var227
/* : Int */;
3835 val
* var228
/* : FlatString */;
3836 val
* var229
/* : Array[Object] */;
3837 long var230
/* : Int */;
3838 val
* var231
/* : NativeArray[Object] */;
3839 val
* var232
/* : String */;
3840 val
* var233
/* : MType */;
3841 val
* var235
/* : MType */;
3842 short int var236
/* : Bool */;
3843 short int var237
/* : Bool */;
3844 short int var_incompatible
/* var incompatible: Bool */;
3845 val
* var238
/* : String */;
3846 static val
* varonce239
;
3847 val
* var240
/* : String */;
3848 char* var241
/* : NativeString */;
3849 long var242
/* : Int */;
3850 val
* var243
/* : FlatString */;
3851 short int var244
/* : Bool */;
3852 short int var245
/* : Bool */;
3853 short int var247
/* : Bool */;
3854 short int var248
/* : Bool */;
3855 short int var249
/* : Bool */;
3856 val
* var_primitive
/* var primitive: nullable Object */;
3857 short int var250
/* : Bool */;
3858 short int var251
/* : Bool */;
3859 short int var253
/* : Bool */;
3860 short int var255
/* : Bool */;
3861 val
* var256
/* : String */;
3862 static val
* varonce257
;
3863 val
* var258
/* : String */;
3864 char* var259
/* : NativeString */;
3865 long var260
/* : Int */;
3866 val
* var261
/* : FlatString */;
3867 short int var262
/* : Bool */;
3868 short int var263
/* : Bool */;
3869 short int var265
/* : Bool */;
3870 short int var266
/* : Bool */;
3871 short int var267
/* : Bool */;
3872 short int var268
/* : Bool */;
3873 short int var269
/* : Bool */;
3874 static val
* varonce270
;
3875 val
* var271
/* : String */;
3876 char* var272
/* : NativeString */;
3877 long var273
/* : Int */;
3878 val
* var274
/* : FlatString */;
3879 static val
* varonce275
;
3880 val
* var276
/* : String */;
3881 char* var277
/* : NativeString */;
3882 long var278
/* : Int */;
3883 val
* var279
/* : FlatString */;
3884 val
* var280
/* : Array[Object] */;
3885 long var281
/* : Int */;
3886 val
* var282
/* : NativeArray[Object] */;
3887 val
* var283
/* : String */;
3888 short int var284
/* : Bool */;
3889 val
* var285
/* : String */;
3890 static val
* varonce286
;
3891 val
* var287
/* : String */;
3892 char* var288
/* : NativeString */;
3893 long var289
/* : Int */;
3894 val
* var290
/* : FlatString */;
3895 short int var291
/* : Bool */;
3896 short int var292
/* : Bool */;
3897 short int var294
/* : Bool */;
3898 short int var295
/* : Bool */;
3899 short int var296
/* : Bool */;
3900 short int var297
/* : Bool */;
3901 static val
* varonce298
;
3902 val
* var299
/* : String */;
3903 char* var300
/* : NativeString */;
3904 long var301
/* : Int */;
3905 val
* var302
/* : FlatString */;
3906 static val
* varonce303
;
3907 val
* var304
/* : String */;
3908 char* var305
/* : NativeString */;
3909 long var306
/* : Int */;
3910 val
* var307
/* : FlatString */;
3911 val
* var308
/* : Array[Object] */;
3912 long var309
/* : Int */;
3913 val
* var310
/* : NativeArray[Object] */;
3914 val
* var311
/* : String */;
3915 short int var312
/* : Bool */;
3916 val
* var313
/* : null */;
3917 static val
* varonce314
;
3918 val
* var315
/* : String */;
3919 char* var316
/* : NativeString */;
3920 long var317
/* : Int */;
3921 val
* var318
/* : FlatString */;
3922 static val
* varonce319
;
3923 val
* var320
/* : String */;
3924 char* var321
/* : NativeString */;
3925 long var322
/* : Int */;
3926 val
* var323
/* : FlatString */;
3927 static val
* varonce324
;
3928 val
* var325
/* : String */;
3929 char* var326
/* : NativeString */;
3930 long var327
/* : Int */;
3931 val
* var328
/* : FlatString */;
3932 static val
* varonce329
;
3933 val
* var330
/* : String */;
3934 char* var331
/* : NativeString */;
3935 long var332
/* : Int */;
3936 val
* var333
/* : FlatString */;
3937 static val
* varonce334
;
3938 val
* var335
/* : String */;
3939 char* var336
/* : NativeString */;
3940 long var337
/* : Int */;
3941 val
* var338
/* : FlatString */;
3942 val
* var339
/* : Array[Object] */;
3943 long var340
/* : Int */;
3944 val
* var341
/* : NativeArray[Object] */;
3945 val
* var342
/* : String */;
3946 static val
* varonce343
;
3947 val
* var344
/* : String */;
3948 char* var345
/* : NativeString */;
3949 long var346
/* : Int */;
3950 val
* var347
/* : FlatString */;
3951 static val
* varonce348
;
3952 val
* var349
/* : String */;
3953 char* var350
/* : NativeString */;
3954 long var351
/* : Int */;
3955 val
* var352
/* : FlatString */;
3956 static val
* varonce353
;
3957 val
* var354
/* : String */;
3958 char* var355
/* : NativeString */;
3959 long var356
/* : Int */;
3960 val
* var357
/* : FlatString */;
3961 val
* var358
/* : Array[Object] */;
3962 long var359
/* : Int */;
3963 val
* var360
/* : NativeArray[Object] */;
3964 val
* var361
/* : String */;
3965 val
* var362
/* : null */;
3966 short int var363
/* : Bool */;
3967 short int var364
/* : Bool */;
3968 short int var366
/* : Bool */;
3969 short int var367
/* : Bool */;
3970 short int var368
/* : Bool */;
3971 static val
* varonce369
;
3972 val
* var370
/* : String */;
3973 char* var371
/* : NativeString */;
3974 long var372
/* : Int */;
3975 val
* var373
/* : FlatString */;
3976 val
* var374
/* : String */;
3977 static val
* varonce375
;
3978 val
* var376
/* : String */;
3979 char* var377
/* : NativeString */;
3980 long var378
/* : Int */;
3981 val
* var379
/* : FlatString */;
3982 static val
* varonce380
;
3983 val
* var381
/* : String */;
3984 char* var382
/* : NativeString */;
3985 long var383
/* : Int */;
3986 val
* var384
/* : FlatString */;
3987 val
* var385
/* : String */;
3988 static val
* varonce386
;
3989 val
* var387
/* : String */;
3990 char* var388
/* : NativeString */;
3991 long var389
/* : Int */;
3992 val
* var390
/* : FlatString */;
3993 static val
* varonce391
;
3994 val
* var392
/* : String */;
3995 char* var393
/* : NativeString */;
3996 long var394
/* : Int */;
3997 val
* var395
/* : FlatString */;
3998 val
* var396
/* : Array[Object] */;
3999 long var397
/* : Int */;
4000 val
* var398
/* : NativeArray[Object] */;
4001 val
* var399
/* : String */;
4002 short int var400
/* : Bool */;
4003 short int var401
/* : Bool */;
4004 short int var_402
/* var : Bool */;
4005 short int var403
/* : Bool */;
4006 static val
* varonce404
;
4007 val
* var405
/* : String */;
4008 char* var406
/* : NativeString */;
4009 long var407
/* : Int */;
4010 val
* var408
/* : FlatString */;
4011 static val
* varonce409
;
4012 val
* var410
/* : String */;
4013 char* var411
/* : NativeString */;
4014 long var412
/* : Int */;
4015 val
* var413
/* : FlatString */;
4016 val
* var414
/* : Array[Object] */;
4017 long var415
/* : Int */;
4018 val
* var416
/* : NativeArray[Object] */;
4019 val
* var417
/* : String */;
4020 val
* var418
/* : Array[String] */;
4021 val
* var_s
/* var s: Array[String] */;
4022 val
* var419
/* : AbstractCompiler */;
4023 val
* var421
/* : AbstractCompiler */;
4024 val
* var422
/* : HashMap[MClass, Int] */;
4025 val
* var424
/* : HashMap[MClass, Int] */;
4026 val
* var_425
/* var : HashMap[MClass, Int] */;
4027 val
* var426
/* : HashMapIterator[Object, nullable Object] */;
4028 val
* var_427
/* var : HashMapIterator[MClass, Int] */;
4029 short int var428
/* : Bool */;
4030 val
* var429
/* : Object */;
4031 val
* var_t
/* var t: MClass */;
4032 val
* var430
/* : nullable Object */;
4033 long var431
/* : Int */;
4034 long var_v
/* var v: Int */;
4035 static val
* varonce432
;
4036 val
* var433
/* : String */;
4037 char* var434
/* : NativeString */;
4038 long var435
/* : Int */;
4039 val
* var436
/* : FlatString */;
4040 static val
* varonce437
;
4041 val
* var438
/* : String */;
4042 char* var439
/* : NativeString */;
4043 long var440
/* : Int */;
4044 val
* var441
/* : FlatString */;
4045 static val
* varonce442
;
4046 val
* var443
/* : String */;
4047 char* var444
/* : NativeString */;
4048 long var445
/* : Int */;
4049 val
* var446
/* : FlatString */;
4050 val
* var447
/* : String */;
4051 static val
* varonce448
;
4052 val
* var449
/* : String */;
4053 char* var450
/* : NativeString */;
4054 long var451
/* : Int */;
4055 val
* var452
/* : FlatString */;
4056 static val
* varonce453
;
4057 val
* var454
/* : String */;
4058 char* var455
/* : NativeString */;
4059 long var456
/* : Int */;
4060 val
* var457
/* : FlatString */;
4061 val
* var458
/* : String */;
4062 static val
* varonce459
;
4063 val
* var460
/* : String */;
4064 char* var461
/* : NativeString */;
4065 long var462
/* : Int */;
4066 val
* var463
/* : FlatString */;
4067 static val
* varonce464
;
4068 val
* var465
/* : String */;
4069 char* var466
/* : NativeString */;
4070 long var467
/* : Int */;
4071 val
* var468
/* : FlatString */;
4072 val
* var469
/* : Array[Object] */;
4073 long var470
/* : Int */;
4074 val
* var471
/* : NativeArray[Object] */;
4075 val
* var472
/* : Object */;
4076 val
* var473
/* : String */;
4077 static val
* varonce475
;
4078 val
* var476
/* : String */;
4079 char* var477
/* : NativeString */;
4080 long var478
/* : Int */;
4081 val
* var479
/* : FlatString */;
4082 static val
* varonce480
;
4083 val
* var481
/* : String */;
4084 char* var482
/* : NativeString */;
4085 long var483
/* : Int */;
4086 val
* var484
/* : FlatString */;
4087 val
* var485
/* : String */;
4088 static val
* varonce486
;
4089 val
* var487
/* : String */;
4090 char* var488
/* : NativeString */;
4091 long var489
/* : Int */;
4092 val
* var490
/* : FlatString */;
4093 val
* var491
/* : Array[Object] */;
4094 long var492
/* : Int */;
4095 val
* var493
/* : NativeArray[Object] */;
4096 val
* var494
/* : String */;
4097 static val
* varonce495
;
4098 val
* var496
/* : String */;
4099 char* var497
/* : NativeString */;
4100 long var498
/* : Int */;
4101 val
* var499
/* : FlatString */;
4102 static val
* varonce500
;
4103 val
* var501
/* : String */;
4104 char* var502
/* : NativeString */;
4105 long var503
/* : Int */;
4106 val
* var504
/* : FlatString */;
4107 static val
* varonce505
;
4108 val
* var506
/* : String */;
4109 char* var507
/* : NativeString */;
4110 long var508
/* : Int */;
4111 val
* var509
/* : FlatString */;
4112 val
* var510
/* : Array[Object] */;
4113 long var511
/* : Int */;
4114 val
* var512
/* : NativeArray[Object] */;
4115 val
* var513
/* : String */;
4116 static val
* varonce514
;
4117 val
* var515
/* : String */;
4118 char* var516
/* : NativeString */;
4119 long var517
/* : Int */;
4120 val
* var518
/* : FlatString */;
4121 static val
* varonce519
;
4122 val
* var520
/* : String */;
4123 char* var521
/* : NativeString */;
4124 long var522
/* : Int */;
4125 val
* var523
/* : FlatString */;
4126 static val
* varonce524
;
4127 val
* var525
/* : String */;
4128 char* var526
/* : NativeString */;
4129 long var527
/* : Int */;
4130 val
* var528
/* : FlatString */;
4131 static val
* varonce529
;
4132 val
* var530
/* : String */;
4133 char* var531
/* : NativeString */;
4134 long var532
/* : Int */;
4135 val
* var533
/* : FlatString */;
4136 val
* var534
/* : String */;
4137 static val
* varonce535
;
4138 val
* var536
/* : String */;
4139 char* var537
/* : NativeString */;
4140 long var538
/* : Int */;
4141 val
* var539
/* : FlatString */;
4142 val
* var540
/* : Array[Object] */;
4143 long var541
/* : Int */;
4144 val
* var542
/* : NativeArray[Object] */;
4145 val
* var543
/* : String */;
4149 var1
= abstract_compiler__AbstractCompilerVisitor__bool_type(self
);
4152 var2
= abstract_compiler__AbstractCompilerVisitor__new_var(self
, var1
);
4156 { /* Inline abstract_compiler#RuntimeVariable#mtype (var_value2) on <var_value2:RuntimeVariable> */
4157 var6
= var_value2
->attrs
[COLOR_abstract_compiler__RuntimeVariable___mtype
].val
; /* _mtype on <var_value2:RuntimeVariable> */
4158 if (unlikely(var6
== NULL
)) {
4159 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
4160 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 1634);
4168 var7
= ((val
* (*)(val
*))(var4
->class->vft
[COLOR_abstract_compiler__MType__ctype
]))(var4
) /* ctype on <var4:MType>*/;
4175 var11
= string__NativeString__to_s_with_length(var9
, var10
);
4180 { /* Inline kernel#Object#!= (var7,var8) on <var7:String> */
4183 var16
= ((short int (*)(val
*, val
*))(var7
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var7
, var_other
) /* == on <var7:String>*/;
4189 RET_LABEL14
:(void)0;
4196 { /* Inline abstract_compiler#RuntimeVariable#mtype (var_value1) on <var_value1:RuntimeVariable> */
4197 var20
= var_value1
->attrs
[COLOR_abstract_compiler__RuntimeVariable___mtype
].val
; /* _mtype on <var_value1:RuntimeVariable> */
4198 if (unlikely(var20
== NULL
)) {
4199 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
4200 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 1634);
4204 RET_LABEL19
:(void)0;
4208 var21
= ((val
* (*)(val
*))(var18
->class->vft
[COLOR_abstract_compiler__MType__ctype
]))(var18
) /* ctype on <var18:MType>*/;
4215 var26
= string__NativeString__to_s_with_length(var24
, var25
);
4220 var28
= string__FlatString___61d_61d(var21
, var23
);
4228 var_tmp
= var_value1
;
4229 var_value1
= var_value2
;
4230 var_value2
= var_tmp
;
4234 { /* Inline abstract_compiler#RuntimeVariable#mtype (var_value1) on <var_value1:RuntimeVariable> */
4235 var31
= var_value1
->attrs
[COLOR_abstract_compiler__RuntimeVariable___mtype
].val
; /* _mtype on <var_value1:RuntimeVariable> */
4236 if (unlikely(var31
== NULL
)) {
4237 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
4238 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 1634);
4242 RET_LABEL30
:(void)0;
4246 var32
= ((val
* (*)(val
*))(var29
->class->vft
[COLOR_abstract_compiler__MType__ctype
]))(var29
) /* ctype on <var29:MType>*/;
4253 var37
= string__NativeString__to_s_with_length(var35
, var36
);
4258 { /* Inline kernel#Object#!= (var32,var34) on <var32:String> */
4261 var42
= ((short int (*)(val
*, val
*))(var32
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var32
, var_other
) /* == on <var32:String>*/;
4267 RET_LABEL40
:(void)0;
4273 { /* Inline abstract_compiler#RuntimeVariable#mtype (var_value2) on <var_value2:RuntimeVariable> */
4274 var46
= var_value2
->attrs
[COLOR_abstract_compiler__RuntimeVariable___mtype
].val
; /* _mtype on <var_value2:RuntimeVariable> */
4275 if (unlikely(var46
== NULL
)) {
4276 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
4277 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 1634);
4281 RET_LABEL45
:(void)0;
4285 { /* Inline abstract_compiler#RuntimeVariable#mtype (var_value1) on <var_value1:RuntimeVariable> */
4286 var49
= var_value1
->attrs
[COLOR_abstract_compiler__RuntimeVariable___mtype
].val
; /* _mtype on <var_value1:RuntimeVariable> */
4287 if (unlikely(var49
== NULL
)) {
4288 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
4289 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 1634);
4293 RET_LABEL48
:(void)0;
4297 { /* Inline kernel#Object#== (var44,var47) on <var44:MType> */
4298 var_other53
= var47
;
4300 { /* Inline kernel#Object#is_same_instance (var44,var_other53) on <var44:MType> */
4301 var56
= var44
== var_other53
;
4304 RET_LABEL55
:(void)0;
4309 RET_LABEL52
:(void)0;
4319 var61
= string__NativeString__to_s_with_length(var59
, var60
);
4328 var66
= string__NativeString__to_s_with_length(var64
, var65
);
4337 var71
= string__NativeString__to_s_with_length(var69
, var70
);
4341 var72
= NEW_array__Array(&type_array__Arraykernel__Object
);
4342 { /* var72 = array_instance Array[Object] */
4344 var74
= NEW_array__NativeArray(var73
, &type_array__NativeArraykernel__Object
);
4345 ((struct instance_array__NativeArray
*)var74
)->values
[0] = (val
*) var_res
;
4346 ((struct instance_array__NativeArray
*)var74
)->values
[1] = (val
*) var58
;
4347 ((struct instance_array__NativeArray
*)var74
)->values
[2] = (val
*) var_value1
;
4348 ((struct instance_array__NativeArray
*)var74
)->values
[3] = (val
*) var63
;
4349 ((struct instance_array__NativeArray
*)var74
)->values
[4] = (val
*) var_value2
;
4350 ((struct instance_array__NativeArray
*)var74
)->values
[5] = (val
*) var68
;
4352 ((void (*)(val
*, val
*, long))(var72
->class->vft
[COLOR_array__Array__with_native
]))(var72
, var74
, var73
) /* with_native on <var72:Array[Object]>*/;
4356 var75
= ((val
* (*)(val
*))(var72
->class->vft
[COLOR_string__Object__to_s
]))(var72
) /* to_s on <var72:Array[Object]>*/;
4359 abstract_compiler__AbstractCompilerVisitor__add(self
, var75
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <self:SeparateCompilerVisitor>*/
4363 { /* Inline abstract_compiler#RuntimeVariable#mtype (var_value2) on <var_value2:RuntimeVariable> */
4364 var78
= var_value2
->attrs
[COLOR_abstract_compiler__RuntimeVariable___mtype
].val
; /* _mtype on <var_value2:RuntimeVariable> */
4365 if (unlikely(var78
== NULL
)) {
4366 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
4367 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 1634);
4371 RET_LABEL77
:(void)0;
4375 var79
= ((val
* (*)(val
*))(var76
->class->vft
[COLOR_abstract_compiler__MType__ctype
]))(var76
) /* ctype on <var76:MType>*/;
4382 var84
= string__NativeString__to_s_with_length(var82
, var83
);
4387 { /* Inline kernel#Object#!= (var79,var81) on <var79:String> */
4390 var89
= ((short int (*)(val
*, val
*))(var79
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var79
, var_other
) /* == on <var79:String>*/;
4396 RET_LABEL87
:(void)0;
4404 var93
= " = 0; /* incompatible types ";
4406 var95
= string__NativeString__to_s_with_length(var93
, var94
);
4411 { /* Inline abstract_compiler#RuntimeVariable#mtype (var_value1) on <var_value1:RuntimeVariable> */
4412 var98
= var_value1
->attrs
[COLOR_abstract_compiler__RuntimeVariable___mtype
].val
; /* _mtype on <var_value1:RuntimeVariable> */
4413 if (unlikely(var98
== NULL
)) {
4414 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
4415 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 1634);
4419 RET_LABEL97
:(void)0;
4427 var103
= string__NativeString__to_s_with_length(var101
, var102
);
4432 { /* Inline abstract_compiler#RuntimeVariable#mtype (var_value2) on <var_value2:RuntimeVariable> */
4433 var106
= var_value2
->attrs
[COLOR_abstract_compiler__RuntimeVariable___mtype
].val
; /* _mtype on <var_value2:RuntimeVariable> */
4434 if (unlikely(var106
== NULL
)) {
4435 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
4436 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 1634);
4440 RET_LABEL105
:(void)0;
4444 var108
= varonce107
;
4448 var111
= string__NativeString__to_s_with_length(var109
, var110
);
4450 varonce107
= var108
;
4452 var112
= NEW_array__Array(&type_array__Arraykernel__Object
);
4453 { /* var112 = array_instance Array[Object] */
4455 var114
= NEW_array__NativeArray(var113
, &type_array__NativeArraykernel__Object
);
4456 ((struct instance_array__NativeArray
*)var114
)->values
[0] = (val
*) var_res
;
4457 ((struct instance_array__NativeArray
*)var114
)->values
[1] = (val
*) var92
;
4458 ((struct instance_array__NativeArray
*)var114
)->values
[2] = (val
*) var96
;
4459 ((struct instance_array__NativeArray
*)var114
)->values
[3] = (val
*) var100
;
4460 ((struct instance_array__NativeArray
*)var114
)->values
[4] = (val
*) var104
;
4461 ((struct instance_array__NativeArray
*)var114
)->values
[5] = (val
*) var108
;
4463 ((void (*)(val
*, val
*, long))(var112
->class->vft
[COLOR_array__Array__with_native
]))(var112
, var114
, var113
) /* with_native on <var112:Array[Object]>*/;
4467 var115
= ((val
* (*)(val
*))(var112
->class->vft
[COLOR_string__Object__to_s
]))(var112
) /* to_s on <var112:Array[Object]>*/;
4470 abstract_compiler__AbstractCompilerVisitor__add(self
, var115
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <self:SeparateCompilerVisitor>*/
4474 { /* Inline abstract_compiler#RuntimeVariable#mtype (var_value1) on <var_value1:RuntimeVariable> */
4475 var118
= var_value1
->attrs
[COLOR_abstract_compiler__RuntimeVariable___mtype
].val
; /* _mtype on <var_value1:RuntimeVariable> */
4476 if (unlikely(var118
== NULL
)) {
4477 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
4478 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 1634);
4482 RET_LABEL117
:(void)0;
4485 /* <var116:MType> isa MClassType */
4486 cltype
= type_model__MClassType
.color
;
4487 idtype
= type_model__MClassType
.id
;
4488 if(cltype
>= var116
->type
->table_size
) {
4491 var119
= var116
->type
->type_table
[cltype
] == idtype
;
4493 if (unlikely(!var119
)) {
4494 var_class_name
= var116
== NULL ?
"null" : var116
->type
->name
;
4495 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "MClassType", var_class_name
);
4496 PRINT_ERROR(" (%s:%d)\n", "compiler/separate_compiler.nit", 1603);
4499 var_mtype1
= var116
;
4501 var121
= varonce120
;
4505 var124
= string__NativeString__to_s_with_length(var122
, var123
);
4507 varonce120
= var121
;
4510 var125
= ((val
* (*)(val
*))(var_mtype1
->class->vft
[COLOR_abstract_compiler__MType__c_name
]))(var_mtype1
) /* c_name on <var_mtype1:MClassType>*/;
4512 var126
= NEW_array__Array(&type_array__Arraykernel__Object
);
4513 { /* var126 = array_instance Array[Object] */
4515 var128
= NEW_array__NativeArray(var127
, &type_array__NativeArraykernel__Object
);
4516 ((struct instance_array__NativeArray
*)var128
)->values
[0] = (val
*) var121
;
4517 ((struct instance_array__NativeArray
*)var128
)->values
[1] = (val
*) var125
;
4519 ((void (*)(val
*, val
*, long))(var126
->class->vft
[COLOR_array__Array__with_native
]))(var126
, var128
, var127
) /* with_native on <var126:Array[Object]>*/;
4523 var129
= ((val
* (*)(val
*))(var126
->class->vft
[COLOR_string__Object__to_s
]))(var126
) /* to_s on <var126:Array[Object]>*/;
4526 abstract_compiler__AbstractCompilerVisitor__require_declaration(self
, var129
); /* Direct call abstract_compiler#AbstractCompilerVisitor#require_declaration on <self:SeparateCompilerVisitor>*/
4529 var131
= varonce130
;
4533 var134
= string__NativeString__to_s_with_length(var132
, var133
);
4535 varonce130
= var131
;
4538 var136
= varonce135
;
4540 var137
= " != NULL) && (";
4542 var139
= string__NativeString__to_s_with_length(var137
, var138
);
4544 varonce135
= var136
;
4547 var141
= varonce140
;
4549 var142
= "->class == &class_";
4551 var144
= string__NativeString__to_s_with_length(var142
, var143
);
4553 varonce140
= var141
;
4556 var145
= ((val
* (*)(val
*))(var_mtype1
->class->vft
[COLOR_abstract_compiler__MType__c_name
]))(var_mtype1
) /* c_name on <var_mtype1:MClassType>*/;
4559 var147
= varonce146
;
4563 var150
= string__NativeString__to_s_with_length(var148
, var149
);
4565 varonce146
= var147
;
4567 var151
= NEW_array__Array(&type_array__Arraykernel__Object
);
4568 { /* var151 = array_instance Array[Object] */
4570 var153
= NEW_array__NativeArray(var152
, &type_array__NativeArraykernel__Object
);
4571 ((struct instance_array__NativeArray
*)var153
)->values
[0] = (val
*) var_res
;
4572 ((struct instance_array__NativeArray
*)var153
)->values
[1] = (val
*) var131
;
4573 ((struct instance_array__NativeArray
*)var153
)->values
[2] = (val
*) var_value2
;
4574 ((struct instance_array__NativeArray
*)var153
)->values
[3] = (val
*) var136
;
4575 ((struct instance_array__NativeArray
*)var153
)->values
[4] = (val
*) var_value2
;
4576 ((struct instance_array__NativeArray
*)var153
)->values
[5] = (val
*) var141
;
4577 ((struct instance_array__NativeArray
*)var153
)->values
[6] = (val
*) var145
;
4578 ((struct instance_array__NativeArray
*)var153
)->values
[7] = (val
*) var147
;
4580 ((void (*)(val
*, val
*, long))(var151
->class->vft
[COLOR_array__Array__with_native
]))(var151
, var153
, var152
) /* with_native on <var151:Array[Object]>*/;
4584 var154
= ((val
* (*)(val
*))(var151
->class->vft
[COLOR_string__Object__to_s
]))(var151
) /* to_s on <var151:Array[Object]>*/;
4587 abstract_compiler__AbstractCompilerVisitor__add(self
, var154
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <self:SeparateCompilerVisitor>*/
4590 var156
= varonce155
;
4594 var159
= string__NativeString__to_s_with_length(var157
, var158
);
4596 varonce155
= var156
;
4599 var161
= varonce160
;
4603 var164
= string__NativeString__to_s_with_length(var162
, var163
);
4605 varonce160
= var161
;
4607 var165
= NEW_array__Array(&type_array__Arraykernel__Object
);
4608 { /* var165 = array_instance Array[Object] */
4610 var167
= NEW_array__NativeArray(var166
, &type_array__NativeArraykernel__Object
);
4611 ((struct instance_array__NativeArray
*)var167
)->values
[0] = (val
*) var156
;
4612 ((struct instance_array__NativeArray
*)var167
)->values
[1] = (val
*) var_res
;
4613 ((struct instance_array__NativeArray
*)var167
)->values
[2] = (val
*) var161
;
4615 ((void (*)(val
*, val
*, long))(var165
->class->vft
[COLOR_array__Array__with_native
]))(var165
, var167
, var166
) /* with_native on <var165:Array[Object]>*/;
4619 var168
= ((val
* (*)(val
*))(var165
->class->vft
[COLOR_string__Object__to_s
]))(var165
) /* to_s on <var165:Array[Object]>*/;
4622 abstract_compiler__AbstractCompilerVisitor__add(self
, var168
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <self:SeparateCompilerVisitor>*/
4625 var170
= varonce169
;
4629 var173
= string__NativeString__to_s_with_length(var171
, var172
);
4631 varonce169
= var170
;
4634 { /* Inline abstract_compiler#RuntimeVariable#mtype (var_value1) on <var_value1:RuntimeVariable> */
4635 var176
= var_value1
->attrs
[COLOR_abstract_compiler__RuntimeVariable___mtype
].val
; /* _mtype on <var_value1:RuntimeVariable> */
4636 if (unlikely(var176
== NULL
)) {
4637 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
4638 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 1634);
4642 RET_LABEL175
:(void)0;
4646 var177
= separate_compiler__SeparateCompilerVisitor__autobox(self
, var_value2
, var174
);
4649 var179
= varonce178
;
4653 var182
= string__NativeString__to_s_with_length(var180
, var181
);
4655 varonce178
= var179
;
4658 var184
= varonce183
;
4662 var187
= string__NativeString__to_s_with_length(var185
, var186
);
4664 varonce183
= var184
;
4666 var188
= NEW_array__Array(&type_array__Arraykernel__Object
);
4667 { /* var188 = array_instance Array[Object] */
4669 var190
= NEW_array__NativeArray(var189
, &type_array__NativeArraykernel__Object
);
4670 ((struct instance_array__NativeArray
*)var190
)->values
[0] = (val
*) var_res
;
4671 ((struct instance_array__NativeArray
*)var190
)->values
[1] = (val
*) var170
;
4672 ((struct instance_array__NativeArray
*)var190
)->values
[2] = (val
*) var177
;
4673 ((struct instance_array__NativeArray
*)var190
)->values
[3] = (val
*) var179
;
4674 ((struct instance_array__NativeArray
*)var190
)->values
[4] = (val
*) var_value1
;
4675 ((struct instance_array__NativeArray
*)var190
)->values
[5] = (val
*) var184
;
4677 ((void (*)(val
*, val
*, long))(var188
->class->vft
[COLOR_array__Array__with_native
]))(var188
, var190
, var189
) /* with_native on <var188:Array[Object]>*/;
4681 var191
= ((val
* (*)(val
*))(var188
->class->vft
[COLOR_string__Object__to_s
]))(var188
) /* to_s on <var188:Array[Object]>*/;
4684 abstract_compiler__AbstractCompilerVisitor__add(self
, var191
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <self:SeparateCompilerVisitor>*/
4687 var193
= varonce192
;
4691 var196
= string__NativeString__to_s_with_length(var194
, var195
);
4693 varonce192
= var193
;
4696 abstract_compiler__AbstractCompilerVisitor__add(self
, var193
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <self:SeparateCompilerVisitor>*/
4705 var_maybe_null
= var197
;
4706 var198
= NEW_array__Array(&type_array__Arraystring__String
);
4708 ((void (*)(val
*))(var198
->class->vft
[COLOR_kernel__Object__init
]))(var198
) /* init on <var198:Array[String]>*/;
4712 { /* Inline abstract_compiler#RuntimeVariable#mcasttype (var_value1) on <var_value1:RuntimeVariable> */
4713 var201
= var_value1
->attrs
[COLOR_abstract_compiler__RuntimeVariable___mcasttype
].val
; /* _mcasttype on <var_value1:RuntimeVariable> */
4714 if (unlikely(var201
== NULL
)) {
4715 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mcasttype");
4716 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 1637);
4720 RET_LABEL200
:(void)0;
4724 /* <var_t1:MType> isa MNullableType */
4725 cltype203
= type_model__MNullableType
.color
;
4726 idtype204
= type_model__MNullableType
.id
;
4727 if(cltype203
>= var_t1
->type
->table_size
) {
4730 var202
= var_t1
->type
->type_table
[cltype203
] == idtype204
;
4734 var206
= varonce205
;
4736 var207
= " != NULL";
4738 var209
= string__NativeString__to_s_with_length(var207
, var208
);
4740 varonce205
= var206
;
4742 var210
= NEW_array__Array(&type_array__Arraykernel__Object
);
4743 { /* var210 = array_instance Array[Object] */
4745 var212
= NEW_array__NativeArray(var211
, &type_array__NativeArraykernel__Object
);
4746 ((struct instance_array__NativeArray
*)var212
)->values
[0] = (val
*) var_value1
;
4747 ((struct instance_array__NativeArray
*)var212
)->values
[1] = (val
*) var206
;
4749 ((void (*)(val
*, val
*, long))(var210
->class->vft
[COLOR_array__Array__with_native
]))(var210
, var212
, var211
) /* with_native on <var210:Array[Object]>*/;
4753 var213
= ((val
* (*)(val
*))(var210
->class->vft
[COLOR_string__Object__to_s
]))(var210
) /* to_s on <var210:Array[Object]>*/;
4756 array__Array__add(var_test
, var213
); /* Direct call array#Array#add on <var_test:Array[String]>*/
4759 { /* Inline model#MNullableType#mtype (var_t1) on <var_t1:MType(MNullableType)> */
4760 var216
= var_t1
->attrs
[COLOR_model__MNullableType___mtype
].val
; /* _mtype on <var_t1:MType(MNullableType)> */
4761 if (unlikely(var216
== NULL
)) {
4762 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
4763 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1388);
4767 RET_LABEL215
:(void)0;
4773 var_maybe_null
= var217
;
4776 { /* Inline abstract_compiler#RuntimeVariable#mcasttype (var_value2) on <var_value2:RuntimeVariable> */
4777 var220
= var_value2
->attrs
[COLOR_abstract_compiler__RuntimeVariable___mcasttype
].val
; /* _mcasttype on <var_value2:RuntimeVariable> */
4778 if (unlikely(var220
== NULL
)) {
4779 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mcasttype");
4780 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 1637);
4784 RET_LABEL219
:(void)0;
4788 /* <var_t2:MType> isa MNullableType */
4789 cltype222
= type_model__MNullableType
.color
;
4790 idtype223
= type_model__MNullableType
.id
;
4791 if(cltype222
>= var_t2
->type
->table_size
) {
4794 var221
= var_t2
->type
->type_table
[cltype222
] == idtype223
;
4798 var225
= varonce224
;
4800 var226
= " != NULL";
4802 var228
= string__NativeString__to_s_with_length(var226
, var227
);
4804 varonce224
= var225
;
4806 var229
= NEW_array__Array(&type_array__Arraykernel__Object
);
4807 { /* var229 = array_instance Array[Object] */
4809 var231
= NEW_array__NativeArray(var230
, &type_array__NativeArraykernel__Object
);
4810 ((struct instance_array__NativeArray
*)var231
)->values
[0] = (val
*) var_value2
;
4811 ((struct instance_array__NativeArray
*)var231
)->values
[1] = (val
*) var225
;
4813 ((void (*)(val
*, val
*, long))(var229
->class->vft
[COLOR_array__Array__with_native
]))(var229
, var231
, var230
) /* with_native on <var229:Array[Object]>*/;
4817 var232
= ((val
* (*)(val
*))(var229
->class->vft
[COLOR_string__Object__to_s
]))(var229
) /* to_s on <var229:Array[Object]>*/;
4820 array__Array__add(var_test
, var232
); /* Direct call array#Array#add on <var_test:Array[String]>*/
4823 { /* Inline model#MNullableType#mtype (var_t2) on <var_t2:MType(MNullableType)> */
4824 var235
= var_t2
->attrs
[COLOR_model__MNullableType___mtype
].val
; /* _mtype on <var_t2:MType(MNullableType)> */
4825 if (unlikely(var235
== NULL
)) {
4826 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
4827 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1388);
4831 RET_LABEL234
:(void)0;
4837 var_maybe_null
= var236
;
4840 var_incompatible
= var237
;
4842 var238
= ((val
* (*)(val
*))(var_t1
->class->vft
[COLOR_abstract_compiler__MType__ctype
]))(var_t1
) /* ctype on <var_t1:MType>*/;
4845 var240
= varonce239
;
4849 var243
= string__NativeString__to_s_with_length(var241
, var242
);
4851 varonce239
= var240
;
4854 { /* Inline kernel#Object#!= (var238,var240) on <var238:String> */
4857 var248
= ((short int (*)(val
*, val
*))(var238
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var238
, var_other
) /* == on <var238:String>*/;
4863 RET_LABEL246
:(void)0;
4868 var_primitive
= var_t1
;
4870 { /* Inline kernel#Object#== (var_t1,var_t2) on <var_t1:MType> */
4871 var_other53
= var_t2
;
4873 { /* Inline kernel#Object#is_same_instance (var_t1,var_other53) on <var_t1:MType> */
4874 var255
= var_t1
== var_other53
;
4877 RET_LABEL254
:(void)0;
4882 RET_LABEL252
:(void)0;
4889 var256
= ((val
* (*)(val
*))(var_t2
->class->vft
[COLOR_abstract_compiler__MType__ctype
]))(var_t2
) /* ctype on <var_t2:MType>*/;
4892 var258
= varonce257
;
4896 var261
= string__NativeString__to_s_with_length(var259
, var260
);
4898 varonce257
= var258
;
4901 { /* Inline kernel#Object#!= (var256,var258) on <var256:String> */
4904 var266
= ((short int (*)(val
*, val
*))(var256
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var256
, var_other
) /* == on <var256:String>*/;
4910 RET_LABEL264
:(void)0;
4916 var_incompatible
= var268
;
4919 var269
= separate_compiler__SeparateCompilerVisitor__can_be_primitive(self
, var_value2
);
4923 var271
= varonce270
;
4925 var272
= "->class == ";
4927 var274
= string__NativeString__to_s_with_length(var272
, var273
);
4929 varonce270
= var271
;
4932 var276
= varonce275
;
4936 var279
= string__NativeString__to_s_with_length(var277
, var278
);
4938 varonce275
= var276
;
4940 var280
= NEW_array__Array(&type_array__Arraykernel__Object
);
4941 { /* var280 = array_instance Array[Object] */
4943 var282
= NEW_array__NativeArray(var281
, &type_array__NativeArraykernel__Object
);
4944 ((struct instance_array__NativeArray
*)var282
)->values
[0] = (val
*) var_value1
;
4945 ((struct instance_array__NativeArray
*)var282
)->values
[1] = (val
*) var271
;
4946 ((struct instance_array__NativeArray
*)var282
)->values
[2] = (val
*) var_value2
;
4947 ((struct instance_array__NativeArray
*)var282
)->values
[3] = (val
*) var276
;
4949 ((void (*)(val
*, val
*, long))(var280
->class->vft
[COLOR_array__Array__with_native
]))(var280
, var282
, var281
) /* with_native on <var280:Array[Object]>*/;
4953 var283
= ((val
* (*)(val
*))(var280
->class->vft
[COLOR_string__Object__to_s
]))(var280
) /* to_s on <var280:Array[Object]>*/;
4956 array__Array__add(var_test
, var283
); /* Direct call array#Array#add on <var_test:Array[String]>*/
4960 var_incompatible
= var284
;
4966 var285
= ((val
* (*)(val
*))(var_t2
->class->vft
[COLOR_abstract_compiler__MType__ctype
]))(var_t2
) /* ctype on <var_t2:MType>*/;
4969 var287
= varonce286
;
4973 var290
= string__NativeString__to_s_with_length(var288
, var289
);
4975 varonce286
= var287
;
4978 { /* Inline kernel#Object#!= (var285,var287) on <var285:String> */
4981 var295
= ((short int (*)(val
*, val
*))(var285
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var285
, var_other
) /* == on <var285:String>*/;
4987 RET_LABEL293
:(void)0;
4992 var_primitive
= var_t2
;
4994 var297
= separate_compiler__SeparateCompilerVisitor__can_be_primitive(self
, var_value1
);
4998 var299
= varonce298
;
5000 var300
= "->class == ";
5002 var302
= string__NativeString__to_s_with_length(var300
, var301
);
5004 varonce298
= var299
;
5007 var304
= varonce303
;
5011 var307
= string__NativeString__to_s_with_length(var305
, var306
);
5013 varonce303
= var304
;
5015 var308
= NEW_array__Array(&type_array__Arraykernel__Object
);
5016 { /* var308 = array_instance Array[Object] */
5018 var310
= NEW_array__NativeArray(var309
, &type_array__NativeArraykernel__Object
);
5019 ((struct instance_array__NativeArray
*)var310
)->values
[0] = (val
*) var_value1
;
5020 ((struct instance_array__NativeArray
*)var310
)->values
[1] = (val
*) var299
;
5021 ((struct instance_array__NativeArray
*)var310
)->values
[2] = (val
*) var_value2
;
5022 ((struct instance_array__NativeArray
*)var310
)->values
[3] = (val
*) var304
;
5024 ((void (*)(val
*, val
*, long))(var308
->class->vft
[COLOR_array__Array__with_native
]))(var308
, var310
, var309
) /* with_native on <var308:Array[Object]>*/;
5028 var311
= ((val
* (*)(val
*))(var308
->class->vft
[COLOR_string__Object__to_s
]))(var308
) /* to_s on <var308:Array[Object]>*/;
5031 array__Array__add(var_test
, var311
); /* Direct call array#Array#add on <var_test:Array[String]>*/
5035 var_incompatible
= var312
;
5039 var_primitive
= var313
;
5042 if (var_incompatible
){
5043 if (var_maybe_null
){
5045 var315
= varonce314
;
5049 var318
= string__NativeString__to_s_with_length(var316
, var317
);
5051 varonce314
= var315
;
5054 var320
= varonce319
;
5058 var323
= string__NativeString__to_s_with_length(var321
, var322
);
5060 varonce319
= var320
;
5063 var325
= varonce324
;
5065 var326
= "; /* incompatible types ";
5067 var328
= string__NativeString__to_s_with_length(var326
, var327
);
5069 varonce324
= var325
;
5072 var330
= varonce329
;
5076 var333
= string__NativeString__to_s_with_length(var331
, var332
);
5078 varonce329
= var330
;
5081 var335
= varonce334
;
5083 var336
= "; but may be NULL*/";
5085 var338
= string__NativeString__to_s_with_length(var336
, var337
);
5087 varonce334
= var335
;
5089 var339
= NEW_array__Array(&type_array__Arraykernel__Object
);
5090 { /* var339 = array_instance Array[Object] */
5092 var341
= NEW_array__NativeArray(var340
, &type_array__NativeArraykernel__Object
);
5093 ((struct instance_array__NativeArray
*)var341
)->values
[0] = (val
*) var_res
;
5094 ((struct instance_array__NativeArray
*)var341
)->values
[1] = (val
*) var315
;
5095 ((struct instance_array__NativeArray
*)var341
)->values
[2] = (val
*) var_value1
;
5096 ((struct instance_array__NativeArray
*)var341
)->values
[3] = (val
*) var320
;
5097 ((struct instance_array__NativeArray
*)var341
)->values
[4] = (val
*) var_value2
;
5098 ((struct instance_array__NativeArray
*)var341
)->values
[5] = (val
*) var325
;
5099 ((struct instance_array__NativeArray
*)var341
)->values
[6] = (val
*) var_t1
;
5100 ((struct instance_array__NativeArray
*)var341
)->values
[7] = (val
*) var330
;
5101 ((struct instance_array__NativeArray
*)var341
)->values
[8] = (val
*) var_t2
;
5102 ((struct instance_array__NativeArray
*)var341
)->values
[9] = (val
*) var335
;
5104 ((void (*)(val
*, val
*, long))(var339
->class->vft
[COLOR_array__Array__with_native
]))(var339
, var341
, var340
) /* with_native on <var339:Array[Object]>*/;
5108 var342
= ((val
* (*)(val
*))(var339
->class->vft
[COLOR_string__Object__to_s
]))(var339
) /* to_s on <var339:Array[Object]>*/;
5111 abstract_compiler__AbstractCompilerVisitor__add(self
, var342
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <self:SeparateCompilerVisitor>*/
5117 var344
= varonce343
;
5119 var345
= " = 0; /* incompatible types ";
5121 var347
= string__NativeString__to_s_with_length(var345
, var346
);
5123 varonce343
= var344
;
5126 var349
= varonce348
;
5130 var352
= string__NativeString__to_s_with_length(var350
, var351
);
5132 varonce348
= var349
;
5135 var354
= varonce353
;
5137 var355
= "; cannot be NULL */";
5139 var357
= string__NativeString__to_s_with_length(var355
, var356
);
5141 varonce353
= var354
;
5143 var358
= NEW_array__Array(&type_array__Arraykernel__Object
);
5144 { /* var358 = array_instance Array[Object] */
5146 var360
= NEW_array__NativeArray(var359
, &type_array__NativeArraykernel__Object
);
5147 ((struct instance_array__NativeArray
*)var360
)->values
[0] = (val
*) var_res
;
5148 ((struct instance_array__NativeArray
*)var360
)->values
[1] = (val
*) var344
;
5149 ((struct instance_array__NativeArray
*)var360
)->values
[2] = (val
*) var_t1
;
5150 ((struct instance_array__NativeArray
*)var360
)->values
[3] = (val
*) var349
;
5151 ((struct instance_array__NativeArray
*)var360
)->values
[4] = (val
*) var_t2
;
5152 ((struct instance_array__NativeArray
*)var360
)->values
[5] = (val
*) var354
;
5154 ((void (*)(val
*, val
*, long))(var358
->class->vft
[COLOR_array__Array__with_native
]))(var358
, var360
, var359
) /* with_native on <var358:Array[Object]>*/;
5158 var361
= ((val
* (*)(val
*))(var358
->class->vft
[COLOR_string__Object__to_s
]))(var358
) /* to_s on <var358:Array[Object]>*/;
5161 abstract_compiler__AbstractCompilerVisitor__add(self
, var361
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <self:SeparateCompilerVisitor>*/
5169 if (var_primitive
== NULL
) {
5170 var363
= 0; /* is null */
5172 var363
= 1; /* arg is null and recv is not */
5175 { /* Inline kernel#Object#!= (var_primitive,var362) on <var_primitive:nullable Object(nullable MType)> */
5178 var367
= ((short int (*)(val
*, val
*))(var_primitive
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var_primitive
, var_other
) /* == on <var_primitive:nullable MType(MType)>*/;
5184 RET_LABEL365
:(void)0;
5190 var370
= varonce369
;
5192 var371
= "((struct instance_";
5194 var373
= string__NativeString__to_s_with_length(var371
, var372
);
5196 varonce369
= var370
;
5199 var374
= ((val
* (*)(val
*))(var_primitive
->class->vft
[COLOR_abstract_compiler__MType__c_name
]))(var_primitive
) /* c_name on <var_primitive:nullable Object(MType)>*/;
5202 var376
= varonce375
;
5206 var379
= string__NativeString__to_s_with_length(var377
, var378
);
5208 varonce375
= var376
;
5211 var381
= varonce380
;
5213 var382
= ")->value == ((struct instance_";
5215 var384
= string__NativeString__to_s_with_length(var382
, var383
);
5217 varonce380
= var381
;
5220 var385
= ((val
* (*)(val
*))(var_primitive
->class->vft
[COLOR_abstract_compiler__MType__c_name
]))(var_primitive
) /* c_name on <var_primitive:nullable Object(MType)>*/;
5223 var387
= varonce386
;
5227 var390
= string__NativeString__to_s_with_length(var388
, var389
);
5229 varonce386
= var387
;
5232 var392
= varonce391
;
5234 var393
= ")->value";
5236 var395
= string__NativeString__to_s_with_length(var393
, var394
);
5238 varonce391
= var392
;
5240 var396
= NEW_array__Array(&type_array__Arraykernel__Object
);
5241 { /* var396 = array_instance Array[Object] */
5243 var398
= NEW_array__NativeArray(var397
, &type_array__NativeArraykernel__Object
);
5244 ((struct instance_array__NativeArray
*)var398
)->values
[0] = (val
*) var370
;
5245 ((struct instance_array__NativeArray
*)var398
)->values
[1] = (val
*) var374
;
5246 ((struct instance_array__NativeArray
*)var398
)->values
[2] = (val
*) var376
;
5247 ((struct instance_array__NativeArray
*)var398
)->values
[3] = (val
*) var_value1
;
5248 ((struct instance_array__NativeArray
*)var398
)->values
[4] = (val
*) var381
;
5249 ((struct instance_array__NativeArray
*)var398
)->values
[5] = (val
*) var385
;
5250 ((struct instance_array__NativeArray
*)var398
)->values
[6] = (val
*) var387
;
5251 ((struct instance_array__NativeArray
*)var398
)->values
[7] = (val
*) var_value2
;
5252 ((struct instance_array__NativeArray
*)var398
)->values
[8] = (val
*) var392
;
5254 ((void (*)(val
*, val
*, long))(var396
->class->vft
[COLOR_array__Array__with_native
]))(var396
, var398
, var397
) /* with_native on <var396:Array[Object]>*/;
5258 var399
= ((val
* (*)(val
*))(var396
->class->vft
[COLOR_string__Object__to_s
]))(var396
) /* to_s on <var396:Array[Object]>*/;
5261 array__Array__add(var_test
, var399
); /* Direct call array#Array#add on <var_test:Array[String]>*/
5265 var401
= separate_compiler__SeparateCompilerVisitor__can_be_primitive(self
, var_value1
);
5270 var403
= separate_compiler__SeparateCompilerVisitor__can_be_primitive(self
, var_value2
);
5278 var405
= varonce404
;
5280 var406
= "->class == ";
5282 var408
= string__NativeString__to_s_with_length(var406
, var407
);
5284 varonce404
= var405
;
5287 var410
= varonce409
;
5291 var413
= string__NativeString__to_s_with_length(var411
, var412
);
5293 varonce409
= var410
;
5295 var414
= NEW_array__Array(&type_array__Arraykernel__Object
);
5296 { /* var414 = array_instance Array[Object] */
5298 var416
= NEW_array__NativeArray(var415
, &type_array__NativeArraykernel__Object
);
5299 ((struct instance_array__NativeArray
*)var416
)->values
[0] = (val
*) var_value1
;
5300 ((struct instance_array__NativeArray
*)var416
)->values
[1] = (val
*) var405
;
5301 ((struct instance_array__NativeArray
*)var416
)->values
[2] = (val
*) var_value2
;
5302 ((struct instance_array__NativeArray
*)var416
)->values
[3] = (val
*) var410
;
5304 ((void (*)(val
*, val
*, long))(var414
->class->vft
[COLOR_array__Array__with_native
]))(var414
, var416
, var415
) /* with_native on <var414:Array[Object]>*/;
5308 var417
= ((val
* (*)(val
*))(var414
->class->vft
[COLOR_string__Object__to_s
]))(var414
) /* to_s on <var414:Array[Object]>*/;
5311 array__Array__add(var_test
, var417
); /* Direct call array#Array#add on <var_test:Array[String]>*/
5313 var418
= NEW_array__Array(&type_array__Arraystring__String
);
5315 ((void (*)(val
*))(var418
->class->vft
[COLOR_kernel__Object__init
]))(var418
) /* init on <var418:Array[String]>*/;
5319 { /* Inline abstract_compiler#AbstractCompilerVisitor#compiler (self) on <self:SeparateCompilerVisitor> */
5320 var421
= self
->attrs
[COLOR_abstract_compiler__AbstractCompilerVisitor___compiler
].val
; /* _compiler on <self:SeparateCompilerVisitor> */
5321 if (unlikely(var421
== NULL
)) {
5322 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _compiler");
5323 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 1041);
5327 RET_LABEL420
:(void)0;
5331 { /* Inline separate_compiler#SeparateCompiler#box_kinds (var419) on <var419:AbstractCompiler(SeparateCompiler)> */
5332 var424
= var419
->attrs
[COLOR_separate_compiler__SeparateCompiler___box_kinds
].val
; /* _box_kinds on <var419:AbstractCompiler(SeparateCompiler)> */
5333 if (unlikely(var424
== NULL
)) {
5334 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _box_kinds");
5335 PRINT_ERROR(" (%s:%d)\n", "compiler/separate_compiler.nit", 216);
5339 RET_LABEL423
:(void)0;
5344 var426
= hash_collection__HashMap__iterator(var_425
);
5349 var428
= hash_collection__HashMapIterator__is_ok(var_427
);
5353 var429
= hash_collection__HashMapIterator__key(var_427
);
5357 var430
= hash_collection__HashMapIterator__item(var_427
);
5359 var431
= ((struct instance_kernel__Int
*)var430
)->value
; /* autounbox from nullable Object to Int */;
5362 var433
= varonce432
;
5366 var436
= string__NativeString__to_s_with_length(var434
, var435
);
5368 varonce432
= var433
;
5371 var438
= varonce437
;
5373 var439
= "->class->box_kind == ";
5375 var441
= string__NativeString__to_s_with_length(var439
, var440
);
5377 varonce437
= var438
;
5380 var443
= varonce442
;
5382 var444
= " && ((struct instance_";
5384 var446
= string__NativeString__to_s_with_length(var444
, var445
);
5386 varonce442
= var443
;
5389 var447
= abstract_compiler__MClass__c_name(var_t
);
5392 var449
= varonce448
;
5396 var452
= string__NativeString__to_s_with_length(var450
, var451
);
5398 varonce448
= var449
;
5401 var454
= varonce453
;
5403 var455
= ")->value == ((struct instance_";
5405 var457
= string__NativeString__to_s_with_length(var455
, var456
);
5407 varonce453
= var454
;
5410 var458
= abstract_compiler__MClass__c_name(var_t
);
5413 var460
= varonce459
;
5417 var463
= string__NativeString__to_s_with_length(var461
, var462
);
5419 varonce459
= var460
;
5422 var465
= varonce464
;
5424 var466
= ")->value)";
5426 var468
= string__NativeString__to_s_with_length(var466
, var467
);
5428 varonce464
= var465
;
5430 var469
= NEW_array__Array(&type_array__Arraykernel__Object
);
5431 { /* var469 = array_instance Array[Object] */
5433 var471
= NEW_array__NativeArray(var470
, &type_array__NativeArraykernel__Object
);
5434 ((struct instance_array__NativeArray
*)var471
)->values
[0] = (val
*) var433
;
5435 ((struct instance_array__NativeArray
*)var471
)->values
[1] = (val
*) var_value1
;
5436 ((struct instance_array__NativeArray
*)var471
)->values
[2] = (val
*) var438
;
5437 var472
= BOX_kernel__Int(var_v
); /* autobox from Int to Object */
5438 ((struct instance_array__NativeArray
*)var471
)->values
[3] = (val
*) var472
;
5439 ((struct instance_array__NativeArray
*)var471
)->values
[4] = (val
*) var443
;
5440 ((struct instance_array__NativeArray
*)var471
)->values
[5] = (val
*) var447
;
5441 ((struct instance_array__NativeArray
*)var471
)->values
[6] = (val
*) var449
;
5442 ((struct instance_array__NativeArray
*)var471
)->values
[7] = (val
*) var_value1
;
5443 ((struct instance_array__NativeArray
*)var471
)->values
[8] = (val
*) var454
;
5444 ((struct instance_array__NativeArray
*)var471
)->values
[9] = (val
*) var458
;
5445 ((struct instance_array__NativeArray
*)var471
)->values
[10] = (val
*) var460
;
5446 ((struct instance_array__NativeArray
*)var471
)->values
[11] = (val
*) var_value2
;
5447 ((struct instance_array__NativeArray
*)var471
)->values
[12] = (val
*) var465
;
5449 ((void (*)(val
*, val
*, long))(var469
->class->vft
[COLOR_array__Array__with_native
]))(var469
, var471
, var470
) /* with_native on <var469:Array[Object]>*/;
5453 var473
= ((val
* (*)(val
*))(var469
->class->vft
[COLOR_string__Object__to_s
]))(var469
) /* to_s on <var469:Array[Object]>*/;
5456 array__Array__add(var_s
, var473
); /* Direct call array#Array#add on <var_s:Array[String]>*/
5459 hash_collection__HashMapIterator__next(var_427
); /* Direct call hash_collection#HashMapIterator#next on <var_427:HashMapIterator[MClass, Int]>*/
5465 BREAK_label
: (void)0;
5467 { /* Inline abstract_collection#MapIterator#finish (var_427) on <var_427:HashMapIterator[MClass, Int]> */
5468 RET_LABEL474
:(void)0;
5472 var476
= varonce475
;
5476 var479
= string__NativeString__to_s_with_length(var477
, var478
);
5478 varonce475
= var476
;
5481 var481
= varonce480
;
5485 var484
= string__NativeString__to_s_with_length(var482
, var483
);
5487 varonce480
= var481
;
5490 var485
= string__Collection__join(var_s
, var481
);
5493 var487
= varonce486
;
5497 var490
= string__NativeString__to_s_with_length(var488
, var489
);
5499 varonce486
= var487
;
5501 var491
= NEW_array__Array(&type_array__Arraykernel__Object
);
5502 { /* var491 = array_instance Array[Object] */
5504 var493
= NEW_array__NativeArray(var492
, &type_array__NativeArraykernel__Object
);
5505 ((struct instance_array__NativeArray
*)var493
)->values
[0] = (val
*) var476
;
5506 ((struct instance_array__NativeArray
*)var493
)->values
[1] = (val
*) var485
;
5507 ((struct instance_array__NativeArray
*)var493
)->values
[2] = (val
*) var487
;
5509 ((void (*)(val
*, val
*, long))(var491
->class->vft
[COLOR_array__Array__with_native
]))(var491
, var493
, var492
) /* with_native on <var491:Array[Object]>*/;
5513 var494
= ((val
* (*)(val
*))(var491
->class->vft
[COLOR_string__Object__to_s
]))(var491
) /* to_s on <var491:Array[Object]>*/;
5516 array__Array__add(var_test
, var494
); /* Direct call array#Array#add on <var_test:Array[String]>*/
5520 var496
= varonce495
;
5524 var499
= string__NativeString__to_s_with_length(var497
, var498
);
5526 varonce495
= var496
;
5529 var501
= varonce500
;
5533 var504
= string__NativeString__to_s_with_length(var502
, var503
);
5535 varonce500
= var501
;
5538 var506
= varonce505
;
5542 var509
= string__NativeString__to_s_with_length(var507
, var508
);
5544 varonce505
= var506
;
5546 var510
= NEW_array__Array(&type_array__Arraykernel__Object
);
5547 { /* var510 = array_instance Array[Object] */
5549 var512
= NEW_array__NativeArray(var511
, &type_array__NativeArraykernel__Object
);
5550 ((struct instance_array__NativeArray
*)var512
)->values
[0] = (val
*) var_res
;
5551 ((struct instance_array__NativeArray
*)var512
)->values
[1] = (val
*) var496
;
5552 ((struct instance_array__NativeArray
*)var512
)->values
[2] = (val
*) var_value1
;
5553 ((struct instance_array__NativeArray
*)var512
)->values
[3] = (val
*) var501
;
5554 ((struct instance_array__NativeArray
*)var512
)->values
[4] = (val
*) var_value2
;
5555 ((struct instance_array__NativeArray
*)var512
)->values
[5] = (val
*) var506
;
5557 ((void (*)(val
*, val
*, long))(var510
->class->vft
[COLOR_array__Array__with_native
]))(var510
, var512
, var511
) /* with_native on <var510:Array[Object]>*/;
5561 var513
= ((val
* (*)(val
*))(var510
->class->vft
[COLOR_string__Object__to_s
]))(var510
) /* to_s on <var510:Array[Object]>*/;
5564 abstract_compiler__AbstractCompilerVisitor__add(self
, var513
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <self:SeparateCompilerVisitor>*/
5571 var515
= varonce514
;
5575 var518
= string__NativeString__to_s_with_length(var516
, var517
);
5577 varonce514
= var515
;
5580 var520
= varonce519
;
5584 var523
= string__NativeString__to_s_with_length(var521
, var522
);
5586 varonce519
= var520
;
5589 var525
= varonce524
;
5593 var528
= string__NativeString__to_s_with_length(var526
, var527
);
5595 varonce524
= var525
;
5598 var530
= varonce529
;
5602 var533
= string__NativeString__to_s_with_length(var531
, var532
);
5604 varonce529
= var530
;
5607 var534
= string__Collection__join(var_test
, var530
);
5610 var536
= varonce535
;
5614 var539
= string__NativeString__to_s_with_length(var537
, var538
);
5616 varonce535
= var536
;
5618 var540
= NEW_array__Array(&type_array__Arraykernel__Object
);
5619 { /* var540 = array_instance Array[Object] */
5621 var542
= NEW_array__NativeArray(var541
, &type_array__NativeArraykernel__Object
);
5622 ((struct instance_array__NativeArray
*)var542
)->values
[0] = (val
*) var_res
;
5623 ((struct instance_array__NativeArray
*)var542
)->values
[1] = (val
*) var515
;
5624 ((struct instance_array__NativeArray
*)var542
)->values
[2] = (val
*) var_value1
;
5625 ((struct instance_array__NativeArray
*)var542
)->values
[3] = (val
*) var520
;
5626 ((struct instance_array__NativeArray
*)var542
)->values
[4] = (val
*) var_value2
;
5627 ((struct instance_array__NativeArray
*)var542
)->values
[5] = (val
*) var525
;
5628 ((struct instance_array__NativeArray
*)var542
)->values
[6] = (val
*) var534
;
5629 ((struct instance_array__NativeArray
*)var542
)->values
[7] = (val
*) var536
;
5631 ((void (*)(val
*, val
*, long))(var540
->class->vft
[COLOR_array__Array__with_native
]))(var540
, var542
, var541
) /* with_native on <var540:Array[Object]>*/;
5635 var543
= ((val
* (*)(val
*))(var540
->class->vft
[COLOR_string__Object__to_s
]))(var540
) /* to_s on <var540:Array[Object]>*/;
5638 abstract_compiler__AbstractCompilerVisitor__add(self
, var543
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <self:SeparateCompilerVisitor>*/
5645 /* method separate_compiler#SeparateCompilerVisitor#equal_test for (self: Object, RuntimeVariable, RuntimeVariable): RuntimeVariable */
5646 val
* VIRTUAL_separate_compiler__SeparateCompilerVisitor__equal_test(val
* self
, val
* p0
, val
* p1
) {
5647 val
* var
/* : RuntimeVariable */;
5648 val
* var1
/* : RuntimeVariable */;
5649 var1
= separate_compiler__SeparateCompilerVisitor__equal_test(self
, p0
, p1
);
5654 /* method separate_compiler#SeparateCompilerVisitor#can_be_primitive for (self: SeparateCompilerVisitor, RuntimeVariable): Bool */
5655 short int separate_compiler__SeparateCompilerVisitor__can_be_primitive(val
* self
, val
* p0
) {
5656 short int var
/* : Bool */;
5657 val
* var_value
/* var value: RuntimeVariable */;
5658 val
* var1
/* : MType */;
5659 val
* var3
/* : MType */;
5660 val
* var4
/* : MType */;
5661 val
* var_t
/* var t: MType */;
5662 short int var5
/* : Bool */;
5665 short int var6
/* : Bool */;
5666 short int var7
/* : Bool */;
5667 val
* var8
/* : MClass */;
5668 val
* var10
/* : MClass */;
5669 val
* var11
/* : MClassKind */;
5670 val
* var13
/* : MClassKind */;
5671 val
* var_k
/* var k: MClassKind */;
5672 short int var14
/* : Bool */;
5673 val
* var15
/* : MClassKind */;
5674 short int var16
/* : Bool */;
5675 short int var17
/* : Bool */;
5676 val
* var_other
/* var other: nullable Object */;
5677 short int var19
/* : Bool */;
5678 short int var21
/* : Bool */;
5679 short int var_
/* var : Bool */;
5680 val
* var22
/* : String */;
5681 static val
* varonce
;
5682 val
* var23
/* : String */;
5683 char* var24
/* : NativeString */;
5684 long var25
/* : Int */;
5685 val
* var26
/* : FlatString */;
5686 short int var27
/* : Bool */;
5687 short int var28
/* : Bool */;
5688 val
* var_other30
/* var other: nullable Object */;
5689 short int var31
/* : Bool */;
5690 short int var32
/* : Bool */;
5691 short int var33
/* : Bool */;
5694 { /* Inline abstract_compiler#RuntimeVariable#mcasttype (var_value) on <var_value:RuntimeVariable> */
5695 var3
= var_value
->attrs
[COLOR_abstract_compiler__RuntimeVariable___mcasttype
].val
; /* _mcasttype on <var_value:RuntimeVariable> */
5696 if (unlikely(var3
== NULL
)) {
5697 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mcasttype");
5698 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 1637);
5706 var4
= ((val
* (*)(val
*))(var1
->class->vft
[COLOR_model__MType__as_notnullable
]))(var1
) /* as_notnullable on <var1:MType>*/;
5709 /* <var_t:MType> isa MClassType */
5710 cltype
= type_model__MClassType
.color
;
5711 idtype
= type_model__MClassType
.id
;
5712 if(cltype
>= var_t
->type
->table_size
) {
5715 var5
= var_t
->type
->type_table
[cltype
] == idtype
;
5725 { /* Inline model#MClassType#mclass (var_t) on <var_t:MType(MClassType)> */
5726 var10
= var_t
->attrs
[COLOR_model__MClassType___mclass
].val
; /* _mclass on <var_t:MType(MClassType)> */
5727 if (unlikely(var10
== NULL
)) {
5728 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
5729 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 986);
5737 { /* Inline model#MClass#kind (var8) on <var8:MClass> */
5738 var13
= var8
->attrs
[COLOR_model__MClass___kind
].val
; /* _kind on <var8:MClass> */
5739 if (unlikely(var13
== NULL
)) {
5740 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _kind");
5741 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 371);
5745 RET_LABEL12
:(void)0;
5750 var15
= model__Object__interface_kind(self
);
5753 { /* Inline kernel#Object#== (var_k,var15) on <var_k:MClassKind> */
5756 { /* Inline kernel#Object#is_same_instance (var_k,var_other) on <var_k:MClassKind> */
5757 var21
= var_k
== var_other
;
5760 RET_LABEL20
:(void)0;
5765 RET_LABEL18
:(void)0;
5774 var22
= abstract_compiler__MClassType__ctype(var_t
);
5781 var26
= string__NativeString__to_s_with_length(var24
, var25
);
5786 { /* Inline kernel#Object#!= (var22,var23) on <var22:String> */
5787 var_other30
= var23
;
5789 var32
= ((short int (*)(val
*, val
*))(var22
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var22
, var_other30
) /* == on <var22:String>*/;
5795 RET_LABEL29
:(void)0;
5806 /* method separate_compiler#SeparateCompilerVisitor#can_be_primitive for (self: Object, RuntimeVariable): Bool */
5807 short int VIRTUAL_separate_compiler__SeparateCompilerVisitor__can_be_primitive(val
* self
, val
* p0
) {
5808 short int var
/* : Bool */;
5809 short int var1
/* : Bool */;
5810 var1
= separate_compiler__SeparateCompilerVisitor__can_be_primitive(self
, p0
);
5815 /* method separate_compiler#SeparateCompilerVisitor#maybe_null for (self: SeparateCompilerVisitor, RuntimeVariable): Bool */
5816 short int separate_compiler__SeparateCompilerVisitor__maybe_null(val
* self
, val
* p0
) {
5817 short int var
/* : Bool */;
5818 val
* var_value
/* var value: RuntimeVariable */;
5819 val
* var1
/* : MType */;
5820 val
* var3
/* : MType */;
5821 val
* var_t
/* var t: MType */;
5822 short int var4
/* : Bool */;
5823 short int var5
/* : Bool */;
5826 short int var_
/* var : Bool */;
5827 short int var6
/* : Bool */;
5832 { /* Inline abstract_compiler#RuntimeVariable#mcasttype (var_value) on <var_value:RuntimeVariable> */
5833 var3
= var_value
->attrs
[COLOR_abstract_compiler__RuntimeVariable___mcasttype
].val
; /* _mcasttype on <var_value:RuntimeVariable> */
5834 if (unlikely(var3
== NULL
)) {
5835 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mcasttype");
5836 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 1637);
5844 /* <var_t:MType> isa MNullableType */
5845 cltype
= type_model__MNullableType
.color
;
5846 idtype
= type_model__MNullableType
.id
;
5847 if(cltype
>= var_t
->type
->table_size
) {
5850 var5
= var_t
->type
->type_table
[cltype
] == idtype
;
5856 /* <var_t:MType> isa MNullType */
5857 cltype7
= type_model__MNullType
.color
;
5858 idtype8
= type_model__MNullType
.id
;
5859 if(cltype7
>= var_t
->type
->table_size
) {
5862 var6
= var_t
->type
->type_table
[cltype7
] == idtype8
;
5871 /* method separate_compiler#SeparateCompilerVisitor#maybe_null for (self: Object, RuntimeVariable): Bool */
5872 short int VIRTUAL_separate_compiler__SeparateCompilerVisitor__maybe_null(val
* self
, val
* p0
) {
5873 short int var
/* : Bool */;
5874 short int var1
/* : Bool */;
5875 var1
= separate_compiler__SeparateCompilerVisitor__maybe_null(self
, p0
);
5880 /* method separate_compiler#SeparateCompilerVisitor#array_instance for (self: SeparateCompilerVisitor, Array[RuntimeVariable], MType): RuntimeVariable */
5881 val
* separate_compiler__SeparateCompilerVisitor__array_instance(val
* self
, val
* p0
, val
* p1
) {
5882 val
* var
/* : RuntimeVariable */;
5883 val
* var_array
/* var array: Array[RuntimeVariable] */;
5884 val
* var_elttype
/* var elttype: MType */;
5885 static val
* varonce
;
5886 val
* var1
/* : String */;
5887 char* var2
/* : NativeString */;
5888 long var3
/* : Int */;
5889 val
* var4
/* : FlatString */;
5890 val
* var5
/* : MClass */;
5891 val
* var_nclass
/* var nclass: MClass */;
5892 static val
* varonce6
;
5893 val
* var7
/* : String */;
5894 char* var8
/* : NativeString */;
5895 long var9
/* : Int */;
5896 val
* var10
/* : FlatString */;
5897 val
* var11
/* : MClass */;
5898 val
* var_arrayclass
/* var arrayclass: MClass */;
5899 val
* var12
/* : Array[MType] */;
5900 long var13
/* : Int */;
5901 val
* var_
/* var : Array[MType] */;
5902 val
* var14
/* : MClassType */;
5903 val
* var_arraytype
/* var arraytype: MClassType */;
5904 val
* var15
/* : RuntimeVariable */;
5905 val
* var_res
/* var res: RuntimeVariable */;
5906 static val
* varonce16
;
5907 val
* var17
/* : String */;
5908 char* var18
/* : NativeString */;
5909 long var19
/* : Int */;
5910 val
* var20
/* : FlatString */;
5911 static val
* varonce21
;
5912 val
* var22
/* : String */;
5913 char* var23
/* : NativeString */;
5914 long var24
/* : Int */;
5915 val
* var25
/* : FlatString */;
5916 static val
* varonce26
;
5917 val
* var27
/* : String */;
5918 char* var28
/* : NativeString */;
5919 long var29
/* : Int */;
5920 val
* var30
/* : FlatString */;
5921 val
* var31
/* : Array[Object] */;
5922 long var32
/* : Int */;
5923 val
* var33
/* : NativeArray[Object] */;
5924 val
* var34
/* : String */;
5925 long var35
/* : Int */;
5926 long var37
/* : Int */;
5927 val
* var38
/* : RuntimeVariable */;
5928 val
* var_length
/* var length: RuntimeVariable */;
5929 val
* var39
/* : RuntimeVariable */;
5930 val
* var_nat
/* var nat: RuntimeVariable */;
5931 long var40
/* : Int */;
5932 long var_i
/* var i: Int */;
5933 long var41
/* : Int */;
5934 long var43
/* : Int */;
5935 long var_44
/* var : Int */;
5936 short int var45
/* : Bool */;
5937 short int var47
/* : Bool */;
5940 const char* var_class_name
;
5941 short int var48
/* : Bool */;
5942 val
* var49
/* : nullable Object */;
5943 val
* var50
/* : MClassType */;
5944 val
* var51
/* : RuntimeVariable */;
5945 val
* var_r
/* var r: RuntimeVariable */;
5946 static val
* varonce52
;
5947 val
* var53
/* : String */;
5948 char* var54
/* : NativeString */;
5949 long var55
/* : Int */;
5950 val
* var56
/* : FlatString */;
5951 val
* var57
/* : String */;
5952 static val
* varonce58
;
5953 val
* var59
/* : String */;
5954 char* var60
/* : NativeString */;
5955 long var61
/* : Int */;
5956 val
* var62
/* : FlatString */;
5957 static val
* varonce63
;
5958 val
* var64
/* : String */;
5959 char* var65
/* : NativeString */;
5960 long var66
/* : Int */;
5961 val
* var67
/* : FlatString */;
5962 static val
* varonce68
;
5963 val
* var69
/* : String */;
5964 char* var70
/* : NativeString */;
5965 long var71
/* : Int */;
5966 val
* var72
/* : FlatString */;
5967 static val
* varonce73
;
5968 val
* var74
/* : String */;
5969 char* var75
/* : NativeString */;
5970 long var76
/* : Int */;
5971 val
* var77
/* : FlatString */;
5972 val
* var78
/* : Array[Object] */;
5973 long var79
/* : Int */;
5974 val
* var80
/* : NativeArray[Object] */;
5975 val
* var81
/* : Object */;
5976 val
* var82
/* : String */;
5977 long var83
/* : Int */;
5978 long var84
/* : Int */;
5979 static val
* varonce85
;
5980 val
* var86
/* : String */;
5981 char* var87
/* : NativeString */;
5982 long var88
/* : Int */;
5983 val
* var89
/* : FlatString */;
5984 val
* var90
/* : MClassDef */;
5985 val
* var92
/* : MClassDef */;
5986 val
* var93
/* : MClassType */;
5987 val
* var95
/* : MClassType */;
5988 val
* var96
/* : MMethod */;
5989 val
* var97
/* : Array[RuntimeVariable] */;
5990 long var98
/* : Int */;
5991 val
* var_99
/* var : Array[RuntimeVariable] */;
5992 val
* var100
/* : nullable RuntimeVariable */;
5993 static val
* varonce101
;
5994 val
* var102
/* : String */;
5995 char* var103
/* : NativeString */;
5996 long var104
/* : Int */;
5997 val
* var105
/* : FlatString */;
6003 var2
= "NativeArray";
6005 var4
= string__NativeString__to_s_with_length(var2
, var3
);
6010 var5
= abstract_compiler__AbstractCompilerVisitor__get_class(self
, var1
);
6018 var10
= string__NativeString__to_s_with_length(var8
, var9
);
6023 var11
= abstract_compiler__AbstractCompilerVisitor__get_class(self
, var7
);
6025 var_arrayclass
= var11
;
6026 var12
= NEW_array__Array(&type_array__Arraymodel__MType
);
6029 array__Array__with_capacity(var12
, var13
); /* Direct call array#Array#with_capacity on <var12:Array[MType]>*/
6033 array__AbstractArray__push(var_
, var_elttype
); /* Direct call array#AbstractArray#push on <var_:Array[MType]>*/
6036 var14
= model__MClass__get_mtype(var_arrayclass
, var_
);
6038 var_arraytype
= var14
;
6040 var15
= ((val
* (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__init_instance
]))(self
, var_arraytype
) /* init_instance on <self:SeparateCompilerVisitor>*/;
6048 var20
= string__NativeString__to_s_with_length(var18
, var19
);
6055 var23
= " = array_instance Array[";
6057 var25
= string__NativeString__to_s_with_length(var23
, var24
);
6066 var30
= string__NativeString__to_s_with_length(var28
, var29
);
6070 var31
= NEW_array__Array(&type_array__Arraykernel__Object
);
6071 { /* var31 = array_instance Array[Object] */
6073 var33
= NEW_array__NativeArray(var32
, &type_array__NativeArraykernel__Object
);
6074 ((struct instance_array__NativeArray
*)var33
)->values
[0] = (val
*) var17
;
6075 ((struct instance_array__NativeArray
*)var33
)->values
[1] = (val
*) var_res
;
6076 ((struct instance_array__NativeArray
*)var33
)->values
[2] = (val
*) var22
;
6077 ((struct instance_array__NativeArray
*)var33
)->values
[3] = (val
*) var_elttype
;
6078 ((struct instance_array__NativeArray
*)var33
)->values
[4] = (val
*) var27
;
6080 ((void (*)(val
*, val
*, long))(var31
->class->vft
[COLOR_array__Array__with_native
]))(var31
, var33
, var32
) /* with_native on <var31:Array[Object]>*/;
6084 var34
= ((val
* (*)(val
*))(var31
->class->vft
[COLOR_string__Object__to_s
]))(var31
) /* to_s on <var31:Array[Object]>*/;
6087 abstract_compiler__AbstractCompilerVisitor__add(self
, var34
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <self:SeparateCompilerVisitor>*/
6090 { /* Inline array#AbstractArrayRead#length (var_array) on <var_array:Array[RuntimeVariable]> */
6091 var37
= var_array
->attrs
[COLOR_array__AbstractArrayRead___length
].l
; /* _length on <var_array:Array[RuntimeVariable]> */
6093 RET_LABEL36
:(void)0;
6097 var38
= abstract_compiler__AbstractCompilerVisitor__int_instance(self
, var35
);
6101 var39
= ((val
* (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__native_array_instance
]))(self
, var_elttype
, var_length
) /* native_array_instance on <self:SeparateCompilerVisitor>*/;
6107 { /* Inline array#AbstractArrayRead#length (var_array) on <var_array:Array[RuntimeVariable]> */
6108 var43
= var_array
->attrs
[COLOR_array__AbstractArrayRead___length
].l
; /* _length on <var_array:Array[RuntimeVariable]> */
6110 RET_LABEL42
:(void)0;
6116 { /* Inline kernel#Int#< (var_i,var_44) on <var_i:Int> */
6117 /* Covariant cast for argument 0 (i) <var_44:Int> isa OTHER */
6118 /* <var_44:Int> isa OTHER */
6119 var47
= 1; /* easy <var_44:Int> isa OTHER*/
6120 if (unlikely(!var47
)) {
6121 var_class_name
= type_kernel__Int
.name
;
6122 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name
);
6123 PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 371);
6126 var48
= var_i
< var_44
;
6129 RET_LABEL46
:(void)0;
6134 var49
= array__Array___91d_93d(var_array
, var_i
);
6137 var50
= abstract_compiler__AbstractCompilerVisitor__object_type(self
);
6140 var51
= separate_compiler__SeparateCompilerVisitor__autobox(self
, var49
, var50
);
6146 var54
= "((struct instance_";
6148 var56
= string__NativeString__to_s_with_length(var54
, var55
);
6153 var57
= abstract_compiler__MClass__c_name(var_nclass
);
6160 var62
= string__NativeString__to_s_with_length(var60
, var61
);
6167 var65
= ")->values[";
6169 var67
= string__NativeString__to_s_with_length(var65
, var66
);
6176 var70
= "] = (val*) ";
6178 var72
= string__NativeString__to_s_with_length(var70
, var71
);
6187 var77
= string__NativeString__to_s_with_length(var75
, var76
);
6191 var78
= NEW_array__Array(&type_array__Arraykernel__Object
);
6192 { /* var78 = array_instance Array[Object] */
6194 var80
= NEW_array__NativeArray(var79
, &type_array__NativeArraykernel__Object
);
6195 ((struct instance_array__NativeArray
*)var80
)->values
[0] = (val
*) var53
;
6196 ((struct instance_array__NativeArray
*)var80
)->values
[1] = (val
*) var57
;
6197 ((struct instance_array__NativeArray
*)var80
)->values
[2] = (val
*) var59
;
6198 ((struct instance_array__NativeArray
*)var80
)->values
[3] = (val
*) var_nat
;
6199 ((struct instance_array__NativeArray
*)var80
)->values
[4] = (val
*) var64
;
6200 var81
= BOX_kernel__Int(var_i
); /* autobox from Int to Object */
6201 ((struct instance_array__NativeArray
*)var80
)->values
[5] = (val
*) var81
;
6202 ((struct instance_array__NativeArray
*)var80
)->values
[6] = (val
*) var69
;
6203 ((struct instance_array__NativeArray
*)var80
)->values
[7] = (val
*) var_r
;
6204 ((struct instance_array__NativeArray
*)var80
)->values
[8] = (val
*) var74
;
6206 ((void (*)(val
*, val
*, long))(var78
->class->vft
[COLOR_array__Array__with_native
]))(var78
, var80
, var79
) /* with_native on <var78:Array[Object]>*/;
6210 var82
= ((val
* (*)(val
*))(var78
->class->vft
[COLOR_string__Object__to_s
]))(var78
) /* to_s on <var78:Array[Object]>*/;
6213 abstract_compiler__AbstractCompilerVisitor__add(self
, var82
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <self:SeparateCompilerVisitor>*/
6217 var84
= kernel__Int__successor(var_i
, var83
);
6224 BREAK_label
: (void)0;
6228 var87
= "with_native";
6230 var89
= string__NativeString__to_s_with_length(var87
, var88
);
6235 { /* Inline model#MClass#intro (var_arrayclass) on <var_arrayclass:MClass> */
6236 var92
= var_arrayclass
->attrs
[COLOR_model__MClass___intro
].val
; /* _intro on <var_arrayclass:MClass> */
6237 if (unlikely(var92
== NULL
)) {
6238 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro");
6239 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 420);
6243 RET_LABEL91
:(void)0;
6247 { /* Inline model#MClassDef#bound_mtype (var90) on <var90:MClassDef> */
6248 var95
= var90
->attrs
[COLOR_model__MClassDef___bound_mtype
].val
; /* _bound_mtype on <var90:MClassDef> */
6249 if (unlikely(var95
== NULL
)) {
6250 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _bound_mtype");
6251 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 495);
6255 RET_LABEL94
:(void)0;
6259 var96
= abstract_compiler__AbstractCompilerVisitor__get_property(self
, var86
, var93
);
6261 var97
= NEW_array__Array(&type_array__Arrayabstract_compiler__RuntimeVariable
);
6264 array__Array__with_capacity(var97
, var98
); /* Direct call array#Array#with_capacity on <var97:Array[RuntimeVariable]>*/
6268 array__AbstractArray__push(var_99
, var_res
); /* Direct call array#AbstractArray#push on <var_99:Array[RuntimeVariable]>*/
6271 array__AbstractArray__push(var_99
, var_nat
); /* Direct call array#AbstractArray#push on <var_99:Array[RuntimeVariable]>*/
6274 array__AbstractArray__push(var_99
, var_length
); /* Direct call array#AbstractArray#push on <var_99:Array[RuntimeVariable]>*/
6277 var100
= separate_compiler__SeparateCompilerVisitor__send(self
, var96
, var_99
);
6280 var102
= varonce101
;
6284 var105
= string__NativeString__to_s_with_length(var103
, var104
);
6286 varonce101
= var102
;
6289 abstract_compiler__AbstractCompilerVisitor__add(self
, var102
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <self:SeparateCompilerVisitor>*/
6296 /* method separate_compiler#SeparateCompilerVisitor#array_instance for (self: Object, Array[RuntimeVariable], MType): RuntimeVariable */
6297 val
* VIRTUAL_separate_compiler__SeparateCompilerVisitor__array_instance(val
* self
, val
* p0
, val
* p1
) {
6298 val
* var
/* : RuntimeVariable */;
6299 val
* var1
/* : RuntimeVariable */;
6300 var1
= separate_compiler__SeparateCompilerVisitor__array_instance(self
, p0
, p1
);
6305 /* method separate_compiler#SeparateCompilerVisitor#native_array_instance for (self: SeparateCompilerVisitor, MType, RuntimeVariable): RuntimeVariable */
6306 val
* separate_compiler__SeparateCompilerVisitor__native_array_instance(val
* self
, val
* p0
, val
* p1
) {
6307 val
* var
/* : RuntimeVariable */;
6308 val
* var_elttype
/* var elttype: MType */;
6309 val
* var_length
/* var length: RuntimeVariable */;
6310 static val
* varonce
;
6311 val
* var1
/* : String */;
6312 char* var2
/* : NativeString */;
6313 long var3
/* : Int */;
6314 val
* var4
/* : FlatString */;
6315 val
* var5
/* : MClass */;
6316 val
* var6
/* : Array[MType] */;
6317 long var7
/* : Int */;
6318 val
* var_
/* var : Array[MType] */;
6319 val
* var8
/* : MClassType */;
6320 val
* var_mtype
/* var mtype: MClassType */;
6321 static val
* varonce9
;
6322 val
* var10
/* : String */;
6323 char* var11
/* : NativeString */;
6324 long var12
/* : Int */;
6325 val
* var13
/* : FlatString */;
6326 val
* var14
/* : MClass */;
6327 val
* var16
/* : MClass */;
6328 val
* var17
/* : String */;
6329 val
* var18
/* : Array[Object] */;
6330 long var19
/* : Int */;
6331 val
* var20
/* : NativeArray[Object] */;
6332 val
* var21
/* : String */;
6333 short int var22
/* : Bool */;
6336 val
* var23
/* : AbstractCompiler */;
6337 val
* var25
/* : AbstractCompiler */;
6338 val
* var_compiler
/* var compiler: SeparateCompiler */;
6339 short int var26
/* : Bool */;
6340 short int var28
/* : Bool */;
6341 val
* var29
/* : nullable Frame */;
6342 val
* var31
/* : nullable Frame */;
6343 val
* var32
/* : MPropDef */;
6344 val
* var34
/* : MPropDef */;
6345 val
* var35
/* : MClassDef */;
6346 val
* var37
/* : MClassDef */;
6347 val
* var38
/* : nullable Frame */;
6348 val
* var40
/* : nullable Frame */;
6349 val
* var41
/* : Array[RuntimeVariable] */;
6350 val
* var43
/* : Array[RuntimeVariable] */;
6351 val
* var44
/* : nullable Object */;
6352 val
* var_recv
/* var recv: RuntimeVariable */;
6353 val
* var45
/* : String */;
6354 val
* var_recv_type_info
/* var recv_type_info: String */;
6355 val
* var46
/* : String */;
6356 static val
* varonce47
;
6357 val
* var48
/* : String */;
6358 char* var49
/* : NativeString */;
6359 long var50
/* : Int */;
6360 val
* var51
/* : FlatString */;
6361 val
* var52
/* : MClass */;
6362 val
* var54
/* : MClass */;
6363 val
* var55
/* : String */;
6364 static val
* varonce56
;
6365 val
* var57
/* : String */;
6366 char* var58
/* : NativeString */;
6367 long var59
/* : Int */;
6368 val
* var60
/* : FlatString */;
6369 static val
* varonce61
;
6370 val
* var62
/* : String */;
6371 char* var63
/* : NativeString */;
6372 long var64
/* : Int */;
6373 val
* var65
/* : FlatString */;
6374 static val
* varonce66
;
6375 val
* var67
/* : String */;
6376 char* var68
/* : NativeString */;
6377 long var69
/* : Int */;
6378 val
* var70
/* : FlatString */;
6379 val
* var71
/* : String */;
6380 static val
* varonce72
;
6381 val
* var73
/* : String */;
6382 char* var74
/* : NativeString */;
6383 long var75
/* : Int */;
6384 val
* var76
/* : FlatString */;
6385 val
* var77
/* : Array[Object] */;
6386 long var78
/* : Int */;
6387 val
* var79
/* : NativeArray[Object] */;
6388 val
* var80
/* : String */;
6389 val
* var81
/* : RuntimeVariable */;
6390 val
* var82
/* : Set[MType] */;
6391 val
* var84
/* : Set[MType] */;
6392 static val
* varonce85
;
6393 val
* var86
/* : String */;
6394 char* var87
/* : NativeString */;
6395 long var88
/* : Int */;
6396 val
* var89
/* : FlatString */;
6397 val
* var90
/* : String */;
6398 val
* var91
/* : Array[Object] */;
6399 long var92
/* : Int */;
6400 val
* var93
/* : NativeArray[Object] */;
6401 val
* var94
/* : String */;
6402 static val
* varonce95
;
6403 val
* var96
/* : String */;
6404 char* var97
/* : NativeString */;
6405 long var98
/* : Int */;
6406 val
* var99
/* : FlatString */;
6407 val
* var100
/* : MClass */;
6408 val
* var102
/* : MClass */;
6409 val
* var103
/* : String */;
6410 static val
* varonce104
;
6411 val
* var105
/* : String */;
6412 char* var106
/* : NativeString */;
6413 long var107
/* : Int */;
6414 val
* var108
/* : FlatString */;
6415 static val
* varonce109
;
6416 val
* var110
/* : String */;
6417 char* var111
/* : NativeString */;
6418 long var112
/* : Int */;
6419 val
* var113
/* : FlatString */;
6420 val
* var114
/* : String */;
6421 static val
* varonce115
;
6422 val
* var116
/* : String */;
6423 char* var117
/* : NativeString */;
6424 long var118
/* : Int */;
6425 val
* var119
/* : FlatString */;
6426 val
* var120
/* : Array[Object] */;
6427 long var121
/* : Int */;
6428 val
* var122
/* : NativeArray[Object] */;
6429 val
* var123
/* : String */;
6430 val
* var124
/* : RuntimeVariable */;
6436 var2
= "NativeArray";
6438 var4
= string__NativeString__to_s_with_length(var2
, var3
);
6443 var5
= abstract_compiler__AbstractCompilerVisitor__get_class(self
, var1
);
6445 var6
= NEW_array__Array(&type_array__Arraymodel__MType
);
6448 array__Array__with_capacity(var6
, var7
); /* Direct call array#Array#with_capacity on <var6:Array[MType]>*/
6452 array__AbstractArray__push(var_
, var_elttype
); /* Direct call array#AbstractArray#push on <var_:Array[MType]>*/
6455 var8
= model__MClass__get_mtype(var5
, var_
);
6463 var13
= string__NativeString__to_s_with_length(var11
, var12
);
6468 { /* Inline model#MClassType#mclass (var_mtype) on <var_mtype:MClassType> */
6469 var16
= var_mtype
->attrs
[COLOR_model__MClassType___mclass
].val
; /* _mclass on <var_mtype:MClassType> */
6470 if (unlikely(var16
== NULL
)) {
6471 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
6472 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 986);
6476 RET_LABEL15
:(void)0;
6480 var17
= abstract_compiler__MClass__c_name(var14
);
6482 var18
= NEW_array__Array(&type_array__Arraykernel__Object
);
6483 { /* var18 = array_instance Array[Object] */
6485 var20
= NEW_array__NativeArray(var19
, &type_array__NativeArraykernel__Object
);
6486 ((struct instance_array__NativeArray
*)var20
)->values
[0] = (val
*) var10
;
6487 ((struct instance_array__NativeArray
*)var20
)->values
[1] = (val
*) var17
;
6489 ((void (*)(val
*, val
*, long))(var18
->class->vft
[COLOR_array__Array__with_native
]))(var18
, var20
, var19
) /* with_native on <var18:Array[Object]>*/;
6493 var21
= ((val
* (*)(val
*))(var18
->class->vft
[COLOR_string__Object__to_s
]))(var18
) /* to_s on <var18:Array[Object]>*/;
6496 abstract_compiler__AbstractCompilerVisitor__require_declaration(self
, var21
); /* Direct call abstract_compiler#AbstractCompilerVisitor#require_declaration on <self:SeparateCompilerVisitor>*/
6498 /* <var_mtype:MClassType> isa MGenericType */
6499 cltype
= type_model__MGenericType
.color
;
6500 idtype
= type_model__MGenericType
.id
;
6501 if(cltype
>= var_mtype
->type
->table_size
) {
6504 var22
= var_mtype
->type
->type_table
[cltype
] == idtype
;
6506 if (unlikely(!var22
)) {
6507 PRINT_ERROR("Runtime error: %s", "Assert failed");
6508 PRINT_ERROR(" (%s:%d)\n", "compiler/separate_compiler.nit", 1715);
6512 { /* Inline abstract_compiler#AbstractCompilerVisitor#compiler (self) on <self:SeparateCompilerVisitor> */
6513 var25
= self
->attrs
[COLOR_abstract_compiler__AbstractCompilerVisitor___compiler
].val
; /* _compiler on <self:SeparateCompilerVisitor> */
6514 if (unlikely(var25
== NULL
)) {
6515 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _compiler");
6516 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 1041);
6520 RET_LABEL24
:(void)0;
6523 var_compiler
= var23
;
6525 { /* Inline model#MGenericType#need_anchor (var_mtype) on <var_mtype:MClassType(MGenericType)> */
6526 var28
= var_mtype
->attrs
[COLOR_model__MGenericType___need_anchor
].s
; /* _need_anchor on <var_mtype:MClassType(MGenericType)> */
6528 RET_LABEL27
:(void)0;
6533 separate_compiler__SeparateCompilerVisitor__hardening_live_open_type(self
, var_mtype
); /* Direct call separate_compiler#SeparateCompilerVisitor#hardening_live_open_type on <self:SeparateCompilerVisitor>*/
6536 { /* Inline abstract_compiler#AbstractCompilerVisitor#frame (self) on <self:SeparateCompilerVisitor> */
6537 var31
= self
->attrs
[COLOR_abstract_compiler__AbstractCompilerVisitor___frame
].val
; /* _frame on <self:SeparateCompilerVisitor> */
6539 RET_LABEL30
:(void)0;
6542 if (var29
== NULL
) {
6543 PRINT_ERROR("Runtime error: %s", "Receiver is null");
6544 PRINT_ERROR(" (%s:%d)\n", "compiler/separate_compiler.nit", 1719);
6547 { /* Inline abstract_compiler#Frame#mpropdef (var29) on <var29:nullable Frame> */
6548 if (unlikely(var29
== NULL
)) {
6549 PRINT_ERROR("Runtime error: %s", "Receiver is null");
6550 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 1681);
6553 var34
= var29
->attrs
[COLOR_abstract_compiler__Frame___mpropdef
].val
; /* _mpropdef on <var29:nullable Frame> */
6554 if (unlikely(var34
== NULL
)) {
6555 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mpropdef");
6556 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 1681);
6560 RET_LABEL33
:(void)0;
6564 { /* Inline model#MPropDef#mclassdef (var32) on <var32:MPropDef> */
6565 var37
= var32
->attrs
[COLOR_model__MPropDef___mclassdef
].val
; /* _mclassdef on <var32:MPropDef> */
6566 if (unlikely(var37
== NULL
)) {
6567 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdef");
6568 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1895);
6572 RET_LABEL36
:(void)0;
6576 separate_compiler__SeparateCompilerVisitor__link_unresolved_type(self
, var35
, var_mtype
); /* Direct call separate_compiler#SeparateCompilerVisitor#link_unresolved_type on <self:SeparateCompilerVisitor>*/
6579 { /* Inline abstract_compiler#AbstractCompilerVisitor#frame (self) on <self:SeparateCompilerVisitor> */
6580 var40
= self
->attrs
[COLOR_abstract_compiler__AbstractCompilerVisitor___frame
].val
; /* _frame on <self:SeparateCompilerVisitor> */
6582 RET_LABEL39
:(void)0;
6585 if (var38
== NULL
) {
6586 PRINT_ERROR("Runtime error: %s", "Receiver is null");
6587 PRINT_ERROR(" (%s:%d)\n", "compiler/separate_compiler.nit", 1720);
6590 { /* Inline abstract_compiler#Frame#arguments (var38) on <var38:nullable Frame> */
6591 if (unlikely(var38
== NULL
)) {
6592 PRINT_ERROR("Runtime error: %s", "Receiver is null");
6593 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 1688);
6596 var43
= var38
->attrs
[COLOR_abstract_compiler__Frame___arguments
].val
; /* _arguments on <var38:nullable Frame> */
6597 if (unlikely(var43
== NULL
)) {
6598 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _arguments");
6599 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 1688);
6603 RET_LABEL42
:(void)0;
6607 var44
= abstract_collection__SequenceRead__first(var41
);
6611 var45
= separate_compiler__SeparateCompilerVisitor__type_info(self
, var_recv
);
6613 var_recv_type_info
= var45
;
6615 var46
= separate_compiler__MType__const_color(var_mtype
);
6618 abstract_compiler__AbstractCompilerVisitor__require_declaration(self
, var46
); /* Direct call abstract_compiler#AbstractCompilerVisitor#require_declaration on <self:SeparateCompilerVisitor>*/
6625 var51
= string__NativeString__to_s_with_length(var49
, var50
);
6630 { /* Inline model#MClassType#mclass (var_mtype) on <var_mtype:MClassType(MGenericType)> */
6631 var54
= var_mtype
->attrs
[COLOR_model__MClassType___mclass
].val
; /* _mclass on <var_mtype:MClassType(MGenericType)> */
6632 if (unlikely(var54
== NULL
)) {
6633 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
6634 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 986);
6638 RET_LABEL53
:(void)0;
6642 var55
= abstract_compiler__MClass__c_name(var52
);
6649 var60
= string__NativeString__to_s_with_length(var58
, var59
);
6658 var65
= string__NativeString__to_s_with_length(var63
, var64
);
6665 var68
= "->resolution_table->types[";
6667 var70
= string__NativeString__to_s_with_length(var68
, var69
);
6672 var71
= separate_compiler__MType__const_color(var_mtype
);
6679 var76
= string__NativeString__to_s_with_length(var74
, var75
);
6683 var77
= NEW_array__Array(&type_array__Arraykernel__Object
);
6684 { /* var77 = array_instance Array[Object] */
6686 var79
= NEW_array__NativeArray(var78
, &type_array__NativeArraykernel__Object
);
6687 ((struct instance_array__NativeArray
*)var79
)->values
[0] = (val
*) var48
;
6688 ((struct instance_array__NativeArray
*)var79
)->values
[1] = (val
*) var55
;
6689 ((struct instance_array__NativeArray
*)var79
)->values
[2] = (val
*) var57
;
6690 ((struct instance_array__NativeArray
*)var79
)->values
[3] = (val
*) var_length
;
6691 ((struct instance_array__NativeArray
*)var79
)->values
[4] = (val
*) var62
;
6692 ((struct instance_array__NativeArray
*)var79
)->values
[5] = (val
*) var_recv_type_info
;
6693 ((struct instance_array__NativeArray
*)var79
)->values
[6] = (val
*) var67
;
6694 ((struct instance_array__NativeArray
*)var79
)->values
[7] = (val
*) var71
;
6695 ((struct instance_array__NativeArray
*)var79
)->values
[8] = (val
*) var73
;
6697 ((void (*)(val
*, val
*, long))(var77
->class->vft
[COLOR_array__Array__with_native
]))(var77
, var79
, var78
) /* with_native on <var77:Array[Object]>*/;
6701 var80
= ((val
* (*)(val
*))(var77
->class->vft
[COLOR_string__Object__to_s
]))(var77
) /* to_s on <var77:Array[Object]>*/;
6704 var81
= abstract_compiler__AbstractCompilerVisitor__new_expr(self
, var80
, var_mtype
);
6711 { /* Inline separate_compiler#SeparateCompiler#undead_types (var_compiler) on <var_compiler:SeparateCompiler> */
6712 var84
= var_compiler
->attrs
[COLOR_separate_compiler__SeparateCompiler___undead_types
].val
; /* _undead_types on <var_compiler:SeparateCompiler> */
6713 if (unlikely(var84
== NULL
)) {
6714 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _undead_types");
6715 PRINT_ERROR(" (%s:%d)\n", "compiler/separate_compiler.nit", 156);
6719 RET_LABEL83
:(void)0;
6723 ((void (*)(val
*, val
*))(var82
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var82
, var_mtype
) /* add on <var82:Set[MType]>*/;
6730 var89
= string__NativeString__to_s_with_length(var87
, var88
);
6735 var90
= abstract_compiler__MGenericType__c_name(var_mtype
);
6737 var91
= NEW_array__Array(&type_array__Arraykernel__Object
);
6738 { /* var91 = array_instance Array[Object] */
6740 var93
= NEW_array__NativeArray(var92
, &type_array__NativeArraykernel__Object
);
6741 ((struct instance_array__NativeArray
*)var93
)->values
[0] = (val
*) var86
;
6742 ((struct instance_array__NativeArray
*)var93
)->values
[1] = (val
*) var90
;
6744 ((void (*)(val
*, val
*, long))(var91
->class->vft
[COLOR_array__Array__with_native
]))(var91
, var93
, var92
) /* with_native on <var91:Array[Object]>*/;
6748 var94
= ((val
* (*)(val
*))(var91
->class->vft
[COLOR_string__Object__to_s
]))(var91
) /* to_s on <var91:Array[Object]>*/;
6751 abstract_compiler__AbstractCompilerVisitor__require_declaration(self
, var94
); /* Direct call abstract_compiler#AbstractCompilerVisitor#require_declaration on <self:SeparateCompilerVisitor>*/
6758 var99
= string__NativeString__to_s_with_length(var97
, var98
);
6763 { /* Inline model#MClassType#mclass (var_mtype) on <var_mtype:MClassType(MGenericType)> */
6764 var102
= var_mtype
->attrs
[COLOR_model__MClassType___mclass
].val
; /* _mclass on <var_mtype:MClassType(MGenericType)> */
6765 if (unlikely(var102
== NULL
)) {
6766 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
6767 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 986);
6771 RET_LABEL101
:(void)0;
6775 var103
= abstract_compiler__MClass__c_name(var100
);
6778 var105
= varonce104
;
6782 var108
= string__NativeString__to_s_with_length(var106
, var107
);
6784 varonce104
= var105
;
6787 var110
= varonce109
;
6789 var111
= ", &type_";
6791 var113
= string__NativeString__to_s_with_length(var111
, var112
);
6793 varonce109
= var110
;
6796 var114
= abstract_compiler__MGenericType__c_name(var_mtype
);
6799 var116
= varonce115
;
6803 var119
= string__NativeString__to_s_with_length(var117
, var118
);
6805 varonce115
= var116
;
6807 var120
= NEW_array__Array(&type_array__Arraykernel__Object
);
6808 { /* var120 = array_instance Array[Object] */
6810 var122
= NEW_array__NativeArray(var121
, &type_array__NativeArraykernel__Object
);
6811 ((struct instance_array__NativeArray
*)var122
)->values
[0] = (val
*) var96
;
6812 ((struct instance_array__NativeArray
*)var122
)->values
[1] = (val
*) var103
;
6813 ((struct instance_array__NativeArray
*)var122
)->values
[2] = (val
*) var105
;
6814 ((struct instance_array__NativeArray
*)var122
)->values
[3] = (val
*) var_length
;
6815 ((struct instance_array__NativeArray
*)var122
)->values
[4] = (val
*) var110
;
6816 ((struct instance_array__NativeArray
*)var122
)->values
[5] = (val
*) var114
;
6817 ((struct instance_array__NativeArray
*)var122
)->values
[6] = (val
*) var116
;
6819 ((void (*)(val
*, val
*, long))(var120
->class->vft
[COLOR_array__Array__with_native
]))(var120
, var122
, var121
) /* with_native on <var120:Array[Object]>*/;
6823 var123
= ((val
* (*)(val
*))(var120
->class->vft
[COLOR_string__Object__to_s
]))(var120
) /* to_s on <var120:Array[Object]>*/;
6826 var124
= abstract_compiler__AbstractCompilerVisitor__new_expr(self
, var123
, var_mtype
);
6833 /* method separate_compiler#SeparateCompilerVisitor#native_array_instance for (self: Object, MType, RuntimeVariable): RuntimeVariable */
6834 val
* VIRTUAL_separate_compiler__SeparateCompilerVisitor__native_array_instance(val
* self
, val
* p0
, val
* p1
) {
6835 val
* var
/* : RuntimeVariable */;
6836 val
* var1
/* : RuntimeVariable */;
6837 var1
= separate_compiler__SeparateCompilerVisitor__native_array_instance(self
, p0
, p1
);
6842 /* method separate_compiler#SeparateCompilerVisitor#native_array_def for (self: SeparateCompilerVisitor, String, nullable MType, Array[RuntimeVariable]) */
6843 void separate_compiler__SeparateCompilerVisitor__native_array_def(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
6844 val
* var_pname
/* var pname: String */;
6845 val
* var_ret_type
/* var ret_type: nullable MType */;
6846 val
* var_arguments
/* var arguments: Array[RuntimeVariable] */;
6847 val
* var
/* : nullable Object */;
6848 val
* var1
/* : MType */;
6849 val
* var3
/* : MType */;
6850 val
* var_elttype
/* var elttype: MType */;
6851 static val
* varonce
;
6852 val
* var4
/* : String */;
6853 char* var5
/* : NativeString */;
6854 long var6
/* : Int */;
6855 val
* var7
/* : FlatString */;
6856 val
* var8
/* : MClass */;
6857 val
* var_nclass
/* var nclass: MClass */;
6858 static val
* varonce9
;
6859 val
* var10
/* : String */;
6860 char* var11
/* : NativeString */;
6861 long var12
/* : Int */;
6862 val
* var13
/* : FlatString */;
6863 val
* var14
/* : String */;
6864 static val
* varonce15
;
6865 val
* var16
/* : String */;
6866 char* var17
/* : NativeString */;
6867 long var18
/* : Int */;
6868 val
* var19
/* : FlatString */;
6869 long var20
/* : Int */;
6870 val
* var21
/* : nullable Object */;
6871 static val
* varonce22
;
6872 val
* var23
/* : String */;
6873 char* var24
/* : NativeString */;
6874 long var25
/* : Int */;
6875 val
* var26
/* : FlatString */;
6876 val
* var27
/* : Array[Object] */;
6877 long var28
/* : Int */;
6878 val
* var29
/* : NativeArray[Object] */;
6879 val
* var30
/* : String */;
6880 val
* var_recv
/* var recv: String */;
6881 static val
* varonce31
;
6882 val
* var32
/* : String */;
6883 char* var33
/* : NativeString */;
6884 long var34
/* : Int */;
6885 val
* var35
/* : FlatString */;
6886 short int var36
/* : Bool */;
6887 short int var37
/* : Bool */;
6888 static val
* varonce38
;
6889 val
* var39
/* : String */;
6890 char* var40
/* : NativeString */;
6891 long var41
/* : Int */;
6892 val
* var42
/* : FlatString */;
6893 long var43
/* : Int */;
6894 val
* var44
/* : nullable Object */;
6895 static val
* varonce45
;
6896 val
* var46
/* : String */;
6897 char* var47
/* : NativeString */;
6898 long var48
/* : Int */;
6899 val
* var49
/* : FlatString */;
6900 val
* var50
/* : Array[Object] */;
6901 long var51
/* : Int */;
6902 val
* var52
/* : NativeArray[Object] */;
6903 val
* var53
/* : String */;
6904 val
* var54
/* : RuntimeVariable */;
6905 static val
* varonce55
;
6906 val
* var56
/* : String */;
6907 char* var57
/* : NativeString */;
6908 long var58
/* : Int */;
6909 val
* var59
/* : FlatString */;
6910 short int var60
/* : Bool */;
6911 short int var61
/* : Bool */;
6912 static val
* varonce62
;
6913 val
* var63
/* : String */;
6914 char* var64
/* : NativeString */;
6915 long var65
/* : Int */;
6916 val
* var66
/* : FlatString */;
6917 long var67
/* : Int */;
6918 val
* var68
/* : nullable Object */;
6919 static val
* varonce69
;
6920 val
* var70
/* : String */;
6921 char* var71
/* : NativeString */;
6922 long var72
/* : Int */;
6923 val
* var73
/* : FlatString */;
6924 long var74
/* : Int */;
6925 val
* var75
/* : nullable Object */;
6926 static val
* varonce76
;
6927 val
* var77
/* : String */;
6928 char* var78
/* : NativeString */;
6929 long var79
/* : Int */;
6930 val
* var80
/* : FlatString */;
6931 val
* var81
/* : Array[Object] */;
6932 long var82
/* : Int */;
6933 val
* var83
/* : NativeArray[Object] */;
6934 val
* var84
/* : String */;
6935 static val
* varonce85
;
6936 val
* var86
/* : String */;
6937 char* var87
/* : NativeString */;
6938 long var88
/* : Int */;
6939 val
* var89
/* : FlatString */;
6940 short int var90
/* : Bool */;
6941 short int var91
/* : Bool */;
6942 static val
* varonce92
;
6943 val
* var93
/* : String */;
6944 char* var94
/* : NativeString */;
6945 long var95
/* : Int */;
6946 val
* var96
/* : FlatString */;
6947 val
* var97
/* : String */;
6948 static val
* varonce98
;
6949 val
* var99
/* : String */;
6950 char* var100
/* : NativeString */;
6951 long var101
/* : Int */;
6952 val
* var102
/* : FlatString */;
6953 long var103
/* : Int */;
6954 val
* var104
/* : nullable Object */;
6955 static val
* varonce105
;
6956 val
* var106
/* : String */;
6957 char* var107
/* : NativeString */;
6958 long var108
/* : Int */;
6959 val
* var109
/* : FlatString */;
6960 val
* var110
/* : Array[Object] */;
6961 long var111
/* : Int */;
6962 val
* var112
/* : NativeArray[Object] */;
6963 val
* var113
/* : String */;
6964 val
* var114
/* : RuntimeVariable */;
6965 static val
* varonce115
;
6966 val
* var116
/* : String */;
6967 char* var117
/* : NativeString */;
6968 long var118
/* : Int */;
6969 val
* var119
/* : FlatString */;
6970 short int var120
/* : Bool */;
6971 short int var121
/* : Bool */;
6972 static val
* varonce122
;
6973 val
* var123
/* : String */;
6974 char* var124
/* : NativeString */;
6975 long var125
/* : Int */;
6976 val
* var126
/* : FlatString */;
6977 val
* var127
/* : String */;
6978 static val
* varonce128
;
6979 val
* var129
/* : String */;
6980 char* var130
/* : NativeString */;
6981 long var131
/* : Int */;
6982 val
* var132
/* : FlatString */;
6983 long var133
/* : Int */;
6984 val
* var134
/* : nullable Object */;
6985 static val
* varonce135
;
6986 val
* var136
/* : String */;
6987 char* var137
/* : NativeString */;
6988 long var138
/* : Int */;
6989 val
* var139
/* : FlatString */;
6990 val
* var140
/* : Array[Object] */;
6991 long var141
/* : Int */;
6992 val
* var142
/* : NativeArray[Object] */;
6993 val
* var143
/* : String */;
6994 val
* var_recv1
/* var recv1: String */;
6995 static val
* varonce144
;
6996 val
* var145
/* : String */;
6997 char* var146
/* : NativeString */;
6998 long var147
/* : Int */;
6999 val
* var148
/* : FlatString */;
7000 static val
* varonce149
;
7001 val
* var150
/* : String */;
7002 char* var151
/* : NativeString */;
7003 long var152
/* : Int */;
7004 val
* var153
/* : FlatString */;
7005 static val
* varonce154
;
7006 val
* var155
/* : String */;
7007 char* var156
/* : NativeString */;
7008 long var157
/* : Int */;
7009 val
* var158
/* : FlatString */;
7010 long var159
/* : Int */;
7011 val
* var160
/* : nullable Object */;
7012 static val
* varonce161
;
7013 val
* var162
/* : String */;
7014 char* var163
/* : NativeString */;
7015 long var164
/* : Int */;
7016 val
* var165
/* : FlatString */;
7017 val
* var166
/* : String */;
7018 static val
* varonce167
;
7019 val
* var168
/* : String */;
7020 char* var169
/* : NativeString */;
7021 long var170
/* : Int */;
7022 val
* var171
/* : FlatString */;
7023 val
* var172
/* : Array[Object] */;
7024 long var173
/* : Int */;
7025 val
* var174
/* : NativeArray[Object] */;
7026 val
* var175
/* : String */;
7031 var
= abstract_collection__SequenceRead__first(var_arguments
);
7034 { /* Inline abstract_compiler#RuntimeVariable#mtype (var) on <var:nullable Object(RuntimeVariable)> */
7035 var3
= var
->attrs
[COLOR_abstract_compiler__RuntimeVariable___mtype
].val
; /* _mtype on <var:nullable Object(RuntimeVariable)> */
7036 if (unlikely(var3
== NULL
)) {
7037 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
7038 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 1634);
7049 var5
= "NativeArray";
7051 var7
= string__NativeString__to_s_with_length(var5
, var6
);
7056 var8
= abstract_compiler__AbstractCompilerVisitor__get_class(self
, var4
);
7062 var11
= "((struct instance_";
7064 var13
= string__NativeString__to_s_with_length(var11
, var12
);
7069 var14
= abstract_compiler__MClass__c_name(var_nclass
);
7076 var19
= string__NativeString__to_s_with_length(var17
, var18
);
7082 var21
= array__Array___91d_93d(var_arguments
, var20
);
7087 var24
= ")->values";
7089 var26
= string__NativeString__to_s_with_length(var24
, var25
);
7093 var27
= NEW_array__Array(&type_array__Arraykernel__Object
);
7094 { /* var27 = array_instance Array[Object] */
7096 var29
= NEW_array__NativeArray(var28
, &type_array__NativeArraykernel__Object
);
7097 ((struct instance_array__NativeArray
*)var29
)->values
[0] = (val
*) var10
;
7098 ((struct instance_array__NativeArray
*)var29
)->values
[1] = (val
*) var14
;
7099 ((struct instance_array__NativeArray
*)var29
)->values
[2] = (val
*) var16
;
7100 ((struct instance_array__NativeArray
*)var29
)->values
[3] = (val
*) var21
;
7101 ((struct instance_array__NativeArray
*)var29
)->values
[4] = (val
*) var23
;
7103 ((void (*)(val
*, val
*, long))(var27
->class->vft
[COLOR_array__Array__with_native
]))(var27
, var29
, var28
) /* with_native on <var27:Array[Object]>*/;
7107 var30
= ((val
* (*)(val
*))(var27
->class->vft
[COLOR_string__Object__to_s
]))(var27
) /* to_s on <var27:Array[Object]>*/;
7115 var35
= string__NativeString__to_s_with_length(var33
, var34
);
7120 var37
= string__FlatString___61d_61d(var_pname
, var32
);
7129 var42
= string__NativeString__to_s_with_length(var40
, var41
);
7135 var44
= array__Array___91d_93d(var_arguments
, var43
);
7142 var49
= string__NativeString__to_s_with_length(var47
, var48
);
7146 var50
= NEW_array__Array(&type_array__Arraykernel__Object
);
7147 { /* var50 = array_instance Array[Object] */
7149 var52
= NEW_array__NativeArray(var51
, &type_array__NativeArraykernel__Object
);
7150 ((struct instance_array__NativeArray
*)var52
)->values
[0] = (val
*) var_recv
;
7151 ((struct instance_array__NativeArray
*)var52
)->values
[1] = (val
*) var39
;
7152 ((struct instance_array__NativeArray
*)var52
)->values
[2] = (val
*) var44
;
7153 ((struct instance_array__NativeArray
*)var52
)->values
[3] = (val
*) var46
;
7155 ((void (*)(val
*, val
*, long))(var50
->class->vft
[COLOR_array__Array__with_native
]))(var50
, var52
, var51
) /* with_native on <var50:Array[Object]>*/;
7159 var53
= ((val
* (*)(val
*))(var50
->class->vft
[COLOR_string__Object__to_s
]))(var50
) /* to_s on <var50:Array[Object]>*/;
7161 if (unlikely(var_ret_type
== NULL
)) {
7162 PRINT_ERROR("Runtime error: %s", "Cast failed");
7163 PRINT_ERROR(" (%s:%d)\n", "compiler/separate_compiler.nit", 1736);
7167 var54
= abstract_compiler__AbstractCompilerVisitor__new_expr(self
, var53
, var_ret_type
);
7170 abstract_compiler__AbstractCompilerVisitor__ret(self
, var54
); /* Direct call abstract_compiler#AbstractCompilerVisitor#ret on <self:SeparateCompilerVisitor>*/
7179 var59
= string__NativeString__to_s_with_length(var57
, var58
);
7184 var61
= string__FlatString___61d_61d(var_pname
, var56
);
7193 var66
= string__NativeString__to_s_with_length(var64
, var65
);
7199 var68
= array__Array___91d_93d(var_arguments
, var67
);
7206 var73
= string__NativeString__to_s_with_length(var71
, var72
);
7212 var75
= array__Array___91d_93d(var_arguments
, var74
);
7219 var80
= string__NativeString__to_s_with_length(var78
, var79
);
7223 var81
= NEW_array__Array(&type_array__Arraykernel__Object
);
7224 { /* var81 = array_instance Array[Object] */
7226 var83
= NEW_array__NativeArray(var82
, &type_array__NativeArraykernel__Object
);
7227 ((struct instance_array__NativeArray
*)var83
)->values
[0] = (val
*) var_recv
;
7228 ((struct instance_array__NativeArray
*)var83
)->values
[1] = (val
*) var63
;
7229 ((struct instance_array__NativeArray
*)var83
)->values
[2] = (val
*) var68
;
7230 ((struct instance_array__NativeArray
*)var83
)->values
[3] = (val
*) var70
;
7231 ((struct instance_array__NativeArray
*)var83
)->values
[4] = (val
*) var75
;
7232 ((struct instance_array__NativeArray
*)var83
)->values
[5] = (val
*) var77
;
7234 ((void (*)(val
*, val
*, long))(var81
->class->vft
[COLOR_array__Array__with_native
]))(var81
, var83
, var82
) /* with_native on <var81:Array[Object]>*/;
7238 var84
= ((val
* (*)(val
*))(var81
->class->vft
[COLOR_string__Object__to_s
]))(var81
) /* to_s on <var81:Array[Object]>*/;
7241 abstract_compiler__AbstractCompilerVisitor__add(self
, var84
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <self:SeparateCompilerVisitor>*/
7250 var89
= string__NativeString__to_s_with_length(var87
, var88
);
7255 var91
= string__FlatString___61d_61d(var_pname
, var86
);
7262 var94
= "((struct instance_";
7264 var96
= string__NativeString__to_s_with_length(var94
, var95
);
7269 var97
= abstract_compiler__MClass__c_name(var_nclass
);
7276 var102
= string__NativeString__to_s_with_length(var100
, var101
);
7282 var104
= array__Array___91d_93d(var_arguments
, var103
);
7285 var106
= varonce105
;
7287 var107
= ")->length";
7289 var109
= string__NativeString__to_s_with_length(var107
, var108
);
7291 varonce105
= var106
;
7293 var110
= NEW_array__Array(&type_array__Arraykernel__Object
);
7294 { /* var110 = array_instance Array[Object] */
7296 var112
= NEW_array__NativeArray(var111
, &type_array__NativeArraykernel__Object
);
7297 ((struct instance_array__NativeArray
*)var112
)->values
[0] = (val
*) var93
;
7298 ((struct instance_array__NativeArray
*)var112
)->values
[1] = (val
*) var97
;
7299 ((struct instance_array__NativeArray
*)var112
)->values
[2] = (val
*) var99
;
7300 ((struct instance_array__NativeArray
*)var112
)->values
[3] = (val
*) var104
;
7301 ((struct instance_array__NativeArray
*)var112
)->values
[4] = (val
*) var106
;
7303 ((void (*)(val
*, val
*, long))(var110
->class->vft
[COLOR_array__Array__with_native
]))(var110
, var112
, var111
) /* with_native on <var110:Array[Object]>*/;
7307 var113
= ((val
* (*)(val
*))(var110
->class->vft
[COLOR_string__Object__to_s
]))(var110
) /* to_s on <var110:Array[Object]>*/;
7309 if (unlikely(var_ret_type
== NULL
)) {
7310 PRINT_ERROR("Runtime error: %s", "Cast failed");
7311 PRINT_ERROR(" (%s:%d)\n", "compiler/separate_compiler.nit", 1742);
7315 var114
= abstract_compiler__AbstractCompilerVisitor__new_expr(self
, var113
, var_ret_type
);
7318 abstract_compiler__AbstractCompilerVisitor__ret(self
, var114
); /* Direct call abstract_compiler#AbstractCompilerVisitor#ret on <self:SeparateCompilerVisitor>*/
7323 var116
= varonce115
;
7327 var119
= string__NativeString__to_s_with_length(var117
, var118
);
7329 varonce115
= var116
;
7332 var121
= string__FlatString___61d_61d(var_pname
, var116
);
7337 var123
= varonce122
;
7339 var124
= "((struct instance_";
7341 var126
= string__NativeString__to_s_with_length(var124
, var125
);
7343 varonce122
= var123
;
7346 var127
= abstract_compiler__MClass__c_name(var_nclass
);
7349 var129
= varonce128
;
7353 var132
= string__NativeString__to_s_with_length(var130
, var131
);
7355 varonce128
= var129
;
7359 var134
= array__Array___91d_93d(var_arguments
, var133
);
7362 var136
= varonce135
;
7364 var137
= ")->values";
7366 var139
= string__NativeString__to_s_with_length(var137
, var138
);
7368 varonce135
= var136
;
7370 var140
= NEW_array__Array(&type_array__Arraykernel__Object
);
7371 { /* var140 = array_instance Array[Object] */
7373 var142
= NEW_array__NativeArray(var141
, &type_array__NativeArraykernel__Object
);
7374 ((struct instance_array__NativeArray
*)var142
)->values
[0] = (val
*) var123
;
7375 ((struct instance_array__NativeArray
*)var142
)->values
[1] = (val
*) var127
;
7376 ((struct instance_array__NativeArray
*)var142
)->values
[2] = (val
*) var129
;
7377 ((struct instance_array__NativeArray
*)var142
)->values
[3] = (val
*) var134
;
7378 ((struct instance_array__NativeArray
*)var142
)->values
[4] = (val
*) var136
;
7380 ((void (*)(val
*, val
*, long))(var140
->class->vft
[COLOR_array__Array__with_native
]))(var140
, var142
, var141
) /* with_native on <var140:Array[Object]>*/;
7384 var143
= ((val
* (*)(val
*))(var140
->class->vft
[COLOR_string__Object__to_s
]))(var140
) /* to_s on <var140:Array[Object]>*/;
7388 var145
= varonce144
;
7390 var146
= "memmove(";
7392 var148
= string__NativeString__to_s_with_length(var146
, var147
);
7394 varonce144
= var145
;
7397 var150
= varonce149
;
7401 var153
= string__NativeString__to_s_with_length(var151
, var152
);
7403 varonce149
= var150
;
7406 var155
= varonce154
;
7410 var158
= string__NativeString__to_s_with_length(var156
, var157
);
7412 varonce154
= var155
;
7416 var160
= array__Array___91d_93d(var_arguments
, var159
);
7419 var162
= varonce161
;
7421 var163
= "*sizeof(";
7423 var165
= string__NativeString__to_s_with_length(var163
, var164
);
7425 varonce161
= var162
;
7428 var166
= ((val
* (*)(val
*))(var_elttype
->class->vft
[COLOR_abstract_compiler__MType__ctype
]))(var_elttype
) /* ctype on <var_elttype:MType>*/;
7431 var168
= varonce167
;
7435 var171
= string__NativeString__to_s_with_length(var169
, var170
);
7437 varonce167
= var168
;
7439 var172
= NEW_array__Array(&type_array__Arraykernel__Object
);
7440 { /* var172 = array_instance Array[Object] */
7442 var174
= NEW_array__NativeArray(var173
, &type_array__NativeArraykernel__Object
);
7443 ((struct instance_array__NativeArray
*)var174
)->values
[0] = (val
*) var145
;
7444 ((struct instance_array__NativeArray
*)var174
)->values
[1] = (val
*) var_recv1
;
7445 ((struct instance_array__NativeArray
*)var174
)->values
[2] = (val
*) var150
;
7446 ((struct instance_array__NativeArray
*)var174
)->values
[3] = (val
*) var_recv
;
7447 ((struct instance_array__NativeArray
*)var174
)->values
[4] = (val
*) var155
;
7448 ((struct instance_array__NativeArray
*)var174
)->values
[5] = (val
*) var160
;
7449 ((struct instance_array__NativeArray
*)var174
)->values
[6] = (val
*) var162
;
7450 ((struct instance_array__NativeArray
*)var174
)->values
[7] = (val
*) var166
;
7451 ((struct instance_array__NativeArray
*)var174
)->values
[8] = (val
*) var168
;
7453 ((void (*)(val
*, val
*, long))(var172
->class->vft
[COLOR_array__Array__with_native
]))(var172
, var174
, var173
) /* with_native on <var172:Array[Object]>*/;
7457 var175
= ((val
* (*)(val
*))(var172
->class->vft
[COLOR_string__Object__to_s
]))(var172
) /* to_s on <var172:Array[Object]>*/;
7460 abstract_compiler__AbstractCompilerVisitor__add(self
, var175
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <self:SeparateCompilerVisitor>*/
7470 /* method separate_compiler#SeparateCompilerVisitor#native_array_def for (self: Object, String, nullable MType, Array[RuntimeVariable]) */
7471 void VIRTUAL_separate_compiler__SeparateCompilerVisitor__native_array_def(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
7472 separate_compiler__SeparateCompilerVisitor__native_array_def(self
, p0
, p1
, p2
); /* Direct call separate_compiler#SeparateCompilerVisitor#native_array_def on <self:Object(SeparateCompilerVisitor)>*/
7475 /* method separate_compiler#SeparateCompilerVisitor#calloc_array for (self: SeparateCompilerVisitor, MType, Array[RuntimeVariable]) */
7476 void separate_compiler__SeparateCompilerVisitor__calloc_array(val
* self
, val
* p0
, val
* p1
) {
7477 val
* var_ret_type
/* var ret_type: MType */;
7478 val
* var_arguments
/* var arguments: Array[RuntimeVariable] */;
7479 static val
* varonce
;
7480 val
* var
/* : String */;
7481 char* var1
/* : NativeString */;
7482 long var2
/* : Int */;
7483 val
* var3
/* : FlatString */;
7484 val
* var4
/* : MClass */;
7485 val
* var_mclass
/* var mclass: MClass */;
7486 val
* var5
/* : Array[MParameterType] */;
7487 val
* var7
/* : Array[MParameterType] */;
7488 val
* var8
/* : nullable Object */;
7489 val
* var_ft
/* var ft: MParameterType */;
7490 long var9
/* : Int */;
7491 val
* var10
/* : nullable Object */;
7492 val
* var11
/* : RuntimeVariable */;
7493 val
* var_res
/* var res: RuntimeVariable */;
7499 var1
= "ArrayCapable";
7501 var3
= string__NativeString__to_s_with_length(var1
, var2
);
7506 var4
= abstract_compiler__AbstractCompilerVisitor__get_class(self
, var
);
7510 { /* Inline model#MClass#mparameters (var_mclass) on <var_mclass:MClass> */
7511 var7
= var_mclass
->attrs
[COLOR_model__MClass___mparameters
].val
; /* _mparameters on <var_mclass:MClass> */
7512 if (unlikely(var7
== NULL
)) {
7513 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mparameters");
7514 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 367);
7522 var8
= abstract_collection__SequenceRead__first(var5
);
7527 var10
= array__Array___91d_93d(var_arguments
, var9
);
7530 var11
= ((val
* (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__native_array_instance
]))(self
, var_ft
, var10
) /* native_array_instance on <self:SeparateCompilerVisitor>*/;
7534 abstract_compiler__AbstractCompilerVisitor__ret(self
, var_res
); /* Direct call abstract_compiler#AbstractCompilerVisitor#ret on <self:SeparateCompilerVisitor>*/
7538 /* method separate_compiler#SeparateCompilerVisitor#calloc_array for (self: Object, MType, Array[RuntimeVariable]) */
7539 void VIRTUAL_separate_compiler__SeparateCompilerVisitor__calloc_array(val
* self
, val
* p0
, val
* p1
) {
7540 separate_compiler__SeparateCompilerVisitor__calloc_array(self
, p0
, p1
); /* Direct call separate_compiler#SeparateCompilerVisitor#calloc_array on <self:Object(SeparateCompilerVisitor)>*/
7543 /* method separate_compiler#SeparateCompilerVisitor#link_unresolved_type for (self: SeparateCompilerVisitor, MClassDef, MType) */
7544 void separate_compiler__SeparateCompilerVisitor__link_unresolved_type(val
* self
, val
* p0
, val
* p1
) {
7545 val
* var_mclassdef
/* var mclassdef: MClassDef */;
7546 val
* var_mtype
/* var mtype: MType */;
7547 short int var
/* : Bool */;
7548 val
* var1
/* : AbstractCompiler */;
7549 val
* var3
/* : AbstractCompiler */;
7550 val
* var_compiler
/* var compiler: SeparateCompiler */;
7551 val
* var4
/* : Map[MClassDef, Set[MType]] */;
7552 val
* var6
/* : Map[MClassDef, Set[MType]] */;
7553 val
* var7
/* : nullable Frame */;
7554 val
* var9
/* : nullable Frame */;
7555 val
* var10
/* : MPropDef */;
7556 val
* var12
/* : MPropDef */;
7557 val
* var13
/* : MClassDef */;
7558 val
* var15
/* : MClassDef */;
7559 short int var16
/* : Bool */;
7560 short int var17
/* : Bool */;
7561 val
* var18
/* : Map[MClassDef, Set[MType]] */;
7562 val
* var20
/* : Map[MClassDef, Set[MType]] */;
7563 val
* var21
/* : nullable Frame */;
7564 val
* var23
/* : nullable Frame */;
7565 val
* var24
/* : MPropDef */;
7566 val
* var26
/* : MPropDef */;
7567 val
* var27
/* : MClassDef */;
7568 val
* var29
/* : MClassDef */;
7569 val
* var30
/* : HashSet[MType] */;
7570 val
* var31
/* : Map[MClassDef, Set[MType]] */;
7571 val
* var33
/* : Map[MClassDef, Set[MType]] */;
7572 val
* var34
/* : nullable Frame */;
7573 val
* var36
/* : nullable Frame */;
7574 val
* var37
/* : MPropDef */;
7575 val
* var39
/* : MPropDef */;
7576 val
* var40
/* : MClassDef */;
7577 val
* var42
/* : MClassDef */;
7578 val
* var43
/* : nullable Object */;
7582 var
= ((short int (*)(val
*))(var_mtype
->class->vft
[COLOR_model__MType__need_anchor
]))(var_mtype
) /* need_anchor on <var_mtype:MType>*/;
7584 if (unlikely(!var
)) {
7585 PRINT_ERROR("Runtime error: %s", "Assert failed");
7586 PRINT_ERROR(" (%s:%d)\n", "compiler/separate_compiler.nit", 1760);
7590 { /* Inline abstract_compiler#AbstractCompilerVisitor#compiler (self) on <self:SeparateCompilerVisitor> */
7591 var3
= self
->attrs
[COLOR_abstract_compiler__AbstractCompilerVisitor___compiler
].val
; /* _compiler on <self:SeparateCompilerVisitor> */
7592 if (unlikely(var3
== NULL
)) {
7593 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _compiler");
7594 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 1041);
7601 var_compiler
= var1
;
7603 { /* Inline separate_compiler#SeparateCompiler#live_unresolved_types (var_compiler) on <var_compiler:SeparateCompiler> */
7604 var6
= var_compiler
->attrs
[COLOR_separate_compiler__SeparateCompiler___live_unresolved_types
].val
; /* _live_unresolved_types on <var_compiler:SeparateCompiler> */
7605 if (unlikely(var6
== NULL
)) {
7606 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_unresolved_types");
7607 PRINT_ERROR(" (%s:%d)\n", "compiler/separate_compiler.nit", 157);
7615 { /* Inline abstract_compiler#AbstractCompilerVisitor#frame (self) on <self:SeparateCompilerVisitor> */
7616 var9
= self
->attrs
[COLOR_abstract_compiler__AbstractCompilerVisitor___frame
].val
; /* _frame on <self:SeparateCompilerVisitor> */
7622 PRINT_ERROR("Runtime error: %s", "Receiver is null");
7623 PRINT_ERROR(" (%s:%d)\n", "compiler/separate_compiler.nit", 1762);
7626 { /* Inline abstract_compiler#Frame#mpropdef (var7) on <var7:nullable Frame> */
7627 if (unlikely(var7
== NULL
)) {
7628 PRINT_ERROR("Runtime error: %s", "Receiver is null");
7629 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 1681);
7632 var12
= var7
->attrs
[COLOR_abstract_compiler__Frame___mpropdef
].val
; /* _mpropdef on <var7:nullable Frame> */
7633 if (unlikely(var12
== NULL
)) {
7634 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mpropdef");
7635 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 1681);
7639 RET_LABEL11
:(void)0;
7643 { /* Inline model#MPropDef#mclassdef (var10) on <var10:MPropDef> */
7644 var15
= var10
->attrs
[COLOR_model__MPropDef___mclassdef
].val
; /* _mclassdef on <var10:MPropDef> */
7645 if (unlikely(var15
== NULL
)) {
7646 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdef");
7647 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1895);
7651 RET_LABEL14
:(void)0;
7655 var16
= abstract_collection__MapRead__has_key(var4
, var13
);
7660 { /* Inline separate_compiler#SeparateCompiler#live_unresolved_types (var_compiler) on <var_compiler:SeparateCompiler> */
7661 var20
= var_compiler
->attrs
[COLOR_separate_compiler__SeparateCompiler___live_unresolved_types
].val
; /* _live_unresolved_types on <var_compiler:SeparateCompiler> */
7662 if (unlikely(var20
== NULL
)) {
7663 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_unresolved_types");
7664 PRINT_ERROR(" (%s:%d)\n", "compiler/separate_compiler.nit", 157);
7668 RET_LABEL19
:(void)0;
7672 { /* Inline abstract_compiler#AbstractCompilerVisitor#frame (self) on <self:SeparateCompilerVisitor> */
7673 var23
= self
->attrs
[COLOR_abstract_compiler__AbstractCompilerVisitor___frame
].val
; /* _frame on <self:SeparateCompilerVisitor> */
7675 RET_LABEL22
:(void)0;
7678 if (var21
== NULL
) {
7679 PRINT_ERROR("Runtime error: %s", "Receiver is null");
7680 PRINT_ERROR(" (%s:%d)\n", "compiler/separate_compiler.nit", 1763);
7683 { /* Inline abstract_compiler#Frame#mpropdef (var21) on <var21:nullable Frame> */
7684 if (unlikely(var21
== NULL
)) {
7685 PRINT_ERROR("Runtime error: %s", "Receiver is null");
7686 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 1681);
7689 var26
= var21
->attrs
[COLOR_abstract_compiler__Frame___mpropdef
].val
; /* _mpropdef on <var21:nullable Frame> */
7690 if (unlikely(var26
== NULL
)) {
7691 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mpropdef");
7692 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 1681);
7696 RET_LABEL25
:(void)0;
7700 { /* Inline model#MPropDef#mclassdef (var24) on <var24:MPropDef> */
7701 var29
= var24
->attrs
[COLOR_model__MPropDef___mclassdef
].val
; /* _mclassdef on <var24:MPropDef> */
7702 if (unlikely(var29
== NULL
)) {
7703 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdef");
7704 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1895);
7708 RET_LABEL28
:(void)0;
7711 var30
= NEW_hash_collection__HashSet(&type_hash_collection__HashSetmodel__MType
);
7713 ((void (*)(val
*))(var30
->class->vft
[COLOR_kernel__Object__init
]))(var30
) /* init on <var30:HashSet[MType]>*/;
7716 ((void (*)(val
*, val
*, val
*))(var18
->class->vft
[COLOR_abstract_collection__Map___91d_93d_61d
]))(var18
, var27
, var30
) /* []= on <var18:Map[MClassDef, Set[MType]]>*/;
7721 { /* Inline separate_compiler#SeparateCompiler#live_unresolved_types (var_compiler) on <var_compiler:SeparateCompiler> */
7722 var33
= var_compiler
->attrs
[COLOR_separate_compiler__SeparateCompiler___live_unresolved_types
].val
; /* _live_unresolved_types on <var_compiler:SeparateCompiler> */
7723 if (unlikely(var33
== NULL
)) {
7724 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_unresolved_types");
7725 PRINT_ERROR(" (%s:%d)\n", "compiler/separate_compiler.nit", 157);
7729 RET_LABEL32
:(void)0;
7733 { /* Inline abstract_compiler#AbstractCompilerVisitor#frame (self) on <self:SeparateCompilerVisitor> */
7734 var36
= self
->attrs
[COLOR_abstract_compiler__AbstractCompilerVisitor___frame
].val
; /* _frame on <self:SeparateCompilerVisitor> */
7736 RET_LABEL35
:(void)0;
7739 if (var34
== NULL
) {
7740 PRINT_ERROR("Runtime error: %s", "Receiver is null");
7741 PRINT_ERROR(" (%s:%d)\n", "compiler/separate_compiler.nit", 1765);
7744 { /* Inline abstract_compiler#Frame#mpropdef (var34) on <var34:nullable Frame> */
7745 if (unlikely(var34
== NULL
)) {
7746 PRINT_ERROR("Runtime error: %s", "Receiver is null");
7747 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 1681);
7750 var39
= var34
->attrs
[COLOR_abstract_compiler__Frame___mpropdef
].val
; /* _mpropdef on <var34:nullable Frame> */
7751 if (unlikely(var39
== NULL
)) {
7752 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mpropdef");
7753 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 1681);
7757 RET_LABEL38
:(void)0;
7761 { /* Inline model#MPropDef#mclassdef (var37) on <var37:MPropDef> */
7762 var42
= var37
->attrs
[COLOR_model__MPropDef___mclassdef
].val
; /* _mclassdef on <var37:MPropDef> */
7763 if (unlikely(var42
== NULL
)) {
7764 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdef");
7765 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1895);
7769 RET_LABEL41
:(void)0;
7773 var43
= ((val
* (*)(val
*, val
*))(var31
->class->vft
[COLOR_abstract_collection__MapRead___91d_93d
]))(var31
, var40
) /* [] on <var31:Map[MClassDef, Set[MType]]>*/;
7776 ((void (*)(val
*, val
*))(var43
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var43
, var_mtype
) /* add on <var43:nullable Object(Set[MType])>*/;
7780 /* method separate_compiler#SeparateCompilerVisitor#link_unresolved_type for (self: Object, MClassDef, MType) */
7781 void VIRTUAL_separate_compiler__SeparateCompilerVisitor__link_unresolved_type(val
* self
, val
* p0
, val
* p1
) {
7782 separate_compiler__SeparateCompilerVisitor__link_unresolved_type(self
, p0
, p1
); /* Direct call separate_compiler#SeparateCompilerVisitor#link_unresolved_type on <self:Object(SeparateCompilerVisitor)>*/
7785 /* method separate_compiler#MMethodDef#separate_runtime_function for (self: MMethodDef): AbstractRuntimeFunction */
7786 val
* separate_compiler__MMethodDef__separate_runtime_function(val
* self
) {
7787 val
* var
/* : AbstractRuntimeFunction */;
7788 val
* var1
/* : nullable SeparateRuntimeFunction */;
7789 val
* var3
/* : nullable SeparateRuntimeFunction */;
7790 val
* var_res
/* var res: nullable SeparateRuntimeFunction */;
7791 val
* var4
/* : null */;
7792 short int var5
/* : Bool */;
7793 short int var6
/* : Bool */;
7794 val
* var_other
/* var other: nullable Object */;
7795 short int var8
/* : Bool */;
7796 short int var10
/* : Bool */;
7797 val
* var11
/* : SeparateRuntimeFunction */;
7799 { /* Inline separate_compiler#MMethodDef#separate_runtime_function_cache (self) on <self:MMethodDef> */
7800 var3
= self
->attrs
[COLOR_separate_compiler__MMethodDef___separate_runtime_function_cache
].val
; /* _separate_runtime_function_cache on <self:MMethodDef> */
7807 if (var_res
== NULL
) {
7808 var5
= 1; /* is null */
7810 var5
= 0; /* arg is null but recv is not */
7813 { /* Inline kernel#Object#== (var_res,var4) on <var_res:nullable SeparateRuntimeFunction> */
7816 { /* Inline kernel#Object#is_same_instance (var_res,var_other) on <var_res:nullable SeparateRuntimeFunction(SeparateRuntimeFunction)> */
7817 var10
= var_res
== var_other
;
7830 var11
= NEW_separate_compiler__SeparateRuntimeFunction(&type_separate_compiler__SeparateRuntimeFunction
);
7832 ((void (*)(val
*, val
*))(var11
->class->vft
[COLOR_abstract_compiler__AbstractRuntimeFunction__mmethoddef_61d
]))(var11
, self
) /* mmethoddef= on <var11:SeparateRuntimeFunction>*/;
7835 ((void (*)(val
*))(var11
->class->vft
[COLOR_kernel__Object__init
]))(var11
) /* init on <var11:SeparateRuntimeFunction>*/;
7839 { /* Inline separate_compiler#MMethodDef#separate_runtime_function_cache= (self,var_res) on <self:MMethodDef> */
7840 self
->attrs
[COLOR_separate_compiler__MMethodDef___separate_runtime_function_cache
].val
= var_res
; /* _separate_runtime_function_cache on <self:MMethodDef> */
7841 RET_LABEL12
:(void)0;
7851 /* method separate_compiler#MMethodDef#separate_runtime_function for (self: Object): AbstractRuntimeFunction */
7852 val
* VIRTUAL_separate_compiler__MMethodDef__separate_runtime_function(val
* self
) {
7853 val
* var
/* : AbstractRuntimeFunction */;
7854 val
* var1
/* : AbstractRuntimeFunction */;
7855 var1
= separate_compiler__MMethodDef__separate_runtime_function(self
);
7860 /* method separate_compiler#MMethodDef#separate_runtime_function_cache for (self: MMethodDef): nullable SeparateRuntimeFunction */
7861 val
* separate_compiler__MMethodDef__separate_runtime_function_cache(val
* self
) {
7862 val
* var
/* : nullable SeparateRuntimeFunction */;
7863 val
* var1
/* : nullable SeparateRuntimeFunction */;
7864 var1
= self
->attrs
[COLOR_separate_compiler__MMethodDef___separate_runtime_function_cache
].val
; /* _separate_runtime_function_cache on <self:MMethodDef> */
7869 /* method separate_compiler#MMethodDef#separate_runtime_function_cache for (self: Object): nullable SeparateRuntimeFunction */
7870 val
* VIRTUAL_separate_compiler__MMethodDef__separate_runtime_function_cache(val
* self
) {
7871 val
* var
/* : nullable SeparateRuntimeFunction */;
7872 val
* var1
/* : nullable SeparateRuntimeFunction */;
7873 val
* var3
/* : nullable SeparateRuntimeFunction */;
7874 { /* Inline separate_compiler#MMethodDef#separate_runtime_function_cache (self) on <self:Object(MMethodDef)> */
7875 var3
= self
->attrs
[COLOR_separate_compiler__MMethodDef___separate_runtime_function_cache
].val
; /* _separate_runtime_function_cache on <self:Object(MMethodDef)> */
7883 /* method separate_compiler#MMethodDef#separate_runtime_function_cache= for (self: MMethodDef, nullable SeparateRuntimeFunction) */
7884 void separate_compiler__MMethodDef__separate_runtime_function_cache_61d(val
* self
, val
* p0
) {
7885 self
->attrs
[COLOR_separate_compiler__MMethodDef___separate_runtime_function_cache
].val
= p0
; /* _separate_runtime_function_cache on <self:MMethodDef> */
7888 /* method separate_compiler#MMethodDef#separate_runtime_function_cache= for (self: Object, nullable SeparateRuntimeFunction) */
7889 void VIRTUAL_separate_compiler__MMethodDef__separate_runtime_function_cache_61d(val
* self
, val
* p0
) {
7890 { /* Inline separate_compiler#MMethodDef#separate_runtime_function_cache= (self,p0) on <self:Object(MMethodDef)> */
7891 self
->attrs
[COLOR_separate_compiler__MMethodDef___separate_runtime_function_cache
].val
= p0
; /* _separate_runtime_function_cache on <self:Object(MMethodDef)> */
7896 /* method separate_compiler#MMethodDef#virtual_runtime_function for (self: MMethodDef): AbstractRuntimeFunction */
7897 val
* separate_compiler__MMethodDef__virtual_runtime_function(val
* self
) {
7898 val
* var
/* : AbstractRuntimeFunction */;
7899 val
* var1
/* : nullable VirtualRuntimeFunction */;
7900 val
* var3
/* : nullable VirtualRuntimeFunction */;
7901 val
* var_res
/* var res: nullable VirtualRuntimeFunction */;
7902 val
* var4
/* : null */;
7903 short int var5
/* : Bool */;
7904 short int var6
/* : Bool */;
7905 val
* var_other
/* var other: nullable Object */;
7906 short int var8
/* : Bool */;
7907 short int var10
/* : Bool */;
7908 val
* var11
/* : VirtualRuntimeFunction */;
7910 { /* Inline separate_compiler#MMethodDef#virtual_runtime_function_cache (self) on <self:MMethodDef> */
7911 var3
= self
->attrs
[COLOR_separate_compiler__MMethodDef___virtual_runtime_function_cache
].val
; /* _virtual_runtime_function_cache on <self:MMethodDef> */
7918 if (var_res
== NULL
) {
7919 var5
= 1; /* is null */
7921 var5
= 0; /* arg is null but recv is not */
7924 { /* Inline kernel#Object#== (var_res,var4) on <var_res:nullable VirtualRuntimeFunction> */
7927 { /* Inline kernel#Object#is_same_instance (var_res,var_other) on <var_res:nullable VirtualRuntimeFunction(VirtualRuntimeFunction)> */
7928 var10
= var_res
== var_other
;
7941 var11
= NEW_separate_compiler__VirtualRuntimeFunction(&type_separate_compiler__VirtualRuntimeFunction
);
7943 ((void (*)(val
*, val
*))(var11
->class->vft
[COLOR_abstract_compiler__AbstractRuntimeFunction__mmethoddef_61d
]))(var11
, self
) /* mmethoddef= on <var11:VirtualRuntimeFunction>*/;
7946 ((void (*)(val
*))(var11
->class->vft
[COLOR_kernel__Object__init
]))(var11
) /* init on <var11:VirtualRuntimeFunction>*/;
7950 { /* Inline separate_compiler#MMethodDef#virtual_runtime_function_cache= (self,var_res) on <self:MMethodDef> */
7951 self
->attrs
[COLOR_separate_compiler__MMethodDef___virtual_runtime_function_cache
].val
= var_res
; /* _virtual_runtime_function_cache on <self:MMethodDef> */
7952 RET_LABEL12
:(void)0;
7962 /* method separate_compiler#MMethodDef#virtual_runtime_function for (self: Object): AbstractRuntimeFunction */
7963 val
* VIRTUAL_separate_compiler__MMethodDef__virtual_runtime_function(val
* self
) {
7964 val
* var
/* : AbstractRuntimeFunction */;
7965 val
* var1
/* : AbstractRuntimeFunction */;
7966 var1
= separate_compiler__MMethodDef__virtual_runtime_function(self
);
7971 /* method separate_compiler#MMethodDef#virtual_runtime_function_cache for (self: MMethodDef): nullable VirtualRuntimeFunction */
7972 val
* separate_compiler__MMethodDef__virtual_runtime_function_cache(val
* self
) {
7973 val
* var
/* : nullable VirtualRuntimeFunction */;
7974 val
* var1
/* : nullable VirtualRuntimeFunction */;
7975 var1
= self
->attrs
[COLOR_separate_compiler__MMethodDef___virtual_runtime_function_cache
].val
; /* _virtual_runtime_function_cache on <self:MMethodDef> */
7980 /* method separate_compiler#MMethodDef#virtual_runtime_function_cache for (self: Object): nullable VirtualRuntimeFunction */
7981 val
* VIRTUAL_separate_compiler__MMethodDef__virtual_runtime_function_cache(val
* self
) {
7982 val
* var
/* : nullable VirtualRuntimeFunction */;
7983 val
* var1
/* : nullable VirtualRuntimeFunction */;
7984 val
* var3
/* : nullable VirtualRuntimeFunction */;
7985 { /* Inline separate_compiler#MMethodDef#virtual_runtime_function_cache (self) on <self:Object(MMethodDef)> */
7986 var3
= self
->attrs
[COLOR_separate_compiler__MMethodDef___virtual_runtime_function_cache
].val
; /* _virtual_runtime_function_cache on <self:Object(MMethodDef)> */
7994 /* method separate_compiler#MMethodDef#virtual_runtime_function_cache= for (self: MMethodDef, nullable VirtualRuntimeFunction) */
7995 void separate_compiler__MMethodDef__virtual_runtime_function_cache_61d(val
* self
, val
* p0
) {
7996 self
->attrs
[COLOR_separate_compiler__MMethodDef___virtual_runtime_function_cache
].val
= p0
; /* _virtual_runtime_function_cache on <self:MMethodDef> */
7999 /* method separate_compiler#MMethodDef#virtual_runtime_function_cache= for (self: Object, nullable VirtualRuntimeFunction) */
8000 void VIRTUAL_separate_compiler__MMethodDef__virtual_runtime_function_cache_61d(val
* self
, val
* p0
) {
8001 { /* Inline separate_compiler#MMethodDef#virtual_runtime_function_cache= (self,p0) on <self:Object(MMethodDef)> */
8002 self
->attrs
[COLOR_separate_compiler__MMethodDef___virtual_runtime_function_cache
].val
= p0
; /* _virtual_runtime_function_cache on <self:Object(MMethodDef)> */
8007 /* method separate_compiler#SeparateRuntimeFunction#build_c_name for (self: SeparateRuntimeFunction): String */
8008 val
* separate_compiler__SeparateRuntimeFunction__build_c_name(val
* self
) {
8009 val
* var
/* : String */;
8010 val
* var1
/* : MMethodDef */;
8011 val
* var3
/* : MMethodDef */;
8012 val
* var4
/* : String */;
8013 val
* var5
/* : Array[Object] */;
8014 long var6
/* : Int */;
8015 val
* var7
/* : NativeArray[Object] */;
8016 val
* var8
/* : String */;
8018 { /* Inline abstract_compiler#AbstractRuntimeFunction#mmethoddef (self) on <self:SeparateRuntimeFunction> */
8019 var3
= self
->attrs
[COLOR_abstract_compiler__AbstractRuntimeFunction___mmethoddef
].val
; /* _mmethoddef on <self:SeparateRuntimeFunction> */
8020 if (unlikely(var3
== NULL
)) {
8021 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmethoddef");
8022 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 1598);
8030 var4
= abstract_compiler__MPropDef__c_name(var1
);
8032 var5
= NEW_array__Array(&type_array__Arraykernel__Object
);
8033 { /* var5 = array_instance Array[Object] */
8035 var7
= NEW_array__NativeArray(var6
, &type_array__NativeArraykernel__Object
);
8036 ((struct instance_array__NativeArray
*)var7
)->values
[0] = (val
*) var4
;
8038 ((void (*)(val
*, val
*, long))(var5
->class->vft
[COLOR_array__Array__with_native
]))(var5
, var7
, var6
) /* with_native on <var5:Array[Object]>*/;
8042 var8
= ((val
* (*)(val
*))(var5
->class->vft
[COLOR_string__Object__to_s
]))(var5
) /* to_s on <var5:Array[Object]>*/;
8049 /* method separate_compiler#SeparateRuntimeFunction#build_c_name for (self: Object): String */
8050 val
* VIRTUAL_separate_compiler__SeparateRuntimeFunction__build_c_name(val
* self
) {
8051 val
* var
/* : String */;
8052 val
* var1
/* : String */;
8053 var1
= separate_compiler__SeparateRuntimeFunction__build_c_name(self
);
8058 /* method separate_compiler#SeparateRuntimeFunction#to_s for (self: SeparateRuntimeFunction): String */
8059 val
* separate_compiler__SeparateRuntimeFunction__to_s(val
* self
) {
8060 val
* var
/* : String */;
8061 val
* var1
/* : MMethodDef */;
8062 val
* var3
/* : MMethodDef */;
8063 val
* var4
/* : String */;
8064 val
* var6
/* : String */;
8066 { /* Inline abstract_compiler#AbstractRuntimeFunction#mmethoddef (self) on <self:SeparateRuntimeFunction> */
8067 var3
= self
->attrs
[COLOR_abstract_compiler__AbstractRuntimeFunction___mmethoddef
].val
; /* _mmethoddef on <self:SeparateRuntimeFunction> */
8068 if (unlikely(var3
== NULL
)) {
8069 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmethoddef");
8070 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 1598);
8078 { /* Inline model#MPropDef#to_s (var1) on <var1:MMethodDef> */
8079 var6
= var1
->attrs
[COLOR_model__MPropDef___to_s
].val
; /* _to_s on <var1:MMethodDef> */
8080 if (unlikely(var6
== NULL
)) {
8081 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _to_s");
8082 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1920);
8094 /* method separate_compiler#SeparateRuntimeFunction#to_s for (self: Object): String */
8095 val
* VIRTUAL_separate_compiler__SeparateRuntimeFunction__to_s(val
* self
) {
8096 val
* var
/* : String */;
8097 val
* var1
/* : String */;
8098 var1
= separate_compiler__SeparateRuntimeFunction__to_s(self
);
8103 /* method separate_compiler#SeparateRuntimeFunction#compile_to_c for (self: SeparateRuntimeFunction, AbstractCompiler) */
8104 void separate_compiler__SeparateRuntimeFunction__compile_to_c(val
* self
, val
* p0
) {
8105 short int var
/* : Bool */;
8108 const struct type
* type_struct
;
8109 const char* var_class_name
;
8110 val
* var_compiler
/* var compiler: AbstractCompiler */;
8111 val
* var1
/* : MMethodDef */;
8112 val
* var3
/* : MMethodDef */;
8113 val
* var_mmethoddef
/* var mmethoddef: MMethodDef */;
8114 val
* var4
/* : MMethodDef */;
8115 val
* var6
/* : MMethodDef */;
8116 val
* var7
/* : MClassDef */;
8117 val
* var9
/* : MClassDef */;
8118 val
* var10
/* : MClassType */;
8119 val
* var12
/* : MClassType */;
8120 val
* var_recv
/* var recv: MClassType */;
8121 val
* var13
/* : AbstractCompilerVisitor */;
8122 val
* var_v
/* var v: AbstractCompilerVisitor */;
8123 val
* var14
/* : RuntimeVariable */;
8124 static val
* varonce
;
8125 val
* var15
/* : String */;
8126 char* var16
/* : NativeString */;
8127 long var17
/* : Int */;
8128 val
* var18
/* : FlatString */;
8129 val
* var_selfvar
/* var selfvar: RuntimeVariable */;
8130 val
* var19
/* : Array[RuntimeVariable] */;
8131 val
* var_arguments
/* var arguments: Array[RuntimeVariable] */;
8132 val
* var20
/* : Frame */;
8133 val
* var_frame
/* var frame: Frame */;
8134 val
* var22
/* : nullable MSignature */;
8135 val
* var24
/* : nullable MSignature */;
8136 val
* var25
/* : MClassDef */;
8137 val
* var27
/* : MClassDef */;
8138 val
* var28
/* : MClassType */;
8139 val
* var30
/* : MClassType */;
8140 val
* var31
/* : MClassDef */;
8141 val
* var33
/* : MClassDef */;
8142 val
* var34
/* : MClassType */;
8143 val
* var36
/* : MClassType */;
8144 val
* var37
/* : MClassDef */;
8145 val
* var39
/* : MClassDef */;
8146 val
* var40
/* : MModule */;
8147 val
* var42
/* : MModule */;
8148 short int var43
/* : Bool */;
8149 val
* var44
/* : MSignature */;
8150 val
* var_msignature
/* var msignature: MSignature */;
8151 val
* var45
/* : FlatBuffer */;
8152 val
* var_sig
/* var sig: FlatBuffer */;
8153 val
* var46
/* : FlatBuffer */;
8154 val
* var_comment
/* var comment: FlatBuffer */;
8155 val
* var47
/* : nullable MType */;
8156 val
* var49
/* : nullable MType */;
8157 val
* var_ret
/* var ret: nullable MType */;
8158 val
* var50
/* : null */;
8159 short int var51
/* : Bool */;
8160 short int var52
/* : Bool */;
8161 val
* var_other
/* var other: nullable Object */;
8162 short int var54
/* : Bool */;
8163 short int var55
/* : Bool */;
8164 short int var56
/* : Bool */;
8165 val
* var57
/* : String */;
8166 static val
* varonce58
;
8167 val
* var59
/* : String */;
8168 char* var60
/* : NativeString */;
8169 long var61
/* : Int */;
8170 val
* var62
/* : FlatString */;
8171 val
* var63
/* : Array[Object] */;
8172 long var64
/* : Int */;
8173 val
* var65
/* : NativeArray[Object] */;
8174 val
* var66
/* : String */;
8175 static val
* varonce67
;
8176 val
* var68
/* : String */;
8177 char* var69
/* : NativeString */;
8178 long var70
/* : Int */;
8179 val
* var71
/* : FlatString */;
8180 val
* var72
/* : String */;
8181 static val
* varonce73
;
8182 val
* var74
/* : String */;
8183 char* var75
/* : NativeString */;
8184 long var76
/* : Int */;
8185 val
* var77
/* : FlatString */;
8186 val
* var78
/* : MType */;
8187 val
* var80
/* : MType */;
8188 val
* var81
/* : String */;
8189 static val
* varonce82
;
8190 val
* var83
/* : String */;
8191 char* var84
/* : NativeString */;
8192 long var85
/* : Int */;
8193 val
* var86
/* : FlatString */;
8194 val
* var87
/* : Array[Object] */;
8195 long var88
/* : Int */;
8196 val
* var89
/* : NativeArray[Object] */;
8197 val
* var90
/* : String */;
8198 static val
* varonce91
;
8199 val
* var92
/* : String */;
8200 char* var93
/* : NativeString */;
8201 long var94
/* : Int */;
8202 val
* var95
/* : FlatString */;
8203 static val
* varonce96
;
8204 val
* var97
/* : String */;
8205 char* var98
/* : NativeString */;
8206 long var99
/* : Int */;
8207 val
* var100
/* : FlatString */;
8208 val
* var101
/* : MType */;
8209 val
* var103
/* : MType */;
8210 val
* var104
/* : Array[Object] */;
8211 long var105
/* : Int */;
8212 val
* var106
/* : NativeArray[Object] */;
8213 val
* var107
/* : String */;
8214 long var108
/* : Int */;
8215 long var_i
/* var i: Int */;
8216 long var109
/* : Int */;
8217 long var_
/* var : Int */;
8218 short int var110
/* : Bool */;
8219 short int var112
/* : Bool */;
8222 const char* var_class_name115
;
8223 short int var116
/* : Bool */;
8224 val
* var117
/* : Array[MParameter] */;
8225 val
* var119
/* : Array[MParameter] */;
8226 val
* var120
/* : nullable Object */;
8227 val
* var121
/* : MType */;
8228 val
* var123
/* : MType */;
8229 val
* var_mtype
/* var mtype: MType */;
8230 long var124
/* : Int */;
8231 long var126
/* : Int */;
8232 short int var127
/* : Bool */;
8233 short int var128
/* : Bool */;
8234 short int var130
/* : Bool */;
8235 static val
* varonce131
;
8236 val
* var132
/* : String */;
8237 char* var133
/* : NativeString */;
8238 long var134
/* : Int */;
8239 val
* var135
/* : FlatString */;
8240 val
* var136
/* : MClass */;
8241 val
* var137
/* : Array[MType] */;
8242 long var138
/* : Int */;
8243 val
* var_139
/* var : Array[MType] */;
8244 val
* var140
/* : MClassType */;
8245 static val
* varonce141
;
8246 val
* var142
/* : String */;
8247 char* var143
/* : NativeString */;
8248 long var144
/* : Int */;
8249 val
* var145
/* : FlatString */;
8250 val
* var146
/* : Array[Object] */;
8251 long var147
/* : Int */;
8252 val
* var148
/* : NativeArray[Object] */;
8253 val
* var149
/* : String */;
8254 static val
* varonce150
;
8255 val
* var151
/* : String */;
8256 char* var152
/* : NativeString */;
8257 long var153
/* : Int */;
8258 val
* var154
/* : FlatString */;
8259 val
* var155
/* : String */;
8260 static val
* varonce156
;
8261 val
* var157
/* : String */;
8262 char* var158
/* : NativeString */;
8263 long var159
/* : Int */;
8264 val
* var160
/* : FlatString */;
8265 val
* var161
/* : Array[Object] */;
8266 long var162
/* : Int */;
8267 val
* var163
/* : NativeArray[Object] */;
8268 val
* var164
/* : Object */;
8269 val
* var165
/* : String */;
8270 val
* var166
/* : RuntimeVariable */;
8271 static val
* varonce167
;
8272 val
* var168
/* : String */;
8273 char* var169
/* : NativeString */;
8274 long var170
/* : Int */;
8275 val
* var171
/* : FlatString */;
8276 val
* var172
/* : Array[Object] */;
8277 long var173
/* : Int */;
8278 val
* var174
/* : NativeArray[Object] */;
8279 val
* var175
/* : Object */;
8280 val
* var176
/* : String */;
8281 val
* var_argvar
/* var argvar: RuntimeVariable */;
8282 long var177
/* : Int */;
8283 long var178
/* : Int */;
8284 static val
* varonce179
;
8285 val
* var180
/* : String */;
8286 char* var181
/* : NativeString */;
8287 long var182
/* : Int */;
8288 val
* var183
/* : FlatString */;
8289 static val
* varonce184
;
8290 val
* var185
/* : String */;
8291 char* var186
/* : NativeString */;
8292 long var187
/* : Int */;
8293 val
* var188
/* : FlatString */;
8294 val
* var189
/* : null */;
8295 short int var190
/* : Bool */;
8296 short int var191
/* : Bool */;
8297 short int var193
/* : Bool */;
8298 short int var194
/* : Bool */;
8299 short int var195
/* : Bool */;
8300 static val
* varonce196
;
8301 val
* var197
/* : String */;
8302 char* var198
/* : NativeString */;
8303 long var199
/* : Int */;
8304 val
* var200
/* : FlatString */;
8305 val
* var201
/* : Array[Object] */;
8306 long var202
/* : Int */;
8307 val
* var203
/* : NativeArray[Object] */;
8308 val
* var204
/* : String */;
8309 val
* var205
/* : String */;
8310 static val
* varonce206
;
8311 val
* var207
/* : String */;
8312 char* var208
/* : NativeString */;
8313 long var209
/* : Int */;
8314 val
* var210
/* : FlatString */;
8315 val
* var211
/* : Array[Object] */;
8316 long var212
/* : Int */;
8317 val
* var213
/* : NativeArray[Object] */;
8318 val
* var214
/* : String */;
8319 static val
* varonce215
;
8320 val
* var216
/* : String */;
8321 char* var217
/* : NativeString */;
8322 long var218
/* : Int */;
8323 val
* var219
/* : FlatString */;
8324 static val
* varonce220
;
8325 val
* var221
/* : String */;
8326 char* var222
/* : NativeString */;
8327 long var223
/* : Int */;
8328 val
* var224
/* : FlatString */;
8329 static val
* varonce225
;
8330 val
* var226
/* : String */;
8331 char* var227
/* : NativeString */;
8332 long var228
/* : Int */;
8333 val
* var229
/* : FlatString */;
8334 val
* var230
/* : Array[Object] */;
8335 long var231
/* : Int */;
8336 val
* var232
/* : NativeArray[Object] */;
8337 val
* var233
/* : String */;
8338 static val
* varonce234
;
8339 val
* var235
/* : String */;
8340 char* var236
/* : NativeString */;
8341 long var237
/* : Int */;
8342 val
* var238
/* : FlatString */;
8343 val
* var239
/* : Array[Object] */;
8344 long var240
/* : Int */;
8345 val
* var241
/* : NativeArray[Object] */;
8346 val
* var242
/* : String */;
8347 val
* var243
/* : null */;
8348 short int var244
/* : Bool */;
8349 short int var245
/* : Bool */;
8350 short int var247
/* : Bool */;
8351 short int var248
/* : Bool */;
8352 short int var249
/* : Bool */;
8353 val
* var250
/* : RuntimeVariable */;
8354 static val
* varonce252
;
8355 val
* var253
/* : String */;
8356 char* var254
/* : NativeString */;
8357 long var255
/* : Int */;
8358 val
* var256
/* : FlatString */;
8359 val
* var257
/* : String */;
8360 val
* var259
/* : nullable Object */;
8361 val
* var260
/* : MType */;
8362 val
* var262
/* : MType */;
8363 short int var263
/* : Bool */;
8364 short int var264
/* : Bool */;
8365 short int var266
/* : Bool */;
8366 short int var267
/* : Bool */;
8367 short int var268
/* : Bool */;
8368 val
* var269
/* : nullable RuntimeVariable */;
8369 val
* var270
/* : nullable String */;
8370 val
* var272
/* : nullable String */;
8371 static val
* varonce273
;
8372 val
* var274
/* : String */;
8373 char* var275
/* : NativeString */;
8374 long var276
/* : Int */;
8375 val
* var277
/* : FlatString */;
8376 val
* var278
/* : Array[Object] */;
8377 long var279
/* : Int */;
8378 val
* var280
/* : NativeArray[Object] */;
8379 val
* var281
/* : String */;
8380 val
* var282
/* : null */;
8381 short int var283
/* : Bool */;
8382 short int var284
/* : Bool */;
8383 short int var286
/* : Bool */;
8384 short int var287
/* : Bool */;
8385 short int var288
/* : Bool */;
8386 static val
* varonce289
;
8387 val
* var290
/* : String */;
8388 char* var291
/* : NativeString */;
8389 long var292
/* : Int */;
8390 val
* var293
/* : FlatString */;
8391 val
* var294
/* : nullable RuntimeVariable */;
8392 val
* var296
/* : nullable RuntimeVariable */;
8393 static val
* varonce297
;
8394 val
* var298
/* : String */;
8395 char* var299
/* : NativeString */;
8396 long var300
/* : Int */;
8397 val
* var301
/* : FlatString */;
8398 val
* var302
/* : Array[Object] */;
8399 long var303
/* : Int */;
8400 val
* var304
/* : NativeArray[Object] */;
8401 val
* var305
/* : String */;
8402 static val
* varonce306
;
8403 val
* var307
/* : String */;
8404 char* var308
/* : NativeString */;
8405 long var309
/* : Int */;
8406 val
* var310
/* : FlatString */;
8407 val
* var311
/* : String */;
8408 static val
* varonce312
;
8409 val
* var313
/* : String */;
8410 char* var314
/* : NativeString */;
8411 long var315
/* : Int */;
8412 val
* var316
/* : FlatString */;
8413 long var317
/* : Int */;
8414 short int var318
/* : Bool */;
8415 short int var319
/* : Bool */;
8416 val
* var320
/* : HashMap[String, String] */;
8417 val
* var322
/* : HashMap[String, String] */;
8418 val
* var323
/* : String */;
8419 val
* var324
/* : MClassDef */;
8420 val
* var326
/* : MClassDef */;
8421 val
* var327
/* : MModule */;
8422 val
* var329
/* : MModule */;
8423 val
* var330
/* : String */;
8424 val
* var332
/* : String */;
8425 static val
* varonce333
;
8426 val
* var334
/* : String */;
8427 char* var335
/* : NativeString */;
8428 long var336
/* : Int */;
8429 val
* var337
/* : FlatString */;
8430 val
* var338
/* : MClassDef */;
8431 val
* var340
/* : MClassDef */;
8432 val
* var341
/* : MClass */;
8433 val
* var343
/* : MClass */;
8434 val
* var344
/* : String */;
8435 val
* var346
/* : String */;
8436 static val
* varonce347
;
8437 val
* var348
/* : String */;
8438 char* var349
/* : NativeString */;
8439 long var350
/* : Int */;
8440 val
* var351
/* : FlatString */;
8441 val
* var352
/* : MProperty */;
8442 val
* var354
/* : MProperty */;
8443 val
* var355
/* : String */;
8444 val
* var357
/* : String */;
8445 static val
* varonce358
;
8446 val
* var359
/* : String */;
8447 char* var360
/* : NativeString */;
8448 long var361
/* : Int */;
8449 val
* var362
/* : FlatString */;
8450 val
* var363
/* : Location */;
8451 val
* var365
/* : Location */;
8452 val
* var366
/* : nullable SourceFile */;
8453 val
* var368
/* : nullable SourceFile */;
8454 val
* var369
/* : String */;
8455 val
* var371
/* : String */;
8456 static val
* varonce372
;
8457 val
* var373
/* : String */;
8458 char* var374
/* : NativeString */;
8459 long var375
/* : Int */;
8460 val
* var376
/* : FlatString */;
8461 val
* var377
/* : Location */;
8462 val
* var379
/* : Location */;
8463 long var380
/* : Int */;
8464 long var382
/* : Int */;
8465 static val
* varonce383
;
8466 val
* var384
/* : String */;
8467 char* var385
/* : NativeString */;
8468 long var386
/* : Int */;
8469 val
* var387
/* : FlatString */;
8470 val
* var388
/* : Array[Object] */;
8471 long var389
/* : Int */;
8472 val
* var390
/* : NativeArray[Object] */;
8473 val
* var391
/* : Object */;
8474 val
* var392
/* : String */;
8475 /* Covariant cast for argument 0 (compiler) <p0:AbstractCompiler> isa COMPILER */
8476 /* <p0:AbstractCompiler> isa COMPILER */
8477 type_struct
= self
->type
->resolution_table
->types
[COLOR_abstract_compiler__AbstractRuntimeFunction_VTCOMPILER
];
8478 cltype
= type_struct
->color
;
8479 idtype
= type_struct
->id
;
8480 if(cltype
>= p0
->type
->table_size
) {
8483 var
= p0
->type
->type_table
[cltype
] == idtype
;
8485 if (unlikely(!var
)) {
8486 var_class_name
= p0
== NULL ?
"null" : p0
->type
->name
;
8487 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "COMPILER", var_class_name
);
8488 PRINT_ERROR(" (%s:%d)\n", "compiler/separate_compiler.nit", 1801);
8493 { /* Inline abstract_compiler#AbstractRuntimeFunction#mmethoddef (self) on <self:SeparateRuntimeFunction> */
8494 var3
= self
->attrs
[COLOR_abstract_compiler__AbstractRuntimeFunction___mmethoddef
].val
; /* _mmethoddef on <self:SeparateRuntimeFunction> */
8495 if (unlikely(var3
== NULL
)) {
8496 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmethoddef");
8497 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 1598);
8504 var_mmethoddef
= var1
;
8506 { /* Inline abstract_compiler#AbstractRuntimeFunction#mmethoddef (self) on <self:SeparateRuntimeFunction> */
8507 var6
= self
->attrs
[COLOR_abstract_compiler__AbstractRuntimeFunction___mmethoddef
].val
; /* _mmethoddef on <self:SeparateRuntimeFunction> */
8508 if (unlikely(var6
== NULL
)) {
8509 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmethoddef");
8510 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 1598);
8518 { /* Inline model#MPropDef#mclassdef (var4) on <var4:MMethodDef> */
8519 var9
= var4
->attrs
[COLOR_model__MPropDef___mclassdef
].val
; /* _mclassdef on <var4:MMethodDef> */
8520 if (unlikely(var9
== NULL
)) {
8521 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdef");
8522 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1895);
8530 { /* Inline model#MClassDef#bound_mtype (var7) on <var7:MClassDef> */
8531 var12
= var7
->attrs
[COLOR_model__MClassDef___bound_mtype
].val
; /* _bound_mtype on <var7:MClassDef> */
8532 if (unlikely(var12
== NULL
)) {
8533 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _bound_mtype");
8534 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 495);
8538 RET_LABEL11
:(void)0;
8543 var13
= ((val
* (*)(val
*))(var_compiler
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__new_visitor
]))(var_compiler
) /* new_visitor on <var_compiler:AbstractCompiler>*/;
8546 var14
= NEW_abstract_compiler__RuntimeVariable(&type_abstract_compiler__RuntimeVariable
);
8552 var18
= string__NativeString__to_s_with_length(var16
, var17
);
8557 abstract_compiler__RuntimeVariable__init(var14
, var15
, var_recv
, var_recv
); /* Direct call abstract_compiler#RuntimeVariable#init on <var14:RuntimeVariable>*/
8559 var_selfvar
= var14
;
8560 var19
= NEW_array__Array(&type_array__Arrayabstract_compiler__RuntimeVariable
);
8562 ((void (*)(val
*))(var19
->class->vft
[COLOR_kernel__Object__init
]))(var19
) /* init on <var19:Array[RuntimeVariable]>*/;
8564 var_arguments
= var19
;
8565 var20
= NEW_abstract_compiler__Frame(&type_abstract_compiler__Frame
);
8567 ((void (*)(val
*, val
*))(var20
->class->vft
[COLOR_abstract_compiler__Frame__visitor_61d
]))(var20
, var_v
) /* visitor= on <var20:Frame>*/;
8570 ((void (*)(val
*, val
*))(var20
->class->vft
[COLOR_abstract_compiler__Frame__mpropdef_61d
]))(var20
, var_mmethoddef
) /* mpropdef= on <var20:Frame>*/;
8573 ((void (*)(val
*, val
*))(var20
->class->vft
[COLOR_abstract_compiler__Frame__receiver_61d
]))(var20
, var_recv
) /* receiver= on <var20:Frame>*/;
8576 ((void (*)(val
*, val
*))(var20
->class->vft
[COLOR_abstract_compiler__Frame__arguments_61d
]))(var20
, var_arguments
) /* arguments= on <var20:Frame>*/;
8579 ((void (*)(val
*))(var20
->class->vft
[COLOR_kernel__Object__init
]))(var20
) /* init on <var20:Frame>*/;
8583 { /* Inline abstract_compiler#AbstractCompilerVisitor#frame= (var_v,var_frame) on <var_v:AbstractCompilerVisitor> */
8584 var_v
->attrs
[COLOR_abstract_compiler__AbstractCompilerVisitor___frame
].val
= var_frame
; /* _frame on <var_v:AbstractCompilerVisitor> */
8585 RET_LABEL21
:(void)0;
8589 { /* Inline model#MMethodDef#msignature (var_mmethoddef) on <var_mmethoddef:MMethodDef> */
8590 var24
= var_mmethoddef
->attrs
[COLOR_model__MMethodDef___msignature
].val
; /* _msignature on <var_mmethoddef:MMethodDef> */
8592 RET_LABEL23
:(void)0;
8596 { /* Inline model#MPropDef#mclassdef (var_mmethoddef) on <var_mmethoddef:MMethodDef> */
8597 var27
= var_mmethoddef
->attrs
[COLOR_model__MPropDef___mclassdef
].val
; /* _mclassdef on <var_mmethoddef:MMethodDef> */
8598 if (unlikely(var27
== NULL
)) {
8599 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdef");
8600 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1895);
8604 RET_LABEL26
:(void)0;
8608 { /* Inline model#MClassDef#bound_mtype (var25) on <var25:MClassDef> */
8609 var30
= var25
->attrs
[COLOR_model__MClassDef___bound_mtype
].val
; /* _bound_mtype on <var25:MClassDef> */
8610 if (unlikely(var30
== NULL
)) {
8611 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _bound_mtype");
8612 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 495);
8616 RET_LABEL29
:(void)0;
8620 { /* Inline model#MPropDef#mclassdef (var_mmethoddef) on <var_mmethoddef:MMethodDef> */
8621 var33
= var_mmethoddef
->attrs
[COLOR_model__MPropDef___mclassdef
].val
; /* _mclassdef on <var_mmethoddef:MMethodDef> */
8622 if (unlikely(var33
== NULL
)) {
8623 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdef");
8624 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1895);
8628 RET_LABEL32
:(void)0;
8632 { /* Inline model#MClassDef#bound_mtype (var31) on <var31:MClassDef> */
8633 var36
= var31
->attrs
[COLOR_model__MClassDef___bound_mtype
].val
; /* _bound_mtype on <var31:MClassDef> */
8634 if (unlikely(var36
== NULL
)) {
8635 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _bound_mtype");
8636 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 495);
8640 RET_LABEL35
:(void)0;
8644 { /* Inline model#MPropDef#mclassdef (var_mmethoddef) on <var_mmethoddef:MMethodDef> */
8645 var39
= var_mmethoddef
->attrs
[COLOR_model__MPropDef___mclassdef
].val
; /* _mclassdef on <var_mmethoddef:MMethodDef> */
8646 if (unlikely(var39
== NULL
)) {
8647 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdef");
8648 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1895);
8652 RET_LABEL38
:(void)0;
8656 { /* Inline model#MClassDef#mmodule (var37) on <var37:MClassDef> */
8657 var42
= var37
->attrs
[COLOR_model__MClassDef___mmodule
].val
; /* _mmodule on <var37:MClassDef> */
8658 if (unlikely(var42
== NULL
)) {
8659 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule");
8660 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 489);
8664 RET_LABEL41
:(void)0;
8668 if (var22
== NULL
) {
8669 PRINT_ERROR("Runtime error: %s", "Receiver is null");
8670 PRINT_ERROR(" (%s:%d)\n", "compiler/separate_compiler.nit", 1812);
8673 var44
= model__MSignature__resolve_for(var22
, var28
, var34
, var40
, var43
);
8675 var_msignature
= var44
;
8676 var45
= NEW_string__FlatBuffer(&type_string__FlatBuffer
);
8678 ((void (*)(val
*))(var45
->class->vft
[COLOR_kernel__Object__init
]))(var45
) /* init on <var45:FlatBuffer>*/;
8681 var46
= NEW_string__FlatBuffer(&type_string__FlatBuffer
);
8683 ((void (*)(val
*))(var46
->class->vft
[COLOR_kernel__Object__init
]))(var46
) /* init on <var46:FlatBuffer>*/;
8685 var_comment
= var46
;
8687 { /* Inline model#MSignature#return_mtype (var_msignature) on <var_msignature:MSignature> */
8688 var49
= var_msignature
->attrs
[COLOR_model__MSignature___return_mtype
].val
; /* _return_mtype on <var_msignature:MSignature> */
8690 RET_LABEL48
:(void)0;
8695 if (var_ret
== NULL
) {
8696 var51
= 0; /* is null */
8698 var51
= 1; /* arg is null and recv is not */
8701 { /* Inline kernel#Object#!= (var_ret,var50) on <var_ret:nullable MType> */
8704 var55
= ((short int (*)(val
*, val
*))(var_ret
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var_ret
, var_other
) /* == on <var_ret:nullable MType(MType)>*/;
8710 RET_LABEL53
:(void)0;
8716 var57
= ((val
* (*)(val
*))(var_ret
->class->vft
[COLOR_abstract_compiler__MType__ctype
]))(var_ret
) /* ctype on <var_ret:nullable MType(MType)>*/;
8723 var62
= string__NativeString__to_s_with_length(var60
, var61
);
8727 var63
= NEW_array__Array(&type_array__Arraykernel__Object
);
8728 { /* var63 = array_instance Array[Object] */
8730 var65
= NEW_array__NativeArray(var64
, &type_array__NativeArraykernel__Object
);
8731 ((struct instance_array__NativeArray
*)var65
)->values
[0] = (val
*) var57
;
8732 ((struct instance_array__NativeArray
*)var65
)->values
[1] = (val
*) var59
;
8734 ((void (*)(val
*, val
*, long))(var63
->class->vft
[COLOR_array__Array__with_native
]))(var63
, var65
, var64
) /* with_native on <var63:Array[Object]>*/;
8738 var66
= ((val
* (*)(val
*))(var63
->class->vft
[COLOR_string__Object__to_s
]))(var63
) /* to_s on <var63:Array[Object]>*/;
8741 string__FlatBuffer__append(var_sig
, var66
); /* Direct call string#FlatBuffer#append on <var_sig:FlatBuffer>*/
8749 var71
= string__NativeString__to_s_with_length(var69
, var70
);
8754 string__FlatBuffer__append(var_sig
, var68
); /* Direct call string#FlatBuffer#append on <var_sig:FlatBuffer>*/
8758 var72
= abstract_compiler__AbstractRuntimeFunction__c_name(self
);
8761 string__FlatBuffer__append(var_sig
, var72
); /* Direct call string#FlatBuffer#append on <var_sig:FlatBuffer>*/
8768 var77
= string__NativeString__to_s_with_length(var75
, var76
);
8773 { /* Inline abstract_compiler#RuntimeVariable#mtype (var_selfvar) on <var_selfvar:RuntimeVariable> */
8774 var80
= var_selfvar
->attrs
[COLOR_abstract_compiler__RuntimeVariable___mtype
].val
; /* _mtype on <var_selfvar:RuntimeVariable> */
8775 if (unlikely(var80
== NULL
)) {
8776 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
8777 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 1634);
8781 RET_LABEL79
:(void)0;
8785 var81
= ((val
* (*)(val
*))(var78
->class->vft
[COLOR_abstract_compiler__MType__ctype
]))(var78
) /* ctype on <var78:MType>*/;
8792 var86
= string__NativeString__to_s_with_length(var84
, var85
);
8796 var87
= NEW_array__Array(&type_array__Arraykernel__Object
);
8797 { /* var87 = array_instance Array[Object] */
8799 var89
= NEW_array__NativeArray(var88
, &type_array__NativeArraykernel__Object
);
8800 ((struct instance_array__NativeArray
*)var89
)->values
[0] = (val
*) var74
;
8801 ((struct instance_array__NativeArray
*)var89
)->values
[1] = (val
*) var81
;
8802 ((struct instance_array__NativeArray
*)var89
)->values
[2] = (val
*) var83
;
8803 ((struct instance_array__NativeArray
*)var89
)->values
[3] = (val
*) var_selfvar
;
8805 ((void (*)(val
*, val
*, long))(var87
->class->vft
[COLOR_array__Array__with_native
]))(var87
, var89
, var88
) /* with_native on <var87:Array[Object]>*/;
8809 var90
= ((val
* (*)(val
*))(var87
->class->vft
[COLOR_string__Object__to_s
]))(var87
) /* to_s on <var87:Array[Object]>*/;
8812 string__FlatBuffer__append(var_sig
, var90
); /* Direct call string#FlatBuffer#append on <var_sig:FlatBuffer>*/
8819 var95
= string__NativeString__to_s_with_length(var93
, var94
);
8828 var100
= string__NativeString__to_s_with_length(var98
, var99
);
8833 { /* Inline abstract_compiler#RuntimeVariable#mtype (var_selfvar) on <var_selfvar:RuntimeVariable> */
8834 var103
= var_selfvar
->attrs
[COLOR_abstract_compiler__RuntimeVariable___mtype
].val
; /* _mtype on <var_selfvar:RuntimeVariable> */
8835 if (unlikely(var103
== NULL
)) {
8836 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
8837 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 1634);
8841 RET_LABEL102
:(void)0;
8844 var104
= NEW_array__Array(&type_array__Arraykernel__Object
);
8845 { /* var104 = array_instance Array[Object] */
8847 var106
= NEW_array__NativeArray(var105
, &type_array__NativeArraykernel__Object
);
8848 ((struct instance_array__NativeArray
*)var106
)->values
[0] = (val
*) var92
;
8849 ((struct instance_array__NativeArray
*)var106
)->values
[1] = (val
*) var_selfvar
;
8850 ((struct instance_array__NativeArray
*)var106
)->values
[2] = (val
*) var97
;
8851 ((struct instance_array__NativeArray
*)var106
)->values
[3] = (val
*) var101
;
8853 ((void (*)(val
*, val
*, long))(var104
->class->vft
[COLOR_array__Array__with_native
]))(var104
, var106
, var105
) /* with_native on <var104:Array[Object]>*/;
8857 var107
= ((val
* (*)(val
*))(var104
->class->vft
[COLOR_string__Object__to_s
]))(var104
) /* to_s on <var104:Array[Object]>*/;
8860 string__FlatBuffer__append(var_comment
, var107
); /* Direct call string#FlatBuffer#append on <var_comment:FlatBuffer>*/
8863 array__Array__add(var_arguments
, var_selfvar
); /* Direct call array#Array#add on <var_arguments:Array[RuntimeVariable]>*/
8868 var109
= model__MSignature__arity(var_msignature
);
8873 { /* Inline kernel#Int#< (var_i,var_) on <var_i:Int> */
8874 /* Covariant cast for argument 0 (i) <var_:Int> isa OTHER */
8875 /* <var_:Int> isa OTHER */
8876 var112
= 1; /* easy <var_:Int> isa OTHER*/
8877 if (unlikely(!var112
)) {
8878 var_class_name115
= type_kernel__Int
.name
;
8879 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name115
);
8880 PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 371);
8883 var116
= var_i
< var_
;
8886 RET_LABEL111
:(void)0;
8891 { /* Inline model#MSignature#mparameters (var_msignature) on <var_msignature:MSignature> */
8892 var119
= var_msignature
->attrs
[COLOR_model__MSignature___mparameters
].val
; /* _mparameters on <var_msignature:MSignature> */
8893 if (unlikely(var119
== NULL
)) {
8894 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mparameters");
8895 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1465);
8899 RET_LABEL118
:(void)0;
8903 var120
= array__Array___91d_93d(var117
, var_i
);
8906 { /* Inline model#MParameter#mtype (var120) on <var120:nullable Object(MParameter)> */
8907 var123
= var120
->attrs
[COLOR_model__MParameter___mtype
].val
; /* _mtype on <var120:nullable Object(MParameter)> */
8908 if (unlikely(var123
== NULL
)) {
8909 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
8910 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1565);
8914 RET_LABEL122
:(void)0;
8919 { /* Inline model#MSignature#vararg_rank (var_msignature) on <var_msignature:MSignature> */
8920 var126
= var_msignature
->attrs
[COLOR_model__MSignature___vararg_rank
].l
; /* _vararg_rank on <var_msignature:MSignature> */
8922 RET_LABEL125
:(void)0;
8926 { /* Inline kernel#Int#== (var_i,var124) on <var_i:Int> */
8927 var130
= var_i
== var124
;
8930 RET_LABEL129
:(void)0;
8936 var132
= varonce131
;
8940 var135
= string__NativeString__to_s_with_length(var133
, var134
);
8942 varonce131
= var132
;
8945 var136
= abstract_compiler__AbstractCompilerVisitor__get_class(var_v
, var132
);
8947 var137
= NEW_array__Array(&type_array__Arraymodel__MType
);
8950 array__Array__with_capacity(var137
, var138
); /* Direct call array#Array#with_capacity on <var137:Array[MType]>*/
8954 array__AbstractArray__push(var_139
, var_mtype
); /* Direct call array#AbstractArray#push on <var_139:Array[MType]>*/
8957 var140
= model__MClass__get_mtype(var136
, var_139
);
8963 var142
= varonce141
;
8967 var145
= string__NativeString__to_s_with_length(var143
, var144
);
8969 varonce141
= var142
;
8971 var146
= NEW_array__Array(&type_array__Arraykernel__Object
);
8972 { /* var146 = array_instance Array[Object] */
8974 var148
= NEW_array__NativeArray(var147
, &type_array__NativeArraykernel__Object
);
8975 ((struct instance_array__NativeArray
*)var148
)->values
[0] = (val
*) var142
;
8976 ((struct instance_array__NativeArray
*)var148
)->values
[1] = (val
*) var_mtype
;
8978 ((void (*)(val
*, val
*, long))(var146
->class->vft
[COLOR_array__Array__with_native
]))(var146
, var148
, var147
) /* with_native on <var146:Array[Object]>*/;
8982 var149
= ((val
* (*)(val
*))(var146
->class->vft
[COLOR_string__Object__to_s
]))(var146
) /* to_s on <var146:Array[Object]>*/;
8985 string__FlatBuffer__append(var_comment
, var149
); /* Direct call string#FlatBuffer#append on <var_comment:FlatBuffer>*/
8988 var151
= varonce150
;
8992 var154
= string__NativeString__to_s_with_length(var152
, var153
);
8994 varonce150
= var151
;
8997 var155
= ((val
* (*)(val
*))(var_mtype
->class->vft
[COLOR_abstract_compiler__MType__ctype
]))(var_mtype
) /* ctype on <var_mtype:MType>*/;
9000 var157
= varonce156
;
9004 var160
= string__NativeString__to_s_with_length(var158
, var159
);
9006 varonce156
= var157
;
9008 var161
= NEW_array__Array(&type_array__Arraykernel__Object
);
9009 { /* var161 = array_instance Array[Object] */
9011 var163
= NEW_array__NativeArray(var162
, &type_array__NativeArraykernel__Object
);
9012 ((struct instance_array__NativeArray
*)var163
)->values
[0] = (val
*) var151
;
9013 ((struct instance_array__NativeArray
*)var163
)->values
[1] = (val
*) var155
;
9014 ((struct instance_array__NativeArray
*)var163
)->values
[2] = (val
*) var157
;
9015 var164
= BOX_kernel__Int(var_i
); /* autobox from Int to Object */
9016 ((struct instance_array__NativeArray
*)var163
)->values
[3] = (val
*) var164
;
9018 ((void (*)(val
*, val
*, long))(var161
->class->vft
[COLOR_array__Array__with_native
]))(var161
, var163
, var162
) /* with_native on <var161:Array[Object]>*/;
9022 var165
= ((val
* (*)(val
*))(var161
->class->vft
[COLOR_string__Object__to_s
]))(var161
) /* to_s on <var161:Array[Object]>*/;
9025 string__FlatBuffer__append(var_sig
, var165
); /* Direct call string#FlatBuffer#append on <var_sig:FlatBuffer>*/
9027 var166
= NEW_abstract_compiler__RuntimeVariable(&type_abstract_compiler__RuntimeVariable
);
9029 var168
= varonce167
;
9033 var171
= string__NativeString__to_s_with_length(var169
, var170
);
9035 varonce167
= var168
;
9037 var172
= NEW_array__Array(&type_array__Arraykernel__Object
);
9038 { /* var172 = array_instance Array[Object] */
9040 var174
= NEW_array__NativeArray(var173
, &type_array__NativeArraykernel__Object
);
9041 ((struct instance_array__NativeArray
*)var174
)->values
[0] = (val
*) var168
;
9042 var175
= BOX_kernel__Int(var_i
); /* autobox from Int to Object */
9043 ((struct instance_array__NativeArray
*)var174
)->values
[1] = (val
*) var175
;
9045 ((void (*)(val
*, val
*, long))(var172
->class->vft
[COLOR_array__Array__with_native
]))(var172
, var174
, var173
) /* with_native on <var172:Array[Object]>*/;
9049 var176
= ((val
* (*)(val
*))(var172
->class->vft
[COLOR_string__Object__to_s
]))(var172
) /* to_s on <var172:Array[Object]>*/;
9052 abstract_compiler__RuntimeVariable__init(var166
, var176
, var_mtype
, var_mtype
); /* Direct call abstract_compiler#RuntimeVariable#init on <var166:RuntimeVariable>*/
9054 var_argvar
= var166
;
9056 array__Array__add(var_arguments
, var_argvar
); /* Direct call array#Array#add on <var_arguments:Array[RuntimeVariable]>*/
9060 var178
= kernel__Int__successor(var_i
, var177
);
9067 BREAK_label
: (void)0;
9069 var180
= varonce179
;
9073 var183
= string__NativeString__to_s_with_length(var181
, var182
);
9075 varonce179
= var180
;
9078 string__FlatBuffer__append(var_sig
, var180
); /* Direct call string#FlatBuffer#append on <var_sig:FlatBuffer>*/
9081 var185
= varonce184
;
9085 var188
= string__NativeString__to_s_with_length(var186
, var187
);
9087 varonce184
= var185
;
9090 string__FlatBuffer__append(var_comment
, var185
); /* Direct call string#FlatBuffer#append on <var_comment:FlatBuffer>*/
9093 if (var_ret
== NULL
) {
9094 var190
= 0; /* is null */
9096 var190
= 1; /* arg is null and recv is not */
9099 { /* Inline kernel#Object#!= (var_ret,var189) on <var_ret:nullable MType> */
9102 var194
= ((short int (*)(val
*, val
*))(var_ret
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var_ret
, var_other
) /* == on <var_ret:nullable MType(MType)>*/;
9108 RET_LABEL192
:(void)0;
9114 var197
= varonce196
;
9118 var200
= string__NativeString__to_s_with_length(var198
, var199
);
9120 varonce196
= var197
;
9122 var201
= NEW_array__Array(&type_array__Arraykernel__Object
);
9123 { /* var201 = array_instance Array[Object] */
9125 var203
= NEW_array__NativeArray(var202
, &type_array__NativeArraykernel__Object
);
9126 ((struct instance_array__NativeArray
*)var203
)->values
[0] = (val
*) var197
;
9127 ((struct instance_array__NativeArray
*)var203
)->values
[1] = (val
*) var_ret
;
9129 ((void (*)(val
*, val
*, long))(var201
->class->vft
[COLOR_array__Array__with_native
]))(var201
, var203
, var202
) /* with_native on <var201:Array[Object]>*/;
9133 var204
= ((val
* (*)(val
*))(var201
->class->vft
[COLOR_string__Object__to_s
]))(var201
) /* to_s on <var201:Array[Object]>*/;
9136 string__FlatBuffer__append(var_comment
, var204
); /* Direct call string#FlatBuffer#append on <var_comment:FlatBuffer>*/
9141 var205
= abstract_compiler__AbstractRuntimeFunction__c_name(self
);
9144 var207
= varonce206
;
9148 var210
= string__NativeString__to_s_with_length(var208
, var209
);
9150 varonce206
= var207
;
9152 var211
= NEW_array__Array(&type_array__Arraykernel__Object
);
9153 { /* var211 = array_instance Array[Object] */
9155 var213
= NEW_array__NativeArray(var212
, &type_array__NativeArraykernel__Object
);
9156 ((struct instance_array__NativeArray
*)var213
)->values
[0] = (val
*) var_sig
;
9157 ((struct instance_array__NativeArray
*)var213
)->values
[1] = (val
*) var207
;
9159 ((void (*)(val
*, val
*, long))(var211
->class->vft
[COLOR_array__Array__with_native
]))(var211
, var213
, var212
) /* with_native on <var211:Array[Object]>*/;
9163 var214
= ((val
* (*)(val
*))(var211
->class->vft
[COLOR_string__Object__to_s
]))(var211
) /* to_s on <var211:Array[Object]>*/;
9166 abstract_compiler__AbstractCompiler__provide_declaration(var_compiler
, var205
, var214
); /* Direct call abstract_compiler#AbstractCompiler#provide_declaration on <var_compiler:AbstractCompiler>*/
9169 var216
= varonce215
;
9171 var217
= "/* method ";
9173 var219
= string__NativeString__to_s_with_length(var217
, var218
);
9175 varonce215
= var216
;
9178 var221
= varonce220
;
9182 var224
= string__NativeString__to_s_with_length(var222
, var223
);
9184 varonce220
= var221
;
9187 var226
= varonce225
;
9191 var229
= string__NativeString__to_s_with_length(var227
, var228
);
9193 varonce225
= var226
;
9195 var230
= NEW_array__Array(&type_array__Arraykernel__Object
);
9196 { /* var230 = array_instance Array[Object] */
9198 var232
= NEW_array__NativeArray(var231
, &type_array__NativeArraykernel__Object
);
9199 ((struct instance_array__NativeArray
*)var232
)->values
[0] = (val
*) var216
;
9200 ((struct instance_array__NativeArray
*)var232
)->values
[1] = (val
*) self
;
9201 ((struct instance_array__NativeArray
*)var232
)->values
[2] = (val
*) var221
;
9202 ((struct instance_array__NativeArray
*)var232
)->values
[3] = (val
*) var_comment
;
9203 ((struct instance_array__NativeArray
*)var232
)->values
[4] = (val
*) var226
;
9205 ((void (*)(val
*, val
*, long))(var230
->class->vft
[COLOR_array__Array__with_native
]))(var230
, var232
, var231
) /* with_native on <var230:Array[Object]>*/;
9209 var233
= ((val
* (*)(val
*))(var230
->class->vft
[COLOR_string__Object__to_s
]))(var230
) /* to_s on <var230:Array[Object]>*/;
9212 abstract_compiler__AbstractCompilerVisitor__add_decl(var_v
, var233
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:AbstractCompilerVisitor>*/
9215 var235
= varonce234
;
9219 var238
= string__NativeString__to_s_with_length(var236
, var237
);
9221 varonce234
= var235
;
9223 var239
= NEW_array__Array(&type_array__Arraykernel__Object
);
9224 { /* var239 = array_instance Array[Object] */
9226 var241
= NEW_array__NativeArray(var240
, &type_array__NativeArraykernel__Object
);
9227 ((struct instance_array__NativeArray
*)var241
)->values
[0] = (val
*) var_sig
;
9228 ((struct instance_array__NativeArray
*)var241
)->values
[1] = (val
*) var235
;
9230 ((void (*)(val
*, val
*, long))(var239
->class->vft
[COLOR_array__Array__with_native
]))(var239
, var241
, var240
) /* with_native on <var239:Array[Object]>*/;
9234 var242
= ((val
* (*)(val
*))(var239
->class->vft
[COLOR_string__Object__to_s
]))(var239
) /* to_s on <var239:Array[Object]>*/;
9237 abstract_compiler__AbstractCompilerVisitor__add_decl(var_v
, var242
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:AbstractCompilerVisitor>*/
9240 if (var_ret
== NULL
) {
9241 var244
= 0; /* is null */
9243 var244
= 1; /* arg is null and recv is not */
9246 { /* Inline kernel#Object#!= (var_ret,var243) on <var_ret:nullable MType> */
9249 var248
= ((short int (*)(val
*, val
*))(var_ret
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var_ret
, var_other
) /* == on <var_ret:nullable MType(MType)>*/;
9255 RET_LABEL246
:(void)0;
9261 var250
= abstract_compiler__AbstractCompilerVisitor__new_var(var_v
, var_ret
);
9264 { /* Inline abstract_compiler#Frame#returnvar= (var_frame,var250) on <var_frame:Frame> */
9265 var_frame
->attrs
[COLOR_abstract_compiler__Frame___returnvar
].val
= var250
; /* _returnvar on <var_frame:Frame> */
9266 RET_LABEL251
:(void)0;
9272 var253
= varonce252
;
9274 var254
= "RET_LABEL";
9276 var256
= string__NativeString__to_s_with_length(var254
, var255
);
9278 varonce252
= var253
;
9281 var257
= abstract_compiler__AbstractCompilerVisitor__get_name(var_v
, var253
);
9284 { /* Inline abstract_compiler#Frame#returnlabel= (var_frame,var257) on <var_frame:Frame> */
9285 var_frame
->attrs
[COLOR_abstract_compiler__Frame___returnlabel
].val
= var257
; /* _returnlabel on <var_frame:Frame> */
9286 RET_LABEL258
:(void)0;
9290 var259
= abstract_collection__SequenceRead__first(var_arguments
);
9293 { /* Inline abstract_compiler#RuntimeVariable#mtype (var259) on <var259:nullable Object(RuntimeVariable)> */
9294 var262
= var259
->attrs
[COLOR_abstract_compiler__RuntimeVariable___mtype
].val
; /* _mtype on <var259:nullable Object(RuntimeVariable)> */
9295 if (unlikely(var262
== NULL
)) {
9296 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
9297 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 1634);
9301 RET_LABEL261
:(void)0;
9305 { /* Inline kernel#Object#!= (var_recv,var260) on <var_recv:MClassType> */
9308 var267
= ((short int (*)(val
*, val
*))(var_recv
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var_recv
, var_other
) /* == on <var_recv:MClassType>*/;
9314 RET_LABEL265
:(void)0;
9322 var269
= abstract_compiler__MMethodDef__compile_inside_to_c(var_mmethoddef
, var_v
, var_arguments
);
9325 { /* Inline abstract_compiler#Frame#returnlabel (var_frame) on <var_frame:Frame> */
9326 var272
= var_frame
->attrs
[COLOR_abstract_compiler__Frame___returnlabel
].val
; /* _returnlabel on <var_frame:Frame> */
9328 RET_LABEL271
:(void)0;
9331 if (unlikely(var270
== NULL
)) {
9332 PRINT_ERROR("Runtime error: %s", "Cast failed");
9333 PRINT_ERROR(" (%s:%d)\n", "compiler/separate_compiler.nit", 1855);
9337 var274
= varonce273
;
9341 var277
= string__NativeString__to_s_with_length(var275
, var276
);
9343 varonce273
= var274
;
9345 var278
= NEW_array__Array(&type_array__Arraykernel__Object
);
9346 { /* var278 = array_instance Array[Object] */
9348 var280
= NEW_array__NativeArray(var279
, &type_array__NativeArraykernel__Object
);
9349 ((struct instance_array__NativeArray
*)var280
)->values
[0] = (val
*) var270
;
9350 ((struct instance_array__NativeArray
*)var280
)->values
[1] = (val
*) var274
;
9352 ((void (*)(val
*, val
*, long))(var278
->class->vft
[COLOR_array__Array__with_native
]))(var278
, var280
, var279
) /* with_native on <var278:Array[Object]>*/;
9356 var281
= ((val
* (*)(val
*))(var278
->class->vft
[COLOR_string__Object__to_s
]))(var278
) /* to_s on <var278:Array[Object]>*/;
9359 abstract_compiler__AbstractCompilerVisitor__add(var_v
, var281
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <var_v:AbstractCompilerVisitor>*/
9362 if (var_ret
== NULL
) {
9363 var283
= 0; /* is null */
9365 var283
= 1; /* arg is null and recv is not */
9368 { /* Inline kernel#Object#!= (var_ret,var282) on <var_ret:nullable MType> */
9371 var287
= ((short int (*)(val
*, val
*))(var_ret
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var_ret
, var_other
) /* == on <var_ret:nullable MType(MType)>*/;
9377 RET_LABEL285
:(void)0;
9383 var290
= varonce289
;
9387 var293
= string__NativeString__to_s_with_length(var291
, var292
);
9389 varonce289
= var290
;
9392 { /* Inline abstract_compiler#Frame#returnvar (var_frame) on <var_frame:Frame> */
9393 var296
= var_frame
->attrs
[COLOR_abstract_compiler__Frame___returnvar
].val
; /* _returnvar on <var_frame:Frame> */
9395 RET_LABEL295
:(void)0;
9398 if (unlikely(var294
== NULL
)) {
9399 PRINT_ERROR("Runtime error: %s", "Cast failed");
9400 PRINT_ERROR(" (%s:%d)\n", "compiler/separate_compiler.nit", 1857);
9404 var298
= varonce297
;
9408 var301
= string__NativeString__to_s_with_length(var299
, var300
);
9410 varonce297
= var298
;
9412 var302
= NEW_array__Array(&type_array__Arraykernel__Object
);
9413 { /* var302 = array_instance Array[Object] */
9415 var304
= NEW_array__NativeArray(var303
, &type_array__NativeArraykernel__Object
);
9416 ((struct instance_array__NativeArray
*)var304
)->values
[0] = (val
*) var290
;
9417 ((struct instance_array__NativeArray
*)var304
)->values
[1] = (val
*) var294
;
9418 ((struct instance_array__NativeArray
*)var304
)->values
[2] = (val
*) var298
;
9420 ((void (*)(val
*, val
*, long))(var302
->class->vft
[COLOR_array__Array__with_native
]))(var302
, var304
, var303
) /* with_native on <var302:Array[Object]>*/;
9424 var305
= ((val
* (*)(val
*))(var302
->class->vft
[COLOR_string__Object__to_s
]))(var302
) /* to_s on <var302:Array[Object]>*/;
9427 abstract_compiler__AbstractCompilerVisitor__add(var_v
, var305
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <var_v:AbstractCompilerVisitor>*/
9432 var307
= varonce306
;
9436 var310
= string__NativeString__to_s_with_length(var308
, var309
);
9438 varonce306
= var307
;
9441 abstract_compiler__AbstractCompilerVisitor__add(var_v
, var307
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <var_v:AbstractCompilerVisitor>*/
9444 var311
= abstract_compiler__AbstractRuntimeFunction__c_name(self
);
9447 var313
= varonce312
;
9451 var316
= string__NativeString__to_s_with_length(var314
, var315
);
9453 varonce312
= var313
;
9457 var318
= string__Text__has_substring(var311
, var313
, var317
);
9462 { /* Inline abstract_compiler#AbstractCompiler#names (var_compiler) on <var_compiler:AbstractCompiler> */
9463 var322
= var_compiler
->attrs
[COLOR_abstract_compiler__AbstractCompiler___names
].val
; /* _names on <var_compiler:AbstractCompiler> */
9464 if (unlikely(var322
== NULL
)) {
9465 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _names");
9466 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 460);
9470 RET_LABEL321
:(void)0;
9474 var323
= abstract_compiler__AbstractRuntimeFunction__c_name(self
);
9477 { /* Inline model#MPropDef#mclassdef (var_mmethoddef) on <var_mmethoddef:MMethodDef> */
9478 var326
= var_mmethoddef
->attrs
[COLOR_model__MPropDef___mclassdef
].val
; /* _mclassdef on <var_mmethoddef:MMethodDef> */
9479 if (unlikely(var326
== NULL
)) {
9480 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdef");
9481 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1895);
9485 RET_LABEL325
:(void)0;
9489 { /* Inline model#MClassDef#mmodule (var324) on <var324:MClassDef> */
9490 var329
= var324
->attrs
[COLOR_model__MClassDef___mmodule
].val
; /* _mmodule on <var324:MClassDef> */
9491 if (unlikely(var329
== NULL
)) {
9492 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule");
9493 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 489);
9497 RET_LABEL328
:(void)0;
9501 { /* Inline mmodule#MModule#name (var327) on <var327:MModule> */
9502 var332
= var327
->attrs
[COLOR_mmodule__MModule___name
].val
; /* _name on <var327:MModule> */
9503 if (unlikely(var332
== NULL
)) {
9504 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
9505 PRINT_ERROR(" (%s:%d)\n", "model/mmodule.nit", 78);
9509 RET_LABEL331
:(void)0;
9513 var334
= varonce333
;
9517 var337
= string__NativeString__to_s_with_length(var335
, var336
);
9519 varonce333
= var334
;
9522 { /* Inline model#MPropDef#mclassdef (var_mmethoddef) on <var_mmethoddef:MMethodDef> */
9523 var340
= var_mmethoddef
->attrs
[COLOR_model__MPropDef___mclassdef
].val
; /* _mclassdef on <var_mmethoddef:MMethodDef> */
9524 if (unlikely(var340
== NULL
)) {
9525 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdef");
9526 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1895);
9530 RET_LABEL339
:(void)0;
9534 { /* Inline model#MClassDef#mclass (var338) on <var338:MClassDef> */
9535 var343
= var338
->attrs
[COLOR_model__MClassDef___mclass
].val
; /* _mclass on <var338:MClassDef> */
9536 if (unlikely(var343
== NULL
)) {
9537 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
9538 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 492);
9542 RET_LABEL342
:(void)0;
9546 { /* Inline model#MClass#name (var341) on <var341:MClass> */
9547 var346
= var341
->attrs
[COLOR_model__MClass___name
].val
; /* _name on <var341:MClass> */
9548 if (unlikely(var346
== NULL
)) {
9549 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
9550 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 352);
9554 RET_LABEL345
:(void)0;
9558 var348
= varonce347
;
9562 var351
= string__NativeString__to_s_with_length(var349
, var350
);
9564 varonce347
= var348
;
9567 { /* Inline model#MPropDef#mproperty (var_mmethoddef) on <var_mmethoddef:MMethodDef> */
9568 var354
= var_mmethoddef
->attrs
[COLOR_model__MPropDef___mproperty
].val
; /* _mproperty on <var_mmethoddef:MMethodDef> */
9569 if (unlikely(var354
== NULL
)) {
9570 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty");
9571 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1898);
9575 RET_LABEL353
:(void)0;
9579 { /* Inline model#MProperty#name (var352) on <var352:MProperty(MMethod)> */
9580 var357
= var352
->attrs
[COLOR_model__MProperty___name
].val
; /* _name on <var352:MProperty(MMethod)> */
9581 if (unlikely(var357
== NULL
)) {
9582 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
9583 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1620);
9587 RET_LABEL356
:(void)0;
9591 var359
= varonce358
;
9595 var362
= string__NativeString__to_s_with_length(var360
, var361
);
9597 varonce358
= var359
;
9600 { /* Inline model#MPropDef#location (var_mmethoddef) on <var_mmethoddef:MMethodDef> */
9601 var365
= var_mmethoddef
->attrs
[COLOR_model__MPropDef___location
].val
; /* _location on <var_mmethoddef:MMethodDef> */
9602 if (unlikely(var365
== NULL
)) {
9603 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _location");
9604 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1892);
9608 RET_LABEL364
:(void)0;
9612 { /* Inline location#Location#file (var363) on <var363:Location> */
9613 var368
= var363
->attrs
[COLOR_location__Location___file
].val
; /* _file on <var363:Location> */
9615 RET_LABEL367
:(void)0;
9618 if (var366
== NULL
) {
9619 PRINT_ERROR("Runtime error: %s", "Receiver is null");
9620 PRINT_ERROR(" (%s:%d)\n", "compiler/separate_compiler.nit", 1860);
9623 { /* Inline location#SourceFile#filename (var366) on <var366:nullable SourceFile> */
9624 if (unlikely(var366
== NULL
)) {
9625 PRINT_ERROR("Runtime error: %s", "Receiver is null");
9626 PRINT_ERROR(" (%s:%d)\n", "location.nit", 22);
9629 var371
= var366
->attrs
[COLOR_location__SourceFile___filename
].val
; /* _filename on <var366:nullable SourceFile> */
9630 if (unlikely(var371
== NULL
)) {
9631 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _filename");
9632 PRINT_ERROR(" (%s:%d)\n", "location.nit", 22);
9636 RET_LABEL370
:(void)0;
9640 var373
= varonce372
;
9644 var376
= string__NativeString__to_s_with_length(var374
, var375
);
9646 varonce372
= var373
;
9649 { /* Inline model#MPropDef#location (var_mmethoddef) on <var_mmethoddef:MMethodDef> */
9650 var379
= var_mmethoddef
->attrs
[COLOR_model__MPropDef___location
].val
; /* _location on <var_mmethoddef:MMethodDef> */
9651 if (unlikely(var379
== NULL
)) {
9652 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _location");
9653 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1892);
9657 RET_LABEL378
:(void)0;
9661 { /* Inline location#Location#line_start (var377) on <var377:Location> */
9662 var382
= var377
->attrs
[COLOR_location__Location___line_start
].l
; /* _line_start on <var377:Location> */
9664 RET_LABEL381
:(void)0;
9668 var384
= varonce383
;
9672 var387
= string__NativeString__to_s_with_length(var385
, var386
);
9674 varonce383
= var384
;
9676 var388
= NEW_array__Array(&type_array__Arraykernel__Object
);
9677 { /* var388 = array_instance Array[Object] */
9679 var390
= NEW_array__NativeArray(var389
, &type_array__NativeArraykernel__Object
);
9680 ((struct instance_array__NativeArray
*)var390
)->values
[0] = (val
*) var330
;
9681 ((struct instance_array__NativeArray
*)var390
)->values
[1] = (val
*) var334
;
9682 ((struct instance_array__NativeArray
*)var390
)->values
[2] = (val
*) var344
;
9683 ((struct instance_array__NativeArray
*)var390
)->values
[3] = (val
*) var348
;
9684 ((struct instance_array__NativeArray
*)var390
)->values
[4] = (val
*) var355
;
9685 ((struct instance_array__NativeArray
*)var390
)->values
[5] = (val
*) var359
;
9686 ((struct instance_array__NativeArray
*)var390
)->values
[6] = (val
*) var369
;
9687 ((struct instance_array__NativeArray
*)var390
)->values
[7] = (val
*) var373
;
9688 var391
= BOX_kernel__Int(var380
); /* autobox from Int to Object */
9689 ((struct instance_array__NativeArray
*)var390
)->values
[8] = (val
*) var391
;
9690 ((struct instance_array__NativeArray
*)var390
)->values
[9] = (val
*) var384
;
9692 ((void (*)(val
*, val
*, long))(var388
->class->vft
[COLOR_array__Array__with_native
]))(var388
, var390
, var389
) /* with_native on <var388:Array[Object]>*/;
9696 var392
= ((val
* (*)(val
*))(var388
->class->vft
[COLOR_string__Object__to_s
]))(var388
) /* to_s on <var388:Array[Object]>*/;
9699 hash_collection__HashMap___91d_93d_61d(var320
, var323
, var392
); /* Direct call hash_collection#HashMap#[]= on <var320:HashMap[String, String]>*/
9705 /* method separate_compiler#SeparateRuntimeFunction#compile_to_c for (self: Object, AbstractCompiler) */
9706 void VIRTUAL_separate_compiler__SeparateRuntimeFunction__compile_to_c(val
* self
, val
* p0
) {
9707 separate_compiler__SeparateRuntimeFunction__compile_to_c(self
, p0
); /* Direct call separate_compiler#SeparateRuntimeFunction#compile_to_c on <self:Object(SeparateRuntimeFunction)>*/
9710 /* method separate_compiler#VirtualRuntimeFunction#build_c_name for (self: VirtualRuntimeFunction): String */
9711 val
* separate_compiler__VirtualRuntimeFunction__build_c_name(val
* self
) {
9712 val
* var
/* : String */;
9713 static val
* varonce
;
9714 val
* var1
/* : String */;
9715 char* var2
/* : NativeString */;
9716 long var3
/* : Int */;
9717 val
* var4
/* : FlatString */;
9718 val
* var5
/* : MMethodDef */;
9719 val
* var7
/* : MMethodDef */;
9720 val
* var8
/* : String */;
9721 val
* var9
/* : Array[Object] */;
9722 long var10
/* : Int */;
9723 val
* var11
/* : NativeArray[Object] */;
9724 val
* var12
/* : String */;
9730 var4
= string__NativeString__to_s_with_length(var2
, var3
);
9735 { /* Inline abstract_compiler#AbstractRuntimeFunction#mmethoddef (self) on <self:VirtualRuntimeFunction> */
9736 var7
= self
->attrs
[COLOR_abstract_compiler__AbstractRuntimeFunction___mmethoddef
].val
; /* _mmethoddef on <self:VirtualRuntimeFunction> */
9737 if (unlikely(var7
== NULL
)) {
9738 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmethoddef");
9739 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 1598);
9747 var8
= abstract_compiler__MPropDef__c_name(var5
);
9749 var9
= NEW_array__Array(&type_array__Arraykernel__Object
);
9750 { /* var9 = array_instance Array[Object] */
9752 var11
= NEW_array__NativeArray(var10
, &type_array__NativeArraykernel__Object
);
9753 ((struct instance_array__NativeArray
*)var11
)->values
[0] = (val
*) var1
;
9754 ((struct instance_array__NativeArray
*)var11
)->values
[1] = (val
*) var8
;
9756 ((void (*)(val
*, val
*, long))(var9
->class->vft
[COLOR_array__Array__with_native
]))(var9
, var11
, var10
) /* with_native on <var9:Array[Object]>*/;
9760 var12
= ((val
* (*)(val
*))(var9
->class->vft
[COLOR_string__Object__to_s
]))(var9
) /* to_s on <var9:Array[Object]>*/;
9767 /* method separate_compiler#VirtualRuntimeFunction#build_c_name for (self: Object): String */
9768 val
* VIRTUAL_separate_compiler__VirtualRuntimeFunction__build_c_name(val
* self
) {
9769 val
* var
/* : String */;
9770 val
* var1
/* : String */;
9771 var1
= separate_compiler__VirtualRuntimeFunction__build_c_name(self
);
9776 /* method separate_compiler#VirtualRuntimeFunction#to_s for (self: VirtualRuntimeFunction): String */
9777 val
* separate_compiler__VirtualRuntimeFunction__to_s(val
* self
) {
9778 val
* var
/* : String */;
9779 val
* var1
/* : MMethodDef */;
9780 val
* var3
/* : MMethodDef */;
9781 val
* var4
/* : String */;
9782 val
* var6
/* : String */;
9784 { /* Inline abstract_compiler#AbstractRuntimeFunction#mmethoddef (self) on <self:VirtualRuntimeFunction> */
9785 var3
= self
->attrs
[COLOR_abstract_compiler__AbstractRuntimeFunction___mmethoddef
].val
; /* _mmethoddef on <self:VirtualRuntimeFunction> */
9786 if (unlikely(var3
== NULL
)) {
9787 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmethoddef");
9788 PRINT_ERROR(" (%s:%d)\n", "compiler/abstract_compiler.nit", 1598);
9796 { /* Inline model#MPropDef#to_s (var1) on <var1:MMethodDef> */
9797 var6
= var1
->attrs
[COLOR_model__MPropDef___to_s
].val
; /* _to_s on <var1:MMethodDef> */
9798 if (unlikely(var6
== NULL
)) {
9799 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _to_s");
9800 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1920);
9812 /* method separate_compiler#VirtualRuntimeFunction#to_s for (self: Object): String */
9813 val
* VIRTUAL_separate_compiler__VirtualRuntimeFunction__to_s(val
* self
) {
9814 val
* var
/* : String */;
9815 val
* var1
/* : String */;
9816 var1
= separate_compiler__VirtualRuntimeFunction__to_s(self
);