+var1 = 0;
+{
+{ /* Inline kernel#Int#>= (var_size,var1) on <var_size:Int> */
+/* Covariant cast for argument 0 (i) <var1:Int> isa OTHER */
+/* <var1:Int> isa OTHER */
+var4 = 1; /* easy <var1:Int> isa OTHER*/
+if (unlikely(!var4)) {
+var_class_name7 = type_kernel__Int.name;
+PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name7);
+PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 372);
+show_backtrace(1);
+}
+var8 = var_size >= var1;
+var2 = var8;
+goto RET_LABEL3;
+RET_LABEL3:(void)0;
+}
+}
+if (unlikely(!var2)) {
+PRINT_ERROR("Runtime error: %s", "Assert \'positive\' failed");
+PRINT_ERROR(" (%s:%d)\n", "../lib/standard/collection/array.nit", 342);
+show_backtrace(1);
+}
+self->attrs[COLOR_array__Array___items].val = var_nat; /* _items on <self:Array[nullable Object]> */
+self->attrs[COLOR_array__Array___capacity].l = var_size; /* _capacity on <self:Array[nullable Object]> */
+self->attrs[COLOR_array__AbstractArrayRead___length].l = var_size; /* _length on <self:Array[nullable Object]> */
+RET_LABEL:;
+}
+/* method array#Array#with_native for (self: Object, NativeArray[nullable Object], Int) */
+void VIRTUAL_array__Array__with_native(val* self, val* p0, long p1) {
+array__Array__with_native(self, p0, p1); /* Direct call array#Array#with_native on <self:Object(Array[nullable Object])>*/
+RET_LABEL:;
+}
+/* method array#Array#== for (self: Array[nullable Object], nullable Object): Bool */
+short int array__Array___61d_61d(val* self, val* p0) {
+short int var /* : Bool */;
+val* var_o /* var o: nullable Object */;
+short int var1 /* : Bool */;
+int cltype;
+int idtype;
+short int var2 /* : Bool */;
+short int var3 /* : Bool */;
+short int var4 /* : Bool */;
+long var5 /* : Int */;
+long var7 /* : Int */;
+long var_l /* var l: Int */;
+long var8 /* : Int */;
+long var10 /* : Int */;
+short int var11 /* : Bool */;
+short int var12 /* : Bool */;
+short int var14 /* : Bool */;
+short int var15 /* : Bool */;
+short int var16 /* : Bool */;
+long var17 /* : Int */;
+long var_i /* var i: Int */;
+val* var18 /* : nullable NativeArray[nullable Object] */;
+val* var_it /* var it: nullable NativeArray[nullable Object] */;
+val* var19 /* : nullable NativeArray[nullable Object] */;
+val* var_oit /* var oit: nullable NativeArray[nullable Object] */;
+short int var20 /* : Bool */;
+short int var22 /* : Bool */;
+int cltype23;
+int idtype24;
+const char* var_class_name;
+short int var25 /* : Bool */;
+val* var26 /* : nullable Object */;
+val* var28 /* : nullable Object */;
+val* var29 /* : nullable Object */;
+val* var31 /* : nullable Object */;
+short int var32 /* : Bool */;
+short int var33 /* : Bool */;
+short int var34 /* : Bool */;
+long var35 /* : Int */;
+long var36 /* : Int */;
+short int var38 /* : Bool */;
+int cltype39;
+int idtype40;
+const char* var_class_name41;
+long var42 /* : Int */;
+short int var43 /* : Bool */;
+var_o = p0;
+/* <var_o:nullable Object> isa Array[nullable Object] */
+cltype = type_array__Arraynullable_kernel__Object.color;
+idtype = type_array__Arraynullable_kernel__Object.id;
+if(var_o == NULL) {
+var1 = 0;
+} else {
+if(cltype >= var_o->type->table_size) {
+var1 = 0;
+} else {
+var1 = var_o->type->type_table[cltype] == idtype;
+}
+}
+var2 = !var1;
+if (var2){
+{
+var4 = ((short int (*)(val*, val*))(self->class->vft[COLOR_array__Array___61d_61d]))(self, p0) /* == on <self:Array[nullable Object]>*/;
+var3 = var4;
+}
+var = var3;
+goto RET_LABEL;
+} else {
+}
+{
+{ /* Inline array#AbstractArrayRead#length (self) on <self:Array[nullable Object]> */
+var7 = self->attrs[COLOR_array__AbstractArrayRead___length].l; /* _length on <self:Array[nullable Object]> */
+var5 = var7;
+RET_LABEL6:(void)0;
+}
+}
+var_l = var5;
+{
+{ /* Inline array#AbstractArrayRead#length (var_o) on <var_o:nullable Object(Array[nullable Object])> */
+var10 = var_o->attrs[COLOR_array__AbstractArrayRead___length].l; /* _length on <var_o:nullable Object(Array[nullable Object])> */
+var8 = var10;
+RET_LABEL9:(void)0;
+}
+}
+{
+{ /* Inline kernel#Int#!= (var_l,var8) on <var_l:Int> */
+var14 = var_l == var8;
+var15 = !var14;
+var12 = var15;
+goto RET_LABEL13;
+RET_LABEL13:(void)0;
+}
+var11 = var12;
+}
+if (var11){
+var16 = 0;
+var = var16;
+goto RET_LABEL;
+} else {
+}
+var17 = 0;
+var_i = var17;
+var18 = self->attrs[COLOR_array__Array___items].val; /* _items on <self:Array[nullable Object]> */
+var_it = var18;
+var19 = var_o->attrs[COLOR_array__Array___items].val; /* _items on <var_o:nullable Object(Array[nullable Object])> */
+var_oit = var19;
+for(;;) {
+{
+{ /* Inline kernel#Int#< (var_i,var_l) on <var_i:Int> */
+/* Covariant cast for argument 0 (i) <var_l:Int> isa OTHER */
+/* <var_l:Int> isa OTHER */
+var22 = 1; /* easy <var_l:Int> isa OTHER*/
+if (unlikely(!var22)) {
+var_class_name = type_kernel__Int.name;
+PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
+PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 371);
+show_backtrace(1);
+}
+var25 = var_i < var_l;
+var20 = var25;
+goto RET_LABEL21;
+RET_LABEL21:(void)0;
+}
+}
+if (var20){
+if (var_it == NULL) {
+PRINT_ERROR("Runtime error: %s", "Receiver is null");
+PRINT_ERROR(" (%s:%d)\n", "../lib/standard/collection/array.nit", 368);
+show_backtrace(1);
+} else {
+{ /* Inline array#NativeArray#[] (var_it,var_i) on <var_it:nullable NativeArray[nullable Object]> */
+var28 = ((struct instance_array__NativeArray*)var_it)->values[var_i];
+var26 = var28;
+goto RET_LABEL27;
+RET_LABEL27:(void)0;
+}
+}
+if (var_oit == NULL) {
+PRINT_ERROR("Runtime error: %s", "Receiver is null");
+PRINT_ERROR(" (%s:%d)\n", "../lib/standard/collection/array.nit", 368);
+show_backtrace(1);
+} else {
+{ /* Inline array#NativeArray#[] (var_oit,var_i) on <var_oit:nullable NativeArray[nullable Object]> */
+var31 = ((struct instance_array__NativeArray*)var_oit)->values[var_i];
+var29 = var31;
+goto RET_LABEL30;
+RET_LABEL30:(void)0;
+}
+}
+if (var26 == NULL) {
+var32 = (var29 != NULL);
+} else {
+var33 = ((short int (*)(val*, val*))(var26->class->vft[COLOR_kernel__Object___33d_61d]))(var26, var29) /* != on <var26:nullable Object>*/;
+var32 = var33;
+}
+if (var32){
+var34 = 0;
+var = var34;
+goto RET_LABEL;
+} else {
+}
+var35 = 1;