+ }
+ label11: while(0);
+ /* ./compiling//compiling_global.nit:369 */
+ fra.me.REG[2] = CALL_primitive_info___MMLocalClass___primitive_info(fra.me.REG[0])(fra.me.REG[0]);
+ /* ./compiling//compiling_global.nit:370 */
+ fra.me.REG[5] = CALL_abstractmetamodel___MMLocalClass___name(fra.me.REG[0])(fra.me.REG[0]);
+ if (!once_value_12) {
+ fra.me.REG[4] = BOX_NativeString("NativeArray");
+ REGB2 = TAG_Int(11);
+ fra.me.REG[4] = NEW_String_string___String___with_native(fra.me.REG[4], REGB2);
+ once_value_12 = fra.me.REG[4];
+ register_static_object(&once_value_12);
+ } else fra.me.REG[4] = once_value_12;
+ fra.me.REG[4] = fra.me.REG[4];
+ fra.me.REG[4] = CALL_symbol___String___to_symbol(fra.me.REG[4])(fra.me.REG[4]);
+ REGB2 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[5],fra.me.REG[4]));
+ if (UNTAG_Bool(REGB2)) {
+ } else {
+ REGB0 = CALL_kernel___Object_____eqeq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[4]);
+ REGB2 = REGB0;
+ }
+ if (UNTAG_Bool(REGB2)) {
+ /* ./compiling//compiling_global.nit:371 */
+ if (!once_value_13) {
+ fra.me.REG[4] = BOX_NativeString("val_t NEW_NativeArray(size_t length, size_t size) {");
+ REGB2 = TAG_Int(51);
+ fra.me.REG[4] = NEW_String_string___String___with_native(fra.me.REG[4], REGB2);
+ once_value_13 = fra.me.REG[4];
+ register_static_object(&once_value_13);
+ } else fra.me.REG[4] = once_value_13;
+ fra.me.REG[4] = fra.me.REG[4];
+ CALL_compiling_base___CompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
+ /* ./compiling//compiling_global.nit:372 */
+ CALL_compiling_base___CompilerVisitor___indent(fra.me.REG[1])(fra.me.REG[1]);
+ /* ./compiling//compiling_global.nit:373 */
+ if (!once_value_14) {
+ fra.me.REG[4] = BOX_NativeString("Nit_NativeArray array;");
+ REGB2 = TAG_Int(22);
+ fra.me.REG[4] = NEW_String_string___String___with_native(fra.me.REG[4], REGB2);
+ once_value_14 = fra.me.REG[4];
+ register_static_object(&once_value_14);
+ } else fra.me.REG[4] = once_value_14;
+ fra.me.REG[4] = fra.me.REG[4];
+ CALL_compiling_base___CompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
+ /* ./compiling//compiling_global.nit:374 */
+ if (!once_value_15) {
+ fra.me.REG[4] = BOX_NativeString("array = (Nit_NativeArray)alloc(sizeof(struct Nit_NativeArray) + ((length - 1) * size));");
+ REGB2 = TAG_Int(87);
+ fra.me.REG[4] = NEW_String_string___String___with_native(fra.me.REG[4], REGB2);
+ once_value_15 = fra.me.REG[4];
+ register_static_object(&once_value_15);
+ } else fra.me.REG[4] = once_value_15;
+ fra.me.REG[4] = fra.me.REG[4];
+ CALL_compiling_base___CompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
+ /* ./compiling//compiling_global.nit:375 */
+ REGB2 = TAG_Int(3);
+ fra.me.REG[4] = NEW_Array_array___Array___with_capacity(REGB2);
+ if (!once_value_16) {
+ fra.me.REG[5] = BOX_NativeString("array->vft = (classtable_elt_t*)VFT_");
+ REGB2 = TAG_Int(36);
+ fra.me.REG[5] = NEW_String_string___String___with_native(fra.me.REG[5], REGB2);
+ once_value_16 = fra.me.REG[5];
+ register_static_object(&once_value_16);
+ } else fra.me.REG[5] = once_value_16;
+ fra.me.REG[5] = fra.me.REG[5];
+ CALL_abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
+ fra.me.REG[5] = CALL_abstractmetamodel___MMLocalClass___name(fra.me.REG[0])(fra.me.REG[0]);
+ fra.me.REG[5] = CALL_string___Object___to_s(fra.me.REG[5])(fra.me.REG[5]);
+ CALL_abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
+ if (!once_value_17) {
+ fra.me.REG[5] = BOX_NativeString(";");
+ REGB2 = TAG_Int(1);
+ fra.me.REG[5] = NEW_String_string___String___with_native(fra.me.REG[5], REGB2);
+ once_value_17 = fra.me.REG[5];
+ register_static_object(&once_value_17);
+ } else fra.me.REG[5] = once_value_17;
+ fra.me.REG[5] = fra.me.REG[5];
+ CALL_abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
+ fra.me.REG[4] = CALL_string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
+ CALL_compiling_base___CompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
+ /* ./compiling//compiling_global.nit:376 */
+ if (!once_value_18) {
+ fra.me.REG[4] = BOX_NativeString("array->object_id = object_id_counter;");
+ REGB2 = TAG_Int(37);
+ fra.me.REG[4] = NEW_String_string___String___with_native(fra.me.REG[4], REGB2);
+ once_value_18 = fra.me.REG[4];
+ register_static_object(&once_value_18);
+ } else fra.me.REG[4] = once_value_18;
+ fra.me.REG[4] = fra.me.REG[4];
+ CALL_compiling_base___CompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
+ /* ./compiling//compiling_global.nit:377 */
+ if (!once_value_19) {
+ fra.me.REG[4] = BOX_NativeString("object_id_counter = object_id_counter + 1;");
+ REGB2 = TAG_Int(42);
+ fra.me.REG[4] = NEW_String_string___String___with_native(fra.me.REG[4], REGB2);
+ once_value_19 = fra.me.REG[4];
+ register_static_object(&once_value_19);
+ } else fra.me.REG[4] = once_value_19;
+ fra.me.REG[4] = fra.me.REG[4];
+ CALL_compiling_base___CompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
+ /* ./compiling//compiling_global.nit:378 */
+ if (!once_value_20) {
+ fra.me.REG[4] = BOX_NativeString("array->size = length;");
+ REGB2 = TAG_Int(21);
+ fra.me.REG[4] = NEW_String_string___String___with_native(fra.me.REG[4], REGB2);
+ once_value_20 = fra.me.REG[4];
+ register_static_object(&once_value_20);
+ } else fra.me.REG[4] = once_value_20;
+ fra.me.REG[4] = fra.me.REG[4];
+ CALL_compiling_base___CompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
+ /* ./compiling//compiling_global.nit:379 */
+ if (!once_value_21) {
+ fra.me.REG[4] = BOX_NativeString("return OBJ2VAL(array);");
+ REGB2 = TAG_Int(22);
+ fra.me.REG[4] = NEW_String_string___String___with_native(fra.me.REG[4], REGB2);
+ once_value_21 = fra.me.REG[4];
+ register_static_object(&once_value_21);
+ } else fra.me.REG[4] = once_value_21;
+ fra.me.REG[4] = fra.me.REG[4];
+ CALL_compiling_base___CompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
+ /* ./compiling//compiling_global.nit:380 */
+ CALL_compiling_base___CompilerVisitor___unindent(fra.me.REG[1])(fra.me.REG[1]);
+ /* ./compiling//compiling_global.nit:381 */
+ if (!once_value_22) {
+ fra.me.REG[4] = BOX_NativeString("}");
+ REGB2 = TAG_Int(1);
+ fra.me.REG[4] = NEW_String_string___String___with_native(fra.me.REG[4], REGB2);
+ once_value_22 = fra.me.REG[4];
+ register_static_object(&once_value_22);
+ } else fra.me.REG[4] = once_value_22;
+ fra.me.REG[4] = fra.me.REG[4];
+ CALL_compiling_base___CompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
+ } else {
+ /* ./compiling//compiling_global.nit:382 */
+ REGB2 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
+ if (UNTAG_Bool(REGB2)) {
+ } else {
+ REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
+ if (UNTAG_Bool(REGB0)) {
+ REGB0 = TAG_Bool(false);
+ REGB2 = REGB0;
+ } else {
+ REGB0 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
+ REGB2 = REGB0;
+ }
+ }
+ if (UNTAG_Bool(REGB2)) {
+ /* ./compiling//compiling_global.nit:385 */
+ REGB2 = TAG_Int(3);
+ fra.me.REG[4] = NEW_Array_array___Array___with_capacity(REGB2);
+ if (!once_value_23) {
+ fra.me.REG[5] = BOX_NativeString("INIT_ATTRIBUTES__");
+ REGB2 = TAG_Int(17);
+ fra.me.REG[5] = NEW_String_string___String___with_native(fra.me.REG[5], REGB2);
+ once_value_23 = fra.me.REG[5];
+ register_static_object(&once_value_23);
+ } else fra.me.REG[5] = once_value_23;
+ fra.me.REG[5] = fra.me.REG[5];
+ CALL_abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
+ fra.me.REG[5] = CALL_abstractmetamodel___MMLocalClass___name(fra.me.REG[0])(fra.me.REG[0]);
+ fra.me.REG[5] = CALL_string___Object___to_s(fra.me.REG[5])(fra.me.REG[5]);
+ CALL_abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
+ if (!once_value_24) {
+ fra.me.REG[5] = BOX_NativeString("");
+ REGB2 = TAG_Int(0);
+ fra.me.REG[5] = NEW_String_string___String___with_native(fra.me.REG[5], REGB2);
+ once_value_24 = fra.me.REG[5];
+ register_static_object(&once_value_24);
+ } else fra.me.REG[5] = once_value_24;
+ fra.me.REG[5] = fra.me.REG[5];
+ CALL_abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
+ fra.me.REG[4] = CALL_string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
+ /* ./compiling//compiling_global.nit:386 */
+ fra.me.REG[5] = CALL_program___MMLocalClass___init_var_iroutine(fra.me.REG[0])(fra.me.REG[0]);
+ REGB2 = TAG_Int(3);
+ fra.me.REG[7] = NEW_Array_array___Array___with_capacity(REGB2);
+ if (!once_value_25) {
+ fra.me.REG[6] = BOX_NativeString("init var of ");
+ REGB2 = TAG_Int(12);
+ fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB2);
+ once_value_25 = fra.me.REG[6];
+ register_static_object(&once_value_25);
+ } else fra.me.REG[6] = once_value_25;
+ fra.me.REG[6] = fra.me.REG[6];
+ CALL_abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[6]);
+ fra.me.REG[6] = CALL_abstractmetamodel___MMLocalClass___name(fra.me.REG[0])(fra.me.REG[0]);
+ fra.me.REG[6] = CALL_string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
+ CALL_abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[6]);
+ if (!once_value_26) {
+ fra.me.REG[6] = BOX_NativeString("");
+ REGB2 = TAG_Int(0);
+ fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB2);
+ once_value_26 = fra.me.REG[6];
+ register_static_object(&once_value_26);
+ } else fra.me.REG[6] = once_value_26;
+ fra.me.REG[6] = fra.me.REG[6];
+ CALL_abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[6]);
+ fra.me.REG[7] = CALL_string___Object___to_s(fra.me.REG[7])(fra.me.REG[7]);
+ REGB2 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
+ if (UNTAG_Bool(REGB2)) {
+ nit_abort("Reciever is null", NULL, LOCATE_compiling_global, 386);
+ }
+ fra.me.REG[7] = CALL_compiling_icode___IRoutine___compile_signature_to_c(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[1], fra.me.REG[4], fra.me.REG[7], NIT_NULL, NIT_NULL);
+ /* ./compiling//compiling_global.nit:387 */
+ fra.me.REG[5] = CALL_compiling_base___CompilerVisitor___decl_writer(fra.me.REG[1])(fra.me.REG[1]);
+ /* ./compiling//compiling_global.nit:388 */
+ fra.me.REG[6] = CALL_compiling_base___CompilerVisitor___writer(fra.me.REG[1])(fra.me.REG[1]);
+ fra.me.REG[6] = CALL_compiling_writer___Writer___sub(fra.me.REG[6])(fra.me.REG[6]);
+ CALL_compiling_base___CompilerVisitor___decl_writer__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[6]);
+ /* ./compiling//compiling_global.nit:389 */
+ fra.me.REG[6] = CALL_program___MMLocalClass___init_var_iroutine(fra.me.REG[0])(fra.me.REG[0]);
+ REGB2 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
+ if (UNTAG_Bool(REGB2)) {
+ nit_abort("Reciever is null", NULL, LOCATE_compiling_global, 389);
+ }
+ CALL_compiling_icode___IRoutine___compile_to_c(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[1], fra.me.REG[4], fra.me.REG[7]);
+ /* ./compiling//compiling_global.nit:390 */
+ CALL_compiling_base___CompilerVisitor___decl_writer__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[5]);
+ /* ./compiling//compiling_global.nit:391 */
+ CALL_compiling_base___CompilerVisitor___unindent(fra.me.REG[1])(fra.me.REG[1]);
+ /* ./compiling//compiling_global.nit:392 */
+ if (!once_value_27) {
+ fra.me.REG[5] = BOX_NativeString("}");
+ REGB2 = TAG_Int(1);
+ fra.me.REG[5] = NEW_String_string___String___with_native(fra.me.REG[5], REGB2);
+ once_value_27 = fra.me.REG[5];
+ register_static_object(&once_value_27);
+ } else fra.me.REG[5] = once_value_27;
+ fra.me.REG[5] = fra.me.REG[5];
+ CALL_compiling_base___CompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[5]);
+ /* ./compiling//compiling_global.nit:396 */
+ REGB2 = TAG_Int(3);
+ fra.me.REG[5] = NEW_Array_array___Array___with_capacity(REGB2);
+ if (!once_value_28) {
+ fra.me.REG[7] = BOX_NativeString("val_t NEW_");
+ REGB2 = TAG_Int(10);
+ fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB2);
+ once_value_28 = fra.me.REG[7];
+ register_static_object(&once_value_28);
+ } else fra.me.REG[7] = once_value_28;
+ fra.me.REG[7] = fra.me.REG[7];
+ CALL_abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[7]);
+ fra.me.REG[7] = CALL_abstractmetamodel___MMLocalClass___name(fra.me.REG[0])(fra.me.REG[0]);
+ fra.me.REG[7] = CALL_string___Object___to_s(fra.me.REG[7])(fra.me.REG[7]);
+ CALL_abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[7]);
+ if (!once_value_29) {
+ fra.me.REG[7] = BOX_NativeString("(void);");
+ REGB2 = TAG_Int(7);
+ fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB2);
+ once_value_29 = fra.me.REG[7];
+ register_static_object(&once_value_29);
+ } else fra.me.REG[7] = once_value_29;
+ fra.me.REG[7] = fra.me.REG[7];
+ CALL_abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[7]);
+ fra.me.REG[5] = CALL_string___Object___to_s(fra.me.REG[5])(fra.me.REG[5]);
+ CALL_compiling_base___CompilerVisitor___add_decl(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[5]);
+ /* ./compiling//compiling_global.nit:397 */
+ REGB2 = TAG_Int(3);
+ fra.me.REG[5] = NEW_Array_array___Array___with_capacity(REGB2);
+ if (!once_value_30) {
+ fra.me.REG[7] = BOX_NativeString("val_t NEW_");
+ REGB2 = TAG_Int(10);
+ fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB2);
+ once_value_30 = fra.me.REG[7];
+ register_static_object(&once_value_30);
+ } else fra.me.REG[7] = once_value_30;
+ fra.me.REG[7] = fra.me.REG[7];
+ CALL_abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[7]);
+ fra.me.REG[7] = CALL_abstractmetamodel___MMLocalClass___name(fra.me.REG[0])(fra.me.REG[0]);
+ fra.me.REG[7] = CALL_string___Object___to_s(fra.me.REG[7])(fra.me.REG[7]);
+ CALL_abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[7]);
+ if (!once_value_31) {
+ fra.me.REG[7] = BOX_NativeString("(void)");
+ REGB2 = TAG_Int(6);
+ fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB2);
+ once_value_31 = fra.me.REG[7];
+ register_static_object(&once_value_31);
+ } else fra.me.REG[7] = once_value_31;
+ fra.me.REG[7] = fra.me.REG[7];
+ CALL_abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[7]);
+ fra.me.REG[5] = CALL_string___Object___to_s(fra.me.REG[5])(fra.me.REG[5]);
+ CALL_compiling_base___CompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[5]);
+ /* ./compiling//compiling_global.nit:398 */
+ if (!once_value_32) {
+ fra.me.REG[5] = BOX_NativeString("{");
+ REGB2 = TAG_Int(1);
+ fra.me.REG[5] = NEW_String_string___String___with_native(fra.me.REG[5], REGB2);
+ once_value_32 = fra.me.REG[5];
+ register_static_object(&once_value_32);
+ } else fra.me.REG[5] = once_value_32;
+ fra.me.REG[5] = fra.me.REG[5];
+ CALL_compiling_base___CompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[5]);
+ /* ./compiling//compiling_global.nit:399 */
+ CALL_compiling_base___CompilerVisitor___indent(fra.me.REG[1])(fra.me.REG[1]);
+ /* ./compiling//compiling_global.nit:400 */
+ if (!once_value_33) {
+ fra.me.REG[5] = BOX_NativeString("obj_t obj;");
+ REGB2 = TAG_Int(10);
+ fra.me.REG[5] = NEW_String_string___String___with_native(fra.me.REG[5], REGB2);
+ once_value_33 = fra.me.REG[5];
+ register_static_object(&once_value_33);
+ } else fra.me.REG[5] = once_value_33;
+ fra.me.REG[5] = fra.me.REG[5];
+ CALL_compiling_base___CompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[5]);
+ /* ./compiling//compiling_global.nit:401 */
+ REGB2 = TAG_Int(3);
+ fra.me.REG[5] = NEW_Array_array___Array___with_capacity(REGB2);
+ if (!once_value_34) {
+ fra.me.REG[7] = BOX_NativeString("obj = alloc(sizeof(val_t) * ");
+ REGB2 = TAG_Int(28);
+ fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB2);
+ once_value_34 = fra.me.REG[7];
+ register_static_object(&once_value_34);
+ } else fra.me.REG[7] = once_value_34;
+ fra.me.REG[7] = fra.me.REG[7];
+ CALL_abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[7]);
+ /* ./../lib/standard//collection//array.nit:23 */
+ REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[3])!=NIT_NULL);
+ if (UNTAG_Bool(REGB2)) {
+ } else {
+ nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 23);
+ }
+ REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[3]);
+ /* ./compiling//compiling_global.nit:401 */
+ fra.me.REG[3] = CALL_string___Object___to_s(REGB2)(REGB2);
+ CALL_abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[3]);
+ if (!once_value_35) {
+ fra.me.REG[3] = BOX_NativeString(");");
+ REGB2 = TAG_Int(2);
+ fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB2);
+ once_value_35 = fra.me.REG[3];
+ register_static_object(&once_value_35);
+ } else fra.me.REG[3] = once_value_35;
+ fra.me.REG[3] = fra.me.REG[3];
+ CALL_abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[3]);
+ fra.me.REG[5] = CALL_string___Object___to_s(fra.me.REG[5])(fra.me.REG[5]);
+ CALL_compiling_base___CompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[5]);
+ /* ./compiling//compiling_global.nit:402 */
+ REGB2 = TAG_Int(3);
+ fra.me.REG[5] = NEW_Array_array___Array___with_capacity(REGB2);
+ if (!once_value_36) {
+ fra.me.REG[3] = BOX_NativeString("obj->vft = (classtable_elt_t*)VFT_");
+ REGB2 = TAG_Int(34);
+ fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB2);
+ once_value_36 = fra.me.REG[3];
+ register_static_object(&once_value_36);
+ } else fra.me.REG[3] = once_value_36;
+ fra.me.REG[3] = fra.me.REG[3];
+ CALL_abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[3]);
+ fra.me.REG[3] = CALL_abstractmetamodel___MMLocalClass___name(fra.me.REG[0])(fra.me.REG[0]);
+ fra.me.REG[3] = CALL_string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
+ CALL_abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[3]);
+ if (!once_value_37) {
+ fra.me.REG[3] = BOX_NativeString(";");
+ REGB2 = TAG_Int(1);
+ fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB2);
+ once_value_37 = fra.me.REG[3];
+ register_static_object(&once_value_37);
+ } else fra.me.REG[3] = once_value_37;
+ fra.me.REG[3] = fra.me.REG[3];
+ CALL_abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[3]);
+ fra.me.REG[5] = CALL_string___Object___to_s(fra.me.REG[5])(fra.me.REG[5]);
+ CALL_compiling_base___CompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[5]);
+ /* ./compiling//compiling_global.nit:403 */
+ if (!once_value_38) {
+ fra.me.REG[5] = BOX_NativeString("obj[1].object_id = object_id_counter;");
+ REGB2 = TAG_Int(37);
+ fra.me.REG[5] = NEW_String_string___String___with_native(fra.me.REG[5], REGB2);
+ once_value_38 = fra.me.REG[5];
+ register_static_object(&once_value_38);
+ } else fra.me.REG[5] = once_value_38;
+ fra.me.REG[5] = fra.me.REG[5];
+ CALL_compiling_base___CompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[5]);
+ /* ./compiling//compiling_global.nit:404 */
+ if (!once_value_39) {
+ fra.me.REG[5] = BOX_NativeString("object_id_counter = object_id_counter + 1;");
+ REGB2 = TAG_Int(42);
+ fra.me.REG[5] = NEW_String_string___String___with_native(fra.me.REG[5], REGB2);
+ once_value_39 = fra.me.REG[5];
+ register_static_object(&once_value_39);
+ } else fra.me.REG[5] = once_value_39;
+ fra.me.REG[5] = fra.me.REG[5];
+ CALL_compiling_base___CompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[5]);
+ /* ./compiling//compiling_global.nit:405 */
+ if (!once_value_40) {
+ fra.me.REG[5] = BOX_NativeString("return OBJ2VAL(obj);");
+ REGB2 = TAG_Int(20);
+ fra.me.REG[5] = NEW_String_string___String___with_native(fra.me.REG[5], REGB2);
+ once_value_40 = fra.me.REG[5];
+ register_static_object(&once_value_40);
+ } else fra.me.REG[5] = once_value_40;
+ fra.me.REG[5] = fra.me.REG[5];
+ CALL_compiling_base___CompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[5]);
+ /* ./compiling//compiling_global.nit:406 */
+ CALL_compiling_base___CompilerVisitor___unindent(fra.me.REG[1])(fra.me.REG[1]);
+ /* ./compiling//compiling_global.nit:407 */
+ if (!once_value_41) {
+ fra.me.REG[5] = BOX_NativeString("}");
+ REGB2 = TAG_Int(1);
+ fra.me.REG[5] = NEW_String_string___String___with_native(fra.me.REG[5], REGB2);
+ once_value_41 = fra.me.REG[5];
+ register_static_object(&once_value_41);
+ } else fra.me.REG[5] = once_value_41;
+ fra.me.REG[5] = fra.me.REG[5];
+ CALL_compiling_base___CompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[5]);
+ /* ./compiling//compiling_global.nit:411 */
+ REGB2 = TAG_Int(3);
+ fra.me.REG[5] = NEW_Array_array___Array___with_capacity(REGB2);
+ if (!once_value_42) {
+ fra.me.REG[3] = BOX_NativeString("CHECKNEW_");
+ REGB2 = TAG_Int(9);
+ fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB2);
+ once_value_42 = fra.me.REG[3];
+ register_static_object(&once_value_42);
+ } else fra.me.REG[3] = once_value_42;
+ fra.me.REG[3] = fra.me.REG[3];
+ CALL_abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[3]);
+ fra.me.REG[3] = CALL_abstractmetamodel___MMLocalClass___name(fra.me.REG[0])(fra.me.REG[0]);
+ fra.me.REG[3] = CALL_string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
+ CALL_abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[3]);
+ if (!once_value_43) {
+ fra.me.REG[3] = BOX_NativeString("");
+ REGB2 = TAG_Int(0);
+ fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB2);
+ once_value_43 = fra.me.REG[3];
+ register_static_object(&once_value_43);
+ } else fra.me.REG[3] = once_value_43;
+ fra.me.REG[3] = fra.me.REG[3];
+ CALL_abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[3]);
+ fra.me.REG[5] = CALL_string___Object___to_s(fra.me.REG[5])(fra.me.REG[5]);
+ /* ./compiling//compiling_global.nit:412 */
+ fra.me.REG[3] = CALL_program___MMLocalClass___checknew_iroutine(fra.me.REG[0])(fra.me.REG[0]);
+ REGB2 = TAG_Int(3);
+ fra.me.REG[7] = NEW_Array_array___Array___with_capacity(REGB2);
+ if (!once_value_44) {
+ fra.me.REG[4] = BOX_NativeString("check new ");
+ REGB2 = TAG_Int(10);
+ fra.me.REG[4] = NEW_String_string___String___with_native(fra.me.REG[4], REGB2);
+ once_value_44 = fra.me.REG[4];
+ register_static_object(&once_value_44);
+ } else fra.me.REG[4] = once_value_44;
+ fra.me.REG[4] = fra.me.REG[4];
+ CALL_abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[4]);
+ fra.me.REG[4] = CALL_abstractmetamodel___MMLocalClass___name(fra.me.REG[0])(fra.me.REG[0]);
+ fra.me.REG[4] = CALL_string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
+ CALL_abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[4]);
+ if (!once_value_45) {
+ fra.me.REG[4] = BOX_NativeString("");
+ REGB2 = TAG_Int(0);
+ fra.me.REG[4] = NEW_String_string___String___with_native(fra.me.REG[4], REGB2);
+ once_value_45 = fra.me.REG[4];
+ register_static_object(&once_value_45);
+ } else fra.me.REG[4] = once_value_45;
+ fra.me.REG[4] = fra.me.REG[4];
+ CALL_abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[4]);
+ fra.me.REG[7] = CALL_string___Object___to_s(fra.me.REG[7])(fra.me.REG[7]);
+ REGB2 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
+ if (UNTAG_Bool(REGB2)) {
+ nit_abort("Reciever is null", NULL, LOCATE_compiling_global, 412);