regern c_src
[nit.git] / c_src / nit__abstract_compiler.sep.4.c
index 379b1e3..2a67f61 100644 (file)
@@ -22,1410 +22,1505 @@ val* var18 /* : nullable MSignature */;
 val* var19 /* : nullable MType */;
 val* var21 /* : nullable MType */;
 val* var_ret /* var ret: nullable MType */;
-val* var22 /* : null */;
+short int var22 /* : Bool */;
 short int var23 /* : Bool */;
-short int var24 /* : Bool */;
 val* var_other /* var other: nullable Object */;
+short int var25 /* : Bool */;
 short int var26 /* : Bool */;
-short int var27 /* : Bool */;
-val* var28 /* : nullable Object */;
-val* var29 /* : MType */;
-short int var30 /* : Bool */;
+val* var27 /* : nullable Object */;
+val* var28 /* : MType */;
+short int var29 /* : Bool */;
 static val* varonce;
-val* var31 /* : String */;
-char* var32 /* : NativeString */;
-long var33 /* : Int */;
-val* var34 /* : FlatString */;
+val* var30 /* : String */;
+char* var31 /* : NativeString */;
+val* var32 /* : FlatString */;
+short int var33 /* : Bool */;
 short int var35 /* : Bool */;
-short int var37 /* : Bool */;
-short int var38 /* : Bool */;
+short int var36 /* : Bool */;
 short int var_ /* var : Bool */;
-static val* varonce39;
-val* var40 /* : String */;
-char* var41 /* : NativeString */;
-long var42 /* : Int */;
-val* var43 /* : FlatString */;
+static val* varonce37;
+val* var38 /* : String */;
+char* var39 /* : NativeString */;
+val* var40 /* : FlatString */;
+short int var41 /* : Bool */;
+short int var43 /* : Bool */;
 short int var44 /* : Bool */;
-short int var46 /* : Bool */;
-short int var47 /* : Bool */;
-static val* varonce48;
-val* var49 /* : String */;
-char* var50 /* : NativeString */;
-long var51 /* : Int */;
-val* var52 /* : FlatString */;
-short int var53 /* : Bool */;
-static val* varonce54;
-val* var55 /* : String */;
-char* var56 /* : NativeString */;
-long var57 /* : Int */;
-val* var58 /* : FlatString */;
-short int var59 /* : Bool */;
-static val* varonce60;
-val* var61 /* : String */;
-char* var62 /* : NativeString */;
-long var63 /* : Int */;
+static val* varonce45;
+val* var46 /* : String */;
+char* var47 /* : NativeString */;
+val* var48 /* : FlatString */;
+short int var49 /* : Bool */;
+static val* varonce50;
+val* var51 /* : String */;
+char* var52 /* : NativeString */;
+val* var53 /* : FlatString */;
+short int var54 /* : Bool */;
+val* var56 /* : NativeArray[String] */;
+static val* varonce55;
+static val* varonce57;
+val* var58 /* : String */;
+char* var59 /* : NativeString */;
+val* var60 /* : FlatString */;
+static val* varonce61;
+val* var62 /* : String */;
+char* var63 /* : NativeString */;
 val* var64 /* : FlatString */;
 val* var65 /* : nullable Object */;
-static val* varonce66;
+val* var66 /* : String */;
 val* var67 /* : String */;
-char* var68 /* : NativeString */;
-long var69 /* : Int */;
-val* var70 /* : FlatString */;
-val* var71 /* : Array[Object] */;
-long var72 /* : Int */;
-val* var73 /* : NativeArray[Object] */;
-val* var74 /* : String */;
-short int var75 /* : Bool */;
-static val* varonce76;
-val* var77 /* : String */;
-char* var78 /* : NativeString */;
-long var79 /* : Int */;
-val* var80 /* : FlatString */;
-short int var81 /* : Bool */;
-val* var82 /* : nullable Object */;
-short int var83 /* : Bool */;
-static val* varonce84;
-val* var85 /* : String */;
-char* var86 /* : NativeString */;
-long var87 /* : Int */;
-val* var88 /* : FlatString */;
-short int var89 /* : Bool */;
-long var90 /* : Int */;
-val* var91 /* : nullable Object */;
-static val* varonce92;
-val* var93 /* : String */;
-char* var94 /* : NativeString */;
-long var95 /* : Int */;
-val* var96 /* : FlatString */;
-long var97 /* : Int */;
-val* var98 /* : nullable Object */;
-val* var99 /* : Array[Object] */;
-long var100 /* : Int */;
-val* var101 /* : NativeArray[Object] */;
-val* var102 /* : String */;
-val* var103 /* : RuntimeVariable */;
-short int var104 /* : Bool */;
-static val* varonce105;
+static val* varonce68;
+val* var69 /* : String */;
+char* var70 /* : NativeString */;
+val* var71 /* : FlatString */;
+short int var72 /* : Bool */;
+val* var73 /* : nullable Object */;
+static val* varonce74;
+val* var75 /* : String */;
+char* var76 /* : NativeString */;
+val* var77 /* : FlatString */;
+short int var78 /* : Bool */;
+val* var80 /* : NativeArray[String] */;
+static val* varonce79;
+static val* varonce81;
+val* var82 /* : String */;
+char* var83 /* : NativeString */;
+val* var84 /* : FlatString */;
+val* var85 /* : nullable Object */;
+val* var86 /* : String */;
+val* var87 /* : nullable Object */;
+val* var88 /* : String */;
+val* var89 /* : String */;
+val* var90 /* : RuntimeVariable */;
+static val* varonce91;
+val* var92 /* : String */;
+char* var93 /* : NativeString */;
+val* var94 /* : FlatString */;
+short int var95 /* : Bool */;
+val* var97 /* : NativeArray[String] */;
+static val* varonce96;
+static val* varonce98;
+val* var99 /* : String */;
+char* var100 /* : NativeString */;
+val* var101 /* : FlatString */;
+val* var102 /* : nullable Object */;
+val* var103 /* : String */;
+val* var104 /* : nullable Object */;
+val* var105 /* : String */;
 val* var106 /* : String */;
-char* var107 /* : NativeString */;
-long var108 /* : Int */;
-val* var109 /* : FlatString */;
-short int var110 /* : Bool */;
-long var111 /* : Int */;
-val* var112 /* : nullable Object */;
+val* var107 /* : RuntimeVariable */;
+static val* varonce108;
+val* var109 /* : String */;
+char* var110 /* : NativeString */;
+val* var111 /* : FlatString */;
+short int var112 /* : Bool */;
+val* var114 /* : NativeArray[String] */;
 static val* varonce113;
-val* var114 /* : String */;
-char* var115 /* : NativeString */;
-long var116 /* : Int */;
-val* var117 /* : FlatString */;
-long var118 /* : Int */;
+static val* varonce115;
+val* var116 /* : String */;
+char* var117 /* : NativeString */;
+val* var118 /* : FlatString */;
 val* var119 /* : nullable Object */;
-val* var120 /* : Array[Object] */;
-long var121 /* : Int */;
-val* var122 /* : NativeArray[Object] */;
-val* var123 /* : String */;
-val* var124 /* : RuntimeVariable */;
-short int var125 /* : Bool */;
-static val* varonce126;
-val* var127 /* : String */;
-char* var128 /* : NativeString */;
-long var129 /* : Int */;
-val* var130 /* : FlatString */;
-short int var131 /* : Bool */;
-static val* varonce132;
-val* var133 /* : String */;
-char* var134 /* : NativeString */;
-long var135 /* : Int */;
-val* var136 /* : FlatString */;
-long var137 /* : Int */;
-val* var138 /* : nullable Object */;
-val* var139 /* : Array[Object] */;
-long var140 /* : Int */;
-val* var141 /* : NativeArray[Object] */;
-val* var142 /* : String */;
-val* var143 /* : RuntimeVariable */;
-short int var144 /* : Bool */;
-static val* varonce145;
-val* var146 /* : String */;
-char* var147 /* : NativeString */;
-long var148 /* : Int */;
+val* var120 /* : String */;
+val* var121 /* : String */;
+val* var122 /* : RuntimeVariable */;
+static val* varonce123;
+val* var124 /* : String */;
+char* var125 /* : NativeString */;
+val* var126 /* : FlatString */;
+short int var127 /* : Bool */;
+val* var128 /* : nullable Object */;
+static val* varonce129;
+val* var130 /* : String */;
+char* var131 /* : NativeString */;
+val* var132 /* : FlatString */;
+short int var133 /* : Bool */;
+val* var135 /* : NativeArray[String] */;
+static val* varonce134;
+static val* varonce136;
+val* var137 /* : String */;
+char* var138 /* : NativeString */;
+val* var139 /* : FlatString */;
+val* var140 /* : nullable Object */;
+val* var141 /* : String */;
+val* var142 /* : nullable Object */;
+val* var143 /* : String */;
+val* var144 /* : String */;
+val* var145 /* : RuntimeVariable */;
+static val* varonce146;
+val* var147 /* : String */;
+char* var148 /* : NativeString */;
 val* var149 /* : FlatString */;
 short int var150 /* : Bool */;
-long var151 /* : Int */;
-val* var152 /* : nullable Object */;
+val* var152 /* : NativeArray[String] */;
+static val* varonce151;
 static val* varonce153;
 val* var154 /* : String */;
 char* var155 /* : NativeString */;
-long var156 /* : Int */;
-val* var157 /* : FlatString */;
-long var158 /* : Int */;
+val* var156 /* : FlatString */;
+val* var157 /* : nullable Object */;
+val* var158 /* : String */;
 val* var159 /* : nullable Object */;
-val* var160 /* : Array[Object] */;
-long var161 /* : Int */;
-val* var162 /* : NativeArray[Object] */;
-val* var163 /* : String */;
-val* var164 /* : RuntimeVariable */;
-short int var165 /* : Bool */;
-static val* varonce166;
-val* var167 /* : String */;
-char* var168 /* : NativeString */;
-long var169 /* : Int */;
-val* var170 /* : FlatString */;
-short int var171 /* : Bool */;
-long var172 /* : Int */;
-val* var173 /* : nullable Object */;
-static val* varonce174;
+val* var160 /* : String */;
+val* var161 /* : String */;
+val* var162 /* : RuntimeVariable */;
+static val* varonce163;
+val* var164 /* : String */;
+char* var165 /* : NativeString */;
+val* var166 /* : FlatString */;
+short int var167 /* : Bool */;
+val* var169 /* : NativeArray[String] */;
+static val* varonce168;
+static val* varonce170;
+val* var171 /* : String */;
+char* var172 /* : NativeString */;
+val* var173 /* : FlatString */;
+val* var174 /* : nullable Object */;
 val* var175 /* : String */;
-char* var176 /* : NativeString */;
-long var177 /* : Int */;
-val* var178 /* : FlatString */;
-long var179 /* : Int */;
-val* var180 /* : nullable Object */;
-val* var181 /* : Array[Object] */;
-long var182 /* : Int */;
-val* var183 /* : NativeArray[Object] */;
-val* var184 /* : String */;
-val* var185 /* : RuntimeVariable */;
-short int var186 /* : Bool */;
+val* var176 /* : nullable Object */;
+val* var177 /* : String */;
+val* var178 /* : String */;
+val* var179 /* : RuntimeVariable */;
+static val* varonce180;
+val* var181 /* : String */;
+char* var182 /* : NativeString */;
+val* var183 /* : FlatString */;
+short int var184 /* : Bool */;
+val* var186 /* : NativeArray[String] */;
+static val* varonce185;
 static val* varonce187;
 val* var188 /* : String */;
 char* var189 /* : NativeString */;
-long var190 /* : Int */;
-val* var191 /* : FlatString */;
-short int var192 /* : Bool */;
-long var193 /* : Int */;
-val* var194 /* : nullable Object */;
-static val* varonce195;
-val* var196 /* : String */;
-char* var197 /* : NativeString */;
-long var198 /* : Int */;
-val* var199 /* : FlatString */;
-long var200 /* : Int */;
-val* var201 /* : nullable Object */;
-val* var202 /* : Array[Object] */;
-long var203 /* : Int */;
-val* var204 /* : NativeArray[Object] */;
+val* var190 /* : FlatString */;
+val* var191 /* : nullable Object */;
+val* var192 /* : String */;
+val* var193 /* : nullable Object */;
+val* var194 /* : String */;
+val* var195 /* : String */;
+val* var196 /* : RuntimeVariable */;
+static val* varonce197;
+val* var198 /* : String */;
+char* var199 /* : NativeString */;
+val* var200 /* : FlatString */;
+short int var201 /* : Bool */;
+val* var203 /* : NativeArray[String] */;
+static val* varonce202;
+static val* varonce204;
 val* var205 /* : String */;
-val* var206 /* : RuntimeVariable */;
-short int var207 /* : Bool */;
-static val* varonce208;
+char* var206 /* : NativeString */;
+val* var207 /* : FlatString */;
+val* var208 /* : nullable Object */;
 val* var209 /* : String */;
-char* var210 /* : NativeString */;
-long var211 /* : Int */;
-val* var212 /* : FlatString */;
-short int var213 /* : Bool */;
-long var214 /* : Int */;
-val* var215 /* : nullable Object */;
-static val* varonce216;
-val* var217 /* : String */;
-char* var218 /* : NativeString */;
-long var219 /* : Int */;
-val* var220 /* : FlatString */;
-long var221 /* : Int */;
-val* var222 /* : nullable Object */;
-val* var223 /* : Array[Object] */;
-long var224 /* : Int */;
-val* var225 /* : NativeArray[Object] */;
-val* var226 /* : String */;
-val* var227 /* : RuntimeVariable */;
-short int var228 /* : Bool */;
-static val* varonce229;
-val* var230 /* : String */;
-char* var231 /* : NativeString */;
-long var232 /* : Int */;
-val* var233 /* : FlatString */;
-short int var234 /* : Bool */;
-long var235 /* : Int */;
-val* var236 /* : nullable Object */;
-static val* varonce237;
-val* var238 /* : String */;
-char* var239 /* : NativeString */;
-long var240 /* : Int */;
-val* var241 /* : FlatString */;
-long var242 /* : Int */;
-val* var243 /* : nullable Object */;
-val* var244 /* : Array[Object] */;
-long var245 /* : Int */;
-val* var246 /* : NativeArray[Object] */;
+val* var210 /* : nullable Object */;
+val* var211 /* : String */;
+val* var212 /* : String */;
+val* var213 /* : RuntimeVariable */;
+static val* varonce214;
+val* var215 /* : String */;
+char* var216 /* : NativeString */;
+val* var217 /* : FlatString */;
+short int var218 /* : Bool */;
+val* var219 /* : nullable Object */;
+val* var220 /* : nullable Object */;
+val* var221 /* : RuntimeVariable */;
+static val* varonce222;
+val* var223 /* : String */;
+char* var224 /* : NativeString */;
+val* var225 /* : FlatString */;
+short int var226 /* : Bool */;
+val* var227 /* : nullable Object */;
+val* var228 /* : nullable Object */;
+val* var229 /* : RuntimeVariable */;
+val* var_res /* var res: RuntimeVariable */;
+val* var231 /* : NativeArray[String] */;
+static val* varonce230;
+static val* varonce232;
+val* var233 /* : String */;
+char* var234 /* : NativeString */;
+val* var235 /* : FlatString */;
+val* var236 /* : String */;
+val* var237 /* : String */;
+val* var238 /* : RuntimeVariable */;
+static val* varonce239;
+val* var240 /* : String */;
+char* var241 /* : NativeString */;
+val* var242 /* : FlatString */;
+short int var243 /* : Bool */;
+val* var245 /* : NativeArray[String] */;
+static val* varonce244;
+static val* varonce246;
 val* var247 /* : String */;
-val* var248 /* : RuntimeVariable */;
-short int var249 /* : Bool */;
-static val* varonce250;
+char* var248 /* : NativeString */;
+val* var249 /* : FlatString */;
+val* var250 /* : nullable Object */;
 val* var251 /* : String */;
-char* var252 /* : NativeString */;
-long var253 /* : Int */;
-val* var254 /* : FlatString */;
-short int var255 /* : Bool */;
-long var256 /* : Int */;
-val* var257 /* : nullable Object */;
-long var258 /* : Int */;
-val* var259 /* : nullable Object */;
-val* var260 /* : RuntimeVariable */;
-short int var261 /* : Bool */;
-static val* varonce262;
-val* var263 /* : String */;
-char* var264 /* : NativeString */;
-long var265 /* : Int */;
+val* var252 /* : nullable Object */;
+val* var253 /* : String */;
+val* var254 /* : String */;
+val* var255 /* : RuntimeVariable */;
+static val* varonce256;
+val* var257 /* : String */;
+char* var258 /* : NativeString */;
+val* var259 /* : FlatString */;
+short int var260 /* : Bool */;
+val* var262 /* : NativeArray[String] */;
+static val* varonce261;
+static val* varonce263;
+val* var264 /* : String */;
+char* var265 /* : NativeString */;
 val* var266 /* : FlatString */;
-short int var267 /* : Bool */;
-long var268 /* : Int */;
+val* var267 /* : nullable Object */;
+val* var268 /* : String */;
 val* var269 /* : nullable Object */;
-long var270 /* : Int */;
-val* var271 /* : nullable Object */;
+val* var270 /* : String */;
+val* var271 /* : String */;
 val* var272 /* : RuntimeVariable */;
-val* var_res /* var res: RuntimeVariable */;
 static val* varonce273;
 val* var274 /* : String */;
 char* var275 /* : NativeString */;
-long var276 /* : Int */;
-val* var277 /* : FlatString */;
-val* var278 /* : Array[Object] */;
-long var279 /* : Int */;
-val* var280 /* : NativeArray[Object] */;
+val* var276 /* : FlatString */;
+short int var277 /* : Bool */;
+val* var279 /* : NativeArray[String] */;
+static val* varonce278;
+static val* varonce280;
 val* var281 /* : String */;
-val* var282 /* : RuntimeVariable */;
-short int var283 /* : Bool */;
-static val* varonce284;
+char* var282 /* : NativeString */;
+val* var283 /* : FlatString */;
+val* var284 /* : nullable Object */;
 val* var285 /* : String */;
-char* var286 /* : NativeString */;
-long var287 /* : Int */;
-val* var288 /* : FlatString */;
-short int var289 /* : Bool */;
-long var290 /* : Int */;
-val* var291 /* : nullable Object */;
-static val* varonce292;
-val* var293 /* : String */;
-char* var294 /* : NativeString */;
-long var295 /* : Int */;
-val* var296 /* : FlatString */;
-long var297 /* : Int */;
-val* var298 /* : nullable Object */;
-val* var299 /* : Array[Object] */;
-long var300 /* : Int */;
-val* var301 /* : NativeArray[Object] */;
+val* var286 /* : nullable Object */;
+val* var287 /* : String */;
+val* var288 /* : String */;
+val* var289 /* : RuntimeVariable */;
+static val* varonce290;
+val* var291 /* : String */;
+char* var292 /* : NativeString */;
+val* var293 /* : FlatString */;
+short int var294 /* : Bool */;
+val* var296 /* : NativeArray[String] */;
+static val* varonce295;
+static val* varonce297;
+val* var298 /* : String */;
+char* var299 /* : NativeString */;
+val* var300 /* : FlatString */;
+val* var301 /* : nullable Object */;
 val* var302 /* : String */;
-val* var303 /* : RuntimeVariable */;
-short int var304 /* : Bool */;
-static val* varonce305;
-val* var306 /* : String */;
-char* var307 /* : NativeString */;
-long var308 /* : Int */;
-val* var309 /* : FlatString */;
-short int var310 /* : Bool */;
-long var311 /* : Int */;
-val* var312 /* : nullable Object */;
-static val* varonce313;
-val* var314 /* : String */;
-char* var315 /* : NativeString */;
-long var316 /* : Int */;
+val* var303 /* : nullable Object */;
+val* var304 /* : String */;
+val* var305 /* : String */;
+val* var306 /* : RuntimeVariable */;
+static val* varonce307;
+val* var308 /* : String */;
+char* var309 /* : NativeString */;
+val* var310 /* : FlatString */;
+short int var311 /* : Bool */;
+val* var313 /* : NativeArray[String] */;
+static val* varonce312;
+static val* varonce314;
+val* var315 /* : String */;
+char* var316 /* : NativeString */;
 val* var317 /* : FlatString */;
-long var318 /* : Int */;
-val* var319 /* : nullable Object */;
-val* var320 /* : Array[Object] */;
-long var321 /* : Int */;
-val* var322 /* : NativeArray[Object] */;
+val* var318 /* : nullable Object */;
+val* var319 /* : String */;
+val* var320 /* : String */;
+val* var321 /* : RuntimeVariable */;
+static val* varonce322;
 val* var323 /* : String */;
-val* var324 /* : RuntimeVariable */;
-short int var325 /* : Bool */;
-static val* varonce326;
-val* var327 /* : String */;
-char* var328 /* : NativeString */;
-long var329 /* : Int */;
-val* var330 /* : FlatString */;
-short int var331 /* : Bool */;
-long var332 /* : Int */;
+char* var324 /* : NativeString */;
+val* var325 /* : FlatString */;
+short int var326 /* : Bool */;
+val* var328 /* : NativeArray[String] */;
+static val* varonce327;
+static val* varonce329;
+val* var330 /* : String */;
+char* var331 /* : NativeString */;
+val* var332 /* : FlatString */;
 val* var333 /* : nullable Object */;
-static val* varonce334;
+val* var334 /* : String */;
 val* var335 /* : String */;
-char* var336 /* : NativeString */;
-long var337 /* : Int */;
-val* var338 /* : FlatString */;
-long var339 /* : Int */;
-val* var340 /* : nullable Object */;
-val* var341 /* : Array[Object] */;
-long var342 /* : Int */;
-val* var343 /* : NativeArray[Object] */;
-val* var344 /* : String */;
-val* var345 /* : RuntimeVariable */;
-short int var346 /* : Bool */;
-static val* varonce347;
-val* var348 /* : String */;
-char* var349 /* : NativeString */;
-long var350 /* : Int */;
-val* var351 /* : FlatString */;
-short int var352 /* : Bool */;
-long var353 /* : Int */;
-val* var354 /* : nullable Object */;
-static val* varonce355;
-val* var356 /* : String */;
-char* var357 /* : NativeString */;
-long var358 /* : Int */;
-val* var359 /* : FlatString */;
-long var360 /* : Int */;
-val* var361 /* : nullable Object */;
-val* var362 /* : Array[Object] */;
-long var363 /* : Int */;
-val* var364 /* : NativeArray[Object] */;
+val* var336 /* : RuntimeVariable */;
+static val* varonce337;
+val* var338 /* : String */;
+char* var339 /* : NativeString */;
+val* var340 /* : FlatString */;
+short int var341 /* : Bool */;
+val* var343 /* : NativeArray[String] */;
+static val* varonce342;
+static val* varonce344;
+val* var345 /* : String */;
+char* var346 /* : NativeString */;
+val* var347 /* : FlatString */;
+val* var348 /* : nullable Object */;
+val* var349 /* : String */;
+val* var350 /* : String */;
+val* var351 /* : RuntimeVariable */;
+static val* varonce352;
+val* var353 /* : String */;
+char* var354 /* : NativeString */;
+val* var355 /* : FlatString */;
+short int var356 /* : Bool */;
+static val* varonce357;
+val* var358 /* : String */;
+char* var359 /* : NativeString */;
+val* var360 /* : FlatString */;
+short int var361 /* : Bool */;
+val* var363 /* : NativeArray[String] */;
+static val* varonce362;
+static val* varonce364;
 val* var365 /* : String */;
-val* var366 /* : RuntimeVariable */;
-short int var367 /* : Bool */;
+char* var366 /* : NativeString */;
+val* var367 /* : FlatString */;
 static val* varonce368;
 val* var369 /* : String */;
 char* var370 /* : NativeString */;
-long var371 /* : Int */;
-val* var372 /* : FlatString */;
-short int var373 /* : Bool */;
-static val* varonce374;
-val* var375 /* : String */;
-char* var376 /* : NativeString */;
-long var377 /* : Int */;
+val* var371 /* : FlatString */;
+val* var372 /* : nullable Object */;
+val* var373 /* : String */;
+val* var374 /* : String */;
+static val* varonce375;
+val* var376 /* : String */;
+char* var377 /* : NativeString */;
 val* var378 /* : FlatString */;
-long var379 /* : Int */;
-val* var380 /* : nullable Object */;
-val* var381 /* : Array[Object] */;
-long var382 /* : Int */;
-val* var383 /* : NativeArray[Object] */;
-val* var384 /* : String */;
-val* var385 /* : RuntimeVariable */;
-short int var386 /* : Bool */;
-static val* varonce387;
+short int var379 /* : Bool */;
+val* var381 /* : NativeArray[String] */;
+static val* varonce380;
+static val* varonce382;
+val* var383 /* : String */;
+char* var384 /* : NativeString */;
+val* var385 /* : FlatString */;
+val* var386 /* : nullable Object */;
+val* var387 /* : String */;
 val* var388 /* : String */;
-char* var389 /* : NativeString */;
-long var390 /* : Int */;
-val* var391 /* : FlatString */;
-short int var392 /* : Bool */;
-long var393 /* : Int */;
-val* var394 /* : nullable Object */;
-val* var395 /* : Array[Object] */;
-long var396 /* : Int */;
-val* var397 /* : NativeArray[Object] */;
+val* var389 /* : RuntimeVariable */;
+static val* varonce390;
+val* var391 /* : String */;
+char* var392 /* : NativeString */;
+val* var393 /* : FlatString */;
+short int var394 /* : Bool */;
+val* var396 /* : NativeArray[String] */;
+static val* varonce395;
+static val* varonce397;
 val* var398 /* : String */;
-val* var399 /* : RuntimeVariable */;
-short int var400 /* : Bool */;
-static val* varonce401;
+char* var399 /* : NativeString */;
+val* var400 /* : FlatString */;
+val* var401 /* : nullable Object */;
 val* var402 /* : String */;
-char* var403 /* : NativeString */;
-long var404 /* : Int */;
-val* var405 /* : FlatString */;
-short int var406 /* : Bool */;
+val* var403 /* : nullable Object */;
+val* var404 /* : String */;
+val* var405 /* : String */;
+val* var406 /* : RuntimeVariable */;
 static val* varonce407;
 val* var408 /* : String */;
 char* var409 /* : NativeString */;
-long var410 /* : Int */;
-val* var411 /* : FlatString */;
-short int var412 /* : Bool */;
-static val* varonce413;
-val* var414 /* : String */;
-char* var415 /* : NativeString */;
-long var416 /* : Int */;
+val* var410 /* : FlatString */;
+short int var411 /* : Bool */;
+val* var413 /* : NativeArray[String] */;
+static val* varonce412;
+static val* varonce414;
+val* var415 /* : String */;
+char* var416 /* : NativeString */;
 val* var417 /* : FlatString */;
 val* var418 /* : nullable Object */;
-static val* varonce419;
-val* var420 /* : String */;
-char* var421 /* : NativeString */;
-long var422 /* : Int */;
-val* var423 /* : FlatString */;
-val* var424 /* : Array[Object] */;
-long var425 /* : Int */;
-val* var426 /* : NativeArray[Object] */;
-val* var427 /* : String */;
+val* var419 /* : String */;
+val* var420 /* : nullable Object */;
+val* var421 /* : String */;
+val* var422 /* : String */;
+val* var423 /* : RuntimeVariable */;
+static val* varonce424;
+val* var425 /* : String */;
+char* var426 /* : NativeString */;
+val* var427 /* : FlatString */;
 short int var428 /* : Bool */;
-static val* varonce429;
-val* var430 /* : String */;
-char* var431 /* : NativeString */;
-long var432 /* : Int */;
-val* var433 /* : FlatString */;
-short int var434 /* : Bool */;
-static val* varonce435;
-val* var436 /* : String */;
-char* var437 /* : NativeString */;
-long var438 /* : Int */;
-val* var439 /* : FlatString */;
-val* var440 /* : nullable Object */;
-val* var441 /* : Array[Object] */;
-long var442 /* : Int */;
-val* var443 /* : NativeArray[Object] */;
+val* var429 /* : nullable Object */;
+val* var430 /* : nullable Object */;
+val* var431 /* : RuntimeVariable */;
+static val* varonce432;
+val* var433 /* : String */;
+char* var434 /* : NativeString */;
+val* var435 /* : FlatString */;
+short int var436 /* : Bool */;
+val* var437 /* : nullable Object */;
+val* var438 /* : nullable Object */;
+val* var439 /* : RuntimeVariable */;
+val* var_res440 /* var res: RuntimeVariable */;
+val* var442 /* : NativeArray[String] */;
+static val* varonce441;
+static val* varonce443;
 val* var444 /* : String */;
-val* var445 /* : RuntimeVariable */;
-short int var446 /* : Bool */;
-static val* varonce447;
+char* var445 /* : NativeString */;
+val* var446 /* : FlatString */;
+val* var447 /* : String */;
 val* var448 /* : String */;
-char* var449 /* : NativeString */;
-long var450 /* : Int */;
-val* var451 /* : FlatString */;
-short int var452 /* : Bool */;
-long var453 /* : Int */;
-val* var454 /* : nullable Object */;
+val* var449 /* : RuntimeVariable */;
+static val* varonce450;
+val* var451 /* : String */;
+char* var452 /* : NativeString */;
+val* var453 /* : FlatString */;
+short int var454 /* : Bool */;
+val* var456 /* : NativeArray[String] */;
 static val* varonce455;
-val* var456 /* : String */;
-char* var457 /* : NativeString */;
-long var458 /* : Int */;
-val* var459 /* : FlatString */;
-long var460 /* : Int */;
+static val* varonce457;
+val* var458 /* : String */;
+char* var459 /* : NativeString */;
+val* var460 /* : FlatString */;
 val* var461 /* : nullable Object */;
-val* var462 /* : Array[Object] */;
-long var463 /* : Int */;
-val* var464 /* : NativeArray[Object] */;
+val* var462 /* : String */;
+val* var463 /* : nullable Object */;
+val* var464 /* : String */;
 val* var465 /* : String */;
 val* var466 /* : RuntimeVariable */;
-short int var467 /* : Bool */;
-static val* varonce468;
-val* var469 /* : String */;
-char* var470 /* : NativeString */;
-long var471 /* : Int */;
-val* var472 /* : FlatString */;
-short int var473 /* : Bool */;
-long var474 /* : Int */;
-val* var475 /* : nullable Object */;
-static val* varonce476;
-val* var477 /* : String */;
-char* var478 /* : NativeString */;
-long var479 /* : Int */;
-val* var480 /* : FlatString */;
-long var481 /* : Int */;
-val* var482 /* : nullable Object */;
-val* var483 /* : Array[Object] */;
-long var484 /* : Int */;
-val* var485 /* : NativeArray[Object] */;
-val* var486 /* : String */;
-val* var487 /* : RuntimeVariable */;
+static val* varonce467;
+val* var468 /* : String */;
+char* var469 /* : NativeString */;
+val* var470 /* : FlatString */;
+short int var471 /* : Bool */;
+val* var473 /* : NativeArray[String] */;
+static val* varonce472;
+static val* varonce474;
+val* var475 /* : String */;
+char* var476 /* : NativeString */;
+val* var477 /* : FlatString */;
+val* var478 /* : nullable Object */;
+val* var479 /* : String */;
+val* var480 /* : nullable Object */;
+val* var481 /* : String */;
+val* var482 /* : String */;
+val* var483 /* : RuntimeVariable */;
+static val* varonce484;
+val* var485 /* : String */;
+char* var486 /* : NativeString */;
+val* var487 /* : FlatString */;
 short int var488 /* : Bool */;
+val* var490 /* : NativeArray[String] */;
 static val* varonce489;
-val* var490 /* : String */;
-char* var491 /* : NativeString */;
-long var492 /* : Int */;
-val* var493 /* : FlatString */;
-short int var494 /* : Bool */;
-long var495 /* : Int */;
-val* var496 /* : nullable Object */;
-long var497 /* : Int */;
-val* var498 /* : nullable Object */;
-val* var499 /* : RuntimeVariable */;
-short int var500 /* : Bool */;
+static val* varonce491;
+val* var492 /* : String */;
+char* var493 /* : NativeString */;
+val* var494 /* : FlatString */;
+val* var495 /* : nullable Object */;
+val* var496 /* : String */;
+val* var497 /* : nullable Object */;
+val* var498 /* : String */;
+val* var499 /* : String */;
+val* var500 /* : RuntimeVariable */;
 static val* varonce501;
 val* var502 /* : String */;
 char* var503 /* : NativeString */;
-long var504 /* : Int */;
-val* var505 /* : FlatString */;
-short int var506 /* : Bool */;
-long var507 /* : Int */;
-val* var508 /* : nullable Object */;
-long var509 /* : Int */;
-val* var510 /* : nullable Object */;
-val* var511 /* : RuntimeVariable */;
-val* var_res512 /* var res: RuntimeVariable */;
-static val* varonce513;
-val* var514 /* : String */;
-char* var515 /* : NativeString */;
-long var516 /* : Int */;
-val* var517 /* : FlatString */;
-val* var518 /* : Array[Object] */;
-long var519 /* : Int */;
-val* var520 /* : NativeArray[Object] */;
-val* var521 /* : String */;
-val* var522 /* : RuntimeVariable */;
-short int var523 /* : Bool */;
-static val* varonce524;
-val* var525 /* : String */;
-char* var526 /* : NativeString */;
-long var527 /* : Int */;
+val* var504 /* : FlatString */;
+short int var505 /* : Bool */;
+val* var507 /* : NativeArray[String] */;
+static val* varonce506;
+static val* varonce508;
+val* var509 /* : String */;
+char* var510 /* : NativeString */;
+val* var511 /* : FlatString */;
+val* var512 /* : nullable Object */;
+val* var513 /* : String */;
+val* var514 /* : nullable Object */;
+val* var515 /* : String */;
+val* var516 /* : String */;
+val* var517 /* : RuntimeVariable */;
+static val* varonce518;
+val* var519 /* : String */;
+char* var520 /* : NativeString */;
+val* var521 /* : FlatString */;
+short int var522 /* : Bool */;
+val* var524 /* : NativeArray[String] */;
+static val* varonce523;
+static val* varonce525;
+val* var526 /* : String */;
+char* var527 /* : NativeString */;
 val* var528 /* : FlatString */;
-short int var529 /* : Bool */;
-long var530 /* : Int */;
-val* var531 /* : nullable Object */;
-static val* varonce532;
-val* var533 /* : String */;
-char* var534 /* : NativeString */;
-long var535 /* : Int */;
+val* var529 /* : nullable Object */;
+val* var530 /* : String */;
+val* var531 /* : String */;
+val* var532 /* : RuntimeVariable */;
+static val* varonce533;
+val* var534 /* : String */;
+char* var535 /* : NativeString */;
 val* var536 /* : FlatString */;
-long var537 /* : Int */;
-val* var538 /* : nullable Object */;
-val* var539 /* : Array[Object] */;
-long var540 /* : Int */;
-val* var541 /* : NativeArray[Object] */;
-val* var542 /* : String */;
-val* var543 /* : RuntimeVariable */;
-short int var544 /* : Bool */;
-static val* varonce545;
+short int var537 /* : Bool */;
+val* var539 /* : NativeArray[String] */;
+static val* varonce538;
+static val* varonce540;
+val* var541 /* : String */;
+char* var542 /* : NativeString */;
+val* var543 /* : FlatString */;
+val* var544 /* : nullable Object */;
+val* var545 /* : String */;
 val* var546 /* : String */;
-char* var547 /* : NativeString */;
-long var548 /* : Int */;
-val* var549 /* : FlatString */;
-short int var550 /* : Bool */;
-long var551 /* : Int */;
-val* var552 /* : nullable Object */;
+val* var547 /* : RuntimeVariable */;
+static val* varonce548;
+val* var549 /* : String */;
+char* var550 /* : NativeString */;
+val* var551 /* : FlatString */;
+short int var552 /* : Bool */;
 static val* varonce553;
 val* var554 /* : String */;
 char* var555 /* : NativeString */;
-long var556 /* : Int */;
-val* var557 /* : FlatString */;
-long var558 /* : Int */;
-val* var559 /* : nullable Object */;
-val* var560 /* : Array[Object] */;
-long var561 /* : Int */;
-val* var562 /* : NativeArray[Object] */;
-val* var563 /* : String */;
-val* var564 /* : RuntimeVariable */;
-short int var565 /* : Bool */;
-static val* varonce566;
-val* var567 /* : String */;
-char* var568 /* : NativeString */;
-long var569 /* : Int */;
-val* var570 /* : FlatString */;
-short int var571 /* : Bool */;
-long var572 /* : Int */;
-val* var573 /* : nullable Object */;
-static val* varonce574;
-val* var575 /* : String */;
-char* var576 /* : NativeString */;
-long var577 /* : Int */;
-val* var578 /* : FlatString */;
-long var579 /* : Int */;
-val* var580 /* : nullable Object */;
-val* var581 /* : Array[Object] */;
-long var582 /* : Int */;
-val* var583 /* : NativeArray[Object] */;
+val* var556 /* : FlatString */;
+short int var557 /* : Bool */;
+val* var559 /* : NativeArray[String] */;
+static val* varonce558;
+static val* varonce560;
+val* var561 /* : String */;
+char* var562 /* : NativeString */;
+val* var563 /* : FlatString */;
+static val* varonce564;
+val* var565 /* : String */;
+char* var566 /* : NativeString */;
+val* var567 /* : FlatString */;
+val* var568 /* : nullable Object */;
+val* var569 /* : String */;
+val* var570 /* : String */;
+static val* varonce571;
+val* var572 /* : String */;
+char* var573 /* : NativeString */;
+val* var574 /* : FlatString */;
+short int var575 /* : Bool */;
+val* var577 /* : NativeArray[String] */;
+static val* varonce576;
+static val* varonce578;
+val* var579 /* : String */;
+char* var580 /* : NativeString */;
+val* var581 /* : FlatString */;
+val* var582 /* : nullable Object */;
+val* var583 /* : String */;
 val* var584 /* : String */;
 val* var585 /* : RuntimeVariable */;
-short int var586 /* : Bool */;
-static val* varonce587;
-val* var588 /* : String */;
-char* var589 /* : NativeString */;
-long var590 /* : Int */;
-val* var591 /* : FlatString */;
-short int var592 /* : Bool */;
-long var593 /* : Int */;
-val* var594 /* : nullable Object */;
-static val* varonce595;
-val* var596 /* : String */;
-char* var597 /* : NativeString */;
-long var598 /* : Int */;
-val* var599 /* : FlatString */;
-long var600 /* : Int */;
-val* var601 /* : nullable Object */;
-val* var602 /* : Array[Object] */;
-long var603 /* : Int */;
-val* var604 /* : NativeArray[Object] */;
-val* var605 /* : String */;
-val* var606 /* : RuntimeVariable */;
+static val* varonce586;
+val* var587 /* : String */;
+char* var588 /* : NativeString */;
+val* var589 /* : FlatString */;
+short int var590 /* : Bool */;
+val* var592 /* : NativeArray[String] */;
+static val* varonce591;
+static val* varonce593;
+val* var594 /* : String */;
+char* var595 /* : NativeString */;
+val* var596 /* : FlatString */;
+val* var597 /* : nullable Object */;
+val* var598 /* : String */;
+val* var599 /* : nullable Object */;
+val* var600 /* : String */;
+val* var601 /* : String */;
+val* var602 /* : RuntimeVariable */;
+static val* varonce603;
+val* var604 /* : String */;
+char* var605 /* : NativeString */;
+val* var606 /* : FlatString */;
 short int var607 /* : Bool */;
+val* var609 /* : NativeArray[String] */;
 static val* varonce608;
-val* var609 /* : String */;
-char* var610 /* : NativeString */;
-long var611 /* : Int */;
-val* var612 /* : FlatString */;
-short int var613 /* : Bool */;
-long var614 /* : Int */;
-val* var615 /* : nullable Object */;
-static val* varonce616;
+static val* varonce610;
+val* var611 /* : String */;
+char* var612 /* : NativeString */;
+val* var613 /* : FlatString */;
+val* var614 /* : nullable Object */;
+val* var615 /* : String */;
+val* var616 /* : nullable Object */;
 val* var617 /* : String */;
-char* var618 /* : NativeString */;
-long var619 /* : Int */;
-val* var620 /* : FlatString */;
-val* var621 /* : Array[Object] */;
-long var622 /* : Int */;
-val* var623 /* : NativeArray[Object] */;
-val* var624 /* : String */;
-val* var625 /* : RuntimeVariable */;
-short int var626 /* : Bool */;
+val* var618 /* : String */;
+val* var619 /* : RuntimeVariable */;
+static val* varonce620;
+val* var621 /* : String */;
+char* var622 /* : NativeString */;
+val* var623 /* : FlatString */;
+short int var624 /* : Bool */;
+val* var626 /* : NativeArray[String] */;
+static val* varonce625;
 static val* varonce627;
 val* var628 /* : String */;
 char* var629 /* : NativeString */;
-long var630 /* : Int */;
-val* var631 /* : FlatString */;
-short int var632 /* : Bool */;
-static val* varonce633;
-val* var634 /* : String */;
-char* var635 /* : NativeString */;
-long var636 /* : Int */;
-val* var637 /* : FlatString */;
-long var638 /* : Int */;
-val* var639 /* : nullable Object */;
-val* var640 /* : Array[Object] */;
-long var641 /* : Int */;
-val* var642 /* : NativeArray[Object] */;
-val* var643 /* : String */;
-val* var644 /* : RuntimeVariable */;
+val* var630 /* : FlatString */;
+val* var631 /* : nullable Object */;
+val* var632 /* : String */;
+val* var633 /* : String */;
+val* var634 /* : RuntimeVariable */;
+static val* varonce635;
+val* var636 /* : String */;
+char* var637 /* : NativeString */;
+val* var638 /* : FlatString */;
+short int var639 /* : Bool */;
+val* var640 /* : nullable Object */;
+static val* varonce641;
+val* var642 /* : String */;
+char* var643 /* : NativeString */;
+val* var644 /* : FlatString */;
 short int var645 /* : Bool */;
+val* var647 /* : NativeArray[String] */;
 static val* varonce646;
-val* var647 /* : String */;
-char* var648 /* : NativeString */;
-long var649 /* : Int */;
-val* var650 /* : FlatString */;
-short int var651 /* : Bool */;
-static val* varonce652;
+static val* varonce648;
+val* var649 /* : String */;
+char* var650 /* : NativeString */;
+val* var651 /* : FlatString */;
+val* var652 /* : nullable Object */;
 val* var653 /* : String */;
-char* var654 /* : NativeString */;
-long var655 /* : Int */;
-val* var656 /* : FlatString */;
-short int var657 /* : Bool */;
+val* var654 /* : nullable Object */;
+val* var655 /* : String */;
+val* var656 /* : String */;
+val* var657 /* : RuntimeVariable */;
 static val* varonce658;
 val* var659 /* : String */;
 char* var660 /* : NativeString */;
-long var661 /* : Int */;
-val* var662 /* : FlatString */;
-val* var663 /* : nullable Object */;
-static val* varonce664;
-val* var665 /* : String */;
-char* var666 /* : NativeString */;
-long var667 /* : Int */;
+val* var661 /* : FlatString */;
+short int var662 /* : Bool */;
+val* var664 /* : NativeArray[String] */;
+static val* varonce663;
+static val* varonce665;
+val* var666 /* : String */;
+char* var667 /* : NativeString */;
 val* var668 /* : FlatString */;
-val* var669 /* : Array[Object] */;
-long var670 /* : Int */;
-val* var671 /* : NativeArray[Object] */;
+val* var669 /* : nullable Object */;
+val* var670 /* : String */;
+val* var671 /* : nullable Object */;
 val* var672 /* : String */;
-short int var673 /* : Bool */;
-static val* varonce674;
-val* var675 /* : String */;
-char* var676 /* : NativeString */;
-long var677 /* : Int */;
+val* var673 /* : String */;
+val* var674 /* : RuntimeVariable */;
+static val* varonce675;
+val* var676 /* : String */;
+char* var677 /* : NativeString */;
 val* var678 /* : FlatString */;
 short int var679 /* : Bool */;
+val* var681 /* : NativeArray[String] */;
 static val* varonce680;
-val* var681 /* : String */;
-char* var682 /* : NativeString */;
-long var683 /* : Int */;
-val* var684 /* : FlatString */;
-val* var685 /* : nullable Object */;
-val* var686 /* : Array[Object] */;
-long var687 /* : Int */;
-val* var688 /* : NativeArray[Object] */;
+static val* varonce682;
+val* var683 /* : String */;
+char* var684 /* : NativeString */;
+val* var685 /* : FlatString */;
+val* var686 /* : nullable Object */;
+val* var687 /* : String */;
+val* var688 /* : nullable Object */;
 val* var689 /* : String */;
-val* var690 /* : RuntimeVariable */;
-short int var691 /* : Bool */;
+val* var690 /* : String */;
+val* var691 /* : RuntimeVariable */;
 static val* varonce692;
 val* var693 /* : String */;
 char* var694 /* : NativeString */;
-long var695 /* : Int */;
-val* var696 /* : FlatString */;
-short int var697 /* : Bool */;
-long var698 /* : Int */;
-val* var699 /* : nullable Object */;
-long var700 /* : Int */;
-val* var701 /* : nullable Object */;
-val* var702 /* : RuntimeVariable */;
-short int var703 /* : Bool */;
-static val* varonce704;
-val* var705 /* : String */;
-char* var706 /* : NativeString */;
-long var707 /* : Int */;
-val* var708 /* : FlatString */;
-short int var709 /* : Bool */;
-long var710 /* : Int */;
-val* var711 /* : nullable Object */;
-long var712 /* : Int */;
-val* var713 /* : nullable Object */;
-val* var714 /* : RuntimeVariable */;
-val* var_res715 /* var res: RuntimeVariable */;
+val* var695 /* : FlatString */;
+short int var696 /* : Bool */;
+val* var698 /* : NativeArray[String] */;
+static val* varonce697;
+static val* varonce699;
+val* var700 /* : String */;
+char* var701 /* : NativeString */;
+val* var702 /* : FlatString */;
+val* var703 /* : nullable Object */;
+val* var704 /* : String */;
+val* var705 /* : nullable Object */;
+val* var706 /* : String */;
+val* var707 /* : String */;
+val* var708 /* : RuntimeVariable */;
+static val* varonce709;
+val* var710 /* : String */;
+char* var711 /* : NativeString */;
+val* var712 /* : FlatString */;
+short int var713 /* : Bool */;
+val* var715 /* : NativeArray[String] */;
+static val* varonce714;
 static val* varonce716;
 val* var717 /* : String */;
 char* var718 /* : NativeString */;
-long var719 /* : Int */;
-val* var720 /* : FlatString */;
-val* var721 /* : Array[Object] */;
-long var722 /* : Int */;
-val* var723 /* : NativeArray[Object] */;
+val* var719 /* : FlatString */;
+val* var720 /* : nullable Object */;
+val* var721 /* : String */;
+val* var722 /* : nullable Object */;
+val* var723 /* : String */;
 val* var724 /* : String */;
 val* var725 /* : RuntimeVariable */;
-short int var726 /* : Bool */;
-static val* varonce727;
-val* var728 /* : String */;
-char* var729 /* : NativeString */;
-long var730 /* : Int */;
-val* var731 /* : FlatString */;
-short int var732 /* : Bool */;
-static val* varonce733;
-val* var734 /* : String */;
-char* var735 /* : NativeString */;
-long var736 /* : Int */;
+static val* varonce726;
+val* var727 /* : String */;
+char* var728 /* : NativeString */;
+val* var729 /* : FlatString */;
+short int var730 /* : Bool */;
+val* var731 /* : nullable Object */;
+val* var732 /* : nullable Object */;
+val* var733 /* : RuntimeVariable */;
+static val* varonce734;
+val* var735 /* : String */;
+char* var736 /* : NativeString */;
 val* var737 /* : FlatString */;
 short int var738 /* : Bool */;
-static val* varonce739;
-val* var740 /* : String */;
-char* var741 /* : NativeString */;
-long var742 /* : Int */;
-val* var743 /* : FlatString */;
-val* var744 /* : nullable Object */;
+val* var739 /* : nullable Object */;
+val* var740 /* : nullable Object */;
+val* var741 /* : RuntimeVariable */;
+val* var_res742 /* var res: RuntimeVariable */;
+val* var744 /* : NativeArray[String] */;
+static val* varonce743;
 static val* varonce745;
 val* var746 /* : String */;
 char* var747 /* : NativeString */;
-long var748 /* : Int */;
-val* var749 /* : FlatString */;
-val* var750 /* : Array[Object] */;
-long var751 /* : Int */;
-val* var752 /* : NativeArray[Object] */;
+val* var748 /* : FlatString */;
+val* var749 /* : String */;
+val* var750 /* : String */;
+val* var751 /* : RuntimeVariable */;
+static val* varonce752;
 val* var753 /* : String */;
-short int var754 /* : Bool */;
-static val* varonce755;
-val* var756 /* : String */;
-char* var757 /* : NativeString */;
-long var758 /* : Int */;
-val* var759 /* : FlatString */;
-short int var760 /* : Bool */;
-static val* varonce761;
-val* var762 /* : String */;
-char* var763 /* : NativeString */;
-long var764 /* : Int */;
-val* var765 /* : FlatString */;
-val* var766 /* : nullable Object */;
-val* var767 /* : Array[Object] */;
-long var768 /* : Int */;
-val* var769 /* : NativeArray[Object] */;
+char* var754 /* : NativeString */;
+val* var755 /* : FlatString */;
+short int var756 /* : Bool */;
+val* var758 /* : NativeArray[String] */;
+static val* varonce757;
+static val* varonce759;
+val* var760 /* : String */;
+char* var761 /* : NativeString */;
+val* var762 /* : FlatString */;
+val* var763 /* : nullable Object */;
+val* var764 /* : String */;
+val* var765 /* : nullable Object */;
+val* var766 /* : String */;
+val* var767 /* : String */;
+val* var768 /* : RuntimeVariable */;
+static val* varonce769;
 val* var770 /* : String */;
-val* var771 /* : RuntimeVariable */;
-short int var772 /* : Bool */;
-static val* varonce773;
-val* var774 /* : String */;
-char* var775 /* : NativeString */;
-long var776 /* : Int */;
-val* var777 /* : FlatString */;
-short int var778 /* : Bool */;
-long var779 /* : Int */;
+char* var771 /* : NativeString */;
+val* var772 /* : FlatString */;
+short int var773 /* : Bool */;
+val* var775 /* : NativeArray[String] */;
+static val* varonce774;
+static val* varonce776;
+val* var777 /* : String */;
+char* var778 /* : NativeString */;
+val* var779 /* : FlatString */;
 val* var780 /* : nullable Object */;
-static val* varonce781;
-val* var782 /* : String */;
-char* var783 /* : NativeString */;
-long var784 /* : Int */;
-val* var785 /* : FlatString */;
-long var786 /* : Int */;
-val* var787 /* : nullable Object */;
-val* var788 /* : Array[Object] */;
-long var789 /* : Int */;
-val* var790 /* : NativeArray[Object] */;
-val* var791 /* : String */;
-val* var792 /* : RuntimeVariable */;
-short int var793 /* : Bool */;
-static val* varonce794;
-val* var795 /* : String */;
-char* var796 /* : NativeString */;
-long var797 /* : Int */;
-val* var798 /* : FlatString */;
-short int var799 /* : Bool */;
-long var800 /* : Int */;
-val* var801 /* : nullable Object */;
-static val* varonce802;
-val* var803 /* : String */;
-char* var804 /* : NativeString */;
-long var805 /* : Int */;
+val* var781 /* : String */;
+val* var782 /* : nullable Object */;
+val* var783 /* : String */;
+val* var784 /* : String */;
+val* var785 /* : RuntimeVariable */;
+static val* varonce786;
+val* var787 /* : String */;
+char* var788 /* : NativeString */;
+val* var789 /* : FlatString */;
+short int var790 /* : Bool */;
+val* var792 /* : NativeArray[String] */;
+static val* varonce791;
+static val* varonce793;
+val* var794 /* : String */;
+char* var795 /* : NativeString */;
+val* var796 /* : FlatString */;
+val* var797 /* : nullable Object */;
+val* var798 /* : String */;
+val* var799 /* : nullable Object */;
+val* var800 /* : String */;
+val* var801 /* : String */;
+val* var802 /* : RuntimeVariable */;
+static val* varonce803;
+val* var804 /* : String */;
+char* var805 /* : NativeString */;
 val* var806 /* : FlatString */;
-long var807 /* : Int */;
-val* var808 /* : nullable Object */;
-val* var809 /* : Array[Object] */;
-long var810 /* : Int */;
-val* var811 /* : NativeArray[Object] */;
-val* var812 /* : String */;
-val* var813 /* : RuntimeVariable */;
-short int var814 /* : Bool */;
-static val* varonce815;
-val* var816 /* : String */;
-char* var817 /* : NativeString */;
-long var818 /* : Int */;
-val* var819 /* : FlatString */;
-short int var820 /* : Bool */;
-static val* varonce821;
-val* var822 /* : String */;
-char* var823 /* : NativeString */;
-long var824 /* : Int */;
-val* var825 /* : FlatString */;
-long var826 /* : Int */;
-val* var827 /* : nullable Object */;
-val* var828 /* : Array[Object] */;
-long var829 /* : Int */;
-val* var830 /* : NativeArray[Object] */;
-val* var831 /* : String */;
-val* var832 /* : RuntimeVariable */;
-short int var833 /* : Bool */;
-static val* varonce834;
-val* var835 /* : String */;
-char* var836 /* : NativeString */;
-long var837 /* : Int */;
+short int var807 /* : Bool */;
+val* var809 /* : NativeArray[String] */;
+static val* varonce808;
+static val* varonce810;
+val* var811 /* : String */;
+char* var812 /* : NativeString */;
+val* var813 /* : FlatString */;
+val* var814 /* : nullable Object */;
+val* var815 /* : String */;
+val* var816 /* : nullable Object */;
+val* var817 /* : String */;
+val* var818 /* : String */;
+val* var819 /* : RuntimeVariable */;
+static val* varonce820;
+val* var821 /* : String */;
+char* var822 /* : NativeString */;
+val* var823 /* : FlatString */;
+short int var824 /* : Bool */;
+val* var826 /* : NativeArray[String] */;
+static val* varonce825;
+static val* varonce827;
+val* var828 /* : String */;
+char* var829 /* : NativeString */;
+val* var830 /* : FlatString */;
+val* var831 /* : nullable Object */;
+val* var832 /* : String */;
+val* var833 /* : String */;
+val* var834 /* : RuntimeVariable */;
+static val* varonce835;
+val* var836 /* : String */;
+char* var837 /* : NativeString */;
 val* var838 /* : FlatString */;
 short int var839 /* : Bool */;
-long var840 /* : Int */;
-val* var841 /* : nullable Object */;
+val* var841 /* : NativeArray[String] */;
+static val* varonce840;
 static val* varonce842;
 val* var843 /* : String */;
 char* var844 /* : NativeString */;
-long var845 /* : Int */;
-val* var846 /* : FlatString */;
-val* var847 /* : Array[Object] */;
-long var848 /* : Int */;
-val* var849 /* : NativeArray[Object] */;
-val* var850 /* : String */;
-val* var851 /* : RuntimeVariable */;
-short int var852 /* : Bool */;
-static val* varonce853;
-val* var854 /* : String */;
-char* var855 /* : NativeString */;
-long var856 /* : Int */;
-val* var857 /* : FlatString */;
-short int var858 /* : Bool */;
-long var859 /* : Int */;
-val* var860 /* : nullable Object */;
+val* var845 /* : FlatString */;
+val* var846 /* : nullable Object */;
+val* var847 /* : String */;
+val* var848 /* : String */;
+val* var849 /* : RuntimeVariable */;
+static val* varonce850;
+val* var851 /* : String */;
+char* var852 /* : NativeString */;
+val* var853 /* : FlatString */;
+short int var854 /* : Bool */;
+val* var856 /* : NativeArray[String] */;
+static val* varonce855;
+val* var857 /* : nullable Object */;
+val* var858 /* : String */;
+val* var859 /* : String */;
+val* var860 /* : RuntimeVariable */;
 static val* varonce861;
 val* var862 /* : String */;
 char* var863 /* : NativeString */;
-long var864 /* : Int */;
-val* var865 /* : FlatString */;
-val* var866 /* : Array[Object] */;
-long var867 /* : Int */;
-val* var868 /* : NativeArray[Object] */;
-val* var869 /* : String */;
-val* var870 /* : RuntimeVariable */;
-short int var871 /* : Bool */;
-static val* varonce872;
-val* var873 /* : String */;
-char* var874 /* : NativeString */;
-long var875 /* : Int */;
+val* var864 /* : FlatString */;
+short int var865 /* : Bool */;
+static val* varonce866;
+val* var867 /* : String */;
+char* var868 /* : NativeString */;
+val* var869 /* : FlatString */;
+short int var870 /* : Bool */;
+val* var872 /* : NativeArray[String] */;
+static val* varonce871;
+static val* varonce873;
+val* var874 /* : String */;
+char* var875 /* : NativeString */;
 val* var876 /* : FlatString */;
-short int var877 /* : Bool */;
-long var878 /* : Int */;
-val* var879 /* : nullable Object */;
-static val* varonce880;
-val* var881 /* : String */;
-char* var882 /* : NativeString */;
-long var883 /* : Int */;
-val* var884 /* : FlatString */;
-long var885 /* : Int */;
-val* var886 /* : nullable Object */;
-val* var887 /* : Array[Object] */;
-long var888 /* : Int */;
-val* var889 /* : NativeArray[Object] */;
-val* var890 /* : String */;
-val* var891 /* : RuntimeVariable */;
-short int var892 /* : Bool */;
-static val* varonce893;
-val* var894 /* : String */;
-char* var895 /* : NativeString */;
-long var896 /* : Int */;
-val* var897 /* : FlatString */;
-short int var898 /* : Bool */;
-long var899 /* : Int */;
-val* var900 /* : nullable Object */;
-static val* varonce901;
-val* var902 /* : String */;
-char* var903 /* : NativeString */;
-long var904 /* : Int */;
-val* var905 /* : FlatString */;
-long var906 /* : Int */;
-val* var907 /* : nullable Object */;
-val* var908 /* : Array[Object] */;
-long var909 /* : Int */;
-val* var910 /* : NativeArray[Object] */;
-val* var911 /* : String */;
-val* var912 /* : RuntimeVariable */;
-short int var913 /* : Bool */;
-static val* varonce914;
-val* var915 /* : String */;
-char* var916 /* : NativeString */;
-long var917 /* : Int */;
-val* var918 /* : FlatString */;
-short int var919 /* : Bool */;
-long var920 /* : Int */;
-val* var921 /* : nullable Object */;
-long var922 /* : Int */;
-val* var923 /* : nullable Object */;
+static val* varonce877;
+val* var878 /* : String */;
+char* var879 /* : NativeString */;
+val* var880 /* : FlatString */;
+val* var881 /* : nullable Object */;
+val* var882 /* : String */;
+val* var883 /* : String */;
+static val* varonce884;
+val* var885 /* : String */;
+char* var886 /* : NativeString */;
+val* var887 /* : FlatString */;
+short int var888 /* : Bool */;
+val* var890 /* : NativeArray[String] */;
+static val* varonce889;
+static val* varonce891;
+val* var892 /* : String */;
+char* var893 /* : NativeString */;
+val* var894 /* : FlatString */;
+val* var895 /* : nullable Object */;
+val* var896 /* : String */;
+val* var897 /* : String */;
+val* var898 /* : RuntimeVariable */;
+static val* varonce899;
+val* var900 /* : String */;
+char* var901 /* : NativeString */;
+val* var902 /* : FlatString */;
+short int var903 /* : Bool */;
+val* var904 /* : nullable Object */;
+val* var905 /* : nullable Object */;
+val* var906 /* : RuntimeVariable */;
+static val* varonce907;
+val* var908 /* : String */;
+char* var909 /* : NativeString */;
+val* var910 /* : FlatString */;
+short int var911 /* : Bool */;
+val* var912 /* : nullable Object */;
+val* var913 /* : nullable Object */;
+val* var914 /* : RuntimeVariable */;
+val* var_res915 /* var res: RuntimeVariable */;
+val* var917 /* : NativeArray[String] */;
+static val* varonce916;
+static val* varonce918;
+val* var919 /* : String */;
+char* var920 /* : NativeString */;
+val* var921 /* : FlatString */;
+val* var922 /* : String */;
+val* var923 /* : String */;
 val* var924 /* : RuntimeVariable */;
-short int var925 /* : Bool */;
-static val* varonce926;
-val* var927 /* : String */;
-char* var928 /* : NativeString */;
-long var929 /* : Int */;
-val* var930 /* : FlatString */;
-short int var931 /* : Bool */;
-long var932 /* : Int */;
-val* var933 /* : nullable Object */;
-long var934 /* : Int */;
-val* var935 /* : nullable Object */;
-val* var936 /* : RuntimeVariable */;
-val* var_res937 /* var res: RuntimeVariable */;
-static val* varonce938;
-val* var939 /* : String */;
-char* var940 /* : NativeString */;
-long var941 /* : Int */;
-val* var942 /* : FlatString */;
-val* var943 /* : Array[Object] */;
-long var944 /* : Int */;
-val* var945 /* : NativeArray[Object] */;
+static val* varonce925;
+val* var926 /* : String */;
+char* var927 /* : NativeString */;
+val* var928 /* : FlatString */;
+short int var929 /* : Bool */;
+static val* varonce930;
+val* var931 /* : String */;
+char* var932 /* : NativeString */;
+val* var933 /* : FlatString */;
+short int var934 /* : Bool */;
+val* var936 /* : NativeArray[String] */;
+static val* varonce935;
+static val* varonce937;
+val* var938 /* : String */;
+char* var939 /* : NativeString */;
+val* var940 /* : FlatString */;
+static val* varonce941;
+val* var942 /* : String */;
+char* var943 /* : NativeString */;
+val* var944 /* : FlatString */;
+val* var945 /* : nullable Object */;
 val* var946 /* : String */;
-val* var947 /* : RuntimeVariable */;
-short int var948 /* : Bool */;
-static val* varonce949;
-val* var950 /* : String */;
-char* var951 /* : NativeString */;
-long var952 /* : Int */;
-val* var953 /* : FlatString */;
-short int var954 /* : Bool */;
-long var955 /* : Int */;
-val* var956 /* : nullable Object */;
-static val* varonce957;
-val* var958 /* : String */;
-char* var959 /* : NativeString */;
-long var960 /* : Int */;
-val* var961 /* : FlatString */;
-long var962 /* : Int */;
-val* var963 /* : nullable Object */;
-val* var964 /* : Array[Object] */;
-long var965 /* : Int */;
-val* var966 /* : NativeArray[Object] */;
-val* var967 /* : String */;
-val* var968 /* : RuntimeVariable */;
-short int var969 /* : Bool */;
+val* var947 /* : String */;
+static val* varonce948;
+val* var949 /* : String */;
+char* var950 /* : NativeString */;
+val* var951 /* : FlatString */;
+short int var952 /* : Bool */;
+val* var954 /* : NativeArray[String] */;
+static val* varonce953;
+static val* varonce955;
+val* var956 /* : String */;
+char* var957 /* : NativeString */;
+val* var958 /* : FlatString */;
+val* var959 /* : nullable Object */;
+val* var960 /* : String */;
+val* var961 /* : String */;
+val* var962 /* : RuntimeVariable */;
+static val* varonce963;
+val* var964 /* : String */;
+char* var965 /* : NativeString */;
+val* var966 /* : FlatString */;
+short int var967 /* : Bool */;
+val* var969 /* : NativeArray[String] */;
+static val* varonce968;
 static val* varonce970;
 val* var971 /* : String */;
 char* var972 /* : NativeString */;
-long var973 /* : Int */;
-val* var974 /* : FlatString */;
-short int var975 /* : Bool */;
-long var976 /* : Int */;
-val* var977 /* : nullable Object */;
-static val* varonce978;
-val* var979 /* : String */;
-char* var980 /* : NativeString */;
-long var981 /* : Int */;
-val* var982 /* : FlatString */;
-long var983 /* : Int */;
-val* var984 /* : nullable Object */;
-val* var985 /* : Array[Object] */;
-long var986 /* : Int */;
-val* var987 /* : NativeArray[Object] */;
+val* var973 /* : FlatString */;
+val* var974 /* : nullable Object */;
+val* var975 /* : String */;
+val* var976 /* : nullable Object */;
+val* var977 /* : String */;
+val* var978 /* : String */;
+val* var979 /* : RuntimeVariable */;
+static val* varonce980;
+val* var981 /* : String */;
+char* var982 /* : NativeString */;
+val* var983 /* : FlatString */;
+short int var984 /* : Bool */;
+val* var986 /* : NativeArray[String] */;
+static val* varonce985;
+static val* varonce987;
 val* var988 /* : String */;
-val* var989 /* : RuntimeVariable */;
-short int var990 /* : Bool */;
-static val* varonce991;
+char* var989 /* : NativeString */;
+val* var990 /* : FlatString */;
+val* var991 /* : nullable Object */;
 val* var992 /* : String */;
-char* var993 /* : NativeString */;
-long var994 /* : Int */;
-val* var995 /* : FlatString */;
-short int var996 /* : Bool */;
-long var997 /* : Int */;
-val* var998 /* : nullable Object */;
-static val* varonce999;
-val* var1000 /* : String */;
-char* var1001 /* : NativeString */;
-long var1002 /* : Int */;
-val* var1003 /* : FlatString */;
-long var1004 /* : Int */;
-val* var1005 /* : nullable Object */;
-val* var1006 /* : Array[Object] */;
-long var1007 /* : Int */;
-val* var1008 /* : NativeArray[Object] */;
+val* var993 /* : nullable Object */;
+val* var994 /* : String */;
+val* var995 /* : String */;
+val* var996 /* : RuntimeVariable */;
+static val* varonce997;
+val* var998 /* : String */;
+char* var999 /* : NativeString */;
+val* var1000 /* : FlatString */;
+short int var1001 /* : Bool */;
+val* var1003 /* : NativeArray[String] */;
+static val* varonce1002;
+static val* varonce1004;
+val* var1005 /* : String */;
+char* var1006 /* : NativeString */;
+val* var1007 /* : FlatString */;
+val* var1008 /* : nullable Object */;
 val* var1009 /* : String */;
-val* var1010 /* : RuntimeVariable */;
-short int var1011 /* : Bool */;
+val* var1010 /* : String */;
+val* var1011 /* : RuntimeVariable */;
 static val* varonce1012;
 val* var1013 /* : String */;
 char* var1014 /* : NativeString */;
-long var1015 /* : Int */;
-val* var1016 /* : FlatString */;
-short int var1017 /* : Bool */;
-long var1018 /* : Int */;
-val* var1019 /* : nullable Object */;
-static val* varonce1020;
-val* var1021 /* : String */;
-char* var1022 /* : NativeString */;
-long var1023 /* : Int */;
-val* var1024 /* : FlatString */;
-long var1025 /* : Int */;
-val* var1026 /* : nullable Object */;
-val* var1027 /* : Array[Object] */;
-long var1028 /* : Int */;
-val* var1029 /* : NativeArray[Object] */;
+val* var1015 /* : FlatString */;
+short int var1016 /* : Bool */;
+val* var1017 /* : nullable Object */;
+static val* varonce1018;
+val* var1019 /* : String */;
+char* var1020 /* : NativeString */;
+val* var1021 /* : FlatString */;
+short int var1022 /* : Bool */;
+val* var1024 /* : NativeArray[String] */;
+static val* varonce1023;
+static val* varonce1025;
+val* var1026 /* : String */;
+char* var1027 /* : NativeString */;
+val* var1028 /* : FlatString */;
+val* var1029 /* : nullable Object */;
 val* var1030 /* : String */;
-val* var1031 /* : RuntimeVariable */;
-short int var1032 /* : Bool */;
+val* var1031 /* : String */;
+val* var1032 /* : RuntimeVariable */;
 static val* varonce1033;
 val* var1034 /* : String */;
 char* var1035 /* : NativeString */;
-long var1036 /* : Int */;
-val* var1037 /* : FlatString */;
-short int var1038 /* : Bool */;
-static val* varonce1039;
-val* var1040 /* : String */;
-char* var1041 /* : NativeString */;
-long var1042 /* : Int */;
+val* var1036 /* : FlatString */;
+short int var1037 /* : Bool */;
+val* var1039 /* : NativeArray[String] */;
+static val* varonce1038;
+static val* varonce1040;
+val* var1041 /* : String */;
+char* var1042 /* : NativeString */;
 val* var1043 /* : FlatString */;
-long var1044 /* : Int */;
-val* var1045 /* : nullable Object */;
-val* var1046 /* : Array[Object] */;
-long var1047 /* : Int */;
-val* var1048 /* : NativeArray[Object] */;
+val* var1044 /* : nullable Object */;
+val* var1045 /* : String */;
+val* var1046 /* : String */;
+val* var1047 /* : RuntimeVariable */;
+static val* varonce1048;
 val* var1049 /* : String */;
-val* var1050 /* : RuntimeVariable */;
-short int var1051 /* : Bool */;
-static val* varonce1052;
-val* var1053 /* : String */;
-char* var1054 /* : NativeString */;
-long var1055 /* : Int */;
-val* var1056 /* : FlatString */;
-short int var1057 /* : Bool */;
-static val* varonce1058;
-val* var1059 /* : String */;
-char* var1060 /* : NativeString */;
-long var1061 /* : Int */;
-val* var1062 /* : FlatString */;
-short int var1063 /* : Bool */;
-long var1064 /* : Int */;
-val* var1065 /* : nullable Object */;
-static val* varonce1066;
-val* var1067 /* : String */;
-char* var1068 /* : NativeString */;
-long var1069 /* : Int */;
-val* var1070 /* : FlatString */;
-long var1071 /* : Int */;
-val* var1072 /* : nullable Object */;
-static val* varonce1073;
-val* var1074 /* : String */;
-char* var1075 /* : NativeString */;
-long var1076 /* : Int */;
-val* var1077 /* : FlatString */;
-val* var1078 /* : Array[Object] */;
-long var1079 /* : Int */;
-val* var1080 /* : NativeArray[Object] */;
-val* var1081 /* : String */;
-val* var1082 /* : RuntimeVariable */;
-short int var1083 /* : Bool */;
-static val* varonce1084;
-val* var1085 /* : String */;
-char* var1086 /* : NativeString */;
-long var1087 /* : Int */;
-val* var1088 /* : FlatString */;
-short int var1089 /* : Bool */;
-long var1090 /* : Int */;
-val* var1091 /* : nullable Object */;
-static val* varonce1092;
-val* var1093 /* : String */;
-char* var1094 /* : NativeString */;
-long var1095 /* : Int */;
-val* var1096 /* : FlatString */;
-long var1097 /* : Int */;
-val* var1098 /* : nullable Object */;
+char* var1050 /* : NativeString */;
+val* var1051 /* : FlatString */;
+short int var1052 /* : Bool */;
+val* var1054 /* : NativeArray[String] */;
+static val* varonce1053;
+static val* varonce1055;
+val* var1056 /* : String */;
+char* var1057 /* : NativeString */;
+val* var1058 /* : FlatString */;
+val* var1059 /* : nullable Object */;
+val* var1060 /* : String */;
+val* var1061 /* : nullable Object */;
+val* var1062 /* : String */;
+val* var1063 /* : String */;
+val* var1064 /* : RuntimeVariable */;
+static val* varonce1065;
+val* var1066 /* : String */;
+char* var1067 /* : NativeString */;
+val* var1068 /* : FlatString */;
+short int var1069 /* : Bool */;
+val* var1071 /* : NativeArray[String] */;
+static val* varonce1070;
+static val* varonce1072;
+val* var1073 /* : String */;
+char* var1074 /* : NativeString */;
+val* var1075 /* : FlatString */;
+val* var1076 /* : nullable Object */;
+val* var1077 /* : String */;
+val* var1078 /* : nullable Object */;
+val* var1079 /* : String */;
+val* var1080 /* : String */;
+val* var1081 /* : RuntimeVariable */;
+static val* varonce1082;
+val* var1083 /* : String */;
+char* var1084 /* : NativeString */;
+val* var1085 /* : FlatString */;
+short int var1086 /* : Bool */;
+val* var1087 /* : nullable Object */;
+val* var1088 /* : nullable Object */;
+val* var1089 /* : RuntimeVariable */;
+static val* varonce1090;
+val* var1091 /* : String */;
+char* var1092 /* : NativeString */;
+val* var1093 /* : FlatString */;
+short int var1094 /* : Bool */;
+val* var1095 /* : nullable Object */;
+val* var1096 /* : nullable Object */;
+val* var1097 /* : RuntimeVariable */;
+val* var_res1098 /* var res: RuntimeVariable */;
+val* var1100 /* : NativeArray[String] */;
 static val* varonce1099;
-val* var1100 /* : String */;
-char* var1101 /* : NativeString */;
-long var1102 /* : Int */;
-val* var1103 /* : FlatString */;
-long var1104 /* : Int */;
-val* var1105 /* : nullable Object */;
-static val* varonce1106;
-val* var1107 /* : String */;
-char* var1108 /* : NativeString */;
-long var1109 /* : Int */;
-val* var1110 /* : FlatString */;
-val* var1111 /* : Array[Object] */;
-long var1112 /* : Int */;
-val* var1113 /* : NativeArray[Object] */;
-val* var1114 /* : String */;
-short int var1115 /* : Bool */;
-static val* varonce1116;
-val* var1117 /* : String */;
-char* var1118 /* : NativeString */;
-long var1119 /* : Int */;
-val* var1120 /* : FlatString */;
-short int var1121 /* : Bool */;
-static val* varonce1122;
+static val* varonce1101;
+val* var1102 /* : String */;
+char* var1103 /* : NativeString */;
+val* var1104 /* : FlatString */;
+val* var1105 /* : String */;
+val* var1106 /* : String */;
+val* var1107 /* : RuntimeVariable */;
+static val* varonce1108;
+val* var1109 /* : String */;
+char* var1110 /* : NativeString */;
+val* var1111 /* : FlatString */;
+short int var1112 /* : Bool */;
+val* var1114 /* : NativeArray[String] */;
+static val* varonce1113;
+static val* varonce1115;
+val* var1116 /* : String */;
+char* var1117 /* : NativeString */;
+val* var1118 /* : FlatString */;
+val* var1119 /* : nullable Object */;
+val* var1120 /* : String */;
+val* var1121 /* : nullable Object */;
+val* var1122 /* : String */;
 val* var1123 /* : String */;
-char* var1124 /* : NativeString */;
-long var1125 /* : Int */;
-val* var1126 /* : FlatString */;
-long var1127 /* : Int */;
-val* var1128 /* : nullable Object */;
-static val* varonce1129;
-val* var1130 /* : String */;
-char* var1131 /* : NativeString */;
-long var1132 /* : Int */;
-val* var1133 /* : FlatString */;
-long var1134 /* : Int */;
-val* var1135 /* : nullable Object */;
-static val* varonce1136;
+val* var1124 /* : RuntimeVariable */;
+static val* varonce1125;
+val* var1126 /* : String */;
+char* var1127 /* : NativeString */;
+val* var1128 /* : FlatString */;
+short int var1129 /* : Bool */;
+val* var1131 /* : NativeArray[String] */;
+static val* varonce1130;
+static val* varonce1132;
+val* var1133 /* : String */;
+char* var1134 /* : NativeString */;
+val* var1135 /* : FlatString */;
+val* var1136 /* : nullable Object */;
 val* var1137 /* : String */;
-char* var1138 /* : NativeString */;
-long var1139 /* : Int */;
-val* var1140 /* : FlatString */;
-long var1141 /* : Int */;
-val* var1142 /* : nullable Object */;
-static val* varonce1143;
-val* var1144 /* : String */;
-char* var1145 /* : NativeString */;
-long var1146 /* : Int */;
-val* var1147 /* : FlatString */;
-long var1148 /* : Int */;
-val* var1149 /* : nullable Object */;
-static val* varonce1150;
-val* var1151 /* : String */;
-char* var1152 /* : NativeString */;
-long var1153 /* : Int */;
-val* var1154 /* : FlatString */;
-long var1155 /* : Int */;
-val* var1156 /* : nullable Object */;
-static val* varonce1157;
-val* var1158 /* : String */;
-char* var1159 /* : NativeString */;
-long var1160 /* : Int */;
-val* var1161 /* : FlatString */;
-val* var1162 /* : Array[Object] */;
-long var1163 /* : Int */;
-val* var1164 /* : NativeArray[Object] */;
-val* var1165 /* : String */;
-short int var1166 /* : Bool */;
-static val* varonce1167;
-val* var1168 /* : String */;
-char* var1169 /* : NativeString */;
-long var1170 /* : Int */;
-val* var1171 /* : FlatString */;
-short int var1172 /* : Bool */;
-static val* varonce1173;
+val* var1138 /* : nullable Object */;
+val* var1139 /* : String */;
+val* var1140 /* : String */;
+val* var1141 /* : RuntimeVariable */;
+static val* varonce1142;
+val* var1143 /* : String */;
+char* var1144 /* : NativeString */;
+val* var1145 /* : FlatString */;
+short int var1146 /* : Bool */;
+val* var1148 /* : NativeArray[String] */;
+static val* varonce1147;
+static val* varonce1149;
+val* var1150 /* : String */;
+char* var1151 /* : NativeString */;
+val* var1152 /* : FlatString */;
+val* var1153 /* : nullable Object */;
+val* var1154 /* : String */;
+val* var1155 /* : nullable Object */;
+val* var1156 /* : String */;
+val* var1157 /* : String */;
+val* var1158 /* : RuntimeVariable */;
+static val* varonce1159;
+val* var1160 /* : String */;
+char* var1161 /* : NativeString */;
+val* var1162 /* : FlatString */;
+short int var1163 /* : Bool */;
+val* var1165 /* : NativeArray[String] */;
+static val* varonce1164;
+static val* varonce1166;
+val* var1167 /* : String */;
+char* var1168 /* : NativeString */;
+val* var1169 /* : FlatString */;
+val* var1170 /* : nullable Object */;
+val* var1171 /* : String */;
+val* var1172 /* : nullable Object */;
+val* var1173 /* : String */;
 val* var1174 /* : String */;
-char* var1175 /* : NativeString */;
-long var1176 /* : Int */;
-val* var1177 /* : FlatString */;
-long var1178 /* : Int */;
-val* var1179 /* : nullable Object */;
-static val* varonce1180;
-val* var1181 /* : String */;
-char* var1182 /* : NativeString */;
-long var1183 /* : Int */;
-val* var1184 /* : FlatString */;
-val* var1185 /* : Array[Object] */;
-long var1186 /* : Int */;
-val* var1187 /* : NativeArray[Object] */;
+val* var1175 /* : RuntimeVariable */;
+static val* varonce1176;
+val* var1177 /* : String */;
+char* var1178 /* : NativeString */;
+val* var1179 /* : FlatString */;
+short int var1180 /* : Bool */;
+val* var1182 /* : NativeArray[String] */;
+static val* varonce1181;
+static val* varonce1183;
+val* var1184 /* : String */;
+char* var1185 /* : NativeString */;
+val* var1186 /* : FlatString */;
+val* var1187 /* : nullable Object */;
 val* var1188 /* : String */;
-val* var1189 /* : RuntimeVariable */;
-short int var1190 /* : Bool */;
+val* var1189 /* : String */;
+val* var1190 /* : RuntimeVariable */;
 static val* varonce1191;
 val* var1192 /* : String */;
 char* var1193 /* : NativeString */;
-long var1194 /* : Int */;
-val* var1195 /* : FlatString */;
-short int var1196 /* : Bool */;
-static val* varonce1197;
-val* var1198 /* : String */;
-char* var1199 /* : NativeString */;
-long var1200 /* : Int */;
+val* var1194 /* : FlatString */;
+short int var1195 /* : Bool */;
+val* var1197 /* : NativeArray[String] */;
+static val* varonce1196;
+static val* varonce1198;
+val* var1199 /* : String */;
+char* var1200 /* : NativeString */;
 val* var1201 /* : FlatString */;
-long var1202 /* : Int */;
-val* var1203 /* : nullable Object */;
-static val* varonce1204;
-val* var1205 /* : String */;
-char* var1206 /* : NativeString */;
-long var1207 /* : Int */;
-val* var1208 /* : FlatString */;
-val* var1209 /* : Array[Object] */;
-long var1210 /* : Int */;
-val* var1211 /* : NativeArray[Object] */;
+val* var1202 /* : nullable Object */;
+val* var1203 /* : String */;
+val* var1204 /* : String */;
+val* var1205 /* : RuntimeVariable */;
+static val* varonce1206;
+val* var1207 /* : String */;
+char* var1208 /* : NativeString */;
+val* var1209 /* : FlatString */;
+short int var1210 /* : Bool */;
+static val* varonce1211;
 val* var1212 /* : String */;
-val* var1213 /* : RuntimeVariable */;
-short int var1214 /* : Bool */;
-static val* varonce1215;
-val* var1216 /* : String */;
-char* var1217 /* : NativeString */;
-long var1218 /* : Int */;
-val* var1219 /* : FlatString */;
-short int var1220 /* : Bool */;
-short int var1221 /* : Bool */;
+char* var1213 /* : NativeString */;
+val* var1214 /* : FlatString */;
+short int var1215 /* : Bool */;
+val* var1217 /* : NativeArray[String] */;
+static val* varonce1216;
+static val* varonce1218;
+val* var1219 /* : String */;
+char* var1220 /* : NativeString */;
+val* var1221 /* : FlatString */;
 static val* varonce1222;
 val* var1223 /* : String */;
 char* var1224 /* : NativeString */;
-long var1225 /* : Int */;
-val* var1226 /* : FlatString */;
-short int var1227 /* : Bool */;
-static val* varonce1228;
-val* var1229 /* : String */;
-char* var1230 /* : NativeString */;
-long var1231 /* : Int */;
-val* var1232 /* : FlatString */;
-long var1233 /* : Int */;
-val* var1234 /* : nullable Object */;
-static val* varonce1235;
-val* var1236 /* : String */;
-char* var1237 /* : NativeString */;
-long var1238 /* : Int */;
+val* var1225 /* : FlatString */;
+static val* varonce1226;
+val* var1227 /* : String */;
+char* var1228 /* : NativeString */;
+val* var1229 /* : FlatString */;
+val* var1230 /* : nullable Object */;
+val* var1231 /* : String */;
+val* var1232 /* : nullable Object */;
+val* var1233 /* : String */;
+val* var1234 /* : String */;
+val* var1235 /* : RuntimeVariable */;
+static val* varonce1236;
+val* var1237 /* : String */;
+char* var1238 /* : NativeString */;
 val* var1239 /* : FlatString */;
-val* var1240 /* : Array[Object] */;
-long var1241 /* : Int */;
-val* var1242 /* : NativeArray[Object] */;
-val* var1243 /* : String */;
-short int var1244 /* : Bool */;
-static val* varonce1245;
-val* var1246 /* : String */;
-char* var1247 /* : NativeString */;
-long var1248 /* : Int */;
-val* var1249 /* : FlatString */;
-short int var1250 /* : Bool */;
+short int var1240 /* : Bool */;
+val* var1242 /* : NativeArray[String] */;
+static val* varonce1241;
+static val* varonce1243;
+val* var1244 /* : String */;
+char* var1245 /* : NativeString */;
+val* var1246 /* : FlatString */;
+static val* varonce1247;
+val* var1248 /* : String */;
+char* var1249 /* : NativeString */;
+val* var1250 /* : FlatString */;
 static val* varonce1251;
 val* var1252 /* : String */;
 char* var1253 /* : NativeString */;
-long var1254 /* : Int */;
-val* var1255 /* : FlatString */;
-val* var1256 /* : RuntimeVariable */;
-short int var1257 /* : Bool */;
-static val* varonce1258;
-val* var1259 /* : String */;
-char* var1260 /* : NativeString */;
-long var1261 /* : Int */;
-val* var1262 /* : FlatString */;
-short int var1263 /* : Bool */;
-static val* varonce1264;
-val* var1265 /* : String */;
-char* var1266 /* : NativeString */;
-long var1267 /* : Int */;
-val* var1268 /* : FlatString */;
-long var1269 /* : Int */;
-val* var1270 /* : nullable Object */;
-static val* varonce1271;
-val* var1272 /* : String */;
-char* var1273 /* : NativeString */;
-long var1274 /* : Int */;
-val* var1275 /* : FlatString */;
-val* var1276 /* : Array[Object] */;
-long var1277 /* : Int */;
-val* var1278 /* : NativeArray[Object] */;
-val* var1279 /* : String */;
-val* var1280 /* : RuntimeVariable */;
-short int var1281 /* : Bool */;
-static val* varonce1282;
-val* var1283 /* : String */;
-char* var1284 /* : NativeString */;
-long var1285 /* : Int */;
-val* var1286 /* : FlatString */;
-short int var1287 /* : Bool */;
-short int var1288 /* : Bool */;
+val* var1254 /* : FlatString */;
+val* var1255 /* : nullable Object */;
+val* var1256 /* : String */;
+val* var1257 /* : nullable Object */;
+val* var1258 /* : String */;
+val* var1259 /* : nullable Object */;
+val* var1260 /* : String */;
+val* var1261 /* : String */;
+static val* varonce1262;
+val* var1263 /* : String */;
+char* var1264 /* : NativeString */;
+val* var1265 /* : FlatString */;
+short int var1266 /* : Bool */;
+val* var1268 /* : NativeArray[String] */;
+static val* varonce1267;
+static val* varonce1269;
+val* var1270 /* : String */;
+char* var1271 /* : NativeString */;
+val* var1272 /* : FlatString */;
+static val* varonce1273;
+val* var1274 /* : String */;
+char* var1275 /* : NativeString */;
+val* var1276 /* : FlatString */;
+static val* varonce1277;
+val* var1278 /* : String */;
+char* var1279 /* : NativeString */;
+val* var1280 /* : FlatString */;
+static val* varonce1281;
+val* var1282 /* : String */;
+char* var1283 /* : NativeString */;
+val* var1284 /* : FlatString */;
+static val* varonce1285;
+val* var1286 /* : String */;
+char* var1287 /* : NativeString */;
+val* var1288 /* : FlatString */;
 static val* varonce1289;
 val* var1290 /* : String */;
 char* var1291 /* : NativeString */;
-long var1292 /* : Int */;
-val* var1293 /* : FlatString */;
-short int var1294 /* : Bool */;
-static val* varonce1295;
+val* var1292 /* : FlatString */;
+val* var1293 /* : nullable Object */;
+val* var1294 /* : String */;
+val* var1295 /* : nullable Object */;
 val* var1296 /* : String */;
-char* var1297 /* : NativeString */;
-long var1298 /* : Int */;
-val* var1299 /* : FlatString */;
-val* var1300 /* : nullable Object */;
-val* var1301 /* : Array[Object] */;
-long var1302 /* : Int */;
-val* var1303 /* : NativeArray[Object] */;
-val* var1304 /* : String */;
-val* var1305 /* : RuntimeVariable */;
-short int var1306 /* : Bool */;
-static val* varonce1307;
-val* var1308 /* : String */;
-char* var1309 /* : NativeString */;
-long var1310 /* : Int */;
-val* var1311 /* : FlatString */;
-short int var1312 /* : Bool */;
-long var1313 /* : Int */;
-val* var1314 /* : nullable Object */;
-long var1315 /* : Int */;
-val* var1316 /* : nullable Object */;
-val* var1317 /* : RuntimeVariable */;
-short int var1318 /* : Bool */;
-static val* varonce1319;
+val* var1297 /* : nullable Object */;
+val* var1298 /* : String */;
+val* var1299 /* : nullable Object */;
+val* var1300 /* : String */;
+val* var1301 /* : nullable Object */;
+val* var1302 /* : String */;
+val* var1303 /* : String */;
+static val* varonce1304;
+val* var1305 /* : String */;
+char* var1306 /* : NativeString */;
+val* var1307 /* : FlatString */;
+short int var1308 /* : Bool */;
+val* var1310 /* : NativeArray[String] */;
+static val* varonce1309;
+static val* varonce1311;
+val* var1312 /* : String */;
+char* var1313 /* : NativeString */;
+val* var1314 /* : FlatString */;
+static val* varonce1315;
+val* var1316 /* : String */;
+char* var1317 /* : NativeString */;
+val* var1318 /* : FlatString */;
+val* var1319 /* : nullable Object */;
 val* var1320 /* : String */;
-char* var1321 /* : NativeString */;
-long var1322 /* : Int */;
-val* var1323 /* : FlatString */;
-short int var1324 /* : Bool */;
-long var1325 /* : Int */;
-val* var1326 /* : nullable Object */;
-long var1327 /* : Int */;
-val* var1328 /* : nullable Object */;
-val* var1329 /* : RuntimeVariable */;
-short int var1330 /* : Bool */;
-static val* varonce1331;
-val* var1332 /* : String */;
-char* var1333 /* : NativeString */;
-long var1334 /* : Int */;
-val* var1335 /* : FlatString */;
-short int var1336 /* : Bool */;
-val* var1337 /* : nullable Object */;
+val* var1321 /* : String */;
+val* var1322 /* : RuntimeVariable */;
+static val* varonce1323;
+val* var1324 /* : String */;
+char* var1325 /* : NativeString */;
+val* var1326 /* : FlatString */;
+short int var1327 /* : Bool */;
+val* var1329 /* : NativeArray[String] */;
+static val* varonce1328;
+static val* varonce1330;
+val* var1331 /* : String */;
+char* var1332 /* : NativeString */;
+val* var1333 /* : FlatString */;
+val* var1334 /* : nullable Object */;
+val* var1335 /* : String */;
+val* var1336 /* : nullable Object */;
+val* var1337 /* : String */;
 val* var1338 /* : String */;
-val* var_nat /* var nat: String */;
-static val* varonce1339;
-val* var1340 /* : String */;
-char* var1341 /* : NativeString */;
-long var1342 /* : Int */;
+val* var1339 /* : RuntimeVariable */;
+static val* varonce1340;
+val* var1341 /* : String */;
+char* var1342 /* : NativeString */;
 val* var1343 /* : FlatString */;
-static val* varonce1344;
-val* var1345 /* : String */;
-char* var1346 /* : NativeString */;
-long var1347 /* : Int */;
-val* var1348 /* : FlatString */;
-val* var1349 /* : Array[Object] */;
-long var1350 /* : Int */;
-val* var1351 /* : NativeArray[Object] */;
+short int var1344 /* : Bool */;
+val* var1346 /* : NativeArray[String] */;
+static val* varonce1345;
+static val* varonce1347;
+val* var1348 /* : String */;
+char* var1349 /* : NativeString */;
+val* var1350 /* : FlatString */;
+static val* varonce1351;
 val* var1352 /* : String */;
-short int var1353 /* : Bool */;
-static val* varonce1354;
-val* var1355 /* : String */;
-char* var1356 /* : NativeString */;
-long var1357 /* : Int */;
-val* var1358 /* : FlatString */;
-short int var1359 /* : Bool */;
-val* var1360 /* : nullable Object */;
-val* var1361 /* : String */;
-val* var_nat1362 /* var nat: String */;
-static val* varonce1363;
-val* var1364 /* : String */;
-char* var1365 /* : NativeString */;
-long var1366 /* : Int */;
+char* var1353 /* : NativeString */;
+val* var1354 /* : FlatString */;
+val* var1355 /* : nullable Object */;
+val* var1356 /* : String */;
+val* var1357 /* : String */;
+val* var1358 /* : RuntimeVariable */;
+static val* varonce1359;
+val* var1360 /* : String */;
+char* var1361 /* : NativeString */;
+val* var1362 /* : FlatString */;
+short int var1363 /* : Bool */;
+static val* varonce1364;
+val* var1365 /* : String */;
+char* var1366 /* : NativeString */;
 val* var1367 /* : FlatString */;
-val* var1368 /* : Array[Object] */;
-long var1369 /* : Int */;
-val* var1370 /* : NativeArray[Object] */;
-val* var1371 /* : String */;
-val* var1372 /* : RuntimeVariable */;
-short int var1373 /* : Bool */;
-static val* varonce1374;
-val* var1375 /* : String */;
-char* var1376 /* : NativeString */;
-long var1377 /* : Int */;
+short int var1368 /* : Bool */;
+val* var1370 /* : NativeArray[String] */;
+static val* varonce1369;
+static val* varonce1371;
+val* var1372 /* : String */;
+char* var1373 /* : NativeString */;
+val* var1374 /* : FlatString */;
+static val* varonce1375;
+val* var1376 /* : String */;
+char* var1377 /* : NativeString */;
 val* var1378 /* : FlatString */;
-short int var1379 /* : Bool */;
-static val* varonce1380;
+val* var1379 /* : nullable Object */;
+val* var1380 /* : String */;
 val* var1381 /* : String */;
-char* var1382 /* : NativeString */;
-long var1383 /* : Int */;
-val* var1384 /* : FlatString */;
-short int var1385 /* : Bool */;
-static val* varonce1386;
-val* var1387 /* : String */;
-char* var1388 /* : NativeString */;
-long var1389 /* : Int */;
+static val* varonce1382;
+val* var1383 /* : String */;
+char* var1384 /* : NativeString */;
+val* var1385 /* : FlatString */;
+short int var1386 /* : Bool */;
+static val* varonce1387;
+val* var1388 /* : String */;
+char* var1389 /* : NativeString */;
 val* var1390 /* : FlatString */;
-short int var1391 /* : Bool */;
+val* var1391 /* : RuntimeVariable */;
 static val* varonce1392;
 val* var1393 /* : String */;
 char* var1394 /* : NativeString */;
-long var1395 /* : Int */;
-val* var1396 /* : FlatString */;
-val* var1397 /* : RuntimeVariable */;
-short int var1398 /* : Bool */;
+val* var1395 /* : FlatString */;
+short int var1396 /* : Bool */;
+val* var1398 /* : NativeArray[String] */;
+static val* varonce1397;
 static val* varonce1399;
 val* var1400 /* : String */;
 char* var1401 /* : NativeString */;
-long var1402 /* : Int */;
-val* var1403 /* : FlatString */;
-short int var1404 /* : Bool */;
-static val* varonce1405;
-val* var1406 /* : String */;
-char* var1407 /* : NativeString */;
-long var1408 /* : Int */;
-val* var1409 /* : FlatString */;
-long var1410 /* : Int */;
-val* var1411 /* : nullable Object */;
-static val* varonce1412;
-val* var1413 /* : String */;
-char* var1414 /* : NativeString */;
-long var1415 /* : Int */;
-val* var1416 /* : FlatString */;
-val* var1417 /* : Array[Object] */;
-long var1418 /* : Int */;
-val* var1419 /* : NativeArray[Object] */;
-val* var1420 /* : String */;
-val* var1421 /* : RuntimeVariable */;
-short int var1422 /* : Bool */;
-short int var1423 /* : Bool */;
+val* var1402 /* : FlatString */;
+static val* varonce1403;
+val* var1404 /* : String */;
+char* var1405 /* : NativeString */;
+val* var1406 /* : FlatString */;
+val* var1407 /* : nullable Object */;
+val* var1408 /* : String */;
+val* var1409 /* : String */;
+val* var1410 /* : RuntimeVariable */;
+static val* varonce1411;
+val* var1412 /* : String */;
+char* var1413 /* : NativeString */;
+val* var1414 /* : FlatString */;
+short int var1415 /* : Bool */;
+static val* varonce1416;
+val* var1417 /* : String */;
+char* var1418 /* : NativeString */;
+val* var1419 /* : FlatString */;
+short int var1420 /* : Bool */;
+val* var1422 /* : NativeArray[String] */;
+static val* varonce1421;
+static val* varonce1423;
+val* var1424 /* : String */;
+char* var1425 /* : NativeString */;
+val* var1426 /* : FlatString */;
+val* var1427 /* : nullable Object */;
+val* var1428 /* : String */;
+val* var1429 /* : String */;
+val* var1430 /* : RuntimeVariable */;
+static val* varonce1431;
+val* var1432 /* : String */;
+char* var1433 /* : NativeString */;
+val* var1434 /* : FlatString */;
+short int var1435 /* : Bool */;
+val* var1436 /* : nullable Object */;
+val* var1437 /* : nullable Object */;
+val* var1438 /* : RuntimeVariable */;
+static val* varonce1439;
+val* var1440 /* : String */;
+char* var1441 /* : NativeString */;
+val* var1442 /* : FlatString */;
+short int var1443 /* : Bool */;
+val* var1444 /* : nullable Object */;
+val* var1445 /* : nullable Object */;
+val* var1446 /* : RuntimeVariable */;
+static val* varonce1447;
+val* var1448 /* : String */;
+char* var1449 /* : NativeString */;
+val* var1450 /* : FlatString */;
+short int var1451 /* : Bool */;
+val* var1452 /* : nullable Object */;
+val* var1453 /* : String */;
+val* var_nat /* var nat: String */;
+val* var1455 /* : NativeArray[String] */;
+static val* varonce1454;
+static val* varonce1456;
+val* var1457 /* : String */;
+char* var1458 /* : NativeString */;
+val* var1459 /* : FlatString */;
+static val* varonce1460;
+val* var1461 /* : String */;
+char* var1462 /* : NativeString */;
+val* var1463 /* : FlatString */;
+val* var1464 /* : String */;
+static val* varonce1465;
+val* var1466 /* : String */;
+char* var1467 /* : NativeString */;
+val* var1468 /* : FlatString */;
+short int var1469 /* : Bool */;
+val* var1470 /* : nullable Object */;
+val* var1471 /* : String */;
+val* var_nat1472 /* var nat: String */;
+val* var1474 /* : NativeArray[String] */;
+static val* varonce1473;
+static val* varonce1475;
+val* var1476 /* : String */;
+char* var1477 /* : NativeString */;
+val* var1478 /* : FlatString */;
+val* var1479 /* : String */;
+val* var1480 /* : RuntimeVariable */;
+static val* varonce1481;
+val* var1482 /* : String */;
+char* var1483 /* : NativeString */;
+val* var1484 /* : FlatString */;
+short int var1485 /* : Bool */;
+static val* varonce1486;
+val* var1487 /* : String */;
+char* var1488 /* : NativeString */;
+val* var1489 /* : FlatString */;
+static val* varonce1490;
+val* var1491 /* : String */;
+char* var1492 /* : NativeString */;
+val* var1493 /* : FlatString */;
+short int var1494 /* : Bool */;
+static val* varonce1495;
+val* var1496 /* : String */;
+char* var1497 /* : NativeString */;
+val* var1498 /* : FlatString */;
+val* var1499 /* : RuntimeVariable */;
+static val* varonce1500;
+val* var1501 /* : String */;
+char* var1502 /* : NativeString */;
+val* var1503 /* : FlatString */;
+short int var1504 /* : Bool */;
+val* var1506 /* : NativeArray[String] */;
+static val* varonce1505;
+static val* varonce1507;
+val* var1508 /* : String */;
+char* var1509 /* : NativeString */;
+val* var1510 /* : FlatString */;
+static val* varonce1511;
+val* var1512 /* : String */;
+char* var1513 /* : NativeString */;
+val* var1514 /* : FlatString */;
+val* var1515 /* : nullable Object */;
+val* var1516 /* : String */;
+val* var1517 /* : String */;
+val* var1518 /* : RuntimeVariable */;
 var_v = p0;
 var_mpropdef = p1;
 var_arguments = p2;
@@ -1434,8 +1529,8 @@ var_arguments = p2;
 var3 = var_mpropdef->attrs[COLOR_nit__model__MPropDef___mproperty].val; /* _mproperty on <var_mpropdef:MMethodDef> */
 if (unlikely(var3 == NULL)) {
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 2013);
-show_backtrace(1);
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 2212);
+fatal_exit(1);
 }
 var1 = var3;
 RET_LABEL2:(void)0;
@@ -1446,8 +1541,8 @@ RET_LABEL2:(void)0;
 var6 = var1->attrs[COLOR_nit__model__MProperty___name].val; /* _name on <var1:MProperty(MMethod)> */
 if (unlikely(var6 == NULL)) {
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1741);
-show_backtrace(1);
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1933);
+fatal_exit(1);
 }
 var4 = var6;
 RET_LABEL5:(void)0;
@@ -1459,8 +1554,8 @@ var_pname = var4;
 var9 = var_mpropdef->attrs[COLOR_nit__model__MPropDef___mclassdef].val; /* _mclassdef on <var_mpropdef:MMethodDef> */
 if (unlikely(var9 == NULL)) {
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdef");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 2010);
-show_backtrace(1);
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 2209);
+fatal_exit(1);
 }
 var7 = var9;
 RET_LABEL8:(void)0;
@@ -1471,8 +1566,8 @@ RET_LABEL8:(void)0;
 var12 = var7->attrs[COLOR_nit__model__MClassDef___mclass].val; /* _mclass on <var7:MClassDef> */
 if (unlikely(var12 == NULL)) {
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 492);
-show_backtrace(1);
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 553);
+fatal_exit(1);
 }
 var10 = var12;
 RET_LABEL11:(void)0;
@@ -1483,8 +1578,8 @@ RET_LABEL11:(void)0;
 var15 = var10->attrs[COLOR_nit__model__MClass___name].val; /* _name on <var10:MClass> */
 if (unlikely(var15 == NULL)) {
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 348);
-show_backtrace(1);
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 362);
+fatal_exit(1);
 }
 var13 = var15;
 RET_LABEL14:(void)0;
@@ -1500,14 +1595,14 @@ RET_LABEL17:(void)0;
 }
 if (var16 == NULL) {
 PRINT_ERROR("Runtime error: %s", "Receiver is null");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1963);
-show_backtrace(1);
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 2079);
+fatal_exit(1);
 } else {
 { /* Inline model#MSignature#return_mtype (var16) on <var16:nullable MSignature> */
 if (unlikely(var16 == NULL)) {
 PRINT_ERROR("Runtime error: %s", "Receiver is null");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1595);
-show_backtrace(1);
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1768);
+fatal_exit(1);
 }
 var21 = var16->attrs[COLOR_nit__model__MSignature___return_mtype].val; /* _return_mtype on <var16:nullable MSignature> */
 var19 = var21;
@@ -1515,84 +1610,81 @@ RET_LABEL20:(void)0;
 }
 }
 var_ret = var19;
-var22 = NULL;
 if (var_ret == NULL) {
-var23 = 0; /* is null */
+var22 = 0; /* is null */
 } else {
-var23 = 1; /* arg is null and recv is not */
+var22 = 1; /* arg is null and recv is not */
 }
 if (0) {
-{ /* Inline kernel#Object#!= (var_ret,var22) on <var_ret:nullable MType> */
-var_other = var22;
+{ /* Inline kernel#Object#!= (var_ret,((val*)NULL)) on <var_ret:nullable MType> */
+var_other = ((val*)NULL);
 {
-var26 = ((short int (*)(val* self, val* p0))(var_ret->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_ret, var_other) /* == on <var_ret:nullable MType(MType)>*/;
+var25 = ((short int(*)(val* self, val* p0))(var_ret->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_ret, var_other); /* == on <var_ret:nullable MType(MType)>*/
 }
-var27 = !var26;
-var24 = var27;
-goto RET_LABEL25;
-RET_LABEL25:(void)0;
+var26 = !var25;
+var23 = var26;
+goto RET_LABEL24;
+RET_LABEL24:(void)0;
 }
-var23 = var24;
+var22 = var23;
 }
-if (var23){
+if (var22){
 {
-var28 = standard___standard__SequenceRead___Collection__first(var_arguments);
+var27 = standard___standard__SequenceRead___Collection__first(var_arguments);
 }
 {
-var29 = nit___nit__AbstractCompilerVisitor___resolve_for(var_v, var_ret, var28);
+var28 = nit___nit__AbstractCompilerVisitor___resolve_for(var_v, var_ret, var27);
 }
-var_ret = var29;
+var_ret = var28;
 } else {
 }
-if (varonce) {
-var31 = varonce;
+if (likely(varonce!=NULL)) {
+var30 = varonce;
 } else {
-var32 = "==";
-var33 = 2;
-var34 = standard___standard__NativeString___to_s_with_length(var32, var33);
-var31 = var34;
-varonce = var31;
+var31 = "==";
+var32 = standard___standard__NativeString___to_s_with_length(var31, 2l);
+var30 = var32;
+varonce = var30;
 }
 {
-{ /* Inline kernel#Object#!= (var_pname,var31) on <var_pname:String> */
-var_other = var31;
+{ /* Inline kernel#Object#!= (var_pname,var30) on <var_pname:String> */
+var_other = var30;
 {
-var37 = ((short int (*)(val* self, val* p0))(var_pname->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_pname, var_other) /* == on <var_pname:String>*/;
+var35 = ((short int(*)(val* self, val* p0))(var_pname->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_pname, var_other); /* == on <var_pname:String>*/
 }
-var38 = !var37;
-var35 = var38;
-goto RET_LABEL36;
-RET_LABEL36:(void)0;
+var36 = !var35;
+var33 = var36;
+goto RET_LABEL34;
+RET_LABEL34:(void)0;
 }
 }
-var_ = var35;
-if (var35){
-if (varonce39) {
-var40 = varonce39;
+var_ = var33;
+if (var33){
+if (likely(varonce37!=NULL)) {
+var38 = varonce37;
 } else {
-var41 = "!=";
-var42 = 2;
-var43 = standard___standard__NativeString___to_s_with_length(var41, var42);
-var40 = var43;
-varonce39 = var40;
+var39 = "!=";
+var40 = standard___standard__NativeString___to_s_with_length(var39, 2l);
+var38 = var40;
+varonce37 = var38;
 }
 {
-{ /* Inline kernel#Object#!= (var_pname,var40) on <var_pname:String> */
-var_other = var40;
+{ /* Inline kernel#Object#!= (var_pname,var38) on <var_pname:String> */
+var_other = var38;
 {
-var46 = ((short int (*)(val* self, val* p0))(var_pname->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_pname, var_other) /* == on <var_pname:String>*/;
+var43 = ((short int(*)(val* self, val* p0))(var_pname->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_pname, var_other); /* == on <var_pname:String>*/
 }
-var47 = !var46;
-var44 = var47;
-goto RET_LABEL45;
-RET_LABEL45:(void)0;
+var44 = !var43;
+var41 = var44;
+goto RET_LABEL42;
+RET_LABEL42:(void)0;
 }
 }
-var30 = var44;
+var29 = var41;
 } else {
-var30 = var_;
+var29 = var_;
 }
-if (var30){
+if (var29){
 {
 nit___nit__SeparateCompilerVisitor___nit__abstract_compiler__AbstractCompilerVisitor__adapt_signature(var_v, var_mpropdef, var_arguments); /* Direct call separate_compiler#SeparateCompilerVisitor#adapt_signature on <var_v:AbstractCompilerVisitor>*/
 }
@@ -1601,989 +1693,1054 @@ nit___nit__SeparateCompilerVisitor___nit__abstract_compiler__AbstractCompilerVis
 }
 } else {
 }
-if (varonce48) {
-var49 = varonce48;
+if (likely(varonce45!=NULL)) {
+var46 = varonce45;
 } else {
-var50 = "Int";
-var51 = 3;
-var52 = standard___standard__NativeString___to_s_with_length(var50, var51);
-var49 = var52;
-varonce48 = var49;
+var47 = "Int";
+var48 = standard___standard__NativeString___to_s_with_length(var47, 3l);
+var46 = var48;
+varonce45 = var46;
 }
 {
-var53 = ((short int (*)(val* self, val* p0))(var_cname->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_cname, var49) /* == on <var_cname:String>*/;
+var49 = ((short int(*)(val* self, val* p0))(var_cname->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_cname, var46); /* == on <var_cname:String>*/
 }
-if (var53){
-if (varonce54) {
-var55 = varonce54;
+if (var49){
+if (likely(varonce50!=NULL)) {
+var51 = varonce50;
 } else {
-var56 = "output";
-var57 = 6;
-var58 = standard___standard__NativeString___to_s_with_length(var56, var57);
-var55 = var58;
-varonce54 = var55;
+var52 = "output";
+var53 = standard___standard__NativeString___to_s_with_length(var52, 6l);
+var51 = var53;
+varonce50 = var51;
 }
 {
-var59 = ((short int (*)(val* self, val* p0))(var_pname->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_pname, var55) /* == on <var_pname:String>*/;
+var54 = ((short int(*)(val* self, val* p0))(var_pname->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_pname, var51); /* == on <var_pname:String>*/
 }
-if (var59){
-if (varonce60) {
-var61 = varonce60;
+if (var54){
+if (unlikely(varonce55==NULL)) {
+var56 = NEW_standard__NativeArray(3l, &type_standard__NativeArray__standard__String);
+if (likely(varonce57!=NULL)) {
+var58 = varonce57;
 } else {
-var62 = "printf(\"%ld\\n\", ";
-var63 = 16;
-var64 = standard___standard__NativeString___to_s_with_length(var62, var63);
-var61 = var64;
-varonce60 = var61;
+var59 = "printf(\"%ld\\n\", ";
+var60 = standard___standard__NativeString___to_s_with_length(var59, 16l);
+var58 = var60;
+varonce57 = var58;
 }
-{
-var65 = standard___standard__SequenceRead___Collection__first(var_arguments);
+((struct instance_standard__NativeArray*)var56)->values[0]=var58;
+if (likely(varonce61!=NULL)) {
+var62 = varonce61;
+} else {
+var63 = ");";
+var64 = standard___standard__NativeString___to_s_with_length(var63, 2l);
+var62 = var64;
+varonce61 = var62;
 }
-if (varonce66) {
-var67 = varonce66;
+((struct instance_standard__NativeArray*)var56)->values[2]=var62;
 } else {
-var68 = ");";
-var69 = 2;
-var70 = standard___standard__NativeString___to_s_with_length(var68, var69);
-var67 = var70;
-varonce66 = var67;
+var56 = varonce55;
+varonce55 = NULL;
 }
-var71 = NEW_standard__Array(&type_standard__Array__standard__Object);
-{ /* var71 = array_instance Array[Object] */
-var72 = 3;
-var73 = NEW_standard__NativeArray(var72, &type_standard__NativeArray__standard__Object);
-((struct instance_standard__NativeArray*)var73)->values[0] = (val*) var61;
-((struct instance_standard__NativeArray*)var73)->values[1] = (val*) var65;
-((struct instance_standard__NativeArray*)var73)->values[2] = (val*) var67;
 {
-((void (*)(val* self, val* p0, long p1))(var71->class->vft[COLOR_standard__array__Array__with_native]))(var71, var73, var72) /* with_native on <var71:Array[Object]>*/;
+var65 = standard___standard__SequenceRead___Collection__first(var_arguments);
 }
+{
+var66 = ((val*(*)(val* self))(var65->class->vft[COLOR_standard__string__Object__to_s]))(var65); /* to_s on <var65:nullable Object(RuntimeVariable)>*/
 }
+((struct instance_standard__NativeArray*)var56)->values[1]=var66;
 {
-var74 = ((val* (*)(val* self))(var71->class->vft[COLOR_standard__string__Object__to_s]))(var71) /* to_s on <var71:Array[Object]>*/;
+var67 = ((val*(*)(val* self))(var56->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var56); /* native_to_s on <var56:NativeArray[String]>*/
 }
+varonce55 = var56;
 {
-nit___nit__AbstractCompilerVisitor___add(var_v, var74); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <var_v:AbstractCompilerVisitor>*/
+nit___nit__AbstractCompilerVisitor___add(var_v, var67); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <var_v:AbstractCompilerVisitor>*/
 }
-var75 = 1;
-var = var75;
+var = 1;
 goto RET_LABEL;
 } else {
-if (varonce76) {
-var77 = varonce76;
+if (likely(varonce68!=NULL)) {
+var69 = varonce68;
 } else {
-var78 = "object_id";
-var79 = 9;
-var80 = standard___standard__NativeString___to_s_with_length(var78, var79);
-var77 = var80;
-varonce76 = var77;
+var70 = "object_id";
+var71 = standard___standard__NativeString___to_s_with_length(var70, 9l);
+var69 = var71;
+varonce68 = var69;
 }
 {
-var81 = ((short int (*)(val* self, val* p0))(var_pname->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_pname, var77) /* == on <var_pname:String>*/;
+var72 = ((short int(*)(val* self, val* p0))(var_pname->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_pname, var69); /* == on <var_pname:String>*/
 }
-if (var81){
+if (var72){
 {
-var82 = standard___standard__SequenceRead___Collection__first(var_arguments);
+var73 = standard___standard__SequenceRead___Collection__first(var_arguments);
 }
 {
-nit___nit__AbstractCompilerVisitor___ret(var_v, var82); /* Direct call abstract_compiler#AbstractCompilerVisitor#ret on <var_v:AbstractCompilerVisitor>*/
+nit___nit__AbstractCompilerVisitor___ret(var_v, var73); /* Direct call abstract_compiler#AbstractCompilerVisitor#ret on <var_v:AbstractCompilerVisitor>*/
 }
-var83 = 1;
-var = var83;
+var = 1;
 goto RET_LABEL;
 } else {
-if (varonce84) {
-var85 = varonce84;
+if (likely(varonce74!=NULL)) {
+var75 = varonce74;
 } else {
-var86 = "+";
-var87 = 1;
-var88 = standard___standard__NativeString___to_s_with_length(var86, var87);
-var85 = var88;
-varonce84 = var85;
+var76 = "+";
+var77 = standard___standard__NativeString___to_s_with_length(var76, 1l);
+var75 = var77;
+varonce74 = var75;
 }
 {
-var89 = ((short int (*)(val* self, val* p0))(var_pname->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_pname, var85) /* == on <var_pname:String>*/;
+var78 = ((short int(*)(val* self, val* p0))(var_pname->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_pname, var75); /* == on <var_pname:String>*/
 }
-if (var89){
-var90 = 0;
-{
-var91 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var_arguments, var90);
+if (var78){
+if (unlikely(varonce79==NULL)) {
+var80 = NEW_standard__NativeArray(3l, &type_standard__NativeArray__standard__String);
+if (likely(varonce81!=NULL)) {
+var82 = varonce81;
+} else {
+var83 = " + ";
+var84 = standard___standard__NativeString___to_s_with_length(var83, 3l);
+var82 = var84;
+varonce81 = var82;
 }
-if (varonce92) {
-var93 = varonce92;
+((struct instance_standard__NativeArray*)var80)->values[1]=var82;
 } else {
-var94 = " + ";
-var95 = 3;
-var96 = standard___standard__NativeString___to_s_with_length(var94, var95);
-var93 = var96;
-varonce92 = var93;
+var80 = varonce79;
+varonce79 = NULL;
+}
+{
+var85 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var_arguments, 0l);
 }
-var97 = 1;
 {
-var98 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var_arguments, var97);
+var86 = ((val*(*)(val* self))(var85->class->vft[COLOR_standard__string__Object__to_s]))(var85); /* to_s on <var85:nullable Object(RuntimeVariable)>*/
 }
-var99 = NEW_standard__Array(&type_standard__Array__standard__Object);
-{ /* var99 = array_instance Array[Object] */
-var100 = 3;
-var101 = NEW_standard__NativeArray(var100, &type_standard__NativeArray__standard__Object);
-((struct instance_standard__NativeArray*)var101)->values[0] = (val*) var91;
-((struct instance_standard__NativeArray*)var101)->values[1] = (val*) var93;
-((struct instance_standard__NativeArray*)var101)->values[2] = (val*) var98;
+((struct instance_standard__NativeArray*)var80)->values[0]=var86;
 {
-((void (*)(val* self, val* p0, long p1))(var99->class->vft[COLOR_standard__array__Array__with_native]))(var99, var101, var100) /* with_native on <var99:Array[Object]>*/;
+var87 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var_arguments, 1l);
 }
+{
+var88 = ((val*(*)(val* self))(var87->class->vft[COLOR_standard__string__Object__to_s]))(var87); /* to_s on <var87:nullable Object(RuntimeVariable)>*/
 }
+((struct instance_standard__NativeArray*)var80)->values[2]=var88;
 {
-var102 = ((val* (*)(val* self))(var99->class->vft[COLOR_standard__string__Object__to_s]))(var99) /* to_s on <var99:Array[Object]>*/;
+var89 = ((val*(*)(val* self))(var80->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var80); /* native_to_s on <var80:NativeArray[String]>*/
 }
+varonce79 = var80;
 if (unlikely(var_ret == NULL)) {
 PRINT_ERROR("Runtime error: %s", "Cast failed");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1979);
-show_backtrace(1);
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 2095);
+fatal_exit(1);
 }
 {
-var103 = nit___nit__AbstractCompilerVisitor___new_expr(var_v, var102, var_ret);
+var90 = nit___nit__AbstractCompilerVisitor___new_expr(var_v, var89, var_ret);
 }
 {
-nit___nit__AbstractCompilerVisitor___ret(var_v, var103); /* Direct call abstract_compiler#AbstractCompilerVisitor#ret on <var_v:AbstractCompilerVisitor>*/
+nit___nit__AbstractCompilerVisitor___ret(var_v, var90); /* Direct call abstract_compiler#AbstractCompilerVisitor#ret on <var_v:AbstractCompilerVisitor>*/
 }
-var104 = 1;
-var = var104;
+var = 1;
 goto RET_LABEL;
 } else {
-if (varonce105) {
-var106 = varonce105;
+if (likely(varonce91!=NULL)) {
+var92 = varonce91;
 } else {
-var107 = "-";
-var108 = 1;
-var109 = standard___standard__NativeString___to_s_with_length(var107, var108);
-var106 = var109;
-varonce105 = var106;
+var93 = "-";
+var94 = standard___standard__NativeString___to_s_with_length(var93, 1l);
+var92 = var94;
+varonce91 = var92;
 }
 {
-var110 = ((short int (*)(val* self, val* p0))(var_pname->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_pname, var106) /* == on <var_pname:String>*/;
+var95 = ((short int(*)(val* self, val* p0))(var_pname->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_pname, var92); /* == on <var_pname:String>*/
 }
-if (var110){
-var111 = 0;
-{
-var112 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var_arguments, var111);
+if (var95){
+if (unlikely(varonce96==NULL)) {
+var97 = NEW_standard__NativeArray(3l, &type_standard__NativeArray__standard__String);
+if (likely(varonce98!=NULL)) {
+var99 = varonce98;
+} else {
+var100 = " - ";
+var101 = standard___standard__NativeString___to_s_with_length(var100, 3l);
+var99 = var101;
+varonce98 = var99;
 }
-if (varonce113) {
-var114 = varonce113;
+((struct instance_standard__NativeArray*)var97)->values[1]=var99;
 } else {
-var115 = " - ";
-var116 = 3;
-var117 = standard___standard__NativeString___to_s_with_length(var115, var116);
-var114 = var117;
-varonce113 = var114;
+var97 = varonce96;
+varonce96 = NULL;
+}
+{
+var102 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var_arguments, 0l);
 }
-var118 = 1;
 {
-var119 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var_arguments, var118);
+var103 = ((val*(*)(val* self))(var102->class->vft[COLOR_standard__string__Object__to_s]))(var102); /* to_s on <var102:nullable Object(RuntimeVariable)>*/
 }
-var120 = NEW_standard__Array(&type_standard__Array__standard__Object);
-{ /* var120 = array_instance Array[Object] */
-var121 = 3;
-var122 = NEW_standard__NativeArray(var121, &type_standard__NativeArray__standard__Object);
-((struct instance_standard__NativeArray*)var122)->values[0] = (val*) var112;
-((struct instance_standard__NativeArray*)var122)->values[1] = (val*) var114;
-((struct instance_standard__NativeArray*)var122)->values[2] = (val*) var119;
+((struct instance_standard__NativeArray*)var97)->values[0]=var103;
 {
-((void (*)(val* self, val* p0, long p1))(var120->class->vft[COLOR_standard__array__Array__with_native]))(var120, var122, var121) /* with_native on <var120:Array[Object]>*/;
+var104 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var_arguments, 1l);
 }
+{
+var105 = ((val*(*)(val* self))(var104->class->vft[COLOR_standard__string__Object__to_s]))(var104); /* to_s on <var104:nullable Object(RuntimeVariable)>*/
 }
+((struct instance_standard__NativeArray*)var97)->values[2]=var105;
 {
-var123 = ((val* (*)(val* self))(var120->class->vft[COLOR_standard__string__Object__to_s]))(var120) /* to_s on <var120:Array[Object]>*/;
+var106 = ((val*(*)(val* self))(var97->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var97); /* native_to_s on <var97:NativeArray[String]>*/
 }
+varonce96 = var97;
 if (unlikely(var_ret == NULL)) {
 PRINT_ERROR("Runtime error: %s", "Cast failed");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1982);
-show_backtrace(1);
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 2098);
+fatal_exit(1);
 }
 {
-var124 = nit___nit__AbstractCompilerVisitor___new_expr(var_v, var123, var_ret);
+var107 = nit___nit__AbstractCompilerVisitor___new_expr(var_v, var106, var_ret);
 }
 {
-nit___nit__AbstractCompilerVisitor___ret(var_v, var124); /* Direct call abstract_compiler#AbstractCompilerVisitor#ret on <var_v:AbstractCompilerVisitor>*/
+nit___nit__AbstractCompilerVisitor___ret(var_v, var107); /* Direct call abstract_compiler#AbstractCompilerVisitor#ret on <var_v:AbstractCompilerVisitor>*/
 }
-var125 = 1;
-var = var125;
+var = 1;
 goto RET_LABEL;
 } else {
-if (varonce126) {
-var127 = varonce126;
+if (likely(varonce108!=NULL)) {
+var109 = varonce108;
 } else {
-var128 = "unary -";
-var129 = 7;
-var130 = standard___standard__NativeString___to_s_with_length(var128, var129);
-var127 = var130;
-varonce126 = var127;
+var110 = "unary -";
+var111 = standard___standard__NativeString___to_s_with_length(var110, 7l);
+var109 = var111;
+varonce108 = var109;
 }
 {
-var131 = ((short int (*)(val* self, val* p0))(var_pname->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_pname, var127) /* == on <var_pname:String>*/;
+var112 = ((short int(*)(val* self, val* p0))(var_pname->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_pname, var109); /* == on <var_pname:String>*/
 }
-if (var131){
-if (varonce132) {
-var133 = varonce132;
+if (var112){
+if (unlikely(varonce113==NULL)) {
+var114 = NEW_standard__NativeArray(2l, &type_standard__NativeArray__standard__String);
+if (likely(varonce115!=NULL)) {
+var116 = varonce115;
 } else {
-var134 = "-";
-var135 = 1;
-var136 = standard___standard__NativeString___to_s_with_length(var134, var135);
-var133 = var136;
-varonce132 = var133;
+var117 = "-";
+var118 = standard___standard__NativeString___to_s_with_length(var117, 1l);
+var116 = var118;
+varonce115 = var116;
 }
-var137 = 0;
-{
-var138 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var_arguments, var137);
+((struct instance_standard__NativeArray*)var114)->values[0]=var116;
+} else {
+var114 = varonce113;
+varonce113 = NULL;
 }
-var139 = NEW_standard__Array(&type_standard__Array__standard__Object);
-{ /* var139 = array_instance Array[Object] */
-var140 = 2;
-var141 = NEW_standard__NativeArray(var140, &type_standard__NativeArray__standard__Object);
-((struct instance_standard__NativeArray*)var141)->values[0] = (val*) var133;
-((struct instance_standard__NativeArray*)var141)->values[1] = (val*) var138;
 {
-((void (*)(val* self, val* p0, long p1))(var139->class->vft[COLOR_standard__array__Array__with_native]))(var139, var141, var140) /* with_native on <var139:Array[Object]>*/;
+var119 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var_arguments, 0l);
 }
+{
+var120 = ((val*(*)(val* self))(var119->class->vft[COLOR_standard__string__Object__to_s]))(var119); /* to_s on <var119:nullable Object(RuntimeVariable)>*/
 }
+((struct instance_standard__NativeArray*)var114)->values[1]=var120;
 {
-var142 = ((val* (*)(val* self))(var139->class->vft[COLOR_standard__string__Object__to_s]))(var139) /* to_s on <var139:Array[Object]>*/;
+var121 = ((val*(*)(val* self))(var114->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var114); /* native_to_s on <var114:NativeArray[String]>*/
 }
+varonce113 = var114;
 if (unlikely(var_ret == NULL)) {
 PRINT_ERROR("Runtime error: %s", "Cast failed");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1985);
-show_backtrace(1);
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 2101);
+fatal_exit(1);
 }
 {
-var143 = nit___nit__AbstractCompilerVisitor___new_expr(var_v, var142, var_ret);
+var122 = nit___nit__AbstractCompilerVisitor___new_expr(var_v, var121, var_ret);
 }
 {
-nit___nit__AbstractCompilerVisitor___ret(var_v, var143); /* Direct call abstract_compiler#AbstractCompilerVisitor#ret on <var_v:AbstractCompilerVisitor>*/
+nit___nit__AbstractCompilerVisitor___ret(var_v, var122); /* Direct call abstract_compiler#AbstractCompilerVisitor#ret on <var_v:AbstractCompilerVisitor>*/
 }
-var144 = 1;
-var = var144;
+var = 1;
 goto RET_LABEL;
 } else {
-if (varonce145) {
-var146 = varonce145;
+if (likely(varonce123!=NULL)) {
+var124 = varonce123;
 } else {
-var147 = "*";
-var148 = 1;
-var149 = standard___standard__NativeString___to_s_with_length(var147, var148);
-var146 = var149;
-varonce145 = var146;
+var125 = "unary +";
+var126 = standard___standard__NativeString___to_s_with_length(var125, 7l);
+var124 = var126;
+varonce123 = var124;
 }
 {
-var150 = ((short int (*)(val* self, val* p0))(var_pname->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_pname, var146) /* == on <var_pname:String>*/;
+var127 = ((short int(*)(val* self, val* p0))(var_pname->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_pname, var124); /* == on <var_pname:String>*/
 }
-if (var150){
-var151 = 0;
+if (var127){
 {
-var152 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var_arguments, var151);
+var128 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var_arguments, 0l);
 }
-if (varonce153) {
-var154 = varonce153;
+{
+nit___nit__AbstractCompilerVisitor___ret(var_v, var128); /* Direct call abstract_compiler#AbstractCompilerVisitor#ret on <var_v:AbstractCompilerVisitor>*/
+}
+var = 1;
+goto RET_LABEL;
 } else {
-var155 = " * ";
-var156 = 3;
-var157 = standard___standard__NativeString___to_s_with_length(var155, var156);
-var154 = var157;
-varonce153 = var154;
+if (likely(varonce129!=NULL)) {
+var130 = varonce129;
+} else {
+var131 = "*";
+var132 = standard___standard__NativeString___to_s_with_length(var131, 1l);
+var130 = var132;
+varonce129 = var130;
+}
+{
+var133 = ((short int(*)(val* self, val* p0))(var_pname->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_pname, var130); /* == on <var_pname:String>*/
+}
+if (var133){
+if (unlikely(varonce134==NULL)) {
+var135 = NEW_standard__NativeArray(3l, &type_standard__NativeArray__standard__String);
+if (likely(varonce136!=NULL)) {
+var137 = varonce136;
+} else {
+var138 = " * ";
+var139 = standard___standard__NativeString___to_s_with_length(var138, 3l);
+var137 = var139;
+varonce136 = var137;
+}
+((struct instance_standard__NativeArray*)var135)->values[1]=var137;
+} else {
+var135 = varonce134;
+varonce134 = NULL;
 }
-var158 = 1;
 {
-var159 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var_arguments, var158);
+var140 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var_arguments, 0l);
 }
-var160 = NEW_standard__Array(&type_standard__Array__standard__Object);
-{ /* var160 = array_instance Array[Object] */
-var161 = 3;
-var162 = NEW_standard__NativeArray(var161, &type_standard__NativeArray__standard__Object);
-((struct instance_standard__NativeArray*)var162)->values[0] = (val*) var152;
-((struct instance_standard__NativeArray*)var162)->values[1] = (val*) var154;
-((struct instance_standard__NativeArray*)var162)->values[2] = (val*) var159;
 {
-((void (*)(val* self, val* p0, long p1))(var160->class->vft[COLOR_standard__array__Array__with_native]))(var160, var162, var161) /* with_native on <var160:Array[Object]>*/;
+var141 = ((val*(*)(val* self))(var140->class->vft[COLOR_standard__string__Object__to_s]))(var140); /* to_s on <var140:nullable Object(RuntimeVariable)>*/
 }
+((struct instance_standard__NativeArray*)var135)->values[0]=var141;
+{
+var142 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var_arguments, 1l);
+}
+{
+var143 = ((val*(*)(val* self))(var142->class->vft[COLOR_standard__string__Object__to_s]))(var142); /* to_s on <var142:nullable Object(RuntimeVariable)>*/
 }
+((struct instance_standard__NativeArray*)var135)->values[2]=var143;
 {
-var163 = ((val* (*)(val* self))(var160->class->vft[COLOR_standard__string__Object__to_s]))(var160) /* to_s on <var160:Array[Object]>*/;
+var144 = ((val*(*)(val* self))(var135->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var135); /* native_to_s on <var135:NativeArray[String]>*/
 }
+varonce134 = var135;
 if (unlikely(var_ret == NULL)) {
 PRINT_ERROR("Runtime error: %s", "Cast failed");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1988);
-show_backtrace(1);
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 2107);
+fatal_exit(1);
 }
 {
-var164 = nit___nit__AbstractCompilerVisitor___new_expr(var_v, var163, var_ret);
+var145 = nit___nit__AbstractCompilerVisitor___new_expr(var_v, var144, var_ret);
 }
 {
-nit___nit__AbstractCompilerVisitor___ret(var_v, var164); /* Direct call abstract_compiler#AbstractCompilerVisitor#ret on <var_v:AbstractCompilerVisitor>*/
+nit___nit__AbstractCompilerVisitor___ret(var_v, var145); /* Direct call abstract_compiler#AbstractCompilerVisitor#ret on <var_v:AbstractCompilerVisitor>*/
 }
-var165 = 1;
-var = var165;
+var = 1;
 goto RET_LABEL;
 } else {
-if (varonce166) {
-var167 = varonce166;
+if (likely(varonce146!=NULL)) {
+var147 = varonce146;
 } else {
-var168 = "/";
-var169 = 1;
-var170 = standard___standard__NativeString___to_s_with_length(var168, var169);
-var167 = var170;
-varonce166 = var167;
+var148 = "/";
+var149 = standard___standard__NativeString___to_s_with_length(var148, 1l);
+var147 = var149;
+varonce146 = var147;
 }
 {
-var171 = ((short int (*)(val* self, val* p0))(var_pname->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_pname, var167) /* == on <var_pname:String>*/;
+var150 = ((short int(*)(val* self, val* p0))(var_pname->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_pname, var147); /* == on <var_pname:String>*/
 }
-if (var171){
-var172 = 0;
-{
-var173 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var_arguments, var172);
+if (var150){
+if (unlikely(varonce151==NULL)) {
+var152 = NEW_standard__NativeArray(3l, &type_standard__NativeArray__standard__String);
+if (likely(varonce153!=NULL)) {
+var154 = varonce153;
+} else {
+var155 = " / ";
+var156 = standard___standard__NativeString___to_s_with_length(var155, 3l);
+var154 = var156;
+varonce153 = var154;
 }
-if (varonce174) {
-var175 = varonce174;
+((struct instance_standard__NativeArray*)var152)->values[1]=var154;
 } else {
-var176 = " / ";
-var177 = 3;
-var178 = standard___standard__NativeString___to_s_with_length(var176, var177);
-var175 = var178;
-varonce174 = var175;
+var152 = varonce151;
+varonce151 = NULL;
 }
-var179 = 1;
 {
-var180 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var_arguments, var179);
+var157 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var_arguments, 0l);
 }
-var181 = NEW_standard__Array(&type_standard__Array__standard__Object);
-{ /* var181 = array_instance Array[Object] */
-var182 = 3;
-var183 = NEW_standard__NativeArray(var182, &type_standard__NativeArray__standard__Object);
-((struct instance_standard__NativeArray*)var183)->values[0] = (val*) var173;
-((struct instance_standard__NativeArray*)var183)->values[1] = (val*) var175;
-((struct instance_standard__NativeArray*)var183)->values[2] = (val*) var180;
 {
-((void (*)(val* self, val* p0, long p1))(var181->class->vft[COLOR_standard__array__Array__with_native]))(var181, var183, var182) /* with_native on <var181:Array[Object]>*/;
+var158 = ((val*(*)(val* self))(var157->class->vft[COLOR_standard__string__Object__to_s]))(var157); /* to_s on <var157:nullable Object(RuntimeVariable)>*/
 }
+((struct instance_standard__NativeArray*)var152)->values[0]=var158;
+{
+var159 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var_arguments, 1l);
+}
+{
+var160 = ((val*(*)(val* self))(var159->class->vft[COLOR_standard__string__Object__to_s]))(var159); /* to_s on <var159:nullable Object(RuntimeVariable)>*/
 }
+((struct instance_standard__NativeArray*)var152)->values[2]=var160;
 {
-var184 = ((val* (*)(val* self))(var181->class->vft[COLOR_standard__string__Object__to_s]))(var181) /* to_s on <var181:Array[Object]>*/;
+var161 = ((val*(*)(val* self))(var152->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var152); /* native_to_s on <var152:NativeArray[String]>*/
 }
+varonce151 = var152;
 if (unlikely(var_ret == NULL)) {
 PRINT_ERROR("Runtime error: %s", "Cast failed");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1991);
-show_backtrace(1);
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 2110);
+fatal_exit(1);
 }
 {
-var185 = nit___nit__AbstractCompilerVisitor___new_expr(var_v, var184, var_ret);
+var162 = nit___nit__AbstractCompilerVisitor___new_expr(var_v, var161, var_ret);
 }
 {
-nit___nit__AbstractCompilerVisitor___ret(var_v, var185); /* Direct call abstract_compiler#AbstractCompilerVisitor#ret on <var_v:AbstractCompilerVisitor>*/
+nit___nit__AbstractCompilerVisitor___ret(var_v, var162); /* Direct call abstract_compiler#AbstractCompilerVisitor#ret on <var_v:AbstractCompilerVisitor>*/
 }
-var186 = 1;
-var = var186;
+var = 1;
 goto RET_LABEL;
 } else {
-if (varonce187) {
-var188 = varonce187;
+if (likely(varonce163!=NULL)) {
+var164 = varonce163;
 } else {
-var189 = "%";
-var190 = 1;
-var191 = standard___standard__NativeString___to_s_with_length(var189, var190);
-var188 = var191;
-varonce187 = var188;
+var165 = "%";
+var166 = standard___standard__NativeString___to_s_with_length(var165, 1l);
+var164 = var166;
+varonce163 = var164;
 }
 {
-var192 = ((short int (*)(val* self, val* p0))(var_pname->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_pname, var188) /* == on <var_pname:String>*/;
+var167 = ((short int(*)(val* self, val* p0))(var_pname->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_pname, var164); /* == on <var_pname:String>*/
 }
-if (var192){
-var193 = 0;
-{
-var194 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var_arguments, var193);
+if (var167){
+if (unlikely(varonce168==NULL)) {
+var169 = NEW_standard__NativeArray(3l, &type_standard__NativeArray__standard__String);
+if (likely(varonce170!=NULL)) {
+var171 = varonce170;
+} else {
+var172 = " % ";
+var173 = standard___standard__NativeString___to_s_with_length(var172, 3l);
+var171 = var173;
+varonce170 = var171;
 }
-if (varonce195) {
-var196 = varonce195;
+((struct instance_standard__NativeArray*)var169)->values[1]=var171;
 } else {
-var197 = " % ";
-var198 = 3;
-var199 = standard___standard__NativeString___to_s_with_length(var197, var198);
-var196 = var199;
-varonce195 = var196;
+var169 = varonce168;
+varonce168 = NULL;
+}
+{
+var174 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var_arguments, 0l);
 }
-var200 = 1;
 {
-var201 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var_arguments, var200);
+var175 = ((val*(*)(val* self))(var174->class->vft[COLOR_standard__string__Object__to_s]))(var174); /* to_s on <var174:nullable Object(RuntimeVariable)>*/
 }
-var202 = NEW_standard__Array(&type_standard__Array__standard__Object);
-{ /* var202 = array_instance Array[Object] */
-var203 = 3;
-var204 = NEW_standard__NativeArray(var203, &type_standard__NativeArray__standard__Object);
-((struct instance_standard__NativeArray*)var204)->values[0] = (val*) var194;
-((struct instance_standard__NativeArray*)var204)->values[1] = (val*) var196;
-((struct instance_standard__NativeArray*)var204)->values[2] = (val*) var201;
+((struct instance_standard__NativeArray*)var169)->values[0]=var175;
 {
-((void (*)(val* self, val* p0, long p1))(var202->class->vft[COLOR_standard__array__Array__with_native]))(var202, var204, var203) /* with_native on <var202:Array[Object]>*/;
+var176 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var_arguments, 1l);
 }
+{
+var177 = ((val*(*)(val* self))(var176->class->vft[COLOR_standard__string__Object__to_s]))(var176); /* to_s on <var176:nullable Object(RuntimeVariable)>*/
 }
+((struct instance_standard__NativeArray*)var169)->values[2]=var177;
 {
-var205 = ((val* (*)(val* self))(var202->class->vft[COLOR_standard__string__Object__to_s]))(var202) /* to_s on <var202:Array[Object]>*/;
+var178 = ((val*(*)(val* self))(var169->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var169); /* native_to_s on <var169:NativeArray[String]>*/
 }
+varonce168 = var169;
 if (unlikely(var_ret == NULL)) {
 PRINT_ERROR("Runtime error: %s", "Cast failed");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1994);
-show_backtrace(1);
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 2113);
+fatal_exit(1);
 }
 {
-var206 = nit___nit__AbstractCompilerVisitor___new_expr(var_v, var205, var_ret);
+var179 = nit___nit__AbstractCompilerVisitor___new_expr(var_v, var178, var_ret);
 }
 {
-nit___nit__AbstractCompilerVisitor___ret(var_v, var206); /* Direct call abstract_compiler#AbstractCompilerVisitor#ret on <var_v:AbstractCompilerVisitor>*/
+nit___nit__AbstractCompilerVisitor___ret(var_v, var179); /* Direct call abstract_compiler#AbstractCompilerVisitor#ret on <var_v:AbstractCompilerVisitor>*/
 }
-var207 = 1;
-var = var207;
+var = 1;
 goto RET_LABEL;
 } else {
-if (varonce208) {
-var209 = varonce208;
+if (likely(varonce180!=NULL)) {
+var181 = varonce180;
 } else {
-var210 = "lshift";
-var211 = 6;
-var212 = standard___standard__NativeString___to_s_with_length(var210, var211);
-var209 = var212;
-varonce208 = var209;
+var182 = "lshift";
+var183 = standard___standard__NativeString___to_s_with_length(var182, 6l);
+var181 = var183;
+varonce180 = var181;
 }
 {
-var213 = ((short int (*)(val* self, val* p0))(var_pname->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_pname, var209) /* == on <var_pname:String>*/;
+var184 = ((short int(*)(val* self, val* p0))(var_pname->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_pname, var181); /* == on <var_pname:String>*/
 }
-if (var213){
-var214 = 0;
-{
-var215 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var_arguments, var214);
+if (var184){
+if (unlikely(varonce185==NULL)) {
+var186 = NEW_standard__NativeArray(3l, &type_standard__NativeArray__standard__String);
+if (likely(varonce187!=NULL)) {
+var188 = varonce187;
+} else {
+var189 = " << ";
+var190 = standard___standard__NativeString___to_s_with_length(var189, 4l);
+var188 = var190;
+varonce187 = var188;
 }
-if (varonce216) {
-var217 = varonce216;
+((struct instance_standard__NativeArray*)var186)->values[1]=var188;
 } else {
-var218 = " << ";
-var219 = 4;
-var220 = standard___standard__NativeString___to_s_with_length(var218, var219);
-var217 = var220;
-varonce216 = var217;
+var186 = varonce185;
+varonce185 = NULL;
+}
+{
+var191 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var_arguments, 0l);
 }
-var221 = 1;
 {
-var222 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var_arguments, var221);
+var192 = ((val*(*)(val* self))(var191->class->vft[COLOR_standard__string__Object__to_s]))(var191); /* to_s on <var191:nullable Object(RuntimeVariable)>*/
 }
-var223 = NEW_standard__Array(&type_standard__Array__standard__Object);
-{ /* var223 = array_instance Array[Object] */
-var224 = 3;
-var225 = NEW_standard__NativeArray(var224, &type_standard__NativeArray__standard__Object);
-((struct instance_standard__NativeArray*)var225)->values[0] = (val*) var215;
-((struct instance_standard__NativeArray*)var225)->values[1] = (val*) var217;
-((struct instance_standard__NativeArray*)var225)->values[2] = (val*) var222;
+((struct instance_standard__NativeArray*)var186)->values[0]=var192;
 {
-((void (*)(val* self, val* p0, long p1))(var223->class->vft[COLOR_standard__array__Array__with_native]))(var223, var225, var224) /* with_native on <var223:Array[Object]>*/;
+var193 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var_arguments, 1l);
 }
+{
+var194 = ((val*(*)(val* self))(var193->class->vft[COLOR_standard__string__Object__to_s]))(var193); /* to_s on <var193:nullable Object(RuntimeVariable)>*/
 }
+((struct instance_standard__NativeArray*)var186)->values[2]=var194;
 {
-var226 = ((val* (*)(val* self))(var223->class->vft[COLOR_standard__string__Object__to_s]))(var223) /* to_s on <var223:Array[Object]>*/;
+var195 = ((val*(*)(val* self))(var186->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var186); /* native_to_s on <var186:NativeArray[String]>*/
 }
+varonce185 = var186;
 if (unlikely(var_ret == NULL)) {
 PRINT_ERROR("Runtime error: %s", "Cast failed");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1997);
-show_backtrace(1);
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 2116);
+fatal_exit(1);
 }
 {
-var227 = nit___nit__AbstractCompilerVisitor___new_expr(var_v, var226, var_ret);
+var196 = nit___nit__AbstractCompilerVisitor___new_expr(var_v, var195, var_ret);
 }
 {
-nit___nit__AbstractCompilerVisitor___ret(var_v, var227); /* Direct call abstract_compiler#AbstractCompilerVisitor#ret on <var_v:AbstractCompilerVisitor>*/
+nit___nit__AbstractCompilerVisitor___ret(var_v, var196); /* Direct call abstract_compiler#AbstractCompilerVisitor#ret on <var_v:AbstractCompilerVisitor>*/
 }
-var228 = 1;
-var = var228;
+var = 1;
 goto RET_LABEL;
 } else {
-if (varonce229) {
-var230 = varonce229;
+if (likely(varonce197!=NULL)) {
+var198 = varonce197;
 } else {
-var231 = "rshift";
-var232 = 6;
-var233 = standard___standard__NativeString___to_s_with_length(var231, var232);
-var230 = var233;
-varonce229 = var230;
+var199 = "rshift";
+var200 = standard___standard__NativeString___to_s_with_length(var199, 6l);
+var198 = var200;
+varonce197 = var198;
 }
 {
-var234 = ((short int (*)(val* self, val* p0))(var_pname->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_pname, var230) /* == on <var_pname:String>*/;
+var201 = ((short int(*)(val* self, val* p0))(var_pname->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_pname, var198); /* == on <var_pname:String>*/
 }
-if (var234){
-var235 = 0;
-{
-var236 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var_arguments, var235);
+if (var201){
+if (unlikely(varonce202==NULL)) {
+var203 = NEW_standard__NativeArray(3l, &type_standard__NativeArray__standard__String);
+if (likely(varonce204!=NULL)) {
+var205 = varonce204;
+} else {
+var206 = " >> ";
+var207 = standard___standard__NativeString___to_s_with_length(var206, 4l);
+var205 = var207;
+varonce204 = var205;
 }
-if (varonce237) {
-var238 = varonce237;
+((struct instance_standard__NativeArray*)var203)->values[1]=var205;
 } else {
-var239 = " >> ";
-var240 = 4;
-var241 = standard___standard__NativeString___to_s_with_length(var239, var240);
-var238 = var241;
-varonce237 = var238;
+var203 = varonce202;
+varonce202 = NULL;
+}
+{
+var208 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var_arguments, 0l);
 }
-var242 = 1;
 {
-var243 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var_arguments, var242);
+var209 = ((val*(*)(val* self))(var208->class->vft[COLOR_standard__string__Object__to_s]))(var208); /* to_s on <var208:nullable Object(RuntimeVariable)>*/
 }
-var244 = NEW_standard__Array(&type_standard__Array__standard__Object);
-{ /* var244 = array_instance Array[Object] */
-var245 = 3;
-var246 = NEW_standard__NativeArray(var245, &type_standard__NativeArray__standard__Object);
-((struct instance_standard__NativeArray*)var246)->values[0] = (val*) var236;
-((struct instance_standard__NativeArray*)var246)->values[1] = (val*) var238;
-((struct instance_standard__NativeArray*)var246)->values[2] = (val*) var243;
+((struct instance_standard__NativeArray*)var203)->values[0]=var209;
 {
-((void (*)(val* self, val* p0, long p1))(var244->class->vft[COLOR_standard__array__Array__with_native]))(var244, var246, var245) /* with_native on <var244:Array[Object]>*/;
+var210 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var_arguments, 1l);
 }
+{
+var211 = ((val*(*)(val* self))(var210->class->vft[COLOR_standard__string__Object__to_s]))(var210); /* to_s on <var210:nullable Object(RuntimeVariable)>*/
 }
+((struct instance_standard__NativeArray*)var203)->values[2]=var211;
 {
-var247 = ((val* (*)(val* self))(var244->class->vft[COLOR_standard__string__Object__to_s]))(var244) /* to_s on <var244:Array[Object]>*/;
+var212 = ((val*(*)(val* self))(var203->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var203); /* native_to_s on <var203:NativeArray[String]>*/
 }
+varonce202 = var203;
 if (unlikely(var_ret == NULL)) {
 PRINT_ERROR("Runtime error: %s", "Cast failed");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 2000);
-show_backtrace(1);
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 2119);
+fatal_exit(1);
 }
 {
-var248 = nit___nit__AbstractCompilerVisitor___new_expr(var_v, var247, var_ret);
+var213 = nit___nit__AbstractCompilerVisitor___new_expr(var_v, var212, var_ret);
 }
 {
-nit___nit__AbstractCompilerVisitor___ret(var_v, var248); /* Direct call abstract_compiler#AbstractCompilerVisitor#ret on <var_v:AbstractCompilerVisitor>*/
+nit___nit__AbstractCompilerVisitor___ret(var_v, var213); /* Direct call abstract_compiler#AbstractCompilerVisitor#ret on <var_v:AbstractCompilerVisitor>*/
 }
-var249 = 1;
-var = var249;
+var = 1;
 goto RET_LABEL;
 } else {
-if (varonce250) {
-var251 = varonce250;
+if (likely(varonce214!=NULL)) {
+var215 = varonce214;
 } else {
-var252 = "==";
-var253 = 2;
-var254 = standard___standard__NativeString___to_s_with_length(var252, var253);
-var251 = var254;
-varonce250 = var251;
+var216 = "==";
+var217 = standard___standard__NativeString___to_s_with_length(var216, 2l);
+var215 = var217;
+varonce214 = var215;
 }
 {
-var255 = ((short int (*)(val* self, val* p0))(var_pname->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_pname, var251) /* == on <var_pname:String>*/;
+var218 = ((short int(*)(val* self, val* p0))(var_pname->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_pname, var215); /* == on <var_pname:String>*/
 }
-if (var255){
-var256 = 0;
+if (var218){
 {
-var257 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var_arguments, var256);
+var219 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var_arguments, 0l);
 }
-var258 = 1;
 {
-var259 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var_arguments, var258);
+var220 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var_arguments, 1l);
 }
 {
-var260 = nit___nit__SeparateCompilerVisitor___nit__abstract_compiler__AbstractCompilerVisitor__equal_test(var_v, var257, var259);
+var221 = nit___nit__SeparateCompilerVisitor___nit__abstract_compiler__AbstractCompilerVisitor__equal_test(var_v, var219, var220);
 }
 {
-nit___nit__AbstractCompilerVisitor___ret(var_v, var260); /* Direct call abstract_compiler#AbstractCompilerVisitor#ret on <var_v:AbstractCompilerVisitor>*/
+nit___nit__AbstractCompilerVisitor___ret(var_v, var221); /* Direct call abstract_compiler#AbstractCompilerVisitor#ret on <var_v:AbstractCompilerVisitor>*/
 }
-var261 = 1;
-var = var261;
+var = 1;
 goto RET_LABEL;
 } else {
-if (varonce262) {
-var263 = varonce262;
+if (likely(varonce222!=NULL)) {
+var223 = varonce222;
 } else {
-var264 = "!=";
-var265 = 2;
-var266 = standard___standard__NativeString___to_s_with_length(var264, var265);
-var263 = var266;
-varonce262 = var263;
+var224 = "!=";
+var225 = standard___standard__NativeString___to_s_with_length(var224, 2l);
+var223 = var225;
+varonce222 = var223;
 }
 {
-var267 = ((short int (*)(val* self, val* p0))(var_pname->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_pname, var263) /* == on <var_pname:String>*/;
+var226 = ((short int(*)(val* self, val* p0))(var_pname->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_pname, var223); /* == on <var_pname:String>*/
 }
-if (var267){
-var268 = 0;
+if (var226){
 {
-var269 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var_arguments, var268);
+var227 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var_arguments, 0l);
 }
-var270 = 1;
 {
-var271 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var_arguments, var270);
+var228 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var_arguments, 1l);
 }
 {
-var272 = nit___nit__SeparateCompilerVisitor___nit__abstract_compiler__AbstractCompilerVisitor__equal_test(var_v, var269, var271);
+var229 = nit___nit__SeparateCompilerVisitor___nit__abstract_compiler__AbstractCompilerVisitor__equal_test(var_v, var227, var228);
 }
-var_res = var272;
-if (varonce273) {
-var274 = varonce273;
+var_res = var229;
+if (unlikely(varonce230==NULL)) {
+var231 = NEW_standard__NativeArray(2l, &type_standard__NativeArray__standard__String);
+if (likely(varonce232!=NULL)) {
+var233 = varonce232;
 } else {
-var275 = "!";
-var276 = 1;
-var277 = standard___standard__NativeString___to_s_with_length(var275, var276);
-var274 = var277;
-varonce273 = var274;
+var234 = "!";
+var235 = standard___standard__NativeString___to_s_with_length(var234, 1l);
+var233 = var235;
+varonce232 = var233;
 }
-var278 = NEW_standard__Array(&type_standard__Array__standard__Object);
-{ /* var278 = array_instance Array[Object] */
-var279 = 2;
-var280 = NEW_standard__NativeArray(var279, &type_standard__NativeArray__standard__Object);
-((struct instance_standard__NativeArray*)var280)->values[0] = (val*) var274;
-((struct instance_standard__NativeArray*)var280)->values[1] = (val*) var_res;
-{
-((void (*)(val* self, val* p0, long p1))(var278->class->vft[COLOR_standard__array__Array__with_native]))(var278, var280, var279) /* with_native on <var278:Array[Object]>*/;
+((struct instance_standard__NativeArray*)var231)->values[0]=var233;
+} else {
+var231 = varonce230;
+varonce230 = NULL;
 }
+{
+var236 = ((val*(*)(val* self))(var_res->class->vft[COLOR_standard__string__Object__to_s]))(var_res); /* to_s on <var_res:RuntimeVariable>*/
 }
+((struct instance_standard__NativeArray*)var231)->values[1]=var236;
 {
-var281 = ((val* (*)(val* self))(var278->class->vft[COLOR_standard__string__Object__to_s]))(var278) /* to_s on <var278:Array[Object]>*/;
+var237 = ((val*(*)(val* self))(var231->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var231); /* native_to_s on <var231:NativeArray[String]>*/
 }
+varonce230 = var231;
 if (unlikely(var_ret == NULL)) {
 PRINT_ERROR("Runtime error: %s", "Cast failed");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 2007);
-show_backtrace(1);
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 2126);
+fatal_exit(1);
 }
 {
-var282 = nit___nit__AbstractCompilerVisitor___new_expr(var_v, var281, var_ret);
+var238 = nit___nit__AbstractCompilerVisitor___new_expr(var_v, var237, var_ret);
 }
 {
-nit___nit__AbstractCompilerVisitor___ret(var_v, var282); /* Direct call abstract_compiler#AbstractCompilerVisitor#ret on <var_v:AbstractCompilerVisitor>*/
+nit___nit__AbstractCompilerVisitor___ret(var_v, var238); /* Direct call abstract_compiler#AbstractCompilerVisitor#ret on <var_v:AbstractCompilerVisitor>*/
 }
-var283 = 1;
-var = var283;
+var = 1;
 goto RET_LABEL;
 } else {
-if (varonce284) {
-var285 = varonce284;
+if (likely(varonce239!=NULL)) {
+var240 = varonce239;
 } else {
-var286 = "<";
-var287 = 1;
-var288 = standard___standard__NativeString___to_s_with_length(var286, var287);
-var285 = var288;
-varonce284 = var285;
+var241 = "<";
+var242 = standard___standard__NativeString___to_s_with_length(var241, 1l);
+var240 = var242;
+varonce239 = var240;
 }
 {
-var289 = ((short int (*)(val* self, val* p0))(var_pname->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_pname, var285) /* == on <var_pname:String>*/;
+var243 = ((short int(*)(val* self, val* p0))(var_pname->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_pname, var240); /* == on <var_pname:String>*/
 }
-if (var289){
-var290 = 0;
-{
-var291 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var_arguments, var290);
+if (var243){
+if (unlikely(varonce244==NULL)) {
+var245 = NEW_standard__NativeArray(3l, &type_standard__NativeArray__standard__String);
+if (likely(varonce246!=NULL)) {
+var247 = varonce246;
+} else {
+var248 = " < ";
+var249 = standard___standard__NativeString___to_s_with_length(var248, 3l);
+var247 = var249;
+varonce246 = var247;
 }
-if (varonce292) {
-var293 = varonce292;
+((struct instance_standard__NativeArray*)var245)->values[1]=var247;
 } else {
-var294 = " < ";
-var295 = 3;
-var296 = standard___standard__NativeString___to_s_with_length(var294, var295);
-var293 = var296;
-varonce292 = var293;
+var245 = varonce244;
+varonce244 = NULL;
+}
+{
+var250 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var_arguments, 0l);
 }
-var297 = 1;
 {
-var298 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var_arguments, var297);
+var251 = ((val*(*)(val* self))(var250->class->vft[COLOR_standard__string__Object__to_s]))(var250); /* to_s on <var250:nullable Object(RuntimeVariable)>*/
 }
-var299 = NEW_standard__Array(&type_standard__Array__standard__Object);
-{ /* var299 = array_instance Array[Object] */
-var300 = 3;
-var301 = NEW_standard__NativeArray(var300, &type_standard__NativeArray__standard__Object);
-((struct instance_standard__NativeArray*)var301)->values[0] = (val*) var291;
-((struct instance_standard__NativeArray*)var301)->values[1] = (val*) var293;
-((struct instance_standard__NativeArray*)var301)->values[2] = (val*) var298;
+((struct instance_standard__NativeArray*)var245)->values[0]=var251;
 {
-((void (*)(val* self, val* p0, long p1))(var299->class->vft[COLOR_standard__array__Array__with_native]))(var299, var301, var300) /* with_native on <var299:Array[Object]>*/;
+var252 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var_arguments, 1l);
 }
+{
+var253 = ((val*(*)(val* self))(var252->class->vft[COLOR_standard__string__Object__to_s]))(var252); /* to_s on <var252:nullable Object(RuntimeVariable)>*/
 }
+((struct instance_standard__NativeArray*)var245)->values[2]=var253;
 {
-var302 = ((val* (*)(val* self))(var299->class->vft[COLOR_standard__string__Object__to_s]))(var299) /* to_s on <var299:Array[Object]>*/;
+var254 = ((val*(*)(val* self))(var245->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var245); /* native_to_s on <var245:NativeArray[String]>*/
 }
+varonce244 = var245;
 if (unlikely(var_ret == NULL)) {
 PRINT_ERROR("Runtime error: %s", "Cast failed");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 2010);
-show_backtrace(1);
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 2129);
+fatal_exit(1);
 }
 {
-var303 = nit___nit__AbstractCompilerVisitor___new_expr(var_v, var302, var_ret);
+var255 = nit___nit__AbstractCompilerVisitor___new_expr(var_v, var254, var_ret);
 }
 {
-nit___nit__AbstractCompilerVisitor___ret(var_v, var303); /* Direct call abstract_compiler#AbstractCompilerVisitor#ret on <var_v:AbstractCompilerVisitor>*/
+nit___nit__AbstractCompilerVisitor___ret(var_v, var255); /* Direct call abstract_compiler#AbstractCompilerVisitor#ret on <var_v:AbstractCompilerVisitor>*/
 }
-var304 = 1;
-var = var304;
+var = 1;
 goto RET_LABEL;
 } else {
-if (varonce305) {
-var306 = varonce305;
+if (likely(varonce256!=NULL)) {
+var257 = varonce256;
 } else {
-var307 = ">";
-var308 = 1;
-var309 = standard___standard__NativeString___to_s_with_length(var307, var308);
-var306 = var309;
-varonce305 = var306;
+var258 = ">";
+var259 = standard___standard__NativeString___to_s_with_length(var258, 1l);
+var257 = var259;
+varonce256 = var257;
 }
 {
-var310 = ((short int (*)(val* self, val* p0))(var_pname->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_pname, var306) /* == on <var_pname:String>*/;
+var260 = ((short int(*)(val* self, val* p0))(var_pname->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_pname, var257); /* == on <var_pname:String>*/
 }
-if (var310){
-var311 = 0;
-{
-var312 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var_arguments, var311);
+if (var260){
+if (unlikely(varonce261==NULL)) {
+var262 = NEW_standard__NativeArray(3l, &type_standard__NativeArray__standard__String);
+if (likely(varonce263!=NULL)) {
+var264 = varonce263;
+} else {
+var265 = " > ";
+var266 = standard___standard__NativeString___to_s_with_length(var265, 3l);
+var264 = var266;
+varonce263 = var264;
 }
-if (varonce313) {
-var314 = varonce313;
+((struct instance_standard__NativeArray*)var262)->values[1]=var264;
 } else {
-var315 = " > ";
-var316 = 3;
-var317 = standard___standard__NativeString___to_s_with_length(var315, var316);
-var314 = var317;
-varonce313 = var314;
+var262 = varonce261;
+varonce261 = NULL;
+}
+{
+var267 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var_arguments, 0l);
 }
-var318 = 1;
 {
-var319 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var_arguments, var318);
+var268 = ((val*(*)(val* self))(var267->class->vft[COLOR_standard__string__Object__to_s]))(var267); /* to_s on <var267:nullable Object(RuntimeVariable)>*/
 }
-var320 = NEW_standard__Array(&type_standard__Array__standard__Object);
-{ /* var320 = array_instance Array[Object] */
-var321 = 3;
-var322 = NEW_standard__NativeArray(var321, &type_standard__NativeArray__standard__Object);
-((struct instance_standard__NativeArray*)var322)->values[0] = (val*) var312;
-((struct instance_standard__NativeArray*)var322)->values[1] = (val*) var314;
-((struct instance_standard__NativeArray*)var322)->values[2] = (val*) var319;
+((struct instance_standard__NativeArray*)var262)->values[0]=var268;
 {
-((void (*)(val* self, val* p0, long p1))(var320->class->vft[COLOR_standard__array__Array__with_native]))(var320, var322, var321) /* with_native on <var320:Array[Object]>*/;
+var269 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var_arguments, 1l);
 }
+{
+var270 = ((val*(*)(val* self))(var269->class->vft[COLOR_standard__string__Object__to_s]))(var269); /* to_s on <var269:nullable Object(RuntimeVariable)>*/
 }
+((struct instance_standard__NativeArray*)var262)->values[2]=var270;
 {
-var323 = ((val* (*)(val* self))(var320->class->vft[COLOR_standard__string__Object__to_s]))(var320) /* to_s on <var320:Array[Object]>*/;
+var271 = ((val*(*)(val* self))(var262->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var262); /* native_to_s on <var262:NativeArray[String]>*/
 }
+varonce261 = var262;
 if (unlikely(var_ret == NULL)) {
 PRINT_ERROR("Runtime error: %s", "Cast failed");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 2013);
-show_backtrace(1);
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 2132);
+fatal_exit(1);
 }
 {
-var324 = nit___nit__AbstractCompilerVisitor___new_expr(var_v, var323, var_ret);
+var272 = nit___nit__AbstractCompilerVisitor___new_expr(var_v, var271, var_ret);
 }
 {
-nit___nit__AbstractCompilerVisitor___ret(var_v, var324); /* Direct call abstract_compiler#AbstractCompilerVisitor#ret on <var_v:AbstractCompilerVisitor>*/
+nit___nit__AbstractCompilerVisitor___ret(var_v, var272); /* Direct call abstract_compiler#AbstractCompilerVisitor#ret on <var_v:AbstractCompilerVisitor>*/
 }
-var325 = 1;
-var = var325;
+var = 1;
 goto RET_LABEL;
 } else {
-if (varonce326) {
-var327 = varonce326;
+if (likely(varonce273!=NULL)) {
+var274 = varonce273;
 } else {
-var328 = "<=";
-var329 = 2;
-var330 = standard___standard__NativeString___to_s_with_length(var328, var329);
-var327 = var330;
-varonce326 = var327;
+var275 = "<=";
+var276 = standard___standard__NativeString___to_s_with_length(var275, 2l);
+var274 = var276;
+varonce273 = var274;
 }
 {
-var331 = ((short int (*)(val* self, val* p0))(var_pname->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_pname, var327) /* == on <var_pname:String>*/;
+var277 = ((short int(*)(val* self, val* p0))(var_pname->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_pname, var274); /* == on <var_pname:String>*/
 }
-if (var331){
-var332 = 0;
-{
-var333 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var_arguments, var332);
+if (var277){
+if (unlikely(varonce278==NULL)) {
+var279 = NEW_standard__NativeArray(3l, &type_standard__NativeArray__standard__String);
+if (likely(varonce280!=NULL)) {
+var281 = varonce280;
+} else {
+var282 = " <= ";
+var283 = standard___standard__NativeString___to_s_with_length(var282, 4l);
+var281 = var283;
+varonce280 = var281;
 }
-if (varonce334) {
-var335 = varonce334;
+((struct instance_standard__NativeArray*)var279)->values[1]=var281;
 } else {
-var336 = " <= ";
-var337 = 4;
-var338 = standard___standard__NativeString___to_s_with_length(var336, var337);
-var335 = var338;
-varonce334 = var335;
+var279 = varonce278;
+varonce278 = NULL;
+}
+{
+var284 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var_arguments, 0l);
 }
-var339 = 1;
 {
-var340 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var_arguments, var339);
+var285 = ((val*(*)(val* self))(var284->class->vft[COLOR_standard__string__Object__to_s]))(var284); /* to_s on <var284:nullable Object(RuntimeVariable)>*/
 }
-var341 = NEW_standard__Array(&type_standard__Array__standard__Object);
-{ /* var341 = array_instance Array[Object] */
-var342 = 3;
-var343 = NEW_standard__NativeArray(var342, &type_standard__NativeArray__standard__Object);
-((struct instance_standard__NativeArray*)var343)->values[0] = (val*) var333;
-((struct instance_standard__NativeArray*)var343)->values[1] = (val*) var335;
-((struct instance_standard__NativeArray*)var343)->values[2] = (val*) var340;
+((struct instance_standard__NativeArray*)var279)->values[0]=var285;
 {
-((void (*)(val* self, val* p0, long p1))(var341->class->vft[COLOR_standard__array__Array__with_native]))(var341, var343, var342) /* with_native on <var341:Array[Object]>*/;
+var286 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var_arguments, 1l);
 }
+{
+var287 = ((val*(*)(val* self))(var286->class->vft[COLOR_standard__string__Object__to_s]))(var286); /* to_s on <var286:nullable Object(RuntimeVariable)>*/
 }
+((struct instance_standard__NativeArray*)var279)->values[2]=var287;
 {
-var344 = ((val* (*)(val* self))(var341->class->vft[COLOR_standard__string__Object__to_s]))(var341) /* to_s on <var341:Array[Object]>*/;
+var288 = ((val*(*)(val* self))(var279->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var279); /* native_to_s on <var279:NativeArray[String]>*/
 }
+varonce278 = var279;
 if (unlikely(var_ret == NULL)) {
 PRINT_ERROR("Runtime error: %s", "Cast failed");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 2016);
-show_backtrace(1);
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 2135);
+fatal_exit(1);
 }
 {
-var345 = nit___nit__AbstractCompilerVisitor___new_expr(var_v, var344, var_ret);
+var289 = nit___nit__AbstractCompilerVisitor___new_expr(var_v, var288, var_ret);
 }
 {
-nit___nit__AbstractCompilerVisitor___ret(var_v, var345); /* Direct call abstract_compiler#AbstractCompilerVisitor#ret on <var_v:AbstractCompilerVisitor>*/
+nit___nit__AbstractCompilerVisitor___ret(var_v, var289); /* Direct call abstract_compiler#AbstractCompilerVisitor#ret on <var_v:AbstractCompilerVisitor>*/
 }
-var346 = 1;
-var = var346;
+var = 1;
 goto RET_LABEL;
 } else {
-if (varonce347) {
-var348 = varonce347;
+if (likely(varonce290!=NULL)) {
+var291 = varonce290;
 } else {
-var349 = ">=";
-var350 = 2;
-var351 = standard___standard__NativeString___to_s_with_length(var349, var350);
-var348 = var351;
-varonce347 = var348;
+var292 = ">=";
+var293 = standard___standard__NativeString___to_s_with_length(var292, 2l);
+var291 = var293;
+varonce290 = var291;
 }
 {
-var352 = ((short int (*)(val* self, val* p0))(var_pname->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_pname, var348) /* == on <var_pname:String>*/;
+var294 = ((short int(*)(val* self, val* p0))(var_pname->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_pname, var291); /* == on <var_pname:String>*/
 }
-if (var352){
-var353 = 0;
-{
-var354 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var_arguments, var353);
+if (var294){
+if (unlikely(varonce295==NULL)) {
+var296 = NEW_standard__NativeArray(3l, &type_standard__NativeArray__standard__String);
+if (likely(varonce297!=NULL)) {
+var298 = varonce297;
+} else {
+var299 = " >= ";
+var300 = standard___standard__NativeString___to_s_with_length(var299, 4l);
+var298 = var300;
+varonce297 = var298;
 }
-if (varonce355) {
-var356 = varonce355;
+((struct instance_standard__NativeArray*)var296)->values[1]=var298;
 } else {
-var357 = " >= ";
-var358 = 4;
-var359 = standard___standard__NativeString___to_s_with_length(var357, var358);
-var356 = var359;
-varonce355 = var356;
+var296 = varonce295;
+varonce295 = NULL;
+}
+{
+var301 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var_arguments, 0l);
 }
-var360 = 1;
 {
-var361 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var_arguments, var360);
+var302 = ((val*(*)(val* self))(var301->class->vft[COLOR_standard__string__Object__to_s]))(var301); /* to_s on <var301:nullable Object(RuntimeVariable)>*/
 }
-var362 = NEW_standard__Array(&type_standard__Array__standard__Object);
-{ /* var362 = array_instance Array[Object] */
-var363 = 3;
-var364 = NEW_standard__NativeArray(var363, &type_standard__NativeArray__standard__Object);
-((struct instance_standard__NativeArray*)var364)->values[0] = (val*) var354;
-((struct instance_standard__NativeArray*)var364)->values[1] = (val*) var356;
-((struct instance_standard__NativeArray*)var364)->values[2] = (val*) var361;
+((struct instance_standard__NativeArray*)var296)->values[0]=var302;
 {
-((void (*)(val* self, val* p0, long p1))(var362->class->vft[COLOR_standard__array__Array__with_native]))(var362, var364, var363) /* with_native on <var362:Array[Object]>*/;
+var303 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var_arguments, 1l);
 }
+{
+var304 = ((val*(*)(val* self))(var303->class->vft[COLOR_standard__string__Object__to_s]))(var303); /* to_s on <var303:nullable Object(RuntimeVariable)>*/
 }
+((struct instance_standard__NativeArray*)var296)->values[2]=var304;
 {
-var365 = ((val* (*)(val* self))(var362->class->vft[COLOR_standard__string__Object__to_s]))(var362) /* to_s on <var362:Array[Object]>*/;
+var305 = ((val*(*)(val* self))(var296->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var296); /* native_to_s on <var296:NativeArray[String]>*/
 }
+varonce295 = var296;
 if (unlikely(var_ret == NULL)) {
 PRINT_ERROR("Runtime error: %s", "Cast failed");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 2019);
-show_backtrace(1);
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 2138);
+fatal_exit(1);
 }
 {
-var366 = nit___nit__AbstractCompilerVisitor___new_expr(var_v, var365, var_ret);
+var306 = nit___nit__AbstractCompilerVisitor___new_expr(var_v, var305, var_ret);
 }
 {
-nit___nit__AbstractCompilerVisitor___ret(var_v, var366); /* Direct call abstract_compiler#AbstractCompilerVisitor#ret on <var_v:AbstractCompilerVisitor>*/
+nit___nit__AbstractCompilerVisitor___ret(var_v, var306); /* Direct call abstract_compiler#AbstractCompilerVisitor#ret on <var_v:AbstractCompilerVisitor>*/
 }
-var367 = 1;
-var = var367;
+var = 1;
 goto RET_LABEL;
 } else {
-if (varonce368) {
-var369 = varonce368;
+if (likely(varonce307!=NULL)) {
+var308 = varonce307;
 } else {
-var370 = "to_f";
-var371 = 4;
-var372 = standard___standard__NativeString___to_s_with_length(var370, var371);
-var369 = var372;
-varonce368 = var369;
+var309 = "to_f";
+var310 = standard___standard__NativeString___to_s_with_length(var309, 4l);
+var308 = var310;
+varonce307 = var308;
 }
 {
-var373 = ((short int (*)(val* self, val* p0))(var_pname->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_pname, var369) /* == on <var_pname:String>*/;
+var311 = ((short int(*)(val* self, val* p0))(var_pname->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_pname, var308); /* == on <var_pname:String>*/
 }
-if (var373){
-if (varonce374) {
-var375 = varonce374;
+if (var311){
+if (unlikely(varonce312==NULL)) {
+var313 = NEW_standard__NativeArray(2l, &type_standard__NativeArray__standard__String);
+if (likely(varonce314!=NULL)) {
+var315 = varonce314;
 } else {
-var376 = "(double)";
-var377 = 8;
-var378 = standard___standard__NativeString___to_s_with_length(var376, var377);
-var375 = var378;
-varonce374 = var375;
+var316 = "(double)";
+var317 = standard___standard__NativeString___to_s_with_length(var316, 8l);
+var315 = var317;
+varonce314 = var315;
 }
-var379 = 0;
-{
-var380 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var_arguments, var379);
+((struct instance_standard__NativeArray*)var313)->values[0]=var315;
+} else {
+var313 = varonce312;
+varonce312 = NULL;
 }
-var381 = NEW_standard__Array(&type_standard__Array__standard__Object);
-{ /* var381 = array_instance Array[Object] */
-var382 = 2;
-var383 = NEW_standard__NativeArray(var382, &type_standard__NativeArray__standard__Object);
-((struct instance_standard__NativeArray*)var383)->values[0] = (val*) var375;
-((struct instance_standard__NativeArray*)var383)->values[1] = (val*) var380;
 {
-((void (*)(val* self, val* p0, long p1))(var381->class->vft[COLOR_standard__array__Array__with_native]))(var381, var383, var382) /* with_native on <var381:Array[Object]>*/;
+var318 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var_arguments, 0l);
 }
+{
+var319 = ((val*(*)(val* self))(var318->class->vft[COLOR_standard__string__Object__to_s]))(var318); /* to_s on <var318:nullable Object(RuntimeVariable)>*/
 }
+((struct instance_standard__NativeArray*)var313)->values[1]=var319;
 {
-var384 = ((val* (*)(val* self))(var381->class->vft[COLOR_standard__string__Object__to_s]))(var381) /* to_s on <var381:Array[Object]>*/;
+var320 = ((val*(*)(val* self))(var313->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var313); /* native_to_s on <var313:NativeArray[String]>*/
 }
+varonce312 = var313;
 if (unlikely(var_ret == NULL)) {
 PRINT_ERROR("Runtime error: %s", "Cast failed");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 2022);
-show_backtrace(1);
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 2141);
+fatal_exit(1);
 }
 {
-var385 = nit___nit__AbstractCompilerVisitor___new_expr(var_v, var384, var_ret);
+var321 = nit___nit__AbstractCompilerVisitor___new_expr(var_v, var320, var_ret);
 }
 {
-nit___nit__AbstractCompilerVisitor___ret(var_v, var385); /* Direct call abstract_compiler#AbstractCompilerVisitor#ret on <var_v:AbstractCompilerVisitor>*/
+nit___nit__AbstractCompilerVisitor___ret(var_v, var321); /* Direct call abstract_compiler#AbstractCompilerVisitor#ret on <var_v:AbstractCompilerVisitor>*/
 }
-var386 = 1;
-var = var386;
+var = 1;
 goto RET_LABEL;
 } else {
-if (varonce387) {
-var388 = varonce387;
+if (likely(varonce322!=NULL)) {
+var323 = varonce322;
+} else {
+var324 = "to_b";
+var325 = standard___standard__NativeString___to_s_with_length(var324, 4l);
+var323 = var325;
+varonce322 = var323;
+}
+{
+var326 = ((short int(*)(val* self, val* p0))(var_pname->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_pname, var323); /* == on <var_pname:String>*/
+}
+if (var326){
+if (unlikely(varonce327==NULL)) {
+var328 = NEW_standard__NativeArray(2l, &type_standard__NativeArray__standard__String);
+if (likely(varonce329!=NULL)) {
+var330 = varonce329;
+} else {
+var331 = "(unsigned char)";
+var332 = standard___standard__NativeString___to_s_with_length(var331, 15l);
+var330 = var332;
+varonce329 = var330;
+}
+((struct instance_standard__NativeArray*)var328)->values[0]=var330;
 } else {
-var389 = "ascii";
-var390 = 5;
-var391 = standard___standard__NativeString___to_s_with_length(var389, var390);
-var388 = var391;
-varonce387 = var388;
+var328 = varonce327;
+varonce327 = NULL;
+}
+{
+var333 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var_arguments, 0l);
+}
+{
+var334 = ((val*(*)(val* self))(var333->class->vft[COLOR_standard__string__Object__to_s]))(var333); /* to_s on <var333:nullable Object(RuntimeVariable)>*/
+}
+((struct instance_standard__NativeArray*)var328)->values[1]=var334;
+{
+var335 = ((val*(*)(val* self))(var328->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var328); /* native_to_s on <var328:NativeArray[String]>*/
+}
+varonce327 = var328;
+if (unlikely(var_ret == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Cast failed");
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 2144);
+fatal_exit(1);
+}
+{
+var336 = nit___nit__AbstractCompilerVisitor___new_expr(var_v, var335, var_ret);
 }
 {
-var392 = ((short int (*)(val* self, val* p0))(var_pname->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_pname, var388) /* == on <var_pname:String>*/;
+nit___nit__AbstractCompilerVisitor___ret(var_v, var336); /* Direct call abstract_compiler#AbstractCompilerVisitor#ret on <var_v:AbstractCompilerVisitor>*/
+}
+var = 1;
+goto RET_LABEL;
+} else {
+if (likely(varonce337!=NULL)) {
+var338 = varonce337;
+} else {
+var339 = "ascii";
+var340 = standard___standard__NativeString___to_s_with_length(var339, 5l);
+var338 = var340;
+varonce337 = var338;
 }
-if (var392){
-var393 = 0;
 {
-var394 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var_arguments, var393);
+var341 = ((short int(*)(val* self, val* p0))(var_pname->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_pname, var338); /* == on <var_pname:String>*/
+}
+if (var341){
+if (unlikely(varonce342==NULL)) {
+var343 = NEW_standard__NativeArray(2l, &type_standard__NativeArray__standard__String);
+if (likely(varonce344!=NULL)) {
+var345 = varonce344;
+} else {
+var346 = "(uint32_t)";
+var347 = standard___standard__NativeString___to_s_with_length(var346, 10l);
+var345 = var347;
+varonce344 = var345;
+}
+((struct instance_standard__NativeArray*)var343)->values[0]=var345;
+} else {
+var343 = varonce342;
+varonce342 = NULL;
 }
-var395 = NEW_standard__Array(&type_standard__Array__standard__Object);
-{ /* var395 = array_instance Array[Object] */
-var396 = 1;
-var397 = NEW_standard__NativeArray(var396, &type_standard__NativeArray__standard__Object);
-((struct instance_standard__NativeArray*)var397)->values[0] = (val*) var394;
 {
-((void (*)(val* self, val* p0, long p1))(var395->class->vft[COLOR_standard__array__Array__with_native]))(var395, var397, var396) /* with_native on <var395:Array[Object]>*/;
+var348 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var_arguments, 0l);
 }
+{
+var349 = ((val*(*)(val* self))(var348->class->vft[COLOR_standard__string__Object__to_s]))(var348); /* to_s on <var348:nullable Object(RuntimeVariable)>*/
 }
+((struct instance_standard__NativeArray*)var343)->values[1]=var349;
 {
-var398 = ((val* (*)(val* self))(var395->class->vft[COLOR_standard__string__Object__to_s]))(var395) /* to_s on <var395:Array[Object]>*/;
+var350 = ((val*(*)(val* self))(var343->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var343); /* native_to_s on <var343:NativeArray[String]>*/
 }
+varonce342 = var343;
 if (unlikely(var_ret == NULL)) {
 PRINT_ERROR("Runtime error: %s", "Cast failed");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 2025);
-show_backtrace(1);
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 2147);
+fatal_exit(1);
 }
 {
-var399 = nit___nit__AbstractCompilerVisitor___new_expr(var_v, var398, var_ret);
+var351 = nit___nit__AbstractCompilerVisitor___new_expr(var_v, var350, var_ret);
 }
 {
-nit___nit__AbstractCompilerVisitor___ret(var_v, var399); /* Direct call abstract_compiler#AbstractCompilerVisitor#ret on <var_v:AbstractCompilerVisitor>*/
+nit___nit__AbstractCompilerVisitor___ret(var_v, var351); /* Direct call abstract_compiler#AbstractCompilerVisitor#ret on <var_v:AbstractCompilerVisitor>*/
 }
-var400 = 1;
-var = var400;
+var = 1;
 goto RET_LABEL;
 } else {
 }
@@ -2604,681 +2761,668 @@ goto RET_LABEL;
 }
 }
 }
+}
+}
 } else {
-if (varonce401) {
-var402 = varonce401;
+if (likely(varonce352!=NULL)) {
+var353 = varonce352;
 } else {
-var403 = "Char";
-var404 = 4;
-var405 = standard___standard__NativeString___to_s_with_length(var403, var404);
-var402 = var405;
-varonce401 = var402;
+var354 = "Char";
+var355 = standard___standard__NativeString___to_s_with_length(var354, 4l);
+var353 = var355;
+varonce352 = var353;
 }
 {
-var406 = ((short int (*)(val* self, val* p0))(var_cname->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_cname, var402) /* == on <var_cname:String>*/;
+var356 = ((short int(*)(val* self, val* p0))(var_cname->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_cname, var353); /* == on <var_cname:String>*/
 }
-if (var406){
-if (varonce407) {
-var408 = varonce407;
+if (var356){
+if (likely(varonce357!=NULL)) {
+var358 = varonce357;
 } else {
-var409 = "output";
-var410 = 6;
-var411 = standard___standard__NativeString___to_s_with_length(var409, var410);
-var408 = var411;
-varonce407 = var408;
+var359 = "output";
+var360 = standard___standard__NativeString___to_s_with_length(var359, 6l);
+var358 = var360;
+varonce357 = var358;
 }
 {
-var412 = ((short int (*)(val* self, val* p0))(var_pname->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_pname, var408) /* == on <var_pname:String>*/;
+var361 = ((short int(*)(val* self, val* p0))(var_pname->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_pname, var358); /* == on <var_pname:String>*/
 }
-if (var412){
-if (varonce413) {
-var414 = varonce413;
+if (var361){
+if (unlikely(varonce362==NULL)) {
+var363 = NEW_standard__NativeArray(3l, &type_standard__NativeArray__standard__String);
+if (likely(varonce364!=NULL)) {
+var365 = varonce364;
 } else {
-var415 = "printf(\"%c\", ";
-var416 = 13;
-var417 = standard___standard__NativeString___to_s_with_length(var415, var416);
-var414 = var417;
-varonce413 = var414;
+var366 = "printf(\"%c\", ((unsigned char)";
+var367 = standard___standard__NativeString___to_s_with_length(var366, 29l);
+var365 = var367;
+varonce364 = var365;
 }
-{
-var418 = standard___standard__SequenceRead___Collection__first(var_arguments);
+((struct instance_standard__NativeArray*)var363)->values[0]=var365;
+if (likely(varonce368!=NULL)) {
+var369 = varonce368;
+} else {
+var370 = "));";
+var371 = standard___standard__NativeString___to_s_with_length(var370, 3l);
+var369 = var371;
+varonce368 = var369;
 }
-if (varonce419) {
-var420 = varonce419;
+((struct instance_standard__NativeArray*)var363)->values[2]=var369;
 } else {
-var421 = ");";
-var422 = 2;
-var423 = standard___standard__NativeString___to_s_with_length(var421, var422);
-var420 = var423;
-varonce419 = var420;
+var363 = varonce362;
+varonce362 = NULL;
 }
-var424 = NEW_standard__Array(&type_standard__Array__standard__Object);
-{ /* var424 = array_instance Array[Object] */
-var425 = 3;
-var426 = NEW_standard__NativeArray(var425, &type_standard__NativeArray__standard__Object);
-((struct instance_standard__NativeArray*)var426)->values[0] = (val*) var414;
-((struct instance_standard__NativeArray*)var426)->values[1] = (val*) var418;
-((struct instance_standard__NativeArray*)var426)->values[2] = (val*) var420;
 {
-((void (*)(val* self, val* p0, long p1))(var424->class->vft[COLOR_standard__array__Array__with_native]))(var424, var426, var425) /* with_native on <var424:Array[Object]>*/;
+var372 = standard___standard__SequenceRead___Collection__first(var_arguments);
 }
+{
+var373 = ((val*(*)(val* self))(var372->class->vft[COLOR_standard__string__Object__to_s]))(var372); /* to_s on <var372:nullable Object(RuntimeVariable)>*/
 }
+((struct instance_standard__NativeArray*)var363)->values[1]=var373;
 {
-var427 = ((val* (*)(val* self))(var424->class->vft[COLOR_standard__string__Object__to_s]))(var424) /* to_s on <var424:Array[Object]>*/;
+var374 = ((val*(*)(val* self))(var363->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var363); /* native_to_s on <var363:NativeArray[String]>*/
 }
+varonce362 = var363;
 {
-nit___nit__AbstractCompilerVisitor___add(var_v, var427); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <var_v:AbstractCompilerVisitor>*/
+nit___nit__AbstractCompilerVisitor___add(var_v, var374); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <var_v:AbstractCompilerVisitor>*/
 }
-var428 = 1;
-var = var428;
+var = 1;
 goto RET_LABEL;
 } else {
-if (varonce429) {
-var430 = varonce429;
+if (likely(varonce375!=NULL)) {
+var376 = varonce375;
 } else {
-var431 = "object_id";
-var432 = 9;
-var433 = standard___standard__NativeString___to_s_with_length(var431, var432);
-var430 = var433;
-varonce429 = var430;
+var377 = "object_id";
+var378 = standard___standard__NativeString___to_s_with_length(var377, 9l);
+var376 = var378;
+varonce375 = var376;
 }
 {
-var434 = ((short int (*)(val* self, val* p0))(var_pname->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_pname, var430) /* == on <var_pname:String>*/;
+var379 = ((short int(*)(val* self, val* p0))(var_pname->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_pname, var376); /* == on <var_pname:String>*/
 }
-if (var434){
-if (varonce435) {
-var436 = varonce435;
+if (var379){
+if (unlikely(varonce380==NULL)) {
+var381 = NEW_standard__NativeArray(2l, &type_standard__NativeArray__standard__String);
+if (likely(varonce382!=NULL)) {
+var383 = varonce382;
 } else {
-var437 = "(long)";
-var438 = 6;
-var439 = standard___standard__NativeString___to_s_with_length(var437, var438);
-var436 = var439;
-varonce435 = var436;
+var384 = "(long)";
+var385 = standard___standard__NativeString___to_s_with_length(var384, 6l);
+var383 = var385;
+varonce382 = var383;
 }
-{
-var440 = standard___standard__SequenceRead___Collection__first(var_arguments);
+((struct instance_standard__NativeArray*)var381)->values[0]=var383;
+} else {
+var381 = varonce380;
+varonce380 = NULL;
 }
-var441 = NEW_standard__Array(&type_standard__Array__standard__Object);
-{ /* var441 = array_instance Array[Object] */
-var442 = 2;
-var443 = NEW_standard__NativeArray(var442, &type_standard__NativeArray__standard__Object);
-((struct instance_standard__NativeArray*)var443)->values[0] = (val*) var436;
-((struct instance_standard__NativeArray*)var443)->values[1] = (val*) var440;
 {
-((void (*)(val* self, val* p0, long p1))(var441->class->vft[COLOR_standard__array__Array__with_native]))(var441, var443, var442) /* with_native on <var441:Array[Object]>*/;
+var386 = standard___standard__SequenceRead___Collection__first(var_arguments);
 }
+{
+var387 = ((val*(*)(val* self))(var386->class->vft[COLOR_standard__string__Object__to_s]))(var386); /* to_s on <var386:nullable Object(RuntimeVariable)>*/
 }
+((struct instance_standard__NativeArray*)var381)->values[1]=var387;
 {
-var444 = ((val* (*)(val* self))(var441->class->vft[COLOR_standard__string__Object__to_s]))(var441) /* to_s on <var441:Array[Object]>*/;
+var388 = ((val*(*)(val* self))(var381->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var381); /* native_to_s on <var381:NativeArray[String]>*/
 }
+varonce380 = var381;
 if (unlikely(var_ret == NULL)) {
 PRINT_ERROR("Runtime error: %s", "Cast failed");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 2033);
-show_backtrace(1);
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 2155);
+fatal_exit(1);
 }
 {
-var445 = nit___nit__AbstractCompilerVisitor___new_expr(var_v, var444, var_ret);
+var389 = nit___nit__AbstractCompilerVisitor___new_expr(var_v, var388, var_ret);
 }
 {
-nit___nit__AbstractCompilerVisitor___ret(var_v, var445); /* Direct call abstract_compiler#AbstractCompilerVisitor#ret on <var_v:AbstractCompilerVisitor>*/
+nit___nit__AbstractCompilerVisitor___ret(var_v, var389); /* Direct call abstract_compiler#AbstractCompilerVisitor#ret on <var_v:AbstractCompilerVisitor>*/
 }
-var446 = 1;
-var = var446;
+var = 1;
 goto RET_LABEL;
 } else {
-if (varonce447) {
-var448 = varonce447;
+if (likely(varonce390!=NULL)) {
+var391 = varonce390;
 } else {
-var449 = "successor";
-var450 = 9;
-var451 = standard___standard__NativeString___to_s_with_length(var449, var450);
-var448 = var451;
-varonce447 = var448;
+var392 = "successor";
+var393 = standard___standard__NativeString___to_s_with_length(var392, 9l);
+var391 = var393;
+varonce390 = var391;
 }
 {
-var452 = ((short int (*)(val* self, val* p0))(var_pname->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_pname, var448) /* == on <var_pname:String>*/;
+var394 = ((short int(*)(val* self, val* p0))(var_pname->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_pname, var391); /* == on <var_pname:String>*/
 }
-if (var452){
-var453 = 0;
-{
-var454 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var_arguments, var453);
+if (var394){
+if (unlikely(varonce395==NULL)) {
+var396 = NEW_standard__NativeArray(3l, &type_standard__NativeArray__standard__String);
+if (likely(varonce397!=NULL)) {
+var398 = varonce397;
+} else {
+var399 = " + ";
+var400 = standard___standard__NativeString___to_s_with_length(var399, 3l);
+var398 = var400;
+varonce397 = var398;
 }
-if (varonce455) {
-var456 = varonce455;
+((struct instance_standard__NativeArray*)var396)->values[1]=var398;
 } else {
-var457 = " + ";
-var458 = 3;
-var459 = standard___standard__NativeString___to_s_with_length(var457, var458);
-var456 = var459;
-varonce455 = var456;
+var396 = varonce395;
+varonce395 = NULL;
+}
+{
+var401 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var_arguments, 0l);
 }
-var460 = 1;
 {
-var461 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var_arguments, var460);
+var402 = ((val*(*)(val* self))(var401->class->vft[COLOR_standard__string__Object__to_s]))(var401); /* to_s on <var401:nullable Object(RuntimeVariable)>*/
 }
-var462 = NEW_standard__Array(&type_standard__Array__standard__Object);
-{ /* var462 = array_instance Array[Object] */
-var463 = 3;
-var464 = NEW_standard__NativeArray(var463, &type_standard__NativeArray__standard__Object);
-((struct instance_standard__NativeArray*)var464)->values[0] = (val*) var454;
-((struct instance_standard__NativeArray*)var464)->values[1] = (val*) var456;
-((struct instance_standard__NativeArray*)var464)->values[2] = (val*) var461;
+((struct instance_standard__NativeArray*)var396)->values[0]=var402;
 {
-((void (*)(val* self, val* p0, long p1))(var462->class->vft[COLOR_standard__array__Array__with_native]))(var462, var464, var463) /* with_native on <var462:Array[Object]>*/;
+var403 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var_arguments, 1l);
 }
+{
+var404 = ((val*(*)(val* self))(var403->class->vft[COLOR_standard__string__Object__to_s]))(var403); /* to_s on <var403:nullable Object(RuntimeVariable)>*/
 }
+((struct instance_standard__NativeArray*)var396)->values[2]=var404;
 {
-var465 = ((val* (*)(val* self))(var462->class->vft[COLOR_standard__string__Object__to_s]))(var462) /* to_s on <var462:Array[Object]>*/;
+var405 = ((val*(*)(val* self))(var396->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var396); /* native_to_s on <var396:NativeArray[String]>*/
 }
+varonce395 = var396;
 if (unlikely(var_ret == NULL)) {
 PRINT_ERROR("Runtime error: %s", "Cast failed");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 2036);
-show_backtrace(1);
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 2158);
+fatal_exit(1);
 }
 {
-var466 = nit___nit__AbstractCompilerVisitor___new_expr(var_v, var465, var_ret);
+var406 = nit___nit__AbstractCompilerVisitor___new_expr(var_v, var405, var_ret);
 }
 {
-nit___nit__AbstractCompilerVisitor___ret(var_v, var466); /* Direct call abstract_compiler#AbstractCompilerVisitor#ret on <var_v:AbstractCompilerVisitor>*/
+nit___nit__AbstractCompilerVisitor___ret(var_v, var406); /* Direct call abstract_compiler#AbstractCompilerVisitor#ret on <var_v:AbstractCompilerVisitor>*/
 }
-var467 = 1;
-var = var467;
+var = 1;
 goto RET_LABEL;
 } else {
-if (varonce468) {
-var469 = varonce468;
+if (likely(varonce407!=NULL)) {
+var408 = varonce407;
 } else {
-var470 = "predecessor";
-var471 = 11;
-var472 = standard___standard__NativeString___to_s_with_length(var470, var471);
-var469 = var472;
-varonce468 = var469;
+var409 = "predecessor";
+var410 = standard___standard__NativeString___to_s_with_length(var409, 11l);
+var408 = var410;
+varonce407 = var408;
 }
 {
-var473 = ((short int (*)(val* self, val* p0))(var_pname->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_pname, var469) /* == on <var_pname:String>*/;
+var411 = ((short int(*)(val* self, val* p0))(var_pname->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_pname, var408); /* == on <var_pname:String>*/
 }
-if (var473){
-var474 = 0;
-{
-var475 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var_arguments, var474);
+if (var411){
+if (unlikely(varonce412==NULL)) {
+var413 = NEW_standard__NativeArray(3l, &type_standard__NativeArray__standard__String);
+if (likely(varonce414!=NULL)) {
+var415 = varonce414;
+} else {
+var416 = " - ";
+var417 = standard___standard__NativeString___to_s_with_length(var416, 3l);
+var415 = var417;
+varonce414 = var415;
 }
-if (varonce476) {
-var477 = varonce476;
+((struct instance_standard__NativeArray*)var413)->values[1]=var415;
 } else {
-var478 = " - ";
-var479 = 3;
-var480 = standard___standard__NativeString___to_s_with_length(var478, var479);
-var477 = var480;
-varonce476 = var477;
+var413 = varonce412;
+varonce412 = NULL;
+}
+{
+var418 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var_arguments, 0l);
 }
-var481 = 1;
 {
-var482 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var_arguments, var481);
+var419 = ((val*(*)(val* self))(var418->class->vft[COLOR_standard__string__Object__to_s]))(var418); /* to_s on <var418:nullable Object(RuntimeVariable)>*/
 }
-var483 = NEW_standard__Array(&type_standard__Array__standard__Object);
-{ /* var483 = array_instance Array[Object] */
-var484 = 3;
-var485 = NEW_standard__NativeArray(var484, &type_standard__NativeArray__standard__Object);
-((struct instance_standard__NativeArray*)var485)->values[0] = (val*) var475;
-((struct instance_standard__NativeArray*)var485)->values[1] = (val*) var477;
-((struct instance_standard__NativeArray*)var485)->values[2] = (val*) var482;
+((struct instance_standard__NativeArray*)var413)->values[0]=var419;
 {
-((void (*)(val* self, val* p0, long p1))(var483->class->vft[COLOR_standard__array__Array__with_native]))(var483, var485, var484) /* with_native on <var483:Array[Object]>*/;
+var420 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var_arguments, 1l);
 }
+{
+var421 = ((val*(*)(val* self))(var420->class->vft[COLOR_standard__string__Object__to_s]))(var420); /* to_s on <var420:nullable Object(RuntimeVariable)>*/
 }
+((struct instance_standard__NativeArray*)var413)->values[2]=var421;
 {
-var486 = ((val* (*)(val* self))(var483->class->vft[COLOR_standard__string__Object__to_s]))(var483) /* to_s on <var483:Array[Object]>*/;
+var422 = ((val*(*)(val* self))(var413->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var413); /* native_to_s on <var413:NativeArray[String]>*/
 }
+varonce412 = var413;
 if (unlikely(var_ret == NULL)) {
 PRINT_ERROR("Runtime error: %s", "Cast failed");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 2039);
-show_backtrace(1);
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 2161);
+fatal_exit(1);
 }
 {
-var487 = nit___nit__AbstractCompilerVisitor___new_expr(var_v, var486, var_ret);
+var423 = nit___nit__AbstractCompilerVisitor___new_expr(var_v, var422, var_ret);
 }
 {
-nit___nit__AbstractCompilerVisitor___ret(var_v, var487); /* Direct call abstract_compiler#AbstractCompilerVisitor#ret on <var_v:AbstractCompilerVisitor>*/
+nit___nit__AbstractCompilerVisitor___ret(var_v, var423); /* Direct call abstract_compiler#AbstractCompilerVisitor#ret on <var_v:AbstractCompilerVisitor>*/
 }
-var488 = 1;
-var = var488;
+var = 1;
 goto RET_LABEL;
 } else {
-if (varonce489) {
-var490 = varonce489;
+if (likely(varonce424!=NULL)) {
+var425 = varonce424;
 } else {
-var491 = "==";
-var492 = 2;
-var493 = standard___standard__NativeString___to_s_with_length(var491, var492);
-var490 = var493;
-varonce489 = var490;
+var426 = "==";
+var427 = standard___standard__NativeString___to_s_with_length(var426, 2l);
+var425 = var427;
+varonce424 = var425;
 }
 {
-var494 = ((short int (*)(val* self, val* p0))(var_pname->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_pname, var490) /* == on <var_pname:String>*/;
+var428 = ((short int(*)(val* self, val* p0))(var_pname->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_pname, var425); /* == on <var_pname:String>*/
 }
-if (var494){
-var495 = 0;
+if (var428){
 {
-var496 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var_arguments, var495);
+var429 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var_arguments, 0l);
 }
-var497 = 1;
 {
-var498 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var_arguments, var497);
+var430 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var_arguments, 1l);
 }
 {
-var499 = nit___nit__SeparateCompilerVisitor___nit__abstract_compiler__AbstractCompilerVisitor__equal_test(var_v, var496, var498);
+var431 = nit___nit__SeparateCompilerVisitor___nit__abstract_compiler__AbstractCompilerVisitor__equal_test(var_v, var429, var430);
 }
 {
-nit___nit__AbstractCompilerVisitor___ret(var_v, var499); /* Direct call abstract_compiler#AbstractCompilerVisitor#ret on <var_v:AbstractCompilerVisitor>*/
+nit___nit__AbstractCompilerVisitor___ret(var_v, var431); /* Direct call abstract_compiler#AbstractCompilerVisitor#ret on <var_v:AbstractCompilerVisitor>*/
 }
-var500 = 1;
-var = var500;
+var = 1;
 goto RET_LABEL;
 } else {
-if (varonce501) {
-var502 = varonce501;
+if (likely(varonce432!=NULL)) {
+var433 = varonce432;
 } else {
-var503 = "!=";
-var504 = 2;
-var505 = standard___standard__NativeString___to_s_with_length(var503, var504);
-var502 = var505;
-varonce501 = var502;
+var434 = "!=";
+var435 = standard___standard__NativeString___to_s_with_length(var434, 2l);
+var433 = var435;
+varonce432 = var433;
 }
 {
-var506 = ((short int (*)(val* self, val* p0))(var_pname->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_pname, var502) /* == on <var_pname:String>*/;
+var436 = ((short int(*)(val* self, val* p0))(var_pname->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_pname, var433); /* == on <var_pname:String>*/
 }
-if (var506){
-var507 = 0;
+if (var436){
 {
-var508 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var_arguments, var507);
+var437 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var_arguments, 0l);
 }
-var509 = 1;
 {
-var510 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var_arguments, var509);
+var438 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var_arguments, 1l);
 }
 {
-var511 = nit___nit__SeparateCompilerVisitor___nit__abstract_compiler__AbstractCompilerVisitor__equal_test(var_v, var508, var510);
+var439 = nit___nit__SeparateCompilerVisitor___nit__abstract_compiler__AbstractCompilerVisitor__equal_test(var_v, var437, var438);
 }
-var_res512 = var511;
-if (varonce513) {
-var514 = varonce513;
+var_res440 = var439;
+if (unlikely(varonce441==NULL)) {
+var442 = NEW_standard__NativeArray(2l, &type_standard__NativeArray__standard__String);
+if (likely(varonce443!=NULL)) {
+var444 = varonce443;
 } else {
-var515 = "!";
-var516 = 1;
-var517 = standard___standard__NativeString___to_s_with_length(var515, var516);
-var514 = var517;
-varonce513 = var514;
+var445 = "!";
+var446 = standard___standard__NativeString___to_s_with_length(var445, 1l);
+var444 = var446;
+varonce443 = var444;
 }
-var518 = NEW_standard__Array(&type_standard__Array__standard__Object);
-{ /* var518 = array_instance Array[Object] */
-var519 = 2;
-var520 = NEW_standard__NativeArray(var519, &type_standard__NativeArray__standard__Object);
-((struct instance_standard__NativeArray*)var520)->values[0] = (val*) var514;
-((struct instance_standard__NativeArray*)var520)->values[1] = (val*) var_res512;
-{
-((void (*)(val* self, val* p0, long p1))(var518->class->vft[COLOR_standard__array__Array__with_native]))(var518, var520, var519) /* with_native on <var518:Array[Object]>*/;
+((struct instance_standard__NativeArray*)var442)->values[0]=var444;
+} else {
+var442 = varonce441;
+varonce441 = NULL;
 }
+{
+var447 = ((val*(*)(val* self))(var_res440->class->vft[COLOR_standard__string__Object__to_s]))(var_res440); /* to_s on <var_res440:RuntimeVariable>*/
 }
+((struct instance_standard__NativeArray*)var442)->values[1]=var447;
 {
-var521 = ((val* (*)(val* self))(var518->class->vft[COLOR_standard__string__Object__to_s]))(var518) /* to_s on <var518:Array[Object]>*/;
+var448 = ((val*(*)(val* self))(var442->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var442); /* native_to_s on <var442:NativeArray[String]>*/
 }
+varonce441 = var442;
 if (unlikely(var_ret == NULL)) {
 PRINT_ERROR("Runtime error: %s", "Cast failed");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 2046);
-show_backtrace(1);
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 2168);
+fatal_exit(1);
 }
 {
-var522 = nit___nit__AbstractCompilerVisitor___new_expr(var_v, var521, var_ret);
+var449 = nit___nit__AbstractCompilerVisitor___new_expr(var_v, var448, var_ret);
 }
 {
-nit___nit__AbstractCompilerVisitor___ret(var_v, var522); /* Direct call abstract_compiler#AbstractCompilerVisitor#ret on <var_v:AbstractCompilerVisitor>*/
+nit___nit__AbstractCompilerVisitor___ret(var_v, var449); /* Direct call abstract_compiler#AbstractCompilerVisitor#ret on <var_v:AbstractCompilerVisitor>*/
 }
-var523 = 1;
-var = var523;
+var = 1;
 goto RET_LABEL;
 } else {
-if (varonce524) {
-var525 = varonce524;
+if (likely(varonce450!=NULL)) {
+var451 = varonce450;
 } else {
-var526 = "<";
-var527 = 1;
-var528 = standard___standard__NativeString___to_s_with_length(var526, var527);
-var525 = var528;
-varonce524 = var525;
+var452 = "<";
+var453 = standard___standard__NativeString___to_s_with_length(var452, 1l);
+var451 = var453;
+varonce450 = var451;
 }
 {
-var529 = ((short int (*)(val* self, val* p0))(var_pname->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_pname, var525) /* == on <var_pname:String>*/;
+var454 = ((short int(*)(val* self, val* p0))(var_pname->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_pname, var451); /* == on <var_pname:String>*/
 }
-if (var529){
-var530 = 0;
-{
-var531 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var_arguments, var530);
+if (var454){
+if (unlikely(varonce455==NULL)) {
+var456 = NEW_standard__NativeArray(3l, &type_standard__NativeArray__standard__String);
+if (likely(varonce457!=NULL)) {
+var458 = varonce457;
+} else {
+var459 = " < ";
+var460 = standard___standard__NativeString___to_s_with_length(var459, 3l);
+var458 = var460;
+varonce457 = var458;
 }
-if (varonce532) {
-var533 = varonce532;
+((struct instance_standard__NativeArray*)var456)->values[1]=var458;
 } else {
-var534 = " < ";
-var535 = 3;
-var536 = standard___standard__NativeString___to_s_with_length(var534, var535);
-var533 = var536;
-varonce532 = var533;
+var456 = varonce455;
+varonce455 = NULL;
+}
+{
+var461 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var_arguments, 0l);
 }
-var537 = 1;
 {
-var538 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var_arguments, var537);
+var462 = ((val*(*)(val* self))(var461->class->vft[COLOR_standard__string__Object__to_s]))(var461); /* to_s on <var461:nullable Object(RuntimeVariable)>*/
 }
-var539 = NEW_standard__Array(&type_standard__Array__standard__Object);
-{ /* var539 = array_instance Array[Object] */
-var540 = 3;
-var541 = NEW_standard__NativeArray(var540, &type_standard__NativeArray__standard__Object);
-((struct instance_standard__NativeArray*)var541)->values[0] = (val*) var531;
-((struct instance_standard__NativeArray*)var541)->values[1] = (val*) var533;
-((struct instance_standard__NativeArray*)var541)->values[2] = (val*) var538;
+((struct instance_standard__NativeArray*)var456)->values[0]=var462;
 {
-((void (*)(val* self, val* p0, long p1))(var539->class->vft[COLOR_standard__array__Array__with_native]))(var539, var541, var540) /* with_native on <var539:Array[Object]>*/;
+var463 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var_arguments, 1l);
 }
+{
+var464 = ((val*(*)(val* self))(var463->class->vft[COLOR_standard__string__Object__to_s]))(var463); /* to_s on <var463:nullable Object(RuntimeVariable)>*/
 }
+((struct instance_standard__NativeArray*)var456)->values[2]=var464;
 {
-var542 = ((val* (*)(val* self))(var539->class->vft[COLOR_standard__string__Object__to_s]))(var539) /* to_s on <var539:Array[Object]>*/;
+var465 = ((val*(*)(val* self))(var456->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var456); /* native_to_s on <var456:NativeArray[String]>*/
 }
+varonce455 = var456;
 if (unlikely(var_ret == NULL)) {
 PRINT_ERROR("Runtime error: %s", "Cast failed");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 2049);
-show_backtrace(1);
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 2171);
+fatal_exit(1);
 }
 {
-var543 = nit___nit__AbstractCompilerVisitor___new_expr(var_v, var542, var_ret);
+var466 = nit___nit__AbstractCompilerVisitor___new_expr(var_v, var465, var_ret);
 }
 {
-nit___nit__AbstractCompilerVisitor___ret(var_v, var543); /* Direct call abstract_compiler#AbstractCompilerVisitor#ret on <var_v:AbstractCompilerVisitor>*/
+nit___nit__AbstractCompilerVisitor___ret(var_v, var466); /* Direct call abstract_compiler#AbstractCompilerVisitor#ret on <var_v:AbstractCompilerVisitor>*/
 }
-var544 = 1;
-var = var544;
+var = 1;
 goto RET_LABEL;
 } else {
-if (varonce545) {
-var546 = varonce545;
+if (likely(varonce467!=NULL)) {
+var468 = varonce467;
 } else {
-var547 = ">";
-var548 = 1;
-var549 = standard___standard__NativeString___to_s_with_length(var547, var548);
-var546 = var549;
-varonce545 = var546;
+var469 = ">";
+var470 = standard___standard__NativeString___to_s_with_length(var469, 1l);
+var468 = var470;
+varonce467 = var468;
 }
 {
-var550 = ((short int (*)(val* self, val* p0))(var_pname->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_pname, var546) /* == on <var_pname:String>*/;
+var471 = ((short int(*)(val* self, val* p0))(var_pname->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_pname, var468); /* == on <var_pname:String>*/
 }
-if (var550){
-var551 = 0;
-{
-var552 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var_arguments, var551);
+if (var471){
+if (unlikely(varonce472==NULL)) {
+var473 = NEW_standard__NativeArray(3l, &type_standard__NativeArray__standard__String);
+if (likely(varonce474!=NULL)) {
+var475 = varonce474;
+} else {
+var476 = " > ";
+var477 = standard___standard__NativeString___to_s_with_length(var476, 3l);
+var475 = var477;
+varonce474 = var475;
 }
-if (varonce553) {
-var554 = varonce553;
+((struct instance_standard__NativeArray*)var473)->values[1]=var475;
 } else {
-var555 = " > ";
-var556 = 3;
-var557 = standard___standard__NativeString___to_s_with_length(var555, var556);
-var554 = var557;
-varonce553 = var554;
+var473 = varonce472;
+varonce472 = NULL;
+}
+{
+var478 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var_arguments, 0l);
 }
-var558 = 1;
 {
-var559 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var_arguments, var558);
+var479 = ((val*(*)(val* self))(var478->class->vft[COLOR_standard__string__Object__to_s]))(var478); /* to_s on <var478:nullable Object(RuntimeVariable)>*/
 }
-var560 = NEW_standard__Array(&type_standard__Array__standard__Object);
-{ /* var560 = array_instance Array[Object] */
-var561 = 3;
-var562 = NEW_standard__NativeArray(var561, &type_standard__NativeArray__standard__Object);
-((struct instance_standard__NativeArray*)var562)->values[0] = (val*) var552;
-((struct instance_standard__NativeArray*)var562)->values[1] = (val*) var554;
-((struct instance_standard__NativeArray*)var562)->values[2] = (val*) var559;
+((struct instance_standard__NativeArray*)var473)->values[0]=var479;
 {
-((void (*)(val* self, val* p0, long p1))(var560->class->vft[COLOR_standard__array__Array__with_native]))(var560, var562, var561) /* with_native on <var560:Array[Object]>*/;
+var480 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var_arguments, 1l);
 }
+{
+var481 = ((val*(*)(val* self))(var480->class->vft[COLOR_standard__string__Object__to_s]))(var480); /* to_s on <var480:nullable Object(RuntimeVariable)>*/
 }
+((struct instance_standard__NativeArray*)var473)->values[2]=var481;
 {
-var563 = ((val* (*)(val* self))(var560->class->vft[COLOR_standard__string__Object__to_s]))(var560) /* to_s on <var560:Array[Object]>*/;
+var482 = ((val*(*)(val* self))(var473->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var473); /* native_to_s on <var473:NativeArray[String]>*/
 }
+varonce472 = var473;
 if (unlikely(var_ret == NULL)) {
 PRINT_ERROR("Runtime error: %s", "Cast failed");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 2052);
-show_backtrace(1);
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 2174);
+fatal_exit(1);
 }
 {
-var564 = nit___nit__AbstractCompilerVisitor___new_expr(var_v, var563, var_ret);
+var483 = nit___nit__AbstractCompilerVisitor___new_expr(var_v, var482, var_ret);
 }
 {
-nit___nit__AbstractCompilerVisitor___ret(var_v, var564); /* Direct call abstract_compiler#AbstractCompilerVisitor#ret on <var_v:AbstractCompilerVisitor>*/
+nit___nit__AbstractCompilerVisitor___ret(var_v, var483); /* Direct call abstract_compiler#AbstractCompilerVisitor#ret on <var_v:AbstractCompilerVisitor>*/
 }
-var565 = 1;
-var = var565;
+var = 1;
 goto RET_LABEL;
 } else {
-if (varonce566) {
-var567 = varonce566;
+if (likely(varonce484!=NULL)) {
+var485 = varonce484;
 } else {
-var568 = "<=";
-var569 = 2;
-var570 = standard___standard__NativeString___to_s_with_length(var568, var569);
-var567 = var570;
-varonce566 = var567;
+var486 = "<=";
+var487 = standard___standard__NativeString___to_s_with_length(var486, 2l);
+var485 = var487;
+varonce484 = var485;
 }
 {
-var571 = ((short int (*)(val* self, val* p0))(var_pname->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_pname, var567) /* == on <var_pname:String>*/;
+var488 = ((short int(*)(val* self, val* p0))(var_pname->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_pname, var485); /* == on <var_pname:String>*/
 }
-if (var571){
-var572 = 0;
-{
-var573 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var_arguments, var572);
+if (var488){
+if (unlikely(varonce489==NULL)) {
+var490 = NEW_standard__NativeArray(3l, &type_standard__NativeArray__standard__String);
+if (likely(varonce491!=NULL)) {
+var492 = varonce491;
+} else {
+var493 = " <= ";
+var494 = standard___standard__NativeString___to_s_with_length(var493, 4l);
+var492 = var494;
+varonce491 = var492;
 }
-if (varonce574) {
-var575 = varonce574;
+((struct instance_standard__NativeArray*)var490)->values[1]=var492;
 } else {
-var576 = " <= ";
-var577 = 4;
-var578 = standard___standard__NativeString___to_s_with_length(var576, var577);
-var575 = var578;
-varonce574 = var575;
+var490 = varonce489;
+varonce489 = NULL;
+}
+{
+var495 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var_arguments, 0l);
 }
-var579 = 1;
 {
-var580 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var_arguments, var579);
+var496 = ((val*(*)(val* self))(var495->class->vft[COLOR_standard__string__Object__to_s]))(var495); /* to_s on <var495:nullable Object(RuntimeVariable)>*/
 }
-var581 = NEW_standard__Array(&type_standard__Array__standard__Object);
-{ /* var581 = array_instance Array[Object] */
-var582 = 3;
-var583 = NEW_standard__NativeArray(var582, &type_standard__NativeArray__standard__Object);
-((struct instance_standard__NativeArray*)var583)->values[0] = (val*) var573;
-((struct instance_standard__NativeArray*)var583)->values[1] = (val*) var575;
-((struct instance_standard__NativeArray*)var583)->values[2] = (val*) var580;
+((struct instance_standard__NativeArray*)var490)->values[0]=var496;
 {
-((void (*)(val* self, val* p0, long p1))(var581->class->vft[COLOR_standard__array__Array__with_native]))(var581, var583, var582) /* with_native on <var581:Array[Object]>*/;
+var497 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var_arguments, 1l);
 }
+{
+var498 = ((val*(*)(val* self))(var497->class->vft[COLOR_standard__string__Object__to_s]))(var497); /* to_s on <var497:nullable Object(RuntimeVariable)>*/
 }
+((struct instance_standard__NativeArray*)var490)->values[2]=var498;
 {
-var584 = ((val* (*)(val* self))(var581->class->vft[COLOR_standard__string__Object__to_s]))(var581) /* to_s on <var581:Array[Object]>*/;
+var499 = ((val*(*)(val* self))(var490->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var490); /* native_to_s on <var490:NativeArray[String]>*/
 }
+varonce489 = var490;
 if (unlikely(var_ret == NULL)) {
 PRINT_ERROR("Runtime error: %s", "Cast failed");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 2055);
-show_backtrace(1);
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 2177);
+fatal_exit(1);
 }
 {
-var585 = nit___nit__AbstractCompilerVisitor___new_expr(var_v, var584, var_ret);
+var500 = nit___nit__AbstractCompilerVisitor___new_expr(var_v, var499, var_ret);
 }
 {
-nit___nit__AbstractCompilerVisitor___ret(var_v, var585); /* Direct call abstract_compiler#AbstractCompilerVisitor#ret on <var_v:AbstractCompilerVisitor>*/
+nit___nit__AbstractCompilerVisitor___ret(var_v, var500); /* Direct call abstract_compiler#AbstractCompilerVisitor#ret on <var_v:AbstractCompilerVisitor>*/
 }
-var586 = 1;
-var = var586;
+var = 1;
 goto RET_LABEL;
 } else {
-if (varonce587) {
-var588 = varonce587;
+if (likely(varonce501!=NULL)) {
+var502 = varonce501;
 } else {
-var589 = ">=";
-var590 = 2;
-var591 = standard___standard__NativeString___to_s_with_length(var589, var590);
-var588 = var591;
-varonce587 = var588;
+var503 = ">=";
+var504 = standard___standard__NativeString___to_s_with_length(var503, 2l);
+var502 = var504;
+varonce501 = var502;
 }
 {
-var592 = ((short int (*)(val* self, val* p0))(var_pname->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_pname, var588) /* == on <var_pname:String>*/;
+var505 = ((short int(*)(val* self, val* p0))(var_pname->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_pname, var502); /* == on <var_pname:String>*/
 }
-if (var592){
-var593 = 0;
-{
-var594 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var_arguments, var593);
+if (var505){
+if (unlikely(varonce506==NULL)) {
+var507 = NEW_standard__NativeArray(3l, &type_standard__NativeArray__standard__String);
+if (likely(varonce508!=NULL)) {
+var509 = varonce508;
+} else {
+var510 = " >= ";
+var511 = standard___standard__NativeString___to_s_with_length(var510, 4l);
+var509 = var511;
+varonce508 = var509;
 }
-if (varonce595) {
-var596 = varonce595;
+((struct instance_standard__NativeArray*)var507)->values[1]=var509;
 } else {
-var597 = " >= ";
-var598 = 4;
-var599 = standard___standard__NativeString___to_s_with_length(var597, var598);
-var596 = var599;
-varonce595 = var596;
+var507 = varonce506;
+varonce506 = NULL;
+}
+{
+var512 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var_arguments, 0l);
 }
-var600 = 1;
 {
-var601 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var_arguments, var600);
+var513 = ((val*(*)(val* self))(var512->class->vft[COLOR_standard__string__Object__to_s]))(var512); /* to_s on <var512:nullable Object(RuntimeVariable)>*/
 }
-var602 = NEW_standard__Array(&type_standard__Array__standard__Object);
-{ /* var602 = array_instance Array[Object] */
-var603 = 3;
-var604 = NEW_standard__NativeArray(var603, &type_standard__NativeArray__standard__Object);
-((struct instance_standard__NativeArray*)var604)->values[0] = (val*) var594;
-((struct instance_standard__NativeArray*)var604)->values[1] = (val*) var596;
-((struct instance_standard__NativeArray*)var604)->values[2] = (val*) var601;
+((struct instance_standard__NativeArray*)var507)->values[0]=var513;
 {
-((void (*)(val* self, val* p0, long p1))(var602->class->vft[COLOR_standard__array__Array__with_native]))(var602, var604, var603) /* with_native on <var602:Array[Object]>*/;
+var514 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var_arguments, 1l);
 }
+{
+var515 = ((val*(*)(val* self))(var514->class->vft[COLOR_standard__string__Object__to_s]))(var514); /* to_s on <var514:nullable Object(RuntimeVariable)>*/
 }
+((struct instance_standard__NativeArray*)var507)->values[2]=var515;
 {
-var605 = ((val* (*)(val* self))(var602->class->vft[COLOR_standard__string__Object__to_s]))(var602) /* to_s on <var602:Array[Object]>*/;
+var516 = ((val*(*)(val* self))(var507->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var507); /* native_to_s on <var507:NativeArray[String]>*/
 }
+varonce506 = var507;
 if (unlikely(var_ret == NULL)) {
 PRINT_ERROR("Runtime error: %s", "Cast failed");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 2058);
-show_backtrace(1);
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 2180);
+fatal_exit(1);
 }
 {
-var606 = nit___nit__AbstractCompilerVisitor___new_expr(var_v, var605, var_ret);
+var517 = nit___nit__AbstractCompilerVisitor___new_expr(var_v, var516, var_ret);
 }
 {
-nit___nit__AbstractCompilerVisitor___ret(var_v, var606); /* Direct call abstract_compiler#AbstractCompilerVisitor#ret on <var_v:AbstractCompilerVisitor>*/
+nit___nit__AbstractCompilerVisitor___ret(var_v, var517); /* Direct call abstract_compiler#AbstractCompilerVisitor#ret on <var_v:AbstractCompilerVisitor>*/
 }
-var607 = 1;
-var = var607;
+var = 1;
 goto RET_LABEL;
 } else {
-if (varonce608) {
-var609 = varonce608;
+if (likely(varonce518!=NULL)) {
+var519 = varonce518;
 } else {
-var610 = "to_i";
-var611 = 4;
-var612 = standard___standard__NativeString___to_s_with_length(var610, var611);
-var609 = var612;
-varonce608 = var609;
+var520 = "to_i";
+var521 = standard___standard__NativeString___to_s_with_length(var520, 4l);
+var519 = var521;
+varonce518 = var519;
 }
 {
-var613 = ((short int (*)(val* self, val* p0))(var_pname->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_pname, var609) /* == on <var_pname:String>*/;
+var522 = ((short int(*)(val* self, val* p0))(var_pname->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_pname, var519); /* == on <var_pname:String>*/
 }
-if (var613){
-var614 = 0;
-{
-var615 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var_arguments, var614);
+if (var522){
+if (unlikely(varonce523==NULL)) {
+var524 = NEW_standard__NativeArray(2l, &type_standard__NativeArray__standard__String);
+if (likely(varonce525!=NULL)) {
+var526 = varonce525;
+} else {
+var527 = "-\'0\'";
+var528 = standard___standard__NativeString___to_s_with_length(var527, 4l);
+var526 = var528;
+varonce525 = var526;
 }
-if (varonce616) {
-var617 = varonce616;
+((struct instance_standard__NativeArray*)var524)->values[1]=var526;
 } else {
-var618 = "-\'0\'";
-var619 = 4;
-var620 = standard___standard__NativeString___to_s_with_length(var618, var619);
-var617 = var620;
-varonce616 = var617;
+var524 = varonce523;
+varonce523 = NULL;
 }
-var621 = NEW_standard__Array(&type_standard__Array__standard__Object);
-{ /* var621 = array_instance Array[Object] */
-var622 = 2;
-var623 = NEW_standard__NativeArray(var622, &type_standard__NativeArray__standard__Object);
-((struct instance_standard__NativeArray*)var623)->values[0] = (val*) var615;
-((struct instance_standard__NativeArray*)var623)->values[1] = (val*) var617;
 {
-((void (*)(val* self, val* p0, long p1))(var621->class->vft[COLOR_standard__array__Array__with_native]))(var621, var623, var622) /* with_native on <var621:Array[Object]>*/;
+var529 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var_arguments, 0l);
 }
+{
+var530 = ((val*(*)(val* self))(var529->class->vft[COLOR_standard__string__Object__to_s]))(var529); /* to_s on <var529:nullable Object(RuntimeVariable)>*/
 }
+((struct instance_standard__NativeArray*)var524)->values[0]=var530;
 {
-var624 = ((val* (*)(val* self))(var621->class->vft[COLOR_standard__string__Object__to_s]))(var621) /* to_s on <var621:Array[Object]>*/;
+var531 = ((val*(*)(val* self))(var524->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var524); /* native_to_s on <var524:NativeArray[String]>*/
 }
+varonce523 = var524;
 if (unlikely(var_ret == NULL)) {
 PRINT_ERROR("Runtime error: %s", "Cast failed");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 2061);
-show_backtrace(1);
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 2183);
+fatal_exit(1);
 }
 {
-var625 = nit___nit__AbstractCompilerVisitor___new_expr(var_v, var624, var_ret);
+var532 = nit___nit__AbstractCompilerVisitor___new_expr(var_v, var531, var_ret);
 }
 {
-nit___nit__AbstractCompilerVisitor___ret(var_v, var625); /* Direct call abstract_compiler#AbstractCompilerVisitor#ret on <var_v:AbstractCompilerVisitor>*/
+nit___nit__AbstractCompilerVisitor___ret(var_v, var532); /* Direct call abstract_compiler#AbstractCompilerVisitor#ret on <var_v:AbstractCompilerVisitor>*/
 }
-var626 = 1;
-var = var626;
+var = 1;
 goto RET_LABEL;
 } else {
-if (varonce627) {
-var628 = varonce627;
+if (likely(varonce533!=NULL)) {
+var534 = varonce533;
 } else {
-var629 = "ascii";
-var630 = 5;
-var631 = standard___standard__NativeString___to_s_with_length(var629, var630);
-var628 = var631;
-varonce627 = var628;
+var535 = "ascii";
+var536 = standard___standard__NativeString___to_s_with_length(var535, 5l);
+var534 = var536;
+varonce533 = var534;
 }
 {
-var632 = ((short int (*)(val* self, val* p0))(var_pname->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_pname, var628) /* == on <var_pname:String>*/;
+var537 = ((short int(*)(val* self, val* p0))(var_pname->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_pname, var534); /* == on <var_pname:String>*/
 }
-if (var632){
-if (varonce633) {
-var634 = varonce633;
+if (var537){
+if (unlikely(varonce538==NULL)) {
+var539 = NEW_standard__NativeArray(2l, &type_standard__NativeArray__standard__String);
+if (likely(varonce540!=NULL)) {
+var541 = varonce540;
 } else {
-var635 = "(unsigned char)";
-var636 = 15;
-var637 = standard___standard__NativeString___to_s_with_length(var635, var636);
-var634 = var637;
-varonce633 = var634;
+var542 = "(long)";
+var543 = standard___standard__NativeString___to_s_with_length(var542, 6l);
+var541 = var543;
+varonce540 = var541;
 }
-var638 = 0;
-{
-var639 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var_arguments, var638);
+((struct instance_standard__NativeArray*)var539)->values[0]=var541;
+} else {
+var539 = varonce538;
+varonce538 = NULL;
 }
-var640 = NEW_standard__Array(&type_standard__Array__standard__Object);
-{ /* var640 = array_instance Array[Object] */
-var641 = 2;
-var642 = NEW_standard__NativeArray(var641, &type_standard__NativeArray__standard__Object);
-((struct instance_standard__NativeArray*)var642)->values[0] = (val*) var634;
-((struct instance_standard__NativeArray*)var642)->values[1] = (val*) var639;
 {
-((void (*)(val* self, val* p0, long p1))(var640->class->vft[COLOR_standard__array__Array__with_native]))(var640, var642, var641) /* with_native on <var640:Array[Object]>*/;
+var544 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var_arguments, 0l);
 }
+{
+var545 = ((val*(*)(val* self))(var544->class->vft[COLOR_standard__string__Object__to_s]))(var544); /* to_s on <var544:nullable Object(RuntimeVariable)>*/
 }
+((struct instance_standard__NativeArray*)var539)->values[1]=var545;
 {
-var643 = ((val* (*)(val* self))(var640->class->vft[COLOR_standard__string__Object__to_s]))(var640) /* to_s on <var640:Array[Object]>*/;
+var546 = ((val*(*)(val* self))(var539->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var539); /* native_to_s on <var539:NativeArray[String]>*/
 }
+varonce538 = var539;
 if (unlikely(var_ret == NULL)) {
 PRINT_ERROR("Runtime error: %s", "Cast failed");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 2064);
-show_backtrace(1);
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 2186);
+fatal_exit(1);
 }
 {
-var644 = nit___nit__AbstractCompilerVisitor___new_expr(var_v, var643, var_ret);
+var547 = nit___nit__AbstractCompilerVisitor___new_expr(var_v, var546, var_ret);
 }
 {
-nit___nit__AbstractCompilerVisitor___ret(var_v, var644); /* Direct call abstract_compiler#AbstractCompilerVisitor#ret on <var_v:AbstractCompilerVisitor>*/
+nit___nit__AbstractCompilerVisitor___ret(var_v, var547); /* Direct call abstract_compiler#AbstractCompilerVisitor#ret on <var_v:AbstractCompilerVisitor>*/
 }
-var645 = 1;
-var = var645;
+var = 1;
 goto RET_LABEL;
 } else {
 }
@@ -3294,1125 +3438,1076 @@ goto RET_LABEL;
 }
 }
 } else {
-if (varonce646) {
-var647 = varonce646;
+if (likely(varonce548!=NULL)) {
+var549 = varonce548;
 } else {
-var648 = "Bool";
-var649 = 4;
-var650 = standard___standard__NativeString___to_s_with_length(var648, var649);
-var647 = var650;
-varonce646 = var647;
+var550 = "Byte";
+var551 = standard___standard__NativeString___to_s_with_length(var550, 4l);
+var549 = var551;
+varonce548 = var549;
 }
 {
-var651 = ((short int (*)(val* self, val* p0))(var_cname->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_cname, var647) /* == on <var_cname:String>*/;
+var552 = ((short int(*)(val* self, val* p0))(var_cname->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_cname, var549); /* == on <var_cname:String>*/
 }
-if (var651){
-if (varonce652) {
-var653 = varonce652;
+if (var552){
+if (likely(varonce553!=NULL)) {
+var554 = varonce553;
 } else {
-var654 = "output";
-var655 = 6;
-var656 = standard___standard__NativeString___to_s_with_length(var654, var655);
-var653 = var656;
-varonce652 = var653;
+var555 = "output";
+var556 = standard___standard__NativeString___to_s_with_length(var555, 6l);
+var554 = var556;
+varonce553 = var554;
 }
 {
-var657 = ((short int (*)(val* self, val* p0))(var_pname->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_pname, var653) /* == on <var_pname:String>*/;
+var557 = ((short int(*)(val* self, val* p0))(var_pname->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_pname, var554); /* == on <var_pname:String>*/
 }
-if (var657){
-if (varonce658) {
-var659 = varonce658;
+if (var557){
+if (unlikely(varonce558==NULL)) {
+var559 = NEW_standard__NativeArray(3l, &type_standard__NativeArray__standard__String);
+if (likely(varonce560!=NULL)) {
+var561 = varonce560;
 } else {
-var660 = "printf(";
-var661 = 7;
-var662 = standard___standard__NativeString___to_s_with_length(var660, var661);
-var659 = var662;
-varonce658 = var659;
+var562 = "printf(\"%x\\n\", ";
+var563 = standard___standard__NativeString___to_s_with_length(var562, 15l);
+var561 = var563;
+varonce560 = var561;
 }
-{
-var663 = standard___standard__SequenceRead___Collection__first(var_arguments);
+((struct instance_standard__NativeArray*)var559)->values[0]=var561;
+if (likely(varonce564!=NULL)) {
+var565 = varonce564;
+} else {
+var566 = ");";
+var567 = standard___standard__NativeString___to_s_with_length(var566, 2l);
+var565 = var567;
+varonce564 = var565;
 }
-if (varonce664) {
-var665 = varonce664;
+((struct instance_standard__NativeArray*)var559)->values[2]=var565;
 } else {
-var666 = "?\"true\\n\":\"false\\n\");";
-var667 = 21;
-var668 = standard___standard__NativeString___to_s_with_length(var666, var667);
-var665 = var668;
-varonce664 = var665;
+var559 = varonce558;
+varonce558 = NULL;
 }
-var669 = NEW_standard__Array(&type_standard__Array__standard__Object);
-{ /* var669 = array_instance Array[Object] */
-var670 = 3;
-var671 = NEW_standard__NativeArray(var670, &type_standard__NativeArray__standard__Object);
-((struct instance_standard__NativeArray*)var671)->values[0] = (val*) var659;
-((struct instance_standard__NativeArray*)var671)->values[1] = (val*) var663;
-((struct instance_standard__NativeArray*)var671)->values[2] = (val*) var665;
 {
-((void (*)(val* self, val* p0, long p1))(var669->class->vft[COLOR_standard__array__Array__with_native]))(var669, var671, var670) /* with_native on <var669:Array[Object]>*/;
+var568 = standard___standard__SequenceRead___Collection__first(var_arguments);
 }
+{
+var569 = ((val*(*)(val* self))(var568->class->vft[COLOR_standard__string__Object__to_s]))(var568); /* to_s on <var568:nullable Object(RuntimeVariable)>*/
 }
+((struct instance_standard__NativeArray*)var559)->values[1]=var569;
 {
-var672 = ((val* (*)(val* self))(var669->class->vft[COLOR_standard__string__Object__to_s]))(var669) /* to_s on <var669:Array[Object]>*/;
+var570 = ((val*(*)(val* self))(var559->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var559); /* native_to_s on <var559:NativeArray[String]>*/
 }
+varonce558 = var559;
 {
-nit___nit__AbstractCompilerVisitor___add(var_v, var672); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <var_v:AbstractCompilerVisitor>*/
+nit___nit__AbstractCompilerVisitor___add(var_v, var570); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <var_v:AbstractCompilerVisitor>*/
 }
-var673 = 1;
-var = var673;
+var = 1;
 goto RET_LABEL;
 } else {
-if (varonce674) {
-var675 = varonce674;
+if (likely(varonce571!=NULL)) {
+var572 = varonce571;
 } else {
-var676 = "object_id";
-var677 = 9;
-var678 = standard___standard__NativeString___to_s_with_length(var676, var677);
-var675 = var678;
-varonce674 = var675;
+var573 = "object_id";
+var574 = standard___standard__NativeString___to_s_with_length(var573, 9l);
+var572 = var574;
+varonce571 = var572;
 }
 {
-var679 = ((short int (*)(val* self, val* p0))(var_pname->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_pname, var675) /* == on <var_pname:String>*/;
+var575 = ((short int(*)(val* self, val* p0))(var_pname->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_pname, var572); /* == on <var_pname:String>*/
 }
-if (var679){
-if (varonce680) {
-var681 = varonce680;
+if (var575){
+if (unlikely(varonce576==NULL)) {
+var577 = NEW_standard__NativeArray(2l, &type_standard__NativeArray__standard__String);
+if (likely(varonce578!=NULL)) {
+var579 = varonce578;
 } else {
-var682 = "(long)";
-var683 = 6;
-var684 = standard___standard__NativeString___to_s_with_length(var682, var683);
-var681 = var684;
-varonce680 = var681;
+var580 = "(long)";
+var581 = standard___standard__NativeString___to_s_with_length(var580, 6l);
+var579 = var581;
+varonce578 = var579;
 }
-{
-var685 = standard___standard__SequenceRead___Collection__first(var_arguments);
+((struct instance_standard__NativeArray*)var577)->values[0]=var579;
+} else {
+var577 = varonce576;
+varonce576 = NULL;
 }
-var686 = NEW_standard__Array(&type_standard__Array__standard__Object);
-{ /* var686 = array_instance Array[Object] */
-var687 = 2;
-var688 = NEW_standard__NativeArray(var687, &type_standard__NativeArray__standard__Object);
-((struct instance_standard__NativeArray*)var688)->values[0] = (val*) var681;
-((struct instance_standard__NativeArray*)var688)->values[1] = (val*) var685;
 {
-((void (*)(val* self, val* p0, long p1))(var686->class->vft[COLOR_standard__array__Array__with_native]))(var686, var688, var687) /* with_native on <var686:Array[Object]>*/;
+var582 = standard___standard__SequenceRead___Collection__first(var_arguments);
 }
+{
+var583 = ((val*(*)(val* self))(var582->class->vft[COLOR_standard__string__Object__to_s]))(var582); /* to_s on <var582:nullable Object(RuntimeVariable)>*/
 }
+((struct instance_standard__NativeArray*)var577)->values[1]=var583;
 {
-var689 = ((val* (*)(val* self))(var686->class->vft[COLOR_standard__string__Object__to_s]))(var686) /* to_s on <var686:Array[Object]>*/;
+var584 = ((val*(*)(val* self))(var577->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var577); /* native_to_s on <var577:NativeArray[String]>*/
 }
+varonce576 = var577;
 if (unlikely(var_ret == NULL)) {
 PRINT_ERROR("Runtime error: %s", "Cast failed");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 2072);
-show_backtrace(1);
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 2194);
+fatal_exit(1);
 }
 {
-var690 = nit___nit__AbstractCompilerVisitor___new_expr(var_v, var689, var_ret);
+var585 = nit___nit__AbstractCompilerVisitor___new_expr(var_v, var584, var_ret);
 }
 {
-nit___nit__AbstractCompilerVisitor___ret(var_v, var690); /* Direct call abstract_compiler#AbstractCompilerVisitor#ret on <var_v:AbstractCompilerVisitor>*/
+nit___nit__AbstractCompilerVisitor___ret(var_v, var585); /* Direct call abstract_compiler#AbstractCompilerVisitor#ret on <var_v:AbstractCompilerVisitor>*/
 }
-var691 = 1;
-var = var691;
+var = 1;
 goto RET_LABEL;
 } else {
-if (varonce692) {
-var693 = varonce692;
+if (likely(varonce586!=NULL)) {
+var587 = varonce586;
 } else {
-var694 = "==";
-var695 = 2;
-var696 = standard___standard__NativeString___to_s_with_length(var694, var695);
-var693 = var696;
-varonce692 = var693;
+var588 = "+";
+var589 = standard___standard__NativeString___to_s_with_length(var588, 1l);
+var587 = var589;
+varonce586 = var587;
+}
+{
+var590 = ((short int(*)(val* self, val* p0))(var_pname->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_pname, var587); /* == on <var_pname:String>*/
+}
+if (var590){
+if (unlikely(varonce591==NULL)) {
+var592 = NEW_standard__NativeArray(3l, &type_standard__NativeArray__standard__String);
+if (likely(varonce593!=NULL)) {
+var594 = varonce593;
+} else {
+var595 = " + ";
+var596 = standard___standard__NativeString___to_s_with_length(var595, 3l);
+var594 = var596;
+varonce593 = var594;
+}
+((struct instance_standard__NativeArray*)var592)->values[1]=var594;
+} else {
+var592 = varonce591;
+varonce591 = NULL;
+}
+{
+var597 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var_arguments, 0l);
+}
+{
+var598 = ((val*(*)(val* self))(var597->class->vft[COLOR_standard__string__Object__to_s]))(var597); /* to_s on <var597:nullable Object(RuntimeVariable)>*/
 }
+((struct instance_standard__NativeArray*)var592)->values[0]=var598;
 {
-var697 = ((short int (*)(val* self, val* p0))(var_pname->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_pname, var693) /* == on <var_pname:String>*/;
+var599 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var_arguments, 1l);
 }
-if (var697){
-var698 = 0;
 {
-var699 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var_arguments, var698);
+var600 = ((val*(*)(val* self))(var599->class->vft[COLOR_standard__string__Object__to_s]))(var599); /* to_s on <var599:nullable Object(RuntimeVariable)>*/
 }
-var700 = 1;
+((struct instance_standard__NativeArray*)var592)->values[2]=var600;
 {
-var701 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var_arguments, var700);
+var601 = ((val*(*)(val* self))(var592->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var592); /* native_to_s on <var592:NativeArray[String]>*/
+}
+varonce591 = var592;
+if (unlikely(var_ret == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Cast failed");
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 2197);
+fatal_exit(1);
 }
 {
-var702 = nit___nit__SeparateCompilerVisitor___nit__abstract_compiler__AbstractCompilerVisitor__equal_test(var_v, var699, var701);
+var602 = nit___nit__AbstractCompilerVisitor___new_expr(var_v, var601, var_ret);
 }
 {
-nit___nit__AbstractCompilerVisitor___ret(var_v, var702); /* Direct call abstract_compiler#AbstractCompilerVisitor#ret on <var_v:AbstractCompilerVisitor>*/
+nit___nit__AbstractCompilerVisitor___ret(var_v, var602); /* Direct call abstract_compiler#AbstractCompilerVisitor#ret on <var_v:AbstractCompilerVisitor>*/
 }
-var703 = 1;
-var = var703;
+var = 1;
 goto RET_LABEL;
 } else {
-if (varonce704) {
-var705 = varonce704;
+if (likely(varonce603!=NULL)) {
+var604 = varonce603;
 } else {
-var706 = "!=";
-var707 = 2;
-var708 = standard___standard__NativeString___to_s_with_length(var706, var707);
-var705 = var708;
-varonce704 = var705;
+var605 = "-";
+var606 = standard___standard__NativeString___to_s_with_length(var605, 1l);
+var604 = var606;
+varonce603 = var604;
 }
 {
-var709 = ((short int (*)(val* self, val* p0))(var_pname->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_pname, var705) /* == on <var_pname:String>*/;
+var607 = ((short int(*)(val* self, val* p0))(var_pname->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_pname, var604); /* == on <var_pname:String>*/
 }
-if (var709){
-var710 = 0;
-{
-var711 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var_arguments, var710);
+if (var607){
+if (unlikely(varonce608==NULL)) {
+var609 = NEW_standard__NativeArray(3l, &type_standard__NativeArray__standard__String);
+if (likely(varonce610!=NULL)) {
+var611 = varonce610;
+} else {
+var612 = " - ";
+var613 = standard___standard__NativeString___to_s_with_length(var612, 3l);
+var611 = var613;
+varonce610 = var611;
 }
-var712 = 1;
-{
-var713 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var_arguments, var712);
+((struct instance_standard__NativeArray*)var609)->values[1]=var611;
+} else {
+var609 = varonce608;
+varonce608 = NULL;
 }
 {
-var714 = nit___nit__SeparateCompilerVisitor___nit__abstract_compiler__AbstractCompilerVisitor__equal_test(var_v, var711, var713);
+var614 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var_arguments, 0l);
 }
-var_res715 = var714;
-if (varonce716) {
-var717 = varonce716;
-} else {
-var718 = "!";
-var719 = 1;
-var720 = standard___standard__NativeString___to_s_with_length(var718, var719);
-var717 = var720;
-varonce716 = var717;
+{
+var615 = ((val*(*)(val* self))(var614->class->vft[COLOR_standard__string__Object__to_s]))(var614); /* to_s on <var614:nullable Object(RuntimeVariable)>*/
 }
-var721 = NEW_standard__Array(&type_standard__Array__standard__Object);
-{ /* var721 = array_instance Array[Object] */
-var722 = 2;
-var723 = NEW_standard__NativeArray(var722, &type_standard__NativeArray__standard__Object);
-((struct instance_standard__NativeArray*)var723)->values[0] = (val*) var717;
-((struct instance_standard__NativeArray*)var723)->values[1] = (val*) var_res715;
+((struct instance_standard__NativeArray*)var609)->values[0]=var615;
 {
-((void (*)(val* self, val* p0, long p1))(var721->class->vft[COLOR_standard__array__Array__with_native]))(var721, var723, var722) /* with_native on <var721:Array[Object]>*/;
+var616 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var_arguments, 1l);
 }
+{
+var617 = ((val*(*)(val* self))(var616->class->vft[COLOR_standard__string__Object__to_s]))(var616); /* to_s on <var616:nullable Object(RuntimeVariable)>*/
 }
+((struct instance_standard__NativeArray*)var609)->values[2]=var617;
 {
-var724 = ((val* (*)(val* self))(var721->class->vft[COLOR_standard__string__Object__to_s]))(var721) /* to_s on <var721:Array[Object]>*/;
+var618 = ((val*(*)(val* self))(var609->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var609); /* native_to_s on <var609:NativeArray[String]>*/
 }
+varonce608 = var609;
 if (unlikely(var_ret == NULL)) {
 PRINT_ERROR("Runtime error: %s", "Cast failed");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 2079);
-show_backtrace(1);
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 2200);
+fatal_exit(1);
 }
 {
-var725 = nit___nit__AbstractCompilerVisitor___new_expr(var_v, var724, var_ret);
+var619 = nit___nit__AbstractCompilerVisitor___new_expr(var_v, var618, var_ret);
 }
 {
-nit___nit__AbstractCompilerVisitor___ret(var_v, var725); /* Direct call abstract_compiler#AbstractCompilerVisitor#ret on <var_v:AbstractCompilerVisitor>*/
+nit___nit__AbstractCompilerVisitor___ret(var_v, var619); /* Direct call abstract_compiler#AbstractCompilerVisitor#ret on <var_v:AbstractCompilerVisitor>*/
 }
-var726 = 1;
-var = var726;
+var = 1;
 goto RET_LABEL;
 } else {
+if (likely(varonce620!=NULL)) {
+var621 = varonce620;
+} else {
+var622 = "unary -";
+var623 = standard___standard__NativeString___to_s_with_length(var622, 7l);
+var621 = var623;
+varonce620 = var621;
 }
+{
+var624 = ((short int(*)(val* self, val* p0))(var_pname->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_pname, var621); /* == on <var_pname:String>*/
 }
-}
-}
+if (var624){
+if (unlikely(varonce625==NULL)) {
+var626 = NEW_standard__NativeArray(2l, &type_standard__NativeArray__standard__String);
+if (likely(varonce627!=NULL)) {
+var628 = varonce627;
 } else {
-if (varonce727) {
-var728 = varonce727;
+var629 = "-";
+var630 = standard___standard__NativeString___to_s_with_length(var629, 1l);
+var628 = var630;
+varonce627 = var628;
+}
+((struct instance_standard__NativeArray*)var626)->values[0]=var628;
 } else {
-var729 = "Float";
-var730 = 5;
-var731 = standard___standard__NativeString___to_s_with_length(var729, var730);
-var728 = var731;
-varonce727 = var728;
+var626 = varonce625;
+varonce625 = NULL;
 }
 {
-var732 = ((short int (*)(val* self, val* p0))(var_cname->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_cname, var728) /* == on <var_cname:String>*/;
+var631 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var_arguments, 0l);
 }
-if (var732){
-if (varonce733) {
-var734 = varonce733;
-} else {
-var735 = "output";
-var736 = 6;
-var737 = standard___standard__NativeString___to_s_with_length(var735, var736);
-var734 = var737;
-varonce733 = var734;
+{
+var632 = ((val*(*)(val* self))(var631->class->vft[COLOR_standard__string__Object__to_s]))(var631); /* to_s on <var631:nullable Object(RuntimeVariable)>*/
 }
+((struct instance_standard__NativeArray*)var626)->values[1]=var632;
 {
-var738 = ((short int (*)(val* self, val* p0))(var_pname->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_pname, var734) /* == on <var_pname:String>*/;
+var633 = ((val*(*)(val* self))(var626->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var626); /* native_to_s on <var626:NativeArray[String]>*/
 }
-if (var738){
-if (varonce739) {
-var740 = varonce739;
-} else {
-var741 = "printf(\"%f\\n\", ";
-var742 = 15;
-var743 = standard___standard__NativeString___to_s_with_length(var741, var742);
-var740 = var743;
-varonce739 = var740;
+varonce625 = var626;
+if (unlikely(var_ret == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Cast failed");
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 2203);
+fatal_exit(1);
 }
 {
-var744 = standard___standard__SequenceRead___Collection__first(var_arguments);
+var634 = nit___nit__AbstractCompilerVisitor___new_expr(var_v, var633, var_ret);
 }
-if (varonce745) {
-var746 = varonce745;
+{
+nit___nit__AbstractCompilerVisitor___ret(var_v, var634); /* Direct call abstract_compiler#AbstractCompilerVisitor#ret on <var_v:AbstractCompilerVisitor>*/
+}
+var = 1;
+goto RET_LABEL;
 } else {
-var747 = ");";
-var748 = 2;
-var749 = standard___standard__NativeString___to_s_with_length(var747, var748);
-var746 = var749;
-varonce745 = var746;
+if (likely(varonce635!=NULL)) {
+var636 = varonce635;
+} else {
+var637 = "unary +";
+var638 = standard___standard__NativeString___to_s_with_length(var637, 7l);
+var636 = var638;
+varonce635 = var636;
 }
-var750 = NEW_standard__Array(&type_standard__Array__standard__Object);
-{ /* var750 = array_instance Array[Object] */
-var751 = 3;
-var752 = NEW_standard__NativeArray(var751, &type_standard__NativeArray__standard__Object);
-((struct instance_standard__NativeArray*)var752)->values[0] = (val*) var740;
-((struct instance_standard__NativeArray*)var752)->values[1] = (val*) var744;
-((struct instance_standard__NativeArray*)var752)->values[2] = (val*) var746;
 {
-((void (*)(val* self, val* p0, long p1))(var750->class->vft[COLOR_standard__array__Array__with_native]))(var750, var752, var751) /* with_native on <var750:Array[Object]>*/;
-}
+var639 = ((short int(*)(val* self, val* p0))(var_pname->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_pname, var636); /* == on <var_pname:String>*/
 }
+if (var639){
 {
-var753 = ((val* (*)(val* self))(var750->class->vft[COLOR_standard__string__Object__to_s]))(var750) /* to_s on <var750:Array[Object]>*/;
+var640 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var_arguments, 0l);
 }
 {
-nit___nit__AbstractCompilerVisitor___add(var_v, var753); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <var_v:AbstractCompilerVisitor>*/
+nit___nit__AbstractCompilerVisitor___ret(var_v, var640); /* Direct call abstract_compiler#AbstractCompilerVisitor#ret on <var_v:AbstractCompilerVisitor>*/
 }
-var754 = 1;
-var = var754;
+var = 1;
 goto RET_LABEL;
 } else {
-if (varonce755) {
-var756 = varonce755;
+if (likely(varonce641!=NULL)) {
+var642 = varonce641;
 } else {
-var757 = "object_id";
-var758 = 9;
-var759 = standard___standard__NativeString___to_s_with_length(var757, var758);
-var756 = var759;
-varonce755 = var756;
+var643 = "*";
+var644 = standard___standard__NativeString___to_s_with_length(var643, 1l);
+var642 = var644;
+varonce641 = var642;
 }
 {
-var760 = ((short int (*)(val* self, val* p0))(var_pname->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_pname, var756) /* == on <var_pname:String>*/;
+var645 = ((short int(*)(val* self, val* p0))(var_pname->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_pname, var642); /* == on <var_pname:String>*/
 }
-if (var760){
-if (varonce761) {
-var762 = varonce761;
+if (var645){
+if (unlikely(varonce646==NULL)) {
+var647 = NEW_standard__NativeArray(3l, &type_standard__NativeArray__standard__String);
+if (likely(varonce648!=NULL)) {
+var649 = varonce648;
 } else {
-var763 = "(double)";
-var764 = 8;
-var765 = standard___standard__NativeString___to_s_with_length(var763, var764);
-var762 = var765;
-varonce761 = var762;
+var650 = " * ";
+var651 = standard___standard__NativeString___to_s_with_length(var650, 3l);
+var649 = var651;
+varonce648 = var649;
+}
+((struct instance_standard__NativeArray*)var647)->values[1]=var649;
+} else {
+var647 = varonce646;
+varonce646 = NULL;
+}
+{
+var652 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var_arguments, 0l);
 }
 {
-var766 = standard___standard__SequenceRead___Collection__first(var_arguments);
+var653 = ((val*(*)(val* self))(var652->class->vft[COLOR_standard__string__Object__to_s]))(var652); /* to_s on <var652:nullable Object(RuntimeVariable)>*/
 }
-var767 = NEW_standard__Array(&type_standard__Array__standard__Object);
-{ /* var767 = array_instance Array[Object] */
-var768 = 2;
-var769 = NEW_standard__NativeArray(var768, &type_standard__NativeArray__standard__Object);
-((struct instance_standard__NativeArray*)var769)->values[0] = (val*) var762;
-((struct instance_standard__NativeArray*)var769)->values[1] = (val*) var766;
+((struct instance_standard__NativeArray*)var647)->values[0]=var653;
 {
-((void (*)(val* self, val* p0, long p1))(var767->class->vft[COLOR_standard__array__Array__with_native]))(var767, var769, var768) /* with_native on <var767:Array[Object]>*/;
+var654 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var_arguments, 1l);
 }
+{
+var655 = ((val*(*)(val* self))(var654->class->vft[COLOR_standard__string__Object__to_s]))(var654); /* to_s on <var654:nullable Object(RuntimeVariable)>*/
 }
+((struct instance_standard__NativeArray*)var647)->values[2]=var655;
 {
-var770 = ((val* (*)(val* self))(var767->class->vft[COLOR_standard__string__Object__to_s]))(var767) /* to_s on <var767:Array[Object]>*/;
+var656 = ((val*(*)(val* self))(var647->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var647); /* native_to_s on <var647:NativeArray[String]>*/
 }
+varonce646 = var647;
 if (unlikely(var_ret == NULL)) {
 PRINT_ERROR("Runtime error: %s", "Cast failed");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 2087);
-show_backtrace(1);
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 2209);
+fatal_exit(1);
 }
 {
-var771 = nit___nit__AbstractCompilerVisitor___new_expr(var_v, var770, var_ret);
+var657 = nit___nit__AbstractCompilerVisitor___new_expr(var_v, var656, var_ret);
 }
 {
-nit___nit__AbstractCompilerVisitor___ret(var_v, var771); /* Direct call abstract_compiler#AbstractCompilerVisitor#ret on <var_v:AbstractCompilerVisitor>*/
+nit___nit__AbstractCompilerVisitor___ret(var_v, var657); /* Direct call abstract_compiler#AbstractCompilerVisitor#ret on <var_v:AbstractCompilerVisitor>*/
 }
-var772 = 1;
-var = var772;
+var = 1;
 goto RET_LABEL;
 } else {
-if (varonce773) {
-var774 = varonce773;
+if (likely(varonce658!=NULL)) {
+var659 = varonce658;
 } else {
-var775 = "+";
-var776 = 1;
-var777 = standard___standard__NativeString___to_s_with_length(var775, var776);
-var774 = var777;
-varonce773 = var774;
+var660 = "/";
+var661 = standard___standard__NativeString___to_s_with_length(var660, 1l);
+var659 = var661;
+varonce658 = var659;
 }
 {
-var778 = ((short int (*)(val* self, val* p0))(var_pname->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_pname, var774) /* == on <var_pname:String>*/;
+var662 = ((short int(*)(val* self, val* p0))(var_pname->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_pname, var659); /* == on <var_pname:String>*/
 }
-if (var778){
-var779 = 0;
-{
-var780 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var_arguments, var779);
+if (var662){
+if (unlikely(varonce663==NULL)) {
+var664 = NEW_standard__NativeArray(3l, &type_standard__NativeArray__standard__String);
+if (likely(varonce665!=NULL)) {
+var666 = varonce665;
+} else {
+var667 = " / ";
+var668 = standard___standard__NativeString___to_s_with_length(var667, 3l);
+var666 = var668;
+varonce665 = var666;
 }
-if (varonce781) {
-var782 = varonce781;
+((struct instance_standard__NativeArray*)var664)->values[1]=var666;
 } else {
-var783 = " + ";
-var784 = 3;
-var785 = standard___standard__NativeString___to_s_with_length(var783, var784);
-var782 = var785;
-varonce781 = var782;
+var664 = varonce663;
+varonce663 = NULL;
+}
+{
+var669 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var_arguments, 0l);
 }
-var786 = 1;
 {
-var787 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var_arguments, var786);
+var670 = ((val*(*)(val* self))(var669->class->vft[COLOR_standard__string__Object__to_s]))(var669); /* to_s on <var669:nullable Object(RuntimeVariable)>*/
 }
-var788 = NEW_standard__Array(&type_standard__Array__standard__Object);
-{ /* var788 = array_instance Array[Object] */
-var789 = 3;
-var790 = NEW_standard__NativeArray(var789, &type_standard__NativeArray__standard__Object);
-((struct instance_standard__NativeArray*)var790)->values[0] = (val*) var780;
-((struct instance_standard__NativeArray*)var790)->values[1] = (val*) var782;
-((struct instance_standard__NativeArray*)var790)->values[2] = (val*) var787;
+((struct instance_standard__NativeArray*)var664)->values[0]=var670;
 {
-((void (*)(val* self, val* p0, long p1))(var788->class->vft[COLOR_standard__array__Array__with_native]))(var788, var790, var789) /* with_native on <var788:Array[Object]>*/;
+var671 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var_arguments, 1l);
 }
+{
+var672 = ((val*(*)(val* self))(var671->class->vft[COLOR_standard__string__Object__to_s]))(var671); /* to_s on <var671:nullable Object(RuntimeVariable)>*/
 }
+((struct instance_standard__NativeArray*)var664)->values[2]=var672;
 {
-var791 = ((val* (*)(val* self))(var788->class->vft[COLOR_standard__string__Object__to_s]))(var788) /* to_s on <var788:Array[Object]>*/;
+var673 = ((val*(*)(val* self))(var664->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var664); /* native_to_s on <var664:NativeArray[String]>*/
 }
+varonce663 = var664;
 if (unlikely(var_ret == NULL)) {
 PRINT_ERROR("Runtime error: %s", "Cast failed");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 2090);
-show_backtrace(1);
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 2212);
+fatal_exit(1);
 }
 {
-var792 = nit___nit__AbstractCompilerVisitor___new_expr(var_v, var791, var_ret);
+var674 = nit___nit__AbstractCompilerVisitor___new_expr(var_v, var673, var_ret);
 }
 {
-nit___nit__AbstractCompilerVisitor___ret(var_v, var792); /* Direct call abstract_compiler#AbstractCompilerVisitor#ret on <var_v:AbstractCompilerVisitor>*/
+nit___nit__AbstractCompilerVisitor___ret(var_v, var674); /* Direct call abstract_compiler#AbstractCompilerVisitor#ret on <var_v:AbstractCompilerVisitor>*/
 }
-var793 = 1;
-var = var793;
+var = 1;
 goto RET_LABEL;
 } else {
-if (varonce794) {
-var795 = varonce794;
+if (likely(varonce675!=NULL)) {
+var676 = varonce675;
 } else {
-var796 = "-";
-var797 = 1;
-var798 = standard___standard__NativeString___to_s_with_length(var796, var797);
-var795 = var798;
-varonce794 = var795;
+var677 = "%";
+var678 = standard___standard__NativeString___to_s_with_length(var677, 1l);
+var676 = var678;
+varonce675 = var676;
 }
 {
-var799 = ((short int (*)(val* self, val* p0))(var_pname->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_pname, var795) /* == on <var_pname:String>*/;
+var679 = ((short int(*)(val* self, val* p0))(var_pname->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_pname, var676); /* == on <var_pname:String>*/
 }
-if (var799){
-var800 = 0;
-{
-var801 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var_arguments, var800);
+if (var679){
+if (unlikely(varonce680==NULL)) {
+var681 = NEW_standard__NativeArray(3l, &type_standard__NativeArray__standard__String);
+if (likely(varonce682!=NULL)) {
+var683 = varonce682;
+} else {
+var684 = " % ";
+var685 = standard___standard__NativeString___to_s_with_length(var684, 3l);
+var683 = var685;
+varonce682 = var683;
 }
-if (varonce802) {
-var803 = varonce802;
+((struct instance_standard__NativeArray*)var681)->values[1]=var683;
 } else {
-var804 = " - ";
-var805 = 3;
-var806 = standard___standard__NativeString___to_s_with_length(var804, var805);
-var803 = var806;
-varonce802 = var803;
+var681 = varonce680;
+varonce680 = NULL;
+}
+{
+var686 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var_arguments, 0l);
 }
-var807 = 1;
 {
-var808 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var_arguments, var807);
+var687 = ((val*(*)(val* self))(var686->class->vft[COLOR_standard__string__Object__to_s]))(var686); /* to_s on <var686:nullable Object(RuntimeVariable)>*/
 }
-var809 = NEW_standard__Array(&type_standard__Array__standard__Object);
-{ /* var809 = array_instance Array[Object] */
-var810 = 3;
-var811 = NEW_standard__NativeArray(var810, &type_standard__NativeArray__standard__Object);
-((struct instance_standard__NativeArray*)var811)->values[0] = (val*) var801;
-((struct instance_standard__NativeArray*)var811)->values[1] = (val*) var803;
-((struct instance_standard__NativeArray*)var811)->values[2] = (val*) var808;
+((struct instance_standard__NativeArray*)var681)->values[0]=var687;
 {
-((void (*)(val* self, val* p0, long p1))(var809->class->vft[COLOR_standard__array__Array__with_native]))(var809, var811, var810) /* with_native on <var809:Array[Object]>*/;
+var688 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var_arguments, 1l);
 }
+{
+var689 = ((val*(*)(val* self))(var688->class->vft[COLOR_standard__string__Object__to_s]))(var688); /* to_s on <var688:nullable Object(RuntimeVariable)>*/
 }
+((struct instance_standard__NativeArray*)var681)->values[2]=var689;
 {
-var812 = ((val* (*)(val* self))(var809->class->vft[COLOR_standard__string__Object__to_s]))(var809) /* to_s on <var809:Array[Object]>*/;
+var690 = ((val*(*)(val* self))(var681->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var681); /* native_to_s on <var681:NativeArray[String]>*/
 }
+varonce680 = var681;
 if (unlikely(var_ret == NULL)) {
 PRINT_ERROR("Runtime error: %s", "Cast failed");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 2093);
-show_backtrace(1);
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 2215);
+fatal_exit(1);
 }
 {
-var813 = nit___nit__AbstractCompilerVisitor___new_expr(var_v, var812, var_ret);
+var691 = nit___nit__AbstractCompilerVisitor___new_expr(var_v, var690, var_ret);
 }
 {
-nit___nit__AbstractCompilerVisitor___ret(var_v, var813); /* Direct call abstract_compiler#AbstractCompilerVisitor#ret on <var_v:AbstractCompilerVisitor>*/
+nit___nit__AbstractCompilerVisitor___ret(var_v, var691); /* Direct call abstract_compiler#AbstractCompilerVisitor#ret on <var_v:AbstractCompilerVisitor>*/
 }
-var814 = 1;
-var = var814;
+var = 1;
 goto RET_LABEL;
 } else {
-if (varonce815) {
-var816 = varonce815;
+if (likely(varonce692!=NULL)) {
+var693 = varonce692;
 } else {
-var817 = "unary -";
-var818 = 7;
-var819 = standard___standard__NativeString___to_s_with_length(var817, var818);
-var816 = var819;
-varonce815 = var816;
+var694 = "lshift";
+var695 = standard___standard__NativeString___to_s_with_length(var694, 6l);
+var693 = var695;
+varonce692 = var693;
 }
 {
-var820 = ((short int (*)(val* self, val* p0))(var_pname->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_pname, var816) /* == on <var_pname:String>*/;
+var696 = ((short int(*)(val* self, val* p0))(var_pname->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_pname, var693); /* == on <var_pname:String>*/
 }
-if (var820){
-if (varonce821) {
-var822 = varonce821;
+if (var696){
+if (unlikely(varonce697==NULL)) {
+var698 = NEW_standard__NativeArray(3l, &type_standard__NativeArray__standard__String);
+if (likely(varonce699!=NULL)) {
+var700 = varonce699;
 } else {
-var823 = "-";
-var824 = 1;
-var825 = standard___standard__NativeString___to_s_with_length(var823, var824);
-var822 = var825;
-varonce821 = var822;
+var701 = " << ";
+var702 = standard___standard__NativeString___to_s_with_length(var701, 4l);
+var700 = var702;
+varonce699 = var700;
+}
+((struct instance_standard__NativeArray*)var698)->values[1]=var700;
+} else {
+var698 = varonce697;
+varonce697 = NULL;
+}
+{
+var703 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var_arguments, 0l);
 }
-var826 = 0;
 {
-var827 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var_arguments, var826);
+var704 = ((val*(*)(val* self))(var703->class->vft[COLOR_standard__string__Object__to_s]))(var703); /* to_s on <var703:nullable Object(RuntimeVariable)>*/
 }
-var828 = NEW_standard__Array(&type_standard__Array__standard__Object);
-{ /* var828 = array_instance Array[Object] */
-var829 = 2;
-var830 = NEW_standard__NativeArray(var829, &type_standard__NativeArray__standard__Object);
-((struct instance_standard__NativeArray*)var830)->values[0] = (val*) var822;
-((struct instance_standard__NativeArray*)var830)->values[1] = (val*) var827;
+((struct instance_standard__NativeArray*)var698)->values[0]=var704;
 {
-((void (*)(val* self, val* p0, long p1))(var828->class->vft[COLOR_standard__array__Array__with_native]))(var828, var830, var829) /* with_native on <var828:Array[Object]>*/;
+var705 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var_arguments, 1l);
 }
+{
+var706 = ((val*(*)(val* self))(var705->class->vft[COLOR_standard__string__Object__to_s]))(var705); /* to_s on <var705:nullable Object(RuntimeVariable)>*/
 }
+((struct instance_standard__NativeArray*)var698)->values[2]=var706;
 {
-var831 = ((val* (*)(val* self))(var828->class->vft[COLOR_standard__string__Object__to_s]))(var828) /* to_s on <var828:Array[Object]>*/;
+var707 = ((val*(*)(val* self))(var698->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var698); /* native_to_s on <var698:NativeArray[String]>*/
 }
+varonce697 = var698;
 if (unlikely(var_ret == NULL)) {
 PRINT_ERROR("Runtime error: %s", "Cast failed");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 2096);
-show_backtrace(1);
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 2218);
+fatal_exit(1);
 }
 {
-var832 = nit___nit__AbstractCompilerVisitor___new_expr(var_v, var831, var_ret);
+var708 = nit___nit__AbstractCompilerVisitor___new_expr(var_v, var707, var_ret);
 }
 {
-nit___nit__AbstractCompilerVisitor___ret(var_v, var832); /* Direct call abstract_compiler#AbstractCompilerVisitor#ret on <var_v:AbstractCompilerVisitor>*/
+nit___nit__AbstractCompilerVisitor___ret(var_v, var708); /* Direct call abstract_compiler#AbstractCompilerVisitor#ret on <var_v:AbstractCompilerVisitor>*/
 }
-var833 = 1;
-var = var833;
+var = 1;
 goto RET_LABEL;
 } else {
-if (varonce834) {
-var835 = varonce834;
+if (likely(varonce709!=NULL)) {
+var710 = varonce709;
 } else {
-var836 = "succ";
-var837 = 4;
-var838 = standard___standard__NativeString___to_s_with_length(var836, var837);
-var835 = var838;
-varonce834 = var835;
+var711 = "rshift";
+var712 = standard___standard__NativeString___to_s_with_length(var711, 6l);
+var710 = var712;
+varonce709 = var710;
 }
 {
-var839 = ((short int (*)(val* self, val* p0))(var_pname->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_pname, var835) /* == on <var_pname:String>*/;
+var713 = ((short int(*)(val* self, val* p0))(var_pname->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_pname, var710); /* == on <var_pname:String>*/
 }
-if (var839){
-var840 = 0;
-{
-var841 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var_arguments, var840);
+if (var713){
+if (unlikely(varonce714==NULL)) {
+var715 = NEW_standard__NativeArray(3l, &type_standard__NativeArray__standard__String);
+if (likely(varonce716!=NULL)) {
+var717 = varonce716;
+} else {
+var718 = " >> ";
+var719 = standard___standard__NativeString___to_s_with_length(var718, 4l);
+var717 = var719;
+varonce716 = var717;
 }
-if (varonce842) {
-var843 = varonce842;
+((struct instance_standard__NativeArray*)var715)->values[1]=var717;
 } else {
-var844 = "+1";
-var845 = 2;
-var846 = standard___standard__NativeString___to_s_with_length(var844, var845);
-var843 = var846;
-varonce842 = var843;
+var715 = varonce714;
+varonce714 = NULL;
+}
+{
+var720 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var_arguments, 0l);
+}
+{
+var721 = ((val*(*)(val* self))(var720->class->vft[COLOR_standard__string__Object__to_s]))(var720); /* to_s on <var720:nullable Object(RuntimeVariable)>*/
 }
-var847 = NEW_standard__Array(&type_standard__Array__standard__Object);
-{ /* var847 = array_instance Array[Object] */
-var848 = 2;
-var849 = NEW_standard__NativeArray(var848, &type_standard__NativeArray__standard__Object);
-((struct instance_standard__NativeArray*)var849)->values[0] = (val*) var841;
-((struct instance_standard__NativeArray*)var849)->values[1] = (val*) var843;
+((struct instance_standard__NativeArray*)var715)->values[0]=var721;
 {
-((void (*)(val* self, val* p0, long p1))(var847->class->vft[COLOR_standard__array__Array__with_native]))(var847, var849, var848) /* with_native on <var847:Array[Object]>*/;
+var722 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var_arguments, 1l);
 }
+{
+var723 = ((val*(*)(val* self))(var722->class->vft[COLOR_standard__string__Object__to_s]))(var722); /* to_s on <var722:nullable Object(RuntimeVariable)>*/
 }
+((struct instance_standard__NativeArray*)var715)->values[2]=var723;
 {
-var850 = ((val* (*)(val* self))(var847->class->vft[COLOR_standard__string__Object__to_s]))(var847) /* to_s on <var847:Array[Object]>*/;
+var724 = ((val*(*)(val* self))(var715->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var715); /* native_to_s on <var715:NativeArray[String]>*/
 }
+varonce714 = var715;
 if (unlikely(var_ret == NULL)) {
 PRINT_ERROR("Runtime error: %s", "Cast failed");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 2099);
-show_backtrace(1);
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 2221);
+fatal_exit(1);
 }
 {
-var851 = nit___nit__AbstractCompilerVisitor___new_expr(var_v, var850, var_ret);
+var725 = nit___nit__AbstractCompilerVisitor___new_expr(var_v, var724, var_ret);
 }
 {
-nit___nit__AbstractCompilerVisitor___ret(var_v, var851); /* Direct call abstract_compiler#AbstractCompilerVisitor#ret on <var_v:AbstractCompilerVisitor>*/
+nit___nit__AbstractCompilerVisitor___ret(var_v, var725); /* Direct call abstract_compiler#AbstractCompilerVisitor#ret on <var_v:AbstractCompilerVisitor>*/
 }
-var852 = 1;
-var = var852;
+var = 1;
 goto RET_LABEL;
 } else {
-if (varonce853) {
-var854 = varonce853;
+if (likely(varonce726!=NULL)) {
+var727 = varonce726;
 } else {
-var855 = "prec";
-var856 = 4;
-var857 = standard___standard__NativeString___to_s_with_length(var855, var856);
-var854 = var857;
-varonce853 = var854;
-}
-{
-var858 = ((short int (*)(val* self, val* p0))(var_pname->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_pname, var854) /* == on <var_pname:String>*/;
+var728 = "==";
+var729 = standard___standard__NativeString___to_s_with_length(var728, 2l);
+var727 = var729;
+varonce726 = var727;
 }
-if (var858){
-var859 = 0;
 {
-var860 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var_arguments, var859);
-}
-if (varonce861) {
-var862 = varonce861;
-} else {
-var863 = "-1";
-var864 = 2;
-var865 = standard___standard__NativeString___to_s_with_length(var863, var864);
-var862 = var865;
-varonce861 = var862;
+var730 = ((short int(*)(val* self, val* p0))(var_pname->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_pname, var727); /* == on <var_pname:String>*/
 }
-var866 = NEW_standard__Array(&type_standard__Array__standard__Object);
-{ /* var866 = array_instance Array[Object] */
-var867 = 2;
-var868 = NEW_standard__NativeArray(var867, &type_standard__NativeArray__standard__Object);
-((struct instance_standard__NativeArray*)var868)->values[0] = (val*) var860;
-((struct instance_standard__NativeArray*)var868)->values[1] = (val*) var862;
+if (var730){
 {
-((void (*)(val* self, val* p0, long p1))(var866->class->vft[COLOR_standard__array__Array__with_native]))(var866, var868, var867) /* with_native on <var866:Array[Object]>*/;
-}
+var731 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var_arguments, 0l);
 }
 {
-var869 = ((val* (*)(val* self))(var866->class->vft[COLOR_standard__string__Object__to_s]))(var866) /* to_s on <var866:Array[Object]>*/;
-}
-if (unlikely(var_ret == NULL)) {
-PRINT_ERROR("Runtime error: %s", "Cast failed");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 2102);
-show_backtrace(1);
+var732 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var_arguments, 1l);
 }
 {
-var870 = nit___nit__AbstractCompilerVisitor___new_expr(var_v, var869, var_ret);
+var733 = nit___nit__SeparateCompilerVisitor___nit__abstract_compiler__AbstractCompilerVisitor__equal_test(var_v, var731, var732);
 }
 {
-nit___nit__AbstractCompilerVisitor___ret(var_v, var870); /* Direct call abstract_compiler#AbstractCompilerVisitor#ret on <var_v:AbstractCompilerVisitor>*/
+nit___nit__AbstractCompilerVisitor___ret(var_v, var733); /* Direct call abstract_compiler#AbstractCompilerVisitor#ret on <var_v:AbstractCompilerVisitor>*/
 }
-var871 = 1;
-var = var871;
+var = 1;
 goto RET_LABEL;
 } else {
-if (varonce872) {
-var873 = varonce872;
+if (likely(varonce734!=NULL)) {
+var735 = varonce734;
 } else {
-var874 = "*";
-var875 = 1;
-var876 = standard___standard__NativeString___to_s_with_length(var874, var875);
-var873 = var876;
-varonce872 = var873;
+var736 = "!=";
+var737 = standard___standard__NativeString___to_s_with_length(var736, 2l);
+var735 = var737;
+varonce734 = var735;
 }
 {
-var877 = ((short int (*)(val* self, val* p0))(var_pname->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_pname, var873) /* == on <var_pname:String>*/;
+var738 = ((short int(*)(val* self, val* p0))(var_pname->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_pname, var735); /* == on <var_pname:String>*/
 }
-if (var877){
-var878 = 0;
+if (var738){
 {
-var879 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var_arguments, var878);
-}
-if (varonce880) {
-var881 = varonce880;
-} else {
-var882 = " * ";
-var883 = 3;
-var884 = standard___standard__NativeString___to_s_with_length(var882, var883);
-var881 = var884;
-varonce880 = var881;
+var739 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var_arguments, 0l);
 }
-var885 = 1;
 {
-var886 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var_arguments, var885);
+var740 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var_arguments, 1l);
 }
-var887 = NEW_standard__Array(&type_standard__Array__standard__Object);
-{ /* var887 = array_instance Array[Object] */
-var888 = 3;
-var889 = NEW_standard__NativeArray(var888, &type_standard__NativeArray__standard__Object);
-((struct instance_standard__NativeArray*)var889)->values[0] = (val*) var879;
-((struct instance_standard__NativeArray*)var889)->values[1] = (val*) var881;
-((struct instance_standard__NativeArray*)var889)->values[2] = (val*) var886;
 {
-((void (*)(val* self, val* p0, long p1))(var887->class->vft[COLOR_standard__array__Array__with_native]))(var887, var889, var888) /* with_native on <var887:Array[Object]>*/;
+var741 = nit___nit__SeparateCompilerVisitor___nit__abstract_compiler__AbstractCompilerVisitor__equal_test(var_v, var739, var740);
 }
+var_res742 = var741;
+if (unlikely(varonce743==NULL)) {
+var744 = NEW_standard__NativeArray(2l, &type_standard__NativeArray__standard__String);
+if (likely(varonce745!=NULL)) {
+var746 = varonce745;
+} else {
+var747 = "!";
+var748 = standard___standard__NativeString___to_s_with_length(var747, 1l);
+var746 = var748;
+varonce745 = var746;
+}
+((struct instance_standard__NativeArray*)var744)->values[0]=var746;
+} else {
+var744 = varonce743;
+varonce743 = NULL;
+}
+{
+var749 = ((val*(*)(val* self))(var_res742->class->vft[COLOR_standard__string__Object__to_s]))(var_res742); /* to_s on <var_res742:RuntimeVariable>*/
 }
+((struct instance_standard__NativeArray*)var744)->values[1]=var749;
 {
-var890 = ((val* (*)(val* self))(var887->class->vft[COLOR_standard__string__Object__to_s]))(var887) /* to_s on <var887:Array[Object]>*/;
+var750 = ((val*(*)(val* self))(var744->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var744); /* native_to_s on <var744:NativeArray[String]>*/
 }
+varonce743 = var744;
 if (unlikely(var_ret == NULL)) {
 PRINT_ERROR("Runtime error: %s", "Cast failed");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 2105);
-show_backtrace(1);
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 2228);
+fatal_exit(1);
 }
 {
-var891 = nit___nit__AbstractCompilerVisitor___new_expr(var_v, var890, var_ret);
+var751 = nit___nit__AbstractCompilerVisitor___new_expr(var_v, var750, var_ret);
 }
 {
-nit___nit__AbstractCompilerVisitor___ret(var_v, var891); /* Direct call abstract_compiler#AbstractCompilerVisitor#ret on <var_v:AbstractCompilerVisitor>*/
+nit___nit__AbstractCompilerVisitor___ret(var_v, var751); /* Direct call abstract_compiler#AbstractCompilerVisitor#ret on <var_v:AbstractCompilerVisitor>*/
 }
-var892 = 1;
-var = var892;
+var = 1;
 goto RET_LABEL;
 } else {
-if (varonce893) {
-var894 = varonce893;
+if (likely(varonce752!=NULL)) {
+var753 = varonce752;
 } else {
-var895 = "/";
-var896 = 1;
-var897 = standard___standard__NativeString___to_s_with_length(var895, var896);
-var894 = var897;
-varonce893 = var894;
+var754 = "<";
+var755 = standard___standard__NativeString___to_s_with_length(var754, 1l);
+var753 = var755;
+varonce752 = var753;
 }
 {
-var898 = ((short int (*)(val* self, val* p0))(var_pname->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_pname, var894) /* == on <var_pname:String>*/;
+var756 = ((short int(*)(val* self, val* p0))(var_pname->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_pname, var753); /* == on <var_pname:String>*/
 }
-if (var898){
-var899 = 0;
-{
-var900 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var_arguments, var899);
+if (var756){
+if (unlikely(varonce757==NULL)) {
+var758 = NEW_standard__NativeArray(3l, &type_standard__NativeArray__standard__String);
+if (likely(varonce759!=NULL)) {
+var760 = varonce759;
+} else {
+var761 = " < ";
+var762 = standard___standard__NativeString___to_s_with_length(var761, 3l);
+var760 = var762;
+varonce759 = var760;
 }
-if (varonce901) {
-var902 = varonce901;
+((struct instance_standard__NativeArray*)var758)->values[1]=var760;
 } else {
-var903 = " / ";
-var904 = 3;
-var905 = standard___standard__NativeString___to_s_with_length(var903, var904);
-var902 = var905;
-varonce901 = var902;
+var758 = varonce757;
+varonce757 = NULL;
+}
+{
+var763 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var_arguments, 0l);
 }
-var906 = 1;
 {
-var907 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var_arguments, var906);
+var764 = ((val*(*)(val* self))(var763->class->vft[COLOR_standard__string__Object__to_s]))(var763); /* to_s on <var763:nullable Object(RuntimeVariable)>*/
 }
-var908 = NEW_standard__Array(&type_standard__Array__standard__Object);
-{ /* var908 = array_instance Array[Object] */
-var909 = 3;
-var910 = NEW_standard__NativeArray(var909, &type_standard__NativeArray__standard__Object);
-((struct instance_standard__NativeArray*)var910)->values[0] = (val*) var900;
-((struct instance_standard__NativeArray*)var910)->values[1] = (val*) var902;
-((struct instance_standard__NativeArray*)var910)->values[2] = (val*) var907;
+((struct instance_standard__NativeArray*)var758)->values[0]=var764;
 {
-((void (*)(val* self, val* p0, long p1))(var908->class->vft[COLOR_standard__array__Array__with_native]))(var908, var910, var909) /* with_native on <var908:Array[Object]>*/;
+var765 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var_arguments, 1l);
 }
+{
+var766 = ((val*(*)(val* self))(var765->class->vft[COLOR_standard__string__Object__to_s]))(var765); /* to_s on <var765:nullable Object(RuntimeVariable)>*/
 }
+((struct instance_standard__NativeArray*)var758)->values[2]=var766;
 {
-var911 = ((val* (*)(val* self))(var908->class->vft[COLOR_standard__string__Object__to_s]))(var908) /* to_s on <var908:Array[Object]>*/;
+var767 = ((val*(*)(val* self))(var758->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var758); /* native_to_s on <var758:NativeArray[String]>*/
 }
+varonce757 = var758;
 if (unlikely(var_ret == NULL)) {
 PRINT_ERROR("Runtime error: %s", "Cast failed");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 2108);
-show_backtrace(1);
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 2231);
+fatal_exit(1);
 }
 {
-var912 = nit___nit__AbstractCompilerVisitor___new_expr(var_v, var911, var_ret);
+var768 = nit___nit__AbstractCompilerVisitor___new_expr(var_v, var767, var_ret);
 }
 {
-nit___nit__AbstractCompilerVisitor___ret(var_v, var912); /* Direct call abstract_compiler#AbstractCompilerVisitor#ret on <var_v:AbstractCompilerVisitor>*/
+nit___nit__AbstractCompilerVisitor___ret(var_v, var768); /* Direct call abstract_compiler#AbstractCompilerVisitor#ret on <var_v:AbstractCompilerVisitor>*/
 }
-var913 = 1;
-var = var913;
+var = 1;
 goto RET_LABEL;
 } else {
-if (varonce914) {
-var915 = varonce914;
+if (likely(varonce769!=NULL)) {
+var770 = varonce769;
 } else {
-var916 = "==";
-var917 = 2;
-var918 = standard___standard__NativeString___to_s_with_length(var916, var917);
-var915 = var918;
-varonce914 = var915;
-}
-{
-var919 = ((short int (*)(val* self, val* p0))(var_pname->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_pname, var915) /* == on <var_pname:String>*/;
-}
-if (var919){
-var920 = 0;
-{
-var921 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var_arguments, var920);
+var771 = ">";
+var772 = standard___standard__NativeString___to_s_with_length(var771, 1l);
+var770 = var772;
+varonce769 = var770;
 }
-var922 = 1;
 {
-var923 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var_arguments, var922);
+var773 = ((short int(*)(val* self, val* p0))(var_pname->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_pname, var770); /* == on <var_pname:String>*/
 }
-{
-var924 = nit___nit__SeparateCompilerVisitor___nit__abstract_compiler__AbstractCompilerVisitor__equal_test(var_v, var921, var923);
-}
-{
-nit___nit__AbstractCompilerVisitor___ret(var_v, var924); /* Direct call abstract_compiler#AbstractCompilerVisitor#ret on <var_v:AbstractCompilerVisitor>*/
-}
-var925 = 1;
-var = var925;
-goto RET_LABEL;
+if (var773){
+if (unlikely(varonce774==NULL)) {
+var775 = NEW_standard__NativeArray(3l, &type_standard__NativeArray__standard__String);
+if (likely(varonce776!=NULL)) {
+var777 = varonce776;
 } else {
-if (varonce926) {
-var927 = varonce926;
-} else {
-var928 = "!=";
-var929 = 2;
-var930 = standard___standard__NativeString___to_s_with_length(var928, var929);
-var927 = var930;
-varonce926 = var927;
+var778 = " > ";
+var779 = standard___standard__NativeString___to_s_with_length(var778, 3l);
+var777 = var779;
+varonce776 = var777;
 }
-{
-var931 = ((short int (*)(val* self, val* p0))(var_pname->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_pname, var927) /* == on <var_pname:String>*/;
+((struct instance_standard__NativeArray*)var775)->values[1]=var777;
+} else {
+var775 = varonce774;
+varonce774 = NULL;
 }
-if (var931){
-var932 = 0;
 {
-var933 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var_arguments, var932);
+var780 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var_arguments, 0l);
 }
-var934 = 1;
 {
-var935 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var_arguments, var934);
+var781 = ((val*(*)(val* self))(var780->class->vft[COLOR_standard__string__Object__to_s]))(var780); /* to_s on <var780:nullable Object(RuntimeVariable)>*/
 }
+((struct instance_standard__NativeArray*)var775)->values[0]=var781;
 {
-var936 = nit___nit__SeparateCompilerVisitor___nit__abstract_compiler__AbstractCompilerVisitor__equal_test(var_v, var933, var935);
-}
-var_res937 = var936;
-if (varonce938) {
-var939 = varonce938;
-} else {
-var940 = "!";
-var941 = 1;
-var942 = standard___standard__NativeString___to_s_with_length(var940, var941);
-var939 = var942;
-varonce938 = var939;
+var782 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var_arguments, 1l);
 }
-var943 = NEW_standard__Array(&type_standard__Array__standard__Object);
-{ /* var943 = array_instance Array[Object] */
-var944 = 2;
-var945 = NEW_standard__NativeArray(var944, &type_standard__NativeArray__standard__Object);
-((struct instance_standard__NativeArray*)var945)->values[0] = (val*) var939;
-((struct instance_standard__NativeArray*)var945)->values[1] = (val*) var_res937;
 {
-((void (*)(val* self, val* p0, long p1))(var943->class->vft[COLOR_standard__array__Array__with_native]))(var943, var945, var944) /* with_native on <var943:Array[Object]>*/;
-}
+var783 = ((val*(*)(val* self))(var782->class->vft[COLOR_standard__string__Object__to_s]))(var782); /* to_s on <var782:nullable Object(RuntimeVariable)>*/
 }
+((struct instance_standard__NativeArray*)var775)->values[2]=var783;
 {
-var946 = ((val* (*)(val* self))(var943->class->vft[COLOR_standard__string__Object__to_s]))(var943) /* to_s on <var943:Array[Object]>*/;
+var784 = ((val*(*)(val* self))(var775->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var775); /* native_to_s on <var775:NativeArray[String]>*/
 }
+varonce774 = var775;
 if (unlikely(var_ret == NULL)) {
 PRINT_ERROR("Runtime error: %s", "Cast failed");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 2115);
-show_backtrace(1);
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 2234);
+fatal_exit(1);
 }
 {
-var947 = nit___nit__AbstractCompilerVisitor___new_expr(var_v, var946, var_ret);
+var785 = nit___nit__AbstractCompilerVisitor___new_expr(var_v, var784, var_ret);
 }
 {
-nit___nit__AbstractCompilerVisitor___ret(var_v, var947); /* Direct call abstract_compiler#AbstractCompilerVisitor#ret on <var_v:AbstractCompilerVisitor>*/
+nit___nit__AbstractCompilerVisitor___ret(var_v, var785); /* Direct call abstract_compiler#AbstractCompilerVisitor#ret on <var_v:AbstractCompilerVisitor>*/
 }
-var948 = 1;
-var = var948;
+var = 1;
 goto RET_LABEL;
 } else {
-if (varonce949) {
-var950 = varonce949;
+if (likely(varonce786!=NULL)) {
+var787 = varonce786;
 } else {
-var951 = "<";
-var952 = 1;
-var953 = standard___standard__NativeString___to_s_with_length(var951, var952);
-var950 = var953;
-varonce949 = var950;
+var788 = "<=";
+var789 = standard___standard__NativeString___to_s_with_length(var788, 2l);
+var787 = var789;
+varonce786 = var787;
 }
 {
-var954 = ((short int (*)(val* self, val* p0))(var_pname->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_pname, var950) /* == on <var_pname:String>*/;
+var790 = ((short int(*)(val* self, val* p0))(var_pname->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_pname, var787); /* == on <var_pname:String>*/
 }
-if (var954){
-var955 = 0;
-{
-var956 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var_arguments, var955);
+if (var790){
+if (unlikely(varonce791==NULL)) {
+var792 = NEW_standard__NativeArray(3l, &type_standard__NativeArray__standard__String);
+if (likely(varonce793!=NULL)) {
+var794 = varonce793;
+} else {
+var795 = " <= ";
+var796 = standard___standard__NativeString___to_s_with_length(var795, 4l);
+var794 = var796;
+varonce793 = var794;
 }
-if (varonce957) {
-var958 = varonce957;
+((struct instance_standard__NativeArray*)var792)->values[1]=var794;
 } else {
-var959 = " < ";
-var960 = 3;
-var961 = standard___standard__NativeString___to_s_with_length(var959, var960);
-var958 = var961;
-varonce957 = var958;
+var792 = varonce791;
+varonce791 = NULL;
+}
+{
+var797 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var_arguments, 0l);
 }
-var962 = 1;
 {
-var963 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var_arguments, var962);
+var798 = ((val*(*)(val* self))(var797->class->vft[COLOR_standard__string__Object__to_s]))(var797); /* to_s on <var797:nullable Object(RuntimeVariable)>*/
 }
-var964 = NEW_standard__Array(&type_standard__Array__standard__Object);
-{ /* var964 = array_instance Array[Object] */
-var965 = 3;
-var966 = NEW_standard__NativeArray(var965, &type_standard__NativeArray__standard__Object);
-((struct instance_standard__NativeArray*)var966)->values[0] = (val*) var956;
-((struct instance_standard__NativeArray*)var966)->values[1] = (val*) var958;
-((struct instance_standard__NativeArray*)var966)->values[2] = (val*) var963;
+((struct instance_standard__NativeArray*)var792)->values[0]=var798;
 {
-((void (*)(val* self, val* p0, long p1))(var964->class->vft[COLOR_standard__array__Array__with_native]))(var964, var966, var965) /* with_native on <var964:Array[Object]>*/;
+var799 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var_arguments, 1l);
 }
+{
+var800 = ((val*(*)(val* self))(var799->class->vft[COLOR_standard__string__Object__to_s]))(var799); /* to_s on <var799:nullable Object(RuntimeVariable)>*/
 }
+((struct instance_standard__NativeArray*)var792)->values[2]=var800;
 {
-var967 = ((val* (*)(val* self))(var964->class->vft[COLOR_standard__string__Object__to_s]))(var964) /* to_s on <var964:Array[Object]>*/;
+var801 = ((val*(*)(val* self))(var792->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var792); /* native_to_s on <var792:NativeArray[String]>*/
 }
+varonce791 = var792;
 if (unlikely(var_ret == NULL)) {
 PRINT_ERROR("Runtime error: %s", "Cast failed");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 2118);
-show_backtrace(1);
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 2237);
+fatal_exit(1);
 }
 {
-var968 = nit___nit__AbstractCompilerVisitor___new_expr(var_v, var967, var_ret);
+var802 = nit___nit__AbstractCompilerVisitor___new_expr(var_v, var801, var_ret);
 }
 {
-nit___nit__AbstractCompilerVisitor___ret(var_v, var968); /* Direct call abstract_compiler#AbstractCompilerVisitor#ret on <var_v:AbstractCompilerVisitor>*/
+nit___nit__AbstractCompilerVisitor___ret(var_v, var802); /* Direct call abstract_compiler#AbstractCompilerVisitor#ret on <var_v:AbstractCompilerVisitor>*/
 }
-var969 = 1;
-var = var969;
+var = 1;
 goto RET_LABEL;
 } else {
-if (varonce970) {
-var971 = varonce970;
+if (likely(varonce803!=NULL)) {
+var804 = varonce803;
 } else {
-var972 = ">";
-var973 = 1;
-var974 = standard___standard__NativeString___to_s_with_length(var972, var973);
-var971 = var974;
-varonce970 = var971;
+var805 = ">=";
+var806 = standard___standard__NativeString___to_s_with_length(var805, 2l);
+var804 = var806;
+varonce803 = var804;
 }
 {
-var975 = ((short int (*)(val* self, val* p0))(var_pname->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_pname, var971) /* == on <var_pname:String>*/;
+var807 = ((short int(*)(val* self, val* p0))(var_pname->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_pname, var804); /* == on <var_pname:String>*/
 }
-if (var975){
-var976 = 0;
-{
-var977 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var_arguments, var976);
+if (var807){
+if (unlikely(varonce808==NULL)) {
+var809 = NEW_standard__NativeArray(3l, &type_standard__NativeArray__standard__String);
+if (likely(varonce810!=NULL)) {
+var811 = varonce810;
+} else {
+var812 = " >= ";
+var813 = standard___standard__NativeString___to_s_with_length(var812, 4l);
+var811 = var813;
+varonce810 = var811;
 }
-if (varonce978) {
-var979 = varonce978;
+((struct instance_standard__NativeArray*)var809)->values[1]=var811;
 } else {
-var980 = " > ";
-var981 = 3;
-var982 = standard___standard__NativeString___to_s_with_length(var980, var981);
-var979 = var982;
-varonce978 = var979;
+var809 = varonce808;
+varonce808 = NULL;
+}
+{
+var814 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var_arguments, 0l);
 }
-var983 = 1;
 {
-var984 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var_arguments, var983);
+var815 = ((val*(*)(val* self))(var814->class->vft[COLOR_standard__string__Object__to_s]))(var814); /* to_s on <var814:nullable Object(RuntimeVariable)>*/
 }
-var985 = NEW_standard__Array(&type_standard__Array__standard__Object);
-{ /* var985 = array_instance Array[Object] */
-var986 = 3;
-var987 = NEW_standard__NativeArray(var986, &type_standard__NativeArray__standard__Object);
-((struct instance_standard__NativeArray*)var987)->values[0] = (val*) var977;
-((struct instance_standard__NativeArray*)var987)->values[1] = (val*) var979;
-((struct instance_standard__NativeArray*)var987)->values[2] = (val*) var984;
+((struct instance_standard__NativeArray*)var809)->values[0]=var815;
 {
-((void (*)(val* self, val* p0, long p1))(var985->class->vft[COLOR_standard__array__Array__with_native]))(var985, var987, var986) /* with_native on <var985:Array[Object]>*/;
+var816 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var_arguments, 1l);
 }
+{
+var817 = ((val*(*)(val* self))(var816->class->vft[COLOR_standard__string__Object__to_s]))(var816); /* to_s on <var816:nullable Object(RuntimeVariable)>*/
 }
+((struct instance_standard__NativeArray*)var809)->values[2]=var817;
 {
-var988 = ((val* (*)(val* self))(var985->class->vft[COLOR_standard__string__Object__to_s]))(var985) /* to_s on <var985:Array[Object]>*/;
+var818 = ((val*(*)(val* self))(var809->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var809); /* native_to_s on <var809:NativeArray[String]>*/
 }
+varonce808 = var809;
 if (unlikely(var_ret == NULL)) {
 PRINT_ERROR("Runtime error: %s", "Cast failed");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 2121);
-show_backtrace(1);
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 2240);
+fatal_exit(1);
 }
 {
-var989 = nit___nit__AbstractCompilerVisitor___new_expr(var_v, var988, var_ret);
+var819 = nit___nit__AbstractCompilerVisitor___new_expr(var_v, var818, var_ret);
 }
 {
-nit___nit__AbstractCompilerVisitor___ret(var_v, var989); /* Direct call abstract_compiler#AbstractCompilerVisitor#ret on <var_v:AbstractCompilerVisitor>*/
+nit___nit__AbstractCompilerVisitor___ret(var_v, var819); /* Direct call abstract_compiler#AbstractCompilerVisitor#ret on <var_v:AbstractCompilerVisitor>*/
 }
-var990 = 1;
-var = var990;
+var = 1;
 goto RET_LABEL;
 } else {
-if (varonce991) {
-var992 = varonce991;
+if (likely(varonce820!=NULL)) {
+var821 = varonce820;
 } else {
-var993 = "<=";
-var994 = 2;
-var995 = standard___standard__NativeString___to_s_with_length(var993, var994);
-var992 = var995;
-varonce991 = var992;
+var822 = "to_i";
+var823 = standard___standard__NativeString___to_s_with_length(var822, 4l);
+var821 = var823;
+varonce820 = var821;
 }
 {
-var996 = ((short int (*)(val* self, val* p0))(var_pname->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_pname, var992) /* == on <var_pname:String>*/;
+var824 = ((short int(*)(val* self, val* p0))(var_pname->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_pname, var821); /* == on <var_pname:String>*/
 }
-if (var996){
-var997 = 0;
-{
-var998 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var_arguments, var997);
+if (var824){
+if (unlikely(varonce825==NULL)) {
+var826 = NEW_standard__NativeArray(2l, &type_standard__NativeArray__standard__String);
+if (likely(varonce827!=NULL)) {
+var828 = varonce827;
+} else {
+var829 = "(long)";
+var830 = standard___standard__NativeString___to_s_with_length(var829, 6l);
+var828 = var830;
+varonce827 = var828;
 }
-if (varonce999) {
-var1000 = varonce999;
+((struct instance_standard__NativeArray*)var826)->values[0]=var828;
 } else {
-var1001 = " <= ";
-var1002 = 4;
-var1003 = standard___standard__NativeString___to_s_with_length(var1001, var1002);
-var1000 = var1003;
-varonce999 = var1000;
+var826 = varonce825;
+varonce825 = NULL;
 }
-var1004 = 1;
 {
-var1005 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var_arguments, var1004);
+var831 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var_arguments, 0l);
 }
-var1006 = NEW_standard__Array(&type_standard__Array__standard__Object);
-{ /* var1006 = array_instance Array[Object] */
-var1007 = 3;
-var1008 = NEW_standard__NativeArray(var1007, &type_standard__NativeArray__standard__Object);
-((struct instance_standard__NativeArray*)var1008)->values[0] = (val*) var998;
-((struct instance_standard__NativeArray*)var1008)->values[1] = (val*) var1000;
-((struct instance_standard__NativeArray*)var1008)->values[2] = (val*) var1005;
 {
-((void (*)(val* self, val* p0, long p1))(var1006->class->vft[COLOR_standard__array__Array__with_native]))(var1006, var1008, var1007) /* with_native on <var1006:Array[Object]>*/;
-}
+var832 = ((val*(*)(val* self))(var831->class->vft[COLOR_standard__string__Object__to_s]))(var831); /* to_s on <var831:nullable Object(RuntimeVariable)>*/
 }
+((struct instance_standard__NativeArray*)var826)->values[1]=var832;
 {
-var1009 = ((val* (*)(val* self))(var1006->class->vft[COLOR_standard__string__Object__to_s]))(var1006) /* to_s on <var1006:Array[Object]>*/;
+var833 = ((val*(*)(val* self))(var826->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var826); /* native_to_s on <var826:NativeArray[String]>*/
 }
+varonce825 = var826;
 if (unlikely(var_ret == NULL)) {
 PRINT_ERROR("Runtime error: %s", "Cast failed");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 2124);
-show_backtrace(1);
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 2243);
+fatal_exit(1);
 }
 {
-var1010 = nit___nit__AbstractCompilerVisitor___new_expr(var_v, var1009, var_ret);
+var834 = nit___nit__AbstractCompilerVisitor___new_expr(var_v, var833, var_ret);
 }
 {
-nit___nit__AbstractCompilerVisitor___ret(var_v, var1010); /* Direct call abstract_compiler#AbstractCompilerVisitor#ret on <var_v:AbstractCompilerVisitor>*/
+nit___nit__AbstractCompilerVisitor___ret(var_v, var834); /* Direct call abstract_compiler#AbstractCompilerVisitor#ret on <var_v:AbstractCompilerVisitor>*/
 }
-var1011 = 1;
-var = var1011;
+var = 1;
 goto RET_LABEL;
 } else {
-if (varonce1012) {
-var1013 = varonce1012;
+if (likely(varonce835!=NULL)) {
+var836 = varonce835;
 } else {
-var1014 = ">=";
-var1015 = 2;
-var1016 = standard___standard__NativeString___to_s_with_length(var1014, var1015);
-var1013 = var1016;
-varonce1012 = var1013;
+var837 = "to_f";
+var838 = standard___standard__NativeString___to_s_with_length(var837, 4l);
+var836 = var838;
+varonce835 = var836;
 }
 {
-var1017 = ((short int (*)(val* self, val* p0))(var_pname->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_pname, var1013) /* == on <var_pname:String>*/;
+var839 = ((short int(*)(val* self, val* p0))(var_pname->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_pname, var836); /* == on <var_pname:String>*/
 }
-if (var1017){
-var1018 = 0;
-{
-var1019 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var_arguments, var1018);
+if (var839){
+if (unlikely(varonce840==NULL)) {
+var841 = NEW_standard__NativeArray(2l, &type_standard__NativeArray__standard__String);
+if (likely(varonce842!=NULL)) {
+var843 = varonce842;
+} else {
+var844 = "(double)";
+var845 = standard___standard__NativeString___to_s_with_length(var844, 8l);
+var843 = var845;
+varonce842 = var843;
 }
-if (varonce1020) {
-var1021 = varonce1020;
+((struct instance_standard__NativeArray*)var841)->values[0]=var843;
 } else {
-var1022 = " >= ";
-var1023 = 4;
-var1024 = standard___standard__NativeString___to_s_with_length(var1022, var1023);
-var1021 = var1024;
-varonce1020 = var1021;
+var841 = varonce840;
+varonce840 = NULL;
 }
-var1025 = 1;
 {
-var1026 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var_arguments, var1025);
+var846 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var_arguments, 0l);
 }
-var1027 = NEW_standard__Array(&type_standard__Array__standard__Object);
-{ /* var1027 = array_instance Array[Object] */
-var1028 = 3;
-var1029 = NEW_standard__NativeArray(var1028, &type_standard__NativeArray__standard__Object);
-((struct instance_standard__NativeArray*)var1029)->values[0] = (val*) var1019;
-((struct instance_standard__NativeArray*)var1029)->values[1] = (val*) var1021;
-((struct instance_standard__NativeArray*)var1029)->values[2] = (val*) var1026;
 {
-((void (*)(val* self, val* p0, long p1))(var1027->class->vft[COLOR_standard__array__Array__with_native]))(var1027, var1029, var1028) /* with_native on <var1027:Array[Object]>*/;
-}
+var847 = ((val*(*)(val* self))(var846->class->vft[COLOR_standard__string__Object__to_s]))(var846); /* to_s on <var846:nullable Object(RuntimeVariable)>*/
 }
+((struct instance_standard__NativeArray*)var841)->values[1]=var847;
 {
-var1030 = ((val* (*)(val* self))(var1027->class->vft[COLOR_standard__string__Object__to_s]))(var1027) /* to_s on <var1027:Array[Object]>*/;
+var848 = ((val*(*)(val* self))(var841->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var841); /* native_to_s on <var841:NativeArray[String]>*/
 }
+varonce840 = var841;
 if (unlikely(var_ret == NULL)) {
 PRINT_ERROR("Runtime error: %s", "Cast failed");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 2127);
-show_backtrace(1);
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 2246);
+fatal_exit(1);
 }
 {
-var1031 = nit___nit__AbstractCompilerVisitor___new_expr(var_v, var1030, var_ret);
+var849 = nit___nit__AbstractCompilerVisitor___new_expr(var_v, var848, var_ret);
 }
 {
-nit___nit__AbstractCompilerVisitor___ret(var_v, var1031); /* Direct call abstract_compiler#AbstractCompilerVisitor#ret on <var_v:AbstractCompilerVisitor>*/
+nit___nit__AbstractCompilerVisitor___ret(var_v, var849); /* Direct call abstract_compiler#AbstractCompilerVisitor#ret on <var_v:AbstractCompilerVisitor>*/
 }
-var1032 = 1;
-var = var1032;
+var = 1;
 goto RET_LABEL;
 } else {
-if (varonce1033) {
-var1034 = varonce1033;
+if (likely(varonce850!=NULL)) {
+var851 = varonce850;
 } else {
-var1035 = "to_i";
-var1036 = 4;
-var1037 = standard___standard__NativeString___to_s_with_length(var1035, var1036);
-var1034 = var1037;
-varonce1033 = var1034;
+var852 = "ascii";
+var853 = standard___standard__NativeString___to_s_with_length(var852, 5l);
+var851 = var853;
+varonce850 = var851;
 }
 {
-var1038 = ((short int (*)(val* self, val* p0))(var_pname->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_pname, var1034) /* == on <var_pname:String>*/;
+var854 = ((short int(*)(val* self, val* p0))(var_pname->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_pname, var851); /* == on <var_pname:String>*/
 }
-if (var1038){
-if (varonce1039) {
-var1040 = varonce1039;
+if (var854){
+if (unlikely(varonce855==NULL)) {
+var856 = NEW_standard__NativeArray(1l, &type_standard__NativeArray__standard__String);
 } else {
-var1041 = "(long)";
-var1042 = 6;
-var1043 = standard___standard__NativeString___to_s_with_length(var1041, var1042);
-var1040 = var1043;
-varonce1039 = var1040;
+var856 = varonce855;
+varonce855 = NULL;
 }
-var1044 = 0;
 {
-var1045 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var_arguments, var1044);
+var857 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var_arguments, 0l);
 }
-var1046 = NEW_standard__Array(&type_standard__Array__standard__Object);
-{ /* var1046 = array_instance Array[Object] */
-var1047 = 2;
-var1048 = NEW_standard__NativeArray(var1047, &type_standard__NativeArray__standard__Object);
-((struct instance_standard__NativeArray*)var1048)->values[0] = (val*) var1040;
-((struct instance_standard__NativeArray*)var1048)->values[1] = (val*) var1045;
 {
-((void (*)(val* self, val* p0, long p1))(var1046->class->vft[COLOR_standard__array__Array__with_native]))(var1046, var1048, var1047) /* with_native on <var1046:Array[Object]>*/;
-}
+var858 = ((val*(*)(val* self))(var857->class->vft[COLOR_standard__string__Object__to_s]))(var857); /* to_s on <var857:nullable Object(RuntimeVariable)>*/
 }
+((struct instance_standard__NativeArray*)var856)->values[0]=var858;
 {
-var1049 = ((val* (*)(val* self))(var1046->class->vft[COLOR_standard__string__Object__to_s]))(var1046) /* to_s on <var1046:Array[Object]>*/;
+var859 = ((val*(*)(val* self))(var856->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var856); /* native_to_s on <var856:NativeArray[String]>*/
 }
+varonce855 = var856;
 if (unlikely(var_ret == NULL)) {
 PRINT_ERROR("Runtime error: %s", "Cast failed");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 2130);
-show_backtrace(1);
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 2249);
+fatal_exit(1);
 }
 {
-var1050 = nit___nit__AbstractCompilerVisitor___new_expr(var_v, var1049, var_ret);
+var860 = nit___nit__AbstractCompilerVisitor___new_expr(var_v, var859, var_ret);
 }
 {
-nit___nit__AbstractCompilerVisitor___ret(var_v, var1050); /* Direct call abstract_compiler#AbstractCompilerVisitor#ret on <var_v:AbstractCompilerVisitor>*/
+nit___nit__AbstractCompilerVisitor___ret(var_v, var860); /* Direct call abstract_compiler#AbstractCompilerVisitor#ret on <var_v:AbstractCompilerVisitor>*/
 }
-var1051 = 1;
-var = var1051;
+var = 1;
 goto RET_LABEL;
 } else {
 }
@@ -4431,4984 +4526,5422 @@ goto RET_LABEL;
 }
 }
 }
+}
+}
+}
+}
 } else {
-if (varonce1052) {
-var1053 = varonce1052;
+if (likely(varonce861!=NULL)) {
+var862 = varonce861;
 } else {
-var1054 = "NativeString";
-var1055 = 12;
-var1056 = standard___standard__NativeString___to_s_with_length(var1054, var1055);
-var1053 = var1056;
-varonce1052 = var1053;
+var863 = "Bool";
+var864 = standard___standard__NativeString___to_s_with_length(var863, 4l);
+var862 = var864;
+varonce861 = var862;
 }
 {
-var1057 = ((short int (*)(val* self, val* p0))(var_cname->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_cname, var1053) /* == on <var_cname:String>*/;
+var865 = ((short int(*)(val* self, val* p0))(var_cname->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_cname, var862); /* == on <var_cname:String>*/
 }
-if (var1057){
-if (varonce1058) {
-var1059 = varonce1058;
+if (var865){
+if (likely(varonce866!=NULL)) {
+var867 = varonce866;
 } else {
-var1060 = "[]";
-var1061 = 2;
-var1062 = standard___standard__NativeString___to_s_with_length(var1060, var1061);
-var1059 = var1062;
-varonce1058 = var1059;
+var868 = "output";
+var869 = standard___standard__NativeString___to_s_with_length(var868, 6l);
+var867 = var869;
+varonce866 = var867;
 }
 {
-var1063 = ((short int (*)(val* self, val* p0))(var_pname->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_pname, var1059) /* == on <var_pname:String>*/;
+var870 = ((short int(*)(val* self, val* p0))(var_pname->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_pname, var867); /* == on <var_pname:String>*/
 }
-if (var1063){
-var1064 = 0;
-{
-var1065 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var_arguments, var1064);
-}
-if (varonce1066) {
-var1067 = varonce1066;
+if (var870){
+if (unlikely(varonce871==NULL)) {
+var872 = NEW_standard__NativeArray(3l, &type_standard__NativeArray__standard__String);
+if (likely(varonce873!=NULL)) {
+var874 = varonce873;
 } else {
-var1068 = "[";
-var1069 = 1;
-var1070 = standard___standard__NativeString___to_s_with_length(var1068, var1069);
-var1067 = var1070;
-varonce1066 = var1067;
+var875 = "printf(";
+var876 = standard___standard__NativeString___to_s_with_length(var875, 7l);
+var874 = var876;
+varonce873 = var874;
 }
-var1071 = 1;
-{
-var1072 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var_arguments, var1071);
+((struct instance_standard__NativeArray*)var872)->values[0]=var874;
+if (likely(varonce877!=NULL)) {
+var878 = varonce877;
+} else {
+var879 = "?\"true\\n\":\"false\\n\");";
+var880 = standard___standard__NativeString___to_s_with_length(var879, 21l);
+var878 = var880;
+varonce877 = var878;
 }
-if (varonce1073) {
-var1074 = varonce1073;
+((struct instance_standard__NativeArray*)var872)->values[2]=var878;
 } else {
-var1075 = "]";
-var1076 = 1;
-var1077 = standard___standard__NativeString___to_s_with_length(var1075, var1076);
-var1074 = var1077;
-varonce1073 = var1074;
+var872 = varonce871;
+varonce871 = NULL;
 }
-var1078 = NEW_standard__Array(&type_standard__Array__standard__Object);
-{ /* var1078 = array_instance Array[Object] */
-var1079 = 4;
-var1080 = NEW_standard__NativeArray(var1079, &type_standard__NativeArray__standard__Object);
-((struct instance_standard__NativeArray*)var1080)->values[0] = (val*) var1065;
-((struct instance_standard__NativeArray*)var1080)->values[1] = (val*) var1067;
-((struct instance_standard__NativeArray*)var1080)->values[2] = (val*) var1072;
-((struct instance_standard__NativeArray*)var1080)->values[3] = (val*) var1074;
 {
-((void (*)(val* self, val* p0, long p1))(var1078->class->vft[COLOR_standard__array__Array__with_native]))(var1078, var1080, var1079) /* with_native on <var1078:Array[Object]>*/;
-}
+var881 = standard___standard__SequenceRead___Collection__first(var_arguments);
 }
 {
-var1081 = ((val* (*)(val* self))(var1078->class->vft[COLOR_standard__string__Object__to_s]))(var1078) /* to_s on <var1078:Array[Object]>*/;
-}
-if (unlikely(var_ret == NULL)) {
-PRINT_ERROR("Runtime error: %s", "Cast failed");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 2135);
-show_backtrace(1);
+var882 = ((val*(*)(val* self))(var881->class->vft[COLOR_standard__string__Object__to_s]))(var881); /* to_s on <var881:nullable Object(RuntimeVariable)>*/
 }
+((struct instance_standard__NativeArray*)var872)->values[1]=var882;
 {
-var1082 = nit___nit__AbstractCompilerVisitor___new_expr(var_v, var1081, var_ret);
+var883 = ((val*(*)(val* self))(var872->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var872); /* native_to_s on <var872:NativeArray[String]>*/
 }
+varonce871 = var872;
 {
-nit___nit__AbstractCompilerVisitor___ret(var_v, var1082); /* Direct call abstract_compiler#AbstractCompilerVisitor#ret on <var_v:AbstractCompilerVisitor>*/
+nit___nit__AbstractCompilerVisitor___add(var_v, var883); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <var_v:AbstractCompilerVisitor>*/
 }
-var1083 = 1;
-var = var1083;
+var = 1;
 goto RET_LABEL;
 } else {
-if (varonce1084) {
-var1085 = varonce1084;
+if (likely(varonce884!=NULL)) {
+var885 = varonce884;
 } else {
-var1086 = "[]=";
-var1087 = 3;
-var1088 = standard___standard__NativeString___to_s_with_length(var1086, var1087);
-var1085 = var1088;
-varonce1084 = var1085;
-}
-{
-var1089 = ((short int (*)(val* self, val* p0))(var_pname->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_pname, var1085) /* == on <var_pname:String>*/;
+var886 = "object_id";
+var887 = standard___standard__NativeString___to_s_with_length(var886, 9l);
+var885 = var887;
+varonce884 = var885;
 }
-if (var1089){
-var1090 = 0;
 {
-var1091 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var_arguments, var1090);
+var888 = ((short int(*)(val* self, val* p0))(var_pname->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_pname, var885); /* == on <var_pname:String>*/
 }
-if (varonce1092) {
-var1093 = varonce1092;
+if (var888){
+if (unlikely(varonce889==NULL)) {
+var890 = NEW_standard__NativeArray(2l, &type_standard__NativeArray__standard__String);
+if (likely(varonce891!=NULL)) {
+var892 = varonce891;
 } else {
-var1094 = "[";
-var1095 = 1;
-var1096 = standard___standard__NativeString___to_s_with_length(var1094, var1095);
-var1093 = var1096;
-varonce1092 = var1093;
-}
-var1097 = 1;
-{
-var1098 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var_arguments, var1097);
+var893 = "(long)";
+var894 = standard___standard__NativeString___to_s_with_length(var893, 6l);
+var892 = var894;
+varonce891 = var892;
 }
-if (varonce1099) {
-var1100 = varonce1099;
+((struct instance_standard__NativeArray*)var890)->values[0]=var892;
 } else {
-var1101 = "]=";
-var1102 = 2;
-var1103 = standard___standard__NativeString___to_s_with_length(var1101, var1102);
-var1100 = var1103;
-varonce1099 = var1100;
+var890 = varonce889;
+varonce889 = NULL;
 }
-var1104 = 2;
 {
-var1105 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var_arguments, var1104);
+var895 = standard___standard__SequenceRead___Collection__first(var_arguments);
 }
-if (varonce1106) {
-var1107 = varonce1106;
-} else {
-var1108 = ";";
-var1109 = 1;
-var1110 = standard___standard__NativeString___to_s_with_length(var1108, var1109);
-var1107 = var1110;
-varonce1106 = var1107;
+{
+var896 = ((val*(*)(val* self))(var895->class->vft[COLOR_standard__string__Object__to_s]))(var895); /* to_s on <var895:nullable Object(RuntimeVariable)>*/
 }
-var1111 = NEW_standard__Array(&type_standard__Array__standard__Object);
-{ /* var1111 = array_instance Array[Object] */
-var1112 = 6;
-var1113 = NEW_standard__NativeArray(var1112, &type_standard__NativeArray__standard__Object);
-((struct instance_standard__NativeArray*)var1113)->values[0] = (val*) var1091;
-((struct instance_standard__NativeArray*)var1113)->values[1] = (val*) var1093;
-((struct instance_standard__NativeArray*)var1113)->values[2] = (val*) var1098;
-((struct instance_standard__NativeArray*)var1113)->values[3] = (val*) var1100;
-((struct instance_standard__NativeArray*)var1113)->values[4] = (val*) var1105;
-((struct instance_standard__NativeArray*)var1113)->values[5] = (val*) var1107;
+((struct instance_standard__NativeArray*)var890)->values[1]=var896;
 {
-((void (*)(val* self, val* p0, long p1))(var1111->class->vft[COLOR_standard__array__Array__with_native]))(var1111, var1113, var1112) /* with_native on <var1111:Array[Object]>*/;
+var897 = ((val*(*)(val* self))(var890->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var890); /* native_to_s on <var890:NativeArray[String]>*/
 }
+varonce889 = var890;
+if (unlikely(var_ret == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Cast failed");
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 2257);
+fatal_exit(1);
 }
 {
-var1114 = ((val* (*)(val* self))(var1111->class->vft[COLOR_standard__string__Object__to_s]))(var1111) /* to_s on <var1111:Array[Object]>*/;
+var898 = nit___nit__AbstractCompilerVisitor___new_expr(var_v, var897, var_ret);
 }
 {
-nit___nit__AbstractCompilerVisitor___add(var_v, var1114); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <var_v:AbstractCompilerVisitor>*/
+nit___nit__AbstractCompilerVisitor___ret(var_v, var898); /* Direct call abstract_compiler#AbstractCompilerVisitor#ret on <var_v:AbstractCompilerVisitor>*/
 }
-var1115 = 1;
-var = var1115;
+var = 1;
 goto RET_LABEL;
 } else {
-if (varonce1116) {
-var1117 = varonce1116;
+if (likely(varonce899!=NULL)) {
+var900 = varonce899;
 } else {
-var1118 = "copy_to";
-var1119 = 7;
-var1120 = standard___standard__NativeString___to_s_with_length(var1118, var1119);
-var1117 = var1120;
-varonce1116 = var1117;
+var901 = "==";
+var902 = standard___standard__NativeString___to_s_with_length(var901, 2l);
+var900 = var902;
+varonce899 = var900;
 }
 {
-var1121 = ((short int (*)(val* self, val* p0))(var_pname->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_pname, var1117) /* == on <var_pname:String>*/;
+var903 = ((short int(*)(val* self, val* p0))(var_pname->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_pname, var900); /* == on <var_pname:String>*/
 }
-if (var1121){
-if (varonce1122) {
-var1123 = varonce1122;
-} else {
-var1124 = "memmove(";
-var1125 = 8;
-var1126 = standard___standard__NativeString___to_s_with_length(var1124, var1125);
-var1123 = var1126;
-varonce1122 = var1123;
+if (var903){
+{
+var904 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var_arguments, 0l);
 }
-var1127 = 1;
 {
-var1128 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var_arguments, var1127);
+var905 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var_arguments, 1l);
 }
-if (varonce1129) {
-var1130 = varonce1129;
-} else {
-var1131 = "+";
-var1132 = 1;
-var1133 = standard___standard__NativeString___to_s_with_length(var1131, var1132);
-var1130 = var1133;
-varonce1129 = var1130;
+{
+var906 = nit___nit__SeparateCompilerVisitor___nit__abstract_compiler__AbstractCompilerVisitor__equal_test(var_v, var904, var905);
 }
-var1134 = 4;
 {
-var1135 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var_arguments, var1134);
+nit___nit__AbstractCompilerVisitor___ret(var_v, var906); /* Direct call abstract_compiler#AbstractCompilerVisitor#ret on <var_v:AbstractCompilerVisitor>*/
 }
-if (varonce1136) {
-var1137 = varonce1136;
+var = 1;
+goto RET_LABEL;
 } else {
-var1138 = ",";
-var1139 = 1;
-var1140 = standard___standard__NativeString___to_s_with_length(var1138, var1139);
-var1137 = var1140;
-varonce1136 = var1137;
+if (likely(varonce907!=NULL)) {
+var908 = varonce907;
+} else {
+var909 = "!=";
+var910 = standard___standard__NativeString___to_s_with_length(var909, 2l);
+var908 = var910;
+varonce907 = var908;
 }
-var1141 = 0;
 {
-var1142 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var_arguments, var1141);
-}
-if (varonce1143) {
-var1144 = varonce1143;
-} else {
-var1145 = "+";
-var1146 = 1;
-var1147 = standard___standard__NativeString___to_s_with_length(var1145, var1146);
-var1144 = var1147;
-varonce1143 = var1144;
+var911 = ((short int(*)(val* self, val* p0))(var_pname->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_pname, var908); /* == on <var_pname:String>*/
 }
-var1148 = 3;
+if (var911){
 {
-var1149 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var_arguments, var1148);
+var912 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var_arguments, 0l);
 }
-if (varonce1150) {
-var1151 = varonce1150;
-} else {
-var1152 = ",";
-var1153 = 1;
-var1154 = standard___standard__NativeString___to_s_with_length(var1152, var1153);
-var1151 = var1154;
-varonce1150 = var1151;
+{
+var913 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var_arguments, 1l);
 }
-var1155 = 2;
 {
-var1156 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var_arguments, var1155);
+var914 = nit___nit__SeparateCompilerVisitor___nit__abstract_compiler__AbstractCompilerVisitor__equal_test(var_v, var912, var913);
+}
+var_res915 = var914;
+if (unlikely(varonce916==NULL)) {
+var917 = NEW_standard__NativeArray(2l, &type_standard__NativeArray__standard__String);
+if (likely(varonce918!=NULL)) {
+var919 = varonce918;
+} else {
+var920 = "!";
+var921 = standard___standard__NativeString___to_s_with_length(var920, 1l);
+var919 = var921;
+varonce918 = var919;
 }
-if (varonce1157) {
-var1158 = varonce1157;
+((struct instance_standard__NativeArray*)var917)->values[0]=var919;
 } else {
-var1159 = ");";
-var1160 = 2;
-var1161 = standard___standard__NativeString___to_s_with_length(var1159, var1160);
-var1158 = var1161;
-varonce1157 = var1158;
+var917 = varonce916;
+varonce916 = NULL;
+}
+{
+var922 = ((val*(*)(val* self))(var_res915->class->vft[COLOR_standard__string__Object__to_s]))(var_res915); /* to_s on <var_res915:RuntimeVariable>*/
 }
-var1162 = NEW_standard__Array(&type_standard__Array__standard__Object);
-{ /* var1162 = array_instance Array[Object] */
-var1163 = 11;
-var1164 = NEW_standard__NativeArray(var1163, &type_standard__NativeArray__standard__Object);
-((struct instance_standard__NativeArray*)var1164)->values[0] = (val*) var1123;
-((struct instance_standard__NativeArray*)var1164)->values[1] = (val*) var1128;
-((struct instance_standard__NativeArray*)var1164)->values[2] = (val*) var1130;
-((struct instance_standard__NativeArray*)var1164)->values[3] = (val*) var1135;
-((struct instance_standard__NativeArray*)var1164)->values[4] = (val*) var1137;
-((struct instance_standard__NativeArray*)var1164)->values[5] = (val*) var1142;
-((struct instance_standard__NativeArray*)var1164)->values[6] = (val*) var1144;
-((struct instance_standard__NativeArray*)var1164)->values[7] = (val*) var1149;
-((struct instance_standard__NativeArray*)var1164)->values[8] = (val*) var1151;
-((struct instance_standard__NativeArray*)var1164)->values[9] = (val*) var1156;
-((struct instance_standard__NativeArray*)var1164)->values[10] = (val*) var1158;
+((struct instance_standard__NativeArray*)var917)->values[1]=var922;
 {
-((void (*)(val* self, val* p0, long p1))(var1162->class->vft[COLOR_standard__array__Array__with_native]))(var1162, var1164, var1163) /* with_native on <var1162:Array[Object]>*/;
+var923 = ((val*(*)(val* self))(var917->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var917); /* native_to_s on <var917:NativeArray[String]>*/
 }
+varonce916 = var917;
+if (unlikely(var_ret == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Cast failed");
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 2264);
+fatal_exit(1);
 }
 {
-var1165 = ((val* (*)(val* self))(var1162->class->vft[COLOR_standard__string__Object__to_s]))(var1162) /* to_s on <var1162:Array[Object]>*/;
+var924 = nit___nit__AbstractCompilerVisitor___new_expr(var_v, var923, var_ret);
 }
 {
-nit___nit__AbstractCompilerVisitor___add(var_v, var1165); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <var_v:AbstractCompilerVisitor>*/
+nit___nit__AbstractCompilerVisitor___ret(var_v, var924); /* Direct call abstract_compiler#AbstractCompilerVisitor#ret on <var_v:AbstractCompilerVisitor>*/
 }
-var1166 = 1;
-var = var1166;
+var = 1;
 goto RET_LABEL;
 } else {
-if (varonce1167) {
-var1168 = varonce1167;
+}
+}
+}
+}
 } else {
-var1169 = "atoi";
-var1170 = 4;
-var1171 = standard___standard__NativeString___to_s_with_length(var1169, var1170);
-var1168 = var1171;
-varonce1167 = var1168;
+if (likely(varonce925!=NULL)) {
+var926 = varonce925;
+} else {
+var927 = "Float";
+var928 = standard___standard__NativeString___to_s_with_length(var927, 5l);
+var926 = var928;
+varonce925 = var926;
 }
 {
-var1172 = ((short int (*)(val* self, val* p0))(var_pname->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_pname, var1168) /* == on <var_pname:String>*/;
+var929 = ((short int(*)(val* self, val* p0))(var_cname->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_cname, var926); /* == on <var_cname:String>*/
 }
-if (var1172){
-if (varonce1173) {
-var1174 = varonce1173;
+if (var929){
+if (likely(varonce930!=NULL)) {
+var931 = varonce930;
 } else {
-var1175 = "atoi(";
-var1176 = 5;
-var1177 = standard___standard__NativeString___to_s_with_length(var1175, var1176);
-var1174 = var1177;
-varonce1173 = var1174;
+var932 = "output";
+var933 = standard___standard__NativeString___to_s_with_length(var932, 6l);
+var931 = var933;
+varonce930 = var931;
 }
-var1178 = 0;
 {
-var1179 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var_arguments, var1178);
+var934 = ((short int(*)(val* self, val* p0))(var_pname->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_pname, var931); /* == on <var_pname:String>*/
 }
-if (varonce1180) {
-var1181 = varonce1180;
+if (var934){
+if (unlikely(varonce935==NULL)) {
+var936 = NEW_standard__NativeArray(3l, &type_standard__NativeArray__standard__String);
+if (likely(varonce937!=NULL)) {
+var938 = varonce937;
 } else {
-var1182 = ");";
-var1183 = 2;
-var1184 = standard___standard__NativeString___to_s_with_length(var1182, var1183);
-var1181 = var1184;
-varonce1180 = var1181;
+var939 = "printf(\"%f\\n\", ";
+var940 = standard___standard__NativeString___to_s_with_length(var939, 15l);
+var938 = var940;
+varonce937 = var938;
 }
-var1185 = NEW_standard__Array(&type_standard__Array__standard__Object);
-{ /* var1185 = array_instance Array[Object] */
-var1186 = 3;
-var1187 = NEW_standard__NativeArray(var1186, &type_standard__NativeArray__standard__Object);
-((struct instance_standard__NativeArray*)var1187)->values[0] = (val*) var1174;
-((struct instance_standard__NativeArray*)var1187)->values[1] = (val*) var1179;
-((struct instance_standard__NativeArray*)var1187)->values[2] = (val*) var1181;
-{
-((void (*)(val* self, val* p0, long p1))(var1185->class->vft[COLOR_standard__array__Array__with_native]))(var1185, var1187, var1186) /* with_native on <var1185:Array[Object]>*/;
+((struct instance_standard__NativeArray*)var936)->values[0]=var938;
+if (likely(varonce941!=NULL)) {
+var942 = varonce941;
+} else {
+var943 = ");";
+var944 = standard___standard__NativeString___to_s_with_length(var943, 2l);
+var942 = var944;
+varonce941 = var942;
 }
+((struct instance_standard__NativeArray*)var936)->values[2]=var942;
+} else {
+var936 = varonce935;
+varonce935 = NULL;
 }
 {
-var1188 = ((val* (*)(val* self))(var1185->class->vft[COLOR_standard__string__Object__to_s]))(var1185) /* to_s on <var1185:Array[Object]>*/;
+var945 = standard___standard__SequenceRead___Collection__first(var_arguments);
 }
-if (unlikely(var_ret == NULL)) {
-PRINT_ERROR("Runtime error: %s", "Cast failed");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 2144);
-show_backtrace(1);
+{
+var946 = ((val*(*)(val* self))(var945->class->vft[COLOR_standard__string__Object__to_s]))(var945); /* to_s on <var945:nullable Object(RuntimeVariable)>*/
 }
+((struct instance_standard__NativeArray*)var936)->values[1]=var946;
 {
-var1189 = nit___nit__AbstractCompilerVisitor___new_expr(var_v, var1188, var_ret);
+var947 = ((val*(*)(val* self))(var936->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var936); /* native_to_s on <var936:NativeArray[String]>*/
 }
+varonce935 = var936;
 {
-nit___nit__AbstractCompilerVisitor___ret(var_v, var1189); /* Direct call abstract_compiler#AbstractCompilerVisitor#ret on <var_v:AbstractCompilerVisitor>*/
+nit___nit__AbstractCompilerVisitor___add(var_v, var947); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <var_v:AbstractCompilerVisitor>*/
 }
-var1190 = 1;
-var = var1190;
+var = 1;
 goto RET_LABEL;
 } else {
-if (varonce1191) {
-var1192 = varonce1191;
+if (likely(varonce948!=NULL)) {
+var949 = varonce948;
 } else {
-var1193 = "new";
-var1194 = 3;
-var1195 = standard___standard__NativeString___to_s_with_length(var1193, var1194);
-var1192 = var1195;
-varonce1191 = var1192;
+var950 = "object_id";
+var951 = standard___standard__NativeString___to_s_with_length(var950, 9l);
+var949 = var951;
+varonce948 = var949;
 }
 {
-var1196 = ((short int (*)(val* self, val* p0))(var_pname->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_pname, var1192) /* == on <var_pname:String>*/;
+var952 = ((short int(*)(val* self, val* p0))(var_pname->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_pname, var949); /* == on <var_pname:String>*/
 }
-if (var1196){
-if (varonce1197) {
-var1198 = varonce1197;
+if (var952){
+if (unlikely(varonce953==NULL)) {
+var954 = NEW_standard__NativeArray(2l, &type_standard__NativeArray__standard__String);
+if (likely(varonce955!=NULL)) {
+var956 = varonce955;
 } else {
-var1199 = "(char*)nit_alloc(";
-var1200 = 17;
-var1201 = standard___standard__NativeString___to_s_with_length(var1199, var1200);
-var1198 = var1201;
-varonce1197 = var1198;
-}
-var1202 = 1;
-{
-var1203 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var_arguments, var1202);
+var957 = "(double)";
+var958 = standard___standard__NativeString___to_s_with_length(var957, 8l);
+var956 = var958;
+varonce955 = var956;
 }
-if (varonce1204) {
-var1205 = varonce1204;
+((struct instance_standard__NativeArray*)var954)->values[0]=var956;
 } else {
-var1206 = ")";
-var1207 = 1;
-var1208 = standard___standard__NativeString___to_s_with_length(var1206, var1207);
-var1205 = var1208;
-varonce1204 = var1205;
+var954 = varonce953;
+varonce953 = NULL;
 }
-var1209 = NEW_standard__Array(&type_standard__Array__standard__Object);
-{ /* var1209 = array_instance Array[Object] */
-var1210 = 3;
-var1211 = NEW_standard__NativeArray(var1210, &type_standard__NativeArray__standard__Object);
-((struct instance_standard__NativeArray*)var1211)->values[0] = (val*) var1198;
-((struct instance_standard__NativeArray*)var1211)->values[1] = (val*) var1203;
-((struct instance_standard__NativeArray*)var1211)->values[2] = (val*) var1205;
 {
-((void (*)(val* self, val* p0, long p1))(var1209->class->vft[COLOR_standard__array__Array__with_native]))(var1209, var1211, var1210) /* with_native on <var1209:Array[Object]>*/;
+var959 = standard___standard__SequenceRead___Collection__first(var_arguments);
 }
+{
+var960 = ((val*(*)(val* self))(var959->class->vft[COLOR_standard__string__Object__to_s]))(var959); /* to_s on <var959:nullable Object(RuntimeVariable)>*/
 }
+((struct instance_standard__NativeArray*)var954)->values[1]=var960;
 {
-var1212 = ((val* (*)(val* self))(var1209->class->vft[COLOR_standard__string__Object__to_s]))(var1209) /* to_s on <var1209:Array[Object]>*/;
+var961 = ((val*(*)(val* self))(var954->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var954); /* native_to_s on <var954:NativeArray[String]>*/
 }
+varonce953 = var954;
 if (unlikely(var_ret == NULL)) {
 PRINT_ERROR("Runtime error: %s", "Cast failed");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 2147);
-show_backtrace(1);
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 2272);
+fatal_exit(1);
 }
 {
-var1213 = nit___nit__AbstractCompilerVisitor___new_expr(var_v, var1212, var_ret);
+var962 = nit___nit__AbstractCompilerVisitor___new_expr(var_v, var961, var_ret);
 }
 {
-nit___nit__AbstractCompilerVisitor___ret(var_v, var1213); /* Direct call abstract_compiler#AbstractCompilerVisitor#ret on <var_v:AbstractCompilerVisitor>*/
+nit___nit__AbstractCompilerVisitor___ret(var_v, var962); /* Direct call abstract_compiler#AbstractCompilerVisitor#ret on <var_v:AbstractCompilerVisitor>*/
 }
-var1214 = 1;
-var = var1214;
+var = 1;
 goto RET_LABEL;
 } else {
+if (likely(varonce963!=NULL)) {
+var964 = varonce963;
+} else {
+var965 = "+";
+var966 = standard___standard__NativeString___to_s_with_length(var965, 1l);
+var964 = var966;
+varonce963 = var964;
 }
+{
+var967 = ((short int(*)(val* self, val* p0))(var_pname->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_pname, var964); /* == on <var_pname:String>*/
 }
-}
-}
-}
+if (var967){
+if (unlikely(varonce968==NULL)) {
+var969 = NEW_standard__NativeArray(3l, &type_standard__NativeArray__standard__String);
+if (likely(varonce970!=NULL)) {
+var971 = varonce970;
 } else {
-if (varonce1215) {
-var1216 = varonce1215;
+var972 = " + ";
+var973 = standard___standard__NativeString___to_s_with_length(var972, 3l);
+var971 = var973;
+varonce970 = var971;
+}
+((struct instance_standard__NativeArray*)var969)->values[1]=var971;
 } else {
-var1217 = "NativeArray";
-var1218 = 11;
-var1219 = standard___standard__NativeString___to_s_with_length(var1217, var1218);
-var1216 = var1219;
-varonce1215 = var1216;
+var969 = varonce968;
+varonce968 = NULL;
 }
 {
-var1220 = ((short int (*)(val* self, val* p0))(var_cname->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_cname, var1216) /* == on <var_cname:String>*/;
+var974 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var_arguments, 0l);
 }
-if (var1220){
 {
-nit___nit__SeparateCompilerVisitor___nit__abstract_compiler__AbstractCompilerVisitor__native_array_def(var_v, var_pname, var_ret, var_arguments); /* Direct call separate_compiler#SeparateCompilerVisitor#native_array_def on <var_v:AbstractCompilerVisitor>*/
+var975 = ((val*(*)(val* self))(var974->class->vft[COLOR_standard__string__Object__to_s]))(var974); /* to_s on <var974:nullable Object(RuntimeVariable)>*/
 }
-var1221 = 1;
-var = var1221;
-goto RET_LABEL;
-} else {
+((struct instance_standard__NativeArray*)var969)->values[0]=var975;
+{
+var976 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var_arguments, 1l);
 }
+{
+var977 = ((val*(*)(val* self))(var976->class->vft[COLOR_standard__string__Object__to_s]))(var976); /* to_s on <var976:nullable Object(RuntimeVariable)>*/
 }
+((struct instance_standard__NativeArray*)var969)->values[2]=var977;
+{
+var978 = ((val*(*)(val* self))(var969->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var969); /* native_to_s on <var969:NativeArray[String]>*/
 }
+varonce968 = var969;
+if (unlikely(var_ret == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Cast failed");
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 2275);
+fatal_exit(1);
 }
+{
+var979 = nit___nit__AbstractCompilerVisitor___new_expr(var_v, var978, var_ret);
 }
+{
+nit___nit__AbstractCompilerVisitor___ret(var_v, var979); /* Direct call abstract_compiler#AbstractCompilerVisitor#ret on <var_v:AbstractCompilerVisitor>*/
 }
-if (varonce1222) {
-var1223 = varonce1222;
+var = 1;
+goto RET_LABEL;
 } else {
-var1224 = "exit";
-var1225 = 4;
-var1226 = standard___standard__NativeString___to_s_with_length(var1224, var1225);
-var1223 = var1226;
-varonce1222 = var1223;
+if (likely(varonce980!=NULL)) {
+var981 = varonce980;
+} else {
+var982 = "-";
+var983 = standard___standard__NativeString___to_s_with_length(var982, 1l);
+var981 = var983;
+varonce980 = var981;
 }
 {
-var1227 = ((short int (*)(val* self, val* p0))(var_pname->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_pname, var1223) /* == on <var_pname:String>*/;
+var984 = ((short int(*)(val* self, val* p0))(var_pname->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_pname, var981); /* == on <var_pname:String>*/
+}
+if (var984){
+if (unlikely(varonce985==NULL)) {
+var986 = NEW_standard__NativeArray(3l, &type_standard__NativeArray__standard__String);
+if (likely(varonce987!=NULL)) {
+var988 = varonce987;
+} else {
+var989 = " - ";
+var990 = standard___standard__NativeString___to_s_with_length(var989, 3l);
+var988 = var990;
+varonce987 = var988;
 }
-if (var1227){
-if (varonce1228) {
-var1229 = varonce1228;
+((struct instance_standard__NativeArray*)var986)->values[1]=var988;
 } else {
-var1230 = "exit(";
-var1231 = 5;
-var1232 = standard___standard__NativeString___to_s_with_length(var1230, var1231);
-var1229 = var1232;
-varonce1228 = var1229;
+var986 = varonce985;
+varonce985 = NULL;
 }
-var1233 = 1;
 {
-var1234 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var_arguments, var1233);
+var991 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var_arguments, 0l);
 }
-if (varonce1235) {
-var1236 = varonce1235;
-} else {
-var1237 = ");";
-var1238 = 2;
-var1239 = standard___standard__NativeString___to_s_with_length(var1237, var1238);
-var1236 = var1239;
-varonce1235 = var1236;
+{
+var992 = ((val*(*)(val* self))(var991->class->vft[COLOR_standard__string__Object__to_s]))(var991); /* to_s on <var991:nullable Object(RuntimeVariable)>*/
+}
+((struct instance_standard__NativeArray*)var986)->values[0]=var992;
+{
+var993 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var_arguments, 1l);
+}
+{
+var994 = ((val*(*)(val* self))(var993->class->vft[COLOR_standard__string__Object__to_s]))(var993); /* to_s on <var993:nullable Object(RuntimeVariable)>*/
 }
-var1240 = NEW_standard__Array(&type_standard__Array__standard__Object);
-{ /* var1240 = array_instance Array[Object] */
-var1241 = 3;
-var1242 = NEW_standard__NativeArray(var1241, &type_standard__NativeArray__standard__Object);
-((struct instance_standard__NativeArray*)var1242)->values[0] = (val*) var1229;
-((struct instance_standard__NativeArray*)var1242)->values[1] = (val*) var1234;
-((struct instance_standard__NativeArray*)var1242)->values[2] = (val*) var1236;
+((struct instance_standard__NativeArray*)var986)->values[2]=var994;
 {
-((void (*)(val* self, val* p0, long p1))(var1240->class->vft[COLOR_standard__array__Array__with_native]))(var1240, var1242, var1241) /* with_native on <var1240:Array[Object]>*/;
+var995 = ((val*(*)(val* self))(var986->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var986); /* native_to_s on <var986:NativeArray[String]>*/
 }
+varonce985 = var986;
+if (unlikely(var_ret == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Cast failed");
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 2278);
+fatal_exit(1);
 }
 {
-var1243 = ((val* (*)(val* self))(var1240->class->vft[COLOR_standard__string__Object__to_s]))(var1240) /* to_s on <var1240:Array[Object]>*/;
+var996 = nit___nit__AbstractCompilerVisitor___new_expr(var_v, var995, var_ret);
 }
 {
-nit___nit__AbstractCompilerVisitor___add(var_v, var1243); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <var_v:AbstractCompilerVisitor>*/
+nit___nit__AbstractCompilerVisitor___ret(var_v, var996); /* Direct call abstract_compiler#AbstractCompilerVisitor#ret on <var_v:AbstractCompilerVisitor>*/
 }
-var1244 = 1;
-var = var1244;
+var = 1;
 goto RET_LABEL;
 } else {
-if (varonce1245) {
-var1246 = varonce1245;
+if (likely(varonce997!=NULL)) {
+var998 = varonce997;
 } else {
-var1247 = "sys";
-var1248 = 3;
-var1249 = standard___standard__NativeString___to_s_with_length(var1247, var1248);
-var1246 = var1249;
-varonce1245 = var1246;
+var999 = "unary -";
+var1000 = standard___standard__NativeString___to_s_with_length(var999, 7l);
+var998 = var1000;
+varonce997 = var998;
 }
 {
-var1250 = ((short int (*)(val* self, val* p0))(var_pname->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_pname, var1246) /* == on <var_pname:String>*/;
+var1001 = ((short int(*)(val* self, val* p0))(var_pname->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_pname, var998); /* == on <var_pname:String>*/
 }
-if (var1250){
-if (varonce1251) {
-var1252 = varonce1251;
+if (var1001){
+if (unlikely(varonce1002==NULL)) {
+var1003 = NEW_standard__NativeArray(2l, &type_standard__NativeArray__standard__String);
+if (likely(varonce1004!=NULL)) {
+var1005 = varonce1004;
 } else {
-var1253 = "glob_sys";
-var1254 = 8;
-var1255 = standard___standard__NativeString___to_s_with_length(var1253, var1254);
-var1252 = var1255;
-varonce1251 = var1252;
+var1006 = "-";
+var1007 = standard___standard__NativeString___to_s_with_length(var1006, 1l);
+var1005 = var1007;
+varonce1004 = var1005;
+}
+((struct instance_standard__NativeArray*)var1003)->values[0]=var1005;
+} else {
+var1003 = varonce1002;
+varonce1002 = NULL;
+}
+{
+var1008 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var_arguments, 0l);
+}
+{
+var1009 = ((val*(*)(val* self))(var1008->class->vft[COLOR_standard__string__Object__to_s]))(var1008); /* to_s on <var1008:nullable Object(RuntimeVariable)>*/
+}
+((struct instance_standard__NativeArray*)var1003)->values[1]=var1009;
+{
+var1010 = ((val*(*)(val* self))(var1003->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var1003); /* native_to_s on <var1003:NativeArray[String]>*/
 }
+varonce1002 = var1003;
 if (unlikely(var_ret == NULL)) {
 PRINT_ERROR("Runtime error: %s", "Cast failed");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 2158);
-show_backtrace(1);
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 2281);
+fatal_exit(1);
 }
 {
-var1256 = nit___nit__AbstractCompilerVisitor___new_expr(var_v, var1252, var_ret);
+var1011 = nit___nit__AbstractCompilerVisitor___new_expr(var_v, var1010, var_ret);
 }
 {
-nit___nit__AbstractCompilerVisitor___ret(var_v, var1256); /* Direct call abstract_compiler#AbstractCompilerVisitor#ret on <var_v:AbstractCompilerVisitor>*/
+nit___nit__AbstractCompilerVisitor___ret(var_v, var1011); /* Direct call abstract_compiler#AbstractCompilerVisitor#ret on <var_v:AbstractCompilerVisitor>*/
 }
-var1257 = 1;
-var = var1257;
+var = 1;
 goto RET_LABEL;
 } else {
-if (varonce1258) {
-var1259 = varonce1258;
+if (likely(varonce1012!=NULL)) {
+var1013 = varonce1012;
 } else {
-var1260 = "calloc_string";
-var1261 = 13;
-var1262 = standard___standard__NativeString___to_s_with_length(var1260, var1261);
-var1259 = var1262;
-varonce1258 = var1259;
+var1014 = "unary +";
+var1015 = standard___standard__NativeString___to_s_with_length(var1014, 7l);
+var1013 = var1015;
+varonce1012 = var1013;
 }
 {
-var1263 = ((short int (*)(val* self, val* p0))(var_pname->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_pname, var1259) /* == on <var_pname:String>*/;
+var1016 = ((short int(*)(val* self, val* p0))(var_pname->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_pname, var1013); /* == on <var_pname:String>*/
 }
-if (var1263){
-if (varonce1264) {
-var1265 = varonce1264;
+if (var1016){
+{
+var1017 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var_arguments, 0l);
+}
+{
+nit___nit__AbstractCompilerVisitor___ret(var_v, var1017); /* Direct call abstract_compiler#AbstractCompilerVisitor#ret on <var_v:AbstractCompilerVisitor>*/
+}
+var = 1;
+goto RET_LABEL;
+} else {
+if (likely(varonce1018!=NULL)) {
+var1019 = varonce1018;
 } else {
-var1266 = "(char*)nit_alloc(";
-var1267 = 17;
-var1268 = standard___standard__NativeString___to_s_with_length(var1266, var1267);
-var1265 = var1268;
-varonce1264 = var1265;
+var1020 = "succ";
+var1021 = standard___standard__NativeString___to_s_with_length(var1020, 4l);
+var1019 = var1021;
+varonce1018 = var1019;
 }
-var1269 = 1;
 {
-var1270 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var_arguments, var1269);
+var1022 = ((short int(*)(val* self, val* p0))(var_pname->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_pname, var1019); /* == on <var_pname:String>*/
+}
+if (var1022){
+if (unlikely(varonce1023==NULL)) {
+var1024 = NEW_standard__NativeArray(2l, &type_standard__NativeArray__standard__String);
+if (likely(varonce1025!=NULL)) {
+var1026 = varonce1025;
+} else {
+var1027 = "+1";
+var1028 = standard___standard__NativeString___to_s_with_length(var1027, 2l);
+var1026 = var1028;
+varonce1025 = var1026;
 }
-if (varonce1271) {
-var1272 = varonce1271;
+((struct instance_standard__NativeArray*)var1024)->values[1]=var1026;
 } else {
-var1273 = ")";
-var1274 = 1;
-var1275 = standard___standard__NativeString___to_s_with_length(var1273, var1274);
-var1272 = var1275;
-varonce1271 = var1272;
+var1024 = varonce1023;
+varonce1023 = NULL;
 }
-var1276 = NEW_standard__Array(&type_standard__Array__standard__Object);
-{ /* var1276 = array_instance Array[Object] */
-var1277 = 3;
-var1278 = NEW_standard__NativeArray(var1277, &type_standard__NativeArray__standard__Object);
-((struct instance_standard__NativeArray*)var1278)->values[0] = (val*) var1265;
-((struct instance_standard__NativeArray*)var1278)->values[1] = (val*) var1270;
-((struct instance_standard__NativeArray*)var1278)->values[2] = (val*) var1272;
 {
-((void (*)(val* self, val* p0, long p1))(var1276->class->vft[COLOR_standard__array__Array__with_native]))(var1276, var1278, var1277) /* with_native on <var1276:Array[Object]>*/;
+var1029 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var_arguments, 0l);
 }
+{
+var1030 = ((val*(*)(val* self))(var1029->class->vft[COLOR_standard__string__Object__to_s]))(var1029); /* to_s on <var1029:nullable Object(RuntimeVariable)>*/
 }
+((struct instance_standard__NativeArray*)var1024)->values[0]=var1030;
 {
-var1279 = ((val* (*)(val* self))(var1276->class->vft[COLOR_standard__string__Object__to_s]))(var1276) /* to_s on <var1276:Array[Object]>*/;
+var1031 = ((val*(*)(val* self))(var1024->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var1024); /* native_to_s on <var1024:NativeArray[String]>*/
 }
+varonce1023 = var1024;
 if (unlikely(var_ret == NULL)) {
 PRINT_ERROR("Runtime error: %s", "Cast failed");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 2161);
-show_backtrace(1);
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 2287);
+fatal_exit(1);
 }
 {
-var1280 = nit___nit__AbstractCompilerVisitor___new_expr(var_v, var1279, var_ret);
+var1032 = nit___nit__AbstractCompilerVisitor___new_expr(var_v, var1031, var_ret);
 }
 {
-nit___nit__AbstractCompilerVisitor___ret(var_v, var1280); /* Direct call abstract_compiler#AbstractCompilerVisitor#ret on <var_v:AbstractCompilerVisitor>*/
+nit___nit__AbstractCompilerVisitor___ret(var_v, var1032); /* Direct call abstract_compiler#AbstractCompilerVisitor#ret on <var_v:AbstractCompilerVisitor>*/
 }
-var1281 = 1;
-var = var1281;
+var = 1;
 goto RET_LABEL;
 } else {
-if (varonce1282) {
-var1283 = varonce1282;
+if (likely(varonce1033!=NULL)) {
+var1034 = varonce1033;
+} else {
+var1035 = "prec";
+var1036 = standard___standard__NativeString___to_s_with_length(var1035, 4l);
+var1034 = var1036;
+varonce1033 = var1034;
+}
+{
+var1037 = ((short int(*)(val* self, val* p0))(var_pname->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_pname, var1034); /* == on <var_pname:String>*/
+}
+if (var1037){
+if (unlikely(varonce1038==NULL)) {
+var1039 = NEW_standard__NativeArray(2l, &type_standard__NativeArray__standard__String);
+if (likely(varonce1040!=NULL)) {
+var1041 = varonce1040;
+} else {
+var1042 = "-1";
+var1043 = standard___standard__NativeString___to_s_with_length(var1042, 2l);
+var1041 = var1043;
+varonce1040 = var1041;
+}
+((struct instance_standard__NativeArray*)var1039)->values[1]=var1041;
 } else {
-var1284 = "calloc_array";
-var1285 = 12;
-var1286 = standard___standard__NativeString___to_s_with_length(var1284, var1285);
-var1283 = var1286;
-varonce1282 = var1283;
+var1039 = varonce1038;
+varonce1038 = NULL;
+}
+{
+var1044 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var_arguments, 0l);
+}
+{
+var1045 = ((val*(*)(val* self))(var1044->class->vft[COLOR_standard__string__Object__to_s]))(var1044); /* to_s on <var1044:nullable Object(RuntimeVariable)>*/
 }
+((struct instance_standard__NativeArray*)var1039)->values[0]=var1045;
 {
-var1287 = ((short int (*)(val* self, val* p0))(var_pname->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_pname, var1283) /* == on <var_pname:String>*/;
+var1046 = ((val*(*)(val* self))(var1039->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var1039); /* native_to_s on <var1039:NativeArray[String]>*/
 }
-if (var1287){
+varonce1038 = var1039;
 if (unlikely(var_ret == NULL)) {
 PRINT_ERROR("Runtime error: %s", "Cast failed");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 2164);
-show_backtrace(1);
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 2290);
+fatal_exit(1);
+}
+{
+var1047 = nit___nit__AbstractCompilerVisitor___new_expr(var_v, var1046, var_ret);
 }
 {
-((void (*)(val* self, val* p0, val* p1))(var_v->class->vft[COLOR_nit__abstract_compiler__AbstractCompilerVisitor__calloc_array]))(var_v, var_ret, var_arguments) /* calloc_array on <var_v:AbstractCompilerVisitor>*/;
+nit___nit__AbstractCompilerVisitor___ret(var_v, var1047); /* Direct call abstract_compiler#AbstractCompilerVisitor#ret on <var_v:AbstractCompilerVisitor>*/
 }
-var1288 = 1;
-var = var1288;
+var = 1;
 goto RET_LABEL;
 } else {
-if (varonce1289) {
-var1290 = varonce1289;
+if (likely(varonce1048!=NULL)) {
+var1049 = varonce1048;
 } else {
-var1291 = "object_id";
-var1292 = 9;
-var1293 = standard___standard__NativeString___to_s_with_length(var1291, var1292);
-var1290 = var1293;
-varonce1289 = var1290;
+var1050 = "*";
+var1051 = standard___standard__NativeString___to_s_with_length(var1050, 1l);
+var1049 = var1051;
+varonce1048 = var1049;
 }
 {
-var1294 = ((short int (*)(val* self, val* p0))(var_pname->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_pname, var1290) /* == on <var_pname:String>*/;
+var1052 = ((short int(*)(val* self, val* p0))(var_pname->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_pname, var1049); /* == on <var_pname:String>*/
+}
+if (var1052){
+if (unlikely(varonce1053==NULL)) {
+var1054 = NEW_standard__NativeArray(3l, &type_standard__NativeArray__standard__String);
+if (likely(varonce1055!=NULL)) {
+var1056 = varonce1055;
+} else {
+var1057 = " * ";
+var1058 = standard___standard__NativeString___to_s_with_length(var1057, 3l);
+var1056 = var1058;
+varonce1055 = var1056;
 }
-if (var1294){
-if (varonce1295) {
-var1296 = varonce1295;
+((struct instance_standard__NativeArray*)var1054)->values[1]=var1056;
 } else {
-var1297 = "(long)";
-var1298 = 6;
-var1299 = standard___standard__NativeString___to_s_with_length(var1297, var1298);
-var1296 = var1299;
-varonce1295 = var1296;
+var1054 = varonce1053;
+varonce1053 = NULL;
+}
+{
+var1059 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var_arguments, 0l);
 }
 {
-var1300 = standard___standard__SequenceRead___Collection__first(var_arguments);
+var1060 = ((val*(*)(val* self))(var1059->class->vft[COLOR_standard__string__Object__to_s]))(var1059); /* to_s on <var1059:nullable Object(RuntimeVariable)>*/
 }
-var1301 = NEW_standard__Array(&type_standard__Array__standard__Object);
-{ /* var1301 = array_instance Array[Object] */
-var1302 = 2;
-var1303 = NEW_standard__NativeArray(var1302, &type_standard__NativeArray__standard__Object);
-((struct instance_standard__NativeArray*)var1303)->values[0] = (val*) var1296;
-((struct instance_standard__NativeArray*)var1303)->values[1] = (val*) var1300;
+((struct instance_standard__NativeArray*)var1054)->values[0]=var1060;
 {
-((void (*)(val* self, val* p0, long p1))(var1301->class->vft[COLOR_standard__array__Array__with_native]))(var1301, var1303, var1302) /* with_native on <var1301:Array[Object]>*/;
+var1061 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var_arguments, 1l);
 }
+{
+var1062 = ((val*(*)(val* self))(var1061->class->vft[COLOR_standard__string__Object__to_s]))(var1061); /* to_s on <var1061:nullable Object(RuntimeVariable)>*/
 }
+((struct instance_standard__NativeArray*)var1054)->values[2]=var1062;
 {
-var1304 = ((val* (*)(val* self))(var1301->class->vft[COLOR_standard__string__Object__to_s]))(var1301) /* to_s on <var1301:Array[Object]>*/;
+var1063 = ((val*(*)(val* self))(var1054->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var1054); /* native_to_s on <var1054:NativeArray[String]>*/
 }
+varonce1053 = var1054;
 if (unlikely(var_ret == NULL)) {
 PRINT_ERROR("Runtime error: %s", "Cast failed");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 2167);
-show_backtrace(1);
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 2293);
+fatal_exit(1);
 }
 {
-var1305 = nit___nit__AbstractCompilerVisitor___new_expr(var_v, var1304, var_ret);
+var1064 = nit___nit__AbstractCompilerVisitor___new_expr(var_v, var1063, var_ret);
 }
 {
-nit___nit__AbstractCompilerVisitor___ret(var_v, var1305); /* Direct call abstract_compiler#AbstractCompilerVisitor#ret on <var_v:AbstractCompilerVisitor>*/
+nit___nit__AbstractCompilerVisitor___ret(var_v, var1064); /* Direct call abstract_compiler#AbstractCompilerVisitor#ret on <var_v:AbstractCompilerVisitor>*/
 }
-var1306 = 1;
-var = var1306;
+var = 1;
 goto RET_LABEL;
 } else {
-if (varonce1307) {
-var1308 = varonce1307;
+if (likely(varonce1065!=NULL)) {
+var1066 = varonce1065;
 } else {
-var1309 = "is_same_type";
-var1310 = 12;
-var1311 = standard___standard__NativeString___to_s_with_length(var1309, var1310);
-var1308 = var1311;
-varonce1307 = var1308;
+var1067 = "/";
+var1068 = standard___standard__NativeString___to_s_with_length(var1067, 1l);
+var1066 = var1068;
+varonce1065 = var1066;
+}
+{
+var1069 = ((short int(*)(val* self, val* p0))(var_pname->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_pname, var1066); /* == on <var_pname:String>*/
+}
+if (var1069){
+if (unlikely(varonce1070==NULL)) {
+var1071 = NEW_standard__NativeArray(3l, &type_standard__NativeArray__standard__String);
+if (likely(varonce1072!=NULL)) {
+var1073 = varonce1072;
+} else {
+var1074 = " / ";
+var1075 = standard___standard__NativeString___to_s_with_length(var1074, 3l);
+var1073 = var1075;
+varonce1072 = var1073;
+}
+((struct instance_standard__NativeArray*)var1071)->values[1]=var1073;
+} else {
+var1071 = varonce1070;
+varonce1070 = NULL;
+}
+{
+var1076 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var_arguments, 0l);
 }
 {
-var1312 = ((short int (*)(val* self, val* p0))(var_pname->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_pname, var1308) /* == on <var_pname:String>*/;
+var1077 = ((val*(*)(val* self))(var1076->class->vft[COLOR_standard__string__Object__to_s]))(var1076); /* to_s on <var1076:nullable Object(RuntimeVariable)>*/
 }
-if (var1312){
-var1313 = 0;
+((struct instance_standard__NativeArray*)var1071)->values[0]=var1077;
 {
-var1314 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var_arguments, var1313);
+var1078 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var_arguments, 1l);
 }
-var1315 = 1;
 {
-var1316 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var_arguments, var1315);
+var1079 = ((val*(*)(val* self))(var1078->class->vft[COLOR_standard__string__Object__to_s]))(var1078); /* to_s on <var1078:nullable Object(RuntimeVariable)>*/
 }
+((struct instance_standard__NativeArray*)var1071)->values[2]=var1079;
 {
-var1317 = nit___nit__SeparateCompilerVisitor___nit__abstract_compiler__AbstractCompilerVisitor__is_same_type_test(var_v, var1314, var1316);
+var1080 = ((val*(*)(val* self))(var1071->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var1071); /* native_to_s on <var1071:NativeArray[String]>*/
+}
+varonce1070 = var1071;
+if (unlikely(var_ret == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Cast failed");
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 2296);
+fatal_exit(1);
+}
+{
+var1081 = nit___nit__AbstractCompilerVisitor___new_expr(var_v, var1080, var_ret);
 }
 {
-nit___nit__AbstractCompilerVisitor___ret(var_v, var1317); /* Direct call abstract_compiler#AbstractCompilerVisitor#ret on <var_v:AbstractCompilerVisitor>*/
+nit___nit__AbstractCompilerVisitor___ret(var_v, var1081); /* Direct call abstract_compiler#AbstractCompilerVisitor#ret on <var_v:AbstractCompilerVisitor>*/
 }
-var1318 = 1;
-var = var1318;
+var = 1;
 goto RET_LABEL;
 } else {
-if (varonce1319) {
-var1320 = varonce1319;
+if (likely(varonce1082!=NULL)) {
+var1083 = varonce1082;
 } else {
-var1321 = "is_same_instance";
-var1322 = 16;
-var1323 = standard___standard__NativeString___to_s_with_length(var1321, var1322);
-var1320 = var1323;
-varonce1319 = var1320;
+var1084 = "==";
+var1085 = standard___standard__NativeString___to_s_with_length(var1084, 2l);
+var1083 = var1085;
+varonce1082 = var1083;
 }
 {
-var1324 = ((short int (*)(val* self, val* p0))(var_pname->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_pname, var1320) /* == on <var_pname:String>*/;
+var1086 = ((short int(*)(val* self, val* p0))(var_pname->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_pname, var1083); /* == on <var_pname:String>*/
 }
-if (var1324){
-var1325 = 0;
+if (var1086){
 {
-var1326 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var_arguments, var1325);
+var1087 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var_arguments, 0l);
 }
-var1327 = 1;
 {
-var1328 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var_arguments, var1327);
+var1088 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var_arguments, 1l);
 }
 {
-var1329 = nit___nit__SeparateCompilerVisitor___nit__abstract_compiler__AbstractCompilerVisitor__equal_test(var_v, var1326, var1328);
+var1089 = nit___nit__SeparateCompilerVisitor___nit__abstract_compiler__AbstractCompilerVisitor__equal_test(var_v, var1087, var1088);
 }
 {
-nit___nit__AbstractCompilerVisitor___ret(var_v, var1329); /* Direct call abstract_compiler#AbstractCompilerVisitor#ret on <var_v:AbstractCompilerVisitor>*/
+nit___nit__AbstractCompilerVisitor___ret(var_v, var1089); /* Direct call abstract_compiler#AbstractCompilerVisitor#ret on <var_v:AbstractCompilerVisitor>*/
 }
-var1330 = 1;
-var = var1330;
+var = 1;
 goto RET_LABEL;
 } else {
-if (varonce1331) {
-var1332 = varonce1331;
+if (likely(varonce1090!=NULL)) {
+var1091 = varonce1090;
 } else {
-var1333 = "output_class_name";
-var1334 = 17;
-var1335 = standard___standard__NativeString___to_s_with_length(var1333, var1334);
-var1332 = var1335;
-varonce1331 = var1332;
+var1092 = "!=";
+var1093 = standard___standard__NativeString___to_s_with_length(var1092, 2l);
+var1091 = var1093;
+varonce1090 = var1091;
+}
+{
+var1094 = ((short int(*)(val* self, val* p0))(var_pname->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_pname, var1091); /* == on <var_pname:String>*/
 }
+if (var1094){
 {
-var1336 = ((short int (*)(val* self, val* p0))(var_pname->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_pname, var1332) /* == on <var_pname:String>*/;
+var1095 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var_arguments, 0l);
 }
-if (var1336){
 {
-var1337 = standard___standard__SequenceRead___Collection__first(var_arguments);
+var1096 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var_arguments, 1l);
 }
 {
-var1338 = ((val* (*)(val* self, val* p0))(var_v->class->vft[COLOR_nit__abstract_compiler__AbstractCompilerVisitor__class_name_string]))(var_v, var1337) /* class_name_string on <var_v:AbstractCompilerVisitor>*/;
+var1097 = nit___nit__SeparateCompilerVisitor___nit__abstract_compiler__AbstractCompilerVisitor__equal_test(var_v, var1095, var1096);
 }
-var_nat = var1338;
-if (varonce1339) {
-var1340 = varonce1339;
+var_res1098 = var1097;
+if (unlikely(varonce1099==NULL)) {
+var1100 = NEW_standard__NativeArray(2l, &type_standard__NativeArray__standard__String);
+if (likely(varonce1101!=NULL)) {
+var1102 = varonce1101;
 } else {
-var1341 = "printf(\"%s\\n\", ";
-var1342 = 15;
-var1343 = standard___standard__NativeString___to_s_with_length(var1341, var1342);
-var1340 = var1343;
-varonce1339 = var1340;
+var1103 = "!";
+var1104 = standard___standard__NativeString___to_s_with_length(var1103, 1l);
+var1102 = var1104;
+varonce1101 = var1102;
 }
-if (varonce1344) {
-var1345 = varonce1344;
+((struct instance_standard__NativeArray*)var1100)->values[0]=var1102;
 } else {
-var1346 = ");";
-var1347 = 2;
-var1348 = standard___standard__NativeString___to_s_with_length(var1346, var1347);
-var1345 = var1348;
-varonce1344 = var1345;
+var1100 = varonce1099;
+varonce1099 = NULL;
 }
-var1349 = NEW_standard__Array(&type_standard__Array__standard__Object);
-{ /* var1349 = array_instance Array[Object] */
-var1350 = 3;
-var1351 = NEW_standard__NativeArray(var1350, &type_standard__NativeArray__standard__Object);
-((struct instance_standard__NativeArray*)var1351)->values[0] = (val*) var1340;
-((struct instance_standard__NativeArray*)var1351)->values[1] = (val*) var_nat;
-((struct instance_standard__NativeArray*)var1351)->values[2] = (val*) var1345;
 {
-((void (*)(val* self, val* p0, long p1))(var1349->class->vft[COLOR_standard__array__Array__with_native]))(var1349, var1351, var1350) /* with_native on <var1349:Array[Object]>*/;
+var1105 = ((val*(*)(val* self))(var_res1098->class->vft[COLOR_standard__string__Object__to_s]))(var_res1098); /* to_s on <var_res1098:RuntimeVariable>*/
 }
+((struct instance_standard__NativeArray*)var1100)->values[1]=var1105;
+{
+var1106 = ((val*(*)(val* self))(var1100->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var1100); /* native_to_s on <var1100:NativeArray[String]>*/
+}
+varonce1099 = var1100;
+if (unlikely(var_ret == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Cast failed");
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 2303);
+fatal_exit(1);
 }
 {
-var1352 = ((val* (*)(val* self))(var1349->class->vft[COLOR_standard__string__Object__to_s]))(var1349) /* to_s on <var1349:Array[Object]>*/;
+var1107 = nit___nit__AbstractCompilerVisitor___new_expr(var_v, var1106, var_ret);
 }
 {
-nit___nit__AbstractCompilerVisitor___add(var_v, var1352); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <var_v:AbstractCompilerVisitor>*/
+nit___nit__AbstractCompilerVisitor___ret(var_v, var1107); /* Direct call abstract_compiler#AbstractCompilerVisitor#ret on <var_v:AbstractCompilerVisitor>*/
 }
-var1353 = 1;
-var = var1353;
+var = 1;
 goto RET_LABEL;
 } else {
-if (varonce1354) {
-var1355 = varonce1354;
+if (likely(varonce1108!=NULL)) {
+var1109 = varonce1108;
 } else {
-var1356 = "native_class_name";
-var1357 = 17;
-var1358 = standard___standard__NativeString___to_s_with_length(var1356, var1357);
-var1355 = var1358;
-varonce1354 = var1355;
+var1110 = "<";
+var1111 = standard___standard__NativeString___to_s_with_length(var1110, 1l);
+var1109 = var1111;
+varonce1108 = var1109;
 }
 {
-var1359 = ((short int (*)(val* self, val* p0))(var_pname->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_pname, var1355) /* == on <var_pname:String>*/;
+var1112 = ((short int(*)(val* self, val* p0))(var_pname->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_pname, var1109); /* == on <var_pname:String>*/
 }
-if (var1359){
-{
-var1360 = standard___standard__SequenceRead___Collection__first(var_arguments);
+if (var1112){
+if (unlikely(varonce1113==NULL)) {
+var1114 = NEW_standard__NativeArray(3l, &type_standard__NativeArray__standard__String);
+if (likely(varonce1115!=NULL)) {
+var1116 = varonce1115;
+} else {
+var1117 = " < ";
+var1118 = standard___standard__NativeString___to_s_with_length(var1117, 3l);
+var1116 = var1118;
+varonce1115 = var1116;
+}
+((struct instance_standard__NativeArray*)var1114)->values[1]=var1116;
+} else {
+var1114 = varonce1113;
+varonce1113 = NULL;
 }
 {
-var1361 = ((val* (*)(val* self, val* p0))(var_v->class->vft[COLOR_nit__abstract_compiler__AbstractCompilerVisitor__class_name_string]))(var_v, var1360) /* class_name_string on <var_v:AbstractCompilerVisitor>*/;
+var1119 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var_arguments, 0l);
 }
-var_nat1362 = var1361;
-if (varonce1363) {
-var1364 = varonce1363;
-} else {
-var1365 = "(char*)";
-var1366 = 7;
-var1367 = standard___standard__NativeString___to_s_with_length(var1365, var1366);
-var1364 = var1367;
-varonce1363 = var1364;
+{
+var1120 = ((val*(*)(val* self))(var1119->class->vft[COLOR_standard__string__Object__to_s]))(var1119); /* to_s on <var1119:nullable Object(RuntimeVariable)>*/
 }
-var1368 = NEW_standard__Array(&type_standard__Array__standard__Object);
-{ /* var1368 = array_instance Array[Object] */
-var1369 = 2;
-var1370 = NEW_standard__NativeArray(var1369, &type_standard__NativeArray__standard__Object);
-((struct instance_standard__NativeArray*)var1370)->values[0] = (val*) var1364;
-((struct instance_standard__NativeArray*)var1370)->values[1] = (val*) var_nat1362;
+((struct instance_standard__NativeArray*)var1114)->values[0]=var1120;
 {
-((void (*)(val* self, val* p0, long p1))(var1368->class->vft[COLOR_standard__array__Array__with_native]))(var1368, var1370, var1369) /* with_native on <var1368:Array[Object]>*/;
+var1121 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var_arguments, 1l);
 }
+{
+var1122 = ((val*(*)(val* self))(var1121->class->vft[COLOR_standard__string__Object__to_s]))(var1121); /* to_s on <var1121:nullable Object(RuntimeVariable)>*/
 }
+((struct instance_standard__NativeArray*)var1114)->values[2]=var1122;
 {
-var1371 = ((val* (*)(val* self))(var1368->class->vft[COLOR_standard__string__Object__to_s]))(var1368) /* to_s on <var1368:Array[Object]>*/;
+var1123 = ((val*(*)(val* self))(var1114->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var1114); /* native_to_s on <var1114:NativeArray[String]>*/
 }
+varonce1113 = var1114;
 if (unlikely(var_ret == NULL)) {
 PRINT_ERROR("Runtime error: %s", "Cast failed");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 2181);
-show_backtrace(1);
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 2306);
+fatal_exit(1);
 }
 {
-var1372 = nit___nit__AbstractCompilerVisitor___new_expr(var_v, var1371, var_ret);
+var1124 = nit___nit__AbstractCompilerVisitor___new_expr(var_v, var1123, var_ret);
 }
 {
-nit___nit__AbstractCompilerVisitor___ret(var_v, var1372); /* Direct call abstract_compiler#AbstractCompilerVisitor#ret on <var_v:AbstractCompilerVisitor>*/
+nit___nit__AbstractCompilerVisitor___ret(var_v, var1124); /* Direct call abstract_compiler#AbstractCompilerVisitor#ret on <var_v:AbstractCompilerVisitor>*/
 }
-var1373 = 1;
-var = var1373;
+var = 1;
 goto RET_LABEL;
 } else {
-if (varonce1374) {
-var1375 = varonce1374;
+if (likely(varonce1125!=NULL)) {
+var1126 = varonce1125;
 } else {
-var1376 = "force_garbage_collection";
-var1377 = 24;
-var1378 = standard___standard__NativeString___to_s_with_length(var1376, var1377);
-var1375 = var1378;
-varonce1374 = var1375;
+var1127 = ">";
+var1128 = standard___standard__NativeString___to_s_with_length(var1127, 1l);
+var1126 = var1128;
+varonce1125 = var1126;
 }
 {
-var1379 = ((short int (*)(val* self, val* p0))(var_pname->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_pname, var1375) /* == on <var_pname:String>*/;
+var1129 = ((short int(*)(val* self, val* p0))(var_pname->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_pname, var1126); /* == on <var_pname:String>*/
 }
-if (var1379){
-if (varonce1380) {
-var1381 = varonce1380;
+if (var1129){
+if (unlikely(varonce1130==NULL)) {
+var1131 = NEW_standard__NativeArray(3l, &type_standard__NativeArray__standard__String);
+if (likely(varonce1132!=NULL)) {
+var1133 = varonce1132;
 } else {
-var1382 = "nit_gcollect();";
-var1383 = 15;
-var1384 = standard___standard__NativeString___to_s_with_length(var1382, var1383);
-var1381 = var1384;
-varonce1380 = var1381;
+var1134 = " > ";
+var1135 = standard___standard__NativeString___to_s_with_length(var1134, 3l);
+var1133 = var1135;
+varonce1132 = var1133;
+}
+((struct instance_standard__NativeArray*)var1131)->values[1]=var1133;
+} else {
+var1131 = varonce1130;
+varonce1130 = NULL;
 }
 {
-nit___nit__AbstractCompilerVisitor___add(var_v, var1381); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <var_v:AbstractCompilerVisitor>*/
+var1136 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var_arguments, 0l);
 }
-var1385 = 1;
-var = var1385;
-goto RET_LABEL;
-} else {
-if (varonce1386) {
-var1387 = varonce1386;
-} else {
-var1388 = "native_argc";
-var1389 = 11;
-var1390 = standard___standard__NativeString___to_s_with_length(var1388, var1389);
-var1387 = var1390;
-varonce1386 = var1387;
+{
+var1137 = ((val*(*)(val* self))(var1136->class->vft[COLOR_standard__string__Object__to_s]))(var1136); /* to_s on <var1136:nullable Object(RuntimeVariable)>*/
 }
+((struct instance_standard__NativeArray*)var1131)->values[0]=var1137;
 {
-var1391 = ((short int (*)(val* self, val* p0))(var_pname->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_pname, var1387) /* == on <var_pname:String>*/;
+var1138 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var_arguments, 1l);
 }
-if (var1391){
-if (varonce1392) {
-var1393 = varonce1392;
-} else {
-var1394 = "glob_argc";
-var1395 = 9;
-var1396 = standard___standard__NativeString___to_s_with_length(var1394, var1395);
-var1393 = var1396;
-varonce1392 = var1393;
+{
+var1139 = ((val*(*)(val* self))(var1138->class->vft[COLOR_standard__string__Object__to_s]))(var1138); /* to_s on <var1138:nullable Object(RuntimeVariable)>*/
+}
+((struct instance_standard__NativeArray*)var1131)->values[2]=var1139;
+{
+var1140 = ((val*(*)(val* self))(var1131->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var1131); /* native_to_s on <var1131:NativeArray[String]>*/
 }
+varonce1130 = var1131;
 if (unlikely(var_ret == NULL)) {
 PRINT_ERROR("Runtime error: %s", "Cast failed");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 2187);
-show_backtrace(1);
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 2309);
+fatal_exit(1);
 }
 {
-var1397 = nit___nit__AbstractCompilerVisitor___new_expr(var_v, var1393, var_ret);
+var1141 = nit___nit__AbstractCompilerVisitor___new_expr(var_v, var1140, var_ret);
 }
 {
-nit___nit__AbstractCompilerVisitor___ret(var_v, var1397); /* Direct call abstract_compiler#AbstractCompilerVisitor#ret on <var_v:AbstractCompilerVisitor>*/
+nit___nit__AbstractCompilerVisitor___ret(var_v, var1141); /* Direct call abstract_compiler#AbstractCompilerVisitor#ret on <var_v:AbstractCompilerVisitor>*/
 }
-var1398 = 1;
-var = var1398;
+var = 1;
 goto RET_LABEL;
 } else {
-if (varonce1399) {
-var1400 = varonce1399;
+if (likely(varonce1142!=NULL)) {
+var1143 = varonce1142;
 } else {
-var1401 = "native_argv";
-var1402 = 11;
-var1403 = standard___standard__NativeString___to_s_with_length(var1401, var1402);
-var1400 = var1403;
-varonce1399 = var1400;
+var1144 = "<=";
+var1145 = standard___standard__NativeString___to_s_with_length(var1144, 2l);
+var1143 = var1145;
+varonce1142 = var1143;
 }
 {
-var1404 = ((short int (*)(val* self, val* p0))(var_pname->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_pname, var1400) /* == on <var_pname:String>*/;
+var1146 = ((short int(*)(val* self, val* p0))(var_pname->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_pname, var1143); /* == on <var_pname:String>*/
+}
+if (var1146){
+if (unlikely(varonce1147==NULL)) {
+var1148 = NEW_standard__NativeArray(3l, &type_standard__NativeArray__standard__String);
+if (likely(varonce1149!=NULL)) {
+var1150 = varonce1149;
+} else {
+var1151 = " <= ";
+var1152 = standard___standard__NativeString___to_s_with_length(var1151, 4l);
+var1150 = var1152;
+varonce1149 = var1150;
 }
-if (var1404){
-if (varonce1405) {
-var1406 = varonce1405;
+((struct instance_standard__NativeArray*)var1148)->values[1]=var1150;
 } else {
-var1407 = "glob_argv[";
-var1408 = 10;
-var1409 = standard___standard__NativeString___to_s_with_length(var1407, var1408);
-var1406 = var1409;
-varonce1405 = var1406;
+var1148 = varonce1147;
+varonce1147 = NULL;
 }
-var1410 = 1;
 {
-var1411 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var_arguments, var1410);
+var1153 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var_arguments, 0l);
 }
-if (varonce1412) {
-var1413 = varonce1412;
-} else {
-var1414 = "]";
-var1415 = 1;
-var1416 = standard___standard__NativeString___to_s_with_length(var1414, var1415);
-var1413 = var1416;
-varonce1412 = var1413;
+{
+var1154 = ((val*(*)(val* self))(var1153->class->vft[COLOR_standard__string__Object__to_s]))(var1153); /* to_s on <var1153:nullable Object(RuntimeVariable)>*/
 }
-var1417 = NEW_standard__Array(&type_standard__Array__standard__Object);
-{ /* var1417 = array_instance Array[Object] */
-var1418 = 3;
-var1419 = NEW_standard__NativeArray(var1418, &type_standard__NativeArray__standard__Object);
-((struct instance_standard__NativeArray*)var1419)->values[0] = (val*) var1406;
-((struct instance_standard__NativeArray*)var1419)->values[1] = (val*) var1411;
-((struct instance_standard__NativeArray*)var1419)->values[2] = (val*) var1413;
+((struct instance_standard__NativeArray*)var1148)->values[0]=var1154;
 {
-((void (*)(val* self, val* p0, long p1))(var1417->class->vft[COLOR_standard__array__Array__with_native]))(var1417, var1419, var1418) /* with_native on <var1417:Array[Object]>*/;
+var1155 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var_arguments, 1l);
 }
+{
+var1156 = ((val*(*)(val* self))(var1155->class->vft[COLOR_standard__string__Object__to_s]))(var1155); /* to_s on <var1155:nullable Object(RuntimeVariable)>*/
 }
+((struct instance_standard__NativeArray*)var1148)->values[2]=var1156;
 {
-var1420 = ((val* (*)(val* self))(var1417->class->vft[COLOR_standard__string__Object__to_s]))(var1417) /* to_s on <var1417:Array[Object]>*/;
+var1157 = ((val*(*)(val* self))(var1148->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var1148); /* native_to_s on <var1148:NativeArray[String]>*/
 }
+varonce1147 = var1148;
 if (unlikely(var_ret == NULL)) {
 PRINT_ERROR("Runtime error: %s", "Cast failed");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 2190);
-show_backtrace(1);
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 2312);
+fatal_exit(1);
 }
 {
-var1421 = nit___nit__AbstractCompilerVisitor___new_expr(var_v, var1420, var_ret);
+var1158 = nit___nit__AbstractCompilerVisitor___new_expr(var_v, var1157, var_ret);
 }
 {
-nit___nit__AbstractCompilerVisitor___ret(var_v, var1421); /* Direct call abstract_compiler#AbstractCompilerVisitor#ret on <var_v:AbstractCompilerVisitor>*/
+nit___nit__AbstractCompilerVisitor___ret(var_v, var1158); /* Direct call abstract_compiler#AbstractCompilerVisitor#ret on <var_v:AbstractCompilerVisitor>*/
 }
-var1422 = 1;
-var = var1422;
+var = 1;
 goto RET_LABEL;
 } else {
+if (likely(varonce1159!=NULL)) {
+var1160 = varonce1159;
+} else {
+var1161 = ">=";
+var1162 = standard___standard__NativeString___to_s_with_length(var1161, 2l);
+var1160 = var1162;
+varonce1159 = var1160;
 }
+{
+var1163 = ((short int(*)(val* self, val* p0))(var_pname->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_pname, var1160); /* == on <var_pname:String>*/
 }
+if (var1163){
+if (unlikely(varonce1164==NULL)) {
+var1165 = NEW_standard__NativeArray(3l, &type_standard__NativeArray__standard__String);
+if (likely(varonce1166!=NULL)) {
+var1167 = varonce1166;
+} else {
+var1168 = " >= ";
+var1169 = standard___standard__NativeString___to_s_with_length(var1168, 4l);
+var1167 = var1169;
+varonce1166 = var1167;
 }
+((struct instance_standard__NativeArray*)var1165)->values[1]=var1167;
+} else {
+var1165 = varonce1164;
+varonce1164 = NULL;
 }
+{
+var1170 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var_arguments, 0l);
 }
+{
+var1171 = ((val*(*)(val* self))(var1170->class->vft[COLOR_standard__string__Object__to_s]))(var1170); /* to_s on <var1170:nullable Object(RuntimeVariable)>*/
 }
+((struct instance_standard__NativeArray*)var1165)->values[0]=var1171;
+{
+var1172 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var_arguments, 1l);
 }
+{
+var1173 = ((val*(*)(val* self))(var1172->class->vft[COLOR_standard__string__Object__to_s]))(var1172); /* to_s on <var1172:nullable Object(RuntimeVariable)>*/
 }
+((struct instance_standard__NativeArray*)var1165)->values[2]=var1173;
+{
+var1174 = ((val*(*)(val* self))(var1165->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var1165); /* native_to_s on <var1165:NativeArray[String]>*/
 }
+varonce1164 = var1165;
+if (unlikely(var_ret == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Cast failed");
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 2315);
+fatal_exit(1);
 }
+{
+var1175 = nit___nit__AbstractCompilerVisitor___new_expr(var_v, var1174, var_ret);
 }
+{
+nit___nit__AbstractCompilerVisitor___ret(var_v, var1175); /* Direct call abstract_compiler#AbstractCompilerVisitor#ret on <var_v:AbstractCompilerVisitor>*/
 }
-var1423 = 0;
-var = var1423;
+var = 1;
 goto RET_LABEL;
-RET_LABEL:;
-return var;
-}
-/* method abstract_compiler#AMethPropdef#compile_externmeth_to_c for (self: AMethPropdef, AbstractCompilerVisitor, MMethodDef, Array[RuntimeVariable]): Bool */
-short int nit__abstract_compiler___AMethPropdef___compile_externmeth_to_c(val* self, val* p0, val* p1, val* p2) {
-short int var /* : Bool */;
-val* var_v /* var v: AbstractCompilerVisitor */;
-val* var_mpropdef /* var mpropdef: MMethodDef */;
-val* var_arguments /* var arguments: Array[RuntimeVariable] */;
-static val* varonce;
-val* var1 /* : String */;
-char* var2 /* : NativeString */;
-long var3 /* : Int */;
-val* var4 /* : FlatString */;
-val* var5 /* : AbstractCompiler */;
-val* var7 /* : AbstractCompiler */;
-val* var8 /* : ModelBuilder */;
-val* var10 /* : ModelBuilder */;
-val* var11 /* : nullable AAnnotation */;
-val* var_at /* var at: nullable AAnnotation */;
-short int var12 /* : Bool */;
-val* var13 /* : null */;
-short int var14 /* : Bool */;
-short int var15 /* : Bool */;
-val* var_other /* var other: nullable Object */;
-short int var17 /* : Bool */;
-short int var18 /* : Bool */;
-short int var_ /* var : Bool */;
-val* var19 /* : ANodes[AExpr] */;
-val* var21 /* : ANodes[AExpr] */;
-long var22 /* : Int */;
-long var23 /* : Int */;
-short int var24 /* : Bool */;
-short int var26 /* : Bool */;
-val* var27 /* : AbstractCompiler */;
-val* var29 /* : AbstractCompiler */;
-val* var30 /* : ModelBuilder */;
-val* var32 /* : ModelBuilder */;
-val* var33 /* : nullable String */;
-val* var_externname /* var externname: nullable Object */;
-val* var34 /* : null */;
-short int var35 /* : Bool */;
-short int var36 /* : Bool */;
-short int var37 /* : Bool */;
-short int var38 /* : Bool */;
-val* var39 /* : MClassDef */;
-val* var41 /* : MClassDef */;
-val* var42 /* : MModule */;
-val* var44 /* : MModule */;
-val* var45 /* : null */;
-val* var_res /* var res: nullable RuntimeVariable */;
-val* var46 /* : nullable MSignature */;
-val* var48 /* : nullable MSignature */;
-val* var49 /* : nullable MType */;
-val* var51 /* : nullable MType */;
-val* var_ret /* var ret: nullable MType */;
-val* var52 /* : null */;
-short int var53 /* : Bool */;
-short int var54 /* : Bool */;
-short int var56 /* : Bool */;
-short int var57 /* : Bool */;
-val* var58 /* : nullable Object */;
-val* var59 /* : MType */;
-val* var60 /* : RuntimeVariable */;
-val* var61 /* : null */;
-short int var62 /* : Bool */;
-short int var63 /* : Bool */;
-val* var_other65 /* var other: nullable Object */;
-short int var66 /* : Bool */;
-short int var68 /* : Bool */;
-static val* varonce69;
-val* var70 /* : String */;
-char* var71 /* : NativeString */;
-long var72 /* : Int */;
-val* var73 /* : FlatString */;
-static val* varonce74;
-val* var75 /* : String */;
-char* var76 /* : NativeString */;
-long var77 /* : Int */;
-val* var78 /* : FlatString */;
-val* var79 /* : String */;
-static val* varonce80;
-val* var81 /* : String */;
-char* var82 /* : NativeString */;
-long var83 /* : Int */;
-val* var84 /* : FlatString */;
-val* var85 /* : Array[Object] */;
-long var86 /* : Int */;
-val* var87 /* : NativeArray[Object] */;
-val* var88 /* : String */;
-static val* varonce89;
-val* var90 /* : String */;
-char* var91 /* : NativeString */;
-long var92 /* : Int */;
-val* var93 /* : FlatString */;
-static val* varonce94;
-val* var95 /* : String */;
-char* var96 /* : NativeString */;
-long var97 /* : Int */;
-val* var98 /* : FlatString */;
-static val* varonce99;
-val* var100 /* : String */;
-char* var101 /* : NativeString */;
-long var102 /* : Int */;
-val* var103 /* : FlatString */;
-val* var104 /* : String */;
-static val* varonce105;
-val* var106 /* : String */;
-char* var107 /* : NativeString */;
-long var108 /* : Int */;
-val* var109 /* : FlatString */;
-val* var110 /* : Array[Object] */;
-long var111 /* : Int */;
-val* var112 /* : NativeArray[Object] */;
-val* var113 /* : String */;
-val* var114 /* : RuntimeVariable */;
-short int var115 /* : Bool */;
-var_v = p0;
-var_mpropdef = p1;
-var_arguments = p2;
-if (varonce) {
-var1 = varonce;
 } else {
-var2 = "extern";
-var3 = 6;
-var4 = standard___standard__NativeString___to_s_with_length(var2, var3);
-var1 = var4;
-varonce = var1;
+if (likely(varonce1176!=NULL)) {
+var1177 = varonce1176;
+} else {
+var1178 = "to_i";
+var1179 = standard___standard__NativeString___to_s_with_length(var1178, 4l);
+var1177 = var1179;
+varonce1176 = var1177;
 }
 {
-{ /* Inline abstract_compiler#AbstractCompilerVisitor#compiler (var_v) on <var_v:AbstractCompilerVisitor> */
-var7 = var_v->attrs[COLOR_nit__abstract_compiler__AbstractCompilerVisitor___compiler].val; /* _compiler on <var_v:AbstractCompilerVisitor> */
-if (unlikely(var7 == NULL)) {
-PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _compiler");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1059);
-show_backtrace(1);
+var1180 = ((short int(*)(val* self, val* p0))(var_pname->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_pname, var1177); /* == on <var_pname:String>*/
 }
-var5 = var7;
-RET_LABEL6:(void)0;
+if (var1180){
+if (unlikely(varonce1181==NULL)) {
+var1182 = NEW_standard__NativeArray(2l, &type_standard__NativeArray__standard__String);
+if (likely(varonce1183!=NULL)) {
+var1184 = varonce1183;
+} else {
+var1185 = "(long)";
+var1186 = standard___standard__NativeString___to_s_with_length(var1185, 6l);
+var1184 = var1186;
+varonce1183 = var1184;
 }
+((struct instance_standard__NativeArray*)var1182)->values[0]=var1184;
+} else {
+var1182 = varonce1181;
+varonce1181 = NULL;
 }
 {
-{ /* Inline abstract_compiler#AbstractCompiler#modelbuilder (var5) on <var5:AbstractCompiler> */
-var10 = var5->attrs[COLOR_nit__abstract_compiler__AbstractCompiler___modelbuilder].val; /* _modelbuilder on <var5:AbstractCompiler> */
-if (unlikely(var10 == NULL)) {
-PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 481);
-show_backtrace(1);
-}
-var8 = var10;
-RET_LABEL9:(void)0;
+var1187 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var_arguments, 0l);
 }
+{
+var1188 = ((val*(*)(val* self))(var1187->class->vft[COLOR_standard__string__Object__to_s]))(var1187); /* to_s on <var1187:nullable Object(RuntimeVariable)>*/
 }
+((struct instance_standard__NativeArray*)var1182)->values[1]=var1188;
 {
-var11 = nit__annotation___Prod___get_single_annotation(self, var1, var8);
+var1189 = ((val*(*)(val* self))(var1182->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var1182); /* native_to_s on <var1182:NativeArray[String]>*/
 }
-var_at = var11;
-var13 = NULL;
-if (var_at == NULL) {
-var14 = 0; /* is null */
-} else {
-var14 = 1; /* arg is null and recv is not */
+varonce1181 = var1182;
+if (unlikely(var_ret == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Cast failed");
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 2318);
+fatal_exit(1);
 }
-if (0) {
-{ /* Inline kernel#Object#!= (var_at,var13) on <var_at:nullable AAnnotation> */
-var_other = var13;
 {
-var17 = ((short int (*)(val* self, val* p0))(var_at->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_at, var_other) /* == on <var_at:nullable AAnnotation(AAnnotation)>*/;
+var1190 = nit___nit__AbstractCompilerVisitor___new_expr(var_v, var1189, var_ret);
 }
-var18 = !var17;
-var15 = var18;
-goto RET_LABEL16;
-RET_LABEL16:(void)0;
+{
+nit___nit__AbstractCompilerVisitor___ret(var_v, var1190); /* Direct call abstract_compiler#AbstractCompilerVisitor#ret on <var_v:AbstractCompilerVisitor>*/
 }
-var14 = var15;
+var = 1;
+goto RET_LABEL;
+} else {
+if (likely(varonce1191!=NULL)) {
+var1192 = varonce1191;
+} else {
+var1193 = "to_b";
+var1194 = standard___standard__NativeString___to_s_with_length(var1193, 4l);
+var1192 = var1194;
+varonce1191 = var1192;
 }
-var_ = var14;
-if (var14){
 {
-{ /* Inline parser_nodes#AAnnotation#n_args (var_at) on <var_at:nullable AAnnotation(AAnnotation)> */
-var21 = var_at->attrs[COLOR_nit__parser_nodes__AAnnotation___n_args].val; /* _n_args on <var_at:nullable AAnnotation(AAnnotation)> */
-if (unlikely(var21 == NULL)) {
-PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_args");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 2552);
-show_backtrace(1);
+var1195 = ((short int(*)(val* self, val* p0))(var_pname->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_pname, var1192); /* == on <var_pname:String>*/
 }
-var19 = var21;
-RET_LABEL20:(void)0;
+if (var1195){
+if (unlikely(varonce1196==NULL)) {
+var1197 = NEW_standard__NativeArray(2l, &type_standard__NativeArray__standard__String);
+if (likely(varonce1198!=NULL)) {
+var1199 = varonce1198;
+} else {
+var1200 = "(unsigned char)";
+var1201 = standard___standard__NativeString___to_s_with_length(var1200, 15l);
+var1199 = var1201;
+varonce1198 = var1199;
 }
+((struct instance_standard__NativeArray*)var1197)->values[0]=var1199;
+} else {
+var1197 = varonce1196;
+varonce1196 = NULL;
 }
 {
-var22 = nit___nit__ANodes___standard__abstract_collection__Collection__length(var19);
+var1202 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var_arguments, 0l);
 }
-var23 = 1;
 {
-{ /* Inline kernel#Int#== (var22,var23) on <var22:Int> */
-var26 = var22 == var23;
-var24 = var26;
-goto RET_LABEL25;
-RET_LABEL25:(void)0;
+var1203 = ((val*(*)(val* self))(var1202->class->vft[COLOR_standard__string__Object__to_s]))(var1202); /* to_s on <var1202:nullable Object(RuntimeVariable)>*/
 }
+((struct instance_standard__NativeArray*)var1197)->values[1]=var1203;
+{
+var1204 = ((val*(*)(val* self))(var1197->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var1197); /* native_to_s on <var1197:NativeArray[String]>*/
 }
-var12 = var24;
-} else {
-var12 = var_;
+varonce1196 = var1197;
+if (unlikely(var_ret == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Cast failed");
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 2321);
+fatal_exit(1);
 }
-if (var12){
 {
-{ /* Inline abstract_compiler#AbstractCompilerVisitor#compiler (var_v) on <var_v:AbstractCompilerVisitor> */
-var29 = var_v->attrs[COLOR_nit__abstract_compiler__AbstractCompilerVisitor___compiler].val; /* _compiler on <var_v:AbstractCompilerVisitor> */
-if (unlikely(var29 == NULL)) {
-PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _compiler");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1059);
-show_backtrace(1);
+var1205 = nit___nit__AbstractCompilerVisitor___new_expr(var_v, var1204, var_ret);
+}
+{
+nit___nit__AbstractCompilerVisitor___ret(var_v, var1205); /* Direct call abstract_compiler#AbstractCompilerVisitor#ret on <var_v:AbstractCompilerVisitor>*/
+}
+var = 1;
+goto RET_LABEL;
+} else {
 }
-var27 = var29;
-RET_LABEL28:(void)0;
 }
 }
-{
-{ /* Inline abstract_compiler#AbstractCompiler#modelbuilder (var27) on <var27:AbstractCompiler> */
-var32 = var27->attrs[COLOR_nit__abstract_compiler__AbstractCompiler___modelbuilder].val; /* _modelbuilder on <var27:AbstractCompiler> */
-if (unlikely(var32 == NULL)) {
-PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 481);
-show_backtrace(1);
 }
-var30 = var32;
-RET_LABEL31:(void)0;
 }
 }
-{
-var33 = nit__annotation___AAnnotation___arg_as_string(var_at, var30);
 }
-var_externname = var33;
-var34 = NULL;
-if (var_externname == NULL) {
-var35 = 1; /* is null */
-} else {
-var35 = 0; /* arg is null but recv is not */
 }
-if (0) {
-var36 = ((short int (*)(val* self, val* p0))(var_externname->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_externname, var34) /* == on <var_externname:nullable Object(nullable String)>*/;
-var35 = var36;
 }
-if (var35){
-var37 = 0;
-var = var37;
-goto RET_LABEL;
-} else {
 }
-} else {
-var38 = 0;
-var = var38;
-goto RET_LABEL;
 }
-{
-{ /* Inline model#MPropDef#mclassdef (var_mpropdef) on <var_mpropdef:MMethodDef> */
-var41 = var_mpropdef->attrs[COLOR_nit__model__MPropDef___mclassdef].val; /* _mclassdef on <var_mpropdef:MMethodDef> */
-if (unlikely(var41 == NULL)) {
-PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdef");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 2010);
-show_backtrace(1);
 }
-var39 = var41;
-RET_LABEL40:(void)0;
 }
 }
-{
-{ /* Inline model#MClassDef#mmodule (var39) on <var39:MClassDef> */
-var44 = var39->attrs[COLOR_nit__model__MClassDef___mmodule].val; /* _mmodule on <var39:MClassDef> */
-if (unlikely(var44 == NULL)) {
-PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 489);
-show_backtrace(1);
 }
-var42 = var44;
-RET_LABEL43:(void)0;
 }
 }
-{
-nit___nit__AbstractCompilerVisitor___add_extern(var_v, var42); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_extern on <var_v:AbstractCompilerVisitor>*/
 }
-var45 = NULL;
-var_res = var45;
+} else {
+if (likely(varonce1206!=NULL)) {
+var1207 = varonce1206;
+} else {
+var1208 = "NativeString";
+var1209 = standard___standard__NativeString___to_s_with_length(var1208, 12l);
+var1207 = var1209;
+varonce1206 = var1207;
+}
 {
-{ /* Inline model#MMethodDef#msignature (var_mpropdef) on <var_mpropdef:MMethodDef> */
-var48 = var_mpropdef->attrs[COLOR_nit__model__MMethodDef___msignature].val; /* _msignature on <var_mpropdef:MMethodDef> */
-var46 = var48;
-RET_LABEL47:(void)0;
+var1210 = ((short int(*)(val* self, val* p0))(var_cname->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_cname, var1207); /* == on <var_cname:String>*/
 }
+if (var1210){
+if (likely(varonce1211!=NULL)) {
+var1212 = varonce1211;
+} else {
+var1213 = "[]";
+var1214 = standard___standard__NativeString___to_s_with_length(var1213, 2l);
+var1212 = var1214;
+varonce1211 = var1212;
 }
-if (var46 == NULL) {
-PRINT_ERROR("Runtime error: %s", "Receiver is null");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 2210);
-show_backtrace(1);
+{
+var1215 = ((short int(*)(val* self, val* p0))(var_pname->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_pname, var1212); /* == on <var_pname:String>*/
+}
+if (var1215){
+if (unlikely(varonce1216==NULL)) {
+var1217 = NEW_standard__NativeArray(5l, &type_standard__NativeArray__standard__String);
+if (likely(varonce1218!=NULL)) {
+var1219 = varonce1218;
 } else {
-{ /* Inline model#MSignature#return_mtype (var46) on <var46:nullable MSignature> */
-if (unlikely(var46 == NULL)) {
-PRINT_ERROR("Runtime error: %s", "Receiver is null");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1595);
-show_backtrace(1);
+var1220 = "(uint32_t)(unsigned char)";
+var1221 = standard___standard__NativeString___to_s_with_length(var1220, 25l);
+var1219 = var1221;
+varonce1218 = var1219;
 }
-var51 = var46->attrs[COLOR_nit__model__MSignature___return_mtype].val; /* _return_mtype on <var46:nullable MSignature> */
-var49 = var51;
-RET_LABEL50:(void)0;
+((struct instance_standard__NativeArray*)var1217)->values[0]=var1219;
+if (likely(varonce1222!=NULL)) {
+var1223 = varonce1222;
+} else {
+var1224 = "[";
+var1225 = standard___standard__NativeString___to_s_with_length(var1224, 1l);
+var1223 = var1225;
+varonce1222 = var1223;
 }
+((struct instance_standard__NativeArray*)var1217)->values[2]=var1223;
+if (likely(varonce1226!=NULL)) {
+var1227 = varonce1226;
+} else {
+var1228 = "]";
+var1229 = standard___standard__NativeString___to_s_with_length(var1228, 1l);
+var1227 = var1229;
+varonce1226 = var1227;
 }
-var_ret = var49;
-var52 = NULL;
-if (var_ret == NULL) {
-var53 = 0; /* is null */
+((struct instance_standard__NativeArray*)var1217)->values[4]=var1227;
 } else {
-var53 = 1; /* arg is null and recv is not */
+var1217 = varonce1216;
+varonce1216 = NULL;
 }
-if (0) {
-{ /* Inline kernel#Object#!= (var_ret,var52) on <var_ret:nullable MType> */
-var_other = var52;
 {
-var56 = ((short int (*)(val* self, val* p0))(var_ret->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_ret, var_other) /* == on <var_ret:nullable MType(MType)>*/;
-}
-var57 = !var56;
-var54 = var57;
-goto RET_LABEL55;
-RET_LABEL55:(void)0;
+var1230 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var_arguments, 0l);
 }
-var53 = var54;
+{
+var1231 = ((val*(*)(val* self))(var1230->class->vft[COLOR_standard__string__Object__to_s]))(var1230); /* to_s on <var1230:nullable Object(RuntimeVariable)>*/
 }
-if (var53){
+((struct instance_standard__NativeArray*)var1217)->values[1]=var1231;
 {
-var58 = standard___standard__SequenceRead___Collection__first(var_arguments);
+var1232 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var_arguments, 1l);
 }
 {
-var59 = nit___nit__AbstractCompilerVisitor___resolve_for(var_v, var_ret, var58);
+var1233 = ((val*(*)(val* self))(var1232->class->vft[COLOR_standard__string__Object__to_s]))(var1232); /* to_s on <var1232:nullable Object(RuntimeVariable)>*/
 }
-var_ret = var59;
+((struct instance_standard__NativeArray*)var1217)->values[3]=var1233;
 {
-var60 = nit___nit__AbstractCompilerVisitor___new_var_extern(var_v, var_ret);
+var1234 = ((val*(*)(val* self))(var1217->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var1217); /* native_to_s on <var1217:NativeArray[String]>*/
 }
-var_res = var60;
-} else {
+varonce1216 = var1217;
+if (unlikely(var_ret == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Cast failed");
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 2326);
+fatal_exit(1);
 }
 {
-nit___nit__SeparateCompilerVisitor___nit__abstract_compiler__AbstractCompilerVisitor__adapt_signature(var_v, var_mpropdef, var_arguments); /* Direct call separate_compiler#SeparateCompilerVisitor#adapt_signature on <var_v:AbstractCompilerVisitor>*/
+var1235 = nit___nit__AbstractCompilerVisitor___new_expr(var_v, var1234, var_ret);
 }
 {
-nit___nit__SeparateCompilerVisitor___nit__abstract_compiler__AbstractCompilerVisitor__unbox_signature_extern(var_v, var_mpropdef, var_arguments); /* Direct call separate_compiler#SeparateCompilerVisitor#unbox_signature_extern on <var_v:AbstractCompilerVisitor>*/
+nit___nit__AbstractCompilerVisitor___ret(var_v, var1235); /* Direct call abstract_compiler#AbstractCompilerVisitor#ret on <var_v:AbstractCompilerVisitor>*/
 }
-var61 = NULL;
-if (var_res == NULL) {
-var62 = 1; /* is null */
+var = 1;
+goto RET_LABEL;
 } else {
-var62 = 0; /* arg is null but recv is not */
+if (likely(varonce1236!=NULL)) {
+var1237 = varonce1236;
+} else {
+var1238 = "[]=";
+var1239 = standard___standard__NativeString___to_s_with_length(var1238, 3l);
+var1237 = var1239;
+varonce1236 = var1237;
 }
-if (0) {
-{ /* Inline kernel#Object#== (var_res,var61) on <var_res:nullable RuntimeVariable> */
-var_other65 = var61;
 {
-{ /* Inline kernel#Object#is_same_instance (var_res,var_other65) on <var_res:nullable RuntimeVariable(RuntimeVariable)> */
-var68 = var_res == var_other65;
-var66 = var68;
-goto RET_LABEL67;
-RET_LABEL67:(void)0;
-}
+var1240 = ((short int(*)(val* self, val* p0))(var_pname->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_pname, var1237); /* == on <var_pname:String>*/
 }
-var63 = var66;
-goto RET_LABEL64;
-RET_LABEL64:(void)0;
+if (var1240){
+if (unlikely(varonce1241==NULL)) {
+var1242 = NEW_standard__NativeArray(6l, &type_standard__NativeArray__standard__String);
+if (likely(varonce1243!=NULL)) {
+var1244 = varonce1243;
+} else {
+var1245 = "[";
+var1246 = standard___standard__NativeString___to_s_with_length(var1245, 1l);
+var1244 = var1246;
+varonce1243 = var1244;
 }
-var62 = var63;
+((struct instance_standard__NativeArray*)var1242)->values[1]=var1244;
+if (likely(varonce1247!=NULL)) {
+var1248 = varonce1247;
+} else {
+var1249 = "]=(unsigned char)";
+var1250 = standard___standard__NativeString___to_s_with_length(var1249, 17l);
+var1248 = var1250;
+varonce1247 = var1248;
 }
-if (var62){
-if (varonce69) {
-var70 = varonce69;
+((struct instance_standard__NativeArray*)var1242)->values[3]=var1248;
+if (likely(varonce1251!=NULL)) {
+var1252 = varonce1251;
 } else {
-var71 = "(";
-var72 = 1;
-var73 = standard___standard__NativeString___to_s_with_length(var71, var72);
-var70 = var73;
-varonce69 = var70;
+var1253 = ";";
+var1254 = standard___standard__NativeString___to_s_with_length(var1253, 1l);
+var1252 = var1254;
+varonce1251 = var1252;
 }
-if (varonce74) {
-var75 = varonce74;
+((struct instance_standard__NativeArray*)var1242)->values[5]=var1252;
 } else {
-var76 = ", ";
-var77 = 2;
-var78 = standard___standard__NativeString___to_s_with_length(var76, var77);
-var75 = var78;
-varonce74 = var75;
+var1242 = varonce1241;
+varonce1241 = NULL;
 }
 {
-var79 = standard__string___Collection___join(var_arguments, var75);
+var1255 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var_arguments, 0l);
 }
-if (varonce80) {
-var81 = varonce80;
-} else {
-var82 = ");";
-var83 = 2;
-var84 = standard___standard__NativeString___to_s_with_length(var82, var83);
-var81 = var84;
-varonce80 = var81;
+{
+var1256 = ((val*(*)(val* self))(var1255->class->vft[COLOR_standard__string__Object__to_s]))(var1255); /* to_s on <var1255:nullable Object(RuntimeVariable)>*/
 }
-var85 = NEW_standard__Array(&type_standard__Array__standard__Object);
-{ /* var85 = array_instance Array[Object] */
-var86 = 4;
-var87 = NEW_standard__NativeArray(var86, &type_standard__NativeArray__standard__Object);
-((struct instance_standard__NativeArray*)var87)->values[0] = (val*) var_externname;
-((struct instance_standard__NativeArray*)var87)->values[1] = (val*) var70;
-((struct instance_standard__NativeArray*)var87)->values[2] = (val*) var79;
-((struct instance_standard__NativeArray*)var87)->values[3] = (val*) var81;
+((struct instance_standard__NativeArray*)var1242)->values[0]=var1256;
 {
-((void (*)(val* self, val* p0, long p1))(var85->class->vft[COLOR_standard__array__Array__with_native]))(var85, var87, var86) /* with_native on <var85:Array[Object]>*/;
+var1257 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var_arguments, 1l);
 }
+{
+var1258 = ((val*(*)(val* self))(var1257->class->vft[COLOR_standard__string__Object__to_s]))(var1257); /* to_s on <var1257:nullable Object(RuntimeVariable)>*/
+}
+((struct instance_standard__NativeArray*)var1242)->values[2]=var1258;
+{
+var1259 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var_arguments, 2l);
+}
+{
+var1260 = ((val*(*)(val* self))(var1259->class->vft[COLOR_standard__string__Object__to_s]))(var1259); /* to_s on <var1259:nullable Object(RuntimeVariable)>*/
 }
+((struct instance_standard__NativeArray*)var1242)->values[4]=var1260;
 {
-var88 = ((val* (*)(val* self))(var85->class->vft[COLOR_standard__string__Object__to_s]))(var85) /* to_s on <var85:Array[Object]>*/;
+var1261 = ((val*(*)(val* self))(var1242->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var1242); /* native_to_s on <var1242:NativeArray[String]>*/
 }
+varonce1241 = var1242;
 {
-nit___nit__AbstractCompilerVisitor___add(var_v, var88); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <var_v:AbstractCompilerVisitor>*/
+nit___nit__AbstractCompilerVisitor___add(var_v, var1261); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <var_v:AbstractCompilerVisitor>*/
 }
+var = 1;
+goto RET_LABEL;
 } else {
-if (varonce89) {
-var90 = varonce89;
+if (likely(varonce1262!=NULL)) {
+var1263 = varonce1262;
 } else {
-var91 = " = ";
-var92 = 3;
-var93 = standard___standard__NativeString___to_s_with_length(var91, var92);
-var90 = var93;
-varonce89 = var90;
+var1264 = "copy_to";
+var1265 = standard___standard__NativeString___to_s_with_length(var1264, 7l);
+var1263 = var1265;
+varonce1262 = var1263;
+}
+{
+var1266 = ((short int(*)(val* self, val* p0))(var_pname->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_pname, var1263); /* == on <var_pname:String>*/
 }
-if (varonce94) {
-var95 = varonce94;
+if (var1266){
+if (unlikely(varonce1267==NULL)) {
+var1268 = NEW_standard__NativeArray(11l, &type_standard__NativeArray__standard__String);
+if (likely(varonce1269!=NULL)) {
+var1270 = varonce1269;
 } else {
-var96 = "(";
-var97 = 1;
-var98 = standard___standard__NativeString___to_s_with_length(var96, var97);
-var95 = var98;
-varonce94 = var95;
+var1271 = "memmove(";
+var1272 = standard___standard__NativeString___to_s_with_length(var1271, 8l);
+var1270 = var1272;
+varonce1269 = var1270;
 }
-if (varonce99) {
-var100 = varonce99;
+((struct instance_standard__NativeArray*)var1268)->values[0]=var1270;
+if (likely(varonce1273!=NULL)) {
+var1274 = varonce1273;
 } else {
-var101 = ", ";
-var102 = 2;
-var103 = standard___standard__NativeString___to_s_with_length(var101, var102);
-var100 = var103;
-varonce99 = var100;
+var1275 = "+";
+var1276 = standard___standard__NativeString___to_s_with_length(var1275, 1l);
+var1274 = var1276;
+varonce1273 = var1274;
 }
-{
-var104 = standard__string___Collection___join(var_arguments, var100);
+((struct instance_standard__NativeArray*)var1268)->values[2]=var1274;
+if (likely(varonce1277!=NULL)) {
+var1278 = varonce1277;
+} else {
+var1279 = ",";
+var1280 = standard___standard__NativeString___to_s_with_length(var1279, 1l);
+var1278 = var1280;
+varonce1277 = var1278;
 }
-if (varonce105) {
-var106 = varonce105;
+((struct instance_standard__NativeArray*)var1268)->values[4]=var1278;
+if (likely(varonce1281!=NULL)) {
+var1282 = varonce1281;
 } else {
-var107 = ");";
-var108 = 2;
-var109 = standard___standard__NativeString___to_s_with_length(var107, var108);
-var106 = var109;
-varonce105 = var106;
+var1283 = "+";
+var1284 = standard___standard__NativeString___to_s_with_length(var1283, 1l);
+var1282 = var1284;
+varonce1281 = var1282;
 }
-var110 = NEW_standard__Array(&type_standard__Array__standard__Object);
-{ /* var110 = array_instance Array[Object] */
-var111 = 6;
-var112 = NEW_standard__NativeArray(var111, &type_standard__NativeArray__standard__Object);
-((struct instance_standard__NativeArray*)var112)->values[0] = (val*) var_res;
-((struct instance_standard__NativeArray*)var112)->values[1] = (val*) var90;
-((struct instance_standard__NativeArray*)var112)->values[2] = (val*) var_externname;
-((struct instance_standard__NativeArray*)var112)->values[3] = (val*) var95;
-((struct instance_standard__NativeArray*)var112)->values[4] = (val*) var104;
-((struct instance_standard__NativeArray*)var112)->values[5] = (val*) var106;
-{
-((void (*)(val* self, val* p0, long p1))(var110->class->vft[COLOR_standard__array__Array__with_native]))(var110, var112, var111) /* with_native on <var110:Array[Object]>*/;
+((struct instance_standard__NativeArray*)var1268)->values[6]=var1282;
+if (likely(varonce1285!=NULL)) {
+var1286 = varonce1285;
+} else {
+var1287 = ",";
+var1288 = standard___standard__NativeString___to_s_with_length(var1287, 1l);
+var1286 = var1288;
+varonce1285 = var1286;
 }
+((struct instance_standard__NativeArray*)var1268)->values[8]=var1286;
+if (likely(varonce1289!=NULL)) {
+var1290 = varonce1289;
+} else {
+var1291 = ");";
+var1292 = standard___standard__NativeString___to_s_with_length(var1291, 2l);
+var1290 = var1292;
+varonce1289 = var1290;
 }
-{
-var113 = ((val* (*)(val* self))(var110->class->vft[COLOR_standard__string__Object__to_s]))(var110) /* to_s on <var110:Array[Object]>*/;
+((struct instance_standard__NativeArray*)var1268)->values[10]=var1290;
+} else {
+var1268 = varonce1267;
+varonce1267 = NULL;
 }
 {
-nit___nit__AbstractCompilerVisitor___add(var_v, var113); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <var_v:AbstractCompilerVisitor>*/
-}
-if (unlikely(var_ret == NULL)) {
-PRINT_ERROR("Runtime error: %s", "Cast failed");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 2222);
-show_backtrace(1);
+var1293 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var_arguments, 1l);
 }
 {
-var114 = ((val* (*)(val* self, val* p0, val* p1))(var_v->class->vft[COLOR_nit__abstract_compiler__AbstractCompilerVisitor__box_extern]))(var_v, var_res, var_ret) /* box_extern on <var_v:AbstractCompilerVisitor>*/;
+var1294 = ((val*(*)(val* self))(var1293->class->vft[COLOR_standard__string__Object__to_s]))(var1293); /* to_s on <var1293:nullable Object(RuntimeVariable)>*/
 }
-var_res = var114;
+((struct instance_standard__NativeArray*)var1268)->values[1]=var1294;
 {
-nit___nit__AbstractCompilerVisitor___ret(var_v, var_res); /* Direct call abstract_compiler#AbstractCompilerVisitor#ret on <var_v:AbstractCompilerVisitor>*/
-}
+var1295 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var_arguments, 4l);
 }
-var115 = 1;
-var = var115;
-goto RET_LABEL;
-RET_LABEL:;
-return var;
+{
+var1296 = ((val*(*)(val* self))(var1295->class->vft[COLOR_standard__string__Object__to_s]))(var1295); /* to_s on <var1295:nullable Object(RuntimeVariable)>*/
 }
-/* method abstract_compiler#AMethPropdef#compile_externinit_to_c for (self: AMethPropdef, AbstractCompilerVisitor, MMethodDef, Array[RuntimeVariable]): Bool */
-short int nit__abstract_compiler___AMethPropdef___compile_externinit_to_c(val* self, val* p0, val* p1, val* p2) {
-short int var /* : Bool */;
-val* var_v /* var v: AbstractCompilerVisitor */;
-val* var_mpropdef /* var mpropdef: MMethodDef */;
-val* var_arguments /* var arguments: Array[RuntimeVariable] */;
-static val* varonce;
-val* var1 /* : String */;
-char* var2 /* : NativeString */;
-long var3 /* : Int */;
-val* var4 /* : FlatString */;
-val* var5 /* : AbstractCompiler */;
-val* var7 /* : AbstractCompiler */;
-val* var8 /* : ModelBuilder */;
-val* var10 /* : ModelBuilder */;
-val* var11 /* : nullable AAnnotation */;
-val* var_at /* var at: nullable AAnnotation */;
-val* var12 /* : null */;
-short int var13 /* : Bool */;
-short int var14 /* : Bool */;
-val* var_other /* var other: nullable Object */;
-short int var16 /* : Bool */;
-short int var17 /* : Bool */;
-val* var18 /* : AbstractCompiler */;
-val* var20 /* : AbstractCompiler */;
-val* var21 /* : ModelBuilder */;
-val* var23 /* : ModelBuilder */;
-val* var24 /* : nullable String */;
-val* var_externname /* var externname: nullable Object */;
-val* var25 /* : null */;
-short int var26 /* : Bool */;
-short int var27 /* : Bool */;
-short int var28 /* : Bool */;
-short int var29 /* : Bool */;
-val* var30 /* : MClassDef */;
-val* var32 /* : MClassDef */;
-val* var33 /* : MModule */;
-val* var35 /* : MModule */;
-val* var36 /* : nullable Object */;
-val* var37 /* : MType */;
-val* var39 /* : MType */;
-val* var_ret /* var ret: MType */;
-val* var40 /* : RuntimeVariable */;
-val* var_res /* var res: RuntimeVariable */;
-val* var41 /* : nullable Object */;
-static val* varonce42;
-val* var43 /* : String */;
-char* var44 /* : NativeString */;
-long var45 /* : Int */;
-val* var46 /* : FlatString */;
-static val* varonce47;
-val* var48 /* : String */;
-char* var49 /* : NativeString */;
-long var50 /* : Int */;
-val* var51 /* : FlatString */;
-static val* varonce52;
-val* var53 /* : String */;
-char* var54 /* : NativeString */;
-long var55 /* : Int */;
-val* var56 /* : FlatString */;
-val* var57 /* : String */;
-static val* varonce58;
-val* var59 /* : String */;
-char* var60 /* : NativeString */;
-long var61 /* : Int */;
-val* var62 /* : FlatString */;
-val* var63 /* : Array[Object] */;
-long var64 /* : Int */;
-val* var65 /* : NativeArray[Object] */;
-val* var66 /* : String */;
-val* var67 /* : RuntimeVariable */;
-short int var68 /* : Bool */;
-var_v = p0;
-var_mpropdef = p1;
-var_arguments = p2;
-if (varonce) {
-var1 = varonce;
-} else {
-var2 = "extern";
-var3 = 6;
-var4 = standard___standard__NativeString___to_s_with_length(var2, var3);
-var1 = var4;
-varonce = var1;
+((struct instance_standard__NativeArray*)var1268)->values[3]=var1296;
+{
+var1297 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var_arguments, 0l);
 }
 {
-{ /* Inline abstract_compiler#AbstractCompilerVisitor#compiler (var_v) on <var_v:AbstractCompilerVisitor> */
-var7 = var_v->attrs[COLOR_nit__abstract_compiler__AbstractCompilerVisitor___compiler].val; /* _compiler on <var_v:AbstractCompilerVisitor> */
-if (unlikely(var7 == NULL)) {
-PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _compiler");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1059);
-show_backtrace(1);
+var1298 = ((val*(*)(val* self))(var1297->class->vft[COLOR_standard__string__Object__to_s]))(var1297); /* to_s on <var1297:nullable Object(RuntimeVariable)>*/
 }
-var5 = var7;
-RET_LABEL6:(void)0;
+((struct instance_standard__NativeArray*)var1268)->values[5]=var1298;
+{
+var1299 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var_arguments, 3l);
 }
+{
+var1300 = ((val*(*)(val* self))(var1299->class->vft[COLOR_standard__string__Object__to_s]))(var1299); /* to_s on <var1299:nullable Object(RuntimeVariable)>*/
 }
+((struct instance_standard__NativeArray*)var1268)->values[7]=var1300;
 {
-{ /* Inline abstract_compiler#AbstractCompiler#modelbuilder (var5) on <var5:AbstractCompiler> */
-var10 = var5->attrs[COLOR_nit__abstract_compiler__AbstractCompiler___modelbuilder].val; /* _modelbuilder on <var5:AbstractCompiler> */
-if (unlikely(var10 == NULL)) {
-PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 481);
-show_backtrace(1);
+var1301 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var_arguments, 2l);
 }
-var8 = var10;
-RET_LABEL9:(void)0;
+{
+var1302 = ((val*(*)(val* self))(var1301->class->vft[COLOR_standard__string__Object__to_s]))(var1301); /* to_s on <var1301:nullable Object(RuntimeVariable)>*/
 }
+((struct instance_standard__NativeArray*)var1268)->values[9]=var1302;
+{
+var1303 = ((val*(*)(val* self))(var1268->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var1268); /* native_to_s on <var1268:NativeArray[String]>*/
 }
+varonce1267 = var1268;
 {
-var11 = nit__annotation___Prod___get_single_annotation(self, var1, var8);
+nit___nit__AbstractCompilerVisitor___add(var_v, var1303); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <var_v:AbstractCompilerVisitor>*/
 }
-var_at = var11;
-var12 = NULL;
-if (var_at == NULL) {
-var13 = 0; /* is null */
+var = 1;
+goto RET_LABEL;
 } else {
-var13 = 1; /* arg is null and recv is not */
+if (likely(varonce1304!=NULL)) {
+var1305 = varonce1304;
+} else {
+var1306 = "atoi";
+var1307 = standard___standard__NativeString___to_s_with_length(var1306, 4l);
+var1305 = var1307;
+varonce1304 = var1305;
 }
-if (0) {
-{ /* Inline kernel#Object#!= (var_at,var12) on <var_at:nullable AAnnotation> */
-var_other = var12;
 {
-var16 = ((short int (*)(val* self, val* p0))(var_at->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_at, var_other) /* == on <var_at:nullable AAnnotation(AAnnotation)>*/;
+var1308 = ((short int(*)(val* self, val* p0))(var_pname->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_pname, var1305); /* == on <var_pname:String>*/
 }
-var17 = !var16;
-var14 = var17;
-goto RET_LABEL15;
-RET_LABEL15:(void)0;
+if (var1308){
+if (unlikely(varonce1309==NULL)) {
+var1310 = NEW_standard__NativeArray(3l, &type_standard__NativeArray__standard__String);
+if (likely(varonce1311!=NULL)) {
+var1312 = varonce1311;
+} else {
+var1313 = "atoi(";
+var1314 = standard___standard__NativeString___to_s_with_length(var1313, 5l);
+var1312 = var1314;
+varonce1311 = var1312;
 }
-var13 = var14;
+((struct instance_standard__NativeArray*)var1310)->values[0]=var1312;
+if (likely(varonce1315!=NULL)) {
+var1316 = varonce1315;
+} else {
+var1317 = ");";
+var1318 = standard___standard__NativeString___to_s_with_length(var1317, 2l);
+var1316 = var1318;
+varonce1315 = var1316;
 }
-if (var13){
-{
-{ /* Inline abstract_compiler#AbstractCompilerVisitor#compiler (var_v) on <var_v:AbstractCompilerVisitor> */
-var20 = var_v->attrs[COLOR_nit__abstract_compiler__AbstractCompilerVisitor___compiler].val; /* _compiler on <var_v:AbstractCompilerVisitor> */
-if (unlikely(var20 == NULL)) {
-PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _compiler");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1059);
-show_backtrace(1);
+((struct instance_standard__NativeArray*)var1310)->values[2]=var1316;
+} else {
+var1310 = varonce1309;
+varonce1309 = NULL;
 }
-var18 = var20;
-RET_LABEL19:(void)0;
+{
+var1319 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var_arguments, 0l);
 }
+{
+var1320 = ((val*(*)(val* self))(var1319->class->vft[COLOR_standard__string__Object__to_s]))(var1319); /* to_s on <var1319:nullable Object(RuntimeVariable)>*/
 }
+((struct instance_standard__NativeArray*)var1310)->values[1]=var1320;
 {
-{ /* Inline abstract_compiler#AbstractCompiler#modelbuilder (var18) on <var18:AbstractCompiler> */
-var23 = var18->attrs[COLOR_nit__abstract_compiler__AbstractCompiler___modelbuilder].val; /* _modelbuilder on <var18:AbstractCompiler> */
-if (unlikely(var23 == NULL)) {
-PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 481);
-show_backtrace(1);
+var1321 = ((val*(*)(val* self))(var1310->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var1310); /* native_to_s on <var1310:NativeArray[String]>*/
 }
-var21 = var23;
-RET_LABEL22:(void)0;
+varonce1309 = var1310;
+if (unlikely(var_ret == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Cast failed");
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 2335);
+fatal_exit(1);
 }
+{
+var1322 = nit___nit__AbstractCompilerVisitor___new_expr(var_v, var1321, var_ret);
 }
 {
-var24 = nit__annotation___AAnnotation___arg_as_string(var_at, var21);
+nit___nit__AbstractCompilerVisitor___ret(var_v, var1322); /* Direct call abstract_compiler#AbstractCompilerVisitor#ret on <var_v:AbstractCompilerVisitor>*/
 }
-var_externname = var24;
-var25 = NULL;
-if (var_externname == NULL) {
-var26 = 1; /* is null */
+var = 1;
+goto RET_LABEL;
 } else {
-var26 = 0; /* arg is null but recv is not */
+if (likely(varonce1323!=NULL)) {
+var1324 = varonce1323;
+} else {
+var1325 = "fast_cstring";
+var1326 = standard___standard__NativeString___to_s_with_length(var1325, 12l);
+var1324 = var1326;
+varonce1323 = var1324;
 }
-if (0) {
-var27 = ((short int (*)(val* self, val* p0))(var_externname->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_externname, var25) /* == on <var_externname:nullable Object(nullable String)>*/;
-var26 = var27;
+{
+var1327 = ((short int(*)(val* self, val* p0))(var_pname->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_pname, var1324); /* == on <var_pname:String>*/
 }
-if (var26){
-var28 = 0;
-var = var28;
-goto RET_LABEL;
+if (var1327){
+if (unlikely(varonce1328==NULL)) {
+var1329 = NEW_standard__NativeArray(3l, &type_standard__NativeArray__standard__String);
+if (likely(varonce1330!=NULL)) {
+var1331 = varonce1330;
 } else {
+var1332 = " + ";
+var1333 = standard___standard__NativeString___to_s_with_length(var1332, 3l);
+var1331 = var1333;
+varonce1330 = var1331;
 }
+((struct instance_standard__NativeArray*)var1329)->values[1]=var1331;
 } else {
-var29 = 0;
-var = var29;
-goto RET_LABEL;
+var1329 = varonce1328;
+varonce1328 = NULL;
 }
 {
-{ /* Inline model#MPropDef#mclassdef (var_mpropdef) on <var_mpropdef:MMethodDef> */
-var32 = var_mpropdef->attrs[COLOR_nit__model__MPropDef___mclassdef].val; /* _mclassdef on <var_mpropdef:MMethodDef> */
-if (unlikely(var32 == NULL)) {
-PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdef");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 2010);
-show_backtrace(1);
+var1334 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var_arguments, 0l);
 }
-var30 = var32;
-RET_LABEL31:(void)0;
+{
+var1335 = ((val*(*)(val* self))(var1334->class->vft[COLOR_standard__string__Object__to_s]))(var1334); /* to_s on <var1334:nullable Object(RuntimeVariable)>*/
 }
+((struct instance_standard__NativeArray*)var1329)->values[0]=var1335;
+{
+var1336 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var_arguments, 1l);
 }
 {
-{ /* Inline model#MClassDef#mmodule (var30) on <var30:MClassDef> */
-var35 = var30->attrs[COLOR_nit__model__MClassDef___mmodule].val; /* _mmodule on <var30:MClassDef> */
-if (unlikely(var35 == NULL)) {
-PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 489);
-show_backtrace(1);
+var1337 = ((val*(*)(val* self))(var1336->class->vft[COLOR_standard__string__Object__to_s]))(var1336); /* to_s on <var1336:nullable Object(RuntimeVariable)>*/
 }
-var33 = var35;
-RET_LABEL34:(void)0;
+((struct instance_standard__NativeArray*)var1329)->values[2]=var1337;
+{
+var1338 = ((val*(*)(val* self))(var1329->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var1329); /* native_to_s on <var1329:NativeArray[String]>*/
 }
+varonce1328 = var1329;
+if (unlikely(var_ret == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Cast failed");
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 2338);
+fatal_exit(1);
 }
 {
-nit___nit__AbstractCompilerVisitor___add_extern(var_v, var33); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_extern on <var_v:AbstractCompilerVisitor>*/
+var1339 = nit___nit__AbstractCompilerVisitor___new_expr(var_v, var1338, var_ret);
 }
 {
-nit___nit__SeparateCompilerVisitor___nit__abstract_compiler__AbstractCompilerVisitor__adapt_signature(var_v, var_mpropdef, var_arguments); /* Direct call separate_compiler#SeparateCompilerVisitor#adapt_signature on <var_v:AbstractCompilerVisitor>*/
+nit___nit__AbstractCompilerVisitor___ret(var_v, var1339); /* Direct call abstract_compiler#AbstractCompilerVisitor#ret on <var_v:AbstractCompilerVisitor>*/
+}
+var = 1;
+goto RET_LABEL;
+} else {
+if (likely(varonce1340!=NULL)) {
+var1341 = varonce1340;
+} else {
+var1342 = "new";
+var1343 = standard___standard__NativeString___to_s_with_length(var1342, 3l);
+var1341 = var1343;
+varonce1340 = var1341;
 }
 {
-nit___nit__SeparateCompilerVisitor___nit__abstract_compiler__AbstractCompilerVisitor__unbox_signature_extern(var_v, var_mpropdef, var_arguments); /* Direct call separate_compiler#SeparateCompilerVisitor#unbox_signature_extern on <var_v:AbstractCompilerVisitor>*/
+var1344 = ((short int(*)(val* self, val* p0))(var_pname->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_pname, var1341); /* == on <var_pname:String>*/
+}
+if (var1344){
+if (unlikely(varonce1345==NULL)) {
+var1346 = NEW_standard__NativeArray(3l, &type_standard__NativeArray__standard__String);
+if (likely(varonce1347!=NULL)) {
+var1348 = varonce1347;
+} else {
+var1349 = "(char*)nit_alloc(";
+var1350 = standard___standard__NativeString___to_s_with_length(var1349, 17l);
+var1348 = var1350;
+varonce1347 = var1348;
+}
+((struct instance_standard__NativeArray*)var1346)->values[0]=var1348;
+if (likely(varonce1351!=NULL)) {
+var1352 = varonce1351;
+} else {
+var1353 = ")";
+var1354 = standard___standard__NativeString___to_s_with_length(var1353, 1l);
+var1352 = var1354;
+varonce1351 = var1352;
+}
+((struct instance_standard__NativeArray*)var1346)->values[2]=var1352;
+} else {
+var1346 = varonce1345;
+varonce1345 = NULL;
 }
 {
-var36 = standard___standard__SequenceRead___Collection__first(var_arguments);
+var1355 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var_arguments, 1l);
 }
 {
-{ /* Inline abstract_compiler#RuntimeVariable#mtype (var36) on <var36:nullable Object(RuntimeVariable)> */
-var39 = var36->attrs[COLOR_nit__abstract_compiler__RuntimeVariable___mtype].val; /* _mtype on <var36:nullable Object(RuntimeVariable)> */
-if (unlikely(var39 == NULL)) {
-PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1680);
-show_backtrace(1);
+var1356 = ((val*(*)(val* self))(var1355->class->vft[COLOR_standard__string__Object__to_s]))(var1355); /* to_s on <var1355:nullable Object(RuntimeVariable)>*/
 }
-var37 = var39;
-RET_LABEL38:(void)0;
+((struct instance_standard__NativeArray*)var1346)->values[1]=var1356;
+{
+var1357 = ((val*(*)(val* self))(var1346->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var1346); /* native_to_s on <var1346:NativeArray[String]>*/
 }
+varonce1345 = var1346;
+if (unlikely(var_ret == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Cast failed");
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 2341);
+fatal_exit(1);
 }
-var_ret = var37;
 {
-var40 = nit___nit__AbstractCompilerVisitor___new_var_extern(var_v, var_ret);
+var1358 = nit___nit__AbstractCompilerVisitor___new_expr(var_v, var1357, var_ret);
 }
-var_res = var40;
 {
-var41 = standard___standard__AbstractArray___standard__abstract_collection__Sequence__shift(var_arguments);
+nit___nit__AbstractCompilerVisitor___ret(var_v, var1358); /* Direct call abstract_compiler#AbstractCompilerVisitor#ret on <var_v:AbstractCompilerVisitor>*/
 }
-if (varonce42) {
-var43 = varonce42;
+var = 1;
+goto RET_LABEL;
 } else {
-var44 = " = ";
-var45 = 3;
-var46 = standard___standard__NativeString___to_s_with_length(var44, var45);
-var43 = var46;
-varonce42 = var43;
 }
-if (varonce47) {
-var48 = varonce47;
-} else {
-var49 = "(";
-var50 = 1;
-var51 = standard___standard__NativeString___to_s_with_length(var49, var50);
-var48 = var51;
-varonce47 = var48;
 }
-if (varonce52) {
-var53 = varonce52;
+}
+}
+}
+}
 } else {
-var54 = ", ";
-var55 = 2;
-var56 = standard___standard__NativeString___to_s_with_length(var54, var55);
-var53 = var56;
-varonce52 = var53;
+if (likely(varonce1359!=NULL)) {
+var1360 = varonce1359;
+} else {
+var1361 = "NativeArray";
+var1362 = standard___standard__NativeString___to_s_with_length(var1361, 11l);
+var1360 = var1362;
+varonce1359 = var1360;
 }
 {
-var57 = standard__string___Collection___join(var_arguments, var53);
+var1363 = ((short int(*)(val* self, val* p0))(var_cname->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_cname, var1360); /* == on <var_cname:String>*/
 }
-if (varonce58) {
-var59 = varonce58;
+if (var1363){
+{
+nit___nit__SeparateCompilerVisitor___nit__abstract_compiler__AbstractCompilerVisitor__native_array_def(var_v, var_pname, var_ret, var_arguments); /* Direct call separate_compiler#SeparateCompilerVisitor#native_array_def on <var_v:AbstractCompilerVisitor>*/
+}
+var = 1;
+goto RET_LABEL;
 } else {
-var60 = ");";
-var61 = 2;
-var62 = standard___standard__NativeString___to_s_with_length(var60, var61);
-var59 = var62;
-varonce58 = var59;
 }
-var63 = NEW_standard__Array(&type_standard__Array__standard__Object);
-{ /* var63 = array_instance Array[Object] */
-var64 = 6;
-var65 = NEW_standard__NativeArray(var64, &type_standard__NativeArray__standard__Object);
-((struct instance_standard__NativeArray*)var65)->values[0] = (val*) var_res;
-((struct instance_standard__NativeArray*)var65)->values[1] = (val*) var43;
-((struct instance_standard__NativeArray*)var65)->values[2] = (val*) var_externname;
-((struct instance_standard__NativeArray*)var65)->values[3] = (val*) var48;
-((struct instance_standard__NativeArray*)var65)->values[4] = (val*) var57;
-((struct instance_standard__NativeArray*)var65)->values[5] = (val*) var59;
+}
+}
+}
+}
+}
+}
+if (likely(varonce1364!=NULL)) {
+var1365 = varonce1364;
+} else {
+var1366 = "exit";
+var1367 = standard___standard__NativeString___to_s_with_length(var1366, 4l);
+var1365 = var1367;
+varonce1364 = var1365;
+}
 {
-((void (*)(val* self, val* p0, long p1))(var63->class->vft[COLOR_standard__array__Array__with_native]))(var63, var65, var64) /* with_native on <var63:Array[Object]>*/;
+var1368 = ((short int(*)(val* self, val* p0))(var_pname->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_pname, var1365); /* == on <var_pname:String>*/
+}
+if (var1368){
+if (unlikely(varonce1369==NULL)) {
+var1370 = NEW_standard__NativeArray(3l, &type_standard__NativeArray__standard__String);
+if (likely(varonce1371!=NULL)) {
+var1372 = varonce1371;
+} else {
+var1373 = "exit(";
+var1374 = standard___standard__NativeString___to_s_with_length(var1373, 5l);
+var1372 = var1374;
+varonce1371 = var1372;
 }
+((struct instance_standard__NativeArray*)var1370)->values[0]=var1372;
+if (likely(varonce1375!=NULL)) {
+var1376 = varonce1375;
+} else {
+var1377 = ");";
+var1378 = standard___standard__NativeString___to_s_with_length(var1377, 2l);
+var1376 = var1378;
+varonce1375 = var1376;
+}
+((struct instance_standard__NativeArray*)var1370)->values[2]=var1376;
+} else {
+var1370 = varonce1369;
+varonce1369 = NULL;
 }
 {
-var66 = ((val* (*)(val* self))(var63->class->vft[COLOR_standard__string__Object__to_s]))(var63) /* to_s on <var63:Array[Object]>*/;
+var1379 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var_arguments, 1l);
 }
 {
-nit___nit__AbstractCompilerVisitor___add(var_v, var66); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <var_v:AbstractCompilerVisitor>*/
+var1380 = ((val*(*)(val* self))(var1379->class->vft[COLOR_standard__string__Object__to_s]))(var1379); /* to_s on <var1379:nullable Object(RuntimeVariable)>*/
 }
+((struct instance_standard__NativeArray*)var1370)->values[1]=var1380;
 {
-var67 = ((val* (*)(val* self, val* p0, val* p1))(var_v->class->vft[COLOR_nit__abstract_compiler__AbstractCompilerVisitor__box_extern]))(var_v, var_res, var_ret) /* box_extern on <var_v:AbstractCompilerVisitor>*/;
+var1381 = ((val*(*)(val* self))(var1370->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var1370); /* native_to_s on <var1370:NativeArray[String]>*/
 }
-var_res = var67;
+varonce1369 = var1370;
 {
-nit___nit__AbstractCompilerVisitor___ret(var_v, var_res); /* Direct call abstract_compiler#AbstractCompilerVisitor#ret on <var_v:AbstractCompilerVisitor>*/
+nit___nit__AbstractCompilerVisitor___add(var_v, var1381); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <var_v:AbstractCompilerVisitor>*/
 }
-var68 = 1;
-var = var68;
+var = 1;
 goto RET_LABEL;
-RET_LABEL:;
-return var;
+} else {
+if (likely(varonce1382!=NULL)) {
+var1383 = varonce1382;
+} else {
+var1384 = "sys";
+var1385 = standard___standard__NativeString___to_s_with_length(var1384, 3l);
+var1383 = var1385;
+varonce1382 = var1383;
 }
-/* method abstract_compiler#AAttrPropdef#can_inline for (self: AAttrPropdef): Bool */
-short int nit__abstract_compiler___AAttrPropdef___APropdef__can_inline(val* self) {
-short int var /* : Bool */;
-short int var1 /* : Bool */;
-short int var3 /* : Bool */;
-short int var4 /* : Bool */;
 {
-{ /* Inline modelize_property#AAttrPropdef#is_lazy (self) on <self:AAttrPropdef> */
-var3 = self->attrs[COLOR_nit__modelize_property__AAttrPropdef___is_lazy].s; /* _is_lazy on <self:AAttrPropdef> */
-var1 = var3;
-RET_LABEL2:(void)0;
+var1386 = ((short int(*)(val* self, val* p0))(var_pname->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_pname, var1383); /* == on <var_pname:String>*/
 }
+if (var1386){
+if (likely(varonce1387!=NULL)) {
+var1388 = varonce1387;
+} else {
+var1389 = "glob_sys";
+var1390 = standard___standard__NativeString___to_s_with_length(var1389, 8l);
+var1388 = var1390;
+varonce1387 = var1388;
 }
-var4 = !var1;
-var = var4;
-goto RET_LABEL;
-RET_LABEL:;
-return var;
+if (unlikely(var_ret == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Cast failed");
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 2352);
+fatal_exit(1);
 }
-/* method abstract_compiler#AAttrPropdef#compile_to_c for (self: AAttrPropdef, AbstractCompilerVisitor, MMethodDef, Array[RuntimeVariable]) */
-void nit__abstract_compiler___AAttrPropdef___APropdef__compile_to_c(val* self, val* p0, val* p1, val* p2) {
-val* var_v /* var v: AbstractCompilerVisitor */;
-val* var_mpropdef /* var mpropdef: MMethodDef */;
-val* var_arguments /* var arguments: Array[RuntimeVariable] */;
-val* var /* : nullable MMethodDef */;
-val* var2 /* : nullable MMethodDef */;
-short int var3 /* : Bool */;
-val* var_other /* var other: nullable Object */;
-short int var5 /* : Bool */;
-short int var7 /* : Bool */;
-long var8 /* : Int */;
-long var10 /* : Int */;
-long var11 /* : Int */;
-short int var12 /* : Bool */;
-short int var14 /* : Bool */;
-val* var15 /* : nullable Object */;
-val* var_recv /* var recv: RuntimeVariable */;
-short int var16 /* : Bool */;
-short int var18 /* : Bool */;
-val* var19 /* : nullable MPropDef */;
-val* var21 /* : nullable MPropDef */;
-val* var22 /* : nullable MType */;
-val* var24 /* : nullable MType */;
-val* var_ret /* var ret: nullable MType */;
-short int var25 /* : Bool */;
-val* var26 /* : String */;
-static val* varonce;
-val* var27 /* : String */;
-char* var28 /* : NativeString */;
-long var29 /* : Int */;
-val* var30 /* : FlatString */;
-short int var31 /* : Bool */;
-short int var_ /* var : Bool */;
-short int var32 /* : Bool */;
-int cltype;
-int idtype;
-short int var33 /* : Bool */;
-short int var_useiset /* var useiset: Bool */;
-val* var34 /* : nullable MAttributeDef */;
-val* var36 /* : nullable MAttributeDef */;
-val* var37 /* : MProperty */;
-val* var39 /* : MProperty */;
-val* var_guard /* var guard: MAttribute */;
-val* var40 /* : nullable MPropDef */;
-val* var42 /* : nullable MPropDef */;
-val* var43 /* : MProperty */;
-val* var45 /* : MProperty */;
-val* var46 /* : RuntimeVariable */;
-val* var_set /* var set: nullable Object */;
-val* var47 /* : RuntimeVariable */;
-static val* varonce48;
-val* var49 /* : String */;
-char* var50 /* : NativeString */;
-long var51 /* : Int */;
-val* var52 /* : FlatString */;
-static val* varonce53;
-val* var54 /* : String */;
-char* var55 /* : NativeString */;
-long var56 /* : Int */;
-val* var57 /* : FlatString */;
-val* var58 /* : Array[Object] */;
-long var59 /* : Int */;
-val* var60 /* : NativeArray[Object] */;
-val* var61 /* : String */;
-val* var62 /* : nullable MPropDef */;
-val* var64 /* : nullable MPropDef */;
-val* var65 /* : MProperty */;
-val* var67 /* : MProperty */;
-val* var68 /* : RuntimeVariable */;
-val* var_res /* var res: nullable Object */;
-static val* varonce69;
-val* var70 /* : String */;
-char* var71 /* : NativeString */;
-long var72 /* : Int */;
-val* var73 /* : FlatString */;
-val* var74 /* : RuntimeVariable */;
-val* var_value /* var value: RuntimeVariable */;
-short int var75 /* : Bool */;
-static val* varonce76;
-val* var77 /* : String */;
-char* var78 /* : NativeString */;
-long var79 /* : Int */;
-val* var80 /* : FlatString */;
-val* var81 /* : MClassType */;
-val* var82 /* : RuntimeVariable */;
-val* var_true_v /* var true_v: RuntimeVariable */;
-val* var83 /* : nullable Object */;
-static val* varonce84;
-val* var85 /* : String */;
-char* var86 /* : NativeString */;
-long var87 /* : Int */;
-val* var88 /* : FlatString */;
-val* var89 /* : nullable MPropDef */;
-val* var91 /* : nullable MPropDef */;
-val* var92 /* : MProperty */;
-val* var94 /* : MProperty */;
-val* var95 /* : nullable Object */;
-val* var96 /* : RuntimeVariable */;
-val* var97 /* : nullable StaticFrame */;
-val* var99 /* : nullable StaticFrame */;
-val* var100 /* : nullable RuntimeVariable */;
-val* var102 /* : nullable RuntimeVariable */;
-val* var103 /* : nullable MMethodDef */;
-val* var105 /* : nullable MMethodDef */;
-short int var106 /* : Bool */;
-short int var108 /* : Bool */;
-short int var110 /* : Bool */;
-long var111 /* : Int */;
-long var113 /* : Int */;
-long var114 /* : Int */;
-short int var115 /* : Bool */;
-short int var117 /* : Bool */;
-val* var118 /* : nullable MPropDef */;
-val* var120 /* : nullable MPropDef */;
-val* var121 /* : MProperty */;
-val* var123 /* : MProperty */;
-val* var124 /* : nullable Object */;
-long var125 /* : Int */;
-val* var126 /* : nullable Object */;
-short int var127 /* : Bool */;
-short int var129 /* : Bool */;
-val* var130 /* : nullable MPropDef */;
-val* var132 /* : nullable MPropDef */;
-val* var133 /* : nullable MType */;
-val* var135 /* : nullable MType */;
-val* var_ret136 /* var ret: nullable MType */;
-short int var137 /* : Bool */;
-val* var138 /* : String */;
-static val* varonce139;
-val* var140 /* : String */;
-char* var141 /* : NativeString */;
-long var142 /* : Int */;
-val* var143 /* : FlatString */;
-short int var144 /* : Bool */;
-short int var_145 /* var : Bool */;
-short int var146 /* : Bool */;
-int cltype147;
-int idtype148;
-short int var149 /* : Bool */;
-short int var_useiset150 /* var useiset: Bool */;
-short int var151 /* : Bool */;
-val* var152 /* : nullable MAttributeDef */;
-val* var154 /* : nullable MAttributeDef */;
-val* var155 /* : MProperty */;
-val* var157 /* : MProperty */;
-val* var158 /* : nullable Object */;
-static val* varonce159;
-val* var160 /* : String */;
-char* var161 /* : NativeString */;
-long var162 /* : Int */;
-val* var163 /* : FlatString */;
-val* var164 /* : MClassType */;
-val* var165 /* : RuntimeVariable */;
-var_v = p0;
-var_mpropdef = p1;
-var_arguments = p2;
 {
-{ /* Inline modelize_property#AAttrPropdef#mreadpropdef (self) on <self:AAttrPropdef> */
-var2 = self->attrs[COLOR_nit__modelize_property__AAttrPropdef___mreadpropdef].val; /* _mreadpropdef on <self:AAttrPropdef> */
-var = var2;
-RET_LABEL1:(void)0;
+var1391 = nit___nit__AbstractCompilerVisitor___new_expr(var_v, var1388, var_ret);
 }
-}
-{
-{ /* Inline kernel#Object#== (var_mpropdef,var) on <var_mpropdef:MMethodDef> */
-var_other = var;
 {
-{ /* Inline kernel#Object#is_same_instance (var_mpropdef,var_other) on <var_mpropdef:MMethodDef> */
-var7 = var_mpropdef == var_other;
-var5 = var7;
-goto RET_LABEL6;
-RET_LABEL6:(void)0;
-}
-}
-var3 = var5;
-goto RET_LABEL4;
-RET_LABEL4:(void)0;
+nit___nit__AbstractCompilerVisitor___ret(var_v, var1391); /* Direct call abstract_compiler#AbstractCompilerVisitor#ret on <var_v:AbstractCompilerVisitor>*/
 }
+var = 1;
+goto RET_LABEL;
+} else {
+if (likely(varonce1392!=NULL)) {
+var1393 = varonce1392;
+} else {
+var1394 = "calloc_string";
+var1395 = standard___standard__NativeString___to_s_with_length(var1394, 13l);
+var1393 = var1395;
+varonce1392 = var1393;
 }
-if (var3){
 {
-{ /* Inline array#AbstractArrayRead#length (var_arguments) on <var_arguments:Array[RuntimeVariable]> */
-var10 = var_arguments->attrs[COLOR_standard__array__AbstractArrayRead___length].l; /* _length on <var_arguments:Array[RuntimeVariable]> */
-var8 = var10;
-RET_LABEL9:(void)0;
+var1396 = ((short int(*)(val* self, val* p0))(var_pname->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_pname, var1393); /* == on <var_pname:String>*/
 }
+if (var1396){
+if (unlikely(varonce1397==NULL)) {
+var1398 = NEW_standard__NativeArray(3l, &type_standard__NativeArray__standard__String);
+if (likely(varonce1399!=NULL)) {
+var1400 = varonce1399;
+} else {
+var1401 = "(char*)nit_alloc(";
+var1402 = standard___standard__NativeString___to_s_with_length(var1401, 17l);
+var1400 = var1402;
+varonce1399 = var1400;
 }
-var11 = 1;
-{
-{ /* Inline kernel#Int#== (var8,var11) on <var8:Int> */
-var14 = var8 == var11;
-var12 = var14;
-goto RET_LABEL13;
-RET_LABEL13:(void)0;
-}
+((struct instance_standard__NativeArray*)var1398)->values[0]=var1400;
+if (likely(varonce1403!=NULL)) {
+var1404 = varonce1403;
+} else {
+var1405 = ")";
+var1406 = standard___standard__NativeString___to_s_with_length(var1405, 1l);
+var1404 = var1406;
+varonce1403 = var1404;
 }
-if (unlikely(!var12)) {
-PRINT_ERROR("Runtime error: %s", "Assert failed");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 2261);
-show_backtrace(1);
+((struct instance_standard__NativeArray*)var1398)->values[2]=var1404;
+} else {
+var1398 = varonce1397;
+varonce1397 = NULL;
 }
 {
-var15 = standard___standard__SequenceRead___Collection__first(var_arguments);
+var1407 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var_arguments, 1l);
 }
-var_recv = var15;
 {
-{ /* Inline modelize_property#AAttrPropdef#is_lazy (self) on <self:AAttrPropdef> */
-var18 = self->attrs[COLOR_nit__modelize_property__AAttrPropdef___is_lazy].s; /* _is_lazy on <self:AAttrPropdef> */
-var16 = var18;
-RET_LABEL17:(void)0;
+var1408 = ((val*(*)(val* self))(var1407->class->vft[COLOR_standard__string__Object__to_s]))(var1407); /* to_s on <var1407:nullable Object(RuntimeVariable)>*/
 }
-}
-if (var16){
+((struct instance_standard__NativeArray*)var1398)->values[1]=var1408;
 {
-{ /* Inline modelize_property#APropdef#mpropdef (self) on <self:AAttrPropdef> */
-var21 = self->attrs[COLOR_nit__modelize_property__APropdef___mpropdef].val; /* _mpropdef on <self:AAttrPropdef> */
-var19 = var21;
-RET_LABEL20:(void)0;
+var1409 = ((val*(*)(val* self))(var1398->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var1398); /* native_to_s on <var1398:NativeArray[String]>*/
 }
+varonce1397 = var1398;
+if (unlikely(var_ret == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Cast failed");
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 2355);
+fatal_exit(1);
 }
-if (var19 == NULL) {
-PRINT_ERROR("Runtime error: %s", "Receiver is null");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 2266);
-show_backtrace(1);
-} else {
-{ /* Inline model#MAttributeDef#static_mtype (var19) on <var19:nullable MPropDef(nullable MAttributeDef)> */
-if (unlikely(var19 == NULL)) {
-PRINT_ERROR("Runtime error: %s", "Receiver is null");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 2180);
-show_backtrace(1);
-}
-var24 = var19->attrs[COLOR_nit__model__MAttributeDef___static_mtype].val; /* _static_mtype on <var19:nullable MPropDef(nullable MAttributeDef)> */
-var22 = var24;
-RET_LABEL23:(void)0;
+{
+var1410 = nit___nit__AbstractCompilerVisitor___new_expr(var_v, var1409, var_ret);
 }
+{
+nit___nit__AbstractCompilerVisitor___ret(var_v, var1410); /* Direct call abstract_compiler#AbstractCompilerVisitor#ret on <var_v:AbstractCompilerVisitor>*/
 }
-var_ret = var22;
-if (var_ret == NULL) {
-PRINT_ERROR("Runtime error: %s", "Receiver is null");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 2267);
-show_backtrace(1);
+var = 1;
+goto RET_LABEL;
 } else {
-var26 = ((val* (*)(val* self))(var_ret->class->vft[COLOR_nit__abstract_compiler__MType__ctype]))(var_ret) /* ctype on <var_ret:nullable MType>*/;
-}
-if (varonce) {
-var27 = varonce;
+if (likely(varonce1411!=NULL)) {
+var1412 = varonce1411;
 } else {
-var28 = "val*";
-var29 = 4;
-var30 = standard___standard__NativeString___to_s_with_length(var28, var29);
-var27 = var30;
-varonce = var27;
+var1413 = "calloc_array";
+var1414 = standard___standard__NativeString___to_s_with_length(var1413, 12l);
+var1412 = var1414;
+varonce1411 = var1412;
 }
 {
-var31 = ((short int (*)(val* self, val* p0))(var26->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var26, var27) /* == on <var26:String>*/;
+var1415 = ((short int(*)(val* self, val* p0))(var_pname->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_pname, var1412); /* == on <var_pname:String>*/
 }
-var_ = var31;
-if (var31){
-/* <var_ret:nullable MType> isa MNullableType */
-cltype = type_nit__MNullableType.color;
-idtype = type_nit__MNullableType.id;
-if(var_ret == NULL) {
-var32 = 0;
-} else {
-if(cltype >= var_ret->type->table_size) {
-var32 = 0;
-} else {
-var32 = var_ret->type->type_table[cltype] == idtype;
+if (var1415){
+if (unlikely(var_ret == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Cast failed");
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 2358);
+fatal_exit(1);
 }
+{
+((void(*)(val* self, val* p0, val* p1))(var_v->class->vft[COLOR_nit__abstract_compiler__AbstractCompilerVisitor__calloc_array]))(var_v, var_ret, var_arguments); /* calloc_array on <var_v:AbstractCompilerVisitor>*/
 }
-var33 = !var32;
-var25 = var33;
+var = 1;
+goto RET_LABEL;
+} else {
+if (likely(varonce1416!=NULL)) {
+var1417 = varonce1416;
 } else {
-var25 = var_;
+var1418 = "object_id";
+var1419 = standard___standard__NativeString___to_s_with_length(var1418, 9l);
+var1417 = var1419;
+varonce1416 = var1417;
 }
-var_useiset = var25;
 {
-{ /* Inline modelize_property#AAttrPropdef#mlazypropdef (self) on <self:AAttrPropdef> */
-var36 = self->attrs[COLOR_nit__modelize_property__AAttrPropdef___mlazypropdef].val; /* _mlazypropdef on <self:AAttrPropdef> */
-var34 = var36;
-RET_LABEL35:(void)0;
+var1420 = ((short int(*)(val* self, val* p0))(var_pname->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_pname, var1417); /* == on <var_pname:String>*/
 }
-}
-if (var34 == NULL) {
-PRINT_ERROR("Runtime error: %s", "Receiver is null");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 2268);
-show_backtrace(1);
+if (var1420){
+if (unlikely(varonce1421==NULL)) {
+var1422 = NEW_standard__NativeArray(2l, &type_standard__NativeArray__standard__String);
+if (likely(varonce1423!=NULL)) {
+var1424 = varonce1423;
 } else {
-{ /* Inline model#MPropDef#mproperty (var34) on <var34:nullable MAttributeDef> */
-if (unlikely(var34 == NULL)) {
-PRINT_ERROR("Runtime error: %s", "Receiver is null");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 2013);
-show_backtrace(1);
-}
-var39 = var34->attrs[COLOR_nit__model__MPropDef___mproperty].val; /* _mproperty on <var34:nullable MAttributeDef> */
-if (unlikely(var39 == NULL)) {
-PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 2013);
-show_backtrace(1);
-}
-var37 = var39;
-RET_LABEL38:(void)0;
+var1425 = "(long)";
+var1426 = standard___standard__NativeString___to_s_with_length(var1425, 6l);
+var1424 = var1426;
+varonce1423 = var1424;
 }
+((struct instance_standard__NativeArray*)var1422)->values[0]=var1424;
+} else {
+var1422 = varonce1421;
+varonce1421 = NULL;
 }
-var_guard = var37;
-if (var_useiset){
 {
-{ /* Inline modelize_property#APropdef#mpropdef (self) on <self:AAttrPropdef> */
-var42 = self->attrs[COLOR_nit__modelize_property__APropdef___mpropdef].val; /* _mpropdef on <self:AAttrPropdef> */
-var40 = var42;
-RET_LABEL41:(void)0;
-}
+var1427 = standard___standard__SequenceRead___Collection__first(var_arguments);
 }
-if (var40 == NULL) {
-PRINT_ERROR("Runtime error: %s", "Receiver is null");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 2270);
-show_backtrace(1);
-} else {
-{ /* Inline model#MPropDef#mproperty (var40) on <var40:nullable MPropDef(nullable MAttributeDef)> */
-if (unlikely(var40 == NULL)) {
-PRINT_ERROR("Runtime error: %s", "Receiver is null");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 2013);
-show_backtrace(1);
-}
-var45 = var40->attrs[COLOR_nit__model__MPropDef___mproperty].val; /* _mproperty on <var40:nullable MPropDef(nullable MAttributeDef)> */
-if (unlikely(var45 == NULL)) {
-PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 2013);
-show_backtrace(1);
+{
+var1428 = ((val*(*)(val* self))(var1427->class->vft[COLOR_standard__string__Object__to_s]))(var1427); /* to_s on <var1427:nullable Object(RuntimeVariable)>*/
 }
-var43 = var45;
-RET_LABEL44:(void)0;
+((struct instance_standard__NativeArray*)var1422)->values[1]=var1428;
+{
+var1429 = ((val*(*)(val* self))(var1422->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var1422); /* native_to_s on <var1422:NativeArray[String]>*/
 }
+varonce1421 = var1422;
+if (unlikely(var_ret == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Cast failed");
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 2361);
+fatal_exit(1);
 }
 {
-var46 = nit___nit__SeparateCompilerVisitor___nit__abstract_compiler__AbstractCompilerVisitor__isset_attribute(var_v, var43, var_recv);
+var1430 = nit___nit__AbstractCompilerVisitor___new_expr(var_v, var1429, var_ret);
 }
-var_set = var46;
-} else {
 {
-var47 = nit___nit__SeparateCompilerVisitor___nit__abstract_compiler__AbstractCompilerVisitor__read_attribute(var_v, var_guard, var_recv);
+nit___nit__AbstractCompilerVisitor___ret(var_v, var1430); /* Direct call abstract_compiler#AbstractCompilerVisitor#ret on <var_v:AbstractCompilerVisitor>*/
 }
-var_set = var47;
-}
-if (varonce48) {
-var49 = varonce48;
+var = 1;
+goto RET_LABEL;
 } else {
-var50 = "if(likely(";
-var51 = 10;
-var52 = standard___standard__NativeString___to_s_with_length(var50, var51);
-var49 = var52;
-varonce48 = var49;
-}
-if (varonce53) {
-var54 = varonce53;
+if (likely(varonce1431!=NULL)) {
+var1432 = varonce1431;
 } else {
-var55 = ")) {";
-var56 = 4;
-var57 = standard___standard__NativeString___to_s_with_length(var55, var56);
-var54 = var57;
-varonce53 = var54;
+var1433 = "is_same_type";
+var1434 = standard___standard__NativeString___to_s_with_length(var1433, 12l);
+var1432 = var1434;
+varonce1431 = var1432;
 }
-var58 = NEW_standard__Array(&type_standard__Array__standard__Object);
-{ /* var58 = array_instance Array[Object] */
-var59 = 3;
-var60 = NEW_standard__NativeArray(var59, &type_standard__NativeArray__standard__Object);
-((struct instance_standard__NativeArray*)var60)->values[0] = (val*) var49;
-((struct instance_standard__NativeArray*)var60)->values[1] = (val*) var_set;
-((struct instance_standard__NativeArray*)var60)->values[2] = (val*) var54;
 {
-((void (*)(val* self, val* p0, long p1))(var58->class->vft[COLOR_standard__array__Array__with_native]))(var58, var60, var59) /* with_native on <var58:Array[Object]>*/;
-}
+var1435 = ((short int(*)(val* self, val* p0))(var_pname->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_pname, var1432); /* == on <var_pname:String>*/
 }
+if (var1435){
 {
-var61 = ((val* (*)(val* self))(var58->class->vft[COLOR_standard__string__Object__to_s]))(var58) /* to_s on <var58:Array[Object]>*/;
+var1436 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var_arguments, 0l);
 }
 {
-nit___nit__AbstractCompilerVisitor___add(var_v, var61); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <var_v:AbstractCompilerVisitor>*/
+var1437 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var_arguments, 1l);
 }
 {
-{ /* Inline modelize_property#APropdef#mpropdef (self) on <self:AAttrPropdef> */
-var64 = self->attrs[COLOR_nit__modelize_property__APropdef___mpropdef].val; /* _mpropdef on <self:AAttrPropdef> */
-var62 = var64;
-RET_LABEL63:(void)0;
+var1438 = nit___nit__SeparateCompilerVisitor___nit__abstract_compiler__AbstractCompilerVisitor__is_same_type_test(var_v, var1436, var1437);
 }
+{
+nit___nit__AbstractCompilerVisitor___ret(var_v, var1438); /* Direct call abstract_compiler#AbstractCompilerVisitor#ret on <var_v:AbstractCompilerVisitor>*/
 }
-if (var62 == NULL) {
-PRINT_ERROR("Runtime error: %s", "Receiver is null");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 2275);
-show_backtrace(1);
+var = 1;
+goto RET_LABEL;
 } else {
-{ /* Inline model#MPropDef#mproperty (var62) on <var62:nullable MPropDef(nullable MAttributeDef)> */
-if (unlikely(var62 == NULL)) {
-PRINT_ERROR("Runtime error: %s", "Receiver is null");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 2013);
-show_backtrace(1);
-}
-var67 = var62->attrs[COLOR_nit__model__MPropDef___mproperty].val; /* _mproperty on <var62:nullable MPropDef(nullable MAttributeDef)> */
-if (unlikely(var67 == NULL)) {
-PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 2013);
-show_backtrace(1);
-}
-var65 = var67;
-RET_LABEL66:(void)0;
-}
+if (likely(varonce1439!=NULL)) {
+var1440 = varonce1439;
+} else {
+var1441 = "is_same_instance";
+var1442 = standard___standard__NativeString___to_s_with_length(var1441, 16l);
+var1440 = var1442;
+varonce1439 = var1440;
 }
 {
-var68 = nit___nit__SeparateCompilerVisitor___nit__abstract_compiler__AbstractCompilerVisitor__read_attribute(var_v, var65, var_recv);
+var1443 = ((short int(*)(val* self, val* p0))(var_pname->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_pname, var1440); /* == on <var_pname:String>*/
 }
-var_res = var68;
-if (varonce69) {
-var70 = varonce69;
-} else {
-var71 = "} else {";
-var72 = 8;
-var73 = standard___standard__NativeString___to_s_with_length(var71, var72);
-var70 = var73;
-varonce69 = var70;
+if (var1443){
+{
+var1444 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var_arguments, 0l);
 }
 {
-nit___nit__AbstractCompilerVisitor___add(var_v, var70); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <var_v:AbstractCompilerVisitor>*/
+var1445 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var_arguments, 1l);
 }
 {
-var74 = nit__abstract_compiler___AAttrPropdef___evaluate_expr(self, var_v, var_recv);
+var1446 = nit___nit__SeparateCompilerVisitor___nit__abstract_compiler__AbstractCompilerVisitor__equal_test(var_v, var1444, var1445);
 }
-var_value = var74;
 {
-nit___nit__AbstractCompilerVisitor___assign(var_v, var_res, var_value); /* Direct call abstract_compiler#AbstractCompilerVisitor#assign on <var_v:AbstractCompilerVisitor>*/
+nit___nit__AbstractCompilerVisitor___ret(var_v, var1446); /* Direct call abstract_compiler#AbstractCompilerVisitor#ret on <var_v:AbstractCompilerVisitor>*/
 }
-var75 = !var_useiset;
-if (var75){
-if (varonce76) {
-var77 = varonce76;
+var = 1;
+goto RET_LABEL;
 } else {
-var78 = "1";
-var79 = 1;
-var80 = standard___standard__NativeString___to_s_with_length(var78, var79);
-var77 = var80;
-varonce76 = var77;
+if (likely(varonce1447!=NULL)) {
+var1448 = varonce1447;
+} else {
+var1449 = "output_class_name";
+var1450 = standard___standard__NativeString___to_s_with_length(var1449, 17l);
+var1448 = var1450;
+varonce1447 = var1448;
 }
 {
-var81 = nit___nit__AbstractCompilerVisitor___bool_type(var_v);
+var1451 = ((short int(*)(val* self, val* p0))(var_pname->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_pname, var1448); /* == on <var_pname:String>*/
 }
+if (var1451){
 {
-var82 = nit___nit__AbstractCompilerVisitor___new_expr(var_v, var77, var81);
+var1452 = standard___standard__SequenceRead___Collection__first(var_arguments);
 }
-var_true_v = var82;
 {
-var83 = standard___standard__SequenceRead___Collection__first(var_arguments);
+var1453 = ((val*(*)(val* self, val* p0))(var_v->class->vft[COLOR_nit__abstract_compiler__AbstractCompilerVisitor__class_name_string]))(var_v, var1452); /* class_name_string on <var_v:AbstractCompilerVisitor>*/
 }
-{
-nit___nit__SeparateCompilerVisitor___nit__abstract_compiler__AbstractCompilerVisitor__write_attribute(var_v, var_guard, var83, var_true_v); /* Direct call separate_compiler#SeparateCompilerVisitor#write_attribute on <var_v:AbstractCompilerVisitor>*/
+var_nat = var1453;
+if (unlikely(varonce1454==NULL)) {
+var1455 = NEW_standard__NativeArray(3l, &type_standard__NativeArray__standard__String);
+if (likely(varonce1456!=NULL)) {
+var1457 = varonce1456;
+} else {
+var1458 = "printf(\"%s\\n\", ";
+var1459 = standard___standard__NativeString___to_s_with_length(var1458, 15l);
+var1457 = var1459;
+varonce1456 = var1457;
 }
+((struct instance_standard__NativeArray*)var1455)->values[0]=var1457;
+if (likely(varonce1460!=NULL)) {
+var1461 = varonce1460;
 } else {
+var1462 = ");";
+var1463 = standard___standard__NativeString___to_s_with_length(var1462, 2l);
+var1461 = var1463;
+varonce1460 = var1461;
 }
-if (varonce84) {
-var85 = varonce84;
+((struct instance_standard__NativeArray*)var1455)->values[2]=var1461;
 } else {
-var86 = "}";
-var87 = 1;
-var88 = standard___standard__NativeString___to_s_with_length(var86, var87);
-var85 = var88;
-varonce84 = var85;
+var1455 = varonce1454;
+varonce1454 = NULL;
 }
+((struct instance_standard__NativeArray*)var1455)->values[1]=var_nat;
 {
-nit___nit__AbstractCompilerVisitor___add(var_v, var85); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <var_v:AbstractCompilerVisitor>*/
+var1464 = ((val*(*)(val* self))(var1455->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var1455); /* native_to_s on <var1455:NativeArray[String]>*/
 }
-} else {
+varonce1454 = var1455;
 {
-{ /* Inline modelize_property#APropdef#mpropdef (self) on <self:AAttrPropdef> */
-var91 = self->attrs[COLOR_nit__modelize_property__APropdef___mpropdef].val; /* _mpropdef on <self:AAttrPropdef> */
-var89 = var91;
-RET_LABEL90:(void)0;
+nit___nit__AbstractCompilerVisitor___add(var_v, var1464); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <var_v:AbstractCompilerVisitor>*/
 }
-}
-if (var89 == NULL) {
-PRINT_ERROR("Runtime error: %s", "Receiver is null");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 2287);
-show_backtrace(1);
+var = 1;
+goto RET_LABEL;
 } else {
-{ /* Inline model#MPropDef#mproperty (var89) on <var89:nullable MPropDef(nullable MAttributeDef)> */
-if (unlikely(var89 == NULL)) {
-PRINT_ERROR("Runtime error: %s", "Receiver is null");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 2013);
-show_backtrace(1);
-}
-var94 = var89->attrs[COLOR_nit__model__MPropDef___mproperty].val; /* _mproperty on <var89:nullable MPropDef(nullable MAttributeDef)> */
-if (unlikely(var94 == NULL)) {
-PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 2013);
-show_backtrace(1);
-}
-var92 = var94;
-RET_LABEL93:(void)0;
-}
+if (likely(varonce1465!=NULL)) {
+var1466 = varonce1465;
+} else {
+var1467 = "native_class_name";
+var1468 = standard___standard__NativeString___to_s_with_length(var1467, 17l);
+var1466 = var1468;
+varonce1465 = var1466;
 }
 {
-var95 = standard___standard__SequenceRead___Collection__first(var_arguments);
+var1469 = ((short int(*)(val* self, val* p0))(var_pname->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_pname, var1466); /* == on <var_pname:String>*/
 }
+if (var1469){
 {
-var96 = nit___nit__SeparateCompilerVisitor___nit__abstract_compiler__AbstractCompilerVisitor__read_attribute(var_v, var92, var95);
-}
-var_res = var96;
+var1470 = standard___standard__SequenceRead___Collection__first(var_arguments);
 }
 {
-{ /* Inline abstract_compiler#AbstractCompilerVisitor#frame (var_v) on <var_v:AbstractCompilerVisitor> */
-var99 = var_v->attrs[COLOR_nit__abstract_compiler__AbstractCompilerVisitor___frame].val; /* _frame on <var_v:AbstractCompilerVisitor> */
-var97 = var99;
-RET_LABEL98:(void)0;
+var1471 = ((val*(*)(val* self, val* p0))(var_v->class->vft[COLOR_nit__abstract_compiler__AbstractCompilerVisitor__class_name_string]))(var_v, var1470); /* class_name_string on <var_v:AbstractCompilerVisitor>*/
 }
-}
-if (var97 == NULL) {
-PRINT_ERROR("Runtime error: %s", "Receiver is null");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 2289);
-show_backtrace(1);
+var_nat1472 = var1471;
+if (unlikely(varonce1473==NULL)) {
+var1474 = NEW_standard__NativeArray(2l, &type_standard__NativeArray__standard__String);
+if (likely(varonce1475!=NULL)) {
+var1476 = varonce1475;
 } else {
-{ /* Inline abstract_compiler#StaticFrame#returnvar (var97) on <var97:nullable StaticFrame> */
-if (unlikely(var97 == NULL)) {
-PRINT_ERROR("Runtime error: %s", "Receiver is null");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1734);
-show_backtrace(1);
+var1477 = "(char*)";
+var1478 = standard___standard__NativeString___to_s_with_length(var1477, 7l);
+var1476 = var1478;
+varonce1475 = var1476;
 }
-var102 = var97->attrs[COLOR_nit__abstract_compiler__StaticFrame___returnvar].val; /* _returnvar on <var97:nullable StaticFrame> */
-var100 = var102;
-RET_LABEL101:(void)0;
+((struct instance_standard__NativeArray*)var1474)->values[0]=var1476;
+} else {
+var1474 = varonce1473;
+varonce1473 = NULL;
 }
+((struct instance_standard__NativeArray*)var1474)->values[1]=var_nat1472;
+{
+var1479 = ((val*(*)(val* self))(var1474->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var1474); /* native_to_s on <var1474:NativeArray[String]>*/
 }
-if (unlikely(var100 == NULL)) {
+varonce1473 = var1474;
+if (unlikely(var_ret == NULL)) {
 PRINT_ERROR("Runtime error: %s", "Cast failed");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 2289);
-show_backtrace(1);
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 2375);
+fatal_exit(1);
 }
 {
-nit___nit__AbstractCompilerVisitor___assign(var_v, var100, var_res); /* Direct call abstract_compiler#AbstractCompilerVisitor#assign on <var_v:AbstractCompilerVisitor>*/
+var1480 = nit___nit__AbstractCompilerVisitor___new_expr(var_v, var1479, var_ret);
 }
-} else {
 {
-{ /* Inline modelize_property#AAttrPropdef#mwritepropdef (self) on <self:AAttrPropdef> */
-var105 = self->attrs[COLOR_nit__modelize_property__AAttrPropdef___mwritepropdef].val; /* _mwritepropdef on <self:AAttrPropdef> */
-var103 = var105;
-RET_LABEL104:(void)0;
+nit___nit__AbstractCompilerVisitor___ret(var_v, var1480); /* Direct call abstract_compiler#AbstractCompilerVisitor#ret on <var_v:AbstractCompilerVisitor>*/
 }
+var = 1;
+goto RET_LABEL;
+} else {
+if (likely(varonce1481!=NULL)) {
+var1482 = varonce1481;
+} else {
+var1483 = "force_garbage_collection";
+var1484 = standard___standard__NativeString___to_s_with_length(var1483, 24l);
+var1482 = var1484;
+varonce1481 = var1482;
 }
 {
-{ /* Inline kernel#Object#== (var_mpropdef,var103) on <var_mpropdef:MMethodDef> */
-var_other = var103;
-{
-{ /* Inline kernel#Object#is_same_instance (var_mpropdef,var_other) on <var_mpropdef:MMethodDef> */
-var110 = var_mpropdef == var_other;
-var108 = var110;
-goto RET_LABEL109;
-RET_LABEL109:(void)0;
-}
-}
-var106 = var108;
-goto RET_LABEL107;
-RET_LABEL107:(void)0;
+var1485 = ((short int(*)(val* self, val* p0))(var_pname->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_pname, var1482); /* == on <var_pname:String>*/
 }
+if (var1485){
+if (likely(varonce1486!=NULL)) {
+var1487 = varonce1486;
+} else {
+var1488 = "nit_gcollect();";
+var1489 = standard___standard__NativeString___to_s_with_length(var1488, 15l);
+var1487 = var1489;
+varonce1486 = var1487;
 }
-if (var106){
 {
-{ /* Inline array#AbstractArrayRead#length (var_arguments) on <var_arguments:Array[RuntimeVariable]> */
-var113 = var_arguments->attrs[COLOR_standard__array__AbstractArrayRead___length].l; /* _length on <var_arguments:Array[RuntimeVariable]> */
-var111 = var113;
-RET_LABEL112:(void)0;
+nit___nit__AbstractCompilerVisitor___add(var_v, var1487); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <var_v:AbstractCompilerVisitor>*/
 }
+var = 1;
+goto RET_LABEL;
+} else {
+if (likely(varonce1490!=NULL)) {
+var1491 = varonce1490;
+} else {
+var1492 = "native_argc";
+var1493 = standard___standard__NativeString___to_s_with_length(var1492, 11l);
+var1491 = var1493;
+varonce1490 = var1491;
 }
-var114 = 2;
 {
-{ /* Inline kernel#Int#== (var111,var114) on <var111:Int> */
-var117 = var111 == var114;
-var115 = var117;
-goto RET_LABEL116;
-RET_LABEL116:(void)0;
+var1494 = ((short int(*)(val* self, val* p0))(var_pname->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_pname, var1491); /* == on <var_pname:String>*/
 }
+if (var1494){
+if (likely(varonce1495!=NULL)) {
+var1496 = varonce1495;
+} else {
+var1497 = "glob_argc";
+var1498 = standard___standard__NativeString___to_s_with_length(var1497, 9l);
+var1496 = var1498;
+varonce1495 = var1496;
 }
-if (unlikely(!var115)) {
-PRINT_ERROR("Runtime error: %s", "Assert failed");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 2291);
-show_backtrace(1);
+if (unlikely(var_ret == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Cast failed");
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 2381);
+fatal_exit(1);
 }
 {
-{ /* Inline modelize_property#APropdef#mpropdef (self) on <self:AAttrPropdef> */
-var120 = self->attrs[COLOR_nit__modelize_property__APropdef___mpropdef].val; /* _mpropdef on <self:AAttrPropdef> */
-var118 = var120;
-RET_LABEL119:(void)0;
+var1499 = nit___nit__AbstractCompilerVisitor___new_expr(var_v, var1496, var_ret);
 }
+{
+nit___nit__AbstractCompilerVisitor___ret(var_v, var1499); /* Direct call abstract_compiler#AbstractCompilerVisitor#ret on <var_v:AbstractCompilerVisitor>*/
 }
-if (var118 == NULL) {
-PRINT_ERROR("Runtime error: %s", "Receiver is null");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 2292);
-show_backtrace(1);
+var = 1;
+goto RET_LABEL;
 } else {
-{ /* Inline model#MPropDef#mproperty (var118) on <var118:nullable MPropDef(nullable MAttributeDef)> */
-if (unlikely(var118 == NULL)) {
-PRINT_ERROR("Runtime error: %s", "Receiver is null");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 2013);
-show_backtrace(1);
+if (likely(varonce1500!=NULL)) {
+var1501 = varonce1500;
+} else {
+var1502 = "native_argv";
+var1503 = standard___standard__NativeString___to_s_with_length(var1502, 11l);
+var1501 = var1503;
+varonce1500 = var1501;
 }
-var123 = var118->attrs[COLOR_nit__model__MPropDef___mproperty].val; /* _mproperty on <var118:nullable MPropDef(nullable MAttributeDef)> */
-if (unlikely(var123 == NULL)) {
-PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 2013);
-show_backtrace(1);
+{
+var1504 = ((short int(*)(val* self, val* p0))(var_pname->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_pname, var1501); /* == on <var_pname:String>*/
 }
-var121 = var123;
-RET_LABEL122:(void)0;
+if (var1504){
+if (unlikely(varonce1505==NULL)) {
+var1506 = NEW_standard__NativeArray(3l, &type_standard__NativeArray__standard__String);
+if (likely(varonce1507!=NULL)) {
+var1508 = varonce1507;
+} else {
+var1509 = "glob_argv[";
+var1510 = standard___standard__NativeString___to_s_with_length(var1509, 10l);
+var1508 = var1510;
+varonce1507 = var1508;
 }
+((struct instance_standard__NativeArray*)var1506)->values[0]=var1508;
+if (likely(varonce1511!=NULL)) {
+var1512 = varonce1511;
+} else {
+var1513 = "]";
+var1514 = standard___standard__NativeString___to_s_with_length(var1513, 1l);
+var1512 = var1514;
+varonce1511 = var1512;
 }
-{
-var124 = standard___standard__SequenceRead___Collection__first(var_arguments);
+((struct instance_standard__NativeArray*)var1506)->values[2]=var1512;
+} else {
+var1506 = varonce1505;
+varonce1505 = NULL;
 }
-var125 = 1;
 {
-var126 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var_arguments, var125);
+var1515 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var_arguments, 1l);
 }
 {
-nit___nit__SeparateCompilerVisitor___nit__abstract_compiler__AbstractCompilerVisitor__write_attribute(var_v, var121, var124, var126); /* Direct call separate_compiler#SeparateCompilerVisitor#write_attribute on <var_v:AbstractCompilerVisitor>*/
+var1516 = ((val*(*)(val* self))(var1515->class->vft[COLOR_standard__string__Object__to_s]))(var1515); /* to_s on <var1515:nullable Object(RuntimeVariable)>*/
 }
+((struct instance_standard__NativeArray*)var1506)->values[1]=var1516;
 {
-{ /* Inline modelize_property#AAttrPropdef#is_lazy (self) on <self:AAttrPropdef> */
-var129 = self->attrs[COLOR_nit__modelize_property__AAttrPropdef___is_lazy].s; /* _is_lazy on <self:AAttrPropdef> */
-var127 = var129;
-RET_LABEL128:(void)0;
+var1517 = ((val*(*)(val* self))(var1506->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var1506); /* native_to_s on <var1506:NativeArray[String]>*/
 }
+varonce1505 = var1506;
+if (unlikely(var_ret == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Cast failed");
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 2384);
+fatal_exit(1);
 }
-if (var127){
 {
-{ /* Inline modelize_property#APropdef#mpropdef (self) on <self:AAttrPropdef> */
-var132 = self->attrs[COLOR_nit__modelize_property__APropdef___mpropdef].val; /* _mpropdef on <self:AAttrPropdef> */
-var130 = var132;
-RET_LABEL131:(void)0;
+var1518 = nit___nit__AbstractCompilerVisitor___new_expr(var_v, var1517, var_ret);
 }
+{
+nit___nit__AbstractCompilerVisitor___ret(var_v, var1518); /* Direct call abstract_compiler#AbstractCompilerVisitor#ret on <var_v:AbstractCompilerVisitor>*/
 }
-if (var130 == NULL) {
-PRINT_ERROR("Runtime error: %s", "Receiver is null");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 2294);
-show_backtrace(1);
+var = 1;
+goto RET_LABEL;
 } else {
-{ /* Inline model#MAttributeDef#static_mtype (var130) on <var130:nullable MPropDef(nullable MAttributeDef)> */
-if (unlikely(var130 == NULL)) {
-PRINT_ERROR("Runtime error: %s", "Receiver is null");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 2180);
-show_backtrace(1);
 }
-var135 = var130->attrs[COLOR_nit__model__MAttributeDef___static_mtype].val; /* _static_mtype on <var130:nullable MPropDef(nullable MAttributeDef)> */
-var133 = var135;
-RET_LABEL134:(void)0;
 }
 }
-var_ret136 = var133;
-if (var_ret136 == NULL) {
-PRINT_ERROR("Runtime error: %s", "Receiver is null");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 2295);
-show_backtrace(1);
-} else {
-var138 = ((val* (*)(val* self))(var_ret136->class->vft[COLOR_nit__abstract_compiler__MType__ctype]))(var_ret136) /* ctype on <var_ret136:nullable MType>*/;
 }
-if (varonce139) {
-var140 = varonce139;
-} else {
-var141 = "val*";
-var142 = 4;
-var143 = standard___standard__NativeString___to_s_with_length(var141, var142);
-var140 = var143;
-varonce139 = var140;
 }
-{
-var144 = ((short int (*)(val* self, val* p0))(var138->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var138, var140) /* == on <var138:String>*/;
 }
-var_145 = var144;
-if (var144){
-/* <var_ret136:nullable MType> isa MNullableType */
-cltype147 = type_nit__MNullableType.color;
-idtype148 = type_nit__MNullableType.id;
-if(var_ret136 == NULL) {
-var146 = 0;
-} else {
-if(cltype147 >= var_ret136->type->table_size) {
-var146 = 0;
-} else {
-var146 = var_ret136->type->type_table[cltype147] == idtype148;
 }
 }
-var149 = !var146;
-var137 = var149;
-} else {
-var137 = var_145;
 }
-var_useiset150 = var137;
-var151 = !var_useiset150;
-if (var151){
+}
+}
+}
+var = 0;
+goto RET_LABEL;
+RET_LABEL:;
+return var;
+}
+/* method abstract_compiler#AMethPropdef#compile_externmeth_to_c for (self: AMethPropdef, AbstractCompilerVisitor, MMethodDef, Array[RuntimeVariable]): Bool */
+short int nit__abstract_compiler___AMethPropdef___compile_externmeth_to_c(val* self, val* p0, val* p1, val* p2) {
+short int var /* : Bool */;
+val* var_v /* var v: AbstractCompilerVisitor */;
+val* var_mpropdef /* var mpropdef: MMethodDef */;
+val* var_arguments /* var arguments: Array[RuntimeVariable] */;
+static val* varonce;
+val* var1 /* : String */;
+char* var2 /* : NativeString */;
+val* var3 /* : FlatString */;
+val* var4 /* : AbstractCompiler */;
+val* var6 /* : AbstractCompiler */;
+val* var7 /* : ModelBuilder */;
+val* var9 /* : ModelBuilder */;
+val* var10 /* : nullable AAnnotation */;
+val* var_at /* var at: nullable AAnnotation */;
+short int var11 /* : Bool */;
+short int var12 /* : Bool */;
+short int var13 /* : Bool */;
+val* var_other /* var other: nullable Object */;
+short int var15 /* : Bool */;
+short int var16 /* : Bool */;
+short int var_ /* var : Bool */;
+val* var17 /* : ANodes[AExpr] */;
+val* var19 /* : ANodes[AExpr] */;
+long var20 /* : Int */;
+short int var21 /* : Bool */;
+short int var23 /* : Bool */;
+val* var24 /* : AbstractCompiler */;
+val* var26 /* : AbstractCompiler */;
+val* var27 /* : ModelBuilder */;
+val* var29 /* : ModelBuilder */;
+val* var30 /* : nullable String */;
+val* var_externname /* var externname: nullable Object */;
+short int var31 /* : Bool */;
+short int var32 /* : Bool */;
+val* var33 /* : MClassDef */;
+val* var35 /* : MClassDef */;
+val* var36 /* : MModule */;
+val* var38 /* : MModule */;
+val* var_res /* var res: nullable RuntimeVariable */;
+val* var39 /* : nullable MSignature */;
+val* var41 /* : nullable MSignature */;
+val* var42 /* : nullable MType */;
+val* var44 /* : nullable MType */;
+val* var_ret /* var ret: nullable MType */;
+short int var45 /* : Bool */;
+short int var46 /* : Bool */;
+short int var48 /* : Bool */;
+short int var49 /* : Bool */;
+val* var50 /* : nullable Object */;
+val* var51 /* : MType */;
+val* var52 /* : RuntimeVariable */;
+short int var53 /* : Bool */;
+short int var54 /* : Bool */;
+val* var_other56 /* var other: nullable Object */;
+short int var57 /* : Bool */;
+short int var59 /* : Bool */;
+val* var61 /* : NativeArray[String] */;
+static val* varonce60;
+static val* varonce62;
+val* var63 /* : String */;
+char* var64 /* : NativeString */;
+val* var65 /* : FlatString */;
+static val* varonce66;
+val* var67 /* : String */;
+char* var68 /* : NativeString */;
+val* var69 /* : FlatString */;
+static val* varonce70;
+val* var71 /* : String */;
+char* var72 /* : NativeString */;
+val* var73 /* : FlatString */;
+val* var74 /* : String */;
+val* var75 /* : String */;
+val* var77 /* : NativeArray[String] */;
+static val* varonce76;
+static val* varonce78;
+val* var79 /* : String */;
+char* var80 /* : NativeString */;
+val* var81 /* : FlatString */;
+static val* varonce82;
+val* var83 /* : String */;
+char* var84 /* : NativeString */;
+val* var85 /* : FlatString */;
+static val* varonce86;
+val* var87 /* : String */;
+char* var88 /* : NativeString */;
+val* var89 /* : FlatString */;
+val* var90 /* : String */;
+static val* varonce91;
+val* var92 /* : String */;
+char* var93 /* : NativeString */;
+val* var94 /* : FlatString */;
+val* var95 /* : String */;
+val* var96 /* : String */;
+val* var97 /* : RuntimeVariable */;
+var_v = p0;
+var_mpropdef = p1;
+var_arguments = p2;
+if (likely(varonce!=NULL)) {
+var1 = varonce;
+} else {
+var2 = "extern";
+var3 = standard___standard__NativeString___to_s_with_length(var2, 6l);
+var1 = var3;
+varonce = var1;
+}
 {
-{ /* Inline modelize_property#AAttrPropdef#mlazypropdef (self) on <self:AAttrPropdef> */
-var154 = self->attrs[COLOR_nit__modelize_property__AAttrPropdef___mlazypropdef].val; /* _mlazypropdef on <self:AAttrPropdef> */
-var152 = var154;
-RET_LABEL153:(void)0;
+{ /* Inline abstract_compiler#AbstractCompilerVisitor#compiler (var_v) on <var_v:AbstractCompilerVisitor> */
+var6 = var_v->attrs[COLOR_nit__abstract_compiler__AbstractCompilerVisitor___compiler].val; /* _compiler on <var_v:AbstractCompilerVisitor> */
+if (unlikely(var6 == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _compiler");
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1102);
+fatal_exit(1);
+}
+var4 = var6;
+RET_LABEL5:(void)0;
+}
+}
+{
+{ /* Inline abstract_compiler#AbstractCompiler#modelbuilder (var4) on <var4:AbstractCompiler> */
+var9 = var4->attrs[COLOR_nit__abstract_compiler__AbstractCompiler___modelbuilder].val; /* _modelbuilder on <var4:AbstractCompiler> */
+if (unlikely(var9 == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 522);
+fatal_exit(1);
+}
+var7 = var9;
+RET_LABEL8:(void)0;
+}
+}
+{
+var10 = nit__annotation___Prod___get_single_annotation(self, var1, var7);
+}
+var_at = var10;
+if (var_at == NULL) {
+var12 = 0; /* is null */
+} else {
+var12 = 1; /* arg is null and recv is not */
+}
+if (0) {
+{ /* Inline kernel#Object#!= (var_at,((val*)NULL)) on <var_at:nullable AAnnotation> */
+var_other = ((val*)NULL);
+{
+var15 = ((short int(*)(val* self, val* p0))(var_at->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_at, var_other); /* == on <var_at:nullable AAnnotation(AAnnotation)>*/
+}
+var16 = !var15;
+var13 = var16;
+goto RET_LABEL14;
+RET_LABEL14:(void)0;
+}
+var12 = var13;
+}
+var_ = var12;
+if (var12){
+{
+{ /* Inline parser_nodes#AAnnotation#n_args (var_at) on <var_at:nullable AAnnotation(AAnnotation)> */
+var19 = var_at->attrs[COLOR_nit__parser_nodes__AAnnotation___n_args].val; /* _n_args on <var_at:nullable AAnnotation(AAnnotation)> */
+if (unlikely(var19 == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_args");
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 2988);
+fatal_exit(1);
+}
+var17 = var19;
+RET_LABEL18:(void)0;
+}
+}
+{
+var20 = nit___nit__ANodes___standard__abstract_collection__Collection__length(var17);
+}
+{
+{ /* Inline kernel#Int#== (var20,1l) on <var20:Int> */
+var23 = var20 == 1l;
+var21 = var23;
+goto RET_LABEL22;
+RET_LABEL22:(void)0;
+}
+}
+var11 = var21;
+} else {
+var11 = var_;
+}
+if (var11){
+{
+{ /* Inline abstract_compiler#AbstractCompilerVisitor#compiler (var_v) on <var_v:AbstractCompilerVisitor> */
+var26 = var_v->attrs[COLOR_nit__abstract_compiler__AbstractCompilerVisitor___compiler].val; /* _compiler on <var_v:AbstractCompilerVisitor> */
+if (unlikely(var26 == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _compiler");
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1102);
+fatal_exit(1);
+}
+var24 = var26;
+RET_LABEL25:(void)0;
+}
+}
+{
+{ /* Inline abstract_compiler#AbstractCompiler#modelbuilder (var24) on <var24:AbstractCompiler> */
+var29 = var24->attrs[COLOR_nit__abstract_compiler__AbstractCompiler___modelbuilder].val; /* _modelbuilder on <var24:AbstractCompiler> */
+if (unlikely(var29 == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 522);
+fatal_exit(1);
+}
+var27 = var29;
+RET_LABEL28:(void)0;
+}
+}
+{
+var30 = nit__annotation___AAnnotation___arg_as_string(var_at, var27);
+}
+var_externname = var30;
+if (var_externname == NULL) {
+var31 = 1; /* is null */
+} else {
+var31 = 0; /* arg is null but recv is not */
 }
+if (0) {
+var32 = ((short int(*)(val* self, val* p0))(var_externname->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_externname, ((val*)NULL)); /* == on <var_externname:nullable Object(nullable String)>*/
+var31 = var32;
+}
+if (var31){
+var = 0;
+goto RET_LABEL;
+} else {
+}
+} else {
+var = 0;
+goto RET_LABEL;
+}
+{
+{ /* Inline model#MPropDef#mclassdef (var_mpropdef) on <var_mpropdef:MMethodDef> */
+var35 = var_mpropdef->attrs[COLOR_nit__model__MPropDef___mclassdef].val; /* _mclassdef on <var_mpropdef:MMethodDef> */
+if (unlikely(var35 == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdef");
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 2209);
+fatal_exit(1);
+}
+var33 = var35;
+RET_LABEL34:(void)0;
 }
-if (var152 == NULL) {
+}
+{
+{ /* Inline model#MClassDef#mmodule (var33) on <var33:MClassDef> */
+var38 = var33->attrs[COLOR_nit__model__MClassDef___mmodule].val; /* _mmodule on <var33:MClassDef> */
+if (unlikely(var38 == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule");
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 550);
+fatal_exit(1);
+}
+var36 = var38;
+RET_LABEL37:(void)0;
+}
+}
+{
+nit___nit__AbstractCompilerVisitor___add_extern(var_v, var36); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_extern on <var_v:AbstractCompilerVisitor>*/
+}
+var_res = ((val*)NULL);
+{
+{ /* Inline model#MMethodDef#msignature (var_mpropdef) on <var_mpropdef:MMethodDef> */
+var41 = var_mpropdef->attrs[COLOR_nit__model__MMethodDef___msignature].val; /* _msignature on <var_mpropdef:MMethodDef> */
+var39 = var41;
+RET_LABEL40:(void)0;
+}
+}
+if (var39 == NULL) {
 PRINT_ERROR("Runtime error: %s", "Receiver is null");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 2297);
-show_backtrace(1);
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 2404);
+fatal_exit(1);
 } else {
-{ /* Inline model#MPropDef#mproperty (var152) on <var152:nullable MAttributeDef> */
-if (unlikely(var152 == NULL)) {
+{ /* Inline model#MSignature#return_mtype (var39) on <var39:nullable MSignature> */
+if (unlikely(var39 == NULL)) {
 PRINT_ERROR("Runtime error: %s", "Receiver is null");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 2013);
-show_backtrace(1);
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1768);
+fatal_exit(1);
 }
-var157 = var152->attrs[COLOR_nit__model__MPropDef___mproperty].val; /* _mproperty on <var152:nullable MAttributeDef> */
-if (unlikely(var157 == NULL)) {
-PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 2013);
-show_backtrace(1);
+var44 = var39->attrs[COLOR_nit__model__MSignature___return_mtype].val; /* _return_mtype on <var39:nullable MSignature> */
+var42 = var44;
+RET_LABEL43:(void)0;
+}
+}
+var_ret = var42;
+if (var_ret == NULL) {
+var45 = 0; /* is null */
+} else {
+var45 = 1; /* arg is null and recv is not */
+}
+if (0) {
+{ /* Inline kernel#Object#!= (var_ret,((val*)NULL)) on <var_ret:nullable MType> */
+var_other = ((val*)NULL);
+{
+var48 = ((short int(*)(val* self, val* p0))(var_ret->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_ret, var_other); /* == on <var_ret:nullable MType(MType)>*/
+}
+var49 = !var48;
+var46 = var49;
+goto RET_LABEL47;
+RET_LABEL47:(void)0;
 }
-var155 = var157;
-RET_LABEL156:(void)0;
+var45 = var46;
 }
+if (var45){
+{
+var50 = standard___standard__SequenceRead___Collection__first(var_arguments);
+}
+{
+var51 = nit___nit__AbstractCompilerVisitor___resolve_for(var_v, var_ret, var50);
 }
+var_ret = var51;
 {
-var158 = standard___standard__SequenceRead___Collection__first(var_arguments);
+var52 = nit___nit__AbstractCompilerVisitor___new_var_extern(var_v, var_ret);
 }
-if (varonce159) {
-var160 = varonce159;
+var_res = var52;
 } else {
-var161 = "1";
-var162 = 1;
-var163 = standard___standard__NativeString___to_s_with_length(var161, var162);
-var160 = var163;
-varonce159 = var160;
 }
 {
-var164 = nit___nit__AbstractCompilerVisitor___bool_type(var_v);
+nit___nit__SeparateCompilerVisitor___nit__abstract_compiler__AbstractCompilerVisitor__adapt_signature(var_v, var_mpropdef, var_arguments); /* Direct call separate_compiler#SeparateCompilerVisitor#adapt_signature on <var_v:AbstractCompilerVisitor>*/
 }
 {
-var165 = nit___nit__AbstractCompilerVisitor___new_expr(var_v, var160, var164);
+nit___nit__SeparateCompilerVisitor___nit__abstract_compiler__AbstractCompilerVisitor__unbox_signature_extern(var_v, var_mpropdef, var_arguments); /* Direct call separate_compiler#SeparateCompilerVisitor#unbox_signature_extern on <var_v:AbstractCompilerVisitor>*/
+}
+if (var_res == NULL) {
+var53 = 1; /* is null */
+} else {
+var53 = 0; /* arg is null but recv is not */
 }
+if (0) {
+{ /* Inline kernel#Object#== (var_res,((val*)NULL)) on <var_res:nullable RuntimeVariable> */
+var_other56 = ((val*)NULL);
 {
-nit___nit__SeparateCompilerVisitor___nit__abstract_compiler__AbstractCompilerVisitor__write_attribute(var_v, var155, var158, var165); /* Direct call separate_compiler#SeparateCompilerVisitor#write_attribute on <var_v:AbstractCompilerVisitor>*/
+{ /* Inline kernel#Object#is_same_instance (var_res,var_other56) on <var_res:nullable RuntimeVariable(RuntimeVariable)> */
+var59 = var_res == var_other56;
+var57 = var59;
+goto RET_LABEL58;
+RET_LABEL58:(void)0;
+}
+}
+var54 = var57;
+goto RET_LABEL55;
+RET_LABEL55:(void)0;
+}
+var53 = var54;
 }
+if (var53){
+if (unlikely(varonce60==NULL)) {
+var61 = NEW_standard__NativeArray(4l, &type_standard__NativeArray__standard__String);
+if (likely(varonce62!=NULL)) {
+var63 = varonce62;
+} else {
+var64 = "(";
+var65 = standard___standard__NativeString___to_s_with_length(var64, 1l);
+var63 = var65;
+varonce62 = var63;
+}
+((struct instance_standard__NativeArray*)var61)->values[1]=var63;
+if (likely(varonce66!=NULL)) {
+var67 = varonce66;
 } else {
+var68 = ");";
+var69 = standard___standard__NativeString___to_s_with_length(var68, 2l);
+var67 = var69;
+varonce66 = var67;
 }
+((struct instance_standard__NativeArray*)var61)->values[3]=var67;
 } else {
+var61 = varonce60;
+varonce60 = NULL;
 }
+((struct instance_standard__NativeArray*)var61)->values[0]=var_externname;
+if (likely(varonce70!=NULL)) {
+var71 = varonce70;
 } else {
-PRINT_ERROR("Runtime error: %s", "Aborted");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 2301);
-show_backtrace(1);
+var72 = ", ";
+var73 = standard___standard__NativeString___to_s_with_length(var72, 2l);
+var71 = var73;
+varonce70 = var71;
+}
+{
+var74 = standard__string___Collection___join(var_arguments, var71);
+}
+((struct instance_standard__NativeArray*)var61)->values[2]=var74;
+{
+var75 = ((val*(*)(val* self))(var61->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var61); /* native_to_s on <var61:NativeArray[String]>*/
+}
+varonce60 = var61;
+{
+nit___nit__AbstractCompilerVisitor___add(var_v, var75); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <var_v:AbstractCompilerVisitor>*/
+}
+} else {
+if (unlikely(varonce76==NULL)) {
+var77 = NEW_standard__NativeArray(6l, &type_standard__NativeArray__standard__String);
+if (likely(varonce78!=NULL)) {
+var79 = varonce78;
+} else {
+var80 = " = ";
+var81 = standard___standard__NativeString___to_s_with_length(var80, 3l);
+var79 = var81;
+varonce78 = var79;
+}
+((struct instance_standard__NativeArray*)var77)->values[1]=var79;
+if (likely(varonce82!=NULL)) {
+var83 = varonce82;
+} else {
+var84 = "(";
+var85 = standard___standard__NativeString___to_s_with_length(var84, 1l);
+var83 = var85;
+varonce82 = var83;
 }
+((struct instance_standard__NativeArray*)var77)->values[3]=var83;
+if (likely(varonce86!=NULL)) {
+var87 = varonce86;
+} else {
+var88 = ");";
+var89 = standard___standard__NativeString___to_s_with_length(var88, 2l);
+var87 = var89;
+varonce86 = var87;
+}
+((struct instance_standard__NativeArray*)var77)->values[5]=var87;
+} else {
+var77 = varonce76;
+varonce76 = NULL;
+}
+{
+var90 = ((val*(*)(val* self))(var_res->class->vft[COLOR_standard__string__Object__to_s]))(var_res); /* to_s on <var_res:nullable RuntimeVariable(RuntimeVariable)>*/
+}
+((struct instance_standard__NativeArray*)var77)->values[0]=var90;
+((struct instance_standard__NativeArray*)var77)->values[2]=var_externname;
+if (likely(varonce91!=NULL)) {
+var92 = varonce91;
+} else {
+var93 = ", ";
+var94 = standard___standard__NativeString___to_s_with_length(var93, 2l);
+var92 = var94;
+varonce91 = var92;
+}
+{
+var95 = standard__string___Collection___join(var_arguments, var92);
+}
+((struct instance_standard__NativeArray*)var77)->values[4]=var95;
+{
+var96 = ((val*(*)(val* self))(var77->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var77); /* native_to_s on <var77:NativeArray[String]>*/
+}
+varonce76 = var77;
+{
+nit___nit__AbstractCompilerVisitor___add(var_v, var96); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <var_v:AbstractCompilerVisitor>*/
 }
+if (unlikely(var_ret == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Cast failed");
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 2416);
+fatal_exit(1);
+}
+{
+var97 = ((val*(*)(val* self, val* p0, val* p1))(var_v->class->vft[COLOR_nit__abstract_compiler__AbstractCompilerVisitor__box_extern]))(var_v, var_res, var_ret); /* box_extern on <var_v:AbstractCompilerVisitor>*/
+}
+var_res = var97;
+{
+nit___nit__AbstractCompilerVisitor___ret(var_v, var_res); /* Direct call abstract_compiler#AbstractCompilerVisitor#ret on <var_v:AbstractCompilerVisitor>*/
+}
+}
+var = 1;
+goto RET_LABEL;
 RET_LABEL:;
+return var;
 }
-/* method abstract_compiler#AAttrPropdef#init_expr for (self: AAttrPropdef, AbstractCompilerVisitor, RuntimeVariable) */
-void nit__abstract_compiler___AAttrPropdef___init_expr(val* self, val* p0, val* p1) {
-val* var_v /* var v: AbstractCompilerVisitor */;
-val* var_recv /* var recv: RuntimeVariable */;
+/* method abstract_compiler#AMethPropdef#compile_externinit_to_c for (self: AMethPropdef, AbstractCompilerVisitor, MMethodDef, Array[RuntimeVariable]): Bool */
+short int nit__abstract_compiler___AMethPropdef___compile_externinit_to_c(val* self, val* p0, val* p1, val* p2) {
 short int var /* : Bool */;
-short int var1 /* : Bool */;
-short int var3 /* : Bool */;
-short int var_ /* var : Bool */;
-short int var4 /* : Bool */;
-short int var6 /* : Bool */;
-short int var7 /* : Bool */;
-val* var8 /* : RuntimeVariable */;
+val* var_v /* var v: AbstractCompilerVisitor */;
+val* var_mpropdef /* var mpropdef: MMethodDef */;
+val* var_arguments /* var arguments: Array[RuntimeVariable] */;
+static val* varonce;
+val* var1 /* : String */;
+char* var2 /* : NativeString */;
+val* var3 /* : FlatString */;
+val* var4 /* : AbstractCompiler */;
+val* var6 /* : AbstractCompiler */;
+val* var7 /* : ModelBuilder */;
+val* var9 /* : ModelBuilder */;
+val* var10 /* : nullable AAnnotation */;
+val* var_at /* var at: nullable AAnnotation */;
+short int var11 /* : Bool */;
+short int var12 /* : Bool */;
+val* var_other /* var other: nullable Object */;
+short int var14 /* : Bool */;
+short int var15 /* : Bool */;
+val* var16 /* : AbstractCompiler */;
+val* var18 /* : AbstractCompiler */;
+val* var19 /* : ModelBuilder */;
+val* var21 /* : ModelBuilder */;
+val* var22 /* : nullable String */;
+val* var_externname /* var externname: nullable Object */;
+short int var23 /* : Bool */;
+short int var24 /* : Bool */;
+val* var25 /* : MClassDef */;
+val* var27 /* : MClassDef */;
+val* var28 /* : MModule */;
+val* var30 /* : MModule */;
+val* var31 /* : nullable Object */;
+val* var32 /* : MType */;
+val* var34 /* : MType */;
+val* var_ret /* var ret: MType */;
+val* var35 /* : RuntimeVariable */;
+val* var_res /* var res: RuntimeVariable */;
+val* var36 /* : nullable Object */;
+val* var38 /* : NativeArray[String] */;
+static val* varonce37;
+static val* varonce39;
+val* var40 /* : String */;
+char* var41 /* : NativeString */;
+val* var42 /* : FlatString */;
+static val* varonce43;
+val* var44 /* : String */;
+char* var45 /* : NativeString */;
+val* var46 /* : FlatString */;
+static val* varonce47;
+val* var48 /* : String */;
+char* var49 /* : NativeString */;
+val* var50 /* : FlatString */;
+val* var51 /* : String */;
+static val* varonce52;
+val* var53 /* : String */;
+char* var54 /* : NativeString */;
+val* var55 /* : FlatString */;
+val* var56 /* : String */;
+val* var57 /* : String */;
+val* var58 /* : RuntimeVariable */;
 var_v = p0;
-var_recv = p1;
-{
-{ /* Inline modelize_property#AAttrPropdef#has_value (self) on <self:AAttrPropdef> */
-var3 = self->attrs[COLOR_nit__modelize_property__AAttrPropdef___has_value].s; /* _has_value on <self:AAttrPropdef> */
+var_mpropdef = p1;
+var_arguments = p2;
+if (likely(varonce!=NULL)) {
+var1 = varonce;
+} else {
+var2 = "extern";
+var3 = standard___standard__NativeString___to_s_with_length(var2, 6l);
 var1 = var3;
-RET_LABEL2:(void)0;
-}
+varonce = var1;
 }
-var_ = var1;
-if (var1){
 {
-{ /* Inline modelize_property#AAttrPropdef#is_lazy (self) on <self:AAttrPropdef> */
-var6 = self->attrs[COLOR_nit__modelize_property__AAttrPropdef___is_lazy].s; /* _is_lazy on <self:AAttrPropdef> */
+{ /* Inline abstract_compiler#AbstractCompilerVisitor#compiler (var_v) on <var_v:AbstractCompilerVisitor> */
+var6 = var_v->attrs[COLOR_nit__abstract_compiler__AbstractCompilerVisitor___compiler].val; /* _compiler on <var_v:AbstractCompilerVisitor> */
+if (unlikely(var6 == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _compiler");
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1102);
+fatal_exit(1);
+}
 var4 = var6;
 RET_LABEL5:(void)0;
 }
 }
-var7 = !var4;
-var = var7;
+{
+{ /* Inline abstract_compiler#AbstractCompiler#modelbuilder (var4) on <var4:AbstractCompiler> */
+var9 = var4->attrs[COLOR_nit__abstract_compiler__AbstractCompiler___modelbuilder].val; /* _modelbuilder on <var4:AbstractCompiler> */
+if (unlikely(var9 == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 522);
+fatal_exit(1);
+}
+var7 = var9;
+RET_LABEL8:(void)0;
+}
+}
+{
+var10 = nit__annotation___Prod___get_single_annotation(self, var1, var7);
+}
+var_at = var10;
+if (var_at == NULL) {
+var11 = 0; /* is null */
 } else {
-var = var_;
+var11 = 1; /* arg is null and recv is not */
 }
-if (var){
+if (0) {
+{ /* Inline kernel#Object#!= (var_at,((val*)NULL)) on <var_at:nullable AAnnotation> */
+var_other = ((val*)NULL);
 {
-var8 = nit__abstract_compiler___AAttrPropdef___evaluate_expr(self, var_v, var_recv);
+var14 = ((short int(*)(val* self, val* p0))(var_at->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_at, var_other); /* == on <var_at:nullable AAnnotation(AAnnotation)>*/
+}
+var15 = !var14;
+var12 = var15;
+goto RET_LABEL13;
+RET_LABEL13:(void)0;
+}
+var11 = var12;
 }
+if (var11){
+{
+{ /* Inline abstract_compiler#AbstractCompilerVisitor#compiler (var_v) on <var_v:AbstractCompilerVisitor> */
+var18 = var_v->attrs[COLOR_nit__abstract_compiler__AbstractCompilerVisitor___compiler].val; /* _compiler on <var_v:AbstractCompilerVisitor> */
+if (unlikely(var18 == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _compiler");
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1102);
+fatal_exit(1);
+}
+var16 = var18;
+RET_LABEL17:(void)0;
+}
+}
+{
+{ /* Inline abstract_compiler#AbstractCompiler#modelbuilder (var16) on <var16:AbstractCompiler> */
+var21 = var16->attrs[COLOR_nit__abstract_compiler__AbstractCompiler___modelbuilder].val; /* _modelbuilder on <var16:AbstractCompiler> */
+if (unlikely(var21 == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 522);
+fatal_exit(1);
+}
+var19 = var21;
+RET_LABEL20:(void)0;
+}
+}
+{
+var22 = nit__annotation___AAnnotation___arg_as_string(var_at, var19);
+}
+var_externname = var22;
+if (var_externname == NULL) {
+var23 = 1; /* is null */
+} else {
+var23 = 0; /* arg is null but recv is not */
+}
+if (0) {
+var24 = ((short int(*)(val* self, val* p0))(var_externname->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_externname, ((val*)NULL)); /* == on <var_externname:nullable Object(nullable String)>*/
+var23 = var24;
+}
+if (var23){
+var = 0;
+goto RET_LABEL;
 } else {
 }
+} else {
+var = 0;
+goto RET_LABEL;
+}
+{
+{ /* Inline model#MPropDef#mclassdef (var_mpropdef) on <var_mpropdef:MMethodDef> */
+var27 = var_mpropdef->attrs[COLOR_nit__model__MPropDef___mclassdef].val; /* _mclassdef on <var_mpropdef:MMethodDef> */
+if (unlikely(var27 == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdef");
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 2209);
+fatal_exit(1);
+}
+var25 = var27;
+RET_LABEL26:(void)0;
+}
+}
+{
+{ /* Inline model#MClassDef#mmodule (var25) on <var25:MClassDef> */
+var30 = var25->attrs[COLOR_nit__model__MClassDef___mmodule].val; /* _mmodule on <var25:MClassDef> */
+if (unlikely(var30 == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule");
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 550);
+fatal_exit(1);
+}
+var28 = var30;
+RET_LABEL29:(void)0;
+}
+}
+{
+nit___nit__AbstractCompilerVisitor___add_extern(var_v, var28); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_extern on <var_v:AbstractCompilerVisitor>*/
+}
+{
+nit___nit__SeparateCompilerVisitor___nit__abstract_compiler__AbstractCompilerVisitor__adapt_signature(var_v, var_mpropdef, var_arguments); /* Direct call separate_compiler#SeparateCompilerVisitor#adapt_signature on <var_v:AbstractCompilerVisitor>*/
+}
+{
+nit___nit__SeparateCompilerVisitor___nit__abstract_compiler__AbstractCompilerVisitor__unbox_signature_extern(var_v, var_mpropdef, var_arguments); /* Direct call separate_compiler#SeparateCompilerVisitor#unbox_signature_extern on <var_v:AbstractCompilerVisitor>*/
+}
+{
+var31 = standard___standard__SequenceRead___Collection__first(var_arguments);
+}
+{
+{ /* Inline abstract_compiler#RuntimeVariable#mtype (var31) on <var31:nullable Object(RuntimeVariable)> */
+var34 = var31->attrs[COLOR_nit__abstract_compiler__RuntimeVariable___mtype].val; /* _mtype on <var31:nullable Object(RuntimeVariable)> */
+if (unlikely(var34 == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1784);
+fatal_exit(1);
+}
+var32 = var34;
+RET_LABEL33:(void)0;
+}
+}
+var_ret = var32;
+{
+var35 = nit___nit__AbstractCompilerVisitor___new_var_extern(var_v, var_ret);
+}
+var_res = var35;
+{
+var36 = standard___standard__AbstractArray___standard__abstract_collection__Sequence__shift(var_arguments);
+}
+if (unlikely(varonce37==NULL)) {
+var38 = NEW_standard__NativeArray(6l, &type_standard__NativeArray__standard__String);
+if (likely(varonce39!=NULL)) {
+var40 = varonce39;
+} else {
+var41 = " = ";
+var42 = standard___standard__NativeString___to_s_with_length(var41, 3l);
+var40 = var42;
+varonce39 = var40;
+}
+((struct instance_standard__NativeArray*)var38)->values[1]=var40;
+if (likely(varonce43!=NULL)) {
+var44 = varonce43;
+} else {
+var45 = "(";
+var46 = standard___standard__NativeString___to_s_with_length(var45, 1l);
+var44 = var46;
+varonce43 = var44;
+}
+((struct instance_standard__NativeArray*)var38)->values[3]=var44;
+if (likely(varonce47!=NULL)) {
+var48 = varonce47;
+} else {
+var49 = ");";
+var50 = standard___standard__NativeString___to_s_with_length(var49, 2l);
+var48 = var50;
+varonce47 = var48;
+}
+((struct instance_standard__NativeArray*)var38)->values[5]=var48;
+} else {
+var38 = varonce37;
+varonce37 = NULL;
+}
+{
+var51 = ((val*(*)(val* self))(var_res->class->vft[COLOR_standard__string__Object__to_s]))(var_res); /* to_s on <var_res:RuntimeVariable>*/
+}
+((struct instance_standard__NativeArray*)var38)->values[0]=var51;
+((struct instance_standard__NativeArray*)var38)->values[2]=var_externname;
+if (likely(varonce52!=NULL)) {
+var53 = varonce52;
+} else {
+var54 = ", ";
+var55 = standard___standard__NativeString___to_s_with_length(var54, 2l);
+var53 = var55;
+varonce52 = var53;
+}
+{
+var56 = standard__string___Collection___join(var_arguments, var53);
+}
+((struct instance_standard__NativeArray*)var38)->values[4]=var56;
+{
+var57 = ((val*(*)(val* self))(var38->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var38); /* native_to_s on <var38:NativeArray[String]>*/
+}
+varonce37 = var38;
+{
+nit___nit__AbstractCompilerVisitor___add(var_v, var57); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <var_v:AbstractCompilerVisitor>*/
+}
+{
+var58 = ((val*(*)(val* self, val* p0, val* p1))(var_v->class->vft[COLOR_nit__abstract_compiler__AbstractCompilerVisitor__box_extern]))(var_v, var_res, var_ret); /* box_extern on <var_v:AbstractCompilerVisitor>*/
+}
+var_res = var58;
+{
+nit___nit__AbstractCompilerVisitor___ret(var_v, var_res); /* Direct call abstract_compiler#AbstractCompilerVisitor#ret on <var_v:AbstractCompilerVisitor>*/
+}
+var = 1;
+goto RET_LABEL;
 RET_LABEL:;
+return var;
 }
-/* method abstract_compiler#AAttrPropdef#evaluate_expr for (self: AAttrPropdef, AbstractCompilerVisitor, RuntimeVariable): RuntimeVariable */
-val* nit__abstract_compiler___AAttrPropdef___evaluate_expr(val* self, val* p0, val* p1) {
-val* var /* : RuntimeVariable */;
+/* method abstract_compiler#AAttrPropdef#can_inline for (self: AAttrPropdef): Bool */
+short int nit__abstract_compiler___AAttrPropdef___APropdef__can_inline(val* self) {
+short int var /* : Bool */;
+short int var1 /* : Bool */;
+short int var3 /* : Bool */;
+short int var4 /* : Bool */;
+{
+{ /* Inline modelize_property#AAttrPropdef#is_lazy (self) on <self:AAttrPropdef> */
+var3 = self->attrs[COLOR_nit__modelize_property__AAttrPropdef___is_lazy].s; /* _is_lazy on <self:AAttrPropdef> */
+var1 = var3;
+RET_LABEL2:(void)0;
+}
+}
+var4 = !var1;
+var = var4;
+goto RET_LABEL;
+RET_LABEL:;
+return var;
+}
+/* method abstract_compiler#AAttrPropdef#compile_to_c for (self: AAttrPropdef, AbstractCompilerVisitor, MMethodDef, Array[RuntimeVariable]) */
+void nit__abstract_compiler___AAttrPropdef___APropdef__compile_to_c(val* self, val* p0, val* p1, val* p2) {
 val* var_v /* var v: AbstractCompilerVisitor */;
+val* var_mpropdef /* var mpropdef: MMethodDef */;
+val* var_arguments /* var arguments: Array[RuntimeVariable] */;
+val* var /* : nullable MMethodDef */;
+val* var2 /* : nullable MMethodDef */;
+short int var3 /* : Bool */;
+val* var_other /* var other: nullable Object */;
+short int var5 /* : Bool */;
+short int var7 /* : Bool */;
+long var8 /* : Int */;
+long var10 /* : Int */;
+short int var11 /* : Bool */;
+short int var13 /* : Bool */;
+val* var14 /* : nullable Object */;
 val* var_recv /* var recv: RuntimeVariable */;
-val* var1 /* : nullable ANode */;
-val* var3 /* : nullable ANode */;
-val* var_oldnode /* var oldnode: nullable ANode */;
-val* var5 /* : nullable StaticFrame */;
-val* var7 /* : nullable StaticFrame */;
-val* var_old_frame /* var old_frame: nullable StaticFrame */;
-val* var8 /* : StaticFrame */;
-val* var9 /* : nullable MPropDef */;
-val* var11 /* : nullable MPropDef */;
-val* var12 /* : MType */;
-val* var14 /* : MType */;
-val* var15 /* : MType */;
-short int var16 /* : Bool */;
+short int var15 /* : Bool */;
+short int var17 /* : Bool */;
+val* var18 /* : nullable MType */;
+val* var20 /* : nullable MType */;
+val* var_ret /* var ret: nullable MType */;
+short int var21 /* : Bool */;
+short int var22 /* : Bool */;
+short int var23 /* : Bool */;
+short int var_ /* var : Bool */;
+short int var24 /* : Bool */;
 int cltype;
 int idtype;
-const char* var_class_name;
-val* var17 /* : Array[RuntimeVariable] */;
-long var18 /* : Int */;
-val* var_ /* var : Array[RuntimeVariable] */;
-val* var_frame /* var frame: StaticFrame */;
-val* var20 /* : nullable MPropDef */;
-val* var22 /* : nullable MPropDef */;
-val* var23 /* : nullable MType */;
-val* var25 /* : nullable MType */;
-val* var_mtype /* var mtype: nullable MType */;
-val* var26 /* : null */;
-short int var27 /* : Bool */;
-short int var28 /* : Bool */;
-val* var_other /* var other: nullable Object */;
-short int var30 /* : Bool */;
-short int var31 /* : Bool */;
-val* var32 /* : nullable AExpr */;
-val* var34 /* : nullable AExpr */;
-val* var_nexpr /* var nexpr: nullable AExpr */;
-val* var35 /* : nullable AExpr */;
-val* var37 /* : nullable AExpr */;
-val* var_nblock /* var nblock: nullable AExpr */;
-val* var38 /* : null */;
-short int var39 /* : Bool */;
-short int var40 /* : Bool */;
-short int var42 /* : Bool */;
-short int var43 /* : Bool */;
-val* var44 /* : RuntimeVariable */;
-val* var_value /* var value: nullable Object */;
-val* var45 /* : null */;
-short int var46 /* : Bool */;
-short int var47 /* : Bool */;
-short int var49 /* : Bool */;
-short int var50 /* : Bool */;
-val* var51 /* : RuntimeVariable */;
+short int var25 /* : Bool */;
+short int var_useiset /* var useiset: Bool */;
+val* var26 /* : nullable MAttributeDef */;
+val* var28 /* : nullable MAttributeDef */;
+val* var29 /* : MProperty */;
+val* var31 /* : MProperty */;
+val* var_guard /* var guard: MAttribute */;
+val* var32 /* : nullable MPropDef */;
+val* var34 /* : nullable MPropDef */;
+val* var35 /* : MProperty */;
+val* var37 /* : MProperty */;
+val* var38 /* : RuntimeVariable */;
+val* var_set /* var set: nullable Object */;
+val* var39 /* : RuntimeVariable */;
+val* var40 /* : NativeArray[String] */;
 static val* varonce;
-val* var53 /* : String */;
-char* var54 /* : NativeString */;
-long var55 /* : Int */;
-val* var56 /* : FlatString */;
-val* var57 /* : String */;
-static val* varonce59;
-val* var60 /* : String */;
-char* var61 /* : NativeString */;
-long var62 /* : Int */;
-val* var63 /* : FlatString */;
-val* var64 /* : nullable String */;
-val* var66 /* : nullable String */;
-static val* varonce67;
-val* var68 /* : String */;
-char* var69 /* : NativeString */;
-long var70 /* : Int */;
-val* var71 /* : FlatString */;
-val* var72 /* : Array[Object] */;
-long var73 /* : Int */;
-val* var74 /* : NativeArray[Object] */;
-val* var75 /* : String */;
-static val* varonce76;
-val* var77 /* : String */;
-char* var78 /* : NativeString */;
-long var79 /* : Int */;
-val* var80 /* : FlatString */;
-val* var81 /* : nullable MPropDef */;
-val* var83 /* : nullable MPropDef */;
-val* var84 /* : MProperty */;
-val* var86 /* : MProperty */;
+static val* varonce41;
+val* var42 /* : String */;
+char* var43 /* : NativeString */;
+val* var44 /* : FlatString */;
+static val* varonce45;
+val* var46 /* : String */;
+char* var47 /* : NativeString */;
+val* var48 /* : FlatString */;
+val* var49 /* : String */;
+val* var50 /* : String */;
+val* var51 /* : nullable MPropDef */;
+val* var53 /* : nullable MPropDef */;
+val* var54 /* : MProperty */;
+val* var56 /* : MProperty */;
+val* var57 /* : RuntimeVariable */;
+val* var_res /* var res: nullable Object */;
+static val* varonce58;
+val* var59 /* : String */;
+char* var60 /* : NativeString */;
+val* var61 /* : FlatString */;
+val* var62 /* : RuntimeVariable */;
+val* var_value /* var value: RuntimeVariable */;
+short int var63 /* : Bool */;
+val* var64 /* : RuntimeVariable */;
+val* var_true_v /* var true_v: RuntimeVariable */;
+val* var65 /* : nullable Object */;
+static val* varonce66;
+val* var67 /* : String */;
+char* var68 /* : NativeString */;
+val* var69 /* : FlatString */;
+val* var70 /* : nullable MPropDef */;
+val* var72 /* : nullable MPropDef */;
+val* var73 /* : MProperty */;
+val* var75 /* : MProperty */;
+val* var76 /* : nullable Object */;
+val* var77 /* : RuntimeVariable */;
+val* var78 /* : nullable StaticFrame */;
+val* var80 /* : nullable StaticFrame */;
+val* var81 /* : nullable RuntimeVariable */;
+val* var83 /* : nullable RuntimeVariable */;
+val* var84 /* : nullable MMethodDef */;
+val* var86 /* : nullable MMethodDef */;
+short int var87 /* : Bool */;
+short int var89 /* : Bool */;
+short int var91 /* : Bool */;
+long var92 /* : Int */;
+long var94 /* : Int */;
+short int var95 /* : Bool */;
+short int var97 /* : Bool */;
+val* var98 /* : nullable MPropDef */;
+val* var100 /* : nullable MPropDef */;
+val* var101 /* : MProperty */;
+val* var103 /* : MProperty */;
+val* var104 /* : nullable Object */;
+val* var105 /* : nullable Object */;
+short int var106 /* : Bool */;
+short int var108 /* : Bool */;
+val* var109 /* : nullable MType */;
+val* var111 /* : nullable MType */;
+val* var_ret112 /* var ret: nullable MType */;
+short int var113 /* : Bool */;
+short int var114 /* : Bool */;
+short int var115 /* : Bool */;
+short int var_116 /* var : Bool */;
+short int var117 /* : Bool */;
+int cltype118;
+int idtype119;
+short int var120 /* : Bool */;
+short int var_useiset121 /* var useiset: Bool */;
+short int var122 /* : Bool */;
+val* var123 /* : nullable MAttributeDef */;
+val* var125 /* : nullable MAttributeDef */;
+val* var126 /* : MProperty */;
+val* var128 /* : MProperty */;
+val* var129 /* : nullable Object */;
+val* var130 /* : RuntimeVariable */;
 var_v = p0;
-var_recv = p1;
+var_mpropdef = p1;
+var_arguments = p2;
 {
-{ /* Inline abstract_compiler#AbstractCompilerVisitor#current_node (var_v) on <var_v:AbstractCompilerVisitor> */
-var3 = var_v->attrs[COLOR_nit__abstract_compiler__AbstractCompilerVisitor___current_node].val; /* _current_node on <var_v:AbstractCompilerVisitor> */
-var1 = var3;
-RET_LABEL2:(void)0;
+{ /* Inline modelize_property#AAttrPropdef#mreadpropdef (self) on <self:AAttrPropdef> */
+var2 = self->attrs[COLOR_nit__modelize_property__AAttrPropdef___mreadpropdef].val; /* _mreadpropdef on <self:AAttrPropdef> */
+var = var2;
+RET_LABEL1:(void)0;
 }
 }
-var_oldnode = var1;
 {
-{ /* Inline abstract_compiler#AbstractCompilerVisitor#current_node= (var_v,self) on <var_v:AbstractCompilerVisitor> */
-var_v->attrs[COLOR_nit__abstract_compiler__AbstractCompilerVisitor___current_node].val = self; /* _current_node on <var_v:AbstractCompilerVisitor> */
-RET_LABEL4:(void)0;
-}
-}
+{ /* Inline kernel#Object#== (var_mpropdef,var) on <var_mpropdef:MMethodDef> */
+var_other = var;
 {
-{ /* Inline abstract_compiler#AbstractCompilerVisitor#frame (var_v) on <var_v:AbstractCompilerVisitor> */
-var7 = var_v->attrs[COLOR_nit__abstract_compiler__AbstractCompilerVisitor___frame].val; /* _frame on <var_v:AbstractCompilerVisitor> */
+{ /* Inline kernel#Object#is_same_instance (var_mpropdef,var_other) on <var_mpropdef:MMethodDef> */
+var7 = var_mpropdef == var_other;
 var5 = var7;
+goto RET_LABEL6;
 RET_LABEL6:(void)0;
 }
 }
-var_old_frame = var5;
-var8 = NEW_nit__StaticFrame(&type_nit__StaticFrame);
-{
-{ /* Inline modelize_property#APropdef#mpropdef (self) on <self:AAttrPropdef> */
-var11 = self->attrs[COLOR_nit__modelize_property__APropdef___mpropdef].val; /* _mpropdef on <self:AAttrPropdef> */
-var9 = var11;
-RET_LABEL10:(void)0;
-}
+var3 = var5;
+goto RET_LABEL4;
+RET_LABEL4:(void)0;
 }
-if (unlikely(var9 == NULL)) {
-PRINT_ERROR("Runtime error: %s", "Cast failed");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 2316);
-show_backtrace(1);
 }
+if (var3){
 {
-{ /* Inline abstract_compiler#RuntimeVariable#mcasttype (var_recv) on <var_recv:RuntimeVariable> */
-var14 = var_recv->attrs[COLOR_nit__abstract_compiler__RuntimeVariable___mcasttype].val; /* _mcasttype on <var_recv:RuntimeVariable> */
-if (unlikely(var14 == NULL)) {
-PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mcasttype");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1683);
-show_backtrace(1);
-}
-var12 = var14;
-RET_LABEL13:(void)0;
+{ /* Inline array#AbstractArrayRead#length (var_arguments) on <var_arguments:Array[RuntimeVariable]> */
+var10 = var_arguments->attrs[COLOR_standard__array__AbstractArrayRead___length].l; /* _length on <var_arguments:Array[RuntimeVariable]> */
+var8 = var10;
+RET_LABEL9:(void)0;
 }
 }
 {
-var15 = ((val* (*)(val* self))(var12->class->vft[COLOR_nit__model__MType__as_notnullable]))(var12) /* as_notnullable on <var12:MType>*/;
+{ /* Inline kernel#Int#== (var8,1l) on <var8:Int> */
+var13 = var8 == 1l;
+var11 = var13;
+goto RET_LABEL12;
+RET_LABEL12:(void)0;
 }
-/* <var15:MType> isa MClassType */
-cltype = type_nit__MClassType.color;
-idtype = type_nit__MClassType.id;
-if(cltype >= var15->type->table_size) {
-var16 = 0;
-} else {
-var16 = var15->type->type_table[cltype] == idtype;
 }
-if (unlikely(!var16)) {
-var_class_name = var15 == NULL ? "null" : var15->type->name;
-PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "MClassType", var_class_name);
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 2316);
-show_backtrace(1);
+if (unlikely(!var11)) {
+PRINT_ERROR("Runtime error: %s", "Assert failed");
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 2455);
+fatal_exit(1);
 }
-var17 = NEW_standard__Array(&type_standard__Array__nit__RuntimeVariable);
-var18 = 1;
 {
-standard___standard__Array___with_capacity(var17, var18); /* Direct call array#Array#with_capacity on <var17:Array[RuntimeVariable]>*/
+var14 = standard___standard__SequenceRead___Collection__first(var_arguments);
 }
-var_ = var17;
+var_recv = var14;
 {
-standard___standard__AbstractArray___standard__abstract_collection__Sequence__push(var_, var_recv); /* Direct call array#AbstractArray#push on <var_:Array[RuntimeVariable]>*/
+{ /* Inline modelize_property#AAttrPropdef#is_lazy (self) on <self:AAttrPropdef> */
+var17 = self->attrs[COLOR_nit__modelize_property__AAttrPropdef___is_lazy].s; /* _is_lazy on <self:AAttrPropdef> */
+var15 = var17;
+RET_LABEL16:(void)0;
 }
-{
-((void (*)(val* self, val* p0))(var8->class->vft[COLOR_nit__abstract_compiler__StaticFrame__visitor_61d]))(var8, var_v) /* visitor= on <var8:StaticFrame>*/;
 }
+if (var15){
 {
-((void (*)(val* self, val* p0))(var8->class->vft[COLOR_nit__abstract_compiler__StaticFrame__mpropdef_61d]))(var8, var9) /* mpropdef= on <var8:StaticFrame>*/;
+{ /* Inline modelize_property#AAttrPropdef#mtype (self) on <self:AAttrPropdef> */
+var20 = self->attrs[COLOR_nit__modelize_property__AAttrPropdef___mtype].val; /* _mtype on <self:AAttrPropdef> */
+var18 = var20;
+RET_LABEL19:(void)0;
 }
-{
-((void (*)(val* self, val* p0))(var8->class->vft[COLOR_nit__abstract_compiler__StaticFrame__receiver_61d]))(var8, var15) /* receiver= on <var8:StaticFrame>*/;
 }
-{
-((void (*)(val* self, val* p0))(var8->class->vft[COLOR_nit__abstract_compiler__StaticFrame__arguments_61d]))(var8, var_) /* arguments= on <var8:StaticFrame>*/;
+var_ret = var18;
+if (var_ret == NULL) {
+PRINT_ERROR("Runtime error: %s", "Receiver is null");
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 2461);
+fatal_exit(1);
+} else {
+var22 = ((short int(*)(val* self))(var_ret->class->vft[COLOR_nit__abstract_compiler__MType__is_c_primitive]))(var_ret); /* is_c_primitive on <var_ret:nullable MType>*/
 }
-{
-((void (*)(val* self))(var8->class->vft[COLOR_standard__kernel__Object__init]))(var8) /* init on <var8:StaticFrame>*/;
+var23 = !var22;
+var_ = var23;
+if (var23){
+/* <var_ret:nullable MType> isa MNullableType */
+cltype = type_nit__MNullableType.color;
+idtype = type_nit__MNullableType.id;
+if(var_ret == NULL) {
+var24 = 0;
+} else {
+if(cltype >= var_ret->type->table_size) {
+var24 = 0;
+} else {
+var24 = var_ret->type->type_table[cltype] == idtype;
 }
-var_frame = var8;
-{
-{ /* Inline abstract_compiler#AbstractCompilerVisitor#frame= (var_v,var_frame) on <var_v:AbstractCompilerVisitor> */
-var_v->attrs[COLOR_nit__abstract_compiler__AbstractCompilerVisitor___frame].val = var_frame; /* _frame on <var_v:AbstractCompilerVisitor> */
-RET_LABEL19:(void)0;
 }
+var25 = !var24;
+var21 = var25;
+} else {
+var21 = var_;
 }
+var_useiset = var21;
 {
-{ /* Inline modelize_property#APropdef#mpropdef (self) on <self:AAttrPropdef> */
-var22 = self->attrs[COLOR_nit__modelize_property__APropdef___mpropdef].val; /* _mpropdef on <self:AAttrPropdef> */
-var20 = var22;
-RET_LABEL21:(void)0;
+{ /* Inline modelize_property#AAttrPropdef#mlazypropdef (self) on <self:AAttrPropdef> */
+var28 = self->attrs[COLOR_nit__modelize_property__AAttrPropdef___mlazypropdef].val; /* _mlazypropdef on <self:AAttrPropdef> */
+var26 = var28;
+RET_LABEL27:(void)0;
 }
 }
-if (var20 == NULL) {
+if (var26 == NULL) {
 PRINT_ERROR("Runtime error: %s", "Receiver is null");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 2320);
-show_backtrace(1);
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 2462);
+fatal_exit(1);
 } else {
-{ /* Inline model#MAttributeDef#static_mtype (var20) on <var20:nullable MPropDef(nullable MAttributeDef)> */
-if (unlikely(var20 == NULL)) {
+{ /* Inline model#MPropDef#mproperty (var26) on <var26:nullable MAttributeDef> */
+if (unlikely(var26 == NULL)) {
 PRINT_ERROR("Runtime error: %s", "Receiver is null");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 2180);
-show_backtrace(1);
-}
-var25 = var20->attrs[COLOR_nit__model__MAttributeDef___static_mtype].val; /* _static_mtype on <var20:nullable MPropDef(nullable MAttributeDef)> */
-var23 = var25;
-RET_LABEL24:(void)0;
-}
-}
-var_mtype = var23;
-var26 = NULL;
-if (var_mtype == NULL) {
-var27 = 0; /* is null */
-} else {
-var27 = 1; /* arg is null and recv is not */
-}
-if (0) {
-{ /* Inline kernel#Object#!= (var_mtype,var26) on <var_mtype:nullable MType> */
-var_other = var26;
-{
-var30 = ((short int (*)(val* self, val* p0))(var_mtype->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_mtype, var_other) /* == on <var_mtype:nullable MType(MType)>*/;
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 2212);
+fatal_exit(1);
 }
-var31 = !var30;
-var28 = var31;
-goto RET_LABEL29;
-RET_LABEL29:(void)0;
+var31 = var26->attrs[COLOR_nit__model__MPropDef___mproperty].val; /* _mproperty on <var26:nullable MAttributeDef> */
+if (unlikely(var31 == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty");
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 2212);
+fatal_exit(1);
 }
-var27 = var28;
+var29 = var31;
+RET_LABEL30:(void)0;
 }
-if (unlikely(!var27)) {
-PRINT_ERROR("Runtime error: %s", "Assert failed");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 2321);
-show_backtrace(1);
 }
+var_guard = var29;
+if (var_useiset){
 {
-{ /* Inline parser_nodes#AAttrPropdef#n_expr (self) on <self:AAttrPropdef> */
-var34 = self->attrs[COLOR_nit__parser_nodes__AAttrPropdef___n_expr].val; /* _n_expr on <self:AAttrPropdef> */
+{ /* Inline modelize_property#APropdef#mpropdef (self) on <self:AAttrPropdef> */
+var34 = self->attrs[COLOR_nit__modelize_property__APropdef___mpropdef].val; /* _mpropdef on <self:AAttrPropdef> */
 var32 = var34;
 RET_LABEL33:(void)0;
 }
 }
-var_nexpr = var32;
-{
-{ /* Inline parser_nodes#AAttrPropdef#n_block (self) on <self:AAttrPropdef> */
-var37 = self->attrs[COLOR_nit__parser_nodes__AAttrPropdef___n_block].val; /* _n_block on <self:AAttrPropdef> */
+if (var32 == NULL) {
+PRINT_ERROR("Runtime error: %s", "Receiver is null");
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 2464);
+fatal_exit(1);
+} else {
+{ /* Inline model#MPropDef#mproperty (var32) on <var32:nullable MPropDef(nullable MAttributeDef)> */
+if (unlikely(var32 == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Receiver is null");
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 2212);
+fatal_exit(1);
+}
+var37 = var32->attrs[COLOR_nit__model__MPropDef___mproperty].val; /* _mproperty on <var32:nullable MPropDef(nullable MAttributeDef)> */
+if (unlikely(var37 == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty");
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 2212);
+fatal_exit(1);
+}
 var35 = var37;
 RET_LABEL36:(void)0;
 }
 }
-var_nblock = var35;
-var38 = NULL;
-if (var_nexpr == NULL) {
-var39 = 0; /* is null */
-} else {
-var39 = 1; /* arg is null and recv is not */
-}
-if (0) {
-{ /* Inline kernel#Object#!= (var_nexpr,var38) on <var_nexpr:nullable AExpr> */
-var_other = var38;
 {
-var42 = ((short int (*)(val* self, val* p0))(var_nexpr->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_nexpr, var_other) /* == on <var_nexpr:nullable AExpr(AExpr)>*/;
+var38 = nit___nit__SeparateCompilerVisitor___nit__abstract_compiler__AbstractCompilerVisitor__isset_attribute(var_v, var35, var_recv);
 }
-var43 = !var42;
-var40 = var43;
-goto RET_LABEL41;
-RET_LABEL41:(void)0;
+var_set = var38;
+} else {
+{
+var39 = nit___nit__SeparateCompilerVisitor___nit__abstract_compiler__AbstractCompilerVisitor__read_attribute(var_v, var_guard, var_recv);
 }
-var39 = var40;
+var_set = var39;
 }
-if (var39){
-{
-var44 = nit___nit__AbstractCompilerVisitor___expr(var_v, var_nexpr, var_mtype);
+if (unlikely(varonce==NULL)) {
+var40 = NEW_standard__NativeArray(3l, &type_standard__NativeArray__standard__String);
+if (likely(varonce41!=NULL)) {
+var42 = varonce41;
+} else {
+var43 = "if(likely(";
+var44 = standard___standard__NativeString___to_s_with_length(var43, 10l);
+var42 = var44;
+varonce41 = var42;
 }
-var_value = var44;
+((struct instance_standard__NativeArray*)var40)->values[0]=var42;
+if (likely(varonce45!=NULL)) {
+var46 = varonce45;
 } else {
-var45 = NULL;
-if (var_nblock == NULL) {
-var46 = 0; /* is null */
+var47 = ")) {";
+var48 = standard___standard__NativeString___to_s_with_length(var47, 4l);
+var46 = var48;
+varonce45 = var46;
+}
+((struct instance_standard__NativeArray*)var40)->values[2]=var46;
 } else {
-var46 = 1; /* arg is null and recv is not */
+var40 = varonce;
+varonce = NULL;
 }
-if (0) {
-{ /* Inline kernel#Object#!= (var_nblock,var45) on <var_nblock:nullable AExpr> */
-var_other = var45;
 {
-var49 = ((short int (*)(val* self, val* p0))(var_nblock->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_nblock, var_other) /* == on <var_nblock:nullable AExpr(AExpr)>*/;
-}
-var50 = !var49;
-var47 = var50;
-goto RET_LABEL48;
-RET_LABEL48:(void)0;
+var49 = ((val*(*)(val* self))(var_set->class->vft[COLOR_standard__string__Object__to_s]))(var_set); /* to_s on <var_set:nullable Object(RuntimeVariable)>*/
 }
-var46 = var47;
+((struct instance_standard__NativeArray*)var40)->values[1]=var49;
+{
+var50 = ((val*(*)(val* self))(var40->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var40); /* native_to_s on <var40:NativeArray[String]>*/
 }
-if (var46){
+varonce = var40;
 {
-var51 = nit___nit__AbstractCompilerVisitor___new_var(var_v, var_mtype);
+nit___nit__AbstractCompilerVisitor___add(var_v, var50); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <var_v:AbstractCompilerVisitor>*/
 }
-var_value = var51;
 {
-{ /* Inline abstract_compiler#StaticFrame#returnvar= (var_frame,var_value) on <var_frame:StaticFrame> */
-var_frame->attrs[COLOR_nit__abstract_compiler__StaticFrame___returnvar].val = var_value; /* _returnvar on <var_frame:StaticFrame> */
+{ /* Inline modelize_property#APropdef#mpropdef (self) on <self:AAttrPropdef> */
+var53 = self->attrs[COLOR_nit__modelize_property__APropdef___mpropdef].val; /* _mpropdef on <self:AAttrPropdef> */
+var51 = var53;
 RET_LABEL52:(void)0;
 }
 }
-if (varonce) {
-var53 = varonce;
+if (var51 == NULL) {
+PRINT_ERROR("Runtime error: %s", "Receiver is null");
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 2469);
+fatal_exit(1);
 } else {
-var54 = "RET_LABEL";
-var55 = 9;
-var56 = standard___standard__NativeString___to_s_with_length(var54, var55);
-var53 = var56;
-varonce = var53;
+{ /* Inline model#MPropDef#mproperty (var51) on <var51:nullable MPropDef(nullable MAttributeDef)> */
+if (unlikely(var51 == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Receiver is null");
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 2212);
+fatal_exit(1);
 }
-{
-var57 = nit___nit__AbstractCompilerVisitor___get_name(var_v, var53);
+var56 = var51->attrs[COLOR_nit__model__MPropDef___mproperty].val; /* _mproperty on <var51:nullable MPropDef(nullable MAttributeDef)> */
+if (unlikely(var56 == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty");
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 2212);
+fatal_exit(1);
+}
+var54 = var56;
+RET_LABEL55:(void)0;
 }
-{
-{ /* Inline abstract_compiler#StaticFrame#returnlabel= (var_frame,var57) on <var_frame:StaticFrame> */
-var_frame->attrs[COLOR_nit__abstract_compiler__StaticFrame___returnlabel].val = var57; /* _returnlabel on <var_frame:StaticFrame> */
-RET_LABEL58:(void)0;
 }
+{
+var57 = nit___nit__SeparateCompilerVisitor___nit__abstract_compiler__AbstractCompilerVisitor__read_attribute(var_v, var54, var_recv);
 }
-if (varonce59) {
-var60 = varonce59;
+var_res = var57;
+if (likely(varonce58!=NULL)) {
+var59 = varonce58;
 } else {
-var61 = "{";
-var62 = 1;
-var63 = standard___standard__NativeString___to_s_with_length(var61, var62);
-var60 = var63;
-varonce59 = var60;
+var60 = "} else {";
+var61 = standard___standard__NativeString___to_s_with_length(var60, 8l);
+var59 = var61;
+varonce58 = var59;
 }
 {
-nit___nit__AbstractCompilerVisitor___add(var_v, var60); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <var_v:AbstractCompilerVisitor>*/
+nit___nit__AbstractCompilerVisitor___add(var_v, var59); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <var_v:AbstractCompilerVisitor>*/
 }
 {
-nit___nit__AbstractCompilerVisitor___stmt(var_v, var_nblock); /* Direct call abstract_compiler#AbstractCompilerVisitor#stmt on <var_v:AbstractCompilerVisitor>*/
+var62 = nit__abstract_compiler___AAttrPropdef___evaluate_expr(self, var_v, var_recv);
 }
+var_value = var62;
 {
-{ /* Inline abstract_compiler#StaticFrame#returnlabel (var_frame) on <var_frame:StaticFrame> */
-var66 = var_frame->attrs[COLOR_nit__abstract_compiler__StaticFrame___returnlabel].val; /* _returnlabel on <var_frame:StaticFrame> */
-var64 = var66;
-RET_LABEL65:(void)0;
-}
-}
-if (unlikely(var64 == NULL)) {
-PRINT_ERROR("Runtime error: %s", "Cast failed");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 2333);
-show_backtrace(1);
-}
-if (varonce67) {
-var68 = varonce67;
-} else {
-var69 = ":(void)0;";
-var70 = 9;
-var71 = standard___standard__NativeString___to_s_with_length(var69, var70);
-var68 = var71;
-varonce67 = var68;
+nit___nit__AbstractCompilerVisitor___assign(var_v, var_res, var_value); /* Direct call abstract_compiler#AbstractCompilerVisitor#assign on <var_v:AbstractCompilerVisitor>*/
 }
-var72 = NEW_standard__Array(&type_standard__Array__standard__Object);
-{ /* var72 = array_instance Array[Object] */
-var73 = 2;
-var74 = NEW_standard__NativeArray(var73, &type_standard__NativeArray__standard__Object);
-((struct instance_standard__NativeArray*)var74)->values[0] = (val*) var64;
-((struct instance_standard__NativeArray*)var74)->values[1] = (val*) var68;
+var63 = !var_useiset;
+if (var63){
 {
-((void (*)(val* self, val* p0, long p1))(var72->class->vft[COLOR_standard__array__Array__with_native]))(var72, var74, var73) /* with_native on <var72:Array[Object]>*/;
-}
+var64 = nit___nit__AbstractCompilerVisitor___bool_instance(var_v, 1);
 }
+var_true_v = var64;
 {
-var75 = ((val* (*)(val* self))(var72->class->vft[COLOR_standard__string__Object__to_s]))(var72) /* to_s on <var72:Array[Object]>*/;
+var65 = standard___standard__SequenceRead___Collection__first(var_arguments);
 }
 {
-nit___nit__AbstractCompilerVisitor___add(var_v, var75); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <var_v:AbstractCompilerVisitor>*/
+nit___nit__SeparateCompilerVisitor___nit__abstract_compiler__AbstractCompilerVisitor__write_attribute(var_v, var_guard, var65, var_true_v); /* Direct call separate_compiler#SeparateCompilerVisitor#write_attribute on <var_v:AbstractCompilerVisitor>*/
 }
-if (varonce76) {
-var77 = varonce76;
 } else {
-var78 = "}";
-var79 = 1;
-var80 = standard___standard__NativeString___to_s_with_length(var78, var79);
-var77 = var80;
-varonce76 = var77;
-}
-{
-nit___nit__AbstractCompilerVisitor___add(var_v, var77); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <var_v:AbstractCompilerVisitor>*/
 }
+if (likely(varonce66!=NULL)) {
+var67 = varonce66;
 } else {
-PRINT_ERROR("Runtime error: %s", "Aborted");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 2336);
-show_backtrace(1);
+var68 = "}";
+var69 = standard___standard__NativeString___to_s_with_length(var68, 1l);
+var67 = var69;
+varonce66 = var67;
 }
+{
+nit___nit__AbstractCompilerVisitor___add(var_v, var67); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <var_v:AbstractCompilerVisitor>*/
 }
+} else {
 {
 { /* Inline modelize_property#APropdef#mpropdef (self) on <self:AAttrPropdef> */
-var83 = self->attrs[COLOR_nit__modelize_property__APropdef___mpropdef].val; /* _mpropdef on <self:AAttrPropdef> */
-var81 = var83;
-RET_LABEL82:(void)0;
+var72 = self->attrs[COLOR_nit__modelize_property__APropdef___mpropdef].val; /* _mpropdef on <self:AAttrPropdef> */
+var70 = var72;
+RET_LABEL71:(void)0;
 }
 }
-if (var81 == NULL) {
+if (var70 == NULL) {
 PRINT_ERROR("Runtime error: %s", "Receiver is null");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 2339);
-show_backtrace(1);
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 2481);
+fatal_exit(1);
 } else {
-{ /* Inline model#MPropDef#mproperty (var81) on <var81:nullable MPropDef(nullable MAttributeDef)> */
-if (unlikely(var81 == NULL)) {
+{ /* Inline model#MPropDef#mproperty (var70) on <var70:nullable MPropDef(nullable MAttributeDef)> */
+if (unlikely(var70 == NULL)) {
 PRINT_ERROR("Runtime error: %s", "Receiver is null");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 2013);
-show_backtrace(1);
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 2212);
+fatal_exit(1);
 }
-var86 = var81->attrs[COLOR_nit__model__MPropDef___mproperty].val; /* _mproperty on <var81:nullable MPropDef(nullable MAttributeDef)> */
-if (unlikely(var86 == NULL)) {
+var75 = var70->attrs[COLOR_nit__model__MPropDef___mproperty].val; /* _mproperty on <var70:nullable MPropDef(nullable MAttributeDef)> */
+if (unlikely(var75 == NULL)) {
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 2013);
-show_backtrace(1);
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 2212);
+fatal_exit(1);
 }
-var84 = var86;
-RET_LABEL85:(void)0;
+var73 = var75;
+RET_LABEL74:(void)0;
 }
 }
 {
-nit___nit__SeparateCompilerVisitor___nit__abstract_compiler__AbstractCompilerVisitor__write_attribute(var_v, var84, var_recv, var_value); /* Direct call separate_compiler#SeparateCompilerVisitor#write_attribute on <var_v:AbstractCompilerVisitor>*/
+var76 = standard___standard__SequenceRead___Collection__first(var_arguments);
 }
 {
-{ /* Inline abstract_compiler#AbstractCompilerVisitor#frame= (var_v,var_old_frame) on <var_v:AbstractCompilerVisitor> */
-var_v->attrs[COLOR_nit__abstract_compiler__AbstractCompilerVisitor___frame].val = var_old_frame; /* _frame on <var_v:AbstractCompilerVisitor> */
-RET_LABEL87:(void)0;
+var77 = nit___nit__SeparateCompilerVisitor___nit__abstract_compiler__AbstractCompilerVisitor__read_attribute(var_v, var73, var76);
 }
+var_res = var77;
 }
 {
-{ /* Inline abstract_compiler#AbstractCompilerVisitor#current_node= (var_v,var_oldnode) on <var_v:AbstractCompilerVisitor> */
-var_v->attrs[COLOR_nit__abstract_compiler__AbstractCompilerVisitor___current_node].val = var_oldnode; /* _current_node on <var_v:AbstractCompilerVisitor> */
-RET_LABEL88:(void)0;
+{ /* Inline abstract_compiler#AbstractCompilerVisitor#frame (var_v) on <var_v:AbstractCompilerVisitor> */
+var80 = var_v->attrs[COLOR_nit__abstract_compiler__AbstractCompilerVisitor___frame].val; /* _frame on <var_v:AbstractCompilerVisitor> */
+var78 = var80;
+RET_LABEL79:(void)0;
 }
 }
-var = var_value;
-goto RET_LABEL;
-RET_LABEL:;
-return var;
+if (var78 == NULL) {
+PRINT_ERROR("Runtime error: %s", "Receiver is null");
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 2483);
+fatal_exit(1);
+} else {
+{ /* Inline abstract_compiler#StaticFrame#returnvar (var78) on <var78:nullable StaticFrame> */
+if (unlikely(var78 == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Receiver is null");
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1838);
+fatal_exit(1);
+}
+var83 = var78->attrs[COLOR_nit__abstract_compiler__StaticFrame___returnvar].val; /* _returnvar on <var78:nullable StaticFrame> */
+var81 = var83;
+RET_LABEL82:(void)0;
+}
+}
+if (unlikely(var81 == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Cast failed");
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 2483);
+fatal_exit(1);
 }
-/* method abstract_compiler#AClassdef#compile_to_c for (self: AClassdef, AbstractCompilerVisitor, MMethodDef, Array[RuntimeVariable]) */
-void nit__abstract_compiler___AClassdef___compile_to_c(val* self, val* p0, val* p1, val* p2) {
-val* var_v /* var v: AbstractCompilerVisitor */;
-val* var_mpropdef /* var mpropdef: MMethodDef */;
-val* var_arguments /* var arguments: Array[RuntimeVariable] */;
-val* var /* : nullable MMethodDef */;
-val* var2 /* : nullable MMethodDef */;
-short int var3 /* : Bool */;
-val* var_other /* var other: nullable Object */;
-short int var5 /* : Bool */;
-short int var7 /* : Bool */;
-val* var8 /* : MProperty */;
-val* var10 /* : MProperty */;
-short int var11 /* : Bool */;
-short int var13 /* : Bool */;
-long var14 /* : Int */;
-long var16 /* : Int */;
-long var17 /* : Int */;
-short int var18 /* : Bool */;
-short int var20 /* : Bool */;
-short int var21 /* : Bool */;
-short int var22 /* : Bool */;
-val* var23 /* : nullable Object */;
-val* var24 /* : MType */;
-val* var26 /* : MType */;
-short int var27 /* : Bool */;
-int cltype;
-int idtype;
-const char* var_class_name;
-val* var28 /* : nullable RuntimeVariable */;
-var_v = p0;
-var_mpropdef = p1;
-var_arguments = p2;
 {
-{ /* Inline modelize_property#AClassdef#mfree_init (self) on <self:AClassdef> */
-var2 = self->attrs[COLOR_nit__modelize_property__AClassdef___mfree_init].val; /* _mfree_init on <self:AClassdef> */
-var = var2;
-RET_LABEL1:(void)0;
+nit___nit__AbstractCompilerVisitor___assign(var_v, var81, var_res); /* Direct call abstract_compiler#AbstractCompilerVisitor#assign on <var_v:AbstractCompilerVisitor>*/
+}
+} else {
+{
+{ /* Inline modelize_property#AAttrPropdef#mwritepropdef (self) on <self:AAttrPropdef> */
+var86 = self->attrs[COLOR_nit__modelize_property__AAttrPropdef___mwritepropdef].val; /* _mwritepropdef on <self:AAttrPropdef> */
+var84 = var86;
+RET_LABEL85:(void)0;
 }
 }
 {
-{ /* Inline kernel#Object#== (var_mpropdef,var) on <var_mpropdef:MMethodDef> */
-var_other = var;
+{ /* Inline kernel#Object#== (var_mpropdef,var84) on <var_mpropdef:MMethodDef> */
+var_other = var84;
 {
 { /* Inline kernel#Object#is_same_instance (var_mpropdef,var_other) on <var_mpropdef:MMethodDef> */
-var7 = var_mpropdef == var_other;
-var5 = var7;
-goto RET_LABEL6;
-RET_LABEL6:(void)0;
+var91 = var_mpropdef == var_other;
+var89 = var91;
+goto RET_LABEL90;
+RET_LABEL90:(void)0;
 }
 }
-var3 = var5;
-goto RET_LABEL4;
-RET_LABEL4:(void)0;
+var87 = var89;
+goto RET_LABEL88;
+RET_LABEL88:(void)0;
 }
 }
-if (var3){
+if (var87){
 {
-{ /* Inline model#MPropDef#mproperty (var_mpropdef) on <var_mpropdef:MMethodDef> */
-var10 = var_mpropdef->attrs[COLOR_nit__model__MPropDef___mproperty].val; /* _mproperty on <var_mpropdef:MMethodDef> */
-if (unlikely(var10 == NULL)) {
-PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 2013);
-show_backtrace(1);
-}
-var8 = var10;
-RET_LABEL9:(void)0;
+{ /* Inline array#AbstractArrayRead#length (var_arguments) on <var_arguments:Array[RuntimeVariable]> */
+var94 = var_arguments->attrs[COLOR_standard__array__AbstractArrayRead___length].l; /* _length on <var_arguments:Array[RuntimeVariable]> */
+var92 = var94;
+RET_LABEL93:(void)0;
 }
 }
 {
-{ /* Inline model#MMethod#is_root_init (var8) on <var8:MProperty(MMethod)> */
-var13 = var8->attrs[COLOR_nit__model__MMethod___is_root_init].s; /* _is_root_init on <var8:MProperty(MMethod)> */
-var11 = var13;
-RET_LABEL12:(void)0;
+{ /* Inline kernel#Int#== (var92,2l) on <var92:Int> */
+var97 = var92 == 2l;
+var95 = var97;
+goto RET_LABEL96;
+RET_LABEL96:(void)0;
 }
 }
-if (unlikely(!var11)) {
+if (unlikely(!var95)) {
 PRINT_ERROR("Runtime error: %s", "Assert failed");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 2368);
-show_backtrace(1);
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 2485);
+fatal_exit(1);
 }
 {
-{ /* Inline array#AbstractArrayRead#length (var_arguments) on <var_arguments:Array[RuntimeVariable]> */
-var16 = var_arguments->attrs[COLOR_standard__array__AbstractArrayRead___length].l; /* _length on <var_arguments:Array[RuntimeVariable]> */
-var14 = var16;
-RET_LABEL15:(void)0;
+{ /* Inline modelize_property#APropdef#mpropdef (self) on <self:AAttrPropdef> */
+var100 = self->attrs[COLOR_nit__modelize_property__APropdef___mpropdef].val; /* _mpropdef on <self:AAttrPropdef> */
+var98 = var100;
+RET_LABEL99:(void)0;
 }
 }
-var17 = 1;
-{
-{ /* Inline kernel#Int#== (var14,var17) on <var14:Int> */
-var20 = var14 == var17;
-var18 = var20;
-goto RET_LABEL19;
-RET_LABEL19:(void)0;
+if (var98 == NULL) {
+PRINT_ERROR("Runtime error: %s", "Receiver is null");
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 2486);
+fatal_exit(1);
+} else {
+{ /* Inline model#MPropDef#mproperty (var98) on <var98:nullable MPropDef(nullable MAttributeDef)> */
+if (unlikely(var98 == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Receiver is null");
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 2212);
+fatal_exit(1);
 }
+var103 = var98->attrs[COLOR_nit__model__MPropDef___mproperty].val; /* _mproperty on <var98:nullable MPropDef(nullable MAttributeDef)> */
+if (unlikely(var103 == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty");
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 2212);
+fatal_exit(1);
 }
-if (unlikely(!var18)) {
-PRINT_ERROR("Runtime error: %s", "Assert failed");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 2369);
-show_backtrace(1);
+var101 = var103;
+RET_LABEL102:(void)0;
 }
-{
-var21 = nit___nit__MPropDef___is_intro(var_mpropdef);
 }
-var22 = !var21;
-if (var22){
 {
-var23 = standard___standard__SequenceRead___Collection__first(var_arguments);
+var104 = standard___standard__SequenceRead___Collection__first(var_arguments);
 }
 {
-{ /* Inline abstract_compiler#RuntimeVariable#mtype (var23) on <var23:nullable Object(RuntimeVariable)> */
-var26 = var23->attrs[COLOR_nit__abstract_compiler__RuntimeVariable___mtype].val; /* _mtype on <var23:nullable Object(RuntimeVariable)> */
-if (unlikely(var26 == NULL)) {
-PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1680);
-show_backtrace(1);
-}
-var24 = var26;
-RET_LABEL25:(void)0;
+var105 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var_arguments, 1l);
 }
+{
+nit___nit__SeparateCompilerVisitor___nit__abstract_compiler__AbstractCompilerVisitor__write_attribute(var_v, var101, var104, var105); /* Direct call separate_compiler#SeparateCompilerVisitor#write_attribute on <var_v:AbstractCompilerVisitor>*/
 }
-/* <var24:MType> isa MClassType */
-cltype = type_nit__MClassType.color;
-idtype = type_nit__MClassType.id;
-if(cltype >= var24->type->table_size) {
-var27 = 0;
-} else {
-var27 = var24->type->type_table[cltype] == idtype;
+{
+{ /* Inline modelize_property#AAttrPropdef#is_lazy (self) on <self:AAttrPropdef> */
+var108 = self->attrs[COLOR_nit__modelize_property__AAttrPropdef___is_lazy].s; /* _is_lazy on <self:AAttrPropdef> */
+var106 = var108;
+RET_LABEL107:(void)0;
 }
-if (unlikely(!var27)) {
-var_class_name = var24 == NULL ? "null" : var24->type->name;
-PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "MClassType", var_class_name);
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 2371);
-show_backtrace(1);
 }
+if (var106){
 {
-var28 = nit___nit__SeparateCompilerVisitor___nit__abstract_compiler__AbstractCompilerVisitor__supercall(var_v, var_mpropdef, var24, var_arguments);
+{ /* Inline modelize_property#AAttrPropdef#mtype (self) on <self:AAttrPropdef> */
+var111 = self->attrs[COLOR_nit__modelize_property__AAttrPropdef___mtype].val; /* _mtype on <self:AAttrPropdef> */
+var109 = var111;
+RET_LABEL110:(void)0;
 }
-} else {
 }
-goto RET_LABEL;
+var_ret112 = var109;
+if (var_ret112 == NULL) {
+PRINT_ERROR("Runtime error: %s", "Receiver is null");
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 2489);
+fatal_exit(1);
 } else {
-PRINT_ERROR("Runtime error: %s", "Aborted");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 2375);
-show_backtrace(1);
-}
-RET_LABEL:;
+var114 = ((short int(*)(val* self))(var_ret112->class->vft[COLOR_nit__abstract_compiler__MType__is_c_primitive]))(var_ret112); /* is_c_primitive on <var_ret112:nullable MType>*/
 }
-/* method abstract_compiler#AExpr#expr for (self: AExpr, AbstractCompilerVisitor): nullable RuntimeVariable */
-val* nit__abstract_compiler___AExpr___expr(val* self, val* p0) {
-val* var /* : nullable RuntimeVariable */;
-val* var_v /* var v: AbstractCompilerVisitor */;
-static val* varonce;
-val* var1 /* : String */;
-char* var2 /* : NativeString */;
-long var3 /* : Int */;
-val* var4 /* : FlatString */;
-val* var5 /* : String */;
-static val* varonce6;
-val* var7 /* : String */;
-char* var8 /* : NativeString */;
-long var9 /* : Int */;
-val* var10 /* : FlatString */;
-val* var11 /* : Location */;
-val* var13 /* : Location */;
-val* var14 /* : String */;
-static val* varonce15;
-val* var16 /* : String */;
-char* var17 /* : NativeString */;
-long var18 /* : Int */;
-val* var19 /* : FlatString */;
-val* var20 /* : Array[Object] */;
-long var21 /* : Int */;
-val* var22 /* : NativeArray[Object] */;
-val* var23 /* : String */;
-val* var24 /* : nullable MType */;
-val* var_mtype /* var mtype: nullable MType */;
-val* var25 /* : null */;
-short int var26 /* : Bool */;
-short int var27 /* : Bool */;
-val* var_other /* var other: nullable Object */;
-short int var29 /* : Bool */;
-short int var31 /* : Bool */;
-val* var32 /* : null */;
-val* var33 /* : RuntimeVariable */;
-val* var_res /* var res: RuntimeVariable */;
-static val* varonce34;
-val* var35 /* : String */;
-char* var36 /* : NativeString */;
-long var37 /* : Int */;
-val* var38 /* : FlatString */;
-static val* varonce39;
-val* var40 /* : String */;
-char* var41 /* : NativeString */;
-long var42 /* : Int */;
-val* var43 /* : FlatString */;
-val* var44 /* : String */;
-static val* varonce45;
-val* var46 /* : String */;
-char* var47 /* : NativeString */;
-long var48 /* : Int */;
-val* var49 /* : FlatString */;
-val* var50 /* : Array[Object] */;
-long var51 /* : Int */;
-val* var52 /* : NativeArray[Object] */;
-val* var53 /* : String */;
-var_v = p0;
-if (varonce) {
-var1 = varonce;
+var115 = !var114;
+var_116 = var115;
+if (var115){
+/* <var_ret112:nullable MType> isa MNullableType */
+cltype118 = type_nit__MNullableType.color;
+idtype119 = type_nit__MNullableType.id;
+if(var_ret112 == NULL) {
+var117 = 0;
 } else {
-var2 = "PRINT_ERROR(\"NOT YET IMPLEMENTED ";
-var3 = 33;
-var4 = standard___standard__NativeString___to_s_with_length(var2, var3);
-var1 = var4;
-varonce = var1;
+if(cltype118 >= var_ret112->type->table_size) {
+var117 = 0;
+} else {
+var117 = var_ret112->type->type_table[cltype118] == idtype119;
 }
-{
-var5 = standard__string___Object___class_name(self);
 }
-if (varonce6) {
-var7 = varonce6;
+var120 = !var117;
+var113 = var120;
 } else {
-var8 = ":";
-var9 = 1;
-var10 = standard___standard__NativeString___to_s_with_length(var8, var9);
-var7 = var10;
-varonce6 = var7;
+var113 = var_116;
 }
+var_useiset121 = var113;
+var122 = !var_useiset121;
+if (var122){
 {
-{ /* Inline parser_nodes#ANode#location (self) on <self:AExpr> */
-var13 = self->attrs[COLOR_nit__parser_nodes__ANode___location].val; /* _location on <self:AExpr> */
-if (unlikely(var13 == NULL)) {
-PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _location");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 23);
-show_backtrace(1);
-}
-var11 = var13;
-RET_LABEL12:(void)0;
-}
+{ /* Inline modelize_property#AAttrPropdef#mlazypropdef (self) on <self:AAttrPropdef> */
+var125 = self->attrs[COLOR_nit__modelize_property__AAttrPropdef___mlazypropdef].val; /* _mlazypropdef on <self:AAttrPropdef> */
+var123 = var125;
+RET_LABEL124:(void)0;
 }
-{
-var14 = nit___nit__Location___standard__string__Object__to_s(var11);
 }
-if (varonce15) {
-var16 = varonce15;
+if (var123 == NULL) {
+PRINT_ERROR("Runtime error: %s", "Receiver is null");
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 2491);
+fatal_exit(1);
 } else {
-var17 = "\\n\");";
-var18 = 5;
-var19 = standard___standard__NativeString___to_s_with_length(var17, var18);
-var16 = var19;
-varonce15 = var16;
+{ /* Inline model#MPropDef#mproperty (var123) on <var123:nullable MAttributeDef> */
+if (unlikely(var123 == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Receiver is null");
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 2212);
+fatal_exit(1);
 }
-var20 = NEW_standard__Array(&type_standard__Array__standard__Object);
-{ /* var20 = array_instance Array[Object] */
-var21 = 5;
-var22 = NEW_standard__NativeArray(var21, &type_standard__NativeArray__standard__Object);
-((struct instance_standard__NativeArray*)var22)->values[0] = (val*) var1;
-((struct instance_standard__NativeArray*)var22)->values[1] = (val*) var5;
-((struct instance_standard__NativeArray*)var22)->values[2] = (val*) var7;
-((struct instance_standard__NativeArray*)var22)->values[3] = (val*) var14;
-((struct instance_standard__NativeArray*)var22)->values[4] = (val*) var16;
-{
-((void (*)(val* self, val* p0, long p1))(var20->class->vft[COLOR_standard__array__Array__with_native]))(var20, var22, var21) /* with_native on <var20:Array[Object]>*/;
+var128 = var123->attrs[COLOR_nit__model__MPropDef___mproperty].val; /* _mproperty on <var123:nullable MAttributeDef> */
+if (unlikely(var128 == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty");
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 2212);
+fatal_exit(1);
+}
+var126 = var128;
+RET_LABEL127:(void)0;
 }
 }
 {
-var23 = ((val* (*)(val* self))(var20->class->vft[COLOR_standard__string__Object__to_s]))(var20) /* to_s on <var20:Array[Object]>*/;
+var129 = standard___standard__SequenceRead___Collection__first(var_arguments);
 }
 {
-nit___nit__AbstractCompilerVisitor___add(var_v, var23); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <var_v:AbstractCompilerVisitor>*/
+var130 = nit___nit__AbstractCompilerVisitor___bool_instance(var_v, 1);
 }
 {
-var24 = ((val* (*)(val* self))(self->class->vft[COLOR_nit__typing__AExpr__mtype]))(self) /* mtype on <self:AExpr>*/;
+nit___nit__SeparateCompilerVisitor___nit__abstract_compiler__AbstractCompilerVisitor__write_attribute(var_v, var126, var129, var130); /* Direct call separate_compiler#SeparateCompilerVisitor#write_attribute on <var_v:AbstractCompilerVisitor>*/
 }
-var_mtype = var24;
-var25 = NULL;
-if (var_mtype == NULL) {
-var26 = 1; /* is null */
 } else {
-var26 = 0; /* arg is null but recv is not */
 }
-if (0) {
-{ /* Inline kernel#Object#== (var_mtype,var25) on <var_mtype:nullable MType> */
-var_other = var25;
-{
-{ /* Inline kernel#Object#is_same_instance (var_mtype,var_other) on <var_mtype:nullable MType(MType)> */
-var31 = var_mtype == var_other;
-var29 = var31;
-goto RET_LABEL30;
-RET_LABEL30:(void)0;
+} else {
 }
+} else {
+PRINT_ERROR("Runtime error: %s", "Aborted");
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 2495);
+fatal_exit(1);
 }
-var27 = var29;
-goto RET_LABEL28;
-RET_LABEL28:(void)0;
 }
-var26 = var27;
+RET_LABEL:;
 }
-if (var26){
-var32 = NULL;
-var = var32;
-goto RET_LABEL;
-} else {
+/* method abstract_compiler#AAttrPropdef#init_expr for (self: AAttrPropdef, AbstractCompilerVisitor, RuntimeVariable) */
+void nit__abstract_compiler___AAttrPropdef___init_expr(val* self, val* p0, val* p1) {
+val* var_v /* var v: AbstractCompilerVisitor */;
+val* var_recv /* var recv: RuntimeVariable */;
+short int var /* : Bool */;
+short int var1 /* : Bool */;
+short int var2 /* : Bool */;
+short int var4 /* : Bool */;
+short int var_ /* var : Bool */;
+short int var5 /* : Bool */;
+short int var7 /* : Bool */;
+short int var8 /* : Bool */;
+short int var_9 /* var : Bool */;
+val* var10 /* : nullable AExpr */;
+val* var12 /* : nullable AExpr */;
+short int var13 /* : Bool */;
+int cltype;
+int idtype;
+short int var14 /* : Bool */;
+val* var15 /* : RuntimeVariable */;
+var_v = p0;
+var_recv = p1;
 {
-var33 = nit___nit__AbstractCompilerVisitor___new_var(var_v, var_mtype);
-}
-var_res = var33;
-if (varonce34) {
-var35 = varonce34;
-} else {
-var36 = "/* ";
-var37 = 3;
-var38 = standard___standard__NativeString___to_s_with_length(var36, var37);
-var35 = var38;
-varonce34 = var35;
+{ /* Inline modelize_property#AAttrPropdef#has_value (self) on <self:AAttrPropdef> */
+var4 = self->attrs[COLOR_nit__modelize_property__AAttrPropdef___has_value].s; /* _has_value on <self:AAttrPropdef> */
+var2 = var4;
+RET_LABEL3:(void)0;
 }
-if (varonce39) {
-var40 = varonce39;
-} else {
-var41 = " = NOT YET ";
-var42 = 11;
-var43 = standard___standard__NativeString___to_s_with_length(var41, var42);
-var40 = var43;
-varonce39 = var40;
 }
+var_ = var2;
+if (var2){
 {
-var44 = standard__string___Object___class_name(self);
+{ /* Inline modelize_property#AAttrPropdef#is_lazy (self) on <self:AAttrPropdef> */
+var7 = self->attrs[COLOR_nit__modelize_property__AAttrPropdef___is_lazy].s; /* _is_lazy on <self:AAttrPropdef> */
+var5 = var7;
+RET_LABEL6:(void)0;
 }
-if (varonce45) {
-var46 = varonce45;
+}
+var8 = !var5;
+var1 = var8;
 } else {
-var47 = " */";
-var48 = 3;
-var49 = standard___standard__NativeString___to_s_with_length(var47, var48);
-var46 = var49;
-varonce45 = var46;
+var1 = var_;
 }
-var50 = NEW_standard__Array(&type_standard__Array__standard__Object);
-{ /* var50 = array_instance Array[Object] */
-var51 = 5;
-var52 = NEW_standard__NativeArray(var51, &type_standard__NativeArray__standard__Object);
-((struct instance_standard__NativeArray*)var52)->values[0] = (val*) var35;
-((struct instance_standard__NativeArray*)var52)->values[1] = (val*) var_res;
-((struct instance_standard__NativeArray*)var52)->values[2] = (val*) var40;
-((struct instance_standard__NativeArray*)var52)->values[3] = (val*) var44;
-((struct instance_standard__NativeArray*)var52)->values[4] = (val*) var46;
+var_9 = var1;
+if (var1){
 {
-((void (*)(val* self, val* p0, long p1))(var50->class->vft[COLOR_standard__array__Array__with_native]))(var50, var52, var51) /* with_native on <var50:Array[Object]>*/;
-}
+{ /* Inline parser_nodes#AAttrPropdef#n_expr (self) on <self:AAttrPropdef> */
+var12 = self->attrs[COLOR_nit__parser_nodes__AAttrPropdef___n_expr].val; /* _n_expr on <self:AAttrPropdef> */
+var10 = var12;
+RET_LABEL11:(void)0;
 }
-{
-var53 = ((val* (*)(val* self))(var50->class->vft[COLOR_standard__string__Object__to_s]))(var50) /* to_s on <var50:Array[Object]>*/;
 }
-{
-nit___nit__AbstractCompilerVisitor___add(var_v, var53); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <var_v:AbstractCompilerVisitor>*/
+/* <var10:nullable AExpr> isa ANullExpr */
+cltype = type_nit__ANullExpr.color;
+idtype = type_nit__ANullExpr.id;
+if(var10 == NULL) {
+var13 = 0;
+} else {
+if(cltype >= var10->type->table_size) {
+var13 = 0;
+} else {
+var13 = var10->type->type_table[cltype] == idtype;
 }
-var = var_res;
-goto RET_LABEL;
 }
-RET_LABEL:;
-return var;
+var14 = !var13;
+var = var14;
+} else {
+var = var_9;
 }
-/* method abstract_compiler#AExpr#stmt for (self: AExpr, AbstractCompilerVisitor) */
-void nit__abstract_compiler___AExpr___stmt(val* self, val* p0) {
-val* var_v /* var v: AbstractCompilerVisitor */;
-val* var /* : nullable RuntimeVariable */;
-var_v = p0;
+if (var){
 {
-var = ((val* (*)(val* self, val* p0))(self->class->vft[COLOR_nit__abstract_compiler__AExpr__expr]))(self, var_v) /* expr on <self:AExpr>*/;
+var15 = nit__abstract_compiler___AAttrPropdef___evaluate_expr(self, var_v, var_recv);
+}
+} else {
 }
 RET_LABEL:;
 }
-/* method abstract_compiler#ABlockExpr#stmt for (self: ABlockExpr, AbstractCompilerVisitor) */
-void nit__abstract_compiler___ABlockExpr___AExpr__stmt(val* self, val* p0) {
+/* method abstract_compiler#AAttrPropdef#evaluate_expr for (self: AAttrPropdef, AbstractCompilerVisitor, RuntimeVariable): RuntimeVariable */
+val* nit__abstract_compiler___AAttrPropdef___evaluate_expr(val* self, val* p0, val* p1) {
+val* var /* : RuntimeVariable */;
 val* var_v /* var v: AbstractCompilerVisitor */;
-val* var /* : ANodes[AExpr] */;
-val* var2 /* : ANodes[AExpr] */;
-val* var_ /* var : ANodes[AExpr] */;
-val* var3 /* : Iterator[ANode] */;
-val* var_4 /* var : Iterator[AExpr] */;
-short int var5 /* : Bool */;
-val* var6 /* : nullable Object */;
-val* var_e /* var e: AExpr */;
-var_v = p0;
-{
-{ /* Inline parser_nodes#ABlockExpr#n_expr (self) on <self:ABlockExpr> */
-var2 = self->attrs[COLOR_nit__parser_nodes__ABlockExpr___n_expr].val; /* _n_expr on <self:ABlockExpr> */
-if (unlikely(var2 == NULL)) {
-PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 1565);
-show_backtrace(1);
-}
-var = var2;
-RET_LABEL1:(void)0;
+val* var_recv /* var recv: RuntimeVariable */;
+val* var1 /* : nullable ANode */;
+val* var3 /* : nullable ANode */;
+val* var_oldnode /* var oldnode: nullable ANode */;
+val* var5 /* : nullable StaticFrame */;
+val* var7 /* : nullable StaticFrame */;
+val* var_old_frame /* var old_frame: nullable StaticFrame */;
+val* var8 /* : StaticFrame */;
+val* var9 /* : nullable MMethodDef */;
+val* var11 /* : nullable MMethodDef */;
+val* var12 /* : MType */;
+val* var14 /* : MType */;
+val* var15 /* : MType */;
+short int var16 /* : Bool */;
+int cltype;
+int idtype;
+const char* var_class_name;
+val* var17 /* : Array[RuntimeVariable] */;
+val* var_ /* var : Array[RuntimeVariable] */;
+val* var_frame /* var frame: StaticFrame */;
+val* var19 /* : nullable MType */;
+val* var21 /* : nullable MType */;
+val* var_mtype /* var mtype: nullable MType */;
+short int var22 /* : Bool */;
+short int var23 /* : Bool */;
+val* var_other /* var other: nullable Object */;
+short int var25 /* : Bool */;
+short int var26 /* : Bool */;
+val* var27 /* : nullable AExpr */;
+val* var29 /* : nullable AExpr */;
+val* var_nexpr /* var nexpr: nullable AExpr */;
+val* var30 /* : nullable AExpr */;
+val* var32 /* : nullable AExpr */;
+val* var_nblock /* var nblock: nullable AExpr */;
+short int var33 /* : Bool */;
+short int var34 /* : Bool */;
+short int var36 /* : Bool */;
+short int var37 /* : Bool */;
+val* var38 /* : RuntimeVariable */;
+val* var_value /* var value: nullable Object */;
+short int var39 /* : Bool */;
+short int var40 /* : Bool */;
+short int var42 /* : Bool */;
+short int var43 /* : Bool */;
+val* var44 /* : RuntimeVariable */;
+static val* varonce;
+val* var46 /* : String */;
+char* var47 /* : NativeString */;
+val* var48 /* : FlatString */;
+val* var49 /* : String */;
+static val* varonce51;
+val* var52 /* : String */;
+char* var53 /* : NativeString */;
+val* var54 /* : FlatString */;
+val* var56 /* : NativeArray[String] */;
+static val* varonce55;
+static val* varonce57;
+val* var58 /* : String */;
+char* var59 /* : NativeString */;
+val* var60 /* : FlatString */;
+val* var61 /* : nullable String */;
+val* var63 /* : nullable String */;
+val* var64 /* : String */;
+static val* varonce65;
+val* var66 /* : String */;
+char* var67 /* : NativeString */;
+val* var68 /* : FlatString */;
+val* var69 /* : nullable MPropDef */;
+val* var71 /* : nullable MPropDef */;
+val* var72 /* : MProperty */;
+val* var74 /* : MProperty */;
+var_v = p0;
+var_recv = p1;
+{
+{ /* Inline abstract_compiler#AbstractCompilerVisitor#current_node (var_v) on <var_v:AbstractCompilerVisitor> */
+var3 = var_v->attrs[COLOR_nit__abstract_compiler__AbstractCompilerVisitor___current_node].val; /* _current_node on <var_v:AbstractCompilerVisitor> */
+var1 = var3;
+RET_LABEL2:(void)0;
 }
 }
-var_ = var;
+var_oldnode = var1;
 {
-var3 = nit___nit__ANodes___standard__abstract_collection__Collection__iterator(var_);
+{ /* Inline abstract_compiler#AbstractCompilerVisitor#current_node= (var_v,self) on <var_v:AbstractCompilerVisitor> */
+var_v->attrs[COLOR_nit__abstract_compiler__AbstractCompilerVisitor___current_node].val = self; /* _current_node on <var_v:AbstractCompilerVisitor> */
+RET_LABEL4:(void)0;
 }
-var_4 = var3;
-for(;;) {
-{
-var5 = ((short int (*)(val* self))(var_4->class->vft[COLOR_standard__abstract_collection__Iterator__is_ok]))(var_4) /* is_ok on <var_4:Iterator[AExpr]>*/;
 }
-if (var5){
 {
-var6 = ((val* (*)(val* self))(var_4->class->vft[COLOR_standard__abstract_collection__Iterator__item]))(var_4) /* item on <var_4:Iterator[AExpr]>*/;
+{ /* Inline abstract_compiler#AbstractCompilerVisitor#frame (var_v) on <var_v:AbstractCompilerVisitor> */
+var7 = var_v->attrs[COLOR_nit__abstract_compiler__AbstractCompilerVisitor___frame].val; /* _frame on <var_v:AbstractCompilerVisitor> */
+var5 = var7;
+RET_LABEL6:(void)0;
 }
-var_e = var6;
-{
-nit___nit__AbstractCompilerVisitor___stmt(var_v, var_e); /* Direct call abstract_compiler#AbstractCompilerVisitor#stmt on <var_v:AbstractCompilerVisitor>*/
 }
+var_old_frame = var5;
+var8 = NEW_nit__StaticFrame(&type_nit__StaticFrame);
 {
-((void (*)(val* self))(var_4->class->vft[COLOR_standard__abstract_collection__Iterator__next]))(var_4) /* next on <var_4:Iterator[AExpr]>*/;
+{ /* Inline modelize_property#AAttrPropdef#mreadpropdef (self) on <self:AAttrPropdef> */
+var11 = self->attrs[COLOR_nit__modelize_property__AAttrPropdef___mreadpropdef].val; /* _mreadpropdef on <self:AAttrPropdef> */
+var9 = var11;
+RET_LABEL10:(void)0;
 }
-} else {
-goto BREAK_label;
 }
+if (unlikely(var9 == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Cast failed");
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 2510);
+fatal_exit(1);
 }
-BREAK_label: (void)0;
 {
-{ /* Inline abstract_collection#Iterator#finish (var_4) on <var_4:Iterator[AExpr]> */
-RET_LABEL7:(void)0;
+{ /* Inline abstract_compiler#RuntimeVariable#mcasttype (var_recv) on <var_recv:RuntimeVariable> */
+var14 = var_recv->attrs[COLOR_nit__abstract_compiler__RuntimeVariable___mcasttype].val; /* _mcasttype on <var_recv:RuntimeVariable> */
+if (unlikely(var14 == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mcasttype");
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1787);
+fatal_exit(1);
 }
+var12 = var14;
+RET_LABEL13:(void)0;
 }
-RET_LABEL:;
 }
-/* method abstract_compiler#ABlockExpr#expr for (self: ABlockExpr, AbstractCompilerVisitor): nullable RuntimeVariable */
-val* nit__abstract_compiler___ABlockExpr___AExpr__expr(val* self, val* p0) {
-val* var /* : nullable RuntimeVariable */;
-val* var_v /* var v: AbstractCompilerVisitor */;
-val* var1 /* : ANodes[AExpr] */;
-val* var3 /* : ANodes[AExpr] */;
-val* var4 /* : nullable Object */;
-val* var_last /* var last: AExpr */;
-val* var5 /* : ANodes[AExpr] */;
-val* var7 /* : ANodes[AExpr] */;
-val* var_ /* var : ANodes[AExpr] */;
-val* var8 /* : Iterator[ANode] */;
-val* var_9 /* var : Iterator[AExpr] */;
-short int var10 /* : Bool */;
-val* var11 /* : nullable Object */;
-val* var_e /* var e: AExpr */;
-short int var12 /* : Bool */;
-val* var_other /* var other: nullable Object */;
-short int var14 /* : Bool */;
-short int var16 /* : Bool */;
-val* var18 /* : null */;
-val* var19 /* : RuntimeVariable */;
-var_v = p0;
 {
-{ /* Inline parser_nodes#ABlockExpr#n_expr (self) on <self:ABlockExpr> */
-var3 = self->attrs[COLOR_nit__parser_nodes__ABlockExpr___n_expr].val; /* _n_expr on <self:ABlockExpr> */
-if (unlikely(var3 == NULL)) {
-PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 1565);
-show_backtrace(1);
+var15 = ((val*(*)(val* self))(var12->class->vft[COLOR_nit__model__MType__undecorate]))(var12); /* undecorate on <var12:MType>*/
 }
-var1 = var3;
-RET_LABEL2:(void)0;
+/* <var15:MType> isa MClassType */
+cltype = type_nit__MClassType.color;
+idtype = type_nit__MClassType.id;
+if(cltype >= var15->type->table_size) {
+var16 = 0;
+} else {
+var16 = var15->type->type_table[cltype] == idtype;
 }
+if (unlikely(!var16)) {
+var_class_name = var15 == NULL ? "null" : var15->type->name;
+PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "MClassType", var_class_name);
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 2510);
+fatal_exit(1);
 }
+var17 = NEW_standard__Array(&type_standard__Array__nit__RuntimeVariable);
 {
-var4 = standard___standard__SequenceRead___last(var1);
+standard___standard__Array___with_capacity(var17, 1l); /* Direct call array#Array#with_capacity on <var17:Array[RuntimeVariable]>*/
 }
-var_last = var4;
+var_ = var17;
 {
-{ /* Inline parser_nodes#ABlockExpr#n_expr (self) on <self:ABlockExpr> */
-var7 = self->attrs[COLOR_nit__parser_nodes__ABlockExpr___n_expr].val; /* _n_expr on <self:ABlockExpr> */
-if (unlikely(var7 == NULL)) {
-PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 1565);
-show_backtrace(1);
-}
-var5 = var7;
-RET_LABEL6:(void)0;
-}
+standard___standard__AbstractArray___standard__abstract_collection__Sequence__push(var_, var_recv); /* Direct call array#AbstractArray#push on <var_:Array[RuntimeVariable]>*/
 }
-var_ = var5;
 {
-var8 = nit___nit__ANodes___standard__abstract_collection__Collection__iterator(var_);
+((void(*)(val* self, val* p0))(var8->class->vft[COLOR_nit__abstract_compiler__StaticFrame__visitor_61d]))(var8, var_v); /* visitor= on <var8:StaticFrame>*/
 }
-var_9 = var8;
-for(;;) {
 {
-var10 = ((short int (*)(val* self))(var_9->class->vft[COLOR_standard__abstract_collection__Iterator__is_ok]))(var_9) /* is_ok on <var_9:Iterator[AExpr]>*/;
+((void(*)(val* self, val* p0))(var8->class->vft[COLOR_nit__abstract_compiler__StaticFrame__mpropdef_61d]))(var8, var9); /* mpropdef= on <var8:StaticFrame>*/
 }
-if (var10){
 {
-var11 = ((val* (*)(val* self))(var_9->class->vft[COLOR_standard__abstract_collection__Iterator__item]))(var_9) /* item on <var_9:Iterator[AExpr]>*/;
+((void(*)(val* self, val* p0))(var8->class->vft[COLOR_nit__abstract_compiler__StaticFrame__receiver_61d]))(var8, var15); /* receiver= on <var8:StaticFrame>*/
 }
-var_e = var11;
 {
-{ /* Inline kernel#Object#== (var_e,var_last) on <var_e:AExpr> */
-var_other = var_last;
-{
-{ /* Inline kernel#Object#is_same_instance (var_e,var_other) on <var_e:AExpr> */
-var16 = var_e == var_other;
-var14 = var16;
-goto RET_LABEL15;
-RET_LABEL15:(void)0;
+((void(*)(val* self, val* p0))(var8->class->vft[COLOR_nit__abstract_compiler__StaticFrame__arguments_61d]))(var8, var_); /* arguments= on <var8:StaticFrame>*/
 }
+{
+((void(*)(val* self))(var8->class->vft[COLOR_standard__kernel__Object__init]))(var8); /* init on <var8:StaticFrame>*/
 }
-var12 = var14;
-goto RET_LABEL13;
-RET_LABEL13:(void)0;
-}
+var_frame = var8;
+{
+{ /* Inline abstract_compiler#AbstractCompilerVisitor#frame= (var_v,var_frame) on <var_v:AbstractCompilerVisitor> */
+var_v->attrs[COLOR_nit__abstract_compiler__AbstractCompilerVisitor___frame].val = var_frame; /* _frame on <var_v:AbstractCompilerVisitor> */
+RET_LABEL18:(void)0;
 }
-if (var12){
-goto BREAK_label;
-} else {
 }
 {
-nit___nit__AbstractCompilerVisitor___stmt(var_v, var_e); /* Direct call abstract_compiler#AbstractCompilerVisitor#stmt on <var_v:AbstractCompilerVisitor>*/
+{ /* Inline modelize_property#AAttrPropdef#mtype (self) on <self:AAttrPropdef> */
+var21 = self->attrs[COLOR_nit__modelize_property__AAttrPropdef___mtype].val; /* _mtype on <self:AAttrPropdef> */
+var19 = var21;
+RET_LABEL20:(void)0;
 }
-{
-((void (*)(val* self))(var_9->class->vft[COLOR_standard__abstract_collection__Iterator__next]))(var_9) /* next on <var_9:Iterator[AExpr]>*/;
 }
+var_mtype = var19;
+if (var_mtype == NULL) {
+var22 = 0; /* is null */
 } else {
-goto BREAK_label;
-}
+var22 = 1; /* arg is null and recv is not */
 }
-BREAK_label: (void)0;
+if (0) {
+{ /* Inline kernel#Object#!= (var_mtype,((val*)NULL)) on <var_mtype:nullable MType> */
+var_other = ((val*)NULL);
 {
-{ /* Inline abstract_collection#Iterator#finish (var_9) on <var_9:Iterator[AExpr]> */
-RET_LABEL17:(void)0;
+var25 = ((short int(*)(val* self, val* p0))(var_mtype->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_mtype, var_other); /* == on <var_mtype:nullable MType(MType)>*/
 }
+var26 = !var25;
+var23 = var26;
+goto RET_LABEL24;
+RET_LABEL24:(void)0;
 }
-var18 = NULL;
-{
-var19 = nit___nit__AbstractCompilerVisitor___expr(var_v, var_last, var18);
+var22 = var23;
 }
-var = var19;
-goto RET_LABEL;
-RET_LABEL:;
-return var;
+if (unlikely(!var22)) {
+PRINT_ERROR("Runtime error: %s", "Assert failed");
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 2515);
+fatal_exit(1);
 }
-/* method abstract_compiler#AVardeclExpr#stmt for (self: AVardeclExpr, AbstractCompilerVisitor) */
-void nit__abstract_compiler___AVardeclExpr___AExpr__stmt(val* self, val* p0) {
-val* var_v /* var v: AbstractCompilerVisitor */;
-val* var /* : nullable Variable */;
-val* var2 /* : nullable Variable */;
-val* var_variable /* var variable: Variable */;
-val* var3 /* : nullable AExpr */;
-val* var5 /* : nullable AExpr */;
-val* var_ne /* var ne: nullable AExpr */;
-val* var6 /* : null */;
-short int var7 /* : Bool */;
-short int var8 /* : Bool */;
-val* var_other /* var other: nullable Object */;
-short int var10 /* : Bool */;
-short int var11 /* : Bool */;
-val* var12 /* : nullable MType */;
-val* var14 /* : nullable MType */;
-val* var15 /* : RuntimeVariable */;
-val* var_i /* var i: RuntimeVariable */;
-val* var16 /* : RuntimeVariable */;
-var_v = p0;
 {
-{ /* Inline scope#AVardeclExpr#variable (self) on <self:AVardeclExpr> */
-var2 = self->attrs[COLOR_nit__scope__AVardeclExpr___variable].val; /* _variable on <self:AVardeclExpr> */
-var = var2;
-RET_LABEL1:(void)0;
-}
+{ /* Inline parser_nodes#AAttrPropdef#n_expr (self) on <self:AAttrPropdef> */
+var29 = self->attrs[COLOR_nit__parser_nodes__AAttrPropdef___n_expr].val; /* _n_expr on <self:AAttrPropdef> */
+var27 = var29;
+RET_LABEL28:(void)0;
 }
-if (unlikely(var == NULL)) {
-PRINT_ERROR("Runtime error: %s", "Cast failed");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 2423);
-show_backtrace(1);
 }
-var_variable = var;
+var_nexpr = var27;
 {
-{ /* Inline parser_nodes#AVardeclExpr#n_expr (self) on <self:AVardeclExpr> */
-var5 = self->attrs[COLOR_nit__parser_nodes__AVardeclExpr___n_expr].val; /* _n_expr on <self:AVardeclExpr> */
-var3 = var5;
-RET_LABEL4:(void)0;
+{ /* Inline parser_nodes#AAttrPropdef#n_block (self) on <self:AAttrPropdef> */
+var32 = self->attrs[COLOR_nit__parser_nodes__AAttrPropdef___n_block].val; /* _n_block on <self:AAttrPropdef> */
+var30 = var32;
+RET_LABEL31:(void)0;
 }
 }
-var_ne = var3;
-var6 = NULL;
-if (var_ne == NULL) {
-var7 = 0; /* is null */
+var_nblock = var30;
+if (var_nexpr == NULL) {
+var33 = 0; /* is null */
 } else {
-var7 = 1; /* arg is null and recv is not */
+var33 = 1; /* arg is null and recv is not */
 }
 if (0) {
-{ /* Inline kernel#Object#!= (var_ne,var6) on <var_ne:nullable AExpr> */
-var_other = var6;
+{ /* Inline kernel#Object#!= (var_nexpr,((val*)NULL)) on <var_nexpr:nullable AExpr> */
+var_other = ((val*)NULL);
 {
-var10 = ((short int (*)(val* self, val* p0))(var_ne->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_ne, var_other) /* == on <var_ne:nullable AExpr(AExpr)>*/;
+var36 = ((short int(*)(val* self, val* p0))(var_nexpr->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_nexpr, var_other); /* == on <var_nexpr:nullable AExpr(AExpr)>*/
 }
-var11 = !var10;
-var8 = var11;
-goto RET_LABEL9;
-RET_LABEL9:(void)0;
+var37 = !var36;
+var34 = var37;
+goto RET_LABEL35;
+RET_LABEL35:(void)0;
 }
-var7 = var8;
+var33 = var34;
 }
-if (var7){
+if (var33){
 {
-{ /* Inline typing#Variable#declared_type (var_variable) on <var_variable:Variable> */
-var14 = var_variable->attrs[COLOR_nit__typing__Variable___declared_type].val; /* _declared_type on <var_variable:Variable> */
-var12 = var14;
-RET_LABEL13:(void)0;
-}
+var38 = nit___nit__AbstractCompilerVisitor___expr(var_v, var_nexpr, var_mtype);
 }
-{
-var15 = nit___nit__AbstractCompilerVisitor___expr(var_v, var_ne, var12);
+var_value = var38;
+} else {
+if (var_nblock == NULL) {
+var39 = 0; /* is null */
+} else {
+var39 = 1; /* arg is null and recv is not */
 }
-var_i = var15;
+if (0) {
+{ /* Inline kernel#Object#!= (var_nblock,((val*)NULL)) on <var_nblock:nullable AExpr> */
+var_other = ((val*)NULL);
 {
-var16 = nit___nit__AbstractCompilerVisitor___variable(var_v, var_variable);
+var42 = ((short int(*)(val* self, val* p0))(var_nblock->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_nblock, var_other); /* == on <var_nblock:nullable AExpr(AExpr)>*/
 }
-{
-nit___nit__AbstractCompilerVisitor___assign(var_v, var16, var_i); /* Direct call abstract_compiler#AbstractCompilerVisitor#assign on <var_v:AbstractCompilerVisitor>*/
+var43 = !var42;
+var40 = var43;
+goto RET_LABEL41;
+RET_LABEL41:(void)0;
 }
-} else {
+var39 = var40;
 }
-RET_LABEL:;
+if (var39){
+{
+var44 = nit___nit__AbstractCompilerVisitor___new_var(var_v, var_mtype);
 }
-/* method abstract_compiler#AVarExpr#expr for (self: AVarExpr, AbstractCompilerVisitor): nullable RuntimeVariable */
-val* nit__abstract_compiler___AVarExpr___AExpr__expr(val* self, val* p0) {
-val* var /* : nullable RuntimeVariable */;
-val* var_v /* var v: AbstractCompilerVisitor */;
-val* var1 /* : nullable Variable */;
-val* var3 /* : nullable Variable */;
-val* var4 /* : RuntimeVariable */;
-val* var_res /* var res: RuntimeVariable */;
-val* var5 /* : nullable MType */;
-val* var7 /* : nullable MType */;
-val* var_mtype /* var mtype: MType */;
-val* var8 /* : RuntimeVariable */;
-var_v = p0;
+var_value = var44;
 {
-{ /* Inline scope#AVarFormExpr#variable (self) on <self:AVarExpr> */
-var3 = self->attrs[COLOR_nit__scope__AVarFormExpr___variable].val; /* _variable on <self:AVarExpr> */
-var1 = var3;
-RET_LABEL2:(void)0;
+{ /* Inline abstract_compiler#StaticFrame#returnvar= (var_frame,var_value) on <var_frame:StaticFrame> */
+var_frame->attrs[COLOR_nit__abstract_compiler__StaticFrame___returnvar].val = var_value; /* _returnvar on <var_frame:StaticFrame> */
+RET_LABEL45:(void)0;
 }
 }
-if (unlikely(var1 == NULL)) {
-PRINT_ERROR("Runtime error: %s", "Cast failed");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 2435);
-show_backtrace(1);
+if (likely(varonce!=NULL)) {
+var46 = varonce;
+} else {
+var47 = "RET_LABEL";
+var48 = standard___standard__NativeString___to_s_with_length(var47, 9l);
+var46 = var48;
+varonce = var46;
 }
 {
-var4 = nit___nit__AbstractCompilerVisitor___variable(var_v, var1);
+var49 = nit___nit__AbstractCompilerVisitor___get_name(var_v, var46);
 }
-var_res = var4;
 {
-{ /* Inline typing#AExpr#mtype (self) on <self:AVarExpr> */
-var7 = self->attrs[COLOR_nit__typing__AExpr___mtype].val; /* _mtype on <self:AVarExpr> */
-var5 = var7;
-RET_LABEL6:(void)0;
+{ /* Inline abstract_compiler#StaticFrame#returnlabel= (var_frame,var49) on <var_frame:StaticFrame> */
+var_frame->attrs[COLOR_nit__abstract_compiler__StaticFrame___returnlabel].val = var49; /* _returnlabel on <var_frame:StaticFrame> */
+RET_LABEL50:(void)0;
 }
 }
-if (unlikely(var5 == NULL)) {
-PRINT_ERROR("Runtime error: %s", "Cast failed");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 2436);
-show_backtrace(1);
+if (likely(varonce51!=NULL)) {
+var52 = varonce51;
+} else {
+var53 = "{";
+var54 = standard___standard__NativeString___to_s_with_length(var53, 1l);
+var52 = var54;
+varonce51 = var52;
 }
-var_mtype = var5;
 {
-var8 = nit___nit__AbstractCompilerVisitor___autoadapt(var_v, var_res, var_mtype);
-}
-var = var8;
-goto RET_LABEL;
-RET_LABEL:;
-return var;
+nit___nit__AbstractCompilerVisitor___add(var_v, var52); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <var_v:AbstractCompilerVisitor>*/
 }
-/* method abstract_compiler#AVarAssignExpr#expr for (self: AVarAssignExpr, AbstractCompilerVisitor): nullable RuntimeVariable */
-val* nit__abstract_compiler___AVarAssignExpr___AExpr__expr(val* self, val* p0) {
-val* var /* : nullable RuntimeVariable */;
-val* var_v /* var v: AbstractCompilerVisitor */;
-val* var1 /* : nullable Variable */;
-val* var3 /* : nullable Variable */;
-val* var_variable /* var variable: Variable */;
-val* var4 /* : AExpr */;
-val* var6 /* : AExpr */;
-val* var7 /* : nullable MType */;
-val* var9 /* : nullable MType */;
-val* var10 /* : RuntimeVariable */;
-val* var_i /* var i: RuntimeVariable */;
-val* var11 /* : RuntimeVariable */;
-var_v = p0;
 {
-{ /* Inline scope#AVarFormExpr#variable (self) on <self:AVarAssignExpr> */
-var3 = self->attrs[COLOR_nit__scope__AVarFormExpr___variable].val; /* _variable on <self:AVarAssignExpr> */
-var1 = var3;
-RET_LABEL2:(void)0;
+nit___nit__AbstractCompilerVisitor___stmt(var_v, var_nblock); /* Direct call abstract_compiler#AbstractCompilerVisitor#stmt on <var_v:AbstractCompilerVisitor>*/
 }
+if (unlikely(varonce55==NULL)) {
+var56 = NEW_standard__NativeArray(2l, &type_standard__NativeArray__standard__String);
+if (likely(varonce57!=NULL)) {
+var58 = varonce57;
+} else {
+var59 = ":(void)0;";
+var60 = standard___standard__NativeString___to_s_with_length(var59, 9l);
+var58 = var60;
+varonce57 = var58;
 }
-if (unlikely(var1 == NULL)) {
+((struct instance_standard__NativeArray*)var56)->values[1]=var58;
+} else {
+var56 = varonce55;
+varonce55 = NULL;
+}
+{
+{ /* Inline abstract_compiler#StaticFrame#returnlabel (var_frame) on <var_frame:StaticFrame> */
+var63 = var_frame->attrs[COLOR_nit__abstract_compiler__StaticFrame___returnlabel].val; /* _returnlabel on <var_frame:StaticFrame> */
+var61 = var63;
+RET_LABEL62:(void)0;
+}
+}
+if (unlikely(var61 == NULL)) {
 PRINT_ERROR("Runtime error: %s", "Cast failed");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 2444);
-show_backtrace(1);
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 2527);
+fatal_exit(1);
 }
-var_variable = var1;
+((struct instance_standard__NativeArray*)var56)->values[0]=var61;
 {
-{ /* Inline parser_nodes#AAssignFormExpr#n_value (self) on <self:AVarAssignExpr> */
-var6 = self->attrs[COLOR_nit__parser_nodes__AAssignFormExpr___n_value].val; /* _n_value on <self:AVarAssignExpr> */
-if (unlikely(var6 == NULL)) {
-PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_value");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 1772);
-show_backtrace(1);
+var64 = ((val*(*)(val* self))(var56->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var56); /* native_to_s on <var56:NativeArray[String]>*/
 }
-var4 = var6;
-RET_LABEL5:(void)0;
+varonce55 = var56;
+{
+nit___nit__AbstractCompilerVisitor___add(var_v, var64); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <var_v:AbstractCompilerVisitor>*/
 }
+if (likely(varonce65!=NULL)) {
+var66 = varonce65;
+} else {
+var67 = "}";
+var68 = standard___standard__NativeString___to_s_with_length(var67, 1l);
+var66 = var68;
+varonce65 = var66;
 }
 {
-{ /* Inline typing#Variable#declared_type (var_variable) on <var_variable:Variable> */
-var9 = var_variable->attrs[COLOR_nit__typing__Variable___declared_type].val; /* _declared_type on <var_variable:Variable> */
-var7 = var9;
-RET_LABEL8:(void)0;
+nit___nit__AbstractCompilerVisitor___add(var_v, var66); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <var_v:AbstractCompilerVisitor>*/
+}
+} else {
+PRINT_ERROR("Runtime error: %s", "Aborted");
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 2530);
+fatal_exit(1);
 }
 }
 {
-var10 = nit___nit__AbstractCompilerVisitor___expr(var_v, var4, var7);
+{ /* Inline modelize_property#APropdef#mpropdef (self) on <self:AAttrPropdef> */
+var71 = self->attrs[COLOR_nit__modelize_property__APropdef___mpropdef].val; /* _mpropdef on <self:AAttrPropdef> */
+var69 = var71;
+RET_LABEL70:(void)0;
+}
+}
+if (var69 == NULL) {
+PRINT_ERROR("Runtime error: %s", "Receiver is null");
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 2533);
+fatal_exit(1);
+} else {
+{ /* Inline model#MPropDef#mproperty (var69) on <var69:nullable MPropDef(nullable MAttributeDef)> */
+if (unlikely(var69 == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Receiver is null");
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 2212);
+fatal_exit(1);
+}
+var74 = var69->attrs[COLOR_nit__model__MPropDef___mproperty].val; /* _mproperty on <var69:nullable MPropDef(nullable MAttributeDef)> */
+if (unlikely(var74 == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty");
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 2212);
+fatal_exit(1);
+}
+var72 = var74;
+RET_LABEL73:(void)0;
+}
 }
-var_i = var10;
 {
-var11 = nit___nit__AbstractCompilerVisitor___variable(var_v, var_variable);
+nit___nit__SeparateCompilerVisitor___nit__abstract_compiler__AbstractCompilerVisitor__write_attribute(var_v, var72, var_recv, var_value); /* Direct call separate_compiler#SeparateCompilerVisitor#write_attribute on <var_v:AbstractCompilerVisitor>*/
 }
 {
-nit___nit__AbstractCompilerVisitor___assign(var_v, var11, var_i); /* Direct call abstract_compiler#AbstractCompilerVisitor#assign on <var_v:AbstractCompilerVisitor>*/
+{ /* Inline abstract_compiler#AbstractCompilerVisitor#frame= (var_v,var_old_frame) on <var_v:AbstractCompilerVisitor> */
+var_v->attrs[COLOR_nit__abstract_compiler__AbstractCompilerVisitor___frame].val = var_old_frame; /* _frame on <var_v:AbstractCompilerVisitor> */
+RET_LABEL75:(void)0;
 }
-var = var_i;
+}
+{
+{ /* Inline abstract_compiler#AbstractCompilerVisitor#current_node= (var_v,var_oldnode) on <var_v:AbstractCompilerVisitor> */
+var_v->attrs[COLOR_nit__abstract_compiler__AbstractCompilerVisitor___current_node].val = var_oldnode; /* _current_node on <var_v:AbstractCompilerVisitor> */
+RET_LABEL76:(void)0;
+}
+}
+var = var_value;
 goto RET_LABEL;
 RET_LABEL:;
 return var;
 }
-/* method abstract_compiler#AVarReassignExpr#stmt for (self: AVarReassignExpr, AbstractCompilerVisitor) */
-void nit__abstract_compiler___AVarReassignExpr___AExpr__stmt(val* self, val* p0) {
+/* method abstract_compiler#AClassdef#compile_to_c for (self: AClassdef, AbstractCompilerVisitor, MMethodDef, Array[RuntimeVariable]) */
+void nit__abstract_compiler___AClassdef___compile_to_c(val* self, val* p0, val* p1, val* p2) {
 val* var_v /* var v: AbstractCompilerVisitor */;
-val* var /* : nullable Variable */;
-val* var2 /* : nullable Variable */;
-val* var_variable /* var variable: Variable */;
-val* var3 /* : RuntimeVariable */;
-val* var_vari /* var vari: RuntimeVariable */;
-val* var4 /* : AExpr */;
-val* var6 /* : AExpr */;
-val* var7 /* : nullable MType */;
-val* var9 /* : nullable MType */;
-val* var10 /* : RuntimeVariable */;
-val* var_value /* var value: RuntimeVariable */;
-val* var11 /* : nullable CallSite */;
-val* var13 /* : nullable CallSite */;
-val* var14 /* : Array[RuntimeVariable] */;
-long var15 /* : Int */;
-val* var_ /* var : Array[RuntimeVariable] */;
-val* var16 /* : nullable RuntimeVariable */;
-val* var_res /* var res: nullable RuntimeVariable */;
-val* var17 /* : null */;
-short int var18 /* : Bool */;
-short int var19 /* : Bool */;
+val* var_mpropdef /* var mpropdef: MMethodDef */;
+val* var_arguments /* var arguments: Array[RuntimeVariable] */;
+val* var /* : nullable MMethodDef */;
+val* var2 /* : nullable MMethodDef */;
+short int var3 /* : Bool */;
 val* var_other /* var other: nullable Object */;
+short int var5 /* : Bool */;
+short int var7 /* : Bool */;
+val* var8 /* : MProperty */;
+val* var10 /* : MProperty */;
+short int var11 /* : Bool */;
+short int var13 /* : Bool */;
+long var14 /* : Int */;
+long var16 /* : Int */;
+short int var17 /* : Bool */;
+short int var19 /* : Bool */;
+short int var20 /* : Bool */;
 short int var21 /* : Bool */;
-short int var22 /* : Bool */;
-val* var23 /* : RuntimeVariable */;
+val* var22 /* : nullable Object */;
+val* var23 /* : MType */;
+val* var25 /* : MType */;
+short int var26 /* : Bool */;
+int cltype;
+int idtype;
+const char* var_class_name;
+val* var27 /* : nullable RuntimeVariable */;
 var_v = p0;
+var_mpropdef = p1;
+var_arguments = p2;
 {
-{ /* Inline scope#AVarFormExpr#variable (self) on <self:AVarReassignExpr> */
-var2 = self->attrs[COLOR_nit__scope__AVarFormExpr___variable].val; /* _variable on <self:AVarReassignExpr> */
+{ /* Inline modelize_property#AClassdef#mfree_init (self) on <self:AClassdef> */
+var2 = self->attrs[COLOR_nit__modelize_property__AClassdef___mfree_init].val; /* _mfree_init on <self:AClassdef> */
 var = var2;
 RET_LABEL1:(void)0;
 }
 }
-if (unlikely(var == NULL)) {
-PRINT_ERROR("Runtime error: %s", "Cast failed");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 2454);
-show_backtrace(1);
-}
-var_variable = var;
 {
-var3 = nit___nit__AbstractCompilerVisitor___variable(var_v, var_variable);
-}
-var_vari = var3;
+{ /* Inline kernel#Object#== (var_mpropdef,var) on <var_mpropdef:MMethodDef> */
+var_other = var;
 {
-{ /* Inline parser_nodes#AReassignFormExpr#n_value (self) on <self:AVarReassignExpr> */
-var6 = self->attrs[COLOR_nit__parser_nodes__AReassignFormExpr___n_value].val; /* _n_value on <self:AVarReassignExpr> */
-if (unlikely(var6 == NULL)) {
-PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_value");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 1783);
-show_backtrace(1);
+{ /* Inline kernel#Object#is_same_instance (var_mpropdef,var_other) on <var_mpropdef:MMethodDef> */
+var7 = var_mpropdef == var_other;
+var5 = var7;
+goto RET_LABEL6;
+RET_LABEL6:(void)0;
 }
-var4 = var6;
-RET_LABEL5:(void)0;
+}
+var3 = var5;
+goto RET_LABEL4;
+RET_LABEL4:(void)0;
 }
 }
+if (var3){
 {
-{ /* Inline typing#Variable#declared_type (var_variable) on <var_variable:Variable> */
-var9 = var_variable->attrs[COLOR_nit__typing__Variable___declared_type].val; /* _declared_type on <var_variable:Variable> */
-var7 = var9;
-RET_LABEL8:(void)0;
+{ /* Inline model#MPropDef#mproperty (var_mpropdef) on <var_mpropdef:MMethodDef> */
+var10 = var_mpropdef->attrs[COLOR_nit__model__MPropDef___mproperty].val; /* _mproperty on <var_mpropdef:MMethodDef> */
+if (unlikely(var10 == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty");
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 2212);
+fatal_exit(1);
 }
+var8 = var10;
+RET_LABEL9:(void)0;
 }
-{
-var10 = nit___nit__AbstractCompilerVisitor___expr(var_v, var4, var7);
 }
-var_value = var10;
 {
-{ /* Inline typing#AReassignFormExpr#reassign_callsite (self) on <self:AVarReassignExpr> */
-var13 = self->attrs[COLOR_nit__typing__AReassignFormExpr___reassign_callsite].val; /* _reassign_callsite on <self:AVarReassignExpr> */
+{ /* Inline model#MMethod#is_root_init (var8) on <var8:MProperty(MMethod)> */
+var13 = var8->attrs[COLOR_nit__model__MMethod___is_root_init].s; /* _is_root_init on <var8:MProperty(MMethod)> */
 var11 = var13;
 RET_LABEL12:(void)0;
 }
 }
-if (unlikely(var11 == NULL)) {
-PRINT_ERROR("Runtime error: %s", "Cast failed");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 2457);
-show_backtrace(1);
+if (unlikely(!var11)) {
+PRINT_ERROR("Runtime error: %s", "Assert failed");
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 2562);
+fatal_exit(1);
 }
-var14 = NEW_standard__Array(&type_standard__Array__nit__RuntimeVariable);
-var15 = 2;
 {
-standard___standard__Array___with_capacity(var14, var15); /* Direct call array#Array#with_capacity on <var14:Array[RuntimeVariable]>*/
+{ /* Inline array#AbstractArrayRead#length (var_arguments) on <var_arguments:Array[RuntimeVariable]> */
+var16 = var_arguments->attrs[COLOR_standard__array__AbstractArrayRead___length].l; /* _length on <var_arguments:Array[RuntimeVariable]> */
+var14 = var16;
+RET_LABEL15:(void)0;
 }
-var_ = var14;
-{
-standard___standard__AbstractArray___standard__abstract_collection__Sequence__push(var_, var_vari); /* Direct call array#AbstractArray#push on <var_:Array[RuntimeVariable]>*/
 }
 {
-standard___standard__AbstractArray___standard__abstract_collection__Sequence__push(var_, var_value); /* Direct call array#AbstractArray#push on <var_:Array[RuntimeVariable]>*/
+{ /* Inline kernel#Int#== (var14,1l) on <var14:Int> */
+var19 = var14 == 1l;
+var17 = var19;
+goto RET_LABEL18;
+RET_LABEL18:(void)0;
+}
+}
+if (unlikely(!var17)) {
+PRINT_ERROR("Runtime error: %s", "Assert failed");
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 2563);
+fatal_exit(1);
 }
 {
-var16 = ((val* (*)(val* self, val* p0, val* p1))(var_v->class->vft[COLOR_nit__abstract_compiler__AbstractCompilerVisitor__compile_callsite]))(var_v, var11, var_) /* compile_callsite on <var_v:AbstractCompilerVisitor>*/;
+var20 = nit___nit__MPropDef___is_intro(var_mpropdef);
 }
-var_res = var16;
-var17 = NULL;
-if (var_res == NULL) {
-var18 = 0; /* is null */
-} else {
-var18 = 1; /* arg is null and recv is not */
+var21 = !var20;
+if (var21){
+{
+var22 = standard___standard__SequenceRead___Collection__first(var_arguments);
 }
-if (0) {
-{ /* Inline kernel#Object#!= (var_res,var17) on <var_res:nullable RuntimeVariable> */
-var_other = var17;
 {
-var21 = ((short int (*)(val* self, val* p0))(var_res->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_res, var_other) /* == on <var_res:nullable RuntimeVariable(RuntimeVariable)>*/;
+{ /* Inline abstract_compiler#RuntimeVariable#mtype (var22) on <var22:nullable Object(RuntimeVariable)> */
+var25 = var22->attrs[COLOR_nit__abstract_compiler__RuntimeVariable___mtype].val; /* _mtype on <var22:nullable Object(RuntimeVariable)> */
+if (unlikely(var25 == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1784);
+fatal_exit(1);
 }
-var22 = !var21;
-var19 = var22;
-goto RET_LABEL20;
-RET_LABEL20:(void)0;
+var23 = var25;
+RET_LABEL24:(void)0;
 }
-var18 = var19;
 }
-if (unlikely(!var18)) {
-PRINT_ERROR("Runtime error: %s", "Assert failed");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 2458);
-show_backtrace(1);
+/* <var23:MType> isa MClassType */
+cltype = type_nit__MClassType.color;
+idtype = type_nit__MClassType.id;
+if(cltype >= var23->type->table_size) {
+var26 = 0;
+} else {
+var26 = var23->type->type_table[cltype] == idtype;
 }
-{
-var23 = nit___nit__AbstractCompilerVisitor___variable(var_v, var_variable);
+if (unlikely(!var26)) {
+var_class_name = var23 == NULL ? "null" : var23->type->name;
+PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "MClassType", var_class_name);
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 2565);
+fatal_exit(1);
 }
 {
-nit___nit__AbstractCompilerVisitor___assign(var_v, var23, var_res); /* Direct call abstract_compiler#AbstractCompilerVisitor#assign on <var_v:AbstractCompilerVisitor>*/
+var27 = nit___nit__SeparateCompilerVisitor___nit__abstract_compiler__AbstractCompilerVisitor__supercall(var_v, var_mpropdef, var23, var_arguments);
+}
+} else {
+}
+goto RET_LABEL;
+} else {
+PRINT_ERROR("Runtime error: %s", "Aborted");
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 2569);
+fatal_exit(1);
 }
 RET_LABEL:;
 }
-/* method abstract_compiler#ASelfExpr#expr for (self: ASelfExpr, AbstractCompilerVisitor): nullable RuntimeVariable */
-val* nit__abstract_compiler___ASelfExpr___AExpr__expr(val* self, val* p0) {
+/* method abstract_compiler#AExpr#expr for (self: AExpr, AbstractCompilerVisitor): nullable RuntimeVariable */
+val* nit__abstract_compiler___AExpr___expr(val* self, val* p0) {
 val* var /* : nullable RuntimeVariable */;
 val* var_v /* var v: AbstractCompilerVisitor */;
-val* var1 /* : nullable StaticFrame */;
-val* var3 /* : nullable StaticFrame */;
-val* var4 /* : Array[RuntimeVariable] */;
-val* var6 /* : Array[RuntimeVariable] */;
-val* var7 /* : nullable Object */;
+val* var1 /* : NativeArray[String] */;
+static val* varonce;
+static val* varonce2;
+val* var3 /* : String */;
+char* var4 /* : NativeString */;
+val* var5 /* : FlatString */;
+static val* varonce6;
+val* var7 /* : String */;
+char* var8 /* : NativeString */;
+val* var9 /* : FlatString */;
+static val* varonce10;
+val* var11 /* : String */;
+char* var12 /* : NativeString */;
+val* var13 /* : FlatString */;
+val* var14 /* : String */;
+val* var15 /* : Location */;
+val* var17 /* : Location */;
+val* var18 /* : String */;
+val* var19 /* : String */;
+val* var20 /* : nullable MType */;
+val* var_mtype /* var mtype: nullable MType */;
+short int var21 /* : Bool */;
+short int var22 /* : Bool */;
+val* var_other /* var other: nullable Object */;
+short int var24 /* : Bool */;
+short int var26 /* : Bool */;
+val* var27 /* : RuntimeVariable */;
+val* var_res /* var res: RuntimeVariable */;
+val* var29 /* : NativeArray[String] */;
+static val* varonce28;
+static val* varonce30;
+val* var31 /* : String */;
+char* var32 /* : NativeString */;
+val* var33 /* : FlatString */;
+static val* varonce34;
+val* var35 /* : String */;
+char* var36 /* : NativeString */;
+val* var37 /* : FlatString */;
+static val* varonce38;
+val* var39 /* : String */;
+char* var40 /* : NativeString */;
+val* var41 /* : FlatString */;
+val* var42 /* : String */;
+val* var43 /* : String */;
+val* var44 /* : String */;
 var_v = p0;
-{
-{ /* Inline abstract_compiler#AbstractCompilerVisitor#frame (var_v) on <var_v:AbstractCompilerVisitor> */
-var3 = var_v->attrs[COLOR_nit__abstract_compiler__AbstractCompilerVisitor___frame].val; /* _frame on <var_v:AbstractCompilerVisitor> */
-var1 = var3;
-RET_LABEL2:(void)0;
+if (unlikely(varonce==NULL)) {
+var1 = NEW_standard__NativeArray(5l, &type_standard__NativeArray__standard__String);
+if (likely(varonce2!=NULL)) {
+var3 = varonce2;
+} else {
+var4 = "PRINT_ERROR(\"NOT YET IMPLEMENTED ";
+var5 = standard___standard__NativeString___to_s_with_length(var4, 33l);
+var3 = var5;
+varonce2 = var3;
 }
+((struct instance_standard__NativeArray*)var1)->values[0]=var3;
+if (likely(varonce6!=NULL)) {
+var7 = varonce6;
+} else {
+var8 = ":";
+var9 = standard___standard__NativeString___to_s_with_length(var8, 1l);
+var7 = var9;
+varonce6 = var7;
 }
-if (var1 == NULL) {
-PRINT_ERROR("Runtime error: %s", "Receiver is null");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 2464);
-show_backtrace(1);
+((struct instance_standard__NativeArray*)var1)->values[2]=var7;
+if (likely(varonce10!=NULL)) {
+var11 = varonce10;
 } else {
-{ /* Inline abstract_compiler#StaticFrame#arguments (var1) on <var1:nullable StaticFrame> */
-if (unlikely(var1 == NULL)) {
-PRINT_ERROR("Runtime error: %s", "Receiver is null");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1731);
-show_backtrace(1);
+var12 = "\\n\");";
+var13 = standard___standard__NativeString___to_s_with_length(var12, 5l);
+var11 = var13;
+varonce10 = var11;
 }
-var6 = var1->attrs[COLOR_nit__abstract_compiler__StaticFrame___arguments].val; /* _arguments on <var1:nullable StaticFrame> */
-if (unlikely(var6 == NULL)) {
-PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _arguments");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1731);
-show_backtrace(1);
+((struct instance_standard__NativeArray*)var1)->values[4]=var11;
+} else {
+var1 = varonce;
+varonce = NULL;
+}
+{
+var14 = standard__string___Object___class_name(self);
+}
+((struct instance_standard__NativeArray*)var1)->values[1]=var14;
+{
+{ /* Inline parser_nodes#ANode#location (self) on <self:AExpr> */
+var17 = self->attrs[COLOR_nit__parser_nodes__ANode___location].val; /* _location on <self:AExpr> */
+if (unlikely(var17 == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _location");
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 24);
+fatal_exit(1);
+}
+var15 = var17;
+RET_LABEL16:(void)0;
 }
-var4 = var6;
-RET_LABEL5:(void)0;
 }
+{
+var18 = nit___nit__Location___standard__string__Object__to_s(var15);
 }
+((struct instance_standard__NativeArray*)var1)->values[3]=var18;
 {
-var7 = standard___standard__SequenceRead___Collection__first(var4);
+var19 = ((val*(*)(val* self))(var1->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var1); /* native_to_s on <var1:NativeArray[String]>*/
 }
-var = var7;
-goto RET_LABEL;
-RET_LABEL:;
-return var;
+varonce = var1;
+{
+nit___nit__AbstractCompilerVisitor___add(var_v, var19); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <var_v:AbstractCompilerVisitor>*/
 }
-/* method abstract_compiler#AEscapeExpr#stmt for (self: AEscapeExpr, AbstractCompilerVisitor) */
-void nit__abstract_compiler___AEscapeExpr___AExpr__stmt(val* self, val* p0) {
-val* var_v /* var v: AbstractCompilerVisitor */;
-static val* varonce;
-val* var /* : String */;
-char* var1 /* : NativeString */;
-long var2 /* : Int */;
-val* var3 /* : FlatString */;
-val* var4 /* : nullable EscapeMark */;
-val* var6 /* : nullable EscapeMark */;
-val* var7 /* : String */;
-static val* varonce8;
-val* var9 /* : String */;
-char* var10 /* : NativeString */;
-long var11 /* : Int */;
-val* var12 /* : FlatString */;
-val* var13 /* : Array[Object] */;
-long var14 /* : Int */;
-val* var15 /* : NativeArray[Object] */;
-val* var16 /* : String */;
-var_v = p0;
-if (varonce) {
-var = varonce;
+{
+var20 = ((val*(*)(val* self))(self->class->vft[COLOR_nit__typing__AExpr__mtype]))(self); /* mtype on <self:AExpr>*/
+}
+var_mtype = var20;
+if (var_mtype == NULL) {
+var21 = 1; /* is null */
 } else {
-var1 = "goto BREAK_";
-var2 = 11;
-var3 = standard___standard__NativeString___to_s_with_length(var1, var2);
-var = var3;
-varonce = var;
+var21 = 0; /* arg is null but recv is not */
 }
+if (0) {
+{ /* Inline kernel#Object#== (var_mtype,((val*)NULL)) on <var_mtype:nullable MType> */
+var_other = ((val*)NULL);
 {
-{ /* Inline scope#AEscapeExpr#escapemark (self) on <self:AEscapeExpr> */
-var6 = self->attrs[COLOR_nit__scope__AEscapeExpr___escapemark].val; /* _escapemark on <self:AEscapeExpr> */
-var4 = var6;
-RET_LABEL5:(void)0;
+{ /* Inline kernel#Object#is_same_instance (var_mtype,var_other) on <var_mtype:nullable MType(MType)> */
+var26 = var_mtype == var_other;
+var24 = var26;
+goto RET_LABEL25;
+RET_LABEL25:(void)0;
 }
 }
+var22 = var24;
+goto RET_LABEL23;
+RET_LABEL23:(void)0;
+}
+var21 = var22;
+}
+if (var21){
+var = ((val*)NULL);
+goto RET_LABEL;
+} else {
 {
-var7 = nit___nit__AbstractCompilerVisitor___escapemark_name(var_v, var4);
+var27 = nit___nit__AbstractCompilerVisitor___new_var(var_v, var_mtype);
+}
+var_res = var27;
+if (unlikely(varonce28==NULL)) {
+var29 = NEW_standard__NativeArray(5l, &type_standard__NativeArray__standard__String);
+if (likely(varonce30!=NULL)) {
+var31 = varonce30;
+} else {
+var32 = "/* ";
+var33 = standard___standard__NativeString___to_s_with_length(var32, 3l);
+var31 = var33;
+varonce30 = var31;
+}
+((struct instance_standard__NativeArray*)var29)->values[0]=var31;
+if (likely(varonce34!=NULL)) {
+var35 = varonce34;
+} else {
+var36 = " = NOT YET ";
+var37 = standard___standard__NativeString___to_s_with_length(var36, 11l);
+var35 = var37;
+varonce34 = var35;
+}
+((struct instance_standard__NativeArray*)var29)->values[2]=var35;
+if (likely(varonce38!=NULL)) {
+var39 = varonce38;
+} else {
+var40 = " */";
+var41 = standard___standard__NativeString___to_s_with_length(var40, 3l);
+var39 = var41;
+varonce38 = var39;
 }
-if (varonce8) {
-var9 = varonce8;
+((struct instance_standard__NativeArray*)var29)->values[4]=var39;
 } else {
-var10 = ";";
-var11 = 1;
-var12 = standard___standard__NativeString___to_s_with_length(var10, var11);
-var9 = var12;
-varonce8 = var9;
+var29 = varonce28;
+varonce28 = NULL;
 }
-var13 = NEW_standard__Array(&type_standard__Array__standard__Object);
-{ /* var13 = array_instance Array[Object] */
-var14 = 3;
-var15 = NEW_standard__NativeArray(var14, &type_standard__NativeArray__standard__Object);
-((struct instance_standard__NativeArray*)var15)->values[0] = (val*) var;
-((struct instance_standard__NativeArray*)var15)->values[1] = (val*) var7;
-((struct instance_standard__NativeArray*)var15)->values[2] = (val*) var9;
 {
-((void (*)(val* self, val* p0, long p1))(var13->class->vft[COLOR_standard__array__Array__with_native]))(var13, var15, var14) /* with_native on <var13:Array[Object]>*/;
+var42 = ((val*(*)(val* self))(var_res->class->vft[COLOR_standard__string__Object__to_s]))(var_res); /* to_s on <var_res:RuntimeVariable>*/
 }
+((struct instance_standard__NativeArray*)var29)->values[1]=var42;
+{
+var43 = standard__string___Object___class_name(self);
 }
+((struct instance_standard__NativeArray*)var29)->values[3]=var43;
 {
-var16 = ((val* (*)(val* self))(var13->class->vft[COLOR_standard__string__Object__to_s]))(var13) /* to_s on <var13:Array[Object]>*/;
+var44 = ((val*(*)(val* self))(var29->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var29); /* native_to_s on <var29:NativeArray[String]>*/
 }
+varonce28 = var29;
 {
-nit___nit__AbstractCompilerVisitor___add(var_v, var16); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <var_v:AbstractCompilerVisitor>*/
+nit___nit__AbstractCompilerVisitor___add(var_v, var44); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <var_v:AbstractCompilerVisitor>*/
+}
+var = var_res;
+goto RET_LABEL;
 }
 RET_LABEL:;
+return var;
 }
-/* method abstract_compiler#AReturnExpr#stmt for (self: AReturnExpr, AbstractCompilerVisitor) */
-void nit__abstract_compiler___AReturnExpr___AExpr__stmt(val* self, val* p0) {
+/* method abstract_compiler#AExpr#stmt for (self: AExpr, AbstractCompilerVisitor) */
+void nit__abstract_compiler___AExpr___stmt(val* self, val* p0) {
 val* var_v /* var v: AbstractCompilerVisitor */;
-val* var /* : nullable AExpr */;
-val* var2 /* : nullable AExpr */;
-val* var_nexpr /* var nexpr: nullable AExpr */;
-val* var3 /* : null */;
-short int var4 /* : Bool */;
+val* var /* : nullable RuntimeVariable */;
+var_v = p0;
+{
+var = ((val*(*)(val* self, val* p0))(self->class->vft[COLOR_nit__abstract_compiler__AExpr__expr]))(self, var_v); /* expr on <self:AExpr>*/
+}
+RET_LABEL:;
+}
+/* method abstract_compiler#ABlockExpr#stmt for (self: ABlockExpr, AbstractCompilerVisitor) */
+void nit__abstract_compiler___ABlockExpr___AExpr__stmt(val* self, val* p0) {
+val* var_v /* var v: AbstractCompilerVisitor */;
+val* var /* : ANodes[AExpr] */;
+val* var2 /* : ANodes[AExpr] */;
+val* var_ /* var : ANodes[AExpr] */;
+val* var3 /* : Iterator[ANode] */;
+val* var_4 /* var : Iterator[AExpr] */;
 short int var5 /* : Bool */;
-val* var_other /* var other: nullable Object */;
-short int var7 /* : Bool */;
-short int var8 /* : Bool */;
-val* var9 /* : nullable StaticFrame */;
-val* var11 /* : nullable StaticFrame */;
-val* var12 /* : nullable RuntimeVariable */;
-val* var14 /* : nullable RuntimeVariable */;
-val* var_returnvar /* var returnvar: RuntimeVariable */;
-val* var15 /* : MType */;
-val* var17 /* : MType */;
-val* var18 /* : RuntimeVariable */;
-val* var_i /* var i: RuntimeVariable */;
-static val* varonce;
-val* var19 /* : String */;
-char* var20 /* : NativeString */;
-long var21 /* : Int */;
-val* var22 /* : FlatString */;
-val* var23 /* : nullable StaticFrame */;
-val* var25 /* : nullable StaticFrame */;
-val* var26 /* : nullable String */;
-val* var28 /* : nullable String */;
-static val* varonce29;
-val* var30 /* : String */;
-char* var31 /* : NativeString */;
-long var32 /* : Int */;
-val* var33 /* : FlatString */;
-val* var34 /* : Array[Object] */;
-long var35 /* : Int */;
-val* var36 /* : NativeArray[Object] */;
-val* var37 /* : String */;
+val* var6 /* : nullable Object */;
+val* var_e /* var e: AExpr */;
 var_v = p0;
 {
-{ /* Inline parser_nodes#AReturnExpr#n_expr (self) on <self:AReturnExpr> */
-var2 = self->attrs[COLOR_nit__parser_nodes__AReturnExpr___n_expr].val; /* _n_expr on <self:AReturnExpr> */
+{ /* Inline parser_nodes#ABlockExpr#n_expr (self) on <self:ABlockExpr> */
+var2 = self->attrs[COLOR_nit__parser_nodes__ABlockExpr___n_expr].val; /* _n_expr on <self:ABlockExpr> */
+if (unlikely(var2 == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 1758);
+fatal_exit(1);
+}
 var = var2;
 RET_LABEL1:(void)0;
 }
 }
-var_nexpr = var;
-var3 = NULL;
-if (var_nexpr == NULL) {
-var4 = 0; /* is null */
-} else {
-var4 = 1; /* arg is null and recv is not */
-}
-if (0) {
-{ /* Inline kernel#Object#!= (var_nexpr,var3) on <var_nexpr:nullable AExpr> */
-var_other = var3;
+var_ = var;
 {
-var7 = ((short int (*)(val* self, val* p0))(var_nexpr->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_nexpr, var_other) /* == on <var_nexpr:nullable AExpr(AExpr)>*/;
+var3 = nit___nit__ANodes___standard__abstract_collection__Collection__iterator(var_);
 }
-var8 = !var7;
-var5 = var8;
-goto RET_LABEL6;
-RET_LABEL6:(void)0;
+var_4 = var3;
+for(;;) {
+{
+var5 = ((short int(*)(val* self))((((long)var_4&3)?class_info[((long)var_4&3)]:var_4->class)->vft[COLOR_standard__abstract_collection__Iterator__is_ok]))(var_4); /* is_ok on <var_4:Iterator[AExpr]>*/
 }
-var4 = var5;
+if (var5){
+{
+var6 = ((val*(*)(val* self))((((long)var_4&3)?class_info[((long)var_4&3)]:var_4->class)->vft[COLOR_standard__abstract_collection__Iterator__item]))(var_4); /* item on <var_4:Iterator[AExpr]>*/
 }
-if (var4){
+var_e = var6;
 {
-{ /* Inline abstract_compiler#AbstractCompilerVisitor#frame (var_v) on <var_v:AbstractCompilerVisitor> */
-var11 = var_v->attrs[COLOR_nit__abstract_compiler__AbstractCompilerVisitor___frame].val; /* _frame on <var_v:AbstractCompilerVisitor> */
-var9 = var11;
-RET_LABEL10:(void)0;
+nit___nit__AbstractCompilerVisitor___stmt(var_v, var_e); /* Direct call abstract_compiler#AbstractCompilerVisitor#stmt on <var_v:AbstractCompilerVisitor>*/
 }
+{
+((void(*)(val* self))((((long)var_4&3)?class_info[((long)var_4&3)]:var_4->class)->vft[COLOR_standard__abstract_collection__Iterator__next]))(var_4); /* next on <var_4:Iterator[AExpr]>*/
 }
-if (var9 == NULL) {
-PRINT_ERROR("Runtime error: %s", "Receiver is null");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 2476);
-show_backtrace(1);
 } else {
-{ /* Inline abstract_compiler#StaticFrame#returnvar (var9) on <var9:nullable StaticFrame> */
-if (unlikely(var9 == NULL)) {
-PRINT_ERROR("Runtime error: %s", "Receiver is null");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1734);
-show_backtrace(1);
+goto BREAK_label;
 }
-var14 = var9->attrs[COLOR_nit__abstract_compiler__StaticFrame___returnvar].val; /* _returnvar on <var9:nullable StaticFrame> */
-var12 = var14;
-RET_LABEL13:(void)0;
 }
+BREAK_label: (void)0;
+{
+((void(*)(val* self))((((long)var_4&3)?class_info[((long)var_4&3)]:var_4->class)->vft[COLOR_standard__abstract_collection__Iterator__finish]))(var_4); /* finish on <var_4:Iterator[AExpr]>*/
 }
-if (unlikely(var12 == NULL)) {
-PRINT_ERROR("Runtime error: %s", "Cast failed");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 2476);
-show_backtrace(1);
+RET_LABEL:;
 }
-var_returnvar = var12;
+/* method abstract_compiler#ABlockExpr#expr for (self: ABlockExpr, AbstractCompilerVisitor): nullable RuntimeVariable */
+val* nit__abstract_compiler___ABlockExpr___AExpr__expr(val* self, val* p0) {
+val* var /* : nullable RuntimeVariable */;
+val* var_v /* var v: AbstractCompilerVisitor */;
+val* var1 /* : ANodes[AExpr] */;
+val* var3 /* : ANodes[AExpr] */;
+val* var4 /* : nullable Object */;
+val* var_last /* var last: AExpr */;
+val* var5 /* : ANodes[AExpr] */;
+val* var7 /* : ANodes[AExpr] */;
+val* var_ /* var : ANodes[AExpr] */;
+val* var8 /* : Iterator[ANode] */;
+val* var_9 /* var : Iterator[AExpr] */;
+short int var10 /* : Bool */;
+val* var11 /* : nullable Object */;
+val* var_e /* var e: AExpr */;
+short int var12 /* : Bool */;
+val* var_other /* var other: nullable Object */;
+short int var14 /* : Bool */;
+short int var16 /* : Bool */;
+val* var17 /* : RuntimeVariable */;
+var_v = p0;
 {
-{ /* Inline abstract_compiler#RuntimeVariable#mtype (var_returnvar) on <var_returnvar:RuntimeVariable> */
-var17 = var_returnvar->attrs[COLOR_nit__abstract_compiler__RuntimeVariable___mtype].val; /* _mtype on <var_returnvar:RuntimeVariable> */
-if (unlikely(var17 == NULL)) {
-PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1680);
-show_backtrace(1);
+{ /* Inline parser_nodes#ABlockExpr#n_expr (self) on <self:ABlockExpr> */
+var3 = self->attrs[COLOR_nit__parser_nodes__ABlockExpr___n_expr].val; /* _n_expr on <self:ABlockExpr> */
+if (unlikely(var3 == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 1758);
+fatal_exit(1);
 }
-var15 = var17;
-RET_LABEL16:(void)0;
+var1 = var3;
+RET_LABEL2:(void)0;
 }
 }
 {
-var18 = nit___nit__AbstractCompilerVisitor___expr(var_v, var_nexpr, var15);
+var4 = standard___standard__SequenceRead___last(var1);
 }
-var_i = var18;
+var_last = var4;
 {
-nit___nit__AbstractCompilerVisitor___assign(var_v, var_returnvar, var_i); /* Direct call abstract_compiler#AbstractCompilerVisitor#assign on <var_v:AbstractCompilerVisitor>*/
+{ /* Inline parser_nodes#ABlockExpr#n_expr (self) on <self:ABlockExpr> */
+var7 = self->attrs[COLOR_nit__parser_nodes__ABlockExpr___n_expr].val; /* _n_expr on <self:ABlockExpr> */
+if (unlikely(var7 == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 1758);
+fatal_exit(1);
 }
-} else {
+var5 = var7;
+RET_LABEL6:(void)0;
 }
-if (varonce) {
-var19 = varonce;
-} else {
-var20 = "goto ";
-var21 = 5;
-var22 = standard___standard__NativeString___to_s_with_length(var20, var21);
-var19 = var22;
-varonce = var19;
 }
+var_ = var5;
 {
-{ /* Inline abstract_compiler#AbstractCompilerVisitor#frame (var_v) on <var_v:AbstractCompilerVisitor> */
-var25 = var_v->attrs[COLOR_nit__abstract_compiler__AbstractCompilerVisitor___frame].val; /* _frame on <var_v:AbstractCompilerVisitor> */
-var23 = var25;
-RET_LABEL24:(void)0;
+var8 = nit___nit__ANodes___standard__abstract_collection__Collection__iterator(var_);
 }
+var_9 = var8;
+for(;;) {
+{
+var10 = ((short int(*)(val* self))((((long)var_9&3)?class_info[((long)var_9&3)]:var_9->class)->vft[COLOR_standard__abstract_collection__Iterator__is_ok]))(var_9); /* is_ok on <var_9:Iterator[AExpr]>*/
 }
-if (var23 == NULL) {
-PRINT_ERROR("Runtime error: %s", "Receiver is null");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 2480);
-show_backtrace(1);
-} else {
-{ /* Inline abstract_compiler#StaticFrame#returnlabel (var23) on <var23:nullable StaticFrame> */
-if (unlikely(var23 == NULL)) {
-PRINT_ERROR("Runtime error: %s", "Receiver is null");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1737);
-show_backtrace(1);
+if (var10){
+{
+var11 = ((val*(*)(val* self))((((long)var_9&3)?class_info[((long)var_9&3)]:var_9->class)->vft[COLOR_standard__abstract_collection__Iterator__item]))(var_9); /* item on <var_9:Iterator[AExpr]>*/
 }
-var28 = var23->attrs[COLOR_nit__abstract_compiler__StaticFrame___returnlabel].val; /* _returnlabel on <var23:nullable StaticFrame> */
-var26 = var28;
-RET_LABEL27:(void)0;
+var_e = var11;
+{
+{ /* Inline kernel#Object#== (var_e,var_last) on <var_e:AExpr> */
+var_other = var_last;
+{
+{ /* Inline kernel#Object#is_same_instance (var_e,var_other) on <var_e:AExpr> */
+var16 = var_e == var_other;
+var14 = var16;
+goto RET_LABEL15;
+RET_LABEL15:(void)0;
 }
 }
-if (unlikely(var26 == NULL)) {
-PRINT_ERROR("Runtime error: %s", "Cast failed");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 2480);
-show_backtrace(1);
+var12 = var14;
+goto RET_LABEL13;
+RET_LABEL13:(void)0;
 }
-if (varonce29) {
-var30 = varonce29;
+}
+if (var12){
+goto BREAK_label;
 } else {
-var31 = ";";
-var32 = 1;
-var33 = standard___standard__NativeString___to_s_with_length(var31, var32);
-var30 = var33;
-varonce29 = var30;
 }
-var34 = NEW_standard__Array(&type_standard__Array__standard__Object);
-{ /* var34 = array_instance Array[Object] */
-var35 = 3;
-var36 = NEW_standard__NativeArray(var35, &type_standard__NativeArray__standard__Object);
-((struct instance_standard__NativeArray*)var36)->values[0] = (val*) var19;
-((struct instance_standard__NativeArray*)var36)->values[1] = (val*) var26;
-((struct instance_standard__NativeArray*)var36)->values[2] = (val*) var30;
 {
-((void (*)(val* self, val* p0, long p1))(var34->class->vft[COLOR_standard__array__Array__with_native]))(var34, var36, var35) /* with_native on <var34:Array[Object]>*/;
-}
+nit___nit__AbstractCompilerVisitor___stmt(var_v, var_e); /* Direct call abstract_compiler#AbstractCompilerVisitor#stmt on <var_v:AbstractCompilerVisitor>*/
 }
 {
-var37 = ((val* (*)(val* self))(var34->class->vft[COLOR_standard__string__Object__to_s]))(var34) /* to_s on <var34:Array[Object]>*/;
+((void(*)(val* self))((((long)var_9&3)?class_info[((long)var_9&3)]:var_9->class)->vft[COLOR_standard__abstract_collection__Iterator__next]))(var_9); /* next on <var_9:Iterator[AExpr]>*/
 }
-{
-nit___nit__AbstractCompilerVisitor___add(var_v, var37); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <var_v:AbstractCompilerVisitor>*/
+} else {
+goto BREAK_label;
 }
-RET_LABEL:;
 }
-/* method abstract_compiler#AAbortExpr#stmt for (self: AAbortExpr, AbstractCompilerVisitor) */
-void nit__abstract_compiler___AAbortExpr___AExpr__stmt(val* self, val* p0) {
-val* var_v /* var v: AbstractCompilerVisitor */;
-static val* varonce;
-val* var /* : String */;
-char* var1 /* : NativeString */;
-long var2 /* : Int */;
-val* var3 /* : FlatString */;
-var_v = p0;
-if (varonce) {
-var = varonce;
-} else {
-var1 = "Aborted";
-var2 = 7;
-var3 = standard___standard__NativeString___to_s_with_length(var1, var2);
-var = var3;
-varonce = var;
+BREAK_label: (void)0;
+{
+((void(*)(val* self))((((long)var_9&3)?class_info[((long)var_9&3)]:var_9->class)->vft[COLOR_standard__abstract_collection__Iterator__finish]))(var_9); /* finish on <var_9:Iterator[AExpr]>*/
 }
 {
-nit___nit__AbstractCompilerVisitor___add_abort(var_v, var); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_abort on <var_v:AbstractCompilerVisitor>*/
+var17 = nit___nit__AbstractCompilerVisitor___expr(var_v, var_last, ((val*)NULL));
 }
+var = var17;
+goto RET_LABEL;
 RET_LABEL:;
+return var;
 }
-/* method abstract_compiler#AIfExpr#stmt for (self: AIfExpr, AbstractCompilerVisitor) */
-void nit__abstract_compiler___AIfExpr___AExpr__stmt(val* self, val* p0) {
+/* method abstract_compiler#AVardeclExpr#stmt for (self: AVardeclExpr, AbstractCompilerVisitor) */
+void nit__abstract_compiler___AVardeclExpr___AExpr__stmt(val* self, val* p0) {
 val* var_v /* var v: AbstractCompilerVisitor */;
-val* var /* : AExpr */;
-val* var2 /* : AExpr */;
-val* var3 /* : RuntimeVariable */;
-val* var_cond /* var cond: RuntimeVariable */;
-static val* varonce;
-val* var4 /* : String */;
-char* var5 /* : NativeString */;
-long var6 /* : Int */;
-val* var7 /* : FlatString */;
-static val* varonce8;
-val* var9 /* : String */;
-char* var10 /* : NativeString */;
-long var11 /* : Int */;
-val* var12 /* : FlatString */;
-val* var13 /* : Array[Object] */;
-long var14 /* : Int */;
-val* var15 /* : NativeArray[Object] */;
-val* var16 /* : String */;
-val* var17 /* : nullable AExpr */;
-val* var19 /* : nullable AExpr */;
-static val* varonce20;
-val* var21 /* : String */;
-char* var22 /* : NativeString */;
-long var23 /* : Int */;
-val* var24 /* : FlatString */;
-val* var25 /* : nullable AExpr */;
-val* var27 /* : nullable AExpr */;
-static val* varonce28;
-val* var29 /* : String */;
-char* var30 /* : NativeString */;
-long var31 /* : Int */;
-val* var32 /* : FlatString */;
+val* var /* : nullable Variable */;
+val* var2 /* : nullable Variable */;
+val* var_variable /* var variable: Variable */;
+val* var3 /* : nullable AExpr */;
+val* var5 /* : nullable AExpr */;
+val* var_ne /* var ne: nullable AExpr */;
+short int var6 /* : Bool */;
+short int var7 /* : Bool */;
+val* var_other /* var other: nullable Object */;
+short int var9 /* : Bool */;
+short int var10 /* : Bool */;
+val* var11 /* : nullable MType */;
+val* var13 /* : nullable MType */;
+val* var14 /* : RuntimeVariable */;
+val* var_i /* var i: RuntimeVariable */;
+val* var15 /* : RuntimeVariable */;
 var_v = p0;
 {
-{ /* Inline parser_nodes#AIfExpr#n_expr (self) on <self:AIfExpr> */
-var2 = self->attrs[COLOR_nit__parser_nodes__AIfExpr___n_expr].val; /* _n_expr on <self:AIfExpr> */
-if (unlikely(var2 == NULL)) {
-PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 1664);
-show_backtrace(1);
-}
+{ /* Inline scope#AVardeclExpr#variable (self) on <self:AVardeclExpr> */
+var2 = self->attrs[COLOR_nit__scope__AVardeclExpr___variable].val; /* _variable on <self:AVardeclExpr> */
 var = var2;
 RET_LABEL1:(void)0;
 }
 }
+if (unlikely(var == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Cast failed");
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 2617);
+fatal_exit(1);
+}
+var_variable = var;
 {
-var3 = nit___nit__AbstractCompilerVisitor___expr_bool(var_v, var);
+{ /* Inline parser_nodes#AVardeclExpr#n_expr (self) on <self:AVardeclExpr> */
+var5 = self->attrs[COLOR_nit__parser_nodes__AVardeclExpr___n_expr].val; /* _n_expr on <self:AVardeclExpr> */
+var3 = var5;
+RET_LABEL4:(void)0;
 }
-var_cond = var3;
-if (varonce) {
-var4 = varonce;
-} else {
-var5 = "if (";
-var6 = 4;
-var7 = standard___standard__NativeString___to_s_with_length(var5, var6);
-var4 = var7;
-varonce = var4;
 }
-if (varonce8) {
-var9 = varonce8;
+var_ne = var3;
+if (var_ne == NULL) {
+var6 = 0; /* is null */
 } else {
-var10 = "){";
-var11 = 2;
-var12 = standard___standard__NativeString___to_s_with_length(var10, var11);
-var9 = var12;
-varonce8 = var9;
+var6 = 1; /* arg is null and recv is not */
 }
-var13 = NEW_standard__Array(&type_standard__Array__standard__Object);
-{ /* var13 = array_instance Array[Object] */
-var14 = 3;
-var15 = NEW_standard__NativeArray(var14, &type_standard__NativeArray__standard__Object);
-((struct instance_standard__NativeArray*)var15)->values[0] = (val*) var4;
-((struct instance_standard__NativeArray*)var15)->values[1] = (val*) var_cond;
-((struct instance_standard__NativeArray*)var15)->values[2] = (val*) var9;
+if (0) {
+{ /* Inline kernel#Object#!= (var_ne,((val*)NULL)) on <var_ne:nullable AExpr> */
+var_other = ((val*)NULL);
 {
-((void (*)(val* self, val* p0, long p1))(var13->class->vft[COLOR_standard__array__Array__with_native]))(var13, var15, var14) /* with_native on <var13:Array[Object]>*/;
+var9 = ((short int(*)(val* self, val* p0))(var_ne->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_ne, var_other); /* == on <var_ne:nullable AExpr(AExpr)>*/
 }
+var10 = !var9;
+var7 = var10;
+goto RET_LABEL8;
+RET_LABEL8:(void)0;
 }
-{
-var16 = ((val* (*)(val* self))(var13->class->vft[COLOR_standard__string__Object__to_s]))(var13) /* to_s on <var13:Array[Object]>*/;
+var6 = var7;
 }
+if (var6){
 {
-nit___nit__AbstractCompilerVisitor___add(var_v, var16); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <var_v:AbstractCompilerVisitor>*/
+{ /* Inline typing#Variable#declared_type (var_variable) on <var_variable:Variable> */
+var13 = var_variable->attrs[COLOR_nit__typing__Variable___declared_type].val; /* _declared_type on <var_variable:Variable> */
+var11 = var13;
+RET_LABEL12:(void)0;
+}
 }
 {
-{ /* Inline parser_nodes#AIfExpr#n_then (self) on <self:AIfExpr> */
-var19 = self->attrs[COLOR_nit__parser_nodes__AIfExpr___n_then].val; /* _n_then on <self:AIfExpr> */
-var17 = var19;
-RET_LABEL18:(void)0;
+var14 = nit___nit__AbstractCompilerVisitor___expr(var_v, var_ne, var11);
 }
+var_i = var14;
+{
+var15 = nit___nit__AbstractCompilerVisitor___variable(var_v, var_variable);
 }
 {
-nit___nit__AbstractCompilerVisitor___stmt(var_v, var17); /* Direct call abstract_compiler#AbstractCompilerVisitor#stmt on <var_v:AbstractCompilerVisitor>*/
+nit___nit__AbstractCompilerVisitor___assign(var_v, var15, var_i); /* Direct call abstract_compiler#AbstractCompilerVisitor#assign on <var_v:AbstractCompilerVisitor>*/
 }
-if (varonce20) {
-var21 = varonce20;
 } else {
-var22 = "} else {";
-var23 = 8;
-var24 = standard___standard__NativeString___to_s_with_length(var22, var23);
-var21 = var24;
-varonce20 = var21;
 }
-{
-nit___nit__AbstractCompilerVisitor___add(var_v, var21); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <var_v:AbstractCompilerVisitor>*/
+RET_LABEL:;
 }
+/* method abstract_compiler#AVarExpr#expr for (self: AVarExpr, AbstractCompilerVisitor): nullable RuntimeVariable */
+val* nit__abstract_compiler___AVarExpr___AExpr__expr(val* self, val* p0) {
+val* var /* : nullable RuntimeVariable */;
+val* var_v /* var v: AbstractCompilerVisitor */;
+val* var1 /* : nullable Variable */;
+val* var3 /* : nullable Variable */;
+val* var4 /* : RuntimeVariable */;
+val* var_res /* var res: RuntimeVariable */;
+val* var5 /* : nullable MType */;
+val* var7 /* : nullable MType */;
+val* var_mtype /* var mtype: MType */;
+val* var8 /* : RuntimeVariable */;
+var_v = p0;
 {
-{ /* Inline parser_nodes#AIfExpr#n_else (self) on <self:AIfExpr> */
-var27 = self->attrs[COLOR_nit__parser_nodes__AIfExpr___n_else].val; /* _n_else on <self:AIfExpr> */
-var25 = var27;
-RET_LABEL26:(void)0;
+{ /* Inline scope#AVarFormExpr#variable (self) on <self:AVarExpr> */
+var3 = self->attrs[COLOR_nit__scope__AVarFormExpr___variable].val; /* _variable on <self:AVarExpr> */
+var1 = var3;
+RET_LABEL2:(void)0;
+}
 }
+if (unlikely(var1 == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Cast failed");
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 2629);
+fatal_exit(1);
 }
 {
-nit___nit__AbstractCompilerVisitor___stmt(var_v, var25); /* Direct call abstract_compiler#AbstractCompilerVisitor#stmt on <var_v:AbstractCompilerVisitor>*/
+var4 = nit___nit__AbstractCompilerVisitor___variable(var_v, var1);
 }
-if (varonce28) {
-var29 = varonce28;
-} else {
-var30 = "}";
-var31 = 1;
-var32 = standard___standard__NativeString___to_s_with_length(var30, var31);
-var29 = var32;
-varonce28 = var29;
+var_res = var4;
+{
+{ /* Inline typing#AExpr#mtype (self) on <self:AVarExpr> */
+var7 = self->attrs[COLOR_nit__typing__AExpr___mtype].val; /* _mtype on <self:AVarExpr> */
+var5 = var7;
+RET_LABEL6:(void)0;
 }
+}
+if (unlikely(var5 == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Cast failed");
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 2630);
+fatal_exit(1);
+}
+var_mtype = var5;
 {
-nit___nit__AbstractCompilerVisitor___add(var_v, var29); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <var_v:AbstractCompilerVisitor>*/
+var8 = nit___nit__AbstractCompilerVisitor___autoadapt(var_v, var_res, var_mtype);
 }
+var = var8;
+goto RET_LABEL;
 RET_LABEL:;
+return var;
 }
-/* method abstract_compiler#AIfExpr#expr for (self: AIfExpr, AbstractCompilerVisitor): nullable RuntimeVariable */
-val* nit__abstract_compiler___AIfExpr___AExpr__expr(val* self, val* p0) {
+/* method abstract_compiler#AVarAssignExpr#expr for (self: AVarAssignExpr, AbstractCompilerVisitor): nullable RuntimeVariable */
+val* nit__abstract_compiler___AVarAssignExpr___AExpr__expr(val* self, val* p0) {
 val* var /* : nullable RuntimeVariable */;
 val* var_v /* var v: AbstractCompilerVisitor */;
-val* var1 /* : nullable MType */;
-val* var3 /* : nullable MType */;
-val* var4 /* : RuntimeVariable */;
-val* var_res /* var res: RuntimeVariable */;
-val* var5 /* : AExpr */;
-val* var7 /* : AExpr */;
-val* var8 /* : RuntimeVariable */;
-val* var_cond /* var cond: RuntimeVariable */;
-static val* varonce;
-val* var9 /* : String */;
-char* var10 /* : NativeString */;
-long var11 /* : Int */;
-val* var12 /* : FlatString */;
-static val* varonce13;
-val* var14 /* : String */;
-char* var15 /* : NativeString */;
-long var16 /* : Int */;
-val* var17 /* : FlatString */;
-val* var18 /* : Array[Object] */;
-long var19 /* : Int */;
-val* var20 /* : NativeArray[Object] */;
-val* var21 /* : String */;
-val* var22 /* : nullable AExpr */;
-val* var24 /* : nullable AExpr */;
-val* var25 /* : null */;
-val* var26 /* : RuntimeVariable */;
-static val* varonce27;
-val* var28 /* : String */;
-char* var29 /* : NativeString */;
-long var30 /* : Int */;
-val* var31 /* : FlatString */;
-val* var32 /* : nullable AExpr */;
-val* var34 /* : nullable AExpr */;
-val* var35 /* : null */;
-val* var36 /* : RuntimeVariable */;
-static val* varonce37;
-val* var38 /* : String */;
-char* var39 /* : NativeString */;
-long var40 /* : Int */;
-val* var41 /* : FlatString */;
+val* var1 /* : nullable Variable */;
+val* var3 /* : nullable Variable */;
+val* var_variable /* var variable: Variable */;
+val* var4 /* : AExpr */;
+val* var6 /* : AExpr */;
+val* var7 /* : nullable MType */;
+val* var9 /* : nullable MType */;
+val* var10 /* : RuntimeVariable */;
+val* var_i /* var i: RuntimeVariable */;
+val* var11 /* : RuntimeVariable */;
 var_v = p0;
 {
-{ /* Inline typing#AExpr#mtype (self) on <self:AIfExpr> */
-var3 = self->attrs[COLOR_nit__typing__AExpr___mtype].val; /* _mtype on <self:AIfExpr> */
+{ /* Inline scope#AVarFormExpr#variable (self) on <self:AVarAssignExpr> */
+var3 = self->attrs[COLOR_nit__scope__AVarFormExpr___variable].val; /* _variable on <self:AVarAssignExpr> */
 var1 = var3;
 RET_LABEL2:(void)0;
 }
 }
 if (unlikely(var1 == NULL)) {
 PRINT_ERROR("Runtime error: %s", "Cast failed");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 2501);
-show_backtrace(1);
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 2638);
+fatal_exit(1);
 }
+var_variable = var1;
 {
-var4 = nit___nit__AbstractCompilerVisitor___new_var(var_v, var1);
+{ /* Inline parser_nodes#AAssignFormExpr#n_value (self) on <self:AVarAssignExpr> */
+var6 = self->attrs[COLOR_nit__parser_nodes__AAssignFormExpr___n_value].val; /* _n_value on <self:AVarAssignExpr> */
+if (unlikely(var6 == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_value");
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 1995);
+fatal_exit(1);
+}
+var4 = var6;
+RET_LABEL5:(void)0;
+}
 }
-var_res = var4;
 {
-{ /* Inline parser_nodes#AIfExpr#n_expr (self) on <self:AIfExpr> */
-var7 = self->attrs[COLOR_nit__parser_nodes__AIfExpr___n_expr].val; /* _n_expr on <self:AIfExpr> */
-if (unlikely(var7 == NULL)) {
-PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 1664);
-show_backtrace(1);
+{ /* Inline typing#Variable#declared_type (var_variable) on <var_variable:Variable> */
+var9 = var_variable->attrs[COLOR_nit__typing__Variable___declared_type].val; /* _declared_type on <var_variable:Variable> */
+var7 = var9;
+RET_LABEL8:(void)0;
 }
-var5 = var7;
-RET_LABEL6:(void)0;
 }
+{
+var10 = nit___nit__AbstractCompilerVisitor___expr(var_v, var4, var7);
 }
+var_i = var10;
 {
-var8 = nit___nit__AbstractCompilerVisitor___expr_bool(var_v, var5);
+var11 = nit___nit__AbstractCompilerVisitor___variable(var_v, var_variable);
 }
-var_cond = var8;
-if (varonce) {
-var9 = varonce;
-} else {
-var10 = "if (";
-var11 = 4;
-var12 = standard___standard__NativeString___to_s_with_length(var10, var11);
-var9 = var12;
-varonce = var9;
+{
+nit___nit__AbstractCompilerVisitor___assign(var_v, var11, var_i); /* Direct call abstract_compiler#AbstractCompilerVisitor#assign on <var_v:AbstractCompilerVisitor>*/
 }
-if (varonce13) {
-var14 = varonce13;
-} else {
-var15 = "){";
-var16 = 2;
-var17 = standard___standard__NativeString___to_s_with_length(var15, var16);
-var14 = var17;
-varonce13 = var14;
+var = var_i;
+goto RET_LABEL;
+RET_LABEL:;
+return var;
 }
-var18 = NEW_standard__Array(&type_standard__Array__standard__Object);
-{ /* var18 = array_instance Array[Object] */
-var19 = 3;
-var20 = NEW_standard__NativeArray(var19, &type_standard__NativeArray__standard__Object);
-((struct instance_standard__NativeArray*)var20)->values[0] = (val*) var9;
-((struct instance_standard__NativeArray*)var20)->values[1] = (val*) var_cond;
-((struct instance_standard__NativeArray*)var20)->values[2] = (val*) var14;
+/* method abstract_compiler#AVarReassignExpr#stmt for (self: AVarReassignExpr, AbstractCompilerVisitor) */
+void nit__abstract_compiler___AVarReassignExpr___AExpr__stmt(val* self, val* p0) {
+val* var_v /* var v: AbstractCompilerVisitor */;
+val* var /* : nullable Variable */;
+val* var2 /* : nullable Variable */;
+val* var_variable /* var variable: Variable */;
+val* var3 /* : RuntimeVariable */;
+val* var_vari /* var vari: RuntimeVariable */;
+val* var4 /* : AExpr */;
+val* var6 /* : AExpr */;
+val* var7 /* : nullable MType */;
+val* var9 /* : nullable MType */;
+val* var10 /* : RuntimeVariable */;
+val* var_value /* var value: RuntimeVariable */;
+val* var11 /* : nullable CallSite */;
+val* var13 /* : nullable CallSite */;
+val* var14 /* : Array[RuntimeVariable] */;
+val* var_ /* var : Array[RuntimeVariable] */;
+val* var15 /* : nullable RuntimeVariable */;
+val* var_res /* var res: nullable RuntimeVariable */;
+short int var16 /* : Bool */;
+short int var17 /* : Bool */;
+val* var_other /* var other: nullable Object */;
+short int var19 /* : Bool */;
+short int var20 /* : Bool */;
+val* var21 /* : RuntimeVariable */;
+var_v = p0;
 {
-((void (*)(val* self, val* p0, long p1))(var18->class->vft[COLOR_standard__array__Array__with_native]))(var18, var20, var19) /* with_native on <var18:Array[Object]>*/;
+{ /* Inline scope#AVarFormExpr#variable (self) on <self:AVarReassignExpr> */
+var2 = self->attrs[COLOR_nit__scope__AVarFormExpr___variable].val; /* _variable on <self:AVarReassignExpr> */
+var = var2;
+RET_LABEL1:(void)0;
 }
 }
+if (unlikely(var == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Cast failed");
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 2648);
+fatal_exit(1);
+}
+var_variable = var;
 {
-var21 = ((val* (*)(val* self))(var18->class->vft[COLOR_standard__string__Object__to_s]))(var18) /* to_s on <var18:Array[Object]>*/;
+var3 = nit___nit__AbstractCompilerVisitor___variable(var_v, var_variable);
 }
+var_vari = var3;
 {
-nit___nit__AbstractCompilerVisitor___add(var_v, var21); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <var_v:AbstractCompilerVisitor>*/
+{ /* Inline parser_nodes#AReassignFormExpr#n_value (self) on <self:AVarReassignExpr> */
+var6 = self->attrs[COLOR_nit__parser_nodes__AReassignFormExpr___n_value].val; /* _n_value on <self:AVarReassignExpr> */
+if (unlikely(var6 == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_value");
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 2006);
+fatal_exit(1);
+}
+var4 = var6;
+RET_LABEL5:(void)0;
+}
 }
 {
-{ /* Inline parser_nodes#AIfExpr#n_then (self) on <self:AIfExpr> */
-var24 = self->attrs[COLOR_nit__parser_nodes__AIfExpr___n_then].val; /* _n_then on <self:AIfExpr> */
-var22 = var24;
-RET_LABEL23:(void)0;
+{ /* Inline typing#Variable#declared_type (var_variable) on <var_variable:Variable> */
+var9 = var_variable->attrs[COLOR_nit__typing__Variable___declared_type].val; /* _declared_type on <var_variable:Variable> */
+var7 = var9;
+RET_LABEL8:(void)0;
+}
+}
+{
+var10 = nit___nit__AbstractCompilerVisitor___expr(var_v, var4, var7);
+}
+var_value = var10;
+{
+{ /* Inline typing#AReassignFormExpr#reassign_callsite (self) on <self:AVarReassignExpr> */
+var13 = self->attrs[COLOR_nit__typing__AReassignFormExpr___reassign_callsite].val; /* _reassign_callsite on <self:AVarReassignExpr> */
+var11 = var13;
+RET_LABEL12:(void)0;
 }
 }
-if (unlikely(var22 == NULL)) {
+if (unlikely(var11 == NULL)) {
 PRINT_ERROR("Runtime error: %s", "Cast failed");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 2504);
-show_backtrace(1);
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 2651);
+fatal_exit(1);
 }
-var25 = NULL;
+var14 = NEW_standard__Array(&type_standard__Array__nit__RuntimeVariable);
 {
-var26 = nit___nit__AbstractCompilerVisitor___expr(var_v, var22, var25);
+standard___standard__Array___with_capacity(var14, 2l); /* Direct call array#Array#with_capacity on <var14:Array[RuntimeVariable]>*/
 }
+var_ = var14;
 {
-nit___nit__AbstractCompilerVisitor___assign(var_v, var_res, var26); /* Direct call abstract_compiler#AbstractCompilerVisitor#assign on <var_v:AbstractCompilerVisitor>*/
+standard___standard__AbstractArray___standard__abstract_collection__Sequence__push(var_, var_vari); /* Direct call array#AbstractArray#push on <var_:Array[RuntimeVariable]>*/
 }
-if (varonce27) {
-var28 = varonce27;
-} else {
-var29 = "} else {";
-var30 = 8;
-var31 = standard___standard__NativeString___to_s_with_length(var29, var30);
-var28 = var31;
-varonce27 = var28;
+{
+standard___standard__AbstractArray___standard__abstract_collection__Sequence__push(var_, var_value); /* Direct call array#AbstractArray#push on <var_:Array[RuntimeVariable]>*/
 }
 {
-nit___nit__AbstractCompilerVisitor___add(var_v, var28); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <var_v:AbstractCompilerVisitor>*/
+var15 = ((val*(*)(val* self, val* p0, val* p1))(var_v->class->vft[COLOR_nit__abstract_compiler__AbstractCompilerVisitor__compile_callsite]))(var_v, var11, var_); /* compile_callsite on <var_v:AbstractCompilerVisitor>*/
+}
+var_res = var15;
+if (var_res == NULL) {
+var16 = 0; /* is null */
+} else {
+var16 = 1; /* arg is null and recv is not */
 }
+if (0) {
+{ /* Inline kernel#Object#!= (var_res,((val*)NULL)) on <var_res:nullable RuntimeVariable> */
+var_other = ((val*)NULL);
 {
-{ /* Inline parser_nodes#AIfExpr#n_else (self) on <self:AIfExpr> */
-var34 = self->attrs[COLOR_nit__parser_nodes__AIfExpr___n_else].val; /* _n_else on <self:AIfExpr> */
-var32 = var34;
-RET_LABEL33:(void)0;
+var19 = ((short int(*)(val* self, val* p0))(var_res->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_res, var_other); /* == on <var_res:nullable RuntimeVariable(RuntimeVariable)>*/
 }
+var20 = !var19;
+var17 = var20;
+goto RET_LABEL18;
+RET_LABEL18:(void)0;
 }
-if (unlikely(var32 == NULL)) {
-PRINT_ERROR("Runtime error: %s", "Cast failed");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 2506);
-show_backtrace(1);
+var16 = var17;
+}
+if (unlikely(!var16)) {
+PRINT_ERROR("Runtime error: %s", "Assert failed");
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 2652);
+fatal_exit(1);
 }
-var35 = NULL;
 {
-var36 = nit___nit__AbstractCompilerVisitor___expr(var_v, var32, var35);
+var21 = nit___nit__AbstractCompilerVisitor___variable(var_v, var_variable);
 }
 {
-nit___nit__AbstractCompilerVisitor___assign(var_v, var_res, var36); /* Direct call abstract_compiler#AbstractCompilerVisitor#assign on <var_v:AbstractCompilerVisitor>*/
+nit___nit__AbstractCompilerVisitor___assign(var_v, var21, var_res); /* Direct call abstract_compiler#AbstractCompilerVisitor#assign on <var_v:AbstractCompilerVisitor>*/
 }
-if (varonce37) {
-var38 = varonce37;
+RET_LABEL:;
+}
+/* method abstract_compiler#ASelfExpr#expr for (self: ASelfExpr, AbstractCompilerVisitor): nullable RuntimeVariable */
+val* nit__abstract_compiler___ASelfExpr___AExpr__expr(val* self, val* p0) {
+val* var /* : nullable RuntimeVariable */;
+val* var_v /* var v: AbstractCompilerVisitor */;
+val* var1 /* : nullable StaticFrame */;
+val* var3 /* : nullable StaticFrame */;
+val* var4 /* : Array[RuntimeVariable] */;
+val* var6 /* : Array[RuntimeVariable] */;
+val* var7 /* : nullable Object */;
+var_v = p0;
+{
+{ /* Inline abstract_compiler#AbstractCompilerVisitor#frame (var_v) on <var_v:AbstractCompilerVisitor> */
+var3 = var_v->attrs[COLOR_nit__abstract_compiler__AbstractCompilerVisitor___frame].val; /* _frame on <var_v:AbstractCompilerVisitor> */
+var1 = var3;
+RET_LABEL2:(void)0;
+}
+}
+if (var1 == NULL) {
+PRINT_ERROR("Runtime error: %s", "Receiver is null");
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 2658);
+fatal_exit(1);
 } else {
-var39 = "}";
-var40 = 1;
-var41 = standard___standard__NativeString___to_s_with_length(var39, var40);
-var38 = var41;
-varonce37 = var38;
+{ /* Inline abstract_compiler#StaticFrame#arguments (var1) on <var1:nullable StaticFrame> */
+if (unlikely(var1 == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Receiver is null");
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1835);
+fatal_exit(1);
+}
+var6 = var1->attrs[COLOR_nit__abstract_compiler__StaticFrame___arguments].val; /* _arguments on <var1:nullable StaticFrame> */
+if (unlikely(var6 == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _arguments");
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1835);
+fatal_exit(1);
+}
+var4 = var6;
+RET_LABEL5:(void)0;
+}
 }
 {
-nit___nit__AbstractCompilerVisitor___add(var_v, var38); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <var_v:AbstractCompilerVisitor>*/
+var7 = standard___standard__SequenceRead___Collection__first(var4);
 }
-var = var_res;
+var = var7;
 goto RET_LABEL;
 RET_LABEL:;
 return var;
 }
-/* method abstract_compiler#AIfexprExpr#expr for (self: AIfexprExpr, AbstractCompilerVisitor): nullable RuntimeVariable */
-val* nit__abstract_compiler___AIfexprExpr___AExpr__expr(val* self, val* p0) {
+/* method abstract_compiler#AImplicitSelfExpr#expr for (self: AImplicitSelfExpr, AbstractCompilerVisitor): nullable RuntimeVariable */
+val* nit__abstract_compiler___AImplicitSelfExpr___AExpr__expr(val* self, val* p0) {
 val* var /* : nullable RuntimeVariable */;
 val* var_v /* var v: AbstractCompilerVisitor */;
-val* var1 /* : nullable MType */;
-val* var3 /* : nullable MType */;
-val* var4 /* : RuntimeVariable */;
-val* var_res /* var res: RuntimeVariable */;
-val* var5 /* : AExpr */;
-val* var7 /* : AExpr */;
-val* var8 /* : RuntimeVariable */;
-val* var_cond /* var cond: RuntimeVariable */;
+short int var1 /* : Bool */;
+short int var3 /* : Bool */;
+short int var4 /* : Bool */;
+val* var5 /* : nullable RuntimeVariable */;
 static val* varonce;
-val* var9 /* : String */;
-char* var10 /* : NativeString */;
-long var11 /* : Int */;
-val* var12 /* : FlatString */;
-static val* varonce13;
-val* var14 /* : String */;
-char* var15 /* : NativeString */;
-long var16 /* : Int */;
-val* var17 /* : FlatString */;
-val* var18 /* : Array[Object] */;
-long var19 /* : Int */;
-val* var20 /* : NativeArray[Object] */;
-val* var21 /* : String */;
-val* var22 /* : AExpr */;
-val* var24 /* : AExpr */;
-val* var25 /* : null */;
-val* var26 /* : RuntimeVariable */;
-static val* varonce27;
-val* var28 /* : String */;
-char* var29 /* : NativeString */;
-long var30 /* : Int */;
-val* var31 /* : FlatString */;
-val* var32 /* : AExpr */;
-val* var34 /* : AExpr */;
-val* var35 /* : null */;
-val* var36 /* : RuntimeVariable */;
-static val* varonce37;
-val* var38 /* : String */;
-char* var39 /* : NativeString */;
-long var40 /* : Int */;
-val* var41 /* : FlatString */;
+val* var6 /* : String */;
+char* var7 /* : NativeString */;
+val* var8 /* : FlatString */;
+val* var9 /* : nullable MType */;
+val* var11 /* : nullable MType */;
+val* var12 /* : RuntimeVariable */;
 var_v = p0;
 {
-{ /* Inline typing#AExpr#mtype (self) on <self:AIfexprExpr> */
-var3 = self->attrs[COLOR_nit__typing__AExpr___mtype].val; /* _mtype on <self:AIfexprExpr> */
+{ /* Inline typing#AImplicitSelfExpr#is_sys (self) on <self:AImplicitSelfExpr> */
+var3 = self->attrs[COLOR_nit__typing__AImplicitSelfExpr___is_sys].s; /* _is_sys on <self:AImplicitSelfExpr> */
 var1 = var3;
 RET_LABEL2:(void)0;
 }
 }
-if (unlikely(var1 == NULL)) {
-PRINT_ERROR("Runtime error: %s", "Cast failed");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 2515);
-show_backtrace(1);
-}
-{
-var4 = nit___nit__AbstractCompilerVisitor___new_var(var_v, var1);
-}
-var_res = var4;
-{
-{ /* Inline parser_nodes#AIfexprExpr#n_expr (self) on <self:AIfexprExpr> */
-var7 = self->attrs[COLOR_nit__parser_nodes__AIfexprExpr___n_expr].val; /* _n_expr on <self:AIfexprExpr> */
-if (unlikely(var7 == NULL)) {
-PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 1681);
-show_backtrace(1);
-}
-var5 = var7;
-RET_LABEL6:(void)0;
-}
-}
+var4 = !var1;
+if (var4){
 {
-var8 = nit___nit__AbstractCompilerVisitor___expr_bool(var_v, var5);
+var5 = ((val*(*)(val* self, val* p0))(self->class->vft[COLOR_nit__abstract_compiler___AImplicitSelfExpr___AExpr__expr]))(self, p0); /* expr on <self:AImplicitSelfExpr>*/
 }
-var_cond = var8;
-if (varonce) {
-var9 = varonce;
+var = var5;
+goto RET_LABEL;
 } else {
-var10 = "if (";
-var11 = 4;
-var12 = standard___standard__NativeString___to_s_with_length(var10, var11);
-var9 = var12;
-varonce = var9;
 }
-if (varonce13) {
-var14 = varonce13;
+if (likely(varonce!=NULL)) {
+var6 = varonce;
 } else {
-var15 = "){";
-var16 = 2;
-var17 = standard___standard__NativeString___to_s_with_length(var15, var16);
-var14 = var17;
-varonce13 = var14;
+var7 = "glob_sys";
+var8 = standard___standard__NativeString___to_s_with_length(var7, 8l);
+var6 = var8;
+varonce = var6;
 }
-var18 = NEW_standard__Array(&type_standard__Array__standard__Object);
-{ /* var18 = array_instance Array[Object] */
-var19 = 3;
-var20 = NEW_standard__NativeArray(var19, &type_standard__NativeArray__standard__Object);
-((struct instance_standard__NativeArray*)var20)->values[0] = (val*) var9;
-((struct instance_standard__NativeArray*)var20)->values[1] = (val*) var_cond;
-((struct instance_standard__NativeArray*)var20)->values[2] = (val*) var14;
 {
-((void (*)(val* self, val* p0, long p1))(var18->class->vft[COLOR_standard__array__Array__with_native]))(var18, var20, var19) /* with_native on <var18:Array[Object]>*/;
-}
+{ /* Inline typing#AExpr#mtype (self) on <self:AImplicitSelfExpr> */
+var11 = self->attrs[COLOR_nit__typing__AExpr___mtype].val; /* _mtype on <self:AImplicitSelfExpr> */
+var9 = var11;
+RET_LABEL10:(void)0;
 }
-{
-var21 = ((val* (*)(val* self))(var18->class->vft[COLOR_standard__string__Object__to_s]))(var18) /* to_s on <var18:Array[Object]>*/;
 }
-{
-nit___nit__AbstractCompilerVisitor___add(var_v, var21); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <var_v:AbstractCompilerVisitor>*/
+if (unlikely(var9 == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Cast failed");
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 2664);
+fatal_exit(1);
 }
 {
-{ /* Inline parser_nodes#AIfexprExpr#n_then (self) on <self:AIfexprExpr> */
-var24 = self->attrs[COLOR_nit__parser_nodes__AIfexprExpr___n_then].val; /* _n_then on <self:AIfexprExpr> */
-if (unlikely(var24 == NULL)) {
-PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_then");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 1687);
-show_backtrace(1);
-}
-var22 = var24;
-RET_LABEL23:(void)0;
-}
+var12 = nit___nit__AbstractCompilerVisitor___new_expr(var_v, var6, var9);
 }
-var25 = NULL;
-{
-var26 = nit___nit__AbstractCompilerVisitor___expr(var_v, var22, var25);
+var = var12;
+goto RET_LABEL;
+RET_LABEL:;
+return var;
 }
-{
-nit___nit__AbstractCompilerVisitor___assign(var_v, var_res, var26); /* Direct call abstract_compiler#AbstractCompilerVisitor#assign on <var_v:AbstractCompilerVisitor>*/
+/* method abstract_compiler#AEscapeExpr#stmt for (self: AEscapeExpr, AbstractCompilerVisitor) */
+void nit__abstract_compiler___AEscapeExpr___AExpr__stmt(val* self, val* p0) {
+val* var_v /* var v: AbstractCompilerVisitor */;
+val* var /* : NativeArray[String] */;
+static val* varonce;
+static val* varonce1;
+val* var2 /* : String */;
+char* var3 /* : NativeString */;
+val* var4 /* : FlatString */;
+static val* varonce5;
+val* var6 /* : String */;
+char* var7 /* : NativeString */;
+val* var8 /* : FlatString */;
+val* var9 /* : nullable EscapeMark */;
+val* var11 /* : nullable EscapeMark */;
+val* var12 /* : String */;
+val* var13 /* : String */;
+var_v = p0;
+if (unlikely(varonce==NULL)) {
+var = NEW_standard__NativeArray(3l, &type_standard__NativeArray__standard__String);
+if (likely(varonce1!=NULL)) {
+var2 = varonce1;
+} else {
+var3 = "goto BREAK_";
+var4 = standard___standard__NativeString___to_s_with_length(var3, 11l);
+var2 = var4;
+varonce1 = var2;
 }
-if (varonce27) {
-var28 = varonce27;
+((struct instance_standard__NativeArray*)var)->values[0]=var2;
+if (likely(varonce5!=NULL)) {
+var6 = varonce5;
 } else {
-var29 = "} else {";
-var30 = 8;
-var31 = standard___standard__NativeString___to_s_with_length(var29, var30);
-var28 = var31;
-varonce27 = var28;
+var7 = ";";
+var8 = standard___standard__NativeString___to_s_with_length(var7, 1l);
+var6 = var8;
+varonce5 = var6;
 }
-{
-nit___nit__AbstractCompilerVisitor___add(var_v, var28); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <var_v:AbstractCompilerVisitor>*/
+((struct instance_standard__NativeArray*)var)->values[2]=var6;
+} else {
+var = varonce;
+varonce = NULL;
 }
 {
-{ /* Inline parser_nodes#AIfexprExpr#n_else (self) on <self:AIfexprExpr> */
-var34 = self->attrs[COLOR_nit__parser_nodes__AIfexprExpr___n_else].val; /* _n_else on <self:AIfexprExpr> */
-if (unlikely(var34 == NULL)) {
-PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_else");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 1693);
-show_backtrace(1);
-}
-var32 = var34;
-RET_LABEL33:(void)0;
+{ /* Inline scope#AEscapeExpr#escapemark (self) on <self:AEscapeExpr> */
+var11 = self->attrs[COLOR_nit__scope__AEscapeExpr___escapemark].val; /* _escapemark on <self:AEscapeExpr> */
+var9 = var11;
+RET_LABEL10:(void)0;
 }
 }
-var35 = NULL;
 {
-var36 = nit___nit__AbstractCompilerVisitor___expr(var_v, var32, var35);
+var12 = nit___nit__AbstractCompilerVisitor___escapemark_name(var_v, var9);
 }
+((struct instance_standard__NativeArray*)var)->values[1]=var12;
 {
-nit___nit__AbstractCompilerVisitor___assign(var_v, var_res, var36); /* Direct call abstract_compiler#AbstractCompilerVisitor#assign on <var_v:AbstractCompilerVisitor>*/
-}
-if (varonce37) {
-var38 = varonce37;
-} else {
-var39 = "}";
-var40 = 1;
-var41 = standard___standard__NativeString___to_s_with_length(var39, var40);
-var38 = var41;
-varonce37 = var38;
+var13 = ((val*(*)(val* self))(var->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var); /* native_to_s on <var:NativeArray[String]>*/
 }
+varonce = var;
 {
-nit___nit__AbstractCompilerVisitor___add(var_v, var38); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <var_v:AbstractCompilerVisitor>*/
+nit___nit__AbstractCompilerVisitor___add(var_v, var13); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <var_v:AbstractCompilerVisitor>*/
 }
-var = var_res;
-goto RET_LABEL;
 RET_LABEL:;
-return var;
 }
-/* method abstract_compiler#ADoExpr#stmt for (self: ADoExpr, AbstractCompilerVisitor) */
-void nit__abstract_compiler___ADoExpr___AExpr__stmt(val* self, val* p0) {
+/* method abstract_compiler#AReturnExpr#stmt for (self: AReturnExpr, AbstractCompilerVisitor) */
+void nit__abstract_compiler___AReturnExpr___AExpr__stmt(val* self, val* p0) {
 val* var_v /* var v: AbstractCompilerVisitor */;
 val* var /* : nullable AExpr */;
 val* var2 /* : nullable AExpr */;
-val* var3 /* : nullable EscapeMark */;
-val* var5 /* : nullable EscapeMark */;
+val* var_nexpr /* var nexpr: nullable AExpr */;
+short int var3 /* : Bool */;
+short int var4 /* : Bool */;
+val* var_other /* var other: nullable Object */;
+short int var6 /* : Bool */;
+short int var7 /* : Bool */;
+val* var8 /* : nullable StaticFrame */;
+val* var10 /* : nullable StaticFrame */;
+val* var11 /* : nullable RuntimeVariable */;
+val* var13 /* : nullable RuntimeVariable */;
+val* var_returnvar /* var returnvar: RuntimeVariable */;
+val* var14 /* : MType */;
+val* var16 /* : MType */;
+val* var17 /* : RuntimeVariable */;
+val* var_i /* var i: RuntimeVariable */;
+val* var18 /* : NativeArray[String] */;
+static val* varonce;
+static val* varonce19;
+val* var20 /* : String */;
+char* var21 /* : NativeString */;
+val* var22 /* : FlatString */;
+static val* varonce23;
+val* var24 /* : String */;
+char* var25 /* : NativeString */;
+val* var26 /* : FlatString */;
+val* var27 /* : nullable StaticFrame */;
+val* var29 /* : nullable StaticFrame */;
+val* var30 /* : nullable String */;
+val* var32 /* : nullable String */;
+val* var33 /* : String */;
 var_v = p0;
 {
-{ /* Inline parser_nodes#ADoExpr#n_block (self) on <self:ADoExpr> */
-var2 = self->attrs[COLOR_nit__parser_nodes__ADoExpr___n_block].val; /* _n_block on <self:ADoExpr> */
+{ /* Inline parser_nodes#AReturnExpr#n_expr (self) on <self:AReturnExpr> */
+var2 = self->attrs[COLOR_nit__parser_nodes__AReturnExpr___n_expr].val; /* _n_expr on <self:AReturnExpr> */
 var = var2;
 RET_LABEL1:(void)0;
 }
 }
-{
-nit___nit__AbstractCompilerVisitor___stmt(var_v, var); /* Direct call abstract_compiler#AbstractCompilerVisitor#stmt on <var_v:AbstractCompilerVisitor>*/
+var_nexpr = var;
+if (var_nexpr == NULL) {
+var3 = 0; /* is null */
+} else {
+var3 = 1; /* arg is null and recv is not */
 }
+if (0) {
+{ /* Inline kernel#Object#!= (var_nexpr,((val*)NULL)) on <var_nexpr:nullable AExpr> */
+var_other = ((val*)NULL);
 {
-{ /* Inline scope#ADoExpr#break_mark (self) on <self:ADoExpr> */
-var5 = self->attrs[COLOR_nit__scope__ADoExpr___break_mark].val; /* _break_mark on <self:ADoExpr> */
-var3 = var5;
-RET_LABEL4:(void)0;
+var6 = ((short int(*)(val* self, val* p0))(var_nexpr->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_nexpr, var_other); /* == on <var_nexpr:nullable AExpr(AExpr)>*/
+}
+var7 = !var6;
+var4 = var7;
+goto RET_LABEL5;
+RET_LABEL5:(void)0;
 }
+var3 = var4;
 }
+if (var3){
 {
-nit___nit__AbstractCompilerVisitor___add_escape_label(var_v, var3); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_escape_label on <var_v:AbstractCompilerVisitor>*/
+{ /* Inline abstract_compiler#AbstractCompilerVisitor#frame (var_v) on <var_v:AbstractCompilerVisitor> */
+var10 = var_v->attrs[COLOR_nit__abstract_compiler__AbstractCompilerVisitor___frame].val; /* _frame on <var_v:AbstractCompilerVisitor> */
+var8 = var10;
+RET_LABEL9:(void)0;
 }
-RET_LABEL:;
 }
-/* method abstract_compiler#AWhileExpr#stmt for (self: AWhileExpr, AbstractCompilerVisitor) */
-void nit__abstract_compiler___AWhileExpr___AExpr__stmt(val* self, val* p0) {
-val* var_v /* var v: AbstractCompilerVisitor */;
-static val* varonce;
-val* var /* : String */;
-char* var1 /* : NativeString */;
-long var2 /* : Int */;
-val* var3 /* : FlatString */;
-val* var4 /* : AExpr */;
-val* var6 /* : AExpr */;
-val* var7 /* : RuntimeVariable */;
-val* var_cond /* var cond: RuntimeVariable */;
-static val* varonce8;
-val* var9 /* : String */;
-char* var10 /* : NativeString */;
-long var11 /* : Int */;
-val* var12 /* : FlatString */;
-static val* varonce13;
-val* var14 /* : String */;
-char* var15 /* : NativeString */;
-long var16 /* : Int */;
-val* var17 /* : FlatString */;
-val* var18 /* : Array[Object] */;
-long var19 /* : Int */;
-val* var20 /* : NativeArray[Object] */;
-val* var21 /* : String */;
-val* var22 /* : nullable AExpr */;
-val* var24 /* : nullable AExpr */;
-val* var25 /* : nullable EscapeMark */;
-val* var27 /* : nullable EscapeMark */;
-static val* varonce28;
-val* var29 /* : String */;
-char* var30 /* : NativeString */;
-long var31 /* : Int */;
-val* var32 /* : FlatString */;
-val* var33 /* : nullable EscapeMark */;
-val* var35 /* : nullable EscapeMark */;
-var_v = p0;
-if (varonce) {
-var = varonce;
+if (var8 == NULL) {
+PRINT_ERROR("Runtime error: %s", "Receiver is null");
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 2677);
+fatal_exit(1);
 } else {
-var1 = "for(;;) {";
-var2 = 9;
-var3 = standard___standard__NativeString___to_s_with_length(var1, var2);
-var = var3;
-varonce = var;
-}
-{
-nit___nit__AbstractCompilerVisitor___add(var_v, var); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <var_v:AbstractCompilerVisitor>*/
+{ /* Inline abstract_compiler#StaticFrame#returnvar (var8) on <var8:nullable StaticFrame> */
+if (unlikely(var8 == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Receiver is null");
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1838);
+fatal_exit(1);
 }
-{
-{ /* Inline parser_nodes#AWhileExpr#n_expr (self) on <self:AWhileExpr> */
-var6 = self->attrs[COLOR_nit__parser_nodes__AWhileExpr___n_expr].val; /* _n_expr on <self:AWhileExpr> */
-if (unlikely(var6 == NULL)) {
-PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 1705);
-show_backtrace(1);
+var13 = var8->attrs[COLOR_nit__abstract_compiler__StaticFrame___returnvar].val; /* _returnvar on <var8:nullable StaticFrame> */
+var11 = var13;
+RET_LABEL12:(void)0;
 }
-var4 = var6;
-RET_LABEL5:(void)0;
 }
+if (unlikely(var11 == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Cast failed");
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 2677);
+fatal_exit(1);
 }
+var_returnvar = var11;
 {
-var7 = nit___nit__AbstractCompilerVisitor___expr_bool(var_v, var4);
+{ /* Inline abstract_compiler#RuntimeVariable#mtype (var_returnvar) on <var_returnvar:RuntimeVariable> */
+var16 = var_returnvar->attrs[COLOR_nit__abstract_compiler__RuntimeVariable___mtype].val; /* _mtype on <var_returnvar:RuntimeVariable> */
+if (unlikely(var16 == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1784);
+fatal_exit(1);
 }
-var_cond = var7;
-if (varonce8) {
-var9 = varonce8;
-} else {
-var10 = "if (!";
-var11 = 5;
-var12 = standard___standard__NativeString___to_s_with_length(var10, var11);
-var9 = var12;
-varonce8 = var9;
+var14 = var16;
+RET_LABEL15:(void)0;
 }
-if (varonce13) {
-var14 = varonce13;
-} else {
-var15 = ") break;";
-var16 = 8;
-var17 = standard___standard__NativeString___to_s_with_length(var15, var16);
-var14 = var17;
-varonce13 = var14;
 }
-var18 = NEW_standard__Array(&type_standard__Array__standard__Object);
-{ /* var18 = array_instance Array[Object] */
-var19 = 3;
-var20 = NEW_standard__NativeArray(var19, &type_standard__NativeArray__standard__Object);
-((struct instance_standard__NativeArray*)var20)->values[0] = (val*) var9;
-((struct instance_standard__NativeArray*)var20)->values[1] = (val*) var_cond;
-((struct instance_standard__NativeArray*)var20)->values[2] = (val*) var14;
 {
-((void (*)(val* self, val* p0, long p1))(var18->class->vft[COLOR_standard__array__Array__with_native]))(var18, var20, var19) /* with_native on <var18:Array[Object]>*/;
-}
+var17 = nit___nit__AbstractCompilerVisitor___expr(var_v, var_nexpr, var14);
 }
+var_i = var17;
 {
-var21 = ((val* (*)(val* self))(var18->class->vft[COLOR_standard__string__Object__to_s]))(var18) /* to_s on <var18:Array[Object]>*/;
+nit___nit__AbstractCompilerVisitor___assign(var_v, var_returnvar, var_i); /* Direct call abstract_compiler#AbstractCompilerVisitor#assign on <var_v:AbstractCompilerVisitor>*/
 }
-{
-nit___nit__AbstractCompilerVisitor___add(var_v, var21); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <var_v:AbstractCompilerVisitor>*/
+} else {
 }
-{
-{ /* Inline parser_nodes#AWhileExpr#n_block (self) on <self:AWhileExpr> */
-var24 = self->attrs[COLOR_nit__parser_nodes__AWhileExpr___n_block].val; /* _n_block on <self:AWhileExpr> */
-var22 = var24;
-RET_LABEL23:(void)0;
+if (unlikely(varonce==NULL)) {
+var18 = NEW_standard__NativeArray(3l, &type_standard__NativeArray__standard__String);
+if (likely(varonce19!=NULL)) {
+var20 = varonce19;
+} else {
+var21 = "goto ";
+var22 = standard___standard__NativeString___to_s_with_length(var21, 5l);
+var20 = var22;
+varonce19 = var20;
+}
+((struct instance_standard__NativeArray*)var18)->values[0]=var20;
+if (likely(varonce23!=NULL)) {
+var24 = varonce23;
+} else {
+var25 = ";";
+var26 = standard___standard__NativeString___to_s_with_length(var25, 1l);
+var24 = var26;
+varonce23 = var24;
 }
+((struct instance_standard__NativeArray*)var18)->values[2]=var24;
+} else {
+var18 = varonce;
+varonce = NULL;
 }
 {
-nit___nit__AbstractCompilerVisitor___stmt(var_v, var22); /* Direct call abstract_compiler#AbstractCompilerVisitor#stmt on <var_v:AbstractCompilerVisitor>*/
+{ /* Inline abstract_compiler#AbstractCompilerVisitor#frame (var_v) on <var_v:AbstractCompilerVisitor> */
+var29 = var_v->attrs[COLOR_nit__abstract_compiler__AbstractCompilerVisitor___frame].val; /* _frame on <var_v:AbstractCompilerVisitor> */
+var27 = var29;
+RET_LABEL28:(void)0;
 }
-{
-{ /* Inline scope#AWhileExpr#continue_mark (self) on <self:AWhileExpr> */
-var27 = self->attrs[COLOR_nit__scope__AWhileExpr___continue_mark].val; /* _continue_mark on <self:AWhileExpr> */
-var25 = var27;
-RET_LABEL26:(void)0;
 }
+if (var27 == NULL) {
+PRINT_ERROR("Runtime error: %s", "Receiver is null");
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 2681);
+fatal_exit(1);
+} else {
+{ /* Inline abstract_compiler#StaticFrame#returnlabel (var27) on <var27:nullable StaticFrame> */
+if (unlikely(var27 == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Receiver is null");
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1841);
+fatal_exit(1);
 }
-{
-nit___nit__AbstractCompilerVisitor___add_escape_label(var_v, var25); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_escape_label on <var_v:AbstractCompilerVisitor>*/
+var32 = var27->attrs[COLOR_nit__abstract_compiler__StaticFrame___returnlabel].val; /* _returnlabel on <var27:nullable StaticFrame> */
+var30 = var32;
+RET_LABEL31:(void)0;
 }
-if (varonce28) {
-var29 = varonce28;
-} else {
-var30 = "}";
-var31 = 1;
-var32 = standard___standard__NativeString___to_s_with_length(var30, var31);
-var29 = var32;
-varonce28 = var29;
 }
-{
-nit___nit__AbstractCompilerVisitor___add(var_v, var29); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <var_v:AbstractCompilerVisitor>*/
+if (unlikely(var30 == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Cast failed");
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 2681);
+fatal_exit(1);
 }
+((struct instance_standard__NativeArray*)var18)->values[1]=var30;
 {
-{ /* Inline scope#AWhileExpr#break_mark (self) on <self:AWhileExpr> */
-var35 = self->attrs[COLOR_nit__scope__AWhileExpr___break_mark].val; /* _break_mark on <self:AWhileExpr> */
-var33 = var35;
-RET_LABEL34:(void)0;
-}
+var33 = ((val*(*)(val* self))(var18->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var18); /* native_to_s on <var18:NativeArray[String]>*/
 }
+varonce = var18;
 {
-nit___nit__AbstractCompilerVisitor___add_escape_label(var_v, var33); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_escape_label on <var_v:AbstractCompilerVisitor>*/
+nit___nit__AbstractCompilerVisitor___add(var_v, var33); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <var_v:AbstractCompilerVisitor>*/
 }
 RET_LABEL:;
 }
-/* method abstract_compiler#ALoopExpr#stmt for (self: ALoopExpr, AbstractCompilerVisitor) */
-void nit__abstract_compiler___ALoopExpr___AExpr__stmt(val* self, val* p0) {
+/* method abstract_compiler#AAbortExpr#stmt for (self: AAbortExpr, AbstractCompilerVisitor) */
+void nit__abstract_compiler___AAbortExpr___AExpr__stmt(val* self, val* p0) {
 val* var_v /* var v: AbstractCompilerVisitor */;
 static val* varonce;
 val* var /* : String */;
 char* var1 /* : NativeString */;
-long var2 /* : Int */;
-val* var3 /* : FlatString */;
-val* var4 /* : nullable AExpr */;
-val* var6 /* : nullable AExpr */;
-val* var7 /* : nullable EscapeMark */;
-val* var9 /* : nullable EscapeMark */;
-static val* varonce10;
-val* var11 /* : String */;
-char* var12 /* : NativeString */;
-long var13 /* : Int */;
-val* var14 /* : FlatString */;
-val* var15 /* : nullable EscapeMark */;
-val* var17 /* : nullable EscapeMark */;
+val* var2 /* : FlatString */;
 var_v = p0;
-if (varonce) {
+if (likely(varonce!=NULL)) {
 var = varonce;
 } else {
-var1 = "for(;;) {";
-var2 = 9;
-var3 = standard___standard__NativeString___to_s_with_length(var1, var2);
-var = var3;
+var1 = "Aborted";
+var2 = standard___standard__NativeString___to_s_with_length(var1, 7l);
+var = var2;
 varonce = var;
 }
 {
-nit___nit__AbstractCompilerVisitor___add(var_v, var); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <var_v:AbstractCompilerVisitor>*/
+nit___nit__AbstractCompilerVisitor___add_abort(var_v, var); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_abort on <var_v:AbstractCompilerVisitor>*/
+}
+RET_LABEL:;
 }
+/* method abstract_compiler#AIfExpr#stmt for (self: AIfExpr, AbstractCompilerVisitor) */
+void nit__abstract_compiler___AIfExpr___AExpr__stmt(val* self, val* p0) {
+val* var_v /* var v: AbstractCompilerVisitor */;
+val* var /* : AExpr */;
+val* var2 /* : AExpr */;
+val* var3 /* : RuntimeVariable */;
+val* var_cond /* var cond: RuntimeVariable */;
+val* var4 /* : NativeArray[String] */;
+static val* varonce;
+static val* varonce5;
+val* var6 /* : String */;
+char* var7 /* : NativeString */;
+val* var8 /* : FlatString */;
+static val* varonce9;
+val* var10 /* : String */;
+char* var11 /* : NativeString */;
+val* var12 /* : FlatString */;
+val* var13 /* : String */;
+val* var14 /* : String */;
+val* var15 /* : nullable AExpr */;
+val* var17 /* : nullable AExpr */;
+static val* varonce18;
+val* var19 /* : String */;
+char* var20 /* : NativeString */;
+val* var21 /* : FlatString */;
+val* var22 /* : nullable AExpr */;
+val* var24 /* : nullable AExpr */;
+static val* varonce25;
+val* var26 /* : String */;
+char* var27 /* : NativeString */;
+val* var28 /* : FlatString */;
+var_v = p0;
 {
-{ /* Inline parser_nodes#ALoopExpr#n_block (self) on <self:ALoopExpr> */
-var6 = self->attrs[COLOR_nit__parser_nodes__ALoopExpr___n_block].val; /* _n_block on <self:ALoopExpr> */
-var4 = var6;
-RET_LABEL5:(void)0;
+{ /* Inline parser_nodes#AIfExpr#n_expr (self) on <self:AIfExpr> */
+var2 = self->attrs[COLOR_nit__parser_nodes__AIfExpr___n_expr].val; /* _n_expr on <self:AIfExpr> */
+if (unlikely(var2 == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 1857);
+fatal_exit(1);
 }
+var = var2;
+RET_LABEL1:(void)0;
 }
-{
-nit___nit__AbstractCompilerVisitor___stmt(var_v, var4); /* Direct call abstract_compiler#AbstractCompilerVisitor#stmt on <var_v:AbstractCompilerVisitor>*/
 }
 {
-{ /* Inline scope#ALoopExpr#continue_mark (self) on <self:ALoopExpr> */
-var9 = self->attrs[COLOR_nit__scope__ALoopExpr___continue_mark].val; /* _continue_mark on <self:ALoopExpr> */
-var7 = var9;
-RET_LABEL8:(void)0;
+var3 = nit___nit__AbstractCompilerVisitor___expr_bool(var_v, var);
+}
+var_cond = var3;
+if (unlikely(varonce==NULL)) {
+var4 = NEW_standard__NativeArray(3l, &type_standard__NativeArray__standard__String);
+if (likely(varonce5!=NULL)) {
+var6 = varonce5;
+} else {
+var7 = "if (";
+var8 = standard___standard__NativeString___to_s_with_length(var7, 4l);
+var6 = var8;
+varonce5 = var6;
+}
+((struct instance_standard__NativeArray*)var4)->values[0]=var6;
+if (likely(varonce9!=NULL)) {
+var10 = varonce9;
+} else {
+var11 = "){";
+var12 = standard___standard__NativeString___to_s_with_length(var11, 2l);
+var10 = var12;
+varonce9 = var10;
 }
+((struct instance_standard__NativeArray*)var4)->values[2]=var10;
+} else {
+var4 = varonce;
+varonce = NULL;
 }
 {
-nit___nit__AbstractCompilerVisitor___add_escape_label(var_v, var7); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_escape_label on <var_v:AbstractCompilerVisitor>*/
+var13 = ((val*(*)(val* self))(var_cond->class->vft[COLOR_standard__string__Object__to_s]))(var_cond); /* to_s on <var_cond:RuntimeVariable>*/
 }
-if (varonce10) {
-var11 = varonce10;
-} else {
-var12 = "}";
-var13 = 1;
-var14 = standard___standard__NativeString___to_s_with_length(var12, var13);
-var11 = var14;
-varonce10 = var11;
+((struct instance_standard__NativeArray*)var4)->values[1]=var13;
+{
+var14 = ((val*(*)(val* self))(var4->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var4); /* native_to_s on <var4:NativeArray[String]>*/
 }
+varonce = var4;
 {
-nit___nit__AbstractCompilerVisitor___add(var_v, var11); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <var_v:AbstractCompilerVisitor>*/
+nit___nit__AbstractCompilerVisitor___add(var_v, var14); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <var_v:AbstractCompilerVisitor>*/
 }
 {
-{ /* Inline scope#ALoopExpr#break_mark (self) on <self:ALoopExpr> */
-var17 = self->attrs[COLOR_nit__scope__ALoopExpr___break_mark].val; /* _break_mark on <self:ALoopExpr> */
+{ /* Inline parser_nodes#AIfExpr#n_then (self) on <self:AIfExpr> */
+var17 = self->attrs[COLOR_nit__parser_nodes__AIfExpr___n_then].val; /* _n_then on <self:AIfExpr> */
 var15 = var17;
 RET_LABEL16:(void)0;
 }
 }
 {
-nit___nit__AbstractCompilerVisitor___add_escape_label(var_v, var15); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_escape_label on <var_v:AbstractCompilerVisitor>*/
+nit___nit__AbstractCompilerVisitor___stmt(var_v, var15); /* Direct call abstract_compiler#AbstractCompilerVisitor#stmt on <var_v:AbstractCompilerVisitor>*/
+}
+if (likely(varonce18!=NULL)) {
+var19 = varonce18;
+} else {
+var20 = "} else {";
+var21 = standard___standard__NativeString___to_s_with_length(var20, 8l);
+var19 = var21;
+varonce18 = var19;
+}
+{
+nit___nit__AbstractCompilerVisitor___add(var_v, var19); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <var_v:AbstractCompilerVisitor>*/
+}
+{
+{ /* Inline parser_nodes#AIfExpr#n_else (self) on <self:AIfExpr> */
+var24 = self->attrs[COLOR_nit__parser_nodes__AIfExpr___n_else].val; /* _n_else on <self:AIfExpr> */
+var22 = var24;
+RET_LABEL23:(void)0;
+}
+}
+{
+nit___nit__AbstractCompilerVisitor___stmt(var_v, var22); /* Direct call abstract_compiler#AbstractCompilerVisitor#stmt on <var_v:AbstractCompilerVisitor>*/
+}
+if (likely(varonce25!=NULL)) {
+var26 = varonce25;
+} else {
+var27 = "}";
+var28 = standard___standard__NativeString___to_s_with_length(var27, 1l);
+var26 = var28;
+varonce25 = var26;
+}
+{
+nit___nit__AbstractCompilerVisitor___add(var_v, var26); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <var_v:AbstractCompilerVisitor>*/
 }
 RET_LABEL:;
 }