X-Git-Url: http://nitlanguage.org diff --git a/c_src/nit__separate_compiler.sep.4.c b/c_src/nit__separate_compiler.sep.4.c index f2eb74a..bdfa0fe 100644 --- a/c_src/nit__separate_compiler.sep.4.c +++ b/c_src/nit__separate_compiler.sep.4.c @@ -1,9169 +1,9643 @@ #include "nit__separate_compiler.sep.0.h" -/* method separate_compiler#SeparateCompilerVisitor#type_test for (self: SeparateCompilerVisitor, RuntimeVariable, MType, String): RuntimeVariable */ -val* nit___nit__SeparateCompilerVisitor___nit__abstract_compiler__AbstractCompilerVisitor__type_test(val* self, val* p0, val* p1, val* p2) { +/* method separate_compiler#SeparateCompilerVisitor#read_attribute for (self: SeparateCompilerVisitor, MAttribute, RuntimeVariable): RuntimeVariable */ +val* nit___nit__SeparateCompilerVisitor___nit__abstract_compiler__AbstractCompilerVisitor__read_attribute(val* self, val* p0, val* p1) { val* var /* : RuntimeVariable */; -val* var_value /* var value: RuntimeVariable */; -val* var_mtype /* var mtype: MType */; -val* var_tag /* var tag: String */; -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 */; -static val* varonce11; -val* var12 /* : String */; -char* var13 /* : NativeString */; -long var14 /* : Int */; -val* var15 /* : FlatString */; -val* var16 /* : Array[Object] */; -long var17 /* : Int */; -val* var18 /* : NativeArray[Object] */; -val* var19 /* : String */; -val* var20 /* : AbstractCompiler */; -val* var22 /* : AbstractCompiler */; -val* var_compiler /* var compiler: SeparateCompiler */; -val* var23 /* : nullable StaticFrame */; -val* var25 /* : nullable StaticFrame */; -val* var26 /* : Array[RuntimeVariable] */; -val* var28 /* : Array[RuntimeVariable] */; -val* var29 /* : nullable Object */; +val* var_a /* var a: MAttribute */; val* var_recv /* var recv: RuntimeVariable */; -val* var30 /* : String */; -val* var_recv_type_info /* var recv_type_info: String */; -val* var31 /* : MClassType */; -val* var32 /* : RuntimeVariable */; -val* var_res /* var res: RuntimeVariable */; -static val* varonce33; -val* var34 /* : String */; -char* var35 /* : NativeString */; -long var36 /* : Int */; -val* var37 /* : FlatString */; -val* var38 /* : String */; -val* var_cltype /* var cltype: String */; -static val* varonce39; -val* var40 /* : String */; -char* var41 /* : NativeString */; +val* var1 /* : MPropDef */; +val* var3 /* : MPropDef */; +val* var4 /* : nullable MType */; +val* var6 /* : nullable MType */; +val* var_ret /* var ret: MType */; +val* var7 /* : MPropDef */; +val* var9 /* : MPropDef */; +val* var10 /* : MClassDef */; +val* var12 /* : MClassDef */; +val* var_intromclassdef /* var intromclassdef: MClassDef */; +val* var13 /* : MClassType */; +val* var15 /* : MClassType */; +val* var16 /* : MClassType */; +val* var18 /* : MClassType */; +val* var19 /* : MModule */; +val* var21 /* : MModule */; +val* var22 /* : MType */; +val* var23 /* : AbstractCompiler */; +val* var25 /* : AbstractCompiler */; +val* var26 /* : ModelBuilder */; +val* var28 /* : ModelBuilder */; +val* var29 /* : ToolContext */; +val* var31 /* : ToolContext */; +val* var32 /* : OptionBool */; +val* var34 /* : OptionBool */; +val* var35 /* : nullable Object */; +val* var37 /* : nullable Object */; +short int var38 /* : Bool */; +val* var39 /* : AbstractCompiler */; +val* var41 /* : AbstractCompiler */; +val* var_ /* var : SeparateCompiler */; long var42 /* : Int */; -val* var43 /* : FlatString */; -static val* varonce44; -val* var45 /* : String */; -char* var46 /* : NativeString */; -long var47 /* : Int */; -val* var48 /* : FlatString */; -val* var49 /* : Array[Object] */; -long var50 /* : Int */; -val* var51 /* : NativeArray[Object] */; -val* var52 /* : String */; -static val* varonce53; -val* var54 /* : String */; -char* var55 /* : NativeString */; -long var56 /* : Int */; -val* var57 /* : FlatString */; -val* var58 /* : String */; -val* var_idtype /* var idtype: String */; -static val* varonce59; -val* var60 /* : String */; -char* var61 /* : NativeString */; -long var62 /* : Int */; -val* var63 /* : FlatString */; -static val* varonce64; -val* var65 /* : String */; -char* var66 /* : NativeString */; -long var67 /* : Int */; -val* var68 /* : FlatString */; -val* var69 /* : Array[Object] */; -long var70 /* : Int */; -val* var71 /* : NativeArray[Object] */; -val* var72 /* : String */; -short int var73 /* : Bool */; -short int var_maybe_null /* var maybe_null: Bool */; -static val* varonce74; -val* var75 /* : String */; -char* var76 /* : NativeString */; -long var77 /* : Int */; -val* var78 /* : FlatString */; -val* var_accept_null /* var accept_null: String */; -val* var_ntype /* var ntype: MType */; -short int var79 /* : Bool */; +long var44 /* : Int */; +long var45 /* : Int */; +short int var47 /* : Bool */; int cltype; int idtype; -val* var80 /* : MType */; -val* var82 /* : MType */; -static val* varonce83; -val* var84 /* : String */; -char* var85 /* : NativeString */; -long var86 /* : Int */; +const char* var_class_name; +long var48 /* : Int */; +static val* varonce; +val* var50 /* : String */; +char* var51 /* : NativeString */; +val* var52 /* : FlatString */; +val* var53 /* : String */; +val* var54 /* : AbstractCompiler */; +val* var56 /* : AbstractCompiler */; +val* var57 /* : ModelBuilder */; +val* var59 /* : ModelBuilder */; +val* var60 /* : ToolContext */; +val* var62 /* : ToolContext */; +val* var63 /* : OptionBool */; +val* var65 /* : OptionBool */; +val* var66 /* : nullable Object */; +val* var68 /* : nullable Object */; +short int var69 /* : Bool */; +val* var70 /* : MClassType */; +val* var71 /* : MType */; +val* var_cret /* var cret: MType */; +val* var72 /* : RuntimeVariable */; +val* var_res /* var res: RuntimeVariable */; +val* var75 /* : NativeArray[String] */; +static val* varonce74; +static val* varonce76; +val* var77 /* : String */; +char* var78 /* : NativeString */; +val* var79 /* : FlatString */; +static val* varonce80; +val* var81 /* : String */; +char* var82 /* : NativeString */; +val* var83 /* : FlatString */; +static val* varonce84; +val* var85 /* : String */; +char* var86 /* : NativeString */; val* var87 /* : FlatString */; -val* var88 /* : MType */; -val* var90 /* : MType */; -val* var91 /* : nullable StaticFrame */; -val* var93 /* : nullable StaticFrame */; -val* var94 /* : MPropDef */; -val* var96 /* : MPropDef */; -val* var97 /* : MClassDef */; -val* var99 /* : MClassDef */; -val* var100 /* : MModule */; -val* var102 /* : MModule */; -val* var103 /* : nullable StaticFrame */; -val* var105 /* : nullable StaticFrame */; -val* var106 /* : MPropDef */; -val* var108 /* : MPropDef */; -val* var109 /* : MClassDef */; -val* var111 /* : MClassDef */; -val* var112 /* : MClassType */; -val* var114 /* : MClassType */; -short int var115 /* : Bool */; -static val* varonce116; -val* var117 /* : String */; -char* var118 /* : NativeString */; -long var119 /* : Int */; -val* var120 /* : FlatString */; -val* var121 /* : String */; -static val* varonce122; -val* var123 /* : String */; -char* var124 /* : NativeString */; -long var125 /* : Int */; -val* var126 /* : FlatString */; +static val* varonce88; +val* var89 /* : String */; +char* var90 /* : NativeString */; +val* var91 /* : FlatString */; +static val* varonce92; +val* var93 /* : String */; +char* var94 /* : NativeString */; +val* var95 /* : FlatString */; +val* var96 /* : String */; +val* var97 /* : String */; +val* var98 /* : String */; +val* var99 /* : String */; +val* var100 /* : String */; +val* var101 /* : String */; +short int var102 /* : Bool */; +short int var103 /* : Bool */; +int cltype104; +int idtype105; +short int var106 /* : Bool */; +short int var_107 /* var : Bool */; +val* var108 /* : AbstractCompiler */; +val* var110 /* : AbstractCompiler */; +val* var111 /* : ModelBuilder */; +val* var113 /* : ModelBuilder */; +val* var114 /* : ToolContext */; +val* var116 /* : ToolContext */; +val* var117 /* : OptionBool */; +val* var119 /* : OptionBool */; +val* var120 /* : nullable Object */; +val* var122 /* : nullable Object */; +short int var123 /* : Bool */; +short int var124 /* : Bool */; +val* var126 /* : NativeArray[String] */; +static val* varonce125; static val* varonce127; val* var128 /* : String */; char* var129 /* : NativeString */; -long var130 /* : Int */; -val* var131 /* : FlatString */; -val* var132 /* : Array[Object] */; -long var133 /* : Int */; -val* var134 /* : NativeArray[Object] */; +val* var130 /* : FlatString */; +static val* varonce131; +val* var132 /* : String */; +char* var133 /* : NativeString */; +val* var134 /* : FlatString */; val* var135 /* : String */; -val* var136 /* : ModelBuilder */; -val* var138 /* : ModelBuilder */; -val* var139 /* : ToolContext */; -val* var141 /* : ToolContext */; -val* var142 /* : OptionBool */; -val* var144 /* : OptionBool */; -val* var145 /* : nullable Object */; -val* var147 /* : nullable Object */; -short int var148 /* : Bool */; -val* var149 /* : AbstractCompiler */; +val* var136 /* : String */; +val* var138 /* : NativeArray[String] */; +static val* varonce137; +static val* varonce139; +val* var140 /* : String */; +char* var141 /* : NativeString */; +val* var142 /* : FlatString */; +val* var143 /* : String */; +val* var145 /* : String */; +val* var146 /* : String */; +static val* varonce147; +val* var148 /* : String */; +char* var149 /* : NativeString */; +val* var150 /* : FlatString */; val* var151 /* : AbstractCompiler */; -val* var152 /* : HashMap[String, Int] */; -val* var154 /* : HashMap[String, Int] */; -val* var_ /* var : HashMap[String, Int] */; -val* var_155 /* var : String */; -val* var156 /* : nullable Object */; -long var157 /* : Int */; -long var158 /* : Int */; -short int var160 /* : Bool */; -int cltype161; -int idtype162; -const char* var_class_name; -long var163 /* : Int */; -long var164 /* : Int */; +val* var153 /* : AbstractCompiler */; +val* var154 /* : ModelBuilder */; +val* var156 /* : ModelBuilder */; +val* var157 /* : ToolContext */; +val* var159 /* : ToolContext */; +val* var160 /* : OptionBool */; +val* var162 /* : OptionBool */; +val* var163 /* : nullable Object */; val* var165 /* : nullable Object */; -static val* varonce166; -val* var167 /* : String */; -char* var168 /* : NativeString */; -long var169 /* : Int */; -val* var170 /* : FlatString */; -static val* varonce171; -val* var172 /* : String */; -char* var173 /* : NativeString */; +short int var166 /* : Bool */; +val* var167 /* : AbstractCompiler */; +val* var169 /* : AbstractCompiler */; +val* var_170 /* var : SeparateCompiler */; +long var171 /* : Int */; +long var173 /* : Int */; long var174 /* : Int */; -val* var175 /* : FlatString */; -val* var176 /* : Array[Object] */; -long var177 /* : Int */; -val* var178 /* : NativeArray[Object] */; -val* var179 /* : String */; -short int var180 /* : Bool */; -static val* varonce181; -val* var182 /* : String */; -char* var183 /* : NativeString */; -long var184 /* : Int */; +short int var176 /* : Bool */; +int cltype177; +int idtype178; +const char* var_class_name179; +long var180 /* : Int */; +static val* varonce182; +val* var183 /* : String */; +char* var184 /* : NativeString */; val* var185 /* : FlatString */; -val* var186 /* : String */; -val* var_type_struct /* var type_struct: String */; -static val* varonce187; -val* var188 /* : String */; -char* var189 /* : NativeString */; -long var190 /* : Int */; -val* var191 /* : FlatString */; -static val* varonce192; -val* var193 /* : String */; -char* var194 /* : NativeString */; -long var195 /* : Int */; -val* var196 /* : FlatString */; -val* var197 /* : Array[Object] */; -long var198 /* : Int */; -val* var199 /* : NativeArray[Object] */; +val* var186 /* : RuntimeVariable */; +val* var187 /* : RuntimeVariable */; +val* var_res188 /* var res: RuntimeVariable */; +val* var190 /* : NativeArray[String] */; +static val* varonce189; +static val* varonce191; +val* var192 /* : String */; +char* var193 /* : NativeString */; +val* var194 /* : FlatString */; +static val* varonce195; +val* var196 /* : String */; +char* var197 /* : NativeString */; +val* var198 /* : FlatString */; +static val* varonce199; val* var200 /* : String */; -val* var201 /* : nullable StaticFrame */; -val* var203 /* : nullable StaticFrame */; -val* var204 /* : MPropDef */; -val* var206 /* : MPropDef */; -val* var207 /* : MClassDef */; -val* var209 /* : MClassDef */; -val* var210 /* : String */; +char* var201 /* : NativeString */; +val* var202 /* : FlatString */; +static val* varonce203; +val* var204 /* : String */; +char* var205 /* : NativeString */; +val* var206 /* : FlatString */; +static val* varonce207; +val* var208 /* : String */; +char* var209 /* : NativeString */; +val* var210 /* : FlatString */; static val* varonce211; val* var212 /* : String */; char* var213 /* : NativeString */; -long var214 /* : Int */; -val* var215 /* : FlatString */; -static val* varonce216; +val* var214 /* : FlatString */; +val* var215 /* : String */; +val* var216 /* : String */; val* var217 /* : String */; -char* var218 /* : NativeString */; -long var219 /* : Int */; -val* var220 /* : FlatString */; +val* var218 /* : String */; +val* var219 /* : String */; +val* var220 /* : String */; val* var221 /* : String */; -static val* varonce222; -val* var223 /* : String */; -char* var224 /* : NativeString */; -long var225 /* : Int */; -val* var226 /* : FlatString */; -val* var227 /* : Array[Object] */; -long var228 /* : Int */; -val* var229 /* : NativeArray[Object] */; -val* var230 /* : String */; -val* var231 /* : ModelBuilder */; -val* var233 /* : ModelBuilder */; -val* var234 /* : ToolContext */; -val* var236 /* : ToolContext */; -val* var237 /* : OptionBool */; -val* var239 /* : OptionBool */; -val* var240 /* : nullable Object */; -val* var242 /* : nullable Object */; -short int var243 /* : Bool */; -val* var244 /* : AbstractCompiler */; -val* var246 /* : AbstractCompiler */; -val* var247 /* : HashMap[String, Int] */; -val* var249 /* : HashMap[String, Int] */; -val* var_250 /* var : HashMap[String, Int] */; -val* var_251 /* var : String */; -val* var252 /* : nullable Object */; -long var253 /* : Int */; -long var254 /* : Int */; -short int var256 /* : Bool */; -int cltype257; -int idtype258; -const char* var_class_name259; -long var260 /* : Int */; -long var261 /* : Int */; -val* var262 /* : nullable Object */; +short int var222 /* : Bool */; +short int var223 /* : Bool */; +short int var224 /* : Bool */; +short int var225 /* : Bool */; +short int var_226 /* var : Bool */; +short int var227 /* : Bool */; +int cltype228; +int idtype229; +short int var230 /* : Bool */; +short int var_231 /* var : Bool */; +val* var232 /* : AbstractCompiler */; +val* var234 /* : AbstractCompiler */; +val* var235 /* : ModelBuilder */; +val* var237 /* : ModelBuilder */; +val* var238 /* : ToolContext */; +val* var240 /* : ToolContext */; +val* var241 /* : OptionBool */; +val* var243 /* : OptionBool */; +val* var244 /* : nullable Object */; +val* var246 /* : nullable Object */; +short int var247 /* : Bool */; +short int var248 /* : Bool */; +val* var250 /* : NativeArray[String] */; +static val* varonce249; +static val* varonce251; +val* var252 /* : String */; +char* var253 /* : NativeString */; +val* var254 /* : FlatString */; +static val* varonce255; +val* var256 /* : String */; +char* var257 /* : NativeString */; +val* var258 /* : FlatString */; +val* var259 /* : String */; +val* var260 /* : String */; +val* var262 /* : NativeArray[String] */; +static val* varonce261; static val* varonce263; val* var264 /* : String */; char* var265 /* : NativeString */; -long var266 /* : Int */; -val* var267 /* : FlatString */; -static val* varonce268; +val* var266 /* : FlatString */; +val* var267 /* : String */; val* var269 /* : String */; -char* var270 /* : NativeString */; -long var271 /* : Int */; -val* var272 /* : FlatString */; -val* var273 /* : Array[Object] */; -long var274 /* : Int */; -val* var275 /* : NativeArray[Object] */; -val* var276 /* : String */; -static val* varonce277; -val* var278 /* : String */; -char* var279 /* : NativeString */; -long var280 /* : Int */; -val* var281 /* : FlatString */; -static val* varonce282; -val* var283 /* : String */; -char* var284 /* : NativeString */; -long var285 /* : Int */; -val* var286 /* : FlatString */; -val* var287 /* : Array[Object] */; -long var288 /* : Int */; -val* var289 /* : NativeArray[Object] */; -val* var290 /* : String */; -static val* varonce291; -val* var292 /* : String */; -char* var293 /* : NativeString */; -long var294 /* : Int */; -val* var295 /* : FlatString */; -static val* varonce296; -val* var297 /* : String */; -char* var298 /* : NativeString */; -long var299 /* : Int */; -val* var300 /* : FlatString */; -val* var301 /* : Array[Object] */; -long var302 /* : Int */; -val* var303 /* : NativeArray[Object] */; -val* var304 /* : String */; -short int var305 /* : Bool */; -short int var_306 /* var : Bool */; -static val* varonce307; -val* var308 /* : String */; -char* var309 /* : NativeString */; -long var310 /* : Int */; -val* var311 /* : FlatString */; -short int var312 /* : Bool */; -static val* varonce313; -val* var314 /* : String */; -char* var315 /* : NativeString */; -long var316 /* : Int */; -val* var317 /* : FlatString */; -val* var318 /* : String */; -val* var_is_nullable /* var is_nullable: String */; -static val* varonce319; -val* var320 /* : String */; -char* var321 /* : NativeString */; -long var322 /* : Int */; -val* var323 /* : FlatString */; -static val* varonce324; -val* var325 /* : String */; -char* var326 /* : NativeString */; -long var327 /* : Int */; -val* var328 /* : FlatString */; -val* var329 /* : Array[Object] */; -long var330 /* : Int */; -val* var331 /* : NativeArray[Object] */; -val* var332 /* : String */; -static val* varonce333; -val* var334 /* : String */; -char* var335 /* : NativeString */; -long var336 /* : Int */; -val* var337 /* : FlatString */; -static val* varonce338; -val* var339 /* : String */; -char* var340 /* : NativeString */; -long var341 /* : Int */; -val* var342 /* : FlatString */; -val* var343 /* : Array[Object] */; -long var344 /* : Int */; -val* var345 /* : NativeArray[Object] */; -val* var346 /* : String */; -val* var347 /* : String */; -short int var348 /* : Bool */; -int cltype349; -int idtype350; -val* var351 /* : Set[MType] */; -val* var353 /* : Set[MType] */; -static val* varonce354; -val* var355 /* : String */; -char* var356 /* : NativeString */; -long var357 /* : Int */; -val* var358 /* : FlatString */; -val* var359 /* : String */; -val* var360 /* : Array[Object] */; -long var361 /* : Int */; -val* var362 /* : NativeArray[Object] */; -val* var363 /* : String */; -static val* varonce364; -val* var365 /* : String */; -char* var366 /* : NativeString */; -long var367 /* : Int */; -val* var368 /* : FlatString */; -val* var369 /* : String */; -static val* varonce370; -val* var371 /* : String */; -char* var372 /* : NativeString */; -long var373 /* : Int */; -val* var374 /* : FlatString */; -val* var375 /* : Array[Object] */; -long var376 /* : Int */; -val* var377 /* : NativeArray[Object] */; -val* var378 /* : String */; -static val* varonce379; -val* var380 /* : String */; -char* var381 /* : NativeString */; -long var382 /* : Int */; -val* var383 /* : FlatString */; -val* var384 /* : String */; -static val* varonce385; -val* var386 /* : String */; -char* var387 /* : NativeString */; -long var388 /* : Int */; -val* var389 /* : FlatString */; -val* var390 /* : Array[Object] */; -long var391 /* : Int */; -val* var392 /* : NativeArray[Object] */; -val* var393 /* : String */; -static val* varonce394; -val* var395 /* : String */; -char* var396 /* : NativeString */; -long var397 /* : Int */; -val* var398 /* : FlatString */; -val* var399 /* : String */; -static val* varonce400; -val* var401 /* : String */; -char* var402 /* : NativeString */; -long var403 /* : Int */; -val* var404 /* : FlatString */; -val* var405 /* : Array[Object] */; -long var406 /* : Int */; -val* var407 /* : NativeArray[Object] */; -val* var408 /* : String */; -val* var409 /* : ModelBuilder */; -val* var411 /* : ModelBuilder */; -val* var412 /* : ToolContext */; -val* var414 /* : ToolContext */; -val* var415 /* : OptionBool */; -val* var417 /* : OptionBool */; -val* var418 /* : nullable Object */; -val* var420 /* : nullable Object */; -short int var421 /* : Bool */; -val* var422 /* : AbstractCompiler */; -val* var424 /* : AbstractCompiler */; -val* var425 /* : HashMap[String, Int] */; -val* var427 /* : HashMap[String, Int] */; -val* var_428 /* var : HashMap[String, Int] */; -val* var_429 /* var : String */; -val* var430 /* : nullable Object */; -long var431 /* : Int */; -long var432 /* : Int */; -short int var434 /* : Bool */; -int cltype435; -int idtype436; -const char* var_class_name437; -long var438 /* : Int */; -long var439 /* : Int */; -val* var440 /* : nullable Object */; -static val* varonce441; -val* var442 /* : String */; -char* var443 /* : NativeString */; -long var444 /* : Int */; -val* var445 /* : FlatString */; -static val* varonce446; -val* var447 /* : String */; -char* var448 /* : NativeString */; -long var449 /* : Int */; -val* var450 /* : FlatString */; -val* var451 /* : Array[Object] */; -long var452 /* : Int */; -val* var453 /* : NativeArray[Object] */; -val* var454 /* : String */; -static val* varonce455; -val* var456 /* : String */; -char* var457 /* : NativeString */; -long var458 /* : Int */; -val* var459 /* : FlatString */; -static val* varonce460; -val* var461 /* : String */; -char* var462 /* : NativeString */; -long var463 /* : Int */; -val* var464 /* : FlatString */; -val* var465 /* : String */; -static val* varonce466; -val* var467 /* : String */; -char* var468 /* : NativeString */; -long var469 /* : Int */; -val* var470 /* : FlatString */; -val* var471 /* : Array[Object] */; -long var472 /* : Int */; -val* var473 /* : NativeArray[Object] */; -val* var474 /* : String */; -static val* varonce475; -val* var476 /* : String */; -char* var477 /* : NativeString */; -long var478 /* : Int */; -val* var479 /* : FlatString */; -static val* varonce480; -val* var481 /* : String */; -char* var482 /* : NativeString */; -long var483 /* : Int */; -val* var484 /* : FlatString */; -val* var485 /* : Array[Object] */; -long var486 /* : Int */; -val* var487 /* : NativeArray[Object] */; -val* var488 /* : String */; -static val* varonce489; -val* var490 /* : String */; -char* var491 /* : NativeString */; -long var492 /* : Int */; -val* var493 /* : FlatString */; -static val* varonce494; -val* var495 /* : String */; -char* var496 /* : NativeString */; -long var497 /* : Int */; -val* var498 /* : FlatString */; -val* var499 /* : Array[Object] */; -long var500 /* : Int */; -val* var501 /* : NativeArray[Object] */; -val* var502 /* : String */; -static val* varonce503; -val* var504 /* : String */; -char* var505 /* : NativeString */; -long var506 /* : Int */; -val* var507 /* : FlatString */; -val* var508 /* : String */; -val* var_value_type_info /* var value_type_info: String */; -static val* varonce509; -val* var510 /* : String */; -char* var511 /* : NativeString */; -long var512 /* : Int */; -val* var513 /* : FlatString */; -static val* varonce514; -val* var515 /* : String */; -char* var516 /* : NativeString */; -long var517 /* : Int */; -val* var518 /* : FlatString */; -static val* varonce519; -val* var520 /* : String */; -char* var521 /* : NativeString */; -long var522 /* : Int */; -val* var523 /* : FlatString */; -val* var524 /* : Array[Object] */; -long var525 /* : Int */; -val* var526 /* : NativeArray[Object] */; -val* var527 /* : String */; -static val* varonce528; -val* var529 /* : String */; -char* var530 /* : NativeString */; -long var531 /* : Int */; -val* var532 /* : FlatString */; -val* var533 /* : Array[Object] */; -long var534 /* : Int */; -val* var535 /* : NativeArray[Object] */; -val* var536 /* : String */; -static val* varonce537; -val* var538 /* : String */; -char* var539 /* : NativeString */; -long var540 /* : Int */; -val* var541 /* : FlatString */; -static val* varonce542; -val* var543 /* : String */; -char* var544 /* : NativeString */; -long var545 /* : Int */; -val* var546 /* : FlatString */; -static val* varonce547; -val* var548 /* : String */; -char* var549 /* : NativeString */; -long var550 /* : Int */; -val* var551 /* : FlatString */; -static val* varonce552; -val* var553 /* : String */; -char* var554 /* : NativeString */; -long var555 /* : Int */; -val* var556 /* : FlatString */; -static val* varonce557; -val* var558 /* : String */; -char* var559 /* : NativeString */; -long var560 /* : Int */; -val* var561 /* : FlatString */; -val* var562 /* : Array[Object] */; -long var563 /* : Int */; -val* var564 /* : NativeArray[Object] */; -val* var565 /* : String */; -static val* varonce566; -val* var567 /* : String */; -char* var568 /* : NativeString */; -long var569 /* : Int */; -val* var570 /* : FlatString */; -static val* varonce571; -val* var572 /* : String */; -char* var573 /* : NativeString */; -long var574 /* : Int */; -val* var575 /* : FlatString */; -var_value = p0; -var_mtype = p1; -var_tag = p2; -if (varonce) { -var1 = varonce; -} else { -var2 = "/* "; -var3 = 3; -var4 = standard___standard__NativeString___to_s_with_length(var2, var3); -var1 = var4; -varonce = var1; +val* var270 /* : String */; +static val* varonce271; +val* var272 /* : String */; +char* var273 /* : NativeString */; +val* var274 /* : FlatString */; +val* var275 /* : AbstractCompiler */; +val* var277 /* : AbstractCompiler */; +val* var278 /* : ModelBuilder */; +val* var280 /* : ModelBuilder */; +val* var281 /* : ToolContext */; +val* var283 /* : ToolContext */; +val* var284 /* : OptionBool */; +val* var286 /* : OptionBool */; +val* var287 /* : nullable Object */; +val* var289 /* : nullable Object */; +short int var290 /* : Bool */; +val* var291 /* : AbstractCompiler */; +val* var293 /* : AbstractCompiler */; +val* var_294 /* var : SeparateCompiler */; +long var295 /* : Int */; +long var297 /* : Int */; +long var298 /* : Int */; +short int var300 /* : Bool */; +int cltype301; +int idtype302; +const char* var_class_name303; +long var304 /* : Int */; +static val* varonce306; +val* var307 /* : String */; +char* var308 /* : NativeString */; +val* var309 /* : FlatString */; +var_a = p0; +var_recv = p1; +{ +nit___nit__AbstractCompilerVisitor___check_recv_notnull(self, var_recv); /* Direct call abstract_compiler#AbstractCompilerVisitor#check_recv_notnull on */ +} +{ +{ /* Inline model#MProperty#intro (var_a) on */ +var3 = var_a->attrs[COLOR_nit__model__MProperty___intro].val; /* _intro on */ +if (unlikely(var3 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1968); +fatal_exit(1); +} +var1 = var3; +RET_LABEL2:(void)0; +} } { -var5 = nit___nit__RuntimeVariable___standard__string__Object__inspect(var_value); +{ /* Inline model#MAttributeDef#static_mtype (var1) on */ +var6 = var1->attrs[COLOR_nit__model__MAttributeDef___static_mtype].val; /* _static_mtype on */ +var4 = var6; +RET_LABEL5:(void)0; } -if (varonce6) { -var7 = varonce6; -} else { -var8 = " isa "; -var9 = 5; -var10 = standard___standard__NativeString___to_s_with_length(var8, var9); -var7 = var10; -varonce6 = var7; } -if (varonce11) { -var12 = varonce11; -} else { -var13 = " */"; -var14 = 3; -var15 = standard___standard__NativeString___to_s_with_length(var13, var14); -var12 = var15; -varonce11 = var12; +if (unlikely(var4 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Cast failed"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_compiler, 1621); +fatal_exit(1); } -var16 = NEW_standard__Array(&type_standard__Array__standard__Object); -{ /* var16 = array_instance Array[Object] */ -var17 = 5; -var18 = NEW_standard__NativeArray(var17, &type_standard__NativeArray__standard__Object); -((struct instance_standard__NativeArray*)var18)->values[0] = (val*) var1; -((struct instance_standard__NativeArray*)var18)->values[1] = (val*) var5; -((struct instance_standard__NativeArray*)var18)->values[2] = (val*) var7; -((struct instance_standard__NativeArray*)var18)->values[3] = (val*) var_mtype; -((struct instance_standard__NativeArray*)var18)->values[4] = (val*) var12; +var_ret = var4; { -((void (*)(val* self, val* p0, long p1))(var16->class->vft[COLOR_standard__array__Array__with_native]))(var16, var18, var17) /* with_native on */; +{ /* Inline model#MProperty#intro (var_a) on */ +var9 = var_a->attrs[COLOR_nit__model__MProperty___intro].val; /* _intro on */ +if (unlikely(var9 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1968); +fatal_exit(1); } +var7 = var9; +RET_LABEL8:(void)0; } -{ -var19 = ((val* (*)(val* self))(var16->class->vft[COLOR_standard__string__Object__to_s]))(var16) /* to_s on */; } { -nit___nit__AbstractCompilerVisitor___add(self, var19); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on */ +{ /* Inline model#MPropDef#mclassdef (var7) on */ +var12 = var7->attrs[COLOR_nit__model__MPropDef___mclassdef].val; /* _mclassdef on */ +if (unlikely(var12 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdef"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 2209); +fatal_exit(1); +} +var10 = var12; +RET_LABEL11:(void)0; } +} +var_intromclassdef = var10; { -{ /* Inline abstract_compiler#AbstractCompilerVisitor#compiler (self) on */ -var22 = self->attrs[COLOR_nit__abstract_compiler__AbstractCompilerVisitor___compiler].val; /* _compiler on */ -if (unlikely(var22 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _compiler"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1059); -show_backtrace(1); +{ /* Inline model#MClassDef#bound_mtype (var_intromclassdef) on */ +var15 = var_intromclassdef->attrs[COLOR_nit__model__MClassDef___bound_mtype].val; /* _bound_mtype on */ +if (unlikely(var15 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _bound_mtype"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 556); +fatal_exit(1); } -var20 = var22; -RET_LABEL21:(void)0; +var13 = var15; +RET_LABEL14:(void)0; } } -var_compiler = var20; { -{ /* Inline abstract_compiler#AbstractCompilerVisitor#frame (self) on */ -var25 = self->attrs[COLOR_nit__abstract_compiler__AbstractCompilerVisitor___frame].val; /* _frame on */ -var23 = var25; -RET_LABEL24:(void)0; +{ /* Inline model#MClassDef#bound_mtype (var_intromclassdef) on */ +var18 = var_intromclassdef->attrs[COLOR_nit__model__MClassDef___bound_mtype].val; /* _bound_mtype on */ +if (unlikely(var18 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _bound_mtype"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 556); +fatal_exit(1); } +var16 = var18; +RET_LABEL17:(void)0; } -if (var23 == NULL) { -PRINT_ERROR("Runtime error: %s", "Receiver is null"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_compiler, 1473); -show_backtrace(1); -} else { -{ /* Inline abstract_compiler#StaticFrame#arguments (var23) on */ -if (unlikely(var23 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Receiver is null"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1731); -show_backtrace(1); } -var28 = var23->attrs[COLOR_nit__abstract_compiler__StaticFrame___arguments].val; /* _arguments on */ -if (unlikely(var28 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _arguments"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1731); -show_backtrace(1); +{ +{ /* Inline model#MClassDef#mmodule (var_intromclassdef) on */ +var21 = var_intromclassdef->attrs[COLOR_nit__model__MClassDef___mmodule].val; /* _mmodule on */ +if (unlikely(var21 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 550); +fatal_exit(1); } -var26 = var28; -RET_LABEL27:(void)0; +var19 = var21; +RET_LABEL20:(void)0; } } { -var29 = standard___standard__SequenceRead___Collection__first(var26); +var22 = ((val*(*)(val* self, val* p0, val* p1, val* p2, short int p3))(var_ret->class->vft[COLOR_nit__model__MType__resolve_for]))(var_ret, var13, var16, var19, 1); /* resolve_for on */ } -var_recv = var29; +var_ret = var22; { -var30 = nit___nit__SeparateCompilerVisitor___type_info(self, var_recv); +{ /* Inline abstract_compiler#AbstractCompilerVisitor#compiler (self) on */ +var25 = self->attrs[COLOR_nit__abstract_compiler__AbstractCompilerVisitor___compiler].val; /* _compiler on */ +if (unlikely(var25 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _compiler"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1102); +fatal_exit(1); +} +var23 = var25; +RET_LABEL24:(void)0; } -var_recv_type_info = var30; -{ -var31 = nit___nit__AbstractCompilerVisitor___bool_type(self); } { -var32 = nit___nit__AbstractCompilerVisitor___new_var(self, var31); +{ /* Inline abstract_compiler#AbstractCompiler#modelbuilder (var23) on */ +var28 = var23->attrs[COLOR_nit__abstract_compiler__AbstractCompiler___modelbuilder].val; /* _modelbuilder on */ +if (unlikely(var28 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 522); +fatal_exit(1); +} +var26 = var28; +RET_LABEL27:(void)0; } -var_res = var32; -if (varonce33) { -var34 = varonce33; -} else { -var35 = "cltype"; -var36 = 6; -var37 = standard___standard__NativeString___to_s_with_length(var35, var36); -var34 = var37; -varonce33 = var34; } { -var38 = nit___nit__AbstractCompilerVisitor___get_name(self, var34); +{ /* Inline modelbuilder_base#ModelBuilder#toolcontext (var26) on */ +var31 = var26->attrs[COLOR_nit__modelbuilder_base__ModelBuilder___toolcontext].val; /* _toolcontext on */ +if (unlikely(var31 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__modelbuilder_base, 47); +fatal_exit(1); } -var_cltype = var38; -if (varonce39) { -var40 = varonce39; -} else { -var41 = "int "; -var42 = 4; -var43 = standard___standard__NativeString___to_s_with_length(var41, var42); -var40 = var43; -varonce39 = var40; +var29 = var31; +RET_LABEL30:(void)0; } -if (varonce44) { -var45 = varonce44; -} else { -var46 = ";"; -var47 = 1; -var48 = standard___standard__NativeString___to_s_with_length(var46, var47); -var45 = var48; -varonce44 = var45; } -var49 = NEW_standard__Array(&type_standard__Array__standard__Object); -{ /* var49 = array_instance Array[Object] */ -var50 = 3; -var51 = NEW_standard__NativeArray(var50, &type_standard__NativeArray__standard__Object); -((struct instance_standard__NativeArray*)var51)->values[0] = (val*) var40; -((struct instance_standard__NativeArray*)var51)->values[1] = (val*) var_cltype; -((struct instance_standard__NativeArray*)var51)->values[2] = (val*) var45; { -((void (*)(val* self, val* p0, long p1))(var49->class->vft[COLOR_standard__array__Array__with_native]))(var49, var51, var50) /* with_native on */; +{ /* Inline abstract_compiler#ToolContext#opt_isset_checks_metrics (var29) on */ +var34 = var29->attrs[COLOR_nit__abstract_compiler__ToolContext___opt_isset_checks_metrics].val; /* _opt_isset_checks_metrics on */ +if (unlikely(var34 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_isset_checks_metrics"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 64); +fatal_exit(1); } +var32 = var34; +RET_LABEL33:(void)0; } -{ -var52 = ((val* (*)(val* self))(var49->class->vft[COLOR_standard__string__Object__to_s]))(var49) /* to_s on */; } { -nit___nit__AbstractCompilerVisitor___add_decl(self, var52); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on */ +{ /* Inline opts#Option#value (var32) on */ +var37 = var32->attrs[COLOR_opts__Option___value].val; /* _value on */ +var35 = var37; +RET_LABEL36:(void)0; } -if (varonce53) { -var54 = varonce53; -} else { -var55 = "idtype"; -var56 = 6; -var57 = standard___standard__NativeString___to_s_with_length(var55, var56); -var54 = var57; -varonce53 = var54; } +var38 = (short int)((long)(var35)>>2); +if (var38){ { -var58 = nit___nit__AbstractCompilerVisitor___get_name(self, var54); +{ /* Inline abstract_compiler#AbstractCompilerVisitor#compiler (self) on */ +var41 = self->attrs[COLOR_nit__abstract_compiler__AbstractCompilerVisitor___compiler].val; /* _compiler on */ +if (unlikely(var41 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _compiler"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1102); +fatal_exit(1); } -var_idtype = var58; -if (varonce59) { -var60 = varonce59; -} else { -var61 = "int "; -var62 = 4; -var63 = standard___standard__NativeString___to_s_with_length(var61, var62); -var60 = var63; -varonce59 = var60; +var39 = var41; +RET_LABEL40:(void)0; } -if (varonce64) { -var65 = varonce64; -} else { -var66 = ";"; -var67 = 1; -var68 = standard___standard__NativeString___to_s_with_length(var66, var67); -var65 = var68; -varonce64 = var65; } -var69 = NEW_standard__Array(&type_standard__Array__standard__Object); -{ /* var69 = array_instance Array[Object] */ -var70 = 3; -var71 = NEW_standard__NativeArray(var70, &type_standard__NativeArray__standard__Object); -((struct instance_standard__NativeArray*)var71)->values[0] = (val*) var60; -((struct instance_standard__NativeArray*)var71)->values[1] = (val*) var_idtype; -((struct instance_standard__NativeArray*)var71)->values[2] = (val*) var65; +var_ = var39; { -((void (*)(val* self, val* p0, long p1))(var69->class->vft[COLOR_standard__array__Array__with_native]))(var69, var71, var70) /* with_native on */; +{ /* Inline separate_compiler#SeparateCompiler#attr_read_count (var_) on */ +var44 = var_->attrs[COLOR_nit__separate_compiler__SeparateCompiler___attr_read_count].l; /* _attr_read_count on */ +var42 = var44; +RET_LABEL43:(void)0; } } { -var72 = ((val* (*)(val* self))(var69->class->vft[COLOR_standard__string__Object__to_s]))(var69) /* to_s on */; +{ /* Inline kernel#Int#+ (var42,1l) on */ +/* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */ +/* <1l:Int> isa OTHER */ +var47 = 1; /* easy <1l:Int> isa OTHER*/ +if (unlikely(!var47)) { +var_class_name = type_standard__Int.name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name); +PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 537); +fatal_exit(1); +} +var48 = var42 + 1l; +var45 = var48; +goto RET_LABEL46; +RET_LABEL46:(void)0; } -{ -nit___nit__AbstractCompilerVisitor___add_decl(self, var72); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on */ } { -var73 = nit___nit__SeparateCompilerVisitor___maybe_null(self, var_value); +{ /* Inline separate_compiler#SeparateCompiler#attr_read_count= (var_,var45) on */ +var_->attrs[COLOR_nit__separate_compiler__SeparateCompiler___attr_read_count].l = var45; /* _attr_read_count on */ +RET_LABEL49:(void)0; } -var_maybe_null = var73; -if (varonce74) { -var75 = varonce74; -} else { -var76 = "0"; -var77 = 1; -var78 = standard___standard__NativeString___to_s_with_length(var76, var77); -var75 = var78; -varonce74 = var75; } -var_accept_null = var75; -var_ntype = var_mtype; -/* isa MNullableType */ -cltype = type_nit__MNullableType.color; -idtype = type_nit__MNullableType.id; -if(cltype >= var_ntype->type->table_size) { -var79 = 0; +if (likely(varonce!=NULL)) { +var50 = varonce; } else { -var79 = var_ntype->type->type_table[cltype] == idtype; +var51 = "count_attr_reads++;"; +var52 = standard___standard__NativeString___to_s_with_length(var51, 19l); +var50 = var52; +varonce = var50; } -if (var79){ { -{ /* Inline model#MNullableType#mtype (var_ntype) on */ -var82 = var_ntype->attrs[COLOR_nit__model__MNullableType___mtype].val; /* _mtype on */ -if (unlikely(var82 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1506); -show_backtrace(1); -} -var80 = var82; -RET_LABEL81:(void)0; -} -} -var_ntype = var80; -if (varonce83) { -var84 = varonce83; -} else { -var85 = "1"; -var86 = 1; -var87 = standard___standard__NativeString___to_s_with_length(var85, var86); -var84 = var87; -varonce83 = var84; +nit___nit__AbstractCompilerVisitor___add(self, var50); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on */ } -var_accept_null = var84; } else { } { -{ /* Inline abstract_compiler#RuntimeVariable#mcasttype (var_value) on */ -var90 = var_value->attrs[COLOR_nit__abstract_compiler__RuntimeVariable___mcasttype].val; /* _mcasttype on */ -if (unlikely(var90 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mcasttype"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1683); -show_backtrace(1); -} -var88 = var90; -RET_LABEL89:(void)0; -} +var53 = nit__separate_compiler___MEntity___const_color(var_a); } { -{ /* Inline abstract_compiler#AbstractCompilerVisitor#frame (self) on */ -var93 = self->attrs[COLOR_nit__abstract_compiler__AbstractCompilerVisitor___frame].val; /* _frame on */ -var91 = var93; -RET_LABEL92:(void)0; -} -} -if (var91 == NULL) { -PRINT_ERROR("Runtime error: %s", "Receiver is null"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_compiler, 1491); -show_backtrace(1); -} else { -{ /* Inline abstract_compiler#StaticFrame#mpropdef (var91) on */ -if (unlikely(var91 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Receiver is null"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1724); -show_backtrace(1); +nit___nit__AbstractCompilerVisitor___require_declaration(self, var53); /* Direct call abstract_compiler#AbstractCompilerVisitor#require_declaration on */ } -var96 = var91->attrs[COLOR_nit__abstract_compiler__StaticFrame___mpropdef].val; /* _mpropdef on */ -if (unlikely(var96 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mpropdef"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1724); -show_backtrace(1); +{ +{ /* Inline abstract_compiler#AbstractCompilerVisitor#compiler (self) on */ +var56 = self->attrs[COLOR_nit__abstract_compiler__AbstractCompilerVisitor___compiler].val; /* _compiler on */ +if (unlikely(var56 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _compiler"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1102); +fatal_exit(1); } -var94 = var96; -RET_LABEL95:(void)0; +var54 = var56; +RET_LABEL55:(void)0; } } { -{ /* Inline model#MPropDef#mclassdef (var94) on */ -var99 = var94->attrs[COLOR_nit__model__MPropDef___mclassdef].val; /* _mclassdef on */ -if (unlikely(var99 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdef"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 2010); -show_backtrace(1); +{ /* Inline abstract_compiler#AbstractCompiler#modelbuilder (var54) on */ +var59 = var54->attrs[COLOR_nit__abstract_compiler__AbstractCompiler___modelbuilder].val; /* _modelbuilder on */ +if (unlikely(var59 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 522); +fatal_exit(1); } -var97 = var99; -RET_LABEL98:(void)0; +var57 = var59; +RET_LABEL58:(void)0; } } { -{ /* Inline model#MClassDef#mmodule (var97) on */ -var102 = var97->attrs[COLOR_nit__model__MClassDef___mmodule].val; /* _mmodule on */ -if (unlikely(var102 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 489); -show_backtrace(1); +{ /* Inline modelbuilder_base#ModelBuilder#toolcontext (var57) on */ +var62 = var57->attrs[COLOR_nit__modelbuilder_base__ModelBuilder___toolcontext].val; /* _toolcontext on */ +if (unlikely(var62 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__modelbuilder_base, 47); +fatal_exit(1); } -var100 = var102; -RET_LABEL101:(void)0; +var60 = var62; +RET_LABEL61:(void)0; } } { -{ /* Inline abstract_compiler#AbstractCompilerVisitor#frame (self) on */ -var105 = self->attrs[COLOR_nit__abstract_compiler__AbstractCompilerVisitor___frame].val; /* _frame on */ -var103 = var105; -RET_LABEL104:(void)0; -} +{ /* Inline separate_compiler#ToolContext#opt_no_union_attribute (var60) on */ +var65 = var60->attrs[COLOR_nit__separate_compiler__ToolContext___opt_no_union_attribute].val; /* _opt_no_union_attribute on */ +if (unlikely(var65 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_no_union_attribute"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_compiler, 28); +fatal_exit(1); } -if (var103 == NULL) { -PRINT_ERROR("Runtime error: %s", "Receiver is null"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_compiler, 1491); -show_backtrace(1); -} else { -{ /* Inline abstract_compiler#StaticFrame#mpropdef (var103) on */ -if (unlikely(var103 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Receiver is null"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1724); -show_backtrace(1); +var63 = var65; +RET_LABEL64:(void)0; } -var108 = var103->attrs[COLOR_nit__abstract_compiler__StaticFrame___mpropdef].val; /* _mpropdef on */ -if (unlikely(var108 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mpropdef"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1724); -show_backtrace(1); } -var106 = var108; -RET_LABEL107:(void)0; +{ +{ /* Inline opts#Option#value (var63) on */ +var68 = var63->attrs[COLOR_opts__Option___value].val; /* _value on */ +var66 = var68; +RET_LABEL67:(void)0; } } +var69 = (short int)((long)(var66)>>2); +if (var69){ { -{ /* Inline model#MPropDef#mclassdef (var106) on */ -var111 = var106->attrs[COLOR_nit__model__MPropDef___mclassdef].val; /* _mclassdef on */ -if (unlikely(var111 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdef"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 2010); -show_backtrace(1); +var70 = nit___nit__AbstractCompilerVisitor___object_type(self); } -var109 = var111; -RET_LABEL110:(void)0; +{ +var71 = nit___nit__MType___as_nullable(var70); } +var_cret = var71; +{ +var72 = nit___nit__AbstractCompilerVisitor___new_var(self, var_cret); } +var_res = var72; { -{ /* Inline model#MClassDef#bound_mtype (var109) on */ -var114 = var109->attrs[COLOR_nit__model__MClassDef___bound_mtype].val; /* _bound_mtype on */ -if (unlikely(var114 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _bound_mtype"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 495); -show_backtrace(1); +{ /* Inline abstract_compiler#RuntimeVariable#mcasttype= (var_res,var_ret) on */ +var_res->attrs[COLOR_nit__abstract_compiler__RuntimeVariable___mcasttype].val = var_ret; /* _mcasttype on */ +RET_LABEL73:(void)0; } -var112 = var114; -RET_LABEL113:(void)0; } +if (unlikely(varonce74==NULL)) { +var75 = NEW_standard__NativeArray(10l, &type_standard__NativeArray__standard__String); +if (likely(varonce76!=NULL)) { +var77 = varonce76; +} else { +var78 = " = "; +var79 = standard___standard__NativeString___to_s_with_length(var78, 3l); +var77 = var79; +varonce76 = var77; } -{ -var115 = nit___nit__MType___is_subtype(var88, var100, var112, var_mtype); +((struct instance_standard__NativeArray*)var75)->values[1]=var77; +if (likely(varonce80!=NULL)) { +var81 = varonce80; +} else { +var82 = "->attrs["; +var83 = standard___standard__NativeString___to_s_with_length(var82, 8l); +var81 = var83; +varonce80 = var81; } -if (var115){ -if (varonce116) { -var117 = varonce116; +((struct instance_standard__NativeArray*)var75)->values[3]=var81; +if (likely(varonce84!=NULL)) { +var85 = varonce84; } else { -var118 = " = 1; /* easy "; -var119 = 14; -var120 = standard___standard__NativeString___to_s_with_length(var118, var119); -var117 = var120; -varonce116 = var117; +var86 = "]; /* "; +var87 = standard___standard__NativeString___to_s_with_length(var86, 6l); +var85 = var87; +varonce84 = var85; } -{ -var121 = nit___nit__RuntimeVariable___standard__string__Object__inspect(var_value); +((struct instance_standard__NativeArray*)var75)->values[5]=var85; +if (likely(varonce88!=NULL)) { +var89 = varonce88; +} else { +var90 = " on "; +var91 = standard___standard__NativeString___to_s_with_length(var90, 4l); +var89 = var91; +varonce88 = var89; } -if (varonce122) { -var123 = varonce122; +((struct instance_standard__NativeArray*)var75)->values[7]=var89; +if (likely(varonce92!=NULL)) { +var93 = varonce92; } else { -var124 = " isa "; -var125 = 5; -var126 = standard___standard__NativeString___to_s_with_length(var124, var125); -var123 = var126; -varonce122 = var123; +var94 = " */"; +var95 = standard___standard__NativeString___to_s_with_length(var94, 3l); +var93 = var95; +varonce92 = var93; } -if (varonce127) { -var128 = varonce127; +((struct instance_standard__NativeArray*)var75)->values[9]=var93; } else { -var129 = "*/"; -var130 = 2; -var131 = standard___standard__NativeString___to_s_with_length(var129, var130); -var128 = var131; -varonce127 = var128; +var75 = varonce74; +varonce74 = NULL; } -var132 = NEW_standard__Array(&type_standard__Array__standard__Object); -{ /* var132 = array_instance Array[Object] */ -var133 = 6; -var134 = NEW_standard__NativeArray(var133, &type_standard__NativeArray__standard__Object); -((struct instance_standard__NativeArray*)var134)->values[0] = (val*) var_res; -((struct instance_standard__NativeArray*)var134)->values[1] = (val*) var117; -((struct instance_standard__NativeArray*)var134)->values[2] = (val*) var121; -((struct instance_standard__NativeArray*)var134)->values[3] = (val*) var123; -((struct instance_standard__NativeArray*)var134)->values[4] = (val*) var_mtype; -((struct instance_standard__NativeArray*)var134)->values[5] = (val*) var128; { -((void (*)(val* self, val* p0, long p1))(var132->class->vft[COLOR_standard__array__Array__with_native]))(var132, var134, var133) /* with_native on */; -} +var96 = ((val*(*)(val* self))(var_res->class->vft[COLOR_standard__string__Object__to_s]))(var_res); /* to_s on */ } +((struct instance_standard__NativeArray*)var75)->values[0]=var96; { -var135 = ((val* (*)(val* self))(var132->class->vft[COLOR_standard__string__Object__to_s]))(var132) /* to_s on */; +var97 = ((val*(*)(val* self))(var_recv->class->vft[COLOR_standard__string__Object__to_s]))(var_recv); /* to_s on */ } +((struct instance_standard__NativeArray*)var75)->values[2]=var97; { -nit___nit__AbstractCompilerVisitor___add(self, var135); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on */ +var98 = nit__separate_compiler___MEntity___const_color(var_a); } +((struct instance_standard__NativeArray*)var75)->values[4]=var98; { -{ /* Inline abstract_compiler#AbstractCompiler#modelbuilder (var_compiler) on */ -var138 = var_compiler->attrs[COLOR_nit__abstract_compiler__AbstractCompiler___modelbuilder].val; /* _modelbuilder on */ -if (unlikely(var138 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 481); -show_backtrace(1); -} -var136 = var138; -RET_LABEL137:(void)0; -} +var99 = ((val*(*)(val* self))(var_a->class->vft[COLOR_standard__string__Object__to_s]))(var_a); /* to_s on */ } +((struct instance_standard__NativeArray*)var75)->values[6]=var99; { -{ /* Inline modelbuilder_base#ModelBuilder#toolcontext (var136) on */ -var141 = var136->attrs[COLOR_nit__modelbuilder_base__ModelBuilder___toolcontext].val; /* _toolcontext on */ -if (unlikely(var141 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__modelbuilder_base, 47); -show_backtrace(1); -} -var139 = var141; -RET_LABEL140:(void)0; -} +var100 = nit___nit__RuntimeVariable___standard__string__Object__inspect(var_recv); } +((struct instance_standard__NativeArray*)var75)->values[8]=var100; { -{ /* Inline abstract_compiler#ToolContext#opt_typing_test_metrics (var139) on */ -var144 = var139->attrs[COLOR_nit__abstract_compiler__ToolContext___opt_typing_test_metrics].val; /* _opt_typing_test_metrics on */ -if (unlikely(var144 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_typing_test_metrics"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 59); -show_backtrace(1); -} -var142 = var144; -RET_LABEL143:(void)0; -} +var101 = ((val*(*)(val* self))(var75->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var75); /* native_to_s on */ } +varonce74 = var75; { -{ /* Inline opts#Option#value (var142) on */ -var147 = var142->attrs[COLOR_opts__Option___value].val; /* _value on */ -var145 = var147; -RET_LABEL146:(void)0; +nit___nit__AbstractCompilerVisitor___add(self, var101); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on */ } +/* isa MNullableType */ +cltype104 = type_nit__MNullableType.color; +idtype105 = type_nit__MNullableType.id; +if(cltype104 >= var_ret->type->table_size) { +var103 = 0; +} else { +var103 = var_ret->type->type_table[cltype104] == idtype105; } -var148 = ((struct instance_standard__Bool*)var145)->value; /* autounbox from nullable Object to Bool */; -if (var148){ +var106 = !var103; +var_107 = var106; +if (var106){ { { /* Inline abstract_compiler#AbstractCompilerVisitor#compiler (self) on */ -var151 = self->attrs[COLOR_nit__abstract_compiler__AbstractCompilerVisitor___compiler].val; /* _compiler on */ -if (unlikely(var151 == NULL)) { +var110 = self->attrs[COLOR_nit__abstract_compiler__AbstractCompilerVisitor___compiler].val; /* _compiler on */ +if (unlikely(var110 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _compiler"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1059); -show_backtrace(1); -} -var149 = var151; -RET_LABEL150:(void)0; -} -} -{ -{ /* Inline abstract_compiler#AbstractCompiler#count_type_test_skipped (var149) on */ -var154 = var149->attrs[COLOR_nit__abstract_compiler__AbstractCompiler___count_type_test_skipped].val; /* _count_type_test_skipped on */ -if (unlikely(var154 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _count_type_test_skipped"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 966); -show_backtrace(1); -} -var152 = var154; -RET_LABEL153:(void)0; +PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1102); +fatal_exit(1); } +var108 = var110; +RET_LABEL109:(void)0; } -var_ = var152; -var_155 = var_tag; -{ -var156 = standard___standard__HashMap___standard__abstract_collection__MapRead___91d_93d(var_, var_155); } -var157 = 1; { -{ /* Inline kernel#Int#+ (var156,var157) on */ -/* Covariant cast for argument 0 (i) isa OTHER */ -/* isa OTHER */ -var160 = 1; /* easy isa OTHER*/ -if (unlikely(!var160)) { -var_class_name = type_standard__Int.name; -PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name); -PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 413); -show_backtrace(1); +{ /* Inline abstract_compiler#AbstractCompiler#modelbuilder (var108) on */ +var113 = var108->attrs[COLOR_nit__abstract_compiler__AbstractCompiler___modelbuilder].val; /* _modelbuilder on */ +if (unlikely(var113 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 522); +fatal_exit(1); } -var163 = ((struct instance_standard__Int*)var156)->value; /* autounbox from nullable Object to Int */; -var164 = var163 + var157; -var158 = var164; -goto RET_LABEL159; -RET_LABEL159:(void)0; +var111 = var113; +RET_LABEL112:(void)0; } } { -var165 = BOX_standard__Int(var158); /* autobox from Int to nullable Object */ -standard___standard__HashMap___standard__abstract_collection__Map___91d_93d_61d(var_, var_155, var165); /* Direct call hash_collection#HashMap#[]= on */ +{ /* Inline modelbuilder_base#ModelBuilder#toolcontext (var111) on */ +var116 = var111->attrs[COLOR_nit__modelbuilder_base__ModelBuilder___toolcontext].val; /* _toolcontext on */ +if (unlikely(var116 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__modelbuilder_base, 47); +fatal_exit(1); } -if (varonce166) { -var167 = varonce166; -} else { -var168 = "count_type_test_skipped_"; -var169 = 24; -var170 = standard___standard__NativeString___to_s_with_length(var168, var169); -var167 = var170; -varonce166 = var167; +var114 = var116; +RET_LABEL115:(void)0; } -if (varonce171) { -var172 = varonce171; -} else { -var173 = "++;"; -var174 = 3; -var175 = standard___standard__NativeString___to_s_with_length(var173, var174); -var172 = var175; -varonce171 = var172; } -var176 = NEW_standard__Array(&type_standard__Array__standard__Object); -{ /* var176 = array_instance Array[Object] */ -var177 = 3; -var178 = NEW_standard__NativeArray(var177, &type_standard__NativeArray__standard__Object); -((struct instance_standard__NativeArray*)var178)->values[0] = (val*) var167; -((struct instance_standard__NativeArray*)var178)->values[1] = (val*) var_tag; -((struct instance_standard__NativeArray*)var178)->values[2] = (val*) var172; { -((void (*)(val* self, val* p0, long p1))(var176->class->vft[COLOR_standard__array__Array__with_native]))(var176, var178, var177) /* with_native on */; +{ /* Inline abstract_compiler#ToolContext#opt_no_check_attr_isset (var114) on */ +var119 = var114->attrs[COLOR_nit__abstract_compiler__ToolContext___opt_no_check_attr_isset].val; /* _opt_no_check_attr_isset on */ +if (unlikely(var119 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_no_check_attr_isset"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 50); +fatal_exit(1); } +var117 = var119; +RET_LABEL118:(void)0; } -{ -var179 = ((val* (*)(val* self))(var176->class->vft[COLOR_standard__string__Object__to_s]))(var176) /* to_s on */; } { -nit___nit__AbstractCompilerVisitor___add(self, var179); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on */ +{ /* Inline opts#Option#value (var117) on */ +var122 = var117->attrs[COLOR_opts__Option___value].val; /* _value on */ +var120 = var122; +RET_LABEL121:(void)0; } -} else { } -var = var_res; -goto RET_LABEL; +var123 = (short int)((long)(var120)>>2); +var124 = !var123; +var102 = var124; } else { +var102 = var_107; } -{ -var180 = ((short int (*)(val* self))(var_ntype->class->vft[COLOR_nit__model__MType__need_anchor]))(var_ntype) /* need_anchor on */; -} -if (var180){ -if (varonce181) { -var182 = varonce181; +if (var102){ +if (unlikely(varonce125==NULL)) { +var126 = NEW_standard__NativeArray(3l, &type_standard__NativeArray__standard__String); +if (likely(varonce127!=NULL)) { +var128 = varonce127; } else { -var183 = "type_struct"; -var184 = 11; -var185 = standard___standard__NativeString___to_s_with_length(var183, var184); -var182 = var185; -varonce181 = var182; -} -{ -var186 = nit___nit__AbstractCompilerVisitor___get_name(self, var182); +var129 = "if (unlikely("; +var130 = standard___standard__NativeString___to_s_with_length(var129, 13l); +var128 = var130; +varonce127 = var128; } -var_type_struct = var186; -if (varonce187) { -var188 = varonce187; +((struct instance_standard__NativeArray*)var126)->values[0]=var128; +if (likely(varonce131!=NULL)) { +var132 = varonce131; } else { -var189 = "const struct type* "; -var190 = 19; -var191 = standard___standard__NativeString___to_s_with_length(var189, var190); -var188 = var191; -varonce187 = var188; +var133 = " == NULL)) {"; +var134 = standard___standard__NativeString___to_s_with_length(var133, 12l); +var132 = var134; +varonce131 = var132; } -if (varonce192) { -var193 = varonce192; +((struct instance_standard__NativeArray*)var126)->values[2]=var132; } else { -var194 = ";"; -var195 = 1; -var196 = standard___standard__NativeString___to_s_with_length(var194, var195); -var193 = var196; -varonce192 = var193; -} -var197 = NEW_standard__Array(&type_standard__Array__standard__Object); -{ /* var197 = array_instance Array[Object] */ -var198 = 3; -var199 = NEW_standard__NativeArray(var198, &type_standard__NativeArray__standard__Object); -((struct instance_standard__NativeArray*)var199)->values[0] = (val*) var188; -((struct instance_standard__NativeArray*)var199)->values[1] = (val*) var_type_struct; -((struct instance_standard__NativeArray*)var199)->values[2] = (val*) var193; -{ -((void (*)(val* self, val* p0, long p1))(var197->class->vft[COLOR_standard__array__Array__with_native]))(var197, var199, var198) /* with_native on */; -} -} -{ -var200 = ((val* (*)(val* self))(var197->class->vft[COLOR_standard__string__Object__to_s]))(var197) /* to_s on */; +var126 = varonce125; +varonce125 = NULL; } { -nit___nit__AbstractCompilerVisitor___add_decl(self, var200); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on */ +var135 = ((val*(*)(val* self))(var_res->class->vft[COLOR_standard__string__Object__to_s]))(var_res); /* to_s on */ } +((struct instance_standard__NativeArray*)var126)->values[1]=var135; { -nit___nit__SeparateCompilerVisitor___hardening_live_open_type(self, var_mtype); /* Direct call separate_compiler#SeparateCompilerVisitor#hardening_live_open_type on */ +var136 = ((val*(*)(val* self))(var126->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var126); /* native_to_s on */ } +varonce125 = var126; { -{ /* Inline abstract_compiler#AbstractCompilerVisitor#frame (self) on */ -var203 = self->attrs[COLOR_nit__abstract_compiler__AbstractCompilerVisitor___frame].val; /* _frame on */ -var201 = var203; -RET_LABEL202:(void)0; -} +nit___nit__AbstractCompilerVisitor___add(self, var136); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on */ } -if (var201 == NULL) { -PRINT_ERROR("Runtime error: %s", "Receiver is null"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_compiler, 1506); -show_backtrace(1); +if (unlikely(varonce137==NULL)) { +var138 = NEW_standard__NativeArray(2l, &type_standard__NativeArray__standard__String); +if (likely(varonce139!=NULL)) { +var140 = varonce139; } else { -{ /* Inline abstract_compiler#StaticFrame#mpropdef (var201) on */ -if (unlikely(var201 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Receiver is null"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1724); -show_backtrace(1); -} -var206 = var201->attrs[COLOR_nit__abstract_compiler__StaticFrame___mpropdef].val; /* _mpropdef on */ -if (unlikely(var206 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mpropdef"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1724); -show_backtrace(1); -} -var204 = var206; -RET_LABEL205:(void)0; +var141 = "Uninitialized attribute "; +var142 = standard___standard__NativeString___to_s_with_length(var141, 24l); +var140 = var142; +varonce139 = var140; } +((struct instance_standard__NativeArray*)var138)->values[0]=var140; +} else { +var138 = varonce137; +varonce137 = NULL; } { -{ /* Inline model#MPropDef#mclassdef (var204) on */ -var209 = var204->attrs[COLOR_nit__model__MPropDef___mclassdef].val; /* _mclassdef on */ -if (unlikely(var209 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdef"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 2010); -show_backtrace(1); -} -var207 = var209; -RET_LABEL208:(void)0; +{ /* Inline model#MProperty#name (var_a) on */ +var145 = var_a->attrs[COLOR_nit__model__MProperty___name].val; /* _name on */ +if (unlikely(var145 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1933); +fatal_exit(1); } +var143 = var145; +RET_LABEL144:(void)0; } -{ -nit___nit__SeparateCompilerVisitor___link_unresolved_type(self, var207, var_mtype); /* Direct call separate_compiler#SeparateCompilerVisitor#link_unresolved_type on */ } +((struct instance_standard__NativeArray*)var138)->values[1]=var143; { -var210 = nit__separate_compiler___MEntity___const_color(var_mtype); +var146 = ((val*(*)(val* self))(var138->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var138); /* native_to_s on */ } +varonce137 = var138; { -nit___nit__AbstractCompilerVisitor___require_declaration(self, var210); /* Direct call abstract_compiler#AbstractCompilerVisitor#require_declaration on */ -} -if (varonce211) { -var212 = varonce211; -} else { -var213 = " = "; -var214 = 3; -var215 = standard___standard__NativeString___to_s_with_length(var213, var214); -var212 = var215; -varonce211 = var212; +nit___nit__AbstractCompilerVisitor___add_abort(self, var146); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_abort on */ } -if (varonce216) { -var217 = varonce216; +if (likely(varonce147!=NULL)) { +var148 = varonce147; } else { -var218 = "->resolution_table->types["; -var219 = 26; -var220 = standard___standard__NativeString___to_s_with_length(var218, var219); -var217 = var220; -varonce216 = var217; +var149 = "}"; +var150 = standard___standard__NativeString___to_s_with_length(var149, 1l); +var148 = var150; +varonce147 = var148; } { -var221 = nit__separate_compiler___MEntity___const_color(var_mtype); -} -if (varonce222) { -var223 = varonce222; -} else { -var224 = "];"; -var225 = 2; -var226 = standard___standard__NativeString___to_s_with_length(var224, var225); -var223 = var226; -varonce222 = var223; +nit___nit__AbstractCompilerVisitor___add(self, var148); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on */ } -var227 = NEW_standard__Array(&type_standard__Array__standard__Object); -{ /* var227 = array_instance Array[Object] */ -var228 = 6; -var229 = NEW_standard__NativeArray(var228, &type_standard__NativeArray__standard__Object); -((struct instance_standard__NativeArray*)var229)->values[0] = (val*) var_type_struct; -((struct instance_standard__NativeArray*)var229)->values[1] = (val*) var212; -((struct instance_standard__NativeArray*)var229)->values[2] = (val*) var_recv_type_info; -((struct instance_standard__NativeArray*)var229)->values[3] = (val*) var217; -((struct instance_standard__NativeArray*)var229)->values[4] = (val*) var221; -((struct instance_standard__NativeArray*)var229)->values[5] = (val*) var223; { -((void (*)(val* self, val* p0, long p1))(var227->class->vft[COLOR_standard__array__Array__with_native]))(var227, var229, var228) /* with_native on */; -} +{ /* Inline abstract_compiler#AbstractCompilerVisitor#compiler (self) on */ +var153 = self->attrs[COLOR_nit__abstract_compiler__AbstractCompilerVisitor___compiler].val; /* _compiler on */ +if (unlikely(var153 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _compiler"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1102); +fatal_exit(1); } -{ -var230 = ((val* (*)(val* self))(var227->class->vft[COLOR_standard__string__Object__to_s]))(var227) /* to_s on */; +var151 = var153; +RET_LABEL152:(void)0; } -{ -nit___nit__AbstractCompilerVisitor___add(self, var230); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on */ } { -{ /* Inline abstract_compiler#AbstractCompiler#modelbuilder (var_compiler) on */ -var233 = var_compiler->attrs[COLOR_nit__abstract_compiler__AbstractCompiler___modelbuilder].val; /* _modelbuilder on */ -if (unlikely(var233 == NULL)) { +{ /* Inline abstract_compiler#AbstractCompiler#modelbuilder (var151) on */ +var156 = var151->attrs[COLOR_nit__abstract_compiler__AbstractCompiler___modelbuilder].val; /* _modelbuilder on */ +if (unlikely(var156 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 481); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 522); +fatal_exit(1); } -var231 = var233; -RET_LABEL232:(void)0; +var154 = var156; +RET_LABEL155:(void)0; } } { -{ /* Inline modelbuilder_base#ModelBuilder#toolcontext (var231) on */ -var236 = var231->attrs[COLOR_nit__modelbuilder_base__ModelBuilder___toolcontext].val; /* _toolcontext on */ -if (unlikely(var236 == NULL)) { +{ /* Inline modelbuilder_base#ModelBuilder#toolcontext (var154) on */ +var159 = var154->attrs[COLOR_nit__modelbuilder_base__ModelBuilder___toolcontext].val; /* _toolcontext on */ +if (unlikely(var159 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext"); PRINT_ERROR(" (%s:%d)\n", FILE_nit__modelbuilder_base, 47); -show_backtrace(1); +fatal_exit(1); } -var234 = var236; -RET_LABEL235:(void)0; +var157 = var159; +RET_LABEL158:(void)0; } } { -{ /* Inline abstract_compiler#ToolContext#opt_typing_test_metrics (var234) on */ -var239 = var234->attrs[COLOR_nit__abstract_compiler__ToolContext___opt_typing_test_metrics].val; /* _opt_typing_test_metrics on */ -if (unlikely(var239 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_typing_test_metrics"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 59); -show_backtrace(1); +{ /* Inline abstract_compiler#ToolContext#opt_isset_checks_metrics (var157) on */ +var162 = var157->attrs[COLOR_nit__abstract_compiler__ToolContext___opt_isset_checks_metrics].val; /* _opt_isset_checks_metrics on */ +if (unlikely(var162 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_isset_checks_metrics"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 64); +fatal_exit(1); } -var237 = var239; -RET_LABEL238:(void)0; +var160 = var162; +RET_LABEL161:(void)0; } } { -{ /* Inline opts#Option#value (var237) on */ -var242 = var237->attrs[COLOR_opts__Option___value].val; /* _value on */ -var240 = var242; -RET_LABEL241:(void)0; +{ /* Inline opts#Option#value (var160) on */ +var165 = var160->attrs[COLOR_opts__Option___value].val; /* _value on */ +var163 = var165; +RET_LABEL164:(void)0; } } -var243 = ((struct instance_standard__Bool*)var240)->value; /* autounbox from nullable Object to Bool */; -if (var243){ +var166 = (short int)((long)(var163)>>2); +if (var166){ { { /* Inline abstract_compiler#AbstractCompilerVisitor#compiler (self) on */ -var246 = self->attrs[COLOR_nit__abstract_compiler__AbstractCompilerVisitor___compiler].val; /* _compiler on */ -if (unlikely(var246 == NULL)) { +var169 = self->attrs[COLOR_nit__abstract_compiler__AbstractCompilerVisitor___compiler].val; /* _compiler on */ +if (unlikely(var169 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _compiler"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1059); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1102); +fatal_exit(1); } -var244 = var246; -RET_LABEL245:(void)0; +var167 = var169; +RET_LABEL168:(void)0; } } +var_170 = var167; { -{ /* Inline abstract_compiler#AbstractCompiler#count_type_test_unresolved (var244) on */ -var249 = var244->attrs[COLOR_nit__abstract_compiler__AbstractCompiler___count_type_test_unresolved].val; /* _count_type_test_unresolved on */ -if (unlikely(var249 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _count_type_test_unresolved"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 965); -show_backtrace(1); -} -var247 = var249; -RET_LABEL248:(void)0; +{ /* Inline separate_compiler#SeparateCompiler#isset_checks_count (var_170) on */ +var173 = var_170->attrs[COLOR_nit__separate_compiler__SeparateCompiler___isset_checks_count].l; /* _isset_checks_count on */ +var171 = var173; +RET_LABEL172:(void)0; } } -var_250 = var247; -var_251 = var_tag; { -var252 = standard___standard__HashMap___standard__abstract_collection__MapRead___91d_93d(var_250, var_251); +{ /* Inline kernel#Int#+ (var171,1l) on */ +/* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */ +/* <1l:Int> isa OTHER */ +var176 = 1; /* easy <1l:Int> isa OTHER*/ +if (unlikely(!var176)) { +var_class_name179 = type_standard__Int.name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name179); +PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 537); +fatal_exit(1); +} +var180 = var171 + 1l; +var174 = var180; +goto RET_LABEL175; +RET_LABEL175:(void)0; +} } -var253 = 1; { -{ /* Inline kernel#Int#+ (var252,var253) on */ -/* Covariant cast for argument 0 (i) isa OTHER */ -/* isa OTHER */ -var256 = 1; /* easy isa OTHER*/ -if (unlikely(!var256)) { -var_class_name259 = type_standard__Int.name; -PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name259); -PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 413); -show_backtrace(1); +{ /* Inline separate_compiler#SeparateCompiler#isset_checks_count= (var_170,var174) on */ +var_170->attrs[COLOR_nit__separate_compiler__SeparateCompiler___isset_checks_count].l = var174; /* _isset_checks_count on */ +RET_LABEL181:(void)0; } -var260 = ((struct instance_standard__Int*)var252)->value; /* autounbox from nullable Object to Int */; -var261 = var260 + var253; -var254 = var261; -goto RET_LABEL255; -RET_LABEL255:(void)0; } +if (likely(varonce182!=NULL)) { +var183 = varonce182; +} else { +var184 = "count_isset_checks++;"; +var185 = standard___standard__NativeString___to_s_with_length(var184, 21l); +var183 = var185; +varonce182 = var183; } { -var262 = BOX_standard__Int(var254); /* autobox from Int to nullable Object */ -standard___standard__HashMap___standard__abstract_collection__Map___91d_93d_61d(var_250, var_251, var262); /* Direct call hash_collection#HashMap#[]= on */ +nit___nit__AbstractCompilerVisitor___add(self, var183); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on */ } -if (varonce263) { -var264 = varonce263; } else { -var265 = "count_type_test_unresolved_"; -var266 = 27; -var267 = standard___standard__NativeString___to_s_with_length(var265, var266); -var264 = var267; -varonce263 = var264; } -if (varonce268) { -var269 = varonce268; } else { -var270 = "++;"; -var271 = 3; -var272 = standard___standard__NativeString___to_s_with_length(var270, var271); -var269 = var272; -varonce268 = var269; } -var273 = NEW_standard__Array(&type_standard__Array__standard__Object); -{ /* var273 = array_instance Array[Object] */ -var274 = 3; -var275 = NEW_standard__NativeArray(var274, &type_standard__NativeArray__standard__Object); -((struct instance_standard__NativeArray*)var275)->values[0] = (val*) var264; -((struct instance_standard__NativeArray*)var275)->values[1] = (val*) var_tag; -((struct instance_standard__NativeArray*)var275)->values[2] = (val*) var269; { -((void (*)(val* self, val* p0, long p1))(var273->class->vft[COLOR_standard__array__Array__with_native]))(var273, var275, var274) /* with_native on */; -} +var186 = nit___nit__SeparateCompilerVisitor___nit__abstract_compiler__AbstractCompilerVisitor__autobox(self, var_res, var_ret); } +var = var186; +goto RET_LABEL; +} else { { -var276 = ((val* (*)(val* self))(var273->class->vft[COLOR_standard__string__Object__to_s]))(var273) /* to_s on */; +var187 = nit___nit__AbstractCompilerVisitor___new_var(self, var_ret); } -{ -nit___nit__AbstractCompilerVisitor___add(self, var276); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on */ +var_res188 = var187; +if (unlikely(varonce189==NULL)) { +var190 = NEW_standard__NativeArray(12l, &type_standard__NativeArray__standard__String); +if (likely(varonce191!=NULL)) { +var192 = varonce191; +} else { +var193 = " = "; +var194 = standard___standard__NativeString___to_s_with_length(var193, 3l); +var192 = var194; +varonce191 = var192; } +((struct instance_standard__NativeArray*)var190)->values[1]=var192; +if (likely(varonce195!=NULL)) { +var196 = varonce195; } else { +var197 = "->attrs["; +var198 = standard___standard__NativeString___to_s_with_length(var197, 8l); +var196 = var198; +varonce195 = var196; } -{ -nit___nit__SeparateCompilerVisitor___hardening_cast_type(self, var_type_struct); /* Direct call separate_compiler#SeparateCompilerVisitor#hardening_cast_type on */ +((struct instance_standard__NativeArray*)var190)->values[3]=var196; +if (likely(varonce199!=NULL)) { +var200 = varonce199; +} else { +var201 = "]."; +var202 = standard___standard__NativeString___to_s_with_length(var201, 2l); +var200 = var202; +varonce199 = var200; } -if (varonce277) { -var278 = varonce277; +((struct instance_standard__NativeArray*)var190)->values[5]=var200; +if (likely(varonce203!=NULL)) { +var204 = varonce203; } else { -var279 = " = "; -var280 = 3; -var281 = standard___standard__NativeString___to_s_with_length(var279, var280); -var278 = var281; -varonce277 = var278; +var205 = "; /* "; +var206 = standard___standard__NativeString___to_s_with_length(var205, 5l); +var204 = var206; +varonce203 = var204; } -if (varonce282) { -var283 = varonce282; +((struct instance_standard__NativeArray*)var190)->values[7]=var204; +if (likely(varonce207!=NULL)) { +var208 = varonce207; } else { -var284 = "->color;"; -var285 = 8; -var286 = standard___standard__NativeString___to_s_with_length(var284, var285); -var283 = var286; -varonce282 = var283; +var209 = " on "; +var210 = standard___standard__NativeString___to_s_with_length(var209, 4l); +var208 = var210; +varonce207 = var208; } -var287 = NEW_standard__Array(&type_standard__Array__standard__Object); -{ /* var287 = array_instance Array[Object] */ -var288 = 4; -var289 = NEW_standard__NativeArray(var288, &type_standard__NativeArray__standard__Object); -((struct instance_standard__NativeArray*)var289)->values[0] = (val*) var_cltype; -((struct instance_standard__NativeArray*)var289)->values[1] = (val*) var278; -((struct instance_standard__NativeArray*)var289)->values[2] = (val*) var_type_struct; -((struct instance_standard__NativeArray*)var289)->values[3] = (val*) var283; -{ -((void (*)(val* self, val* p0, long p1))(var287->class->vft[COLOR_standard__array__Array__with_native]))(var287, var289, var288) /* with_native on */; +((struct instance_standard__NativeArray*)var190)->values[9]=var208; +if (likely(varonce211!=NULL)) { +var212 = varonce211; +} else { +var213 = " */"; +var214 = standard___standard__NativeString___to_s_with_length(var213, 3l); +var212 = var214; +varonce211 = var212; } +((struct instance_standard__NativeArray*)var190)->values[11]=var212; +} else { +var190 = varonce189; +varonce189 = NULL; } { -var290 = ((val* (*)(val* self))(var287->class->vft[COLOR_standard__string__Object__to_s]))(var287) /* to_s on */; +var215 = ((val*(*)(val* self))(var_res188->class->vft[COLOR_standard__string__Object__to_s]))(var_res188); /* to_s on */ } +((struct instance_standard__NativeArray*)var190)->values[0]=var215; { -nit___nit__AbstractCompilerVisitor___add(self, var290); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on */ -} -if (varonce291) { -var292 = varonce291; -} else { -var293 = " = "; -var294 = 3; -var295 = standard___standard__NativeString___to_s_with_length(var293, var294); -var292 = var295; -varonce291 = var292; +var216 = ((val*(*)(val* self))(var_recv->class->vft[COLOR_standard__string__Object__to_s]))(var_recv); /* to_s on */ } -if (varonce296) { -var297 = varonce296; -} else { -var298 = "->id;"; -var299 = 5; -var300 = standard___standard__NativeString___to_s_with_length(var298, var299); -var297 = var300; -varonce296 = var297; +((struct instance_standard__NativeArray*)var190)->values[2]=var216; +{ +var217 = nit__separate_compiler___MEntity___const_color(var_a); } -var301 = NEW_standard__Array(&type_standard__Array__standard__Object); -{ /* var301 = array_instance Array[Object] */ -var302 = 4; -var303 = NEW_standard__NativeArray(var302, &type_standard__NativeArray__standard__Object); -((struct instance_standard__NativeArray*)var303)->values[0] = (val*) var_idtype; -((struct instance_standard__NativeArray*)var303)->values[1] = (val*) var292; -((struct instance_standard__NativeArray*)var303)->values[2] = (val*) var_type_struct; -((struct instance_standard__NativeArray*)var303)->values[3] = (val*) var297; +((struct instance_standard__NativeArray*)var190)->values[4]=var217; { -((void (*)(val* self, val* p0, long p1))(var301->class->vft[COLOR_standard__array__Array__with_native]))(var301, var303, var302) /* with_native on */; +var218 = ((val*(*)(val* self))(var_ret->class->vft[COLOR_nit__abstract_compiler__MType__ctypename]))(var_ret); /* ctypename on */ } +((struct instance_standard__NativeArray*)var190)->values[6]=var218; +{ +var219 = ((val*(*)(val* self))(var_a->class->vft[COLOR_standard__string__Object__to_s]))(var_a); /* to_s on */ } +((struct instance_standard__NativeArray*)var190)->values[8]=var219; { -var304 = ((val* (*)(val* self))(var301->class->vft[COLOR_standard__string__Object__to_s]))(var301) /* to_s on */; +var220 = nit___nit__RuntimeVariable___standard__string__Object__inspect(var_recv); } +((struct instance_standard__NativeArray*)var190)->values[10]=var220; { -nit___nit__AbstractCompilerVisitor___add(self, var304); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on */ +var221 = ((val*(*)(val* self))(var190->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var190); /* native_to_s on */ } -var_306 = var_maybe_null; -if (var_maybe_null){ -if (varonce307) { -var308 = varonce307; -} else { -var309 = "0"; -var310 = 1; -var311 = standard___standard__NativeString___to_s_with_length(var309, var310); -var308 = var311; -varonce307 = var308; +varonce189 = var190; +{ +nit___nit__AbstractCompilerVisitor___add(self, var221); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on */ } { -var312 = ((short int (*)(val* self, val* p0))(var_accept_null->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_accept_null, var308) /* == on */; +var224 = ((short int(*)(val* self))(var_ret->class->vft[COLOR_nit__abstract_compiler__MType__is_c_primitive]))(var_ret); /* is_c_primitive on */ } -var305 = var312; +var225 = !var224; +var_226 = var225; +if (var225){ +/* isa MNullableType */ +cltype228 = type_nit__MNullableType.color; +idtype229 = type_nit__MNullableType.id; +if(cltype228 >= var_ret->type->table_size) { +var227 = 0; } else { -var305 = var_306; +var227 = var_ret->type->type_table[cltype228] == idtype229; } -if (var305){ -if (varonce313) { -var314 = varonce313; +var230 = !var227; +var223 = var230; } else { -var315 = "is_nullable"; -var316 = 11; -var317 = standard___standard__NativeString___to_s_with_length(var315, var316); -var314 = var317; -varonce313 = var314; +var223 = var_226; } +var_231 = var223; +if (var223){ { -var318 = nit___nit__AbstractCompilerVisitor___get_name(self, var314); +{ /* Inline abstract_compiler#AbstractCompilerVisitor#compiler (self) on */ +var234 = self->attrs[COLOR_nit__abstract_compiler__AbstractCompilerVisitor___compiler].val; /* _compiler on */ +if (unlikely(var234 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _compiler"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1102); +fatal_exit(1); } -var_is_nullable = var318; -if (varonce319) { -var320 = varonce319; -} else { -var321 = "short int "; -var322 = 10; -var323 = standard___standard__NativeString___to_s_with_length(var321, var322); -var320 = var323; -varonce319 = var320; +var232 = var234; +RET_LABEL233:(void)0; } -if (varonce324) { -var325 = varonce324; -} else { -var326 = ";"; -var327 = 1; -var328 = standard___standard__NativeString___to_s_with_length(var326, var327); -var325 = var328; -varonce324 = var325; } -var329 = NEW_standard__Array(&type_standard__Array__standard__Object); -{ /* var329 = array_instance Array[Object] */ -var330 = 3; -var331 = NEW_standard__NativeArray(var330, &type_standard__NativeArray__standard__Object); -((struct instance_standard__NativeArray*)var331)->values[0] = (val*) var320; -((struct instance_standard__NativeArray*)var331)->values[1] = (val*) var_is_nullable; -((struct instance_standard__NativeArray*)var331)->values[2] = (val*) var325; { -((void (*)(val* self, val* p0, long p1))(var329->class->vft[COLOR_standard__array__Array__with_native]))(var329, var331, var330) /* with_native on */; +{ /* Inline abstract_compiler#AbstractCompiler#modelbuilder (var232) on */ +var237 = var232->attrs[COLOR_nit__abstract_compiler__AbstractCompiler___modelbuilder].val; /* _modelbuilder on */ +if (unlikely(var237 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 522); +fatal_exit(1); } +var235 = var237; +RET_LABEL236:(void)0; } -{ -var332 = ((val* (*)(val* self))(var329->class->vft[COLOR_standard__string__Object__to_s]))(var329) /* to_s on */; } { -nit___nit__AbstractCompilerVisitor___add_decl(self, var332); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on */ +{ /* Inline modelbuilder_base#ModelBuilder#toolcontext (var235) on */ +var240 = var235->attrs[COLOR_nit__modelbuilder_base__ModelBuilder___toolcontext].val; /* _toolcontext on */ +if (unlikely(var240 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__modelbuilder_base, 47); +fatal_exit(1); } -if (varonce333) { -var334 = varonce333; -} else { -var335 = " = "; -var336 = 3; -var337 = standard___standard__NativeString___to_s_with_length(var335, var336); -var334 = var337; -varonce333 = var334; +var238 = var240; +RET_LABEL239:(void)0; } -if (varonce338) { -var339 = varonce338; -} else { -var340 = "->is_nullable;"; -var341 = 14; -var342 = standard___standard__NativeString___to_s_with_length(var340, var341); -var339 = var342; -varonce338 = var339; } -var343 = NEW_standard__Array(&type_standard__Array__standard__Object); -{ /* var343 = array_instance Array[Object] */ -var344 = 4; -var345 = NEW_standard__NativeArray(var344, &type_standard__NativeArray__standard__Object); -((struct instance_standard__NativeArray*)var345)->values[0] = (val*) var_is_nullable; -((struct instance_standard__NativeArray*)var345)->values[1] = (val*) var334; -((struct instance_standard__NativeArray*)var345)->values[2] = (val*) var_type_struct; -((struct instance_standard__NativeArray*)var345)->values[3] = (val*) var339; { -((void (*)(val* self, val* p0, long p1))(var343->class->vft[COLOR_standard__array__Array__with_native]))(var343, var345, var344) /* with_native on */; +{ /* Inline abstract_compiler#ToolContext#opt_no_check_attr_isset (var238) on */ +var243 = var238->attrs[COLOR_nit__abstract_compiler__ToolContext___opt_no_check_attr_isset].val; /* _opt_no_check_attr_isset on */ +if (unlikely(var243 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_no_check_attr_isset"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 50); +fatal_exit(1); } +var241 = var243; +RET_LABEL242:(void)0; } -{ -var346 = ((val* (*)(val* self))(var343->class->vft[COLOR_standard__string__Object__to_s]))(var343) /* to_s on */; } { -nit___nit__AbstractCompilerVisitor___add(self, var346); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on */ +{ /* Inline opts#Option#value (var241) on */ +var246 = var241->attrs[COLOR_opts__Option___value].val; /* _value on */ +var244 = var246; +RET_LABEL245:(void)0; } -{ -var347 = standard___standard__String___Object__to_s(var_is_nullable); } -var_accept_null = var347; +var247 = (short int)((long)(var244)>>2); +var248 = !var247; +var222 = var248; } else { +var222 = var_231; } +if (var222){ +if (unlikely(varonce249==NULL)) { +var250 = NEW_standard__NativeArray(3l, &type_standard__NativeArray__standard__String); +if (likely(varonce251!=NULL)) { +var252 = varonce251; } else { -/* isa MClassType */ -cltype349 = type_nit__MClassType.color; -idtype350 = type_nit__MClassType.id; -if(cltype349 >= var_ntype->type->table_size) { -var348 = 0; +var253 = "if (unlikely("; +var254 = standard___standard__NativeString___to_s_with_length(var253, 13l); +var252 = var254; +varonce251 = var252; +} +((struct instance_standard__NativeArray*)var250)->values[0]=var252; +if (likely(varonce255!=NULL)) { +var256 = varonce255; } else { -var348 = var_ntype->type->type_table[cltype349] == idtype350; +var257 = " == NULL)) {"; +var258 = standard___standard__NativeString___to_s_with_length(var257, 12l); +var256 = var258; +varonce255 = var256; } -if (var348){ -{ -{ /* Inline separate_compiler#SeparateCompiler#undead_types (var_compiler) on */ -var353 = var_compiler->attrs[COLOR_nit__separate_compiler__SeparateCompiler___undead_types].val; /* _undead_types on */ -if (unlikely(var353 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _undead_types"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_compiler, 121); -show_backtrace(1); +((struct instance_standard__NativeArray*)var250)->values[2]=var256; +} else { +var250 = varonce249; +varonce249 = NULL; } -var351 = var353; -RET_LABEL352:(void)0; +{ +var259 = ((val*(*)(val* self))(var_res188->class->vft[COLOR_standard__string__Object__to_s]))(var_res188); /* to_s on */ } +((struct instance_standard__NativeArray*)var250)->values[1]=var259; +{ +var260 = ((val*(*)(val* self))(var250->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var250); /* native_to_s on */ } +varonce249 = var250; { -((void (*)(val* self, val* p0))(var351->class->vft[COLOR_standard__abstract_collection__SimpleCollection__add]))(var351, var_mtype) /* add on */; +nit___nit__AbstractCompilerVisitor___add(self, var260); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on */ +} +if (unlikely(varonce261==NULL)) { +var262 = NEW_standard__NativeArray(2l, &type_standard__NativeArray__standard__String); +if (likely(varonce263!=NULL)) { +var264 = varonce263; +} else { +var265 = "Uninitialized attribute "; +var266 = standard___standard__NativeString___to_s_with_length(var265, 24l); +var264 = var266; +varonce263 = var264; } -if (varonce354) { -var355 = varonce354; +((struct instance_standard__NativeArray*)var262)->values[0]=var264; } else { -var356 = "type_"; -var357 = 5; -var358 = standard___standard__NativeString___to_s_with_length(var356, var357); -var355 = var358; -varonce354 = var355; +var262 = varonce261; +varonce261 = NULL; } { -var359 = ((val* (*)(val* self))(var_mtype->class->vft[COLOR_nit__model_base__MEntity__c_name]))(var_mtype) /* c_name on */; +{ /* Inline model#MProperty#name (var_a) on */ +var269 = var_a->attrs[COLOR_nit__model__MProperty___name].val; /* _name on */ +if (unlikely(var269 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1933); +fatal_exit(1); } -var360 = NEW_standard__Array(&type_standard__Array__standard__Object); -{ /* var360 = array_instance Array[Object] */ -var361 = 2; -var362 = NEW_standard__NativeArray(var361, &type_standard__NativeArray__standard__Object); -((struct instance_standard__NativeArray*)var362)->values[0] = (val*) var355; -((struct instance_standard__NativeArray*)var362)->values[1] = (val*) var359; -{ -((void (*)(val* self, val* p0, long p1))(var360->class->vft[COLOR_standard__array__Array__with_native]))(var360, var362, var361) /* with_native on */; +var267 = var269; +RET_LABEL268:(void)0; } } +((struct instance_standard__NativeArray*)var262)->values[1]=var267; { -var363 = ((val* (*)(val* self))(var360->class->vft[COLOR_standard__string__Object__to_s]))(var360) /* to_s on */; +var270 = ((val*(*)(val* self))(var262->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var262); /* native_to_s on */ } +varonce261 = var262; { -nit___nit__AbstractCompilerVisitor___require_declaration(self, var363); /* Direct call abstract_compiler#AbstractCompilerVisitor#require_declaration on */ +nit___nit__AbstractCompilerVisitor___add_abort(self, var270); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_abort on */ } -if (varonce364) { -var365 = varonce364; +if (likely(varonce271!=NULL)) { +var272 = varonce271; } else { -var366 = "(&type_"; -var367 = 7; -var368 = standard___standard__NativeString___to_s_with_length(var366, var367); -var365 = var368; -varonce364 = var365; +var273 = "}"; +var274 = standard___standard__NativeString___to_s_with_length(var273, 1l); +var272 = var274; +varonce271 = var272; } { -var369 = ((val* (*)(val* self))(var_mtype->class->vft[COLOR_nit__model_base__MEntity__c_name]))(var_mtype) /* c_name on */; -} -if (varonce370) { -var371 = varonce370; -} else { -var372 = ")"; -var373 = 1; -var374 = standard___standard__NativeString___to_s_with_length(var372, var373); -var371 = var374; -varonce370 = var371; +nit___nit__AbstractCompilerVisitor___add(self, var272); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on */ } -var375 = NEW_standard__Array(&type_standard__Array__standard__Object); -{ /* var375 = array_instance Array[Object] */ -var376 = 3; -var377 = NEW_standard__NativeArray(var376, &type_standard__NativeArray__standard__Object); -((struct instance_standard__NativeArray*)var377)->values[0] = (val*) var365; -((struct instance_standard__NativeArray*)var377)->values[1] = (val*) var369; -((struct instance_standard__NativeArray*)var377)->values[2] = (val*) var371; { -((void (*)(val* self, val* p0, long p1))(var375->class->vft[COLOR_standard__array__Array__with_native]))(var375, var377, var376) /* with_native on */; +{ /* Inline abstract_compiler#AbstractCompilerVisitor#compiler (self) on */ +var277 = self->attrs[COLOR_nit__abstract_compiler__AbstractCompilerVisitor___compiler].val; /* _compiler on */ +if (unlikely(var277 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _compiler"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1102); +fatal_exit(1); } +var275 = var277; +RET_LABEL276:(void)0; } -{ -var378 = ((val* (*)(val* self))(var375->class->vft[COLOR_standard__string__Object__to_s]))(var375) /* to_s on */; } { -nit___nit__SeparateCompilerVisitor___hardening_cast_type(self, var378); /* Direct call separate_compiler#SeparateCompilerVisitor#hardening_cast_type on */ +{ /* Inline abstract_compiler#AbstractCompiler#modelbuilder (var275) on */ +var280 = var275->attrs[COLOR_nit__abstract_compiler__AbstractCompiler___modelbuilder].val; /* _modelbuilder on */ +if (unlikely(var280 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 522); +fatal_exit(1); +} +var278 = var280; +RET_LABEL279:(void)0; } -if (varonce379) { -var380 = varonce379; -} else { -var381 = " = type_"; -var382 = 8; -var383 = standard___standard__NativeString___to_s_with_length(var381, var382); -var380 = var383; -varonce379 = var380; } { -var384 = ((val* (*)(val* self))(var_mtype->class->vft[COLOR_nit__model_base__MEntity__c_name]))(var_mtype) /* c_name on */; +{ /* Inline modelbuilder_base#ModelBuilder#toolcontext (var278) on */ +var283 = var278->attrs[COLOR_nit__modelbuilder_base__ModelBuilder___toolcontext].val; /* _toolcontext on */ +if (unlikely(var283 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__modelbuilder_base, 47); +fatal_exit(1); +} +var281 = var283; +RET_LABEL282:(void)0; } -if (varonce385) { -var386 = varonce385; -} else { -var387 = ".color;"; -var388 = 7; -var389 = standard___standard__NativeString___to_s_with_length(var387, var388); -var386 = var389; -varonce385 = var386; } -var390 = NEW_standard__Array(&type_standard__Array__standard__Object); -{ /* var390 = array_instance Array[Object] */ -var391 = 4; -var392 = NEW_standard__NativeArray(var391, &type_standard__NativeArray__standard__Object); -((struct instance_standard__NativeArray*)var392)->values[0] = (val*) var_cltype; -((struct instance_standard__NativeArray*)var392)->values[1] = (val*) var380; -((struct instance_standard__NativeArray*)var392)->values[2] = (val*) var384; -((struct instance_standard__NativeArray*)var392)->values[3] = (val*) var386; { -((void (*)(val* self, val* p0, long p1))(var390->class->vft[COLOR_standard__array__Array__with_native]))(var390, var392, var391) /* with_native on */; +{ /* Inline abstract_compiler#ToolContext#opt_isset_checks_metrics (var281) on */ +var286 = var281->attrs[COLOR_nit__abstract_compiler__ToolContext___opt_isset_checks_metrics].val; /* _opt_isset_checks_metrics on */ +if (unlikely(var286 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_isset_checks_metrics"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 64); +fatal_exit(1); } +var284 = var286; +RET_LABEL285:(void)0; } -{ -var393 = ((val* (*)(val* self))(var390->class->vft[COLOR_standard__string__Object__to_s]))(var390) /* to_s on */; } { -nit___nit__AbstractCompilerVisitor___add(self, var393); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on */ +{ /* Inline opts#Option#value (var284) on */ +var289 = var284->attrs[COLOR_opts__Option___value].val; /* _value on */ +var287 = var289; +RET_LABEL288:(void)0; } -if (varonce394) { -var395 = varonce394; -} else { -var396 = " = type_"; -var397 = 8; -var398 = standard___standard__NativeString___to_s_with_length(var396, var397); -var395 = var398; -varonce394 = var395; } +var290 = (short int)((long)(var287)>>2); +if (var290){ { -var399 = ((val* (*)(val* self))(var_mtype->class->vft[COLOR_nit__model_base__MEntity__c_name]))(var_mtype) /* c_name on */; +{ /* Inline abstract_compiler#AbstractCompilerVisitor#compiler (self) on */ +var293 = self->attrs[COLOR_nit__abstract_compiler__AbstractCompilerVisitor___compiler].val; /* _compiler on */ +if (unlikely(var293 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _compiler"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1102); +fatal_exit(1); +} +var291 = var293; +RET_LABEL292:(void)0; } -if (varonce400) { -var401 = varonce400; -} else { -var402 = ".id;"; -var403 = 4; -var404 = standard___standard__NativeString___to_s_with_length(var402, var403); -var401 = var404; -varonce400 = var401; } -var405 = NEW_standard__Array(&type_standard__Array__standard__Object); -{ /* var405 = array_instance Array[Object] */ -var406 = 4; -var407 = NEW_standard__NativeArray(var406, &type_standard__NativeArray__standard__Object); -((struct instance_standard__NativeArray*)var407)->values[0] = (val*) var_idtype; -((struct instance_standard__NativeArray*)var407)->values[1] = (val*) var395; -((struct instance_standard__NativeArray*)var407)->values[2] = (val*) var399; -((struct instance_standard__NativeArray*)var407)->values[3] = (val*) var401; +var_294 = var291; { -((void (*)(val* self, val* p0, long p1))(var405->class->vft[COLOR_standard__array__Array__with_native]))(var405, var407, var406) /* with_native on */; +{ /* Inline separate_compiler#SeparateCompiler#isset_checks_count (var_294) on */ +var297 = var_294->attrs[COLOR_nit__separate_compiler__SeparateCompiler___isset_checks_count].l; /* _isset_checks_count on */ +var295 = var297; +RET_LABEL296:(void)0; } } { -var408 = ((val* (*)(val* self))(var405->class->vft[COLOR_standard__string__Object__to_s]))(var405) /* to_s on */; +{ /* Inline kernel#Int#+ (var295,1l) on */ +/* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */ +/* <1l:Int> isa OTHER */ +var300 = 1; /* easy <1l:Int> isa OTHER*/ +if (unlikely(!var300)) { +var_class_name303 = type_standard__Int.name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name303); +PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 537); +fatal_exit(1); +} +var304 = var295 + 1l; +var298 = var304; +goto RET_LABEL299; +RET_LABEL299:(void)0; } -{ -nit___nit__AbstractCompilerVisitor___add(self, var408); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on */ } { -{ /* Inline abstract_compiler#AbstractCompiler#modelbuilder (var_compiler) on */ -var411 = var_compiler->attrs[COLOR_nit__abstract_compiler__AbstractCompiler___modelbuilder].val; /* _modelbuilder on */ -if (unlikely(var411 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 481); -show_backtrace(1); +{ /* Inline separate_compiler#SeparateCompiler#isset_checks_count= (var_294,var298) on */ +var_294->attrs[COLOR_nit__separate_compiler__SeparateCompiler___isset_checks_count].l = var298; /* _isset_checks_count on */ +RET_LABEL305:(void)0; } -var409 = var411; -RET_LABEL410:(void)0; } +if (likely(varonce306!=NULL)) { +var307 = varonce306; +} else { +var308 = "count_isset_checks++;"; +var309 = standard___standard__NativeString___to_s_with_length(var308, 21l); +var307 = var309; +varonce306 = var307; } { -{ /* Inline modelbuilder_base#ModelBuilder#toolcontext (var409) on */ -var414 = var409->attrs[COLOR_nit__modelbuilder_base__ModelBuilder___toolcontext].val; /* _toolcontext on */ -if (unlikely(var414 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__modelbuilder_base, 47); -show_backtrace(1); +nit___nit__AbstractCompilerVisitor___add(self, var307); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on */ } -var412 = var414; -RET_LABEL413:(void)0; +} else { +} +} else { +} +var = var_res188; +goto RET_LABEL; +} +RET_LABEL:; +return var; } +/* method separate_compiler#SeparateCompilerVisitor#write_attribute for (self: SeparateCompilerVisitor, MAttribute, RuntimeVariable, RuntimeVariable) */ +void nit___nit__SeparateCompilerVisitor___nit__abstract_compiler__AbstractCompilerVisitor__write_attribute(val* self, val* p0, val* p1, val* p2) { +val* var_a /* var a: MAttribute */; +val* var_recv /* var recv: RuntimeVariable */; +val* var_value /* var value: RuntimeVariable */; +val* var /* : MPropDef */; +val* var2 /* : MPropDef */; +val* var3 /* : nullable MType */; +val* var5 /* : nullable MType */; +val* var_mtype /* var mtype: MType */; +val* var6 /* : MPropDef */; +val* var8 /* : MPropDef */; +val* var9 /* : MClassDef */; +val* var11 /* : MClassDef */; +val* var_intromclassdef /* var intromclassdef: MClassDef */; +val* var12 /* : MClassType */; +val* var14 /* : MClassType */; +val* var15 /* : MClassType */; +val* var17 /* : MClassType */; +val* var18 /* : MModule */; +val* var20 /* : MModule */; +val* var21 /* : MType */; +val* var22 /* : RuntimeVariable */; +val* var23 /* : String */; +val* var24 /* : AbstractCompiler */; +val* var26 /* : AbstractCompiler */; +val* var27 /* : ModelBuilder */; +val* var29 /* : ModelBuilder */; +val* var30 /* : ToolContext */; +val* var32 /* : ToolContext */; +val* var33 /* : OptionBool */; +val* var35 /* : OptionBool */; +val* var36 /* : nullable Object */; +val* var38 /* : nullable Object */; +short int var39 /* : Bool */; +val* var40 /* : NativeArray[String] */; +static val* varonce; +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 /* : String */; +val* var_attr /* var attr: String */; +short int var52 /* : Bool */; +short int var54 /* : Bool */; +val* var55 /* : AbstractCompiler */; +val* var57 /* : AbstractCompiler */; +val* var58 /* : MModule */; +val* var60 /* : MModule */; +val* var61 /* : MClassType */; +val* var62 /* : RuntimeVariable */; +val* var_tv /* var tv: RuntimeVariable */; +val* var64 /* : NativeArray[String] */; +static val* varonce63; +static val* varonce65; +val* var66 /* : String */; +char* var67 /* : NativeString */; +val* var68 /* : FlatString */; +static val* varonce69; +val* var70 /* : String */; +char* var71 /* : NativeString */; +val* var72 /* : FlatString */; +static val* varonce73; +val* var74 /* : String */; +char* var75 /* : NativeString */; +val* var76 /* : FlatString */; +static val* varonce77; +val* var78 /* : String */; +char* var79 /* : NativeString */; +val* var80 /* : FlatString */; +val* var81 /* : String */; +val* var82 /* : String */; +val* var83 /* : String */; +val* var84 /* : String */; +short int var85 /* : Bool */; +short int var86 /* : Bool */; +int cltype; +int idtype; +val* var88 /* : NativeArray[String] */; +static val* varonce87; +static val* varonce89; +val* var90 /* : String */; +char* var91 /* : NativeString */; +val* var92 /* : FlatString */; +static val* varonce93; +val* var94 /* : String */; +char* var95 /* : NativeString */; +val* var96 /* : FlatString */; +val* var97 /* : String */; +val* var99 /* : NativeArray[String] */; +static val* varonce98; +static val* varonce100; +val* var101 /* : String */; +char* var102 /* : NativeString */; +val* var103 /* : FlatString */; +static val* varonce104; +val* var105 /* : String */; +char* var106 /* : NativeString */; +val* var107 /* : FlatString */; +static val* varonce108; +val* var109 /* : String */; +char* var110 /* : NativeString */; +val* var111 /* : FlatString */; +static val* varonce112; +val* var113 /* : String */; +char* var114 /* : NativeString */; +val* var115 /* : FlatString */; +static val* varonce116; +val* var117 /* : String */; +char* var118 /* : NativeString */; +val* var119 /* : FlatString */; +static val* varonce120; +val* var121 /* : String */; +char* var122 /* : NativeString */; +val* var123 /* : FlatString */; +val* var124 /* : String */; +val* var125 /* : String */; +val* var126 /* : String */; +val* var127 /* : String */; +val* var128 /* : String */; +static val* varonce129; +val* var130 /* : String */; +char* var131 /* : NativeString */; +val* var132 /* : FlatString */; +val* var133 /* : MClassType */; +val* var134 /* : MType */; +val* var135 /* : RuntimeVariable */; +val* var137 /* : NativeArray[String] */; +static val* varonce136; +static val* varonce138; +val* var139 /* : String */; +char* var140 /* : NativeString */; +val* var141 /* : FlatString */; +static val* varonce142; +val* var143 /* : String */; +char* var144 /* : NativeString */; +val* var145 /* : FlatString */; +static val* varonce146; +val* var147 /* : String */; +char* var148 /* : NativeString */; +val* var149 /* : FlatString */; +static val* varonce150; +val* var151 /* : String */; +char* var152 /* : NativeString */; +val* var153 /* : FlatString */; +val* var154 /* : String */; +val* var155 /* : String */; +val* var156 /* : String */; +val* var157 /* : String */; +static val* varonce158; +val* var159 /* : String */; +char* var160 /* : NativeString */; +val* var161 /* : FlatString */; +val* var163 /* : NativeArray[String] */; +static val* varonce162; +static val* varonce164; +val* var165 /* : String */; +char* var166 /* : NativeString */; +val* var167 /* : FlatString */; +static val* varonce168; +val* var169 /* : String */; +char* var170 /* : NativeString */; +val* var171 /* : FlatString */; +static val* varonce172; +val* var173 /* : String */; +char* var174 /* : NativeString */; +val* var175 /* : FlatString */; +static val* varonce176; +val* var177 /* : String */; +char* var178 /* : NativeString */; +val* var179 /* : FlatString */; +val* var180 /* : String */; +val* var181 /* : String */; +val* var182 /* : String */; +val* var183 /* : String */; +val* var185 /* : NativeArray[String] */; +static val* varonce184; +static val* varonce186; +val* var187 /* : String */; +char* var188 /* : NativeString */; +val* var189 /* : FlatString */; +static val* varonce190; +val* var191 /* : String */; +char* var192 /* : NativeString */; +val* var193 /* : FlatString */; +static val* varonce194; +val* var195 /* : String */; +char* var196 /* : NativeString */; +val* var197 /* : FlatString */; +static val* varonce198; +val* var199 /* : String */; +char* var200 /* : NativeString */; +val* var201 /* : FlatString */; +static val* varonce202; +val* var203 /* : String */; +char* var204 /* : NativeString */; +val* var205 /* : FlatString */; +static val* varonce206; +val* var207 /* : String */; +char* var208 /* : NativeString */; +val* var209 /* : FlatString */; +val* var210 /* : String */; +val* var211 /* : String */; +val* var212 /* : String */; +val* var213 /* : String */; +val* var214 /* : String */; +val* var215 /* : String */; +val* var216 /* : String */; +var_a = p0; +var_recv = p1; +var_value = p2; +{ +nit___nit__AbstractCompilerVisitor___check_recv_notnull(self, var_recv); /* Direct call abstract_compiler#AbstractCompilerVisitor#check_recv_notnull on */ } { -{ /* Inline abstract_compiler#ToolContext#opt_typing_test_metrics (var412) on */ -var417 = var412->attrs[COLOR_nit__abstract_compiler__ToolContext___opt_typing_test_metrics].val; /* _opt_typing_test_metrics on */ -if (unlikely(var417 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_typing_test_metrics"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 59); -show_backtrace(1); +{ /* Inline model#MProperty#intro (var_a) on */ +var2 = var_a->attrs[COLOR_nit__model__MProperty___intro].val; /* _intro on */ +if (unlikely(var2 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1968); +fatal_exit(1); } -var415 = var417; -RET_LABEL416:(void)0; +var = var2; +RET_LABEL1:(void)0; } } { -{ /* Inline opts#Option#value (var415) on */ -var420 = var415->attrs[COLOR_opts__Option___value].val; /* _value on */ -var418 = var420; -RET_LABEL419:(void)0; +{ /* Inline model#MAttributeDef#static_mtype (var) on */ +var5 = var->attrs[COLOR_nit__model__MAttributeDef___static_mtype].val; /* _static_mtype on */ +var3 = var5; +RET_LABEL4:(void)0; } } -var421 = ((struct instance_standard__Bool*)var418)->value; /* autounbox from nullable Object to Bool */; -if (var421){ +if (unlikely(var3 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Cast failed"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_compiler, 1678); +fatal_exit(1); +} +var_mtype = var3; { -{ /* Inline abstract_compiler#AbstractCompilerVisitor#compiler (self) on */ -var424 = self->attrs[COLOR_nit__abstract_compiler__AbstractCompilerVisitor___compiler].val; /* _compiler on */ -if (unlikely(var424 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _compiler"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1059); -show_backtrace(1); +{ /* Inline model#MProperty#intro (var_a) on */ +var8 = var_a->attrs[COLOR_nit__model__MProperty___intro].val; /* _intro on */ +if (unlikely(var8 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1968); +fatal_exit(1); } -var422 = var424; -RET_LABEL423:(void)0; +var6 = var8; +RET_LABEL7:(void)0; } } { -{ /* Inline abstract_compiler#AbstractCompiler#count_type_test_resolved (var422) on */ -var427 = var422->attrs[COLOR_nit__abstract_compiler__AbstractCompiler___count_type_test_resolved].val; /* _count_type_test_resolved on */ -if (unlikely(var427 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _count_type_test_resolved"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 964); -show_backtrace(1); +{ /* Inline model#MPropDef#mclassdef (var6) on */ +var11 = var6->attrs[COLOR_nit__model__MPropDef___mclassdef].val; /* _mclassdef on */ +if (unlikely(var11 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdef"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 2209); +fatal_exit(1); } -var425 = var427; -RET_LABEL426:(void)0; +var9 = var11; +RET_LABEL10:(void)0; } } -var_428 = var425; -var_429 = var_tag; +var_intromclassdef = var9; { -var430 = standard___standard__HashMap___standard__abstract_collection__MapRead___91d_93d(var_428, var_429); +{ /* Inline model#MClassDef#bound_mtype (var_intromclassdef) on */ +var14 = var_intromclassdef->attrs[COLOR_nit__model__MClassDef___bound_mtype].val; /* _bound_mtype on */ +if (unlikely(var14 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _bound_mtype"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 556); +fatal_exit(1); +} +var12 = var14; +RET_LABEL13:(void)0; +} } -var431 = 1; { -{ /* Inline kernel#Int#+ (var430,var431) on */ -/* Covariant cast for argument 0 (i) isa OTHER */ -/* isa OTHER */ -var434 = 1; /* easy isa OTHER*/ -if (unlikely(!var434)) { -var_class_name437 = type_standard__Int.name; -PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name437); -PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 413); -show_backtrace(1); +{ /* Inline model#MClassDef#bound_mtype (var_intromclassdef) on */ +var17 = var_intromclassdef->attrs[COLOR_nit__model__MClassDef___bound_mtype].val; /* _bound_mtype on */ +if (unlikely(var17 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _bound_mtype"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 556); +fatal_exit(1); } -var438 = ((struct instance_standard__Int*)var430)->value; /* autounbox from nullable Object to Int */; -var439 = var438 + var431; -var432 = var439; -goto RET_LABEL433; -RET_LABEL433:(void)0; +var15 = var17; +RET_LABEL16:(void)0; } } { -var440 = BOX_standard__Int(var432); /* autobox from Int to nullable Object */ -standard___standard__HashMap___standard__abstract_collection__Map___91d_93d_61d(var_428, var_429, var440); /* Direct call hash_collection#HashMap#[]= on */ +{ /* Inline model#MClassDef#mmodule (var_intromclassdef) on */ +var20 = var_intromclassdef->attrs[COLOR_nit__model__MClassDef___mmodule].val; /* _mmodule on */ +if (unlikely(var20 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 550); +fatal_exit(1); } -if (varonce441) { -var442 = varonce441; -} else { -var443 = "count_type_test_resolved_"; -var444 = 25; -var445 = standard___standard__NativeString___to_s_with_length(var443, var444); -var442 = var445; -varonce441 = var442; +var18 = var20; +RET_LABEL19:(void)0; } -if (varonce446) { -var447 = varonce446; -} else { -var448 = "++;"; -var449 = 3; -var450 = standard___standard__NativeString___to_s_with_length(var448, var449); -var447 = var450; -varonce446 = var447; } -var451 = NEW_standard__Array(&type_standard__Array__standard__Object); -{ /* var451 = array_instance Array[Object] */ -var452 = 3; -var453 = NEW_standard__NativeArray(var452, &type_standard__NativeArray__standard__Object); -((struct instance_standard__NativeArray*)var453)->values[0] = (val*) var442; -((struct instance_standard__NativeArray*)var453)->values[1] = (val*) var_tag; -((struct instance_standard__NativeArray*)var453)->values[2] = (val*) var447; { -((void (*)(val* self, val* p0, long p1))(var451->class->vft[COLOR_standard__array__Array__with_native]))(var451, var453, var452) /* with_native on */; +var21 = ((val*(*)(val* self, val* p0, val* p1, val* p2, short int p3))(var_mtype->class->vft[COLOR_nit__model__MType__resolve_for]))(var_mtype, var12, var15, var18, 1); /* resolve_for on */ } +var_mtype = var21; +{ +var22 = nit___nit__SeparateCompilerVisitor___nit__abstract_compiler__AbstractCompilerVisitor__autobox(self, var_value, var_mtype); } +var_value = var22; { -var454 = ((val* (*)(val* self))(var451->class->vft[COLOR_standard__string__Object__to_s]))(var451) /* to_s on */; +var23 = nit__separate_compiler___MEntity___const_color(var_a); } { -nit___nit__AbstractCompilerVisitor___add(self, var454); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on */ +nit___nit__AbstractCompilerVisitor___require_declaration(self, var23); /* Direct call abstract_compiler#AbstractCompilerVisitor#require_declaration on */ } -} else { +{ +{ /* Inline abstract_compiler#AbstractCompilerVisitor#compiler (self) on */ +var26 = self->attrs[COLOR_nit__abstract_compiler__AbstractCompilerVisitor___compiler].val; /* _compiler on */ +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); } -} else { -if (varonce455) { -var456 = varonce455; -} else { -var457 = "PRINT_ERROR(\"NOT YET IMPLEMENTED: type_test(%s, "; -var458 = 48; -var459 = standard___standard__NativeString___to_s_with_length(var457, var458); -var456 = var459; -varonce455 = var456; +var24 = var26; +RET_LABEL25:(void)0; } -if (varonce460) { -var461 = varonce460; -} else { -var462 = ").\\n\", \""; -var463 = 8; -var464 = standard___standard__NativeString___to_s_with_length(var462, var463); -var461 = var464; -varonce460 = var461; } { -var465 = nit___nit__RuntimeVariable___standard__string__Object__inspect(var_value); +{ /* Inline abstract_compiler#AbstractCompiler#modelbuilder (var24) on */ +var29 = var24->attrs[COLOR_nit__abstract_compiler__AbstractCompiler___modelbuilder].val; /* _modelbuilder on */ +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; } -if (varonce466) { -var467 = varonce466; -} else { -var468 = "\"); show_backtrace(1);"; -var469 = 22; -var470 = standard___standard__NativeString___to_s_with_length(var468, var469); -var467 = var470; -varonce466 = var467; } -var471 = NEW_standard__Array(&type_standard__Array__standard__Object); -{ /* var471 = array_instance Array[Object] */ -var472 = 5; -var473 = NEW_standard__NativeArray(var472, &type_standard__NativeArray__standard__Object); -((struct instance_standard__NativeArray*)var473)->values[0] = (val*) var456; -((struct instance_standard__NativeArray*)var473)->values[1] = (val*) var_mtype; -((struct instance_standard__NativeArray*)var473)->values[2] = (val*) var461; -((struct instance_standard__NativeArray*)var473)->values[3] = (val*) var465; -((struct instance_standard__NativeArray*)var473)->values[4] = (val*) var467; { -((void (*)(val* self, val* p0, long p1))(var471->class->vft[COLOR_standard__array__Array__with_native]))(var471, var473, var472) /* with_native on */; +{ /* Inline modelbuilder_base#ModelBuilder#toolcontext (var27) on */ +var32 = var27->attrs[COLOR_nit__modelbuilder_base__ModelBuilder___toolcontext].val; /* _toolcontext on */ +if (unlikely(var32 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__modelbuilder_base, 47); +fatal_exit(1); +} +var30 = var32; +RET_LABEL31:(void)0; } } { -var474 = ((val* (*)(val* self))(var471->class->vft[COLOR_standard__string__Object__to_s]))(var471) /* to_s on */; +{ /* Inline separate_compiler#ToolContext#opt_no_union_attribute (var30) on */ +var35 = var30->attrs[COLOR_nit__separate_compiler__ToolContext___opt_no_union_attribute].val; /* _opt_no_union_attribute on */ +if (unlikely(var35 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_no_union_attribute"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_compiler, 28); +fatal_exit(1); +} +var33 = var35; +RET_LABEL34:(void)0; +} } { -nit___nit__AbstractCompilerVisitor___add(self, var474); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on */ +{ /* Inline opts#Option#value (var33) on */ +var38 = var33->attrs[COLOR_opts__Option___value].val; /* _value on */ +var36 = var38; +RET_LABEL37:(void)0; } } +var39 = (short int)((long)(var36)>>2); +if (var39){ +if (unlikely(varonce==NULL)) { +var40 = NEW_standard__NativeArray(4l, &type_standard__NativeArray__standard__String); +if (likely(varonce41!=NULL)) { +var42 = varonce41; +} else { +var43 = "->attrs["; +var44 = standard___standard__NativeString___to_s_with_length(var43, 8l); +var42 = var44; +varonce41 = var42; } -if (var_maybe_null){ -if (varonce475) { -var476 = varonce475; +((struct instance_standard__NativeArray*)var40)->values[1]=var42; +if (likely(varonce45!=NULL)) { +var46 = varonce45; } else { -var477 = "if("; -var478 = 3; -var479 = standard___standard__NativeString___to_s_with_length(var477, var478); -var476 = var479; -varonce475 = var476; +var47 = "]"; +var48 = standard___standard__NativeString___to_s_with_length(var47, 1l); +var46 = var48; +varonce45 = var46; } -if (varonce480) { -var481 = varonce480; +((struct instance_standard__NativeArray*)var40)->values[3]=var46; } else { -var482 = " == NULL) {"; -var483 = 11; -var484 = standard___standard__NativeString___to_s_with_length(var482, var483); -var481 = var484; -varonce480 = var481; +var40 = varonce; +varonce = NULL; } -var485 = NEW_standard__Array(&type_standard__Array__standard__Object); -{ /* var485 = array_instance Array[Object] */ -var486 = 3; -var487 = NEW_standard__NativeArray(var486, &type_standard__NativeArray__standard__Object); -((struct instance_standard__NativeArray*)var487)->values[0] = (val*) var476; -((struct instance_standard__NativeArray*)var487)->values[1] = (val*) var_value; -((struct instance_standard__NativeArray*)var487)->values[2] = (val*) var481; { -((void (*)(val* self, val* p0, long p1))(var485->class->vft[COLOR_standard__array__Array__with_native]))(var485, var487, var486) /* with_native on */; -} +var49 = ((val*(*)(val* self))(var_recv->class->vft[COLOR_standard__string__Object__to_s]))(var_recv); /* to_s on */ } +((struct instance_standard__NativeArray*)var40)->values[0]=var49; { -var488 = ((val* (*)(val* self))(var485->class->vft[COLOR_standard__string__Object__to_s]))(var485) /* to_s on */; +var50 = nit__separate_compiler___MEntity___const_color(var_a); } +((struct instance_standard__NativeArray*)var40)->values[2]=var50; { -nit___nit__AbstractCompilerVisitor___add(self, var488); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on */ +var51 = ((val*(*)(val* self))(var40->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var40); /* native_to_s on */ } -if (varonce489) { -var490 = varonce489; -} else { -var491 = " = "; -var492 = 3; -var493 = standard___standard__NativeString___to_s_with_length(var491, var492); -var490 = var493; -varonce489 = var490; +varonce = var40; +var_attr = var51; +{ +{ /* Inline separate_compiler#MType#is_tagged (var_mtype) on */ +var54 = var_mtype->attrs[COLOR_nit__separate_compiler__MType___is_tagged].s; /* _is_tagged on */ +var52 = var54; +RET_LABEL53:(void)0; } -if (varonce494) { -var495 = varonce494; -} else { -var496 = ";"; -var497 = 1; -var498 = standard___standard__NativeString___to_s_with_length(var496, var497); -var495 = var498; -varonce494 = var495; } -var499 = NEW_standard__Array(&type_standard__Array__standard__Object); -{ /* var499 = array_instance Array[Object] */ -var500 = 4; -var501 = NEW_standard__NativeArray(var500, &type_standard__NativeArray__standard__Object); -((struct instance_standard__NativeArray*)var501)->values[0] = (val*) var_res; -((struct instance_standard__NativeArray*)var501)->values[1] = (val*) var490; -((struct instance_standard__NativeArray*)var501)->values[2] = (val*) var_accept_null; -((struct instance_standard__NativeArray*)var501)->values[3] = (val*) var495; +if (var52){ { -((void (*)(val* self, val* p0, long p1))(var499->class->vft[COLOR_standard__array__Array__with_native]))(var499, var501, var500) /* with_native on */; +{ /* Inline abstract_compiler#AbstractCompilerVisitor#compiler (self) on */ +var57 = self->attrs[COLOR_nit__abstract_compiler__AbstractCompilerVisitor___compiler].val; /* _compiler on */ +if (unlikely(var57 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _compiler"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1102); +fatal_exit(1); } +var55 = var57; +RET_LABEL56:(void)0; } -{ -var502 = ((val* (*)(val* self))(var499->class->vft[COLOR_standard__string__Object__to_s]))(var499) /* to_s on */; } { -nit___nit__AbstractCompilerVisitor___add(self, var502); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on */ +{ /* Inline abstract_compiler#AbstractCompiler#mainmodule (var55) on */ +var60 = var55->attrs[COLOR_nit__abstract_compiler__AbstractCompiler___mainmodule].val; /* _mainmodule on */ +if (unlikely(var60 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 515); +fatal_exit(1); } -if (varonce503) { -var504 = varonce503; -} else { -var505 = "} else {"; -var506 = 8; -var507 = standard___standard__NativeString___to_s_with_length(var505, var506); -var504 = var507; -varonce503 = var504; +var58 = var60; +RET_LABEL59:(void)0; } -{ -nit___nit__AbstractCompilerVisitor___add(self, var504); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on */ } -} else { +{ +var61 = nit__model___MModule___object_type(var58); } { -var508 = nit___nit__SeparateCompilerVisitor___type_info(self, var_value); +var62 = nit___nit__SeparateCompilerVisitor___nit__abstract_compiler__AbstractCompilerVisitor__autobox(self, var_value, var61); } -var_value_type_info = var508; -if (varonce509) { -var510 = varonce509; +var_tv = var62; +if (unlikely(varonce63==NULL)) { +var64 = NEW_standard__NativeArray(8l, &type_standard__NativeArray__standard__String); +if (likely(varonce65!=NULL)) { +var66 = varonce65; } else { -var511 = "if("; -var512 = 3; -var513 = standard___standard__NativeString___to_s_with_length(var511, var512); -var510 = var513; -varonce509 = var510; +var67 = " = "; +var68 = standard___standard__NativeString___to_s_with_length(var67, 3l); +var66 = var68; +varonce65 = var66; } -if (varonce514) { -var515 = varonce514; +((struct instance_standard__NativeArray*)var64)->values[1]=var66; +if (likely(varonce69!=NULL)) { +var70 = varonce69; } else { -var516 = " >= "; -var517 = 4; -var518 = standard___standard__NativeString___to_s_with_length(var516, var517); -var515 = var518; -varonce514 = var515; +var71 = "; /* "; +var72 = standard___standard__NativeString___to_s_with_length(var71, 5l); +var70 = var72; +varonce69 = var70; } -if (varonce519) { -var520 = varonce519; +((struct instance_standard__NativeArray*)var64)->values[3]=var70; +if (likely(varonce73!=NULL)) { +var74 = varonce73; } else { -var521 = "->table_size) {"; -var522 = 15; -var523 = standard___standard__NativeString___to_s_with_length(var521, var522); -var520 = var523; -varonce519 = var520; +var75 = " on "; +var76 = standard___standard__NativeString___to_s_with_length(var75, 4l); +var74 = var76; +varonce73 = var74; } -var524 = NEW_standard__Array(&type_standard__Array__standard__Object); -{ /* var524 = array_instance Array[Object] */ -var525 = 5; -var526 = NEW_standard__NativeArray(var525, &type_standard__NativeArray__standard__Object); -((struct instance_standard__NativeArray*)var526)->values[0] = (val*) var510; -((struct instance_standard__NativeArray*)var526)->values[1] = (val*) var_cltype; -((struct instance_standard__NativeArray*)var526)->values[2] = (val*) var515; -((struct instance_standard__NativeArray*)var526)->values[3] = (val*) var_value_type_info; -((struct instance_standard__NativeArray*)var526)->values[4] = (val*) var520; -{ -((void (*)(val* self, val* p0, long p1))(var524->class->vft[COLOR_standard__array__Array__with_native]))(var524, var526, var525) /* with_native on */; +((struct instance_standard__NativeArray*)var64)->values[5]=var74; +if (likely(varonce77!=NULL)) { +var78 = varonce77; +} else { +var79 = " */"; +var80 = standard___standard__NativeString___to_s_with_length(var79, 3l); +var78 = var80; +varonce77 = var78; } +((struct instance_standard__NativeArray*)var64)->values[7]=var78; +} else { +var64 = varonce63; +varonce63 = NULL; } +((struct instance_standard__NativeArray*)var64)->values[0]=var_attr; { -var527 = ((val* (*)(val* self))(var524->class->vft[COLOR_standard__string__Object__to_s]))(var524) /* to_s on */; +var81 = ((val*(*)(val* self))(var_tv->class->vft[COLOR_standard__string__Object__to_s]))(var_tv); /* to_s on */ } +((struct instance_standard__NativeArray*)var64)->values[2]=var81; { -nit___nit__AbstractCompilerVisitor___add(self, var527); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on */ +var82 = ((val*(*)(val* self))(var_a->class->vft[COLOR_standard__string__Object__to_s]))(var_a); /* to_s on */ } -if (varonce528) { -var529 = varonce528; -} else { -var530 = " = 0;"; -var531 = 5; -var532 = standard___standard__NativeString___to_s_with_length(var530, var531); -var529 = var532; -varonce528 = var529; -} -var533 = NEW_standard__Array(&type_standard__Array__standard__Object); -{ /* var533 = array_instance Array[Object] */ -var534 = 2; -var535 = NEW_standard__NativeArray(var534, &type_standard__NativeArray__standard__Object); -((struct instance_standard__NativeArray*)var535)->values[0] = (val*) var_res; -((struct instance_standard__NativeArray*)var535)->values[1] = (val*) var529; +((struct instance_standard__NativeArray*)var64)->values[4]=var82; { -((void (*)(val* self, val* p0, long p1))(var533->class->vft[COLOR_standard__array__Array__with_native]))(var533, var535, var534) /* with_native on */; -} +var83 = nit___nit__RuntimeVariable___standard__string__Object__inspect(var_recv); } +((struct instance_standard__NativeArray*)var64)->values[6]=var83; { -var536 = ((val* (*)(val* self))(var533->class->vft[COLOR_standard__string__Object__to_s]))(var533) /* to_s on */; +var84 = ((val*(*)(val* self))(var64->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var64); /* native_to_s on */ } +varonce63 = var64; { -nit___nit__AbstractCompilerVisitor___add(self, var536); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on */ +nit___nit__AbstractCompilerVisitor___add(self, var84); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on */ } -if (varonce537) { -var538 = varonce537; } else { -var539 = "} else {"; -var540 = 8; -var541 = standard___standard__NativeString___to_s_with_length(var539, var540); -var538 = var541; -varonce537 = var538; -} { -nit___nit__AbstractCompilerVisitor___add(self, var538); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on */ +var85 = ((short int(*)(val* self))(var_mtype->class->vft[COLOR_nit__abstract_compiler__MType__is_c_primitive]))(var_mtype); /* is_c_primitive on */ } -if (varonce542) { -var543 = varonce542; +if (var85){ +/* isa MClassType */ +cltype = type_nit__MClassType.color; +idtype = type_nit__MClassType.id; +if(cltype >= var_mtype->type->table_size) { +var86 = 0; } else { -var544 = " = "; -var545 = 3; -var546 = standard___standard__NativeString___to_s_with_length(var544, var545); -var543 = var546; -varonce542 = var543; +var86 = var_mtype->type->type_table[cltype] == idtype; } -if (varonce547) { -var548 = varonce547; +if (unlikely(!var86)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_compiler, 1693); +fatal_exit(1); +} +if (unlikely(varonce87==NULL)) { +var88 = NEW_standard__NativeArray(3l, &type_standard__NativeArray__standard__String); +if (likely(varonce89!=NULL)) { +var90 = varonce89; } else { -var549 = "->type_table["; -var550 = 13; -var551 = standard___standard__NativeString___to_s_with_length(var549, var550); -var548 = var551; -varonce547 = var548; +var91 = "if ("; +var92 = standard___standard__NativeString___to_s_with_length(var91, 4l); +var90 = var92; +varonce89 = var90; } -if (varonce552) { -var553 = varonce552; +((struct instance_standard__NativeArray*)var88)->values[0]=var90; +if (likely(varonce93!=NULL)) { +var94 = varonce93; } else { -var554 = "] == "; -var555 = 5; -var556 = standard___standard__NativeString___to_s_with_length(var554, var555); -var553 = var556; -varonce552 = var553; +var95 = " != NULL) {"; +var96 = standard___standard__NativeString___to_s_with_length(var95, 11l); +var94 = var96; +varonce93 = var94; } -if (varonce557) { -var558 = varonce557; +((struct instance_standard__NativeArray*)var88)->values[2]=var94; } else { -var559 = ";"; -var560 = 1; -var561 = standard___standard__NativeString___to_s_with_length(var559, var560); -var558 = var561; -varonce557 = var558; +var88 = varonce87; +varonce87 = NULL; } -var562 = NEW_standard__Array(&type_standard__Array__standard__Object); -{ /* var562 = array_instance Array[Object] */ -var563 = 8; -var564 = NEW_standard__NativeArray(var563, &type_standard__NativeArray__standard__Object); -((struct instance_standard__NativeArray*)var564)->values[0] = (val*) var_res; -((struct instance_standard__NativeArray*)var564)->values[1] = (val*) var543; -((struct instance_standard__NativeArray*)var564)->values[2] = (val*) var_value_type_info; -((struct instance_standard__NativeArray*)var564)->values[3] = (val*) var548; -((struct instance_standard__NativeArray*)var564)->values[4] = (val*) var_cltype; -((struct instance_standard__NativeArray*)var564)->values[5] = (val*) var553; -((struct instance_standard__NativeArray*)var564)->values[6] = (val*) var_idtype; -((struct instance_standard__NativeArray*)var564)->values[7] = (val*) var558; +((struct instance_standard__NativeArray*)var88)->values[1]=var_attr; { -((void (*)(val* self, val* p0, long p1))(var562->class->vft[COLOR_standard__array__Array__with_native]))(var562, var564, var563) /* with_native on */; -} +var97 = ((val*(*)(val* self))(var88->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var88); /* native_to_s on */ } +varonce87 = var88; { -var565 = ((val* (*)(val* self))(var562->class->vft[COLOR_standard__string__Object__to_s]))(var562) /* to_s on */; +nit___nit__AbstractCompilerVisitor___add(self, var97); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on */ } -{ -nit___nit__AbstractCompilerVisitor___add(self, var565); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on */ +if (unlikely(varonce98==NULL)) { +var99 = NEW_standard__NativeArray(11l, &type_standard__NativeArray__standard__String); +if (likely(varonce100!=NULL)) { +var101 = varonce100; +} else { +var102 = "((struct instance_"; +var103 = standard___standard__NativeString___to_s_with_length(var102, 18l); +var101 = var103; +varonce100 = var101; } -if (varonce566) { -var567 = varonce566; +((struct instance_standard__NativeArray*)var99)->values[0]=var101; +if (likely(varonce104!=NULL)) { +var105 = varonce104; } else { -var568 = "}"; -var569 = 1; -var570 = standard___standard__NativeString___to_s_with_length(var568, var569); -var567 = var570; -varonce566 = var567; +var106 = "*)"; +var107 = standard___standard__NativeString___to_s_with_length(var106, 2l); +var105 = var107; +varonce104 = var105; } -{ -nit___nit__AbstractCompilerVisitor___add(self, var567); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on */ +((struct instance_standard__NativeArray*)var99)->values[2]=var105; +if (likely(varonce108!=NULL)) { +var109 = varonce108; +} else { +var110 = ")->value = "; +var111 = standard___standard__NativeString___to_s_with_length(var110, 11l); +var109 = var111; +varonce108 = var109; } -if (var_maybe_null){ -if (varonce571) { -var572 = varonce571; +((struct instance_standard__NativeArray*)var99)->values[4]=var109; +if (likely(varonce112!=NULL)) { +var113 = varonce112; } else { -var573 = "}"; -var574 = 1; -var575 = standard___standard__NativeString___to_s_with_length(var573, var574); -var572 = var575; -varonce571 = var572; +var114 = "; /* "; +var115 = standard___standard__NativeString___to_s_with_length(var114, 5l); +var113 = var115; +varonce112 = var113; } -{ -nit___nit__AbstractCompilerVisitor___add(self, var572); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on */ +((struct instance_standard__NativeArray*)var99)->values[6]=var113; +if (likely(varonce116!=NULL)) { +var117 = varonce116; +} else { +var118 = " on "; +var119 = standard___standard__NativeString___to_s_with_length(var118, 4l); +var117 = var119; +varonce116 = var117; } +((struct instance_standard__NativeArray*)var99)->values[8]=var117; +if (likely(varonce120!=NULL)) { +var121 = varonce120; } else { +var122 = " */"; +var123 = standard___standard__NativeString___to_s_with_length(var122, 3l); +var121 = var123; +varonce120 = var121; } -var = var_res; -goto RET_LABEL; -RET_LABEL:; -return var; +((struct instance_standard__NativeArray*)var99)->values[10]=var121; +} else { +var99 = varonce98; +varonce98 = NULL; } -/* method separate_compiler#SeparateCompilerVisitor#is_same_type_test for (self: SeparateCompilerVisitor, RuntimeVariable, RuntimeVariable): RuntimeVariable */ -val* nit___nit__SeparateCompilerVisitor___nit__abstract_compiler__AbstractCompilerVisitor__is_same_type_test(val* self, val* p0, val* p1) { -val* var /* : RuntimeVariable */; -val* var_value1 /* var value1: RuntimeVariable */; -val* var_value2 /* var value2: RuntimeVariable */; -val* var1 /* : MClassType */; -val* var2 /* : RuntimeVariable */; -val* var_res /* var res: RuntimeVariable */; -short int var3 /* : Bool */; -val* var4 /* : MType */; -val* var6 /* : MType */; -val* var7 /* : String */; -static val* varonce; -val* var8 /* : String */; -char* var9 /* : NativeString */; -long var10 /* : Int */; -val* var11 /* : FlatString */; -short int var12 /* : Bool */; -val* var_other /* var other: nullable Object */; -short int var14 /* : Bool */; -short int var15 /* : Bool */; -short int var_ /* var : Bool */; -val* var16 /* : MType */; -val* var18 /* : MType */; -val* var19 /* : String */; -static val* varonce20; -val* var21 /* : String */; -char* var22 /* : NativeString */; -long var23 /* : Int */; -val* var24 /* : FlatString */; -short int var25 /* : Bool */; -val* var_tmp /* var tmp: RuntimeVariable */; -val* var26 /* : MType */; -val* var28 /* : MType */; -val* var29 /* : String */; -static val* varonce30; -val* var31 /* : String */; -char* var32 /* : NativeString */; -long var33 /* : Int */; -val* var34 /* : FlatString */; -short int var35 /* : Bool */; -short int var37 /* : Bool */; -short int var38 /* : Bool */; -val* var39 /* : MType */; -val* var41 /* : MType */; -val* var42 /* : MType */; -val* var44 /* : MType */; -short int var45 /* : Bool */; -val* var_other47 /* var other: nullable Object */; -short int var48 /* : Bool */; -short int var50 /* : Bool */; -static val* varonce51; -val* var52 /* : String */; -char* var53 /* : NativeString */; -long var54 /* : Int */; -val* var55 /* : FlatString */; -val* var56 /* : MType */; -val* var58 /* : MType */; -static val* varonce59; -val* var60 /* : String */; -char* var61 /* : NativeString */; -long var62 /* : Int */; -val* var63 /* : FlatString */; -val* var64 /* : MType */; -val* var66 /* : MType */; -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 */; -val* var76 /* : MType */; -val* var78 /* : MType */; -val* var79 /* : String */; -static val* varonce80; -val* var81 /* : String */; -char* var82 /* : NativeString */; -long var83 /* : Int */; -val* var84 /* : FlatString */; -short int var85 /* : Bool */; -short int var87 /* : Bool */; -short int var88 /* : Bool */; -static val* varonce89; -val* var90 /* : String */; -char* var91 /* : NativeString */; -long var92 /* : Int */; -val* var93 /* : FlatString */; -val* var94 /* : MType */; -val* var96 /* : MType */; -static val* varonce97; -val* var98 /* : String */; -char* var99 /* : NativeString */; -long var100 /* : Int */; -val* var101 /* : FlatString */; -val* var102 /* : MType */; -val* var104 /* : MType */; -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 /* : MType */; -val* var116 /* : MType */; -short int var117 /* : Bool */; -int cltype; -int idtype; -const char* var_class_name; -val* var_mtype1 /* var mtype1: MClassType */; -static val* varonce118; -val* var119 /* : String */; -char* var120 /* : NativeString */; -long var121 /* : Int */; -val* var122 /* : FlatString */; -val* var123 /* : String */; -val* var124 /* : Array[Object] */; -long var125 /* : Int */; -val* var126 /* : NativeArray[Object] */; -val* var127 /* : String */; -static val* varonce128; -val* var129 /* : String */; -char* var130 /* : NativeString */; -long var131 /* : Int */; -val* var132 /* : FlatString */; -static val* varonce133; -val* var134 /* : String */; -char* var135 /* : NativeString */; -long var136 /* : Int */; -val* var137 /* : FlatString */; -static val* varonce138; -val* var139 /* : String */; -char* var140 /* : NativeString */; -long var141 /* : Int */; -val* var142 /* : FlatString */; -val* var143 /* : String */; -static val* varonce144; -val* var145 /* : String */; -char* var146 /* : NativeString */; -long var147 /* : Int */; -val* var148 /* : FlatString */; -val* var149 /* : Array[Object] */; -long var150 /* : Int */; -val* var151 /* : NativeArray[Object] */; -val* var152 /* : String */; -static val* varonce153; -val* var154 /* : String */; -char* var155 /* : NativeString */; -long var156 /* : Int */; -val* var157 /* : FlatString */; -static val* varonce158; -val* var159 /* : String */; -char* var160 /* : NativeString */; -long var161 /* : Int */; -val* var162 /* : FlatString */; -static val* varonce163; -val* var164 /* : String */; -char* var165 /* : NativeString */; -long var166 /* : Int */; -val* var167 /* : FlatString */; -static val* varonce168; -val* var169 /* : String */; -char* var170 /* : NativeString */; -long var171 /* : Int */; -val* var172 /* : FlatString */; -static val* varonce173; -val* var174 /* : String */; -char* var175 /* : NativeString */; -long var176 /* : Int */; -val* var177 /* : FlatString */; -static val* varonce178; -val* var179 /* : String */; -char* var180 /* : NativeString */; -long var181 /* : Int */; -val* var182 /* : FlatString */; -static val* varonce183; -val* var184 /* : String */; -char* var185 /* : NativeString */; -long var186 /* : Int */; -val* var187 /* : FlatString */; -val* var188 /* : Array[Object] */; -long var189 /* : Int */; -val* var190 /* : NativeArray[Object] */; -val* var191 /* : String */; -var_value1 = p0; -var_value2 = p1; { -var1 = nit___nit__AbstractCompilerVisitor___bool_type(self); +var124 = ((val*(*)(val* self))(var_mtype->class->vft[COLOR_nit__model_base__MEntity__c_name]))(var_mtype); /* c_name on */ } +((struct instance_standard__NativeArray*)var99)->values[1]=var124; +((struct instance_standard__NativeArray*)var99)->values[3]=var_attr; { -var2 = nit___nit__AbstractCompilerVisitor___new_var(self, var1); +var125 = ((val*(*)(val* self))(var_value->class->vft[COLOR_standard__string__Object__to_s]))(var_value); /* to_s on */ } -var_res = var2; +((struct instance_standard__NativeArray*)var99)->values[5]=var125; { -{ /* Inline abstract_compiler#RuntimeVariable#mtype (var_value2) on */ -var6 = var_value2->attrs[COLOR_nit__abstract_compiler__RuntimeVariable___mtype].val; /* _mtype on */ -if (unlikely(var6 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1680); -show_backtrace(1); +var126 = ((val*(*)(val* self))(var_a->class->vft[COLOR_standard__string__Object__to_s]))(var_a); /* to_s on */ } -var4 = var6; -RET_LABEL5:(void)0; +((struct instance_standard__NativeArray*)var99)->values[7]=var126; +{ +var127 = nit___nit__RuntimeVariable___standard__string__Object__inspect(var_recv); } +((struct instance_standard__NativeArray*)var99)->values[9]=var127; +{ +var128 = ((val*(*)(val* self))(var99->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var99); /* native_to_s on */ } +varonce98 = var99; { -var7 = ((val* (*)(val* self))(var4->class->vft[COLOR_nit__abstract_compiler__MType__ctype]))(var4) /* ctype on */; +nit___nit__AbstractCompilerVisitor___add(self, var128); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on */ } -if (varonce) { -var8 = varonce; +if (likely(varonce129!=NULL)) { +var130 = varonce129; } else { -var9 = "val*"; -var10 = 4; -var11 = standard___standard__NativeString___to_s_with_length(var9, var10); -var8 = var11; -varonce = var8; +var131 = "} else {"; +var132 = standard___standard__NativeString___to_s_with_length(var131, 8l); +var130 = var132; +varonce129 = var130; } { -{ /* Inline kernel#Object#!= (var7,var8) on */ -var_other = var8; -{ -var14 = ((short int (*)(val* self, val* p0))(var7->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var7, var_other) /* == on */; -} -var15 = !var14; -var12 = var15; -goto RET_LABEL13; -RET_LABEL13:(void)0; +nit___nit__AbstractCompilerVisitor___add(self, var130); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on */ } -} -var_ = var12; -if (var12){ { -{ /* Inline abstract_compiler#RuntimeVariable#mtype (var_value1) on */ -var18 = var_value1->attrs[COLOR_nit__abstract_compiler__RuntimeVariable___mtype].val; /* _mtype on */ -if (unlikely(var18 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1680); -show_backtrace(1); -} -var16 = var18; -RET_LABEL17:(void)0; -} +var133 = nit___nit__AbstractCompilerVisitor___object_type(self); } { -var19 = ((val* (*)(val* self))(var16->class->vft[COLOR_nit__abstract_compiler__MType__ctype]))(var16) /* ctype on */; -} -if (varonce20) { -var21 = varonce20; -} else { -var22 = "val*"; -var23 = 4; -var24 = standard___standard__NativeString___to_s_with_length(var22, var23); -var21 = var24; -varonce20 = var21; +var134 = nit___nit__MType___as_nullable(var133); } { -var25 = ((short int (*)(val* self, val* p0))(var19->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var19, var21) /* == on */; +var135 = nit___nit__SeparateCompilerVisitor___nit__abstract_compiler__AbstractCompilerVisitor__autobox(self, var_value, var134); } -var3 = var25; +var_value = var135; +if (unlikely(varonce136==NULL)) { +var137 = NEW_standard__NativeArray(8l, &type_standard__NativeArray__standard__String); +if (likely(varonce138!=NULL)) { +var139 = varonce138; } else { -var3 = var_; +var140 = " = "; +var141 = standard___standard__NativeString___to_s_with_length(var140, 3l); +var139 = var141; +varonce138 = var139; } -if (var3){ -var_tmp = var_value1; -var_value1 = var_value2; -var_value2 = var_tmp; +((struct instance_standard__NativeArray*)var137)->values[1]=var139; +if (likely(varonce142!=NULL)) { +var143 = varonce142; } else { +var144 = "; /* "; +var145 = standard___standard__NativeString___to_s_with_length(var144, 5l); +var143 = var145; +varonce142 = var143; } -{ -{ /* Inline abstract_compiler#RuntimeVariable#mtype (var_value1) on */ -var28 = var_value1->attrs[COLOR_nit__abstract_compiler__RuntimeVariable___mtype].val; /* _mtype on */ -if (unlikely(var28 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1680); -show_backtrace(1); -} -var26 = var28; -RET_LABEL27:(void)0; -} +((struct instance_standard__NativeArray*)var137)->values[3]=var143; +if (likely(varonce146!=NULL)) { +var147 = varonce146; +} else { +var148 = " on "; +var149 = standard___standard__NativeString___to_s_with_length(var148, 4l); +var147 = var149; +varonce146 = var147; } -{ -var29 = ((val* (*)(val* self))(var26->class->vft[COLOR_nit__abstract_compiler__MType__ctype]))(var26) /* ctype on */; +((struct instance_standard__NativeArray*)var137)->values[5]=var147; +if (likely(varonce150!=NULL)) { +var151 = varonce150; +} else { +var152 = " */"; +var153 = standard___standard__NativeString___to_s_with_length(var152, 3l); +var151 = var153; +varonce150 = var151; } -if (varonce30) { -var31 = varonce30; +((struct instance_standard__NativeArray*)var137)->values[7]=var151; } else { -var32 = "val*"; -var33 = 4; -var34 = standard___standard__NativeString___to_s_with_length(var32, var33); -var31 = var34; -varonce30 = var31; +var137 = varonce136; +varonce136 = NULL; } +((struct instance_standard__NativeArray*)var137)->values[0]=var_attr; { -{ /* Inline kernel#Object#!= (var29,var31) on */ -var_other = var31; -{ -var37 = ((short int (*)(val* self, val* p0))(var29->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var29, var_other) /* == on */; +var154 = ((val*(*)(val* self))(var_value->class->vft[COLOR_standard__string__Object__to_s]))(var_value); /* to_s on */ } -var38 = !var37; -var35 = var38; -goto RET_LABEL36; -RET_LABEL36:(void)0; -} -} -if (var35){ +((struct instance_standard__NativeArray*)var137)->values[2]=var154; { -{ /* Inline abstract_compiler#RuntimeVariable#mtype (var_value2) on */ -var41 = var_value2->attrs[COLOR_nit__abstract_compiler__RuntimeVariable___mtype].val; /* _mtype on */ -if (unlikely(var41 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1680); -show_backtrace(1); -} -var39 = var41; -RET_LABEL40:(void)0; -} +var155 = ((val*(*)(val* self))(var_a->class->vft[COLOR_standard__string__Object__to_s]))(var_a); /* to_s on */ } +((struct instance_standard__NativeArray*)var137)->values[4]=var155; { -{ /* Inline abstract_compiler#RuntimeVariable#mtype (var_value1) on */ -var44 = var_value1->attrs[COLOR_nit__abstract_compiler__RuntimeVariable___mtype].val; /* _mtype on */ -if (unlikely(var44 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1680); -show_backtrace(1); -} -var42 = var44; -RET_LABEL43:(void)0; -} +var156 = nit___nit__RuntimeVariable___standard__string__Object__inspect(var_recv); } +((struct instance_standard__NativeArray*)var137)->values[6]=var156; { -{ /* Inline kernel#Object#== (var39,var42) on */ -var_other47 = var42; -{ -{ /* Inline kernel#Object#is_same_instance (var39,var_other47) on */ -var50 = var39 == var_other47; -var48 = var50; -goto RET_LABEL49; -RET_LABEL49:(void)0; -} -} -var45 = var48; -goto RET_LABEL46; -RET_LABEL46:(void)0; +var157 = ((val*(*)(val* self))(var137->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var137); /* native_to_s on */ } +varonce136 = var137; +{ +nit___nit__AbstractCompilerVisitor___add(self, var157); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on */ } -if (var45){ -if (varonce51) { -var52 = varonce51; +if (likely(varonce158!=NULL)) { +var159 = varonce158; } else { -var53 = " = 1; /* is_same_type_test: compatible types "; -var54 = 45; -var55 = standard___standard__NativeString___to_s_with_length(var53, var54); -var52 = var55; -varonce51 = var52; +var160 = "}"; +var161 = standard___standard__NativeString___to_s_with_length(var160, 1l); +var159 = var161; +varonce158 = var159; } { -{ /* Inline abstract_compiler#RuntimeVariable#mtype (var_value1) on */ -var58 = var_value1->attrs[COLOR_nit__abstract_compiler__RuntimeVariable___mtype].val; /* _mtype on */ -if (unlikely(var58 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1680); -show_backtrace(1); -} -var56 = var58; -RET_LABEL57:(void)0; -} +nit___nit__AbstractCompilerVisitor___add(self, var159); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on */ } -if (varonce59) { -var60 = varonce59; } else { -var61 = " vs. "; -var62 = 5; -var63 = standard___standard__NativeString___to_s_with_length(var61, var62); -var60 = var63; -varonce59 = var60; +if (unlikely(varonce162==NULL)) { +var163 = NEW_standard__NativeArray(8l, &type_standard__NativeArray__standard__String); +if (likely(varonce164!=NULL)) { +var165 = varonce164; +} else { +var166 = " = "; +var167 = standard___standard__NativeString___to_s_with_length(var166, 3l); +var165 = var167; +varonce164 = var165; } -{ -{ /* Inline abstract_compiler#RuntimeVariable#mtype (var_value2) on */ -var66 = var_value2->attrs[COLOR_nit__abstract_compiler__RuntimeVariable___mtype].val; /* _mtype on */ -if (unlikely(var66 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1680); -show_backtrace(1); +((struct instance_standard__NativeArray*)var163)->values[1]=var165; +if (likely(varonce168!=NULL)) { +var169 = varonce168; +} else { +var170 = "; /* "; +var171 = standard___standard__NativeString___to_s_with_length(var170, 5l); +var169 = var171; +varonce168 = var169; } -var64 = var66; -RET_LABEL65:(void)0; +((struct instance_standard__NativeArray*)var163)->values[3]=var169; +if (likely(varonce172!=NULL)) { +var173 = varonce172; +} else { +var174 = " on "; +var175 = standard___standard__NativeString___to_s_with_length(var174, 4l); +var173 = var175; +varonce172 = var173; } +((struct instance_standard__NativeArray*)var163)->values[5]=var173; +if (likely(varonce176!=NULL)) { +var177 = varonce176; +} else { +var178 = " */"; +var179 = standard___standard__NativeString___to_s_with_length(var178, 3l); +var177 = var179; +varonce176 = var177; } -if (varonce67) { -var68 = varonce67; +((struct instance_standard__NativeArray*)var163)->values[7]=var177; } else { -var69 = " */"; -var70 = 3; -var71 = standard___standard__NativeString___to_s_with_length(var69, var70); -var68 = var71; -varonce67 = var68; +var163 = varonce162; +varonce162 = NULL; } -var72 = NEW_standard__Array(&type_standard__Array__standard__Object); -{ /* var72 = array_instance Array[Object] */ -var73 = 6; -var74 = NEW_standard__NativeArray(var73, &type_standard__NativeArray__standard__Object); -((struct instance_standard__NativeArray*)var74)->values[0] = (val*) var_res; -((struct instance_standard__NativeArray*)var74)->values[1] = (val*) var52; -((struct instance_standard__NativeArray*)var74)->values[2] = (val*) var56; -((struct instance_standard__NativeArray*)var74)->values[3] = (val*) var60; -((struct instance_standard__NativeArray*)var74)->values[4] = (val*) var64; -((struct instance_standard__NativeArray*)var74)->values[5] = (val*) var68; +((struct instance_standard__NativeArray*)var163)->values[0]=var_attr; { -((void (*)(val* self, val* p0, long p1))(var72->class->vft[COLOR_standard__array__Array__with_native]))(var72, var74, var73) /* with_native on */; -} +var180 = ((val*(*)(val* self))(var_value->class->vft[COLOR_standard__string__Object__to_s]))(var_value); /* to_s on */ } +((struct instance_standard__NativeArray*)var163)->values[2]=var180; { -var75 = ((val* (*)(val* self))(var72->class->vft[COLOR_standard__string__Object__to_s]))(var72) /* to_s on */; +var181 = ((val*(*)(val* self))(var_a->class->vft[COLOR_standard__string__Object__to_s]))(var_a); /* to_s on */ } +((struct instance_standard__NativeArray*)var163)->values[4]=var181; { -nit___nit__AbstractCompilerVisitor___add(self, var75); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on */ +var182 = nit___nit__RuntimeVariable___standard__string__Object__inspect(var_recv); } -} else { +((struct instance_standard__NativeArray*)var163)->values[6]=var182; { -{ /* Inline abstract_compiler#RuntimeVariable#mtype (var_value2) on */ -var78 = var_value2->attrs[COLOR_nit__abstract_compiler__RuntimeVariable___mtype].val; /* _mtype on */ -if (unlikely(var78 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1680); -show_backtrace(1); -} -var76 = var78; -RET_LABEL77:(void)0; -} +var183 = ((val*(*)(val* self))(var163->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var163); /* native_to_s on */ } +varonce162 = var163; { -var79 = ((val* (*)(val* self))(var76->class->vft[COLOR_nit__abstract_compiler__MType__ctype]))(var76) /* ctype on */; +nit___nit__AbstractCompilerVisitor___add(self, var183); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on */ } -if (varonce80) { -var81 = varonce80; -} else { -var82 = "val*"; -var83 = 4; -var84 = standard___standard__NativeString___to_s_with_length(var82, var83); -var81 = var84; -varonce80 = var81; } -{ -{ /* Inline kernel#Object#!= (var79,var81) on */ -var_other = var81; -{ -var87 = ((short int (*)(val* self, val* p0))(var79->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var79, var_other) /* == on */; } -var88 = !var87; -var85 = var88; -goto RET_LABEL86; -RET_LABEL86:(void)0; +} else { +if (unlikely(varonce184==NULL)) { +var185 = NEW_standard__NativeArray(12l, &type_standard__NativeArray__standard__String); +if (likely(varonce186!=NULL)) { +var187 = varonce186; +} else { +var188 = "->attrs["; +var189 = standard___standard__NativeString___to_s_with_length(var188, 8l); +var187 = var189; +varonce186 = var187; } +((struct instance_standard__NativeArray*)var185)->values[1]=var187; +if (likely(varonce190!=NULL)) { +var191 = varonce190; +} else { +var192 = "]."; +var193 = standard___standard__NativeString___to_s_with_length(var192, 2l); +var191 = var193; +varonce190 = var191; } -if (var85){ -if (varonce89) { -var90 = varonce89; +((struct instance_standard__NativeArray*)var185)->values[3]=var191; +if (likely(varonce194!=NULL)) { +var195 = varonce194; } else { -var91 = " = 0; /* is_same_type_test: incompatible types "; -var92 = 47; -var93 = standard___standard__NativeString___to_s_with_length(var91, var92); -var90 = var93; -varonce89 = var90; +var196 = " = "; +var197 = standard___standard__NativeString___to_s_with_length(var196, 3l); +var195 = var197; +varonce194 = var195; } -{ -{ /* Inline abstract_compiler#RuntimeVariable#mtype (var_value1) on */ -var96 = var_value1->attrs[COLOR_nit__abstract_compiler__RuntimeVariable___mtype].val; /* _mtype on */ -if (unlikely(var96 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1680); -show_backtrace(1); +((struct instance_standard__NativeArray*)var185)->values[5]=var195; +if (likely(varonce198!=NULL)) { +var199 = varonce198; +} else { +var200 = "; /* "; +var201 = standard___standard__NativeString___to_s_with_length(var200, 5l); +var199 = var201; +varonce198 = var199; } -var94 = var96; -RET_LABEL95:(void)0; +((struct instance_standard__NativeArray*)var185)->values[7]=var199; +if (likely(varonce202!=NULL)) { +var203 = varonce202; +} else { +var204 = " on "; +var205 = standard___standard__NativeString___to_s_with_length(var204, 4l); +var203 = var205; +varonce202 = var203; } +((struct instance_standard__NativeArray*)var185)->values[9]=var203; +if (likely(varonce206!=NULL)) { +var207 = varonce206; +} else { +var208 = " */"; +var209 = standard___standard__NativeString___to_s_with_length(var208, 3l); +var207 = var209; +varonce206 = var207; } -if (varonce97) { -var98 = varonce97; +((struct instance_standard__NativeArray*)var185)->values[11]=var207; } else { -var99 = " vs. "; -var100 = 5; -var101 = standard___standard__NativeString___to_s_with_length(var99, var100); -var98 = var101; -varonce97 = var98; +var185 = varonce184; +varonce184 = NULL; } { -{ /* Inline abstract_compiler#RuntimeVariable#mtype (var_value2) on */ -var104 = var_value2->attrs[COLOR_nit__abstract_compiler__RuntimeVariable___mtype].val; /* _mtype on */ -if (unlikely(var104 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1680); -show_backtrace(1); -} -var102 = var104; -RET_LABEL103:(void)0; +var210 = ((val*(*)(val* self))(var_recv->class->vft[COLOR_standard__string__Object__to_s]))(var_recv); /* to_s on */ } +((struct instance_standard__NativeArray*)var185)->values[0]=var210; +{ +var211 = nit__separate_compiler___MEntity___const_color(var_a); } -if (varonce105) { -var106 = varonce105; -} else { -var107 = "*/"; -var108 = 2; -var109 = standard___standard__NativeString___to_s_with_length(var107, var108); -var106 = var109; -varonce105 = var106; +((struct instance_standard__NativeArray*)var185)->values[2]=var211; +{ +var212 = ((val*(*)(val* self))(var_mtype->class->vft[COLOR_nit__abstract_compiler__MType__ctypename]))(var_mtype); /* ctypename on */ } -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*) var94; -((struct instance_standard__NativeArray*)var112)->values[3] = (val*) var98; -((struct instance_standard__NativeArray*)var112)->values[4] = (val*) var102; -((struct instance_standard__NativeArray*)var112)->values[5] = (val*) var106; +((struct instance_standard__NativeArray*)var185)->values[4]=var212; { -((void (*)(val* self, val* p0, long p1))(var110->class->vft[COLOR_standard__array__Array__with_native]))(var110, var112, var111) /* with_native on */; +var213 = ((val*(*)(val* self))(var_value->class->vft[COLOR_standard__string__Object__to_s]))(var_value); /* to_s on */ } +((struct instance_standard__NativeArray*)var185)->values[6]=var213; +{ +var214 = ((val*(*)(val* self))(var_a->class->vft[COLOR_standard__string__Object__to_s]))(var_a); /* to_s on */ } +((struct instance_standard__NativeArray*)var185)->values[8]=var214; { -var113 = ((val* (*)(val* self))(var110->class->vft[COLOR_standard__string__Object__to_s]))(var110) /* to_s on */; +var215 = nit___nit__RuntimeVariable___standard__string__Object__inspect(var_recv); } +((struct instance_standard__NativeArray*)var185)->values[10]=var215; { -nit___nit__AbstractCompilerVisitor___add(self, var113); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on */ +var216 = ((val*(*)(val* self))(var185->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var185); /* native_to_s on */ } -} else { +varonce184 = var185; { -{ /* Inline abstract_compiler#RuntimeVariable#mtype (var_value1) on */ -var116 = var_value1->attrs[COLOR_nit__abstract_compiler__RuntimeVariable___mtype].val; /* _mtype on */ -if (unlikely(var116 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1680); -show_backtrace(1); +nit___nit__AbstractCompilerVisitor___add(self, var216); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on */ } -var114 = var116; -RET_LABEL115:(void)0; } +RET_LABEL:; } -/* isa MClassType */ -cltype = type_nit__MClassType.color; -idtype = type_nit__MClassType.id; -if(cltype >= var114->type->table_size) { -var117 = 0; -} else { -var117 = var114->type->type_table[cltype] == idtype; +/* method separate_compiler#SeparateCompilerVisitor#hardening_live_open_type for (self: SeparateCompilerVisitor, MType) */ +void nit___nit__SeparateCompilerVisitor___hardening_live_open_type(val* self, val* p0) { +val* var_mtype /* var mtype: MType */; +val* var /* : AbstractCompiler */; +val* var2 /* : AbstractCompiler */; +val* var3 /* : ModelBuilder */; +val* var5 /* : ModelBuilder */; +val* var6 /* : ToolContext */; +val* var8 /* : ToolContext */; +val* var9 /* : OptionBool */; +val* var11 /* : OptionBool */; +val* var12 /* : nullable Object */; +val* var14 /* : nullable Object */; +short int var15 /* : Bool */; +short int var16 /* : Bool */; +val* var17 /* : String */; +val* var18 /* : String */; +val* var_col /* var col: String */; +val* var19 /* : NativeArray[String] */; +static val* varonce; +static val* varonce20; +val* var21 /* : String */; +char* var22 /* : NativeString */; +val* var23 /* : FlatString */; +static val* varonce24; +val* var25 /* : String */; +char* var26 /* : NativeString */; +val* var27 /* : FlatString */; +val* var28 /* : String */; +val* var30 /* : NativeArray[String] */; +static val* varonce29; +static val* varonce31; +val* var32 /* : String */; +char* var33 /* : NativeString */; +val* var34 /* : FlatString */; +static val* varonce35; +val* var36 /* : String */; +char* var37 /* : NativeString */; +val* var38 /* : FlatString */; +val* var39 /* : String */; +val* var40 /* : String */; +val* var41 /* : String */; +static val* varonce42; +val* var43 /* : String */; +char* var44 /* : NativeString */; +val* var45 /* : FlatString */; +static val* varonce46; +val* var47 /* : String */; +char* var48 /* : NativeString */; +val* var49 /* : FlatString */; +var_mtype = p0; +{ +{ /* Inline abstract_compiler#AbstractCompilerVisitor#compiler (self) on */ +var2 = self->attrs[COLOR_nit__abstract_compiler__AbstractCompilerVisitor___compiler].val; /* _compiler on */ +if (unlikely(var2 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _compiler"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1102); +fatal_exit(1); } -if (unlikely(!var117)) { -var_class_name = var114 == NULL ? "null" : var114->type->name; -PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "MClassType", var_class_name); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_compiler, 1570); -show_backtrace(1); +var = var2; +RET_LABEL1:(void)0; } -var_mtype1 = var114; -if (varonce118) { -var119 = varonce118; -} else { -var120 = "class_"; -var121 = 6; -var122 = standard___standard__NativeString___to_s_with_length(var120, var121); -var119 = var122; -varonce118 = var119; } { -var123 = ((val* (*)(val* self))(var_mtype1->class->vft[COLOR_nit__model_base__MEntity__c_name]))(var_mtype1) /* c_name on */; +{ /* Inline abstract_compiler#AbstractCompiler#modelbuilder (var) on */ +var5 = var->attrs[COLOR_nit__abstract_compiler__AbstractCompiler___modelbuilder].val; /* _modelbuilder on */ +if (unlikely(var5 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 522); +fatal_exit(1); } -var124 = NEW_standard__Array(&type_standard__Array__standard__Object); -{ /* var124 = array_instance Array[Object] */ -var125 = 2; -var126 = NEW_standard__NativeArray(var125, &type_standard__NativeArray__standard__Object); -((struct instance_standard__NativeArray*)var126)->values[0] = (val*) var119; -((struct instance_standard__NativeArray*)var126)->values[1] = (val*) var123; -{ -((void (*)(val* self, val* p0, long p1))(var124->class->vft[COLOR_standard__array__Array__with_native]))(var124, var126, var125) /* with_native on */; +var3 = var5; +RET_LABEL4:(void)0; } } { -var127 = ((val* (*)(val* self))(var124->class->vft[COLOR_standard__string__Object__to_s]))(var124) /* to_s on */; +{ /* Inline modelbuilder_base#ModelBuilder#toolcontext (var3) on */ +var8 = var3->attrs[COLOR_nit__modelbuilder_base__ModelBuilder___toolcontext].val; /* _toolcontext on */ +if (unlikely(var8 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__modelbuilder_base, 47); +fatal_exit(1); } -{ -nit___nit__AbstractCompilerVisitor___require_declaration(self, var127); /* Direct call abstract_compiler#AbstractCompilerVisitor#require_declaration on */ +var6 = var8; +RET_LABEL7:(void)0; } -if (varonce128) { -var129 = varonce128; -} else { -var130 = " = ("; -var131 = 4; -var132 = standard___standard__NativeString___to_s_with_length(var130, var131); -var129 = var132; -varonce128 = var129; } -if (varonce133) { -var134 = varonce133; -} else { -var135 = " != NULL) && ("; -var136 = 14; -var137 = standard___standard__NativeString___to_s_with_length(var135, var136); -var134 = var137; -varonce133 = var134; +{ +{ /* Inline abstract_compiler#ToolContext#opt_hardening (var6) on */ +var11 = var6->attrs[COLOR_nit__abstract_compiler__ToolContext___opt_hardening].val; /* _opt_hardening on */ +if (unlikely(var11 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_hardening"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 46); +fatal_exit(1); +} +var9 = var11; +RET_LABEL10:(void)0; } -if (varonce138) { -var139 = varonce138; -} else { -var140 = "->class == &class_"; -var141 = 18; -var142 = standard___standard__NativeString___to_s_with_length(var140, var141); -var139 = var142; -varonce138 = var139; } { -var143 = ((val* (*)(val* self))(var_mtype1->class->vft[COLOR_nit__model_base__MEntity__c_name]))(var_mtype1) /* c_name on */; +{ /* Inline opts#Option#value (var9) on */ +var14 = var9->attrs[COLOR_opts__Option___value].val; /* _value on */ +var12 = var14; +RET_LABEL13:(void)0; } -if (varonce144) { -var145 = varonce144; +} +var15 = (short int)((long)(var12)>>2); +var16 = !var15; +if (var16){ +goto RET_LABEL; } else { -var146 = "); /* is_same_type_test */"; -var147 = 26; -var148 = standard___standard__NativeString___to_s_with_length(var146, var147); -var145 = var148; -varonce144 = var145; } -var149 = NEW_standard__Array(&type_standard__Array__standard__Object); -{ /* var149 = array_instance Array[Object] */ -var150 = 8; -var151 = NEW_standard__NativeArray(var150, &type_standard__NativeArray__standard__Object); -((struct instance_standard__NativeArray*)var151)->values[0] = (val*) var_res; -((struct instance_standard__NativeArray*)var151)->values[1] = (val*) var129; -((struct instance_standard__NativeArray*)var151)->values[2] = (val*) var_value2; -((struct instance_standard__NativeArray*)var151)->values[3] = (val*) var134; -((struct instance_standard__NativeArray*)var151)->values[4] = (val*) var_value2; -((struct instance_standard__NativeArray*)var151)->values[5] = (val*) var139; -((struct instance_standard__NativeArray*)var151)->values[6] = (val*) var143; -((struct instance_standard__NativeArray*)var151)->values[7] = (val*) var145; { -((void (*)(val* self, val* p0, long p1))(var149->class->vft[COLOR_standard__array__Array__with_native]))(var149, var151, var150) /* with_native on */; -} +var17 = nit__separate_compiler___MEntity___const_color(var_mtype); } { -var152 = ((val* (*)(val* self))(var149->class->vft[COLOR_standard__string__Object__to_s]))(var149) /* to_s on */; +nit___nit__AbstractCompilerVisitor___require_declaration(self, var17); /* Direct call abstract_compiler#AbstractCompilerVisitor#require_declaration on */ } { -nit___nit__AbstractCompilerVisitor___add(self, var152); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on */ -} -} +var18 = nit__separate_compiler___MEntity___const_color(var_mtype); } +var_col = var18; +if (unlikely(varonce==NULL)) { +var19 = NEW_standard__NativeArray(3l, &type_standard__NativeArray__standard__String); +if (likely(varonce20!=NULL)) { +var21 = varonce20; } else { -if (varonce153) { -var154 = varonce153; -} else { -var155 = " = ("; -var156 = 4; -var157 = standard___standard__NativeString___to_s_with_length(var155, var156); -var154 = var157; -varonce153 = var154; +var22 = "if("; +var23 = standard___standard__NativeString___to_s_with_length(var22, 3l); +var21 = var23; +varonce20 = var21; } -if (varonce158) { -var159 = varonce158; +((struct instance_standard__NativeArray*)var19)->values[0]=var21; +if (likely(varonce24!=NULL)) { +var25 = varonce24; } else { -var160 = " == "; -var161 = 4; -var162 = standard___standard__NativeString___to_s_with_length(var160, var161); -var159 = var162; -varonce158 = var159; +var26 = " == -1) {"; +var27 = standard___standard__NativeString___to_s_with_length(var26, 9l); +var25 = var27; +varonce24 = var25; } -if (varonce163) { -var164 = varonce163; +((struct instance_standard__NativeArray*)var19)->values[2]=var25; } else { -var165 = ") || ("; -var166 = 6; -var167 = standard___standard__NativeString___to_s_with_length(var165, var166); -var164 = var167; -varonce163 = var164; +var19 = varonce; +varonce = NULL; } -if (varonce168) { -var169 = varonce168; -} else { -var170 = " != NULL && "; -var171 = 12; -var172 = standard___standard__NativeString___to_s_with_length(var170, var171); -var169 = var172; -varonce168 = var169; +((struct instance_standard__NativeArray*)var19)->values[1]=var_col; +{ +var28 = ((val*(*)(val* self))(var19->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var19); /* native_to_s on */ } -if (varonce173) { -var174 = varonce173; +varonce = var19; +{ +nit___nit__AbstractCompilerVisitor___add(self, var28); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on */ +} +if (unlikely(varonce29==NULL)) { +var30 = NEW_standard__NativeArray(3l, &type_standard__NativeArray__standard__String); +if (likely(varonce31!=NULL)) { +var32 = varonce31; } else { -var175 = " != NULL && "; -var176 = 12; -var177 = standard___standard__NativeString___to_s_with_length(var175, var176); -var174 = var177; -varonce173 = var174; +var33 = "PRINT_ERROR(\"Resolution of a dead open type: %s\\n\", \""; +var34 = standard___standard__NativeString___to_s_with_length(var33, 53l); +var32 = var34; +varonce31 = var32; } -if (varonce178) { -var179 = varonce178; +((struct instance_standard__NativeArray*)var30)->values[0]=var32; +if (likely(varonce35!=NULL)) { +var36 = varonce35; } else { -var180 = "->class == "; -var181 = 11; -var182 = standard___standard__NativeString___to_s_with_length(var180, var181); -var179 = var182; -varonce178 = var179; +var37 = "\");"; +var38 = standard___standard__NativeString___to_s_with_length(var37, 3l); +var36 = var38; +varonce35 = var36; } -if (varonce183) { -var184 = varonce183; +((struct instance_standard__NativeArray*)var30)->values[2]=var36; } else { -var185 = "->class); /* is_same_type_test */"; -var186 = 33; -var187 = standard___standard__NativeString___to_s_with_length(var185, var186); -var184 = var187; -varonce183 = var184; +var30 = varonce29; +varonce29 = NULL; +} +{ +var39 = ((val*(*)(val* self))(var_mtype->class->vft[COLOR_standard__string__Object__to_s]))(var_mtype); /* to_s on */ } -var188 = NEW_standard__Array(&type_standard__Array__standard__Object); -{ /* var188 = array_instance Array[Object] */ -var189 = 14; -var190 = NEW_standard__NativeArray(var189, &type_standard__NativeArray__standard__Object); -((struct instance_standard__NativeArray*)var190)->values[0] = (val*) var_res; -((struct instance_standard__NativeArray*)var190)->values[1] = (val*) var154; -((struct instance_standard__NativeArray*)var190)->values[2] = (val*) var_value1; -((struct instance_standard__NativeArray*)var190)->values[3] = (val*) var159; -((struct instance_standard__NativeArray*)var190)->values[4] = (val*) var_value2; -((struct instance_standard__NativeArray*)var190)->values[5] = (val*) var164; -((struct instance_standard__NativeArray*)var190)->values[6] = (val*) var_value1; -((struct instance_standard__NativeArray*)var190)->values[7] = (val*) var169; -((struct instance_standard__NativeArray*)var190)->values[8] = (val*) var_value2; -((struct instance_standard__NativeArray*)var190)->values[9] = (val*) var174; -((struct instance_standard__NativeArray*)var190)->values[10] = (val*) var_value1; -((struct instance_standard__NativeArray*)var190)->values[11] = (val*) var179; -((struct instance_standard__NativeArray*)var190)->values[12] = (val*) var_value2; -((struct instance_standard__NativeArray*)var190)->values[13] = (val*) var184; { -((void (*)(val* self, val* p0, long p1))(var188->class->vft[COLOR_standard__array__Array__with_native]))(var188, var190, var189) /* with_native on */; +var40 = standard___standard__Text___escape_to_c(var39); } +((struct instance_standard__NativeArray*)var30)->values[1]=var40; +{ +var41 = ((val*(*)(val* self))(var30->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var30); /* native_to_s on */ } +varonce29 = var30; { -var191 = ((val* (*)(val* self))(var188->class->vft[COLOR_standard__string__Object__to_s]))(var188) /* to_s on */; +nit___nit__AbstractCompilerVisitor___add(self, var41); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on */ +} +if (likely(varonce42!=NULL)) { +var43 = varonce42; +} else { +var44 = "open type dead"; +var45 = standard___standard__NativeString___to_s_with_length(var44, 14l); +var43 = var45; +varonce42 = var43; } { -nit___nit__AbstractCompilerVisitor___add(self, var191); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on */ +nit___nit__AbstractCompilerVisitor___add_abort(self, var43); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_abort on */ } +if (likely(varonce46!=NULL)) { +var47 = varonce46; +} else { +var48 = "}"; +var49 = standard___standard__NativeString___to_s_with_length(var48, 1l); +var47 = var49; +varonce46 = var47; +} +{ +nit___nit__AbstractCompilerVisitor___add(self, var47); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on */ } -var = var_res; -goto RET_LABEL; RET_LABEL:; -return var; } -/* method separate_compiler#SeparateCompilerVisitor#class_name_string for (self: SeparateCompilerVisitor, RuntimeVariable): String */ -val* nit___nit__SeparateCompilerVisitor___nit__abstract_compiler__AbstractCompilerVisitor__class_name_string(val* self, val* p0) { -val* var /* : String */; -val* var_value /* var value: RuntimeVariable */; +/* method separate_compiler#SeparateCompilerVisitor#hardening_cast_type for (self: SeparateCompilerVisitor, String) */ +void nit___nit__SeparateCompilerVisitor___hardening_cast_type(val* self, val* p0) { +val* var_t /* var t: String */; +val* var /* : AbstractCompiler */; +val* var2 /* : AbstractCompiler */; +val* var3 /* : ModelBuilder */; +val* var5 /* : ModelBuilder */; +val* var6 /* : ToolContext */; +val* var8 /* : ToolContext */; +val* var9 /* : OptionBool */; +val* var11 /* : OptionBool */; +val* var12 /* : nullable Object */; +val* var14 /* : nullable Object */; +short int var15 /* : Bool */; +short int var16 /* : Bool */; +val* var17 /* : NativeArray[String] */; static val* varonce; -val* var1 /* : String */; -char* var2 /* : NativeString */; -long var3 /* : Int */; -val* var4 /* : FlatString */; -val* var5 /* : String */; -val* var_res /* var res: String */; -static val* varonce6; -val* var7 /* : String */; -char* var8 /* : NativeString */; -long var9 /* : Int */; -val* var10 /* : FlatString */; -static val* varonce11; -val* var12 /* : String */; -char* var13 /* : NativeString */; -long var14 /* : Int */; -val* var15 /* : FlatString */; -val* var16 /* : Array[Object] */; -long var17 /* : Int */; -val* var18 /* : NativeArray[Object] */; +static val* varonce18; val* var19 /* : String */; -val* var20 /* : MType */; -val* var22 /* : MType */; +char* var20 /* : NativeString */; +val* var21 /* : FlatString */; +static val* varonce22; val* var23 /* : String */; -static val* varonce24; -val* var25 /* : String */; -char* var26 /* : NativeString */; -long var27 /* : Int */; -val* var28 /* : FlatString */; -short int var29 /* : Bool */; -static val* varonce30; -val* var31 /* : String */; -char* var32 /* : NativeString */; -long var33 /* : Int */; +char* var24 /* : NativeString */; +val* var25 /* : FlatString */; +val* var26 /* : String */; +static val* varonce27; +val* var28 /* : String */; +char* var29 /* : NativeString */; +val* var30 /* : FlatString */; +static val* varonce31; +val* var32 /* : String */; +char* var33 /* : NativeString */; val* var34 /* : FlatString */; +val* var36 /* : NativeArray[String] */; static val* varonce35; -val* var36 /* : String */; -char* var37 /* : NativeString */; -long var38 /* : Int */; -val* var39 /* : FlatString */; -static val* varonce40; -val* var41 /* : String */; -char* var42 /* : NativeString */; -long var43 /* : Int */; +static val* varonce37; +val* var38 /* : String */; +char* var39 /* : NativeString */; +val* var40 /* : FlatString */; +static val* varonce41; +val* var42 /* : String */; +char* var43 /* : NativeString */; val* var44 /* : FlatString */; -val* var45 /* : Array[Object] */; -long var46 /* : Int */; -val* var47 /* : NativeArray[Object] */; -val* var48 /* : String */; -short int var49 /* : Bool */; -short int var50 /* : Bool */; -val* var51 /* : MType */; -val* var53 /* : MType */; -short int var54 /* : Bool */; -int cltype; -int idtype; -short int var_ /* var : Bool */; -val* var55 /* : MType */; -val* var57 /* : MType */; -short int var58 /* : Bool */; -int cltype59; -int idtype60; -const char* var_class_name; -val* var61 /* : MClass */; -val* var63 /* : MClass */; -val* var64 /* : MClassKind */; -val* var66 /* : MClassKind */; -val* var67 /* : MClassKind */; -short int var68 /* : Bool */; -val* var_other /* var other: nullable Object */; -short int var70 /* : Bool */; -short int var72 /* : Bool */; -short int var_73 /* var : Bool */; -val* var74 /* : MType */; -val* var76 /* : MType */; -short int var77 /* : Bool */; -int cltype78; -int idtype79; -const char* var_class_name80; -val* var81 /* : String */; -static val* varonce82; -val* var83 /* : String */; -char* var84 /* : NativeString */; -long var85 /* : Int */; -val* var86 /* : FlatString */; -short int var87 /* : Bool */; -val* var_other89 /* var other: nullable Object */; -short int var90 /* : Bool */; -short int var91 /* : Bool */; -static val* varonce92; -val* var93 /* : String */; -char* var94 /* : NativeString */; -long var95 /* : Int */; -val* var96 /* : FlatString */; -val* var97 /* : MType */; -val* var99 /* : MType */; -short int var100 /* : Bool */; -int cltype101; -int idtype102; -const char* var_class_name103; -val* var104 /* : MClass */; -val* var106 /* : MClass */; -static val* varonce107; -val* var108 /* : String */; -char* var109 /* : NativeString */; -long var110 /* : Int */; -val* var111 /* : FlatString */; -val* var112 /* : Array[Object] */; -long var113 /* : Int */; -val* var114 /* : NativeArray[Object] */; -val* var115 /* : String */; -static val* varonce116; -val* var117 /* : String */; -char* var118 /* : NativeString */; -long var119 /* : Int */; -val* var120 /* : FlatString */; -val* var121 /* : MType */; -val* var123 /* : MType */; -val* var124 /* : String */; -val* var125 /* : Array[Object] */; -long var126 /* : Int */; -val* var127 /* : NativeArray[Object] */; -val* var128 /* : String */; -static val* varonce129; -val* var130 /* : String */; -char* var131 /* : NativeString */; -long var132 /* : Int */; -val* var133 /* : FlatString */; -val* var134 /* : MType */; -val* var136 /* : MType */; -val* var137 /* : String */; -static val* varonce138; -val* var139 /* : String */; -char* var140 /* : NativeString */; -long var141 /* : Int */; -val* var142 /* : FlatString */; -val* var143 /* : Array[Object] */; -long var144 /* : Int */; -val* var145 /* : NativeArray[Object] */; -val* var146 /* : String */; -var_value = p0; -if (varonce) { -var1 = varonce; -} else { -var2 = "var_class_name"; -var3 = 14; -var4 = standard___standard__NativeString___to_s_with_length(var2, var3); -var1 = var4; -varonce = var1; -} +static val* varonce45; +val* var46 /* : String */; +char* var47 /* : NativeString */; +val* var48 /* : FlatString */; +val* var49 /* : String */; +val* var51 /* : NativeArray[String] */; +static val* varonce50; +static val* varonce52; +val* var53 /* : String */; +char* var54 /* : NativeString */; +val* var55 /* : FlatString */; +static val* varonce56; +val* var57 /* : String */; +char* var58 /* : NativeString */; +val* var59 /* : FlatString */; +val* var60 /* : String */; +static val* varonce61; +val* var62 /* : String */; +char* var63 /* : NativeString */; +val* var64 /* : FlatString */; +static val* varonce65; +val* var66 /* : String */; +char* var67 /* : NativeString */; +val* var68 /* : FlatString */; +var_t = p0; { -var5 = nit___nit__AbstractCompilerVisitor___get_name(self, var1); +{ /* Inline abstract_compiler#AbstractCompilerVisitor#compiler (self) on */ +var2 = self->attrs[COLOR_nit__abstract_compiler__AbstractCompilerVisitor___compiler].val; /* _compiler on */ +if (unlikely(var2 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _compiler"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1102); +fatal_exit(1); } -var_res = var5; -if (varonce6) { -var7 = varonce6; -} else { -var8 = "const char* "; -var9 = 12; -var10 = standard___standard__NativeString___to_s_with_length(var8, var9); -var7 = var10; -varonce6 = var7; +var = var2; +RET_LABEL1:(void)0; } -if (varonce11) { -var12 = varonce11; -} else { -var13 = ";"; -var14 = 1; -var15 = standard___standard__NativeString___to_s_with_length(var13, var14); -var12 = var15; -varonce11 = var12; } -var16 = NEW_standard__Array(&type_standard__Array__standard__Object); -{ /* var16 = array_instance Array[Object] */ -var17 = 3; -var18 = NEW_standard__NativeArray(var17, &type_standard__NativeArray__standard__Object); -((struct instance_standard__NativeArray*)var18)->values[0] = (val*) var7; -((struct instance_standard__NativeArray*)var18)->values[1] = (val*) var_res; -((struct instance_standard__NativeArray*)var18)->values[2] = (val*) var12; { -((void (*)(val* self, val* p0, long p1))(var16->class->vft[COLOR_standard__array__Array__with_native]))(var16, var18, var17) /* with_native on */; +{ /* Inline abstract_compiler#AbstractCompiler#modelbuilder (var) on */ +var5 = var->attrs[COLOR_nit__abstract_compiler__AbstractCompiler___modelbuilder].val; /* _modelbuilder on */ +if (unlikely(var5 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 522); +fatal_exit(1); } +var3 = var5; +RET_LABEL4:(void)0; } -{ -var19 = ((val* (*)(val* self))(var16->class->vft[COLOR_standard__string__Object__to_s]))(var16) /* to_s on */; } { -nit___nit__AbstractCompilerVisitor___add_decl(self, var19); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on */ +{ /* Inline modelbuilder_base#ModelBuilder#toolcontext (var3) on */ +var8 = var3->attrs[COLOR_nit__modelbuilder_base__ModelBuilder___toolcontext].val; /* _toolcontext on */ +if (unlikely(var8 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__modelbuilder_base, 47); +fatal_exit(1); +} +var6 = var8; +RET_LABEL7:(void)0; +} } { -{ /* Inline abstract_compiler#RuntimeVariable#mtype (var_value) on */ -var22 = var_value->attrs[COLOR_nit__abstract_compiler__RuntimeVariable___mtype].val; /* _mtype on */ -if (unlikely(var22 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1680); -show_backtrace(1); +{ /* Inline abstract_compiler#ToolContext#opt_hardening (var6) on */ +var11 = var6->attrs[COLOR_nit__abstract_compiler__ToolContext___opt_hardening].val; /* _opt_hardening on */ +if (unlikely(var11 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_hardening"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 46); +fatal_exit(1); } -var20 = var22; -RET_LABEL21:(void)0; +var9 = var11; +RET_LABEL10:(void)0; } } { -var23 = ((val* (*)(val* self))(var20->class->vft[COLOR_nit__abstract_compiler__MType__ctype]))(var20) /* ctype on */; +{ /* Inline opts#Option#value (var9) on */ +var14 = var9->attrs[COLOR_opts__Option___value].val; /* _value on */ +var12 = var14; +RET_LABEL13:(void)0; } -if (varonce24) { -var25 = varonce24; -} else { -var26 = "val*"; -var27 = 4; -var28 = standard___standard__NativeString___to_s_with_length(var26, var27); -var25 = var28; -varonce24 = var25; } -{ -var29 = ((short int (*)(val* self, val* p0))(var23->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var23, var25) /* == on */; +var15 = (short int)((long)(var12)>>2); +var16 = !var15; +if (var16){ +goto RET_LABEL; +} else { } -if (var29){ -if (varonce30) { -var31 = varonce30; +if (unlikely(varonce==NULL)) { +var17 = NEW_standard__NativeArray(3l, &type_standard__NativeArray__standard__String); +if (likely(varonce18!=NULL)) { +var19 = varonce18; } else { -var32 = " = "; -var33 = 3; -var34 = standard___standard__NativeString___to_s_with_length(var32, var33); -var31 = var34; -varonce30 = var31; +var20 = "if("; +var21 = standard___standard__NativeString___to_s_with_length(var20, 3l); +var19 = var21; +varonce18 = var19; } -if (varonce35) { -var36 = varonce35; +((struct instance_standard__NativeArray*)var17)->values[0]=var19; +if (likely(varonce22!=NULL)) { +var23 = varonce22; } else { -var37 = " == NULL ? \"null\" : "; -var38 = 20; -var39 = standard___standard__NativeString___to_s_with_length(var37, var38); -var36 = var39; -varonce35 = var36; +var24 = " == NULL) {"; +var25 = standard___standard__NativeString___to_s_with_length(var24, 11l); +var23 = var25; +varonce22 = var23; } -if (varonce40) { -var41 = varonce40; +((struct instance_standard__NativeArray*)var17)->values[2]=var23; } else { -var42 = "->type->name;"; -var43 = 13; -var44 = standard___standard__NativeString___to_s_with_length(var42, var43); -var41 = var44; -varonce40 = var41; +var17 = varonce; +varonce = NULL; } -var45 = NEW_standard__Array(&type_standard__Array__standard__Object); -{ /* var45 = array_instance Array[Object] */ -var46 = 6; -var47 = NEW_standard__NativeArray(var46, &type_standard__NativeArray__standard__Object); -((struct instance_standard__NativeArray*)var47)->values[0] = (val*) var_res; -((struct instance_standard__NativeArray*)var47)->values[1] = (val*) var31; -((struct instance_standard__NativeArray*)var47)->values[2] = (val*) var_value; -((struct instance_standard__NativeArray*)var47)->values[3] = (val*) var36; -((struct instance_standard__NativeArray*)var47)->values[4] = (val*) var_value; -((struct instance_standard__NativeArray*)var47)->values[5] = (val*) var41; +((struct instance_standard__NativeArray*)var17)->values[1]=var_t; { -((void (*)(val* self, val* p0, long p1))(var45->class->vft[COLOR_standard__array__Array__with_native]))(var45, var47, var46) /* with_native on */; -} +var26 = ((val*(*)(val* self))(var17->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var17); /* native_to_s on */ } +varonce = var17; { -var48 = ((val* (*)(val* self))(var45->class->vft[COLOR_standard__string__Object__to_s]))(var45) /* to_s on */; +nit___nit__AbstractCompilerVisitor___add(self, var26); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on */ +} +if (likely(varonce27!=NULL)) { +var28 = varonce27; +} else { +var29 = "cast type null"; +var30 = standard___standard__NativeString___to_s_with_length(var29, 14l); +var28 = var30; +varonce27 = var28; } { -nit___nit__AbstractCompilerVisitor___add(self, var48); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on */ +nit___nit__AbstractCompilerVisitor___add_abort(self, var28); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_abort on */ } +if (likely(varonce31!=NULL)) { +var32 = varonce31; } else { +var33 = "}"; +var34 = standard___standard__NativeString___to_s_with_length(var33, 1l); +var32 = var34; +varonce31 = var32; +} { -{ /* Inline abstract_compiler#RuntimeVariable#mtype (var_value) on */ -var53 = var_value->attrs[COLOR_nit__abstract_compiler__RuntimeVariable___mtype].val; /* _mtype on */ -if (unlikely(var53 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1680); -show_backtrace(1); +nit___nit__AbstractCompilerVisitor___add(self, var32); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on */ } -var51 = var53; -RET_LABEL52:(void)0; +if (unlikely(varonce35==NULL)) { +var36 = NEW_standard__NativeArray(5l, &type_standard__NativeArray__standard__String); +if (likely(varonce37!=NULL)) { +var38 = varonce37; +} else { +var39 = "if("; +var40 = standard___standard__NativeString___to_s_with_length(var39, 3l); +var38 = var40; +varonce37 = var38; } +((struct instance_standard__NativeArray*)var36)->values[0]=var38; +if (likely(varonce41!=NULL)) { +var42 = varonce41; +} else { +var43 = "->id == -1 || "; +var44 = standard___standard__NativeString___to_s_with_length(var43, 14l); +var42 = var44; +varonce41 = var42; } -/* isa MClassType */ -cltype = type_nit__MClassType.color; -idtype = type_nit__MClassType.id; -if(cltype >= var51->type->table_size) { -var54 = 0; +((struct instance_standard__NativeArray*)var36)->values[2]=var42; +if (likely(varonce45!=NULL)) { +var46 = varonce45; } else { -var54 = var51->type->type_table[cltype] == idtype; +var47 = "->color == -1) {"; +var48 = standard___standard__NativeString___to_s_with_length(var47, 16l); +var46 = var48; +varonce45 = var46; } -var_ = var54; -if (var54){ +((struct instance_standard__NativeArray*)var36)->values[4]=var46; +} else { +var36 = varonce35; +varonce35 = NULL; +} +((struct instance_standard__NativeArray*)var36)->values[1]=var_t; +((struct instance_standard__NativeArray*)var36)->values[3]=var_t; { -{ /* Inline abstract_compiler#RuntimeVariable#mtype (var_value) on */ -var57 = var_value->attrs[COLOR_nit__abstract_compiler__RuntimeVariable___mtype].val; /* _mtype on */ -if (unlikely(var57 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1680); -show_backtrace(1); +var49 = ((val*(*)(val* self))(var36->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var36); /* native_to_s on */ } -var55 = var57; -RET_LABEL56:(void)0; +varonce35 = var36; +{ +nit___nit__AbstractCompilerVisitor___add(self, var49); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on */ } +if (unlikely(varonce50==NULL)) { +var51 = NEW_standard__NativeArray(3l, &type_standard__NativeArray__standard__String); +if (likely(varonce52!=NULL)) { +var53 = varonce52; +} else { +var54 = "PRINT_ERROR(\"Try to cast on a dead cast type: %s\\n\", "; +var55 = standard___standard__NativeString___to_s_with_length(var54, 53l); +var53 = var55; +varonce52 = var53; } -/* isa MClassType */ -cltype59 = type_nit__MClassType.color; -idtype60 = type_nit__MClassType.id; -if(cltype59 >= var55->type->table_size) { -var58 = 0; +((struct instance_standard__NativeArray*)var51)->values[0]=var53; +if (likely(varonce56!=NULL)) { +var57 = varonce56; } else { -var58 = var55->type->type_table[cltype59] == idtype60; +var58 = "->name);"; +var59 = standard___standard__NativeString___to_s_with_length(var58, 8l); +var57 = var59; +varonce56 = var57; } -if (unlikely(!var58)) { -var_class_name = var55 == NULL ? "null" : var55->type->name; -PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "MClassType", var_class_name); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_compiler, 1586); -show_backtrace(1); +((struct instance_standard__NativeArray*)var51)->values[2]=var57; +} else { +var51 = varonce50; +varonce50 = NULL; } +((struct instance_standard__NativeArray*)var51)->values[1]=var_t; { -{ /* Inline model#MClassType#mclass (var55) on */ -var63 = var55->attrs[COLOR_nit__model__MClassType___mclass].val; /* _mclass on */ -if (unlikely(var63 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1058); -show_backtrace(1); +var60 = ((val*(*)(val* self))(var51->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var51); /* native_to_s on */ } -var61 = var63; -RET_LABEL62:(void)0; +varonce50 = var51; +{ +nit___nit__AbstractCompilerVisitor___add(self, var60); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on */ } +if (likely(varonce61!=NULL)) { +var62 = varonce61; +} else { +var63 = "cast type dead"; +var64 = standard___standard__NativeString___to_s_with_length(var63, 14l); +var62 = var64; +varonce61 = var62; } { -{ /* Inline model#MClass#kind (var61) on */ -var66 = var61->attrs[COLOR_nit__model__MClass___kind].val; /* _kind on */ -if (unlikely(var66 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _kind"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 399); -show_backtrace(1); +nit___nit__AbstractCompilerVisitor___add_abort(self, var62); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_abort on */ } -var64 = var66; -RET_LABEL65:(void)0; +if (likely(varonce65!=NULL)) { +var66 = varonce65; +} else { +var67 = "}"; +var68 = standard___standard__NativeString___to_s_with_length(var67, 1l); +var66 = var68; +varonce65 = var66; +} +{ +nit___nit__AbstractCompilerVisitor___add(self, var66); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on */ +} +RET_LABEL:; +} +/* method separate_compiler#SeparateCompilerVisitor#init_instance for (self: SeparateCompilerVisitor, MClassType): RuntimeVariable */ +val* nit___nit__SeparateCompilerVisitor___nit__abstract_compiler__AbstractCompilerVisitor__init_instance(val* self, val* p0) { +val* var /* : RuntimeVariable */; +val* var_mtype /* var mtype: MClassType */; +val* var1 /* : NativeArray[String] */; +static val* varonce; +static val* varonce2; +val* var3 /* : String */; +char* var4 /* : NativeString */; +val* var5 /* : FlatString */; +val* var6 /* : MClass */; +val* var8 /* : MClass */; +val* var9 /* : String */; +val* var10 /* : String */; +val* var11 /* : AbstractCompiler */; +val* var13 /* : AbstractCompiler */; +val* var_compiler /* var compiler: SeparateCompiler */; +short int var14 /* : Bool */; +short int var15 /* : Bool */; +int cltype; +int idtype; +short int var_ /* var : Bool */; +short int var16 /* : Bool */; +short int var18 /* : Bool */; +val* var19 /* : nullable StaticFrame */; +val* var21 /* : nullable StaticFrame */; +val* var22 /* : MPropDef */; +val* var24 /* : MPropDef */; +val* var25 /* : MClassDef */; +val* var27 /* : MClassDef */; +val* var28 /* : nullable StaticFrame */; +val* var30 /* : nullable StaticFrame */; +val* var31 /* : Array[RuntimeVariable] */; +val* var33 /* : Array[RuntimeVariable] */; +val* var34 /* : nullable Object */; +val* var_recv /* var recv: RuntimeVariable */; +val* var35 /* : String */; +val* var_recv_type_info /* var recv_type_info: String */; +val* var36 /* : String */; +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 */; +static val* varonce51; +val* var52 /* : String */; +char* var53 /* : NativeString */; +val* var54 /* : FlatString */; +val* var55 /* : MClass */; +val* var57 /* : MClass */; +val* var58 /* : String */; +val* var59 /* : String */; +val* var60 /* : String */; +val* var61 /* : RuntimeVariable */; +val* var62 /* : Set[MType] */; +val* var64 /* : Set[MType] */; +val* var66 /* : NativeArray[String] */; +static val* varonce65; +static val* varonce67; +val* var68 /* : String */; +char* var69 /* : NativeString */; +val* var70 /* : FlatString */; +val* var71 /* : String */; +val* var72 /* : String */; +val* var74 /* : NativeArray[String] */; +static val* varonce73; +static val* varonce75; +val* var76 /* : String */; +char* var77 /* : NativeString */; +val* var78 /* : FlatString */; +static val* varonce79; +val* var80 /* : String */; +char* var81 /* : NativeString */; +val* var82 /* : FlatString */; +static val* varonce83; +val* var84 /* : String */; +char* var85 /* : NativeString */; +val* var86 /* : FlatString */; +val* var87 /* : MClass */; +val* var89 /* : MClass */; +val* var90 /* : String */; +val* var91 /* : String */; +val* var92 /* : String */; +val* var93 /* : RuntimeVariable */; +var_mtype = p0; +if (unlikely(varonce==NULL)) { +var1 = NEW_standard__NativeArray(2l, &type_standard__NativeArray__standard__String); +if (likely(varonce2!=NULL)) { +var3 = varonce2; +} else { +var4 = "NEW_"; +var5 = standard___standard__NativeString___to_s_with_length(var4, 4l); +var3 = var5; +varonce2 = var3; } +((struct instance_standard__NativeArray*)var1)->values[0]=var3; +} else { +var1 = varonce; +varonce = NULL; } { -var67 = nit__model___standard__Object___extern_kind(self); +{ /* Inline model#MClassType#mclass (var_mtype) on */ +var8 = var_mtype->attrs[COLOR_nit__model__MClassType___mclass].val; /* _mclass on */ +if (unlikely(var8 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1138); +fatal_exit(1); +} +var6 = var8; +RET_LABEL7:(void)0; +} } { -{ /* Inline kernel#Object#== (var64,var67) on */ -var_other = var67; +var9 = nit___nit__MClass___nit__model_base__MEntity__c_name(var6); +} +((struct instance_standard__NativeArray*)var1)->values[1]=var9; { -{ /* Inline kernel#Object#is_same_instance (var64,var_other) on */ -var72 = var64 == var_other; -var70 = var72; -goto RET_LABEL71; -RET_LABEL71:(void)0; +var10 = ((val*(*)(val* self))(var1->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var1); /* native_to_s on */ +} +varonce = var1; +{ +nit___nit__AbstractCompilerVisitor___require_declaration(self, var10); /* Direct call abstract_compiler#AbstractCompilerVisitor#require_declaration on */ } +{ +{ /* Inline abstract_compiler#AbstractCompilerVisitor#compiler (self) on */ +var13 = self->attrs[COLOR_nit__abstract_compiler__AbstractCompilerVisitor___compiler].val; /* _compiler on */ +if (unlikely(var13 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _compiler"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1102); +fatal_exit(1); } -var68 = var70; -goto RET_LABEL69; -RET_LABEL69:(void)0; +var11 = var13; +RET_LABEL12:(void)0; } } -var50 = var68; +var_compiler = var11; +/* isa MGenericType */ +cltype = type_nit__MGenericType.color; +idtype = type_nit__MGenericType.id; +if(cltype >= var_mtype->type->table_size) { +var15 = 0; } else { -var50 = var_; +var15 = var_mtype->type->type_table[cltype] == idtype; } -var_73 = var50; -if (var50){ +var_ = var15; +if (var15){ { -{ /* Inline abstract_compiler#RuntimeVariable#mtype (var_value) on */ -var76 = var_value->attrs[COLOR_nit__abstract_compiler__RuntimeVariable___mtype].val; /* _mtype on */ -if (unlikely(var76 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1680); -show_backtrace(1); -} -var74 = var76; -RET_LABEL75:(void)0; +{ /* Inline model#MGenericType#need_anchor (var_mtype) on */ +var18 = var_mtype->attrs[COLOR_nit__model__MGenericType___need_anchor].s; /* _need_anchor on */ +var16 = var18; +RET_LABEL17:(void)0; } } -/* isa MClassType */ -cltype78 = type_nit__MClassType.color; -idtype79 = type_nit__MClassType.id; -if(cltype78 >= var74->type->table_size) { -var77 = 0; +var14 = var16; } else { -var77 = var74->type->type_table[cltype78] == idtype79; +var14 = var_; } -if (unlikely(!var77)) { -var_class_name80 = var74 == NULL ? "null" : var74->type->name; -PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "MClassType", var_class_name80); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_compiler, 1587); -show_backtrace(1); +if (var14){ +{ +nit___nit__SeparateCompilerVisitor___hardening_live_open_type(self, var_mtype); /* Direct call separate_compiler#SeparateCompilerVisitor#hardening_live_open_type on */ } { -var81 = nit___nit__MType___nit__model_base__MEntity__name(var74); +{ /* Inline abstract_compiler#AbstractCompilerVisitor#frame (self) on */ +var21 = self->attrs[COLOR_nit__abstract_compiler__AbstractCompilerVisitor___frame].val; /* _frame on */ +var19 = var21; +RET_LABEL20:(void)0; } -if (varonce82) { -var83 = varonce82; +} +if (var19 == NULL) { +PRINT_ERROR("Runtime error: %s", "Receiver is null"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_compiler, 1742); +fatal_exit(1); } else { -var84 = "NativeString"; -var85 = 12; -var86 = standard___standard__NativeString___to_s_with_length(var84, var85); -var83 = var86; -varonce82 = var83; +{ /* Inline abstract_compiler#StaticFrame#mpropdef (var19) on */ +if (unlikely(var19 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Receiver is null"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1828); +fatal_exit(1); +} +var24 = var19->attrs[COLOR_nit__abstract_compiler__StaticFrame___mpropdef].val; /* _mpropdef on */ +if (unlikely(var24 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mpropdef"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1828); +fatal_exit(1); +} +var22 = var24; +RET_LABEL23:(void)0; +} } { -{ /* Inline kernel#Object#!= (var81,var83) on */ -var_other89 = var83; +{ /* Inline model#MPropDef#mclassdef (var22) on */ +var27 = var22->attrs[COLOR_nit__model__MPropDef___mclassdef].val; /* _mclassdef on */ +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; +} +} { -var90 = ((short int (*)(val* self, val* p0))(var81->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var81, var_other89) /* == on */; +nit___nit__SeparateCompilerVisitor___link_unresolved_type(self, var25, var_mtype); /* Direct call separate_compiler#SeparateCompilerVisitor#link_unresolved_type on */ } -var91 = !var90; -var87 = var91; -goto RET_LABEL88; -RET_LABEL88:(void)0; +{ +{ /* Inline abstract_compiler#AbstractCompilerVisitor#frame (self) on */ +var30 = self->attrs[COLOR_nit__abstract_compiler__AbstractCompilerVisitor___frame].val; /* _frame on */ +var28 = var30; +RET_LABEL29:(void)0; } } -var49 = var87; +if (var28 == NULL) { +PRINT_ERROR("Runtime error: %s", "Receiver is null"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_compiler, 1743); +fatal_exit(1); } else { -var49 = var_73; +{ /* Inline abstract_compiler#StaticFrame#arguments (var28) on */ +if (unlikely(var28 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Receiver is null"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1835); +fatal_exit(1); +} +var33 = var28->attrs[COLOR_nit__abstract_compiler__StaticFrame___arguments].val; /* _arguments on */ +if (unlikely(var33 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _arguments"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1835); +fatal_exit(1); +} +var31 = var33; +RET_LABEL32:(void)0; } -if (var49){ -if (varonce92) { -var93 = varonce92; -} else { -var94 = " = \""; -var95 = 4; -var96 = standard___standard__NativeString___to_s_with_length(var94, var95); -var93 = var96; -varonce92 = var93; } { -{ /* Inline abstract_compiler#RuntimeVariable#mtype (var_value) on */ -var99 = var_value->attrs[COLOR_nit__abstract_compiler__RuntimeVariable___mtype].val; /* _mtype on */ -if (unlikely(var99 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1680); -show_backtrace(1); +var34 = standard___standard__SequenceRead___Collection__first(var31); +} +var_recv = var34; +{ +var35 = nit___nit__SeparateCompilerVisitor___type_info(self, var_recv); +} +var_recv_type_info = var35; +{ +var36 = nit__separate_compiler___MEntity___const_color(var_mtype); +} +{ +nit___nit__AbstractCompilerVisitor___require_declaration(self, var36); /* Direct call abstract_compiler#AbstractCompilerVisitor#require_declaration on */ +} +if (unlikely(varonce37==NULL)) { +var38 = NEW_standard__NativeArray(7l, &type_standard__NativeArray__standard__String); +if (likely(varonce39!=NULL)) { +var40 = varonce39; +} else { +var41 = "NEW_"; +var42 = standard___standard__NativeString___to_s_with_length(var41, 4l); +var40 = var42; +varonce39 = var40; } -var97 = var99; -RET_LABEL98:(void)0; +((struct instance_standard__NativeArray*)var38)->values[0]=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[2]=var44; +if (likely(varonce47!=NULL)) { +var48 = varonce47; +} else { +var49 = "->resolution_table->types["; +var50 = standard___standard__NativeString___to_s_with_length(var49, 26l); +var48 = var50; +varonce47 = var48; } -/* isa MClassType */ -cltype101 = type_nit__MClassType.color; -idtype102 = type_nit__MClassType.id; -if(cltype101 >= var97->type->table_size) { -var100 = 0; +((struct instance_standard__NativeArray*)var38)->values[4]=var48; +if (likely(varonce51!=NULL)) { +var52 = varonce51; } else { -var100 = var97->type->type_table[cltype101] == idtype102; +var53 = "])"; +var54 = standard___standard__NativeString___to_s_with_length(var53, 2l); +var52 = var54; +varonce51 = var52; } -if (unlikely(!var100)) { -var_class_name103 = var97 == NULL ? "null" : var97->type->name; -PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "MClassType", var_class_name103); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_compiler, 1588); -show_backtrace(1); +((struct instance_standard__NativeArray*)var38)->values[6]=var52; +} else { +var38 = varonce37; +varonce37 = NULL; } { -{ /* Inline model#MClassType#mclass (var97) on */ -var106 = var97->attrs[COLOR_nit__model__MClassType___mclass].val; /* _mclass on */ -if (unlikely(var106 == NULL)) { +{ /* Inline model#MClassType#mclass (var_mtype) on */ +var57 = var_mtype->attrs[COLOR_nit__model__MClassType___mclass].val; /* _mclass on */ +if (unlikely(var57 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1058); -show_backtrace(1); -} -var104 = var106; -RET_LABEL105:(void)0; +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1138); +fatal_exit(1); } +var55 = var57; +RET_LABEL56:(void)0; } -if (varonce107) { -var108 = varonce107; -} else { -var109 = "\";"; -var110 = 2; -var111 = standard___standard__NativeString___to_s_with_length(var109, var110); -var108 = var111; -varonce107 = var108; } -var112 = NEW_standard__Array(&type_standard__Array__standard__Object); -{ /* var112 = array_instance Array[Object] */ -var113 = 4; -var114 = NEW_standard__NativeArray(var113, &type_standard__NativeArray__standard__Object); -((struct instance_standard__NativeArray*)var114)->values[0] = (val*) var_res; -((struct instance_standard__NativeArray*)var114)->values[1] = (val*) var93; -((struct instance_standard__NativeArray*)var114)->values[2] = (val*) var104; -((struct instance_standard__NativeArray*)var114)->values[3] = (val*) var108; { -((void (*)(val* self, val* p0, long p1))(var112->class->vft[COLOR_standard__array__Array__with_native]))(var112, var114, var113) /* with_native on */; +var58 = nit___nit__MClass___nit__model_base__MEntity__c_name(var55); } +((struct instance_standard__NativeArray*)var38)->values[1]=var58; +((struct instance_standard__NativeArray*)var38)->values[3]=var_recv_type_info; +{ +var59 = nit__separate_compiler___MEntity___const_color(var_mtype); } +((struct instance_standard__NativeArray*)var38)->values[5]=var59; { -var115 = ((val* (*)(val* self))(var112->class->vft[COLOR_standard__string__Object__to_s]))(var112) /* to_s on */; +var60 = ((val*(*)(val* self))(var38->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var38); /* native_to_s on */ } +varonce37 = var38; { -nit___nit__AbstractCompilerVisitor___add(self, var115); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on */ +var61 = nit___nit__AbstractCompilerVisitor___new_expr(self, var60, var_mtype); } +var = var61; +goto RET_LABEL; } else { -if (varonce116) { -var117 = varonce116; -} else { -var118 = "type_"; -var119 = 5; -var120 = standard___standard__NativeString___to_s_with_length(var118, var119); -var117 = var120; -varonce116 = var117; } { -{ /* Inline abstract_compiler#RuntimeVariable#mtype (var_value) on */ -var123 = var_value->attrs[COLOR_nit__abstract_compiler__RuntimeVariable___mtype].val; /* _mtype on */ -if (unlikely(var123 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1680); -show_backtrace(1); +{ /* Inline separate_compiler#SeparateCompiler#undead_types (var_compiler) on */ +var64 = var_compiler->attrs[COLOR_nit__separate_compiler__SeparateCompiler___undead_types].val; /* _undead_types on */ +if (unlikely(var64 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _undead_types"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_compiler, 146); +fatal_exit(1); } -var121 = var123; -RET_LABEL122:(void)0; +var62 = var64; +RET_LABEL63:(void)0; } } { -var124 = ((val* (*)(val* self))(var121->class->vft[COLOR_nit__model_base__MEntity__c_name]))(var121) /* c_name on */; +((void(*)(val* self, val* p0))((((long)var62&3)?class_info[((long)var62&3)]:var62->class)->vft[COLOR_standard__abstract_collection__SimpleCollection__add]))(var62, var_mtype); /* add on */ } -var125 = NEW_standard__Array(&type_standard__Array__standard__Object); -{ /* var125 = array_instance Array[Object] */ -var126 = 2; -var127 = NEW_standard__NativeArray(var126, &type_standard__NativeArray__standard__Object); -((struct instance_standard__NativeArray*)var127)->values[0] = (val*) var117; -((struct instance_standard__NativeArray*)var127)->values[1] = (val*) var124; -{ -((void (*)(val* self, val* p0, long p1))(var125->class->vft[COLOR_standard__array__Array__with_native]))(var125, var127, var126) /* with_native on */; +if (unlikely(varonce65==NULL)) { +var66 = NEW_standard__NativeArray(2l, &type_standard__NativeArray__standard__String); +if (likely(varonce67!=NULL)) { +var68 = varonce67; +} else { +var69 = "type_"; +var70 = standard___standard__NativeString___to_s_with_length(var69, 5l); +var68 = var70; +varonce67 = var68; } +((struct instance_standard__NativeArray*)var66)->values[0]=var68; +} else { +var66 = varonce65; +varonce65 = NULL; } { -var128 = ((val* (*)(val* self))(var125->class->vft[COLOR_standard__string__Object__to_s]))(var125) /* to_s on */; +var71 = ((val*(*)(val* self))(var_mtype->class->vft[COLOR_nit__model_base__MEntity__c_name]))(var_mtype); /* c_name on */ } +((struct instance_standard__NativeArray*)var66)->values[1]=var71; { -nit___nit__AbstractCompilerVisitor___require_declaration(self, var128); /* Direct call abstract_compiler#AbstractCompilerVisitor#require_declaration on */ -} -if (varonce129) { -var130 = varonce129; -} else { -var131 = " = type_"; -var132 = 8; -var133 = standard___standard__NativeString___to_s_with_length(var131, var132); -var130 = var133; -varonce129 = var130; +var72 = ((val*(*)(val* self))(var66->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var66); /* native_to_s on */ } +varonce65 = var66; { -{ /* Inline abstract_compiler#RuntimeVariable#mtype (var_value) on */ -var136 = var_value->attrs[COLOR_nit__abstract_compiler__RuntimeVariable___mtype].val; /* _mtype on */ -if (unlikely(var136 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1680); -show_backtrace(1); +nit___nit__AbstractCompilerVisitor___require_declaration(self, var72); /* Direct call abstract_compiler#AbstractCompilerVisitor#require_declaration on */ } -var134 = var136; -RET_LABEL135:(void)0; +if (unlikely(varonce73==NULL)) { +var74 = NEW_standard__NativeArray(5l, &type_standard__NativeArray__standard__String); +if (likely(varonce75!=NULL)) { +var76 = varonce75; +} else { +var77 = "NEW_"; +var78 = standard___standard__NativeString___to_s_with_length(var77, 4l); +var76 = var78; +varonce75 = var76; } +((struct instance_standard__NativeArray*)var74)->values[0]=var76; +if (likely(varonce79!=NULL)) { +var80 = varonce79; +} else { +var81 = "(&type_"; +var82 = standard___standard__NativeString___to_s_with_length(var81, 7l); +var80 = var82; +varonce79 = var80; } -{ -var137 = ((val* (*)(val* self))(var134->class->vft[COLOR_nit__model_base__MEntity__c_name]))(var134) /* c_name on */; +((struct instance_standard__NativeArray*)var74)->values[2]=var80; +if (likely(varonce83!=NULL)) { +var84 = varonce83; +} else { +var85 = ")"; +var86 = standard___standard__NativeString___to_s_with_length(var85, 1l); +var84 = var86; +varonce83 = var84; } -if (varonce138) { -var139 = varonce138; +((struct instance_standard__NativeArray*)var74)->values[4]=var84; } else { -var140 = ".name;"; -var141 = 6; -var142 = standard___standard__NativeString___to_s_with_length(var140, var141); -var139 = var142; -varonce138 = var139; +var74 = varonce73; +varonce73 = NULL; } -var143 = NEW_standard__Array(&type_standard__Array__standard__Object); -{ /* var143 = array_instance Array[Object] */ -var144 = 4; -var145 = NEW_standard__NativeArray(var144, &type_standard__NativeArray__standard__Object); -((struct instance_standard__NativeArray*)var145)->values[0] = (val*) var_res; -((struct instance_standard__NativeArray*)var145)->values[1] = (val*) var130; -((struct instance_standard__NativeArray*)var145)->values[2] = (val*) var137; -((struct instance_standard__NativeArray*)var145)->values[3] = (val*) var139; { -((void (*)(val* self, val* p0, long p1))(var143->class->vft[COLOR_standard__array__Array__with_native]))(var143, var145, var144) /* with_native on */; +{ /* Inline model#MClassType#mclass (var_mtype) on */ +var89 = var_mtype->attrs[COLOR_nit__model__MClassType___mclass].val; /* _mclass on */ +if (unlikely(var89 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1138); +fatal_exit(1); +} +var87 = var89; +RET_LABEL88:(void)0; } } { -var146 = ((val* (*)(val* self))(var143->class->vft[COLOR_standard__string__Object__to_s]))(var143) /* to_s on */; +var90 = nit___nit__MClass___nit__model_base__MEntity__c_name(var87); } +((struct instance_standard__NativeArray*)var74)->values[1]=var90; { -nit___nit__AbstractCompilerVisitor___add(self, var146); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on */ +var91 = ((val*(*)(val* self))(var_mtype->class->vft[COLOR_nit__model_base__MEntity__c_name]))(var_mtype); /* c_name on */ } +((struct instance_standard__NativeArray*)var74)->values[3]=var91; +{ +var92 = ((val*(*)(val* self))(var74->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var74); /* native_to_s on */ } +varonce73 = var74; +{ +var93 = nit___nit__AbstractCompilerVisitor___new_expr(self, var92, var_mtype); } -var = var_res; +var = var93; goto RET_LABEL; RET_LABEL:; return var; } -/* method separate_compiler#SeparateCompilerVisitor#equal_test for (self: SeparateCompilerVisitor, RuntimeVariable, RuntimeVariable): RuntimeVariable */ -val* nit___nit__SeparateCompilerVisitor___nit__abstract_compiler__AbstractCompilerVisitor__equal_test(val* self, val* p0, val* p1) { +/* method separate_compiler#SeparateCompilerVisitor#type_test for (self: SeparateCompilerVisitor, RuntimeVariable, MType, String): RuntimeVariable */ +val* nit___nit__SeparateCompilerVisitor___nit__abstract_compiler__AbstractCompilerVisitor__type_test(val* self, val* p0, val* p1, val* p2) { val* var /* : RuntimeVariable */; -val* var_value1 /* var value1: RuntimeVariable */; -val* var_value2 /* var value2: RuntimeVariable */; -val* var1 /* : MClassType */; -val* var2 /* : RuntimeVariable */; -val* var_res /* var res: RuntimeVariable */; -short int var3 /* : Bool */; -val* var4 /* : MType */; -val* var6 /* : MType */; -val* var7 /* : String */; +val* var_value /* var value: RuntimeVariable */; +val* var_mtype /* var mtype: MType */; +val* var_tag /* var tag: String */; +val* var1 /* : NativeArray[String] */; static val* varonce; -val* var8 /* : String */; -char* var9 /* : NativeString */; -long var10 /* : Int */; -val* var11 /* : FlatString */; -short int var12 /* : Bool */; -val* var_other /* var other: nullable Object */; -short int var14 /* : Bool */; -short int var15 /* : Bool */; -short int var_ /* var : Bool */; -val* var16 /* : MType */; -val* var18 /* : MType */; -val* var19 /* : String */; -static val* varonce20; -val* var21 /* : String */; -char* var22 /* : NativeString */; -long var23 /* : Int */; -val* var24 /* : FlatString */; -short int var25 /* : Bool */; -val* var_tmp /* var tmp: RuntimeVariable */; -val* var26 /* : MType */; -val* var28 /* : MType */; -val* var29 /* : String */; +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 /* : String */; +val* var16 /* : String */; +val* var17 /* : AbstractCompiler */; +val* var19 /* : AbstractCompiler */; +val* var_compiler /* var compiler: SeparateCompiler */; +val* var20 /* : nullable StaticFrame */; +val* var22 /* : nullable StaticFrame */; +val* var23 /* : Array[RuntimeVariable] */; +val* var25 /* : Array[RuntimeVariable] */; +val* var26 /* : nullable Object */; +val* var_recv /* var recv: RuntimeVariable */; +val* var27 /* : String */; +val* var_recv_type_info /* var recv_type_info: String */; +val* var28 /* : MClassType */; +val* var29 /* : RuntimeVariable */; +val* var_res /* var res: RuntimeVariable */; static val* varonce30; val* var31 /* : String */; char* var32 /* : NativeString */; -long var33 /* : Int */; -val* var34 /* : FlatString */; -short int var35 /* : Bool */; -short int var37 /* : Bool */; -short int var38 /* : Bool */; -val* var39 /* : MType */; -val* var41 /* : MType */; -val* var42 /* : MType */; -val* var44 /* : MType */; -short int var45 /* : Bool */; -val* var_other47 /* var other: nullable Object */; -short int var48 /* : Bool */; -short int var50 /* : Bool */; +val* var33 /* : FlatString */; +val* var34 /* : String */; +val* var_cltype /* var cltype: String */; +val* var36 /* : NativeArray[String] */; +static val* varonce35; +static val* varonce37; +val* var38 /* : String */; +char* var39 /* : NativeString */; +val* var40 /* : FlatString */; +static val* varonce41; +val* var42 /* : String */; +char* var43 /* : NativeString */; +val* var44 /* : FlatString */; +val* var45 /* : String */; +static val* varonce46; +val* var47 /* : String */; +char* var48 /* : NativeString */; +val* var49 /* : FlatString */; +val* var50 /* : String */; +val* var_idtype /* var idtype: String */; +val* var52 /* : NativeArray[String] */; static val* varonce51; -val* var52 /* : String */; -char* var53 /* : NativeString */; -long var54 /* : Int */; -val* var55 /* : FlatString */; -static val* varonce56; -val* var57 /* : String */; -char* var58 /* : NativeString */; -long var59 /* : Int */; +static val* varonce53; +val* var54 /* : String */; +char* var55 /* : NativeString */; +val* var56 /* : FlatString */; +static val* varonce57; +val* var58 /* : String */; +char* var59 /* : NativeString */; val* var60 /* : FlatString */; -static val* varonce61; -val* var62 /* : String */; -char* var63 /* : NativeString */; -long var64 /* : Int */; -val* var65 /* : FlatString */; -val* var66 /* : Array[Object] */; -long var67 /* : Int */; -val* var68 /* : NativeArray[Object] */; -val* var69 /* : String */; -val* var70 /* : MType */; -val* var72 /* : MType */; -val* var73 /* : String */; -static val* varonce74; -val* var75 /* : String */; -char* var76 /* : NativeString */; -long var77 /* : Int */; -val* var78 /* : FlatString */; -short int var79 /* : Bool */; -short int var81 /* : Bool */; -short int var82 /* : Bool */; -static val* varonce83; -val* var84 /* : String */; -char* var85 /* : NativeString */; -long var86 /* : Int */; -val* var87 /* : FlatString */; -val* var88 /* : MType */; -val* var90 /* : MType */; -static val* varonce91; -val* var92 /* : String */; -char* var93 /* : NativeString */; -long var94 /* : Int */; -val* var95 /* : FlatString */; -val* var96 /* : MType */; -val* var98 /* : MType */; -static val* varonce99; -val* var100 /* : String */; -char* var101 /* : NativeString */; -long var102 /* : Int */; -val* var103 /* : FlatString */; -val* var104 /* : Array[Object] */; -long var105 /* : Int */; -val* var106 /* : NativeArray[Object] */; -val* var107 /* : String */; -val* var108 /* : MType */; -val* var110 /* : MType */; -short int var111 /* : Bool */; +val* var61 /* : String */; +short int var62 /* : Bool */; +short int var_maybe_null /* var maybe_null: Bool */; +static val* varonce63; +val* var64 /* : String */; +char* var65 /* : NativeString */; +val* var66 /* : FlatString */; +val* var_accept_null /* var accept_null: String */; +val* var_ntype /* var ntype: MType */; +short int var67 /* : Bool */; int cltype; int idtype; -const char* var_class_name; -val* var_mtype1 /* var mtype1: MClassType */; -static val* varonce112; -val* var113 /* : String */; -char* var114 /* : NativeString */; -long var115 /* : Int */; +val* var68 /* : MType */; +val* var70 /* : MType */; +static val* varonce71; +val* var72 /* : String */; +char* var73 /* : NativeString */; +val* var74 /* : FlatString */; +val* var75 /* : MType */; +val* var77 /* : MType */; +val* var78 /* : nullable StaticFrame */; +val* var80 /* : nullable StaticFrame */; +val* var81 /* : MPropDef */; +val* var83 /* : MPropDef */; +val* var84 /* : MClassDef */; +val* var86 /* : MClassDef */; +val* var87 /* : MModule */; +val* var89 /* : MModule */; +val* var90 /* : nullable StaticFrame */; +val* var92 /* : nullable StaticFrame */; +val* var93 /* : MPropDef */; +val* var95 /* : MPropDef */; +val* var96 /* : MClassDef */; +val* var98 /* : MClassDef */; +val* var99 /* : MClassType */; +val* var101 /* : MClassType */; +short int var102 /* : Bool */; +val* var104 /* : NativeArray[String] */; +static val* varonce103; +static val* varonce105; +val* var106 /* : String */; +char* var107 /* : NativeString */; +val* var108 /* : FlatString */; +static val* varonce109; +val* var110 /* : String */; +char* var111 /* : NativeString */; +val* var112 /* : FlatString */; +static val* varonce113; +val* var114 /* : String */; +char* var115 /* : NativeString */; val* var116 /* : FlatString */; val* var117 /* : String */; -val* var118 /* : Array[Object] */; -long var119 /* : Int */; -val* var120 /* : NativeArray[Object] */; -val* var121 /* : String */; -static val* varonce122; -val* var123 /* : String */; -char* var124 /* : NativeString */; -long var125 /* : Int */; -val* var126 /* : FlatString */; -static val* varonce127; -val* var128 /* : String */; -char* var129 /* : NativeString */; -long var130 /* : Int */; -val* var131 /* : FlatString */; -static val* varonce132; -val* var133 /* : String */; -char* var134 /* : NativeString */; -long var135 /* : Int */; -val* var136 /* : FlatString */; -val* var137 /* : String */; -static val* varonce138; -val* var139 /* : String */; -char* var140 /* : NativeString */; -long var141 /* : Int */; -val* var142 /* : FlatString */; -val* var143 /* : Array[Object] */; -long var144 /* : Int */; -val* var145 /* : NativeArray[Object] */; -val* var146 /* : String */; -static val* varonce147; -val* var148 /* : String */; -char* var149 /* : NativeString */; -long var150 /* : Int */; -val* var151 /* : FlatString */; +val* var118 /* : String */; +val* var119 /* : String */; +val* var120 /* : String */; +val* var121 /* : ModelBuilder */; +val* var123 /* : ModelBuilder */; +val* var124 /* : ToolContext */; +val* var126 /* : ToolContext */; +val* var127 /* : OptionBool */; +val* var129 /* : OptionBool */; +val* var130 /* : nullable Object */; +val* var132 /* : nullable Object */; +short int var133 /* : Bool */; +val* var134 /* : AbstractCompiler */; +val* var136 /* : AbstractCompiler */; +val* var137 /* : HashMap[String, Int] */; +val* var139 /* : HashMap[String, Int] */; +val* var_ /* var : HashMap[String, Int] */; +val* var_140 /* var : String */; +val* var141 /* : nullable Object */; +long var142 /* : Int */; +short int var144 /* : Bool */; +int cltype145; +int idtype146; +const char* var_class_name; +long var147 /* : Int */; +long var148 /* : Int */; +val* var149 /* : nullable Object */; +val* var151 /* : NativeArray[String] */; +static val* varonce150; static val* varonce152; val* var153 /* : String */; char* var154 /* : NativeString */; -long var155 /* : Int */; -val* var156 /* : FlatString */; -val* var157 /* : Array[Object] */; -long var158 /* : Int */; -val* var159 /* : NativeArray[Object] */; +val* var155 /* : FlatString */; +static val* varonce156; +val* var157 /* : String */; +char* var158 /* : NativeString */; +val* var159 /* : FlatString */; val* var160 /* : String */; -static val* varonce161; -val* var162 /* : String */; -char* var163 /* : NativeString */; -long var164 /* : Int */; +short int var161 /* : Bool */; +static val* varonce162; +val* var163 /* : String */; +char* var164 /* : NativeString */; val* var165 /* : FlatString */; -val* var166 /* : MType */; -val* var168 /* : MType */; -val* var169 /* : RuntimeVariable */; -static val* varonce170; -val* var171 /* : String */; -char* var172 /* : NativeString */; -long var173 /* : Int */; -val* var174 /* : FlatString */; -static val* varonce175; -val* var176 /* : String */; -char* var177 /* : NativeString */; -long var178 /* : Int */; -val* var179 /* : FlatString */; -val* var180 /* : Array[Object] */; -long var181 /* : Int */; -val* var182 /* : NativeArray[Object] */; -val* var183 /* : String */; -static val* varonce184; -val* var185 /* : String */; -char* var186 /* : NativeString */; -long var187 /* : Int */; -val* var188 /* : FlatString */; -short int var189 /* : Bool */; -short int var_maybe_null /* var maybe_null: Bool */; -val* var190 /* : Array[String] */; -val* var_test /* var test: Array[String] */; -val* var191 /* : MType */; -val* var193 /* : MType */; -val* var_t1 /* var t1: MType */; -short int var194 /* : Bool */; -int cltype195; -int idtype196; -static val* varonce197; -val* var198 /* : String */; -char* var199 /* : NativeString */; -long var200 /* : Int */; +val* var166 /* : String */; +val* var_type_struct /* var type_struct: String */; +val* var168 /* : NativeArray[String] */; +static val* varonce167; +static val* varonce169; +val* var170 /* : String */; +char* var171 /* : NativeString */; +val* var172 /* : FlatString */; +static val* varonce173; +val* var174 /* : String */; +char* var175 /* : NativeString */; +val* var176 /* : FlatString */; +val* var177 /* : String */; +val* var178 /* : nullable StaticFrame */; +val* var180 /* : nullable StaticFrame */; +val* var181 /* : MPropDef */; +val* var183 /* : MPropDef */; +val* var184 /* : MClassDef */; +val* var186 /* : MClassDef */; +val* var187 /* : String */; +val* var189 /* : NativeArray[String] */; +static val* varonce188; +static val* varonce190; +val* var191 /* : String */; +char* var192 /* : NativeString */; +val* var193 /* : FlatString */; +static val* varonce194; +val* var195 /* : String */; +char* var196 /* : NativeString */; +val* var197 /* : FlatString */; +static val* varonce198; +val* var199 /* : String */; +char* var200 /* : NativeString */; val* var201 /* : FlatString */; -val* var202 /* : Array[Object] */; -long var203 /* : Int */; -val* var204 /* : NativeArray[Object] */; -val* var205 /* : String */; -val* var206 /* : MType */; -val* var208 /* : MType */; -short int var209 /* : Bool */; -val* var210 /* : MType */; -val* var212 /* : MType */; -val* var_t2 /* var t2: MType */; -short int var213 /* : Bool */; -int cltype214; -int idtype215; -static val* varonce216; -val* var217 /* : String */; -char* var218 /* : NativeString */; -long var219 /* : Int */; -val* var220 /* : FlatString */; -val* var221 /* : Array[Object] */; -long var222 /* : Int */; -val* var223 /* : NativeArray[Object] */; -val* var224 /* : String */; -val* var225 /* : MType */; -val* var227 /* : MType */; +val* var202 /* : String */; +val* var203 /* : String */; +val* var204 /* : ModelBuilder */; +val* var206 /* : ModelBuilder */; +val* var207 /* : ToolContext */; +val* var209 /* : ToolContext */; +val* var210 /* : OptionBool */; +val* var212 /* : OptionBool */; +val* var213 /* : nullable Object */; +val* var215 /* : nullable Object */; +short int var216 /* : Bool */; +val* var217 /* : AbstractCompiler */; +val* var219 /* : AbstractCompiler */; +val* var220 /* : HashMap[String, Int] */; +val* var222 /* : HashMap[String, Int] */; +val* var_223 /* var : HashMap[String, Int] */; +val* var_224 /* var : String */; +val* var225 /* : nullable Object */; +long var226 /* : Int */; short int var228 /* : Bool */; -short int var229 /* : Bool */; -short int var_incompatible /* var incompatible: Bool */; -val* var230 /* : String */; -static val* varonce231; -val* var232 /* : String */; -char* var233 /* : NativeString */; -long var234 /* : Int */; -val* var235 /* : FlatString */; -short int var236 /* : Bool */; -short int var238 /* : Bool */; -short int var239 /* : Bool */; -val* var_primitive /* var primitive: nullable Object */; -short int var240 /* : Bool */; -short int var242 /* : Bool */; -short int var244 /* : Bool */; +int cltype229; +int idtype230; +const char* var_class_name231; +long var232 /* : Int */; +long var233 /* : Int */; +val* var234 /* : nullable Object */; +val* var236 /* : NativeArray[String] */; +static val* varonce235; +static val* varonce237; +val* var238 /* : String */; +char* var239 /* : NativeString */; +val* var240 /* : FlatString */; +static val* varonce241; +val* var242 /* : String */; +char* var243 /* : NativeString */; +val* var244 /* : FlatString */; val* var245 /* : String */; +val* var247 /* : NativeArray[String] */; static val* varonce246; -val* var247 /* : String */; -char* var248 /* : NativeString */; -long var249 /* : Int */; -val* var250 /* : FlatString */; -short int var251 /* : Bool */; -short int var253 /* : Bool */; -short int var254 /* : Bool */; -short int var255 /* : Bool */; -short int var256 /* : Bool */; +static val* varonce248; +val* var249 /* : String */; +char* var250 /* : NativeString */; +val* var251 /* : FlatString */; +static val* varonce252; +val* var253 /* : String */; +char* var254 /* : NativeString */; +val* var255 /* : FlatString */; +val* var256 /* : String */; +val* var258 /* : NativeArray[String] */; static val* varonce257; -val* var258 /* : String */; -char* var259 /* : NativeString */; -long var260 /* : Int */; -val* var261 /* : FlatString */; -static val* varonce262; -val* var263 /* : String */; -char* var264 /* : NativeString */; -long var265 /* : Int */; +static val* varonce259; +val* var260 /* : String */; +char* var261 /* : NativeString */; +val* var262 /* : FlatString */; +static val* varonce263; +val* var264 /* : String */; +char* var265 /* : NativeString */; val* var266 /* : FlatString */; -val* var267 /* : Array[Object] */; -long var268 /* : Int */; -val* var269 /* : NativeArray[Object] */; -val* var270 /* : String */; -short int var271 /* : Bool */; -val* var272 /* : String */; -static val* varonce273; -val* var274 /* : String */; -char* var275 /* : NativeString */; -long var276 /* : Int */; -val* var277 /* : FlatString */; -short int var278 /* : Bool */; -short int var280 /* : Bool */; -short int var281 /* : Bool */; -short int var282 /* : Bool */; -static val* varonce283; -val* var284 /* : String */; -char* var285 /* : NativeString */; -long var286 /* : Int */; -val* var287 /* : FlatString */; -static val* varonce288; -val* var289 /* : String */; -char* var290 /* : NativeString */; -long var291 /* : Int */; -val* var292 /* : FlatString */; -val* var293 /* : Array[Object] */; -long var294 /* : Int */; -val* var295 /* : NativeArray[Object] */; -val* var296 /* : String */; -short int var297 /* : Bool */; -val* var298 /* : null */; -static val* varonce299; -val* var300 /* : String */; -char* var301 /* : NativeString */; -long var302 /* : Int */; -val* var303 /* : FlatString */; -static val* varonce304; -val* var305 /* : String */; -char* var306 /* : NativeString */; -long var307 /* : Int */; -val* var308 /* : FlatString */; +val* var267 /* : String */; +short int var268 /* : Bool */; +short int var_269 /* var : Bool */; +static val* varonce270; +val* var271 /* : String */; +char* var272 /* : NativeString */; +val* var273 /* : FlatString */; +short int var274 /* : Bool */; +static val* varonce275; +val* var276 /* : String */; +char* var277 /* : NativeString */; +val* var278 /* : FlatString */; +val* var279 /* : String */; +val* var_is_nullable /* var is_nullable: String */; +val* var281 /* : NativeArray[String] */; +static val* varonce280; +static val* varonce282; +val* var283 /* : String */; +char* var284 /* : NativeString */; +val* var285 /* : FlatString */; +static val* varonce286; +val* var287 /* : String */; +char* var288 /* : NativeString */; +val* var289 /* : FlatString */; +val* var290 /* : String */; +val* var292 /* : NativeArray[String] */; +static val* varonce291; +static val* varonce293; +val* var294 /* : String */; +char* var295 /* : NativeString */; +val* var296 /* : FlatString */; +static val* varonce297; +val* var298 /* : String */; +char* var299 /* : NativeString */; +val* var300 /* : FlatString */; +val* var301 /* : String */; +val* var302 /* : String */; +short int var303 /* : Bool */; +int cltype304; +int idtype305; +val* var306 /* : Set[MType] */; +val* var308 /* : Set[MType] */; +val* var310 /* : NativeArray[String] */; static val* varonce309; -val* var310 /* : String */; -char* var311 /* : NativeString */; -long var312 /* : Int */; -val* var313 /* : FlatString */; -static val* varonce314; +static val* varonce311; +val* var312 /* : String */; +char* var313 /* : NativeString */; +val* var314 /* : FlatString */; val* var315 /* : String */; -char* var316 /* : NativeString */; -long var317 /* : Int */; -val* var318 /* : FlatString */; +val* var316 /* : String */; +val* var318 /* : NativeArray[String] */; +static val* varonce317; static val* varonce319; val* var320 /* : String */; char* var321 /* : NativeString */; -long var322 /* : Int */; -val* var323 /* : FlatString */; -val* var324 /* : Array[Object] */; -long var325 /* : Int */; -val* var326 /* : NativeArray[Object] */; +val* var322 /* : FlatString */; +static val* varonce323; +val* var324 /* : String */; +char* var325 /* : NativeString */; +val* var326 /* : FlatString */; val* var327 /* : String */; -static val* varonce328; -val* var329 /* : String */; -char* var330 /* : NativeString */; -long var331 /* : Int */; -val* var332 /* : FlatString */; -static val* varonce333; -val* var334 /* : String */; -char* var335 /* : NativeString */; -long var336 /* : Int */; -val* var337 /* : FlatString */; -static val* varonce338; +val* var328 /* : String */; +val* var330 /* : NativeArray[String] */; +static val* varonce329; +static val* varonce331; +val* var332 /* : String */; +char* var333 /* : NativeString */; +val* var334 /* : FlatString */; +static val* varonce335; +val* var336 /* : String */; +char* var337 /* : NativeString */; +val* var338 /* : FlatString */; val* var339 /* : String */; -char* var340 /* : NativeString */; -long var341 /* : Int */; -val* var342 /* : FlatString */; -val* var343 /* : Array[Object] */; -long var344 /* : Int */; -val* var345 /* : NativeArray[Object] */; -val* var346 /* : String */; -val* var347 /* : null */; -short int var348 /* : Bool */; -short int var349 /* : Bool */; -short int var351 /* : Bool */; -short int var352 /* : Bool */; -static val* varonce353; -val* var354 /* : String */; -char* var355 /* : NativeString */; -long var356 /* : Int */; -val* var357 /* : FlatString */; -val* var358 /* : String */; -static val* varonce359; -val* var360 /* : String */; -char* var361 /* : NativeString */; -long var362 /* : Int */; -val* var363 /* : FlatString */; -static val* varonce364; -val* var365 /* : String */; -char* var366 /* : NativeString */; -long var367 /* : Int */; -val* var368 /* : FlatString */; -val* var369 /* : String */; -static val* varonce370; -val* var371 /* : String */; -char* var372 /* : NativeString */; -long var373 /* : Int */; -val* var374 /* : FlatString */; -static val* varonce375; -val* var376 /* : String */; -char* var377 /* : NativeString */; -long var378 /* : Int */; -val* var379 /* : FlatString */; -val* var380 /* : Array[Object] */; +val* var340 /* : String */; +val* var342 /* : NativeArray[String] */; +static val* varonce341; +static val* varonce343; +val* var344 /* : String */; +char* var345 /* : NativeString */; +val* var346 /* : FlatString */; +static val* varonce347; +val* var348 /* : String */; +char* var349 /* : NativeString */; +val* var350 /* : FlatString */; +val* var351 /* : String */; +val* var352 /* : String */; +val* var353 /* : ModelBuilder */; +val* var355 /* : ModelBuilder */; +val* var356 /* : ToolContext */; +val* var358 /* : ToolContext */; +val* var359 /* : OptionBool */; +val* var361 /* : OptionBool */; +val* var362 /* : nullable Object */; +val* var364 /* : nullable Object */; +short int var365 /* : Bool */; +val* var366 /* : AbstractCompiler */; +val* var368 /* : AbstractCompiler */; +val* var369 /* : HashMap[String, Int] */; +val* var371 /* : HashMap[String, Int] */; +val* var_372 /* var : HashMap[String, Int] */; +val* var_373 /* var : String */; +val* var374 /* : nullable Object */; +long var375 /* : Int */; +short int var377 /* : Bool */; +int cltype378; +int idtype379; +const char* var_class_name380; long var381 /* : Int */; -val* var382 /* : NativeArray[Object] */; -val* var383 /* : String */; -short int var384 /* : Bool */; -short int var385 /* : Bool */; -short int var_386 /* var : Bool */; -short int var387 /* : Bool */; -static val* varonce388; -val* var389 /* : String */; -char* var390 /* : NativeString */; -long var391 /* : Int */; -val* var392 /* : FlatString */; -static val* varonce393; +long var382 /* : Int */; +val* var383 /* : nullable Object */; +val* var385 /* : NativeArray[String] */; +static val* varonce384; +static val* varonce386; +val* var387 /* : String */; +char* var388 /* : NativeString */; +val* var389 /* : FlatString */; +static val* varonce390; +val* var391 /* : String */; +char* var392 /* : NativeString */; +val* var393 /* : FlatString */; val* var394 /* : String */; -char* var395 /* : NativeString */; -long var396 /* : Int */; -val* var397 /* : FlatString */; -val* var398 /* : Array[Object] */; -long var399 /* : Int */; -val* var400 /* : NativeArray[Object] */; -val* var401 /* : String */; -val* var402 /* : Array[String] */; -val* var_s /* var s: Array[String] */; -val* var403 /* : AbstractCompiler */; -val* var405 /* : AbstractCompiler */; -val* var406 /* : HashMap[MClass, Int] */; -val* var408 /* : HashMap[MClass, Int] */; -val* var_409 /* var : HashMap[MClass, Int] */; -val* var410 /* : HashMapIterator[nullable Object, nullable Object] */; -val* var_411 /* var : HashMapIterator[MClass, Int] */; -short int var412 /* : Bool */; -val* var413 /* : nullable Object */; -val* var_t /* var t: MClass */; -val* var414 /* : nullable Object */; -long var415 /* : Int */; -long var_v /* var v: Int */; -static val* varonce416; -val* var417 /* : String */; -char* var418 /* : NativeString */; -long var419 /* : Int */; -val* var420 /* : FlatString */; -static val* varonce421; +val* var396 /* : NativeArray[String] */; +static val* varonce395; +static val* varonce397; +val* var398 /* : String */; +char* var399 /* : NativeString */; +val* var400 /* : FlatString */; +static val* varonce401; +val* var402 /* : String */; +char* var403 /* : NativeString */; +val* var404 /* : FlatString */; +static val* varonce405; +val* var406 /* : String */; +char* var407 /* : NativeString */; +val* var408 /* : FlatString */; +val* var409 /* : String */; +val* var410 /* : String */; +val* var411 /* : String */; +val* var413 /* : NativeArray[String] */; +static val* varonce412; +static val* varonce414; +val* var415 /* : String */; +char* var416 /* : NativeString */; +val* var417 /* : FlatString */; +static val* varonce418; +val* var419 /* : String */; +char* var420 /* : NativeString */; +val* var421 /* : FlatString */; val* var422 /* : String */; -char* var423 /* : NativeString */; -long var424 /* : Int */; -val* var425 /* : FlatString */; +val* var423 /* : String */; +val* var425 /* : NativeArray[String] */; +static val* varonce424; static val* varonce426; val* var427 /* : String */; char* var428 /* : NativeString */; -long var429 /* : Int */; -val* var430 /* : FlatString */; +val* var429 /* : FlatString */; +static val* varonce430; val* var431 /* : String */; -static val* varonce432; -val* var433 /* : String */; -char* var434 /* : NativeString */; -long var435 /* : Int */; -val* var436 /* : FlatString */; -static val* varonce437; -val* var438 /* : String */; -char* var439 /* : NativeString */; -long var440 /* : Int */; -val* var441 /* : FlatString */; -val* var442 /* : String */; +char* var432 /* : NativeString */; +val* var433 /* : FlatString */; +val* var434 /* : String */; +val* var435 /* : String */; +static val* varonce436; +val* var437 /* : String */; +char* var438 /* : NativeString */; +val* var439 /* : FlatString */; +val* var440 /* : String */; +val* var_value_type_info /* var value_type_info: String */; +val* var442 /* : NativeArray[String] */; +static val* varonce441; static val* varonce443; val* var444 /* : String */; char* var445 /* : NativeString */; -long var446 /* : Int */; -val* var447 /* : FlatString */; -static val* varonce448; -val* var449 /* : String */; -char* var450 /* : NativeString */; -long var451 /* : Int */; -val* var452 /* : FlatString */; -val* var453 /* : Array[Object] */; -long var454 /* : Int */; -val* var455 /* : NativeArray[Object] */; -val* var456 /* : Object */; -val* var457 /* : String */; -static val* varonce459; -val* var460 /* : String */; -char* var461 /* : NativeString */; -long var462 /* : Int */; -val* var463 /* : FlatString */; +val* var446 /* : FlatString */; +static val* varonce447; +val* var448 /* : String */; +char* var449 /* : NativeString */; +val* var450 /* : FlatString */; +static val* varonce451; +val* var452 /* : String */; +char* var453 /* : NativeString */; +val* var454 /* : FlatString */; +val* var455 /* : String */; +val* var457 /* : NativeArray[String] */; +static val* varonce456; +static val* varonce458; +val* var459 /* : String */; +char* var460 /* : NativeString */; +val* var461 /* : FlatString */; +val* var462 /* : String */; +val* var463 /* : String */; static val* varonce464; val* var465 /* : String */; char* var466 /* : NativeString */; -long var467 /* : Int */; -val* var468 /* : FlatString */; -val* var469 /* : String */; +val* var467 /* : FlatString */; +val* var469 /* : NativeArray[String] */; +static val* varonce468; static val* varonce470; val* var471 /* : String */; char* var472 /* : NativeString */; -long var473 /* : Int */; -val* var474 /* : FlatString */; -val* var475 /* : Array[Object] */; -long var476 /* : Int */; -val* var477 /* : NativeArray[Object] */; -val* var478 /* : String */; -static val* varonce479; -val* var480 /* : String */; -char* var481 /* : NativeString */; -long var482 /* : Int */; -val* var483 /* : FlatString */; -static val* varonce484; -val* var485 /* : String */; -char* var486 /* : NativeString */; -long var487 /* : Int */; -val* var488 /* : FlatString */; -static val* varonce489; -val* var490 /* : String */; -char* var491 /* : NativeString */; -long var492 /* : Int */; -val* var493 /* : FlatString */; -val* var494 /* : Array[Object] */; -long var495 /* : Int */; -val* var496 /* : NativeArray[Object] */; -val* var497 /* : String */; -static val* varonce498; -val* var499 /* : String */; -char* var500 /* : NativeString */; -long var501 /* : Int */; -val* var502 /* : FlatString */; -static val* varonce503; -val* var504 /* : String */; -char* var505 /* : NativeString */; -long var506 /* : Int */; -val* var507 /* : FlatString */; -static val* varonce508; -val* var509 /* : String */; -char* var510 /* : NativeString */; -long var511 /* : Int */; -val* var512 /* : FlatString */; -static val* varonce513; -val* var514 /* : String */; -char* var515 /* : NativeString */; -long var516 /* : Int */; -val* var517 /* : FlatString */; -val* var518 /* : String */; -static val* varonce519; -val* var520 /* : String */; -char* var521 /* : NativeString */; -long var522 /* : Int */; -val* var523 /* : FlatString */; -val* var524 /* : Array[Object] */; -long var525 /* : Int */; -val* var526 /* : NativeArray[Object] */; -val* var527 /* : String */; -var_value1 = p0; -var_value2 = p1; -{ -var1 = nit___nit__AbstractCompilerVisitor___bool_type(self); -} -{ -var2 = nit___nit__AbstractCompilerVisitor___new_var(self, var1); -} -var_res = var2; -{ -{ /* Inline abstract_compiler#RuntimeVariable#mtype (var_value2) on */ -var6 = var_value2->attrs[COLOR_nit__abstract_compiler__RuntimeVariable___mtype].val; /* _mtype on */ -if (unlikely(var6 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1680); -show_backtrace(1); -} -var4 = var6; -RET_LABEL5:(void)0; -} +val* var473 /* : FlatString */; +static val* varonce474; +val* var475 /* : String */; +char* var476 /* : NativeString */; +val* var477 /* : FlatString */; +static val* varonce478; +val* var479 /* : String */; +char* var480 /* : NativeString */; +val* var481 /* : FlatString */; +static val* varonce482; +val* var483 /* : String */; +char* var484 /* : NativeString */; +val* var485 /* : FlatString */; +val* var486 /* : String */; +val* var487 /* : String */; +static val* varonce488; +val* var489 /* : String */; +char* var490 /* : NativeString */; +val* var491 /* : FlatString */; +static val* varonce492; +val* var493 /* : String */; +char* var494 /* : NativeString */; +val* var495 /* : FlatString */; +var_value = p0; +var_mtype = p1; +var_tag = p2; +if (unlikely(varonce==NULL)) { +var1 = NEW_standard__NativeArray(5l, &type_standard__NativeArray__standard__String); +if (likely(varonce2!=NULL)) { +var3 = varonce2; +} else { +var4 = "/* "; +var5 = standard___standard__NativeString___to_s_with_length(var4, 3l); +var3 = var5; +varonce2 = var3; +} +((struct instance_standard__NativeArray*)var1)->values[0]=var3; +if (likely(varonce6!=NULL)) { +var7 = varonce6; +} else { +var8 = " isa "; +var9 = standard___standard__NativeString___to_s_with_length(var8, 5l); +var7 = var9; +varonce6 = var7; } -{ -var7 = ((val* (*)(val* self))(var4->class->vft[COLOR_nit__abstract_compiler__MType__ctype]))(var4) /* ctype on */; +((struct instance_standard__NativeArray*)var1)->values[2]=var7; +if (likely(varonce10!=NULL)) { +var11 = varonce10; +} else { +var12 = " */"; +var13 = standard___standard__NativeString___to_s_with_length(var12, 3l); +var11 = var13; +varonce10 = var11; } -if (varonce) { -var8 = varonce; +((struct instance_standard__NativeArray*)var1)->values[4]=var11; } else { -var9 = "val*"; -var10 = 4; -var11 = standard___standard__NativeString___to_s_with_length(var9, var10); -var8 = var11; -varonce = var8; +var1 = varonce; +varonce = NULL; } { -{ /* Inline kernel#Object#!= (var7,var8) on */ -var_other = var8; +var14 = nit___nit__RuntimeVariable___standard__string__Object__inspect(var_value); +} +((struct instance_standard__NativeArray*)var1)->values[1]=var14; { -var14 = ((short int (*)(val* self, val* p0))(var7->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var7, var_other) /* == on */; +var15 = ((val*(*)(val* self))(var_mtype->class->vft[COLOR_standard__string__Object__to_s]))(var_mtype); /* to_s on */ } -var15 = !var14; -var12 = var15; -goto RET_LABEL13; -RET_LABEL13:(void)0; +((struct instance_standard__NativeArray*)var1)->values[3]=var15; +{ +var16 = ((val*(*)(val* self))(var1->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var1); /* native_to_s on */ } +varonce = var1; +{ +nit___nit__AbstractCompilerVisitor___add(self, var16); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on */ } -var_ = var12; -if (var12){ { -{ /* Inline abstract_compiler#RuntimeVariable#mtype (var_value1) on */ -var18 = var_value1->attrs[COLOR_nit__abstract_compiler__RuntimeVariable___mtype].val; /* _mtype on */ -if (unlikely(var18 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1680); -show_backtrace(1); +{ /* Inline abstract_compiler#AbstractCompilerVisitor#compiler (self) on */ +var19 = self->attrs[COLOR_nit__abstract_compiler__AbstractCompilerVisitor___compiler].val; /* _compiler on */ +if (unlikely(var19 == 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; +var17 = var19; +RET_LABEL18:(void)0; } } +var_compiler = var17; { -var19 = ((val* (*)(val* self))(var16->class->vft[COLOR_nit__abstract_compiler__MType__ctype]))(var16) /* ctype on */; +{ /* Inline abstract_compiler#AbstractCompilerVisitor#frame (self) on */ +var22 = self->attrs[COLOR_nit__abstract_compiler__AbstractCompilerVisitor___frame].val; /* _frame on */ +var20 = var22; +RET_LABEL21:(void)0; } -if (varonce20) { -var21 = varonce20; +} +if (var20 == NULL) { +PRINT_ERROR("Runtime error: %s", "Receiver is null"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_compiler, 1758); +fatal_exit(1); } else { -var22 = "val*"; -var23 = 4; -var24 = standard___standard__NativeString___to_s_with_length(var22, var23); -var21 = var24; -varonce20 = var21; +{ /* Inline abstract_compiler#StaticFrame#arguments (var20) on */ +if (unlikely(var20 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Receiver is null"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1835); +fatal_exit(1); } -{ -var25 = ((short int (*)(val* self, val* p0))(var19->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var19, var21) /* == on */; +var25 = var20->attrs[COLOR_nit__abstract_compiler__StaticFrame___arguments].val; /* _arguments on */ +if (unlikely(var25 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _arguments"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1835); +fatal_exit(1); } -var3 = var25; -} else { -var3 = var_; +var23 = var25; +RET_LABEL24:(void)0; } -if (var3){ -var_tmp = var_value1; -var_value1 = var_value2; -var_value2 = var_tmp; -} else { } { -{ /* Inline abstract_compiler#RuntimeVariable#mtype (var_value1) on */ -var28 = var_value1->attrs[COLOR_nit__abstract_compiler__RuntimeVariable___mtype].val; /* _mtype on */ -if (unlikely(var28 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1680); -show_backtrace(1); +var26 = standard___standard__SequenceRead___Collection__first(var23); } -var26 = var28; -RET_LABEL27:(void)0; +var_recv = var26; +{ +var27 = nit___nit__SeparateCompilerVisitor___type_info(self, var_recv); } +var_recv_type_info = var27; +{ +var28 = nit___nit__AbstractCompilerVisitor___bool_type(self); } { -var29 = ((val* (*)(val* self))(var26->class->vft[COLOR_nit__abstract_compiler__MType__ctype]))(var26) /* ctype on */; +var29 = nit___nit__AbstractCompilerVisitor___new_var(self, var28); } -if (varonce30) { +var_res = var29; +if (likely(varonce30!=NULL)) { var31 = varonce30; } else { -var32 = "val*"; -var33 = 4; -var34 = standard___standard__NativeString___to_s_with_length(var32, var33); -var31 = var34; +var32 = "cltype"; +var33 = standard___standard__NativeString___to_s_with_length(var32, 6l); +var31 = var33; varonce30 = var31; } { -{ /* Inline kernel#Object#!= (var29,var31) on */ -var_other = var31; -{ -var37 = ((short int (*)(val* self, val* p0))(var29->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var29, var_other) /* == on */; +var34 = nit___nit__AbstractCompilerVisitor___get_name(self, var31); } -var38 = !var37; -var35 = var38; -goto RET_LABEL36; -RET_LABEL36:(void)0; +var_cltype = var34; +if (unlikely(varonce35==NULL)) { +var36 = NEW_standard__NativeArray(3l, &type_standard__NativeArray__standard__String); +if (likely(varonce37!=NULL)) { +var38 = varonce37; +} else { +var39 = "int "; +var40 = standard___standard__NativeString___to_s_with_length(var39, 4l); +var38 = var40; +varonce37 = var38; +} +((struct instance_standard__NativeArray*)var36)->values[0]=var38; +if (likely(varonce41!=NULL)) { +var42 = varonce41; +} else { +var43 = ";"; +var44 = standard___standard__NativeString___to_s_with_length(var43, 1l); +var42 = var44; +varonce41 = var42; } +((struct instance_standard__NativeArray*)var36)->values[2]=var42; +} else { +var36 = varonce35; +varonce35 = NULL; } -if (var35){ +((struct instance_standard__NativeArray*)var36)->values[1]=var_cltype; { -{ /* Inline abstract_compiler#RuntimeVariable#mtype (var_value2) on */ -var41 = var_value2->attrs[COLOR_nit__abstract_compiler__RuntimeVariable___mtype].val; /* _mtype on */ -if (unlikely(var41 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1680); -show_backtrace(1); +var45 = ((val*(*)(val* self))(var36->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var36); /* native_to_s on */ } -var39 = var41; -RET_LABEL40:(void)0; +varonce35 = var36; +{ +nit___nit__AbstractCompilerVisitor___add_decl(self, var45); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on */ } +if (likely(varonce46!=NULL)) { +var47 = varonce46; +} else { +var48 = "idtype"; +var49 = standard___standard__NativeString___to_s_with_length(var48, 6l); +var47 = var49; +varonce46 = var47; } { -{ /* Inline abstract_compiler#RuntimeVariable#mtype (var_value1) on */ -var44 = var_value1->attrs[COLOR_nit__abstract_compiler__RuntimeVariable___mtype].val; /* _mtype on */ -if (unlikely(var44 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1680); -show_backtrace(1); +var50 = nit___nit__AbstractCompilerVisitor___get_name(self, var47); } -var42 = var44; -RET_LABEL43:(void)0; +var_idtype = var50; +if (unlikely(varonce51==NULL)) { +var52 = NEW_standard__NativeArray(3l, &type_standard__NativeArray__standard__String); +if (likely(varonce53!=NULL)) { +var54 = varonce53; +} else { +var55 = "int "; +var56 = standard___standard__NativeString___to_s_with_length(var55, 4l); +var54 = var56; +varonce53 = var54; +} +((struct instance_standard__NativeArray*)var52)->values[0]=var54; +if (likely(varonce57!=NULL)) { +var58 = varonce57; +} else { +var59 = ";"; +var60 = standard___standard__NativeString___to_s_with_length(var59, 1l); +var58 = var60; +varonce57 = var58; } +((struct instance_standard__NativeArray*)var52)->values[2]=var58; +} else { +var52 = varonce51; +varonce51 = NULL; } +((struct instance_standard__NativeArray*)var52)->values[1]=var_idtype; { -{ /* Inline kernel#Object#== (var39,var42) on */ -var_other47 = var42; -{ -{ /* Inline kernel#Object#is_same_instance (var39,var_other47) on */ -var50 = var39 == var_other47; -var48 = var50; -goto RET_LABEL49; -RET_LABEL49:(void)0; +var61 = ((val*(*)(val* self))(var52->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var52); /* native_to_s on */ } +varonce51 = var52; +{ +nit___nit__AbstractCompilerVisitor___add_decl(self, var61); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on */ } -var45 = var48; -goto RET_LABEL46; -RET_LABEL46:(void)0; +{ +var62 = nit___nit__SeparateCompilerVisitor___maybe_null(self, var_value); } +var_maybe_null = var62; +if (likely(varonce63!=NULL)) { +var64 = varonce63; +} else { +var65 = "0"; +var66 = standard___standard__NativeString___to_s_with_length(var65, 1l); +var64 = var66; +varonce63 = var64; } -if (var45){ -if (varonce51) { -var52 = varonce51; +var_accept_null = var64; +var_ntype = var_mtype; +/* isa MNullableType */ +cltype = type_nit__MNullableType.color; +idtype = type_nit__MNullableType.id; +if(cltype >= var_ntype->type->table_size) { +var67 = 0; } else { -var53 = " = "; -var54 = 3; -var55 = standard___standard__NativeString___to_s_with_length(var53, var54); -var52 = var55; -varonce51 = var52; +var67 = var_ntype->type->type_table[cltype] == idtype; } -if (varonce56) { -var57 = varonce56; +if (var67){ +{ +{ /* Inline model#MProxyType#mtype (var_ntype) on */ +var70 = var_ntype->attrs[COLOR_nit__model__MProxyType___mtype].val; /* _mtype on */ +if (unlikely(var70 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1598); +fatal_exit(1); +} +var68 = var70; +RET_LABEL69:(void)0; +} +} +var_ntype = var68; +if (likely(varonce71!=NULL)) { +var72 = varonce71; } else { -var58 = " == "; -var59 = 4; -var60 = standard___standard__NativeString___to_s_with_length(var58, var59); -var57 = var60; -varonce56 = var57; +var73 = "1"; +var74 = standard___standard__NativeString___to_s_with_length(var73, 1l); +var72 = var74; +varonce71 = var72; } -if (varonce61) { -var62 = varonce61; +var_accept_null = var72; } else { -var63 = ";"; -var64 = 1; -var65 = standard___standard__NativeString___to_s_with_length(var63, var64); -var62 = var65; -varonce61 = var62; } -var66 = NEW_standard__Array(&type_standard__Array__standard__Object); -{ /* var66 = array_instance Array[Object] */ -var67 = 6; -var68 = NEW_standard__NativeArray(var67, &type_standard__NativeArray__standard__Object); -((struct instance_standard__NativeArray*)var68)->values[0] = (val*) var_res; -((struct instance_standard__NativeArray*)var68)->values[1] = (val*) var52; -((struct instance_standard__NativeArray*)var68)->values[2] = (val*) var_value1; -((struct instance_standard__NativeArray*)var68)->values[3] = (val*) var57; -((struct instance_standard__NativeArray*)var68)->values[4] = (val*) var_value2; -((struct instance_standard__NativeArray*)var68)->values[5] = (val*) var62; { -((void (*)(val* self, val* p0, long p1))(var66->class->vft[COLOR_standard__array__Array__with_native]))(var66, var68, var67) /* with_native on */; +{ /* Inline abstract_compiler#RuntimeVariable#mcasttype (var_value) on */ +var77 = var_value->attrs[COLOR_nit__abstract_compiler__RuntimeVariable___mcasttype].val; /* _mcasttype on */ +if (unlikely(var77 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mcasttype"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1787); +fatal_exit(1); +} +var75 = var77; +RET_LABEL76:(void)0; } } { -var69 = ((val* (*)(val* self))(var66->class->vft[COLOR_standard__string__Object__to_s]))(var66) /* to_s on */; +{ /* Inline abstract_compiler#AbstractCompilerVisitor#frame (self) on */ +var80 = self->attrs[COLOR_nit__abstract_compiler__AbstractCompilerVisitor___frame].val; /* _frame on */ +var78 = var80; +RET_LABEL79:(void)0; } -{ -nit___nit__AbstractCompilerVisitor___add(self, var69); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on */ } +if (var78 == NULL) { +PRINT_ERROR("Runtime error: %s", "Receiver is null"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_compiler, 1776); +fatal_exit(1); } else { -{ -{ /* Inline abstract_compiler#RuntimeVariable#mtype (var_value2) on */ -var72 = var_value2->attrs[COLOR_nit__abstract_compiler__RuntimeVariable___mtype].val; /* _mtype on */ -if (unlikely(var72 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1680); -show_backtrace(1); +{ /* Inline abstract_compiler#StaticFrame#mpropdef (var78) on */ +if (unlikely(var78 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Receiver is null"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1828); +fatal_exit(1); } -var70 = var72; -RET_LABEL71:(void)0; +var83 = var78->attrs[COLOR_nit__abstract_compiler__StaticFrame___mpropdef].val; /* _mpropdef on */ +if (unlikely(var83 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mpropdef"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1828); +fatal_exit(1); +} +var81 = var83; +RET_LABEL82:(void)0; } } { -var73 = ((val* (*)(val* self))(var70->class->vft[COLOR_nit__abstract_compiler__MType__ctype]))(var70) /* ctype on */; +{ /* Inline model#MPropDef#mclassdef (var81) on */ +var86 = var81->attrs[COLOR_nit__model__MPropDef___mclassdef].val; /* _mclassdef on */ +if (unlikely(var86 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdef"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 2209); +fatal_exit(1); } -if (varonce74) { -var75 = varonce74; -} else { -var76 = "val*"; -var77 = 4; -var78 = standard___standard__NativeString___to_s_with_length(var76, var77); -var75 = var78; -varonce74 = var75; +var84 = var86; +RET_LABEL85:(void)0; } -{ -{ /* Inline kernel#Object#!= (var73,var75) on */ -var_other = var75; -{ -var81 = ((short int (*)(val* self, val* p0))(var73->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var73, var_other) /* == on */; } -var82 = !var81; -var79 = var82; -goto RET_LABEL80; -RET_LABEL80:(void)0; +{ +{ /* Inline model#MClassDef#mmodule (var84) on */ +var89 = var84->attrs[COLOR_nit__model__MClassDef___mmodule].val; /* _mmodule on */ +if (unlikely(var89 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 550); +fatal_exit(1); } +var87 = var89; +RET_LABEL88:(void)0; } -if (var79){ -if (varonce83) { -var84 = varonce83; -} else { -var85 = " = 0; /* incompatible types "; -var86 = 28; -var87 = standard___standard__NativeString___to_s_with_length(var85, var86); -var84 = var87; -varonce83 = var84; } { -{ /* Inline abstract_compiler#RuntimeVariable#mtype (var_value1) on */ -var90 = var_value1->attrs[COLOR_nit__abstract_compiler__RuntimeVariable___mtype].val; /* _mtype on */ +{ /* Inline abstract_compiler#AbstractCompilerVisitor#frame (self) on */ +var92 = self->attrs[COLOR_nit__abstract_compiler__AbstractCompilerVisitor___frame].val; /* _frame on */ +var90 = var92; +RET_LABEL91:(void)0; +} +} +if (var90 == NULL) { +PRINT_ERROR("Runtime error: %s", "Receiver is null"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_compiler, 1776); +fatal_exit(1); +} else { +{ /* Inline abstract_compiler#StaticFrame#mpropdef (var90) on */ if (unlikely(var90 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1680); -show_backtrace(1); +PRINT_ERROR("Runtime error: %s", "Receiver is null"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1828); +fatal_exit(1); } -var88 = var90; -RET_LABEL89:(void)0; +var95 = var90->attrs[COLOR_nit__abstract_compiler__StaticFrame___mpropdef].val; /* _mpropdef on */ +if (unlikely(var95 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mpropdef"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1828); +fatal_exit(1); } +var93 = var95; +RET_LABEL94:(void)0; } -if (varonce91) { -var92 = varonce91; -} else { -var93 = " vs. "; -var94 = 5; -var95 = standard___standard__NativeString___to_s_with_length(var93, var94); -var92 = var95; -varonce91 = var92; } { -{ /* Inline abstract_compiler#RuntimeVariable#mtype (var_value2) on */ -var98 = var_value2->attrs[COLOR_nit__abstract_compiler__RuntimeVariable___mtype].val; /* _mtype on */ +{ /* Inline model#MPropDef#mclassdef (var93) on */ +var98 = var93->attrs[COLOR_nit__model__MPropDef___mclassdef].val; /* _mclassdef on */ if (unlikely(var98 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1680); -show_backtrace(1); +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdef"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 2209); +fatal_exit(1); } var96 = var98; RET_LABEL97:(void)0; } } -if (varonce99) { -var100 = varonce99; -} else { -var101 = "*/"; -var102 = 2; -var103 = standard___standard__NativeString___to_s_with_length(var101, var102); -var100 = var103; -varonce99 = var100; -} -var104 = NEW_standard__Array(&type_standard__Array__standard__Object); -{ /* var104 = array_instance Array[Object] */ -var105 = 6; -var106 = NEW_standard__NativeArray(var105, &type_standard__NativeArray__standard__Object); -((struct instance_standard__NativeArray*)var106)->values[0] = (val*) var_res; -((struct instance_standard__NativeArray*)var106)->values[1] = (val*) var84; -((struct instance_standard__NativeArray*)var106)->values[2] = (val*) var88; -((struct instance_standard__NativeArray*)var106)->values[3] = (val*) var92; -((struct instance_standard__NativeArray*)var106)->values[4] = (val*) var96; -((struct instance_standard__NativeArray*)var106)->values[5] = (val*) var100; { -((void (*)(val* self, val* p0, long p1))(var104->class->vft[COLOR_standard__array__Array__with_native]))(var104, var106, var105) /* with_native on */; +{ /* Inline model#MClassDef#bound_mtype (var96) on */ +var101 = var96->attrs[COLOR_nit__model__MClassDef___bound_mtype].val; /* _bound_mtype on */ +if (unlikely(var101 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _bound_mtype"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 556); +fatal_exit(1); } +var99 = var101; +RET_LABEL100:(void)0; } -{ -var107 = ((val* (*)(val* self))(var104->class->vft[COLOR_standard__string__Object__to_s]))(var104) /* to_s on */; } { -nit___nit__AbstractCompilerVisitor___add(self, var107); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on */ +var102 = nit___nit__MType___is_subtype(var75, var87, var99, var_mtype); } +if (var102){ +if (unlikely(varonce103==NULL)) { +var104 = NEW_standard__NativeArray(6l, &type_standard__NativeArray__standard__String); +if (likely(varonce105!=NULL)) { +var106 = varonce105; } else { -{ -{ /* Inline abstract_compiler#RuntimeVariable#mtype (var_value1) on */ -var110 = var_value1->attrs[COLOR_nit__abstract_compiler__RuntimeVariable___mtype].val; /* _mtype on */ -if (unlikely(var110 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1680); -show_backtrace(1); -} -var108 = var110; -RET_LABEL109:(void)0; -} +var107 = " = 1; /* easy "; +var108 = standard___standard__NativeString___to_s_with_length(var107, 14l); +var106 = var108; +varonce105 = var106; } -/* isa MClassType */ -cltype = type_nit__MClassType.color; -idtype = type_nit__MClassType.id; -if(cltype >= var108->type->table_size) { -var111 = 0; +((struct instance_standard__NativeArray*)var104)->values[1]=var106; +if (likely(varonce109!=NULL)) { +var110 = varonce109; } else { -var111 = var108->type->type_table[cltype] == idtype; +var111 = " isa "; +var112 = standard___standard__NativeString___to_s_with_length(var111, 5l); +var110 = var112; +varonce109 = var110; } -if (unlikely(!var111)) { -var_class_name = var108 == NULL ? "null" : var108->type->name; -PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "MClassType", var_class_name); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_compiler, 1610); -show_backtrace(1); +((struct instance_standard__NativeArray*)var104)->values[3]=var110; +if (likely(varonce113!=NULL)) { +var114 = varonce113; +} else { +var115 = "*/"; +var116 = standard___standard__NativeString___to_s_with_length(var115, 2l); +var114 = var116; +varonce113 = var114; } -var_mtype1 = var108; -if (varonce112) { -var113 = varonce112; +((struct instance_standard__NativeArray*)var104)->values[5]=var114; } else { -var114 = "class_"; -var115 = 6; -var116 = standard___standard__NativeString___to_s_with_length(var114, var115); -var113 = var116; -varonce112 = var113; +var104 = varonce103; +varonce103 = NULL; } { -var117 = ((val* (*)(val* self))(var_mtype1->class->vft[COLOR_nit__model_base__MEntity__c_name]))(var_mtype1) /* c_name on */; +var117 = ((val*(*)(val* self))(var_res->class->vft[COLOR_standard__string__Object__to_s]))(var_res); /* to_s on */ } -var118 = NEW_standard__Array(&type_standard__Array__standard__Object); -{ /* var118 = array_instance Array[Object] */ -var119 = 2; -var120 = NEW_standard__NativeArray(var119, &type_standard__NativeArray__standard__Object); -((struct instance_standard__NativeArray*)var120)->values[0] = (val*) var113; -((struct instance_standard__NativeArray*)var120)->values[1] = (val*) var117; +((struct instance_standard__NativeArray*)var104)->values[0]=var117; { -((void (*)(val* self, val* p0, long p1))(var118->class->vft[COLOR_standard__array__Array__with_native]))(var118, var120, var119) /* with_native on */; +var118 = nit___nit__RuntimeVariable___standard__string__Object__inspect(var_value); } +((struct instance_standard__NativeArray*)var104)->values[2]=var118; +{ +var119 = ((val*(*)(val* self))(var_mtype->class->vft[COLOR_standard__string__Object__to_s]))(var_mtype); /* to_s on */ } +((struct instance_standard__NativeArray*)var104)->values[4]=var119; { -var121 = ((val* (*)(val* self))(var118->class->vft[COLOR_standard__string__Object__to_s]))(var118) /* to_s on */; +var120 = ((val*(*)(val* self))(var104->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var104); /* native_to_s on */ } +varonce103 = var104; { -nit___nit__AbstractCompilerVisitor___require_declaration(self, var121); /* Direct call abstract_compiler#AbstractCompilerVisitor#require_declaration on */ +nit___nit__AbstractCompilerVisitor___add(self, var120); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on */ } -if (varonce122) { -var123 = varonce122; -} else { -var124 = " = ("; -var125 = 4; -var126 = standard___standard__NativeString___to_s_with_length(var124, var125); -var123 = var126; -varonce122 = var123; +{ +{ /* Inline abstract_compiler#AbstractCompiler#modelbuilder (var_compiler) on */ +var123 = var_compiler->attrs[COLOR_nit__abstract_compiler__AbstractCompiler___modelbuilder].val; /* _modelbuilder on */ +if (unlikely(var123 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 522); +fatal_exit(1); } -if (varonce127) { -var128 = varonce127; -} else { -var129 = " != NULL) && ("; -var130 = 14; -var131 = standard___standard__NativeString___to_s_with_length(var129, var130); -var128 = var131; -varonce127 = var128; +var121 = var123; +RET_LABEL122:(void)0; } -if (varonce132) { -var133 = varonce132; -} else { -var134 = "->class == &class_"; -var135 = 18; -var136 = standard___standard__NativeString___to_s_with_length(var134, var135); -var133 = var136; -varonce132 = var133; } { -var137 = ((val* (*)(val* self))(var_mtype1->class->vft[COLOR_nit__model_base__MEntity__c_name]))(var_mtype1) /* c_name on */; +{ /* Inline modelbuilder_base#ModelBuilder#toolcontext (var121) on */ +var126 = var121->attrs[COLOR_nit__modelbuilder_base__ModelBuilder___toolcontext].val; /* _toolcontext on */ +if (unlikely(var126 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__modelbuilder_base, 47); +fatal_exit(1); +} +var124 = var126; +RET_LABEL125:(void)0; } -if (varonce138) { -var139 = varonce138; -} else { -var140 = ");"; -var141 = 2; -var142 = standard___standard__NativeString___to_s_with_length(var140, var141); -var139 = var142; -varonce138 = var139; } -var143 = NEW_standard__Array(&type_standard__Array__standard__Object); -{ /* var143 = array_instance Array[Object] */ -var144 = 8; -var145 = NEW_standard__NativeArray(var144, &type_standard__NativeArray__standard__Object); -((struct instance_standard__NativeArray*)var145)->values[0] = (val*) var_res; -((struct instance_standard__NativeArray*)var145)->values[1] = (val*) var123; -((struct instance_standard__NativeArray*)var145)->values[2] = (val*) var_value2; -((struct instance_standard__NativeArray*)var145)->values[3] = (val*) var128; -((struct instance_standard__NativeArray*)var145)->values[4] = (val*) var_value2; -((struct instance_standard__NativeArray*)var145)->values[5] = (val*) var133; -((struct instance_standard__NativeArray*)var145)->values[6] = (val*) var137; -((struct instance_standard__NativeArray*)var145)->values[7] = (val*) var139; { -((void (*)(val* self, val* p0, long p1))(var143->class->vft[COLOR_standard__array__Array__with_native]))(var143, var145, var144) /* with_native on */; +{ /* Inline abstract_compiler#ToolContext#opt_typing_test_metrics (var124) on */ +var129 = var124->attrs[COLOR_nit__abstract_compiler__ToolContext___opt_typing_test_metrics].val; /* _opt_typing_test_metrics on */ +if (unlikely(var129 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_typing_test_metrics"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 60); +fatal_exit(1); +} +var127 = var129; +RET_LABEL128:(void)0; } } { -var146 = ((val* (*)(val* self))(var143->class->vft[COLOR_standard__string__Object__to_s]))(var143) /* to_s on */; +{ /* Inline opts#Option#value (var127) on */ +var132 = var127->attrs[COLOR_opts__Option___value].val; /* _value on */ +var130 = var132; +RET_LABEL131:(void)0; +} } +var133 = (short int)((long)(var130)>>2); +if (var133){ { -nit___nit__AbstractCompilerVisitor___add(self, var146); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on */ +{ /* Inline abstract_compiler#AbstractCompilerVisitor#compiler (self) on */ +var136 = self->attrs[COLOR_nit__abstract_compiler__AbstractCompilerVisitor___compiler].val; /* _compiler on */ +if (unlikely(var136 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _compiler"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1102); +fatal_exit(1); } -if (varonce147) { -var148 = varonce147; -} else { -var149 = "if ("; -var150 = 4; -var151 = standard___standard__NativeString___to_s_with_length(var149, var150); -var148 = var151; -varonce147 = var148; +var134 = var136; +RET_LABEL135:(void)0; } -if (varonce152) { -var153 = varonce152; -} else { -var154 = ") {"; -var155 = 3; -var156 = standard___standard__NativeString___to_s_with_length(var154, var155); -var153 = var156; -varonce152 = var153; } -var157 = NEW_standard__Array(&type_standard__Array__standard__Object); -{ /* var157 = array_instance Array[Object] */ -var158 = 3; -var159 = NEW_standard__NativeArray(var158, &type_standard__NativeArray__standard__Object); -((struct instance_standard__NativeArray*)var159)->values[0] = (val*) var148; -((struct instance_standard__NativeArray*)var159)->values[1] = (val*) var_res; -((struct instance_standard__NativeArray*)var159)->values[2] = (val*) var153; { -((void (*)(val* self, val* p0, long p1))(var157->class->vft[COLOR_standard__array__Array__with_native]))(var157, var159, var158) /* with_native on */; +{ /* Inline abstract_compiler#AbstractCompiler#count_type_test_skipped (var134) on */ +var139 = var134->attrs[COLOR_nit__abstract_compiler__AbstractCompiler___count_type_test_skipped].val; /* _count_type_test_skipped on */ +if (unlikely(var139 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _count_type_test_skipped"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1017); +fatal_exit(1); } +var137 = var139; +RET_LABEL138:(void)0; } -{ -var160 = ((val* (*)(val* self))(var157->class->vft[COLOR_standard__string__Object__to_s]))(var157) /* to_s on */; } +var_ = var137; +var_140 = var_tag; { -nit___nit__AbstractCompilerVisitor___add(self, var160); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on */ -} -if (varonce161) { -var162 = varonce161; -} else { -var163 = " = ("; -var164 = 4; -var165 = standard___standard__NativeString___to_s_with_length(var163, var164); -var162 = var165; -varonce161 = var162; +var141 = standard___standard__HashMap___standard__abstract_collection__MapRead___91d_93d(var_, var_140); } { -{ /* Inline abstract_compiler#RuntimeVariable#mtype (var_value1) on */ -var168 = var_value1->attrs[COLOR_nit__abstract_compiler__RuntimeVariable___mtype].val; /* _mtype on */ -if (unlikely(var168 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1680); -show_backtrace(1); +{ /* Inline kernel#Int#+ (var141,1l) on */ +/* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */ +/* <1l:Int> isa OTHER */ +var144 = 1; /* easy <1l:Int> isa OTHER*/ +if (unlikely(!var144)) { +var_class_name = type_standard__Int.name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name); +PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 537); +fatal_exit(1); } -var166 = var168; -RET_LABEL167:(void)0; +var147 = (long)(var141)>>2; +var148 = var147 + 1l; +var142 = var148; +goto RET_LABEL143; +RET_LABEL143:(void)0; } } { -var169 = nit___nit__SeparateCompilerVisitor___nit__abstract_compiler__AbstractCompilerVisitor__autobox(self, var_value2, var166); +var149 = (val*)(var142<<2|1); +standard___standard__HashMap___standard__abstract_collection__Map___91d_93d_61d(var_, var_140, var149); /* Direct call hash_collection#HashMap#[]= on */ } -if (varonce170) { -var171 = varonce170; +if (unlikely(varonce150==NULL)) { +var151 = NEW_standard__NativeArray(3l, &type_standard__NativeArray__standard__String); +if (likely(varonce152!=NULL)) { +var153 = varonce152; } else { -var172 = " == "; -var173 = 4; -var174 = standard___standard__NativeString___to_s_with_length(var172, var173); -var171 = var174; -varonce170 = var171; +var154 = "count_type_test_skipped_"; +var155 = standard___standard__NativeString___to_s_with_length(var154, 24l); +var153 = var155; +varonce152 = var153; } -if (varonce175) { -var176 = varonce175; +((struct instance_standard__NativeArray*)var151)->values[0]=var153; +if (likely(varonce156!=NULL)) { +var157 = varonce156; } else { -var177 = ");"; -var178 = 2; -var179 = standard___standard__NativeString___to_s_with_length(var177, var178); -var176 = var179; -varonce175 = var176; -} -var180 = NEW_standard__Array(&type_standard__Array__standard__Object); -{ /* var180 = array_instance Array[Object] */ -var181 = 6; -var182 = NEW_standard__NativeArray(var181, &type_standard__NativeArray__standard__Object); -((struct instance_standard__NativeArray*)var182)->values[0] = (val*) var_res; -((struct instance_standard__NativeArray*)var182)->values[1] = (val*) var162; -((struct instance_standard__NativeArray*)var182)->values[2] = (val*) var169; -((struct instance_standard__NativeArray*)var182)->values[3] = (val*) var171; -((struct instance_standard__NativeArray*)var182)->values[4] = (val*) var_value1; -((struct instance_standard__NativeArray*)var182)->values[5] = (val*) var176; -{ -((void (*)(val* self, val* p0, long p1))(var180->class->vft[COLOR_standard__array__Array__with_native]))(var180, var182, var181) /* with_native on */; +var158 = "++;"; +var159 = standard___standard__NativeString___to_s_with_length(var158, 3l); +var157 = var159; +varonce156 = var157; } +((struct instance_standard__NativeArray*)var151)->values[2]=var157; +} else { +var151 = varonce150; +varonce150 = NULL; } +((struct instance_standard__NativeArray*)var151)->values[1]=var_tag; { -var183 = ((val* (*)(val* self))(var180->class->vft[COLOR_standard__string__Object__to_s]))(var180) /* to_s on */; +var160 = ((val*(*)(val* self))(var151->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var151); /* native_to_s on */ } +varonce150 = var151; { -nit___nit__AbstractCompilerVisitor___add(self, var183); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on */ +nit___nit__AbstractCompilerVisitor___add(self, var160); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on */ } -if (varonce184) { -var185 = varonce184; } else { -var186 = "}"; -var187 = 1; -var188 = standard___standard__NativeString___to_s_with_length(var186, var187); -var185 = var188; -varonce184 = var185; -} -{ -nit___nit__AbstractCompilerVisitor___add(self, var185); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on */ -} -} } var = var_res; goto RET_LABEL; } else { } -var189 = 1; -var_maybe_null = var189; -var190 = NEW_standard__Array(&type_standard__Array__standard__String); { -standard___standard__Array___standard__kernel__Object__init(var190); /* Direct call array#Array#init on */ +var161 = ((short int(*)(val* self))(var_ntype->class->vft[COLOR_nit__model__MType__need_anchor]))(var_ntype); /* need_anchor on */ } -var_test = var190; -{ -{ /* Inline abstract_compiler#RuntimeVariable#mcasttype (var_value1) on */ -var193 = var_value1->attrs[COLOR_nit__abstract_compiler__RuntimeVariable___mcasttype].val; /* _mcasttype on */ -if (unlikely(var193 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mcasttype"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1683); -show_backtrace(1); +if (var161){ +if (likely(varonce162!=NULL)) { +var163 = varonce162; +} else { +var164 = "type_struct"; +var165 = standard___standard__NativeString___to_s_with_length(var164, 11l); +var163 = var165; +varonce162 = var163; } -var191 = var193; -RET_LABEL192:(void)0; +{ +var166 = nit___nit__AbstractCompilerVisitor___get_name(self, var163); } +var_type_struct = var166; +if (unlikely(varonce167==NULL)) { +var168 = NEW_standard__NativeArray(3l, &type_standard__NativeArray__standard__String); +if (likely(varonce169!=NULL)) { +var170 = varonce169; +} else { +var171 = "const struct type* "; +var172 = standard___standard__NativeString___to_s_with_length(var171, 19l); +var170 = var172; +varonce169 = var170; } -var_t1 = var191; -/* isa MNullableType */ -cltype195 = type_nit__MNullableType.color; -idtype196 = type_nit__MNullableType.id; -if(cltype195 >= var_t1->type->table_size) { -var194 = 0; +((struct instance_standard__NativeArray*)var168)->values[0]=var170; +if (likely(varonce173!=NULL)) { +var174 = varonce173; } else { -var194 = var_t1->type->type_table[cltype195] == idtype196; +var175 = ";"; +var176 = standard___standard__NativeString___to_s_with_length(var175, 1l); +var174 = var176; +varonce173 = var174; } -if (var194){ -if (varonce197) { -var198 = varonce197; +((struct instance_standard__NativeArray*)var168)->values[2]=var174; } else { -var199 = " != NULL"; -var200 = 8; -var201 = standard___standard__NativeString___to_s_with_length(var199, var200); -var198 = var201; -varonce197 = var198; +var168 = varonce167; +varonce167 = NULL; } -var202 = NEW_standard__Array(&type_standard__Array__standard__Object); -{ /* var202 = array_instance Array[Object] */ -var203 = 2; -var204 = NEW_standard__NativeArray(var203, &type_standard__NativeArray__standard__Object); -((struct instance_standard__NativeArray*)var204)->values[0] = (val*) var_value1; -((struct instance_standard__NativeArray*)var204)->values[1] = (val*) var198; +((struct instance_standard__NativeArray*)var168)->values[1]=var_type_struct; { -((void (*)(val* self, val* p0, long p1))(var202->class->vft[COLOR_standard__array__Array__with_native]))(var202, var204, var203) /* with_native on */; -} +var177 = ((val*(*)(val* self))(var168->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var168); /* native_to_s on */ } +varonce167 = var168; { -var205 = ((val* (*)(val* self))(var202->class->vft[COLOR_standard__string__Object__to_s]))(var202) /* to_s on */; +nit___nit__AbstractCompilerVisitor___add_decl(self, var177); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on */ } { -standard___standard__Array___standard__abstract_collection__SimpleCollection__add(var_test, var205); /* Direct call array#Array#add on */ +nit___nit__SeparateCompilerVisitor___hardening_live_open_type(self, var_mtype); /* Direct call separate_compiler#SeparateCompilerVisitor#hardening_live_open_type on */ } { -{ /* Inline model#MNullableType#mtype (var_t1) on */ -var208 = var_t1->attrs[COLOR_nit__model__MNullableType___mtype].val; /* _mtype on */ -if (unlikely(var208 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1506); -show_backtrace(1); -} -var206 = var208; -RET_LABEL207:(void)0; +{ /* Inline abstract_compiler#AbstractCompilerVisitor#frame (self) on */ +var180 = self->attrs[COLOR_nit__abstract_compiler__AbstractCompilerVisitor___frame].val; /* _frame on */ +var178 = var180; +RET_LABEL179:(void)0; } } -var_t1 = var206; +if (var178 == NULL) { +PRINT_ERROR("Runtime error: %s", "Receiver is null"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_compiler, 1791); +fatal_exit(1); } else { -var209 = 0; -var_maybe_null = var209; +{ /* Inline abstract_compiler#StaticFrame#mpropdef (var178) on */ +if (unlikely(var178 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Receiver is null"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1828); +fatal_exit(1); +} +var183 = var178->attrs[COLOR_nit__abstract_compiler__StaticFrame___mpropdef].val; /* _mpropdef on */ +if (unlikely(var183 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mpropdef"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1828); +fatal_exit(1); +} +var181 = var183; +RET_LABEL182:(void)0; +} } { -{ /* Inline abstract_compiler#RuntimeVariable#mcasttype (var_value2) on */ -var212 = var_value2->attrs[COLOR_nit__abstract_compiler__RuntimeVariable___mcasttype].val; /* _mcasttype on */ -if (unlikely(var212 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mcasttype"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1683); -show_backtrace(1); +{ /* Inline model#MPropDef#mclassdef (var181) on */ +var186 = var181->attrs[COLOR_nit__model__MPropDef___mclassdef].val; /* _mclassdef on */ +if (unlikely(var186 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdef"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 2209); +fatal_exit(1); } -var210 = var212; -RET_LABEL211:(void)0; +var184 = var186; +RET_LABEL185:(void)0; } } -var_t2 = var210; -/* isa MNullableType */ -cltype214 = type_nit__MNullableType.color; -idtype215 = type_nit__MNullableType.id; -if(cltype214 >= var_t2->type->table_size) { -var213 = 0; +{ +nit___nit__SeparateCompilerVisitor___link_unresolved_type(self, var184, var_mtype); /* Direct call separate_compiler#SeparateCompilerVisitor#link_unresolved_type on */ +} +{ +var187 = nit__separate_compiler___MEntity___const_color(var_mtype); +} +{ +nit___nit__AbstractCompilerVisitor___require_declaration(self, var187); /* Direct call abstract_compiler#AbstractCompilerVisitor#require_declaration on */ +} +if (unlikely(varonce188==NULL)) { +var189 = NEW_standard__NativeArray(6l, &type_standard__NativeArray__standard__String); +if (likely(varonce190!=NULL)) { +var191 = varonce190; } else { -var213 = var_t2->type->type_table[cltype214] == idtype215; +var192 = " = "; +var193 = standard___standard__NativeString___to_s_with_length(var192, 3l); +var191 = var193; +varonce190 = var191; } -if (var213){ -if (varonce216) { -var217 = varonce216; +((struct instance_standard__NativeArray*)var189)->values[1]=var191; +if (likely(varonce194!=NULL)) { +var195 = varonce194; } else { -var218 = " != NULL"; -var219 = 8; -var220 = standard___standard__NativeString___to_s_with_length(var218, var219); -var217 = var220; -varonce216 = var217; +var196 = "->resolution_table->types["; +var197 = standard___standard__NativeString___to_s_with_length(var196, 26l); +var195 = var197; +varonce194 = var195; } -var221 = NEW_standard__Array(&type_standard__Array__standard__Object); -{ /* var221 = array_instance Array[Object] */ -var222 = 2; -var223 = NEW_standard__NativeArray(var222, &type_standard__NativeArray__standard__Object); -((struct instance_standard__NativeArray*)var223)->values[0] = (val*) var_value2; -((struct instance_standard__NativeArray*)var223)->values[1] = (val*) var217; -{ -((void (*)(val* self, val* p0, long p1))(var221->class->vft[COLOR_standard__array__Array__with_native]))(var221, var223, var222) /* with_native on */; +((struct instance_standard__NativeArray*)var189)->values[3]=var195; +if (likely(varonce198!=NULL)) { +var199 = varonce198; +} else { +var200 = "];"; +var201 = standard___standard__NativeString___to_s_with_length(var200, 2l); +var199 = var201; +varonce198 = var199; } +((struct instance_standard__NativeArray*)var189)->values[5]=var199; +} else { +var189 = varonce188; +varonce188 = NULL; } +((struct instance_standard__NativeArray*)var189)->values[0]=var_type_struct; +((struct instance_standard__NativeArray*)var189)->values[2]=var_recv_type_info; { -var224 = ((val* (*)(val* self))(var221->class->vft[COLOR_standard__string__Object__to_s]))(var221) /* to_s on */; +var202 = nit__separate_compiler___MEntity___const_color(var_mtype); } +((struct instance_standard__NativeArray*)var189)->values[4]=var202; { -standard___standard__Array___standard__abstract_collection__SimpleCollection__add(var_test, var224); /* Direct call array#Array#add on */ +var203 = ((val*(*)(val* self))(var189->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var189); /* native_to_s on */ } +varonce188 = var189; { -{ /* Inline model#MNullableType#mtype (var_t2) on */ -var227 = var_t2->attrs[COLOR_nit__model__MNullableType___mtype].val; /* _mtype on */ -if (unlikely(var227 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1506); -show_backtrace(1); +nit___nit__AbstractCompilerVisitor___add(self, var203); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on */ } -var225 = var227; -RET_LABEL226:(void)0; +{ +{ /* Inline abstract_compiler#AbstractCompiler#modelbuilder (var_compiler) on */ +var206 = var_compiler->attrs[COLOR_nit__abstract_compiler__AbstractCompiler___modelbuilder].val; /* _modelbuilder on */ +if (unlikely(var206 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 522); +fatal_exit(1); } +var204 = var206; +RET_LABEL205:(void)0; } -var_t2 = var225; -} else { -var228 = 0; -var_maybe_null = var228; } -var229 = 0; -var_incompatible = var229; { -var230 = ((val* (*)(val* self))(var_t1->class->vft[COLOR_nit__abstract_compiler__MType__ctype]))(var_t1) /* ctype on */; +{ /* Inline modelbuilder_base#ModelBuilder#toolcontext (var204) on */ +var209 = var204->attrs[COLOR_nit__modelbuilder_base__ModelBuilder___toolcontext].val; /* _toolcontext on */ +if (unlikely(var209 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__modelbuilder_base, 47); +fatal_exit(1); +} +var207 = var209; +RET_LABEL208:(void)0; } -if (varonce231) { -var232 = varonce231; -} else { -var233 = "val*"; -var234 = 4; -var235 = standard___standard__NativeString___to_s_with_length(var233, var234); -var232 = var235; -varonce231 = var232; } { -{ /* Inline kernel#Object#!= (var230,var232) on */ -var_other = var232; -{ -var238 = ((short int (*)(val* self, val* p0))(var230->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var230, var_other) /* == on */; +{ /* Inline abstract_compiler#ToolContext#opt_typing_test_metrics (var207) on */ +var212 = var207->attrs[COLOR_nit__abstract_compiler__ToolContext___opt_typing_test_metrics].val; /* _opt_typing_test_metrics on */ +if (unlikely(var212 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_typing_test_metrics"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 60); +fatal_exit(1); } -var239 = !var238; -var236 = var239; -goto RET_LABEL237; -RET_LABEL237:(void)0; +var210 = var212; +RET_LABEL211:(void)0; } } -if (var236){ -var_primitive = var_t1; { -{ /* Inline kernel#Object#== (var_t1,var_t2) on */ -var_other47 = var_t2; -{ -{ /* Inline kernel#Object#is_same_instance (var_t1,var_other47) on */ -var244 = var_t1 == var_other47; -var242 = var244; -goto RET_LABEL243; -RET_LABEL243:(void)0; +{ /* Inline opts#Option#value (var210) on */ +var215 = var210->attrs[COLOR_opts__Option___value].val; /* _value on */ +var213 = var215; +RET_LABEL214:(void)0; +} } +var216 = (short int)((long)(var213)>>2); +if (var216){ +{ +{ /* Inline abstract_compiler#AbstractCompilerVisitor#compiler (self) on */ +var219 = self->attrs[COLOR_nit__abstract_compiler__AbstractCompilerVisitor___compiler].val; /* _compiler on */ +if (unlikely(var219 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _compiler"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1102); +fatal_exit(1); } -var240 = var242; -goto RET_LABEL241; -RET_LABEL241:(void)0; +var217 = var219; +RET_LABEL218:(void)0; } } -if (var240){ -} else { { -var245 = ((val* (*)(val* self))(var_t2->class->vft[COLOR_nit__abstract_compiler__MType__ctype]))(var_t2) /* ctype on */; +{ /* Inline abstract_compiler#AbstractCompiler#count_type_test_unresolved (var217) on */ +var222 = var217->attrs[COLOR_nit__abstract_compiler__AbstractCompiler___count_type_test_unresolved].val; /* _count_type_test_unresolved on */ +if (unlikely(var222 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _count_type_test_unresolved"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1016); +fatal_exit(1); } -if (varonce246) { -var247 = varonce246; -} else { -var248 = "val*"; -var249 = 4; -var250 = standard___standard__NativeString___to_s_with_length(var248, var249); -var247 = var250; -varonce246 = var247; +var220 = var222; +RET_LABEL221:(void)0; } +} +var_223 = var220; +var_224 = var_tag; { -{ /* Inline kernel#Object#!= (var245,var247) on */ -var_other = var247; +var225 = standard___standard__HashMap___standard__abstract_collection__MapRead___91d_93d(var_223, var_224); +} { -var253 = ((short int (*)(val* self, val* p0))(var245->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var245, var_other) /* == on */; +{ /* Inline kernel#Int#+ (var225,1l) on */ +/* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */ +/* <1l:Int> isa OTHER */ +var228 = 1; /* easy <1l:Int> isa OTHER*/ +if (unlikely(!var228)) { +var_class_name231 = type_standard__Int.name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name231); +PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 537); +fatal_exit(1); } -var254 = !var253; -var251 = var254; -goto RET_LABEL252; -RET_LABEL252:(void)0; +var232 = (long)(var225)>>2; +var233 = var232 + 1l; +var226 = var233; +goto RET_LABEL227; +RET_LABEL227:(void)0; } } -if (var251){ -var255 = 1; -var_incompatible = var255; -} else { { -var256 = nit___nit__SeparateCompilerVisitor___can_be_primitive(self, var_value2); +var234 = (val*)(var226<<2|1); +standard___standard__HashMap___standard__abstract_collection__Map___91d_93d_61d(var_223, var_224, var234); /* Direct call hash_collection#HashMap#[]= on */ } -if (var256){ -if (varonce257) { -var258 = varonce257; +if (unlikely(varonce235==NULL)) { +var236 = NEW_standard__NativeArray(3l, &type_standard__NativeArray__standard__String); +if (likely(varonce237!=NULL)) { +var238 = varonce237; } else { -var259 = "->class == "; -var260 = 11; -var261 = standard___standard__NativeString___to_s_with_length(var259, var260); -var258 = var261; -varonce257 = var258; +var239 = "count_type_test_unresolved_"; +var240 = standard___standard__NativeString___to_s_with_length(var239, 27l); +var238 = var240; +varonce237 = var238; } -if (varonce262) { -var263 = varonce262; +((struct instance_standard__NativeArray*)var236)->values[0]=var238; +if (likely(varonce241!=NULL)) { +var242 = varonce241; } else { -var264 = "->class"; -var265 = 7; -var266 = standard___standard__NativeString___to_s_with_length(var264, var265); -var263 = var266; -varonce262 = var263; -} -var267 = NEW_standard__Array(&type_standard__Array__standard__Object); -{ /* var267 = array_instance Array[Object] */ -var268 = 4; -var269 = NEW_standard__NativeArray(var268, &type_standard__NativeArray__standard__Object); -((struct instance_standard__NativeArray*)var269)->values[0] = (val*) var_value1; -((struct instance_standard__NativeArray*)var269)->values[1] = (val*) var258; -((struct instance_standard__NativeArray*)var269)->values[2] = (val*) var_value2; -((struct instance_standard__NativeArray*)var269)->values[3] = (val*) var263; -{ -((void (*)(val* self, val* p0, long p1))(var267->class->vft[COLOR_standard__array__Array__with_native]))(var267, var269, var268) /* with_native on */; +var243 = "++;"; +var244 = standard___standard__NativeString___to_s_with_length(var243, 3l); +var242 = var244; +varonce241 = var242; } +((struct instance_standard__NativeArray*)var236)->values[2]=var242; +} else { +var236 = varonce235; +varonce235 = NULL; } +((struct instance_standard__NativeArray*)var236)->values[1]=var_tag; { -var270 = ((val* (*)(val* self))(var267->class->vft[COLOR_standard__string__Object__to_s]))(var267) /* to_s on */; +var245 = ((val*(*)(val* self))(var236->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var236); /* native_to_s on */ } +varonce235 = var236; { -standard___standard__Array___standard__abstract_collection__SimpleCollection__add(var_test, var270); /* Direct call array#Array#add on */ +nit___nit__AbstractCompilerVisitor___add(self, var245); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on */ } } else { -var271 = 1; -var_incompatible = var271; } +{ +nit___nit__SeparateCompilerVisitor___hardening_cast_type(self, var_type_struct); /* Direct call separate_compiler#SeparateCompilerVisitor#hardening_cast_type on */ } +if (unlikely(varonce246==NULL)) { +var247 = NEW_standard__NativeArray(4l, &type_standard__NativeArray__standard__String); +if (likely(varonce248!=NULL)) { +var249 = varonce248; +} else { +var250 = " = "; +var251 = standard___standard__NativeString___to_s_with_length(var250, 3l); +var249 = var251; +varonce248 = var249; } +((struct instance_standard__NativeArray*)var247)->values[1]=var249; +if (likely(varonce252!=NULL)) { +var253 = varonce252; } else { -{ -var272 = ((val* (*)(val* self))(var_t2->class->vft[COLOR_nit__abstract_compiler__MType__ctype]))(var_t2) /* ctype on */; +var254 = "->color;"; +var255 = standard___standard__NativeString___to_s_with_length(var254, 8l); +var253 = var255; +varonce252 = var253; } -if (varonce273) { -var274 = varonce273; +((struct instance_standard__NativeArray*)var247)->values[3]=var253; } else { -var275 = "val*"; -var276 = 4; -var277 = standard___standard__NativeString___to_s_with_length(var275, var276); -var274 = var277; -varonce273 = var274; +var247 = varonce246; +varonce246 = NULL; } +((struct instance_standard__NativeArray*)var247)->values[0]=var_cltype; +((struct instance_standard__NativeArray*)var247)->values[2]=var_type_struct; { -{ /* Inline kernel#Object#!= (var272,var274) on */ -var_other = var274; -{ -var280 = ((short int (*)(val* self, val* p0))(var272->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var272, var_other) /* == on */; -} -var281 = !var280; -var278 = var281; -goto RET_LABEL279; -RET_LABEL279:(void)0; -} +var256 = ((val*(*)(val* self))(var247->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var247); /* native_to_s on */ } -if (var278){ -var_primitive = var_t2; +varonce246 = var247; { -var282 = nit___nit__SeparateCompilerVisitor___can_be_primitive(self, var_value1); +nit___nit__AbstractCompilerVisitor___add(self, var256); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on */ } -if (var282){ -if (varonce283) { -var284 = varonce283; +if (unlikely(varonce257==NULL)) { +var258 = NEW_standard__NativeArray(4l, &type_standard__NativeArray__standard__String); +if (likely(varonce259!=NULL)) { +var260 = varonce259; } else { -var285 = "->class == "; -var286 = 11; -var287 = standard___standard__NativeString___to_s_with_length(var285, var286); -var284 = var287; -varonce283 = var284; +var261 = " = "; +var262 = standard___standard__NativeString___to_s_with_length(var261, 3l); +var260 = var262; +varonce259 = var260; } -if (varonce288) { -var289 = varonce288; +((struct instance_standard__NativeArray*)var258)->values[1]=var260; +if (likely(varonce263!=NULL)) { +var264 = varonce263; } else { -var290 = "->class"; -var291 = 7; -var292 = standard___standard__NativeString___to_s_with_length(var290, var291); -var289 = var292; -varonce288 = var289; -} -var293 = NEW_standard__Array(&type_standard__Array__standard__Object); -{ /* var293 = array_instance Array[Object] */ -var294 = 4; -var295 = NEW_standard__NativeArray(var294, &type_standard__NativeArray__standard__Object); -((struct instance_standard__NativeArray*)var295)->values[0] = (val*) var_value1; -((struct instance_standard__NativeArray*)var295)->values[1] = (val*) var284; -((struct instance_standard__NativeArray*)var295)->values[2] = (val*) var_value2; -((struct instance_standard__NativeArray*)var295)->values[3] = (val*) var289; -{ -((void (*)(val* self, val* p0, long p1))(var293->class->vft[COLOR_standard__array__Array__with_native]))(var293, var295, var294) /* with_native on */; +var265 = "->id;"; +var266 = standard___standard__NativeString___to_s_with_length(var265, 5l); +var264 = var266; +varonce263 = var264; } +((struct instance_standard__NativeArray*)var258)->values[3]=var264; +} else { +var258 = varonce257; +varonce257 = NULL; } +((struct instance_standard__NativeArray*)var258)->values[0]=var_idtype; +((struct instance_standard__NativeArray*)var258)->values[2]=var_type_struct; { -var296 = ((val* (*)(val* self))(var293->class->vft[COLOR_standard__string__Object__to_s]))(var293) /* to_s on */; +var267 = ((val*(*)(val* self))(var258->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var258); /* native_to_s on */ } +varonce257 = var258; { -standard___standard__Array___standard__abstract_collection__SimpleCollection__add(var_test, var296); /* Direct call array#Array#add on */ -} -} else { -var297 = 1; -var_incompatible = var297; +nit___nit__AbstractCompilerVisitor___add(self, var267); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on */ } +var_269 = var_maybe_null; +if (var_maybe_null){ +if (likely(varonce270!=NULL)) { +var271 = varonce270; } else { -var298 = NULL; -var_primitive = var298; +var272 = "0"; +var273 = standard___standard__NativeString___to_s_with_length(var272, 1l); +var271 = var273; +varonce270 = var271; } +{ +var274 = ((short int(*)(val* self, val* p0))(var_accept_null->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_accept_null, var271); /* == on */ } -if (var_incompatible){ -if (var_maybe_null){ -if (varonce299) { -var300 = varonce299; +var268 = var274; } else { -var301 = " = "; -var302 = 3; -var303 = standard___standard__NativeString___to_s_with_length(var301, var302); -var300 = var303; -varonce299 = var300; +var268 = var_269; } -if (varonce304) { -var305 = varonce304; +if (var268){ +if (likely(varonce275!=NULL)) { +var276 = varonce275; } else { -var306 = " == "; -var307 = 4; -var308 = standard___standard__NativeString___to_s_with_length(var306, var307); -var305 = var308; -varonce304 = var305; +var277 = "is_nullable"; +var278 = standard___standard__NativeString___to_s_with_length(var277, 11l); +var276 = var278; +varonce275 = var276; } -if (varonce309) { -var310 = varonce309; -} else { -var311 = "; /* incompatible types "; -var312 = 24; -var313 = standard___standard__NativeString___to_s_with_length(var311, var312); -var310 = var313; -varonce309 = var310; +{ +var279 = nit___nit__AbstractCompilerVisitor___get_name(self, var276); } -if (varonce314) { -var315 = varonce314; +var_is_nullable = var279; +if (unlikely(varonce280==NULL)) { +var281 = NEW_standard__NativeArray(3l, &type_standard__NativeArray__standard__String); +if (likely(varonce282!=NULL)) { +var283 = varonce282; } else { -var316 = " vs. "; -var317 = 5; -var318 = standard___standard__NativeString___to_s_with_length(var316, var317); -var315 = var318; -varonce314 = var315; +var284 = "short int "; +var285 = standard___standard__NativeString___to_s_with_length(var284, 10l); +var283 = var285; +varonce282 = var283; } -if (varonce319) { -var320 = varonce319; +((struct instance_standard__NativeArray*)var281)->values[0]=var283; +if (likely(varonce286!=NULL)) { +var287 = varonce286; } else { -var321 = "; but may be NULL*/"; -var322 = 19; -var323 = standard___standard__NativeString___to_s_with_length(var321, var322); -var320 = var323; -varonce319 = var320; -} -var324 = NEW_standard__Array(&type_standard__Array__standard__Object); -{ /* var324 = array_instance Array[Object] */ -var325 = 10; -var326 = NEW_standard__NativeArray(var325, &type_standard__NativeArray__standard__Object); -((struct instance_standard__NativeArray*)var326)->values[0] = (val*) var_res; -((struct instance_standard__NativeArray*)var326)->values[1] = (val*) var300; -((struct instance_standard__NativeArray*)var326)->values[2] = (val*) var_value1; -((struct instance_standard__NativeArray*)var326)->values[3] = (val*) var305; -((struct instance_standard__NativeArray*)var326)->values[4] = (val*) var_value2; -((struct instance_standard__NativeArray*)var326)->values[5] = (val*) var310; -((struct instance_standard__NativeArray*)var326)->values[6] = (val*) var_t1; -((struct instance_standard__NativeArray*)var326)->values[7] = (val*) var315; -((struct instance_standard__NativeArray*)var326)->values[8] = (val*) var_t2; -((struct instance_standard__NativeArray*)var326)->values[9] = (val*) var320; -{ -((void (*)(val* self, val* p0, long p1))(var324->class->vft[COLOR_standard__array__Array__with_native]))(var324, var326, var325) /* with_native on */; +var288 = ";"; +var289 = standard___standard__NativeString___to_s_with_length(var288, 1l); +var287 = var289; +varonce286 = var287; } +((struct instance_standard__NativeArray*)var281)->values[2]=var287; +} else { +var281 = varonce280; +varonce280 = NULL; } +((struct instance_standard__NativeArray*)var281)->values[1]=var_is_nullable; { -var327 = ((val* (*)(val* self))(var324->class->vft[COLOR_standard__string__Object__to_s]))(var324) /* to_s on */; +var290 = ((val*(*)(val* self))(var281->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var281); /* native_to_s on */ } +varonce280 = var281; { -nit___nit__AbstractCompilerVisitor___add(self, var327); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on */ +nit___nit__AbstractCompilerVisitor___add_decl(self, var290); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on */ } -var = var_res; -goto RET_LABEL; +if (unlikely(varonce291==NULL)) { +var292 = NEW_standard__NativeArray(4l, &type_standard__NativeArray__standard__String); +if (likely(varonce293!=NULL)) { +var294 = varonce293; } else { -if (varonce328) { -var329 = varonce328; -} else { -var330 = " = 0; /* incompatible types "; -var331 = 28; -var332 = standard___standard__NativeString___to_s_with_length(var330, var331); -var329 = var332; -varonce328 = var329; +var295 = " = "; +var296 = standard___standard__NativeString___to_s_with_length(var295, 3l); +var294 = var296; +varonce293 = var294; } -if (varonce333) { -var334 = varonce333; +((struct instance_standard__NativeArray*)var292)->values[1]=var294; +if (likely(varonce297!=NULL)) { +var298 = varonce297; } else { -var335 = " vs. "; -var336 = 5; -var337 = standard___standard__NativeString___to_s_with_length(var335, var336); -var334 = var337; -varonce333 = var334; +var299 = "->is_nullable;"; +var300 = standard___standard__NativeString___to_s_with_length(var299, 14l); +var298 = var300; +varonce297 = var298; } -if (varonce338) { -var339 = varonce338; +((struct instance_standard__NativeArray*)var292)->values[3]=var298; } else { -var340 = "; cannot be NULL */"; -var341 = 19; -var342 = standard___standard__NativeString___to_s_with_length(var340, var341); -var339 = var342; -varonce338 = var339; +var292 = varonce291; +varonce291 = NULL; } -var343 = NEW_standard__Array(&type_standard__Array__standard__Object); -{ /* var343 = array_instance Array[Object] */ -var344 = 6; -var345 = NEW_standard__NativeArray(var344, &type_standard__NativeArray__standard__Object); -((struct instance_standard__NativeArray*)var345)->values[0] = (val*) var_res; -((struct instance_standard__NativeArray*)var345)->values[1] = (val*) var329; -((struct instance_standard__NativeArray*)var345)->values[2] = (val*) var_t1; -((struct instance_standard__NativeArray*)var345)->values[3] = (val*) var334; -((struct instance_standard__NativeArray*)var345)->values[4] = (val*) var_t2; -((struct instance_standard__NativeArray*)var345)->values[5] = (val*) var339; +((struct instance_standard__NativeArray*)var292)->values[0]=var_is_nullable; +((struct instance_standard__NativeArray*)var292)->values[2]=var_type_struct; { -((void (*)(val* self, val* p0, long p1))(var343->class->vft[COLOR_standard__array__Array__with_native]))(var343, var345, var344) /* with_native on */; -} +var301 = ((val*(*)(val* self))(var292->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var292); /* native_to_s on */ } +varonce291 = var292; { -var346 = ((val* (*)(val* self))(var343->class->vft[COLOR_standard__string__Object__to_s]))(var343) /* to_s on */; +nit___nit__AbstractCompilerVisitor___add(self, var301); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on */ } { -nit___nit__AbstractCompilerVisitor___add(self, var346); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on */ -} -var = var_res; -goto RET_LABEL; +var302 = standard___standard__String___Object__to_s(var_is_nullable); } +var_accept_null = var302; } else { } -var347 = NULL; -if (var_primitive == NULL) { -var348 = 0; /* is null */ } else { -var348 = 1; /* arg is null and recv is not */ +/* isa MClassType */ +cltype304 = type_nit__MClassType.color; +idtype305 = type_nit__MClassType.id; +if(cltype304 >= var_ntype->type->table_size) { +var303 = 0; +} else { +var303 = var_ntype->type->type_table[cltype304] == idtype305; } -if (0) { -{ /* Inline kernel#Object#!= (var_primitive,var347) on */ -var_other = var347; +if (var303){ { -var351 = ((short int (*)(val* self, val* p0))(var_primitive->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_primitive, var_other) /* == on */; -} -var352 = !var351; -var349 = var352; -goto RET_LABEL350; -RET_LABEL350:(void)0; +{ /* Inline separate_compiler#SeparateCompiler#undead_types (var_compiler) on */ +var308 = var_compiler->attrs[COLOR_nit__separate_compiler__SeparateCompiler___undead_types].val; /* _undead_types on */ +if (unlikely(var308 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _undead_types"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_compiler, 146); +fatal_exit(1); } -var348 = var349; +var306 = var308; +RET_LABEL307:(void)0; } -if (var348){ -if (varonce353) { -var354 = varonce353; -} else { -var355 = "((struct instance_"; -var356 = 18; -var357 = standard___standard__NativeString___to_s_with_length(var355, var356); -var354 = var357; -varonce353 = var354; } { -var358 = ((val* (*)(val* self))(var_primitive->class->vft[COLOR_nit__model_base__MEntity__c_name]))(var_primitive) /* c_name on */; +((void(*)(val* self, val* p0))((((long)var306&3)?class_info[((long)var306&3)]:var306->class)->vft[COLOR_standard__abstract_collection__SimpleCollection__add]))(var306, var_mtype); /* add on */ } -if (varonce359) { -var360 = varonce359; +if (unlikely(varonce309==NULL)) { +var310 = NEW_standard__NativeArray(2l, &type_standard__NativeArray__standard__String); +if (likely(varonce311!=NULL)) { +var312 = varonce311; } else { -var361 = "*)"; -var362 = 2; -var363 = standard___standard__NativeString___to_s_with_length(var361, var362); -var360 = var363; -varonce359 = var360; +var313 = "type_"; +var314 = standard___standard__NativeString___to_s_with_length(var313, 5l); +var312 = var314; +varonce311 = var312; } -if (varonce364) { -var365 = varonce364; +((struct instance_standard__NativeArray*)var310)->values[0]=var312; } else { -var366 = ")->value == ((struct instance_"; -var367 = 30; -var368 = standard___standard__NativeString___to_s_with_length(var366, var367); -var365 = var368; -varonce364 = var365; +var310 = varonce309; +varonce309 = NULL; +} +{ +var315 = ((val*(*)(val* self))(var_mtype->class->vft[COLOR_nit__model_base__MEntity__c_name]))(var_mtype); /* c_name on */ } +((struct instance_standard__NativeArray*)var310)->values[1]=var315; { -var369 = ((val* (*)(val* self))(var_primitive->class->vft[COLOR_nit__model_base__MEntity__c_name]))(var_primitive) /* c_name on */; +var316 = ((val*(*)(val* self))(var310->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var310); /* native_to_s on */ } -if (varonce370) { -var371 = varonce370; +varonce309 = var310; +{ +nit___nit__AbstractCompilerVisitor___require_declaration(self, var316); /* Direct call abstract_compiler#AbstractCompilerVisitor#require_declaration on */ +} +if (unlikely(varonce317==NULL)) { +var318 = NEW_standard__NativeArray(3l, &type_standard__NativeArray__standard__String); +if (likely(varonce319!=NULL)) { +var320 = varonce319; } else { -var372 = "*)"; -var373 = 2; -var374 = standard___standard__NativeString___to_s_with_length(var372, var373); -var371 = var374; -varonce370 = var371; +var321 = "(&type_"; +var322 = standard___standard__NativeString___to_s_with_length(var321, 7l); +var320 = var322; +varonce319 = var320; } -if (varonce375) { -var376 = varonce375; +((struct instance_standard__NativeArray*)var318)->values[0]=var320; +if (likely(varonce323!=NULL)) { +var324 = varonce323; } else { -var377 = ")->value"; -var378 = 8; -var379 = standard___standard__NativeString___to_s_with_length(var377, var378); -var376 = var379; -varonce375 = var376; +var325 = ")"; +var326 = standard___standard__NativeString___to_s_with_length(var325, 1l); +var324 = var326; +varonce323 = var324; } -var380 = NEW_standard__Array(&type_standard__Array__standard__Object); -{ /* var380 = array_instance Array[Object] */ -var381 = 9; -var382 = NEW_standard__NativeArray(var381, &type_standard__NativeArray__standard__Object); -((struct instance_standard__NativeArray*)var382)->values[0] = (val*) var354; -((struct instance_standard__NativeArray*)var382)->values[1] = (val*) var358; -((struct instance_standard__NativeArray*)var382)->values[2] = (val*) var360; -((struct instance_standard__NativeArray*)var382)->values[3] = (val*) var_value1; -((struct instance_standard__NativeArray*)var382)->values[4] = (val*) var365; -((struct instance_standard__NativeArray*)var382)->values[5] = (val*) var369; -((struct instance_standard__NativeArray*)var382)->values[6] = (val*) var371; -((struct instance_standard__NativeArray*)var382)->values[7] = (val*) var_value2; -((struct instance_standard__NativeArray*)var382)->values[8] = (val*) var376; -{ -((void (*)(val* self, val* p0, long p1))(var380->class->vft[COLOR_standard__array__Array__with_native]))(var380, var382, var381) /* with_native on */; +((struct instance_standard__NativeArray*)var318)->values[2]=var324; +} else { +var318 = varonce317; +varonce317 = NULL; } +{ +var327 = ((val*(*)(val* self))(var_mtype->class->vft[COLOR_nit__model_base__MEntity__c_name]))(var_mtype); /* c_name on */ } +((struct instance_standard__NativeArray*)var318)->values[1]=var327; { -var383 = ((val* (*)(val* self))(var380->class->vft[COLOR_standard__string__Object__to_s]))(var380) /* to_s on */; +var328 = ((val*(*)(val* self))(var318->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var318); /* native_to_s on */ } +varonce317 = var318; { -standard___standard__Array___standard__abstract_collection__SimpleCollection__add(var_test, var383); /* Direct call array#Array#add on */ +nit___nit__SeparateCompilerVisitor___hardening_cast_type(self, var328); /* Direct call separate_compiler#SeparateCompilerVisitor#hardening_cast_type on */ } +if (unlikely(varonce329==NULL)) { +var330 = NEW_standard__NativeArray(4l, &type_standard__NativeArray__standard__String); +if (likely(varonce331!=NULL)) { +var332 = varonce331; } else { +var333 = " = type_"; +var334 = standard___standard__NativeString___to_s_with_length(var333, 8l); +var332 = var334; +varonce331 = var332; +} +((struct instance_standard__NativeArray*)var330)->values[1]=var332; +if (likely(varonce335!=NULL)) { +var336 = varonce335; +} else { +var337 = ".color;"; +var338 = standard___standard__NativeString___to_s_with_length(var337, 7l); +var336 = var338; +varonce335 = var336; +} +((struct instance_standard__NativeArray*)var330)->values[3]=var336; +} else { +var330 = varonce329; +varonce329 = NULL; +} +((struct instance_standard__NativeArray*)var330)->values[0]=var_cltype; +{ +var339 = ((val*(*)(val* self))(var_mtype->class->vft[COLOR_nit__model_base__MEntity__c_name]))(var_mtype); /* c_name on */ +} +((struct instance_standard__NativeArray*)var330)->values[2]=var339; { -var385 = nit___nit__SeparateCompilerVisitor___can_be_primitive(self, var_value1); +var340 = ((val*(*)(val* self))(var330->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var330); /* native_to_s on */ } -var_386 = var385; -if (var385){ +varonce329 = var330; { -var387 = nit___nit__SeparateCompilerVisitor___can_be_primitive(self, var_value2); +nit___nit__AbstractCompilerVisitor___add(self, var340); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on */ } -var384 = var387; +if (unlikely(varonce341==NULL)) { +var342 = NEW_standard__NativeArray(4l, &type_standard__NativeArray__standard__String); +if (likely(varonce343!=NULL)) { +var344 = varonce343; } else { -var384 = var_386; +var345 = " = type_"; +var346 = standard___standard__NativeString___to_s_with_length(var345, 8l); +var344 = var346; +varonce343 = var344; } -if (var384){ -if (varonce388) { -var389 = varonce388; +((struct instance_standard__NativeArray*)var342)->values[1]=var344; +if (likely(varonce347!=NULL)) { +var348 = varonce347; } else { -var390 = "->class == "; -var391 = 11; -var392 = standard___standard__NativeString___to_s_with_length(var390, var391); -var389 = var392; -varonce388 = var389; +var349 = ".id;"; +var350 = standard___standard__NativeString___to_s_with_length(var349, 4l); +var348 = var350; +varonce347 = var348; } -if (varonce393) { -var394 = varonce393; +((struct instance_standard__NativeArray*)var342)->values[3]=var348; } else { -var395 = "->class"; -var396 = 7; -var397 = standard___standard__NativeString___to_s_with_length(var395, var396); -var394 = var397; -varonce393 = var394; +var342 = varonce341; +varonce341 = NULL; +} +((struct instance_standard__NativeArray*)var342)->values[0]=var_idtype; +{ +var351 = ((val*(*)(val* self))(var_mtype->class->vft[COLOR_nit__model_base__MEntity__c_name]))(var_mtype); /* c_name on */ +} +((struct instance_standard__NativeArray*)var342)->values[2]=var351; +{ +var352 = ((val*(*)(val* self))(var342->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var342); /* native_to_s on */ +} +varonce341 = var342; +{ +nit___nit__AbstractCompilerVisitor___add(self, var352); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on */ } -var398 = NEW_standard__Array(&type_standard__Array__standard__Object); -{ /* var398 = array_instance Array[Object] */ -var399 = 4; -var400 = NEW_standard__NativeArray(var399, &type_standard__NativeArray__standard__Object); -((struct instance_standard__NativeArray*)var400)->values[0] = (val*) var_value1; -((struct instance_standard__NativeArray*)var400)->values[1] = (val*) var389; -((struct instance_standard__NativeArray*)var400)->values[2] = (val*) var_value2; -((struct instance_standard__NativeArray*)var400)->values[3] = (val*) var394; { -((void (*)(val* self, val* p0, long p1))(var398->class->vft[COLOR_standard__array__Array__with_native]))(var398, var400, var399) /* with_native on */; +{ /* Inline abstract_compiler#AbstractCompiler#modelbuilder (var_compiler) on */ +var355 = var_compiler->attrs[COLOR_nit__abstract_compiler__AbstractCompiler___modelbuilder].val; /* _modelbuilder on */ +if (unlikely(var355 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 522); +fatal_exit(1); +} +var353 = var355; +RET_LABEL354:(void)0; } } { -var401 = ((val* (*)(val* self))(var398->class->vft[COLOR_standard__string__Object__to_s]))(var398) /* to_s on */; +{ /* Inline modelbuilder_base#ModelBuilder#toolcontext (var353) on */ +var358 = var353->attrs[COLOR_nit__modelbuilder_base__ModelBuilder___toolcontext].val; /* _toolcontext on */ +if (unlikely(var358 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__modelbuilder_base, 47); +fatal_exit(1); +} +var356 = var358; +RET_LABEL357:(void)0; +} } { -standard___standard__Array___standard__abstract_collection__SimpleCollection__add(var_test, var401); /* Direct call array#Array#add on */ +{ /* Inline abstract_compiler#ToolContext#opt_typing_test_metrics (var356) on */ +var361 = var356->attrs[COLOR_nit__abstract_compiler__ToolContext___opt_typing_test_metrics].val; /* _opt_typing_test_metrics on */ +if (unlikely(var361 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_typing_test_metrics"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 60); +fatal_exit(1); +} +var359 = var361; +RET_LABEL360:(void)0; +} } -var402 = NEW_standard__Array(&type_standard__Array__standard__String); { -standard___standard__Array___standard__kernel__Object__init(var402); /* Direct call array#Array#init on */ +{ /* Inline opts#Option#value (var359) on */ +var364 = var359->attrs[COLOR_opts__Option___value].val; /* _value on */ +var362 = var364; +RET_LABEL363:(void)0; +} } -var_s = var402; +var365 = (short int)((long)(var362)>>2); +if (var365){ { { /* Inline abstract_compiler#AbstractCompilerVisitor#compiler (self) on */ -var405 = self->attrs[COLOR_nit__abstract_compiler__AbstractCompilerVisitor___compiler].val; /* _compiler on */ -if (unlikely(var405 == NULL)) { +var368 = self->attrs[COLOR_nit__abstract_compiler__AbstractCompilerVisitor___compiler].val; /* _compiler on */ +if (unlikely(var368 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _compiler"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1059); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1102); +fatal_exit(1); } -var403 = var405; -RET_LABEL404:(void)0; +var366 = var368; +RET_LABEL367:(void)0; } } { -{ /* Inline separate_compiler#SeparateCompiler#box_kinds (var403) on */ -var408 = var403->attrs[COLOR_nit__separate_compiler__SeparateCompiler___box_kinds].val; /* _box_kinds on */ -if (unlikely(var408 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _box_kinds"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_compiler, 233); -show_backtrace(1); +{ /* Inline abstract_compiler#AbstractCompiler#count_type_test_resolved (var366) on */ +var371 = var366->attrs[COLOR_nit__abstract_compiler__AbstractCompiler___count_type_test_resolved].val; /* _count_type_test_resolved on */ +if (unlikely(var371 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _count_type_test_resolved"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1015); +fatal_exit(1); } -var406 = var408; -RET_LABEL407:(void)0; +var369 = var371; +RET_LABEL370:(void)0; } } -var_409 = var406; +var_372 = var369; +var_373 = var_tag; { -var410 = standard___standard__HashMap___standard__abstract_collection__MapRead__iterator(var_409); +var374 = standard___standard__HashMap___standard__abstract_collection__MapRead___91d_93d(var_372, var_373); } -var_411 = var410; -for(;;) { { -var412 = standard___standard__HashMapIterator___standard__abstract_collection__MapIterator__is_ok(var_411); +{ /* Inline kernel#Int#+ (var374,1l) on */ +/* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */ +/* <1l:Int> isa OTHER */ +var377 = 1; /* easy <1l:Int> isa OTHER*/ +if (unlikely(!var377)) { +var_class_name380 = type_standard__Int.name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name380); +PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 537); +fatal_exit(1); +} +var381 = (long)(var374)>>2; +var382 = var381 + 1l; +var375 = var382; +goto RET_LABEL376; +RET_LABEL376:(void)0; } -if (var412){ -{ -var413 = standard___standard__HashMapIterator___standard__abstract_collection__MapIterator__key(var_411); } -var_t = var413; { -var414 = standard___standard__HashMapIterator___standard__abstract_collection__MapIterator__item(var_411); +var383 = (val*)(var375<<2|1); +standard___standard__HashMap___standard__abstract_collection__Map___91d_93d_61d(var_372, var_373, var383); /* Direct call hash_collection#HashMap#[]= on */ } -var415 = ((struct instance_standard__Int*)var414)->value; /* autounbox from nullable Object to Int */; -var_v = var415; -if (varonce416) { -var417 = varonce416; +if (unlikely(varonce384==NULL)) { +var385 = NEW_standard__NativeArray(3l, &type_standard__NativeArray__standard__String); +if (likely(varonce386!=NULL)) { +var387 = varonce386; } else { -var418 = "("; -var419 = 1; -var420 = standard___standard__NativeString___to_s_with_length(var418, var419); -var417 = var420; -varonce416 = var417; +var388 = "count_type_test_resolved_"; +var389 = standard___standard__NativeString___to_s_with_length(var388, 25l); +var387 = var389; +varonce386 = var387; } -if (varonce421) { -var422 = varonce421; +((struct instance_standard__NativeArray*)var385)->values[0]=var387; +if (likely(varonce390!=NULL)) { +var391 = varonce390; } else { -var423 = "->class->box_kind == "; -var424 = 21; -var425 = standard___standard__NativeString___to_s_with_length(var423, var424); -var422 = var425; -varonce421 = var422; +var392 = "++;"; +var393 = standard___standard__NativeString___to_s_with_length(var392, 3l); +var391 = var393; +varonce390 = var391; } -if (varonce426) { -var427 = varonce426; +((struct instance_standard__NativeArray*)var385)->values[2]=var391; } else { -var428 = " && ((struct instance_"; -var429 = 22; -var430 = standard___standard__NativeString___to_s_with_length(var428, var429); -var427 = var430; -varonce426 = var427; +var385 = varonce384; +varonce384 = NULL; +} +((struct instance_standard__NativeArray*)var385)->values[1]=var_tag; +{ +var394 = ((val*(*)(val* self))(var385->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var385); /* native_to_s on */ } +varonce384 = var385; { -var431 = nit___nit__MClass___nit__model_base__MEntity__c_name(var_t); +nit___nit__AbstractCompilerVisitor___add(self, var394); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on */ } -if (varonce432) { -var433 = varonce432; } else { -var434 = "*)"; -var435 = 2; -var436 = standard___standard__NativeString___to_s_with_length(var434, var435); -var433 = var436; -varonce432 = var433; } -if (varonce437) { -var438 = varonce437; } else { -var439 = ")->value == ((struct instance_"; -var440 = 30; -var441 = standard___standard__NativeString___to_s_with_length(var439, var440); -var438 = var441; -varonce437 = var438; +if (unlikely(varonce395==NULL)) { +var396 = NEW_standard__NativeArray(5l, &type_standard__NativeArray__standard__String); +if (likely(varonce397!=NULL)) { +var398 = varonce397; +} else { +var399 = "PRINT_ERROR(\"NOT YET IMPLEMENTED: type_test(%s, "; +var400 = standard___standard__NativeString___to_s_with_length(var399, 48l); +var398 = var400; +varonce397 = var398; } -{ -var442 = nit___nit__MClass___nit__model_base__MEntity__c_name(var_t); +((struct instance_standard__NativeArray*)var396)->values[0]=var398; +if (likely(varonce401!=NULL)) { +var402 = varonce401; +} else { +var403 = ").\\n\", \""; +var404 = standard___standard__NativeString___to_s_with_length(var403, 8l); +var402 = var404; +varonce401 = var402; } -if (varonce443) { -var444 = varonce443; +((struct instance_standard__NativeArray*)var396)->values[2]=var402; +if (likely(varonce405!=NULL)) { +var406 = varonce405; } else { -var445 = "*)"; -var446 = 2; -var447 = standard___standard__NativeString___to_s_with_length(var445, var446); -var444 = var447; -varonce443 = var444; +var407 = "\"); fatal_exit(1);"; +var408 = standard___standard__NativeString___to_s_with_length(var407, 18l); +var406 = var408; +varonce405 = var406; } -if (varonce448) { -var449 = varonce448; +((struct instance_standard__NativeArray*)var396)->values[4]=var406; } else { -var450 = ")->value)"; -var451 = 9; -var452 = standard___standard__NativeString___to_s_with_length(var450, var451); -var449 = var452; -varonce448 = var449; +var396 = varonce395; +varonce395 = NULL; } -var453 = NEW_standard__Array(&type_standard__Array__standard__Object); -{ /* var453 = array_instance Array[Object] */ -var454 = 13; -var455 = NEW_standard__NativeArray(var454, &type_standard__NativeArray__standard__Object); -((struct instance_standard__NativeArray*)var455)->values[0] = (val*) var417; -((struct instance_standard__NativeArray*)var455)->values[1] = (val*) var_value1; -((struct instance_standard__NativeArray*)var455)->values[2] = (val*) var422; -var456 = BOX_standard__Int(var_v); /* autobox from Int to Object */ -((struct instance_standard__NativeArray*)var455)->values[3] = (val*) var456; -((struct instance_standard__NativeArray*)var455)->values[4] = (val*) var427; -((struct instance_standard__NativeArray*)var455)->values[5] = (val*) var431; -((struct instance_standard__NativeArray*)var455)->values[6] = (val*) var433; -((struct instance_standard__NativeArray*)var455)->values[7] = (val*) var_value1; -((struct instance_standard__NativeArray*)var455)->values[8] = (val*) var438; -((struct instance_standard__NativeArray*)var455)->values[9] = (val*) var442; -((struct instance_standard__NativeArray*)var455)->values[10] = (val*) var444; -((struct instance_standard__NativeArray*)var455)->values[11] = (val*) var_value2; -((struct instance_standard__NativeArray*)var455)->values[12] = (val*) var449; { -((void (*)(val* self, val* p0, long p1))(var453->class->vft[COLOR_standard__array__Array__with_native]))(var453, var455, var454) /* with_native on */; -} +var409 = ((val*(*)(val* self))(var_mtype->class->vft[COLOR_standard__string__Object__to_s]))(var_mtype); /* to_s on */ } +((struct instance_standard__NativeArray*)var396)->values[1]=var409; { -var457 = ((val* (*)(val* self))(var453->class->vft[COLOR_standard__string__Object__to_s]))(var453) /* to_s on */; +var410 = nit___nit__RuntimeVariable___standard__string__Object__inspect(var_value); } +((struct instance_standard__NativeArray*)var396)->values[3]=var410; { -standard___standard__Array___standard__abstract_collection__SimpleCollection__add(var_s, var457); /* Direct call array#Array#add on */ +var411 = ((val*(*)(val* self))(var396->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var396); /* native_to_s on */ } +varonce395 = var396; { -standard___standard__HashMapIterator___standard__abstract_collection__MapIterator__next(var_411); /* Direct call hash_collection#HashMapIterator#next on */ +nit___nit__AbstractCompilerVisitor___add(self, var411); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on */ +} +} +} +if (var_maybe_null){ +if (unlikely(varonce412==NULL)) { +var413 = NEW_standard__NativeArray(3l, &type_standard__NativeArray__standard__String); +if (likely(varonce414!=NULL)) { +var415 = varonce414; +} else { +var416 = "if("; +var417 = standard___standard__NativeString___to_s_with_length(var416, 3l); +var415 = var417; +varonce414 = var415; } +((struct instance_standard__NativeArray*)var413)->values[0]=var415; +if (likely(varonce418!=NULL)) { +var419 = varonce418; } else { -goto BREAK_label; +var420 = " == NULL) {"; +var421 = standard___standard__NativeString___to_s_with_length(var420, 11l); +var419 = var421; +varonce418 = var419; } +((struct instance_standard__NativeArray*)var413)->values[2]=var419; +} else { +var413 = varonce412; +varonce412 = NULL; } -BREAK_label: (void)0; { -{ /* Inline abstract_collection#MapIterator#finish (var_411) on */ -RET_LABEL458:(void)0; +var422 = ((val*(*)(val* self))(var_value->class->vft[COLOR_standard__string__Object__to_s]))(var_value); /* to_s on */ +} +((struct instance_standard__NativeArray*)var413)->values[1]=var422; +{ +var423 = ((val*(*)(val* self))(var413->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var413); /* native_to_s on */ +} +varonce412 = var413; +{ +nit___nit__AbstractCompilerVisitor___add(self, var423); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on */ } +if (unlikely(varonce424==NULL)) { +var425 = NEW_standard__NativeArray(4l, &type_standard__NativeArray__standard__String); +if (likely(varonce426!=NULL)) { +var427 = varonce426; +} else { +var428 = " = "; +var429 = standard___standard__NativeString___to_s_with_length(var428, 3l); +var427 = var429; +varonce426 = var427; } -if (varonce459) { -var460 = varonce459; +((struct instance_standard__NativeArray*)var425)->values[1]=var427; +if (likely(varonce430!=NULL)) { +var431 = varonce430; } else { -var461 = "("; -var462 = 1; -var463 = standard___standard__NativeString___to_s_with_length(var461, var462); -var460 = var463; -varonce459 = var460; +var432 = ";"; +var433 = standard___standard__NativeString___to_s_with_length(var432, 1l); +var431 = var433; +varonce430 = var431; } -if (varonce464) { -var465 = varonce464; +((struct instance_standard__NativeArray*)var425)->values[3]=var431; } else { -var466 = " || "; -var467 = 4; -var468 = standard___standard__NativeString___to_s_with_length(var466, var467); -var465 = var468; -varonce464 = var465; +var425 = varonce424; +varonce424 = NULL; } { -var469 = standard__string___Collection___join(var_s, var465); +var434 = ((val*(*)(val* self))(var_res->class->vft[COLOR_standard__string__Object__to_s]))(var_res); /* to_s on */ } -if (varonce470) { -var471 = varonce470; -} else { -var472 = ")"; -var473 = 1; -var474 = standard___standard__NativeString___to_s_with_length(var472, var473); -var471 = var474; -varonce470 = var471; +((struct instance_standard__NativeArray*)var425)->values[0]=var434; +((struct instance_standard__NativeArray*)var425)->values[2]=var_accept_null; +{ +var435 = ((val*(*)(val* self))(var425->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var425); /* native_to_s on */ } -var475 = NEW_standard__Array(&type_standard__Array__standard__Object); -{ /* var475 = array_instance Array[Object] */ -var476 = 3; -var477 = NEW_standard__NativeArray(var476, &type_standard__NativeArray__standard__Object); -((struct instance_standard__NativeArray*)var477)->values[0] = (val*) var460; -((struct instance_standard__NativeArray*)var477)->values[1] = (val*) var469; -((struct instance_standard__NativeArray*)var477)->values[2] = (val*) var471; +varonce424 = var425; { -((void (*)(val* self, val* p0, long p1))(var475->class->vft[COLOR_standard__array__Array__with_native]))(var475, var477, var476) /* with_native on */; +nit___nit__AbstractCompilerVisitor___add(self, var435); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on */ } +if (likely(varonce436!=NULL)) { +var437 = varonce436; +} else { +var438 = "} else {"; +var439 = standard___standard__NativeString___to_s_with_length(var438, 8l); +var437 = var439; +varonce436 = var437; } { -var478 = ((val* (*)(val* self))(var475->class->vft[COLOR_standard__string__Object__to_s]))(var475) /* to_s on */; +nit___nit__AbstractCompilerVisitor___add(self, var437); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on */ +} +} else { } { -standard___standard__Array___standard__abstract_collection__SimpleCollection__add(var_test, var478); /* Direct call array#Array#add on */ +var440 = nit___nit__SeparateCompilerVisitor___type_info(self, var_value); } +var_value_type_info = var440; +if (unlikely(varonce441==NULL)) { +var442 = NEW_standard__NativeArray(5l, &type_standard__NativeArray__standard__String); +if (likely(varonce443!=NULL)) { +var444 = varonce443; } else { -if (varonce479) { -var480 = varonce479; +var445 = "if("; +var446 = standard___standard__NativeString___to_s_with_length(var445, 3l); +var444 = var446; +varonce443 = var444; +} +((struct instance_standard__NativeArray*)var442)->values[0]=var444; +if (likely(varonce447!=NULL)) { +var448 = varonce447; } else { -var481 = " = "; -var482 = 3; -var483 = standard___standard__NativeString___to_s_with_length(var481, var482); -var480 = var483; -varonce479 = var480; +var449 = " >= "; +var450 = standard___standard__NativeString___to_s_with_length(var449, 4l); +var448 = var450; +varonce447 = var448; } -if (varonce484) { -var485 = varonce484; +((struct instance_standard__NativeArray*)var442)->values[2]=var448; +if (likely(varonce451!=NULL)) { +var452 = varonce451; } else { -var486 = " == "; -var487 = 4; -var488 = standard___standard__NativeString___to_s_with_length(var486, var487); -var485 = var488; -varonce484 = var485; +var453 = "->table_size) {"; +var454 = standard___standard__NativeString___to_s_with_length(var453, 15l); +var452 = var454; +varonce451 = var452; } -if (varonce489) { -var490 = varonce489; +((struct instance_standard__NativeArray*)var442)->values[4]=var452; } else { -var491 = ";"; -var492 = 1; -var493 = standard___standard__NativeString___to_s_with_length(var491, var492); -var490 = var493; -varonce489 = var490; +var442 = varonce441; +varonce441 = NULL; +} +((struct instance_standard__NativeArray*)var442)->values[1]=var_cltype; +((struct instance_standard__NativeArray*)var442)->values[3]=var_value_type_info; +{ +var455 = ((val*(*)(val* self))(var442->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var442); /* native_to_s on */ } -var494 = NEW_standard__Array(&type_standard__Array__standard__Object); -{ /* var494 = array_instance Array[Object] */ -var495 = 6; -var496 = NEW_standard__NativeArray(var495, &type_standard__NativeArray__standard__Object); -((struct instance_standard__NativeArray*)var496)->values[0] = (val*) var_res; -((struct instance_standard__NativeArray*)var496)->values[1] = (val*) var480; -((struct instance_standard__NativeArray*)var496)->values[2] = (val*) var_value1; -((struct instance_standard__NativeArray*)var496)->values[3] = (val*) var485; -((struct instance_standard__NativeArray*)var496)->values[4] = (val*) var_value2; -((struct instance_standard__NativeArray*)var496)->values[5] = (val*) var490; +varonce441 = var442; { -((void (*)(val* self, val* p0, long p1))(var494->class->vft[COLOR_standard__array__Array__with_native]))(var494, var496, var495) /* with_native on */; +nit___nit__AbstractCompilerVisitor___add(self, var455); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on */ +} +if (unlikely(varonce456==NULL)) { +var457 = NEW_standard__NativeArray(2l, &type_standard__NativeArray__standard__String); +if (likely(varonce458!=NULL)) { +var459 = varonce458; +} else { +var460 = " = 0;"; +var461 = standard___standard__NativeString___to_s_with_length(var460, 5l); +var459 = var461; +varonce458 = var459; } +((struct instance_standard__NativeArray*)var457)->values[1]=var459; +} else { +var457 = varonce456; +varonce456 = NULL; } { -var497 = ((val* (*)(val* self))(var494->class->vft[COLOR_standard__string__Object__to_s]))(var494) /* to_s on */; +var462 = ((val*(*)(val* self))(var_res->class->vft[COLOR_standard__string__Object__to_s]))(var_res); /* to_s on */ } +((struct instance_standard__NativeArray*)var457)->values[0]=var462; { -nit___nit__AbstractCompilerVisitor___add(self, var497); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on */ +var463 = ((val*(*)(val* self))(var457->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var457); /* native_to_s on */ } -var = var_res; -goto RET_LABEL; +varonce456 = var457; +{ +nit___nit__AbstractCompilerVisitor___add(self, var463); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on */ +} +if (likely(varonce464!=NULL)) { +var465 = varonce464; +} else { +var466 = "} else {"; +var467 = standard___standard__NativeString___to_s_with_length(var466, 8l); +var465 = var467; +varonce464 = var465; } +{ +nit___nit__AbstractCompilerVisitor___add(self, var465); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on */ +} +if (unlikely(varonce468==NULL)) { +var469 = NEW_standard__NativeArray(8l, &type_standard__NativeArray__standard__String); +if (likely(varonce470!=NULL)) { +var471 = varonce470; +} else { +var472 = " = "; +var473 = standard___standard__NativeString___to_s_with_length(var472, 3l); +var471 = var473; +varonce470 = var471; } -if (varonce498) { -var499 = varonce498; +((struct instance_standard__NativeArray*)var469)->values[1]=var471; +if (likely(varonce474!=NULL)) { +var475 = varonce474; } else { -var500 = " = "; -var501 = 3; -var502 = standard___standard__NativeString___to_s_with_length(var500, var501); -var499 = var502; -varonce498 = var499; +var476 = "->type_table["; +var477 = standard___standard__NativeString___to_s_with_length(var476, 13l); +var475 = var477; +varonce474 = var475; } -if (varonce503) { -var504 = varonce503; +((struct instance_standard__NativeArray*)var469)->values[3]=var475; +if (likely(varonce478!=NULL)) { +var479 = varonce478; } else { -var505 = " == "; -var506 = 4; -var507 = standard___standard__NativeString___to_s_with_length(var505, var506); -var504 = var507; -varonce503 = var504; +var480 = "] == "; +var481 = standard___standard__NativeString___to_s_with_length(var480, 5l); +var479 = var481; +varonce478 = var479; } -if (varonce508) { -var509 = varonce508; +((struct instance_standard__NativeArray*)var469)->values[5]=var479; +if (likely(varonce482!=NULL)) { +var483 = varonce482; } else { -var510 = " || ("; -var511 = 5; -var512 = standard___standard__NativeString___to_s_with_length(var510, var511); -var509 = var512; -varonce508 = var509; +var484 = ";"; +var485 = standard___standard__NativeString___to_s_with_length(var484, 1l); +var483 = var485; +varonce482 = var483; } -if (varonce513) { -var514 = varonce513; +((struct instance_standard__NativeArray*)var469)->values[7]=var483; } else { -var515 = " && "; -var516 = 4; -var517 = standard___standard__NativeString___to_s_with_length(var515, var516); -var514 = var517; -varonce513 = var514; +var469 = varonce468; +varonce468 = NULL; } { -var518 = standard__string___Collection___join(var_test, var514); +var486 = ((val*(*)(val* self))(var_res->class->vft[COLOR_standard__string__Object__to_s]))(var_res); /* to_s on */ } -if (varonce519) { -var520 = varonce519; -} else { -var521 = ");"; -var522 = 2; -var523 = standard___standard__NativeString___to_s_with_length(var521, var522); -var520 = var523; -varonce519 = var520; +((struct instance_standard__NativeArray*)var469)->values[0]=var486; +((struct instance_standard__NativeArray*)var469)->values[2]=var_value_type_info; +((struct instance_standard__NativeArray*)var469)->values[4]=var_cltype; +((struct instance_standard__NativeArray*)var469)->values[6]=var_idtype; +{ +var487 = ((val*(*)(val* self))(var469->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var469); /* native_to_s on */ } -var524 = NEW_standard__Array(&type_standard__Array__standard__Object); -{ /* var524 = array_instance Array[Object] */ -var525 = 8; -var526 = NEW_standard__NativeArray(var525, &type_standard__NativeArray__standard__Object); -((struct instance_standard__NativeArray*)var526)->values[0] = (val*) var_res; -((struct instance_standard__NativeArray*)var526)->values[1] = (val*) var499; -((struct instance_standard__NativeArray*)var526)->values[2] = (val*) var_value1; -((struct instance_standard__NativeArray*)var526)->values[3] = (val*) var504; -((struct instance_standard__NativeArray*)var526)->values[4] = (val*) var_value2; -((struct instance_standard__NativeArray*)var526)->values[5] = (val*) var509; -((struct instance_standard__NativeArray*)var526)->values[6] = (val*) var518; -((struct instance_standard__NativeArray*)var526)->values[7] = (val*) var520; +varonce468 = var469; { -((void (*)(val* self, val* p0, long p1))(var524->class->vft[COLOR_standard__array__Array__with_native]))(var524, var526, var525) /* with_native on */; +nit___nit__AbstractCompilerVisitor___add(self, var487); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on */ } +if (likely(varonce488!=NULL)) { +var489 = varonce488; +} else { +var490 = "}"; +var491 = standard___standard__NativeString___to_s_with_length(var490, 1l); +var489 = var491; +varonce488 = var489; } { -var527 = ((val* (*)(val* self))(var524->class->vft[COLOR_standard__string__Object__to_s]))(var524) /* to_s on */; +nit___nit__AbstractCompilerVisitor___add(self, var489); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on */ +} +if (var_maybe_null){ +if (likely(varonce492!=NULL)) { +var493 = varonce492; +} else { +var494 = "}"; +var495 = standard___standard__NativeString___to_s_with_length(var494, 1l); +var493 = var495; +varonce492 = var493; } { -nit___nit__AbstractCompilerVisitor___add(self, var527); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on */ +nit___nit__AbstractCompilerVisitor___add(self, var493); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on */ +} +} else { } var = var_res; goto RET_LABEL; RET_LABEL:; return var; } -/* method separate_compiler#SeparateCompilerVisitor#can_be_primitive for (self: SeparateCompilerVisitor, RuntimeVariable): Bool */ -short int nit___nit__SeparateCompilerVisitor___can_be_primitive(val* self, val* p0) { -short int var /* : Bool */; -val* var_value /* var value: RuntimeVariable */; -val* var1 /* : MType */; -val* var3 /* : MType */; +/* method separate_compiler#SeparateCompilerVisitor#is_same_type_test for (self: SeparateCompilerVisitor, RuntimeVariable, RuntimeVariable): RuntimeVariable */ +val* nit___nit__SeparateCompilerVisitor___nit__abstract_compiler__AbstractCompilerVisitor__is_same_type_test(val* self, val* p0, val* p1) { +val* var /* : RuntimeVariable */; +val* var_value1 /* var value1: RuntimeVariable */; +val* var_value2 /* var value2: RuntimeVariable */; +val* var1 /* : MClassType */; +val* var2 /* : RuntimeVariable */; +val* var_res /* var res: RuntimeVariable */; +short int var3 /* : Bool */; val* var4 /* : MType */; -val* var_t /* var t: MType */; -short int var5 /* : Bool */; -int cltype; -int idtype; -short int var6 /* : Bool */; +val* var6 /* : MType */; short int var7 /* : Bool */; -val* var8 /* : MClass */; -val* var10 /* : MClass */; -val* var11 /* : MClassKind */; -val* var13 /* : MClassKind */; -val* var_k /* var k: MClassKind */; -short int var14 /* : Bool */; -val* var15 /* : MClassKind */; -short int var16 /* : Bool */; -val* var_other /* var other: nullable Object */; -short int var18 /* : Bool */; -short int var20 /* : Bool */; short int var_ /* var : Bool */; -val* var21 /* : String */; +val* var8 /* : MType */; +val* var10 /* : MType */; +short int var11 /* : Bool */; +short int var12 /* : Bool */; +val* var_tmp /* var tmp: RuntimeVariable */; +val* var13 /* : MType */; +val* var15 /* : MType */; +short int var16 /* : Bool */; +val* var17 /* : MType */; +val* var19 /* : MType */; +val* var20 /* : MType */; +val* var22 /* : MType */; +short int var23 /* : Bool */; +val* var_other /* var other: nullable Object */; +short int var25 /* : Bool */; +short int var27 /* : Bool */; +val* var28 /* : NativeArray[String] */; static val* varonce; -val* var22 /* : String */; -char* var23 /* : NativeString */; -long var24 /* : Int */; -val* var25 /* : FlatString */; -short int var26 /* : Bool */; -val* var_other28 /* var other: nullable Object */; -short int var29 /* : Bool */; -short int var30 /* : Bool */; -var_value = p0; +static val* varonce29; +val* var30 /* : String */; +char* var31 /* : NativeString */; +val* var32 /* : FlatString */; +static val* varonce33; +val* var34 /* : String */; +char* var35 /* : NativeString */; +val* var36 /* : FlatString */; +static val* varonce37; +val* var38 /* : String */; +char* var39 /* : NativeString */; +val* var40 /* : FlatString */; +val* var41 /* : String */; +val* var42 /* : MType */; +val* var44 /* : MType */; +val* var45 /* : String */; +val* var46 /* : MType */; +val* var48 /* : MType */; +val* var49 /* : String */; +val* var50 /* : String */; +val* var51 /* : MType */; +val* var53 /* : MType */; +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 */; +static val* varonce65; +val* var66 /* : String */; +char* var67 /* : NativeString */; +val* var68 /* : FlatString */; +val* var69 /* : String */; +val* var70 /* : MType */; +val* var72 /* : MType */; +val* var73 /* : String */; +val* var74 /* : MType */; +val* var76 /* : MType */; +val* var77 /* : String */; +val* var78 /* : String */; +val* var79 /* : MType */; +val* var81 /* : MType */; +short int var82 /* : Bool */; +int cltype; +int idtype; +const char* var_class_name; +val* var_mtype1 /* var mtype1: MClassType */; +val* var84 /* : NativeArray[String] */; +static val* varonce83; +static val* varonce85; +val* var86 /* : String */; +char* var87 /* : NativeString */; +val* var88 /* : FlatString */; +val* var89 /* : String */; +val* var90 /* : String */; +val* var92 /* : NativeArray[String] */; +static val* varonce91; +static val* varonce93; +val* var94 /* : String */; +char* var95 /* : NativeString */; +val* var96 /* : FlatString */; +static val* varonce97; +val* var98 /* : String */; +char* var99 /* : NativeString */; +val* var100 /* : FlatString */; +static val* varonce101; +val* var102 /* : String */; +char* var103 /* : NativeString */; +val* var104 /* : FlatString */; +static val* varonce105; +val* var106 /* : String */; +char* var107 /* : NativeString */; +val* var108 /* : FlatString */; +val* var109 /* : String */; +val* var110 /* : String */; +val* var111 /* : String */; +val* var112 /* : String */; +val* var113 /* : String */; +val* var115 /* : NativeArray[String] */; +static val* varonce114; +static val* varonce116; +val* var117 /* : String */; +char* var118 /* : NativeString */; +val* var119 /* : FlatString */; +static val* varonce120; +val* var121 /* : String */; +char* var122 /* : NativeString */; +val* var123 /* : FlatString */; +static val* varonce124; +val* var125 /* : String */; +char* var126 /* : NativeString */; +val* var127 /* : FlatString */; +static val* varonce128; +val* var129 /* : String */; +char* var130 /* : NativeString */; +val* var131 /* : FlatString */; +static val* varonce132; +val* var133 /* : String */; +char* var134 /* : NativeString */; +val* var135 /* : FlatString */; +static val* varonce136; +val* var137 /* : String */; +char* var138 /* : NativeString */; +val* var139 /* : FlatString */; +static val* varonce140; +val* var141 /* : String */; +char* var142 /* : NativeString */; +val* var143 /* : FlatString */; +val* var144 /* : String */; +val* var145 /* : String */; +val* var146 /* : String */; +val* var147 /* : String */; +val* var148 /* : String */; +val* var149 /* : String */; +val* var150 /* : String */; +val* var151 /* : String */; +var_value1 = p0; +var_value2 = p1; { -{ /* Inline abstract_compiler#RuntimeVariable#mcasttype (var_value) on */ -var3 = var_value->attrs[COLOR_nit__abstract_compiler__RuntimeVariable___mcasttype].val; /* _mcasttype on */ -if (unlikely(var3 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mcasttype"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1683); -show_backtrace(1); -} -var1 = var3; -RET_LABEL2:(void)0; +var1 = nit___nit__AbstractCompilerVisitor___bool_type(self); } +{ +var2 = nit___nit__AbstractCompilerVisitor___new_var(self, var1); } +var_res = var2; { -var4 = ((val* (*)(val* self))(var1->class->vft[COLOR_nit__model__MType__as_notnullable]))(var1) /* as_notnullable on */; +{ /* Inline abstract_compiler#RuntimeVariable#mtype (var_value2) on */ +var6 = var_value2->attrs[COLOR_nit__abstract_compiler__RuntimeVariable___mtype].val; /* _mtype on */ +if (unlikely(var6 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1784); +fatal_exit(1); } -var_t = var4; -/* isa MClassType */ -cltype = type_nit__MClassType.color; -idtype = type_nit__MClassType.id; -if(cltype >= var_t->type->table_size) { -var5 = 0; -} else { -var5 = var_t->type->type_table[cltype] == idtype; +var4 = var6; +RET_LABEL5:(void)0; } -var6 = !var5; -if (var6){ -var7 = 0; -var = var7; -goto RET_LABEL; -} else { } { -{ /* Inline model#MClassType#mclass (var_t) on */ -var10 = var_t->attrs[COLOR_nit__model__MClassType___mclass].val; /* _mclass on */ +var7 = ((short int(*)(val* self))(var4->class->vft[COLOR_nit__abstract_compiler__MType__is_c_primitive]))(var4); /* is_c_primitive on */ +} +var_ = var7; +if (var7){ +{ +{ /* Inline abstract_compiler#RuntimeVariable#mtype (var_value1) on */ +var10 = var_value1->attrs[COLOR_nit__abstract_compiler__RuntimeVariable___mtype].val; /* _mtype on */ if (unlikely(var10 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1058); -show_backtrace(1); +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1784); +fatal_exit(1); } var8 = var10; RET_LABEL9:(void)0; } } { -{ /* Inline model#MClass#kind (var8) on */ -var13 = var8->attrs[COLOR_nit__model__MClass___kind].val; /* _kind on */ -if (unlikely(var13 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _kind"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 399); -show_backtrace(1); -} -var11 = var13; -RET_LABEL12:(void)0; +var11 = ((short int(*)(val* self))(var8->class->vft[COLOR_nit__abstract_compiler__MType__is_c_primitive]))(var8); /* is_c_primitive on */ } +var12 = !var11; +var3 = var12; +} else { +var3 = var_; } -var_k = var11; -{ -var15 = nit__model___standard__Object___interface_kind(self); +if (var3){ +var_tmp = var_value1; +var_value1 = var_value2; +var_value2 = var_tmp; +} else { } { -{ /* Inline kernel#Object#== (var_k,var15) on */ -var_other = var15; -{ -{ /* Inline kernel#Object#is_same_instance (var_k,var_other) on */ -var20 = var_k == var_other; -var18 = var20; -goto RET_LABEL19; -RET_LABEL19:(void)0; +{ /* Inline abstract_compiler#RuntimeVariable#mtype (var_value1) on */ +var15 = var_value1->attrs[COLOR_nit__abstract_compiler__RuntimeVariable___mtype].val; /* _mtype on */ +if (unlikely(var15 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1784); +fatal_exit(1); } +var13 = var15; +RET_LABEL14:(void)0; } -var16 = var18; -goto RET_LABEL17; -RET_LABEL17:(void)0; } +{ +var16 = ((short int(*)(val* self))(var13->class->vft[COLOR_nit__abstract_compiler__MType__is_c_primitive]))(var13); /* is_c_primitive on */ } -var_ = var16; if (var16){ -var14 = var_; -} else { { -var21 = nit__abstract_compiler___MClassType___MType__ctype(var_t); +{ /* Inline abstract_compiler#RuntimeVariable#mtype (var_value2) on */ +var19 = var_value2->attrs[COLOR_nit__abstract_compiler__RuntimeVariable___mtype].val; /* _mtype on */ +if (unlikely(var19 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1784); +fatal_exit(1); +} +var17 = var19; +RET_LABEL18:(void)0; } -if (varonce) { -var22 = varonce; -} else { -var23 = "val*"; -var24 = 4; -var25 = standard___standard__NativeString___to_s_with_length(var23, var24); -var22 = var25; -varonce = var22; } { -{ /* Inline kernel#Object#!= (var21,var22) on */ -var_other28 = var22; -{ -var29 = ((short int (*)(val* self, val* p0))(var21->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var21, var_other28) /* == on */; +{ /* Inline abstract_compiler#RuntimeVariable#mtype (var_value1) on */ +var22 = var_value1->attrs[COLOR_nit__abstract_compiler__RuntimeVariable___mtype].val; /* _mtype on */ +if (unlikely(var22 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1784); +fatal_exit(1); } -var30 = !var29; -var26 = var30; -goto RET_LABEL27; -RET_LABEL27:(void)0; +var20 = var22; +RET_LABEL21:(void)0; } } -var14 = var26; +{ +{ /* Inline kernel#Object#== (var17,var20) on */ +var_other = var20; +{ +{ /* Inline kernel#Object#is_same_instance (var17,var_other) on */ +var27 = var17 == var_other; +var25 = var27; +goto RET_LABEL26; +RET_LABEL26:(void)0; } -var = var14; -goto RET_LABEL; -RET_LABEL:; -return var; } -/* method separate_compiler#SeparateCompilerVisitor#maybe_null for (self: SeparateCompilerVisitor, RuntimeVariable): Bool */ -short int nit___nit__SeparateCompilerVisitor___maybe_null(val* self, val* p0) { -short int var /* : Bool */; -val* var_value /* var value: RuntimeVariable */; -val* var1 /* : MType */; -val* var3 /* : MType */; -val* var_t /* var t: MType */; -short int var4 /* : Bool */; -short int var5 /* : Bool */; -int cltype; -int idtype; -short int var_ /* var : Bool */; -short int var6 /* : Bool */; -int cltype7; -int idtype8; -var_value = p0; -{ -{ /* Inline abstract_compiler#RuntimeVariable#mcasttype (var_value) on */ -var3 = var_value->attrs[COLOR_nit__abstract_compiler__RuntimeVariable___mcasttype].val; /* _mcasttype on */ -if (unlikely(var3 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mcasttype"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1683); -show_backtrace(1); +var23 = var25; +goto RET_LABEL24; +RET_LABEL24:(void)0; } -var1 = var3; -RET_LABEL2:(void)0; } +if (var23){ +if (unlikely(varonce==NULL)) { +var28 = NEW_standard__NativeArray(6l, &type_standard__NativeArray__standard__String); +if (likely(varonce29!=NULL)) { +var30 = varonce29; +} else { +var31 = " = 1; /* is_same_type_test: compatible types "; +var32 = standard___standard__NativeString___to_s_with_length(var31, 45l); +var30 = var32; +varonce29 = var30; } -var_t = var1; -/* isa MNullableType */ -cltype = type_nit__MNullableType.color; -idtype = type_nit__MNullableType.id; -if(cltype >= var_t->type->table_size) { -var5 = 0; +((struct instance_standard__NativeArray*)var28)->values[1]=var30; +if (likely(varonce33!=NULL)) { +var34 = varonce33; } else { -var5 = var_t->type->type_table[cltype] == idtype; +var35 = " vs. "; +var36 = standard___standard__NativeString___to_s_with_length(var35, 5l); +var34 = var36; +varonce33 = var34; } -var_ = var5; -if (var5){ -var4 = var_; +((struct instance_standard__NativeArray*)var28)->values[3]=var34; +if (likely(varonce37!=NULL)) { +var38 = varonce37; } else { -/* isa MNullType */ -cltype7 = type_nit__MNullType.color; -idtype8 = type_nit__MNullType.id; -if(cltype7 >= var_t->type->table_size) { -var6 = 0; +var39 = " */"; +var40 = standard___standard__NativeString___to_s_with_length(var39, 3l); +var38 = var40; +varonce37 = var38; +} +((struct instance_standard__NativeArray*)var28)->values[5]=var38; } else { -var6 = var_t->type->type_table[cltype7] == idtype8; +var28 = varonce; +varonce = NULL; } -var4 = var6; +{ +var41 = ((val*(*)(val* self))(var_res->class->vft[COLOR_standard__string__Object__to_s]))(var_res); /* to_s on */ } -var = var4; -goto RET_LABEL; -RET_LABEL:; -return var; +((struct instance_standard__NativeArray*)var28)->values[0]=var41; +{ +{ /* Inline abstract_compiler#RuntimeVariable#mtype (var_value1) on */ +var44 = var_value1->attrs[COLOR_nit__abstract_compiler__RuntimeVariable___mtype].val; /* _mtype on */ +if (unlikely(var44 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1784); +fatal_exit(1); +} +var42 = var44; +RET_LABEL43:(void)0; } -/* method separate_compiler#SeparateCompilerVisitor#array_instance for (self: SeparateCompilerVisitor, Array[RuntimeVariable], MType): RuntimeVariable */ -val* nit___nit__SeparateCompilerVisitor___nit__abstract_compiler__AbstractCompilerVisitor__array_instance(val* self, val* p0, val* p1) { -val* var /* : RuntimeVariable */; -val* var_array /* var array: Array[RuntimeVariable] */; -val* var_elttype /* var elttype: MType */; -static val* varonce; -val* var1 /* : String */; -char* var2 /* : NativeString */; -long var3 /* : Int */; -val* var4 /* : FlatString */; -val* var5 /* : MClass */; -val* var_nclass /* var nclass: MClass */; -static val* varonce6; -val* var7 /* : String */; -char* var8 /* : NativeString */; -long var9 /* : Int */; -val* var10 /* : FlatString */; -val* var11 /* : MClass */; -val* var_arrayclass /* var arrayclass: MClass */; -val* var12 /* : Array[MType] */; -long var13 /* : Int */; -val* var_ /* var : Array[MType] */; -val* var14 /* : MClassType */; -val* var_arraytype /* var arraytype: MClassType */; -val* var15 /* : RuntimeVariable */; -val* var_res /* var res: RuntimeVariable */; -static val* varonce16; -val* var17 /* : String */; -char* var18 /* : NativeString */; -long var19 /* : Int */; -val* var20 /* : FlatString */; -static val* varonce21; -val* var22 /* : String */; -char* var23 /* : NativeString */; -long var24 /* : Int */; -val* var25 /* : FlatString */; -static val* varonce26; -val* var27 /* : String */; -char* var28 /* : NativeString */; -long var29 /* : Int */; -val* var30 /* : FlatString */; -val* var31 /* : Array[Object] */; -long var32 /* : Int */; -val* var33 /* : NativeArray[Object] */; -val* var34 /* : String */; -long var35 /* : Int */; -long var37 /* : Int */; -val* var38 /* : RuntimeVariable */; -val* var_length /* var length: RuntimeVariable */; -val* var39 /* : RuntimeVariable */; -val* var_nat /* var nat: RuntimeVariable */; -long var40 /* : Int */; -long var_i /* var i: Int */; -long var41 /* : Int */; -long var43 /* : Int */; -long var_44 /* var : Int */; -short int var45 /* : Bool */; -short int var47 /* : Bool */; -int cltype; -int idtype; -const char* var_class_name; -short int var48 /* : Bool */; -val* var49 /* : nullable Object */; -val* var50 /* : MClassType */; -val* var51 /* : RuntimeVariable */; -val* var_r /* var r: RuntimeVariable */; -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 */; -static val* varonce63; -val* var64 /* : String */; -char* var65 /* : NativeString */; -long var66 /* : Int */; -val* var67 /* : FlatString */; -static val* varonce68; -val* var69 /* : String */; -char* var70 /* : NativeString */; -long var71 /* : Int */; -val* var72 /* : FlatString */; -static val* varonce73; -val* var74 /* : String */; -char* var75 /* : NativeString */; -long var76 /* : Int */; -val* var77 /* : FlatString */; -val* var78 /* : Array[Object] */; -long var79 /* : Int */; -val* var80 /* : NativeArray[Object] */; -val* var81 /* : Object */; -val* var82 /* : String */; -long var83 /* : Int */; -long var84 /* : Int */; -static val* varonce85; -val* var86 /* : String */; -char* var87 /* : NativeString */; -long var88 /* : Int */; -val* var89 /* : FlatString */; -val* var90 /* : MClassDef */; -val* var92 /* : MClassDef */; -val* var93 /* : MClassType */; -val* var95 /* : MClassType */; -val* var96 /* : MMethod */; -val* var97 /* : Array[RuntimeVariable] */; -long var98 /* : Int */; -val* var_99 /* var : Array[RuntimeVariable] */; -val* var100 /* : nullable RuntimeVariable */; -static val* varonce101; -val* var102 /* : String */; -char* var103 /* : NativeString */; -long var104 /* : Int */; -val* var105 /* : FlatString */; -var_array = p0; -var_elttype = p1; -if (varonce) { -var1 = varonce; -} else { -var2 = "NativeArray"; -var3 = 11; -var4 = standard___standard__NativeString___to_s_with_length(var2, var3); -var1 = var4; -varonce = var1; } { -var5 = nit___nit__AbstractCompilerVisitor___get_class(self, var1); +var45 = ((val*(*)(val* self))(var42->class->vft[COLOR_standard__string__Object__to_s]))(var42); /* to_s on */ +} +((struct instance_standard__NativeArray*)var28)->values[2]=var45; +{ +{ /* Inline abstract_compiler#RuntimeVariable#mtype (var_value2) on */ +var48 = var_value2->attrs[COLOR_nit__abstract_compiler__RuntimeVariable___mtype].val; /* _mtype on */ +if (unlikely(var48 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1784); +fatal_exit(1); +} +var46 = var48; +RET_LABEL47:(void)0; } -var_nclass = var5; -if (varonce6) { -var7 = varonce6; -} else { -var8 = "Array"; -var9 = 5; -var10 = standard___standard__NativeString___to_s_with_length(var8, var9); -var7 = var10; -varonce6 = var7; } { -var11 = nit___nit__AbstractCompilerVisitor___get_class(self, var7); +var49 = ((val*(*)(val* self))(var46->class->vft[COLOR_standard__string__Object__to_s]))(var46); /* to_s on */ } -var_arrayclass = var11; -var12 = NEW_standard__Array(&type_standard__Array__nit__MType); -var13 = 1; +((struct instance_standard__NativeArray*)var28)->values[4]=var49; { -standard___standard__Array___with_capacity(var12, var13); /* Direct call array#Array#with_capacity on */ +var50 = ((val*(*)(val* self))(var28->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var28); /* native_to_s on */ } -var_ = var12; +varonce = var28; { -standard___standard__AbstractArray___standard__abstract_collection__Sequence__push(var_, var_elttype); /* Direct call array#AbstractArray#push on */ +nit___nit__AbstractCompilerVisitor___add(self, var50); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on */ } +} else { { -var14 = nit___nit__MClass___get_mtype(var_arrayclass, var_); +{ /* Inline abstract_compiler#RuntimeVariable#mtype (var_value2) on */ +var53 = var_value2->attrs[COLOR_nit__abstract_compiler__RuntimeVariable___mtype].val; /* _mtype on */ +if (unlikely(var53 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1784); +fatal_exit(1); +} +var51 = var53; +RET_LABEL52:(void)0; +} } -var_arraytype = var14; { -var15 = ((val* (*)(val* self, val* p0))(self->class->vft[COLOR_nit__abstract_compiler__AbstractCompilerVisitor__init_instance]))(self, var_arraytype) /* init_instance on */; +var54 = ((short int(*)(val* self))(var51->class->vft[COLOR_nit__abstract_compiler__MType__is_c_primitive]))(var51); /* is_c_primitive on */ +} +if (var54){ +if (unlikely(varonce55==NULL)) { +var56 = NEW_standard__NativeArray(6l, &type_standard__NativeArray__standard__String); +if (likely(varonce57!=NULL)) { +var58 = varonce57; +} else { +var59 = " = 0; /* is_same_type_test: incompatible types "; +var60 = standard___standard__NativeString___to_s_with_length(var59, 47l); +var58 = var60; +varonce57 = var58; } -var_res = var15; -if (varonce16) { -var17 = varonce16; +((struct instance_standard__NativeArray*)var56)->values[1]=var58; +if (likely(varonce61!=NULL)) { +var62 = varonce61; } else { -var18 = "{ /* "; -var19 = 5; -var20 = standard___standard__NativeString___to_s_with_length(var18, var19); -var17 = var20; -varonce16 = var17; +var63 = " vs. "; +var64 = standard___standard__NativeString___to_s_with_length(var63, 5l); +var62 = var64; +varonce61 = var62; } -if (varonce21) { -var22 = varonce21; +((struct instance_standard__NativeArray*)var56)->values[3]=var62; +if (likely(varonce65!=NULL)) { +var66 = varonce65; } else { -var23 = " = array_instance Array["; -var24 = 24; -var25 = standard___standard__NativeString___to_s_with_length(var23, var24); -var22 = var25; -varonce21 = var22; +var67 = "*/"; +var68 = standard___standard__NativeString___to_s_with_length(var67, 2l); +var66 = var68; +varonce65 = var66; } -if (varonce26) { -var27 = varonce26; +((struct instance_standard__NativeArray*)var56)->values[5]=var66; } else { -var28 = "] */"; -var29 = 4; -var30 = standard___standard__NativeString___to_s_with_length(var28, var29); -var27 = var30; -varonce26 = var27; +var56 = varonce55; +varonce55 = NULL; } -var31 = NEW_standard__Array(&type_standard__Array__standard__Object); -{ /* var31 = array_instance Array[Object] */ -var32 = 5; -var33 = NEW_standard__NativeArray(var32, &type_standard__NativeArray__standard__Object); -((struct instance_standard__NativeArray*)var33)->values[0] = (val*) var17; -((struct instance_standard__NativeArray*)var33)->values[1] = (val*) var_res; -((struct instance_standard__NativeArray*)var33)->values[2] = (val*) var22; -((struct instance_standard__NativeArray*)var33)->values[3] = (val*) var_elttype; -((struct instance_standard__NativeArray*)var33)->values[4] = (val*) var27; { -((void (*)(val* self, val* p0, long p1))(var31->class->vft[COLOR_standard__array__Array__with_native]))(var31, var33, var32) /* with_native on */; -} +var69 = ((val*(*)(val* self))(var_res->class->vft[COLOR_standard__string__Object__to_s]))(var_res); /* to_s on */ } +((struct instance_standard__NativeArray*)var56)->values[0]=var69; { -var34 = ((val* (*)(val* self))(var31->class->vft[COLOR_standard__string__Object__to_s]))(var31) /* to_s on */; +{ /* Inline abstract_compiler#RuntimeVariable#mtype (var_value1) on */ +var72 = var_value1->attrs[COLOR_nit__abstract_compiler__RuntimeVariable___mtype].val; /* _mtype on */ +if (unlikely(var72 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1784); +fatal_exit(1); +} +var70 = var72; +RET_LABEL71:(void)0; +} } { -nit___nit__AbstractCompilerVisitor___add(self, var34); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on */ +var73 = ((val*(*)(val* self))(var70->class->vft[COLOR_standard__string__Object__to_s]))(var70); /* to_s on */ } +((struct instance_standard__NativeArray*)var56)->values[2]=var73; { -{ /* Inline array#AbstractArrayRead#length (var_array) on */ -var37 = var_array->attrs[COLOR_standard__array__AbstractArrayRead___length].l; /* _length on */ -var35 = var37; -RET_LABEL36:(void)0; +{ /* Inline abstract_compiler#RuntimeVariable#mtype (var_value2) on */ +var76 = var_value2->attrs[COLOR_nit__abstract_compiler__RuntimeVariable___mtype].val; /* _mtype on */ +if (unlikely(var76 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1784); +fatal_exit(1); +} +var74 = var76; +RET_LABEL75:(void)0; } } { -var38 = nit___nit__AbstractCompilerVisitor___int_instance(self, var35); +var77 = ((val*(*)(val* self))(var74->class->vft[COLOR_standard__string__Object__to_s]))(var74); /* to_s on */ } -var_length = var38; +((struct instance_standard__NativeArray*)var56)->values[4]=var77; { -var39 = ((val* (*)(val* self, val* p0, val* p1))(self->class->vft[COLOR_nit__abstract_compiler__AbstractCompilerVisitor__native_array_instance]))(self, var_elttype, var_length) /* native_array_instance on */; +var78 = ((val*(*)(val* self))(var56->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var56); /* native_to_s on */ } -var_nat = var39; -var40 = 0; -var_i = var40; +varonce55 = var56; { -{ /* Inline array#AbstractArrayRead#length (var_array) on */ -var43 = var_array->attrs[COLOR_standard__array__AbstractArrayRead___length].l; /* _length on */ -var41 = var43; -RET_LABEL42:(void)0; +nit___nit__AbstractCompilerVisitor___add(self, var78); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on */ } -} -var_44 = var41; -for(;;) { +} else { { -{ /* Inline kernel#Int#< (var_i,var_44) on */ -/* Covariant cast for argument 0 (i) isa OTHER */ -/* isa OTHER */ -var47 = 1; /* easy isa OTHER*/ -if (unlikely(!var47)) { -var_class_name = type_standard__Int.name; -PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name); -PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 410); -show_backtrace(1); +{ /* Inline abstract_compiler#RuntimeVariable#mtype (var_value1) on */ +var81 = var_value1->attrs[COLOR_nit__abstract_compiler__RuntimeVariable___mtype].val; /* _mtype on */ +if (unlikely(var81 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1784); +fatal_exit(1); } -var48 = var_i < var_44; -var45 = var48; -goto RET_LABEL46; -RET_LABEL46:(void)0; +var79 = var81; +RET_LABEL80:(void)0; +} +} +/* isa MClassType */ +cltype = type_nit__MClassType.color; +idtype = type_nit__MClassType.id; +if(cltype >= var79->type->table_size) { +var82 = 0; +} else { +var82 = var79->type->type_table[cltype] == idtype; +} +if (unlikely(!var82)) { +var_class_name = var79 == NULL ? "null" : var79->type->name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "MClassType", var_class_name); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_compiler, 1855); +fatal_exit(1); +} +var_mtype1 = var79; +if (unlikely(varonce83==NULL)) { +var84 = NEW_standard__NativeArray(2l, &type_standard__NativeArray__standard__String); +if (likely(varonce85!=NULL)) { +var86 = varonce85; +} else { +var87 = "class_"; +var88 = standard___standard__NativeString___to_s_with_length(var87, 6l); +var86 = var88; +varonce85 = var86; } +((struct instance_standard__NativeArray*)var84)->values[0]=var86; +} else { +var84 = varonce83; +varonce83 = NULL; } -if (var45){ { -var49 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var_array, var_i); +var89 = ((val*(*)(val* self))(var_mtype1->class->vft[COLOR_nit__model_base__MEntity__c_name]))(var_mtype1); /* c_name on */ } +((struct instance_standard__NativeArray*)var84)->values[1]=var89; { -var50 = nit___nit__AbstractCompilerVisitor___object_type(self); +var90 = ((val*(*)(val* self))(var84->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var84); /* native_to_s on */ } +varonce83 = var84; { -var51 = nit___nit__SeparateCompilerVisitor___nit__abstract_compiler__AbstractCompilerVisitor__autobox(self, var49, var50); +nit___nit__AbstractCompilerVisitor___require_declaration(self, var90); /* Direct call abstract_compiler#AbstractCompilerVisitor#require_declaration on */ } -var_r = var51; -if (varonce52) { -var53 = varonce52; +if (unlikely(varonce91==NULL)) { +var92 = NEW_standard__NativeArray(8l, &type_standard__NativeArray__standard__String); +if (likely(varonce93!=NULL)) { +var94 = varonce93; } else { -var54 = "((struct instance_"; -var55 = 18; -var56 = standard___standard__NativeString___to_s_with_length(var54, var55); -var53 = var56; -varonce52 = var53; -} -{ -var57 = nit___nit__MClass___nit__model_base__MEntity__c_name(var_nclass); +var95 = " = ("; +var96 = standard___standard__NativeString___to_s_with_length(var95, 4l); +var94 = var96; +varonce93 = var94; } -if (varonce58) { -var59 = varonce58; +((struct instance_standard__NativeArray*)var92)->values[1]=var94; +if (likely(varonce97!=NULL)) { +var98 = varonce97; } else { -var60 = "*)"; -var61 = 2; -var62 = standard___standard__NativeString___to_s_with_length(var60, var61); -var59 = var62; -varonce58 = var59; +var99 = " != NULL) && ("; +var100 = standard___standard__NativeString___to_s_with_length(var99, 14l); +var98 = var100; +varonce97 = var98; } -if (varonce63) { -var64 = varonce63; +((struct instance_standard__NativeArray*)var92)->values[3]=var98; +if (likely(varonce101!=NULL)) { +var102 = varonce101; } else { -var65 = ")->values["; -var66 = 10; -var67 = standard___standard__NativeString___to_s_with_length(var65, var66); -var64 = var67; -varonce63 = var64; +var103 = "->class == &class_"; +var104 = standard___standard__NativeString___to_s_with_length(var103, 18l); +var102 = var104; +varonce101 = var102; } -if (varonce68) { -var69 = varonce68; +((struct instance_standard__NativeArray*)var92)->values[5]=var102; +if (likely(varonce105!=NULL)) { +var106 = varonce105; } else { -var70 = "] = (val*) "; -var71 = 11; -var72 = standard___standard__NativeString___to_s_with_length(var70, var71); -var69 = var72; -varonce68 = var69; +var107 = "); /* is_same_type_test */"; +var108 = standard___standard__NativeString___to_s_with_length(var107, 26l); +var106 = var108; +varonce105 = var106; } -if (varonce73) { -var74 = varonce73; +((struct instance_standard__NativeArray*)var92)->values[7]=var106; } else { -var75 = ";"; -var76 = 1; -var77 = standard___standard__NativeString___to_s_with_length(var75, var76); -var74 = var77; -varonce73 = var74; +var92 = varonce91; +varonce91 = NULL; +} +{ +var109 = ((val*(*)(val* self))(var_res->class->vft[COLOR_standard__string__Object__to_s]))(var_res); /* to_s on */ } -var78 = NEW_standard__Array(&type_standard__Array__standard__Object); -{ /* var78 = array_instance Array[Object] */ -var79 = 9; -var80 = NEW_standard__NativeArray(var79, &type_standard__NativeArray__standard__Object); -((struct instance_standard__NativeArray*)var80)->values[0] = (val*) var53; -((struct instance_standard__NativeArray*)var80)->values[1] = (val*) var57; -((struct instance_standard__NativeArray*)var80)->values[2] = (val*) var59; -((struct instance_standard__NativeArray*)var80)->values[3] = (val*) var_nat; -((struct instance_standard__NativeArray*)var80)->values[4] = (val*) var64; -var81 = BOX_standard__Int(var_i); /* autobox from Int to Object */ -((struct instance_standard__NativeArray*)var80)->values[5] = (val*) var81; -((struct instance_standard__NativeArray*)var80)->values[6] = (val*) var69; -((struct instance_standard__NativeArray*)var80)->values[7] = (val*) var_r; -((struct instance_standard__NativeArray*)var80)->values[8] = (val*) var74; +((struct instance_standard__NativeArray*)var92)->values[0]=var109; { -((void (*)(val* self, val* p0, long p1))(var78->class->vft[COLOR_standard__array__Array__with_native]))(var78, var80, var79) /* with_native on */; +var110 = ((val*(*)(val* self))(var_value2->class->vft[COLOR_standard__string__Object__to_s]))(var_value2); /* to_s on */ } +((struct instance_standard__NativeArray*)var92)->values[2]=var110; +{ +var111 = ((val*(*)(val* self))(var_value2->class->vft[COLOR_standard__string__Object__to_s]))(var_value2); /* to_s on */ } +((struct instance_standard__NativeArray*)var92)->values[4]=var111; { -var82 = ((val* (*)(val* self))(var78->class->vft[COLOR_standard__string__Object__to_s]))(var78) /* to_s on */; +var112 = ((val*(*)(val* self))(var_mtype1->class->vft[COLOR_nit__model_base__MEntity__c_name]))(var_mtype1); /* c_name on */ } +((struct instance_standard__NativeArray*)var92)->values[6]=var112; { -nit___nit__AbstractCompilerVisitor___add(self, var82); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on */ +var113 = ((val*(*)(val* self))(var92->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var92); /* native_to_s on */ } -var83 = 1; +varonce91 = var92; { -var84 = standard___standard__Int___Discrete__successor(var_i, var83); +nit___nit__AbstractCompilerVisitor___add(self, var113); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on */ +} +} } -var_i = var84; } else { -goto BREAK_label; +if (unlikely(varonce114==NULL)) { +var115 = NEW_standard__NativeArray(14l, &type_standard__NativeArray__standard__String); +if (likely(varonce116!=NULL)) { +var117 = varonce116; +} else { +var118 = " = ("; +var119 = standard___standard__NativeString___to_s_with_length(var118, 4l); +var117 = var119; +varonce116 = var117; } +((struct instance_standard__NativeArray*)var115)->values[1]=var117; +if (likely(varonce120!=NULL)) { +var121 = varonce120; +} else { +var122 = " == "; +var123 = standard___standard__NativeString___to_s_with_length(var122, 4l); +var121 = var123; +varonce120 = var121; } -BREAK_label: (void)0; -if (varonce85) { -var86 = varonce85; +((struct instance_standard__NativeArray*)var115)->values[3]=var121; +if (likely(varonce124!=NULL)) { +var125 = varonce124; } else { -var87 = "with_native"; -var88 = 11; -var89 = standard___standard__NativeString___to_s_with_length(var87, var88); -var86 = var89; -varonce85 = var86; +var126 = ") || ("; +var127 = standard___standard__NativeString___to_s_with_length(var126, 6l); +var125 = var127; +varonce124 = var125; } -{ -{ /* Inline model#MClass#intro (var_arrayclass) on */ -var92 = var_arrayclass->attrs[COLOR_nit__model__MClass___intro].val; /* _intro on */ -if (unlikely(var92 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 423); -show_backtrace(1); +((struct instance_standard__NativeArray*)var115)->values[5]=var125; +if (likely(varonce128!=NULL)) { +var129 = varonce128; +} else { +var130 = " != NULL && "; +var131 = standard___standard__NativeString___to_s_with_length(var130, 12l); +var129 = var131; +varonce128 = var129; } -var90 = var92; -RET_LABEL91:(void)0; +((struct instance_standard__NativeArray*)var115)->values[7]=var129; +if (likely(varonce132!=NULL)) { +var133 = varonce132; +} else { +var134 = " != NULL && "; +var135 = standard___standard__NativeString___to_s_with_length(var134, 12l); +var133 = var135; +varonce132 = var133; } +((struct instance_standard__NativeArray*)var115)->values[9]=var133; +if (likely(varonce136!=NULL)) { +var137 = varonce136; +} else { +var138 = " == "; +var139 = standard___standard__NativeString___to_s_with_length(var138, 4l); +var137 = var139; +varonce136 = var137; } -{ -{ /* Inline model#MClassDef#bound_mtype (var90) on */ -var95 = var90->attrs[COLOR_nit__model__MClassDef___bound_mtype].val; /* _bound_mtype on */ -if (unlikely(var95 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _bound_mtype"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 495); -show_backtrace(1); +((struct instance_standard__NativeArray*)var115)->values[11]=var137; +if (likely(varonce140!=NULL)) { +var141 = varonce140; +} else { +var142 = "); /* is_same_type_test */"; +var143 = standard___standard__NativeString___to_s_with_length(var142, 26l); +var141 = var143; +varonce140 = var141; } -var93 = var95; -RET_LABEL94:(void)0; +((struct instance_standard__NativeArray*)var115)->values[13]=var141; +} else { +var115 = varonce114; +varonce114 = NULL; } +{ +var144 = ((val*(*)(val* self))(var_res->class->vft[COLOR_standard__string__Object__to_s]))(var_res); /* to_s on */ } +((struct instance_standard__NativeArray*)var115)->values[0]=var144; { -var96 = nit___nit__AbstractCompilerVisitor___get_property(self, var86, var93); +var145 = ((val*(*)(val* self))(var_value1->class->vft[COLOR_standard__string__Object__to_s]))(var_value1); /* to_s on */ } -var97 = NEW_standard__Array(&type_standard__Array__nit__RuntimeVariable); -var98 = 3; +((struct instance_standard__NativeArray*)var115)->values[2]=var145; { -standard___standard__Array___with_capacity(var97, var98); /* Direct call array#Array#with_capacity on */ +var146 = ((val*(*)(val* self))(var_value2->class->vft[COLOR_standard__string__Object__to_s]))(var_value2); /* to_s on */ } -var_99 = var97; +((struct instance_standard__NativeArray*)var115)->values[4]=var146; { -standard___standard__AbstractArray___standard__abstract_collection__Sequence__push(var_99, var_res); /* Direct call array#AbstractArray#push on */ +var147 = ((val*(*)(val* self))(var_value1->class->vft[COLOR_standard__string__Object__to_s]))(var_value1); /* to_s on */ } +((struct instance_standard__NativeArray*)var115)->values[6]=var147; { -standard___standard__AbstractArray___standard__abstract_collection__Sequence__push(var_99, var_nat); /* Direct call array#AbstractArray#push on */ +var148 = ((val*(*)(val* self))(var_value2->class->vft[COLOR_standard__string__Object__to_s]))(var_value2); /* to_s on */ } +((struct instance_standard__NativeArray*)var115)->values[8]=var148; { -standard___standard__AbstractArray___standard__abstract_collection__Sequence__push(var_99, var_length); /* Direct call array#AbstractArray#push on */ +var149 = nit___nit__SeparateCompilerVisitor___class_info(self, var_value1); } +((struct instance_standard__NativeArray*)var115)->values[10]=var149; { -var100 = nit___nit__SeparateCompilerVisitor___nit__abstract_compiler__AbstractCompilerVisitor__send(self, var96, var_99); +var150 = nit___nit__SeparateCompilerVisitor___class_info(self, var_value2); } -if (varonce101) { -var102 = varonce101; -} else { -var103 = "}"; -var104 = 1; -var105 = standard___standard__NativeString___to_s_with_length(var103, var104); -var102 = var105; -varonce101 = var102; +((struct instance_standard__NativeArray*)var115)->values[12]=var150; +{ +var151 = ((val*(*)(val* self))(var115->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var115); /* native_to_s on */ } +varonce114 = var115; { -nit___nit__AbstractCompilerVisitor___add(self, var102); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on */ +nit___nit__AbstractCompilerVisitor___add(self, var151); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on */ +} } var = var_res; goto RET_LABEL; RET_LABEL:; return var; } -/* method separate_compiler#SeparateCompilerVisitor#native_array_instance for (self: SeparateCompilerVisitor, MType, RuntimeVariable): RuntimeVariable */ -val* nit___nit__SeparateCompilerVisitor___nit__abstract_compiler__AbstractCompilerVisitor__native_array_instance(val* self, val* p0, val* p1) { -val* var /* : RuntimeVariable */; -val* var_elttype /* var elttype: MType */; -val* var_length /* var length: RuntimeVariable */; +/* method separate_compiler#SeparateCompilerVisitor#class_name_string for (self: SeparateCompilerVisitor, RuntimeVariable): String */ +val* nit___nit__SeparateCompilerVisitor___nit__abstract_compiler__AbstractCompilerVisitor__class_name_string(val* self, val* p0) { +val* var /* : String */; +val* var_value /* var value: RuntimeVariable */; static val* varonce; val* var1 /* : String */; char* var2 /* : NativeString */; -long var3 /* : Int */; -val* var4 /* : FlatString */; -val* var5 /* : MClass */; -val* var6 /* : Array[MType] */; -long var7 /* : Int */; -val* var_ /* var : Array[MType] */; -val* var8 /* : MClassType */; -val* var_mtype /* var mtype: MClassType */; -static val* varonce9; -val* var10 /* : String */; -char* var11 /* : NativeString */; -long var12 /* : Int */; -val* var13 /* : FlatString */; -val* var14 /* : MClass */; -val* var16 /* : MClass */; -val* var17 /* : String */; -val* var18 /* : Array[Object] */; -long var19 /* : Int */; -val* var20 /* : NativeArray[Object] */; -val* var21 /* : String */; -short int var22 /* : Bool */; +val* var3 /* : FlatString */; +val* var4 /* : String */; +val* var_res /* var res: String */; +val* var6 /* : NativeArray[String] */; +static val* varonce5; +static val* varonce7; +val* var8 /* : String */; +char* var9 /* : NativeString */; +val* var10 /* : FlatString */; +static val* varonce11; +val* var12 /* : String */; +char* var13 /* : NativeString */; +val* var14 /* : FlatString */; +val* var15 /* : String */; +val* var16 /* : MType */; +val* var18 /* : MType */; +short int var19 /* : Bool */; +short int var20 /* : Bool */; +val* var22 /* : NativeArray[String] */; +static val* varonce21; +static val* varonce23; +val* var24 /* : String */; +char* var25 /* : NativeString */; +val* var26 /* : FlatString */; +static val* varonce27; +val* var28 /* : String */; +char* var29 /* : NativeString */; +val* var30 /* : FlatString */; +static val* varonce31; +val* var32 /* : String */; +char* var33 /* : NativeString */; +val* var34 /* : FlatString */; +val* var35 /* : String */; +val* var36 /* : String */; +val* var37 /* : String */; +short int var38 /* : Bool */; +short int var39 /* : Bool */; +val* var40 /* : MType */; +val* var42 /* : MType */; +short int var43 /* : Bool */; int cltype; int idtype; -val* var23 /* : AbstractCompiler */; -val* var25 /* : AbstractCompiler */; -val* var_compiler /* var compiler: SeparateCompiler */; -short int var26 /* : Bool */; -short int var28 /* : Bool */; -val* var29 /* : nullable StaticFrame */; -val* var31 /* : nullable StaticFrame */; -val* var32 /* : MPropDef */; -val* var34 /* : MPropDef */; -val* var35 /* : MClassDef */; -val* var37 /* : MClassDef */; -val* var38 /* : nullable StaticFrame */; -val* var40 /* : nullable StaticFrame */; -val* var41 /* : Array[RuntimeVariable] */; -val* var43 /* : Array[RuntimeVariable] */; -val* var44 /* : nullable Object */; -val* var_recv /* var recv: RuntimeVariable */; -val* var45 /* : String */; -val* var_recv_type_info /* var recv_type_info: String */; -val* var46 /* : String */; -static val* varonce47; -val* var48 /* : String */; -char* var49 /* : NativeString */; -long var50 /* : Int */; -val* var51 /* : FlatString */; +short int var_ /* var : Bool */; +val* var44 /* : MType */; +val* var46 /* : MType */; +short int var47 /* : Bool */; +int cltype48; +int idtype49; +const char* var_class_name; +val* var50 /* : MClass */; val* var52 /* : MClass */; -val* var54 /* : MClass */; -val* var55 /* : String */; -static val* varonce56; -val* var57 /* : String */; -char* var58 /* : NativeString */; -long var59 /* : Int */; -val* var60 /* : FlatString */; -static val* varonce61; -val* var62 /* : String */; -char* var63 /* : NativeString */; -long var64 /* : Int */; -val* var65 /* : FlatString */; -static val* varonce66; -val* var67 /* : String */; -char* var68 /* : NativeString */; -long var69 /* : Int */; -val* var70 /* : FlatString */; +val* var53 /* : MClassKind */; +val* var55 /* : MClassKind */; +val* var56 /* : Sys */; +val* var57 /* : MClassKind */; +short int var58 /* : Bool */; +val* var_other /* var other: nullable Object */; +short int var60 /* : Bool */; +short int var62 /* : Bool */; +short int var_63 /* var : Bool */; +val* var64 /* : MType */; +val* var66 /* : MType */; +short int var67 /* : Bool */; +int cltype68; +int idtype69; +const char* var_class_name70; val* var71 /* : String */; static val* varonce72; val* var73 /* : String */; char* var74 /* : NativeString */; -long var75 /* : Int */; -val* var76 /* : FlatString */; -val* var77 /* : Array[Object] */; -long var78 /* : Int */; -val* var79 /* : NativeArray[Object] */; -val* var80 /* : String */; -val* var81 /* : RuntimeVariable */; -val* var82 /* : Set[MType] */; -val* var84 /* : Set[MType] */; -static val* varonce85; -val* var86 /* : String */; -char* var87 /* : NativeString */; -long var88 /* : Int */; -val* var89 /* : FlatString */; -val* var90 /* : String */; -val* var91 /* : Array[Object] */; -long var92 /* : Int */; -val* var93 /* : NativeArray[Object] */; -val* var94 /* : String */; -static val* varonce95; -val* var96 /* : String */; -char* var97 /* : NativeString */; -long var98 /* : Int */; -val* var99 /* : FlatString */; +val* var75 /* : FlatString */; +short int var76 /* : Bool */; +val* var_other78 /* var other: nullable Object */; +short int var79 /* : Bool */; +short int var80 /* : Bool */; +val* var82 /* : NativeArray[String] */; +static val* varonce81; +static val* varonce83; +val* var84 /* : String */; +char* var85 /* : NativeString */; +val* var86 /* : FlatString */; +static val* varonce87; +val* var88 /* : String */; +char* var89 /* : NativeString */; +val* var90 /* : FlatString */; +val* var91 /* : MType */; +val* var93 /* : MType */; +short int var94 /* : Bool */; +int cltype95; +int idtype96; +const char* var_class_name97; +val* var98 /* : MClass */; val* var100 /* : MClass */; -val* var102 /* : MClass */; -val* var103 /* : String */; -static val* varonce104; -val* var105 /* : String */; -char* var106 /* : NativeString */; -long var107 /* : Int */; +val* var101 /* : String */; +val* var102 /* : String */; +val* var104 /* : NativeArray[String] */; +static val* varonce103; +static val* varonce105; +val* var106 /* : String */; +char* var107 /* : NativeString */; val* var108 /* : FlatString */; -static val* varonce109; -val* var110 /* : String */; -char* var111 /* : NativeString */; -long var112 /* : Int */; -val* var113 /* : FlatString */; -val* var114 /* : String */; -static val* varonce115; -val* var116 /* : String */; -char* var117 /* : NativeString */; -long var118 /* : Int */; +val* var109 /* : MType */; +val* var111 /* : MType */; +val* var112 /* : String */; +val* var113 /* : String */; +val* var115 /* : NativeArray[String] */; +static val* varonce114; +static val* varonce116; +val* var117 /* : String */; +char* var118 /* : NativeString */; val* var119 /* : FlatString */; -val* var120 /* : Array[Object] */; -long var121 /* : Int */; -val* var122 /* : NativeArray[Object] */; -val* var123 /* : String */; -val* var124 /* : RuntimeVariable */; -var_elttype = p0; -var_length = p1; -if (varonce) { +static val* varonce120; +val* var121 /* : String */; +char* var122 /* : NativeString */; +val* var123 /* : FlatString */; +val* var124 /* : MType */; +val* var126 /* : MType */; +val* var127 /* : String */; +val* var128 /* : String */; +var_value = p0; +if (likely(varonce!=NULL)) { var1 = varonce; } else { -var2 = "NativeArray"; -var3 = 11; -var4 = standard___standard__NativeString___to_s_with_length(var2, var3); -var1 = var4; +var2 = "var_class_name"; +var3 = standard___standard__NativeString___to_s_with_length(var2, 14l); +var1 = var3; varonce = var1; } { -var5 = nit___nit__AbstractCompilerVisitor___get_class(self, var1); +var4 = nit___nit__AbstractCompilerVisitor___get_name(self, var1); } -var6 = NEW_standard__Array(&type_standard__Array__nit__MType); -var7 = 1; +var_res = var4; +if (unlikely(varonce5==NULL)) { +var6 = NEW_standard__NativeArray(3l, &type_standard__NativeArray__standard__String); +if (likely(varonce7!=NULL)) { +var8 = varonce7; +} else { +var9 = "const char* "; +var10 = standard___standard__NativeString___to_s_with_length(var9, 12l); +var8 = var10; +varonce7 = var8; +} +((struct instance_standard__NativeArray*)var6)->values[0]=var8; +if (likely(varonce11!=NULL)) { +var12 = varonce11; +} else { +var13 = ";"; +var14 = standard___standard__NativeString___to_s_with_length(var13, 1l); +var12 = var14; +varonce11 = var12; +} +((struct instance_standard__NativeArray*)var6)->values[2]=var12; +} else { +var6 = varonce5; +varonce5 = NULL; +} +((struct instance_standard__NativeArray*)var6)->values[1]=var_res; { -standard___standard__Array___with_capacity(var6, var7); /* Direct call array#Array#with_capacity on */ +var15 = ((val*(*)(val* self))(var6->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var6); /* native_to_s on */ } -var_ = var6; +varonce5 = var6; { -standard___standard__AbstractArray___standard__abstract_collection__Sequence__push(var_, var_elttype); /* Direct call array#AbstractArray#push on */ +nit___nit__AbstractCompilerVisitor___add_decl(self, var15); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on */ } { -var8 = nit___nit__MClass___get_mtype(var5, var_); +{ /* Inline abstract_compiler#RuntimeVariable#mtype (var_value) on */ +var18 = var_value->attrs[COLOR_nit__abstract_compiler__RuntimeVariable___mtype].val; /* _mtype on */ +if (unlikely(var18 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1784); +fatal_exit(1); } -var_mtype = var8; -if (varonce9) { -var10 = varonce9; +var16 = var18; +RET_LABEL17:(void)0; +} +} +{ +var19 = ((short int(*)(val* self))(var16->class->vft[COLOR_nit__abstract_compiler__MType__is_c_primitive]))(var16); /* is_c_primitive on */ +} +var20 = !var19; +if (var20){ +if (unlikely(varonce21==NULL)) { +var22 = NEW_standard__NativeArray(6l, &type_standard__NativeArray__standard__String); +if (likely(varonce23!=NULL)) { +var24 = varonce23; } else { -var11 = "NEW_"; -var12 = 4; -var13 = standard___standard__NativeString___to_s_with_length(var11, var12); -var10 = var13; -varonce9 = var10; +var25 = " = "; +var26 = standard___standard__NativeString___to_s_with_length(var25, 3l); +var24 = var26; +varonce23 = var24; +} +((struct instance_standard__NativeArray*)var22)->values[1]=var24; +if (likely(varonce27!=NULL)) { +var28 = varonce27; +} else { +var29 = " == NULL ? \"null\" : "; +var30 = standard___standard__NativeString___to_s_with_length(var29, 20l); +var28 = var30; +varonce27 = var28; +} +((struct instance_standard__NativeArray*)var22)->values[3]=var28; +if (likely(varonce31!=NULL)) { +var32 = varonce31; +} else { +var33 = "->name;"; +var34 = standard___standard__NativeString___to_s_with_length(var33, 7l); +var32 = var34; +varonce31 = var32; } +((struct instance_standard__NativeArray*)var22)->values[5]=var32; +} else { +var22 = varonce21; +varonce21 = NULL; +} +((struct instance_standard__NativeArray*)var22)->values[0]=var_res; { -{ /* Inline model#MClassType#mclass (var_mtype) on */ -var16 = var_mtype->attrs[COLOR_nit__model__MClassType___mclass].val; /* _mclass on */ -if (unlikely(var16 == NULL)) { +var35 = ((val*(*)(val* self))(var_value->class->vft[COLOR_standard__string__Object__to_s]))(var_value); /* to_s on */ +} +((struct instance_standard__NativeArray*)var22)->values[2]=var35; +{ +var36 = nit___nit__SeparateCompilerVisitor___type_info(self, var_value); +} +((struct instance_standard__NativeArray*)var22)->values[4]=var36; +{ +var37 = ((val*(*)(val* self))(var22->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var22); /* native_to_s on */ +} +varonce21 = var22; +{ +nit___nit__AbstractCompilerVisitor___add(self, var37); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on */ +} +} else { +{ +{ /* Inline abstract_compiler#RuntimeVariable#mtype (var_value) on */ +var42 = var_value->attrs[COLOR_nit__abstract_compiler__RuntimeVariable___mtype].val; /* _mtype on */ +if (unlikely(var42 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1784); +fatal_exit(1); +} +var40 = var42; +RET_LABEL41:(void)0; +} +} +/* isa MClassType */ +cltype = type_nit__MClassType.color; +idtype = type_nit__MClassType.id; +if(cltype >= var40->type->table_size) { +var43 = 0; +} else { +var43 = var40->type->type_table[cltype] == idtype; +} +var_ = var43; +if (var43){ +{ +{ /* Inline abstract_compiler#RuntimeVariable#mtype (var_value) on */ +var46 = var_value->attrs[COLOR_nit__abstract_compiler__RuntimeVariable___mtype].val; /* _mtype on */ +if (unlikely(var46 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1784); +fatal_exit(1); +} +var44 = var46; +RET_LABEL45:(void)0; +} +} +/* isa MClassType */ +cltype48 = type_nit__MClassType.color; +idtype49 = type_nit__MClassType.id; +if(cltype48 >= var44->type->table_size) { +var47 = 0; +} else { +var47 = var44->type->type_table[cltype48] == idtype49; +} +if (unlikely(!var47)) { +var_class_name = var44 == NULL ? "null" : var44->type->name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "MClassType", var_class_name); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_compiler, 1871); +fatal_exit(1); +} +{ +{ /* Inline model#MClassType#mclass (var44) on */ +var52 = var44->attrs[COLOR_nit__model__MClassType___mclass].val; /* _mclass on */ +if (unlikely(var52 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1058); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1138); +fatal_exit(1); } -var14 = var16; -RET_LABEL15:(void)0; +var50 = var52; +RET_LABEL51:(void)0; } } { -var17 = nit___nit__MClass___nit__model_base__MEntity__c_name(var14); +{ /* Inline model#MClass#kind (var50) on */ +var55 = var50->attrs[COLOR_nit__model__MClass___kind].val; /* _kind on */ +if (unlikely(var55 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _kind"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 436); +fatal_exit(1); +} +var53 = var55; +RET_LABEL54:(void)0; +} } -var18 = NEW_standard__Array(&type_standard__Array__standard__Object); -{ /* var18 = array_instance Array[Object] */ -var19 = 2; -var20 = NEW_standard__NativeArray(var19, &type_standard__NativeArray__standard__Object); -((struct instance_standard__NativeArray*)var20)->values[0] = (val*) var10; -((struct instance_standard__NativeArray*)var20)->values[1] = (val*) var17; +var56 = glob_sys; +{ +var57 = nit__model___standard__Sys___extern_kind(var56); +} +{ +{ /* Inline kernel#Object#== (var53,var57) on */ +var_other = var57; { -((void (*)(val* self, val* p0, long p1))(var18->class->vft[COLOR_standard__array__Array__with_native]))(var18, var20, var19) /* with_native on */; +{ /* Inline kernel#Object#is_same_instance (var53,var_other) on */ +var62 = var53 == var_other; +var60 = var62; +goto RET_LABEL61; +RET_LABEL61:(void)0; } } +var58 = var60; +goto RET_LABEL59; +RET_LABEL59:(void)0; +} +} +var39 = var58; +} else { +var39 = var_; +} +var_63 = var39; +if (var39){ { -var21 = ((val* (*)(val* self))(var18->class->vft[COLOR_standard__string__Object__to_s]))(var18) /* to_s on */; +{ /* Inline abstract_compiler#RuntimeVariable#mtype (var_value) on */ +var66 = var_value->attrs[COLOR_nit__abstract_compiler__RuntimeVariable___mtype].val; /* _mtype on */ +if (unlikely(var66 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1784); +fatal_exit(1); +} +var64 = var66; +RET_LABEL65:(void)0; +} +} +/* isa MClassType */ +cltype68 = type_nit__MClassType.color; +idtype69 = type_nit__MClassType.id; +if(cltype68 >= var64->type->table_size) { +var67 = 0; +} else { +var67 = var64->type->type_table[cltype68] == idtype69; +} +if (unlikely(!var67)) { +var_class_name70 = var64 == NULL ? "null" : var64->type->name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "MClassType", var_class_name70); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_compiler, 1872); +fatal_exit(1); } { -nit___nit__AbstractCompilerVisitor___require_declaration(self, var21); /* Direct call abstract_compiler#AbstractCompilerVisitor#require_declaration on */ +var71 = nit___nit__MType___nit__model_base__MEntity__name(var64); } -/* isa MGenericType */ -cltype = type_nit__MGenericType.color; -idtype = type_nit__MGenericType.id; -if(cltype >= var_mtype->type->table_size) { -var22 = 0; +if (likely(varonce72!=NULL)) { +var73 = varonce72; } else { -var22 = var_mtype->type->type_table[cltype] == idtype; +var74 = "NativeString"; +var75 = standard___standard__NativeString___to_s_with_length(var74, 12l); +var73 = var75; +varonce72 = var73; } -if (unlikely(!var22)) { -PRINT_ERROR("Runtime error: %s", "Assert failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_compiler, 1722); -show_backtrace(1); +{ +{ /* Inline kernel#Object#!= (var71,var73) on */ +var_other78 = var73; +{ +var79 = ((short int(*)(val* self, val* p0))(var71->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var71, var_other78); /* == on */ } +var80 = !var79; +var76 = var80; +goto RET_LABEL77; +RET_LABEL77:(void)0; +} +} +var38 = var76; +} else { +var38 = var_63; +} +if (var38){ +if (unlikely(varonce81==NULL)) { +var82 = NEW_standard__NativeArray(4l, &type_standard__NativeArray__standard__String); +if (likely(varonce83!=NULL)) { +var84 = varonce83; +} else { +var85 = " = \""; +var86 = standard___standard__NativeString___to_s_with_length(var85, 4l); +var84 = var86; +varonce83 = var84; +} +((struct instance_standard__NativeArray*)var82)->values[1]=var84; +if (likely(varonce87!=NULL)) { +var88 = varonce87; +} else { +var89 = "\";"; +var90 = standard___standard__NativeString___to_s_with_length(var89, 2l); +var88 = var90; +varonce87 = var88; +} +((struct instance_standard__NativeArray*)var82)->values[3]=var88; +} else { +var82 = varonce81; +varonce81 = NULL; +} +((struct instance_standard__NativeArray*)var82)->values[0]=var_res; { -{ /* Inline abstract_compiler#AbstractCompilerVisitor#compiler (self) on */ -var25 = self->attrs[COLOR_nit__abstract_compiler__AbstractCompilerVisitor___compiler].val; /* _compiler on */ -if (unlikely(var25 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _compiler"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1059); -show_backtrace(1); +{ /* Inline abstract_compiler#RuntimeVariable#mtype (var_value) on */ +var93 = var_value->attrs[COLOR_nit__abstract_compiler__RuntimeVariable___mtype].val; /* _mtype on */ +if (unlikely(var93 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1784); +fatal_exit(1); } -var23 = var25; -RET_LABEL24:(void)0; +var91 = var93; +RET_LABEL92:(void)0; +} +} +/* isa MClassType */ +cltype95 = type_nit__MClassType.color; +idtype96 = type_nit__MClassType.id; +if(cltype95 >= var91->type->table_size) { +var94 = 0; +} else { +var94 = var91->type->type_table[cltype95] == idtype96; +} +if (unlikely(!var94)) { +var_class_name97 = var91 == NULL ? "null" : var91->type->name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "MClassType", var_class_name97); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_compiler, 1873); +fatal_exit(1); +} +{ +{ /* Inline model#MClassType#mclass (var91) on */ +var100 = var91->attrs[COLOR_nit__model__MClassType___mclass].val; /* _mclass on */ +if (unlikely(var100 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1138); +fatal_exit(1); +} +var98 = var100; +RET_LABEL99:(void)0; } } -var_compiler = var23; { -{ /* Inline model#MGenericType#need_anchor (var_mtype) on */ -var28 = var_mtype->attrs[COLOR_nit__model__MGenericType___need_anchor].s; /* _need_anchor on */ -var26 = var28; -RET_LABEL27:(void)0; -} +var101 = ((val*(*)(val* self))(var98->class->vft[COLOR_standard__string__Object__to_s]))(var98); /* to_s on */ +} +((struct instance_standard__NativeArray*)var82)->values[2]=var101; +{ +var102 = ((val*(*)(val* self))(var82->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var82); /* native_to_s on */ +} +varonce81 = var82; +{ +nit___nit__AbstractCompilerVisitor___add(self, var102); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on */ +} +} else { +if (unlikely(varonce103==NULL)) { +var104 = NEW_standard__NativeArray(2l, &type_standard__NativeArray__standard__String); +if (likely(varonce105!=NULL)) { +var106 = varonce105; +} else { +var107 = "type_"; +var108 = standard___standard__NativeString___to_s_with_length(var107, 5l); +var106 = var108; +varonce105 = var106; +} +((struct instance_standard__NativeArray*)var104)->values[0]=var106; +} else { +var104 = varonce103; +varonce103 = NULL; +} +{ +{ /* Inline abstract_compiler#RuntimeVariable#mtype (var_value) on */ +var111 = var_value->attrs[COLOR_nit__abstract_compiler__RuntimeVariable___mtype].val; /* _mtype on */ +if (unlikely(var111 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1784); +fatal_exit(1); +} +var109 = var111; +RET_LABEL110:(void)0; +} +} +{ +var112 = ((val*(*)(val* self))(var109->class->vft[COLOR_nit__model_base__MEntity__c_name]))(var109); /* c_name on */ +} +((struct instance_standard__NativeArray*)var104)->values[1]=var112; +{ +var113 = ((val*(*)(val* self))(var104->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var104); /* native_to_s on */ +} +varonce103 = var104; +{ +nit___nit__AbstractCompilerVisitor___require_declaration(self, var113); /* Direct call abstract_compiler#AbstractCompilerVisitor#require_declaration on */ +} +if (unlikely(varonce114==NULL)) { +var115 = NEW_standard__NativeArray(4l, &type_standard__NativeArray__standard__String); +if (likely(varonce116!=NULL)) { +var117 = varonce116; +} else { +var118 = " = type_"; +var119 = standard___standard__NativeString___to_s_with_length(var118, 8l); +var117 = var119; +varonce116 = var117; +} +((struct instance_standard__NativeArray*)var115)->values[1]=var117; +if (likely(varonce120!=NULL)) { +var121 = varonce120; +} else { +var122 = ".name;"; +var123 = standard___standard__NativeString___to_s_with_length(var122, 6l); +var121 = var123; +varonce120 = var121; +} +((struct instance_standard__NativeArray*)var115)->values[3]=var121; +} else { +var115 = varonce114; +varonce114 = NULL; +} +((struct instance_standard__NativeArray*)var115)->values[0]=var_res; +{ +{ /* Inline abstract_compiler#RuntimeVariable#mtype (var_value) on */ +var126 = var_value->attrs[COLOR_nit__abstract_compiler__RuntimeVariable___mtype].val; /* _mtype on */ +if (unlikely(var126 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1784); +fatal_exit(1); +} +var124 = var126; +RET_LABEL125:(void)0; +} +} +{ +var127 = ((val*(*)(val* self))(var124->class->vft[COLOR_nit__model_base__MEntity__c_name]))(var124); /* c_name on */ +} +((struct instance_standard__NativeArray*)var115)->values[2]=var127; +{ +var128 = ((val*(*)(val* self))(var115->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var115); /* native_to_s on */ +} +varonce114 = var115; +{ +nit___nit__AbstractCompilerVisitor___add(self, var128); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on */ +} +} +} +var = var_res; +goto RET_LABEL; +RET_LABEL:; +return var; +} +/* method separate_compiler#SeparateCompilerVisitor#equal_test for (self: SeparateCompilerVisitor, RuntimeVariable, RuntimeVariable): RuntimeVariable */ +val* nit___nit__SeparateCompilerVisitor___nit__abstract_compiler__AbstractCompilerVisitor__equal_test(val* self, val* p0, val* p1) { +val* var /* : RuntimeVariable */; +val* var_value1 /* var value1: RuntimeVariable */; +val* var_value2 /* var value2: RuntimeVariable */; +val* var1 /* : MClassType */; +val* var2 /* : RuntimeVariable */; +val* var_res /* var res: RuntimeVariable */; +short int var3 /* : Bool */; +val* var4 /* : MType */; +val* var6 /* : MType */; +short int var7 /* : Bool */; +short int var_ /* var : Bool */; +val* var8 /* : MType */; +val* var10 /* : MType */; +short int var11 /* : Bool */; +short int var12 /* : Bool */; +val* var_tmp /* var tmp: RuntimeVariable */; +val* var13 /* : MType */; +val* var15 /* : MType */; +short int var16 /* : Bool */; +val* var17 /* : MType */; +val* var19 /* : MType */; +val* var20 /* : MType */; +val* var22 /* : MType */; +short int var23 /* : Bool */; +val* var_other /* var other: nullable Object */; +short int var25 /* : Bool */; +short int var27 /* : Bool */; +val* var28 /* : NativeArray[String] */; +static val* varonce; +static val* varonce29; +val* var30 /* : String */; +char* var31 /* : NativeString */; +val* var32 /* : FlatString */; +static val* varonce33; +val* var34 /* : String */; +char* var35 /* : NativeString */; +val* var36 /* : FlatString */; +static val* varonce37; +val* var38 /* : String */; +char* var39 /* : NativeString */; +val* var40 /* : FlatString */; +val* var41 /* : String */; +val* var42 /* : String */; +val* var43 /* : String */; +val* var44 /* : String */; +val* var45 /* : MType */; +val* var47 /* : MType */; +short int var48 /* : Bool */; +val* var50 /* : NativeArray[String] */; +static val* varonce49; +static val* varonce51; +val* var52 /* : String */; +char* var53 /* : NativeString */; +val* var54 /* : FlatString */; +static val* varonce55; +val* var56 /* : String */; +char* var57 /* : NativeString */; +val* var58 /* : FlatString */; +static val* varonce59; +val* var60 /* : String */; +char* var61 /* : NativeString */; +val* var62 /* : FlatString */; +val* var63 /* : String */; +val* var64 /* : MType */; +val* var66 /* : MType */; +val* var67 /* : String */; +val* var68 /* : MType */; +val* var70 /* : MType */; +val* var71 /* : String */; +val* var72 /* : String */; +val* var73 /* : MType */; +val* var75 /* : MType */; +short int var76 /* : Bool */; +short int var78 /* : Bool */; +val* var80 /* : NativeArray[String] */; +static val* varonce79; +static val* varonce81; +val* var82 /* : String */; +char* var83 /* : NativeString */; +val* var84 /* : FlatString */; +static val* varonce85; +val* var86 /* : String */; +char* var87 /* : NativeString */; +val* var88 /* : FlatString */; +static val* varonce89; +val* var90 /* : String */; +char* var91 /* : NativeString */; +val* var92 /* : FlatString */; +static val* varonce93; +val* var94 /* : String */; +char* var95 /* : NativeString */; +val* var96 /* : FlatString */; +val* var97 /* : String */; +val* var98 /* : String */; +val* var99 /* : MType */; +val* var101 /* : MType */; +val* var102 /* : RuntimeVariable */; +val* var103 /* : String */; +val* var104 /* : String */; +val* var105 /* : String */; +val* var106 /* : MType */; +val* var108 /* : MType */; +short int var109 /* : Bool */; +int cltype; +int idtype; +const char* var_class_name; +val* var_mtype1 /* var mtype1: MClassType */; +val* var111 /* : NativeArray[String] */; +static val* varonce110; +static val* varonce112; +val* var113 /* : String */; +char* var114 /* : NativeString */; +val* var115 /* : FlatString */; +val* var116 /* : String */; +val* var117 /* : String */; +val* var119 /* : NativeArray[String] */; +static val* varonce118; +static val* varonce120; +val* var121 /* : String */; +char* var122 /* : NativeString */; +val* var123 /* : FlatString */; +static val* varonce124; +val* var125 /* : String */; +char* var126 /* : NativeString */; +val* var127 /* : FlatString */; +static val* varonce128; +val* var129 /* : String */; +char* var130 /* : NativeString */; +val* var131 /* : FlatString */; +static val* varonce132; +val* var133 /* : String */; +char* var134 /* : NativeString */; +val* var135 /* : FlatString */; +val* var136 /* : String */; +val* var137 /* : String */; +val* var138 /* : String */; +val* var139 /* : String */; +val* var140 /* : String */; +val* var142 /* : NativeArray[String] */; +static val* varonce141; +static val* varonce143; +val* var144 /* : String */; +char* var145 /* : NativeString */; +val* var146 /* : FlatString */; +static val* varonce147; +val* var148 /* : String */; +char* var149 /* : NativeString */; +val* var150 /* : FlatString */; +val* var151 /* : String */; +val* var152 /* : String */; +val* var154 /* : NativeArray[String] */; +static val* varonce153; +static val* varonce155; +val* var156 /* : String */; +char* var157 /* : NativeString */; +val* var158 /* : FlatString */; +static val* varonce159; +val* var160 /* : String */; +char* var161 /* : NativeString */; +val* var162 /* : FlatString */; +static val* varonce163; +val* var164 /* : String */; +char* var165 /* : NativeString */; +val* var166 /* : FlatString */; +val* var167 /* : String */; +val* var168 /* : MType */; +val* var170 /* : MType */; +val* var171 /* : RuntimeVariable */; +val* var172 /* : String */; +val* var173 /* : String */; +val* var174 /* : String */; +static val* varonce175; +val* var176 /* : String */; +char* var177 /* : NativeString */; +val* var178 /* : FlatString */; +short int var_maybe_null /* var maybe_null: Bool */; +val* var179 /* : Array[String] */; +val* var_test /* var test: Array[String] */; +val* var180 /* : MType */; +val* var182 /* : MType */; +val* var_t1 /* var t1: MType */; +short int var183 /* : Bool */; +int cltype184; +int idtype185; +val* var187 /* : NativeArray[String] */; +static val* varonce186; +static val* varonce188; +val* var189 /* : String */; +char* var190 /* : NativeString */; +val* var191 /* : FlatString */; +val* var192 /* : String */; +val* var193 /* : String */; +val* var194 /* : MType */; +val* var196 /* : MType */; +val* var197 /* : MType */; +val* var199 /* : MType */; +val* var_t2 /* var t2: MType */; +short int var200 /* : Bool */; +int cltype201; +int idtype202; +val* var204 /* : NativeArray[String] */; +static val* varonce203; +static val* varonce205; +val* var206 /* : String */; +char* var207 /* : NativeString */; +val* var208 /* : FlatString */; +val* var209 /* : String */; +val* var210 /* : String */; +val* var211 /* : MType */; +val* var213 /* : MType */; +short int var_incompatible /* var incompatible: Bool */; +short int var214 /* : Bool */; +val* var_primitive /* var primitive: nullable Object */; +short int var215 /* : Bool */; +short int var217 /* : Bool */; +short int var219 /* : Bool */; +short int var220 /* : Bool */; +short int var221 /* : Bool */; +short int var222 /* : Bool */; +short int var224 /* : Bool */; +val* var226 /* : NativeArray[String] */; +static val* varonce225; +static val* varonce227; +val* var228 /* : String */; +char* var229 /* : NativeString */; +val* var230 /* : FlatString */; +static val* varonce231; +val* var232 /* : String */; +char* var233 /* : NativeString */; +val* var234 /* : FlatString */; +static val* varonce235; +val* var236 /* : String */; +char* var237 /* : NativeString */; +val* var238 /* : FlatString */; +val* var239 /* : String */; +val* var240 /* : String */; +val* var241 /* : String */; +val* var242 /* : String */; +val* var243 /* : AbstractCompiler */; +val* var245 /* : AbstractCompiler */; +val* var246 /* : ModelBuilder */; +val* var248 /* : ModelBuilder */; +val* var249 /* : ToolContext */; +val* var251 /* : ToolContext */; +val* var252 /* : OptionBool */; +val* var254 /* : OptionBool */; +val* var255 /* : nullable Object */; +val* var257 /* : nullable Object */; +short int var258 /* : Bool */; +short int var259 /* : Bool */; +val* var261 /* : NativeArray[String] */; +static val* varonce260; +static val* varonce262; +val* var263 /* : String */; +char* var264 /* : NativeString */; +val* var265 /* : FlatString */; +static val* varonce266; +val* var267 /* : String */; +char* var268 /* : NativeString */; +val* var269 /* : FlatString */; +val* var270 /* : String */; +val* var271 /* : String */; +val* var273 /* : NativeArray[String] */; +static val* varonce272; +static val* varonce274; +val* var275 /* : String */; +char* var276 /* : NativeString */; +val* var277 /* : FlatString */; +static val* varonce278; +val* var279 /* : String */; +char* var280 /* : NativeString */; +val* var281 /* : FlatString */; +val* var282 /* : String */; +val* var283 /* : String */; +val* var284 /* : String */; +short int var285 /* : Bool */; +short int var286 /* : Bool */; +short int var287 /* : Bool */; +short int var289 /* : Bool */; +val* var291 /* : NativeArray[String] */; +static val* varonce290; +static val* varonce292; +val* var293 /* : String */; +char* var294 /* : NativeString */; +val* var295 /* : FlatString */; +static val* varonce296; +val* var297 /* : String */; +char* var298 /* : NativeString */; +val* var299 /* : FlatString */; +static val* varonce300; +val* var301 /* : String */; +char* var302 /* : NativeString */; +val* var303 /* : FlatString */; +val* var304 /* : String */; +val* var305 /* : String */; +val* var306 /* : String */; +val* var307 /* : String */; +val* var308 /* : AbstractCompiler */; +val* var310 /* : AbstractCompiler */; +val* var311 /* : ModelBuilder */; +val* var313 /* : ModelBuilder */; +val* var314 /* : ToolContext */; +val* var316 /* : ToolContext */; +val* var317 /* : OptionBool */; +val* var319 /* : OptionBool */; +val* var320 /* : nullable Object */; +val* var322 /* : nullable Object */; +short int var323 /* : Bool */; +short int var324 /* : Bool */; +val* var326 /* : NativeArray[String] */; +static val* varonce325; +static val* varonce327; +val* var328 /* : String */; +char* var329 /* : NativeString */; +val* var330 /* : FlatString */; +static val* varonce331; +val* var332 /* : String */; +char* var333 /* : NativeString */; +val* var334 /* : FlatString */; +val* var335 /* : String */; +val* var336 /* : String */; +val* var338 /* : NativeArray[String] */; +static val* varonce337; +static val* varonce339; +val* var340 /* : String */; +char* var341 /* : NativeString */; +val* var342 /* : FlatString */; +static val* varonce343; +val* var344 /* : String */; +char* var345 /* : NativeString */; +val* var346 /* : FlatString */; +val* var347 /* : String */; +val* var348 /* : String */; +val* var349 /* : String */; +val* var351 /* : NativeArray[String] */; +static val* varonce350; +static val* varonce352; +val* var353 /* : String */; +char* var354 /* : NativeString */; +val* var355 /* : FlatString */; +static val* varonce356; +val* var357 /* : String */; +char* var358 /* : NativeString */; +val* var359 /* : FlatString */; +static val* varonce360; +val* var361 /* : String */; +char* var362 /* : NativeString */; +val* var363 /* : FlatString */; +static val* varonce364; +val* var365 /* : String */; +char* var366 /* : NativeString */; +val* var367 /* : FlatString */; +static val* varonce368; +val* var369 /* : String */; +char* var370 /* : NativeString */; +val* var371 /* : FlatString */; +val* var372 /* : String */; +val* var373 /* : String */; +val* var374 /* : String */; +val* var375 /* : String */; +val* var376 /* : String */; +val* var377 /* : String */; +val* var379 /* : NativeArray[String] */; +static val* varonce378; +static val* varonce380; +val* var381 /* : String */; +char* var382 /* : NativeString */; +val* var383 /* : FlatString */; +static val* varonce384; +val* var385 /* : String */; +char* var386 /* : NativeString */; +val* var387 /* : FlatString */; +static val* varonce388; +val* var389 /* : String */; +char* var390 /* : NativeString */; +val* var391 /* : FlatString */; +val* var392 /* : String */; +val* var393 /* : String */; +val* var394 /* : String */; +val* var395 /* : String */; +short int var396 /* : Bool */; +short int var397 /* : Bool */; +val* var_other399 /* var other: nullable Object */; +short int var400 /* : Bool */; +short int var401 /* : Bool */; +short int var402 /* : Bool */; +short int var404 /* : Bool */; +val* var406 /* : NativeArray[String] */; +static val* varonce405; +static val* varonce407; +val* var408 /* : String */; +char* var409 /* : NativeString */; +val* var410 /* : FlatString */; +static val* varonce411; +val* var412 /* : String */; +char* var413 /* : NativeString */; +val* var414 /* : FlatString */; +static val* varonce415; +val* var416 /* : String */; +char* var417 /* : NativeString */; +val* var418 /* : FlatString */; +val* var419 /* : String */; +val* var420 /* : String */; +val* var421 /* : String */; +val* var422 /* : String */; +val* var424 /* : NativeArray[String] */; +static val* varonce423; +static val* varonce425; +val* var426 /* : String */; +char* var427 /* : NativeString */; +val* var428 /* : FlatString */; +static val* varonce429; +val* var430 /* : String */; +char* var431 /* : NativeString */; +val* var432 /* : FlatString */; +static val* varonce433; +val* var434 /* : String */; +char* var435 /* : NativeString */; +val* var436 /* : FlatString */; +static val* varonce437; +val* var438 /* : String */; +char* var439 /* : NativeString */; +val* var440 /* : FlatString */; +static val* varonce441; +val* var442 /* : String */; +char* var443 /* : NativeString */; +val* var444 /* : FlatString */; +val* var445 /* : String */; +val* var446 /* : String */; +val* var447 /* : String */; +val* var448 /* : String */; +val* var449 /* : String */; +short int var450 /* : Bool */; +short int var451 /* : Bool */; +short int var_452 /* var : Bool */; +short int var453 /* : Bool */; +val* var454 /* : AbstractCompiler */; +val* var456 /* : AbstractCompiler */; +val* var457 /* : ModelBuilder */; +val* var459 /* : ModelBuilder */; +val* var460 /* : ToolContext */; +val* var462 /* : ToolContext */; +val* var463 /* : OptionBool */; +val* var465 /* : OptionBool */; +val* var466 /* : nullable Object */; +val* var468 /* : nullable Object */; +short int var469 /* : Bool */; +short int var470 /* : Bool */; +val* var472 /* : NativeArray[String] */; +static val* varonce471; +static val* varonce473; +val* var474 /* : String */; +char* var475 /* : NativeString */; +val* var476 /* : FlatString */; +static val* varonce477; +val* var478 /* : String */; +char* var479 /* : NativeString */; +val* var480 /* : FlatString */; +static val* varonce481; +val* var482 /* : String */; +char* var483 /* : NativeString */; +val* var484 /* : FlatString */; +val* var485 /* : String */; +val* var486 /* : String */; +val* var487 /* : String */; +val* var489 /* : NativeArray[String] */; +static val* varonce488; +static val* varonce490; +val* var491 /* : String */; +char* var492 /* : NativeString */; +val* var493 /* : FlatString */; +static val* varonce494; +val* var495 /* : String */; +char* var496 /* : NativeString */; +val* var497 /* : FlatString */; +val* var498 /* : String */; +val* var499 /* : String */; +val* var500 /* : String */; +val* var501 /* : Array[String] */; +val* var_s /* var s: Array[String] */; +val* var502 /* : AbstractCompiler */; +val* var504 /* : AbstractCompiler */; +val* var505 /* : HashMap[MClass, Int] */; +val* var507 /* : HashMap[MClass, Int] */; +val* var_508 /* var : HashMap[MClass, Int] */; +val* var509 /* : HashMapIterator[nullable Object, nullable Object] */; +val* var_510 /* var : HashMapIterator[MClass, Int] */; +short int var511 /* : Bool */; +val* var512 /* : nullable Object */; +val* var_t /* var t: MClass */; +val* var513 /* : nullable Object */; +long var514 /* : Int */; +long var_v /* var v: Int */; +val* var515 /* : MClassType */; +val* var517 /* : MClassType */; +short int var518 /* : Bool */; +short int var520 /* : Bool */; +val* var522 /* : NativeArray[String] */; +static val* varonce521; +static val* varonce523; +val* var524 /* : String */; +char* var525 /* : NativeString */; +val* var526 /* : FlatString */; +static val* varonce527; +val* var528 /* : String */; +char* var529 /* : NativeString */; +val* var530 /* : FlatString */; +static val* varonce531; +val* var532 /* : String */; +char* var533 /* : NativeString */; +val* var534 /* : FlatString */; +static val* varonce535; +val* var536 /* : String */; +char* var537 /* : NativeString */; +val* var538 /* : FlatString */; +static val* varonce539; +val* var540 /* : String */; +char* var541 /* : NativeString */; +val* var542 /* : FlatString */; +static val* varonce543; +val* var544 /* : String */; +char* var545 /* : NativeString */; +val* var546 /* : FlatString */; +static val* varonce547; +val* var548 /* : String */; +char* var549 /* : NativeString */; +val* var550 /* : FlatString */; +val* var551 /* : String */; +val* var552 /* : String */; +val* var553 /* : String */; +val* var554 /* : String */; +val* var555 /* : String */; +val* var556 /* : String */; +val* var557 /* : String */; +short int var560 /* : Bool */; +val* var562 /* : NativeArray[String] */; +static val* varonce561; +static val* varonce563; +val* var564 /* : String */; +char* var565 /* : NativeString */; +val* var566 /* : FlatString */; +static val* varonce567; +val* var568 /* : String */; +char* var569 /* : NativeString */; +val* var570 /* : FlatString */; +static val* varonce571; +val* var572 /* : String */; +char* var573 /* : NativeString */; +val* var574 /* : FlatString */; +val* var575 /* : String */; +val* var576 /* : String */; +val* var577 /* : String */; +val* var578 /* : String */; +val* var580 /* : NativeArray[String] */; +static val* varonce579; +static val* varonce581; +val* var582 /* : String */; +char* var583 /* : NativeString */; +val* var584 /* : FlatString */; +static val* varonce585; +val* var586 /* : String */; +char* var587 /* : NativeString */; +val* var588 /* : FlatString */; +static val* varonce589; +val* var590 /* : String */; +char* var591 /* : NativeString */; +val* var592 /* : FlatString */; +val* var593 /* : String */; +val* var594 /* : String */; +val* var596 /* : NativeArray[String] */; +static val* varonce595; +static val* varonce597; +val* var598 /* : String */; +char* var599 /* : NativeString */; +val* var600 /* : FlatString */; +static val* varonce601; +val* var602 /* : String */; +char* var603 /* : NativeString */; +val* var604 /* : FlatString */; +static val* varonce605; +val* var606 /* : String */; +char* var607 /* : NativeString */; +val* var608 /* : FlatString */; +val* var609 /* : String */; +val* var610 /* : String */; +val* var611 /* : String */; +val* var612 /* : String */; +val* var614 /* : NativeArray[String] */; +static val* varonce613; +static val* varonce615; +val* var616 /* : String */; +char* var617 /* : NativeString */; +val* var618 /* : FlatString */; +static val* varonce619; +val* var620 /* : String */; +char* var621 /* : NativeString */; +val* var622 /* : FlatString */; +static val* varonce623; +val* var624 /* : String */; +char* var625 /* : NativeString */; +val* var626 /* : FlatString */; +static val* varonce627; +val* var628 /* : String */; +char* var629 /* : NativeString */; +val* var630 /* : FlatString */; +val* var631 /* : String */; +val* var632 /* : String */; +val* var633 /* : String */; +static val* varonce634; +val* var635 /* : String */; +char* var636 /* : NativeString */; +val* var637 /* : FlatString */; +val* var638 /* : String */; +val* var639 /* : String */; +var_value1 = p0; +var_value2 = p1; +{ +var1 = nit___nit__AbstractCompilerVisitor___bool_type(self); } -if (var26){ { -nit___nit__SeparateCompilerVisitor___hardening_live_open_type(self, var_mtype); /* Direct call separate_compiler#SeparateCompilerVisitor#hardening_live_open_type on */ +var2 = nit___nit__AbstractCompilerVisitor___new_var(self, var1); } +var_res = var2; { -{ /* Inline abstract_compiler#AbstractCompilerVisitor#frame (self) on */ -var31 = self->attrs[COLOR_nit__abstract_compiler__AbstractCompilerVisitor___frame].val; /* _frame on */ -var29 = var31; -RET_LABEL30:(void)0; -} -} -if (var29 == NULL) { -PRINT_ERROR("Runtime error: %s", "Receiver is null"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_compiler, 1726); -show_backtrace(1); -} else { -{ /* Inline abstract_compiler#StaticFrame#mpropdef (var29) on */ -if (unlikely(var29 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Receiver is null"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1724); -show_backtrace(1); -} -var34 = var29->attrs[COLOR_nit__abstract_compiler__StaticFrame___mpropdef].val; /* _mpropdef on */ -if (unlikely(var34 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mpropdef"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1724); -show_backtrace(1); +{ /* Inline abstract_compiler#RuntimeVariable#mtype (var_value2) on */ +var6 = var_value2->attrs[COLOR_nit__abstract_compiler__RuntimeVariable___mtype].val; /* _mtype on */ +if (unlikely(var6 == 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; +var4 = var6; +RET_LABEL5:(void)0; } } { -{ /* Inline model#MPropDef#mclassdef (var32) on */ -var37 = var32->attrs[COLOR_nit__model__MPropDef___mclassdef].val; /* _mclassdef on */ -if (unlikely(var37 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdef"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 2010); -show_backtrace(1); +var7 = ((short int(*)(val* self))(var4->class->vft[COLOR_nit__abstract_compiler__MType__is_c_primitive]))(var4); /* is_c_primitive on */ } -var35 = var37; -RET_LABEL36:(void)0; +var_ = var7; +if (var7){ +{ +{ /* Inline abstract_compiler#RuntimeVariable#mtype (var_value1) on */ +var10 = var_value1->attrs[COLOR_nit__abstract_compiler__RuntimeVariable___mtype].val; /* _mtype on */ +if (unlikely(var10 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1784); +fatal_exit(1); } +var8 = var10; +RET_LABEL9:(void)0; } -{ -nit___nit__SeparateCompilerVisitor___link_unresolved_type(self, var35, var_mtype); /* Direct call separate_compiler#SeparateCompilerVisitor#link_unresolved_type on */ } { -{ /* Inline abstract_compiler#AbstractCompilerVisitor#frame (self) on */ -var40 = self->attrs[COLOR_nit__abstract_compiler__AbstractCompilerVisitor___frame].val; /* _frame on */ -var38 = var40; -RET_LABEL39:(void)0; -} +var11 = ((short int(*)(val* self))(var8->class->vft[COLOR_nit__abstract_compiler__MType__is_c_primitive]))(var8); /* is_c_primitive on */ } -if (var38 == NULL) { -PRINT_ERROR("Runtime error: %s", "Receiver is null"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_compiler, 1727); -show_backtrace(1); +var12 = !var11; +var3 = var12; } else { -{ /* Inline abstract_compiler#StaticFrame#arguments (var38) on */ -if (unlikely(var38 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Receiver is null"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1731); -show_backtrace(1); -} -var43 = var38->attrs[COLOR_nit__abstract_compiler__StaticFrame___arguments].val; /* _arguments on */ -if (unlikely(var43 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _arguments"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1731); -show_backtrace(1); -} -var41 = var43; -RET_LABEL42:(void)0; +var3 = var_; } +if (var3){ +var_tmp = var_value1; +var_value1 = var_value2; +var_value2 = var_tmp; +} else { } { -var44 = standard___standard__SequenceRead___Collection__first(var41); +{ /* Inline abstract_compiler#RuntimeVariable#mtype (var_value1) on */ +var15 = var_value1->attrs[COLOR_nit__abstract_compiler__RuntimeVariable___mtype].val; /* _mtype on */ +if (unlikely(var15 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1784); +fatal_exit(1); } -var_recv = var44; -{ -var45 = nit___nit__SeparateCompilerVisitor___type_info(self, var_recv); +var13 = var15; +RET_LABEL14:(void)0; } -var_recv_type_info = var45; -{ -var46 = nit__separate_compiler___MEntity___const_color(var_mtype); } { -nit___nit__AbstractCompilerVisitor___require_declaration(self, var46); /* Direct call abstract_compiler#AbstractCompilerVisitor#require_declaration on */ -} -if (varonce47) { -var48 = varonce47; -} else { -var49 = "NEW_"; -var50 = 4; -var51 = standard___standard__NativeString___to_s_with_length(var49, var50); -var48 = var51; -varonce47 = var48; +var16 = ((short int(*)(val* self))(var13->class->vft[COLOR_nit__abstract_compiler__MType__is_c_primitive]))(var13); /* is_c_primitive on */ } +if (var16){ { -{ /* Inline model#MClassType#mclass (var_mtype) on */ -var54 = var_mtype->attrs[COLOR_nit__model__MClassType___mclass].val; /* _mclass on */ -if (unlikely(var54 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1058); -show_backtrace(1); +{ /* Inline abstract_compiler#RuntimeVariable#mtype (var_value2) on */ +var19 = var_value2->attrs[COLOR_nit__abstract_compiler__RuntimeVariable___mtype].val; /* _mtype on */ +if (unlikely(var19 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1784); +fatal_exit(1); } -var52 = var54; -RET_LABEL53:(void)0; +var17 = var19; +RET_LABEL18:(void)0; } } { -var55 = nit___nit__MClass___nit__model_base__MEntity__c_name(var52); -} -if (varonce56) { -var57 = varonce56; -} else { -var58 = "("; -var59 = 1; -var60 = standard___standard__NativeString___to_s_with_length(var58, var59); -var57 = var60; -varonce56 = var57; +{ /* Inline abstract_compiler#RuntimeVariable#mtype (var_value1) on */ +var22 = var_value1->attrs[COLOR_nit__abstract_compiler__RuntimeVariable___mtype].val; /* _mtype on */ +if (unlikely(var22 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1784); +fatal_exit(1); } -if (varonce61) { -var62 = varonce61; -} else { -var63 = ", "; -var64 = 2; -var65 = standard___standard__NativeString___to_s_with_length(var63, var64); -var62 = var65; -varonce61 = var62; +var20 = var22; +RET_LABEL21:(void)0; } -if (varonce66) { -var67 = varonce66; -} else { -var68 = "->resolution_table->types["; -var69 = 26; -var70 = standard___standard__NativeString___to_s_with_length(var68, var69); -var67 = var70; -varonce66 = var67; } { -var71 = nit__separate_compiler___MEntity___const_color(var_mtype); -} -if (varonce72) { -var73 = varonce72; -} else { -var74 = "])"; -var75 = 2; -var76 = standard___standard__NativeString___to_s_with_length(var74, var75); -var73 = var76; -varonce72 = var73; -} -var77 = NEW_standard__Array(&type_standard__Array__standard__Object); -{ /* var77 = array_instance Array[Object] */ -var78 = 9; -var79 = NEW_standard__NativeArray(var78, &type_standard__NativeArray__standard__Object); -((struct instance_standard__NativeArray*)var79)->values[0] = (val*) var48; -((struct instance_standard__NativeArray*)var79)->values[1] = (val*) var55; -((struct instance_standard__NativeArray*)var79)->values[2] = (val*) var57; -((struct instance_standard__NativeArray*)var79)->values[3] = (val*) var_length; -((struct instance_standard__NativeArray*)var79)->values[4] = (val*) var62; -((struct instance_standard__NativeArray*)var79)->values[5] = (val*) var_recv_type_info; -((struct instance_standard__NativeArray*)var79)->values[6] = (val*) var67; -((struct instance_standard__NativeArray*)var79)->values[7] = (val*) var71; -((struct instance_standard__NativeArray*)var79)->values[8] = (val*) var73; +{ /* Inline kernel#Object#== (var17,var20) on */ +var_other = var20; { -((void (*)(val* self, val* p0, long p1))(var77->class->vft[COLOR_standard__array__Array__with_native]))(var77, var79, var78) /* with_native on */; +{ /* Inline kernel#Object#is_same_instance (var17,var_other) on */ +var27 = var17 == var_other; +var25 = var27; +goto RET_LABEL26; +RET_LABEL26:(void)0; } } -{ -var80 = ((val* (*)(val* self))(var77->class->vft[COLOR_standard__string__Object__to_s]))(var77) /* to_s on */; +var23 = var25; +goto RET_LABEL24; +RET_LABEL24:(void)0; } -{ -var81 = nit___nit__AbstractCompilerVisitor___new_expr(self, var80, var_mtype); } -var = var81; -goto RET_LABEL; +if (var23){ +if (unlikely(varonce==NULL)) { +var28 = NEW_standard__NativeArray(6l, &type_standard__NativeArray__standard__String); +if (likely(varonce29!=NULL)) { +var30 = varonce29; } else { +var31 = " = "; +var32 = standard___standard__NativeString___to_s_with_length(var31, 3l); +var30 = var32; +varonce29 = var30; } -{ -{ /* Inline separate_compiler#SeparateCompiler#undead_types (var_compiler) on */ -var84 = var_compiler->attrs[COLOR_nit__separate_compiler__SeparateCompiler___undead_types].val; /* _undead_types on */ -if (unlikely(var84 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _undead_types"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_compiler, 121); -show_backtrace(1); -} -var82 = var84; -RET_LABEL83:(void)0; -} +((struct instance_standard__NativeArray*)var28)->values[1]=var30; +if (likely(varonce33!=NULL)) { +var34 = varonce33; +} else { +var35 = " == "; +var36 = standard___standard__NativeString___to_s_with_length(var35, 4l); +var34 = var36; +varonce33 = var34; } -{ -((void (*)(val* self, val* p0))(var82->class->vft[COLOR_standard__abstract_collection__SimpleCollection__add]))(var82, var_mtype) /* add on */; +((struct instance_standard__NativeArray*)var28)->values[3]=var34; +if (likely(varonce37!=NULL)) { +var38 = varonce37; +} else { +var39 = ";"; +var40 = standard___standard__NativeString___to_s_with_length(var39, 1l); +var38 = var40; +varonce37 = var38; } -if (varonce85) { -var86 = varonce85; +((struct instance_standard__NativeArray*)var28)->values[5]=var38; } else { -var87 = "type_"; -var88 = 5; -var89 = standard___standard__NativeString___to_s_with_length(var87, var88); -var86 = var89; -varonce85 = var86; +var28 = varonce; +varonce = NULL; } { -var90 = nit___nit__MGenericType___nit__model_base__MEntity__c_name(var_mtype); +var41 = ((val*(*)(val* self))(var_res->class->vft[COLOR_standard__string__Object__to_s]))(var_res); /* to_s on */ } -var91 = NEW_standard__Array(&type_standard__Array__standard__Object); -{ /* var91 = array_instance Array[Object] */ -var92 = 2; -var93 = NEW_standard__NativeArray(var92, &type_standard__NativeArray__standard__Object); -((struct instance_standard__NativeArray*)var93)->values[0] = (val*) var86; -((struct instance_standard__NativeArray*)var93)->values[1] = (val*) var90; +((struct instance_standard__NativeArray*)var28)->values[0]=var41; { -((void (*)(val* self, val* p0, long p1))(var91->class->vft[COLOR_standard__array__Array__with_native]))(var91, var93, var92) /* with_native on */; +var42 = ((val*(*)(val* self))(var_value1->class->vft[COLOR_standard__string__Object__to_s]))(var_value1); /* to_s on */ } +((struct instance_standard__NativeArray*)var28)->values[2]=var42; +{ +var43 = ((val*(*)(val* self))(var_value2->class->vft[COLOR_standard__string__Object__to_s]))(var_value2); /* to_s on */ } +((struct instance_standard__NativeArray*)var28)->values[4]=var43; { -var94 = ((val* (*)(val* self))(var91->class->vft[COLOR_standard__string__Object__to_s]))(var91) /* to_s on */; +var44 = ((val*(*)(val* self))(var28->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var28); /* native_to_s on */ } +varonce = var28; { -nit___nit__AbstractCompilerVisitor___require_declaration(self, var94); /* Direct call abstract_compiler#AbstractCompilerVisitor#require_declaration on */ +nit___nit__AbstractCompilerVisitor___add(self, var44); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on */ } -if (varonce95) { -var96 = varonce95; } else { -var97 = "NEW_"; -var98 = 4; -var99 = standard___standard__NativeString___to_s_with_length(var97, var98); -var96 = var99; -varonce95 = var96; -} { -{ /* Inline model#MClassType#mclass (var_mtype) on */ -var102 = var_mtype->attrs[COLOR_nit__model__MClassType___mclass].val; /* _mclass on */ -if (unlikely(var102 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1058); -show_backtrace(1); +{ /* Inline abstract_compiler#RuntimeVariable#mtype (var_value2) on */ +var47 = var_value2->attrs[COLOR_nit__abstract_compiler__RuntimeVariable___mtype].val; /* _mtype on */ +if (unlikely(var47 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1784); +fatal_exit(1); } -var100 = var102; -RET_LABEL101:(void)0; +var45 = var47; +RET_LABEL46:(void)0; } } { -var103 = nit___nit__MClass___nit__model_base__MEntity__c_name(var100); +var48 = ((short int(*)(val* self))(var45->class->vft[COLOR_nit__abstract_compiler__MType__is_c_primitive]))(var45); /* is_c_primitive on */ } -if (varonce104) { -var105 = varonce104; +if (var48){ +if (unlikely(varonce49==NULL)) { +var50 = NEW_standard__NativeArray(6l, &type_standard__NativeArray__standard__String); +if (likely(varonce51!=NULL)) { +var52 = varonce51; } else { -var106 = "("; -var107 = 1; -var108 = standard___standard__NativeString___to_s_with_length(var106, var107); -var105 = var108; -varonce104 = var105; +var53 = " = 0; /* incompatible types "; +var54 = standard___standard__NativeString___to_s_with_length(var53, 28l); +var52 = var54; +varonce51 = var52; } -if (varonce109) { -var110 = varonce109; +((struct instance_standard__NativeArray*)var50)->values[1]=var52; +if (likely(varonce55!=NULL)) { +var56 = varonce55; } else { -var111 = ", &type_"; -var112 = 8; -var113 = standard___standard__NativeString___to_s_with_length(var111, var112); -var110 = var113; -varonce109 = var110; +var57 = " vs. "; +var58 = standard___standard__NativeString___to_s_with_length(var57, 5l); +var56 = var58; +varonce55 = var56; } -{ -var114 = nit___nit__MGenericType___nit__model_base__MEntity__c_name(var_mtype); +((struct instance_standard__NativeArray*)var50)->values[3]=var56; +if (likely(varonce59!=NULL)) { +var60 = varonce59; +} else { +var61 = "*/"; +var62 = standard___standard__NativeString___to_s_with_length(var61, 2l); +var60 = var62; +varonce59 = var60; } -if (varonce115) { -var116 = varonce115; +((struct instance_standard__NativeArray*)var50)->values[5]=var60; } else { -var117 = ")"; -var118 = 1; -var119 = standard___standard__NativeString___to_s_with_length(var117, var118); -var116 = var119; -varonce115 = var116; +var50 = varonce49; +varonce49 = NULL; } -var120 = NEW_standard__Array(&type_standard__Array__standard__Object); -{ /* var120 = array_instance Array[Object] */ -var121 = 7; -var122 = NEW_standard__NativeArray(var121, &type_standard__NativeArray__standard__Object); -((struct instance_standard__NativeArray*)var122)->values[0] = (val*) var96; -((struct instance_standard__NativeArray*)var122)->values[1] = (val*) var103; -((struct instance_standard__NativeArray*)var122)->values[2] = (val*) var105; -((struct instance_standard__NativeArray*)var122)->values[3] = (val*) var_length; -((struct instance_standard__NativeArray*)var122)->values[4] = (val*) var110; -((struct instance_standard__NativeArray*)var122)->values[5] = (val*) var114; -((struct instance_standard__NativeArray*)var122)->values[6] = (val*) var116; { -((void (*)(val* self, val* p0, long p1))(var120->class->vft[COLOR_standard__array__Array__with_native]))(var120, var122, var121) /* with_native on */; -} +var63 = ((val*(*)(val* self))(var_res->class->vft[COLOR_standard__string__Object__to_s]))(var_res); /* to_s on */ } +((struct instance_standard__NativeArray*)var50)->values[0]=var63; { -var123 = ((val* (*)(val* self))(var120->class->vft[COLOR_standard__string__Object__to_s]))(var120) /* to_s on */; +{ /* Inline abstract_compiler#RuntimeVariable#mtype (var_value1) on */ +var66 = var_value1->attrs[COLOR_nit__abstract_compiler__RuntimeVariable___mtype].val; /* _mtype on */ +if (unlikely(var66 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1784); +fatal_exit(1); } -{ -var124 = nit___nit__AbstractCompilerVisitor___new_expr(self, var123, var_mtype); +var64 = var66; +RET_LABEL65:(void)0; } -var = var124; -goto RET_LABEL; -RET_LABEL:; -return var; } -/* method separate_compiler#SeparateCompilerVisitor#native_array_def for (self: SeparateCompilerVisitor, String, nullable MType, Array[RuntimeVariable]) */ -void nit___nit__SeparateCompilerVisitor___nit__abstract_compiler__AbstractCompilerVisitor__native_array_def(val* self, val* p0, val* p1, val* p2) { -val* var_pname /* var pname: String */; -val* var_ret_type /* var ret_type: nullable MType */; -val* var_arguments /* var arguments: Array[RuntimeVariable] */; -val* var /* : nullable Object */; -val* var1 /* : MType */; -val* var3 /* : MType */; -val* var_elttype /* var elttype: MType */; -static val* varonce; -val* var4 /* : String */; -char* var5 /* : NativeString */; -long var6 /* : Int */; -val* var7 /* : FlatString */; -val* var8 /* : MClass */; -val* var_nclass /* var nclass: MClass */; -static val* varonce9; -val* var10 /* : String */; -char* var11 /* : NativeString */; -long var12 /* : Int */; -val* var13 /* : FlatString */; -val* var14 /* : String */; -static val* varonce15; -val* var16 /* : String */; -char* var17 /* : NativeString */; -long var18 /* : Int */; -val* var19 /* : FlatString */; -long var20 /* : Int */; -val* var21 /* : nullable Object */; -static val* varonce22; -val* var23 /* : String */; -char* var24 /* : NativeString */; -long var25 /* : Int */; -val* var26 /* : FlatString */; -val* var27 /* : Array[Object] */; -long var28 /* : Int */; -val* var29 /* : NativeArray[Object] */; -val* var30 /* : String */; -val* var_recv /* var recv: String */; -static val* varonce31; -val* var32 /* : String */; -char* var33 /* : NativeString */; -long var34 /* : Int */; -val* var35 /* : FlatString */; -short int var36 /* : Bool */; -static val* varonce37; -val* var38 /* : String */; -char* var39 /* : NativeString */; -long var40 /* : Int */; -val* var41 /* : FlatString */; -long var42 /* : Int */; -val* var43 /* : nullable Object */; -static val* varonce44; -val* var45 /* : String */; -char* var46 /* : NativeString */; -long var47 /* : Int */; -val* var48 /* : FlatString */; -val* var49 /* : Array[Object] */; -long var50 /* : Int */; -val* var51 /* : NativeArray[Object] */; -val* var52 /* : String */; -val* var53 /* : RuntimeVariable */; -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 */; -val* var64 /* : FlatString */; -long var65 /* : Int */; -val* var66 /* : nullable Object */; -static val* varonce67; -val* var68 /* : String */; -char* var69 /* : NativeString */; -long var70 /* : Int */; -val* var71 /* : FlatString */; -long var72 /* : Int */; -val* var73 /* : nullable Object */; -static val* varonce74; -val* var75 /* : String */; -char* var76 /* : NativeString */; -long var77 /* : Int */; -val* var78 /* : FlatString */; -val* var79 /* : Array[Object] */; -long var80 /* : Int */; -val* var81 /* : NativeArray[Object] */; -val* var82 /* : String */; -static val* varonce83; -val* var84 /* : String */; -char* var85 /* : NativeString */; -long var86 /* : Int */; -val* var87 /* : FlatString */; -short int var88 /* : Bool */; -static val* varonce89; -val* var90 /* : String */; -char* var91 /* : NativeString */; -long var92 /* : Int */; -val* var93 /* : FlatString */; -val* var94 /* : String */; -static val* varonce95; -val* var96 /* : String */; -char* var97 /* : NativeString */; -long var98 /* : Int */; -val* var99 /* : FlatString */; -long var100 /* : Int */; -val* var101 /* : nullable Object */; -static val* varonce102; -val* var103 /* : String */; -char* var104 /* : NativeString */; -long var105 /* : Int */; -val* var106 /* : FlatString */; -val* var107 /* : Array[Object] */; -long var108 /* : Int */; -val* var109 /* : NativeArray[Object] */; -val* var110 /* : String */; -val* var111 /* : RuntimeVariable */; -static val* varonce112; -val* var113 /* : String */; -char* var114 /* : NativeString */; -long var115 /* : Int */; -val* var116 /* : FlatString */; -short int var117 /* : Bool */; -static val* varonce118; -val* var119 /* : String */; -char* var120 /* : NativeString */; -long var121 /* : Int */; -val* var122 /* : FlatString */; -val* var123 /* : String */; -static val* varonce124; -val* var125 /* : String */; -char* var126 /* : NativeString */; -long var127 /* : Int */; -val* var128 /* : FlatString */; -long var129 /* : Int */; -val* var130 /* : nullable Object */; -static val* varonce131; -val* var132 /* : String */; -char* var133 /* : NativeString */; -long var134 /* : Int */; -val* var135 /* : FlatString */; -val* var136 /* : Array[Object] */; -long var137 /* : Int */; -val* var138 /* : NativeArray[Object] */; -val* var139 /* : String */; -val* var_recv1 /* var recv1: String */; -static val* varonce140; -val* var141 /* : String */; -char* var142 /* : NativeString */; -long var143 /* : Int */; -val* var144 /* : FlatString */; -static val* varonce145; -val* var146 /* : String */; -char* var147 /* : NativeString */; -long var148 /* : Int */; -val* var149 /* : FlatString */; -static val* varonce150; -val* var151 /* : String */; -char* var152 /* : NativeString */; -long var153 /* : Int */; -val* var154 /* : FlatString */; -long var155 /* : Int */; -val* var156 /* : nullable Object */; -static val* varonce157; -val* var158 /* : String */; -char* var159 /* : NativeString */; -long var160 /* : Int */; -val* var161 /* : FlatString */; -val* var162 /* : String */; -static val* varonce163; -val* var164 /* : String */; -char* var165 /* : NativeString */; -long var166 /* : Int */; -val* var167 /* : FlatString */; -val* var168 /* : Array[Object] */; -long var169 /* : Int */; -val* var170 /* : NativeArray[Object] */; -val* var171 /* : String */; -var_pname = p0; -var_ret_type = p1; -var_arguments = p2; { -var = standard___standard__SequenceRead___Collection__first(var_arguments); +var67 = ((val*(*)(val* self))(var64->class->vft[COLOR_standard__string__Object__to_s]))(var64); /* to_s on */ } +((struct instance_standard__NativeArray*)var50)->values[2]=var67; { -{ /* Inline abstract_compiler#RuntimeVariable#mtype (var) on */ -var3 = var->attrs[COLOR_nit__abstract_compiler__RuntimeVariable___mtype].val; /* _mtype on */ -if (unlikely(var3 == NULL)) { +{ /* Inline abstract_compiler#RuntimeVariable#mtype (var_value2) on */ +var70 = var_value2->attrs[COLOR_nit__abstract_compiler__RuntimeVariable___mtype].val; /* _mtype on */ +if (unlikely(var70 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1680); -show_backtrace(1); -} -var1 = var3; -RET_LABEL2:(void)0; +PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1784); +fatal_exit(1); } +var68 = var70; +RET_LABEL69:(void)0; } -var_elttype = var1; -if (varonce) { -var4 = varonce; -} else { -var5 = "NativeArray"; -var6 = 11; -var7 = standard___standard__NativeString___to_s_with_length(var5, var6); -var4 = var7; -varonce = var4; } { -var8 = nit___nit__AbstractCompilerVisitor___get_class(self, var4); +var71 = ((val*(*)(val* self))(var68->class->vft[COLOR_standard__string__Object__to_s]))(var68); /* to_s on */ } -var_nclass = var8; -if (varonce9) { -var10 = varonce9; -} else { -var11 = "((struct instance_"; -var12 = 18; -var13 = standard___standard__NativeString___to_s_with_length(var11, var12); -var10 = var13; -varonce9 = var10; +((struct instance_standard__NativeArray*)var50)->values[4]=var71; +{ +var72 = ((val*(*)(val* self))(var50->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var50); /* native_to_s on */ } +varonce49 = var50; { -var14 = nit___nit__MClass___nit__model_base__MEntity__c_name(var_nclass); +nit___nit__AbstractCompilerVisitor___add(self, var72); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on */ } -if (varonce15) { -var16 = varonce15; } else { -var17 = "*)"; -var18 = 2; -var19 = standard___standard__NativeString___to_s_with_length(var17, var18); -var16 = var19; -varonce15 = var16; +{ +{ /* Inline abstract_compiler#RuntimeVariable#mtype (var_value1) on */ +var75 = var_value1->attrs[COLOR_nit__abstract_compiler__RuntimeVariable___mtype].val; /* _mtype on */ +if (unlikely(var75 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1784); +fatal_exit(1); +} +var73 = var75; +RET_LABEL74:(void)0; +} +} +{ +{ /* Inline separate_compiler#MType#is_tagged (var73) on */ +var78 = var73->attrs[COLOR_nit__separate_compiler__MType___is_tagged].s; /* _is_tagged on */ +var76 = var78; +RET_LABEL77:(void)0; } -var20 = 0; -{ -var21 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var_arguments, var20); } -if (varonce22) { -var23 = varonce22; +if (var76){ +if (unlikely(varonce79==NULL)) { +var80 = NEW_standard__NativeArray(8l, &type_standard__NativeArray__standard__String); +if (likely(varonce81!=NULL)) { +var82 = varonce81; } else { -var24 = ")->values"; -var25 = 9; -var26 = standard___standard__NativeString___to_s_with_length(var24, var25); -var23 = var26; -varonce22 = var23; +var83 = " = ("; +var84 = standard___standard__NativeString___to_s_with_length(var83, 4l); +var82 = var84; +varonce81 = var82; } -var27 = NEW_standard__Array(&type_standard__Array__standard__Object); -{ /* var27 = array_instance Array[Object] */ -var28 = 5; -var29 = NEW_standard__NativeArray(var28, &type_standard__NativeArray__standard__Object); -((struct instance_standard__NativeArray*)var29)->values[0] = (val*) var10; -((struct instance_standard__NativeArray*)var29)->values[1] = (val*) var14; -((struct instance_standard__NativeArray*)var29)->values[2] = (val*) var16; -((struct instance_standard__NativeArray*)var29)->values[3] = (val*) var21; -((struct instance_standard__NativeArray*)var29)->values[4] = (val*) var23; -{ -((void (*)(val* self, val* p0, long p1))(var27->class->vft[COLOR_standard__array__Array__with_native]))(var27, var29, var28) /* with_native on */; +((struct instance_standard__NativeArray*)var80)->values[1]=var82; +if (likely(varonce85!=NULL)) { +var86 = varonce85; +} else { +var87 = " != NULL) && ("; +var88 = standard___standard__NativeString___to_s_with_length(var87, 14l); +var86 = var88; +varonce85 = var86; } +((struct instance_standard__NativeArray*)var80)->values[3]=var86; +if (likely(varonce89!=NULL)) { +var90 = varonce89; +} else { +var91 = " == "; +var92 = standard___standard__NativeString___to_s_with_length(var91, 4l); +var90 = var92; +varonce89 = var90; } -{ -var30 = ((val* (*)(val* self))(var27->class->vft[COLOR_standard__string__Object__to_s]))(var27) /* to_s on */; +((struct instance_standard__NativeArray*)var80)->values[5]=var90; +if (likely(varonce93!=NULL)) { +var94 = varonce93; +} else { +var95 = ");"; +var96 = standard___standard__NativeString___to_s_with_length(var95, 2l); +var94 = var96; +varonce93 = var94; } -var_recv = var30; -if (varonce31) { -var32 = varonce31; +((struct instance_standard__NativeArray*)var80)->values[7]=var94; } else { -var33 = "[]"; -var34 = 2; -var35 = standard___standard__NativeString___to_s_with_length(var33, var34); -var32 = var35; -varonce31 = var32; +var80 = varonce79; +varonce79 = NULL; } { -var36 = ((short int (*)(val* self, val* p0))(var_pname->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_pname, var32) /* == on */; +var97 = ((val*(*)(val* self))(var_res->class->vft[COLOR_standard__string__Object__to_s]))(var_res); /* to_s on */ } -if (var36){ -if (varonce37) { -var38 = varonce37; -} else { -var39 = "["; -var40 = 1; -var41 = standard___standard__NativeString___to_s_with_length(var39, var40); -var38 = var41; -varonce37 = var38; +((struct instance_standard__NativeArray*)var80)->values[0]=var97; +{ +var98 = ((val*(*)(val* self))(var_value2->class->vft[COLOR_standard__string__Object__to_s]))(var_value2); /* to_s on */ } -var42 = 1; +((struct instance_standard__NativeArray*)var80)->values[2]=var98; { -var43 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var_arguments, var42); +{ /* Inline abstract_compiler#RuntimeVariable#mtype (var_value1) on */ +var101 = var_value1->attrs[COLOR_nit__abstract_compiler__RuntimeVariable___mtype].val; /* _mtype on */ +if (unlikely(var101 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1784); +fatal_exit(1); } -if (varonce44) { -var45 = varonce44; -} else { -var46 = "]"; -var47 = 1; -var48 = standard___standard__NativeString___to_s_with_length(var46, var47); -var45 = var48; -varonce44 = var45; +var99 = var101; +RET_LABEL100:(void)0; } -var49 = NEW_standard__Array(&type_standard__Array__standard__Object); -{ /* var49 = array_instance Array[Object] */ -var50 = 4; -var51 = NEW_standard__NativeArray(var50, &type_standard__NativeArray__standard__Object); -((struct instance_standard__NativeArray*)var51)->values[0] = (val*) var_recv; -((struct instance_standard__NativeArray*)var51)->values[1] = (val*) var38; -((struct instance_standard__NativeArray*)var51)->values[2] = (val*) var43; -((struct instance_standard__NativeArray*)var51)->values[3] = (val*) var45; -{ -((void (*)(val* self, val* p0, long p1))(var49->class->vft[COLOR_standard__array__Array__with_native]))(var49, var51, var50) /* with_native on */; } +{ +var102 = nit___nit__SeparateCompilerVisitor___nit__abstract_compiler__AbstractCompilerVisitor__autobox(self, var_value2, var99); } { -var52 = ((val* (*)(val* self))(var49->class->vft[COLOR_standard__string__Object__to_s]))(var49) /* to_s on */; +var103 = ((val*(*)(val* self))(var102->class->vft[COLOR_standard__string__Object__to_s]))(var102); /* to_s on */ } -if (unlikely(var_ret_type == NULL)) { -PRINT_ERROR("Runtime error: %s", "Cast failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_compiler, 1743); -show_backtrace(1); +((struct instance_standard__NativeArray*)var80)->values[4]=var103; +{ +var104 = ((val*(*)(val* self))(var_value1->class->vft[COLOR_standard__string__Object__to_s]))(var_value1); /* to_s on */ } +((struct instance_standard__NativeArray*)var80)->values[6]=var104; { -var53 = nit___nit__AbstractCompilerVisitor___new_expr(self, var52, var_ret_type); +var105 = ((val*(*)(val* self))(var80->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var80); /* native_to_s on */ } +varonce79 = var80; { -nit___nit__AbstractCompilerVisitor___ret(self, var53); /* Direct call abstract_compiler#AbstractCompilerVisitor#ret on */ +nit___nit__AbstractCompilerVisitor___add(self, var105); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on */ } -goto RET_LABEL; -} else { -if (varonce54) { -var55 = varonce54; } else { -var56 = "[]="; -var57 = 3; -var58 = standard___standard__NativeString___to_s_with_length(var56, var57); -var55 = var58; -varonce54 = var55; -} { -var59 = ((short int (*)(val* self, val* p0))(var_pname->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_pname, var55) /* == on */; +{ /* Inline abstract_compiler#RuntimeVariable#mtype (var_value1) on */ +var108 = var_value1->attrs[COLOR_nit__abstract_compiler__RuntimeVariable___mtype].val; /* _mtype on */ +if (unlikely(var108 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1784); +fatal_exit(1); } -if (var59){ -if (varonce60) { -var61 = varonce60; -} else { -var62 = "["; -var63 = 1; -var64 = standard___standard__NativeString___to_s_with_length(var62, var63); -var61 = var64; -varonce60 = var61; +var106 = var108; +RET_LABEL107:(void)0; } -var65 = 1; -{ -var66 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var_arguments, var65); } -if (varonce67) { -var68 = varonce67; +/* isa MClassType */ +cltype = type_nit__MClassType.color; +idtype = type_nit__MClassType.id; +if(cltype >= var106->type->table_size) { +var109 = 0; } else { -var69 = "]="; -var70 = 2; -var71 = standard___standard__NativeString___to_s_with_length(var69, var70); -var68 = var71; -varonce67 = var68; +var109 = var106->type->type_table[cltype] == idtype; } -var72 = 2; -{ -var73 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var_arguments, var72); +if (unlikely(!var109)) { +var_class_name = var106 == NULL ? "null" : var106->type->name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "MClassType", var_class_name); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_compiler, 1897); +fatal_exit(1); } -if (varonce74) { -var75 = varonce74; +var_mtype1 = var106; +if (unlikely(varonce110==NULL)) { +var111 = NEW_standard__NativeArray(2l, &type_standard__NativeArray__standard__String); +if (likely(varonce112!=NULL)) { +var113 = varonce112; } else { -var76 = ";"; -var77 = 1; -var78 = standard___standard__NativeString___to_s_with_length(var76, var77); -var75 = var78; -varonce74 = var75; -} -var79 = NEW_standard__Array(&type_standard__Array__standard__Object); -{ /* var79 = array_instance Array[Object] */ -var80 = 6; -var81 = NEW_standard__NativeArray(var80, &type_standard__NativeArray__standard__Object); -((struct instance_standard__NativeArray*)var81)->values[0] = (val*) var_recv; -((struct instance_standard__NativeArray*)var81)->values[1] = (val*) var61; -((struct instance_standard__NativeArray*)var81)->values[2] = (val*) var66; -((struct instance_standard__NativeArray*)var81)->values[3] = (val*) var68; -((struct instance_standard__NativeArray*)var81)->values[4] = (val*) var73; -((struct instance_standard__NativeArray*)var81)->values[5] = (val*) var75; -{ -((void (*)(val* self, val* p0, long p1))(var79->class->vft[COLOR_standard__array__Array__with_native]))(var79, var81, var80) /* with_native on */; +var114 = "class_"; +var115 = standard___standard__NativeString___to_s_with_length(var114, 6l); +var113 = var115; +varonce112 = var113; } +((struct instance_standard__NativeArray*)var111)->values[0]=var113; +} else { +var111 = varonce110; +varonce110 = NULL; } { -var82 = ((val* (*)(val* self))(var79->class->vft[COLOR_standard__string__Object__to_s]))(var79) /* to_s on */; +var116 = ((val*(*)(val* self))(var_mtype1->class->vft[COLOR_nit__model_base__MEntity__c_name]))(var_mtype1); /* c_name on */ } +((struct instance_standard__NativeArray*)var111)->values[1]=var116; { -nit___nit__AbstractCompilerVisitor___add(self, var82); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on */ -} -goto RET_LABEL; -} else { -if (varonce83) { -var84 = varonce83; -} else { -var85 = "length"; -var86 = 6; -var87 = standard___standard__NativeString___to_s_with_length(var85, var86); -var84 = var87; -varonce83 = var84; +var117 = ((val*(*)(val* self))(var111->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var111); /* native_to_s on */ } +varonce110 = var111; { -var88 = ((short int (*)(val* self, val* p0))(var_pname->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_pname, var84) /* == on */; +nit___nit__AbstractCompilerVisitor___require_declaration(self, var117); /* Direct call abstract_compiler#AbstractCompilerVisitor#require_declaration on */ } -if (var88){ -if (varonce89) { -var90 = varonce89; +if (unlikely(varonce118==NULL)) { +var119 = NEW_standard__NativeArray(8l, &type_standard__NativeArray__standard__String); +if (likely(varonce120!=NULL)) { +var121 = varonce120; } else { -var91 = "((struct instance_"; -var92 = 18; -var93 = standard___standard__NativeString___to_s_with_length(var91, var92); -var90 = var93; -varonce89 = var90; +var122 = " = ("; +var123 = standard___standard__NativeString___to_s_with_length(var122, 4l); +var121 = var123; +varonce120 = var121; } -{ -var94 = nit___nit__MClass___nit__model_base__MEntity__c_name(var_nclass); +((struct instance_standard__NativeArray*)var119)->values[1]=var121; +if (likely(varonce124!=NULL)) { +var125 = varonce124; +} else { +var126 = " != NULL) && ("; +var127 = standard___standard__NativeString___to_s_with_length(var126, 14l); +var125 = var127; +varonce124 = var125; } -if (varonce95) { -var96 = varonce95; +((struct instance_standard__NativeArray*)var119)->values[3]=var125; +if (likely(varonce128!=NULL)) { +var129 = varonce128; } else { -var97 = "*)"; -var98 = 2; -var99 = standard___standard__NativeString___to_s_with_length(var97, var98); -var96 = var99; -varonce95 = var96; +var130 = "->class == &class_"; +var131 = standard___standard__NativeString___to_s_with_length(var130, 18l); +var129 = var131; +varonce128 = var129; } -var100 = 0; -{ -var101 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var_arguments, var100); +((struct instance_standard__NativeArray*)var119)->values[5]=var129; +if (likely(varonce132!=NULL)) { +var133 = varonce132; +} else { +var134 = ");"; +var135 = standard___standard__NativeString___to_s_with_length(var134, 2l); +var133 = var135; +varonce132 = var133; } -if (varonce102) { -var103 = varonce102; +((struct instance_standard__NativeArray*)var119)->values[7]=var133; } else { -var104 = ")->length"; -var105 = 9; -var106 = standard___standard__NativeString___to_s_with_length(var104, var105); -var103 = var106; -varonce102 = var103; +var119 = varonce118; +varonce118 = NULL; } -var107 = NEW_standard__Array(&type_standard__Array__standard__Object); -{ /* var107 = array_instance Array[Object] */ -var108 = 5; -var109 = NEW_standard__NativeArray(var108, &type_standard__NativeArray__standard__Object); -((struct instance_standard__NativeArray*)var109)->values[0] = (val*) var90; -((struct instance_standard__NativeArray*)var109)->values[1] = (val*) var94; -((struct instance_standard__NativeArray*)var109)->values[2] = (val*) var96; -((struct instance_standard__NativeArray*)var109)->values[3] = (val*) var101; -((struct instance_standard__NativeArray*)var109)->values[4] = (val*) var103; { -((void (*)(val* self, val* p0, long p1))(var107->class->vft[COLOR_standard__array__Array__with_native]))(var107, var109, var108) /* with_native on */; -} +var136 = ((val*(*)(val* self))(var_res->class->vft[COLOR_standard__string__Object__to_s]))(var_res); /* to_s on */ } +((struct instance_standard__NativeArray*)var119)->values[0]=var136; { -var110 = ((val* (*)(val* self))(var107->class->vft[COLOR_standard__string__Object__to_s]))(var107) /* to_s on */; -} -if (unlikely(var_ret_type == NULL)) { -PRINT_ERROR("Runtime error: %s", "Cast failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_compiler, 1749); -show_backtrace(1); +var137 = ((val*(*)(val* self))(var_value2->class->vft[COLOR_standard__string__Object__to_s]))(var_value2); /* to_s on */ } +((struct instance_standard__NativeArray*)var119)->values[2]=var137; { -var111 = nit___nit__AbstractCompilerVisitor___new_expr(self, var110, var_ret_type); +var138 = ((val*(*)(val* self))(var_value2->class->vft[COLOR_standard__string__Object__to_s]))(var_value2); /* to_s on */ } +((struct instance_standard__NativeArray*)var119)->values[4]=var138; { -nit___nit__AbstractCompilerVisitor___ret(self, var111); /* Direct call abstract_compiler#AbstractCompilerVisitor#ret on */ -} -goto RET_LABEL; -} else { -if (varonce112) { -var113 = varonce112; -} else { -var114 = "copy_to"; -var115 = 7; -var116 = standard___standard__NativeString___to_s_with_length(var114, var115); -var113 = var116; -varonce112 = var113; +var139 = ((val*(*)(val* self))(var_mtype1->class->vft[COLOR_nit__model_base__MEntity__c_name]))(var_mtype1); /* c_name on */ } +((struct instance_standard__NativeArray*)var119)->values[6]=var139; { -var117 = ((short int (*)(val* self, val* p0))(var_pname->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_pname, var113) /* == on */; +var140 = ((val*(*)(val* self))(var119->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var119); /* native_to_s on */ } -if (var117){ -if (varonce118) { -var119 = varonce118; -} else { -var120 = "((struct instance_"; -var121 = 18; -var122 = standard___standard__NativeString___to_s_with_length(var120, var121); -var119 = var122; varonce118 = var119; -} { -var123 = nit___nit__MClass___nit__model_base__MEntity__c_name(var_nclass); +nit___nit__AbstractCompilerVisitor___add(self, var140); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on */ } -if (varonce124) { -var125 = varonce124; +if (unlikely(varonce141==NULL)) { +var142 = NEW_standard__NativeArray(3l, &type_standard__NativeArray__standard__String); +if (likely(varonce143!=NULL)) { +var144 = varonce143; } else { -var126 = "*)"; -var127 = 2; -var128 = standard___standard__NativeString___to_s_with_length(var126, var127); -var125 = var128; -varonce124 = var125; +var145 = "if ("; +var146 = standard___standard__NativeString___to_s_with_length(var145, 4l); +var144 = var146; +varonce143 = var144; } -var129 = 1; -{ -var130 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var_arguments, var129); +((struct instance_standard__NativeArray*)var142)->values[0]=var144; +if (likely(varonce147!=NULL)) { +var148 = varonce147; +} else { +var149 = ") {"; +var150 = standard___standard__NativeString___to_s_with_length(var149, 3l); +var148 = var150; +varonce147 = var148; } -if (varonce131) { -var132 = varonce131; +((struct instance_standard__NativeArray*)var142)->values[2]=var148; } else { -var133 = ")->values"; -var134 = 9; -var135 = standard___standard__NativeString___to_s_with_length(var133, var134); -var132 = var135; -varonce131 = var132; +var142 = varonce141; +varonce141 = NULL; } -var136 = NEW_standard__Array(&type_standard__Array__standard__Object); -{ /* var136 = array_instance Array[Object] */ -var137 = 5; -var138 = NEW_standard__NativeArray(var137, &type_standard__NativeArray__standard__Object); -((struct instance_standard__NativeArray*)var138)->values[0] = (val*) var119; -((struct instance_standard__NativeArray*)var138)->values[1] = (val*) var123; -((struct instance_standard__NativeArray*)var138)->values[2] = (val*) var125; -((struct instance_standard__NativeArray*)var138)->values[3] = (val*) var130; -((struct instance_standard__NativeArray*)var138)->values[4] = (val*) var132; { -((void (*)(val* self, val* p0, long p1))(var136->class->vft[COLOR_standard__array__Array__with_native]))(var136, var138, var137) /* with_native on */; +var151 = ((val*(*)(val* self))(var_res->class->vft[COLOR_standard__string__Object__to_s]))(var_res); /* to_s on */ } +((struct instance_standard__NativeArray*)var142)->values[1]=var151; +{ +var152 = ((val*(*)(val* self))(var142->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var142); /* native_to_s on */ } +varonce141 = var142; { -var139 = ((val* (*)(val* self))(var136->class->vft[COLOR_standard__string__Object__to_s]))(var136) /* to_s on */; +nit___nit__AbstractCompilerVisitor___add(self, var152); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on */ } -var_recv1 = var139; -if (varonce140) { -var141 = varonce140; +if (unlikely(varonce153==NULL)) { +var154 = NEW_standard__NativeArray(6l, &type_standard__NativeArray__standard__String); +if (likely(varonce155!=NULL)) { +var156 = varonce155; } else { -var142 = "memmove("; -var143 = 8; -var144 = standard___standard__NativeString___to_s_with_length(var142, var143); -var141 = var144; -varonce140 = var141; +var157 = " = ("; +var158 = standard___standard__NativeString___to_s_with_length(var157, 4l); +var156 = var158; +varonce155 = var156; } -if (varonce145) { -var146 = varonce145; +((struct instance_standard__NativeArray*)var154)->values[1]=var156; +if (likely(varonce159!=NULL)) { +var160 = varonce159; } else { -var147 = ", "; -var148 = 2; -var149 = standard___standard__NativeString___to_s_with_length(var147, var148); -var146 = var149; -varonce145 = var146; +var161 = " == "; +var162 = standard___standard__NativeString___to_s_with_length(var161, 4l); +var160 = var162; +varonce159 = var160; } -if (varonce150) { -var151 = varonce150; +((struct instance_standard__NativeArray*)var154)->values[3]=var160; +if (likely(varonce163!=NULL)) { +var164 = varonce163; } else { -var152 = ", "; -var153 = 2; -var154 = standard___standard__NativeString___to_s_with_length(var152, var153); -var151 = var154; -varonce150 = var151; -} -var155 = 2; -{ -var156 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var_arguments, var155); +var165 = ");"; +var166 = standard___standard__NativeString___to_s_with_length(var165, 2l); +var164 = var166; +varonce163 = var164; } -if (varonce157) { -var158 = varonce157; +((struct instance_standard__NativeArray*)var154)->values[5]=var164; } else { -var159 = "*sizeof("; -var160 = 8; -var161 = standard___standard__NativeString___to_s_with_length(var159, var160); -var158 = var161; -varonce157 = var158; +var154 = varonce153; +varonce153 = NULL; } { -var162 = ((val* (*)(val* self))(var_elttype->class->vft[COLOR_nit__abstract_compiler__MType__ctype]))(var_elttype) /* ctype on */; +var167 = ((val*(*)(val* self))(var_res->class->vft[COLOR_standard__string__Object__to_s]))(var_res); /* to_s on */ } -if (varonce163) { -var164 = varonce163; -} else { -var165 = "));"; -var166 = 3; -var167 = standard___standard__NativeString___to_s_with_length(var165, var166); -var164 = var167; -varonce163 = var164; +((struct instance_standard__NativeArray*)var154)->values[0]=var167; +{ +{ /* Inline abstract_compiler#RuntimeVariable#mtype (var_value1) on */ +var170 = var_value1->attrs[COLOR_nit__abstract_compiler__RuntimeVariable___mtype].val; /* _mtype on */ +if (unlikely(var170 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1784); +fatal_exit(1); +} +var168 = var170; +RET_LABEL169:(void)0; +} +} +{ +var171 = nit___nit__SeparateCompilerVisitor___nit__abstract_compiler__AbstractCompilerVisitor__autobox(self, var_value2, var168); } -var168 = NEW_standard__Array(&type_standard__Array__standard__Object); -{ /* var168 = array_instance Array[Object] */ -var169 = 9; -var170 = NEW_standard__NativeArray(var169, &type_standard__NativeArray__standard__Object); -((struct instance_standard__NativeArray*)var170)->values[0] = (val*) var141; -((struct instance_standard__NativeArray*)var170)->values[1] = (val*) var_recv1; -((struct instance_standard__NativeArray*)var170)->values[2] = (val*) var146; -((struct instance_standard__NativeArray*)var170)->values[3] = (val*) var_recv; -((struct instance_standard__NativeArray*)var170)->values[4] = (val*) var151; -((struct instance_standard__NativeArray*)var170)->values[5] = (val*) var156; -((struct instance_standard__NativeArray*)var170)->values[6] = (val*) var158; -((struct instance_standard__NativeArray*)var170)->values[7] = (val*) var162; -((struct instance_standard__NativeArray*)var170)->values[8] = (val*) var164; { -((void (*)(val* self, val* p0, long p1))(var168->class->vft[COLOR_standard__array__Array__with_native]))(var168, var170, var169) /* with_native on */; +var172 = ((val*(*)(val* self))(var171->class->vft[COLOR_standard__string__Object__to_s]))(var171); /* to_s on */ } +((struct instance_standard__NativeArray*)var154)->values[2]=var172; +{ +var173 = ((val*(*)(val* self))(var_value1->class->vft[COLOR_standard__string__Object__to_s]))(var_value1); /* to_s on */ } +((struct instance_standard__NativeArray*)var154)->values[4]=var173; { -var171 = ((val* (*)(val* self))(var168->class->vft[COLOR_standard__string__Object__to_s]))(var168) /* to_s on */; +var174 = ((val*(*)(val* self))(var154->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var154); /* native_to_s on */ } +varonce153 = var154; { -nit___nit__AbstractCompilerVisitor___add(self, var171); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on */ +nit___nit__AbstractCompilerVisitor___add(self, var174); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on */ } -goto RET_LABEL; +if (likely(varonce175!=NULL)) { +var176 = varonce175; } else { +var177 = "}"; +var178 = standard___standard__NativeString___to_s_with_length(var177, 1l); +var176 = var178; +varonce175 = var176; } +{ +nit___nit__AbstractCompilerVisitor___add(self, var176); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on */ } } } -RET_LABEL:; } -/* method separate_compiler#SeparateCompilerVisitor#calloc_array for (self: SeparateCompilerVisitor, MType, Array[RuntimeVariable]) */ -void nit___nit__SeparateCompilerVisitor___nit__abstract_compiler__AbstractCompilerVisitor__calloc_array(val* self, val* p0, val* p1) { -val* var_ret_type /* var ret_type: MType */; -val* var_arguments /* var arguments: Array[RuntimeVariable] */; -static val* varonce; -val* var /* : String */; -char* var1 /* : NativeString */; -long var2 /* : Int */; -val* var3 /* : FlatString */; -val* var4 /* : MClass */; -val* var_mclass /* var mclass: MClass */; -val* var5 /* : Array[MParameterType] */; -val* var7 /* : Array[MParameterType] */; -val* var8 /* : nullable Object */; -val* var_ft /* var ft: MParameterType */; -long var9 /* : Int */; -val* var10 /* : nullable Object */; -val* var11 /* : RuntimeVariable */; -val* var_res /* var res: RuntimeVariable */; -var_ret_type = p0; -var_arguments = p1; -if (varonce) { -var = varonce; +var = var_res; +goto RET_LABEL; } else { -var1 = "ArrayCapable"; -var2 = 12; -var3 = standard___standard__NativeString___to_s_with_length(var1, var2); -var = var3; -varonce = var; } +var_maybe_null = 1; +var179 = NEW_standard__Array(&type_standard__Array__standard__String); { -var4 = nit___nit__AbstractCompilerVisitor___get_class(self, var); +standard___standard__Array___standard__kernel__Object__init(var179); /* Direct call array#Array#init on */ } -var_mclass = var4; +var_test = var179; { -{ /* Inline model#MClass#mparameters (var_mclass) on */ -var7 = var_mclass->attrs[COLOR_nit__model__MClass___mparameters].val; /* _mparameters on */ -if (unlikely(var7 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mparameters"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 368); -show_backtrace(1); +{ /* Inline abstract_compiler#RuntimeVariable#mcasttype (var_value1) on */ +var182 = var_value1->attrs[COLOR_nit__abstract_compiler__RuntimeVariable___mcasttype].val; /* _mcasttype on */ +if (unlikely(var182 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mcasttype"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1787); +fatal_exit(1); } -var5 = var7; -RET_LABEL6:(void)0; +var180 = var182; +RET_LABEL181:(void)0; } } -{ -var8 = standard___standard__SequenceRead___Collection__first(var5); +var_t1 = var180; +/* isa MNullableType */ +cltype184 = type_nit__MNullableType.color; +idtype185 = type_nit__MNullableType.id; +if(cltype184 >= var_t1->type->table_size) { +var183 = 0; +} else { +var183 = var_t1->type->type_table[cltype184] == idtype185; } -var_ft = var8; -var9 = 1; -{ -var10 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var_arguments, var9); +if (var183){ +if (unlikely(varonce186==NULL)) { +var187 = NEW_standard__NativeArray(2l, &type_standard__NativeArray__standard__String); +if (likely(varonce188!=NULL)) { +var189 = varonce188; +} else { +var190 = " != NULL"; +var191 = standard___standard__NativeString___to_s_with_length(var190, 8l); +var189 = var191; +varonce188 = var189; } -{ -var11 = ((val* (*)(val* self, val* p0, val* p1))(self->class->vft[COLOR_nit__abstract_compiler__AbstractCompilerVisitor__native_array_instance]))(self, var_ft, var10) /* native_array_instance on */; +((struct instance_standard__NativeArray*)var187)->values[1]=var189; +} else { +var187 = varonce186; +varonce186 = NULL; } -var_res = var11; { -nit___nit__AbstractCompilerVisitor___ret(self, var_res); /* Direct call abstract_compiler#AbstractCompilerVisitor#ret on */ +var192 = ((val*(*)(val* self))(var_value1->class->vft[COLOR_standard__string__Object__to_s]))(var_value1); /* to_s on */ } -RET_LABEL:; -} -/* method separate_compiler#SeparateCompilerVisitor#link_unresolved_type for (self: SeparateCompilerVisitor, MClassDef, MType) */ -void nit___nit__SeparateCompilerVisitor___link_unresolved_type(val* self, val* p0, val* p1) { -val* var_mclassdef /* var mclassdef: MClassDef */; -val* var_mtype /* var mtype: MType */; -short int var /* : Bool */; -val* var1 /* : AbstractCompiler */; -val* var3 /* : AbstractCompiler */; -val* var_compiler /* var compiler: SeparateCompiler */; -val* var4 /* : Map[MClassDef, Set[MType]] */; -val* var6 /* : Map[MClassDef, Set[MType]] */; -val* var7 /* : nullable StaticFrame */; -val* var9 /* : nullable StaticFrame */; -val* var10 /* : MPropDef */; -val* var12 /* : MPropDef */; -val* var13 /* : MClassDef */; -val* var15 /* : MClassDef */; -short int var16 /* : Bool */; -short int var17 /* : Bool */; -val* var18 /* : Map[MClassDef, Set[MType]] */; -val* var20 /* : Map[MClassDef, Set[MType]] */; -val* var21 /* : nullable StaticFrame */; -val* var23 /* : nullable StaticFrame */; -val* var24 /* : MPropDef */; -val* var26 /* : MPropDef */; -val* var27 /* : MClassDef */; -val* var29 /* : MClassDef */; -val* var30 /* : HashSet[MType] */; -val* var31 /* : Map[MClassDef, Set[MType]] */; -val* var33 /* : Map[MClassDef, Set[MType]] */; -val* var34 /* : nullable StaticFrame */; -val* var36 /* : nullable StaticFrame */; -val* var37 /* : MPropDef */; -val* var39 /* : MPropDef */; -val* var40 /* : MClassDef */; -val* var42 /* : MClassDef */; -val* var43 /* : nullable Object */; -var_mclassdef = p0; -var_mtype = p1; +((struct instance_standard__NativeArray*)var187)->values[0]=var192; { -var = ((short int (*)(val* self))(var_mtype->class->vft[COLOR_nit__model__MType__need_anchor]))(var_mtype) /* need_anchor on */; +var193 = ((val*(*)(val* self))(var187->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var187); /* native_to_s on */ } -if (unlikely(!var)) { -PRINT_ERROR("Runtime error: %s", "Assert failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_compiler, 1767); -show_backtrace(1); +varonce186 = var187; +{ +standard___standard__Array___standard__abstract_collection__SimpleCollection__add(var_test, var193); /* Direct call array#Array#add on */ } { -{ /* Inline abstract_compiler#AbstractCompilerVisitor#compiler (self) on */ -var3 = self->attrs[COLOR_nit__abstract_compiler__AbstractCompilerVisitor___compiler].val; /* _compiler on */ -if (unlikely(var3 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _compiler"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1059); -show_backtrace(1); +{ /* Inline model#MProxyType#mtype (var_t1) on */ +var196 = var_t1->attrs[COLOR_nit__model__MProxyType___mtype].val; /* _mtype on */ +if (unlikely(var196 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1598); +fatal_exit(1); } -var1 = var3; -RET_LABEL2:(void)0; +var194 = var196; +RET_LABEL195:(void)0; } } -var_compiler = var1; +var_t1 = var194; +} else { +var_maybe_null = 0; +} { -{ /* Inline separate_compiler#SeparateCompiler#live_unresolved_types (var_compiler) on */ -var6 = var_compiler->attrs[COLOR_nit__separate_compiler__SeparateCompiler___live_unresolved_types].val; /* _live_unresolved_types on */ -if (unlikely(var6 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_unresolved_types"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_compiler, 122); -show_backtrace(1); +{ /* Inline abstract_compiler#RuntimeVariable#mcasttype (var_value2) on */ +var199 = var_value2->attrs[COLOR_nit__abstract_compiler__RuntimeVariable___mcasttype].val; /* _mcasttype on */ +if (unlikely(var199 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mcasttype"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1787); +fatal_exit(1); } -var4 = var6; -RET_LABEL5:(void)0; +var197 = var199; +RET_LABEL198:(void)0; } } -{ -{ /* Inline abstract_compiler#AbstractCompilerVisitor#frame (self) on */ -var9 = self->attrs[COLOR_nit__abstract_compiler__AbstractCompilerVisitor___frame].val; /* _frame on */ -var7 = var9; -RET_LABEL8:(void)0; +var_t2 = var197; +/* isa MNullableType */ +cltype201 = type_nit__MNullableType.color; +idtype202 = type_nit__MNullableType.id; +if(cltype201 >= var_t2->type->table_size) { +var200 = 0; +} else { +var200 = var_t2->type->type_table[cltype201] == idtype202; } +if (var200){ +if (unlikely(varonce203==NULL)) { +var204 = NEW_standard__NativeArray(2l, &type_standard__NativeArray__standard__String); +if (likely(varonce205!=NULL)) { +var206 = varonce205; +} else { +var207 = " != NULL"; +var208 = standard___standard__NativeString___to_s_with_length(var207, 8l); +var206 = var208; +varonce205 = var206; } -if (var7 == NULL) { -PRINT_ERROR("Runtime error: %s", "Receiver is null"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_compiler, 1769); -show_backtrace(1); +((struct instance_standard__NativeArray*)var204)->values[1]=var206; } else { -{ /* Inline abstract_compiler#StaticFrame#mpropdef (var7) on */ -if (unlikely(var7 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Receiver is null"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1724); -show_backtrace(1); +var204 = varonce203; +varonce203 = NULL; } -var12 = var7->attrs[COLOR_nit__abstract_compiler__StaticFrame___mpropdef].val; /* _mpropdef on */ -if (unlikely(var12 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mpropdef"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1724); -show_backtrace(1); +{ +var209 = ((val*(*)(val* self))(var_value2->class->vft[COLOR_standard__string__Object__to_s]))(var_value2); /* to_s on */ } -var10 = var12; -RET_LABEL11:(void)0; +((struct instance_standard__NativeArray*)var204)->values[0]=var209; +{ +var210 = ((val*(*)(val* self))(var204->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var204); /* native_to_s on */ } +varonce203 = var204; +{ +standard___standard__Array___standard__abstract_collection__SimpleCollection__add(var_test, var210); /* Direct call array#Array#add on */ } { -{ /* Inline model#MPropDef#mclassdef (var10) on */ -var15 = var10->attrs[COLOR_nit__model__MPropDef___mclassdef].val; /* _mclassdef on */ -if (unlikely(var15 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdef"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 2010); -show_backtrace(1); +{ /* Inline model#MProxyType#mtype (var_t2) on */ +var213 = var_t2->attrs[COLOR_nit__model__MProxyType___mtype].val; /* _mtype on */ +if (unlikely(var213 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1598); +fatal_exit(1); +} +var211 = var213; +RET_LABEL212:(void)0; } -var13 = var15; -RET_LABEL14:(void)0; } +var_t2 = var211; +} else { +var_maybe_null = 0; } +var_incompatible = 0; { -var16 = standard___standard__MapRead___has_key(var4, var13); +var214 = ((short int(*)(val* self))(var_t1->class->vft[COLOR_nit__abstract_compiler__MType__is_c_primitive]))(var_t1); /* is_c_primitive on */ } -var17 = !var16; -if (var17){ +if (var214){ +var_primitive = var_t1; { -{ /* Inline separate_compiler#SeparateCompiler#live_unresolved_types (var_compiler) on */ -var20 = var_compiler->attrs[COLOR_nit__separate_compiler__SeparateCompiler___live_unresolved_types].val; /* _live_unresolved_types on */ -if (unlikely(var20 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_unresolved_types"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_compiler, 122); -show_backtrace(1); +{ /* Inline kernel#Object#== (var_t1,var_t2) on */ +var_other = var_t2; +{ +{ /* Inline kernel#Object#is_same_instance (var_t1,var_other) on */ +var219 = var_t1 == var_other; +var217 = var219; +goto RET_LABEL218; +RET_LABEL218:(void)0; } -var18 = var20; -RET_LABEL19:(void)0; +} +var215 = var217; +goto RET_LABEL216; +RET_LABEL216:(void)0; } } +if (var215){ +} else { { -{ /* Inline abstract_compiler#AbstractCompilerVisitor#frame (self) on */ -var23 = self->attrs[COLOR_nit__abstract_compiler__AbstractCompilerVisitor___frame].val; /* _frame on */ -var21 = var23; -RET_LABEL22:(void)0; +var220 = ((short int(*)(val* self))(var_t2->class->vft[COLOR_nit__abstract_compiler__MType__is_c_primitive]))(var_t2); /* is_c_primitive on */ +} +if (var220){ +var_incompatible = 1; +} else { +{ +var221 = nit___nit__SeparateCompilerVisitor___can_be_primitive(self, var_value2); } +if (var221){ +{ +{ /* Inline separate_compiler#MType#is_tagged (var_t1) on */ +var224 = var_t1->attrs[COLOR_nit__separate_compiler__MType___is_tagged].s; /* _is_tagged on */ +var222 = var224; +RET_LABEL223:(void)0; } -if (var21 == NULL) { -PRINT_ERROR("Runtime error: %s", "Receiver is null"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_compiler, 1770); -show_backtrace(1); +} +if (var222){ +if (unlikely(varonce225==NULL)) { +var226 = NEW_standard__NativeArray(6l, &type_standard__NativeArray__standard__String); +if (likely(varonce227!=NULL)) { +var228 = varonce227; } else { -{ /* Inline abstract_compiler#StaticFrame#mpropdef (var21) on */ -if (unlikely(var21 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Receiver is null"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1724); -show_backtrace(1); +var229 = " = "; +var230 = standard___standard__NativeString___to_s_with_length(var229, 3l); +var228 = var230; +varonce227 = var228; } -var26 = var21->attrs[COLOR_nit__abstract_compiler__StaticFrame___mpropdef].val; /* _mpropdef on */ -if (unlikely(var26 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mpropdef"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1724); -show_backtrace(1); +((struct instance_standard__NativeArray*)var226)->values[1]=var228; +if (likely(varonce231!=NULL)) { +var232 = varonce231; +} else { +var233 = " == "; +var234 = standard___standard__NativeString___to_s_with_length(var233, 4l); +var232 = var234; +varonce231 = var232; } -var24 = var26; -RET_LABEL25:(void)0; +((struct instance_standard__NativeArray*)var226)->values[3]=var232; +if (likely(varonce235!=NULL)) { +var236 = varonce235; +} else { +var237 = ";"; +var238 = standard___standard__NativeString___to_s_with_length(var237, 1l); +var236 = var238; +varonce235 = var236; } +((struct instance_standard__NativeArray*)var226)->values[5]=var236; +} else { +var226 = varonce225; +varonce225 = NULL; } { -{ /* Inline model#MPropDef#mclassdef (var24) on */ -var29 = var24->attrs[COLOR_nit__model__MPropDef___mclassdef].val; /* _mclassdef on */ -if (unlikely(var29 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdef"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 2010); -show_backtrace(1); +var239 = ((val*(*)(val* self))(var_res->class->vft[COLOR_standard__string__Object__to_s]))(var_res); /* to_s on */ } -var27 = var29; -RET_LABEL28:(void)0; +((struct instance_standard__NativeArray*)var226)->values[0]=var239; +{ +var240 = ((val*(*)(val* self))(var_value1->class->vft[COLOR_standard__string__Object__to_s]))(var_value1); /* to_s on */ } +((struct instance_standard__NativeArray*)var226)->values[2]=var240; +{ +var241 = ((val*(*)(val* self))(var_value2->class->vft[COLOR_standard__string__Object__to_s]))(var_value2); /* to_s on */ } -var30 = NEW_standard__HashSet(&type_standard__HashSet__nit__MType); +((struct instance_standard__NativeArray*)var226)->values[4]=var241; { -standard___standard__HashSet___standard__kernel__Object__init(var30); /* Direct call hash_collection#HashSet#init on */ +var242 = ((val*(*)(val* self))(var226->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var226); /* native_to_s on */ } +varonce225 = var226; { -((void (*)(val* self, val* p0, val* p1))(var18->class->vft[COLOR_standard__abstract_collection__Map___91d_93d_61d]))(var18, var27, var30) /* []= on */; +nit___nit__AbstractCompilerVisitor___add(self, var242); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on */ } +var = var_res; +goto RET_LABEL; } else { } { -{ /* Inline separate_compiler#SeparateCompiler#live_unresolved_types (var_compiler) on */ -var33 = var_compiler->attrs[COLOR_nit__separate_compiler__SeparateCompiler___live_unresolved_types].val; /* _live_unresolved_types on */ -if (unlikely(var33 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_unresolved_types"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_compiler, 122); -show_backtrace(1); +{ /* Inline abstract_compiler#AbstractCompilerVisitor#compiler (self) on */ +var245 = self->attrs[COLOR_nit__abstract_compiler__AbstractCompilerVisitor___compiler].val; /* _compiler on */ +if (unlikely(var245 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _compiler"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1102); +fatal_exit(1); } -var31 = var33; -RET_LABEL32:(void)0; +var243 = var245; +RET_LABEL244:(void)0; } } { -{ /* Inline abstract_compiler#AbstractCompilerVisitor#frame (self) on */ -var36 = self->attrs[COLOR_nit__abstract_compiler__AbstractCompilerVisitor___frame].val; /* _frame on */ -var34 = var36; -RET_LABEL35:(void)0; +{ /* Inline abstract_compiler#AbstractCompiler#modelbuilder (var243) on */ +var248 = var243->attrs[COLOR_nit__abstract_compiler__AbstractCompiler___modelbuilder].val; /* _modelbuilder on */ +if (unlikely(var248 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 522); +fatal_exit(1); } +var246 = var248; +RET_LABEL247:(void)0; } -if (var34 == NULL) { -PRINT_ERROR("Runtime error: %s", "Receiver is null"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_compiler, 1772); -show_backtrace(1); -} else { -{ /* Inline abstract_compiler#StaticFrame#mpropdef (var34) on */ -if (unlikely(var34 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Receiver is null"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1724); -show_backtrace(1); } -var39 = var34->attrs[COLOR_nit__abstract_compiler__StaticFrame___mpropdef].val; /* _mpropdef on */ -if (unlikely(var39 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mpropdef"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1724); -show_backtrace(1); +{ +{ /* Inline modelbuilder_base#ModelBuilder#toolcontext (var246) on */ +var251 = var246->attrs[COLOR_nit__modelbuilder_base__ModelBuilder___toolcontext].val; /* _toolcontext on */ +if (unlikely(var251 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__modelbuilder_base, 47); +fatal_exit(1); } -var37 = var39; -RET_LABEL38:(void)0; +var249 = var251; +RET_LABEL250:(void)0; } } { -{ /* Inline model#MPropDef#mclassdef (var37) on */ -var42 = var37->attrs[COLOR_nit__model__MPropDef___mclassdef].val; /* _mclassdef on */ -if (unlikely(var42 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdef"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 2010); -show_backtrace(1); -} -var40 = var42; -RET_LABEL41:(void)0; +{ /* Inline separate_compiler#ToolContext#opt_no_tag_primitives (var249) on */ +var254 = var249->attrs[COLOR_nit__separate_compiler__ToolContext___opt_no_tag_primitives].val; /* _opt_no_tag_primitives on */ +if (unlikely(var254 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_no_tag_primitives"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_compiler, 32); +fatal_exit(1); } +var252 = var254; +RET_LABEL253:(void)0; } -{ -var43 = ((val* (*)(val* self, val* p0))(var31->class->vft[COLOR_standard__abstract_collection__MapRead___91d_93d]))(var31, var40) /* [] on */; } { -((void (*)(val* self, val* p0))(var43->class->vft[COLOR_standard__abstract_collection__SimpleCollection__add]))(var43, var_mtype) /* add on */; -} -RET_LABEL:; +{ /* Inline opts#Option#value (var252) on */ +var257 = var252->attrs[COLOR_opts__Option___value].val; /* _value on */ +var255 = var257; +RET_LABEL256:(void)0; } -/* method separate_compiler#MMethodDef#separate_runtime_function for (self: MMethodDef): SeparateRuntimeFunction */ -val* nit__separate_compiler___MMethodDef___separate_runtime_function(val* self) { -val* var /* : SeparateRuntimeFunction */; -val* var1 /* : nullable SeparateRuntimeFunction */; -val* var3 /* : nullable SeparateRuntimeFunction */; -val* var_res /* var res: nullable SeparateRuntimeFunction */; -val* var4 /* : null */; -short int var5 /* : Bool */; -short int var6 /* : Bool */; -val* var_other /* var other: nullable Object */; -short int var8 /* : Bool */; -short int var10 /* : Bool */; -val* var11 /* : MClassDef */; -val* var13 /* : MClassDef */; -val* var14 /* : MClassType */; -val* var16 /* : MClassType */; -val* var_recv /* var recv: MClassType */; -val* var17 /* : nullable MSignature */; -val* var19 /* : nullable MSignature */; -val* var20 /* : MClassDef */; -val* var22 /* : MClassDef */; -val* var23 /* : MModule */; -val* var25 /* : MModule */; -short int var26 /* : Bool */; -val* var27 /* : MSignature */; -val* var_msignature /* var msignature: MSignature */; -val* var28 /* : SeparateRuntimeFunction */; -val* var29 /* : String */; -{ -{ /* Inline separate_compiler#MMethodDef#separate_runtime_function_cache (self) on */ -var3 = self->attrs[COLOR_nit__separate_compiler__MMethodDef___separate_runtime_function_cache].val; /* _separate_runtime_function_cache on */ -var1 = var3; -RET_LABEL2:(void)0; } +var258 = (short int)((long)(var255)>>2); +var259 = !var258; +if (var259){ +if (unlikely(varonce260==NULL)) { +var261 = NEW_standard__NativeArray(3l, &type_standard__NativeArray__standard__String); +if (likely(varonce262!=NULL)) { +var263 = varonce262; +} else { +var264 = "(!"; +var265 = standard___standard__NativeString___to_s_with_length(var264, 2l); +var263 = var265; +varonce262 = var263; } -var_res = var1; -var4 = NULL; -if (var_res == NULL) { -var5 = 1; /* is null */ +((struct instance_standard__NativeArray*)var261)->values[0]=var263; +if (likely(varonce266!=NULL)) { +var267 = varonce266; } else { -var5 = 0; /* arg is null but recv is not */ +var268 = ")"; +var269 = standard___standard__NativeString___to_s_with_length(var268, 1l); +var267 = var269; +varonce266 = var267; +} +((struct instance_standard__NativeArray*)var261)->values[2]=var267; +} else { +var261 = varonce260; +varonce260 = NULL; } -if (0) { -{ /* Inline kernel#Object#== (var_res,var4) on */ -var_other = var4; { -{ /* Inline kernel#Object#is_same_instance (var_res,var_other) on */ -var10 = var_res == var_other; -var8 = var10; -goto RET_LABEL9; -RET_LABEL9:(void)0; +var270 = nit___nit__SeparateCompilerVisitor___extract_tag(self, var_value2); } +((struct instance_standard__NativeArray*)var261)->values[1]=var270; +{ +var271 = ((val*(*)(val* self))(var261->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var261); /* native_to_s on */ } -var6 = var8; -goto RET_LABEL7; -RET_LABEL7:(void)0; +varonce260 = var261; +{ +standard___standard__Array___standard__abstract_collection__SimpleCollection__add(var_test, var271); /* Direct call array#Array#add on */ } -var5 = var6; +} else { } -if (var5){ -{ -{ /* Inline model#MPropDef#mclassdef (self) on */ -var13 = self->attrs[COLOR_nit__model__MPropDef___mclassdef].val; /* _mclassdef on */ -if (unlikely(var13 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdef"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 2010); -show_backtrace(1); +if (unlikely(varonce272==NULL)) { +var273 = NEW_standard__NativeArray(4l, &type_standard__NativeArray__standard__String); +if (likely(varonce274!=NULL)) { +var275 = varonce274; +} else { +var276 = "->class == "; +var277 = standard___standard__NativeString___to_s_with_length(var276, 11l); +var275 = var277; +varonce274 = var275; } -var11 = var13; -RET_LABEL12:(void)0; +((struct instance_standard__NativeArray*)var273)->values[1]=var275; +if (likely(varonce278!=NULL)) { +var279 = varonce278; +} else { +var280 = "->class"; +var281 = standard___standard__NativeString___to_s_with_length(var280, 7l); +var279 = var281; +varonce278 = var279; } +((struct instance_standard__NativeArray*)var273)->values[3]=var279; +} else { +var273 = varonce272; +varonce272 = NULL; } { -{ /* Inline model#MClassDef#bound_mtype (var11) on */ -var16 = var11->attrs[COLOR_nit__model__MClassDef___bound_mtype].val; /* _bound_mtype on */ -if (unlikely(var16 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _bound_mtype"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 495); -show_backtrace(1); +var282 = ((val*(*)(val* self))(var_value1->class->vft[COLOR_standard__string__Object__to_s]))(var_value1); /* to_s on */ } -var14 = var16; -RET_LABEL15:(void)0; +((struct instance_standard__NativeArray*)var273)->values[0]=var282; +{ +var283 = ((val*(*)(val* self))(var_value2->class->vft[COLOR_standard__string__Object__to_s]))(var_value2); /* to_s on */ } +((struct instance_standard__NativeArray*)var273)->values[2]=var283; +{ +var284 = ((val*(*)(val* self))(var273->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var273); /* native_to_s on */ } -var_recv = var14; +varonce272 = var273; { -{ /* Inline model#MMethodDef#msignature (self) on */ -var19 = self->attrs[COLOR_nit__model__MMethodDef___msignature].val; /* _msignature on */ -var17 = var19; -RET_LABEL18:(void)0; +standard___standard__Array___standard__abstract_collection__SimpleCollection__add(var_test, var284); /* Direct call array#Array#add on */ } +} else { +var_incompatible = 1; } -{ -{ /* Inline model#MPropDef#mclassdef (self) on */ -var22 = self->attrs[COLOR_nit__model__MPropDef___mclassdef].val; /* _mclassdef on */ -if (unlikely(var22 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdef"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 2010); -show_backtrace(1); } -var20 = var22; -RET_LABEL21:(void)0; } +} else { +{ +var285 = ((short int(*)(val* self))(var_t2->class->vft[COLOR_nit__abstract_compiler__MType__is_c_primitive]))(var_t2); /* is_c_primitive on */ } +if (var285){ +var_primitive = var_t2; { -{ /* Inline model#MClassDef#mmodule (var20) on */ -var25 = var20->attrs[COLOR_nit__model__MClassDef___mmodule].val; /* _mmodule on */ -if (unlikely(var25 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 489); -show_backtrace(1); +var286 = nit___nit__SeparateCompilerVisitor___can_be_primitive(self, var_value1); } -var23 = var25; -RET_LABEL24:(void)0; +if (var286){ +{ +{ /* Inline separate_compiler#MType#is_tagged (var_t2) on */ +var289 = var_t2->attrs[COLOR_nit__separate_compiler__MType___is_tagged].s; /* _is_tagged on */ +var287 = var289; +RET_LABEL288:(void)0; } } -var26 = 1; -if (var17 == NULL) { -PRINT_ERROR("Runtime error: %s", "Receiver is null"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_compiler, 1783); -show_backtrace(1); +if (var287){ +if (unlikely(varonce290==NULL)) { +var291 = NEW_standard__NativeArray(6l, &type_standard__NativeArray__standard__String); +if (likely(varonce292!=NULL)) { +var293 = varonce292; +} else { +var294 = " = "; +var295 = standard___standard__NativeString___to_s_with_length(var294, 3l); +var293 = var295; +varonce292 = var293; +} +((struct instance_standard__NativeArray*)var291)->values[1]=var293; +if (likely(varonce296!=NULL)) { +var297 = varonce296; +} else { +var298 = " == "; +var299 = standard___standard__NativeString___to_s_with_length(var298, 4l); +var297 = var299; +varonce296 = var297; +} +((struct instance_standard__NativeArray*)var291)->values[3]=var297; +if (likely(varonce300!=NULL)) { +var301 = varonce300; +} else { +var302 = ";"; +var303 = standard___standard__NativeString___to_s_with_length(var302, 1l); +var301 = var303; +varonce300 = var301; +} +((struct instance_standard__NativeArray*)var291)->values[5]=var301; } else { -var27 = nit___nit__MSignature___MType__resolve_for(var17, var_recv, var_recv, var23, var26); +var291 = varonce290; +varonce290 = NULL; } -var_msignature = var27; -var28 = NEW_nit__SeparateRuntimeFunction(&type_nit__SeparateRuntimeFunction); { -var29 = nit___nit__MPropDef___nit__model_base__MEntity__c_name(self); +var304 = ((val*(*)(val* self))(var_res->class->vft[COLOR_standard__string__Object__to_s]))(var_res); /* to_s on */ } +((struct instance_standard__NativeArray*)var291)->values[0]=var304; { -((void (*)(val* self, val* p0))(var28->class->vft[COLOR_nit__abstract_compiler__AbstractRuntimeFunction__mmethoddef_61d]))(var28, self) /* mmethoddef= on */; +var305 = ((val*(*)(val* self))(var_value1->class->vft[COLOR_standard__string__Object__to_s]))(var_value1); /* to_s on */ } +((struct instance_standard__NativeArray*)var291)->values[2]=var305; { -((void (*)(val* self, val* p0))(var28->class->vft[COLOR_nit__separate_compiler__SeparateRuntimeFunction__called_recv_61d]))(var28, var_recv) /* called_recv= on */; +var306 = ((val*(*)(val* self))(var_value2->class->vft[COLOR_standard__string__Object__to_s]))(var_value2); /* to_s on */ } +((struct instance_standard__NativeArray*)var291)->values[4]=var306; { -((void (*)(val* self, val* p0))(var28->class->vft[COLOR_nit__separate_compiler__SeparateRuntimeFunction__called_signature_61d]))(var28, var_msignature) /* called_signature= on */; +var307 = ((val*(*)(val* self))(var291->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var291); /* native_to_s on */ } +varonce290 = var291; { -((void (*)(val* self, val* p0))(var28->class->vft[COLOR_nit__separate_compiler__SeparateRuntimeFunction__build_c_name_61d]))(var28, var29) /* build_c_name= on */; +nit___nit__AbstractCompilerVisitor___add(self, var307); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on */ +} +var = var_res; +goto RET_LABEL; +} else { } { -((void (*)(val* self))(var28->class->vft[COLOR_standard__kernel__Object__init]))(var28) /* init on */; +{ /* Inline abstract_compiler#AbstractCompilerVisitor#compiler (self) on */ +var310 = self->attrs[COLOR_nit__abstract_compiler__AbstractCompilerVisitor___compiler].val; /* _compiler on */ +if (unlikely(var310 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _compiler"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1102); +fatal_exit(1); +} +var308 = var310; +RET_LABEL309:(void)0; +} } -var_res = var28; { -{ /* Inline separate_compiler#MMethodDef#separate_runtime_function_cache= (self,var_res) on */ -self->attrs[COLOR_nit__separate_compiler__MMethodDef___separate_runtime_function_cache].val = var_res; /* _separate_runtime_function_cache on */ -RET_LABEL30:(void)0; +{ /* Inline abstract_compiler#AbstractCompiler#modelbuilder (var308) on */ +var313 = var308->attrs[COLOR_nit__abstract_compiler__AbstractCompiler___modelbuilder].val; /* _modelbuilder on */ +if (unlikely(var313 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 522); +fatal_exit(1); } +var311 = var313; +RET_LABEL312:(void)0; } -} else { } -var = var_res; -goto RET_LABEL; -RET_LABEL:; -return var; +{ +{ /* Inline modelbuilder_base#ModelBuilder#toolcontext (var311) on */ +var316 = var311->attrs[COLOR_nit__modelbuilder_base__ModelBuilder___toolcontext].val; /* _toolcontext on */ +if (unlikely(var316 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__modelbuilder_base, 47); +fatal_exit(1); } -/* method separate_compiler#MMethodDef#separate_runtime_function_cache for (self: MMethodDef): nullable SeparateRuntimeFunction */ -val* nit__separate_compiler___MMethodDef___separate_runtime_function_cache(val* self) { -val* var /* : nullable SeparateRuntimeFunction */; -val* var1 /* : nullable SeparateRuntimeFunction */; -var1 = self->attrs[COLOR_nit__separate_compiler__MMethodDef___separate_runtime_function_cache].val; /* _separate_runtime_function_cache on */ -var = var1; -RET_LABEL:; -return var; +var314 = var316; +RET_LABEL315:(void)0; } -/* method separate_compiler#MMethodDef#separate_runtime_function_cache= for (self: MMethodDef, nullable SeparateRuntimeFunction) */ -void nit__separate_compiler___MMethodDef___separate_runtime_function_cache_61d(val* self, val* p0) { -self->attrs[COLOR_nit__separate_compiler__MMethodDef___separate_runtime_function_cache].val = p0; /* _separate_runtime_function_cache on */ -RET_LABEL:; } -/* method separate_compiler#MMethodDef#virtual_runtime_function for (self: MMethodDef): SeparateRuntimeFunction */ -val* nit__separate_compiler___MMethodDef___virtual_runtime_function(val* self) { -val* var /* : SeparateRuntimeFunction */; -val* var1 /* : nullable SeparateRuntimeFunction */; -val* var3 /* : nullable SeparateRuntimeFunction */; -val* var_res /* var res: nullable SeparateRuntimeFunction */; -val* var4 /* : null */; -short int var5 /* : Bool */; -short int var6 /* : Bool */; -val* var_other /* var other: nullable Object */; -short int var8 /* : Bool */; -short int var10 /* : Bool */; -val* var11 /* : MProperty */; -val* var13 /* : MProperty */; -val* var14 /* : MPropDef */; -val* var16 /* : MPropDef */; -val* var17 /* : MClassDef */; -val* var19 /* : MClassDef */; -val* var_intromclassdef /* var intromclassdef: MClassDef */; -val* var20 /* : MClassType */; -val* var22 /* : MClassType */; -val* var_recv /* var recv: MClassType */; -val* var23 /* : SeparateRuntimeFunction */; -val* var24 /* : MType */; -val* var26 /* : MType */; -short int var27 /* : Bool */; -short int var29 /* : Bool */; -short int var31 /* : Bool */; -val* var33 /* : MProperty */; -val* var35 /* : MProperty */; -val* var36 /* : MPropDef */; -val* var38 /* : MPropDef */; -val* var39 /* : nullable MSignature */; -val* var41 /* : nullable MSignature */; -val* var42 /* : MModule */; -val* var44 /* : MModule */; -short int var45 /* : Bool */; -val* var46 /* : MSignature */; -val* var_msignature /* var msignature: MSignature */; -short int var47 /* : Bool */; -val* var48 /* : String */; -val* var49 /* : MType */; -val* var51 /* : MType */; -val* var52 /* : String */; -short int var53 /* : Bool */; -short int var_ /* var : Bool */; -val* var54 /* : MSignature */; -val* var56 /* : MSignature */; -short int var57 /* : Bool */; -val* var59 /* : SeparateRuntimeFunction */; -static val* varonce; -val* var60 /* : String */; -char* var61 /* : NativeString */; -long var62 /* : Int */; -val* var63 /* : FlatString */; -val* var64 /* : String */; -val* var65 /* : Array[Object] */; -long var66 /* : Int */; -val* var67 /* : NativeArray[Object] */; -val* var68 /* : String */; -short int var70 /* : Bool */; { -{ /* Inline separate_compiler#MMethodDef#virtual_runtime_function_cache (self) on */ -var3 = self->attrs[COLOR_nit__separate_compiler__MMethodDef___virtual_runtime_function_cache].val; /* _virtual_runtime_function_cache on */ -var1 = var3; -RET_LABEL2:(void)0; +{ /* Inline separate_compiler#ToolContext#opt_no_tag_primitives (var314) on */ +var319 = var314->attrs[COLOR_nit__separate_compiler__ToolContext___opt_no_tag_primitives].val; /* _opt_no_tag_primitives on */ +if (unlikely(var319 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_no_tag_primitives"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_compiler, 32); +fatal_exit(1); } +var317 = var319; +RET_LABEL318:(void)0; } -var_res = var1; -var4 = NULL; -if (var_res == NULL) { -var5 = 1; /* is null */ -} else { -var5 = 0; /* arg is null but recv is not */ } -if (0) { -{ /* Inline kernel#Object#== (var_res,var4) on */ -var_other = var4; { -{ /* Inline kernel#Object#is_same_instance (var_res,var_other) on */ -var10 = var_res == var_other; -var8 = var10; -goto RET_LABEL9; -RET_LABEL9:(void)0; +{ /* Inline opts#Option#value (var317) on */ +var322 = var317->attrs[COLOR_opts__Option___value].val; /* _value on */ +var320 = var322; +RET_LABEL321:(void)0; } } -var6 = var8; -goto RET_LABEL7; -RET_LABEL7:(void)0; +var323 = (short int)((long)(var320)>>2); +var324 = !var323; +if (var324){ +if (unlikely(varonce325==NULL)) { +var326 = NEW_standard__NativeArray(3l, &type_standard__NativeArray__standard__String); +if (likely(varonce327!=NULL)) { +var328 = varonce327; +} else { +var329 = "(!"; +var330 = standard___standard__NativeString___to_s_with_length(var329, 2l); +var328 = var330; +varonce327 = var328; } -var5 = var6; +((struct instance_standard__NativeArray*)var326)->values[0]=var328; +if (likely(varonce331!=NULL)) { +var332 = varonce331; +} else { +var333 = ")"; +var334 = standard___standard__NativeString___to_s_with_length(var333, 1l); +var332 = var334; +varonce331 = var332; } -if (var5){ -{ -{ /* Inline model#MPropDef#mproperty (self) on */ -var13 = self->attrs[COLOR_nit__model__MPropDef___mproperty].val; /* _mproperty on */ -if (unlikely(var13 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 2013); -show_backtrace(1); +((struct instance_standard__NativeArray*)var326)->values[2]=var332; +} else { +var326 = varonce325; +varonce325 = NULL; } -var11 = var13; -RET_LABEL12:(void)0; +{ +var335 = nit___nit__SeparateCompilerVisitor___extract_tag(self, var_value1); } +((struct instance_standard__NativeArray*)var326)->values[1]=var335; +{ +var336 = ((val*(*)(val* self))(var326->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var326); /* native_to_s on */ } +varonce325 = var326; { -{ /* Inline model#MProperty#intro (var11) on */ -var16 = var11->attrs[COLOR_nit__model__MProperty___intro].val; /* _intro on */ -if (unlikely(var16 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1773); -show_backtrace(1); +standard___standard__Array___standard__abstract_collection__SimpleCollection__add(var_test, var336); /* Direct call array#Array#add on */ } -var14 = var16; -RET_LABEL15:(void)0; +} else { +} +if (unlikely(varonce337==NULL)) { +var338 = NEW_standard__NativeArray(4l, &type_standard__NativeArray__standard__String); +if (likely(varonce339!=NULL)) { +var340 = varonce339; +} else { +var341 = "->class == "; +var342 = standard___standard__NativeString___to_s_with_length(var341, 11l); +var340 = var342; +varonce339 = var340; +} +((struct instance_standard__NativeArray*)var338)->values[1]=var340; +if (likely(varonce343!=NULL)) { +var344 = varonce343; +} else { +var345 = "->class"; +var346 = standard___standard__NativeString___to_s_with_length(var345, 7l); +var344 = var346; +varonce343 = var344; } +((struct instance_standard__NativeArray*)var338)->values[3]=var344; +} else { +var338 = varonce337; +varonce337 = NULL; } { -{ /* Inline model#MPropDef#mclassdef (var14) on */ -var19 = var14->attrs[COLOR_nit__model__MPropDef___mclassdef].val; /* _mclassdef on */ -if (unlikely(var19 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdef"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 2010); -show_backtrace(1); +var347 = ((val*(*)(val* self))(var_value1->class->vft[COLOR_standard__string__Object__to_s]))(var_value1); /* to_s on */ } -var17 = var19; -RET_LABEL18:(void)0; +((struct instance_standard__NativeArray*)var338)->values[0]=var347; +{ +var348 = ((val*(*)(val* self))(var_value2->class->vft[COLOR_standard__string__Object__to_s]))(var_value2); /* to_s on */ } +((struct instance_standard__NativeArray*)var338)->values[2]=var348; +{ +var349 = ((val*(*)(val* self))(var338->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var338); /* native_to_s on */ } -var_intromclassdef = var17; +varonce337 = var338; { -{ /* Inline model#MClassDef#bound_mtype (var_intromclassdef) on */ -var22 = var_intromclassdef->attrs[COLOR_nit__model__MClassDef___bound_mtype].val; /* _bound_mtype on */ -if (unlikely(var22 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _bound_mtype"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 495); -show_backtrace(1); +standard___standard__Array___standard__abstract_collection__SimpleCollection__add(var_test, var349); /* Direct call array#Array#add on */ } -var20 = var22; -RET_LABEL21:(void)0; +} else { +var_incompatible = 1; } +} else { +var_primitive = ((val*)NULL); } -var_recv = var20; -{ -var23 = nit__separate_compiler___MMethodDef___separate_runtime_function(self); } -var_res = var23; -{ -{ /* Inline separate_compiler#SeparateRuntimeFunction#called_recv (var_res) on */ -var26 = var_res->attrs[COLOR_nit__separate_compiler__SeparateRuntimeFunction___called_recv].val; /* _called_recv on */ -if (unlikely(var26 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _called_recv"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_compiler, 1845); -show_backtrace(1); +if (var_incompatible){ +if (var_maybe_null){ +if (unlikely(varonce350==NULL)) { +var351 = NEW_standard__NativeArray(10l, &type_standard__NativeArray__standard__String); +if (likely(varonce352!=NULL)) { +var353 = varonce352; +} else { +var354 = " = "; +var355 = standard___standard__NativeString___to_s_with_length(var354, 3l); +var353 = var355; +varonce352 = var353; +} +((struct instance_standard__NativeArray*)var351)->values[1]=var353; +if (likely(varonce356!=NULL)) { +var357 = varonce356; +} else { +var358 = " == "; +var359 = standard___standard__NativeString___to_s_with_length(var358, 4l); +var357 = var359; +varonce356 = var357; +} +((struct instance_standard__NativeArray*)var351)->values[3]=var357; +if (likely(varonce360!=NULL)) { +var361 = varonce360; +} else { +var362 = "; /* incompatible types "; +var363 = standard___standard__NativeString___to_s_with_length(var362, 24l); +var361 = var363; +varonce360 = var361; +} +((struct instance_standard__NativeArray*)var351)->values[5]=var361; +if (likely(varonce364!=NULL)) { +var365 = varonce364; +} else { +var366 = " vs. "; +var367 = standard___standard__NativeString___to_s_with_length(var366, 5l); +var365 = var367; +varonce364 = var365; } -var24 = var26; -RET_LABEL25:(void)0; +((struct instance_standard__NativeArray*)var351)->values[7]=var365; +if (likely(varonce368!=NULL)) { +var369 = varonce368; +} else { +var370 = "; but may be NULL*/"; +var371 = standard___standard__NativeString___to_s_with_length(var370, 19l); +var369 = var371; +varonce368 = var369; } +((struct instance_standard__NativeArray*)var351)->values[9]=var369; +} else { +var351 = varonce350; +varonce350 = NULL; } { -{ /* Inline kernel#Object#== (var24,var_recv) on */ -var_other = var_recv; +var372 = ((val*(*)(val* self))(var_res->class->vft[COLOR_standard__string__Object__to_s]))(var_res); /* to_s on */ +} +((struct instance_standard__NativeArray*)var351)->values[0]=var372; { -{ /* Inline kernel#Object#is_same_instance (var24,var_other) on */ -var31 = var24 == var_other; -var29 = var31; -goto RET_LABEL30; -RET_LABEL30:(void)0; +var373 = ((val*(*)(val* self))(var_value1->class->vft[COLOR_standard__string__Object__to_s]))(var_value1); /* to_s on */ } +((struct instance_standard__NativeArray*)var351)->values[2]=var373; +{ +var374 = ((val*(*)(val* self))(var_value2->class->vft[COLOR_standard__string__Object__to_s]))(var_value2); /* to_s on */ } -var27 = var29; -goto RET_LABEL28; -RET_LABEL28:(void)0; +((struct instance_standard__NativeArray*)var351)->values[4]=var374; +{ +var375 = ((val*(*)(val* self))(var_t1->class->vft[COLOR_standard__string__Object__to_s]))(var_t1); /* to_s on */ } +((struct instance_standard__NativeArray*)var351)->values[6]=var375; +{ +var376 = ((val*(*)(val* self))(var_t2->class->vft[COLOR_standard__string__Object__to_s]))(var_t2); /* to_s on */ } -if (var27){ +((struct instance_standard__NativeArray*)var351)->values[8]=var376; { -{ /* Inline separate_compiler#MMethodDef#virtual_runtime_function_cache= (self,var_res) on */ -self->attrs[COLOR_nit__separate_compiler__MMethodDef___virtual_runtime_function_cache].val = var_res; /* _virtual_runtime_function_cache on */ -RET_LABEL32:(void)0; +var377 = ((val*(*)(val* self))(var351->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var351); /* native_to_s on */ } +varonce350 = var351; +{ +nit___nit__AbstractCompilerVisitor___add(self, var377); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on */ } var = var_res; goto RET_LABEL; } else { +if (unlikely(varonce378==NULL)) { +var379 = NEW_standard__NativeArray(6l, &type_standard__NativeArray__standard__String); +if (likely(varonce380!=NULL)) { +var381 = varonce380; +} else { +var382 = " = 0; /* incompatible types "; +var383 = standard___standard__NativeString___to_s_with_length(var382, 28l); +var381 = var383; +varonce380 = var381; } -{ -{ /* Inline model#MPropDef#mproperty (self) on */ -var35 = self->attrs[COLOR_nit__model__MPropDef___mproperty].val; /* _mproperty on */ -if (unlikely(var35 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 2013); -show_backtrace(1); +((struct instance_standard__NativeArray*)var379)->values[1]=var381; +if (likely(varonce384!=NULL)) { +var385 = varonce384; +} else { +var386 = " vs. "; +var387 = standard___standard__NativeString___to_s_with_length(var386, 5l); +var385 = var387; +varonce384 = var385; } -var33 = var35; -RET_LABEL34:(void)0; +((struct instance_standard__NativeArray*)var379)->values[3]=var385; +if (likely(varonce388!=NULL)) { +var389 = varonce388; +} else { +var390 = "; cannot be NULL */"; +var391 = standard___standard__NativeString___to_s_with_length(var390, 19l); +var389 = var391; +varonce388 = var389; } +((struct instance_standard__NativeArray*)var379)->values[5]=var389; +} else { +var379 = varonce378; +varonce378 = NULL; } { -{ /* Inline model#MProperty#intro (var33) on */ -var38 = var33->attrs[COLOR_nit__model__MProperty___intro].val; /* _intro on */ -if (unlikely(var38 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1773); -show_backtrace(1); -} -var36 = var38; -RET_LABEL37:(void)0; +var392 = ((val*(*)(val* self))(var_res->class->vft[COLOR_standard__string__Object__to_s]))(var_res); /* to_s on */ } +((struct instance_standard__NativeArray*)var379)->values[0]=var392; +{ +var393 = ((val*(*)(val* self))(var_t1->class->vft[COLOR_standard__string__Object__to_s]))(var_t1); /* to_s on */ } +((struct instance_standard__NativeArray*)var379)->values[2]=var393; { -{ /* Inline model#MMethodDef#msignature (var36) on */ -var41 = var36->attrs[COLOR_nit__model__MMethodDef___msignature].val; /* _msignature on */ -var39 = var41; -RET_LABEL40:(void)0; +var394 = ((val*(*)(val* self))(var_t2->class->vft[COLOR_standard__string__Object__to_s]))(var_t2); /* to_s on */ } +((struct instance_standard__NativeArray*)var379)->values[4]=var394; +{ +var395 = ((val*(*)(val* self))(var379->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var379); /* native_to_s on */ } +varonce378 = var379; { -{ /* Inline model#MClassDef#mmodule (var_intromclassdef) on */ -var44 = var_intromclassdef->attrs[COLOR_nit__model__MClassDef___mmodule].val; /* _mmodule on */ -if (unlikely(var44 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 489); -show_backtrace(1); +nit___nit__AbstractCompilerVisitor___add(self, var395); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on */ } -var42 = var44; -RET_LABEL43:(void)0; +var = var_res; +goto RET_LABEL; } +} else { } -var45 = 1; -if (var39 == NULL) { -PRINT_ERROR("Runtime error: %s", "Receiver is null"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_compiler, 1808); -show_backtrace(1); +if (var_primitive == NULL) { +var396 = 0; /* is null */ } else { -var46 = nit___nit__MSignature___MType__resolve_for(var39, var_recv, var_recv, var42, var45); +var396 = 1; /* arg is null and recv is not */ } -var_msignature = var46; +if (0) { +{ /* Inline kernel#Object#!= (var_primitive,((val*)NULL)) on */ +var_other399 = ((val*)NULL); { -var48 = nit__abstract_compiler___MClassType___MType__ctype(var_recv); +var400 = ((short int(*)(val* self, val* p0))(var_primitive->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_primitive, var_other399); /* == on */ +} +var401 = !var400; +var397 = var401; +goto RET_LABEL398; +RET_LABEL398:(void)0; } +var396 = var397; +} +if (var396){ { -{ /* Inline separate_compiler#SeparateRuntimeFunction#called_recv (var_res) on */ -var51 = var_res->attrs[COLOR_nit__separate_compiler__SeparateRuntimeFunction___called_recv].val; /* _called_recv on */ -if (unlikely(var51 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _called_recv"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_compiler, 1845); -show_backtrace(1); +{ /* Inline separate_compiler#MType#is_tagged (var_primitive) on */ +var404 = var_primitive->attrs[COLOR_nit__separate_compiler__MType___is_tagged].s; /* _is_tagged on */ +var402 = var404; +RET_LABEL403:(void)0; +} } -var49 = var51; -RET_LABEL50:(void)0; +if (var402){ +if (unlikely(varonce405==NULL)) { +var406 = NEW_standard__NativeArray(6l, &type_standard__NativeArray__standard__String); +if (likely(varonce407!=NULL)) { +var408 = varonce407; +} else { +var409 = " = "; +var410 = standard___standard__NativeString___to_s_with_length(var409, 3l); +var408 = var410; +varonce407 = var408; } +((struct instance_standard__NativeArray*)var406)->values[1]=var408; +if (likely(varonce411!=NULL)) { +var412 = varonce411; +} else { +var413 = " == "; +var414 = standard___standard__NativeString___to_s_with_length(var413, 4l); +var412 = var414; +varonce411 = var412; } -{ -var52 = ((val* (*)(val* self))(var49->class->vft[COLOR_nit__abstract_compiler__MType__ctype]))(var49) /* ctype on */; +((struct instance_standard__NativeArray*)var406)->values[3]=var412; +if (likely(varonce415!=NULL)) { +var416 = varonce415; +} else { +var417 = ";"; +var418 = standard___standard__NativeString___to_s_with_length(var417, 1l); +var416 = var418; +varonce415 = var416; +} +((struct instance_standard__NativeArray*)var406)->values[5]=var416; +} else { +var406 = varonce405; +varonce405 = NULL; } { -var53 = ((short int (*)(val* self, val* p0))(var48->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var48, var52) /* == on */; +var419 = ((val*(*)(val* self))(var_res->class->vft[COLOR_standard__string__Object__to_s]))(var_res); /* to_s on */ } -var_ = var53; -if (var53){ +((struct instance_standard__NativeArray*)var406)->values[0]=var419; { -{ /* Inline separate_compiler#SeparateRuntimeFunction#called_signature (var_res) on */ -var56 = var_res->attrs[COLOR_nit__separate_compiler__SeparateRuntimeFunction___called_signature].val; /* _called_signature on */ -if (unlikely(var56 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _called_signature"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_compiler, 1848); -show_backtrace(1); +var420 = ((val*(*)(val* self))(var_value1->class->vft[COLOR_standard__string__Object__to_s]))(var_value1); /* to_s on */ } -var54 = var56; -RET_LABEL55:(void)0; +((struct instance_standard__NativeArray*)var406)->values[2]=var420; +{ +var421 = ((val*(*)(val* self))(var_value2->class->vft[COLOR_standard__string__Object__to_s]))(var_value2); /* to_s on */ } +((struct instance_standard__NativeArray*)var406)->values[4]=var421; +{ +var422 = ((val*(*)(val* self))(var406->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var406); /* native_to_s on */ } +varonce405 = var406; { -var57 = nit__separate_compiler___MSignature___c_equiv(var_msignature, var54); +nit___nit__AbstractCompilerVisitor___add(self, var422); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on */ } -var47 = var57; +var = var_res; +goto RET_LABEL; } else { -var47 = var_; } -if (var47){ -{ -{ /* Inline separate_compiler#MMethodDef#virtual_runtime_function_cache= (self,var_res) on */ -self->attrs[COLOR_nit__separate_compiler__MMethodDef___virtual_runtime_function_cache].val = var_res; /* _virtual_runtime_function_cache on */ -RET_LABEL58:(void)0; +if (unlikely(varonce423==NULL)) { +var424 = NEW_standard__NativeArray(9l, &type_standard__NativeArray__standard__String); +if (likely(varonce425!=NULL)) { +var426 = varonce425; +} else { +var427 = "((struct instance_"; +var428 = standard___standard__NativeString___to_s_with_length(var427, 18l); +var426 = var428; +varonce425 = var426; } +((struct instance_standard__NativeArray*)var424)->values[0]=var426; +if (likely(varonce429!=NULL)) { +var430 = varonce429; +} else { +var431 = "*)"; +var432 = standard___standard__NativeString___to_s_with_length(var431, 2l); +var430 = var432; +varonce429 = var430; } -var = var_res; -goto RET_LABEL; +((struct instance_standard__NativeArray*)var424)->values[2]=var430; +if (likely(varonce433!=NULL)) { +var434 = varonce433; } else { +var435 = ")->value == ((struct instance_"; +var436 = standard___standard__NativeString___to_s_with_length(var435, 30l); +var434 = var436; +varonce433 = var434; +} +((struct instance_standard__NativeArray*)var424)->values[4]=var434; +if (likely(varonce437!=NULL)) { +var438 = varonce437; +} else { +var439 = "*)"; +var440 = standard___standard__NativeString___to_s_with_length(var439, 2l); +var438 = var440; +varonce437 = var438; +} +((struct instance_standard__NativeArray*)var424)->values[6]=var438; +if (likely(varonce441!=NULL)) { +var442 = varonce441; +} else { +var443 = ")->value"; +var444 = standard___standard__NativeString___to_s_with_length(var443, 8l); +var442 = var444; +varonce441 = var442; } -var59 = NEW_nit__SeparateRuntimeFunction(&type_nit__SeparateRuntimeFunction); -if (varonce) { -var60 = varonce; +((struct instance_standard__NativeArray*)var424)->values[8]=var442; } else { -var61 = "VIRTUAL_"; -var62 = 8; -var63 = standard___standard__NativeString___to_s_with_length(var61, var62); -var60 = var63; -varonce = var60; +var424 = varonce423; +varonce423 = NULL; } { -var64 = nit___nit__MPropDef___nit__model_base__MEntity__c_name(self); +var445 = ((val*(*)(val* self))(var_primitive->class->vft[COLOR_nit__model_base__MEntity__c_name]))(var_primitive); /* c_name on */ } -var65 = NEW_standard__Array(&type_standard__Array__standard__Object); -{ /* var65 = array_instance Array[Object] */ -var66 = 2; -var67 = NEW_standard__NativeArray(var66, &type_standard__NativeArray__standard__Object); -((struct instance_standard__NativeArray*)var67)->values[0] = (val*) var60; -((struct instance_standard__NativeArray*)var67)->values[1] = (val*) var64; +((struct instance_standard__NativeArray*)var424)->values[1]=var445; { -((void (*)(val* self, val* p0, long p1))(var65->class->vft[COLOR_standard__array__Array__with_native]))(var65, var67, var66) /* with_native on */; +var446 = ((val*(*)(val* self))(var_value1->class->vft[COLOR_standard__string__Object__to_s]))(var_value1); /* to_s on */ } +((struct instance_standard__NativeArray*)var424)->values[3]=var446; +{ +var447 = ((val*(*)(val* self))(var_primitive->class->vft[COLOR_nit__model_base__MEntity__c_name]))(var_primitive); /* c_name on */ } +((struct instance_standard__NativeArray*)var424)->values[5]=var447; { -var68 = ((val* (*)(val* self))(var65->class->vft[COLOR_standard__string__Object__to_s]))(var65) /* to_s on */; +var448 = ((val*(*)(val* self))(var_value2->class->vft[COLOR_standard__string__Object__to_s]))(var_value2); /* to_s on */ } +((struct instance_standard__NativeArray*)var424)->values[7]=var448; { -((void (*)(val* self, val* p0))(var59->class->vft[COLOR_nit__abstract_compiler__AbstractRuntimeFunction__mmethoddef_61d]))(var59, self) /* mmethoddef= on */; +var449 = ((val*(*)(val* self))(var424->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var424); /* native_to_s on */ } +varonce423 = var424; { -((void (*)(val* self, val* p0))(var59->class->vft[COLOR_nit__separate_compiler__SeparateRuntimeFunction__called_recv_61d]))(var59, var_recv) /* called_recv= on */; +standard___standard__Array___standard__abstract_collection__SimpleCollection__add(var_test, var449); /* Direct call array#Array#add on */ } +} else { { -((void (*)(val* self, val* p0))(var59->class->vft[COLOR_nit__separate_compiler__SeparateRuntimeFunction__called_signature_61d]))(var59, var_msignature) /* called_signature= on */; +var451 = nit___nit__SeparateCompilerVisitor___can_be_primitive(self, var_value1); } +var_452 = var451; +if (var451){ { -((void (*)(val* self, val* p0))(var59->class->vft[COLOR_nit__separate_compiler__SeparateRuntimeFunction__build_c_name_61d]))(var59, var68) /* build_c_name= on */; +var453 = nit___nit__SeparateCompilerVisitor___can_be_primitive(self, var_value2); +} +var450 = var453; +} else { +var450 = var_452; } +if (var450){ { -((void (*)(val* self))(var59->class->vft[COLOR_standard__kernel__Object__init]))(var59) /* init on */; +{ /* Inline abstract_compiler#AbstractCompilerVisitor#compiler (self) on */ +var456 = self->attrs[COLOR_nit__abstract_compiler__AbstractCompilerVisitor___compiler].val; /* _compiler on */ +if (unlikely(var456 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _compiler"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1102); +fatal_exit(1); +} +var454 = var456; +RET_LABEL455:(void)0; +} } -var_res = var59; { -{ /* Inline separate_compiler#MMethodDef#virtual_runtime_function_cache= (self,var_res) on */ -self->attrs[COLOR_nit__separate_compiler__MMethodDef___virtual_runtime_function_cache].val = var_res; /* _virtual_runtime_function_cache on */ -RET_LABEL69:(void)0; +{ /* Inline abstract_compiler#AbstractCompiler#modelbuilder (var454) on */ +var459 = var454->attrs[COLOR_nit__abstract_compiler__AbstractCompiler___modelbuilder].val; /* _modelbuilder on */ +if (unlikely(var459 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 522); +fatal_exit(1); +} +var457 = var459; +RET_LABEL458:(void)0; } } -var70 = 1; { -{ /* Inline separate_compiler#SeparateRuntimeFunction#is_thunk= (var_res,var70) on */ -var_res->attrs[COLOR_nit__separate_compiler__SeparateRuntimeFunction___is_thunk].s = var70; /* _is_thunk on */ -RET_LABEL71:(void)0; +{ /* Inline modelbuilder_base#ModelBuilder#toolcontext (var457) on */ +var462 = var457->attrs[COLOR_nit__modelbuilder_base__ModelBuilder___toolcontext].val; /* _toolcontext on */ +if (unlikely(var462 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__modelbuilder_base, 47); +fatal_exit(1); } +var460 = var462; +RET_LABEL461:(void)0; } -} else { } -var = var_res; -goto RET_LABEL; -RET_LABEL:; -return var; +{ +{ /* Inline separate_compiler#ToolContext#opt_no_tag_primitives (var460) on */ +var465 = var460->attrs[COLOR_nit__separate_compiler__ToolContext___opt_no_tag_primitives].val; /* _opt_no_tag_primitives on */ +if (unlikely(var465 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_no_tag_primitives"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_compiler, 32); +fatal_exit(1); } -/* method separate_compiler#MMethodDef#virtual_runtime_function_cache for (self: MMethodDef): nullable SeparateRuntimeFunction */ -val* nit__separate_compiler___MMethodDef___virtual_runtime_function_cache(val* self) { -val* var /* : nullable SeparateRuntimeFunction */; -val* var1 /* : nullable SeparateRuntimeFunction */; -var1 = self->attrs[COLOR_nit__separate_compiler__MMethodDef___virtual_runtime_function_cache].val; /* _virtual_runtime_function_cache on */ -var = var1; -RET_LABEL:; -return var; +var463 = var465; +RET_LABEL464:(void)0; } -/* method separate_compiler#MMethodDef#virtual_runtime_function_cache= for (self: MMethodDef, nullable SeparateRuntimeFunction) */ -void nit__separate_compiler___MMethodDef___virtual_runtime_function_cache_61d(val* self, val* p0) { -self->attrs[COLOR_nit__separate_compiler__MMethodDef___virtual_runtime_function_cache].val = p0; /* _virtual_runtime_function_cache on */ -RET_LABEL:; } -/* method separate_compiler#MSignature#c_equiv for (self: MSignature, MSignature): Bool */ -short int nit__separate_compiler___MSignature___c_equiv(val* self, val* p0) { -short int var /* : Bool */; -val* var_other /* var other: MSignature */; -short int var1 /* : Bool */; -val* var_other3 /* var other: nullable Object */; -short int var4 /* : Bool */; -short int var6 /* : Bool */; -short int var7 /* : Bool */; -long var8 /* : Int */; -long var9 /* : Int */; -short int var10 /* : Bool */; -short int var12 /* : Bool */; -short int var13 /* : Bool */; -short int var14 /* : Bool */; -long var15 /* : Int */; -long var_i /* var i: Int */; -long var16 /* : Int */; -long var_ /* var : Int */; -short int var17 /* : Bool */; -short int var19 /* : Bool */; -int cltype; -int idtype; -const char* var_class_name; -short int var20 /* : Bool */; -val* var21 /* : Array[MParameter] */; -val* var23 /* : Array[MParameter] */; -val* var24 /* : nullable Object */; -val* var25 /* : MType */; -val* var27 /* : MType */; -val* var28 /* : String */; -val* var29 /* : Array[MParameter] */; -val* var31 /* : Array[MParameter] */; -val* var32 /* : nullable Object */; -val* var33 /* : MType */; -val* var35 /* : MType */; -val* var36 /* : String */; -short int var37 /* : Bool */; -val* var_other39 /* var other: nullable Object */; -short int var40 /* : Bool */; -short int var41 /* : Bool */; -short int var42 /* : Bool */; -long var43 /* : Int */; -long var44 /* : Int */; -val* var45 /* : nullable MType */; -val* var47 /* : nullable MType */; -val* var48 /* : nullable MType */; -val* var50 /* : nullable MType */; -short int var51 /* : Bool */; -short int var52 /* : Bool */; -short int var54 /* : Bool */; -short int var55 /* : Bool */; -short int var56 /* : Bool */; -val* var57 /* : nullable MType */; -val* var59 /* : nullable MType */; -val* var60 /* : null */; -short int var61 /* : Bool */; -short int var62 /* : Bool */; -short int var64 /* : Bool */; -short int var66 /* : Bool */; -short int var_67 /* var : Bool */; -val* var68 /* : nullable MType */; -val* var70 /* : nullable MType */; -val* var71 /* : null */; -short int var72 /* : Bool */; -short int var73 /* : Bool */; -short int var75 /* : Bool */; -short int var77 /* : Bool */; -short int var78 /* : Bool */; -val* var79 /* : nullable MType */; -val* var81 /* : nullable MType */; -val* var82 /* : String */; -val* var83 /* : nullable MType */; -val* var85 /* : nullable MType */; -val* var86 /* : String */; -short int var87 /* : Bool */; -short int var89 /* : Bool */; -short int var90 /* : Bool */; -short int var91 /* : Bool */; -short int var92 /* : Bool */; -var_other = p0; -{ -{ /* Inline kernel#Object#== (self,var_other) on */ -var_other3 = var_other; -{ -{ /* Inline kernel#Object#is_same_instance (self,var_other3) on */ -var6 = self == var_other3; -var4 = var6; -goto RET_LABEL5; -RET_LABEL5:(void)0; +{ +{ /* Inline opts#Option#value (var463) on */ +var468 = var463->attrs[COLOR_opts__Option___value].val; /* _value on */ +var466 = var468; +RET_LABEL467:(void)0; } } -var1 = var4; -goto RET_LABEL2; -RET_LABEL2:(void)0; +var469 = (short int)((long)(var466)>>2); +var470 = !var469; +if (var470){ +if (unlikely(varonce471==NULL)) { +var472 = NEW_standard__NativeArray(5l, &type_standard__NativeArray__standard__String); +if (likely(varonce473!=NULL)) { +var474 = varonce473; +} else { +var475 = "(!"; +var476 = standard___standard__NativeString___to_s_with_length(var475, 2l); +var474 = var476; +varonce473 = var474; +} +((struct instance_standard__NativeArray*)var472)->values[0]=var474; +if (likely(varonce477!=NULL)) { +var478 = varonce477; +} else { +var479 = ") && (!"; +var480 = standard___standard__NativeString___to_s_with_length(var479, 7l); +var478 = var480; +varonce477 = var478; } +((struct instance_standard__NativeArray*)var472)->values[2]=var478; +if (likely(varonce481!=NULL)) { +var482 = varonce481; +} else { +var483 = ")"; +var484 = standard___standard__NativeString___to_s_with_length(var483, 1l); +var482 = var484; +varonce481 = var482; } -if (var1){ -var7 = 1; -var = var7; -goto RET_LABEL; +((struct instance_standard__NativeArray*)var472)->values[4]=var482; } else { +var472 = varonce471; +varonce471 = NULL; } { -var8 = nit___nit__MSignature___arity(self); +var485 = nit___nit__SeparateCompilerVisitor___extract_tag(self, var_value1); } +((struct instance_standard__NativeArray*)var472)->values[1]=var485; { -var9 = nit___nit__MSignature___arity(var_other); +var486 = nit___nit__SeparateCompilerVisitor___extract_tag(self, var_value2); } +((struct instance_standard__NativeArray*)var472)->values[3]=var486; { -{ /* Inline kernel#Int#!= (var8,var9) on */ -var12 = var8 == var9; -var13 = !var12; -var10 = var13; -goto RET_LABEL11; -RET_LABEL11:(void)0; +var487 = ((val*(*)(val* self))(var472->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var472); /* native_to_s on */ } +varonce471 = var472; +{ +standard___standard__Array___standard__abstract_collection__SimpleCollection__add(var_test, var487); /* Direct call array#Array#add on */ } -if (var10){ -var14 = 0; -var = var14; -goto RET_LABEL; } else { } -var15 = 0; -var_i = var15; -{ -var16 = nit___nit__MSignature___arity(self); +if (unlikely(varonce488==NULL)) { +var489 = NEW_standard__NativeArray(4l, &type_standard__NativeArray__standard__String); +if (likely(varonce490!=NULL)) { +var491 = varonce490; +} else { +var492 = "->class == "; +var493 = standard___standard__NativeString___to_s_with_length(var492, 11l); +var491 = var493; +varonce490 = var491; } -var_ = var16; -for(;;) { -{ -{ /* Inline kernel#Int#< (var_i,var_) on */ -/* Covariant cast for argument 0 (i) isa OTHER */ -/* isa OTHER */ -var19 = 1; /* easy isa OTHER*/ -if (unlikely(!var19)) { -var_class_name = type_standard__Int.name; -PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name); -PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 410); -show_backtrace(1); +((struct instance_standard__NativeArray*)var489)->values[1]=var491; +if (likely(varonce494!=NULL)) { +var495 = varonce494; +} else { +var496 = "->class"; +var497 = standard___standard__NativeString___to_s_with_length(var496, 7l); +var495 = var497; +varonce494 = var495; } -var20 = var_i < var_; -var17 = var20; -goto RET_LABEL18; -RET_LABEL18:(void)0; +((struct instance_standard__NativeArray*)var489)->values[3]=var495; +} else { +var489 = varonce488; +varonce488 = NULL; } +{ +var498 = ((val*(*)(val* self))(var_value1->class->vft[COLOR_standard__string__Object__to_s]))(var_value1); /* to_s on */ } -if (var17){ +((struct instance_standard__NativeArray*)var489)->values[0]=var498; { -{ /* Inline model#MSignature#mparameters (self) on */ -var23 = self->attrs[COLOR_nit__model__MSignature___mparameters].val; /* _mparameters on */ -if (unlikely(var23 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mparameters"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1592); -show_backtrace(1); +var499 = ((val*(*)(val* self))(var_value2->class->vft[COLOR_standard__string__Object__to_s]))(var_value2); /* to_s on */ } -var21 = var23; -RET_LABEL22:(void)0; +((struct instance_standard__NativeArray*)var489)->values[2]=var499; +{ +var500 = ((val*(*)(val* self))(var489->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var489); /* native_to_s on */ } +varonce488 = var489; +{ +standard___standard__Array___standard__abstract_collection__SimpleCollection__add(var_test, var500); /* Direct call array#Array#add on */ } +var501 = NEW_standard__Array(&type_standard__Array__standard__String); { -var24 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var21, var_i); +standard___standard__Array___standard__kernel__Object__init(var501); /* Direct call array#Array#init on */ } +var_s = var501; { -{ /* Inline model#MParameter#mtype (var24) on */ -var27 = var24->attrs[COLOR_nit__model__MParameter___mtype].val; /* _mtype on */ -if (unlikely(var27 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1690); -show_backtrace(1); +{ /* Inline abstract_compiler#AbstractCompilerVisitor#compiler (self) on */ +var504 = self->attrs[COLOR_nit__abstract_compiler__AbstractCompilerVisitor___compiler].val; /* _compiler on */ +if (unlikely(var504 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _compiler"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1102); +fatal_exit(1); } -var25 = var27; -RET_LABEL26:(void)0; +var502 = var504; +RET_LABEL503:(void)0; } } { -var28 = ((val* (*)(val* self))(var25->class->vft[COLOR_nit__abstract_compiler__MType__ctype]))(var25) /* ctype on */; +{ /* Inline separate_compiler#SeparateCompiler#box_kinds (var502) on */ +var507 = var502->attrs[COLOR_nit__separate_compiler__SeparateCompiler___box_kinds].val; /* _box_kinds on */ +if (unlikely(var507 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _box_kinds"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_compiler, 263); +fatal_exit(1); +} +var505 = var507; +RET_LABEL506:(void)0; +} } +var_508 = var505; { -{ /* Inline model#MSignature#mparameters (var_other) on */ -var31 = var_other->attrs[COLOR_nit__model__MSignature___mparameters].val; /* _mparameters on */ -if (unlikely(var31 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mparameters"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1592); -show_backtrace(1); +var509 = standard___standard__HashMap___standard__abstract_collection__MapRead__iterator(var_508); } -var29 = var31; -RET_LABEL30:(void)0; +var_510 = var509; +for(;;) { +{ +var511 = standard___standard__HashMapIterator___standard__abstract_collection__MapIterator__is_ok(var_510); } +if (var511){ +{ +var512 = standard___standard__HashMapIterator___standard__abstract_collection__MapIterator__key(var_510); } +var_t = var512; { -var32 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var29, var_i); +var513 = standard___standard__HashMapIterator___standard__abstract_collection__MapIterator__item(var_510); } +var514 = (long)(var513)>>2; +var_v = var514; { -{ /* Inline model#MParameter#mtype (var32) on */ -var35 = var32->attrs[COLOR_nit__model__MParameter___mtype].val; /* _mtype on */ -if (unlikely(var35 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1690); -show_backtrace(1); +{ /* Inline model#MClass#mclass_type (var_t) on */ +var517 = var_t->attrs[COLOR_nit__model__MClass___mclass_type].val; /* _mclass_type on */ +if (unlikely(var517 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass_type"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 484); +fatal_exit(1); } -var33 = var35; -RET_LABEL34:(void)0; +var515 = var517; +RET_LABEL516:(void)0; } } { -var36 = ((val* (*)(val* self))(var33->class->vft[COLOR_nit__abstract_compiler__MType__ctype]))(var33) /* ctype on */; +{ /* Inline separate_compiler#MType#is_tagged (var515) on */ +var520 = var515->attrs[COLOR_nit__separate_compiler__MType___is_tagged].s; /* _is_tagged on */ +var518 = var520; +RET_LABEL519:(void)0; } -{ -{ /* Inline kernel#Object#!= (var28,var36) on */ -var_other39 = var36; -{ -var40 = ((short int (*)(val* self, val* p0))(var28->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var28, var_other39) /* == on */; } -var41 = !var40; -var37 = var41; -goto RET_LABEL38; -RET_LABEL38:(void)0; +if (var518){ +goto BREAK_label; +} else { } +if (unlikely(varonce521==NULL)) { +var522 = NEW_standard__NativeArray(13l, &type_standard__NativeArray__standard__String); +if (likely(varonce523!=NULL)) { +var524 = varonce523; +} else { +var525 = "("; +var526 = standard___standard__NativeString___to_s_with_length(var525, 1l); +var524 = var526; +varonce523 = var524; } -if (var37){ -var42 = 0; -var = var42; -goto RET_LABEL; +((struct instance_standard__NativeArray*)var522)->values[0]=var524; +if (likely(varonce527!=NULL)) { +var528 = varonce527; } else { +var529 = "->class->box_kind == "; +var530 = standard___standard__NativeString___to_s_with_length(var529, 21l); +var528 = var530; +varonce527 = var528; } -var43 = 1; -{ -var44 = standard___standard__Int___Discrete__successor(var_i, var43); +((struct instance_standard__NativeArray*)var522)->values[2]=var528; +if (likely(varonce531!=NULL)) { +var532 = varonce531; +} else { +var533 = " && ((struct instance_"; +var534 = standard___standard__NativeString___to_s_with_length(var533, 22l); +var532 = var534; +varonce531 = var532; } -var_i = var44; +((struct instance_standard__NativeArray*)var522)->values[4]=var532; +if (likely(varonce535!=NULL)) { +var536 = varonce535; } else { -goto BREAK_label; +var537 = "*)"; +var538 = standard___standard__NativeString___to_s_with_length(var537, 2l); +var536 = var538; +varonce535 = var536; +} +((struct instance_standard__NativeArray*)var522)->values[6]=var536; +if (likely(varonce539!=NULL)) { +var540 = varonce539; +} else { +var541 = ")->value == ((struct instance_"; +var542 = standard___standard__NativeString___to_s_with_length(var541, 30l); +var540 = var542; +varonce539 = var540; } +((struct instance_standard__NativeArray*)var522)->values[8]=var540; +if (likely(varonce543!=NULL)) { +var544 = varonce543; +} else { +var545 = "*)"; +var546 = standard___standard__NativeString___to_s_with_length(var545, 2l); +var544 = var546; +varonce543 = var544; } -BREAK_label: (void)0; -{ -{ /* Inline model#MSignature#return_mtype (self) on */ -var47 = self->attrs[COLOR_nit__model__MSignature___return_mtype].val; /* _return_mtype on */ -var45 = var47; -RET_LABEL46:(void)0; +((struct instance_standard__NativeArray*)var522)->values[10]=var544; +if (likely(varonce547!=NULL)) { +var548 = varonce547; +} else { +var549 = ")->value)"; +var550 = standard___standard__NativeString___to_s_with_length(var549, 9l); +var548 = var550; +varonce547 = var548; } +((struct instance_standard__NativeArray*)var522)->values[12]=var548; +} else { +var522 = varonce521; +varonce521 = NULL; } { -{ /* Inline model#MSignature#return_mtype (var_other) on */ -var50 = var_other->attrs[COLOR_nit__model__MSignature___return_mtype].val; /* _return_mtype on */ -var48 = var50; -RET_LABEL49:(void)0; +var551 = ((val*(*)(val* self))(var_value1->class->vft[COLOR_standard__string__Object__to_s]))(var_value1); /* to_s on */ } +((struct instance_standard__NativeArray*)var522)->values[1]=var551; +var552 = standard__string___Int___Object__to_s(var_v); +((struct instance_standard__NativeArray*)var522)->values[3]=var552; +{ +var553 = nit___nit__MClass___nit__model_base__MEntity__c_name(var_t); } -if (var45 == NULL) { -var51 = (var48 != NULL); -} else { -{ /* Inline kernel#Object#!= (var45,var48) on */ -var_other39 = var48; +((struct instance_standard__NativeArray*)var522)->values[5]=var553; { -var54 = ((short int (*)(val* self, val* p0))(var45->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var45, var_other39) /* == on */; +var554 = ((val*(*)(val* self))(var_value1->class->vft[COLOR_standard__string__Object__to_s]))(var_value1); /* to_s on */ } -var55 = !var54; -var52 = var55; -goto RET_LABEL53; -RET_LABEL53:(void)0; +((struct instance_standard__NativeArray*)var522)->values[7]=var554; +{ +var555 = nit___nit__MClass___nit__model_base__MEntity__c_name(var_t); } -var51 = var52; +((struct instance_standard__NativeArray*)var522)->values[9]=var555; +{ +var556 = ((val*(*)(val* self))(var_value2->class->vft[COLOR_standard__string__Object__to_s]))(var_value2); /* to_s on */ } -if (var51){ +((struct instance_standard__NativeArray*)var522)->values[11]=var556; { -{ /* Inline model#MSignature#return_mtype (self) on */ -var59 = self->attrs[COLOR_nit__model__MSignature___return_mtype].val; /* _return_mtype on */ -var57 = var59; -RET_LABEL58:(void)0; +var557 = ((val*(*)(val* self))(var522->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var522); /* native_to_s on */ +} +varonce521 = var522; +{ +standard___standard__Array___standard__abstract_collection__SimpleCollection__add(var_s, var557); /* Direct call array#Array#add on */ } +BREAK_label: (void)0; +{ +standard___standard__HashMapIterator___standard__abstract_collection__MapIterator__next(var_510); /* Direct call hash_collection#HashMapIterator#next on */ } -var60 = NULL; -if (var57 == NULL) { -var61 = 1; /* is null */ } else { -var61 = 0; /* arg is null but recv is not */ +goto BREAK_label558; } -if (0) { -{ /* Inline kernel#Object#== (var57,var60) on */ -var_other3 = var60; +} +BREAK_label558: (void)0; { -{ /* Inline kernel#Object#is_same_instance (var57,var_other3) on */ -var66 = var57 == var_other3; -var64 = var66; -goto RET_LABEL65; -RET_LABEL65:(void)0; +{ /* Inline abstract_collection#MapIterator#finish (var_510) on */ +RET_LABEL559:(void)0; } } -var62 = var64; -goto RET_LABEL63; -RET_LABEL63:(void)0; +{ +var560 = standard___standard__AbstractArrayRead___standard__abstract_collection__Collection__is_empty(var_s); } -var61 = var62; +if (var560){ +if (unlikely(varonce561==NULL)) { +var562 = NEW_standard__NativeArray(6l, &type_standard__NativeArray__standard__String); +if (likely(varonce563!=NULL)) { +var564 = varonce563; +} else { +var565 = " = "; +var566 = standard___standard__NativeString___to_s_with_length(var565, 3l); +var564 = var566; +varonce563 = var564; } -var_67 = var61; -if (var61){ -var56 = var_67; +((struct instance_standard__NativeArray*)var562)->values[1]=var564; +if (likely(varonce567!=NULL)) { +var568 = varonce567; } else { -{ -{ /* Inline model#MSignature#return_mtype (var_other) on */ -var70 = var_other->attrs[COLOR_nit__model__MSignature___return_mtype].val; /* _return_mtype on */ -var68 = var70; -RET_LABEL69:(void)0; +var569 = " == "; +var570 = standard___standard__NativeString___to_s_with_length(var569, 4l); +var568 = var570; +varonce567 = var568; } +((struct instance_standard__NativeArray*)var562)->values[3]=var568; +if (likely(varonce571!=NULL)) { +var572 = varonce571; +} else { +var573 = ";"; +var574 = standard___standard__NativeString___to_s_with_length(var573, 1l); +var572 = var574; +varonce571 = var572; } -var71 = NULL; -if (var68 == NULL) { -var72 = 1; /* is null */ +((struct instance_standard__NativeArray*)var562)->values[5]=var572; } else { -var72 = 0; /* arg is null but recv is not */ +var562 = varonce561; +varonce561 = NULL; } -if (0) { -{ /* Inline kernel#Object#== (var68,var71) on */ -var_other3 = var71; { -{ /* Inline kernel#Object#is_same_instance (var68,var_other3) on */ -var77 = var68 == var_other3; -var75 = var77; -goto RET_LABEL76; -RET_LABEL76:(void)0; +var575 = ((val*(*)(val* self))(var_res->class->vft[COLOR_standard__string__Object__to_s]))(var_res); /* to_s on */ } +((struct instance_standard__NativeArray*)var562)->values[0]=var575; +{ +var576 = ((val*(*)(val* self))(var_value1->class->vft[COLOR_standard__string__Object__to_s]))(var_value1); /* to_s on */ } -var73 = var75; -goto RET_LABEL74; -RET_LABEL74:(void)0; +((struct instance_standard__NativeArray*)var562)->values[2]=var576; +{ +var577 = ((val*(*)(val* self))(var_value2->class->vft[COLOR_standard__string__Object__to_s]))(var_value2); /* to_s on */ } -var72 = var73; +((struct instance_standard__NativeArray*)var562)->values[4]=var577; +{ +var578 = ((val*(*)(val* self))(var562->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var562); /* native_to_s on */ } -var56 = var72; +varonce561 = var562; +{ +nit___nit__AbstractCompilerVisitor___add(self, var578); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on */ } -if (var56){ -var78 = 0; -var = var78; +var = var_res; goto RET_LABEL; } else { } -{ -{ /* Inline model#MSignature#return_mtype (self) on */ -var81 = self->attrs[COLOR_nit__model__MSignature___return_mtype].val; /* _return_mtype on */ -var79 = var81; -RET_LABEL80:(void)0; +if (unlikely(varonce579==NULL)) { +var580 = NEW_standard__NativeArray(3l, &type_standard__NativeArray__standard__String); +if (likely(varonce581!=NULL)) { +var582 = varonce581; +} else { +var583 = "("; +var584 = standard___standard__NativeString___to_s_with_length(var583, 1l); +var582 = var584; +varonce581 = var582; +} +((struct instance_standard__NativeArray*)var580)->values[0]=var582; +if (likely(varonce585!=NULL)) { +var586 = varonce585; +} else { +var587 = ")"; +var588 = standard___standard__NativeString___to_s_with_length(var587, 1l); +var586 = var588; +varonce585 = var586; } +((struct instance_standard__NativeArray*)var580)->values[2]=var586; +} else { +var580 = varonce579; +varonce579 = NULL; } -if (var79 == NULL) { -PRINT_ERROR("Runtime error: %s", "Receiver is null"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_compiler, 1835); -show_backtrace(1); +if (likely(varonce589!=NULL)) { +var590 = varonce589; } else { -var82 = ((val* (*)(val* self))(var79->class->vft[COLOR_nit__abstract_compiler__MType__ctype]))(var79) /* ctype on */; +var591 = " || "; +var592 = standard___standard__NativeString___to_s_with_length(var591, 4l); +var590 = var592; +varonce589 = var590; } { -{ /* Inline model#MSignature#return_mtype (var_other) on */ -var85 = var_other->attrs[COLOR_nit__model__MSignature___return_mtype].val; /* _return_mtype on */ -var83 = var85; -RET_LABEL84:(void)0; +var593 = standard__string___Collection___join(var_s, var590); } +((struct instance_standard__NativeArray*)var580)->values[1]=var593; +{ +var594 = ((val*(*)(val* self))(var580->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var580); /* native_to_s on */ } -if (var83 == NULL) { -PRINT_ERROR("Runtime error: %s", "Receiver is null"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_compiler, 1835); -show_backtrace(1); +varonce579 = var580; +{ +standard___standard__Array___standard__abstract_collection__SimpleCollection__add(var_test, var594); /* Direct call array#Array#add on */ +} +} else { +if (unlikely(varonce595==NULL)) { +var596 = NEW_standard__NativeArray(6l, &type_standard__NativeArray__standard__String); +if (likely(varonce597!=NULL)) { +var598 = varonce597; +} else { +var599 = " = "; +var600 = standard___standard__NativeString___to_s_with_length(var599, 3l); +var598 = var600; +varonce597 = var598; +} +((struct instance_standard__NativeArray*)var596)->values[1]=var598; +if (likely(varonce601!=NULL)) { +var602 = varonce601; +} else { +var603 = " == "; +var604 = standard___standard__NativeString___to_s_with_length(var603, 4l); +var602 = var604; +varonce601 = var602; +} +((struct instance_standard__NativeArray*)var596)->values[3]=var602; +if (likely(varonce605!=NULL)) { +var606 = varonce605; +} else { +var607 = ";"; +var608 = standard___standard__NativeString___to_s_with_length(var607, 1l); +var606 = var608; +varonce605 = var606; +} +((struct instance_standard__NativeArray*)var596)->values[5]=var606; } else { -var86 = ((val* (*)(val* self))(var83->class->vft[COLOR_nit__abstract_compiler__MType__ctype]))(var83) /* ctype on */; +var596 = varonce595; +varonce595 = NULL; +} +{ +var609 = ((val*(*)(val* self))(var_res->class->vft[COLOR_standard__string__Object__to_s]))(var_res); /* to_s on */ } +((struct instance_standard__NativeArray*)var596)->values[0]=var609; { -{ /* Inline kernel#Object#!= (var82,var86) on */ -var_other39 = var86; +var610 = ((val*(*)(val* self))(var_value1->class->vft[COLOR_standard__string__Object__to_s]))(var_value1); /* to_s on */ +} +((struct instance_standard__NativeArray*)var596)->values[2]=var610; { -var89 = ((short int (*)(val* self, val* p0))(var82->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var82, var_other39) /* == on */; +var611 = ((val*(*)(val* self))(var_value2->class->vft[COLOR_standard__string__Object__to_s]))(var_value2); /* to_s on */ } -var90 = !var89; -var87 = var90; -goto RET_LABEL88; -RET_LABEL88:(void)0; +((struct instance_standard__NativeArray*)var596)->values[4]=var611; +{ +var612 = ((val*(*)(val* self))(var596->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var596); /* native_to_s on */ } +varonce595 = var596; +{ +nit___nit__AbstractCompilerVisitor___add(self, var612); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on */ } -if (var87){ -var91 = 0; -var = var91; +var = var_res; goto RET_LABEL; +} +} +if (unlikely(varonce613==NULL)) { +var614 = NEW_standard__NativeArray(8l, &type_standard__NativeArray__standard__String); +if (likely(varonce615!=NULL)) { +var616 = varonce615; } else { +var617 = " = "; +var618 = standard___standard__NativeString___to_s_with_length(var617, 3l); +var616 = var618; +varonce615 = var616; } +((struct instance_standard__NativeArray*)var614)->values[1]=var616; +if (likely(varonce619!=NULL)) { +var620 = varonce619; } else { +var621 = " == "; +var622 = standard___standard__NativeString___to_s_with_length(var621, 4l); +var620 = var622; +varonce619 = var620; } -var92 = 1; -var = var92; -goto RET_LABEL; -RET_LABEL:; -return var; +((struct instance_standard__NativeArray*)var614)->values[3]=var620; +if (likely(varonce623!=NULL)) { +var624 = varonce623; +} else { +var625 = " || ("; +var626 = standard___standard__NativeString___to_s_with_length(var625, 5l); +var624 = var626; +varonce623 = var624; } -/* method separate_compiler#SeparateRuntimeFunction#called_recv for (self: SeparateRuntimeFunction): MType */ -val* nit___nit__SeparateRuntimeFunction___called_recv(val* self) { -val* var /* : MType */; -val* var1 /* : MType */; -var1 = self->attrs[COLOR_nit__separate_compiler__SeparateRuntimeFunction___called_recv].val; /* _called_recv on */ -if (unlikely(var1 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _called_recv"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_compiler, 1845); -show_backtrace(1); +((struct instance_standard__NativeArray*)var614)->values[5]=var624; +if (likely(varonce627!=NULL)) { +var628 = varonce627; +} else { +var629 = ");"; +var630 = standard___standard__NativeString___to_s_with_length(var629, 2l); +var628 = var630; +varonce627 = var628; } -var = var1; -RET_LABEL:; -return var; +((struct instance_standard__NativeArray*)var614)->values[7]=var628; +} else { +var614 = varonce613; +varonce613 = NULL; } -/* method separate_compiler#SeparateRuntimeFunction#called_recv= for (self: SeparateRuntimeFunction, MType) */ -void nit___nit__SeparateRuntimeFunction___called_recv_61d(val* self, val* p0) { -self->attrs[COLOR_nit__separate_compiler__SeparateRuntimeFunction___called_recv].val = p0; /* _called_recv on */ -RET_LABEL:; +{ +var631 = ((val*(*)(val* self))(var_res->class->vft[COLOR_standard__string__Object__to_s]))(var_res); /* to_s on */ } -/* method separate_compiler#SeparateRuntimeFunction#called_signature for (self: SeparateRuntimeFunction): MSignature */ -val* nit___nit__SeparateRuntimeFunction___called_signature(val* self) { -val* var /* : MSignature */; -val* var1 /* : MSignature */; -var1 = self->attrs[COLOR_nit__separate_compiler__SeparateRuntimeFunction___called_signature].val; /* _called_signature on */ -if (unlikely(var1 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _called_signature"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_compiler, 1848); -show_backtrace(1); -} -var = var1; -RET_LABEL:; -return var; +((struct instance_standard__NativeArray*)var614)->values[0]=var631; +{ +var632 = ((val*(*)(val* self))(var_value1->class->vft[COLOR_standard__string__Object__to_s]))(var_value1); /* to_s on */ } -/* method separate_compiler#SeparateRuntimeFunction#called_signature= for (self: SeparateRuntimeFunction, MSignature) */ -void nit___nit__SeparateRuntimeFunction___called_signature_61d(val* self, val* p0) { -self->attrs[COLOR_nit__separate_compiler__SeparateRuntimeFunction___called_signature].val = p0; /* _called_signature on */ -RET_LABEL:; +((struct instance_standard__NativeArray*)var614)->values[2]=var632; +{ +var633 = ((val*(*)(val* self))(var_value2->class->vft[COLOR_standard__string__Object__to_s]))(var_value2); /* to_s on */ } -/* method separate_compiler#SeparateRuntimeFunction#build_c_name for (self: SeparateRuntimeFunction): String */ -val* nit___nit__SeparateRuntimeFunction___nit__abstract_compiler__AbstractRuntimeFunction__build_c_name(val* self) { -val* var /* : String */; -val* var1 /* : String */; -var1 = self->attrs[COLOR_nit__separate_compiler__SeparateRuntimeFunction___build_c_name].val; /* _build_c_name on */ -if (unlikely(var1 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _build_c_name"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_compiler, 1851); -show_backtrace(1); +((struct instance_standard__NativeArray*)var614)->values[4]=var633; +if (likely(varonce634!=NULL)) { +var635 = varonce634; +} else { +var636 = " && "; +var637 = standard___standard__NativeString___to_s_with_length(var636, 4l); +var635 = var637; +varonce634 = var635; } -var = var1; -RET_LABEL:; -return var; +{ +var638 = standard__string___Collection___join(var_test, var635); } -/* method separate_compiler#SeparateRuntimeFunction#build_c_name= for (self: SeparateRuntimeFunction, String) */ -void nit___nit__SeparateRuntimeFunction___build_c_name_61d(val* self, val* p0) { -self->attrs[COLOR_nit__separate_compiler__SeparateRuntimeFunction___build_c_name].val = p0; /* _build_c_name on */ -RET_LABEL:; +((struct instance_standard__NativeArray*)var614)->values[6]=var638; +{ +var639 = ((val*(*)(val* self))(var614->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var614); /* native_to_s on */ } -/* method separate_compiler#SeparateRuntimeFunction#is_thunk for (self: SeparateRuntimeFunction): Bool */ -short int nit___nit__SeparateRuntimeFunction___is_thunk(val* self) { -short int var /* : Bool */; -short int var1 /* : Bool */; -var1 = self->attrs[COLOR_nit__separate_compiler__SeparateRuntimeFunction___is_thunk].s; /* _is_thunk on */ -var = var1; -RET_LABEL:; -return var; +varonce613 = var614; +{ +nit___nit__AbstractCompilerVisitor___add(self, var639); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on */ } -/* method separate_compiler#SeparateRuntimeFunction#is_thunk= for (self: SeparateRuntimeFunction, Bool) */ -void nit___nit__SeparateRuntimeFunction___is_thunk_61d(val* self, short int p0) { -self->attrs[COLOR_nit__separate_compiler__SeparateRuntimeFunction___is_thunk].s = p0; /* _is_thunk on */ +var = var_res; +goto RET_LABEL; RET_LABEL:; +return var; } -/* method separate_compiler#SeparateRuntimeFunction#to_s for (self: SeparateRuntimeFunction): String */ -val* nit___nit__SeparateRuntimeFunction___standard__string__Object__to_s(val* self) { -val* var /* : String */; -val* var1 /* : MMethodDef */; -val* var3 /* : MMethodDef */; -val* var4 /* : String */; -val* var6 /* : String */; +/* method separate_compiler#SeparateCompilerVisitor#can_be_primitive for (self: SeparateCompilerVisitor, RuntimeVariable): Bool */ +short int nit___nit__SeparateCompilerVisitor___can_be_primitive(val* self, val* p0) { +short int var /* : Bool */; +val* var_value /* var value: RuntimeVariable */; +val* var1 /* : MType */; +val* var3 /* : MType */; +val* var4 /* : MType */; +val* var_t /* var t: MType */; +short int var5 /* : Bool */; +int cltype; +int idtype; +short int var6 /* : Bool */; +val* var7 /* : MClass */; +val* var9 /* : MClass */; +val* var10 /* : MClassKind */; +val* var12 /* : MClassKind */; +val* var_k /* var k: MClassKind */; +short int var13 /* : Bool */; +val* var14 /* : Sys */; +val* var15 /* : MClassKind */; +short int var16 /* : Bool */; +val* var_other /* var other: nullable Object */; +short int var18 /* : Bool */; +short int var20 /* : Bool */; +short int var_ /* var : Bool */; +short int var21 /* : Bool */; +var_value = p0; { -{ /* Inline abstract_compiler#AbstractRuntimeFunction#mmethoddef (self) on */ -var3 = self->attrs[COLOR_nit__abstract_compiler__AbstractRuntimeFunction___mmethoddef].val; /* _mmethoddef on */ +{ /* Inline abstract_compiler#RuntimeVariable#mcasttype (var_value) on */ +var3 = var_value->attrs[COLOR_nit__abstract_compiler__RuntimeVariable___mcasttype].val; /* _mcasttype on */ if (unlikely(var3 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmethoddef"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1644); -show_backtrace(1); +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mcasttype"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1787); +fatal_exit(1); } var1 = var3; RET_LABEL2:(void)0; } } { -{ /* Inline model#MPropDef#to_s (var1) on */ -var6 = var1->attrs[COLOR_nit__model__MPropDef___to_s].val; /* _to_s on */ -if (unlikely(var6 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _to_s"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 2104); -show_backtrace(1); -} -var4 = var6; -RET_LABEL5:(void)0; +var4 = ((val*(*)(val* self))(var1->class->vft[COLOR_nit__model__MType__undecorate]))(var1); /* undecorate on */ } +var_t = var4; +/* isa MClassType */ +cltype = type_nit__MClassType.color; +idtype = type_nit__MClassType.id; +if(cltype >= var_t->type->table_size) { +var5 = 0; +} else { +var5 = var_t->type->type_table[cltype] == idtype; } -var = var4; +var6 = !var5; +if (var6){ +var = 0; goto RET_LABEL; -RET_LABEL:; -return var; -} -/* method separate_compiler#SeparateRuntimeFunction#c_ret for (self: SeparateRuntimeFunction): String */ -val* nit___nit__SeparateRuntimeFunction___c_ret(val* self) { -val* var /* : String */; -short int var1 /* : Bool */; -val* var2 /* : String */; -val* var3 /* : String */; -val* var5 /* : MSignature */; -val* var7 /* : MSignature */; -val* var8 /* : nullable MType */; -val* var10 /* : nullable MType */; -val* var_ret /* var ret: nullable MType */; -val* var11 /* : null */; -short int var12 /* : Bool */; -short int var13 /* : Bool */; -val* var_other /* var other: nullable Object */; -short int var15 /* : Bool */; -short int var16 /* : Bool */; -val* var17 /* : String */; -static val* varonce; -val* var18 /* : String */; -char* var19 /* : NativeString */; -long var20 /* : Int */; -val* var21 /* : FlatString */; -var1 = self->attrs[COLOR_nit__separate_compiler__SeparateRuntimeFunction___c_ret].val != NULL; /* _c_ret on */ -if(likely(var1)) { -var2 = self->attrs[COLOR_nit__separate_compiler__SeparateRuntimeFunction___c_ret].val; /* _c_ret on */ -if (unlikely(var2 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _c_ret"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_compiler, 1859); -show_backtrace(1); -} } else { +} { +{ /* Inline model#MClassType#mclass (var_t) on */ +var9 = var_t->attrs[COLOR_nit__model__MClassType___mclass].val; /* _mclass on */ +if (unlikely(var9 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1138); +fatal_exit(1); +} +var7 = var9; +RET_LABEL8:(void)0; +} +} { -{ /* Inline separate_compiler#SeparateRuntimeFunction#called_signature (self) on */ -var7 = self->attrs[COLOR_nit__separate_compiler__SeparateRuntimeFunction___called_signature].val; /* _called_signature on */ -if (unlikely(var7 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _called_signature"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_compiler, 1848); -show_backtrace(1); +{ /* Inline model#MClass#kind (var7) on */ +var12 = var7->attrs[COLOR_nit__model__MClass___kind].val; /* _kind on */ +if (unlikely(var12 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _kind"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 436); +fatal_exit(1); +} +var10 = var12; +RET_LABEL11:(void)0; } -var5 = var7; -RET_LABEL6:(void)0; } +var_k = var10; +var14 = glob_sys; +{ +var15 = nit__model___standard__Sys___interface_kind(var14); } { -{ /* Inline model#MSignature#return_mtype (var5) on */ -var10 = var5->attrs[COLOR_nit__model__MSignature___return_mtype].val; /* _return_mtype on */ -var8 = var10; -RET_LABEL9:(void)0; +{ /* Inline kernel#Object#== (var_k,var15) on */ +var_other = var15; +{ +{ /* Inline kernel#Object#is_same_instance (var_k,var_other) on */ +var20 = var_k == var_other; +var18 = var20; +goto RET_LABEL19; +RET_LABEL19:(void)0; +} +} +var16 = var18; +goto RET_LABEL17; +RET_LABEL17:(void)0; } } -var_ret = var8; -var11 = NULL; -if (var_ret == NULL) { -var12 = 0; /* is null */ +var_ = var16; +if (var16){ +var13 = var_; } else { -var12 = 1; /* arg is null and recv is not */ +{ +var21 = nit__abstract_compiler___MClassType___MType__is_c_primitive(var_t); +} +var13 = var21; +} +var = var13; +goto RET_LABEL; +RET_LABEL:; +return var; } -if (0) { -{ /* Inline kernel#Object#!= (var_ret,var11) on */ -var_other = var11; +/* method separate_compiler#SeparateCompilerVisitor#maybe_null for (self: SeparateCompilerVisitor, RuntimeVariable): Bool */ +short int nit___nit__SeparateCompilerVisitor___maybe_null(val* self, val* p0) { +short int var /* : Bool */; +val* var_value /* var value: RuntimeVariable */; +val* var1 /* : MType */; +val* var3 /* : MType */; +val* var_t /* var t: MType */; +short int var4 /* : Bool */; +short int var5 /* : Bool */; +int cltype; +int idtype; +short int var_ /* var : Bool */; +short int var6 /* : Bool */; +int cltype7; +int idtype8; +var_value = p0; { -var15 = ((short int (*)(val* self, val* p0))(var_ret->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_ret, var_other) /* == on */; +{ /* Inline abstract_compiler#RuntimeVariable#mcasttype (var_value) on */ +var3 = var_value->attrs[COLOR_nit__abstract_compiler__RuntimeVariable___mcasttype].val; /* _mcasttype on */ +if (unlikely(var3 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mcasttype"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1787); +fatal_exit(1); } -var16 = !var15; -var13 = var16; -goto RET_LABEL14; -RET_LABEL14:(void)0; +var1 = var3; +RET_LABEL2:(void)0; } -var12 = var13; } -if (var12){ -{ -var17 = ((val* (*)(val* self))(var_ret->class->vft[COLOR_nit__abstract_compiler__MType__ctype]))(var_ret) /* ctype on */; +var_t = var1; +/* isa MNullableType */ +cltype = type_nit__MNullableType.color; +idtype = type_nit__MNullableType.id; +if(cltype >= var_t->type->table_size) { +var5 = 0; +} else { +var5 = var_t->type->type_table[cltype] == idtype; } -var3 = var17; -goto RET_LABEL4; +var_ = var5; +if (var5){ +var4 = var_; } else { -if (varonce) { -var18 = varonce; +/* isa MNullType */ +cltype7 = type_nit__MNullType.color; +idtype8 = type_nit__MNullType.id; +if(cltype7 >= var_t->type->table_size) { +var6 = 0; } else { -var19 = "void"; -var20 = 4; -var21 = standard___standard__NativeString___to_s_with_length(var19, var20); -var18 = var21; -varonce = var18; -} -var3 = var18; -goto RET_LABEL4; -} -RET_LABEL4:(void)0; +var6 = var_t->type->type_table[cltype7] == idtype8; } -self->attrs[COLOR_nit__separate_compiler__SeparateRuntimeFunction___c_ret].val = var3; /* _c_ret on */ -var2 = var3; +var4 = var6; } -var = var2; +var = var4; +goto RET_LABEL; RET_LABEL:; return var; } -/* method separate_compiler#SeparateRuntimeFunction#c_sig for (self: SeparateRuntimeFunction): String */ -val* nit___nit__SeparateRuntimeFunction___c_sig(val* self) { -val* var /* : String */; -short int var1 /* : Bool */; -val* var2 /* : String */; -val* var3 /* : String */; -val* var5 /* : FlatBuffer */; -val* var_sig /* var sig: FlatBuffer */; +/* method separate_compiler#SeparateCompilerVisitor#array_instance for (self: SeparateCompilerVisitor, Array[RuntimeVariable], MType): RuntimeVariable */ +val* nit___nit__SeparateCompilerVisitor___nit__abstract_compiler__AbstractCompilerVisitor__array_instance(val* self, val* p0, val* p1) { +val* var /* : RuntimeVariable */; +val* var_array /* var array: Array[RuntimeVariable] */; +val* var_elttype /* var elttype: MType */; +val* var1 /* : MModule */; +val* var2 /* : MClass */; +val* var_nclass /* var nclass: MClass */; +val* var3 /* : MModule */; +val* var4 /* : MClass */; +val* var_arrayclass /* var arrayclass: MClass */; +val* var5 /* : Array[MType] */; +val* var_ /* var : Array[MType] */; +val* var6 /* : MClassType */; +val* var_arraytype /* var arraytype: MClassType */; +val* var7 /* : RuntimeVariable */; +val* var_res /* var res: RuntimeVariable */; +val* var8 /* : NativeArray[String] */; static val* varonce; -val* var7 /* : String */; -char* var8 /* : NativeString */; -long var9 /* : Int */; -val* var10 /* : FlatString */; -val* var11 /* : MType */; -val* var13 /* : MType */; +static val* varonce9; +val* var10 /* : String */; +char* var11 /* : NativeString */; +val* var12 /* : FlatString */; +static val* varonce13; 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] */; +char* var15 /* : NativeString */; +val* var16 /* : FlatString */; +static val* varonce17; +val* var18 /* : String */; +char* var19 /* : NativeString */; +val* var20 /* : FlatString */; +val* var21 /* : String */; +val* var22 /* : String */; val* var23 /* : String */; long var24 /* : Int */; +long var26 /* : Int */; +val* var27 /* : RuntimeVariable */; +val* var_length /* var length: RuntimeVariable */; +val* var28 /* : RuntimeVariable */; +val* var_nat /* var nat: RuntimeVariable */; long var_i /* var i: Int */; -val* var25 /* : MSignature */; -val* var27 /* : MSignature */; -long var28 /* : Int */; -long var_ /* var : Int */; -short int var29 /* : Bool */; -short int var31 /* : Bool */; +long var29 /* : Int */; +long var31 /* : Int */; +long var_32 /* var : Int */; +short int var33 /* : Bool */; +short int var35 /* : Bool */; int cltype; int idtype; const char* var_class_name; -short int var32 /* : Bool */; -val* var33 /* : MSignature */; -val* var35 /* : MSignature */; -val* var36 /* : Array[MParameter] */; -val* var38 /* : Array[MParameter] */; -val* var39 /* : nullable Object */; -val* var40 /* : MType */; -val* var42 /* : MType */; -val* var_mtype /* var mtype: MType */; -val* var43 /* : MSignature */; -val* var45 /* : MSignature */; -long var46 /* : Int */; -long var48 /* : Int */; -short int var49 /* : Bool */; -short int var51 /* : Bool */; -val* var52 /* : MMethodDef */; -val* var54 /* : MMethodDef */; -val* var55 /* : MClassDef */; -val* var57 /* : MClassDef */; -val* var58 /* : MModule */; -val* var60 /* : MModule */; -static val* varonce61; +short int var36 /* : Bool */; +val* var37 /* : nullable Object */; +val* var38 /* : MClassType */; +val* var39 /* : RuntimeVariable */; +val* var_r /* var r: RuntimeVariable */; +val* var41 /* : NativeArray[String] */; +static val* varonce40; +static val* varonce42; +val* var43 /* : String */; +char* var44 /* : NativeString */; +val* var45 /* : FlatString */; +static val* varonce46; +val* var47 /* : String */; +char* var48 /* : NativeString */; +val* var49 /* : FlatString */; +static val* varonce50; +val* var51 /* : String */; +char* var52 /* : NativeString */; +val* var53 /* : FlatString */; +static val* varonce54; +val* var55 /* : String */; +char* var56 /* : NativeString */; +val* var57 /* : FlatString */; +static val* varonce58; +val* var59 /* : String */; +char* var60 /* : NativeString */; +val* var61 /* : FlatString */; val* var62 /* : String */; -char* var63 /* : NativeString */; -long var64 /* : Int */; -val* var65 /* : FlatString */; -val* var66 /* : MClass */; -val* var67 /* : Array[MType] */; -long var68 /* : Int */; -val* var_69 /* var : Array[MType] */; -val* var70 /* : MClassType */; -static val* varonce71; -val* var72 /* : String */; -char* var73 /* : NativeString */; -long var74 /* : Int */; -val* var75 /* : FlatString */; -val* var76 /* : String */; -static val* varonce77; -val* var78 /* : String */; -char* var79 /* : NativeString */; -long var80 /* : Int */; -val* var81 /* : FlatString */; -val* var82 /* : Array[Object] */; -long var83 /* : Int */; -val* var84 /* : NativeArray[Object] */; -val* var85 /* : Object */; -val* var86 /* : String */; -long var87 /* : Int */; -long var88 /* : Int */; -static val* varonce89; -val* var90 /* : String */; -char* var91 /* : NativeString */; -long var92 /* : Int */; -val* var93 /* : FlatString */; -val* var94 /* : String */; -var1 = self->attrs[COLOR_nit__separate_compiler__SeparateRuntimeFunction___c_sig].val != NULL; /* _c_sig on */ -if(likely(var1)) { -var2 = self->attrs[COLOR_nit__separate_compiler__SeparateRuntimeFunction___c_sig].val; /* _c_sig on */ -if (unlikely(var2 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _c_sig"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_compiler, 1869); -show_backtrace(1); +val* var63 /* : String */; +val* var64 /* : String */; +val* var65 /* : String */; +val* var66 /* : String */; +long var67 /* : Int */; +static val* varonce68; +val* var69 /* : String */; +char* var70 /* : NativeString */; +val* var71 /* : FlatString */; +val* var72 /* : MClassDef */; +val* var74 /* : MClassDef */; +val* var75 /* : MClassType */; +val* var77 /* : MClassType */; +val* var78 /* : MMethod */; +val* var79 /* : Array[RuntimeVariable] */; +val* var_80 /* var : Array[RuntimeVariable] */; +val* var81 /* : nullable RuntimeVariable */; +static val* varonce82; +val* var83 /* : String */; +char* var84 /* : NativeString */; +val* var85 /* : FlatString */; +var_array = p0; +var_elttype = p1; +{ +var1 = nit___nit__AbstractCompilerVisitor___mmodule(self); } -} else { { -var5 = NEW_standard__FlatBuffer(&type_standard__FlatBuffer); +var2 = nit__model___MModule___native_array_class(var1); +} +var_nclass = var2; { -{ /* Inline string#FlatBuffer#init (var5) on */ +var3 = nit___nit__AbstractCompilerVisitor___mmodule(self); +} { -((void (*)(val* self))(var5->class->vft[COLOR_standard___standard__FlatBuffer___standard__kernel__Object__init]))(var5) /* init on */; +var4 = nit__model___MModule___array_class(var3); } -RET_LABEL6:(void)0; +var_arrayclass = var4; +var5 = NEW_standard__Array(&type_standard__Array__nit__MType); +{ +standard___standard__Array___with_capacity(var5, 1l); /* Direct call array#Array#with_capacity on */ } +var_ = var5; +{ +standard___standard__AbstractArray___standard__abstract_collection__Sequence__push(var_, var_elttype); /* Direct call array#AbstractArray#push on */ } -var_sig = var5; -if (varonce) { -var7 = varonce; -} else { -var8 = "("; -var9 = 1; -var10 = standard___standard__NativeString___to_s_with_length(var8, var9); -var7 = var10; -varonce = var7; +{ +var6 = nit___nit__MClass___get_mtype(var_arrayclass, var_); } +var_arraytype = var6; { -{ /* Inline separate_compiler#SeparateRuntimeFunction#called_recv (self) on */ -var13 = self->attrs[COLOR_nit__separate_compiler__SeparateRuntimeFunction___called_recv].val; /* _called_recv on */ -if (unlikely(var13 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _called_recv"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_compiler, 1845); -show_backtrace(1); +var7 = ((val*(*)(val* self, val* p0))(self->class->vft[COLOR_nit__abstract_compiler__AbstractCompilerVisitor__init_instance]))(self, var_arraytype); /* init_instance on */ } -var11 = var13; -RET_LABEL12:(void)0; +var_res = var7; +if (unlikely(varonce==NULL)) { +var8 = NEW_standard__NativeArray(5l, &type_standard__NativeArray__standard__String); +if (likely(varonce9!=NULL)) { +var10 = varonce9; +} else { +var11 = "{ /* "; +var12 = standard___standard__NativeString___to_s_with_length(var11, 5l); +var10 = var12; +varonce9 = var10; } +((struct instance_standard__NativeArray*)var8)->values[0]=var10; +if (likely(varonce13!=NULL)) { +var14 = varonce13; +} else { +var15 = " = array_instance Array["; +var16 = standard___standard__NativeString___to_s_with_length(var15, 24l); +var14 = var16; +varonce13 = var14; } -{ -var14 = ((val* (*)(val* self))(var11->class->vft[COLOR_nit__abstract_compiler__MType__ctype]))(var11) /* ctype on */; +((struct instance_standard__NativeArray*)var8)->values[2]=var14; +if (likely(varonce17!=NULL)) { +var18 = varonce17; +} else { +var19 = "] */"; +var20 = standard___standard__NativeString___to_s_with_length(var19, 4l); +var18 = var20; +varonce17 = var18; } -if (varonce15) { -var16 = varonce15; +((struct instance_standard__NativeArray*)var8)->values[4]=var18; } else { -var17 = " self"; -var18 = 5; -var19 = standard___standard__NativeString___to_s_with_length(var17, var18); -var16 = var19; -varonce15 = var16; +var8 = varonce; +varonce = NULL; } -var20 = NEW_standard__Array(&type_standard__Array__standard__Object); -{ /* var20 = array_instance Array[Object] */ -var21 = 3; -var22 = NEW_standard__NativeArray(var21, &type_standard__NativeArray__standard__Object); -((struct instance_standard__NativeArray*)var22)->values[0] = (val*) var7; -((struct instance_standard__NativeArray*)var22)->values[1] = (val*) var14; -((struct instance_standard__NativeArray*)var22)->values[2] = (val*) var16; { -((void (*)(val* self, val* p0, long p1))(var20->class->vft[COLOR_standard__array__Array__with_native]))(var20, var22, var21) /* with_native on */; -} +var21 = ((val*(*)(val* self))(var_res->class->vft[COLOR_standard__string__Object__to_s]))(var_res); /* to_s on */ } +((struct instance_standard__NativeArray*)var8)->values[1]=var21; { -var23 = ((val* (*)(val* self))(var20->class->vft[COLOR_standard__string__Object__to_s]))(var20) /* to_s on */; +var22 = ((val*(*)(val* self))(var_elttype->class->vft[COLOR_standard__string__Object__to_s]))(var_elttype); /* to_s on */ } +((struct instance_standard__NativeArray*)var8)->values[3]=var22; { -standard___standard__FlatBuffer___Buffer__append(var_sig, var23); /* Direct call string#FlatBuffer#append on */ +var23 = ((val*(*)(val* self))(var8->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var8); /* native_to_s on */ } -var24 = 0; -var_i = var24; +varonce = var8; { -{ /* Inline separate_compiler#SeparateRuntimeFunction#called_signature (self) on */ -var27 = self->attrs[COLOR_nit__separate_compiler__SeparateRuntimeFunction___called_signature].val; /* _called_signature on */ -if (unlikely(var27 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _called_signature"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_compiler, 1848); -show_backtrace(1); +nit___nit__AbstractCompilerVisitor___add(self, var23); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on */ } -var25 = var27; -RET_LABEL26:(void)0; +{ +{ /* Inline array#AbstractArrayRead#length (var_array) on */ +var26 = var_array->attrs[COLOR_standard__array__AbstractArrayRead___length].l; /* _length on */ +var24 = var26; +RET_LABEL25:(void)0; } } { -var28 = nit___nit__MSignature___arity(var25); +var27 = nit___nit__AbstractCompilerVisitor___int_instance(self, var24); } -var_ = var28; -for(;;) { +var_length = var27; { -{ /* Inline kernel#Int#< (var_i,var_) on */ -/* Covariant cast for argument 0 (i) isa OTHER */ -/* isa OTHER */ -var31 = 1; /* easy isa OTHER*/ -if (unlikely(!var31)) { -var_class_name = type_standard__Int.name; -PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name); -PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 410); -show_backtrace(1); +var28 = ((val*(*)(val* self, val* p0, val* p1))(self->class->vft[COLOR_nit__abstract_compiler__AbstractCompilerVisitor__native_array_instance]))(self, var_elttype, var_length); /* native_array_instance on */ } -var32 = var_i < var_; -var29 = var32; -goto RET_LABEL30; +var_nat = var28; +var_i = 0l; +{ +{ /* Inline array#AbstractArrayRead#length (var_array) on */ +var31 = var_array->attrs[COLOR_standard__array__AbstractArrayRead___length].l; /* _length on */ +var29 = var31; RET_LABEL30:(void)0; } } -if (var29){ +var_32 = var29; +for(;;) { { -{ /* Inline separate_compiler#SeparateRuntimeFunction#called_signature (self) on */ -var35 = self->attrs[COLOR_nit__separate_compiler__SeparateRuntimeFunction___called_signature].val; /* _called_signature on */ -if (unlikely(var35 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _called_signature"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_compiler, 1848); -show_backtrace(1); +{ /* Inline kernel#Int#< (var_i,var_32) on */ +/* Covariant cast for argument 0 (i) isa OTHER */ +/* isa OTHER */ +var35 = 1; /* easy isa OTHER*/ +if (unlikely(!var35)) { +var_class_name = type_standard__Int.name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name); +PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 534); +fatal_exit(1); } -var33 = var35; +var36 = var_i < var_32; +var33 = var36; +goto RET_LABEL34; RET_LABEL34:(void)0; } } +if (var33){ { -{ /* Inline model#MSignature#mparameters (var33) on */ -var38 = var33->attrs[COLOR_nit__model__MSignature___mparameters].val; /* _mparameters on */ -if (unlikely(var38 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mparameters"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1592); -show_backtrace(1); -} -var36 = var38; -RET_LABEL37:(void)0; -} -} -{ -var39 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var36, var_i); +var37 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var_array, var_i); } { -{ /* Inline model#MParameter#mtype (var39) on */ -var42 = var39->attrs[COLOR_nit__model__MParameter___mtype].val; /* _mtype on */ -if (unlikely(var42 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1690); -show_backtrace(1); -} -var40 = var42; -RET_LABEL41:(void)0; +var38 = nit___nit__AbstractCompilerVisitor___object_type(self); } -} -var_mtype = var40; { -{ /* Inline separate_compiler#SeparateRuntimeFunction#called_signature (self) on */ -var45 = self->attrs[COLOR_nit__separate_compiler__SeparateRuntimeFunction___called_signature].val; /* _called_signature on */ -if (unlikely(var45 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _called_signature"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_compiler, 1848); -show_backtrace(1); +var39 = nit___nit__SeparateCompilerVisitor___nit__abstract_compiler__AbstractCompilerVisitor__autobox(self, var37, var38); } +var_r = var39; +if (unlikely(varonce40==NULL)) { +var41 = NEW_standard__NativeArray(9l, &type_standard__NativeArray__standard__String); +if (likely(varonce42!=NULL)) { +var43 = varonce42; +} else { +var44 = "((struct instance_"; +var45 = standard___standard__NativeString___to_s_with_length(var44, 18l); var43 = var45; -RET_LABEL44:(void)0; +varonce42 = var43; } +((struct instance_standard__NativeArray*)var41)->values[0]=var43; +if (likely(varonce46!=NULL)) { +var47 = varonce46; +} else { +var48 = "*)"; +var49 = standard___standard__NativeString___to_s_with_length(var48, 2l); +var47 = var49; +varonce46 = var47; } -{ -{ /* Inline model#MSignature#vararg_rank (var43) on */ -var48 = var43->attrs[COLOR_nit__model__MSignature___vararg_rank].l; /* _vararg_rank on */ -var46 = var48; -RET_LABEL47:(void)0; +((struct instance_standard__NativeArray*)var41)->values[2]=var47; +if (likely(varonce50!=NULL)) { +var51 = varonce50; +} else { +var52 = ")->values["; +var53 = standard___standard__NativeString___to_s_with_length(var52, 10l); +var51 = var53; +varonce50 = var51; } +((struct instance_standard__NativeArray*)var41)->values[4]=var51; +if (likely(varonce54!=NULL)) { +var55 = varonce54; +} else { +var56 = "] = (val*) "; +var57 = standard___standard__NativeString___to_s_with_length(var56, 11l); +var55 = var57; +varonce54 = var55; } -{ -{ /* Inline kernel#Int#== (var_i,var46) on */ -var51 = var_i == var46; -var49 = var51; -goto RET_LABEL50; -RET_LABEL50:(void)0; +((struct instance_standard__NativeArray*)var41)->values[6]=var55; +if (likely(varonce58!=NULL)) { +var59 = varonce58; +} else { +var60 = ";"; +var61 = standard___standard__NativeString___to_s_with_length(var60, 1l); +var59 = var61; +varonce58 = var59; } +((struct instance_standard__NativeArray*)var41)->values[8]=var59; +} else { +var41 = varonce40; +varonce40 = NULL; } -if (var49){ { -{ /* Inline abstract_compiler#AbstractRuntimeFunction#mmethoddef (self) on */ -var54 = self->attrs[COLOR_nit__abstract_compiler__AbstractRuntimeFunction___mmethoddef].val; /* _mmethoddef on */ -if (unlikely(var54 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmethoddef"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1644); -show_backtrace(1); -} -var52 = var54; -RET_LABEL53:(void)0; +var62 = nit___nit__MClass___nit__model_base__MEntity__c_name(var_nclass); } +((struct instance_standard__NativeArray*)var41)->values[1]=var62; +{ +var63 = ((val*(*)(val* self))(var_nat->class->vft[COLOR_standard__string__Object__to_s]))(var_nat); /* to_s on */ } +((struct instance_standard__NativeArray*)var41)->values[3]=var63; +var64 = standard__string___Int___Object__to_s(var_i); +((struct instance_standard__NativeArray*)var41)->values[5]=var64; { -{ /* Inline model#MPropDef#mclassdef (var52) on */ -var57 = var52->attrs[COLOR_nit__model__MPropDef___mclassdef].val; /* _mclassdef on */ -if (unlikely(var57 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdef"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 2010); -show_backtrace(1); +var65 = ((val*(*)(val* self))(var_r->class->vft[COLOR_standard__string__Object__to_s]))(var_r); /* to_s on */ } -var55 = var57; -RET_LABEL56:(void)0; +((struct instance_standard__NativeArray*)var41)->values[7]=var65; +{ +var66 = ((val*(*)(val* self))(var41->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var41); /* native_to_s on */ } +varonce40 = var41; +{ +nit___nit__AbstractCompilerVisitor___add(self, var66); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on */ } { -{ /* Inline model#MClassDef#mmodule (var55) on */ -var60 = var55->attrs[COLOR_nit__model__MClassDef___mmodule].val; /* _mmodule on */ -if (unlikely(var60 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 489); -show_backtrace(1); +var67 = standard___standard__Int___Discrete__successor(var_i, 1l); } -var58 = var60; -RET_LABEL59:(void)0; +var_i = var67; +} else { +goto BREAK_label; } } -if (varonce61) { -var62 = varonce61; +BREAK_label: (void)0; +if (likely(varonce68!=NULL)) { +var69 = varonce68; } else { -var63 = "Array"; -var64 = 5; -var65 = standard___standard__NativeString___to_s_with_length(var63, var64); -var62 = var65; -varonce61 = var62; +var70 = "with_native"; +var71 = standard___standard__NativeString___to_s_with_length(var70, 11l); +var69 = var71; +varonce68 = var69; } { -var66 = nit__model___MModule___get_primitive_class(var58, var62); +{ /* Inline model#MClass#intro (var_arrayclass) on */ +var74 = var_arrayclass->attrs[COLOR_nit__model__MClass___intro].val; /* _intro on */ +if (unlikely(var74 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 460); +fatal_exit(1); } -var67 = NEW_standard__Array(&type_standard__Array__nit__MType); -var68 = 1; -{ -standard___standard__Array___with_capacity(var67, var68); /* Direct call array#Array#with_capacity on */ +var72 = var74; +RET_LABEL73:(void)0; } -var_69 = var67; -{ -standard___standard__AbstractArray___standard__abstract_collection__Sequence__push(var_69, var_mtype); /* Direct call array#AbstractArray#push on */ } { -var70 = nit___nit__MClass___get_mtype(var66, var_69); +{ /* Inline model#MClassDef#bound_mtype (var72) on */ +var77 = var72->attrs[COLOR_nit__model__MClassDef___bound_mtype].val; /* _bound_mtype on */ +if (unlikely(var77 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _bound_mtype"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 556); +fatal_exit(1); } -var_mtype = var70; -} else { +var75 = var77; +RET_LABEL76:(void)0; } -if (varonce71) { -var72 = varonce71; -} else { -var73 = ", "; -var74 = 2; -var75 = standard___standard__NativeString___to_s_with_length(var73, var74); -var72 = var75; -varonce71 = var72; } { -var76 = ((val* (*)(val* self))(var_mtype->class->vft[COLOR_nit__abstract_compiler__MType__ctype]))(var_mtype) /* ctype on */; -} -if (varonce77) { -var78 = varonce77; -} else { -var79 = " p"; -var80 = 2; -var81 = standard___standard__NativeString___to_s_with_length(var79, var80); -var78 = var81; -varonce77 = var78; +var78 = nit___nit__AbstractCompilerVisitor___get_property(self, var69, var75); } -var82 = NEW_standard__Array(&type_standard__Array__standard__Object); -{ /* var82 = array_instance Array[Object] */ -var83 = 4; -var84 = NEW_standard__NativeArray(var83, &type_standard__NativeArray__standard__Object); -((struct instance_standard__NativeArray*)var84)->values[0] = (val*) var72; -((struct instance_standard__NativeArray*)var84)->values[1] = (val*) var76; -((struct instance_standard__NativeArray*)var84)->values[2] = (val*) var78; -var85 = BOX_standard__Int(var_i); /* autobox from Int to Object */ -((struct instance_standard__NativeArray*)var84)->values[3] = (val*) var85; +var79 = NEW_standard__Array(&type_standard__Array__nit__RuntimeVariable); { -((void (*)(val* self, val* p0, long p1))(var82->class->vft[COLOR_standard__array__Array__with_native]))(var82, var84, var83) /* with_native on */; -} +standard___standard__Array___with_capacity(var79, 3l); /* Direct call array#Array#with_capacity on */ } +var_80 = var79; { -var86 = ((val* (*)(val* self))(var82->class->vft[COLOR_standard__string__Object__to_s]))(var82) /* to_s on */; +standard___standard__AbstractArray___standard__abstract_collection__Sequence__push(var_80, var_res); /* Direct call array#AbstractArray#push on */ } { -standard___standard__FlatBuffer___Buffer__append(var_sig, var86); /* Direct call string#FlatBuffer#append on */ +standard___standard__AbstractArray___standard__abstract_collection__Sequence__push(var_80, var_nat); /* Direct call array#AbstractArray#push on */ } -var87 = 1; { -var88 = standard___standard__Int___Discrete__successor(var_i, var87); -} -var_i = var88; -} else { -goto BREAK_label; +standard___standard__AbstractArray___standard__abstract_collection__Sequence__push(var_80, var_length); /* Direct call array#AbstractArray#push on */ } +{ +var81 = nit___nit__SeparateCompilerVisitor___nit__abstract_compiler__AbstractCompilerVisitor__send(self, var78, var_80); } -BREAK_label: (void)0; -if (varonce89) { -var90 = varonce89; +if (likely(varonce82!=NULL)) { +var83 = varonce82; } else { -var91 = ")"; -var92 = 1; -var93 = standard___standard__NativeString___to_s_with_length(var91, var92); -var90 = var93; -varonce89 = var90; -} -{ -standard___standard__FlatBuffer___Buffer__append(var_sig, var90); /* Direct call string#FlatBuffer#append on */ +var84 = "}"; +var85 = standard___standard__NativeString___to_s_with_length(var84, 1l); +var83 = var85; +varonce82 = var83; } { -var94 = standard___standard__FlatBuffer___Object__to_s(var_sig); -} -var3 = var94; -goto RET_LABEL4; -RET_LABEL4:(void)0; +nit___nit__AbstractCompilerVisitor___add(self, var83); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on */ } -self->attrs[COLOR_nit__separate_compiler__SeparateRuntimeFunction___c_sig].val = var3; /* _c_sig on */ -var2 = var3; -} -var = var2; +var = var_res; +goto RET_LABEL; RET_LABEL:; return var; }