- variable8 = variable9;
- if (!UNTAG_Bool(variable8)) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_sorter, 229); nit_exit(1);}
- variable8 = ATTR_array___Array____items( variable0 /*array*/) /*Array::_items*/;
- variable8 = UNBOX_NativeArray(variable8)[UNTAG_Int( variable7 /*index*/)];
- goto return_label16;
- return_label16: while(false);
- variable7 = variable8;
- variable7 = ((sorter___AbstractSorter___compare_t)CALL( self,COLOR_sorter___AbstractSorter___compare))( self, variable5 /*min_v*/, variable7) /*AbstractSorter::compare*/;
- variable7 = TAG_Bool(UNTAG_Int(variable7)>UNTAG_Int( TAG_Int(0)));
- if (UNTAG_Bool(variable7)) { /*if*/
- variable4 = variable6 /*j*/ /*min=*/;
- variable7 = variable6 /*j*/;
- variable8 = TAG_Bool(UNTAG_Int( variable7 /*index*/)>=UNTAG_Int( TAG_Int(0)));
- variable9 = variable8;
- if (UNTAG_Bool(variable9)) { /* and */
- variable9 = ATTR_array___AbstractArray____length( variable0 /*array*/) /*AbstractArray::_length*/;
- variable9 = TAG_Bool(UNTAG_Int( variable7 /*index*/)<UNTAG_Int(variable9));
+ /* ./../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 label1;
+ label1: while(0);
+ /* ./../lib/standard//collection//sorter.nit:72 */
+ REGB3 = REGB0;
+ /* ./../lib/standard//collection//sorter.nit:73 */
+ while(1) {
+ /* ./../lib/standard//kernel.nit:211 */
+ REGB4 = TAG_Bool(UNTAG_Int(REGB3)<=UNTAG_Int(REGB1));
+ /* ./../lib/standard//collection//sorter.nit:73 */
+ if (UNTAG_Bool(REGB4)) {
+ /* ./../lib/standard//collection//array.nit:243 */
+ fra.me.REG[3] = fra.me.REG[1];
+ REGB4 = REGB3;
+ /* ./../lib/standard//collection//array.nit:245 */
+ REGB5 = TAG_Int(0);
+ /* ./../lib/standard//kernel.nit:213 */
+ REGB5 = TAG_Bool(UNTAG_Int(REGB4)>=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(REGB4)<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(REGB4)];
+ /* ./../lib/standard//collection//array.nit:246 */
+ goto label2;
+ label2: while(0);
+ /* ./../lib/standard//collection//sorter.nit:74 */
+ REGB4 = CALL_sorter___AbstractSorter___compare(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[2], fra.me.REG[3]);
+ REGB5 = TAG_Int(0);
+ /* ./../lib/standard//kernel.nit:214 */
+ REGB5 = TAG_Bool(UNTAG_Int(REGB4)>UNTAG_Int(REGB5));
+ /* ./../lib/standard//collection//sorter.nit:74 */
+ if (UNTAG_Bool(REGB5)) {
+ /* ./../lib/standard//collection//sorter.nit:75 */
+ REGB2 = REGB3;
+ /* ./../lib/standard//collection//array.nit:243 */
+ fra.me.REG[3] = fra.me.REG[1];
+ REGB5 = REGB3;
+ /* ./../lib/standard//collection//array.nit:245 */
+ REGB4 = TAG_Int(0);
+ /* ./../lib/standard//kernel.nit:213 */
+ REGB4 = TAG_Bool(UNTAG_Int(REGB5)>=UNTAG_Int(REGB4));
+ /* ./../lib/standard//collection//array.nit:245 */
+ if (UNTAG_Bool(REGB4)) {
+ 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, 245);
+ }
+ REGB4 = ATTR_array___AbstractArrayRead____length(fra.me.REG[3]);
+ /* ./../lib/standard//kernel.nit:212 */
+ REGB4 = TAG_Bool(UNTAG_Int(REGB5)<UNTAG_Int(REGB4));
+ } else {
+ /* ./../lib/standard//collection//array.nit:245 */
+ REGB6 = TAG_Bool(false);
+ REGB4 = REGB6;
+ }
+ if (UNTAG_Bool(REGB4)) {
+ } 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]);
+ REGB4 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
+ if (UNTAG_Bool(REGB4)) {
+ 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(REGB5)];
+ /* ./../lib/standard//collection//array.nit:246 */
+ goto label3;
+ label3: while(0);
+ /* ./../lib/standard//collection//sorter.nit:76 */
+ fra.me.REG[2] = fra.me.REG[3];
+ }
+ /* ./../lib/standard//collection//sorter.nit:78 */
+ REGB5 = TAG_Int(1);
+ /* ./../lib/standard//kernel.nit:215 */
+ REGB5 = TAG_Int(UNTAG_Int(REGB3)+UNTAG_Int(REGB5));
+ /* ./../lib/standard//collection//sorter.nit:78 */
+ REGB3 = REGB5;
+ } else {
+ /* ./../lib/standard//collection//sorter.nit:73 */
+ goto label4;