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 { /* Inline rapid_type_analysis#RapidTypeAnalysis#init (var1,self,var_mainmodule) on <var1:RapidTypeAnalysis> */
12 var1
->attrs
[COLOR_rapid_type_analysis__RapidTypeAnalysis___modelbuilder
].val
= self
; /* _modelbuilder on <var1:RapidTypeAnalysis> */
13 var1
->attrs
[COLOR_rapid_type_analysis__RapidTypeAnalysis___mainmodule
].val
= var_mainmodule
; /* _mainmodule on <var1:RapidTypeAnalysis> */
19 rapid_type_analysis__RapidTypeAnalysis__run_analysis(var_analysis
); /* Direct call rapid_type_analysis#RapidTypeAnalysis#run_analysis on <var_analysis:RapidTypeAnalysis>*/
26 /* method rapid_type_analysis#ModelBuilder#do_rapid_type_analysis for (self: Object, MModule): RapidTypeAnalysis */
27 val
* VIRTUAL_rapid_type_analysis__ModelBuilder__do_rapid_type_analysis(val
* self
, val
* p0
) {
28 val
* var
/* : RapidTypeAnalysis */;
29 val
* var1
/* : RapidTypeAnalysis */;
30 var1
= rapid_type_analysis__ModelBuilder__do_rapid_type_analysis(self
, p0
);
35 /* method rapid_type_analysis#RapidTypeAnalysis#modelbuilder for (self: RapidTypeAnalysis): ModelBuilder */
36 val
* rapid_type_analysis__RapidTypeAnalysis__modelbuilder(val
* self
) {
37 val
* var
/* : ModelBuilder */;
38 val
* var1
/* : ModelBuilder */;
39 var1
= self
->attrs
[COLOR_rapid_type_analysis__RapidTypeAnalysis___modelbuilder
].val
; /* _modelbuilder on <self:RapidTypeAnalysis> */
40 if (unlikely(var1
== NULL
)) {
41 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
42 PRINT_ERROR(" (%s:%d)\n", "src/rapid_type_analysis.nit", 48);
49 /* method rapid_type_analysis#RapidTypeAnalysis#modelbuilder for (self: Object): ModelBuilder */
50 val
* VIRTUAL_rapid_type_analysis__RapidTypeAnalysis__modelbuilder(val
* self
) {
51 val
* var
/* : ModelBuilder */;
52 val
* var1
/* : ModelBuilder */;
53 val
* var3
/* : ModelBuilder */;
54 { /* Inline rapid_type_analysis#RapidTypeAnalysis#modelbuilder (self) on <self:Object(RapidTypeAnalysis)> */
55 var3
= self
->attrs
[COLOR_rapid_type_analysis__RapidTypeAnalysis___modelbuilder
].val
; /* _modelbuilder on <self:Object(RapidTypeAnalysis)> */
56 if (unlikely(var3
== NULL
)) {
57 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
58 PRINT_ERROR(" (%s:%d)\n", "src/rapid_type_analysis.nit", 48);
68 /* method rapid_type_analysis#RapidTypeAnalysis#mainmodule for (self: RapidTypeAnalysis): MModule */
69 val
* rapid_type_analysis__RapidTypeAnalysis__mainmodule(val
* self
) {
70 val
* var
/* : MModule */;
71 val
* var1
/* : MModule */;
72 var1
= self
->attrs
[COLOR_rapid_type_analysis__RapidTypeAnalysis___mainmodule
].val
; /* _mainmodule on <self:RapidTypeAnalysis> */
73 if (unlikely(var1
== NULL
)) {
74 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule");
75 PRINT_ERROR(" (%s:%d)\n", "src/rapid_type_analysis.nit", 51);
82 /* method rapid_type_analysis#RapidTypeAnalysis#mainmodule for (self: Object): MModule */
83 val
* VIRTUAL_rapid_type_analysis__RapidTypeAnalysis__mainmodule(val
* self
) {
84 val
* var
/* : MModule */;
85 val
* var1
/* : MModule */;
86 val
* var3
/* : MModule */;
87 { /* Inline rapid_type_analysis#RapidTypeAnalysis#mainmodule (self) on <self:Object(RapidTypeAnalysis)> */
88 var3
= self
->attrs
[COLOR_rapid_type_analysis__RapidTypeAnalysis___mainmodule
].val
; /* _mainmodule on <self:Object(RapidTypeAnalysis)> */
89 if (unlikely(var3
== NULL
)) {
90 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule");
91 PRINT_ERROR(" (%s:%d)\n", "src/rapid_type_analysis.nit", 51);
101 /* method rapid_type_analysis#RapidTypeAnalysis#live_types for (self: RapidTypeAnalysis): HashSet[MClassType] */
102 val
* rapid_type_analysis__RapidTypeAnalysis__live_types(val
* self
) {
103 val
* var
/* : HashSet[MClassType] */;
104 val
* var1
/* : HashSet[MClassType] */;
105 var1
= self
->attrs
[COLOR_rapid_type_analysis__RapidTypeAnalysis___live_types
].val
; /* _live_types on <self:RapidTypeAnalysis> */
106 if (unlikely(var1
== NULL
)) {
107 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_types");
108 PRINT_ERROR(" (%s:%d)\n", "src/rapid_type_analysis.nit", 55);
115 /* method rapid_type_analysis#RapidTypeAnalysis#live_types for (self: Object): HashSet[MClassType] */
116 val
* VIRTUAL_rapid_type_analysis__RapidTypeAnalysis__live_types(val
* self
) {
117 val
* var
/* : HashSet[MClassType] */;
118 val
* var1
/* : HashSet[MClassType] */;
119 val
* var3
/* : HashSet[MClassType] */;
120 { /* Inline rapid_type_analysis#RapidTypeAnalysis#live_types (self) on <self:Object(RapidTypeAnalysis)> */
121 var3
= self
->attrs
[COLOR_rapid_type_analysis__RapidTypeAnalysis___live_types
].val
; /* _live_types on <self:Object(RapidTypeAnalysis)> */
122 if (unlikely(var3
== NULL
)) {
123 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_types");
124 PRINT_ERROR(" (%s:%d)\n", "src/rapid_type_analysis.nit", 55);
134 /* method rapid_type_analysis#RapidTypeAnalysis#live_open_types for (self: RapidTypeAnalysis): HashSet[MClassType] */
135 val
* rapid_type_analysis__RapidTypeAnalysis__live_open_types(val
* self
) {
136 val
* var
/* : HashSet[MClassType] */;
137 val
* var1
/* : HashSet[MClassType] */;
138 var1
= self
->attrs
[COLOR_rapid_type_analysis__RapidTypeAnalysis___live_open_types
].val
; /* _live_open_types on <self:RapidTypeAnalysis> */
139 if (unlikely(var1
== NULL
)) {
140 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_open_types");
141 PRINT_ERROR(" (%s:%d)\n", "src/rapid_type_analysis.nit", 60);
148 /* method rapid_type_analysis#RapidTypeAnalysis#live_open_types for (self: Object): HashSet[MClassType] */
149 val
* VIRTUAL_rapid_type_analysis__RapidTypeAnalysis__live_open_types(val
* self
) {
150 val
* var
/* : HashSet[MClassType] */;
151 val
* var1
/* : HashSet[MClassType] */;
152 val
* var3
/* : HashSet[MClassType] */;
153 { /* Inline rapid_type_analysis#RapidTypeAnalysis#live_open_types (self) on <self:Object(RapidTypeAnalysis)> */
154 var3
= self
->attrs
[COLOR_rapid_type_analysis__RapidTypeAnalysis___live_open_types
].val
; /* _live_open_types on <self:Object(RapidTypeAnalysis)> */
155 if (unlikely(var3
== NULL
)) {
156 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_open_types");
157 PRINT_ERROR(" (%s:%d)\n", "src/rapid_type_analysis.nit", 60);
167 /* method rapid_type_analysis#RapidTypeAnalysis#live_classes for (self: RapidTypeAnalysis): HashSet[MClass] */
168 val
* rapid_type_analysis__RapidTypeAnalysis__live_classes(val
* self
) {
169 val
* var
/* : HashSet[MClass] */;
170 val
* var1
/* : HashSet[MClass] */;
171 var1
= self
->attrs
[COLOR_rapid_type_analysis__RapidTypeAnalysis___live_classes
].val
; /* _live_classes on <self:RapidTypeAnalysis> */
172 if (unlikely(var1
== NULL
)) {
173 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_classes");
174 PRINT_ERROR(" (%s:%d)\n", "src/rapid_type_analysis.nit", 64);
181 /* method rapid_type_analysis#RapidTypeAnalysis#live_classes for (self: Object): HashSet[MClass] */
182 val
* VIRTUAL_rapid_type_analysis__RapidTypeAnalysis__live_classes(val
* self
) {
183 val
* var
/* : HashSet[MClass] */;
184 val
* var1
/* : HashSet[MClass] */;
185 val
* var3
/* : HashSet[MClass] */;
186 { /* Inline rapid_type_analysis#RapidTypeAnalysis#live_classes (self) on <self:Object(RapidTypeAnalysis)> */
187 var3
= self
->attrs
[COLOR_rapid_type_analysis__RapidTypeAnalysis___live_classes
].val
; /* _live_classes on <self:Object(RapidTypeAnalysis)> */
188 if (unlikely(var3
== NULL
)) {
189 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_classes");
190 PRINT_ERROR(" (%s:%d)\n", "src/rapid_type_analysis.nit", 64);
200 /* method rapid_type_analysis#RapidTypeAnalysis#live_cast_types for (self: RapidTypeAnalysis): HashSet[MType] */
201 val
* rapid_type_analysis__RapidTypeAnalysis__live_cast_types(val
* self
) {
202 val
* var
/* : HashSet[MType] */;
203 val
* var1
/* : HashSet[MType] */;
204 var1
= self
->attrs
[COLOR_rapid_type_analysis__RapidTypeAnalysis___live_cast_types
].val
; /* _live_cast_types on <self:RapidTypeAnalysis> */
205 if (unlikely(var1
== NULL
)) {
206 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_cast_types");
207 PRINT_ERROR(" (%s:%d)\n", "src/rapid_type_analysis.nit", 67);
214 /* method rapid_type_analysis#RapidTypeAnalysis#live_cast_types for (self: Object): HashSet[MType] */
215 val
* VIRTUAL_rapid_type_analysis__RapidTypeAnalysis__live_cast_types(val
* self
) {
216 val
* var
/* : HashSet[MType] */;
217 val
* var1
/* : HashSet[MType] */;
218 val
* var3
/* : HashSet[MType] */;
219 { /* Inline rapid_type_analysis#RapidTypeAnalysis#live_cast_types (self) on <self:Object(RapidTypeAnalysis)> */
220 var3
= self
->attrs
[COLOR_rapid_type_analysis__RapidTypeAnalysis___live_cast_types
].val
; /* _live_cast_types on <self:Object(RapidTypeAnalysis)> */
221 if (unlikely(var3
== NULL
)) {
222 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_cast_types");
223 PRINT_ERROR(" (%s:%d)\n", "src/rapid_type_analysis.nit", 67);
233 /* method rapid_type_analysis#RapidTypeAnalysis#live_open_cast_types for (self: RapidTypeAnalysis): HashSet[MType] */
234 val
* rapid_type_analysis__RapidTypeAnalysis__live_open_cast_types(val
* self
) {
235 val
* var
/* : HashSet[MType] */;
236 val
* var1
/* : HashSet[MType] */;
237 var1
= self
->attrs
[COLOR_rapid_type_analysis__RapidTypeAnalysis___live_open_cast_types
].val
; /* _live_open_cast_types on <self:RapidTypeAnalysis> */
238 if (unlikely(var1
== NULL
)) {
239 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_open_cast_types");
240 PRINT_ERROR(" (%s:%d)\n", "src/rapid_type_analysis.nit", 70);
247 /* method rapid_type_analysis#RapidTypeAnalysis#live_open_cast_types for (self: Object): HashSet[MType] */
248 val
* VIRTUAL_rapid_type_analysis__RapidTypeAnalysis__live_open_cast_types(val
* self
) {
249 val
* var
/* : HashSet[MType] */;
250 val
* var1
/* : HashSet[MType] */;
251 val
* var3
/* : HashSet[MType] */;
252 { /* Inline rapid_type_analysis#RapidTypeAnalysis#live_open_cast_types (self) on <self:Object(RapidTypeAnalysis)> */
253 var3
= self
->attrs
[COLOR_rapid_type_analysis__RapidTypeAnalysis___live_open_cast_types
].val
; /* _live_open_cast_types on <self:Object(RapidTypeAnalysis)> */
254 if (unlikely(var3
== NULL
)) {
255 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_open_cast_types");
256 PRINT_ERROR(" (%s:%d)\n", "src/rapid_type_analysis.nit", 70);
266 /* method rapid_type_analysis#RapidTypeAnalysis#live_methoddefs for (self: RapidTypeAnalysis): HashSet[MMethodDef] */
267 val
* rapid_type_analysis__RapidTypeAnalysis__live_methoddefs(val
* self
) {
268 val
* var
/* : HashSet[MMethodDef] */;
269 val
* var1
/* : HashSet[MMethodDef] */;
270 var1
= self
->attrs
[COLOR_rapid_type_analysis__RapidTypeAnalysis___live_methoddefs
].val
; /* _live_methoddefs on <self:RapidTypeAnalysis> */
271 if (unlikely(var1
== NULL
)) {
272 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_methoddefs");
273 PRINT_ERROR(" (%s:%d)\n", "src/rapid_type_analysis.nit", 74);
280 /* method rapid_type_analysis#RapidTypeAnalysis#live_methoddefs for (self: Object): HashSet[MMethodDef] */
281 val
* VIRTUAL_rapid_type_analysis__RapidTypeAnalysis__live_methoddefs(val
* self
) {
282 val
* var
/* : HashSet[MMethodDef] */;
283 val
* var1
/* : HashSet[MMethodDef] */;
284 val
* var3
/* : HashSet[MMethodDef] */;
285 { /* Inline rapid_type_analysis#RapidTypeAnalysis#live_methoddefs (self) on <self:Object(RapidTypeAnalysis)> */
286 var3
= self
->attrs
[COLOR_rapid_type_analysis__RapidTypeAnalysis___live_methoddefs
].val
; /* _live_methoddefs on <self:Object(RapidTypeAnalysis)> */
287 if (unlikely(var3
== NULL
)) {
288 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_methoddefs");
289 PRINT_ERROR(" (%s:%d)\n", "src/rapid_type_analysis.nit", 74);
299 /* method rapid_type_analysis#RapidTypeAnalysis#live_methods for (self: RapidTypeAnalysis): HashSet[MMethod] */
300 val
* rapid_type_analysis__RapidTypeAnalysis__live_methods(val
* self
) {
301 val
* var
/* : HashSet[MMethod] */;
302 val
* var1
/* : HashSet[MMethod] */;
303 var1
= self
->attrs
[COLOR_rapid_type_analysis__RapidTypeAnalysis___live_methods
].val
; /* _live_methods on <self:RapidTypeAnalysis> */
304 if (unlikely(var1
== NULL
)) {
305 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_methods");
306 PRINT_ERROR(" (%s:%d)\n", "src/rapid_type_analysis.nit", 77);
313 /* method rapid_type_analysis#RapidTypeAnalysis#live_methods for (self: Object): HashSet[MMethod] */
314 val
* VIRTUAL_rapid_type_analysis__RapidTypeAnalysis__live_methods(val
* self
) {
315 val
* var
/* : HashSet[MMethod] */;
316 val
* var1
/* : HashSet[MMethod] */;
317 val
* var3
/* : HashSet[MMethod] */;
318 { /* Inline rapid_type_analysis#RapidTypeAnalysis#live_methods (self) on <self:Object(RapidTypeAnalysis)> */
319 var3
= self
->attrs
[COLOR_rapid_type_analysis__RapidTypeAnalysis___live_methods
].val
; /* _live_methods on <self:Object(RapidTypeAnalysis)> */
320 if (unlikely(var3
== NULL
)) {
321 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_methods");
322 PRINT_ERROR(" (%s:%d)\n", "src/rapid_type_analysis.nit", 77);
332 /* method rapid_type_analysis#RapidTypeAnalysis#live_callsites for (self: RapidTypeAnalysis): HashSet[CallSite] */
333 val
* rapid_type_analysis__RapidTypeAnalysis__live_callsites(val
* self
) {
334 val
* var
/* : HashSet[CallSite] */;
335 val
* var1
/* : HashSet[CallSite] */;
336 var1
= self
->attrs
[COLOR_rapid_type_analysis__RapidTypeAnalysis___live_callsites
].val
; /* _live_callsites on <self:RapidTypeAnalysis> */
337 if (unlikely(var1
== NULL
)) {
338 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_callsites");
339 PRINT_ERROR(" (%s:%d)\n", "src/rapid_type_analysis.nit", 80);
346 /* method rapid_type_analysis#RapidTypeAnalysis#live_callsites for (self: Object): HashSet[CallSite] */
347 val
* VIRTUAL_rapid_type_analysis__RapidTypeAnalysis__live_callsites(val
* self
) {
348 val
* var
/* : HashSet[CallSite] */;
349 val
* var1
/* : HashSet[CallSite] */;
350 val
* var3
/* : HashSet[CallSite] */;
351 { /* Inline rapid_type_analysis#RapidTypeAnalysis#live_callsites (self) on <self:Object(RapidTypeAnalysis)> */
352 var3
= self
->attrs
[COLOR_rapid_type_analysis__RapidTypeAnalysis___live_callsites
].val
; /* _live_callsites on <self:Object(RapidTypeAnalysis)> */
353 if (unlikely(var3
== NULL
)) {
354 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_callsites");
355 PRINT_ERROR(" (%s:%d)\n", "src/rapid_type_analysis.nit", 80);
365 /* method rapid_type_analysis#RapidTypeAnalysis#live_targets_cache for (self: RapidTypeAnalysis): HashMap2[MType, MProperty, Set[MMethodDef]] */
366 val
* rapid_type_analysis__RapidTypeAnalysis__live_targets_cache(val
* self
) {
367 val
* var
/* : HashMap2[MType, MProperty, Set[MMethodDef]] */;
368 val
* var1
/* : HashMap2[MType, MProperty, Set[MMethodDef]] */;
369 var1
= self
->attrs
[COLOR_rapid_type_analysis__RapidTypeAnalysis___live_targets_cache
].val
; /* _live_targets_cache on <self:RapidTypeAnalysis> */
370 if (unlikely(var1
== NULL
)) {
371 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_targets_cache");
372 PRINT_ERROR(" (%s:%d)\n", "src/rapid_type_analysis.nit", 83);
379 /* method rapid_type_analysis#RapidTypeAnalysis#live_targets_cache for (self: Object): HashMap2[MType, MProperty, Set[MMethodDef]] */
380 val
* VIRTUAL_rapid_type_analysis__RapidTypeAnalysis__live_targets_cache(val
* self
) {
381 val
* var
/* : HashMap2[MType, MProperty, Set[MMethodDef]] */;
382 val
* var1
/* : HashMap2[MType, MProperty, Set[MMethodDef]] */;
383 val
* var3
/* : HashMap2[MType, MProperty, Set[MMethodDef]] */;
384 { /* Inline rapid_type_analysis#RapidTypeAnalysis#live_targets_cache (self) on <self:Object(RapidTypeAnalysis)> */
385 var3
= self
->attrs
[COLOR_rapid_type_analysis__RapidTypeAnalysis___live_targets_cache
].val
; /* _live_targets_cache on <self:Object(RapidTypeAnalysis)> */
386 if (unlikely(var3
== NULL
)) {
387 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_targets_cache");
388 PRINT_ERROR(" (%s:%d)\n", "src/rapid_type_analysis.nit", 83);
398 /* method rapid_type_analysis#RapidTypeAnalysis#live_targets for (self: RapidTypeAnalysis, CallSite): Set[MMethodDef] */
399 val
* rapid_type_analysis__RapidTypeAnalysis__live_targets(val
* self
, val
* p0
) {
400 val
* var
/* : Set[MMethodDef] */;
401 val
* var_callsite
/* var callsite: CallSite */;
402 val
* var1
/* : MType */;
403 val
* var3
/* : MType */;
404 val
* var_mtype
/* var mtype: MType */;
405 val
* var4
/* : nullable MClassType */;
406 val
* var6
/* : nullable MClassType */;
407 val
* var_anchor
/* var anchor: nullable MClassType */;
408 val
* var7
/* : null */;
409 short int var8
/* : Bool */;
410 short int var9
/* : Bool */;
411 val
* var_other
/* var other: nullable Object */;
412 short int var11
/* : Bool */;
413 short int var12
/* : Bool */;
414 short int var13
/* : Bool */;
415 val
* var14
/* : MModule */;
416 val
* var16
/* : MModule */;
417 val
* var17
/* : MType */;
418 val
* var18
/* : MType */;
419 short int var19
/* : Bool */;
422 val
* var20
/* : MClass */;
423 val
* var22
/* : MClass */;
424 val
* var23
/* : MClassDef */;
425 val
* var24
/* : MClassType */;
426 val
* var26
/* : MClassType */;
427 val
* var27
/* : MMethod */;
428 val
* var29
/* : MMethod */;
429 val
* var_mproperty
/* var mproperty: MMethod */;
430 val
* var30
/* : HashMap2[MType, MProperty, Set[MMethodDef]] */;
431 val
* var32
/* : HashMap2[MType, MProperty, Set[MMethodDef]] */;
432 val
* var33
/* : nullable Object */;
433 val
* var_res
/* var res: nullable Set[MMethodDef] */;
434 val
* var34
/* : null */;
435 short int var35
/* : Bool */;
436 short int var36
/* : Bool */;
437 short int var38
/* : Bool */;
438 short int var39
/* : Bool */;
439 short int var40
/* : Bool */;
440 val
* var41
/* : ArraySet[MMethodDef] */;
441 val
* var42
/* : HashMap2[MType, MProperty, Set[MMethodDef]] */;
442 val
* var44
/* : HashMap2[MType, MProperty, Set[MMethodDef]] */;
443 val
* var45
/* : HashSet[MClass] */;
444 val
* var47
/* : HashSet[MClass] */;
445 val
* var48
/* : Iterator[Object] */;
446 short int var49
/* : Bool */;
447 val
* var50
/* : nullable Object */;
448 val
* var_c
/* var c: MClass */;
449 val
* var51
/* : MClassDef */;
450 val
* var52
/* : MClassType */;
451 val
* var54
/* : MClassType */;
452 val
* var_tc
/* var tc: MClassType */;
453 val
* var55
/* : MModule */;
454 val
* var57
/* : MModule */;
455 val
* var58
/* : null */;
456 short int var59
/* : Bool */;
457 short int var60
/* : Bool */;
458 val
* var61
/* : MModule */;
459 val
* var63
/* : MModule */;
460 val
* var64
/* : MPropDef */;
461 val
* var_d
/* var d: MMethodDef */;
464 { /* Inline typing#CallSite#recv (var_callsite) on <var_callsite:CallSite> */
465 var3
= var_callsite
->attrs
[COLOR_typing__CallSite___recv
].val
; /* _recv on <var_callsite:CallSite> */
466 if (unlikely(var3
== NULL
)) {
467 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _recv");
468 PRINT_ERROR(" (%s:%d)\n", "src/typing.nit", 408);
477 { /* Inline typing#CallSite#anchor (var_callsite) on <var_callsite:CallSite> */
478 var6
= var_callsite
->attrs
[COLOR_typing__CallSite___anchor
].val
; /* _anchor on <var_callsite:CallSite> */
485 if (var_anchor
== NULL
) {
486 var8
= 0; /* is null */
488 var8
= 1; /* arg is null and recv is not */
491 { /* Inline kernel#Object#!= (var_anchor,var7) on <var_anchor:nullable MClassType> */
494 var12
= ((short int (*)(val
*, val
*))(var_anchor
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var_anchor
, var_other
) /* == on <var_anchor:nullable MClassType(MClassType)>*/;
506 { /* Inline typing#CallSite#mmodule (var_callsite) on <var_callsite:CallSite> */
507 var16
= var_callsite
->attrs
[COLOR_typing__CallSite___mmodule
].val
; /* _mmodule on <var_callsite:CallSite> */
508 if (unlikely(var16
== NULL
)) {
509 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule");
510 PRINT_ERROR(" (%s:%d)\n", "src/typing.nit", 411);
518 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>*/;
524 var18
= ((val
* (*)(val
*))(var_mtype
->class->vft
[COLOR_model__MType__as_notnullable
]))(var_mtype
) /* as_notnullable on <var_mtype:MType>*/;
527 /* <var_mtype:MType> isa MClassType */
528 cltype
= type_model__MClassType
.color
;
529 idtype
= type_model__MClassType
.id
;
530 if(cltype
>= var_mtype
->type
->table_size
) {
533 var19
= var_mtype
->type
->type_table
[cltype
] == idtype
;
535 if (unlikely(!var19
)) {
536 PRINT_ERROR("Runtime error: %s", "Assert failed");
537 PRINT_ERROR(" (%s:%d)\n", "src/rapid_type_analysis.nit", 92);
541 { /* Inline model#MClassType#mclass (var_mtype) on <var_mtype:MType(MClassType)> */
542 var22
= var_mtype
->attrs
[COLOR_model__MClassType___mclass
].val
; /* _mclass on <var_mtype:MType(MClassType)> */
543 if (unlikely(var22
== NULL
)) {
544 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
545 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 969);
553 var23
= model__MClass__intro(var20
);
556 { /* Inline model#MClassDef#bound_mtype (var23) on <var23:MClassDef> */
557 var26
= var23
->attrs
[COLOR_model__MClassDef___bound_mtype
].val
; /* _bound_mtype on <var23:MClassDef> */
558 if (unlikely(var26
== NULL
)) {
559 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _bound_mtype");
560 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 477);
569 { /* Inline typing#CallSite#mproperty (var_callsite) on <var_callsite:CallSite> */
570 var29
= var_callsite
->attrs
[COLOR_typing__CallSite___mproperty
].val
; /* _mproperty on <var_callsite:CallSite> */
571 if (unlikely(var29
== NULL
)) {
572 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty");
573 PRINT_ERROR(" (%s:%d)\n", "src/typing.nit", 422);
580 var_mproperty
= var27
;
582 { /* Inline rapid_type_analysis#RapidTypeAnalysis#live_targets_cache (self) on <self:RapidTypeAnalysis> */
583 var32
= self
->attrs
[COLOR_rapid_type_analysis__RapidTypeAnalysis___live_targets_cache
].val
; /* _live_targets_cache on <self:RapidTypeAnalysis> */
584 if (unlikely(var32
== NULL
)) {
585 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_targets_cache");
586 PRINT_ERROR(" (%s:%d)\n", "src/rapid_type_analysis.nit", 83);
594 var33
= more_collections__HashMap2___91d_93d(var30
, var_mtype
, var_mproperty
);
598 if (var_res
== NULL
) {
599 var35
= 0; /* is null */
601 var35
= 1; /* arg is null and recv is not */
604 { /* Inline kernel#Object#!= (var_res,var34) on <var_res:nullable Set[MMethodDef]> */
607 var39
= ((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])>*/;
622 var41
= NEW_array__ArraySet(&type_array__ArraySetmodel__MMethodDef
);
624 array__ArraySet__init(var41
); /* Direct call array#ArraySet#init on <var41:ArraySet[MMethodDef]>*/
628 { /* Inline rapid_type_analysis#RapidTypeAnalysis#live_targets_cache (self) on <self:RapidTypeAnalysis> */
629 var44
= self
->attrs
[COLOR_rapid_type_analysis__RapidTypeAnalysis___live_targets_cache
].val
; /* _live_targets_cache on <self:RapidTypeAnalysis> */
630 if (unlikely(var44
== NULL
)) {
631 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_targets_cache");
632 PRINT_ERROR(" (%s:%d)\n", "src/rapid_type_analysis.nit", 83);
640 more_collections__HashMap2___91d_93d_61d(var42
, var_mtype
, var_mproperty
, var_res
); /* Direct call more_collections#HashMap2#[]= on <var42:HashMap2[MType, MProperty, Set[MMethodDef]]>*/
643 { /* Inline rapid_type_analysis#RapidTypeAnalysis#live_classes (self) on <self:RapidTypeAnalysis> */
644 var47
= self
->attrs
[COLOR_rapid_type_analysis__RapidTypeAnalysis___live_classes
].val
; /* _live_classes on <self:RapidTypeAnalysis> */
645 if (unlikely(var47
== NULL
)) {
646 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_classes");
647 PRINT_ERROR(" (%s:%d)\n", "src/rapid_type_analysis.nit", 64);
655 var48
= hash_collection__HashSet__iterator(var45
);
659 var49
= ((short int (*)(val
*))(var48
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var48
) /* is_ok on <var48:Iterator[Object]>*/;
663 var50
= ((val
* (*)(val
*))(var48
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var48
) /* item on <var48:Iterator[Object]>*/;
667 var51
= model__MClass__intro(var_c
);
670 { /* Inline model#MClassDef#bound_mtype (var51) on <var51:MClassDef> */
671 var54
= var51
->attrs
[COLOR_model__MClassDef___bound_mtype
].val
; /* _bound_mtype on <var51:MClassDef> */
672 if (unlikely(var54
== NULL
)) {
673 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _bound_mtype");
674 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 477);
683 { /* Inline rapid_type_analysis#RapidTypeAnalysis#mainmodule (self) on <self:RapidTypeAnalysis> */
684 var57
= self
->attrs
[COLOR_rapid_type_analysis__RapidTypeAnalysis___mainmodule
].val
; /* _mainmodule on <self:RapidTypeAnalysis> */
685 if (unlikely(var57
== NULL
)) {
686 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule");
687 PRINT_ERROR(" (%s:%d)\n", "src/rapid_type_analysis.nit", 51);
696 var59
= model__MType__is_subtype(var_tc
, var55
, var58
, var_mtype
);
704 { /* Inline rapid_type_analysis#RapidTypeAnalysis#mainmodule (self) on <self:RapidTypeAnalysis> */
705 var63
= self
->attrs
[COLOR_rapid_type_analysis__RapidTypeAnalysis___mainmodule
].val
; /* _mainmodule on <self:RapidTypeAnalysis> */
706 if (unlikely(var63
== NULL
)) {
707 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule");
708 PRINT_ERROR(" (%s:%d)\n", "src/rapid_type_analysis.nit", 51);
716 var64
= model__MProperty__lookup_first_definition(var_mproperty
, var61
, var_tc
);
720 array__ArraySet__add(var_res
, var_d
); /* Direct call array#ArraySet#add on <var_res:nullable Set[MMethodDef](ArraySet[MMethodDef])>*/
722 CONTINUE_label
: (void)0;
724 ((void (*)(val
*))(var48
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var48
) /* next on <var48:Iterator[Object]>*/;
727 BREAK_label
: (void)0;
733 /* method rapid_type_analysis#RapidTypeAnalysis#live_targets for (self: Object, CallSite): Set[MMethodDef] */
734 val
* VIRTUAL_rapid_type_analysis__RapidTypeAnalysis__live_targets(val
* self
, val
* p0
) {
735 val
* var
/* : Set[MMethodDef] */;
736 val
* var1
/* : Set[MMethodDef] */;
737 var1
= rapid_type_analysis__RapidTypeAnalysis__live_targets(self
, p0
);
742 /* method rapid_type_analysis#RapidTypeAnalysis#live_super_sends for (self: RapidTypeAnalysis): HashSet[MMethodDef] */
743 val
* rapid_type_analysis__RapidTypeAnalysis__live_super_sends(val
* self
) {
744 val
* var
/* : HashSet[MMethodDef] */;
745 val
* var1
/* : HashSet[MMethodDef] */;
746 var1
= self
->attrs
[COLOR_rapid_type_analysis__RapidTypeAnalysis___live_super_sends
].val
; /* _live_super_sends on <self:RapidTypeAnalysis> */
747 if (unlikely(var1
== NULL
)) {
748 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_super_sends");
749 PRINT_ERROR(" (%s:%d)\n", "src/rapid_type_analysis.nit", 110);
756 /* method rapid_type_analysis#RapidTypeAnalysis#live_super_sends for (self: Object): HashSet[MMethodDef] */
757 val
* VIRTUAL_rapid_type_analysis__RapidTypeAnalysis__live_super_sends(val
* self
) {
758 val
* var
/* : HashSet[MMethodDef] */;
759 val
* var1
/* : HashSet[MMethodDef] */;
760 val
* var3
/* : HashSet[MMethodDef] */;
761 { /* Inline rapid_type_analysis#RapidTypeAnalysis#live_super_sends (self) on <self:Object(RapidTypeAnalysis)> */
762 var3
= self
->attrs
[COLOR_rapid_type_analysis__RapidTypeAnalysis___live_super_sends
].val
; /* _live_super_sends on <self:Object(RapidTypeAnalysis)> */
763 if (unlikely(var3
== NULL
)) {
764 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_super_sends");
765 PRINT_ERROR(" (%s:%d)\n", "src/rapid_type_analysis.nit", 110);
775 /* method rapid_type_analysis#RapidTypeAnalysis#totry_methods for (self: RapidTypeAnalysis): HashSet[MMethod] */
776 val
* rapid_type_analysis__RapidTypeAnalysis__totry_methods(val
* self
) {
777 val
* var
/* : HashSet[MMethod] */;
778 val
* var1
/* : HashSet[MMethod] */;
779 var1
= self
->attrs
[COLOR_rapid_type_analysis__RapidTypeAnalysis___totry_methods
].val
; /* _totry_methods on <self:RapidTypeAnalysis> */
780 if (unlikely(var1
== NULL
)) {
781 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _totry_methods");
782 PRINT_ERROR(" (%s:%d)\n", "src/rapid_type_analysis.nit", 164);
789 /* method rapid_type_analysis#RapidTypeAnalysis#totry_methods for (self: Object): HashSet[MMethod] */
790 val
* VIRTUAL_rapid_type_analysis__RapidTypeAnalysis__totry_methods(val
* self
) {
791 val
* var
/* : HashSet[MMethod] */;
792 val
* var1
/* : HashSet[MMethod] */;
793 val
* var3
/* : HashSet[MMethod] */;
794 { /* Inline rapid_type_analysis#RapidTypeAnalysis#totry_methods (self) on <self:Object(RapidTypeAnalysis)> */
795 var3
= self
->attrs
[COLOR_rapid_type_analysis__RapidTypeAnalysis___totry_methods
].val
; /* _totry_methods on <self:Object(RapidTypeAnalysis)> */
796 if (unlikely(var3
== NULL
)) {
797 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _totry_methods");
798 PRINT_ERROR(" (%s:%d)\n", "src/rapid_type_analysis.nit", 164);
808 /* method rapid_type_analysis#RapidTypeAnalysis#totry_methods_to_remove for (self: RapidTypeAnalysis): Array[MMethod] */
809 val
* rapid_type_analysis__RapidTypeAnalysis__totry_methods_to_remove(val
* self
) {
810 val
* var
/* : Array[MMethod] */;
811 val
* var1
/* : Array[MMethod] */;
812 var1
= self
->attrs
[COLOR_rapid_type_analysis__RapidTypeAnalysis___totry_methods_to_remove
].val
; /* _totry_methods_to_remove on <self:RapidTypeAnalysis> */
813 if (unlikely(var1
== NULL
)) {
814 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _totry_methods_to_remove");
815 PRINT_ERROR(" (%s:%d)\n", "src/rapid_type_analysis.nit", 167);
822 /* method rapid_type_analysis#RapidTypeAnalysis#totry_methods_to_remove for (self: Object): Array[MMethod] */
823 val
* VIRTUAL_rapid_type_analysis__RapidTypeAnalysis__totry_methods_to_remove(val
* self
) {
824 val
* var
/* : Array[MMethod] */;
825 val
* var1
/* : Array[MMethod] */;
826 val
* var3
/* : Array[MMethod] */;
827 { /* Inline rapid_type_analysis#RapidTypeAnalysis#totry_methods_to_remove (self) on <self:Object(RapidTypeAnalysis)> */
828 var3
= self
->attrs
[COLOR_rapid_type_analysis__RapidTypeAnalysis___totry_methods_to_remove
].val
; /* _totry_methods_to_remove on <self:Object(RapidTypeAnalysis)> */
829 if (unlikely(var3
== NULL
)) {
830 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _totry_methods_to_remove");
831 PRINT_ERROR(" (%s:%d)\n", "src/rapid_type_analysis.nit", 167);
841 /* method rapid_type_analysis#RapidTypeAnalysis#try_methods for (self: RapidTypeAnalysis): HashSet[MMethod] */
842 val
* rapid_type_analysis__RapidTypeAnalysis__try_methods(val
* self
) {
843 val
* var
/* : HashSet[MMethod] */;
844 val
* var1
/* : HashSet[MMethod] */;
845 var1
= self
->attrs
[COLOR_rapid_type_analysis__RapidTypeAnalysis___try_methods
].val
; /* _try_methods on <self:RapidTypeAnalysis> */
846 if (unlikely(var1
== NULL
)) {
847 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _try_methods");
848 PRINT_ERROR(" (%s:%d)\n", "src/rapid_type_analysis.nit", 170);
855 /* method rapid_type_analysis#RapidTypeAnalysis#try_methods for (self: Object): HashSet[MMethod] */
856 val
* VIRTUAL_rapid_type_analysis__RapidTypeAnalysis__try_methods(val
* self
) {
857 val
* var
/* : HashSet[MMethod] */;
858 val
* var1
/* : HashSet[MMethod] */;
859 val
* var3
/* : HashSet[MMethod] */;
860 { /* Inline rapid_type_analysis#RapidTypeAnalysis#try_methods (self) on <self:Object(RapidTypeAnalysis)> */
861 var3
= self
->attrs
[COLOR_rapid_type_analysis__RapidTypeAnalysis___try_methods
].val
; /* _try_methods on <self:Object(RapidTypeAnalysis)> */
862 if (unlikely(var3
== NULL
)) {
863 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _try_methods");
864 PRINT_ERROR(" (%s:%d)\n", "src/rapid_type_analysis.nit", 170);
874 /* method rapid_type_analysis#RapidTypeAnalysis#todo for (self: RapidTypeAnalysis): List[MMethodDef] */
875 val
* rapid_type_analysis__RapidTypeAnalysis__todo(val
* self
) {
876 val
* var
/* : List[MMethodDef] */;
877 val
* var1
/* : List[MMethodDef] */;
878 var1
= self
->attrs
[COLOR_rapid_type_analysis__RapidTypeAnalysis___todo
].val
; /* _todo on <self:RapidTypeAnalysis> */
879 if (unlikely(var1
== NULL
)) {
880 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _todo");
881 PRINT_ERROR(" (%s:%d)\n", "src/rapid_type_analysis.nit", 174);
888 /* method rapid_type_analysis#RapidTypeAnalysis#todo for (self: Object): List[MMethodDef] */
889 val
* VIRTUAL_rapid_type_analysis__RapidTypeAnalysis__todo(val
* self
) {
890 val
* var
/* : List[MMethodDef] */;
891 val
* var1
/* : List[MMethodDef] */;
892 val
* var3
/* : List[MMethodDef] */;
893 { /* Inline rapid_type_analysis#RapidTypeAnalysis#todo (self) on <self:Object(RapidTypeAnalysis)> */
894 var3
= self
->attrs
[COLOR_rapid_type_analysis__RapidTypeAnalysis___todo
].val
; /* _todo on <self:Object(RapidTypeAnalysis)> */
895 if (unlikely(var3
== NULL
)) {
896 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _todo");
897 PRINT_ERROR(" (%s:%d)\n", "src/rapid_type_analysis.nit", 174);
907 /* method rapid_type_analysis#RapidTypeAnalysis#force_alive for (self: RapidTypeAnalysis, String) */
908 void rapid_type_analysis__RapidTypeAnalysis__force_alive(val
* self
, val
* p0
) {
909 val
* var_classname
/* var classname: String */;
910 val
* var
/* : ModelBuilder */;
911 val
* var2
/* : ModelBuilder */;
912 val
* var3
/* : Model */;
913 val
* var5
/* : Model */;
914 val
* var6
/* : nullable Array[MClass] */;
915 val
* var_classes
/* var classes: nullable Array[MClass] */;
916 val
* var7
/* : null */;
917 short int var8
/* : Bool */;
918 short int var9
/* : Bool */;
919 val
* var_other
/* var other: nullable Object */;
920 short int var11
/* : Bool */;
921 short int var12
/* : Bool */;
922 short int var13
/* : Bool */;
923 val
* var14
/* : ArrayIterator[nullable Object] */;
924 short int var15
/* : Bool */;
925 val
* var16
/* : nullable Object */;
926 val
* var_c
/* var c: MClass */;
927 val
* var17
/* : MClassType */;
928 val
* var19
/* : MClassType */;
929 val
* var20
/* : MClassType */;
930 val
* var22
/* : MClassType */;
933 { /* Inline rapid_type_analysis#RapidTypeAnalysis#modelbuilder (self) on <self:RapidTypeAnalysis> */
934 var2
= self
->attrs
[COLOR_rapid_type_analysis__RapidTypeAnalysis___modelbuilder
].val
; /* _modelbuilder on <self:RapidTypeAnalysis> */
935 if (unlikely(var2
== NULL
)) {
936 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
937 PRINT_ERROR(" (%s:%d)\n", "src/rapid_type_analysis.nit", 48);
945 { /* Inline modelbuilder#ModelBuilder#model (var) on <var:ModelBuilder> */
946 var5
= var
->attrs
[COLOR_modelbuilder__ModelBuilder___model
].val
; /* _model on <var:ModelBuilder> */
947 if (unlikely(var5
== NULL
)) {
948 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _model");
949 PRINT_ERROR(" (%s:%d)\n", "src/modelbuilder.nit", 98);
957 var6
= model__Model__get_mclasses_by_name(var3
, var_classname
);
961 if (var_classes
== NULL
) {
962 var8
= 0; /* is null */
964 var8
= 1; /* arg is null and recv is not */
967 { /* Inline kernel#Object#!= (var_classes,var7) on <var_classes:nullable Array[MClass]> */
970 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])>*/;
982 var14
= array__AbstractArrayRead__iterator(var_classes
);
986 var15
= array__ArrayIterator__is_ok(var14
);
990 var16
= array__ArrayIterator__item(var14
);
994 { /* Inline model#MClass#mclass_type (var_c) on <var_c:MClass> */
995 var19
= var_c
->attrs
[COLOR_model__MClass___mclass_type
].val
; /* _mclass_type on <var_c:MClass> */
996 if (unlikely(var19
== NULL
)) {
997 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass_type");
998 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 417);
1002 RET_LABEL18
:(void)0;
1006 { /* Inline model#MClass#mclass_type (var_c) on <var_c:MClass> */
1007 var22
= var_c
->attrs
[COLOR_model__MClass___mclass_type
].val
; /* _mclass_type on <var_c:MClass> */
1008 if (unlikely(var22
== NULL
)) {
1009 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass_type");
1010 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 417);
1014 RET_LABEL21
:(void)0;
1018 rapid_type_analysis__RapidTypeAnalysis__add_new(self
, var17
, var20
); /* Direct call rapid_type_analysis#RapidTypeAnalysis#add_new on <self:RapidTypeAnalysis>*/
1020 CONTINUE_label
: (void)0;
1022 array__ArrayIterator__next(var14
); /* Direct call array#ArrayIterator#next on <var14:ArrayIterator[nullable Object]>*/
1025 BREAK_label
: (void)0;
1030 /* method rapid_type_analysis#RapidTypeAnalysis#force_alive for (self: Object, String) */
1031 void VIRTUAL_rapid_type_analysis__RapidTypeAnalysis__force_alive(val
* self
, val
* p0
) {
1032 rapid_type_analysis__RapidTypeAnalysis__force_alive(self
, p0
); /* Direct call rapid_type_analysis#RapidTypeAnalysis#force_alive on <self:Object(RapidTypeAnalysis)>*/
1035 /* method rapid_type_analysis#RapidTypeAnalysis#run_analysis for (self: RapidTypeAnalysis) */
1036 void rapid_type_analysis__RapidTypeAnalysis__run_analysis(val
* self
) {
1037 val
* var
/* : MModule */;
1038 val
* var2
/* : MModule */;
1039 val
* var3
/* : nullable MClassType */;
1040 val
* var_maintype
/* var maintype: nullable MClassType */;
1041 val
* var4
/* : null */;
1042 short int var5
/* : Bool */;
1043 short int var6
/* : Bool */;
1044 val
* var_other
/* var other: nullable Object */;
1045 short int var8
/* : Bool */;
1046 short int var10
/* : Bool */;
1047 val
* var11
/* : MModule */;
1048 val
* var13
/* : MModule */;
1049 static val
* varonce
;
1050 val
* var14
/* : String */;
1051 char* var15
/* : NativeString */;
1052 long var16
/* : Int */;
1053 val
* var17
/* : FlatString */;
1054 val
* var18
/* : MClass */;
1055 val
* var20
/* : MClass */;
1056 val
* var21
/* : nullable MMethod */;
1057 val
* var_initprop
/* var initprop: nullable MMethod */;
1058 val
* var22
/* : null */;
1059 short int var23
/* : Bool */;
1060 short int var24
/* : Bool */;
1061 val
* var_other26
/* var other: nullable Object */;
1062 short int var27
/* : Bool */;
1063 short int var28
/* : Bool */;
1064 short int var29
/* : Bool */;
1065 val
* var30
/* : MModule */;
1066 val
* var32
/* : MModule */;
1067 static val
* varonce33
;
1068 val
* var34
/* : String */;
1069 char* var35
/* : NativeString */;
1070 long var36
/* : Int */;
1071 val
* var37
/* : FlatString */;
1072 val
* var38
/* : MClass */;
1073 val
* var40
/* : MClass */;
1074 val
* var41
/* : nullable MMethod */;
1075 val
* var_mainprop
/* var mainprop: nullable MMethod */;
1076 val
* var42
/* : null */;
1077 short int var43
/* : Bool */;
1078 short int var44
/* : Bool */;
1079 short int var46
/* : Bool */;
1080 short int var47
/* : Bool */;
1081 short int var48
/* : Bool */;
1082 static val
* varonce49
;
1083 val
* var50
/* : String */;
1084 char* var51
/* : NativeString */;
1085 long var52
/* : Int */;
1086 val
* var53
/* : FlatString */;
1087 static val
* varonce54
;
1088 val
* var55
/* : String */;
1089 char* var56
/* : NativeString */;
1090 long var57
/* : Int */;
1091 val
* var58
/* : FlatString */;
1092 static val
* varonce59
;
1093 val
* var60
/* : String */;
1094 char* var61
/* : NativeString */;
1095 long var62
/* : Int */;
1096 val
* var63
/* : FlatString */;
1097 static val
* varonce64
;
1098 val
* var65
/* : String */;
1099 char* var66
/* : NativeString */;
1100 long var67
/* : Int */;
1101 val
* var68
/* : FlatString */;
1102 val
* var69
/* : List[MMethodDef] */;
1103 val
* var71
/* : List[MMethodDef] */;
1104 short int var72
/* : Bool */;
1105 short int var73
/* : Bool */;
1106 val
* var74
/* : List[MMethodDef] */;
1107 val
* var76
/* : List[MMethodDef] */;
1108 val
* var77
/* : nullable Object */;
1109 val
* var_mmethoddef
/* var mmethoddef: MMethodDef */;
1110 val
* var78
/* : MProperty */;
1111 val
* var80
/* : MProperty */;
1112 val
* var_mmeth
/* var mmeth: MMethod */;
1113 val
* var81
/* : RapidTypeVisitor */;
1114 val
* var82
/* : MClassDef */;
1115 val
* var84
/* : MClassDef */;
1116 val
* var85
/* : MClassType */;
1117 val
* var87
/* : MClassType */;
1118 val
* var_v
/* var v: RapidTypeVisitor */;
1119 val
* var88
/* : nullable MSignature */;
1120 val
* var90
/* : nullable MSignature */;
1121 long var91
/* : Int */;
1122 long var93
/* : Int */;
1123 long var_vararg_rank
/* var vararg_rank: Int */;
1124 long var94
/* : Int */;
1125 long var95
/* : Int */;
1126 long var97
/* : Int */;
1127 short int var98
/* : Bool */;
1128 short int var100
/* : Bool */;
1131 const char* var_class_name
;
1132 short int var101
/* : Bool */;
1133 val
* var102
/* : ModelBuilder */;
1134 val
* var104
/* : ModelBuilder */;
1135 val
* var105
/* : HashMap[MPropDef, APropdef] */;
1136 val
* var107
/* : HashMap[MPropDef, APropdef] */;
1137 val
* var108
/* : nullable Object */;
1138 val
* var_node
/* var node: APropdef */;
1139 val
* var109
/* : nullable MSignature */;
1140 val
* var111
/* : nullable MSignature */;
1141 val
* var112
/* : Array[MParameter] */;
1142 val
* var114
/* : Array[MParameter] */;
1143 val
* var115
/* : nullable Object */;
1144 val
* var116
/* : MType */;
1145 val
* var118
/* : MType */;
1146 val
* var_elttype
/* var elttype: MType */;
1147 val
* var119
/* : MModule */;
1148 val
* var121
/* : MModule */;
1149 static val
* varonce122
;
1150 val
* var123
/* : String */;
1151 char* var124
/* : NativeString */;
1152 long var125
/* : Int */;
1153 val
* var126
/* : FlatString */;
1154 val
* var127
/* : MClass */;
1155 val
* var128
/* : Array[MType] */;
1156 long var129
/* : Int */;
1157 val
* var_
/* var : Array[MType] */;
1158 val
* var130
/* : MClassType */;
1159 val
* var_vararg
/* var vararg: MClassType */;
1160 val
* var131
/* : MModule */;
1161 val
* var133
/* : MModule */;
1162 static val
* varonce134
;
1163 val
* var135
/* : String */;
1164 char* var136
/* : NativeString */;
1165 long var137
/* : Int */;
1166 val
* var138
/* : FlatString */;
1167 val
* var139
/* : MClass */;
1168 val
* var140
/* : Array[MType] */;
1169 long var141
/* : Int */;
1170 val
* var_142
/* var : Array[MType] */;
1171 val
* var143
/* : MClassType */;
1172 val
* var_native
/* var native: MClassType */;
1173 val
* var144
/* : ModelBuilder */;
1174 val
* var146
/* : ModelBuilder */;
1175 static val
* varonce147
;
1176 val
* var148
/* : String */;
1177 char* var149
/* : NativeString */;
1178 long var150
/* : Int */;
1179 val
* var151
/* : FlatString */;
1180 val
* var152
/* : MClass */;
1181 val
* var154
/* : MClass */;
1182 val
* var155
/* : MModule */;
1183 val
* var157
/* : MModule */;
1184 val
* var158
/* : MMethod */;
1185 val
* var159
/* : nullable MSignature */;
1186 val
* var161
/* : nullable MSignature */;
1187 val
* var_sig
/* var sig: MSignature */;
1188 val
* var162
/* : MPropDef */;
1189 val
* var163
/* : nullable MSignature */;
1190 val
* var165
/* : nullable MSignature */;
1191 val
* var_osig
/* var osig: MSignature */;
1192 val
* var166
/* : Range[Int] */;
1193 long var167
/* : Int */;
1194 long var168
/* : Int */;
1195 val
* var169
/* : Discrete */;
1196 val
* var170
/* : Discrete */;
1197 val
* var171
/* : Iterator[Discrete] */;
1198 short int var172
/* : Bool */;
1199 val
* var173
/* : nullable Object */;
1200 long var_i
/* var i: Int */;
1201 long var174
/* : Int */;
1202 val
* var175
/* : Array[MParameter] */;
1203 val
* var177
/* : Array[MParameter] */;
1204 val
* var178
/* : nullable Object */;
1205 val
* var179
/* : MType */;
1206 val
* var181
/* : MType */;
1207 val
* var_origtype
/* var origtype: MType */;
1208 short int var182
/* : Bool */;
1209 short int var183
/* : Bool */;
1210 val
* var184
/* : Array[MParameter] */;
1211 val
* var186
/* : Array[MParameter] */;
1212 val
* var187
/* : nullable Object */;
1213 val
* var188
/* : MType */;
1214 val
* var190
/* : MType */;
1215 val
* var_paramtype
/* var paramtype: MType */;
1216 val
* var191
/* : ModelBuilder */;
1217 val
* var193
/* : ModelBuilder */;
1218 val
* var194
/* : HashMap[MPropDef, APropdef] */;
1219 val
* var196
/* : HashMap[MPropDef, APropdef] */;
1220 short int var197
/* : Bool */;
1221 short int var198
/* : Bool */;
1222 val
* var199
/* : String */;
1223 val
* var201
/* : String */;
1224 static val
* varonce202
;
1225 val
* var203
/* : String */;
1226 char* var204
/* : NativeString */;
1227 long var205
/* : Int */;
1228 val
* var206
/* : FlatString */;
1229 short int var207
/* : Bool */;
1230 short int var208
/* : Bool */;
1231 val
* var209
/* : ModelBuilder */;
1232 val
* var211
/* : ModelBuilder */;
1233 val
* var212
/* : HashMap[MClassDef, AClassdef] */;
1234 val
* var214
/* : HashMap[MClassDef, AClassdef] */;
1235 val
* var215
/* : MClassDef */;
1236 val
* var217
/* : MClassDef */;
1237 val
* var218
/* : nullable Object */;
1238 val
* var_nclassdef
/* var nclassdef: AClassdef */;
1239 val
* var219
/* : nullable Collection[MMethod] */;
1240 val
* var221
/* : nullable Collection[MMethod] */;
1241 val
* var_super_inits
/* var super_inits: nullable Collection[MMethod] */;
1242 val
* var222
/* : null */;
1243 short int var223
/* : Bool */;
1244 short int var224
/* : Bool */;
1245 short int var226
/* : Bool */;
1246 short int var227
/* : Bool */;
1247 short int var228
/* : Bool */;
1248 val
* var229
/* : Iterator[nullable Object] */;
1249 short int var230
/* : Bool */;
1250 val
* var231
/* : nullable Object */;
1251 val
* var_su
/* var su: MMethod */;
1252 val
* var232
/* : MClassType */;
1253 val
* var234
/* : MClassType */;
1254 val
* var237
/* : ModelBuilder */;
1255 val
* var239
/* : ModelBuilder */;
1256 val
* var240
/* : HashMap[MPropDef, APropdef] */;
1257 val
* var242
/* : HashMap[MPropDef, APropdef] */;
1258 val
* var243
/* : nullable Object */;
1259 val
* var_npropdef
/* var npropdef: APropdef */;
1260 short int var244
/* : Bool */;
1263 val
* var247
/* : nullable Array[CallSite] */;
1264 val
* var249
/* : nullable Array[CallSite] */;
1265 val
* var_auto_super_inits
/* var auto_super_inits: nullable Array[CallSite] */;
1266 val
* var250
/* : null */;
1267 short int var251
/* : Bool */;
1268 short int var252
/* : Bool */;
1269 short int var254
/* : Bool */;
1270 short int var255
/* : Bool */;
1271 short int var256
/* : Bool */;
1272 val
* var257
/* : ArrayIterator[nullable Object] */;
1273 short int var258
/* : Bool */;
1274 val
* var259
/* : nullable Object */;
1275 val
* var_auto_super_init
/* var auto_super_init: CallSite */;
1276 short int var261
/* : Bool */;
1277 short int var263
/* : Bool */;
1278 val
* var264
/* : MClassType */;
1279 val
* var266
/* : MClassType */;
1280 short int var267
/* : Bool */;
1281 short int var268
/* : Bool */;
1282 short int var270
/* : Bool */;
1283 short int var_271
/* var : Bool */;
1284 short int var272
/* : Bool */;
1285 short int var274
/* : Bool */;
1286 val
* var275
/* : nullable MSignature */;
1287 val
* var277
/* : nullable MSignature */;
1288 val
* var278
/* : nullable MType */;
1289 val
* var280
/* : nullable MType */;
1290 val
* var_ret
/* var ret: nullable MType */;
1291 short int var281
/* : Bool */;
1292 short int var282
/* : Bool */;
1293 short int var283
/* : Bool */;
1294 val
* var284
/* : null */;
1295 short int var285
/* : Bool */;
1296 short int var286
/* : Bool */;
1297 short int var288
/* : Bool */;
1298 short int var289
/* : Bool */;
1299 short int var290
/* : Bool */;
1300 short int var_291
/* var : Bool */;
1301 short int var292
/* : Bool */;
1304 short int var_295
/* var : Bool */;
1305 val
* var296
/* : MClass */;
1306 val
* var298
/* : MClass */;
1307 val
* var299
/* : MClassKind */;
1308 val
* var301
/* : MClassKind */;
1309 val
* var302
/* : MClassKind */;
1310 short int var303
/* : Bool */;
1311 short int var304
/* : Bool */;
1312 short int var306
/* : Bool */;
1313 short int var307
/* : Bool */;
1314 short int var308
/* : Bool */;
1315 short int var_309
/* var : Bool */;
1316 val
* var310
/* : MClass */;
1317 val
* var312
/* : MClass */;
1318 val
* var313
/* : MClassKind */;
1319 val
* var315
/* : MClassKind */;
1320 val
* var316
/* : MClassKind */;
1321 short int var317
/* : Bool */;
1322 short int var318
/* : Bool */;
1323 short int var320
/* : Bool */;
1324 short int var321
/* : Bool */;
1325 short int var322
/* : Bool */;
1326 val
* var323
/* : List[MClassType] */;
1327 val
* var_todo_types
/* var todo_types: List[MClassType] */;
1328 val
* var325
/* : HashSet[MClassType] */;
1329 val
* var327
/* : HashSet[MClassType] */;
1330 short int var328
/* : Bool */;
1331 short int var329
/* : Bool */;
1332 val
* var330
/* : nullable Object */;
1333 val
* var_t
/* var t: MClassType */;
1334 val
* var331
/* : HashSet[MClassType] */;
1335 val
* var333
/* : HashSet[MClassType] */;
1336 val
* var334
/* : Iterator[Object] */;
1337 short int var335
/* : Bool */;
1338 val
* var336
/* : nullable Object */;
1339 val
* var_ot
/* var ot: MClassType */;
1340 val
* var337
/* : MModule */;
1341 val
* var339
/* : MModule */;
1342 short int var340
/* : Bool */;
1343 short int var341
/* : Bool */;
1344 val
* var343
/* : MModule */;
1345 val
* var345
/* : MModule */;
1346 val
* var346
/* : MClassType */;
1347 val
* var_rt
/* var rt: MClassType */;
1348 val
* var347
/* : HashSet[MClassType] */;
1349 val
* var349
/* : HashSet[MClassType] */;
1350 short int var350
/* : Bool */;
1351 val
* var351
/* : HashSet[MClassType] */;
1352 val
* var353
/* : HashSet[MClassType] */;
1353 val
* var355
/* : HashSet[MType] */;
1354 val
* var357
/* : HashSet[MType] */;
1355 val
* var358
/* : Iterator[Object] */;
1356 short int var359
/* : Bool */;
1357 val
* var360
/* : nullable Object */;
1358 val
* var_ot361
/* var ot: MType */;
1359 val
* var362
/* : HashSet[MClassType] */;
1360 val
* var364
/* : HashSet[MClassType] */;
1361 val
* var365
/* : Iterator[Object] */;
1362 short int var366
/* : Bool */;
1363 val
* var367
/* : nullable Object */;
1364 val
* var_t368
/* var t: MClassType */;
1365 val
* var369
/* : MModule */;
1366 val
* var371
/* : MModule */;
1367 short int var372
/* : Bool */;
1368 short int var373
/* : Bool */;
1369 val
* var375
/* : MModule */;
1370 val
* var377
/* : MModule */;
1371 val
* var378
/* : MType */;
1372 val
* var_rt379
/* var rt: MType */;
1373 val
* var380
/* : HashSet[MType] */;
1374 val
* var382
/* : HashSet[MType] */;
1376 { /* Inline rapid_type_analysis#RapidTypeAnalysis#mainmodule (self) on <self:RapidTypeAnalysis> */
1377 var2
= self
->attrs
[COLOR_rapid_type_analysis__RapidTypeAnalysis___mainmodule
].val
; /* _mainmodule on <self:RapidTypeAnalysis> */
1378 if (unlikely(var2
== NULL
)) {
1379 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule");
1380 PRINT_ERROR(" (%s:%d)\n", "src/rapid_type_analysis.nit", 51);
1388 var3
= model__MModule__sys_type(var
);
1390 var_maintype
= var3
;
1392 if (var_maintype
== NULL
) {
1393 var5
= 1; /* is null */
1395 var5
= 0; /* arg is null but recv is not */
1398 { /* Inline kernel#Object#== (var_maintype,var4) on <var_maintype:nullable MClassType> */
1401 { /* Inline kernel#Object#is_same_instance (var_maintype,var_other) on <var_maintype:nullable MClassType(MClassType)> */
1402 var10
= var_maintype
== var_other
;
1419 rapid_type_analysis__RapidTypeAnalysis__add_new(self
, var_maintype
, var_maintype
); /* Direct call rapid_type_analysis#RapidTypeAnalysis#add_new on <self:RapidTypeAnalysis>*/
1422 { /* Inline rapid_type_analysis#RapidTypeAnalysis#mainmodule (self) on <self:RapidTypeAnalysis> */
1423 var13
= self
->attrs
[COLOR_rapid_type_analysis__RapidTypeAnalysis___mainmodule
].val
; /* _mainmodule on <self:RapidTypeAnalysis> */
1424 if (unlikely(var13
== NULL
)) {
1425 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule");
1426 PRINT_ERROR(" (%s:%d)\n", "src/rapid_type_analysis.nit", 51);
1430 RET_LABEL12
:(void)0;
1438 var17
= string__NativeString__to_s_with_length(var15
, var16
);
1443 { /* Inline model#MClassType#mclass (var_maintype) on <var_maintype:nullable MClassType(MClassType)> */
1444 var20
= var_maintype
->attrs
[COLOR_model__MClassType___mclass
].val
; /* _mclass on <var_maintype:nullable MClassType(MClassType)> */
1445 if (unlikely(var20
== NULL
)) {
1446 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
1447 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 969);
1451 RET_LABEL19
:(void)0;
1455 var21
= model__MModule__try_get_primitive_method(var11
, var14
, var18
);
1457 var_initprop
= var21
;
1459 if (var_initprop
== NULL
) {
1460 var23
= 0; /* is null */
1462 var23
= 1; /* arg is null and recv is not */
1465 { /* Inline kernel#Object#!= (var_initprop,var22) on <var_initprop:nullable MMethod> */
1466 var_other26
= var22
;
1468 var28
= ((short int (*)(val
*, val
*))(var_initprop
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var_initprop
, var_other26
) /* == on <var_initprop:nullable MMethod(MMethod)>*/;
1474 RET_LABEL25
:(void)0;
1480 rapid_type_analysis__RapidTypeAnalysis__add_send(self
, var_maintype
, var_initprop
); /* Direct call rapid_type_analysis#RapidTypeAnalysis#add_send on <self:RapidTypeAnalysis>*/
1485 { /* Inline rapid_type_analysis#RapidTypeAnalysis#mainmodule (self) on <self:RapidTypeAnalysis> */
1486 var32
= self
->attrs
[COLOR_rapid_type_analysis__RapidTypeAnalysis___mainmodule
].val
; /* _mainmodule on <self:RapidTypeAnalysis> */
1487 if (unlikely(var32
== NULL
)) {
1488 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule");
1489 PRINT_ERROR(" (%s:%d)\n", "src/rapid_type_analysis.nit", 51);
1493 RET_LABEL31
:(void)0;
1501 var37
= string__NativeString__to_s_with_length(var35
, var36
);
1506 { /* Inline model#MClassType#mclass (var_maintype) on <var_maintype:nullable MClassType(MClassType)> */
1507 var40
= var_maintype
->attrs
[COLOR_model__MClassType___mclass
].val
; /* _mclass on <var_maintype:nullable MClassType(MClassType)> */
1508 if (unlikely(var40
== NULL
)) {
1509 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
1510 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 969);
1514 RET_LABEL39
:(void)0;
1518 var41
= model__MModule__try_get_primitive_method(var30
, var34
, var38
);
1520 var_mainprop
= var41
;
1522 if (var_mainprop
== NULL
) {
1523 var43
= 0; /* is null */
1525 var43
= 1; /* arg is null and recv is not */
1528 { /* Inline kernel#Object#!= (var_mainprop,var42) on <var_mainprop:nullable MMethod> */
1529 var_other26
= var42
;
1531 var47
= ((short int (*)(val
*, val
*))(var_mainprop
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var_mainprop
, var_other26
) /* == on <var_mainprop:nullable MMethod(MMethod)>*/;
1537 RET_LABEL45
:(void)0;
1543 rapid_type_analysis__RapidTypeAnalysis__add_send(self
, var_maintype
, var_mainprop
); /* Direct call rapid_type_analysis#RapidTypeAnalysis#add_send on <self:RapidTypeAnalysis>*/
1552 var53
= string__NativeString__to_s_with_length(var51
, var52
);
1557 rapid_type_analysis__RapidTypeAnalysis__force_alive(self
, var50
); /* Direct call rapid_type_analysis#RapidTypeAnalysis#force_alive on <self:RapidTypeAnalysis>*/
1564 var58
= string__NativeString__to_s_with_length(var56
, var57
);
1569 rapid_type_analysis__RapidTypeAnalysis__force_alive(self
, var55
); /* Direct call rapid_type_analysis#RapidTypeAnalysis#force_alive on <self:RapidTypeAnalysis>*/
1576 var63
= string__NativeString__to_s_with_length(var61
, var62
);
1581 rapid_type_analysis__RapidTypeAnalysis__force_alive(self
, var60
); /* Direct call rapid_type_analysis#RapidTypeAnalysis#force_alive on <self:RapidTypeAnalysis>*/
1588 var68
= string__NativeString__to_s_with_length(var66
, var67
);
1593 rapid_type_analysis__RapidTypeAnalysis__force_alive(self
, var65
); /* Direct call rapid_type_analysis#RapidTypeAnalysis#force_alive on <self:RapidTypeAnalysis>*/
1597 { /* Inline rapid_type_analysis#RapidTypeAnalysis#todo (self) on <self:RapidTypeAnalysis> */
1598 var71
= self
->attrs
[COLOR_rapid_type_analysis__RapidTypeAnalysis___todo
].val
; /* _todo on <self:RapidTypeAnalysis> */
1599 if (unlikely(var71
== NULL
)) {
1600 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _todo");
1601 PRINT_ERROR(" (%s:%d)\n", "src/rapid_type_analysis.nit", 174);
1605 RET_LABEL70
:(void)0;
1609 var72
= list__List__is_empty(var69
);
1614 { /* Inline rapid_type_analysis#RapidTypeAnalysis#todo (self) on <self:RapidTypeAnalysis> */
1615 var76
= self
->attrs
[COLOR_rapid_type_analysis__RapidTypeAnalysis___todo
].val
; /* _todo on <self:RapidTypeAnalysis> */
1616 if (unlikely(var76
== NULL
)) {
1617 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _todo");
1618 PRINT_ERROR(" (%s:%d)\n", "src/rapid_type_analysis.nit", 174);
1622 RET_LABEL75
:(void)0;
1626 var77
= list__List__shift(var74
);
1628 var_mmethoddef
= var77
;
1630 { /* Inline model#MPropDef#mproperty (var_mmethoddef) on <var_mmethoddef:MMethodDef> */
1631 var80
= var_mmethoddef
->attrs
[COLOR_model__MPropDef___mproperty
].val
; /* _mproperty on <var_mmethoddef:MMethodDef> */
1632 if (unlikely(var80
== NULL
)) {
1633 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty");
1634 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1882);
1638 RET_LABEL79
:(void)0;
1642 var81
= NEW_rapid_type_analysis__RapidTypeVisitor(&type_rapid_type_analysis__RapidTypeVisitor
);
1644 { /* Inline model#MPropDef#mclassdef (var_mmethoddef) on <var_mmethoddef:MMethodDef> */
1645 var84
= var_mmethoddef
->attrs
[COLOR_model__MPropDef___mclassdef
].val
; /* _mclassdef on <var_mmethoddef:MMethodDef> */
1646 if (unlikely(var84
== NULL
)) {
1647 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdef");
1648 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1879);
1652 RET_LABEL83
:(void)0;
1656 { /* Inline model#MClassDef#bound_mtype (var82) on <var82:MClassDef> */
1657 var87
= var82
->attrs
[COLOR_model__MClassDef___bound_mtype
].val
; /* _bound_mtype on <var82:MClassDef> */
1658 if (unlikely(var87
== NULL
)) {
1659 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _bound_mtype");
1660 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 477);
1664 RET_LABEL86
:(void)0;
1668 rapid_type_analysis__RapidTypeVisitor__init(var81
, self
, var85
, var_mmethoddef
); /* Direct call rapid_type_analysis#RapidTypeVisitor#init on <var81:RapidTypeVisitor>*/
1672 { /* Inline model#MMethodDef#msignature (var_mmethoddef) on <var_mmethoddef:MMethodDef> */
1673 var90
= var_mmethoddef
->attrs
[COLOR_model__MMethodDef___msignature
].val
; /* _msignature on <var_mmethoddef:MMethodDef> */
1675 RET_LABEL89
:(void)0;
1678 if (var88
== NULL
) {
1679 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1680 PRINT_ERROR(" (%s:%d)\n", "src/rapid_type_analysis.nit", 210);
1683 { /* Inline model#MSignature#vararg_rank (var88) on <var88:nullable MSignature> */
1684 if (unlikely(var88
== NULL
)) {
1685 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1686 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1497);
1689 var93
= var88
->attrs
[COLOR_model__MSignature___vararg_rank
].l
; /* _vararg_rank on <var88:nullable MSignature> */
1691 RET_LABEL92
:(void)0;
1694 var_vararg_rank
= var91
;
1697 { /* Inline kernel#Int#unary - (var94) on <var94:Int> */
1701 RET_LABEL96
:(void)0;
1705 { /* Inline kernel#Int#> (var_vararg_rank,var95) on <var_vararg_rank:Int> */
1706 /* Covariant cast for argument 0 (i) <var95:Int> isa OTHER */
1707 /* <var95:Int> isa OTHER */
1708 var100
= 1; /* easy <var95:Int> isa OTHER*/
1709 if (unlikely(!var100
)) {
1710 var_class_name
= type_kernel__Int
.name
;
1711 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name
);
1712 PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 327);
1715 var101
= var_vararg_rank
> var95
;
1718 RET_LABEL99
:(void)0;
1723 { /* Inline rapid_type_analysis#RapidTypeAnalysis#modelbuilder (self) on <self:RapidTypeAnalysis> */
1724 var104
= self
->attrs
[COLOR_rapid_type_analysis__RapidTypeAnalysis___modelbuilder
].val
; /* _modelbuilder on <self:RapidTypeAnalysis> */
1725 if (unlikely(var104
== NULL
)) {
1726 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
1727 PRINT_ERROR(" (%s:%d)\n", "src/rapid_type_analysis.nit", 48);
1731 RET_LABEL103
:(void)0;
1735 { /* Inline modelize_property#ModelBuilder#mpropdef2npropdef (var102) on <var102:ModelBuilder> */
1736 var107
= var102
->attrs
[COLOR_modelize_property__ModelBuilder___mpropdef2npropdef
].val
; /* _mpropdef2npropdef on <var102:ModelBuilder> */
1737 if (unlikely(var107
== NULL
)) {
1738 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mpropdef2npropdef");
1739 PRINT_ERROR(" (%s:%d)\n", "src/modelize_property.nit", 39);
1743 RET_LABEL106
:(void)0;
1747 var108
= hash_collection__HashMap___91d_93d(var105
, var_mmethoddef
);
1751 { /* Inline model#MMethodDef#msignature (var_mmethoddef) on <var_mmethoddef:MMethodDef> */
1752 var111
= var_mmethoddef
->attrs
[COLOR_model__MMethodDef___msignature
].val
; /* _msignature on <var_mmethoddef:MMethodDef> */
1754 RET_LABEL110
:(void)0;
1757 if (var109
== NULL
) {
1758 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1759 PRINT_ERROR(" (%s:%d)\n", "src/rapid_type_analysis.nit", 213);
1762 { /* Inline model#MSignature#mparameters (var109) on <var109:nullable MSignature> */
1763 if (unlikely(var109
== NULL
)) {
1764 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1765 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1452);
1768 var114
= var109
->attrs
[COLOR_model__MSignature___mparameters
].val
; /* _mparameters on <var109:nullable MSignature> */
1769 if (unlikely(var114
== NULL
)) {
1770 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mparameters");
1771 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1452);
1775 RET_LABEL113
:(void)0;
1779 var115
= array__Array___91d_93d(var112
, var_vararg_rank
);
1782 { /* Inline model#MParameter#mtype (var115) on <var115:nullable Object(MParameter)> */
1783 var118
= var115
->attrs
[COLOR_model__MParameter___mtype
].val
; /* _mtype on <var115:nullable Object(MParameter)> */
1784 if (unlikely(var118
== NULL
)) {
1785 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
1786 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1552);
1790 RET_LABEL117
:(void)0;
1793 var_elttype
= var116
;
1795 { /* Inline rapid_type_analysis#RapidTypeAnalysis#mainmodule (self) on <self:RapidTypeAnalysis> */
1796 var121
= self
->attrs
[COLOR_rapid_type_analysis__RapidTypeAnalysis___mainmodule
].val
; /* _mainmodule on <self:RapidTypeAnalysis> */
1797 if (unlikely(var121
== NULL
)) {
1798 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule");
1799 PRINT_ERROR(" (%s:%d)\n", "src/rapid_type_analysis.nit", 51);
1803 RET_LABEL120
:(void)0;
1807 var123
= varonce122
;
1811 var126
= string__NativeString__to_s_with_length(var124
, var125
);
1813 varonce122
= var123
;
1816 var127
= model__MModule__get_primitive_class(var119
, var123
);
1818 var128
= NEW_array__Array(&type_array__Arraymodel__MType
);
1821 array__Array__with_capacity(var128
, var129
); /* Direct call array#Array#with_capacity on <var128:Array[MType]>*/
1825 array__AbstractArray__push(var_
, var_elttype
); /* Direct call array#AbstractArray#push on <var_:Array[MType]>*/
1828 var130
= model__MClass__get_mtype(var127
, var_
);
1830 var_vararg
= var130
;
1832 rapid_type_analysis__RapidTypeVisitor__add_type(var_v
, var_vararg
); /* Direct call rapid_type_analysis#RapidTypeVisitor#add_type on <var_v:RapidTypeVisitor>*/
1835 { /* Inline rapid_type_analysis#RapidTypeAnalysis#mainmodule (self) on <self:RapidTypeAnalysis> */
1836 var133
= self
->attrs
[COLOR_rapid_type_analysis__RapidTypeAnalysis___mainmodule
].val
; /* _mainmodule on <self:RapidTypeAnalysis> */
1837 if (unlikely(var133
== NULL
)) {
1838 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule");
1839 PRINT_ERROR(" (%s:%d)\n", "src/rapid_type_analysis.nit", 51);
1843 RET_LABEL132
:(void)0;
1847 var135
= varonce134
;
1849 var136
= "NativeArray";
1851 var138
= string__NativeString__to_s_with_length(var136
, var137
);
1853 varonce134
= var135
;
1856 var139
= model__MModule__get_primitive_class(var131
, var135
);
1858 var140
= NEW_array__Array(&type_array__Arraymodel__MType
);
1861 array__Array__with_capacity(var140
, var141
); /* Direct call array#Array#with_capacity on <var140:Array[MType]>*/
1865 array__AbstractArray__push(var_142
, var_elttype
); /* Direct call array#AbstractArray#push on <var_142:Array[MType]>*/
1868 var143
= model__MClass__get_mtype(var139
, var_142
);
1870 var_native
= var143
;
1872 rapid_type_analysis__RapidTypeVisitor__add_type(var_v
, var_native
); /* Direct call rapid_type_analysis#RapidTypeVisitor#add_type on <var_v:RapidTypeVisitor>*/
1875 { /* Inline rapid_type_analysis#RapidTypeAnalysis#modelbuilder (self) on <self:RapidTypeAnalysis> */
1876 var146
= self
->attrs
[COLOR_rapid_type_analysis__RapidTypeAnalysis___modelbuilder
].val
; /* _modelbuilder on <self:RapidTypeAnalysis> */
1877 if (unlikely(var146
== NULL
)) {
1878 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
1879 PRINT_ERROR(" (%s:%d)\n", "src/rapid_type_analysis.nit", 48);
1883 RET_LABEL145
:(void)0;
1887 var148
= varonce147
;
1889 var149
= "with_native";
1891 var151
= string__NativeString__to_s_with_length(var149
, var150
);
1893 varonce147
= var148
;
1896 { /* Inline model#MClassType#mclass (var_vararg) on <var_vararg:MClassType> */
1897 var154
= var_vararg
->attrs
[COLOR_model__MClassType___mclass
].val
; /* _mclass on <var_vararg:MClassType> */
1898 if (unlikely(var154
== NULL
)) {
1899 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
1900 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 969);
1904 RET_LABEL153
:(void)0;
1908 { /* Inline rapid_type_analysis#RapidTypeAnalysis#mainmodule (self) on <self:RapidTypeAnalysis> */
1909 var157
= self
->attrs
[COLOR_rapid_type_analysis__RapidTypeAnalysis___mainmodule
].val
; /* _mainmodule on <self:RapidTypeAnalysis> */
1910 if (unlikely(var157
== NULL
)) {
1911 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule");
1912 PRINT_ERROR(" (%s:%d)\n", "src/rapid_type_analysis.nit", 51);
1916 RET_LABEL156
:(void)0;
1920 var158
= modelbuilder__ModelBuilder__force_get_primitive_method(var144
, var_node
, var148
, var152
, var155
);
1923 rapid_type_analysis__RapidTypeVisitor__add_monomorphic_send(var_v
, var_vararg
, var158
); /* Direct call rapid_type_analysis#RapidTypeVisitor#add_monomorphic_send on <var_v:RapidTypeVisitor>*/
1928 { /* Inline model#MMethodDef#msignature (var_mmethoddef) on <var_mmethoddef:MMethodDef> */
1929 var161
= var_mmethoddef
->attrs
[COLOR_model__MMethodDef___msignature
].val
; /* _msignature on <var_mmethoddef:MMethodDef> */
1931 RET_LABEL160
:(void)0;
1934 if (unlikely(var159
== NULL
)) {
1935 PRINT_ERROR("Runtime error: %s", "Cast failed");
1936 PRINT_ERROR(" (%s:%d)\n", "src/rapid_type_analysis.nit", 222);
1941 var162
= model__MProperty__intro(var_mmeth
);
1944 { /* Inline model#MMethodDef#msignature (var162) on <var162:MPropDef(MMethodDef)> */
1945 var165
= var162
->attrs
[COLOR_model__MMethodDef___msignature
].val
; /* _msignature on <var162:MPropDef(MMethodDef)> */
1947 RET_LABEL164
:(void)0;
1950 if (unlikely(var163
== NULL
)) {
1951 PRINT_ERROR("Runtime error: %s", "Cast failed");
1952 PRINT_ERROR(" (%s:%d)\n", "src/rapid_type_analysis.nit", 223);
1956 var166
= NEW_range__Range(&type_range__Rangekernel__Int
);
1959 var168
= model__MSignature__arity(var_sig
);
1962 var169
= BOX_kernel__Int(var167
); /* autobox from Int to Discrete */
1963 var170
= BOX_kernel__Int(var168
); /* autobox from Int to Discrete */
1964 range__Range__without_last(var166
, var169
, var170
); /* Direct call range#Range#without_last on <var166:Range[Int]>*/
1967 var171
= range__Range__iterator(var166
);
1971 var172
= ((short int (*)(val
*))(var171
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var171
) /* is_ok on <var171:Iterator[Discrete]>*/;
1975 var173
= ((val
* (*)(val
*))(var171
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var171
) /* item on <var171:Iterator[Discrete]>*/;
1977 var174
= ((struct instance_kernel__Int
*)var173
)->value
; /* autounbox from nullable Object to Int */;
1980 { /* Inline model#MSignature#mparameters (var_osig) on <var_osig:MSignature> */
1981 var177
= var_osig
->attrs
[COLOR_model__MSignature___mparameters
].val
; /* _mparameters on <var_osig:MSignature> */
1982 if (unlikely(var177
== NULL
)) {
1983 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mparameters");
1984 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1452);
1988 RET_LABEL176
:(void)0;
1992 var178
= array__Array___91d_93d(var175
, var_i
);
1995 { /* Inline model#MParameter#mtype (var178) on <var178:nullable Object(MParameter)> */
1996 var181
= var178
->attrs
[COLOR_model__MParameter___mtype
].val
; /* _mtype on <var178:nullable Object(MParameter)> */
1997 if (unlikely(var181
== NULL
)) {
1998 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
1999 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1552);
2003 RET_LABEL180
:(void)0;
2006 var_origtype
= var179
;
2008 var182
= ((short int (*)(val
*))(var_origtype
->class->vft
[COLOR_model__MType__need_anchor
]))(var_origtype
) /* need_anchor on <var_origtype:MType>*/;
2012 goto CONTINUE_label
;
2016 { /* Inline model#MSignature#mparameters (var_sig) on <var_sig:MSignature> */
2017 var186
= var_sig
->attrs
[COLOR_model__MSignature___mparameters
].val
; /* _mparameters on <var_sig:MSignature> */
2018 if (unlikely(var186
== NULL
)) {
2019 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mparameters");
2020 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1452);
2024 RET_LABEL185
:(void)0;
2028 var187
= array__Array___91d_93d(var184
, var_i
);
2031 { /* Inline model#MParameter#mtype (var187) on <var187:nullable Object(MParameter)> */
2032 var190
= var187
->attrs
[COLOR_model__MParameter___mtype
].val
; /* _mtype on <var187:nullable Object(MParameter)> */
2033 if (unlikely(var190
== NULL
)) {
2034 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
2035 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1552);
2039 RET_LABEL189
:(void)0;
2042 var_paramtype
= var188
;
2044 rapid_type_analysis__RapidTypeAnalysis__add_cast(self
, var_paramtype
); /* Direct call rapid_type_analysis#RapidTypeAnalysis#add_cast on <self:RapidTypeAnalysis>*/
2046 CONTINUE_label
: (void)0;
2048 ((void (*)(val
*))(var171
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var171
) /* next on <var171:Iterator[Discrete]>*/;
2051 BREAK_label
: (void)0;
2053 { /* Inline rapid_type_analysis#RapidTypeAnalysis#modelbuilder (self) on <self:RapidTypeAnalysis> */
2054 var193
= self
->attrs
[COLOR_rapid_type_analysis__RapidTypeAnalysis___modelbuilder
].val
; /* _modelbuilder on <self:RapidTypeAnalysis> */
2055 if (unlikely(var193
== NULL
)) {
2056 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
2057 PRINT_ERROR(" (%s:%d)\n", "src/rapid_type_analysis.nit", 48);
2061 RET_LABEL192
:(void)0;
2065 { /* Inline modelize_property#ModelBuilder#mpropdef2npropdef (var191) on <var191:ModelBuilder> */
2066 var196
= var191
->attrs
[COLOR_modelize_property__ModelBuilder___mpropdef2npropdef
].val
; /* _mpropdef2npropdef on <var191:ModelBuilder> */
2067 if (unlikely(var196
== NULL
)) {
2068 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mpropdef2npropdef");
2069 PRINT_ERROR(" (%s:%d)\n", "src/modelize_property.nit", 39);
2073 RET_LABEL195
:(void)0;
2077 var197
= abstract_collection__MapRead__has_key(var194
, var_mmethoddef
);
2082 { /* Inline model#MProperty#name (var_mmeth) on <var_mmeth:MMethod> */
2083 var201
= var_mmeth
->attrs
[COLOR_model__MProperty___name
].val
; /* _name on <var_mmeth:MMethod> */
2084 if (unlikely(var201
== NULL
)) {
2085 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
2086 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1607);
2090 RET_LABEL200
:(void)0;
2094 var203
= varonce202
;
2098 var206
= string__NativeString__to_s_with_length(var204
, var205
);
2100 varonce202
= var203
;
2103 var208
= string__FlatString___61d_61d(var199
, var203
);
2108 { /* Inline rapid_type_analysis#RapidTypeAnalysis#modelbuilder (self) on <self:RapidTypeAnalysis> */
2109 var211
= self
->attrs
[COLOR_rapid_type_analysis__RapidTypeAnalysis___modelbuilder
].val
; /* _modelbuilder on <self:RapidTypeAnalysis> */
2110 if (unlikely(var211
== NULL
)) {
2111 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
2112 PRINT_ERROR(" (%s:%d)\n", "src/rapid_type_analysis.nit", 48);
2116 RET_LABEL210
:(void)0;
2120 { /* Inline modelize_class#ModelBuilder#mclassdef2nclassdef (var209) on <var209:ModelBuilder> */
2121 var214
= var209
->attrs
[COLOR_modelize_class__ModelBuilder___mclassdef2nclassdef
].val
; /* _mclassdef2nclassdef on <var209:ModelBuilder> */
2122 if (unlikely(var214
== NULL
)) {
2123 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdef2nclassdef");
2124 PRINT_ERROR(" (%s:%d)\n", "src/modelize_class.nit", 399);
2128 RET_LABEL213
:(void)0;
2132 { /* Inline model#MPropDef#mclassdef (var_mmethoddef) on <var_mmethoddef:MMethodDef> */
2133 var217
= var_mmethoddef
->attrs
[COLOR_model__MPropDef___mclassdef
].val
; /* _mclassdef on <var_mmethoddef:MMethodDef> */
2134 if (unlikely(var217
== NULL
)) {
2135 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdef");
2136 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1879);
2140 RET_LABEL216
:(void)0;
2144 var218
= hash_collection__HashMap___91d_93d(var212
, var215
);
2146 var_nclassdef
= var218
;
2148 { /* Inline modelize_property#AClassdef#super_inits (var_nclassdef) on <var_nclassdef:AClassdef> */
2149 var221
= var_nclassdef
->attrs
[COLOR_modelize_property__AClassdef___super_inits
].val
; /* _super_inits on <var_nclassdef:AClassdef> */
2151 RET_LABEL220
:(void)0;
2154 var_super_inits
= var219
;
2156 if (var_super_inits
== NULL
) {
2157 var223
= 0; /* is null */
2159 var223
= 1; /* arg is null and recv is not */
2162 { /* Inline kernel#Object#!= (var_super_inits,var222) on <var_super_inits:nullable Collection[MMethod]> */
2163 var_other26
= var222
;
2165 var227
= ((short int (*)(val
*, val
*))(var_super_inits
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var_super_inits
, var_other26
) /* == on <var_super_inits:nullable Collection[MMethod](Collection[MMethod])>*/;
2171 RET_LABEL225
:(void)0;
2177 var229
= ((val
* (*)(val
*))(var_super_inits
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var_super_inits
) /* iterator on <var_super_inits:nullable Collection[MMethod](Collection[MMethod])>*/;
2181 var230
= ((short int (*)(val
*))(var229
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var229
) /* is_ok on <var229:Iterator[nullable Object]>*/;
2185 var231
= ((val
* (*)(val
*))(var229
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var229
) /* item on <var229:Iterator[nullable Object]>*/;
2189 { /* Inline rapid_type_analysis#RapidTypeVisitor#receiver (var_v) on <var_v:RapidTypeVisitor> */
2190 var234
= var_v
->attrs
[COLOR_rapid_type_analysis__RapidTypeVisitor___receiver
].val
; /* _receiver on <var_v:RapidTypeVisitor> */
2191 if (unlikely(var234
== NULL
)) {
2192 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _receiver");
2193 PRINT_ERROR(" (%s:%d)\n", "src/rapid_type_analysis.nit", 431);
2197 RET_LABEL233
:(void)0;
2201 rapid_type_analysis__RapidTypeVisitor__add_monomorphic_send(var_v
, var232
, var_su
); /* Direct call rapid_type_analysis#RapidTypeVisitor#add_monomorphic_send on <var_v:RapidTypeVisitor>*/
2203 CONTINUE_label235
: (void)0;
2205 ((void (*)(val
*))(var229
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var229
) /* next on <var229:Iterator[nullable Object]>*/;
2208 BREAK_label235
: (void)0;
2212 PRINT_ERROR("Runtime error: %s", "Aborted");
2213 PRINT_ERROR(" (%s:%d)\n", "src/rapid_type_analysis.nit", 244);
2216 goto CONTINUE_label236
;
2220 { /* Inline rapid_type_analysis#RapidTypeAnalysis#modelbuilder (self) on <self:RapidTypeAnalysis> */
2221 var239
= self
->attrs
[COLOR_rapid_type_analysis__RapidTypeAnalysis___modelbuilder
].val
; /* _modelbuilder on <self:RapidTypeAnalysis> */
2222 if (unlikely(var239
== NULL
)) {
2223 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
2224 PRINT_ERROR(" (%s:%d)\n", "src/rapid_type_analysis.nit", 48);
2228 RET_LABEL238
:(void)0;
2232 { /* Inline modelize_property#ModelBuilder#mpropdef2npropdef (var237) on <var237:ModelBuilder> */
2233 var242
= var237
->attrs
[COLOR_modelize_property__ModelBuilder___mpropdef2npropdef
].val
; /* _mpropdef2npropdef on <var237:ModelBuilder> */
2234 if (unlikely(var242
== NULL
)) {
2235 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mpropdef2npropdef");
2236 PRINT_ERROR(" (%s:%d)\n", "src/modelize_property.nit", 39);
2240 RET_LABEL241
:(void)0;
2244 var243
= hash_collection__HashMap___91d_93d(var240
, var_mmethoddef
);
2246 var_npropdef
= var243
;
2247 /* <var_npropdef:APropdef> isa AMethPropdef */
2248 cltype245
= type_parser_nodes__AMethPropdef
.color
;
2249 idtype246
= type_parser_nodes__AMethPropdef
.id
;
2250 if(cltype245
>= var_npropdef
->type
->table_size
) {
2253 var244
= var_npropdef
->type
->type_table
[cltype245
] == idtype246
;
2257 { /* Inline auto_super_init#AMethPropdef#auto_super_inits (var_npropdef) on <var_npropdef:APropdef(AMethPropdef)> */
2258 var249
= var_npropdef
->attrs
[COLOR_auto_super_init__AMethPropdef___auto_super_inits
].val
; /* _auto_super_inits on <var_npropdef:APropdef(AMethPropdef)> */
2260 RET_LABEL248
:(void)0;
2263 var_auto_super_inits
= var247
;
2265 if (var_auto_super_inits
== NULL
) {
2266 var251
= 0; /* is null */
2268 var251
= 1; /* arg is null and recv is not */
2271 { /* Inline kernel#Object#!= (var_auto_super_inits,var250) on <var_auto_super_inits:nullable Array[CallSite]> */
2272 var_other26
= var250
;
2274 var255
= ((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])>*/;
2280 RET_LABEL253
:(void)0;
2286 var257
= array__AbstractArrayRead__iterator(var_auto_super_inits
);
2290 var258
= array__ArrayIterator__is_ok(var257
);
2294 var259
= array__ArrayIterator__item(var257
);
2296 var_auto_super_init
= var259
;
2298 rapid_type_analysis__RapidTypeVisitor__add_callsite(var_v
, var_auto_super_init
); /* Direct call rapid_type_analysis#RapidTypeVisitor#add_callsite on <var_v:RapidTypeVisitor>*/
2300 CONTINUE_label260
: (void)0;
2302 array__ArrayIterator__next(var257
); /* Direct call array#ArrayIterator#next on <var257:ArrayIterator[nullable Object]>*/
2305 BREAK_label260
: (void)0;
2311 { /* Inline model#MMethod#is_new (var_mmeth) on <var_mmeth:MMethod> */
2312 var263
= var_mmeth
->attrs
[COLOR_model__MMethod___is_new
].s
; /* _is_new on <var_mmeth:MMethod> */
2314 RET_LABEL262
:(void)0;
2319 { /* Inline rapid_type_analysis#RapidTypeVisitor#receiver (var_v) on <var_v:RapidTypeVisitor> */
2320 var266
= var_v
->attrs
[COLOR_rapid_type_analysis__RapidTypeVisitor___receiver
].val
; /* _receiver on <var_v:RapidTypeVisitor> */
2321 if (unlikely(var266
== NULL
)) {
2322 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _receiver");
2323 PRINT_ERROR(" (%s:%d)\n", "src/rapid_type_analysis.nit", 431);
2327 RET_LABEL265
:(void)0;
2331 rapid_type_analysis__RapidTypeVisitor__add_type(var_v
, var264
); /* Direct call rapid_type_analysis#RapidTypeVisitor#add_type on <var_v:RapidTypeVisitor>*/
2335 { /* Inline model#MMethodDef#is_intern (var_mmethoddef) on <var_mmethoddef:MMethodDef> */
2336 var270
= var_mmethoddef
->attrs
[COLOR_model__MMethodDef___is_intern
].s
; /* _is_intern on <var_mmethoddef:MMethodDef> */
2338 RET_LABEL269
:(void)0;
2346 { /* Inline model#MMethodDef#is_extern (var_mmethoddef) on <var_mmethoddef:MMethodDef> */
2347 var274
= var_mmethoddef
->attrs
[COLOR_model__MMethodDef___is_extern
].s
; /* _is_extern on <var_mmethoddef:MMethodDef> */
2349 RET_LABEL273
:(void)0;
2356 { /* Inline model#MMethodDef#msignature (var_mmethoddef) on <var_mmethoddef:MMethodDef> */
2357 var277
= var_mmethoddef
->attrs
[COLOR_model__MMethodDef___msignature
].val
; /* _msignature on <var_mmethoddef:MMethodDef> */
2359 RET_LABEL276
:(void)0;
2362 if (var275
== NULL
) {
2363 PRINT_ERROR("Runtime error: %s", "Receiver is null");
2364 PRINT_ERROR(" (%s:%d)\n", "src/rapid_type_analysis.nit", 264);
2367 { /* Inline model#MSignature#return_mtype (var275) on <var275:nullable MSignature> */
2368 if (unlikely(var275
== NULL
)) {
2369 PRINT_ERROR("Runtime error: %s", "Receiver is null");
2370 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1455);
2373 var280
= var275
->attrs
[COLOR_model__MSignature___return_mtype
].val
; /* _return_mtype on <var275:nullable MSignature> */
2375 RET_LABEL279
:(void)0;
2380 if (var_ret
== NULL
) {
2381 var285
= 0; /* is null */
2383 var285
= 1; /* arg is null and recv is not */
2386 { /* Inline kernel#Object#!= (var_ret,var284) on <var_ret:nullable MType> */
2387 var_other26
= var284
;
2389 var289
= ((short int (*)(val
*, val
*))(var_ret
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var_ret
, var_other26
) /* == on <var_ret:nullable MType(MType)>*/;
2395 RET_LABEL287
:(void)0;
2401 /* <var_ret:nullable MType(MType)> isa MClassType */
2402 cltype293
= type_model__MClassType
.color
;
2403 idtype294
= type_model__MClassType
.id
;
2404 if(cltype293
>= var_ret
->type
->table_size
) {
2407 var292
= var_ret
->type
->type_table
[cltype293
] == idtype294
;
2416 { /* Inline model#MClassType#mclass (var_ret) on <var_ret:nullable MType(MClassType)> */
2417 var298
= var_ret
->attrs
[COLOR_model__MClassType___mclass
].val
; /* _mclass on <var_ret:nullable MType(MClassType)> */
2418 if (unlikely(var298
== NULL
)) {
2419 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
2420 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 969);
2424 RET_LABEL297
:(void)0;
2428 { /* Inline model#MClass#kind (var296) on <var296:MClass> */
2429 var301
= var296
->attrs
[COLOR_model__MClass___kind
].val
; /* _kind on <var296:MClass> */
2430 if (unlikely(var301
== NULL
)) {
2431 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _kind");
2432 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 355);
2436 RET_LABEL300
:(void)0;
2440 var302
= model__Object__abstract_kind(self
);
2443 { /* Inline kernel#Object#!= (var299,var302) on <var299:MClassKind> */
2444 var_other26
= var302
;
2446 var307
= ((short int (*)(val
*, val
*))(var299
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var299
, var_other26
) /* == on <var299:MClassKind>*/;
2452 RET_LABEL305
:(void)0;
2463 { /* Inline model#MClassType#mclass (var_ret) on <var_ret:nullable MType(MClassType)> */
2464 var312
= var_ret
->attrs
[COLOR_model__MClassType___mclass
].val
; /* _mclass on <var_ret:nullable MType(MClassType)> */
2465 if (unlikely(var312
== NULL
)) {
2466 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
2467 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 969);
2471 RET_LABEL311
:(void)0;
2475 { /* Inline model#MClass#kind (var310) on <var310:MClass> */
2476 var315
= var310
->attrs
[COLOR_model__MClass___kind
].val
; /* _kind on <var310:MClass> */
2477 if (unlikely(var315
== NULL
)) {
2478 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _kind");
2479 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 355);
2483 RET_LABEL314
:(void)0;
2487 var316
= model__Object__interface_kind(self
);
2490 { /* Inline kernel#Object#!= (var313,var316) on <var313:MClassKind> */
2491 var_other26
= var316
;
2493 var321
= ((short int (*)(val
*, val
*))(var313
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var313
, var_other26
) /* == on <var313:MClassKind>*/;
2499 RET_LABEL319
:(void)0;
2509 rapid_type_analysis__RapidTypeVisitor__add_type(var_v
, var_ret
); /* Direct call rapid_type_analysis#RapidTypeVisitor#add_type on <var_v:RapidTypeVisitor>*/
2517 parser_nodes__Visitor__enter_visit(var_v
, var_npropdef
); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:RapidTypeVisitor>*/
2519 CONTINUE_label236
: (void)0;
2521 BREAK_label236
: (void)0;
2522 var323
= NEW_list__List(&type_list__Listmodel__MClassType
);
2524 { /* Inline list#List#init (var323) on <var323:List[MClassType]> */
2525 RET_LABEL324
:(void)0;
2528 var_todo_types
= var323
;
2530 { /* Inline rapid_type_analysis#RapidTypeAnalysis#live_types (self) on <self:RapidTypeAnalysis> */
2531 var327
= self
->attrs
[COLOR_rapid_type_analysis__RapidTypeAnalysis___live_types
].val
; /* _live_types on <self:RapidTypeAnalysis> */
2532 if (unlikely(var327
== NULL
)) {
2533 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_types");
2534 PRINT_ERROR(" (%s:%d)\n", "src/rapid_type_analysis.nit", 55);
2538 RET_LABEL326
:(void)0;
2542 abstract_collection__SimpleCollection__add_all(var_todo_types
, var325
); /* Direct call abstract_collection#SimpleCollection#add_all on <var_todo_types:List[MClassType]>*/
2546 var328
= list__List__is_empty(var_todo_types
);
2551 var330
= list__List__shift(var_todo_types
);
2555 { /* Inline rapid_type_analysis#RapidTypeAnalysis#live_open_types (self) on <self:RapidTypeAnalysis> */
2556 var333
= self
->attrs
[COLOR_rapid_type_analysis__RapidTypeAnalysis___live_open_types
].val
; /* _live_open_types on <self:RapidTypeAnalysis> */
2557 if (unlikely(var333
== NULL
)) {
2558 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_open_types");
2559 PRINT_ERROR(" (%s:%d)\n", "src/rapid_type_analysis.nit", 60);
2563 RET_LABEL332
:(void)0;
2567 var334
= hash_collection__HashSet__iterator(var331
);
2571 var335
= ((short int (*)(val
*))(var334
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var334
) /* is_ok on <var334:Iterator[Object]>*/;
2575 var336
= ((val
* (*)(val
*))(var334
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var334
) /* item on <var334:Iterator[Object]>*/;
2579 { /* Inline rapid_type_analysis#RapidTypeAnalysis#mainmodule (self) on <self:RapidTypeAnalysis> */
2580 var339
= self
->attrs
[COLOR_rapid_type_analysis__RapidTypeAnalysis___mainmodule
].val
; /* _mainmodule on <self:RapidTypeAnalysis> */
2581 if (unlikely(var339
== NULL
)) {
2582 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule");
2583 PRINT_ERROR(" (%s:%d)\n", "src/rapid_type_analysis.nit", 51);
2587 RET_LABEL338
:(void)0;
2591 var340
= ((short int (*)(val
*, val
*, val
*, val
*))(var_ot
->class->vft
[COLOR_model__MType__can_resolve_for
]))(var_ot
, var_t
, var_t
, var337
) /* can_resolve_for on <var_ot:MClassType>*/;
2595 goto CONTINUE_label342
;
2599 { /* Inline rapid_type_analysis#RapidTypeAnalysis#mainmodule (self) on <self:RapidTypeAnalysis> */
2600 var345
= self
->attrs
[COLOR_rapid_type_analysis__RapidTypeAnalysis___mainmodule
].val
; /* _mainmodule on <self:RapidTypeAnalysis> */
2601 if (unlikely(var345
== NULL
)) {
2602 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule");
2603 PRINT_ERROR(" (%s:%d)\n", "src/rapid_type_analysis.nit", 51);
2607 RET_LABEL344
:(void)0;
2611 var346
= model__MClassType__anchor_to(var_ot
, var343
, var_t
);
2615 { /* Inline rapid_type_analysis#RapidTypeAnalysis#live_types (self) on <self:RapidTypeAnalysis> */
2616 var349
= self
->attrs
[COLOR_rapid_type_analysis__RapidTypeAnalysis___live_types
].val
; /* _live_types on <self:RapidTypeAnalysis> */
2617 if (unlikely(var349
== NULL
)) {
2618 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_types");
2619 PRINT_ERROR(" (%s:%d)\n", "src/rapid_type_analysis.nit", 55);
2623 RET_LABEL348
:(void)0;
2627 var350
= hash_collection__HashSet__has(var347
, var_rt
);
2630 goto CONTINUE_label342
;
2634 { /* Inline rapid_type_analysis#RapidTypeAnalysis#live_types (self) on <self:RapidTypeAnalysis> */
2635 var353
= self
->attrs
[COLOR_rapid_type_analysis__RapidTypeAnalysis___live_types
].val
; /* _live_types on <self:RapidTypeAnalysis> */
2636 if (unlikely(var353
== NULL
)) {
2637 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_types");
2638 PRINT_ERROR(" (%s:%d)\n", "src/rapid_type_analysis.nit", 55);
2642 RET_LABEL352
:(void)0;
2646 hash_collection__HashSet__add(var351
, var_rt
); /* Direct call hash_collection#HashSet#add on <var351:HashSet[MClassType]>*/
2649 abstract_collection__Sequence__add(var_todo_types
, var_rt
); /* Direct call abstract_collection#Sequence#add on <var_todo_types:List[MClassType]>*/
2652 rapid_type_analysis__RapidTypeAnalysis__check_depth(self
, var_rt
); /* Direct call rapid_type_analysis#RapidTypeAnalysis#check_depth on <self:RapidTypeAnalysis>*/
2654 CONTINUE_label342
: (void)0;
2656 ((void (*)(val
*))(var334
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var334
) /* next on <var334:Iterator[Object]>*/;
2659 BREAK_label342
: (void)0;
2660 CONTINUE_label354
: (void)0;
2662 BREAK_label354
: (void)0;
2664 { /* Inline rapid_type_analysis#RapidTypeAnalysis#live_open_cast_types (self) on <self:RapidTypeAnalysis> */
2665 var357
= self
->attrs
[COLOR_rapid_type_analysis__RapidTypeAnalysis___live_open_cast_types
].val
; /* _live_open_cast_types on <self:RapidTypeAnalysis> */
2666 if (unlikely(var357
== NULL
)) {
2667 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_open_cast_types");
2668 PRINT_ERROR(" (%s:%d)\n", "src/rapid_type_analysis.nit", 70);
2672 RET_LABEL356
:(void)0;
2676 var358
= hash_collection__HashSet__iterator(var355
);
2680 var359
= ((short int (*)(val
*))(var358
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var358
) /* is_ok on <var358:Iterator[Object]>*/;
2684 var360
= ((val
* (*)(val
*))(var358
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var358
) /* item on <var358:Iterator[Object]>*/;
2688 { /* Inline rapid_type_analysis#RapidTypeAnalysis#live_types (self) on <self:RapidTypeAnalysis> */
2689 var364
= self
->attrs
[COLOR_rapid_type_analysis__RapidTypeAnalysis___live_types
].val
; /* _live_types on <self:RapidTypeAnalysis> */
2690 if (unlikely(var364
== NULL
)) {
2691 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_types");
2692 PRINT_ERROR(" (%s:%d)\n", "src/rapid_type_analysis.nit", 55);
2696 RET_LABEL363
:(void)0;
2700 var365
= hash_collection__HashSet__iterator(var362
);
2704 var366
= ((short int (*)(val
*))(var365
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var365
) /* is_ok on <var365:Iterator[Object]>*/;
2708 var367
= ((val
* (*)(val
*))(var365
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var365
) /* item on <var365:Iterator[Object]>*/;
2712 { /* Inline rapid_type_analysis#RapidTypeAnalysis#mainmodule (self) on <self:RapidTypeAnalysis> */
2713 var371
= self
->attrs
[COLOR_rapid_type_analysis__RapidTypeAnalysis___mainmodule
].val
; /* _mainmodule on <self:RapidTypeAnalysis> */
2714 if (unlikely(var371
== NULL
)) {
2715 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule");
2716 PRINT_ERROR(" (%s:%d)\n", "src/rapid_type_analysis.nit", 51);
2720 RET_LABEL370
:(void)0;
2724 var372
= ((short int (*)(val
*, val
*, val
*, val
*))(var_ot361
->class->vft
[COLOR_model__MType__can_resolve_for
]))(var_ot361
, var_t368
, var_t368
, var369
) /* can_resolve_for on <var_ot361:MType>*/;
2728 goto CONTINUE_label374
;
2732 { /* Inline rapid_type_analysis#RapidTypeAnalysis#mainmodule (self) on <self:RapidTypeAnalysis> */
2733 var377
= self
->attrs
[COLOR_rapid_type_analysis__RapidTypeAnalysis___mainmodule
].val
; /* _mainmodule on <self:RapidTypeAnalysis> */
2734 if (unlikely(var377
== NULL
)) {
2735 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule");
2736 PRINT_ERROR(" (%s:%d)\n", "src/rapid_type_analysis.nit", 51);
2740 RET_LABEL376
:(void)0;
2744 var378
= ((val
* (*)(val
*, val
*, val
*))(var_ot361
->class->vft
[COLOR_model__MType__anchor_to
]))(var_ot361
, var375
, var_t368
) /* anchor_to on <var_ot361:MType>*/;
2748 { /* Inline rapid_type_analysis#RapidTypeAnalysis#live_cast_types (self) on <self:RapidTypeAnalysis> */
2749 var382
= self
->attrs
[COLOR_rapid_type_analysis__RapidTypeAnalysis___live_cast_types
].val
; /* _live_cast_types on <self:RapidTypeAnalysis> */
2750 if (unlikely(var382
== NULL
)) {
2751 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_cast_types");
2752 PRINT_ERROR(" (%s:%d)\n", "src/rapid_type_analysis.nit", 67);
2756 RET_LABEL381
:(void)0;
2760 hash_collection__HashSet__add(var380
, var_rt379
); /* Direct call hash_collection#HashSet#add on <var380:HashSet[MType]>*/
2762 CONTINUE_label374
: (void)0;
2764 ((void (*)(val
*))(var365
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var365
) /* next on <var365:Iterator[Object]>*/;
2767 BREAK_label374
: (void)0;
2768 CONTINUE_label383
: (void)0;
2770 ((void (*)(val
*))(var358
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var358
) /* next on <var358:Iterator[Object]>*/;
2773 BREAK_label383
: (void)0;
2776 /* method rapid_type_analysis#RapidTypeAnalysis#run_analysis for (self: Object) */
2777 void VIRTUAL_rapid_type_analysis__RapidTypeAnalysis__run_analysis(val
* self
) {
2778 rapid_type_analysis__RapidTypeAnalysis__run_analysis(self
); /* Direct call rapid_type_analysis#RapidTypeAnalysis#run_analysis on <self:Object(RapidTypeAnalysis)>*/
2781 /* method rapid_type_analysis#RapidTypeAnalysis#check_depth for (self: RapidTypeAnalysis, MClassType) */
2782 void rapid_type_analysis__RapidTypeAnalysis__check_depth(val
* self
, val
* p0
) {
2783 val
* var_mtype
/* var mtype: MClassType */;
2784 long var
/* : Int */;
2785 long var_d
/* var d: Int */;
2786 long var1
/* : Int */;
2787 short int var2
/* : Bool */;
2788 short int var4
/* : Bool */;
2791 const char* var_class_name
;
2792 short int var5
/* : Bool */;
2793 val
* var6
/* : ModelBuilder */;
2794 val
* var8
/* : ModelBuilder */;
2795 val
* var9
/* : ToolContext */;
2796 val
* var11
/* : ToolContext */;
2797 val
* var12
/* : null */;
2798 static val
* varonce
;
2799 val
* var13
/* : String */;
2800 char* var14
/* : NativeString */;
2801 long var15
/* : Int */;
2802 val
* var16
/* : FlatString */;
2803 static val
* varonce17
;
2804 val
* var18
/* : String */;
2805 char* var19
/* : NativeString */;
2806 long var20
/* : Int */;
2807 val
* var21
/* : FlatString */;
2808 static val
* varonce22
;
2809 val
* var23
/* : String */;
2810 char* var24
/* : NativeString */;
2811 long var25
/* : Int */;
2812 val
* var26
/* : FlatString */;
2813 val
* var27
/* : Array[Object] */;
2814 long var28
/* : Int */;
2815 val
* var29
/* : NativeArray[Object] */;
2816 val
* var30
/* : Object */;
2817 val
* var31
/* : String */;
2820 var
= ((long (*)(val
*))(var_mtype
->class->vft
[COLOR_model__MType__length
]))(var_mtype
) /* length on <var_mtype:MClassType>*/;
2825 { /* Inline kernel#Int#> (var_d,var1) on <var_d:Int> */
2826 /* Covariant cast for argument 0 (i) <var1:Int> isa OTHER */
2827 /* <var1:Int> isa OTHER */
2828 var4
= 1; /* easy <var1:Int> isa OTHER*/
2829 if (unlikely(!var4
)) {
2830 var_class_name
= type_kernel__Int
.name
;
2831 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name
);
2832 PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 327);
2835 var5
= var_d
> var1
;
2843 { /* Inline rapid_type_analysis#RapidTypeAnalysis#modelbuilder (self) on <self:RapidTypeAnalysis> */
2844 var8
= self
->attrs
[COLOR_rapid_type_analysis__RapidTypeAnalysis___modelbuilder
].val
; /* _modelbuilder on <self:RapidTypeAnalysis> */
2845 if (unlikely(var8
== NULL
)) {
2846 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
2847 PRINT_ERROR(" (%s:%d)\n", "src/rapid_type_analysis.nit", 48);
2855 { /* Inline modelbuilder#ModelBuilder#toolcontext (var6) on <var6:ModelBuilder> */
2856 var11
= var6
->attrs
[COLOR_modelbuilder__ModelBuilder___toolcontext
].val
; /* _toolcontext on <var6:ModelBuilder> */
2857 if (unlikely(var11
== NULL
)) {
2858 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
2859 PRINT_ERROR(" (%s:%d)\n", "src/modelbuilder.nit", 101);
2863 RET_LABEL10
:(void)0;
2870 var14
= "Fatal error: limitation in the rapidtype analysis engine: a type depth of ";
2872 var16
= string__NativeString__to_s_with_length(var14
, var15
);
2879 var19
= " is too important, the problematic type is ";
2881 var21
= string__NativeString__to_s_with_length(var19
, var20
);
2890 var26
= string__NativeString__to_s_with_length(var24
, var25
);
2894 var27
= NEW_array__Array(&type_array__Arraykernel__Object
);
2895 { /* var27 = array_instance Array[Object] */
2897 var29
= NEW_array__NativeArray(var28
, &type_array__NativeArraykernel__Object
);
2898 ((struct instance_array__NativeArray
*)var29
)->values
[0] = (val
*) var13
;
2899 var30
= BOX_kernel__Int(var_d
); /* autobox from Int to Object */
2900 ((struct instance_array__NativeArray
*)var29
)->values
[1] = (val
*) var30
;
2901 ((struct instance_array__NativeArray
*)var29
)->values
[2] = (val
*) var18
;
2902 ((struct instance_array__NativeArray
*)var29
)->values
[3] = (val
*) var_mtype
;
2903 ((struct instance_array__NativeArray
*)var29
)->values
[4] = (val
*) var23
;
2905 ((void (*)(val
*, val
*, long))(var27
->class->vft
[COLOR_array__Array__with_native
]))(var27
, var29
, var28
) /* with_native on <var27:Array[Object]>*/;
2909 var31
= ((val
* (*)(val
*))(var27
->class->vft
[COLOR_string__Object__to_s
]))(var27
) /* to_s on <var27:Array[Object]>*/;
2912 toolcontext__ToolContext__fatal_error(var9
, var12
, var31
); /* Direct call toolcontext#ToolContext#fatal_error on <var9:ToolContext>*/
2918 /* method rapid_type_analysis#RapidTypeAnalysis#check_depth for (self: Object, MClassType) */
2919 void VIRTUAL_rapid_type_analysis__RapidTypeAnalysis__check_depth(val
* self
, val
* p0
) {
2920 rapid_type_analysis__RapidTypeAnalysis__check_depth(self
, p0
); /* Direct call rapid_type_analysis#RapidTypeAnalysis#check_depth on <self:Object(RapidTypeAnalysis)>*/
2923 /* method rapid_type_analysis#RapidTypeAnalysis#add_new for (self: RapidTypeAnalysis, MClassType, MClassType) */
2924 void rapid_type_analysis__RapidTypeAnalysis__add_new(val
* self
, val
* p0
, val
* p1
) {
2925 val
* var_recv
/* var recv: MClassType */;
2926 val
* var_mtype
/* var mtype: MClassType */;
2927 short int var
/* : Bool */;
2928 short int var1
/* : Bool */;
2929 short int var2
/* : Bool */;
2930 val
* var3
/* : HashSet[MClassType] */;
2931 val
* var5
/* : HashSet[MClassType] */;
2932 short int var6
/* : Bool */;
2933 val
* var7
/* : HashSet[MClassType] */;
2934 val
* var9
/* : HashSet[MClassType] */;
2935 val
* var10
/* : HashSet[MClassType] */;
2936 val
* var12
/* : HashSet[MClassType] */;
2937 short int var13
/* : Bool */;
2938 val
* var14
/* : HashSet[MClassType] */;
2939 val
* var16
/* : HashSet[MClassType] */;
2940 val
* var17
/* : MClass */;
2941 val
* var19
/* : MClass */;
2942 val
* var_mclass
/* var mclass: MClass */;
2943 val
* var20
/* : HashSet[MClass] */;
2944 val
* var22
/* : HashSet[MClass] */;
2945 short int var23
/* : Bool */;
2946 val
* var24
/* : HashSet[MClass] */;
2947 val
* var26
/* : HashSet[MClass] */;
2948 val
* var27
/* : HashSet[MMethod] */;
2949 val
* var29
/* : HashSet[MMethod] */;
2950 val
* var30
/* : Iterator[Object] */;
2951 short int var31
/* : Bool */;
2952 val
* var32
/* : nullable Object */;
2953 val
* var_p
/* var p: MMethod */;
2954 val
* var33
/* : HashSet[MMethodDef] */;
2955 val
* var35
/* : HashSet[MMethodDef] */;
2956 val
* var36
/* : Iterator[Object] */;
2957 short int var37
/* : Bool */;
2958 val
* var38
/* : nullable Object */;
2959 val
* var_p39
/* var p: MMethodDef */;
2960 val
* var41
/* : Array[MMethod] */;
2961 val
* var43
/* : Array[MMethod] */;
2962 val
* var44
/* : ArrayIterator[nullable Object] */;
2963 short int var45
/* : Bool */;
2964 val
* var46
/* : nullable Object */;
2965 val
* var_p47
/* var p: MMethod */;
2966 val
* var48
/* : HashSet[MMethod] */;
2967 val
* var50
/* : HashSet[MMethod] */;
2968 val
* var52
/* : Array[MMethod] */;
2969 val
* var54
/* : Array[MMethod] */;
2970 val
* var55
/* : MModule */;
2971 val
* var57
/* : MModule */;
2972 val
* var58
/* : MClassType */;
2973 val
* var_bound_mtype
/* var bound_mtype: MClassType */;
2974 val
* var59
/* : MModule */;
2975 val
* var61
/* : MModule */;
2976 val
* var62
/* : Set[MClassDef] */;
2977 val
* var63
/* : Iterator[nullable Object] */;
2978 short int var64
/* : Bool */;
2979 val
* var65
/* : nullable Object */;
2980 val
* var_cd
/* var cd: MClassDef */;
2981 val
* var66
/* : ModelBuilder */;
2982 val
* var68
/* : ModelBuilder */;
2983 val
* var69
/* : HashMap[MClassDef, AClassdef] */;
2984 val
* var71
/* : HashMap[MClassDef, AClassdef] */;
2985 short int var72
/* : Bool */;
2986 short int var73
/* : Bool */;
2987 val
* var75
/* : ModelBuilder */;
2988 val
* var77
/* : ModelBuilder */;
2989 val
* var78
/* : HashMap[MClassDef, AClassdef] */;
2990 val
* var80
/* : HashMap[MClassDef, AClassdef] */;
2991 val
* var81
/* : nullable Object */;
2992 val
* var_nclassdef
/* var nclassdef: AClassdef */;
2993 val
* var82
/* : ANodes[APropdef] */;
2994 val
* var84
/* : ANodes[APropdef] */;
2995 val
* var85
/* : Iterator[ANode] */;
2996 short int var86
/* : Bool */;
2997 val
* var87
/* : nullable Object */;
2998 val
* var_npropdef
/* var npropdef: APropdef */;
2999 short int var88
/* : Bool */;
3002 short int var89
/* : Bool */;
3003 val
* var91
/* : nullable AExpr */;
3004 val
* var_nexpr
/* var nexpr: nullable AExpr */;
3005 val
* var92
/* : null */;
3006 short int var93
/* : Bool */;
3007 short int var94
/* : Bool */;
3008 val
* var_other
/* var other: nullable Object */;
3009 short int var96
/* : Bool */;
3010 short int var98
/* : Bool */;
3011 val
* var99
/* : nullable MPropDef */;
3012 val
* var101
/* : nullable MPropDef */;
3013 val
* var_mpropdef
/* var mpropdef: MAttributeDef */;
3014 val
* var102
/* : RapidTypeVisitor */;
3015 val
* var_v
/* var v: RapidTypeVisitor */;
3019 var
= ((short int (*)(val
*))(var_recv
->class->vft
[COLOR_model__MType__need_anchor
]))(var_recv
) /* need_anchor on <var_recv:MClassType>*/;
3022 if (unlikely(!var1
)) {
3023 PRINT_ERROR("Runtime error: %s", "Assert failed");
3024 PRINT_ERROR(" (%s:%d)\n", "src/rapid_type_analysis.nit", 317);
3028 var2
= ((short int (*)(val
*))(var_mtype
->class->vft
[COLOR_model__MType__need_anchor
]))(var_mtype
) /* need_anchor on <var_mtype:MClassType>*/;
3032 { /* Inline rapid_type_analysis#RapidTypeAnalysis#live_open_types (self) on <self:RapidTypeAnalysis> */
3033 var5
= self
->attrs
[COLOR_rapid_type_analysis__RapidTypeAnalysis___live_open_types
].val
; /* _live_open_types on <self:RapidTypeAnalysis> */
3034 if (unlikely(var5
== NULL
)) {
3035 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_open_types");
3036 PRINT_ERROR(" (%s:%d)\n", "src/rapid_type_analysis.nit", 60);
3044 var6
= hash_collection__HashSet__has(var3
, var_mtype
);
3051 { /* Inline rapid_type_analysis#RapidTypeAnalysis#live_open_types (self) on <self:RapidTypeAnalysis> */
3052 var9
= self
->attrs
[COLOR_rapid_type_analysis__RapidTypeAnalysis___live_open_types
].val
; /* _live_open_types on <self:RapidTypeAnalysis> */
3053 if (unlikely(var9
== NULL
)) {
3054 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_open_types");
3055 PRINT_ERROR(" (%s:%d)\n", "src/rapid_type_analysis.nit", 60);
3063 hash_collection__HashSet__add(var7
, var_mtype
); /* Direct call hash_collection#HashSet#add on <var7:HashSet[MClassType]>*/
3067 { /* Inline rapid_type_analysis#RapidTypeAnalysis#live_types (self) on <self:RapidTypeAnalysis> */
3068 var12
= self
->attrs
[COLOR_rapid_type_analysis__RapidTypeAnalysis___live_types
].val
; /* _live_types on <self:RapidTypeAnalysis> */
3069 if (unlikely(var12
== NULL
)) {
3070 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_types");
3071 PRINT_ERROR(" (%s:%d)\n", "src/rapid_type_analysis.nit", 55);
3075 RET_LABEL11
:(void)0;
3079 var13
= hash_collection__HashSet__has(var10
, var_mtype
);
3086 { /* Inline rapid_type_analysis#RapidTypeAnalysis#live_types (self) on <self:RapidTypeAnalysis> */
3087 var16
= self
->attrs
[COLOR_rapid_type_analysis__RapidTypeAnalysis___live_types
].val
; /* _live_types on <self:RapidTypeAnalysis> */
3088 if (unlikely(var16
== NULL
)) {
3089 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_types");
3090 PRINT_ERROR(" (%s:%d)\n", "src/rapid_type_analysis.nit", 55);
3094 RET_LABEL15
:(void)0;
3098 hash_collection__HashSet__add(var14
, var_mtype
); /* Direct call hash_collection#HashSet#add on <var14:HashSet[MClassType]>*/
3102 { /* Inline model#MClassType#mclass (var_mtype) on <var_mtype:MClassType> */
3103 var19
= var_mtype
->attrs
[COLOR_model__MClassType___mclass
].val
; /* _mclass on <var_mtype:MClassType> */
3104 if (unlikely(var19
== NULL
)) {
3105 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
3106 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 969);
3110 RET_LABEL18
:(void)0;
3115 { /* Inline rapid_type_analysis#RapidTypeAnalysis#live_classes (self) on <self:RapidTypeAnalysis> */
3116 var22
= self
->attrs
[COLOR_rapid_type_analysis__RapidTypeAnalysis___live_classes
].val
; /* _live_classes on <self:RapidTypeAnalysis> */
3117 if (unlikely(var22
== NULL
)) {
3118 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_classes");
3119 PRINT_ERROR(" (%s:%d)\n", "src/rapid_type_analysis.nit", 64);
3123 RET_LABEL21
:(void)0;
3127 var23
= hash_collection__HashSet__has(var20
, var_mclass
);
3134 { /* Inline rapid_type_analysis#RapidTypeAnalysis#live_classes (self) on <self:RapidTypeAnalysis> */
3135 var26
= self
->attrs
[COLOR_rapid_type_analysis__RapidTypeAnalysis___live_classes
].val
; /* _live_classes on <self:RapidTypeAnalysis> */
3136 if (unlikely(var26
== NULL
)) {
3137 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_classes");
3138 PRINT_ERROR(" (%s:%d)\n", "src/rapid_type_analysis.nit", 64);
3142 RET_LABEL25
:(void)0;
3146 hash_collection__HashSet__add(var24
, var_mclass
); /* Direct call hash_collection#HashSet#add on <var24:HashSet[MClass]>*/
3149 { /* Inline rapid_type_analysis#RapidTypeAnalysis#totry_methods (self) on <self:RapidTypeAnalysis> */
3150 var29
= self
->attrs
[COLOR_rapid_type_analysis__RapidTypeAnalysis___totry_methods
].val
; /* _totry_methods on <self:RapidTypeAnalysis> */
3151 if (unlikely(var29
== NULL
)) {
3152 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _totry_methods");
3153 PRINT_ERROR(" (%s:%d)\n", "src/rapid_type_analysis.nit", 164);
3157 RET_LABEL28
:(void)0;
3161 var30
= hash_collection__HashSet__iterator(var27
);
3165 var31
= ((short int (*)(val
*))(var30
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var30
) /* is_ok on <var30:Iterator[Object]>*/;
3169 var32
= ((val
* (*)(val
*))(var30
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var30
) /* item on <var30:Iterator[Object]>*/;
3173 rapid_type_analysis__RapidTypeAnalysis__try_send(self
, var_mtype
, var_p
); /* Direct call rapid_type_analysis#RapidTypeAnalysis#try_send on <self:RapidTypeAnalysis>*/
3175 CONTINUE_label
: (void)0;
3177 ((void (*)(val
*))(var30
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var30
) /* next on <var30:Iterator[Object]>*/;
3180 BREAK_label
: (void)0;
3182 { /* Inline rapid_type_analysis#RapidTypeAnalysis#live_super_sends (self) on <self:RapidTypeAnalysis> */
3183 var35
= self
->attrs
[COLOR_rapid_type_analysis__RapidTypeAnalysis___live_super_sends
].val
; /* _live_super_sends on <self:RapidTypeAnalysis> */
3184 if (unlikely(var35
== NULL
)) {
3185 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_super_sends");
3186 PRINT_ERROR(" (%s:%d)\n", "src/rapid_type_analysis.nit", 110);
3190 RET_LABEL34
:(void)0;
3194 var36
= hash_collection__HashSet__iterator(var33
);
3198 var37
= ((short int (*)(val
*))(var36
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var36
) /* is_ok on <var36:Iterator[Object]>*/;
3202 var38
= ((val
* (*)(val
*))(var36
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var36
) /* item on <var36:Iterator[Object]>*/;
3206 rapid_type_analysis__RapidTypeAnalysis__try_super_send(self
, var_mtype
, var_p39
); /* Direct call rapid_type_analysis#RapidTypeAnalysis#try_super_send on <self:RapidTypeAnalysis>*/
3208 CONTINUE_label40
: (void)0;
3210 ((void (*)(val
*))(var36
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var36
) /* next on <var36:Iterator[Object]>*/;
3213 BREAK_label40
: (void)0;
3215 { /* Inline rapid_type_analysis#RapidTypeAnalysis#totry_methods_to_remove (self) on <self:RapidTypeAnalysis> */
3216 var43
= self
->attrs
[COLOR_rapid_type_analysis__RapidTypeAnalysis___totry_methods_to_remove
].val
; /* _totry_methods_to_remove on <self:RapidTypeAnalysis> */
3217 if (unlikely(var43
== NULL
)) {
3218 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _totry_methods_to_remove");
3219 PRINT_ERROR(" (%s:%d)\n", "src/rapid_type_analysis.nit", 167);
3223 RET_LABEL42
:(void)0;
3227 var44
= array__AbstractArrayRead__iterator(var41
);
3231 var45
= array__ArrayIterator__is_ok(var44
);
3235 var46
= array__ArrayIterator__item(var44
);
3239 { /* Inline rapid_type_analysis#RapidTypeAnalysis#totry_methods (self) on <self:RapidTypeAnalysis> */
3240 var50
= self
->attrs
[COLOR_rapid_type_analysis__RapidTypeAnalysis___totry_methods
].val
; /* _totry_methods on <self:RapidTypeAnalysis> */
3241 if (unlikely(var50
== NULL
)) {
3242 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _totry_methods");
3243 PRINT_ERROR(" (%s:%d)\n", "src/rapid_type_analysis.nit", 164);
3247 RET_LABEL49
:(void)0;
3251 hash_collection__HashSet__remove(var48
, var_p47
); /* Direct call hash_collection#HashSet#remove on <var48:HashSet[MMethod]>*/
3253 CONTINUE_label51
: (void)0;
3255 array__ArrayIterator__next(var44
); /* Direct call array#ArrayIterator#next on <var44:ArrayIterator[nullable Object]>*/
3258 BREAK_label51
: (void)0;
3260 { /* Inline rapid_type_analysis#RapidTypeAnalysis#totry_methods_to_remove (self) on <self:RapidTypeAnalysis> */
3261 var54
= self
->attrs
[COLOR_rapid_type_analysis__RapidTypeAnalysis___totry_methods_to_remove
].val
; /* _totry_methods_to_remove on <self:RapidTypeAnalysis> */
3262 if (unlikely(var54
== NULL
)) {
3263 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _totry_methods_to_remove");
3264 PRINT_ERROR(" (%s:%d)\n", "src/rapid_type_analysis.nit", 167);
3268 RET_LABEL53
:(void)0;
3272 array__AbstractArray__clear(var52
); /* Direct call array#AbstractArray#clear on <var52:Array[MMethod]>*/
3275 { /* Inline rapid_type_analysis#RapidTypeAnalysis#mainmodule (self) on <self:RapidTypeAnalysis> */
3276 var57
= self
->attrs
[COLOR_rapid_type_analysis__RapidTypeAnalysis___mainmodule
].val
; /* _mainmodule on <self:RapidTypeAnalysis> */
3277 if (unlikely(var57
== NULL
)) {
3278 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule");
3279 PRINT_ERROR(" (%s:%d)\n", "src/rapid_type_analysis.nit", 51);
3283 RET_LABEL56
:(void)0;
3287 var58
= model__MClassType__anchor_to(var_mtype
, var55
, var_recv
);
3289 var_bound_mtype
= var58
;
3291 { /* Inline rapid_type_analysis#RapidTypeAnalysis#mainmodule (self) on <self:RapidTypeAnalysis> */
3292 var61
= self
->attrs
[COLOR_rapid_type_analysis__RapidTypeAnalysis___mainmodule
].val
; /* _mainmodule on <self:RapidTypeAnalysis> */
3293 if (unlikely(var61
== NULL
)) {
3294 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule");
3295 PRINT_ERROR(" (%s:%d)\n", "src/rapid_type_analysis.nit", 51);
3299 RET_LABEL60
:(void)0;
3303 var62
= model__MClassType__collect_mclassdefs(var_bound_mtype
, var59
);
3306 var63
= ((val
* (*)(val
*))(var62
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var62
) /* iterator on <var62:Set[MClassDef]>*/;
3310 var64
= ((short int (*)(val
*))(var63
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var63
) /* is_ok on <var63:Iterator[nullable Object]>*/;
3314 var65
= ((val
* (*)(val
*))(var63
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var63
) /* item on <var63:Iterator[nullable Object]>*/;
3318 { /* Inline rapid_type_analysis#RapidTypeAnalysis#modelbuilder (self) on <self:RapidTypeAnalysis> */
3319 var68
= self
->attrs
[COLOR_rapid_type_analysis__RapidTypeAnalysis___modelbuilder
].val
; /* _modelbuilder on <self:RapidTypeAnalysis> */
3320 if (unlikely(var68
== NULL
)) {
3321 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
3322 PRINT_ERROR(" (%s:%d)\n", "src/rapid_type_analysis.nit", 48);
3326 RET_LABEL67
:(void)0;
3330 { /* Inline modelize_class#ModelBuilder#mclassdef2nclassdef (var66) on <var66:ModelBuilder> */
3331 var71
= var66
->attrs
[COLOR_modelize_class__ModelBuilder___mclassdef2nclassdef
].val
; /* _mclassdef2nclassdef on <var66:ModelBuilder> */
3332 if (unlikely(var71
== NULL
)) {
3333 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdef2nclassdef");
3334 PRINT_ERROR(" (%s:%d)\n", "src/modelize_class.nit", 399);
3338 RET_LABEL70
:(void)0;
3342 var72
= abstract_collection__MapRead__has_key(var69
, var_cd
);
3346 goto CONTINUE_label74
;
3350 { /* Inline rapid_type_analysis#RapidTypeAnalysis#modelbuilder (self) on <self:RapidTypeAnalysis> */
3351 var77
= self
->attrs
[COLOR_rapid_type_analysis__RapidTypeAnalysis___modelbuilder
].val
; /* _modelbuilder on <self:RapidTypeAnalysis> */
3352 if (unlikely(var77
== NULL
)) {
3353 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
3354 PRINT_ERROR(" (%s:%d)\n", "src/rapid_type_analysis.nit", 48);
3358 RET_LABEL76
:(void)0;
3362 { /* Inline modelize_class#ModelBuilder#mclassdef2nclassdef (var75) on <var75:ModelBuilder> */
3363 var80
= var75
->attrs
[COLOR_modelize_class__ModelBuilder___mclassdef2nclassdef
].val
; /* _mclassdef2nclassdef on <var75:ModelBuilder> */
3364 if (unlikely(var80
== NULL
)) {
3365 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdef2nclassdef");
3366 PRINT_ERROR(" (%s:%d)\n", "src/modelize_class.nit", 399);
3370 RET_LABEL79
:(void)0;
3374 var81
= hash_collection__HashMap___91d_93d(var78
, var_cd
);
3376 var_nclassdef
= var81
;
3378 { /* Inline parser_nodes#AClassdef#n_propdefs (var_nclassdef) on <var_nclassdef:AClassdef> */
3379 var84
= var_nclassdef
->attrs
[COLOR_parser_nodes__AClassdef___n_propdefs
].val
; /* _n_propdefs on <var_nclassdef:AClassdef> */
3380 if (unlikely(var84
== NULL
)) {
3381 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_propdefs");
3382 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_nodes.nit", 802);
3386 RET_LABEL83
:(void)0;
3390 var85
= parser_nodes__ANodes__iterator(var82
);
3394 var86
= ((short int (*)(val
*))(var85
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var85
) /* is_ok on <var85:Iterator[ANode]>*/;
3398 var87
= ((val
* (*)(val
*))(var85
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var85
) /* item on <var85:Iterator[ANode]>*/;
3400 var_npropdef
= var87
;
3401 /* <var_npropdef:APropdef> isa AAttrPropdef */
3402 cltype
= type_parser_nodes__AAttrPropdef
.color
;
3403 idtype
= type_parser_nodes__AAttrPropdef
.id
;
3404 if(cltype
>= var_npropdef
->type
->table_size
) {
3407 var88
= var_npropdef
->type
->type_table
[cltype
] == idtype
;
3411 goto CONTINUE_label90
;
3415 var91
= parser_nodes__AAttrPropdef__n_expr(var_npropdef
);
3419 if (var_nexpr
== NULL
) {
3420 var93
= 1; /* is null */
3422 var93
= 0; /* arg is null but recv is not */
3425 { /* Inline kernel#Object#== (var_nexpr,var92) on <var_nexpr:nullable AExpr> */
3428 { /* Inline kernel#Object#is_same_instance (var_nexpr,var_other) on <var_nexpr:nullable AExpr(AExpr)> */
3429 var98
= var_nexpr
== var_other
;
3432 RET_LABEL97
:(void)0;
3437 RET_LABEL95
:(void)0;
3442 goto CONTINUE_label90
;
3446 { /* Inline modelize_property#APropdef#mpropdef (var_npropdef) on <var_npropdef:APropdef(AAttrPropdef)> */
3447 var101
= var_npropdef
->attrs
[COLOR_modelize_property__APropdef___mpropdef
].val
; /* _mpropdef on <var_npropdef:APropdef(AAttrPropdef)> */
3449 RET_LABEL100
:(void)0;
3452 if (unlikely(var99
== NULL
)) {
3453 PRINT_ERROR("Runtime error: %s", "Cast failed");
3454 PRINT_ERROR(" (%s:%d)\n", "src/rapid_type_analysis.nit", 346);
3457 var_mpropdef
= var99
;
3458 var102
= NEW_rapid_type_analysis__RapidTypeVisitor(&type_rapid_type_analysis__RapidTypeVisitor
);
3460 rapid_type_analysis__RapidTypeVisitor__init(var102
, self
, var_bound_mtype
, var_mpropdef
); /* Direct call rapid_type_analysis#RapidTypeVisitor#init on <var102:RapidTypeVisitor>*/
3464 parser_nodes__Visitor__enter_visit(var_v
, var_nexpr
); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:RapidTypeVisitor>*/
3466 CONTINUE_label90
: (void)0;
3468 ((void (*)(val
*))(var85
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var85
) /* next on <var85:Iterator[ANode]>*/;
3471 BREAK_label90
: (void)0;
3472 CONTINUE_label74
: (void)0;
3474 ((void (*)(val
*))(var63
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var63
) /* next on <var63:Iterator[nullable Object]>*/;
3477 BREAK_label74
: (void)0;
3480 /* method rapid_type_analysis#RapidTypeAnalysis#add_new for (self: Object, MClassType, MClassType) */
3481 void VIRTUAL_rapid_type_analysis__RapidTypeAnalysis__add_new(val
* self
, val
* p0
, val
* p1
) {
3482 rapid_type_analysis__RapidTypeAnalysis__add_new(self
, p0
, p1
); /* Direct call rapid_type_analysis#RapidTypeAnalysis#add_new on <self:Object(RapidTypeAnalysis)>*/
3485 /* method rapid_type_analysis#RapidTypeAnalysis#add_cast for (self: RapidTypeAnalysis, MType) */
3486 void rapid_type_analysis__RapidTypeAnalysis__add_cast(val
* self
, val
* p0
) {
3487 val
* var_mtype
/* var mtype: MType */;
3488 short int var
/* : Bool */;
3489 val
* var1
/* : HashSet[MType] */;
3490 val
* var3
/* : HashSet[MType] */;
3491 val
* var4
/* : HashSet[MType] */;
3492 val
* var6
/* : HashSet[MType] */;
3495 var
= ((short int (*)(val
*))(var_mtype
->class->vft
[COLOR_model__MType__need_anchor
]))(var_mtype
) /* need_anchor on <var_mtype:MType>*/;
3499 { /* Inline rapid_type_analysis#RapidTypeAnalysis#live_open_cast_types (self) on <self:RapidTypeAnalysis> */
3500 var3
= self
->attrs
[COLOR_rapid_type_analysis__RapidTypeAnalysis___live_open_cast_types
].val
; /* _live_open_cast_types on <self:RapidTypeAnalysis> */
3501 if (unlikely(var3
== NULL
)) {
3502 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_open_cast_types");
3503 PRINT_ERROR(" (%s:%d)\n", "src/rapid_type_analysis.nit", 70);
3511 hash_collection__HashSet__add(var1
, var_mtype
); /* Direct call hash_collection#HashSet#add on <var1:HashSet[MType]>*/
3515 { /* Inline rapid_type_analysis#RapidTypeAnalysis#live_cast_types (self) on <self:RapidTypeAnalysis> */
3516 var6
= self
->attrs
[COLOR_rapid_type_analysis__RapidTypeAnalysis___live_cast_types
].val
; /* _live_cast_types on <self:RapidTypeAnalysis> */
3517 if (unlikely(var6
== NULL
)) {
3518 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_cast_types");
3519 PRINT_ERROR(" (%s:%d)\n", "src/rapid_type_analysis.nit", 67);
3527 hash_collection__HashSet__add(var4
, var_mtype
); /* Direct call hash_collection#HashSet#add on <var4:HashSet[MType]>*/
3532 /* method rapid_type_analysis#RapidTypeAnalysis#add_cast for (self: Object, MType) */
3533 void VIRTUAL_rapid_type_analysis__RapidTypeAnalysis__add_cast(val
* self
, val
* p0
) {
3534 rapid_type_analysis__RapidTypeAnalysis__add_cast(self
, p0
); /* Direct call rapid_type_analysis#RapidTypeAnalysis#add_cast on <self:Object(RapidTypeAnalysis)>*/
3537 /* method rapid_type_analysis#RapidTypeAnalysis#try_send for (self: RapidTypeAnalysis, MClassType, MMethod) */
3538 void rapid_type_analysis__RapidTypeAnalysis__try_send(val
* self
, val
* p0
, val
* p1
) {
3539 val
* var_recv
/* var recv: MClassType */;
3540 val
* var_mproperty
/* var mproperty: MMethod */;
3541 val
* var
/* : MClass */;
3542 val
* var2
/* : MClass */;
3543 val
* var3
/* : MClassDef */;
3544 val
* var4
/* : MClassType */;
3545 val
* var6
/* : MClassType */;
3546 val
* var7
/* : MModule */;
3547 val
* var9
/* : MModule */;
3548 short int var10
/* : Bool */;
3549 short int var11
/* : Bool */;
3550 val
* var12
/* : MModule */;
3551 val
* var14
/* : MModule */;
3552 val
* var15
/* : MPropDef */;
3553 val
* var_d
/* var d: MMethodDef */;
3557 { /* Inline model#MClassType#mclass (var_recv) on <var_recv:MClassType> */
3558 var2
= var_recv
->attrs
[COLOR_model__MClassType___mclass
].val
; /* _mclass on <var_recv:MClassType> */
3559 if (unlikely(var2
== NULL
)) {
3560 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
3561 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 969);
3569 var3
= model__MClass__intro(var
);
3572 { /* Inline model#MClassDef#bound_mtype (var3) on <var3:MClassDef> */
3573 var6
= var3
->attrs
[COLOR_model__MClassDef___bound_mtype
].val
; /* _bound_mtype on <var3:MClassDef> */
3574 if (unlikely(var6
== NULL
)) {
3575 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _bound_mtype");
3576 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 477);
3585 { /* Inline rapid_type_analysis#RapidTypeAnalysis#mainmodule (self) on <self:RapidTypeAnalysis> */
3586 var9
= self
->attrs
[COLOR_rapid_type_analysis__RapidTypeAnalysis___mainmodule
].val
; /* _mainmodule on <self:RapidTypeAnalysis> */
3587 if (unlikely(var9
== NULL
)) {
3588 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule");
3589 PRINT_ERROR(" (%s:%d)\n", "src/rapid_type_analysis.nit", 51);
3597 var10
= model__MType__has_mproperty(var_recv
, var7
, var_mproperty
);
3605 { /* Inline rapid_type_analysis#RapidTypeAnalysis#mainmodule (self) on <self:RapidTypeAnalysis> */
3606 var14
= self
->attrs
[COLOR_rapid_type_analysis__RapidTypeAnalysis___mainmodule
].val
; /* _mainmodule on <self:RapidTypeAnalysis> */
3607 if (unlikely(var14
== NULL
)) {
3608 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule");
3609 PRINT_ERROR(" (%s:%d)\n", "src/rapid_type_analysis.nit", 51);
3613 RET_LABEL13
:(void)0;
3617 var15
= model__MProperty__lookup_first_definition(var_mproperty
, var12
, var_recv
);
3621 rapid_type_analysis__RapidTypeAnalysis__add_call(self
, var_d
); /* Direct call rapid_type_analysis#RapidTypeAnalysis#add_call on <self:RapidTypeAnalysis>*/
3625 /* method rapid_type_analysis#RapidTypeAnalysis#try_send for (self: Object, MClassType, MMethod) */
3626 void VIRTUAL_rapid_type_analysis__RapidTypeAnalysis__try_send(val
* self
, val
* p0
, val
* p1
) {
3627 rapid_type_analysis__RapidTypeAnalysis__try_send(self
, p0
, p1
); /* Direct call rapid_type_analysis#RapidTypeAnalysis#try_send on <self:Object(RapidTypeAnalysis)>*/
3630 /* method rapid_type_analysis#RapidTypeAnalysis#add_call for (self: RapidTypeAnalysis, MMethodDef) */
3631 void rapid_type_analysis__RapidTypeAnalysis__add_call(val
* self
, val
* p0
) {
3632 val
* var_mpropdef
/* var mpropdef: MMethodDef */;
3633 val
* var
/* : HashSet[MMethodDef] */;
3634 val
* var2
/* : HashSet[MMethodDef] */;
3635 short int var3
/* : Bool */;
3636 val
* var4
/* : HashSet[MMethodDef] */;
3637 val
* var6
/* : HashSet[MMethodDef] */;
3638 val
* var7
/* : List[MMethodDef] */;
3639 val
* var9
/* : List[MMethodDef] */;
3640 val
* var10
/* : MProperty */;
3641 val
* var12
/* : MProperty */;
3642 val
* var_mproperty
/* var mproperty: MMethod */;
3643 val
* var13
/* : Array[MPropDef] */;
3644 val
* var15
/* : Array[MPropDef] */;
3645 long var16
/* : Int */;
3646 long var17
/* : Int */;
3647 short int var18
/* : Bool */;
3648 short int var20
/* : Bool */;
3651 const char* var_class_name
;
3652 short int var21
/* : Bool */;
3653 val
* var22
/* : Array[MPropDef] */;
3654 val
* var24
/* : Array[MPropDef] */;
3655 val
* var25
/* : ArrayIterator[nullable Object] */;
3656 short int var26
/* : Bool */;
3657 val
* var27
/* : nullable Object */;
3658 val
* var_d
/* var d: MMethodDef */;
3659 short int var28
/* : Bool */;
3660 short int var30
/* : Bool */;
3661 val
* var31
/* : HashSet[MMethodDef] */;
3662 val
* var33
/* : HashSet[MMethodDef] */;
3663 short int var34
/* : Bool */;
3664 short int var35
/* : Bool */;
3665 val
* var36
/* : Array[MMethod] */;
3666 val
* var38
/* : Array[MMethod] */;
3667 val
* var39
/* : MProperty */;
3668 val
* var41
/* : MProperty */;
3671 { /* Inline rapid_type_analysis#RapidTypeAnalysis#live_methoddefs (self) on <self:RapidTypeAnalysis> */
3672 var2
= self
->attrs
[COLOR_rapid_type_analysis__RapidTypeAnalysis___live_methoddefs
].val
; /* _live_methoddefs on <self:RapidTypeAnalysis> */
3673 if (unlikely(var2
== NULL
)) {
3674 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_methoddefs");
3675 PRINT_ERROR(" (%s:%d)\n", "src/rapid_type_analysis.nit", 74);
3683 var3
= hash_collection__HashSet__has(var
, var_mpropdef
);
3690 { /* Inline rapid_type_analysis#RapidTypeAnalysis#live_methoddefs (self) on <self:RapidTypeAnalysis> */
3691 var6
= self
->attrs
[COLOR_rapid_type_analysis__RapidTypeAnalysis___live_methoddefs
].val
; /* _live_methoddefs on <self:RapidTypeAnalysis> */
3692 if (unlikely(var6
== NULL
)) {
3693 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_methoddefs");
3694 PRINT_ERROR(" (%s:%d)\n", "src/rapid_type_analysis.nit", 74);
3702 hash_collection__HashSet__add(var4
, var_mpropdef
); /* Direct call hash_collection#HashSet#add on <var4:HashSet[MMethodDef]>*/
3705 { /* Inline rapid_type_analysis#RapidTypeAnalysis#todo (self) on <self:RapidTypeAnalysis> */
3706 var9
= self
->attrs
[COLOR_rapid_type_analysis__RapidTypeAnalysis___todo
].val
; /* _todo on <self:RapidTypeAnalysis> */
3707 if (unlikely(var9
== NULL
)) {
3708 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _todo");
3709 PRINT_ERROR(" (%s:%d)\n", "src/rapid_type_analysis.nit", 174);
3717 abstract_collection__Sequence__add(var7
, var_mpropdef
); /* Direct call abstract_collection#Sequence#add on <var7:List[MMethodDef]>*/
3720 { /* Inline model#MPropDef#mproperty (var_mpropdef) on <var_mpropdef:MMethodDef> */
3721 var12
= var_mpropdef
->attrs
[COLOR_model__MPropDef___mproperty
].val
; /* _mproperty on <var_mpropdef:MMethodDef> */
3722 if (unlikely(var12
== NULL
)) {
3723 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty");
3724 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1882);
3728 RET_LABEL11
:(void)0;
3731 var_mproperty
= var10
;
3733 { /* Inline model#MProperty#mpropdefs (var_mproperty) on <var_mproperty:MMethod> */
3734 var15
= var_mproperty
->attrs
[COLOR_model__MProperty___mpropdefs
].val
; /* _mpropdefs on <var_mproperty:MMethod> */
3735 if (unlikely(var15
== NULL
)) {
3736 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mpropdefs");
3737 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1631);
3741 RET_LABEL14
:(void)0;
3745 var16
= array__AbstractArrayRead__length(var13
);
3749 { /* Inline kernel#Int#<= (var16,var17) on <var16:Int> */
3750 /* Covariant cast for argument 0 (i) <var17:Int> isa OTHER */
3751 /* <var17:Int> isa OTHER */
3752 var20
= 1; /* easy <var17:Int> isa OTHER*/
3753 if (unlikely(!var20
)) {
3754 var_class_name
= type_kernel__Int
.name
;
3755 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name
);
3756 PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 324);
3759 var21
= var16
<= var17
;
3762 RET_LABEL19
:(void)0;
3770 { /* Inline model#MProperty#mpropdefs (var_mproperty) on <var_mproperty:MMethod> */
3771 var24
= var_mproperty
->attrs
[COLOR_model__MProperty___mpropdefs
].val
; /* _mpropdefs on <var_mproperty:MMethod> */
3772 if (unlikely(var24
== NULL
)) {
3773 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mpropdefs");
3774 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1631);
3778 RET_LABEL23
:(void)0;
3782 var25
= array__AbstractArrayRead__iterator(var22
);
3786 var26
= array__ArrayIterator__is_ok(var25
);
3790 var27
= array__ArrayIterator__item(var25
);
3794 { /* Inline model#MMethodDef#is_abstract (var_d) on <var_d:MMethodDef> */
3795 var30
= var_d
->attrs
[COLOR_model__MMethodDef___is_abstract
].s
; /* _is_abstract on <var_d:MMethodDef> */
3797 RET_LABEL29
:(void)0;
3801 goto CONTINUE_label
;
3805 { /* Inline rapid_type_analysis#RapidTypeAnalysis#live_methoddefs (self) on <self:RapidTypeAnalysis> */
3806 var33
= self
->attrs
[COLOR_rapid_type_analysis__RapidTypeAnalysis___live_methoddefs
].val
; /* _live_methoddefs on <self:RapidTypeAnalysis> */
3807 if (unlikely(var33
== NULL
)) {
3808 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_methoddefs");
3809 PRINT_ERROR(" (%s:%d)\n", "src/rapid_type_analysis.nit", 74);
3813 RET_LABEL32
:(void)0;
3817 var34
= hash_collection__HashSet__has(var31
, var_d
);
3824 CONTINUE_label
: (void)0;
3826 array__ArrayIterator__next(var25
); /* Direct call array#ArrayIterator#next on <var25:ArrayIterator[nullable Object]>*/
3829 BREAK_label
: (void)0;
3831 { /* Inline rapid_type_analysis#RapidTypeAnalysis#totry_methods_to_remove (self) on <self:RapidTypeAnalysis> */
3832 var38
= self
->attrs
[COLOR_rapid_type_analysis__RapidTypeAnalysis___totry_methods_to_remove
].val
; /* _totry_methods_to_remove on <self:RapidTypeAnalysis> */
3833 if (unlikely(var38
== NULL
)) {
3834 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _totry_methods_to_remove");
3835 PRINT_ERROR(" (%s:%d)\n", "src/rapid_type_analysis.nit", 167);
3839 RET_LABEL37
:(void)0;
3843 { /* Inline model#MPropDef#mproperty (var_mpropdef) on <var_mpropdef:MMethodDef> */
3844 var41
= var_mpropdef
->attrs
[COLOR_model__MPropDef___mproperty
].val
; /* _mproperty on <var_mpropdef:MMethodDef> */
3845 if (unlikely(var41
== NULL
)) {
3846 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty");
3847 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1882);
3851 RET_LABEL40
:(void)0;
3855 array__Array__add(var36
, var39
); /* Direct call array#Array#add on <var36:Array[MMethod]>*/
3859 /* method rapid_type_analysis#RapidTypeAnalysis#add_call for (self: Object, MMethodDef) */
3860 void VIRTUAL_rapid_type_analysis__RapidTypeAnalysis__add_call(val
* self
, val
* p0
) {
3861 rapid_type_analysis__RapidTypeAnalysis__add_call(self
, p0
); /* Direct call rapid_type_analysis#RapidTypeAnalysis#add_call on <self:Object(RapidTypeAnalysis)>*/
3864 /* method rapid_type_analysis#RapidTypeAnalysis#add_send for (self: RapidTypeAnalysis, MType, MMethod) */
3865 void rapid_type_analysis__RapidTypeAnalysis__add_send(val
* self
, val
* p0
, val
* p1
) {
3866 val
* var_recv
/* var recv: MType */;
3867 val
* var_mproperty
/* var mproperty: MMethod */;
3868 val
* var
/* : HashSet[MMethod] */;
3869 val
* var2
/* : HashSet[MMethod] */;
3870 short int var3
/* : Bool */;
3871 val
* var4
/* : HashSet[MMethod] */;
3872 val
* var6
/* : HashSet[MMethod] */;
3873 val
* var7
/* : HashSet[MMethod] */;
3874 val
* var9
/* : HashSet[MMethod] */;
3875 val
* var10
/* : Array[MPropDef] */;
3876 val
* var12
/* : Array[MPropDef] */;
3877 long var13
/* : Int */;
3878 long var14
/* : Int */;
3879 short int var15
/* : Bool */;
3880 short int var16
/* : Bool */;
3881 short int var18
/* : Bool */;
3882 val
* var19
/* : Array[MPropDef] */;
3883 val
* var21
/* : Array[MPropDef] */;
3884 val
* var22
/* : nullable Object */;
3885 val
* var_d
/* var d: MMethodDef */;
3886 val
* var23
/* : HashSet[MMethod] */;
3887 val
* var25
/* : HashSet[MMethod] */;
3888 val
* var26
/* : HashSet[MClass] */;
3889 val
* var28
/* : HashSet[MClass] */;
3890 val
* var29
/* : Iterator[Object] */;
3891 short int var30
/* : Bool */;
3892 val
* var31
/* : nullable Object */;
3893 val
* var_c
/* var c: MClass */;
3894 val
* var32
/* : MClassDef */;
3895 val
* var33
/* : MClassType */;
3896 val
* var35
/* : MClassType */;
3900 { /* Inline rapid_type_analysis#RapidTypeAnalysis#try_methods (self) on <self:RapidTypeAnalysis> */
3901 var2
= self
->attrs
[COLOR_rapid_type_analysis__RapidTypeAnalysis___try_methods
].val
; /* _try_methods on <self:RapidTypeAnalysis> */
3902 if (unlikely(var2
== NULL
)) {
3903 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _try_methods");
3904 PRINT_ERROR(" (%s:%d)\n", "src/rapid_type_analysis.nit", 170);
3912 var3
= hash_collection__HashSet__has(var
, var_mproperty
);
3919 { /* Inline rapid_type_analysis#RapidTypeAnalysis#live_methods (self) on <self:RapidTypeAnalysis> */
3920 var6
= self
->attrs
[COLOR_rapid_type_analysis__RapidTypeAnalysis___live_methods
].val
; /* _live_methods on <self:RapidTypeAnalysis> */
3921 if (unlikely(var6
== NULL
)) {
3922 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_methods");
3923 PRINT_ERROR(" (%s:%d)\n", "src/rapid_type_analysis.nit", 77);
3931 hash_collection__HashSet__add(var4
, var_mproperty
); /* Direct call hash_collection#HashSet#add on <var4:HashSet[MMethod]>*/
3934 { /* Inline rapid_type_analysis#RapidTypeAnalysis#try_methods (self) on <self:RapidTypeAnalysis> */
3935 var9
= self
->attrs
[COLOR_rapid_type_analysis__RapidTypeAnalysis___try_methods
].val
; /* _try_methods on <self:RapidTypeAnalysis> */
3936 if (unlikely(var9
== NULL
)) {
3937 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _try_methods");
3938 PRINT_ERROR(" (%s:%d)\n", "src/rapid_type_analysis.nit", 170);
3946 hash_collection__HashSet__add(var7
, var_mproperty
); /* Direct call hash_collection#HashSet#add on <var7:HashSet[MMethod]>*/
3949 { /* Inline model#MProperty#mpropdefs (var_mproperty) on <var_mproperty:MMethod> */
3950 var12
= var_mproperty
->attrs
[COLOR_model__MProperty___mpropdefs
].val
; /* _mpropdefs on <var_mproperty:MMethod> */
3951 if (unlikely(var12
== NULL
)) {
3952 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mpropdefs");
3953 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1631);
3957 RET_LABEL11
:(void)0;
3961 var13
= array__AbstractArrayRead__length(var10
);
3965 { /* Inline kernel#Int#== (var13,var14) on <var13:Int> */
3966 var18
= var13
== var14
;
3969 RET_LABEL17
:(void)0;
3975 { /* Inline model#MProperty#mpropdefs (var_mproperty) on <var_mproperty:MMethod> */
3976 var21
= var_mproperty
->attrs
[COLOR_model__MProperty___mpropdefs
].val
; /* _mpropdefs on <var_mproperty:MMethod> */
3977 if (unlikely(var21
== NULL
)) {
3978 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mpropdefs");
3979 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1631);
3983 RET_LABEL20
:(void)0;
3987 var22
= abstract_collection__SequenceRead__first(var19
);
3991 rapid_type_analysis__RapidTypeAnalysis__add_call(self
, var_d
); /* Direct call rapid_type_analysis#RapidTypeAnalysis#add_call on <self:RapidTypeAnalysis>*/
3997 { /* Inline rapid_type_analysis#RapidTypeAnalysis#totry_methods (self) on <self:RapidTypeAnalysis> */
3998 var25
= self
->attrs
[COLOR_rapid_type_analysis__RapidTypeAnalysis___totry_methods
].val
; /* _totry_methods on <self:RapidTypeAnalysis> */
3999 if (unlikely(var25
== NULL
)) {
4000 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _totry_methods");
4001 PRINT_ERROR(" (%s:%d)\n", "src/rapid_type_analysis.nit", 164);
4005 RET_LABEL24
:(void)0;
4009 hash_collection__HashSet__add(var23
, var_mproperty
); /* Direct call hash_collection#HashSet#add on <var23:HashSet[MMethod]>*/
4012 { /* Inline rapid_type_analysis#RapidTypeAnalysis#live_classes (self) on <self:RapidTypeAnalysis> */
4013 var28
= self
->attrs
[COLOR_rapid_type_analysis__RapidTypeAnalysis___live_classes
].val
; /* _live_classes on <self:RapidTypeAnalysis> */
4014 if (unlikely(var28
== NULL
)) {
4015 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_classes");
4016 PRINT_ERROR(" (%s:%d)\n", "src/rapid_type_analysis.nit", 64);
4020 RET_LABEL27
:(void)0;
4024 var29
= hash_collection__HashSet__iterator(var26
);
4028 var30
= ((short int (*)(val
*))(var29
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var29
) /* is_ok on <var29:Iterator[Object]>*/;
4032 var31
= ((val
* (*)(val
*))(var29
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var29
) /* item on <var29:Iterator[Object]>*/;
4036 var32
= model__MClass__intro(var_c
);
4039 { /* Inline model#MClassDef#bound_mtype (var32) on <var32:MClassDef> */
4040 var35
= var32
->attrs
[COLOR_model__MClassDef___bound_mtype
].val
; /* _bound_mtype on <var32:MClassDef> */
4041 if (unlikely(var35
== NULL
)) {
4042 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _bound_mtype");
4043 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 477);
4047 RET_LABEL34
:(void)0;
4051 rapid_type_analysis__RapidTypeAnalysis__try_send(self
, var33
, var_mproperty
); /* Direct call rapid_type_analysis#RapidTypeAnalysis#try_send on <self:RapidTypeAnalysis>*/
4053 CONTINUE_label
: (void)0;
4055 ((void (*)(val
*))(var29
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var29
) /* next on <var29:Iterator[Object]>*/;
4058 BREAK_label
: (void)0;
4061 /* method rapid_type_analysis#RapidTypeAnalysis#add_send for (self: Object, MType, MMethod) */
4062 void VIRTUAL_rapid_type_analysis__RapidTypeAnalysis__add_send(val
* self
, val
* p0
, val
* p1
) {
4063 rapid_type_analysis__RapidTypeAnalysis__add_send(self
, p0
, p1
); /* Direct call rapid_type_analysis#RapidTypeAnalysis#add_send on <self:Object(RapidTypeAnalysis)>*/
4066 /* method rapid_type_analysis#RapidTypeAnalysis#try_super_send for (self: RapidTypeAnalysis, MClassType, MMethodDef) */
4067 void rapid_type_analysis__RapidTypeAnalysis__try_super_send(val
* self
, val
* p0
, val
* p1
) {
4068 val
* var_recv
/* var recv: MClassType */;
4069 val
* var_mpropdef
/* var mpropdef: MMethodDef */;
4070 val
* var
/* : MClass */;
4071 val
* var2
/* : MClass */;
4072 val
* var3
/* : MClassDef */;
4073 val
* var4
/* : MClassType */;
4074 val
* var6
/* : MClassType */;
4075 val
* var7
/* : MModule */;
4076 val
* var9
/* : MModule */;
4077 val
* var10
/* : Set[MClassDef] */;
4078 val
* var11
/* : MClassDef */;
4079 val
* var13
/* : MClassDef */;
4080 short int var14
/* : Bool */;
4081 short int var15
/* : Bool */;
4082 val
* var16
/* : MModule */;
4083 val
* var18
/* : MModule */;
4084 val
* var19
/* : MPropDef */;
4085 val
* var_d
/* var d: MMethodDef */;
4089 { /* Inline model#MClassType#mclass (var_recv) on <var_recv:MClassType> */
4090 var2
= var_recv
->attrs
[COLOR_model__MClassType___mclass
].val
; /* _mclass on <var_recv:MClassType> */
4091 if (unlikely(var2
== NULL
)) {
4092 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
4093 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 969);
4101 var3
= model__MClass__intro(var
);
4104 { /* Inline model#MClassDef#bound_mtype (var3) on <var3:MClassDef> */
4105 var6
= var3
->attrs
[COLOR_model__MClassDef___bound_mtype
].val
; /* _bound_mtype on <var3:MClassDef> */
4106 if (unlikely(var6
== NULL
)) {
4107 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _bound_mtype");
4108 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 477);
4117 { /* Inline rapid_type_analysis#RapidTypeAnalysis#mainmodule (self) on <self:RapidTypeAnalysis> */
4118 var9
= self
->attrs
[COLOR_rapid_type_analysis__RapidTypeAnalysis___mainmodule
].val
; /* _mainmodule on <self:RapidTypeAnalysis> */
4119 if (unlikely(var9
== NULL
)) {
4120 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule");
4121 PRINT_ERROR(" (%s:%d)\n", "src/rapid_type_analysis.nit", 51);
4129 var10
= model__MClassType__collect_mclassdefs(var_recv
, var7
);
4132 { /* Inline model#MPropDef#mclassdef (var_mpropdef) on <var_mpropdef:MMethodDef> */
4133 var13
= var_mpropdef
->attrs
[COLOR_model__MPropDef___mclassdef
].val
; /* _mclassdef on <var_mpropdef:MMethodDef> */
4134 if (unlikely(var13
== NULL
)) {
4135 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdef");
4136 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1879);
4140 RET_LABEL12
:(void)0;
4144 var14
= ((short int (*)(val
*, val
*))(var10
->class->vft
[COLOR_abstract_collection__Collection__has
]))(var10
, var11
) /* has on <var10:Set[MClassDef]>*/;
4152 { /* Inline rapid_type_analysis#RapidTypeAnalysis#mainmodule (self) on <self:RapidTypeAnalysis> */
4153 var18
= self
->attrs
[COLOR_rapid_type_analysis__RapidTypeAnalysis___mainmodule
].val
; /* _mainmodule on <self:RapidTypeAnalysis> */
4154 if (unlikely(var18
== NULL
)) {
4155 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule");
4156 PRINT_ERROR(" (%s:%d)\n", "src/rapid_type_analysis.nit", 51);
4160 RET_LABEL17
:(void)0;
4164 var19
= model__MPropDef__lookup_next_definition(var_mpropdef
, var16
, var_recv
);
4168 rapid_type_analysis__RapidTypeAnalysis__add_call(self
, var_d
); /* Direct call rapid_type_analysis#RapidTypeAnalysis#add_call on <self:RapidTypeAnalysis>*/
4172 /* method rapid_type_analysis#RapidTypeAnalysis#try_super_send for (self: Object, MClassType, MMethodDef) */
4173 void VIRTUAL_rapid_type_analysis__RapidTypeAnalysis__try_super_send(val
* self
, val
* p0
, val
* p1
) {
4174 rapid_type_analysis__RapidTypeAnalysis__try_super_send(self
, p0
, p1
); /* Direct call rapid_type_analysis#RapidTypeAnalysis#try_super_send on <self:Object(RapidTypeAnalysis)>*/
4177 /* method rapid_type_analysis#RapidTypeAnalysis#add_super_send for (self: RapidTypeAnalysis, MType, MMethodDef) */
4178 void rapid_type_analysis__RapidTypeAnalysis__add_super_send(val
* self
, val
* p0
, val
* p1
) {
4179 val
* var_recv
/* var recv: MType */;
4180 val
* var_mpropdef
/* var mpropdef: MMethodDef */;
4181 val
* var
/* : HashSet[MMethodDef] */;
4182 val
* var2
/* : HashSet[MMethodDef] */;
4183 short int var3
/* : Bool */;
4184 val
* var4
/* : HashSet[MMethodDef] */;
4185 val
* var6
/* : HashSet[MMethodDef] */;
4186 val
* var7
/* : HashSet[MClassType] */;
4187 val
* var9
/* : HashSet[MClassType] */;
4188 val
* var10
/* : Iterator[Object] */;
4189 short int var11
/* : Bool */;
4190 val
* var12
/* : nullable Object */;
4191 val
* var_t
/* var t: MClassType */;
4195 { /* Inline rapid_type_analysis#RapidTypeAnalysis#live_super_sends (self) on <self:RapidTypeAnalysis> */
4196 var2
= self
->attrs
[COLOR_rapid_type_analysis__RapidTypeAnalysis___live_super_sends
].val
; /* _live_super_sends on <self:RapidTypeAnalysis> */
4197 if (unlikely(var2
== NULL
)) {
4198 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_super_sends");
4199 PRINT_ERROR(" (%s:%d)\n", "src/rapid_type_analysis.nit", 110);
4207 var3
= hash_collection__HashSet__has(var
, var_mpropdef
);
4214 { /* Inline rapid_type_analysis#RapidTypeAnalysis#live_super_sends (self) on <self:RapidTypeAnalysis> */
4215 var6
= self
->attrs
[COLOR_rapid_type_analysis__RapidTypeAnalysis___live_super_sends
].val
; /* _live_super_sends on <self:RapidTypeAnalysis> */
4216 if (unlikely(var6
== NULL
)) {
4217 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_super_sends");
4218 PRINT_ERROR(" (%s:%d)\n", "src/rapid_type_analysis.nit", 110);
4226 hash_collection__HashSet__add(var4
, var_mpropdef
); /* Direct call hash_collection#HashSet#add on <var4:HashSet[MMethodDef]>*/
4229 { /* Inline rapid_type_analysis#RapidTypeAnalysis#live_types (self) on <self:RapidTypeAnalysis> */
4230 var9
= self
->attrs
[COLOR_rapid_type_analysis__RapidTypeAnalysis___live_types
].val
; /* _live_types on <self:RapidTypeAnalysis> */
4231 if (unlikely(var9
== NULL
)) {
4232 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_types");
4233 PRINT_ERROR(" (%s:%d)\n", "src/rapid_type_analysis.nit", 55);
4241 var10
= hash_collection__HashSet__iterator(var7
);
4245 var11
= ((short int (*)(val
*))(var10
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var10
) /* is_ok on <var10:Iterator[Object]>*/;
4249 var12
= ((val
* (*)(val
*))(var10
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var10
) /* item on <var10:Iterator[Object]>*/;
4253 rapid_type_analysis__RapidTypeAnalysis__try_super_send(self
, var_t
, var_mpropdef
); /* Direct call rapid_type_analysis#RapidTypeAnalysis#try_super_send on <self:RapidTypeAnalysis>*/
4255 CONTINUE_label
: (void)0;
4257 ((void (*)(val
*))(var10
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var10
) /* next on <var10:Iterator[Object]>*/;
4260 BREAK_label
: (void)0;
4263 /* method rapid_type_analysis#RapidTypeAnalysis#add_super_send for (self: Object, MType, MMethodDef) */
4264 void VIRTUAL_rapid_type_analysis__RapidTypeAnalysis__add_super_send(val
* self
, val
* p0
, val
* p1
) {
4265 rapid_type_analysis__RapidTypeAnalysis__add_super_send(self
, p0
, p1
); /* Direct call rapid_type_analysis#RapidTypeAnalysis#add_super_send on <self:Object(RapidTypeAnalysis)>*/
4268 /* method rapid_type_analysis#RapidTypeAnalysis#init for (self: RapidTypeAnalysis, ModelBuilder, MModule) */
4269 void rapid_type_analysis__RapidTypeAnalysis__init(val
* self
, val
* p0
, val
* p1
) {
4270 self
->attrs
[COLOR_rapid_type_analysis__RapidTypeAnalysis___modelbuilder
].val
= p0
; /* _modelbuilder on <self:RapidTypeAnalysis> */
4271 self
->attrs
[COLOR_rapid_type_analysis__RapidTypeAnalysis___mainmodule
].val
= p1
; /* _mainmodule on <self:RapidTypeAnalysis> */
4274 /* method rapid_type_analysis#RapidTypeAnalysis#init for (self: Object, ModelBuilder, MModule) */
4275 void VIRTUAL_rapid_type_analysis__RapidTypeAnalysis__init(val
* self
, val
* p0
, val
* p1
) {
4276 { /* Inline rapid_type_analysis#RapidTypeAnalysis#init (self,p0,p1) on <self:Object(RapidTypeAnalysis)> */
4277 self
->attrs
[COLOR_rapid_type_analysis__RapidTypeAnalysis___modelbuilder
].val
= p0
; /* _modelbuilder on <self:Object(RapidTypeAnalysis)> */
4278 self
->attrs
[COLOR_rapid_type_analysis__RapidTypeAnalysis___mainmodule
].val
= p1
; /* _mainmodule on <self:Object(RapidTypeAnalysis)> */
4283 /* method rapid_type_analysis#RapidTypeVisitor#analysis for (self: RapidTypeVisitor): RapidTypeAnalysis */
4284 val
* rapid_type_analysis__RapidTypeVisitor__analysis(val
* self
) {
4285 val
* var
/* : RapidTypeAnalysis */;
4286 val
* var1
/* : RapidTypeAnalysis */;
4287 var1
= self
->attrs
[COLOR_rapid_type_analysis__RapidTypeVisitor___analysis
].val
; /* _analysis on <self:RapidTypeVisitor> */
4288 if (unlikely(var1
== NULL
)) {
4289 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _analysis");
4290 PRINT_ERROR(" (%s:%d)\n", "src/rapid_type_analysis.nit", 430);
4297 /* method rapid_type_analysis#RapidTypeVisitor#analysis for (self: Object): RapidTypeAnalysis */
4298 val
* VIRTUAL_rapid_type_analysis__RapidTypeVisitor__analysis(val
* self
) {
4299 val
* var
/* : RapidTypeAnalysis */;
4300 val
* var1
/* : RapidTypeAnalysis */;
4301 val
* var3
/* : RapidTypeAnalysis */;
4302 { /* Inline rapid_type_analysis#RapidTypeVisitor#analysis (self) on <self:Object(RapidTypeVisitor)> */
4303 var3
= self
->attrs
[COLOR_rapid_type_analysis__RapidTypeVisitor___analysis
].val
; /* _analysis on <self:Object(RapidTypeVisitor)> */
4304 if (unlikely(var3
== NULL
)) {
4305 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _analysis");
4306 PRINT_ERROR(" (%s:%d)\n", "src/rapid_type_analysis.nit", 430);
4316 /* method rapid_type_analysis#RapidTypeVisitor#analysis= for (self: RapidTypeVisitor, RapidTypeAnalysis) */
4317 void rapid_type_analysis__RapidTypeVisitor__analysis_61d(val
* self
, val
* p0
) {
4318 self
->attrs
[COLOR_rapid_type_analysis__RapidTypeVisitor___analysis
].val
= p0
; /* _analysis on <self:RapidTypeVisitor> */
4321 /* method rapid_type_analysis#RapidTypeVisitor#analysis= for (self: Object, RapidTypeAnalysis) */
4322 void VIRTUAL_rapid_type_analysis__RapidTypeVisitor__analysis_61d(val
* self
, val
* p0
) {
4323 { /* Inline rapid_type_analysis#RapidTypeVisitor#analysis= (self,p0) on <self:Object(RapidTypeVisitor)> */
4324 self
->attrs
[COLOR_rapid_type_analysis__RapidTypeVisitor___analysis
].val
= p0
; /* _analysis on <self:Object(RapidTypeVisitor)> */
4329 /* method rapid_type_analysis#RapidTypeVisitor#receiver for (self: RapidTypeVisitor): MClassType */
4330 val
* rapid_type_analysis__RapidTypeVisitor__receiver(val
* self
) {
4331 val
* var
/* : MClassType */;
4332 val
* var1
/* : MClassType */;
4333 var1
= self
->attrs
[COLOR_rapid_type_analysis__RapidTypeVisitor___receiver
].val
; /* _receiver on <self:RapidTypeVisitor> */
4334 if (unlikely(var1
== NULL
)) {
4335 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _receiver");
4336 PRINT_ERROR(" (%s:%d)\n", "src/rapid_type_analysis.nit", 431);
4343 /* method rapid_type_analysis#RapidTypeVisitor#receiver for (self: Object): MClassType */
4344 val
* VIRTUAL_rapid_type_analysis__RapidTypeVisitor__receiver(val
* self
) {
4345 val
* var
/* : MClassType */;
4346 val
* var1
/* : MClassType */;
4347 val
* var3
/* : MClassType */;
4348 { /* Inline rapid_type_analysis#RapidTypeVisitor#receiver (self) on <self:Object(RapidTypeVisitor)> */
4349 var3
= self
->attrs
[COLOR_rapid_type_analysis__RapidTypeVisitor___receiver
].val
; /* _receiver on <self:Object(RapidTypeVisitor)> */
4350 if (unlikely(var3
== NULL
)) {
4351 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _receiver");
4352 PRINT_ERROR(" (%s:%d)\n", "src/rapid_type_analysis.nit", 431);
4362 /* method rapid_type_analysis#RapidTypeVisitor#receiver= for (self: RapidTypeVisitor, MClassType) */
4363 void rapid_type_analysis__RapidTypeVisitor__receiver_61d(val
* self
, val
* p0
) {
4364 self
->attrs
[COLOR_rapid_type_analysis__RapidTypeVisitor___receiver
].val
= p0
; /* _receiver on <self:RapidTypeVisitor> */
4367 /* method rapid_type_analysis#RapidTypeVisitor#receiver= for (self: Object, MClassType) */
4368 void VIRTUAL_rapid_type_analysis__RapidTypeVisitor__receiver_61d(val
* self
, val
* p0
) {
4369 { /* Inline rapid_type_analysis#RapidTypeVisitor#receiver= (self,p0) on <self:Object(RapidTypeVisitor)> */
4370 self
->attrs
[COLOR_rapid_type_analysis__RapidTypeVisitor___receiver
].val
= p0
; /* _receiver on <self:Object(RapidTypeVisitor)> */
4375 /* method rapid_type_analysis#RapidTypeVisitor#mpropdef= for (self: RapidTypeVisitor, MPropDef) */
4376 void rapid_type_analysis__RapidTypeVisitor__mpropdef_61d(val
* self
, val
* p0
) {
4377 self
->attrs
[COLOR_rapid_type_analysis__RapidTypeVisitor___mpropdef
].val
= p0
; /* _mpropdef on <self:RapidTypeVisitor> */
4380 /* method rapid_type_analysis#RapidTypeVisitor#mpropdef= for (self: Object, MPropDef) */
4381 void VIRTUAL_rapid_type_analysis__RapidTypeVisitor__mpropdef_61d(val
* self
, val
* p0
) {
4382 { /* Inline rapid_type_analysis#RapidTypeVisitor#mpropdef= (self,p0) on <self:Object(RapidTypeVisitor)> */
4383 self
->attrs
[COLOR_rapid_type_analysis__RapidTypeVisitor___mpropdef
].val
= p0
; /* _mpropdef on <self:Object(RapidTypeVisitor)> */
4388 /* method rapid_type_analysis#RapidTypeVisitor#init for (self: RapidTypeVisitor, RapidTypeAnalysis, MClassType, MPropDef) */
4389 void rapid_type_analysis__RapidTypeVisitor__init(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
4390 val
* var_analysis
/* var analysis: RapidTypeAnalysis */;
4391 val
* var_receiver
/* var receiver: MClassType */;
4392 val
* var_mpropdef
/* var mpropdef: MPropDef */;
4393 short int var
/* : Bool */;
4394 short int var5
/* : Bool */;
4396 { /* Inline parser_nodes#Visitor#init (self) on <self:RapidTypeVisitor> */
4404 { /* Inline rapid_type_analysis#RapidTypeVisitor#analysis= (self,var_analysis) on <self:RapidTypeVisitor> */
4405 self
->attrs
[COLOR_rapid_type_analysis__RapidTypeVisitor___analysis
].val
= var_analysis
; /* _analysis on <self:RapidTypeVisitor> */
4410 { /* Inline rapid_type_analysis#RapidTypeVisitor#receiver= (self,var_receiver) on <self:RapidTypeVisitor> */
4411 self
->attrs
[COLOR_rapid_type_analysis__RapidTypeVisitor___receiver
].val
= var_receiver
; /* _receiver on <self:RapidTypeVisitor> */
4416 { /* Inline rapid_type_analysis#RapidTypeVisitor#mpropdef= (self,var_mpropdef) on <self:RapidTypeVisitor> */
4417 self
->attrs
[COLOR_rapid_type_analysis__RapidTypeVisitor___mpropdef
].val
= var_mpropdef
; /* _mpropdef on <self:RapidTypeVisitor> */
4422 var
= ((short int (*)(val
*))(var_receiver
->class->vft
[COLOR_model__MType__need_anchor
]))(var_receiver
) /* need_anchor on <var_receiver:MClassType>*/;
4425 if (unlikely(!var5
)) {
4426 PRINT_ERROR("Runtime error: %s", "Assert failed");
4427 PRINT_ERROR(" (%s:%d)\n", "src/rapid_type_analysis.nit", 439);
4432 /* method rapid_type_analysis#RapidTypeVisitor#init for (self: Object, RapidTypeAnalysis, MClassType, MPropDef) */
4433 void VIRTUAL_rapid_type_analysis__RapidTypeVisitor__init(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
4434 rapid_type_analysis__RapidTypeVisitor__init(self
, p0
, p1
, p2
); /* Direct call rapid_type_analysis#RapidTypeVisitor#init on <self:Object(RapidTypeVisitor)>*/
4437 /* method rapid_type_analysis#RapidTypeVisitor#visit for (self: RapidTypeVisitor, ANode) */
4438 void rapid_type_analysis__RapidTypeVisitor__visit(val
* self
, val
* p0
) {
4439 val
* var_n
/* var n: ANode */;
4440 short int var
/* : Bool */;
4443 val
* var1
/* : nullable MType */;
4444 val
* var3
/* : nullable MType */;
4445 val
* var_implicit_cast_to
/* var implicit_cast_to: nullable MType */;
4446 val
* var4
/* : null */;
4447 short int var5
/* : Bool */;
4448 short int var6
/* : Bool */;
4449 val
* var_other
/* var other: nullable Object */;
4450 short int var8
/* : Bool */;
4451 short int var9
/* : Bool */;
4452 short int var10
/* : Bool */;
4453 short int var11
/* : Bool */;
4456 short int var14
/* : Bool */;
4459 ((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>*/;
4461 /* <var_n:ANode> isa AExpr */
4462 cltype
= type_parser_nodes__AExpr
.color
;
4463 idtype
= type_parser_nodes__AExpr
.id
;
4464 if(cltype
>= var_n
->type
->table_size
) {
4467 var
= var_n
->type
->type_table
[cltype
] == idtype
;
4471 { /* Inline typing#AExpr#implicit_cast_to (var_n) on <var_n:ANode(AExpr)> */
4472 var3
= var_n
->attrs
[COLOR_typing__AExpr___implicit_cast_to
].val
; /* _implicit_cast_to on <var_n:ANode(AExpr)> */
4477 var_implicit_cast_to
= var1
;
4479 if (var_implicit_cast_to
== NULL
) {
4480 var5
= 0; /* is null */
4482 var5
= 1; /* arg is null and recv is not */
4485 { /* Inline kernel#Object#!= (var_implicit_cast_to,var4) on <var_implicit_cast_to:nullable MType> */
4488 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)>*/;
4500 rapid_type_analysis__RapidTypeVisitor__add_cast_type(self
, var_implicit_cast_to
); /* Direct call rapid_type_analysis#RapidTypeVisitor#add_cast_type on <self:RapidTypeVisitor>*/
4506 /* <var_n:ANode> isa AAnnotations */
4507 cltype12
= type_parser_nodes__AAnnotations
.color
;
4508 idtype13
= type_parser_nodes__AAnnotations
.id
;
4509 if(cltype12
>= var_n
->type
->table_size
) {
4512 var11
= var_n
->type
->type_table
[cltype12
] == idtype13
;
4517 ((void (*)(val
*, val
*))(var_n
->class->vft
[COLOR_parser_nodes__ANode__visit_all
]))(var_n
, self
) /* visit_all on <var_n:ANode>*/;
4523 /* method rapid_type_analysis#RapidTypeVisitor#visit for (self: Object, ANode) */
4524 void VIRTUAL_rapid_type_analysis__RapidTypeVisitor__visit(val
* self
, val
* p0
) {
4525 rapid_type_analysis__RapidTypeVisitor__visit(self
, p0
); /* Direct call rapid_type_analysis#RapidTypeVisitor#visit on <self:Object(RapidTypeVisitor)>*/
4528 /* method rapid_type_analysis#RapidTypeVisitor#cleanup_type for (self: RapidTypeVisitor, MType): nullable MClassType */
4529 val
* rapid_type_analysis__RapidTypeVisitor__cleanup_type(val
* self
, val
* p0
) {
4530 val
* var
/* : nullable MClassType */;
4531 val
* var_mtype
/* var mtype: MType */;
4532 val
* var1
/* : RapidTypeAnalysis */;
4533 val
* var3
/* : RapidTypeAnalysis */;
4534 val
* var4
/* : MModule */;
4535 val
* var6
/* : MModule */;
4536 val
* var7
/* : MClassType */;
4537 val
* var9
/* : MClassType */;
4538 val
* var10
/* : MType */;
4539 short int var11
/* : Bool */;
4542 val
* var12
/* : null */;
4543 val
* var13
/* : MType */;
4544 short int var14
/* : Bool */;
4547 short int var17
/* : Bool */;
4548 short int var18
/* : Bool */;
4551 { /* Inline rapid_type_analysis#RapidTypeVisitor#analysis (self) on <self:RapidTypeVisitor> */
4552 var3
= self
->attrs
[COLOR_rapid_type_analysis__RapidTypeVisitor___analysis
].val
; /* _analysis on <self:RapidTypeVisitor> */
4553 if (unlikely(var3
== NULL
)) {
4554 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _analysis");
4555 PRINT_ERROR(" (%s:%d)\n", "src/rapid_type_analysis.nit", 430);
4563 { /* Inline rapid_type_analysis#RapidTypeAnalysis#mainmodule (var1) on <var1:RapidTypeAnalysis> */
4564 var6
= var1
->attrs
[COLOR_rapid_type_analysis__RapidTypeAnalysis___mainmodule
].val
; /* _mainmodule on <var1:RapidTypeAnalysis> */
4565 if (unlikely(var6
== NULL
)) {
4566 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule");
4567 PRINT_ERROR(" (%s:%d)\n", "src/rapid_type_analysis.nit", 51);
4575 { /* Inline rapid_type_analysis#RapidTypeVisitor#receiver (self) on <self:RapidTypeVisitor> */
4576 var9
= self
->attrs
[COLOR_rapid_type_analysis__RapidTypeVisitor___receiver
].val
; /* _receiver on <self:RapidTypeVisitor> */
4577 if (unlikely(var9
== NULL
)) {
4578 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _receiver");
4579 PRINT_ERROR(" (%s:%d)\n", "src/rapid_type_analysis.nit", 431);
4587 var10
= ((val
* (*)(val
*, val
*, val
*))(var_mtype
->class->vft
[COLOR_model__MType__anchor_to
]))(var_mtype
, var4
, var7
) /* anchor_to on <var_mtype:MType>*/;
4590 /* <var_mtype:MType> isa MNullType */
4591 cltype
= type_model__MNullType
.color
;
4592 idtype
= type_model__MNullType
.id
;
4593 if(cltype
>= var_mtype
->type
->table_size
) {
4596 var11
= var_mtype
->type
->type_table
[cltype
] == idtype
;
4605 var13
= ((val
* (*)(val
*))(var_mtype
->class->vft
[COLOR_model__MType__as_notnullable
]))(var_mtype
) /* as_notnullable on <var_mtype:MType>*/;
4608 /* <var_mtype:MType> isa MClassType */
4609 cltype15
= type_model__MClassType
.color
;
4610 idtype16
= type_model__MClassType
.id
;
4611 if(cltype15
>= var_mtype
->type
->table_size
) {
4614 var14
= var_mtype
->type
->type_table
[cltype15
] == idtype16
;
4616 if (unlikely(!var14
)) {
4617 PRINT_ERROR("Runtime error: %s", "Assert failed");
4618 PRINT_ERROR(" (%s:%d)\n", "src/rapid_type_analysis.nit", 461);
4622 var17
= ((short int (*)(val
*))(var_mtype
->class->vft
[COLOR_model__MType__need_anchor
]))(var_mtype
) /* need_anchor on <var_mtype:MType(MClassType)>*/;
4625 if (unlikely(!var18
)) {
4626 PRINT_ERROR("Runtime error: %s", "Assert failed");
4627 PRINT_ERROR(" (%s:%d)\n", "src/rapid_type_analysis.nit", 462);
4635 /* method rapid_type_analysis#RapidTypeVisitor#cleanup_type for (self: Object, MType): nullable MClassType */
4636 val
* VIRTUAL_rapid_type_analysis__RapidTypeVisitor__cleanup_type(val
* self
, val
* p0
) {
4637 val
* var
/* : nullable MClassType */;
4638 val
* var1
/* : nullable MClassType */;
4639 var1
= rapid_type_analysis__RapidTypeVisitor__cleanup_type(self
, p0
);
4644 /* method rapid_type_analysis#RapidTypeVisitor#get_class for (self: RapidTypeVisitor, String): MClass */
4645 val
* rapid_type_analysis__RapidTypeVisitor__get_class(val
* self
, val
* p0
) {
4646 val
* var
/* : MClass */;
4647 val
* var_name
/* var name: String */;
4648 val
* var1
/* : RapidTypeAnalysis */;
4649 val
* var3
/* : RapidTypeAnalysis */;
4650 val
* var4
/* : MModule */;
4651 val
* var6
/* : MModule */;
4652 val
* var7
/* : MClass */;
4655 { /* Inline rapid_type_analysis#RapidTypeVisitor#analysis (self) on <self:RapidTypeVisitor> */
4656 var3
= self
->attrs
[COLOR_rapid_type_analysis__RapidTypeVisitor___analysis
].val
; /* _analysis on <self:RapidTypeVisitor> */
4657 if (unlikely(var3
== NULL
)) {
4658 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _analysis");
4659 PRINT_ERROR(" (%s:%d)\n", "src/rapid_type_analysis.nit", 430);
4667 { /* Inline rapid_type_analysis#RapidTypeAnalysis#mainmodule (var1) on <var1:RapidTypeAnalysis> */
4668 var6
= var1
->attrs
[COLOR_rapid_type_analysis__RapidTypeAnalysis___mainmodule
].val
; /* _mainmodule on <var1:RapidTypeAnalysis> */
4669 if (unlikely(var6
== NULL
)) {
4670 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule");
4671 PRINT_ERROR(" (%s:%d)\n", "src/rapid_type_analysis.nit", 51);
4679 var7
= model__MModule__get_primitive_class(var4
, var_name
);
4686 /* method rapid_type_analysis#RapidTypeVisitor#get_class for (self: Object, String): MClass */
4687 val
* VIRTUAL_rapid_type_analysis__RapidTypeVisitor__get_class(val
* self
, val
* p0
) {
4688 val
* var
/* : MClass */;
4689 val
* var1
/* : MClass */;
4690 var1
= rapid_type_analysis__RapidTypeVisitor__get_class(self
, p0
);
4695 /* method rapid_type_analysis#RapidTypeVisitor#get_method for (self: RapidTypeVisitor, MType, String): MMethod */
4696 val
* rapid_type_analysis__RapidTypeVisitor__get_method(val
* self
, val
* p0
, val
* p1
) {
4697 val
* var
/* : MMethod */;
4698 val
* var_recv
/* var recv: MType */;
4699 val
* var_name
/* var name: String */;
4700 val
* var1
/* : nullable MClassType */;
4701 val
* var_mtype
/* var mtype: nullable MClassType */;
4702 val
* var2
/* : null */;
4703 short int var3
/* : Bool */;
4704 short int var4
/* : Bool */;
4705 val
* var_other
/* var other: nullable Object */;
4706 short int var6
/* : Bool */;
4707 short int var7
/* : Bool */;
4708 short int var8
/* : Bool */;
4709 val
* var9
/* : RapidTypeAnalysis */;
4710 val
* var11
/* : RapidTypeAnalysis */;
4711 val
* var12
/* : ModelBuilder */;
4712 val
* var14
/* : ModelBuilder */;
4713 val
* var15
/* : nullable ANode */;
4714 val
* var16
/* : MClass */;
4715 val
* var18
/* : MClass */;
4716 val
* var19
/* : RapidTypeAnalysis */;
4717 val
* var21
/* : RapidTypeAnalysis */;
4718 val
* var22
/* : MModule */;
4719 val
* var24
/* : MModule */;
4720 val
* var25
/* : MMethod */;
4724 var1
= rapid_type_analysis__RapidTypeVisitor__cleanup_type(self
, var_recv
);
4728 if (var_mtype
== NULL
) {
4729 var3
= 0; /* is null */
4731 var3
= 1; /* arg is null and recv is not */
4734 { /* Inline kernel#Object#!= (var_mtype,var2) on <var_mtype:nullable MClassType> */
4737 var7
= ((short int (*)(val
*, val
*))(var_mtype
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var_mtype
, var_other
) /* == on <var_mtype:nullable MClassType(MClassType)>*/;
4747 if (unlikely(!var3
)) {
4748 PRINT_ERROR("Runtime error: %s", "Assert failed");
4749 PRINT_ERROR(" (%s:%d)\n", "src/rapid_type_analysis.nit", 474);
4753 { /* Inline rapid_type_analysis#RapidTypeVisitor#analysis (self) on <self:RapidTypeVisitor> */
4754 var11
= self
->attrs
[COLOR_rapid_type_analysis__RapidTypeVisitor___analysis
].val
; /* _analysis on <self:RapidTypeVisitor> */
4755 if (unlikely(var11
== NULL
)) {
4756 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _analysis");
4757 PRINT_ERROR(" (%s:%d)\n", "src/rapid_type_analysis.nit", 430);
4761 RET_LABEL10
:(void)0;
4765 { /* Inline rapid_type_analysis#RapidTypeAnalysis#modelbuilder (var9) on <var9:RapidTypeAnalysis> */
4766 var14
= var9
->attrs
[COLOR_rapid_type_analysis__RapidTypeAnalysis___modelbuilder
].val
; /* _modelbuilder on <var9:RapidTypeAnalysis> */
4767 if (unlikely(var14
== NULL
)) {
4768 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
4769 PRINT_ERROR(" (%s:%d)\n", "src/rapid_type_analysis.nit", 48);
4773 RET_LABEL13
:(void)0;
4777 var15
= parser_nodes__Visitor__current_node(self
);
4779 if (unlikely(var15
== NULL
)) {
4780 PRINT_ERROR("Runtime error: %s", "Cast failed");
4781 PRINT_ERROR(" (%s:%d)\n", "src/rapid_type_analysis.nit", 475);
4785 { /* Inline model#MClassType#mclass (var_mtype) on <var_mtype:nullable MClassType(MClassType)> */
4786 var18
= var_mtype
->attrs
[COLOR_model__MClassType___mclass
].val
; /* _mclass on <var_mtype:nullable MClassType(MClassType)> */
4787 if (unlikely(var18
== NULL
)) {
4788 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
4789 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 969);
4793 RET_LABEL17
:(void)0;
4797 { /* Inline rapid_type_analysis#RapidTypeVisitor#analysis (self) on <self:RapidTypeVisitor> */
4798 var21
= self
->attrs
[COLOR_rapid_type_analysis__RapidTypeVisitor___analysis
].val
; /* _analysis on <self:RapidTypeVisitor> */
4799 if (unlikely(var21
== NULL
)) {
4800 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _analysis");
4801 PRINT_ERROR(" (%s:%d)\n", "src/rapid_type_analysis.nit", 430);
4805 RET_LABEL20
:(void)0;
4809 { /* Inline rapid_type_analysis#RapidTypeAnalysis#mainmodule (var19) on <var19:RapidTypeAnalysis> */
4810 var24
= var19
->attrs
[COLOR_rapid_type_analysis__RapidTypeAnalysis___mainmodule
].val
; /* _mainmodule on <var19:RapidTypeAnalysis> */
4811 if (unlikely(var24
== NULL
)) {
4812 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule");
4813 PRINT_ERROR(" (%s:%d)\n", "src/rapid_type_analysis.nit", 51);
4817 RET_LABEL23
:(void)0;
4821 var25
= modelbuilder__ModelBuilder__force_get_primitive_method(var12
, var15
, var_name
, var16
, var22
);
4828 /* method rapid_type_analysis#RapidTypeVisitor#get_method for (self: Object, MType, String): MMethod */
4829 val
* VIRTUAL_rapid_type_analysis__RapidTypeVisitor__get_method(val
* self
, val
* p0
, val
* p1
) {
4830 val
* var
/* : MMethod */;
4831 val
* var1
/* : MMethod */;
4832 var1
= rapid_type_analysis__RapidTypeVisitor__get_method(self
, p0
, p1
);
4837 /* method rapid_type_analysis#RapidTypeVisitor#add_type for (self: RapidTypeVisitor, MClassType) */
4838 void rapid_type_analysis__RapidTypeVisitor__add_type(val
* self
, val
* p0
) {
4839 val
* var_mtype
/* var mtype: MClassType */;
4840 val
* var
/* : RapidTypeAnalysis */;
4841 val
* var2
/* : RapidTypeAnalysis */;
4842 val
* var3
/* : MClassType */;
4843 val
* var5
/* : MClassType */;
4846 { /* Inline rapid_type_analysis#RapidTypeVisitor#analysis (self) on <self:RapidTypeVisitor> */
4847 var2
= self
->attrs
[COLOR_rapid_type_analysis__RapidTypeVisitor___analysis
].val
; /* _analysis on <self:RapidTypeVisitor> */
4848 if (unlikely(var2
== NULL
)) {
4849 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _analysis");
4850 PRINT_ERROR(" (%s:%d)\n", "src/rapid_type_analysis.nit", 430);
4858 { /* Inline rapid_type_analysis#RapidTypeVisitor#receiver (self) on <self:RapidTypeVisitor> */
4859 var5
= self
->attrs
[COLOR_rapid_type_analysis__RapidTypeVisitor___receiver
].val
; /* _receiver on <self:RapidTypeVisitor> */
4860 if (unlikely(var5
== NULL
)) {
4861 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _receiver");
4862 PRINT_ERROR(" (%s:%d)\n", "src/rapid_type_analysis.nit", 431);
4870 rapid_type_analysis__RapidTypeAnalysis__add_new(var
, var3
, var_mtype
); /* Direct call rapid_type_analysis#RapidTypeAnalysis#add_new on <var:RapidTypeAnalysis>*/
4874 /* method rapid_type_analysis#RapidTypeVisitor#add_type for (self: Object, MClassType) */
4875 void VIRTUAL_rapid_type_analysis__RapidTypeVisitor__add_type(val
* self
, val
* p0
) {
4876 rapid_type_analysis__RapidTypeVisitor__add_type(self
, p0
); /* Direct call rapid_type_analysis#RapidTypeVisitor#add_type on <self:Object(RapidTypeVisitor)>*/
4879 /* method rapid_type_analysis#RapidTypeVisitor#add_monomorphic_send for (self: RapidTypeVisitor, MType, MMethod) */
4880 void rapid_type_analysis__RapidTypeVisitor__add_monomorphic_send(val
* self
, val
* p0
, val
* p1
) {
4881 val
* var_mtype
/* var mtype: MType */;
4882 val
* var_mproperty
/* var mproperty: MMethod */;
4883 val
* var
/* : RapidTypeAnalysis */;
4884 val
* var2
/* : RapidTypeAnalysis */;
4885 val
* var3
/* : HashSet[MMethod] */;
4886 val
* var5
/* : HashSet[MMethod] */;
4887 val
* var6
/* : RapidTypeAnalysis */;
4888 val
* var8
/* : RapidTypeAnalysis */;
4889 short int var9
/* : Bool */;
4892 const char* var_class_name
;
4896 { /* Inline rapid_type_analysis#RapidTypeVisitor#analysis (self) on <self:RapidTypeVisitor> */
4897 var2
= self
->attrs
[COLOR_rapid_type_analysis__RapidTypeVisitor___analysis
].val
; /* _analysis on <self:RapidTypeVisitor> */
4898 if (unlikely(var2
== NULL
)) {
4899 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _analysis");
4900 PRINT_ERROR(" (%s:%d)\n", "src/rapid_type_analysis.nit", 430);
4908 { /* Inline rapid_type_analysis#RapidTypeAnalysis#live_methods (var) on <var:RapidTypeAnalysis> */
4909 var5
= var
->attrs
[COLOR_rapid_type_analysis__RapidTypeAnalysis___live_methods
].val
; /* _live_methods on <var:RapidTypeAnalysis> */
4910 if (unlikely(var5
== NULL
)) {
4911 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_methods");
4912 PRINT_ERROR(" (%s:%d)\n", "src/rapid_type_analysis.nit", 77);
4920 hash_collection__HashSet__add(var3
, var_mproperty
); /* Direct call hash_collection#HashSet#add on <var3:HashSet[MMethod]>*/
4923 { /* Inline rapid_type_analysis#RapidTypeVisitor#analysis (self) on <self:RapidTypeVisitor> */
4924 var8
= self
->attrs
[COLOR_rapid_type_analysis__RapidTypeVisitor___analysis
].val
; /* _analysis on <self:RapidTypeVisitor> */
4925 if (unlikely(var8
== NULL
)) {
4926 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _analysis");
4927 PRINT_ERROR(" (%s:%d)\n", "src/rapid_type_analysis.nit", 430);
4934 /* <var_mtype:MType> isa MClassType */
4935 cltype
= type_model__MClassType
.color
;
4936 idtype
= type_model__MClassType
.id
;
4937 if(cltype
>= var_mtype
->type
->table_size
) {
4940 var9
= var_mtype
->type
->type_table
[cltype
] == idtype
;
4942 if (unlikely(!var9
)) {
4943 var_class_name
= var_mtype
== NULL ?
"null" : var_mtype
->type
->name
;
4944 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "MClassType", var_class_name
);
4945 PRINT_ERROR(" (%s:%d)\n", "src/rapid_type_analysis.nit", 483);
4949 rapid_type_analysis__RapidTypeAnalysis__try_send(var6
, var_mtype
, var_mproperty
); /* Direct call rapid_type_analysis#RapidTypeAnalysis#try_send on <var6:RapidTypeAnalysis>*/
4953 /* method rapid_type_analysis#RapidTypeVisitor#add_monomorphic_send for (self: Object, MType, MMethod) */
4954 void VIRTUAL_rapid_type_analysis__RapidTypeVisitor__add_monomorphic_send(val
* self
, val
* p0
, val
* p1
) {
4955 rapid_type_analysis__RapidTypeVisitor__add_monomorphic_send(self
, p0
, p1
); /* Direct call rapid_type_analysis#RapidTypeVisitor#add_monomorphic_send on <self:Object(RapidTypeVisitor)>*/
4958 /* method rapid_type_analysis#RapidTypeVisitor#add_cast_type for (self: RapidTypeVisitor, MType) */
4959 void rapid_type_analysis__RapidTypeVisitor__add_cast_type(val
* self
, val
* p0
) {
4960 val
* var_mtype
/* var mtype: MType */;
4961 val
* var
/* : RapidTypeAnalysis */;
4962 val
* var2
/* : RapidTypeAnalysis */;
4965 { /* Inline rapid_type_analysis#RapidTypeVisitor#analysis (self) on <self:RapidTypeVisitor> */
4966 var2
= self
->attrs
[COLOR_rapid_type_analysis__RapidTypeVisitor___analysis
].val
; /* _analysis on <self:RapidTypeVisitor> */
4967 if (unlikely(var2
== NULL
)) {
4968 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _analysis");
4969 PRINT_ERROR(" (%s:%d)\n", "src/rapid_type_analysis.nit", 430);
4977 rapid_type_analysis__RapidTypeAnalysis__add_cast(var
, var_mtype
); /* Direct call rapid_type_analysis#RapidTypeAnalysis#add_cast on <var:RapidTypeAnalysis>*/
4981 /* method rapid_type_analysis#RapidTypeVisitor#add_cast_type for (self: Object, MType) */
4982 void VIRTUAL_rapid_type_analysis__RapidTypeVisitor__add_cast_type(val
* self
, val
* p0
) {
4983 rapid_type_analysis__RapidTypeVisitor__add_cast_type(self
, p0
); /* Direct call rapid_type_analysis#RapidTypeVisitor#add_cast_type on <self:Object(RapidTypeVisitor)>*/
4986 /* method rapid_type_analysis#RapidTypeVisitor#add_callsite for (self: RapidTypeVisitor, nullable CallSite) */
4987 void rapid_type_analysis__RapidTypeVisitor__add_callsite(val
* self
, val
* p0
) {
4988 val
* var_callsite
/* var callsite: nullable CallSite */;
4989 val
* var
/* : null */;
4990 short int var1
/* : Bool */;
4991 short int var2
/* : Bool */;
4992 val
* var_other
/* var other: nullable Object */;
4993 short int var4
/* : Bool */;
4994 short int var5
/* : Bool */;
4995 short int var6
/* : Bool */;
4996 val
* var7
/* : RapidTypeAnalysis */;
4997 val
* var9
/* : RapidTypeAnalysis */;
4998 val
* var10
/* : MType */;
4999 val
* var12
/* : MType */;
5000 val
* var13
/* : MMethod */;
5001 val
* var15
/* : MMethod */;
5002 val
* var16
/* : RapidTypeAnalysis */;
5003 val
* var18
/* : RapidTypeAnalysis */;
5004 val
* var19
/* : HashSet[CallSite] */;
5005 val
* var21
/* : HashSet[CallSite] */;
5008 if (var_callsite
== NULL
) {
5009 var1
= 0; /* is null */
5011 var1
= 1; /* arg is null and recv is not */
5014 { /* Inline kernel#Object#!= (var_callsite,var) on <var_callsite:nullable CallSite> */
5017 var5
= ((short int (*)(val
*, val
*))(var_callsite
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var_callsite
, var_other
) /* == on <var_callsite:nullable CallSite(CallSite)>*/;
5029 { /* Inline rapid_type_analysis#RapidTypeVisitor#analysis (self) on <self:RapidTypeVisitor> */
5030 var9
= self
->attrs
[COLOR_rapid_type_analysis__RapidTypeVisitor___analysis
].val
; /* _analysis on <self:RapidTypeVisitor> */
5031 if (unlikely(var9
== NULL
)) {
5032 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _analysis");
5033 PRINT_ERROR(" (%s:%d)\n", "src/rapid_type_analysis.nit", 430);
5041 { /* Inline typing#CallSite#recv (var_callsite) on <var_callsite:nullable CallSite(CallSite)> */
5042 var12
= var_callsite
->attrs
[COLOR_typing__CallSite___recv
].val
; /* _recv on <var_callsite:nullable CallSite(CallSite)> */
5043 if (unlikely(var12
== NULL
)) {
5044 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _recv");
5045 PRINT_ERROR(" (%s:%d)\n", "src/typing.nit", 408);
5049 RET_LABEL11
:(void)0;
5053 { /* Inline typing#CallSite#mproperty (var_callsite) on <var_callsite:nullable CallSite(CallSite)> */
5054 var15
= var_callsite
->attrs
[COLOR_typing__CallSite___mproperty
].val
; /* _mproperty on <var_callsite:nullable CallSite(CallSite)> */
5055 if (unlikely(var15
== NULL
)) {
5056 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty");
5057 PRINT_ERROR(" (%s:%d)\n", "src/typing.nit", 422);
5061 RET_LABEL14
:(void)0;
5065 rapid_type_analysis__RapidTypeAnalysis__add_send(var7
, var10
, var13
); /* Direct call rapid_type_analysis#RapidTypeAnalysis#add_send on <var7:RapidTypeAnalysis>*/
5068 { /* Inline rapid_type_analysis#RapidTypeVisitor#analysis (self) on <self:RapidTypeVisitor> */
5069 var18
= self
->attrs
[COLOR_rapid_type_analysis__RapidTypeVisitor___analysis
].val
; /* _analysis on <self:RapidTypeVisitor> */
5070 if (unlikely(var18
== NULL
)) {
5071 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _analysis");
5072 PRINT_ERROR(" (%s:%d)\n", "src/rapid_type_analysis.nit", 430);
5076 RET_LABEL17
:(void)0;
5080 { /* Inline rapid_type_analysis#RapidTypeAnalysis#live_callsites (var16) on <var16:RapidTypeAnalysis> */
5081 var21
= var16
->attrs
[COLOR_rapid_type_analysis__RapidTypeAnalysis___live_callsites
].val
; /* _live_callsites on <var16:RapidTypeAnalysis> */
5082 if (unlikely(var21
== NULL
)) {
5083 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_callsites");
5084 PRINT_ERROR(" (%s:%d)\n", "src/rapid_type_analysis.nit", 80);
5088 RET_LABEL20
:(void)0;
5092 hash_collection__HashSet__add(var19
, var_callsite
); /* Direct call hash_collection#HashSet#add on <var19:HashSet[CallSite]>*/
5098 /* method rapid_type_analysis#RapidTypeVisitor#add_callsite for (self: Object, nullable CallSite) */
5099 void VIRTUAL_rapid_type_analysis__RapidTypeVisitor__add_callsite(val
* self
, val
* p0
) {
5100 rapid_type_analysis__RapidTypeVisitor__add_callsite(self
, p0
); /* Direct call rapid_type_analysis#RapidTypeVisitor#add_callsite on <self:Object(RapidTypeVisitor)>*/
5103 /* method rapid_type_analysis#ANode#accept_rapid_type_visitor for (self: ANode, RapidTypeVisitor) */
5104 void rapid_type_analysis__ANode__accept_rapid_type_visitor(val
* self
, val
* p0
) {
5105 val
* var_v
/* var v: RapidTypeVisitor */;
5109 /* method rapid_type_analysis#ANode#accept_rapid_type_visitor for (self: Object, RapidTypeVisitor) */
5110 void VIRTUAL_rapid_type_analysis__ANode__accept_rapid_type_visitor(val
* self
, val
* p0
) {
5111 val
* var_v
/* var v: RapidTypeVisitor */;
5112 { /* Inline rapid_type_analysis#ANode#accept_rapid_type_visitor (self,p0) on <self:Object(ANode)> */
5118 /* method rapid_type_analysis#AIntExpr#accept_rapid_type_visitor for (self: AIntExpr, RapidTypeVisitor) */
5119 void rapid_type_analysis__AIntExpr__accept_rapid_type_visitor(val
* self
, val
* p0
) {
5120 val
* var_v
/* var v: RapidTypeVisitor */;
5121 val
* var
/* : nullable MType */;
5122 val
* var2
/* : nullable MType */;
5123 short int var3
/* : Bool */;
5126 const char* var_class_name
;
5129 { /* Inline typing#AExpr#mtype (self) on <self:AIntExpr> */
5130 var2
= self
->attrs
[COLOR_typing__AExpr___mtype
].val
; /* _mtype on <self:AIntExpr> */
5135 /* <var:nullable MType> isa MClassType */
5136 cltype
= type_model__MClassType
.color
;
5137 idtype
= type_model__MClassType
.id
;
5141 if(cltype
>= var
->type
->table_size
) {
5144 var3
= var
->type
->type_table
[cltype
] == idtype
;
5147 if (unlikely(!var3
)) {
5148 var_class_name
= var
== NULL ?
"null" : var
->type
->name
;
5149 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "MClassType", var_class_name
);
5150 PRINT_ERROR(" (%s:%d)\n", "src/rapid_type_analysis.nit", 507);
5154 rapid_type_analysis__RapidTypeVisitor__add_type(var_v
, var
); /* Direct call rapid_type_analysis#RapidTypeVisitor#add_type on <var_v:RapidTypeVisitor>*/
5158 /* method rapid_type_analysis#AIntExpr#accept_rapid_type_visitor for (self: Object, RapidTypeVisitor) */
5159 void VIRTUAL_rapid_type_analysis__AIntExpr__accept_rapid_type_visitor(val
* self
, val
* p0
) {
5160 rapid_type_analysis__AIntExpr__accept_rapid_type_visitor(self
, p0
); /* Direct call rapid_type_analysis#AIntExpr#accept_rapid_type_visitor on <self:Object(AIntExpr)>*/
5163 /* method rapid_type_analysis#AFloatExpr#accept_rapid_type_visitor for (self: AFloatExpr, RapidTypeVisitor) */
5164 void rapid_type_analysis__AFloatExpr__accept_rapid_type_visitor(val
* self
, val
* p0
) {
5165 val
* var_v
/* var v: RapidTypeVisitor */;
5166 val
* var
/* : nullable MType */;
5167 val
* var2
/* : nullable MType */;
5168 short int var3
/* : Bool */;
5171 const char* var_class_name
;
5174 { /* Inline typing#AExpr#mtype (self) on <self:AFloatExpr> */
5175 var2
= self
->attrs
[COLOR_typing__AExpr___mtype
].val
; /* _mtype on <self:AFloatExpr> */
5180 /* <var:nullable MType> isa MClassType */
5181 cltype
= type_model__MClassType
.color
;
5182 idtype
= type_model__MClassType
.id
;
5186 if(cltype
>= var
->type
->table_size
) {
5189 var3
= var
->type
->type_table
[cltype
] == idtype
;
5192 if (unlikely(!var3
)) {
5193 var_class_name
= var
== NULL ?
"null" : var
->type
->name
;
5194 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "MClassType", var_class_name
);
5195 PRINT_ERROR(" (%s:%d)\n", "src/rapid_type_analysis.nit", 514);
5199 rapid_type_analysis__RapidTypeVisitor__add_type(var_v
, var
); /* Direct call rapid_type_analysis#RapidTypeVisitor#add_type on <var_v:RapidTypeVisitor>*/
5203 /* method rapid_type_analysis#AFloatExpr#accept_rapid_type_visitor for (self: Object, RapidTypeVisitor) */
5204 void VIRTUAL_rapid_type_analysis__AFloatExpr__accept_rapid_type_visitor(val
* self
, val
* p0
) {
5205 rapid_type_analysis__AFloatExpr__accept_rapid_type_visitor(self
, p0
); /* Direct call rapid_type_analysis#AFloatExpr#accept_rapid_type_visitor on <self:Object(AFloatExpr)>*/
5208 /* method rapid_type_analysis#ACharExpr#accept_rapid_type_visitor for (self: ACharExpr, RapidTypeVisitor) */
5209 void rapid_type_analysis__ACharExpr__accept_rapid_type_visitor(val
* self
, val
* p0
) {
5210 val
* var_v
/* var v: RapidTypeVisitor */;
5211 val
* var
/* : nullable MType */;
5212 val
* var2
/* : nullable MType */;
5213 short int var3
/* : Bool */;
5216 const char* var_class_name
;
5219 { /* Inline typing#AExpr#mtype (self) on <self:ACharExpr> */
5220 var2
= self
->attrs
[COLOR_typing__AExpr___mtype
].val
; /* _mtype on <self:ACharExpr> */
5225 /* <var:nullable MType> isa MClassType */
5226 cltype
= type_model__MClassType
.color
;
5227 idtype
= type_model__MClassType
.id
;
5231 if(cltype
>= var
->type
->table_size
) {
5234 var3
= var
->type
->type_table
[cltype
] == idtype
;
5237 if (unlikely(!var3
)) {
5238 var_class_name
= var
== NULL ?
"null" : var
->type
->name
;
5239 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "MClassType", var_class_name
);
5240 PRINT_ERROR(" (%s:%d)\n", "src/rapid_type_analysis.nit", 521);
5244 rapid_type_analysis__RapidTypeVisitor__add_type(var_v
, var
); /* Direct call rapid_type_analysis#RapidTypeVisitor#add_type on <var_v:RapidTypeVisitor>*/
5248 /* method rapid_type_analysis#ACharExpr#accept_rapid_type_visitor for (self: Object, RapidTypeVisitor) */
5249 void VIRTUAL_rapid_type_analysis__ACharExpr__accept_rapid_type_visitor(val
* self
, val
* p0
) {
5250 rapid_type_analysis__ACharExpr__accept_rapid_type_visitor(self
, p0
); /* Direct call rapid_type_analysis#ACharExpr#accept_rapid_type_visitor on <self:Object(ACharExpr)>*/
5253 /* method rapid_type_analysis#AArrayExpr#accept_rapid_type_visitor for (self: AArrayExpr, RapidTypeVisitor) */
5254 void rapid_type_analysis__AArrayExpr__accept_rapid_type_visitor(val
* self
, val
* p0
) {
5255 val
* var_v
/* var v: RapidTypeVisitor */;
5256 val
* var
/* : nullable MType */;
5257 val
* var2
/* : nullable MType */;
5258 short int var3
/* : Bool */;
5261 const char* var_class_name
;
5262 val
* var_mtype
/* var mtype: MClassType */;
5263 val
* var4
/* : RapidTypeAnalysis */;
5264 val
* var6
/* : RapidTypeAnalysis */;
5265 val
* var7
/* : MModule */;
5266 val
* var9
/* : MModule */;
5267 static val
* varonce
;
5268 val
* var10
/* : String */;
5269 char* var11
/* : NativeString */;
5270 long var12
/* : Int */;
5271 val
* var13
/* : FlatString */;
5272 val
* var14
/* : MClass */;
5273 val
* var15
/* : Array[MType] */;
5274 long var16
/* : Int */;
5275 val
* var_
/* var : Array[MType] */;
5276 val
* var17
/* : Array[MType] */;
5277 val
* var19
/* : Array[MType] */;
5278 val
* var20
/* : nullable Object */;
5279 val
* var21
/* : MClassType */;
5280 val
* var_native
/* var native: MClassType */;
5281 val
* var22
/* : nullable MClassType */;
5282 static val
* varonce23
;
5283 val
* var24
/* : String */;
5284 char* var25
/* : NativeString */;
5285 long var26
/* : Int */;
5286 val
* var27
/* : FlatString */;
5287 val
* var28
/* : MMethod */;
5288 val
* var_prop
/* var prop: MMethod */;
5291 { /* Inline typing#AExpr#mtype (self) on <self:AArrayExpr> */
5292 var2
= self
->attrs
[COLOR_typing__AExpr___mtype
].val
; /* _mtype on <self:AArrayExpr> */
5297 /* <var:nullable MType> isa MClassType */
5298 cltype
= type_model__MClassType
.color
;
5299 idtype
= type_model__MClassType
.id
;
5303 if(cltype
>= var
->type
->table_size
) {
5306 var3
= var
->type
->type_table
[cltype
] == idtype
;
5309 if (unlikely(!var3
)) {
5310 var_class_name
= var
== NULL ?
"null" : var
->type
->name
;
5311 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "MClassType", var_class_name
);
5312 PRINT_ERROR(" (%s:%d)\n", "src/rapid_type_analysis.nit", 528);
5317 rapid_type_analysis__RapidTypeVisitor__add_type(var_v
, var_mtype
); /* Direct call rapid_type_analysis#RapidTypeVisitor#add_type on <var_v:RapidTypeVisitor>*/
5320 { /* Inline rapid_type_analysis#RapidTypeVisitor#analysis (var_v) on <var_v:RapidTypeVisitor> */
5321 var6
= var_v
->attrs
[COLOR_rapid_type_analysis__RapidTypeVisitor___analysis
].val
; /* _analysis on <var_v:RapidTypeVisitor> */
5322 if (unlikely(var6
== NULL
)) {
5323 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _analysis");
5324 PRINT_ERROR(" (%s:%d)\n", "src/rapid_type_analysis.nit", 430);
5332 { /* Inline rapid_type_analysis#RapidTypeAnalysis#mainmodule (var4) on <var4:RapidTypeAnalysis> */
5333 var9
= var4
->attrs
[COLOR_rapid_type_analysis__RapidTypeAnalysis___mainmodule
].val
; /* _mainmodule on <var4:RapidTypeAnalysis> */
5334 if (unlikely(var9
== NULL
)) {
5335 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule");
5336 PRINT_ERROR(" (%s:%d)\n", "src/rapid_type_analysis.nit", 51);
5346 var11
= "NativeArray";
5348 var13
= string__NativeString__to_s_with_length(var11
, var12
);
5353 var14
= model__MModule__get_primitive_class(var7
, var10
);
5355 var15
= NEW_array__Array(&type_array__Arraymodel__MType
);
5358 array__Array__with_capacity(var15
, var16
); /* Direct call array#Array#with_capacity on <var15:Array[MType]>*/
5362 { /* Inline model#MClassType#arguments (var_mtype) on <var_mtype:MClassType> */
5363 var19
= var_mtype
->attrs
[COLOR_model__MClassType___arguments
].val
; /* _arguments on <var_mtype:MClassType> */
5364 if (unlikely(var19
== NULL
)) {
5365 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _arguments");
5366 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 979);
5370 RET_LABEL18
:(void)0;
5374 var20
= abstract_collection__SequenceRead__first(var17
);
5377 array__AbstractArray__push(var_
, var20
); /* Direct call array#AbstractArray#push on <var_:Array[MType]>*/
5380 var21
= model__MClass__get_mtype(var14
, var_
);
5384 rapid_type_analysis__RapidTypeVisitor__add_type(var_v
, var_native
); /* Direct call rapid_type_analysis#RapidTypeVisitor#add_type on <var_v:RapidTypeVisitor>*/
5387 var22
= rapid_type_analysis__RapidTypeVisitor__cleanup_type(var_v
, var_mtype
);
5389 if (unlikely(var22
== NULL
)) {
5390 PRINT_ERROR("Runtime error: %s", "Cast failed");
5391 PRINT_ERROR(" (%s:%d)\n", "src/rapid_type_analysis.nit", 532);
5398 var25
= "with_native";
5400 var27
= string__NativeString__to_s_with_length(var25
, var26
);
5405 var28
= rapid_type_analysis__RapidTypeVisitor__get_method(var_v
, var_mtype
, var24
);
5409 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>*/
5413 /* method rapid_type_analysis#AArrayExpr#accept_rapid_type_visitor for (self: Object, RapidTypeVisitor) */
5414 void VIRTUAL_rapid_type_analysis__AArrayExpr__accept_rapid_type_visitor(val
* self
, val
* p0
) {
5415 rapid_type_analysis__AArrayExpr__accept_rapid_type_visitor(self
, p0
); /* Direct call rapid_type_analysis#AArrayExpr#accept_rapid_type_visitor on <self:Object(AArrayExpr)>*/
5418 /* method rapid_type_analysis#AStringFormExpr#accept_rapid_type_visitor for (self: AStringFormExpr, RapidTypeVisitor) */
5419 void rapid_type_analysis__AStringFormExpr__accept_rapid_type_visitor(val
* self
, val
* p0
) {
5420 val
* var_v
/* var v: RapidTypeVisitor */;
5421 static val
* varonce
;
5422 val
* var
/* : String */;
5423 char* var1
/* : NativeString */;
5424 long var2
/* : Int */;
5425 val
* var3
/* : FlatString */;
5426 val
* var4
/* : MClass */;
5427 val
* var5
/* : MClassType */;
5428 val
* var7
/* : MClassType */;
5429 val
* var_native
/* var native: MClassType */;
5430 static val
* varonce8
;
5431 val
* var9
/* : String */;
5432 char* var10
/* : NativeString */;
5433 long var11
/* : Int */;
5434 val
* var12
/* : FlatString */;
5435 val
* var13
/* : MMethod */;
5436 val
* var_prop
/* var prop: MMethod */;
5441 var1
= "NativeString";
5443 var3
= string__NativeString__to_s_with_length(var1
, var2
);
5448 var4
= rapid_type_analysis__RapidTypeVisitor__get_class(var_v
, var
);
5451 { /* Inline model#MClass#mclass_type (var4) on <var4:MClass> */
5452 var7
= var4
->attrs
[COLOR_model__MClass___mclass_type
].val
; /* _mclass_type on <var4:MClass> */
5453 if (unlikely(var7
== NULL
)) {
5454 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass_type");
5455 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 417);
5464 rapid_type_analysis__RapidTypeVisitor__add_type(var_v
, var_native
); /* Direct call rapid_type_analysis#RapidTypeVisitor#add_type on <var_v:RapidTypeVisitor>*/
5469 var10
= "to_s_with_length";
5471 var12
= string__NativeString__to_s_with_length(var10
, var11
);
5476 var13
= rapid_type_analysis__RapidTypeVisitor__get_method(var_v
, var_native
, var9
);
5480 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>*/
5484 /* method rapid_type_analysis#AStringFormExpr#accept_rapid_type_visitor for (self: Object, RapidTypeVisitor) */
5485 void VIRTUAL_rapid_type_analysis__AStringFormExpr__accept_rapid_type_visitor(val
* self
, val
* p0
) {
5486 rapid_type_analysis__AStringFormExpr__accept_rapid_type_visitor(self
, p0
); /* Direct call rapid_type_analysis#AStringFormExpr#accept_rapid_type_visitor on <self:Object(AStringFormExpr)>*/
5489 /* method rapid_type_analysis#ASuperstringExpr#accept_rapid_type_visitor for (self: ASuperstringExpr, RapidTypeVisitor) */
5490 void rapid_type_analysis__ASuperstringExpr__accept_rapid_type_visitor(val
* self
, val
* p0
) {
5491 val
* var_v
/* var v: RapidTypeVisitor */;
5492 static val
* varonce
;
5493 val
* var
/* : String */;
5494 char* var1
/* : NativeString */;
5495 long var2
/* : Int */;
5496 val
* var3
/* : FlatString */;
5497 val
* var4
/* : MClass */;
5498 val
* var5
/* : Array[MClassType] */;
5499 long var6
/* : Int */;
5500 val
* var_
/* var : Array[MClassType] */;
5501 static val
* varonce7
;
5502 val
* var8
/* : String */;
5503 char* var9
/* : NativeString */;
5504 long var10
/* : Int */;
5505 val
* var11
/* : FlatString */;
5506 val
* var12
/* : MClass */;
5507 val
* var13
/* : MClassType */;
5508 val
* var15
/* : MClassType */;
5509 val
* var16
/* : MClassType */;
5510 val
* var_arraytype
/* var arraytype: MClassType */;
5511 static val
* varonce17
;
5512 val
* var18
/* : String */;
5513 char* var19
/* : NativeString */;
5514 long var20
/* : Int */;
5515 val
* var21
/* : FlatString */;
5516 val
* var22
/* : MClass */;
5517 val
* var23
/* : Array[MClassType] */;
5518 long var24
/* : Int */;
5519 val
* var_25
/* var : Array[MClassType] */;
5520 static val
* varonce26
;
5521 val
* var27
/* : String */;
5522 char* var28
/* : NativeString */;
5523 long var29
/* : Int */;
5524 val
* var30
/* : FlatString */;
5525 val
* var31
/* : MClass */;
5526 val
* var32
/* : MClassType */;
5527 val
* var34
/* : MClassType */;
5528 val
* var35
/* : MClassType */;
5529 static val
* varonce36
;
5530 val
* var37
/* : String */;
5531 char* var38
/* : NativeString */;
5532 long var39
/* : Int */;
5533 val
* var40
/* : FlatString */;
5534 val
* var41
/* : MMethod */;
5535 val
* var_prop
/* var prop: MMethod */;
5536 static val
* varonce42
;
5537 val
* var43
/* : String */;
5538 char* var44
/* : NativeString */;
5539 long var45
/* : Int */;
5540 val
* var46
/* : FlatString */;
5541 val
* var47
/* : MMethod */;
5542 val
* var_prop2
/* var prop2: MMethod */;
5549 var3
= string__NativeString__to_s_with_length(var1
, var2
);
5554 var4
= rapid_type_analysis__RapidTypeVisitor__get_class(var_v
, var
);
5556 var5
= NEW_array__Array(&type_array__Arraymodel__MClassType
);
5559 array__Array__with_capacity(var5
, var6
); /* Direct call array#Array#with_capacity on <var5:Array[MClassType]>*/
5567 var11
= string__NativeString__to_s_with_length(var9
, var10
);
5572 var12
= rapid_type_analysis__RapidTypeVisitor__get_class(var_v
, var8
);
5575 { /* Inline model#MClass#mclass_type (var12) on <var12:MClass> */
5576 var15
= var12
->attrs
[COLOR_model__MClass___mclass_type
].val
; /* _mclass_type on <var12:MClass> */
5577 if (unlikely(var15
== NULL
)) {
5578 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass_type");
5579 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 417);
5583 RET_LABEL14
:(void)0;
5587 array__AbstractArray__push(var_
, var13
); /* Direct call array#AbstractArray#push on <var_:Array[MClassType]>*/
5590 var16
= model__MClass__get_mtype(var4
, var_
);
5592 var_arraytype
= var16
;
5594 rapid_type_analysis__RapidTypeVisitor__add_type(var_v
, var_arraytype
); /* Direct call rapid_type_analysis#RapidTypeVisitor#add_type on <var_v:RapidTypeVisitor>*/
5599 var19
= "NativeArray";
5601 var21
= string__NativeString__to_s_with_length(var19
, var20
);
5606 var22
= rapid_type_analysis__RapidTypeVisitor__get_class(var_v
, var18
);
5608 var23
= NEW_array__Array(&type_array__Arraymodel__MClassType
);
5611 array__Array__with_capacity(var23
, var24
); /* Direct call array#Array#with_capacity on <var23:Array[MClassType]>*/
5619 var30
= string__NativeString__to_s_with_length(var28
, var29
);
5624 var31
= rapid_type_analysis__RapidTypeVisitor__get_class(var_v
, var27
);
5627 { /* Inline model#MClass#mclass_type (var31) on <var31:MClass> */
5628 var34
= var31
->attrs
[COLOR_model__MClass___mclass_type
].val
; /* _mclass_type on <var31:MClass> */
5629 if (unlikely(var34
== NULL
)) {
5630 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass_type");
5631 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 417);
5635 RET_LABEL33
:(void)0;
5639 array__AbstractArray__push(var_25
, var32
); /* Direct call array#AbstractArray#push on <var_25:Array[MClassType]>*/
5642 var35
= model__MClass__get_mtype(var22
, var_25
);
5645 rapid_type_analysis__RapidTypeVisitor__add_type(var_v
, var35
); /* Direct call rapid_type_analysis#RapidTypeVisitor#add_type on <var_v:RapidTypeVisitor>*/
5652 var40
= string__NativeString__to_s_with_length(var38
, var39
);
5657 var41
= rapid_type_analysis__RapidTypeVisitor__get_method(var_v
, var_arraytype
, var37
);
5661 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>*/
5666 var44
= "with_native";
5668 var46
= string__NativeString__to_s_with_length(var44
, var45
);
5673 var47
= rapid_type_analysis__RapidTypeVisitor__get_method(var_v
, var_arraytype
, var43
);
5677 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>*/
5681 /* method rapid_type_analysis#ASuperstringExpr#accept_rapid_type_visitor for (self: Object, RapidTypeVisitor) */
5682 void VIRTUAL_rapid_type_analysis__ASuperstringExpr__accept_rapid_type_visitor(val
* self
, val
* p0
) {
5683 rapid_type_analysis__ASuperstringExpr__accept_rapid_type_visitor(self
, p0
); /* Direct call rapid_type_analysis#ASuperstringExpr#accept_rapid_type_visitor on <self:Object(ASuperstringExpr)>*/
5686 /* method rapid_type_analysis#ACrangeExpr#accept_rapid_type_visitor for (self: ACrangeExpr, RapidTypeVisitor) */
5687 void rapid_type_analysis__ACrangeExpr__accept_rapid_type_visitor(val
* self
, val
* p0
) {
5688 val
* var_v
/* var v: RapidTypeVisitor */;
5689 val
* var
/* : nullable MType */;
5690 val
* var2
/* : nullable MType */;
5691 short int var3
/* : Bool */;
5694 const char* var_class_name
;
5695 val
* var_mtype
/* var mtype: MClassType */;
5696 val
* var4
/* : nullable CallSite */;
5697 val
* var6
/* : nullable CallSite */;
5700 { /* Inline typing#AExpr#mtype (self) on <self:ACrangeExpr> */
5701 var2
= self
->attrs
[COLOR_typing__AExpr___mtype
].val
; /* _mtype on <self:ACrangeExpr> */
5706 /* <var:nullable MType> isa MClassType */
5707 cltype
= type_model__MClassType
.color
;
5708 idtype
= type_model__MClassType
.id
;
5712 if(cltype
>= var
->type
->table_size
) {
5715 var3
= var
->type
->type_table
[cltype
] == idtype
;
5718 if (unlikely(!var3
)) {
5719 var_class_name
= var
== NULL ?
"null" : var
->type
->name
;
5720 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "MClassType", var_class_name
);
5721 PRINT_ERROR(" (%s:%d)\n", "src/rapid_type_analysis.nit", 564);
5726 rapid_type_analysis__RapidTypeVisitor__add_type(var_v
, var_mtype
); /* Direct call rapid_type_analysis#RapidTypeVisitor#add_type on <var_v:RapidTypeVisitor>*/
5729 { /* Inline typing#ARangeExpr#init_callsite (self) on <self:ACrangeExpr> */
5730 var6
= self
->attrs
[COLOR_typing__ARangeExpr___init_callsite
].val
; /* _init_callsite on <self:ACrangeExpr> */
5736 rapid_type_analysis__RapidTypeVisitor__add_callsite(var_v
, var4
); /* Direct call rapid_type_analysis#RapidTypeVisitor#add_callsite on <var_v:RapidTypeVisitor>*/
5740 /* method rapid_type_analysis#ACrangeExpr#accept_rapid_type_visitor for (self: Object, RapidTypeVisitor) */
5741 void VIRTUAL_rapid_type_analysis__ACrangeExpr__accept_rapid_type_visitor(val
* self
, val
* p0
) {
5742 rapid_type_analysis__ACrangeExpr__accept_rapid_type_visitor(self
, p0
); /* Direct call rapid_type_analysis#ACrangeExpr#accept_rapid_type_visitor on <self:Object(ACrangeExpr)>*/
5745 /* method rapid_type_analysis#AOrangeExpr#accept_rapid_type_visitor for (self: AOrangeExpr, RapidTypeVisitor) */
5746 void rapid_type_analysis__AOrangeExpr__accept_rapid_type_visitor(val
* self
, val
* p0
) {
5747 val
* var_v
/* var v: RapidTypeVisitor */;
5748 val
* var
/* : nullable MType */;
5749 val
* var2
/* : nullable MType */;
5750 short int var3
/* : Bool */;
5753 const char* var_class_name
;
5754 val
* var_mtype
/* var mtype: MClassType */;
5755 val
* var4
/* : nullable CallSite */;
5756 val
* var6
/* : nullable CallSite */;
5759 { /* Inline typing#AExpr#mtype (self) on <self:AOrangeExpr> */
5760 var2
= self
->attrs
[COLOR_typing__AExpr___mtype
].val
; /* _mtype on <self:AOrangeExpr> */
5765 /* <var:nullable MType> isa MClassType */
5766 cltype
= type_model__MClassType
.color
;
5767 idtype
= type_model__MClassType
.id
;
5771 if(cltype
>= var
->type
->table_size
) {
5774 var3
= var
->type
->type_table
[cltype
] == idtype
;
5777 if (unlikely(!var3
)) {
5778 var_class_name
= var
== NULL ?
"null" : var
->type
->name
;
5779 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "MClassType", var_class_name
);
5780 PRINT_ERROR(" (%s:%d)\n", "src/rapid_type_analysis.nit", 573);
5785 rapid_type_analysis__RapidTypeVisitor__add_type(var_v
, var_mtype
); /* Direct call rapid_type_analysis#RapidTypeVisitor#add_type on <var_v:RapidTypeVisitor>*/
5788 { /* Inline typing#ARangeExpr#init_callsite (self) on <self:AOrangeExpr> */
5789 var6
= self
->attrs
[COLOR_typing__ARangeExpr___init_callsite
].val
; /* _init_callsite on <self:AOrangeExpr> */
5795 rapid_type_analysis__RapidTypeVisitor__add_callsite(var_v
, var4
); /* Direct call rapid_type_analysis#RapidTypeVisitor#add_callsite on <var_v:RapidTypeVisitor>*/
5799 /* method rapid_type_analysis#AOrangeExpr#accept_rapid_type_visitor for (self: Object, RapidTypeVisitor) */
5800 void VIRTUAL_rapid_type_analysis__AOrangeExpr__accept_rapid_type_visitor(val
* self
, val
* p0
) {
5801 rapid_type_analysis__AOrangeExpr__accept_rapid_type_visitor(self
, p0
); /* Direct call rapid_type_analysis#AOrangeExpr#accept_rapid_type_visitor on <self:Object(AOrangeExpr)>*/
5804 /* method rapid_type_analysis#ATrueExpr#accept_rapid_type_visitor for (self: ATrueExpr, RapidTypeVisitor) */
5805 void rapid_type_analysis__ATrueExpr__accept_rapid_type_visitor(val
* self
, val
* p0
) {
5806 val
* var_v
/* var v: RapidTypeVisitor */;
5807 val
* var
/* : nullable MType */;
5808 val
* var2
/* : nullable MType */;
5809 short int var3
/* : Bool */;
5812 const char* var_class_name
;
5815 { /* Inline typing#AExpr#mtype (self) on <self:ATrueExpr> */
5816 var2
= self
->attrs
[COLOR_typing__AExpr___mtype
].val
; /* _mtype on <self:ATrueExpr> */
5821 /* <var:nullable MType> isa MClassType */
5822 cltype
= type_model__MClassType
.color
;
5823 idtype
= type_model__MClassType
.id
;
5827 if(cltype
>= var
->type
->table_size
) {
5830 var3
= var
->type
->type_table
[cltype
] == idtype
;
5833 if (unlikely(!var3
)) {
5834 var_class_name
= var
== NULL ?
"null" : var
->type
->name
;
5835 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "MClassType", var_class_name
);
5836 PRINT_ERROR(" (%s:%d)\n", "src/rapid_type_analysis.nit", 582);
5840 rapid_type_analysis__RapidTypeVisitor__add_type(var_v
, var
); /* Direct call rapid_type_analysis#RapidTypeVisitor#add_type on <var_v:RapidTypeVisitor>*/
5844 /* method rapid_type_analysis#ATrueExpr#accept_rapid_type_visitor for (self: Object, RapidTypeVisitor) */
5845 void VIRTUAL_rapid_type_analysis__ATrueExpr__accept_rapid_type_visitor(val
* self
, val
* p0
) {
5846 rapid_type_analysis__ATrueExpr__accept_rapid_type_visitor(self
, p0
); /* Direct call rapid_type_analysis#ATrueExpr#accept_rapid_type_visitor on <self:Object(ATrueExpr)>*/
5849 /* method rapid_type_analysis#AFalseExpr#accept_rapid_type_visitor for (self: AFalseExpr, RapidTypeVisitor) */
5850 void rapid_type_analysis__AFalseExpr__accept_rapid_type_visitor(val
* self
, val
* p0
) {
5851 val
* var_v
/* var v: RapidTypeVisitor */;
5852 val
* var
/* : nullable MType */;
5853 val
* var2
/* : nullable MType */;
5854 short int var3
/* : Bool */;
5857 const char* var_class_name
;
5860 { /* Inline typing#AExpr#mtype (self) on <self:AFalseExpr> */
5861 var2
= self
->attrs
[COLOR_typing__AExpr___mtype
].val
; /* _mtype on <self:AFalseExpr> */
5866 /* <var:nullable MType> isa MClassType */
5867 cltype
= type_model__MClassType
.color
;
5868 idtype
= type_model__MClassType
.id
;
5872 if(cltype
>= var
->type
->table_size
) {
5875 var3
= var
->type
->type_table
[cltype
] == idtype
;
5878 if (unlikely(!var3
)) {
5879 var_class_name
= var
== NULL ?
"null" : var
->type
->name
;
5880 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "MClassType", var_class_name
);
5881 PRINT_ERROR(" (%s:%d)\n", "src/rapid_type_analysis.nit", 589);
5885 rapid_type_analysis__RapidTypeVisitor__add_type(var_v
, var
); /* Direct call rapid_type_analysis#RapidTypeVisitor#add_type on <var_v:RapidTypeVisitor>*/
5889 /* method rapid_type_analysis#AFalseExpr#accept_rapid_type_visitor for (self: Object, RapidTypeVisitor) */
5890 void VIRTUAL_rapid_type_analysis__AFalseExpr__accept_rapid_type_visitor(val
* self
, val
* p0
) {
5891 rapid_type_analysis__AFalseExpr__accept_rapid_type_visitor(self
, p0
); /* Direct call rapid_type_analysis#AFalseExpr#accept_rapid_type_visitor on <self:Object(AFalseExpr)>*/
5894 /* method rapid_type_analysis#AIsaExpr#accept_rapid_type_visitor for (self: AIsaExpr, RapidTypeVisitor) */
5895 void rapid_type_analysis__AIsaExpr__accept_rapid_type_visitor(val
* self
, val
* p0
) {
5896 val
* var_v
/* var v: RapidTypeVisitor */;
5897 val
* var
/* : nullable MType */;
5898 val
* var2
/* : nullable MType */;
5901 { /* Inline typing#AIsaExpr#cast_type (self) on <self:AIsaExpr> */
5902 var2
= self
->attrs
[COLOR_typing__AIsaExpr___cast_type
].val
; /* _cast_type on <self:AIsaExpr> */
5907 if (unlikely(var
== NULL
)) {
5908 PRINT_ERROR("Runtime error: %s", "Cast failed");
5909 PRINT_ERROR(" (%s:%d)\n", "src/rapid_type_analysis.nit", 596);
5913 rapid_type_analysis__RapidTypeVisitor__add_cast_type(var_v
, var
); /* Direct call rapid_type_analysis#RapidTypeVisitor#add_cast_type on <var_v:RapidTypeVisitor>*/
5917 /* method rapid_type_analysis#AIsaExpr#accept_rapid_type_visitor for (self: Object, RapidTypeVisitor) */
5918 void VIRTUAL_rapid_type_analysis__AIsaExpr__accept_rapid_type_visitor(val
* self
, val
* p0
) {
5919 rapid_type_analysis__AIsaExpr__accept_rapid_type_visitor(self
, p0
); /* Direct call rapid_type_analysis#AIsaExpr#accept_rapid_type_visitor on <self:Object(AIsaExpr)>*/
5922 /* method rapid_type_analysis#AAsCastExpr#accept_rapid_type_visitor for (self: AAsCastExpr, RapidTypeVisitor) */
5923 void rapid_type_analysis__AAsCastExpr__accept_rapid_type_visitor(val
* self
, val
* p0
) {
5924 val
* var_v
/* var v: RapidTypeVisitor */;
5925 val
* var
/* : nullable MType */;
5926 val
* var2
/* : nullable MType */;
5929 { /* Inline typing#AExpr#mtype (self) on <self:AAsCastExpr> */
5930 var2
= self
->attrs
[COLOR_typing__AExpr___mtype
].val
; /* _mtype on <self:AAsCastExpr> */
5935 if (unlikely(var
== NULL
)) {
5936 PRINT_ERROR("Runtime error: %s", "Cast failed");
5937 PRINT_ERROR(" (%s:%d)\n", "src/rapid_type_analysis.nit", 603);
5941 rapid_type_analysis__RapidTypeVisitor__add_cast_type(var_v
, var
); /* Direct call rapid_type_analysis#RapidTypeVisitor#add_cast_type on <var_v:RapidTypeVisitor>*/
5945 /* method rapid_type_analysis#AAsCastExpr#accept_rapid_type_visitor for (self: Object, RapidTypeVisitor) */
5946 void VIRTUAL_rapid_type_analysis__AAsCastExpr__accept_rapid_type_visitor(val
* self
, val
* p0
) {
5947 rapid_type_analysis__AAsCastExpr__accept_rapid_type_visitor(self
, p0
); /* Direct call rapid_type_analysis#AAsCastExpr#accept_rapid_type_visitor on <self:Object(AAsCastExpr)>*/
5950 /* method rapid_type_analysis#ASendExpr#accept_rapid_type_visitor for (self: ASendExpr, RapidTypeVisitor) */
5951 void rapid_type_analysis__ASendExpr__accept_rapid_type_visitor(val
* self
, val
* p0
) {
5952 val
* var_v
/* var v: RapidTypeVisitor */;
5953 val
* var
/* : nullable CallSite */;
5954 val
* var2
/* : nullable CallSite */;
5957 { /* Inline typing#ASendExpr#callsite (self) on <self:ASendExpr> */
5958 var2
= self
->attrs
[COLOR_typing__ASendExpr___callsite
].val
; /* _callsite on <self:ASendExpr> */
5964 rapid_type_analysis__RapidTypeVisitor__add_callsite(var_v
, var
); /* Direct call rapid_type_analysis#RapidTypeVisitor#add_callsite on <var_v:RapidTypeVisitor>*/
5968 /* method rapid_type_analysis#ASendExpr#accept_rapid_type_visitor for (self: Object, RapidTypeVisitor) */
5969 void VIRTUAL_rapid_type_analysis__ASendExpr__accept_rapid_type_visitor(val
* self
, val
* p0
) {
5970 rapid_type_analysis__ASendExpr__accept_rapid_type_visitor(self
, p0
); /* Direct call rapid_type_analysis#ASendExpr#accept_rapid_type_visitor on <self:Object(ASendExpr)>*/
5973 /* method rapid_type_analysis#ASendReassignFormExpr#accept_rapid_type_visitor for (self: ASendReassignFormExpr, RapidTypeVisitor) */
5974 void rapid_type_analysis__ASendReassignFormExpr__accept_rapid_type_visitor(val
* self
, val
* p0
) {
5975 val
* var_v
/* var v: RapidTypeVisitor */;
5976 val
* var
/* : nullable CallSite */;
5977 val
* var2
/* : nullable CallSite */;
5978 val
* var3
/* : nullable CallSite */;
5979 val
* var5
/* : nullable CallSite */;
5980 val
* var6
/* : nullable CallSite */;
5981 val
* var8
/* : nullable CallSite */;
5984 { /* Inline typing#ASendExpr#callsite (self) on <self:ASendReassignFormExpr> */
5985 var2
= self
->attrs
[COLOR_typing__ASendExpr___callsite
].val
; /* _callsite on <self:ASendReassignFormExpr> */
5991 rapid_type_analysis__RapidTypeVisitor__add_callsite(var_v
, var
); /* Direct call rapid_type_analysis#RapidTypeVisitor#add_callsite on <var_v:RapidTypeVisitor>*/
5994 { /* Inline typing#AReassignFormExpr#reassign_callsite (self) on <self:ASendReassignFormExpr> */
5995 var5
= self
->attrs
[COLOR_typing__AReassignFormExpr___reassign_callsite
].val
; /* _reassign_callsite on <self:ASendReassignFormExpr> */
6001 rapid_type_analysis__RapidTypeVisitor__add_callsite(var_v
, var3
); /* Direct call rapid_type_analysis#RapidTypeVisitor#add_callsite on <var_v:RapidTypeVisitor>*/
6004 { /* Inline typing#ASendReassignFormExpr#write_callsite (self) on <self:ASendReassignFormExpr> */
6005 var8
= self
->attrs
[COLOR_typing__ASendReassignFormExpr___write_callsite
].val
; /* _write_callsite on <self:ASendReassignFormExpr> */
6011 rapid_type_analysis__RapidTypeVisitor__add_callsite(var_v
, var6
); /* Direct call rapid_type_analysis#RapidTypeVisitor#add_callsite on <var_v:RapidTypeVisitor>*/
6015 /* method rapid_type_analysis#ASendReassignFormExpr#accept_rapid_type_visitor for (self: Object, RapidTypeVisitor) */
6016 void VIRTUAL_rapid_type_analysis__ASendReassignFormExpr__accept_rapid_type_visitor(val
* self
, val
* p0
) {
6017 rapid_type_analysis__ASendReassignFormExpr__accept_rapid_type_visitor(self
, p0
); /* Direct call rapid_type_analysis#ASendReassignFormExpr#accept_rapid_type_visitor on <self:Object(ASendReassignFormExpr)>*/
6020 /* method rapid_type_analysis#AVarReassignExpr#accept_rapid_type_visitor for (self: AVarReassignExpr, RapidTypeVisitor) */
6021 void rapid_type_analysis__AVarReassignExpr__accept_rapid_type_visitor(val
* self
, val
* p0
) {
6022 val
* var_v
/* var v: RapidTypeVisitor */;
6023 val
* var
/* : nullable CallSite */;
6024 val
* var2
/* : nullable CallSite */;
6027 { /* Inline typing#AReassignFormExpr#reassign_callsite (self) on <self:AVarReassignExpr> */
6028 var2
= self
->attrs
[COLOR_typing__AReassignFormExpr___reassign_callsite
].val
; /* _reassign_callsite on <self:AVarReassignExpr> */
6034 rapid_type_analysis__RapidTypeVisitor__add_callsite(var_v
, var
); /* Direct call rapid_type_analysis#RapidTypeVisitor#add_callsite on <var_v:RapidTypeVisitor>*/
6038 /* method rapid_type_analysis#AVarReassignExpr#accept_rapid_type_visitor for (self: Object, RapidTypeVisitor) */
6039 void VIRTUAL_rapid_type_analysis__AVarReassignExpr__accept_rapid_type_visitor(val
* self
, val
* p0
) {
6040 rapid_type_analysis__AVarReassignExpr__accept_rapid_type_visitor(self
, p0
); /* Direct call rapid_type_analysis#AVarReassignExpr#accept_rapid_type_visitor on <self:Object(AVarReassignExpr)>*/
6043 /* method rapid_type_analysis#AAttrReassignExpr#accept_rapid_type_visitor for (self: AAttrReassignExpr, RapidTypeVisitor) */
6044 void rapid_type_analysis__AAttrReassignExpr__accept_rapid_type_visitor(val
* self
, val
* p0
) {
6045 val
* var_v
/* var v: RapidTypeVisitor */;
6046 val
* var
/* : nullable CallSite */;
6047 val
* var2
/* : nullable CallSite */;
6050 { /* Inline typing#AReassignFormExpr#reassign_callsite (self) on <self:AAttrReassignExpr> */
6051 var2
= self
->attrs
[COLOR_typing__AReassignFormExpr___reassign_callsite
].val
; /* _reassign_callsite on <self:AAttrReassignExpr> */
6057 rapid_type_analysis__RapidTypeVisitor__add_callsite(var_v
, var
); /* Direct call rapid_type_analysis#RapidTypeVisitor#add_callsite on <var_v:RapidTypeVisitor>*/
6061 /* method rapid_type_analysis#AAttrReassignExpr#accept_rapid_type_visitor for (self: Object, RapidTypeVisitor) */
6062 void VIRTUAL_rapid_type_analysis__AAttrReassignExpr__accept_rapid_type_visitor(val
* self
, val
* p0
) {
6063 rapid_type_analysis__AAttrReassignExpr__accept_rapid_type_visitor(self
, p0
); /* Direct call rapid_type_analysis#AAttrReassignExpr#accept_rapid_type_visitor on <self:Object(AAttrReassignExpr)>*/
6066 /* method rapid_type_analysis#ASuperExpr#accept_rapid_type_visitor for (self: ASuperExpr, RapidTypeVisitor) */
6067 void rapid_type_analysis__ASuperExpr__accept_rapid_type_visitor(val
* self
, val
* p0
) {
6068 val
* var_v
/* var v: RapidTypeVisitor */;
6069 val
* var
/* : nullable CallSite */;
6070 val
* var2
/* : nullable CallSite */;
6071 val
* var_callsite
/* var callsite: nullable CallSite */;
6072 val
* var3
/* : null */;
6073 short int var4
/* : Bool */;
6074 short int var5
/* : Bool */;
6075 val
* var_other
/* var other: nullable Object */;
6076 short int var7
/* : Bool */;
6077 short int var8
/* : Bool */;
6078 short int var9
/* : Bool */;
6079 val
* var10
/* : RapidTypeAnalysis */;
6080 val
* var12
/* : RapidTypeAnalysis */;
6081 val
* var13
/* : MClassType */;
6082 val
* var15
/* : MClassType */;
6083 val
* var16
/* : nullable MMethodDef */;
6084 val
* var18
/* : nullable MMethodDef */;
6087 { /* Inline typing#ASuperExpr#callsite (self) on <self:ASuperExpr> */
6088 var2
= self
->attrs
[COLOR_typing__ASuperExpr___callsite
].val
; /* _callsite on <self:ASuperExpr> */
6095 if (var_callsite
== NULL
) {
6096 var4
= 0; /* is null */
6098 var4
= 1; /* arg is null and recv is not */
6101 { /* Inline kernel#Object#!= (var_callsite,var3) on <var_callsite:nullable CallSite> */
6104 var8
= ((short int (*)(val
*, val
*))(var_callsite
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var_callsite
, var_other
) /* == on <var_callsite:nullable CallSite(CallSite)>*/;
6116 rapid_type_analysis__RapidTypeVisitor__add_callsite(var_v
, var_callsite
); /* Direct call rapid_type_analysis#RapidTypeVisitor#add_callsite on <var_v:RapidTypeVisitor>*/
6122 { /* Inline rapid_type_analysis#RapidTypeVisitor#analysis (var_v) on <var_v:RapidTypeVisitor> */
6123 var12
= var_v
->attrs
[COLOR_rapid_type_analysis__RapidTypeVisitor___analysis
].val
; /* _analysis on <var_v:RapidTypeVisitor> */
6124 if (unlikely(var12
== NULL
)) {
6125 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _analysis");
6126 PRINT_ERROR(" (%s:%d)\n", "src/rapid_type_analysis.nit", 430);
6130 RET_LABEL11
:(void)0;
6134 { /* Inline rapid_type_analysis#RapidTypeVisitor#receiver (var_v) on <var_v:RapidTypeVisitor> */
6135 var15
= var_v
->attrs
[COLOR_rapid_type_analysis__RapidTypeVisitor___receiver
].val
; /* _receiver on <var_v:RapidTypeVisitor> */
6136 if (unlikely(var15
== NULL
)) {
6137 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _receiver");
6138 PRINT_ERROR(" (%s:%d)\n", "src/rapid_type_analysis.nit", 431);
6142 RET_LABEL14
:(void)0;
6146 { /* Inline typing#ASuperExpr#mpropdef (self) on <self:ASuperExpr> */
6147 var18
= self
->attrs
[COLOR_typing__ASuperExpr___mpropdef
].val
; /* _mpropdef on <self:ASuperExpr> */
6149 RET_LABEL17
:(void)0;
6152 if (unlikely(var16
== NULL
)) {
6153 PRINT_ERROR("Runtime error: %s", "Cast failed");
6154 PRINT_ERROR(" (%s:%d)\n", "src/rapid_type_analysis.nit", 647);
6158 rapid_type_analysis__RapidTypeAnalysis__add_super_send(var10
, var13
, var16
); /* Direct call rapid_type_analysis#RapidTypeAnalysis#add_super_send on <var10:RapidTypeAnalysis>*/
6162 /* method rapid_type_analysis#ASuperExpr#accept_rapid_type_visitor for (self: Object, RapidTypeVisitor) */
6163 void VIRTUAL_rapid_type_analysis__ASuperExpr__accept_rapid_type_visitor(val
* self
, val
* p0
) {
6164 rapid_type_analysis__ASuperExpr__accept_rapid_type_visitor(self
, p0
); /* Direct call rapid_type_analysis#ASuperExpr#accept_rapid_type_visitor on <self:Object(ASuperExpr)>*/
6167 /* method rapid_type_analysis#AForExpr#accept_rapid_type_visitor for (self: AForExpr, RapidTypeVisitor) */
6168 void rapid_type_analysis__AForExpr__accept_rapid_type_visitor(val
* self
, val
* p0
) {
6169 val
* var_v
/* var v: RapidTypeVisitor */;
6170 val
* var
/* : nullable CallSite */;
6171 val
* var2
/* : nullable CallSite */;
6172 val
* var3
/* : nullable CallSite */;
6173 val
* var5
/* : nullable CallSite */;
6174 val
* var6
/* : nullable Array[Variable] */;
6175 val
* var8
/* : nullable Array[Variable] */;
6176 long var9
/* : Int */;
6177 long var10
/* : Int */;
6178 short int var11
/* : Bool */;
6179 short int var12
/* : Bool */;
6180 short int var14
/* : Bool */;
6181 val
* var15
/* : nullable CallSite */;
6182 val
* var17
/* : nullable CallSite */;
6183 val
* var18
/* : nullable Array[Variable] */;
6184 val
* var20
/* : nullable Array[Variable] */;
6185 long var21
/* : Int */;
6186 long var22
/* : Int */;
6187 short int var23
/* : Bool */;
6188 short int var24
/* : Bool */;
6189 short int var26
/* : Bool */;
6190 val
* var27
/* : nullable CallSite */;
6191 val
* var29
/* : nullable CallSite */;
6192 val
* var30
/* : nullable CallSite */;
6193 val
* var32
/* : nullable CallSite */;
6194 val
* var33
/* : nullable CallSite */;
6195 val
* var35
/* : nullable CallSite */;
6198 { /* Inline typing#AForExpr#method_iterator (self) on <self:AForExpr> */
6199 var2
= self
->attrs
[COLOR_typing__AForExpr___method_iterator
].val
; /* _method_iterator on <self:AForExpr> */
6205 rapid_type_analysis__RapidTypeVisitor__add_callsite(var_v
, var
); /* Direct call rapid_type_analysis#RapidTypeVisitor#add_callsite on <var_v:RapidTypeVisitor>*/
6208 { /* Inline typing#AForExpr#method_is_ok (self) on <self:AForExpr> */
6209 var5
= self
->attrs
[COLOR_typing__AForExpr___method_is_ok
].val
; /* _method_is_ok on <self:AForExpr> */
6215 rapid_type_analysis__RapidTypeVisitor__add_callsite(var_v
, var3
); /* Direct call rapid_type_analysis#RapidTypeVisitor#add_callsite on <var_v:RapidTypeVisitor>*/
6218 { /* Inline scope#AForExpr#variables (self) on <self:AForExpr> */
6219 var8
= self
->attrs
[COLOR_scope__AForExpr___variables
].val
; /* _variables on <self:AForExpr> */
6225 PRINT_ERROR("Runtime error: %s", "Receiver is null");
6226 PRINT_ERROR(" (%s:%d)\n", "src/rapid_type_analysis.nit", 656);
6229 var9
= array__AbstractArrayRead__length(var6
);
6233 { /* Inline kernel#Int#== (var9,var10) on <var9:Int> */
6234 var14
= var9
== var10
;
6237 RET_LABEL13
:(void)0;
6243 { /* Inline typing#AForExpr#method_item (self) on <self:AForExpr> */
6244 var17
= self
->attrs
[COLOR_typing__AForExpr___method_item
].val
; /* _method_item on <self:AForExpr> */
6246 RET_LABEL16
:(void)0;
6250 rapid_type_analysis__RapidTypeVisitor__add_callsite(var_v
, var15
); /* Direct call rapid_type_analysis#RapidTypeVisitor#add_callsite on <var_v:RapidTypeVisitor>*/
6254 { /* Inline scope#AForExpr#variables (self) on <self:AForExpr> */
6255 var20
= self
->attrs
[COLOR_scope__AForExpr___variables
].val
; /* _variables on <self:AForExpr> */
6257 RET_LABEL19
:(void)0;
6260 if (var18
== NULL
) {
6261 PRINT_ERROR("Runtime error: %s", "Receiver is null");
6262 PRINT_ERROR(" (%s:%d)\n", "src/rapid_type_analysis.nit", 658);
6265 var21
= array__AbstractArrayRead__length(var18
);
6269 { /* Inline kernel#Int#== (var21,var22) on <var21:Int> */
6270 var26
= var21
== var22
;
6273 RET_LABEL25
:(void)0;
6279 { /* Inline typing#AForExpr#method_key (self) on <self:AForExpr> */
6280 var29
= self
->attrs
[COLOR_typing__AForExpr___method_key
].val
; /* _method_key on <self:AForExpr> */
6282 RET_LABEL28
:(void)0;
6286 rapid_type_analysis__RapidTypeVisitor__add_callsite(var_v
, var27
); /* Direct call rapid_type_analysis#RapidTypeVisitor#add_callsite on <var_v:RapidTypeVisitor>*/
6289 { /* Inline typing#AForExpr#method_item (self) on <self:AForExpr> */
6290 var32
= self
->attrs
[COLOR_typing__AForExpr___method_item
].val
; /* _method_item on <self:AForExpr> */
6292 RET_LABEL31
:(void)0;
6296 rapid_type_analysis__RapidTypeVisitor__add_callsite(var_v
, var30
); /* Direct call rapid_type_analysis#RapidTypeVisitor#add_callsite on <var_v:RapidTypeVisitor>*/
6299 PRINT_ERROR("Runtime error: %s", "Aborted");
6300 PRINT_ERROR(" (%s:%d)\n", "src/rapid_type_analysis.nit", 662);
6305 { /* Inline typing#AForExpr#method_next (self) on <self:AForExpr> */
6306 var35
= self
->attrs
[COLOR_typing__AForExpr___method_next
].val
; /* _method_next on <self:AForExpr> */
6308 RET_LABEL34
:(void)0;
6312 rapid_type_analysis__RapidTypeVisitor__add_callsite(var_v
, var33
); /* Direct call rapid_type_analysis#RapidTypeVisitor#add_callsite on <var_v:RapidTypeVisitor>*/
6316 /* method rapid_type_analysis#AForExpr#accept_rapid_type_visitor for (self: Object, RapidTypeVisitor) */
6317 void VIRTUAL_rapid_type_analysis__AForExpr__accept_rapid_type_visitor(val
* self
, val
* p0
) {
6318 rapid_type_analysis__AForExpr__accept_rapid_type_visitor(self
, p0
); /* Direct call rapid_type_analysis#AForExpr#accept_rapid_type_visitor on <self:Object(AForExpr)>*/
6321 /* method rapid_type_analysis#ANewExpr#accept_rapid_type_visitor for (self: ANewExpr, RapidTypeVisitor) */
6322 void rapid_type_analysis__ANewExpr__accept_rapid_type_visitor(val
* self
, val
* p0
) {
6323 val
* var_v
/* var v: RapidTypeVisitor */;
6324 val
* var
/* : nullable MType */;
6325 val
* var2
/* : nullable MType */;
6326 short int var3
/* : Bool */;
6329 const char* var_class_name
;
6330 val
* var_mtype
/* var mtype: MClassType */;
6331 val
* var4
/* : nullable CallSite */;
6332 val
* var6
/* : nullable CallSite */;
6335 { /* Inline typing#AExpr#mtype (self) on <self:ANewExpr> */
6336 var2
= self
->attrs
[COLOR_typing__AExpr___mtype
].val
; /* _mtype on <self:ANewExpr> */
6341 /* <var:nullable MType> isa MClassType */
6342 cltype
= type_model__MClassType
.color
;
6343 idtype
= type_model__MClassType
.id
;
6347 if(cltype
>= var
->type
->table_size
) {
6350 var3
= var
->type
->type_table
[cltype
] == idtype
;
6353 if (unlikely(!var3
)) {
6354 var_class_name
= var
== NULL ?
"null" : var
->type
->name
;
6355 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "MClassType", var_class_name
);
6356 PRINT_ERROR(" (%s:%d)\n", "src/rapid_type_analysis.nit", 671);
6361 rapid_type_analysis__RapidTypeVisitor__add_type(var_v
, var_mtype
); /* Direct call rapid_type_analysis#RapidTypeVisitor#add_type on <var_v:RapidTypeVisitor>*/
6364 { /* Inline typing#ANewExpr#callsite (self) on <self:ANewExpr> */
6365 var6
= self
->attrs
[COLOR_typing__ANewExpr___callsite
].val
; /* _callsite on <self:ANewExpr> */
6371 rapid_type_analysis__RapidTypeVisitor__add_callsite(var_v
, var4
); /* Direct call rapid_type_analysis#RapidTypeVisitor#add_callsite on <var_v:RapidTypeVisitor>*/
6375 /* method rapid_type_analysis#ANewExpr#accept_rapid_type_visitor for (self: Object, RapidTypeVisitor) */
6376 void VIRTUAL_rapid_type_analysis__ANewExpr__accept_rapid_type_visitor(val
* self
, val
* p0
) {
6377 rapid_type_analysis__ANewExpr__accept_rapid_type_visitor(self
, p0
); /* Direct call rapid_type_analysis#ANewExpr#accept_rapid_type_visitor on <self:Object(ANewExpr)>*/