1 #include "rapid_type_analysis.sep.0.h"
2 /* method rapid_type_analysis#ModelBuilder#do_rapid_type_analysis for (self: ModelBuilder, MModule): RapidTypeAnalysis */
3 val
* rapid_type_analysis__ModelBuilder__do_rapid_type_analysis(val
* self
, val
* p0
) {
4 val
* var
/* : RapidTypeAnalysis */;
5 val
* var_mainmodule
/* var mainmodule: MModule */;
6 val
* var1
/* : RapidTypeAnalysis */;
7 val
* var_analysis
/* var analysis: RapidTypeAnalysis */;
9 var1
= NEW_rapid_type_analysis__RapidTypeAnalysis(&type_rapid_type_analysis__RapidTypeAnalysis
);
10 ((void (*)(val
*, val
*, val
*))(var1
->class->vft
[COLOR_rapid_type_analysis__RapidTypeAnalysis__init
]))(var1
, self
, var_mainmodule
) /* init on <var1:RapidTypeAnalysis>*/;
11 CHECK_NEW_rapid_type_analysis__RapidTypeAnalysis(var1
);
13 ((void (*)(val
*))(var_analysis
->class->vft
[COLOR_rapid_type_analysis__RapidTypeAnalysis__run_analysis
]))(var_analysis
) /* run_analysis on <var_analysis:RapidTypeAnalysis>*/;
19 /* method rapid_type_analysis#ModelBuilder#do_rapid_type_analysis for (self: Object, MModule): RapidTypeAnalysis */
20 val
* VIRTUAL_rapid_type_analysis__ModelBuilder__do_rapid_type_analysis(val
* self
, val
* p0
) {
21 val
* var
/* : RapidTypeAnalysis */;
22 val
* var1
/* : RapidTypeAnalysis */;
23 var1
= rapid_type_analysis__ModelBuilder__do_rapid_type_analysis(self
, p0
);
28 /* method rapid_type_analysis#RapidTypeAnalysis#modelbuilder for (self: RapidTypeAnalysis): ModelBuilder */
29 val
* rapid_type_analysis__RapidTypeAnalysis__modelbuilder(val
* self
) {
30 val
* var
/* : ModelBuilder */;
31 val
* var1
/* : ModelBuilder */;
32 var1
= self
->attrs
[COLOR_rapid_type_analysis__RapidTypeAnalysis___64dmodelbuilder
].val
; /* @modelbuilder on <self:RapidTypeAnalysis> */
34 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute @modelbuilder", "src/rapid_type_analysis.nit", 43);
41 /* method rapid_type_analysis#RapidTypeAnalysis#modelbuilder for (self: Object): ModelBuilder */
42 val
* VIRTUAL_rapid_type_analysis__RapidTypeAnalysis__modelbuilder(val
* self
) {
43 val
* var
/* : ModelBuilder */;
44 val
* var1
/* : ModelBuilder */;
45 var1
= rapid_type_analysis__RapidTypeAnalysis__modelbuilder(self
);
50 /* method rapid_type_analysis#RapidTypeAnalysis#modelbuilder= for (self: RapidTypeAnalysis, ModelBuilder) */
51 void rapid_type_analysis__RapidTypeAnalysis__modelbuilder_61d(val
* self
, val
* p0
) {
52 self
->attrs
[COLOR_rapid_type_analysis__RapidTypeAnalysis___64dmodelbuilder
].val
= p0
; /* @modelbuilder on <self:RapidTypeAnalysis> */
55 /* method rapid_type_analysis#RapidTypeAnalysis#modelbuilder= for (self: Object, ModelBuilder) */
56 void VIRTUAL_rapid_type_analysis__RapidTypeAnalysis__modelbuilder_61d(val
* self
, val
* p0
) {
57 rapid_type_analysis__RapidTypeAnalysis__modelbuilder_61d(self
, p0
);
60 /* method rapid_type_analysis#RapidTypeAnalysis#mainmodule for (self: RapidTypeAnalysis): MModule */
61 val
* rapid_type_analysis__RapidTypeAnalysis__mainmodule(val
* self
) {
62 val
* var
/* : MModule */;
63 val
* var1
/* : MModule */;
64 var1
= self
->attrs
[COLOR_rapid_type_analysis__RapidTypeAnalysis___64dmainmodule
].val
; /* @mainmodule on <self:RapidTypeAnalysis> */
66 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute @mainmodule", "src/rapid_type_analysis.nit", 46);
73 /* method rapid_type_analysis#RapidTypeAnalysis#mainmodule for (self: Object): MModule */
74 val
* VIRTUAL_rapid_type_analysis__RapidTypeAnalysis__mainmodule(val
* self
) {
75 val
* var
/* : MModule */;
76 val
* var1
/* : MModule */;
77 var1
= rapid_type_analysis__RapidTypeAnalysis__mainmodule(self
);
82 /* method rapid_type_analysis#RapidTypeAnalysis#mainmodule= for (self: RapidTypeAnalysis, MModule) */
83 void rapid_type_analysis__RapidTypeAnalysis__mainmodule_61d(val
* self
, val
* p0
) {
84 self
->attrs
[COLOR_rapid_type_analysis__RapidTypeAnalysis___64dmainmodule
].val
= p0
; /* @mainmodule on <self:RapidTypeAnalysis> */
87 /* method rapid_type_analysis#RapidTypeAnalysis#mainmodule= for (self: Object, MModule) */
88 void VIRTUAL_rapid_type_analysis__RapidTypeAnalysis__mainmodule_61d(val
* self
, val
* p0
) {
89 rapid_type_analysis__RapidTypeAnalysis__mainmodule_61d(self
, p0
);
92 /* method rapid_type_analysis#RapidTypeAnalysis#live_types for (self: RapidTypeAnalysis): HashSet[MClassType] */
93 val
* rapid_type_analysis__RapidTypeAnalysis__live_types(val
* self
) {
94 val
* var
/* : HashSet[MClassType] */;
95 val
* var1
/* : HashSet[MClassType] */;
96 var1
= self
->attrs
[COLOR_rapid_type_analysis__RapidTypeAnalysis___64dlive_types
].val
; /* @live_types on <self:RapidTypeAnalysis> */
98 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute @live_types", "src/rapid_type_analysis.nit", 50);
105 /* method rapid_type_analysis#RapidTypeAnalysis#live_types for (self: Object): HashSet[MClassType] */
106 val
* VIRTUAL_rapid_type_analysis__RapidTypeAnalysis__live_types(val
* self
) {
107 val
* var
/* : HashSet[MClassType] */;
108 val
* var1
/* : HashSet[MClassType] */;
109 var1
= rapid_type_analysis__RapidTypeAnalysis__live_types(self
);
114 /* method rapid_type_analysis#RapidTypeAnalysis#live_types= for (self: RapidTypeAnalysis, HashSet[MClassType]) */
115 void rapid_type_analysis__RapidTypeAnalysis__live_types_61d(val
* self
, val
* p0
) {
116 self
->attrs
[COLOR_rapid_type_analysis__RapidTypeAnalysis___64dlive_types
].val
= p0
; /* @live_types on <self:RapidTypeAnalysis> */
119 /* method rapid_type_analysis#RapidTypeAnalysis#live_types= for (self: Object, HashSet[MClassType]) */
120 void VIRTUAL_rapid_type_analysis__RapidTypeAnalysis__live_types_61d(val
* self
, val
* p0
) {
121 rapid_type_analysis__RapidTypeAnalysis__live_types_61d(self
, p0
);
124 /* method rapid_type_analysis#RapidTypeAnalysis#live_open_types for (self: RapidTypeAnalysis): HashSet[MClassType] */
125 val
* rapid_type_analysis__RapidTypeAnalysis__live_open_types(val
* self
) {
126 val
* var
/* : HashSet[MClassType] */;
127 val
* var1
/* : HashSet[MClassType] */;
128 var1
= self
->attrs
[COLOR_rapid_type_analysis__RapidTypeAnalysis___64dlive_open_types
].val
; /* @live_open_types on <self:RapidTypeAnalysis> */
130 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute @live_open_types", "src/rapid_type_analysis.nit", 55);
137 /* method rapid_type_analysis#RapidTypeAnalysis#live_open_types for (self: Object): HashSet[MClassType] */
138 val
* VIRTUAL_rapid_type_analysis__RapidTypeAnalysis__live_open_types(val
* self
) {
139 val
* var
/* : HashSet[MClassType] */;
140 val
* var1
/* : HashSet[MClassType] */;
141 var1
= rapid_type_analysis__RapidTypeAnalysis__live_open_types(self
);
146 /* method rapid_type_analysis#RapidTypeAnalysis#live_open_types= for (self: RapidTypeAnalysis, HashSet[MClassType]) */
147 void rapid_type_analysis__RapidTypeAnalysis__live_open_types_61d(val
* self
, val
* p0
) {
148 self
->attrs
[COLOR_rapid_type_analysis__RapidTypeAnalysis___64dlive_open_types
].val
= p0
; /* @live_open_types on <self:RapidTypeAnalysis> */
151 /* method rapid_type_analysis#RapidTypeAnalysis#live_open_types= for (self: Object, HashSet[MClassType]) */
152 void VIRTUAL_rapid_type_analysis__RapidTypeAnalysis__live_open_types_61d(val
* self
, val
* p0
) {
153 rapid_type_analysis__RapidTypeAnalysis__live_open_types_61d(self
, p0
);
156 /* method rapid_type_analysis#RapidTypeAnalysis#live_classes for (self: RapidTypeAnalysis): HashSet[MClass] */
157 val
* rapid_type_analysis__RapidTypeAnalysis__live_classes(val
* self
) {
158 val
* var
/* : HashSet[MClass] */;
159 val
* var1
/* : HashSet[MClass] */;
160 var1
= self
->attrs
[COLOR_rapid_type_analysis__RapidTypeAnalysis___64dlive_classes
].val
; /* @live_classes on <self:RapidTypeAnalysis> */
162 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute @live_classes", "src/rapid_type_analysis.nit", 59);
169 /* method rapid_type_analysis#RapidTypeAnalysis#live_classes for (self: Object): HashSet[MClass] */
170 val
* VIRTUAL_rapid_type_analysis__RapidTypeAnalysis__live_classes(val
* self
) {
171 val
* var
/* : HashSet[MClass] */;
172 val
* var1
/* : HashSet[MClass] */;
173 var1
= rapid_type_analysis__RapidTypeAnalysis__live_classes(self
);
178 /* method rapid_type_analysis#RapidTypeAnalysis#live_classes= for (self: RapidTypeAnalysis, HashSet[MClass]) */
179 void rapid_type_analysis__RapidTypeAnalysis__live_classes_61d(val
* self
, val
* p0
) {
180 self
->attrs
[COLOR_rapid_type_analysis__RapidTypeAnalysis___64dlive_classes
].val
= p0
; /* @live_classes on <self:RapidTypeAnalysis> */
183 /* method rapid_type_analysis#RapidTypeAnalysis#live_classes= for (self: Object, HashSet[MClass]) */
184 void VIRTUAL_rapid_type_analysis__RapidTypeAnalysis__live_classes_61d(val
* self
, val
* p0
) {
185 rapid_type_analysis__RapidTypeAnalysis__live_classes_61d(self
, p0
);
188 /* method rapid_type_analysis#RapidTypeAnalysis#live_cast_types for (self: RapidTypeAnalysis): HashSet[MClassType] */
189 val
* rapid_type_analysis__RapidTypeAnalysis__live_cast_types(val
* self
) {
190 val
* var
/* : HashSet[MClassType] */;
191 val
* var1
/* : HashSet[MClassType] */;
192 var1
= self
->attrs
[COLOR_rapid_type_analysis__RapidTypeAnalysis___64dlive_cast_types
].val
; /* @live_cast_types on <self:RapidTypeAnalysis> */
194 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute @live_cast_types", "src/rapid_type_analysis.nit", 62);
201 /* method rapid_type_analysis#RapidTypeAnalysis#live_cast_types for (self: Object): HashSet[MClassType] */
202 val
* VIRTUAL_rapid_type_analysis__RapidTypeAnalysis__live_cast_types(val
* self
) {
203 val
* var
/* : HashSet[MClassType] */;
204 val
* var1
/* : HashSet[MClassType] */;
205 var1
= rapid_type_analysis__RapidTypeAnalysis__live_cast_types(self
);
210 /* method rapid_type_analysis#RapidTypeAnalysis#live_cast_types= for (self: RapidTypeAnalysis, HashSet[MClassType]) */
211 void rapid_type_analysis__RapidTypeAnalysis__live_cast_types_61d(val
* self
, val
* p0
) {
212 self
->attrs
[COLOR_rapid_type_analysis__RapidTypeAnalysis___64dlive_cast_types
].val
= p0
; /* @live_cast_types on <self:RapidTypeAnalysis> */
215 /* method rapid_type_analysis#RapidTypeAnalysis#live_cast_types= for (self: Object, HashSet[MClassType]) */
216 void VIRTUAL_rapid_type_analysis__RapidTypeAnalysis__live_cast_types_61d(val
* self
, val
* p0
) {
217 rapid_type_analysis__RapidTypeAnalysis__live_cast_types_61d(self
, p0
);
220 /* method rapid_type_analysis#RapidTypeAnalysis#live_open_cast_types for (self: RapidTypeAnalysis): HashSet[MType] */
221 val
* rapid_type_analysis__RapidTypeAnalysis__live_open_cast_types(val
* self
) {
222 val
* var
/* : HashSet[MType] */;
223 val
* var1
/* : HashSet[MType] */;
224 var1
= self
->attrs
[COLOR_rapid_type_analysis__RapidTypeAnalysis___64dlive_open_cast_types
].val
; /* @live_open_cast_types on <self:RapidTypeAnalysis> */
226 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute @live_open_cast_types", "src/rapid_type_analysis.nit", 65);
233 /* method rapid_type_analysis#RapidTypeAnalysis#live_open_cast_types for (self: Object): HashSet[MType] */
234 val
* VIRTUAL_rapid_type_analysis__RapidTypeAnalysis__live_open_cast_types(val
* self
) {
235 val
* var
/* : HashSet[MType] */;
236 val
* var1
/* : HashSet[MType] */;
237 var1
= rapid_type_analysis__RapidTypeAnalysis__live_open_cast_types(self
);
242 /* method rapid_type_analysis#RapidTypeAnalysis#live_open_cast_types= for (self: RapidTypeAnalysis, HashSet[MType]) */
243 void rapid_type_analysis__RapidTypeAnalysis__live_open_cast_types_61d(val
* self
, val
* p0
) {
244 self
->attrs
[COLOR_rapid_type_analysis__RapidTypeAnalysis___64dlive_open_cast_types
].val
= p0
; /* @live_open_cast_types on <self:RapidTypeAnalysis> */
247 /* method rapid_type_analysis#RapidTypeAnalysis#live_open_cast_types= for (self: Object, HashSet[MType]) */
248 void VIRTUAL_rapid_type_analysis__RapidTypeAnalysis__live_open_cast_types_61d(val
* self
, val
* p0
) {
249 rapid_type_analysis__RapidTypeAnalysis__live_open_cast_types_61d(self
, p0
);
252 /* method rapid_type_analysis#RapidTypeAnalysis#live_methoddefs for (self: RapidTypeAnalysis): HashSet[MMethodDef] */
253 val
* rapid_type_analysis__RapidTypeAnalysis__live_methoddefs(val
* self
) {
254 val
* var
/* : HashSet[MMethodDef] */;
255 val
* var1
/* : HashSet[MMethodDef] */;
256 var1
= self
->attrs
[COLOR_rapid_type_analysis__RapidTypeAnalysis___64dlive_methoddefs
].val
; /* @live_methoddefs on <self:RapidTypeAnalysis> */
258 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute @live_methoddefs", "src/rapid_type_analysis.nit", 69);
265 /* method rapid_type_analysis#RapidTypeAnalysis#live_methoddefs for (self: Object): HashSet[MMethodDef] */
266 val
* VIRTUAL_rapid_type_analysis__RapidTypeAnalysis__live_methoddefs(val
* self
) {
267 val
* var
/* : HashSet[MMethodDef] */;
268 val
* var1
/* : HashSet[MMethodDef] */;
269 var1
= rapid_type_analysis__RapidTypeAnalysis__live_methoddefs(self
);
274 /* method rapid_type_analysis#RapidTypeAnalysis#live_methoddefs= for (self: RapidTypeAnalysis, HashSet[MMethodDef]) */
275 void rapid_type_analysis__RapidTypeAnalysis__live_methoddefs_61d(val
* self
, val
* p0
) {
276 self
->attrs
[COLOR_rapid_type_analysis__RapidTypeAnalysis___64dlive_methoddefs
].val
= p0
; /* @live_methoddefs on <self:RapidTypeAnalysis> */
279 /* method rapid_type_analysis#RapidTypeAnalysis#live_methoddefs= for (self: Object, HashSet[MMethodDef]) */
280 void VIRTUAL_rapid_type_analysis__RapidTypeAnalysis__live_methoddefs_61d(val
* self
, val
* p0
) {
281 rapid_type_analysis__RapidTypeAnalysis__live_methoddefs_61d(self
, p0
);
284 /* method rapid_type_analysis#RapidTypeAnalysis#live_methods for (self: RapidTypeAnalysis): HashSet[MMethod] */
285 val
* rapid_type_analysis__RapidTypeAnalysis__live_methods(val
* self
) {
286 val
* var
/* : HashSet[MMethod] */;
287 val
* var1
/* : HashSet[MMethod] */;
288 var1
= self
->attrs
[COLOR_rapid_type_analysis__RapidTypeAnalysis___64dlive_methods
].val
; /* @live_methods on <self:RapidTypeAnalysis> */
290 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute @live_methods", "src/rapid_type_analysis.nit", 72);
297 /* method rapid_type_analysis#RapidTypeAnalysis#live_methods for (self: Object): HashSet[MMethod] */
298 val
* VIRTUAL_rapid_type_analysis__RapidTypeAnalysis__live_methods(val
* self
) {
299 val
* var
/* : HashSet[MMethod] */;
300 val
* var1
/* : HashSet[MMethod] */;
301 var1
= rapid_type_analysis__RapidTypeAnalysis__live_methods(self
);
306 /* method rapid_type_analysis#RapidTypeAnalysis#live_methods= for (self: RapidTypeAnalysis, HashSet[MMethod]) */
307 void rapid_type_analysis__RapidTypeAnalysis__live_methods_61d(val
* self
, val
* p0
) {
308 self
->attrs
[COLOR_rapid_type_analysis__RapidTypeAnalysis___64dlive_methods
].val
= p0
; /* @live_methods on <self:RapidTypeAnalysis> */
311 /* method rapid_type_analysis#RapidTypeAnalysis#live_methods= for (self: Object, HashSet[MMethod]) */
312 void VIRTUAL_rapid_type_analysis__RapidTypeAnalysis__live_methods_61d(val
* self
, val
* p0
) {
313 rapid_type_analysis__RapidTypeAnalysis__live_methods_61d(self
, p0
);
316 /* method rapid_type_analysis#RapidTypeAnalysis#live_super_sends for (self: RapidTypeAnalysis): HashSet[MMethodDef] */
317 val
* rapid_type_analysis__RapidTypeAnalysis__live_super_sends(val
* self
) {
318 val
* var
/* : HashSet[MMethodDef] */;
319 val
* var1
/* : HashSet[MMethodDef] */;
320 var1
= self
->attrs
[COLOR_rapid_type_analysis__RapidTypeAnalysis___64dlive_super_sends
].val
; /* @live_super_sends on <self:RapidTypeAnalysis> */
322 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute @live_super_sends", "src/rapid_type_analysis.nit", 75);
329 /* method rapid_type_analysis#RapidTypeAnalysis#live_super_sends for (self: Object): HashSet[MMethodDef] */
330 val
* VIRTUAL_rapid_type_analysis__RapidTypeAnalysis__live_super_sends(val
* self
) {
331 val
* var
/* : HashSet[MMethodDef] */;
332 val
* var1
/* : HashSet[MMethodDef] */;
333 var1
= rapid_type_analysis__RapidTypeAnalysis__live_super_sends(self
);
338 /* method rapid_type_analysis#RapidTypeAnalysis#live_super_sends= for (self: RapidTypeAnalysis, HashSet[MMethodDef]) */
339 void rapid_type_analysis__RapidTypeAnalysis__live_super_sends_61d(val
* self
, val
* p0
) {
340 self
->attrs
[COLOR_rapid_type_analysis__RapidTypeAnalysis___64dlive_super_sends
].val
= p0
; /* @live_super_sends on <self:RapidTypeAnalysis> */
343 /* method rapid_type_analysis#RapidTypeAnalysis#live_super_sends= for (self: Object, HashSet[MMethodDef]) */
344 void VIRTUAL_rapid_type_analysis__RapidTypeAnalysis__live_super_sends_61d(val
* self
, val
* p0
) {
345 rapid_type_analysis__RapidTypeAnalysis__live_super_sends_61d(self
, p0
);
348 /* method rapid_type_analysis#RapidTypeAnalysis#totry_methods for (self: RapidTypeAnalysis): HashSet[MMethod] */
349 val
* rapid_type_analysis__RapidTypeAnalysis__totry_methods(val
* self
) {
350 val
* var
/* : HashSet[MMethod] */;
351 val
* var1
/* : HashSet[MMethod] */;
352 var1
= self
->attrs
[COLOR_rapid_type_analysis__RapidTypeAnalysis___64dtotry_methods
].val
; /* @totry_methods on <self:RapidTypeAnalysis> */
354 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute @totry_methods", "src/rapid_type_analysis.nit", 78);
361 /* method rapid_type_analysis#RapidTypeAnalysis#totry_methods for (self: Object): HashSet[MMethod] */
362 val
* VIRTUAL_rapid_type_analysis__RapidTypeAnalysis__totry_methods(val
* self
) {
363 val
* var
/* : HashSet[MMethod] */;
364 val
* var1
/* : HashSet[MMethod] */;
365 var1
= rapid_type_analysis__RapidTypeAnalysis__totry_methods(self
);
370 /* method rapid_type_analysis#RapidTypeAnalysis#totry_methods= for (self: RapidTypeAnalysis, HashSet[MMethod]) */
371 void rapid_type_analysis__RapidTypeAnalysis__totry_methods_61d(val
* self
, val
* p0
) {
372 self
->attrs
[COLOR_rapid_type_analysis__RapidTypeAnalysis___64dtotry_methods
].val
= p0
; /* @totry_methods on <self:RapidTypeAnalysis> */
375 /* method rapid_type_analysis#RapidTypeAnalysis#totry_methods= for (self: Object, HashSet[MMethod]) */
376 void VIRTUAL_rapid_type_analysis__RapidTypeAnalysis__totry_methods_61d(val
* self
, val
* p0
) {
377 rapid_type_analysis__RapidTypeAnalysis__totry_methods_61d(self
, p0
);
380 /* method rapid_type_analysis#RapidTypeAnalysis#todo for (self: RapidTypeAnalysis): List[MMethodDef] */
381 val
* rapid_type_analysis__RapidTypeAnalysis__todo(val
* self
) {
382 val
* var
/* : List[MMethodDef] */;
383 val
* var1
/* : List[MMethodDef] */;
384 var1
= self
->attrs
[COLOR_rapid_type_analysis__RapidTypeAnalysis___64dtodo
].val
; /* @todo on <self:RapidTypeAnalysis> */
386 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute @todo", "src/rapid_type_analysis.nit", 81);
393 /* method rapid_type_analysis#RapidTypeAnalysis#todo for (self: Object): List[MMethodDef] */
394 val
* VIRTUAL_rapid_type_analysis__RapidTypeAnalysis__todo(val
* self
) {
395 val
* var
/* : List[MMethodDef] */;
396 val
* var1
/* : List[MMethodDef] */;
397 var1
= rapid_type_analysis__RapidTypeAnalysis__todo(self
);
402 /* method rapid_type_analysis#RapidTypeAnalysis#todo= for (self: RapidTypeAnalysis, List[MMethodDef]) */
403 void rapid_type_analysis__RapidTypeAnalysis__todo_61d(val
* self
, val
* p0
) {
404 self
->attrs
[COLOR_rapid_type_analysis__RapidTypeAnalysis___64dtodo
].val
= p0
; /* @todo on <self:RapidTypeAnalysis> */
407 /* method rapid_type_analysis#RapidTypeAnalysis#todo= for (self: Object, List[MMethodDef]) */
408 void VIRTUAL_rapid_type_analysis__RapidTypeAnalysis__todo_61d(val
* self
, val
* p0
) {
409 rapid_type_analysis__RapidTypeAnalysis__todo_61d(self
, p0
);
412 /* method rapid_type_analysis#RapidTypeAnalysis#run_analysis for (self: RapidTypeAnalysis) */
413 void rapid_type_analysis__RapidTypeAnalysis__run_analysis(val
* self
) {
414 val
* var
/* : MModule */;
415 val
* var1
/* : nullable MClassType */;
416 val
* var_maintype
/* var maintype: nullable MClassType */;
417 val
* var2
/* : null */;
418 short int var3
/* : Bool */;
419 val
* var4
/* : MModule */;
421 val
* var5
/* : String */;
422 char* var6
/* : NativeString */;
423 long var7
/* : Int */;
424 val
* var8
/* : String */;
425 val
* var9
/* : MClass */;
426 val
* var10
/* : nullable MMethod */;
427 val
* var_initprop
/* var initprop: nullable MMethod */;
428 val
* var11
/* : null */;
429 short int var12
/* : Bool */;
430 val
* var13
/* : MModule */;
431 static val
* varonce14
;
432 val
* var15
/* : String */;
433 char* var16
/* : NativeString */;
434 long var17
/* : Int */;
435 val
* var18
/* : String */;
436 val
* var19
/* : MClass */;
437 val
* var20
/* : nullable MMethod */;
438 val
* var_mainprop
/* var mainprop: nullable MMethod */;
439 val
* var21
/* : null */;
440 short int var22
/* : Bool */;
441 val
* var23
/* : ModelBuilder */;
442 val
* var24
/* : Model */;
443 static val
* varonce25
;
444 val
* var26
/* : String */;
445 char* var27
/* : NativeString */;
446 long var28
/* : Int */;
447 val
* var29
/* : String */;
448 val
* var30
/* : nullable Array[MClass] */;
449 val
* var_classes
/* var classes: nullable Array[MClass] */;
450 val
* var31
/* : null */;
451 short int var32
/* : Bool */;
452 val
* var33
/* : Iterator[nullable Object] */;
453 short int var34
/* : Bool */;
454 val
* var35
/* : nullable Object */;
455 val
* var_c
/* var c: MClass */;
456 val
* var36
/* : MClassType */;
457 val
* var37
/* : MClassType */;
458 val
* var38
/* : List[MMethodDef] */;
459 short int var39
/* : Bool */;
460 short int var40
/* : Bool */;
461 val
* var41
/* : List[MMethodDef] */;
462 val
* var42
/* : nullable Object */;
463 val
* var_mmethoddef
/* var mmethoddef: MMethodDef */;
464 val
* var43
/* : RapidTypeVisitor */;
465 val
* var44
/* : MClassDef */;
466 val
* var45
/* : MClassType */;
467 val
* var_v
/* var v: RapidTypeVisitor */;
468 val
* var46
/* : nullable MSignature */;
469 long var47
/* : Int */;
470 long var_vararg_rank
/* var vararg_rank: Int */;
471 long var48
/* : Int */;
472 long var49
/* : Int */;
473 long var51
/* : Int */;
474 short int var52
/* : Bool */;
475 short int var54
/* : Bool */;
478 short int var55
/* : Bool */;
479 val
* var56
/* : ModelBuilder */;
480 val
* var57
/* : HashMap[MPropDef, APropdef] */;
481 val
* var58
/* : nullable Object */;
482 val
* var_node
/* var node: APropdef */;
483 val
* var59
/* : nullable MSignature */;
484 val
* var60
/* : Array[MParameter] */;
485 val
* var61
/* : nullable Object */;
486 val
* var62
/* : MType */;
487 val
* var_elttype
/* var elttype: MType */;
488 val
* var63
/* : MModule */;
489 static val
* varonce64
;
490 val
* var65
/* : String */;
491 char* var66
/* : NativeString */;
492 long var67
/* : Int */;
493 val
* var68
/* : String */;
494 val
* var69
/* : MClass */;
495 val
* var70
/* : Array[MType] */;
496 long var71
/* : Int */;
497 val
* var72
/* : NativeArray[MType] */;
498 val
* var73
/* : MClassType */;
499 val
* var_vararg
/* var vararg: MClassType */;
500 val
* var74
/* : ModelBuilder */;
501 static val
* varonce75
;
502 val
* var76
/* : String */;
503 char* var77
/* : NativeString */;
504 long var78
/* : Int */;
505 val
* var79
/* : String */;
506 val
* var80
/* : MClass */;
507 val
* var81
/* : MModule */;
508 val
* var82
/* : MMethod */;
509 val
* var83
/* : MModule */;
510 static val
* varonce84
;
511 val
* var85
/* : String */;
512 char* var86
/* : NativeString */;
513 long var87
/* : Int */;
514 val
* var88
/* : String */;
515 val
* var89
/* : MClass */;
516 val
* var90
/* : Array[MType] */;
517 long var91
/* : Int */;
518 val
* var92
/* : NativeArray[MType] */;
519 val
* var93
/* : MClassType */;
520 val
* var_native
/* var native: MClassType */;
521 val
* var94
/* : Range[Int] */;
522 long var95
/* : Int */;
523 val
* var96
/* : nullable MSignature */;
524 long var97
/* : Int */;
525 val
* var98
/* : Discrete */;
526 val
* var99
/* : Discrete */;
527 val
* var100
/* : Iterator[nullable Object] */;
528 short int var101
/* : Bool */;
529 val
* var102
/* : nullable Object */;
530 long var_i
/* var i: Int */;
531 long var103
/* : Int */;
532 val
* var104
/* : MProperty */;
533 val
* var105
/* : MPropDef */;
534 val
* var106
/* : nullable MSignature */;
535 val
* var107
/* : Array[MParameter] */;
536 val
* var108
/* : nullable Object */;
537 val
* var109
/* : MType */;
538 val
* var_origtype
/* var origtype: MType */;
539 short int var110
/* : Bool */;
540 short int var111
/* : Bool */;
541 val
* var113
/* : nullable MSignature */;
542 val
* var114
/* : Array[MParameter] */;
543 val
* var115
/* : nullable Object */;
544 val
* var116
/* : MType */;
545 val
* var_paramtype
/* var paramtype: MType */;
546 val
* var117
/* : ModelBuilder */;
547 val
* var118
/* : HashMap[MPropDef, APropdef] */;
548 short int var119
/* : Bool */;
549 short int var120
/* : Bool */;
550 val
* var121
/* : MProperty */;
551 val
* var122
/* : String */;
552 static val
* varonce123
;
553 val
* var124
/* : String */;
554 char* var125
/* : NativeString */;
555 long var126
/* : Int */;
556 val
* var127
/* : String */;
557 short int var128
/* : Bool */;
558 val
* var129
/* : ModelBuilder */;
559 val
* var130
/* : HashMap[MClassDef, AClassdef] */;
560 val
* var131
/* : MClassDef */;
561 val
* var132
/* : nullable Object */;
562 val
* var_nclassdef
/* var nclassdef: AClassdef */;
563 val
* var133
/* : nullable Collection[MMethod] */;
564 val
* var_super_inits
/* var super_inits: nullable Collection[MMethod] */;
565 val
* var134
/* : null */;
566 short int var135
/* : Bool */;
567 val
* var136
/* : Iterator[nullable Object] */;
568 short int var137
/* : Bool */;
569 val
* var138
/* : nullable Object */;
570 val
* var_su
/* var su: MMethod */;
571 val
* var139
/* : MClassType */;
572 val
* var142
/* : ModelBuilder */;
573 val
* var143
/* : HashMap[MPropDef, APropdef] */;
574 val
* var144
/* : nullable Object */;
575 val
* var_npropdef
/* var npropdef: APropdef */;
576 short int var145
/* : Bool */;
579 val
* var148
/* : nullable Array[MMethod] */;
580 val
* var_auto_super_inits
/* var auto_super_inits: nullable Array[MMethod] */;
581 val
* var149
/* : null */;
582 short int var150
/* : Bool */;
583 val
* var151
/* : Iterator[nullable Object] */;
584 short int var152
/* : Bool */;
585 val
* var153
/* : nullable Object */;
586 val
* var_auto_super_init
/* var auto_super_init: MMethod */;
587 val
* var154
/* : MClassType */;
588 short int var156
/* : Bool */;
589 short int var157
/* : Bool */;
592 short int var_
/* var : Bool */;
593 short int var160
/* : Bool */;
596 val
* var163
/* : nullable MSignature */;
597 val
* var164
/* : nullable MType */;
598 val
* var_ret
/* var ret: nullable MType */;
599 short int var165
/* : Bool */;
600 short int var166
/* : Bool */;
601 short int var167
/* : Bool */;
602 val
* var168
/* : null */;
603 short int var169
/* : Bool */;
604 short int var_170
/* var : Bool */;
605 short int var171
/* : Bool */;
608 short int var_174
/* var : Bool */;
609 val
* var175
/* : MClass */;
610 val
* var176
/* : MClassKind */;
611 val
* var177
/* : MClassKind */;
612 short int var178
/* : Bool */;
613 short int var_179
/* var : Bool */;
614 val
* var180
/* : MClass */;
615 val
* var181
/* : MClassKind */;
616 val
* var182
/* : MClassKind */;
617 short int var183
/* : Bool */;
618 short int var184
/* : Bool */;
621 val
* var187
/* : MClassType */;
622 val
* var188
/* : List[MClassType] */;
623 val
* var_todo_types
/* var todo_types: List[MClassType] */;
624 val
* var189
/* : HashSet[MClassType] */;
625 short int var190
/* : Bool */;
626 short int var191
/* : Bool */;
627 val
* var192
/* : nullable Object */;
628 val
* var_t
/* var t: MClassType */;
629 val
* var193
/* : HashSet[MClassType] */;
630 val
* var194
/* : Iterator[nullable Object] */;
631 short int var195
/* : Bool */;
632 val
* var196
/* : nullable Object */;
633 val
* var_ot
/* var ot: MClassType */;
634 val
* var197
/* : MModule */;
635 short int var198
/* : Bool */;
636 short int var199
/* : Bool */;
637 val
* var201
/* : MModule */;
638 val
* var202
/* : MType */;
639 val
* var_rt
/* var rt: MClassType */;
640 val
* var203
/* : HashSet[MClassType] */;
641 short int var204
/* : Bool */;
642 val
* var205
/* : HashSet[MClassType] */;
643 val
* var207
/* : HashSet[MType] */;
644 val
* var208
/* : Iterator[nullable Object] */;
645 short int var209
/* : Bool */;
646 val
* var210
/* : nullable Object */;
647 val
* var_ot211
/* var ot: MType */;
648 val
* var212
/* : HashSet[MClassType] */;
649 val
* var213
/* : Iterator[nullable Object] */;
650 short int var214
/* : Bool */;
651 val
* var215
/* : nullable Object */;
652 val
* var_t216
/* var t: MClassType */;
653 val
* var217
/* : MModule */;
654 short int var218
/* : Bool */;
655 short int var219
/* : Bool */;
656 val
* var221
/* : MModule */;
657 val
* var222
/* : MType */;
658 val
* var_rt223
/* var rt: MType */;
659 short int var224
/* : Bool */;
662 val
* var227
/* : MType */;
663 short int var228
/* : Bool */;
666 val
* var231
/* : HashSet[MClassType] */;
667 var
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_rapid_type_analysis__RapidTypeAnalysis__mainmodule
]))(self
) /* mainmodule on <self:RapidTypeAnalysis>*/;
668 var1
= ((val
* (*)(val
*))(var
->class->vft
[COLOR_model__MModule__sys_type
]))(var
) /* sys_type on <var:MModule>*/;
671 if (var_maintype
== NULL
) {
672 var3
= 1; /* is null */
674 var3
= 0; /* arg is null but recv is not */
680 ((void (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_rapid_type_analysis__RapidTypeAnalysis__add_new
]))(self
, var_maintype
, var_maintype
) /* add_new on <self:RapidTypeAnalysis>*/;
681 var4
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_rapid_type_analysis__RapidTypeAnalysis__mainmodule
]))(self
) /* mainmodule on <self:RapidTypeAnalysis>*/;
687 var8
= string__NativeString__to_s_with_length(var6
, var7
);
691 var9
= ((val
* (*)(val
*))(var_maintype
->class->vft
[COLOR_model__MClassType__mclass
]))(var_maintype
) /* mclass on <var_maintype:nullable MClassType(MClassType)>*/;
692 var10
= ((val
* (*)(val
*, val
*, val
*))(var4
->class->vft
[COLOR_model__MModule__try_get_primitive_method
]))(var4
, var5
, var9
) /* try_get_primitive_method on <var4:MModule>*/;
693 var_initprop
= var10
;
695 if (var_initprop
== NULL
) {
696 var12
= 0; /* is null */
698 var12
= 1; /* arg is null and recv is not */
701 ((void (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_rapid_type_analysis__RapidTypeAnalysis__add_send
]))(self
, var_maintype
, var_initprop
) /* add_send on <self:RapidTypeAnalysis>*/;
704 var13
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_rapid_type_analysis__RapidTypeAnalysis__mainmodule
]))(self
) /* mainmodule on <self:RapidTypeAnalysis>*/;
710 var18
= string__NativeString__to_s_with_length(var16
, var17
);
714 var19
= ((val
* (*)(val
*))(var_maintype
->class->vft
[COLOR_model__MClassType__mclass
]))(var_maintype
) /* mclass on <var_maintype:nullable MClassType(MClassType)>*/;
715 var20
= ((val
* (*)(val
*, val
*, val
*))(var13
->class->vft
[COLOR_model__MModule__try_get_primitive_method
]))(var13
, var15
, var19
) /* try_get_primitive_method on <var13:MModule>*/;
716 var_mainprop
= var20
;
718 if (var_mainprop
== NULL
) {
719 var22
= 0; /* is null */
721 var22
= 1; /* arg is null and recv is not */
724 ((void (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_rapid_type_analysis__RapidTypeAnalysis__add_send
]))(self
, var_maintype
, var_mainprop
) /* add_send on <self:RapidTypeAnalysis>*/;
727 var23
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_rapid_type_analysis__RapidTypeAnalysis__modelbuilder
]))(self
) /* modelbuilder on <self:RapidTypeAnalysis>*/;
728 var24
= ((val
* (*)(val
*))(var23
->class->vft
[COLOR_modelbuilder__ModelBuilder__model
]))(var23
) /* model on <var23:ModelBuilder>*/;
734 var29
= string__NativeString__to_s_with_length(var27
, var28
);
738 var30
= ((val
* (*)(val
*, val
*))(var24
->class->vft
[COLOR_model__Model__get_mclasses_by_name
]))(var24
, var26
) /* get_mclasses_by_name on <var24:Model>*/;
741 if (var_classes
== NULL
) {
742 var32
= 0; /* is null */
744 var32
= 1; /* arg is null and recv is not */
747 var33
= ((val
* (*)(val
*))(var_classes
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var_classes
) /* iterator on <var_classes:nullable Array[MClass](Array[MClass])>*/;
749 var34
= ((short int (*)(val
*))(var33
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var33
) /* is_ok on <var33:Iterator[nullable Object]>*/;
751 var35
= ((val
* (*)(val
*))(var33
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var33
) /* item on <var33:Iterator[nullable Object]>*/;
753 var36
= ((val
* (*)(val
*))(var_c
->class->vft
[COLOR_model__MClass__mclass_type
]))(var_c
) /* mclass_type on <var_c:MClass>*/;
754 var37
= ((val
* (*)(val
*))(var_c
->class->vft
[COLOR_model__MClass__mclass_type
]))(var_c
) /* mclass_type on <var_c:MClass>*/;
755 ((void (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_rapid_type_analysis__RapidTypeAnalysis__add_new
]))(self
, var36
, var37
) /* add_new on <self:RapidTypeAnalysis>*/;
756 CONTINUE_label
: (void)0;
757 ((void (*)(val
*))(var33
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var33
) /* next on <var33:Iterator[nullable Object]>*/;
759 BREAK_label
: (void)0;
763 var38
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_rapid_type_analysis__RapidTypeAnalysis__todo
]))(self
) /* todo on <self:RapidTypeAnalysis>*/;
764 var39
= ((short int (*)(val
*))(var38
->class->vft
[COLOR_abstract_collection__Collection__is_empty
]))(var38
) /* is_empty on <var38:List[MMethodDef]>*/;
767 var41
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_rapid_type_analysis__RapidTypeAnalysis__todo
]))(self
) /* todo on <self:RapidTypeAnalysis>*/;
768 var42
= ((val
* (*)(val
*))(var41
->class->vft
[COLOR_abstract_collection__Sequence__shift
]))(var41
) /* shift on <var41:List[MMethodDef]>*/;
769 var_mmethoddef
= var42
;
770 var43
= NEW_rapid_type_analysis__RapidTypeVisitor(&type_rapid_type_analysis__RapidTypeVisitor
);
771 var44
= ((val
* (*)(val
*))(var_mmethoddef
->class->vft
[COLOR_model__MPropDef__mclassdef
]))(var_mmethoddef
) /* mclassdef on <var_mmethoddef:MMethodDef>*/;
772 var45
= ((val
* (*)(val
*))(var44
->class->vft
[COLOR_model__MClassDef__bound_mtype
]))(var44
) /* bound_mtype on <var44:MClassDef>*/;
773 ((void (*)(val
*, val
*, val
*, val
*))(var43
->class->vft
[COLOR_rapid_type_analysis__RapidTypeVisitor__init
]))(var43
, self
, var45
, var_mmethoddef
) /* init on <var43:RapidTypeVisitor>*/;
774 CHECK_NEW_rapid_type_analysis__RapidTypeVisitor(var43
);
776 var46
= ((val
* (*)(val
*))(var_mmethoddef
->class->vft
[COLOR_model__MMethodDef__msignature
]))(var_mmethoddef
) /* msignature on <var_mmethoddef:MMethodDef>*/;
778 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Reciever is null", "src/rapid_type_analysis.nit", 108);
781 var47
= ((long (*)(val
*))(var46
->class->vft
[COLOR_model__MSignature__vararg_rank
]))(var46
) /* vararg_rank on <var46:nullable MSignature>*/;
783 var_vararg_rank
= var47
;
785 { /* Inline kernel#Int#unary - (var48) */
791 { /* Inline kernel#Int#> (var_vararg_rank,var49) */
792 /* Covariant cast for argument 0 (i) <var49:Int> isa OTHER */
793 /* <var49:Int> isa OTHER */
794 var54
= 1; /* easy <var49:Int> isa OTHER*/
796 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Cast failed", "lib/standard/kernel.nit", 259);
799 var55
= var_vararg_rank
> var49
;
805 var56
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_rapid_type_analysis__RapidTypeAnalysis__modelbuilder
]))(self
) /* modelbuilder on <self:RapidTypeAnalysis>*/;
806 var57
= ((val
* (*)(val
*))(var56
->class->vft
[COLOR_modelize_property__ModelBuilder__mpropdef2npropdef
]))(var56
) /* mpropdef2npropdef on <var56:ModelBuilder>*/;
807 var58
= ((val
* (*)(val
*, val
*))(var57
->class->vft
[COLOR_abstract_collection__MapRead___91d_93d
]))(var57
, var_mmethoddef
) /* [] on <var57:HashMap[MPropDef, APropdef]>*/;
809 var59
= ((val
* (*)(val
*))(var_mmethoddef
->class->vft
[COLOR_model__MMethodDef__msignature
]))(var_mmethoddef
) /* msignature on <var_mmethoddef:MMethodDef>*/;
811 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Reciever is null", "src/rapid_type_analysis.nit", 111);
814 var60
= ((val
* (*)(val
*))(var59
->class->vft
[COLOR_model__MSignature__mparameters
]))(var59
) /* mparameters on <var59:nullable MSignature>*/;
816 var61
= ((val
* (*)(val
*, long))(var60
->class->vft
[COLOR_abstract_collection__SequenceRead___91d_93d
]))(var60
, var_vararg_rank
) /* [] on <var60:Array[MParameter]>*/;
817 var62
= ((val
* (*)(val
*))(var61
->class->vft
[COLOR_model__MParameter__mtype
]))(var61
) /* mtype on <var61:nullable Object(MParameter)>*/;
819 var63
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_rapid_type_analysis__RapidTypeAnalysis__mainmodule
]))(self
) /* mainmodule on <self:RapidTypeAnalysis>*/;
825 var68
= string__NativeString__to_s_with_length(var66
, var67
);
829 var69
= ((val
* (*)(val
*, val
*))(var63
->class->vft
[COLOR_model__MModule__get_primitive_class
]))(var63
, var65
) /* get_primitive_class on <var63:MModule>*/;
830 var70
= NEW_array__Array(&type_array__Arraymodel__MType
);
831 { /* var70 = array_instance Array[MType] */
833 var72
= NEW_array__NativeArray(var71
, &type_array__NativeArraymodel__MType
);
834 ((struct instance_array__NativeArray
*)var72
)->values
[0] = (val
*) var_elttype
;
835 ((void (*)(val
*, val
*, long))(var70
->class->vft
[COLOR_array__Array__with_native
]))(var70
, var72
, var71
) /* with_native on <var70:Array[MType]>*/;
836 CHECK_NEW_array__Array(var70
);
838 var73
= ((val
* (*)(val
*, val
*))(var69
->class->vft
[COLOR_model__MClass__get_mtype
]))(var69
, var70
) /* get_mtype on <var69:MClass>*/;
840 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_rapid_type_analysis__RapidTypeVisitor__add_type
]))(var_v
, var_vararg
) /* add_type on <var_v:RapidTypeVisitor>*/;
841 var74
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_rapid_type_analysis__RapidTypeAnalysis__modelbuilder
]))(self
) /* modelbuilder on <self:RapidTypeAnalysis>*/;
845 var77
= "with_native";
847 var79
= string__NativeString__to_s_with_length(var77
, var78
);
851 var80
= ((val
* (*)(val
*))(var_vararg
->class->vft
[COLOR_model__MClassType__mclass
]))(var_vararg
) /* mclass on <var_vararg:MClassType>*/;
852 var81
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_rapid_type_analysis__RapidTypeAnalysis__mainmodule
]))(self
) /* mainmodule on <self:RapidTypeAnalysis>*/;
853 var82
= ((val
* (*)(val
*, val
*, val
*, val
*, val
*))(var74
->class->vft
[COLOR_modelbuilder__ModelBuilder__force_get_primitive_method
]))(var74
, var_node
, var76
, var80
, var81
) /* force_get_primitive_method on <var74:ModelBuilder>*/;
854 ((void (*)(val
*, val
*, val
*))(var_v
->class->vft
[COLOR_rapid_type_analysis__RapidTypeVisitor__add_monomorphic_send
]))(var_v
, var_vararg
, var82
) /* add_monomorphic_send on <var_v:RapidTypeVisitor>*/;
855 var83
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_rapid_type_analysis__RapidTypeAnalysis__mainmodule
]))(self
) /* mainmodule on <self:RapidTypeAnalysis>*/;
859 var86
= "NativeArray";
861 var88
= string__NativeString__to_s_with_length(var86
, var87
);
865 var89
= ((val
* (*)(val
*, val
*))(var83
->class->vft
[COLOR_model__MModule__get_primitive_class
]))(var83
, var85
) /* get_primitive_class on <var83:MModule>*/;
866 var90
= NEW_array__Array(&type_array__Arraymodel__MType
);
867 { /* var90 = array_instance Array[MType] */
869 var92
= NEW_array__NativeArray(var91
, &type_array__NativeArraymodel__MType
);
870 ((struct instance_array__NativeArray
*)var92
)->values
[0] = (val
*) var_elttype
;
871 ((void (*)(val
*, val
*, long))(var90
->class->vft
[COLOR_array__Array__with_native
]))(var90
, var92
, var91
) /* with_native on <var90:Array[MType]>*/;
872 CHECK_NEW_array__Array(var90
);
874 var93
= ((val
* (*)(val
*, val
*))(var89
->class->vft
[COLOR_model__MClass__get_mtype
]))(var89
, var90
) /* get_mtype on <var89:MClass>*/;
876 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_rapid_type_analysis__RapidTypeVisitor__add_type
]))(var_v
, var_native
) /* add_type on <var_v:RapidTypeVisitor>*/;
879 var94
= NEW_range__Range(&type_range__Rangekernel__Int
);
881 var96
= ((val
* (*)(val
*))(var_mmethoddef
->class->vft
[COLOR_model__MMethodDef__msignature
]))(var_mmethoddef
) /* msignature on <var_mmethoddef:MMethodDef>*/;
883 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Reciever is null", "src/rapid_type_analysis.nit", 121);
886 var97
= ((long (*)(val
*))(var96
->class->vft
[COLOR_model__MSignature__arity
]))(var96
) /* arity on <var96:nullable MSignature>*/;
888 var98
= BOX_kernel__Int(var95
); /* autobox from Int to Discrete */
889 var99
= BOX_kernel__Int(var97
); /* autobox from Int to Discrete */
890 ((void (*)(val
*, val
*, val
*))(var94
->class->vft
[COLOR_range__Range__without_last
]))(var94
, var98
, var99
) /* without_last on <var94:Range[Int]>*/;
891 CHECK_NEW_range__Range(var94
);
892 var100
= ((val
* (*)(val
*))(var94
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var94
) /* iterator on <var94:Range[Int]>*/;
894 var101
= ((short int (*)(val
*))(var100
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var100
) /* is_ok on <var100:Iterator[nullable Object]>*/;
896 var102
= ((val
* (*)(val
*))(var100
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var100
) /* item on <var100:Iterator[nullable Object]>*/;
897 var103
= ((struct instance_kernel__Int
*)var102
)->value
; /* autounbox from nullable Object to Int */;
899 var104
= ((val
* (*)(val
*))(var_mmethoddef
->class->vft
[COLOR_model__MPropDef__mproperty
]))(var_mmethoddef
) /* mproperty on <var_mmethoddef:MMethodDef>*/;
900 var105
= ((val
* (*)(val
*))(var104
->class->vft
[COLOR_model__MProperty__intro
]))(var104
) /* intro on <var104:MProperty(MMethod)>*/;
901 var106
= ((val
* (*)(val
*))(var105
->class->vft
[COLOR_model__MMethodDef__msignature
]))(var105
) /* msignature on <var105:MPropDef(MMethodDef)>*/;
902 if (var106
== NULL
) {
903 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Reciever is null", "src/rapid_type_analysis.nit", 122);
906 var107
= ((val
* (*)(val
*))(var106
->class->vft
[COLOR_model__MSignature__mparameters
]))(var106
) /* mparameters on <var106:nullable MSignature>*/;
908 var108
= ((val
* (*)(val
*, long))(var107
->class->vft
[COLOR_abstract_collection__SequenceRead___91d_93d
]))(var107
, var_i
) /* [] on <var107:Array[MParameter]>*/;
909 var109
= ((val
* (*)(val
*))(var108
->class->vft
[COLOR_model__MParameter__mtype
]))(var108
) /* mtype on <var108:nullable Object(MParameter)>*/;
910 var_origtype
= var109
;
911 var110
= ((short int (*)(val
*))(var_origtype
->class->vft
[COLOR_model__MType__need_anchor
]))(var_origtype
) /* need_anchor on <var_origtype:MType>*/;
914 goto CONTINUE_label112
;
917 var113
= ((val
* (*)(val
*))(var_mmethoddef
->class->vft
[COLOR_model__MMethodDef__msignature
]))(var_mmethoddef
) /* msignature on <var_mmethoddef:MMethodDef>*/;
918 if (var113
== NULL
) {
919 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Reciever is null", "src/rapid_type_analysis.nit", 124);
922 var114
= ((val
* (*)(val
*))(var113
->class->vft
[COLOR_model__MSignature__mparameters
]))(var113
) /* mparameters on <var113:nullable MSignature>*/;
924 var115
= ((val
* (*)(val
*, long))(var114
->class->vft
[COLOR_abstract_collection__SequenceRead___91d_93d
]))(var114
, var_i
) /* [] on <var114:Array[MParameter]>*/;
925 var116
= ((val
* (*)(val
*))(var115
->class->vft
[COLOR_model__MParameter__mtype
]))(var115
) /* mtype on <var115:nullable Object(MParameter)>*/;
926 var_paramtype
= var116
;
927 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_rapid_type_analysis__RapidTypeAnalysis__add_cast
]))(self
, var_paramtype
) /* add_cast on <self:RapidTypeAnalysis>*/;
928 CONTINUE_label112
: (void)0;
929 ((void (*)(val
*))(var100
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var100
) /* next on <var100:Iterator[nullable Object]>*/;
931 BREAK_label112
: (void)0;
932 var117
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_rapid_type_analysis__RapidTypeAnalysis__modelbuilder
]))(self
) /* modelbuilder on <self:RapidTypeAnalysis>*/;
933 var118
= ((val
* (*)(val
*))(var117
->class->vft
[COLOR_modelize_property__ModelBuilder__mpropdef2npropdef
]))(var117
) /* mpropdef2npropdef on <var117:ModelBuilder>*/;
934 var119
= ((short int (*)(val
*, val
*))(var118
->class->vft
[COLOR_abstract_collection__MapRead__has_key
]))(var118
, var_mmethoddef
) /* has_key on <var118:HashMap[MPropDef, APropdef]>*/;
937 var121
= ((val
* (*)(val
*))(var_mmethoddef
->class->vft
[COLOR_model__MPropDef__mproperty
]))(var_mmethoddef
) /* mproperty on <var_mmethoddef:MMethodDef>*/;
938 var122
= ((val
* (*)(val
*))(var121
->class->vft
[COLOR_model__MProperty__name
]))(var121
) /* name on <var121:MProperty(MMethod)>*/;
944 var127
= string__NativeString__to_s_with_length(var125
, var126
);
948 var128
= ((short int (*)(val
*, val
*))(var122
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var122
, var124
) /* == on <var122:String>*/;
950 var129
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_rapid_type_analysis__RapidTypeAnalysis__modelbuilder
]))(self
) /* modelbuilder on <self:RapidTypeAnalysis>*/;
951 var130
= ((val
* (*)(val
*))(var129
->class->vft
[COLOR_modelize_class__ModelBuilder__mclassdef2nclassdef
]))(var129
) /* mclassdef2nclassdef on <var129:ModelBuilder>*/;
952 var131
= ((val
* (*)(val
*))(var_mmethoddef
->class->vft
[COLOR_model__MPropDef__mclassdef
]))(var_mmethoddef
) /* mclassdef on <var_mmethoddef:MMethodDef>*/;
953 var132
= ((val
* (*)(val
*, val
*))(var130
->class->vft
[COLOR_abstract_collection__MapRead___91d_93d
]))(var130
, var131
) /* [] on <var130:HashMap[MClassDef, AClassdef]>*/;
954 var_nclassdef
= var132
;
955 var133
= ((val
* (*)(val
*))(var_nclassdef
->class->vft
[COLOR_modelize_property__AClassdef__super_inits
]))(var_nclassdef
) /* super_inits on <var_nclassdef:AClassdef>*/;
956 var_super_inits
= var133
;
958 if (var_super_inits
== NULL
) {
959 var135
= 0; /* is null */
961 var135
= 1; /* arg is null and recv is not */
964 var136
= ((val
* (*)(val
*))(var_super_inits
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var_super_inits
) /* iterator on <var_super_inits:nullable Collection[MMethod](Collection[MMethod])>*/;
966 var137
= ((short int (*)(val
*))(var136
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var136
) /* is_ok on <var136:Iterator[nullable Object]>*/;
968 var138
= ((val
* (*)(val
*))(var136
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var136
) /* item on <var136:Iterator[nullable Object]>*/;
970 var139
= ((val
* (*)(val
*))(var_v
->class->vft
[COLOR_rapid_type_analysis__RapidTypeVisitor__receiver
]))(var_v
) /* receiver on <var_v:RapidTypeVisitor>*/;
971 ((void (*)(val
*, val
*, val
*))(var_v
->class->vft
[COLOR_rapid_type_analysis__RapidTypeVisitor__add_monomorphic_send
]))(var_v
, var139
, var_su
) /* add_monomorphic_send on <var_v:RapidTypeVisitor>*/;
972 CONTINUE_label140
: (void)0;
973 ((void (*)(val
*))(var136
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var136
) /* next on <var136:Iterator[nullable Object]>*/;
975 BREAK_label140
: (void)0;
979 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Aborted", "src/rapid_type_analysis.nit", 142);
982 goto CONTINUE_label141
;
985 var142
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_rapid_type_analysis__RapidTypeAnalysis__modelbuilder
]))(self
) /* modelbuilder on <self:RapidTypeAnalysis>*/;
986 var143
= ((val
* (*)(val
*))(var142
->class->vft
[COLOR_modelize_property__ModelBuilder__mpropdef2npropdef
]))(var142
) /* mpropdef2npropdef on <var142:ModelBuilder>*/;
987 var144
= ((val
* (*)(val
*, val
*))(var143
->class->vft
[COLOR_abstract_collection__MapRead___91d_93d
]))(var143
, var_mmethoddef
) /* [] on <var143:HashMap[MPropDef, APropdef]>*/;
988 var_npropdef
= var144
;
989 /* <var_npropdef:APropdef> isa AConcreteMethPropdef */
990 cltype146
= type_parser_nodes__AConcreteMethPropdef
.color
;
991 idtype147
= type_parser_nodes__AConcreteMethPropdef
.id
;
992 if(cltype146
>= var_npropdef
->type
->table_size
) {
995 var145
= var_npropdef
->type
->type_table
[cltype146
] == idtype147
;
998 var148
= ((val
* (*)(val
*))(var_npropdef
->class->vft
[COLOR_auto_super_init__AConcreteMethPropdef__auto_super_inits
]))(var_npropdef
) /* auto_super_inits on <var_npropdef:APropdef(AConcreteMethPropdef)>*/;
999 var_auto_super_inits
= var148
;
1001 if (var_auto_super_inits
== NULL
) {
1002 var150
= 0; /* is null */
1004 var150
= 1; /* arg is null and recv is not */
1007 var151
= ((val
* (*)(val
*))(var_auto_super_inits
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var_auto_super_inits
) /* iterator on <var_auto_super_inits:nullable Array[MMethod](Array[MMethod])>*/;
1009 var152
= ((short int (*)(val
*))(var151
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var151
) /* is_ok on <var151:Iterator[nullable Object]>*/;
1011 var153
= ((val
* (*)(val
*))(var151
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var151
) /* item on <var151:Iterator[nullable Object]>*/;
1012 var_auto_super_init
= var153
;
1013 var154
= ((val
* (*)(val
*))(var_v
->class->vft
[COLOR_rapid_type_analysis__RapidTypeVisitor__receiver
]))(var_v
) /* receiver on <var_v:RapidTypeVisitor>*/;
1014 ((void (*)(val
*, val
*, val
*))(var_v
->class->vft
[COLOR_rapid_type_analysis__RapidTypeVisitor__add_monomorphic_send
]))(var_v
, var154
, var_auto_super_init
) /* add_monomorphic_send on <var_v:RapidTypeVisitor>*/;
1015 CONTINUE_label155
: (void)0;
1016 ((void (*)(val
*))(var151
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var151
) /* next on <var151:Iterator[nullable Object]>*/;
1018 BREAK_label155
: (void)0;
1022 /* <var_npropdef:APropdef> isa AInternMethPropdef */
1023 cltype158
= type_parser_nodes__AInternMethPropdef
.color
;
1024 idtype159
= type_parser_nodes__AInternMethPropdef
.id
;
1025 if(cltype158
>= var_npropdef
->type
->table_size
) {
1028 var157
= var_npropdef
->type
->type_table
[cltype158
] == idtype159
;
1034 /* <var_npropdef:APropdef> isa AExternMethPropdef */
1035 cltype161
= type_parser_nodes__AExternMethPropdef
.color
;
1036 idtype162
= type_parser_nodes__AExternMethPropdef
.id
;
1037 if(cltype161
>= var_npropdef
->type
->table_size
) {
1040 var160
= var_npropdef
->type
->type_table
[cltype161
] == idtype162
;
1045 var163
= ((val
* (*)(val
*))(var_mmethoddef
->class->vft
[COLOR_model__MMethodDef__msignature
]))(var_mmethoddef
) /* msignature on <var_mmethoddef:MMethodDef>*/;
1046 if (var163
== NULL
) {
1047 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Reciever is null", "src/rapid_type_analysis.nit", 158);
1050 var164
= ((val
* (*)(val
*))(var163
->class->vft
[COLOR_model__MSignature__return_mtype
]))(var163
) /* return_mtype on <var163:nullable MSignature>*/;
1054 if (var_ret
== NULL
) {
1055 var169
= 0; /* is null */
1057 var169
= 1; /* arg is null and recv is not */
1061 /* <var_ret:nullable MType(MType)> isa MClassType */
1062 cltype172
= type_model__MClassType
.color
;
1063 idtype173
= type_model__MClassType
.id
;
1064 if(cltype172
>= var_ret
->type
->table_size
) {
1067 var171
= var_ret
->type
->type_table
[cltype172
] == idtype173
;
1075 var175
= ((val
* (*)(val
*))(var_ret
->class->vft
[COLOR_model__MClassType__mclass
]))(var_ret
) /* mclass on <var_ret:nullable MType(MClassType)>*/;
1076 var176
= ((val
* (*)(val
*))(var175
->class->vft
[COLOR_model__MClass__kind
]))(var175
) /* kind on <var175:MClass>*/;
1077 var177
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_model__Object__abstract_kind
]))(self
) /* abstract_kind on <self:RapidTypeAnalysis>*/;
1078 var178
= ((short int (*)(val
*, val
*))(var176
->class->vft
[COLOR_kernel__Object___33d_61d
]))(var176
, var177
) /* != on <var176:MClassKind>*/;
1085 var180
= ((val
* (*)(val
*))(var_ret
->class->vft
[COLOR_model__MClassType__mclass
]))(var_ret
) /* mclass on <var_ret:nullable MType(MClassType)>*/;
1086 var181
= ((val
* (*)(val
*))(var180
->class->vft
[COLOR_model__MClass__kind
]))(var180
) /* kind on <var180:MClass>*/;
1087 var182
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_model__Object__interface_kind
]))(self
) /* interface_kind on <self:RapidTypeAnalysis>*/;
1088 var183
= ((short int (*)(val
*, val
*))(var181
->class->vft
[COLOR_kernel__Object___33d_61d
]))(var181
, var182
) /* != on <var181:MClassKind>*/;
1094 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_rapid_type_analysis__RapidTypeVisitor__add_type
]))(var_v
, var_ret
) /* add_type on <var_v:RapidTypeVisitor>*/;
1098 /* <var_npropdef:APropdef> isa AExternInitPropdef */
1099 cltype185
= type_parser_nodes__AExternInitPropdef
.color
;
1100 idtype186
= type_parser_nodes__AExternInitPropdef
.id
;
1101 if(cltype185
>= var_npropdef
->type
->table_size
) {
1104 var184
= var_npropdef
->type
->type_table
[cltype185
] == idtype186
;
1107 var187
= ((val
* (*)(val
*))(var_v
->class->vft
[COLOR_rapid_type_analysis__RapidTypeVisitor__receiver
]))(var_v
) /* receiver on <var_v:RapidTypeVisitor>*/;
1108 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_rapid_type_analysis__RapidTypeVisitor__add_type
]))(var_v
, var187
) /* add_type on <var_v:RapidTypeVisitor>*/;
1113 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_parser_nodes__Visitor__enter_visit
]))(var_v
, var_npropdef
) /* enter_visit on <var_v:RapidTypeVisitor>*/;
1114 CONTINUE_label141
: (void)0;
1116 BREAK_label141
: (void)0;
1117 var188
= NEW_list__List(&type_list__Listmodel__MClassType
);
1118 ((void (*)(val
*))(var188
->class->vft
[COLOR_list__List__init
]))(var188
) /* init on <var188:List[MClassType]>*/;
1119 CHECK_NEW_list__List(var188
);
1120 var_todo_types
= var188
;
1121 var189
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_rapid_type_analysis__RapidTypeAnalysis__live_types
]))(self
) /* live_types on <self:RapidTypeAnalysis>*/;
1122 ((void (*)(val
*, val
*))(var_todo_types
->class->vft
[COLOR_abstract_collection__SimpleCollection__add_all
]))(var_todo_types
, var189
) /* add_all on <var_todo_types:List[MClassType]>*/;
1124 var190
= ((short int (*)(val
*))(var_todo_types
->class->vft
[COLOR_abstract_collection__Collection__is_empty
]))(var_todo_types
) /* is_empty on <var_todo_types:List[MClassType]>*/;
1127 var192
= ((val
* (*)(val
*))(var_todo_types
->class->vft
[COLOR_abstract_collection__Sequence__shift
]))(var_todo_types
) /* shift on <var_todo_types:List[MClassType]>*/;
1129 var193
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_rapid_type_analysis__RapidTypeAnalysis__live_open_types
]))(self
) /* live_open_types on <self:RapidTypeAnalysis>*/;
1130 var194
= ((val
* (*)(val
*))(var193
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var193
) /* iterator on <var193:HashSet[MClassType]>*/;
1132 var195
= ((short int (*)(val
*))(var194
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var194
) /* is_ok on <var194:Iterator[nullable Object]>*/;
1134 var196
= ((val
* (*)(val
*))(var194
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var194
) /* item on <var194:Iterator[nullable Object]>*/;
1136 var197
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_rapid_type_analysis__RapidTypeAnalysis__mainmodule
]))(self
) /* mainmodule on <self:RapidTypeAnalysis>*/;
1137 var198
= ((short int (*)(val
*, val
*, val
*, val
*))(var_ot
->class->vft
[COLOR_model__MType__can_resolve_for
]))(var_ot
, var_t
, var_t
, var197
) /* can_resolve_for on <var_ot:MClassType>*/;
1140 goto CONTINUE_label200
;
1143 var201
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_rapid_type_analysis__RapidTypeAnalysis__mainmodule
]))(self
) /* mainmodule on <self:RapidTypeAnalysis>*/;
1144 var202
= ((val
* (*)(val
*, val
*, val
*))(var_ot
->class->vft
[COLOR_model__MType__anchor_to
]))(var_ot
, var201
, var_t
) /* anchor_to on <var_ot:MClassType>*/;
1146 var203
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_rapid_type_analysis__RapidTypeAnalysis__live_types
]))(self
) /* live_types on <self:RapidTypeAnalysis>*/;
1147 var204
= ((short int (*)(val
*, val
*))(var203
->class->vft
[COLOR_abstract_collection__Collection__has
]))(var203
, var_rt
) /* has on <var203:HashSet[MClassType]>*/;
1149 goto CONTINUE_label200
;
1152 var205
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_rapid_type_analysis__RapidTypeAnalysis__live_types
]))(self
) /* live_types on <self:RapidTypeAnalysis>*/;
1153 ((void (*)(val
*, val
*))(var205
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var205
, var_rt
) /* add on <var205:HashSet[MClassType]>*/;
1154 ((void (*)(val
*, val
*))(var_todo_types
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_todo_types
, var_rt
) /* add on <var_todo_types:List[MClassType]>*/;
1155 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_rapid_type_analysis__RapidTypeAnalysis__check_depth
]))(self
, var_rt
) /* check_depth on <self:RapidTypeAnalysis>*/;
1156 CONTINUE_label200
: (void)0;
1157 ((void (*)(val
*))(var194
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var194
) /* next on <var194:Iterator[nullable Object]>*/;
1159 BREAK_label200
: (void)0;
1160 CONTINUE_label206
: (void)0;
1162 BREAK_label206
: (void)0;
1163 var207
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_rapid_type_analysis__RapidTypeAnalysis__live_open_cast_types
]))(self
) /* live_open_cast_types on <self:RapidTypeAnalysis>*/;
1164 var208
= ((val
* (*)(val
*))(var207
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var207
) /* iterator on <var207:HashSet[MType]>*/;
1166 var209
= ((short int (*)(val
*))(var208
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var208
) /* is_ok on <var208:Iterator[nullable Object]>*/;
1168 var210
= ((val
* (*)(val
*))(var208
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var208
) /* item on <var208:Iterator[nullable Object]>*/;
1170 var212
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_rapid_type_analysis__RapidTypeAnalysis__live_types
]))(self
) /* live_types on <self:RapidTypeAnalysis>*/;
1171 var213
= ((val
* (*)(val
*))(var212
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var212
) /* iterator on <var212:HashSet[MClassType]>*/;
1173 var214
= ((short int (*)(val
*))(var213
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var213
) /* is_ok on <var213:Iterator[nullable Object]>*/;
1175 var215
= ((val
* (*)(val
*))(var213
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var213
) /* item on <var213:Iterator[nullable Object]>*/;
1177 var217
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_rapid_type_analysis__RapidTypeAnalysis__mainmodule
]))(self
) /* mainmodule on <self:RapidTypeAnalysis>*/;
1178 var218
= ((short int (*)(val
*, val
*, val
*, val
*))(var_ot211
->class->vft
[COLOR_model__MType__can_resolve_for
]))(var_ot211
, var_t216
, var_t216
, var217
) /* can_resolve_for on <var_ot211:MType>*/;
1181 goto CONTINUE_label220
;
1184 var221
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_rapid_type_analysis__RapidTypeAnalysis__mainmodule
]))(self
) /* mainmodule on <self:RapidTypeAnalysis>*/;
1185 var222
= ((val
* (*)(val
*, val
*, val
*))(var_ot211
->class->vft
[COLOR_model__MType__anchor_to
]))(var_ot211
, var221
, var_t216
) /* anchor_to on <var_ot211:MType>*/;
1187 /* <var_rt223:MType> isa MNullableType */
1188 cltype225
= type_model__MNullableType
.color
;
1189 idtype226
= type_model__MNullableType
.id
;
1190 if(cltype225
>= var_rt223
->type
->table_size
) {
1193 var224
= var_rt223
->type
->type_table
[cltype225
] == idtype226
;
1196 var227
= ((val
* (*)(val
*))(var_rt223
->class->vft
[COLOR_model__MNullableType__mtype
]))(var_rt223
) /* mtype on <var_rt223:MType(MNullableType)>*/;
1200 /* <var_rt223:MType> isa MClassType */
1201 cltype229
= type_model__MClassType
.color
;
1202 idtype230
= type_model__MClassType
.id
;
1203 if(cltype229
>= var_rt223
->type
->table_size
) {
1206 var228
= var_rt223
->type
->type_table
[cltype229
] == idtype230
;
1209 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/rapid_type_analysis.nit", 199);
1212 var231
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_rapid_type_analysis__RapidTypeAnalysis__live_cast_types
]))(self
) /* live_cast_types on <self:RapidTypeAnalysis>*/;
1213 ((void (*)(val
*, val
*))(var231
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var231
, var_rt223
) /* add on <var231:HashSet[MClassType]>*/;
1214 CONTINUE_label220
: (void)0;
1215 ((void (*)(val
*))(var213
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var213
) /* next on <var213:Iterator[nullable Object]>*/;
1217 BREAK_label220
: (void)0;
1218 CONTINUE_label232
: (void)0;
1219 ((void (*)(val
*))(var208
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var208
) /* next on <var208:Iterator[nullable Object]>*/;
1221 BREAK_label232
: (void)0;
1224 /* method rapid_type_analysis#RapidTypeAnalysis#run_analysis for (self: Object) */
1225 void VIRTUAL_rapid_type_analysis__RapidTypeAnalysis__run_analysis(val
* self
) {
1226 rapid_type_analysis__RapidTypeAnalysis__run_analysis(self
);
1229 /* method rapid_type_analysis#RapidTypeAnalysis#check_depth for (self: RapidTypeAnalysis, MClassType) */
1230 void rapid_type_analysis__RapidTypeAnalysis__check_depth(val
* self
, val
* p0
) {
1231 val
* var_mtype
/* var mtype: MClassType */;
1232 long var
/* : Int */;
1233 long var_d
/* var d: Int */;
1234 long var1
/* : Int */;
1235 short int var2
/* : Bool */;
1236 short int var4
/* : Bool */;
1239 short int var5
/* : Bool */;
1240 val
* var6
/* : ModelBuilder */;
1241 val
* var7
/* : ToolContext */;
1242 val
* var8
/* : null */;
1243 static val
* varonce
;
1244 val
* var9
/* : String */;
1245 char* var10
/* : NativeString */;
1246 long var11
/* : Int */;
1247 val
* var12
/* : String */;
1248 static val
* varonce13
;
1249 val
* var14
/* : String */;
1250 char* var15
/* : NativeString */;
1251 long var16
/* : Int */;
1252 val
* var17
/* : String */;
1253 static val
* varonce18
;
1254 val
* var19
/* : String */;
1255 char* var20
/* : NativeString */;
1256 long var21
/* : Int */;
1257 val
* var22
/* : String */;
1258 val
* var23
/* : Array[Object] */;
1259 long var24
/* : Int */;
1260 val
* var25
/* : NativeArray[Object] */;
1261 val
* var26
/* : Object */;
1262 val
* var27
/* : String */;
1264 var
= ((long (*)(val
*))(var_mtype
->class->vft
[COLOR_model__MType__length
]))(var_mtype
) /* length on <var_mtype:MClassType>*/;
1267 { /* Inline kernel#Int#> (var_d,var1) */
1268 /* Covariant cast for argument 0 (i) <var1:Int> isa OTHER */
1269 /* <var1:Int> isa OTHER */
1270 var4
= 1; /* easy <var1:Int> isa OTHER*/
1272 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Cast failed", "lib/standard/kernel.nit", 259);
1275 var5
= var_d
> var1
;
1281 var6
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_rapid_type_analysis__RapidTypeAnalysis__modelbuilder
]))(self
) /* modelbuilder on <self:RapidTypeAnalysis>*/;
1282 var7
= ((val
* (*)(val
*))(var6
->class->vft
[COLOR_modelbuilder__ModelBuilder__toolcontext
]))(var6
) /* toolcontext on <var6:ModelBuilder>*/;
1287 var10
= "Fatal error: limitation in the rapidtype analysis engine: a type depth of ";
1289 var12
= string__NativeString__to_s_with_length(var10
, var11
);
1296 var15
= " is too important, the problematic type is ";
1298 var17
= string__NativeString__to_s_with_length(var15
, var16
);
1307 var22
= string__NativeString__to_s_with_length(var20
, var21
);
1311 var23
= NEW_array__Array(&type_array__Arraykernel__Object
);
1312 { /* var23 = array_instance Array[Object] */
1314 var25
= NEW_array__NativeArray(var24
, &type_array__NativeArraykernel__Object
);
1315 ((struct instance_array__NativeArray
*)var25
)->values
[0] = (val
*) var9
;
1316 var26
= BOX_kernel__Int(var_d
); /* autobox from Int to Object */
1317 ((struct instance_array__NativeArray
*)var25
)->values
[1] = (val
*) var26
;
1318 ((struct instance_array__NativeArray
*)var25
)->values
[2] = (val
*) var14
;
1319 ((struct instance_array__NativeArray
*)var25
)->values
[3] = (val
*) var_mtype
;
1320 ((struct instance_array__NativeArray
*)var25
)->values
[4] = (val
*) var19
;
1321 ((void (*)(val
*, val
*, long))(var23
->class->vft
[COLOR_array__Array__with_native
]))(var23
, var25
, var24
) /* with_native on <var23:Array[Object]>*/;
1322 CHECK_NEW_array__Array(var23
);
1324 var27
= ((val
* (*)(val
*))(var23
->class->vft
[COLOR_string__Object__to_s
]))(var23
) /* to_s on <var23:Array[Object]>*/;
1325 ((void (*)(val
*, val
*, val
*))(var7
->class->vft
[COLOR_toolcontext__ToolContext__fatal_error
]))(var7
, var8
, var27
) /* fatal_error on <var7:ToolContext>*/;
1330 /* method rapid_type_analysis#RapidTypeAnalysis#check_depth for (self: Object, MClassType) */
1331 void VIRTUAL_rapid_type_analysis__RapidTypeAnalysis__check_depth(val
* self
, val
* p0
) {
1332 rapid_type_analysis__RapidTypeAnalysis__check_depth(self
, p0
);
1335 /* method rapid_type_analysis#RapidTypeAnalysis#add_new for (self: RapidTypeAnalysis, MClassType, MClassType) */
1336 void rapid_type_analysis__RapidTypeAnalysis__add_new(val
* self
, val
* p0
, val
* p1
) {
1337 val
* var_recv
/* var recv: MClassType */;
1338 val
* var_mtype
/* var mtype: MClassType */;
1339 short int var
/* : Bool */;
1340 short int var1
/* : Bool */;
1341 short int var2
/* : Bool */;
1342 val
* var3
/* : HashSet[MClassType] */;
1343 short int var4
/* : Bool */;
1344 val
* var5
/* : HashSet[MClassType] */;
1345 val
* var6
/* : HashSet[MClassType] */;
1346 short int var7
/* : Bool */;
1347 val
* var8
/* : HashSet[MClassType] */;
1348 val
* var9
/* : MClass */;
1349 val
* var_mclass
/* var mclass: MClass */;
1350 val
* var10
/* : HashSet[MClass] */;
1351 short int var11
/* : Bool */;
1352 val
* var12
/* : HashSet[MClass] */;
1353 val
* var13
/* : HashSet[MMethod] */;
1354 val
* var14
/* : Iterator[nullable Object] */;
1355 short int var15
/* : Bool */;
1356 val
* var16
/* : nullable Object */;
1357 val
* var_p
/* var p: MMethod */;
1358 val
* var17
/* : HashSet[MMethodDef] */;
1359 val
* var18
/* : Iterator[nullable Object] */;
1360 short int var19
/* : Bool */;
1361 val
* var20
/* : nullable Object */;
1362 val
* var_p21
/* var p: MMethodDef */;
1363 val
* var23
/* : MModule */;
1364 val
* var24
/* : MType */;
1365 val
* var_bound_mtype
/* var bound_mtype: MClassType */;
1366 val
* var25
/* : MModule */;
1367 val
* var26
/* : Set[MClassDef] */;
1368 val
* var27
/* : Iterator[nullable Object] */;
1369 short int var28
/* : Bool */;
1370 val
* var29
/* : nullable Object */;
1371 val
* var_cd
/* var cd: MClassDef */;
1372 val
* var30
/* : ModelBuilder */;
1373 val
* var31
/* : HashMap[MClassDef, AClassdef] */;
1374 short int var32
/* : Bool */;
1375 short int var33
/* : Bool */;
1376 val
* var35
/* : ModelBuilder */;
1377 val
* var36
/* : HashMap[MClassDef, AClassdef] */;
1378 val
* var37
/* : nullable Object */;
1379 val
* var_nclassdef
/* var nclassdef: AClassdef */;
1380 val
* var38
/* : ANodes[APropdef] */;
1381 val
* var39
/* : Iterator[nullable Object] */;
1382 short int var40
/* : Bool */;
1383 val
* var41
/* : nullable Object */;
1384 val
* var_npropdef
/* var npropdef: APropdef */;
1385 short int var42
/* : Bool */;
1388 short int var43
/* : Bool */;
1389 val
* var45
/* : nullable AExpr */;
1390 val
* var_nexpr
/* var nexpr: nullable AExpr */;
1391 val
* var46
/* : null */;
1392 short int var47
/* : Bool */;
1393 val
* var48
/* : nullable MPropDef */;
1394 val
* var_mpropdef
/* var mpropdef: MAttributeDef */;
1395 val
* var49
/* : RapidTypeVisitor */;
1396 val
* var_v
/* var v: RapidTypeVisitor */;
1399 var
= ((short int (*)(val
*))(var_recv
->class->vft
[COLOR_model__MType__need_anchor
]))(var_recv
) /* need_anchor on <var_recv:MClassType>*/;
1402 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/rapid_type_analysis.nit", 217);
1405 var2
= ((short int (*)(val
*))(var_mtype
->class->vft
[COLOR_model__MType__need_anchor
]))(var_mtype
) /* need_anchor on <var_mtype:MClassType>*/;
1407 var3
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_rapid_type_analysis__RapidTypeAnalysis__live_open_types
]))(self
) /* live_open_types on <self:RapidTypeAnalysis>*/;
1408 var4
= ((short int (*)(val
*, val
*))(var3
->class->vft
[COLOR_abstract_collection__Collection__has
]))(var3
, var_mtype
) /* has on <var3:HashSet[MClassType]>*/;
1413 var5
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_rapid_type_analysis__RapidTypeAnalysis__live_open_types
]))(self
) /* live_open_types on <self:RapidTypeAnalysis>*/;
1414 ((void (*)(val
*, val
*))(var5
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var5
, var_mtype
) /* add on <var5:HashSet[MClassType]>*/;
1416 var6
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_rapid_type_analysis__RapidTypeAnalysis__live_types
]))(self
) /* live_types on <self:RapidTypeAnalysis>*/;
1417 var7
= ((short int (*)(val
*, val
*))(var6
->class->vft
[COLOR_abstract_collection__Collection__has
]))(var6
, var_mtype
) /* has on <var6:HashSet[MClassType]>*/;
1422 var8
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_rapid_type_analysis__RapidTypeAnalysis__live_types
]))(self
) /* live_types on <self:RapidTypeAnalysis>*/;
1423 ((void (*)(val
*, val
*))(var8
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var8
, var_mtype
) /* add on <var8:HashSet[MClassType]>*/;
1425 var9
= ((val
* (*)(val
*))(var_mtype
->class->vft
[COLOR_model__MClassType__mclass
]))(var_mtype
) /* mclass on <var_mtype:MClassType>*/;
1427 var10
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_rapid_type_analysis__RapidTypeAnalysis__live_classes
]))(self
) /* live_classes on <self:RapidTypeAnalysis>*/;
1428 var11
= ((short int (*)(val
*, val
*))(var10
->class->vft
[COLOR_abstract_collection__Collection__has
]))(var10
, var_mclass
) /* has on <var10:HashSet[MClass]>*/;
1433 var12
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_rapid_type_analysis__RapidTypeAnalysis__live_classes
]))(self
) /* live_classes on <self:RapidTypeAnalysis>*/;
1434 ((void (*)(val
*, val
*))(var12
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var12
, var_mclass
) /* add on <var12:HashSet[MClass]>*/;
1435 var13
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_rapid_type_analysis__RapidTypeAnalysis__totry_methods
]))(self
) /* totry_methods on <self:RapidTypeAnalysis>*/;
1436 var14
= ((val
* (*)(val
*))(var13
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var13
) /* iterator on <var13:HashSet[MMethod]>*/;
1438 var15
= ((short int (*)(val
*))(var14
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var14
) /* is_ok on <var14:Iterator[nullable Object]>*/;
1440 var16
= ((val
* (*)(val
*))(var14
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var14
) /* item on <var14:Iterator[nullable Object]>*/;
1442 ((void (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_rapid_type_analysis__RapidTypeAnalysis__try_send
]))(self
, var_mtype
, var_p
) /* try_send on <self:RapidTypeAnalysis>*/;
1443 CONTINUE_label
: (void)0;
1444 ((void (*)(val
*))(var14
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var14
) /* next on <var14:Iterator[nullable Object]>*/;
1446 BREAK_label
: (void)0;
1447 var17
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_rapid_type_analysis__RapidTypeAnalysis__live_super_sends
]))(self
) /* live_super_sends on <self:RapidTypeAnalysis>*/;
1448 var18
= ((val
* (*)(val
*))(var17
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var17
) /* iterator on <var17:HashSet[MMethodDef]>*/;
1450 var19
= ((short int (*)(val
*))(var18
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var18
) /* is_ok on <var18:Iterator[nullable Object]>*/;
1452 var20
= ((val
* (*)(val
*))(var18
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var18
) /* item on <var18:Iterator[nullable Object]>*/;
1454 ((void (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_rapid_type_analysis__RapidTypeAnalysis__try_super_send
]))(self
, var_mtype
, var_p21
) /* try_super_send on <self:RapidTypeAnalysis>*/;
1455 CONTINUE_label22
: (void)0;
1456 ((void (*)(val
*))(var18
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var18
) /* next on <var18:Iterator[nullable Object]>*/;
1458 BREAK_label22
: (void)0;
1459 var23
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_rapid_type_analysis__RapidTypeAnalysis__mainmodule
]))(self
) /* mainmodule on <self:RapidTypeAnalysis>*/;
1460 var24
= ((val
* (*)(val
*, val
*, val
*))(var_mtype
->class->vft
[COLOR_model__MType__anchor_to
]))(var_mtype
, var23
, var_recv
) /* anchor_to on <var_mtype:MClassType>*/;
1461 var_bound_mtype
= var24
;
1462 var25
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_rapid_type_analysis__RapidTypeAnalysis__mainmodule
]))(self
) /* mainmodule on <self:RapidTypeAnalysis>*/;
1463 var26
= ((val
* (*)(val
*, val
*))(var_bound_mtype
->class->vft
[COLOR_model__MType__collect_mclassdefs
]))(var_bound_mtype
, var25
) /* collect_mclassdefs on <var_bound_mtype:MClassType>*/;
1464 var27
= ((val
* (*)(val
*))(var26
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var26
) /* iterator on <var26:Set[MClassDef]>*/;
1466 var28
= ((short int (*)(val
*))(var27
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var27
) /* is_ok on <var27:Iterator[nullable Object]>*/;
1468 var29
= ((val
* (*)(val
*))(var27
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var27
) /* item on <var27:Iterator[nullable Object]>*/;
1470 var30
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_rapid_type_analysis__RapidTypeAnalysis__modelbuilder
]))(self
) /* modelbuilder on <self:RapidTypeAnalysis>*/;
1471 var31
= ((val
* (*)(val
*))(var30
->class->vft
[COLOR_modelize_class__ModelBuilder__mclassdef2nclassdef
]))(var30
) /* mclassdef2nclassdef on <var30:ModelBuilder>*/;
1472 var32
= ((short int (*)(val
*, val
*))(var31
->class->vft
[COLOR_abstract_collection__MapRead__has_key
]))(var31
, var_cd
) /* has_key on <var31:HashMap[MClassDef, AClassdef]>*/;
1475 goto CONTINUE_label34
;
1478 var35
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_rapid_type_analysis__RapidTypeAnalysis__modelbuilder
]))(self
) /* modelbuilder on <self:RapidTypeAnalysis>*/;
1479 var36
= ((val
* (*)(val
*))(var35
->class->vft
[COLOR_modelize_class__ModelBuilder__mclassdef2nclassdef
]))(var35
) /* mclassdef2nclassdef on <var35:ModelBuilder>*/;
1480 var37
= ((val
* (*)(val
*, val
*))(var36
->class->vft
[COLOR_abstract_collection__MapRead___91d_93d
]))(var36
, var_cd
) /* [] on <var36:HashMap[MClassDef, AClassdef]>*/;
1481 var_nclassdef
= var37
;
1482 var38
= ((val
* (*)(val
*))(var_nclassdef
->class->vft
[COLOR_parser_nodes__AClassdef__n_propdefs
]))(var_nclassdef
) /* n_propdefs on <var_nclassdef:AClassdef>*/;
1483 var39
= ((val
* (*)(val
*))(var38
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var38
) /* iterator on <var38:ANodes[APropdef]>*/;
1485 var40
= ((short int (*)(val
*))(var39
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var39
) /* is_ok on <var39:Iterator[nullable Object]>*/;
1487 var41
= ((val
* (*)(val
*))(var39
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var39
) /* item on <var39:Iterator[nullable Object]>*/;
1488 var_npropdef
= var41
;
1489 /* <var_npropdef:APropdef> isa AAttrPropdef */
1490 cltype
= type_parser_nodes__AAttrPropdef
.color
;
1491 idtype
= type_parser_nodes__AAttrPropdef
.id
;
1492 if(cltype
>= var_npropdef
->type
->table_size
) {
1495 var42
= var_npropdef
->type
->type_table
[cltype
] == idtype
;
1499 goto CONTINUE_label44
;
1502 var45
= ((val
* (*)(val
*))(var_npropdef
->class->vft
[COLOR_parser_nodes__AAttrPropdef__n_expr
]))(var_npropdef
) /* n_expr on <var_npropdef:APropdef(AAttrPropdef)>*/;
1505 if (var_nexpr
== NULL
) {
1506 var47
= 1; /* is null */
1508 var47
= 0; /* arg is null but recv is not */
1511 goto CONTINUE_label44
;
1514 var48
= ((val
* (*)(val
*))(var_npropdef
->class->vft
[COLOR_modelize_property__APropdef__mpropdef
]))(var_npropdef
) /* mpropdef on <var_npropdef:APropdef(AAttrPropdef)>*/;
1515 if (var48
== NULL
) {
1516 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/rapid_type_analysis.nit", 242);
1519 var_mpropdef
= var48
;
1520 var49
= NEW_rapid_type_analysis__RapidTypeVisitor(&type_rapid_type_analysis__RapidTypeVisitor
);
1521 ((void (*)(val
*, val
*, val
*, val
*))(var49
->class->vft
[COLOR_rapid_type_analysis__RapidTypeVisitor__init
]))(var49
, self
, var_bound_mtype
, var_mpropdef
) /* init on <var49:RapidTypeVisitor>*/;
1522 CHECK_NEW_rapid_type_analysis__RapidTypeVisitor(var49
);
1524 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_parser_nodes__Visitor__enter_visit
]))(var_v
, var_nexpr
) /* enter_visit on <var_v:RapidTypeVisitor>*/;
1525 CONTINUE_label44
: (void)0;
1526 ((void (*)(val
*))(var39
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var39
) /* next on <var39:Iterator[nullable Object]>*/;
1528 BREAK_label44
: (void)0;
1529 CONTINUE_label34
: (void)0;
1530 ((void (*)(val
*))(var27
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var27
) /* next on <var27:Iterator[nullable Object]>*/;
1532 BREAK_label34
: (void)0;
1535 /* method rapid_type_analysis#RapidTypeAnalysis#add_new for (self: Object, MClassType, MClassType) */
1536 void VIRTUAL_rapid_type_analysis__RapidTypeAnalysis__add_new(val
* self
, val
* p0
, val
* p1
) {
1537 rapid_type_analysis__RapidTypeAnalysis__add_new(self
, p0
, p1
);
1540 /* method rapid_type_analysis#RapidTypeAnalysis#add_cast for (self: RapidTypeAnalysis, MType) */
1541 void rapid_type_analysis__RapidTypeAnalysis__add_cast(val
* self
, val
* p0
) {
1542 val
* var_mtype
/* var mtype: MType */;
1543 short int var
/* : Bool */;
1546 val
* var1
/* : MType */;
1547 short int var2
/* : Bool */;
1548 val
* var3
/* : HashSet[MType] */;
1549 short int var4
/* : Bool */;
1552 val
* var7
/* : HashSet[MClassType] */;
1554 /* <var_mtype:MType> isa MNullableType */
1555 cltype
= type_model__MNullableType
.color
;
1556 idtype
= type_model__MNullableType
.id
;
1557 if(cltype
>= var_mtype
->type
->table_size
) {
1560 var
= var_mtype
->type
->type_table
[cltype
] == idtype
;
1563 var1
= ((val
* (*)(val
*))(var_mtype
->class->vft
[COLOR_model__MNullableType__mtype
]))(var_mtype
) /* mtype on <var_mtype:MType(MNullableType)>*/;
1567 var2
= ((short int (*)(val
*))(var_mtype
->class->vft
[COLOR_model__MType__need_anchor
]))(var_mtype
) /* need_anchor on <var_mtype:MType>*/;
1569 var3
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_rapid_type_analysis__RapidTypeAnalysis__live_open_cast_types
]))(self
) /* live_open_cast_types on <self:RapidTypeAnalysis>*/;
1570 ((void (*)(val
*, val
*))(var3
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var3
, var_mtype
) /* add on <var3:HashSet[MType]>*/;
1572 /* <var_mtype:MType> isa MClassType */
1573 cltype5
= type_model__MClassType
.color
;
1574 idtype6
= type_model__MClassType
.id
;
1575 if(cltype5
>= var_mtype
->type
->table_size
) {
1578 var4
= var_mtype
->type
->type_table
[cltype5
] == idtype6
;
1581 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/rapid_type_analysis.nit", 256);
1584 var7
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_rapid_type_analysis__RapidTypeAnalysis__live_cast_types
]))(self
) /* live_cast_types on <self:RapidTypeAnalysis>*/;
1585 ((void (*)(val
*, val
*))(var7
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var7
, var_mtype
) /* add on <var7:HashSet[MClassType]>*/;
1589 /* method rapid_type_analysis#RapidTypeAnalysis#add_cast for (self: Object, MType) */
1590 void VIRTUAL_rapid_type_analysis__RapidTypeAnalysis__add_cast(val
* self
, val
* p0
) {
1591 rapid_type_analysis__RapidTypeAnalysis__add_cast(self
, p0
);
1594 /* method rapid_type_analysis#RapidTypeAnalysis#try_send for (self: RapidTypeAnalysis, MClassType, MMethod) */
1595 void rapid_type_analysis__RapidTypeAnalysis__try_send(val
* self
, val
* p0
, val
* p1
) {
1596 val
* var_recv
/* var recv: MClassType */;
1597 val
* var_mproperty
/* var mproperty: MMethod */;
1598 val
* var
/* : MClass */;
1599 val
* var1
/* : MClassDef */;
1600 val
* var2
/* : MClassType */;
1601 val
* var3
/* : MModule */;
1602 short int var4
/* : Bool */;
1603 short int var5
/* : Bool */;
1604 val
* var6
/* : MModule */;
1605 val
* var7
/* : MPropDef */;
1606 val
* var_d
/* var d: MMethodDef */;
1609 var
= ((val
* (*)(val
*))(var_recv
->class->vft
[COLOR_model__MClassType__mclass
]))(var_recv
) /* mclass on <var_recv:MClassType>*/;
1610 var1
= ((val
* (*)(val
*))(var
->class->vft
[COLOR_model__MClass__intro
]))(var
) /* intro on <var:MClass>*/;
1611 var2
= ((val
* (*)(val
*))(var1
->class->vft
[COLOR_model__MClassDef__bound_mtype
]))(var1
) /* bound_mtype on <var1:MClassDef>*/;
1613 var3
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_rapid_type_analysis__RapidTypeAnalysis__mainmodule
]))(self
) /* mainmodule on <self:RapidTypeAnalysis>*/;
1614 var4
= ((short int (*)(val
*, val
*, val
*))(var_recv
->class->vft
[COLOR_model__MType__has_mproperty
]))(var_recv
, var3
, var_mproperty
) /* has_mproperty on <var_recv:MClassType>*/;
1620 var6
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_rapid_type_analysis__RapidTypeAnalysis__mainmodule
]))(self
) /* mainmodule on <self:RapidTypeAnalysis>*/;
1621 var7
= ((val
* (*)(val
*, val
*, val
*))(var_mproperty
->class->vft
[COLOR_model__MProperty__lookup_first_definition
]))(var_mproperty
, var6
, var_recv
) /* lookup_first_definition on <var_mproperty:MMethod>*/;
1623 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_rapid_type_analysis__RapidTypeAnalysis__add_call
]))(self
, var_d
) /* add_call on <self:RapidTypeAnalysis>*/;
1626 /* method rapid_type_analysis#RapidTypeAnalysis#try_send for (self: Object, MClassType, MMethod) */
1627 void VIRTUAL_rapid_type_analysis__RapidTypeAnalysis__try_send(val
* self
, val
* p0
, val
* p1
) {
1628 rapid_type_analysis__RapidTypeAnalysis__try_send(self
, p0
, p1
);
1631 /* method rapid_type_analysis#RapidTypeAnalysis#add_call for (self: RapidTypeAnalysis, MMethodDef) */
1632 void rapid_type_analysis__RapidTypeAnalysis__add_call(val
* self
, val
* p0
) {
1633 val
* var_mpropdef
/* var mpropdef: MMethodDef */;
1634 val
* var
/* : HashSet[MMethodDef] */;
1635 short int var1
/* : Bool */;
1636 val
* var2
/* : HashSet[MMethodDef] */;
1637 val
* var3
/* : List[MMethodDef] */;
1638 val
* var4
/* : MProperty */;
1639 val
* var_mproperty
/* var mproperty: MMethod */;
1640 val
* var5
/* : Array[MPropDef] */;
1641 long var6
/* : Int */;
1642 long var7
/* : Int */;
1643 short int var8
/* : Bool */;
1644 short int var10
/* : Bool */;
1647 short int var11
/* : Bool */;
1648 val
* var12
/* : Array[MPropDef] */;
1649 val
* var13
/* : Iterator[nullable Object] */;
1650 short int var14
/* : Bool */;
1651 val
* var15
/* : nullable Object */;
1652 val
* var_d
/* var d: MMethodDef */;
1653 short int var16
/* : Bool */;
1654 val
* var17
/* : HashSet[MMethodDef] */;
1655 short int var18
/* : Bool */;
1656 short int var19
/* : Bool */;
1657 val
* var20
/* : HashSet[MMethod] */;
1658 val
* var21
/* : MProperty */;
1660 var
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_rapid_type_analysis__RapidTypeAnalysis__live_methoddefs
]))(self
) /* live_methoddefs on <self:RapidTypeAnalysis>*/;
1661 var1
= ((short int (*)(val
*, val
*))(var
->class->vft
[COLOR_abstract_collection__Collection__has
]))(var
, var_mpropdef
) /* has on <var:HashSet[MMethodDef]>*/;
1666 var2
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_rapid_type_analysis__RapidTypeAnalysis__live_methoddefs
]))(self
) /* live_methoddefs on <self:RapidTypeAnalysis>*/;
1667 ((void (*)(val
*, val
*))(var2
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var2
, var_mpropdef
) /* add on <var2:HashSet[MMethodDef]>*/;
1668 var3
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_rapid_type_analysis__RapidTypeAnalysis__todo
]))(self
) /* todo on <self:RapidTypeAnalysis>*/;
1669 ((void (*)(val
*, val
*))(var3
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var3
, var_mpropdef
) /* add on <var3:List[MMethodDef]>*/;
1670 var4
= ((val
* (*)(val
*))(var_mpropdef
->class->vft
[COLOR_model__MPropDef__mproperty
]))(var_mpropdef
) /* mproperty on <var_mpropdef:MMethodDef>*/;
1671 var_mproperty
= var4
;
1672 var5
= ((val
* (*)(val
*))(var_mproperty
->class->vft
[COLOR_model__MProperty__mpropdefs
]))(var_mproperty
) /* mpropdefs on <var_mproperty:MMethod>*/;
1673 var6
= ((long (*)(val
*))(var5
->class->vft
[COLOR_abstract_collection__Collection__length
]))(var5
) /* length on <var5:Array[MPropDef](Array[MMethodDef])>*/;
1675 { /* Inline kernel#Int#<= (var6,var7) */
1676 /* Covariant cast for argument 0 (i) <var7:Int> isa OTHER */
1677 /* <var7:Int> isa OTHER */
1678 var10
= 1; /* easy <var7:Int> isa OTHER*/
1680 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Cast failed", "lib/standard/kernel.nit", 256);
1683 var11
= var6
<= var7
;
1692 var12
= ((val
* (*)(val
*))(var_mproperty
->class->vft
[COLOR_model__MProperty__mpropdefs
]))(var_mproperty
) /* mpropdefs on <var_mproperty:MMethod>*/;
1693 var13
= ((val
* (*)(val
*))(var12
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var12
) /* iterator on <var12:Array[MPropDef](Array[MMethodDef])>*/;
1695 var14
= ((short int (*)(val
*))(var13
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var13
) /* is_ok on <var13:Iterator[nullable Object]>*/;
1697 var15
= ((val
* (*)(val
*))(var13
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var13
) /* item on <var13:Iterator[nullable Object]>*/;
1699 var16
= ((short int (*)(val
*))(var_d
->class->vft
[COLOR_model__MMethodDef__is_abstract
]))(var_d
) /* is_abstract on <var_d:MMethodDef>*/;
1701 goto CONTINUE_label
;
1704 var17
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_rapid_type_analysis__RapidTypeAnalysis__live_methoddefs
]))(self
) /* live_methoddefs on <self:RapidTypeAnalysis>*/;
1705 var18
= ((short int (*)(val
*, val
*))(var17
->class->vft
[COLOR_abstract_collection__Collection__has
]))(var17
, var_d
) /* has on <var17:HashSet[MMethodDef]>*/;
1711 CONTINUE_label
: (void)0;
1712 ((void (*)(val
*))(var13
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var13
) /* next on <var13:Iterator[nullable Object]>*/;
1714 BREAK_label
: (void)0;
1715 var20
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_rapid_type_analysis__RapidTypeAnalysis__totry_methods
]))(self
) /* totry_methods on <self:RapidTypeAnalysis>*/;
1716 var21
= ((val
* (*)(val
*))(var_mpropdef
->class->vft
[COLOR_model__MPropDef__mproperty
]))(var_mpropdef
) /* mproperty on <var_mpropdef:MMethodDef>*/;
1717 ((void (*)(val
*, val
*))(var20
->class->vft
[COLOR_abstract_collection__RemovableCollection__remove
]))(var20
, var21
) /* remove on <var20:HashSet[MMethod]>*/;
1720 /* method rapid_type_analysis#RapidTypeAnalysis#add_call for (self: Object, MMethodDef) */
1721 void VIRTUAL_rapid_type_analysis__RapidTypeAnalysis__add_call(val
* self
, val
* p0
) {
1722 rapid_type_analysis__RapidTypeAnalysis__add_call(self
, p0
);
1725 /* method rapid_type_analysis#RapidTypeAnalysis#add_send for (self: RapidTypeAnalysis, MType, MMethod) */
1726 void rapid_type_analysis__RapidTypeAnalysis__add_send(val
* self
, val
* p0
, val
* p1
) {
1727 val
* var_recv
/* var recv: MType */;
1728 val
* var_mproperty
/* var mproperty: MMethod */;
1729 val
* var
/* : HashSet[MMethod] */;
1730 short int var1
/* : Bool */;
1731 val
* var2
/* : HashSet[MMethod] */;
1732 val
* var3
/* : Array[MPropDef] */;
1733 long var4
/* : Int */;
1734 long var5
/* : Int */;
1735 short int var6
/* : Bool */;
1736 short int var8
/* : Bool */;
1737 val
* var9
/* : Array[MPropDef] */;
1738 val
* var10
/* : nullable Object */;
1739 val
* var_d
/* var d: MMethodDef */;
1740 val
* var11
/* : HashSet[MMethod] */;
1741 val
* var12
/* : HashSet[MClass] */;
1742 val
* var13
/* : Iterator[nullable Object] */;
1743 short int var14
/* : Bool */;
1744 val
* var15
/* : nullable Object */;
1745 val
* var_c
/* var c: MClass */;
1746 val
* var16
/* : MClassDef */;
1747 val
* var17
/* : MClassType */;
1750 var
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_rapid_type_analysis__RapidTypeAnalysis__live_methods
]))(self
) /* live_methods on <self:RapidTypeAnalysis>*/;
1751 var1
= ((short int (*)(val
*, val
*))(var
->class->vft
[COLOR_abstract_collection__Collection__has
]))(var
, var_mproperty
) /* has on <var:HashSet[MMethod]>*/;
1756 var2
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_rapid_type_analysis__RapidTypeAnalysis__live_methods
]))(self
) /* live_methods on <self:RapidTypeAnalysis>*/;
1757 ((void (*)(val
*, val
*))(var2
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var2
, var_mproperty
) /* add on <var2:HashSet[MMethod]>*/;
1758 var3
= ((val
* (*)(val
*))(var_mproperty
->class->vft
[COLOR_model__MProperty__mpropdefs
]))(var_mproperty
) /* mpropdefs on <var_mproperty:MMethod>*/;
1759 var4
= ((long (*)(val
*))(var3
->class->vft
[COLOR_abstract_collection__Collection__length
]))(var3
) /* length on <var3:Array[MPropDef](Array[MMethodDef])>*/;
1761 { /* Inline kernel#Int#== (var4,var5) */
1762 var8
= var4
== var5
;
1768 var9
= ((val
* (*)(val
*))(var_mproperty
->class->vft
[COLOR_model__MProperty__mpropdefs
]))(var_mproperty
) /* mpropdefs on <var_mproperty:MMethod>*/;
1769 var10
= ((val
* (*)(val
*))(var9
->class->vft
[COLOR_abstract_collection__Collection__first
]))(var9
) /* first on <var9:Array[MPropDef](Array[MMethodDef])>*/;
1771 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_rapid_type_analysis__RapidTypeAnalysis__add_call
]))(self
, var_d
) /* add_call on <self:RapidTypeAnalysis>*/;
1775 var11
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_rapid_type_analysis__RapidTypeAnalysis__totry_methods
]))(self
) /* totry_methods on <self:RapidTypeAnalysis>*/;
1776 ((void (*)(val
*, val
*))(var11
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var11
, var_mproperty
) /* add on <var11:HashSet[MMethod]>*/;
1777 var12
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_rapid_type_analysis__RapidTypeAnalysis__live_classes
]))(self
) /* live_classes on <self:RapidTypeAnalysis>*/;
1778 var13
= ((val
* (*)(val
*))(var12
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var12
) /* iterator on <var12:HashSet[MClass]>*/;
1780 var14
= ((short int (*)(val
*))(var13
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var13
) /* is_ok on <var13:Iterator[nullable Object]>*/;
1782 var15
= ((val
* (*)(val
*))(var13
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var13
) /* item on <var13:Iterator[nullable Object]>*/;
1784 var16
= ((val
* (*)(val
*))(var_c
->class->vft
[COLOR_model__MClass__intro
]))(var_c
) /* intro on <var_c:MClass>*/;
1785 var17
= ((val
* (*)(val
*))(var16
->class->vft
[COLOR_model__MClassDef__bound_mtype
]))(var16
) /* bound_mtype on <var16:MClassDef>*/;
1786 ((void (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_rapid_type_analysis__RapidTypeAnalysis__try_send
]))(self
, var17
, var_mproperty
) /* try_send on <self:RapidTypeAnalysis>*/;
1787 CONTINUE_label
: (void)0;
1788 ((void (*)(val
*))(var13
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var13
) /* next on <var13:Iterator[nullable Object]>*/;
1790 BREAK_label
: (void)0;
1793 /* method rapid_type_analysis#RapidTypeAnalysis#add_send for (self: Object, MType, MMethod) */
1794 void VIRTUAL_rapid_type_analysis__RapidTypeAnalysis__add_send(val
* self
, val
* p0
, val
* p1
) {
1795 rapid_type_analysis__RapidTypeAnalysis__add_send(self
, p0
, p1
);
1798 /* method rapid_type_analysis#RapidTypeAnalysis#try_super_send for (self: RapidTypeAnalysis, MClassType, MMethodDef) */
1799 void rapid_type_analysis__RapidTypeAnalysis__try_super_send(val
* self
, val
* p0
, val
* p1
) {
1800 val
* var_recv
/* var recv: MClassType */;
1801 val
* var_mpropdef
/* var mpropdef: MMethodDef */;
1802 val
* var
/* : MClass */;
1803 val
* var1
/* : MClassDef */;
1804 val
* var2
/* : MClassType */;
1805 val
* var3
/* : MModule */;
1806 val
* var4
/* : Set[MClassDef] */;
1807 val
* var5
/* : MClassDef */;
1808 short int var6
/* : Bool */;
1809 short int var7
/* : Bool */;
1810 val
* var8
/* : MModule */;
1811 val
* var9
/* : MPropDef */;
1812 val
* var_d
/* var d: MMethodDef */;
1815 var
= ((val
* (*)(val
*))(var_recv
->class->vft
[COLOR_model__MClassType__mclass
]))(var_recv
) /* mclass on <var_recv:MClassType>*/;
1816 var1
= ((val
* (*)(val
*))(var
->class->vft
[COLOR_model__MClass__intro
]))(var
) /* intro on <var:MClass>*/;
1817 var2
= ((val
* (*)(val
*))(var1
->class->vft
[COLOR_model__MClassDef__bound_mtype
]))(var1
) /* bound_mtype on <var1:MClassDef>*/;
1819 var3
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_rapid_type_analysis__RapidTypeAnalysis__mainmodule
]))(self
) /* mainmodule on <self:RapidTypeAnalysis>*/;
1820 var4
= ((val
* (*)(val
*, val
*))(var_recv
->class->vft
[COLOR_model__MType__collect_mclassdefs
]))(var_recv
, var3
) /* collect_mclassdefs on <var_recv:MClassType>*/;
1821 var5
= ((val
* (*)(val
*))(var_mpropdef
->class->vft
[COLOR_model__MPropDef__mclassdef
]))(var_mpropdef
) /* mclassdef on <var_mpropdef:MMethodDef>*/;
1822 var6
= ((short int (*)(val
*, val
*))(var4
->class->vft
[COLOR_abstract_collection__Collection__has
]))(var4
, var5
) /* has on <var4:Set[MClassDef]>*/;
1828 var8
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_rapid_type_analysis__RapidTypeAnalysis__mainmodule
]))(self
) /* mainmodule on <self:RapidTypeAnalysis>*/;
1829 var9
= ((val
* (*)(val
*, val
*, val
*))(var_mpropdef
->class->vft
[COLOR_model__MPropDef__lookup_next_definition
]))(var_mpropdef
, var8
, var_recv
) /* lookup_next_definition on <var_mpropdef:MMethodDef>*/;
1831 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_rapid_type_analysis__RapidTypeAnalysis__add_call
]))(self
, var_d
) /* add_call on <self:RapidTypeAnalysis>*/;
1834 /* method rapid_type_analysis#RapidTypeAnalysis#try_super_send for (self: Object, MClassType, MMethodDef) */
1835 void VIRTUAL_rapid_type_analysis__RapidTypeAnalysis__try_super_send(val
* self
, val
* p0
, val
* p1
) {
1836 rapid_type_analysis__RapidTypeAnalysis__try_super_send(self
, p0
, p1
);
1839 /* method rapid_type_analysis#RapidTypeAnalysis#add_super_send for (self: RapidTypeAnalysis, MType, MMethodDef) */
1840 void rapid_type_analysis__RapidTypeAnalysis__add_super_send(val
* self
, val
* p0
, val
* p1
) {
1841 val
* var_recv
/* var recv: MType */;
1842 val
* var_mpropdef
/* var mpropdef: MMethodDef */;
1843 val
* var
/* : HashSet[MMethodDef] */;
1844 short int var1
/* : Bool */;
1845 val
* var2
/* : HashSet[MMethodDef] */;
1846 val
* var3
/* : HashSet[MClassType] */;
1847 val
* var4
/* : Iterator[nullable Object] */;
1848 short int var5
/* : Bool */;
1849 val
* var6
/* : nullable Object */;
1850 val
* var_t
/* var t: MClassType */;
1853 var
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_rapid_type_analysis__RapidTypeAnalysis__live_super_sends
]))(self
) /* live_super_sends on <self:RapidTypeAnalysis>*/;
1854 var1
= ((short int (*)(val
*, val
*))(var
->class->vft
[COLOR_abstract_collection__Collection__has
]))(var
, var_mpropdef
) /* has on <var:HashSet[MMethodDef]>*/;
1859 var2
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_rapid_type_analysis__RapidTypeAnalysis__live_super_sends
]))(self
) /* live_super_sends on <self:RapidTypeAnalysis>*/;
1860 ((void (*)(val
*, val
*))(var2
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var2
, var_mpropdef
) /* add on <var2:HashSet[MMethodDef]>*/;
1861 var3
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_rapid_type_analysis__RapidTypeAnalysis__live_types
]))(self
) /* live_types on <self:RapidTypeAnalysis>*/;
1862 var4
= ((val
* (*)(val
*))(var3
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var3
) /* iterator on <var3:HashSet[MClassType]>*/;
1864 var5
= ((short int (*)(val
*))(var4
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var4
) /* is_ok on <var4:Iterator[nullable Object]>*/;
1866 var6
= ((val
* (*)(val
*))(var4
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var4
) /* item on <var4:Iterator[nullable Object]>*/;
1868 ((void (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_rapid_type_analysis__RapidTypeAnalysis__try_super_send
]))(self
, var_t
, var_mpropdef
) /* try_super_send on <self:RapidTypeAnalysis>*/;
1869 CONTINUE_label
: (void)0;
1870 ((void (*)(val
*))(var4
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var4
) /* next on <var4:Iterator[nullable Object]>*/;
1872 BREAK_label
: (void)0;
1875 /* method rapid_type_analysis#RapidTypeAnalysis#add_super_send for (self: Object, MType, MMethodDef) */
1876 void VIRTUAL_rapid_type_analysis__RapidTypeAnalysis__add_super_send(val
* self
, val
* p0
, val
* p1
) {
1877 rapid_type_analysis__RapidTypeAnalysis__add_super_send(self
, p0
, p1
);
1880 /* method rapid_type_analysis#RapidTypeAnalysis#init for (self: RapidTypeAnalysis, ModelBuilder, MModule) */
1881 void rapid_type_analysis__RapidTypeAnalysis__init(val
* self
, val
* p0
, val
* p1
) {
1882 self
->attrs
[COLOR_rapid_type_analysis__RapidTypeAnalysis___64dmodelbuilder
].val
= p0
; /* @modelbuilder on <self:RapidTypeAnalysis> */
1883 self
->attrs
[COLOR_rapid_type_analysis__RapidTypeAnalysis___64dmainmodule
].val
= p1
; /* @mainmodule on <self:RapidTypeAnalysis> */
1886 /* method rapid_type_analysis#RapidTypeAnalysis#init for (self: Object, ModelBuilder, MModule) */
1887 void VIRTUAL_rapid_type_analysis__RapidTypeAnalysis__init(val
* self
, val
* p0
, val
* p1
) {
1888 rapid_type_analysis__RapidTypeAnalysis__init(self
, p0
, p1
);
1891 /* method rapid_type_analysis#RapidTypeVisitor#analysis for (self: RapidTypeVisitor): RapidTypeAnalysis */
1892 val
* rapid_type_analysis__RapidTypeVisitor__analysis(val
* self
) {
1893 val
* var
/* : RapidTypeAnalysis */;
1894 val
* var1
/* : RapidTypeAnalysis */;
1895 var1
= self
->attrs
[COLOR_rapid_type_analysis__RapidTypeVisitor___64danalysis
].val
; /* @analysis on <self:RapidTypeVisitor> */
1897 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute @analysis", "src/rapid_type_analysis.nit", 327);
1904 /* method rapid_type_analysis#RapidTypeVisitor#analysis for (self: Object): RapidTypeAnalysis */
1905 val
* VIRTUAL_rapid_type_analysis__RapidTypeVisitor__analysis(val
* self
) {
1906 val
* var
/* : RapidTypeAnalysis */;
1907 val
* var1
/* : RapidTypeAnalysis */;
1908 var1
= rapid_type_analysis__RapidTypeVisitor__analysis(self
);
1913 /* method rapid_type_analysis#RapidTypeVisitor#analysis= for (self: RapidTypeVisitor, RapidTypeAnalysis) */
1914 void rapid_type_analysis__RapidTypeVisitor__analysis_61d(val
* self
, val
* p0
) {
1915 self
->attrs
[COLOR_rapid_type_analysis__RapidTypeVisitor___64danalysis
].val
= p0
; /* @analysis on <self:RapidTypeVisitor> */
1918 /* method rapid_type_analysis#RapidTypeVisitor#analysis= for (self: Object, RapidTypeAnalysis) */
1919 void VIRTUAL_rapid_type_analysis__RapidTypeVisitor__analysis_61d(val
* self
, val
* p0
) {
1920 rapid_type_analysis__RapidTypeVisitor__analysis_61d(self
, p0
);
1923 /* method rapid_type_analysis#RapidTypeVisitor#receiver for (self: RapidTypeVisitor): MClassType */
1924 val
* rapid_type_analysis__RapidTypeVisitor__receiver(val
* self
) {
1925 val
* var
/* : MClassType */;
1926 val
* var1
/* : MClassType */;
1927 var1
= self
->attrs
[COLOR_rapid_type_analysis__RapidTypeVisitor___64dreceiver
].val
; /* @receiver on <self:RapidTypeVisitor> */
1929 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute @receiver", "src/rapid_type_analysis.nit", 328);
1936 /* method rapid_type_analysis#RapidTypeVisitor#receiver for (self: Object): MClassType */
1937 val
* VIRTUAL_rapid_type_analysis__RapidTypeVisitor__receiver(val
* self
) {
1938 val
* var
/* : MClassType */;
1939 val
* var1
/* : MClassType */;
1940 var1
= rapid_type_analysis__RapidTypeVisitor__receiver(self
);
1945 /* method rapid_type_analysis#RapidTypeVisitor#receiver= for (self: RapidTypeVisitor, MClassType) */
1946 void rapid_type_analysis__RapidTypeVisitor__receiver_61d(val
* self
, val
* p0
) {
1947 self
->attrs
[COLOR_rapid_type_analysis__RapidTypeVisitor___64dreceiver
].val
= p0
; /* @receiver on <self:RapidTypeVisitor> */
1950 /* method rapid_type_analysis#RapidTypeVisitor#receiver= for (self: Object, MClassType) */
1951 void VIRTUAL_rapid_type_analysis__RapidTypeVisitor__receiver_61d(val
* self
, val
* p0
) {
1952 rapid_type_analysis__RapidTypeVisitor__receiver_61d(self
, p0
);
1955 /* method rapid_type_analysis#RapidTypeVisitor#mpropdef for (self: RapidTypeVisitor): MPropDef */
1956 val
* rapid_type_analysis__RapidTypeVisitor__mpropdef(val
* self
) {
1957 val
* var
/* : MPropDef */;
1958 val
* var1
/* : MPropDef */;
1959 var1
= self
->attrs
[COLOR_rapid_type_analysis__RapidTypeVisitor___64dmpropdef
].val
; /* @mpropdef on <self:RapidTypeVisitor> */
1961 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute @mpropdef", "src/rapid_type_analysis.nit", 329);
1968 /* method rapid_type_analysis#RapidTypeVisitor#mpropdef for (self: Object): MPropDef */
1969 val
* VIRTUAL_rapid_type_analysis__RapidTypeVisitor__mpropdef(val
* self
) {
1970 val
* var
/* : MPropDef */;
1971 val
* var1
/* : MPropDef */;
1972 var1
= rapid_type_analysis__RapidTypeVisitor__mpropdef(self
);
1977 /* method rapid_type_analysis#RapidTypeVisitor#mpropdef= for (self: RapidTypeVisitor, MPropDef) */
1978 void rapid_type_analysis__RapidTypeVisitor__mpropdef_61d(val
* self
, val
* p0
) {
1979 self
->attrs
[COLOR_rapid_type_analysis__RapidTypeVisitor___64dmpropdef
].val
= p0
; /* @mpropdef on <self:RapidTypeVisitor> */
1982 /* method rapid_type_analysis#RapidTypeVisitor#mpropdef= for (self: Object, MPropDef) */
1983 void VIRTUAL_rapid_type_analysis__RapidTypeVisitor__mpropdef_61d(val
* self
, val
* p0
) {
1984 rapid_type_analysis__RapidTypeVisitor__mpropdef_61d(self
, p0
);
1987 /* method rapid_type_analysis#RapidTypeVisitor#init for (self: RapidTypeVisitor, RapidTypeAnalysis, MClassType, MPropDef) */
1988 void rapid_type_analysis__RapidTypeVisitor__init(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
1989 val
* var_analysis
/* var analysis: RapidTypeAnalysis */;
1990 val
* var_receiver
/* var receiver: MClassType */;
1991 val
* var_mpropdef
/* var mpropdef: MPropDef */;
1992 short int var
/* : Bool */;
1993 short int var1
/* : Bool */;
1997 ((void (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__Visitor__init
]))(self
) /* init on <self:RapidTypeVisitor>*/;
1998 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_rapid_type_analysis__RapidTypeVisitor__analysis_61d
]))(self
, var_analysis
) /* analysis= on <self:RapidTypeVisitor>*/;
1999 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_rapid_type_analysis__RapidTypeVisitor__receiver_61d
]))(self
, var_receiver
) /* receiver= on <self:RapidTypeVisitor>*/;
2000 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_rapid_type_analysis__RapidTypeVisitor__mpropdef_61d
]))(self
, var_mpropdef
) /* mpropdef= on <self:RapidTypeVisitor>*/;
2001 var
= ((short int (*)(val
*))(var_receiver
->class->vft
[COLOR_model__MType__need_anchor
]))(var_receiver
) /* need_anchor on <var_receiver:MClassType>*/;
2004 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/rapid_type_analysis.nit", 336);
2009 /* method rapid_type_analysis#RapidTypeVisitor#init for (self: Object, RapidTypeAnalysis, MClassType, MPropDef) */
2010 void VIRTUAL_rapid_type_analysis__RapidTypeVisitor__init(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
2011 rapid_type_analysis__RapidTypeVisitor__init(self
, p0
, p1
, p2
);
2014 /* method rapid_type_analysis#RapidTypeVisitor#visit for (self: RapidTypeVisitor, ANode) */
2015 void rapid_type_analysis__RapidTypeVisitor__visit(val
* self
, val
* p0
) {
2016 val
* var_n
/* var n: ANode */;
2017 short int var
/* : Bool */;
2020 val
* var1
/* : nullable MType */;
2021 val
* var_implicit_cast_to
/* var implicit_cast_to: nullable MType */;
2022 val
* var2
/* : null */;
2023 short int var3
/* : Bool */;
2024 short int var4
/* : Bool */;
2027 short int var7
/* : Bool */;
2029 ((void (*)(val
*, val
*))(var_n
->class->vft
[COLOR_rapid_type_analysis__ANode__accept_rapid_type_visitor
]))(var_n
, self
) /* accept_rapid_type_visitor on <var_n:ANode>*/;
2030 /* <var_n:ANode> isa AExpr */
2031 cltype
= type_parser_nodes__AExpr
.color
;
2032 idtype
= type_parser_nodes__AExpr
.id
;
2033 if(cltype
>= var_n
->type
->table_size
) {
2036 var
= var_n
->type
->type_table
[cltype
] == idtype
;
2039 var1
= ((val
* (*)(val
*))(var_n
->class->vft
[COLOR_typing__AExpr__implicit_cast_to
]))(var_n
) /* implicit_cast_to on <var_n:ANode(AExpr)>*/;
2040 var_implicit_cast_to
= var1
;
2042 if (var_implicit_cast_to
== NULL
) {
2043 var3
= 0; /* is null */
2045 var3
= 1; /* arg is null and recv is not */
2048 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_rapid_type_analysis__RapidTypeVisitor__add_cast_type
]))(self
, var_implicit_cast_to
) /* add_cast_type on <self:RapidTypeVisitor>*/;
2053 /* <var_n:ANode> isa AAnnotations */
2054 cltype5
= type_parser_nodes__AAnnotations
.color
;
2055 idtype6
= type_parser_nodes__AAnnotations
.id
;
2056 if(cltype5
>= var_n
->type
->table_size
) {
2059 var4
= var_n
->type
->type_table
[cltype5
] == idtype6
;
2063 ((void (*)(val
*, val
*))(var_n
->class->vft
[COLOR_parser_nodes__ANode__visit_all
]))(var_n
, self
) /* visit_all on <var_n:ANode>*/;
2068 /* method rapid_type_analysis#RapidTypeVisitor#visit for (self: Object, ANode) */
2069 void VIRTUAL_rapid_type_analysis__RapidTypeVisitor__visit(val
* self
, val
* p0
) {
2070 rapid_type_analysis__RapidTypeVisitor__visit(self
, p0
);
2073 /* method rapid_type_analysis#RapidTypeVisitor#cleanup_type for (self: RapidTypeVisitor, MType): nullable MClassType */
2074 val
* rapid_type_analysis__RapidTypeVisitor__cleanup_type(val
* self
, val
* p0
) {
2075 val
* var
/* : nullable MClassType */;
2076 val
* var_mtype
/* var mtype: MType */;
2077 val
* var1
/* : RapidTypeAnalysis */;
2078 val
* var2
/* : MModule */;
2079 val
* var3
/* : MClassType */;
2080 val
* var4
/* : MType */;
2081 short int var5
/* : Bool */;
2084 val
* var6
/* : null */;
2085 short int var7
/* : Bool */;
2088 val
* var10
/* : MType */;
2089 short int var11
/* : Bool */;
2092 short int var14
/* : Bool */;
2093 short int var15
/* : Bool */;
2095 var1
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_rapid_type_analysis__RapidTypeVisitor__analysis
]))(self
) /* analysis on <self:RapidTypeVisitor>*/;
2096 var2
= ((val
* (*)(val
*))(var1
->class->vft
[COLOR_rapid_type_analysis__RapidTypeAnalysis__mainmodule
]))(var1
) /* mainmodule on <var1:RapidTypeAnalysis>*/;
2097 var3
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_rapid_type_analysis__RapidTypeVisitor__receiver
]))(self
) /* receiver on <self:RapidTypeVisitor>*/;
2098 var4
= ((val
* (*)(val
*, val
*, val
*))(var_mtype
->class->vft
[COLOR_model__MType__anchor_to
]))(var_mtype
, var2
, var3
) /* anchor_to on <var_mtype:MType>*/;
2100 /* <var_mtype:MType> isa MNullType */
2101 cltype
= type_model__MNullType
.color
;
2102 idtype
= type_model__MNullType
.id
;
2103 if(cltype
>= var_mtype
->type
->table_size
) {
2106 var5
= var_mtype
->type
->type_table
[cltype
] == idtype
;
2114 /* <var_mtype:MType> isa MNullableType */
2115 cltype8
= type_model__MNullableType
.color
;
2116 idtype9
= type_model__MNullableType
.id
;
2117 if(cltype8
>= var_mtype
->type
->table_size
) {
2120 var7
= var_mtype
->type
->type_table
[cltype8
] == idtype9
;
2123 var10
= ((val
* (*)(val
*))(var_mtype
->class->vft
[COLOR_model__MNullableType__mtype
]))(var_mtype
) /* mtype on <var_mtype:MType(MNullableType)>*/;
2127 /* <var_mtype:MType> isa MClassType */
2128 cltype12
= type_model__MClassType
.color
;
2129 idtype13
= type_model__MClassType
.id
;
2130 if(cltype12
>= var_mtype
->type
->table_size
) {
2133 var11
= var_mtype
->type
->type_table
[cltype12
] == idtype13
;
2136 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/rapid_type_analysis.nit", 358);
2139 var14
= ((short int (*)(val
*))(var_mtype
->class->vft
[COLOR_model__MType__need_anchor
]))(var_mtype
) /* need_anchor on <var_mtype:MType(MClassType)>*/;
2142 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/rapid_type_analysis.nit", 359);
2150 /* method rapid_type_analysis#RapidTypeVisitor#cleanup_type for (self: Object, MType): nullable MClassType */
2151 val
* VIRTUAL_rapid_type_analysis__RapidTypeVisitor__cleanup_type(val
* self
, val
* p0
) {
2152 val
* var
/* : nullable MClassType */;
2153 val
* var1
/* : nullable MClassType */;
2154 var1
= rapid_type_analysis__RapidTypeVisitor__cleanup_type(self
, p0
);
2159 /* method rapid_type_analysis#RapidTypeVisitor#get_class for (self: RapidTypeVisitor, String): MClass */
2160 val
* rapid_type_analysis__RapidTypeVisitor__get_class(val
* self
, val
* p0
) {
2161 val
* var
/* : MClass */;
2162 val
* var_name
/* var name: String */;
2163 val
* var1
/* : RapidTypeAnalysis */;
2164 val
* var2
/* : MModule */;
2165 val
* var3
/* : MClass */;
2167 var1
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_rapid_type_analysis__RapidTypeVisitor__analysis
]))(self
) /* analysis on <self:RapidTypeVisitor>*/;
2168 var2
= ((val
* (*)(val
*))(var1
->class->vft
[COLOR_rapid_type_analysis__RapidTypeAnalysis__mainmodule
]))(var1
) /* mainmodule on <var1:RapidTypeAnalysis>*/;
2169 var3
= ((val
* (*)(val
*, val
*))(var2
->class->vft
[COLOR_model__MModule__get_primitive_class
]))(var2
, var_name
) /* get_primitive_class on <var2:MModule>*/;
2175 /* method rapid_type_analysis#RapidTypeVisitor#get_class for (self: Object, String): MClass */
2176 val
* VIRTUAL_rapid_type_analysis__RapidTypeVisitor__get_class(val
* self
, val
* p0
) {
2177 val
* var
/* : MClass */;
2178 val
* var1
/* : MClass */;
2179 var1
= rapid_type_analysis__RapidTypeVisitor__get_class(self
, p0
);
2184 /* method rapid_type_analysis#RapidTypeVisitor#get_method for (self: RapidTypeVisitor, MType, String): MMethod */
2185 val
* rapid_type_analysis__RapidTypeVisitor__get_method(val
* self
, val
* p0
, val
* p1
) {
2186 val
* var
/* : MMethod */;
2187 val
* var_recv
/* var recv: MType */;
2188 val
* var_name
/* var name: String */;
2189 val
* var1
/* : nullable MClassType */;
2190 val
* var_mtype
/* var mtype: nullable MClassType */;
2191 val
* var2
/* : null */;
2192 short int var3
/* : Bool */;
2193 val
* var4
/* : RapidTypeAnalysis */;
2194 val
* var5
/* : ModelBuilder */;
2195 val
* var6
/* : nullable ANode */;
2196 val
* var7
/* : MClass */;
2197 val
* var8
/* : RapidTypeAnalysis */;
2198 val
* var9
/* : MModule */;
2199 val
* var10
/* : MMethod */;
2202 var1
= ((val
* (*)(val
*, val
*))(self
->class->vft
[COLOR_rapid_type_analysis__RapidTypeVisitor__cleanup_type
]))(self
, var_recv
) /* cleanup_type on <self:RapidTypeVisitor>*/;
2205 if (var_mtype
== NULL
) {
2206 var3
= 0; /* is null */
2208 var3
= 1; /* arg is null and recv is not */
2211 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/rapid_type_analysis.nit", 371);
2214 var4
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_rapid_type_analysis__RapidTypeVisitor__analysis
]))(self
) /* analysis on <self:RapidTypeVisitor>*/;
2215 var5
= ((val
* (*)(val
*))(var4
->class->vft
[COLOR_rapid_type_analysis__RapidTypeAnalysis__modelbuilder
]))(var4
) /* modelbuilder on <var4:RapidTypeAnalysis>*/;
2216 var6
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__Visitor__current_node
]))(self
) /* current_node on <self:RapidTypeVisitor>*/;
2218 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/rapid_type_analysis.nit", 372);
2221 var7
= ((val
* (*)(val
*))(var_mtype
->class->vft
[COLOR_model__MClassType__mclass
]))(var_mtype
) /* mclass on <var_mtype:nullable MClassType(MClassType)>*/;
2222 var8
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_rapid_type_analysis__RapidTypeVisitor__analysis
]))(self
) /* analysis on <self:RapidTypeVisitor>*/;
2223 var9
= ((val
* (*)(val
*))(var8
->class->vft
[COLOR_rapid_type_analysis__RapidTypeAnalysis__mainmodule
]))(var8
) /* mainmodule on <var8:RapidTypeAnalysis>*/;
2224 var10
= ((val
* (*)(val
*, val
*, val
*, val
*, val
*))(var5
->class->vft
[COLOR_modelbuilder__ModelBuilder__force_get_primitive_method
]))(var5
, var6
, var_name
, var7
, var9
) /* force_get_primitive_method on <var5:ModelBuilder>*/;
2230 /* method rapid_type_analysis#RapidTypeVisitor#get_method for (self: Object, MType, String): MMethod */
2231 val
* VIRTUAL_rapid_type_analysis__RapidTypeVisitor__get_method(val
* self
, val
* p0
, val
* p1
) {
2232 val
* var
/* : MMethod */;
2233 val
* var1
/* : MMethod */;
2234 var1
= rapid_type_analysis__RapidTypeVisitor__get_method(self
, p0
, p1
);
2239 /* method rapid_type_analysis#RapidTypeVisitor#add_type for (self: RapidTypeVisitor, MClassType) */
2240 void rapid_type_analysis__RapidTypeVisitor__add_type(val
* self
, val
* p0
) {
2241 val
* var_mtype
/* var mtype: MClassType */;
2242 val
* var
/* : RapidTypeAnalysis */;
2243 val
* var1
/* : MClassType */;
2245 var
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_rapid_type_analysis__RapidTypeVisitor__analysis
]))(self
) /* analysis on <self:RapidTypeVisitor>*/;
2246 var1
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_rapid_type_analysis__RapidTypeVisitor__receiver
]))(self
) /* receiver on <self:RapidTypeVisitor>*/;
2247 ((void (*)(val
*, val
*, val
*))(var
->class->vft
[COLOR_rapid_type_analysis__RapidTypeAnalysis__add_new
]))(var
, var1
, var_mtype
) /* add_new on <var:RapidTypeAnalysis>*/;
2250 /* method rapid_type_analysis#RapidTypeVisitor#add_type for (self: Object, MClassType) */
2251 void VIRTUAL_rapid_type_analysis__RapidTypeVisitor__add_type(val
* self
, val
* p0
) {
2252 rapid_type_analysis__RapidTypeVisitor__add_type(self
, p0
);
2255 /* method rapid_type_analysis#RapidTypeVisitor#add_monomorphic_send for (self: RapidTypeVisitor, MType, MMethod) */
2256 void rapid_type_analysis__RapidTypeVisitor__add_monomorphic_send(val
* self
, val
* p0
, val
* p1
) {
2257 val
* var_mtype
/* var mtype: MType */;
2258 val
* var_mproperty
/* var mproperty: MMethod */;
2259 val
* var
/* : RapidTypeAnalysis */;
2260 short int var1
/* : Bool */;
2265 var
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_rapid_type_analysis__RapidTypeVisitor__analysis
]))(self
) /* analysis on <self:RapidTypeVisitor>*/;
2266 /* <var_mtype:MType> isa MClassType */
2267 cltype
= type_model__MClassType
.color
;
2268 idtype
= type_model__MClassType
.id
;
2269 if(cltype
>= var_mtype
->type
->table_size
) {
2272 var1
= var_mtype
->type
->type_table
[cltype
] == idtype
;
2275 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/rapid_type_analysis.nit", 377);
2278 ((void (*)(val
*, val
*, val
*))(var
->class->vft
[COLOR_rapid_type_analysis__RapidTypeAnalysis__try_send
]))(var
, var_mtype
, var_mproperty
) /* try_send on <var:RapidTypeAnalysis>*/;
2281 /* method rapid_type_analysis#RapidTypeVisitor#add_monomorphic_send for (self: Object, MType, MMethod) */
2282 void VIRTUAL_rapid_type_analysis__RapidTypeVisitor__add_monomorphic_send(val
* self
, val
* p0
, val
* p1
) {
2283 rapid_type_analysis__RapidTypeVisitor__add_monomorphic_send(self
, p0
, p1
);
2286 /* method rapid_type_analysis#RapidTypeVisitor#add_send for (self: RapidTypeVisitor, MType, MMethod) */
2287 void rapid_type_analysis__RapidTypeVisitor__add_send(val
* self
, val
* p0
, val
* p1
) {
2288 val
* var_mtype
/* var mtype: MType */;
2289 val
* var_mproperty
/* var mproperty: MMethod */;
2290 val
* var
/* : RapidTypeAnalysis */;
2293 var
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_rapid_type_analysis__RapidTypeVisitor__analysis
]))(self
) /* analysis on <self:RapidTypeVisitor>*/;
2294 ((void (*)(val
*, val
*, val
*))(var
->class->vft
[COLOR_rapid_type_analysis__RapidTypeAnalysis__add_send
]))(var
, var_mtype
, var_mproperty
) /* add_send on <var:RapidTypeAnalysis>*/;
2297 /* method rapid_type_analysis#RapidTypeVisitor#add_send for (self: Object, MType, MMethod) */
2298 void VIRTUAL_rapid_type_analysis__RapidTypeVisitor__add_send(val
* self
, val
* p0
, val
* p1
) {
2299 rapid_type_analysis__RapidTypeVisitor__add_send(self
, p0
, p1
);
2302 /* method rapid_type_analysis#RapidTypeVisitor#add_cast_type for (self: RapidTypeVisitor, MType) */
2303 void rapid_type_analysis__RapidTypeVisitor__add_cast_type(val
* self
, val
* p0
) {
2304 val
* var_mtype
/* var mtype: MType */;
2305 val
* var
/* : RapidTypeAnalysis */;
2307 var
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_rapid_type_analysis__RapidTypeVisitor__analysis
]))(self
) /* analysis on <self:RapidTypeVisitor>*/;
2308 ((void (*)(val
*, val
*))(var
->class->vft
[COLOR_rapid_type_analysis__RapidTypeAnalysis__add_cast
]))(var
, var_mtype
) /* add_cast on <var:RapidTypeAnalysis>*/;
2311 /* method rapid_type_analysis#RapidTypeVisitor#add_cast_type for (self: Object, MType) */
2312 void VIRTUAL_rapid_type_analysis__RapidTypeVisitor__add_cast_type(val
* self
, val
* p0
) {
2313 rapid_type_analysis__RapidTypeVisitor__add_cast_type(self
, p0
);
2316 /* method rapid_type_analysis#ANode#accept_rapid_type_visitor for (self: ANode, RapidTypeVisitor) */
2317 void rapid_type_analysis__ANode__accept_rapid_type_visitor(val
* self
, val
* p0
) {
2318 val
* var_v
/* var v: RapidTypeVisitor */;
2322 /* method rapid_type_analysis#ANode#accept_rapid_type_visitor for (self: Object, RapidTypeVisitor) */
2323 void VIRTUAL_rapid_type_analysis__ANode__accept_rapid_type_visitor(val
* self
, val
* p0
) {
2324 rapid_type_analysis__ANode__accept_rapid_type_visitor(self
, p0
);
2327 /* method rapid_type_analysis#AIntExpr#accept_rapid_type_visitor for (self: AIntExpr, RapidTypeVisitor) */
2328 void rapid_type_analysis__AIntExpr__accept_rapid_type_visitor(val
* self
, val
* p0
) {
2329 val
* var_v
/* var v: RapidTypeVisitor */;
2330 val
* var
/* : nullable MType */;
2331 short int var1
/* : Bool */;
2335 var
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_typing__AExpr__mtype
]))(self
) /* mtype on <self:AIntExpr>*/;
2336 /* <var:nullable MType> isa MClassType */
2337 cltype
= type_model__MClassType
.color
;
2338 idtype
= type_model__MClassType
.id
;
2342 if(cltype
>= var
->type
->table_size
) {
2345 var1
= var
->type
->type_table
[cltype
] == idtype
;
2349 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/rapid_type_analysis.nit", 395);
2352 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_rapid_type_analysis__RapidTypeVisitor__add_type
]))(var_v
, var
) /* add_type on <var_v:RapidTypeVisitor>*/;
2355 /* method rapid_type_analysis#AIntExpr#accept_rapid_type_visitor for (self: Object, RapidTypeVisitor) */
2356 void VIRTUAL_rapid_type_analysis__AIntExpr__accept_rapid_type_visitor(val
* self
, val
* p0
) {
2357 rapid_type_analysis__AIntExpr__accept_rapid_type_visitor(self
, p0
);
2360 /* method rapid_type_analysis#AFloatExpr#accept_rapid_type_visitor for (self: AFloatExpr, RapidTypeVisitor) */
2361 void rapid_type_analysis__AFloatExpr__accept_rapid_type_visitor(val
* self
, val
* p0
) {
2362 val
* var_v
/* var v: RapidTypeVisitor */;
2363 val
* var
/* : nullable MType */;
2364 short int var1
/* : Bool */;
2368 var
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_typing__AExpr__mtype
]))(self
) /* mtype on <self:AFloatExpr>*/;
2369 /* <var:nullable MType> isa MClassType */
2370 cltype
= type_model__MClassType
.color
;
2371 idtype
= type_model__MClassType
.id
;
2375 if(cltype
>= var
->type
->table_size
) {
2378 var1
= var
->type
->type_table
[cltype
] == idtype
;
2382 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/rapid_type_analysis.nit", 402);
2385 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_rapid_type_analysis__RapidTypeVisitor__add_type
]))(var_v
, var
) /* add_type on <var_v:RapidTypeVisitor>*/;
2388 /* method rapid_type_analysis#AFloatExpr#accept_rapid_type_visitor for (self: Object, RapidTypeVisitor) */
2389 void VIRTUAL_rapid_type_analysis__AFloatExpr__accept_rapid_type_visitor(val
* self
, val
* p0
) {
2390 rapid_type_analysis__AFloatExpr__accept_rapid_type_visitor(self
, p0
);
2393 /* method rapid_type_analysis#ACharExpr#accept_rapid_type_visitor for (self: ACharExpr, RapidTypeVisitor) */
2394 void rapid_type_analysis__ACharExpr__accept_rapid_type_visitor(val
* self
, val
* p0
) {
2395 val
* var_v
/* var v: RapidTypeVisitor */;
2396 val
* var
/* : nullable MType */;
2397 short int var1
/* : Bool */;
2401 var
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_typing__AExpr__mtype
]))(self
) /* mtype on <self:ACharExpr>*/;
2402 /* <var:nullable MType> isa MClassType */
2403 cltype
= type_model__MClassType
.color
;
2404 idtype
= type_model__MClassType
.id
;
2408 if(cltype
>= var
->type
->table_size
) {
2411 var1
= var
->type
->type_table
[cltype
] == idtype
;
2415 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/rapid_type_analysis.nit", 409);
2418 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_rapid_type_analysis__RapidTypeVisitor__add_type
]))(var_v
, var
) /* add_type on <var_v:RapidTypeVisitor>*/;
2421 /* method rapid_type_analysis#ACharExpr#accept_rapid_type_visitor for (self: Object, RapidTypeVisitor) */
2422 void VIRTUAL_rapid_type_analysis__ACharExpr__accept_rapid_type_visitor(val
* self
, val
* p0
) {
2423 rapid_type_analysis__ACharExpr__accept_rapid_type_visitor(self
, p0
);
2426 /* method rapid_type_analysis#AArrayExpr#accept_rapid_type_visitor for (self: AArrayExpr, RapidTypeVisitor) */
2427 void rapid_type_analysis__AArrayExpr__accept_rapid_type_visitor(val
* self
, val
* p0
) {
2428 val
* var_v
/* var v: RapidTypeVisitor */;
2429 val
* var
/* : nullable MType */;
2430 short int var1
/* : Bool */;
2433 val
* var_mtype
/* var mtype: MClassType */;
2434 val
* var2
/* : RapidTypeAnalysis */;
2435 val
* var3
/* : MModule */;
2436 static val
* varonce
;
2437 val
* var4
/* : String */;
2438 char* var5
/* : NativeString */;
2439 long var6
/* : Int */;
2440 val
* var7
/* : String */;
2441 val
* var8
/* : MClass */;
2442 val
* var9
/* : Array[MType] */;
2443 val
* var10
/* : nullable Object */;
2444 val
* var11
/* : Array[MType] */;
2445 long var12
/* : Int */;
2446 val
* var13
/* : NativeArray[MType] */;
2447 val
* var14
/* : MClassType */;
2448 val
* var_native
/* var native: MClassType */;
2449 val
* var15
/* : nullable MClassType */;
2450 static val
* varonce16
;
2451 val
* var17
/* : String */;
2452 char* var18
/* : NativeString */;
2453 long var19
/* : Int */;
2454 val
* var20
/* : String */;
2455 val
* var21
/* : MMethod */;
2456 val
* var_prop
/* var prop: MMethod */;
2458 var
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_typing__AExpr__mtype
]))(self
) /* mtype on <self:AArrayExpr>*/;
2459 /* <var:nullable MType> isa MClassType */
2460 cltype
= type_model__MClassType
.color
;
2461 idtype
= type_model__MClassType
.id
;
2465 if(cltype
>= var
->type
->table_size
) {
2468 var1
= var
->type
->type_table
[cltype
] == idtype
;
2472 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/rapid_type_analysis.nit", 416);
2476 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_rapid_type_analysis__RapidTypeVisitor__add_type
]))(var_v
, var_mtype
) /* add_type on <var_v:RapidTypeVisitor>*/;
2477 var2
= ((val
* (*)(val
*))(var_v
->class->vft
[COLOR_rapid_type_analysis__RapidTypeVisitor__analysis
]))(var_v
) /* analysis on <var_v:RapidTypeVisitor>*/;
2478 var3
= ((val
* (*)(val
*))(var2
->class->vft
[COLOR_rapid_type_analysis__RapidTypeAnalysis__mainmodule
]))(var2
) /* mainmodule on <var2:RapidTypeAnalysis>*/;
2482 var5
= "NativeArray";
2484 var7
= string__NativeString__to_s_with_length(var5
, var6
);
2488 var8
= ((val
* (*)(val
*, val
*))(var3
->class->vft
[COLOR_model__MModule__get_primitive_class
]))(var3
, var4
) /* get_primitive_class on <var3:MModule>*/;
2489 var9
= ((val
* (*)(val
*))(var_mtype
->class->vft
[COLOR_model__MClassType__arguments
]))(var_mtype
) /* arguments on <var_mtype:MClassType>*/;
2490 var10
= ((val
* (*)(val
*))(var9
->class->vft
[COLOR_abstract_collection__Collection__first
]))(var9
) /* first on <var9:Array[MType]>*/;
2491 var11
= NEW_array__Array(&type_array__Arraymodel__MType
);
2492 { /* var11 = array_instance Array[MType] */
2494 var13
= NEW_array__NativeArray(var12
, &type_array__NativeArraymodel__MType
);
2495 ((struct instance_array__NativeArray
*)var13
)->values
[0] = (val
*) var10
;
2496 ((void (*)(val
*, val
*, long))(var11
->class->vft
[COLOR_array__Array__with_native
]))(var11
, var13
, var12
) /* with_native on <var11:Array[MType]>*/;
2497 CHECK_NEW_array__Array(var11
);
2499 var14
= ((val
* (*)(val
*, val
*))(var8
->class->vft
[COLOR_model__MClass__get_mtype
]))(var8
, var11
) /* get_mtype on <var8:MClass>*/;
2501 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_rapid_type_analysis__RapidTypeVisitor__add_type
]))(var_v
, var_native
) /* add_type on <var_v:RapidTypeVisitor>*/;
2502 var15
= ((val
* (*)(val
*, val
*))(var_v
->class->vft
[COLOR_rapid_type_analysis__RapidTypeVisitor__cleanup_type
]))(var_v
, var_mtype
) /* cleanup_type on <var_v:RapidTypeVisitor>*/;
2503 if (var15
== NULL
) {
2504 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/rapid_type_analysis.nit", 420);
2511 var18
= "with_native";
2513 var20
= string__NativeString__to_s_with_length(var18
, var19
);
2517 var21
= ((val
* (*)(val
*, val
*, val
*))(var_v
->class->vft
[COLOR_rapid_type_analysis__RapidTypeVisitor__get_method
]))(var_v
, var_mtype
, var17
) /* get_method on <var_v:RapidTypeVisitor>*/;
2519 ((void (*)(val
*, val
*, val
*))(var_v
->class->vft
[COLOR_rapid_type_analysis__RapidTypeVisitor__add_monomorphic_send
]))(var_v
, var_mtype
, var_prop
) /* add_monomorphic_send on <var_v:RapidTypeVisitor>*/;
2522 /* method rapid_type_analysis#AArrayExpr#accept_rapid_type_visitor for (self: Object, RapidTypeVisitor) */
2523 void VIRTUAL_rapid_type_analysis__AArrayExpr__accept_rapid_type_visitor(val
* self
, val
* p0
) {
2524 rapid_type_analysis__AArrayExpr__accept_rapid_type_visitor(self
, p0
);
2527 /* method rapid_type_analysis#AStringFormExpr#accept_rapid_type_visitor for (self: AStringFormExpr, RapidTypeVisitor) */
2528 void rapid_type_analysis__AStringFormExpr__accept_rapid_type_visitor(val
* self
, val
* p0
) {
2529 val
* var_v
/* var v: RapidTypeVisitor */;
2530 static val
* varonce
;
2531 val
* var
/* : String */;
2532 char* var1
/* : NativeString */;
2533 long var2
/* : Int */;
2534 val
* var3
/* : String */;
2535 val
* var4
/* : MClass */;
2536 val
* var5
/* : MClassType */;
2537 val
* var_native
/* var native: MClassType */;
2538 static val
* varonce6
;
2539 val
* var7
/* : String */;
2540 char* var8
/* : NativeString */;
2541 long var9
/* : Int */;
2542 val
* var10
/* : String */;
2543 val
* var11
/* : MMethod */;
2544 val
* var_prop
/* var prop: MMethod */;
2549 var1
= "NativeString";
2551 var3
= string__NativeString__to_s_with_length(var1
, var2
);
2555 var4
= ((val
* (*)(val
*, val
*))(var_v
->class->vft
[COLOR_rapid_type_analysis__RapidTypeVisitor__get_class
]))(var_v
, var
) /* get_class on <var_v:RapidTypeVisitor>*/;
2556 var5
= ((val
* (*)(val
*))(var4
->class->vft
[COLOR_model__MClass__mclass_type
]))(var4
) /* mclass_type on <var4:MClass>*/;
2558 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_rapid_type_analysis__RapidTypeVisitor__add_type
]))(var_v
, var_native
) /* add_type on <var_v:RapidTypeVisitor>*/;
2564 var10
= string__NativeString__to_s_with_length(var8
, var9
);
2568 var11
= ((val
* (*)(val
*, val
*, val
*))(var_v
->class->vft
[COLOR_rapid_type_analysis__RapidTypeVisitor__get_method
]))(var_v
, var_native
, var7
) /* get_method on <var_v:RapidTypeVisitor>*/;
2570 ((void (*)(val
*, val
*, val
*))(var_v
->class->vft
[COLOR_rapid_type_analysis__RapidTypeVisitor__add_monomorphic_send
]))(var_v
, var_native
, var_prop
) /* add_monomorphic_send on <var_v:RapidTypeVisitor>*/;
2573 /* method rapid_type_analysis#AStringFormExpr#accept_rapid_type_visitor for (self: Object, RapidTypeVisitor) */
2574 void VIRTUAL_rapid_type_analysis__AStringFormExpr__accept_rapid_type_visitor(val
* self
, val
* p0
) {
2575 rapid_type_analysis__AStringFormExpr__accept_rapid_type_visitor(self
, p0
);
2578 /* method rapid_type_analysis#ASuperstringExpr#accept_rapid_type_visitor for (self: ASuperstringExpr, RapidTypeVisitor) */
2579 void rapid_type_analysis__ASuperstringExpr__accept_rapid_type_visitor(val
* self
, val
* p0
) {
2580 val
* var_v
/* var v: RapidTypeVisitor */;
2581 static val
* varonce
;
2582 val
* var
/* : String */;
2583 char* var1
/* : NativeString */;
2584 long var2
/* : Int */;
2585 val
* var3
/* : String */;
2586 val
* var4
/* : MClass */;
2587 static val
* varonce5
;
2588 val
* var6
/* : String */;
2589 char* var7
/* : NativeString */;
2590 long var8
/* : Int */;
2591 val
* var9
/* : String */;
2592 val
* var10
/* : MClass */;
2593 val
* var11
/* : MClassType */;
2594 val
* var12
/* : Array[MClassType] */;
2595 long var13
/* : Int */;
2596 val
* var14
/* : NativeArray[MClassType] */;
2597 val
* var15
/* : MClassType */;
2598 val
* var_arraytype
/* var arraytype: MClassType */;
2599 static val
* varonce16
;
2600 val
* var17
/* : String */;
2601 char* var18
/* : NativeString */;
2602 long var19
/* : Int */;
2603 val
* var20
/* : String */;
2604 val
* var21
/* : MClass */;
2605 static val
* varonce22
;
2606 val
* var23
/* : String */;
2607 char* var24
/* : NativeString */;
2608 long var25
/* : Int */;
2609 val
* var26
/* : String */;
2610 val
* var27
/* : MClass */;
2611 val
* var28
/* : MClassType */;
2612 val
* var29
/* : Array[MClassType] */;
2613 long var30
/* : Int */;
2614 val
* var31
/* : NativeArray[MClassType] */;
2615 val
* var32
/* : MClassType */;
2616 static val
* varonce33
;
2617 val
* var34
/* : String */;
2618 char* var35
/* : NativeString */;
2619 long var36
/* : Int */;
2620 val
* var37
/* : String */;
2621 val
* var38
/* : MMethod */;
2622 val
* var_prop
/* var prop: MMethod */;
2623 static val
* varonce39
;
2624 val
* var40
/* : String */;
2625 char* var41
/* : NativeString */;
2626 long var42
/* : Int */;
2627 val
* var43
/* : String */;
2628 val
* var44
/* : MMethod */;
2629 val
* var_prop2
/* var prop2: MMethod */;
2636 var3
= string__NativeString__to_s_with_length(var1
, var2
);
2640 var4
= ((val
* (*)(val
*, val
*))(var_v
->class->vft
[COLOR_rapid_type_analysis__RapidTypeVisitor__get_class
]))(var_v
, var
) /* get_class on <var_v:RapidTypeVisitor>*/;
2646 var9
= string__NativeString__to_s_with_length(var7
, var8
);
2650 var10
= ((val
* (*)(val
*, val
*))(var_v
->class->vft
[COLOR_rapid_type_analysis__RapidTypeVisitor__get_class
]))(var_v
, var6
) /* get_class on <var_v:RapidTypeVisitor>*/;
2651 var11
= ((val
* (*)(val
*))(var10
->class->vft
[COLOR_model__MClass__mclass_type
]))(var10
) /* mclass_type on <var10:MClass>*/;
2652 var12
= NEW_array__Array(&type_array__Arraymodel__MClassType
);
2653 { /* var12 = array_instance Array[MClassType] */
2655 var14
= NEW_array__NativeArray(var13
, &type_array__NativeArraymodel__MClassType
);
2656 ((struct instance_array__NativeArray
*)var14
)->values
[0] = (val
*) var11
;
2657 ((void (*)(val
*, val
*, long))(var12
->class->vft
[COLOR_array__Array__with_native
]))(var12
, var14
, var13
) /* with_native on <var12:Array[MClassType]>*/;
2658 CHECK_NEW_array__Array(var12
);
2660 var15
= ((val
* (*)(val
*, val
*))(var4
->class->vft
[COLOR_model__MClass__get_mtype
]))(var4
, var12
) /* get_mtype on <var4:MClass>*/;
2661 var_arraytype
= var15
;
2662 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_rapid_type_analysis__RapidTypeVisitor__add_type
]))(var_v
, var_arraytype
) /* add_type on <var_v:RapidTypeVisitor>*/;
2666 var18
= "NativeArray";
2668 var20
= string__NativeString__to_s_with_length(var18
, var19
);
2672 var21
= ((val
* (*)(val
*, val
*))(var_v
->class->vft
[COLOR_rapid_type_analysis__RapidTypeVisitor__get_class
]))(var_v
, var17
) /* get_class on <var_v:RapidTypeVisitor>*/;
2678 var26
= string__NativeString__to_s_with_length(var24
, var25
);
2682 var27
= ((val
* (*)(val
*, val
*))(var_v
->class->vft
[COLOR_rapid_type_analysis__RapidTypeVisitor__get_class
]))(var_v
, var23
) /* get_class on <var_v:RapidTypeVisitor>*/;
2683 var28
= ((val
* (*)(val
*))(var27
->class->vft
[COLOR_model__MClass__mclass_type
]))(var27
) /* mclass_type on <var27:MClass>*/;
2684 var29
= NEW_array__Array(&type_array__Arraymodel__MClassType
);
2685 { /* var29 = array_instance Array[MClassType] */
2687 var31
= NEW_array__NativeArray(var30
, &type_array__NativeArraymodel__MClassType
);
2688 ((struct instance_array__NativeArray
*)var31
)->values
[0] = (val
*) var28
;
2689 ((void (*)(val
*, val
*, long))(var29
->class->vft
[COLOR_array__Array__with_native
]))(var29
, var31
, var30
) /* with_native on <var29:Array[MClassType]>*/;
2690 CHECK_NEW_array__Array(var29
);
2692 var32
= ((val
* (*)(val
*, val
*))(var21
->class->vft
[COLOR_model__MClass__get_mtype
]))(var21
, var29
) /* get_mtype on <var21:MClass>*/;
2693 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_rapid_type_analysis__RapidTypeVisitor__add_type
]))(var_v
, var32
) /* add_type on <var_v:RapidTypeVisitor>*/;
2699 var37
= string__NativeString__to_s_with_length(var35
, var36
);
2703 var38
= ((val
* (*)(val
*, val
*, val
*))(var_v
->class->vft
[COLOR_rapid_type_analysis__RapidTypeVisitor__get_method
]))(var_v
, var_arraytype
, var34
) /* get_method on <var_v:RapidTypeVisitor>*/;
2705 ((void (*)(val
*, val
*, val
*))(var_v
->class->vft
[COLOR_rapid_type_analysis__RapidTypeVisitor__add_monomorphic_send
]))(var_v
, var_arraytype
, var_prop
) /* add_monomorphic_send on <var_v:RapidTypeVisitor>*/;
2709 var41
= "with_native";
2711 var43
= string__NativeString__to_s_with_length(var41
, var42
);
2715 var44
= ((val
* (*)(val
*, val
*, val
*))(var_v
->class->vft
[COLOR_rapid_type_analysis__RapidTypeVisitor__get_method
]))(var_v
, var_arraytype
, var40
) /* get_method on <var_v:RapidTypeVisitor>*/;
2717 ((void (*)(val
*, val
*, val
*))(var_v
->class->vft
[COLOR_rapid_type_analysis__RapidTypeVisitor__add_monomorphic_send
]))(var_v
, var_arraytype
, var_prop2
) /* add_monomorphic_send on <var_v:RapidTypeVisitor>*/;
2720 /* method rapid_type_analysis#ASuperstringExpr#accept_rapid_type_visitor for (self: Object, RapidTypeVisitor) */
2721 void VIRTUAL_rapid_type_analysis__ASuperstringExpr__accept_rapid_type_visitor(val
* self
, val
* p0
) {
2722 rapid_type_analysis__ASuperstringExpr__accept_rapid_type_visitor(self
, p0
);
2725 /* method rapid_type_analysis#ACrangeExpr#accept_rapid_type_visitor for (self: ACrangeExpr, RapidTypeVisitor) */
2726 void rapid_type_analysis__ACrangeExpr__accept_rapid_type_visitor(val
* self
, val
* p0
) {
2727 val
* var_v
/* var v: RapidTypeVisitor */;
2728 val
* var
/* : nullable MType */;
2729 short int var1
/* : Bool */;
2732 val
* var_mtype
/* var mtype: MClassType */;
2733 static val
* varonce
;
2734 val
* var2
/* : String */;
2735 char* var3
/* : NativeString */;
2736 long var4
/* : Int */;
2737 val
* var5
/* : String */;
2738 val
* var6
/* : MMethod */;
2739 val
* var_prop
/* var prop: MMethod */;
2741 var
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_typing__AExpr__mtype
]))(self
) /* mtype on <self:ACrangeExpr>*/;
2742 /* <var:nullable MType> isa MClassType */
2743 cltype
= type_model__MClassType
.color
;
2744 idtype
= type_model__MClassType
.id
;
2748 if(cltype
>= var
->type
->table_size
) {
2751 var1
= var
->type
->type_table
[cltype
] == idtype
;
2755 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/rapid_type_analysis.nit", 452);
2759 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_rapid_type_analysis__RapidTypeVisitor__add_type
]))(var_v
, var_mtype
) /* add_type on <var_v:RapidTypeVisitor>*/;
2765 var5
= string__NativeString__to_s_with_length(var3
, var4
);
2769 var6
= ((val
* (*)(val
*, val
*, val
*))(var_v
->class->vft
[COLOR_rapid_type_analysis__RapidTypeVisitor__get_method
]))(var_v
, var_mtype
, var2
) /* get_method on <var_v:RapidTypeVisitor>*/;
2771 ((void (*)(val
*, val
*, val
*))(var_v
->class->vft
[COLOR_rapid_type_analysis__RapidTypeVisitor__add_monomorphic_send
]))(var_v
, var_mtype
, var_prop
) /* add_monomorphic_send on <var_v:RapidTypeVisitor>*/;
2774 /* method rapid_type_analysis#ACrangeExpr#accept_rapid_type_visitor for (self: Object, RapidTypeVisitor) */
2775 void VIRTUAL_rapid_type_analysis__ACrangeExpr__accept_rapid_type_visitor(val
* self
, val
* p0
) {
2776 rapid_type_analysis__ACrangeExpr__accept_rapid_type_visitor(self
, p0
);
2779 /* method rapid_type_analysis#AOrangeExpr#accept_rapid_type_visitor for (self: AOrangeExpr, RapidTypeVisitor) */
2780 void rapid_type_analysis__AOrangeExpr__accept_rapid_type_visitor(val
* self
, val
* p0
) {
2781 val
* var_v
/* var v: RapidTypeVisitor */;
2782 val
* var
/* : nullable MType */;
2783 short int var1
/* : Bool */;
2786 val
* var_mtype
/* var mtype: MClassType */;
2787 static val
* varonce
;
2788 val
* var2
/* : String */;
2789 char* var3
/* : NativeString */;
2790 long var4
/* : Int */;
2791 val
* var5
/* : String */;
2792 val
* var6
/* : MMethod */;
2793 val
* var_prop
/* var prop: MMethod */;
2795 var
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_typing__AExpr__mtype
]))(self
) /* mtype on <self:AOrangeExpr>*/;
2796 /* <var:nullable MType> isa MClassType */
2797 cltype
= type_model__MClassType
.color
;
2798 idtype
= type_model__MClassType
.id
;
2802 if(cltype
>= var
->type
->table_size
) {
2805 var1
= var
->type
->type_table
[cltype
] == idtype
;
2809 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/rapid_type_analysis.nit", 462);
2813 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_rapid_type_analysis__RapidTypeVisitor__add_type
]))(var_v
, var_mtype
) /* add_type on <var_v:RapidTypeVisitor>*/;
2817 var3
= "without_last";
2819 var5
= string__NativeString__to_s_with_length(var3
, var4
);
2823 var6
= ((val
* (*)(val
*, val
*, val
*))(var_v
->class->vft
[COLOR_rapid_type_analysis__RapidTypeVisitor__get_method
]))(var_v
, var_mtype
, var2
) /* get_method on <var_v:RapidTypeVisitor>*/;
2825 ((void (*)(val
*, val
*, val
*))(var_v
->class->vft
[COLOR_rapid_type_analysis__RapidTypeVisitor__add_monomorphic_send
]))(var_v
, var_mtype
, var_prop
) /* add_monomorphic_send on <var_v:RapidTypeVisitor>*/;
2828 /* method rapid_type_analysis#AOrangeExpr#accept_rapid_type_visitor for (self: Object, RapidTypeVisitor) */
2829 void VIRTUAL_rapid_type_analysis__AOrangeExpr__accept_rapid_type_visitor(val
* self
, val
* p0
) {
2830 rapid_type_analysis__AOrangeExpr__accept_rapid_type_visitor(self
, p0
);
2833 /* method rapid_type_analysis#ATrueExpr#accept_rapid_type_visitor for (self: ATrueExpr, RapidTypeVisitor) */
2834 void rapid_type_analysis__ATrueExpr__accept_rapid_type_visitor(val
* self
, val
* p0
) {
2835 val
* var_v
/* var v: RapidTypeVisitor */;
2836 val
* var
/* : nullable MType */;
2837 short int var1
/* : Bool */;
2841 var
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_typing__AExpr__mtype
]))(self
) /* mtype on <self:ATrueExpr>*/;
2842 /* <var:nullable MType> isa MClassType */
2843 cltype
= type_model__MClassType
.color
;
2844 idtype
= type_model__MClassType
.id
;
2848 if(cltype
>= var
->type
->table_size
) {
2851 var1
= var
->type
->type_table
[cltype
] == idtype
;
2855 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/rapid_type_analysis.nit", 472);
2858 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_rapid_type_analysis__RapidTypeVisitor__add_type
]))(var_v
, var
) /* add_type on <var_v:RapidTypeVisitor>*/;
2861 /* method rapid_type_analysis#ATrueExpr#accept_rapid_type_visitor for (self: Object, RapidTypeVisitor) */
2862 void VIRTUAL_rapid_type_analysis__ATrueExpr__accept_rapid_type_visitor(val
* self
, val
* p0
) {
2863 rapid_type_analysis__ATrueExpr__accept_rapid_type_visitor(self
, p0
);
2866 /* method rapid_type_analysis#AFalseExpr#accept_rapid_type_visitor for (self: AFalseExpr, RapidTypeVisitor) */
2867 void rapid_type_analysis__AFalseExpr__accept_rapid_type_visitor(val
* self
, val
* p0
) {
2868 val
* var_v
/* var v: RapidTypeVisitor */;
2869 val
* var
/* : nullable MType */;
2870 short int var1
/* : Bool */;
2874 var
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_typing__AExpr__mtype
]))(self
) /* mtype on <self:AFalseExpr>*/;
2875 /* <var:nullable MType> isa MClassType */
2876 cltype
= type_model__MClassType
.color
;
2877 idtype
= type_model__MClassType
.id
;
2881 if(cltype
>= var
->type
->table_size
) {
2884 var1
= var
->type
->type_table
[cltype
] == idtype
;
2888 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/rapid_type_analysis.nit", 479);
2891 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_rapid_type_analysis__RapidTypeVisitor__add_type
]))(var_v
, var
) /* add_type on <var_v:RapidTypeVisitor>*/;
2894 /* method rapid_type_analysis#AFalseExpr#accept_rapid_type_visitor for (self: Object, RapidTypeVisitor) */
2895 void VIRTUAL_rapid_type_analysis__AFalseExpr__accept_rapid_type_visitor(val
* self
, val
* p0
) {
2896 rapid_type_analysis__AFalseExpr__accept_rapid_type_visitor(self
, p0
);
2899 /* method rapid_type_analysis#AIsaExpr#accept_rapid_type_visitor for (self: AIsaExpr, RapidTypeVisitor) */
2900 void rapid_type_analysis__AIsaExpr__accept_rapid_type_visitor(val
* self
, val
* p0
) {
2901 val
* var_v
/* var v: RapidTypeVisitor */;
2902 val
* var
/* : nullable MType */;
2904 var
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_typing__AIsaExpr__cast_type
]))(self
) /* cast_type on <self:AIsaExpr>*/;
2906 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/rapid_type_analysis.nit", 486);
2909 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_rapid_type_analysis__RapidTypeVisitor__add_cast_type
]))(var_v
, var
) /* add_cast_type on <var_v:RapidTypeVisitor>*/;
2912 /* method rapid_type_analysis#AIsaExpr#accept_rapid_type_visitor for (self: Object, RapidTypeVisitor) */
2913 void VIRTUAL_rapid_type_analysis__AIsaExpr__accept_rapid_type_visitor(val
* self
, val
* p0
) {
2914 rapid_type_analysis__AIsaExpr__accept_rapid_type_visitor(self
, p0
);
2917 /* method rapid_type_analysis#AAsCastExpr#accept_rapid_type_visitor for (self: AAsCastExpr, RapidTypeVisitor) */
2918 void rapid_type_analysis__AAsCastExpr__accept_rapid_type_visitor(val
* self
, val
* p0
) {
2919 val
* var_v
/* var v: RapidTypeVisitor */;
2920 val
* var
/* : nullable MType */;
2922 var
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_typing__AExpr__mtype
]))(self
) /* mtype on <self:AAsCastExpr>*/;
2924 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/rapid_type_analysis.nit", 493);
2927 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_rapid_type_analysis__RapidTypeVisitor__add_cast_type
]))(var_v
, var
) /* add_cast_type on <var_v:RapidTypeVisitor>*/;
2930 /* method rapid_type_analysis#AAsCastExpr#accept_rapid_type_visitor for (self: Object, RapidTypeVisitor) */
2931 void VIRTUAL_rapid_type_analysis__AAsCastExpr__accept_rapid_type_visitor(val
* self
, val
* p0
) {
2932 rapid_type_analysis__AAsCastExpr__accept_rapid_type_visitor(self
, p0
);
2935 /* method rapid_type_analysis#ASendExpr#accept_rapid_type_visitor for (self: ASendExpr, RapidTypeVisitor) */
2936 void rapid_type_analysis__ASendExpr__accept_rapid_type_visitor(val
* self
, val
* p0
) {
2937 val
* var_v
/* var v: RapidTypeVisitor */;
2938 val
* var
/* : nullable MMethod */;
2939 val
* var_mproperty
/* var mproperty: MMethod */;
2940 val
* var1
/* : AExpr */;
2941 val
* var2
/* : nullable MType */;
2942 val
* var_recvtype
/* var recvtype: MType */;
2944 var
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_typing__ASendExpr__mproperty
]))(self
) /* mproperty on <self:ASendExpr>*/;
2946 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/rapid_type_analysis.nit", 500);
2949 var_mproperty
= var
;
2950 var1
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__ASendExpr__n_expr
]))(self
) /* n_expr on <self:ASendExpr>*/;
2951 var2
= ((val
* (*)(val
*))(var1
->class->vft
[COLOR_typing__AExpr__mtype
]))(var1
) /* mtype on <var1:AExpr>*/;
2953 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/rapid_type_analysis.nit", 501);
2956 var_recvtype
= var2
;
2957 ((void (*)(val
*, val
*, val
*))(var_v
->class->vft
[COLOR_rapid_type_analysis__RapidTypeVisitor__add_send
]))(var_v
, var_recvtype
, var_mproperty
) /* add_send on <var_v:RapidTypeVisitor>*/;
2960 /* method rapid_type_analysis#ASendExpr#accept_rapid_type_visitor for (self: Object, RapidTypeVisitor) */
2961 void VIRTUAL_rapid_type_analysis__ASendExpr__accept_rapid_type_visitor(val
* self
, val
* p0
) {
2962 rapid_type_analysis__ASendExpr__accept_rapid_type_visitor(self
, p0
);
2965 /* method rapid_type_analysis#ASendReassignFormExpr#accept_rapid_type_visitor for (self: ASendReassignFormExpr, RapidTypeVisitor) */
2966 void rapid_type_analysis__ASendReassignFormExpr__accept_rapid_type_visitor(val
* self
, val
* p0
) {
2967 val
* var_v
/* var v: RapidTypeVisitor */;
2968 val
* var
/* : nullable MType */;
2969 val
* var1
/* : nullable MMethodDef */;
2970 val
* var2
/* : MProperty */;
2971 val
* var3
/* : nullable MMethod */;
2972 val
* var_mproperty
/* var mproperty: MMethod */;
2973 val
* var4
/* : nullable MMethod */;
2974 val
* var_write_mproperty
/* var write_mproperty: MMethod */;
2975 val
* var5
/* : AExpr */;
2976 short int var6
/* : Bool */;
2979 val
* var7
/* : MClassType */;
2980 val
* var8
/* : MClassType */;
2981 val
* var9
/* : AExpr */;
2982 val
* var10
/* : nullable MType */;
2983 val
* var_recvtype
/* var recvtype: MType */;
2985 var
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_typing__AReassignFormExpr__read_type
]))(self
) /* read_type on <self:ASendReassignFormExpr>*/;
2987 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/rapid_type_analysis.nit", 510);
2990 var1
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_typing__AReassignFormExpr__reassign_property
]))(self
) /* reassign_property on <self:ASendReassignFormExpr>*/;
2992 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Reciever is null", "src/rapid_type_analysis.nit", 510);
2995 var2
= ((val
* (*)(val
*))(var1
->class->vft
[COLOR_model__MPropDef__mproperty
]))(var1
) /* mproperty on <var1:nullable MMethodDef>*/;
2997 ((void (*)(val
*, val
*, val
*))(var_v
->class->vft
[COLOR_rapid_type_analysis__RapidTypeVisitor__add_send
]))(var_v
, var
, var2
) /* add_send on <var_v:RapidTypeVisitor>*/;
2998 var3
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_typing__ASendExpr__mproperty
]))(self
) /* mproperty on <self:ASendReassignFormExpr>*/;
3000 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/rapid_type_analysis.nit", 511);
3003 var_mproperty
= var3
;
3004 var4
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_typing__ASendReassignFormExpr__write_mproperty
]))(self
) /* write_mproperty on <self:ASendReassignFormExpr>*/;
3006 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/rapid_type_analysis.nit", 512);
3009 var_write_mproperty
= var4
;
3010 var5
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__ASendExpr__n_expr
]))(self
) /* n_expr on <self:ASendReassignFormExpr>*/;
3011 /* <var5:AExpr> isa ASelfExpr */
3012 cltype
= type_parser_nodes__ASelfExpr
.color
;
3013 idtype
= type_parser_nodes__ASelfExpr
.id
;
3014 if(cltype
>= var5
->type
->table_size
) {
3017 var6
= var5
->type
->type_table
[cltype
] == idtype
;
3020 var7
= ((val
* (*)(val
*))(var_v
->class->vft
[COLOR_rapid_type_analysis__RapidTypeVisitor__receiver
]))(var_v
) /* receiver on <var_v:RapidTypeVisitor>*/;
3021 ((void (*)(val
*, val
*, val
*))(var_v
->class->vft
[COLOR_rapid_type_analysis__RapidTypeVisitor__add_monomorphic_send
]))(var_v
, var7
, var_mproperty
) /* add_monomorphic_send on <var_v:RapidTypeVisitor>*/;
3022 var8
= ((val
* (*)(val
*))(var_v
->class->vft
[COLOR_rapid_type_analysis__RapidTypeVisitor__receiver
]))(var_v
) /* receiver on <var_v:RapidTypeVisitor>*/;
3023 ((void (*)(val
*, val
*, val
*))(var_v
->class->vft
[COLOR_rapid_type_analysis__RapidTypeVisitor__add_monomorphic_send
]))(var_v
, var8
, var_write_mproperty
) /* add_monomorphic_send on <var_v:RapidTypeVisitor>*/;
3025 var9
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__ASendExpr__n_expr
]))(self
) /* n_expr on <self:ASendReassignFormExpr>*/;
3026 var10
= ((val
* (*)(val
*))(var9
->class->vft
[COLOR_typing__AExpr__mtype
]))(var9
) /* mtype on <var9:AExpr>*/;
3027 if (var10
== NULL
) {
3028 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/rapid_type_analysis.nit", 517);
3031 var_recvtype
= var10
;
3032 ((void (*)(val
*, val
*, val
*))(var_v
->class->vft
[COLOR_rapid_type_analysis__RapidTypeVisitor__add_send
]))(var_v
, var_recvtype
, var_mproperty
) /* add_send on <var_v:RapidTypeVisitor>*/;
3033 ((void (*)(val
*, val
*, val
*))(var_v
->class->vft
[COLOR_rapid_type_analysis__RapidTypeVisitor__add_send
]))(var_v
, var_recvtype
, var_write_mproperty
) /* add_send on <var_v:RapidTypeVisitor>*/;
3037 /* method rapid_type_analysis#ASendReassignFormExpr#accept_rapid_type_visitor for (self: Object, RapidTypeVisitor) */
3038 void VIRTUAL_rapid_type_analysis__ASendReassignFormExpr__accept_rapid_type_visitor(val
* self
, val
* p0
) {
3039 rapid_type_analysis__ASendReassignFormExpr__accept_rapid_type_visitor(self
, p0
);
3042 /* method rapid_type_analysis#AVarReassignExpr#accept_rapid_type_visitor for (self: AVarReassignExpr, RapidTypeVisitor) */
3043 void rapid_type_analysis__AVarReassignExpr__accept_rapid_type_visitor(val
* self
, val
* p0
) {
3044 val
* var_v
/* var v: RapidTypeVisitor */;
3045 val
* var
/* : nullable MType */;
3046 val
* var1
/* : nullable MMethodDef */;
3047 val
* var2
/* : MProperty */;
3049 var
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_typing__AReassignFormExpr__read_type
]))(self
) /* read_type on <self:AVarReassignExpr>*/;
3051 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/rapid_type_analysis.nit", 527);
3054 var1
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_typing__AReassignFormExpr__reassign_property
]))(self
) /* reassign_property on <self:AVarReassignExpr>*/;
3056 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Reciever is null", "src/rapid_type_analysis.nit", 527);
3059 var2
= ((val
* (*)(val
*))(var1
->class->vft
[COLOR_model__MPropDef__mproperty
]))(var1
) /* mproperty on <var1:nullable MMethodDef>*/;
3061 ((void (*)(val
*, val
*, val
*))(var_v
->class->vft
[COLOR_rapid_type_analysis__RapidTypeVisitor__add_send
]))(var_v
, var
, var2
) /* add_send on <var_v:RapidTypeVisitor>*/;
3064 /* method rapid_type_analysis#AVarReassignExpr#accept_rapid_type_visitor for (self: Object, RapidTypeVisitor) */
3065 void VIRTUAL_rapid_type_analysis__AVarReassignExpr__accept_rapid_type_visitor(val
* self
, val
* p0
) {
3066 rapid_type_analysis__AVarReassignExpr__accept_rapid_type_visitor(self
, p0
);
3069 /* method rapid_type_analysis#AAttrReassignExpr#accept_rapid_type_visitor for (self: AAttrReassignExpr, RapidTypeVisitor) */
3070 void rapid_type_analysis__AAttrReassignExpr__accept_rapid_type_visitor(val
* self
, val
* p0
) {
3071 val
* var_v
/* var v: RapidTypeVisitor */;
3072 val
* var
/* : nullable MType */;
3073 val
* var1
/* : nullable MMethodDef */;
3074 val
* var2
/* : MProperty */;
3076 var
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_typing__AReassignFormExpr__read_type
]))(self
) /* read_type on <self:AAttrReassignExpr>*/;
3078 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/rapid_type_analysis.nit", 534);
3081 var1
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_typing__AReassignFormExpr__reassign_property
]))(self
) /* reassign_property on <self:AAttrReassignExpr>*/;
3083 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Reciever is null", "src/rapid_type_analysis.nit", 534);
3086 var2
= ((val
* (*)(val
*))(var1
->class->vft
[COLOR_model__MPropDef__mproperty
]))(var1
) /* mproperty on <var1:nullable MMethodDef>*/;
3088 ((void (*)(val
*, val
*, val
*))(var_v
->class->vft
[COLOR_rapid_type_analysis__RapidTypeVisitor__add_send
]))(var_v
, var
, var2
) /* add_send on <var_v:RapidTypeVisitor>*/;
3091 /* method rapid_type_analysis#AAttrReassignExpr#accept_rapid_type_visitor for (self: Object, RapidTypeVisitor) */
3092 void VIRTUAL_rapid_type_analysis__AAttrReassignExpr__accept_rapid_type_visitor(val
* self
, val
* p0
) {
3093 rapid_type_analysis__AAttrReassignExpr__accept_rapid_type_visitor(self
, p0
);
3096 /* method rapid_type_analysis#ASuperExpr#accept_rapid_type_visitor for (self: ASuperExpr, RapidTypeVisitor) */
3097 void rapid_type_analysis__ASuperExpr__accept_rapid_type_visitor(val
* self
, val
* p0
) {
3098 val
* var_v
/* var v: RapidTypeVisitor */;
3099 val
* var
/* : nullable MMethod */;
3100 val
* var_mproperty
/* var mproperty: nullable MMethod */;
3101 val
* var1
/* : null */;
3102 short int var2
/* : Bool */;
3103 val
* var3
/* : MClassType */;
3104 val
* var4
/* : RapidTypeAnalysis */;
3105 val
* var5
/* : MClassType */;
3106 val
* var6
/* : MPropDef */;
3107 short int var7
/* : Bool */;
3111 var
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_typing__ASuperExpr__mproperty
]))(self
) /* mproperty on <self:ASuperExpr>*/;
3112 var_mproperty
= var
;
3114 if (var_mproperty
== NULL
) {
3115 var2
= 0; /* is null */
3117 var2
= 1; /* arg is null and recv is not */
3120 var3
= ((val
* (*)(val
*))(var_v
->class->vft
[COLOR_rapid_type_analysis__RapidTypeVisitor__receiver
]))(var_v
) /* receiver on <var_v:RapidTypeVisitor>*/;
3121 ((void (*)(val
*, val
*, val
*))(var_v
->class->vft
[COLOR_rapid_type_analysis__RapidTypeVisitor__add_monomorphic_send
]))(var_v
, var3
, var_mproperty
) /* add_monomorphic_send on <var_v:RapidTypeVisitor>*/;
3125 var4
= ((val
* (*)(val
*))(var_v
->class->vft
[COLOR_rapid_type_analysis__RapidTypeVisitor__analysis
]))(var_v
) /* analysis on <var_v:RapidTypeVisitor>*/;
3126 var5
= ((val
* (*)(val
*))(var_v
->class->vft
[COLOR_rapid_type_analysis__RapidTypeVisitor__receiver
]))(var_v
) /* receiver on <var_v:RapidTypeVisitor>*/;
3127 var6
= ((val
* (*)(val
*))(var_v
->class->vft
[COLOR_rapid_type_analysis__RapidTypeVisitor__mpropdef
]))(var_v
) /* mpropdef on <var_v:RapidTypeVisitor>*/;
3128 /* <var6:MPropDef> isa MMethodDef */
3129 cltype
= type_model__MMethodDef
.color
;
3130 idtype
= type_model__MMethodDef
.id
;
3131 if(cltype
>= var6
->type
->table_size
) {
3134 var7
= var6
->type
->type_table
[cltype
] == idtype
;
3137 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/rapid_type_analysis.nit", 547);
3140 ((void (*)(val
*, val
*, val
*))(var4
->class->vft
[COLOR_rapid_type_analysis__RapidTypeAnalysis__add_super_send
]))(var4
, var5
, var6
) /* add_super_send on <var4:RapidTypeAnalysis>*/;
3143 /* method rapid_type_analysis#ASuperExpr#accept_rapid_type_visitor for (self: Object, RapidTypeVisitor) */
3144 void VIRTUAL_rapid_type_analysis__ASuperExpr__accept_rapid_type_visitor(val
* self
, val
* p0
) {
3145 rapid_type_analysis__ASuperExpr__accept_rapid_type_visitor(self
, p0
);
3148 /* method rapid_type_analysis#AForExpr#accept_rapid_type_visitor for (self: AForExpr, RapidTypeVisitor) */
3149 void rapid_type_analysis__AForExpr__accept_rapid_type_visitor(val
* self
, val
* p0
) {
3150 val
* var_v
/* var v: RapidTypeVisitor */;
3151 val
* var
/* : AExpr */;
3152 val
* var1
/* : nullable MType */;
3153 val
* var_recvtype
/* var recvtype: MType */;
3154 val
* var2
/* : nullable MClassType */;
3155 val
* var_colltype
/* var colltype: MClassType */;
3156 static val
* varonce
;
3157 val
* var3
/* : String */;
3158 char* var4
/* : NativeString */;
3159 long var5
/* : Int */;
3160 val
* var6
/* : String */;
3161 val
* var7
/* : MMethod */;
3162 val
* var_itmeth
/* var itmeth: MMethod */;
3163 val
* var8
/* : MPropDef */;
3164 val
* var9
/* : nullable MSignature */;
3165 val
* var10
/* : nullable MType */;
3166 short int var11
/* : Bool */;
3169 val
* var12
/* : MClass */;
3170 val
* var13
/* : MClassDef */;
3171 val
* var14
/* : MClassType */;
3172 val
* var_iteratortype
/* var iteratortype: MClassType */;
3173 static val
* varonce15
;
3174 val
* var16
/* : String */;
3175 char* var17
/* : NativeString */;
3176 long var18
/* : Int */;
3177 val
* var19
/* : String */;
3178 val
* var20
/* : MClass */;
3179 val
* var21
/* : MClassType */;
3180 val
* var_objtype
/* var objtype: MClassType */;
3181 static val
* varonce22
;
3182 val
* var23
/* : String */;
3183 char* var24
/* : NativeString */;
3184 long var25
/* : Int */;
3185 val
* var26
/* : String */;
3186 val
* var27
/* : MMethod */;
3187 val
* var28
/* : nullable Array[Variable] */;
3188 long var29
/* : Int */;
3189 long var30
/* : Int */;
3190 short int var31
/* : Bool */;
3191 short int var33
/* : Bool */;
3192 static val
* varonce34
;
3193 val
* var35
/* : String */;
3194 char* var36
/* : NativeString */;
3195 long var37
/* : Int */;
3196 val
* var38
/* : String */;
3197 val
* var39
/* : MMethod */;
3198 val
* var40
/* : nullable Array[Variable] */;
3199 long var41
/* : Int */;
3200 long var42
/* : Int */;
3201 short int var43
/* : Bool */;
3202 short int var45
/* : Bool */;
3203 static val
* varonce46
;
3204 val
* var47
/* : String */;
3205 char* var48
/* : NativeString */;
3206 long var49
/* : Int */;
3207 val
* var50
/* : String */;
3208 val
* var51
/* : MMethod */;
3209 static val
* varonce52
;
3210 val
* var53
/* : String */;
3211 char* var54
/* : NativeString */;
3212 long var55
/* : Int */;
3213 val
* var56
/* : String */;
3214 val
* var57
/* : MMethod */;
3215 static val
* varonce58
;
3216 val
* var59
/* : String */;
3217 char* var60
/* : NativeString */;
3218 long var61
/* : Int */;
3219 val
* var62
/* : String */;
3220 val
* var63
/* : MMethod */;
3222 var
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__AForExpr__n_expr
]))(self
) /* n_expr on <self:AForExpr>*/;
3223 var1
= ((val
* (*)(val
*))(var
->class->vft
[COLOR_typing__AExpr__mtype
]))(var
) /* mtype on <var:AExpr>*/;
3225 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/rapid_type_analysis.nit", 554);
3228 var_recvtype
= var1
;
3229 var2
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_typing__AForExpr__coltype
]))(self
) /* coltype on <self:AForExpr>*/;
3231 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/rapid_type_analysis.nit", 555);
3234 var_colltype
= var2
;
3240 var6
= string__NativeString__to_s_with_length(var4
, var5
);
3244 var7
= ((val
* (*)(val
*, val
*, val
*))(var_v
->class->vft
[COLOR_rapid_type_analysis__RapidTypeVisitor__get_method
]))(var_v
, var_colltype
, var3
) /* get_method on <var_v:RapidTypeVisitor>*/;
3246 ((void (*)(val
*, val
*, val
*))(var_v
->class->vft
[COLOR_rapid_type_analysis__RapidTypeVisitor__add_send
]))(var_v
, var_recvtype
, var_itmeth
) /* add_send on <var_v:RapidTypeVisitor>*/;
3247 var8
= ((val
* (*)(val
*))(var_itmeth
->class->vft
[COLOR_model__MProperty__intro
]))(var_itmeth
) /* intro on <var_itmeth:MMethod>*/;
3248 var9
= ((val
* (*)(val
*))(var8
->class->vft
[COLOR_model__MMethodDef__msignature
]))(var8
) /* msignature on <var8:MPropDef(MMethodDef)>*/;
3250 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Reciever is null", "src/rapid_type_analysis.nit", 558);
3253 var10
= ((val
* (*)(val
*))(var9
->class->vft
[COLOR_model__MSignature__return_mtype
]))(var9
) /* return_mtype on <var9:nullable MSignature>*/;
3255 /* <var10:nullable MType> isa MClassType */
3256 cltype
= type_model__MClassType
.color
;
3257 idtype
= type_model__MClassType
.id
;
3261 if(cltype
>= var10
->type
->table_size
) {
3264 var11
= var10
->type
->type_table
[cltype
] == idtype
;
3268 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/rapid_type_analysis.nit", 558);
3271 var12
= ((val
* (*)(val
*))(var10
->class->vft
[COLOR_model__MClassType__mclass
]))(var10
) /* mclass on <var10:nullable MType(MClassType)>*/;
3272 var13
= ((val
* (*)(val
*))(var12
->class->vft
[COLOR_model__MClass__intro
]))(var12
) /* intro on <var12:MClass>*/;
3273 var14
= ((val
* (*)(val
*))(var13
->class->vft
[COLOR_model__MClassDef__bound_mtype
]))(var13
) /* bound_mtype on <var13:MClassDef>*/;
3274 var_iteratortype
= var14
;
3280 var19
= string__NativeString__to_s_with_length(var17
, var18
);
3284 var20
= ((val
* (*)(val
*, val
*))(var_v
->class->vft
[COLOR_rapid_type_analysis__RapidTypeVisitor__get_class
]))(var_v
, var16
) /* get_class on <var_v:RapidTypeVisitor>*/;
3285 var21
= ((val
* (*)(val
*))(var20
->class->vft
[COLOR_model__MClass__mclass_type
]))(var20
) /* mclass_type on <var20:MClass>*/;
3286 var_objtype
= var21
;
3292 var26
= string__NativeString__to_s_with_length(var24
, var25
);
3296 var27
= ((val
* (*)(val
*, val
*, val
*))(var_v
->class->vft
[COLOR_rapid_type_analysis__RapidTypeVisitor__get_method
]))(var_v
, var_iteratortype
, var23
) /* get_method on <var_v:RapidTypeVisitor>*/;
3297 ((void (*)(val
*, val
*, val
*))(var_v
->class->vft
[COLOR_rapid_type_analysis__RapidTypeVisitor__add_send
]))(var_v
, var_objtype
, var27
) /* add_send on <var_v:RapidTypeVisitor>*/;
3298 var28
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_scope__AForExpr__variables
]))(self
) /* variables on <self:AForExpr>*/;
3299 if (var28
== NULL
) {
3300 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Reciever is null", "src/rapid_type_analysis.nit", 561);
3303 var29
= ((long (*)(val
*))(var28
->class->vft
[COLOR_abstract_collection__Collection__length
]))(var28
) /* length on <var28:nullable Array[Variable]>*/;
3306 { /* Inline kernel#Int#== (var29,var30) */
3307 var33
= var29
== var30
;
3310 RET_LABEL32
:(void)0;
3318 var38
= string__NativeString__to_s_with_length(var36
, var37
);
3322 var39
= ((val
* (*)(val
*, val
*, val
*))(var_v
->class->vft
[COLOR_rapid_type_analysis__RapidTypeVisitor__get_method
]))(var_v
, var_iteratortype
, var35
) /* get_method on <var_v:RapidTypeVisitor>*/;
3323 ((void (*)(val
*, val
*, val
*))(var_v
->class->vft
[COLOR_rapid_type_analysis__RapidTypeVisitor__add_send
]))(var_v
, var_objtype
, var39
) /* add_send on <var_v:RapidTypeVisitor>*/;
3325 var40
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_scope__AForExpr__variables
]))(self
) /* variables on <self:AForExpr>*/;
3326 if (var40
== NULL
) {
3327 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Reciever is null", "src/rapid_type_analysis.nit", 563);
3330 var41
= ((long (*)(val
*))(var40
->class->vft
[COLOR_abstract_collection__Collection__length
]))(var40
) /* length on <var40:nullable Array[Variable]>*/;
3333 { /* Inline kernel#Int#== (var41,var42) */
3334 var45
= var41
== var42
;
3337 RET_LABEL44
:(void)0;
3345 var50
= string__NativeString__to_s_with_length(var48
, var49
);
3349 var51
= ((val
* (*)(val
*, val
*, val
*))(var_v
->class->vft
[COLOR_rapid_type_analysis__RapidTypeVisitor__get_method
]))(var_v
, var_iteratortype
, var47
) /* get_method on <var_v:RapidTypeVisitor>*/;
3350 ((void (*)(val
*, val
*, val
*))(var_v
->class->vft
[COLOR_rapid_type_analysis__RapidTypeVisitor__add_send
]))(var_v
, var_objtype
, var51
) /* add_send on <var_v:RapidTypeVisitor>*/;
3356 var56
= string__NativeString__to_s_with_length(var54
, var55
);
3360 var57
= ((val
* (*)(val
*, val
*, val
*))(var_v
->class->vft
[COLOR_rapid_type_analysis__RapidTypeVisitor__get_method
]))(var_v
, var_iteratortype
, var53
) /* get_method on <var_v:RapidTypeVisitor>*/;
3361 ((void (*)(val
*, val
*, val
*))(var_v
->class->vft
[COLOR_rapid_type_analysis__RapidTypeVisitor__add_send
]))(var_v
, var_objtype
, var57
) /* add_send on <var_v:RapidTypeVisitor>*/;
3363 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Aborted", "src/rapid_type_analysis.nit", 567);
3372 var62
= string__NativeString__to_s_with_length(var60
, var61
);
3376 var63
= ((val
* (*)(val
*, val
*, val
*))(var_v
->class->vft
[COLOR_rapid_type_analysis__RapidTypeVisitor__get_method
]))(var_v
, var_iteratortype
, var59
) /* get_method on <var_v:RapidTypeVisitor>*/;
3377 ((void (*)(val
*, val
*, val
*))(var_v
->class->vft
[COLOR_rapid_type_analysis__RapidTypeVisitor__add_send
]))(var_v
, var_objtype
, var63
) /* add_send on <var_v:RapidTypeVisitor>*/;
3380 /* method rapid_type_analysis#AForExpr#accept_rapid_type_visitor for (self: Object, RapidTypeVisitor) */
3381 void VIRTUAL_rapid_type_analysis__AForExpr__accept_rapid_type_visitor(val
* self
, val
* p0
) {
3382 rapid_type_analysis__AForExpr__accept_rapid_type_visitor(self
, p0
);
3385 /* method rapid_type_analysis#ANewExpr#accept_rapid_type_visitor for (self: ANewExpr, RapidTypeVisitor) */
3386 void rapid_type_analysis__ANewExpr__accept_rapid_type_visitor(val
* self
, val
* p0
) {
3387 val
* var_v
/* var v: RapidTypeVisitor */;
3388 val
* var
/* : nullable MType */;
3389 short int var1
/* : Bool */;
3392 val
* var_mtype
/* var mtype: MClassType */;
3393 val
* var2
/* : nullable MMethod */;
3394 val
* var_mproperty
/* var mproperty: MMethod */;
3396 var
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_typing__AExpr__mtype
]))(self
) /* mtype on <self:ANewExpr>*/;
3397 /* <var:nullable MType> isa MClassType */
3398 cltype
= type_model__MClassType
.color
;
3399 idtype
= type_model__MClassType
.id
;
3403 if(cltype
>= var
->type
->table_size
) {
3406 var1
= var
->type
->type_table
[cltype
] == idtype
;
3410 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/rapid_type_analysis.nit", 576);
3414 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_rapid_type_analysis__RapidTypeVisitor__add_type
]))(var_v
, var_mtype
) /* add_type on <var_v:RapidTypeVisitor>*/;
3415 var2
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_typing__ANewExpr__mproperty
]))(self
) /* mproperty on <self:ANewExpr>*/;
3417 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/rapid_type_analysis.nit", 578);
3420 var_mproperty
= var2
;
3421 ((void (*)(val
*, val
*, val
*))(var_v
->class->vft
[COLOR_rapid_type_analysis__RapidTypeVisitor__add_monomorphic_send
]))(var_v
, var_mtype
, var_mproperty
) /* add_monomorphic_send on <var_v:RapidTypeVisitor>*/;
3424 /* method rapid_type_analysis#ANewExpr#accept_rapid_type_visitor for (self: Object, RapidTypeVisitor) */
3425 void VIRTUAL_rapid_type_analysis__ANewExpr__accept_rapid_type_visitor(val
* self
, val
* p0
) {
3426 rapid_type_analysis__ANewExpr__accept_rapid_type_visitor(self
, p0
);