- variable8 = variable9;
- if (!UNTAG_Bool(variable8)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", " 'index' ", LOCATE_array___Array_____bra, 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*/) /*Array::_length*/;
- variable9 = TAG_Bool(UNTAG_Int( variable7 /*index*/)<UNTAG_Int(variable9));
+ fra.me.REG[2] = ((Nit_NativeArray)fra.me.REG[2])->val[UNTAG_Int(REGB3)];
+ /* ./../lib/standard//collection//array.nit:234 */
+ goto label1;
+ label1: while(0);
+ REGB3 = REGB0;
+ /* ./../lib/standard//collection//sorter.nit:73 */
+ while(1) {
+ REGB4 = TAG_Bool(UNTAG_Int(REGB3)<=UNTAG_Int(REGB1));
+ /* ./../lib/standard//collection//sorter.nit:73 */
+ if (UNTAG_Bool(REGB4)) {
+ fra.me.REG[3] = fra.me.REG[1];
+ REGB4 = REGB3;
+ REGB5 = TAG_Int(0);
+ REGB5 = TAG_Bool(UNTAG_Int(REGB4)>=UNTAG_Int(REGB5));
+ /* ./../lib/standard//collection//array.nit:233 */
+ if (UNTAG_Bool(REGB5)) {
+ REGB5 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[3])!=NIT_NULL);
+ if (UNTAG_Bool(REGB5)) {
+ } else {
+ fprintf(stderr, "Uninitialized attribute %s", "_length");
+ fprintf(stderr, " (%s:%d)\n", LOCATE_array, 233);
+ nit_exit(1);
+ }
+ REGB5 = ATTR_array___AbstractArrayRead____length(fra.me.REG[3]);
+ REGB5 = TAG_Bool(UNTAG_Int(REGB4)<UNTAG_Int(REGB5));
+ /* ./../lib/standard//collection//array.nit:233 */
+ } else {
+ REGB6 = TAG_Bool(false);
+ REGB5 = REGB6;
+ }
+ if (UNTAG_Bool(REGB5)) {
+ } else {
+ fprintf(stderr, "Assert %s failed", "'index'");
+ fprintf(stderr, " (%s:%d)\n", LOCATE_array, 233);
+ nit_exit(1);
+ }
+ fra.me.REG[3] = ATTR_array___Array____items(fra.me.REG[3]);
+ REGB5 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
+ /* ./../lib/standard//collection//array.nit:234 */
+ if (UNTAG_Bool(REGB5)) {
+ fprintf(stderr, "Reciever is null");
+ fprintf(stderr, " (%s:%d)\n", LOCATE_array, 234);
+ nit_exit(1);
+ }
+ fra.me.REG[3] = ((Nit_NativeArray)fra.me.REG[3])->val[UNTAG_Int(REGB4)];
+ /* ./../lib/standard//collection//array.nit:234 */
+ goto label2;
+ label2: while(0);
+ 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);
+ REGB5 = TAG_Bool(UNTAG_Int(REGB4)>UNTAG_Int(REGB5));
+ /* ./../lib/standard//collection//sorter.nit:74 */
+ if (UNTAG_Bool(REGB5)) {
+ REGB2 = REGB3;
+ fra.me.REG[3] = fra.me.REG[1];
+ REGB5 = REGB3;
+ REGB4 = TAG_Int(0);
+ REGB4 = TAG_Bool(UNTAG_Int(REGB5)>=UNTAG_Int(REGB4));
+ /* ./../lib/standard//collection//array.nit:233 */
+ if (UNTAG_Bool(REGB4)) {
+ REGB4 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[3])!=NIT_NULL);
+ if (UNTAG_Bool(REGB4)) {
+ } else {
+ fprintf(stderr, "Uninitialized attribute %s", "_length");
+ fprintf(stderr, " (%s:%d)\n", LOCATE_array, 233);
+ nit_exit(1);
+ }
+ REGB4 = ATTR_array___AbstractArrayRead____length(fra.me.REG[3]);
+ REGB4 = TAG_Bool(UNTAG_Int(REGB5)<UNTAG_Int(REGB4));
+ /* ./../lib/standard//collection//array.nit:233 */
+ } else {
+ REGB6 = TAG_Bool(false);
+ REGB4 = REGB6;
+ }
+ if (UNTAG_Bool(REGB4)) {
+ } else {
+ fprintf(stderr, "Assert %s failed", "'index'");
+ fprintf(stderr, " (%s:%d)\n", LOCATE_array, 233);
+ nit_exit(1);
+ }
+ fra.me.REG[3] = ATTR_array___Array____items(fra.me.REG[3]);
+ REGB4 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
+ /* ./../lib/standard//collection//array.nit:234 */
+ if (UNTAG_Bool(REGB4)) {
+ fprintf(stderr, "Reciever is null");
+ fprintf(stderr, " (%s:%d)\n", LOCATE_array, 234);
+ nit_exit(1);
+ }
+ fra.me.REG[3] = ((Nit_NativeArray)fra.me.REG[3])->val[UNTAG_Int(REGB5)];
+ /* ./../lib/standard//collection//array.nit:234 */
+ goto label3;
+ label3: while(0);
+ fra.me.REG[2] = fra.me.REG[3];
+ /* ./../lib/standard//collection//sorter.nit:76 */
+ }
+ REGB5 = TAG_Int(1);
+ REGB5 = TAG_Int(UNTAG_Int(REGB3)+UNTAG_Int(REGB5));
+ REGB3 = REGB5;
+ /* ./../lib/standard//collection//sorter.nit:78 */
+ } else {
+ /* ./../lib/standard//collection//sorter.nit:73 */
+ goto label4;