1 #include "nit__rapid_type_analysis.sep.0.h"
2 /* method rapid_type_analysis#ModelBuilder#do_rapid_type_analysis for (self: ModelBuilder, MModule): RapidTypeAnalysis */
3 val
* nit__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_nit__RapidTypeAnalysis(&type_nit__RapidTypeAnalysis
);
11 ((void (*)(val
* self
, val
* p0
))(var1
->class->vft
[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis__modelbuilder_61d
]))(var1
, self
) /* modelbuilder= on <var1:RapidTypeAnalysis>*/;
14 ((void (*)(val
* self
, val
* p0
))(var1
->class->vft
[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis__mainmodule_61d
]))(var1
, var_mainmodule
) /* mainmodule= on <var1:RapidTypeAnalysis>*/;
17 ((void (*)(val
* self
))(var1
->class->vft
[COLOR_standard__kernel__Object__init
]))(var1
) /* init on <var1:RapidTypeAnalysis>*/;
21 nit___nit__RapidTypeAnalysis___run_analysis(var_analysis
); /* Direct call rapid_type_analysis#RapidTypeAnalysis#run_analysis on <var_analysis:RapidTypeAnalysis>*/
28 /* method rapid_type_analysis#RapidTypeAnalysis#modelbuilder for (self: RapidTypeAnalysis): ModelBuilder */
29 val
* nit___nit__RapidTypeAnalysis___modelbuilder(val
* self
) {
30 val
* var
/* : ModelBuilder */;
31 val
* var1
/* : ModelBuilder */;
32 var1
= self
->attrs
[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___modelbuilder
].val
; /* _modelbuilder on <self:RapidTypeAnalysis> */
33 if (unlikely(var1
== NULL
)) {
34 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
35 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 46);
42 /* method rapid_type_analysis#RapidTypeAnalysis#modelbuilder= for (self: RapidTypeAnalysis, ModelBuilder) */
43 void nit___nit__RapidTypeAnalysis___modelbuilder_61d(val
* self
, val
* p0
) {
44 self
->attrs
[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___modelbuilder
].val
= p0
; /* _modelbuilder on <self:RapidTypeAnalysis> */
47 /* method rapid_type_analysis#RapidTypeAnalysis#mainmodule for (self: RapidTypeAnalysis): MModule */
48 val
* nit___nit__RapidTypeAnalysis___mainmodule(val
* self
) {
49 val
* var
/* : MModule */;
50 val
* var1
/* : MModule */;
51 var1
= self
->attrs
[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___mainmodule
].val
; /* _mainmodule on <self:RapidTypeAnalysis> */
52 if (unlikely(var1
== NULL
)) {
53 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule");
54 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 49);
61 /* method rapid_type_analysis#RapidTypeAnalysis#mainmodule= for (self: RapidTypeAnalysis, MModule) */
62 void nit___nit__RapidTypeAnalysis___mainmodule_61d(val
* self
, val
* p0
) {
63 self
->attrs
[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___mainmodule
].val
= p0
; /* _mainmodule on <self:RapidTypeAnalysis> */
66 /* method rapid_type_analysis#RapidTypeAnalysis#live_types for (self: RapidTypeAnalysis): HashSet[MClassType] */
67 val
* nit___nit__RapidTypeAnalysis___live_types(val
* self
) {
68 val
* var
/* : HashSet[MClassType] */;
69 val
* var1
/* : HashSet[MClassType] */;
70 var1
= self
->attrs
[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___live_types
].val
; /* _live_types on <self:RapidTypeAnalysis> */
71 if (unlikely(var1
== NULL
)) {
72 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_types");
73 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 53);
80 /* method rapid_type_analysis#RapidTypeAnalysis#live_open_types for (self: RapidTypeAnalysis): HashSet[MClassType] */
81 val
* nit___nit__RapidTypeAnalysis___live_open_types(val
* self
) {
82 val
* var
/* : HashSet[MClassType] */;
83 val
* var1
/* : HashSet[MClassType] */;
84 var1
= self
->attrs
[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___live_open_types
].val
; /* _live_open_types on <self:RapidTypeAnalysis> */
85 if (unlikely(var1
== NULL
)) {
86 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_open_types");
87 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 58);
94 /* method rapid_type_analysis#RapidTypeAnalysis#live_classes for (self: RapidTypeAnalysis): HashSet[MClass] */
95 val
* nit___nit__RapidTypeAnalysis___live_classes(val
* self
) {
96 val
* var
/* : HashSet[MClass] */;
97 val
* var1
/* : HashSet[MClass] */;
98 var1
= self
->attrs
[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___live_classes
].val
; /* _live_classes on <self:RapidTypeAnalysis> */
99 if (unlikely(var1
== NULL
)) {
100 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_classes");
101 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 62);
108 /* method rapid_type_analysis#RapidTypeAnalysis#live_cast_types for (self: RapidTypeAnalysis): HashSet[MType] */
109 val
* nit___nit__RapidTypeAnalysis___live_cast_types(val
* self
) {
110 val
* var
/* : HashSet[MType] */;
111 val
* var1
/* : HashSet[MType] */;
112 var1
= self
->attrs
[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___live_cast_types
].val
; /* _live_cast_types on <self:RapidTypeAnalysis> */
113 if (unlikely(var1
== NULL
)) {
114 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_cast_types");
115 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 65);
122 /* method rapid_type_analysis#RapidTypeAnalysis#live_open_cast_types for (self: RapidTypeAnalysis): HashSet[MType] */
123 val
* nit___nit__RapidTypeAnalysis___live_open_cast_types(val
* self
) {
124 val
* var
/* : HashSet[MType] */;
125 val
* var1
/* : HashSet[MType] */;
126 var1
= self
->attrs
[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___live_open_cast_types
].val
; /* _live_open_cast_types on <self:RapidTypeAnalysis> */
127 if (unlikely(var1
== NULL
)) {
128 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_open_cast_types");
129 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 68);
136 /* method rapid_type_analysis#RapidTypeAnalysis#live_methoddefs for (self: RapidTypeAnalysis): HashSet[MMethodDef] */
137 val
* nit___nit__RapidTypeAnalysis___live_methoddefs(val
* self
) {
138 val
* var
/* : HashSet[MMethodDef] */;
139 val
* var1
/* : HashSet[MMethodDef] */;
140 var1
= self
->attrs
[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___live_methoddefs
].val
; /* _live_methoddefs on <self:RapidTypeAnalysis> */
141 if (unlikely(var1
== NULL
)) {
142 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_methoddefs");
143 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 72);
150 /* method rapid_type_analysis#RapidTypeAnalysis#live_methods for (self: RapidTypeAnalysis): HashSet[MMethod] */
151 val
* nit___nit__RapidTypeAnalysis___live_methods(val
* self
) {
152 val
* var
/* : HashSet[MMethod] */;
153 val
* var1
/* : HashSet[MMethod] */;
154 var1
= self
->attrs
[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___live_methods
].val
; /* _live_methods on <self:RapidTypeAnalysis> */
155 if (unlikely(var1
== NULL
)) {
156 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_methods");
157 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 75);
164 /* method rapid_type_analysis#RapidTypeAnalysis#live_callsites for (self: RapidTypeAnalysis): HashSet[CallSite] */
165 val
* nit___nit__RapidTypeAnalysis___live_callsites(val
* self
) {
166 val
* var
/* : HashSet[CallSite] */;
167 val
* var1
/* : HashSet[CallSite] */;
168 var1
= self
->attrs
[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___live_callsites
].val
; /* _live_callsites on <self:RapidTypeAnalysis> */
169 if (unlikely(var1
== NULL
)) {
170 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_callsites");
171 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 78);
178 /* method rapid_type_analysis#RapidTypeAnalysis#live_targets_cache for (self: RapidTypeAnalysis): HashMap2[MType, MProperty, Set[MMethodDef]] */
179 val
* nit___nit__RapidTypeAnalysis___live_targets_cache(val
* self
) {
180 val
* var
/* : HashMap2[MType, MProperty, Set[MMethodDef]] */;
181 val
* var1
/* : HashMap2[MType, MProperty, Set[MMethodDef]] */;
182 var1
= self
->attrs
[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___live_targets_cache
].val
; /* _live_targets_cache on <self:RapidTypeAnalysis> */
183 if (unlikely(var1
== NULL
)) {
184 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_targets_cache");
185 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 81);
192 /* method rapid_type_analysis#RapidTypeAnalysis#live_targets for (self: RapidTypeAnalysis, CallSite): Set[MMethodDef] */
193 val
* nit___nit__RapidTypeAnalysis___live_targets(val
* self
, val
* p0
) {
194 val
* var
/* : Set[MMethodDef] */;
195 val
* var_callsite
/* var callsite: CallSite */;
196 val
* var1
/* : MType */;
197 val
* var3
/* : MType */;
198 val
* var_mtype
/* var mtype: MType */;
199 val
* var4
/* : nullable MClassType */;
200 val
* var6
/* : nullable MClassType */;
201 val
* var_anchor
/* var anchor: nullable MClassType */;
202 val
* var7
/* : null */;
203 short int var8
/* : Bool */;
204 short int var9
/* : Bool */;
205 val
* var_other
/* var other: nullable Object */;
206 short int var11
/* : Bool */;
207 short int var12
/* : Bool */;
208 val
* var13
/* : MModule */;
209 val
* var15
/* : MModule */;
210 val
* var16
/* : MType */;
211 val
* var17
/* : MType */;
212 short int var18
/* : Bool */;
215 val
* var19
/* : MClass */;
216 val
* var21
/* : MClass */;
217 val
* var22
/* : MClassDef */;
218 val
* var24
/* : MClassDef */;
219 val
* var25
/* : MClassType */;
220 val
* var27
/* : MClassType */;
221 val
* var28
/* : MMethod */;
222 val
* var30
/* : MMethod */;
223 val
* var_mproperty
/* var mproperty: MMethod */;
224 val
* var31
/* : HashMap2[MType, MProperty, Set[MMethodDef]] */;
225 val
* var33
/* : HashMap2[MType, MProperty, Set[MMethodDef]] */;
226 val
* var34
/* : nullable Object */;
227 val
* var_res
/* var res: nullable Set[MMethodDef] */;
228 val
* var35
/* : null */;
229 short int var36
/* : Bool */;
230 short int var37
/* : Bool */;
231 short int var39
/* : Bool */;
232 short int var40
/* : Bool */;
233 val
* var41
/* : ArraySet[MMethodDef] */;
234 val
* var42
/* : HashMap2[MType, MProperty, Set[MMethodDef]] */;
235 val
* var44
/* : HashMap2[MType, MProperty, Set[MMethodDef]] */;
236 val
* var45
/* : HashSet[MClass] */;
237 val
* var47
/* : HashSet[MClass] */;
238 val
* var_
/* var : HashSet[MClass] */;
239 val
* var48
/* : Iterator[nullable Object] */;
240 val
* var_49
/* var : Iterator[MClass] */;
241 short int var50
/* : Bool */;
242 val
* var51
/* : nullable Object */;
243 val
* var_c
/* var c: MClass */;
244 val
* var52
/* : MClassDef */;
245 val
* var54
/* : MClassDef */;
246 val
* var55
/* : MClassType */;
247 val
* var57
/* : MClassType */;
248 val
* var_tc
/* var tc: MClassType */;
249 val
* var58
/* : MModule */;
250 val
* var60
/* : MModule */;
251 val
* var61
/* : null */;
252 short int var62
/* : Bool */;
253 short int var63
/* : Bool */;
254 val
* var64
/* : MModule */;
255 val
* var66
/* : MModule */;
256 val
* var67
/* : MPropDef */;
257 val
* var_d
/* var d: MMethodDef */;
260 { /* Inline typing#CallSite#recv (var_callsite) on <var_callsite:CallSite> */
261 var3
= var_callsite
->attrs
[COLOR_nit__typing__CallSite___recv
].val
; /* _recv on <var_callsite:CallSite> */
262 if (unlikely(var3
== NULL
)) {
263 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _recv");
264 PRINT_ERROR(" (%s:%d)\n", FILE_nit__typing
, 473);
273 { /* Inline typing#CallSite#anchor (var_callsite) on <var_callsite:CallSite> */
274 var6
= var_callsite
->attrs
[COLOR_nit__typing__CallSite___anchor
].val
; /* _anchor on <var_callsite:CallSite> */
281 if (var_anchor
== NULL
) {
282 var8
= 0; /* is null */
284 var8
= 1; /* arg is null and recv is not */
287 { /* Inline kernel#Object#!= (var_anchor,var7) on <var_anchor:nullable MClassType> */
290 var11
= ((short int (*)(val
* self
, val
* p0
))(var_anchor
->class->vft
[COLOR_standard__kernel__Object___61d_61d
]))(var_anchor
, var_other
) /* == on <var_anchor:nullable MClassType(MClassType)>*/;
301 { /* Inline typing#CallSite#mmodule (var_callsite) on <var_callsite:CallSite> */
302 var15
= var_callsite
->attrs
[COLOR_nit__typing__CallSite___mmodule
].val
; /* _mmodule on <var_callsite:CallSite> */
303 if (unlikely(var15
== NULL
)) {
304 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule");
305 PRINT_ERROR(" (%s:%d)\n", FILE_nit__typing
, 476);
313 var16
= ((val
* (*)(val
* self
, val
* p0
, val
* p1
))(var_mtype
->class->vft
[COLOR_nit__model__MType__anchor_to
]))(var_mtype
, var13
, var_anchor
) /* anchor_to on <var_mtype:MType>*/;
319 var17
= ((val
* (*)(val
* self
))(var_mtype
->class->vft
[COLOR_nit__model__MType__as_notnullable
]))(var_mtype
) /* as_notnullable on <var_mtype:MType>*/;
322 /* <var_mtype:MType> isa MClassType */
323 cltype
= type_nit__MClassType
.color
;
324 idtype
= type_nit__MClassType
.id
;
325 if(cltype
>= var_mtype
->type
->table_size
) {
328 var18
= var_mtype
->type
->type_table
[cltype
] == idtype
;
332 { /* Inline model#MClassType#mclass (var_mtype) on <var_mtype:MType(MClassType)> */
333 var21
= var_mtype
->attrs
[COLOR_nit__model__MClassType___mclass
].val
; /* _mclass on <var_mtype:MType(MClassType)> */
334 if (unlikely(var21
== NULL
)) {
335 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
336 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 1058);
344 { /* Inline model#MClass#intro (var19) on <var19:MClass> */
345 var24
= var19
->attrs
[COLOR_nit__model__MClass___intro
].val
; /* _intro on <var19:MClass> */
346 if (unlikely(var24
== NULL
)) {
347 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro");
348 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 423);
356 { /* Inline model#MClassDef#bound_mtype (var22) on <var22:MClassDef> */
357 var27
= var22
->attrs
[COLOR_nit__model__MClassDef___bound_mtype
].val
; /* _bound_mtype on <var22:MClassDef> */
358 if (unlikely(var27
== NULL
)) {
359 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _bound_mtype");
360 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 495);
371 { /* Inline typing#CallSite#mproperty (var_callsite) on <var_callsite:CallSite> */
372 var30
= var_callsite
->attrs
[COLOR_nit__typing__CallSite___mproperty
].val
; /* _mproperty on <var_callsite:CallSite> */
373 if (unlikely(var30
== NULL
)) {
374 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty");
375 PRINT_ERROR(" (%s:%d)\n", FILE_nit__typing
, 487);
382 var_mproperty
= var28
;
384 { /* Inline rapid_type_analysis#RapidTypeAnalysis#live_targets_cache (self) on <self:RapidTypeAnalysis> */
385 var33
= self
->attrs
[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___live_targets_cache
].val
; /* _live_targets_cache on <self:RapidTypeAnalysis> */
386 if (unlikely(var33
== NULL
)) {
387 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_targets_cache");
388 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 81);
396 var34
= more_collections___more_collections__HashMap2____91d_93d(var31
, var_mtype
, var_mproperty
);
400 if (var_res
== NULL
) {
401 var36
= 0; /* is null */
403 var36
= 1; /* arg is null and recv is not */
406 { /* Inline kernel#Object#!= (var_res,var35) on <var_res:nullable Set[MMethodDef]> */
409 var39
= ((short int (*)(val
* self
, val
* p0
))(var_res
->class->vft
[COLOR_standard__kernel__Object___61d_61d
]))(var_res
, var_other
) /* == on <var_res:nullable Set[MMethodDef](Set[MMethodDef])>*/;
423 var41
= NEW_standard__ArraySet(&type_standard__ArraySet__nit__MMethodDef
);
425 standard___standard__ArraySet___standard__kernel__Object__init(var41
); /* Direct call array#ArraySet#init on <var41:ArraySet[MMethodDef]>*/
429 { /* Inline rapid_type_analysis#RapidTypeAnalysis#live_targets_cache (self) on <self:RapidTypeAnalysis> */
430 var44
= self
->attrs
[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___live_targets_cache
].val
; /* _live_targets_cache on <self:RapidTypeAnalysis> */
431 if (unlikely(var44
== NULL
)) {
432 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_targets_cache");
433 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 81);
441 more_collections___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]]>*/
444 { /* Inline rapid_type_analysis#RapidTypeAnalysis#live_classes (self) on <self:RapidTypeAnalysis> */
445 var47
= self
->attrs
[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___live_classes
].val
; /* _live_classes on <self:RapidTypeAnalysis> */
446 if (unlikely(var47
== NULL
)) {
447 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_classes");
448 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 62);
457 var48
= standard___standard__HashSet___standard__abstract_collection__Collection__iterator(var_
);
462 var50
= ((short int (*)(val
* self
))(var_49
->class->vft
[COLOR_standard__abstract_collection__Iterator__is_ok
]))(var_49
) /* is_ok on <var_49:Iterator[MClass]>*/;
466 var51
= ((val
* (*)(val
* self
))(var_49
->class->vft
[COLOR_standard__abstract_collection__Iterator__item
]))(var_49
) /* item on <var_49:Iterator[MClass]>*/;
470 { /* Inline model#MClass#intro (var_c) on <var_c:MClass> */
471 var54
= var_c
->attrs
[COLOR_nit__model__MClass___intro
].val
; /* _intro on <var_c:MClass> */
472 if (unlikely(var54
== NULL
)) {
473 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro");
474 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 423);
482 { /* Inline model#MClassDef#bound_mtype (var52) on <var52:MClassDef> */
483 var57
= var52
->attrs
[COLOR_nit__model__MClassDef___bound_mtype
].val
; /* _bound_mtype on <var52:MClassDef> */
484 if (unlikely(var57
== NULL
)) {
485 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _bound_mtype");
486 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 495);
495 { /* Inline rapid_type_analysis#RapidTypeAnalysis#mainmodule (self) on <self:RapidTypeAnalysis> */
496 var60
= self
->attrs
[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___mainmodule
].val
; /* _mainmodule on <self:RapidTypeAnalysis> */
497 if (unlikely(var60
== NULL
)) {
498 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule");
499 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 49);
508 var62
= nit___nit__MType___is_subtype(var_tc
, var58
, var61
, var_mtype
);
516 { /* Inline rapid_type_analysis#RapidTypeAnalysis#mainmodule (self) on <self:RapidTypeAnalysis> */
517 var66
= self
->attrs
[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___mainmodule
].val
; /* _mainmodule on <self:RapidTypeAnalysis> */
518 if (unlikely(var66
== NULL
)) {
519 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule");
520 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 49);
528 var67
= nit___nit__MProperty___lookup_first_definition(var_mproperty
, var64
, var_tc
);
532 standard___standard__ArraySet___standard__abstract_collection__SimpleCollection__add(var_res
, var_d
); /* Direct call array#ArraySet#add on <var_res:nullable Set[MMethodDef](ArraySet[MMethodDef])>*/
534 BREAK_label
: (void)0;
536 ((void (*)(val
* self
))(var_49
->class->vft
[COLOR_standard__abstract_collection__Iterator__next
]))(var_49
) /* next on <var_49:Iterator[MClass]>*/;
542 BREAK_label68
: (void)0;
544 { /* Inline abstract_collection#Iterator#finish (var_49) on <var_49:Iterator[MClass]> */
553 /* method rapid_type_analysis#RapidTypeAnalysis#live_super_sends for (self: RapidTypeAnalysis): HashSet[MMethodDef] */
554 val
* nit___nit__RapidTypeAnalysis___live_super_sends(val
* self
) {
555 val
* var
/* : HashSet[MMethodDef] */;
556 val
* var1
/* : HashSet[MMethodDef] */;
557 var1
= self
->attrs
[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___live_super_sends
].val
; /* _live_super_sends on <self:RapidTypeAnalysis> */
558 if (unlikely(var1
== NULL
)) {
559 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_super_sends");
560 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 107);
567 /* method rapid_type_analysis#RapidTypeAnalysis#totry_methods for (self: RapidTypeAnalysis): HashSet[MMethod] */
568 val
* nit___nit__RapidTypeAnalysis___totry_methods(val
* self
) {
569 val
* var
/* : HashSet[MMethod] */;
570 val
* var1
/* : HashSet[MMethod] */;
571 var1
= self
->attrs
[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___totry_methods
].val
; /* _totry_methods on <self:RapidTypeAnalysis> */
572 if (unlikely(var1
== NULL
)) {
573 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _totry_methods");
574 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 162);
581 /* method rapid_type_analysis#RapidTypeAnalysis#totry_methods_to_remove for (self: RapidTypeAnalysis): Array[MMethod] */
582 val
* nit___nit__RapidTypeAnalysis___totry_methods_to_remove(val
* self
) {
583 val
* var
/* : Array[MMethod] */;
584 val
* var1
/* : Array[MMethod] */;
585 var1
= self
->attrs
[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___totry_methods_to_remove
].val
; /* _totry_methods_to_remove on <self:RapidTypeAnalysis> */
586 if (unlikely(var1
== NULL
)) {
587 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _totry_methods_to_remove");
588 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 165);
595 /* method rapid_type_analysis#RapidTypeAnalysis#try_methods for (self: RapidTypeAnalysis): HashSet[MMethod] */
596 val
* nit___nit__RapidTypeAnalysis___try_methods(val
* self
) {
597 val
* var
/* : HashSet[MMethod] */;
598 val
* var1
/* : HashSet[MMethod] */;
599 var1
= self
->attrs
[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___try_methods
].val
; /* _try_methods on <self:RapidTypeAnalysis> */
600 if (unlikely(var1
== NULL
)) {
601 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _try_methods");
602 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 168);
609 /* method rapid_type_analysis#RapidTypeAnalysis#todo for (self: RapidTypeAnalysis): List[MMethodDef] */
610 val
* nit___nit__RapidTypeAnalysis___todo(val
* self
) {
611 val
* var
/* : List[MMethodDef] */;
612 val
* var1
/* : List[MMethodDef] */;
613 var1
= self
->attrs
[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___todo
].val
; /* _todo on <self:RapidTypeAnalysis> */
614 if (unlikely(var1
== NULL
)) {
615 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _todo");
616 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 172);
623 /* method rapid_type_analysis#RapidTypeAnalysis#force_alive for (self: RapidTypeAnalysis, String) */
624 void nit___nit__RapidTypeAnalysis___force_alive(val
* self
, val
* p0
) {
625 val
* var_classname
/* var classname: String */;
626 val
* var
/* : ModelBuilder */;
627 val
* var2
/* : ModelBuilder */;
628 val
* var3
/* : Model */;
629 val
* var5
/* : Model */;
630 val
* var6
/* : nullable Array[MClass] */;
631 val
* var_classes
/* var classes: nullable Array[MClass] */;
632 val
* var7
/* : null */;
633 short int var8
/* : Bool */;
634 short int var9
/* : Bool */;
635 val
* var_other
/* var other: nullable Object */;
636 short int var11
/* : Bool */;
637 short int var12
/* : Bool */;
638 val
* var_
/* var : Array[MClass] */;
639 val
* var13
/* : ArrayIterator[nullable Object] */;
640 val
* var_14
/* var : ArrayIterator[MClass] */;
641 short int var15
/* : Bool */;
642 val
* var16
/* : nullable Object */;
643 val
* var_c
/* var c: MClass */;
644 val
* var17
/* : MClassType */;
645 val
* var19
/* : MClassType */;
646 val
* var20
/* : MClassType */;
647 val
* var22
/* : MClassType */;
650 { /* Inline rapid_type_analysis#RapidTypeAnalysis#modelbuilder (self) on <self:RapidTypeAnalysis> */
651 var2
= self
->attrs
[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___modelbuilder
].val
; /* _modelbuilder on <self:RapidTypeAnalysis> */
652 if (unlikely(var2
== NULL
)) {
653 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
654 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 46);
662 { /* Inline modelbuilder_base#ModelBuilder#model (var) on <var:ModelBuilder> */
663 var5
= var
->attrs
[COLOR_nit__modelbuilder_base__ModelBuilder___model
].val
; /* _model on <var:ModelBuilder> */
664 if (unlikely(var5
== NULL
)) {
665 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _model");
666 PRINT_ERROR(" (%s:%d)\n", FILE_nit__modelbuilder_base
, 44);
674 var6
= nit__model___Model___get_mclasses_by_name(var3
, var_classname
);
678 if (var_classes
== NULL
) {
679 var8
= 0; /* is null */
681 var8
= 1; /* arg is null and recv is not */
684 { /* Inline kernel#Object#!= (var_classes,var7) on <var_classes:nullable Array[MClass]> */
687 var11
= ((short int (*)(val
* self
, val
* p0
))(var_classes
->class->vft
[COLOR_standard__kernel__Object___61d_61d
]))(var_classes
, var_other
) /* == on <var_classes:nullable Array[MClass](Array[MClass])>*/;
699 var13
= standard___standard__AbstractArrayRead___standard__abstract_collection__Collection__iterator(var_
);
704 var15
= standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__is_ok(var_14
);
708 var16
= standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__item(var_14
);
712 { /* Inline model#MClass#mclass_type (var_c) on <var_c:MClass> */
713 var19
= var_c
->attrs
[COLOR_nit__model__MClass___mclass_type
].val
; /* _mclass_type on <var_c:MClass> */
714 if (unlikely(var19
== NULL
)) {
715 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass_type");
716 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 438);
724 { /* Inline model#MClass#mclass_type (var_c) on <var_c:MClass> */
725 var22
= var_c
->attrs
[COLOR_nit__model__MClass___mclass_type
].val
; /* _mclass_type on <var_c:MClass> */
726 if (unlikely(var22
== NULL
)) {
727 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass_type");
728 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 438);
736 nit___nit__RapidTypeAnalysis___add_new(self
, var17
, var20
); /* Direct call rapid_type_analysis#RapidTypeAnalysis#add_new on <self:RapidTypeAnalysis>*/
739 standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__next(var_14
); /* Direct call array#ArrayIterator#next on <var_14:ArrayIterator[MClass]>*/
745 BREAK_label
: (void)0;
747 { /* Inline abstract_collection#Iterator#finish (var_14) on <var_14:ArrayIterator[MClass]> */
755 /* method rapid_type_analysis#RapidTypeAnalysis#run_analysis for (self: RapidTypeAnalysis) */
756 void nit___nit__RapidTypeAnalysis___run_analysis(val
* self
) {
757 val
* var
/* : MModule */;
758 val
* var2
/* : MModule */;
759 val
* var3
/* : nullable MClassType */;
760 val
* var_maintype
/* var maintype: nullable MClassType */;
761 val
* var4
/* : null */;
762 short int var5
/* : Bool */;
763 short int var6
/* : Bool */;
764 val
* var_other
/* var other: nullable Object */;
765 short int var8
/* : Bool */;
766 short int var10
/* : Bool */;
767 val
* var11
/* : MModule */;
768 val
* var13
/* : MModule */;
770 val
* var14
/* : String */;
771 char* var15
/* : NativeString */;
772 long var16
/* : Int */;
773 val
* var17
/* : FlatString */;
774 val
* var18
/* : MClass */;
775 val
* var20
/* : MClass */;
776 val
* var21
/* : nullable MMethod */;
777 val
* var_initprop
/* var initprop: nullable MMethod */;
778 val
* var22
/* : null */;
779 short int var23
/* : Bool */;
780 short int var24
/* : Bool */;
781 val
* var_other26
/* var other: nullable Object */;
782 short int var27
/* : Bool */;
783 short int var28
/* : Bool */;
784 val
* var29
/* : nullable MMethod */;
785 val
* var30
/* : MModule */;
786 val
* var32
/* : MModule */;
787 static val
* varonce33
;
788 val
* var34
/* : String */;
789 char* var35
/* : NativeString */;
790 long var36
/* : Int */;
791 val
* var37
/* : FlatString */;
792 val
* var38
/* : MClass */;
793 val
* var40
/* : MClass */;
794 val
* var41
/* : nullable MMethod */;
795 val
* var42
/* : MModule */;
796 val
* var44
/* : MModule */;
797 static val
* varonce45
;
798 val
* var46
/* : String */;
799 char* var47
/* : NativeString */;
800 long var48
/* : Int */;
801 val
* var49
/* : FlatString */;
802 val
* var50
/* : MClass */;
803 val
* var52
/* : MClass */;
804 val
* var53
/* : nullable MMethod */;
805 val
* var_mainprop
/* var mainprop: nullable MMethod */;
806 val
* var54
/* : null */;
807 short int var55
/* : Bool */;
808 short int var56
/* : Bool */;
809 short int var58
/* : Bool */;
810 short int var59
/* : Bool */;
811 val
* var60
/* : MModule */;
812 val
* var62
/* : MModule */;
813 val
* var63
/* : nullable MClassType */;
814 val
* var_finalizable_type
/* var finalizable_type: nullable MClassType */;
815 val
* var64
/* : null */;
816 short int var65
/* : Bool */;
817 short int var66
/* : Bool */;
818 short int var68
/* : Bool */;
819 short int var69
/* : Bool */;
820 val
* var70
/* : MModule */;
821 val
* var72
/* : MModule */;
822 static val
* varonce73
;
823 val
* var74
/* : String */;
824 char* var75
/* : NativeString */;
825 long var76
/* : Int */;
826 val
* var77
/* : FlatString */;
827 val
* var78
/* : MClass */;
828 val
* var80
/* : MClass */;
829 val
* var81
/* : nullable MMethod */;
830 val
* var_finalize_meth
/* var finalize_meth: nullable MMethod */;
831 val
* var82
/* : null */;
832 short int var83
/* : Bool */;
833 short int var84
/* : Bool */;
834 short int var86
/* : Bool */;
835 short int var87
/* : Bool */;
836 static val
* varonce88
;
837 val
* var89
/* : String */;
838 char* var90
/* : NativeString */;
839 long var91
/* : Int */;
840 val
* var92
/* : FlatString */;
841 static val
* varonce93
;
842 val
* var94
/* : String */;
843 char* var95
/* : NativeString */;
844 long var96
/* : Int */;
845 val
* var97
/* : FlatString */;
846 static val
* varonce98
;
847 val
* var99
/* : String */;
848 char* var100
/* : NativeString */;
849 long var101
/* : Int */;
850 val
* var102
/* : FlatString */;
851 static val
* varonce103
;
852 val
* var104
/* : String */;
853 char* var105
/* : NativeString */;
854 long var106
/* : Int */;
855 val
* var107
/* : FlatString */;
856 static val
* varonce108
;
857 val
* var109
/* : String */;
858 char* var110
/* : NativeString */;
859 long var111
/* : Int */;
860 val
* var112
/* : FlatString */;
861 val
* var113
/* : List[MMethodDef] */;
862 val
* var115
/* : List[MMethodDef] */;
863 short int var116
/* : Bool */;
864 short int var117
/* : Bool */;
865 val
* var118
/* : List[MMethodDef] */;
866 val
* var120
/* : List[MMethodDef] */;
867 val
* var121
/* : nullable Object */;
868 val
* var_mmethoddef
/* var mmethoddef: MMethodDef */;
869 val
* var122
/* : MProperty */;
870 val
* var124
/* : MProperty */;
871 val
* var_mmeth
/* var mmeth: MMethod */;
872 val
* var125
/* : RapidTypeVisitor */;
873 val
* var126
/* : MClassDef */;
874 val
* var128
/* : MClassDef */;
875 val
* var129
/* : MClassType */;
876 val
* var131
/* : MClassType */;
877 val
* var_v
/* var v: RapidTypeVisitor */;
878 val
* var132
/* : nullable MSignature */;
879 val
* var134
/* : nullable MSignature */;
880 long var135
/* : Int */;
881 long var137
/* : Int */;
882 long var_vararg_rank
/* var vararg_rank: Int */;
883 long var138
/* : Int */;
884 long var139
/* : Int */;
885 long var141
/* : Int */;
886 short int var142
/* : Bool */;
887 short int var144
/* : Bool */;
890 const char* var_class_name
;
891 short int var145
/* : Bool */;
892 val
* var146
/* : ModelBuilder */;
893 val
* var148
/* : ModelBuilder */;
894 val
* var149
/* : nullable ANode */;
895 val
* var_node
/* var node: nullable ANode */;
896 val
* var150
/* : nullable MSignature */;
897 val
* var152
/* : nullable MSignature */;
898 val
* var153
/* : Array[MParameter] */;
899 val
* var155
/* : Array[MParameter] */;
900 val
* var156
/* : nullable Object */;
901 val
* var157
/* : MType */;
902 val
* var159
/* : MType */;
903 val
* var_elttype
/* var elttype: MType */;
904 val
* var160
/* : MModule */;
905 val
* var162
/* : MModule */;
906 static val
* varonce163
;
907 val
* var164
/* : String */;
908 char* var165
/* : NativeString */;
909 long var166
/* : Int */;
910 val
* var167
/* : FlatString */;
911 val
* var168
/* : MClass */;
912 val
* var169
/* : Array[MType] */;
913 long var170
/* : Int */;
914 val
* var_
/* var : Array[MType] */;
915 val
* var171
/* : MClassType */;
916 val
* var_vararg
/* var vararg: MClassType */;
917 val
* var172
/* : MModule */;
918 val
* var174
/* : MModule */;
919 static val
* varonce175
;
920 val
* var176
/* : String */;
921 char* var177
/* : NativeString */;
922 long var178
/* : Int */;
923 val
* var179
/* : FlatString */;
924 val
* var180
/* : MClass */;
925 val
* var181
/* : Array[MType] */;
926 long var182
/* : Int */;
927 val
* var_183
/* var : Array[MType] */;
928 val
* var184
/* : MClassType */;
929 val
* var_native
/* var native: MClassType */;
930 val
* var185
/* : ModelBuilder */;
931 val
* var187
/* : ModelBuilder */;
932 static val
* varonce188
;
933 val
* var189
/* : String */;
934 char* var190
/* : NativeString */;
935 long var191
/* : Int */;
936 val
* var192
/* : FlatString */;
937 val
* var193
/* : MClass */;
938 val
* var195
/* : MClass */;
939 val
* var196
/* : MModule */;
940 val
* var198
/* : MModule */;
941 val
* var199
/* : MMethod */;
942 val
* var200
/* : nullable MSignature */;
943 val
* var202
/* : nullable MSignature */;
944 val
* var_sig
/* var sig: MSignature */;
945 val
* var203
/* : MPropDef */;
946 val
* var205
/* : MPropDef */;
947 val
* var206
/* : nullable MSignature */;
948 val
* var208
/* : nullable MSignature */;
949 val
* var_osig
/* var osig: MSignature */;
950 long var209
/* : Int */;
951 long var_i
/* var i: Int */;
952 long var210
/* : Int */;
953 long var_211
/* var : Int */;
954 short int var212
/* : Bool */;
955 short int var214
/* : Bool */;
958 const char* var_class_name217
;
959 short int var218
/* : Bool */;
960 val
* var219
/* : Array[MParameter] */;
961 val
* var221
/* : Array[MParameter] */;
962 val
* var222
/* : nullable Object */;
963 val
* var223
/* : MType */;
964 val
* var225
/* : MType */;
965 val
* var_origtype
/* var origtype: MType */;
966 short int var226
/* : Bool */;
967 short int var227
/* : Bool */;
968 val
* var228
/* : Array[MParameter] */;
969 val
* var230
/* : Array[MParameter] */;
970 val
* var231
/* : nullable Object */;
971 val
* var232
/* : MType */;
972 val
* var234
/* : MType */;
973 val
* var_paramtype
/* var paramtype: MType */;
974 long var235
/* : Int */;
975 long var236
/* : Int */;
976 val
* var238
/* : ModelBuilder */;
977 val
* var240
/* : ModelBuilder */;
978 val
* var241
/* : nullable ANode */;
979 val
* var_npropdef
/* var npropdef: nullable ANode */;
980 short int var242
/* : Bool */;
983 val
* var245
/* : nullable MMethodDef */;
984 val
* var247
/* : nullable MMethodDef */;
985 short int var248
/* : Bool */;
986 short int var250
/* : Bool */;
987 short int var252
/* : Bool */;
988 short int var253
/* : Bool */;
989 val
* var254
/* : MProperty */;
990 val
* var256
/* : MProperty */;
991 short int var257
/* : Bool */;
992 short int var259
/* : Bool */;
993 short int var_260
/* var : Bool */;
994 short int var261
/* : Bool */;
995 short int var262
/* : Bool */;
996 val
* var263
/* : MClassType */;
997 val
* var265
/* : MClassType */;
998 val
* var267
/* : nullable Object */;
999 val
* var269
/* : nullable Object */;
1000 val
* var270
/* : null */;
1001 short int var271
/* : Bool */;
1002 short int var272
/* : Bool */;
1003 val
* var273
/* : nullable MSignature */;
1004 val
* var275
/* : nullable MSignature */;
1005 val
* var276
/* : nullable MType */;
1006 val
* var278
/* : nullable MType */;
1007 short int var279
/* : Bool */;
1010 const char* var_class_name282
;
1011 val
* var283
/* : null */;
1012 short int var284
/* : Bool */;
1013 short int var285
/* : Bool */;
1014 short int var287
/* : Bool */;
1015 short int var289
/* : Bool */;
1016 short int var290
/* : Bool */;
1019 val
* var293
/* : nullable Array[CallSite] */;
1020 val
* var295
/* : nullable Array[CallSite] */;
1021 val
* var_auto_super_inits
/* var auto_super_inits: nullable Array[CallSite] */;
1022 val
* var296
/* : null */;
1023 short int var297
/* : Bool */;
1024 short int var298
/* : Bool */;
1025 short int var300
/* : Bool */;
1026 short int var301
/* : Bool */;
1027 val
* var_302
/* var : Array[CallSite] */;
1028 val
* var303
/* : ArrayIterator[nullable Object] */;
1029 val
* var_304
/* var : ArrayIterator[CallSite] */;
1030 short int var305
/* : Bool */;
1031 val
* var306
/* : nullable Object */;
1032 val
* var_auto_super_init
/* var auto_super_init: CallSite */;
1033 short int var309
/* : Bool */;
1034 short int var311
/* : Bool */;
1035 val
* var312
/* : MClassType */;
1036 val
* var314
/* : MClassType */;
1037 short int var315
/* : Bool */;
1038 short int var316
/* : Bool */;
1039 short int var318
/* : Bool */;
1040 short int var_319
/* var : Bool */;
1041 short int var320
/* : Bool */;
1042 short int var322
/* : Bool */;
1043 val
* var323
/* : nullable MSignature */;
1044 val
* var325
/* : nullable MSignature */;
1045 val
* var326
/* : nullable MType */;
1046 val
* var328
/* : nullable MType */;
1047 val
* var_ret
/* var ret: nullable MType */;
1048 short int var329
/* : Bool */;
1049 short int var330
/* : Bool */;
1050 short int var331
/* : Bool */;
1051 val
* var332
/* : null */;
1052 short int var333
/* : Bool */;
1053 short int var334
/* : Bool */;
1054 short int var336
/* : Bool */;
1055 short int var337
/* : Bool */;
1056 short int var_338
/* var : Bool */;
1057 short int var339
/* : Bool */;
1060 short int var_342
/* var : Bool */;
1061 val
* var343
/* : MClass */;
1062 val
* var345
/* : MClass */;
1063 val
* var346
/* : MClassKind */;
1064 val
* var348
/* : MClassKind */;
1065 val
* var349
/* : MClassKind */;
1066 short int var350
/* : Bool */;
1067 short int var352
/* : Bool */;
1068 short int var353
/* : Bool */;
1069 short int var_354
/* var : Bool */;
1070 val
* var355
/* : MClass */;
1071 val
* var357
/* : MClass */;
1072 val
* var358
/* : MClassKind */;
1073 val
* var360
/* : MClassKind */;
1074 val
* var361
/* : MClassKind */;
1075 short int var362
/* : Bool */;
1076 short int var364
/* : Bool */;
1077 short int var365
/* : Bool */;
1078 val
* var367
/* : List[MClassType] */;
1079 val
* var_todo_types
/* var todo_types: List[MClassType] */;
1080 val
* var369
/* : HashSet[MClassType] */;
1081 val
* var371
/* : HashSet[MClassType] */;
1082 short int var372
/* : Bool */;
1083 short int var373
/* : Bool */;
1084 val
* var374
/* : nullable Object */;
1085 val
* var_t
/* var t: MClassType */;
1086 val
* var375
/* : HashSet[MClassType] */;
1087 val
* var377
/* : HashSet[MClassType] */;
1088 val
* var_378
/* var : HashSet[MClassType] */;
1089 val
* var379
/* : Iterator[nullable Object] */;
1090 val
* var_380
/* var : Iterator[MClassType] */;
1091 short int var381
/* : Bool */;
1092 val
* var382
/* : nullable Object */;
1093 val
* var_ot
/* var ot: MClassType */;
1094 val
* var383
/* : MModule */;
1095 val
* var385
/* : MModule */;
1096 short int var386
/* : Bool */;
1097 short int var387
/* : Bool */;
1098 val
* var389
/* : MModule */;
1099 val
* var391
/* : MModule */;
1100 val
* var392
/* : MClassType */;
1101 val
* var_rt
/* var rt: MClassType */;
1102 val
* var393
/* : HashSet[MClassType] */;
1103 val
* var395
/* : HashSet[MClassType] */;
1104 short int var396
/* : Bool */;
1105 val
* var397
/* : HashSet[MClassType] */;
1106 val
* var399
/* : HashSet[MClassType] */;
1107 val
* var403
/* : HashSet[MType] */;
1108 val
* var405
/* : HashSet[MType] */;
1109 val
* var_406
/* var : HashSet[MType] */;
1110 val
* var407
/* : Iterator[nullable Object] */;
1111 val
* var_408
/* var : Iterator[MType] */;
1112 short int var409
/* : Bool */;
1113 val
* var410
/* : nullable Object */;
1114 val
* var_ot411
/* var ot: MType */;
1115 val
* var412
/* : HashSet[MClassType] */;
1116 val
* var414
/* : HashSet[MClassType] */;
1117 val
* var_415
/* var : HashSet[MClassType] */;
1118 val
* var416
/* : Iterator[nullable Object] */;
1119 val
* var_417
/* var : Iterator[MClassType] */;
1120 short int var418
/* : Bool */;
1121 val
* var419
/* : nullable Object */;
1122 val
* var_t420
/* var t: MClassType */;
1123 val
* var421
/* : MModule */;
1124 val
* var423
/* : MModule */;
1125 short int var424
/* : Bool */;
1126 short int var425
/* : Bool */;
1127 val
* var427
/* : MModule */;
1128 val
* var429
/* : MModule */;
1129 val
* var430
/* : MType */;
1130 val
* var_rt431
/* var rt: MType */;
1131 val
* var432
/* : HashSet[MType] */;
1132 val
* var434
/* : HashSet[MType] */;
1134 { /* Inline rapid_type_analysis#RapidTypeAnalysis#mainmodule (self) on <self:RapidTypeAnalysis> */
1135 var2
= self
->attrs
[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___mainmodule
].val
; /* _mainmodule on <self:RapidTypeAnalysis> */
1136 if (unlikely(var2
== NULL
)) {
1137 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule");
1138 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 49);
1146 var3
= nit__model___MModule___sys_type(var
);
1148 var_maintype
= var3
;
1150 if (var_maintype
== NULL
) {
1151 var5
= 1; /* is null */
1153 var5
= 0; /* arg is null but recv is not */
1156 { /* Inline kernel#Object#== (var_maintype,var4) on <var_maintype:nullable MClassType> */
1159 { /* Inline kernel#Object#is_same_instance (var_maintype,var_other) on <var_maintype:nullable MClassType(MClassType)> */
1160 var10
= var_maintype
== var_other
;
1177 nit___nit__RapidTypeAnalysis___add_new(self
, var_maintype
, var_maintype
); /* Direct call rapid_type_analysis#RapidTypeAnalysis#add_new on <self:RapidTypeAnalysis>*/
1180 { /* Inline rapid_type_analysis#RapidTypeAnalysis#mainmodule (self) on <self:RapidTypeAnalysis> */
1181 var13
= self
->attrs
[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___mainmodule
].val
; /* _mainmodule on <self:RapidTypeAnalysis> */
1182 if (unlikely(var13
== NULL
)) {
1183 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule");
1184 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 49);
1188 RET_LABEL12
:(void)0;
1196 var17
= standard___standard__NativeString___to_s_with_length(var15
, var16
);
1201 { /* Inline model#MClassType#mclass (var_maintype) on <var_maintype:nullable MClassType(MClassType)> */
1202 var20
= var_maintype
->attrs
[COLOR_nit__model__MClassType___mclass
].val
; /* _mclass on <var_maintype:nullable MClassType(MClassType)> */
1203 if (unlikely(var20
== NULL
)) {
1204 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
1205 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 1058);
1209 RET_LABEL19
:(void)0;
1213 var21
= nit__model___MModule___try_get_primitive_method(var11
, var14
, var18
);
1215 var_initprop
= var21
;
1217 if (var_initprop
== NULL
) {
1218 var23
= 0; /* is null */
1220 var23
= 1; /* arg is null and recv is not */
1223 { /* Inline kernel#Object#!= (var_initprop,var22) on <var_initprop:nullable MMethod> */
1224 var_other26
= var22
;
1226 var27
= ((short int (*)(val
* self
, val
* p0
))(var_initprop
->class->vft
[COLOR_standard__kernel__Object___61d_61d
]))(var_initprop
, var_other26
) /* == on <var_initprop:nullable MMethod(MMethod)>*/;
1231 RET_LABEL25
:(void)0;
1237 nit___nit__RapidTypeAnalysis___add_send(self
, var_maintype
, var_initprop
); /* Direct call rapid_type_analysis#RapidTypeAnalysis#add_send on <self:RapidTypeAnalysis>*/
1242 { /* Inline rapid_type_analysis#RapidTypeAnalysis#mainmodule (self) on <self:RapidTypeAnalysis> */
1243 var32
= self
->attrs
[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___mainmodule
].val
; /* _mainmodule on <self:RapidTypeAnalysis> */
1244 if (unlikely(var32
== NULL
)) {
1245 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule");
1246 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 49);
1250 RET_LABEL31
:(void)0;
1258 var37
= standard___standard__NativeString___to_s_with_length(var35
, var36
);
1263 { /* Inline model#MClassType#mclass (var_maintype) on <var_maintype:nullable MClassType(MClassType)> */
1264 var40
= var_maintype
->attrs
[COLOR_nit__model__MClassType___mclass
].val
; /* _mclass on <var_maintype:nullable MClassType(MClassType)> */
1265 if (unlikely(var40
== NULL
)) {
1266 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
1267 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 1058);
1271 RET_LABEL39
:(void)0;
1275 var41
= nit__model___MModule___try_get_primitive_method(var30
, var34
, var38
);
1281 { /* Inline rapid_type_analysis#RapidTypeAnalysis#mainmodule (self) on <self:RapidTypeAnalysis> */
1282 var44
= self
->attrs
[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___mainmodule
].val
; /* _mainmodule on <self:RapidTypeAnalysis> */
1283 if (unlikely(var44
== NULL
)) {
1284 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule");
1285 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 49);
1289 RET_LABEL43
:(void)0;
1297 var49
= standard___standard__NativeString___to_s_with_length(var47
, var48
);
1302 { /* Inline model#MClassType#mclass (var_maintype) on <var_maintype:nullable MClassType(MClassType)> */
1303 var52
= var_maintype
->attrs
[COLOR_nit__model__MClassType___mclass
].val
; /* _mclass on <var_maintype:nullable MClassType(MClassType)> */
1304 if (unlikely(var52
== NULL
)) {
1305 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
1306 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 1058);
1310 RET_LABEL51
:(void)0;
1314 var53
= nit__model___MModule___try_get_primitive_method(var42
, var46
, var50
);
1318 var_mainprop
= var29
;
1320 if (var_mainprop
== NULL
) {
1321 var55
= 0; /* is null */
1323 var55
= 1; /* arg is null and recv is not */
1326 { /* Inline kernel#Object#!= (var_mainprop,var54) on <var_mainprop:nullable MMethod> */
1327 var_other26
= var54
;
1329 var58
= ((short int (*)(val
* self
, val
* p0
))(var_mainprop
->class->vft
[COLOR_standard__kernel__Object___61d_61d
]))(var_mainprop
, var_other26
) /* == on <var_mainprop:nullable MMethod(MMethod)>*/;
1334 RET_LABEL57
:(void)0;
1340 nit___nit__RapidTypeAnalysis___add_send(self
, var_maintype
, var_mainprop
); /* Direct call rapid_type_analysis#RapidTypeAnalysis#add_send on <self:RapidTypeAnalysis>*/
1345 { /* Inline rapid_type_analysis#RapidTypeAnalysis#mainmodule (self) on <self:RapidTypeAnalysis> */
1346 var62
= self
->attrs
[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___mainmodule
].val
; /* _mainmodule on <self:RapidTypeAnalysis> */
1347 if (unlikely(var62
== NULL
)) {
1348 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule");
1349 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 49);
1353 RET_LABEL61
:(void)0;
1357 var63
= nit__model___MModule___finalizable_type(var60
);
1359 var_finalizable_type
= var63
;
1361 if (var_finalizable_type
== NULL
) {
1362 var65
= 0; /* is null */
1364 var65
= 1; /* arg is null and recv is not */
1367 { /* Inline kernel#Object#!= (var_finalizable_type,var64) on <var_finalizable_type:nullable MClassType> */
1368 var_other26
= var64
;
1370 var68
= ((short int (*)(val
* self
, val
* p0
))(var_finalizable_type
->class->vft
[COLOR_standard__kernel__Object___61d_61d
]))(var_finalizable_type
, var_other26
) /* == on <var_finalizable_type:nullable MClassType(MClassType)>*/;
1375 RET_LABEL67
:(void)0;
1381 { /* Inline rapid_type_analysis#RapidTypeAnalysis#mainmodule (self) on <self:RapidTypeAnalysis> */
1382 var72
= self
->attrs
[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___mainmodule
].val
; /* _mainmodule on <self:RapidTypeAnalysis> */
1383 if (unlikely(var72
== NULL
)) {
1384 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule");
1385 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 49);
1389 RET_LABEL71
:(void)0;
1397 var77
= standard___standard__NativeString___to_s_with_length(var75
, var76
);
1402 { /* Inline model#MClassType#mclass (var_finalizable_type) on <var_finalizable_type:nullable MClassType(MClassType)> */
1403 var80
= var_finalizable_type
->attrs
[COLOR_nit__model__MClassType___mclass
].val
; /* _mclass on <var_finalizable_type:nullable MClassType(MClassType)> */
1404 if (unlikely(var80
== NULL
)) {
1405 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
1406 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 1058);
1410 RET_LABEL79
:(void)0;
1414 var81
= nit__model___MModule___try_get_primitive_method(var70
, var74
, var78
);
1416 var_finalize_meth
= var81
;
1418 if (var_finalize_meth
== NULL
) {
1419 var83
= 0; /* is null */
1421 var83
= 1; /* arg is null and recv is not */
1424 { /* Inline kernel#Object#!= (var_finalize_meth,var82) on <var_finalize_meth:nullable MMethod> */
1425 var_other26
= var82
;
1427 var86
= ((short int (*)(val
* self
, val
* p0
))(var_finalize_meth
->class->vft
[COLOR_standard__kernel__Object___61d_61d
]))(var_finalize_meth
, var_other26
) /* == on <var_finalize_meth:nullable MMethod(MMethod)>*/;
1432 RET_LABEL85
:(void)0;
1438 nit___nit__RapidTypeAnalysis___add_send(self
, var_finalizable_type
, var_finalize_meth
); /* Direct call rapid_type_analysis#RapidTypeAnalysis#add_send on <self:RapidTypeAnalysis>*/
1449 var92
= standard___standard__NativeString___to_s_with_length(var90
, var91
);
1454 nit___nit__RapidTypeAnalysis___force_alive(self
, var89
); /* Direct call rapid_type_analysis#RapidTypeAnalysis#force_alive on <self:RapidTypeAnalysis>*/
1461 var97
= standard___standard__NativeString___to_s_with_length(var95
, var96
);
1466 nit___nit__RapidTypeAnalysis___force_alive(self
, var94
); /* Direct call rapid_type_analysis#RapidTypeAnalysis#force_alive on <self:RapidTypeAnalysis>*/
1473 var102
= standard___standard__NativeString___to_s_with_length(var100
, var101
);
1478 nit___nit__RapidTypeAnalysis___force_alive(self
, var99
); /* Direct call rapid_type_analysis#RapidTypeAnalysis#force_alive on <self:RapidTypeAnalysis>*/
1481 var104
= varonce103
;
1485 var107
= standard___standard__NativeString___to_s_with_length(var105
, var106
);
1487 varonce103
= var104
;
1490 nit___nit__RapidTypeAnalysis___force_alive(self
, var104
); /* Direct call rapid_type_analysis#RapidTypeAnalysis#force_alive on <self:RapidTypeAnalysis>*/
1493 var109
= varonce108
;
1497 var112
= standard___standard__NativeString___to_s_with_length(var110
, var111
);
1499 varonce108
= var109
;
1502 nit___nit__RapidTypeAnalysis___force_alive(self
, var109
); /* Direct call rapid_type_analysis#RapidTypeAnalysis#force_alive on <self:RapidTypeAnalysis>*/
1506 { /* Inline rapid_type_analysis#RapidTypeAnalysis#todo (self) on <self:RapidTypeAnalysis> */
1507 var115
= self
->attrs
[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___todo
].val
; /* _todo on <self:RapidTypeAnalysis> */
1508 if (unlikely(var115
== NULL
)) {
1509 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _todo");
1510 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 172);
1514 RET_LABEL114
:(void)0;
1518 var116
= standard___standard__List___standard__abstract_collection__Collection__is_empty(var113
);
1523 { /* Inline rapid_type_analysis#RapidTypeAnalysis#todo (self) on <self:RapidTypeAnalysis> */
1524 var120
= self
->attrs
[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___todo
].val
; /* _todo on <self:RapidTypeAnalysis> */
1525 if (unlikely(var120
== NULL
)) {
1526 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _todo");
1527 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 172);
1531 RET_LABEL119
:(void)0;
1535 var121
= standard___standard__List___standard__abstract_collection__Sequence__shift(var118
);
1537 var_mmethoddef
= var121
;
1539 { /* Inline model#MPropDef#mproperty (var_mmethoddef) on <var_mmethoddef:MMethodDef> */
1540 var124
= var_mmethoddef
->attrs
[COLOR_nit__model__MPropDef___mproperty
].val
; /* _mproperty on <var_mmethoddef:MMethodDef> */
1541 if (unlikely(var124
== NULL
)) {
1542 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty");
1543 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 2013);
1547 RET_LABEL123
:(void)0;
1551 var125
= NEW_nit__RapidTypeVisitor(&type_nit__RapidTypeVisitor
);
1553 { /* Inline model#MPropDef#mclassdef (var_mmethoddef) on <var_mmethoddef:MMethodDef> */
1554 var128
= var_mmethoddef
->attrs
[COLOR_nit__model__MPropDef___mclassdef
].val
; /* _mclassdef on <var_mmethoddef:MMethodDef> */
1555 if (unlikely(var128
== NULL
)) {
1556 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdef");
1557 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 2010);
1561 RET_LABEL127
:(void)0;
1565 { /* Inline model#MClassDef#bound_mtype (var126) on <var126:MClassDef> */
1566 var131
= var126
->attrs
[COLOR_nit__model__MClassDef___bound_mtype
].val
; /* _bound_mtype on <var126:MClassDef> */
1567 if (unlikely(var131
== NULL
)) {
1568 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _bound_mtype");
1569 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 495);
1573 RET_LABEL130
:(void)0;
1577 ((void (*)(val
* self
, val
* p0
))(var125
->class->vft
[COLOR_nit__rapid_type_analysis__RapidTypeVisitor__analysis_61d
]))(var125
, self
) /* analysis= on <var125:RapidTypeVisitor>*/;
1580 ((void (*)(val
* self
, val
* p0
))(var125
->class->vft
[COLOR_nit__rapid_type_analysis__RapidTypeVisitor__receiver_61d
]))(var125
, var129
) /* receiver= on <var125:RapidTypeVisitor>*/;
1583 ((void (*)(val
* self
, val
* p0
))(var125
->class->vft
[COLOR_nit__rapid_type_analysis__RapidTypeVisitor__mpropdef_61d
]))(var125
, var_mmethoddef
) /* mpropdef= on <var125:RapidTypeVisitor>*/;
1586 ((void (*)(val
* self
))(var125
->class->vft
[COLOR_standard__kernel__Object__init
]))(var125
) /* init on <var125:RapidTypeVisitor>*/;
1590 { /* Inline model#MMethodDef#msignature (var_mmethoddef) on <var_mmethoddef:MMethodDef> */
1591 var134
= var_mmethoddef
->attrs
[COLOR_nit__model__MMethodDef___msignature
].val
; /* _msignature on <var_mmethoddef:MMethodDef> */
1593 RET_LABEL133
:(void)0;
1596 if (var132
== NULL
) {
1597 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1598 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 216);
1601 { /* Inline model#MSignature#vararg_rank (var132) on <var132:nullable MSignature> */
1602 if (unlikely(var132
== NULL
)) {
1603 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1604 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 1635);
1607 var137
= var132
->attrs
[COLOR_nit__model__MSignature___vararg_rank
].l
; /* _vararg_rank on <var132:nullable MSignature> */
1609 RET_LABEL136
:(void)0;
1612 var_vararg_rank
= var135
;
1615 { /* Inline kernel#Int#unary - (var138) on <var138:Int> */
1619 RET_LABEL140
:(void)0;
1623 { /* Inline kernel#Int#> (var_vararg_rank,var139) on <var_vararg_rank:Int> */
1624 /* Covariant cast for argument 0 (i) <var139:Int> isa OTHER */
1625 /* <var139:Int> isa OTHER */
1626 var144
= 1; /* easy <var139:Int> isa OTHER*/
1627 if (unlikely(!var144
)) {
1628 var_class_name
= type_standard__Int
.name
;
1629 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name
);
1630 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel
, 412);
1633 var145
= var_vararg_rank
> var139
;
1636 RET_LABEL143
:(void)0;
1641 { /* Inline rapid_type_analysis#RapidTypeAnalysis#modelbuilder (self) on <self:RapidTypeAnalysis> */
1642 var148
= self
->attrs
[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___modelbuilder
].val
; /* _modelbuilder on <self:RapidTypeAnalysis> */
1643 if (unlikely(var148
== NULL
)) {
1644 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
1645 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 46);
1649 RET_LABEL147
:(void)0;
1653 var149
= nit__modelize_property___ModelBuilder___mpropdef2node(var146
, var_mmethoddef
);
1657 { /* Inline model#MMethodDef#msignature (var_mmethoddef) on <var_mmethoddef:MMethodDef> */
1658 var152
= var_mmethoddef
->attrs
[COLOR_nit__model__MMethodDef___msignature
].val
; /* _msignature on <var_mmethoddef:MMethodDef> */
1660 RET_LABEL151
:(void)0;
1663 if (var150
== NULL
) {
1664 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1665 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 219);
1668 { /* Inline model#MSignature#mparameters (var150) on <var150:nullable MSignature> */
1669 if (unlikely(var150
== NULL
)) {
1670 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1671 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 1592);
1674 var155
= var150
->attrs
[COLOR_nit__model__MSignature___mparameters
].val
; /* _mparameters on <var150:nullable MSignature> */
1675 if (unlikely(var155
== NULL
)) {
1676 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mparameters");
1677 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 1592);
1681 RET_LABEL154
:(void)0;
1685 var156
= standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var153
, var_vararg_rank
);
1688 { /* Inline model#MParameter#mtype (var156) on <var156:nullable Object(MParameter)> */
1689 var159
= var156
->attrs
[COLOR_nit__model__MParameter___mtype
].val
; /* _mtype on <var156:nullable Object(MParameter)> */
1690 if (unlikely(var159
== NULL
)) {
1691 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
1692 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 1690);
1696 RET_LABEL158
:(void)0;
1699 var_elttype
= var157
;
1701 { /* Inline rapid_type_analysis#RapidTypeAnalysis#mainmodule (self) on <self:RapidTypeAnalysis> */
1702 var162
= self
->attrs
[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___mainmodule
].val
; /* _mainmodule on <self:RapidTypeAnalysis> */
1703 if (unlikely(var162
== NULL
)) {
1704 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule");
1705 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 49);
1709 RET_LABEL161
:(void)0;
1713 var164
= varonce163
;
1717 var167
= standard___standard__NativeString___to_s_with_length(var165
, var166
);
1719 varonce163
= var164
;
1722 var168
= nit__model___MModule___get_primitive_class(var160
, var164
);
1724 var169
= NEW_standard__Array(&type_standard__Array__nit__MType
);
1727 standard___standard__Array___with_capacity(var169
, var170
); /* Direct call array#Array#with_capacity on <var169:Array[MType]>*/
1731 standard___standard__AbstractArray___standard__abstract_collection__Sequence__push(var_
, var_elttype
); /* Direct call array#AbstractArray#push on <var_:Array[MType]>*/
1734 var171
= nit___nit__MClass___get_mtype(var168
, var_
);
1736 var_vararg
= var171
;
1738 nit___nit__RapidTypeVisitor___add_type(var_v
, var_vararg
); /* Direct call rapid_type_analysis#RapidTypeVisitor#add_type on <var_v:RapidTypeVisitor>*/
1741 { /* Inline rapid_type_analysis#RapidTypeAnalysis#mainmodule (self) on <self:RapidTypeAnalysis> */
1742 var174
= self
->attrs
[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___mainmodule
].val
; /* _mainmodule on <self:RapidTypeAnalysis> */
1743 if (unlikely(var174
== NULL
)) {
1744 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule");
1745 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 49);
1749 RET_LABEL173
:(void)0;
1753 var176
= varonce175
;
1755 var177
= "NativeArray";
1757 var179
= standard___standard__NativeString___to_s_with_length(var177
, var178
);
1759 varonce175
= var176
;
1762 var180
= nit__model___MModule___get_primitive_class(var172
, var176
);
1764 var181
= NEW_standard__Array(&type_standard__Array__nit__MType
);
1767 standard___standard__Array___with_capacity(var181
, var182
); /* Direct call array#Array#with_capacity on <var181:Array[MType]>*/
1771 standard___standard__AbstractArray___standard__abstract_collection__Sequence__push(var_183
, var_elttype
); /* Direct call array#AbstractArray#push on <var_183:Array[MType]>*/
1774 var184
= nit___nit__MClass___get_mtype(var180
, var_183
);
1776 var_native
= var184
;
1778 nit___nit__RapidTypeVisitor___add_type(var_v
, var_native
); /* Direct call rapid_type_analysis#RapidTypeVisitor#add_type on <var_v:RapidTypeVisitor>*/
1781 { /* Inline rapid_type_analysis#RapidTypeAnalysis#modelbuilder (self) on <self:RapidTypeAnalysis> */
1782 var187
= self
->attrs
[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___modelbuilder
].val
; /* _modelbuilder on <self:RapidTypeAnalysis> */
1783 if (unlikely(var187
== NULL
)) {
1784 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
1785 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 46);
1789 RET_LABEL186
:(void)0;
1793 var189
= varonce188
;
1795 var190
= "with_native";
1797 var192
= standard___standard__NativeString___to_s_with_length(var190
, var191
);
1799 varonce188
= var189
;
1802 { /* Inline model#MClassType#mclass (var_vararg) on <var_vararg:MClassType> */
1803 var195
= var_vararg
->attrs
[COLOR_nit__model__MClassType___mclass
].val
; /* _mclass on <var_vararg:MClassType> */
1804 if (unlikely(var195
== NULL
)) {
1805 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
1806 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 1058);
1810 RET_LABEL194
:(void)0;
1814 { /* Inline rapid_type_analysis#RapidTypeAnalysis#mainmodule (self) on <self:RapidTypeAnalysis> */
1815 var198
= self
->attrs
[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___mainmodule
].val
; /* _mainmodule on <self:RapidTypeAnalysis> */
1816 if (unlikely(var198
== NULL
)) {
1817 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule");
1818 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 49);
1822 RET_LABEL197
:(void)0;
1826 var199
= nit___nit__ModelBuilder___force_get_primitive_method(var185
, var_node
, var189
, var193
, var196
);
1829 nit___nit__RapidTypeVisitor___add_monomorphic_send(var_v
, var_vararg
, var199
); /* Direct call rapid_type_analysis#RapidTypeVisitor#add_monomorphic_send on <var_v:RapidTypeVisitor>*/
1834 { /* Inline model#MMethodDef#msignature (var_mmethoddef) on <var_mmethoddef:MMethodDef> */
1835 var202
= var_mmethoddef
->attrs
[COLOR_nit__model__MMethodDef___msignature
].val
; /* _msignature on <var_mmethoddef:MMethodDef> */
1837 RET_LABEL201
:(void)0;
1840 if (unlikely(var200
== NULL
)) {
1841 PRINT_ERROR("Runtime error: %s", "Cast failed");
1842 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 229);
1847 { /* Inline model#MProperty#intro (var_mmeth) on <var_mmeth:MMethod> */
1848 var205
= var_mmeth
->attrs
[COLOR_nit__model__MProperty___intro
].val
; /* _intro on <var_mmeth:MMethod> */
1849 if (unlikely(var205
== NULL
)) {
1850 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro");
1851 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 1773);
1855 RET_LABEL204
:(void)0;
1859 { /* Inline model#MMethodDef#msignature (var203) on <var203:MPropDef(MMethodDef)> */
1860 var208
= var203
->attrs
[COLOR_nit__model__MMethodDef___msignature
].val
; /* _msignature on <var203:MPropDef(MMethodDef)> */
1862 RET_LABEL207
:(void)0;
1865 if (unlikely(var206
== NULL
)) {
1866 PRINT_ERROR("Runtime error: %s", "Cast failed");
1867 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 230);
1874 var210
= nit___nit__MSignature___arity(var_sig
);
1879 { /* Inline kernel#Int#< (var_i,var_211) on <var_i:Int> */
1880 /* Covariant cast for argument 0 (i) <var_211:Int> isa OTHER */
1881 /* <var_211:Int> isa OTHER */
1882 var214
= 1; /* easy <var_211:Int> isa OTHER*/
1883 if (unlikely(!var214
)) {
1884 var_class_name217
= type_standard__Int
.name
;
1885 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name217
);
1886 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel
, 410);
1889 var218
= var_i
< var_211
;
1892 RET_LABEL213
:(void)0;
1897 { /* Inline model#MSignature#mparameters (var_osig) on <var_osig:MSignature> */
1898 var221
= var_osig
->attrs
[COLOR_nit__model__MSignature___mparameters
].val
; /* _mparameters on <var_osig:MSignature> */
1899 if (unlikely(var221
== NULL
)) {
1900 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mparameters");
1901 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 1592);
1905 RET_LABEL220
:(void)0;
1909 var222
= standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var219
, var_i
);
1912 { /* Inline model#MParameter#mtype (var222) on <var222:nullable Object(MParameter)> */
1913 var225
= var222
->attrs
[COLOR_nit__model__MParameter___mtype
].val
; /* _mtype on <var222:nullable Object(MParameter)> */
1914 if (unlikely(var225
== NULL
)) {
1915 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
1916 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 1690);
1920 RET_LABEL224
:(void)0;
1923 var_origtype
= var223
;
1925 var226
= ((short int (*)(val
* self
))(var_origtype
->class->vft
[COLOR_nit__model__MType__need_anchor
]))(var_origtype
) /* need_anchor on <var_origtype:MType>*/;
1933 { /* Inline model#MSignature#mparameters (var_sig) on <var_sig:MSignature> */
1934 var230
= var_sig
->attrs
[COLOR_nit__model__MSignature___mparameters
].val
; /* _mparameters on <var_sig:MSignature> */
1935 if (unlikely(var230
== NULL
)) {
1936 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mparameters");
1937 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 1592);
1941 RET_LABEL229
:(void)0;
1945 var231
= standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var228
, var_i
);
1948 { /* Inline model#MParameter#mtype (var231) on <var231:nullable Object(MParameter)> */
1949 var234
= var231
->attrs
[COLOR_nit__model__MParameter___mtype
].val
; /* _mtype on <var231:nullable Object(MParameter)> */
1950 if (unlikely(var234
== NULL
)) {
1951 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
1952 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 1690);
1956 RET_LABEL233
:(void)0;
1959 var_paramtype
= var232
;
1961 nit___nit__RapidTypeAnalysis___add_cast(self
, var_paramtype
); /* Direct call rapid_type_analysis#RapidTypeAnalysis#add_cast on <self:RapidTypeAnalysis>*/
1963 BREAK_label
: (void)0;
1966 var236
= standard___standard__Int___Discrete__successor(var_i
, var235
);
1970 goto BREAK_label237
;
1973 BREAK_label237
: (void)0;
1975 { /* Inline rapid_type_analysis#RapidTypeAnalysis#modelbuilder (self) on <self:RapidTypeAnalysis> */
1976 var240
= self
->attrs
[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___modelbuilder
].val
; /* _modelbuilder on <self:RapidTypeAnalysis> */
1977 if (unlikely(var240
== NULL
)) {
1978 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
1979 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 46);
1983 RET_LABEL239
:(void)0;
1987 var241
= nit__modelize_property___ModelBuilder___mpropdef2node(var238
, var_mmethoddef
);
1989 var_npropdef
= var241
;
1990 /* <var_npropdef:nullable ANode> isa AClassdef */
1991 cltype243
= type_nit__AClassdef
.color
;
1992 idtype244
= type_nit__AClassdef
.id
;
1993 if(var_npropdef
== NULL
) {
1996 if(cltype243
>= var_npropdef
->type
->table_size
) {
1999 var242
= var_npropdef
->type
->type_table
[cltype243
] == idtype244
;
2004 { /* Inline modelize_property#AClassdef#mfree_init (var_npropdef) on <var_npropdef:nullable ANode(AClassdef)> */
2005 var247
= var_npropdef
->attrs
[COLOR_nit__modelize_property__AClassdef___mfree_init
].val
; /* _mfree_init on <var_npropdef:nullable ANode(AClassdef)> */
2007 RET_LABEL246
:(void)0;
2011 { /* Inline kernel#Object#== (var_mmethoddef,var245) on <var_mmethoddef:MMethodDef> */
2014 { /* Inline kernel#Object#is_same_instance (var_mmethoddef,var_other) on <var_mmethoddef:MMethodDef> */
2015 var252
= var_mmethoddef
== var_other
;
2018 RET_LABEL251
:(void)0;
2023 RET_LABEL249
:(void)0;
2026 if (unlikely(!var248
)) {
2027 PRINT_ERROR("Runtime error: %s", "Assert failed");
2028 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 242);
2032 { /* Inline model#MPropDef#mproperty (var_mmethoddef) on <var_mmethoddef:MMethodDef> */
2033 var256
= var_mmethoddef
->attrs
[COLOR_nit__model__MPropDef___mproperty
].val
; /* _mproperty on <var_mmethoddef:MMethodDef> */
2034 if (unlikely(var256
== NULL
)) {
2035 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty");
2036 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 2013);
2040 RET_LABEL255
:(void)0;
2044 { /* Inline model#MMethod#is_root_init (var254) on <var254:MProperty(MMethod)> */
2045 var259
= var254
->attrs
[COLOR_nit__model__MMethod___is_root_init
].s
; /* _is_root_init on <var254:MProperty(MMethod)> */
2047 RET_LABEL258
:(void)0;
2053 var261
= nit___nit__MPropDef___is_intro(var_mmethoddef
);
2062 { /* Inline rapid_type_analysis#RapidTypeVisitor#receiver (var_v) on <var_v:RapidTypeVisitor> */
2063 var265
= var_v
->attrs
[COLOR_nit__rapid_type_analysis__RapidTypeVisitor___receiver
].val
; /* _receiver on <var_v:RapidTypeVisitor> */
2064 if (unlikely(var265
== NULL
)) {
2065 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _receiver");
2066 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 436);
2070 RET_LABEL264
:(void)0;
2074 nit___nit__RapidTypeAnalysis___add_super_send(self
, var263
, var_mmethoddef
); /* Direct call rapid_type_analysis#RapidTypeAnalysis#add_super_send on <self:RapidTypeAnalysis>*/
2078 goto BREAK_label266
;
2081 { /* Inline model#MMethodDef#constant_value (var_mmethoddef) on <var_mmethoddef:MMethodDef> */
2082 var269
= var_mmethoddef
->attrs
[COLOR_nit__model__MMethodDef___constant_value
].val
; /* _constant_value on <var_mmethoddef:MMethodDef> */
2084 RET_LABEL268
:(void)0;
2088 if (var267
== NULL
) {
2089 var271
= 0; /* is null */
2091 var271
= 1; /* arg is null and recv is not */
2094 var272
= ((short int (*)(val
* self
, val
* p0
))(var267
->class->vft
[COLOR_standard__kernel__Object___33d_61d
]))(var267
, var270
) /* != on <var267:nullable Object>*/;
2099 { /* Inline model#MMethodDef#msignature (var_mmethoddef) on <var_mmethoddef:MMethodDef> */
2100 var275
= var_mmethoddef
->attrs
[COLOR_nit__model__MMethodDef___msignature
].val
; /* _msignature on <var_mmethoddef:MMethodDef> */
2102 RET_LABEL274
:(void)0;
2105 if (var273
== NULL
) {
2106 PRINT_ERROR("Runtime error: %s", "Receiver is null");
2107 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 250);
2110 { /* Inline model#MSignature#return_mtype (var273) on <var273:nullable MSignature> */
2111 if (unlikely(var273
== NULL
)) {
2112 PRINT_ERROR("Runtime error: %s", "Receiver is null");
2113 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 1595);
2116 var278
= var273
->attrs
[COLOR_nit__model__MSignature___return_mtype
].val
; /* _return_mtype on <var273:nullable MSignature> */
2118 RET_LABEL277
:(void)0;
2121 /* <var276:nullable MType> isa MClassType */
2122 cltype280
= type_nit__MClassType
.color
;
2123 idtype281
= type_nit__MClassType
.id
;
2124 if(var276
== NULL
) {
2127 if(cltype280
>= var276
->type
->table_size
) {
2130 var279
= var276
->type
->type_table
[cltype280
] == idtype281
;
2133 if (unlikely(!var279
)) {
2134 var_class_name282
= var276
== NULL ?
"null" : var276
->type
->name
;
2135 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "MClassType", var_class_name282
);
2136 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 250);
2140 nit___nit__RapidTypeVisitor___add_type(var_v
, var276
); /* Direct call rapid_type_analysis#RapidTypeVisitor#add_type on <var_v:RapidTypeVisitor>*/
2142 goto BREAK_label266
;
2145 if (var_npropdef
== NULL
) {
2146 var284
= 1; /* is null */
2148 var284
= 0; /* arg is null but recv is not */
2151 { /* Inline kernel#Object#== (var_npropdef,var283) on <var_npropdef:nullable ANode> */
2154 { /* Inline kernel#Object#is_same_instance (var_npropdef,var_other) on <var_npropdef:nullable ANode(ANode)> */
2155 var289
= var_npropdef
== var_other
;
2158 RET_LABEL288
:(void)0;
2163 RET_LABEL286
:(void)0;
2168 PRINT_ERROR("Runtime error: %s", "Aborted");
2169 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 253);
2175 /* <var_npropdef:nullable ANode(ANode)> isa AMethPropdef */
2176 cltype291
= type_nit__AMethPropdef
.color
;
2177 idtype292
= type_nit__AMethPropdef
.id
;
2178 if(cltype291
>= var_npropdef
->type
->table_size
) {
2181 var290
= var_npropdef
->type
->type_table
[cltype291
] == idtype292
;
2185 { /* Inline auto_super_init#AMethPropdef#auto_super_inits (var_npropdef) on <var_npropdef:nullable ANode(AMethPropdef)> */
2186 var295
= var_npropdef
->attrs
[COLOR_nit__auto_super_init__AMethPropdef___auto_super_inits
].val
; /* _auto_super_inits on <var_npropdef:nullable ANode(AMethPropdef)> */
2188 RET_LABEL294
:(void)0;
2191 var_auto_super_inits
= var293
;
2193 if (var_auto_super_inits
== NULL
) {
2194 var297
= 0; /* is null */
2196 var297
= 1; /* arg is null and recv is not */
2199 { /* Inline kernel#Object#!= (var_auto_super_inits,var296) on <var_auto_super_inits:nullable Array[CallSite]> */
2200 var_other26
= var296
;
2202 var300
= ((short int (*)(val
* self
, val
* p0
))(var_auto_super_inits
->class->vft
[COLOR_standard__kernel__Object___61d_61d
]))(var_auto_super_inits
, var_other26
) /* == on <var_auto_super_inits:nullable Array[CallSite](Array[CallSite])>*/;
2207 RET_LABEL299
:(void)0;
2212 var_302
= var_auto_super_inits
;
2214 var303
= standard___standard__AbstractArrayRead___standard__abstract_collection__Collection__iterator(var_302
);
2219 var305
= standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__is_ok(var_304
);
2223 var306
= standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__item(var_304
);
2225 var_auto_super_init
= var306
;
2227 nit___nit__RapidTypeVisitor___add_callsite(var_v
, var_auto_super_init
); /* Direct call rapid_type_analysis#RapidTypeVisitor#add_callsite on <var_v:RapidTypeVisitor>*/
2230 standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__next(var_304
); /* Direct call array#ArrayIterator#next on <var_304:ArrayIterator[CallSite]>*/
2233 goto BREAK_label307
;
2236 BREAK_label307
: (void)0;
2238 { /* Inline abstract_collection#Iterator#finish (var_304) on <var_304:ArrayIterator[CallSite]> */
2239 RET_LABEL308
:(void)0;
2245 { /* Inline auto_super_init#AMethPropdef#auto_super_call (var_npropdef) on <var_npropdef:nullable ANode(AMethPropdef)> */
2246 var311
= var_npropdef
->attrs
[COLOR_nit__auto_super_init__AMethPropdef___auto_super_call
].s
; /* _auto_super_call on <var_npropdef:nullable ANode(AMethPropdef)> */
2248 RET_LABEL310
:(void)0;
2253 { /* Inline rapid_type_analysis#RapidTypeVisitor#receiver (var_v) on <var_v:RapidTypeVisitor> */
2254 var314
= var_v
->attrs
[COLOR_nit__rapid_type_analysis__RapidTypeVisitor___receiver
].val
; /* _receiver on <var_v:RapidTypeVisitor> */
2255 if (unlikely(var314
== NULL
)) {
2256 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _receiver");
2257 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 436);
2261 RET_LABEL313
:(void)0;
2265 nit___nit__RapidTypeAnalysis___add_super_send(self
, var312
, var_mmethoddef
); /* Direct call rapid_type_analysis#RapidTypeAnalysis#add_super_send on <self:RapidTypeAnalysis>*/
2272 { /* Inline model#MMethodDef#is_intern (var_mmethoddef) on <var_mmethoddef:MMethodDef> */
2273 var318
= var_mmethoddef
->attrs
[COLOR_nit__model__MMethodDef___is_intern
].s
; /* _is_intern on <var_mmethoddef:MMethodDef> */
2275 RET_LABEL317
:(void)0;
2283 { /* Inline model#MMethodDef#is_extern (var_mmethoddef) on <var_mmethoddef:MMethodDef> */
2284 var322
= var_mmethoddef
->attrs
[COLOR_nit__model__MMethodDef___is_extern
].s
; /* _is_extern on <var_mmethoddef:MMethodDef> */
2286 RET_LABEL321
:(void)0;
2293 { /* Inline model#MMethodDef#msignature (var_mmethoddef) on <var_mmethoddef:MMethodDef> */
2294 var325
= var_mmethoddef
->attrs
[COLOR_nit__model__MMethodDef___msignature
].val
; /* _msignature on <var_mmethoddef:MMethodDef> */
2296 RET_LABEL324
:(void)0;
2299 if (var323
== NULL
) {
2300 PRINT_ERROR("Runtime error: %s", "Receiver is null");
2301 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 270);
2304 { /* Inline model#MSignature#return_mtype (var323) on <var323:nullable MSignature> */
2305 if (unlikely(var323
== NULL
)) {
2306 PRINT_ERROR("Runtime error: %s", "Receiver is null");
2307 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 1595);
2310 var328
= var323
->attrs
[COLOR_nit__model__MSignature___return_mtype
].val
; /* _return_mtype on <var323:nullable MSignature> */
2312 RET_LABEL327
:(void)0;
2317 if (var_ret
== NULL
) {
2318 var333
= 0; /* is null */
2320 var333
= 1; /* arg is null and recv is not */
2323 { /* Inline kernel#Object#!= (var_ret,var332) on <var_ret:nullable MType> */
2324 var_other26
= var332
;
2326 var336
= ((short int (*)(val
* self
, val
* p0
))(var_ret
->class->vft
[COLOR_standard__kernel__Object___61d_61d
]))(var_ret
, var_other26
) /* == on <var_ret:nullable MType(MType)>*/;
2331 RET_LABEL335
:(void)0;
2337 /* <var_ret:nullable MType(MType)> isa MClassType */
2338 cltype340
= type_nit__MClassType
.color
;
2339 idtype341
= type_nit__MClassType
.id
;
2340 if(cltype340
>= var_ret
->type
->table_size
) {
2343 var339
= var_ret
->type
->type_table
[cltype340
] == idtype341
;
2352 { /* Inline model#MClassType#mclass (var_ret) on <var_ret:nullable MType(MClassType)> */
2353 var345
= var_ret
->attrs
[COLOR_nit__model__MClassType___mclass
].val
; /* _mclass on <var_ret:nullable MType(MClassType)> */
2354 if (unlikely(var345
== NULL
)) {
2355 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
2356 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 1058);
2360 RET_LABEL344
:(void)0;
2364 { /* Inline model#MClass#kind (var343) on <var343:MClass> */
2365 var348
= var343
->attrs
[COLOR_nit__model__MClass___kind
].val
; /* _kind on <var343:MClass> */
2366 if (unlikely(var348
== NULL
)) {
2367 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _kind");
2368 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 399);
2372 RET_LABEL347
:(void)0;
2376 var349
= nit__model___standard__Object___abstract_kind(self
);
2379 { /* Inline kernel#Object#!= (var346,var349) on <var346:MClassKind> */
2380 var_other26
= var349
;
2382 var352
= ((short int (*)(val
* self
, val
* p0
))(var346
->class->vft
[COLOR_standard__kernel__Object___61d_61d
]))(var346
, var_other26
) /* == on <var346:MClassKind>*/;
2387 RET_LABEL351
:(void)0;
2397 { /* Inline model#MClassType#mclass (var_ret) on <var_ret:nullable MType(MClassType)> */
2398 var357
= var_ret
->attrs
[COLOR_nit__model__MClassType___mclass
].val
; /* _mclass on <var_ret:nullable MType(MClassType)> */
2399 if (unlikely(var357
== NULL
)) {
2400 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
2401 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 1058);
2405 RET_LABEL356
:(void)0;
2409 { /* Inline model#MClass#kind (var355) on <var355:MClass> */
2410 var360
= var355
->attrs
[COLOR_nit__model__MClass___kind
].val
; /* _kind on <var355:MClass> */
2411 if (unlikely(var360
== NULL
)) {
2412 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _kind");
2413 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 399);
2417 RET_LABEL359
:(void)0;
2421 var361
= nit__model___standard__Object___interface_kind(self
);
2424 { /* Inline kernel#Object#!= (var358,var361) on <var358:MClassKind> */
2425 var_other26
= var361
;
2427 var364
= ((short int (*)(val
* self
, val
* p0
))(var358
->class->vft
[COLOR_standard__kernel__Object___61d_61d
]))(var358
, var_other26
) /* == on <var358:MClassKind>*/;
2432 RET_LABEL363
:(void)0;
2441 nit___nit__RapidTypeVisitor___add_type(var_v
, var_ret
); /* Direct call rapid_type_analysis#RapidTypeVisitor#add_type on <var_v:RapidTypeVisitor>*/
2448 nit___nit__Visitor___enter_visit(var_v
, var_npropdef
); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:RapidTypeVisitor>*/
2451 goto BREAK_label366
;
2453 BREAK_label266
: (void)0;
2455 BREAK_label366
: (void)0;
2456 var367
= NEW_standard__List(&type_standard__List__nit__MClassType
);
2458 { /* Inline list#List#init (var367) on <var367:List[MClassType]> */
2459 RET_LABEL368
:(void)0;
2462 var_todo_types
= var367
;
2464 { /* Inline rapid_type_analysis#RapidTypeAnalysis#live_types (self) on <self:RapidTypeAnalysis> */
2465 var371
= self
->attrs
[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___live_types
].val
; /* _live_types on <self:RapidTypeAnalysis> */
2466 if (unlikely(var371
== NULL
)) {
2467 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_types");
2468 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 53);
2472 RET_LABEL370
:(void)0;
2476 standard___standard__SimpleCollection___add_all(var_todo_types
, var369
); /* Direct call abstract_collection#SimpleCollection#add_all on <var_todo_types:List[MClassType]>*/
2480 var372
= standard___standard__List___standard__abstract_collection__Collection__is_empty(var_todo_types
);
2485 var374
= standard___standard__List___standard__abstract_collection__Sequence__shift(var_todo_types
);
2489 { /* Inline rapid_type_analysis#RapidTypeAnalysis#live_open_types (self) on <self:RapidTypeAnalysis> */
2490 var377
= self
->attrs
[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___live_open_types
].val
; /* _live_open_types on <self:RapidTypeAnalysis> */
2491 if (unlikely(var377
== NULL
)) {
2492 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_open_types");
2493 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 58);
2497 RET_LABEL376
:(void)0;
2502 var379
= standard___standard__HashSet___standard__abstract_collection__Collection__iterator(var_378
);
2507 var381
= ((short int (*)(val
* self
))(var_380
->class->vft
[COLOR_standard__abstract_collection__Iterator__is_ok
]))(var_380
) /* is_ok on <var_380:Iterator[MClassType]>*/;
2511 var382
= ((val
* (*)(val
* self
))(var_380
->class->vft
[COLOR_standard__abstract_collection__Iterator__item
]))(var_380
) /* item on <var_380:Iterator[MClassType]>*/;
2515 { /* Inline rapid_type_analysis#RapidTypeAnalysis#mainmodule (self) on <self:RapidTypeAnalysis> */
2516 var385
= self
->attrs
[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___mainmodule
].val
; /* _mainmodule on <self:RapidTypeAnalysis> */
2517 if (unlikely(var385
== NULL
)) {
2518 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule");
2519 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 49);
2523 RET_LABEL384
:(void)0;
2527 var386
= ((short int (*)(val
* self
, val
* p0
, val
* p1
, val
* p2
))(var_ot
->class->vft
[COLOR_nit__model__MType__can_resolve_for
]))(var_ot
, var_t
, var_t
, var383
) /* can_resolve_for on <var_ot:MClassType>*/;
2531 goto BREAK_label388
;
2535 { /* Inline rapid_type_analysis#RapidTypeAnalysis#mainmodule (self) on <self:RapidTypeAnalysis> */
2536 var391
= self
->attrs
[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___mainmodule
].val
; /* _mainmodule on <self:RapidTypeAnalysis> */
2537 if (unlikely(var391
== NULL
)) {
2538 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule");
2539 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 49);
2543 RET_LABEL390
:(void)0;
2547 var392
= nit___nit__MClassType___MType__anchor_to(var_ot
, var389
, var_t
);
2551 { /* Inline rapid_type_analysis#RapidTypeAnalysis#live_types (self) on <self:RapidTypeAnalysis> */
2552 var395
= self
->attrs
[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___live_types
].val
; /* _live_types on <self:RapidTypeAnalysis> */
2553 if (unlikely(var395
== NULL
)) {
2554 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_types");
2555 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 53);
2559 RET_LABEL394
:(void)0;
2563 var396
= standard___standard__HashSet___standard__abstract_collection__Collection__has(var393
, var_rt
);
2566 goto BREAK_label388
;
2570 { /* Inline rapid_type_analysis#RapidTypeAnalysis#live_types (self) on <self:RapidTypeAnalysis> */
2571 var399
= self
->attrs
[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___live_types
].val
; /* _live_types on <self:RapidTypeAnalysis> */
2572 if (unlikely(var399
== NULL
)) {
2573 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_types");
2574 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 53);
2578 RET_LABEL398
:(void)0;
2582 standard___standard__HashSet___standard__abstract_collection__SimpleCollection__add(var397
, var_rt
); /* Direct call hash_collection#HashSet#add on <var397:HashSet[MClassType]>*/
2585 standard___standard__Sequence___SimpleCollection__add(var_todo_types
, var_rt
); /* Direct call abstract_collection#Sequence#add on <var_todo_types:List[MClassType]>*/
2588 nit___nit__RapidTypeAnalysis___check_depth(self
, var_rt
); /* Direct call rapid_type_analysis#RapidTypeAnalysis#check_depth on <self:RapidTypeAnalysis>*/
2590 BREAK_label388
: (void)0;
2592 ((void (*)(val
* self
))(var_380
->class->vft
[COLOR_standard__abstract_collection__Iterator__next
]))(var_380
) /* next on <var_380:Iterator[MClassType]>*/;
2595 goto BREAK_label400
;
2598 BREAK_label400
: (void)0;
2600 { /* Inline abstract_collection#Iterator#finish (var_380) on <var_380:Iterator[MClassType]> */
2601 RET_LABEL401
:(void)0;
2605 goto BREAK_label402
;
2608 BREAK_label402
: (void)0;
2610 { /* Inline rapid_type_analysis#RapidTypeAnalysis#live_open_cast_types (self) on <self:RapidTypeAnalysis> */
2611 var405
= self
->attrs
[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___live_open_cast_types
].val
; /* _live_open_cast_types on <self:RapidTypeAnalysis> */
2612 if (unlikely(var405
== NULL
)) {
2613 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_open_cast_types");
2614 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 68);
2618 RET_LABEL404
:(void)0;
2623 var407
= standard___standard__HashSet___standard__abstract_collection__Collection__iterator(var_406
);
2628 var409
= ((short int (*)(val
* self
))(var_408
->class->vft
[COLOR_standard__abstract_collection__Iterator__is_ok
]))(var_408
) /* is_ok on <var_408:Iterator[MType]>*/;
2632 var410
= ((val
* (*)(val
* self
))(var_408
->class->vft
[COLOR_standard__abstract_collection__Iterator__item
]))(var_408
) /* item on <var_408:Iterator[MType]>*/;
2636 { /* Inline rapid_type_analysis#RapidTypeAnalysis#live_types (self) on <self:RapidTypeAnalysis> */
2637 var414
= self
->attrs
[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___live_types
].val
; /* _live_types on <self:RapidTypeAnalysis> */
2638 if (unlikely(var414
== NULL
)) {
2639 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_types");
2640 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 53);
2644 RET_LABEL413
:(void)0;
2649 var416
= standard___standard__HashSet___standard__abstract_collection__Collection__iterator(var_415
);
2654 var418
= ((short int (*)(val
* self
))(var_417
->class->vft
[COLOR_standard__abstract_collection__Iterator__is_ok
]))(var_417
) /* is_ok on <var_417:Iterator[MClassType]>*/;
2658 var419
= ((val
* (*)(val
* self
))(var_417
->class->vft
[COLOR_standard__abstract_collection__Iterator__item
]))(var_417
) /* item on <var_417:Iterator[MClassType]>*/;
2662 { /* Inline rapid_type_analysis#RapidTypeAnalysis#mainmodule (self) on <self:RapidTypeAnalysis> */
2663 var423
= self
->attrs
[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___mainmodule
].val
; /* _mainmodule on <self:RapidTypeAnalysis> */
2664 if (unlikely(var423
== NULL
)) {
2665 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule");
2666 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 49);
2670 RET_LABEL422
:(void)0;
2674 var424
= ((short int (*)(val
* self
, val
* p0
, val
* p1
, val
* p2
))(var_ot411
->class->vft
[COLOR_nit__model__MType__can_resolve_for
]))(var_ot411
, var_t420
, var_t420
, var421
) /* can_resolve_for on <var_ot411:MType>*/;
2678 goto BREAK_label426
;
2682 { /* Inline rapid_type_analysis#RapidTypeAnalysis#mainmodule (self) on <self:RapidTypeAnalysis> */
2683 var429
= self
->attrs
[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___mainmodule
].val
; /* _mainmodule on <self:RapidTypeAnalysis> */
2684 if (unlikely(var429
== NULL
)) {
2685 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule");
2686 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 49);
2690 RET_LABEL428
:(void)0;
2694 var430
= ((val
* (*)(val
* self
, val
* p0
, val
* p1
))(var_ot411
->class->vft
[COLOR_nit__model__MType__anchor_to
]))(var_ot411
, var427
, var_t420
) /* anchor_to on <var_ot411:MType>*/;
2698 { /* Inline rapid_type_analysis#RapidTypeAnalysis#live_cast_types (self) on <self:RapidTypeAnalysis> */
2699 var434
= self
->attrs
[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___live_cast_types
].val
; /* _live_cast_types on <self:RapidTypeAnalysis> */
2700 if (unlikely(var434
== NULL
)) {
2701 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_cast_types");
2702 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 65);
2706 RET_LABEL433
:(void)0;
2710 standard___standard__HashSet___standard__abstract_collection__SimpleCollection__add(var432
, var_rt431
); /* Direct call hash_collection#HashSet#add on <var432:HashSet[MType]>*/
2712 BREAK_label426
: (void)0;
2714 ((void (*)(val
* self
))(var_417
->class->vft
[COLOR_standard__abstract_collection__Iterator__next
]))(var_417
) /* next on <var_417:Iterator[MClassType]>*/;
2717 goto BREAK_label435
;
2720 BREAK_label435
: (void)0;
2722 { /* Inline abstract_collection#Iterator#finish (var_417) on <var_417:Iterator[MClassType]> */
2723 RET_LABEL436
:(void)0;
2727 ((void (*)(val
* self
))(var_408
->class->vft
[COLOR_standard__abstract_collection__Iterator__next
]))(var_408
) /* next on <var_408:Iterator[MType]>*/;
2730 goto BREAK_label437
;
2733 BREAK_label437
: (void)0;
2735 { /* Inline abstract_collection#Iterator#finish (var_408) on <var_408:Iterator[MType]> */
2736 RET_LABEL438
:(void)0;
2741 /* method rapid_type_analysis#RapidTypeAnalysis#check_depth for (self: RapidTypeAnalysis, MClassType) */
2742 void nit___nit__RapidTypeAnalysis___check_depth(val
* self
, val
* p0
) {
2743 val
* var_mtype
/* var mtype: MClassType */;
2744 long var
/* : Int */;
2745 long var_d
/* var d: Int */;
2746 long var1
/* : Int */;
2747 short int var2
/* : Bool */;
2748 short int var4
/* : Bool */;
2751 const char* var_class_name
;
2752 short int var5
/* : Bool */;
2753 val
* var6
/* : ModelBuilder */;
2754 val
* var8
/* : ModelBuilder */;
2755 val
* var9
/* : ToolContext */;
2756 val
* var11
/* : ToolContext */;
2757 val
* var12
/* : null */;
2758 static val
* varonce
;
2759 val
* var13
/* : String */;
2760 char* var14
/* : NativeString */;
2761 long var15
/* : Int */;
2762 val
* var16
/* : FlatString */;
2763 static val
* varonce17
;
2764 val
* var18
/* : String */;
2765 char* var19
/* : NativeString */;
2766 long var20
/* : Int */;
2767 val
* var21
/* : FlatString */;
2768 static val
* varonce22
;
2769 val
* var23
/* : String */;
2770 char* var24
/* : NativeString */;
2771 long var25
/* : Int */;
2772 val
* var26
/* : FlatString */;
2773 val
* var27
/* : Array[Object] */;
2774 long var28
/* : Int */;
2775 val
* var29
/* : NativeArray[Object] */;
2776 val
* var30
/* : Object */;
2777 val
* var31
/* : String */;
2780 var
= ((long (*)(val
* self
))(var_mtype
->class->vft
[COLOR_nit__model__MType__length
]))(var_mtype
) /* length on <var_mtype:MClassType>*/;
2785 { /* Inline kernel#Int#> (var_d,var1) on <var_d:Int> */
2786 /* Covariant cast for argument 0 (i) <var1:Int> isa OTHER */
2787 /* <var1:Int> isa OTHER */
2788 var4
= 1; /* easy <var1:Int> isa OTHER*/
2789 if (unlikely(!var4
)) {
2790 var_class_name
= type_standard__Int
.name
;
2791 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name
);
2792 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel
, 412);
2795 var5
= var_d
> var1
;
2803 { /* Inline rapid_type_analysis#RapidTypeAnalysis#modelbuilder (self) on <self:RapidTypeAnalysis> */
2804 var8
= self
->attrs
[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___modelbuilder
].val
; /* _modelbuilder on <self:RapidTypeAnalysis> */
2805 if (unlikely(var8
== NULL
)) {
2806 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
2807 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 46);
2815 { /* Inline modelbuilder_base#ModelBuilder#toolcontext (var6) on <var6:ModelBuilder> */
2816 var11
= var6
->attrs
[COLOR_nit__modelbuilder_base__ModelBuilder___toolcontext
].val
; /* _toolcontext on <var6:ModelBuilder> */
2817 if (unlikely(var11
== NULL
)) {
2818 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
2819 PRINT_ERROR(" (%s:%d)\n", FILE_nit__modelbuilder_base
, 47);
2823 RET_LABEL10
:(void)0;
2830 var14
= "Fatal error: limitation in the rapidtype analysis engine: a type depth of ";
2832 var16
= standard___standard__NativeString___to_s_with_length(var14
, var15
);
2839 var19
= " is too important, the problematic type is ";
2841 var21
= standard___standard__NativeString___to_s_with_length(var19
, var20
);
2850 var26
= standard___standard__NativeString___to_s_with_length(var24
, var25
);
2854 var27
= NEW_standard__Array(&type_standard__Array__standard__Object
);
2855 { /* var27 = array_instance Array[Object] */
2857 var29
= NEW_standard__NativeArray(var28
, &type_standard__NativeArray__standard__Object
);
2858 ((struct instance_standard__NativeArray
*)var29
)->values
[0] = (val
*) var13
;
2859 var30
= BOX_standard__Int(var_d
); /* autobox from Int to Object */
2860 ((struct instance_standard__NativeArray
*)var29
)->values
[1] = (val
*) var30
;
2861 ((struct instance_standard__NativeArray
*)var29
)->values
[2] = (val
*) var18
;
2862 ((struct instance_standard__NativeArray
*)var29
)->values
[3] = (val
*) var_mtype
;
2863 ((struct instance_standard__NativeArray
*)var29
)->values
[4] = (val
*) var23
;
2865 ((void (*)(val
* self
, val
* p0
, long p1
))(var27
->class->vft
[COLOR_standard__array__Array__with_native
]))(var27
, var29
, var28
) /* with_native on <var27:Array[Object]>*/;
2869 var31
= ((val
* (*)(val
* self
))(var27
->class->vft
[COLOR_standard__string__Object__to_s
]))(var27
) /* to_s on <var27:Array[Object]>*/;
2872 nit___nit__ToolContext___fatal_error(var9
, var12
, var31
); /* Direct call toolcontext#ToolContext#fatal_error on <var9:ToolContext>*/
2878 /* method rapid_type_analysis#RapidTypeAnalysis#add_new for (self: RapidTypeAnalysis, MClassType, MClassType) */
2879 void nit___nit__RapidTypeAnalysis___add_new(val
* self
, val
* p0
, val
* p1
) {
2880 val
* var_recv
/* var recv: MClassType */;
2881 val
* var_mtype
/* var mtype: MClassType */;
2882 short int var
/* : Bool */;
2883 short int var1
/* : Bool */;
2884 short int var2
/* : Bool */;
2885 val
* var3
/* : HashSet[MClassType] */;
2886 val
* var5
/* : HashSet[MClassType] */;
2887 short int var6
/* : Bool */;
2888 val
* var7
/* : HashSet[MClassType] */;
2889 val
* var9
/* : HashSet[MClassType] */;
2890 val
* var10
/* : HashSet[MClassType] */;
2891 val
* var12
/* : HashSet[MClassType] */;
2892 short int var13
/* : Bool */;
2893 val
* var14
/* : HashSet[MClassType] */;
2894 val
* var16
/* : HashSet[MClassType] */;
2895 val
* var17
/* : MClass */;
2896 val
* var19
/* : MClass */;
2897 val
* var_mclass
/* var mclass: MClass */;
2898 val
* var20
/* : HashSet[MClass] */;
2899 val
* var22
/* : HashSet[MClass] */;
2900 short int var23
/* : Bool */;
2901 val
* var24
/* : HashSet[MClass] */;
2902 val
* var26
/* : HashSet[MClass] */;
2903 val
* var27
/* : HashSet[MMethod] */;
2904 val
* var29
/* : HashSet[MMethod] */;
2905 val
* var_
/* var : HashSet[MMethod] */;
2906 val
* var30
/* : Iterator[nullable Object] */;
2907 val
* var_31
/* var : Iterator[MMethod] */;
2908 short int var32
/* : Bool */;
2909 val
* var33
/* : nullable Object */;
2910 val
* var_p
/* var p: MMethod */;
2911 val
* var35
/* : HashSet[MMethodDef] */;
2912 val
* var37
/* : HashSet[MMethodDef] */;
2913 val
* var_38
/* var : HashSet[MMethodDef] */;
2914 val
* var39
/* : Iterator[nullable Object] */;
2915 val
* var_40
/* var : Iterator[MMethodDef] */;
2916 short int var41
/* : Bool */;
2917 val
* var42
/* : nullable Object */;
2918 val
* var_p43
/* var p: MMethodDef */;
2919 val
* var46
/* : Array[MMethod] */;
2920 val
* var48
/* : Array[MMethod] */;
2921 val
* var_49
/* var : Array[MMethod] */;
2922 val
* var50
/* : ArrayIterator[nullable Object] */;
2923 val
* var_51
/* var : ArrayIterator[MMethod] */;
2924 short int var52
/* : Bool */;
2925 val
* var53
/* : nullable Object */;
2926 val
* var_p54
/* var p: MMethod */;
2927 val
* var55
/* : HashSet[MMethod] */;
2928 val
* var57
/* : HashSet[MMethod] */;
2929 val
* var60
/* : Array[MMethod] */;
2930 val
* var62
/* : Array[MMethod] */;
2931 val
* var63
/* : MModule */;
2932 val
* var65
/* : MModule */;
2933 val
* var66
/* : MClassType */;
2934 val
* var_bound_mtype
/* var bound_mtype: MClassType */;
2935 val
* var67
/* : MModule */;
2936 val
* var69
/* : MModule */;
2937 val
* var70
/* : Set[MClassDef] */;
2938 val
* var_71
/* var : Set[MClassDef] */;
2939 val
* var72
/* : Iterator[nullable Object] */;
2940 val
* var_73
/* var : Iterator[MClassDef] */;
2941 short int var74
/* : Bool */;
2942 val
* var75
/* : nullable Object */;
2943 val
* var_cd
/* var cd: MClassDef */;
2944 val
* var76
/* : ModelBuilder */;
2945 val
* var78
/* : ModelBuilder */;
2946 val
* var79
/* : Array[AAttrPropdef] */;
2947 val
* var_80
/* var : Array[AAttrPropdef] */;
2948 val
* var81
/* : ArrayIterator[nullable Object] */;
2949 val
* var_82
/* var : ArrayIterator[AAttrPropdef] */;
2950 short int var83
/* : Bool */;
2951 val
* var84
/* : nullable Object */;
2952 val
* var_npropdef
/* var npropdef: AAttrPropdef */;
2953 short int var85
/* : Bool */;
2954 short int var87
/* : Bool */;
2955 short int var88
/* : Bool */;
2956 val
* var90
/* : nullable MPropDef */;
2957 val
* var92
/* : nullable MPropDef */;
2958 val
* var_mpropdef
/* var mpropdef: MAttributeDef */;
2959 val
* var93
/* : RapidTypeVisitor */;
2960 val
* var_v
/* var v: RapidTypeVisitor */;
2961 val
* var94
/* : nullable AExpr */;
2962 val
* var96
/* : nullable AExpr */;
2963 val
* var97
/* : nullable AExpr */;
2964 val
* var99
/* : nullable AExpr */;
2968 var
= ((short int (*)(val
* self
))(var_recv
->class->vft
[COLOR_nit__model__MType__need_anchor
]))(var_recv
) /* need_anchor on <var_recv:MClassType>*/;
2971 if (unlikely(!var1
)) {
2972 PRINT_ERROR("Runtime error: %s", "Assert failed");
2973 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 323);
2977 var2
= ((short int (*)(val
* self
))(var_mtype
->class->vft
[COLOR_nit__model__MType__need_anchor
]))(var_mtype
) /* need_anchor on <var_mtype:MClassType>*/;
2981 { /* Inline rapid_type_analysis#RapidTypeAnalysis#live_open_types (self) on <self:RapidTypeAnalysis> */
2982 var5
= self
->attrs
[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___live_open_types
].val
; /* _live_open_types on <self:RapidTypeAnalysis> */
2983 if (unlikely(var5
== NULL
)) {
2984 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_open_types");
2985 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 58);
2993 var6
= standard___standard__HashSet___standard__abstract_collection__Collection__has(var3
, var_mtype
);
3000 { /* Inline rapid_type_analysis#RapidTypeAnalysis#live_open_types (self) on <self:RapidTypeAnalysis> */
3001 var9
= self
->attrs
[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___live_open_types
].val
; /* _live_open_types on <self:RapidTypeAnalysis> */
3002 if (unlikely(var9
== NULL
)) {
3003 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_open_types");
3004 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 58);
3012 standard___standard__HashSet___standard__abstract_collection__SimpleCollection__add(var7
, var_mtype
); /* Direct call hash_collection#HashSet#add on <var7:HashSet[MClassType]>*/
3016 { /* Inline rapid_type_analysis#RapidTypeAnalysis#live_types (self) on <self:RapidTypeAnalysis> */
3017 var12
= self
->attrs
[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___live_types
].val
; /* _live_types on <self:RapidTypeAnalysis> */
3018 if (unlikely(var12
== NULL
)) {
3019 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_types");
3020 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 53);
3024 RET_LABEL11
:(void)0;
3028 var13
= standard___standard__HashSet___standard__abstract_collection__Collection__has(var10
, var_mtype
);
3035 { /* Inline rapid_type_analysis#RapidTypeAnalysis#live_types (self) on <self:RapidTypeAnalysis> */
3036 var16
= self
->attrs
[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___live_types
].val
; /* _live_types on <self:RapidTypeAnalysis> */
3037 if (unlikely(var16
== NULL
)) {
3038 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_types");
3039 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 53);
3043 RET_LABEL15
:(void)0;
3047 standard___standard__HashSet___standard__abstract_collection__SimpleCollection__add(var14
, var_mtype
); /* Direct call hash_collection#HashSet#add on <var14:HashSet[MClassType]>*/
3051 { /* Inline model#MClassType#mclass (var_mtype) on <var_mtype:MClassType> */
3052 var19
= var_mtype
->attrs
[COLOR_nit__model__MClassType___mclass
].val
; /* _mclass on <var_mtype:MClassType> */
3053 if (unlikely(var19
== NULL
)) {
3054 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
3055 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 1058);
3059 RET_LABEL18
:(void)0;
3064 { /* Inline rapid_type_analysis#RapidTypeAnalysis#live_classes (self) on <self:RapidTypeAnalysis> */
3065 var22
= self
->attrs
[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___live_classes
].val
; /* _live_classes on <self:RapidTypeAnalysis> */
3066 if (unlikely(var22
== NULL
)) {
3067 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_classes");
3068 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 62);
3072 RET_LABEL21
:(void)0;
3076 var23
= standard___standard__HashSet___standard__abstract_collection__Collection__has(var20
, var_mclass
);
3083 { /* Inline rapid_type_analysis#RapidTypeAnalysis#live_classes (self) on <self:RapidTypeAnalysis> */
3084 var26
= self
->attrs
[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___live_classes
].val
; /* _live_classes on <self:RapidTypeAnalysis> */
3085 if (unlikely(var26
== NULL
)) {
3086 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_classes");
3087 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 62);
3091 RET_LABEL25
:(void)0;
3095 standard___standard__HashSet___standard__abstract_collection__SimpleCollection__add(var24
, var_mclass
); /* Direct call hash_collection#HashSet#add on <var24:HashSet[MClass]>*/
3098 { /* Inline rapid_type_analysis#RapidTypeAnalysis#totry_methods (self) on <self:RapidTypeAnalysis> */
3099 var29
= self
->attrs
[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___totry_methods
].val
; /* _totry_methods on <self:RapidTypeAnalysis> */
3100 if (unlikely(var29
== NULL
)) {
3101 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _totry_methods");
3102 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 162);
3106 RET_LABEL28
:(void)0;
3111 var30
= standard___standard__HashSet___standard__abstract_collection__Collection__iterator(var_
);
3116 var32
= ((short int (*)(val
* self
))(var_31
->class->vft
[COLOR_standard__abstract_collection__Iterator__is_ok
]))(var_31
) /* is_ok on <var_31:Iterator[MMethod]>*/;
3120 var33
= ((val
* (*)(val
* self
))(var_31
->class->vft
[COLOR_standard__abstract_collection__Iterator__item
]))(var_31
) /* item on <var_31:Iterator[MMethod]>*/;
3124 nit___nit__RapidTypeAnalysis___try_send(self
, var_mtype
, var_p
); /* Direct call rapid_type_analysis#RapidTypeAnalysis#try_send on <self:RapidTypeAnalysis>*/
3127 ((void (*)(val
* self
))(var_31
->class->vft
[COLOR_standard__abstract_collection__Iterator__next
]))(var_31
) /* next on <var_31:Iterator[MMethod]>*/;
3133 BREAK_label
: (void)0;
3135 { /* Inline abstract_collection#Iterator#finish (var_31) on <var_31:Iterator[MMethod]> */
3136 RET_LABEL34
:(void)0;
3140 { /* Inline rapid_type_analysis#RapidTypeAnalysis#live_super_sends (self) on <self:RapidTypeAnalysis> */
3141 var37
= self
->attrs
[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___live_super_sends
].val
; /* _live_super_sends on <self:RapidTypeAnalysis> */
3142 if (unlikely(var37
== NULL
)) {
3143 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_super_sends");
3144 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 107);
3148 RET_LABEL36
:(void)0;
3153 var39
= standard___standard__HashSet___standard__abstract_collection__Collection__iterator(var_38
);
3158 var41
= ((short int (*)(val
* self
))(var_40
->class->vft
[COLOR_standard__abstract_collection__Iterator__is_ok
]))(var_40
) /* is_ok on <var_40:Iterator[MMethodDef]>*/;
3162 var42
= ((val
* (*)(val
* self
))(var_40
->class->vft
[COLOR_standard__abstract_collection__Iterator__item
]))(var_40
) /* item on <var_40:Iterator[MMethodDef]>*/;
3166 nit___nit__RapidTypeAnalysis___try_super_send(self
, var_mtype
, var_p43
); /* Direct call rapid_type_analysis#RapidTypeAnalysis#try_super_send on <self:RapidTypeAnalysis>*/
3169 ((void (*)(val
* self
))(var_40
->class->vft
[COLOR_standard__abstract_collection__Iterator__next
]))(var_40
) /* next on <var_40:Iterator[MMethodDef]>*/;
3175 BREAK_label44
: (void)0;
3177 { /* Inline abstract_collection#Iterator#finish (var_40) on <var_40:Iterator[MMethodDef]> */
3178 RET_LABEL45
:(void)0;
3182 { /* Inline rapid_type_analysis#RapidTypeAnalysis#totry_methods_to_remove (self) on <self:RapidTypeAnalysis> */
3183 var48
= self
->attrs
[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___totry_methods_to_remove
].val
; /* _totry_methods_to_remove on <self:RapidTypeAnalysis> */
3184 if (unlikely(var48
== NULL
)) {
3185 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _totry_methods_to_remove");
3186 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 165);
3190 RET_LABEL47
:(void)0;
3195 var50
= standard___standard__AbstractArrayRead___standard__abstract_collection__Collection__iterator(var_49
);
3200 var52
= standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__is_ok(var_51
);
3204 var53
= standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__item(var_51
);
3208 { /* Inline rapid_type_analysis#RapidTypeAnalysis#totry_methods (self) on <self:RapidTypeAnalysis> */
3209 var57
= self
->attrs
[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___totry_methods
].val
; /* _totry_methods on <self:RapidTypeAnalysis> */
3210 if (unlikely(var57
== NULL
)) {
3211 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _totry_methods");
3212 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 162);
3216 RET_LABEL56
:(void)0;
3220 standard___standard__HashSet___standard__abstract_collection__RemovableCollection__remove(var55
, var_p54
); /* Direct call hash_collection#HashSet#remove on <var55:HashSet[MMethod]>*/
3223 standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__next(var_51
); /* Direct call array#ArrayIterator#next on <var_51:ArrayIterator[MMethod]>*/
3229 BREAK_label58
: (void)0;
3231 { /* Inline abstract_collection#Iterator#finish (var_51) on <var_51:ArrayIterator[MMethod]> */
3232 RET_LABEL59
:(void)0;
3236 { /* Inline rapid_type_analysis#RapidTypeAnalysis#totry_methods_to_remove (self) on <self:RapidTypeAnalysis> */
3237 var62
= self
->attrs
[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___totry_methods_to_remove
].val
; /* _totry_methods_to_remove on <self:RapidTypeAnalysis> */
3238 if (unlikely(var62
== NULL
)) {
3239 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _totry_methods_to_remove");
3240 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 165);
3244 RET_LABEL61
:(void)0;
3248 standard___standard__AbstractArray___standard__abstract_collection__RemovableCollection__clear(var60
); /* Direct call array#AbstractArray#clear on <var60:Array[MMethod]>*/
3251 { /* Inline rapid_type_analysis#RapidTypeAnalysis#mainmodule (self) on <self:RapidTypeAnalysis> */
3252 var65
= self
->attrs
[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___mainmodule
].val
; /* _mainmodule on <self:RapidTypeAnalysis> */
3253 if (unlikely(var65
== NULL
)) {
3254 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule");
3255 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 49);
3259 RET_LABEL64
:(void)0;
3263 var66
= nit___nit__MClassType___MType__anchor_to(var_mtype
, var63
, var_recv
);
3265 var_bound_mtype
= var66
;
3267 { /* Inline rapid_type_analysis#RapidTypeAnalysis#mainmodule (self) on <self:RapidTypeAnalysis> */
3268 var69
= self
->attrs
[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___mainmodule
].val
; /* _mainmodule on <self:RapidTypeAnalysis> */
3269 if (unlikely(var69
== NULL
)) {
3270 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule");
3271 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 49);
3275 RET_LABEL68
:(void)0;
3279 var70
= nit___nit__MClassType___MType__collect_mclassdefs(var_bound_mtype
, var67
);
3283 var72
= ((val
* (*)(val
* self
))(var_71
->class->vft
[COLOR_standard__abstract_collection__Collection__iterator
]))(var_71
) /* iterator on <var_71:Set[MClassDef]>*/;
3288 var74
= ((short int (*)(val
* self
))(var_73
->class->vft
[COLOR_standard__abstract_collection__Iterator__is_ok
]))(var_73
) /* is_ok on <var_73:Iterator[MClassDef]>*/;
3292 var75
= ((val
* (*)(val
* self
))(var_73
->class->vft
[COLOR_standard__abstract_collection__Iterator__item
]))(var_73
) /* item on <var_73:Iterator[MClassDef]>*/;
3296 { /* Inline rapid_type_analysis#RapidTypeAnalysis#modelbuilder (self) on <self:RapidTypeAnalysis> */
3297 var78
= self
->attrs
[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___modelbuilder
].val
; /* _modelbuilder on <self:RapidTypeAnalysis> */
3298 if (unlikely(var78
== NULL
)) {
3299 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
3300 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 46);
3304 RET_LABEL77
:(void)0;
3308 var79
= nit__modelize_property___ModelBuilder___collect_attr_propdef(var76
, var_cd
);
3312 var81
= standard___standard__AbstractArrayRead___standard__abstract_collection__Collection__iterator(var_80
);
3317 var83
= standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__is_ok(var_82
);
3321 var84
= standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__item(var_82
);
3323 var_npropdef
= var84
;
3325 { /* Inline modelize_property#AAttrPropdef#has_value (var_npropdef) on <var_npropdef:AAttrPropdef> */
3326 var87
= var_npropdef
->attrs
[COLOR_nit__modelize_property__AAttrPropdef___has_value
].s
; /* _has_value on <var_npropdef:AAttrPropdef> */
3328 RET_LABEL86
:(void)0;
3337 { /* Inline modelize_property#APropdef#mpropdef (var_npropdef) on <var_npropdef:AAttrPropdef> */
3338 var92
= var_npropdef
->attrs
[COLOR_nit__modelize_property__APropdef___mpropdef
].val
; /* _mpropdef on <var_npropdef:AAttrPropdef> */
3340 RET_LABEL91
:(void)0;
3343 if (unlikely(var90
== NULL
)) {
3344 PRINT_ERROR("Runtime error: %s", "Cast failed");
3345 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 349);
3348 var_mpropdef
= var90
;
3349 var93
= NEW_nit__RapidTypeVisitor(&type_nit__RapidTypeVisitor
);
3351 ((void (*)(val
* self
, val
* p0
))(var93
->class->vft
[COLOR_nit__rapid_type_analysis__RapidTypeVisitor__analysis_61d
]))(var93
, self
) /* analysis= on <var93:RapidTypeVisitor>*/;
3354 ((void (*)(val
* self
, val
* p0
))(var93
->class->vft
[COLOR_nit__rapid_type_analysis__RapidTypeVisitor__receiver_61d
]))(var93
, var_bound_mtype
) /* receiver= on <var93:RapidTypeVisitor>*/;
3357 ((void (*)(val
* self
, val
* p0
))(var93
->class->vft
[COLOR_nit__rapid_type_analysis__RapidTypeVisitor__mpropdef_61d
]))(var93
, var_mpropdef
) /* mpropdef= on <var93:RapidTypeVisitor>*/;
3360 ((void (*)(val
* self
))(var93
->class->vft
[COLOR_standard__kernel__Object__init
]))(var93
) /* init on <var93:RapidTypeVisitor>*/;
3364 { /* Inline parser_nodes#AAttrPropdef#n_expr (var_npropdef) on <var_npropdef:AAttrPropdef> */
3365 var96
= var_npropdef
->attrs
[COLOR_nit__parser_nodes__AAttrPropdef___n_expr
].val
; /* _n_expr on <var_npropdef:AAttrPropdef> */
3367 RET_LABEL95
:(void)0;
3371 nit___nit__Visitor___enter_visit(var_v
, var94
); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:RapidTypeVisitor>*/
3374 { /* Inline parser_nodes#AAttrPropdef#n_block (var_npropdef) on <var_npropdef:AAttrPropdef> */
3375 var99
= var_npropdef
->attrs
[COLOR_nit__parser_nodes__AAttrPropdef___n_block
].val
; /* _n_block on <var_npropdef:AAttrPropdef> */
3377 RET_LABEL98
:(void)0;
3381 nit___nit__Visitor___enter_visit(var_v
, var97
); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:RapidTypeVisitor>*/
3383 BREAK_label89
: (void)0;
3385 standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__next(var_82
); /* Direct call array#ArrayIterator#next on <var_82:ArrayIterator[AAttrPropdef]>*/
3388 goto BREAK_label100
;
3391 BREAK_label100
: (void)0;
3393 { /* Inline abstract_collection#Iterator#finish (var_82) on <var_82:ArrayIterator[AAttrPropdef]> */
3394 RET_LABEL101
:(void)0;
3398 ((void (*)(val
* self
))(var_73
->class->vft
[COLOR_standard__abstract_collection__Iterator__next
]))(var_73
) /* next on <var_73:Iterator[MClassDef]>*/;
3401 goto BREAK_label102
;
3404 BREAK_label102
: (void)0;
3406 { /* Inline abstract_collection#Iterator#finish (var_73) on <var_73:Iterator[MClassDef]> */
3407 RET_LABEL103
:(void)0;
3412 /* method rapid_type_analysis#RapidTypeAnalysis#add_cast for (self: RapidTypeAnalysis, MType) */
3413 void nit___nit__RapidTypeAnalysis___add_cast(val
* self
, val
* p0
) {
3414 val
* var_mtype
/* var mtype: MType */;
3415 short int var
/* : Bool */;
3416 val
* var1
/* : HashSet[MType] */;
3417 val
* var3
/* : HashSet[MType] */;
3418 val
* var4
/* : HashSet[MType] */;
3419 val
* var6
/* : HashSet[MType] */;
3422 var
= ((short int (*)(val
* self
))(var_mtype
->class->vft
[COLOR_nit__model__MType__need_anchor
]))(var_mtype
) /* need_anchor on <var_mtype:MType>*/;
3426 { /* Inline rapid_type_analysis#RapidTypeAnalysis#live_open_cast_types (self) on <self:RapidTypeAnalysis> */
3427 var3
= self
->attrs
[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___live_open_cast_types
].val
; /* _live_open_cast_types on <self:RapidTypeAnalysis> */
3428 if (unlikely(var3
== NULL
)) {
3429 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_open_cast_types");
3430 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 68);
3438 standard___standard__HashSet___standard__abstract_collection__SimpleCollection__add(var1
, var_mtype
); /* Direct call hash_collection#HashSet#add on <var1:HashSet[MType]>*/
3442 { /* Inline rapid_type_analysis#RapidTypeAnalysis#live_cast_types (self) on <self:RapidTypeAnalysis> */
3443 var6
= self
->attrs
[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___live_cast_types
].val
; /* _live_cast_types on <self:RapidTypeAnalysis> */
3444 if (unlikely(var6
== NULL
)) {
3445 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_cast_types");
3446 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 65);
3454 standard___standard__HashSet___standard__abstract_collection__SimpleCollection__add(var4
, var_mtype
); /* Direct call hash_collection#HashSet#add on <var4:HashSet[MType]>*/
3459 /* method rapid_type_analysis#RapidTypeAnalysis#try_send for (self: RapidTypeAnalysis, MClassType, MMethod) */
3460 void nit___nit__RapidTypeAnalysis___try_send(val
* self
, val
* p0
, val
* p1
) {
3461 val
* var_recv
/* var recv: MClassType */;
3462 val
* var_mproperty
/* var mproperty: MMethod */;
3463 val
* var
/* : MClass */;
3464 val
* var2
/* : MClass */;
3465 val
* var3
/* : MClassDef */;
3466 val
* var5
/* : MClassDef */;
3467 val
* var6
/* : MClassType */;
3468 val
* var8
/* : MClassType */;
3469 val
* var9
/* : MModule */;
3470 val
* var11
/* : MModule */;
3471 short int var12
/* : Bool */;
3472 short int var13
/* : Bool */;
3473 val
* var14
/* : MModule */;
3474 val
* var16
/* : MModule */;
3475 val
* var17
/* : MPropDef */;
3476 val
* var_d
/* var d: MMethodDef */;
3480 { /* Inline model#MClassType#mclass (var_recv) on <var_recv:MClassType> */
3481 var2
= var_recv
->attrs
[COLOR_nit__model__MClassType___mclass
].val
; /* _mclass on <var_recv:MClassType> */
3482 if (unlikely(var2
== NULL
)) {
3483 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
3484 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 1058);
3492 { /* Inline model#MClass#intro (var) on <var:MClass> */
3493 var5
= var
->attrs
[COLOR_nit__model__MClass___intro
].val
; /* _intro on <var:MClass> */
3494 if (unlikely(var5
== NULL
)) {
3495 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro");
3496 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 423);
3504 { /* Inline model#MClassDef#bound_mtype (var3) on <var3:MClassDef> */
3505 var8
= var3
->attrs
[COLOR_nit__model__MClassDef___bound_mtype
].val
; /* _bound_mtype on <var3:MClassDef> */
3506 if (unlikely(var8
== NULL
)) {
3507 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _bound_mtype");
3508 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 495);
3517 { /* Inline rapid_type_analysis#RapidTypeAnalysis#mainmodule (self) on <self:RapidTypeAnalysis> */
3518 var11
= self
->attrs
[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___mainmodule
].val
; /* _mainmodule on <self:RapidTypeAnalysis> */
3519 if (unlikely(var11
== NULL
)) {
3520 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule");
3521 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 49);
3525 RET_LABEL10
:(void)0;
3529 var12
= nit___nit__MType___has_mproperty(var_recv
, var9
, var_mproperty
);
3537 { /* Inline rapid_type_analysis#RapidTypeAnalysis#mainmodule (self) on <self:RapidTypeAnalysis> */
3538 var16
= self
->attrs
[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___mainmodule
].val
; /* _mainmodule on <self:RapidTypeAnalysis> */
3539 if (unlikely(var16
== NULL
)) {
3540 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule");
3541 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 49);
3545 RET_LABEL15
:(void)0;
3549 var17
= nit___nit__MProperty___lookup_first_definition(var_mproperty
, var14
, var_recv
);
3553 nit___nit__RapidTypeAnalysis___add_call(self
, var_d
); /* Direct call rapid_type_analysis#RapidTypeAnalysis#add_call on <self:RapidTypeAnalysis>*/
3557 /* method rapid_type_analysis#RapidTypeAnalysis#add_call for (self: RapidTypeAnalysis, MMethodDef) */
3558 void nit___nit__RapidTypeAnalysis___add_call(val
* self
, val
* p0
) {
3559 val
* var_mpropdef
/* var mpropdef: MMethodDef */;
3560 val
* var
/* : HashSet[MMethodDef] */;
3561 val
* var2
/* : HashSet[MMethodDef] */;
3562 short int var3
/* : Bool */;
3563 val
* var4
/* : HashSet[MMethodDef] */;
3564 val
* var6
/* : HashSet[MMethodDef] */;
3565 val
* var7
/* : List[MMethodDef] */;
3566 val
* var9
/* : List[MMethodDef] */;
3567 val
* var10
/* : MProperty */;
3568 val
* var12
/* : MProperty */;
3569 val
* var_mproperty
/* var mproperty: MMethod */;
3570 val
* var13
/* : Array[MPropDef] */;
3571 val
* var15
/* : Array[MPropDef] */;
3572 long var16
/* : Int */;
3573 long var18
/* : Int */;
3574 long var19
/* : Int */;
3575 short int var20
/* : Bool */;
3576 short int var22
/* : Bool */;
3579 const char* var_class_name
;
3580 short int var23
/* : Bool */;
3581 val
* var24
/* : Array[MPropDef] */;
3582 val
* var26
/* : Array[MPropDef] */;
3583 val
* var_
/* var : Array[MMethodDef] */;
3584 val
* var27
/* : ArrayIterator[nullable Object] */;
3585 val
* var_28
/* var : ArrayIterator[MMethodDef] */;
3586 short int var29
/* : Bool */;
3587 val
* var30
/* : nullable Object */;
3588 val
* var_d
/* var d: MMethodDef */;
3589 short int var31
/* : Bool */;
3590 short int var33
/* : Bool */;
3591 val
* var34
/* : HashSet[MMethodDef] */;
3592 val
* var36
/* : HashSet[MMethodDef] */;
3593 short int var37
/* : Bool */;
3594 short int var38
/* : Bool */;
3595 val
* var41
/* : Array[MMethod] */;
3596 val
* var43
/* : Array[MMethod] */;
3597 val
* var44
/* : MProperty */;
3598 val
* var46
/* : MProperty */;
3601 { /* Inline rapid_type_analysis#RapidTypeAnalysis#live_methoddefs (self) on <self:RapidTypeAnalysis> */
3602 var2
= self
->attrs
[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___live_methoddefs
].val
; /* _live_methoddefs on <self:RapidTypeAnalysis> */
3603 if (unlikely(var2
== NULL
)) {
3604 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_methoddefs");
3605 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 72);
3613 var3
= standard___standard__HashSet___standard__abstract_collection__Collection__has(var
, var_mpropdef
);
3620 { /* Inline rapid_type_analysis#RapidTypeAnalysis#live_methoddefs (self) on <self:RapidTypeAnalysis> */
3621 var6
= self
->attrs
[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___live_methoddefs
].val
; /* _live_methoddefs on <self:RapidTypeAnalysis> */
3622 if (unlikely(var6
== NULL
)) {
3623 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_methoddefs");
3624 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 72);
3632 standard___standard__HashSet___standard__abstract_collection__SimpleCollection__add(var4
, var_mpropdef
); /* Direct call hash_collection#HashSet#add on <var4:HashSet[MMethodDef]>*/
3635 { /* Inline rapid_type_analysis#RapidTypeAnalysis#todo (self) on <self:RapidTypeAnalysis> */
3636 var9
= self
->attrs
[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___todo
].val
; /* _todo on <self:RapidTypeAnalysis> */
3637 if (unlikely(var9
== NULL
)) {
3638 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _todo");
3639 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 172);
3647 standard___standard__Sequence___SimpleCollection__add(var7
, var_mpropdef
); /* Direct call abstract_collection#Sequence#add on <var7:List[MMethodDef]>*/
3650 { /* Inline model#MPropDef#mproperty (var_mpropdef) on <var_mpropdef:MMethodDef> */
3651 var12
= var_mpropdef
->attrs
[COLOR_nit__model__MPropDef___mproperty
].val
; /* _mproperty on <var_mpropdef:MMethodDef> */
3652 if (unlikely(var12
== NULL
)) {
3653 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty");
3654 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 2013);
3658 RET_LABEL11
:(void)0;
3661 var_mproperty
= var10
;
3663 { /* Inline model#MProperty#mpropdefs (var_mproperty) on <var_mproperty:MMethod> */
3664 var15
= var_mproperty
->attrs
[COLOR_nit__model__MProperty___mpropdefs
].val
; /* _mpropdefs on <var_mproperty:MMethod> */
3665 if (unlikely(var15
== NULL
)) {
3666 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mpropdefs");
3667 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 1768);
3671 RET_LABEL14
:(void)0;
3675 { /* Inline array#AbstractArrayRead#length (var13) on <var13:Array[MPropDef](Array[MMethodDef])> */
3676 var18
= var13
->attrs
[COLOR_standard__array__AbstractArrayRead___length
].l
; /* _length on <var13:Array[MPropDef](Array[MMethodDef])> */
3678 RET_LABEL17
:(void)0;
3683 { /* Inline kernel#Int#<= (var16,var19) on <var16:Int> */
3684 /* Covariant cast for argument 0 (i) <var19:Int> isa OTHER */
3685 /* <var19:Int> isa OTHER */
3686 var22
= 1; /* easy <var19:Int> isa OTHER*/
3687 if (unlikely(!var22
)) {
3688 var_class_name
= type_standard__Int
.name
;
3689 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name
);
3690 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel
, 409);
3693 var23
= var16
<= var19
;
3696 RET_LABEL21
:(void)0;
3704 { /* Inline model#MProperty#mpropdefs (var_mproperty) on <var_mproperty:MMethod> */
3705 var26
= var_mproperty
->attrs
[COLOR_nit__model__MProperty___mpropdefs
].val
; /* _mpropdefs on <var_mproperty:MMethod> */
3706 if (unlikely(var26
== NULL
)) {
3707 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mpropdefs");
3708 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 1768);
3712 RET_LABEL25
:(void)0;
3717 var27
= standard___standard__AbstractArrayRead___standard__abstract_collection__Collection__iterator(var_
);
3722 var29
= standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__is_ok(var_28
);
3726 var30
= standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__item(var_28
);
3730 { /* Inline model#MMethodDef#is_abstract (var_d) on <var_d:MMethodDef> */
3731 var33
= var_d
->attrs
[COLOR_nit__model__MMethodDef___is_abstract
].s
; /* _is_abstract on <var_d:MMethodDef> */
3733 RET_LABEL32
:(void)0;
3741 { /* Inline rapid_type_analysis#RapidTypeAnalysis#live_methoddefs (self) on <self:RapidTypeAnalysis> */
3742 var36
= self
->attrs
[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___live_methoddefs
].val
; /* _live_methoddefs on <self:RapidTypeAnalysis> */
3743 if (unlikely(var36
== NULL
)) {
3744 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_methoddefs");
3745 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 72);
3749 RET_LABEL35
:(void)0;
3753 var37
= standard___standard__HashSet___standard__abstract_collection__Collection__has(var34
, var_d
);
3760 BREAK_label
: (void)0;
3762 standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__next(var_28
); /* Direct call array#ArrayIterator#next on <var_28:ArrayIterator[MMethodDef]>*/
3768 BREAK_label39
: (void)0;
3770 { /* Inline abstract_collection#Iterator#finish (var_28) on <var_28:ArrayIterator[MMethodDef]> */
3771 RET_LABEL40
:(void)0;
3775 { /* Inline rapid_type_analysis#RapidTypeAnalysis#totry_methods_to_remove (self) on <self:RapidTypeAnalysis> */
3776 var43
= self
->attrs
[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___totry_methods_to_remove
].val
; /* _totry_methods_to_remove on <self:RapidTypeAnalysis> */
3777 if (unlikely(var43
== NULL
)) {
3778 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _totry_methods_to_remove");
3779 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 165);
3783 RET_LABEL42
:(void)0;
3787 { /* Inline model#MPropDef#mproperty (var_mpropdef) on <var_mpropdef:MMethodDef> */
3788 var46
= var_mpropdef
->attrs
[COLOR_nit__model__MPropDef___mproperty
].val
; /* _mproperty on <var_mpropdef:MMethodDef> */
3789 if (unlikely(var46
== NULL
)) {
3790 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty");
3791 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 2013);
3795 RET_LABEL45
:(void)0;
3799 standard___standard__Array___standard__abstract_collection__SimpleCollection__add(var41
, var44
); /* Direct call array#Array#add on <var41:Array[MMethod]>*/
3803 /* method rapid_type_analysis#RapidTypeAnalysis#add_send for (self: RapidTypeAnalysis, MType, MMethod) */
3804 void nit___nit__RapidTypeAnalysis___add_send(val
* self
, val
* p0
, val
* p1
) {
3805 val
* var_recv
/* var recv: MType */;
3806 val
* var_mproperty
/* var mproperty: MMethod */;
3807 val
* var
/* : HashSet[MMethod] */;
3808 val
* var2
/* : HashSet[MMethod] */;
3809 short int var3
/* : Bool */;
3810 val
* var4
/* : HashSet[MMethod] */;
3811 val
* var6
/* : HashSet[MMethod] */;
3812 val
* var7
/* : HashSet[MMethod] */;
3813 val
* var9
/* : HashSet[MMethod] */;
3814 val
* var10
/* : Array[MPropDef] */;
3815 val
* var12
/* : Array[MPropDef] */;
3816 long var13
/* : Int */;
3817 long var15
/* : Int */;
3818 long var16
/* : Int */;
3819 short int var17
/* : Bool */;
3820 short int var19
/* : Bool */;
3821 val
* var20
/* : Array[MPropDef] */;
3822 val
* var22
/* : Array[MPropDef] */;
3823 val
* var23
/* : nullable Object */;
3824 val
* var_d
/* var d: MMethodDef */;
3825 val
* var24
/* : HashSet[MMethod] */;
3826 val
* var26
/* : HashSet[MMethod] */;
3827 val
* var27
/* : HashSet[MClass] */;
3828 val
* var29
/* : HashSet[MClass] */;
3829 val
* var_
/* var : HashSet[MClass] */;
3830 val
* var30
/* : Iterator[nullable Object] */;
3831 val
* var_31
/* var : Iterator[MClass] */;
3832 short int var32
/* : Bool */;
3833 val
* var33
/* : nullable Object */;
3834 val
* var_c
/* var c: MClass */;
3835 val
* var34
/* : MClassDef */;
3836 val
* var36
/* : MClassDef */;
3837 val
* var37
/* : MClassType */;
3838 val
* var39
/* : MClassType */;
3842 { /* Inline rapid_type_analysis#RapidTypeAnalysis#try_methods (self) on <self:RapidTypeAnalysis> */
3843 var2
= self
->attrs
[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___try_methods
].val
; /* _try_methods on <self:RapidTypeAnalysis> */
3844 if (unlikely(var2
== NULL
)) {
3845 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _try_methods");
3846 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 168);
3854 var3
= standard___standard__HashSet___standard__abstract_collection__Collection__has(var
, var_mproperty
);
3861 { /* Inline rapid_type_analysis#RapidTypeAnalysis#live_methods (self) on <self:RapidTypeAnalysis> */
3862 var6
= self
->attrs
[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___live_methods
].val
; /* _live_methods on <self:RapidTypeAnalysis> */
3863 if (unlikely(var6
== NULL
)) {
3864 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_methods");
3865 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 75);
3873 standard___standard__HashSet___standard__abstract_collection__SimpleCollection__add(var4
, var_mproperty
); /* Direct call hash_collection#HashSet#add on <var4:HashSet[MMethod]>*/
3876 { /* Inline rapid_type_analysis#RapidTypeAnalysis#try_methods (self) on <self:RapidTypeAnalysis> */
3877 var9
= self
->attrs
[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___try_methods
].val
; /* _try_methods on <self:RapidTypeAnalysis> */
3878 if (unlikely(var9
== NULL
)) {
3879 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _try_methods");
3880 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 168);
3888 standard___standard__HashSet___standard__abstract_collection__SimpleCollection__add(var7
, var_mproperty
); /* Direct call hash_collection#HashSet#add on <var7:HashSet[MMethod]>*/
3891 { /* Inline model#MProperty#mpropdefs (var_mproperty) on <var_mproperty:MMethod> */
3892 var12
= var_mproperty
->attrs
[COLOR_nit__model__MProperty___mpropdefs
].val
; /* _mpropdefs on <var_mproperty:MMethod> */
3893 if (unlikely(var12
== NULL
)) {
3894 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mpropdefs");
3895 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 1768);
3899 RET_LABEL11
:(void)0;
3903 { /* Inline array#AbstractArrayRead#length (var10) on <var10:Array[MPropDef](Array[MMethodDef])> */
3904 var15
= var10
->attrs
[COLOR_standard__array__AbstractArrayRead___length
].l
; /* _length on <var10:Array[MPropDef](Array[MMethodDef])> */
3906 RET_LABEL14
:(void)0;
3911 { /* Inline kernel#Int#== (var13,var16) on <var13:Int> */
3912 var19
= var13
== var16
;
3915 RET_LABEL18
:(void)0;
3920 { /* Inline model#MProperty#mpropdefs (var_mproperty) on <var_mproperty:MMethod> */
3921 var22
= var_mproperty
->attrs
[COLOR_nit__model__MProperty___mpropdefs
].val
; /* _mpropdefs on <var_mproperty:MMethod> */
3922 if (unlikely(var22
== NULL
)) {
3923 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mpropdefs");
3924 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 1768);
3928 RET_LABEL21
:(void)0;
3932 var23
= standard___standard__SequenceRead___Collection__first(var20
);
3936 nit___nit__RapidTypeAnalysis___add_call(self
, var_d
); /* Direct call rapid_type_analysis#RapidTypeAnalysis#add_call on <self:RapidTypeAnalysis>*/
3942 { /* Inline rapid_type_analysis#RapidTypeAnalysis#totry_methods (self) on <self:RapidTypeAnalysis> */
3943 var26
= self
->attrs
[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___totry_methods
].val
; /* _totry_methods on <self:RapidTypeAnalysis> */
3944 if (unlikely(var26
== NULL
)) {
3945 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _totry_methods");
3946 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 162);
3950 RET_LABEL25
:(void)0;
3954 standard___standard__HashSet___standard__abstract_collection__SimpleCollection__add(var24
, var_mproperty
); /* Direct call hash_collection#HashSet#add on <var24:HashSet[MMethod]>*/
3957 { /* Inline rapid_type_analysis#RapidTypeAnalysis#live_classes (self) on <self:RapidTypeAnalysis> */
3958 var29
= self
->attrs
[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___live_classes
].val
; /* _live_classes on <self:RapidTypeAnalysis> */
3959 if (unlikely(var29
== NULL
)) {
3960 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_classes");
3961 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 62);
3965 RET_LABEL28
:(void)0;
3970 var30
= standard___standard__HashSet___standard__abstract_collection__Collection__iterator(var_
);
3975 var32
= ((short int (*)(val
* self
))(var_31
->class->vft
[COLOR_standard__abstract_collection__Iterator__is_ok
]))(var_31
) /* is_ok on <var_31:Iterator[MClass]>*/;
3979 var33
= ((val
* (*)(val
* self
))(var_31
->class->vft
[COLOR_standard__abstract_collection__Iterator__item
]))(var_31
) /* item on <var_31:Iterator[MClass]>*/;
3983 { /* Inline model#MClass#intro (var_c) on <var_c:MClass> */
3984 var36
= var_c
->attrs
[COLOR_nit__model__MClass___intro
].val
; /* _intro on <var_c:MClass> */
3985 if (unlikely(var36
== NULL
)) {
3986 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro");
3987 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 423);
3991 RET_LABEL35
:(void)0;
3995 { /* Inline model#MClassDef#bound_mtype (var34) on <var34:MClassDef> */
3996 var39
= var34
->attrs
[COLOR_nit__model__MClassDef___bound_mtype
].val
; /* _bound_mtype on <var34:MClassDef> */
3997 if (unlikely(var39
== NULL
)) {
3998 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _bound_mtype");
3999 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 495);
4003 RET_LABEL38
:(void)0;
4007 nit___nit__RapidTypeAnalysis___try_send(self
, var37
, var_mproperty
); /* Direct call rapid_type_analysis#RapidTypeAnalysis#try_send on <self:RapidTypeAnalysis>*/
4010 ((void (*)(val
* self
))(var_31
->class->vft
[COLOR_standard__abstract_collection__Iterator__next
]))(var_31
) /* next on <var_31:Iterator[MClass]>*/;
4016 BREAK_label
: (void)0;
4018 { /* Inline abstract_collection#Iterator#finish (var_31) on <var_31:Iterator[MClass]> */
4019 RET_LABEL40
:(void)0;
4024 /* method rapid_type_analysis#RapidTypeAnalysis#try_super_send for (self: RapidTypeAnalysis, MClassType, MMethodDef) */
4025 void nit___nit__RapidTypeAnalysis___try_super_send(val
* self
, val
* p0
, val
* p1
) {
4026 val
* var_recv
/* var recv: MClassType */;
4027 val
* var_mpropdef
/* var mpropdef: MMethodDef */;
4028 val
* var
/* : MClass */;
4029 val
* var2
/* : MClass */;
4030 val
* var3
/* : MClassDef */;
4031 val
* var5
/* : MClassDef */;
4032 val
* var6
/* : MClassType */;
4033 val
* var8
/* : MClassType */;
4034 val
* var9
/* : MModule */;
4035 val
* var11
/* : MModule */;
4036 val
* var12
/* : Set[MClassDef] */;
4037 val
* var13
/* : MClassDef */;
4038 val
* var15
/* : MClassDef */;
4039 short int var16
/* : Bool */;
4040 short int var17
/* : Bool */;
4041 val
* var18
/* : MModule */;
4042 val
* var20
/* : MModule */;
4043 val
* var21
/* : MPropDef */;
4044 val
* var_d
/* var d: MMethodDef */;
4048 { /* Inline model#MClassType#mclass (var_recv) on <var_recv:MClassType> */
4049 var2
= var_recv
->attrs
[COLOR_nit__model__MClassType___mclass
].val
; /* _mclass on <var_recv:MClassType> */
4050 if (unlikely(var2
== NULL
)) {
4051 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
4052 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 1058);
4060 { /* Inline model#MClass#intro (var) on <var:MClass> */
4061 var5
= var
->attrs
[COLOR_nit__model__MClass___intro
].val
; /* _intro on <var:MClass> */
4062 if (unlikely(var5
== NULL
)) {
4063 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro");
4064 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 423);
4072 { /* Inline model#MClassDef#bound_mtype (var3) on <var3:MClassDef> */
4073 var8
= var3
->attrs
[COLOR_nit__model__MClassDef___bound_mtype
].val
; /* _bound_mtype on <var3:MClassDef> */
4074 if (unlikely(var8
== NULL
)) {
4075 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _bound_mtype");
4076 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 495);
4085 { /* Inline rapid_type_analysis#RapidTypeAnalysis#mainmodule (self) on <self:RapidTypeAnalysis> */
4086 var11
= self
->attrs
[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___mainmodule
].val
; /* _mainmodule on <self:RapidTypeAnalysis> */
4087 if (unlikely(var11
== NULL
)) {
4088 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule");
4089 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 49);
4093 RET_LABEL10
:(void)0;
4097 var12
= nit___nit__MClassType___MType__collect_mclassdefs(var_recv
, var9
);
4100 { /* Inline model#MPropDef#mclassdef (var_mpropdef) on <var_mpropdef:MMethodDef> */
4101 var15
= var_mpropdef
->attrs
[COLOR_nit__model__MPropDef___mclassdef
].val
; /* _mclassdef on <var_mpropdef:MMethodDef> */
4102 if (unlikely(var15
== NULL
)) {
4103 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdef");
4104 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 2010);
4108 RET_LABEL14
:(void)0;
4112 var16
= ((short int (*)(val
* self
, val
* p0
))(var12
->class->vft
[COLOR_standard__abstract_collection__Collection__has
]))(var12
, var13
) /* has on <var12:Set[MClassDef]>*/;
4120 { /* Inline rapid_type_analysis#RapidTypeAnalysis#mainmodule (self) on <self:RapidTypeAnalysis> */
4121 var20
= self
->attrs
[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___mainmodule
].val
; /* _mainmodule on <self:RapidTypeAnalysis> */
4122 if (unlikely(var20
== NULL
)) {
4123 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule");
4124 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 49);
4128 RET_LABEL19
:(void)0;
4132 var21
= nit___nit__MPropDef___lookup_next_definition(var_mpropdef
, var18
, var_recv
);
4136 nit___nit__RapidTypeAnalysis___add_call(self
, var_d
); /* Direct call rapid_type_analysis#RapidTypeAnalysis#add_call on <self:RapidTypeAnalysis>*/
4140 /* method rapid_type_analysis#RapidTypeAnalysis#add_super_send for (self: RapidTypeAnalysis, MType, MMethodDef) */
4141 void nit___nit__RapidTypeAnalysis___add_super_send(val
* self
, val
* p0
, val
* p1
) {
4142 val
* var_recv
/* var recv: MType */;
4143 val
* var_mpropdef
/* var mpropdef: MMethodDef */;
4144 short int var
/* : Bool */;
4145 short int var2
/* : Bool */;
4146 val
* var3
/* : HashSet[MMethodDef] */;
4147 val
* var5
/* : HashSet[MMethodDef] */;
4148 short int var6
/* : Bool */;
4149 val
* var7
/* : HashSet[MMethodDef] */;
4150 val
* var9
/* : HashSet[MMethodDef] */;
4151 val
* var10
/* : HashSet[MClass] */;
4152 val
* var12
/* : HashSet[MClass] */;
4153 val
* var_
/* var : HashSet[MClass] */;
4154 val
* var13
/* : Iterator[nullable Object] */;
4155 val
* var_14
/* var : Iterator[MClass] */;
4156 short int var15
/* : Bool */;
4157 val
* var16
/* : nullable Object */;
4158 val
* var_c
/* var c: MClass */;
4159 val
* var17
/* : MClassDef */;
4160 val
* var19
/* : MClassDef */;
4161 val
* var20
/* : MClassType */;
4162 val
* var22
/* : MClassType */;
4166 { /* Inline modelize_property#MPropDef#has_supercall (var_mpropdef) on <var_mpropdef:MMethodDef> */
4167 var2
= var_mpropdef
->attrs
[COLOR_nit__modelize_property__MPropDef___has_supercall
].s
; /* _has_supercall on <var_mpropdef:MMethodDef> */
4172 if (unlikely(!var
)) {
4173 PRINT_ERROR("Runtime error: %s", "Assert failed");
4174 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 422);
4178 { /* Inline rapid_type_analysis#RapidTypeAnalysis#live_super_sends (self) on <self:RapidTypeAnalysis> */
4179 var5
= self
->attrs
[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___live_super_sends
].val
; /* _live_super_sends on <self:RapidTypeAnalysis> */
4180 if (unlikely(var5
== NULL
)) {
4181 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_super_sends");
4182 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 107);
4190 var6
= standard___standard__HashSet___standard__abstract_collection__Collection__has(var3
, var_mpropdef
);
4197 { /* Inline rapid_type_analysis#RapidTypeAnalysis#live_super_sends (self) on <self:RapidTypeAnalysis> */
4198 var9
= self
->attrs
[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___live_super_sends
].val
; /* _live_super_sends on <self:RapidTypeAnalysis> */
4199 if (unlikely(var9
== NULL
)) {
4200 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_super_sends");
4201 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 107);
4209 standard___standard__HashSet___standard__abstract_collection__SimpleCollection__add(var7
, var_mpropdef
); /* Direct call hash_collection#HashSet#add on <var7:HashSet[MMethodDef]>*/
4212 { /* Inline rapid_type_analysis#RapidTypeAnalysis#live_classes (self) on <self:RapidTypeAnalysis> */
4213 var12
= self
->attrs
[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___live_classes
].val
; /* _live_classes on <self:RapidTypeAnalysis> */
4214 if (unlikely(var12
== NULL
)) {
4215 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_classes");
4216 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 62);
4220 RET_LABEL11
:(void)0;
4225 var13
= standard___standard__HashSet___standard__abstract_collection__Collection__iterator(var_
);
4230 var15
= ((short int (*)(val
* self
))(var_14
->class->vft
[COLOR_standard__abstract_collection__Iterator__is_ok
]))(var_14
) /* is_ok on <var_14:Iterator[MClass]>*/;
4234 var16
= ((val
* (*)(val
* self
))(var_14
->class->vft
[COLOR_standard__abstract_collection__Iterator__item
]))(var_14
) /* item on <var_14:Iterator[MClass]>*/;
4238 { /* Inline model#MClass#intro (var_c) on <var_c:MClass> */
4239 var19
= var_c
->attrs
[COLOR_nit__model__MClass___intro
].val
; /* _intro on <var_c:MClass> */
4240 if (unlikely(var19
== NULL
)) {
4241 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro");
4242 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 423);
4246 RET_LABEL18
:(void)0;
4250 { /* Inline model#MClassDef#bound_mtype (var17) on <var17:MClassDef> */
4251 var22
= var17
->attrs
[COLOR_nit__model__MClassDef___bound_mtype
].val
; /* _bound_mtype on <var17:MClassDef> */
4252 if (unlikely(var22
== NULL
)) {
4253 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _bound_mtype");
4254 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 495);
4258 RET_LABEL21
:(void)0;
4262 nit___nit__RapidTypeAnalysis___try_super_send(self
, var20
, var_mpropdef
); /* Direct call rapid_type_analysis#RapidTypeAnalysis#try_super_send on <self:RapidTypeAnalysis>*/
4265 ((void (*)(val
* self
))(var_14
->class->vft
[COLOR_standard__abstract_collection__Iterator__next
]))(var_14
) /* next on <var_14:Iterator[MClass]>*/;
4271 BREAK_label
: (void)0;
4273 { /* Inline abstract_collection#Iterator#finish (var_14) on <var_14:Iterator[MClass]> */
4274 RET_LABEL23
:(void)0;
4279 /* method rapid_type_analysis#RapidTypeAnalysis#init for (self: RapidTypeAnalysis) */
4280 void nit___nit__RapidTypeAnalysis___standard__kernel__Object__init(val
* self
) {
4282 ((void (*)(val
* self
))(self
->class->vft
[COLOR_nit___nit__RapidTypeAnalysis___standard__kernel__Object__init
]))(self
) /* init on <self:RapidTypeAnalysis>*/;
4286 /* method rapid_type_analysis#RapidTypeVisitor#analysis for (self: RapidTypeVisitor): RapidTypeAnalysis */
4287 val
* nit___nit__RapidTypeVisitor___analysis(val
* self
) {
4288 val
* var
/* : RapidTypeAnalysis */;
4289 val
* var1
/* : RapidTypeAnalysis */;
4290 var1
= self
->attrs
[COLOR_nit__rapid_type_analysis__RapidTypeVisitor___analysis
].val
; /* _analysis on <self:RapidTypeVisitor> */
4291 if (unlikely(var1
== NULL
)) {
4292 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _analysis");
4293 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 435);
4300 /* method rapid_type_analysis#RapidTypeVisitor#analysis= for (self: RapidTypeVisitor, RapidTypeAnalysis) */
4301 void nit___nit__RapidTypeVisitor___analysis_61d(val
* self
, val
* p0
) {
4302 self
->attrs
[COLOR_nit__rapid_type_analysis__RapidTypeVisitor___analysis
].val
= p0
; /* _analysis on <self:RapidTypeVisitor> */
4305 /* method rapid_type_analysis#RapidTypeVisitor#receiver for (self: RapidTypeVisitor): MClassType */
4306 val
* nit___nit__RapidTypeVisitor___receiver(val
* self
) {
4307 val
* var
/* : MClassType */;
4308 val
* var1
/* : MClassType */;
4309 var1
= self
->attrs
[COLOR_nit__rapid_type_analysis__RapidTypeVisitor___receiver
].val
; /* _receiver on <self:RapidTypeVisitor> */
4310 if (unlikely(var1
== NULL
)) {
4311 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _receiver");
4312 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 436);
4319 /* method rapid_type_analysis#RapidTypeVisitor#receiver= for (self: RapidTypeVisitor, MClassType) */
4320 void nit___nit__RapidTypeVisitor___receiver_61d(val
* self
, val
* p0
) {
4321 self
->attrs
[COLOR_nit__rapid_type_analysis__RapidTypeVisitor___receiver
].val
= p0
; /* _receiver on <self:RapidTypeVisitor> */
4324 /* method rapid_type_analysis#RapidTypeVisitor#mpropdef= for (self: RapidTypeVisitor, MPropDef) */
4325 void nit___nit__RapidTypeVisitor___mpropdef_61d(val
* self
, val
* p0
) {
4326 self
->attrs
[COLOR_nit__rapid_type_analysis__RapidTypeVisitor___mpropdef
].val
= p0
; /* _mpropdef on <self:RapidTypeVisitor> */
4329 /* method rapid_type_analysis#RapidTypeVisitor#init for (self: RapidTypeVisitor) */
4330 void nit___nit__RapidTypeVisitor___standard__kernel__Object__init(val
* self
) {
4331 val
* var
/* : MClassType */;
4332 val
* var2
/* : MClassType */;
4333 short int var3
/* : Bool */;
4334 short int var4
/* : Bool */;
4336 ((void (*)(val
* self
))(self
->class->vft
[COLOR_nit___nit__RapidTypeVisitor___standard__kernel__Object__init
]))(self
) /* init on <self:RapidTypeVisitor>*/;
4339 { /* Inline rapid_type_analysis#RapidTypeVisitor#receiver (self) on <self:RapidTypeVisitor> */
4340 var2
= self
->attrs
[COLOR_nit__rapid_type_analysis__RapidTypeVisitor___receiver
].val
; /* _receiver on <self:RapidTypeVisitor> */
4341 if (unlikely(var2
== NULL
)) {
4342 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _receiver");
4343 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 436);
4351 var3
= ((short int (*)(val
* self
))(var
->class->vft
[COLOR_nit__model__MType__need_anchor
]))(var
) /* need_anchor on <var:MClassType>*/;
4354 if (unlikely(!var4
)) {
4355 PRINT_ERROR("Runtime error: %s", "Assert failed");
4356 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 441);
4361 /* method rapid_type_analysis#RapidTypeVisitor#visit for (self: RapidTypeVisitor, ANode) */
4362 void nit___nit__RapidTypeVisitor___nit__parser_nodes__Visitor__visit(val
* self
, val
* p0
) {
4363 val
* var_n
/* var n: ANode */;
4364 short int var
/* : Bool */;
4367 val
* var1
/* : nullable MType */;
4368 val
* var3
/* : nullable MType */;
4369 val
* var_implicit_cast_to
/* var implicit_cast_to: nullable MType */;
4370 val
* var4
/* : null */;
4371 short int var5
/* : Bool */;
4372 short int var6
/* : Bool */;
4373 val
* var_other
/* var other: nullable Object */;
4374 short int var8
/* : Bool */;
4375 short int var9
/* : Bool */;
4376 short int var10
/* : Bool */;
4379 short int var13
/* : Bool */;
4382 ((void (*)(val
* self
, val
* p0
))(var_n
->class->vft
[COLOR_nit__rapid_type_analysis__ANode__accept_rapid_type_visitor
]))(var_n
, self
) /* accept_rapid_type_visitor on <var_n:ANode>*/;
4384 /* <var_n:ANode> isa AExpr */
4385 cltype
= type_nit__AExpr
.color
;
4386 idtype
= type_nit__AExpr
.id
;
4387 if(cltype
>= var_n
->type
->table_size
) {
4390 var
= var_n
->type
->type_table
[cltype
] == idtype
;
4394 { /* Inline typing#AExpr#implicit_cast_to (var_n) on <var_n:ANode(AExpr)> */
4395 var3
= var_n
->attrs
[COLOR_nit__typing__AExpr___implicit_cast_to
].val
; /* _implicit_cast_to on <var_n:ANode(AExpr)> */
4400 var_implicit_cast_to
= var1
;
4402 if (var_implicit_cast_to
== NULL
) {
4403 var5
= 0; /* is null */
4405 var5
= 1; /* arg is null and recv is not */
4408 { /* Inline kernel#Object#!= (var_implicit_cast_to,var4) on <var_implicit_cast_to:nullable MType> */
4411 var8
= ((short int (*)(val
* self
, val
* p0
))(var_implicit_cast_to
->class->vft
[COLOR_standard__kernel__Object___61d_61d
]))(var_implicit_cast_to
, var_other
) /* == on <var_implicit_cast_to:nullable MType(MType)>*/;
4422 nit___nit__RapidTypeVisitor___add_cast_type(self
, var_implicit_cast_to
); /* Direct call rapid_type_analysis#RapidTypeVisitor#add_cast_type on <self:RapidTypeVisitor>*/
4428 /* <var_n:ANode> isa AAnnotations */
4429 cltype11
= type_nit__AAnnotations
.color
;
4430 idtype12
= type_nit__AAnnotations
.id
;
4431 if(cltype11
>= var_n
->type
->table_size
) {
4434 var10
= var_n
->type
->type_table
[cltype11
] == idtype12
;
4439 ((void (*)(val
* self
, val
* p0
))(var_n
->class->vft
[COLOR_nit__parser_nodes__ANode__visit_all
]))(var_n
, self
) /* visit_all on <var_n:ANode>*/;
4445 /* method rapid_type_analysis#RapidTypeVisitor#cleanup_type for (self: RapidTypeVisitor, MType): nullable MClassType */
4446 val
* nit___nit__RapidTypeVisitor___cleanup_type(val
* self
, val
* p0
) {
4447 val
* var
/* : nullable MClassType */;
4448 val
* var_mtype
/* var mtype: MType */;
4449 val
* var1
/* : RapidTypeAnalysis */;
4450 val
* var3
/* : RapidTypeAnalysis */;
4451 val
* var4
/* : MModule */;
4452 val
* var6
/* : MModule */;
4453 val
* var7
/* : MClassType */;
4454 val
* var9
/* : MClassType */;
4455 val
* var10
/* : MType */;
4456 short int var11
/* : Bool */;
4459 val
* var12
/* : null */;
4460 val
* var13
/* : MType */;
4461 short int var14
/* : Bool */;
4464 short int var17
/* : Bool */;
4465 short int var18
/* : Bool */;
4468 { /* Inline rapid_type_analysis#RapidTypeVisitor#analysis (self) on <self:RapidTypeVisitor> */
4469 var3
= self
->attrs
[COLOR_nit__rapid_type_analysis__RapidTypeVisitor___analysis
].val
; /* _analysis on <self:RapidTypeVisitor> */
4470 if (unlikely(var3
== NULL
)) {
4471 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _analysis");
4472 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 435);
4480 { /* Inline rapid_type_analysis#RapidTypeAnalysis#mainmodule (var1) on <var1:RapidTypeAnalysis> */
4481 var6
= var1
->attrs
[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___mainmodule
].val
; /* _mainmodule on <var1:RapidTypeAnalysis> */
4482 if (unlikely(var6
== NULL
)) {
4483 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule");
4484 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 49);
4492 { /* Inline rapid_type_analysis#RapidTypeVisitor#receiver (self) on <self:RapidTypeVisitor> */
4493 var9
= self
->attrs
[COLOR_nit__rapid_type_analysis__RapidTypeVisitor___receiver
].val
; /* _receiver on <self:RapidTypeVisitor> */
4494 if (unlikely(var9
== NULL
)) {
4495 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _receiver");
4496 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 436);
4504 var10
= ((val
* (*)(val
* self
, val
* p0
, val
* p1
))(var_mtype
->class->vft
[COLOR_nit__model__MType__anchor_to
]))(var_mtype
, var4
, var7
) /* anchor_to on <var_mtype:MType>*/;
4507 /* <var_mtype:MType> isa MNullType */
4508 cltype
= type_nit__MNullType
.color
;
4509 idtype
= type_nit__MNullType
.id
;
4510 if(cltype
>= var_mtype
->type
->table_size
) {
4513 var11
= var_mtype
->type
->type_table
[cltype
] == idtype
;
4522 var13
= ((val
* (*)(val
* self
))(var_mtype
->class->vft
[COLOR_nit__model__MType__as_notnullable
]))(var_mtype
) /* as_notnullable on <var_mtype:MType>*/;
4525 /* <var_mtype:MType> isa MClassType */
4526 cltype15
= type_nit__MClassType
.color
;
4527 idtype16
= type_nit__MClassType
.id
;
4528 if(cltype15
>= var_mtype
->type
->table_size
) {
4531 var14
= var_mtype
->type
->type_table
[cltype15
] == idtype16
;
4533 if (unlikely(!var14
)) {
4534 PRINT_ERROR("Runtime error: %s", "Assert failed");
4535 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 463);
4539 var17
= ((short int (*)(val
* self
))(var_mtype
->class->vft
[COLOR_nit__model__MType__need_anchor
]))(var_mtype
) /* need_anchor on <var_mtype:MType(MClassType)>*/;
4542 if (unlikely(!var18
)) {
4543 PRINT_ERROR("Runtime error: %s", "Assert failed");
4544 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 464);
4552 /* method rapid_type_analysis#RapidTypeVisitor#get_class for (self: RapidTypeVisitor, String): MClass */
4553 val
* nit___nit__RapidTypeVisitor___get_class(val
* self
, val
* p0
) {
4554 val
* var
/* : MClass */;
4555 val
* var_name
/* var name: String */;
4556 val
* var1
/* : RapidTypeAnalysis */;
4557 val
* var3
/* : RapidTypeAnalysis */;
4558 val
* var4
/* : MModule */;
4559 val
* var6
/* : MModule */;
4560 val
* var7
/* : MClass */;
4563 { /* Inline rapid_type_analysis#RapidTypeVisitor#analysis (self) on <self:RapidTypeVisitor> */
4564 var3
= self
->attrs
[COLOR_nit__rapid_type_analysis__RapidTypeVisitor___analysis
].val
; /* _analysis on <self:RapidTypeVisitor> */
4565 if (unlikely(var3
== NULL
)) {
4566 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _analysis");
4567 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 435);
4575 { /* Inline rapid_type_analysis#RapidTypeAnalysis#mainmodule (var1) on <var1:RapidTypeAnalysis> */
4576 var6
= var1
->attrs
[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___mainmodule
].val
; /* _mainmodule on <var1:RapidTypeAnalysis> */
4577 if (unlikely(var6
== NULL
)) {
4578 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule");
4579 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 49);
4587 var7
= nit__model___MModule___get_primitive_class(var4
, var_name
);
4594 /* method rapid_type_analysis#RapidTypeVisitor#get_method for (self: RapidTypeVisitor, MType, String): MMethod */
4595 val
* nit___nit__RapidTypeVisitor___get_method(val
* self
, val
* p0
, val
* p1
) {
4596 val
* var
/* : MMethod */;
4597 val
* var_recv
/* var recv: MType */;
4598 val
* var_name
/* var name: String */;
4599 val
* var1
/* : nullable MClassType */;
4600 val
* var_mtype
/* var mtype: nullable MClassType */;
4601 val
* var2
/* : null */;
4602 short int var3
/* : Bool */;
4603 short int var4
/* : Bool */;
4604 val
* var_other
/* var other: nullable Object */;
4605 short int var6
/* : Bool */;
4606 short int var7
/* : Bool */;
4607 val
* var8
/* : RapidTypeAnalysis */;
4608 val
* var10
/* : RapidTypeAnalysis */;
4609 val
* var11
/* : ModelBuilder */;
4610 val
* var13
/* : ModelBuilder */;
4611 val
* var14
/* : nullable ANode */;
4612 val
* var16
/* : nullable ANode */;
4613 val
* var17
/* : MClass */;
4614 val
* var19
/* : MClass */;
4615 val
* var20
/* : RapidTypeAnalysis */;
4616 val
* var22
/* : RapidTypeAnalysis */;
4617 val
* var23
/* : MModule */;
4618 val
* var25
/* : MModule */;
4619 val
* var26
/* : MMethod */;
4623 var1
= nit___nit__RapidTypeVisitor___cleanup_type(self
, var_recv
);
4627 if (var_mtype
== NULL
) {
4628 var3
= 0; /* is null */
4630 var3
= 1; /* arg is null and recv is not */
4633 { /* Inline kernel#Object#!= (var_mtype,var2) on <var_mtype:nullable MClassType> */
4636 var6
= ((short int (*)(val
* self
, val
* p0
))(var_mtype
->class->vft
[COLOR_standard__kernel__Object___61d_61d
]))(var_mtype
, var_other
) /* == on <var_mtype:nullable MClassType(MClassType)>*/;
4645 if (unlikely(!var3
)) {
4646 PRINT_ERROR("Runtime error: %s", "Assert failed");
4647 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 476);
4651 { /* Inline rapid_type_analysis#RapidTypeVisitor#analysis (self) on <self:RapidTypeVisitor> */
4652 var10
= self
->attrs
[COLOR_nit__rapid_type_analysis__RapidTypeVisitor___analysis
].val
; /* _analysis on <self:RapidTypeVisitor> */
4653 if (unlikely(var10
== NULL
)) {
4654 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _analysis");
4655 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 435);
4663 { /* Inline rapid_type_analysis#RapidTypeAnalysis#modelbuilder (var8) on <var8:RapidTypeAnalysis> */
4664 var13
= var8
->attrs
[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___modelbuilder
].val
; /* _modelbuilder on <var8:RapidTypeAnalysis> */
4665 if (unlikely(var13
== NULL
)) {
4666 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
4667 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 46);
4671 RET_LABEL12
:(void)0;
4675 { /* Inline parser_nodes#Visitor#current_node (self) on <self:RapidTypeVisitor> */
4676 var16
= self
->attrs
[COLOR_nit__parser_nodes__Visitor___current_node
].val
; /* _current_node on <self:RapidTypeVisitor> */
4678 RET_LABEL15
:(void)0;
4681 if (unlikely(var14
== NULL
)) {
4682 PRINT_ERROR("Runtime error: %s", "Cast failed");
4683 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 477);
4687 { /* Inline model#MClassType#mclass (var_mtype) on <var_mtype:nullable MClassType(MClassType)> */
4688 var19
= var_mtype
->attrs
[COLOR_nit__model__MClassType___mclass
].val
; /* _mclass on <var_mtype:nullable MClassType(MClassType)> */
4689 if (unlikely(var19
== NULL
)) {
4690 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
4691 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 1058);
4695 RET_LABEL18
:(void)0;
4699 { /* Inline rapid_type_analysis#RapidTypeVisitor#analysis (self) on <self:RapidTypeVisitor> */
4700 var22
= self
->attrs
[COLOR_nit__rapid_type_analysis__RapidTypeVisitor___analysis
].val
; /* _analysis on <self:RapidTypeVisitor> */
4701 if (unlikely(var22
== NULL
)) {
4702 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _analysis");
4703 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 435);
4707 RET_LABEL21
:(void)0;
4711 { /* Inline rapid_type_analysis#RapidTypeAnalysis#mainmodule (var20) on <var20:RapidTypeAnalysis> */
4712 var25
= var20
->attrs
[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___mainmodule
].val
; /* _mainmodule on <var20:RapidTypeAnalysis> */
4713 if (unlikely(var25
== NULL
)) {
4714 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule");
4715 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 49);
4719 RET_LABEL24
:(void)0;
4723 var26
= nit___nit__ModelBuilder___force_get_primitive_method(var11
, var14
, var_name
, var17
, var23
);
4730 /* method rapid_type_analysis#RapidTypeVisitor#add_type for (self: RapidTypeVisitor, MClassType) */
4731 void nit___nit__RapidTypeVisitor___add_type(val
* self
, val
* p0
) {
4732 val
* var_mtype
/* var mtype: MClassType */;
4733 val
* var
/* : RapidTypeAnalysis */;
4734 val
* var2
/* : RapidTypeAnalysis */;
4735 val
* var3
/* : MClassType */;
4736 val
* var5
/* : MClassType */;
4739 { /* Inline rapid_type_analysis#RapidTypeVisitor#analysis (self) on <self:RapidTypeVisitor> */
4740 var2
= self
->attrs
[COLOR_nit__rapid_type_analysis__RapidTypeVisitor___analysis
].val
; /* _analysis on <self:RapidTypeVisitor> */
4741 if (unlikely(var2
== NULL
)) {
4742 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _analysis");
4743 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 435);
4751 { /* Inline rapid_type_analysis#RapidTypeVisitor#receiver (self) on <self:RapidTypeVisitor> */
4752 var5
= self
->attrs
[COLOR_nit__rapid_type_analysis__RapidTypeVisitor___receiver
].val
; /* _receiver on <self:RapidTypeVisitor> */
4753 if (unlikely(var5
== NULL
)) {
4754 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _receiver");
4755 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 436);
4763 nit___nit__RapidTypeAnalysis___add_new(var
, var3
, var_mtype
); /* Direct call rapid_type_analysis#RapidTypeAnalysis#add_new on <var:RapidTypeAnalysis>*/
4767 /* method rapid_type_analysis#RapidTypeVisitor#add_monomorphic_send for (self: RapidTypeVisitor, MType, MMethod) */
4768 void nit___nit__RapidTypeVisitor___add_monomorphic_send(val
* self
, val
* p0
, val
* p1
) {
4769 val
* var_mtype
/* var mtype: MType */;
4770 val
* var_mproperty
/* var mproperty: MMethod */;
4771 val
* var
/* : RapidTypeAnalysis */;
4772 val
* var2
/* : RapidTypeAnalysis */;
4773 val
* var3
/* : HashSet[MMethod] */;
4774 val
* var5
/* : HashSet[MMethod] */;
4775 val
* var6
/* : RapidTypeAnalysis */;
4776 val
* var8
/* : RapidTypeAnalysis */;
4777 short int var9
/* : Bool */;
4780 const char* var_class_name
;
4784 { /* Inline rapid_type_analysis#RapidTypeVisitor#analysis (self) on <self:RapidTypeVisitor> */
4785 var2
= self
->attrs
[COLOR_nit__rapid_type_analysis__RapidTypeVisitor___analysis
].val
; /* _analysis on <self:RapidTypeVisitor> */
4786 if (unlikely(var2
== NULL
)) {
4787 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _analysis");
4788 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 435);
4796 { /* Inline rapid_type_analysis#RapidTypeAnalysis#live_methods (var) on <var:RapidTypeAnalysis> */
4797 var5
= var
->attrs
[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___live_methods
].val
; /* _live_methods on <var:RapidTypeAnalysis> */
4798 if (unlikely(var5
== NULL
)) {
4799 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_methods");
4800 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 75);
4808 standard___standard__HashSet___standard__abstract_collection__SimpleCollection__add(var3
, var_mproperty
); /* Direct call hash_collection#HashSet#add on <var3:HashSet[MMethod]>*/
4811 { /* Inline rapid_type_analysis#RapidTypeVisitor#analysis (self) on <self:RapidTypeVisitor> */
4812 var8
= self
->attrs
[COLOR_nit__rapid_type_analysis__RapidTypeVisitor___analysis
].val
; /* _analysis on <self:RapidTypeVisitor> */
4813 if (unlikely(var8
== NULL
)) {
4814 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _analysis");
4815 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 435);
4822 /* <var_mtype:MType> isa MClassType */
4823 cltype
= type_nit__MClassType
.color
;
4824 idtype
= type_nit__MClassType
.id
;
4825 if(cltype
>= var_mtype
->type
->table_size
) {
4828 var9
= var_mtype
->type
->type_table
[cltype
] == idtype
;
4830 if (unlikely(!var9
)) {
4831 var_class_name
= var_mtype
== NULL ?
"null" : var_mtype
->type
->name
;
4832 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "MClassType", var_class_name
);
4833 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 485);
4837 nit___nit__RapidTypeAnalysis___try_send(var6
, var_mtype
, var_mproperty
); /* Direct call rapid_type_analysis#RapidTypeAnalysis#try_send on <var6:RapidTypeAnalysis>*/
4841 /* method rapid_type_analysis#RapidTypeVisitor#add_cast_type for (self: RapidTypeVisitor, MType) */
4842 void nit___nit__RapidTypeVisitor___add_cast_type(val
* self
, val
* p0
) {
4843 val
* var_mtype
/* var mtype: MType */;
4844 val
* var
/* : RapidTypeAnalysis */;
4845 val
* var2
/* : RapidTypeAnalysis */;
4848 { /* Inline rapid_type_analysis#RapidTypeVisitor#analysis (self) on <self:RapidTypeVisitor> */
4849 var2
= self
->attrs
[COLOR_nit__rapid_type_analysis__RapidTypeVisitor___analysis
].val
; /* _analysis on <self:RapidTypeVisitor> */
4850 if (unlikely(var2
== NULL
)) {
4851 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _analysis");
4852 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 435);
4860 nit___nit__RapidTypeAnalysis___add_cast(var
, var_mtype
); /* Direct call rapid_type_analysis#RapidTypeAnalysis#add_cast on <var:RapidTypeAnalysis>*/
4864 /* method rapid_type_analysis#RapidTypeVisitor#add_callsite for (self: RapidTypeVisitor, nullable CallSite) */
4865 void nit___nit__RapidTypeVisitor___add_callsite(val
* self
, val
* p0
) {
4866 val
* var_callsite
/* var callsite: nullable CallSite */;
4867 val
* var
/* : null */;
4868 short int var1
/* : Bool */;
4869 short int var2
/* : Bool */;
4870 val
* var_other
/* var other: nullable Object */;
4871 short int var4
/* : Bool */;
4872 short int var5
/* : Bool */;
4873 val
* var6
/* : MMethodDef */;
4874 val
* var8
/* : MMethodDef */;
4875 val
* var9
/* : Array[MProperty] */;
4876 val
* var11
/* : Array[MProperty] */;
4877 val
* var_
/* var : Array[MProperty] */;
4878 val
* var12
/* : ArrayIterator[nullable Object] */;
4879 val
* var_13
/* var : ArrayIterator[MProperty] */;
4880 short int var14
/* : Bool */;
4881 val
* var15
/* : nullable Object */;
4882 val
* var_m
/* var m: MProperty */;
4883 short int var16
/* : Bool */;
4886 val
* var17
/* : RapidTypeAnalysis */;
4887 val
* var19
/* : RapidTypeAnalysis */;
4888 val
* var20
/* : MType */;
4889 val
* var22
/* : MType */;
4890 val
* var24
/* : RapidTypeAnalysis */;
4891 val
* var26
/* : RapidTypeAnalysis */;
4892 val
* var27
/* : MType */;
4893 val
* var29
/* : MType */;
4894 val
* var30
/* : MMethod */;
4895 val
* var32
/* : MMethod */;
4896 val
* var33
/* : RapidTypeAnalysis */;
4897 val
* var35
/* : RapidTypeAnalysis */;
4898 val
* var36
/* : HashSet[CallSite] */;
4899 val
* var38
/* : HashSet[CallSite] */;
4902 if (var_callsite
== NULL
) {
4903 var1
= 0; /* is null */
4905 var1
= 1; /* arg is null and recv is not */
4908 { /* Inline kernel#Object#!= (var_callsite,var) on <var_callsite:nullable CallSite> */
4911 var4
= ((short int (*)(val
* self
, val
* p0
))(var_callsite
->class->vft
[COLOR_standard__kernel__Object___61d_61d
]))(var_callsite
, var_other
) /* == on <var_callsite:nullable CallSite(CallSite)>*/;
4922 { /* Inline typing#CallSite#mpropdef (var_callsite) on <var_callsite:nullable CallSite(CallSite)> */
4923 var8
= var_callsite
->attrs
[COLOR_nit__typing__CallSite___mpropdef
].val
; /* _mpropdef on <var_callsite:nullable CallSite(CallSite)> */
4924 if (unlikely(var8
== NULL
)) {
4925 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mpropdef");
4926 PRINT_ERROR(" (%s:%d)\n", FILE_nit__typing
, 490);
4934 { /* Inline model#MMethodDef#initializers (var6) on <var6:MMethodDef> */
4935 var11
= var6
->attrs
[COLOR_nit__model__MMethodDef___initializers
].val
; /* _initializers on <var6:MMethodDef> */
4936 if (unlikely(var11
== NULL
)) {
4937 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _initializers");
4938 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 2146);
4942 RET_LABEL10
:(void)0;
4947 var12
= standard___standard__AbstractArrayRead___standard__abstract_collection__Collection__iterator(var_
);
4952 var14
= standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__is_ok(var_13
);
4956 var15
= standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__item(var_13
);
4959 /* <var_m:MProperty> isa MMethod */
4960 cltype
= type_nit__MMethod
.color
;
4961 idtype
= type_nit__MMethod
.id
;
4962 if(cltype
>= var_m
->type
->table_size
) {
4965 var16
= var_m
->type
->type_table
[cltype
] == idtype
;
4969 { /* Inline rapid_type_analysis#RapidTypeVisitor#analysis (self) on <self:RapidTypeVisitor> */
4970 var19
= self
->attrs
[COLOR_nit__rapid_type_analysis__RapidTypeVisitor___analysis
].val
; /* _analysis on <self:RapidTypeVisitor> */
4971 if (unlikely(var19
== NULL
)) {
4972 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _analysis");
4973 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 435);
4977 RET_LABEL18
:(void)0;
4981 { /* Inline typing#CallSite#recv (var_callsite) on <var_callsite:nullable CallSite(CallSite)> */
4982 var22
= var_callsite
->attrs
[COLOR_nit__typing__CallSite___recv
].val
; /* _recv on <var_callsite:nullable CallSite(CallSite)> */
4983 if (unlikely(var22
== NULL
)) {
4984 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _recv");
4985 PRINT_ERROR(" (%s:%d)\n", FILE_nit__typing
, 473);
4989 RET_LABEL21
:(void)0;
4993 nit___nit__RapidTypeAnalysis___add_send(var17
, var20
, var_m
); /* Direct call rapid_type_analysis#RapidTypeAnalysis#add_send on <var17:RapidTypeAnalysis>*/
4998 standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__next(var_13
); /* Direct call array#ArrayIterator#next on <var_13:ArrayIterator[MProperty]>*/
5004 BREAK_label
: (void)0;
5006 { /* Inline abstract_collection#Iterator#finish (var_13) on <var_13:ArrayIterator[MProperty]> */
5007 RET_LABEL23
:(void)0;
5011 { /* Inline rapid_type_analysis#RapidTypeVisitor#analysis (self) on <self:RapidTypeVisitor> */
5012 var26
= self
->attrs
[COLOR_nit__rapid_type_analysis__RapidTypeVisitor___analysis
].val
; /* _analysis on <self:RapidTypeVisitor> */
5013 if (unlikely(var26
== NULL
)) {
5014 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _analysis");
5015 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 435);
5019 RET_LABEL25
:(void)0;
5023 { /* Inline typing#CallSite#recv (var_callsite) on <var_callsite:nullable CallSite(CallSite)> */
5024 var29
= var_callsite
->attrs
[COLOR_nit__typing__CallSite___recv
].val
; /* _recv on <var_callsite:nullable CallSite(CallSite)> */
5025 if (unlikely(var29
== NULL
)) {
5026 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _recv");
5027 PRINT_ERROR(" (%s:%d)\n", FILE_nit__typing
, 473);
5031 RET_LABEL28
:(void)0;
5035 { /* Inline typing#CallSite#mproperty (var_callsite) on <var_callsite:nullable CallSite(CallSite)> */
5036 var32
= var_callsite
->attrs
[COLOR_nit__typing__CallSite___mproperty
].val
; /* _mproperty on <var_callsite:nullable CallSite(CallSite)> */
5037 if (unlikely(var32
== NULL
)) {
5038 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty");
5039 PRINT_ERROR(" (%s:%d)\n", FILE_nit__typing
, 487);
5043 RET_LABEL31
:(void)0;
5047 nit___nit__RapidTypeAnalysis___add_send(var24
, var27
, var30
); /* Direct call rapid_type_analysis#RapidTypeAnalysis#add_send on <var24:RapidTypeAnalysis>*/
5050 { /* Inline rapid_type_analysis#RapidTypeVisitor#analysis (self) on <self:RapidTypeVisitor> */
5051 var35
= self
->attrs
[COLOR_nit__rapid_type_analysis__RapidTypeVisitor___analysis
].val
; /* _analysis on <self:RapidTypeVisitor> */
5052 if (unlikely(var35
== NULL
)) {
5053 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _analysis");
5054 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 435);
5058 RET_LABEL34
:(void)0;
5062 { /* Inline rapid_type_analysis#RapidTypeAnalysis#live_callsites (var33) on <var33:RapidTypeAnalysis> */
5063 var38
= var33
->attrs
[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___live_callsites
].val
; /* _live_callsites on <var33:RapidTypeAnalysis> */
5064 if (unlikely(var38
== NULL
)) {
5065 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_callsites");
5066 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 78);
5070 RET_LABEL37
:(void)0;
5074 standard___standard__HashSet___standard__abstract_collection__SimpleCollection__add(var36
, var_callsite
); /* Direct call hash_collection#HashSet#add on <var36:HashSet[CallSite]>*/
5080 /* method rapid_type_analysis#ANode#accept_rapid_type_visitor for (self: ANode, RapidTypeVisitor) */
5081 void nit__rapid_type_analysis___ANode___accept_rapid_type_visitor(val
* self
, val
* p0
) {
5082 val
* var_v
/* var v: RapidTypeVisitor */;
5086 /* method rapid_type_analysis#AIntExpr#accept_rapid_type_visitor for (self: AIntExpr, RapidTypeVisitor) */
5087 void nit__rapid_type_analysis___AIntExpr___ANode__accept_rapid_type_visitor(val
* self
, val
* p0
) {
5088 val
* var_v
/* var v: RapidTypeVisitor */;
5089 val
* var
/* : nullable MType */;
5090 val
* var2
/* : nullable MType */;
5091 short int var3
/* : Bool */;
5094 const char* var_class_name
;
5097 { /* Inline typing#AExpr#mtype (self) on <self:AIntExpr> */
5098 var2
= self
->attrs
[COLOR_nit__typing__AExpr___mtype
].val
; /* _mtype on <self:AIntExpr> */
5103 /* <var:nullable MType> isa MClassType */
5104 cltype
= type_nit__MClassType
.color
;
5105 idtype
= type_nit__MClassType
.id
;
5109 if(cltype
>= var
->type
->table_size
) {
5112 var3
= var
->type
->type_table
[cltype
] == idtype
;
5115 if (unlikely(!var3
)) {
5116 var_class_name
= var
== NULL ?
"null" : var
->type
->name
;
5117 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "MClassType", var_class_name
);
5118 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 514);
5122 nit___nit__RapidTypeVisitor___add_type(var_v
, var
); /* Direct call rapid_type_analysis#RapidTypeVisitor#add_type on <var_v:RapidTypeVisitor>*/
5126 /* method rapid_type_analysis#AFloatExpr#accept_rapid_type_visitor for (self: AFloatExpr, RapidTypeVisitor) */
5127 void nit__rapid_type_analysis___AFloatExpr___ANode__accept_rapid_type_visitor(val
* self
, val
* p0
) {
5128 val
* var_v
/* var v: RapidTypeVisitor */;
5129 val
* var
/* : nullable MType */;
5130 val
* var2
/* : nullable MType */;
5131 short int var3
/* : Bool */;
5134 const char* var_class_name
;
5137 { /* Inline typing#AExpr#mtype (self) on <self:AFloatExpr> */
5138 var2
= self
->attrs
[COLOR_nit__typing__AExpr___mtype
].val
; /* _mtype on <self:AFloatExpr> */
5143 /* <var:nullable MType> isa MClassType */
5144 cltype
= type_nit__MClassType
.color
;
5145 idtype
= type_nit__MClassType
.id
;
5149 if(cltype
>= var
->type
->table_size
) {
5152 var3
= var
->type
->type_table
[cltype
] == idtype
;
5155 if (unlikely(!var3
)) {
5156 var_class_name
= var
== NULL ?
"null" : var
->type
->name
;
5157 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "MClassType", var_class_name
);
5158 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 521);
5162 nit___nit__RapidTypeVisitor___add_type(var_v
, var
); /* Direct call rapid_type_analysis#RapidTypeVisitor#add_type on <var_v:RapidTypeVisitor>*/
5166 /* method rapid_type_analysis#ACharExpr#accept_rapid_type_visitor for (self: ACharExpr, RapidTypeVisitor) */
5167 void nit__rapid_type_analysis___ACharExpr___ANode__accept_rapid_type_visitor(val
* self
, val
* p0
) {
5168 val
* var_v
/* var v: RapidTypeVisitor */;
5169 val
* var
/* : nullable MType */;
5170 val
* var2
/* : nullable MType */;
5171 short int var3
/* : Bool */;
5174 const char* var_class_name
;
5177 { /* Inline typing#AExpr#mtype (self) on <self:ACharExpr> */
5178 var2
= self
->attrs
[COLOR_nit__typing__AExpr___mtype
].val
; /* _mtype on <self:ACharExpr> */
5183 /* <var:nullable MType> isa MClassType */
5184 cltype
= type_nit__MClassType
.color
;
5185 idtype
= type_nit__MClassType
.id
;
5189 if(cltype
>= var
->type
->table_size
) {
5192 var3
= var
->type
->type_table
[cltype
] == idtype
;
5195 if (unlikely(!var3
)) {
5196 var_class_name
= var
== NULL ?
"null" : var
->type
->name
;
5197 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "MClassType", var_class_name
);
5198 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 528);
5202 nit___nit__RapidTypeVisitor___add_type(var_v
, var
); /* Direct call rapid_type_analysis#RapidTypeVisitor#add_type on <var_v:RapidTypeVisitor>*/
5206 /* method rapid_type_analysis#AArrayExpr#accept_rapid_type_visitor for (self: AArrayExpr, RapidTypeVisitor) */
5207 void nit__rapid_type_analysis___AArrayExpr___ANode__accept_rapid_type_visitor(val
* self
, val
* p0
) {
5208 val
* var_v
/* var v: RapidTypeVisitor */;
5209 val
* var
/* : nullable MType */;
5210 val
* var2
/* : nullable MType */;
5211 short int var3
/* : Bool */;
5214 const char* var_class_name
;
5215 val
* var_mtype
/* var mtype: MClassType */;
5216 val
* var4
/* : RapidTypeAnalysis */;
5217 val
* var6
/* : RapidTypeAnalysis */;
5218 val
* var7
/* : MModule */;
5219 val
* var9
/* : MModule */;
5220 static val
* varonce
;
5221 val
* var10
/* : String */;
5222 char* var11
/* : NativeString */;
5223 long var12
/* : Int */;
5224 val
* var13
/* : FlatString */;
5225 val
* var14
/* : MClass */;
5226 val
* var15
/* : Array[MType] */;
5227 long var16
/* : Int */;
5228 val
* var_
/* var : Array[MType] */;
5229 val
* var17
/* : Array[MType] */;
5230 val
* var18
/* : nullable Object */;
5231 val
* var19
/* : MClassType */;
5232 val
* var_native
/* var native: MClassType */;
5233 val
* var20
/* : nullable MClassType */;
5234 static val
* varonce21
;
5235 val
* var22
/* : String */;
5236 char* var23
/* : NativeString */;
5237 long var24
/* : Int */;
5238 val
* var25
/* : FlatString */;
5239 val
* var26
/* : MMethod */;
5240 val
* var_prop
/* var prop: MMethod */;
5243 { /* Inline typing#AExpr#mtype (self) on <self:AArrayExpr> */
5244 var2
= self
->attrs
[COLOR_nit__typing__AExpr___mtype
].val
; /* _mtype on <self:AArrayExpr> */
5249 /* <var:nullable MType> isa MClassType */
5250 cltype
= type_nit__MClassType
.color
;
5251 idtype
= type_nit__MClassType
.id
;
5255 if(cltype
>= var
->type
->table_size
) {
5258 var3
= var
->type
->type_table
[cltype
] == idtype
;
5261 if (unlikely(!var3
)) {
5262 var_class_name
= var
== NULL ?
"null" : var
->type
->name
;
5263 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "MClassType", var_class_name
);
5264 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 535);
5269 nit___nit__RapidTypeVisitor___add_type(var_v
, var_mtype
); /* Direct call rapid_type_analysis#RapidTypeVisitor#add_type on <var_v:RapidTypeVisitor>*/
5272 { /* Inline rapid_type_analysis#RapidTypeVisitor#analysis (var_v) on <var_v:RapidTypeVisitor> */
5273 var6
= var_v
->attrs
[COLOR_nit__rapid_type_analysis__RapidTypeVisitor___analysis
].val
; /* _analysis on <var_v:RapidTypeVisitor> */
5274 if (unlikely(var6
== NULL
)) {
5275 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _analysis");
5276 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 435);
5284 { /* Inline rapid_type_analysis#RapidTypeAnalysis#mainmodule (var4) on <var4:RapidTypeAnalysis> */
5285 var9
= var4
->attrs
[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___mainmodule
].val
; /* _mainmodule on <var4:RapidTypeAnalysis> */
5286 if (unlikely(var9
== NULL
)) {
5287 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule");
5288 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 49);
5298 var11
= "NativeArray";
5300 var13
= standard___standard__NativeString___to_s_with_length(var11
, var12
);
5305 var14
= nit__model___MModule___get_primitive_class(var7
, var10
);
5307 var15
= NEW_standard__Array(&type_standard__Array__nit__MType
);
5310 standard___standard__Array___with_capacity(var15
, var16
); /* Direct call array#Array#with_capacity on <var15:Array[MType]>*/
5314 var17
= ((val
* (*)(val
* self
))(var_mtype
->class->vft
[COLOR_nit__model__MClassType__arguments
]))(var_mtype
) /* arguments on <var_mtype:MClassType>*/;
5317 var18
= standard___standard__SequenceRead___Collection__first(var17
);
5320 standard___standard__AbstractArray___standard__abstract_collection__Sequence__push(var_
, var18
); /* Direct call array#AbstractArray#push on <var_:Array[MType]>*/
5323 var19
= nit___nit__MClass___get_mtype(var14
, var_
);
5327 nit___nit__RapidTypeVisitor___add_type(var_v
, var_native
); /* Direct call rapid_type_analysis#RapidTypeVisitor#add_type on <var_v:RapidTypeVisitor>*/
5330 var20
= nit___nit__RapidTypeVisitor___cleanup_type(var_v
, var_mtype
);
5332 if (unlikely(var20
== NULL
)) {
5333 PRINT_ERROR("Runtime error: %s", "Cast failed");
5334 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 539);
5341 var23
= "with_native";
5343 var25
= standard___standard__NativeString___to_s_with_length(var23
, var24
);
5348 var26
= nit___nit__RapidTypeVisitor___get_method(var_v
, var_mtype
, var22
);
5352 nit___nit__RapidTypeVisitor___add_monomorphic_send(var_v
, var_mtype
, var_prop
); /* Direct call rapid_type_analysis#RapidTypeVisitor#add_monomorphic_send on <var_v:RapidTypeVisitor>*/
5356 /* method rapid_type_analysis#AStringFormExpr#accept_rapid_type_visitor for (self: AStringFormExpr, RapidTypeVisitor) */
5357 void nit__rapid_type_analysis___AStringFormExpr___ANode__accept_rapid_type_visitor(val
* self
, val
* p0
) {
5358 val
* var_v
/* var v: RapidTypeVisitor */;
5359 static val
* varonce
;
5360 val
* var
/* : String */;
5361 char* var1
/* : NativeString */;
5362 long var2
/* : Int */;
5363 val
* var3
/* : FlatString */;
5364 val
* var4
/* : MClass */;
5365 val
* var5
/* : MClassType */;
5366 val
* var7
/* : MClassType */;
5367 val
* var_native
/* var native: MClassType */;
5368 static val
* varonce8
;
5369 val
* var9
/* : String */;
5370 char* var10
/* : NativeString */;
5371 long var11
/* : Int */;
5372 val
* var12
/* : FlatString */;
5373 val
* var13
/* : MMethod */;
5374 val
* var_prop
/* var prop: MMethod */;
5379 var1
= "NativeString";
5381 var3
= standard___standard__NativeString___to_s_with_length(var1
, var2
);
5386 var4
= nit___nit__RapidTypeVisitor___get_class(var_v
, var
);
5389 { /* Inline model#MClass#mclass_type (var4) on <var4:MClass> */
5390 var7
= var4
->attrs
[COLOR_nit__model__MClass___mclass_type
].val
; /* _mclass_type on <var4:MClass> */
5391 if (unlikely(var7
== NULL
)) {
5392 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass_type");
5393 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 438);
5402 nit___nit__RapidTypeVisitor___add_type(var_v
, var_native
); /* Direct call rapid_type_analysis#RapidTypeVisitor#add_type on <var_v:RapidTypeVisitor>*/
5407 var10
= "to_s_with_length";
5409 var12
= standard___standard__NativeString___to_s_with_length(var10
, var11
);
5414 var13
= nit___nit__RapidTypeVisitor___get_method(var_v
, var_native
, var9
);
5418 nit___nit__RapidTypeVisitor___add_monomorphic_send(var_v
, var_native
, var_prop
); /* Direct call rapid_type_analysis#RapidTypeVisitor#add_monomorphic_send on <var_v:RapidTypeVisitor>*/
5422 /* method rapid_type_analysis#ASuperstringExpr#accept_rapid_type_visitor for (self: ASuperstringExpr, RapidTypeVisitor) */
5423 void nit__rapid_type_analysis___ASuperstringExpr___ANode__accept_rapid_type_visitor(val
* self
, val
* p0
) {
5424 val
* var_v
/* var v: RapidTypeVisitor */;
5425 static val
* varonce
;
5426 val
* var
/* : String */;
5427 char* var1
/* : NativeString */;
5428 long var2
/* : Int */;
5429 val
* var3
/* : FlatString */;
5430 val
* var4
/* : MClass */;
5431 val
* var5
/* : Array[MClassType] */;
5432 long var6
/* : Int */;
5433 val
* var_
/* var : Array[MClassType] */;
5434 static val
* varonce7
;
5435 val
* var8
/* : String */;
5436 char* var9
/* : NativeString */;
5437 long var10
/* : Int */;
5438 val
* var11
/* : FlatString */;
5439 val
* var12
/* : MClass */;
5440 val
* var13
/* : MClassType */;
5441 val
* var15
/* : MClassType */;
5442 val
* var16
/* : MClassType */;
5443 val
* var_arraytype
/* var arraytype: MClassType */;
5444 static val
* varonce17
;
5445 val
* var18
/* : String */;
5446 char* var19
/* : NativeString */;
5447 long var20
/* : Int */;
5448 val
* var21
/* : FlatString */;
5449 val
* var22
/* : MClass */;
5450 val
* var23
/* : Array[MClassType] */;
5451 long var24
/* : Int */;
5452 val
* var_25
/* var : Array[MClassType] */;
5453 static val
* varonce26
;
5454 val
* var27
/* : String */;
5455 char* var28
/* : NativeString */;
5456 long var29
/* : Int */;
5457 val
* var30
/* : FlatString */;
5458 val
* var31
/* : MClass */;
5459 val
* var32
/* : MClassType */;
5460 val
* var34
/* : MClassType */;
5461 val
* var35
/* : MClassType */;
5462 static val
* varonce36
;
5463 val
* var37
/* : String */;
5464 char* var38
/* : NativeString */;
5465 long var39
/* : Int */;
5466 val
* var40
/* : FlatString */;
5467 val
* var41
/* : MMethod */;
5468 val
* var_prop
/* var prop: MMethod */;
5469 static val
* varonce42
;
5470 val
* var43
/* : String */;
5471 char* var44
/* : NativeString */;
5472 long var45
/* : Int */;
5473 val
* var46
/* : FlatString */;
5474 val
* var47
/* : MMethod */;
5475 val
* var_prop2
/* var prop2: MMethod */;
5482 var3
= standard___standard__NativeString___to_s_with_length(var1
, var2
);
5487 var4
= nit___nit__RapidTypeVisitor___get_class(var_v
, var
);
5489 var5
= NEW_standard__Array(&type_standard__Array__nit__MClassType
);
5492 standard___standard__Array___with_capacity(var5
, var6
); /* Direct call array#Array#with_capacity on <var5:Array[MClassType]>*/
5500 var11
= standard___standard__NativeString___to_s_with_length(var9
, var10
);
5505 var12
= nit___nit__RapidTypeVisitor___get_class(var_v
, var8
);
5508 { /* Inline model#MClass#mclass_type (var12) on <var12:MClass> */
5509 var15
= var12
->attrs
[COLOR_nit__model__MClass___mclass_type
].val
; /* _mclass_type on <var12:MClass> */
5510 if (unlikely(var15
== NULL
)) {
5511 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass_type");
5512 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 438);
5516 RET_LABEL14
:(void)0;
5520 standard___standard__AbstractArray___standard__abstract_collection__Sequence__push(var_
, var13
); /* Direct call array#AbstractArray#push on <var_:Array[MClassType]>*/
5523 var16
= nit___nit__MClass___get_mtype(var4
, var_
);
5525 var_arraytype
= var16
;
5527 nit___nit__RapidTypeVisitor___add_type(var_v
, var_arraytype
); /* Direct call rapid_type_analysis#RapidTypeVisitor#add_type on <var_v:RapidTypeVisitor>*/
5532 var19
= "NativeArray";
5534 var21
= standard___standard__NativeString___to_s_with_length(var19
, var20
);
5539 var22
= nit___nit__RapidTypeVisitor___get_class(var_v
, var18
);
5541 var23
= NEW_standard__Array(&type_standard__Array__nit__MClassType
);
5544 standard___standard__Array___with_capacity(var23
, var24
); /* Direct call array#Array#with_capacity on <var23:Array[MClassType]>*/
5552 var30
= standard___standard__NativeString___to_s_with_length(var28
, var29
);
5557 var31
= nit___nit__RapidTypeVisitor___get_class(var_v
, var27
);
5560 { /* Inline model#MClass#mclass_type (var31) on <var31:MClass> */
5561 var34
= var31
->attrs
[COLOR_nit__model__MClass___mclass_type
].val
; /* _mclass_type on <var31:MClass> */
5562 if (unlikely(var34
== NULL
)) {
5563 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass_type");
5564 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 438);
5568 RET_LABEL33
:(void)0;
5572 standard___standard__AbstractArray___standard__abstract_collection__Sequence__push(var_25
, var32
); /* Direct call array#AbstractArray#push on <var_25:Array[MClassType]>*/
5575 var35
= nit___nit__MClass___get_mtype(var22
, var_25
);
5578 nit___nit__RapidTypeVisitor___add_type(var_v
, var35
); /* Direct call rapid_type_analysis#RapidTypeVisitor#add_type on <var_v:RapidTypeVisitor>*/
5585 var40
= standard___standard__NativeString___to_s_with_length(var38
, var39
);
5590 var41
= nit___nit__RapidTypeVisitor___get_method(var_v
, var_arraytype
, var37
);
5594 nit___nit__RapidTypeVisitor___add_monomorphic_send(var_v
, var_arraytype
, var_prop
); /* Direct call rapid_type_analysis#RapidTypeVisitor#add_monomorphic_send on <var_v:RapidTypeVisitor>*/
5599 var44
= "with_native";
5601 var46
= standard___standard__NativeString___to_s_with_length(var44
, var45
);
5606 var47
= nit___nit__RapidTypeVisitor___get_method(var_v
, var_arraytype
, var43
);
5610 nit___nit__RapidTypeVisitor___add_monomorphic_send(var_v
, var_arraytype
, var_prop2
); /* Direct call rapid_type_analysis#RapidTypeVisitor#add_monomorphic_send on <var_v:RapidTypeVisitor>*/
5614 /* method rapid_type_analysis#ACrangeExpr#accept_rapid_type_visitor for (self: ACrangeExpr, RapidTypeVisitor) */
5615 void nit__rapid_type_analysis___ACrangeExpr___ANode__accept_rapid_type_visitor(val
* self
, val
* p0
) {
5616 val
* var_v
/* var v: RapidTypeVisitor */;
5617 val
* var
/* : nullable MType */;
5618 val
* var2
/* : nullable MType */;
5619 short int var3
/* : Bool */;
5622 const char* var_class_name
;
5623 val
* var_mtype
/* var mtype: MClassType */;
5624 val
* var4
/* : nullable CallSite */;
5625 val
* var6
/* : nullable CallSite */;
5628 { /* Inline typing#AExpr#mtype (self) on <self:ACrangeExpr> */
5629 var2
= self
->attrs
[COLOR_nit__typing__AExpr___mtype
].val
; /* _mtype on <self:ACrangeExpr> */
5634 /* <var:nullable MType> isa MClassType */
5635 cltype
= type_nit__MClassType
.color
;
5636 idtype
= type_nit__MClassType
.id
;
5640 if(cltype
>= var
->type
->table_size
) {
5643 var3
= var
->type
->type_table
[cltype
] == idtype
;
5646 if (unlikely(!var3
)) {
5647 var_class_name
= var
== NULL ?
"null" : var
->type
->name
;
5648 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "MClassType", var_class_name
);
5649 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 571);
5654 nit___nit__RapidTypeVisitor___add_type(var_v
, var_mtype
); /* Direct call rapid_type_analysis#RapidTypeVisitor#add_type on <var_v:RapidTypeVisitor>*/
5657 { /* Inline typing#ARangeExpr#init_callsite (self) on <self:ACrangeExpr> */
5658 var6
= self
->attrs
[COLOR_nit__typing__ARangeExpr___init_callsite
].val
; /* _init_callsite on <self:ACrangeExpr> */
5664 nit___nit__RapidTypeVisitor___add_callsite(var_v
, var4
); /* Direct call rapid_type_analysis#RapidTypeVisitor#add_callsite on <var_v:RapidTypeVisitor>*/
5668 /* method rapid_type_analysis#AOrangeExpr#accept_rapid_type_visitor for (self: AOrangeExpr, RapidTypeVisitor) */
5669 void nit__rapid_type_analysis___AOrangeExpr___ANode__accept_rapid_type_visitor(val
* self
, val
* p0
) {
5670 val
* var_v
/* var v: RapidTypeVisitor */;
5671 val
* var
/* : nullable MType */;
5672 val
* var2
/* : nullable MType */;
5673 short int var3
/* : Bool */;
5676 const char* var_class_name
;
5677 val
* var_mtype
/* var mtype: MClassType */;
5678 val
* var4
/* : nullable CallSite */;
5679 val
* var6
/* : nullable CallSite */;
5682 { /* Inline typing#AExpr#mtype (self) on <self:AOrangeExpr> */
5683 var2
= self
->attrs
[COLOR_nit__typing__AExpr___mtype
].val
; /* _mtype on <self:AOrangeExpr> */
5688 /* <var:nullable MType> isa MClassType */
5689 cltype
= type_nit__MClassType
.color
;
5690 idtype
= type_nit__MClassType
.id
;
5694 if(cltype
>= var
->type
->table_size
) {
5697 var3
= var
->type
->type_table
[cltype
] == idtype
;
5700 if (unlikely(!var3
)) {
5701 var_class_name
= var
== NULL ?
"null" : var
->type
->name
;
5702 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "MClassType", var_class_name
);
5703 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 580);
5708 nit___nit__RapidTypeVisitor___add_type(var_v
, var_mtype
); /* Direct call rapid_type_analysis#RapidTypeVisitor#add_type on <var_v:RapidTypeVisitor>*/
5711 { /* Inline typing#ARangeExpr#init_callsite (self) on <self:AOrangeExpr> */
5712 var6
= self
->attrs
[COLOR_nit__typing__ARangeExpr___init_callsite
].val
; /* _init_callsite on <self:AOrangeExpr> */
5718 nit___nit__RapidTypeVisitor___add_callsite(var_v
, var4
); /* Direct call rapid_type_analysis#RapidTypeVisitor#add_callsite on <var_v:RapidTypeVisitor>*/
5722 /* method rapid_type_analysis#ATrueExpr#accept_rapid_type_visitor for (self: ATrueExpr, RapidTypeVisitor) */
5723 void nit__rapid_type_analysis___ATrueExpr___ANode__accept_rapid_type_visitor(val
* self
, val
* p0
) {
5724 val
* var_v
/* var v: RapidTypeVisitor */;
5725 val
* var
/* : nullable MType */;
5726 val
* var2
/* : nullable MType */;
5727 short int var3
/* : Bool */;
5730 const char* var_class_name
;
5733 { /* Inline typing#AExpr#mtype (self) on <self:ATrueExpr> */
5734 var2
= self
->attrs
[COLOR_nit__typing__AExpr___mtype
].val
; /* _mtype on <self:ATrueExpr> */
5739 /* <var:nullable MType> isa MClassType */
5740 cltype
= type_nit__MClassType
.color
;
5741 idtype
= type_nit__MClassType
.id
;
5745 if(cltype
>= var
->type
->table_size
) {
5748 var3
= var
->type
->type_table
[cltype
] == idtype
;
5751 if (unlikely(!var3
)) {
5752 var_class_name
= var
== NULL ?
"null" : var
->type
->name
;
5753 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "MClassType", var_class_name
);
5754 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 589);
5758 nit___nit__RapidTypeVisitor___add_type(var_v
, var
); /* Direct call rapid_type_analysis#RapidTypeVisitor#add_type on <var_v:RapidTypeVisitor>*/
5762 /* method rapid_type_analysis#AFalseExpr#accept_rapid_type_visitor for (self: AFalseExpr, RapidTypeVisitor) */
5763 void nit__rapid_type_analysis___AFalseExpr___ANode__accept_rapid_type_visitor(val
* self
, val
* p0
) {
5764 val
* var_v
/* var v: RapidTypeVisitor */;
5765 val
* var
/* : nullable MType */;
5766 val
* var2
/* : nullable MType */;
5767 short int var3
/* : Bool */;
5770 const char* var_class_name
;
5773 { /* Inline typing#AExpr#mtype (self) on <self:AFalseExpr> */
5774 var2
= self
->attrs
[COLOR_nit__typing__AExpr___mtype
].val
; /* _mtype on <self:AFalseExpr> */
5779 /* <var:nullable MType> isa MClassType */
5780 cltype
= type_nit__MClassType
.color
;
5781 idtype
= type_nit__MClassType
.id
;
5785 if(cltype
>= var
->type
->table_size
) {
5788 var3
= var
->type
->type_table
[cltype
] == idtype
;
5791 if (unlikely(!var3
)) {
5792 var_class_name
= var
== NULL ?
"null" : var
->type
->name
;
5793 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "MClassType", var_class_name
);
5794 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 596);
5798 nit___nit__RapidTypeVisitor___add_type(var_v
, var
); /* Direct call rapid_type_analysis#RapidTypeVisitor#add_type on <var_v:RapidTypeVisitor>*/
5802 /* method rapid_type_analysis#AIsaExpr#accept_rapid_type_visitor for (self: AIsaExpr, RapidTypeVisitor) */
5803 void nit__rapid_type_analysis___AIsaExpr___ANode__accept_rapid_type_visitor(val
* self
, val
* p0
) {
5804 val
* var_v
/* var v: RapidTypeVisitor */;
5805 val
* var
/* : nullable MType */;
5806 val
* var2
/* : nullable MType */;
5809 { /* Inline typing#AIsaExpr#cast_type (self) on <self:AIsaExpr> */
5810 var2
= self
->attrs
[COLOR_nit__typing__AIsaExpr___cast_type
].val
; /* _cast_type on <self:AIsaExpr> */
5815 if (unlikely(var
== NULL
)) {
5816 PRINT_ERROR("Runtime error: %s", "Cast failed");
5817 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 603);
5821 nit___nit__RapidTypeVisitor___add_cast_type(var_v
, var
); /* Direct call rapid_type_analysis#RapidTypeVisitor#add_cast_type on <var_v:RapidTypeVisitor>*/
5825 /* method rapid_type_analysis#AAsCastExpr#accept_rapid_type_visitor for (self: AAsCastExpr, RapidTypeVisitor) */
5826 void nit__rapid_type_analysis___AAsCastExpr___ANode__accept_rapid_type_visitor(val
* self
, val
* p0
) {
5827 val
* var_v
/* var v: RapidTypeVisitor */;
5828 val
* var
/* : nullable MType */;
5829 val
* var2
/* : nullable MType */;
5832 { /* Inline typing#AExpr#mtype (self) on <self:AAsCastExpr> */
5833 var2
= self
->attrs
[COLOR_nit__typing__AExpr___mtype
].val
; /* _mtype on <self:AAsCastExpr> */
5838 if (unlikely(var
== NULL
)) {
5839 PRINT_ERROR("Runtime error: %s", "Cast failed");
5840 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 610);
5844 nit___nit__RapidTypeVisitor___add_cast_type(var_v
, var
); /* Direct call rapid_type_analysis#RapidTypeVisitor#add_cast_type on <var_v:RapidTypeVisitor>*/
5848 /* method rapid_type_analysis#ASendExpr#accept_rapid_type_visitor for (self: ASendExpr, RapidTypeVisitor) */
5849 void nit__rapid_type_analysis___ASendExpr___ANode__accept_rapid_type_visitor(val
* self
, val
* p0
) {
5850 val
* var_v
/* var v: RapidTypeVisitor */;
5851 val
* var
/* : nullable CallSite */;
5852 val
* var2
/* : nullable CallSite */;
5855 { /* Inline typing#ASendExpr#callsite (self) on <self:ASendExpr> */
5856 var2
= self
->attrs
[COLOR_nit__typing__ASendExpr___callsite
].val
; /* _callsite on <self:ASendExpr> */
5862 nit___nit__RapidTypeVisitor___add_callsite(var_v
, var
); /* Direct call rapid_type_analysis#RapidTypeVisitor#add_callsite on <var_v:RapidTypeVisitor>*/
5866 /* method rapid_type_analysis#ASendReassignFormExpr#accept_rapid_type_visitor for (self: ASendReassignFormExpr, RapidTypeVisitor) */
5867 void nit__rapid_type_analysis___ASendReassignFormExpr___ANode__accept_rapid_type_visitor(val
* self
, val
* p0
) {
5868 val
* var_v
/* var v: RapidTypeVisitor */;
5869 val
* var
/* : nullable CallSite */;
5870 val
* var2
/* : nullable CallSite */;
5871 val
* var3
/* : nullable CallSite */;
5872 val
* var5
/* : nullable CallSite */;
5873 val
* var6
/* : nullable CallSite */;
5874 val
* var8
/* : nullable CallSite */;
5877 { /* Inline typing#ASendExpr#callsite (self) on <self:ASendReassignFormExpr> */
5878 var2
= self
->attrs
[COLOR_nit__typing__ASendExpr___callsite
].val
; /* _callsite on <self:ASendReassignFormExpr> */
5884 nit___nit__RapidTypeVisitor___add_callsite(var_v
, var
); /* Direct call rapid_type_analysis#RapidTypeVisitor#add_callsite on <var_v:RapidTypeVisitor>*/
5887 { /* Inline typing#AReassignFormExpr#reassign_callsite (self) on <self:ASendReassignFormExpr> */
5888 var5
= self
->attrs
[COLOR_nit__typing__AReassignFormExpr___reassign_callsite
].val
; /* _reassign_callsite on <self:ASendReassignFormExpr> */
5894 nit___nit__RapidTypeVisitor___add_callsite(var_v
, var3
); /* Direct call rapid_type_analysis#RapidTypeVisitor#add_callsite on <var_v:RapidTypeVisitor>*/
5897 { /* Inline typing#ASendReassignFormExpr#write_callsite (self) on <self:ASendReassignFormExpr> */
5898 var8
= self
->attrs
[COLOR_nit__typing__ASendReassignFormExpr___write_callsite
].val
; /* _write_callsite on <self:ASendReassignFormExpr> */
5904 nit___nit__RapidTypeVisitor___add_callsite(var_v
, var6
); /* Direct call rapid_type_analysis#RapidTypeVisitor#add_callsite on <var_v:RapidTypeVisitor>*/
5908 /* method rapid_type_analysis#AVarReassignExpr#accept_rapid_type_visitor for (self: AVarReassignExpr, RapidTypeVisitor) */
5909 void nit__rapid_type_analysis___AVarReassignExpr___ANode__accept_rapid_type_visitor(val
* self
, val
* p0
) {
5910 val
* var_v
/* var v: RapidTypeVisitor */;
5911 val
* var
/* : nullable CallSite */;
5912 val
* var2
/* : nullable CallSite */;
5915 { /* Inline typing#AReassignFormExpr#reassign_callsite (self) on <self:AVarReassignExpr> */
5916 var2
= self
->attrs
[COLOR_nit__typing__AReassignFormExpr___reassign_callsite
].val
; /* _reassign_callsite on <self:AVarReassignExpr> */
5922 nit___nit__RapidTypeVisitor___add_callsite(var_v
, var
); /* Direct call rapid_type_analysis#RapidTypeVisitor#add_callsite on <var_v:RapidTypeVisitor>*/
5926 /* method rapid_type_analysis#AAttrReassignExpr#accept_rapid_type_visitor for (self: AAttrReassignExpr, RapidTypeVisitor) */
5927 void nit__rapid_type_analysis___AAttrReassignExpr___ANode__accept_rapid_type_visitor(val
* self
, val
* p0
) {
5928 val
* var_v
/* var v: RapidTypeVisitor */;
5929 val
* var
/* : nullable CallSite */;
5930 val
* var2
/* : nullable CallSite */;
5933 { /* Inline typing#AReassignFormExpr#reassign_callsite (self) on <self:AAttrReassignExpr> */
5934 var2
= self
->attrs
[COLOR_nit__typing__AReassignFormExpr___reassign_callsite
].val
; /* _reassign_callsite on <self:AAttrReassignExpr> */
5940 nit___nit__RapidTypeVisitor___add_callsite(var_v
, var
); /* Direct call rapid_type_analysis#RapidTypeVisitor#add_callsite on <var_v:RapidTypeVisitor>*/
5944 /* method rapid_type_analysis#ASuperExpr#accept_rapid_type_visitor for (self: ASuperExpr, RapidTypeVisitor) */
5945 void nit__rapid_type_analysis___ASuperExpr___ANode__accept_rapid_type_visitor(val
* self
, val
* p0
) {
5946 val
* var_v
/* var v: RapidTypeVisitor */;
5947 val
* var
/* : nullable CallSite */;
5948 val
* var2
/* : nullable CallSite */;
5949 val
* var_callsite
/* var callsite: nullable CallSite */;
5950 val
* var3
/* : null */;
5951 short int var4
/* : Bool */;
5952 short int var5
/* : Bool */;
5953 val
* var_other
/* var other: nullable Object */;
5954 short int var7
/* : Bool */;
5955 short int var8
/* : Bool */;
5956 val
* var9
/* : RapidTypeAnalysis */;
5957 val
* var11
/* : RapidTypeAnalysis */;
5958 val
* var12
/* : MClassType */;
5959 val
* var14
/* : MClassType */;
5960 val
* var15
/* : nullable MMethodDef */;
5961 val
* var17
/* : nullable MMethodDef */;
5964 { /* Inline typing#ASuperExpr#callsite (self) on <self:ASuperExpr> */
5965 var2
= self
->attrs
[COLOR_nit__typing__ASuperExpr___callsite
].val
; /* _callsite on <self:ASuperExpr> */
5972 if (var_callsite
== NULL
) {
5973 var4
= 0; /* is null */
5975 var4
= 1; /* arg is null and recv is not */
5978 { /* Inline kernel#Object#!= (var_callsite,var3) on <var_callsite:nullable CallSite> */
5981 var7
= ((short int (*)(val
* self
, val
* p0
))(var_callsite
->class->vft
[COLOR_standard__kernel__Object___61d_61d
]))(var_callsite
, var_other
) /* == on <var_callsite:nullable CallSite(CallSite)>*/;
5992 nit___nit__RapidTypeVisitor___add_callsite(var_v
, var_callsite
); /* Direct call rapid_type_analysis#RapidTypeVisitor#add_callsite on <var_v:RapidTypeVisitor>*/
5998 { /* Inline rapid_type_analysis#RapidTypeVisitor#analysis (var_v) on <var_v:RapidTypeVisitor> */
5999 var11
= var_v
->attrs
[COLOR_nit__rapid_type_analysis__RapidTypeVisitor___analysis
].val
; /* _analysis on <var_v:RapidTypeVisitor> */
6000 if (unlikely(var11
== NULL
)) {
6001 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _analysis");
6002 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 435);
6006 RET_LABEL10
:(void)0;
6010 { /* Inline rapid_type_analysis#RapidTypeVisitor#receiver (var_v) on <var_v:RapidTypeVisitor> */
6011 var14
= var_v
->attrs
[COLOR_nit__rapid_type_analysis__RapidTypeVisitor___receiver
].val
; /* _receiver on <var_v:RapidTypeVisitor> */
6012 if (unlikely(var14
== NULL
)) {
6013 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _receiver");
6014 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 436);
6018 RET_LABEL13
:(void)0;
6022 { /* Inline typing#ASuperExpr#mpropdef (self) on <self:ASuperExpr> */
6023 var17
= self
->attrs
[COLOR_nit__typing__ASuperExpr___mpropdef
].val
; /* _mpropdef on <self:ASuperExpr> */
6025 RET_LABEL16
:(void)0;
6028 if (unlikely(var15
== NULL
)) {
6029 PRINT_ERROR("Runtime error: %s", "Cast failed");
6030 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 654);
6034 nit___nit__RapidTypeAnalysis___add_super_send(var9
, var12
, var15
); /* Direct call rapid_type_analysis#RapidTypeAnalysis#add_super_send on <var9:RapidTypeAnalysis>*/
6038 /* method rapid_type_analysis#AForExpr#accept_rapid_type_visitor for (self: AForExpr, RapidTypeVisitor) */
6039 void nit__rapid_type_analysis___AForExpr___ANode__accept_rapid_type_visitor(val
* self
, val
* p0
) {
6040 val
* var_v
/* var v: RapidTypeVisitor */;
6041 val
* var
/* : nullable CallSite */;
6042 val
* var2
/* : nullable CallSite */;
6043 val
* var3
/* : nullable CallSite */;
6044 val
* var5
/* : nullable CallSite */;
6045 val
* var6
/* : nullable Array[Variable] */;
6046 val
* var8
/* : nullable Array[Variable] */;
6047 long var9
/* : Int */;
6048 long var11
/* : Int */;
6049 long var12
/* : Int */;
6050 short int var13
/* : Bool */;
6051 short int var15
/* : Bool */;
6052 val
* var16
/* : nullable CallSite */;
6053 val
* var18
/* : nullable CallSite */;
6054 val
* var19
/* : nullable Array[Variable] */;
6055 val
* var21
/* : nullable Array[Variable] */;
6056 long var22
/* : Int */;
6057 long var24
/* : Int */;
6058 long var25
/* : Int */;
6059 short int var26
/* : Bool */;
6060 short int var28
/* : Bool */;
6061 val
* var29
/* : nullable CallSite */;
6062 val
* var31
/* : nullable CallSite */;
6063 val
* var32
/* : nullable CallSite */;
6064 val
* var34
/* : nullable CallSite */;
6065 val
* var35
/* : nullable CallSite */;
6066 val
* var37
/* : nullable CallSite */;
6067 val
* var38
/* : nullable CallSite */;
6068 val
* var40
/* : nullable CallSite */;
6069 val
* var_mf
/* var mf: nullable CallSite */;
6070 val
* var41
/* : null */;
6071 short int var42
/* : Bool */;
6072 short int var43
/* : Bool */;
6073 val
* var_other
/* var other: nullable Object */;
6074 short int var45
/* : Bool */;
6075 short int var46
/* : Bool */;
6078 { /* Inline typing#AForExpr#method_iterator (self) on <self:AForExpr> */
6079 var2
= self
->attrs
[COLOR_nit__typing__AForExpr___method_iterator
].val
; /* _method_iterator on <self:AForExpr> */
6085 nit___nit__RapidTypeVisitor___add_callsite(var_v
, var
); /* Direct call rapid_type_analysis#RapidTypeVisitor#add_callsite on <var_v:RapidTypeVisitor>*/
6088 { /* Inline typing#AForExpr#method_is_ok (self) on <self:AForExpr> */
6089 var5
= self
->attrs
[COLOR_nit__typing__AForExpr___method_is_ok
].val
; /* _method_is_ok on <self:AForExpr> */
6095 nit___nit__RapidTypeVisitor___add_callsite(var_v
, var3
); /* Direct call rapid_type_analysis#RapidTypeVisitor#add_callsite on <var_v:RapidTypeVisitor>*/
6098 { /* Inline scope#AForExpr#variables (self) on <self:AForExpr> */
6099 var8
= self
->attrs
[COLOR_nit__scope__AForExpr___variables
].val
; /* _variables on <self:AForExpr> */
6105 PRINT_ERROR("Runtime error: %s", "Receiver is null");
6106 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 663);
6109 { /* Inline array#AbstractArrayRead#length (var6) on <var6:nullable Array[Variable]> */
6110 if (unlikely(var6
== NULL
)) {
6111 PRINT_ERROR("Runtime error: %s", "Receiver is null");
6112 PRINT_ERROR(" (%s:%d)\n", FILE_standard__array
, 24);
6115 var11
= var6
->attrs
[COLOR_standard__array__AbstractArrayRead___length
].l
; /* _length on <var6:nullable Array[Variable]> */
6117 RET_LABEL10
:(void)0;
6122 { /* Inline kernel#Int#== (var9,var12) on <var9:Int> */
6123 var15
= var9
== var12
;
6126 RET_LABEL14
:(void)0;
6131 { /* Inline typing#AForExpr#method_item (self) on <self:AForExpr> */
6132 var18
= self
->attrs
[COLOR_nit__typing__AForExpr___method_item
].val
; /* _method_item on <self:AForExpr> */
6134 RET_LABEL17
:(void)0;
6138 nit___nit__RapidTypeVisitor___add_callsite(var_v
, var16
); /* Direct call rapid_type_analysis#RapidTypeVisitor#add_callsite on <var_v:RapidTypeVisitor>*/
6142 { /* Inline scope#AForExpr#variables (self) on <self:AForExpr> */
6143 var21
= self
->attrs
[COLOR_nit__scope__AForExpr___variables
].val
; /* _variables on <self:AForExpr> */
6145 RET_LABEL20
:(void)0;
6148 if (var19
== NULL
) {
6149 PRINT_ERROR("Runtime error: %s", "Receiver is null");
6150 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 665);
6153 { /* Inline array#AbstractArrayRead#length (var19) on <var19:nullable Array[Variable]> */
6154 if (unlikely(var19
== NULL
)) {
6155 PRINT_ERROR("Runtime error: %s", "Receiver is null");
6156 PRINT_ERROR(" (%s:%d)\n", FILE_standard__array
, 24);
6159 var24
= var19
->attrs
[COLOR_standard__array__AbstractArrayRead___length
].l
; /* _length on <var19:nullable Array[Variable]> */
6161 RET_LABEL23
:(void)0;
6166 { /* Inline kernel#Int#== (var22,var25) on <var22:Int> */
6167 var28
= var22
== var25
;
6170 RET_LABEL27
:(void)0;
6175 { /* Inline typing#AForExpr#method_key (self) on <self:AForExpr> */
6176 var31
= self
->attrs
[COLOR_nit__typing__AForExpr___method_key
].val
; /* _method_key on <self:AForExpr> */
6178 RET_LABEL30
:(void)0;
6182 nit___nit__RapidTypeVisitor___add_callsite(var_v
, var29
); /* Direct call rapid_type_analysis#RapidTypeVisitor#add_callsite on <var_v:RapidTypeVisitor>*/
6185 { /* Inline typing#AForExpr#method_item (self) on <self:AForExpr> */
6186 var34
= self
->attrs
[COLOR_nit__typing__AForExpr___method_item
].val
; /* _method_item on <self:AForExpr> */
6188 RET_LABEL33
:(void)0;
6192 nit___nit__RapidTypeVisitor___add_callsite(var_v
, var32
); /* Direct call rapid_type_analysis#RapidTypeVisitor#add_callsite on <var_v:RapidTypeVisitor>*/
6195 PRINT_ERROR("Runtime error: %s", "Aborted");
6196 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 669);
6201 { /* Inline typing#AForExpr#method_next (self) on <self:AForExpr> */
6202 var37
= self
->attrs
[COLOR_nit__typing__AForExpr___method_next
].val
; /* _method_next on <self:AForExpr> */
6204 RET_LABEL36
:(void)0;
6208 nit___nit__RapidTypeVisitor___add_callsite(var_v
, var35
); /* Direct call rapid_type_analysis#RapidTypeVisitor#add_callsite on <var_v:RapidTypeVisitor>*/
6211 { /* Inline typing#AForExpr#method_finish (self) on <self:AForExpr> */
6212 var40
= self
->attrs
[COLOR_nit__typing__AForExpr___method_finish
].val
; /* _method_finish on <self:AForExpr> */
6214 RET_LABEL39
:(void)0;
6219 if (var_mf
== NULL
) {
6220 var42
= 0; /* is null */
6222 var42
= 1; /* arg is null and recv is not */
6225 { /* Inline kernel#Object#!= (var_mf,var41) on <var_mf:nullable CallSite> */
6228 var45
= ((short int (*)(val
* self
, val
* p0
))(var_mf
->class->vft
[COLOR_standard__kernel__Object___61d_61d
]))(var_mf
, var_other
) /* == on <var_mf:nullable CallSite(CallSite)>*/;
6233 RET_LABEL44
:(void)0;
6239 nit___nit__RapidTypeVisitor___add_callsite(var_v
, var_mf
); /* Direct call rapid_type_analysis#RapidTypeVisitor#add_callsite on <var_v:RapidTypeVisitor>*/
6245 /* method rapid_type_analysis#ANewExpr#accept_rapid_type_visitor for (self: ANewExpr, RapidTypeVisitor) */
6246 void nit__rapid_type_analysis___ANewExpr___ANode__accept_rapid_type_visitor(val
* self
, val
* p0
) {
6247 val
* var_v
/* var v: RapidTypeVisitor */;
6248 val
* var
/* : nullable MClassType */;
6249 val
* var2
/* : nullable MClassType */;
6250 val
* var_mtype
/* var mtype: MClassType */;
6251 val
* var3
/* : nullable CallSite */;
6252 val
* var5
/* : nullable CallSite */;
6255 { /* Inline typing#ANewExpr#recvtype (self) on <self:ANewExpr> */
6256 var2
= self
->attrs
[COLOR_nit__typing__ANewExpr___recvtype
].val
; /* _recvtype on <self:ANewExpr> */
6261 if (unlikely(var
== NULL
)) {
6262 PRINT_ERROR("Runtime error: %s", "Cast failed");
6263 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 680);
6268 nit___nit__RapidTypeVisitor___add_type(var_v
, var_mtype
); /* Direct call rapid_type_analysis#RapidTypeVisitor#add_type on <var_v:RapidTypeVisitor>*/
6271 { /* Inline typing#ANewExpr#callsite (self) on <self:ANewExpr> */
6272 var5
= self
->attrs
[COLOR_nit__typing__ANewExpr___callsite
].val
; /* _callsite on <self:ANewExpr> */
6278 nit___nit__RapidTypeVisitor___add_callsite(var_v
, var3
); /* Direct call rapid_type_analysis#RapidTypeVisitor#add_callsite on <var_v:RapidTypeVisitor>*/