1 #include "abstract_compiler.sep.0.h"
2 /* method abstract_compiler#AAsCastExpr#expr for (self: Object, AbstractCompilerVisitor): nullable RuntimeVariable */
3 val
* VIRTUAL_abstract_compiler__AAsCastExpr__expr(val
* self
, val
* p0
) {
4 val
* var
/* : nullable RuntimeVariable */;
5 val
* var1
/* : nullable RuntimeVariable */;
6 var1
= abstract_compiler__AAsCastExpr__expr(self
, p0
);
11 /* method abstract_compiler#AAsNotnullExpr#expr for (self: AAsNotnullExpr, AbstractCompilerVisitor): nullable RuntimeVariable */
12 val
* abstract_compiler__AAsNotnullExpr__expr(val
* self
, val
* p0
) {
13 val
* var
/* : nullable RuntimeVariable */;
14 val
* var_v
/* var v: AbstractCompilerVisitor */;
15 val
* var1
/* : AExpr */;
16 val
* var2
/* : null */;
17 val
* var3
/* : RuntimeVariable */;
18 val
* var_i
/* var i: RuntimeVariable */;
19 val
* var4
/* : AbstractCompiler */;
20 val
* var5
/* : ModelBuilder */;
21 val
* var6
/* : ToolContext */;
22 val
* var7
/* : OptionBool */;
23 val
* var8
/* : nullable Object */;
24 short int var9
/* : Bool */;
26 val
* var10
/* : String */;
27 char* var11
/* : NativeString */;
28 long var12
/* : Int */;
29 val
* var13
/* : String */;
30 static val
* varonce14
;
31 val
* var15
/* : String */;
32 char* var16
/* : NativeString */;
33 long var17
/* : Int */;
34 val
* var18
/* : String */;
35 val
* var19
/* : Array[Object] */;
36 long var20
/* : Int */;
37 val
* var21
/* : NativeArray[Object] */;
38 val
* var22
/* : String */;
39 static val
* varonce23
;
40 val
* var24
/* : String */;
41 char* var25
/* : NativeString */;
42 long var26
/* : Int */;
43 val
* var27
/* : String */;
44 static val
* varonce28
;
45 val
* var29
/* : String */;
46 char* var30
/* : NativeString */;
47 long var31
/* : Int */;
48 val
* var32
/* : String */;
50 var1
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__AAsNotnullExpr__n_expr
]))(self
) /* n_expr on <self:AAsNotnullExpr>*/;
52 var3
= ((val
* (*)(val
*, val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__expr
]))(var_v
, var1
, var2
) /* expr on <var_v:AbstractCompilerVisitor>*/;
54 var4
= ((val
* (*)(val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__compiler
]))(var_v
) /* compiler on <var_v:AbstractCompilerVisitor>*/;
55 var5
= ((val
* (*)(val
*))(var4
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__modelbuilder
]))(var4
) /* modelbuilder on <var4:AbstractCompiler>*/;
56 var6
= ((val
* (*)(val
*))(var5
->class->vft
[COLOR_modelbuilder__ModelBuilder__toolcontext
]))(var5
) /* toolcontext on <var5:ModelBuilder>*/;
57 var7
= ((val
* (*)(val
*))(var6
->class->vft
[COLOR_abstract_compiler__ToolContext__opt_no_check_assert
]))(var6
) /* opt_no_check_assert on <var6:ToolContext>*/;
58 var8
= ((val
* (*)(val
*))(var7
->class->vft
[COLOR_opts__Option__value
]))(var7
) /* value on <var7:OptionBool>*/;
59 var9
= ((struct instance_kernel__Bool
*)var8
)->value
; /* autounbox from nullable Object to Bool */;
70 var13
= string__NativeString__to_s_with_length(var11
, var12
);
77 var16
= " == NULL) {";
79 var18
= string__NativeString__to_s_with_length(var16
, var17
);
83 var19
= NEW_array__Array(&type_array__Arraykernel__Object
);
84 { /* var19 = array_instance Array[Object] */
86 var21
= NEW_array__NativeArray(var20
, &type_array__NativeArraykernel__Object
);
87 ((struct instance_array__NativeArray
*)var21
)->values
[0] = (val
*) var10
;
88 ((struct instance_array__NativeArray
*)var21
)->values
[1] = (val
*) var_i
;
89 ((struct instance_array__NativeArray
*)var21
)->values
[2] = (val
*) var15
;
90 ((void (*)(val
*, val
*, long))(var19
->class->vft
[COLOR_array__Array__with_native
]))(var19
, var21
, var20
) /* with_native on <var19:Array[Object]>*/;
92 var22
= ((val
* (*)(val
*))(var19
->class->vft
[COLOR_string__Object__to_s
]))(var19
) /* to_s on <var19:Array[Object]>*/;
93 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(var_v
, var22
) /* add on <var_v:AbstractCompilerVisitor>*/;
97 var25
= "Cast failed";
99 var27
= string__NativeString__to_s_with_length(var25
, var26
);
103 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add_abort
]))(var_v
, var24
) /* add_abort on <var_v:AbstractCompilerVisitor>*/;
109 var32
= string__NativeString__to_s_with_length(var30
, var31
);
113 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(var_v
, var29
) /* add on <var_v:AbstractCompilerVisitor>*/;
119 /* method abstract_compiler#AAsNotnullExpr#expr for (self: Object, AbstractCompilerVisitor): nullable RuntimeVariable */
120 val
* VIRTUAL_abstract_compiler__AAsNotnullExpr__expr(val
* self
, val
* p0
) {
121 val
* var
/* : nullable RuntimeVariable */;
122 val
* var1
/* : nullable RuntimeVariable */;
123 var1
= abstract_compiler__AAsNotnullExpr__expr(self
, p0
);
128 /* method abstract_compiler#AParExpr#expr for (self: AParExpr, AbstractCompilerVisitor): nullable RuntimeVariable */
129 val
* abstract_compiler__AParExpr__expr(val
* self
, val
* p0
) {
130 val
* var
/* : nullable RuntimeVariable */;
131 val
* var_v
/* var v: AbstractCompilerVisitor */;
132 val
* var1
/* : AExpr */;
133 val
* var2
/* : null */;
134 val
* var3
/* : RuntimeVariable */;
136 var1
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__AProxyExpr__n_expr
]))(self
) /* n_expr on <self:AParExpr>*/;
138 var3
= ((val
* (*)(val
*, val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__expr
]))(var_v
, var1
, var2
) /* expr on <var_v:AbstractCompilerVisitor>*/;
144 /* method abstract_compiler#AParExpr#expr for (self: Object, AbstractCompilerVisitor): nullable RuntimeVariable */
145 val
* VIRTUAL_abstract_compiler__AParExpr__expr(val
* self
, val
* p0
) {
146 val
* var
/* : nullable RuntimeVariable */;
147 val
* var1
/* : nullable RuntimeVariable */;
148 var1
= abstract_compiler__AParExpr__expr(self
, p0
);
153 /* method abstract_compiler#AOnceExpr#expr for (self: AOnceExpr, AbstractCompilerVisitor): nullable RuntimeVariable */
154 val
* abstract_compiler__AOnceExpr__expr(val
* self
, val
* p0
) {
155 val
* var
/* : nullable RuntimeVariable */;
156 val
* var_v
/* var v: AbstractCompilerVisitor */;
157 val
* var1
/* : nullable MType */;
158 val
* var_mtype
/* var mtype: MType */;
160 val
* var2
/* : String */;
161 char* var3
/* : NativeString */;
162 long var4
/* : Int */;
163 val
* var5
/* : String */;
164 val
* var6
/* : String */;
165 val
* var_name
/* var name: String */;
166 static val
* varonce7
;
167 val
* var8
/* : String */;
168 char* var9
/* : NativeString */;
169 long var10
/* : Int */;
170 val
* var11
/* : String */;
171 val
* var12
/* : String */;
172 val
* var13
/* : String */;
173 val
* var_guard
/* var guard: String */;
174 static val
* varonce14
;
175 val
* var15
/* : String */;
176 char* var16
/* : NativeString */;
177 long var17
/* : Int */;
178 val
* var18
/* : String */;
179 val
* var19
/* : String */;
180 static val
* varonce20
;
181 val
* var21
/* : String */;
182 char* var22
/* : NativeString */;
183 long var23
/* : Int */;
184 val
* var24
/* : String */;
185 static val
* varonce25
;
186 val
* var26
/* : String */;
187 char* var27
/* : NativeString */;
188 long var28
/* : Int */;
189 val
* var29
/* : String */;
190 val
* var30
/* : Array[Object] */;
191 long var31
/* : Int */;
192 val
* var32
/* : NativeArray[Object] */;
193 val
* var33
/* : String */;
194 static val
* varonce34
;
195 val
* var35
/* : String */;
196 char* var36
/* : NativeString */;
197 long var37
/* : Int */;
198 val
* var38
/* : String */;
199 static val
* varonce39
;
200 val
* var40
/* : String */;
201 char* var41
/* : NativeString */;
202 long var42
/* : Int */;
203 val
* var43
/* : String */;
204 val
* var44
/* : Array[Object] */;
205 long var45
/* : Int */;
206 val
* var46
/* : NativeArray[Object] */;
207 val
* var47
/* : String */;
208 val
* var48
/* : RuntimeVariable */;
209 val
* var_res
/* var res: RuntimeVariable */;
210 static val
* varonce49
;
211 val
* var50
/* : String */;
212 char* var51
/* : NativeString */;
213 long var52
/* : Int */;
214 val
* var53
/* : String */;
215 static val
* varonce54
;
216 val
* var55
/* : String */;
217 char* var56
/* : NativeString */;
218 long var57
/* : Int */;
219 val
* var58
/* : String */;
220 val
* var59
/* : Array[Object] */;
221 long var60
/* : Int */;
222 val
* var61
/* : NativeArray[Object] */;
223 val
* var62
/* : String */;
224 static val
* varonce63
;
225 val
* var64
/* : String */;
226 char* var65
/* : NativeString */;
227 long var66
/* : Int */;
228 val
* var67
/* : String */;
229 static val
* varonce68
;
230 val
* var69
/* : String */;
231 char* var70
/* : NativeString */;
232 long var71
/* : Int */;
233 val
* var72
/* : String */;
234 val
* var73
/* : Array[Object] */;
235 long var74
/* : Int */;
236 val
* var75
/* : NativeArray[Object] */;
237 val
* var76
/* : String */;
238 static val
* varonce77
;
239 val
* var78
/* : String */;
240 char* var79
/* : NativeString */;
241 long var80
/* : Int */;
242 val
* var81
/* : String */;
243 val
* var82
/* : AExpr */;
244 val
* var83
/* : RuntimeVariable */;
245 val
* var_i
/* var i: RuntimeVariable */;
246 static val
* varonce84
;
247 val
* var85
/* : String */;
248 char* var86
/* : NativeString */;
249 long var87
/* : Int */;
250 val
* var88
/* : String */;
251 static val
* varonce89
;
252 val
* var90
/* : String */;
253 char* var91
/* : NativeString */;
254 long var92
/* : Int */;
255 val
* var93
/* : String */;
256 val
* var94
/* : Array[Object] */;
257 long var95
/* : Int */;
258 val
* var96
/* : NativeArray[Object] */;
259 val
* var97
/* : String */;
260 static val
* varonce98
;
261 val
* var99
/* : String */;
262 char* var100
/* : NativeString */;
263 long var101
/* : Int */;
264 val
* var102
/* : String */;
265 static val
* varonce103
;
266 val
* var104
/* : String */;
267 char* var105
/* : NativeString */;
268 long var106
/* : Int */;
269 val
* var107
/* : String */;
270 val
* var108
/* : Array[Object] */;
271 long var109
/* : Int */;
272 val
* var110
/* : NativeArray[Object] */;
273 val
* var111
/* : String */;
274 static val
* varonce112
;
275 val
* var113
/* : String */;
276 char* var114
/* : NativeString */;
277 long var115
/* : Int */;
278 val
* var116
/* : String */;
279 val
* var117
/* : Array[Object] */;
280 long var118
/* : Int */;
281 val
* var119
/* : NativeArray[Object] */;
282 val
* var120
/* : String */;
283 static val
* varonce121
;
284 val
* var122
/* : String */;
285 char* var123
/* : NativeString */;
286 long var124
/* : Int */;
287 val
* var125
/* : String */;
289 var1
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_typing__AExpr__mtype
]))(self
) /* mtype on <self:AOnceExpr>*/;
291 fprintf(stderr
, "Runtime error: %s", "Cast failed");
292 fprintf(stderr
, " (%s:%d)\n", "src/abstract_compiler.nit", 2441);
301 var5
= string__NativeString__to_s_with_length(var3
, var4
);
305 var6
= ((val
* (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__get_name
]))(var_v
, var2
) /* get_name on <var_v:AbstractCompilerVisitor>*/;
312 var11
= string__NativeString__to_s_with_length(var9
, var10
);
316 var12
= ((val
* (*)(val
*, val
*))(var_name
->class->vft
[COLOR_string__String___43d
]))(var_name
, var8
) /* + on <var_name:String>*/;
317 var13
= ((val
* (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__get_name
]))(var_v
, var12
) /* get_name on <var_v:AbstractCompilerVisitor>*/;
324 var18
= string__NativeString__to_s_with_length(var16
, var17
);
328 var19
= ((val
* (*)(val
*))(var_mtype
->class->vft
[COLOR_abstract_compiler__MType__ctype
]))(var_mtype
) /* ctype on <var_mtype:MType>*/;
334 var24
= string__NativeString__to_s_with_length(var22
, var23
);
343 var29
= string__NativeString__to_s_with_length(var27
, var28
);
347 var30
= NEW_array__Array(&type_array__Arraykernel__Object
);
348 { /* var30 = array_instance Array[Object] */
350 var32
= NEW_array__NativeArray(var31
, &type_array__NativeArraykernel__Object
);
351 ((struct instance_array__NativeArray
*)var32
)->values
[0] = (val
*) var15
;
352 ((struct instance_array__NativeArray
*)var32
)->values
[1] = (val
*) var19
;
353 ((struct instance_array__NativeArray
*)var32
)->values
[2] = (val
*) var21
;
354 ((struct instance_array__NativeArray
*)var32
)->values
[3] = (val
*) var_name
;
355 ((struct instance_array__NativeArray
*)var32
)->values
[4] = (val
*) var26
;
356 ((void (*)(val
*, val
*, long))(var30
->class->vft
[COLOR_array__Array__with_native
]))(var30
, var32
, var31
) /* with_native on <var30:Array[Object]>*/;
358 var33
= ((val
* (*)(val
*))(var30
->class->vft
[COLOR_string__Object__to_s
]))(var30
) /* to_s on <var30:Array[Object]>*/;
359 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add_decl
]))(var_v
, var33
) /* add_decl on <var_v:AbstractCompilerVisitor>*/;
363 var36
= "static int ";
365 var38
= string__NativeString__to_s_with_length(var36
, var37
);
374 var43
= string__NativeString__to_s_with_length(var41
, var42
);
378 var44
= NEW_array__Array(&type_array__Arraykernel__Object
);
379 { /* var44 = array_instance Array[Object] */
381 var46
= NEW_array__NativeArray(var45
, &type_array__NativeArraykernel__Object
);
382 ((struct instance_array__NativeArray
*)var46
)->values
[0] = (val
*) var35
;
383 ((struct instance_array__NativeArray
*)var46
)->values
[1] = (val
*) var_guard
;
384 ((struct instance_array__NativeArray
*)var46
)->values
[2] = (val
*) var40
;
385 ((void (*)(val
*, val
*, long))(var44
->class->vft
[COLOR_array__Array__with_native
]))(var44
, var46
, var45
) /* with_native on <var44:Array[Object]>*/;
387 var47
= ((val
* (*)(val
*))(var44
->class->vft
[COLOR_string__Object__to_s
]))(var44
) /* to_s on <var44:Array[Object]>*/;
388 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add_decl
]))(var_v
, var47
) /* add_decl on <var_v:AbstractCompilerVisitor>*/;
389 var48
= ((val
* (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__new_var
]))(var_v
, var_mtype
) /* new_var on <var_v:AbstractCompilerVisitor>*/;
396 var53
= string__NativeString__to_s_with_length(var51
, var52
);
405 var58
= string__NativeString__to_s_with_length(var56
, var57
);
409 var59
= NEW_array__Array(&type_array__Arraykernel__Object
);
410 { /* var59 = array_instance Array[Object] */
412 var61
= NEW_array__NativeArray(var60
, &type_array__NativeArraykernel__Object
);
413 ((struct instance_array__NativeArray
*)var61
)->values
[0] = (val
*) var50
;
414 ((struct instance_array__NativeArray
*)var61
)->values
[1] = (val
*) var_guard
;
415 ((struct instance_array__NativeArray
*)var61
)->values
[2] = (val
*) var55
;
416 ((void (*)(val
*, val
*, long))(var59
->class->vft
[COLOR_array__Array__with_native
]))(var59
, var61
, var60
) /* with_native on <var59:Array[Object]>*/;
418 var62
= ((val
* (*)(val
*))(var59
->class->vft
[COLOR_string__Object__to_s
]))(var59
) /* to_s on <var59:Array[Object]>*/;
419 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(var_v
, var62
) /* add on <var_v:AbstractCompilerVisitor>*/;
425 var67
= string__NativeString__to_s_with_length(var65
, var66
);
434 var72
= string__NativeString__to_s_with_length(var70
, var71
);
438 var73
= NEW_array__Array(&type_array__Arraykernel__Object
);
439 { /* var73 = array_instance Array[Object] */
441 var75
= NEW_array__NativeArray(var74
, &type_array__NativeArraykernel__Object
);
442 ((struct instance_array__NativeArray
*)var75
)->values
[0] = (val
*) var_res
;
443 ((struct instance_array__NativeArray
*)var75
)->values
[1] = (val
*) var64
;
444 ((struct instance_array__NativeArray
*)var75
)->values
[2] = (val
*) var_name
;
445 ((struct instance_array__NativeArray
*)var75
)->values
[3] = (val
*) var69
;
446 ((void (*)(val
*, val
*, long))(var73
->class->vft
[COLOR_array__Array__with_native
]))(var73
, var75
, var74
) /* with_native on <var73:Array[Object]>*/;
448 var76
= ((val
* (*)(val
*))(var73
->class->vft
[COLOR_string__Object__to_s
]))(var73
) /* to_s on <var73:Array[Object]>*/;
449 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(var_v
, var76
) /* add on <var_v:AbstractCompilerVisitor>*/;
455 var81
= string__NativeString__to_s_with_length(var79
, var80
);
459 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(var_v
, var78
) /* add on <var_v:AbstractCompilerVisitor>*/;
460 var82
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__AProxyExpr__n_expr
]))(self
) /* n_expr on <self:AOnceExpr>*/;
461 var83
= ((val
* (*)(val
*, val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__expr
]))(var_v
, var82
, var_mtype
) /* expr on <var_v:AbstractCompilerVisitor>*/;
468 var88
= string__NativeString__to_s_with_length(var86
, var87
);
477 var93
= string__NativeString__to_s_with_length(var91
, var92
);
481 var94
= NEW_array__Array(&type_array__Arraykernel__Object
);
482 { /* var94 = array_instance Array[Object] */
484 var96
= NEW_array__NativeArray(var95
, &type_array__NativeArraykernel__Object
);
485 ((struct instance_array__NativeArray
*)var96
)->values
[0] = (val
*) var_res
;
486 ((struct instance_array__NativeArray
*)var96
)->values
[1] = (val
*) var85
;
487 ((struct instance_array__NativeArray
*)var96
)->values
[2] = (val
*) var_i
;
488 ((struct instance_array__NativeArray
*)var96
)->values
[3] = (val
*) var90
;
489 ((void (*)(val
*, val
*, long))(var94
->class->vft
[COLOR_array__Array__with_native
]))(var94
, var96
, var95
) /* with_native on <var94:Array[Object]>*/;
491 var97
= ((val
* (*)(val
*))(var94
->class->vft
[COLOR_string__Object__to_s
]))(var94
) /* to_s on <var94:Array[Object]>*/;
492 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(var_v
, var97
) /* add on <var_v:AbstractCompilerVisitor>*/;
498 var102
= string__NativeString__to_s_with_length(var100
, var101
);
507 var107
= string__NativeString__to_s_with_length(var105
, var106
);
511 var108
= NEW_array__Array(&type_array__Arraykernel__Object
);
512 { /* var108 = array_instance Array[Object] */
514 var110
= NEW_array__NativeArray(var109
, &type_array__NativeArraykernel__Object
);
515 ((struct instance_array__NativeArray
*)var110
)->values
[0] = (val
*) var_name
;
516 ((struct instance_array__NativeArray
*)var110
)->values
[1] = (val
*) var99
;
517 ((struct instance_array__NativeArray
*)var110
)->values
[2] = (val
*) var_res
;
518 ((struct instance_array__NativeArray
*)var110
)->values
[3] = (val
*) var104
;
519 ((void (*)(val
*, val
*, long))(var108
->class->vft
[COLOR_array__Array__with_native
]))(var108
, var110
, var109
) /* with_native on <var108:Array[Object]>*/;
521 var111
= ((val
* (*)(val
*))(var108
->class->vft
[COLOR_string__Object__to_s
]))(var108
) /* to_s on <var108:Array[Object]>*/;
522 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(var_v
, var111
) /* add on <var_v:AbstractCompilerVisitor>*/;
528 var116
= string__NativeString__to_s_with_length(var114
, var115
);
532 var117
= NEW_array__Array(&type_array__Arraykernel__Object
);
533 { /* var117 = array_instance Array[Object] */
535 var119
= NEW_array__NativeArray(var118
, &type_array__NativeArraykernel__Object
);
536 ((struct instance_array__NativeArray
*)var119
)->values
[0] = (val
*) var_guard
;
537 ((struct instance_array__NativeArray
*)var119
)->values
[1] = (val
*) var113
;
538 ((void (*)(val
*, val
*, long))(var117
->class->vft
[COLOR_array__Array__with_native
]))(var117
, var119
, var118
) /* with_native on <var117:Array[Object]>*/;
540 var120
= ((val
* (*)(val
*))(var117
->class->vft
[COLOR_string__Object__to_s
]))(var117
) /* to_s on <var117:Array[Object]>*/;
541 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(var_v
, var120
) /* add on <var_v:AbstractCompilerVisitor>*/;
547 var125
= string__NativeString__to_s_with_length(var123
, var124
);
551 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(var_v
, var122
) /* add on <var_v:AbstractCompilerVisitor>*/;
557 /* method abstract_compiler#AOnceExpr#expr for (self: Object, AbstractCompilerVisitor): nullable RuntimeVariable */
558 val
* VIRTUAL_abstract_compiler__AOnceExpr__expr(val
* self
, val
* p0
) {
559 val
* var
/* : nullable RuntimeVariable */;
560 val
* var1
/* : nullable RuntimeVariable */;
561 var1
= abstract_compiler__AOnceExpr__expr(self
, p0
);
566 /* method abstract_compiler#ASendExpr#expr for (self: ASendExpr, AbstractCompilerVisitor): nullable RuntimeVariable */
567 val
* abstract_compiler__ASendExpr__expr(val
* self
, val
* p0
) {
568 val
* var
/* : nullable RuntimeVariable */;
569 val
* var_v
/* var v: AbstractCompilerVisitor */;
570 val
* var1
/* : AExpr */;
571 val
* var2
/* : null */;
572 val
* var3
/* : RuntimeVariable */;
573 val
* var_recv
/* var recv: RuntimeVariable */;
574 val
* var4
/* : Array[RuntimeVariable] */;
575 long var5
/* : Int */;
576 val
* var_
/* var : Array[RuntimeVariable] */;
577 val
* var_args
/* var args: Array[RuntimeVariable] */;
578 val
* var6
/* : nullable Array[AExpr] */;
579 val
* var7
/* : Iterator[nullable Object] */;
580 short int var8
/* : Bool */;
581 val
* var9
/* : nullable Object */;
582 val
* var_a
/* var a: AExpr */;
583 val
* var10
/* : null */;
584 val
* var11
/* : RuntimeVariable */;
585 val
* var12
/* : nullable CallSite */;
586 val
* var13
/* : nullable RuntimeVariable */;
588 var1
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__ASendExpr__n_expr
]))(self
) /* n_expr on <self:ASendExpr>*/;
590 var3
= ((val
* (*)(val
*, val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__expr
]))(var_v
, var1
, var2
) /* expr on <var_v:AbstractCompilerVisitor>*/;
592 var4
= NEW_array__Array(&type_array__Arrayabstract_compiler__RuntimeVariable
);
594 ((void (*)(val
*, long))(var4
->class->vft
[COLOR_array__Array__with_capacity
]))(var4
, var5
) /* with_capacity on <var4:Array[RuntimeVariable]>*/;
596 ((void (*)(val
*, val
*))(var_
->class->vft
[COLOR_abstract_collection__Sequence__push
]))(var_
, var_recv
) /* push on <var_:Array[RuntimeVariable]>*/;
598 var6
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_typing__ASendExpr__raw_arguments
]))(self
) /* raw_arguments on <self:ASendExpr>*/;
600 fprintf(stderr
, "Runtime error: %s", "Cast failed");
601 fprintf(stderr
, " (%s:%d)\n", "src/abstract_compiler.nit", 2464);
604 var7
= ((val
* (*)(val
*))(var6
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var6
) /* iterator on <var6:nullable Array[AExpr](Array[AExpr])>*/;
606 var8
= ((short int (*)(val
*))(var7
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var7
) /* is_ok on <var7:Iterator[nullable Object]>*/;
608 var9
= ((val
* (*)(val
*))(var7
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var7
) /* item on <var7:Iterator[nullable Object]>*/;
611 var11
= ((val
* (*)(val
*, val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__expr
]))(var_v
, var_a
, var10
) /* expr on <var_v:AbstractCompilerVisitor>*/;
612 ((void (*)(val
*, val
*))(var_args
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_args
, var11
) /* add on <var_args:Array[RuntimeVariable]>*/;
613 CONTINUE_label
: (void)0;
614 ((void (*)(val
*))(var7
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var7
) /* next on <var7:Iterator[nullable Object]>*/;
616 BREAK_label
: (void)0;
617 var12
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_typing__ASendExpr__callsite
]))(self
) /* callsite on <self:ASendExpr>*/;
619 fprintf(stderr
, "Runtime error: %s", "Cast failed");
620 fprintf(stderr
, " (%s:%d)\n", "src/abstract_compiler.nit", 2467);
623 var13
= ((val
* (*)(val
*, val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__compile_callsite
]))(var_v
, var12
, var_args
) /* compile_callsite on <var_v:AbstractCompilerVisitor>*/;
629 /* method abstract_compiler#ASendExpr#expr for (self: Object, AbstractCompilerVisitor): nullable RuntimeVariable */
630 val
* VIRTUAL_abstract_compiler__ASendExpr__expr(val
* self
, val
* p0
) {
631 val
* var
/* : nullable RuntimeVariable */;
632 val
* var1
/* : nullable RuntimeVariable */;
633 var1
= abstract_compiler__ASendExpr__expr(self
, p0
);
638 /* method abstract_compiler#ASendReassignFormExpr#stmt for (self: ASendReassignFormExpr, AbstractCompilerVisitor) */
639 void abstract_compiler__ASendReassignFormExpr__stmt(val
* self
, val
* p0
) {
640 val
* var_v
/* var v: AbstractCompilerVisitor */;
641 val
* var
/* : AExpr */;
642 val
* var1
/* : null */;
643 val
* var2
/* : RuntimeVariable */;
644 val
* var_recv
/* var recv: RuntimeVariable */;
645 val
* var3
/* : Array[RuntimeVariable] */;
646 long var4
/* : Int */;
647 val
* var_
/* var : Array[RuntimeVariable] */;
648 val
* var_args
/* var args: Array[RuntimeVariable] */;
649 val
* var5
/* : nullable Array[AExpr] */;
650 val
* var6
/* : Iterator[nullable Object] */;
651 short int var7
/* : Bool */;
652 val
* var8
/* : nullable Object */;
653 val
* var_a
/* var a: AExpr */;
654 val
* var9
/* : null */;
655 val
* var10
/* : RuntimeVariable */;
656 val
* var11
/* : AExpr */;
657 val
* var12
/* : null */;
658 val
* var13
/* : RuntimeVariable */;
659 val
* var_value
/* var value: RuntimeVariable */;
660 val
* var14
/* : nullable CallSite */;
661 val
* var15
/* : nullable RuntimeVariable */;
662 val
* var_left
/* var left: nullable RuntimeVariable */;
663 val
* var16
/* : null */;
664 short int var17
/* : Bool */;
665 val
* var18
/* : nullable CallSite */;
666 val
* var19
/* : Array[RuntimeVariable] */;
667 long var20
/* : Int */;
668 val
* var21
/* : NativeArray[RuntimeVariable] */;
669 val
* var22
/* : nullable RuntimeVariable */;
670 val
* var_res
/* var res: nullable RuntimeVariable */;
671 val
* var23
/* : null */;
672 short int var24
/* : Bool */;
673 val
* var25
/* : nullable CallSite */;
674 val
* var26
/* : nullable RuntimeVariable */;
676 var
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__ASendExpr__n_expr
]))(self
) /* n_expr on <self:ASendReassignFormExpr>*/;
678 var2
= ((val
* (*)(val
*, val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__expr
]))(var_v
, var
, var1
) /* expr on <var_v:AbstractCompilerVisitor>*/;
680 var3
= NEW_array__Array(&type_array__Arrayabstract_compiler__RuntimeVariable
);
682 ((void (*)(val
*, long))(var3
->class->vft
[COLOR_array__Array__with_capacity
]))(var3
, var4
) /* with_capacity on <var3:Array[RuntimeVariable]>*/;
684 ((void (*)(val
*, val
*))(var_
->class->vft
[COLOR_abstract_collection__Sequence__push
]))(var_
, var_recv
) /* push on <var_:Array[RuntimeVariable]>*/;
686 var5
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_typing__ASendExpr__raw_arguments
]))(self
) /* raw_arguments on <self:ASendReassignFormExpr>*/;
688 fprintf(stderr
, "Runtime error: %s", "Cast failed");
689 fprintf(stderr
, " (%s:%d)\n", "src/abstract_compiler.nit", 2476);
692 var6
= ((val
* (*)(val
*))(var5
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var5
) /* iterator on <var5:nullable Array[AExpr](Array[AExpr])>*/;
694 var7
= ((short int (*)(val
*))(var6
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var6
) /* is_ok on <var6:Iterator[nullable Object]>*/;
696 var8
= ((val
* (*)(val
*))(var6
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var6
) /* item on <var6:Iterator[nullable Object]>*/;
699 var10
= ((val
* (*)(val
*, val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__expr
]))(var_v
, var_a
, var9
) /* expr on <var_v:AbstractCompilerVisitor>*/;
700 ((void (*)(val
*, val
*))(var_args
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_args
, var10
) /* add on <var_args:Array[RuntimeVariable]>*/;
701 CONTINUE_label
: (void)0;
702 ((void (*)(val
*))(var6
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var6
) /* next on <var6:Iterator[nullable Object]>*/;
704 BREAK_label
: (void)0;
705 var11
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__AReassignFormExpr__n_value
]))(self
) /* n_value on <self:ASendReassignFormExpr>*/;
707 var13
= ((val
* (*)(val
*, val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__expr
]))(var_v
, var11
, var12
) /* expr on <var_v:AbstractCompilerVisitor>*/;
709 var14
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_typing__ASendExpr__callsite
]))(self
) /* callsite on <self:ASendReassignFormExpr>*/;
711 fprintf(stderr
, "Runtime error: %s", "Cast failed");
712 fprintf(stderr
, " (%s:%d)\n", "src/abstract_compiler.nit", 2481);
715 var15
= ((val
* (*)(val
*, val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__compile_callsite
]))(var_v
, var14
, var_args
) /* compile_callsite on <var_v:AbstractCompilerVisitor>*/;
718 if (var_left
== NULL
) {
719 var17
= 0; /* is null */
721 var17
= 1; /* arg is null and recv is not */
724 fprintf(stderr
, "Runtime error: %s", "Assert failed");
725 fprintf(stderr
, " (%s:%d)\n", "src/abstract_compiler.nit", 2482);
728 var18
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_typing__AReassignFormExpr__reassign_callsite
]))(self
) /* reassign_callsite on <self:ASendReassignFormExpr>*/;
730 fprintf(stderr
, "Runtime error: %s", "Cast failed");
731 fprintf(stderr
, " (%s:%d)\n", "src/abstract_compiler.nit", 2484);
734 var19
= NEW_array__Array(&type_array__Arrayabstract_compiler__RuntimeVariable
);
735 { /* var19 = array_instance Array[RuntimeVariable] */
737 var21
= NEW_array__NativeArray(var20
, &type_array__NativeArrayabstract_compiler__RuntimeVariable
);
738 ((struct instance_array__NativeArray
*)var21
)->values
[0] = (val
*) var_left
;
739 ((struct instance_array__NativeArray
*)var21
)->values
[1] = (val
*) var_value
;
740 ((void (*)(val
*, val
*, long))(var19
->class->vft
[COLOR_array__Array__with_native
]))(var19
, var21
, var20
) /* with_native on <var19:Array[RuntimeVariable]>*/;
742 var22
= ((val
* (*)(val
*, val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__compile_callsite
]))(var_v
, var18
, var19
) /* compile_callsite on <var_v:AbstractCompilerVisitor>*/;
745 if (var_res
== NULL
) {
746 var24
= 0; /* is null */
748 var24
= 1; /* arg is null and recv is not */
751 fprintf(stderr
, "Runtime error: %s", "Assert failed");
752 fprintf(stderr
, " (%s:%d)\n", "src/abstract_compiler.nit", 2485);
755 ((void (*)(val
*, val
*))(var_args
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_args
, var_res
) /* add on <var_args:Array[RuntimeVariable]>*/;
756 var25
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_typing__ASendReassignFormExpr__write_callsite
]))(self
) /* write_callsite on <self:ASendReassignFormExpr>*/;
758 fprintf(stderr
, "Runtime error: %s", "Cast failed");
759 fprintf(stderr
, " (%s:%d)\n", "src/abstract_compiler.nit", 2488);
762 var26
= ((val
* (*)(val
*, val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__compile_callsite
]))(var_v
, var25
, var_args
) /* compile_callsite on <var_v:AbstractCompilerVisitor>*/;
766 /* method abstract_compiler#ASendReassignFormExpr#stmt for (self: Object, AbstractCompilerVisitor) */
767 void VIRTUAL_abstract_compiler__ASendReassignFormExpr__stmt(val
* self
, val
* p0
) {
768 abstract_compiler__ASendReassignFormExpr__stmt(self
, p0
);
771 /* method abstract_compiler#ASuperExpr#expr for (self: ASuperExpr, AbstractCompilerVisitor): nullable RuntimeVariable */
772 val
* abstract_compiler__ASuperExpr__expr(val
* self
, val
* p0
) {
773 val
* var
/* : nullable RuntimeVariable */;
774 val
* var_v
/* var v: AbstractCompilerVisitor */;
775 val
* var1
/* : nullable Frame */;
776 val
* var2
/* : Array[RuntimeVariable] */;
777 val
* var3
/* : nullable Object */;
778 val
* var_recv
/* var recv: RuntimeVariable */;
779 val
* var4
/* : Array[RuntimeVariable] */;
780 long var5
/* : Int */;
781 val
* var_
/* var : Array[RuntimeVariable] */;
782 val
* var_args
/* var args: Array[RuntimeVariable] */;
783 val
* var6
/* : AExprs */;
784 val
* var7
/* : ANodes[AExpr] */;
785 val
* var8
/* : Iterator[nullable Object] */;
786 short int var9
/* : Bool */;
787 val
* var10
/* : nullable Object */;
788 val
* var_a
/* var a: AExpr */;
789 val
* var11
/* : null */;
790 val
* var12
/* : RuntimeVariable */;
791 val
* var13
/* : nullable CallSite */;
792 val
* var_callsite
/* var callsite: nullable CallSite */;
793 val
* var14
/* : null */;
794 short int var15
/* : Bool */;
795 long var16
/* : Int */;
796 long var17
/* : Int */;
797 short int var18
/* : Bool */;
798 short int var20
/* : Bool */;
799 val
* var21
/* : Range[Int] */;
800 long var22
/* : Int */;
801 val
* var23
/* : MMethod */;
802 val
* var24
/* : MPropDef */;
803 val
* var25
/* : nullable MSignature */;
804 long var26
/* : Int */;
805 val
* var27
/* : Discrete */;
806 val
* var28
/* : Discrete */;
807 val
* var29
/* : Iterator[nullable Object] */;
808 short int var30
/* : Bool */;
809 val
* var31
/* : nullable Object */;
810 long var_i
/* var i: Int */;
811 long var32
/* : Int */;
812 val
* var33
/* : nullable Frame */;
813 val
* var34
/* : Array[RuntimeVariable] */;
814 long var35
/* : Int */;
815 long var36
/* : Int */;
816 long var38
/* : Int */;
817 val
* var39
/* : nullable Object */;
818 val
* var41
/* : nullable RuntimeVariable */;
819 val
* var_res
/* var res: nullable RuntimeVariable */;
820 long var42
/* : Int */;
821 long var43
/* : Int */;
822 short int var44
/* : Bool */;
823 short int var46
/* : Bool */;
824 val
* var47
/* : nullable Frame */;
825 val
* var48
/* : Array[RuntimeVariable] */;
826 val
* var49
/* : nullable MMethodDef */;
827 val
* var50
/* : MType */;
828 short int var51
/* : Bool */;
831 const char* var_class_name
;
832 val
* var52
/* : nullable RuntimeVariable */;
834 var1
= ((val
* (*)(val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__frame
]))(var_v
) /* frame on <var_v:AbstractCompilerVisitor>*/;
836 fprintf(stderr
, "Runtime error: %s", "Receiver is null");
837 fprintf(stderr
, " (%s:%d)\n", "src/abstract_compiler.nit", 2495);
840 var2
= ((val
* (*)(val
*))(var1
->class->vft
[COLOR_abstract_compiler__Frame__arguments
]))(var1
) /* arguments on <var1:nullable Frame>*/;
842 var3
= ((val
* (*)(val
*))(var2
->class->vft
[COLOR_abstract_collection__Collection__first
]))(var2
) /* first on <var2:Array[RuntimeVariable]>*/;
844 var4
= NEW_array__Array(&type_array__Arrayabstract_compiler__RuntimeVariable
);
846 ((void (*)(val
*, long))(var4
->class->vft
[COLOR_array__Array__with_capacity
]))(var4
, var5
) /* with_capacity on <var4:Array[RuntimeVariable]>*/;
848 ((void (*)(val
*, val
*))(var_
->class->vft
[COLOR_abstract_collection__Sequence__push
]))(var_
, var_recv
) /* push on <var_:Array[RuntimeVariable]>*/;
850 var6
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__ASuperExpr__n_args
]))(self
) /* n_args on <self:ASuperExpr>*/;
851 var7
= ((val
* (*)(val
*))(var6
->class->vft
[COLOR_parser_nodes__AExprs__n_exprs
]))(var6
) /* n_exprs on <var6:AExprs>*/;
852 var8
= ((val
* (*)(val
*))(var7
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var7
) /* iterator on <var7:ANodes[AExpr]>*/;
854 var9
= ((short int (*)(val
*))(var8
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var8
) /* is_ok on <var8:Iterator[nullable Object]>*/;
856 var10
= ((val
* (*)(val
*))(var8
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var8
) /* item on <var8:Iterator[nullable Object]>*/;
859 var12
= ((val
* (*)(val
*, val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__expr
]))(var_v
, var_a
, var11
) /* expr on <var_v:AbstractCompilerVisitor>*/;
860 ((void (*)(val
*, val
*))(var_args
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_args
, var12
) /* add on <var_args:Array[RuntimeVariable]>*/;
861 CONTINUE_label
: (void)0;
862 ((void (*)(val
*))(var8
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var8
) /* next on <var8:Iterator[nullable Object]>*/;
864 BREAK_label
: (void)0;
865 var13
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_typing__ASuperExpr__callsite
]))(self
) /* callsite on <self:ASuperExpr>*/;
866 var_callsite
= var13
;
868 if (var_callsite
== NULL
) {
869 var15
= 0; /* is null */
871 var15
= 1; /* arg is null and recv is not */
874 var16
= ((long (*)(val
*))(var_args
->class->vft
[COLOR_abstract_collection__Collection__length
]))(var_args
) /* length on <var_args:Array[RuntimeVariable]>*/;
876 { /* Inline kernel#Int#== (var16,var17) */
877 var20
= var16
== var17
;
883 var21
= NEW_range__Range(&type_range__Rangekernel__Int
);
885 var23
= ((val
* (*)(val
*))(var_callsite
->class->vft
[COLOR_typing__CallSite__mproperty
]))(var_callsite
) /* mproperty on <var_callsite:nullable CallSite(CallSite)>*/;
886 var24
= ((val
* (*)(val
*))(var23
->class->vft
[COLOR_model__MProperty__intro
]))(var23
) /* intro on <var23:MMethod>*/;
887 var25
= ((val
* (*)(val
*))(var24
->class->vft
[COLOR_model__MMethodDef__msignature
]))(var24
) /* msignature on <var24:MPropDef(MMethodDef)>*/;
889 fprintf(stderr
, "Runtime error: %s", "Receiver is null");
890 fprintf(stderr
, " (%s:%d)\n", "src/abstract_compiler.nit", 2505);
893 var26
= ((long (*)(val
*))(var25
->class->vft
[COLOR_model__MSignature__arity
]))(var25
) /* arity on <var25:nullable MSignature>*/;
895 var27
= BOX_kernel__Int(var22
); /* autobox from Int to Discrete */
896 var28
= BOX_kernel__Int(var26
); /* autobox from Int to Discrete */
897 ((void (*)(val
*, val
*, val
*))(var21
->class->vft
[COLOR_range__Range__without_last
]))(var21
, var27
, var28
) /* without_last on <var21:Range[Int]>*/;
898 var29
= ((val
* (*)(val
*))(var21
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var21
) /* iterator on <var21:Range[Int]>*/;
900 var30
= ((short int (*)(val
*))(var29
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var29
) /* is_ok on <var29:Iterator[nullable Object]>*/;
902 var31
= ((val
* (*)(val
*))(var29
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var29
) /* item on <var29:Iterator[nullable Object]>*/;
903 var32
= ((struct instance_kernel__Int
*)var31
)->value
; /* autounbox from nullable Object to Int */;
905 var33
= ((val
* (*)(val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__frame
]))(var_v
) /* frame on <var_v:AbstractCompilerVisitor>*/;
907 fprintf(stderr
, "Runtime error: %s", "Receiver is null");
908 fprintf(stderr
, " (%s:%d)\n", "src/abstract_compiler.nit", 2506);
911 var34
= ((val
* (*)(val
*))(var33
->class->vft
[COLOR_abstract_compiler__Frame__arguments
]))(var33
) /* arguments on <var33:nullable Frame>*/;
914 { /* Inline kernel#Int#+ (var_i,var35) */
915 var38
= var_i
+ var35
;
920 var39
= ((val
* (*)(val
*, long))(var34
->class->vft
[COLOR_abstract_collection__SequenceRead___91d_93d
]))(var34
, var36
) /* [] on <var34:Array[RuntimeVariable]>*/;
921 ((void (*)(val
*, val
*))(var_args
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_args
, var39
) /* add on <var_args:Array[RuntimeVariable]>*/;
922 CONTINUE_label40
: (void)0;
923 ((void (*)(val
*))(var29
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var29
) /* next on <var29:Iterator[nullable Object]>*/;
925 BREAK_label40
: (void)0;
928 var41
= ((val
* (*)(val
*, val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__compile_callsite
]))(var_v
, var_callsite
, var_args
) /* compile_callsite on <var_v:AbstractCompilerVisitor>*/;
934 var42
= ((long (*)(val
*))(var_args
->class->vft
[COLOR_abstract_collection__Collection__length
]))(var_args
) /* length on <var_args:Array[RuntimeVariable]>*/;
936 { /* Inline kernel#Int#== (var42,var43) */
937 var46
= var42
== var43
;
943 var47
= ((val
* (*)(val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__frame
]))(var_v
) /* frame on <var_v:AbstractCompilerVisitor>*/;
945 fprintf(stderr
, "Runtime error: %s", "Receiver is null");
946 fprintf(stderr
, " (%s:%d)\n", "src/abstract_compiler.nit", 2515);
949 var48
= ((val
* (*)(val
*))(var47
->class->vft
[COLOR_abstract_compiler__Frame__arguments
]))(var47
) /* arguments on <var47:nullable Frame>*/;
954 var49
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_typing__ASuperExpr__mpropdef
]))(self
) /* mpropdef on <self:ASuperExpr>*/;
956 fprintf(stderr
, "Runtime error: %s", "Cast failed");
957 fprintf(stderr
, " (%s:%d)\n", "src/abstract_compiler.nit", 2519);
960 var50
= ((val
* (*)(val
*))(var_recv
->class->vft
[COLOR_abstract_compiler__RuntimeVariable__mtype
]))(var_recv
) /* mtype on <var_recv:RuntimeVariable>*/;
961 /* <var50:MType> isa MClassType */
962 cltype
= type_model__MClassType
.color
;
963 idtype
= type_model__MClassType
.id
;
964 if(cltype
>= var50
->type
->table_size
) {
967 var51
= var50
->type
->type_table
[cltype
] == idtype
;
970 var_class_name
= var50
== NULL ?
"null" : var50
->type
->name
;
971 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "MClassType", var_class_name
);
972 fprintf(stderr
, " (%s:%d)\n", "src/abstract_compiler.nit", 2519);
975 var52
= ((val
* (*)(val
*, val
*, val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__supercall
]))(var_v
, var49
, var50
, var_args
) /* supercall on <var_v:AbstractCompilerVisitor>*/;
981 /* method abstract_compiler#ASuperExpr#expr for (self: Object, AbstractCompilerVisitor): nullable RuntimeVariable */
982 val
* VIRTUAL_abstract_compiler__ASuperExpr__expr(val
* self
, val
* p0
) {
983 val
* var
/* : nullable RuntimeVariable */;
984 val
* var1
/* : nullable RuntimeVariable */;
985 var1
= abstract_compiler__ASuperExpr__expr(self
, p0
);
990 /* method abstract_compiler#ANewExpr#expr for (self: ANewExpr, AbstractCompilerVisitor): nullable RuntimeVariable */
991 val
* abstract_compiler__ANewExpr__expr(val
* self
, val
* p0
) {
992 val
* var
/* : nullable RuntimeVariable */;
993 val
* var_v
/* var v: AbstractCompilerVisitor */;
994 val
* var1
/* : nullable MType */;
995 short int var2
/* : Bool */;
998 const char* var_class_name
;
999 val
* var_mtype
/* var mtype: MClassType */;
1000 val
* var3
/* : String */;
1001 val
* var_ctype
/* var ctype: String */;
1002 static val
* varonce
;
1003 val
* var4
/* : String */;
1004 char* var5
/* : NativeString */;
1005 long var6
/* : Int */;
1006 val
* var7
/* : String */;
1007 short int var8
/* : Bool */;
1008 val
* var9
/* : RuntimeVariable */;
1009 val
* var_recv
/* var recv: nullable Object */;
1010 static val
* varonce10
;
1011 val
* var11
/* : String */;
1012 char* var12
/* : NativeString */;
1013 long var13
/* : Int */;
1014 val
* var14
/* : String */;
1015 short int var15
/* : Bool */;
1016 static val
* varonce16
;
1017 val
* var17
/* : String */;
1018 char* var18
/* : NativeString */;
1019 long var19
/* : Int */;
1020 val
* var20
/* : String */;
1021 val
* var21
/* : RuntimeVariable */;
1022 static val
* varonce22
;
1023 val
* var23
/* : String */;
1024 char* var24
/* : NativeString */;
1025 long var25
/* : Int */;
1026 val
* var26
/* : String */;
1027 val
* var27
/* : Array[Object] */;
1028 long var28
/* : Int */;
1029 val
* var29
/* : NativeArray[Object] */;
1030 val
* var30
/* : String */;
1031 val
* var31
/* : Array[RuntimeVariable] */;
1032 long var32
/* : Int */;
1033 val
* var_
/* var : Array[RuntimeVariable] */;
1034 val
* var_args
/* var args: Array[RuntimeVariable] */;
1035 val
* var33
/* : AExprs */;
1036 val
* var34
/* : ANodes[AExpr] */;
1037 val
* var35
/* : Iterator[nullable Object] */;
1038 short int var36
/* : Bool */;
1039 val
* var37
/* : nullable Object */;
1040 val
* var_a
/* var a: AExpr */;
1041 val
* var38
/* : null */;
1042 val
* var39
/* : RuntimeVariable */;
1043 val
* var40
/* : nullable CallSite */;
1044 val
* var41
/* : nullable RuntimeVariable */;
1045 val
* var_res2
/* var res2: nullable RuntimeVariable */;
1046 val
* var42
/* : null */;
1047 short int var43
/* : Bool */;
1049 var1
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_typing__AExpr__mtype
]))(self
) /* mtype on <self:ANewExpr>*/;
1050 /* <var1:nullable MType> isa MClassType */
1051 cltype
= type_model__MClassType
.color
;
1052 idtype
= type_model__MClassType
.id
;
1056 if(cltype
>= var1
->type
->table_size
) {
1059 var2
= var1
->type
->type_table
[cltype
] == idtype
;
1063 var_class_name
= var1
== NULL ?
"null" : var1
->type
->name
;
1064 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "MClassType", var_class_name
);
1065 fprintf(stderr
, " (%s:%d)\n", "src/abstract_compiler.nit", 2526);
1069 var3
= ((val
* (*)(val
*))(var_mtype
->class->vft
[COLOR_abstract_compiler__MType__ctype
]))(var_mtype
) /* ctype on <var_mtype:MClassType>*/;
1076 var7
= string__NativeString__to_s_with_length(var5
, var6
);
1080 var8
= ((short int (*)(val
*, val
*))(var_ctype
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var_ctype
, var4
) /* == on <var_ctype:String>*/;
1082 var9
= ((val
* (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__init_instance
]))(var_v
, var_mtype
) /* init_instance on <var_v:AbstractCompilerVisitor>*/;
1090 var14
= string__NativeString__to_s_with_length(var12
, var13
);
1094 var15
= ((short int (*)(val
*, val
*))(var_ctype
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var_ctype
, var11
) /* == on <var_ctype:String>*/;
1099 var18
= "NULL/*special!*/";
1101 var20
= string__NativeString__to_s_with_length(var18
, var19
);
1105 var21
= ((val
* (*)(val
*, val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__new_expr
]))(var_v
, var17
, var_mtype
) /* new_expr on <var_v:AbstractCompilerVisitor>*/;
1111 var24
= "cannot new ";
1113 var26
= string__NativeString__to_s_with_length(var24
, var25
);
1117 var27
= NEW_array__Array(&type_array__Arraykernel__Object
);
1118 { /* var27 = array_instance Array[Object] */
1120 var29
= NEW_array__NativeArray(var28
, &type_array__NativeArraykernel__Object
);
1121 ((struct instance_array__NativeArray
*)var29
)->values
[0] = (val
*) var23
;
1122 ((struct instance_array__NativeArray
*)var29
)->values
[1] = (val
*) var_mtype
;
1123 ((void (*)(val
*, val
*, long))(var27
->class->vft
[COLOR_array__Array__with_native
]))(var27
, var29
, var28
) /* with_native on <var27:Array[Object]>*/;
1125 var30
= ((val
* (*)(val
*))(var27
->class->vft
[COLOR_string__Object__to_s
]))(var27
) /* to_s on <var27:Array[Object]>*/;
1126 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_parser_nodes__ANode__debug
]))(self
, var30
) /* debug on <self:ANewExpr>*/;
1127 fprintf(stderr
, "Runtime error: %s", "Aborted");
1128 fprintf(stderr
, " (%s:%d)\n", "src/abstract_compiler.nit", 2535);
1132 var31
= NEW_array__Array(&type_array__Arrayabstract_compiler__RuntimeVariable
);
1134 ((void (*)(val
*, long))(var31
->class->vft
[COLOR_array__Array__with_capacity
]))(var31
, var32
) /* with_capacity on <var31:Array[RuntimeVariable]>*/;
1136 ((void (*)(val
*, val
*))(var_
->class->vft
[COLOR_abstract_collection__Sequence__push
]))(var_
, var_recv
) /* push on <var_:Array[RuntimeVariable]>*/;
1138 var33
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__ANewExpr__n_args
]))(self
) /* n_args on <self:ANewExpr>*/;
1139 var34
= ((val
* (*)(val
*))(var33
->class->vft
[COLOR_parser_nodes__AExprs__n_exprs
]))(var33
) /* n_exprs on <var33:AExprs>*/;
1140 var35
= ((val
* (*)(val
*))(var34
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var34
) /* iterator on <var34:ANodes[AExpr]>*/;
1142 var36
= ((short int (*)(val
*))(var35
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var35
) /* is_ok on <var35:Iterator[nullable Object]>*/;
1144 var37
= ((val
* (*)(val
*))(var35
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var35
) /* item on <var35:Iterator[nullable Object]>*/;
1147 var39
= ((val
* (*)(val
*, val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__expr
]))(var_v
, var_a
, var38
) /* expr on <var_v:AbstractCompilerVisitor>*/;
1148 ((void (*)(val
*, val
*))(var_args
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_args
, var39
) /* add on <var_args:Array[RuntimeVariable]>*/;
1149 CONTINUE_label
: (void)0;
1150 ((void (*)(val
*))(var35
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var35
) /* next on <var35:Iterator[nullable Object]>*/;
1152 BREAK_label
: (void)0;
1153 var40
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_typing__ANewExpr__callsite
]))(self
) /* callsite on <self:ANewExpr>*/;
1154 if (var40
== NULL
) {
1155 fprintf(stderr
, "Runtime error: %s", "Cast failed");
1156 fprintf(stderr
, " (%s:%d)\n", "src/abstract_compiler.nit", 2541);
1159 var41
= ((val
* (*)(val
*, val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__compile_callsite
]))(var_v
, var40
, var_args
) /* compile_callsite on <var_v:AbstractCompilerVisitor>*/;
1162 if (var_res2
== NULL
) {
1163 var43
= 0; /* is null */
1165 var43
= 1; /* arg is null and recv is not */
1177 /* method abstract_compiler#ANewExpr#expr for (self: Object, AbstractCompilerVisitor): nullable RuntimeVariable */
1178 val
* VIRTUAL_abstract_compiler__ANewExpr__expr(val
* self
, val
* p0
) {
1179 val
* var
/* : nullable RuntimeVariable */;
1180 val
* var1
/* : nullable RuntimeVariable */;
1181 var1
= abstract_compiler__ANewExpr__expr(self
, p0
);
1186 /* method abstract_compiler#AAttrExpr#expr for (self: AAttrExpr, AbstractCompilerVisitor): nullable RuntimeVariable */
1187 val
* abstract_compiler__AAttrExpr__expr(val
* self
, val
* p0
) {
1188 val
* var
/* : nullable RuntimeVariable */;
1189 val
* var_v
/* var v: AbstractCompilerVisitor */;
1190 val
* var1
/* : AExpr */;
1191 val
* var2
/* : null */;
1192 val
* var3
/* : RuntimeVariable */;
1193 val
* var_recv
/* var recv: RuntimeVariable */;
1194 val
* var4
/* : nullable MAttribute */;
1195 val
* var_mproperty
/* var mproperty: MAttribute */;
1196 val
* var5
/* : RuntimeVariable */;
1198 var1
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__AAttrFormExpr__n_expr
]))(self
) /* n_expr on <self:AAttrExpr>*/;
1200 var3
= ((val
* (*)(val
*, val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__expr
]))(var_v
, var1
, var2
) /* expr on <var_v:AbstractCompilerVisitor>*/;
1202 var4
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_typing__AAttrFormExpr__mproperty
]))(self
) /* mproperty on <self:AAttrExpr>*/;
1204 fprintf(stderr
, "Runtime error: %s", "Cast failed");
1205 fprintf(stderr
, " (%s:%d)\n", "src/abstract_compiler.nit", 2554);
1208 var_mproperty
= var4
;
1209 var5
= ((val
* (*)(val
*, val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__read_attribute
]))(var_v
, var_mproperty
, var_recv
) /* read_attribute on <var_v:AbstractCompilerVisitor>*/;
1215 /* method abstract_compiler#AAttrExpr#expr for (self: Object, AbstractCompilerVisitor): nullable RuntimeVariable */
1216 val
* VIRTUAL_abstract_compiler__AAttrExpr__expr(val
* self
, val
* p0
) {
1217 val
* var
/* : nullable RuntimeVariable */;
1218 val
* var1
/* : nullable RuntimeVariable */;
1219 var1
= abstract_compiler__AAttrExpr__expr(self
, p0
);
1224 /* method abstract_compiler#AAttrAssignExpr#stmt for (self: AAttrAssignExpr, AbstractCompilerVisitor) */
1225 void abstract_compiler__AAttrAssignExpr__stmt(val
* self
, val
* p0
) {
1226 val
* var_v
/* var v: AbstractCompilerVisitor */;
1227 val
* var
/* : AExpr */;
1228 val
* var1
/* : null */;
1229 val
* var2
/* : RuntimeVariable */;
1230 val
* var_recv
/* var recv: RuntimeVariable */;
1231 val
* var3
/* : AExpr */;
1232 val
* var4
/* : null */;
1233 val
* var5
/* : RuntimeVariable */;
1234 val
* var_i
/* var i: RuntimeVariable */;
1235 val
* var6
/* : nullable MAttribute */;
1236 val
* var_mproperty
/* var mproperty: MAttribute */;
1238 var
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__AAttrFormExpr__n_expr
]))(self
) /* n_expr on <self:AAttrAssignExpr>*/;
1240 var2
= ((val
* (*)(val
*, val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__expr
]))(var_v
, var
, var1
) /* expr on <var_v:AbstractCompilerVisitor>*/;
1242 var3
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__AAssignFormExpr__n_value
]))(self
) /* n_value on <self:AAttrAssignExpr>*/;
1244 var5
= ((val
* (*)(val
*, val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__expr
]))(var_v
, var3
, var4
) /* expr on <var_v:AbstractCompilerVisitor>*/;
1246 var6
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_typing__AAttrFormExpr__mproperty
]))(self
) /* mproperty on <self:AAttrAssignExpr>*/;
1248 fprintf(stderr
, "Runtime error: %s", "Cast failed");
1249 fprintf(stderr
, " (%s:%d)\n", "src/abstract_compiler.nit", 2564);
1252 var_mproperty
= var6
;
1253 ((void (*)(val
*, val
*, val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__write_attribute
]))(var_v
, var_mproperty
, var_recv
, var_i
) /* write_attribute on <var_v:AbstractCompilerVisitor>*/;
1256 /* method abstract_compiler#AAttrAssignExpr#stmt for (self: Object, AbstractCompilerVisitor) */
1257 void VIRTUAL_abstract_compiler__AAttrAssignExpr__stmt(val
* self
, val
* p0
) {
1258 abstract_compiler__AAttrAssignExpr__stmt(self
, p0
);
1261 /* method abstract_compiler#AAttrReassignExpr#stmt for (self: AAttrReassignExpr, AbstractCompilerVisitor) */
1262 void abstract_compiler__AAttrReassignExpr__stmt(val
* self
, val
* p0
) {
1263 val
* var_v
/* var v: AbstractCompilerVisitor */;
1264 val
* var
/* : AExpr */;
1265 val
* var1
/* : null */;
1266 val
* var2
/* : RuntimeVariable */;
1267 val
* var_recv
/* var recv: RuntimeVariable */;
1268 val
* var3
/* : AExpr */;
1269 val
* var4
/* : null */;
1270 val
* var5
/* : RuntimeVariable */;
1271 val
* var_value
/* var value: RuntimeVariable */;
1272 val
* var6
/* : nullable MAttribute */;
1273 val
* var_mproperty
/* var mproperty: MAttribute */;
1274 val
* var7
/* : RuntimeVariable */;
1275 val
* var_attr
/* var attr: RuntimeVariable */;
1276 val
* var8
/* : nullable CallSite */;
1277 val
* var9
/* : Array[RuntimeVariable] */;
1278 long var10
/* : Int */;
1279 val
* var11
/* : NativeArray[RuntimeVariable] */;
1280 val
* var12
/* : nullable RuntimeVariable */;
1281 val
* var_res
/* var res: nullable RuntimeVariable */;
1282 val
* var13
/* : null */;
1283 short int var14
/* : Bool */;
1285 var
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__AAttrFormExpr__n_expr
]))(self
) /* n_expr on <self:AAttrReassignExpr>*/;
1287 var2
= ((val
* (*)(val
*, val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__expr
]))(var_v
, var
, var1
) /* expr on <var_v:AbstractCompilerVisitor>*/;
1289 var3
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__AReassignFormExpr__n_value
]))(self
) /* n_value on <self:AAttrReassignExpr>*/;
1291 var5
= ((val
* (*)(val
*, val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__expr
]))(var_v
, var3
, var4
) /* expr on <var_v:AbstractCompilerVisitor>*/;
1293 var6
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_typing__AAttrFormExpr__mproperty
]))(self
) /* mproperty on <self:AAttrReassignExpr>*/;
1295 fprintf(stderr
, "Runtime error: %s", "Cast failed");
1296 fprintf(stderr
, " (%s:%d)\n", "src/abstract_compiler.nit", 2574);
1299 var_mproperty
= var6
;
1300 var7
= ((val
* (*)(val
*, val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__read_attribute
]))(var_v
, var_mproperty
, var_recv
) /* read_attribute on <var_v:AbstractCompilerVisitor>*/;
1302 var8
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_typing__AReassignFormExpr__reassign_callsite
]))(self
) /* reassign_callsite on <self:AAttrReassignExpr>*/;
1304 fprintf(stderr
, "Runtime error: %s", "Cast failed");
1305 fprintf(stderr
, " (%s:%d)\n", "src/abstract_compiler.nit", 2576);
1308 var9
= NEW_array__Array(&type_array__Arrayabstract_compiler__RuntimeVariable
);
1309 { /* var9 = array_instance Array[RuntimeVariable] */
1311 var11
= NEW_array__NativeArray(var10
, &type_array__NativeArrayabstract_compiler__RuntimeVariable
);
1312 ((struct instance_array__NativeArray
*)var11
)->values
[0] = (val
*) var_attr
;
1313 ((struct instance_array__NativeArray
*)var11
)->values
[1] = (val
*) var_value
;
1314 ((void (*)(val
*, val
*, long))(var9
->class->vft
[COLOR_array__Array__with_native
]))(var9
, var11
, var10
) /* with_native on <var9:Array[RuntimeVariable]>*/;
1316 var12
= ((val
* (*)(val
*, val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__compile_callsite
]))(var_v
, var8
, var9
) /* compile_callsite on <var_v:AbstractCompilerVisitor>*/;
1319 if (var_res
== NULL
) {
1320 var14
= 0; /* is null */
1322 var14
= 1; /* arg is null and recv is not */
1325 fprintf(stderr
, "Runtime error: %s", "Assert failed");
1326 fprintf(stderr
, " (%s:%d)\n", "src/abstract_compiler.nit", 2577);
1329 ((void (*)(val
*, val
*, val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__write_attribute
]))(var_v
, var_mproperty
, var_recv
, var_res
) /* write_attribute on <var_v:AbstractCompilerVisitor>*/;
1332 /* method abstract_compiler#AAttrReassignExpr#stmt for (self: Object, AbstractCompilerVisitor) */
1333 void VIRTUAL_abstract_compiler__AAttrReassignExpr__stmt(val
* self
, val
* p0
) {
1334 abstract_compiler__AAttrReassignExpr__stmt(self
, p0
);
1337 /* method abstract_compiler#AIssetAttrExpr#expr for (self: AIssetAttrExpr, AbstractCompilerVisitor): nullable RuntimeVariable */
1338 val
* abstract_compiler__AIssetAttrExpr__expr(val
* self
, val
* p0
) {
1339 val
* var
/* : nullable RuntimeVariable */;
1340 val
* var_v
/* var v: AbstractCompilerVisitor */;
1341 val
* var1
/* : AExpr */;
1342 val
* var2
/* : null */;
1343 val
* var3
/* : RuntimeVariable */;
1344 val
* var_recv
/* var recv: RuntimeVariable */;
1345 val
* var4
/* : nullable MAttribute */;
1346 val
* var_mproperty
/* var mproperty: MAttribute */;
1347 val
* var5
/* : RuntimeVariable */;
1349 var1
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__AAttrFormExpr__n_expr
]))(self
) /* n_expr on <self:AIssetAttrExpr>*/;
1351 var3
= ((val
* (*)(val
*, val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__expr
]))(var_v
, var1
, var2
) /* expr on <var_v:AbstractCompilerVisitor>*/;
1353 var4
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_typing__AAttrFormExpr__mproperty
]))(self
) /* mproperty on <self:AIssetAttrExpr>*/;
1355 fprintf(stderr
, "Runtime error: %s", "Cast failed");
1356 fprintf(stderr
, " (%s:%d)\n", "src/abstract_compiler.nit", 2586);
1359 var_mproperty
= var4
;
1360 var5
= ((val
* (*)(val
*, val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__isset_attribute
]))(var_v
, var_mproperty
, var_recv
) /* isset_attribute on <var_v:AbstractCompilerVisitor>*/;
1366 /* method abstract_compiler#AIssetAttrExpr#expr for (self: Object, AbstractCompilerVisitor): nullable RuntimeVariable */
1367 val
* VIRTUAL_abstract_compiler__AIssetAttrExpr__expr(val
* self
, val
* p0
) {
1368 val
* var
/* : nullable RuntimeVariable */;
1369 val
* var1
/* : nullable RuntimeVariable */;
1370 var1
= abstract_compiler__AIssetAttrExpr__expr(self
, p0
);
1375 /* method abstract_compiler#ADebugTypeExpr#stmt for (self: ADebugTypeExpr, AbstractCompilerVisitor) */
1376 void abstract_compiler__ADebugTypeExpr__stmt(val
* self
, val
* p0
) {
1377 val
* var_v
/* var v: AbstractCompilerVisitor */;
1381 /* method abstract_compiler#ADebugTypeExpr#stmt for (self: Object, AbstractCompilerVisitor) */
1382 void VIRTUAL_abstract_compiler__ADebugTypeExpr__stmt(val
* self
, val
* p0
) {
1383 abstract_compiler__ADebugTypeExpr__stmt(self
, p0
);
1386 /* method abstract_compiler#Array#- for (self: Array[nullable Object], Array[nullable Object]): Array[nullable Object] */
1387 val
* abstract_compiler__Array___45d(val
* self
, val
* p0
) {
1388 val
* var
/* : Array[nullable Object] */;
1389 short int var1
/* : Bool */;
1392 const struct type
* type_struct
;
1393 const char* var_class_name
;
1394 val
* var_o
/* var o: Array[nullable Object] */;
1395 val
* var2
/* : Array[nullable Object] */;
1396 val
* var_res
/* var res: Array[nullable Object] */;
1397 val
* var3
/* : Iterator[nullable Object] */;
1398 short int var4
/* : Bool */;
1399 val
* var5
/* : nullable Object */;
1400 val
* var_e
/* var e: nullable Object */;
1401 short int var6
/* : Bool */;
1402 short int var7
/* : Bool */;
1403 /* Covariant cast for argument 0 (o) <p0:Array[nullable Object]> isa Array[Array#0] */
1404 /* <p0:Array[nullable Object]> isa Array[Array#0] */
1405 type_struct
= self
->type
->resolution_table
->types
[COLOR_array__Arrayarray__Array_FT0
];
1406 cltype
= type_struct
->color
;
1407 idtype
= type_struct
->id
;
1408 if(cltype
>= p0
->type
->table_size
) {
1411 var1
= p0
->type
->type_table
[cltype
] == idtype
;
1414 var_class_name
= p0
== NULL ?
"null" : p0
->type
->name
;
1415 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "Array[Array#0]", var_class_name
);
1416 fprintf(stderr
, " (%s:%d)\n", "src/abstract_compiler.nit", 2601);
1420 var2
= NEW_array__Array(self
->type
->resolution_table
->types
[COLOR_array__Arrayarray__Array_FT0
]);
1421 ((void (*)(val
*))(var2
->class->vft
[COLOR_array__Array__init
]))(var2
) /* init on <var2:Array[nullable Object]>*/;
1423 var3
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(self
) /* iterator on <self:Array[nullable Object]>*/;
1425 var4
= ((short int (*)(val
*))(var3
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var3
) /* is_ok on <var3:Iterator[nullable Object]>*/;
1427 var5
= ((val
* (*)(val
*))(var3
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var3
) /* item on <var3:Iterator[nullable Object]>*/;
1429 var6
= ((short int (*)(val
*, val
*))(var_o
->class->vft
[COLOR_abstract_collection__Collection__has
]))(var_o
, var_e
) /* has on <var_o:Array[nullable Object]>*/;
1432 ((void (*)(val
*, val
*))(var_res
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_res
, var_e
) /* add on <var_res:Array[nullable Object]>*/;
1435 CONTINUE_label
: (void)0;
1436 ((void (*)(val
*))(var3
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var3
) /* next on <var3:Iterator[nullable Object]>*/;
1438 BREAK_label
: (void)0;
1444 /* method abstract_compiler#Array#- for (self: Object, Array[nullable Object]): Array[nullable Object] */
1445 val
* VIRTUAL_abstract_compiler__Array___45d(val
* self
, val
* p0
) {
1446 val
* var
/* : Array[nullable Object] */;
1447 val
* var1
/* : Array[nullable Object] */;
1448 var1
= abstract_compiler__Array___45d(self
, p0
);
1453 /* method abstract_compiler#MModule#properties for (self: MModule, MClass): Set[MProperty] */
1454 val
* abstract_compiler__MModule__properties(val
* self
, val
* p0
) {
1455 val
* var
/* : Set[MProperty] */;
1456 val
* var_mclass
/* var mclass: MClass */;
1457 val
* var1
/* : Map[MClass, Set[MProperty]] */;
1458 short int var2
/* : Bool */;
1459 short int var3
/* : Bool */;
1460 val
* var4
/* : HashSet[MProperty] */;
1461 val
* var_properties
/* var properties: HashSet[MProperty] */;
1462 val
* var5
/* : Array[MClass] */;
1463 val
* var_parents
/* var parents: Array[MClass] */;
1464 val
* var6
/* : POSet[MClass] */;
1465 short int var7
/* : Bool */;
1466 val
* var8
/* : POSetElement[MClass] */;
1467 val
* var9
/* : Collection[Object] */;
1468 val
* var10
/* : Iterator[nullable Object] */;
1469 short int var11
/* : Bool */;
1470 val
* var12
/* : nullable Object */;
1471 val
* var_parent
/* var parent: MClass */;
1472 val
* var13
/* : Set[MProperty] */;
1473 val
* var14
/* : Array[MClassDef] */;
1474 val
* var15
/* : Iterator[nullable Object] */;
1475 short int var16
/* : Bool */;
1476 val
* var17
/* : nullable Object */;
1477 val
* var_mclassdef
/* var mclassdef: MClassDef */;
1478 val
* var18
/* : Array[MProperty] */;
1479 val
* var19
/* : Iterator[nullable Object] */;
1480 short int var20
/* : Bool */;
1481 val
* var21
/* : nullable Object */;
1482 val
* var_mprop
/* var mprop: MProperty */;
1483 val
* var24
/* : Map[MClass, Set[MProperty]] */;
1484 val
* var25
/* : Map[MClass, Set[MProperty]] */;
1485 val
* var26
/* : nullable Object */;
1487 var1
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__MModule__properties_cache
]))(self
) /* properties_cache on <self:MModule>*/;
1488 var2
= ((short int (*)(val
*, val
*))(var1
->class->vft
[COLOR_abstract_collection__MapRead__has_key
]))(var1
, var_mclass
) /* has_key on <var1:Map[MClass, Set[MProperty]]>*/;
1491 var4
= NEW_hash_collection__HashSet(&type_hash_collection__HashSetmodel__MProperty
);
1492 ((void (*)(val
*))(var4
->class->vft
[COLOR_hash_collection__HashSet__init
]))(var4
) /* init on <var4:HashSet[MProperty]>*/;
1493 var_properties
= var4
;
1494 var5
= NEW_array__Array(&type_array__Arraymodel__MClass
);
1495 ((void (*)(val
*))(var5
->class->vft
[COLOR_array__Array__init
]))(var5
) /* init on <var5:Array[MClass]>*/;
1497 var6
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_model__MModule__flatten_mclass_hierarchy
]))(self
) /* flatten_mclass_hierarchy on <self:MModule>*/;
1498 var7
= ((short int (*)(val
*, val
*))(var6
->class->vft
[COLOR_abstract_collection__Collection__has
]))(var6
, var_mclass
) /* has on <var6:POSet[MClass]>*/;
1500 var8
= ((val
* (*)(val
*, val
*))(var_mclass
->class->vft
[COLOR_model__MClass__in_hierarchy
]))(var_mclass
, self
) /* in_hierarchy on <var_mclass:MClass>*/;
1501 var9
= ((val
* (*)(val
*))(var8
->class->vft
[COLOR_poset__POSetElement__direct_greaters
]))(var8
) /* direct_greaters on <var8:POSetElement[MClass]>*/;
1502 ((void (*)(val
*, val
*))(var_parents
->class->vft
[COLOR_abstract_collection__SimpleCollection__add_all
]))(var_parents
, var9
) /* add_all on <var_parents:Array[MClass]>*/;
1505 var10
= ((val
* (*)(val
*))(var_parents
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var_parents
) /* iterator on <var_parents:Array[MClass]>*/;
1507 var11
= ((short int (*)(val
*))(var10
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var10
) /* is_ok on <var10:Iterator[nullable Object]>*/;
1509 var12
= ((val
* (*)(val
*))(var10
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var10
) /* item on <var10:Iterator[nullable Object]>*/;
1511 var13
= ((val
* (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__MModule__properties
]))(self
, var_parent
) /* properties on <self:MModule>*/;
1512 ((void (*)(val
*, val
*))(var_properties
->class->vft
[COLOR_abstract_collection__SimpleCollection__add_all
]))(var_properties
, var13
) /* add_all on <var_properties:HashSet[MProperty]>*/;
1513 CONTINUE_label
: (void)0;
1514 ((void (*)(val
*))(var10
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var10
) /* next on <var10:Iterator[nullable Object]>*/;
1516 BREAK_label
: (void)0;
1517 var14
= ((val
* (*)(val
*))(var_mclass
->class->vft
[COLOR_model__MClass__mclassdefs
]))(var_mclass
) /* mclassdefs on <var_mclass:MClass>*/;
1518 var15
= ((val
* (*)(val
*))(var14
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var14
) /* iterator on <var14:Array[MClassDef]>*/;
1520 var16
= ((short int (*)(val
*))(var15
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var15
) /* is_ok on <var15:Iterator[nullable Object]>*/;
1522 var17
= ((val
* (*)(val
*))(var15
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var15
) /* item on <var15:Iterator[nullable Object]>*/;
1523 var_mclassdef
= var17
;
1524 var18
= ((val
* (*)(val
*))(var_mclassdef
->class->vft
[COLOR_model__MClassDef__intro_mproperties
]))(var_mclassdef
) /* intro_mproperties on <var_mclassdef:MClassDef>*/;
1525 var19
= ((val
* (*)(val
*))(var18
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var18
) /* iterator on <var18:Array[MProperty]>*/;
1527 var20
= ((short int (*)(val
*))(var19
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var19
) /* is_ok on <var19:Iterator[nullable Object]>*/;
1529 var21
= ((val
* (*)(val
*))(var19
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var19
) /* item on <var19:Iterator[nullable Object]>*/;
1531 ((void (*)(val
*, val
*))(var_properties
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_properties
, var_mprop
) /* add on <var_properties:HashSet[MProperty]>*/;
1532 CONTINUE_label22
: (void)0;
1533 ((void (*)(val
*))(var19
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var19
) /* next on <var19:Iterator[nullable Object]>*/;
1535 BREAK_label22
: (void)0;
1536 CONTINUE_label23
: (void)0;
1537 ((void (*)(val
*))(var15
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var15
) /* next on <var15:Iterator[nullable Object]>*/;
1539 BREAK_label23
: (void)0;
1540 var24
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__MModule__properties_cache
]))(self
) /* properties_cache on <self:MModule>*/;
1541 ((void (*)(val
*, val
*, val
*))(var24
->class->vft
[COLOR_abstract_collection__Map___91d_93d_61d
]))(var24
, var_mclass
, var_properties
) /* []= on <var24:Map[MClass, Set[MProperty]]>*/;
1544 var25
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__MModule__properties_cache
]))(self
) /* properties_cache on <self:MModule>*/;
1545 var26
= ((val
* (*)(val
*, val
*))(var25
->class->vft
[COLOR_abstract_collection__MapRead___91d_93d
]))(var25
, var_mclass
) /* [] on <var25:Map[MClass, Set[MProperty]]>*/;
1551 /* method abstract_compiler#MModule#properties for (self: Object, MClass): Set[MProperty] */
1552 val
* VIRTUAL_abstract_compiler__MModule__properties(val
* self
, val
* p0
) {
1553 val
* var
/* : Set[MProperty] */;
1554 val
* var1
/* : Set[MProperty] */;
1555 var1
= abstract_compiler__MModule__properties(self
, p0
);
1560 /* method abstract_compiler#MModule#properties_cache for (self: MModule): Map[MClass, Set[MProperty]] */
1561 val
* abstract_compiler__MModule__properties_cache(val
* self
) {
1562 val
* var
/* : Map[MClass, Set[MProperty]] */;
1563 val
* var1
/* : Map[MClass, Set[MProperty]] */;
1564 var1
= self
->attrs
[COLOR_abstract_compiler__MModule___64dproperties_cache
].val
; /* @properties_cache on <self:MModule> */
1566 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute @properties_cache");
1567 fprintf(stderr
, " (%s:%d)\n", "src/abstract_compiler.nit", 2630);
1574 /* method abstract_compiler#MModule#properties_cache for (self: Object): Map[MClass, Set[MProperty]] */
1575 val
* VIRTUAL_abstract_compiler__MModule__properties_cache(val
* self
) {
1576 val
* var
/* : Map[MClass, Set[MProperty]] */;
1577 val
* var1
/* : Map[MClass, Set[MProperty]] */;
1578 var1
= abstract_compiler__MModule__properties_cache(self
);
1583 /* method abstract_compiler#MModule#properties_cache= for (self: MModule, Map[MClass, Set[MProperty]]) */
1584 void abstract_compiler__MModule__properties_cache_61d(val
* self
, val
* p0
) {
1585 self
->attrs
[COLOR_abstract_compiler__MModule___64dproperties_cache
].val
= p0
; /* @properties_cache on <self:MModule> */
1588 /* method abstract_compiler#MModule#properties_cache= for (self: Object, Map[MClass, Set[MProperty]]) */
1589 void VIRTUAL_abstract_compiler__MModule__properties_cache_61d(val
* self
, val
* p0
) {
1590 abstract_compiler__MModule__properties_cache_61d(self
, p0
);
1593 /* method abstract_compiler#AModule#uses_legacy_ni for (self: AModule): Bool */
1594 short int abstract_compiler__AModule__uses_legacy_ni(val
* self
) {
1595 short int var
/* : Bool */;
1596 const char* var_class_name
;
1597 var_class_name
= self
== NULL ?
"null" : self
->type
->name
;
1598 fprintf(stderr
, "Runtime error: Abstract method `%s` called on `%s`", "uses_legacy_ni", var_class_name
);
1599 fprintf(stderr
, " (%s:%d)\n", "src/abstract_compiler.nit", 2634);
1604 /* method abstract_compiler#AModule#uses_legacy_ni for (self: Object): Bool */
1605 short int VIRTUAL_abstract_compiler__AModule__uses_legacy_ni(val
* self
) {
1606 short int var
/* : Bool */;
1607 short int var1
/* : Bool */;
1608 var1
= abstract_compiler__AModule__uses_legacy_ni(self
);
1613 /* method abstract_compiler#AModule#finalize_ffi for (self: AModule, AbstractCompilerVisitor, ModelBuilder) */
1614 void abstract_compiler__AModule__finalize_ffi(val
* self
, val
* p0
, val
* p1
) {
1615 const char* var_class_name
;
1616 var_class_name
= self
== NULL ?
"null" : self
->type
->name
;
1617 fprintf(stderr
, "Runtime error: Abstract method `%s` called on `%s`", "finalize_ffi", var_class_name
);
1618 fprintf(stderr
, " (%s:%d)\n", "src/abstract_compiler.nit", 2637);
1622 /* method abstract_compiler#AModule#finalize_ffi for (self: Object, AbstractCompilerVisitor, ModelBuilder) */
1623 void VIRTUAL_abstract_compiler__AModule__finalize_ffi(val
* self
, val
* p0
, val
* p1
) {
1624 abstract_compiler__AModule__finalize_ffi(self
, p0
, p1
);
1627 /* method abstract_compiler#AModule#finalize_nitni for (self: AModule, AbstractCompilerVisitor) */
1628 void abstract_compiler__AModule__finalize_nitni(val
* self
, val
* p0
) {
1629 const char* var_class_name
;
1630 var_class_name
= self
== NULL ?
"null" : self
->type
->name
;
1631 fprintf(stderr
, "Runtime error: Abstract method `%s` called on `%s`", "finalize_nitni", var_class_name
);
1632 fprintf(stderr
, " (%s:%d)\n", "src/abstract_compiler.nit", 2640);
1636 /* method abstract_compiler#AModule#finalize_nitni for (self: Object, AbstractCompilerVisitor) */
1637 void VIRTUAL_abstract_compiler__AModule__finalize_nitni(val
* self
, val
* p0
) {
1638 abstract_compiler__AModule__finalize_nitni(self
, p0
);