+ }
+ label2: while(0);
+ /* ./metamodel//static_type.nit:119 */
+ fra.me.REG[3] = CALL_static_type___MMSignature___closures(fra.me.REG[0])(fra.me.REG[0]);
+ /* ./../lib/standard//collection//array.nit:23 */
+ REGB3 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[3])!=NIT_NULL);
+ if (UNTAG_Bool(REGB3)) {
+ } else {
+ nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 23);
+ }
+ REGB3 = ATTR_array___AbstractArrayRead____length(fra.me.REG[3]);
+ /* ./metamodel//static_type.nit:119 */
+ fra.me.REG[3] = CALL_static_type___MMSignature___closures(fra.me.REG[1])(fra.me.REG[1]);
+ /* ./../lib/standard//collection//array.nit:23 */
+ REGB4 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[3])!=NIT_NULL);
+ if (UNTAG_Bool(REGB4)) {
+ } else {
+ nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 23);
+ }
+ REGB4 = ATTR_array___AbstractArrayRead____length(fra.me.REG[3]);
+ /* ./metamodel//static_type.nit:119 */
+ REGB1 = TAG_Bool(IS_EQUAL_OO(REGB3,REGB4));
+ if (UNTAG_Bool(REGB1)) {
+ } else {
+ /* ./../lib/standard//kernel.nit:207 */
+ REGB4 = TAG_Bool((REGB3)==(REGB4));
+ /* ./metamodel//static_type.nit:119 */
+ REGB1 = REGB4;
+ }
+ REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
+ if (UNTAG_Bool(REGB1)) {
+ REGB1 = TAG_Bool(false);
+ REGB0 = REGB1;
+ goto label1;
+ }
+ /* ./metamodel//static_type.nit:120 */
+ REGB1 = TAG_Int(0);
+ fra.me.REG[3] = CALL_static_type___MMSignature___closures(fra.me.REG[0])(fra.me.REG[0]);
+ /* ./../lib/standard//collection//array.nit:23 */
+ REGB4 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[3])!=NIT_NULL);
+ if (UNTAG_Bool(REGB4)) {
+ } else {
+ nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 23);
+ }
+ REGB4 = ATTR_array___AbstractArrayRead____length(fra.me.REG[3]);
+ /* ./../lib/standard//kernel.nit:332 */
+ while(1) {
+ /* ./../lib/standard//kernel.nit:212 */
+ REGB3 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB4));
+ /* ./../lib/standard//kernel.nit:332 */
+ if (UNTAG_Bool(REGB3)) {
+ /* ./metamodel//static_type.nit:120 */
+ REGB3 = REGB1;
+ /* ./metamodel//static_type.nit:121 */
+ fra.me.REG[3] = CALL_static_type___MMSignature___closures(fra.me.REG[1])(fra.me.REG[1]);
+ /* ./../lib/standard//collection//array.nit:243 */
+ REGB2 = REGB3;
+ /* ./../lib/standard//collection//array.nit:245 */
+ REGB5 = TAG_Int(0);
+ /* ./../lib/standard//kernel.nit:213 */
+ REGB5 = TAG_Bool(UNTAG_Int(REGB2)>=UNTAG_Int(REGB5));
+ /* ./../lib/standard//collection//array.nit:245 */
+ if (UNTAG_Bool(REGB5)) {
+ REGB5 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[3])!=NIT_NULL);
+ if (UNTAG_Bool(REGB5)) {
+ } else {
+ nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245);
+ }
+ REGB5 = ATTR_array___AbstractArrayRead____length(fra.me.REG[3]);
+ /* ./../lib/standard//kernel.nit:212 */
+ REGB5 = TAG_Bool(UNTAG_Int(REGB2)<UNTAG_Int(REGB5));
+ } else {
+ /* ./../lib/standard//collection//array.nit:245 */
+ REGB6 = TAG_Bool(false);
+ REGB5 = REGB6;
+ }
+ if (UNTAG_Bool(REGB5)) {
+ } else {
+ nit_abort("Assert %s failed", "'index'", LOCATE_array, 245);
+ }
+ /* ./../lib/standard//collection//array.nit:246 */
+ fra.me.REG[3] = ATTR_array___Array____items(fra.me.REG[3]);
+ REGB5 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
+ if (UNTAG_Bool(REGB5)) {
+ nit_abort("Reciever is null", NULL, LOCATE_array, 246);
+ }
+ /* ./../lib/standard//collection//array.nit:654 */
+ fra.me.REG[3] = ((Nit_NativeArray)fra.me.REG[3])->val[UNTAG_Int(REGB2)];
+ /* ./../lib/standard//collection//array.nit:246 */
+ goto label3;
+ label3: while(0);
+ /* ./metamodel//static_type.nit:121 */
+ fra.me.REG[2] = CALL_static_type___MMSignature___closures(fra.me.REG[0])(fra.me.REG[0]);
+ /* ./../lib/standard//collection//array.nit:245 */
+ REGB2 = TAG_Int(0);
+ /* ./../lib/standard//kernel.nit:213 */
+ REGB2 = TAG_Bool(UNTAG_Int(REGB3)>=UNTAG_Int(REGB2));
+ /* ./../lib/standard//collection//array.nit:245 */
+ if (UNTAG_Bool(REGB2)) {
+ REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
+ if (UNTAG_Bool(REGB2)) {
+ } else {
+ nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245);
+ }
+ REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[2]);
+ /* ./../lib/standard//kernel.nit:212 */
+ REGB2 = TAG_Bool(UNTAG_Int(REGB3)<UNTAG_Int(REGB2));
+ } else {
+ /* ./../lib/standard//collection//array.nit:245 */
+ REGB5 = TAG_Bool(false);
+ REGB2 = REGB5;
+ }
+ if (UNTAG_Bool(REGB2)) {
+ } else {
+ nit_abort("Assert %s failed", "'index'", LOCATE_array, 245);
+ }
+ /* ./../lib/standard//collection//array.nit:246 */
+ fra.me.REG[2] = ATTR_array___Array____items(fra.me.REG[2]);
+ REGB2 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
+ if (UNTAG_Bool(REGB2)) {
+ nit_abort("Reciever is null", NULL, LOCATE_array, 246);
+ }
+ /* ./../lib/standard//collection//array.nit:654 */
+ fra.me.REG[2] = ((Nit_NativeArray)fra.me.REG[2])->val[UNTAG_Int(REGB3)];
+ /* ./../lib/standard//collection//array.nit:246 */
+ goto label4;
+ label4: while(0);
+ /* ./metamodel//static_type.nit:121 */
+ REGB3 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
+ if (UNTAG_Bool(REGB3)) {
+ nit_abort("Reciever is null", NULL, LOCATE_static_type, 121);
+ }
+ REGB3 = CALL_static_type___MMClosure_____l(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
+ REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
+ if (UNTAG_Bool(REGB3)) {
+ REGB3 = TAG_Bool(false);
+ REGB0 = REGB3;
+ goto label1;
+ }
+ /* ./../lib/standard//kernel.nit:334 */
+ REGB3 = TAG_Int(1);
+ /* ./../lib/standard//kernel.nit:215 */
+ REGB3 = TAG_Int(UNTAG_Int(REGB1)+UNTAG_Int(REGB3));
+ /* ./../lib/standard//kernel.nit:334 */
+ REGB1 = REGB3;
+ } else {
+ /* ./../lib/standard//kernel.nit:332 */
+ goto label5;
+ }
+ }
+ label5: while(0);
+ /* ./metamodel//static_type.nit:123 */
+ REGB1 = TAG_Bool(true);
+ REGB0 = REGB1;
+ goto label1;
+ label1: while(0);
+ stack_frame_head = fra.me.prev;
+ return REGB0;
+}
+val_t static_type___MMSignature_____bra(val_t p0, val_t p1){
+ struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+ val_t REGB0;
+ val_t REGB1;
+ val_t REGB2;
+ val_t tmp;
+ fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+ fra.me.file = LOCATE_static_type;
+ fra.me.line = 126;
+ fra.me.meth = LOCATE_static_type___MMSignature_____bra;
+ fra.me.has_broke = 0;
+ fra.me.REG_size = 2;
+ fra.me.REG[0] = NIT_NULL;
+ fra.me.REG[1] = NIT_NULL;
+ fra.me.REG[0] = p0;
+ REGB0 = p1;
+ /* ./metamodel//static_type.nit:129 */
+ REGB1 = TAG_Bool(ATTR_static_type___MMSignature____params(fra.me.REG[0])!=NIT_NULL);
+ if (UNTAG_Bool(REGB1)) {
+ } else {
+ nit_abort("Uninitialized attribute %s", "_params", LOCATE_static_type, 129);
+ }
+ fra.me.REG[1] = ATTR_static_type___MMSignature____params(fra.me.REG[0]);
+ /* ./../lib/standard//collection//array.nit:23 */
+ REGB1 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[1])!=NIT_NULL);
+ if (UNTAG_Bool(REGB1)) {
+ } else {
+ nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 23);
+ }
+ REGB1 = ATTR_array___AbstractArrayRead____length(fra.me.REG[1]);
+ /* ./../lib/standard//kernel.nit:214 */
+ REGB1 = TAG_Bool(UNTAG_Int(REGB1)>UNTAG_Int(REGB0));
+ /* ./metamodel//static_type.nit:129 */
+ if (UNTAG_Bool(REGB1)) {
+ } else {
+ nit_abort("Assert failed", NULL, LOCATE_static_type, 129);
+ }
+ /* ./metamodel//static_type.nit:130 */
+ REGB1 = TAG_Bool(ATTR_static_type___MMSignature____params(fra.me.REG[0])!=NIT_NULL);
+ if (UNTAG_Bool(REGB1)) {
+ } else {
+ nit_abort("Uninitialized attribute %s", "_params", LOCATE_static_type, 130);
+ }
+ fra.me.REG[0] = ATTR_static_type___MMSignature____params(fra.me.REG[0]);
+ /* ./../lib/standard//collection//array.nit:245 */
+ REGB1 = TAG_Int(0);
+ /* ./../lib/standard//kernel.nit:213 */
+ REGB1 = TAG_Bool(UNTAG_Int(REGB0)>=UNTAG_Int(REGB1));
+ /* ./../lib/standard//collection//array.nit:245 */
+ if (UNTAG_Bool(REGB1)) {
+ REGB1 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
+ if (UNTAG_Bool(REGB1)) {
+ } else {
+ nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245);
+ }
+ REGB1 = ATTR_array___AbstractArrayRead____length(fra.me.REG[0]);
+ /* ./../lib/standard//kernel.nit:212 */
+ REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
+ } else {
+ /* ./../lib/standard//collection//array.nit:245 */
+ REGB2 = TAG_Bool(false);
+ REGB1 = REGB2;
+ }
+ if (UNTAG_Bool(REGB1)) {
+ } else {
+ nit_abort("Assert %s failed", "'index'", LOCATE_array, 245);
+ }
+ /* ./../lib/standard//collection//array.nit:246 */
+ fra.me.REG[0] = ATTR_array___Array____items(fra.me.REG[0]);
+ REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
+ if (UNTAG_Bool(REGB1)) {
+ nit_abort("Reciever is null", NULL, LOCATE_array, 246);
+ }
+ /* ./../lib/standard//collection//array.nit:654 */
+ fra.me.REG[0] = ((Nit_NativeArray)fra.me.REG[0])->val[UNTAG_Int(REGB0)];
+ /* ./../lib/standard//collection//array.nit:246 */
+ goto label1;
+ label1: while(0);
+ /* ./metamodel//static_type.nit:130 */
+ goto label2;
+ label2: while(0);
+ stack_frame_head = fra.me.prev;
+ return fra.me.REG[0];
+}
+val_t static_type___MMSignature___to_s(val_t p0){
+ struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
+ val_t REGB0;
+ val_t REGB1;
+ val_t REGB2;
+ val_t REGB3;
+ val_t REGB4;
+ val_t tmp;
+ static val_t once_value_3; /* Once value */
+ static val_t once_value_4; /* Once value */
+ static val_t once_value_5; /* Once value */
+ static val_t once_value_6; /* Once value */
+ static val_t once_value_7; /* Once value */
+ fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+ fra.me.file = LOCATE_static_type;
+ fra.me.line = 133;
+ fra.me.meth = LOCATE_static_type___MMSignature___to_s;
+ fra.me.has_broke = 0;
+ fra.me.REG_size = 5;
+ 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[4] = NIT_NULL;
+ fra.me.REG[0] = p0;
+ /* ./metamodel//static_type.nit:135 */
+ fra.me.REG[1] = NEW_Buffer_string___Buffer___init();
+ /* ./metamodel//static_type.nit:136 */
+ REGB0 = TAG_Bool(ATTR_static_type___MMSignature____params(fra.me.REG[0])!=NIT_NULL);
+ if (UNTAG_Bool(REGB0)) {
+ } else {
+ nit_abort("Uninitialized attribute %s", "_params", LOCATE_static_type, 136);
+ }
+ fra.me.REG[2] = ATTR_static_type___MMSignature____params(fra.me.REG[0]);
+ /* ./../lib/standard//collection//array.nit:23 */
+ REGB0 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
+ if (UNTAG_Bool(REGB0)) {
+ } else {
+ nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 23);
+ }
+ REGB0 = ATTR_array___AbstractArrayRead____length(fra.me.REG[2]);
+ /* ./metamodel//static_type.nit:136 */
+ REGB1 = TAG_Int(0);
+ /* ./../lib/standard//kernel.nit:214 */
+ REGB1 = TAG_Bool(UNTAG_Int(REGB0)>UNTAG_Int(REGB1));
+ /* ./metamodel//static_type.nit:136 */
+ if (UNTAG_Bool(REGB1)) {
+ /* ./metamodel//static_type.nit:138 */
+ REGB1 = TAG_Bool(ATTR_static_type___MMSignature____params(fra.me.REG[0])!=NIT_NULL);
+ if (UNTAG_Bool(REGB1)) {
+ } else {
+ nit_abort("Uninitialized attribute %s", "_params", LOCATE_static_type, 138);
+ }
+ fra.me.REG[2] = ATTR_static_type___MMSignature____params(fra.me.REG[0]);
+ /* ./../lib/standard//collection//array.nit:23 */
+ REGB1 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
+ if (UNTAG_Bool(REGB1)) {
+ } else {
+ nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 23);
+ }
+ REGB1 = ATTR_array___AbstractArrayRead____length(fra.me.REG[2]);
+ /* ./metamodel//static_type.nit:138 */
+ fra.me.REG[2] = NEW_Array_array___Array___with_capacity(REGB1);
+ /* ./metamodel//static_type.nit:139 */
+ REGB1 = TAG_Int(0);
+ REGB0 = TAG_Bool(ATTR_static_type___MMSignature____params(fra.me.REG[0])!=NIT_NULL);
+ if (UNTAG_Bool(REGB0)) {
+ } else {
+ nit_abort("Uninitialized attribute %s", "_params", LOCATE_static_type, 139);
+ }
+ fra.me.REG[3] = ATTR_static_type___MMSignature____params(fra.me.REG[0]);
+ /* ./../lib/standard//collection//array.nit:23 */
+ REGB0 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[3])!=NIT_NULL);
+ if (UNTAG_Bool(REGB0)) {
+ } else {
+ nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 23);
+ }
+ REGB0 = ATTR_array___AbstractArrayRead____length(fra.me.REG[3]);
+ /* ./../lib/standard//kernel.nit:332 */
+ while(1) {
+ /* ./../lib/standard//kernel.nit:212 */
+ REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB0));
+ /* ./../lib/standard//kernel.nit:332 */
+ if (UNTAG_Bool(REGB2)) {
+ /* ./metamodel//static_type.nit:139 */
+ REGB2 = REGB1;
+ /* ./metamodel//static_type.nit:141 */
+ REGB3 = TAG_Bool(ATTR_static_type___MMSignature____params(fra.me.REG[0])!=NIT_NULL);
+ if (UNTAG_Bool(REGB3)) {
+ } else {
+ nit_abort("Uninitialized attribute %s", "_params", LOCATE_static_type, 141);
+ }
+ fra.me.REG[3] = ATTR_static_type___MMSignature____params(fra.me.REG[0]);
+ /* ./../lib/standard//collection//array.nit:245 */
+ REGB3 = TAG_Int(0);
+ /* ./../lib/standard//kernel.nit:213 */
+ REGB3 = TAG_Bool(UNTAG_Int(REGB2)>=UNTAG_Int(REGB3));
+ /* ./../lib/standard//collection//array.nit:245 */
+ if (UNTAG_Bool(REGB3)) {
+ REGB3 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[3])!=NIT_NULL);
+ if (UNTAG_Bool(REGB3)) {
+ } else {
+ nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245);
+ }
+ REGB3 = ATTR_array___AbstractArrayRead____length(fra.me.REG[3]);
+ /* ./../lib/standard//kernel.nit:212 */
+ REGB3 = TAG_Bool(UNTAG_Int(REGB2)<UNTAG_Int(REGB3));
+ } else {
+ /* ./../lib/standard//collection//array.nit:245 */
+ REGB4 = TAG_Bool(false);
+ REGB3 = REGB4;
+ }
+ if (UNTAG_Bool(REGB3)) {
+ } else {
+ nit_abort("Assert %s failed", "'index'", LOCATE_array, 245);
+ }
+ /* ./../lib/standard//collection//array.nit:246 */
+ fra.me.REG[3] = ATTR_array___Array____items(fra.me.REG[3]);
+ REGB3 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
+ if (UNTAG_Bool(REGB3)) {
+ nit_abort("Reciever is null", NULL, LOCATE_array, 246);
+ }
+ /* ./../lib/standard//collection//array.nit:654 */
+ fra.me.REG[3] = ((Nit_NativeArray)fra.me.REG[3])->val[UNTAG_Int(REGB2)];
+ /* ./../lib/standard//collection//array.nit:246 */
+ goto label1;
+ label1: while(0);
+ /* ./metamodel//static_type.nit:143 */
+ fra.me.REG[3] = CALL_string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
+ CALL_abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
+ /* ./../lib/standard//kernel.nit:334 */
+ REGB2 = TAG_Int(1);
+ /* ./../lib/standard//kernel.nit:215 */
+ REGB2 = TAG_Int(UNTAG_Int(REGB1)+UNTAG_Int(REGB2));
+ /* ./../lib/standard//kernel.nit:334 */
+ REGB1 = REGB2;
+ } else {
+ /* ./../lib/standard//kernel.nit:332 */
+ goto label2;
+ }
+ }
+ label2: while(0);
+ /* ./metamodel//static_type.nit:145 */
+ REGB1 = TAG_Int(3);
+ fra.me.REG[3] = NEW_Array_array___Array___with_capacity(REGB1);
+ if (!once_value_3) {
+ fra.me.REG[4] = BOX_NativeString("(");
+ REGB1 = TAG_Int(1);
+ fra.me.REG[4] = NEW_String_string___String___with_native(fra.me.REG[4], REGB1);
+ once_value_3 = fra.me.REG[4];
+ register_static_object(&once_value_3);
+ } else fra.me.REG[4] = once_value_3;
+ fra.me.REG[4] = fra.me.REG[4];
+ CALL_abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
+ if (!once_value_4) {
+ fra.me.REG[4] = BOX_NativeString(",");
+ REGB1 = TAG_Int(1);
+ fra.me.REG[4] = NEW_String_string___String___with_native(fra.me.REG[4], REGB1);
+ once_value_4 = fra.me.REG[4];
+ register_static_object(&once_value_4);
+ } else fra.me.REG[4] = once_value_4;
+ fra.me.REG[4] = fra.me.REG[4];
+ fra.me.REG[4] = CALL_string___Collection___join(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
+ CALL_abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
+ if (!once_value_5) {
+ fra.me.REG[4] = BOX_NativeString(")");
+ REGB1 = TAG_Int(1);
+ fra.me.REG[4] = NEW_String_string___String___with_native(fra.me.REG[4], REGB1);
+ once_value_5 = fra.me.REG[4];
+ register_static_object(&once_value_5);
+ } else fra.me.REG[4] = once_value_5;
+ fra.me.REG[4] = fra.me.REG[4];
+ CALL_abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
+ fra.me.REG[3] = CALL_string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
+ CALL_abstract_collection___Sequence___append(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
+ }
+ /* ./metamodel//static_type.nit:147 */
+ fra.me.REG[0] = ATTR_static_type___MMSignature____return_type(fra.me.REG[0]);
+ /* ./metamodel//static_type.nit:148 */
+ REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
+ if (UNTAG_Bool(REGB1)) {
+ } else {
+ REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
+ if (UNTAG_Bool(REGB0)) {
+ REGB0 = TAG_Bool(false);
+ REGB1 = REGB0;
+ } else {
+ REGB0 = CALL_kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], NIT_NULL);
+ REGB1 = REGB0;
+ }
+ }
+ REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
+ if (UNTAG_Bool(REGB1)) {
+ REGB1 = TAG_Int(3);
+ fra.me.REG[3] = NEW_Array_array___Array___with_capacity(REGB1);
+ if (!once_value_6) {
+ fra.me.REG[4] = BOX_NativeString(": ");
+ REGB1 = TAG_Int(2);
+ fra.me.REG[4] = NEW_String_string___String___with_native(fra.me.REG[4], REGB1);
+ once_value_6 = fra.me.REG[4];
+ register_static_object(&once_value_6);
+ } else fra.me.REG[4] = once_value_6;
+ fra.me.REG[4] = fra.me.REG[4];
+ CALL_abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
+ fra.me.REG[0] = CALL_string___Object___to_s(fra.me.REG[0])(fra.me.REG[0]);
+ CALL_abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[0]);
+ if (!once_value_7) {
+ fra.me.REG[0] = BOX_NativeString("");
+ REGB1 = TAG_Int(0);
+ fra.me.REG[0] = NEW_String_string___String___with_native(fra.me.REG[0], REGB1);
+ once_value_7 = fra.me.REG[0];
+ register_static_object(&once_value_7);
+ } else fra.me.REG[0] = once_value_7;
+ fra.me.REG[0] = fra.me.REG[0];
+ CALL_abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[0]);
+ fra.me.REG[3] = CALL_string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
+ CALL_abstract_collection___Sequence___append(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
+ }
+ /* ./metamodel//static_type.nit:149 */
+ fra.me.REG[1] = CALL_string___Object___to_s(fra.me.REG[1])(fra.me.REG[1]);
+ goto label8;
+ label8: while(0);
+ stack_frame_head = fra.me.prev;
+ return fra.me.REG[1];
+}
+val_t static_type___MMSignature___adaptation_to(val_t p0, val_t p1){
+ struct {struct stack_frame_t me; val_t MORE_REG[7];} fra;
+ val_t REGB0;
+ val_t REGB1;
+ val_t tmp;
+ fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+ fra.me.file = LOCATE_static_type;
+ fra.me.line = 152;
+ fra.me.meth = LOCATE_static_type___MMSignature___adaptation_to;
+ fra.me.has_broke = 0;
+ fra.me.REG_size = 8;
+ 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[4] = NIT_NULL;
+ fra.me.REG[5] = NIT_NULL;
+ fra.me.REG[6] = NIT_NULL;
+ fra.me.REG[7] = NIT_NULL;
+ fra.me.REG[0] = p0;
+ fra.me.REG[1] = p1;
+ /* ./metamodel//static_type.nit:155 */
+ REGB0 = TAG_Bool(ATTR_static_type___MMSignature____recv(fra.me.REG[0])!=NIT_NULL);
+ if (UNTAG_Bool(REGB0)) {
+ } else {
+ nit_abort("Uninitialized attribute %s", "_recv", LOCATE_static_type, 155);
+ }
+ fra.me.REG[2] = ATTR_static_type___MMSignature____recv(fra.me.REG[0]);
+ REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[2],fra.me.REG[1]));
+ if (UNTAG_Bool(REGB0)) {
+ } else {
+ REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
+ REGB0 = REGB1;
+ }
+ if (UNTAG_Bool(REGB0)) {
+ /* ./metamodel//static_type.nit:156 */
+ fra.me.REG[2] = fra.me.REG[0];
+ goto label1;
+ }
+ /* ./metamodel//static_type.nit:158 */
+ fra.me.REG[3] = CALL_static_type___MMType___mmmodule(fra.me.REG[1])(fra.me.REG[1]);
+ /* ./metamodel//static_type.nit:159 */
+ fra.me.REG[4] = NEW_Array_array___Array___init();
+ /* ./metamodel//static_type.nit:160 */
+ REGB0 = TAG_Bool(ATTR_static_type___MMSignature____params(fra.me.REG[0])!=NIT_NULL);
+ if (UNTAG_Bool(REGB0)) {
+ } else {
+ nit_abort("Uninitialized attribute %s", "_params", LOCATE_static_type, 160);
+ }
+ fra.me.REG[5] = ATTR_static_type___MMSignature____params(fra.me.REG[0]);
+ /* ./../lib/standard//collection//array.nit:234 */
+ REGB0 = TAG_Int(0);
+ /* ./../lib/standard//collection//array.nit:235 */
+ REGB1 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[5])!=NIT_NULL);
+ if (UNTAG_Bool(REGB1)) {
+ } else {
+ nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 235);
+ }
+ REGB1 = ATTR_array___AbstractArrayRead____length(fra.me.REG[5]);
+ /* ./../lib/standard//collection//array.nit:236 */
+ fra.me.REG[6] = ATTR_array___Array____items(fra.me.REG[5]);
+ /* ./../lib/standard//collection//array.nit:237 */
+ while(1) {
+ /* ./../lib/standard//collection//array.nit:23 */
+ REGB1 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[5])!=NIT_NULL);
+ if (UNTAG_Bool(REGB1)) {
+ } else {
+ nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 23);
+ }
+ REGB1 = ATTR_array___AbstractArrayRead____length(fra.me.REG[5]);
+ /* ./../lib/standard//kernel.nit:212 */
+ REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
+ /* ./../lib/standard//collection//array.nit:237 */
+ if (UNTAG_Bool(REGB1)) {
+ /* ./../lib/standard//collection//array.nit:238 */
+ REGB1 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
+ if (UNTAG_Bool(REGB1)) {
+ nit_abort("Reciever is null", NULL, LOCATE_array, 238);
+ }
+ /* ./../lib/standard//collection//array.nit:654 */
+ fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[6])->val[UNTAG_Int(REGB0)];
+ /* ./metamodel//static_type.nit:161 */
+ fra.me.REG[7] = CALL_static_type___MMType___for_module(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[3]);
+ fra.me.REG[7] = CALL_static_type___MMType___adapt_to(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[1]);
+ CALL_abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[7]);
+ /* ./../lib/standard//collection//array.nit:239 */
+ REGB1 = TAG_Int(1);
+ /* ./../lib/standard//kernel.nit:215 */
+ REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
+ /* ./../lib/standard//collection//array.nit:239 */
+ REGB0 = REGB1;
+ } else {
+ /* ./../lib/standard//collection//array.nit:237 */
+ goto label2;