+ label4: while(0);
+ /* ../lib/standard/collection/array.nit:601 */
+ REGB1 = TAG_Int(1);
+ /* ../lib/standard/kernel.nit:239 */
+ REGB1 = TAG_Int(-UNTAG_Int(REGB1));
+ /* ../lib/standard/collection/array.nit:601 */
+ REGB0 = REGB1;
+ goto label2;
+ label2: while(0);
+ stack_frame_head = fra.me.prev;
+ return REGB0;
+}
+static const char LOCATE_standard___collection___array___ArrayMap___init[] = "array::ArrayMap::init";
+void standard___collection___array___ArrayMap___init(val_t p0, int* init_table){
+ int itpos11 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_standard___collection___array___ArrayMap].i;
+ struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+ val_t tmp;
+ if (init_table[itpos11]) return;
+ fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+ fra.me.file = LOCATE_standard___collection___array;
+ fra.me.line = 604;
+ fra.me.meth = LOCATE_standard___collection___array___ArrayMap___init;
+ fra.me.has_broke = 0;
+ fra.me.REG_size = 2;
+ fra.me.nitni_local_ref_head = NULL;
+ fra.me.REG[0] = NIT_NULL;
+ fra.me.REG[1] = NIT_NULL;
+ fra.me.REG[0] = p0;
+ /* ../lib/standard/collection/array.nit:607 */
+ fra.me.REG[1] = NEW_Array_standard___collection___array___Array___init();
+ ATTR_standard___collection___array___ArrayMap____items(fra.me.REG[0]) = fra.me.REG[1];
+ stack_frame_head = fra.me.prev;
+ init_table[itpos11] = 1;
+ return;
+}
+static const char LOCATE_standard___collection___array___ArrayMapKeys___map[] = "array::ArrayMapKeys::map";
+val_t standard___collection___array___ArrayMapKeys___map(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_standard___collection___array;
+ fra.me.line = 613;
+ fra.me.meth = LOCATE_standard___collection___array___ArrayMapKeys___map;
+ 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;
+ /* ../lib/standard/collection/array.nit:613 */
+ REGB0 = TAG_Bool(ATTR_standard___collection___array___ArrayMapKeys_____atmap(fra.me.REG[0])!=NIT_NULL);
+ if (UNTAG_Bool(REGB0)) {
+ } else {
+ nit_abort("Uninitialized attribute %s", "@map", LOCATE_standard___collection___array, 613);
+ }
+ fra.me.REG[0] = ATTR_standard___collection___array___ArrayMapKeys_____atmap(fra.me.REG[0]);
+ stack_frame_head = fra.me.prev;
+ return fra.me.REG[0];
+}
+static const char LOCATE_standard___collection___array___ArrayMapKeys___map__eq[] = "array::ArrayMapKeys::map=";
+void standard___collection___array___ArrayMapKeys___map__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_standard___collection___array;
+ fra.me.line = 613;
+ fra.me.meth = LOCATE_standard___collection___array___ArrayMapKeys___map__eq;
+ fra.me.has_broke = 0;
+ fra.me.REG_size = 2;
+ fra.me.nitni_local_ref_head = NULL;
+ fra.me.REG[0] = NIT_NULL;
+ fra.me.REG[1] = NIT_NULL;
+ fra.me.REG[0] = p0;
+ fra.me.REG[1] = p1;
+ /* ../lib/standard/collection/array.nit:613 */
+ ATTR_standard___collection___array___ArrayMapKeys_____atmap(fra.me.REG[0]) = fra.me.REG[1];
+ stack_frame_head = fra.me.prev;
+ return;
+}
+static const char LOCATE_standard___collection___array___ArrayMapKeys___count[] = "array::ArrayMapKeys::(abstract_collection::Collection::count)";
+val_t standard___collection___array___ArrayMapKeys___count(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 tmp;
+ fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+ fra.me.file = LOCATE_standard___collection___array;
+ fra.me.line = 615;
+ fra.me.meth = LOCATE_standard___collection___array___ArrayMapKeys___count;
+ fra.me.has_broke = 0;
+ fra.me.REG_size = 2;
+ fra.me.nitni_local_ref_head = NULL;
+ fra.me.REG[0] = NIT_NULL;
+ fra.me.REG[1] = NIT_NULL;
+ fra.me.REG[0] = p0;
+ fra.me.REG[1] = p1;
+ /* ../lib/standard/collection/array.nit:615 */
+ REGB0 = CALL_standard___collection___abstract_collection___Collection___has(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
+ if (UNTAG_Bool(REGB0)) {
+ REGB0 = TAG_Int(1);
+ goto label1;
+ } else {
+ REGB1 = TAG_Int(0);
+ REGB0 = REGB1;
+ goto label1;
+ }
+ label1: while(0);
+ stack_frame_head = fra.me.prev;
+ return REGB0;
+}
+static const char LOCATE_standard___collection___array___ArrayMapKeys___first[] = "array::ArrayMapKeys::(abstract_collection::Collection::first)";
+val_t standard___collection___array___ArrayMapKeys___first(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_standard___collection___array;
+ fra.me.line = 616;
+ fra.me.meth = LOCATE_standard___collection___array___ArrayMapKeys___first;
+ 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;
+ /* ../lib/standard/collection/array.nit:616 */
+ fra.me.REG[0] = CALL_standard___collection___array___ArrayMapKeys___map(fra.me.REG[0])(fra.me.REG[0]);
+ REGB0 = TAG_Bool(ATTR_standard___collection___array___ArrayMap____items(fra.me.REG[0])!=NIT_NULL);
+ if (UNTAG_Bool(REGB0)) {
+ } else {
+ nit_abort("Uninitialized attribute %s", "_items", LOCATE_standard___collection___array, 616);
+ }
+ fra.me.REG[0] = ATTR_standard___collection___array___ArrayMap____items(fra.me.REG[0]);
+ fra.me.REG[0] = CALL_standard___collection___abstract_collection___Collection___first(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_standard___collection___array, 616);
+ }
+ fra.me.REG[0] = CALL_standard___collection___abstract_collection___Couple___first(fra.me.REG[0])(fra.me.REG[0]);
+ goto label1;
+ label1: while(0);
+ stack_frame_head = fra.me.prev;
+ return fra.me.REG[0];
+}
+static const char LOCATE_standard___collection___array___ArrayMapKeys___has[] = "array::ArrayMapKeys::(abstract_collection::Collection::has)";
+val_t standard___collection___array___ArrayMapKeys___has(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_standard___collection___array;
+ fra.me.line = 617;
+ fra.me.meth = LOCATE_standard___collection___array___ArrayMapKeys___has;
+ fra.me.has_broke = 0;
+ fra.me.REG_size = 2;
+ fra.me.nitni_local_ref_head = NULL;
+ fra.me.REG[0] = NIT_NULL;
+ fra.me.REG[1] = NIT_NULL;
+ fra.me.REG[0] = p0;
+ fra.me.REG[1] = p1;
+ /* ../lib/standard/collection/array.nit:617 */
+ fra.me.REG[0] = CALL_standard___collection___array___ArrayMapKeys___map(fra.me.REG[0])(fra.me.REG[0]);
+ REGB0 = CALL_standard___collection___array___ArrayMap___index(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
+ REGB1 = TAG_Int(0);
+ REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
+ if (UNTAG_Bool(REGB2)) {
+ } else {
+ nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
+ }
+ /* ../lib/standard/kernel.nit:236 */
+ REGB1 = TAG_Bool(UNTAG_Int(REGB0)>=UNTAG_Int(REGB1));
+ /* ../lib/standard/collection/array.nit:617 */
+ goto label1;
+ label1: while(0);
+ stack_frame_head = fra.me.prev;
+ return REGB1;
+}
+static const char LOCATE_standard___collection___array___ArrayMapKeys___has_only[] = "array::ArrayMapKeys::(abstract_collection::Collection::has_only)";
+val_t standard___collection___array___ArrayMapKeys___has_only(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_standard___collection___array;
+ fra.me.line = 618;
+ fra.me.meth = LOCATE_standard___collection___array___ArrayMapKeys___has_only;
+ fra.me.has_broke = 0;
+ fra.me.REG_size = 2;
+ fra.me.nitni_local_ref_head = NULL;
+ fra.me.REG[0] = NIT_NULL;
+ fra.me.REG[1] = NIT_NULL;
+ fra.me.REG[0] = p0;
+ fra.me.REG[1] = p1;
+ /* ../lib/standard/collection/array.nit:618 */
+ REGB0 = CALL_standard___collection___abstract_collection___Collection___has(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
+ if (UNTAG_Bool(REGB0)) {
+ REGB0 = CALL_standard___collection___abstract_collection___Collection___length(fra.me.REG[0])(fra.me.REG[0]);
+ REGB1 = TAG_Int(1);
+ REGB2 = TAG_Bool(IS_EQUAL_OO(REGB0,REGB1));
+ if (UNTAG_Bool(REGB2)) {
+ } else {
+ /* ../lib/standard/kernel.nit:230 */
+ REGB1 = TAG_Bool((REGB0)==(REGB1));
+ /* ../lib/standard/collection/array.nit:618 */
+ REGB2 = REGB1;
+ }
+ } else {
+ REGB1 = TAG_Bool(0);
+ REGB2 = REGB1;
+ }
+ if (UNTAG_Bool(REGB2)) {
+ REGB2 = TAG_Bool(1);
+ } else {
+ REGB1 = CALL_standard___collection___abstract_collection___Collection___is_empty(fra.me.REG[0])(fra.me.REG[0]);
+ REGB2 = REGB1;
+ }
+ goto label1;
+ label1: while(0);
+ stack_frame_head = fra.me.prev;
+ return REGB2;
+}
+static const char LOCATE_standard___collection___array___ArrayMapKeys___is_empty[] = "array::ArrayMapKeys::(abstract_collection::Collection::is_empty)";
+val_t standard___collection___array___ArrayMapKeys___is_empty(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_standard___collection___array;
+ fra.me.line = 619;
+ fra.me.meth = LOCATE_standard___collection___array___ArrayMapKeys___is_empty;
+ 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;
+ /* ../lib/standard/collection/array.nit:619 */
+ fra.me.REG[0] = CALL_standard___collection___array___ArrayMapKeys___map(fra.me.REG[0])(fra.me.REG[0]);
+ REGB0 = CALL_standard___collection___abstract_collection___MapRead___is_empty(fra.me.REG[0])(fra.me.REG[0]);
+ goto label1;
+ label1: while(0);
+ stack_frame_head = fra.me.prev;
+ return REGB0;
+}
+static const char LOCATE_standard___collection___array___ArrayMapKeys___length[] = "array::ArrayMapKeys::(abstract_collection::Collection::length)";
+val_t standard___collection___array___ArrayMapKeys___length(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_standard___collection___array;
+ fra.me.line = 620;
+ fra.me.meth = LOCATE_standard___collection___array___ArrayMapKeys___length;
+ 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;
+ /* ../lib/standard/collection/array.nit:620 */
+ fra.me.REG[0] = CALL_standard___collection___array___ArrayMapKeys___map(fra.me.REG[0])(fra.me.REG[0]);
+ REGB0 = CALL_standard___collection___abstract_collection___MapRead___length(fra.me.REG[0])(fra.me.REG[0]);
+ goto label1;
+ label1: while(0);
+ stack_frame_head = fra.me.prev;
+ return REGB0;
+}
+static const char LOCATE_standard___collection___array___ArrayMapKeys___iterator[] = "array::ArrayMapKeys::(abstract_collection::Collection::iterator)";
+val_t standard___collection___array___ArrayMapKeys___iterator(val_t p0){
+ struct {struct stack_frame_t me;} fra;
+ val_t tmp;
+ fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+ fra.me.file = LOCATE_standard___collection___array;
+ fra.me.line = 621;
+ fra.me.meth = LOCATE_standard___collection___array___ArrayMapKeys___iterator;
+ 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;
+ /* ../lib/standard/collection/array.nit:621 */
+ fra.me.REG[0] = CALL_standard___collection___array___ArrayMapKeys___map(fra.me.REG[0])(fra.me.REG[0]);
+ fra.me.REG[0] = CALL_standard___collection___abstract_collection___MapRead___iterator(fra.me.REG[0])(fra.me.REG[0]);
+ fra.me.REG[0] = NEW_MapKeysIterator_standard___collection___abstract_collection___MapKeysIterator___init(fra.me.REG[0]);
+ goto label1;
+ label1: while(0);
+ stack_frame_head = fra.me.prev;
+ return fra.me.REG[0];
+}
+static const char LOCATE_standard___collection___array___ArrayMapKeys___clear[] = "array::ArrayMapKeys::(abstract_collection::RemovableCollection::clear)";
+void standard___collection___array___ArrayMapKeys___clear(val_t p0){
+ struct {struct stack_frame_t me;} fra;
+ val_t tmp;
+ fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+ fra.me.file = LOCATE_standard___collection___array;
+ fra.me.line = 622;
+ fra.me.meth = LOCATE_standard___collection___array___ArrayMapKeys___clear;
+ 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;
+ /* ../lib/standard/collection/array.nit:622 */
+ fra.me.REG[0] = CALL_standard___collection___array___ArrayMapKeys___map(fra.me.REG[0])(fra.me.REG[0]);
+ CALL_standard___collection___abstract_collection___Map___clear(fra.me.REG[0])(fra.me.REG[0]);
+ stack_frame_head = fra.me.prev;
+ return;
+}
+static const char LOCATE_standard___collection___array___ArrayMapKeys___remove[] = "array::ArrayMapKeys::(abstract_collection::RemovableCollection::remove)";
+void standard___collection___array___ArrayMapKeys___remove(val_t p0, val_t p1){
+ struct {struct stack_frame_t me; val_t MORE_REG[2];} 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_standard___collection___array;
+ fra.me.line = 623;
+ fra.me.meth = LOCATE_standard___collection___array___ArrayMapKeys___remove;
+ fra.me.has_broke = 0;
+ fra.me.REG_size = 3;
+ fra.me.nitni_local_ref_head = NULL;
+ fra.me.REG[0] = NIT_NULL;
+ fra.me.REG[1] = NIT_NULL;
+ fra.me.REG[2] = NIT_NULL;
+ fra.me.REG[0] = p0;
+ fra.me.REG[1] = p1;
+ /* ../lib/standard/collection/array.nit:625 */
+ fra.me.REG[2] = CALL_standard___collection___array___ArrayMapKeys___map(fra.me.REG[0])(fra.me.REG[0]);
+ REGB0 = CALL_standard___collection___array___ArrayMap___index(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
+ /* ../lib/standard/collection/array.nit:626 */
+ REGB1 = TAG_Int(0);
+ REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
+ if (UNTAG_Bool(REGB2)) {
+ } else {
+ nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
+ }
+ /* ../lib/standard/kernel.nit:236 */
+ REGB1 = TAG_Bool(UNTAG_Int(REGB0)>=UNTAG_Int(REGB1));
+ /* ../lib/standard/collection/array.nit:626 */
+ if (UNTAG_Bool(REGB1)) {
+ fra.me.REG[0] = CALL_standard___collection___array___ArrayMapKeys___map(fra.me.REG[0])(fra.me.REG[0]);
+ CALL_standard___collection___array___ArrayMap___remove_at_index(fra.me.REG[0])(fra.me.REG[0], REGB0);
+ }
+ stack_frame_head = fra.me.prev;
+ return;
+}
+static const char LOCATE_standard___collection___array___ArrayMapKeys___remove_all[] = "array::ArrayMapKeys::(abstract_collection::RemovableCollection::remove_all)";
+void standard___collection___array___ArrayMapKeys___remove_all(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_standard___collection___array;
+ fra.me.line = 628;
+ fra.me.meth = LOCATE_standard___collection___array___ArrayMapKeys___remove_all;
+ fra.me.has_broke = 0;
+ fra.me.REG_size = 2;
+ fra.me.nitni_local_ref_head = NULL;
+ fra.me.REG[0] = NIT_NULL;
+ fra.me.REG[1] = NIT_NULL;
+ fra.me.REG[0] = p0;
+ fra.me.REG[1] = p1;
+ /* ../lib/standard/collection/array.nit:628 */
+ CALL_standard___collection___abstract_collection___RemovableCollection___remove(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
+ stack_frame_head = fra.me.prev;
+ return;
+}
+static const char LOCATE_standard___collection___array___ArrayMapKeys___init[] = "array::ArrayMapKeys::init";
+void standard___collection___array___ArrayMapKeys___init(val_t p0, val_t p1, int* init_table){
+ int itpos12 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_standard___collection___array___ArrayMapKeys].i;
+ struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+ val_t tmp;
+ if (init_table[itpos12]) return;
+ fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+ fra.me.file = LOCATE_standard___collection___array;
+ fra.me.line = 0;
+ fra.me.meth = LOCATE_standard___collection___array___ArrayMapKeys___init;
+ fra.me.has_broke = 0;
+ fra.me.REG_size = 2;
+ fra.me.nitni_local_ref_head = NULL;
+ fra.me.REG[0] = NIT_NULL;
+ fra.me.REG[1] = NIT_NULL;
+ fra.me.REG[0] = p0;
+ fra.me.REG[1] = p1;
+ ATTR_standard___collection___array___ArrayMapKeys_____atmap(fra.me.REG[0]) = fra.me.REG[1];
+ stack_frame_head = fra.me.prev;
+ init_table[itpos12] = 1;
+ return;
+}
+static const char LOCATE_standard___collection___array___ArrayMapValues___map[] = "array::ArrayMapValues::map";
+val_t standard___collection___array___ArrayMapValues___map(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_standard___collection___array;
+ fra.me.line = 633;
+ fra.me.meth = LOCATE_standard___collection___array___ArrayMapValues___map;
+ 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;
+ /* ../lib/standard/collection/array.nit:633 */
+ REGB0 = TAG_Bool(ATTR_standard___collection___array___ArrayMapValues_____atmap(fra.me.REG[0])!=NIT_NULL);
+ if (UNTAG_Bool(REGB0)) {
+ } else {
+ nit_abort("Uninitialized attribute %s", "@map", LOCATE_standard___collection___array, 633);
+ }
+ fra.me.REG[0] = ATTR_standard___collection___array___ArrayMapValues_____atmap(fra.me.REG[0]);
+ stack_frame_head = fra.me.prev;
+ return fra.me.REG[0];
+}
+static const char LOCATE_standard___collection___array___ArrayMapValues___map__eq[] = "array::ArrayMapValues::map=";
+void standard___collection___array___ArrayMapValues___map__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_standard___collection___array;
+ fra.me.line = 633;
+ fra.me.meth = LOCATE_standard___collection___array___ArrayMapValues___map__eq;
+ fra.me.has_broke = 0;
+ fra.me.REG_size = 2;
+ fra.me.nitni_local_ref_head = NULL;
+ fra.me.REG[0] = NIT_NULL;
+ fra.me.REG[1] = NIT_NULL;
+ fra.me.REG[0] = p0;
+ fra.me.REG[1] = p1;
+ /* ../lib/standard/collection/array.nit:633 */
+ ATTR_standard___collection___array___ArrayMapValues_____atmap(fra.me.REG[0]) = fra.me.REG[1];
+ stack_frame_head = fra.me.prev;
+ return;
+}
+static const char LOCATE_standard___collection___array___ArrayMapValues___first[] = "array::ArrayMapValues::(abstract_collection::Collection::first)";
+val_t standard___collection___array___ArrayMapValues___first(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_standard___collection___array;
+ fra.me.line = 635;
+ fra.me.meth = LOCATE_standard___collection___array___ArrayMapValues___first;
+ 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;
+ /* ../lib/standard/collection/array.nit:635 */
+ fra.me.REG[0] = CALL_standard___collection___array___ArrayMapValues___map(fra.me.REG[0])(fra.me.REG[0]);
+ REGB0 = TAG_Bool(ATTR_standard___collection___array___ArrayMap____items(fra.me.REG[0])!=NIT_NULL);
+ if (UNTAG_Bool(REGB0)) {
+ } else {
+ nit_abort("Uninitialized attribute %s", "_items", LOCATE_standard___collection___array, 635);
+ }
+ fra.me.REG[0] = ATTR_standard___collection___array___ArrayMap____items(fra.me.REG[0]);
+ fra.me.REG[0] = CALL_standard___collection___abstract_collection___Collection___first(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_standard___collection___array, 635);
+ }
+ fra.me.REG[0] = CALL_standard___collection___abstract_collection___Couple___second(fra.me.REG[0])(fra.me.REG[0]);
+ goto label1;
+ label1: while(0);