ni: added help message
[nit.git] / c_src / compiling___icode_generator._sep.c
index 5dd5cd1..f00a838 100644 (file)
@@ -1,5 +1,6 @@
 /* This C file is generated by NIT to compile module compiling___icode_generator. */
 #include "compiling___icode_generator._sep.h"
+static const char LOCATE_compiling___icode_generator___Program___generate_icode_files[] = "icode_generator::Program::generate_icode_files";
 void compiling___icode_generator___Program___generate_icode_files(val_t p0){
   struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
   val_t REGB0;
@@ -10,13 +11,14 @@ void compiling___icode_generator___Program___generate_icode_files(val_t p0){
   fra.me.meth = LOCATE_compiling___icode_generator___Program___generate_icode_files;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
+  fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./compiling//icode_generator.nit:26 */
+  /* compiling/icode_generator.nit:26 */
   fra.me.REG[1] = fra.me.REG[0];
-  /* ./compiling//icode_generator.nit:28 */
+  /* compiling/icode_generator.nit:28 */
   fra.me.REG[2] = CALL_program___Program___tc(fra.me.REG[1])(fra.me.REG[1]);
   fra.me.REG[2] = CALL_compiling___compiling_base___ToolContext___compdir(fra.me.REG[2])(fra.me.REG[2]);
   REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
@@ -32,17 +34,18 @@ void compiling___icode_generator___Program___generate_icode_files(val_t p0){
     struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
     val_t REGB0;
     val_t tmp;
-    /* ./compiling//icode_generator.nit:30 */
+    /* compiling/icode_generator.nit:30 */
     fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
     fra.me.file = LOCATE_compiling___icode_generator;
     fra.me.line = 30;
     fra.me.meth = LOCATE_compiling___icode_generator___Program___generate_icode_files;
     fra.me.has_broke = 0;
     fra.me.REG_size = 2;
+    fra.me.nitni_local_ref_head = NULL;
     fra.me.REG[0] = NIT_NULL;
     fra.me.REG[1] = NIT_NULL;
     fra.me.REG[0] = p0;
-    /* ./compiling//icode_generator.nit:31 */
+    /* compiling/icode_generator.nit:31 */
     fra.me.REG[1] = CALL_program___Program___tc(closctx->REG[1])(closctx->REG[1]);
     fra.me.REG[1] = CALL_compiling___compiling_base___ToolContext___compdir(fra.me.REG[1])(fra.me.REG[1]);
     REGB0 = TAG_Bool((fra.me.REG[1]!=NIT_NULL) && VAL_ISA(fra.me.REG[1], COLOR_standard___string___String, ID_standard___string___String)) /*cast String*/;
@@ -54,6 +57,7 @@ void compiling___icode_generator___Program___generate_icode_files(val_t p0){
     stack_frame_head = fra.me.prev;
     return;
   }
+static const char LOCATE_compiling___icode_generator___FileICodeDumper___init[] = "icode_generator::FileICodeDumper::init";
 void compiling___icode_generator___FileICodeDumper___init(val_t p0, val_t p1, int* init_table){
   int itpos0 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_compiling___icode_generator___FileICodeDumper].i;
   struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
@@ -67,23 +71,25 @@ void compiling___icode_generator___FileICodeDumper___init(val_t p0, val_t p1, in
   fra.me.meth = LOCATE_compiling___icode_generator___FileICodeDumper___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
+  fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./compiling//icode_generator.nit:41 */
+  /* compiling/icode_generator.nit:41 */
   fra.me.REG[2] = fra.me.REG[0];
-  /* ./compiling//icode_generator.nit:43 */
-  REGB0 = TAG_Bool(false);
-  REGB1 = TAG_Bool(false);
+  /* compiling/icode_generator.nit:43 */
+  REGB0 = TAG_Bool(0);
+  REGB1 = TAG_Bool(0);
   CALL_analysis___icode_dump___ICodeDumper___init(fra.me.REG[0])(fra.me.REG[0], REGB0, REGB1, init_table);
-  /* ./compiling//icode_generator.nit:44 */
+  /* compiling/icode_generator.nit:44 */
   ATTR_compiling___icode_generator___FileICodeDumper____file(fra.me.REG[2]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
   init_table[itpos0] = 1;
   return;
 }
+static const char LOCATE_compiling___icode_generator___FileICodeDumper___write[] = "icode_generator::FileICodeDumper::(icode_dump::ICodeDumper::write)";
 void compiling___icode_generator___FileICodeDumper___write(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
   val_t REGB0;
@@ -98,27 +104,28 @@ void compiling___icode_generator___FileICodeDumper___write(val_t p0, val_t p1){
   fra.me.meth = LOCATE_compiling___icode_generator___FileICodeDumper___write;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
+  fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./compiling//icode_generator.nit:48 */
+  /* compiling/icode_generator.nit:48 */
   REGB0 = TAG_Int(0);
   REGB1 = CALL_analysis___icode_dump___ICodeDumper___indent_level(fra.me.REG[0])(fra.me.REG[0]);
-  /* ./../lib/standard//kernel.nit:352 */
+  /* ../lib/standard/kernel.nit:355 */
   while(1) {
     REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
     if (UNTAG_Bool(REGB2)) {
     } else {
       nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
     }
-    /* ./../lib/standard//kernel.nit:232 */
+    /* ../lib/standard/kernel.nit:235 */
     REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
-    /* ./../lib/standard//kernel.nit:352 */
+    /* ../lib/standard/kernel.nit:355 */
     if (UNTAG_Bool(REGB2)) {
-      /* ./compiling//icode_generator.nit:49 */
+      /* compiling/icode_generator.nit:49 */
       REGB2 = TAG_Bool(ATTR_compiling___icode_generator___FileICodeDumper____file(fra.me.REG[0])!=NIT_NULL);
       if (UNTAG_Bool(REGB2)) {
       } else {
@@ -134,19 +141,19 @@ void compiling___icode_generator___FileICodeDumper___write(val_t p0, val_t p1){
       } else fra.me.REG[3] = once_value_1;
       fra.me.REG[3] = fra.me.REG[3];
       CALL_standard___stream___OStream___write(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
-      /* ./../lib/standard//kernel.nit:354 */
+      /* ../lib/standard/kernel.nit:357 */
       REGB2 = TAG_Int(1);
-      /* ./../lib/standard//kernel.nit:235 */
+      /* ../lib/standard/kernel.nit:238 */
       REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
-      /* ./../lib/standard//kernel.nit:354 */
+      /* ../lib/standard/kernel.nit:357 */
       REGB0 = REGB2;
     } else {
-      /* ./../lib/standard//kernel.nit:352 */
+      /* ../lib/standard/kernel.nit:355 */
       goto label2;
     }
   }
   label2: while(0);
-  /* ./compiling//icode_generator.nit:51 */
+  /* compiling/icode_generator.nit:51 */
   REGB0 = TAG_Bool(ATTR_compiling___icode_generator___FileICodeDumper____file(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -154,7 +161,7 @@ void compiling___icode_generator___FileICodeDumper___write(val_t p0, val_t p1){
   }
   fra.me.REG[3] = ATTR_compiling___icode_generator___FileICodeDumper____file(fra.me.REG[0]);
   CALL_standard___stream___OStream___write(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
-  /* ./compiling//icode_generator.nit:52 */
+  /* compiling/icode_generator.nit:52 */
   REGB0 = TAG_Bool(ATTR_compiling___icode_generator___FileICodeDumper____file(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -173,6 +180,7 @@ void compiling___icode_generator___FileICodeDumper___write(val_t p0, val_t p1){
   stack_frame_head = fra.me.prev;
   return;
 }
+static const char LOCATE_compiling___icode_generator___MMLocalClass___generate_icode_file[] = "icode_generator::MMLocalClass::generate_icode_file";
 void compiling___icode_generator___MMLocalClass___generate_icode_file(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
   val_t REGB0;
@@ -191,13 +199,14 @@ void compiling___icode_generator___MMLocalClass___generate_icode_file(val_t p0,
   fra.me.meth = LOCATE_compiling___icode_generator___MMLocalClass___generate_icode_file;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
+  fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./compiling//icode_generator.nit:59 */
+  /* compiling/icode_generator.nit:59 */
   REGB0 = TAG_Int(5);
   fra.me.REG[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
   if (!once_value_1) {
@@ -232,14 +241,14 @@ void compiling___icode_generator___MMLocalClass___generate_icode_file(val_t p0,
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
   fra.me.REG[2] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
   fra.me.REG[2] = NEW_OFStream_standard___file___OFStream___open(fra.me.REG[2]);
-  /* ./compiling//icode_generator.nit:60 */
+  /* compiling/icode_generator.nit:60 */
   fra.me.REG[1] = CALL_primitive_info___MMLocalClass___primitive_info(fra.me.REG[0])(fra.me.REG[0]);
   REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
     REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
     if (UNTAG_Bool(REGB1)) {
-      REGB1 = TAG_Bool(false);
+      REGB1 = TAG_Bool(0);
       REGB0 = REGB1;
     } else {
       REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
@@ -247,14 +256,14 @@ void compiling___icode_generator___MMLocalClass___generate_icode_file(val_t p0,
     }
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./compiling//icode_generator.nit:62 */
+    /* compiling/icode_generator.nit:62 */
     fra.me.REG[1] = CALL_program___MMLocalClass___init_var_iroutine(fra.me.REG[0])(fra.me.REG[0]);
     REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
       REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
       if (UNTAG_Bool(REGB1)) {
-        REGB1 = TAG_Bool(false);
+        REGB1 = TAG_Bool(0);
         REGB0 = REGB1;
       } else {
         REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
@@ -263,11 +272,11 @@ void compiling___icode_generator___MMLocalClass___generate_icode_file(val_t p0,
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./compiling//icode_generator.nit:63 */
+      /* compiling/icode_generator.nit:63 */
       fra.me.REG[1] = NEW_FileICodeDumper_compiling___icode_generator___FileICodeDumper___init(fra.me.REG[2]);
-      /* ./compiling//icode_generator.nit:64 */
+      /* compiling/icode_generator.nit:64 */
       CALL_analysis___icode_dump___ICodeDumper___indent(fra.me.REG[1])(fra.me.REG[1]);
-      /* ./compiling//icode_generator.nit:65 */
+      /* compiling/icode_generator.nit:65 */
       if (!once_value_4) {
         fra.me.REG[3] = BOX_NativeString("Init var iroutine::\n");
         REGB0 = TAG_Int(20);
@@ -277,14 +286,14 @@ void compiling___icode_generator___MMLocalClass___generate_icode_file(val_t p0,
       } else fra.me.REG[3] = once_value_4;
       fra.me.REG[3] = fra.me.REG[3];
       CALL_standard___stream___OStream___write(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
-      /* ./compiling//icode_generator.nit:66 */
+      /* compiling/icode_generator.nit:66 */
       fra.me.REG[3] = CALL_program___MMLocalClass___init_var_iroutine(fra.me.REG[0])(fra.me.REG[0]);
       REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
         nit_abort("Reciever is null", NULL, LOCATE_compiling___icode_generator, 66);
       }
       CALL_analysis___icode_dump___IRoutine___dump(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
-      /* ./compiling//icode_generator.nit:67 */
+      /* compiling/icode_generator.nit:67 */
       if (!once_value_5) {
         fra.me.REG[1] = BOX_NativeString("\n\n");
         REGB0 = TAG_Int(2);
@@ -295,14 +304,14 @@ void compiling___icode_generator___MMLocalClass___generate_icode_file(val_t p0,
       fra.me.REG[1] = fra.me.REG[1];
       CALL_standard___stream___OStream___write(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
     }
-    /* ./compiling//icode_generator.nit:69 */
+    /* compiling/icode_generator.nit:69 */
     fra.me.REG[1] = CALL_program___MMLocalClass___checknew_iroutine(fra.me.REG[0])(fra.me.REG[0]);
     REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
       REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
       if (UNTAG_Bool(REGB1)) {
-        REGB1 = TAG_Bool(false);
+        REGB1 = TAG_Bool(0);
         REGB0 = REGB1;
       } else {
         REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
@@ -311,11 +320,11 @@ void compiling___icode_generator___MMLocalClass___generate_icode_file(val_t p0,
     }
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
-      /* ./compiling//icode_generator.nit:70 */
+      /* compiling/icode_generator.nit:70 */
       fra.me.REG[1] = NEW_FileICodeDumper_compiling___icode_generator___FileICodeDumper___init(fra.me.REG[2]);
-      /* ./compiling//icode_generator.nit:71 */
+      /* compiling/icode_generator.nit:71 */
       CALL_analysis___icode_dump___ICodeDumper___indent(fra.me.REG[1])(fra.me.REG[1]);
-      /* ./compiling//icode_generator.nit:72 */
+      /* compiling/icode_generator.nit:72 */
       if (!once_value_6) {
         fra.me.REG[3] = BOX_NativeString("Check new instance iroutine::\n");
         REGB0 = TAG_Int(30);
@@ -325,14 +334,14 @@ void compiling___icode_generator___MMLocalClass___generate_icode_file(val_t p0,
       } else fra.me.REG[3] = once_value_6;
       fra.me.REG[3] = fra.me.REG[3];
       CALL_standard___stream___OStream___write(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
-      /* ./compiling//icode_generator.nit:73 */
+      /* compiling/icode_generator.nit:73 */
       fra.me.REG[3] = CALL_program___MMLocalClass___checknew_iroutine(fra.me.REG[0])(fra.me.REG[0]);
       REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
         nit_abort("Reciever is null", NULL, LOCATE_compiling___icode_generator, 73);
       }
       CALL_analysis___icode_dump___IRoutine___dump(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
-      /* ./compiling//icode_generator.nit:74 */
+      /* compiling/icode_generator.nit:74 */
       if (!once_value_7) {
         fra.me.REG[1] = BOX_NativeString("\n\n");
         REGB0 = TAG_Int(2);
@@ -343,14 +352,14 @@ void compiling___icode_generator___MMLocalClass___generate_icode_file(val_t p0,
       fra.me.REG[1] = fra.me.REG[1];
       CALL_standard___stream___OStream___write(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
     }
-    /* ./compiling//icode_generator.nit:78 */
+    /* compiling/icode_generator.nit:78 */
     fra.me.REG[1] = CALL_metamodel___abstractmetamodel___MMLocalClass___global_properties(fra.me.REG[0])(fra.me.REG[0]);
     CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[1])(fra.me.REG[1], (&(fra.me)), ((fun_t)OC_compiling___icode_generator___MMLocalClass___generate_icode_file_8));
   }
-  /* ./compiling//icode_generator.nit:91 */
+  /* compiling/icode_generator.nit:92 */
   fra.me.REG[1] = CALL_metamodel___abstractmetamodel___MMLocalClass___global_properties(fra.me.REG[0])(fra.me.REG[0]);
   CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[1])(fra.me.REG[1], (&(fra.me)), ((fun_t)OC_compiling___icode_generator___MMLocalClass___generate_icode_file_13));
-  /* ./compiling//icode_generator.nit:97 */
+  /* compiling/icode_generator.nit:98 */
   CALL_standard___stream___IOS___close(fra.me.REG[2])(fra.me.REG[2]);
   stack_frame_head = fra.me.prev;
   return;
@@ -369,6 +378,7 @@ void compiling___icode_generator___MMLocalClass___generate_icode_file(val_t p0,
       fra.me.meth = LOCATE_compiling___icode_generator___MMLocalClass___generate_icode_file;
       fra.me.has_broke = 0;
       fra.me.REG_size = 4;
+      fra.me.nitni_local_ref_head = NULL;
       fra.me.REG[0] = NIT_NULL;
       fra.me.REG[1] = NIT_NULL;
       fra.me.REG[2] = NIT_NULL;
@@ -377,25 +387,32 @@ void compiling___icode_generator___MMLocalClass___generate_icode_file(val_t p0,
       fra.me.closure_funs = CREG;
       fra.me.REG[0] = p0;
       CREG[0] = clos_fun0;
-      /* ./compiling//icode_generator.nit:79 */
+      /* compiling/icode_generator.nit:79 */
       REGB0 = CALL_metamodel___abstractmetamodel___MMGlobalProperty___is_init_for(fra.me.REG[0])(fra.me.REG[0], closctx->REG[0]);
       REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
       if (UNTAG_Bool(REGB0)) {
         goto label9;
       }
-      /* ./compiling//icode_generator.nit:80 */
+      /* compiling/icode_generator.nit:80 */
       fra.me.REG[0] = CALL_metamodel___abstractmetamodel___MMLocalClass_____bra(closctx->REG[0])(closctx->REG[0], fra.me.REG[0]);
-      /* ./compiling//icode_generator.nit:81 */
+      /* compiling/icode_generator.nit:81 */
       REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_metamodel___abstractmetamodel___MMMethod, ID_metamodel___abstractmetamodel___MMMethod)) /*cast MMMethod*/;
       if (UNTAG_Bool(REGB0)) {
       } else {
         nit_abort("Assert failed", NULL, LOCATE_compiling___icode_generator, 81);
       }
-      /* ./compiling//icode_generator.nit:82 */
+      /* compiling/icode_generator.nit:82 */
+      fra.me.REG[1] = CALL_program___MMLocalClass___new_instance_iroutine(closctx->REG[0])(closctx->REG[0]);
+      REGB0 = CALL_standard___collection___abstract_collection___MapRead___has_key(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
+      REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
+      if (UNTAG_Bool(REGB0)) {
+        goto label9;
+      }
+      /* compiling/icode_generator.nit:83 */
       fra.me.REG[1] = NEW_FileICodeDumper_compiling___icode_generator___FileICodeDumper___init(closctx->REG[2]);
-      /* ./compiling//icode_generator.nit:83 */
+      /* compiling/icode_generator.nit:84 */
       CALL_analysis___icode_dump___ICodeDumper___indent(fra.me.REG[1])(fra.me.REG[1]);
-      /* ./compiling//icode_generator.nit:84 */
+      /* compiling/icode_generator.nit:85 */
       REGB0 = TAG_Int(3);
       fra.me.REG[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
       if (!once_value_10) {
@@ -420,15 +437,15 @@ void compiling___icode_generator___MMLocalClass___generate_icode_file(val_t p0,
       CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
       fra.me.REG[2] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
       CALL_standard___stream___OStream___write(closctx->REG[2])(closctx->REG[2], fra.me.REG[2]);
-      /* ./compiling//icode_generator.nit:85 */
+      /* compiling/icode_generator.nit:86 */
       fra.me.REG[2] = CALL_program___MMLocalClass___new_instance_iroutine(closctx->REG[0])(closctx->REG[0]);
       fra.me.REG[0] = CALL_standard___collection___abstract_collection___MapRead_____bra(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
       REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_compiling___icode_generator, 85);
+        nit_abort("Reciever is null", NULL, LOCATE_compiling___icode_generator, 86);
       }
       CALL_analysis___icode_dump___IRoutine___dump(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
-      /* ./compiling//icode_generator.nit:86 */
+      /* compiling/icode_generator.nit:87 */
       if (!once_value_12) {
         fra.me.REG[1] = BOX_NativeString("\n\n");
         REGB0 = TAG_Int(2);
@@ -454,15 +471,16 @@ void compiling___icode_generator___MMLocalClass___generate_icode_file(val_t p0,
     fra.me.meth = LOCATE_compiling___icode_generator___MMLocalClass___generate_icode_file;
     fra.me.has_broke = 0;
     fra.me.REG_size = 2;
+    fra.me.nitni_local_ref_head = NULL;
     fra.me.REG[0] = NIT_NULL;
     fra.me.REG[1] = NIT_NULL;
     fra.me.closure_ctx = closctx_param;
     fra.me.closure_funs = CREG;
     fra.me.REG[0] = p0;
     CREG[0] = clos_fun0;
-    /* ./compiling//icode_generator.nit:92 */
+    /* compiling/icode_generator.nit:93 */
     fra.me.REG[0] = CALL_metamodel___abstractmetamodel___MMLocalClass_____bra(closctx->REG[0])(closctx->REG[0], fra.me.REG[0]);
-    /* ./compiling//icode_generator.nit:93 */
+    /* compiling/icode_generator.nit:94 */
     fra.me.REG[1] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[0])(fra.me.REG[0]);
     REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[1],closctx->REG[0]));
     if (UNTAG_Bool(REGB0)) {
@@ -473,16 +491,17 @@ void compiling___icode_generator___MMLocalClass___generate_icode_file(val_t p0,
     if (UNTAG_Bool(REGB0)) {
       REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_metamodel___abstractmetamodel___MMMethod, ID_metamodel___abstractmetamodel___MMMethod)) /*cast MMMethod*/;
     } else {
-      REGB1 = TAG_Bool(false);
+      REGB1 = TAG_Bool(0);
       REGB0 = REGB1;
     }
     if (UNTAG_Bool(REGB0)) {
-      /* ./compiling//icode_generator.nit:94 */
+      /* compiling/icode_generator.nit:95 */
       CALL_compiling___icode_generator___MMMethod___generate_icode(fra.me.REG[0])(fra.me.REG[0], closctx->REG[2]);
     }
     stack_frame_head = fra.me.prev;
     return;
   }
+static const char LOCATE_compiling___icode_generator___MMMethod___generate_icode[] = "icode_generator::MMMethod::generate_icode";
 void compiling___icode_generator___MMMethod___generate_icode(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
   val_t REGB0;
@@ -492,10 +511,11 @@ void compiling___icode_generator___MMMethod___generate_icode(val_t p0, val_t p1)
   static val_t once_value_3; /* Once value */
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_compiling___icode_generator;
-  fra.me.line = 102;
+  fra.me.line = 103;
   fra.me.meth = LOCATE_compiling___icode_generator___MMMethod___generate_icode;
   fra.me.has_broke = 0;
   fra.me.REG_size = 5;
+  fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[2] = NIT_NULL;
@@ -503,11 +523,11 @@ void compiling___icode_generator___MMMethod___generate_icode(val_t p0, val_t p1)
   fra.me.REG[4] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./compiling//icode_generator.nit:104 */
+  /* compiling/icode_generator.nit:105 */
   fra.me.REG[2] = NEW_FileICodeDumper_compiling___icode_generator___FileICodeDumper___init(fra.me.REG[1]);
-  /* ./compiling//icode_generator.nit:105 */
+  /* compiling/icode_generator.nit:106 */
   CALL_analysis___icode_dump___ICodeDumper___indent(fra.me.REG[2])(fra.me.REG[2]);
-  /* ./compiling//icode_generator.nit:106 */
+  /* compiling/icode_generator.nit:107 */
   REGB0 = TAG_Int(3);
   fra.me.REG[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
   if (!once_value_1) {
@@ -532,14 +552,14 @@ void compiling___icode_generator___MMMethod___generate_icode(val_t p0, val_t p1)
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
   fra.me.REG[3] = CALL_standard___string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
   CALL_standard___stream___OStream___write(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
-  /* ./compiling//icode_generator.nit:107 */
+  /* compiling/icode_generator.nit:108 */
   fra.me.REG[0] = CALL_icode___icode_base___MMMethod___iroutine(fra.me.REG[0])(fra.me.REG[0]);
   REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
-    nit_abort("Reciever is null", NULL, LOCATE_compiling___icode_generator, 107);
+    nit_abort("Reciever is null", NULL, LOCATE_compiling___icode_generator, 108);
   }
   CALL_analysis___icode_dump___IRoutine___dump(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[2]);
-  /* ./compiling//icode_generator.nit:108 */
+  /* compiling/icode_generator.nit:109 */
   if (!once_value_3) {
     fra.me.REG[2] = BOX_NativeString("\n\n");
     REGB0 = TAG_Int(2);