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 */;
8 val
* var2
/* : ToolContext */;
9 val
* var4
/* : ToolContext */;
10 val
* var5
/* : OptionBool */;
11 val
* var7
/* : OptionBool */;
12 val
* var8
/* : nullable Object */;
13 val
* var10
/* : nullable Object */;
14 short int var11
/* : Bool */;
15 val
* var12
/* : ToolContext */;
16 val
* var14
/* : ToolContext */;
17 val
* var15
/* : String */;
18 val
* var17
/* : String */;
19 val
* var18
/* : String */;
20 val
* var20
/* : String */;
21 val
* var21
/* : String */;
22 val
* var_basename
/* var basename: String */;
23 val
* var22
/* : OrderedTree[Object] */;
25 val
* var23
/* : String */;
26 char* var24
/* : NativeString */;
27 val
* var25
/* : FlatString */;
28 val
* var26
/* : String */;
29 val
* var27
/* : CsvDocument */;
30 static val
* varonce28
;
31 val
* var29
/* : String */;
32 char* var30
/* : NativeString */;
33 val
* var31
/* : FlatString */;
34 val
* var32
/* : String */;
36 var1
= NEW_nit__RapidTypeAnalysis(&type_nit__RapidTypeAnalysis
);
38 ((void(*)(val
* self
, val
* p0
))(var1
->class->vft
[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis__modelbuilder_61d
]))(var1
, self
); /* modelbuilder= on <var1:RapidTypeAnalysis>*/
41 ((void(*)(val
* self
, val
* p0
))(var1
->class->vft
[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis__mainmodule_61d
]))(var1
, var_mainmodule
); /* mainmodule= on <var1:RapidTypeAnalysis>*/
44 ((void(*)(val
* self
))(var1
->class->vft
[COLOR_standard__kernel__Object__init
]))(var1
); /* init on <var1:RapidTypeAnalysis>*/
48 nit___nit__RapidTypeAnalysis___run_analysis(var_analysis
); /* Direct call rapid_type_analysis#RapidTypeAnalysis#run_analysis on <var_analysis:RapidTypeAnalysis>*/
51 { /* Inline modelbuilder_base#ModelBuilder#toolcontext (self) on <self:ModelBuilder> */
52 var4
= self
->attrs
[COLOR_nit__modelbuilder_base__ModelBuilder___toolcontext
].val
; /* _toolcontext on <self:ModelBuilder> */
53 if (unlikely(var4
== NULL
)) {
54 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
55 PRINT_ERROR(" (%s:%d)\n", FILE_nit__modelbuilder_base
, 47);
63 { /* Inline toolcontext#ToolContext#opt_log (var2) on <var2:ToolContext> */
64 var7
= var2
->attrs
[COLOR_nit__toolcontext__ToolContext___opt_log
].val
; /* _opt_log on <var2:ToolContext> */
65 if (unlikely(var7
== NULL
)) {
66 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_log");
67 PRINT_ERROR(" (%s:%d)\n", FILE_nit__toolcontext
, 344);
75 { /* Inline opts#Option#value (var5) on <var5:OptionBool> */
76 var10
= var5
->attrs
[COLOR_opts__Option___value
].val
; /* _value on <var5:OptionBool> */
81 var11
= (short int)((long)(var8
)>>2);
84 { /* Inline modelbuilder_base#ModelBuilder#toolcontext (self) on <self:ModelBuilder> */
85 var14
= self
->attrs
[COLOR_nit__modelbuilder_base__ModelBuilder___toolcontext
].val
; /* _toolcontext on <self:ModelBuilder> */
86 if (unlikely(var14
== NULL
)) {
87 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
88 PRINT_ERROR(" (%s:%d)\n", FILE_nit__modelbuilder_base
, 47);
96 { /* Inline toolcontext#ToolContext#log_directory (var12) on <var12:ToolContext> */
97 var17
= var12
->attrs
[COLOR_nit__toolcontext__ToolContext___log_directory
].val
; /* _log_directory on <var12:ToolContext> */
98 if (unlikely(var17
== NULL
)) {
99 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _log_directory");
100 PRINT_ERROR(" (%s:%d)\n", FILE_nit__toolcontext
, 137);
108 { /* Inline mmodule#MModule#name (var_mainmodule) on <var_mainmodule:MModule> */
109 var20
= var_mainmodule
->attrs
[COLOR_nit__mmodule__MModule___name
].val
; /* _name on <var_mainmodule:MModule> */
110 if (unlikely(var20
== NULL
)) {
111 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
112 PRINT_ERROR(" (%s:%d)\n", FILE_nit__mmodule
, 87);
120 var21
= standard__file___String____47d(var15
, var18
);
122 var_basename
= var21
;
124 var22
= nit___nit__RapidTypeAnalysis___live_methods_to_tree(var_analysis
);
126 if (likely(varonce
!=NULL
)) {
129 var24
= ".rta_methods.txt";
130 var25
= standard___standard__NativeString___to_s_with_length(var24
, 16l);
135 var26
= ((val
*(*)(val
* self
, val
* p0
))(var_basename
->class->vft
[COLOR_standard__string__String___43d
]))(var_basename
, var23
); /* + on <var_basename:String>*/
138 standard__file___Writable___write_to_file(var22
, var26
); /* Direct call file#Writable#write_to_file on <var22:OrderedTree[Object]>*/
141 var27
= nit___nit__RapidTypeAnalysis___live_types_to_csv(var_analysis
);
143 if (likely(varonce28
!=NULL
)) {
146 var30
= ".rta_types.csv";
147 var31
= standard___standard__NativeString___to_s_with_length(var30
, 14l);
152 var32
= ((val
*(*)(val
* self
, val
* p0
))(var_basename
->class->vft
[COLOR_standard__string__String___43d
]))(var_basename
, var29
); /* + on <var_basename:String>*/
155 standard__file___Writable___write_to_file(var27
, var32
); /* Direct call file#Writable#write_to_file on <var27:CsvDocument>*/
164 /* method rapid_type_analysis#RapidTypeAnalysis#modelbuilder for (self: RapidTypeAnalysis): ModelBuilder */
165 val
* nit___nit__RapidTypeAnalysis___modelbuilder(val
* self
) {
166 val
* var
/* : ModelBuilder */;
167 val
* var1
/* : ModelBuilder */;
168 var1
= self
->attrs
[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___modelbuilder
].val
; /* _modelbuilder on <self:RapidTypeAnalysis> */
169 if (unlikely(var1
== NULL
)) {
170 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
171 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 53);
178 /* method rapid_type_analysis#RapidTypeAnalysis#modelbuilder= for (self: RapidTypeAnalysis, ModelBuilder) */
179 void nit___nit__RapidTypeAnalysis___modelbuilder_61d(val
* self
, val
* p0
) {
180 self
->attrs
[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___modelbuilder
].val
= p0
; /* _modelbuilder on <self:RapidTypeAnalysis> */
183 /* method rapid_type_analysis#RapidTypeAnalysis#mainmodule for (self: RapidTypeAnalysis): MModule */
184 val
* nit___nit__RapidTypeAnalysis___mainmodule(val
* self
) {
185 val
* var
/* : MModule */;
186 val
* var1
/* : MModule */;
187 var1
= self
->attrs
[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___mainmodule
].val
; /* _mainmodule on <self:RapidTypeAnalysis> */
188 if (unlikely(var1
== NULL
)) {
189 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule");
190 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 56);
197 /* method rapid_type_analysis#RapidTypeAnalysis#mainmodule= for (self: RapidTypeAnalysis, MModule) */
198 void nit___nit__RapidTypeAnalysis___mainmodule_61d(val
* self
, val
* p0
) {
199 self
->attrs
[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___mainmodule
].val
= p0
; /* _mainmodule on <self:RapidTypeAnalysis> */
202 /* method rapid_type_analysis#RapidTypeAnalysis#live_types for (self: RapidTypeAnalysis): HashSet[MClassType] */
203 val
* nit___nit__RapidTypeAnalysis___live_types(val
* self
) {
204 val
* var
/* : HashSet[MClassType] */;
205 val
* var1
/* : HashSet[MClassType] */;
206 var1
= self
->attrs
[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___live_types
].val
; /* _live_types on <self:RapidTypeAnalysis> */
207 if (unlikely(var1
== NULL
)) {
208 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_types");
209 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 60);
216 /* method rapid_type_analysis#RapidTypeAnalysis#live_open_types for (self: RapidTypeAnalysis): HashSet[MClassType] */
217 val
* nit___nit__RapidTypeAnalysis___live_open_types(val
* self
) {
218 val
* var
/* : HashSet[MClassType] */;
219 val
* var1
/* : HashSet[MClassType] */;
220 var1
= self
->attrs
[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___live_open_types
].val
; /* _live_open_types on <self:RapidTypeAnalysis> */
221 if (unlikely(var1
== NULL
)) {
222 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_open_types");
223 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 65);
230 /* method rapid_type_analysis#RapidTypeAnalysis#live_classes for (self: RapidTypeAnalysis): HashSet[MClass] */
231 val
* nit___nit__RapidTypeAnalysis___live_classes(val
* self
) {
232 val
* var
/* : HashSet[MClass] */;
233 val
* var1
/* : HashSet[MClass] */;
234 var1
= self
->attrs
[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___live_classes
].val
; /* _live_classes on <self:RapidTypeAnalysis> */
235 if (unlikely(var1
== NULL
)) {
236 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_classes");
237 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 69);
244 /* method rapid_type_analysis#RapidTypeAnalysis#live_cast_types for (self: RapidTypeAnalysis): HashSet[MType] */
245 val
* nit___nit__RapidTypeAnalysis___live_cast_types(val
* self
) {
246 val
* var
/* : HashSet[MType] */;
247 val
* var1
/* : HashSet[MType] */;
248 var1
= self
->attrs
[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___live_cast_types
].val
; /* _live_cast_types on <self:RapidTypeAnalysis> */
249 if (unlikely(var1
== NULL
)) {
250 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_cast_types");
251 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 72);
258 /* method rapid_type_analysis#RapidTypeAnalysis#live_open_cast_types for (self: RapidTypeAnalysis): HashSet[MType] */
259 val
* nit___nit__RapidTypeAnalysis___live_open_cast_types(val
* self
) {
260 val
* var
/* : HashSet[MType] */;
261 val
* var1
/* : HashSet[MType] */;
262 var1
= self
->attrs
[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___live_open_cast_types
].val
; /* _live_open_cast_types on <self:RapidTypeAnalysis> */
263 if (unlikely(var1
== NULL
)) {
264 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_open_cast_types");
265 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 75);
272 /* method rapid_type_analysis#RapidTypeAnalysis#live_methoddefs for (self: RapidTypeAnalysis): HashSet[MMethodDef] */
273 val
* nit___nit__RapidTypeAnalysis___live_methoddefs(val
* self
) {
274 val
* var
/* : HashSet[MMethodDef] */;
275 val
* var1
/* : HashSet[MMethodDef] */;
276 var1
= self
->attrs
[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___live_methoddefs
].val
; /* _live_methoddefs on <self:RapidTypeAnalysis> */
277 if (unlikely(var1
== NULL
)) {
278 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_methoddefs");
279 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 79);
286 /* method rapid_type_analysis#RapidTypeAnalysis#live_methods for (self: RapidTypeAnalysis): HashSet[MMethod] */
287 val
* nit___nit__RapidTypeAnalysis___live_methods(val
* self
) {
288 val
* var
/* : HashSet[MMethod] */;
289 val
* var1
/* : HashSet[MMethod] */;
290 var1
= self
->attrs
[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___live_methods
].val
; /* _live_methods on <self:RapidTypeAnalysis> */
291 if (unlikely(var1
== NULL
)) {
292 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_methods");
293 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 82);
300 /* method rapid_type_analysis#RapidTypeAnalysis#live_callsites for (self: RapidTypeAnalysis): HashSet[CallSite] */
301 val
* nit___nit__RapidTypeAnalysis___live_callsites(val
* self
) {
302 val
* var
/* : HashSet[CallSite] */;
303 val
* var1
/* : HashSet[CallSite] */;
304 var1
= self
->attrs
[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___live_callsites
].val
; /* _live_callsites on <self:RapidTypeAnalysis> */
305 if (unlikely(var1
== NULL
)) {
306 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_callsites");
307 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 85);
314 /* method rapid_type_analysis#RapidTypeAnalysis#live_targets_cache for (self: RapidTypeAnalysis): HashMap2[MType, MProperty, Set[MMethodDef]] */
315 val
* nit___nit__RapidTypeAnalysis___live_targets_cache(val
* self
) {
316 val
* var
/* : HashMap2[MType, MProperty, Set[MMethodDef]] */;
317 val
* var1
/* : HashMap2[MType, MProperty, Set[MMethodDef]] */;
318 var1
= self
->attrs
[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___live_targets_cache
].val
; /* _live_targets_cache on <self:RapidTypeAnalysis> */
319 if (unlikely(var1
== NULL
)) {
320 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_targets_cache");
321 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 88);
328 /* method rapid_type_analysis#RapidTypeAnalysis#live_targets for (self: RapidTypeAnalysis, CallSite): Set[MMethodDef] */
329 val
* nit___nit__RapidTypeAnalysis___live_targets(val
* self
, val
* p0
) {
330 val
* var
/* : Set[MMethodDef] */;
331 val
* var_callsite
/* var callsite: CallSite */;
332 val
* var1
/* : MType */;
333 val
* var3
/* : MType */;
334 val
* var_mtype
/* var mtype: MType */;
335 val
* var4
/* : nullable MClassType */;
336 val
* var6
/* : nullable MClassType */;
337 val
* var_anchor
/* var anchor: nullable MClassType */;
338 short int var7
/* : Bool */;
339 short int var8
/* : Bool */;
340 val
* var_other
/* var other: nullable Object */;
341 short int var10
/* : Bool */;
342 short int var11
/* : Bool */;
343 val
* var12
/* : MModule */;
344 val
* var14
/* : MModule */;
345 val
* var15
/* : MType */;
346 val
* var16
/* : MType */;
347 short int var17
/* : Bool */;
350 val
* var18
/* : MClass */;
351 val
* var20
/* : MClass */;
352 val
* var21
/* : MClassDef */;
353 val
* var23
/* : MClassDef */;
354 val
* var24
/* : MClassType */;
355 val
* var26
/* : MClassType */;
356 val
* var27
/* : MMethod */;
357 val
* var29
/* : MMethod */;
358 val
* var_mproperty
/* var mproperty: MMethod */;
359 val
* var30
/* : HashMap2[MType, MProperty, Set[MMethodDef]] */;
360 val
* var32
/* : HashMap2[MType, MProperty, Set[MMethodDef]] */;
361 val
* var33
/* : nullable Object */;
362 val
* var_res
/* var res: nullable Set[MMethodDef] */;
363 short int var34
/* : Bool */;
364 short int var35
/* : Bool */;
365 short int var37
/* : Bool */;
366 short int var38
/* : Bool */;
367 val
* var39
/* : ArraySet[MMethodDef] */;
368 val
* var40
/* : HashMap2[MType, MProperty, Set[MMethodDef]] */;
369 val
* var42
/* : HashMap2[MType, MProperty, Set[MMethodDef]] */;
370 val
* var43
/* : HashSet[MClass] */;
371 val
* var45
/* : HashSet[MClass] */;
372 val
* var_
/* var : HashSet[MClass] */;
373 val
* var46
/* : Iterator[nullable Object] */;
374 val
* var_47
/* var : Iterator[MClass] */;
375 short int var48
/* : Bool */;
376 val
* var49
/* : nullable Object */;
377 val
* var_c
/* var c: MClass */;
378 val
* var50
/* : MClassDef */;
379 val
* var52
/* : MClassDef */;
380 val
* var53
/* : MClassType */;
381 val
* var55
/* : MClassType */;
382 val
* var_tc
/* var tc: MClassType */;
383 val
* var56
/* : MModule */;
384 val
* var58
/* : MModule */;
385 short int var59
/* : Bool */;
386 short int var60
/* : Bool */;
387 val
* var61
/* : MModule */;
388 val
* var63
/* : MModule */;
389 val
* var64
/* : MPropDef */;
390 val
* var_d
/* var d: MMethodDef */;
393 { /* Inline typing#CallSite#recv (var_callsite) on <var_callsite:CallSite> */
394 var3
= var_callsite
->attrs
[COLOR_nit__typing__CallSite___recv
].val
; /* _recv on <var_callsite:CallSite> */
395 if (unlikely(var3
== NULL
)) {
396 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _recv");
397 PRINT_ERROR(" (%s:%d)\n", FILE_nit__typing
, 610);
406 { /* Inline typing#CallSite#anchor (var_callsite) on <var_callsite:CallSite> */
407 var6
= var_callsite
->attrs
[COLOR_nit__typing__CallSite___anchor
].val
; /* _anchor on <var_callsite:CallSite> */
413 if (var_anchor
== NULL
) {
414 var7
= 0; /* is null */
416 var7
= 1; /* arg is null and recv is not */
419 { /* Inline kernel#Object#!= (var_anchor,((val*)NULL)) on <var_anchor:nullable MClassType> */
420 var_other
= ((val
*)NULL
);
422 var10
= ((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)>*/
433 { /* Inline typing#CallSite#mmodule (var_callsite) on <var_callsite:CallSite> */
434 var14
= var_callsite
->attrs
[COLOR_nit__typing__CallSite___mmodule
].val
; /* _mmodule on <var_callsite:CallSite> */
435 if (unlikely(var14
== NULL
)) {
436 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule");
437 PRINT_ERROR(" (%s:%d)\n", FILE_nit__typing
, 613);
445 var15
= ((val
*(*)(val
* self
, val
* p0
, val
* p1
))(var_mtype
->class->vft
[COLOR_nit__model__MType__anchor_to
]))(var_mtype
, var12
, var_anchor
); /* anchor_to on <var_mtype:MType>*/
451 var16
= ((val
*(*)(val
* self
))(var_mtype
->class->vft
[COLOR_nit__model__MType__undecorate
]))(var_mtype
); /* undecorate on <var_mtype:MType>*/
454 /* <var_mtype:MType> isa MClassType */
455 cltype
= type_nit__MClassType
.color
;
456 idtype
= type_nit__MClassType
.id
;
457 if(cltype
>= var_mtype
->type
->table_size
) {
460 var17
= var_mtype
->type
->type_table
[cltype
] == idtype
;
464 { /* Inline model#MClassType#mclass (var_mtype) on <var_mtype:MType(MClassType)> */
465 var20
= var_mtype
->attrs
[COLOR_nit__model__MClassType___mclass
].val
; /* _mclass on <var_mtype:MType(MClassType)> */
466 if (unlikely(var20
== NULL
)) {
467 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
468 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 1138);
476 { /* Inline model#MClass#intro (var18) on <var18:MClass> */
477 var23
= var18
->attrs
[COLOR_nit__model__MClass___intro
].val
; /* _intro on <var18:MClass> */
478 if (unlikely(var23
== NULL
)) {
479 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro");
480 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 460);
488 { /* Inline model#MClassDef#bound_mtype (var21) on <var21:MClassDef> */
489 var26
= var21
->attrs
[COLOR_nit__model__MClassDef___bound_mtype
].val
; /* _bound_mtype on <var21:MClassDef> */
490 if (unlikely(var26
== NULL
)) {
491 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _bound_mtype");
492 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 556);
503 { /* Inline typing#CallSite#mproperty (var_callsite) on <var_callsite:CallSite> */
504 var29
= var_callsite
->attrs
[COLOR_nit__typing__CallSite___mproperty
].val
; /* _mproperty on <var_callsite:CallSite> */
505 if (unlikely(var29
== NULL
)) {
506 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty");
507 PRINT_ERROR(" (%s:%d)\n", FILE_nit__typing
, 624);
514 var_mproperty
= var27
;
516 { /* Inline rapid_type_analysis#RapidTypeAnalysis#live_targets_cache (self) on <self:RapidTypeAnalysis> */
517 var32
= self
->attrs
[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___live_targets_cache
].val
; /* _live_targets_cache on <self:RapidTypeAnalysis> */
518 if (unlikely(var32
== NULL
)) {
519 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_targets_cache");
520 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 88);
528 var33
= more_collections___more_collections__HashMap2____91d_93d(var30
, var_mtype
, var_mproperty
);
531 if (var_res
== NULL
) {
532 var34
= 0; /* is null */
534 var34
= 1; /* arg is null and recv is not */
537 { /* Inline kernel#Object#!= (var_res,((val*)NULL)) on <var_res:nullable Set[MMethodDef]> */
538 var_other
= ((val
*)NULL
);
540 var37
= ((short int(*)(val
* self
, val
* p0
))((((long)var_res
&3)?class_info
[((long)var_res
&3)]:var_res
->class)->vft
[COLOR_standard__kernel__Object___61d_61d
]))(var_res
, var_other
); /* == on <var_res:nullable Set[MMethodDef](Set[MMethodDef])>*/
554 var39
= NEW_standard__ArraySet(&type_standard__ArraySet__nit__MMethodDef
);
556 standard___standard__ArraySet___standard__kernel__Object__init(var39
); /* Direct call array#ArraySet#init on <var39:ArraySet[MMethodDef]>*/
560 { /* Inline rapid_type_analysis#RapidTypeAnalysis#live_targets_cache (self) on <self:RapidTypeAnalysis> */
561 var42
= self
->attrs
[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___live_targets_cache
].val
; /* _live_targets_cache on <self:RapidTypeAnalysis> */
562 if (unlikely(var42
== NULL
)) {
563 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_targets_cache");
564 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 88);
572 more_collections___more_collections__HashMap2____91d_93d_61d(var40
, var_mtype
, var_mproperty
, var_res
); /* Direct call more_collections#HashMap2#[]= on <var40:HashMap2[MType, MProperty, Set[MMethodDef]]>*/
575 { /* Inline rapid_type_analysis#RapidTypeAnalysis#live_classes (self) on <self:RapidTypeAnalysis> */
576 var45
= self
->attrs
[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___live_classes
].val
; /* _live_classes on <self:RapidTypeAnalysis> */
577 if (unlikely(var45
== NULL
)) {
578 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_classes");
579 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 69);
588 var46
= standard___standard__HashSet___standard__abstract_collection__Collection__iterator(var_
);
593 var48
= ((short int(*)(val
* self
))((((long)var_47
&3)?class_info
[((long)var_47
&3)]:var_47
->class)->vft
[COLOR_standard__abstract_collection__Iterator__is_ok
]))(var_47
); /* is_ok on <var_47:Iterator[MClass]>*/
597 var49
= ((val
*(*)(val
* self
))((((long)var_47
&3)?class_info
[((long)var_47
&3)]:var_47
->class)->vft
[COLOR_standard__abstract_collection__Iterator__item
]))(var_47
); /* item on <var_47:Iterator[MClass]>*/
601 { /* Inline model#MClass#intro (var_c) on <var_c:MClass> */
602 var52
= var_c
->attrs
[COLOR_nit__model__MClass___intro
].val
; /* _intro on <var_c:MClass> */
603 if (unlikely(var52
== NULL
)) {
604 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro");
605 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 460);
613 { /* Inline model#MClassDef#bound_mtype (var50) on <var50:MClassDef> */
614 var55
= var50
->attrs
[COLOR_nit__model__MClassDef___bound_mtype
].val
; /* _bound_mtype on <var50:MClassDef> */
615 if (unlikely(var55
== NULL
)) {
616 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _bound_mtype");
617 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 556);
626 { /* Inline rapid_type_analysis#RapidTypeAnalysis#mainmodule (self) on <self:RapidTypeAnalysis> */
627 var58
= self
->attrs
[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___mainmodule
].val
; /* _mainmodule on <self:RapidTypeAnalysis> */
628 if (unlikely(var58
== NULL
)) {
629 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule");
630 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 56);
638 var59
= nit___nit__MType___is_subtype(var_tc
, var56
, ((val
*)NULL
), var_mtype
);
646 { /* Inline rapid_type_analysis#RapidTypeAnalysis#mainmodule (self) on <self:RapidTypeAnalysis> */
647 var63
= self
->attrs
[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___mainmodule
].val
; /* _mainmodule on <self:RapidTypeAnalysis> */
648 if (unlikely(var63
== NULL
)) {
649 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule");
650 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 56);
658 var64
= nit___nit__MProperty___lookup_first_definition(var_mproperty
, var61
, var_tc
);
662 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])>*/
664 BREAK_label
: (void)0;
666 ((void(*)(val
* self
))((((long)var_47
&3)?class_info
[((long)var_47
&3)]:var_47
->class)->vft
[COLOR_standard__abstract_collection__Iterator__next
]))(var_47
); /* next on <var_47:Iterator[MClass]>*/
672 BREAK_label65
: (void)0;
674 ((void(*)(val
* self
))((((long)var_47
&3)?class_info
[((long)var_47
&3)]:var_47
->class)->vft
[COLOR_standard__abstract_collection__Iterator__finish
]))(var_47
); /* finish on <var_47:Iterator[MClass]>*/
681 /* method rapid_type_analysis#RapidTypeAnalysis#live_super_sends for (self: RapidTypeAnalysis): HashSet[MMethodDef] */
682 val
* nit___nit__RapidTypeAnalysis___live_super_sends(val
* self
) {
683 val
* var
/* : HashSet[MMethodDef] */;
684 val
* var1
/* : HashSet[MMethodDef] */;
685 var1
= self
->attrs
[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___live_super_sends
].val
; /* _live_super_sends on <self:RapidTypeAnalysis> */
686 if (unlikely(var1
== NULL
)) {
687 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_super_sends");
688 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 114);
695 /* method rapid_type_analysis#RapidTypeAnalysis#live_types_to_csv for (self: RapidTypeAnalysis): CsvDocument */
696 val
* nit___nit__RapidTypeAnalysis___live_types_to_csv(val
* self
) {
697 val
* var
/* : CsvDocument */;
698 val
* var1
/* : HashSet[MType] */;
699 val
* var_typeset
/* var typeset: HashSet[MType] */;
700 val
* var2
/* : HashSet[MClassType] */;
701 val
* var4
/* : HashSet[MClassType] */;
702 val
* var5
/* : HashSet[MClassType] */;
703 val
* var7
/* : HashSet[MClassType] */;
704 val
* var8
/* : HashSet[MType] */;
705 val
* var10
/* : HashSet[MType] */;
706 val
* var11
/* : HashSet[MType] */;
707 val
* var13
/* : HashSet[MType] */;
708 val
* var14
/* : Array[nullable Object] */;
709 val
* var_types
/* var types: Array[MType] */;
710 val
* var15
/* : CachedAlphaComparator */;
711 val
* var17
/* : CsvDocument */;
712 val
* var_res
/* var res: CsvDocument */;
713 val
* var19
/* : CsvFormat */;
715 val
* var20
/* : String */;
716 char* var21
/* : NativeString */;
717 val
* var22
/* : FlatString */;
718 val
* var24
/* : Array[String] */;
719 val
* var_
/* var : Array[String] */;
720 static val
* varonce25
;
721 val
* var26
/* : String */;
722 char* var27
/* : NativeString */;
723 val
* var28
/* : FlatString */;
724 static val
* varonce29
;
725 val
* var30
/* : String */;
726 char* var31
/* : NativeString */;
727 val
* var32
/* : FlatString */;
728 static val
* varonce33
;
729 val
* var34
/* : String */;
730 char* var35
/* : NativeString */;
731 val
* var36
/* : FlatString */;
732 static val
* varonce37
;
733 val
* var38
/* : String */;
734 char* var39
/* : NativeString */;
735 val
* var40
/* : FlatString */;
736 val
* var_42
/* var : Array[MType] */;
737 val
* var43
/* : ArrayIterator[nullable Object] */;
738 val
* var_44
/* var : ArrayIterator[MType] */;
739 short int var45
/* : Bool */;
740 val
* var46
/* : nullable Object */;
741 val
* var_t
/* var t: MType */;
742 short int var47
/* : Bool */;
743 static val
* varonce48
;
744 val
* var49
/* : String */;
745 char* var50
/* : NativeString */;
746 val
* var51
/* : FlatString */;
747 val
* var_reso
/* var reso: nullable Object */;
748 static val
* varonce52
;
749 val
* var53
/* : String */;
750 char* var54
/* : NativeString */;
751 val
* var55
/* : FlatString */;
752 short int var56
/* : Bool */;
753 short int var57
/* : Bool */;
756 short int var_58
/* var : Bool */;
757 short int var59
/* : Bool */;
758 val
* var60
/* : HashSet[MClassType] */;
759 val
* var62
/* : HashSet[MClassType] */;
760 short int var63
/* : Bool */;
761 short int var_64
/* var : Bool */;
762 val
* var65
/* : HashSet[MClassType] */;
763 val
* var67
/* : HashSet[MClassType] */;
764 short int var68
/* : Bool */;
765 static val
* varonce69
;
766 val
* var70
/* : String */;
767 char* var71
/* : NativeString */;
768 val
* var72
/* : FlatString */;
769 val
* var_live
/* var live: nullable Object */;
770 static val
* varonce73
;
771 val
* var74
/* : String */;
772 char* var75
/* : NativeString */;
773 val
* var76
/* : FlatString */;
774 short int var77
/* : Bool */;
775 val
* var78
/* : HashSet[MType] */;
776 val
* var80
/* : HashSet[MType] */;
777 short int var81
/* : Bool */;
778 short int var_82
/* var : Bool */;
779 val
* var83
/* : HashSet[MType] */;
780 val
* var85
/* : HashSet[MType] */;
781 short int var86
/* : Bool */;
782 static val
* varonce87
;
783 val
* var88
/* : String */;
784 char* var89
/* : NativeString */;
785 val
* var90
/* : FlatString */;
786 val
* var_cast
/* var cast: nullable Object */;
787 static val
* varonce91
;
788 val
* var92
/* : String */;
789 char* var93
/* : NativeString */;
790 val
* var94
/* : FlatString */;
791 val
* var95
/* : Array[Object] */;
792 val
* var96
/* : NativeArray[Object] */;
793 var1
= NEW_standard__HashSet(&type_standard__HashSet__nit__MType
);
795 standard___standard__HashSet___standard__kernel__Object__init(var1
); /* Direct call hash_collection#HashSet#init on <var1:HashSet[MType]>*/
799 { /* Inline rapid_type_analysis#RapidTypeAnalysis#live_types (self) on <self:RapidTypeAnalysis> */
800 var4
= self
->attrs
[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___live_types
].val
; /* _live_types on <self:RapidTypeAnalysis> */
801 if (unlikely(var4
== NULL
)) {
802 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_types");
803 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 60);
811 standard___standard__SimpleCollection___add_all(var_typeset
, var2
); /* Direct call abstract_collection#SimpleCollection#add_all on <var_typeset:HashSet[MType]>*/
814 { /* Inline rapid_type_analysis#RapidTypeAnalysis#live_open_types (self) on <self:RapidTypeAnalysis> */
815 var7
= self
->attrs
[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___live_open_types
].val
; /* _live_open_types on <self:RapidTypeAnalysis> */
816 if (unlikely(var7
== NULL
)) {
817 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_open_types");
818 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 65);
826 standard___standard__SimpleCollection___add_all(var_typeset
, var5
); /* Direct call abstract_collection#SimpleCollection#add_all on <var_typeset:HashSet[MType]>*/
829 { /* Inline rapid_type_analysis#RapidTypeAnalysis#live_cast_types (self) on <self:RapidTypeAnalysis> */
830 var10
= self
->attrs
[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___live_cast_types
].val
; /* _live_cast_types on <self:RapidTypeAnalysis> */
831 if (unlikely(var10
== NULL
)) {
832 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_cast_types");
833 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 72);
841 standard___standard__SimpleCollection___add_all(var_typeset
, var8
); /* Direct call abstract_collection#SimpleCollection#add_all on <var_typeset:HashSet[MType]>*/
844 { /* Inline rapid_type_analysis#RapidTypeAnalysis#live_open_cast_types (self) on <self:RapidTypeAnalysis> */
845 var13
= self
->attrs
[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___live_open_cast_types
].val
; /* _live_open_cast_types on <self:RapidTypeAnalysis> */
846 if (unlikely(var13
== NULL
)) {
847 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_open_cast_types");
848 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 75);
856 standard___standard__SimpleCollection___add_all(var_typeset
, var11
); /* Direct call abstract_collection#SimpleCollection#add_all on <var_typeset:HashSet[MType]>*/
859 var14
= standard__array___Collection___to_a(var_typeset
);
862 var15
= NEW_standard__CachedAlphaComparator(&type_standard__CachedAlphaComparator
);
864 { /* Inline kernel#Object#init (var15) on <var15:CachedAlphaComparator> */
869 standard___standard__Comparator___sort(var15
, var_types
); /* Direct call sorter#Comparator#sort on <var15:CachedAlphaComparator>*/
871 var17
= NEW_csv__CsvDocument(&type_csv__CsvDocument
);
873 { /* Inline kernel#Object#init (var17) on <var17:CsvDocument> */
878 var19
= NEW_csv__CsvFormat(&type_csv__CsvFormat
);
879 if (likely(varonce
!=NULL
)) {
883 var22
= standard___standard__NativeString___to_s_with_length(var21
, 1l);
888 ((void(*)(val
* self
, uint32_t p0
))(var19
->class->vft
[COLOR_csv__CsvFormat__delimiter_61d
]))(var19
, '\"'); /* delimiter= on <var19:CsvFormat>*/
891 ((void(*)(val
* self
, uint32_t p0
))(var19
->class->vft
[COLOR_csv__CsvFormat__separator_61d
]))(var19
, ';'); /* separator= on <var19:CsvFormat>*/
894 ((void(*)(val
* self
, val
* p0
))(var19
->class->vft
[COLOR_csv__CsvFormat__eol_61d
]))(var19
, var20
); /* eol= on <var19:CsvFormat>*/
897 ((void(*)(val
* self
))(var19
->class->vft
[COLOR_standard__kernel__Object__init
]))(var19
); /* init on <var19:CsvFormat>*/
900 { /* Inline csv#CsvDocument#format= (var_res,var19) on <var_res:CsvDocument> */
901 var_res
->attrs
[COLOR_csv__CsvDocument___format
].val
= var19
; /* _format on <var_res:CsvDocument> */
905 var24
= NEW_standard__Array(&type_standard__Array__standard__String
);
907 standard___standard__Array___with_capacity(var24
, 4l); /* Direct call array#Array#with_capacity on <var24:Array[String]>*/
910 if (likely(varonce25
!=NULL
)) {
914 var28
= standard___standard__NativeString___to_s_with_length(var27
, 4l);
919 standard___standard__AbstractArray___standard__abstract_collection__Sequence__push(var_
, var26
); /* Direct call array#AbstractArray#push on <var_:Array[String]>*/
921 if (likely(varonce29
!=NULL
)) {
924 var31
= "Resolution";
925 var32
= standard___standard__NativeString___to_s_with_length(var31
, 10l);
930 standard___standard__AbstractArray___standard__abstract_collection__Sequence__push(var_
, var30
); /* Direct call array#AbstractArray#push on <var_:Array[String]>*/
932 if (likely(varonce33
!=NULL
)) {
936 var36
= standard___standard__NativeString___to_s_with_length(var35
, 8l);
941 standard___standard__AbstractArray___standard__abstract_collection__Sequence__push(var_
, var34
); /* Direct call array#AbstractArray#push on <var_:Array[String]>*/
943 if (likely(varonce37
!=NULL
)) {
946 var39
= "Cast-liveness";
947 var40
= standard___standard__NativeString___to_s_with_length(var39
, 13l);
952 standard___standard__AbstractArray___standard__abstract_collection__Sequence__push(var_
, var38
); /* Direct call array#AbstractArray#push on <var_:Array[String]>*/
955 { /* Inline csv#CsvDocument#header= (var_res,var_) on <var_res:CsvDocument> */
956 var_res
->attrs
[COLOR_csv__CsvDocument___header
].val
= var_
; /* _header on <var_res:CsvDocument> */
962 var43
= standard___standard__AbstractArrayRead___standard__abstract_collection__Collection__iterator(var_42
);
967 var45
= standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__is_ok(var_44
);
971 var46
= standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__item(var_44
);
975 var47
= ((short int(*)(val
* self
))(var_t
->class->vft
[COLOR_nit__model__MType__need_anchor
]))(var_t
); /* need_anchor on <var_t:MType>*/
978 if (likely(varonce48
!=NULL
)) {
982 var51
= standard___standard__NativeString___to_s_with_length(var50
, 5l);
988 if (likely(varonce52
!=NULL
)) {
992 var55
= standard___standard__NativeString___to_s_with_length(var54
, 6l);
998 /* <var_t:MType> isa MClassType */
999 cltype
= type_nit__MClassType
.color
;
1000 idtype
= type_nit__MClassType
.id
;
1001 if(cltype
>= var_t
->type
->table_size
) {
1004 var57
= var_t
->type
->type_table
[cltype
] == idtype
;
1009 { /* Inline rapid_type_analysis#RapidTypeAnalysis#live_types (self) on <self:RapidTypeAnalysis> */
1010 var62
= self
->attrs
[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___live_types
].val
; /* _live_types on <self:RapidTypeAnalysis> */
1011 if (unlikely(var62
== NULL
)) {
1012 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_types");
1013 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 60);
1017 RET_LABEL61
:(void)0;
1021 var63
= standard___standard__HashSet___standard__abstract_collection__Collection__has(var60
, var_t
);
1028 { /* Inline rapid_type_analysis#RapidTypeAnalysis#live_open_types (self) on <self:RapidTypeAnalysis> */
1029 var67
= self
->attrs
[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___live_open_types
].val
; /* _live_open_types on <self:RapidTypeAnalysis> */
1030 if (unlikely(var67
== NULL
)) {
1031 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_open_types");
1032 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 65);
1036 RET_LABEL66
:(void)0;
1040 var68
= standard___standard__HashSet___standard__abstract_collection__Collection__has(var65
, var_t
);
1049 if (likely(varonce69
!=NULL
)) {
1053 var72
= standard___standard__NativeString___to_s_with_length(var71
, 4l);
1059 if (likely(varonce73
!=NULL
)) {
1063 var76
= standard___standard__NativeString___to_s_with_length(var75
, 4l);
1070 { /* Inline rapid_type_analysis#RapidTypeAnalysis#live_cast_types (self) on <self:RapidTypeAnalysis> */
1071 var80
= self
->attrs
[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___live_cast_types
].val
; /* _live_cast_types on <self:RapidTypeAnalysis> */
1072 if (unlikely(var80
== NULL
)) {
1073 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_cast_types");
1074 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 72);
1078 RET_LABEL79
:(void)0;
1082 var81
= standard___standard__HashSet___standard__abstract_collection__Collection__has(var78
, var_t
);
1089 { /* Inline rapid_type_analysis#RapidTypeAnalysis#live_open_cast_types (self) on <self:RapidTypeAnalysis> */
1090 var85
= self
->attrs
[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___live_open_cast_types
].val
; /* _live_open_cast_types on <self:RapidTypeAnalysis> */
1091 if (unlikely(var85
== NULL
)) {
1092 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_open_cast_types");
1093 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 75);
1097 RET_LABEL84
:(void)0;
1101 var86
= standard___standard__HashSet___standard__abstract_collection__Collection__has(var83
, var_t
);
1106 if (likely(varonce87
!=NULL
)) {
1109 var89
= "CAST LIVE";
1110 var90
= standard___standard__NativeString___to_s_with_length(var89
, 9l);
1116 if (likely(varonce91
!=NULL
)) {
1119 var93
= "CAST DEAD";
1120 var94
= standard___standard__NativeString___to_s_with_length(var93
, 9l);
1126 var95
= NEW_standard__Array(&type_standard__Array__standard__Object
);
1127 { /* var95 = array_instance Array[Object] */
1128 var96
= NEW_standard__NativeArray(4l, &type_standard__NativeArray__standard__Object
);
1129 ((struct instance_standard__NativeArray
*)var96
)->values
[0] = (val
*) var_t
;
1130 ((struct instance_standard__NativeArray
*)var96
)->values
[1] = (val
*) var_reso
;
1131 ((struct instance_standard__NativeArray
*)var96
)->values
[2] = (val
*) var_live
;
1132 ((struct instance_standard__NativeArray
*)var96
)->values
[3] = (val
*) var_cast
;
1134 ((void(*)(val
* self
, val
* p0
, long p1
))(var95
->class->vft
[COLOR_standard__array__Array__with_native
]))(var95
, var96
, 4l); /* with_native on <var95:Array[Object]>*/
1138 csv___csv__CsvDocument___add_record(var_res
, var95
); /* Direct call csv#CsvDocument#add_record on <var_res:CsvDocument>*/
1141 standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__next(var_44
); /* Direct call array#ArrayIterator#next on <var_44:ArrayIterator[MType]>*/
1147 BREAK_label
: (void)0;
1149 standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__finish(var_44
); /* Direct call array#ArrayIterator#finish on <var_44:ArrayIterator[MType]>*/
1156 /* method rapid_type_analysis#RapidTypeAnalysis#live_methods_to_tree for (self: RapidTypeAnalysis): OrderedTree[Object] */
1157 val
* nit___nit__RapidTypeAnalysis___live_methods_to_tree(val
* self
) {
1158 val
* var
/* : OrderedTree[Object] */;
1159 val
* var1
/* : OrderedTree[Object] */;
1160 val
* var_tree
/* var tree: OrderedTree[Object] */;
1161 val
* var3
/* : HashSet[MMethod] */;
1162 val
* var5
/* : HashSet[MMethod] */;
1163 val
* var_
/* var : HashSet[MMethod] */;
1164 val
* var6
/* : Iterator[nullable Object] */;
1165 val
* var_7
/* var : Iterator[MMethod] */;
1166 short int var8
/* : Bool */;
1167 val
* var9
/* : nullable Object */;
1168 val
* var_x
/* var x: MMethod */;
1169 val
* var10
/* : String */;
1170 val
* var_xn
/* var xn: String */;
1171 val
* var11
/* : Array[MPropDef] */;
1172 val
* var13
/* : Array[MPropDef] */;
1173 val
* var_14
/* var : Array[MMethodDef] */;
1174 val
* var15
/* : ArrayIterator[nullable Object] */;
1175 val
* var_16
/* var : ArrayIterator[MMethodDef] */;
1176 short int var17
/* : Bool */;
1177 val
* var18
/* : nullable Object */;
1178 val
* var_z
/* var z: MMethodDef */;
1179 val
* var19
/* : String */;
1180 val
* var21
/* : String */;
1181 val
* var_zn
/* var zn: String */;
1182 val
* var22
/* : HashSet[MMethodDef] */;
1183 val
* var24
/* : HashSet[MMethodDef] */;
1184 short int var25
/* : Bool */;
1185 val
* var26
/* : HashSet[MMethodDef] */;
1186 val
* var28
/* : HashSet[MMethodDef] */;
1187 short int var29
/* : Bool */;
1188 static val
* varonce
;
1189 val
* var30
/* : String */;
1190 char* var31
/* : NativeString */;
1191 val
* var32
/* : FlatString */;
1192 val
* var33
/* : String */;
1193 val
* var34
/* : HashSet[MMethodDef] */;
1194 val
* var36
/* : HashSet[MMethodDef] */;
1195 short int var37
/* : Bool */;
1196 static val
* varonce38
;
1197 val
* var39
/* : String */;
1198 char* var40
/* : NativeString */;
1199 val
* var41
/* : FlatString */;
1200 val
* var42
/* : String */;
1201 val
* var44
/* : Sys */;
1202 val
* var45
/* : Comparator */;
1203 var1
= NEW_ordered_tree__OrderedTree(&type_ordered_tree__OrderedTree__standard__Object
);
1205 { /* Inline kernel#Object#init (var1) on <var1:OrderedTree[Object]> */
1211 { /* Inline rapid_type_analysis#RapidTypeAnalysis#live_methods (self) on <self:RapidTypeAnalysis> */
1212 var5
= self
->attrs
[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___live_methods
].val
; /* _live_methods on <self:RapidTypeAnalysis> */
1213 if (unlikely(var5
== NULL
)) {
1214 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_methods");
1215 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 82);
1224 var6
= standard___standard__HashSet___standard__abstract_collection__Collection__iterator(var_
);
1229 var8
= ((short int(*)(val
* self
))((((long)var_7
&3)?class_info
[((long)var_7
&3)]:var_7
->class)->vft
[COLOR_standard__abstract_collection__Iterator__is_ok
]))(var_7
); /* is_ok on <var_7:Iterator[MMethod]>*/
1233 var9
= ((val
*(*)(val
* self
))((((long)var_7
&3)?class_info
[((long)var_7
&3)]:var_7
->class)->vft
[COLOR_standard__abstract_collection__Iterator__item
]))(var_7
); /* item on <var_7:Iterator[MMethod]>*/
1237 var10
= nit___nit__MProperty___nit__model_base__MEntity__full_name(var_x
);
1241 ordered_tree___ordered_tree__OrderedTree___add(var_tree
, ((val
*)NULL
), var_xn
); /* Direct call ordered_tree#OrderedTree#add on <var_tree:OrderedTree[Object]>*/
1244 { /* Inline model#MProperty#mpropdefs (var_x) on <var_x:MMethod> */
1245 var13
= var_x
->attrs
[COLOR_nit__model__MProperty___mpropdefs
].val
; /* _mpropdefs on <var_x:MMethod> */
1246 if (unlikely(var13
== NULL
)) {
1247 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mpropdefs");
1248 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 1963);
1252 RET_LABEL12
:(void)0;
1257 var15
= standard___standard__AbstractArrayRead___standard__abstract_collection__Collection__iterator(var_14
);
1262 var17
= standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__is_ok(var_16
);
1266 var18
= standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__item(var_16
);
1270 { /* Inline model#MPropDef#to_s (var_z) on <var_z:MMethodDef> */
1271 var21
= var_z
->attrs
[COLOR_nit__model__MPropDef___to_s
].val
; /* _to_s on <var_z:MMethodDef> */
1272 if (unlikely(var21
== NULL
)) {
1273 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _to_s");
1274 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 2303);
1278 RET_LABEL20
:(void)0;
1283 { /* Inline rapid_type_analysis#RapidTypeAnalysis#live_methoddefs (self) on <self:RapidTypeAnalysis> */
1284 var24
= self
->attrs
[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___live_methoddefs
].val
; /* _live_methoddefs on <self:RapidTypeAnalysis> */
1285 if (unlikely(var24
== NULL
)) {
1286 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_methoddefs");
1287 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 79);
1291 RET_LABEL23
:(void)0;
1295 var25
= standard___standard__HashSet___standard__abstract_collection__Collection__has(var22
, var_z
);
1299 ordered_tree___ordered_tree__OrderedTree___add(var_tree
, var_xn
, var_zn
); /* Direct call ordered_tree#OrderedTree#add on <var_tree:OrderedTree[Object]>*/
1302 { /* Inline rapid_type_analysis#RapidTypeAnalysis#live_super_sends (self) on <self:RapidTypeAnalysis> */
1303 var28
= self
->attrs
[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___live_super_sends
].val
; /* _live_super_sends on <self:RapidTypeAnalysis> */
1304 if (unlikely(var28
== NULL
)) {
1305 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_super_sends");
1306 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 114);
1310 RET_LABEL27
:(void)0;
1314 var29
= standard___standard__HashSet___standard__abstract_collection__Collection__has(var26
, var_z
);
1317 if (likely(varonce
!=NULL
)) {
1321 var32
= standard___standard__NativeString___to_s_with_length(var31
, 7l);
1326 var33
= ((val
*(*)(val
* self
, val
* p0
))(var_zn
->class->vft
[COLOR_standard__string__String___43d
]))(var_zn
, var30
); /* + on <var_zn:String>*/
1329 ordered_tree___ordered_tree__OrderedTree___add(var_tree
, var_zn
, var33
); /* Direct call ordered_tree#OrderedTree#add on <var_tree:OrderedTree[Object]>*/
1335 { /* Inline rapid_type_analysis#RapidTypeAnalysis#live_super_sends (self) on <self:RapidTypeAnalysis> */
1336 var36
= self
->attrs
[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___live_super_sends
].val
; /* _live_super_sends on <self:RapidTypeAnalysis> */
1337 if (unlikely(var36
== NULL
)) {
1338 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_super_sends");
1339 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 114);
1343 RET_LABEL35
:(void)0;
1347 var37
= standard___standard__HashSet___standard__abstract_collection__Collection__has(var34
, var_z
);
1350 if (likely(varonce38
!=NULL
)) {
1354 var41
= standard___standard__NativeString___to_s_with_length(var40
, 7l);
1359 var42
= ((val
*(*)(val
* self
, val
* p0
))(var_zn
->class->vft
[COLOR_standard__string__String___43d
]))(var_zn
, var39
); /* + on <var_zn:String>*/
1362 ordered_tree___ordered_tree__OrderedTree___add(var_tree
, var_xn
, var42
); /* Direct call ordered_tree#OrderedTree#add on <var_tree:OrderedTree[Object]>*/
1368 standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__next(var_16
); /* Direct call array#ArrayIterator#next on <var_16:ArrayIterator[MMethodDef]>*/
1374 BREAK_label
: (void)0;
1376 standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__finish(var_16
); /* Direct call array#ArrayIterator#finish on <var_16:ArrayIterator[MMethodDef]>*/
1379 ((void(*)(val
* self
))((((long)var_7
&3)?class_info
[((long)var_7
&3)]:var_7
->class)->vft
[COLOR_standard__abstract_collection__Iterator__next
]))(var_7
); /* next on <var_7:Iterator[MMethod]>*/
1385 BREAK_label43
: (void)0;
1387 ((void(*)(val
* self
))((((long)var_7
&3)?class_info
[((long)var_7
&3)]:var_7
->class)->vft
[COLOR_standard__abstract_collection__Iterator__finish
]))(var_7
); /* finish on <var_7:Iterator[MMethod]>*/
1391 var45
= standard__string___Sys___alpha_comparator(var44
);
1394 ordered_tree___ordered_tree__OrderedTree___sort_with(var_tree
, var45
); /* Direct call ordered_tree#OrderedTree#sort_with on <var_tree:OrderedTree[Object]>*/
1401 /* method rapid_type_analysis#RapidTypeAnalysis#totry_methods for (self: RapidTypeAnalysis): HashSet[MMethod] */
1402 val
* nit___nit__RapidTypeAnalysis___totry_methods(val
* self
) {
1403 val
* var
/* : HashSet[MMethod] */;
1404 val
* var1
/* : HashSet[MMethod] */;
1405 var1
= self
->attrs
[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___totry_methods
].val
; /* _totry_methods on <self:RapidTypeAnalysis> */
1406 if (unlikely(var1
== NULL
)) {
1407 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _totry_methods");
1408 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 169);
1415 /* method rapid_type_analysis#RapidTypeAnalysis#totry_methods_to_remove for (self: RapidTypeAnalysis): Array[MMethod] */
1416 val
* nit___nit__RapidTypeAnalysis___totry_methods_to_remove(val
* self
) {
1417 val
* var
/* : Array[MMethod] */;
1418 val
* var1
/* : Array[MMethod] */;
1419 var1
= self
->attrs
[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___totry_methods_to_remove
].val
; /* _totry_methods_to_remove on <self:RapidTypeAnalysis> */
1420 if (unlikely(var1
== NULL
)) {
1421 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _totry_methods_to_remove");
1422 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 172);
1429 /* method rapid_type_analysis#RapidTypeAnalysis#try_methods for (self: RapidTypeAnalysis): HashSet[MMethod] */
1430 val
* nit___nit__RapidTypeAnalysis___try_methods(val
* self
) {
1431 val
* var
/* : HashSet[MMethod] */;
1432 val
* var1
/* : HashSet[MMethod] */;
1433 var1
= self
->attrs
[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___try_methods
].val
; /* _try_methods on <self:RapidTypeAnalysis> */
1434 if (unlikely(var1
== NULL
)) {
1435 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _try_methods");
1436 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 175);
1443 /* method rapid_type_analysis#RapidTypeAnalysis#todo for (self: RapidTypeAnalysis): List[MMethodDef] */
1444 val
* nit___nit__RapidTypeAnalysis___todo(val
* self
) {
1445 val
* var
/* : List[MMethodDef] */;
1446 val
* var1
/* : List[MMethodDef] */;
1447 var1
= self
->attrs
[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___todo
].val
; /* _todo on <self:RapidTypeAnalysis> */
1448 if (unlikely(var1
== NULL
)) {
1449 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _todo");
1450 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 179);
1457 /* method rapid_type_analysis#RapidTypeAnalysis#force_alive for (self: RapidTypeAnalysis, String) */
1458 void nit___nit__RapidTypeAnalysis___force_alive(val
* self
, val
* p0
) {
1459 val
* var_classname
/* var classname: String */;
1460 val
* var
/* : ModelBuilder */;
1461 val
* var2
/* : ModelBuilder */;
1462 val
* var3
/* : Model */;
1463 val
* var5
/* : Model */;
1464 val
* var6
/* : nullable Array[MClass] */;
1465 val
* var_classes
/* var classes: nullable Array[MClass] */;
1466 short int var7
/* : Bool */;
1467 short int var8
/* : Bool */;
1468 val
* var_other
/* var other: nullable Object */;
1469 short int var10
/* : Bool */;
1470 short int var11
/* : Bool */;
1471 val
* var_
/* var : Array[MClass] */;
1472 val
* var12
/* : ArrayIterator[nullable Object] */;
1473 val
* var_13
/* var : ArrayIterator[MClass] */;
1474 short int var14
/* : Bool */;
1475 val
* var15
/* : nullable Object */;
1476 val
* var_c
/* var c: MClass */;
1477 val
* var16
/* : MClassType */;
1478 val
* var18
/* : MClassType */;
1479 val
* var19
/* : MClassType */;
1480 val
* var21
/* : MClassType */;
1483 { /* Inline rapid_type_analysis#RapidTypeAnalysis#modelbuilder (self) on <self:RapidTypeAnalysis> */
1484 var2
= self
->attrs
[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___modelbuilder
].val
; /* _modelbuilder on <self:RapidTypeAnalysis> */
1485 if (unlikely(var2
== NULL
)) {
1486 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
1487 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 53);
1495 { /* Inline modelbuilder_base#ModelBuilder#model (var) on <var:ModelBuilder> */
1496 var5
= var
->attrs
[COLOR_nit__modelbuilder_base__ModelBuilder___model
].val
; /* _model on <var:ModelBuilder> */
1497 if (unlikely(var5
== NULL
)) {
1498 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _model");
1499 PRINT_ERROR(" (%s:%d)\n", FILE_nit__modelbuilder_base
, 44);
1507 var6
= nit__model___Model___get_mclasses_by_name(var3
, var_classname
);
1510 if (var_classes
== NULL
) {
1511 var7
= 0; /* is null */
1513 var7
= 1; /* arg is null and recv is not */
1516 { /* Inline kernel#Object#!= (var_classes,((val*)NULL)) on <var_classes:nullable Array[MClass]> */
1517 var_other
= ((val
*)NULL
);
1519 var10
= ((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])>*/
1531 var12
= standard___standard__AbstractArrayRead___standard__abstract_collection__Collection__iterator(var_
);
1536 var14
= standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__is_ok(var_13
);
1540 var15
= standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__item(var_13
);
1544 { /* Inline model#MClass#mclass_type (var_c) on <var_c:MClass> */
1545 var18
= var_c
->attrs
[COLOR_nit__model__MClass___mclass_type
].val
; /* _mclass_type on <var_c:MClass> */
1546 if (unlikely(var18
== NULL
)) {
1547 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass_type");
1548 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 484);
1552 RET_LABEL17
:(void)0;
1556 { /* Inline model#MClass#mclass_type (var_c) on <var_c:MClass> */
1557 var21
= var_c
->attrs
[COLOR_nit__model__MClass___mclass_type
].val
; /* _mclass_type on <var_c:MClass> */
1558 if (unlikely(var21
== NULL
)) {
1559 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass_type");
1560 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 484);
1564 RET_LABEL20
:(void)0;
1568 nit___nit__RapidTypeAnalysis___add_new(self
, var16
, var19
); /* Direct call rapid_type_analysis#RapidTypeAnalysis#add_new on <self:RapidTypeAnalysis>*/
1571 standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__next(var_13
); /* Direct call array#ArrayIterator#next on <var_13:ArrayIterator[MClass]>*/
1577 BREAK_label
: (void)0;
1579 standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__finish(var_13
); /* Direct call array#ArrayIterator#finish on <var_13:ArrayIterator[MClass]>*/
1585 /* method rapid_type_analysis#RapidTypeAnalysis#run_analysis for (self: RapidTypeAnalysis) */
1586 void nit___nit__RapidTypeAnalysis___run_analysis(val
* self
) {
1587 val
* var
/* : MModule */;
1588 val
* var2
/* : MModule */;
1589 val
* var3
/* : nullable MClassType */;
1590 val
* var_maintype
/* var maintype: nullable MClassType */;
1591 short int var4
/* : Bool */;
1592 short int var5
/* : Bool */;
1593 val
* var_other
/* var other: nullable Object */;
1594 short int var7
/* : Bool */;
1595 short int var9
/* : Bool */;
1596 val
* var10
/* : MModule */;
1597 val
* var12
/* : MModule */;
1598 static val
* varonce
;
1599 val
* var13
/* : String */;
1600 char* var14
/* : NativeString */;
1601 val
* var15
/* : FlatString */;
1602 val
* var16
/* : MClass */;
1603 val
* var18
/* : MClass */;
1604 val
* var19
/* : nullable MMethod */;
1605 val
* var_initprop
/* var initprop: nullable MMethod */;
1606 short int var20
/* : Bool */;
1607 short int var21
/* : Bool */;
1608 val
* var_other23
/* var other: nullable Object */;
1609 short int var24
/* : Bool */;
1610 short int var25
/* : Bool */;
1611 val
* var26
/* : nullable MMethod */;
1612 val
* var27
/* : MModule */;
1613 val
* var29
/* : MModule */;
1614 static val
* varonce30
;
1615 val
* var31
/* : String */;
1616 char* var32
/* : NativeString */;
1617 val
* var33
/* : FlatString */;
1618 val
* var34
/* : MClass */;
1619 val
* var36
/* : MClass */;
1620 val
* var37
/* : nullable MMethod */;
1621 val
* var38
/* : MModule */;
1622 val
* var40
/* : MModule */;
1623 static val
* varonce41
;
1624 val
* var42
/* : String */;
1625 char* var43
/* : NativeString */;
1626 val
* var44
/* : FlatString */;
1627 val
* var45
/* : MClass */;
1628 val
* var47
/* : MClass */;
1629 val
* var48
/* : nullable MMethod */;
1630 val
* var_mainprop
/* var mainprop: nullable MMethod */;
1631 short int var49
/* : Bool */;
1632 short int var50
/* : Bool */;
1633 short int var52
/* : Bool */;
1634 short int var53
/* : Bool */;
1635 val
* var54
/* : MModule */;
1636 val
* var56
/* : MModule */;
1637 val
* var57
/* : nullable MClassType */;
1638 val
* var_finalizable_type
/* var finalizable_type: nullable MClassType */;
1639 short int var58
/* : Bool */;
1640 short int var59
/* : Bool */;
1641 short int var61
/* : Bool */;
1642 short int var62
/* : Bool */;
1643 val
* var63
/* : MModule */;
1644 val
* var65
/* : MModule */;
1645 static val
* varonce66
;
1646 val
* var67
/* : String */;
1647 char* var68
/* : NativeString */;
1648 val
* var69
/* : FlatString */;
1649 val
* var70
/* : MClass */;
1650 val
* var72
/* : MClass */;
1651 val
* var73
/* : nullable MMethod */;
1652 val
* var_finalize_meth
/* var finalize_meth: nullable MMethod */;
1653 short int var74
/* : Bool */;
1654 short int var75
/* : Bool */;
1655 short int var77
/* : Bool */;
1656 short int var78
/* : Bool */;
1657 static val
* varonce79
;
1658 val
* var80
/* : String */;
1659 char* var81
/* : NativeString */;
1660 val
* var82
/* : FlatString */;
1661 static val
* varonce83
;
1662 val
* var84
/* : String */;
1663 char* var85
/* : NativeString */;
1664 val
* var86
/* : FlatString */;
1665 static val
* varonce87
;
1666 val
* var88
/* : String */;
1667 char* var89
/* : NativeString */;
1668 val
* var90
/* : FlatString */;
1669 static val
* varonce91
;
1670 val
* var92
/* : String */;
1671 char* var93
/* : NativeString */;
1672 val
* var94
/* : FlatString */;
1673 static val
* varonce95
;
1674 val
* var96
/* : String */;
1675 char* var97
/* : NativeString */;
1676 val
* var98
/* : FlatString */;
1677 static val
* varonce99
;
1678 val
* var100
/* : String */;
1679 char* var101
/* : NativeString */;
1680 val
* var102
/* : FlatString */;
1681 val
* var103
/* : List[MMethodDef] */;
1682 val
* var105
/* : List[MMethodDef] */;
1683 short int var106
/* : Bool */;
1684 short int var107
/* : Bool */;
1685 val
* var108
/* : List[MMethodDef] */;
1686 val
* var110
/* : List[MMethodDef] */;
1687 val
* var111
/* : nullable Object */;
1688 val
* var_mmethoddef
/* var mmethoddef: MMethodDef */;
1689 val
* var112
/* : MProperty */;
1690 val
* var114
/* : MProperty */;
1691 val
* var_mmeth
/* var mmeth: MMethod */;
1692 val
* var115
/* : nullable MSignature */;
1693 val
* var117
/* : nullable MSignature */;
1694 val
* var_msignature
/* var msignature: nullable MSignature */;
1695 short int var118
/* : Bool */;
1696 short int var119
/* : Bool */;
1697 short int var121
/* : Bool */;
1698 short int var123
/* : Bool */;
1699 val
* var124
/* : RapidTypeVisitor */;
1700 val
* var125
/* : MClassDef */;
1701 val
* var127
/* : MClassDef */;
1702 val
* var128
/* : MClassType */;
1703 val
* var130
/* : MClassType */;
1704 val
* var_v
/* var v: RapidTypeVisitor */;
1705 long var131
/* : Int */;
1706 long var133
/* : Int */;
1707 long var_vararg_rank
/* var vararg_rank: Int */;
1708 long var134
/* : Int */;
1709 long var136
/* : Int */;
1710 short int var137
/* : Bool */;
1711 short int var139
/* : Bool */;
1714 const char* var_class_name
;
1715 short int var140
/* : Bool */;
1716 val
* var141
/* : ModelBuilder */;
1717 val
* var143
/* : ModelBuilder */;
1718 val
* var144
/* : nullable ANode */;
1719 val
* var_node
/* var node: nullable ANode */;
1720 val
* var145
/* : Array[MParameter] */;
1721 val
* var147
/* : Array[MParameter] */;
1722 val
* var148
/* : nullable Object */;
1723 val
* var149
/* : MType */;
1724 val
* var151
/* : MType */;
1725 val
* var_elttype
/* var elttype: MType */;
1726 val
* var152
/* : MModule */;
1727 val
* var154
/* : MModule */;
1728 val
* var155
/* : MClassType */;
1729 val
* var_vararg
/* var vararg: MClassType */;
1730 val
* var156
/* : MModule */;
1731 val
* var158
/* : MModule */;
1732 val
* var159
/* : MClassType */;
1733 val
* var_native
/* var native: MClassType */;
1734 val
* var160
/* : ModelBuilder */;
1735 val
* var162
/* : ModelBuilder */;
1736 static val
* varonce163
;
1737 val
* var164
/* : String */;
1738 char* var165
/* : NativeString */;
1739 val
* var166
/* : FlatString */;
1740 val
* var167
/* : MClass */;
1741 val
* var169
/* : MClass */;
1742 val
* var170
/* : MModule */;
1743 val
* var172
/* : MModule */;
1744 val
* var173
/* : MMethod */;
1745 val
* var_sig
/* var sig: MSignature */;
1746 val
* var174
/* : MPropDef */;
1747 val
* var176
/* : MPropDef */;
1748 val
* var177
/* : nullable MSignature */;
1749 val
* var179
/* : nullable MSignature */;
1750 val
* var_osig
/* var osig: MSignature */;
1751 long var_i
/* var i: Int */;
1752 long var180
/* : Int */;
1753 long var_
/* var : Int */;
1754 short int var181
/* : Bool */;
1755 short int var183
/* : Bool */;
1758 const char* var_class_name186
;
1759 short int var187
/* : Bool */;
1760 val
* var188
/* : Array[MParameter] */;
1761 val
* var190
/* : Array[MParameter] */;
1762 val
* var191
/* : nullable Object */;
1763 val
* var192
/* : MType */;
1764 val
* var194
/* : MType */;
1765 val
* var_origtype
/* var origtype: MType */;
1766 short int var195
/* : Bool */;
1767 short int var196
/* : Bool */;
1768 val
* var198
/* : Array[MParameter] */;
1769 val
* var200
/* : Array[MParameter] */;
1770 val
* var201
/* : nullable Object */;
1771 val
* var202
/* : MType */;
1772 val
* var204
/* : MType */;
1773 val
* var_paramtype
/* var paramtype: MType */;
1774 long var205
/* : Int */;
1775 val
* var207
/* : ModelBuilder */;
1776 val
* var209
/* : ModelBuilder */;
1777 val
* var210
/* : nullable ANode */;
1778 val
* var_npropdef
/* var npropdef: nullable ANode */;
1779 short int var211
/* : Bool */;
1782 val
* var214
/* : nullable MMethodDef */;
1783 val
* var216
/* : nullable MMethodDef */;
1784 short int var217
/* : Bool */;
1785 short int var219
/* : Bool */;
1786 short int var221
/* : Bool */;
1787 short int var222
/* : Bool */;
1788 val
* var223
/* : MProperty */;
1789 val
* var225
/* : MProperty */;
1790 short int var226
/* : Bool */;
1791 short int var228
/* : Bool */;
1792 short int var_229
/* var : Bool */;
1793 short int var230
/* : Bool */;
1794 short int var231
/* : Bool */;
1795 val
* var232
/* : MClassType */;
1796 val
* var234
/* : MClassType */;
1797 val
* var235
/* : nullable Object */;
1798 val
* var237
/* : nullable Object */;
1799 short int var238
/* : Bool */;
1800 short int var239
/* : Bool */;
1801 val
* var240
/* : nullable MType */;
1802 val
* var242
/* : nullable MType */;
1803 short int var243
/* : Bool */;
1806 const char* var_class_name246
;
1807 short int var247
/* : Bool */;
1808 short int var248
/* : Bool */;
1809 short int var250
/* : Bool */;
1810 short int var252
/* : Bool */;
1811 short int var253
/* : Bool */;
1814 val
* var256
/* : nullable Array[CallSite] */;
1815 val
* var258
/* : nullable Array[CallSite] */;
1816 val
* var_auto_super_inits
/* var auto_super_inits: nullable Array[CallSite] */;
1817 short int var259
/* : Bool */;
1818 short int var260
/* : Bool */;
1819 short int var262
/* : Bool */;
1820 short int var263
/* : Bool */;
1821 val
* var_264
/* var : Array[CallSite] */;
1822 val
* var265
/* : ArrayIterator[nullable Object] */;
1823 val
* var_266
/* var : ArrayIterator[CallSite] */;
1824 short int var267
/* : Bool */;
1825 val
* var268
/* : nullable Object */;
1826 val
* var_auto_super_init
/* var auto_super_init: CallSite */;
1827 short int var270
/* : Bool */;
1828 short int var272
/* : Bool */;
1829 val
* var273
/* : MClassType */;
1830 val
* var275
/* : MClassType */;
1831 short int var276
/* : Bool */;
1832 short int var277
/* : Bool */;
1833 short int var279
/* : Bool */;
1834 short int var_280
/* var : Bool */;
1835 short int var281
/* : Bool */;
1836 short int var283
/* : Bool */;
1837 val
* var284
/* : nullable MType */;
1838 val
* var286
/* : nullable MType */;
1839 val
* var_ret
/* var ret: nullable MType */;
1840 short int var287
/* : Bool */;
1841 short int var288
/* : Bool */;
1842 short int var289
/* : Bool */;
1843 short int var290
/* : Bool */;
1844 short int var291
/* : Bool */;
1845 short int var293
/* : Bool */;
1846 short int var294
/* : Bool */;
1847 short int var_295
/* var : Bool */;
1848 short int var296
/* : Bool */;
1851 short int var_299
/* var : Bool */;
1852 val
* var300
/* : MClass */;
1853 val
* var302
/* : MClass */;
1854 val
* var303
/* : MClassKind */;
1855 val
* var305
/* : MClassKind */;
1856 val
* var306
/* : Sys */;
1857 val
* var307
/* : MClassKind */;
1858 short int var308
/* : Bool */;
1859 short int var310
/* : Bool */;
1860 short int var311
/* : Bool */;
1861 short int var_312
/* var : Bool */;
1862 val
* var313
/* : MClass */;
1863 val
* var315
/* : MClass */;
1864 val
* var316
/* : MClassKind */;
1865 val
* var318
/* : MClassKind */;
1866 val
* var319
/* : Sys */;
1867 val
* var320
/* : MClassKind */;
1868 short int var321
/* : Bool */;
1869 short int var323
/* : Bool */;
1870 short int var324
/* : Bool */;
1871 val
* var326
/* : List[MClassType] */;
1872 val
* var_todo_types
/* var todo_types: List[MClassType] */;
1873 val
* var328
/* : HashSet[MClassType] */;
1874 val
* var330
/* : HashSet[MClassType] */;
1875 short int var331
/* : Bool */;
1876 short int var332
/* : Bool */;
1877 val
* var333
/* : nullable Object */;
1878 val
* var_t
/* var t: MClassType */;
1879 val
* var334
/* : HashSet[MClassType] */;
1880 val
* var336
/* : HashSet[MClassType] */;
1881 val
* var_337
/* var : HashSet[MClassType] */;
1882 val
* var338
/* : Iterator[nullable Object] */;
1883 val
* var_339
/* var : Iterator[MClassType] */;
1884 short int var340
/* : Bool */;
1885 val
* var341
/* : nullable Object */;
1886 val
* var_ot
/* var ot: MClassType */;
1887 val
* var342
/* : MModule */;
1888 val
* var344
/* : MModule */;
1889 short int var345
/* : Bool */;
1890 short int var346
/* : Bool */;
1891 val
* var348
/* : MModule */;
1892 val
* var350
/* : MModule */;
1893 val
* var351
/* : MClassType */;
1894 val
* var_rt
/* var rt: MClassType */;
1895 val
* var352
/* : HashSet[MClassType] */;
1896 val
* var354
/* : HashSet[MClassType] */;
1897 short int var355
/* : Bool */;
1898 short int var356
/* : Bool */;
1899 short int var357
/* : Bool */;
1900 val
* var358
/* : HashSet[MClassType] */;
1901 val
* var360
/* : HashSet[MClassType] */;
1902 val
* var363
/* : HashSet[MType] */;
1903 val
* var365
/* : HashSet[MType] */;
1904 val
* var_366
/* var : HashSet[MType] */;
1905 val
* var367
/* : Iterator[nullable Object] */;
1906 val
* var_368
/* var : Iterator[MType] */;
1907 short int var369
/* : Bool */;
1908 val
* var370
/* : nullable Object */;
1909 val
* var_ot371
/* var ot: MType */;
1910 val
* var372
/* : HashSet[MClassType] */;
1911 val
* var374
/* : HashSet[MClassType] */;
1912 val
* var_375
/* var : HashSet[MClassType] */;
1913 val
* var376
/* : Iterator[nullable Object] */;
1914 val
* var_377
/* var : Iterator[MClassType] */;
1915 short int var378
/* : Bool */;
1916 val
* var379
/* : nullable Object */;
1917 val
* var_t380
/* var t: MClassType */;
1918 val
* var381
/* : MModule */;
1919 val
* var383
/* : MModule */;
1920 short int var384
/* : Bool */;
1921 short int var385
/* : Bool */;
1922 val
* var387
/* : MModule */;
1923 val
* var389
/* : MModule */;
1924 val
* var390
/* : MType */;
1925 val
* var_rt391
/* var rt: MType */;
1926 val
* var392
/* : HashSet[MType] */;
1927 val
* var394
/* : HashSet[MType] */;
1929 { /* Inline rapid_type_analysis#RapidTypeAnalysis#mainmodule (self) on <self:RapidTypeAnalysis> */
1930 var2
= self
->attrs
[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___mainmodule
].val
; /* _mainmodule on <self:RapidTypeAnalysis> */
1931 if (unlikely(var2
== NULL
)) {
1932 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule");
1933 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 56);
1941 var3
= nit__model___MModule___sys_type(var
);
1943 var_maintype
= var3
;
1944 if (var_maintype
== NULL
) {
1945 var4
= 1; /* is null */
1947 var4
= 0; /* arg is null but recv is not */
1950 { /* Inline kernel#Object#== (var_maintype,((val*)NULL)) on <var_maintype:nullable MClassType> */
1951 var_other
= ((val
*)NULL
);
1953 { /* Inline kernel#Object#is_same_instance (var_maintype,var_other) on <var_maintype:nullable MClassType(MClassType)> */
1954 var9
= var_maintype
== var_other
;
1971 nit___nit__RapidTypeAnalysis___add_new(self
, var_maintype
, var_maintype
); /* Direct call rapid_type_analysis#RapidTypeAnalysis#add_new on <self:RapidTypeAnalysis>*/
1974 { /* Inline rapid_type_analysis#RapidTypeAnalysis#mainmodule (self) on <self:RapidTypeAnalysis> */
1975 var12
= self
->attrs
[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___mainmodule
].val
; /* _mainmodule on <self:RapidTypeAnalysis> */
1976 if (unlikely(var12
== NULL
)) {
1977 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule");
1978 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 56);
1982 RET_LABEL11
:(void)0;
1985 if (likely(varonce
!=NULL
)) {
1989 var15
= standard___standard__NativeString___to_s_with_length(var14
, 4l);
1994 { /* Inline model#MClassType#mclass (var_maintype) on <var_maintype:nullable MClassType(MClassType)> */
1995 var18
= var_maintype
->attrs
[COLOR_nit__model__MClassType___mclass
].val
; /* _mclass on <var_maintype:nullable MClassType(MClassType)> */
1996 if (unlikely(var18
== NULL
)) {
1997 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
1998 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 1138);
2002 RET_LABEL17
:(void)0;
2006 var19
= nit__model___MModule___try_get_primitive_method(var10
, var13
, var16
);
2008 var_initprop
= var19
;
2009 if (var_initprop
== NULL
) {
2010 var20
= 0; /* is null */
2012 var20
= 1; /* arg is null and recv is not */
2015 { /* Inline kernel#Object#!= (var_initprop,((val*)NULL)) on <var_initprop:nullable MMethod> */
2016 var_other23
= ((val
*)NULL
);
2018 var24
= ((short int(*)(val
* self
, val
* p0
))(var_initprop
->class->vft
[COLOR_standard__kernel__Object___61d_61d
]))(var_initprop
, var_other23
); /* == on <var_initprop:nullable MMethod(MMethod)>*/
2023 RET_LABEL22
:(void)0;
2029 nit___nit__RapidTypeAnalysis___add_send(self
, var_maintype
, var_initprop
); /* Direct call rapid_type_analysis#RapidTypeAnalysis#add_send on <self:RapidTypeAnalysis>*/
2034 { /* Inline rapid_type_analysis#RapidTypeAnalysis#mainmodule (self) on <self:RapidTypeAnalysis> */
2035 var29
= self
->attrs
[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___mainmodule
].val
; /* _mainmodule on <self:RapidTypeAnalysis> */
2036 if (unlikely(var29
== NULL
)) {
2037 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule");
2038 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 56);
2042 RET_LABEL28
:(void)0;
2045 if (likely(varonce30
!=NULL
)) {
2049 var33
= standard___standard__NativeString___to_s_with_length(var32
, 3l);
2054 { /* Inline model#MClassType#mclass (var_maintype) on <var_maintype:nullable MClassType(MClassType)> */
2055 var36
= var_maintype
->attrs
[COLOR_nit__model__MClassType___mclass
].val
; /* _mclass on <var_maintype:nullable MClassType(MClassType)> */
2056 if (unlikely(var36
== NULL
)) {
2057 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
2058 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 1138);
2062 RET_LABEL35
:(void)0;
2066 var37
= nit__model___MModule___try_get_primitive_method(var27
, var31
, var34
);
2072 { /* Inline rapid_type_analysis#RapidTypeAnalysis#mainmodule (self) on <self:RapidTypeAnalysis> */
2073 var40
= self
->attrs
[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___mainmodule
].val
; /* _mainmodule on <self:RapidTypeAnalysis> */
2074 if (unlikely(var40
== NULL
)) {
2075 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule");
2076 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 56);
2080 RET_LABEL39
:(void)0;
2083 if (likely(varonce41
!=NULL
)) {
2087 var44
= standard___standard__NativeString___to_s_with_length(var43
, 4l);
2092 { /* Inline model#MClassType#mclass (var_maintype) on <var_maintype:nullable MClassType(MClassType)> */
2093 var47
= var_maintype
->attrs
[COLOR_nit__model__MClassType___mclass
].val
; /* _mclass on <var_maintype:nullable MClassType(MClassType)> */
2094 if (unlikely(var47
== NULL
)) {
2095 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
2096 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 1138);
2100 RET_LABEL46
:(void)0;
2104 var48
= nit__model___MModule___try_get_primitive_method(var38
, var42
, var45
);
2108 var_mainprop
= var26
;
2109 if (var_mainprop
== NULL
) {
2110 var49
= 0; /* is null */
2112 var49
= 1; /* arg is null and recv is not */
2115 { /* Inline kernel#Object#!= (var_mainprop,((val*)NULL)) on <var_mainprop:nullable MMethod> */
2116 var_other23
= ((val
*)NULL
);
2118 var52
= ((short int(*)(val
* self
, val
* p0
))(var_mainprop
->class->vft
[COLOR_standard__kernel__Object___61d_61d
]))(var_mainprop
, var_other23
); /* == on <var_mainprop:nullable MMethod(MMethod)>*/
2123 RET_LABEL51
:(void)0;
2129 nit___nit__RapidTypeAnalysis___add_send(self
, var_maintype
, var_mainprop
); /* Direct call rapid_type_analysis#RapidTypeAnalysis#add_send on <self:RapidTypeAnalysis>*/
2134 { /* Inline rapid_type_analysis#RapidTypeAnalysis#mainmodule (self) on <self:RapidTypeAnalysis> */
2135 var56
= self
->attrs
[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___mainmodule
].val
; /* _mainmodule on <self:RapidTypeAnalysis> */
2136 if (unlikely(var56
== NULL
)) {
2137 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule");
2138 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 56);
2142 RET_LABEL55
:(void)0;
2146 var57
= nit__model___MModule___finalizable_type(var54
);
2148 var_finalizable_type
= var57
;
2149 if (var_finalizable_type
== NULL
) {
2150 var58
= 0; /* is null */
2152 var58
= 1; /* arg is null and recv is not */
2155 { /* Inline kernel#Object#!= (var_finalizable_type,((val*)NULL)) on <var_finalizable_type:nullable MClassType> */
2156 var_other23
= ((val
*)NULL
);
2158 var61
= ((short int(*)(val
* self
, val
* p0
))(var_finalizable_type
->class->vft
[COLOR_standard__kernel__Object___61d_61d
]))(var_finalizable_type
, var_other23
); /* == on <var_finalizable_type:nullable MClassType(MClassType)>*/
2163 RET_LABEL60
:(void)0;
2169 { /* Inline rapid_type_analysis#RapidTypeAnalysis#mainmodule (self) on <self:RapidTypeAnalysis> */
2170 var65
= self
->attrs
[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___mainmodule
].val
; /* _mainmodule on <self:RapidTypeAnalysis> */
2171 if (unlikely(var65
== NULL
)) {
2172 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule");
2173 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 56);
2177 RET_LABEL64
:(void)0;
2180 if (likely(varonce66
!=NULL
)) {
2184 var69
= standard___standard__NativeString___to_s_with_length(var68
, 8l);
2189 { /* Inline model#MClassType#mclass (var_finalizable_type) on <var_finalizable_type:nullable MClassType(MClassType)> */
2190 var72
= var_finalizable_type
->attrs
[COLOR_nit__model__MClassType___mclass
].val
; /* _mclass on <var_finalizable_type:nullable MClassType(MClassType)> */
2191 if (unlikely(var72
== NULL
)) {
2192 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
2193 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 1138);
2197 RET_LABEL71
:(void)0;
2201 var73
= nit__model___MModule___try_get_primitive_method(var63
, var67
, var70
);
2203 var_finalize_meth
= var73
;
2204 if (var_finalize_meth
== NULL
) {
2205 var74
= 0; /* is null */
2207 var74
= 1; /* arg is null and recv is not */
2210 { /* Inline kernel#Object#!= (var_finalize_meth,((val*)NULL)) on <var_finalize_meth:nullable MMethod> */
2211 var_other23
= ((val
*)NULL
);
2213 var77
= ((short int(*)(val
* self
, val
* p0
))(var_finalize_meth
->class->vft
[COLOR_standard__kernel__Object___61d_61d
]))(var_finalize_meth
, var_other23
); /* == on <var_finalize_meth:nullable MMethod(MMethod)>*/
2218 RET_LABEL76
:(void)0;
2224 nit___nit__RapidTypeAnalysis___add_send(self
, var_finalizable_type
, var_finalize_meth
); /* Direct call rapid_type_analysis#RapidTypeAnalysis#add_send on <self:RapidTypeAnalysis>*/
2230 if (likely(varonce79
!=NULL
)) {
2234 var82
= standard___standard__NativeString___to_s_with_length(var81
, 4l);
2239 nit___nit__RapidTypeAnalysis___force_alive(self
, var80
); /* Direct call rapid_type_analysis#RapidTypeAnalysis#force_alive on <self:RapidTypeAnalysis>*/
2241 if (likely(varonce83
!=NULL
)) {
2245 var86
= standard___standard__NativeString___to_s_with_length(var85
, 3l);
2250 nit___nit__RapidTypeAnalysis___force_alive(self
, var84
); /* Direct call rapid_type_analysis#RapidTypeAnalysis#force_alive on <self:RapidTypeAnalysis>*/
2252 if (likely(varonce87
!=NULL
)) {
2256 var90
= standard___standard__NativeString___to_s_with_length(var89
, 5l);
2261 nit___nit__RapidTypeAnalysis___force_alive(self
, var88
); /* Direct call rapid_type_analysis#RapidTypeAnalysis#force_alive on <self:RapidTypeAnalysis>*/
2263 if (likely(varonce91
!=NULL
)) {
2267 var94
= standard___standard__NativeString___to_s_with_length(var93
, 4l);
2272 nit___nit__RapidTypeAnalysis___force_alive(self
, var92
); /* Direct call rapid_type_analysis#RapidTypeAnalysis#force_alive on <self:RapidTypeAnalysis>*/
2274 if (likely(varonce95
!=NULL
)) {
2278 var98
= standard___standard__NativeString___to_s_with_length(var97
, 7l);
2283 nit___nit__RapidTypeAnalysis___force_alive(self
, var96
); /* Direct call rapid_type_analysis#RapidTypeAnalysis#force_alive on <self:RapidTypeAnalysis>*/
2285 if (likely(varonce99
!=NULL
)) {
2289 var102
= standard___standard__NativeString___to_s_with_length(var101
, 4l);
2294 nit___nit__RapidTypeAnalysis___force_alive(self
, var100
); /* Direct call rapid_type_analysis#RapidTypeAnalysis#force_alive on <self:RapidTypeAnalysis>*/
2298 { /* Inline rapid_type_analysis#RapidTypeAnalysis#todo (self) on <self:RapidTypeAnalysis> */
2299 var105
= self
->attrs
[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___todo
].val
; /* _todo on <self:RapidTypeAnalysis> */
2300 if (unlikely(var105
== NULL
)) {
2301 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _todo");
2302 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 179);
2306 RET_LABEL104
:(void)0;
2310 var106
= standard___standard__List___standard__abstract_collection__Collection__is_empty(var103
);
2315 { /* Inline rapid_type_analysis#RapidTypeAnalysis#todo (self) on <self:RapidTypeAnalysis> */
2316 var110
= self
->attrs
[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___todo
].val
; /* _todo on <self:RapidTypeAnalysis> */
2317 if (unlikely(var110
== NULL
)) {
2318 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _todo");
2319 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 179);
2323 RET_LABEL109
:(void)0;
2327 var111
= standard___standard__List___standard__abstract_collection__Sequence__shift(var108
);
2329 var_mmethoddef
= var111
;
2331 { /* Inline model#MPropDef#mproperty (var_mmethoddef) on <var_mmethoddef:MMethodDef> */
2332 var114
= var_mmethoddef
->attrs
[COLOR_nit__model__MPropDef___mproperty
].val
; /* _mproperty on <var_mmethoddef:MMethodDef> */
2333 if (unlikely(var114
== NULL
)) {
2334 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty");
2335 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 2212);
2339 RET_LABEL113
:(void)0;
2344 { /* Inline model#MMethodDef#msignature (var_mmethoddef) on <var_mmethoddef:MMethodDef> */
2345 var117
= var_mmethoddef
->attrs
[COLOR_nit__model__MMethodDef___msignature
].val
; /* _msignature on <var_mmethoddef:MMethodDef> */
2347 RET_LABEL116
:(void)0;
2350 var_msignature
= var115
;
2351 if (var_msignature
== NULL
) {
2352 var118
= 1; /* is null */
2354 var118
= 0; /* arg is null but recv is not */
2357 { /* Inline kernel#Object#== (var_msignature,((val*)NULL)) on <var_msignature:nullable MSignature> */
2358 var_other
= ((val
*)NULL
);
2360 { /* Inline kernel#Object#is_same_instance (var_msignature,var_other) on <var_msignature:nullable MSignature(MSignature)> */
2361 var123
= var_msignature
== var_other
;
2364 RET_LABEL122
:(void)0;
2369 RET_LABEL120
:(void)0;
2377 var124
= NEW_nit__RapidTypeVisitor(&type_nit__RapidTypeVisitor
);
2379 { /* Inline model#MPropDef#mclassdef (var_mmethoddef) on <var_mmethoddef:MMethodDef> */
2380 var127
= var_mmethoddef
->attrs
[COLOR_nit__model__MPropDef___mclassdef
].val
; /* _mclassdef on <var_mmethoddef:MMethodDef> */
2381 if (unlikely(var127
== NULL
)) {
2382 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdef");
2383 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 2209);
2387 RET_LABEL126
:(void)0;
2391 { /* Inline model#MClassDef#bound_mtype (var125) on <var125:MClassDef> */
2392 var130
= var125
->attrs
[COLOR_nit__model__MClassDef___bound_mtype
].val
; /* _bound_mtype on <var125:MClassDef> */
2393 if (unlikely(var130
== NULL
)) {
2394 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _bound_mtype");
2395 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 556);
2399 RET_LABEL129
:(void)0;
2403 ((void(*)(val
* self
, val
* p0
))(var124
->class->vft
[COLOR_nit__rapid_type_analysis__RapidTypeVisitor__analysis_61d
]))(var124
, self
); /* analysis= on <var124:RapidTypeVisitor>*/
2406 ((void(*)(val
* self
, val
* p0
))(var124
->class->vft
[COLOR_nit__rapid_type_analysis__RapidTypeVisitor__receiver_61d
]))(var124
, var128
); /* receiver= on <var124:RapidTypeVisitor>*/
2409 ((void(*)(val
* self
, val
* p0
))(var124
->class->vft
[COLOR_nit__rapid_type_analysis__RapidTypeVisitor__mpropdef_61d
]))(var124
, var_mmethoddef
); /* mpropdef= on <var124:RapidTypeVisitor>*/
2412 ((void(*)(val
* self
))(var124
->class->vft
[COLOR_standard__kernel__Object__init
]))(var124
); /* init on <var124:RapidTypeVisitor>*/
2416 { /* Inline model#MSignature#vararg_rank (var_msignature) on <var_msignature:nullable MSignature(MSignature)> */
2417 var133
= var_msignature
->attrs
[COLOR_nit__model__MSignature___vararg_rank
].l
; /* _vararg_rank on <var_msignature:nullable MSignature(MSignature)> */
2419 RET_LABEL132
:(void)0;
2422 var_vararg_rank
= var131
;
2424 { /* Inline kernel#Int#unary - (1l) on <1l:Int> */
2428 RET_LABEL135
:(void)0;
2432 { /* Inline kernel#Int#> (var_vararg_rank,var134) on <var_vararg_rank:Int> */
2433 /* Covariant cast for argument 0 (i) <var134:Int> isa OTHER */
2434 /* <var134:Int> isa OTHER */
2435 var139
= 1; /* easy <var134:Int> isa OTHER*/
2436 if (unlikely(!var139
)) {
2437 var_class_name
= type_standard__Int
.name
;
2438 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name
);
2439 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel
, 536);
2442 var140
= var_vararg_rank
> var134
;
2445 RET_LABEL138
:(void)0;
2450 { /* Inline rapid_type_analysis#RapidTypeAnalysis#modelbuilder (self) on <self:RapidTypeAnalysis> */
2451 var143
= self
->attrs
[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___modelbuilder
].val
; /* _modelbuilder on <self:RapidTypeAnalysis> */
2452 if (unlikely(var143
== NULL
)) {
2453 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
2454 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 53);
2458 RET_LABEL142
:(void)0;
2462 var144
= nit__modelize_property___ModelBuilder___mpropdef2node(var141
, var_mmethoddef
);
2466 { /* Inline model#MSignature#mparameters (var_msignature) on <var_msignature:nullable MSignature(MSignature)> */
2467 var147
= var_msignature
->attrs
[COLOR_nit__model__MSignature___mparameters
].val
; /* _mparameters on <var_msignature:nullable MSignature(MSignature)> */
2468 if (unlikely(var147
== NULL
)) {
2469 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mparameters");
2470 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 1756);
2474 RET_LABEL146
:(void)0;
2478 var148
= standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var145
, var_vararg_rank
);
2481 { /* Inline model#MParameter#mtype (var148) on <var148:nullable Object(MParameter)> */
2482 var151
= var148
->attrs
[COLOR_nit__model__MParameter___mtype
].val
; /* _mtype on <var148:nullable Object(MParameter)> */
2483 if (unlikely(var151
== NULL
)) {
2484 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
2485 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 1879);
2489 RET_LABEL150
:(void)0;
2492 var_elttype
= var149
;
2494 { /* Inline rapid_type_analysis#RapidTypeAnalysis#mainmodule (self) on <self:RapidTypeAnalysis> */
2495 var154
= self
->attrs
[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___mainmodule
].val
; /* _mainmodule on <self:RapidTypeAnalysis> */
2496 if (unlikely(var154
== NULL
)) {
2497 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule");
2498 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 56);
2502 RET_LABEL153
:(void)0;
2506 var155
= nit__model___MModule___array_type(var152
, var_elttype
);
2508 var_vararg
= var155
;
2510 nit___nit__RapidTypeVisitor___add_type(var_v
, var_vararg
); /* Direct call rapid_type_analysis#RapidTypeVisitor#add_type on <var_v:RapidTypeVisitor>*/
2513 { /* Inline rapid_type_analysis#RapidTypeAnalysis#mainmodule (self) on <self:RapidTypeAnalysis> */
2514 var158
= self
->attrs
[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___mainmodule
].val
; /* _mainmodule on <self:RapidTypeAnalysis> */
2515 if (unlikely(var158
== NULL
)) {
2516 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule");
2517 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 56);
2521 RET_LABEL157
:(void)0;
2525 var159
= nit__model___MModule___native_array_type(var156
, var_elttype
);
2527 var_native
= var159
;
2529 nit___nit__RapidTypeVisitor___add_type(var_v
, var_native
); /* Direct call rapid_type_analysis#RapidTypeVisitor#add_type on <var_v:RapidTypeVisitor>*/
2532 { /* Inline rapid_type_analysis#RapidTypeAnalysis#modelbuilder (self) on <self:RapidTypeAnalysis> */
2533 var162
= self
->attrs
[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___modelbuilder
].val
; /* _modelbuilder on <self:RapidTypeAnalysis> */
2534 if (unlikely(var162
== NULL
)) {
2535 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
2536 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 53);
2540 RET_LABEL161
:(void)0;
2543 if (likely(varonce163
!=NULL
)) {
2544 var164
= varonce163
;
2546 var165
= "with_native";
2547 var166
= standard___standard__NativeString___to_s_with_length(var165
, 11l);
2549 varonce163
= var164
;
2552 { /* Inline model#MClassType#mclass (var_vararg) on <var_vararg:MClassType> */
2553 var169
= var_vararg
->attrs
[COLOR_nit__model__MClassType___mclass
].val
; /* _mclass on <var_vararg:MClassType> */
2554 if (unlikely(var169
== NULL
)) {
2555 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
2556 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 1138);
2560 RET_LABEL168
:(void)0;
2564 { /* Inline rapid_type_analysis#RapidTypeAnalysis#mainmodule (self) on <self:RapidTypeAnalysis> */
2565 var172
= self
->attrs
[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___mainmodule
].val
; /* _mainmodule on <self:RapidTypeAnalysis> */
2566 if (unlikely(var172
== NULL
)) {
2567 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule");
2568 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 56);
2572 RET_LABEL171
:(void)0;
2576 var173
= nit___nit__ModelBuilder___force_get_primitive_method(var160
, var_node
, var164
, var167
, var170
);
2579 nit___nit__RapidTypeVisitor___add_monomorphic_send(var_v
, var_vararg
, var173
); /* Direct call rapid_type_analysis#RapidTypeVisitor#add_monomorphic_send on <var_v:RapidTypeVisitor>*/
2583 var_sig
= var_msignature
;
2585 { /* Inline model#MProperty#intro (var_mmeth) on <var_mmeth:MMethod> */
2586 var176
= var_mmeth
->attrs
[COLOR_nit__model__MProperty___intro
].val
; /* _intro on <var_mmeth:MMethod> */
2587 if (unlikely(var176
== NULL
)) {
2588 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro");
2589 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 1968);
2593 RET_LABEL175
:(void)0;
2597 { /* Inline model#MMethodDef#msignature (var174) on <var174:MPropDef(MMethodDef)> */
2598 var179
= var174
->attrs
[COLOR_nit__model__MMethodDef___msignature
].val
; /* _msignature on <var174:MPropDef(MMethodDef)> */
2600 RET_LABEL178
:(void)0;
2603 if (unlikely(var177
== NULL
)) {
2604 PRINT_ERROR("Runtime error: %s", "Cast failed");
2605 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 241);
2611 var180
= nit___nit__MSignature___arity(var_sig
);
2616 { /* Inline kernel#Int#< (var_i,var_) on <var_i:Int> */
2617 /* Covariant cast for argument 0 (i) <var_:Int> isa OTHER */
2618 /* <var_:Int> isa OTHER */
2619 var183
= 1; /* easy <var_:Int> isa OTHER*/
2620 if (unlikely(!var183
)) {
2621 var_class_name186
= type_standard__Int
.name
;
2622 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name186
);
2623 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel
, 534);
2626 var187
= var_i
< var_
;
2629 RET_LABEL182
:(void)0;
2634 { /* Inline model#MSignature#mparameters (var_osig) on <var_osig:MSignature> */
2635 var190
= var_osig
->attrs
[COLOR_nit__model__MSignature___mparameters
].val
; /* _mparameters on <var_osig:MSignature> */
2636 if (unlikely(var190
== NULL
)) {
2637 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mparameters");
2638 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 1756);
2642 RET_LABEL189
:(void)0;
2646 var191
= standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var188
, var_i
);
2649 { /* Inline model#MParameter#mtype (var191) on <var191:nullable Object(MParameter)> */
2650 var194
= var191
->attrs
[COLOR_nit__model__MParameter___mtype
].val
; /* _mtype on <var191:nullable Object(MParameter)> */
2651 if (unlikely(var194
== NULL
)) {
2652 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
2653 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 1879);
2657 RET_LABEL193
:(void)0;
2660 var_origtype
= var192
;
2662 var195
= ((short int(*)(val
* self
))(var_origtype
->class->vft
[COLOR_nit__model__MType__need_anchor
]))(var_origtype
); /* need_anchor on <var_origtype:MType>*/
2666 goto BREAK_label197
;
2670 { /* Inline model#MSignature#mparameters (var_sig) on <var_sig:MSignature> */
2671 var200
= var_sig
->attrs
[COLOR_nit__model__MSignature___mparameters
].val
; /* _mparameters on <var_sig:MSignature> */
2672 if (unlikely(var200
== NULL
)) {
2673 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mparameters");
2674 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 1756);
2678 RET_LABEL199
:(void)0;
2682 var201
= standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var198
, var_i
);
2685 { /* Inline model#MParameter#mtype (var201) on <var201:nullable Object(MParameter)> */
2686 var204
= var201
->attrs
[COLOR_nit__model__MParameter___mtype
].val
; /* _mtype on <var201:nullable Object(MParameter)> */
2687 if (unlikely(var204
== NULL
)) {
2688 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
2689 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 1879);
2693 RET_LABEL203
:(void)0;
2696 var_paramtype
= var202
;
2698 nit___nit__RapidTypeAnalysis___add_cast(self
, var_paramtype
); /* Direct call rapid_type_analysis#RapidTypeAnalysis#add_cast on <self:RapidTypeAnalysis>*/
2700 BREAK_label197
: (void)0;
2702 var205
= standard___standard__Int___Discrete__successor(var_i
, 1l);
2706 goto BREAK_label206
;
2709 BREAK_label206
: (void)0;
2711 { /* Inline rapid_type_analysis#RapidTypeAnalysis#modelbuilder (self) on <self:RapidTypeAnalysis> */
2712 var209
= self
->attrs
[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___modelbuilder
].val
; /* _modelbuilder on <self:RapidTypeAnalysis> */
2713 if (unlikely(var209
== NULL
)) {
2714 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
2715 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 53);
2719 RET_LABEL208
:(void)0;
2723 var210
= nit__modelize_property___ModelBuilder___mpropdef2node(var207
, var_mmethoddef
);
2725 var_npropdef
= var210
;
2726 /* <var_npropdef:nullable ANode> isa AClassdef */
2727 cltype212
= type_nit__AClassdef
.color
;
2728 idtype213
= type_nit__AClassdef
.id
;
2729 if(var_npropdef
== NULL
) {
2732 if(cltype212
>= var_npropdef
->type
->table_size
) {
2735 var211
= var_npropdef
->type
->type_table
[cltype212
] == idtype213
;
2740 { /* Inline modelize_property#AClassdef#mfree_init (var_npropdef) on <var_npropdef:nullable ANode(AClassdef)> */
2741 var216
= var_npropdef
->attrs
[COLOR_nit__modelize_property__AClassdef___mfree_init
].val
; /* _mfree_init on <var_npropdef:nullable ANode(AClassdef)> */
2743 RET_LABEL215
:(void)0;
2747 { /* Inline kernel#Object#== (var_mmethoddef,var214) on <var_mmethoddef:MMethodDef> */
2750 { /* Inline kernel#Object#is_same_instance (var_mmethoddef,var_other) on <var_mmethoddef:MMethodDef> */
2751 var221
= var_mmethoddef
== var_other
;
2754 RET_LABEL220
:(void)0;
2759 RET_LABEL218
:(void)0;
2762 if (unlikely(!var217
)) {
2763 PRINT_ERROR("Runtime error: %s", "Assert failed");
2764 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 253);
2768 { /* Inline model#MPropDef#mproperty (var_mmethoddef) on <var_mmethoddef:MMethodDef> */
2769 var225
= var_mmethoddef
->attrs
[COLOR_nit__model__MPropDef___mproperty
].val
; /* _mproperty on <var_mmethoddef:MMethodDef> */
2770 if (unlikely(var225
== NULL
)) {
2771 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty");
2772 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 2212);
2776 RET_LABEL224
:(void)0;
2780 { /* Inline model#MMethod#is_root_init (var223) on <var223:MProperty(MMethod)> */
2781 var228
= var223
->attrs
[COLOR_nit__model__MMethod___is_root_init
].s
; /* _is_root_init on <var223:MProperty(MMethod)> */
2783 RET_LABEL227
:(void)0;
2789 var230
= nit___nit__MPropDef___is_intro(var_mmethoddef
);
2798 { /* Inline rapid_type_analysis#RapidTypeVisitor#receiver (var_v) on <var_v:RapidTypeVisitor> */
2799 var234
= var_v
->attrs
[COLOR_nit__rapid_type_analysis__RapidTypeVisitor___receiver
].val
; /* _receiver on <var_v:RapidTypeVisitor> */
2800 if (unlikely(var234
== NULL
)) {
2801 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _receiver");
2802 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 448);
2806 RET_LABEL233
:(void)0;
2810 nit___nit__RapidTypeAnalysis___add_super_send(self
, var232
, var_mmethoddef
); /* Direct call rapid_type_analysis#RapidTypeAnalysis#add_super_send on <self:RapidTypeAnalysis>*/
2817 { /* Inline model#MMethodDef#constant_value (var_mmethoddef) on <var_mmethoddef:MMethodDef> */
2818 var237
= var_mmethoddef
->attrs
[COLOR_nit__model__MMethodDef___constant_value
].val
; /* _constant_value on <var_mmethoddef:MMethodDef> */
2820 RET_LABEL236
:(void)0;
2823 if (var235
== NULL
) {
2824 var238
= 0; /* is null */
2826 var238
= 1; /* arg is null and recv is not */
2829 var239
= ((short int(*)(val
* self
, val
* p0
))((((long)var235
&3)?class_info
[((long)var235
&3)]:var235
->class)->vft
[COLOR_standard__kernel__Object___33d_61d
]))(var235
, ((val
*)NULL
)); /* != on <var235:nullable Object>*/
2834 { /* Inline model#MSignature#return_mtype (var_msignature) on <var_msignature:nullable MSignature(MSignature)> */
2835 var242
= var_msignature
->attrs
[COLOR_nit__model__MSignature___return_mtype
].val
; /* _return_mtype on <var_msignature:nullable MSignature(MSignature)> */
2837 RET_LABEL241
:(void)0;
2840 /* <var240:nullable MType> isa MClassType */
2841 cltype244
= type_nit__MClassType
.color
;
2842 idtype245
= type_nit__MClassType
.id
;
2843 if(var240
== NULL
) {
2846 if(cltype244
>= var240
->type
->table_size
) {
2849 var243
= var240
->type
->type_table
[cltype244
] == idtype245
;
2852 if (unlikely(!var243
)) {
2853 var_class_name246
= var240
== NULL ?
"null" : var240
->type
->name
;
2854 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "MClassType", var_class_name246
);
2855 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 261);
2859 nit___nit__RapidTypeVisitor___add_type(var_v
, var240
); /* Direct call rapid_type_analysis#RapidTypeVisitor#add_type on <var_v:RapidTypeVisitor>*/
2863 if (var_npropdef
== NULL
) {
2864 var247
= 1; /* is null */
2866 var247
= 0; /* arg is null but recv is not */
2869 { /* Inline kernel#Object#== (var_npropdef,((val*)NULL)) on <var_npropdef:nullable ANode> */
2870 var_other
= ((val
*)NULL
);
2872 { /* Inline kernel#Object#is_same_instance (var_npropdef,var_other) on <var_npropdef:nullable ANode(ANode)> */
2873 var252
= var_npropdef
== var_other
;
2876 RET_LABEL251
:(void)0;
2881 RET_LABEL249
:(void)0;
2886 PRINT_ERROR("Runtime error: %s", "Aborted");
2887 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 264);
2893 /* <var_npropdef:nullable ANode(ANode)> isa AMethPropdef */
2894 cltype254
= type_nit__AMethPropdef
.color
;
2895 idtype255
= type_nit__AMethPropdef
.id
;
2896 if(cltype254
>= var_npropdef
->type
->table_size
) {
2899 var253
= var_npropdef
->type
->type_table
[cltype254
] == idtype255
;
2903 { /* Inline auto_super_init#AMethPropdef#auto_super_inits (var_npropdef) on <var_npropdef:nullable ANode(AMethPropdef)> */
2904 var258
= var_npropdef
->attrs
[COLOR_nit__auto_super_init__AMethPropdef___auto_super_inits
].val
; /* _auto_super_inits on <var_npropdef:nullable ANode(AMethPropdef)> */
2906 RET_LABEL257
:(void)0;
2909 var_auto_super_inits
= var256
;
2910 if (var_auto_super_inits
== NULL
) {
2911 var259
= 0; /* is null */
2913 var259
= 1; /* arg is null and recv is not */
2916 { /* Inline kernel#Object#!= (var_auto_super_inits,((val*)NULL)) on <var_auto_super_inits:nullable Array[CallSite]> */
2917 var_other23
= ((val
*)NULL
);
2919 var262
= ((short int(*)(val
* self
, val
* p0
))(var_auto_super_inits
->class->vft
[COLOR_standard__kernel__Object___61d_61d
]))(var_auto_super_inits
, var_other23
); /* == on <var_auto_super_inits:nullable Array[CallSite](Array[CallSite])>*/
2924 RET_LABEL261
:(void)0;
2929 var_264
= var_auto_super_inits
;
2931 var265
= standard___standard__AbstractArrayRead___standard__abstract_collection__Collection__iterator(var_264
);
2936 var267
= standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__is_ok(var_266
);
2940 var268
= standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__item(var_266
);
2942 var_auto_super_init
= var268
;
2944 nit___nit__RapidTypeVisitor___add_callsite(var_v
, var_auto_super_init
); /* Direct call rapid_type_analysis#RapidTypeVisitor#add_callsite on <var_v:RapidTypeVisitor>*/
2947 standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__next(var_266
); /* Direct call array#ArrayIterator#next on <var_266:ArrayIterator[CallSite]>*/
2950 goto BREAK_label269
;
2953 BREAK_label269
: (void)0;
2955 standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__finish(var_266
); /* Direct call array#ArrayIterator#finish on <var_266:ArrayIterator[CallSite]>*/
2960 { /* Inline auto_super_init#AMethPropdef#auto_super_call (var_npropdef) on <var_npropdef:nullable ANode(AMethPropdef)> */
2961 var272
= var_npropdef
->attrs
[COLOR_nit__auto_super_init__AMethPropdef___auto_super_call
].s
; /* _auto_super_call on <var_npropdef:nullable ANode(AMethPropdef)> */
2963 RET_LABEL271
:(void)0;
2968 { /* Inline rapid_type_analysis#RapidTypeVisitor#receiver (var_v) on <var_v:RapidTypeVisitor> */
2969 var275
= var_v
->attrs
[COLOR_nit__rapid_type_analysis__RapidTypeVisitor___receiver
].val
; /* _receiver on <var_v:RapidTypeVisitor> */
2970 if (unlikely(var275
== NULL
)) {
2971 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _receiver");
2972 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 448);
2976 RET_LABEL274
:(void)0;
2980 nit___nit__RapidTypeAnalysis___add_super_send(self
, var273
, var_mmethoddef
); /* Direct call rapid_type_analysis#RapidTypeAnalysis#add_super_send on <self:RapidTypeAnalysis>*/
2987 { /* Inline model#MMethodDef#is_intern (var_mmethoddef) on <var_mmethoddef:MMethodDef> */
2988 var279
= var_mmethoddef
->attrs
[COLOR_nit__model__MMethodDef___is_intern
].s
; /* _is_intern on <var_mmethoddef:MMethodDef> */
2990 RET_LABEL278
:(void)0;
2998 { /* Inline model#MMethodDef#is_extern (var_mmethoddef) on <var_mmethoddef:MMethodDef> */
2999 var283
= var_mmethoddef
->attrs
[COLOR_nit__model__MMethodDef___is_extern
].s
; /* _is_extern on <var_mmethoddef:MMethodDef> */
3001 RET_LABEL282
:(void)0;
3008 { /* Inline model#MSignature#return_mtype (var_msignature) on <var_msignature:nullable MSignature(MSignature)> */
3009 var286
= var_msignature
->attrs
[COLOR_nit__model__MSignature___return_mtype
].val
; /* _return_mtype on <var_msignature:nullable MSignature(MSignature)> */
3011 RET_LABEL285
:(void)0;
3015 if (var_ret
== NULL
) {
3016 var290
= 0; /* is null */
3018 var290
= 1; /* arg is null and recv is not */
3021 { /* Inline kernel#Object#!= (var_ret,((val*)NULL)) on <var_ret:nullable MType> */
3022 var_other23
= ((val
*)NULL
);
3024 var293
= ((short int(*)(val
* self
, val
* p0
))(var_ret
->class->vft
[COLOR_standard__kernel__Object___61d_61d
]))(var_ret
, var_other23
); /* == on <var_ret:nullable MType(MType)>*/
3029 RET_LABEL292
:(void)0;
3035 /* <var_ret:nullable MType(MType)> isa MClassType */
3036 cltype297
= type_nit__MClassType
.color
;
3037 idtype298
= type_nit__MClassType
.id
;
3038 if(cltype297
>= var_ret
->type
->table_size
) {
3041 var296
= var_ret
->type
->type_table
[cltype297
] == idtype298
;
3050 { /* Inline model#MClassType#mclass (var_ret) on <var_ret:nullable MType(MClassType)> */
3051 var302
= var_ret
->attrs
[COLOR_nit__model__MClassType___mclass
].val
; /* _mclass on <var_ret:nullable MType(MClassType)> */
3052 if (unlikely(var302
== NULL
)) {
3053 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
3054 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 1138);
3058 RET_LABEL301
:(void)0;
3062 { /* Inline model#MClass#kind (var300) on <var300:MClass> */
3063 var305
= var300
->attrs
[COLOR_nit__model__MClass___kind
].val
; /* _kind on <var300:MClass> */
3064 if (unlikely(var305
== NULL
)) {
3065 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _kind");
3066 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 436);
3070 RET_LABEL304
:(void)0;
3075 var307
= nit__model___standard__Sys___abstract_kind(var306
);
3078 { /* Inline kernel#Object#!= (var303,var307) on <var303:MClassKind> */
3079 var_other23
= var307
;
3081 var310
= ((short int(*)(val
* self
, val
* p0
))(var303
->class->vft
[COLOR_standard__kernel__Object___61d_61d
]))(var303
, var_other23
); /* == on <var303:MClassKind>*/
3086 RET_LABEL309
:(void)0;
3096 { /* Inline model#MClassType#mclass (var_ret) on <var_ret:nullable MType(MClassType)> */
3097 var315
= var_ret
->attrs
[COLOR_nit__model__MClassType___mclass
].val
; /* _mclass on <var_ret:nullable MType(MClassType)> */
3098 if (unlikely(var315
== NULL
)) {
3099 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
3100 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 1138);
3104 RET_LABEL314
:(void)0;
3108 { /* Inline model#MClass#kind (var313) on <var313:MClass> */
3109 var318
= var313
->attrs
[COLOR_nit__model__MClass___kind
].val
; /* _kind on <var313:MClass> */
3110 if (unlikely(var318
== NULL
)) {
3111 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _kind");
3112 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 436);
3116 RET_LABEL317
:(void)0;
3121 var320
= nit__model___standard__Sys___interface_kind(var319
);
3124 { /* Inline kernel#Object#!= (var316,var320) on <var316:MClassKind> */
3125 var_other23
= var320
;
3127 var323
= ((short int(*)(val
* self
, val
* p0
))(var316
->class->vft
[COLOR_standard__kernel__Object___61d_61d
]))(var316
, var_other23
); /* == on <var316:MClassKind>*/
3132 RET_LABEL322
:(void)0;
3141 nit___nit__RapidTypeVisitor___add_type(var_v
, var_ret
); /* Direct call rapid_type_analysis#RapidTypeVisitor#add_type on <var_v:RapidTypeVisitor>*/
3148 nit___nit__Visitor___enter_visit(var_v
, var_npropdef
); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:RapidTypeVisitor>*/
3151 goto BREAK_label325
;
3153 BREAK_label
: (void)0;
3155 BREAK_label325
: (void)0;
3156 var326
= NEW_standard__List(&type_standard__List__nit__MClassType
);
3158 { /* Inline list#List#init (var326) on <var326:List[MClassType]> */
3159 RET_LABEL327
:(void)0;
3162 var_todo_types
= var326
;
3164 { /* Inline rapid_type_analysis#RapidTypeAnalysis#live_types (self) on <self:RapidTypeAnalysis> */
3165 var330
= self
->attrs
[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___live_types
].val
; /* _live_types on <self:RapidTypeAnalysis> */
3166 if (unlikely(var330
== NULL
)) {
3167 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_types");
3168 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 60);
3172 RET_LABEL329
:(void)0;
3176 standard___standard__SimpleCollection___add_all(var_todo_types
, var328
); /* Direct call abstract_collection#SimpleCollection#add_all on <var_todo_types:List[MClassType]>*/
3180 var331
= standard___standard__List___standard__abstract_collection__Collection__is_empty(var_todo_types
);
3185 var333
= standard___standard__List___standard__abstract_collection__Sequence__shift(var_todo_types
);
3189 { /* Inline rapid_type_analysis#RapidTypeAnalysis#live_open_types (self) on <self:RapidTypeAnalysis> */
3190 var336
= self
->attrs
[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___live_open_types
].val
; /* _live_open_types on <self:RapidTypeAnalysis> */
3191 if (unlikely(var336
== NULL
)) {
3192 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_open_types");
3193 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 65);
3197 RET_LABEL335
:(void)0;
3202 var338
= standard___standard__HashSet___standard__abstract_collection__Collection__iterator(var_337
);
3207 var340
= ((short int(*)(val
* self
))((((long)var_339
&3)?class_info
[((long)var_339
&3)]:var_339
->class)->vft
[COLOR_standard__abstract_collection__Iterator__is_ok
]))(var_339
); /* is_ok on <var_339:Iterator[MClassType]>*/
3211 var341
= ((val
*(*)(val
* self
))((((long)var_339
&3)?class_info
[((long)var_339
&3)]:var_339
->class)->vft
[COLOR_standard__abstract_collection__Iterator__item
]))(var_339
); /* item on <var_339:Iterator[MClassType]>*/
3215 { /* Inline rapid_type_analysis#RapidTypeAnalysis#mainmodule (self) on <self:RapidTypeAnalysis> */
3216 var344
= self
->attrs
[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___mainmodule
].val
; /* _mainmodule on <self:RapidTypeAnalysis> */
3217 if (unlikely(var344
== NULL
)) {
3218 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule");
3219 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 56);
3223 RET_LABEL343
:(void)0;
3227 var345
= ((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
, var342
); /* can_resolve_for on <var_ot:MClassType>*/
3231 goto BREAK_label347
;
3235 { /* Inline rapid_type_analysis#RapidTypeAnalysis#mainmodule (self) on <self:RapidTypeAnalysis> */
3236 var350
= self
->attrs
[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___mainmodule
].val
; /* _mainmodule on <self:RapidTypeAnalysis> */
3237 if (unlikely(var350
== NULL
)) {
3238 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule");
3239 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 56);
3243 RET_LABEL349
:(void)0;
3247 var351
= nit___nit__MClassType___MType__anchor_to(var_ot
, var348
, var_t
);
3251 { /* Inline rapid_type_analysis#RapidTypeAnalysis#live_types (self) on <self:RapidTypeAnalysis> */
3252 var354
= self
->attrs
[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___live_types
].val
; /* _live_types on <self:RapidTypeAnalysis> */
3253 if (unlikely(var354
== NULL
)) {
3254 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_types");
3255 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 60);
3259 RET_LABEL353
:(void)0;
3263 var355
= standard___standard__HashSet___standard__abstract_collection__Collection__has(var352
, var_rt
);
3266 goto BREAK_label347
;
3270 var356
= nit___nit__RapidTypeAnalysis___check_depth(self
, var_rt
);
3274 goto BREAK_label347
;
3278 { /* Inline rapid_type_analysis#RapidTypeAnalysis#live_types (self) on <self:RapidTypeAnalysis> */
3279 var360
= self
->attrs
[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___live_types
].val
; /* _live_types on <self:RapidTypeAnalysis> */
3280 if (unlikely(var360
== NULL
)) {
3281 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_types");
3282 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 60);
3286 RET_LABEL359
:(void)0;
3290 standard___standard__HashSet___standard__abstract_collection__SimpleCollection__add(var358
, var_rt
); /* Direct call hash_collection#HashSet#add on <var358:HashSet[MClassType]>*/
3293 standard___standard__Sequence___SimpleCollection__add(var_todo_types
, var_rt
); /* Direct call abstract_collection#Sequence#add on <var_todo_types:List[MClassType]>*/
3295 BREAK_label347
: (void)0;
3297 ((void(*)(val
* self
))((((long)var_339
&3)?class_info
[((long)var_339
&3)]:var_339
->class)->vft
[COLOR_standard__abstract_collection__Iterator__next
]))(var_339
); /* next on <var_339:Iterator[MClassType]>*/
3300 goto BREAK_label361
;
3303 BREAK_label361
: (void)0;
3305 ((void(*)(val
* self
))((((long)var_339
&3)?class_info
[((long)var_339
&3)]:var_339
->class)->vft
[COLOR_standard__abstract_collection__Iterator__finish
]))(var_339
); /* finish on <var_339:Iterator[MClassType]>*/
3308 goto BREAK_label362
;
3311 BREAK_label362
: (void)0;
3313 { /* Inline rapid_type_analysis#RapidTypeAnalysis#live_open_cast_types (self) on <self:RapidTypeAnalysis> */
3314 var365
= self
->attrs
[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___live_open_cast_types
].val
; /* _live_open_cast_types on <self:RapidTypeAnalysis> */
3315 if (unlikely(var365
== NULL
)) {
3316 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_open_cast_types");
3317 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 75);
3321 RET_LABEL364
:(void)0;
3326 var367
= standard___standard__HashSet___standard__abstract_collection__Collection__iterator(var_366
);
3331 var369
= ((short int(*)(val
* self
))((((long)var_368
&3)?class_info
[((long)var_368
&3)]:var_368
->class)->vft
[COLOR_standard__abstract_collection__Iterator__is_ok
]))(var_368
); /* is_ok on <var_368:Iterator[MType]>*/
3335 var370
= ((val
*(*)(val
* self
))((((long)var_368
&3)?class_info
[((long)var_368
&3)]:var_368
->class)->vft
[COLOR_standard__abstract_collection__Iterator__item
]))(var_368
); /* item on <var_368:Iterator[MType]>*/
3339 { /* Inline rapid_type_analysis#RapidTypeAnalysis#live_types (self) on <self:RapidTypeAnalysis> */
3340 var374
= self
->attrs
[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___live_types
].val
; /* _live_types on <self:RapidTypeAnalysis> */
3341 if (unlikely(var374
== NULL
)) {
3342 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_types");
3343 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 60);
3347 RET_LABEL373
:(void)0;
3352 var376
= standard___standard__HashSet___standard__abstract_collection__Collection__iterator(var_375
);
3357 var378
= ((short int(*)(val
* self
))((((long)var_377
&3)?class_info
[((long)var_377
&3)]:var_377
->class)->vft
[COLOR_standard__abstract_collection__Iterator__is_ok
]))(var_377
); /* is_ok on <var_377:Iterator[MClassType]>*/
3361 var379
= ((val
*(*)(val
* self
))((((long)var_377
&3)?class_info
[((long)var_377
&3)]:var_377
->class)->vft
[COLOR_standard__abstract_collection__Iterator__item
]))(var_377
); /* item on <var_377:Iterator[MClassType]>*/
3365 { /* Inline rapid_type_analysis#RapidTypeAnalysis#mainmodule (self) on <self:RapidTypeAnalysis> */
3366 var383
= self
->attrs
[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___mainmodule
].val
; /* _mainmodule on <self:RapidTypeAnalysis> */
3367 if (unlikely(var383
== NULL
)) {
3368 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule");
3369 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 56);
3373 RET_LABEL382
:(void)0;
3377 var384
= ((short int(*)(val
* self
, val
* p0
, val
* p1
, val
* p2
))(var_ot371
->class->vft
[COLOR_nit__model__MType__can_resolve_for
]))(var_ot371
, var_t380
, var_t380
, var381
); /* can_resolve_for on <var_ot371:MType>*/
3381 goto BREAK_label386
;
3385 { /* Inline rapid_type_analysis#RapidTypeAnalysis#mainmodule (self) on <self:RapidTypeAnalysis> */
3386 var389
= self
->attrs
[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___mainmodule
].val
; /* _mainmodule on <self:RapidTypeAnalysis> */
3387 if (unlikely(var389
== NULL
)) {
3388 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule");
3389 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 56);
3393 RET_LABEL388
:(void)0;
3397 var390
= ((val
*(*)(val
* self
, val
* p0
, val
* p1
))(var_ot371
->class->vft
[COLOR_nit__model__MType__anchor_to
]))(var_ot371
, var387
, var_t380
); /* anchor_to on <var_ot371:MType>*/
3401 { /* Inline rapid_type_analysis#RapidTypeAnalysis#live_cast_types (self) on <self:RapidTypeAnalysis> */
3402 var394
= self
->attrs
[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___live_cast_types
].val
; /* _live_cast_types on <self:RapidTypeAnalysis> */
3403 if (unlikely(var394
== NULL
)) {
3404 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_cast_types");
3405 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 72);
3409 RET_LABEL393
:(void)0;
3413 standard___standard__HashSet___standard__abstract_collection__SimpleCollection__add(var392
, var_rt391
); /* Direct call hash_collection#HashSet#add on <var392:HashSet[MType]>*/
3415 BREAK_label386
: (void)0;
3417 ((void(*)(val
* self
))((((long)var_377
&3)?class_info
[((long)var_377
&3)]:var_377
->class)->vft
[COLOR_standard__abstract_collection__Iterator__next
]))(var_377
); /* next on <var_377:Iterator[MClassType]>*/
3420 goto BREAK_label395
;
3423 BREAK_label395
: (void)0;
3425 ((void(*)(val
* self
))((((long)var_377
&3)?class_info
[((long)var_377
&3)]:var_377
->class)->vft
[COLOR_standard__abstract_collection__Iterator__finish
]))(var_377
); /* finish on <var_377:Iterator[MClassType]>*/
3428 ((void(*)(val
* self
))((((long)var_368
&3)?class_info
[((long)var_368
&3)]:var_368
->class)->vft
[COLOR_standard__abstract_collection__Iterator__next
]))(var_368
); /* next on <var_368:Iterator[MType]>*/
3431 goto BREAK_label396
;
3434 BREAK_label396
: (void)0;
3436 ((void(*)(val
* self
))((((long)var_368
&3)?class_info
[((long)var_368
&3)]:var_368
->class)->vft
[COLOR_standard__abstract_collection__Iterator__finish
]))(var_368
); /* finish on <var_368:Iterator[MType]>*/
3440 /* method rapid_type_analysis#RapidTypeAnalysis#check_depth for (self: RapidTypeAnalysis, MClassType): Bool */
3441 short int nit___nit__RapidTypeAnalysis___check_depth(val
* self
, val
* p0
) {
3442 short int var
/* : Bool */;
3443 val
* var_mtype
/* var mtype: MClassType */;
3444 long var1
/* : Int */;
3445 long var_d
/* var d: Int */;
3446 short int var2
/* : Bool */;
3447 short int var4
/* : Bool */;
3450 const char* var_class_name
;
3451 short int var5
/* : Bool */;
3452 val
* var6
/* : ModelBuilder */;
3453 val
* var8
/* : ModelBuilder */;
3454 val
* var9
/* : ToolContext */;
3455 val
* var11
/* : ToolContext */;
3456 val
* var12
/* : NativeArray[String] */;
3457 static val
* varonce
;
3458 static val
* varonce13
;
3459 val
* var14
/* : String */;
3460 char* var15
/* : NativeString */;
3461 val
* var16
/* : FlatString */;
3462 static val
* varonce17
;
3463 val
* var18
/* : String */;
3464 char* var19
/* : NativeString */;
3465 val
* var20
/* : FlatString */;
3466 static val
* varonce21
;
3467 val
* var22
/* : String */;
3468 char* var23
/* : NativeString */;
3469 val
* var24
/* : FlatString */;
3470 val
* var25
/* : String */;
3471 val
* var26
/* : String */;
3472 val
* var27
/* : String */;
3475 var1
= ((long(*)(val
* self
))(var_mtype
->class->vft
[COLOR_nit__model__MType__length
]))(var_mtype
); /* length on <var_mtype:MClassType>*/
3479 { /* Inline kernel#Int#> (var_d,255l) on <var_d:Int> */
3480 /* Covariant cast for argument 0 (i) <255l:Int> isa OTHER */
3481 /* <255l:Int> isa OTHER */
3482 var4
= 1; /* easy <255l:Int> isa OTHER*/
3483 if (unlikely(!var4
)) {
3484 var_class_name
= type_standard__Int
.name
;
3485 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name
);
3486 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel
, 536);
3489 var5
= var_d
> 255l;
3497 { /* Inline rapid_type_analysis#RapidTypeAnalysis#modelbuilder (self) on <self:RapidTypeAnalysis> */
3498 var8
= self
->attrs
[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___modelbuilder
].val
; /* _modelbuilder on <self:RapidTypeAnalysis> */
3499 if (unlikely(var8
== NULL
)) {
3500 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
3501 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 53);
3509 { /* Inline modelbuilder_base#ModelBuilder#toolcontext (var6) on <var6:ModelBuilder> */
3510 var11
= var6
->attrs
[COLOR_nit__modelbuilder_base__ModelBuilder___toolcontext
].val
; /* _toolcontext on <var6:ModelBuilder> */
3511 if (unlikely(var11
== NULL
)) {
3512 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
3513 PRINT_ERROR(" (%s:%d)\n", FILE_nit__modelbuilder_base
, 47);
3517 RET_LABEL10
:(void)0;
3520 if (unlikely(varonce
==NULL
)) {
3521 var12
= NEW_standard__NativeArray(5l, &type_standard__NativeArray__standard__String
);
3522 if (likely(varonce13
!=NULL
)) {
3525 var15
= "Fatal Error: limitation in the rapidtype analysis engine: a type depth of ";
3526 var16
= standard___standard__NativeString___to_s_with_length(var15
, 74l);
3530 ((struct instance_standard__NativeArray
*)var12
)->values
[0]=var14
;
3531 if (likely(varonce17
!=NULL
)) {
3534 var19
= " is too important, the problematic type is `";
3535 var20
= standard___standard__NativeString___to_s_with_length(var19
, 44l);
3539 ((struct instance_standard__NativeArray
*)var12
)->values
[2]=var18
;
3540 if (likely(varonce21
!=NULL
)) {
3544 var24
= standard___standard__NativeString___to_s_with_length(var23
, 2l);
3548 ((struct instance_standard__NativeArray
*)var12
)->values
[4]=var22
;
3553 var25
= standard__string___Int___Object__to_s(var_d
);
3554 ((struct instance_standard__NativeArray
*)var12
)->values
[1]=var25
;
3556 var26
= ((val
*(*)(val
* self
))(var_mtype
->class->vft
[COLOR_standard__string__Object__to_s
]))(var_mtype
); /* to_s on <var_mtype:MClassType>*/
3558 ((struct instance_standard__NativeArray
*)var12
)->values
[3]=var26
;
3560 var27
= ((val
*(*)(val
* self
))(var12
->class->vft
[COLOR_standard__string__NativeArray__native_to_s
]))(var12
); /* native_to_s on <var12:NativeArray[String]>*/
3564 nit___nit__ToolContext___fatal_error(var9
, ((val
*)NULL
), var27
); /* Direct call toolcontext#ToolContext#fatal_error on <var9:ToolContext>*/
3575 /* method rapid_type_analysis#RapidTypeAnalysis#add_new for (self: RapidTypeAnalysis, MClassType, MClassType) */
3576 void nit___nit__RapidTypeAnalysis___add_new(val
* self
, val
* p0
, val
* p1
) {
3577 val
* var_recv
/* var recv: MClassType */;
3578 val
* var_mtype
/* var mtype: MClassType */;
3579 short int var
/* : Bool */;
3580 short int var1
/* : Bool */;
3581 short int var2
/* : Bool */;
3582 val
* var3
/* : HashSet[MClassType] */;
3583 val
* var5
/* : HashSet[MClassType] */;
3584 short int var6
/* : Bool */;
3585 val
* var7
/* : HashSet[MClassType] */;
3586 val
* var9
/* : HashSet[MClassType] */;
3587 val
* var10
/* : HashSet[MClassType] */;
3588 val
* var12
/* : HashSet[MClassType] */;
3589 short int var13
/* : Bool */;
3590 val
* var14
/* : HashSet[MClassType] */;
3591 val
* var16
/* : HashSet[MClassType] */;
3592 val
* var17
/* : MClass */;
3593 val
* var19
/* : MClass */;
3594 val
* var_mclass
/* var mclass: MClass */;
3595 val
* var20
/* : HashSet[MClass] */;
3596 val
* var22
/* : HashSet[MClass] */;
3597 short int var23
/* : Bool */;
3598 val
* var24
/* : HashSet[MClass] */;
3599 val
* var26
/* : HashSet[MClass] */;
3600 val
* var27
/* : HashSet[MMethod] */;
3601 val
* var29
/* : HashSet[MMethod] */;
3602 val
* var_
/* var : HashSet[MMethod] */;
3603 val
* var30
/* : Iterator[nullable Object] */;
3604 val
* var_31
/* var : Iterator[MMethod] */;
3605 short int var32
/* : Bool */;
3606 val
* var33
/* : nullable Object */;
3607 val
* var_p
/* var p: MMethod */;
3608 val
* var34
/* : HashSet[MMethodDef] */;
3609 val
* var36
/* : HashSet[MMethodDef] */;
3610 val
* var_37
/* var : HashSet[MMethodDef] */;
3611 val
* var38
/* : Iterator[nullable Object] */;
3612 val
* var_39
/* var : Iterator[MMethodDef] */;
3613 short int var40
/* : Bool */;
3614 val
* var41
/* : nullable Object */;
3615 val
* var_p42
/* var p: MMethodDef */;
3616 val
* var44
/* : Array[MMethod] */;
3617 val
* var46
/* : Array[MMethod] */;
3618 val
* var_47
/* var : Array[MMethod] */;
3619 val
* var48
/* : ArrayIterator[nullable Object] */;
3620 val
* var_49
/* var : ArrayIterator[MMethod] */;
3621 short int var50
/* : Bool */;
3622 val
* var51
/* : nullable Object */;
3623 val
* var_p52
/* var p: MMethod */;
3624 val
* var53
/* : HashSet[MMethod] */;
3625 val
* var55
/* : HashSet[MMethod] */;
3626 val
* var57
/* : Array[MMethod] */;
3627 val
* var59
/* : Array[MMethod] */;
3628 val
* var60
/* : MModule */;
3629 val
* var62
/* : MModule */;
3630 val
* var63
/* : MClassType */;
3631 val
* var_bound_mtype
/* var bound_mtype: MClassType */;
3632 val
* var64
/* : MModule */;
3633 val
* var66
/* : MModule */;
3634 val
* var67
/* : Set[MClassDef] */;
3635 val
* var_68
/* var : Set[MClassDef] */;
3636 val
* var69
/* : Iterator[nullable Object] */;
3637 val
* var_70
/* var : Iterator[MClassDef] */;
3638 short int var71
/* : Bool */;
3639 val
* var72
/* : nullable Object */;
3640 val
* var_cd
/* var cd: MClassDef */;
3641 val
* var73
/* : ModelBuilder */;
3642 val
* var75
/* : ModelBuilder */;
3643 val
* var76
/* : Array[AAttrPropdef] */;
3644 val
* var_77
/* var : Array[AAttrPropdef] */;
3645 val
* var78
/* : ArrayIterator[nullable Object] */;
3646 val
* var_79
/* var : ArrayIterator[AAttrPropdef] */;
3647 short int var80
/* : Bool */;
3648 val
* var81
/* : nullable Object */;
3649 val
* var_npropdef
/* var npropdef: AAttrPropdef */;
3650 short int var82
/* : Bool */;
3651 short int var84
/* : Bool */;
3652 short int var85
/* : Bool */;
3653 val
* var87
/* : nullable MMethodDef */;
3654 val
* var89
/* : nullable MMethodDef */;
3655 val
* var_mpropdef
/* var mpropdef: MMethodDef */;
3656 val
* var90
/* : RapidTypeVisitor */;
3657 val
* var_v
/* var v: RapidTypeVisitor */;
3658 val
* var91
/* : nullable AExpr */;
3659 val
* var93
/* : nullable AExpr */;
3660 val
* var94
/* : nullable AExpr */;
3661 val
* var96
/* : nullable AExpr */;
3665 var
= ((short int(*)(val
* self
))(var_recv
->class->vft
[COLOR_nit__model__MType__need_anchor
]))(var_recv
); /* need_anchor on <var_recv:MClassType>*/
3668 if (unlikely(!var1
)) {
3669 PRINT_ERROR("Runtime error: %s", "Assert failed");
3670 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 336);
3674 var2
= ((short int(*)(val
* self
))(var_mtype
->class->vft
[COLOR_nit__model__MType__need_anchor
]))(var_mtype
); /* need_anchor on <var_mtype:MClassType>*/
3678 { /* Inline rapid_type_analysis#RapidTypeAnalysis#live_open_types (self) on <self:RapidTypeAnalysis> */
3679 var5
= self
->attrs
[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___live_open_types
].val
; /* _live_open_types on <self:RapidTypeAnalysis> */
3680 if (unlikely(var5
== NULL
)) {
3681 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_open_types");
3682 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 65);
3690 var6
= standard___standard__HashSet___standard__abstract_collection__Collection__has(var3
, var_mtype
);
3697 { /* Inline rapid_type_analysis#RapidTypeAnalysis#live_open_types (self) on <self:RapidTypeAnalysis> */
3698 var9
= self
->attrs
[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___live_open_types
].val
; /* _live_open_types on <self:RapidTypeAnalysis> */
3699 if (unlikely(var9
== NULL
)) {
3700 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_open_types");
3701 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 65);
3709 standard___standard__HashSet___standard__abstract_collection__SimpleCollection__add(var7
, var_mtype
); /* Direct call hash_collection#HashSet#add on <var7:HashSet[MClassType]>*/
3713 { /* Inline rapid_type_analysis#RapidTypeAnalysis#live_types (self) on <self:RapidTypeAnalysis> */
3714 var12
= self
->attrs
[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___live_types
].val
; /* _live_types on <self:RapidTypeAnalysis> */
3715 if (unlikely(var12
== NULL
)) {
3716 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_types");
3717 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 60);
3721 RET_LABEL11
:(void)0;
3725 var13
= standard___standard__HashSet___standard__abstract_collection__Collection__has(var10
, var_mtype
);
3732 { /* Inline rapid_type_analysis#RapidTypeAnalysis#live_types (self) on <self:RapidTypeAnalysis> */
3733 var16
= self
->attrs
[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___live_types
].val
; /* _live_types on <self:RapidTypeAnalysis> */
3734 if (unlikely(var16
== NULL
)) {
3735 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_types");
3736 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 60);
3740 RET_LABEL15
:(void)0;
3744 standard___standard__HashSet___standard__abstract_collection__SimpleCollection__add(var14
, var_mtype
); /* Direct call hash_collection#HashSet#add on <var14:HashSet[MClassType]>*/
3748 { /* Inline model#MClassType#mclass (var_mtype) on <var_mtype:MClassType> */
3749 var19
= var_mtype
->attrs
[COLOR_nit__model__MClassType___mclass
].val
; /* _mclass on <var_mtype:MClassType> */
3750 if (unlikely(var19
== NULL
)) {
3751 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
3752 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 1138);
3756 RET_LABEL18
:(void)0;
3761 { /* Inline rapid_type_analysis#RapidTypeAnalysis#live_classes (self) on <self:RapidTypeAnalysis> */
3762 var22
= self
->attrs
[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___live_classes
].val
; /* _live_classes on <self:RapidTypeAnalysis> */
3763 if (unlikely(var22
== NULL
)) {
3764 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_classes");
3765 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 69);
3769 RET_LABEL21
:(void)0;
3773 var23
= standard___standard__HashSet___standard__abstract_collection__Collection__has(var20
, var_mclass
);
3780 { /* Inline rapid_type_analysis#RapidTypeAnalysis#live_classes (self) on <self:RapidTypeAnalysis> */
3781 var26
= self
->attrs
[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___live_classes
].val
; /* _live_classes on <self:RapidTypeAnalysis> */
3782 if (unlikely(var26
== NULL
)) {
3783 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_classes");
3784 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 69);
3788 RET_LABEL25
:(void)0;
3792 standard___standard__HashSet___standard__abstract_collection__SimpleCollection__add(var24
, var_mclass
); /* Direct call hash_collection#HashSet#add on <var24:HashSet[MClass]>*/
3795 { /* Inline rapid_type_analysis#RapidTypeAnalysis#totry_methods (self) on <self:RapidTypeAnalysis> */
3796 var29
= self
->attrs
[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___totry_methods
].val
; /* _totry_methods on <self:RapidTypeAnalysis> */
3797 if (unlikely(var29
== NULL
)) {
3798 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _totry_methods");
3799 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 169);
3803 RET_LABEL28
:(void)0;
3808 var30
= standard___standard__HashSet___standard__abstract_collection__Collection__iterator(var_
);
3813 var32
= ((short int(*)(val
* self
))((((long)var_31
&3)?class_info
[((long)var_31
&3)]:var_31
->class)->vft
[COLOR_standard__abstract_collection__Iterator__is_ok
]))(var_31
); /* is_ok on <var_31:Iterator[MMethod]>*/
3817 var33
= ((val
*(*)(val
* self
))((((long)var_31
&3)?class_info
[((long)var_31
&3)]:var_31
->class)->vft
[COLOR_standard__abstract_collection__Iterator__item
]))(var_31
); /* item on <var_31:Iterator[MMethod]>*/
3821 nit___nit__RapidTypeAnalysis___try_send(self
, var_mtype
, var_p
); /* Direct call rapid_type_analysis#RapidTypeAnalysis#try_send on <self:RapidTypeAnalysis>*/
3824 ((void(*)(val
* self
))((((long)var_31
&3)?class_info
[((long)var_31
&3)]:var_31
->class)->vft
[COLOR_standard__abstract_collection__Iterator__next
]))(var_31
); /* next on <var_31:Iterator[MMethod]>*/
3830 BREAK_label
: (void)0;
3832 ((void(*)(val
* self
))((((long)var_31
&3)?class_info
[((long)var_31
&3)]:var_31
->class)->vft
[COLOR_standard__abstract_collection__Iterator__finish
]))(var_31
); /* finish on <var_31:Iterator[MMethod]>*/
3835 { /* Inline rapid_type_analysis#RapidTypeAnalysis#live_super_sends (self) on <self:RapidTypeAnalysis> */
3836 var36
= self
->attrs
[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___live_super_sends
].val
; /* _live_super_sends on <self:RapidTypeAnalysis> */
3837 if (unlikely(var36
== NULL
)) {
3838 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_super_sends");
3839 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 114);
3843 RET_LABEL35
:(void)0;
3848 var38
= standard___standard__HashSet___standard__abstract_collection__Collection__iterator(var_37
);
3853 var40
= ((short int(*)(val
* self
))((((long)var_39
&3)?class_info
[((long)var_39
&3)]:var_39
->class)->vft
[COLOR_standard__abstract_collection__Iterator__is_ok
]))(var_39
); /* is_ok on <var_39:Iterator[MMethodDef]>*/
3857 var41
= ((val
*(*)(val
* self
))((((long)var_39
&3)?class_info
[((long)var_39
&3)]:var_39
->class)->vft
[COLOR_standard__abstract_collection__Iterator__item
]))(var_39
); /* item on <var_39:Iterator[MMethodDef]>*/
3861 nit___nit__RapidTypeAnalysis___try_super_send(self
, var_mtype
, var_p42
); /* Direct call rapid_type_analysis#RapidTypeAnalysis#try_super_send on <self:RapidTypeAnalysis>*/
3864 ((void(*)(val
* self
))((((long)var_39
&3)?class_info
[((long)var_39
&3)]:var_39
->class)->vft
[COLOR_standard__abstract_collection__Iterator__next
]))(var_39
); /* next on <var_39:Iterator[MMethodDef]>*/
3870 BREAK_label43
: (void)0;
3872 ((void(*)(val
* self
))((((long)var_39
&3)?class_info
[((long)var_39
&3)]:var_39
->class)->vft
[COLOR_standard__abstract_collection__Iterator__finish
]))(var_39
); /* finish on <var_39:Iterator[MMethodDef]>*/
3875 { /* Inline rapid_type_analysis#RapidTypeAnalysis#totry_methods_to_remove (self) on <self:RapidTypeAnalysis> */
3876 var46
= self
->attrs
[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___totry_methods_to_remove
].val
; /* _totry_methods_to_remove on <self:RapidTypeAnalysis> */
3877 if (unlikely(var46
== NULL
)) {
3878 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _totry_methods_to_remove");
3879 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 172);
3883 RET_LABEL45
:(void)0;
3888 var48
= standard___standard__AbstractArrayRead___standard__abstract_collection__Collection__iterator(var_47
);
3893 var50
= standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__is_ok(var_49
);
3897 var51
= standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__item(var_49
);
3901 { /* Inline rapid_type_analysis#RapidTypeAnalysis#totry_methods (self) on <self:RapidTypeAnalysis> */
3902 var55
= self
->attrs
[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___totry_methods
].val
; /* _totry_methods on <self:RapidTypeAnalysis> */
3903 if (unlikely(var55
== NULL
)) {
3904 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _totry_methods");
3905 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 169);
3909 RET_LABEL54
:(void)0;
3913 standard___standard__HashSet___standard__abstract_collection__RemovableCollection__remove(var53
, var_p52
); /* Direct call hash_collection#HashSet#remove on <var53:HashSet[MMethod]>*/
3916 standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__next(var_49
); /* Direct call array#ArrayIterator#next on <var_49:ArrayIterator[MMethod]>*/
3922 BREAK_label56
: (void)0;
3924 standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__finish(var_49
); /* Direct call array#ArrayIterator#finish on <var_49:ArrayIterator[MMethod]>*/
3927 { /* Inline rapid_type_analysis#RapidTypeAnalysis#totry_methods_to_remove (self) on <self:RapidTypeAnalysis> */
3928 var59
= self
->attrs
[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___totry_methods_to_remove
].val
; /* _totry_methods_to_remove on <self:RapidTypeAnalysis> */
3929 if (unlikely(var59
== NULL
)) {
3930 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _totry_methods_to_remove");
3931 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 172);
3935 RET_LABEL58
:(void)0;
3939 standard___standard__AbstractArray___standard__abstract_collection__RemovableCollection__clear(var57
); /* Direct call array#AbstractArray#clear on <var57:Array[MMethod]>*/
3942 { /* Inline rapid_type_analysis#RapidTypeAnalysis#mainmodule (self) on <self:RapidTypeAnalysis> */
3943 var62
= self
->attrs
[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___mainmodule
].val
; /* _mainmodule on <self:RapidTypeAnalysis> */
3944 if (unlikely(var62
== NULL
)) {
3945 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule");
3946 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 56);
3950 RET_LABEL61
:(void)0;
3954 var63
= nit___nit__MClassType___MType__anchor_to(var_mtype
, var60
, var_recv
);
3956 var_bound_mtype
= var63
;
3958 { /* Inline rapid_type_analysis#RapidTypeAnalysis#mainmodule (self) on <self:RapidTypeAnalysis> */
3959 var66
= self
->attrs
[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___mainmodule
].val
; /* _mainmodule on <self:RapidTypeAnalysis> */
3960 if (unlikely(var66
== NULL
)) {
3961 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule");
3962 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 56);
3966 RET_LABEL65
:(void)0;
3970 var67
= nit___nit__MClassType___MType__collect_mclassdefs(var_bound_mtype
, var64
);
3974 var69
= ((val
*(*)(val
* self
))((((long)var_68
&3)?class_info
[((long)var_68
&3)]:var_68
->class)->vft
[COLOR_standard__abstract_collection__Collection__iterator
]))(var_68
); /* iterator on <var_68:Set[MClassDef]>*/
3979 var71
= ((short int(*)(val
* self
))((((long)var_70
&3)?class_info
[((long)var_70
&3)]:var_70
->class)->vft
[COLOR_standard__abstract_collection__Iterator__is_ok
]))(var_70
); /* is_ok on <var_70:Iterator[MClassDef]>*/
3983 var72
= ((val
*(*)(val
* self
))((((long)var_70
&3)?class_info
[((long)var_70
&3)]:var_70
->class)->vft
[COLOR_standard__abstract_collection__Iterator__item
]))(var_70
); /* item on <var_70:Iterator[MClassDef]>*/
3987 { /* Inline rapid_type_analysis#RapidTypeAnalysis#modelbuilder (self) on <self:RapidTypeAnalysis> */
3988 var75
= self
->attrs
[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___modelbuilder
].val
; /* _modelbuilder on <self:RapidTypeAnalysis> */
3989 if (unlikely(var75
== NULL
)) {
3990 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
3991 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 53);
3995 RET_LABEL74
:(void)0;
3999 var76
= nit__modelize_property___ModelBuilder___collect_attr_propdef(var73
, var_cd
);
4003 var78
= standard___standard__AbstractArrayRead___standard__abstract_collection__Collection__iterator(var_77
);
4008 var80
= standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__is_ok(var_79
);
4012 var81
= standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__item(var_79
);
4014 var_npropdef
= var81
;
4016 { /* Inline modelize_property#AAttrPropdef#has_value (var_npropdef) on <var_npropdef:AAttrPropdef> */
4017 var84
= var_npropdef
->attrs
[COLOR_nit__modelize_property__AAttrPropdef___has_value
].s
; /* _has_value on <var_npropdef:AAttrPropdef> */
4019 RET_LABEL83
:(void)0;
4028 { /* Inline modelize_property#AAttrPropdef#mreadpropdef (var_npropdef) on <var_npropdef:AAttrPropdef> */
4029 var89
= var_npropdef
->attrs
[COLOR_nit__modelize_property__AAttrPropdef___mreadpropdef
].val
; /* _mreadpropdef on <var_npropdef:AAttrPropdef> */
4031 RET_LABEL88
:(void)0;
4034 if (unlikely(var87
== NULL
)) {
4035 PRINT_ERROR("Runtime error: %s", "Cast failed");
4036 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 362);
4039 var_mpropdef
= var87
;
4040 var90
= NEW_nit__RapidTypeVisitor(&type_nit__RapidTypeVisitor
);
4042 ((void(*)(val
* self
, val
* p0
))(var90
->class->vft
[COLOR_nit__rapid_type_analysis__RapidTypeVisitor__analysis_61d
]))(var90
, self
); /* analysis= on <var90:RapidTypeVisitor>*/
4045 ((void(*)(val
* self
, val
* p0
))(var90
->class->vft
[COLOR_nit__rapid_type_analysis__RapidTypeVisitor__receiver_61d
]))(var90
, var_bound_mtype
); /* receiver= on <var90:RapidTypeVisitor>*/
4048 ((void(*)(val
* self
, val
* p0
))(var90
->class->vft
[COLOR_nit__rapid_type_analysis__RapidTypeVisitor__mpropdef_61d
]))(var90
, var_mpropdef
); /* mpropdef= on <var90:RapidTypeVisitor>*/
4051 ((void(*)(val
* self
))(var90
->class->vft
[COLOR_standard__kernel__Object__init
]))(var90
); /* init on <var90:RapidTypeVisitor>*/
4055 { /* Inline parser_nodes#AAttrPropdef#n_expr (var_npropdef) on <var_npropdef:AAttrPropdef> */
4056 var93
= var_npropdef
->attrs
[COLOR_nit__parser_nodes__AAttrPropdef___n_expr
].val
; /* _n_expr on <var_npropdef:AAttrPropdef> */
4058 RET_LABEL92
:(void)0;
4062 nit___nit__Visitor___enter_visit(var_v
, var91
); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:RapidTypeVisitor>*/
4065 { /* Inline parser_nodes#AAttrPropdef#n_block (var_npropdef) on <var_npropdef:AAttrPropdef> */
4066 var96
= var_npropdef
->attrs
[COLOR_nit__parser_nodes__AAttrPropdef___n_block
].val
; /* _n_block on <var_npropdef:AAttrPropdef> */
4068 RET_LABEL95
:(void)0;
4072 nit___nit__Visitor___enter_visit(var_v
, var94
); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:RapidTypeVisitor>*/
4074 BREAK_label86
: (void)0;
4076 standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__next(var_79
); /* Direct call array#ArrayIterator#next on <var_79:ArrayIterator[AAttrPropdef]>*/
4082 BREAK_label97
: (void)0;
4084 standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__finish(var_79
); /* Direct call array#ArrayIterator#finish on <var_79:ArrayIterator[AAttrPropdef]>*/
4087 ((void(*)(val
* self
))((((long)var_70
&3)?class_info
[((long)var_70
&3)]:var_70
->class)->vft
[COLOR_standard__abstract_collection__Iterator__next
]))(var_70
); /* next on <var_70:Iterator[MClassDef]>*/
4093 BREAK_label98
: (void)0;
4095 ((void(*)(val
* self
))((((long)var_70
&3)?class_info
[((long)var_70
&3)]:var_70
->class)->vft
[COLOR_standard__abstract_collection__Iterator__finish
]))(var_70
); /* finish on <var_70:Iterator[MClassDef]>*/
4099 /* method rapid_type_analysis#RapidTypeAnalysis#add_cast for (self: RapidTypeAnalysis, MType) */
4100 void nit___nit__RapidTypeAnalysis___add_cast(val
* self
, val
* p0
) {
4101 val
* var_mtype
/* var mtype: MType */;
4102 short int var
/* : Bool */;
4103 val
* var1
/* : HashSet[MType] */;
4104 val
* var3
/* : HashSet[MType] */;
4105 val
* var4
/* : HashSet[MType] */;
4106 val
* var6
/* : HashSet[MType] */;
4109 var
= ((short int(*)(val
* self
))(var_mtype
->class->vft
[COLOR_nit__model__MType__need_anchor
]))(var_mtype
); /* need_anchor on <var_mtype:MType>*/
4113 { /* Inline rapid_type_analysis#RapidTypeAnalysis#live_open_cast_types (self) on <self:RapidTypeAnalysis> */
4114 var3
= self
->attrs
[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___live_open_cast_types
].val
; /* _live_open_cast_types on <self:RapidTypeAnalysis> */
4115 if (unlikely(var3
== NULL
)) {
4116 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_open_cast_types");
4117 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 75);
4125 standard___standard__HashSet___standard__abstract_collection__SimpleCollection__add(var1
, var_mtype
); /* Direct call hash_collection#HashSet#add on <var1:HashSet[MType]>*/
4129 { /* Inline rapid_type_analysis#RapidTypeAnalysis#live_cast_types (self) on <self:RapidTypeAnalysis> */
4130 var6
= self
->attrs
[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___live_cast_types
].val
; /* _live_cast_types on <self:RapidTypeAnalysis> */
4131 if (unlikely(var6
== NULL
)) {
4132 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_cast_types");
4133 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 72);
4141 standard___standard__HashSet___standard__abstract_collection__SimpleCollection__add(var4
, var_mtype
); /* Direct call hash_collection#HashSet#add on <var4:HashSet[MType]>*/
4146 /* method rapid_type_analysis#RapidTypeAnalysis#try_send for (self: RapidTypeAnalysis, MClassType, MMethod) */
4147 void nit___nit__RapidTypeAnalysis___try_send(val
* self
, val
* p0
, val
* p1
) {
4148 val
* var_recv
/* var recv: MClassType */;
4149 val
* var_mproperty
/* var mproperty: MMethod */;
4150 val
* var
/* : MClass */;
4151 val
* var2
/* : MClass */;
4152 val
* var3
/* : MClassDef */;
4153 val
* var5
/* : MClassDef */;
4154 val
* var6
/* : MClassType */;
4155 val
* var8
/* : MClassType */;
4156 val
* var9
/* : MModule */;
4157 val
* var11
/* : MModule */;
4158 short int var12
/* : Bool */;
4159 short int var13
/* : Bool */;
4160 val
* var14
/* : MModule */;
4161 val
* var16
/* : MModule */;
4162 val
* var17
/* : MPropDef */;
4163 val
* var_d
/* var d: MMethodDef */;
4167 { /* Inline model#MClassType#mclass (var_recv) on <var_recv:MClassType> */
4168 var2
= var_recv
->attrs
[COLOR_nit__model__MClassType___mclass
].val
; /* _mclass on <var_recv:MClassType> */
4169 if (unlikely(var2
== NULL
)) {
4170 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
4171 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 1138);
4179 { /* Inline model#MClass#intro (var) on <var:MClass> */
4180 var5
= var
->attrs
[COLOR_nit__model__MClass___intro
].val
; /* _intro on <var:MClass> */
4181 if (unlikely(var5
== NULL
)) {
4182 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro");
4183 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 460);
4191 { /* Inline model#MClassDef#bound_mtype (var3) on <var3:MClassDef> */
4192 var8
= var3
->attrs
[COLOR_nit__model__MClassDef___bound_mtype
].val
; /* _bound_mtype on <var3:MClassDef> */
4193 if (unlikely(var8
== NULL
)) {
4194 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _bound_mtype");
4195 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 556);
4204 { /* Inline rapid_type_analysis#RapidTypeAnalysis#mainmodule (self) on <self:RapidTypeAnalysis> */
4205 var11
= self
->attrs
[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___mainmodule
].val
; /* _mainmodule on <self:RapidTypeAnalysis> */
4206 if (unlikely(var11
== NULL
)) {
4207 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule");
4208 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 56);
4212 RET_LABEL10
:(void)0;
4216 var12
= nit___nit__MType___has_mproperty(var_recv
, var9
, var_mproperty
);
4224 { /* Inline rapid_type_analysis#RapidTypeAnalysis#mainmodule (self) on <self:RapidTypeAnalysis> */
4225 var16
= self
->attrs
[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___mainmodule
].val
; /* _mainmodule on <self:RapidTypeAnalysis> */
4226 if (unlikely(var16
== NULL
)) {
4227 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule");
4228 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 56);
4232 RET_LABEL15
:(void)0;
4236 var17
= nit___nit__MProperty___lookup_first_definition(var_mproperty
, var14
, var_recv
);
4240 nit___nit__RapidTypeAnalysis___add_call(self
, var_d
); /* Direct call rapid_type_analysis#RapidTypeAnalysis#add_call on <self:RapidTypeAnalysis>*/
4244 /* method rapid_type_analysis#RapidTypeAnalysis#add_call for (self: RapidTypeAnalysis, MMethodDef) */
4245 void nit___nit__RapidTypeAnalysis___add_call(val
* self
, val
* p0
) {
4246 val
* var_mpropdef
/* var mpropdef: MMethodDef */;
4247 val
* var
/* : HashSet[MMethodDef] */;
4248 val
* var2
/* : HashSet[MMethodDef] */;
4249 short int var3
/* : Bool */;
4250 val
* var4
/* : HashSet[MMethodDef] */;
4251 val
* var6
/* : HashSet[MMethodDef] */;
4252 val
* var7
/* : List[MMethodDef] */;
4253 val
* var9
/* : List[MMethodDef] */;
4254 val
* var10
/* : MProperty */;
4255 val
* var12
/* : MProperty */;
4256 val
* var_mproperty
/* var mproperty: MMethod */;
4257 val
* var13
/* : Array[MPropDef] */;
4258 val
* var15
/* : Array[MPropDef] */;
4259 long var16
/* : Int */;
4260 long var18
/* : Int */;
4261 short int var19
/* : Bool */;
4262 short int var21
/* : Bool */;
4265 const char* var_class_name
;
4266 short int var22
/* : Bool */;
4267 val
* var23
/* : Array[MPropDef] */;
4268 val
* var25
/* : Array[MPropDef] */;
4269 val
* var_
/* var : Array[MMethodDef] */;
4270 val
* var26
/* : ArrayIterator[nullable Object] */;
4271 val
* var_27
/* var : ArrayIterator[MMethodDef] */;
4272 short int var28
/* : Bool */;
4273 val
* var29
/* : nullable Object */;
4274 val
* var_d
/* var d: MMethodDef */;
4275 val
* var30
/* : HashSet[MMethodDef] */;
4276 val
* var32
/* : HashSet[MMethodDef] */;
4277 short int var33
/* : Bool */;
4278 short int var34
/* : Bool */;
4279 val
* var35
/* : Array[MMethod] */;
4280 val
* var37
/* : Array[MMethod] */;
4281 val
* var38
/* : MProperty */;
4282 val
* var40
/* : MProperty */;
4285 { /* Inline rapid_type_analysis#RapidTypeAnalysis#live_methoddefs (self) on <self:RapidTypeAnalysis> */
4286 var2
= self
->attrs
[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___live_methoddefs
].val
; /* _live_methoddefs on <self:RapidTypeAnalysis> */
4287 if (unlikely(var2
== NULL
)) {
4288 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_methoddefs");
4289 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 79);
4297 var3
= standard___standard__HashSet___standard__abstract_collection__Collection__has(var
, var_mpropdef
);
4304 { /* Inline rapid_type_analysis#RapidTypeAnalysis#live_methoddefs (self) on <self:RapidTypeAnalysis> */
4305 var6
= self
->attrs
[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___live_methoddefs
].val
; /* _live_methoddefs on <self:RapidTypeAnalysis> */
4306 if (unlikely(var6
== NULL
)) {
4307 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_methoddefs");
4308 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 79);
4316 standard___standard__HashSet___standard__abstract_collection__SimpleCollection__add(var4
, var_mpropdef
); /* Direct call hash_collection#HashSet#add on <var4:HashSet[MMethodDef]>*/
4319 { /* Inline rapid_type_analysis#RapidTypeAnalysis#todo (self) on <self:RapidTypeAnalysis> */
4320 var9
= self
->attrs
[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___todo
].val
; /* _todo on <self:RapidTypeAnalysis> */
4321 if (unlikely(var9
== NULL
)) {
4322 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _todo");
4323 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 179);
4331 standard___standard__Sequence___SimpleCollection__add(var7
, var_mpropdef
); /* Direct call abstract_collection#Sequence#add on <var7:List[MMethodDef]>*/
4334 { /* Inline model#MPropDef#mproperty (var_mpropdef) on <var_mpropdef:MMethodDef> */
4335 var12
= var_mpropdef
->attrs
[COLOR_nit__model__MPropDef___mproperty
].val
; /* _mproperty on <var_mpropdef:MMethodDef> */
4336 if (unlikely(var12
== NULL
)) {
4337 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty");
4338 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 2212);
4342 RET_LABEL11
:(void)0;
4345 var_mproperty
= var10
;
4347 { /* Inline model#MProperty#mpropdefs (var_mproperty) on <var_mproperty:MMethod> */
4348 var15
= var_mproperty
->attrs
[COLOR_nit__model__MProperty___mpropdefs
].val
; /* _mpropdefs on <var_mproperty:MMethod> */
4349 if (unlikely(var15
== NULL
)) {
4350 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mpropdefs");
4351 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 1963);
4355 RET_LABEL14
:(void)0;
4359 { /* Inline array#AbstractArrayRead#length (var13) on <var13:Array[MPropDef](Array[MMethodDef])> */
4360 var18
= var13
->attrs
[COLOR_standard__array__AbstractArrayRead___length
].l
; /* _length on <var13:Array[MPropDef](Array[MMethodDef])> */
4362 RET_LABEL17
:(void)0;
4366 { /* Inline kernel#Int#<= (var16,1l) on <var16:Int> */
4367 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
4368 /* <1l:Int> isa OTHER */
4369 var21
= 1; /* easy <1l:Int> isa OTHER*/
4370 if (unlikely(!var21
)) {
4371 var_class_name
= type_standard__Int
.name
;
4372 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name
);
4373 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel
, 533);
4376 var22
= var16
<= 1l;
4379 RET_LABEL20
:(void)0;
4387 { /* Inline model#MProperty#mpropdefs (var_mproperty) on <var_mproperty:MMethod> */
4388 var25
= var_mproperty
->attrs
[COLOR_nit__model__MProperty___mpropdefs
].val
; /* _mpropdefs on <var_mproperty:MMethod> */
4389 if (unlikely(var25
== NULL
)) {
4390 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mpropdefs");
4391 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 1963);
4395 RET_LABEL24
:(void)0;
4400 var26
= standard___standard__AbstractArrayRead___standard__abstract_collection__Collection__iterator(var_
);
4405 var28
= standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__is_ok(var_27
);
4409 var29
= standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__item(var_27
);
4413 { /* Inline rapid_type_analysis#RapidTypeAnalysis#live_methoddefs (self) on <self:RapidTypeAnalysis> */
4414 var32
= self
->attrs
[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___live_methoddefs
].val
; /* _live_methoddefs on <self:RapidTypeAnalysis> */
4415 if (unlikely(var32
== NULL
)) {
4416 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_methoddefs");
4417 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 79);
4421 RET_LABEL31
:(void)0;
4425 var33
= standard___standard__HashSet___standard__abstract_collection__Collection__has(var30
, var_d
);
4433 standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__next(var_27
); /* Direct call array#ArrayIterator#next on <var_27:ArrayIterator[MMethodDef]>*/
4439 BREAK_label
: (void)0;
4441 standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__finish(var_27
); /* Direct call array#ArrayIterator#finish on <var_27:ArrayIterator[MMethodDef]>*/
4444 { /* Inline rapid_type_analysis#RapidTypeAnalysis#totry_methods_to_remove (self) on <self:RapidTypeAnalysis> */
4445 var37
= self
->attrs
[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___totry_methods_to_remove
].val
; /* _totry_methods_to_remove on <self:RapidTypeAnalysis> */
4446 if (unlikely(var37
== NULL
)) {
4447 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _totry_methods_to_remove");
4448 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 172);
4452 RET_LABEL36
:(void)0;
4456 { /* Inline model#MPropDef#mproperty (var_mpropdef) on <var_mpropdef:MMethodDef> */
4457 var40
= var_mpropdef
->attrs
[COLOR_nit__model__MPropDef___mproperty
].val
; /* _mproperty on <var_mpropdef:MMethodDef> */
4458 if (unlikely(var40
== NULL
)) {
4459 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty");
4460 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 2212);
4464 RET_LABEL39
:(void)0;
4468 standard___standard__Array___standard__abstract_collection__SimpleCollection__add(var35
, var38
); /* Direct call array#Array#add on <var35:Array[MMethod]>*/
4472 /* method rapid_type_analysis#RapidTypeAnalysis#add_send for (self: RapidTypeAnalysis, MType, MMethod) */
4473 void nit___nit__RapidTypeAnalysis___add_send(val
* self
, val
* p0
, val
* p1
) {
4474 val
* var_recv
/* var recv: MType */;
4475 val
* var_mproperty
/* var mproperty: MMethod */;
4476 val
* var
/* : HashSet[MMethod] */;
4477 val
* var2
/* : HashSet[MMethod] */;
4478 short int var3
/* : Bool */;
4479 val
* var4
/* : HashSet[MMethod] */;
4480 val
* var6
/* : HashSet[MMethod] */;
4481 val
* var7
/* : HashSet[MMethod] */;
4482 val
* var9
/* : HashSet[MMethod] */;
4483 val
* var10
/* : Array[MPropDef] */;
4484 val
* var12
/* : Array[MPropDef] */;
4485 long var13
/* : Int */;
4486 long var15
/* : Int */;
4487 short int var16
/* : Bool */;
4488 short int var18
/* : Bool */;
4489 val
* var19
/* : Array[MPropDef] */;
4490 val
* var21
/* : Array[MPropDef] */;
4491 val
* var22
/* : nullable Object */;
4492 val
* var_d
/* var d: MMethodDef */;
4493 val
* var23
/* : HashSet[MMethod] */;
4494 val
* var25
/* : HashSet[MMethod] */;
4495 val
* var26
/* : HashSet[MClass] */;
4496 val
* var28
/* : HashSet[MClass] */;
4497 val
* var_
/* var : HashSet[MClass] */;
4498 val
* var29
/* : Iterator[nullable Object] */;
4499 val
* var_30
/* var : Iterator[MClass] */;
4500 short int var31
/* : Bool */;
4501 val
* var32
/* : nullable Object */;
4502 val
* var_c
/* var c: MClass */;
4503 val
* var33
/* : MClassDef */;
4504 val
* var35
/* : MClassDef */;
4505 val
* var36
/* : MClassType */;
4506 val
* var38
/* : MClassType */;
4510 { /* Inline rapid_type_analysis#RapidTypeAnalysis#try_methods (self) on <self:RapidTypeAnalysis> */
4511 var2
= self
->attrs
[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___try_methods
].val
; /* _try_methods on <self:RapidTypeAnalysis> */
4512 if (unlikely(var2
== NULL
)) {
4513 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _try_methods");
4514 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 175);
4522 var3
= standard___standard__HashSet___standard__abstract_collection__Collection__has(var
, var_mproperty
);
4529 { /* Inline rapid_type_analysis#RapidTypeAnalysis#live_methods (self) on <self:RapidTypeAnalysis> */
4530 var6
= self
->attrs
[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___live_methods
].val
; /* _live_methods on <self:RapidTypeAnalysis> */
4531 if (unlikely(var6
== NULL
)) {
4532 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_methods");
4533 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 82);
4541 standard___standard__HashSet___standard__abstract_collection__SimpleCollection__add(var4
, var_mproperty
); /* Direct call hash_collection#HashSet#add on <var4:HashSet[MMethod]>*/
4544 { /* Inline rapid_type_analysis#RapidTypeAnalysis#try_methods (self) on <self:RapidTypeAnalysis> */
4545 var9
= self
->attrs
[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___try_methods
].val
; /* _try_methods on <self:RapidTypeAnalysis> */
4546 if (unlikely(var9
== NULL
)) {
4547 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _try_methods");
4548 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 175);
4556 standard___standard__HashSet___standard__abstract_collection__SimpleCollection__add(var7
, var_mproperty
); /* Direct call hash_collection#HashSet#add on <var7:HashSet[MMethod]>*/
4559 { /* Inline model#MProperty#mpropdefs (var_mproperty) on <var_mproperty:MMethod> */
4560 var12
= var_mproperty
->attrs
[COLOR_nit__model__MProperty___mpropdefs
].val
; /* _mpropdefs on <var_mproperty:MMethod> */
4561 if (unlikely(var12
== NULL
)) {
4562 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mpropdefs");
4563 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 1963);
4567 RET_LABEL11
:(void)0;
4571 { /* Inline array#AbstractArrayRead#length (var10) on <var10:Array[MPropDef](Array[MMethodDef])> */
4572 var15
= var10
->attrs
[COLOR_standard__array__AbstractArrayRead___length
].l
; /* _length on <var10:Array[MPropDef](Array[MMethodDef])> */
4574 RET_LABEL14
:(void)0;
4578 { /* Inline kernel#Int#== (var13,1l) on <var13:Int> */
4579 var18
= var13
== 1l;
4582 RET_LABEL17
:(void)0;
4587 { /* Inline model#MProperty#mpropdefs (var_mproperty) on <var_mproperty:MMethod> */
4588 var21
= var_mproperty
->attrs
[COLOR_nit__model__MProperty___mpropdefs
].val
; /* _mpropdefs on <var_mproperty:MMethod> */
4589 if (unlikely(var21
== NULL
)) {
4590 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mpropdefs");
4591 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 1963);
4595 RET_LABEL20
:(void)0;
4599 var22
= standard___standard__SequenceRead___Collection__first(var19
);
4603 nit___nit__RapidTypeAnalysis___add_call(self
, var_d
); /* Direct call rapid_type_analysis#RapidTypeAnalysis#add_call on <self:RapidTypeAnalysis>*/
4609 { /* Inline rapid_type_analysis#RapidTypeAnalysis#totry_methods (self) on <self:RapidTypeAnalysis> */
4610 var25
= self
->attrs
[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___totry_methods
].val
; /* _totry_methods on <self:RapidTypeAnalysis> */
4611 if (unlikely(var25
== NULL
)) {
4612 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _totry_methods");
4613 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 169);
4617 RET_LABEL24
:(void)0;
4621 standard___standard__HashSet___standard__abstract_collection__SimpleCollection__add(var23
, var_mproperty
); /* Direct call hash_collection#HashSet#add on <var23:HashSet[MMethod]>*/
4624 { /* Inline rapid_type_analysis#RapidTypeAnalysis#live_classes (self) on <self:RapidTypeAnalysis> */
4625 var28
= self
->attrs
[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___live_classes
].val
; /* _live_classes on <self:RapidTypeAnalysis> */
4626 if (unlikely(var28
== NULL
)) {
4627 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_classes");
4628 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 69);
4632 RET_LABEL27
:(void)0;
4637 var29
= standard___standard__HashSet___standard__abstract_collection__Collection__iterator(var_
);
4642 var31
= ((short int(*)(val
* self
))((((long)var_30
&3)?class_info
[((long)var_30
&3)]:var_30
->class)->vft
[COLOR_standard__abstract_collection__Iterator__is_ok
]))(var_30
); /* is_ok on <var_30:Iterator[MClass]>*/
4646 var32
= ((val
*(*)(val
* self
))((((long)var_30
&3)?class_info
[((long)var_30
&3)]:var_30
->class)->vft
[COLOR_standard__abstract_collection__Iterator__item
]))(var_30
); /* item on <var_30:Iterator[MClass]>*/
4650 { /* Inline model#MClass#intro (var_c) on <var_c:MClass> */
4651 var35
= var_c
->attrs
[COLOR_nit__model__MClass___intro
].val
; /* _intro on <var_c:MClass> */
4652 if (unlikely(var35
== NULL
)) {
4653 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro");
4654 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 460);
4658 RET_LABEL34
:(void)0;
4662 { /* Inline model#MClassDef#bound_mtype (var33) on <var33:MClassDef> */
4663 var38
= var33
->attrs
[COLOR_nit__model__MClassDef___bound_mtype
].val
; /* _bound_mtype on <var33:MClassDef> */
4664 if (unlikely(var38
== NULL
)) {
4665 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _bound_mtype");
4666 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 556);
4670 RET_LABEL37
:(void)0;
4674 nit___nit__RapidTypeAnalysis___try_send(self
, var36
, var_mproperty
); /* Direct call rapid_type_analysis#RapidTypeAnalysis#try_send on <self:RapidTypeAnalysis>*/
4677 ((void(*)(val
* self
))((((long)var_30
&3)?class_info
[((long)var_30
&3)]:var_30
->class)->vft
[COLOR_standard__abstract_collection__Iterator__next
]))(var_30
); /* next on <var_30:Iterator[MClass]>*/
4683 BREAK_label
: (void)0;
4685 ((void(*)(val
* self
))((((long)var_30
&3)?class_info
[((long)var_30
&3)]:var_30
->class)->vft
[COLOR_standard__abstract_collection__Iterator__finish
]))(var_30
); /* finish on <var_30:Iterator[MClass]>*/
4689 /* method rapid_type_analysis#RapidTypeAnalysis#try_super_send for (self: RapidTypeAnalysis, MClassType, MMethodDef) */
4690 void nit___nit__RapidTypeAnalysis___try_super_send(val
* self
, val
* p0
, val
* p1
) {
4691 val
* var_recv
/* var recv: MClassType */;
4692 val
* var_mpropdef
/* var mpropdef: MMethodDef */;
4693 val
* var
/* : MClass */;
4694 val
* var2
/* : MClass */;
4695 val
* var3
/* : MClassDef */;
4696 val
* var5
/* : MClassDef */;
4697 val
* var6
/* : MClassType */;
4698 val
* var8
/* : MClassType */;
4699 val
* var9
/* : MModule */;
4700 val
* var11
/* : MModule */;
4701 val
* var12
/* : Set[MClassDef] */;
4702 val
* var13
/* : MClassDef */;
4703 val
* var15
/* : MClassDef */;
4704 short int var16
/* : Bool */;
4705 short int var17
/* : Bool */;
4706 val
* var18
/* : MModule */;
4707 val
* var20
/* : MModule */;
4708 val
* var21
/* : MPropDef */;
4709 val
* var_d
/* var d: MMethodDef */;
4713 { /* Inline model#MClassType#mclass (var_recv) on <var_recv:MClassType> */
4714 var2
= var_recv
->attrs
[COLOR_nit__model__MClassType___mclass
].val
; /* _mclass on <var_recv:MClassType> */
4715 if (unlikely(var2
== NULL
)) {
4716 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
4717 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 1138);
4725 { /* Inline model#MClass#intro (var) on <var:MClass> */
4726 var5
= var
->attrs
[COLOR_nit__model__MClass___intro
].val
; /* _intro on <var:MClass> */
4727 if (unlikely(var5
== NULL
)) {
4728 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro");
4729 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 460);
4737 { /* Inline model#MClassDef#bound_mtype (var3) on <var3:MClassDef> */
4738 var8
= var3
->attrs
[COLOR_nit__model__MClassDef___bound_mtype
].val
; /* _bound_mtype on <var3:MClassDef> */
4739 if (unlikely(var8
== NULL
)) {
4740 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _bound_mtype");
4741 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 556);
4750 { /* Inline rapid_type_analysis#RapidTypeAnalysis#mainmodule (self) on <self:RapidTypeAnalysis> */
4751 var11
= self
->attrs
[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___mainmodule
].val
; /* _mainmodule on <self:RapidTypeAnalysis> */
4752 if (unlikely(var11
== NULL
)) {
4753 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule");
4754 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 56);
4758 RET_LABEL10
:(void)0;
4762 var12
= nit___nit__MClassType___MType__collect_mclassdefs(var_recv
, var9
);
4765 { /* Inline model#MPropDef#mclassdef (var_mpropdef) on <var_mpropdef:MMethodDef> */
4766 var15
= var_mpropdef
->attrs
[COLOR_nit__model__MPropDef___mclassdef
].val
; /* _mclassdef on <var_mpropdef:MMethodDef> */
4767 if (unlikely(var15
== NULL
)) {
4768 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdef");
4769 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 2209);
4773 RET_LABEL14
:(void)0;
4777 var16
= ((short int(*)(val
* self
, val
* p0
))((((long)var12
&3)?class_info
[((long)var12
&3)]:var12
->class)->vft
[COLOR_standard__abstract_collection__Collection__has
]))(var12
, var13
); /* has on <var12:Set[MClassDef]>*/
4785 { /* Inline rapid_type_analysis#RapidTypeAnalysis#mainmodule (self) on <self:RapidTypeAnalysis> */
4786 var20
= self
->attrs
[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___mainmodule
].val
; /* _mainmodule on <self:RapidTypeAnalysis> */
4787 if (unlikely(var20
== NULL
)) {
4788 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule");
4789 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 56);
4793 RET_LABEL19
:(void)0;
4797 var21
= nit___nit__MPropDef___lookup_next_definition(var_mpropdef
, var18
, var_recv
);
4801 nit___nit__RapidTypeAnalysis___add_call(self
, var_d
); /* Direct call rapid_type_analysis#RapidTypeAnalysis#add_call on <self:RapidTypeAnalysis>*/
4805 /* method rapid_type_analysis#RapidTypeAnalysis#add_super_send for (self: RapidTypeAnalysis, MType, MMethodDef) */
4806 void nit___nit__RapidTypeAnalysis___add_super_send(val
* self
, val
* p0
, val
* p1
) {
4807 val
* var_recv
/* var recv: MType */;
4808 val
* var_mpropdef
/* var mpropdef: MMethodDef */;
4809 short int var
/* : Bool */;
4810 short int var2
/* : Bool */;
4811 val
* var3
/* : HashSet[MMethodDef] */;
4812 val
* var5
/* : HashSet[MMethodDef] */;
4813 short int var6
/* : Bool */;
4814 val
* var7
/* : HashSet[MMethodDef] */;
4815 val
* var9
/* : HashSet[MMethodDef] */;
4816 val
* var10
/* : HashSet[MClass] */;
4817 val
* var12
/* : HashSet[MClass] */;
4818 val
* var_
/* var : HashSet[MClass] */;
4819 val
* var13
/* : Iterator[nullable Object] */;
4820 val
* var_14
/* var : Iterator[MClass] */;
4821 short int var15
/* : Bool */;
4822 val
* var16
/* : nullable Object */;
4823 val
* var_c
/* var c: MClass */;
4824 val
* var17
/* : MClassDef */;
4825 val
* var19
/* : MClassDef */;
4826 val
* var20
/* : MClassType */;
4827 val
* var22
/* : MClassType */;
4831 { /* Inline modelize_property#MPropDef#has_supercall (var_mpropdef) on <var_mpropdef:MMethodDef> */
4832 var2
= var_mpropdef
->attrs
[COLOR_nit__modelize_property__MPropDef___has_supercall
].s
; /* _has_supercall on <var_mpropdef:MMethodDef> */
4837 if (unlikely(!var
)) {
4838 PRINT_ERROR("Runtime error: %s", "Assert failed");
4839 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 434);
4843 { /* Inline rapid_type_analysis#RapidTypeAnalysis#live_super_sends (self) on <self:RapidTypeAnalysis> */
4844 var5
= self
->attrs
[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___live_super_sends
].val
; /* _live_super_sends on <self:RapidTypeAnalysis> */
4845 if (unlikely(var5
== NULL
)) {
4846 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_super_sends");
4847 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 114);
4855 var6
= standard___standard__HashSet___standard__abstract_collection__Collection__has(var3
, var_mpropdef
);
4862 { /* Inline rapid_type_analysis#RapidTypeAnalysis#live_super_sends (self) on <self:RapidTypeAnalysis> */
4863 var9
= self
->attrs
[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___live_super_sends
].val
; /* _live_super_sends on <self:RapidTypeAnalysis> */
4864 if (unlikely(var9
== NULL
)) {
4865 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_super_sends");
4866 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 114);
4874 standard___standard__HashSet___standard__abstract_collection__SimpleCollection__add(var7
, var_mpropdef
); /* Direct call hash_collection#HashSet#add on <var7:HashSet[MMethodDef]>*/
4877 { /* Inline rapid_type_analysis#RapidTypeAnalysis#live_classes (self) on <self:RapidTypeAnalysis> */
4878 var12
= self
->attrs
[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___live_classes
].val
; /* _live_classes on <self:RapidTypeAnalysis> */
4879 if (unlikely(var12
== NULL
)) {
4880 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_classes");
4881 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 69);
4885 RET_LABEL11
:(void)0;
4890 var13
= standard___standard__HashSet___standard__abstract_collection__Collection__iterator(var_
);
4895 var15
= ((short int(*)(val
* self
))((((long)var_14
&3)?class_info
[((long)var_14
&3)]:var_14
->class)->vft
[COLOR_standard__abstract_collection__Iterator__is_ok
]))(var_14
); /* is_ok on <var_14:Iterator[MClass]>*/
4899 var16
= ((val
*(*)(val
* self
))((((long)var_14
&3)?class_info
[((long)var_14
&3)]:var_14
->class)->vft
[COLOR_standard__abstract_collection__Iterator__item
]))(var_14
); /* item on <var_14:Iterator[MClass]>*/
4903 { /* Inline model#MClass#intro (var_c) on <var_c:MClass> */
4904 var19
= var_c
->attrs
[COLOR_nit__model__MClass___intro
].val
; /* _intro on <var_c:MClass> */
4905 if (unlikely(var19
== NULL
)) {
4906 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro");
4907 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 460);
4911 RET_LABEL18
:(void)0;
4915 { /* Inline model#MClassDef#bound_mtype (var17) on <var17:MClassDef> */
4916 var22
= var17
->attrs
[COLOR_nit__model__MClassDef___bound_mtype
].val
; /* _bound_mtype on <var17:MClassDef> */
4917 if (unlikely(var22
== NULL
)) {
4918 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _bound_mtype");
4919 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 556);
4923 RET_LABEL21
:(void)0;
4927 nit___nit__RapidTypeAnalysis___try_super_send(self
, var20
, var_mpropdef
); /* Direct call rapid_type_analysis#RapidTypeAnalysis#try_super_send on <self:RapidTypeAnalysis>*/
4930 ((void(*)(val
* self
))((((long)var_14
&3)?class_info
[((long)var_14
&3)]:var_14
->class)->vft
[COLOR_standard__abstract_collection__Iterator__next
]))(var_14
); /* next on <var_14:Iterator[MClass]>*/
4936 BREAK_label
: (void)0;
4938 ((void(*)(val
* self
))((((long)var_14
&3)?class_info
[((long)var_14
&3)]:var_14
->class)->vft
[COLOR_standard__abstract_collection__Iterator__finish
]))(var_14
); /* finish on <var_14:Iterator[MClass]>*/
4942 /* method rapid_type_analysis#RapidTypeAnalysis#init for (self: RapidTypeAnalysis) */
4943 void nit___nit__RapidTypeAnalysis___standard__kernel__Object__init(val
* self
) {
4945 ((void(*)(val
* self
))(self
->class->vft
[COLOR_nit___nit__RapidTypeAnalysis___standard__kernel__Object__init
]))(self
); /* init on <self:RapidTypeAnalysis>*/
4949 /* method rapid_type_analysis#RapidTypeVisitor#analysis for (self: RapidTypeVisitor): RapidTypeAnalysis */
4950 val
* nit___nit__RapidTypeVisitor___analysis(val
* self
) {
4951 val
* var
/* : RapidTypeAnalysis */;
4952 val
* var1
/* : RapidTypeAnalysis */;
4953 var1
= self
->attrs
[COLOR_nit__rapid_type_analysis__RapidTypeVisitor___analysis
].val
; /* _analysis on <self:RapidTypeVisitor> */
4954 if (unlikely(var1
== NULL
)) {
4955 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _analysis");
4956 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 447);
4963 /* method rapid_type_analysis#RapidTypeVisitor#analysis= for (self: RapidTypeVisitor, RapidTypeAnalysis) */
4964 void nit___nit__RapidTypeVisitor___analysis_61d(val
* self
, val
* p0
) {
4965 self
->attrs
[COLOR_nit__rapid_type_analysis__RapidTypeVisitor___analysis
].val
= p0
; /* _analysis on <self:RapidTypeVisitor> */
4968 /* method rapid_type_analysis#RapidTypeVisitor#receiver for (self: RapidTypeVisitor): MClassType */
4969 val
* nit___nit__RapidTypeVisitor___receiver(val
* self
) {
4970 val
* var
/* : MClassType */;
4971 val
* var1
/* : MClassType */;
4972 var1
= self
->attrs
[COLOR_nit__rapid_type_analysis__RapidTypeVisitor___receiver
].val
; /* _receiver on <self:RapidTypeVisitor> */
4973 if (unlikely(var1
== NULL
)) {
4974 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _receiver");
4975 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 448);
4982 /* method rapid_type_analysis#RapidTypeVisitor#receiver= for (self: RapidTypeVisitor, MClassType) */
4983 void nit___nit__RapidTypeVisitor___receiver_61d(val
* self
, val
* p0
) {
4984 self
->attrs
[COLOR_nit__rapid_type_analysis__RapidTypeVisitor___receiver
].val
= p0
; /* _receiver on <self:RapidTypeVisitor> */
4987 /* method rapid_type_analysis#RapidTypeVisitor#mpropdef= for (self: RapidTypeVisitor, MPropDef) */
4988 void nit___nit__RapidTypeVisitor___mpropdef_61d(val
* self
, val
* p0
) {
4989 self
->attrs
[COLOR_nit__rapid_type_analysis__RapidTypeVisitor___mpropdef
].val
= p0
; /* _mpropdef on <self:RapidTypeVisitor> */
4992 /* method rapid_type_analysis#RapidTypeVisitor#init for (self: RapidTypeVisitor) */
4993 void nit___nit__RapidTypeVisitor___standard__kernel__Object__init(val
* self
) {
4994 val
* var
/* : MClassType */;
4995 val
* var2
/* : MClassType */;
4996 short int var3
/* : Bool */;
4997 short int var4
/* : Bool */;
4999 ((void(*)(val
* self
))(self
->class->vft
[COLOR_nit___nit__RapidTypeVisitor___standard__kernel__Object__init
]))(self
); /* init on <self:RapidTypeVisitor>*/
5002 { /* Inline rapid_type_analysis#RapidTypeVisitor#receiver (self) on <self:RapidTypeVisitor> */
5003 var2
= self
->attrs
[COLOR_nit__rapid_type_analysis__RapidTypeVisitor___receiver
].val
; /* _receiver on <self:RapidTypeVisitor> */
5004 if (unlikely(var2
== NULL
)) {
5005 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _receiver");
5006 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 448);
5014 var3
= ((short int(*)(val
* self
))(var
->class->vft
[COLOR_nit__model__MType__need_anchor
]))(var
); /* need_anchor on <var:MClassType>*/
5017 if (unlikely(!var4
)) {
5018 PRINT_ERROR("Runtime error: %s", "Assert failed");
5019 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 453);
5024 /* method rapid_type_analysis#RapidTypeVisitor#visit for (self: RapidTypeVisitor, ANode) */
5025 void nit___nit__RapidTypeVisitor___nit__parser_nodes__Visitor__visit(val
* self
, val
* p0
) {
5026 val
* var_n
/* var n: ANode */;
5027 short int var
/* : Bool */;
5030 short int var1
/* : Bool */;
5031 val
* var2
/* : nullable MType */;
5032 short int var3
/* : Bool */;
5033 short int var4
/* : Bool */;
5034 val
* var_other
/* var other: nullable Object */;
5035 short int var6
/* : Bool */;
5036 short int var7
/* : Bool */;
5037 short int var_
/* var : Bool */;
5038 short int var8
/* : Bool */;
5039 short int var10
/* : Bool */;
5040 val
* var11
/* : nullable MType */;
5041 val
* var13
/* : nullable MType */;
5042 val
* var_implicit_cast_to
/* var implicit_cast_to: nullable MType */;
5043 short int var14
/* : Bool */;
5044 short int var15
/* : Bool */;
5045 short int var17
/* : Bool */;
5046 short int var18
/* : Bool */;
5047 short int var19
/* : Bool */;
5050 short int var22
/* : Bool */;
5052 /* <var_n:ANode> isa AExpr */
5053 cltype
= type_nit__AExpr
.color
;
5054 idtype
= type_nit__AExpr
.id
;
5055 if(cltype
>= var_n
->type
->table_size
) {
5058 var
= var_n
->type
->type_table
[cltype
] == idtype
;
5062 var2
= ((val
*(*)(val
* self
))(var_n
->class->vft
[COLOR_nit__typing__AExpr__mtype
]))(var_n
); /* mtype on <var_n:ANode(AExpr)>*/
5065 var3
= 0; /* is null */
5067 var3
= 1; /* arg is null and recv is not */
5070 { /* Inline kernel#Object#!= (var2,((val*)NULL)) on <var2:nullable MType> */
5071 var_other
= ((val
*)NULL
);
5073 var6
= ((short int(*)(val
* self
, val
* p0
))(var2
->class->vft
[COLOR_standard__kernel__Object___61d_61d
]))(var2
, var_other
); /* == on <var2:nullable MType(MType)>*/
5087 { /* Inline typing#AExpr#is_typed (var_n) on <var_n:ANode(AExpr)> */
5088 var10
= var_n
->attrs
[COLOR_nit__typing__AExpr___is_typed
].s
; /* _is_typed on <var_n:ANode(AExpr)> */
5097 ((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(AExpr)>*/
5100 { /* Inline typing#AExpr#implicit_cast_to (var_n) on <var_n:ANode(AExpr)> */
5101 var13
= var_n
->attrs
[COLOR_nit__typing__AExpr___implicit_cast_to
].val
; /* _implicit_cast_to on <var_n:ANode(AExpr)> */
5103 RET_LABEL12
:(void)0;
5106 var_implicit_cast_to
= var11
;
5107 if (var_implicit_cast_to
== NULL
) {
5108 var14
= 0; /* is null */
5110 var14
= 1; /* arg is null and recv is not */
5113 { /* Inline kernel#Object#!= (var_implicit_cast_to,((val*)NULL)) on <var_implicit_cast_to:nullable MType> */
5114 var_other
= ((val
*)NULL
);
5116 var17
= ((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)>*/
5121 RET_LABEL16
:(void)0;
5127 nit___nit__RapidTypeVisitor___add_cast_type(self
, var_implicit_cast_to
); /* Direct call rapid_type_analysis#RapidTypeVisitor#add_cast_type on <self:RapidTypeVisitor>*/
5135 ((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>*/
5138 /* <var_n:ANode> isa AAnnotations */
5139 cltype20
= type_nit__AAnnotations
.color
;
5140 idtype21
= type_nit__AAnnotations
.id
;
5141 if(cltype20
>= var_n
->type
->table_size
) {
5144 var19
= var_n
->type
->type_table
[cltype20
] == idtype21
;
5149 ((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>*/
5155 /* method rapid_type_analysis#RapidTypeVisitor#cleanup_type for (self: RapidTypeVisitor, MType): nullable MClassType */
5156 val
* nit___nit__RapidTypeVisitor___cleanup_type(val
* self
, val
* p0
) {
5157 val
* var
/* : nullable MClassType */;
5158 val
* var_mtype
/* var mtype: MType */;
5159 val
* var1
/* : RapidTypeAnalysis */;
5160 val
* var3
/* : RapidTypeAnalysis */;
5161 val
* var4
/* : MModule */;
5162 val
* var6
/* : MModule */;
5163 val
* var7
/* : MClassType */;
5164 val
* var9
/* : MClassType */;
5165 val
* var10
/* : MType */;
5166 short int var11
/* : Bool */;
5169 val
* var12
/* : MType */;
5170 short int var13
/* : Bool */;
5173 short int var16
/* : Bool */;
5174 short int var17
/* : Bool */;
5177 { /* Inline rapid_type_analysis#RapidTypeVisitor#analysis (self) on <self:RapidTypeVisitor> */
5178 var3
= self
->attrs
[COLOR_nit__rapid_type_analysis__RapidTypeVisitor___analysis
].val
; /* _analysis on <self:RapidTypeVisitor> */
5179 if (unlikely(var3
== NULL
)) {
5180 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _analysis");
5181 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 447);
5189 { /* Inline rapid_type_analysis#RapidTypeAnalysis#mainmodule (var1) on <var1:RapidTypeAnalysis> */
5190 var6
= var1
->attrs
[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___mainmodule
].val
; /* _mainmodule on <var1:RapidTypeAnalysis> */
5191 if (unlikely(var6
== NULL
)) {
5192 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule");
5193 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 56);
5201 { /* Inline rapid_type_analysis#RapidTypeVisitor#receiver (self) on <self:RapidTypeVisitor> */
5202 var9
= self
->attrs
[COLOR_nit__rapid_type_analysis__RapidTypeVisitor___receiver
].val
; /* _receiver on <self:RapidTypeVisitor> */
5203 if (unlikely(var9
== NULL
)) {
5204 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _receiver");
5205 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 448);
5213 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>*/
5216 /* <var_mtype:MType> isa MNullType */
5217 cltype
= type_nit__MNullType
.color
;
5218 idtype
= type_nit__MNullType
.id
;
5219 if(cltype
>= var_mtype
->type
->table_size
) {
5222 var11
= var_mtype
->type
->type_table
[cltype
] == idtype
;
5230 var12
= ((val
*(*)(val
* self
))(var_mtype
->class->vft
[COLOR_nit__model__MType__undecorate
]))(var_mtype
); /* undecorate on <var_mtype:MType>*/
5233 /* <var_mtype:MType> isa MClassType */
5234 cltype14
= type_nit__MClassType
.color
;
5235 idtype15
= type_nit__MClassType
.id
;
5236 if(cltype14
>= var_mtype
->type
->table_size
) {
5239 var13
= var_mtype
->type
->type_table
[cltype14
] == idtype15
;
5241 if (unlikely(!var13
)) {
5242 PRINT_ERROR("Runtime error: %s", "Assert failed");
5243 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 479);
5247 var16
= ((short int(*)(val
* self
))(var_mtype
->class->vft
[COLOR_nit__model__MType__need_anchor
]))(var_mtype
); /* need_anchor on <var_mtype:MType(MClassType)>*/
5250 if (unlikely(!var17
)) {
5251 PRINT_ERROR("Runtime error: %s", "Assert failed");
5252 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 480);
5260 /* method rapid_type_analysis#RapidTypeVisitor#get_method for (self: RapidTypeVisitor, MType, String): MMethod */
5261 val
* nit___nit__RapidTypeVisitor___get_method(val
* self
, val
* p0
, val
* p1
) {
5262 val
* var
/* : MMethod */;
5263 val
* var_recv
/* var recv: MType */;
5264 val
* var_name
/* var name: String */;
5265 val
* var1
/* : nullable MClassType */;
5266 val
* var_mtype
/* var mtype: nullable MClassType */;
5267 short int var2
/* : Bool */;
5268 short int var3
/* : Bool */;
5269 val
* var_other
/* var other: nullable Object */;
5270 short int var5
/* : Bool */;
5271 short int var6
/* : Bool */;
5272 val
* var7
/* : RapidTypeAnalysis */;
5273 val
* var9
/* : RapidTypeAnalysis */;
5274 val
* var10
/* : ModelBuilder */;
5275 val
* var12
/* : ModelBuilder */;
5276 val
* var13
/* : nullable ANode */;
5277 val
* var15
/* : nullable ANode */;
5278 val
* var16
/* : MClass */;
5279 val
* var18
/* : MClass */;
5280 val
* var19
/* : RapidTypeAnalysis */;
5281 val
* var21
/* : RapidTypeAnalysis */;
5282 val
* var22
/* : MModule */;
5283 val
* var24
/* : MModule */;
5284 val
* var25
/* : MMethod */;
5288 var1
= nit___nit__RapidTypeVisitor___cleanup_type(self
, var_recv
);
5291 if (var_mtype
== NULL
) {
5292 var2
= 0; /* is null */
5294 var2
= 1; /* arg is null and recv is not */
5297 { /* Inline kernel#Object#!= (var_mtype,((val*)NULL)) on <var_mtype:nullable MClassType> */
5298 var_other
= ((val
*)NULL
);
5300 var5
= ((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)>*/
5309 if (unlikely(!var2
)) {
5310 PRINT_ERROR("Runtime error: %s", "Assert failed");
5311 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 487);
5315 { /* Inline rapid_type_analysis#RapidTypeVisitor#analysis (self) on <self:RapidTypeVisitor> */
5316 var9
= self
->attrs
[COLOR_nit__rapid_type_analysis__RapidTypeVisitor___analysis
].val
; /* _analysis on <self:RapidTypeVisitor> */
5317 if (unlikely(var9
== NULL
)) {
5318 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _analysis");
5319 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 447);
5327 { /* Inline rapid_type_analysis#RapidTypeAnalysis#modelbuilder (var7) on <var7:RapidTypeAnalysis> */
5328 var12
= var7
->attrs
[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___modelbuilder
].val
; /* _modelbuilder on <var7:RapidTypeAnalysis> */
5329 if (unlikely(var12
== NULL
)) {
5330 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
5331 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 53);
5335 RET_LABEL11
:(void)0;
5339 { /* Inline parser_nodes#Visitor#current_node (self) on <self:RapidTypeVisitor> */
5340 var15
= self
->attrs
[COLOR_nit__parser_nodes__Visitor___current_node
].val
; /* _current_node on <self:RapidTypeVisitor> */
5342 RET_LABEL14
:(void)0;
5345 if (unlikely(var13
== NULL
)) {
5346 PRINT_ERROR("Runtime error: %s", "Cast failed");
5347 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 488);
5351 { /* Inline model#MClassType#mclass (var_mtype) on <var_mtype:nullable MClassType(MClassType)> */
5352 var18
= var_mtype
->attrs
[COLOR_nit__model__MClassType___mclass
].val
; /* _mclass on <var_mtype:nullable MClassType(MClassType)> */
5353 if (unlikely(var18
== NULL
)) {
5354 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
5355 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 1138);
5359 RET_LABEL17
:(void)0;
5363 { /* Inline rapid_type_analysis#RapidTypeVisitor#analysis (self) on <self:RapidTypeVisitor> */
5364 var21
= self
->attrs
[COLOR_nit__rapid_type_analysis__RapidTypeVisitor___analysis
].val
; /* _analysis on <self:RapidTypeVisitor> */
5365 if (unlikely(var21
== NULL
)) {
5366 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _analysis");
5367 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 447);
5371 RET_LABEL20
:(void)0;
5375 { /* Inline rapid_type_analysis#RapidTypeAnalysis#mainmodule (var19) on <var19:RapidTypeAnalysis> */
5376 var24
= var19
->attrs
[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___mainmodule
].val
; /* _mainmodule on <var19:RapidTypeAnalysis> */
5377 if (unlikely(var24
== NULL
)) {
5378 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule");
5379 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 56);
5383 RET_LABEL23
:(void)0;
5387 var25
= nit___nit__ModelBuilder___force_get_primitive_method(var10
, var13
, var_name
, var16
, var22
);
5394 /* method rapid_type_analysis#RapidTypeVisitor#add_type for (self: RapidTypeVisitor, MClassType) */
5395 void nit___nit__RapidTypeVisitor___add_type(val
* self
, val
* p0
) {
5396 val
* var_mtype
/* var mtype: MClassType */;
5397 val
* var
/* : RapidTypeAnalysis */;
5398 val
* var2
/* : RapidTypeAnalysis */;
5399 val
* var3
/* : MClassType */;
5400 val
* var5
/* : MClassType */;
5403 { /* Inline rapid_type_analysis#RapidTypeVisitor#analysis (self) on <self:RapidTypeVisitor> */
5404 var2
= self
->attrs
[COLOR_nit__rapid_type_analysis__RapidTypeVisitor___analysis
].val
; /* _analysis on <self:RapidTypeVisitor> */
5405 if (unlikely(var2
== NULL
)) {
5406 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _analysis");
5407 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 447);
5415 { /* Inline rapid_type_analysis#RapidTypeVisitor#receiver (self) on <self:RapidTypeVisitor> */
5416 var5
= self
->attrs
[COLOR_nit__rapid_type_analysis__RapidTypeVisitor___receiver
].val
; /* _receiver on <self:RapidTypeVisitor> */
5417 if (unlikely(var5
== NULL
)) {
5418 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _receiver");
5419 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 448);
5427 nit___nit__RapidTypeAnalysis___add_new(var
, var3
, var_mtype
); /* Direct call rapid_type_analysis#RapidTypeAnalysis#add_new on <var:RapidTypeAnalysis>*/
5431 /* method rapid_type_analysis#RapidTypeVisitor#add_monomorphic_send for (self: RapidTypeVisitor, MType, MMethod) */
5432 void nit___nit__RapidTypeVisitor___add_monomorphic_send(val
* self
, val
* p0
, val
* p1
) {
5433 val
* var_mtype
/* var mtype: MType */;
5434 val
* var_mproperty
/* var mproperty: MMethod */;
5435 val
* var
/* : RapidTypeAnalysis */;
5436 val
* var2
/* : RapidTypeAnalysis */;
5437 val
* var3
/* : HashSet[MMethod] */;
5438 val
* var5
/* : HashSet[MMethod] */;
5439 val
* var6
/* : RapidTypeAnalysis */;
5440 val
* var8
/* : RapidTypeAnalysis */;
5441 short int var9
/* : Bool */;
5444 const char* var_class_name
;
5448 { /* Inline rapid_type_analysis#RapidTypeVisitor#analysis (self) on <self:RapidTypeVisitor> */
5449 var2
= self
->attrs
[COLOR_nit__rapid_type_analysis__RapidTypeVisitor___analysis
].val
; /* _analysis on <self:RapidTypeVisitor> */
5450 if (unlikely(var2
== NULL
)) {
5451 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _analysis");
5452 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 447);
5460 { /* Inline rapid_type_analysis#RapidTypeAnalysis#live_methods (var) on <var:RapidTypeAnalysis> */
5461 var5
= var
->attrs
[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___live_methods
].val
; /* _live_methods on <var:RapidTypeAnalysis> */
5462 if (unlikely(var5
== NULL
)) {
5463 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_methods");
5464 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 82);
5472 standard___standard__HashSet___standard__abstract_collection__SimpleCollection__add(var3
, var_mproperty
); /* Direct call hash_collection#HashSet#add on <var3:HashSet[MMethod]>*/
5475 { /* Inline rapid_type_analysis#RapidTypeVisitor#analysis (self) on <self:RapidTypeVisitor> */
5476 var8
= self
->attrs
[COLOR_nit__rapid_type_analysis__RapidTypeVisitor___analysis
].val
; /* _analysis on <self:RapidTypeVisitor> */
5477 if (unlikely(var8
== NULL
)) {
5478 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _analysis");
5479 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 447);
5486 /* <var_mtype:MType> isa MClassType */
5487 cltype
= type_nit__MClassType
.color
;
5488 idtype
= type_nit__MClassType
.id
;
5489 if(cltype
>= var_mtype
->type
->table_size
) {
5492 var9
= var_mtype
->type
->type_table
[cltype
] == idtype
;
5494 if (unlikely(!var9
)) {
5495 var_class_name
= var_mtype
== NULL ?
"null" : var_mtype
->type
->name
;
5496 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "MClassType", var_class_name
);
5497 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 496);
5501 nit___nit__RapidTypeAnalysis___try_send(var6
, var_mtype
, var_mproperty
); /* Direct call rapid_type_analysis#RapidTypeAnalysis#try_send on <var6:RapidTypeAnalysis>*/
5505 /* method rapid_type_analysis#RapidTypeVisitor#add_cast_type for (self: RapidTypeVisitor, MType) */
5506 void nit___nit__RapidTypeVisitor___add_cast_type(val
* self
, val
* p0
) {
5507 val
* var_mtype
/* var mtype: MType */;
5508 val
* var
/* : RapidTypeAnalysis */;
5509 val
* var2
/* : RapidTypeAnalysis */;
5512 { /* Inline rapid_type_analysis#RapidTypeVisitor#analysis (self) on <self:RapidTypeVisitor> */
5513 var2
= self
->attrs
[COLOR_nit__rapid_type_analysis__RapidTypeVisitor___analysis
].val
; /* _analysis on <self:RapidTypeVisitor> */
5514 if (unlikely(var2
== NULL
)) {
5515 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _analysis");
5516 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 447);
5524 nit___nit__RapidTypeAnalysis___add_cast(var
, var_mtype
); /* Direct call rapid_type_analysis#RapidTypeAnalysis#add_cast on <var:RapidTypeAnalysis>*/
5528 /* method rapid_type_analysis#RapidTypeVisitor#add_callsite for (self: RapidTypeVisitor, nullable CallSite) */
5529 void nit___nit__RapidTypeVisitor___add_callsite(val
* self
, val
* p0
) {
5530 val
* var_callsite
/* var callsite: nullable CallSite */;
5531 short int var
/* : Bool */;
5532 short int var1
/* : Bool */;
5533 val
* var_other
/* var other: nullable Object */;
5534 short int var3
/* : Bool */;
5535 short int var4
/* : Bool */;
5536 val
* var5
/* : MMethodDef */;
5537 val
* var7
/* : MMethodDef */;
5538 val
* var8
/* : Array[MProperty] */;
5539 val
* var10
/* : Array[MProperty] */;
5540 val
* var_
/* var : Array[MProperty] */;
5541 val
* var11
/* : ArrayIterator[nullable Object] */;
5542 val
* var_12
/* var : ArrayIterator[MProperty] */;
5543 short int var13
/* : Bool */;
5544 val
* var14
/* : nullable Object */;
5545 val
* var_m
/* var m: MProperty */;
5546 short int var15
/* : Bool */;
5549 val
* var16
/* : RapidTypeAnalysis */;
5550 val
* var18
/* : RapidTypeAnalysis */;
5551 val
* var19
/* : MType */;
5552 val
* var21
/* : MType */;
5553 val
* var22
/* : RapidTypeAnalysis */;
5554 val
* var24
/* : RapidTypeAnalysis */;
5555 val
* var25
/* : MType */;
5556 val
* var27
/* : MType */;
5557 val
* var28
/* : MMethod */;
5558 val
* var30
/* : MMethod */;
5559 val
* var31
/* : RapidTypeAnalysis */;
5560 val
* var33
/* : RapidTypeAnalysis */;
5561 val
* var34
/* : HashSet[CallSite] */;
5562 val
* var36
/* : HashSet[CallSite] */;
5564 if (var_callsite
== NULL
) {
5565 var
= 0; /* is null */
5567 var
= 1; /* arg is null and recv is not */
5570 { /* Inline kernel#Object#!= (var_callsite,((val*)NULL)) on <var_callsite:nullable CallSite> */
5571 var_other
= ((val
*)NULL
);
5573 var3
= ((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)>*/
5584 { /* Inline typing#CallSite#mpropdef (var_callsite) on <var_callsite:nullable CallSite(CallSite)> */
5585 var7
= var_callsite
->attrs
[COLOR_nit__typing__CallSite___mpropdef
].val
; /* _mpropdef on <var_callsite:nullable CallSite(CallSite)> */
5586 if (unlikely(var7
== NULL
)) {
5587 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mpropdef");
5588 PRINT_ERROR(" (%s:%d)\n", FILE_nit__typing
, 627);
5596 { /* Inline model#MMethodDef#initializers (var5) on <var5:MMethodDef> */
5597 var10
= var5
->attrs
[COLOR_nit__model__MMethodDef___initializers
].val
; /* _initializers on <var5:MMethodDef> */
5598 if (unlikely(var10
== NULL
)) {
5599 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _initializers");
5600 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 2345);
5609 var11
= standard___standard__AbstractArrayRead___standard__abstract_collection__Collection__iterator(var_
);
5614 var13
= standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__is_ok(var_12
);
5618 var14
= standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__item(var_12
);
5621 /* <var_m:MProperty> isa MMethod */
5622 cltype
= type_nit__MMethod
.color
;
5623 idtype
= type_nit__MMethod
.id
;
5624 if(cltype
>= var_m
->type
->table_size
) {
5627 var15
= var_m
->type
->type_table
[cltype
] == idtype
;
5631 { /* Inline rapid_type_analysis#RapidTypeVisitor#analysis (self) on <self:RapidTypeVisitor> */
5632 var18
= self
->attrs
[COLOR_nit__rapid_type_analysis__RapidTypeVisitor___analysis
].val
; /* _analysis on <self:RapidTypeVisitor> */
5633 if (unlikely(var18
== NULL
)) {
5634 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _analysis");
5635 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 447);
5639 RET_LABEL17
:(void)0;
5643 { /* Inline typing#CallSite#recv (var_callsite) on <var_callsite:nullable CallSite(CallSite)> */
5644 var21
= var_callsite
->attrs
[COLOR_nit__typing__CallSite___recv
].val
; /* _recv on <var_callsite:nullable CallSite(CallSite)> */
5645 if (unlikely(var21
== NULL
)) {
5646 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _recv");
5647 PRINT_ERROR(" (%s:%d)\n", FILE_nit__typing
, 610);
5651 RET_LABEL20
:(void)0;
5655 nit___nit__RapidTypeAnalysis___add_send(var16
, var19
, var_m
); /* Direct call rapid_type_analysis#RapidTypeAnalysis#add_send on <var16:RapidTypeAnalysis>*/
5660 standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__next(var_12
); /* Direct call array#ArrayIterator#next on <var_12:ArrayIterator[MProperty]>*/
5666 BREAK_label
: (void)0;
5668 standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__finish(var_12
); /* Direct call array#ArrayIterator#finish on <var_12:ArrayIterator[MProperty]>*/
5671 { /* Inline rapid_type_analysis#RapidTypeVisitor#analysis (self) on <self:RapidTypeVisitor> */
5672 var24
= self
->attrs
[COLOR_nit__rapid_type_analysis__RapidTypeVisitor___analysis
].val
; /* _analysis on <self:RapidTypeVisitor> */
5673 if (unlikely(var24
== NULL
)) {
5674 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _analysis");
5675 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 447);
5679 RET_LABEL23
:(void)0;
5683 { /* Inline typing#CallSite#recv (var_callsite) on <var_callsite:nullable CallSite(CallSite)> */
5684 var27
= var_callsite
->attrs
[COLOR_nit__typing__CallSite___recv
].val
; /* _recv on <var_callsite:nullable CallSite(CallSite)> */
5685 if (unlikely(var27
== NULL
)) {
5686 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _recv");
5687 PRINT_ERROR(" (%s:%d)\n", FILE_nit__typing
, 610);
5691 RET_LABEL26
:(void)0;
5695 { /* Inline typing#CallSite#mproperty (var_callsite) on <var_callsite:nullable CallSite(CallSite)> */
5696 var30
= var_callsite
->attrs
[COLOR_nit__typing__CallSite___mproperty
].val
; /* _mproperty on <var_callsite:nullable CallSite(CallSite)> */
5697 if (unlikely(var30
== NULL
)) {
5698 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty");
5699 PRINT_ERROR(" (%s:%d)\n", FILE_nit__typing
, 624);
5703 RET_LABEL29
:(void)0;
5707 nit___nit__RapidTypeAnalysis___add_send(var22
, var25
, var28
); /* Direct call rapid_type_analysis#RapidTypeAnalysis#add_send on <var22:RapidTypeAnalysis>*/
5710 { /* Inline rapid_type_analysis#RapidTypeVisitor#analysis (self) on <self:RapidTypeVisitor> */
5711 var33
= self
->attrs
[COLOR_nit__rapid_type_analysis__RapidTypeVisitor___analysis
].val
; /* _analysis on <self:RapidTypeVisitor> */
5712 if (unlikely(var33
== NULL
)) {
5713 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _analysis");
5714 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 447);
5718 RET_LABEL32
:(void)0;
5722 { /* Inline rapid_type_analysis#RapidTypeAnalysis#live_callsites (var31) on <var31:RapidTypeAnalysis> */
5723 var36
= var31
->attrs
[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___live_callsites
].val
; /* _live_callsites on <var31:RapidTypeAnalysis> */
5724 if (unlikely(var36
== NULL
)) {
5725 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_callsites");
5726 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 85);
5730 RET_LABEL35
:(void)0;
5734 standard___standard__HashSet___standard__abstract_collection__SimpleCollection__add(var34
, var_callsite
); /* Direct call hash_collection#HashSet#add on <var34:HashSet[CallSite]>*/
5740 /* method rapid_type_analysis#ANode#accept_rapid_type_visitor for (self: ANode, RapidTypeVisitor) */
5741 void nit__rapid_type_analysis___ANode___accept_rapid_type_visitor(val
* self
, val
* p0
) {
5742 val
* var_v
/* var v: RapidTypeVisitor */;
5746 /* method rapid_type_analysis#AIntExpr#accept_rapid_type_visitor for (self: AIntExpr, RapidTypeVisitor) */
5747 void nit__rapid_type_analysis___AIntExpr___ANode__accept_rapid_type_visitor(val
* self
, val
* p0
) {
5748 val
* var_v
/* var v: RapidTypeVisitor */;
5749 val
* var
/* : nullable MType */;
5750 val
* var2
/* : nullable MType */;
5751 short int var3
/* : Bool */;
5754 const char* var_class_name
;
5757 { /* Inline typing#AExpr#mtype (self) on <self:AIntExpr> */
5758 var2
= self
->attrs
[COLOR_nit__typing__AExpr___mtype
].val
; /* _mtype on <self:AIntExpr> */
5763 /* <var:nullable MType> isa MClassType */
5764 cltype
= type_nit__MClassType
.color
;
5765 idtype
= type_nit__MClassType
.id
;
5769 if(cltype
>= var
->type
->table_size
) {
5772 var3
= var
->type
->type_table
[cltype
] == idtype
;
5775 if (unlikely(!var3
)) {
5776 var_class_name
= var
== NULL ?
"null" : var
->type
->name
;
5777 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "MClassType", var_class_name
);
5778 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 525);
5782 nit___nit__RapidTypeVisitor___add_type(var_v
, var
); /* Direct call rapid_type_analysis#RapidTypeVisitor#add_type on <var_v:RapidTypeVisitor>*/
5786 /* method rapid_type_analysis#AByteExpr#accept_rapid_type_visitor for (self: AByteExpr, RapidTypeVisitor) */
5787 void nit__rapid_type_analysis___AByteExpr___ANode__accept_rapid_type_visitor(val
* self
, val
* p0
) {
5788 val
* var_v
/* var v: RapidTypeVisitor */;
5789 val
* var
/* : nullable MType */;
5790 val
* var2
/* : nullable MType */;
5791 short int var3
/* : Bool */;
5794 const char* var_class_name
;
5797 { /* Inline typing#AExpr#mtype (self) on <self:AByteExpr> */
5798 var2
= self
->attrs
[COLOR_nit__typing__AExpr___mtype
].val
; /* _mtype on <self:AByteExpr> */
5803 /* <var:nullable MType> isa MClassType */
5804 cltype
= type_nit__MClassType
.color
;
5805 idtype
= type_nit__MClassType
.id
;
5809 if(cltype
>= var
->type
->table_size
) {
5812 var3
= var
->type
->type_table
[cltype
] == idtype
;
5815 if (unlikely(!var3
)) {
5816 var_class_name
= var
== NULL ?
"null" : var
->type
->name
;
5817 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "MClassType", var_class_name
);
5818 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 532);
5822 nit___nit__RapidTypeVisitor___add_type(var_v
, var
); /* Direct call rapid_type_analysis#RapidTypeVisitor#add_type on <var_v:RapidTypeVisitor>*/
5826 /* method rapid_type_analysis#AFloatExpr#accept_rapid_type_visitor for (self: AFloatExpr, RapidTypeVisitor) */
5827 void nit__rapid_type_analysis___AFloatExpr___ANode__accept_rapid_type_visitor(val
* self
, val
* p0
) {
5828 val
* var_v
/* var v: RapidTypeVisitor */;
5829 val
* var
/* : nullable MType */;
5830 val
* var2
/* : nullable MType */;
5831 short int var3
/* : Bool */;
5834 const char* var_class_name
;
5837 { /* Inline typing#AExpr#mtype (self) on <self:AFloatExpr> */
5838 var2
= self
->attrs
[COLOR_nit__typing__AExpr___mtype
].val
; /* _mtype on <self:AFloatExpr> */
5843 /* <var:nullable MType> isa MClassType */
5844 cltype
= type_nit__MClassType
.color
;
5845 idtype
= type_nit__MClassType
.id
;
5849 if(cltype
>= var
->type
->table_size
) {
5852 var3
= var
->type
->type_table
[cltype
] == idtype
;
5855 if (unlikely(!var3
)) {
5856 var_class_name
= var
== NULL ?
"null" : var
->type
->name
;
5857 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "MClassType", var_class_name
);
5858 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 539);
5862 nit___nit__RapidTypeVisitor___add_type(var_v
, var
); /* Direct call rapid_type_analysis#RapidTypeVisitor#add_type on <var_v:RapidTypeVisitor>*/
5866 /* method rapid_type_analysis#ACharExpr#accept_rapid_type_visitor for (self: ACharExpr, RapidTypeVisitor) */
5867 void nit__rapid_type_analysis___ACharExpr___ANode__accept_rapid_type_visitor(val
* self
, val
* p0
) {
5868 val
* var_v
/* var v: RapidTypeVisitor */;
5869 val
* var
/* : nullable MType */;
5870 val
* var2
/* : nullable MType */;
5871 short int var3
/* : Bool */;
5874 const char* var_class_name
;
5877 { /* Inline typing#AExpr#mtype (self) on <self:ACharExpr> */
5878 var2
= self
->attrs
[COLOR_nit__typing__AExpr___mtype
].val
; /* _mtype on <self:ACharExpr> */
5883 /* <var:nullable MType> isa MClassType */
5884 cltype
= type_nit__MClassType
.color
;
5885 idtype
= type_nit__MClassType
.id
;
5889 if(cltype
>= var
->type
->table_size
) {
5892 var3
= var
->type
->type_table
[cltype
] == idtype
;
5895 if (unlikely(!var3
)) {
5896 var_class_name
= var
== NULL ?
"null" : var
->type
->name
;
5897 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "MClassType", var_class_name
);
5898 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 546);
5902 nit___nit__RapidTypeVisitor___add_type(var_v
, var
); /* Direct call rapid_type_analysis#RapidTypeVisitor#add_type on <var_v:RapidTypeVisitor>*/
5906 /* method rapid_type_analysis#AArrayExpr#accept_rapid_type_visitor for (self: AArrayExpr, RapidTypeVisitor) */
5907 void nit__rapid_type_analysis___AArrayExpr___ANode__accept_rapid_type_visitor(val
* self
, val
* p0
) {
5908 val
* var_v
/* var v: RapidTypeVisitor */;
5909 val
* var
/* : nullable MType */;
5910 val
* var2
/* : nullable MType */;
5911 short int var3
/* : Bool */;
5914 const char* var_class_name
;
5915 val
* var_mtype
/* var mtype: MClassType */;
5916 val
* var4
/* : RapidTypeAnalysis */;
5917 val
* var6
/* : RapidTypeAnalysis */;
5918 val
* var7
/* : MModule */;
5919 val
* var9
/* : MModule */;
5920 val
* var10
/* : Array[MType] */;
5921 val
* var11
/* : nullable Object */;
5922 val
* var12
/* : MClassType */;
5923 val
* var_native
/* var native: MClassType */;
5924 val
* var13
/* : nullable MClassType */;
5925 static val
* varonce
;
5926 val
* var14
/* : String */;
5927 char* var15
/* : NativeString */;
5928 val
* var16
/* : FlatString */;
5929 val
* var17
/* : MMethod */;
5930 val
* var_prop
/* var prop: MMethod */;
5931 val
* var18
/* : nullable CallSite */;
5932 val
* var20
/* : nullable CallSite */;
5933 val
* var21
/* : nullable CallSite */;
5934 val
* var23
/* : nullable CallSite */;
5937 { /* Inline typing#AExpr#mtype (self) on <self:AArrayExpr> */
5938 var2
= self
->attrs
[COLOR_nit__typing__AExpr___mtype
].val
; /* _mtype on <self:AArrayExpr> */
5943 /* <var:nullable MType> isa MClassType */
5944 cltype
= type_nit__MClassType
.color
;
5945 idtype
= type_nit__MClassType
.id
;
5949 if(cltype
>= var
->type
->table_size
) {
5952 var3
= var
->type
->type_table
[cltype
] == idtype
;
5955 if (unlikely(!var3
)) {
5956 var_class_name
= var
== NULL ?
"null" : var
->type
->name
;
5957 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "MClassType", var_class_name
);
5958 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 553);
5963 nit___nit__RapidTypeVisitor___add_type(var_v
, var_mtype
); /* Direct call rapid_type_analysis#RapidTypeVisitor#add_type on <var_v:RapidTypeVisitor>*/
5966 { /* Inline rapid_type_analysis#RapidTypeVisitor#analysis (var_v) on <var_v:RapidTypeVisitor> */
5967 var6
= var_v
->attrs
[COLOR_nit__rapid_type_analysis__RapidTypeVisitor___analysis
].val
; /* _analysis on <var_v:RapidTypeVisitor> */
5968 if (unlikely(var6
== NULL
)) {
5969 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _analysis");
5970 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 447);
5978 { /* Inline rapid_type_analysis#RapidTypeAnalysis#mainmodule (var4) on <var4:RapidTypeAnalysis> */
5979 var9
= var4
->attrs
[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___mainmodule
].val
; /* _mainmodule on <var4:RapidTypeAnalysis> */
5980 if (unlikely(var9
== NULL
)) {
5981 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule");
5982 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 56);
5990 var10
= ((val
*(*)(val
* self
))(var_mtype
->class->vft
[COLOR_nit__model__MClassType__arguments
]))(var_mtype
); /* arguments on <var_mtype:MClassType>*/
5993 var11
= standard___standard__SequenceRead___Collection__first(var10
);
5996 var12
= nit__model___MModule___native_array_type(var7
, var11
);
6000 nit___nit__RapidTypeVisitor___add_type(var_v
, var_native
); /* Direct call rapid_type_analysis#RapidTypeVisitor#add_type on <var_v:RapidTypeVisitor>*/
6003 var13
= nit___nit__RapidTypeVisitor___cleanup_type(var_v
, var_mtype
);
6005 if (unlikely(var13
== NULL
)) {
6006 PRINT_ERROR("Runtime error: %s", "Cast failed");
6007 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 557);
6011 if (likely(varonce
!=NULL
)) {
6014 var15
= "with_native";
6015 var16
= standard___standard__NativeString___to_s_with_length(var15
, 11l);
6020 var17
= nit___nit__RapidTypeVisitor___get_method(var_v
, var_mtype
, var14
);
6024 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>*/
6027 { /* Inline typing#AArrayExpr#with_capacity_callsite (self) on <self:AArrayExpr> */
6028 var20
= self
->attrs
[COLOR_nit__typing__AArrayExpr___with_capacity_callsite
].val
; /* _with_capacity_callsite on <self:AArrayExpr> */
6030 RET_LABEL19
:(void)0;
6034 nit___nit__RapidTypeVisitor___add_callsite(var_v
, var18
); /* Direct call rapid_type_analysis#RapidTypeVisitor#add_callsite on <var_v:RapidTypeVisitor>*/
6037 { /* Inline typing#AArrayExpr#push_callsite (self) on <self:AArrayExpr> */
6038 var23
= self
->attrs
[COLOR_nit__typing__AArrayExpr___push_callsite
].val
; /* _push_callsite on <self:AArrayExpr> */
6040 RET_LABEL22
:(void)0;
6044 nit___nit__RapidTypeVisitor___add_callsite(var_v
, var21
); /* Direct call rapid_type_analysis#RapidTypeVisitor#add_callsite on <var_v:RapidTypeVisitor>*/
6048 /* method rapid_type_analysis#AStringFormExpr#accept_rapid_type_visitor for (self: AStringFormExpr, RapidTypeVisitor) */
6049 void nit__rapid_type_analysis___AStringFormExpr___ANode__accept_rapid_type_visitor(val
* self
, val
* p0
) {
6050 val
* var_v
/* var v: RapidTypeVisitor */;
6051 val
* var
/* : RapidTypeAnalysis */;
6052 val
* var2
/* : RapidTypeAnalysis */;
6053 val
* var3
/* : MModule */;
6054 val
* var5
/* : MModule */;
6055 val
* var6
/* : MClassType */;
6056 val
* var_native
/* var native: MClassType */;
6057 static val
* varonce
;
6058 val
* var7
/* : String */;
6059 char* var8
/* : NativeString */;
6060 val
* var9
/* : FlatString */;
6061 val
* var10
/* : MMethod */;
6062 val
* var_prop
/* var prop: MMethod */;
6065 { /* Inline rapid_type_analysis#RapidTypeVisitor#analysis (var_v) on <var_v:RapidTypeVisitor> */
6066 var2
= var_v
->attrs
[COLOR_nit__rapid_type_analysis__RapidTypeVisitor___analysis
].val
; /* _analysis on <var_v:RapidTypeVisitor> */
6067 if (unlikely(var2
== NULL
)) {
6068 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _analysis");
6069 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 447);
6077 { /* Inline rapid_type_analysis#RapidTypeAnalysis#mainmodule (var) on <var:RapidTypeAnalysis> */
6078 var5
= var
->attrs
[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___mainmodule
].val
; /* _mainmodule on <var:RapidTypeAnalysis> */
6079 if (unlikely(var5
== NULL
)) {
6080 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule");
6081 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 56);
6089 var6
= nit__model___MModule___native_string_type(var3
);
6093 nit___nit__RapidTypeVisitor___add_type(var_v
, var_native
); /* Direct call rapid_type_analysis#RapidTypeVisitor#add_type on <var_v:RapidTypeVisitor>*/
6095 if (likely(varonce
!=NULL
)) {
6098 var8
= "to_s_with_length";
6099 var9
= standard___standard__NativeString___to_s_with_length(var8
, 16l);
6104 var10
= nit___nit__RapidTypeVisitor___get_method(var_v
, var_native
, var7
);
6108 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>*/
6112 /* method rapid_type_analysis#ASuperstringExpr#accept_rapid_type_visitor for (self: ASuperstringExpr, RapidTypeVisitor) */
6113 void nit__rapid_type_analysis___ASuperstringExpr___ANode__accept_rapid_type_visitor(val
* self
, val
* p0
) {
6114 val
* var_v
/* var v: RapidTypeVisitor */;
6115 val
* var
/* : RapidTypeAnalysis */;
6116 val
* var2
/* : RapidTypeAnalysis */;
6117 val
* var3
/* : MModule */;
6118 val
* var5
/* : MModule */;
6119 val
* var_mmodule
/* var mmodule: MModule */;
6120 val
* var6
/* : MClassType */;
6121 val
* var_object_type
/* var object_type: MClassType */;
6122 val
* var7
/* : MClassType */;
6123 val
* var_arraytype
/* var arraytype: MClassType */;
6124 val
* var8
/* : MClassType */;
6125 val
* var_nattype
/* var nattype: MClassType */;
6126 static val
* varonce
;
6127 val
* var9
/* : String */;
6128 char* var10
/* : NativeString */;
6129 val
* var11
/* : FlatString */;
6130 val
* var12
/* : MMethod */;
6131 val
* var_prop
/* var prop: MMethod */;
6132 static val
* varonce13
;
6133 val
* var14
/* : String */;
6134 char* var15
/* : NativeString */;
6135 val
* var16
/* : FlatString */;
6136 val
* var17
/* : MMethod */;
6137 val
* var_prop2
/* var prop2: MMethod */;
6138 static val
* varonce18
;
6139 val
* var19
/* : String */;
6140 char* var20
/* : NativeString */;
6141 val
* var21
/* : FlatString */;
6142 val
* var22
/* : MMethod */;
6145 { /* Inline rapid_type_analysis#RapidTypeVisitor#analysis (var_v) on <var_v:RapidTypeVisitor> */
6146 var2
= var_v
->attrs
[COLOR_nit__rapid_type_analysis__RapidTypeVisitor___analysis
].val
; /* _analysis on <var_v:RapidTypeVisitor> */
6147 if (unlikely(var2
== NULL
)) {
6148 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _analysis");
6149 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 447);
6157 { /* Inline rapid_type_analysis#RapidTypeAnalysis#mainmodule (var) on <var:RapidTypeAnalysis> */
6158 var5
= var
->attrs
[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___mainmodule
].val
; /* _mainmodule on <var:RapidTypeAnalysis> */
6159 if (unlikely(var5
== NULL
)) {
6160 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule");
6161 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 56);
6170 var6
= nit__model___MModule___string_type(var_mmodule
);
6172 var_object_type
= var6
;
6174 var7
= nit__model___MModule___array_type(var_mmodule
, var_object_type
);
6176 var_arraytype
= var7
;
6178 nit___nit__RapidTypeVisitor___add_type(var_v
, var_arraytype
); /* Direct call rapid_type_analysis#RapidTypeVisitor#add_type on <var_v:RapidTypeVisitor>*/
6181 var8
= nit__model___MModule___native_array_type(var_mmodule
, var_object_type
);
6185 nit___nit__RapidTypeVisitor___add_type(var_v
, var_nattype
); /* Direct call rapid_type_analysis#RapidTypeVisitor#add_type on <var_v:RapidTypeVisitor>*/
6187 if (likely(varonce
!=NULL
)) {
6191 var11
= standard___standard__NativeString___to_s_with_length(var10
, 4l);
6196 var12
= nit___nit__RapidTypeVisitor___get_method(var_v
, var_arraytype
, var9
);
6200 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>*/
6202 if (likely(varonce13
!=NULL
)) {
6205 var15
= "with_native";
6206 var16
= standard___standard__NativeString___to_s_with_length(var15
, 11l);
6211 var17
= nit___nit__RapidTypeVisitor___get_method(var_v
, var_arraytype
, var14
);
6215 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>*/
6217 if (likely(varonce18
!=NULL
)) {
6220 var20
= "native_to_s";
6221 var21
= standard___standard__NativeString___to_s_with_length(var20
, 11l);
6226 var22
= nit___nit__RapidTypeVisitor___get_method(var_v
, var_nattype
, var19
);
6229 nit___nit__RapidTypeVisitor___add_monomorphic_send(var_v
, var_nattype
, var22
); /* Direct call rapid_type_analysis#RapidTypeVisitor#add_monomorphic_send on <var_v:RapidTypeVisitor>*/
6233 /* method rapid_type_analysis#ACrangeExpr#accept_rapid_type_visitor for (self: ACrangeExpr, RapidTypeVisitor) */
6234 void nit__rapid_type_analysis___ACrangeExpr___ANode__accept_rapid_type_visitor(val
* self
, val
* p0
) {
6235 val
* var_v
/* var v: RapidTypeVisitor */;
6236 val
* var
/* : nullable MType */;
6237 val
* var2
/* : nullable MType */;
6238 short int var3
/* : Bool */;
6241 const char* var_class_name
;
6242 val
* var_mtype
/* var mtype: MClassType */;
6243 val
* var4
/* : nullable CallSite */;
6244 val
* var6
/* : nullable CallSite */;
6247 { /* Inline typing#AExpr#mtype (self) on <self:ACrangeExpr> */
6248 var2
= self
->attrs
[COLOR_nit__typing__AExpr___mtype
].val
; /* _mtype on <self:ACrangeExpr> */
6253 /* <var:nullable MType> isa MClassType */
6254 cltype
= type_nit__MClassType
.color
;
6255 idtype
= type_nit__MClassType
.id
;
6259 if(cltype
>= var
->type
->table_size
) {
6262 var3
= var
->type
->type_table
[cltype
] == idtype
;
6265 if (unlikely(!var3
)) {
6266 var_class_name
= var
== NULL ?
"null" : var
->type
->name
;
6267 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "MClassType", var_class_name
);
6268 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 595);
6273 nit___nit__RapidTypeVisitor___add_type(var_v
, var_mtype
); /* Direct call rapid_type_analysis#RapidTypeVisitor#add_type on <var_v:RapidTypeVisitor>*/
6276 { /* Inline typing#ARangeExpr#init_callsite (self) on <self:ACrangeExpr> */
6277 var6
= self
->attrs
[COLOR_nit__typing__ARangeExpr___init_callsite
].val
; /* _init_callsite on <self:ACrangeExpr> */
6283 nit___nit__RapidTypeVisitor___add_callsite(var_v
, var4
); /* Direct call rapid_type_analysis#RapidTypeVisitor#add_callsite on <var_v:RapidTypeVisitor>*/
6287 /* method rapid_type_analysis#AOrangeExpr#accept_rapid_type_visitor for (self: AOrangeExpr, RapidTypeVisitor) */
6288 void nit__rapid_type_analysis___AOrangeExpr___ANode__accept_rapid_type_visitor(val
* self
, val
* p0
) {
6289 val
* var_v
/* var v: RapidTypeVisitor */;
6290 val
* var
/* : nullable MType */;
6291 val
* var2
/* : nullable MType */;
6292 short int var3
/* : Bool */;
6295 const char* var_class_name
;
6296 val
* var_mtype
/* var mtype: MClassType */;
6297 val
* var4
/* : nullable CallSite */;
6298 val
* var6
/* : nullable CallSite */;
6301 { /* Inline typing#AExpr#mtype (self) on <self:AOrangeExpr> */
6302 var2
= self
->attrs
[COLOR_nit__typing__AExpr___mtype
].val
; /* _mtype on <self:AOrangeExpr> */
6307 /* <var:nullable MType> isa MClassType */
6308 cltype
= type_nit__MClassType
.color
;
6309 idtype
= type_nit__MClassType
.id
;
6313 if(cltype
>= var
->type
->table_size
) {
6316 var3
= var
->type
->type_table
[cltype
] == idtype
;
6319 if (unlikely(!var3
)) {
6320 var_class_name
= var
== NULL ?
"null" : var
->type
->name
;
6321 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "MClassType", var_class_name
);
6322 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 604);
6327 nit___nit__RapidTypeVisitor___add_type(var_v
, var_mtype
); /* Direct call rapid_type_analysis#RapidTypeVisitor#add_type on <var_v:RapidTypeVisitor>*/
6330 { /* Inline typing#ARangeExpr#init_callsite (self) on <self:AOrangeExpr> */
6331 var6
= self
->attrs
[COLOR_nit__typing__ARangeExpr___init_callsite
].val
; /* _init_callsite on <self:AOrangeExpr> */
6337 nit___nit__RapidTypeVisitor___add_callsite(var_v
, var4
); /* Direct call rapid_type_analysis#RapidTypeVisitor#add_callsite on <var_v:RapidTypeVisitor>*/
6341 /* method rapid_type_analysis#ATrueExpr#accept_rapid_type_visitor for (self: ATrueExpr, RapidTypeVisitor) */
6342 void nit__rapid_type_analysis___ATrueExpr___ANode__accept_rapid_type_visitor(val
* self
, val
* p0
) {
6343 val
* var_v
/* var v: RapidTypeVisitor */;
6344 val
* var
/* : nullable MType */;
6345 val
* var2
/* : nullable MType */;
6346 short int var3
/* : Bool */;
6349 const char* var_class_name
;
6352 { /* Inline typing#AExpr#mtype (self) on <self:ATrueExpr> */
6353 var2
= self
->attrs
[COLOR_nit__typing__AExpr___mtype
].val
; /* _mtype on <self:ATrueExpr> */
6358 /* <var:nullable MType> isa MClassType */
6359 cltype
= type_nit__MClassType
.color
;
6360 idtype
= type_nit__MClassType
.id
;
6364 if(cltype
>= var
->type
->table_size
) {
6367 var3
= var
->type
->type_table
[cltype
] == idtype
;
6370 if (unlikely(!var3
)) {
6371 var_class_name
= var
== NULL ?
"null" : var
->type
->name
;
6372 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "MClassType", var_class_name
);
6373 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 613);
6377 nit___nit__RapidTypeVisitor___add_type(var_v
, var
); /* Direct call rapid_type_analysis#RapidTypeVisitor#add_type on <var_v:RapidTypeVisitor>*/
6381 /* method rapid_type_analysis#AFalseExpr#accept_rapid_type_visitor for (self: AFalseExpr, RapidTypeVisitor) */
6382 void nit__rapid_type_analysis___AFalseExpr___ANode__accept_rapid_type_visitor(val
* self
, val
* p0
) {
6383 val
* var_v
/* var v: RapidTypeVisitor */;
6384 val
* var
/* : nullable MType */;
6385 val
* var2
/* : nullable MType */;
6386 short int var3
/* : Bool */;
6389 const char* var_class_name
;
6392 { /* Inline typing#AExpr#mtype (self) on <self:AFalseExpr> */
6393 var2
= self
->attrs
[COLOR_nit__typing__AExpr___mtype
].val
; /* _mtype on <self:AFalseExpr> */
6398 /* <var:nullable MType> isa MClassType */
6399 cltype
= type_nit__MClassType
.color
;
6400 idtype
= type_nit__MClassType
.id
;
6404 if(cltype
>= var
->type
->table_size
) {
6407 var3
= var
->type
->type_table
[cltype
] == idtype
;
6410 if (unlikely(!var3
)) {
6411 var_class_name
= var
== NULL ?
"null" : var
->type
->name
;
6412 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "MClassType", var_class_name
);
6413 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 620);
6417 nit___nit__RapidTypeVisitor___add_type(var_v
, var
); /* Direct call rapid_type_analysis#RapidTypeVisitor#add_type on <var_v:RapidTypeVisitor>*/
6421 /* method rapid_type_analysis#AIsaExpr#accept_rapid_type_visitor for (self: AIsaExpr, RapidTypeVisitor) */
6422 void nit__rapid_type_analysis___AIsaExpr___ANode__accept_rapid_type_visitor(val
* self
, val
* p0
) {
6423 val
* var_v
/* var v: RapidTypeVisitor */;
6424 val
* var
/* : nullable MType */;
6425 val
* var2
/* : nullable MType */;
6428 { /* Inline typing#AIsaExpr#cast_type (self) on <self:AIsaExpr> */
6429 var2
= self
->attrs
[COLOR_nit__typing__AIsaExpr___cast_type
].val
; /* _cast_type on <self:AIsaExpr> */
6434 if (unlikely(var
== NULL
)) {
6435 PRINT_ERROR("Runtime error: %s", "Cast failed");
6436 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 627);
6440 nit___nit__RapidTypeVisitor___add_cast_type(var_v
, var
); /* Direct call rapid_type_analysis#RapidTypeVisitor#add_cast_type on <var_v:RapidTypeVisitor>*/
6444 /* method rapid_type_analysis#AAsCastExpr#accept_rapid_type_visitor for (self: AAsCastExpr, RapidTypeVisitor) */
6445 void nit__rapid_type_analysis___AAsCastExpr___ANode__accept_rapid_type_visitor(val
* self
, val
* p0
) {
6446 val
* var_v
/* var v: RapidTypeVisitor */;
6447 val
* var
/* : nullable MType */;
6448 val
* var2
/* : nullable MType */;
6451 { /* Inline typing#AExpr#mtype (self) on <self:AAsCastExpr> */
6452 var2
= self
->attrs
[COLOR_nit__typing__AExpr___mtype
].val
; /* _mtype on <self:AAsCastExpr> */
6457 if (unlikely(var
== NULL
)) {
6458 PRINT_ERROR("Runtime error: %s", "Cast failed");
6459 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 634);
6463 nit___nit__RapidTypeVisitor___add_cast_type(var_v
, var
); /* Direct call rapid_type_analysis#RapidTypeVisitor#add_cast_type on <var_v:RapidTypeVisitor>*/
6467 /* method rapid_type_analysis#ASendExpr#accept_rapid_type_visitor for (self: ASendExpr, RapidTypeVisitor) */
6468 void nit__rapid_type_analysis___ASendExpr___ANode__accept_rapid_type_visitor(val
* self
, val
* p0
) {
6469 val
* var_v
/* var v: RapidTypeVisitor */;
6470 val
* var
/* : nullable CallSite */;
6471 val
* var2
/* : nullable CallSite */;
6474 { /* Inline typing#ASendExpr#callsite (self) on <self:ASendExpr> */
6475 var2
= self
->attrs
[COLOR_nit__typing__ASendExpr___callsite
].val
; /* _callsite on <self:ASendExpr> */
6481 nit___nit__RapidTypeVisitor___add_callsite(var_v
, var
); /* Direct call rapid_type_analysis#RapidTypeVisitor#add_callsite on <var_v:RapidTypeVisitor>*/
6485 /* method rapid_type_analysis#ASendReassignFormExpr#accept_rapid_type_visitor for (self: ASendReassignFormExpr, RapidTypeVisitor) */
6486 void nit__rapid_type_analysis___ASendReassignFormExpr___ANode__accept_rapid_type_visitor(val
* self
, val
* p0
) {
6487 val
* var_v
/* var v: RapidTypeVisitor */;
6488 val
* var
/* : nullable CallSite */;
6489 val
* var2
/* : nullable CallSite */;
6490 val
* var3
/* : nullable CallSite */;
6491 val
* var5
/* : nullable CallSite */;
6492 val
* var6
/* : nullable CallSite */;
6493 val
* var8
/* : nullable CallSite */;
6496 { /* Inline typing#ASendExpr#callsite (self) on <self:ASendReassignFormExpr> */
6497 var2
= self
->attrs
[COLOR_nit__typing__ASendExpr___callsite
].val
; /* _callsite on <self:ASendReassignFormExpr> */
6503 nit___nit__RapidTypeVisitor___add_callsite(var_v
, var
); /* Direct call rapid_type_analysis#RapidTypeVisitor#add_callsite on <var_v:RapidTypeVisitor>*/
6506 { /* Inline typing#AReassignFormExpr#reassign_callsite (self) on <self:ASendReassignFormExpr> */
6507 var5
= self
->attrs
[COLOR_nit__typing__AReassignFormExpr___reassign_callsite
].val
; /* _reassign_callsite on <self:ASendReassignFormExpr> */
6513 nit___nit__RapidTypeVisitor___add_callsite(var_v
, var3
); /* Direct call rapid_type_analysis#RapidTypeVisitor#add_callsite on <var_v:RapidTypeVisitor>*/
6516 { /* Inline typing#ASendReassignFormExpr#write_callsite (self) on <self:ASendReassignFormExpr> */
6517 var8
= self
->attrs
[COLOR_nit__typing__ASendReassignFormExpr___write_callsite
].val
; /* _write_callsite on <self:ASendReassignFormExpr> */
6523 nit___nit__RapidTypeVisitor___add_callsite(var_v
, var6
); /* Direct call rapid_type_analysis#RapidTypeVisitor#add_callsite on <var_v:RapidTypeVisitor>*/
6527 /* method rapid_type_analysis#AVarReassignExpr#accept_rapid_type_visitor for (self: AVarReassignExpr, RapidTypeVisitor) */
6528 void nit__rapid_type_analysis___AVarReassignExpr___ANode__accept_rapid_type_visitor(val
* self
, val
* p0
) {
6529 val
* var_v
/* var v: RapidTypeVisitor */;
6530 val
* var
/* : nullable CallSite */;
6531 val
* var2
/* : nullable CallSite */;
6534 { /* Inline typing#AReassignFormExpr#reassign_callsite (self) on <self:AVarReassignExpr> */
6535 var2
= self
->attrs
[COLOR_nit__typing__AReassignFormExpr___reassign_callsite
].val
; /* _reassign_callsite on <self:AVarReassignExpr> */
6541 nit___nit__RapidTypeVisitor___add_callsite(var_v
, var
); /* Direct call rapid_type_analysis#RapidTypeVisitor#add_callsite on <var_v:RapidTypeVisitor>*/
6545 /* method rapid_type_analysis#AAttrReassignExpr#accept_rapid_type_visitor for (self: AAttrReassignExpr, RapidTypeVisitor) */
6546 void nit__rapid_type_analysis___AAttrReassignExpr___ANode__accept_rapid_type_visitor(val
* self
, val
* p0
) {
6547 val
* var_v
/* var v: RapidTypeVisitor */;
6548 val
* var
/* : nullable CallSite */;
6549 val
* var2
/* : nullable CallSite */;
6552 { /* Inline typing#AReassignFormExpr#reassign_callsite (self) on <self:AAttrReassignExpr> */
6553 var2
= self
->attrs
[COLOR_nit__typing__AReassignFormExpr___reassign_callsite
].val
; /* _reassign_callsite on <self:AAttrReassignExpr> */
6559 nit___nit__RapidTypeVisitor___add_callsite(var_v
, var
); /* Direct call rapid_type_analysis#RapidTypeVisitor#add_callsite on <var_v:RapidTypeVisitor>*/
6563 /* method rapid_type_analysis#ASuperExpr#accept_rapid_type_visitor for (self: ASuperExpr, RapidTypeVisitor) */
6564 void nit__rapid_type_analysis___ASuperExpr___ANode__accept_rapid_type_visitor(val
* self
, val
* p0
) {
6565 val
* var_v
/* var v: RapidTypeVisitor */;
6566 val
* var
/* : nullable CallSite */;
6567 val
* var2
/* : nullable CallSite */;
6568 val
* var_callsite
/* var callsite: nullable CallSite */;
6569 short int var3
/* : Bool */;
6570 short int var4
/* : Bool */;
6571 val
* var_other
/* var other: nullable Object */;
6572 short int var6
/* : Bool */;
6573 short int var7
/* : Bool */;
6574 val
* var8
/* : RapidTypeAnalysis */;
6575 val
* var10
/* : RapidTypeAnalysis */;
6576 val
* var11
/* : MClassType */;
6577 val
* var13
/* : MClassType */;
6578 val
* var14
/* : nullable MMethodDef */;
6579 val
* var16
/* : nullable MMethodDef */;
6582 { /* Inline typing#ASuperExpr#callsite (self) on <self:ASuperExpr> */
6583 var2
= self
->attrs
[COLOR_nit__typing__ASuperExpr___callsite
].val
; /* _callsite on <self:ASuperExpr> */
6589 if (var_callsite
== NULL
) {
6590 var3
= 0; /* is null */
6592 var3
= 1; /* arg is null and recv is not */
6595 { /* Inline kernel#Object#!= (var_callsite,((val*)NULL)) on <var_callsite:nullable CallSite> */
6596 var_other
= ((val
*)NULL
);
6598 var6
= ((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)>*/
6609 nit___nit__RapidTypeVisitor___add_callsite(var_v
, var_callsite
); /* Direct call rapid_type_analysis#RapidTypeVisitor#add_callsite on <var_v:RapidTypeVisitor>*/
6615 { /* Inline rapid_type_analysis#RapidTypeVisitor#analysis (var_v) on <var_v:RapidTypeVisitor> */
6616 var10
= var_v
->attrs
[COLOR_nit__rapid_type_analysis__RapidTypeVisitor___analysis
].val
; /* _analysis on <var_v:RapidTypeVisitor> */
6617 if (unlikely(var10
== NULL
)) {
6618 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _analysis");
6619 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 447);
6627 { /* Inline rapid_type_analysis#RapidTypeVisitor#receiver (var_v) on <var_v:RapidTypeVisitor> */
6628 var13
= var_v
->attrs
[COLOR_nit__rapid_type_analysis__RapidTypeVisitor___receiver
].val
; /* _receiver on <var_v:RapidTypeVisitor> */
6629 if (unlikely(var13
== NULL
)) {
6630 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _receiver");
6631 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 448);
6635 RET_LABEL12
:(void)0;
6639 { /* Inline typing#ASuperExpr#mpropdef (self) on <self:ASuperExpr> */
6640 var16
= self
->attrs
[COLOR_nit__typing__ASuperExpr___mpropdef
].val
; /* _mpropdef on <self:ASuperExpr> */
6642 RET_LABEL15
:(void)0;
6645 if (unlikely(var14
== NULL
)) {
6646 PRINT_ERROR("Runtime error: %s", "Cast failed");
6647 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 678);
6651 nit___nit__RapidTypeAnalysis___add_super_send(var8
, var11
, var14
); /* Direct call rapid_type_analysis#RapidTypeAnalysis#add_super_send on <var8:RapidTypeAnalysis>*/
6655 /* method rapid_type_analysis#AForExpr#accept_rapid_type_visitor for (self: AForExpr, RapidTypeVisitor) */
6656 void nit__rapid_type_analysis___AForExpr___ANode__accept_rapid_type_visitor(val
* self
, val
* p0
) {
6657 val
* var_v
/* var v: RapidTypeVisitor */;
6658 val
* var
/* : nullable CallSite */;
6659 val
* var2
/* : nullable CallSite */;
6660 val
* var3
/* : nullable CallSite */;
6661 val
* var5
/* : nullable CallSite */;
6662 val
* var6
/* : nullable Array[Variable] */;
6663 val
* var8
/* : nullable Array[Variable] */;
6664 long var9
/* : Int */;
6665 long var11
/* : Int */;
6666 short int var12
/* : Bool */;
6667 short int var14
/* : Bool */;
6668 val
* var15
/* : nullable CallSite */;
6669 val
* var17
/* : nullable CallSite */;
6670 val
* var18
/* : nullable Array[Variable] */;
6671 val
* var20
/* : nullable Array[Variable] */;
6672 long var21
/* : Int */;
6673 long var23
/* : Int */;
6674 short int var24
/* : Bool */;
6675 short int var26
/* : Bool */;
6676 val
* var27
/* : nullable CallSite */;
6677 val
* var29
/* : nullable CallSite */;
6678 val
* var30
/* : nullable CallSite */;
6679 val
* var32
/* : nullable CallSite */;
6680 val
* var33
/* : nullable CallSite */;
6681 val
* var35
/* : nullable CallSite */;
6682 val
* var36
/* : nullable CallSite */;
6683 val
* var38
/* : nullable CallSite */;
6684 val
* var_mf
/* var mf: nullable CallSite */;
6685 short int var39
/* : Bool */;
6686 short int var40
/* : Bool */;
6687 val
* var_other
/* var other: nullable Object */;
6688 short int var42
/* : Bool */;
6689 short int var43
/* : Bool */;
6692 { /* Inline typing#AForExpr#method_iterator (self) on <self:AForExpr> */
6693 var2
= self
->attrs
[COLOR_nit__typing__AForExpr___method_iterator
].val
; /* _method_iterator on <self:AForExpr> */
6699 nit___nit__RapidTypeVisitor___add_callsite(var_v
, var
); /* Direct call rapid_type_analysis#RapidTypeVisitor#add_callsite on <var_v:RapidTypeVisitor>*/
6702 { /* Inline typing#AForExpr#method_is_ok (self) on <self:AForExpr> */
6703 var5
= self
->attrs
[COLOR_nit__typing__AForExpr___method_is_ok
].val
; /* _method_is_ok on <self:AForExpr> */
6709 nit___nit__RapidTypeVisitor___add_callsite(var_v
, var3
); /* Direct call rapid_type_analysis#RapidTypeVisitor#add_callsite on <var_v:RapidTypeVisitor>*/
6712 { /* Inline scope#AForExpr#variables (self) on <self:AForExpr> */
6713 var8
= self
->attrs
[COLOR_nit__scope__AForExpr___variables
].val
; /* _variables on <self:AForExpr> */
6719 PRINT_ERROR("Runtime error: %s", "Receiver is null");
6720 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 687);
6723 { /* Inline array#AbstractArrayRead#length (var6) on <var6:nullable Array[Variable]> */
6724 if (unlikely(var6
== NULL
)) {
6725 PRINT_ERROR("Runtime error: %s", "Receiver is null");
6726 PRINT_ERROR(" (%s:%d)\n", FILE_standard__array
, 26);
6729 var11
= var6
->attrs
[COLOR_standard__array__AbstractArrayRead___length
].l
; /* _length on <var6:nullable Array[Variable]> */
6731 RET_LABEL10
:(void)0;
6735 { /* Inline kernel#Int#== (var9,1l) on <var9:Int> */
6739 RET_LABEL13
:(void)0;
6744 { /* Inline typing#AForExpr#method_item (self) on <self:AForExpr> */
6745 var17
= self
->attrs
[COLOR_nit__typing__AForExpr___method_item
].val
; /* _method_item on <self:AForExpr> */
6747 RET_LABEL16
:(void)0;
6751 nit___nit__RapidTypeVisitor___add_callsite(var_v
, var15
); /* Direct call rapid_type_analysis#RapidTypeVisitor#add_callsite on <var_v:RapidTypeVisitor>*/
6755 { /* Inline scope#AForExpr#variables (self) on <self:AForExpr> */
6756 var20
= self
->attrs
[COLOR_nit__scope__AForExpr___variables
].val
; /* _variables on <self:AForExpr> */
6758 RET_LABEL19
:(void)0;
6761 if (var18
== NULL
) {
6762 PRINT_ERROR("Runtime error: %s", "Receiver is null");
6763 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 689);
6766 { /* Inline array#AbstractArrayRead#length (var18) on <var18:nullable Array[Variable]> */
6767 if (unlikely(var18
== NULL
)) {
6768 PRINT_ERROR("Runtime error: %s", "Receiver is null");
6769 PRINT_ERROR(" (%s:%d)\n", FILE_standard__array
, 26);
6772 var23
= var18
->attrs
[COLOR_standard__array__AbstractArrayRead___length
].l
; /* _length on <var18:nullable Array[Variable]> */
6774 RET_LABEL22
:(void)0;
6778 { /* Inline kernel#Int#== (var21,2l) on <var21:Int> */
6779 var26
= var21
== 2l;
6782 RET_LABEL25
:(void)0;
6787 { /* Inline typing#AForExpr#method_key (self) on <self:AForExpr> */
6788 var29
= self
->attrs
[COLOR_nit__typing__AForExpr___method_key
].val
; /* _method_key on <self:AForExpr> */
6790 RET_LABEL28
:(void)0;
6794 nit___nit__RapidTypeVisitor___add_callsite(var_v
, var27
); /* Direct call rapid_type_analysis#RapidTypeVisitor#add_callsite on <var_v:RapidTypeVisitor>*/
6797 { /* Inline typing#AForExpr#method_item (self) on <self:AForExpr> */
6798 var32
= self
->attrs
[COLOR_nit__typing__AForExpr___method_item
].val
; /* _method_item on <self:AForExpr> */
6800 RET_LABEL31
:(void)0;
6804 nit___nit__RapidTypeVisitor___add_callsite(var_v
, var30
); /* Direct call rapid_type_analysis#RapidTypeVisitor#add_callsite on <var_v:RapidTypeVisitor>*/
6807 PRINT_ERROR("Runtime error: %s", "Aborted");
6808 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 693);
6813 { /* Inline typing#AForExpr#method_next (self) on <self:AForExpr> */
6814 var35
= self
->attrs
[COLOR_nit__typing__AForExpr___method_next
].val
; /* _method_next on <self:AForExpr> */
6816 RET_LABEL34
:(void)0;
6820 nit___nit__RapidTypeVisitor___add_callsite(var_v
, var33
); /* Direct call rapid_type_analysis#RapidTypeVisitor#add_callsite on <var_v:RapidTypeVisitor>*/
6823 { /* Inline typing#AForExpr#method_finish (self) on <self:AForExpr> */
6824 var38
= self
->attrs
[COLOR_nit__typing__AForExpr___method_finish
].val
; /* _method_finish on <self:AForExpr> */
6826 RET_LABEL37
:(void)0;
6830 if (var_mf
== NULL
) {
6831 var39
= 0; /* is null */
6833 var39
= 1; /* arg is null and recv is not */
6836 { /* Inline kernel#Object#!= (var_mf,((val*)NULL)) on <var_mf:nullable CallSite> */
6837 var_other
= ((val
*)NULL
);
6839 var42
= ((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)>*/
6844 RET_LABEL41
:(void)0;
6850 nit___nit__RapidTypeVisitor___add_callsite(var_v
, var_mf
); /* Direct call rapid_type_analysis#RapidTypeVisitor#add_callsite on <var_v:RapidTypeVisitor>*/
6856 /* method rapid_type_analysis#ANewExpr#accept_rapid_type_visitor for (self: ANewExpr, RapidTypeVisitor) */
6857 void nit__rapid_type_analysis___ANewExpr___ANode__accept_rapid_type_visitor(val
* self
, val
* p0
) {
6858 val
* var_v
/* var v: RapidTypeVisitor */;
6859 val
* var
/* : nullable MClassType */;
6860 val
* var2
/* : nullable MClassType */;
6861 val
* var_mtype
/* var mtype: MClassType */;
6862 val
* var3
/* : nullable CallSite */;
6863 val
* var5
/* : nullable CallSite */;
6866 { /* Inline typing#ANewExpr#recvtype (self) on <self:ANewExpr> */
6867 var2
= self
->attrs
[COLOR_nit__typing__ANewExpr___recvtype
].val
; /* _recvtype on <self:ANewExpr> */
6872 if (unlikely(var
== NULL
)) {
6873 PRINT_ERROR("Runtime error: %s", "Cast failed");
6874 PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis
, 704);
6879 nit___nit__RapidTypeVisitor___add_type(var_v
, var_mtype
); /* Direct call rapid_type_analysis#RapidTypeVisitor#add_type on <var_v:RapidTypeVisitor>*/
6882 { /* Inline typing#ANewExpr#callsite (self) on <self:ANewExpr> */
6883 var5
= self
->attrs
[COLOR_nit__typing__ANewExpr___callsite
].val
; /* _callsite on <self:ANewExpr> */
6889 nit___nit__RapidTypeVisitor___add_callsite(var_v
, var3
); /* Direct call rapid_type_analysis#RapidTypeVisitor#add_callsite on <var_v:RapidTypeVisitor>*/