1 #include "rapid_type_analysis.sep.0.h"
2 /* method rapid_type_analysis#ModelBuilder#do_rapid_type_analysis for (self: ModelBuilder, MModule): RapidTypeAnalysis */
3 val
* rapid_type_analysis__ModelBuilder__do_rapid_type_analysis(val
* self
, val
* p0
) {
4 val
* var
/* : RapidTypeAnalysis */;
5 val
* var_mainmodule
/* var mainmodule: MModule */;
6 val
* var1
/* : RapidTypeAnalysis */;
7 val
* var_analysis
/* var analysis: RapidTypeAnalysis */;
9 var1
= NEW_rapid_type_analysis__RapidTypeAnalysis(&type_rapid_type_analysis__RapidTypeAnalysis
);
11 ((void (*)(val
*, val
*))(var1
->class->vft
[COLOR_rapid_type_analysis__RapidTypeAnalysis__modelbuilder_61d
]))(var1
, self
) /* modelbuilder= on <var1:RapidTypeAnalysis>*/;
14 ((void (*)(val
*, val
*))(var1
->class->vft
[COLOR_rapid_type_analysis__RapidTypeAnalysis__mainmodule_61d
]))(var1
, var_mainmodule
) /* mainmodule= on <var1:RapidTypeAnalysis>*/;
17 ((void (*)(val
*))(var1
->class->vft
[COLOR_kernel__Object__init
]))(var1
) /* init on <var1:RapidTypeAnalysis>*/;
21 rapid_type_analysis__RapidTypeAnalysis__run_analysis(var_analysis
); /* Direct call rapid_type_analysis#RapidTypeAnalysis#run_analysis on <var_analysis:RapidTypeAnalysis>*/
28 /* method rapid_type_analysis#ModelBuilder#do_rapid_type_analysis for (self: Object, MModule): RapidTypeAnalysis */
29 val
* VIRTUAL_rapid_type_analysis__ModelBuilder__do_rapid_type_analysis(val
* self
, val
* p0
) {
30 val
* var
/* : RapidTypeAnalysis */;
31 val
* var1
/* : RapidTypeAnalysis */;
32 var1
= rapid_type_analysis__ModelBuilder__do_rapid_type_analysis(self
, p0
);
37 /* method rapid_type_analysis#RapidTypeAnalysis#modelbuilder for (self: RapidTypeAnalysis): ModelBuilder */
38 val
* rapid_type_analysis__RapidTypeAnalysis__modelbuilder(val
* self
) {
39 val
* var
/* : ModelBuilder */;
40 val
* var1
/* : ModelBuilder */;
41 var1
= self
->attrs
[COLOR_rapid_type_analysis__RapidTypeAnalysis___modelbuilder
].val
; /* _modelbuilder on <self:RapidTypeAnalysis> */
42 if (unlikely(var1
== NULL
)) {
43 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
44 PRINT_ERROR(" (%s:%d)\n", "rapid_type_analysis.nit", 46);
51 /* method rapid_type_analysis#RapidTypeAnalysis#modelbuilder for (self: Object): ModelBuilder */
52 val
* VIRTUAL_rapid_type_analysis__RapidTypeAnalysis__modelbuilder(val
* self
) {
53 val
* var
/* : ModelBuilder */;
54 val
* var1
/* : ModelBuilder */;
55 val
* var3
/* : ModelBuilder */;
56 { /* Inline rapid_type_analysis#RapidTypeAnalysis#modelbuilder (self) on <self:Object(RapidTypeAnalysis)> */
57 var3
= self
->attrs
[COLOR_rapid_type_analysis__RapidTypeAnalysis___modelbuilder
].val
; /* _modelbuilder on <self:Object(RapidTypeAnalysis)> */
58 if (unlikely(var3
== NULL
)) {
59 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
60 PRINT_ERROR(" (%s:%d)\n", "rapid_type_analysis.nit", 46);
70 /* method rapid_type_analysis#RapidTypeAnalysis#modelbuilder= for (self: RapidTypeAnalysis, ModelBuilder) */
71 void rapid_type_analysis__RapidTypeAnalysis__modelbuilder_61d(val
* self
, val
* p0
) {
72 self
->attrs
[COLOR_rapid_type_analysis__RapidTypeAnalysis___modelbuilder
].val
= p0
; /* _modelbuilder on <self:RapidTypeAnalysis> */
75 /* method rapid_type_analysis#RapidTypeAnalysis#modelbuilder= for (self: Object, ModelBuilder) */
76 void VIRTUAL_rapid_type_analysis__RapidTypeAnalysis__modelbuilder_61d(val
* self
, val
* p0
) {
77 { /* Inline rapid_type_analysis#RapidTypeAnalysis#modelbuilder= (self,p0) on <self:Object(RapidTypeAnalysis)> */
78 self
->attrs
[COLOR_rapid_type_analysis__RapidTypeAnalysis___modelbuilder
].val
= p0
; /* _modelbuilder on <self:Object(RapidTypeAnalysis)> */
83 /* method rapid_type_analysis#RapidTypeAnalysis#mainmodule for (self: RapidTypeAnalysis): MModule */
84 val
* rapid_type_analysis__RapidTypeAnalysis__mainmodule(val
* self
) {
85 val
* var
/* : MModule */;
86 val
* var1
/* : MModule */;
87 var1
= self
->attrs
[COLOR_rapid_type_analysis__RapidTypeAnalysis___mainmodule
].val
; /* _mainmodule on <self:RapidTypeAnalysis> */
88 if (unlikely(var1
== NULL
)) {
89 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule");
90 PRINT_ERROR(" (%s:%d)\n", "rapid_type_analysis.nit", 49);
97 /* method rapid_type_analysis#RapidTypeAnalysis#mainmodule for (self: Object): MModule */
98 val
* VIRTUAL_rapid_type_analysis__RapidTypeAnalysis__mainmodule(val
* self
) {
99 val
* var
/* : MModule */;
100 val
* var1
/* : MModule */;
101 val
* var3
/* : MModule */;
102 { /* Inline rapid_type_analysis#RapidTypeAnalysis#mainmodule (self) on <self:Object(RapidTypeAnalysis)> */
103 var3
= self
->attrs
[COLOR_rapid_type_analysis__RapidTypeAnalysis___mainmodule
].val
; /* _mainmodule on <self:Object(RapidTypeAnalysis)> */
104 if (unlikely(var3
== NULL
)) {
105 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule");
106 PRINT_ERROR(" (%s:%d)\n", "rapid_type_analysis.nit", 49);
116 /* method rapid_type_analysis#RapidTypeAnalysis#mainmodule= for (self: RapidTypeAnalysis, MModule) */
117 void rapid_type_analysis__RapidTypeAnalysis__mainmodule_61d(val
* self
, val
* p0
) {
118 self
->attrs
[COLOR_rapid_type_analysis__RapidTypeAnalysis___mainmodule
].val
= p0
; /* _mainmodule on <self:RapidTypeAnalysis> */
121 /* method rapid_type_analysis#RapidTypeAnalysis#mainmodule= for (self: Object, MModule) */
122 void VIRTUAL_rapid_type_analysis__RapidTypeAnalysis__mainmodule_61d(val
* self
, val
* p0
) {
123 { /* Inline rapid_type_analysis#RapidTypeAnalysis#mainmodule= (self,p0) on <self:Object(RapidTypeAnalysis)> */
124 self
->attrs
[COLOR_rapid_type_analysis__RapidTypeAnalysis___mainmodule
].val
= p0
; /* _mainmodule on <self:Object(RapidTypeAnalysis)> */
129 /* method rapid_type_analysis#RapidTypeAnalysis#live_types for (self: RapidTypeAnalysis): HashSet[MClassType] */
130 val
* rapid_type_analysis__RapidTypeAnalysis__live_types(val
* self
) {
131 val
* var
/* : HashSet[MClassType] */;
132 val
* var1
/* : HashSet[MClassType] */;
133 var1
= self
->attrs
[COLOR_rapid_type_analysis__RapidTypeAnalysis___live_types
].val
; /* _live_types on <self:RapidTypeAnalysis> */
134 if (unlikely(var1
== NULL
)) {
135 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_types");
136 PRINT_ERROR(" (%s:%d)\n", "rapid_type_analysis.nit", 53);
143 /* method rapid_type_analysis#RapidTypeAnalysis#live_types for (self: Object): HashSet[MClassType] */
144 val
* VIRTUAL_rapid_type_analysis__RapidTypeAnalysis__live_types(val
* self
) {
145 val
* var
/* : HashSet[MClassType] */;
146 val
* var1
/* : HashSet[MClassType] */;
147 val
* var3
/* : HashSet[MClassType] */;
148 { /* Inline rapid_type_analysis#RapidTypeAnalysis#live_types (self) on <self:Object(RapidTypeAnalysis)> */
149 var3
= self
->attrs
[COLOR_rapid_type_analysis__RapidTypeAnalysis___live_types
].val
; /* _live_types on <self:Object(RapidTypeAnalysis)> */
150 if (unlikely(var3
== NULL
)) {
151 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_types");
152 PRINT_ERROR(" (%s:%d)\n", "rapid_type_analysis.nit", 53);
162 /* method rapid_type_analysis#RapidTypeAnalysis#live_open_types for (self: RapidTypeAnalysis): HashSet[MClassType] */
163 val
* rapid_type_analysis__RapidTypeAnalysis__live_open_types(val
* self
) {
164 val
* var
/* : HashSet[MClassType] */;
165 val
* var1
/* : HashSet[MClassType] */;
166 var1
= self
->attrs
[COLOR_rapid_type_analysis__RapidTypeAnalysis___live_open_types
].val
; /* _live_open_types on <self:RapidTypeAnalysis> */
167 if (unlikely(var1
== NULL
)) {
168 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_open_types");
169 PRINT_ERROR(" (%s:%d)\n", "rapid_type_analysis.nit", 58);
176 /* method rapid_type_analysis#RapidTypeAnalysis#live_open_types for (self: Object): HashSet[MClassType] */
177 val
* VIRTUAL_rapid_type_analysis__RapidTypeAnalysis__live_open_types(val
* self
) {
178 val
* var
/* : HashSet[MClassType] */;
179 val
* var1
/* : HashSet[MClassType] */;
180 val
* var3
/* : HashSet[MClassType] */;
181 { /* Inline rapid_type_analysis#RapidTypeAnalysis#live_open_types (self) on <self:Object(RapidTypeAnalysis)> */
182 var3
= self
->attrs
[COLOR_rapid_type_analysis__RapidTypeAnalysis___live_open_types
].val
; /* _live_open_types on <self:Object(RapidTypeAnalysis)> */
183 if (unlikely(var3
== NULL
)) {
184 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_open_types");
185 PRINT_ERROR(" (%s:%d)\n", "rapid_type_analysis.nit", 58);
195 /* method rapid_type_analysis#RapidTypeAnalysis#live_classes for (self: RapidTypeAnalysis): HashSet[MClass] */
196 val
* rapid_type_analysis__RapidTypeAnalysis__live_classes(val
* self
) {
197 val
* var
/* : HashSet[MClass] */;
198 val
* var1
/* : HashSet[MClass] */;
199 var1
= self
->attrs
[COLOR_rapid_type_analysis__RapidTypeAnalysis___live_classes
].val
; /* _live_classes on <self:RapidTypeAnalysis> */
200 if (unlikely(var1
== NULL
)) {
201 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_classes");
202 PRINT_ERROR(" (%s:%d)\n", "rapid_type_analysis.nit", 62);
209 /* method rapid_type_analysis#RapidTypeAnalysis#live_classes for (self: Object): HashSet[MClass] */
210 val
* VIRTUAL_rapid_type_analysis__RapidTypeAnalysis__live_classes(val
* self
) {
211 val
* var
/* : HashSet[MClass] */;
212 val
* var1
/* : HashSet[MClass] */;
213 val
* var3
/* : HashSet[MClass] */;
214 { /* Inline rapid_type_analysis#RapidTypeAnalysis#live_classes (self) on <self:Object(RapidTypeAnalysis)> */
215 var3
= self
->attrs
[COLOR_rapid_type_analysis__RapidTypeAnalysis___live_classes
].val
; /* _live_classes on <self:Object(RapidTypeAnalysis)> */
216 if (unlikely(var3
== NULL
)) {
217 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_classes");
218 PRINT_ERROR(" (%s:%d)\n", "rapid_type_analysis.nit", 62);
228 /* method rapid_type_analysis#RapidTypeAnalysis#live_cast_types for (self: RapidTypeAnalysis): HashSet[MType] */
229 val
* rapid_type_analysis__RapidTypeAnalysis__live_cast_types(val
* self
) {
230 val
* var
/* : HashSet[MType] */;
231 val
* var1
/* : HashSet[MType] */;
232 var1
= self
->attrs
[COLOR_rapid_type_analysis__RapidTypeAnalysis___live_cast_types
].val
; /* _live_cast_types on <self:RapidTypeAnalysis> */
233 if (unlikely(var1
== NULL
)) {
234 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_cast_types");
235 PRINT_ERROR(" (%s:%d)\n", "rapid_type_analysis.nit", 65);
242 /* method rapid_type_analysis#RapidTypeAnalysis#live_cast_types for (self: Object): HashSet[MType] */
243 val
* VIRTUAL_rapid_type_analysis__RapidTypeAnalysis__live_cast_types(val
* self
) {
244 val
* var
/* : HashSet[MType] */;
245 val
* var1
/* : HashSet[MType] */;
246 val
* var3
/* : HashSet[MType] */;
247 { /* Inline rapid_type_analysis#RapidTypeAnalysis#live_cast_types (self) on <self:Object(RapidTypeAnalysis)> */
248 var3
= self
->attrs
[COLOR_rapid_type_analysis__RapidTypeAnalysis___live_cast_types
].val
; /* _live_cast_types on <self:Object(RapidTypeAnalysis)> */
249 if (unlikely(var3
== NULL
)) {
250 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_cast_types");
251 PRINT_ERROR(" (%s:%d)\n", "rapid_type_analysis.nit", 65);
261 /* method rapid_type_analysis#RapidTypeAnalysis#live_open_cast_types for (self: RapidTypeAnalysis): HashSet[MType] */
262 val
* rapid_type_analysis__RapidTypeAnalysis__live_open_cast_types(val
* self
) {
263 val
* var
/* : HashSet[MType] */;
264 val
* var1
/* : HashSet[MType] */;
265 var1
= self
->attrs
[COLOR_rapid_type_analysis__RapidTypeAnalysis___live_open_cast_types
].val
; /* _live_open_cast_types on <self:RapidTypeAnalysis> */
266 if (unlikely(var1
== NULL
)) {
267 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_open_cast_types");
268 PRINT_ERROR(" (%s:%d)\n", "rapid_type_analysis.nit", 68);
275 /* method rapid_type_analysis#RapidTypeAnalysis#live_open_cast_types for (self: Object): HashSet[MType] */
276 val
* VIRTUAL_rapid_type_analysis__RapidTypeAnalysis__live_open_cast_types(val
* self
) {
277 val
* var
/* : HashSet[MType] */;
278 val
* var1
/* : HashSet[MType] */;
279 val
* var3
/* : HashSet[MType] */;
280 { /* Inline rapid_type_analysis#RapidTypeAnalysis#live_open_cast_types (self) on <self:Object(RapidTypeAnalysis)> */
281 var3
= self
->attrs
[COLOR_rapid_type_analysis__RapidTypeAnalysis___live_open_cast_types
].val
; /* _live_open_cast_types on <self:Object(RapidTypeAnalysis)> */
282 if (unlikely(var3
== NULL
)) {
283 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_open_cast_types");
284 PRINT_ERROR(" (%s:%d)\n", "rapid_type_analysis.nit", 68);
294 /* method rapid_type_analysis#RapidTypeAnalysis#live_methoddefs for (self: RapidTypeAnalysis): HashSet[MMethodDef] */
295 val
* rapid_type_analysis__RapidTypeAnalysis__live_methoddefs(val
* self
) {
296 val
* var
/* : HashSet[MMethodDef] */;
297 val
* var1
/* : HashSet[MMethodDef] */;
298 var1
= self
->attrs
[COLOR_rapid_type_analysis__RapidTypeAnalysis___live_methoddefs
].val
; /* _live_methoddefs on <self:RapidTypeAnalysis> */
299 if (unlikely(var1
== NULL
)) {
300 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_methoddefs");
301 PRINT_ERROR(" (%s:%d)\n", "rapid_type_analysis.nit", 72);
308 /* method rapid_type_analysis#RapidTypeAnalysis#live_methoddefs for (self: Object): HashSet[MMethodDef] */
309 val
* VIRTUAL_rapid_type_analysis__RapidTypeAnalysis__live_methoddefs(val
* self
) {
310 val
* var
/* : HashSet[MMethodDef] */;
311 val
* var1
/* : HashSet[MMethodDef] */;
312 val
* var3
/* : HashSet[MMethodDef] */;
313 { /* Inline rapid_type_analysis#RapidTypeAnalysis#live_methoddefs (self) on <self:Object(RapidTypeAnalysis)> */
314 var3
= self
->attrs
[COLOR_rapid_type_analysis__RapidTypeAnalysis___live_methoddefs
].val
; /* _live_methoddefs on <self:Object(RapidTypeAnalysis)> */
315 if (unlikely(var3
== NULL
)) {
316 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_methoddefs");
317 PRINT_ERROR(" (%s:%d)\n", "rapid_type_analysis.nit", 72);
327 /* method rapid_type_analysis#RapidTypeAnalysis#live_methods for (self: RapidTypeAnalysis): HashSet[MMethod] */
328 val
* rapid_type_analysis__RapidTypeAnalysis__live_methods(val
* self
) {
329 val
* var
/* : HashSet[MMethod] */;
330 val
* var1
/* : HashSet[MMethod] */;
331 var1
= self
->attrs
[COLOR_rapid_type_analysis__RapidTypeAnalysis___live_methods
].val
; /* _live_methods on <self:RapidTypeAnalysis> */
332 if (unlikely(var1
== NULL
)) {
333 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_methods");
334 PRINT_ERROR(" (%s:%d)\n", "rapid_type_analysis.nit", 75);
341 /* method rapid_type_analysis#RapidTypeAnalysis#live_methods for (self: Object): HashSet[MMethod] */
342 val
* VIRTUAL_rapid_type_analysis__RapidTypeAnalysis__live_methods(val
* self
) {
343 val
* var
/* : HashSet[MMethod] */;
344 val
* var1
/* : HashSet[MMethod] */;
345 val
* var3
/* : HashSet[MMethod] */;
346 { /* Inline rapid_type_analysis#RapidTypeAnalysis#live_methods (self) on <self:Object(RapidTypeAnalysis)> */
347 var3
= self
->attrs
[COLOR_rapid_type_analysis__RapidTypeAnalysis___live_methods
].val
; /* _live_methods on <self:Object(RapidTypeAnalysis)> */
348 if (unlikely(var3
== NULL
)) {
349 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_methods");
350 PRINT_ERROR(" (%s:%d)\n", "rapid_type_analysis.nit", 75);
360 /* method rapid_type_analysis#RapidTypeAnalysis#live_callsites for (self: RapidTypeAnalysis): HashSet[CallSite] */
361 val
* rapid_type_analysis__RapidTypeAnalysis__live_callsites(val
* self
) {
362 val
* var
/* : HashSet[CallSite] */;
363 val
* var1
/* : HashSet[CallSite] */;
364 var1
= self
->attrs
[COLOR_rapid_type_analysis__RapidTypeAnalysis___live_callsites
].val
; /* _live_callsites on <self:RapidTypeAnalysis> */
365 if (unlikely(var1
== NULL
)) {
366 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_callsites");
367 PRINT_ERROR(" (%s:%d)\n", "rapid_type_analysis.nit", 78);
374 /* method rapid_type_analysis#RapidTypeAnalysis#live_callsites for (self: Object): HashSet[CallSite] */
375 val
* VIRTUAL_rapid_type_analysis__RapidTypeAnalysis__live_callsites(val
* self
) {
376 val
* var
/* : HashSet[CallSite] */;
377 val
* var1
/* : HashSet[CallSite] */;
378 val
* var3
/* : HashSet[CallSite] */;
379 { /* Inline rapid_type_analysis#RapidTypeAnalysis#live_callsites (self) on <self:Object(RapidTypeAnalysis)> */
380 var3
= self
->attrs
[COLOR_rapid_type_analysis__RapidTypeAnalysis___live_callsites
].val
; /* _live_callsites on <self:Object(RapidTypeAnalysis)> */
381 if (unlikely(var3
== NULL
)) {
382 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_callsites");
383 PRINT_ERROR(" (%s:%d)\n", "rapid_type_analysis.nit", 78);
393 /* method rapid_type_analysis#RapidTypeAnalysis#live_targets_cache for (self: RapidTypeAnalysis): HashMap2[MType, MProperty, Set[MMethodDef]] */
394 val
* rapid_type_analysis__RapidTypeAnalysis__live_targets_cache(val
* self
) {
395 val
* var
/* : HashMap2[MType, MProperty, Set[MMethodDef]] */;
396 val
* var1
/* : HashMap2[MType, MProperty, Set[MMethodDef]] */;
397 var1
= self
->attrs
[COLOR_rapid_type_analysis__RapidTypeAnalysis___live_targets_cache
].val
; /* _live_targets_cache on <self:RapidTypeAnalysis> */
398 if (unlikely(var1
== NULL
)) {
399 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_targets_cache");
400 PRINT_ERROR(" (%s:%d)\n", "rapid_type_analysis.nit", 81);
407 /* method rapid_type_analysis#RapidTypeAnalysis#live_targets_cache for (self: Object): HashMap2[MType, MProperty, Set[MMethodDef]] */
408 val
* VIRTUAL_rapid_type_analysis__RapidTypeAnalysis__live_targets_cache(val
* self
) {
409 val
* var
/* : HashMap2[MType, MProperty, Set[MMethodDef]] */;
410 val
* var1
/* : HashMap2[MType, MProperty, Set[MMethodDef]] */;
411 val
* var3
/* : HashMap2[MType, MProperty, Set[MMethodDef]] */;
412 { /* Inline rapid_type_analysis#RapidTypeAnalysis#live_targets_cache (self) on <self:Object(RapidTypeAnalysis)> */
413 var3
= self
->attrs
[COLOR_rapid_type_analysis__RapidTypeAnalysis___live_targets_cache
].val
; /* _live_targets_cache on <self:Object(RapidTypeAnalysis)> */
414 if (unlikely(var3
== NULL
)) {
415 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_targets_cache");
416 PRINT_ERROR(" (%s:%d)\n", "rapid_type_analysis.nit", 81);
426 /* method rapid_type_analysis#RapidTypeAnalysis#live_targets for (self: RapidTypeAnalysis, CallSite): Set[MMethodDef] */
427 val
* rapid_type_analysis__RapidTypeAnalysis__live_targets(val
* self
, val
* p0
) {
428 val
* var
/* : Set[MMethodDef] */;
429 val
* var_callsite
/* var callsite: CallSite */;
430 val
* var1
/* : MType */;
431 val
* var3
/* : MType */;
432 val
* var_mtype
/* var mtype: MType */;
433 val
* var4
/* : nullable MClassType */;
434 val
* var6
/* : nullable MClassType */;
435 val
* var_anchor
/* var anchor: nullable MClassType */;
436 val
* var7
/* : null */;
437 short int var8
/* : Bool */;
438 short int var9
/* : Bool */;
439 val
* var_other
/* var other: nullable Object */;
440 short int var11
/* : Bool */;
441 short int var12
/* : Bool */;
442 short int var13
/* : Bool */;
443 val
* var14
/* : MModule */;
444 val
* var16
/* : MModule */;
445 val
* var17
/* : MType */;
446 val
* var18
/* : MType */;
447 short int var19
/* : Bool */;
450 val
* var20
/* : MClass */;
451 val
* var22
/* : MClass */;
452 val
* var23
/* : MClassDef */;
453 val
* var25
/* : MClassDef */;
454 val
* var26
/* : MClassType */;
455 val
* var28
/* : MClassType */;
456 val
* var29
/* : MMethod */;
457 val
* var31
/* : MMethod */;
458 val
* var_mproperty
/* var mproperty: MMethod */;
459 val
* var32
/* : HashMap2[MType, MProperty, Set[MMethodDef]] */;
460 val
* var34
/* : HashMap2[MType, MProperty, Set[MMethodDef]] */;
461 val
* var35
/* : nullable Object */;
462 val
* var_res
/* var res: nullable Set[MMethodDef] */;
463 val
* var36
/* : null */;
464 short int var37
/* : Bool */;
465 short int var38
/* : Bool */;
466 short int var40
/* : Bool */;
467 short int var41
/* : Bool */;
468 short int var42
/* : Bool */;
469 val
* var43
/* : ArraySet[MMethodDef] */;
470 val
* var44
/* : HashMap2[MType, MProperty, Set[MMethodDef]] */;
471 val
* var46
/* : HashMap2[MType, MProperty, Set[MMethodDef]] */;
472 val
* var47
/* : HashSet[MClass] */;
473 val
* var49
/* : HashSet[MClass] */;
474 val
* var_
/* var : HashSet[MClass] */;
475 val
* var50
/* : Iterator[Object] */;
476 val
* var_51
/* var : Iterator[MClass] */;
477 short int var52
/* : Bool */;
478 val
* var53
/* : nullable Object */;
479 val
* var_c
/* var c: MClass */;
480 val
* var54
/* : MClassDef */;
481 val
* var56
/* : MClassDef */;
482 val
* var57
/* : MClassType */;
483 val
* var59
/* : MClassType */;
484 val
* var_tc
/* var tc: MClassType */;
485 val
* var60
/* : MModule */;
486 val
* var62
/* : MModule */;
487 val
* var63
/* : null */;
488 short int var64
/* : Bool */;
489 short int var65
/* : Bool */;
490 val
* var66
/* : MModule */;
491 val
* var68
/* : MModule */;
492 val
* var69
/* : MPropDef */;
493 val
* var_d
/* var d: MMethodDef */;
496 { /* Inline typing#CallSite#recv (var_callsite) on <var_callsite:CallSite> */
497 var3
= var_callsite
->attrs
[COLOR_typing__CallSite___recv
].val
; /* _recv on <var_callsite:CallSite> */
498 if (unlikely(var3
== NULL
)) {
499 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _recv");
500 PRINT_ERROR(" (%s:%d)\n", "semantize/typing.nit", 469);
509 { /* Inline typing#CallSite#anchor (var_callsite) on <var_callsite:CallSite> */
510 var6
= var_callsite
->attrs
[COLOR_typing__CallSite___anchor
].val
; /* _anchor on <var_callsite:CallSite> */
517 if (var_anchor
== NULL
) {
518 var8
= 0; /* is null */
520 var8
= 1; /* arg is null and recv is not */
523 { /* Inline kernel#Object#!= (var_anchor,var7) on <var_anchor:nullable MClassType> */
526 var12
= ((short int (*)(val
*, val
*))(var_anchor
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var_anchor
, var_other
) /* == on <var_anchor:nullable MClassType(MClassType)>*/;
538 { /* Inline typing#CallSite#mmodule (var_callsite) on <var_callsite:CallSite> */
539 var16
= var_callsite
->attrs
[COLOR_typing__CallSite___mmodule
].val
; /* _mmodule on <var_callsite:CallSite> */
540 if (unlikely(var16
== NULL
)) {
541 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule");
542 PRINT_ERROR(" (%s:%d)\n", "semantize/typing.nit", 472);
550 var17
= ((val
* (*)(val
*, val
*, val
*))(var_mtype
->class->vft
[COLOR_model__MType__anchor_to
]))(var_mtype
, var14
, var_anchor
) /* anchor_to on <var_mtype:MType>*/;
556 var18
= ((val
* (*)(val
*))(var_mtype
->class->vft
[COLOR_model__MType__as_notnullable
]))(var_mtype
) /* as_notnullable on <var_mtype:MType>*/;
559 /* <var_mtype:MType> isa MClassType */
560 cltype
= type_model__MClassType
.color
;
561 idtype
= type_model__MClassType
.id
;
562 if(cltype
>= var_mtype
->type
->table_size
) {
565 var19
= var_mtype
->type
->type_table
[cltype
] == idtype
;
567 if (unlikely(!var19
)) {
568 PRINT_ERROR("Runtime error: %s", "Assert failed");
569 PRINT_ERROR(" (%s:%d)\n", "rapid_type_analysis.nit", 90);
573 { /* Inline model#MClassType#mclass (var_mtype) on <var_mtype:MType(MClassType)> */
574 var22
= var_mtype
->attrs
[COLOR_model__MClassType___mclass
].val
; /* _mclass on <var_mtype:MType(MClassType)> */
575 if (unlikely(var22
== NULL
)) {
576 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
577 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 986);
585 { /* Inline model#MClass#intro (var20) on <var20:MClass> */
586 var25
= var20
->attrs
[COLOR_model__MClass___intro
].val
; /* _intro on <var20:MClass> */
587 if (unlikely(var25
== NULL
)) {
588 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro");
589 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 420);
597 { /* Inline model#MClassDef#bound_mtype (var23) on <var23:MClassDef> */
598 var28
= var23
->attrs
[COLOR_model__MClassDef___bound_mtype
].val
; /* _bound_mtype on <var23:MClassDef> */
599 if (unlikely(var28
== NULL
)) {
600 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _bound_mtype");
601 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 495);
610 { /* Inline typing#CallSite#mproperty (var_callsite) on <var_callsite:CallSite> */
611 var31
= var_callsite
->attrs
[COLOR_typing__CallSite___mproperty
].val
; /* _mproperty on <var_callsite:CallSite> */
612 if (unlikely(var31
== NULL
)) {
613 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty");
614 PRINT_ERROR(" (%s:%d)\n", "semantize/typing.nit", 483);
621 var_mproperty
= var29
;
623 { /* Inline rapid_type_analysis#RapidTypeAnalysis#live_targets_cache (self) on <self:RapidTypeAnalysis> */
624 var34
= self
->attrs
[COLOR_rapid_type_analysis__RapidTypeAnalysis___live_targets_cache
].val
; /* _live_targets_cache on <self:RapidTypeAnalysis> */
625 if (unlikely(var34
== NULL
)) {
626 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_targets_cache");
627 PRINT_ERROR(" (%s:%d)\n", "rapid_type_analysis.nit", 81);
635 var35
= more_collections__HashMap2___91d_93d(var32
, var_mtype
, var_mproperty
);
639 if (var_res
== NULL
) {
640 var37
= 0; /* is null */
642 var37
= 1; /* arg is null and recv is not */
645 { /* Inline kernel#Object#!= (var_res,var36) on <var_res:nullable Set[MMethodDef]> */
648 var41
= ((short int (*)(val
*, val
*))(var_res
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var_res
, var_other
) /* == on <var_res:nullable Set[MMethodDef](Set[MMethodDef])>*/;
663 var43
= NEW_array__ArraySet(&type_array__ArraySetmodel__MMethodDef
);
665 ((void (*)(val
*))(var43
->class->vft
[COLOR_kernel__Object__init
]))(var43
) /* init on <var43:ArraySet[MMethodDef]>*/;
669 { /* Inline rapid_type_analysis#RapidTypeAnalysis#live_targets_cache (self) on <self:RapidTypeAnalysis> */
670 var46
= self
->attrs
[COLOR_rapid_type_analysis__RapidTypeAnalysis___live_targets_cache
].val
; /* _live_targets_cache on <self:RapidTypeAnalysis> */
671 if (unlikely(var46
== NULL
)) {
672 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_targets_cache");
673 PRINT_ERROR(" (%s:%d)\n", "rapid_type_analysis.nit", 81);
681 more_collections__HashMap2___91d_93d_61d(var44
, var_mtype
, var_mproperty
, var_res
); /* Direct call more_collections#HashMap2#[]= on <var44:HashMap2[MType, MProperty, Set[MMethodDef]]>*/
684 { /* Inline rapid_type_analysis#RapidTypeAnalysis#live_classes (self) on <self:RapidTypeAnalysis> */
685 var49
= self
->attrs
[COLOR_rapid_type_analysis__RapidTypeAnalysis___live_classes
].val
; /* _live_classes on <self:RapidTypeAnalysis> */
686 if (unlikely(var49
== NULL
)) {
687 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_classes");
688 PRINT_ERROR(" (%s:%d)\n", "rapid_type_analysis.nit", 62);
697 var50
= hash_collection__HashSet__iterator(var_
);
702 var52
= ((short int (*)(val
*))(var_51
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var_51
) /* is_ok on <var_51:Iterator[MClass]>*/;
706 var53
= ((val
* (*)(val
*))(var_51
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var_51
) /* item on <var_51:Iterator[MClass]>*/;
710 { /* Inline model#MClass#intro (var_c) on <var_c:MClass> */
711 var56
= var_c
->attrs
[COLOR_model__MClass___intro
].val
; /* _intro on <var_c:MClass> */
712 if (unlikely(var56
== NULL
)) {
713 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro");
714 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 420);
722 { /* Inline model#MClassDef#bound_mtype (var54) on <var54:MClassDef> */
723 var59
= var54
->attrs
[COLOR_model__MClassDef___bound_mtype
].val
; /* _bound_mtype on <var54:MClassDef> */
724 if (unlikely(var59
== NULL
)) {
725 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _bound_mtype");
726 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 495);
735 { /* Inline rapid_type_analysis#RapidTypeAnalysis#mainmodule (self) on <self:RapidTypeAnalysis> */
736 var62
= self
->attrs
[COLOR_rapid_type_analysis__RapidTypeAnalysis___mainmodule
].val
; /* _mainmodule on <self:RapidTypeAnalysis> */
737 if (unlikely(var62
== NULL
)) {
738 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule");
739 PRINT_ERROR(" (%s:%d)\n", "rapid_type_analysis.nit", 49);
748 var64
= model__MType__is_subtype(var_tc
, var60
, var63
, var_mtype
);
756 { /* Inline rapid_type_analysis#RapidTypeAnalysis#mainmodule (self) on <self:RapidTypeAnalysis> */
757 var68
= self
->attrs
[COLOR_rapid_type_analysis__RapidTypeAnalysis___mainmodule
].val
; /* _mainmodule on <self:RapidTypeAnalysis> */
758 if (unlikely(var68
== NULL
)) {
759 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule");
760 PRINT_ERROR(" (%s:%d)\n", "rapid_type_analysis.nit", 49);
768 var69
= model__MProperty__lookup_first_definition(var_mproperty
, var66
, var_tc
);
772 array__ArraySet__add(var_res
, var_d
); /* Direct call array#ArraySet#add on <var_res:nullable Set[MMethodDef](ArraySet[MMethodDef])>*/
774 BREAK_label
: (void)0;
776 ((void (*)(val
*))(var_51
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var_51
) /* next on <var_51:Iterator[MClass]>*/;
782 BREAK_label70
: (void)0;
784 { /* Inline abstract_collection#Iterator#finish (var_51) on <var_51:Iterator[MClass]> */
793 /* method rapid_type_analysis#RapidTypeAnalysis#live_targets for (self: Object, CallSite): Set[MMethodDef] */
794 val
* VIRTUAL_rapid_type_analysis__RapidTypeAnalysis__live_targets(val
* self
, val
* p0
) {
795 val
* var
/* : Set[MMethodDef] */;
796 val
* var1
/* : Set[MMethodDef] */;
797 var1
= rapid_type_analysis__RapidTypeAnalysis__live_targets(self
, p0
);
802 /* method rapid_type_analysis#RapidTypeAnalysis#live_super_sends for (self: RapidTypeAnalysis): HashSet[MMethodDef] */
803 val
* rapid_type_analysis__RapidTypeAnalysis__live_super_sends(val
* self
) {
804 val
* var
/* : HashSet[MMethodDef] */;
805 val
* var1
/* : HashSet[MMethodDef] */;
806 var1
= self
->attrs
[COLOR_rapid_type_analysis__RapidTypeAnalysis___live_super_sends
].val
; /* _live_super_sends on <self:RapidTypeAnalysis> */
807 if (unlikely(var1
== NULL
)) {
808 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_super_sends");
809 PRINT_ERROR(" (%s:%d)\n", "rapid_type_analysis.nit", 108);
816 /* method rapid_type_analysis#RapidTypeAnalysis#live_super_sends for (self: Object): HashSet[MMethodDef] */
817 val
* VIRTUAL_rapid_type_analysis__RapidTypeAnalysis__live_super_sends(val
* self
) {
818 val
* var
/* : HashSet[MMethodDef] */;
819 val
* var1
/* : HashSet[MMethodDef] */;
820 val
* var3
/* : HashSet[MMethodDef] */;
821 { /* Inline rapid_type_analysis#RapidTypeAnalysis#live_super_sends (self) on <self:Object(RapidTypeAnalysis)> */
822 var3
= self
->attrs
[COLOR_rapid_type_analysis__RapidTypeAnalysis___live_super_sends
].val
; /* _live_super_sends on <self:Object(RapidTypeAnalysis)> */
823 if (unlikely(var3
== NULL
)) {
824 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_super_sends");
825 PRINT_ERROR(" (%s:%d)\n", "rapid_type_analysis.nit", 108);
835 /* method rapid_type_analysis#RapidTypeAnalysis#totry_methods for (self: RapidTypeAnalysis): HashSet[MMethod] */
836 val
* rapid_type_analysis__RapidTypeAnalysis__totry_methods(val
* self
) {
837 val
* var
/* : HashSet[MMethod] */;
838 val
* var1
/* : HashSet[MMethod] */;
839 var1
= self
->attrs
[COLOR_rapid_type_analysis__RapidTypeAnalysis___totry_methods
].val
; /* _totry_methods on <self:RapidTypeAnalysis> */
840 if (unlikely(var1
== NULL
)) {
841 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _totry_methods");
842 PRINT_ERROR(" (%s:%d)\n", "rapid_type_analysis.nit", 162);
849 /* method rapid_type_analysis#RapidTypeAnalysis#totry_methods for (self: Object): HashSet[MMethod] */
850 val
* VIRTUAL_rapid_type_analysis__RapidTypeAnalysis__totry_methods(val
* self
) {
851 val
* var
/* : HashSet[MMethod] */;
852 val
* var1
/* : HashSet[MMethod] */;
853 val
* var3
/* : HashSet[MMethod] */;
854 { /* Inline rapid_type_analysis#RapidTypeAnalysis#totry_methods (self) on <self:Object(RapidTypeAnalysis)> */
855 var3
= self
->attrs
[COLOR_rapid_type_analysis__RapidTypeAnalysis___totry_methods
].val
; /* _totry_methods on <self:Object(RapidTypeAnalysis)> */
856 if (unlikely(var3
== NULL
)) {
857 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _totry_methods");
858 PRINT_ERROR(" (%s:%d)\n", "rapid_type_analysis.nit", 162);
868 /* method rapid_type_analysis#RapidTypeAnalysis#totry_methods_to_remove for (self: RapidTypeAnalysis): Array[MMethod] */
869 val
* rapid_type_analysis__RapidTypeAnalysis__totry_methods_to_remove(val
* self
) {
870 val
* var
/* : Array[MMethod] */;
871 val
* var1
/* : Array[MMethod] */;
872 var1
= self
->attrs
[COLOR_rapid_type_analysis__RapidTypeAnalysis___totry_methods_to_remove
].val
; /* _totry_methods_to_remove on <self:RapidTypeAnalysis> */
873 if (unlikely(var1
== NULL
)) {
874 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _totry_methods_to_remove");
875 PRINT_ERROR(" (%s:%d)\n", "rapid_type_analysis.nit", 165);
882 /* method rapid_type_analysis#RapidTypeAnalysis#totry_methods_to_remove for (self: Object): Array[MMethod] */
883 val
* VIRTUAL_rapid_type_analysis__RapidTypeAnalysis__totry_methods_to_remove(val
* self
) {
884 val
* var
/* : Array[MMethod] */;
885 val
* var1
/* : Array[MMethod] */;
886 val
* var3
/* : Array[MMethod] */;
887 { /* Inline rapid_type_analysis#RapidTypeAnalysis#totry_methods_to_remove (self) on <self:Object(RapidTypeAnalysis)> */
888 var3
= self
->attrs
[COLOR_rapid_type_analysis__RapidTypeAnalysis___totry_methods_to_remove
].val
; /* _totry_methods_to_remove on <self:Object(RapidTypeAnalysis)> */
889 if (unlikely(var3
== NULL
)) {
890 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _totry_methods_to_remove");
891 PRINT_ERROR(" (%s:%d)\n", "rapid_type_analysis.nit", 165);
901 /* method rapid_type_analysis#RapidTypeAnalysis#try_methods for (self: RapidTypeAnalysis): HashSet[MMethod] */
902 val
* rapid_type_analysis__RapidTypeAnalysis__try_methods(val
* self
) {
903 val
* var
/* : HashSet[MMethod] */;
904 val
* var1
/* : HashSet[MMethod] */;
905 var1
= self
->attrs
[COLOR_rapid_type_analysis__RapidTypeAnalysis___try_methods
].val
; /* _try_methods on <self:RapidTypeAnalysis> */
906 if (unlikely(var1
== NULL
)) {
907 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _try_methods");
908 PRINT_ERROR(" (%s:%d)\n", "rapid_type_analysis.nit", 168);
915 /* method rapid_type_analysis#RapidTypeAnalysis#try_methods for (self: Object): HashSet[MMethod] */
916 val
* VIRTUAL_rapid_type_analysis__RapidTypeAnalysis__try_methods(val
* self
) {
917 val
* var
/* : HashSet[MMethod] */;
918 val
* var1
/* : HashSet[MMethod] */;
919 val
* var3
/* : HashSet[MMethod] */;
920 { /* Inline rapid_type_analysis#RapidTypeAnalysis#try_methods (self) on <self:Object(RapidTypeAnalysis)> */
921 var3
= self
->attrs
[COLOR_rapid_type_analysis__RapidTypeAnalysis___try_methods
].val
; /* _try_methods on <self:Object(RapidTypeAnalysis)> */
922 if (unlikely(var3
== NULL
)) {
923 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _try_methods");
924 PRINT_ERROR(" (%s:%d)\n", "rapid_type_analysis.nit", 168);
934 /* method rapid_type_analysis#RapidTypeAnalysis#todo for (self: RapidTypeAnalysis): List[MMethodDef] */
935 val
* rapid_type_analysis__RapidTypeAnalysis__todo(val
* self
) {
936 val
* var
/* : List[MMethodDef] */;
937 val
* var1
/* : List[MMethodDef] */;
938 var1
= self
->attrs
[COLOR_rapid_type_analysis__RapidTypeAnalysis___todo
].val
; /* _todo on <self:RapidTypeAnalysis> */
939 if (unlikely(var1
== NULL
)) {
940 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _todo");
941 PRINT_ERROR(" (%s:%d)\n", "rapid_type_analysis.nit", 172);
948 /* method rapid_type_analysis#RapidTypeAnalysis#todo for (self: Object): List[MMethodDef] */
949 val
* VIRTUAL_rapid_type_analysis__RapidTypeAnalysis__todo(val
* self
) {
950 val
* var
/* : List[MMethodDef] */;
951 val
* var1
/* : List[MMethodDef] */;
952 val
* var3
/* : List[MMethodDef] */;
953 { /* Inline rapid_type_analysis#RapidTypeAnalysis#todo (self) on <self:Object(RapidTypeAnalysis)> */
954 var3
= self
->attrs
[COLOR_rapid_type_analysis__RapidTypeAnalysis___todo
].val
; /* _todo on <self:Object(RapidTypeAnalysis)> */
955 if (unlikely(var3
== NULL
)) {
956 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _todo");
957 PRINT_ERROR(" (%s:%d)\n", "rapid_type_analysis.nit", 172);
967 /* method rapid_type_analysis#RapidTypeAnalysis#force_alive for (self: RapidTypeAnalysis, String) */
968 void rapid_type_analysis__RapidTypeAnalysis__force_alive(val
* self
, val
* p0
) {
969 val
* var_classname
/* var classname: String */;
970 val
* var
/* : ModelBuilder */;
971 val
* var2
/* : ModelBuilder */;
972 val
* var3
/* : Model */;
973 val
* var5
/* : Model */;
974 val
* var6
/* : nullable Array[MClass] */;
975 val
* var_classes
/* var classes: nullable Array[MClass] */;
976 val
* var7
/* : null */;
977 short int var8
/* : Bool */;
978 short int var9
/* : Bool */;
979 val
* var_other
/* var other: nullable Object */;
980 short int var11
/* : Bool */;
981 short int var12
/* : Bool */;
982 short int var13
/* : Bool */;
983 val
* var_
/* var : Array[MClass] */;
984 val
* var14
/* : ArrayIterator[nullable Object] */;
985 val
* var_15
/* var : ArrayIterator[MClass] */;
986 short int var16
/* : Bool */;
987 val
* var17
/* : nullable Object */;
988 val
* var_c
/* var c: MClass */;
989 val
* var18
/* : MClassType */;
990 val
* var20
/* : MClassType */;
991 val
* var21
/* : MClassType */;
992 val
* var23
/* : MClassType */;
995 { /* Inline rapid_type_analysis#RapidTypeAnalysis#modelbuilder (self) on <self:RapidTypeAnalysis> */
996 var2
= self
->attrs
[COLOR_rapid_type_analysis__RapidTypeAnalysis___modelbuilder
].val
; /* _modelbuilder on <self:RapidTypeAnalysis> */
997 if (unlikely(var2
== NULL
)) {
998 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
999 PRINT_ERROR(" (%s:%d)\n", "rapid_type_analysis.nit", 46);
1007 { /* Inline modelbuilder#ModelBuilder#model (var) on <var:ModelBuilder> */
1008 var5
= var
->attrs
[COLOR_modelbuilder__ModelBuilder___model
].val
; /* _model on <var:ModelBuilder> */
1009 if (unlikely(var5
== NULL
)) {
1010 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _model");
1011 PRINT_ERROR(" (%s:%d)\n", "modelbuilder.nit", 103);
1019 var6
= model__Model__get_mclasses_by_name(var3
, var_classname
);
1023 if (var_classes
== NULL
) {
1024 var8
= 0; /* is null */
1026 var8
= 1; /* arg is null and recv is not */
1029 { /* Inline kernel#Object#!= (var_classes,var7) on <var_classes:nullable Array[MClass]> */
1032 var12
= ((short int (*)(val
*, val
*))(var_classes
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var_classes
, var_other
) /* == on <var_classes:nullable Array[MClass](Array[MClass])>*/;
1038 RET_LABEL10
:(void)0;
1045 var14
= array__AbstractArrayRead__iterator(var_
);
1050 var16
= array__ArrayIterator__is_ok(var_15
);
1054 var17
= array__ArrayIterator__item(var_15
);
1058 { /* Inline model#MClass#mclass_type (var_c) on <var_c:MClass> */
1059 var20
= var_c
->attrs
[COLOR_model__MClass___mclass_type
].val
; /* _mclass_type on <var_c:MClass> */
1060 if (unlikely(var20
== NULL
)) {
1061 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass_type");
1062 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 435);
1066 RET_LABEL19
:(void)0;
1070 { /* Inline model#MClass#mclass_type (var_c) on <var_c:MClass> */
1071 var23
= var_c
->attrs
[COLOR_model__MClass___mclass_type
].val
; /* _mclass_type on <var_c:MClass> */
1072 if (unlikely(var23
== NULL
)) {
1073 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass_type");
1074 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 435);
1078 RET_LABEL22
:(void)0;
1082 rapid_type_analysis__RapidTypeAnalysis__add_new(self
, var18
, var21
); /* Direct call rapid_type_analysis#RapidTypeAnalysis#add_new on <self:RapidTypeAnalysis>*/
1085 array__ArrayIterator__next(var_15
); /* Direct call array#ArrayIterator#next on <var_15:ArrayIterator[MClass]>*/
1091 BREAK_label
: (void)0;
1093 { /* Inline abstract_collection#Iterator#finish (var_15) on <var_15:ArrayIterator[MClass]> */
1094 RET_LABEL24
:(void)0;
1101 /* method rapid_type_analysis#RapidTypeAnalysis#force_alive for (self: Object, String) */
1102 void VIRTUAL_rapid_type_analysis__RapidTypeAnalysis__force_alive(val
* self
, val
* p0
) {
1103 rapid_type_analysis__RapidTypeAnalysis__force_alive(self
, p0
); /* Direct call rapid_type_analysis#RapidTypeAnalysis#force_alive on <self:Object(RapidTypeAnalysis)>*/
1106 /* method rapid_type_analysis#RapidTypeAnalysis#run_analysis for (self: RapidTypeAnalysis) */
1107 void rapid_type_analysis__RapidTypeAnalysis__run_analysis(val
* self
) {
1108 val
* var
/* : MModule */;
1109 val
* var2
/* : MModule */;
1110 val
* var3
/* : nullable MClassType */;
1111 val
* var_maintype
/* var maintype: nullable MClassType */;
1112 val
* var4
/* : null */;
1113 short int var5
/* : Bool */;
1114 short int var6
/* : Bool */;
1115 val
* var_other
/* var other: nullable Object */;
1116 short int var8
/* : Bool */;
1117 short int var10
/* : Bool */;
1118 val
* var11
/* : MModule */;
1119 val
* var13
/* : MModule */;
1120 static val
* varonce
;
1121 val
* var14
/* : String */;
1122 char* var15
/* : NativeString */;
1123 long var16
/* : Int */;
1124 val
* var17
/* : FlatString */;
1125 val
* var18
/* : MClass */;
1126 val
* var20
/* : MClass */;
1127 val
* var21
/* : nullable MMethod */;
1128 val
* var_initprop
/* var initprop: nullable MMethod */;
1129 val
* var22
/* : null */;
1130 short int var23
/* : Bool */;
1131 short int var24
/* : Bool */;
1132 val
* var_other26
/* var other: nullable Object */;
1133 short int var27
/* : Bool */;
1134 short int var28
/* : Bool */;
1135 short int var29
/* : Bool */;
1136 val
* var30
/* : nullable MMethod */;
1137 val
* var31
/* : MModule */;
1138 val
* var33
/* : MModule */;
1139 static val
* varonce34
;
1140 val
* var35
/* : String */;
1141 char* var36
/* : NativeString */;
1142 long var37
/* : Int */;
1143 val
* var38
/* : FlatString */;
1144 val
* var39
/* : MClass */;
1145 val
* var41
/* : MClass */;
1146 val
* var42
/* : nullable MMethod */;
1147 val
* var43
/* : MModule */;
1148 val
* var45
/* : MModule */;
1149 static val
* varonce46
;
1150 val
* var47
/* : String */;
1151 char* var48
/* : NativeString */;
1152 long var49
/* : Int */;
1153 val
* var50
/* : FlatString */;
1154 val
* var51
/* : MClass */;
1155 val
* var53
/* : MClass */;
1156 val
* var54
/* : nullable MMethod */;
1157 val
* var_mainprop
/* var mainprop: nullable MMethod */;
1158 val
* var55
/* : null */;
1159 short int var56
/* : Bool */;
1160 short int var57
/* : Bool */;
1161 short int var59
/* : Bool */;
1162 short int var60
/* : Bool */;
1163 short int var61
/* : Bool */;
1164 val
* var62
/* : MModule */;
1165 val
* var64
/* : MModule */;
1166 val
* var65
/* : nullable MClassType */;
1167 val
* var_finalizable_type
/* var finalizable_type: nullable MClassType */;
1168 val
* var66
/* : null */;
1169 short int var67
/* : Bool */;
1170 short int var68
/* : Bool */;
1171 short int var70
/* : Bool */;
1172 short int var71
/* : Bool */;
1173 short int var72
/* : Bool */;
1174 val
* var73
/* : MModule */;
1175 val
* var75
/* : MModule */;
1176 static val
* varonce76
;
1177 val
* var77
/* : String */;
1178 char* var78
/* : NativeString */;
1179 long var79
/* : Int */;
1180 val
* var80
/* : FlatString */;
1181 val
* var81
/* : MClass */;
1182 val
* var83
/* : MClass */;
1183 val
* var84
/* : nullable MMethod */;
1184 val
* var_finalize_meth
/* var finalize_meth: nullable MMethod */;
1185 val
* var85
/* : null */;
1186 short int var86
/* : Bool */;
1187 short int var87
/* : Bool */;
1188 short int var89
/* : Bool */;
1189 short int var90
/* : Bool */;
1190 short int var91
/* : Bool */;
1191 static val
* varonce92
;
1192 val
* var93
/* : String */;
1193 char* var94
/* : NativeString */;
1194 long var95
/* : Int */;
1195 val
* var96
/* : FlatString */;
1196 static val
* varonce97
;
1197 val
* var98
/* : String */;
1198 char* var99
/* : NativeString */;
1199 long var100
/* : Int */;
1200 val
* var101
/* : FlatString */;
1201 static val
* varonce102
;
1202 val
* var103
/* : String */;
1203 char* var104
/* : NativeString */;
1204 long var105
/* : Int */;
1205 val
* var106
/* : FlatString */;
1206 static val
* varonce107
;
1207 val
* var108
/* : String */;
1208 char* var109
/* : NativeString */;
1209 long var110
/* : Int */;
1210 val
* var111
/* : FlatString */;
1211 static val
* varonce112
;
1212 val
* var113
/* : String */;
1213 char* var114
/* : NativeString */;
1214 long var115
/* : Int */;
1215 val
* var116
/* : FlatString */;
1216 val
* var117
/* : List[MMethodDef] */;
1217 val
* var119
/* : List[MMethodDef] */;
1218 short int var120
/* : Bool */;
1219 short int var121
/* : Bool */;
1220 val
* var122
/* : List[MMethodDef] */;
1221 val
* var124
/* : List[MMethodDef] */;
1222 val
* var125
/* : nullable Object */;
1223 val
* var_mmethoddef
/* var mmethoddef: MMethodDef */;
1224 val
* var126
/* : MProperty */;
1225 val
* var128
/* : MProperty */;
1226 val
* var_mmeth
/* var mmeth: MMethod */;
1227 val
* var129
/* : RapidTypeVisitor */;
1228 val
* var130
/* : MClassDef */;
1229 val
* var132
/* : MClassDef */;
1230 val
* var133
/* : MClassType */;
1231 val
* var135
/* : MClassType */;
1232 val
* var_v
/* var v: RapidTypeVisitor */;
1233 val
* var136
/* : nullable MSignature */;
1234 val
* var138
/* : nullable MSignature */;
1235 long var139
/* : Int */;
1236 long var141
/* : Int */;
1237 long var_vararg_rank
/* var vararg_rank: Int */;
1238 long var142
/* : Int */;
1239 long var143
/* : Int */;
1240 long var145
/* : Int */;
1241 short int var146
/* : Bool */;
1242 short int var148
/* : Bool */;
1245 const char* var_class_name
;
1246 short int var149
/* : Bool */;
1247 val
* var150
/* : ModelBuilder */;
1248 val
* var152
/* : ModelBuilder */;
1249 val
* var153
/* : HashMap[MPropDef, APropdef] */;
1250 val
* var155
/* : HashMap[MPropDef, APropdef] */;
1251 val
* var156
/* : nullable Object */;
1252 val
* var_node
/* var node: APropdef */;
1253 val
* var157
/* : nullable MSignature */;
1254 val
* var159
/* : nullable MSignature */;
1255 val
* var160
/* : Array[MParameter] */;
1256 val
* var162
/* : Array[MParameter] */;
1257 val
* var163
/* : nullable Object */;
1258 val
* var164
/* : MType */;
1259 val
* var166
/* : MType */;
1260 val
* var_elttype
/* var elttype: MType */;
1261 val
* var167
/* : MModule */;
1262 val
* var169
/* : MModule */;
1263 static val
* varonce170
;
1264 val
* var171
/* : String */;
1265 char* var172
/* : NativeString */;
1266 long var173
/* : Int */;
1267 val
* var174
/* : FlatString */;
1268 val
* var175
/* : MClass */;
1269 val
* var176
/* : Array[MType] */;
1270 long var177
/* : Int */;
1271 val
* var_
/* var : Array[MType] */;
1272 val
* var178
/* : MClassType */;
1273 val
* var_vararg
/* var vararg: MClassType */;
1274 val
* var179
/* : MModule */;
1275 val
* var181
/* : MModule */;
1276 static val
* varonce182
;
1277 val
* var183
/* : String */;
1278 char* var184
/* : NativeString */;
1279 long var185
/* : Int */;
1280 val
* var186
/* : FlatString */;
1281 val
* var187
/* : MClass */;
1282 val
* var188
/* : Array[MType] */;
1283 long var189
/* : Int */;
1284 val
* var_190
/* var : Array[MType] */;
1285 val
* var191
/* : MClassType */;
1286 val
* var_native
/* var native: MClassType */;
1287 val
* var192
/* : ModelBuilder */;
1288 val
* var194
/* : ModelBuilder */;
1289 static val
* varonce195
;
1290 val
* var196
/* : String */;
1291 char* var197
/* : NativeString */;
1292 long var198
/* : Int */;
1293 val
* var199
/* : FlatString */;
1294 val
* var200
/* : MClass */;
1295 val
* var202
/* : MClass */;
1296 val
* var203
/* : MModule */;
1297 val
* var205
/* : MModule */;
1298 val
* var206
/* : MMethod */;
1299 val
* var207
/* : nullable MSignature */;
1300 val
* var209
/* : nullable MSignature */;
1301 val
* var_sig
/* var sig: MSignature */;
1302 val
* var210
/* : MPropDef */;
1303 val
* var212
/* : MPropDef */;
1304 val
* var213
/* : nullable MSignature */;
1305 val
* var215
/* : nullable MSignature */;
1306 val
* var_osig
/* var osig: MSignature */;
1307 long var216
/* : Int */;
1308 long var_i
/* var i: Int */;
1309 long var217
/* : Int */;
1310 long var_218
/* var : Int */;
1311 short int var219
/* : Bool */;
1312 short int var221
/* : Bool */;
1315 const char* var_class_name224
;
1316 short int var225
/* : Bool */;
1317 val
* var226
/* : Array[MParameter] */;
1318 val
* var228
/* : Array[MParameter] */;
1319 val
* var229
/* : nullable Object */;
1320 val
* var230
/* : MType */;
1321 val
* var232
/* : MType */;
1322 val
* var_origtype
/* var origtype: MType */;
1323 short int var233
/* : Bool */;
1324 short int var234
/* : Bool */;
1325 val
* var235
/* : Array[MParameter] */;
1326 val
* var237
/* : Array[MParameter] */;
1327 val
* var238
/* : nullable Object */;
1328 val
* var239
/* : MType */;
1329 val
* var241
/* : MType */;
1330 val
* var_paramtype
/* var paramtype: MType */;
1331 long var242
/* : Int */;
1332 long var243
/* : Int */;
1333 val
* var245
/* : ModelBuilder */;
1334 val
* var247
/* : ModelBuilder */;
1335 val
* var248
/* : HashMap[MPropDef, APropdef] */;
1336 val
* var250
/* : HashMap[MPropDef, APropdef] */;
1337 short int var251
/* : Bool */;
1338 short int var252
/* : Bool */;
1339 short int var253
/* : Bool */;
1340 short int var255
/* : Bool */;
1341 val
* var256
/* : ModelBuilder */;
1342 val
* var258
/* : ModelBuilder */;
1343 val
* var259
/* : HashMap[MClassDef, AClassdef] */;
1344 val
* var261
/* : HashMap[MClassDef, AClassdef] */;
1345 val
* var262
/* : MClassDef */;
1346 val
* var264
/* : MClassDef */;
1347 val
* var265
/* : nullable Object */;
1348 val
* var_nclassdef
/* var nclassdef: AClassdef */;
1349 val
* var266
/* : nullable MMethodDef */;
1350 val
* var268
/* : nullable MMethodDef */;
1351 short int var269
/* : Bool */;
1352 short int var270
/* : Bool */;
1353 short int var272
/* : Bool */;
1354 short int var274
/* : Bool */;
1355 short int var275
/* : Bool */;
1356 val
* var276
/* : MProperty */;
1357 val
* var278
/* : MProperty */;
1358 short int var279
/* : Bool */;
1359 short int var281
/* : Bool */;
1360 short int var_282
/* var : Bool */;
1361 short int var283
/* : Bool */;
1362 short int var284
/* : Bool */;
1363 val
* var285
/* : MClassType */;
1364 val
* var287
/* : MClassType */;
1365 val
* var288
/* : nullable Object */;
1366 val
* var290
/* : nullable Object */;
1367 val
* var291
/* : null */;
1368 short int var292
/* : Bool */;
1369 short int var293
/* : Bool */;
1370 val
* var294
/* : nullable MSignature */;
1371 val
* var296
/* : nullable MSignature */;
1372 val
* var297
/* : nullable MType */;
1373 val
* var299
/* : nullable MType */;
1374 short int var300
/* : Bool */;
1377 const char* var_class_name303
;
1378 val
* var305
/* : ModelBuilder */;
1379 val
* var307
/* : ModelBuilder */;
1380 val
* var308
/* : HashMap[MPropDef, APropdef] */;
1381 val
* var310
/* : HashMap[MPropDef, APropdef] */;
1382 val
* var311
/* : nullable Object */;
1383 val
* var_npropdef
/* var npropdef: APropdef */;
1384 short int var312
/* : Bool */;
1387 val
* var315
/* : nullable Array[CallSite] */;
1388 val
* var317
/* : nullable Array[CallSite] */;
1389 val
* var_auto_super_inits
/* var auto_super_inits: nullable Array[CallSite] */;
1390 val
* var318
/* : null */;
1391 short int var319
/* : Bool */;
1392 short int var320
/* : Bool */;
1393 short int var322
/* : Bool */;
1394 short int var323
/* : Bool */;
1395 short int var324
/* : Bool */;
1396 val
* var_325
/* var : Array[CallSite] */;
1397 val
* var326
/* : ArrayIterator[nullable Object] */;
1398 val
* var_327
/* var : ArrayIterator[CallSite] */;
1399 short int var328
/* : Bool */;
1400 val
* var329
/* : nullable Object */;
1401 val
* var_auto_super_init
/* var auto_super_init: CallSite */;
1402 short int var332
/* : Bool */;
1403 short int var334
/* : Bool */;
1404 val
* var335
/* : MClassType */;
1405 val
* var337
/* : MClassType */;
1406 short int var338
/* : Bool */;
1407 short int var339
/* : Bool */;
1408 short int var341
/* : Bool */;
1409 short int var_342
/* var : Bool */;
1410 short int var343
/* : Bool */;
1411 short int var345
/* : Bool */;
1412 val
* var346
/* : nullable MSignature */;
1413 val
* var348
/* : nullable MSignature */;
1414 val
* var349
/* : nullable MType */;
1415 val
* var351
/* : nullable MType */;
1416 val
* var_ret
/* var ret: nullable MType */;
1417 short int var352
/* : Bool */;
1418 short int var353
/* : Bool */;
1419 short int var354
/* : Bool */;
1420 val
* var355
/* : null */;
1421 short int var356
/* : Bool */;
1422 short int var357
/* : Bool */;
1423 short int var359
/* : Bool */;
1424 short int var360
/* : Bool */;
1425 short int var361
/* : Bool */;
1426 short int var_362
/* var : Bool */;
1427 short int var363
/* : Bool */;
1430 short int var_366
/* var : Bool */;
1431 val
* var367
/* : MClass */;
1432 val
* var369
/* : MClass */;
1433 val
* var370
/* : MClassKind */;
1434 val
* var372
/* : MClassKind */;
1435 val
* var373
/* : MClassKind */;
1436 short int var374
/* : Bool */;
1437 short int var375
/* : Bool */;
1438 short int var377
/* : Bool */;
1439 short int var378
/* : Bool */;
1440 short int var379
/* : Bool */;
1441 short int var_380
/* var : Bool */;
1442 val
* var381
/* : MClass */;
1443 val
* var383
/* : MClass */;
1444 val
* var384
/* : MClassKind */;
1445 val
* var386
/* : MClassKind */;
1446 val
* var387
/* : MClassKind */;
1447 short int var388
/* : Bool */;
1448 short int var389
/* : Bool */;
1449 short int var391
/* : Bool */;
1450 short int var392
/* : Bool */;
1451 short int var393
/* : Bool */;
1452 val
* var395
/* : List[MClassType] */;
1453 val
* var_todo_types
/* var todo_types: List[MClassType] */;
1454 val
* var396
/* : HashSet[MClassType] */;
1455 val
* var398
/* : HashSet[MClassType] */;
1456 short int var399
/* : Bool */;
1457 short int var400
/* : Bool */;
1458 val
* var401
/* : nullable Object */;
1459 val
* var_t
/* var t: MClassType */;
1460 val
* var402
/* : HashSet[MClassType] */;
1461 val
* var404
/* : HashSet[MClassType] */;
1462 val
* var_405
/* var : HashSet[MClassType] */;
1463 val
* var406
/* : Iterator[Object] */;
1464 val
* var_407
/* var : Iterator[MClassType] */;
1465 short int var408
/* : Bool */;
1466 val
* var409
/* : nullable Object */;
1467 val
* var_ot
/* var ot: MClassType */;
1468 val
* var410
/* : MModule */;
1469 val
* var412
/* : MModule */;
1470 short int var413
/* : Bool */;
1471 short int var414
/* : Bool */;
1472 val
* var416
/* : MModule */;
1473 val
* var418
/* : MModule */;
1474 val
* var419
/* : MClassType */;
1475 val
* var_rt
/* var rt: MClassType */;
1476 val
* var420
/* : HashSet[MClassType] */;
1477 val
* var422
/* : HashSet[MClassType] */;
1478 short int var423
/* : Bool */;
1479 val
* var424
/* : HashSet[MClassType] */;
1480 val
* var426
/* : HashSet[MClassType] */;
1481 val
* var430
/* : HashSet[MType] */;
1482 val
* var432
/* : HashSet[MType] */;
1483 val
* var_433
/* var : HashSet[MType] */;
1484 val
* var434
/* : Iterator[Object] */;
1485 val
* var_435
/* var : Iterator[MType] */;
1486 short int var436
/* : Bool */;
1487 val
* var437
/* : nullable Object */;
1488 val
* var_ot438
/* var ot: MType */;
1489 val
* var439
/* : HashSet[MClassType] */;
1490 val
* var441
/* : HashSet[MClassType] */;
1491 val
* var_442
/* var : HashSet[MClassType] */;
1492 val
* var443
/* : Iterator[Object] */;
1493 val
* var_444
/* var : Iterator[MClassType] */;
1494 short int var445
/* : Bool */;
1495 val
* var446
/* : nullable Object */;
1496 val
* var_t447
/* var t: MClassType */;
1497 val
* var448
/* : MModule */;
1498 val
* var450
/* : MModule */;
1499 short int var451
/* : Bool */;
1500 short int var452
/* : Bool */;
1501 val
* var454
/* : MModule */;
1502 val
* var456
/* : MModule */;
1503 val
* var457
/* : MType */;
1504 val
* var_rt458
/* var rt: MType */;
1505 val
* var459
/* : HashSet[MType] */;
1506 val
* var461
/* : HashSet[MType] */;
1508 { /* Inline rapid_type_analysis#RapidTypeAnalysis#mainmodule (self) on <self:RapidTypeAnalysis> */
1509 var2
= self
->attrs
[COLOR_rapid_type_analysis__RapidTypeAnalysis___mainmodule
].val
; /* _mainmodule on <self:RapidTypeAnalysis> */
1510 if (unlikely(var2
== NULL
)) {
1511 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule");
1512 PRINT_ERROR(" (%s:%d)\n", "rapid_type_analysis.nit", 49);
1520 var3
= model__MModule__sys_type(var
);
1522 var_maintype
= var3
;
1524 if (var_maintype
== NULL
) {
1525 var5
= 1; /* is null */
1527 var5
= 0; /* arg is null but recv is not */
1530 { /* Inline kernel#Object#== (var_maintype,var4) on <var_maintype:nullable MClassType> */
1533 { /* Inline kernel#Object#is_same_instance (var_maintype,var_other) on <var_maintype:nullable MClassType(MClassType)> */
1534 var10
= var_maintype
== var_other
;
1551 rapid_type_analysis__RapidTypeAnalysis__add_new(self
, var_maintype
, var_maintype
); /* Direct call rapid_type_analysis#RapidTypeAnalysis#add_new on <self:RapidTypeAnalysis>*/
1554 { /* Inline rapid_type_analysis#RapidTypeAnalysis#mainmodule (self) on <self:RapidTypeAnalysis> */
1555 var13
= self
->attrs
[COLOR_rapid_type_analysis__RapidTypeAnalysis___mainmodule
].val
; /* _mainmodule on <self:RapidTypeAnalysis> */
1556 if (unlikely(var13
== NULL
)) {
1557 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule");
1558 PRINT_ERROR(" (%s:%d)\n", "rapid_type_analysis.nit", 49);
1562 RET_LABEL12
:(void)0;
1570 var17
= string__NativeString__to_s_with_length(var15
, var16
);
1575 { /* Inline model#MClassType#mclass (var_maintype) on <var_maintype:nullable MClassType(MClassType)> */
1576 var20
= var_maintype
->attrs
[COLOR_model__MClassType___mclass
].val
; /* _mclass on <var_maintype:nullable MClassType(MClassType)> */
1577 if (unlikely(var20
== NULL
)) {
1578 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
1579 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 986);
1583 RET_LABEL19
:(void)0;
1587 var21
= model__MModule__try_get_primitive_method(var11
, var14
, var18
);
1589 var_initprop
= var21
;
1591 if (var_initprop
== NULL
) {
1592 var23
= 0; /* is null */
1594 var23
= 1; /* arg is null and recv is not */
1597 { /* Inline kernel#Object#!= (var_initprop,var22) on <var_initprop:nullable MMethod> */
1598 var_other26
= var22
;
1600 var28
= ((short int (*)(val
*, val
*))(var_initprop
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var_initprop
, var_other26
) /* == on <var_initprop:nullable MMethod(MMethod)>*/;
1606 RET_LABEL25
:(void)0;
1612 rapid_type_analysis__RapidTypeAnalysis__add_send(self
, var_maintype
, var_initprop
); /* Direct call rapid_type_analysis#RapidTypeAnalysis#add_send on <self:RapidTypeAnalysis>*/
1617 { /* Inline rapid_type_analysis#RapidTypeAnalysis#mainmodule (self) on <self:RapidTypeAnalysis> */
1618 var33
= self
->attrs
[COLOR_rapid_type_analysis__RapidTypeAnalysis___mainmodule
].val
; /* _mainmodule on <self:RapidTypeAnalysis> */
1619 if (unlikely(var33
== NULL
)) {
1620 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule");
1621 PRINT_ERROR(" (%s:%d)\n", "rapid_type_analysis.nit", 49);
1625 RET_LABEL32
:(void)0;
1633 var38
= string__NativeString__to_s_with_length(var36
, var37
);
1638 { /* Inline model#MClassType#mclass (var_maintype) on <var_maintype:nullable MClassType(MClassType)> */
1639 var41
= var_maintype
->attrs
[COLOR_model__MClassType___mclass
].val
; /* _mclass on <var_maintype:nullable MClassType(MClassType)> */
1640 if (unlikely(var41
== NULL
)) {
1641 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
1642 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 986);
1646 RET_LABEL40
:(void)0;
1650 var42
= model__MModule__try_get_primitive_method(var31
, var35
, var39
);
1656 { /* Inline rapid_type_analysis#RapidTypeAnalysis#mainmodule (self) on <self:RapidTypeAnalysis> */
1657 var45
= self
->attrs
[COLOR_rapid_type_analysis__RapidTypeAnalysis___mainmodule
].val
; /* _mainmodule on <self:RapidTypeAnalysis> */
1658 if (unlikely(var45
== NULL
)) {
1659 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule");
1660 PRINT_ERROR(" (%s:%d)\n", "rapid_type_analysis.nit", 49);
1664 RET_LABEL44
:(void)0;
1672 var50
= string__NativeString__to_s_with_length(var48
, var49
);
1677 { /* Inline model#MClassType#mclass (var_maintype) on <var_maintype:nullable MClassType(MClassType)> */
1678 var53
= var_maintype
->attrs
[COLOR_model__MClassType___mclass
].val
; /* _mclass on <var_maintype:nullable MClassType(MClassType)> */
1679 if (unlikely(var53
== NULL
)) {
1680 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
1681 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 986);
1685 RET_LABEL52
:(void)0;
1689 var54
= model__MModule__try_get_primitive_method(var43
, var47
, var51
);
1693 var_mainprop
= var30
;
1695 if (var_mainprop
== NULL
) {
1696 var56
= 0; /* is null */
1698 var56
= 1; /* arg is null and recv is not */
1701 { /* Inline kernel#Object#!= (var_mainprop,var55) on <var_mainprop:nullable MMethod> */
1702 var_other26
= var55
;
1704 var60
= ((short int (*)(val
*, val
*))(var_mainprop
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var_mainprop
, var_other26
) /* == on <var_mainprop:nullable MMethod(MMethod)>*/;
1710 RET_LABEL58
:(void)0;
1716 rapid_type_analysis__RapidTypeAnalysis__add_send(self
, var_maintype
, var_mainprop
); /* Direct call rapid_type_analysis#RapidTypeAnalysis#add_send on <self:RapidTypeAnalysis>*/
1721 { /* Inline rapid_type_analysis#RapidTypeAnalysis#mainmodule (self) on <self:RapidTypeAnalysis> */
1722 var64
= self
->attrs
[COLOR_rapid_type_analysis__RapidTypeAnalysis___mainmodule
].val
; /* _mainmodule on <self:RapidTypeAnalysis> */
1723 if (unlikely(var64
== NULL
)) {
1724 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule");
1725 PRINT_ERROR(" (%s:%d)\n", "rapid_type_analysis.nit", 49);
1729 RET_LABEL63
:(void)0;
1733 var65
= model__MModule__finalizable_type(var62
);
1735 var_finalizable_type
= var65
;
1737 if (var_finalizable_type
== NULL
) {
1738 var67
= 0; /* is null */
1740 var67
= 1; /* arg is null and recv is not */
1743 { /* Inline kernel#Object#!= (var_finalizable_type,var66) on <var_finalizable_type:nullable MClassType> */
1744 var_other26
= var66
;
1746 var71
= ((short int (*)(val
*, val
*))(var_finalizable_type
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var_finalizable_type
, var_other26
) /* == on <var_finalizable_type:nullable MClassType(MClassType)>*/;
1752 RET_LABEL69
:(void)0;
1758 { /* Inline rapid_type_analysis#RapidTypeAnalysis#mainmodule (self) on <self:RapidTypeAnalysis> */
1759 var75
= self
->attrs
[COLOR_rapid_type_analysis__RapidTypeAnalysis___mainmodule
].val
; /* _mainmodule on <self:RapidTypeAnalysis> */
1760 if (unlikely(var75
== NULL
)) {
1761 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule");
1762 PRINT_ERROR(" (%s:%d)\n", "rapid_type_analysis.nit", 49);
1766 RET_LABEL74
:(void)0;
1774 var80
= string__NativeString__to_s_with_length(var78
, var79
);
1779 { /* Inline model#MClassType#mclass (var_finalizable_type) on <var_finalizable_type:nullable MClassType(MClassType)> */
1780 var83
= var_finalizable_type
->attrs
[COLOR_model__MClassType___mclass
].val
; /* _mclass on <var_finalizable_type:nullable MClassType(MClassType)> */
1781 if (unlikely(var83
== NULL
)) {
1782 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
1783 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 986);
1787 RET_LABEL82
:(void)0;
1791 var84
= model__MModule__try_get_primitive_method(var73
, var77
, var81
);
1793 var_finalize_meth
= var84
;
1795 if (var_finalize_meth
== NULL
) {
1796 var86
= 0; /* is null */
1798 var86
= 1; /* arg is null and recv is not */
1801 { /* Inline kernel#Object#!= (var_finalize_meth,var85) on <var_finalize_meth:nullable MMethod> */
1802 var_other26
= var85
;
1804 var90
= ((short int (*)(val
*, val
*))(var_finalize_meth
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var_finalize_meth
, var_other26
) /* == on <var_finalize_meth:nullable MMethod(MMethod)>*/;
1810 RET_LABEL88
:(void)0;
1816 rapid_type_analysis__RapidTypeAnalysis__add_send(self
, var_finalizable_type
, var_finalize_meth
); /* Direct call rapid_type_analysis#RapidTypeAnalysis#add_send on <self:RapidTypeAnalysis>*/
1827 var96
= string__NativeString__to_s_with_length(var94
, var95
);
1832 rapid_type_analysis__RapidTypeAnalysis__force_alive(self
, var93
); /* Direct call rapid_type_analysis#RapidTypeAnalysis#force_alive on <self:RapidTypeAnalysis>*/
1839 var101
= string__NativeString__to_s_with_length(var99
, var100
);
1844 rapid_type_analysis__RapidTypeAnalysis__force_alive(self
, var98
); /* Direct call rapid_type_analysis#RapidTypeAnalysis#force_alive on <self:RapidTypeAnalysis>*/
1847 var103
= varonce102
;
1851 var106
= string__NativeString__to_s_with_length(var104
, var105
);
1853 varonce102
= var103
;
1856 rapid_type_analysis__RapidTypeAnalysis__force_alive(self
, var103
); /* Direct call rapid_type_analysis#RapidTypeAnalysis#force_alive on <self:RapidTypeAnalysis>*/
1859 var108
= varonce107
;
1863 var111
= string__NativeString__to_s_with_length(var109
, var110
);
1865 varonce107
= var108
;
1868 rapid_type_analysis__RapidTypeAnalysis__force_alive(self
, var108
); /* Direct call rapid_type_analysis#RapidTypeAnalysis#force_alive on <self:RapidTypeAnalysis>*/
1871 var113
= varonce112
;
1875 var116
= string__NativeString__to_s_with_length(var114
, var115
);
1877 varonce112
= var113
;
1880 rapid_type_analysis__RapidTypeAnalysis__force_alive(self
, var113
); /* Direct call rapid_type_analysis#RapidTypeAnalysis#force_alive on <self:RapidTypeAnalysis>*/
1884 { /* Inline rapid_type_analysis#RapidTypeAnalysis#todo (self) on <self:RapidTypeAnalysis> */
1885 var119
= self
->attrs
[COLOR_rapid_type_analysis__RapidTypeAnalysis___todo
].val
; /* _todo on <self:RapidTypeAnalysis> */
1886 if (unlikely(var119
== NULL
)) {
1887 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _todo");
1888 PRINT_ERROR(" (%s:%d)\n", "rapid_type_analysis.nit", 172);
1892 RET_LABEL118
:(void)0;
1896 var120
= list__List__is_empty(var117
);
1901 { /* Inline rapid_type_analysis#RapidTypeAnalysis#todo (self) on <self:RapidTypeAnalysis> */
1902 var124
= self
->attrs
[COLOR_rapid_type_analysis__RapidTypeAnalysis___todo
].val
; /* _todo on <self:RapidTypeAnalysis> */
1903 if (unlikely(var124
== NULL
)) {
1904 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _todo");
1905 PRINT_ERROR(" (%s:%d)\n", "rapid_type_analysis.nit", 172);
1909 RET_LABEL123
:(void)0;
1913 var125
= list__List__shift(var122
);
1915 var_mmethoddef
= var125
;
1917 { /* Inline model#MPropDef#mproperty (var_mmethoddef) on <var_mmethoddef:MMethodDef> */
1918 var128
= var_mmethoddef
->attrs
[COLOR_model__MPropDef___mproperty
].val
; /* _mproperty on <var_mmethoddef:MMethodDef> */
1919 if (unlikely(var128
== NULL
)) {
1920 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty");
1921 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1898);
1925 RET_LABEL127
:(void)0;
1929 var129
= NEW_rapid_type_analysis__RapidTypeVisitor(&type_rapid_type_analysis__RapidTypeVisitor
);
1931 { /* Inline model#MPropDef#mclassdef (var_mmethoddef) on <var_mmethoddef:MMethodDef> */
1932 var132
= var_mmethoddef
->attrs
[COLOR_model__MPropDef___mclassdef
].val
; /* _mclassdef on <var_mmethoddef:MMethodDef> */
1933 if (unlikely(var132
== NULL
)) {
1934 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdef");
1935 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1895);
1939 RET_LABEL131
:(void)0;
1943 { /* Inline model#MClassDef#bound_mtype (var130) on <var130:MClassDef> */
1944 var135
= var130
->attrs
[COLOR_model__MClassDef___bound_mtype
].val
; /* _bound_mtype on <var130:MClassDef> */
1945 if (unlikely(var135
== NULL
)) {
1946 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _bound_mtype");
1947 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 495);
1951 RET_LABEL134
:(void)0;
1955 rapid_type_analysis__RapidTypeVisitor__init(var129
, self
, var133
, var_mmethoddef
); /* Direct call rapid_type_analysis#RapidTypeVisitor#init on <var129:RapidTypeVisitor>*/
1959 { /* Inline model#MMethodDef#msignature (var_mmethoddef) on <var_mmethoddef:MMethodDef> */
1960 var138
= var_mmethoddef
->attrs
[COLOR_model__MMethodDef___msignature
].val
; /* _msignature on <var_mmethoddef:MMethodDef> */
1962 RET_LABEL137
:(void)0;
1965 if (var136
== NULL
) {
1966 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1967 PRINT_ERROR(" (%s:%d)\n", "rapid_type_analysis.nit", 216);
1970 { /* Inline model#MSignature#vararg_rank (var136) on <var136:nullable MSignature> */
1971 if (unlikely(var136
== NULL
)) {
1972 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1973 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1510);
1976 var141
= var136
->attrs
[COLOR_model__MSignature___vararg_rank
].l
; /* _vararg_rank on <var136:nullable MSignature> */
1978 RET_LABEL140
:(void)0;
1981 var_vararg_rank
= var139
;
1984 { /* Inline kernel#Int#unary - (var142) on <var142:Int> */
1988 RET_LABEL144
:(void)0;
1992 { /* Inline kernel#Int#> (var_vararg_rank,var143) on <var_vararg_rank:Int> */
1993 /* Covariant cast for argument 0 (i) <var143:Int> isa OTHER */
1994 /* <var143:Int> isa OTHER */
1995 var148
= 1; /* easy <var143:Int> isa OTHER*/
1996 if (unlikely(!var148
)) {
1997 var_class_name
= type_kernel__Int
.name
;
1998 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name
);
1999 PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 373);
2002 var149
= var_vararg_rank
> var143
;
2005 RET_LABEL147
:(void)0;
2010 { /* Inline rapid_type_analysis#RapidTypeAnalysis#modelbuilder (self) on <self:RapidTypeAnalysis> */
2011 var152
= self
->attrs
[COLOR_rapid_type_analysis__RapidTypeAnalysis___modelbuilder
].val
; /* _modelbuilder on <self:RapidTypeAnalysis> */
2012 if (unlikely(var152
== NULL
)) {
2013 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
2014 PRINT_ERROR(" (%s:%d)\n", "rapid_type_analysis.nit", 46);
2018 RET_LABEL151
:(void)0;
2022 { /* Inline modelize_property#ModelBuilder#mpropdef2npropdef (var150) on <var150:ModelBuilder> */
2023 var155
= var150
->attrs
[COLOR_modelize_property__ModelBuilder___mpropdef2npropdef
].val
; /* _mpropdef2npropdef on <var150:ModelBuilder> */
2024 if (unlikely(var155
== NULL
)) {
2025 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mpropdef2npropdef");
2026 PRINT_ERROR(" (%s:%d)\n", "modelize/modelize_property.nit", 39);
2030 RET_LABEL154
:(void)0;
2034 var156
= hash_collection__HashMap___91d_93d(var153
, var_mmethoddef
);
2038 { /* Inline model#MMethodDef#msignature (var_mmethoddef) on <var_mmethoddef:MMethodDef> */
2039 var159
= var_mmethoddef
->attrs
[COLOR_model__MMethodDef___msignature
].val
; /* _msignature on <var_mmethoddef:MMethodDef> */
2041 RET_LABEL158
:(void)0;
2044 if (var157
== NULL
) {
2045 PRINT_ERROR("Runtime error: %s", "Receiver is null");
2046 PRINT_ERROR(" (%s:%d)\n", "rapid_type_analysis.nit", 219);
2049 { /* Inline model#MSignature#mparameters (var157) on <var157:nullable MSignature> */
2050 if (unlikely(var157
== NULL
)) {
2051 PRINT_ERROR("Runtime error: %s", "Receiver is null");
2052 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1465);
2055 var162
= var157
->attrs
[COLOR_model__MSignature___mparameters
].val
; /* _mparameters on <var157:nullable MSignature> */
2056 if (unlikely(var162
== NULL
)) {
2057 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mparameters");
2058 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1465);
2062 RET_LABEL161
:(void)0;
2066 var163
= array__Array___91d_93d(var160
, var_vararg_rank
);
2069 { /* Inline model#MParameter#mtype (var163) on <var163:nullable Object(MParameter)> */
2070 var166
= var163
->attrs
[COLOR_model__MParameter___mtype
].val
; /* _mtype on <var163:nullable Object(MParameter)> */
2071 if (unlikely(var166
== NULL
)) {
2072 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
2073 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1565);
2077 RET_LABEL165
:(void)0;
2080 var_elttype
= var164
;
2082 { /* Inline rapid_type_analysis#RapidTypeAnalysis#mainmodule (self) on <self:RapidTypeAnalysis> */
2083 var169
= self
->attrs
[COLOR_rapid_type_analysis__RapidTypeAnalysis___mainmodule
].val
; /* _mainmodule on <self:RapidTypeAnalysis> */
2084 if (unlikely(var169
== NULL
)) {
2085 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule");
2086 PRINT_ERROR(" (%s:%d)\n", "rapid_type_analysis.nit", 49);
2090 RET_LABEL168
:(void)0;
2094 var171
= varonce170
;
2098 var174
= string__NativeString__to_s_with_length(var172
, var173
);
2100 varonce170
= var171
;
2103 var175
= model__MModule__get_primitive_class(var167
, var171
);
2105 var176
= NEW_array__Array(&type_array__Arraymodel__MType
);
2108 array__Array__with_capacity(var176
, var177
); /* Direct call array#Array#with_capacity on <var176:Array[MType]>*/
2112 array__AbstractArray__push(var_
, var_elttype
); /* Direct call array#AbstractArray#push on <var_:Array[MType]>*/
2115 var178
= model__MClass__get_mtype(var175
, var_
);
2117 var_vararg
= var178
;
2119 rapid_type_analysis__RapidTypeVisitor__add_type(var_v
, var_vararg
); /* Direct call rapid_type_analysis#RapidTypeVisitor#add_type on <var_v:RapidTypeVisitor>*/
2122 { /* Inline rapid_type_analysis#RapidTypeAnalysis#mainmodule (self) on <self:RapidTypeAnalysis> */
2123 var181
= self
->attrs
[COLOR_rapid_type_analysis__RapidTypeAnalysis___mainmodule
].val
; /* _mainmodule on <self:RapidTypeAnalysis> */
2124 if (unlikely(var181
== NULL
)) {
2125 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule");
2126 PRINT_ERROR(" (%s:%d)\n", "rapid_type_analysis.nit", 49);
2130 RET_LABEL180
:(void)0;
2134 var183
= varonce182
;
2136 var184
= "NativeArray";
2138 var186
= string__NativeString__to_s_with_length(var184
, var185
);
2140 varonce182
= var183
;
2143 var187
= model__MModule__get_primitive_class(var179
, var183
);
2145 var188
= NEW_array__Array(&type_array__Arraymodel__MType
);
2148 array__Array__with_capacity(var188
, var189
); /* Direct call array#Array#with_capacity on <var188:Array[MType]>*/
2152 array__AbstractArray__push(var_190
, var_elttype
); /* Direct call array#AbstractArray#push on <var_190:Array[MType]>*/
2155 var191
= model__MClass__get_mtype(var187
, var_190
);
2157 var_native
= var191
;
2159 rapid_type_analysis__RapidTypeVisitor__add_type(var_v
, var_native
); /* Direct call rapid_type_analysis#RapidTypeVisitor#add_type on <var_v:RapidTypeVisitor>*/
2162 { /* Inline rapid_type_analysis#RapidTypeAnalysis#modelbuilder (self) on <self:RapidTypeAnalysis> */
2163 var194
= self
->attrs
[COLOR_rapid_type_analysis__RapidTypeAnalysis___modelbuilder
].val
; /* _modelbuilder on <self:RapidTypeAnalysis> */
2164 if (unlikely(var194
== NULL
)) {
2165 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
2166 PRINT_ERROR(" (%s:%d)\n", "rapid_type_analysis.nit", 46);
2170 RET_LABEL193
:(void)0;
2174 var196
= varonce195
;
2176 var197
= "with_native";
2178 var199
= string__NativeString__to_s_with_length(var197
, var198
);
2180 varonce195
= var196
;
2183 { /* Inline model#MClassType#mclass (var_vararg) on <var_vararg:MClassType> */
2184 var202
= var_vararg
->attrs
[COLOR_model__MClassType___mclass
].val
; /* _mclass on <var_vararg:MClassType> */
2185 if (unlikely(var202
== NULL
)) {
2186 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
2187 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 986);
2191 RET_LABEL201
:(void)0;
2195 { /* Inline rapid_type_analysis#RapidTypeAnalysis#mainmodule (self) on <self:RapidTypeAnalysis> */
2196 var205
= self
->attrs
[COLOR_rapid_type_analysis__RapidTypeAnalysis___mainmodule
].val
; /* _mainmodule on <self:RapidTypeAnalysis> */
2197 if (unlikely(var205
== NULL
)) {
2198 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule");
2199 PRINT_ERROR(" (%s:%d)\n", "rapid_type_analysis.nit", 49);
2203 RET_LABEL204
:(void)0;
2207 var206
= modelbuilder__ModelBuilder__force_get_primitive_method(var192
, var_node
, var196
, var200
, var203
);
2210 rapid_type_analysis__RapidTypeVisitor__add_monomorphic_send(var_v
, var_vararg
, var206
); /* Direct call rapid_type_analysis#RapidTypeVisitor#add_monomorphic_send on <var_v:RapidTypeVisitor>*/
2215 { /* Inline model#MMethodDef#msignature (var_mmethoddef) on <var_mmethoddef:MMethodDef> */
2216 var209
= var_mmethoddef
->attrs
[COLOR_model__MMethodDef___msignature
].val
; /* _msignature on <var_mmethoddef:MMethodDef> */
2218 RET_LABEL208
:(void)0;
2221 if (unlikely(var207
== NULL
)) {
2222 PRINT_ERROR("Runtime error: %s", "Cast failed");
2223 PRINT_ERROR(" (%s:%d)\n", "rapid_type_analysis.nit", 229);
2228 { /* Inline model#MProperty#intro (var_mmeth) on <var_mmeth:MMethod> */
2229 var212
= var_mmeth
->attrs
[COLOR_model__MProperty___intro
].val
; /* _intro on <var_mmeth:MMethod> */
2230 if (unlikely(var212
== NULL
)) {
2231 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro");
2232 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1649);
2236 RET_LABEL211
:(void)0;
2240 { /* Inline model#MMethodDef#msignature (var210) on <var210:MPropDef(MMethodDef)> */
2241 var215
= var210
->attrs
[COLOR_model__MMethodDef___msignature
].val
; /* _msignature on <var210:MPropDef(MMethodDef)> */
2243 RET_LABEL214
:(void)0;
2246 if (unlikely(var213
== NULL
)) {
2247 PRINT_ERROR("Runtime error: %s", "Cast failed");
2248 PRINT_ERROR(" (%s:%d)\n", "rapid_type_analysis.nit", 230);
2255 var217
= model__MSignature__arity(var_sig
);
2260 { /* Inline kernel#Int#< (var_i,var_218) on <var_i:Int> */
2261 /* Covariant cast for argument 0 (i) <var_218:Int> isa OTHER */
2262 /* <var_218:Int> isa OTHER */
2263 var221
= 1; /* easy <var_218:Int> isa OTHER*/
2264 if (unlikely(!var221
)) {
2265 var_class_name224
= type_kernel__Int
.name
;
2266 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name224
);
2267 PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 371);
2270 var225
= var_i
< var_218
;
2273 RET_LABEL220
:(void)0;
2278 { /* Inline model#MSignature#mparameters (var_osig) on <var_osig:MSignature> */
2279 var228
= var_osig
->attrs
[COLOR_model__MSignature___mparameters
].val
; /* _mparameters on <var_osig:MSignature> */
2280 if (unlikely(var228
== NULL
)) {
2281 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mparameters");
2282 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1465);
2286 RET_LABEL227
:(void)0;
2290 var229
= array__Array___91d_93d(var226
, var_i
);
2293 { /* Inline model#MParameter#mtype (var229) on <var229:nullable Object(MParameter)> */
2294 var232
= var229
->attrs
[COLOR_model__MParameter___mtype
].val
; /* _mtype on <var229:nullable Object(MParameter)> */
2295 if (unlikely(var232
== NULL
)) {
2296 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
2297 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1565);
2301 RET_LABEL231
:(void)0;
2304 var_origtype
= var230
;
2306 var233
= ((short int (*)(val
*))(var_origtype
->class->vft
[COLOR_model__MType__need_anchor
]))(var_origtype
) /* need_anchor on <var_origtype:MType>*/;
2314 { /* Inline model#MSignature#mparameters (var_sig) on <var_sig:MSignature> */
2315 var237
= var_sig
->attrs
[COLOR_model__MSignature___mparameters
].val
; /* _mparameters on <var_sig:MSignature> */
2316 if (unlikely(var237
== NULL
)) {
2317 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mparameters");
2318 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1465);
2322 RET_LABEL236
:(void)0;
2326 var238
= array__Array___91d_93d(var235
, var_i
);
2329 { /* Inline model#MParameter#mtype (var238) on <var238:nullable Object(MParameter)> */
2330 var241
= var238
->attrs
[COLOR_model__MParameter___mtype
].val
; /* _mtype on <var238:nullable Object(MParameter)> */
2331 if (unlikely(var241
== NULL
)) {
2332 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
2333 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1565);
2337 RET_LABEL240
:(void)0;
2340 var_paramtype
= var239
;
2342 rapid_type_analysis__RapidTypeAnalysis__add_cast(self
, var_paramtype
); /* Direct call rapid_type_analysis#RapidTypeAnalysis#add_cast on <self:RapidTypeAnalysis>*/
2344 BREAK_label
: (void)0;
2347 var243
= kernel__Int__successor(var_i
, var242
);
2351 goto BREAK_label244
;
2354 BREAK_label244
: (void)0;
2356 { /* Inline rapid_type_analysis#RapidTypeAnalysis#modelbuilder (self) on <self:RapidTypeAnalysis> */
2357 var247
= self
->attrs
[COLOR_rapid_type_analysis__RapidTypeAnalysis___modelbuilder
].val
; /* _modelbuilder on <self:RapidTypeAnalysis> */
2358 if (unlikely(var247
== NULL
)) {
2359 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
2360 PRINT_ERROR(" (%s:%d)\n", "rapid_type_analysis.nit", 46);
2364 RET_LABEL246
:(void)0;
2368 { /* Inline modelize_property#ModelBuilder#mpropdef2npropdef (var245) on <var245:ModelBuilder> */
2369 var250
= var245
->attrs
[COLOR_modelize_property__ModelBuilder___mpropdef2npropdef
].val
; /* _mpropdef2npropdef on <var245:ModelBuilder> */
2370 if (unlikely(var250
== NULL
)) {
2371 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mpropdef2npropdef");
2372 PRINT_ERROR(" (%s:%d)\n", "modelize/modelize_property.nit", 39);
2376 RET_LABEL249
:(void)0;
2380 var251
= abstract_collection__MapRead__has_key(var248
, var_mmethoddef
);
2385 { /* Inline model#MMethod#is_root_init (var_mmeth) on <var_mmeth:MMethod> */
2386 var255
= var_mmeth
->attrs
[COLOR_model__MMethod___is_root_init
].s
; /* _is_root_init on <var_mmeth:MMethod> */
2388 RET_LABEL254
:(void)0;
2393 { /* Inline rapid_type_analysis#RapidTypeAnalysis#modelbuilder (self) on <self:RapidTypeAnalysis> */
2394 var258
= self
->attrs
[COLOR_rapid_type_analysis__RapidTypeAnalysis___modelbuilder
].val
; /* _modelbuilder on <self:RapidTypeAnalysis> */
2395 if (unlikely(var258
== NULL
)) {
2396 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
2397 PRINT_ERROR(" (%s:%d)\n", "rapid_type_analysis.nit", 46);
2401 RET_LABEL257
:(void)0;
2405 { /* Inline modelize_class#ModelBuilder#mclassdef2nclassdef (var256) on <var256:ModelBuilder> */
2406 var261
= var256
->attrs
[COLOR_modelize_class__ModelBuilder___mclassdef2nclassdef
].val
; /* _mclassdef2nclassdef on <var256:ModelBuilder> */
2407 if (unlikely(var261
== NULL
)) {
2408 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdef2nclassdef");
2409 PRINT_ERROR(" (%s:%d)\n", "modelize/modelize_class.nit", 410);
2413 RET_LABEL260
:(void)0;
2417 { /* Inline model#MPropDef#mclassdef (var_mmethoddef) on <var_mmethoddef:MMethodDef> */
2418 var264
= var_mmethoddef
->attrs
[COLOR_model__MPropDef___mclassdef
].val
; /* _mclassdef on <var_mmethoddef:MMethodDef> */
2419 if (unlikely(var264
== NULL
)) {
2420 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdef");
2421 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1895);
2425 RET_LABEL263
:(void)0;
2429 var265
= hash_collection__HashMap___91d_93d(var259
, var262
);
2431 var_nclassdef
= var265
;
2433 { /* Inline modelize_property#AClassdef#mfree_init (var_nclassdef) on <var_nclassdef:AClassdef> */
2434 var268
= var_nclassdef
->attrs
[COLOR_modelize_property__AClassdef___mfree_init
].val
; /* _mfree_init on <var_nclassdef:AClassdef> */
2436 RET_LABEL267
:(void)0;
2440 { /* Inline kernel#Object#== (var_mmethoddef,var266) on <var_mmethoddef:MMethodDef> */
2443 { /* Inline kernel#Object#is_same_instance (var_mmethoddef,var_other) on <var_mmethoddef:MMethodDef> */
2444 var274
= var_mmethoddef
== var_other
;
2447 RET_LABEL273
:(void)0;
2452 RET_LABEL271
:(void)0;
2456 if (unlikely(!var269
)) {
2457 PRINT_ERROR("Runtime error: %s", "Assert failed");
2458 PRINT_ERROR(" (%s:%d)\n", "rapid_type_analysis.nit", 242);
2462 { /* Inline model#MPropDef#mproperty (var_mmethoddef) on <var_mmethoddef:MMethodDef> */
2463 var278
= var_mmethoddef
->attrs
[COLOR_model__MPropDef___mproperty
].val
; /* _mproperty on <var_mmethoddef:MMethodDef> */
2464 if (unlikely(var278
== NULL
)) {
2465 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty");
2466 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1898);
2470 RET_LABEL277
:(void)0;
2474 { /* Inline model#MMethod#is_root_init (var276) on <var276:MProperty(MMethod)> */
2475 var281
= var276
->attrs
[COLOR_model__MMethod___is_root_init
].s
; /* _is_root_init on <var276:MProperty(MMethod)> */
2477 RET_LABEL280
:(void)0;
2483 var283
= model__MPropDef__is_intro(var_mmethoddef
);
2492 { /* Inline rapid_type_analysis#RapidTypeVisitor#receiver (var_v) on <var_v:RapidTypeVisitor> */
2493 var287
= var_v
->attrs
[COLOR_rapid_type_analysis__RapidTypeVisitor___receiver
].val
; /* _receiver on <var_v:RapidTypeVisitor> */
2494 if (unlikely(var287
== NULL
)) {
2495 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _receiver");
2496 PRINT_ERROR(" (%s:%d)\n", "rapid_type_analysis.nit", 441);
2500 RET_LABEL286
:(void)0;
2504 rapid_type_analysis__RapidTypeAnalysis__add_super_send(self
, var285
, var_mmethoddef
); /* Direct call rapid_type_analysis#RapidTypeAnalysis#add_super_send on <self:RapidTypeAnalysis>*/
2510 { /* Inline model#MMethodDef#constant_value (var_mmethoddef) on <var_mmethoddef:MMethodDef> */
2511 var290
= var_mmethoddef
->attrs
[COLOR_model__MMethodDef___constant_value
].val
; /* _constant_value on <var_mmethoddef:MMethodDef> */
2513 RET_LABEL289
:(void)0;
2517 if (var288
== NULL
) {
2518 var292
= 0; /* is null */
2520 var292
= 1; /* arg is null and recv is not */
2523 var293
= ((short int (*)(val
*, val
*))(var288
->class->vft
[COLOR_kernel__Object___33d_61d
]))(var288
, var291
) /* != on <var288:nullable Object>*/;
2528 { /* Inline model#MMethodDef#msignature (var_mmethoddef) on <var_mmethoddef:MMethodDef> */
2529 var296
= var_mmethoddef
->attrs
[COLOR_model__MMethodDef___msignature
].val
; /* _msignature on <var_mmethoddef:MMethodDef> */
2531 RET_LABEL295
:(void)0;
2534 if (var294
== NULL
) {
2535 PRINT_ERROR("Runtime error: %s", "Receiver is null");
2536 PRINT_ERROR(" (%s:%d)\n", "rapid_type_analysis.nit", 249);
2539 { /* Inline model#MSignature#return_mtype (var294) on <var294:nullable MSignature> */
2540 if (unlikely(var294
== NULL
)) {
2541 PRINT_ERROR("Runtime error: %s", "Receiver is null");
2542 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1468);
2545 var299
= var294
->attrs
[COLOR_model__MSignature___return_mtype
].val
; /* _return_mtype on <var294:nullable MSignature> */
2547 RET_LABEL298
:(void)0;
2550 /* <var297:nullable MType> isa MClassType */
2551 cltype301
= type_model__MClassType
.color
;
2552 idtype302
= type_model__MClassType
.id
;
2553 if(var297
== NULL
) {
2556 if(cltype301
>= var297
->type
->table_size
) {
2559 var300
= var297
->type
->type_table
[cltype301
] == idtype302
;
2562 if (unlikely(!var300
)) {
2563 var_class_name303
= var297
== NULL ?
"null" : var297
->type
->name
;
2564 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "MClassType", var_class_name303
);
2565 PRINT_ERROR(" (%s:%d)\n", "rapid_type_analysis.nit", 249);
2569 rapid_type_analysis__RapidTypeVisitor__add_type(var_v
, var297
); /* Direct call rapid_type_analysis#RapidTypeVisitor#add_type on <var_v:RapidTypeVisitor>*/
2572 PRINT_ERROR("Runtime error: %s", "Aborted");
2573 PRINT_ERROR(" (%s:%d)\n", "rapid_type_analysis.nit", 251);
2577 goto BREAK_label304
;
2581 { /* Inline rapid_type_analysis#RapidTypeAnalysis#modelbuilder (self) on <self:RapidTypeAnalysis> */
2582 var307
= self
->attrs
[COLOR_rapid_type_analysis__RapidTypeAnalysis___modelbuilder
].val
; /* _modelbuilder on <self:RapidTypeAnalysis> */
2583 if (unlikely(var307
== NULL
)) {
2584 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
2585 PRINT_ERROR(" (%s:%d)\n", "rapid_type_analysis.nit", 46);
2589 RET_LABEL306
:(void)0;
2593 { /* Inline modelize_property#ModelBuilder#mpropdef2npropdef (var305) on <var305:ModelBuilder> */
2594 var310
= var305
->attrs
[COLOR_modelize_property__ModelBuilder___mpropdef2npropdef
].val
; /* _mpropdef2npropdef on <var305:ModelBuilder> */
2595 if (unlikely(var310
== NULL
)) {
2596 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mpropdef2npropdef");
2597 PRINT_ERROR(" (%s:%d)\n", "modelize/modelize_property.nit", 39);
2601 RET_LABEL309
:(void)0;
2605 var311
= hash_collection__HashMap___91d_93d(var308
, var_mmethoddef
);
2607 var_npropdef
= var311
;
2608 /* <var_npropdef:APropdef> isa AMethPropdef */
2609 cltype313
= type_parser_nodes__AMethPropdef
.color
;
2610 idtype314
= type_parser_nodes__AMethPropdef
.id
;
2611 if(cltype313
>= var_npropdef
->type
->table_size
) {
2614 var312
= var_npropdef
->type
->type_table
[cltype313
] == idtype314
;
2618 { /* Inline auto_super_init#AMethPropdef#auto_super_inits (var_npropdef) on <var_npropdef:APropdef(AMethPropdef)> */
2619 var317
= var_npropdef
->attrs
[COLOR_auto_super_init__AMethPropdef___auto_super_inits
].val
; /* _auto_super_inits on <var_npropdef:APropdef(AMethPropdef)> */
2621 RET_LABEL316
:(void)0;
2624 var_auto_super_inits
= var315
;
2626 if (var_auto_super_inits
== NULL
) {
2627 var319
= 0; /* is null */
2629 var319
= 1; /* arg is null and recv is not */
2632 { /* Inline kernel#Object#!= (var_auto_super_inits,var318) on <var_auto_super_inits:nullable Array[CallSite]> */
2633 var_other26
= var318
;
2635 var323
= ((short int (*)(val
*, val
*))(var_auto_super_inits
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var_auto_super_inits
, var_other26
) /* == on <var_auto_super_inits:nullable Array[CallSite](Array[CallSite])>*/;
2641 RET_LABEL321
:(void)0;
2646 var_325
= var_auto_super_inits
;
2648 var326
= array__AbstractArrayRead__iterator(var_325
);
2653 var328
= array__ArrayIterator__is_ok(var_327
);
2657 var329
= array__ArrayIterator__item(var_327
);
2659 var_auto_super_init
= var329
;
2661 rapid_type_analysis__RapidTypeVisitor__add_callsite(var_v
, var_auto_super_init
); /* Direct call rapid_type_analysis#RapidTypeVisitor#add_callsite on <var_v:RapidTypeVisitor>*/
2664 array__ArrayIterator__next(var_327
); /* Direct call array#ArrayIterator#next on <var_327:ArrayIterator[CallSite]>*/
2667 goto BREAK_label330
;
2670 BREAK_label330
: (void)0;
2672 { /* Inline abstract_collection#Iterator#finish (var_327) on <var_327:ArrayIterator[CallSite]> */
2673 RET_LABEL331
:(void)0;
2679 { /* Inline auto_super_init#AMethPropdef#auto_super_call (var_npropdef) on <var_npropdef:APropdef(AMethPropdef)> */
2680 var334
= var_npropdef
->attrs
[COLOR_auto_super_init__AMethPropdef___auto_super_call
].s
; /* _auto_super_call on <var_npropdef:APropdef(AMethPropdef)> */
2682 RET_LABEL333
:(void)0;
2687 { /* Inline rapid_type_analysis#RapidTypeVisitor#receiver (var_v) on <var_v:RapidTypeVisitor> */
2688 var337
= var_v
->attrs
[COLOR_rapid_type_analysis__RapidTypeVisitor___receiver
].val
; /* _receiver on <var_v:RapidTypeVisitor> */
2689 if (unlikely(var337
== NULL
)) {
2690 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _receiver");
2691 PRINT_ERROR(" (%s:%d)\n", "rapid_type_analysis.nit", 441);
2695 RET_LABEL336
:(void)0;
2699 rapid_type_analysis__RapidTypeAnalysis__add_super_send(self
, var335
, var_mmethoddef
); /* Direct call rapid_type_analysis#RapidTypeAnalysis#add_super_send on <self:RapidTypeAnalysis>*/
2706 { /* Inline model#MMethodDef#is_intern (var_mmethoddef) on <var_mmethoddef:MMethodDef> */
2707 var341
= var_mmethoddef
->attrs
[COLOR_model__MMethodDef___is_intern
].s
; /* _is_intern on <var_mmethoddef:MMethodDef> */
2709 RET_LABEL340
:(void)0;
2717 { /* Inline model#MMethodDef#is_extern (var_mmethoddef) on <var_mmethoddef:MMethodDef> */
2718 var345
= var_mmethoddef
->attrs
[COLOR_model__MMethodDef___is_extern
].s
; /* _is_extern on <var_mmethoddef:MMethodDef> */
2720 RET_LABEL344
:(void)0;
2727 { /* Inline model#MMethodDef#msignature (var_mmethoddef) on <var_mmethoddef:MMethodDef> */
2728 var348
= var_mmethoddef
->attrs
[COLOR_model__MMethodDef___msignature
].val
; /* _msignature on <var_mmethoddef:MMethodDef> */
2730 RET_LABEL347
:(void)0;
2733 if (var346
== NULL
) {
2734 PRINT_ERROR("Runtime error: %s", "Receiver is null");
2735 PRINT_ERROR(" (%s:%d)\n", "rapid_type_analysis.nit", 272);
2738 { /* Inline model#MSignature#return_mtype (var346) on <var346:nullable MSignature> */
2739 if (unlikely(var346
== NULL
)) {
2740 PRINT_ERROR("Runtime error: %s", "Receiver is null");
2741 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1468);
2744 var351
= var346
->attrs
[COLOR_model__MSignature___return_mtype
].val
; /* _return_mtype on <var346:nullable MSignature> */
2746 RET_LABEL350
:(void)0;
2751 if (var_ret
== NULL
) {
2752 var356
= 0; /* is null */
2754 var356
= 1; /* arg is null and recv is not */
2757 { /* Inline kernel#Object#!= (var_ret,var355) on <var_ret:nullable MType> */
2758 var_other26
= var355
;
2760 var360
= ((short int (*)(val
*, val
*))(var_ret
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var_ret
, var_other26
) /* == on <var_ret:nullable MType(MType)>*/;
2766 RET_LABEL358
:(void)0;
2772 /* <var_ret:nullable MType(MType)> isa MClassType */
2773 cltype364
= type_model__MClassType
.color
;
2774 idtype365
= type_model__MClassType
.id
;
2775 if(cltype364
>= var_ret
->type
->table_size
) {
2778 var363
= var_ret
->type
->type_table
[cltype364
] == idtype365
;
2787 { /* Inline model#MClassType#mclass (var_ret) on <var_ret:nullable MType(MClassType)> */
2788 var369
= var_ret
->attrs
[COLOR_model__MClassType___mclass
].val
; /* _mclass on <var_ret:nullable MType(MClassType)> */
2789 if (unlikely(var369
== NULL
)) {
2790 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
2791 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 986);
2795 RET_LABEL368
:(void)0;
2799 { /* Inline model#MClass#kind (var367) on <var367:MClass> */
2800 var372
= var367
->attrs
[COLOR_model__MClass___kind
].val
; /* _kind on <var367:MClass> */
2801 if (unlikely(var372
== NULL
)) {
2802 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _kind");
2803 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 371);
2807 RET_LABEL371
:(void)0;
2811 var373
= model__Object__abstract_kind(self
);
2814 { /* Inline kernel#Object#!= (var370,var373) on <var370:MClassKind> */
2815 var_other26
= var373
;
2817 var378
= ((short int (*)(val
*, val
*))(var370
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var370
, var_other26
) /* == on <var370:MClassKind>*/;
2823 RET_LABEL376
:(void)0;
2834 { /* Inline model#MClassType#mclass (var_ret) on <var_ret:nullable MType(MClassType)> */
2835 var383
= var_ret
->attrs
[COLOR_model__MClassType___mclass
].val
; /* _mclass on <var_ret:nullable MType(MClassType)> */
2836 if (unlikely(var383
== NULL
)) {
2837 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
2838 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 986);
2842 RET_LABEL382
:(void)0;
2846 { /* Inline model#MClass#kind (var381) on <var381:MClass> */
2847 var386
= var381
->attrs
[COLOR_model__MClass___kind
].val
; /* _kind on <var381:MClass> */
2848 if (unlikely(var386
== NULL
)) {
2849 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _kind");
2850 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 371);
2854 RET_LABEL385
:(void)0;
2858 var387
= model__Object__interface_kind(self
);
2861 { /* Inline kernel#Object#!= (var384,var387) on <var384:MClassKind> */
2862 var_other26
= var387
;
2864 var392
= ((short int (*)(val
*, val
*))(var384
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var384
, var_other26
) /* == on <var384:MClassKind>*/;
2870 RET_LABEL390
:(void)0;
2880 rapid_type_analysis__RapidTypeVisitor__add_type(var_v
, var_ret
); /* Direct call rapid_type_analysis#RapidTypeVisitor#add_type on <var_v:RapidTypeVisitor>*/
2887 parser_nodes__Visitor__enter_visit(var_v
, var_npropdef
); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:RapidTypeVisitor>*/
2890 goto BREAK_label394
;
2892 BREAK_label304
: (void)0;
2894 BREAK_label394
: (void)0;
2895 var395
= NEW_list__List(&type_list__Listmodel__MClassType
);
2897 ((void (*)(val
*))(var395
->class->vft
[COLOR_kernel__Object__init
]))(var395
) /* init on <var395:List[MClassType]>*/;
2899 var_todo_types
= var395
;
2901 { /* Inline rapid_type_analysis#RapidTypeAnalysis#live_types (self) on <self:RapidTypeAnalysis> */
2902 var398
= self
->attrs
[COLOR_rapid_type_analysis__RapidTypeAnalysis___live_types
].val
; /* _live_types on <self:RapidTypeAnalysis> */
2903 if (unlikely(var398
== NULL
)) {
2904 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_types");
2905 PRINT_ERROR(" (%s:%d)\n", "rapid_type_analysis.nit", 53);
2909 RET_LABEL397
:(void)0;
2913 abstract_collection__SimpleCollection__add_all(var_todo_types
, var396
); /* Direct call abstract_collection#SimpleCollection#add_all on <var_todo_types:List[MClassType]>*/
2917 var399
= list__List__is_empty(var_todo_types
);
2922 var401
= list__List__shift(var_todo_types
);
2926 { /* Inline rapid_type_analysis#RapidTypeAnalysis#live_open_types (self) on <self:RapidTypeAnalysis> */
2927 var404
= self
->attrs
[COLOR_rapid_type_analysis__RapidTypeAnalysis___live_open_types
].val
; /* _live_open_types on <self:RapidTypeAnalysis> */
2928 if (unlikely(var404
== NULL
)) {
2929 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_open_types");
2930 PRINT_ERROR(" (%s:%d)\n", "rapid_type_analysis.nit", 58);
2934 RET_LABEL403
:(void)0;
2939 var406
= hash_collection__HashSet__iterator(var_405
);
2944 var408
= ((short int (*)(val
*))(var_407
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var_407
) /* is_ok on <var_407:Iterator[MClassType]>*/;
2948 var409
= ((val
* (*)(val
*))(var_407
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var_407
) /* item on <var_407:Iterator[MClassType]>*/;
2952 { /* Inline rapid_type_analysis#RapidTypeAnalysis#mainmodule (self) on <self:RapidTypeAnalysis> */
2953 var412
= self
->attrs
[COLOR_rapid_type_analysis__RapidTypeAnalysis___mainmodule
].val
; /* _mainmodule on <self:RapidTypeAnalysis> */
2954 if (unlikely(var412
== NULL
)) {
2955 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule");
2956 PRINT_ERROR(" (%s:%d)\n", "rapid_type_analysis.nit", 49);
2960 RET_LABEL411
:(void)0;
2964 var413
= ((short int (*)(val
*, val
*, val
*, val
*))(var_ot
->class->vft
[COLOR_model__MType__can_resolve_for
]))(var_ot
, var_t
, var_t
, var410
) /* can_resolve_for on <var_ot:MClassType>*/;
2968 goto BREAK_label415
;
2972 { /* Inline rapid_type_analysis#RapidTypeAnalysis#mainmodule (self) on <self:RapidTypeAnalysis> */
2973 var418
= self
->attrs
[COLOR_rapid_type_analysis__RapidTypeAnalysis___mainmodule
].val
; /* _mainmodule on <self:RapidTypeAnalysis> */
2974 if (unlikely(var418
== NULL
)) {
2975 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule");
2976 PRINT_ERROR(" (%s:%d)\n", "rapid_type_analysis.nit", 49);
2980 RET_LABEL417
:(void)0;
2984 var419
= model__MClassType__anchor_to(var_ot
, var416
, var_t
);
2988 { /* Inline rapid_type_analysis#RapidTypeAnalysis#live_types (self) on <self:RapidTypeAnalysis> */
2989 var422
= self
->attrs
[COLOR_rapid_type_analysis__RapidTypeAnalysis___live_types
].val
; /* _live_types on <self:RapidTypeAnalysis> */
2990 if (unlikely(var422
== NULL
)) {
2991 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_types");
2992 PRINT_ERROR(" (%s:%d)\n", "rapid_type_analysis.nit", 53);
2996 RET_LABEL421
:(void)0;
3000 var423
= hash_collection__HashSet__has(var420
, var_rt
);
3003 goto BREAK_label415
;
3007 { /* Inline rapid_type_analysis#RapidTypeAnalysis#live_types (self) on <self:RapidTypeAnalysis> */
3008 var426
= self
->attrs
[COLOR_rapid_type_analysis__RapidTypeAnalysis___live_types
].val
; /* _live_types on <self:RapidTypeAnalysis> */
3009 if (unlikely(var426
== NULL
)) {
3010 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_types");
3011 PRINT_ERROR(" (%s:%d)\n", "rapid_type_analysis.nit", 53);
3015 RET_LABEL425
:(void)0;
3019 hash_collection__HashSet__add(var424
, var_rt
); /* Direct call hash_collection#HashSet#add on <var424:HashSet[MClassType]>*/
3022 abstract_collection__Sequence__add(var_todo_types
, var_rt
); /* Direct call abstract_collection#Sequence#add on <var_todo_types:List[MClassType]>*/
3025 rapid_type_analysis__RapidTypeAnalysis__check_depth(self
, var_rt
); /* Direct call rapid_type_analysis#RapidTypeAnalysis#check_depth on <self:RapidTypeAnalysis>*/
3027 BREAK_label415
: (void)0;
3029 ((void (*)(val
*))(var_407
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var_407
) /* next on <var_407:Iterator[MClassType]>*/;
3032 goto BREAK_label427
;
3035 BREAK_label427
: (void)0;
3037 { /* Inline abstract_collection#Iterator#finish (var_407) on <var_407:Iterator[MClassType]> */
3038 RET_LABEL428
:(void)0;
3042 goto BREAK_label429
;
3045 BREAK_label429
: (void)0;
3047 { /* Inline rapid_type_analysis#RapidTypeAnalysis#live_open_cast_types (self) on <self:RapidTypeAnalysis> */
3048 var432
= self
->attrs
[COLOR_rapid_type_analysis__RapidTypeAnalysis___live_open_cast_types
].val
; /* _live_open_cast_types on <self:RapidTypeAnalysis> */
3049 if (unlikely(var432
== NULL
)) {
3050 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_open_cast_types");
3051 PRINT_ERROR(" (%s:%d)\n", "rapid_type_analysis.nit", 68);
3055 RET_LABEL431
:(void)0;
3060 var434
= hash_collection__HashSet__iterator(var_433
);
3065 var436
= ((short int (*)(val
*))(var_435
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var_435
) /* is_ok on <var_435:Iterator[MType]>*/;
3069 var437
= ((val
* (*)(val
*))(var_435
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var_435
) /* item on <var_435:Iterator[MType]>*/;
3073 { /* Inline rapid_type_analysis#RapidTypeAnalysis#live_types (self) on <self:RapidTypeAnalysis> */
3074 var441
= self
->attrs
[COLOR_rapid_type_analysis__RapidTypeAnalysis___live_types
].val
; /* _live_types on <self:RapidTypeAnalysis> */
3075 if (unlikely(var441
== NULL
)) {
3076 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_types");
3077 PRINT_ERROR(" (%s:%d)\n", "rapid_type_analysis.nit", 53);
3081 RET_LABEL440
:(void)0;
3086 var443
= hash_collection__HashSet__iterator(var_442
);
3091 var445
= ((short int (*)(val
*))(var_444
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var_444
) /* is_ok on <var_444:Iterator[MClassType]>*/;
3095 var446
= ((val
* (*)(val
*))(var_444
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var_444
) /* item on <var_444:Iterator[MClassType]>*/;
3099 { /* Inline rapid_type_analysis#RapidTypeAnalysis#mainmodule (self) on <self:RapidTypeAnalysis> */
3100 var450
= self
->attrs
[COLOR_rapid_type_analysis__RapidTypeAnalysis___mainmodule
].val
; /* _mainmodule on <self:RapidTypeAnalysis> */
3101 if (unlikely(var450
== NULL
)) {
3102 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule");
3103 PRINT_ERROR(" (%s:%d)\n", "rapid_type_analysis.nit", 49);
3107 RET_LABEL449
:(void)0;
3111 var451
= ((short int (*)(val
*, val
*, val
*, val
*))(var_ot438
->class->vft
[COLOR_model__MType__can_resolve_for
]))(var_ot438
, var_t447
, var_t447
, var448
) /* can_resolve_for on <var_ot438:MType>*/;
3115 goto BREAK_label453
;
3119 { /* Inline rapid_type_analysis#RapidTypeAnalysis#mainmodule (self) on <self:RapidTypeAnalysis> */
3120 var456
= self
->attrs
[COLOR_rapid_type_analysis__RapidTypeAnalysis___mainmodule
].val
; /* _mainmodule on <self:RapidTypeAnalysis> */
3121 if (unlikely(var456
== NULL
)) {
3122 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule");
3123 PRINT_ERROR(" (%s:%d)\n", "rapid_type_analysis.nit", 49);
3127 RET_LABEL455
:(void)0;
3131 var457
= ((val
* (*)(val
*, val
*, val
*))(var_ot438
->class->vft
[COLOR_model__MType__anchor_to
]))(var_ot438
, var454
, var_t447
) /* anchor_to on <var_ot438:MType>*/;
3135 { /* Inline rapid_type_analysis#RapidTypeAnalysis#live_cast_types (self) on <self:RapidTypeAnalysis> */
3136 var461
= self
->attrs
[COLOR_rapid_type_analysis__RapidTypeAnalysis___live_cast_types
].val
; /* _live_cast_types on <self:RapidTypeAnalysis> */
3137 if (unlikely(var461
== NULL
)) {
3138 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_cast_types");
3139 PRINT_ERROR(" (%s:%d)\n", "rapid_type_analysis.nit", 65);
3143 RET_LABEL460
:(void)0;
3147 hash_collection__HashSet__add(var459
, var_rt458
); /* Direct call hash_collection#HashSet#add on <var459:HashSet[MType]>*/
3149 BREAK_label453
: (void)0;
3151 ((void (*)(val
*))(var_444
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var_444
) /* next on <var_444:Iterator[MClassType]>*/;
3154 goto BREAK_label462
;
3157 BREAK_label462
: (void)0;
3159 { /* Inline abstract_collection#Iterator#finish (var_444) on <var_444:Iterator[MClassType]> */
3160 RET_LABEL463
:(void)0;
3164 ((void (*)(val
*))(var_435
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var_435
) /* next on <var_435:Iterator[MType]>*/;
3167 goto BREAK_label464
;
3170 BREAK_label464
: (void)0;
3172 { /* Inline abstract_collection#Iterator#finish (var_435) on <var_435:Iterator[MType]> */
3173 RET_LABEL465
:(void)0;
3178 /* method rapid_type_analysis#RapidTypeAnalysis#run_analysis for (self: Object) */
3179 void VIRTUAL_rapid_type_analysis__RapidTypeAnalysis__run_analysis(val
* self
) {
3180 rapid_type_analysis__RapidTypeAnalysis__run_analysis(self
); /* Direct call rapid_type_analysis#RapidTypeAnalysis#run_analysis on <self:Object(RapidTypeAnalysis)>*/
3183 /* method rapid_type_analysis#RapidTypeAnalysis#check_depth for (self: RapidTypeAnalysis, MClassType) */
3184 void rapid_type_analysis__RapidTypeAnalysis__check_depth(val
* self
, val
* p0
) {
3185 val
* var_mtype
/* var mtype: MClassType */;
3186 long var
/* : Int */;
3187 long var_d
/* var d: Int */;
3188 long var1
/* : Int */;
3189 short int var2
/* : Bool */;
3190 short int var4
/* : Bool */;
3193 const char* var_class_name
;
3194 short int var5
/* : Bool */;
3195 val
* var6
/* : ModelBuilder */;
3196 val
* var8
/* : ModelBuilder */;
3197 val
* var9
/* : ToolContext */;
3198 val
* var11
/* : ToolContext */;
3199 val
* var12
/* : null */;
3200 static val
* varonce
;
3201 val
* var13
/* : String */;
3202 char* var14
/* : NativeString */;
3203 long var15
/* : Int */;
3204 val
* var16
/* : FlatString */;
3205 static val
* varonce17
;
3206 val
* var18
/* : String */;
3207 char* var19
/* : NativeString */;
3208 long var20
/* : Int */;
3209 val
* var21
/* : FlatString */;
3210 static val
* varonce22
;
3211 val
* var23
/* : String */;
3212 char* var24
/* : NativeString */;
3213 long var25
/* : Int */;
3214 val
* var26
/* : FlatString */;
3215 val
* var27
/* : Array[Object] */;
3216 long var28
/* : Int */;
3217 val
* var29
/* : NativeArray[Object] */;
3218 val
* var30
/* : Object */;
3219 val
* var31
/* : String */;
3222 var
= ((long (*)(val
*))(var_mtype
->class->vft
[COLOR_model__MType__length
]))(var_mtype
) /* length on <var_mtype:MClassType>*/;
3227 { /* Inline kernel#Int#> (var_d,var1) on <var_d:Int> */
3228 /* Covariant cast for argument 0 (i) <var1:Int> isa OTHER */
3229 /* <var1:Int> isa OTHER */
3230 var4
= 1; /* easy <var1:Int> isa OTHER*/
3231 if (unlikely(!var4
)) {
3232 var_class_name
= type_kernel__Int
.name
;
3233 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name
);
3234 PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 373);
3237 var5
= var_d
> var1
;
3245 { /* Inline rapid_type_analysis#RapidTypeAnalysis#modelbuilder (self) on <self:RapidTypeAnalysis> */
3246 var8
= self
->attrs
[COLOR_rapid_type_analysis__RapidTypeAnalysis___modelbuilder
].val
; /* _modelbuilder on <self:RapidTypeAnalysis> */
3247 if (unlikely(var8
== NULL
)) {
3248 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
3249 PRINT_ERROR(" (%s:%d)\n", "rapid_type_analysis.nit", 46);
3257 { /* Inline modelbuilder#ModelBuilder#toolcontext (var6) on <var6:ModelBuilder> */
3258 var11
= var6
->attrs
[COLOR_modelbuilder__ModelBuilder___toolcontext
].val
; /* _toolcontext on <var6:ModelBuilder> */
3259 if (unlikely(var11
== NULL
)) {
3260 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
3261 PRINT_ERROR(" (%s:%d)\n", "modelbuilder.nit", 106);
3265 RET_LABEL10
:(void)0;
3272 var14
= "Fatal error: limitation in the rapidtype analysis engine: a type depth of ";
3274 var16
= string__NativeString__to_s_with_length(var14
, var15
);
3281 var19
= " is too important, the problematic type is ";
3283 var21
= string__NativeString__to_s_with_length(var19
, var20
);
3292 var26
= string__NativeString__to_s_with_length(var24
, var25
);
3296 var27
= NEW_array__Array(&type_array__Arraykernel__Object
);
3297 { /* var27 = array_instance Array[Object] */
3299 var29
= NEW_array__NativeArray(var28
, &type_array__NativeArraykernel__Object
);
3300 ((struct instance_array__NativeArray
*)var29
)->values
[0] = (val
*) var13
;
3301 var30
= BOX_kernel__Int(var_d
); /* autobox from Int to Object */
3302 ((struct instance_array__NativeArray
*)var29
)->values
[1] = (val
*) var30
;
3303 ((struct instance_array__NativeArray
*)var29
)->values
[2] = (val
*) var18
;
3304 ((struct instance_array__NativeArray
*)var29
)->values
[3] = (val
*) var_mtype
;
3305 ((struct instance_array__NativeArray
*)var29
)->values
[4] = (val
*) var23
;
3307 ((void (*)(val
*, val
*, long))(var27
->class->vft
[COLOR_array__Array__with_native
]))(var27
, var29
, var28
) /* with_native on <var27:Array[Object]>*/;
3311 var31
= ((val
* (*)(val
*))(var27
->class->vft
[COLOR_string__Object__to_s
]))(var27
) /* to_s on <var27:Array[Object]>*/;
3314 toolcontext__ToolContext__fatal_error(var9
, var12
, var31
); /* Direct call toolcontext#ToolContext#fatal_error on <var9:ToolContext>*/
3320 /* method rapid_type_analysis#RapidTypeAnalysis#check_depth for (self: Object, MClassType) */
3321 void VIRTUAL_rapid_type_analysis__RapidTypeAnalysis__check_depth(val
* self
, val
* p0
) {
3322 rapid_type_analysis__RapidTypeAnalysis__check_depth(self
, p0
); /* Direct call rapid_type_analysis#RapidTypeAnalysis#check_depth on <self:Object(RapidTypeAnalysis)>*/
3325 /* method rapid_type_analysis#RapidTypeAnalysis#add_new for (self: RapidTypeAnalysis, MClassType, MClassType) */
3326 void rapid_type_analysis__RapidTypeAnalysis__add_new(val
* self
, val
* p0
, val
* p1
) {
3327 val
* var_recv
/* var recv: MClassType */;
3328 val
* var_mtype
/* var mtype: MClassType */;
3329 short int var
/* : Bool */;
3330 short int var1
/* : Bool */;
3331 short int var2
/* : Bool */;
3332 val
* var3
/* : HashSet[MClassType] */;
3333 val
* var5
/* : HashSet[MClassType] */;
3334 short int var6
/* : Bool */;
3335 val
* var7
/* : HashSet[MClassType] */;
3336 val
* var9
/* : HashSet[MClassType] */;
3337 val
* var10
/* : HashSet[MClassType] */;
3338 val
* var12
/* : HashSet[MClassType] */;
3339 short int var13
/* : Bool */;
3340 val
* var14
/* : HashSet[MClassType] */;
3341 val
* var16
/* : HashSet[MClassType] */;
3342 val
* var17
/* : MClass */;
3343 val
* var19
/* : MClass */;
3344 val
* var_mclass
/* var mclass: MClass */;
3345 val
* var20
/* : HashSet[MClass] */;
3346 val
* var22
/* : HashSet[MClass] */;
3347 short int var23
/* : Bool */;
3348 val
* var24
/* : HashSet[MClass] */;
3349 val
* var26
/* : HashSet[MClass] */;
3350 val
* var27
/* : HashSet[MMethod] */;
3351 val
* var29
/* : HashSet[MMethod] */;
3352 val
* var_
/* var : HashSet[MMethod] */;
3353 val
* var30
/* : Iterator[Object] */;
3354 val
* var_31
/* var : Iterator[MMethod] */;
3355 short int var32
/* : Bool */;
3356 val
* var33
/* : nullable Object */;
3357 val
* var_p
/* var p: MMethod */;
3358 val
* var35
/* : HashSet[MMethodDef] */;
3359 val
* var37
/* : HashSet[MMethodDef] */;
3360 val
* var_38
/* var : HashSet[MMethodDef] */;
3361 val
* var39
/* : Iterator[Object] */;
3362 val
* var_40
/* var : Iterator[MMethodDef] */;
3363 short int var41
/* : Bool */;
3364 val
* var42
/* : nullable Object */;
3365 val
* var_p43
/* var p: MMethodDef */;
3366 val
* var46
/* : Array[MMethod] */;
3367 val
* var48
/* : Array[MMethod] */;
3368 val
* var_49
/* var : Array[MMethod] */;
3369 val
* var50
/* : ArrayIterator[nullable Object] */;
3370 val
* var_51
/* var : ArrayIterator[MMethod] */;
3371 short int var52
/* : Bool */;
3372 val
* var53
/* : nullable Object */;
3373 val
* var_p54
/* var p: MMethod */;
3374 val
* var55
/* : HashSet[MMethod] */;
3375 val
* var57
/* : HashSet[MMethod] */;
3376 val
* var60
/* : Array[MMethod] */;
3377 val
* var62
/* : Array[MMethod] */;
3378 val
* var63
/* : MModule */;
3379 val
* var65
/* : MModule */;
3380 val
* var66
/* : MClassType */;
3381 val
* var_bound_mtype
/* var bound_mtype: MClassType */;
3382 val
* var67
/* : MModule */;
3383 val
* var69
/* : MModule */;
3384 val
* var70
/* : Set[MClassDef] */;
3385 val
* var_71
/* var : Set[MClassDef] */;
3386 val
* var72
/* : Iterator[nullable Object] */;
3387 val
* var_73
/* var : Iterator[MClassDef] */;
3388 short int var74
/* : Bool */;
3389 val
* var75
/* : nullable Object */;
3390 val
* var_cd
/* var cd: MClassDef */;
3391 val
* var76
/* : ModelBuilder */;
3392 val
* var78
/* : ModelBuilder */;
3393 val
* var79
/* : HashMap[MClassDef, AClassdef] */;
3394 val
* var81
/* : HashMap[MClassDef, AClassdef] */;
3395 short int var82
/* : Bool */;
3396 short int var83
/* : Bool */;
3397 val
* var85
/* : ModelBuilder */;
3398 val
* var87
/* : ModelBuilder */;
3399 val
* var88
/* : HashMap[MClassDef, AClassdef] */;
3400 val
* var90
/* : HashMap[MClassDef, AClassdef] */;
3401 val
* var91
/* : nullable Object */;
3402 val
* var_nclassdef
/* var nclassdef: AClassdef */;
3403 val
* var92
/* : ANodes[APropdef] */;
3404 val
* var94
/* : ANodes[APropdef] */;
3405 val
* var_95
/* var : ANodes[APropdef] */;
3406 val
* var96
/* : Iterator[ANode] */;
3407 val
* var_97
/* var : Iterator[APropdef] */;
3408 short int var98
/* : Bool */;
3409 val
* var99
/* : nullable Object */;
3410 val
* var_npropdef
/* var npropdef: APropdef */;
3411 short int var100
/* : Bool */;
3414 short int var101
/* : Bool */;
3415 short int var103
/* : Bool */;
3416 short int var105
/* : Bool */;
3417 short int var106
/* : Bool */;
3418 val
* var107
/* : nullable MPropDef */;
3419 val
* var109
/* : nullable MPropDef */;
3420 val
* var_mpropdef
/* var mpropdef: MAttributeDef */;
3421 val
* var110
/* : RapidTypeVisitor */;
3422 val
* var_v
/* var v: RapidTypeVisitor */;
3423 val
* var111
/* : nullable AExpr */;
3424 val
* var113
/* : nullable AExpr */;
3425 val
* var114
/* : nullable AExpr */;
3426 val
* var116
/* : nullable AExpr */;
3430 var
= ((short int (*)(val
*))(var_recv
->class->vft
[COLOR_model__MType__need_anchor
]))(var_recv
) /* need_anchor on <var_recv:MClassType>*/;
3433 if (unlikely(!var1
)) {
3434 PRINT_ERROR("Runtime error: %s", "Assert failed");
3435 PRINT_ERROR(" (%s:%d)\n", "rapid_type_analysis.nit", 325);
3439 var2
= ((short int (*)(val
*))(var_mtype
->class->vft
[COLOR_model__MType__need_anchor
]))(var_mtype
) /* need_anchor on <var_mtype:MClassType>*/;
3443 { /* Inline rapid_type_analysis#RapidTypeAnalysis#live_open_types (self) on <self:RapidTypeAnalysis> */
3444 var5
= self
->attrs
[COLOR_rapid_type_analysis__RapidTypeAnalysis___live_open_types
].val
; /* _live_open_types on <self:RapidTypeAnalysis> */
3445 if (unlikely(var5
== NULL
)) {
3446 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_open_types");
3447 PRINT_ERROR(" (%s:%d)\n", "rapid_type_analysis.nit", 58);
3455 var6
= hash_collection__HashSet__has(var3
, var_mtype
);
3462 { /* Inline rapid_type_analysis#RapidTypeAnalysis#live_open_types (self) on <self:RapidTypeAnalysis> */
3463 var9
= self
->attrs
[COLOR_rapid_type_analysis__RapidTypeAnalysis___live_open_types
].val
; /* _live_open_types on <self:RapidTypeAnalysis> */
3464 if (unlikely(var9
== NULL
)) {
3465 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_open_types");
3466 PRINT_ERROR(" (%s:%d)\n", "rapid_type_analysis.nit", 58);
3474 hash_collection__HashSet__add(var7
, var_mtype
); /* Direct call hash_collection#HashSet#add on <var7:HashSet[MClassType]>*/
3478 { /* Inline rapid_type_analysis#RapidTypeAnalysis#live_types (self) on <self:RapidTypeAnalysis> */
3479 var12
= self
->attrs
[COLOR_rapid_type_analysis__RapidTypeAnalysis___live_types
].val
; /* _live_types on <self:RapidTypeAnalysis> */
3480 if (unlikely(var12
== NULL
)) {
3481 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_types");
3482 PRINT_ERROR(" (%s:%d)\n", "rapid_type_analysis.nit", 53);
3486 RET_LABEL11
:(void)0;
3490 var13
= hash_collection__HashSet__has(var10
, var_mtype
);
3497 { /* Inline rapid_type_analysis#RapidTypeAnalysis#live_types (self) on <self:RapidTypeAnalysis> */
3498 var16
= self
->attrs
[COLOR_rapid_type_analysis__RapidTypeAnalysis___live_types
].val
; /* _live_types on <self:RapidTypeAnalysis> */
3499 if (unlikely(var16
== NULL
)) {
3500 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_types");
3501 PRINT_ERROR(" (%s:%d)\n", "rapid_type_analysis.nit", 53);
3505 RET_LABEL15
:(void)0;
3509 hash_collection__HashSet__add(var14
, var_mtype
); /* Direct call hash_collection#HashSet#add on <var14:HashSet[MClassType]>*/
3513 { /* Inline model#MClassType#mclass (var_mtype) on <var_mtype:MClassType> */
3514 var19
= var_mtype
->attrs
[COLOR_model__MClassType___mclass
].val
; /* _mclass on <var_mtype:MClassType> */
3515 if (unlikely(var19
== NULL
)) {
3516 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
3517 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 986);
3521 RET_LABEL18
:(void)0;
3526 { /* Inline rapid_type_analysis#RapidTypeAnalysis#live_classes (self) on <self:RapidTypeAnalysis> */
3527 var22
= self
->attrs
[COLOR_rapid_type_analysis__RapidTypeAnalysis___live_classes
].val
; /* _live_classes on <self:RapidTypeAnalysis> */
3528 if (unlikely(var22
== NULL
)) {
3529 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_classes");
3530 PRINT_ERROR(" (%s:%d)\n", "rapid_type_analysis.nit", 62);
3534 RET_LABEL21
:(void)0;
3538 var23
= hash_collection__HashSet__has(var20
, var_mclass
);
3545 { /* Inline rapid_type_analysis#RapidTypeAnalysis#live_classes (self) on <self:RapidTypeAnalysis> */
3546 var26
= self
->attrs
[COLOR_rapid_type_analysis__RapidTypeAnalysis___live_classes
].val
; /* _live_classes on <self:RapidTypeAnalysis> */
3547 if (unlikely(var26
== NULL
)) {
3548 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_classes");
3549 PRINT_ERROR(" (%s:%d)\n", "rapid_type_analysis.nit", 62);
3553 RET_LABEL25
:(void)0;
3557 hash_collection__HashSet__add(var24
, var_mclass
); /* Direct call hash_collection#HashSet#add on <var24:HashSet[MClass]>*/
3560 { /* Inline rapid_type_analysis#RapidTypeAnalysis#totry_methods (self) on <self:RapidTypeAnalysis> */
3561 var29
= self
->attrs
[COLOR_rapid_type_analysis__RapidTypeAnalysis___totry_methods
].val
; /* _totry_methods on <self:RapidTypeAnalysis> */
3562 if (unlikely(var29
== NULL
)) {
3563 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _totry_methods");
3564 PRINT_ERROR(" (%s:%d)\n", "rapid_type_analysis.nit", 162);
3568 RET_LABEL28
:(void)0;
3573 var30
= hash_collection__HashSet__iterator(var_
);
3578 var32
= ((short int (*)(val
*))(var_31
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var_31
) /* is_ok on <var_31:Iterator[MMethod]>*/;
3582 var33
= ((val
* (*)(val
*))(var_31
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var_31
) /* item on <var_31:Iterator[MMethod]>*/;
3586 rapid_type_analysis__RapidTypeAnalysis__try_send(self
, var_mtype
, var_p
); /* Direct call rapid_type_analysis#RapidTypeAnalysis#try_send on <self:RapidTypeAnalysis>*/
3589 ((void (*)(val
*))(var_31
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var_31
) /* next on <var_31:Iterator[MMethod]>*/;
3595 BREAK_label
: (void)0;
3597 { /* Inline abstract_collection#Iterator#finish (var_31) on <var_31:Iterator[MMethod]> */
3598 RET_LABEL34
:(void)0;
3602 { /* Inline rapid_type_analysis#RapidTypeAnalysis#live_super_sends (self) on <self:RapidTypeAnalysis> */
3603 var37
= self
->attrs
[COLOR_rapid_type_analysis__RapidTypeAnalysis___live_super_sends
].val
; /* _live_super_sends on <self:RapidTypeAnalysis> */
3604 if (unlikely(var37
== NULL
)) {
3605 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_super_sends");
3606 PRINT_ERROR(" (%s:%d)\n", "rapid_type_analysis.nit", 108);
3610 RET_LABEL36
:(void)0;
3615 var39
= hash_collection__HashSet__iterator(var_38
);
3620 var41
= ((short int (*)(val
*))(var_40
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var_40
) /* is_ok on <var_40:Iterator[MMethodDef]>*/;
3624 var42
= ((val
* (*)(val
*))(var_40
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var_40
) /* item on <var_40:Iterator[MMethodDef]>*/;
3628 rapid_type_analysis__RapidTypeAnalysis__try_super_send(self
, var_mtype
, var_p43
); /* Direct call rapid_type_analysis#RapidTypeAnalysis#try_super_send on <self:RapidTypeAnalysis>*/
3631 ((void (*)(val
*))(var_40
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var_40
) /* next on <var_40:Iterator[MMethodDef]>*/;
3637 BREAK_label44
: (void)0;
3639 { /* Inline abstract_collection#Iterator#finish (var_40) on <var_40:Iterator[MMethodDef]> */
3640 RET_LABEL45
:(void)0;
3644 { /* Inline rapid_type_analysis#RapidTypeAnalysis#totry_methods_to_remove (self) on <self:RapidTypeAnalysis> */
3645 var48
= self
->attrs
[COLOR_rapid_type_analysis__RapidTypeAnalysis___totry_methods_to_remove
].val
; /* _totry_methods_to_remove on <self:RapidTypeAnalysis> */
3646 if (unlikely(var48
== NULL
)) {
3647 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _totry_methods_to_remove");
3648 PRINT_ERROR(" (%s:%d)\n", "rapid_type_analysis.nit", 165);
3652 RET_LABEL47
:(void)0;
3657 var50
= array__AbstractArrayRead__iterator(var_49
);
3662 var52
= array__ArrayIterator__is_ok(var_51
);
3666 var53
= array__ArrayIterator__item(var_51
);
3670 { /* Inline rapid_type_analysis#RapidTypeAnalysis#totry_methods (self) on <self:RapidTypeAnalysis> */
3671 var57
= self
->attrs
[COLOR_rapid_type_analysis__RapidTypeAnalysis___totry_methods
].val
; /* _totry_methods on <self:RapidTypeAnalysis> */
3672 if (unlikely(var57
== NULL
)) {
3673 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _totry_methods");
3674 PRINT_ERROR(" (%s:%d)\n", "rapid_type_analysis.nit", 162);
3678 RET_LABEL56
:(void)0;
3682 hash_collection__HashSet__remove(var55
, var_p54
); /* Direct call hash_collection#HashSet#remove on <var55:HashSet[MMethod]>*/
3685 array__ArrayIterator__next(var_51
); /* Direct call array#ArrayIterator#next on <var_51:ArrayIterator[MMethod]>*/
3691 BREAK_label58
: (void)0;
3693 { /* Inline abstract_collection#Iterator#finish (var_51) on <var_51:ArrayIterator[MMethod]> */
3694 RET_LABEL59
:(void)0;
3698 { /* Inline rapid_type_analysis#RapidTypeAnalysis#totry_methods_to_remove (self) on <self:RapidTypeAnalysis> */
3699 var62
= self
->attrs
[COLOR_rapid_type_analysis__RapidTypeAnalysis___totry_methods_to_remove
].val
; /* _totry_methods_to_remove on <self:RapidTypeAnalysis> */
3700 if (unlikely(var62
== NULL
)) {
3701 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _totry_methods_to_remove");
3702 PRINT_ERROR(" (%s:%d)\n", "rapid_type_analysis.nit", 165);
3706 RET_LABEL61
:(void)0;
3710 array__AbstractArray__clear(var60
); /* Direct call array#AbstractArray#clear on <var60:Array[MMethod]>*/
3713 { /* Inline rapid_type_analysis#RapidTypeAnalysis#mainmodule (self) on <self:RapidTypeAnalysis> */
3714 var65
= self
->attrs
[COLOR_rapid_type_analysis__RapidTypeAnalysis___mainmodule
].val
; /* _mainmodule on <self:RapidTypeAnalysis> */
3715 if (unlikely(var65
== NULL
)) {
3716 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule");
3717 PRINT_ERROR(" (%s:%d)\n", "rapid_type_analysis.nit", 49);
3721 RET_LABEL64
:(void)0;
3725 var66
= model__MClassType__anchor_to(var_mtype
, var63
, var_recv
);
3727 var_bound_mtype
= var66
;
3729 { /* Inline rapid_type_analysis#RapidTypeAnalysis#mainmodule (self) on <self:RapidTypeAnalysis> */
3730 var69
= self
->attrs
[COLOR_rapid_type_analysis__RapidTypeAnalysis___mainmodule
].val
; /* _mainmodule on <self:RapidTypeAnalysis> */
3731 if (unlikely(var69
== NULL
)) {
3732 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule");
3733 PRINT_ERROR(" (%s:%d)\n", "rapid_type_analysis.nit", 49);
3737 RET_LABEL68
:(void)0;
3741 var70
= model__MClassType__collect_mclassdefs(var_bound_mtype
, var67
);
3745 var72
= ((val
* (*)(val
*))(var_71
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var_71
) /* iterator on <var_71:Set[MClassDef]>*/;
3750 var74
= ((short int (*)(val
*))(var_73
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var_73
) /* is_ok on <var_73:Iterator[MClassDef]>*/;
3754 var75
= ((val
* (*)(val
*))(var_73
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var_73
) /* item on <var_73:Iterator[MClassDef]>*/;
3758 { /* Inline rapid_type_analysis#RapidTypeAnalysis#modelbuilder (self) on <self:RapidTypeAnalysis> */
3759 var78
= self
->attrs
[COLOR_rapid_type_analysis__RapidTypeAnalysis___modelbuilder
].val
; /* _modelbuilder on <self:RapidTypeAnalysis> */
3760 if (unlikely(var78
== NULL
)) {
3761 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
3762 PRINT_ERROR(" (%s:%d)\n", "rapid_type_analysis.nit", 46);
3766 RET_LABEL77
:(void)0;
3770 { /* Inline modelize_class#ModelBuilder#mclassdef2nclassdef (var76) on <var76:ModelBuilder> */
3771 var81
= var76
->attrs
[COLOR_modelize_class__ModelBuilder___mclassdef2nclassdef
].val
; /* _mclassdef2nclassdef on <var76:ModelBuilder> */
3772 if (unlikely(var81
== NULL
)) {
3773 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdef2nclassdef");
3774 PRINT_ERROR(" (%s:%d)\n", "modelize/modelize_class.nit", 410);
3778 RET_LABEL80
:(void)0;
3782 var82
= abstract_collection__MapRead__has_key(var79
, var_cd
);
3790 { /* Inline rapid_type_analysis#RapidTypeAnalysis#modelbuilder (self) on <self:RapidTypeAnalysis> */
3791 var87
= self
->attrs
[COLOR_rapid_type_analysis__RapidTypeAnalysis___modelbuilder
].val
; /* _modelbuilder on <self:RapidTypeAnalysis> */
3792 if (unlikely(var87
== NULL
)) {
3793 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
3794 PRINT_ERROR(" (%s:%d)\n", "rapid_type_analysis.nit", 46);
3798 RET_LABEL86
:(void)0;
3802 { /* Inline modelize_class#ModelBuilder#mclassdef2nclassdef (var85) on <var85:ModelBuilder> */
3803 var90
= var85
->attrs
[COLOR_modelize_class__ModelBuilder___mclassdef2nclassdef
].val
; /* _mclassdef2nclassdef on <var85:ModelBuilder> */
3804 if (unlikely(var90
== NULL
)) {
3805 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdef2nclassdef");
3806 PRINT_ERROR(" (%s:%d)\n", "modelize/modelize_class.nit", 410);
3810 RET_LABEL89
:(void)0;
3814 var91
= hash_collection__HashMap___91d_93d(var88
, var_cd
);
3816 var_nclassdef
= var91
;
3818 { /* Inline parser_nodes#AClassdef#n_propdefs (var_nclassdef) on <var_nclassdef:AClassdef> */
3819 var94
= var_nclassdef
->attrs
[COLOR_parser_nodes__AClassdef___n_propdefs
].val
; /* _n_propdefs on <var_nclassdef:AClassdef> */
3820 if (unlikely(var94
== NULL
)) {
3821 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_propdefs");
3822 PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 929);
3826 RET_LABEL93
:(void)0;
3831 var96
= parser_nodes__ANodes__iterator(var_95
);
3836 var98
= ((short int (*)(val
*))(var_97
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var_97
) /* is_ok on <var_97:Iterator[APropdef]>*/;
3840 var99
= ((val
* (*)(val
*))(var_97
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var_97
) /* item on <var_97:Iterator[APropdef]>*/;
3842 var_npropdef
= var99
;
3843 /* <var_npropdef:APropdef> isa AAttrPropdef */
3844 cltype
= type_parser_nodes__AAttrPropdef
.color
;
3845 idtype
= type_parser_nodes__AAttrPropdef
.id
;
3846 if(cltype
>= var_npropdef
->type
->table_size
) {
3849 var100
= var_npropdef
->type
->type_table
[cltype
] == idtype
;
3853 goto BREAK_label102
;
3857 { /* Inline modelize_property#AAttrPropdef#has_value (var_npropdef) on <var_npropdef:APropdef(AAttrPropdef)> */
3858 var105
= var_npropdef
->attrs
[COLOR_modelize_property__AAttrPropdef___has_value
].s
; /* _has_value on <var_npropdef:APropdef(AAttrPropdef)> */
3860 RET_LABEL104
:(void)0;
3865 goto BREAK_label102
;
3869 { /* Inline modelize_property#APropdef#mpropdef (var_npropdef) on <var_npropdef:APropdef(AAttrPropdef)> */
3870 var109
= var_npropdef
->attrs
[COLOR_modelize_property__APropdef___mpropdef
].val
; /* _mpropdef on <var_npropdef:APropdef(AAttrPropdef)> */
3872 RET_LABEL108
:(void)0;
3875 if (unlikely(var107
== NULL
)) {
3876 PRINT_ERROR("Runtime error: %s", "Cast failed");
3877 PRINT_ERROR(" (%s:%d)\n", "rapid_type_analysis.nit", 354);
3880 var_mpropdef
= var107
;
3881 var110
= NEW_rapid_type_analysis__RapidTypeVisitor(&type_rapid_type_analysis__RapidTypeVisitor
);
3883 rapid_type_analysis__RapidTypeVisitor__init(var110
, self
, var_bound_mtype
, var_mpropdef
); /* Direct call rapid_type_analysis#RapidTypeVisitor#init on <var110:RapidTypeVisitor>*/
3887 { /* Inline parser_nodes#AAttrPropdef#n_expr (var_npropdef) on <var_npropdef:APropdef(AAttrPropdef)> */
3888 var113
= var_npropdef
->attrs
[COLOR_parser_nodes__AAttrPropdef___n_expr
].val
; /* _n_expr on <var_npropdef:APropdef(AAttrPropdef)> */
3890 RET_LABEL112
:(void)0;
3894 parser_nodes__Visitor__enter_visit(var_v
, var111
); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:RapidTypeVisitor>*/
3897 { /* Inline parser_nodes#AAttrPropdef#n_block (var_npropdef) on <var_npropdef:APropdef(AAttrPropdef)> */
3898 var116
= var_npropdef
->attrs
[COLOR_parser_nodes__AAttrPropdef___n_block
].val
; /* _n_block on <var_npropdef:APropdef(AAttrPropdef)> */
3900 RET_LABEL115
:(void)0;
3904 parser_nodes__Visitor__enter_visit(var_v
, var114
); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:RapidTypeVisitor>*/
3906 BREAK_label102
: (void)0;
3908 ((void (*)(val
*))(var_97
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var_97
) /* next on <var_97:Iterator[APropdef]>*/;
3911 goto BREAK_label117
;
3914 BREAK_label117
: (void)0;
3916 { /* Inline abstract_collection#Iterator#finish (var_97) on <var_97:Iterator[APropdef]> */
3917 RET_LABEL118
:(void)0;
3920 BREAK_label84
: (void)0;
3922 ((void (*)(val
*))(var_73
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var_73
) /* next on <var_73:Iterator[MClassDef]>*/;
3925 goto BREAK_label119
;
3928 BREAK_label119
: (void)0;
3930 { /* Inline abstract_collection#Iterator#finish (var_73) on <var_73:Iterator[MClassDef]> */
3931 RET_LABEL120
:(void)0;
3936 /* method rapid_type_analysis#RapidTypeAnalysis#add_new for (self: Object, MClassType, MClassType) */
3937 void VIRTUAL_rapid_type_analysis__RapidTypeAnalysis__add_new(val
* self
, val
* p0
, val
* p1
) {
3938 rapid_type_analysis__RapidTypeAnalysis__add_new(self
, p0
, p1
); /* Direct call rapid_type_analysis#RapidTypeAnalysis#add_new on <self:Object(RapidTypeAnalysis)>*/
3941 /* method rapid_type_analysis#RapidTypeAnalysis#add_cast for (self: RapidTypeAnalysis, MType) */
3942 void rapid_type_analysis__RapidTypeAnalysis__add_cast(val
* self
, val
* p0
) {
3943 val
* var_mtype
/* var mtype: MType */;
3944 short int var
/* : Bool */;
3945 val
* var1
/* : HashSet[MType] */;
3946 val
* var3
/* : HashSet[MType] */;
3947 val
* var4
/* : HashSet[MType] */;
3948 val
* var6
/* : HashSet[MType] */;
3951 var
= ((short int (*)(val
*))(var_mtype
->class->vft
[COLOR_model__MType__need_anchor
]))(var_mtype
) /* need_anchor on <var_mtype:MType>*/;
3955 { /* Inline rapid_type_analysis#RapidTypeAnalysis#live_open_cast_types (self) on <self:RapidTypeAnalysis> */
3956 var3
= self
->attrs
[COLOR_rapid_type_analysis__RapidTypeAnalysis___live_open_cast_types
].val
; /* _live_open_cast_types on <self:RapidTypeAnalysis> */
3957 if (unlikely(var3
== NULL
)) {
3958 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_open_cast_types");
3959 PRINT_ERROR(" (%s:%d)\n", "rapid_type_analysis.nit", 68);
3967 hash_collection__HashSet__add(var1
, var_mtype
); /* Direct call hash_collection#HashSet#add on <var1:HashSet[MType]>*/
3971 { /* Inline rapid_type_analysis#RapidTypeAnalysis#live_cast_types (self) on <self:RapidTypeAnalysis> */
3972 var6
= self
->attrs
[COLOR_rapid_type_analysis__RapidTypeAnalysis___live_cast_types
].val
; /* _live_cast_types on <self:RapidTypeAnalysis> */
3973 if (unlikely(var6
== NULL
)) {
3974 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_cast_types");
3975 PRINT_ERROR(" (%s:%d)\n", "rapid_type_analysis.nit", 65);
3983 hash_collection__HashSet__add(var4
, var_mtype
); /* Direct call hash_collection#HashSet#add on <var4:HashSet[MType]>*/
3988 /* method rapid_type_analysis#RapidTypeAnalysis#add_cast for (self: Object, MType) */
3989 void VIRTUAL_rapid_type_analysis__RapidTypeAnalysis__add_cast(val
* self
, val
* p0
) {
3990 rapid_type_analysis__RapidTypeAnalysis__add_cast(self
, p0
); /* Direct call rapid_type_analysis#RapidTypeAnalysis#add_cast on <self:Object(RapidTypeAnalysis)>*/
3993 /* method rapid_type_analysis#RapidTypeAnalysis#try_send for (self: RapidTypeAnalysis, MClassType, MMethod) */
3994 void rapid_type_analysis__RapidTypeAnalysis__try_send(val
* self
, val
* p0
, val
* p1
) {
3995 val
* var_recv
/* var recv: MClassType */;
3996 val
* var_mproperty
/* var mproperty: MMethod */;
3997 val
* var
/* : MClass */;
3998 val
* var2
/* : MClass */;
3999 val
* var3
/* : MClassDef */;
4000 val
* var5
/* : MClassDef */;
4001 val
* var6
/* : MClassType */;
4002 val
* var8
/* : MClassType */;
4003 val
* var9
/* : MModule */;
4004 val
* var11
/* : MModule */;
4005 short int var12
/* : Bool */;
4006 short int var13
/* : Bool */;
4007 val
* var14
/* : MModule */;
4008 val
* var16
/* : MModule */;
4009 val
* var17
/* : MPropDef */;
4010 val
* var_d
/* var d: MMethodDef */;
4014 { /* Inline model#MClassType#mclass (var_recv) on <var_recv:MClassType> */
4015 var2
= var_recv
->attrs
[COLOR_model__MClassType___mclass
].val
; /* _mclass on <var_recv:MClassType> */
4016 if (unlikely(var2
== NULL
)) {
4017 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
4018 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 986);
4026 { /* Inline model#MClass#intro (var) on <var:MClass> */
4027 var5
= var
->attrs
[COLOR_model__MClass___intro
].val
; /* _intro on <var:MClass> */
4028 if (unlikely(var5
== NULL
)) {
4029 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro");
4030 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 420);
4038 { /* Inline model#MClassDef#bound_mtype (var3) on <var3:MClassDef> */
4039 var8
= var3
->attrs
[COLOR_model__MClassDef___bound_mtype
].val
; /* _bound_mtype on <var3:MClassDef> */
4040 if (unlikely(var8
== NULL
)) {
4041 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _bound_mtype");
4042 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 495);
4051 { /* Inline rapid_type_analysis#RapidTypeAnalysis#mainmodule (self) on <self:RapidTypeAnalysis> */
4052 var11
= self
->attrs
[COLOR_rapid_type_analysis__RapidTypeAnalysis___mainmodule
].val
; /* _mainmodule on <self:RapidTypeAnalysis> */
4053 if (unlikely(var11
== NULL
)) {
4054 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule");
4055 PRINT_ERROR(" (%s:%d)\n", "rapid_type_analysis.nit", 49);
4059 RET_LABEL10
:(void)0;
4063 var12
= model__MType__has_mproperty(var_recv
, var9
, var_mproperty
);
4071 { /* Inline rapid_type_analysis#RapidTypeAnalysis#mainmodule (self) on <self:RapidTypeAnalysis> */
4072 var16
= self
->attrs
[COLOR_rapid_type_analysis__RapidTypeAnalysis___mainmodule
].val
; /* _mainmodule on <self:RapidTypeAnalysis> */
4073 if (unlikely(var16
== NULL
)) {
4074 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule");
4075 PRINT_ERROR(" (%s:%d)\n", "rapid_type_analysis.nit", 49);
4079 RET_LABEL15
:(void)0;
4083 var17
= model__MProperty__lookup_first_definition(var_mproperty
, var14
, var_recv
);
4087 rapid_type_analysis__RapidTypeAnalysis__add_call(self
, var_d
); /* Direct call rapid_type_analysis#RapidTypeAnalysis#add_call on <self:RapidTypeAnalysis>*/
4091 /* method rapid_type_analysis#RapidTypeAnalysis#try_send for (self: Object, MClassType, MMethod) */
4092 void VIRTUAL_rapid_type_analysis__RapidTypeAnalysis__try_send(val
* self
, val
* p0
, val
* p1
) {
4093 rapid_type_analysis__RapidTypeAnalysis__try_send(self
, p0
, p1
); /* Direct call rapid_type_analysis#RapidTypeAnalysis#try_send on <self:Object(RapidTypeAnalysis)>*/
4096 /* method rapid_type_analysis#RapidTypeAnalysis#add_call for (self: RapidTypeAnalysis, MMethodDef) */
4097 void rapid_type_analysis__RapidTypeAnalysis__add_call(val
* self
, val
* p0
) {
4098 val
* var_mpropdef
/* var mpropdef: MMethodDef */;
4099 val
* var
/* : HashSet[MMethodDef] */;
4100 val
* var2
/* : HashSet[MMethodDef] */;
4101 short int var3
/* : Bool */;
4102 val
* var4
/* : HashSet[MMethodDef] */;
4103 val
* var6
/* : HashSet[MMethodDef] */;
4104 val
* var7
/* : List[MMethodDef] */;
4105 val
* var9
/* : List[MMethodDef] */;
4106 val
* var10
/* : MProperty */;
4107 val
* var12
/* : MProperty */;
4108 val
* var_mproperty
/* var mproperty: MMethod */;
4109 val
* var13
/* : Array[MPropDef] */;
4110 val
* var15
/* : Array[MPropDef] */;
4111 long var16
/* : Int */;
4112 long var18
/* : Int */;
4113 long var19
/* : Int */;
4114 short int var20
/* : Bool */;
4115 short int var22
/* : Bool */;
4118 const char* var_class_name
;
4119 short int var23
/* : Bool */;
4120 val
* var24
/* : Array[MPropDef] */;
4121 val
* var26
/* : Array[MPropDef] */;
4122 val
* var_
/* var : Array[MMethodDef] */;
4123 val
* var27
/* : ArrayIterator[nullable Object] */;
4124 val
* var_28
/* var : ArrayIterator[MMethodDef] */;
4125 short int var29
/* : Bool */;
4126 val
* var30
/* : nullable Object */;
4127 val
* var_d
/* var d: MMethodDef */;
4128 short int var31
/* : Bool */;
4129 short int var33
/* : Bool */;
4130 val
* var34
/* : HashSet[MMethodDef] */;
4131 val
* var36
/* : HashSet[MMethodDef] */;
4132 short int var37
/* : Bool */;
4133 short int var38
/* : Bool */;
4134 val
* var41
/* : Array[MMethod] */;
4135 val
* var43
/* : Array[MMethod] */;
4136 val
* var44
/* : MProperty */;
4137 val
* var46
/* : MProperty */;
4140 { /* Inline rapid_type_analysis#RapidTypeAnalysis#live_methoddefs (self) on <self:RapidTypeAnalysis> */
4141 var2
= self
->attrs
[COLOR_rapid_type_analysis__RapidTypeAnalysis___live_methoddefs
].val
; /* _live_methoddefs on <self:RapidTypeAnalysis> */
4142 if (unlikely(var2
== NULL
)) {
4143 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_methoddefs");
4144 PRINT_ERROR(" (%s:%d)\n", "rapid_type_analysis.nit", 72);
4152 var3
= hash_collection__HashSet__has(var
, var_mpropdef
);
4159 { /* Inline rapid_type_analysis#RapidTypeAnalysis#live_methoddefs (self) on <self:RapidTypeAnalysis> */
4160 var6
= self
->attrs
[COLOR_rapid_type_analysis__RapidTypeAnalysis___live_methoddefs
].val
; /* _live_methoddefs on <self:RapidTypeAnalysis> */
4161 if (unlikely(var6
== NULL
)) {
4162 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_methoddefs");
4163 PRINT_ERROR(" (%s:%d)\n", "rapid_type_analysis.nit", 72);
4171 hash_collection__HashSet__add(var4
, var_mpropdef
); /* Direct call hash_collection#HashSet#add on <var4:HashSet[MMethodDef]>*/
4174 { /* Inline rapid_type_analysis#RapidTypeAnalysis#todo (self) on <self:RapidTypeAnalysis> */
4175 var9
= self
->attrs
[COLOR_rapid_type_analysis__RapidTypeAnalysis___todo
].val
; /* _todo on <self:RapidTypeAnalysis> */
4176 if (unlikely(var9
== NULL
)) {
4177 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _todo");
4178 PRINT_ERROR(" (%s:%d)\n", "rapid_type_analysis.nit", 172);
4186 abstract_collection__Sequence__add(var7
, var_mpropdef
); /* Direct call abstract_collection#Sequence#add on <var7:List[MMethodDef]>*/
4189 { /* Inline model#MPropDef#mproperty (var_mpropdef) on <var_mpropdef:MMethodDef> */
4190 var12
= var_mpropdef
->attrs
[COLOR_model__MPropDef___mproperty
].val
; /* _mproperty on <var_mpropdef:MMethodDef> */
4191 if (unlikely(var12
== NULL
)) {
4192 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty");
4193 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1898);
4197 RET_LABEL11
:(void)0;
4200 var_mproperty
= var10
;
4202 { /* Inline model#MProperty#mpropdefs (var_mproperty) on <var_mproperty:MMethod> */
4203 var15
= var_mproperty
->attrs
[COLOR_model__MProperty___mpropdefs
].val
; /* _mpropdefs on <var_mproperty:MMethod> */
4204 if (unlikely(var15
== NULL
)) {
4205 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mpropdefs");
4206 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1644);
4210 RET_LABEL14
:(void)0;
4214 { /* Inline array#AbstractArrayRead#length (var13) on <var13:Array[MPropDef](Array[MMethodDef])> */
4215 var18
= var13
->attrs
[COLOR_array__AbstractArrayRead___length
].l
; /* _length on <var13:Array[MPropDef](Array[MMethodDef])> */
4217 RET_LABEL17
:(void)0;
4222 { /* Inline kernel#Int#<= (var16,var19) on <var16:Int> */
4223 /* Covariant cast for argument 0 (i) <var19:Int> isa OTHER */
4224 /* <var19:Int> isa OTHER */
4225 var22
= 1; /* easy <var19:Int> isa OTHER*/
4226 if (unlikely(!var22
)) {
4227 var_class_name
= type_kernel__Int
.name
;
4228 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name
);
4229 PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 370);
4232 var23
= var16
<= var19
;
4235 RET_LABEL21
:(void)0;
4243 { /* Inline model#MProperty#mpropdefs (var_mproperty) on <var_mproperty:MMethod> */
4244 var26
= var_mproperty
->attrs
[COLOR_model__MProperty___mpropdefs
].val
; /* _mpropdefs on <var_mproperty:MMethod> */
4245 if (unlikely(var26
== NULL
)) {
4246 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mpropdefs");
4247 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1644);
4251 RET_LABEL25
:(void)0;
4256 var27
= array__AbstractArrayRead__iterator(var_
);
4261 var29
= array__ArrayIterator__is_ok(var_28
);
4265 var30
= array__ArrayIterator__item(var_28
);
4269 { /* Inline model#MMethodDef#is_abstract (var_d) on <var_d:MMethodDef> */
4270 var33
= var_d
->attrs
[COLOR_model__MMethodDef___is_abstract
].s
; /* _is_abstract on <var_d:MMethodDef> */
4272 RET_LABEL32
:(void)0;
4280 { /* Inline rapid_type_analysis#RapidTypeAnalysis#live_methoddefs (self) on <self:RapidTypeAnalysis> */
4281 var36
= self
->attrs
[COLOR_rapid_type_analysis__RapidTypeAnalysis___live_methoddefs
].val
; /* _live_methoddefs on <self:RapidTypeAnalysis> */
4282 if (unlikely(var36
== NULL
)) {
4283 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_methoddefs");
4284 PRINT_ERROR(" (%s:%d)\n", "rapid_type_analysis.nit", 72);
4288 RET_LABEL35
:(void)0;
4292 var37
= hash_collection__HashSet__has(var34
, var_d
);
4299 BREAK_label
: (void)0;
4301 array__ArrayIterator__next(var_28
); /* Direct call array#ArrayIterator#next on <var_28:ArrayIterator[MMethodDef]>*/
4307 BREAK_label39
: (void)0;
4309 { /* Inline abstract_collection#Iterator#finish (var_28) on <var_28:ArrayIterator[MMethodDef]> */
4310 RET_LABEL40
:(void)0;
4314 { /* Inline rapid_type_analysis#RapidTypeAnalysis#totry_methods_to_remove (self) on <self:RapidTypeAnalysis> */
4315 var43
= self
->attrs
[COLOR_rapid_type_analysis__RapidTypeAnalysis___totry_methods_to_remove
].val
; /* _totry_methods_to_remove on <self:RapidTypeAnalysis> */
4316 if (unlikely(var43
== NULL
)) {
4317 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _totry_methods_to_remove");
4318 PRINT_ERROR(" (%s:%d)\n", "rapid_type_analysis.nit", 165);
4322 RET_LABEL42
:(void)0;
4326 { /* Inline model#MPropDef#mproperty (var_mpropdef) on <var_mpropdef:MMethodDef> */
4327 var46
= var_mpropdef
->attrs
[COLOR_model__MPropDef___mproperty
].val
; /* _mproperty on <var_mpropdef:MMethodDef> */
4328 if (unlikely(var46
== NULL
)) {
4329 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty");
4330 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1898);
4334 RET_LABEL45
:(void)0;
4338 array__Array__add(var41
, var44
); /* Direct call array#Array#add on <var41:Array[MMethod]>*/
4342 /* method rapid_type_analysis#RapidTypeAnalysis#add_call for (self: Object, MMethodDef) */
4343 void VIRTUAL_rapid_type_analysis__RapidTypeAnalysis__add_call(val
* self
, val
* p0
) {
4344 rapid_type_analysis__RapidTypeAnalysis__add_call(self
, p0
); /* Direct call rapid_type_analysis#RapidTypeAnalysis#add_call on <self:Object(RapidTypeAnalysis)>*/
4347 /* method rapid_type_analysis#RapidTypeAnalysis#add_send for (self: RapidTypeAnalysis, MType, MMethod) */
4348 void rapid_type_analysis__RapidTypeAnalysis__add_send(val
* self
, val
* p0
, val
* p1
) {
4349 val
* var_recv
/* var recv: MType */;
4350 val
* var_mproperty
/* var mproperty: MMethod */;
4351 val
* var
/* : HashSet[MMethod] */;
4352 val
* var2
/* : HashSet[MMethod] */;
4353 short int var3
/* : Bool */;
4354 val
* var4
/* : HashSet[MMethod] */;
4355 val
* var6
/* : HashSet[MMethod] */;
4356 val
* var7
/* : HashSet[MMethod] */;
4357 val
* var9
/* : HashSet[MMethod] */;
4358 val
* var10
/* : Array[MPropDef] */;
4359 val
* var12
/* : Array[MPropDef] */;
4360 long var13
/* : Int */;
4361 long var15
/* : Int */;
4362 long var16
/* : Int */;
4363 short int var17
/* : Bool */;
4364 short int var18
/* : Bool */;
4365 short int var20
/* : Bool */;
4366 val
* var21
/* : Array[MPropDef] */;
4367 val
* var23
/* : Array[MPropDef] */;
4368 val
* var24
/* : nullable Object */;
4369 val
* var_d
/* var d: MMethodDef */;
4370 val
* var25
/* : HashSet[MMethod] */;
4371 val
* var27
/* : HashSet[MMethod] */;
4372 val
* var28
/* : HashSet[MClass] */;
4373 val
* var30
/* : HashSet[MClass] */;
4374 val
* var_
/* var : HashSet[MClass] */;
4375 val
* var31
/* : Iterator[Object] */;
4376 val
* var_32
/* var : Iterator[MClass] */;
4377 short int var33
/* : Bool */;
4378 val
* var34
/* : nullable Object */;
4379 val
* var_c
/* var c: MClass */;
4380 val
* var35
/* : MClassDef */;
4381 val
* var37
/* : MClassDef */;
4382 val
* var38
/* : MClassType */;
4383 val
* var40
/* : MClassType */;
4387 { /* Inline rapid_type_analysis#RapidTypeAnalysis#try_methods (self) on <self:RapidTypeAnalysis> */
4388 var2
= self
->attrs
[COLOR_rapid_type_analysis__RapidTypeAnalysis___try_methods
].val
; /* _try_methods on <self:RapidTypeAnalysis> */
4389 if (unlikely(var2
== NULL
)) {
4390 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _try_methods");
4391 PRINT_ERROR(" (%s:%d)\n", "rapid_type_analysis.nit", 168);
4399 var3
= hash_collection__HashSet__has(var
, var_mproperty
);
4406 { /* Inline rapid_type_analysis#RapidTypeAnalysis#live_methods (self) on <self:RapidTypeAnalysis> */
4407 var6
= self
->attrs
[COLOR_rapid_type_analysis__RapidTypeAnalysis___live_methods
].val
; /* _live_methods on <self:RapidTypeAnalysis> */
4408 if (unlikely(var6
== NULL
)) {
4409 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_methods");
4410 PRINT_ERROR(" (%s:%d)\n", "rapid_type_analysis.nit", 75);
4418 hash_collection__HashSet__add(var4
, var_mproperty
); /* Direct call hash_collection#HashSet#add on <var4:HashSet[MMethod]>*/
4421 { /* Inline rapid_type_analysis#RapidTypeAnalysis#try_methods (self) on <self:RapidTypeAnalysis> */
4422 var9
= self
->attrs
[COLOR_rapid_type_analysis__RapidTypeAnalysis___try_methods
].val
; /* _try_methods on <self:RapidTypeAnalysis> */
4423 if (unlikely(var9
== NULL
)) {
4424 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _try_methods");
4425 PRINT_ERROR(" (%s:%d)\n", "rapid_type_analysis.nit", 168);
4433 hash_collection__HashSet__add(var7
, var_mproperty
); /* Direct call hash_collection#HashSet#add on <var7:HashSet[MMethod]>*/
4436 { /* Inline model#MProperty#mpropdefs (var_mproperty) on <var_mproperty:MMethod> */
4437 var12
= var_mproperty
->attrs
[COLOR_model__MProperty___mpropdefs
].val
; /* _mpropdefs on <var_mproperty:MMethod> */
4438 if (unlikely(var12
== NULL
)) {
4439 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mpropdefs");
4440 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1644);
4444 RET_LABEL11
:(void)0;
4448 { /* Inline array#AbstractArrayRead#length (var10) on <var10:Array[MPropDef](Array[MMethodDef])> */
4449 var15
= var10
->attrs
[COLOR_array__AbstractArrayRead___length
].l
; /* _length on <var10:Array[MPropDef](Array[MMethodDef])> */
4451 RET_LABEL14
:(void)0;
4456 { /* Inline kernel#Int#== (var13,var16) on <var13:Int> */
4457 var20
= var13
== var16
;
4460 RET_LABEL19
:(void)0;
4466 { /* Inline model#MProperty#mpropdefs (var_mproperty) on <var_mproperty:MMethod> */
4467 var23
= var_mproperty
->attrs
[COLOR_model__MProperty___mpropdefs
].val
; /* _mpropdefs on <var_mproperty:MMethod> */
4468 if (unlikely(var23
== NULL
)) {
4469 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mpropdefs");
4470 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1644);
4474 RET_LABEL22
:(void)0;
4478 var24
= abstract_collection__SequenceRead__first(var21
);
4482 rapid_type_analysis__RapidTypeAnalysis__add_call(self
, var_d
); /* Direct call rapid_type_analysis#RapidTypeAnalysis#add_call on <self:RapidTypeAnalysis>*/
4488 { /* Inline rapid_type_analysis#RapidTypeAnalysis#totry_methods (self) on <self:RapidTypeAnalysis> */
4489 var27
= self
->attrs
[COLOR_rapid_type_analysis__RapidTypeAnalysis___totry_methods
].val
; /* _totry_methods on <self:RapidTypeAnalysis> */
4490 if (unlikely(var27
== NULL
)) {
4491 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _totry_methods");
4492 PRINT_ERROR(" (%s:%d)\n", "rapid_type_analysis.nit", 162);
4496 RET_LABEL26
:(void)0;
4500 hash_collection__HashSet__add(var25
, var_mproperty
); /* Direct call hash_collection#HashSet#add on <var25:HashSet[MMethod]>*/
4503 { /* Inline rapid_type_analysis#RapidTypeAnalysis#live_classes (self) on <self:RapidTypeAnalysis> */
4504 var30
= self
->attrs
[COLOR_rapid_type_analysis__RapidTypeAnalysis___live_classes
].val
; /* _live_classes on <self:RapidTypeAnalysis> */
4505 if (unlikely(var30
== NULL
)) {
4506 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_classes");
4507 PRINT_ERROR(" (%s:%d)\n", "rapid_type_analysis.nit", 62);
4511 RET_LABEL29
:(void)0;
4516 var31
= hash_collection__HashSet__iterator(var_
);
4521 var33
= ((short int (*)(val
*))(var_32
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var_32
) /* is_ok on <var_32:Iterator[MClass]>*/;
4525 var34
= ((val
* (*)(val
*))(var_32
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var_32
) /* item on <var_32:Iterator[MClass]>*/;
4529 { /* Inline model#MClass#intro (var_c) on <var_c:MClass> */
4530 var37
= var_c
->attrs
[COLOR_model__MClass___intro
].val
; /* _intro on <var_c:MClass> */
4531 if (unlikely(var37
== NULL
)) {
4532 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro");
4533 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 420);
4537 RET_LABEL36
:(void)0;
4541 { /* Inline model#MClassDef#bound_mtype (var35) on <var35:MClassDef> */
4542 var40
= var35
->attrs
[COLOR_model__MClassDef___bound_mtype
].val
; /* _bound_mtype on <var35:MClassDef> */
4543 if (unlikely(var40
== NULL
)) {
4544 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _bound_mtype");
4545 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 495);
4549 RET_LABEL39
:(void)0;
4553 rapid_type_analysis__RapidTypeAnalysis__try_send(self
, var38
, var_mproperty
); /* Direct call rapid_type_analysis#RapidTypeAnalysis#try_send on <self:RapidTypeAnalysis>*/
4556 ((void (*)(val
*))(var_32
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var_32
) /* next on <var_32:Iterator[MClass]>*/;
4562 BREAK_label
: (void)0;
4564 { /* Inline abstract_collection#Iterator#finish (var_32) on <var_32:Iterator[MClass]> */
4565 RET_LABEL41
:(void)0;
4570 /* method rapid_type_analysis#RapidTypeAnalysis#add_send for (self: Object, MType, MMethod) */
4571 void VIRTUAL_rapid_type_analysis__RapidTypeAnalysis__add_send(val
* self
, val
* p0
, val
* p1
) {
4572 rapid_type_analysis__RapidTypeAnalysis__add_send(self
, p0
, p1
); /* Direct call rapid_type_analysis#RapidTypeAnalysis#add_send on <self:Object(RapidTypeAnalysis)>*/
4575 /* method rapid_type_analysis#RapidTypeAnalysis#try_super_send for (self: RapidTypeAnalysis, MClassType, MMethodDef) */
4576 void rapid_type_analysis__RapidTypeAnalysis__try_super_send(val
* self
, val
* p0
, val
* p1
) {
4577 val
* var_recv
/* var recv: MClassType */;
4578 val
* var_mpropdef
/* var mpropdef: MMethodDef */;
4579 val
* var
/* : MClass */;
4580 val
* var2
/* : MClass */;
4581 val
* var3
/* : MClassDef */;
4582 val
* var5
/* : MClassDef */;
4583 val
* var6
/* : MClassType */;
4584 val
* var8
/* : MClassType */;
4585 val
* var9
/* : MModule */;
4586 val
* var11
/* : MModule */;
4587 val
* var12
/* : Set[MClassDef] */;
4588 val
* var13
/* : MClassDef */;
4589 val
* var15
/* : MClassDef */;
4590 short int var16
/* : Bool */;
4591 short int var17
/* : Bool */;
4592 val
* var18
/* : MModule */;
4593 val
* var20
/* : MModule */;
4594 val
* var21
/* : MPropDef */;
4595 val
* var_d
/* var d: MMethodDef */;
4599 { /* Inline model#MClassType#mclass (var_recv) on <var_recv:MClassType> */
4600 var2
= var_recv
->attrs
[COLOR_model__MClassType___mclass
].val
; /* _mclass on <var_recv:MClassType> */
4601 if (unlikely(var2
== NULL
)) {
4602 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
4603 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 986);
4611 { /* Inline model#MClass#intro (var) on <var:MClass> */
4612 var5
= var
->attrs
[COLOR_model__MClass___intro
].val
; /* _intro on <var:MClass> */
4613 if (unlikely(var5
== NULL
)) {
4614 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro");
4615 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 420);
4623 { /* Inline model#MClassDef#bound_mtype (var3) on <var3:MClassDef> */
4624 var8
= var3
->attrs
[COLOR_model__MClassDef___bound_mtype
].val
; /* _bound_mtype on <var3:MClassDef> */
4625 if (unlikely(var8
== NULL
)) {
4626 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _bound_mtype");
4627 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 495);
4636 { /* Inline rapid_type_analysis#RapidTypeAnalysis#mainmodule (self) on <self:RapidTypeAnalysis> */
4637 var11
= self
->attrs
[COLOR_rapid_type_analysis__RapidTypeAnalysis___mainmodule
].val
; /* _mainmodule on <self:RapidTypeAnalysis> */
4638 if (unlikely(var11
== NULL
)) {
4639 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule");
4640 PRINT_ERROR(" (%s:%d)\n", "rapid_type_analysis.nit", 49);
4644 RET_LABEL10
:(void)0;
4648 var12
= model__MClassType__collect_mclassdefs(var_recv
, var9
);
4651 { /* Inline model#MPropDef#mclassdef (var_mpropdef) on <var_mpropdef:MMethodDef> */
4652 var15
= var_mpropdef
->attrs
[COLOR_model__MPropDef___mclassdef
].val
; /* _mclassdef on <var_mpropdef:MMethodDef> */
4653 if (unlikely(var15
== NULL
)) {
4654 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdef");
4655 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1895);
4659 RET_LABEL14
:(void)0;
4663 var16
= ((short int (*)(val
*, val
*))(var12
->class->vft
[COLOR_abstract_collection__Collection__has
]))(var12
, var13
) /* has on <var12:Set[MClassDef]>*/;
4671 { /* Inline rapid_type_analysis#RapidTypeAnalysis#mainmodule (self) on <self:RapidTypeAnalysis> */
4672 var20
= self
->attrs
[COLOR_rapid_type_analysis__RapidTypeAnalysis___mainmodule
].val
; /* _mainmodule on <self:RapidTypeAnalysis> */
4673 if (unlikely(var20
== NULL
)) {
4674 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule");
4675 PRINT_ERROR(" (%s:%d)\n", "rapid_type_analysis.nit", 49);
4679 RET_LABEL19
:(void)0;
4683 var21
= model__MPropDef__lookup_next_definition(var_mpropdef
, var18
, var_recv
);
4687 rapid_type_analysis__RapidTypeAnalysis__add_call(self
, var_d
); /* Direct call rapid_type_analysis#RapidTypeAnalysis#add_call on <self:RapidTypeAnalysis>*/
4691 /* method rapid_type_analysis#RapidTypeAnalysis#try_super_send for (self: Object, MClassType, MMethodDef) */
4692 void VIRTUAL_rapid_type_analysis__RapidTypeAnalysis__try_super_send(val
* self
, val
* p0
, val
* p1
) {
4693 rapid_type_analysis__RapidTypeAnalysis__try_super_send(self
, p0
, p1
); /* Direct call rapid_type_analysis#RapidTypeAnalysis#try_super_send on <self:Object(RapidTypeAnalysis)>*/
4696 /* method rapid_type_analysis#RapidTypeAnalysis#add_super_send for (self: RapidTypeAnalysis, MType, MMethodDef) */
4697 void rapid_type_analysis__RapidTypeAnalysis__add_super_send(val
* self
, val
* p0
, val
* p1
) {
4698 val
* var_recv
/* var recv: MType */;
4699 val
* var_mpropdef
/* var mpropdef: MMethodDef */;
4700 short int var
/* : Bool */;
4701 short int var2
/* : Bool */;
4702 val
* var3
/* : HashSet[MMethodDef] */;
4703 val
* var5
/* : HashSet[MMethodDef] */;
4704 short int var6
/* : Bool */;
4705 val
* var7
/* : HashSet[MMethodDef] */;
4706 val
* var9
/* : HashSet[MMethodDef] */;
4707 val
* var10
/* : HashSet[MClass] */;
4708 val
* var12
/* : HashSet[MClass] */;
4709 val
* var_
/* var : HashSet[MClass] */;
4710 val
* var13
/* : Iterator[Object] */;
4711 val
* var_14
/* var : Iterator[MClass] */;
4712 short int var15
/* : Bool */;
4713 val
* var16
/* : nullable Object */;
4714 val
* var_c
/* var c: MClass */;
4715 val
* var17
/* : MClassDef */;
4716 val
* var19
/* : MClassDef */;
4717 val
* var20
/* : MClassType */;
4718 val
* var22
/* : MClassType */;
4722 { /* Inline modelize_property#MPropDef#has_supercall (var_mpropdef) on <var_mpropdef:MMethodDef> */
4723 var2
= var_mpropdef
->attrs
[COLOR_modelize_property__MPropDef___has_supercall
].s
; /* _has_supercall on <var_mpropdef:MMethodDef> */
4728 if (unlikely(!var
)) {
4729 PRINT_ERROR("Runtime error: %s", "Assert failed");
4730 PRINT_ERROR(" (%s:%d)\n", "rapid_type_analysis.nit", 427);
4734 { /* Inline rapid_type_analysis#RapidTypeAnalysis#live_super_sends (self) on <self:RapidTypeAnalysis> */
4735 var5
= self
->attrs
[COLOR_rapid_type_analysis__RapidTypeAnalysis___live_super_sends
].val
; /* _live_super_sends on <self:RapidTypeAnalysis> */
4736 if (unlikely(var5
== NULL
)) {
4737 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_super_sends");
4738 PRINT_ERROR(" (%s:%d)\n", "rapid_type_analysis.nit", 108);
4746 var6
= hash_collection__HashSet__has(var3
, var_mpropdef
);
4753 { /* Inline rapid_type_analysis#RapidTypeAnalysis#live_super_sends (self) on <self:RapidTypeAnalysis> */
4754 var9
= self
->attrs
[COLOR_rapid_type_analysis__RapidTypeAnalysis___live_super_sends
].val
; /* _live_super_sends on <self:RapidTypeAnalysis> */
4755 if (unlikely(var9
== NULL
)) {
4756 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_super_sends");
4757 PRINT_ERROR(" (%s:%d)\n", "rapid_type_analysis.nit", 108);
4765 hash_collection__HashSet__add(var7
, var_mpropdef
); /* Direct call hash_collection#HashSet#add on <var7:HashSet[MMethodDef]>*/
4768 { /* Inline rapid_type_analysis#RapidTypeAnalysis#live_classes (self) on <self:RapidTypeAnalysis> */
4769 var12
= self
->attrs
[COLOR_rapid_type_analysis__RapidTypeAnalysis___live_classes
].val
; /* _live_classes on <self:RapidTypeAnalysis> */
4770 if (unlikely(var12
== NULL
)) {
4771 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_classes");
4772 PRINT_ERROR(" (%s:%d)\n", "rapid_type_analysis.nit", 62);
4776 RET_LABEL11
:(void)0;
4781 var13
= hash_collection__HashSet__iterator(var_
);
4786 var15
= ((short int (*)(val
*))(var_14
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var_14
) /* is_ok on <var_14:Iterator[MClass]>*/;
4790 var16
= ((val
* (*)(val
*))(var_14
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var_14
) /* item on <var_14:Iterator[MClass]>*/;
4794 { /* Inline model#MClass#intro (var_c) on <var_c:MClass> */
4795 var19
= var_c
->attrs
[COLOR_model__MClass___intro
].val
; /* _intro on <var_c:MClass> */
4796 if (unlikely(var19
== NULL
)) {
4797 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro");
4798 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 420);
4802 RET_LABEL18
:(void)0;
4806 { /* Inline model#MClassDef#bound_mtype (var17) on <var17:MClassDef> */
4807 var22
= var17
->attrs
[COLOR_model__MClassDef___bound_mtype
].val
; /* _bound_mtype on <var17:MClassDef> */
4808 if (unlikely(var22
== NULL
)) {
4809 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _bound_mtype");
4810 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 495);
4814 RET_LABEL21
:(void)0;
4818 rapid_type_analysis__RapidTypeAnalysis__try_super_send(self
, var20
, var_mpropdef
); /* Direct call rapid_type_analysis#RapidTypeAnalysis#try_super_send on <self:RapidTypeAnalysis>*/
4821 ((void (*)(val
*))(var_14
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var_14
) /* next on <var_14:Iterator[MClass]>*/;
4827 BREAK_label
: (void)0;
4829 { /* Inline abstract_collection#Iterator#finish (var_14) on <var_14:Iterator[MClass]> */
4830 RET_LABEL23
:(void)0;
4835 /* method rapid_type_analysis#RapidTypeAnalysis#add_super_send for (self: Object, MType, MMethodDef) */
4836 void VIRTUAL_rapid_type_analysis__RapidTypeAnalysis__add_super_send(val
* self
, val
* p0
, val
* p1
) {
4837 rapid_type_analysis__RapidTypeAnalysis__add_super_send(self
, p0
, p1
); /* Direct call rapid_type_analysis#RapidTypeAnalysis#add_super_send on <self:Object(RapidTypeAnalysis)>*/
4840 /* method rapid_type_analysis#RapidTypeAnalysis#init for (self: RapidTypeAnalysis) */
4841 void rapid_type_analysis__RapidTypeAnalysis__init(val
* self
) {
4843 ((void (*)(val
*))(self
->class->vft
[COLOR_rapid_type_analysis__RapidTypeAnalysis__init
]))(self
) /* init on <self:RapidTypeAnalysis>*/;
4847 /* method rapid_type_analysis#RapidTypeAnalysis#init for (self: Object) */
4848 void VIRTUAL_rapid_type_analysis__RapidTypeAnalysis__init(val
* self
) {
4849 { /* Inline rapid_type_analysis#RapidTypeAnalysis#init (self) on <self:Object(RapidTypeAnalysis)> */
4851 ((void (*)(val
*))(self
->class->vft
[COLOR_rapid_type_analysis__RapidTypeAnalysis__init
]))(self
) /* init on <self:Object(RapidTypeAnalysis)>*/;
4857 /* method rapid_type_analysis#RapidTypeVisitor#analysis for (self: RapidTypeVisitor): RapidTypeAnalysis */
4858 val
* rapid_type_analysis__RapidTypeVisitor__analysis(val
* self
) {
4859 val
* var
/* : RapidTypeAnalysis */;
4860 val
* var1
/* : RapidTypeAnalysis */;
4861 var1
= self
->attrs
[COLOR_rapid_type_analysis__RapidTypeVisitor___analysis
].val
; /* _analysis on <self:RapidTypeVisitor> */
4862 if (unlikely(var1
== NULL
)) {
4863 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _analysis");
4864 PRINT_ERROR(" (%s:%d)\n", "rapid_type_analysis.nit", 440);
4871 /* method rapid_type_analysis#RapidTypeVisitor#analysis for (self: Object): RapidTypeAnalysis */
4872 val
* VIRTUAL_rapid_type_analysis__RapidTypeVisitor__analysis(val
* self
) {
4873 val
* var
/* : RapidTypeAnalysis */;
4874 val
* var1
/* : RapidTypeAnalysis */;
4875 val
* var3
/* : RapidTypeAnalysis */;
4876 { /* Inline rapid_type_analysis#RapidTypeVisitor#analysis (self) on <self:Object(RapidTypeVisitor)> */
4877 var3
= self
->attrs
[COLOR_rapid_type_analysis__RapidTypeVisitor___analysis
].val
; /* _analysis on <self:Object(RapidTypeVisitor)> */
4878 if (unlikely(var3
== NULL
)) {
4879 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _analysis");
4880 PRINT_ERROR(" (%s:%d)\n", "rapid_type_analysis.nit", 440);
4890 /* method rapid_type_analysis#RapidTypeVisitor#analysis= for (self: RapidTypeVisitor, RapidTypeAnalysis) */
4891 void rapid_type_analysis__RapidTypeVisitor__analysis_61d(val
* self
, val
* p0
) {
4892 self
->attrs
[COLOR_rapid_type_analysis__RapidTypeVisitor___analysis
].val
= p0
; /* _analysis on <self:RapidTypeVisitor> */
4895 /* method rapid_type_analysis#RapidTypeVisitor#analysis= for (self: Object, RapidTypeAnalysis) */
4896 void VIRTUAL_rapid_type_analysis__RapidTypeVisitor__analysis_61d(val
* self
, val
* p0
) {
4897 { /* Inline rapid_type_analysis#RapidTypeVisitor#analysis= (self,p0) on <self:Object(RapidTypeVisitor)> */
4898 self
->attrs
[COLOR_rapid_type_analysis__RapidTypeVisitor___analysis
].val
= p0
; /* _analysis on <self:Object(RapidTypeVisitor)> */
4903 /* method rapid_type_analysis#RapidTypeVisitor#receiver for (self: RapidTypeVisitor): MClassType */
4904 val
* rapid_type_analysis__RapidTypeVisitor__receiver(val
* self
) {
4905 val
* var
/* : MClassType */;
4906 val
* var1
/* : MClassType */;
4907 var1
= self
->attrs
[COLOR_rapid_type_analysis__RapidTypeVisitor___receiver
].val
; /* _receiver on <self:RapidTypeVisitor> */
4908 if (unlikely(var1
== NULL
)) {
4909 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _receiver");
4910 PRINT_ERROR(" (%s:%d)\n", "rapid_type_analysis.nit", 441);
4917 /* method rapid_type_analysis#RapidTypeVisitor#receiver for (self: Object): MClassType */
4918 val
* VIRTUAL_rapid_type_analysis__RapidTypeVisitor__receiver(val
* self
) {
4919 val
* var
/* : MClassType */;
4920 val
* var1
/* : MClassType */;
4921 val
* var3
/* : MClassType */;
4922 { /* Inline rapid_type_analysis#RapidTypeVisitor#receiver (self) on <self:Object(RapidTypeVisitor)> */
4923 var3
= self
->attrs
[COLOR_rapid_type_analysis__RapidTypeVisitor___receiver
].val
; /* _receiver on <self:Object(RapidTypeVisitor)> */
4924 if (unlikely(var3
== NULL
)) {
4925 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _receiver");
4926 PRINT_ERROR(" (%s:%d)\n", "rapid_type_analysis.nit", 441);
4936 /* method rapid_type_analysis#RapidTypeVisitor#receiver= for (self: RapidTypeVisitor, MClassType) */
4937 void rapid_type_analysis__RapidTypeVisitor__receiver_61d(val
* self
, val
* p0
) {
4938 self
->attrs
[COLOR_rapid_type_analysis__RapidTypeVisitor___receiver
].val
= p0
; /* _receiver on <self:RapidTypeVisitor> */
4941 /* method rapid_type_analysis#RapidTypeVisitor#receiver= for (self: Object, MClassType) */
4942 void VIRTUAL_rapid_type_analysis__RapidTypeVisitor__receiver_61d(val
* self
, val
* p0
) {
4943 { /* Inline rapid_type_analysis#RapidTypeVisitor#receiver= (self,p0) on <self:Object(RapidTypeVisitor)> */
4944 self
->attrs
[COLOR_rapid_type_analysis__RapidTypeVisitor___receiver
].val
= p0
; /* _receiver on <self:Object(RapidTypeVisitor)> */
4949 /* method rapid_type_analysis#RapidTypeVisitor#mpropdef= for (self: RapidTypeVisitor, MPropDef) */
4950 void rapid_type_analysis__RapidTypeVisitor__mpropdef_61d(val
* self
, val
* p0
) {
4951 self
->attrs
[COLOR_rapid_type_analysis__RapidTypeVisitor___mpropdef
].val
= p0
; /* _mpropdef on <self:RapidTypeVisitor> */
4954 /* method rapid_type_analysis#RapidTypeVisitor#mpropdef= for (self: Object, MPropDef) */
4955 void VIRTUAL_rapid_type_analysis__RapidTypeVisitor__mpropdef_61d(val
* self
, val
* p0
) {
4956 { /* Inline rapid_type_analysis#RapidTypeVisitor#mpropdef= (self,p0) on <self:Object(RapidTypeVisitor)> */
4957 self
->attrs
[COLOR_rapid_type_analysis__RapidTypeVisitor___mpropdef
].val
= p0
; /* _mpropdef on <self:Object(RapidTypeVisitor)> */
4962 /* method rapid_type_analysis#RapidTypeVisitor#init for (self: RapidTypeVisitor, RapidTypeAnalysis, MClassType, MPropDef) */
4963 void rapid_type_analysis__RapidTypeVisitor__init(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
4964 val
* var_analysis
/* var analysis: RapidTypeAnalysis */;
4965 val
* var_receiver
/* var receiver: MClassType */;
4966 val
* var_mpropdef
/* var mpropdef: MPropDef */;
4967 short int var
/* : Bool */;
4968 short int var4
/* : Bool */;
4970 ((void (*)(val
*))(self
->class->vft
[COLOR_kernel__Object__init
]))(self
) /* init on <self:RapidTypeVisitor>*/;
4976 { /* Inline rapid_type_analysis#RapidTypeVisitor#analysis= (self,var_analysis) on <self:RapidTypeVisitor> */
4977 self
->attrs
[COLOR_rapid_type_analysis__RapidTypeVisitor___analysis
].val
= var_analysis
; /* _analysis on <self:RapidTypeVisitor> */
4982 { /* Inline rapid_type_analysis#RapidTypeVisitor#receiver= (self,var_receiver) on <self:RapidTypeVisitor> */
4983 self
->attrs
[COLOR_rapid_type_analysis__RapidTypeVisitor___receiver
].val
= var_receiver
; /* _receiver on <self:RapidTypeVisitor> */
4988 { /* Inline rapid_type_analysis#RapidTypeVisitor#mpropdef= (self,var_mpropdef) on <self:RapidTypeVisitor> */
4989 self
->attrs
[COLOR_rapid_type_analysis__RapidTypeVisitor___mpropdef
].val
= var_mpropdef
; /* _mpropdef on <self:RapidTypeVisitor> */
4994 var
= ((short int (*)(val
*))(var_receiver
->class->vft
[COLOR_model__MType__need_anchor
]))(var_receiver
) /* need_anchor on <var_receiver:MClassType>*/;
4997 if (unlikely(!var4
)) {
4998 PRINT_ERROR("Runtime error: %s", "Assert failed");
4999 PRINT_ERROR(" (%s:%d)\n", "rapid_type_analysis.nit", 449);
5004 /* method rapid_type_analysis#RapidTypeVisitor#init for (self: Object, RapidTypeAnalysis, MClassType, MPropDef) */
5005 void VIRTUAL_rapid_type_analysis__RapidTypeVisitor__init(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
5006 rapid_type_analysis__RapidTypeVisitor__init(self
, p0
, p1
, p2
); /* Direct call rapid_type_analysis#RapidTypeVisitor#init on <self:Object(RapidTypeVisitor)>*/
5009 /* method rapid_type_analysis#RapidTypeVisitor#visit for (self: RapidTypeVisitor, ANode) */
5010 void rapid_type_analysis__RapidTypeVisitor__visit(val
* self
, val
* p0
) {
5011 val
* var_n
/* var n: ANode */;
5012 short int var
/* : Bool */;
5015 val
* var1
/* : nullable MType */;
5016 val
* var3
/* : nullable MType */;
5017 val
* var_implicit_cast_to
/* var implicit_cast_to: nullable MType */;
5018 val
* var4
/* : null */;
5019 short int var5
/* : Bool */;
5020 short int var6
/* : Bool */;
5021 val
* var_other
/* var other: nullable Object */;
5022 short int var8
/* : Bool */;
5023 short int var9
/* : Bool */;
5024 short int var10
/* : Bool */;
5025 short int var11
/* : Bool */;
5028 short int var14
/* : Bool */;
5031 ((void (*)(val
*, val
*))(var_n
->class->vft
[COLOR_rapid_type_analysis__ANode__accept_rapid_type_visitor
]))(var_n
, self
) /* accept_rapid_type_visitor on <var_n:ANode>*/;
5033 /* <var_n:ANode> isa AExpr */
5034 cltype
= type_parser_nodes__AExpr
.color
;
5035 idtype
= type_parser_nodes__AExpr
.id
;
5036 if(cltype
>= var_n
->type
->table_size
) {
5039 var
= var_n
->type
->type_table
[cltype
] == idtype
;
5043 { /* Inline typing#AExpr#implicit_cast_to (var_n) on <var_n:ANode(AExpr)> */
5044 var3
= var_n
->attrs
[COLOR_typing__AExpr___implicit_cast_to
].val
; /* _implicit_cast_to on <var_n:ANode(AExpr)> */
5049 var_implicit_cast_to
= var1
;
5051 if (var_implicit_cast_to
== NULL
) {
5052 var5
= 0; /* is null */
5054 var5
= 1; /* arg is null and recv is not */
5057 { /* Inline kernel#Object#!= (var_implicit_cast_to,var4) on <var_implicit_cast_to:nullable MType> */
5060 var9
= ((short int (*)(val
*, val
*))(var_implicit_cast_to
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var_implicit_cast_to
, var_other
) /* == on <var_implicit_cast_to:nullable MType(MType)>*/;
5072 rapid_type_analysis__RapidTypeVisitor__add_cast_type(self
, var_implicit_cast_to
); /* Direct call rapid_type_analysis#RapidTypeVisitor#add_cast_type on <self:RapidTypeVisitor>*/
5078 /* <var_n:ANode> isa AAnnotations */
5079 cltype12
= type_parser_nodes__AAnnotations
.color
;
5080 idtype13
= type_parser_nodes__AAnnotations
.id
;
5081 if(cltype12
>= var_n
->type
->table_size
) {
5084 var11
= var_n
->type
->type_table
[cltype12
] == idtype13
;
5089 ((void (*)(val
*, val
*))(var_n
->class->vft
[COLOR_parser_nodes__ANode__visit_all
]))(var_n
, self
) /* visit_all on <var_n:ANode>*/;
5095 /* method rapid_type_analysis#RapidTypeVisitor#visit for (self: Object, ANode) */
5096 void VIRTUAL_rapid_type_analysis__RapidTypeVisitor__visit(val
* self
, val
* p0
) {
5097 rapid_type_analysis__RapidTypeVisitor__visit(self
, p0
); /* Direct call rapid_type_analysis#RapidTypeVisitor#visit on <self:Object(RapidTypeVisitor)>*/
5100 /* method rapid_type_analysis#RapidTypeVisitor#cleanup_type for (self: RapidTypeVisitor, MType): nullable MClassType */
5101 val
* rapid_type_analysis__RapidTypeVisitor__cleanup_type(val
* self
, val
* p0
) {
5102 val
* var
/* : nullable MClassType */;
5103 val
* var_mtype
/* var mtype: MType */;
5104 val
* var1
/* : RapidTypeAnalysis */;
5105 val
* var3
/* : RapidTypeAnalysis */;
5106 val
* var4
/* : MModule */;
5107 val
* var6
/* : MModule */;
5108 val
* var7
/* : MClassType */;
5109 val
* var9
/* : MClassType */;
5110 val
* var10
/* : MType */;
5111 short int var11
/* : Bool */;
5114 val
* var12
/* : null */;
5115 val
* var13
/* : MType */;
5116 short int var14
/* : Bool */;
5119 short int var17
/* : Bool */;
5120 short int var18
/* : Bool */;
5123 { /* Inline rapid_type_analysis#RapidTypeVisitor#analysis (self) on <self:RapidTypeVisitor> */
5124 var3
= self
->attrs
[COLOR_rapid_type_analysis__RapidTypeVisitor___analysis
].val
; /* _analysis on <self:RapidTypeVisitor> */
5125 if (unlikely(var3
== NULL
)) {
5126 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _analysis");
5127 PRINT_ERROR(" (%s:%d)\n", "rapid_type_analysis.nit", 440);
5135 { /* Inline rapid_type_analysis#RapidTypeAnalysis#mainmodule (var1) on <var1:RapidTypeAnalysis> */
5136 var6
= var1
->attrs
[COLOR_rapid_type_analysis__RapidTypeAnalysis___mainmodule
].val
; /* _mainmodule on <var1:RapidTypeAnalysis> */
5137 if (unlikely(var6
== NULL
)) {
5138 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule");
5139 PRINT_ERROR(" (%s:%d)\n", "rapid_type_analysis.nit", 49);
5147 { /* Inline rapid_type_analysis#RapidTypeVisitor#receiver (self) on <self:RapidTypeVisitor> */
5148 var9
= self
->attrs
[COLOR_rapid_type_analysis__RapidTypeVisitor___receiver
].val
; /* _receiver on <self:RapidTypeVisitor> */
5149 if (unlikely(var9
== NULL
)) {
5150 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _receiver");
5151 PRINT_ERROR(" (%s:%d)\n", "rapid_type_analysis.nit", 441);
5159 var10
= ((val
* (*)(val
*, val
*, val
*))(var_mtype
->class->vft
[COLOR_model__MType__anchor_to
]))(var_mtype
, var4
, var7
) /* anchor_to on <var_mtype:MType>*/;
5162 /* <var_mtype:MType> isa MNullType */
5163 cltype
= type_model__MNullType
.color
;
5164 idtype
= type_model__MNullType
.id
;
5165 if(cltype
>= var_mtype
->type
->table_size
) {
5168 var11
= var_mtype
->type
->type_table
[cltype
] == idtype
;
5177 var13
= ((val
* (*)(val
*))(var_mtype
->class->vft
[COLOR_model__MType__as_notnullable
]))(var_mtype
) /* as_notnullable on <var_mtype:MType>*/;
5180 /* <var_mtype:MType> isa MClassType */
5181 cltype15
= type_model__MClassType
.color
;
5182 idtype16
= type_model__MClassType
.id
;
5183 if(cltype15
>= var_mtype
->type
->table_size
) {
5186 var14
= var_mtype
->type
->type_table
[cltype15
] == idtype16
;
5188 if (unlikely(!var14
)) {
5189 PRINT_ERROR("Runtime error: %s", "Assert failed");
5190 PRINT_ERROR(" (%s:%d)\n", "rapid_type_analysis.nit", 471);
5194 var17
= ((short int (*)(val
*))(var_mtype
->class->vft
[COLOR_model__MType__need_anchor
]))(var_mtype
) /* need_anchor on <var_mtype:MType(MClassType)>*/;
5197 if (unlikely(!var18
)) {
5198 PRINT_ERROR("Runtime error: %s", "Assert failed");
5199 PRINT_ERROR(" (%s:%d)\n", "rapid_type_analysis.nit", 472);
5207 /* method rapid_type_analysis#RapidTypeVisitor#cleanup_type for (self: Object, MType): nullable MClassType */
5208 val
* VIRTUAL_rapid_type_analysis__RapidTypeVisitor__cleanup_type(val
* self
, val
* p0
) {
5209 val
* var
/* : nullable MClassType */;
5210 val
* var1
/* : nullable MClassType */;
5211 var1
= rapid_type_analysis__RapidTypeVisitor__cleanup_type(self
, p0
);
5216 /* method rapid_type_analysis#RapidTypeVisitor#get_class for (self: RapidTypeVisitor, String): MClass */
5217 val
* rapid_type_analysis__RapidTypeVisitor__get_class(val
* self
, val
* p0
) {
5218 val
* var
/* : MClass */;
5219 val
* var_name
/* var name: String */;
5220 val
* var1
/* : RapidTypeAnalysis */;
5221 val
* var3
/* : RapidTypeAnalysis */;
5222 val
* var4
/* : MModule */;
5223 val
* var6
/* : MModule */;
5224 val
* var7
/* : MClass */;
5227 { /* Inline rapid_type_analysis#RapidTypeVisitor#analysis (self) on <self:RapidTypeVisitor> */
5228 var3
= self
->attrs
[COLOR_rapid_type_analysis__RapidTypeVisitor___analysis
].val
; /* _analysis on <self:RapidTypeVisitor> */
5229 if (unlikely(var3
== NULL
)) {
5230 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _analysis");
5231 PRINT_ERROR(" (%s:%d)\n", "rapid_type_analysis.nit", 440);
5239 { /* Inline rapid_type_analysis#RapidTypeAnalysis#mainmodule (var1) on <var1:RapidTypeAnalysis> */
5240 var6
= var1
->attrs
[COLOR_rapid_type_analysis__RapidTypeAnalysis___mainmodule
].val
; /* _mainmodule on <var1:RapidTypeAnalysis> */
5241 if (unlikely(var6
== NULL
)) {
5242 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule");
5243 PRINT_ERROR(" (%s:%d)\n", "rapid_type_analysis.nit", 49);
5251 var7
= model__MModule__get_primitive_class(var4
, var_name
);
5258 /* method rapid_type_analysis#RapidTypeVisitor#get_class for (self: Object, String): MClass */
5259 val
* VIRTUAL_rapid_type_analysis__RapidTypeVisitor__get_class(val
* self
, val
* p0
) {
5260 val
* var
/* : MClass */;
5261 val
* var1
/* : MClass */;
5262 var1
= rapid_type_analysis__RapidTypeVisitor__get_class(self
, p0
);
5267 /* method rapid_type_analysis#RapidTypeVisitor#get_method for (self: RapidTypeVisitor, MType, String): MMethod */
5268 val
* rapid_type_analysis__RapidTypeVisitor__get_method(val
* self
, val
* p0
, val
* p1
) {
5269 val
* var
/* : MMethod */;
5270 val
* var_recv
/* var recv: MType */;
5271 val
* var_name
/* var name: String */;
5272 val
* var1
/* : nullable MClassType */;
5273 val
* var_mtype
/* var mtype: nullable MClassType */;
5274 val
* var2
/* : null */;
5275 short int var3
/* : Bool */;
5276 short int var4
/* : Bool */;
5277 val
* var_other
/* var other: nullable Object */;
5278 short int var6
/* : Bool */;
5279 short int var7
/* : Bool */;
5280 short int var8
/* : Bool */;
5281 val
* var9
/* : RapidTypeAnalysis */;
5282 val
* var11
/* : RapidTypeAnalysis */;
5283 val
* var12
/* : ModelBuilder */;
5284 val
* var14
/* : ModelBuilder */;
5285 val
* var15
/* : nullable ANode */;
5286 val
* var17
/* : nullable ANode */;
5287 val
* var18
/* : MClass */;
5288 val
* var20
/* : MClass */;
5289 val
* var21
/* : RapidTypeAnalysis */;
5290 val
* var23
/* : RapidTypeAnalysis */;
5291 val
* var24
/* : MModule */;
5292 val
* var26
/* : MModule */;
5293 val
* var27
/* : MMethod */;
5297 var1
= rapid_type_analysis__RapidTypeVisitor__cleanup_type(self
, var_recv
);
5301 if (var_mtype
== NULL
) {
5302 var3
= 0; /* is null */
5304 var3
= 1; /* arg is null and recv is not */
5307 { /* Inline kernel#Object#!= (var_mtype,var2) on <var_mtype:nullable MClassType> */
5310 var7
= ((short int (*)(val
*, val
*))(var_mtype
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var_mtype
, var_other
) /* == on <var_mtype:nullable MClassType(MClassType)>*/;
5320 if (unlikely(!var3
)) {
5321 PRINT_ERROR("Runtime error: %s", "Assert failed");
5322 PRINT_ERROR(" (%s:%d)\n", "rapid_type_analysis.nit", 484);
5326 { /* Inline rapid_type_analysis#RapidTypeVisitor#analysis (self) on <self:RapidTypeVisitor> */
5327 var11
= self
->attrs
[COLOR_rapid_type_analysis__RapidTypeVisitor___analysis
].val
; /* _analysis on <self:RapidTypeVisitor> */
5328 if (unlikely(var11
== NULL
)) {
5329 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _analysis");
5330 PRINT_ERROR(" (%s:%d)\n", "rapid_type_analysis.nit", 440);
5334 RET_LABEL10
:(void)0;
5338 { /* Inline rapid_type_analysis#RapidTypeAnalysis#modelbuilder (var9) on <var9:RapidTypeAnalysis> */
5339 var14
= var9
->attrs
[COLOR_rapid_type_analysis__RapidTypeAnalysis___modelbuilder
].val
; /* _modelbuilder on <var9:RapidTypeAnalysis> */
5340 if (unlikely(var14
== NULL
)) {
5341 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
5342 PRINT_ERROR(" (%s:%d)\n", "rapid_type_analysis.nit", 46);
5346 RET_LABEL13
:(void)0;
5350 { /* Inline parser_nodes#Visitor#current_node (self) on <self:RapidTypeVisitor> */
5351 var17
= self
->attrs
[COLOR_parser_nodes__Visitor___current_node
].val
; /* _current_node on <self:RapidTypeVisitor> */
5353 RET_LABEL16
:(void)0;
5356 if (unlikely(var15
== NULL
)) {
5357 PRINT_ERROR("Runtime error: %s", "Cast failed");
5358 PRINT_ERROR(" (%s:%d)\n", "rapid_type_analysis.nit", 485);
5362 { /* Inline model#MClassType#mclass (var_mtype) on <var_mtype:nullable MClassType(MClassType)> */
5363 var20
= var_mtype
->attrs
[COLOR_model__MClassType___mclass
].val
; /* _mclass on <var_mtype:nullable MClassType(MClassType)> */
5364 if (unlikely(var20
== NULL
)) {
5365 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
5366 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 986);
5370 RET_LABEL19
:(void)0;
5374 { /* Inline rapid_type_analysis#RapidTypeVisitor#analysis (self) on <self:RapidTypeVisitor> */
5375 var23
= self
->attrs
[COLOR_rapid_type_analysis__RapidTypeVisitor___analysis
].val
; /* _analysis on <self:RapidTypeVisitor> */
5376 if (unlikely(var23
== NULL
)) {
5377 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _analysis");
5378 PRINT_ERROR(" (%s:%d)\n", "rapid_type_analysis.nit", 440);
5382 RET_LABEL22
:(void)0;
5386 { /* Inline rapid_type_analysis#RapidTypeAnalysis#mainmodule (var21) on <var21:RapidTypeAnalysis> */
5387 var26
= var21
->attrs
[COLOR_rapid_type_analysis__RapidTypeAnalysis___mainmodule
].val
; /* _mainmodule on <var21:RapidTypeAnalysis> */
5388 if (unlikely(var26
== NULL
)) {
5389 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule");
5390 PRINT_ERROR(" (%s:%d)\n", "rapid_type_analysis.nit", 49);
5394 RET_LABEL25
:(void)0;
5398 var27
= modelbuilder__ModelBuilder__force_get_primitive_method(var12
, var15
, var_name
, var18
, var24
);
5405 /* method rapid_type_analysis#RapidTypeVisitor#get_method for (self: Object, MType, String): MMethod */
5406 val
* VIRTUAL_rapid_type_analysis__RapidTypeVisitor__get_method(val
* self
, val
* p0
, val
* p1
) {
5407 val
* var
/* : MMethod */;
5408 val
* var1
/* : MMethod */;
5409 var1
= rapid_type_analysis__RapidTypeVisitor__get_method(self
, p0
, p1
);
5414 /* method rapid_type_analysis#RapidTypeVisitor#add_type for (self: RapidTypeVisitor, MClassType) */
5415 void rapid_type_analysis__RapidTypeVisitor__add_type(val
* self
, val
* p0
) {
5416 val
* var_mtype
/* var mtype: MClassType */;
5417 val
* var
/* : RapidTypeAnalysis */;
5418 val
* var2
/* : RapidTypeAnalysis */;
5419 val
* var3
/* : MClassType */;
5420 val
* var5
/* : MClassType */;
5423 { /* Inline rapid_type_analysis#RapidTypeVisitor#analysis (self) on <self:RapidTypeVisitor> */
5424 var2
= self
->attrs
[COLOR_rapid_type_analysis__RapidTypeVisitor___analysis
].val
; /* _analysis on <self:RapidTypeVisitor> */
5425 if (unlikely(var2
== NULL
)) {
5426 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _analysis");
5427 PRINT_ERROR(" (%s:%d)\n", "rapid_type_analysis.nit", 440);
5435 { /* Inline rapid_type_analysis#RapidTypeVisitor#receiver (self) on <self:RapidTypeVisitor> */
5436 var5
= self
->attrs
[COLOR_rapid_type_analysis__RapidTypeVisitor___receiver
].val
; /* _receiver on <self:RapidTypeVisitor> */
5437 if (unlikely(var5
== NULL
)) {
5438 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _receiver");
5439 PRINT_ERROR(" (%s:%d)\n", "rapid_type_analysis.nit", 441);
5447 rapid_type_analysis__RapidTypeAnalysis__add_new(var
, var3
, var_mtype
); /* Direct call rapid_type_analysis#RapidTypeAnalysis#add_new on <var:RapidTypeAnalysis>*/
5451 /* method rapid_type_analysis#RapidTypeVisitor#add_type for (self: Object, MClassType) */
5452 void VIRTUAL_rapid_type_analysis__RapidTypeVisitor__add_type(val
* self
, val
* p0
) {
5453 rapid_type_analysis__RapidTypeVisitor__add_type(self
, p0
); /* Direct call rapid_type_analysis#RapidTypeVisitor#add_type on <self:Object(RapidTypeVisitor)>*/
5456 /* method rapid_type_analysis#RapidTypeVisitor#add_monomorphic_send for (self: RapidTypeVisitor, MType, MMethod) */
5457 void rapid_type_analysis__RapidTypeVisitor__add_monomorphic_send(val
* self
, val
* p0
, val
* p1
) {
5458 val
* var_mtype
/* var mtype: MType */;
5459 val
* var_mproperty
/* var mproperty: MMethod */;
5460 val
* var
/* : RapidTypeAnalysis */;
5461 val
* var2
/* : RapidTypeAnalysis */;
5462 val
* var3
/* : HashSet[MMethod] */;
5463 val
* var5
/* : HashSet[MMethod] */;
5464 val
* var6
/* : RapidTypeAnalysis */;
5465 val
* var8
/* : RapidTypeAnalysis */;
5466 short int var9
/* : Bool */;
5469 const char* var_class_name
;
5473 { /* Inline rapid_type_analysis#RapidTypeVisitor#analysis (self) on <self:RapidTypeVisitor> */
5474 var2
= self
->attrs
[COLOR_rapid_type_analysis__RapidTypeVisitor___analysis
].val
; /* _analysis on <self:RapidTypeVisitor> */
5475 if (unlikely(var2
== NULL
)) {
5476 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _analysis");
5477 PRINT_ERROR(" (%s:%d)\n", "rapid_type_analysis.nit", 440);
5485 { /* Inline rapid_type_analysis#RapidTypeAnalysis#live_methods (var) on <var:RapidTypeAnalysis> */
5486 var5
= var
->attrs
[COLOR_rapid_type_analysis__RapidTypeAnalysis___live_methods
].val
; /* _live_methods on <var:RapidTypeAnalysis> */
5487 if (unlikely(var5
== NULL
)) {
5488 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_methods");
5489 PRINT_ERROR(" (%s:%d)\n", "rapid_type_analysis.nit", 75);
5497 hash_collection__HashSet__add(var3
, var_mproperty
); /* Direct call hash_collection#HashSet#add on <var3:HashSet[MMethod]>*/
5500 { /* Inline rapid_type_analysis#RapidTypeVisitor#analysis (self) on <self:RapidTypeVisitor> */
5501 var8
= self
->attrs
[COLOR_rapid_type_analysis__RapidTypeVisitor___analysis
].val
; /* _analysis on <self:RapidTypeVisitor> */
5502 if (unlikely(var8
== NULL
)) {
5503 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _analysis");
5504 PRINT_ERROR(" (%s:%d)\n", "rapid_type_analysis.nit", 440);
5511 /* <var_mtype:MType> isa MClassType */
5512 cltype
= type_model__MClassType
.color
;
5513 idtype
= type_model__MClassType
.id
;
5514 if(cltype
>= var_mtype
->type
->table_size
) {
5517 var9
= var_mtype
->type
->type_table
[cltype
] == idtype
;
5519 if (unlikely(!var9
)) {
5520 var_class_name
= var_mtype
== NULL ?
"null" : var_mtype
->type
->name
;
5521 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "MClassType", var_class_name
);
5522 PRINT_ERROR(" (%s:%d)\n", "rapid_type_analysis.nit", 493);
5526 rapid_type_analysis__RapidTypeAnalysis__try_send(var6
, var_mtype
, var_mproperty
); /* Direct call rapid_type_analysis#RapidTypeAnalysis#try_send on <var6:RapidTypeAnalysis>*/
5530 /* method rapid_type_analysis#RapidTypeVisitor#add_monomorphic_send for (self: Object, MType, MMethod) */
5531 void VIRTUAL_rapid_type_analysis__RapidTypeVisitor__add_monomorphic_send(val
* self
, val
* p0
, val
* p1
) {
5532 rapid_type_analysis__RapidTypeVisitor__add_monomorphic_send(self
, p0
, p1
); /* Direct call rapid_type_analysis#RapidTypeVisitor#add_monomorphic_send on <self:Object(RapidTypeVisitor)>*/
5535 /* method rapid_type_analysis#RapidTypeVisitor#add_cast_type for (self: RapidTypeVisitor, MType) */
5536 void rapid_type_analysis__RapidTypeVisitor__add_cast_type(val
* self
, val
* p0
) {
5537 val
* var_mtype
/* var mtype: MType */;
5538 val
* var
/* : RapidTypeAnalysis */;
5539 val
* var2
/* : RapidTypeAnalysis */;
5542 { /* Inline rapid_type_analysis#RapidTypeVisitor#analysis (self) on <self:RapidTypeVisitor> */
5543 var2
= self
->attrs
[COLOR_rapid_type_analysis__RapidTypeVisitor___analysis
].val
; /* _analysis on <self:RapidTypeVisitor> */
5544 if (unlikely(var2
== NULL
)) {
5545 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _analysis");
5546 PRINT_ERROR(" (%s:%d)\n", "rapid_type_analysis.nit", 440);
5554 rapid_type_analysis__RapidTypeAnalysis__add_cast(var
, var_mtype
); /* Direct call rapid_type_analysis#RapidTypeAnalysis#add_cast on <var:RapidTypeAnalysis>*/
5558 /* method rapid_type_analysis#RapidTypeVisitor#add_cast_type for (self: Object, MType) */
5559 void VIRTUAL_rapid_type_analysis__RapidTypeVisitor__add_cast_type(val
* self
, val
* p0
) {
5560 rapid_type_analysis__RapidTypeVisitor__add_cast_type(self
, p0
); /* Direct call rapid_type_analysis#RapidTypeVisitor#add_cast_type on <self:Object(RapidTypeVisitor)>*/
5563 /* method rapid_type_analysis#RapidTypeVisitor#add_callsite for (self: RapidTypeVisitor, nullable CallSite) */
5564 void rapid_type_analysis__RapidTypeVisitor__add_callsite(val
* self
, val
* p0
) {
5565 val
* var_callsite
/* var callsite: nullable CallSite */;
5566 val
* var
/* : null */;
5567 short int var1
/* : Bool */;
5568 short int var2
/* : Bool */;
5569 val
* var_other
/* var other: nullable Object */;
5570 short int var4
/* : Bool */;
5571 short int var5
/* : Bool */;
5572 short int var6
/* : Bool */;
5573 val
* var7
/* : MMethodDef */;
5574 val
* var9
/* : MMethodDef */;
5575 val
* var10
/* : Array[MProperty] */;
5576 val
* var12
/* : Array[MProperty] */;
5577 val
* var_
/* var : Array[MProperty] */;
5578 val
* var13
/* : ArrayIterator[nullable Object] */;
5579 val
* var_14
/* var : ArrayIterator[MProperty] */;
5580 short int var15
/* : Bool */;
5581 val
* var16
/* : nullable Object */;
5582 val
* var_m
/* var m: MProperty */;
5583 short int var17
/* : Bool */;
5586 val
* var18
/* : RapidTypeAnalysis */;
5587 val
* var20
/* : RapidTypeAnalysis */;
5588 val
* var21
/* : MType */;
5589 val
* var23
/* : MType */;
5590 val
* var25
/* : RapidTypeAnalysis */;
5591 val
* var27
/* : RapidTypeAnalysis */;
5592 val
* var28
/* : MType */;
5593 val
* var30
/* : MType */;
5594 val
* var31
/* : MMethod */;
5595 val
* var33
/* : MMethod */;
5596 val
* var34
/* : RapidTypeAnalysis */;
5597 val
* var36
/* : RapidTypeAnalysis */;
5598 val
* var37
/* : HashSet[CallSite] */;
5599 val
* var39
/* : HashSet[CallSite] */;
5602 if (var_callsite
== NULL
) {
5603 var1
= 0; /* is null */
5605 var1
= 1; /* arg is null and recv is not */
5608 { /* Inline kernel#Object#!= (var_callsite,var) on <var_callsite:nullable CallSite> */
5611 var5
= ((short int (*)(val
*, val
*))(var_callsite
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var_callsite
, var_other
) /* == on <var_callsite:nullable CallSite(CallSite)>*/;
5623 { /* Inline typing#CallSite#mpropdef (var_callsite) on <var_callsite:nullable CallSite(CallSite)> */
5624 var9
= var_callsite
->attrs
[COLOR_typing__CallSite___mpropdef
].val
; /* _mpropdef on <var_callsite:nullable CallSite(CallSite)> */
5625 if (unlikely(var9
== NULL
)) {
5626 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mpropdef");
5627 PRINT_ERROR(" (%s:%d)\n", "semantize/typing.nit", 486);
5635 { /* Inline model#MMethodDef#initializers (var7) on <var7:MMethodDef> */
5636 var12
= var7
->attrs
[COLOR_model__MMethodDef___initializers
].val
; /* _initializers on <var7:MMethodDef> */
5637 if (unlikely(var12
== NULL
)) {
5638 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _initializers");
5639 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1967);
5643 RET_LABEL11
:(void)0;
5648 var13
= array__AbstractArrayRead__iterator(var_
);
5653 var15
= array__ArrayIterator__is_ok(var_14
);
5657 var16
= array__ArrayIterator__item(var_14
);
5660 /* <var_m:MProperty> isa MMethod */
5661 cltype
= type_model__MMethod
.color
;
5662 idtype
= type_model__MMethod
.id
;
5663 if(cltype
>= var_m
->type
->table_size
) {
5666 var17
= var_m
->type
->type_table
[cltype
] == idtype
;
5670 { /* Inline rapid_type_analysis#RapidTypeVisitor#analysis (self) on <self:RapidTypeVisitor> */
5671 var20
= self
->attrs
[COLOR_rapid_type_analysis__RapidTypeVisitor___analysis
].val
; /* _analysis on <self:RapidTypeVisitor> */
5672 if (unlikely(var20
== NULL
)) {
5673 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _analysis");
5674 PRINT_ERROR(" (%s:%d)\n", "rapid_type_analysis.nit", 440);
5678 RET_LABEL19
:(void)0;
5682 { /* Inline typing#CallSite#recv (var_callsite) on <var_callsite:nullable CallSite(CallSite)> */
5683 var23
= var_callsite
->attrs
[COLOR_typing__CallSite___recv
].val
; /* _recv on <var_callsite:nullable CallSite(CallSite)> */
5684 if (unlikely(var23
== NULL
)) {
5685 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _recv");
5686 PRINT_ERROR(" (%s:%d)\n", "semantize/typing.nit", 469);
5690 RET_LABEL22
:(void)0;
5694 rapid_type_analysis__RapidTypeAnalysis__add_send(var18
, var21
, var_m
); /* Direct call rapid_type_analysis#RapidTypeAnalysis#add_send on <var18:RapidTypeAnalysis>*/
5699 array__ArrayIterator__next(var_14
); /* Direct call array#ArrayIterator#next on <var_14:ArrayIterator[MProperty]>*/
5705 BREAK_label
: (void)0;
5707 { /* Inline abstract_collection#Iterator#finish (var_14) on <var_14:ArrayIterator[MProperty]> */
5708 RET_LABEL24
:(void)0;
5712 { /* Inline rapid_type_analysis#RapidTypeVisitor#analysis (self) on <self:RapidTypeVisitor> */
5713 var27
= self
->attrs
[COLOR_rapid_type_analysis__RapidTypeVisitor___analysis
].val
; /* _analysis on <self:RapidTypeVisitor> */
5714 if (unlikely(var27
== NULL
)) {
5715 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _analysis");
5716 PRINT_ERROR(" (%s:%d)\n", "rapid_type_analysis.nit", 440);
5720 RET_LABEL26
:(void)0;
5724 { /* Inline typing#CallSite#recv (var_callsite) on <var_callsite:nullable CallSite(CallSite)> */
5725 var30
= var_callsite
->attrs
[COLOR_typing__CallSite___recv
].val
; /* _recv on <var_callsite:nullable CallSite(CallSite)> */
5726 if (unlikely(var30
== NULL
)) {
5727 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _recv");
5728 PRINT_ERROR(" (%s:%d)\n", "semantize/typing.nit", 469);
5732 RET_LABEL29
:(void)0;
5736 { /* Inline typing#CallSite#mproperty (var_callsite) on <var_callsite:nullable CallSite(CallSite)> */
5737 var33
= var_callsite
->attrs
[COLOR_typing__CallSite___mproperty
].val
; /* _mproperty on <var_callsite:nullable CallSite(CallSite)> */
5738 if (unlikely(var33
== NULL
)) {
5739 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty");
5740 PRINT_ERROR(" (%s:%d)\n", "semantize/typing.nit", 483);
5744 RET_LABEL32
:(void)0;
5748 rapid_type_analysis__RapidTypeAnalysis__add_send(var25
, var28
, var31
); /* Direct call rapid_type_analysis#RapidTypeAnalysis#add_send on <var25:RapidTypeAnalysis>*/
5751 { /* Inline rapid_type_analysis#RapidTypeVisitor#analysis (self) on <self:RapidTypeVisitor> */
5752 var36
= self
->attrs
[COLOR_rapid_type_analysis__RapidTypeVisitor___analysis
].val
; /* _analysis on <self:RapidTypeVisitor> */
5753 if (unlikely(var36
== NULL
)) {
5754 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _analysis");
5755 PRINT_ERROR(" (%s:%d)\n", "rapid_type_analysis.nit", 440);
5759 RET_LABEL35
:(void)0;
5763 { /* Inline rapid_type_analysis#RapidTypeAnalysis#live_callsites (var34) on <var34:RapidTypeAnalysis> */
5764 var39
= var34
->attrs
[COLOR_rapid_type_analysis__RapidTypeAnalysis___live_callsites
].val
; /* _live_callsites on <var34:RapidTypeAnalysis> */
5765 if (unlikely(var39
== NULL
)) {
5766 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_callsites");
5767 PRINT_ERROR(" (%s:%d)\n", "rapid_type_analysis.nit", 78);
5771 RET_LABEL38
:(void)0;
5775 hash_collection__HashSet__add(var37
, var_callsite
); /* Direct call hash_collection#HashSet#add on <var37:HashSet[CallSite]>*/
5781 /* method rapid_type_analysis#RapidTypeVisitor#add_callsite for (self: Object, nullable CallSite) */
5782 void VIRTUAL_rapid_type_analysis__RapidTypeVisitor__add_callsite(val
* self
, val
* p0
) {
5783 rapid_type_analysis__RapidTypeVisitor__add_callsite(self
, p0
); /* Direct call rapid_type_analysis#RapidTypeVisitor#add_callsite on <self:Object(RapidTypeVisitor)>*/
5786 /* method rapid_type_analysis#ANode#accept_rapid_type_visitor for (self: ANode, RapidTypeVisitor) */
5787 void rapid_type_analysis__ANode__accept_rapid_type_visitor(val
* self
, val
* p0
) {
5788 val
* var_v
/* var v: RapidTypeVisitor */;
5792 /* method rapid_type_analysis#ANode#accept_rapid_type_visitor for (self: Object, RapidTypeVisitor) */
5793 void VIRTUAL_rapid_type_analysis__ANode__accept_rapid_type_visitor(val
* self
, val
* p0
) {
5794 val
* var_v
/* var v: RapidTypeVisitor */;
5795 { /* Inline rapid_type_analysis#ANode#accept_rapid_type_visitor (self,p0) on <self:Object(ANode)> */
5801 /* method rapid_type_analysis#AIntExpr#accept_rapid_type_visitor for (self: AIntExpr, RapidTypeVisitor) */
5802 void rapid_type_analysis__AIntExpr__accept_rapid_type_visitor(val
* self
, val
* p0
) {
5803 val
* var_v
/* var v: RapidTypeVisitor */;
5804 val
* var
/* : nullable MType */;
5805 val
* var2
/* : nullable MType */;
5806 short int var3
/* : Bool */;
5809 const char* var_class_name
;
5812 { /* Inline typing#AExpr#mtype (self) on <self:AIntExpr> */
5813 var2
= self
->attrs
[COLOR_typing__AExpr___mtype
].val
; /* _mtype on <self:AIntExpr> */
5818 /* <var:nullable MType> isa MClassType */
5819 cltype
= type_model__MClassType
.color
;
5820 idtype
= type_model__MClassType
.id
;
5824 if(cltype
>= var
->type
->table_size
) {
5827 var3
= var
->type
->type_table
[cltype
] == idtype
;
5830 if (unlikely(!var3
)) {
5831 var_class_name
= var
== NULL ?
"null" : var
->type
->name
;
5832 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "MClassType", var_class_name
);
5833 PRINT_ERROR(" (%s:%d)\n", "rapid_type_analysis.nit", 522);
5837 rapid_type_analysis__RapidTypeVisitor__add_type(var_v
, var
); /* Direct call rapid_type_analysis#RapidTypeVisitor#add_type on <var_v:RapidTypeVisitor>*/
5841 /* method rapid_type_analysis#AIntExpr#accept_rapid_type_visitor for (self: Object, RapidTypeVisitor) */
5842 void VIRTUAL_rapid_type_analysis__AIntExpr__accept_rapid_type_visitor(val
* self
, val
* p0
) {
5843 rapid_type_analysis__AIntExpr__accept_rapid_type_visitor(self
, p0
); /* Direct call rapid_type_analysis#AIntExpr#accept_rapid_type_visitor on <self:Object(AIntExpr)>*/
5846 /* method rapid_type_analysis#AFloatExpr#accept_rapid_type_visitor for (self: AFloatExpr, RapidTypeVisitor) */
5847 void rapid_type_analysis__AFloatExpr__accept_rapid_type_visitor(val
* self
, val
* p0
) {
5848 val
* var_v
/* var v: RapidTypeVisitor */;
5849 val
* var
/* : nullable MType */;
5850 val
* var2
/* : nullable MType */;
5851 short int var3
/* : Bool */;
5854 const char* var_class_name
;
5857 { /* Inline typing#AExpr#mtype (self) on <self:AFloatExpr> */
5858 var2
= self
->attrs
[COLOR_typing__AExpr___mtype
].val
; /* _mtype on <self:AFloatExpr> */
5863 /* <var:nullable MType> isa MClassType */
5864 cltype
= type_model__MClassType
.color
;
5865 idtype
= type_model__MClassType
.id
;
5869 if(cltype
>= var
->type
->table_size
) {
5872 var3
= var
->type
->type_table
[cltype
] == idtype
;
5875 if (unlikely(!var3
)) {
5876 var_class_name
= var
== NULL ?
"null" : var
->type
->name
;
5877 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "MClassType", var_class_name
);
5878 PRINT_ERROR(" (%s:%d)\n", "rapid_type_analysis.nit", 529);
5882 rapid_type_analysis__RapidTypeVisitor__add_type(var_v
, var
); /* Direct call rapid_type_analysis#RapidTypeVisitor#add_type on <var_v:RapidTypeVisitor>*/
5886 /* method rapid_type_analysis#AFloatExpr#accept_rapid_type_visitor for (self: Object, RapidTypeVisitor) */
5887 void VIRTUAL_rapid_type_analysis__AFloatExpr__accept_rapid_type_visitor(val
* self
, val
* p0
) {
5888 rapid_type_analysis__AFloatExpr__accept_rapid_type_visitor(self
, p0
); /* Direct call rapid_type_analysis#AFloatExpr#accept_rapid_type_visitor on <self:Object(AFloatExpr)>*/
5891 /* method rapid_type_analysis#ACharExpr#accept_rapid_type_visitor for (self: ACharExpr, RapidTypeVisitor) */
5892 void rapid_type_analysis__ACharExpr__accept_rapid_type_visitor(val
* self
, val
* p0
) {
5893 val
* var_v
/* var v: RapidTypeVisitor */;
5894 val
* var
/* : nullable MType */;
5895 val
* var2
/* : nullable MType */;
5896 short int var3
/* : Bool */;
5899 const char* var_class_name
;
5902 { /* Inline typing#AExpr#mtype (self) on <self:ACharExpr> */
5903 var2
= self
->attrs
[COLOR_typing__AExpr___mtype
].val
; /* _mtype on <self:ACharExpr> */
5908 /* <var:nullable MType> isa MClassType */
5909 cltype
= type_model__MClassType
.color
;
5910 idtype
= type_model__MClassType
.id
;
5914 if(cltype
>= var
->type
->table_size
) {
5917 var3
= var
->type
->type_table
[cltype
] == idtype
;
5920 if (unlikely(!var3
)) {
5921 var_class_name
= var
== NULL ?
"null" : var
->type
->name
;
5922 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "MClassType", var_class_name
);
5923 PRINT_ERROR(" (%s:%d)\n", "rapid_type_analysis.nit", 536);
5927 rapid_type_analysis__RapidTypeVisitor__add_type(var_v
, var
); /* Direct call rapid_type_analysis#RapidTypeVisitor#add_type on <var_v:RapidTypeVisitor>*/
5931 /* method rapid_type_analysis#ACharExpr#accept_rapid_type_visitor for (self: Object, RapidTypeVisitor) */
5932 void VIRTUAL_rapid_type_analysis__ACharExpr__accept_rapid_type_visitor(val
* self
, val
* p0
) {
5933 rapid_type_analysis__ACharExpr__accept_rapid_type_visitor(self
, p0
); /* Direct call rapid_type_analysis#ACharExpr#accept_rapid_type_visitor on <self:Object(ACharExpr)>*/
5936 /* method rapid_type_analysis#AArrayExpr#accept_rapid_type_visitor for (self: AArrayExpr, RapidTypeVisitor) */
5937 void rapid_type_analysis__AArrayExpr__accept_rapid_type_visitor(val
* self
, val
* p0
) {
5938 val
* var_v
/* var v: RapidTypeVisitor */;
5939 val
* var
/* : nullable MType */;
5940 val
* var2
/* : nullable MType */;
5941 short int var3
/* : Bool */;
5944 const char* var_class_name
;
5945 val
* var_mtype
/* var mtype: MClassType */;
5946 val
* var4
/* : RapidTypeAnalysis */;
5947 val
* var6
/* : RapidTypeAnalysis */;
5948 val
* var7
/* : MModule */;
5949 val
* var9
/* : MModule */;
5950 static val
* varonce
;
5951 val
* var10
/* : String */;
5952 char* var11
/* : NativeString */;
5953 long var12
/* : Int */;
5954 val
* var13
/* : FlatString */;
5955 val
* var14
/* : MClass */;
5956 val
* var15
/* : Array[MType] */;
5957 long var16
/* : Int */;
5958 val
* var_
/* var : Array[MType] */;
5959 val
* var17
/* : Array[MType] */;
5960 val
* var19
/* : Array[MType] */;
5961 val
* var20
/* : nullable Object */;
5962 val
* var21
/* : MClassType */;
5963 val
* var_native
/* var native: MClassType */;
5964 val
* var22
/* : nullable MClassType */;
5965 static val
* varonce23
;
5966 val
* var24
/* : String */;
5967 char* var25
/* : NativeString */;
5968 long var26
/* : Int */;
5969 val
* var27
/* : FlatString */;
5970 val
* var28
/* : MMethod */;
5971 val
* var_prop
/* var prop: MMethod */;
5974 { /* Inline typing#AExpr#mtype (self) on <self:AArrayExpr> */
5975 var2
= self
->attrs
[COLOR_typing__AExpr___mtype
].val
; /* _mtype on <self:AArrayExpr> */
5980 /* <var:nullable MType> isa MClassType */
5981 cltype
= type_model__MClassType
.color
;
5982 idtype
= type_model__MClassType
.id
;
5986 if(cltype
>= var
->type
->table_size
) {
5989 var3
= var
->type
->type_table
[cltype
] == idtype
;
5992 if (unlikely(!var3
)) {
5993 var_class_name
= var
== NULL ?
"null" : var
->type
->name
;
5994 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "MClassType", var_class_name
);
5995 PRINT_ERROR(" (%s:%d)\n", "rapid_type_analysis.nit", 543);
6000 rapid_type_analysis__RapidTypeVisitor__add_type(var_v
, var_mtype
); /* Direct call rapid_type_analysis#RapidTypeVisitor#add_type on <var_v:RapidTypeVisitor>*/
6003 { /* Inline rapid_type_analysis#RapidTypeVisitor#analysis (var_v) on <var_v:RapidTypeVisitor> */
6004 var6
= var_v
->attrs
[COLOR_rapid_type_analysis__RapidTypeVisitor___analysis
].val
; /* _analysis on <var_v:RapidTypeVisitor> */
6005 if (unlikely(var6
== NULL
)) {
6006 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _analysis");
6007 PRINT_ERROR(" (%s:%d)\n", "rapid_type_analysis.nit", 440);
6015 { /* Inline rapid_type_analysis#RapidTypeAnalysis#mainmodule (var4) on <var4:RapidTypeAnalysis> */
6016 var9
= var4
->attrs
[COLOR_rapid_type_analysis__RapidTypeAnalysis___mainmodule
].val
; /* _mainmodule on <var4:RapidTypeAnalysis> */
6017 if (unlikely(var9
== NULL
)) {
6018 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule");
6019 PRINT_ERROR(" (%s:%d)\n", "rapid_type_analysis.nit", 49);
6029 var11
= "NativeArray";
6031 var13
= string__NativeString__to_s_with_length(var11
, var12
);
6036 var14
= model__MModule__get_primitive_class(var7
, var10
);
6038 var15
= NEW_array__Array(&type_array__Arraymodel__MType
);
6041 array__Array__with_capacity(var15
, var16
); /* Direct call array#Array#with_capacity on <var15:Array[MType]>*/
6045 { /* Inline model#MClassType#arguments (var_mtype) on <var_mtype:MClassType> */
6046 var19
= var_mtype
->attrs
[COLOR_model__MClassType___arguments
].val
; /* _arguments on <var_mtype:MClassType> */
6047 if (unlikely(var19
== NULL
)) {
6048 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _arguments");
6049 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 996);
6053 RET_LABEL18
:(void)0;
6057 var20
= abstract_collection__SequenceRead__first(var17
);
6060 array__AbstractArray__push(var_
, var20
); /* Direct call array#AbstractArray#push on <var_:Array[MType]>*/
6063 var21
= model__MClass__get_mtype(var14
, var_
);
6067 rapid_type_analysis__RapidTypeVisitor__add_type(var_v
, var_native
); /* Direct call rapid_type_analysis#RapidTypeVisitor#add_type on <var_v:RapidTypeVisitor>*/
6070 var22
= rapid_type_analysis__RapidTypeVisitor__cleanup_type(var_v
, var_mtype
);
6072 if (unlikely(var22
== NULL
)) {
6073 PRINT_ERROR("Runtime error: %s", "Cast failed");
6074 PRINT_ERROR(" (%s:%d)\n", "rapid_type_analysis.nit", 547);
6081 var25
= "with_native";
6083 var27
= string__NativeString__to_s_with_length(var25
, var26
);
6088 var28
= rapid_type_analysis__RapidTypeVisitor__get_method(var_v
, var_mtype
, var24
);
6092 rapid_type_analysis__RapidTypeVisitor__add_monomorphic_send(var_v
, var_mtype
, var_prop
); /* Direct call rapid_type_analysis#RapidTypeVisitor#add_monomorphic_send on <var_v:RapidTypeVisitor>*/
6096 /* method rapid_type_analysis#AArrayExpr#accept_rapid_type_visitor for (self: Object, RapidTypeVisitor) */
6097 void VIRTUAL_rapid_type_analysis__AArrayExpr__accept_rapid_type_visitor(val
* self
, val
* p0
) {
6098 rapid_type_analysis__AArrayExpr__accept_rapid_type_visitor(self
, p0
); /* Direct call rapid_type_analysis#AArrayExpr#accept_rapid_type_visitor on <self:Object(AArrayExpr)>*/
6101 /* method rapid_type_analysis#AStringFormExpr#accept_rapid_type_visitor for (self: AStringFormExpr, RapidTypeVisitor) */
6102 void rapid_type_analysis__AStringFormExpr__accept_rapid_type_visitor(val
* self
, val
* p0
) {
6103 val
* var_v
/* var v: RapidTypeVisitor */;
6104 static val
* varonce
;
6105 val
* var
/* : String */;
6106 char* var1
/* : NativeString */;
6107 long var2
/* : Int */;
6108 val
* var3
/* : FlatString */;
6109 val
* var4
/* : MClass */;
6110 val
* var5
/* : MClassType */;
6111 val
* var7
/* : MClassType */;
6112 val
* var_native
/* var native: MClassType */;
6113 static val
* varonce8
;
6114 val
* var9
/* : String */;
6115 char* var10
/* : NativeString */;
6116 long var11
/* : Int */;
6117 val
* var12
/* : FlatString */;
6118 val
* var13
/* : MMethod */;
6119 val
* var_prop
/* var prop: MMethod */;
6124 var1
= "NativeString";
6126 var3
= string__NativeString__to_s_with_length(var1
, var2
);
6131 var4
= rapid_type_analysis__RapidTypeVisitor__get_class(var_v
, var
);
6134 { /* Inline model#MClass#mclass_type (var4) on <var4:MClass> */
6135 var7
= var4
->attrs
[COLOR_model__MClass___mclass_type
].val
; /* _mclass_type on <var4:MClass> */
6136 if (unlikely(var7
== NULL
)) {
6137 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass_type");
6138 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 435);
6147 rapid_type_analysis__RapidTypeVisitor__add_type(var_v
, var_native
); /* Direct call rapid_type_analysis#RapidTypeVisitor#add_type on <var_v:RapidTypeVisitor>*/
6152 var10
= "to_s_with_length";
6154 var12
= string__NativeString__to_s_with_length(var10
, var11
);
6159 var13
= rapid_type_analysis__RapidTypeVisitor__get_method(var_v
, var_native
, var9
);
6163 rapid_type_analysis__RapidTypeVisitor__add_monomorphic_send(var_v
, var_native
, var_prop
); /* Direct call rapid_type_analysis#RapidTypeVisitor#add_monomorphic_send on <var_v:RapidTypeVisitor>*/
6167 /* method rapid_type_analysis#AStringFormExpr#accept_rapid_type_visitor for (self: Object, RapidTypeVisitor) */
6168 void VIRTUAL_rapid_type_analysis__AStringFormExpr__accept_rapid_type_visitor(val
* self
, val
* p0
) {
6169 rapid_type_analysis__AStringFormExpr__accept_rapid_type_visitor(self
, p0
); /* Direct call rapid_type_analysis#AStringFormExpr#accept_rapid_type_visitor on <self:Object(AStringFormExpr)>*/
6172 /* method rapid_type_analysis#ASuperstringExpr#accept_rapid_type_visitor for (self: ASuperstringExpr, RapidTypeVisitor) */
6173 void rapid_type_analysis__ASuperstringExpr__accept_rapid_type_visitor(val
* self
, val
* p0
) {
6174 val
* var_v
/* var v: RapidTypeVisitor */;
6175 static val
* varonce
;
6176 val
* var
/* : String */;
6177 char* var1
/* : NativeString */;
6178 long var2
/* : Int */;
6179 val
* var3
/* : FlatString */;
6180 val
* var4
/* : MClass */;
6181 val
* var5
/* : Array[MClassType] */;
6182 long var6
/* : Int */;
6183 val
* var_
/* var : Array[MClassType] */;
6184 static val
* varonce7
;
6185 val
* var8
/* : String */;
6186 char* var9
/* : NativeString */;
6187 long var10
/* : Int */;
6188 val
* var11
/* : FlatString */;
6189 val
* var12
/* : MClass */;
6190 val
* var13
/* : MClassType */;
6191 val
* var15
/* : MClassType */;
6192 val
* var16
/* : MClassType */;
6193 val
* var_arraytype
/* var arraytype: MClassType */;
6194 static val
* varonce17
;
6195 val
* var18
/* : String */;
6196 char* var19
/* : NativeString */;
6197 long var20
/* : Int */;
6198 val
* var21
/* : FlatString */;
6199 val
* var22
/* : MClass */;
6200 val
* var23
/* : Array[MClassType] */;
6201 long var24
/* : Int */;
6202 val
* var_25
/* var : Array[MClassType] */;
6203 static val
* varonce26
;
6204 val
* var27
/* : String */;
6205 char* var28
/* : NativeString */;
6206 long var29
/* : Int */;
6207 val
* var30
/* : FlatString */;
6208 val
* var31
/* : MClass */;
6209 val
* var32
/* : MClassType */;
6210 val
* var34
/* : MClassType */;
6211 val
* var35
/* : MClassType */;
6212 static val
* varonce36
;
6213 val
* var37
/* : String */;
6214 char* var38
/* : NativeString */;
6215 long var39
/* : Int */;
6216 val
* var40
/* : FlatString */;
6217 val
* var41
/* : MMethod */;
6218 val
* var_prop
/* var prop: MMethod */;
6219 static val
* varonce42
;
6220 val
* var43
/* : String */;
6221 char* var44
/* : NativeString */;
6222 long var45
/* : Int */;
6223 val
* var46
/* : FlatString */;
6224 val
* var47
/* : MMethod */;
6225 val
* var_prop2
/* var prop2: MMethod */;
6232 var3
= string__NativeString__to_s_with_length(var1
, var2
);
6237 var4
= rapid_type_analysis__RapidTypeVisitor__get_class(var_v
, var
);
6239 var5
= NEW_array__Array(&type_array__Arraymodel__MClassType
);
6242 array__Array__with_capacity(var5
, var6
); /* Direct call array#Array#with_capacity on <var5:Array[MClassType]>*/
6250 var11
= string__NativeString__to_s_with_length(var9
, var10
);
6255 var12
= rapid_type_analysis__RapidTypeVisitor__get_class(var_v
, var8
);
6258 { /* Inline model#MClass#mclass_type (var12) on <var12:MClass> */
6259 var15
= var12
->attrs
[COLOR_model__MClass___mclass_type
].val
; /* _mclass_type on <var12:MClass> */
6260 if (unlikely(var15
== NULL
)) {
6261 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass_type");
6262 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 435);
6266 RET_LABEL14
:(void)0;
6270 array__AbstractArray__push(var_
, var13
); /* Direct call array#AbstractArray#push on <var_:Array[MClassType]>*/
6273 var16
= model__MClass__get_mtype(var4
, var_
);
6275 var_arraytype
= var16
;
6277 rapid_type_analysis__RapidTypeVisitor__add_type(var_v
, var_arraytype
); /* Direct call rapid_type_analysis#RapidTypeVisitor#add_type on <var_v:RapidTypeVisitor>*/
6282 var19
= "NativeArray";
6284 var21
= string__NativeString__to_s_with_length(var19
, var20
);
6289 var22
= rapid_type_analysis__RapidTypeVisitor__get_class(var_v
, var18
);
6291 var23
= NEW_array__Array(&type_array__Arraymodel__MClassType
);
6294 array__Array__with_capacity(var23
, var24
); /* Direct call array#Array#with_capacity on <var23:Array[MClassType]>*/
6302 var30
= string__NativeString__to_s_with_length(var28
, var29
);
6307 var31
= rapid_type_analysis__RapidTypeVisitor__get_class(var_v
, var27
);
6310 { /* Inline model#MClass#mclass_type (var31) on <var31:MClass> */
6311 var34
= var31
->attrs
[COLOR_model__MClass___mclass_type
].val
; /* _mclass_type on <var31:MClass> */
6312 if (unlikely(var34
== NULL
)) {
6313 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass_type");
6314 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 435);
6318 RET_LABEL33
:(void)0;
6322 array__AbstractArray__push(var_25
, var32
); /* Direct call array#AbstractArray#push on <var_25:Array[MClassType]>*/
6325 var35
= model__MClass__get_mtype(var22
, var_25
);
6328 rapid_type_analysis__RapidTypeVisitor__add_type(var_v
, var35
); /* Direct call rapid_type_analysis#RapidTypeVisitor#add_type on <var_v:RapidTypeVisitor>*/
6335 var40
= string__NativeString__to_s_with_length(var38
, var39
);
6340 var41
= rapid_type_analysis__RapidTypeVisitor__get_method(var_v
, var_arraytype
, var37
);
6344 rapid_type_analysis__RapidTypeVisitor__add_monomorphic_send(var_v
, var_arraytype
, var_prop
); /* Direct call rapid_type_analysis#RapidTypeVisitor#add_monomorphic_send on <var_v:RapidTypeVisitor>*/
6349 var44
= "with_native";
6351 var46
= string__NativeString__to_s_with_length(var44
, var45
);
6356 var47
= rapid_type_analysis__RapidTypeVisitor__get_method(var_v
, var_arraytype
, var43
);
6360 rapid_type_analysis__RapidTypeVisitor__add_monomorphic_send(var_v
, var_arraytype
, var_prop2
); /* Direct call rapid_type_analysis#RapidTypeVisitor#add_monomorphic_send on <var_v:RapidTypeVisitor>*/
6364 /* method rapid_type_analysis#ASuperstringExpr#accept_rapid_type_visitor for (self: Object, RapidTypeVisitor) */
6365 void VIRTUAL_rapid_type_analysis__ASuperstringExpr__accept_rapid_type_visitor(val
* self
, val
* p0
) {
6366 rapid_type_analysis__ASuperstringExpr__accept_rapid_type_visitor(self
, p0
); /* Direct call rapid_type_analysis#ASuperstringExpr#accept_rapid_type_visitor on <self:Object(ASuperstringExpr)>*/
6369 /* method rapid_type_analysis#ACrangeExpr#accept_rapid_type_visitor for (self: ACrangeExpr, RapidTypeVisitor) */
6370 void rapid_type_analysis__ACrangeExpr__accept_rapid_type_visitor(val
* self
, val
* p0
) {
6371 val
* var_v
/* var v: RapidTypeVisitor */;
6372 val
* var
/* : nullable MType */;
6373 val
* var2
/* : nullable MType */;
6374 short int var3
/* : Bool */;
6377 const char* var_class_name
;
6378 val
* var_mtype
/* var mtype: MClassType */;
6379 val
* var4
/* : nullable CallSite */;
6380 val
* var6
/* : nullable CallSite */;
6383 { /* Inline typing#AExpr#mtype (self) on <self:ACrangeExpr> */
6384 var2
= self
->attrs
[COLOR_typing__AExpr___mtype
].val
; /* _mtype on <self:ACrangeExpr> */
6389 /* <var:nullable MType> isa MClassType */
6390 cltype
= type_model__MClassType
.color
;
6391 idtype
= type_model__MClassType
.id
;
6395 if(cltype
>= var
->type
->table_size
) {
6398 var3
= var
->type
->type_table
[cltype
] == idtype
;
6401 if (unlikely(!var3
)) {
6402 var_class_name
= var
== NULL ?
"null" : var
->type
->name
;
6403 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "MClassType", var_class_name
);
6404 PRINT_ERROR(" (%s:%d)\n", "rapid_type_analysis.nit", 579);
6409 rapid_type_analysis__RapidTypeVisitor__add_type(var_v
, var_mtype
); /* Direct call rapid_type_analysis#RapidTypeVisitor#add_type on <var_v:RapidTypeVisitor>*/
6412 { /* Inline typing#ARangeExpr#init_callsite (self) on <self:ACrangeExpr> */
6413 var6
= self
->attrs
[COLOR_typing__ARangeExpr___init_callsite
].val
; /* _init_callsite on <self:ACrangeExpr> */
6419 rapid_type_analysis__RapidTypeVisitor__add_callsite(var_v
, var4
); /* Direct call rapid_type_analysis#RapidTypeVisitor#add_callsite on <var_v:RapidTypeVisitor>*/
6423 /* method rapid_type_analysis#ACrangeExpr#accept_rapid_type_visitor for (self: Object, RapidTypeVisitor) */
6424 void VIRTUAL_rapid_type_analysis__ACrangeExpr__accept_rapid_type_visitor(val
* self
, val
* p0
) {
6425 rapid_type_analysis__ACrangeExpr__accept_rapid_type_visitor(self
, p0
); /* Direct call rapid_type_analysis#ACrangeExpr#accept_rapid_type_visitor on <self:Object(ACrangeExpr)>*/
6428 /* method rapid_type_analysis#AOrangeExpr#accept_rapid_type_visitor for (self: AOrangeExpr, RapidTypeVisitor) */
6429 void rapid_type_analysis__AOrangeExpr__accept_rapid_type_visitor(val
* self
, val
* p0
) {
6430 val
* var_v
/* var v: RapidTypeVisitor */;
6431 val
* var
/* : nullable MType */;
6432 val
* var2
/* : nullable MType */;
6433 short int var3
/* : Bool */;
6436 const char* var_class_name
;
6437 val
* var_mtype
/* var mtype: MClassType */;
6438 val
* var4
/* : nullable CallSite */;
6439 val
* var6
/* : nullable CallSite */;
6442 { /* Inline typing#AExpr#mtype (self) on <self:AOrangeExpr> */
6443 var2
= self
->attrs
[COLOR_typing__AExpr___mtype
].val
; /* _mtype on <self:AOrangeExpr> */
6448 /* <var:nullable MType> isa MClassType */
6449 cltype
= type_model__MClassType
.color
;
6450 idtype
= type_model__MClassType
.id
;
6454 if(cltype
>= var
->type
->table_size
) {
6457 var3
= var
->type
->type_table
[cltype
] == idtype
;
6460 if (unlikely(!var3
)) {
6461 var_class_name
= var
== NULL ?
"null" : var
->type
->name
;
6462 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "MClassType", var_class_name
);
6463 PRINT_ERROR(" (%s:%d)\n", "rapid_type_analysis.nit", 588);
6468 rapid_type_analysis__RapidTypeVisitor__add_type(var_v
, var_mtype
); /* Direct call rapid_type_analysis#RapidTypeVisitor#add_type on <var_v:RapidTypeVisitor>*/
6471 { /* Inline typing#ARangeExpr#init_callsite (self) on <self:AOrangeExpr> */
6472 var6
= self
->attrs
[COLOR_typing__ARangeExpr___init_callsite
].val
; /* _init_callsite on <self:AOrangeExpr> */
6478 rapid_type_analysis__RapidTypeVisitor__add_callsite(var_v
, var4
); /* Direct call rapid_type_analysis#RapidTypeVisitor#add_callsite on <var_v:RapidTypeVisitor>*/
6482 /* method rapid_type_analysis#AOrangeExpr#accept_rapid_type_visitor for (self: Object, RapidTypeVisitor) */
6483 void VIRTUAL_rapid_type_analysis__AOrangeExpr__accept_rapid_type_visitor(val
* self
, val
* p0
) {
6484 rapid_type_analysis__AOrangeExpr__accept_rapid_type_visitor(self
, p0
); /* Direct call rapid_type_analysis#AOrangeExpr#accept_rapid_type_visitor on <self:Object(AOrangeExpr)>*/
6487 /* method rapid_type_analysis#ATrueExpr#accept_rapid_type_visitor for (self: ATrueExpr, RapidTypeVisitor) */
6488 void rapid_type_analysis__ATrueExpr__accept_rapid_type_visitor(val
* self
, val
* p0
) {
6489 val
* var_v
/* var v: RapidTypeVisitor */;
6490 val
* var
/* : nullable MType */;
6491 val
* var2
/* : nullable MType */;
6492 short int var3
/* : Bool */;
6495 const char* var_class_name
;
6498 { /* Inline typing#AExpr#mtype (self) on <self:ATrueExpr> */
6499 var2
= self
->attrs
[COLOR_typing__AExpr___mtype
].val
; /* _mtype on <self:ATrueExpr> */
6504 /* <var:nullable MType> isa MClassType */
6505 cltype
= type_model__MClassType
.color
;
6506 idtype
= type_model__MClassType
.id
;
6510 if(cltype
>= var
->type
->table_size
) {
6513 var3
= var
->type
->type_table
[cltype
] == idtype
;
6516 if (unlikely(!var3
)) {
6517 var_class_name
= var
== NULL ?
"null" : var
->type
->name
;
6518 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "MClassType", var_class_name
);
6519 PRINT_ERROR(" (%s:%d)\n", "rapid_type_analysis.nit", 597);
6523 rapid_type_analysis__RapidTypeVisitor__add_type(var_v
, var
); /* Direct call rapid_type_analysis#RapidTypeVisitor#add_type on <var_v:RapidTypeVisitor>*/
6527 /* method rapid_type_analysis#ATrueExpr#accept_rapid_type_visitor for (self: Object, RapidTypeVisitor) */
6528 void VIRTUAL_rapid_type_analysis__ATrueExpr__accept_rapid_type_visitor(val
* self
, val
* p0
) {
6529 rapid_type_analysis__ATrueExpr__accept_rapid_type_visitor(self
, p0
); /* Direct call rapid_type_analysis#ATrueExpr#accept_rapid_type_visitor on <self:Object(ATrueExpr)>*/
6532 /* method rapid_type_analysis#AFalseExpr#accept_rapid_type_visitor for (self: AFalseExpr, RapidTypeVisitor) */
6533 void rapid_type_analysis__AFalseExpr__accept_rapid_type_visitor(val
* self
, val
* p0
) {
6534 val
* var_v
/* var v: RapidTypeVisitor */;
6535 val
* var
/* : nullable MType */;
6536 val
* var2
/* : nullable MType */;
6537 short int var3
/* : Bool */;
6540 const char* var_class_name
;
6543 { /* Inline typing#AExpr#mtype (self) on <self:AFalseExpr> */
6544 var2
= self
->attrs
[COLOR_typing__AExpr___mtype
].val
; /* _mtype on <self:AFalseExpr> */
6549 /* <var:nullable MType> isa MClassType */
6550 cltype
= type_model__MClassType
.color
;
6551 idtype
= type_model__MClassType
.id
;
6555 if(cltype
>= var
->type
->table_size
) {
6558 var3
= var
->type
->type_table
[cltype
] == idtype
;
6561 if (unlikely(!var3
)) {
6562 var_class_name
= var
== NULL ?
"null" : var
->type
->name
;
6563 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "MClassType", var_class_name
);
6564 PRINT_ERROR(" (%s:%d)\n", "rapid_type_analysis.nit", 604);
6568 rapid_type_analysis__RapidTypeVisitor__add_type(var_v
, var
); /* Direct call rapid_type_analysis#RapidTypeVisitor#add_type on <var_v:RapidTypeVisitor>*/
6572 /* method rapid_type_analysis#AFalseExpr#accept_rapid_type_visitor for (self: Object, RapidTypeVisitor) */
6573 void VIRTUAL_rapid_type_analysis__AFalseExpr__accept_rapid_type_visitor(val
* self
, val
* p0
) {
6574 rapid_type_analysis__AFalseExpr__accept_rapid_type_visitor(self
, p0
); /* Direct call rapid_type_analysis#AFalseExpr#accept_rapid_type_visitor on <self:Object(AFalseExpr)>*/
6577 /* method rapid_type_analysis#AIsaExpr#accept_rapid_type_visitor for (self: AIsaExpr, RapidTypeVisitor) */
6578 void rapid_type_analysis__AIsaExpr__accept_rapid_type_visitor(val
* self
, val
* p0
) {
6579 val
* var_v
/* var v: RapidTypeVisitor */;
6580 val
* var
/* : nullable MType */;
6581 val
* var2
/* : nullable MType */;
6584 { /* Inline typing#AIsaExpr#cast_type (self) on <self:AIsaExpr> */
6585 var2
= self
->attrs
[COLOR_typing__AIsaExpr___cast_type
].val
; /* _cast_type on <self:AIsaExpr> */
6590 if (unlikely(var
== NULL
)) {
6591 PRINT_ERROR("Runtime error: %s", "Cast failed");
6592 PRINT_ERROR(" (%s:%d)\n", "rapid_type_analysis.nit", 611);
6596 rapid_type_analysis__RapidTypeVisitor__add_cast_type(var_v
, var
); /* Direct call rapid_type_analysis#RapidTypeVisitor#add_cast_type on <var_v:RapidTypeVisitor>*/
6600 /* method rapid_type_analysis#AIsaExpr#accept_rapid_type_visitor for (self: Object, RapidTypeVisitor) */
6601 void VIRTUAL_rapid_type_analysis__AIsaExpr__accept_rapid_type_visitor(val
* self
, val
* p0
) {
6602 rapid_type_analysis__AIsaExpr__accept_rapid_type_visitor(self
, p0
); /* Direct call rapid_type_analysis#AIsaExpr#accept_rapid_type_visitor on <self:Object(AIsaExpr)>*/
6605 /* method rapid_type_analysis#AAsCastExpr#accept_rapid_type_visitor for (self: AAsCastExpr, RapidTypeVisitor) */
6606 void rapid_type_analysis__AAsCastExpr__accept_rapid_type_visitor(val
* self
, val
* p0
) {
6607 val
* var_v
/* var v: RapidTypeVisitor */;
6608 val
* var
/* : nullable MType */;
6609 val
* var2
/* : nullable MType */;
6612 { /* Inline typing#AExpr#mtype (self) on <self:AAsCastExpr> */
6613 var2
= self
->attrs
[COLOR_typing__AExpr___mtype
].val
; /* _mtype on <self:AAsCastExpr> */
6618 if (unlikely(var
== NULL
)) {
6619 PRINT_ERROR("Runtime error: %s", "Cast failed");
6620 PRINT_ERROR(" (%s:%d)\n", "rapid_type_analysis.nit", 618);
6624 rapid_type_analysis__RapidTypeVisitor__add_cast_type(var_v
, var
); /* Direct call rapid_type_analysis#RapidTypeVisitor#add_cast_type on <var_v:RapidTypeVisitor>*/
6628 /* method rapid_type_analysis#AAsCastExpr#accept_rapid_type_visitor for (self: Object, RapidTypeVisitor) */
6629 void VIRTUAL_rapid_type_analysis__AAsCastExpr__accept_rapid_type_visitor(val
* self
, val
* p0
) {
6630 rapid_type_analysis__AAsCastExpr__accept_rapid_type_visitor(self
, p0
); /* Direct call rapid_type_analysis#AAsCastExpr#accept_rapid_type_visitor on <self:Object(AAsCastExpr)>*/
6633 /* method rapid_type_analysis#ASendExpr#accept_rapid_type_visitor for (self: ASendExpr, RapidTypeVisitor) */
6634 void rapid_type_analysis__ASendExpr__accept_rapid_type_visitor(val
* self
, val
* p0
) {
6635 val
* var_v
/* var v: RapidTypeVisitor */;
6636 val
* var
/* : nullable CallSite */;
6637 val
* var2
/* : nullable CallSite */;
6640 { /* Inline typing#ASendExpr#callsite (self) on <self:ASendExpr> */
6641 var2
= self
->attrs
[COLOR_typing__ASendExpr___callsite
].val
; /* _callsite on <self:ASendExpr> */
6647 rapid_type_analysis__RapidTypeVisitor__add_callsite(var_v
, var
); /* Direct call rapid_type_analysis#RapidTypeVisitor#add_callsite on <var_v:RapidTypeVisitor>*/
6651 /* method rapid_type_analysis#ASendExpr#accept_rapid_type_visitor for (self: Object, RapidTypeVisitor) */
6652 void VIRTUAL_rapid_type_analysis__ASendExpr__accept_rapid_type_visitor(val
* self
, val
* p0
) {
6653 rapid_type_analysis__ASendExpr__accept_rapid_type_visitor(self
, p0
); /* Direct call rapid_type_analysis#ASendExpr#accept_rapid_type_visitor on <self:Object(ASendExpr)>*/
6656 /* method rapid_type_analysis#ASendReassignFormExpr#accept_rapid_type_visitor for (self: ASendReassignFormExpr, RapidTypeVisitor) */
6657 void rapid_type_analysis__ASendReassignFormExpr__accept_rapid_type_visitor(val
* self
, val
* p0
) {
6658 val
* var_v
/* var v: RapidTypeVisitor */;
6659 val
* var
/* : nullable CallSite */;
6660 val
* var2
/* : nullable CallSite */;
6661 val
* var3
/* : nullable CallSite */;
6662 val
* var5
/* : nullable CallSite */;
6663 val
* var6
/* : nullable CallSite */;
6664 val
* var8
/* : nullable CallSite */;
6667 { /* Inline typing#ASendExpr#callsite (self) on <self:ASendReassignFormExpr> */
6668 var2
= self
->attrs
[COLOR_typing__ASendExpr___callsite
].val
; /* _callsite on <self:ASendReassignFormExpr> */
6674 rapid_type_analysis__RapidTypeVisitor__add_callsite(var_v
, var
); /* Direct call rapid_type_analysis#RapidTypeVisitor#add_callsite on <var_v:RapidTypeVisitor>*/
6677 { /* Inline typing#AReassignFormExpr#reassign_callsite (self) on <self:ASendReassignFormExpr> */
6678 var5
= self
->attrs
[COLOR_typing__AReassignFormExpr___reassign_callsite
].val
; /* _reassign_callsite on <self:ASendReassignFormExpr> */
6684 rapid_type_analysis__RapidTypeVisitor__add_callsite(var_v
, var3
); /* Direct call rapid_type_analysis#RapidTypeVisitor#add_callsite on <var_v:RapidTypeVisitor>*/
6687 { /* Inline typing#ASendReassignFormExpr#write_callsite (self) on <self:ASendReassignFormExpr> */
6688 var8
= self
->attrs
[COLOR_typing__ASendReassignFormExpr___write_callsite
].val
; /* _write_callsite on <self:ASendReassignFormExpr> */
6694 rapid_type_analysis__RapidTypeVisitor__add_callsite(var_v
, var6
); /* Direct call rapid_type_analysis#RapidTypeVisitor#add_callsite on <var_v:RapidTypeVisitor>*/
6698 /* method rapid_type_analysis#ASendReassignFormExpr#accept_rapid_type_visitor for (self: Object, RapidTypeVisitor) */
6699 void VIRTUAL_rapid_type_analysis__ASendReassignFormExpr__accept_rapid_type_visitor(val
* self
, val
* p0
) {
6700 rapid_type_analysis__ASendReassignFormExpr__accept_rapid_type_visitor(self
, p0
); /* Direct call rapid_type_analysis#ASendReassignFormExpr#accept_rapid_type_visitor on <self:Object(ASendReassignFormExpr)>*/
6703 /* method rapid_type_analysis#AVarReassignExpr#accept_rapid_type_visitor for (self: AVarReassignExpr, RapidTypeVisitor) */
6704 void rapid_type_analysis__AVarReassignExpr__accept_rapid_type_visitor(val
* self
, val
* p0
) {
6705 val
* var_v
/* var v: RapidTypeVisitor */;
6706 val
* var
/* : nullable CallSite */;
6707 val
* var2
/* : nullable CallSite */;
6710 { /* Inline typing#AReassignFormExpr#reassign_callsite (self) on <self:AVarReassignExpr> */
6711 var2
= self
->attrs
[COLOR_typing__AReassignFormExpr___reassign_callsite
].val
; /* _reassign_callsite on <self:AVarReassignExpr> */
6717 rapid_type_analysis__RapidTypeVisitor__add_callsite(var_v
, var
); /* Direct call rapid_type_analysis#RapidTypeVisitor#add_callsite on <var_v:RapidTypeVisitor>*/
6721 /* method rapid_type_analysis#AVarReassignExpr#accept_rapid_type_visitor for (self: Object, RapidTypeVisitor) */
6722 void VIRTUAL_rapid_type_analysis__AVarReassignExpr__accept_rapid_type_visitor(val
* self
, val
* p0
) {
6723 rapid_type_analysis__AVarReassignExpr__accept_rapid_type_visitor(self
, p0
); /* Direct call rapid_type_analysis#AVarReassignExpr#accept_rapid_type_visitor on <self:Object(AVarReassignExpr)>*/
6726 /* method rapid_type_analysis#AAttrReassignExpr#accept_rapid_type_visitor for (self: AAttrReassignExpr, RapidTypeVisitor) */
6727 void rapid_type_analysis__AAttrReassignExpr__accept_rapid_type_visitor(val
* self
, val
* p0
) {
6728 val
* var_v
/* var v: RapidTypeVisitor */;
6729 val
* var
/* : nullable CallSite */;
6730 val
* var2
/* : nullable CallSite */;
6733 { /* Inline typing#AReassignFormExpr#reassign_callsite (self) on <self:AAttrReassignExpr> */
6734 var2
= self
->attrs
[COLOR_typing__AReassignFormExpr___reassign_callsite
].val
; /* _reassign_callsite on <self:AAttrReassignExpr> */
6740 rapid_type_analysis__RapidTypeVisitor__add_callsite(var_v
, var
); /* Direct call rapid_type_analysis#RapidTypeVisitor#add_callsite on <var_v:RapidTypeVisitor>*/
6744 /* method rapid_type_analysis#AAttrReassignExpr#accept_rapid_type_visitor for (self: Object, RapidTypeVisitor) */
6745 void VIRTUAL_rapid_type_analysis__AAttrReassignExpr__accept_rapid_type_visitor(val
* self
, val
* p0
) {
6746 rapid_type_analysis__AAttrReassignExpr__accept_rapid_type_visitor(self
, p0
); /* Direct call rapid_type_analysis#AAttrReassignExpr#accept_rapid_type_visitor on <self:Object(AAttrReassignExpr)>*/
6749 /* method rapid_type_analysis#ASuperExpr#accept_rapid_type_visitor for (self: ASuperExpr, RapidTypeVisitor) */
6750 void rapid_type_analysis__ASuperExpr__accept_rapid_type_visitor(val
* self
, val
* p0
) {
6751 val
* var_v
/* var v: RapidTypeVisitor */;
6752 val
* var
/* : nullable CallSite */;
6753 val
* var2
/* : nullable CallSite */;
6754 val
* var_callsite
/* var callsite: nullable CallSite */;
6755 val
* var3
/* : null */;
6756 short int var4
/* : Bool */;
6757 short int var5
/* : Bool */;
6758 val
* var_other
/* var other: nullable Object */;
6759 short int var7
/* : Bool */;
6760 short int var8
/* : Bool */;
6761 short int var9
/* : Bool */;
6762 val
* var10
/* : RapidTypeAnalysis */;
6763 val
* var12
/* : RapidTypeAnalysis */;
6764 val
* var13
/* : MClassType */;
6765 val
* var15
/* : MClassType */;
6766 val
* var16
/* : nullable MMethodDef */;
6767 val
* var18
/* : nullable MMethodDef */;
6770 { /* Inline typing#ASuperExpr#callsite (self) on <self:ASuperExpr> */
6771 var2
= self
->attrs
[COLOR_typing__ASuperExpr___callsite
].val
; /* _callsite on <self:ASuperExpr> */
6778 if (var_callsite
== NULL
) {
6779 var4
= 0; /* is null */
6781 var4
= 1; /* arg is null and recv is not */
6784 { /* Inline kernel#Object#!= (var_callsite,var3) on <var_callsite:nullable CallSite> */
6787 var8
= ((short int (*)(val
*, val
*))(var_callsite
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var_callsite
, var_other
) /* == on <var_callsite:nullable CallSite(CallSite)>*/;
6799 rapid_type_analysis__RapidTypeVisitor__add_callsite(var_v
, var_callsite
); /* Direct call rapid_type_analysis#RapidTypeVisitor#add_callsite on <var_v:RapidTypeVisitor>*/
6805 { /* Inline rapid_type_analysis#RapidTypeVisitor#analysis (var_v) on <var_v:RapidTypeVisitor> */
6806 var12
= var_v
->attrs
[COLOR_rapid_type_analysis__RapidTypeVisitor___analysis
].val
; /* _analysis on <var_v:RapidTypeVisitor> */
6807 if (unlikely(var12
== NULL
)) {
6808 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _analysis");
6809 PRINT_ERROR(" (%s:%d)\n", "rapid_type_analysis.nit", 440);
6813 RET_LABEL11
:(void)0;
6817 { /* Inline rapid_type_analysis#RapidTypeVisitor#receiver (var_v) on <var_v:RapidTypeVisitor> */
6818 var15
= var_v
->attrs
[COLOR_rapid_type_analysis__RapidTypeVisitor___receiver
].val
; /* _receiver on <var_v:RapidTypeVisitor> */
6819 if (unlikely(var15
== NULL
)) {
6820 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _receiver");
6821 PRINT_ERROR(" (%s:%d)\n", "rapid_type_analysis.nit", 441);
6825 RET_LABEL14
:(void)0;
6829 { /* Inline typing#ASuperExpr#mpropdef (self) on <self:ASuperExpr> */
6830 var18
= self
->attrs
[COLOR_typing__ASuperExpr___mpropdef
].val
; /* _mpropdef on <self:ASuperExpr> */
6832 RET_LABEL17
:(void)0;
6835 if (unlikely(var16
== NULL
)) {
6836 PRINT_ERROR("Runtime error: %s", "Cast failed");
6837 PRINT_ERROR(" (%s:%d)\n", "rapid_type_analysis.nit", 662);
6841 rapid_type_analysis__RapidTypeAnalysis__add_super_send(var10
, var13
, var16
); /* Direct call rapid_type_analysis#RapidTypeAnalysis#add_super_send on <var10:RapidTypeAnalysis>*/
6845 /* method rapid_type_analysis#ASuperExpr#accept_rapid_type_visitor for (self: Object, RapidTypeVisitor) */
6846 void VIRTUAL_rapid_type_analysis__ASuperExpr__accept_rapid_type_visitor(val
* self
, val
* p0
) {
6847 rapid_type_analysis__ASuperExpr__accept_rapid_type_visitor(self
, p0
); /* Direct call rapid_type_analysis#ASuperExpr#accept_rapid_type_visitor on <self:Object(ASuperExpr)>*/
6850 /* method rapid_type_analysis#AForExpr#accept_rapid_type_visitor for (self: AForExpr, RapidTypeVisitor) */
6851 void rapid_type_analysis__AForExpr__accept_rapid_type_visitor(val
* self
, val
* p0
) {
6852 val
* var_v
/* var v: RapidTypeVisitor */;
6853 val
* var
/* : nullable CallSite */;
6854 val
* var2
/* : nullable CallSite */;
6855 val
* var3
/* : nullable CallSite */;
6856 val
* var5
/* : nullable CallSite */;
6857 val
* var6
/* : nullable Array[Variable] */;
6858 val
* var8
/* : nullable Array[Variable] */;
6859 long var9
/* : Int */;
6860 long var11
/* : Int */;
6861 long var12
/* : Int */;
6862 short int var13
/* : Bool */;
6863 short int var14
/* : Bool */;
6864 short int var16
/* : Bool */;
6865 val
* var17
/* : nullable CallSite */;
6866 val
* var19
/* : nullable CallSite */;
6867 val
* var20
/* : nullable Array[Variable] */;
6868 val
* var22
/* : nullable Array[Variable] */;
6869 long var23
/* : Int */;
6870 long var25
/* : Int */;
6871 long var26
/* : Int */;
6872 short int var27
/* : Bool */;
6873 short int var28
/* : Bool */;
6874 short int var30
/* : Bool */;
6875 val
* var31
/* : nullable CallSite */;
6876 val
* var33
/* : nullable CallSite */;
6877 val
* var34
/* : nullable CallSite */;
6878 val
* var36
/* : nullable CallSite */;
6879 val
* var37
/* : nullable CallSite */;
6880 val
* var39
/* : nullable CallSite */;
6881 val
* var40
/* : nullable CallSite */;
6882 val
* var42
/* : nullable CallSite */;
6883 val
* var_mf
/* var mf: nullable CallSite */;
6884 val
* var43
/* : null */;
6885 short int var44
/* : Bool */;
6886 short int var45
/* : Bool */;
6887 val
* var_other
/* var other: nullable Object */;
6888 short int var47
/* : Bool */;
6889 short int var48
/* : Bool */;
6890 short int var49
/* : Bool */;
6893 { /* Inline typing#AForExpr#method_iterator (self) on <self:AForExpr> */
6894 var2
= self
->attrs
[COLOR_typing__AForExpr___method_iterator
].val
; /* _method_iterator on <self:AForExpr> */
6900 rapid_type_analysis__RapidTypeVisitor__add_callsite(var_v
, var
); /* Direct call rapid_type_analysis#RapidTypeVisitor#add_callsite on <var_v:RapidTypeVisitor>*/
6903 { /* Inline typing#AForExpr#method_is_ok (self) on <self:AForExpr> */
6904 var5
= self
->attrs
[COLOR_typing__AForExpr___method_is_ok
].val
; /* _method_is_ok on <self:AForExpr> */
6910 rapid_type_analysis__RapidTypeVisitor__add_callsite(var_v
, var3
); /* Direct call rapid_type_analysis#RapidTypeVisitor#add_callsite on <var_v:RapidTypeVisitor>*/
6913 { /* Inline scope#AForExpr#variables (self) on <self:AForExpr> */
6914 var8
= self
->attrs
[COLOR_scope__AForExpr___variables
].val
; /* _variables on <self:AForExpr> */
6920 PRINT_ERROR("Runtime error: %s", "Receiver is null");
6921 PRINT_ERROR(" (%s:%d)\n", "rapid_type_analysis.nit", 671);
6924 { /* Inline array#AbstractArrayRead#length (var6) on <var6:nullable Array[Variable]> */
6925 if (unlikely(var6
== NULL
)) {
6926 PRINT_ERROR("Runtime error: %s", "Receiver is null");
6927 PRINT_ERROR(" (%s:%d)\n", "../lib/standard/collection/array.nit", 24);
6930 var11
= var6
->attrs
[COLOR_array__AbstractArrayRead___length
].l
; /* _length on <var6:nullable Array[Variable]> */
6932 RET_LABEL10
:(void)0;
6937 { /* Inline kernel#Int#== (var9,var12) on <var9:Int> */
6938 var16
= var9
== var12
;
6941 RET_LABEL15
:(void)0;
6947 { /* Inline typing#AForExpr#method_item (self) on <self:AForExpr> */
6948 var19
= self
->attrs
[COLOR_typing__AForExpr___method_item
].val
; /* _method_item on <self:AForExpr> */
6950 RET_LABEL18
:(void)0;
6954 rapid_type_analysis__RapidTypeVisitor__add_callsite(var_v
, var17
); /* Direct call rapid_type_analysis#RapidTypeVisitor#add_callsite on <var_v:RapidTypeVisitor>*/
6958 { /* Inline scope#AForExpr#variables (self) on <self:AForExpr> */
6959 var22
= self
->attrs
[COLOR_scope__AForExpr___variables
].val
; /* _variables on <self:AForExpr> */
6961 RET_LABEL21
:(void)0;
6964 if (var20
== NULL
) {
6965 PRINT_ERROR("Runtime error: %s", "Receiver is null");
6966 PRINT_ERROR(" (%s:%d)\n", "rapid_type_analysis.nit", 673);
6969 { /* Inline array#AbstractArrayRead#length (var20) on <var20:nullable Array[Variable]> */
6970 if (unlikely(var20
== NULL
)) {
6971 PRINT_ERROR("Runtime error: %s", "Receiver is null");
6972 PRINT_ERROR(" (%s:%d)\n", "../lib/standard/collection/array.nit", 24);
6975 var25
= var20
->attrs
[COLOR_array__AbstractArrayRead___length
].l
; /* _length on <var20:nullable Array[Variable]> */
6977 RET_LABEL24
:(void)0;
6982 { /* Inline kernel#Int#== (var23,var26) on <var23:Int> */
6983 var30
= var23
== var26
;
6986 RET_LABEL29
:(void)0;
6992 { /* Inline typing#AForExpr#method_key (self) on <self:AForExpr> */
6993 var33
= self
->attrs
[COLOR_typing__AForExpr___method_key
].val
; /* _method_key on <self:AForExpr> */
6995 RET_LABEL32
:(void)0;
6999 rapid_type_analysis__RapidTypeVisitor__add_callsite(var_v
, var31
); /* Direct call rapid_type_analysis#RapidTypeVisitor#add_callsite on <var_v:RapidTypeVisitor>*/
7002 { /* Inline typing#AForExpr#method_item (self) on <self:AForExpr> */
7003 var36
= self
->attrs
[COLOR_typing__AForExpr___method_item
].val
; /* _method_item on <self:AForExpr> */
7005 RET_LABEL35
:(void)0;
7009 rapid_type_analysis__RapidTypeVisitor__add_callsite(var_v
, var34
); /* Direct call rapid_type_analysis#RapidTypeVisitor#add_callsite on <var_v:RapidTypeVisitor>*/
7012 PRINT_ERROR("Runtime error: %s", "Aborted");
7013 PRINT_ERROR(" (%s:%d)\n", "rapid_type_analysis.nit", 677);
7018 { /* Inline typing#AForExpr#method_next (self) on <self:AForExpr> */
7019 var39
= self
->attrs
[COLOR_typing__AForExpr___method_next
].val
; /* _method_next on <self:AForExpr> */
7021 RET_LABEL38
:(void)0;
7025 rapid_type_analysis__RapidTypeVisitor__add_callsite(var_v
, var37
); /* Direct call rapid_type_analysis#RapidTypeVisitor#add_callsite on <var_v:RapidTypeVisitor>*/
7028 { /* Inline typing#AForExpr#method_finish (self) on <self:AForExpr> */
7029 var42
= self
->attrs
[COLOR_typing__AForExpr___method_finish
].val
; /* _method_finish on <self:AForExpr> */
7031 RET_LABEL41
:(void)0;
7036 if (var_mf
== NULL
) {
7037 var44
= 0; /* is null */
7039 var44
= 1; /* arg is null and recv is not */
7042 { /* Inline kernel#Object#!= (var_mf,var43) on <var_mf:nullable CallSite> */
7045 var48
= ((short int (*)(val
*, val
*))(var_mf
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var_mf
, var_other
) /* == on <var_mf:nullable CallSite(CallSite)>*/;
7051 RET_LABEL46
:(void)0;
7057 rapid_type_analysis__RapidTypeVisitor__add_callsite(var_v
, var_mf
); /* Direct call rapid_type_analysis#RapidTypeVisitor#add_callsite on <var_v:RapidTypeVisitor>*/
7063 /* method rapid_type_analysis#AForExpr#accept_rapid_type_visitor for (self: Object, RapidTypeVisitor) */
7064 void VIRTUAL_rapid_type_analysis__AForExpr__accept_rapid_type_visitor(val
* self
, val
* p0
) {
7065 rapid_type_analysis__AForExpr__accept_rapid_type_visitor(self
, p0
); /* Direct call rapid_type_analysis#AForExpr#accept_rapid_type_visitor on <self:Object(AForExpr)>*/
7068 /* method rapid_type_analysis#ANewExpr#accept_rapid_type_visitor for (self: ANewExpr, RapidTypeVisitor) */
7069 void rapid_type_analysis__ANewExpr__accept_rapid_type_visitor(val
* self
, val
* p0
) {
7070 val
* var_v
/* var v: RapidTypeVisitor */;
7071 val
* var
/* : nullable MClassType */;
7072 val
* var2
/* : nullable MClassType */;
7073 val
* var_mtype
/* var mtype: MClassType */;
7074 val
* var3
/* : nullable CallSite */;
7075 val
* var5
/* : nullable CallSite */;
7078 { /* Inline typing#ANewExpr#recvtype (self) on <self:ANewExpr> */
7079 var2
= self
->attrs
[COLOR_typing__ANewExpr___recvtype
].val
; /* _recvtype on <self:ANewExpr> */
7084 if (unlikely(var
== NULL
)) {
7085 PRINT_ERROR("Runtime error: %s", "Cast failed");
7086 PRINT_ERROR(" (%s:%d)\n", "rapid_type_analysis.nit", 688);
7091 rapid_type_analysis__RapidTypeVisitor__add_type(var_v
, var_mtype
); /* Direct call rapid_type_analysis#RapidTypeVisitor#add_type on <var_v:RapidTypeVisitor>*/
7094 { /* Inline typing#ANewExpr#callsite (self) on <self:ANewExpr> */
7095 var5
= self
->attrs
[COLOR_typing__ANewExpr___callsite
].val
; /* _callsite on <self:ANewExpr> */
7101 rapid_type_analysis__RapidTypeVisitor__add_callsite(var_v
, var3
); /* Direct call rapid_type_analysis#RapidTypeVisitor#add_callsite on <var_v:RapidTypeVisitor>*/
7105 /* method rapid_type_analysis#ANewExpr#accept_rapid_type_visitor for (self: Object, RapidTypeVisitor) */
7106 void VIRTUAL_rapid_type_analysis__ANewExpr__accept_rapid_type_visitor(val
* self
, val
* p0
) {
7107 rapid_type_analysis__ANewExpr__accept_rapid_type_visitor(self
, p0
); /* Direct call rapid_type_analysis#ANewExpr#accept_rapid_type_visitor on <self:Object(ANewExpr)>*/