ni_nitdoc: quicksearch is now case sensitive
[nit.git] / c_src / native_interface___ni_metamodel._sep.c
index 684b49e..fa444ef 100644 (file)
@@ -1,5 +1,6 @@
 /* This C file is generated by NIT to compile module native_interface___ni_metamodel. */
 #include "native_interface___ni_metamodel._sep.h"
+static const char LOCATE_native_interface___ni_metamodel___MMType___friendly_extern_name[] = "ni_metamodel::MMType::friendly_extern_name";
 val_t native_interface___ni_metamodel___MMType___friendly_extern_name(val_t p0){
   struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
   val_t REGB0;
@@ -59,7 +60,7 @@ val_t native_interface___ni_metamodel___MMType___friendly_extern_name(val_t p0){
     } 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);
@@ -68,39 +69,27 @@ val_t native_interface___ni_metamodel___MMType___friendly_extern_name(val_t p0){
     }
     if (UNTAG_Bool(REGB0)) {
       /* native_interface/ni_metamodel.nit:34 */
-      fra.me.REG[3] = CALL_metamodel___static_type___MMType___local_class(fra.me.REG[0])(fra.me.REG[0]);
-      fra.me.REG[3] = CALL_metamodel___abstractmetamodel___MMLocalClass___name(fra.me.REG[3])(fra.me.REG[3]);
-      fra.me.REG[3] = CALL_standard___string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
-      fra.me.REG[2] = fra.me.REG[3];
+      fra.me.REG[0] = CALL_metamodel___static_type___MMType___local_class(fra.me.REG[0])(fra.me.REG[0]);
+      fra.me.REG[0] = CALL_metamodel___abstractmetamodel___MMLocalClass___name(fra.me.REG[0])(fra.me.REG[0]);
+      fra.me.REG[0] = CALL_standard___string___Object___to_s(fra.me.REG[0])(fra.me.REG[0]);
+      fra.me.REG[2] = fra.me.REG[0];
       goto label3;
     } else {
-      /* native_interface/ni_metamodel.nit:35 */
-      fra.me.REG[3] = CALL_metamodel___static_type___MMType___local_class(fra.me.REG[0])(fra.me.REG[0]);
-      fra.me.REG[3] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(fra.me.REG[3])(fra.me.REG[3]);
-      REGB0 = CALL_metamodel___abstractmetamodel___MMGlobalClass___is_extern(fra.me.REG[3])(fra.me.REG[3]);
+      /* native_interface/ni_metamodel.nit:36 */
+      REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        /* native_interface/ni_metamodel.nit:36 */
-        fra.me.REG[0] = CALL_metamodel___static_type___MMType___local_class(fra.me.REG[0])(fra.me.REG[0]);
-        fra.me.REG[0] = CALL_metamodel___abstractmetamodel___MMLocalClass___name(fra.me.REG[0])(fra.me.REG[0]);
-        fra.me.REG[0] = CALL_standard___string___Object___to_s(fra.me.REG[0])(fra.me.REG[0]);
-        fra.me.REG[2] = fra.me.REG[0];
-        goto label3;
-      } else {
-        /* native_interface/ni_metamodel.nit:38 */
-        REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
-        if (UNTAG_Bool(REGB0)) {
-          nit_abort("Reciever is null", NULL, LOCATE_native_interface___ni_metamodel, 38);
-        }
-        fra.me.REG[1] = CALL_primitive_info___PrimitiveInfo___cname(fra.me.REG[1])(fra.me.REG[1]);
-        fra.me.REG[2] = fra.me.REG[1];
-        goto label3;
+        nit_abort("Reciever is null", NULL, LOCATE_native_interface___ni_metamodel, 36);
       }
+      fra.me.REG[1] = CALL_primitive_info___PrimitiveInfo___cname(fra.me.REG[1])(fra.me.REG[1]);
+      fra.me.REG[2] = fra.me.REG[1];
+      goto label3;
     }
   }
   label3: while(0);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[2];
 }
+static const char LOCATE_native_interface___ni_metamodel___MMType___mangled_name[] = "ni_metamodel::MMType::mangled_name";
 val_t native_interface___ni_metamodel___MMType___mangled_name(val_t p0){
   struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
   val_t REGB0;
@@ -109,7 +98,7 @@ val_t native_interface___ni_metamodel___MMType___mangled_name(val_t p0){
     static val_t once_value_2; /* Once value */
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_native_interface___ni_metamodel;
-  fra.me.line = 42;
+  fra.me.line = 40;
   fra.me.meth = LOCATE_native_interface___ni_metamodel___MMType___mangled_name;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
@@ -118,13 +107,13 @@ val_t native_interface___ni_metamodel___MMType___mangled_name(val_t p0){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* native_interface/ni_metamodel.nit:44 */
+  /* native_interface/ni_metamodel.nit:42 */
   fra.me.REG[1] = CALL_metamodel___static_type___MMType___local_class(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[1] = CALL_primitive_info___MMLocalClass___primitive_info(fra.me.REG[1])(fra.me.REG[1]);
-  /* native_interface/ni_metamodel.nit:45 */
+  /* native_interface/ni_metamodel.nit:43 */
   REGB0 = CALL_metamodel___static_type___MMType___is_nullable(fra.me.REG[0])(fra.me.REG[0]);
   if (UNTAG_Bool(REGB0)) {
-    /* native_interface/ni_metamodel.nit:46 */
+    /* native_interface/ni_metamodel.nit:44 */
     REGB0 = TAG_Int(3);
     fra.me.REG[1] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
     if (!once_value_1) {
@@ -152,7 +141,7 @@ val_t native_interface___ni_metamodel___MMType___mangled_name(val_t p0){
     fra.me.REG[1] = CALL_standard___string___Object___to_s(fra.me.REG[1])(fra.me.REG[1]);
     goto label3;
   } else {
-    /* native_interface/ni_metamodel.nit:48 */
+    /* native_interface/ni_metamodel.nit:46 */
     fra.me.REG[0] = CALL_metamodel___static_type___MMType___local_class(fra.me.REG[0])(fra.me.REG[0]);
     fra.me.REG[0] = CALL_metamodel___abstractmetamodel___MMLocalClass___name(fra.me.REG[0])(fra.me.REG[0]);
     fra.me.REG[0] = CALL_standard___string___Object___to_s(fra.me.REG[0])(fra.me.REG[0]);
@@ -163,6 +152,7 @@ val_t native_interface___ni_metamodel___MMType___mangled_name(val_t p0){
   stack_frame_head = fra.me.prev;
   return fra.me.REG[1];
 }
+static const char LOCATE_native_interface___ni_metamodel___MMType___from_native[] = "ni_metamodel::MMType::from_native";
 val_t native_interface___ni_metamodel___MMType___from_native(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
   val_t REGB0;
@@ -172,7 +162,7 @@ val_t native_interface___ni_metamodel___MMType___from_native(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_native_interface___ni_metamodel;
-  fra.me.line = 52;
+  fra.me.line = 50;
   fra.me.meth = LOCATE_native_interface___ni_metamodel___MMType___from_native;
   fra.me.has_broke = 0;
   fra.me.REG_size = 5;
@@ -184,7 +174,7 @@ val_t native_interface___ni_metamodel___MMType___from_native(val_t p0, val_t p1)
   fra.me.REG[4] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* native_interface/ni_metamodel.nit:55 */
+  /* native_interface/ni_metamodel.nit:53 */
   fra.me.REG[2] = CALL_metamodel___static_type___MMType___local_class(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[2] = CALL_primitive_info___MMLocalClass___primitive_info(fra.me.REG[2])(fra.me.REG[2]);
   REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
@@ -192,7 +182,7 @@ val_t native_interface___ni_metamodel___MMType___from_native(val_t p0, val_t p1)
   } else {
     REGB1 = TAG_Bool(fra.me.REG[2]==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[2])(fra.me.REG[2], NIT_NULL);
@@ -201,7 +191,7 @@ val_t native_interface___ni_metamodel___MMType___from_native(val_t p0, val_t p1)
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    REGB0 = TAG_Bool(true);
+    REGB0 = TAG_Bool(1);
   } else {
     fra.me.REG[2] = CALL_metamodel___static_type___MMType___local_class(fra.me.REG[0])(fra.me.REG[0]);
     fra.me.REG[2] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(fra.me.REG[2])(fra.me.REG[2]);
@@ -209,20 +199,20 @@ val_t native_interface___ni_metamodel___MMType___from_native(val_t p0, val_t p1)
     REGB0 = REGB1;
   }
   if (UNTAG_Bool(REGB0)) {
-    /* native_interface/ni_metamodel.nit:56 */
+    /* native_interface/ni_metamodel.nit:54 */
     REGB0 = CALL_metamodel___static_type___MMType___is_nullable(fra.me.REG[0])(fra.me.REG[0]);
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   } else {
-    /* native_interface/ni_metamodel.nit:55 */
-    REGB1 = TAG_Bool(false);
+    /* native_interface/ni_metamodel.nit:53 */
+    REGB1 = TAG_Bool(0);
     REGB0 = REGB1;
   }
   if (UNTAG_Bool(REGB0)) {
-    /* native_interface/ni_metamodel.nit:57 */
+    /* native_interface/ni_metamodel.nit:55 */
     fra.me.REG[2] = CALL_primitive_info___MMType___boxtype(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
     goto label1;
   } else {
-    /* native_interface/ni_metamodel.nit:59 */
+    /* native_interface/ni_metamodel.nit:57 */
     REGB0 = TAG_Int(3);
     fra.me.REG[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
     if (!once_value_2) {
@@ -245,7 +235,7 @@ val_t native_interface___ni_metamodel___MMType___from_native(val_t p0, val_t p1)
     fra.me.REG[1] = fra.me.REG[1];
     CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
     fra.me.REG[3] = CALL_standard___string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
-    /* native_interface/ni_metamodel.nit:61 */
+    /* native_interface/ni_metamodel.nit:59 */
     fra.me.REG[3] = CALL_primitive_info___MMType___boxtype(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[3]);
     fra.me.REG[2] = fra.me.REG[3];
     goto label1;
@@ -254,6 +244,7 @@ val_t native_interface___ni_metamodel___MMType___from_native(val_t p0, val_t p1)
   stack_frame_head = fra.me.prev;
   return fra.me.REG[2];
 }
+static const char LOCATE_native_interface___ni_metamodel___MMType___assign_to_friendly[] = "ni_metamodel::MMType::assign_to_friendly";
 val_t native_interface___ni_metamodel___MMType___assign_to_friendly(val_t p0, val_t p1, val_t p2){
   struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
   val_t REGB0;
@@ -267,7 +258,7 @@ val_t native_interface___ni_metamodel___MMType___assign_to_friendly(val_t p0, va
     static val_t once_value_7; /* Once value */
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_native_interface___ni_metamodel;
-  fra.me.line = 65;
+  fra.me.line = 63;
   fra.me.meth = LOCATE_native_interface___ni_metamodel___MMType___assign_to_friendly;
   fra.me.has_broke = 0;
   fra.me.REG_size = 6;
@@ -281,7 +272,7 @@ val_t native_interface___ni_metamodel___MMType___assign_to_friendly(val_t p0, va
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* native_interface/ni_metamodel.nit:69 */
+  /* native_interface/ni_metamodel.nit:67 */
   fra.me.REG[3] = CALL_metamodel___static_type___MMType___local_class(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[3] = CALL_primitive_info___MMLocalClass___primitive_info(fra.me.REG[3])(fra.me.REG[3]);
   REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
@@ -289,7 +280,7 @@ val_t native_interface___ni_metamodel___MMType___assign_to_friendly(val_t p0, va
   } else {
     REGB1 = TAG_Bool(fra.me.REG[3]==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[3])(fra.me.REG[3], NIT_NULL);
@@ -298,7 +289,7 @@ val_t native_interface___ni_metamodel___MMType___assign_to_friendly(val_t p0, va
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    REGB0 = TAG_Bool(true);
+    REGB0 = TAG_Bool(1);
   } else {
     fra.me.REG[3] = CALL_metamodel___static_type___MMType___local_class(fra.me.REG[0])(fra.me.REG[0]);
     fra.me.REG[3] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(fra.me.REG[3])(fra.me.REG[3]);
@@ -306,16 +297,16 @@ val_t native_interface___ni_metamodel___MMType___assign_to_friendly(val_t p0, va
     REGB0 = REGB1;
   }
   if (UNTAG_Bool(REGB0)) {
-    /* native_interface/ni_metamodel.nit:70 */
+    /* native_interface/ni_metamodel.nit:68 */
     REGB0 = CALL_metamodel___static_type___MMType___is_nullable(fra.me.REG[0])(fra.me.REG[0]);
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   } else {
-    /* native_interface/ni_metamodel.nit:69 */
-    REGB1 = TAG_Bool(false);
+    /* native_interface/ni_metamodel.nit:67 */
+    REGB1 = TAG_Bool(0);
     REGB0 = REGB1;
   }
   if (UNTAG_Bool(REGB0)) {
-    /* native_interface/ni_metamodel.nit:71 */
+    /* native_interface/ni_metamodel.nit:69 */
     REGB0 = TAG_Int(5);
     fra.me.REG[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
     if (!once_value_1) {
@@ -351,7 +342,7 @@ val_t native_interface___ni_metamodel___MMType___assign_to_friendly(val_t p0, va
     fra.me.REG[3] = CALL_standard___string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
     goto label4;
   } else {
-    /* native_interface/ni_metamodel.nit:73 */
+    /* native_interface/ni_metamodel.nit:71 */
     REGB0 = TAG_Int(5);
     fra.me.REG[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
     if (!once_value_5) {
@@ -392,6 +383,7 @@ val_t native_interface___ni_metamodel___MMType___assign_to_friendly(val_t p0, va
   stack_frame_head = fra.me.prev;
   return fra.me.REG[3];
 }
+static const char LOCATE_native_interface___ni_metamodel___MMType___assign_from_friendly[] = "ni_metamodel::MMType::assign_from_friendly";
 val_t native_interface___ni_metamodel___MMType___assign_from_friendly(val_t p0, val_t p1, val_t p2){
   struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
   val_t REGB0;
@@ -405,7 +397,7 @@ val_t native_interface___ni_metamodel___MMType___assign_from_friendly(val_t p0,
     static val_t once_value_7; /* Once value */
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_native_interface___ni_metamodel;
-  fra.me.line = 77;
+  fra.me.line = 75;
   fra.me.meth = LOCATE_native_interface___ni_metamodel___MMType___assign_from_friendly;
   fra.me.has_broke = 0;
   fra.me.REG_size = 5;
@@ -418,7 +410,7 @@ val_t native_interface___ni_metamodel___MMType___assign_from_friendly(val_t p0,
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* native_interface/ni_metamodel.nit:81 */
+  /* native_interface/ni_metamodel.nit:79 */
   fra.me.REG[3] = CALL_metamodel___static_type___MMType___local_class(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[3] = CALL_primitive_info___MMLocalClass___primitive_info(fra.me.REG[3])(fra.me.REG[3]);
   REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
@@ -426,7 +418,7 @@ val_t native_interface___ni_metamodel___MMType___assign_from_friendly(val_t p0,
   } else {
     REGB1 = TAG_Bool(fra.me.REG[3]==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[3])(fra.me.REG[3], NIT_NULL);
@@ -435,7 +427,7 @@ val_t native_interface___ni_metamodel___MMType___assign_from_friendly(val_t p0,
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    REGB0 = TAG_Bool(true);
+    REGB0 = TAG_Bool(1);
   } else {
     fra.me.REG[3] = CALL_metamodel___static_type___MMType___local_class(fra.me.REG[0])(fra.me.REG[0]);
     fra.me.REG[3] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(fra.me.REG[3])(fra.me.REG[3]);
@@ -443,16 +435,16 @@ val_t native_interface___ni_metamodel___MMType___assign_from_friendly(val_t p0,
     REGB0 = REGB1;
   }
   if (UNTAG_Bool(REGB0)) {
-    /* native_interface/ni_metamodel.nit:82 */
+    /* native_interface/ni_metamodel.nit:80 */
     REGB0 = CALL_metamodel___static_type___MMType___is_nullable(fra.me.REG[0])(fra.me.REG[0]);
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   } else {
-    /* native_interface/ni_metamodel.nit:81 */
-    REGB1 = TAG_Bool(false);
+    /* native_interface/ni_metamodel.nit:79 */
+    REGB1 = TAG_Bool(0);
     REGB0 = REGB1;
   }
   if (UNTAG_Bool(REGB0)) {
-    /* native_interface/ni_metamodel.nit:83 */
+    /* native_interface/ni_metamodel.nit:81 */
     REGB0 = TAG_Int(5);
     fra.me.REG[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
     if (!once_value_1) {
@@ -488,7 +480,7 @@ val_t native_interface___ni_metamodel___MMType___assign_from_friendly(val_t p0,
     fra.me.REG[3] = CALL_standard___string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
     goto label4;
   } else {
-    /* native_interface/ni_metamodel.nit:85 */
+    /* native_interface/ni_metamodel.nit:83 */
     REGB0 = TAG_Int(5);
     fra.me.REG[0] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
     if (!once_value_5) {
@@ -528,6 +520,7 @@ val_t native_interface___ni_metamodel___MMType___assign_from_friendly(val_t p0,
   stack_frame_head = fra.me.prev;
   return fra.me.REG[3];
 }
+static const char LOCATE_native_interface___ni_metamodel___MMType___uses_nitni_ref[] = "ni_metamodel::MMType::uses_nitni_ref";
 val_t native_interface___ni_metamodel___MMType___uses_nitni_ref(val_t p0){
   struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
   val_t REGB0;
@@ -535,7 +528,7 @@ val_t native_interface___ni_metamodel___MMType___uses_nitni_ref(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_native_interface___ni_metamodel;
-  fra.me.line = 89;
+  fra.me.line = 87;
   fra.me.meth = LOCATE_native_interface___ni_metamodel___MMType___uses_nitni_ref;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -543,7 +536,7 @@ val_t native_interface___ni_metamodel___MMType___uses_nitni_ref(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* native_interface/ni_metamodel.nit:89 */
+  /* native_interface/ni_metamodel.nit:87 */
   fra.me.REG[1] = CALL_metamodel___static_type___MMType___local_class(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[1] = CALL_primitive_info___MMLocalClass___primitive_info(fra.me.REG[1])(fra.me.REG[1]);
   REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
@@ -551,7 +544,7 @@ val_t native_interface___ni_metamodel___MMType___uses_nitni_ref(val_t p0){
   } 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);
@@ -559,7 +552,7 @@ val_t native_interface___ni_metamodel___MMType___uses_nitni_ref(val_t p0){
     }
   }
   if (UNTAG_Bool(REGB0)) {
-    REGB0 = TAG_Bool(true);
+    REGB0 = TAG_Bool(1);
   } else {
     REGB1 = CALL_metamodel___static_type___MMType___is_nullable(fra.me.REG[0])(fra.me.REG[0]);
     REGB0 = REGB1;
@@ -569,6 +562,7 @@ val_t native_interface___ni_metamodel___MMType___uses_nitni_ref(val_t p0){
   stack_frame_head = fra.me.prev;
   return REGB0;
 }
+static const char LOCATE_native_interface___ni_metamodel___MMType___friendly_null_getter[] = "ni_metamodel::MMType::friendly_null_getter";
 val_t native_interface___ni_metamodel___MMType___friendly_null_getter(val_t p0){
   struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
   val_t REGB0;
@@ -577,7 +571,7 @@ val_t native_interface___ni_metamodel___MMType___friendly_null_getter(val_t p0){
   static val_t once_value_2; /* Once value */
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_native_interface___ni_metamodel;
-  fra.me.line = 91;
+  fra.me.line = 89;
   fra.me.meth = LOCATE_native_interface___ni_metamodel___MMType___friendly_null_getter;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
@@ -586,7 +580,7 @@ val_t native_interface___ni_metamodel___MMType___friendly_null_getter(val_t p0){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* native_interface/ni_metamodel.nit:93 */
+  /* native_interface/ni_metamodel.nit:91 */
   REGB0 = TAG_Int(3);
   fra.me.REG[1] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
   if (!once_value_1) {
@@ -616,6 +610,7 @@ val_t native_interface___ni_metamodel___MMType___friendly_null_getter(val_t p0){
   stack_frame_head = fra.me.prev;
   return fra.me.REG[1];
 }
+static const char LOCATE_native_interface___ni_metamodel___MMType___local_friendly_null_getter_from[] = "ni_metamodel::MMType::local_friendly_null_getter_from";
 val_t native_interface___ni_metamodel___MMType___local_friendly_null_getter_from(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
   val_t REGB0;
@@ -625,7 +620,7 @@ val_t native_interface___ni_metamodel___MMType___local_friendly_null_getter_from
   static val_t once_value_3; /* Once value */
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_native_interface___ni_metamodel;
-  fra.me.line = 96;
+  fra.me.line = 94;
   fra.me.meth = LOCATE_native_interface___ni_metamodel___MMType___local_friendly_null_getter_from;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
@@ -636,7 +631,7 @@ val_t native_interface___ni_metamodel___MMType___local_friendly_null_getter_from
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* native_interface/ni_metamodel.nit:98 */
+  /* native_interface/ni_metamodel.nit:96 */
   REGB0 = TAG_Int(5);
   fra.me.REG[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
   if (!once_value_1) {
@@ -676,6 +671,7 @@ val_t native_interface___ni_metamodel___MMType___local_friendly_null_getter_from
   stack_frame_head = fra.me.prev;
   return fra.me.REG[2];
 }
+static const char LOCATE_native_interface___ni_metamodel___MMMethod___local_friendly_name_from[] = "ni_metamodel::MMMethod::local_friendly_name_from";
 val_t native_interface___ni_metamodel___MMMethod___local_friendly_name_from(val_t p0, val_t p1, val_t p2){
   struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
   val_t REGB0;
@@ -685,7 +681,7 @@ val_t native_interface___ni_metamodel___MMMethod___local_friendly_name_from(val_
   static val_t once_value_3; /* Once value */
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_native_interface___ni_metamodel;
-  fra.me.line = 103;
+  fra.me.line = 101;
   fra.me.meth = LOCATE_native_interface___ni_metamodel___MMMethod___local_friendly_name_from;
   fra.me.has_broke = 0;
   fra.me.REG_size = 5;
@@ -698,7 +694,7 @@ val_t native_interface___ni_metamodel___MMMethod___local_friendly_name_from(val_
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* native_interface/ni_metamodel.nit:107 */
+  /* native_interface/ni_metamodel.nit:105 */
   REGB0 = TAG_Int(5);
   fra.me.REG[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
   if (!once_value_1) {
@@ -738,6 +734,7 @@ val_t native_interface___ni_metamodel___MMMethod___local_friendly_name_from(val_
   stack_frame_head = fra.me.prev;
   return fra.me.REG[3];
 }
+static const char LOCATE_native_interface___ni_metamodel___MMMethod___friendly_super_cname[] = "ni_metamodel::MMMethod::friendly_super_cname";
 val_t native_interface___ni_metamodel___MMMethod___friendly_super_cname(val_t p0){
   struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
   val_t REGB0;
@@ -746,7 +743,7 @@ val_t native_interface___ni_metamodel___MMMethod___friendly_super_cname(val_t p0
   static val_t once_value_2; /* Once value */
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_native_interface___ni_metamodel;
-  fra.me.line = 110;
+  fra.me.line = 108;
   fra.me.meth = LOCATE_native_interface___ni_metamodel___MMMethod___friendly_super_cname;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
@@ -755,7 +752,7 @@ val_t native_interface___ni_metamodel___MMMethod___friendly_super_cname(val_t p0
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* native_interface/ni_metamodel.nit:112 */
+  /* native_interface/ni_metamodel.nit:110 */
   REGB0 = TAG_Int(3);
   fra.me.REG[1] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
   if (!once_value_1) {
@@ -785,6 +782,7 @@ val_t native_interface___ni_metamodel___MMMethod___friendly_super_cname(val_t p0
   stack_frame_head = fra.me.prev;
   return fra.me.REG[1];
 }
+static const char LOCATE_native_interface___ni_metamodel___MMMethod___local_friendly_super_name_from[] = "ni_metamodel::MMMethod::local_friendly_super_name_from";
 val_t native_interface___ni_metamodel___MMMethod___local_friendly_super_name_from(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
   val_t REGB0;
@@ -794,7 +792,7 @@ val_t native_interface___ni_metamodel___MMMethod___local_friendly_super_name_fro
   static val_t once_value_3; /* Once value */
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_native_interface___ni_metamodel;
-  fra.me.line = 115;
+  fra.me.line = 113;
   fra.me.meth = LOCATE_native_interface___ni_metamodel___MMMethod___local_friendly_super_name_from;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
@@ -805,7 +803,7 @@ val_t native_interface___ni_metamodel___MMMethod___local_friendly_super_name_fro
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* native_interface/ni_metamodel.nit:117 */
+  /* native_interface/ni_metamodel.nit:115 */
   REGB0 = TAG_Int(5);
   fra.me.REG[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
   if (!once_value_1) {
@@ -845,6 +843,7 @@ val_t native_interface___ni_metamodel___MMMethod___local_friendly_super_name_fro
   stack_frame_head = fra.me.prev;
   return fra.me.REG[2];
 }
+static const char LOCATE_native_interface___ni_metamodel___MMMethod___friendly_cparams[] = "ni_metamodel::MMMethod::friendly_cparams";
 val_t native_interface___ni_metamodel___MMMethod___friendly_cparams(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
   val_t REGB0;
@@ -858,7 +857,7 @@ val_t native_interface___ni_metamodel___MMMethod___friendly_cparams(val_t p0, va
       static val_t once_value_5; /* Once value */
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_native_interface___ni_metamodel;
-  fra.me.line = 120;
+  fra.me.line = 118;
   fra.me.meth = LOCATE_native_interface___ni_metamodel___MMMethod___friendly_cparams;
   fra.me.has_broke = 0;
   fra.me.REG_size = 6;
@@ -871,14 +870,14 @@ val_t native_interface___ni_metamodel___MMMethod___friendly_cparams(val_t p0, va
   fra.me.REG[5] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* native_interface/ni_metamodel.nit:122 */
+  /* native_interface/ni_metamodel.nit:120 */
   fra.me.REG[2] = NEW_List_standard___collection___list___List___init();
-  /* native_interface/ni_metamodel.nit:124 */
+  /* native_interface/ni_metamodel.nit:122 */
   fra.me.REG[3] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra.me.REG[0])(fra.me.REG[0]);
   REGB0 = CALL_metamodel___abstractmetamodel___MMGlobalProperty___is_init(fra.me.REG[3])(fra.me.REG[3]);
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* native_interface/ni_metamodel.nit:125 */
+    /* native_interface/ni_metamodel.nit:123 */
     REGB0 = TAG_Int(3);
     fra.me.REG[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
     if (!once_value_1) {
@@ -905,11 +904,11 @@ val_t native_interface___ni_metamodel___MMMethod___friendly_cparams(val_t p0, va
     fra.me.REG[3] = CALL_standard___string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
     CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
   }
-  /* native_interface/ni_metamodel.nit:128 */
+  /* native_interface/ni_metamodel.nit:126 */
   fra.me.REG[0] = CALL_metamodel___static_type___MMLocalProperty___signature(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_native_interface___ni_metamodel, 128);
+    nit_abort("Reciever is null", NULL, LOCATE_native_interface___ni_metamodel, 126);
   }
   fra.me.REG[0] = CALL_metamodel___static_type___MMSignature___params(fra.me.REG[0])(fra.me.REG[0]);
   /* ../lib/standard/collection/array.nit:269 */
@@ -937,7 +936,7 @@ val_t native_interface___ni_metamodel___MMMethod___friendly_cparams(val_t p0, va
     } else {
       nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
     }
-    /* ../lib/standard/kernel.nit:232 */
+    /* ../lib/standard/kernel.nit:235 */
     REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
     /* ../lib/standard/collection/array.nit:272 */
     if (UNTAG_Bool(REGB1)) {
@@ -946,9 +945,9 @@ val_t native_interface___ni_metamodel___MMMethod___friendly_cparams(val_t p0, va
       if (UNTAG_Bool(REGB1)) {
         nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 273);
       }
-      /* ../lib/standard/collection/array.nit:718 */
+      /* ../lib/standard/collection/array.nit:724 */
       fra.me.REG[1] = ((Nit_NativeArray)fra.me.REG[3])->val[UNTAG_Int(REGB0)];
-      /* native_interface/ni_metamodel.nit:129 */
+      /* native_interface/ni_metamodel.nit:127 */
       REGB1 = TAG_Int(5);
       fra.me.REG[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
       if (!once_value_3) {
@@ -988,7 +987,7 @@ val_t native_interface___ni_metamodel___MMMethod___friendly_cparams(val_t p0, va
       CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
       /* ../lib/standard/collection/array.nit:274 */
       REGB1 = TAG_Int(1);
-      /* ../lib/standard/kernel.nit:235 */
+      /* ../lib/standard/kernel.nit:238 */
       REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
       /* ../lib/standard/collection/array.nit:274 */
       REGB0 = REGB1;
@@ -998,12 +997,13 @@ val_t native_interface___ni_metamodel___MMMethod___friendly_cparams(val_t p0, va
     }
   }
   label6: while(0);
-  /* native_interface/ni_metamodel.nit:132 */
+  /* native_interface/ni_metamodel.nit:130 */
   goto label7;
   label7: while(0);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[2];
 }
+static const char LOCATE_native_interface___ni_metamodel___MMMethod___csignature_with_suffix[] = "ni_metamodel::MMMethod::csignature_with_suffix";
 val_t native_interface___ni_metamodel___MMMethod___csignature_with_suffix(val_t p0, val_t p1, val_t p2){
   struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
   val_t REGB0;
@@ -1013,7 +1013,7 @@ val_t native_interface___ni_metamodel___MMMethod___csignature_with_suffix(val_t
   static val_t once_value_3; /* Once value */
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_native_interface___ni_metamodel;
-  fra.me.line = 135;
+  fra.me.line = 133;
   fra.me.meth = LOCATE_native_interface___ni_metamodel___MMMethod___csignature_with_suffix;
   fra.me.has_broke = 0;
   fra.me.REG_size = 5;
@@ -1026,7 +1026,7 @@ val_t native_interface___ni_metamodel___MMMethod___csignature_with_suffix(val_t
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* native_interface/ni_metamodel.nit:137 */
+  /* native_interface/ni_metamodel.nit:135 */
   REGB0 = TAG_Int(5);
   fra.me.REG[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
   if (!once_value_1) {
@@ -1060,13 +1060,14 @@ val_t native_interface___ni_metamodel___MMMethod___csignature_with_suffix(val_t
   fra.me.REG[1] = fra.me.REG[1];
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
   fra.me.REG[3] = CALL_standard___string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
-  /* native_interface/ni_metamodel.nit:139 */
+  /* native_interface/ni_metamodel.nit:137 */
   fra.me.REG[2] = CALL_native_interface___ni_metamodel___MMMethod___csignature_with_name(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[3], fra.me.REG[2]);
   goto label4;
   label4: while(0);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[2];
 }
+static const char LOCATE_native_interface___ni_metamodel___MMMethod___csignature_with_name[] = "ni_metamodel::MMMethod::csignature_with_name";
 val_t native_interface___ni_metamodel___MMMethod___csignature_with_name(val_t p0, val_t p1, val_t p2){
   struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
   val_t REGB0;
@@ -1082,7 +1083,7 @@ val_t native_interface___ni_metamodel___MMMethod___csignature_with_name(val_t p0
   static val_t once_value_8; /* Once value */
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_native_interface___ni_metamodel;
-  fra.me.line = 142;
+  fra.me.line = 140;
   fra.me.meth = LOCATE_native_interface___ni_metamodel___MMMethod___csignature_with_name;
   fra.me.has_broke = 0;
   fra.me.REG_size = 6;
@@ -1096,13 +1097,13 @@ val_t native_interface___ni_metamodel___MMMethod___csignature_with_name(val_t p0
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* native_interface/ni_metamodel.nit:144 */
+  /* native_interface/ni_metamodel.nit:142 */
   fra.me.REG[3] = NEW_Buffer_standard___string___Buffer___init();
-  /* native_interface/ni_metamodel.nit:147 */
+  /* native_interface/ni_metamodel.nit:145 */
   fra.me.REG[4] = CALL_metamodel___static_type___MMLocalProperty___signature(fra.me.REG[0])(fra.me.REG[0]);
   REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
-    nit_abort("Reciever is null", NULL, LOCATE_native_interface___ni_metamodel, 147);
+    nit_abort("Reciever is null", NULL, LOCATE_native_interface___ni_metamodel, 145);
   }
   fra.me.REG[4] = CALL_metamodel___static_type___MMSignature___return_type(fra.me.REG[4])(fra.me.REG[4]);
   REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
@@ -1110,7 +1111,7 @@ val_t native_interface___ni_metamodel___MMMethod___csignature_with_name(val_t p0
   } else {
     REGB1 = TAG_Bool(fra.me.REG[4]==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[4])(fra.me.REG[4], NIT_NULL);
@@ -1119,7 +1120,7 @@ val_t native_interface___ni_metamodel___MMMethod___csignature_with_name(val_t p0
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* native_interface/ni_metamodel.nit:148 */
+    /* native_interface/ni_metamodel.nit:146 */
     REGB0 = TAG_Int(3);
     fra.me.REG[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
     if (!once_value_1) {
@@ -1134,12 +1135,12 @@ val_t native_interface___ni_metamodel___MMMethod___csignature_with_name(val_t p0
     fra.me.REG[5] = CALL_metamodel___static_type___MMLocalProperty___signature(fra.me.REG[0])(fra.me.REG[0]);
     REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
-      nit_abort("Reciever is null", NULL, LOCATE_native_interface___ni_metamodel, 148);
+      nit_abort("Reciever is null", NULL, LOCATE_native_interface___ni_metamodel, 146);
     }
     fra.me.REG[5] = CALL_metamodel___static_type___MMSignature___return_type(fra.me.REG[5])(fra.me.REG[5]);
     REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
-      nit_abort("Reciever is null", NULL, LOCATE_native_interface___ni_metamodel, 148);
+      nit_abort("Reciever is null", NULL, LOCATE_native_interface___ni_metamodel, 146);
     }
     fra.me.REG[5] = CALL_native_interface___ni_metamodel___MMType___friendly_extern_name(fra.me.REG[5])(fra.me.REG[5]);
     CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
@@ -1155,11 +1156,11 @@ val_t native_interface___ni_metamodel___MMMethod___csignature_with_name(val_t p0
     fra.me.REG[4] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
     CALL_standard___collection___abstract_collection___Sequence___append(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
   } else {
-    /* native_interface/ni_metamodel.nit:149 */
+    /* native_interface/ni_metamodel.nit:147 */
     fra.me.REG[4] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra.me.REG[0])(fra.me.REG[0]);
     REGB0 = CALL_metamodel___abstractmetamodel___MMGlobalProperty___is_init(fra.me.REG[4])(fra.me.REG[4]);
     if (UNTAG_Bool(REGB0)) {
-      /* native_interface/ni_metamodel.nit:150 */
+      /* native_interface/ni_metamodel.nit:148 */
       REGB0 = TAG_Int(3);
       fra.me.REG[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
       if (!once_value_3) {
@@ -1186,7 +1187,7 @@ val_t native_interface___ni_metamodel___MMMethod___csignature_with_name(val_t p0
       fra.me.REG[4] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
       CALL_standard___collection___abstract_collection___Sequence___append(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
     } else {
-      /* native_interface/ni_metamodel.nit:152 */
+      /* native_interface/ni_metamodel.nit:150 */
       if (!once_value_5) {
         fra.me.REG[4] = BOX_NativeString("void ");
         REGB0 = TAG_Int(5);
@@ -1198,13 +1199,13 @@ val_t native_interface___ni_metamodel___MMMethod___csignature_with_name(val_t p0
       CALL_standard___collection___abstract_collection___Sequence___append(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
     }
   }
-  /* native_interface/ni_metamodel.nit:156 */
+  /* native_interface/ni_metamodel.nit:154 */
   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);
@@ -1212,16 +1213,16 @@ val_t native_interface___ni_metamodel___MMMethod___csignature_with_name(val_t p0
     }
   }
   if (UNTAG_Bool(REGB0)) {
-    /* native_interface/ni_metamodel.nit:157 */
+    /* native_interface/ni_metamodel.nit:155 */
     fra.me.REG[4] = CALL_primitive_info___MMMethod___friendly_extern_name(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[2]);
     CALL_standard___collection___abstract_collection___Sequence___append(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
   } else {
-    /* native_interface/ni_metamodel.nit:159 */
+    /* native_interface/ni_metamodel.nit:157 */
     CALL_standard___collection___abstract_collection___Sequence___append(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
   }
-  /* native_interface/ni_metamodel.nit:163 */
+  /* native_interface/ni_metamodel.nit:161 */
   fra.me.REG[2] = CALL_native_interface___ni_metamodel___MMMethod___friendly_cparams(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[2]);
-  /* native_interface/ni_metamodel.nit:165 */
+  /* native_interface/ni_metamodel.nit:163 */
   REGB0 = TAG_Int(3);
   fra.me.REG[0] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
   if (!once_value_6) {
@@ -1254,19 +1255,20 @@ val_t native_interface___ni_metamodel___MMMethod___csignature_with_name(val_t p0
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
   fra.me.REG[0] = CALL_standard___string___Object___to_s(fra.me.REG[0])(fra.me.REG[0]);
   CALL_standard___collection___abstract_collection___Sequence___append(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[0]);
-  /* native_interface/ni_metamodel.nit:167 */
+  /* native_interface/ni_metamodel.nit:165 */
   fra.me.REG[3] = CALL_standard___string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
   goto label9;
   label9: while(0);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[3];
 }
+static const char LOCATE_native_interface___ni_metamodel___MMMethod___friendly_csignature[] = "ni_metamodel::MMMethod::friendly_csignature";
 val_t native_interface___ni_metamodel___MMMethod___friendly_csignature(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_native_interface___ni_metamodel;
-  fra.me.line = 170;
+  fra.me.line = 168;
   fra.me.meth = LOCATE_native_interface___ni_metamodel___MMMethod___friendly_csignature;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -1275,19 +1277,20 @@ val_t native_interface___ni_metamodel___MMMethod___friendly_csignature(val_t p0,
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* native_interface/ni_metamodel.nit:172 */
+  /* native_interface/ni_metamodel.nit:170 */
   fra.me.REG[1] = CALL_native_interface___ni_metamodel___MMMethod___csignature_with_name(fra.me.REG[0])(fra.me.REG[0], NIT_NULL, fra.me.REG[1]);
   goto label1;
   label1: while(0);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[1];
 }
+static const char LOCATE_native_interface___ni_metamodel___MMMethod___frontier_csignature_from[] = "ni_metamodel::MMMethod::frontier_csignature_from";
 val_t native_interface___ni_metamodel___MMMethod___frontier_csignature_from(val_t p0, val_t p1, val_t p2){
   struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_native_interface___ni_metamodel;
-  fra.me.line = 175;
+  fra.me.line = 173;
   fra.me.meth = LOCATE_native_interface___ni_metamodel___MMMethod___frontier_csignature_from;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
@@ -1298,7 +1301,7 @@ val_t native_interface___ni_metamodel___MMMethod___frontier_csignature_from(val_
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* native_interface/ni_metamodel.nit:177 */
+  /* native_interface/ni_metamodel.nit:175 */
   fra.me.REG[1] = CALL_native_interface___ni_metamodel___MMMethod___local_friendly_name_from(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[2]);
   fra.me.REG[2] = CALL_native_interface___ni_metamodel___MMMethod___csignature_with_name(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[2]);
   goto label1;
@@ -1306,6 +1309,7 @@ val_t native_interface___ni_metamodel___MMMethod___frontier_csignature_from(val_
   stack_frame_head = fra.me.prev;
   return fra.me.REG[2];
 }
+static const char LOCATE_native_interface___ni_metamodel___MMMethod___friendly_super_csignature[] = "ni_metamodel::MMMethod::friendly_super_csignature";
 val_t native_interface___ni_metamodel___MMMethod___friendly_super_csignature(val_t p0){
   struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
   val_t REGB0;
@@ -1313,7 +1317,7 @@ val_t native_interface___ni_metamodel___MMMethod___friendly_super_csignature(val
   static val_t once_value_1; /* Once value */
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_native_interface___ni_metamodel;
-  fra.me.line = 180;
+  fra.me.line = 178;
   fra.me.meth = LOCATE_native_interface___ni_metamodel___MMMethod___friendly_super_csignature;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
@@ -1322,7 +1326,7 @@ val_t native_interface___ni_metamodel___MMMethod___friendly_super_csignature(val
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* native_interface/ni_metamodel.nit:182 */
+  /* native_interface/ni_metamodel.nit:180 */
   if (!once_value_1) {
     fra.me.REG[1] = BOX_NativeString("___super");
     REGB0 = TAG_Int(8);
@@ -1338,12 +1342,13 @@ val_t native_interface___ni_metamodel___MMMethod___friendly_super_csignature(val
   stack_frame_head = fra.me.prev;
   return fra.me.REG[2];
 }
+static const char LOCATE_native_interface___ni_metamodel___MMMethod___frontier_super_csignature_from[] = "ni_metamodel::MMMethod::frontier_super_csignature_from";
 val_t native_interface___ni_metamodel___MMMethod___frontier_super_csignature_from(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_native_interface___ni_metamodel;
-  fra.me.line = 185;
+  fra.me.line = 183;
   fra.me.meth = LOCATE_native_interface___ni_metamodel___MMMethod___frontier_super_csignature_from;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
@@ -1353,7 +1358,7 @@ val_t native_interface___ni_metamodel___MMMethod___frontier_super_csignature_fro
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* native_interface/ni_metamodel.nit:187 */
+  /* native_interface/ni_metamodel.nit:185 */
   fra.me.REG[1] = CALL_native_interface___ni_metamodel___MMMethod___local_friendly_super_name_from(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
   fra.me.REG[2] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[2] = CALL_native_interface___ni_metamodel___MMMethod___csignature_with_name(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[2]);
@@ -1362,6 +1367,7 @@ val_t native_interface___ni_metamodel___MMMethod___frontier_super_csignature_fro
   stack_frame_head = fra.me.prev;
   return fra.me.REG[2];
 }
+static const char LOCATE_native_interface___ni_metamodel___MMMethod___impl_csignature[] = "ni_metamodel::MMMethod::impl_csignature";
 val_t native_interface___ni_metamodel___MMMethod___impl_csignature(val_t p0){
   struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
   val_t REGB0;
@@ -1369,7 +1375,7 @@ val_t native_interface___ni_metamodel___MMMethod___impl_csignature(val_t p0){
   static val_t once_value_1; /* Once value */
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_native_interface___ni_metamodel;
-  fra.me.line = 190;
+  fra.me.line = 188;
   fra.me.meth = LOCATE_native_interface___ni_metamodel___MMMethod___impl_csignature;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
@@ -1378,7 +1384,7 @@ val_t native_interface___ni_metamodel___MMMethod___impl_csignature(val_t p0){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* native_interface/ni_metamodel.nit:192 */
+  /* native_interface/ni_metamodel.nit:190 */
   if (!once_value_1) {
     fra.me.REG[1] = BOX_NativeString("___impl");
     REGB0 = TAG_Int(7);
@@ -1394,6 +1400,7 @@ val_t native_interface___ni_metamodel___MMMethod___impl_csignature(val_t p0){
   stack_frame_head = fra.me.prev;
   return fra.me.REG[2];
 }
+static const char LOCATE_native_interface___ni_metamodel___MMMethod___cparams[] = "ni_metamodel::MMMethod::cparams";
 val_t native_interface___ni_metamodel___MMMethod___cparams(val_t p0){
   struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
   val_t REGB0;
@@ -1405,7 +1412,7 @@ val_t native_interface___ni_metamodel___MMMethod___cparams(val_t p0){
       static val_t once_value_3; /* Once value */
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_native_interface___ni_metamodel;
-  fra.me.line = 195;
+  fra.me.line = 193;
   fra.me.meth = LOCATE_native_interface___ni_metamodel___MMMethod___cparams;
   fra.me.has_broke = 0;
   fra.me.REG_size = 6;
@@ -1417,14 +1424,13 @@ val_t native_interface___ni_metamodel___MMMethod___cparams(val_t p0){
   fra.me.REG[4] = NIT_NULL;
   fra.me.REG[5] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* native_interface/ni_metamodel.nit:198 */
+  /* native_interface/ni_metamodel.nit:196 */
   fra.me.REG[1] = NEW_List_standard___collection___list___List___init();
-  /* native_interface/ni_metamodel.nit:200 */
+  /* native_interface/ni_metamodel.nit:197 */
   fra.me.REG[2] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra.me.REG[0])(fra.me.REG[0]);
   REGB0 = CALL_metamodel___abstractmetamodel___MMGlobalProperty___is_init(fra.me.REG[2])(fra.me.REG[2]);
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* native_interface/ni_metamodel.nit:201 */
     if (!once_value_1) {
       fra.me.REG[2] = BOX_NativeString("val_t recv");
       REGB0 = TAG_Int(10);
@@ -1435,11 +1441,11 @@ val_t native_interface___ni_metamodel___MMMethod___cparams(val_t p0){
     fra.me.REG[2] = fra.me.REG[2];
     CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
   }
-  /* native_interface/ni_metamodel.nit:204 */
+  /* native_interface/ni_metamodel.nit:198 */
   fra.me.REG[0] = CALL_metamodel___static_type___MMLocalProperty___signature(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_native_interface___ni_metamodel, 204);
+    nit_abort("Reciever is null", NULL, LOCATE_native_interface___ni_metamodel, 198);
   }
   fra.me.REG[0] = CALL_metamodel___static_type___MMSignature___params(fra.me.REG[0])(fra.me.REG[0]);
   /* ../lib/standard/collection/array.nit:269 */
@@ -1467,7 +1473,7 @@ val_t native_interface___ni_metamodel___MMMethod___cparams(val_t p0){
     } else {
       nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
     }
-    /* ../lib/standard/kernel.nit:232 */
+    /* ../lib/standard/kernel.nit:235 */
     REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
     /* ../lib/standard/collection/array.nit:272 */
     if (UNTAG_Bool(REGB1)) {
@@ -1476,9 +1482,9 @@ val_t native_interface___ni_metamodel___MMMethod___cparams(val_t p0){
       if (UNTAG_Bool(REGB1)) {
         nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 273);
       }
-      /* ../lib/standard/collection/array.nit:718 */
+      /* ../lib/standard/collection/array.nit:724 */
       fra.me.REG[3] = ((Nit_NativeArray)fra.me.REG[2])->val[UNTAG_Int(REGB0)];
-      /* native_interface/ni_metamodel.nit:205 */
+      /* native_interface/ni_metamodel.nit:198 */
       REGB1 = TAG_Int(3);
       fra.me.REG[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
       if (!once_value_2) {
@@ -1506,7 +1512,7 @@ val_t native_interface___ni_metamodel___MMMethod___cparams(val_t p0){
       CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
       /* ../lib/standard/collection/array.nit:274 */
       REGB1 = TAG_Int(1);
-      /* ../lib/standard/kernel.nit:235 */
+      /* ../lib/standard/kernel.nit:238 */
       REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
       /* ../lib/standard/collection/array.nit:274 */
       REGB0 = REGB1;
@@ -1516,12 +1522,13 @@ val_t native_interface___ni_metamodel___MMMethod___cparams(val_t p0){
     }
   }
   label4: while(0);
-  /* native_interface/ni_metamodel.nit:208 */
+  /* native_interface/ni_metamodel.nit:199 */
   goto label5;
   label5: while(0);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[1];
 }
+static const char LOCATE_native_interface___ni_metamodel___MMMethod___out_csignature[] = "ni_metamodel::MMMethod::out_csignature";
 val_t native_interface___ni_metamodel___MMMethod___out_csignature(val_t p0){
   struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
   val_t REGB0;
@@ -1539,7 +1546,7 @@ val_t native_interface___ni_metamodel___MMMethod___out_csignature(val_t p0){
   static val_t once_value_10; /* Once value */
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_native_interface___ni_metamodel;
-  fra.me.line = 211;
+  fra.me.line = 202;
   fra.me.meth = LOCATE_native_interface___ni_metamodel___MMMethod___out_csignature;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
@@ -1549,13 +1556,13 @@ val_t native_interface___ni_metamodel___MMMethod___out_csignature(val_t p0){
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* native_interface/ni_metamodel.nit:213 */
+  /* native_interface/ni_metamodel.nit:204 */
   fra.me.REG[1] = NEW_Buffer_standard___string___Buffer___init();
-  /* native_interface/ni_metamodel.nit:216 */
+  /* native_interface/ni_metamodel.nit:207 */
   fra.me.REG[2] = CALL_metamodel___static_type___MMLocalProperty___signature(fra.me.REG[0])(fra.me.REG[0]);
   REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
-    nit_abort("Reciever is null", NULL, LOCATE_native_interface___ni_metamodel, 216);
+    nit_abort("Reciever is null", NULL, LOCATE_native_interface___ni_metamodel, 207);
   }
   fra.me.REG[2] = CALL_metamodel___static_type___MMSignature___return_type(fra.me.REG[2])(fra.me.REG[2]);
   REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
@@ -1563,7 +1570,7 @@ val_t native_interface___ni_metamodel___MMMethod___out_csignature(val_t p0){
   } else {
     REGB1 = TAG_Bool(fra.me.REG[2]==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[2])(fra.me.REG[2], NIT_NULL);
@@ -1572,14 +1579,14 @@ val_t native_interface___ni_metamodel___MMMethod___out_csignature(val_t p0){
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    REGB0 = TAG_Bool(true);
+    REGB0 = TAG_Bool(1);
   } else {
     fra.me.REG[2] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra.me.REG[0])(fra.me.REG[0]);
     REGB1 = CALL_metamodel___abstractmetamodel___MMGlobalProperty___is_init(fra.me.REG[2])(fra.me.REG[2]);
     REGB0 = REGB1;
   }
   if (UNTAG_Bool(REGB0)) {
-    /* native_interface/ni_metamodel.nit:217 */
+    /* native_interface/ni_metamodel.nit:208 */
     if (!once_value_1) {
       fra.me.REG[2] = BOX_NativeString("val_t ");
       REGB0 = TAG_Int(6);
@@ -1590,7 +1597,7 @@ val_t native_interface___ni_metamodel___MMMethod___out_csignature(val_t p0){
     fra.me.REG[2] = fra.me.REG[2];
     CALL_standard___collection___abstract_collection___Sequence___append(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
   } else {
-    /* native_interface/ni_metamodel.nit:219 */
+    /* native_interface/ni_metamodel.nit:210 */
     if (!once_value_2) {
       fra.me.REG[2] = BOX_NativeString("void ");
       REGB0 = TAG_Int(5);
@@ -1601,11 +1608,11 @@ val_t native_interface___ni_metamodel___MMMethod___out_csignature(val_t p0){
     fra.me.REG[2] = fra.me.REG[2];
     CALL_standard___collection___abstract_collection___Sequence___append(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
   }
-  /* native_interface/ni_metamodel.nit:223 */
+  /* native_interface/ni_metamodel.nit:214 */
   fra.me.REG[2] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra.me.REG[0])(fra.me.REG[0]);
   REGB0 = CALL_metamodel___abstractmetamodel___MMGlobalProperty___is_init(fra.me.REG[2])(fra.me.REG[2]);
   if (UNTAG_Bool(REGB0)) {
-    /* native_interface/ni_metamodel.nit:224 */
+    /* native_interface/ni_metamodel.nit:215 */
     REGB0 = TAG_Int(5);
     fra.me.REG[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
     if (!once_value_3) {
@@ -1643,7 +1650,7 @@ val_t native_interface___ni_metamodel___MMMethod___out_csignature(val_t p0){
     fra.me.REG[2] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
     CALL_standard___collection___abstract_collection___Sequence___append(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
   } else {
-    /* native_interface/ni_metamodel.nit:226 */
+    /* native_interface/ni_metamodel.nit:217 */
     REGB0 = TAG_Int(3);
     fra.me.REG[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
     if (!once_value_6) {
@@ -1670,7 +1677,7 @@ val_t native_interface___ni_metamodel___MMMethod___out_csignature(val_t p0){
     fra.me.REG[2] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
     CALL_standard___collection___abstract_collection___Sequence___append(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
   }
-  /* native_interface/ni_metamodel.nit:230 */
+  /* native_interface/ni_metamodel.nit:221 */
   REGB0 = TAG_Int(3);
   fra.me.REG[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
   if (!once_value_8) {
@@ -1704,42 +1711,44 @@ val_t native_interface___ni_metamodel___MMMethod___out_csignature(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___collection___abstract_collection___Sequence___append(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* native_interface/ni_metamodel.nit:232 */
+  /* native_interface/ni_metamodel.nit:223 */
   fra.me.REG[1] = CALL_standard___string___Object___to_s(fra.me.REG[1])(fra.me.REG[1]);
   goto label11;
   label11: while(0);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[1];
 }
+static const char LOCATE_native_interface___ni_metamodel___MMImportedCast___in_name[] = "ni_metamodel::MMImportedCast::in_name";
 val_t native_interface___ni_metamodel___MMImportedCast___in_name(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_native_interface___ni_metamodel;
-  fra.me.line = 238;
+  fra.me.line = 229;
   fra.me.meth = LOCATE_native_interface___ni_metamodel___MMImportedCast___in_name;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* native_interface/ni_metamodel.nit:238 */
+  /* native_interface/ni_metamodel.nit:229 */
   REGB0 = TAG_Bool(ATTR_native_interface___ni_metamodel___MMImportedCast_____atin_name(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "@in_name", LOCATE_native_interface___ni_metamodel, 238);
+    nit_abort("Uninitialized attribute %s", "@in_name", LOCATE_native_interface___ni_metamodel, 229);
   }
   fra.me.REG[0] = ATTR_native_interface___ni_metamodel___MMImportedCast_____atin_name(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
+static const char LOCATE_native_interface___ni_metamodel___MMImportedCast___in_name__eq[] = "ni_metamodel::MMImportedCast::in_name=";
 void native_interface___ni_metamodel___MMImportedCast___in_name__eq(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_native_interface___ni_metamodel;
-  fra.me.line = 238;
+  fra.me.line = 229;
   fra.me.meth = LOCATE_native_interface___ni_metamodel___MMImportedCast___in_name__eq;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -1748,11 +1757,12 @@ void native_interface___ni_metamodel___MMImportedCast___in_name__eq(val_t p0, va
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* native_interface/ni_metamodel.nit:238 */
+  /* native_interface/ni_metamodel.nit:229 */
   ATTR_native_interface___ni_metamodel___MMImportedCast_____atin_name(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
   return;
 }
+static const char LOCATE_native_interface___ni_metamodel___MMImportedCast___as_friendly_extern_name[] = "ni_metamodel::MMImportedCast::as_friendly_extern_name";
 val_t native_interface___ni_metamodel___MMImportedCast___as_friendly_extern_name(val_t p0){
   struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
   val_t REGB0;
@@ -1766,7 +1776,7 @@ val_t native_interface___ni_metamodel___MMImportedCast___as_friendly_extern_name
     static val_t once_value_8; /* Once value */
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_native_interface___ni_metamodel;
-  fra.me.line = 240;
+  fra.me.line = 231;
   fra.me.meth = LOCATE_native_interface___ni_metamodel___MMImportedCast___as_friendly_extern_name;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
@@ -1776,13 +1786,13 @@ val_t native_interface___ni_metamodel___MMImportedCast___as_friendly_extern_name
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* native_interface/ni_metamodel.nit:241 */
+  /* native_interface/ni_metamodel.nit:232 */
   REGB0 = CALL_metamodel___static_type___MMImportedCast___is_about_nullable_only(fra.me.REG[0])(fra.me.REG[0]);
   if (UNTAG_Bool(REGB0)) {
-    /* native_interface/ni_metamodel.nit:242 */
+    /* native_interface/ni_metamodel.nit:233 */
     REGB0 = CALL_metamodel___static_type___MMImportedCast___is_not_null_to_nullable(fra.me.REG[0])(fra.me.REG[0]);
     if (UNTAG_Bool(REGB0)) {
-      /* native_interface/ni_metamodel.nit:244 */
+      /* native_interface/ni_metamodel.nit:235 */
       REGB0 = TAG_Int(3);
       fra.me.REG[1] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
       if (!once_value_1) {
@@ -1809,10 +1819,10 @@ val_t native_interface___ni_metamodel___MMImportedCast___as_friendly_extern_name
       fra.me.REG[1] = CALL_standard___string___Object___to_s(fra.me.REG[1])(fra.me.REG[1]);
       goto label3;
     } else {
-      /* native_interface/ni_metamodel.nit:245 */
+      /* native_interface/ni_metamodel.nit:236 */
       REGB0 = CALL_metamodel___static_type___MMImportedCast___is_nullable_to_not_null(fra.me.REG[0])(fra.me.REG[0]);
       if (UNTAG_Bool(REGB0)) {
-        /* native_interface/ni_metamodel.nit:247 */
+        /* native_interface/ni_metamodel.nit:238 */
         REGB0 = TAG_Int(3);
         fra.me.REG[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
         if (!once_value_4) {
@@ -1840,12 +1850,12 @@ val_t native_interface___ni_metamodel___MMImportedCast___as_friendly_extern_name
         fra.me.REG[1] = fra.me.REG[2];
         goto label3;
       } else {
-        /* native_interface/ni_metamodel.nit:249 */
-        nit_abort("Aborted", NULL, LOCATE_native_interface___ni_metamodel, 249);
+        /* native_interface/ni_metamodel.nit:240 */
+        nit_abort("Aborted", NULL, LOCATE_native_interface___ni_metamodel, 240);
       }
     }
   } else {
-    /* native_interface/ni_metamodel.nit:253 */
+    /* native_interface/ni_metamodel.nit:244 */
     REGB0 = TAG_Int(5);
     fra.me.REG[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
     if (!once_value_6) {
@@ -1889,6 +1899,7 @@ val_t native_interface___ni_metamodel___MMImportedCast___as_friendly_extern_name
   stack_frame_head = fra.me.prev;
   return fra.me.REG[1];
 }
+static const char LOCATE_native_interface___ni_metamodel___MMImportedCast___as_local_cname[] = "ni_metamodel::MMImportedCast::as_local_cname";
 val_t native_interface___ni_metamodel___MMImportedCast___as_local_cname(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
   val_t REGB0;
@@ -1898,7 +1909,7 @@ val_t native_interface___ni_metamodel___MMImportedCast___as_local_cname(val_t p0
   static val_t once_value_3; /* Once value */
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_native_interface___ni_metamodel;
-  fra.me.line = 257;
+  fra.me.line = 248;
   fra.me.meth = LOCATE_native_interface___ni_metamodel___MMImportedCast___as_local_cname;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
@@ -1909,7 +1920,7 @@ val_t native_interface___ni_metamodel___MMImportedCast___as_local_cname(val_t p0
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* native_interface/ni_metamodel.nit:258 */
+  /* native_interface/ni_metamodel.nit:249 */
   REGB0 = TAG_Int(5);
   fra.me.REG[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
   if (!once_value_1) {
@@ -1949,6 +1960,7 @@ val_t native_interface___ni_metamodel___MMImportedCast___as_local_cname(val_t p0
   stack_frame_head = fra.me.prev;
   return fra.me.REG[2];
 }
+static const char LOCATE_native_interface___ni_metamodel___MMImportedCast___as_local_csignature[] = "ni_metamodel::MMImportedCast::as_local_csignature";
 val_t native_interface___ni_metamodel___MMImportedCast___as_local_csignature(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
   val_t REGB0;
@@ -1960,7 +1972,7 @@ val_t native_interface___ni_metamodel___MMImportedCast___as_local_csignature(val
   static val_t once_value_5; /* Once value */
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_native_interface___ni_metamodel;
-  fra.me.line = 261;
+  fra.me.line = 252;
   fra.me.meth = LOCATE_native_interface___ni_metamodel___MMImportedCast___as_local_csignature;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
@@ -1971,7 +1983,7 @@ val_t native_interface___ni_metamodel___MMImportedCast___as_local_csignature(val
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* native_interface/ni_metamodel.nit:263 */
+  /* native_interface/ni_metamodel.nit:254 */
   REGB0 = TAG_Int(9);
   fra.me.REG[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
   if (!once_value_1) {
@@ -2035,6 +2047,7 @@ val_t native_interface___ni_metamodel___MMImportedCast___as_local_csignature(val
   stack_frame_head = fra.me.prev;
   return fra.me.REG[2];
 }
+static const char LOCATE_native_interface___ni_metamodel___MMImportedCast___as_friendly_csignature[] = "ni_metamodel::MMImportedCast::as_friendly_csignature";
 val_t native_interface___ni_metamodel___MMImportedCast___as_friendly_csignature(val_t p0){
   struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
   val_t REGB0;
@@ -2046,7 +2059,7 @@ val_t native_interface___ni_metamodel___MMImportedCast___as_friendly_csignature(
   static val_t once_value_5; /* Once value */
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_native_interface___ni_metamodel;
-  fra.me.line = 266;
+  fra.me.line = 257;
   fra.me.meth = LOCATE_native_interface___ni_metamodel___MMImportedCast___as_friendly_csignature;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
@@ -2055,7 +2068,7 @@ val_t native_interface___ni_metamodel___MMImportedCast___as_friendly_csignature(
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* native_interface/ni_metamodel.nit:268 */
+  /* native_interface/ni_metamodel.nit:259 */
   REGB0 = TAG_Int(9);
   fra.me.REG[1] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
   if (!once_value_1) {
@@ -2119,6 +2132,7 @@ val_t native_interface___ni_metamodel___MMImportedCast___as_friendly_csignature(
   stack_frame_head = fra.me.prev;
   return fra.me.REG[1];
 }
+static const char LOCATE_native_interface___ni_metamodel___MMImportedCast___is_a_friendly_extern_name[] = "ni_metamodel::MMImportedCast::is_a_friendly_extern_name";
 val_t native_interface___ni_metamodel___MMImportedCast___is_a_friendly_extern_name(val_t p0){
   struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
   val_t REGB0;
@@ -2130,7 +2144,7 @@ val_t native_interface___ni_metamodel___MMImportedCast___is_a_friendly_extern_na
     static val_t once_value_6; /* Once value */
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_native_interface___ni_metamodel;
-  fra.me.line = 271;
+  fra.me.line = 262;
   fra.me.meth = LOCATE_native_interface___ni_metamodel___MMImportedCast___is_a_friendly_extern_name;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
@@ -2140,19 +2154,19 @@ val_t native_interface___ni_metamodel___MMImportedCast___is_a_friendly_extern_na
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* native_interface/ni_metamodel.nit:272 */
+  /* native_interface/ni_metamodel.nit:263 */
   REGB0 = CALL_metamodel___static_type___MMImportedCast___is_about_nullable_only(fra.me.REG[0])(fra.me.REG[0]);
   if (UNTAG_Bool(REGB0)) {
-    /* native_interface/ni_metamodel.nit:273 */
+    /* native_interface/ni_metamodel.nit:264 */
     REGB0 = CALL_metamodel___static_type___MMImportedCast___is_not_null_to_nullable(fra.me.REG[0])(fra.me.REG[0]);
     if (UNTAG_Bool(REGB0)) {
-      /* native_interface/ni_metamodel.nit:274 */
-      nit_abort("Aborted", NULL, LOCATE_native_interface___ni_metamodel, 274);
+      /* native_interface/ni_metamodel.nit:265 */
+      nit_abort("Aborted", NULL, LOCATE_native_interface___ni_metamodel, 265);
     } else {
-      /* native_interface/ni_metamodel.nit:275 */
+      /* native_interface/ni_metamodel.nit:266 */
       REGB0 = CALL_metamodel___static_type___MMImportedCast___is_nullable_to_not_null(fra.me.REG[0])(fra.me.REG[0]);
       if (UNTAG_Bool(REGB0)) {
-        /* native_interface/ni_metamodel.nit:278 */
+        /* native_interface/ni_metamodel.nit:269 */
         REGB0 = TAG_Int(3);
         fra.me.REG[1] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
         if (!once_value_1) {
@@ -2179,12 +2193,12 @@ val_t native_interface___ni_metamodel___MMImportedCast___is_a_friendly_extern_na
         fra.me.REG[1] = CALL_standard___string___Object___to_s(fra.me.REG[1])(fra.me.REG[1]);
         goto label3;
       } else {
-        /* native_interface/ni_metamodel.nit:280 */
-        nit_abort("Aborted", NULL, LOCATE_native_interface___ni_metamodel, 280);
+        /* native_interface/ni_metamodel.nit:271 */
+        nit_abort("Aborted", NULL, LOCATE_native_interface___ni_metamodel, 271);
       }
     }
   } else {
-    /* native_interface/ni_metamodel.nit:284 */
+    /* native_interface/ni_metamodel.nit:275 */
     REGB0 = TAG_Int(5);
     fra.me.REG[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
     if (!once_value_4) {
@@ -2228,6 +2242,7 @@ val_t native_interface___ni_metamodel___MMImportedCast___is_a_friendly_extern_na
   stack_frame_head = fra.me.prev;
   return fra.me.REG[1];
 }
+static const char LOCATE_native_interface___ni_metamodel___MMImportedCast___is_a_local_cname[] = "ni_metamodel::MMImportedCast::is_a_local_cname";
 val_t native_interface___ni_metamodel___MMImportedCast___is_a_local_cname(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
   val_t REGB0;
@@ -2237,7 +2252,7 @@ val_t native_interface___ni_metamodel___MMImportedCast___is_a_local_cname(val_t
   static val_t once_value_3; /* Once value */
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_native_interface___ni_metamodel;
-  fra.me.line = 288;
+  fra.me.line = 279;
   fra.me.meth = LOCATE_native_interface___ni_metamodel___MMImportedCast___is_a_local_cname;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
@@ -2248,7 +2263,7 @@ val_t native_interface___ni_metamodel___MMImportedCast___is_a_local_cname(val_t
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* native_interface/ni_metamodel.nit:289 */
+  /* native_interface/ni_metamodel.nit:280 */
   REGB0 = TAG_Int(5);
   fra.me.REG[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
   if (!once_value_1) {
@@ -2288,6 +2303,7 @@ val_t native_interface___ni_metamodel___MMImportedCast___is_a_local_cname(val_t
   stack_frame_head = fra.me.prev;
   return fra.me.REG[2];
 }
+static const char LOCATE_native_interface___ni_metamodel___MMImportedCast___is_a_local_csignature[] = "ni_metamodel::MMImportedCast::is_a_local_csignature";
 val_t native_interface___ni_metamodel___MMImportedCast___is_a_local_csignature(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
   val_t REGB0;
@@ -2298,7 +2314,7 @@ val_t native_interface___ni_metamodel___MMImportedCast___is_a_local_csignature(v
   static val_t once_value_4; /* Once value */
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_native_interface___ni_metamodel;
-  fra.me.line = 292;
+  fra.me.line = 283;
   fra.me.meth = LOCATE_native_interface___ni_metamodel___MMImportedCast___is_a_local_csignature;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
@@ -2309,7 +2325,7 @@ val_t native_interface___ni_metamodel___MMImportedCast___is_a_local_csignature(v
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* native_interface/ni_metamodel.nit:296 */
+  /* native_interface/ni_metamodel.nit:287 */
   REGB0 = TAG_Int(7);
   fra.me.REG[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
   if (!once_value_1) {
@@ -2361,6 +2377,7 @@ val_t native_interface___ni_metamodel___MMImportedCast___is_a_local_csignature(v
   stack_frame_head = fra.me.prev;
   return fra.me.REG[2];
 }
+static const char LOCATE_native_interface___ni_metamodel___MMImportedCast___is_a_friendly_csignature[] = "ni_metamodel::MMImportedCast::is_a_friendly_csignature";
 val_t native_interface___ni_metamodel___MMImportedCast___is_a_friendly_csignature(val_t p0){
   struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
   val_t REGB0;
@@ -2371,7 +2388,7 @@ val_t native_interface___ni_metamodel___MMImportedCast___is_a_friendly_csignatur
   static val_t once_value_4; /* Once value */
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_native_interface___ni_metamodel;
-  fra.me.line = 299;
+  fra.me.line = 290;
   fra.me.meth = LOCATE_native_interface___ni_metamodel___MMImportedCast___is_a_friendly_csignature;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
@@ -2380,7 +2397,7 @@ val_t native_interface___ni_metamodel___MMImportedCast___is_a_friendly_csignatur
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* native_interface/ni_metamodel.nit:301 */
+  /* native_interface/ni_metamodel.nit:292 */
   REGB0 = TAG_Int(7);
   fra.me.REG[1] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
   if (!once_value_1) {
@@ -2432,6 +2449,7 @@ val_t native_interface___ni_metamodel___MMImportedCast___is_a_friendly_csignatur
   stack_frame_head = fra.me.prev;
   return fra.me.REG[1];
 }
+static const char LOCATE_native_interface___ni_metamodel___MMImportedCast___hash[] = "ni_metamodel::MMImportedCast::(hash::Object::hash)";
 val_t native_interface___ni_metamodel___MMImportedCast___hash(val_t p0){
   struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
   val_t REGB0;
@@ -2439,7 +2457,7 @@ val_t native_interface___ni_metamodel___MMImportedCast___hash(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_native_interface___ni_metamodel;
-  fra.me.line = 304;
+  fra.me.line = 295;
   fra.me.meth = LOCATE_native_interface___ni_metamodel___MMImportedCast___hash;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -2447,14 +2465,14 @@ val_t native_interface___ni_metamodel___MMImportedCast___hash(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* native_interface/ni_metamodel.nit:306 */
+  /* native_interface/ni_metamodel.nit:297 */
   fra.me.REG[1] = CALL_metamodel___static_type___MMImportedCast___from(fra.me.REG[0])(fra.me.REG[0]);
   REGB0 = CALL_standard___hash___Object___hash(fra.me.REG[1])(fra.me.REG[1]);
   fra.me.REG[0] = CALL_metamodel___static_type___MMImportedCast___to(fra.me.REG[0])(fra.me.REG[0]);
   REGB1 = CALL_standard___hash___Object___hash(fra.me.REG[0])(fra.me.REG[0]);
-  /* ../lib/standard/kernel.nit:235 */
+  /* ../lib/standard/kernel.nit:238 */
   REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
-  /* native_interface/ni_metamodel.nit:306 */
+  /* native_interface/ni_metamodel.nit:297 */
   goto label1;
   label1: while(0);
   stack_frame_head = fra.me.prev;