f9f92e023f2802b26c0203334cc0fa5142d78f59
[nit.git] / c_src / standard___collection___array._sep.c
1 /* This C file is generated by NIT to compile module standard___collection___array. */
2 #include "standard___collection___array._sep.h"
3 val_t standard___collection___array___AbstractArrayRead___length(val_t p0){
4 struct {struct stack_frame_t me;} fra;
5 val_t REGB0;
6 val_t tmp;
7 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
8 fra.me.file = LOCATE_standard___collection___array;
9 fra.me.line = 24;
10 fra.me.meth = LOCATE_standard___collection___array___AbstractArrayRead___length;
11 fra.me.has_broke = 0;
12 fra.me.REG_size = 1;
13 fra.me.nitni_local_ref_head = NULL;
14 fra.me.REG[0] = NIT_NULL;
15 fra.me.REG[0] = p0;
16 /* ../lib/standard/collection/array.nit:24 */
17 REGB0 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
18 if (UNTAG_Bool(REGB0)) {
19 } else {
20 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
21 }
22 REGB0 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0]);
23 stack_frame_head = fra.me.prev;
24 return REGB0;
25 }
26 val_t standard___collection___array___AbstractArrayRead___is_empty(val_t p0){
27 struct {struct stack_frame_t me;} fra;
28 val_t REGB0;
29 val_t REGB1;
30 val_t REGB2;
31 val_t tmp;
32 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
33 fra.me.file = LOCATE_standard___collection___array;
34 fra.me.line = 26;
35 fra.me.meth = LOCATE_standard___collection___array___AbstractArrayRead___is_empty;
36 fra.me.has_broke = 0;
37 fra.me.REG_size = 1;
38 fra.me.nitni_local_ref_head = NULL;
39 fra.me.REG[0] = NIT_NULL;
40 fra.me.REG[0] = p0;
41 /* ../lib/standard/collection/array.nit:26 */
42 REGB0 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
43 if (UNTAG_Bool(REGB0)) {
44 } else {
45 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 26);
46 }
47 REGB0 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0]);
48 REGB1 = TAG_Int(0);
49 REGB2 = TAG_Bool(IS_EQUAL_OO(REGB0,REGB1));
50 if (UNTAG_Bool(REGB2)) {
51 } else {
52 /* ../lib/standard/kernel.nit:227 */
53 REGB1 = TAG_Bool((REGB0)==(REGB1));
54 /* ../lib/standard/collection/array.nit:26 */
55 REGB2 = REGB1;
56 }
57 goto label1;
58 label1: while(0);
59 stack_frame_head = fra.me.prev;
60 return REGB2;
61 }
62 val_t standard___collection___array___AbstractArrayRead___has(val_t p0, val_t p1){
63 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
64 val_t REGB0;
65 val_t REGB1;
66 val_t REGB2;
67 val_t REGB3;
68 val_t tmp;
69 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
70 fra.me.file = LOCATE_standard___collection___array;
71 fra.me.line = 28;
72 fra.me.meth = LOCATE_standard___collection___array___AbstractArrayRead___has;
73 fra.me.has_broke = 0;
74 fra.me.REG_size = 3;
75 fra.me.nitni_local_ref_head = NULL;
76 fra.me.REG[0] = NIT_NULL;
77 fra.me.REG[1] = NIT_NULL;
78 fra.me.REG[2] = NIT_NULL;
79 fra.me.REG[0] = p0;
80 fra.me.REG[1] = p1;
81 /* ../lib/standard/collection/array.nit:30 */
82 REGB0 = TAG_Int(0);
83 /* ../lib/standard/collection/array.nit:24 */
84 REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
85 if (UNTAG_Bool(REGB1)) {
86 } else {
87 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
88 }
89 REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0]);
90 /* ../lib/standard/collection/array.nit:32 */
91 while(1) {
92 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
93 if (UNTAG_Bool(REGB2)) {
94 } else {
95 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
96 }
97 /* ../lib/standard/kernel.nit:232 */
98 REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
99 /* ../lib/standard/collection/array.nit:32 */
100 if (UNTAG_Bool(REGB2)) {
101 /* ../lib/standard/collection/array.nit:33 */
102 fra.me.REG[2] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra.me.REG[0])(fra.me.REG[0], REGB0);
103 REGB2 = TAG_Bool(IS_EQUAL_NN(fra.me.REG[2],fra.me.REG[1]));
104 if (UNTAG_Bool(REGB2)) {
105 } else {
106 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
107 if (UNTAG_Bool(REGB3)) {
108 REGB3 = TAG_Bool(false);
109 REGB2 = REGB3;
110 } else {
111 REGB3 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
112 REGB2 = REGB3;
113 }
114 }
115 if (UNTAG_Bool(REGB2)) {
116 REGB2 = TAG_Bool(true);
117 goto label1;
118 }
119 /* ../lib/standard/collection/array.nit:34 */
120 REGB3 = TAG_Int(1);
121 /* ../lib/standard/kernel.nit:235 */
122 REGB3 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB3));
123 /* ../lib/standard/collection/array.nit:34 */
124 REGB0 = REGB3;
125 } else {
126 /* ../lib/standard/collection/array.nit:32 */
127 goto label2;
128 }
129 }
130 label2: while(0);
131 /* ../lib/standard/collection/array.nit:36 */
132 REGB0 = TAG_Bool(false);
133 REGB2 = REGB0;
134 goto label1;
135 label1: while(0);
136 stack_frame_head = fra.me.prev;
137 return REGB2;
138 }
139 val_t standard___collection___array___AbstractArrayRead___has_only(val_t p0, val_t p1){
140 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
141 val_t REGB0;
142 val_t REGB1;
143 val_t REGB2;
144 val_t REGB3;
145 val_t tmp;
146 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
147 fra.me.file = LOCATE_standard___collection___array;
148 fra.me.line = 39;
149 fra.me.meth = LOCATE_standard___collection___array___AbstractArrayRead___has_only;
150 fra.me.has_broke = 0;
151 fra.me.REG_size = 3;
152 fra.me.nitni_local_ref_head = NULL;
153 fra.me.REG[0] = NIT_NULL;
154 fra.me.REG[1] = NIT_NULL;
155 fra.me.REG[2] = NIT_NULL;
156 fra.me.REG[0] = p0;
157 fra.me.REG[1] = p1;
158 /* ../lib/standard/collection/array.nit:41 */
159 REGB0 = TAG_Int(0);
160 /* ../lib/standard/collection/array.nit:24 */
161 REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
162 if (UNTAG_Bool(REGB1)) {
163 } else {
164 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
165 }
166 REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0]);
167 /* ../lib/standard/collection/array.nit:43 */
168 while(1) {
169 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
170 if (UNTAG_Bool(REGB2)) {
171 } else {
172 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
173 }
174 /* ../lib/standard/kernel.nit:232 */
175 REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
176 /* ../lib/standard/collection/array.nit:43 */
177 if (UNTAG_Bool(REGB2)) {
178 /* ../lib/standard/collection/array.nit:44 */
179 fra.me.REG[2] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra.me.REG[0])(fra.me.REG[0], REGB0);
180 REGB2 = TAG_Bool(IS_EQUAL_NN(fra.me.REG[2],fra.me.REG[1]));
181 if (UNTAG_Bool(REGB2)) {
182 } else {
183 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
184 if (UNTAG_Bool(REGB3)) {
185 REGB3 = TAG_Bool(false);
186 REGB2 = REGB3;
187 } else {
188 REGB3 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
189 REGB2 = REGB3;
190 }
191 }
192 REGB2 = TAG_Bool(!UNTAG_Bool(REGB2));
193 if (UNTAG_Bool(REGB2)) {
194 REGB2 = TAG_Bool(false);
195 goto label1;
196 }
197 /* ../lib/standard/collection/array.nit:45 */
198 REGB3 = TAG_Int(1);
199 /* ../lib/standard/kernel.nit:235 */
200 REGB3 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB3));
201 /* ../lib/standard/collection/array.nit:45 */
202 REGB0 = REGB3;
203 } else {
204 /* ../lib/standard/collection/array.nit:43 */
205 goto label2;
206 }
207 }
208 label2: while(0);
209 /* ../lib/standard/collection/array.nit:47 */
210 REGB0 = TAG_Bool(true);
211 REGB2 = REGB0;
212 goto label1;
213 label1: while(0);
214 stack_frame_head = fra.me.prev;
215 return REGB2;
216 }
217 val_t standard___collection___array___AbstractArrayRead___count(val_t p0, val_t p1){
218 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
219 val_t REGB0;
220 val_t REGB1;
221 val_t REGB2;
222 val_t REGB3;
223 val_t REGB4;
224 val_t tmp;
225 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
226 fra.me.file = LOCATE_standard___collection___array;
227 fra.me.line = 50;
228 fra.me.meth = LOCATE_standard___collection___array___AbstractArrayRead___count;
229 fra.me.has_broke = 0;
230 fra.me.REG_size = 3;
231 fra.me.nitni_local_ref_head = NULL;
232 fra.me.REG[0] = NIT_NULL;
233 fra.me.REG[1] = NIT_NULL;
234 fra.me.REG[2] = NIT_NULL;
235 fra.me.REG[0] = p0;
236 fra.me.REG[1] = p1;
237 /* ../lib/standard/collection/array.nit:52 */
238 REGB0 = TAG_Int(0);
239 /* ../lib/standard/collection/array.nit:53 */
240 REGB1 = TAG_Int(0);
241 /* ../lib/standard/collection/array.nit:24 */
242 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
243 if (UNTAG_Bool(REGB2)) {
244 } else {
245 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
246 }
247 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0]);
248 /* ../lib/standard/collection/array.nit:55 */
249 while(1) {
250 REGB3 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
251 if (UNTAG_Bool(REGB3)) {
252 } else {
253 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
254 }
255 /* ../lib/standard/kernel.nit:232 */
256 REGB3 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
257 /* ../lib/standard/collection/array.nit:55 */
258 if (UNTAG_Bool(REGB3)) {
259 /* ../lib/standard/collection/array.nit:56 */
260 fra.me.REG[2] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra.me.REG[0])(fra.me.REG[0], REGB1);
261 REGB3 = TAG_Bool(IS_EQUAL_NN(fra.me.REG[2],fra.me.REG[1]));
262 if (UNTAG_Bool(REGB3)) {
263 } else {
264 REGB4 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
265 if (UNTAG_Bool(REGB4)) {
266 REGB4 = TAG_Bool(false);
267 REGB3 = REGB4;
268 } else {
269 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
270 REGB3 = REGB4;
271 }
272 }
273 if (UNTAG_Bool(REGB3)) {
274 REGB3 = TAG_Int(1);
275 /* ../lib/standard/kernel.nit:235 */
276 REGB3 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB3));
277 /* ../lib/standard/collection/array.nit:56 */
278 REGB0 = REGB3;
279 }
280 /* ../lib/standard/collection/array.nit:57 */
281 REGB3 = TAG_Int(1);
282 /* ../lib/standard/kernel.nit:235 */
283 REGB3 = TAG_Int(UNTAG_Int(REGB1)+UNTAG_Int(REGB3));
284 /* ../lib/standard/collection/array.nit:57 */
285 REGB1 = REGB3;
286 } else {
287 /* ../lib/standard/collection/array.nit:55 */
288 goto label1;
289 }
290 }
291 label1: while(0);
292 /* ../lib/standard/collection/array.nit:59 */
293 goto label2;
294 label2: while(0);
295 stack_frame_head = fra.me.prev;
296 return REGB0;
297 }
298 val_t standard___collection___array___AbstractArrayRead___index_of(val_t p0, val_t p1){
299 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
300 val_t REGB0;
301 val_t tmp;
302 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
303 fra.me.file = LOCATE_standard___collection___array;
304 fra.me.line = 62;
305 fra.me.meth = LOCATE_standard___collection___array___AbstractArrayRead___index_of;
306 fra.me.has_broke = 0;
307 fra.me.REG_size = 2;
308 fra.me.nitni_local_ref_head = NULL;
309 fra.me.REG[0] = NIT_NULL;
310 fra.me.REG[1] = NIT_NULL;
311 fra.me.REG[0] = p0;
312 fra.me.REG[1] = p1;
313 /* ../lib/standard/collection/array.nit:62 */
314 REGB0 = TAG_Int(0);
315 REGB0 = CALL_standard___collection___array___AbstractArrayRead___index_of_from(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], REGB0);
316 goto label1;
317 label1: while(0);
318 stack_frame_head = fra.me.prev;
319 return REGB0;
320 }
321 val_t standard___collection___array___AbstractArrayRead___last_index_of(val_t p0, val_t p1){
322 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
323 val_t REGB0;
324 val_t REGB1;
325 val_t tmp;
326 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
327 fra.me.file = LOCATE_standard___collection___array;
328 fra.me.line = 64;
329 fra.me.meth = LOCATE_standard___collection___array___AbstractArrayRead___last_index_of;
330 fra.me.has_broke = 0;
331 fra.me.REG_size = 2;
332 fra.me.nitni_local_ref_head = NULL;
333 fra.me.REG[0] = NIT_NULL;
334 fra.me.REG[1] = NIT_NULL;
335 fra.me.REG[0] = p0;
336 fra.me.REG[1] = p1;
337 /* ../lib/standard/collection/array.nit:24 */
338 REGB0 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
339 if (UNTAG_Bool(REGB0)) {
340 } else {
341 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
342 }
343 REGB0 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0]);
344 /* ../lib/standard/collection/array.nit:66 */
345 REGB1 = TAG_Int(1);
346 /* ../lib/standard/kernel.nit:237 */
347 REGB1 = TAG_Int(UNTAG_Int(REGB0)-UNTAG_Int(REGB1));
348 /* ../lib/standard/collection/array.nit:66 */
349 REGB1 = CALL_standard___collection___array___AbstractArrayRead___last_index_of_from(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], REGB1);
350 goto label1;
351 label1: while(0);
352 stack_frame_head = fra.me.prev;
353 return REGB1;
354 }
355 val_t standard___collection___array___AbstractArrayRead___index_of_from(val_t p0, val_t p1, val_t p2){
356 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
357 val_t REGB0;
358 val_t REGB1;
359 val_t REGB2;
360 val_t REGB3;
361 val_t tmp;
362 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
363 fra.me.file = LOCATE_standard___collection___array;
364 fra.me.line = 68;
365 fra.me.meth = LOCATE_standard___collection___array___AbstractArrayRead___index_of_from;
366 fra.me.has_broke = 0;
367 fra.me.REG_size = 3;
368 fra.me.nitni_local_ref_head = NULL;
369 fra.me.REG[0] = NIT_NULL;
370 fra.me.REG[1] = NIT_NULL;
371 fra.me.REG[2] = NIT_NULL;
372 fra.me.REG[0] = p0;
373 fra.me.REG[1] = p1;
374 REGB0 = p2;
375 /* ../lib/standard/collection/array.nit:24 */
376 REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
377 if (UNTAG_Bool(REGB1)) {
378 } else {
379 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
380 }
381 REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0]);
382 /* ../lib/standard/collection/array.nit:74 */
383 while(1) {
384 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
385 if (UNTAG_Bool(REGB2)) {
386 } else {
387 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
388 }
389 /* ../lib/standard/kernel.nit:232 */
390 REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
391 /* ../lib/standard/collection/array.nit:74 */
392 if (UNTAG_Bool(REGB2)) {
393 /* ../lib/standard/collection/array.nit:75 */
394 fra.me.REG[2] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra.me.REG[0])(fra.me.REG[0], REGB0);
395 REGB2 = TAG_Bool(IS_EQUAL_NN(fra.me.REG[2],fra.me.REG[1]));
396 if (UNTAG_Bool(REGB2)) {
397 } else {
398 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
399 if (UNTAG_Bool(REGB3)) {
400 REGB3 = TAG_Bool(false);
401 REGB2 = REGB3;
402 } else {
403 REGB3 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
404 REGB2 = REGB3;
405 }
406 }
407 if (UNTAG_Bool(REGB2)) {
408 /* ../lib/standard/collection/array.nit:76 */
409 REGB2 = REGB0;
410 goto label1;
411 }
412 /* ../lib/standard/collection/array.nit:78 */
413 REGB3 = TAG_Int(1);
414 /* ../lib/standard/kernel.nit:235 */
415 REGB3 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB3));
416 /* ../lib/standard/collection/array.nit:78 */
417 REGB0 = REGB3;
418 } else {
419 /* ../lib/standard/collection/array.nit:74 */
420 goto label2;
421 }
422 }
423 label2: while(0);
424 /* ../lib/standard/collection/array.nit:80 */
425 REGB0 = TAG_Int(1);
426 /* ../lib/standard/kernel.nit:236 */
427 REGB0 = TAG_Int(-UNTAG_Int(REGB0));
428 /* ../lib/standard/collection/array.nit:80 */
429 REGB2 = REGB0;
430 goto label1;
431 label1: while(0);
432 stack_frame_head = fra.me.prev;
433 return REGB2;
434 }
435 val_t standard___collection___array___AbstractArrayRead___last_index_of_from(val_t p0, val_t p1, val_t p2){
436 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
437 val_t REGB0;
438 val_t REGB1;
439 val_t REGB2;
440 val_t tmp;
441 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
442 fra.me.file = LOCATE_standard___collection___array;
443 fra.me.line = 83;
444 fra.me.meth = LOCATE_standard___collection___array___AbstractArrayRead___last_index_of_from;
445 fra.me.has_broke = 0;
446 fra.me.REG_size = 3;
447 fra.me.nitni_local_ref_head = NULL;
448 fra.me.REG[0] = NIT_NULL;
449 fra.me.REG[1] = NIT_NULL;
450 fra.me.REG[2] = NIT_NULL;
451 fra.me.REG[0] = p0;
452 fra.me.REG[1] = p1;
453 REGB0 = p2;
454 /* ../lib/standard/collection/array.nit:88 */
455 while(1) {
456 REGB1 = TAG_Int(0);
457 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
458 if (UNTAG_Bool(REGB2)) {
459 } else {
460 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
461 }
462 /* ../lib/standard/kernel.nit:233 */
463 REGB1 = TAG_Bool(UNTAG_Int(REGB0)>=UNTAG_Int(REGB1));
464 /* ../lib/standard/collection/array.nit:88 */
465 if (UNTAG_Bool(REGB1)) {
466 /* ../lib/standard/collection/array.nit:89 */
467 fra.me.REG[2] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra.me.REG[0])(fra.me.REG[0], REGB0);
468 REGB1 = TAG_Bool(IS_EQUAL_NN(fra.me.REG[2],fra.me.REG[1]));
469 if (UNTAG_Bool(REGB1)) {
470 } else {
471 REGB2 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
472 if (UNTAG_Bool(REGB2)) {
473 REGB2 = TAG_Bool(false);
474 REGB1 = REGB2;
475 } else {
476 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
477 REGB1 = REGB2;
478 }
479 }
480 if (UNTAG_Bool(REGB1)) {
481 /* ../lib/standard/collection/array.nit:90 */
482 REGB1 = REGB0;
483 goto label1;
484 } else {
485 /* ../lib/standard/collection/array.nit:92 */
486 REGB2 = TAG_Int(1);
487 /* ../lib/standard/kernel.nit:237 */
488 REGB2 = TAG_Int(UNTAG_Int(REGB0)-UNTAG_Int(REGB2));
489 /* ../lib/standard/collection/array.nit:92 */
490 REGB0 = REGB2;
491 }
492 } else {
493 /* ../lib/standard/collection/array.nit:88 */
494 goto label2;
495 }
496 }
497 label2: while(0);
498 /* ../lib/standard/collection/array.nit:95 */
499 REGB0 = TAG_Int(1);
500 /* ../lib/standard/kernel.nit:236 */
501 REGB0 = TAG_Int(-UNTAG_Int(REGB0));
502 /* ../lib/standard/collection/array.nit:95 */
503 REGB1 = REGB0;
504 goto label1;
505 label1: while(0);
506 stack_frame_head = fra.me.prev;
507 return REGB1;
508 }
509 val_t standard___collection___array___AbstractArrayRead___reversed(val_t p0){
510 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
511 val_t REGB0;
512 val_t REGB1;
513 val_t REGB2;
514 val_t tmp;
515 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
516 fra.me.file = LOCATE_standard___collection___array;
517 fra.me.line = 98;
518 fra.me.meth = LOCATE_standard___collection___array___AbstractArrayRead___reversed;
519 fra.me.has_broke = 0;
520 fra.me.REG_size = 3;
521 fra.me.nitni_local_ref_head = NULL;
522 fra.me.REG[0] = NIT_NULL;
523 fra.me.REG[1] = NIT_NULL;
524 fra.me.REG[2] = NIT_NULL;
525 fra.me.REG[0] = p0;
526 /* ../lib/standard/collection/array.nit:103 */
527 REGB0 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
528 if (UNTAG_Bool(REGB0)) {
529 } else {
530 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 103);
531 }
532 REGB0 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0]);
533 /* ../lib/standard/collection/array.nit:104 */
534 fra.me.REG[1] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
535 /* ../lib/standard/collection/array.nit:105 */
536 while(1) {
537 REGB1 = TAG_Int(0);
538 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
539 if (UNTAG_Bool(REGB2)) {
540 } else {
541 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
542 }
543 /* ../lib/standard/kernel.nit:234 */
544 REGB1 = TAG_Bool(UNTAG_Int(REGB0)>UNTAG_Int(REGB1));
545 /* ../lib/standard/collection/array.nit:105 */
546 if (UNTAG_Bool(REGB1)) {
547 /* ../lib/standard/collection/array.nit:106 */
548 REGB1 = TAG_Int(1);
549 /* ../lib/standard/kernel.nit:237 */
550 REGB1 = TAG_Int(UNTAG_Int(REGB0)-UNTAG_Int(REGB1));
551 /* ../lib/standard/collection/array.nit:106 */
552 REGB0 = REGB1;
553 /* ../lib/standard/collection/array.nit:107 */
554 fra.me.REG[2] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra.me.REG[0])(fra.me.REG[0], REGB0);
555 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
556 } else {
557 /* ../lib/standard/collection/array.nit:105 */
558 goto label1;
559 }
560 }
561 label1: while(0);
562 /* ../lib/standard/collection/array.nit:109 */
563 goto label2;
564 label2: while(0);
565 stack_frame_head = fra.me.prev;
566 return fra.me.REG[1];
567 }
568 void standard___collection___array___AbstractArrayRead___copy_to(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4){
569 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
570 val_t REGB0;
571 val_t REGB1;
572 val_t REGB2;
573 val_t REGB3;
574 val_t REGB4;
575 val_t tmp;
576 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
577 fra.me.file = LOCATE_standard___collection___array;
578 fra.me.line = 112;
579 fra.me.meth = LOCATE_standard___collection___array___AbstractArrayRead___copy_to;
580 fra.me.has_broke = 0;
581 fra.me.REG_size = 3;
582 fra.me.nitni_local_ref_head = NULL;
583 fra.me.REG[0] = NIT_NULL;
584 fra.me.REG[1] = NIT_NULL;
585 fra.me.REG[2] = NIT_NULL;
586 fra.me.REG[0] = p0;
587 REGB0 = p1;
588 REGB1 = p2;
589 fra.me.REG[1] = p3;
590 REGB2 = p4;
591 /* ../lib/standard/collection/array.nit:122 */
592 while(1) {
593 REGB3 = TAG_Int(0);
594 REGB4 = TAG_Bool(VAL_ISA(REGB3, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
595 if (UNTAG_Bool(REGB4)) {
596 } else {
597 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
598 }
599 /* ../lib/standard/kernel.nit:234 */
600 REGB3 = TAG_Bool(UNTAG_Int(REGB1)>UNTAG_Int(REGB3));
601 /* ../lib/standard/collection/array.nit:122 */
602 if (UNTAG_Bool(REGB3)) {
603 /* ../lib/standard/collection/array.nit:123 */
604 REGB3 = TAG_Int(1);
605 /* ../lib/standard/kernel.nit:237 */
606 REGB3 = TAG_Int(UNTAG_Int(REGB1)-UNTAG_Int(REGB3));
607 /* ../lib/standard/collection/array.nit:123 */
608 REGB1 = REGB3;
609 /* ../lib/standard/kernel.nit:235 */
610 REGB3 = TAG_Int(UNTAG_Int(REGB2)+UNTAG_Int(REGB1));
611 REGB4 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
612 /* ../lib/standard/collection/array.nit:124 */
613 fra.me.REG[2] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra.me.REG[0])(fra.me.REG[0], REGB4);
614 CALL_standard___collection___abstract_collection___Sequence_____braeq(fra.me.REG[1])(fra.me.REG[1], REGB3, fra.me.REG[2]);
615 } else {
616 /* ../lib/standard/collection/array.nit:122 */
617 goto label1;
618 }
619 }
620 label1: while(0);
621 stack_frame_head = fra.me.prev;
622 return;
623 }
624 void standard___collection___array___AbstractArrayRead___output(val_t p0){
625 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
626 val_t REGB0;
627 val_t REGB1;
628 val_t REGB2;
629 val_t REGB3;
630 val_t tmp;
631 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
632 fra.me.file = LOCATE_standard___collection___array;
633 fra.me.line = 128;
634 fra.me.meth = LOCATE_standard___collection___array___AbstractArrayRead___output;
635 fra.me.has_broke = 0;
636 fra.me.REG_size = 2;
637 fra.me.nitni_local_ref_head = NULL;
638 fra.me.REG[0] = NIT_NULL;
639 fra.me.REG[1] = NIT_NULL;
640 fra.me.REG[0] = p0;
641 /* ../lib/standard/collection/array.nit:130 */
642 REGB0 = TAG_Int(0);
643 /* ../lib/standard/collection/array.nit:24 */
644 REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
645 if (UNTAG_Bool(REGB1)) {
646 } else {
647 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
648 }
649 REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0]);
650 /* ../lib/standard/collection/array.nit:132 */
651 while(1) {
652 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
653 if (UNTAG_Bool(REGB2)) {
654 } else {
655 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
656 }
657 /* ../lib/standard/kernel.nit:232 */
658 REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
659 /* ../lib/standard/collection/array.nit:132 */
660 if (UNTAG_Bool(REGB2)) {
661 /* ../lib/standard/collection/array.nit:133 */
662 fra.me.REG[1] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra.me.REG[0])(fra.me.REG[0], REGB0);
663 /* ../lib/standard/collection/array.nit:134 */
664 REGB2 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
665 if (UNTAG_Bool(REGB2)) {
666 } else {
667 REGB3 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
668 if (UNTAG_Bool(REGB3)) {
669 REGB3 = TAG_Bool(false);
670 REGB2 = REGB3;
671 } else {
672 REGB3 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
673 REGB2 = REGB3;
674 }
675 }
676 REGB2 = TAG_Bool(!UNTAG_Bool(REGB2));
677 if (UNTAG_Bool(REGB2)) {
678 REGB2 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
679 if (UNTAG_Bool(REGB2)) {
680 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 134);
681 }
682 CALL_standard___kernel___Object___output(fra.me.REG[1])(fra.me.REG[1]);
683 }
684 /* ../lib/standard/collection/array.nit:135 */
685 REGB2 = TAG_Int(1);
686 /* ../lib/standard/kernel.nit:235 */
687 REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
688 /* ../lib/standard/collection/array.nit:135 */
689 REGB0 = REGB2;
690 } else {
691 /* ../lib/standard/collection/array.nit:132 */
692 goto label1;
693 }
694 }
695 label1: while(0);
696 stack_frame_head = fra.me.prev;
697 return;
698 }
699 val_t standard___collection___array___AbstractArrayRead___iterator(val_t p0){
700 struct {struct stack_frame_t me;} fra;
701 val_t tmp;
702 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
703 fra.me.file = LOCATE_standard___collection___array;
704 fra.me.line = 139;
705 fra.me.meth = LOCATE_standard___collection___array___AbstractArrayRead___iterator;
706 fra.me.has_broke = 0;
707 fra.me.REG_size = 1;
708 fra.me.nitni_local_ref_head = NULL;
709 fra.me.REG[0] = NIT_NULL;
710 fra.me.REG[0] = p0;
711 /* ../lib/standard/collection/array.nit:139 */
712 fra.me.REG[0] = NEW_ArrayIterator_standard___collection___array___ArrayIterator___init(fra.me.REG[0]);
713 goto label1;
714 label1: while(0);
715 stack_frame_head = fra.me.prev;
716 return fra.me.REG[0];
717 }
718 val_t standard___collection___array___AbstractArrayRead_____eqeq(val_t p0, val_t p1){
719 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
720 val_t REGB0;
721 val_t REGB1;
722 val_t REGB2;
723 val_t REGB3;
724 val_t REGB4;
725 val_t tmp;
726 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
727 fra.me.file = LOCATE_standard___collection___array;
728 fra.me.line = 141;
729 fra.me.meth = LOCATE_standard___collection___array___AbstractArrayRead_____eqeq;
730 fra.me.has_broke = 0;
731 fra.me.REG_size = 4;
732 fra.me.nitni_local_ref_head = NULL;
733 fra.me.REG[0] = NIT_NULL;
734 fra.me.REG[1] = NIT_NULL;
735 fra.me.REG[2] = NIT_NULL;
736 fra.me.REG[3] = NIT_NULL;
737 fra.me.REG[0] = p0;
738 fra.me.REG[1] = p1;
739 /* ../lib/standard/collection/array.nit:144 */
740 REGB0 = TAG_Bool((fra.me.REG[1]!=NIT_NULL) && VAL_ISA(fra.me.REG[1], COLOR_standard___collection___array___AbstractArray, ID_standard___collection___array___AbstractArray)) /*cast AbstractArray[E]*/;
741 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
742 if (UNTAG_Bool(REGB0)) {
743 REGB0 = TAG_Bool(true);
744 } else {
745 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
746 REGB0 = REGB1;
747 }
748 if (UNTAG_Bool(REGB0)) {
749 REGB0 = TAG_Bool(false);
750 goto label1;
751 }
752 /* ../lib/standard/collection/array.nit:24 */
753 REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
754 if (UNTAG_Bool(REGB1)) {
755 } else {
756 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
757 }
758 REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0]);
759 /* ../lib/standard/collection/array.nit:146 */
760 REGB2 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
761 if (UNTAG_Bool(REGB2)) {
762 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 146);
763 }
764 /* ../lib/standard/collection/array.nit:24 */
765 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1])!=NIT_NULL);
766 if (UNTAG_Bool(REGB2)) {
767 } else {
768 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
769 }
770 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1]);
771 /* ../lib/standard/collection/array.nit:146 */
772 REGB3 = TAG_Bool(IS_EQUAL_OO(REGB2,REGB1));
773 if (UNTAG_Bool(REGB3)) {
774 } else {
775 /* ../lib/standard/kernel.nit:227 */
776 REGB2 = TAG_Bool((REGB2)==(REGB1));
777 /* ../lib/standard/collection/array.nit:146 */
778 REGB3 = REGB2;
779 }
780 REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
781 if (UNTAG_Bool(REGB3)) {
782 REGB3 = TAG_Bool(false);
783 REGB0 = REGB3;
784 goto label1;
785 }
786 /* ../lib/standard/collection/array.nit:147 */
787 REGB3 = TAG_Int(0);
788 /* ../lib/standard/collection/array.nit:148 */
789 while(1) {
790 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB3), VTID_standard___kernel___Comparable___OTHER(REGB3))) /*cast OTHER*/;
791 if (UNTAG_Bool(REGB2)) {
792 } else {
793 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
794 }
795 /* ../lib/standard/kernel.nit:232 */
796 REGB2 = TAG_Bool(UNTAG_Int(REGB3)<UNTAG_Int(REGB1));
797 /* ../lib/standard/collection/array.nit:148 */
798 if (UNTAG_Bool(REGB2)) {
799 /* ../lib/standard/collection/array.nit:149 */
800 fra.me.REG[2] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra.me.REG[0])(fra.me.REG[0], REGB3);
801 REGB2 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
802 if (UNTAG_Bool(REGB2)) {
803 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 149);
804 }
805 fra.me.REG[3] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra.me.REG[1])(fra.me.REG[1], REGB3);
806 REGB2 = TAG_Bool(IS_EQUAL_NN(fra.me.REG[2],fra.me.REG[3]));
807 if (UNTAG_Bool(REGB2)) {
808 } else {
809 REGB4 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
810 if (UNTAG_Bool(REGB4)) {
811 REGB4 = TAG_Bool(false);
812 REGB2 = REGB4;
813 } else {
814 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
815 REGB2 = REGB4;
816 }
817 }
818 REGB2 = TAG_Bool(!UNTAG_Bool(REGB2));
819 if (UNTAG_Bool(REGB2)) {
820 REGB2 = TAG_Bool(false);
821 REGB0 = REGB2;
822 goto label1;
823 }
824 /* ../lib/standard/collection/array.nit:150 */
825 REGB2 = TAG_Int(1);
826 /* ../lib/standard/kernel.nit:235 */
827 REGB2 = TAG_Int(UNTAG_Int(REGB3)+UNTAG_Int(REGB2));
828 /* ../lib/standard/collection/array.nit:150 */
829 REGB3 = REGB2;
830 } else {
831 /* ../lib/standard/collection/array.nit:148 */
832 goto label2;
833 }
834 }
835 label2: while(0);
836 /* ../lib/standard/collection/array.nit:152 */
837 REGB3 = TAG_Bool(true);
838 REGB0 = REGB3;
839 goto label1;
840 label1: while(0);
841 stack_frame_head = fra.me.prev;
842 return REGB0;
843 }
844 void standard___collection___array___AbstractArrayRead___init(val_t p0, int* init_table){
845 int itpos0 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_standard___collection___array___AbstractArrayRead].i;
846 struct {struct stack_frame_t me;} fra;
847 val_t tmp;
848 if (init_table[itpos0]) return;
849 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
850 fra.me.file = LOCATE_standard___collection___array;
851 fra.me.line = 0;
852 fra.me.meth = LOCATE_standard___collection___array___AbstractArrayRead___init;
853 fra.me.has_broke = 0;
854 fra.me.REG_size = 0;
855 fra.me.nitni_local_ref_head = NULL;
856 stack_frame_head = fra.me.prev;
857 init_table[itpos0] = 1;
858 return;
859 }
860 void standard___collection___array___AbstractArray___enlarge(val_t p0, val_t p1){
861 struct {struct stack_frame_t me;} fra;
862 val_t tmp;
863 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
864 fra.me.file = LOCATE_standard___collection___array;
865 fra.me.line = 161;
866 fra.me.meth = LOCATE_standard___collection___array___AbstractArray___enlarge;
867 fra.me.has_broke = 0;
868 fra.me.REG_size = 0;
869 fra.me.nitni_local_ref_head = NULL;
870 /* ../lib/standard/collection/array.nit:161 */
871 nit_abort("Deferred method called", NULL, LOCATE_standard___collection___array, 161);
872 stack_frame_head = fra.me.prev;
873 return;
874 }
875 void standard___collection___array___AbstractArray___push(val_t p0, val_t p1){
876 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
877 val_t tmp;
878 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
879 fra.me.file = LOCATE_standard___collection___array;
880 fra.me.line = 166;
881 fra.me.meth = LOCATE_standard___collection___array___AbstractArray___push;
882 fra.me.has_broke = 0;
883 fra.me.REG_size = 2;
884 fra.me.nitni_local_ref_head = NULL;
885 fra.me.REG[0] = NIT_NULL;
886 fra.me.REG[1] = NIT_NULL;
887 fra.me.REG[0] = p0;
888 fra.me.REG[1] = p1;
889 /* ../lib/standard/collection/array.nit:166 */
890 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
891 stack_frame_head = fra.me.prev;
892 return;
893 }
894 val_t standard___collection___array___AbstractArray___pop(val_t p0){
895 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
896 val_t REGB0;
897 val_t REGB1;
898 val_t tmp;
899 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
900 fra.me.file = LOCATE_standard___collection___array;
901 fra.me.line = 168;
902 fra.me.meth = LOCATE_standard___collection___array___AbstractArray___pop;
903 fra.me.has_broke = 0;
904 fra.me.REG_size = 2;
905 fra.me.nitni_local_ref_head = NULL;
906 fra.me.REG[0] = NIT_NULL;
907 fra.me.REG[1] = NIT_NULL;
908 fra.me.REG[0] = p0;
909 /* ../lib/standard/collection/array.nit:170 */
910 REGB0 = CALL_standard___collection___abstract_collection___Collection___is_empty(fra.me.REG[0])(fra.me.REG[0]);
911 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
912 if (UNTAG_Bool(REGB0)) {
913 } else {
914 nit_abort("Assert '%s' failed", "not_empty", LOCATE_standard___collection___array, 170);
915 }
916 /* ../lib/standard/collection/array.nit:171 */
917 fra.me.REG[1] = CALL_standard___collection___abstract_collection___SequenceRead___last(fra.me.REG[0])(fra.me.REG[0]);
918 /* ../lib/standard/collection/array.nit:172 */
919 REGB0 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0]);
920 REGB1 = TAG_Int(1);
921 /* ../lib/standard/kernel.nit:237 */
922 REGB1 = TAG_Int(UNTAG_Int(REGB0)-UNTAG_Int(REGB1));
923 /* ../lib/standard/collection/array.nit:172 */
924 ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0]) = REGB1;
925 /* ../lib/standard/collection/array.nit:173 */
926 goto label1;
927 label1: while(0);
928 stack_frame_head = fra.me.prev;
929 return fra.me.REG[1];
930 }
931 val_t standard___collection___array___AbstractArray___shift(val_t p0){
932 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
933 val_t REGB0;
934 val_t REGB1;
935 val_t REGB2;
936 val_t tmp;
937 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
938 fra.me.file = LOCATE_standard___collection___array;
939 fra.me.line = 176;
940 fra.me.meth = LOCATE_standard___collection___array___AbstractArray___shift;
941 fra.me.has_broke = 0;
942 fra.me.REG_size = 3;
943 fra.me.nitni_local_ref_head = NULL;
944 fra.me.REG[0] = NIT_NULL;
945 fra.me.REG[1] = NIT_NULL;
946 fra.me.REG[2] = NIT_NULL;
947 fra.me.REG[0] = p0;
948 /* ../lib/standard/collection/array.nit:178 */
949 REGB0 = CALL_standard___collection___abstract_collection___Collection___is_empty(fra.me.REG[0])(fra.me.REG[0]);
950 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
951 if (UNTAG_Bool(REGB0)) {
952 } else {
953 nit_abort("Assert '%s' failed", "not_empty", LOCATE_standard___collection___array, 178);
954 }
955 /* ../lib/standard/collection/array.nit:179 */
956 fra.me.REG[1] = CALL_standard___collection___abstract_collection___Collection___first(fra.me.REG[0])(fra.me.REG[0]);
957 /* ../lib/standard/collection/array.nit:180 */
958 REGB0 = TAG_Int(1);
959 /* ../lib/standard/collection/array.nit:24 */
960 REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
961 if (UNTAG_Bool(REGB1)) {
962 } else {
963 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
964 }
965 REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0]);
966 /* ../lib/standard/collection/array.nit:182 */
967 while(1) {
968 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
969 if (UNTAG_Bool(REGB2)) {
970 } else {
971 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
972 }
973 /* ../lib/standard/kernel.nit:232 */
974 REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
975 /* ../lib/standard/collection/array.nit:182 */
976 if (UNTAG_Bool(REGB2)) {
977 /* ../lib/standard/collection/array.nit:183 */
978 REGB2 = TAG_Int(1);
979 /* ../lib/standard/kernel.nit:237 */
980 REGB2 = TAG_Int(UNTAG_Int(REGB0)-UNTAG_Int(REGB2));
981 /* ../lib/standard/collection/array.nit:183 */
982 fra.me.REG[2] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra.me.REG[0])(fra.me.REG[0], REGB0);
983 CALL_standard___collection___abstract_collection___Sequence_____braeq(fra.me.REG[0])(fra.me.REG[0], REGB2, fra.me.REG[2]);
984 /* ../lib/standard/collection/array.nit:184 */
985 REGB2 = TAG_Int(1);
986 /* ../lib/standard/kernel.nit:235 */
987 REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
988 /* ../lib/standard/collection/array.nit:184 */
989 REGB0 = REGB2;
990 } else {
991 /* ../lib/standard/collection/array.nit:182 */
992 goto label1;
993 }
994 }
995 label1: while(0);
996 /* ../lib/standard/collection/array.nit:186 */
997 REGB0 = TAG_Int(1);
998 /* ../lib/standard/kernel.nit:237 */
999 REGB0 = TAG_Int(UNTAG_Int(REGB1)-UNTAG_Int(REGB0));
1000 /* ../lib/standard/collection/array.nit:186 */
1001 ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0]) = REGB0;
1002 /* ../lib/standard/collection/array.nit:187 */
1003 goto label2;
1004 label2: while(0);
1005 stack_frame_head = fra.me.prev;
1006 return fra.me.REG[1];
1007 }
1008 void standard___collection___array___AbstractArray___unshift(val_t p0, val_t p1){
1009 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
1010 val_t REGB0;
1011 val_t REGB1;
1012 val_t REGB2;
1013 val_t tmp;
1014 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1015 fra.me.file = LOCATE_standard___collection___array;
1016 fra.me.line = 190;
1017 fra.me.meth = LOCATE_standard___collection___array___AbstractArray___unshift;
1018 fra.me.has_broke = 0;
1019 fra.me.REG_size = 3;
1020 fra.me.nitni_local_ref_head = NULL;
1021 fra.me.REG[0] = NIT_NULL;
1022 fra.me.REG[1] = NIT_NULL;
1023 fra.me.REG[2] = NIT_NULL;
1024 fra.me.REG[0] = p0;
1025 fra.me.REG[1] = p1;
1026 /* ../lib/standard/collection/array.nit:24 */
1027 REGB0 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
1028 if (UNTAG_Bool(REGB0)) {
1029 } else {
1030 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
1031 }
1032 REGB0 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0]);
1033 /* ../lib/standard/collection/array.nit:192 */
1034 REGB1 = TAG_Int(1);
1035 /* ../lib/standard/kernel.nit:237 */
1036 REGB1 = TAG_Int(UNTAG_Int(REGB0)-UNTAG_Int(REGB1));
1037 /* ../lib/standard/collection/array.nit:193 */
1038 while(1) {
1039 REGB0 = TAG_Int(0);
1040 REGB2 = TAG_Bool(VAL_ISA(REGB0, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
1041 if (UNTAG_Bool(REGB2)) {
1042 } else {
1043 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
1044 }
1045 /* ../lib/standard/kernel.nit:234 */
1046 REGB0 = TAG_Bool(UNTAG_Int(REGB1)>UNTAG_Int(REGB0));
1047 /* ../lib/standard/collection/array.nit:193 */
1048 if (UNTAG_Bool(REGB0)) {
1049 /* ../lib/standard/collection/array.nit:194 */
1050 REGB0 = TAG_Int(1);
1051 /* ../lib/standard/kernel.nit:235 */
1052 REGB0 = TAG_Int(UNTAG_Int(REGB1)+UNTAG_Int(REGB0));
1053 /* ../lib/standard/collection/array.nit:194 */
1054 fra.me.REG[2] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra.me.REG[0])(fra.me.REG[0], REGB1);
1055 CALL_standard___collection___abstract_collection___Sequence_____braeq(fra.me.REG[0])(fra.me.REG[0], REGB0, fra.me.REG[2]);
1056 /* ../lib/standard/collection/array.nit:195 */
1057 REGB0 = TAG_Int(1);
1058 /* ../lib/standard/kernel.nit:237 */
1059 REGB0 = TAG_Int(UNTAG_Int(REGB1)-UNTAG_Int(REGB0));
1060 /* ../lib/standard/collection/array.nit:195 */
1061 REGB1 = REGB0;
1062 } else {
1063 /* ../lib/standard/collection/array.nit:193 */
1064 goto label1;
1065 }
1066 }
1067 label1: while(0);
1068 /* ../lib/standard/collection/array.nit:197 */
1069 REGB1 = TAG_Int(0);
1070 CALL_standard___collection___abstract_collection___Sequence_____braeq(fra.me.REG[0])(fra.me.REG[0], REGB1, fra.me.REG[1]);
1071 stack_frame_head = fra.me.prev;
1072 return;
1073 }
1074 void standard___collection___array___AbstractArray___insert(val_t p0, val_t p1, val_t p2){
1075 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
1076 val_t REGB0;
1077 val_t REGB1;
1078 val_t REGB2;
1079 val_t tmp;
1080 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1081 fra.me.file = LOCATE_standard___collection___array;
1082 fra.me.line = 200;
1083 fra.me.meth = LOCATE_standard___collection___array___AbstractArray___insert;
1084 fra.me.has_broke = 0;
1085 fra.me.REG_size = 2;
1086 fra.me.nitni_local_ref_head = NULL;
1087 fra.me.REG[0] = NIT_NULL;
1088 fra.me.REG[1] = NIT_NULL;
1089 fra.me.REG[0] = p0;
1090 fra.me.REG[1] = p1;
1091 REGB0 = p2;
1092 /* ../lib/standard/collection/array.nit:24 */
1093 REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
1094 if (UNTAG_Bool(REGB1)) {
1095 } else {
1096 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
1097 }
1098 REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0]);
1099 /* ../lib/standard/collection/array.nit:207 */
1100 REGB2 = TAG_Int(1);
1101 /* ../lib/standard/kernel.nit:235 */
1102 REGB2 = TAG_Int(UNTAG_Int(REGB1)+UNTAG_Int(REGB2));
1103 /* ../lib/standard/collection/array.nit:207 */
1104 CALL_standard___collection___array___AbstractArray___enlarge(fra.me.REG[0])(fra.me.REG[0], REGB2);
1105 /* ../lib/standard/collection/array.nit:24 */
1106 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
1107 if (UNTAG_Bool(REGB2)) {
1108 } else {
1109 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
1110 }
1111 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0]);
1112 /* ../lib/standard/kernel.nit:237 */
1113 REGB2 = TAG_Int(UNTAG_Int(REGB2)-UNTAG_Int(REGB0));
1114 /* ../lib/standard/collection/array.nit:208 */
1115 REGB1 = TAG_Int(1);
1116 /* ../lib/standard/kernel.nit:235 */
1117 REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
1118 /* ../lib/standard/collection/array.nit:208 */
1119 CALL_standard___collection___array___AbstractArrayRead___copy_to(fra.me.REG[0])(fra.me.REG[0], REGB0, REGB2, fra.me.REG[0], REGB1);
1120 /* ../lib/standard/collection/array.nit:209 */
1121 CALL_standard___collection___abstract_collection___Sequence_____braeq(fra.me.REG[0])(fra.me.REG[0], REGB0, fra.me.REG[1]);
1122 stack_frame_head = fra.me.prev;
1123 return;
1124 }
1125 void standard___collection___array___AbstractArray___add(val_t p0, val_t p1){
1126 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
1127 val_t REGB0;
1128 val_t tmp;
1129 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1130 fra.me.file = LOCATE_standard___collection___array;
1131 fra.me.line = 212;
1132 fra.me.meth = LOCATE_standard___collection___array___AbstractArray___add;
1133 fra.me.has_broke = 0;
1134 fra.me.REG_size = 2;
1135 fra.me.nitni_local_ref_head = NULL;
1136 fra.me.REG[0] = NIT_NULL;
1137 fra.me.REG[1] = NIT_NULL;
1138 fra.me.REG[0] = p0;
1139 fra.me.REG[1] = p1;
1140 /* ../lib/standard/collection/array.nit:24 */
1141 REGB0 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
1142 if (UNTAG_Bool(REGB0)) {
1143 } else {
1144 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
1145 }
1146 REGB0 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0]);
1147 /* ../lib/standard/collection/array.nit:212 */
1148 CALL_standard___collection___abstract_collection___Sequence_____braeq(fra.me.REG[0])(fra.me.REG[0], REGB0, fra.me.REG[1]);
1149 stack_frame_head = fra.me.prev;
1150 return;
1151 }
1152 void standard___collection___array___AbstractArray___clear(val_t p0){
1153 struct {struct stack_frame_t me;} fra;
1154 val_t REGB0;
1155 val_t tmp;
1156 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1157 fra.me.file = LOCATE_standard___collection___array;
1158 fra.me.line = 214;
1159 fra.me.meth = LOCATE_standard___collection___array___AbstractArray___clear;
1160 fra.me.has_broke = 0;
1161 fra.me.REG_size = 1;
1162 fra.me.nitni_local_ref_head = NULL;
1163 fra.me.REG[0] = NIT_NULL;
1164 fra.me.REG[0] = p0;
1165 /* ../lib/standard/collection/array.nit:214 */
1166 REGB0 = TAG_Int(0);
1167 ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0]) = REGB0;
1168 stack_frame_head = fra.me.prev;
1169 return;
1170 }
1171 void standard___collection___array___AbstractArray___remove(val_t p0, val_t p1){
1172 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
1173 val_t REGB0;
1174 val_t tmp;
1175 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1176 fra.me.file = LOCATE_standard___collection___array;
1177 fra.me.line = 216;
1178 fra.me.meth = LOCATE_standard___collection___array___AbstractArray___remove;
1179 fra.me.has_broke = 0;
1180 fra.me.REG_size = 2;
1181 fra.me.nitni_local_ref_head = NULL;
1182 fra.me.REG[0] = NIT_NULL;
1183 fra.me.REG[1] = NIT_NULL;
1184 fra.me.REG[0] = p0;
1185 fra.me.REG[1] = p1;
1186 /* ../lib/standard/collection/array.nit:216 */
1187 REGB0 = CALL_standard___collection___abstract_collection___SequenceRead___index_of(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
1188 CALL_standard___collection___abstract_collection___Sequence___remove_at(fra.me.REG[0])(fra.me.REG[0], REGB0);
1189 stack_frame_head = fra.me.prev;
1190 return;
1191 }
1192 void standard___collection___array___AbstractArray___remove_all(val_t p0, val_t p1){
1193 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
1194 val_t REGB0;
1195 val_t REGB1;
1196 val_t REGB2;
1197 val_t tmp;
1198 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1199 fra.me.file = LOCATE_standard___collection___array;
1200 fra.me.line = 218;
1201 fra.me.meth = LOCATE_standard___collection___array___AbstractArray___remove_all;
1202 fra.me.has_broke = 0;
1203 fra.me.REG_size = 2;
1204 fra.me.nitni_local_ref_head = NULL;
1205 fra.me.REG[0] = NIT_NULL;
1206 fra.me.REG[1] = NIT_NULL;
1207 fra.me.REG[0] = p0;
1208 fra.me.REG[1] = p1;
1209 /* ../lib/standard/collection/array.nit:220 */
1210 REGB0 = CALL_standard___collection___abstract_collection___SequenceRead___index_of(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
1211 /* ../lib/standard/collection/array.nit:221 */
1212 while(1) {
1213 REGB1 = TAG_Int(0);
1214 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
1215 if (UNTAG_Bool(REGB2)) {
1216 } else {
1217 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
1218 }
1219 /* ../lib/standard/kernel.nit:233 */
1220 REGB1 = TAG_Bool(UNTAG_Int(REGB0)>=UNTAG_Int(REGB1));
1221 /* ../lib/standard/collection/array.nit:221 */
1222 if (UNTAG_Bool(REGB1)) {
1223 /* ../lib/standard/collection/array.nit:222 */
1224 CALL_standard___collection___abstract_collection___Sequence___remove_at(fra.me.REG[0])(fra.me.REG[0], REGB0);
1225 /* ../lib/standard/collection/array.nit:223 */
1226 REGB1 = CALL_standard___collection___array___AbstractArrayRead___index_of_from(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], REGB0);
1227 REGB0 = REGB1;
1228 } else {
1229 /* ../lib/standard/collection/array.nit:221 */
1230 goto label1;
1231 }
1232 }
1233 label1: while(0);
1234 stack_frame_head = fra.me.prev;
1235 return;
1236 }
1237 void standard___collection___array___AbstractArray___remove_at(val_t p0, val_t p1){
1238 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
1239 val_t REGB0;
1240 val_t REGB1;
1241 val_t REGB2;
1242 val_t REGB3;
1243 val_t tmp;
1244 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1245 fra.me.file = LOCATE_standard___collection___array;
1246 fra.me.line = 227;
1247 fra.me.meth = LOCATE_standard___collection___array___AbstractArray___remove_at;
1248 fra.me.has_broke = 0;
1249 fra.me.REG_size = 2;
1250 fra.me.nitni_local_ref_head = NULL;
1251 fra.me.REG[0] = NIT_NULL;
1252 fra.me.REG[1] = NIT_NULL;
1253 fra.me.REG[0] = p0;
1254 REGB0 = p1;
1255 /* ../lib/standard/collection/array.nit:24 */
1256 REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
1257 if (UNTAG_Bool(REGB1)) {
1258 } else {
1259 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
1260 }
1261 REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0]);
1262 /* ../lib/standard/collection/array.nit:230 */
1263 REGB2 = TAG_Int(0);
1264 REGB3 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
1265 if (UNTAG_Bool(REGB3)) {
1266 } else {
1267 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
1268 }
1269 /* ../lib/standard/kernel.nit:233 */
1270 REGB2 = TAG_Bool(UNTAG_Int(REGB0)>=UNTAG_Int(REGB2));
1271 /* ../lib/standard/collection/array.nit:230 */
1272 if (UNTAG_Bool(REGB2)) {
1273 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
1274 if (UNTAG_Bool(REGB2)) {
1275 } else {
1276 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
1277 }
1278 /* ../lib/standard/kernel.nit:232 */
1279 REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
1280 } else {
1281 /* ../lib/standard/collection/array.nit:230 */
1282 REGB3 = TAG_Bool(false);
1283 REGB2 = REGB3;
1284 }
1285 if (UNTAG_Bool(REGB2)) {
1286 /* ../lib/standard/collection/array.nit:231 */
1287 REGB2 = TAG_Int(1);
1288 /* ../lib/standard/kernel.nit:235 */
1289 REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
1290 /* ../lib/standard/collection/array.nit:232 */
1291 while(1) {
1292 REGB0 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB2), VTID_standard___kernel___Comparable___OTHER(REGB2))) /*cast OTHER*/;
1293 if (UNTAG_Bool(REGB0)) {
1294 } else {
1295 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
1296 }
1297 /* ../lib/standard/kernel.nit:232 */
1298 REGB0 = TAG_Bool(UNTAG_Int(REGB2)<UNTAG_Int(REGB1));
1299 /* ../lib/standard/collection/array.nit:232 */
1300 if (UNTAG_Bool(REGB0)) {
1301 /* ../lib/standard/collection/array.nit:233 */
1302 REGB0 = TAG_Int(1);
1303 /* ../lib/standard/kernel.nit:237 */
1304 REGB0 = TAG_Int(UNTAG_Int(REGB2)-UNTAG_Int(REGB0));
1305 /* ../lib/standard/collection/array.nit:233 */
1306 fra.me.REG[1] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra.me.REG[0])(fra.me.REG[0], REGB2);
1307 CALL_standard___collection___abstract_collection___Sequence_____braeq(fra.me.REG[0])(fra.me.REG[0], REGB0, fra.me.REG[1]);
1308 /* ../lib/standard/collection/array.nit:234 */
1309 REGB0 = TAG_Int(1);
1310 /* ../lib/standard/kernel.nit:235 */
1311 REGB0 = TAG_Int(UNTAG_Int(REGB2)+UNTAG_Int(REGB0));
1312 /* ../lib/standard/collection/array.nit:234 */
1313 REGB2 = REGB0;
1314 } else {
1315 /* ../lib/standard/collection/array.nit:232 */
1316 goto label1;
1317 }
1318 }
1319 label1: while(0);
1320 /* ../lib/standard/collection/array.nit:236 */
1321 REGB2 = TAG_Int(1);
1322 /* ../lib/standard/kernel.nit:237 */
1323 REGB2 = TAG_Int(UNTAG_Int(REGB1)-UNTAG_Int(REGB2));
1324 /* ../lib/standard/collection/array.nit:236 */
1325 ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0]) = REGB2;
1326 }
1327 stack_frame_head = fra.me.prev;
1328 return;
1329 }
1330 void standard___collection___array___AbstractArray___swap_at(val_t p0, val_t p1, val_t p2){
1331 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
1332 val_t REGB0;
1333 val_t REGB1;
1334 val_t tmp;
1335 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1336 fra.me.file = LOCATE_standard___collection___array;
1337 fra.me.line = 240;
1338 fra.me.meth = LOCATE_standard___collection___array___AbstractArray___swap_at;
1339 fra.me.has_broke = 0;
1340 fra.me.REG_size = 2;
1341 fra.me.nitni_local_ref_head = NULL;
1342 fra.me.REG[0] = NIT_NULL;
1343 fra.me.REG[1] = NIT_NULL;
1344 fra.me.REG[0] = p0;
1345 REGB0 = p1;
1346 REGB1 = p2;
1347 /* ../lib/standard/collection/array.nit:247 */
1348 fra.me.REG[1] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra.me.REG[0])(fra.me.REG[0], REGB0);
1349 /* ../lib/standard/collection/array.nit:248 */
1350 CALL_standard___collection___abstract_collection___Sequence_____braeq(fra.me.REG[0])(fra.me.REG[0], REGB0, REGB1);
1351 /* ../lib/standard/collection/array.nit:249 */
1352 CALL_standard___collection___abstract_collection___Sequence_____braeq(fra.me.REG[0])(fra.me.REG[0], REGB1, fra.me.REG[1]);
1353 stack_frame_head = fra.me.prev;
1354 return;
1355 }
1356 void standard___collection___array___Array___iterate(val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
1357 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
1358 val_t REGB0;
1359 val_t REGB1;
1360 val_t REGB2;
1361 fun_t CREG[1];
1362 val_t tmp;
1363 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1364 fra.me.file = LOCATE_standard___collection___array;
1365 fra.me.line = 266;
1366 fra.me.meth = LOCATE_standard___collection___array___Array___iterate;
1367 fra.me.has_broke = 0;
1368 fra.me.REG_size = 3;
1369 fra.me.nitni_local_ref_head = NULL;
1370 fra.me.REG[0] = NIT_NULL;
1371 fra.me.REG[1] = NIT_NULL;
1372 fra.me.REG[2] = NIT_NULL;
1373 fra.me.closure_ctx = closctx_param;
1374 fra.me.closure_funs = CREG;
1375 fra.me.REG[0] = p0;
1376 CREG[0] = clos_fun0;
1377 /* ../lib/standard/collection/array.nit:269 */
1378 REGB0 = TAG_Int(0);
1379 /* ../lib/standard/collection/array.nit:270 */
1380 REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
1381 if (UNTAG_Bool(REGB1)) {
1382 } else {
1383 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 270);
1384 }
1385 REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0]);
1386 /* ../lib/standard/collection/array.nit:271 */
1387 fra.me.REG[1] = ATTR_standard___collection___array___Array____items(fra.me.REG[0]);
1388 /* ../lib/standard/collection/array.nit:272 */
1389 while(1) {
1390 /* ../lib/standard/collection/array.nit:24 */
1391 REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
1392 if (UNTAG_Bool(REGB1)) {
1393 } else {
1394 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
1395 }
1396 REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0]);
1397 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
1398 if (UNTAG_Bool(REGB2)) {
1399 } else {
1400 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
1401 }
1402 /* ../lib/standard/kernel.nit:232 */
1403 REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
1404 /* ../lib/standard/collection/array.nit:272 */
1405 if (UNTAG_Bool(REGB1)) {
1406 /* ../lib/standard/collection/array.nit:273 */
1407 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
1408 if (UNTAG_Bool(REGB1)) {
1409 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 273);
1410 }
1411 /* ../lib/standard/collection/array.nit:718 */
1412 fra.me.REG[2] = ((Nit_NativeArray)fra.me.REG[1])->val[UNTAG_Int(REGB0)];
1413 /* ../lib/standard/collection/array.nit:273 */
1414 ((void (*)(struct stack_frame_t *, val_t))(CREG[0]))(closctx_param, fra.me.REG[2]);
1415 if (closctx_param->has_broke) {
1416 goto label1;
1417 }
1418 /* ../lib/standard/collection/array.nit:274 */
1419 REGB1 = TAG_Int(1);
1420 /* ../lib/standard/kernel.nit:235 */
1421 REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
1422 /* ../lib/standard/collection/array.nit:274 */
1423 REGB0 = REGB1;
1424 } else {
1425 /* ../lib/standard/collection/array.nit:272 */
1426 goto label2;
1427 }
1428 }
1429 label2: while(0);
1430 label1: while(0);
1431 stack_frame_head = fra.me.prev;
1432 return;
1433 }
1434 val_t standard___collection___array___Array_____bra(val_t p0, val_t p1){
1435 struct {struct stack_frame_t me;} fra;
1436 val_t REGB0;
1437 val_t REGB1;
1438 val_t REGB2;
1439 val_t tmp;
1440 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1441 fra.me.file = LOCATE_standard___collection___array;
1442 fra.me.line = 278;
1443 fra.me.meth = LOCATE_standard___collection___array___Array_____bra;
1444 fra.me.has_broke = 0;
1445 fra.me.REG_size = 1;
1446 fra.me.nitni_local_ref_head = NULL;
1447 fra.me.REG[0] = NIT_NULL;
1448 fra.me.REG[0] = p0;
1449 REGB0 = p1;
1450 /* ../lib/standard/collection/array.nit:280 */
1451 REGB1 = TAG_Int(0);
1452 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
1453 if (UNTAG_Bool(REGB2)) {
1454 } else {
1455 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
1456 }
1457 /* ../lib/standard/kernel.nit:233 */
1458 REGB1 = TAG_Bool(UNTAG_Int(REGB0)>=UNTAG_Int(REGB1));
1459 /* ../lib/standard/collection/array.nit:280 */
1460 if (UNTAG_Bool(REGB1)) {
1461 REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
1462 if (UNTAG_Bool(REGB1)) {
1463 } else {
1464 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
1465 }
1466 REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0]);
1467 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
1468 if (UNTAG_Bool(REGB2)) {
1469 } else {
1470 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
1471 }
1472 /* ../lib/standard/kernel.nit:232 */
1473 REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
1474 } else {
1475 /* ../lib/standard/collection/array.nit:280 */
1476 REGB2 = TAG_Bool(false);
1477 REGB1 = REGB2;
1478 }
1479 if (UNTAG_Bool(REGB1)) {
1480 } else {
1481 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
1482 }
1483 /* ../lib/standard/collection/array.nit:281 */
1484 fra.me.REG[0] = ATTR_standard___collection___array___Array____items(fra.me.REG[0]);
1485 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
1486 if (UNTAG_Bool(REGB1)) {
1487 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
1488 }
1489 /* ../lib/standard/collection/array.nit:718 */
1490 fra.me.REG[0] = ((Nit_NativeArray)fra.me.REG[0])->val[UNTAG_Int(REGB0)];
1491 /* ../lib/standard/collection/array.nit:281 */
1492 goto label1;
1493 label1: while(0);
1494 stack_frame_head = fra.me.prev;
1495 return fra.me.REG[0];
1496 }
1497 void standard___collection___array___Array_____braeq(val_t p0, val_t p1, val_t p2){
1498 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
1499 val_t REGB0;
1500 val_t REGB1;
1501 val_t REGB2;
1502 val_t tmp;
1503 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1504 fra.me.file = LOCATE_standard___collection___array;
1505 fra.me.line = 284;
1506 fra.me.meth = LOCATE_standard___collection___array___Array_____braeq;
1507 fra.me.has_broke = 0;
1508 fra.me.REG_size = 2;
1509 fra.me.nitni_local_ref_head = NULL;
1510 fra.me.REG[0] = NIT_NULL;
1511 fra.me.REG[1] = NIT_NULL;
1512 fra.me.REG[0] = p0;
1513 REGB0 = p1;
1514 fra.me.REG[1] = p2;
1515 /* ../lib/standard/collection/array.nit:286 */
1516 REGB1 = TAG_Int(0);
1517 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
1518 if (UNTAG_Bool(REGB2)) {
1519 } else {
1520 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
1521 }
1522 /* ../lib/standard/kernel.nit:233 */
1523 REGB1 = TAG_Bool(UNTAG_Int(REGB0)>=UNTAG_Int(REGB1));
1524 /* ../lib/standard/collection/array.nit:286 */
1525 if (UNTAG_Bool(REGB1)) {
1526 REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
1527 if (UNTAG_Bool(REGB1)) {
1528 } else {
1529 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 286);
1530 }
1531 REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0]);
1532 REGB2 = TAG_Int(1);
1533 /* ../lib/standard/kernel.nit:235 */
1534 REGB2 = TAG_Int(UNTAG_Int(REGB1)+UNTAG_Int(REGB2));
1535 REGB1 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
1536 if (UNTAG_Bool(REGB1)) {
1537 } else {
1538 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
1539 }
1540 /* ../lib/standard/kernel.nit:232 */
1541 REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB2));
1542 } else {
1543 /* ../lib/standard/collection/array.nit:286 */
1544 REGB1 = TAG_Bool(false);
1545 REGB2 = REGB1;
1546 }
1547 if (UNTAG_Bool(REGB2)) {
1548 } else {
1549 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 286);
1550 }
1551 /* ../lib/standard/collection/array.nit:287 */
1552 REGB2 = TAG_Bool(ATTR_standard___collection___array___Array____capacity(fra.me.REG[0])!=NIT_NULL);
1553 if (UNTAG_Bool(REGB2)) {
1554 } else {
1555 nit_abort("Uninitialized attribute %s", "_capacity", LOCATE_standard___collection___array, 287);
1556 }
1557 REGB2 = ATTR_standard___collection___array___Array____capacity(fra.me.REG[0]);
1558 REGB1 = TAG_Bool(VAL_ISA(REGB0, VTCOLOR_standard___kernel___Comparable___OTHER(REGB2), VTID_standard___kernel___Comparable___OTHER(REGB2))) /*cast OTHER*/;
1559 if (UNTAG_Bool(REGB1)) {
1560 } else {
1561 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
1562 }
1563 /* ../lib/standard/kernel.nit:231 */
1564 REGB2 = TAG_Bool(UNTAG_Int(REGB2)<=UNTAG_Int(REGB0));
1565 /* ../lib/standard/collection/array.nit:287 */
1566 if (UNTAG_Bool(REGB2)) {
1567 /* ../lib/standard/collection/array.nit:288 */
1568 REGB2 = TAG_Int(1);
1569 /* ../lib/standard/kernel.nit:235 */
1570 REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
1571 /* ../lib/standard/collection/array.nit:288 */
1572 CALL_standard___collection___array___AbstractArray___enlarge(fra.me.REG[0])(fra.me.REG[0], REGB2);
1573 }
1574 /* ../lib/standard/collection/array.nit:290 */
1575 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
1576 if (UNTAG_Bool(REGB2)) {
1577 } else {
1578 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 290);
1579 }
1580 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0]);
1581 REGB1 = TAG_Bool(VAL_ISA(REGB0, VTCOLOR_standard___kernel___Comparable___OTHER(REGB2), VTID_standard___kernel___Comparable___OTHER(REGB2))) /*cast OTHER*/;
1582 if (UNTAG_Bool(REGB1)) {
1583 } else {
1584 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
1585 }
1586 /* ../lib/standard/kernel.nit:231 */
1587 REGB2 = TAG_Bool(UNTAG_Int(REGB2)<=UNTAG_Int(REGB0));
1588 /* ../lib/standard/collection/array.nit:290 */
1589 if (UNTAG_Bool(REGB2)) {
1590 /* ../lib/standard/collection/array.nit:291 */
1591 REGB2 = TAG_Int(1);
1592 /* ../lib/standard/kernel.nit:235 */
1593 REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
1594 /* ../lib/standard/collection/array.nit:291 */
1595 ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0]) = REGB2;
1596 }
1597 /* ../lib/standard/collection/array.nit:293 */
1598 fra.me.REG[0] = ATTR_standard___collection___array___Array____items(fra.me.REG[0]);
1599 REGB2 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
1600 if (UNTAG_Bool(REGB2)) {
1601 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 293);
1602 }
1603 /* ../lib/standard/collection/array.nit:719 */
1604 ((Nit_NativeArray)fra.me.REG[0])->val[UNTAG_Int(REGB0)]=fra.me.REG[1];
1605 stack_frame_head = fra.me.prev;
1606 return;
1607 }
1608 void standard___collection___array___Array___add(val_t p0, val_t p1){
1609 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
1610 val_t REGB0;
1611 val_t REGB1;
1612 val_t REGB2;
1613 val_t tmp;
1614 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1615 fra.me.file = LOCATE_standard___collection___array;
1616 fra.me.line = 296;
1617 fra.me.meth = LOCATE_standard___collection___array___Array___add;
1618 fra.me.has_broke = 0;
1619 fra.me.REG_size = 2;
1620 fra.me.nitni_local_ref_head = NULL;
1621 fra.me.REG[0] = NIT_NULL;
1622 fra.me.REG[1] = NIT_NULL;
1623 fra.me.REG[0] = p0;
1624 fra.me.REG[1] = p1;
1625 /* ../lib/standard/collection/array.nit:298 */
1626 REGB0 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
1627 if (UNTAG_Bool(REGB0)) {
1628 } else {
1629 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 298);
1630 }
1631 REGB0 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0]);
1632 /* ../lib/standard/collection/array.nit:299 */
1633 REGB1 = TAG_Bool(ATTR_standard___collection___array___Array____capacity(fra.me.REG[0])!=NIT_NULL);
1634 if (UNTAG_Bool(REGB1)) {
1635 } else {
1636 nit_abort("Uninitialized attribute %s", "_capacity", LOCATE_standard___collection___array, 299);
1637 }
1638 REGB1 = ATTR_standard___collection___array___Array____capacity(fra.me.REG[0]);
1639 REGB2 = TAG_Bool(VAL_ISA(REGB0, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
1640 if (UNTAG_Bool(REGB2)) {
1641 } else {
1642 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
1643 }
1644 /* ../lib/standard/kernel.nit:231 */
1645 REGB1 = TAG_Bool(UNTAG_Int(REGB1)<=UNTAG_Int(REGB0));
1646 /* ../lib/standard/collection/array.nit:299 */
1647 if (UNTAG_Bool(REGB1)) {
1648 /* ../lib/standard/collection/array.nit:300 */
1649 REGB1 = TAG_Int(1);
1650 /* ../lib/standard/kernel.nit:235 */
1651 REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
1652 /* ../lib/standard/collection/array.nit:300 */
1653 CALL_standard___collection___array___AbstractArray___enlarge(fra.me.REG[0])(fra.me.REG[0], REGB1);
1654 }
1655 /* ../lib/standard/collection/array.nit:302 */
1656 REGB1 = TAG_Int(1);
1657 /* ../lib/standard/kernel.nit:235 */
1658 REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
1659 /* ../lib/standard/collection/array.nit:302 */
1660 ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0]) = REGB1;
1661 /* ../lib/standard/collection/array.nit:303 */
1662 fra.me.REG[0] = ATTR_standard___collection___array___Array____items(fra.me.REG[0]);
1663 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
1664 if (UNTAG_Bool(REGB1)) {
1665 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 303);
1666 }
1667 /* ../lib/standard/collection/array.nit:719 */
1668 ((Nit_NativeArray)fra.me.REG[0])->val[UNTAG_Int(REGB0)]=fra.me.REG[1];
1669 stack_frame_head = fra.me.prev;
1670 return;
1671 }
1672 void standard___collection___array___Array___enlarge(val_t p0, val_t p1){
1673 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
1674 val_t REGB0;
1675 val_t REGB1;
1676 val_t REGB2;
1677 val_t REGB3;
1678 val_t tmp;
1679 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1680 fra.me.file = LOCATE_standard___collection___array;
1681 fra.me.line = 306;
1682 fra.me.meth = LOCATE_standard___collection___array___Array___enlarge;
1683 fra.me.has_broke = 0;
1684 fra.me.REG_size = 3;
1685 fra.me.nitni_local_ref_head = NULL;
1686 fra.me.REG[0] = NIT_NULL;
1687 fra.me.REG[1] = NIT_NULL;
1688 fra.me.REG[2] = NIT_NULL;
1689 fra.me.REG[0] = p0;
1690 REGB0 = p1;
1691 /* ../lib/standard/collection/array.nit:308 */
1692 REGB1 = TAG_Bool(ATTR_standard___collection___array___Array____capacity(fra.me.REG[0])!=NIT_NULL);
1693 if (UNTAG_Bool(REGB1)) {
1694 } else {
1695 nit_abort("Uninitialized attribute %s", "_capacity", LOCATE_standard___collection___array, 308);
1696 }
1697 REGB1 = ATTR_standard___collection___array___Array____capacity(fra.me.REG[0]);
1698 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
1699 if (UNTAG_Bool(REGB2)) {
1700 } else {
1701 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
1702 }
1703 /* ../lib/standard/kernel.nit:231 */
1704 REGB2 = TAG_Bool(UNTAG_Int(REGB0)<=UNTAG_Int(REGB1));
1705 /* ../lib/standard/collection/array.nit:309 */
1706 if (UNTAG_Bool(REGB2)) {
1707 goto label1;
1708 }
1709 /* ../lib/standard/collection/array.nit:310 */
1710 while(1) {
1711 REGB2 = TAG_Bool(VAL_ISA(REGB0, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
1712 if (UNTAG_Bool(REGB2)) {
1713 } else {
1714 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
1715 }
1716 /* ../lib/standard/kernel.nit:231 */
1717 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<=UNTAG_Int(REGB0));
1718 /* ../lib/standard/collection/array.nit:310 */
1719 if (UNTAG_Bool(REGB2)) {
1720 REGB2 = TAG_Int(2);
1721 /* ../lib/standard/kernel.nit:238 */
1722 REGB2 = TAG_Int(UNTAG_Int(REGB1)*UNTAG_Int(REGB2));
1723 /* ../lib/standard/collection/array.nit:310 */
1724 REGB3 = TAG_Int(2);
1725 /* ../lib/standard/kernel.nit:235 */
1726 REGB3 = TAG_Int(UNTAG_Int(REGB2)+UNTAG_Int(REGB3));
1727 /* ../lib/standard/collection/array.nit:310 */
1728 REGB1 = REGB3;
1729 } else {
1730 goto label2;
1731 }
1732 }
1733 label2: while(0);
1734 /* ../lib/standard/collection/array.nit:712 */
1735 fra.me.REG[1] = NEW_NativeArray(UNTAG_Int(REGB1), sizeof(val_t));
1736 /* ../lib/standard/collection/array.nit:312 */
1737 REGB0 = TAG_Bool(ATTR_standard___collection___array___Array____capacity(fra.me.REG[0])!=NIT_NULL);
1738 if (UNTAG_Bool(REGB0)) {
1739 } else {
1740 nit_abort("Uninitialized attribute %s", "_capacity", LOCATE_standard___collection___array, 312);
1741 }
1742 REGB0 = ATTR_standard___collection___array___Array____capacity(fra.me.REG[0]);
1743 REGB3 = TAG_Int(0);
1744 REGB2 = TAG_Bool(VAL_ISA(REGB3, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
1745 if (UNTAG_Bool(REGB2)) {
1746 } else {
1747 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
1748 }
1749 /* ../lib/standard/kernel.nit:234 */
1750 REGB3 = TAG_Bool(UNTAG_Int(REGB0)>UNTAG_Int(REGB3));
1751 /* ../lib/standard/collection/array.nit:312 */
1752 if (UNTAG_Bool(REGB3)) {
1753 fra.me.REG[2] = ATTR_standard___collection___array___Array____items(fra.me.REG[0]);
1754 REGB3 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
1755 if (UNTAG_Bool(REGB3)) {
1756 } else {
1757 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 312);
1758 }
1759 REGB3 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0]);
1760 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
1761 if (UNTAG_Bool(REGB0)) {
1762 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 312);
1763 }
1764 /* ../lib/standard/collection/array.nit:720 */
1765 (void)memcpy(((Nit_NativeArray )fra.me.REG[1])->val, ((Nit_NativeArray)fra.me.REG[2])->val, UNTAG_Int(REGB3)*sizeof(val_t));
1766 }
1767 /* ../lib/standard/collection/array.nit:313 */
1768 ATTR_standard___collection___array___Array____items(fra.me.REG[0]) = fra.me.REG[1];
1769 /* ../lib/standard/collection/array.nit:314 */
1770 ATTR_standard___collection___array___Array____capacity(fra.me.REG[0]) = REGB1;
1771 label1: while(0);
1772 stack_frame_head = fra.me.prev;
1773 return;
1774 }
1775 void standard___collection___array___Array___init(val_t p0, int* init_table){
1776 int itpos1 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_standard___collection___array___Array].i;
1777 struct {struct stack_frame_t me;} fra;
1778 val_t REGB0;
1779 val_t tmp;
1780 if (init_table[itpos1]) return;
1781 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1782 fra.me.file = LOCATE_standard___collection___array;
1783 fra.me.line = 317;
1784 fra.me.meth = LOCATE_standard___collection___array___Array___init;
1785 fra.me.has_broke = 0;
1786 fra.me.REG_size = 1;
1787 fra.me.nitni_local_ref_head = NULL;
1788 fra.me.REG[0] = NIT_NULL;
1789 fra.me.REG[0] = p0;
1790 /* ../lib/standard/collection/array.nit:320 */
1791 REGB0 = TAG_Int(0);
1792 ATTR_standard___collection___array___Array____capacity(fra.me.REG[0]) = REGB0;
1793 /* ../lib/standard/collection/array.nit:321 */
1794 REGB0 = TAG_Int(0);
1795 ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0]) = REGB0;
1796 stack_frame_head = fra.me.prev;
1797 init_table[itpos1] = 1;
1798 return;
1799 }
1800 void standard___collection___array___Array___with_items(val_t p0, val_t p1, int* init_table){
1801 int itpos2 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_standard___collection___array___Array].i;
1802 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
1803 val_t REGB0;
1804 val_t tmp;
1805 if (init_table[itpos2]) return;
1806 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1807 fra.me.file = LOCATE_standard___collection___array;
1808 fra.me.line = 324;
1809 fra.me.meth = LOCATE_standard___collection___array___Array___with_items;
1810 fra.me.has_broke = 0;
1811 fra.me.REG_size = 3;
1812 fra.me.nitni_local_ref_head = NULL;
1813 fra.me.REG[0] = NIT_NULL;
1814 fra.me.REG[1] = NIT_NULL;
1815 fra.me.REG[2] = NIT_NULL;
1816 fra.me.REG[0] = p0;
1817 fra.me.REG[1] = p1;
1818 /* ../lib/standard/collection/array.nit:324 */
1819 fra.me.REG[2] = fra.me.REG[0];
1820 REGB0 = TAG_Bool((fra.me.REG[1]!=NIT_NULL) && VAL_ISA(fra.me.REG[1], COLOR_standard___collection___array___Array, ID_standard___collection___array___Array)) /*cast Array[E]*/;
1821 if (UNTAG_Bool(REGB0)) {
1822 } else {
1823 nit_abort("Cast failed", NULL, LOCATE_standard___collection___array, 324);
1824 }
1825 /* ../lib/standard/collection/array.nit:327 */
1826 fra.me.REG[0] = ATTR_standard___collection___array___Array____items(fra.me.REG[1]);
1827 ATTR_standard___collection___array___Array____items(fra.me.REG[2]) = fra.me.REG[0];
1828 /* ../lib/standard/collection/array.nit:328 */
1829 REGB0 = TAG_Bool(ATTR_standard___collection___array___Array____capacity(fra.me.REG[1])!=NIT_NULL);
1830 if (UNTAG_Bool(REGB0)) {
1831 } else {
1832 nit_abort("Uninitialized attribute %s", "_capacity", LOCATE_standard___collection___array, 328);
1833 }
1834 REGB0 = ATTR_standard___collection___array___Array____capacity(fra.me.REG[1]);
1835 ATTR_standard___collection___array___Array____capacity(fra.me.REG[2]) = REGB0;
1836 /* ../lib/standard/collection/array.nit:24 */
1837 REGB0 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1])!=NIT_NULL);
1838 if (UNTAG_Bool(REGB0)) {
1839 } else {
1840 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
1841 }
1842 REGB0 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1]);
1843 /* ../lib/standard/collection/array.nit:329 */
1844 ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2]) = REGB0;
1845 stack_frame_head = fra.me.prev;
1846 init_table[itpos2] = 1;
1847 return;
1848 }
1849 void standard___collection___array___Array___with_capacity(val_t p0, val_t p1, int* init_table){
1850 int itpos3 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_standard___collection___array___Array].i;
1851 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
1852 val_t REGB0;
1853 val_t REGB1;
1854 val_t REGB2;
1855 val_t tmp;
1856 if (init_table[itpos3]) return;
1857 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1858 fra.me.file = LOCATE_standard___collection___array;
1859 fra.me.line = 332;
1860 fra.me.meth = LOCATE_standard___collection___array___Array___with_capacity;
1861 fra.me.has_broke = 0;
1862 fra.me.REG_size = 2;
1863 fra.me.nitni_local_ref_head = NULL;
1864 fra.me.REG[0] = NIT_NULL;
1865 fra.me.REG[1] = NIT_NULL;
1866 fra.me.REG[0] = p0;
1867 REGB0 = p1;
1868 /* ../lib/standard/collection/array.nit:335 */
1869 REGB1 = TAG_Int(0);
1870 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
1871 if (UNTAG_Bool(REGB2)) {
1872 } else {
1873 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
1874 }
1875 /* ../lib/standard/kernel.nit:233 */
1876 REGB1 = TAG_Bool(UNTAG_Int(REGB0)>=UNTAG_Int(REGB1));
1877 /* ../lib/standard/collection/array.nit:335 */
1878 if (UNTAG_Bool(REGB1)) {
1879 } else {
1880 nit_abort("Assert '%s' failed", "positive", LOCATE_standard___collection___array, 335);
1881 }
1882 /* ../lib/standard/collection/array.nit:712 */
1883 fra.me.REG[1] = NEW_NativeArray(UNTAG_Int(REGB0), sizeof(val_t));
1884 /* ../lib/standard/collection/array.nit:336 */
1885 ATTR_standard___collection___array___Array____items(fra.me.REG[0]) = fra.me.REG[1];
1886 /* ../lib/standard/collection/array.nit:337 */
1887 ATTR_standard___collection___array___Array____capacity(fra.me.REG[0]) = REGB0;
1888 /* ../lib/standard/collection/array.nit:338 */
1889 REGB0 = TAG_Int(0);
1890 ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0]) = REGB0;
1891 stack_frame_head = fra.me.prev;
1892 init_table[itpos3] = 1;
1893 return;
1894 }
1895 void standard___collection___array___Array___filled_with(val_t p0, val_t p1, val_t p2, int* init_table){
1896 int itpos4 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_standard___collection___array___Array].i;
1897 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
1898 val_t REGB0;
1899 val_t REGB1;
1900 val_t REGB2;
1901 val_t tmp;
1902 if (init_table[itpos4]) return;
1903 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1904 fra.me.file = LOCATE_standard___collection___array;
1905 fra.me.line = 341;
1906 fra.me.meth = LOCATE_standard___collection___array___Array___filled_with;
1907 fra.me.has_broke = 0;
1908 fra.me.REG_size = 3;
1909 fra.me.nitni_local_ref_head = NULL;
1910 fra.me.REG[0] = NIT_NULL;
1911 fra.me.REG[1] = NIT_NULL;
1912 fra.me.REG[2] = NIT_NULL;
1913 fra.me.REG[0] = p0;
1914 fra.me.REG[1] = p1;
1915 REGB0 = p2;
1916 /* ../lib/standard/collection/array.nit:344 */
1917 REGB1 = TAG_Int(0);
1918 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
1919 if (UNTAG_Bool(REGB2)) {
1920 } else {
1921 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
1922 }
1923 /* ../lib/standard/kernel.nit:233 */
1924 REGB1 = TAG_Bool(UNTAG_Int(REGB0)>=UNTAG_Int(REGB1));
1925 /* ../lib/standard/collection/array.nit:344 */
1926 if (UNTAG_Bool(REGB1)) {
1927 } else {
1928 nit_abort("Assert '%s' failed", "positive", LOCATE_standard___collection___array, 344);
1929 }
1930 /* ../lib/standard/collection/array.nit:712 */
1931 fra.me.REG[2] = NEW_NativeArray(UNTAG_Int(REGB0), sizeof(val_t));
1932 /* ../lib/standard/collection/array.nit:345 */
1933 ATTR_standard___collection___array___Array____items(fra.me.REG[0]) = fra.me.REG[2];
1934 /* ../lib/standard/collection/array.nit:346 */
1935 ATTR_standard___collection___array___Array____capacity(fra.me.REG[0]) = REGB0;
1936 /* ../lib/standard/collection/array.nit:347 */
1937 ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0]) = REGB0;
1938 /* ../lib/standard/collection/array.nit:348 */
1939 REGB1 = TAG_Int(0);
1940 /* ../lib/standard/collection/array.nit:349 */
1941 while(1) {
1942 REGB2 = TAG_Bool(VAL_ISA(REGB0, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
1943 if (UNTAG_Bool(REGB2)) {
1944 } else {
1945 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
1946 }
1947 /* ../lib/standard/kernel.nit:232 */
1948 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB0));
1949 /* ../lib/standard/collection/array.nit:349 */
1950 if (UNTAG_Bool(REGB2)) {
1951 /* ../lib/standard/collection/array.nit:350 */
1952 CALL_standard___collection___abstract_collection___Sequence_____braeq(fra.me.REG[0])(fra.me.REG[0], REGB1, fra.me.REG[1]);
1953 /* ../lib/standard/collection/array.nit:351 */
1954 REGB2 = TAG_Int(1);
1955 /* ../lib/standard/kernel.nit:235 */
1956 REGB2 = TAG_Int(UNTAG_Int(REGB1)+UNTAG_Int(REGB2));
1957 /* ../lib/standard/collection/array.nit:351 */
1958 REGB1 = REGB2;
1959 } else {
1960 /* ../lib/standard/collection/array.nit:349 */
1961 goto label1;
1962 }
1963 }
1964 label1: while(0);
1965 stack_frame_head = fra.me.prev;
1966 init_table[itpos4] = 1;
1967 return;
1968 }
1969 void standard___collection___array___Array___with_native(val_t p0, val_t p1, val_t p2, int* init_table){
1970 int itpos5 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_standard___collection___array___Array].i;
1971 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
1972 val_t REGB0;
1973 val_t REGB1;
1974 val_t REGB2;
1975 val_t tmp;
1976 if (init_table[itpos5]) return;
1977 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1978 fra.me.file = LOCATE_standard___collection___array;
1979 fra.me.line = 355;
1980 fra.me.meth = LOCATE_standard___collection___array___Array___with_native;
1981 fra.me.has_broke = 0;
1982 fra.me.REG_size = 2;
1983 fra.me.nitni_local_ref_head = NULL;
1984 fra.me.REG[0] = NIT_NULL;
1985 fra.me.REG[1] = NIT_NULL;
1986 fra.me.REG[0] = p0;
1987 fra.me.REG[1] = p1;
1988 REGB0 = p2;
1989 /* ../lib/standard/collection/array.nit:358 */
1990 REGB1 = TAG_Int(0);
1991 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
1992 if (UNTAG_Bool(REGB2)) {
1993 } else {
1994 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
1995 }
1996 /* ../lib/standard/kernel.nit:233 */
1997 REGB1 = TAG_Bool(UNTAG_Int(REGB0)>=UNTAG_Int(REGB1));
1998 /* ../lib/standard/collection/array.nit:358 */
1999 if (UNTAG_Bool(REGB1)) {
2000 } else {
2001 nit_abort("Assert '%s' failed", "positive", LOCATE_standard___collection___array, 358);
2002 }
2003 /* ../lib/standard/collection/array.nit:359 */
2004 ATTR_standard___collection___array___Array____items(fra.me.REG[0]) = fra.me.REG[1];
2005 /* ../lib/standard/collection/array.nit:360 */
2006 ATTR_standard___collection___array___Array____capacity(fra.me.REG[0]) = REGB0;
2007 /* ../lib/standard/collection/array.nit:361 */
2008 ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0]) = REGB0;
2009 stack_frame_head = fra.me.prev;
2010 init_table[itpos5] = 1;
2011 return;
2012 }
2013 val_t standard___collection___array___Array___intern_items(val_t p0){
2014 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
2015 val_t REGB0;
2016 val_t tmp;
2017 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2018 fra.me.file = LOCATE_standard___collection___array;
2019 fra.me.line = 367;
2020 fra.me.meth = LOCATE_standard___collection___array___Array___intern_items;
2021 fra.me.has_broke = 0;
2022 fra.me.REG_size = 2;
2023 fra.me.nitni_local_ref_head = NULL;
2024 fra.me.REG[0] = NIT_NULL;
2025 fra.me.REG[1] = NIT_NULL;
2026 fra.me.REG[0] = p0;
2027 /* ../lib/standard/collection/array.nit:367 */
2028 fra.me.REG[1] = fra.me.REG[0];
2029 /* ../lib/standard/collection/array.nit:369 */
2030 fra.me.REG[1] = ATTR_standard___collection___array___Array____items(fra.me.REG[1]);
2031 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
2032 if (UNTAG_Bool(REGB0)) {
2033 } else {
2034 nit_abort("Cast failed", NULL, LOCATE_standard___collection___array, 369);
2035 }
2036 goto label1;
2037 label1: while(0);
2038 stack_frame_head = fra.me.prev;
2039 return fra.me.REG[1];
2040 }
2041 void standard___collection___array___Array___sort(val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
2042 struct {struct stack_frame_t me;} fra;
2043 val_t REGB0;
2044 val_t REGB1;
2045 val_t REGB2;
2046 fun_t CREG[1];
2047 val_t tmp;
2048 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2049 fra.me.file = LOCATE_standard___collection___array;
2050 fra.me.line = 374;
2051 fra.me.meth = LOCATE_standard___collection___array___Array___sort;
2052 fra.me.has_broke = 0;
2053 fra.me.REG_size = 1;
2054 fra.me.nitni_local_ref_head = NULL;
2055 fra.me.REG[0] = NIT_NULL;
2056 fra.me.closure_ctx = closctx_param;
2057 fra.me.closure_funs = CREG;
2058 fra.me.REG[0] = p0;
2059 CREG[0] = clos_fun0;
2060 /* ../lib/standard/collection/array.nit:378 */
2061 REGB0 = TAG_Int(0);
2062 /* ../lib/standard/collection/array.nit:24 */
2063 REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
2064 if (UNTAG_Bool(REGB1)) {
2065 } else {
2066 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
2067 }
2068 REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0]);
2069 /* ../lib/standard/collection/array.nit:378 */
2070 REGB2 = TAG_Int(1);
2071 /* ../lib/standard/kernel.nit:237 */
2072 REGB2 = TAG_Int(UNTAG_Int(REGB1)-UNTAG_Int(REGB2));
2073 CALL_standard___collection___array___Array___sub_sort(fra.me.REG[0])(fra.me.REG[0], REGB0, REGB2, (&(fra.me)), ((fun_t)OC_standard___collection___array___Array___sort_1));
2074 switch ((&(fra.me))->has_broke) {
2075 case 0: break;
2076 case 1: (&(fra.me))->has_broke = 0; goto label3;
2077 }
2078 label3: while(0);
2079 stack_frame_head = fra.me.prev;
2080 return;
2081 }
2082 val_t OC_standard___collection___array___Array___sort_1(struct stack_frame_t *closctx, val_t p0, val_t p1){
2083 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
2084 val_t REGB0;
2085 val_t tmp;
2086 /* ../lib/standard/collection/array.nit:378 */
2087 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2088 fra.me.file = LOCATE_standard___collection___array;
2089 fra.me.line = 378;
2090 fra.me.meth = LOCATE_standard___collection___array___Array___sort;
2091 fra.me.has_broke = 0;
2092 fra.me.REG_size = 2;
2093 fra.me.nitni_local_ref_head = NULL;
2094 fra.me.REG[0] = NIT_NULL;
2095 fra.me.REG[1] = NIT_NULL;
2096 fra.me.REG[0] = p0;
2097 fra.me.REG[1] = p1;
2098 REGB0 = ((val_t (*)(struct stack_frame_t *, val_t, val_t))(closctx->closure_funs[0]))(closctx->closure_ctx, fra.me.REG[0], fra.me.REG[1]);
2099 if (closctx->closure_ctx->has_broke) {
2100 closctx->has_broke = 1;
2101 goto label2;
2102 }
2103 goto label2;
2104 label2: while(0);
2105 stack_frame_head = fra.me.prev;
2106 return REGB0;
2107 }
2108 void standard___collection___array___Array___sub_sort(val_t p0, val_t p1, val_t p2, struct stack_frame_t *closctx_param, fun_t clos_fun0){
2109 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
2110 val_t REGB0;
2111 val_t REGB1;
2112 val_t REGB2;
2113 val_t REGB3;
2114 val_t REGB4;
2115 val_t REGB5;
2116 val_t REGB6;
2117 fun_t CREG[1];
2118 val_t tmp;
2119 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2120 fra.me.file = LOCATE_standard___collection___array;
2121 fra.me.line = 381;
2122 fra.me.meth = LOCATE_standard___collection___array___Array___sub_sort;
2123 fra.me.has_broke = 0;
2124 fra.me.REG_size = 4;
2125 fra.me.nitni_local_ref_head = NULL;
2126 fra.me.REG[0] = NIT_NULL;
2127 fra.me.REG[1] = NIT_NULL;
2128 fra.me.REG[2] = NIT_NULL;
2129 fra.me.REG[3] = NIT_NULL;
2130 fra.me.closure_ctx = closctx_param;
2131 fra.me.closure_funs = CREG;
2132 fra.me.REG[0] = p0;
2133 REGB0 = p1;
2134 REGB1 = p2;
2135 CREG[0] = clos_fun0;
2136 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
2137 if (UNTAG_Bool(REGB2)) {
2138 } else {
2139 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
2140 }
2141 /* ../lib/standard/kernel.nit:233 */
2142 REGB2 = TAG_Bool(UNTAG_Int(REGB0)>=UNTAG_Int(REGB1));
2143 /* ../lib/standard/collection/array.nit:385 */
2144 if (UNTAG_Bool(REGB2)) {
2145 /* ../lib/standard/collection/array.nit:386 */
2146 goto label1;
2147 } else {
2148 /* ../lib/standard/collection/array.nit:387 */
2149 REGB2 = TAG_Int(7);
2150 /* ../lib/standard/kernel.nit:235 */
2151 REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
2152 REGB3 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB2), VTID_standard___kernel___Comparable___OTHER(REGB2))) /*cast OTHER*/;
2153 if (UNTAG_Bool(REGB3)) {
2154 } else {
2155 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
2156 }
2157 /* ../lib/standard/kernel.nit:232 */
2158 REGB2 = TAG_Bool(UNTAG_Int(REGB2)<UNTAG_Int(REGB1));
2159 /* ../lib/standard/collection/array.nit:387 */
2160 if (UNTAG_Bool(REGB2)) {
2161 /* ../lib/standard/collection/array.nit:278 */
2162 fra.me.REG[1] = fra.me.REG[0];
2163 REGB2 = REGB0;
2164 /* ../lib/standard/collection/array.nit:280 */
2165 REGB3 = TAG_Int(0);
2166 REGB4 = TAG_Bool(VAL_ISA(REGB3, VTCOLOR_standard___kernel___Comparable___OTHER(REGB2), VTID_standard___kernel___Comparable___OTHER(REGB2))) /*cast OTHER*/;
2167 if (UNTAG_Bool(REGB4)) {
2168 } else {
2169 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
2170 }
2171 /* ../lib/standard/kernel.nit:233 */
2172 REGB3 = TAG_Bool(UNTAG_Int(REGB2)>=UNTAG_Int(REGB3));
2173 /* ../lib/standard/collection/array.nit:280 */
2174 if (UNTAG_Bool(REGB3)) {
2175 REGB3 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1])!=NIT_NULL);
2176 if (UNTAG_Bool(REGB3)) {
2177 } else {
2178 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
2179 }
2180 REGB3 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1]);
2181 REGB4 = TAG_Bool(VAL_ISA(REGB3, VTCOLOR_standard___kernel___Comparable___OTHER(REGB2), VTID_standard___kernel___Comparable___OTHER(REGB2))) /*cast OTHER*/;
2182 if (UNTAG_Bool(REGB4)) {
2183 } else {
2184 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
2185 }
2186 /* ../lib/standard/kernel.nit:232 */
2187 REGB3 = TAG_Bool(UNTAG_Int(REGB2)<UNTAG_Int(REGB3));
2188 } else {
2189 /* ../lib/standard/collection/array.nit:280 */
2190 REGB4 = TAG_Bool(false);
2191 REGB3 = REGB4;
2192 }
2193 if (UNTAG_Bool(REGB3)) {
2194 } else {
2195 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
2196 }
2197 /* ../lib/standard/collection/array.nit:281 */
2198 fra.me.REG[1] = ATTR_standard___collection___array___Array____items(fra.me.REG[1]);
2199 REGB3 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
2200 if (UNTAG_Bool(REGB3)) {
2201 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
2202 }
2203 /* ../lib/standard/collection/array.nit:718 */
2204 fra.me.REG[1] = ((Nit_NativeArray)fra.me.REG[1])->val[UNTAG_Int(REGB2)];
2205 /* ../lib/standard/collection/array.nit:281 */
2206 goto label2;
2207 label2: while(0);
2208 /* ../lib/standard/collection/array.nit:389 */
2209 REGB2 = REGB0;
2210 /* ../lib/standard/collection/array.nit:390 */
2211 REGB3 = REGB1;
2212 /* ../lib/standard/collection/array.nit:391 */
2213 while(1) {
2214 REGB4 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB3), VTID_standard___kernel___Comparable___OTHER(REGB3))) /*cast OTHER*/;
2215 if (UNTAG_Bool(REGB4)) {
2216 } else {
2217 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
2218 }
2219 /* ../lib/standard/kernel.nit:234 */
2220 REGB4 = TAG_Bool(UNTAG_Int(REGB3)>UNTAG_Int(REGB2));
2221 /* ../lib/standard/collection/array.nit:391 */
2222 if (UNTAG_Bool(REGB4)) {
2223 /* ../lib/standard/collection/array.nit:392 */
2224 while(1) {
2225 REGB4 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB2), VTID_standard___kernel___Comparable___OTHER(REGB2))) /*cast OTHER*/;
2226 if (UNTAG_Bool(REGB4)) {
2227 } else {
2228 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
2229 }
2230 /* ../lib/standard/kernel.nit:231 */
2231 REGB4 = TAG_Bool(UNTAG_Int(REGB2)<=UNTAG_Int(REGB1));
2232 /* ../lib/standard/collection/array.nit:392 */
2233 if (UNTAG_Bool(REGB4)) {
2234 /* ../lib/standard/collection/array.nit:278 */
2235 fra.me.REG[2] = fra.me.REG[0];
2236 REGB4 = REGB2;
2237 /* ../lib/standard/collection/array.nit:280 */
2238 REGB5 = TAG_Int(0);
2239 REGB6 = TAG_Bool(VAL_ISA(REGB5, VTCOLOR_standard___kernel___Comparable___OTHER(REGB4), VTID_standard___kernel___Comparable___OTHER(REGB4))) /*cast OTHER*/;
2240 if (UNTAG_Bool(REGB6)) {
2241 } else {
2242 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
2243 }
2244 /* ../lib/standard/kernel.nit:233 */
2245 REGB5 = TAG_Bool(UNTAG_Int(REGB4)>=UNTAG_Int(REGB5));
2246 /* ../lib/standard/collection/array.nit:280 */
2247 if (UNTAG_Bool(REGB5)) {
2248 REGB5 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
2249 if (UNTAG_Bool(REGB5)) {
2250 } else {
2251 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
2252 }
2253 REGB5 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2]);
2254 REGB6 = TAG_Bool(VAL_ISA(REGB5, VTCOLOR_standard___kernel___Comparable___OTHER(REGB4), VTID_standard___kernel___Comparable___OTHER(REGB4))) /*cast OTHER*/;
2255 if (UNTAG_Bool(REGB6)) {
2256 } else {
2257 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
2258 }
2259 /* ../lib/standard/kernel.nit:232 */
2260 REGB5 = TAG_Bool(UNTAG_Int(REGB4)<UNTAG_Int(REGB5));
2261 } else {
2262 /* ../lib/standard/collection/array.nit:280 */
2263 REGB6 = TAG_Bool(false);
2264 REGB5 = REGB6;
2265 }
2266 if (UNTAG_Bool(REGB5)) {
2267 } else {
2268 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
2269 }
2270 /* ../lib/standard/collection/array.nit:281 */
2271 fra.me.REG[2] = ATTR_standard___collection___array___Array____items(fra.me.REG[2]);
2272 REGB5 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
2273 if (UNTAG_Bool(REGB5)) {
2274 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
2275 }
2276 /* ../lib/standard/collection/array.nit:718 */
2277 fra.me.REG[2] = ((Nit_NativeArray)fra.me.REG[2])->val[UNTAG_Int(REGB4)];
2278 /* ../lib/standard/collection/array.nit:281 */
2279 goto label3;
2280 label3: while(0);
2281 /* ../lib/standard/collection/array.nit:392 */
2282 REGB4 = ((val_t (*)(struct stack_frame_t *, val_t, val_t))(CREG[0]))(closctx_param, fra.me.REG[2], fra.me.REG[1]);
2283 if (closctx_param->has_broke) {
2284 goto label1;
2285 }
2286 REGB5 = TAG_Int(0);
2287 REGB6 = TAG_Bool(VAL_ISA(REGB5, VTCOLOR_standard___kernel___Comparable___OTHER(REGB4), VTID_standard___kernel___Comparable___OTHER(REGB4))) /*cast OTHER*/;
2288 if (UNTAG_Bool(REGB6)) {
2289 } else {
2290 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
2291 }
2292 /* ../lib/standard/kernel.nit:231 */
2293 REGB5 = TAG_Bool(UNTAG_Int(REGB4)<=UNTAG_Int(REGB5));
2294 } else {
2295 /* ../lib/standard/collection/array.nit:392 */
2296 REGB4 = TAG_Bool(false);
2297 REGB5 = REGB4;
2298 }
2299 if (UNTAG_Bool(REGB5)) {
2300 REGB5 = TAG_Int(1);
2301 /* ../lib/standard/kernel.nit:235 */
2302 REGB5 = TAG_Int(UNTAG_Int(REGB2)+UNTAG_Int(REGB5));
2303 /* ../lib/standard/collection/array.nit:392 */
2304 REGB2 = REGB5;
2305 } else {
2306 goto label4;
2307 }
2308 }
2309 label4: while(0);
2310 /* ../lib/standard/collection/array.nit:393 */
2311 while(1) {
2312 REGB5 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB3), VTID_standard___kernel___Comparable___OTHER(REGB3))) /*cast OTHER*/;
2313 if (UNTAG_Bool(REGB5)) {
2314 } else {
2315 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
2316 }
2317 /* ../lib/standard/kernel.nit:234 */
2318 REGB5 = TAG_Bool(UNTAG_Int(REGB3)>UNTAG_Int(REGB2));
2319 /* ../lib/standard/collection/array.nit:393 */
2320 if (UNTAG_Bool(REGB5)) {
2321 /* ../lib/standard/collection/array.nit:278 */
2322 fra.me.REG[2] = fra.me.REG[0];
2323 REGB5 = REGB3;
2324 /* ../lib/standard/collection/array.nit:280 */
2325 REGB4 = TAG_Int(0);
2326 REGB6 = TAG_Bool(VAL_ISA(REGB4, VTCOLOR_standard___kernel___Comparable___OTHER(REGB5), VTID_standard___kernel___Comparable___OTHER(REGB5))) /*cast OTHER*/;
2327 if (UNTAG_Bool(REGB6)) {
2328 } else {
2329 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
2330 }
2331 /* ../lib/standard/kernel.nit:233 */
2332 REGB4 = TAG_Bool(UNTAG_Int(REGB5)>=UNTAG_Int(REGB4));
2333 /* ../lib/standard/collection/array.nit:280 */
2334 if (UNTAG_Bool(REGB4)) {
2335 REGB4 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
2336 if (UNTAG_Bool(REGB4)) {
2337 } else {
2338 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
2339 }
2340 REGB4 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2]);
2341 REGB6 = TAG_Bool(VAL_ISA(REGB4, VTCOLOR_standard___kernel___Comparable___OTHER(REGB5), VTID_standard___kernel___Comparable___OTHER(REGB5))) /*cast OTHER*/;
2342 if (UNTAG_Bool(REGB6)) {
2343 } else {
2344 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
2345 }
2346 /* ../lib/standard/kernel.nit:232 */
2347 REGB4 = TAG_Bool(UNTAG_Int(REGB5)<UNTAG_Int(REGB4));
2348 } else {
2349 /* ../lib/standard/collection/array.nit:280 */
2350 REGB6 = TAG_Bool(false);
2351 REGB4 = REGB6;
2352 }
2353 if (UNTAG_Bool(REGB4)) {
2354 } else {
2355 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
2356 }
2357 /* ../lib/standard/collection/array.nit:281 */
2358 fra.me.REG[2] = ATTR_standard___collection___array___Array____items(fra.me.REG[2]);
2359 REGB4 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
2360 if (UNTAG_Bool(REGB4)) {
2361 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
2362 }
2363 /* ../lib/standard/collection/array.nit:718 */
2364 fra.me.REG[2] = ((Nit_NativeArray)fra.me.REG[2])->val[UNTAG_Int(REGB5)];
2365 /* ../lib/standard/collection/array.nit:281 */
2366 goto label5;
2367 label5: while(0);
2368 /* ../lib/standard/collection/array.nit:393 */
2369 REGB5 = ((val_t (*)(struct stack_frame_t *, val_t, val_t))(CREG[0]))(closctx_param, fra.me.REG[2], fra.me.REG[1]);
2370 if (closctx_param->has_broke) {
2371 goto label1;
2372 }
2373 REGB4 = TAG_Int(0);
2374 REGB6 = TAG_Bool(VAL_ISA(REGB4, VTCOLOR_standard___kernel___Comparable___OTHER(REGB5), VTID_standard___kernel___Comparable___OTHER(REGB5))) /*cast OTHER*/;
2375 if (UNTAG_Bool(REGB6)) {
2376 } else {
2377 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
2378 }
2379 /* ../lib/standard/kernel.nit:233 */
2380 REGB4 = TAG_Bool(UNTAG_Int(REGB5)>=UNTAG_Int(REGB4));
2381 } else {
2382 /* ../lib/standard/collection/array.nit:393 */
2383 REGB5 = TAG_Bool(false);
2384 REGB4 = REGB5;
2385 }
2386 if (UNTAG_Bool(REGB4)) {
2387 REGB4 = TAG_Int(1);
2388 /* ../lib/standard/kernel.nit:237 */
2389 REGB4 = TAG_Int(UNTAG_Int(REGB3)-UNTAG_Int(REGB4));
2390 /* ../lib/standard/collection/array.nit:393 */
2391 REGB3 = REGB4;
2392 } else {
2393 goto label6;
2394 }
2395 }
2396 label6: while(0);
2397 REGB4 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB3), VTID_standard___kernel___Comparable___OTHER(REGB3))) /*cast OTHER*/;
2398 if (UNTAG_Bool(REGB4)) {
2399 } else {
2400 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
2401 }
2402 /* ../lib/standard/kernel.nit:234 */
2403 REGB4 = TAG_Bool(UNTAG_Int(REGB3)>UNTAG_Int(REGB2));
2404 /* ../lib/standard/collection/array.nit:394 */
2405 if (UNTAG_Bool(REGB4)) {
2406 /* ../lib/standard/collection/array.nit:278 */
2407 fra.me.REG[2] = fra.me.REG[0];
2408 REGB4 = REGB2;
2409 /* ../lib/standard/collection/array.nit:280 */
2410 REGB5 = TAG_Int(0);
2411 REGB6 = TAG_Bool(VAL_ISA(REGB5, VTCOLOR_standard___kernel___Comparable___OTHER(REGB4), VTID_standard___kernel___Comparable___OTHER(REGB4))) /*cast OTHER*/;
2412 if (UNTAG_Bool(REGB6)) {
2413 } else {
2414 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
2415 }
2416 /* ../lib/standard/kernel.nit:233 */
2417 REGB5 = TAG_Bool(UNTAG_Int(REGB4)>=UNTAG_Int(REGB5));
2418 /* ../lib/standard/collection/array.nit:280 */
2419 if (UNTAG_Bool(REGB5)) {
2420 REGB5 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
2421 if (UNTAG_Bool(REGB5)) {
2422 } else {
2423 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
2424 }
2425 REGB5 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2]);
2426 REGB6 = TAG_Bool(VAL_ISA(REGB5, VTCOLOR_standard___kernel___Comparable___OTHER(REGB4), VTID_standard___kernel___Comparable___OTHER(REGB4))) /*cast OTHER*/;
2427 if (UNTAG_Bool(REGB6)) {
2428 } else {
2429 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
2430 }
2431 /* ../lib/standard/kernel.nit:232 */
2432 REGB5 = TAG_Bool(UNTAG_Int(REGB4)<UNTAG_Int(REGB5));
2433 } else {
2434 /* ../lib/standard/collection/array.nit:280 */
2435 REGB6 = TAG_Bool(false);
2436 REGB5 = REGB6;
2437 }
2438 if (UNTAG_Bool(REGB5)) {
2439 } else {
2440 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
2441 }
2442 /* ../lib/standard/collection/array.nit:281 */
2443 fra.me.REG[2] = ATTR_standard___collection___array___Array____items(fra.me.REG[2]);
2444 REGB5 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
2445 if (UNTAG_Bool(REGB5)) {
2446 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
2447 }
2448 /* ../lib/standard/collection/array.nit:718 */
2449 fra.me.REG[2] = ((Nit_NativeArray)fra.me.REG[2])->val[UNTAG_Int(REGB4)];
2450 /* ../lib/standard/collection/array.nit:281 */
2451 goto label7;
2452 label7: while(0);
2453 /* ../lib/standard/collection/array.nit:278 */
2454 fra.me.REG[3] = fra.me.REG[0];
2455 REGB4 = REGB3;
2456 /* ../lib/standard/collection/array.nit:280 */
2457 REGB5 = TAG_Int(0);
2458 REGB6 = TAG_Bool(VAL_ISA(REGB5, VTCOLOR_standard___kernel___Comparable___OTHER(REGB4), VTID_standard___kernel___Comparable___OTHER(REGB4))) /*cast OTHER*/;
2459 if (UNTAG_Bool(REGB6)) {
2460 } else {
2461 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
2462 }
2463 /* ../lib/standard/kernel.nit:233 */
2464 REGB5 = TAG_Bool(UNTAG_Int(REGB4)>=UNTAG_Int(REGB5));
2465 /* ../lib/standard/collection/array.nit:280 */
2466 if (UNTAG_Bool(REGB5)) {
2467 REGB5 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[3])!=NIT_NULL);
2468 if (UNTAG_Bool(REGB5)) {
2469 } else {
2470 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
2471 }
2472 REGB5 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[3]);
2473 REGB6 = TAG_Bool(VAL_ISA(REGB5, VTCOLOR_standard___kernel___Comparable___OTHER(REGB4), VTID_standard___kernel___Comparable___OTHER(REGB4))) /*cast OTHER*/;
2474 if (UNTAG_Bool(REGB6)) {
2475 } else {
2476 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
2477 }
2478 /* ../lib/standard/kernel.nit:232 */
2479 REGB5 = TAG_Bool(UNTAG_Int(REGB4)<UNTAG_Int(REGB5));
2480 } else {
2481 /* ../lib/standard/collection/array.nit:280 */
2482 REGB6 = TAG_Bool(false);
2483 REGB5 = REGB6;
2484 }
2485 if (UNTAG_Bool(REGB5)) {
2486 } else {
2487 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
2488 }
2489 /* ../lib/standard/collection/array.nit:281 */
2490 fra.me.REG[3] = ATTR_standard___collection___array___Array____items(fra.me.REG[3]);
2491 REGB5 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
2492 if (UNTAG_Bool(REGB5)) {
2493 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
2494 }
2495 /* ../lib/standard/collection/array.nit:718 */
2496 fra.me.REG[3] = ((Nit_NativeArray)fra.me.REG[3])->val[UNTAG_Int(REGB4)];
2497 /* ../lib/standard/collection/array.nit:281 */
2498 goto label8;
2499 label8: while(0);
2500 /* ../lib/standard/collection/array.nit:396 */
2501 CALL_standard___collection___abstract_collection___Sequence_____braeq(fra.me.REG[0])(fra.me.REG[0], REGB2, fra.me.REG[3]);
2502 /* ../lib/standard/collection/array.nit:397 */
2503 CALL_standard___collection___abstract_collection___Sequence_____braeq(fra.me.REG[0])(fra.me.REG[0], REGB3, fra.me.REG[2]);
2504 }
2505 } else {
2506 /* ../lib/standard/collection/array.nit:391 */
2507 goto label9;
2508 }
2509 }
2510 label9: while(0);
2511 /* ../lib/standard/collection/array.nit:400 */
2512 REGB3 = TAG_Int(1);
2513 /* ../lib/standard/kernel.nit:237 */
2514 REGB3 = TAG_Int(UNTAG_Int(REGB2)-UNTAG_Int(REGB3));
2515 /* ../lib/standard/collection/array.nit:278 */
2516 fra.me.REG[2] = fra.me.REG[0];
2517 /* ../lib/standard/collection/array.nit:280 */
2518 REGB4 = TAG_Int(0);
2519 REGB5 = TAG_Bool(VAL_ISA(REGB4, VTCOLOR_standard___kernel___Comparable___OTHER(REGB3), VTID_standard___kernel___Comparable___OTHER(REGB3))) /*cast OTHER*/;
2520 if (UNTAG_Bool(REGB5)) {
2521 } else {
2522 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
2523 }
2524 /* ../lib/standard/kernel.nit:233 */
2525 REGB4 = TAG_Bool(UNTAG_Int(REGB3)>=UNTAG_Int(REGB4));
2526 /* ../lib/standard/collection/array.nit:280 */
2527 if (UNTAG_Bool(REGB4)) {
2528 REGB4 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
2529 if (UNTAG_Bool(REGB4)) {
2530 } else {
2531 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
2532 }
2533 REGB4 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2]);
2534 REGB5 = TAG_Bool(VAL_ISA(REGB4, VTCOLOR_standard___kernel___Comparable___OTHER(REGB3), VTID_standard___kernel___Comparable___OTHER(REGB3))) /*cast OTHER*/;
2535 if (UNTAG_Bool(REGB5)) {
2536 } else {
2537 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
2538 }
2539 /* ../lib/standard/kernel.nit:232 */
2540 REGB4 = TAG_Bool(UNTAG_Int(REGB3)<UNTAG_Int(REGB4));
2541 } else {
2542 /* ../lib/standard/collection/array.nit:280 */
2543 REGB5 = TAG_Bool(false);
2544 REGB4 = REGB5;
2545 }
2546 if (UNTAG_Bool(REGB4)) {
2547 } else {
2548 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
2549 }
2550 /* ../lib/standard/collection/array.nit:281 */
2551 fra.me.REG[2] = ATTR_standard___collection___array___Array____items(fra.me.REG[2]);
2552 REGB4 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
2553 if (UNTAG_Bool(REGB4)) {
2554 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
2555 }
2556 /* ../lib/standard/collection/array.nit:718 */
2557 fra.me.REG[2] = ((Nit_NativeArray)fra.me.REG[2])->val[UNTAG_Int(REGB3)];
2558 /* ../lib/standard/collection/array.nit:281 */
2559 goto label10;
2560 label10: while(0);
2561 /* ../lib/standard/collection/array.nit:400 */
2562 CALL_standard___collection___abstract_collection___Sequence_____braeq(fra.me.REG[0])(fra.me.REG[0], REGB0, fra.me.REG[2]);
2563 /* ../lib/standard/collection/array.nit:401 */
2564 REGB3 = TAG_Int(1);
2565 /* ../lib/standard/kernel.nit:237 */
2566 REGB3 = TAG_Int(UNTAG_Int(REGB2)-UNTAG_Int(REGB3));
2567 /* ../lib/standard/collection/array.nit:401 */
2568 CALL_standard___collection___abstract_collection___Sequence_____braeq(fra.me.REG[0])(fra.me.REG[0], REGB3, fra.me.REG[1]);
2569 /* ../lib/standard/collection/array.nit:402 */
2570 REGB3 = TAG_Int(2);
2571 /* ../lib/standard/kernel.nit:237 */
2572 REGB3 = TAG_Int(UNTAG_Int(REGB2)-UNTAG_Int(REGB3));
2573 CALL_standard___collection___array___Array___sub_sort(fra.me.REG[0])(fra.me.REG[0], REGB0, REGB3, (&(fra.me)), ((fun_t)OC_standard___collection___array___Array___sub_sort_11));
2574 switch ((&(fra.me))->has_broke) {
2575 case 0: break;
2576 case 1: (&(fra.me))->has_broke = 0; goto label1;
2577 }
2578 CALL_standard___collection___array___Array___sub_sort(fra.me.REG[0])(fra.me.REG[0], REGB2, REGB1, (&(fra.me)), ((fun_t)OC_standard___collection___array___Array___sub_sort_13));
2579 switch ((&(fra.me))->has_broke) {
2580 case 0: break;
2581 case 1: (&(fra.me))->has_broke = 0; goto label1;
2582 }
2583 } else {
2584 /* ../lib/standard/collection/array.nit:406 */
2585 while(1) {
2586 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
2587 if (UNTAG_Bool(REGB2)) {
2588 } else {
2589 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
2590 }
2591 /* ../lib/standard/kernel.nit:232 */
2592 REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
2593 /* ../lib/standard/collection/array.nit:406 */
2594 if (UNTAG_Bool(REGB2)) {
2595 /* ../lib/standard/collection/array.nit:407 */
2596 REGB2 = REGB0;
2597 /* ../lib/standard/collection/array.nit:278 */
2598 fra.me.REG[1] = fra.me.REG[0];
2599 REGB3 = REGB0;
2600 /* ../lib/standard/collection/array.nit:280 */
2601 REGB4 = TAG_Int(0);
2602 REGB5 = TAG_Bool(VAL_ISA(REGB4, VTCOLOR_standard___kernel___Comparable___OTHER(REGB3), VTID_standard___kernel___Comparable___OTHER(REGB3))) /*cast OTHER*/;
2603 if (UNTAG_Bool(REGB5)) {
2604 } else {
2605 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
2606 }
2607 /* ../lib/standard/kernel.nit:233 */
2608 REGB4 = TAG_Bool(UNTAG_Int(REGB3)>=UNTAG_Int(REGB4));
2609 /* ../lib/standard/collection/array.nit:280 */
2610 if (UNTAG_Bool(REGB4)) {
2611 REGB4 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1])!=NIT_NULL);
2612 if (UNTAG_Bool(REGB4)) {
2613 } else {
2614 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
2615 }
2616 REGB4 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1]);
2617 REGB5 = TAG_Bool(VAL_ISA(REGB4, VTCOLOR_standard___kernel___Comparable___OTHER(REGB3), VTID_standard___kernel___Comparable___OTHER(REGB3))) /*cast OTHER*/;
2618 if (UNTAG_Bool(REGB5)) {
2619 } else {
2620 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
2621 }
2622 /* ../lib/standard/kernel.nit:232 */
2623 REGB4 = TAG_Bool(UNTAG_Int(REGB3)<UNTAG_Int(REGB4));
2624 } else {
2625 /* ../lib/standard/collection/array.nit:280 */
2626 REGB5 = TAG_Bool(false);
2627 REGB4 = REGB5;
2628 }
2629 if (UNTAG_Bool(REGB4)) {
2630 } else {
2631 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
2632 }
2633 /* ../lib/standard/collection/array.nit:281 */
2634 fra.me.REG[1] = ATTR_standard___collection___array___Array____items(fra.me.REG[1]);
2635 REGB4 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
2636 if (UNTAG_Bool(REGB4)) {
2637 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
2638 }
2639 /* ../lib/standard/collection/array.nit:718 */
2640 fra.me.REG[1] = ((Nit_NativeArray)fra.me.REG[1])->val[UNTAG_Int(REGB3)];
2641 /* ../lib/standard/collection/array.nit:281 */
2642 goto label15;
2643 label15: while(0);
2644 /* ../lib/standard/collection/array.nit:409 */
2645 REGB3 = REGB0;
2646 /* ../lib/standard/collection/array.nit:410 */
2647 while(1) {
2648 REGB4 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB3), VTID_standard___kernel___Comparable___OTHER(REGB3))) /*cast OTHER*/;
2649 if (UNTAG_Bool(REGB4)) {
2650 } else {
2651 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
2652 }
2653 /* ../lib/standard/kernel.nit:231 */
2654 REGB4 = TAG_Bool(UNTAG_Int(REGB3)<=UNTAG_Int(REGB1));
2655 /* ../lib/standard/collection/array.nit:410 */
2656 if (UNTAG_Bool(REGB4)) {
2657 /* ../lib/standard/collection/array.nit:278 */
2658 fra.me.REG[2] = fra.me.REG[0];
2659 REGB4 = REGB3;
2660 /* ../lib/standard/collection/array.nit:280 */
2661 REGB5 = TAG_Int(0);
2662 REGB6 = TAG_Bool(VAL_ISA(REGB5, VTCOLOR_standard___kernel___Comparable___OTHER(REGB4), VTID_standard___kernel___Comparable___OTHER(REGB4))) /*cast OTHER*/;
2663 if (UNTAG_Bool(REGB6)) {
2664 } else {
2665 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
2666 }
2667 /* ../lib/standard/kernel.nit:233 */
2668 REGB5 = TAG_Bool(UNTAG_Int(REGB4)>=UNTAG_Int(REGB5));
2669 /* ../lib/standard/collection/array.nit:280 */
2670 if (UNTAG_Bool(REGB5)) {
2671 REGB5 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
2672 if (UNTAG_Bool(REGB5)) {
2673 } else {
2674 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
2675 }
2676 REGB5 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2]);
2677 REGB6 = TAG_Bool(VAL_ISA(REGB5, VTCOLOR_standard___kernel___Comparable___OTHER(REGB4), VTID_standard___kernel___Comparable___OTHER(REGB4))) /*cast OTHER*/;
2678 if (UNTAG_Bool(REGB6)) {
2679 } else {
2680 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
2681 }
2682 /* ../lib/standard/kernel.nit:232 */
2683 REGB5 = TAG_Bool(UNTAG_Int(REGB4)<UNTAG_Int(REGB5));
2684 } else {
2685 /* ../lib/standard/collection/array.nit:280 */
2686 REGB6 = TAG_Bool(false);
2687 REGB5 = REGB6;
2688 }
2689 if (UNTAG_Bool(REGB5)) {
2690 } else {
2691 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
2692 }
2693 /* ../lib/standard/collection/array.nit:281 */
2694 fra.me.REG[2] = ATTR_standard___collection___array___Array____items(fra.me.REG[2]);
2695 REGB5 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
2696 if (UNTAG_Bool(REGB5)) {
2697 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
2698 }
2699 /* ../lib/standard/collection/array.nit:718 */
2700 fra.me.REG[2] = ((Nit_NativeArray)fra.me.REG[2])->val[UNTAG_Int(REGB4)];
2701 /* ../lib/standard/collection/array.nit:281 */
2702 goto label16;
2703 label16: while(0);
2704 /* ../lib/standard/collection/array.nit:411 */
2705 REGB4 = ((val_t (*)(struct stack_frame_t *, val_t, val_t))(CREG[0]))(closctx_param, fra.me.REG[1], fra.me.REG[2]);
2706 if (closctx_param->has_broke) {
2707 goto label1;
2708 }
2709 REGB5 = TAG_Int(0);
2710 REGB6 = TAG_Bool(VAL_ISA(REGB5, VTCOLOR_standard___kernel___Comparable___OTHER(REGB4), VTID_standard___kernel___Comparable___OTHER(REGB4))) /*cast OTHER*/;
2711 if (UNTAG_Bool(REGB6)) {
2712 } else {
2713 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
2714 }
2715 /* ../lib/standard/kernel.nit:234 */
2716 REGB5 = TAG_Bool(UNTAG_Int(REGB4)>UNTAG_Int(REGB5));
2717 /* ../lib/standard/collection/array.nit:411 */
2718 if (UNTAG_Bool(REGB5)) {
2719 /* ../lib/standard/collection/array.nit:412 */
2720 REGB2 = REGB3;
2721 /* ../lib/standard/collection/array.nit:278 */
2722 fra.me.REG[2] = fra.me.REG[0];
2723 REGB5 = REGB3;
2724 /* ../lib/standard/collection/array.nit:280 */
2725 REGB4 = TAG_Int(0);
2726 REGB6 = TAG_Bool(VAL_ISA(REGB4, VTCOLOR_standard___kernel___Comparable___OTHER(REGB5), VTID_standard___kernel___Comparable___OTHER(REGB5))) /*cast OTHER*/;
2727 if (UNTAG_Bool(REGB6)) {
2728 } else {
2729 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
2730 }
2731 /* ../lib/standard/kernel.nit:233 */
2732 REGB4 = TAG_Bool(UNTAG_Int(REGB5)>=UNTAG_Int(REGB4));
2733 /* ../lib/standard/collection/array.nit:280 */
2734 if (UNTAG_Bool(REGB4)) {
2735 REGB4 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
2736 if (UNTAG_Bool(REGB4)) {
2737 } else {
2738 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
2739 }
2740 REGB4 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2]);
2741 REGB6 = TAG_Bool(VAL_ISA(REGB4, VTCOLOR_standard___kernel___Comparable___OTHER(REGB5), VTID_standard___kernel___Comparable___OTHER(REGB5))) /*cast OTHER*/;
2742 if (UNTAG_Bool(REGB6)) {
2743 } else {
2744 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
2745 }
2746 /* ../lib/standard/kernel.nit:232 */
2747 REGB4 = TAG_Bool(UNTAG_Int(REGB5)<UNTAG_Int(REGB4));
2748 } else {
2749 /* ../lib/standard/collection/array.nit:280 */
2750 REGB6 = TAG_Bool(false);
2751 REGB4 = REGB6;
2752 }
2753 if (UNTAG_Bool(REGB4)) {
2754 } else {
2755 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
2756 }
2757 /* ../lib/standard/collection/array.nit:281 */
2758 fra.me.REG[2] = ATTR_standard___collection___array___Array____items(fra.me.REG[2]);
2759 REGB4 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
2760 if (UNTAG_Bool(REGB4)) {
2761 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
2762 }
2763 /* ../lib/standard/collection/array.nit:718 */
2764 fra.me.REG[2] = ((Nit_NativeArray)fra.me.REG[2])->val[UNTAG_Int(REGB5)];
2765 /* ../lib/standard/collection/array.nit:281 */
2766 goto label17;
2767 label17: while(0);
2768 /* ../lib/standard/collection/array.nit:413 */
2769 fra.me.REG[1] = fra.me.REG[2];
2770 }
2771 /* ../lib/standard/collection/array.nit:415 */
2772 REGB5 = TAG_Int(1);
2773 /* ../lib/standard/kernel.nit:235 */
2774 REGB5 = TAG_Int(UNTAG_Int(REGB3)+UNTAG_Int(REGB5));
2775 /* ../lib/standard/collection/array.nit:415 */
2776 REGB3 = REGB5;
2777 } else {
2778 /* ../lib/standard/collection/array.nit:410 */
2779 goto label18;
2780 }
2781 }
2782 label18: while(0);
2783 /* ../lib/standard/collection/array.nit:417 */
2784 REGB3 = TAG_Bool(IS_EQUAL_OO(REGB2,REGB0));
2785 if (UNTAG_Bool(REGB3)) {
2786 } else {
2787 /* ../lib/standard/kernel.nit:227 */
2788 REGB5 = TAG_Bool((REGB2)==(REGB0));
2789 /* ../lib/standard/collection/array.nit:417 */
2790 REGB3 = REGB5;
2791 }
2792 REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
2793 if (UNTAG_Bool(REGB3)) {
2794 /* ../lib/standard/collection/array.nit:278 */
2795 fra.me.REG[2] = fra.me.REG[0];
2796 REGB3 = REGB0;
2797 /* ../lib/standard/collection/array.nit:280 */
2798 REGB5 = TAG_Int(0);
2799 REGB4 = TAG_Bool(VAL_ISA(REGB5, VTCOLOR_standard___kernel___Comparable___OTHER(REGB3), VTID_standard___kernel___Comparable___OTHER(REGB3))) /*cast OTHER*/;
2800 if (UNTAG_Bool(REGB4)) {
2801 } else {
2802 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
2803 }
2804 /* ../lib/standard/kernel.nit:233 */
2805 REGB5 = TAG_Bool(UNTAG_Int(REGB3)>=UNTAG_Int(REGB5));
2806 /* ../lib/standard/collection/array.nit:280 */
2807 if (UNTAG_Bool(REGB5)) {
2808 REGB5 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
2809 if (UNTAG_Bool(REGB5)) {
2810 } else {
2811 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
2812 }
2813 REGB5 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2]);
2814 REGB4 = TAG_Bool(VAL_ISA(REGB5, VTCOLOR_standard___kernel___Comparable___OTHER(REGB3), VTID_standard___kernel___Comparable___OTHER(REGB3))) /*cast OTHER*/;
2815 if (UNTAG_Bool(REGB4)) {
2816 } else {
2817 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
2818 }
2819 /* ../lib/standard/kernel.nit:232 */
2820 REGB5 = TAG_Bool(UNTAG_Int(REGB3)<UNTAG_Int(REGB5));
2821 } else {
2822 /* ../lib/standard/collection/array.nit:280 */
2823 REGB4 = TAG_Bool(false);
2824 REGB5 = REGB4;
2825 }
2826 if (UNTAG_Bool(REGB5)) {
2827 } else {
2828 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
2829 }
2830 /* ../lib/standard/collection/array.nit:281 */
2831 fra.me.REG[2] = ATTR_standard___collection___array___Array____items(fra.me.REG[2]);
2832 REGB5 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
2833 if (UNTAG_Bool(REGB5)) {
2834 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
2835 }
2836 /* ../lib/standard/collection/array.nit:718 */
2837 fra.me.REG[2] = ((Nit_NativeArray)fra.me.REG[2])->val[UNTAG_Int(REGB3)];
2838 /* ../lib/standard/collection/array.nit:281 */
2839 goto label19;
2840 label19: while(0);
2841 /* ../lib/standard/collection/array.nit:418 */
2842 CALL_standard___collection___abstract_collection___Sequence_____braeq(fra.me.REG[0])(fra.me.REG[0], REGB2, fra.me.REG[2]);
2843 /* ../lib/standard/collection/array.nit:419 */
2844 CALL_standard___collection___abstract_collection___Sequence_____braeq(fra.me.REG[0])(fra.me.REG[0], REGB0, fra.me.REG[1]);
2845 }
2846 /* ../lib/standard/collection/array.nit:421 */
2847 REGB2 = TAG_Int(1);
2848 /* ../lib/standard/kernel.nit:235 */
2849 REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
2850 /* ../lib/standard/collection/array.nit:421 */
2851 REGB0 = REGB2;
2852 } else {
2853 /* ../lib/standard/collection/array.nit:406 */
2854 goto label20;
2855 }
2856 }
2857 label20: while(0);
2858 }
2859 }
2860 label1: while(0);
2861 stack_frame_head = fra.me.prev;
2862 return;
2863 }
2864 val_t OC_standard___collection___array___Array___sub_sort_11(struct stack_frame_t *closctx, val_t p0, val_t p1){
2865 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
2866 val_t REGB0;
2867 val_t tmp;
2868 /* ../lib/standard/collection/array.nit:402 */
2869 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2870 fra.me.file = LOCATE_standard___collection___array;
2871 fra.me.line = 402;
2872 fra.me.meth = LOCATE_standard___collection___array___Array___sub_sort;
2873 fra.me.has_broke = 0;
2874 fra.me.REG_size = 2;
2875 fra.me.nitni_local_ref_head = NULL;
2876 fra.me.REG[0] = NIT_NULL;
2877 fra.me.REG[1] = NIT_NULL;
2878 fra.me.REG[0] = p0;
2879 fra.me.REG[1] = p1;
2880 REGB0 = ((val_t (*)(struct stack_frame_t *, val_t, val_t))(closctx->closure_funs[0]))(closctx->closure_ctx, fra.me.REG[0], fra.me.REG[1]);
2881 if (closctx->closure_ctx->has_broke) {
2882 closctx->has_broke = 1;
2883 goto label12;
2884 }
2885 goto label12;
2886 label12: while(0);
2887 stack_frame_head = fra.me.prev;
2888 return REGB0;
2889 }
2890 val_t OC_standard___collection___array___Array___sub_sort_13(struct stack_frame_t *closctx, val_t p0, val_t p1){
2891 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
2892 val_t REGB0;
2893 val_t tmp;
2894 /* ../lib/standard/collection/array.nit:403 */
2895 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2896 fra.me.file = LOCATE_standard___collection___array;
2897 fra.me.line = 403;
2898 fra.me.meth = LOCATE_standard___collection___array___Array___sub_sort;
2899 fra.me.has_broke = 0;
2900 fra.me.REG_size = 2;
2901 fra.me.nitni_local_ref_head = NULL;
2902 fra.me.REG[0] = NIT_NULL;
2903 fra.me.REG[1] = NIT_NULL;
2904 fra.me.REG[0] = p0;
2905 fra.me.REG[1] = p1;
2906 REGB0 = ((val_t (*)(struct stack_frame_t *, val_t, val_t))(closctx->closure_funs[0]))(closctx->closure_ctx, fra.me.REG[0], fra.me.REG[1]);
2907 if (closctx->closure_ctx->has_broke) {
2908 closctx->has_broke = 1;
2909 goto label14;
2910 }
2911 goto label14;
2912 label14: while(0);
2913 stack_frame_head = fra.me.prev;
2914 return REGB0;
2915 }
2916 val_t standard___collection___array___ArrayIterator___item(val_t p0){
2917 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
2918 val_t REGB0;
2919 val_t tmp;
2920 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2921 fra.me.file = LOCATE_standard___collection___array;
2922 fra.me.line = 431;
2923 fra.me.meth = LOCATE_standard___collection___array___ArrayIterator___item;
2924 fra.me.has_broke = 0;
2925 fra.me.REG_size = 2;
2926 fra.me.nitni_local_ref_head = NULL;
2927 fra.me.REG[0] = NIT_NULL;
2928 fra.me.REG[1] = NIT_NULL;
2929 fra.me.REG[0] = p0;
2930 /* ../lib/standard/collection/array.nit:431 */
2931 REGB0 = TAG_Bool(ATTR_standard___collection___array___ArrayIterator____array(fra.me.REG[0])!=NIT_NULL);
2932 if (UNTAG_Bool(REGB0)) {
2933 } else {
2934 nit_abort("Uninitialized attribute %s", "_array", LOCATE_standard___collection___array, 431);
2935 }
2936 fra.me.REG[1] = ATTR_standard___collection___array___ArrayIterator____array(fra.me.REG[0]);
2937 REGB0 = TAG_Bool(ATTR_standard___collection___array___ArrayIterator____index(fra.me.REG[0])!=NIT_NULL);
2938 if (UNTAG_Bool(REGB0)) {
2939 } else {
2940 nit_abort("Uninitialized attribute %s", "_index", LOCATE_standard___collection___array, 431);
2941 }
2942 REGB0 = ATTR_standard___collection___array___ArrayIterator____index(fra.me.REG[0]);
2943 fra.me.REG[1] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra.me.REG[1])(fra.me.REG[1], REGB0);
2944 goto label1;
2945 label1: while(0);
2946 stack_frame_head = fra.me.prev;
2947 return fra.me.REG[1];
2948 }
2949 val_t standard___collection___array___ArrayIterator___is_ok(val_t p0){
2950 struct {struct stack_frame_t me;} fra;
2951 val_t REGB0;
2952 val_t REGB1;
2953 val_t REGB2;
2954 val_t tmp;
2955 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2956 fra.me.file = LOCATE_standard___collection___array;
2957 fra.me.line = 435;
2958 fra.me.meth = LOCATE_standard___collection___array___ArrayIterator___is_ok;
2959 fra.me.has_broke = 0;
2960 fra.me.REG_size = 1;
2961 fra.me.nitni_local_ref_head = NULL;
2962 fra.me.REG[0] = NIT_NULL;
2963 fra.me.REG[0] = p0;
2964 /* ../lib/standard/collection/array.nit:435 */
2965 REGB0 = TAG_Bool(ATTR_standard___collection___array___ArrayIterator____index(fra.me.REG[0])!=NIT_NULL);
2966 if (UNTAG_Bool(REGB0)) {
2967 } else {
2968 nit_abort("Uninitialized attribute %s", "_index", LOCATE_standard___collection___array, 435);
2969 }
2970 REGB0 = ATTR_standard___collection___array___ArrayIterator____index(fra.me.REG[0]);
2971 REGB1 = TAG_Bool(ATTR_standard___collection___array___ArrayIterator____array(fra.me.REG[0])!=NIT_NULL);
2972 if (UNTAG_Bool(REGB1)) {
2973 } else {
2974 nit_abort("Uninitialized attribute %s", "_array", LOCATE_standard___collection___array, 435);
2975 }
2976 fra.me.REG[0] = ATTR_standard___collection___array___ArrayIterator____array(fra.me.REG[0]);
2977 /* ../lib/standard/collection/array.nit:24 */
2978 REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
2979 if (UNTAG_Bool(REGB1)) {
2980 } else {
2981 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
2982 }
2983 REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0]);
2984 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
2985 if (UNTAG_Bool(REGB2)) {
2986 } else {
2987 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
2988 }
2989 /* ../lib/standard/kernel.nit:232 */
2990 REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
2991 /* ../lib/standard/collection/array.nit:435 */
2992 goto label1;
2993 label1: while(0);
2994 stack_frame_head = fra.me.prev;
2995 return REGB1;
2996 }
2997 void standard___collection___array___ArrayIterator___next(val_t p0){
2998 struct {struct stack_frame_t me;} fra;
2999 val_t REGB0;
3000 val_t REGB1;
3001 val_t tmp;
3002 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3003 fra.me.file = LOCATE_standard___collection___array;
3004 fra.me.line = 437;
3005 fra.me.meth = LOCATE_standard___collection___array___ArrayIterator___next;
3006 fra.me.has_broke = 0;
3007 fra.me.REG_size = 1;
3008 fra.me.nitni_local_ref_head = NULL;
3009 fra.me.REG[0] = NIT_NULL;
3010 fra.me.REG[0] = p0;
3011 /* ../lib/standard/collection/array.nit:437 */
3012 REGB0 = ATTR_standard___collection___array___ArrayIterator____index(fra.me.REG[0]);
3013 REGB1 = TAG_Int(1);
3014 /* ../lib/standard/kernel.nit:235 */
3015 REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
3016 /* ../lib/standard/collection/array.nit:437 */
3017 ATTR_standard___collection___array___ArrayIterator____index(fra.me.REG[0]) = REGB1;
3018 stack_frame_head = fra.me.prev;
3019 return;
3020 }
3021 void standard___collection___array___ArrayIterator___init(val_t p0, val_t p1, int* init_table){
3022 int itpos6 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_standard___collection___array___ArrayIterator].i;
3023 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
3024 val_t REGB0;
3025 val_t tmp;
3026 if (init_table[itpos6]) return;
3027 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3028 fra.me.file = LOCATE_standard___collection___array;
3029 fra.me.line = 439;
3030 fra.me.meth = LOCATE_standard___collection___array___ArrayIterator___init;
3031 fra.me.has_broke = 0;
3032 fra.me.REG_size = 2;
3033 fra.me.nitni_local_ref_head = NULL;
3034 fra.me.REG[0] = NIT_NULL;
3035 fra.me.REG[1] = NIT_NULL;
3036 fra.me.REG[0] = p0;
3037 fra.me.REG[1] = p1;
3038 /* ../lib/standard/collection/array.nit:441 */
3039 ATTR_standard___collection___array___ArrayIterator____array(fra.me.REG[0]) = fra.me.REG[1];
3040 /* ../lib/standard/collection/array.nit:442 */
3041 REGB0 = TAG_Int(0);
3042 ATTR_standard___collection___array___ArrayIterator____index(fra.me.REG[0]) = REGB0;
3043 stack_frame_head = fra.me.prev;
3044 init_table[itpos6] = 1;
3045 return;
3046 }
3047 val_t standard___collection___array___ArrayIterator___index(val_t p0){
3048 struct {struct stack_frame_t me;} fra;
3049 val_t REGB0;
3050 val_t tmp;
3051 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3052 fra.me.file = LOCATE_standard___collection___array;
3053 fra.me.line = 445;
3054 fra.me.meth = LOCATE_standard___collection___array___ArrayIterator___index;
3055 fra.me.has_broke = 0;
3056 fra.me.REG_size = 1;
3057 fra.me.nitni_local_ref_head = NULL;
3058 fra.me.REG[0] = NIT_NULL;
3059 fra.me.REG[0] = p0;
3060 /* ../lib/standard/collection/array.nit:445 */
3061 REGB0 = TAG_Bool(ATTR_standard___collection___array___ArrayIterator____index(fra.me.REG[0])!=NIT_NULL);
3062 if (UNTAG_Bool(REGB0)) {
3063 } else {
3064 nit_abort("Uninitialized attribute %s", "_index", LOCATE_standard___collection___array, 445);
3065 }
3066 REGB0 = ATTR_standard___collection___array___ArrayIterator____index(fra.me.REG[0]);
3067 stack_frame_head = fra.me.prev;
3068 return REGB0;
3069 }
3070 val_t standard___collection___array___ArraySet___has(val_t p0, val_t p1){
3071 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
3072 val_t REGB0;
3073 val_t tmp;
3074 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3075 fra.me.file = LOCATE_standard___collection___array;
3076 fra.me.line = 458;
3077 fra.me.meth = LOCATE_standard___collection___array___ArraySet___has;
3078 fra.me.has_broke = 0;
3079 fra.me.REG_size = 2;
3080 fra.me.nitni_local_ref_head = NULL;
3081 fra.me.REG[0] = NIT_NULL;
3082 fra.me.REG[1] = NIT_NULL;
3083 fra.me.REG[0] = p0;
3084 fra.me.REG[1] = p1;
3085 /* ../lib/standard/collection/array.nit:458 */
3086 REGB0 = TAG_Bool(ATTR_standard___collection___array___ArraySet____array(fra.me.REG[0])!=NIT_NULL);
3087 if (UNTAG_Bool(REGB0)) {
3088 } else {
3089 nit_abort("Uninitialized attribute %s", "_array", LOCATE_standard___collection___array, 458);
3090 }
3091 fra.me.REG[0] = ATTR_standard___collection___array___ArraySet____array(fra.me.REG[0]);
3092 REGB0 = CALL_standard___collection___abstract_collection___Collection___has(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
3093 goto label1;
3094 label1: while(0);
3095 stack_frame_head = fra.me.prev;
3096 return REGB0;
3097 }
3098 void standard___collection___array___ArraySet___add(val_t p0, val_t p1){
3099 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
3100 val_t REGB0;
3101 val_t tmp;
3102 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3103 fra.me.file = LOCATE_standard___collection___array;
3104 fra.me.line = 460;
3105 fra.me.meth = LOCATE_standard___collection___array___ArraySet___add;
3106 fra.me.has_broke = 0;
3107 fra.me.REG_size = 3;
3108 fra.me.nitni_local_ref_head = NULL;
3109 fra.me.REG[0] = NIT_NULL;
3110 fra.me.REG[1] = NIT_NULL;
3111 fra.me.REG[2] = NIT_NULL;
3112 fra.me.REG[0] = p0;
3113 fra.me.REG[1] = p1;
3114 /* ../lib/standard/collection/array.nit:460 */
3115 REGB0 = TAG_Bool(ATTR_standard___collection___array___ArraySet____array(fra.me.REG[0])!=NIT_NULL);
3116 if (UNTAG_Bool(REGB0)) {
3117 } else {
3118 nit_abort("Uninitialized attribute %s", "_array", LOCATE_standard___collection___array, 460);
3119 }
3120 fra.me.REG[2] = ATTR_standard___collection___array___ArraySet____array(fra.me.REG[0]);
3121 REGB0 = CALL_standard___collection___abstract_collection___Collection___has(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
3122 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
3123 if (UNTAG_Bool(REGB0)) {
3124 REGB0 = TAG_Bool(ATTR_standard___collection___array___ArraySet____array(fra.me.REG[0])!=NIT_NULL);
3125 if (UNTAG_Bool(REGB0)) {
3126 } else {
3127 nit_abort("Uninitialized attribute %s", "_array", LOCATE_standard___collection___array, 460);
3128 }
3129 fra.me.REG[0] = ATTR_standard___collection___array___ArraySet____array(fra.me.REG[0]);
3130 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
3131 }
3132 stack_frame_head = fra.me.prev;
3133 return;
3134 }
3135 val_t standard___collection___array___ArraySet___is_empty(val_t p0){
3136 struct {struct stack_frame_t me;} fra;
3137 val_t REGB0;
3138 val_t tmp;
3139 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3140 fra.me.file = LOCATE_standard___collection___array;
3141 fra.me.line = 462;
3142 fra.me.meth = LOCATE_standard___collection___array___ArraySet___is_empty;
3143 fra.me.has_broke = 0;
3144 fra.me.REG_size = 1;
3145 fra.me.nitni_local_ref_head = NULL;
3146 fra.me.REG[0] = NIT_NULL;
3147 fra.me.REG[0] = p0;
3148 /* ../lib/standard/collection/array.nit:462 */
3149 REGB0 = TAG_Bool(ATTR_standard___collection___array___ArraySet____array(fra.me.REG[0])!=NIT_NULL);
3150 if (UNTAG_Bool(REGB0)) {
3151 } else {
3152 nit_abort("Uninitialized attribute %s", "_array", LOCATE_standard___collection___array, 462);
3153 }
3154 fra.me.REG[0] = ATTR_standard___collection___array___ArraySet____array(fra.me.REG[0]);
3155 REGB0 = CALL_standard___collection___abstract_collection___Collection___is_empty(fra.me.REG[0])(fra.me.REG[0]);
3156 goto label1;
3157 label1: while(0);
3158 stack_frame_head = fra.me.prev;
3159 return REGB0;
3160 }
3161 val_t standard___collection___array___ArraySet___length(val_t p0){
3162 struct {struct stack_frame_t me;} fra;
3163 val_t REGB0;
3164 val_t tmp;
3165 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3166 fra.me.file = LOCATE_standard___collection___array;
3167 fra.me.line = 464;
3168 fra.me.meth = LOCATE_standard___collection___array___ArraySet___length;
3169 fra.me.has_broke = 0;
3170 fra.me.REG_size = 1;
3171 fra.me.nitni_local_ref_head = NULL;
3172 fra.me.REG[0] = NIT_NULL;
3173 fra.me.REG[0] = p0;
3174 /* ../lib/standard/collection/array.nit:464 */
3175 REGB0 = TAG_Bool(ATTR_standard___collection___array___ArraySet____array(fra.me.REG[0])!=NIT_NULL);
3176 if (UNTAG_Bool(REGB0)) {
3177 } else {
3178 nit_abort("Uninitialized attribute %s", "_array", LOCATE_standard___collection___array, 464);
3179 }
3180 fra.me.REG[0] = ATTR_standard___collection___array___ArraySet____array(fra.me.REG[0]);
3181 /* ../lib/standard/collection/array.nit:24 */
3182 REGB0 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
3183 if (UNTAG_Bool(REGB0)) {
3184 } else {
3185 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
3186 }
3187 REGB0 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0]);
3188 /* ../lib/standard/collection/array.nit:464 */
3189 goto label1;
3190 label1: while(0);
3191 stack_frame_head = fra.me.prev;
3192 return REGB0;
3193 }
3194 val_t standard___collection___array___ArraySet___first(val_t p0){
3195 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
3196 val_t REGB0;
3197 val_t REGB1;
3198 val_t REGB2;
3199 val_t tmp;
3200 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3201 fra.me.file = LOCATE_standard___collection___array;
3202 fra.me.line = 466;
3203 fra.me.meth = LOCATE_standard___collection___array___ArraySet___first;
3204 fra.me.has_broke = 0;
3205 fra.me.REG_size = 2;
3206 fra.me.nitni_local_ref_head = NULL;
3207 fra.me.REG[0] = NIT_NULL;
3208 fra.me.REG[1] = NIT_NULL;
3209 fra.me.REG[0] = p0;
3210 /* ../lib/standard/collection/array.nit:468 */
3211 REGB0 = TAG_Bool(ATTR_standard___collection___array___ArraySet____array(fra.me.REG[0])!=NIT_NULL);
3212 if (UNTAG_Bool(REGB0)) {
3213 } else {
3214 nit_abort("Uninitialized attribute %s", "_array", LOCATE_standard___collection___array, 468);
3215 }
3216 fra.me.REG[1] = ATTR_standard___collection___array___ArraySet____array(fra.me.REG[0]);
3217 /* ../lib/standard/collection/array.nit:24 */
3218 REGB0 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1])!=NIT_NULL);
3219 if (UNTAG_Bool(REGB0)) {
3220 } else {
3221 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
3222 }
3223 REGB0 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1]);
3224 /* ../lib/standard/collection/array.nit:468 */
3225 REGB1 = TAG_Int(0);
3226 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
3227 if (UNTAG_Bool(REGB2)) {
3228 } else {
3229 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
3230 }
3231 /* ../lib/standard/kernel.nit:234 */
3232 REGB1 = TAG_Bool(UNTAG_Int(REGB0)>UNTAG_Int(REGB1));
3233 /* ../lib/standard/collection/array.nit:468 */
3234 if (UNTAG_Bool(REGB1)) {
3235 } else {
3236 nit_abort("Assert failed", NULL, LOCATE_standard___collection___array, 468);
3237 }
3238 /* ../lib/standard/collection/array.nit:469 */
3239 REGB1 = TAG_Bool(ATTR_standard___collection___array___ArraySet____array(fra.me.REG[0])!=NIT_NULL);
3240 if (UNTAG_Bool(REGB1)) {
3241 } else {
3242 nit_abort("Uninitialized attribute %s", "_array", LOCATE_standard___collection___array, 469);
3243 }
3244 fra.me.REG[0] = ATTR_standard___collection___array___ArraySet____array(fra.me.REG[0]);
3245 fra.me.REG[0] = CALL_standard___collection___abstract_collection___Collection___first(fra.me.REG[0])(fra.me.REG[0]);
3246 goto label1;
3247 label1: while(0);
3248 stack_frame_head = fra.me.prev;
3249 return fra.me.REG[0];
3250 }
3251 void standard___collection___array___ArraySet___remove(val_t p0, val_t p1){
3252 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
3253 val_t REGB0;
3254 val_t REGB1;
3255 val_t REGB2;
3256 val_t tmp;
3257 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3258 fra.me.file = LOCATE_standard___collection___array;
3259 fra.me.line = 472;
3260 fra.me.meth = LOCATE_standard___collection___array___ArraySet___remove;
3261 fra.me.has_broke = 0;
3262 fra.me.REG_size = 3;
3263 fra.me.nitni_local_ref_head = NULL;
3264 fra.me.REG[0] = NIT_NULL;
3265 fra.me.REG[1] = NIT_NULL;
3266 fra.me.REG[2] = NIT_NULL;
3267 fra.me.REG[0] = p0;
3268 fra.me.REG[1] = p1;
3269 /* ../lib/standard/collection/array.nit:474 */
3270 REGB0 = TAG_Bool(ATTR_standard___collection___array___ArraySet____array(fra.me.REG[0])!=NIT_NULL);
3271 if (UNTAG_Bool(REGB0)) {
3272 } else {
3273 nit_abort("Uninitialized attribute %s", "_array", LOCATE_standard___collection___array, 474);
3274 }
3275 fra.me.REG[2] = ATTR_standard___collection___array___ArraySet____array(fra.me.REG[0]);
3276 REGB0 = CALL_standard___collection___abstract_collection___SequenceRead___index_of(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
3277 /* ../lib/standard/collection/array.nit:475 */
3278 REGB1 = TAG_Int(0);
3279 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
3280 if (UNTAG_Bool(REGB2)) {
3281 } else {
3282 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
3283 }
3284 /* ../lib/standard/kernel.nit:233 */
3285 REGB1 = TAG_Bool(UNTAG_Int(REGB0)>=UNTAG_Int(REGB1));
3286 /* ../lib/standard/collection/array.nit:475 */
3287 if (UNTAG_Bool(REGB1)) {
3288 CALL_standard___collection___array___ArraySet___remove_at(fra.me.REG[0])(fra.me.REG[0], REGB0);
3289 }
3290 stack_frame_head = fra.me.prev;
3291 return;
3292 }
3293 void standard___collection___array___ArraySet___remove_all(val_t p0, val_t p1){
3294 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
3295 val_t tmp;
3296 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3297 fra.me.file = LOCATE_standard___collection___array;
3298 fra.me.line = 478;
3299 fra.me.meth = LOCATE_standard___collection___array___ArraySet___remove_all;
3300 fra.me.has_broke = 0;
3301 fra.me.REG_size = 2;
3302 fra.me.nitni_local_ref_head = NULL;
3303 fra.me.REG[0] = NIT_NULL;
3304 fra.me.REG[1] = NIT_NULL;
3305 fra.me.REG[0] = p0;
3306 fra.me.REG[1] = p1;
3307 /* ../lib/standard/collection/array.nit:478 */
3308 CALL_standard___collection___abstract_collection___RemovableCollection___remove(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
3309 stack_frame_head = fra.me.prev;
3310 return;
3311 }
3312 void standard___collection___array___ArraySet___clear(val_t p0){
3313 struct {struct stack_frame_t me;} fra;
3314 val_t REGB0;
3315 val_t tmp;
3316 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3317 fra.me.file = LOCATE_standard___collection___array;
3318 fra.me.line = 480;
3319 fra.me.meth = LOCATE_standard___collection___array___ArraySet___clear;
3320 fra.me.has_broke = 0;
3321 fra.me.REG_size = 1;
3322 fra.me.nitni_local_ref_head = NULL;
3323 fra.me.REG[0] = NIT_NULL;
3324 fra.me.REG[0] = p0;
3325 /* ../lib/standard/collection/array.nit:480 */
3326 REGB0 = TAG_Bool(ATTR_standard___collection___array___ArraySet____array(fra.me.REG[0])!=NIT_NULL);
3327 if (UNTAG_Bool(REGB0)) {
3328 } else {
3329 nit_abort("Uninitialized attribute %s", "_array", LOCATE_standard___collection___array, 480);
3330 }
3331 fra.me.REG[0] = ATTR_standard___collection___array___ArraySet____array(fra.me.REG[0]);
3332 CALL_standard___collection___abstract_collection___RemovableCollection___clear(fra.me.REG[0])(fra.me.REG[0]);
3333 stack_frame_head = fra.me.prev;
3334 return;
3335 }
3336 val_t standard___collection___array___ArraySet___iterator(val_t p0){
3337 struct {struct stack_frame_t me;} fra;
3338 val_t REGB0;
3339 val_t tmp;
3340 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3341 fra.me.file = LOCATE_standard___collection___array;
3342 fra.me.line = 482;
3343 fra.me.meth = LOCATE_standard___collection___array___ArraySet___iterator;
3344 fra.me.has_broke = 0;
3345 fra.me.REG_size = 1;
3346 fra.me.nitni_local_ref_head = NULL;
3347 fra.me.REG[0] = NIT_NULL;
3348 fra.me.REG[0] = p0;
3349 /* ../lib/standard/collection/array.nit:482 */
3350 REGB0 = TAG_Bool(ATTR_standard___collection___array___ArraySet____array(fra.me.REG[0])!=NIT_NULL);
3351 if (UNTAG_Bool(REGB0)) {
3352 } else {
3353 nit_abort("Uninitialized attribute %s", "_array", LOCATE_standard___collection___array, 482);
3354 }
3355 fra.me.REG[0] = ATTR_standard___collection___array___ArraySet____array(fra.me.REG[0]);
3356 fra.me.REG[0] = CALL_standard___collection___abstract_collection___Collection___iterator(fra.me.REG[0])(fra.me.REG[0]);
3357 fra.me.REG[0] = NEW_ArraySetIterator_standard___collection___array___ArraySetIterator___init(fra.me.REG[0]);
3358 goto label1;
3359 label1: while(0);
3360 stack_frame_head = fra.me.prev;
3361 return fra.me.REG[0];
3362 }
3363 void standard___collection___array___ArraySet___enlarge(val_t p0, val_t p1){
3364 struct {struct stack_frame_t me;} fra;
3365 val_t REGB0;
3366 val_t REGB1;
3367 val_t tmp;
3368 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3369 fra.me.file = LOCATE_standard___collection___array;
3370 fra.me.line = 484;
3371 fra.me.meth = LOCATE_standard___collection___array___ArraySet___enlarge;
3372 fra.me.has_broke = 0;
3373 fra.me.REG_size = 1;
3374 fra.me.nitni_local_ref_head = NULL;
3375 fra.me.REG[0] = NIT_NULL;
3376 fra.me.REG[0] = p0;
3377 REGB0 = p1;
3378 /* ../lib/standard/collection/array.nit:485 */
3379 REGB1 = TAG_Bool(ATTR_standard___collection___array___ArraySet____array(fra.me.REG[0])!=NIT_NULL);
3380 if (UNTAG_Bool(REGB1)) {
3381 } else {
3382 nit_abort("Uninitialized attribute %s", "_array", LOCATE_standard___collection___array, 485);
3383 }
3384 fra.me.REG[0] = ATTR_standard___collection___array___ArraySet____array(fra.me.REG[0]);
3385 CALL_standard___collection___array___AbstractArray___enlarge(fra.me.REG[0])(fra.me.REG[0], REGB0);
3386 stack_frame_head = fra.me.prev;
3387 return;
3388 }
3389 void standard___collection___array___ArraySet___remove_at(val_t p0, val_t p1){
3390 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
3391 val_t REGB0;
3392 val_t REGB1;
3393 val_t tmp;
3394 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3395 fra.me.file = LOCATE_standard___collection___array;
3396 fra.me.line = 487;
3397 fra.me.meth = LOCATE_standard___collection___array___ArraySet___remove_at;
3398 fra.me.has_broke = 0;
3399 fra.me.REG_size = 3;
3400 fra.me.nitni_local_ref_head = NULL;
3401 fra.me.REG[0] = NIT_NULL;
3402 fra.me.REG[1] = NIT_NULL;
3403 fra.me.REG[2] = NIT_NULL;
3404 fra.me.REG[0] = p0;
3405 REGB0 = p1;
3406 /* ../lib/standard/collection/array.nit:489 */
3407 REGB1 = TAG_Bool(ATTR_standard___collection___array___ArraySet____array(fra.me.REG[0])!=NIT_NULL);
3408 if (UNTAG_Bool(REGB1)) {
3409 } else {
3410 nit_abort("Uninitialized attribute %s", "_array", LOCATE_standard___collection___array, 489);
3411 }
3412 fra.me.REG[1] = ATTR_standard___collection___array___ArraySet____array(fra.me.REG[0]);
3413 REGB1 = TAG_Bool(ATTR_standard___collection___array___ArraySet____array(fra.me.REG[0])!=NIT_NULL);
3414 if (UNTAG_Bool(REGB1)) {
3415 } else {
3416 nit_abort("Uninitialized attribute %s", "_array", LOCATE_standard___collection___array, 489);
3417 }
3418 fra.me.REG[2] = ATTR_standard___collection___array___ArraySet____array(fra.me.REG[0]);
3419 fra.me.REG[2] = CALL_standard___collection___abstract_collection___SequenceRead___last(fra.me.REG[2])(fra.me.REG[2]);
3420 CALL_standard___collection___abstract_collection___Sequence_____braeq(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
3421 /* ../lib/standard/collection/array.nit:490 */
3422 REGB0 = TAG_Bool(ATTR_standard___collection___array___ArraySet____array(fra.me.REG[0])!=NIT_NULL);
3423 if (UNTAG_Bool(REGB0)) {
3424 } else {
3425 nit_abort("Uninitialized attribute %s", "_array", LOCATE_standard___collection___array, 490);
3426 }
3427 fra.me.REG[0] = ATTR_standard___collection___array___ArraySet____array(fra.me.REG[0]);
3428 CALL_standard___collection___abstract_collection___Sequence___pop(fra.me.REG[0])(fra.me.REG[0]);
3429 stack_frame_head = fra.me.prev;
3430 return;
3431 }
3432 void standard___collection___array___ArraySet___init(val_t p0, int* init_table){
3433 int itpos7 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_standard___collection___array___ArraySet].i;
3434 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
3435 val_t tmp;
3436 if (init_table[itpos7]) return;
3437 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3438 fra.me.file = LOCATE_standard___collection___array;
3439 fra.me.line = 493;
3440 fra.me.meth = LOCATE_standard___collection___array___ArraySet___init;
3441 fra.me.has_broke = 0;
3442 fra.me.REG_size = 2;
3443 fra.me.nitni_local_ref_head = NULL;
3444 fra.me.REG[0] = NIT_NULL;
3445 fra.me.REG[1] = NIT_NULL;
3446 fra.me.REG[0] = p0;
3447 /* ../lib/standard/collection/array.nit:494 */
3448 fra.me.REG[1] = NEW_Array_standard___collection___array___Array___init();
3449 ATTR_standard___collection___array___ArraySet____array(fra.me.REG[0]) = fra.me.REG[1];
3450 stack_frame_head = fra.me.prev;
3451 init_table[itpos7] = 1;
3452 return;
3453 }
3454 void standard___collection___array___ArraySet___with_capacity(val_t p0, val_t p1, int* init_table){
3455 int itpos8 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_standard___collection___array___ArraySet].i;
3456 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
3457 val_t REGB0;
3458 val_t tmp;
3459 if (init_table[itpos8]) return;
3460 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3461 fra.me.file = LOCATE_standard___collection___array;
3462 fra.me.line = 496;
3463 fra.me.meth = LOCATE_standard___collection___array___ArraySet___with_capacity;
3464 fra.me.has_broke = 0;
3465 fra.me.REG_size = 2;
3466 fra.me.nitni_local_ref_head = NULL;
3467 fra.me.REG[0] = NIT_NULL;
3468 fra.me.REG[1] = NIT_NULL;
3469 fra.me.REG[0] = p0;
3470 REGB0 = p1;
3471 /* ../lib/standard/collection/array.nit:497 */
3472 fra.me.REG[1] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
3473 ATTR_standard___collection___array___ArraySet____array(fra.me.REG[0]) = fra.me.REG[1];
3474 stack_frame_head = fra.me.prev;
3475 init_table[itpos8] = 1;
3476 return;
3477 }
3478 val_t standard___collection___array___ArraySetIterator___is_ok(val_t p0){
3479 struct {struct stack_frame_t me;} fra;
3480 val_t REGB0;
3481 val_t tmp;
3482 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3483 fra.me.file = LOCATE_standard___collection___array;
3484 fra.me.line = 504;
3485 fra.me.meth = LOCATE_standard___collection___array___ArraySetIterator___is_ok;
3486 fra.me.has_broke = 0;
3487 fra.me.REG_size = 1;
3488 fra.me.nitni_local_ref_head = NULL;
3489 fra.me.REG[0] = NIT_NULL;
3490 fra.me.REG[0] = p0;
3491 /* ../lib/standard/collection/array.nit:504 */
3492 REGB0 = TAG_Bool(ATTR_standard___collection___array___ArraySetIterator____iter(fra.me.REG[0])!=NIT_NULL);
3493 if (UNTAG_Bool(REGB0)) {
3494 } else {
3495 nit_abort("Uninitialized attribute %s", "_iter", LOCATE_standard___collection___array, 504);
3496 }
3497 fra.me.REG[0] = ATTR_standard___collection___array___ArraySetIterator____iter(fra.me.REG[0]);
3498 REGB0 = CALL_standard___collection___abstract_collection___Iterator___is_ok(fra.me.REG[0])(fra.me.REG[0]);
3499 goto label1;
3500 label1: while(0);
3501 stack_frame_head = fra.me.prev;
3502 return REGB0;
3503 }
3504 void standard___collection___array___ArraySetIterator___next(val_t p0){
3505 struct {struct stack_frame_t me;} fra;
3506 val_t REGB0;
3507 val_t tmp;
3508 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3509 fra.me.file = LOCATE_standard___collection___array;
3510 fra.me.line = 506;
3511 fra.me.meth = LOCATE_standard___collection___array___ArraySetIterator___next;
3512 fra.me.has_broke = 0;
3513 fra.me.REG_size = 1;
3514 fra.me.nitni_local_ref_head = NULL;
3515 fra.me.REG[0] = NIT_NULL;
3516 fra.me.REG[0] = p0;
3517 /* ../lib/standard/collection/array.nit:506 */
3518 REGB0 = TAG_Bool(ATTR_standard___collection___array___ArraySetIterator____iter(fra.me.REG[0])!=NIT_NULL);
3519 if (UNTAG_Bool(REGB0)) {
3520 } else {
3521 nit_abort("Uninitialized attribute %s", "_iter", LOCATE_standard___collection___array, 506);
3522 }
3523 fra.me.REG[0] = ATTR_standard___collection___array___ArraySetIterator____iter(fra.me.REG[0]);
3524 CALL_standard___collection___abstract_collection___Iterator___next(fra.me.REG[0])(fra.me.REG[0]);
3525 stack_frame_head = fra.me.prev;
3526 return;
3527 }
3528 val_t standard___collection___array___ArraySetIterator___item(val_t p0){
3529 struct {struct stack_frame_t me;} fra;
3530 val_t REGB0;
3531 val_t tmp;
3532 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3533 fra.me.file = LOCATE_standard___collection___array;
3534 fra.me.line = 508;
3535 fra.me.meth = LOCATE_standard___collection___array___ArraySetIterator___item;
3536 fra.me.has_broke = 0;
3537 fra.me.REG_size = 1;
3538 fra.me.nitni_local_ref_head = NULL;
3539 fra.me.REG[0] = NIT_NULL;
3540 fra.me.REG[0] = p0;
3541 /* ../lib/standard/collection/array.nit:508 */
3542 REGB0 = TAG_Bool(ATTR_standard___collection___array___ArraySetIterator____iter(fra.me.REG[0])!=NIT_NULL);
3543 if (UNTAG_Bool(REGB0)) {
3544 } else {
3545 nit_abort("Uninitialized attribute %s", "_iter", LOCATE_standard___collection___array, 508);
3546 }
3547 fra.me.REG[0] = ATTR_standard___collection___array___ArraySetIterator____iter(fra.me.REG[0]);
3548 fra.me.REG[0] = CALL_standard___collection___abstract_collection___Iterator___item(fra.me.REG[0])(fra.me.REG[0]);
3549 goto label1;
3550 label1: while(0);
3551 stack_frame_head = fra.me.prev;
3552 return fra.me.REG[0];
3553 }
3554 void standard___collection___array___ArraySetIterator___init(val_t p0, val_t p1, int* init_table){
3555 int itpos9 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_standard___collection___array___ArraySetIterator].i;
3556 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
3557 val_t tmp;
3558 if (init_table[itpos9]) return;
3559 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3560 fra.me.file = LOCATE_standard___collection___array;
3561 fra.me.line = 510;
3562 fra.me.meth = LOCATE_standard___collection___array___ArraySetIterator___init;
3563 fra.me.has_broke = 0;
3564 fra.me.REG_size = 2;
3565 fra.me.nitni_local_ref_head = NULL;
3566 fra.me.REG[0] = NIT_NULL;
3567 fra.me.REG[1] = NIT_NULL;
3568 fra.me.REG[0] = p0;
3569 fra.me.REG[1] = p1;
3570 /* ../lib/standard/collection/array.nit:510 */
3571 ATTR_standard___collection___array___ArraySetIterator____iter(fra.me.REG[0]) = fra.me.REG[1];
3572 stack_frame_head = fra.me.prev;
3573 init_table[itpos9] = 1;
3574 return;
3575 }
3576 val_t standard___collection___array___ArrayMap_____bra(val_t p0, val_t p1){
3577 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
3578 val_t REGB0;
3579 val_t REGB1;
3580 val_t REGB2;
3581 val_t tmp;
3582 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3583 fra.me.file = LOCATE_standard___collection___array;
3584 fra.me.line = 520;
3585 fra.me.meth = LOCATE_standard___collection___array___ArrayMap_____bra;
3586 fra.me.has_broke = 0;
3587 fra.me.REG_size = 2;
3588 fra.me.nitni_local_ref_head = NULL;
3589 fra.me.REG[0] = NIT_NULL;
3590 fra.me.REG[1] = NIT_NULL;
3591 fra.me.REG[0] = p0;
3592 fra.me.REG[1] = p1;
3593 /* ../lib/standard/collection/array.nit:523 */
3594 REGB0 = CALL_standard___collection___array___ArrayMap___index(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
3595 /* ../lib/standard/collection/array.nit:524 */
3596 REGB1 = TAG_Int(0);
3597 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
3598 if (UNTAG_Bool(REGB2)) {
3599 } else {
3600 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
3601 }
3602 /* ../lib/standard/kernel.nit:233 */
3603 REGB1 = TAG_Bool(UNTAG_Int(REGB0)>=UNTAG_Int(REGB1));
3604 /* ../lib/standard/collection/array.nit:524 */
3605 if (UNTAG_Bool(REGB1)) {
3606 /* ../lib/standard/collection/array.nit:525 */
3607 REGB1 = TAG_Bool(ATTR_standard___collection___array___ArrayMap____items(fra.me.REG[0])!=NIT_NULL);
3608 if (UNTAG_Bool(REGB1)) {
3609 } else {
3610 nit_abort("Uninitialized attribute %s", "_items", LOCATE_standard___collection___array, 525);
3611 }
3612 fra.me.REG[0] = ATTR_standard___collection___array___ArrayMap____items(fra.me.REG[0]);
3613 /* ../lib/standard/collection/array.nit:280 */
3614 REGB1 = TAG_Int(0);
3615 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
3616 if (UNTAG_Bool(REGB2)) {
3617 } else {
3618 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
3619 }
3620 /* ../lib/standard/kernel.nit:233 */
3621 REGB1 = TAG_Bool(UNTAG_Int(REGB0)>=UNTAG_Int(REGB1));
3622 /* ../lib/standard/collection/array.nit:280 */
3623 if (UNTAG_Bool(REGB1)) {
3624 REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
3625 if (UNTAG_Bool(REGB1)) {
3626 } else {
3627 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
3628 }
3629 REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0]);
3630 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
3631 if (UNTAG_Bool(REGB2)) {
3632 } else {
3633 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
3634 }
3635 /* ../lib/standard/kernel.nit:232 */
3636 REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
3637 } else {
3638 /* ../lib/standard/collection/array.nit:280 */
3639 REGB2 = TAG_Bool(false);
3640 REGB1 = REGB2;
3641 }
3642 if (UNTAG_Bool(REGB1)) {
3643 } else {
3644 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
3645 }
3646 /* ../lib/standard/collection/array.nit:281 */
3647 fra.me.REG[0] = ATTR_standard___collection___array___Array____items(fra.me.REG[0]);
3648 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
3649 if (UNTAG_Bool(REGB1)) {
3650 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
3651 }
3652 /* ../lib/standard/collection/array.nit:718 */
3653 fra.me.REG[0] = ((Nit_NativeArray)fra.me.REG[0])->val[UNTAG_Int(REGB0)];
3654 /* ../lib/standard/collection/array.nit:281 */
3655 goto label1;
3656 label1: while(0);
3657 /* ../lib/standard/collection/array.nit:525 */
3658 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
3659 if (UNTAG_Bool(REGB0)) {
3660 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 525);
3661 }
3662 fra.me.REG[0] = CALL_standard___collection___abstract_collection___Couple___second(fra.me.REG[0])(fra.me.REG[0]);
3663 goto label2;
3664 } else {
3665 /* ../lib/standard/collection/array.nit:527 */
3666 nit_abort("Aborted", NULL, LOCATE_standard___collection___array, 527);
3667 }
3668 label2: while(0);
3669 stack_frame_head = fra.me.prev;
3670 return fra.me.REG[0];
3671 }
3672 void standard___collection___array___ArrayMap_____braeq(val_t p0, val_t p1, val_t p2){
3673 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
3674 val_t REGB0;
3675 val_t REGB1;
3676 val_t REGB2;
3677 val_t tmp;
3678 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3679 fra.me.file = LOCATE_standard___collection___array;
3680 fra.me.line = 531;
3681 fra.me.meth = LOCATE_standard___collection___array___ArrayMap_____braeq;
3682 fra.me.has_broke = 0;
3683 fra.me.REG_size = 4;
3684 fra.me.nitni_local_ref_head = NULL;
3685 fra.me.REG[0] = NIT_NULL;
3686 fra.me.REG[1] = NIT_NULL;
3687 fra.me.REG[2] = NIT_NULL;
3688 fra.me.REG[3] = NIT_NULL;
3689 fra.me.REG[0] = p0;
3690 fra.me.REG[1] = p1;
3691 fra.me.REG[2] = p2;
3692 /* ../lib/standard/collection/array.nit:534 */
3693 REGB0 = CALL_standard___collection___array___ArrayMap___index(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
3694 /* ../lib/standard/collection/array.nit:535 */
3695 REGB1 = TAG_Int(0);
3696 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
3697 if (UNTAG_Bool(REGB2)) {
3698 } else {
3699 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
3700 }
3701 /* ../lib/standard/kernel.nit:233 */
3702 REGB1 = TAG_Bool(UNTAG_Int(REGB0)>=UNTAG_Int(REGB1));
3703 /* ../lib/standard/collection/array.nit:535 */
3704 if (UNTAG_Bool(REGB1)) {
3705 /* ../lib/standard/collection/array.nit:536 */
3706 REGB1 = TAG_Bool(ATTR_standard___collection___array___ArrayMap____items(fra.me.REG[0])!=NIT_NULL);
3707 if (UNTAG_Bool(REGB1)) {
3708 } else {
3709 nit_abort("Uninitialized attribute %s", "_items", LOCATE_standard___collection___array, 536);
3710 }
3711 fra.me.REG[3] = ATTR_standard___collection___array___ArrayMap____items(fra.me.REG[0]);
3712 /* ../lib/standard/collection/array.nit:280 */
3713 REGB1 = TAG_Int(0);
3714 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
3715 if (UNTAG_Bool(REGB2)) {
3716 } else {
3717 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
3718 }
3719 /* ../lib/standard/kernel.nit:233 */
3720 REGB1 = TAG_Bool(UNTAG_Int(REGB0)>=UNTAG_Int(REGB1));
3721 /* ../lib/standard/collection/array.nit:280 */
3722 if (UNTAG_Bool(REGB1)) {
3723 REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[3])!=NIT_NULL);
3724 if (UNTAG_Bool(REGB1)) {
3725 } else {
3726 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
3727 }
3728 REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[3]);
3729 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
3730 if (UNTAG_Bool(REGB2)) {
3731 } else {
3732 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
3733 }
3734 /* ../lib/standard/kernel.nit:232 */
3735 REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
3736 } else {
3737 /* ../lib/standard/collection/array.nit:280 */
3738 REGB2 = TAG_Bool(false);
3739 REGB1 = REGB2;
3740 }
3741 if (UNTAG_Bool(REGB1)) {
3742 } else {
3743 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
3744 }
3745 /* ../lib/standard/collection/array.nit:281 */
3746 fra.me.REG[3] = ATTR_standard___collection___array___Array____items(fra.me.REG[3]);
3747 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
3748 if (UNTAG_Bool(REGB1)) {
3749 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
3750 }
3751 /* ../lib/standard/collection/array.nit:718 */
3752 fra.me.REG[3] = ((Nit_NativeArray)fra.me.REG[3])->val[UNTAG_Int(REGB0)];
3753 /* ../lib/standard/collection/array.nit:281 */
3754 goto label1;
3755 label1: while(0);
3756 /* ../lib/standard/collection/array.nit:536 */
3757 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
3758 if (UNTAG_Bool(REGB0)) {
3759 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 536);
3760 }
3761 CALL_standard___collection___abstract_collection___Couple___second__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
3762 } else {
3763 /* ../lib/standard/collection/array.nit:538 */
3764 REGB0 = TAG_Bool(ATTR_standard___collection___array___ArrayMap____items(fra.me.REG[0])!=NIT_NULL);
3765 if (UNTAG_Bool(REGB0)) {
3766 } else {
3767 nit_abort("Uninitialized attribute %s", "_items", LOCATE_standard___collection___array, 538);
3768 }
3769 fra.me.REG[0] = ATTR_standard___collection___array___ArrayMap____items(fra.me.REG[0]);
3770 fra.me.REG[2] = NEW_Couple_standard___collection___abstract_collection___Couple___init(fra.me.REG[1], fra.me.REG[2]);
3771 CALL_standard___collection___abstract_collection___Sequence___push(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[2]);
3772 }
3773 stack_frame_head = fra.me.prev;
3774 return;
3775 }
3776 val_t standard___collection___array___ArrayMap___keys(val_t p0){
3777 struct {struct stack_frame_t me;} fra;
3778 val_t REGB0;
3779 val_t tmp;
3780 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3781 fra.me.file = LOCATE_standard___collection___array;
3782 fra.me.line = 542;
3783 fra.me.meth = LOCATE_standard___collection___array___ArrayMap___keys;
3784 fra.me.has_broke = 0;
3785 fra.me.REG_size = 1;
3786 fra.me.nitni_local_ref_head = NULL;
3787 fra.me.REG[0] = NIT_NULL;
3788 fra.me.REG[0] = p0;
3789 /* ../lib/standard/collection/array.nit:542 */
3790 REGB0 = TAG_Bool(ATTR_standard___collection___array___ArrayMap_____atkeys(fra.me.REG[0])!=NIT_NULL);
3791 if (UNTAG_Bool(REGB0)) {
3792 } else {
3793 nit_abort("Uninitialized attribute %s", "@keys", LOCATE_standard___collection___array, 542);
3794 }
3795 fra.me.REG[0] = ATTR_standard___collection___array___ArrayMap_____atkeys(fra.me.REG[0]);
3796 stack_frame_head = fra.me.prev;
3797 return fra.me.REG[0];
3798 }
3799 void standard___collection___array___ArrayMap___keys__eq(val_t p0, val_t p1){
3800 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
3801 val_t tmp;
3802 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3803 fra.me.file = LOCATE_standard___collection___array;
3804 fra.me.line = 542;
3805 fra.me.meth = LOCATE_standard___collection___array___ArrayMap___keys__eq;
3806 fra.me.has_broke = 0;
3807 fra.me.REG_size = 2;
3808 fra.me.nitni_local_ref_head = NULL;
3809 fra.me.REG[0] = NIT_NULL;
3810 fra.me.REG[1] = NIT_NULL;
3811 fra.me.REG[0] = p0;
3812 fra.me.REG[1] = p1;
3813 /* ../lib/standard/collection/array.nit:542 */
3814 ATTR_standard___collection___array___ArrayMap_____atkeys(fra.me.REG[0]) = fra.me.REG[1];
3815 stack_frame_head = fra.me.prev;
3816 return;
3817 }
3818 val_t standard___collection___array___ArrayMap___values(val_t p0){
3819 struct {struct stack_frame_t me;} fra;
3820 val_t REGB0;
3821 val_t tmp;
3822 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3823 fra.me.file = LOCATE_standard___collection___array;
3824 fra.me.line = 543;
3825 fra.me.meth = LOCATE_standard___collection___array___ArrayMap___values;
3826 fra.me.has_broke = 0;
3827 fra.me.REG_size = 1;
3828 fra.me.nitni_local_ref_head = NULL;
3829 fra.me.REG[0] = NIT_NULL;
3830 fra.me.REG[0] = p0;
3831 /* ../lib/standard/collection/array.nit:543 */
3832 REGB0 = TAG_Bool(ATTR_standard___collection___array___ArrayMap_____atvalues(fra.me.REG[0])!=NIT_NULL);
3833 if (UNTAG_Bool(REGB0)) {
3834 } else {
3835 nit_abort("Uninitialized attribute %s", "@values", LOCATE_standard___collection___array, 543);
3836 }
3837 fra.me.REG[0] = ATTR_standard___collection___array___ArrayMap_____atvalues(fra.me.REG[0]);
3838 stack_frame_head = fra.me.prev;
3839 return fra.me.REG[0];
3840 }
3841 void standard___collection___array___ArrayMap___values__eq(val_t p0, val_t p1){
3842 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
3843 val_t tmp;
3844 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3845 fra.me.file = LOCATE_standard___collection___array;
3846 fra.me.line = 543;
3847 fra.me.meth = LOCATE_standard___collection___array___ArrayMap___values__eq;
3848 fra.me.has_broke = 0;
3849 fra.me.REG_size = 2;
3850 fra.me.nitni_local_ref_head = NULL;
3851 fra.me.REG[0] = NIT_NULL;
3852 fra.me.REG[1] = NIT_NULL;
3853 fra.me.REG[0] = p0;
3854 fra.me.REG[1] = p1;
3855 /* ../lib/standard/collection/array.nit:543 */
3856 ATTR_standard___collection___array___ArrayMap_____atvalues(fra.me.REG[0]) = fra.me.REG[1];
3857 stack_frame_head = fra.me.prev;
3858 return;
3859 }
3860 val_t standard___collection___array___ArrayMap___length(val_t p0){
3861 struct {struct stack_frame_t me;} fra;
3862 val_t REGB0;
3863 val_t tmp;
3864 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3865 fra.me.file = LOCATE_standard___collection___array;
3866 fra.me.line = 545;
3867 fra.me.meth = LOCATE_standard___collection___array___ArrayMap___length;
3868 fra.me.has_broke = 0;
3869 fra.me.REG_size = 1;
3870 fra.me.nitni_local_ref_head = NULL;
3871 fra.me.REG[0] = NIT_NULL;
3872 fra.me.REG[0] = p0;
3873 /* ../lib/standard/collection/array.nit:546 */
3874 REGB0 = TAG_Bool(ATTR_standard___collection___array___ArrayMap____items(fra.me.REG[0])!=NIT_NULL);
3875 if (UNTAG_Bool(REGB0)) {
3876 } else {
3877 nit_abort("Uninitialized attribute %s", "_items", LOCATE_standard___collection___array, 546);
3878 }
3879 fra.me.REG[0] = ATTR_standard___collection___array___ArrayMap____items(fra.me.REG[0]);
3880 /* ../lib/standard/collection/array.nit:24 */
3881 REGB0 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
3882 if (UNTAG_Bool(REGB0)) {
3883 } else {
3884 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
3885 }
3886 REGB0 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0]);
3887 /* ../lib/standard/collection/array.nit:546 */
3888 goto label1;
3889 label1: while(0);
3890 stack_frame_head = fra.me.prev;
3891 return REGB0;
3892 }
3893 val_t standard___collection___array___ArrayMap___iterator(val_t p0){
3894 struct {struct stack_frame_t me;} fra;
3895 val_t REGB0;
3896 val_t tmp;
3897 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3898 fra.me.file = LOCATE_standard___collection___array;
3899 fra.me.line = 548;
3900 fra.me.meth = LOCATE_standard___collection___array___ArrayMap___iterator;
3901 fra.me.has_broke = 0;
3902 fra.me.REG_size = 1;
3903 fra.me.nitni_local_ref_head = NULL;
3904 fra.me.REG[0] = NIT_NULL;
3905 fra.me.REG[0] = p0;
3906 /* ../lib/standard/collection/array.nit:548 */
3907 REGB0 = TAG_Bool(ATTR_standard___collection___array___ArrayMap____items(fra.me.REG[0])!=NIT_NULL);
3908 if (UNTAG_Bool(REGB0)) {
3909 } else {
3910 nit_abort("Uninitialized attribute %s", "_items", LOCATE_standard___collection___array, 548);
3911 }
3912 fra.me.REG[0] = ATTR_standard___collection___array___ArrayMap____items(fra.me.REG[0]);
3913 fra.me.REG[0] = CALL_standard___collection___abstract_collection___Collection___iterator(fra.me.REG[0])(fra.me.REG[0]);
3914 fra.me.REG[0] = NEW_CoupleMapIterator_standard___collection___abstract_collection___CoupleMapIterator___init(fra.me.REG[0]);
3915 goto label1;
3916 label1: while(0);
3917 stack_frame_head = fra.me.prev;
3918 return fra.me.REG[0];
3919 }
3920 val_t standard___collection___array___ArrayMap___is_empty(val_t p0){
3921 struct {struct stack_frame_t me;} fra;
3922 val_t REGB0;
3923 val_t tmp;
3924 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3925 fra.me.file = LOCATE_standard___collection___array;
3926 fra.me.line = 550;
3927 fra.me.meth = LOCATE_standard___collection___array___ArrayMap___is_empty;
3928 fra.me.has_broke = 0;
3929 fra.me.REG_size = 1;
3930 fra.me.nitni_local_ref_head = NULL;
3931 fra.me.REG[0] = NIT_NULL;
3932 fra.me.REG[0] = p0;
3933 /* ../lib/standard/collection/array.nit:550 */
3934 REGB0 = TAG_Bool(ATTR_standard___collection___array___ArrayMap____items(fra.me.REG[0])!=NIT_NULL);
3935 if (UNTAG_Bool(REGB0)) {
3936 } else {
3937 nit_abort("Uninitialized attribute %s", "_items", LOCATE_standard___collection___array, 550);
3938 }
3939 fra.me.REG[0] = ATTR_standard___collection___array___ArrayMap____items(fra.me.REG[0]);
3940 REGB0 = CALL_standard___collection___abstract_collection___Collection___is_empty(fra.me.REG[0])(fra.me.REG[0]);
3941 goto label1;
3942 label1: while(0);
3943 stack_frame_head = fra.me.prev;
3944 return REGB0;
3945 }
3946 void standard___collection___array___ArrayMap___clear(val_t p0){
3947 struct {struct stack_frame_t me;} fra;
3948 val_t REGB0;
3949 val_t tmp;
3950 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3951 fra.me.file = LOCATE_standard___collection___array;
3952 fra.me.line = 552;
3953 fra.me.meth = LOCATE_standard___collection___array___ArrayMap___clear;
3954 fra.me.has_broke = 0;
3955 fra.me.REG_size = 1;
3956 fra.me.nitni_local_ref_head = NULL;
3957 fra.me.REG[0] = NIT_NULL;
3958 fra.me.REG[0] = p0;
3959 /* ../lib/standard/collection/array.nit:552 */
3960 REGB0 = TAG_Bool(ATTR_standard___collection___array___ArrayMap____items(fra.me.REG[0])!=NIT_NULL);
3961 if (UNTAG_Bool(REGB0)) {
3962 } else {
3963 nit_abort("Uninitialized attribute %s", "_items", LOCATE_standard___collection___array, 552);
3964 }
3965 fra.me.REG[0] = ATTR_standard___collection___array___ArrayMap____items(fra.me.REG[0]);
3966 CALL_standard___collection___abstract_collection___RemovableCollection___clear(fra.me.REG[0])(fra.me.REG[0]);
3967 stack_frame_head = fra.me.prev;
3968 return;
3969 }
3970 void standard___collection___array___ArrayMap___enlarge(val_t p0, val_t p1){
3971 struct {struct stack_frame_t me;} fra;
3972 val_t REGB0;
3973 val_t REGB1;
3974 val_t tmp;
3975 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3976 fra.me.file = LOCATE_standard___collection___array;
3977 fra.me.line = 554;
3978 fra.me.meth = LOCATE_standard___collection___array___ArrayMap___enlarge;
3979 fra.me.has_broke = 0;
3980 fra.me.REG_size = 1;
3981 fra.me.nitni_local_ref_head = NULL;
3982 fra.me.REG[0] = NIT_NULL;
3983 fra.me.REG[0] = p0;
3984 REGB0 = p1;
3985 /* ../lib/standard/collection/array.nit:555 */
3986 REGB1 = TAG_Bool(ATTR_standard___collection___array___ArrayMap____items(fra.me.REG[0])!=NIT_NULL);
3987 if (UNTAG_Bool(REGB1)) {
3988 } else {
3989 nit_abort("Uninitialized attribute %s", "_items", LOCATE_standard___collection___array, 555);
3990 }
3991 fra.me.REG[0] = ATTR_standard___collection___array___ArrayMap____items(fra.me.REG[0]);
3992 CALL_standard___collection___array___AbstractArray___enlarge(fra.me.REG[0])(fra.me.REG[0], REGB0);
3993 stack_frame_head = fra.me.prev;
3994 return;
3995 }
3996 val_t standard___collection___array___ArrayMap___couple_at(val_t p0, val_t p1){
3997 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
3998 val_t REGB0;
3999 val_t REGB1;
4000 val_t REGB2;
4001 val_t tmp;
4002 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4003 fra.me.file = LOCATE_standard___collection___array;
4004 fra.me.line = 557;
4005 fra.me.meth = LOCATE_standard___collection___array___ArrayMap___couple_at;
4006 fra.me.has_broke = 0;
4007 fra.me.REG_size = 2;
4008 fra.me.nitni_local_ref_head = NULL;
4009 fra.me.REG[0] = NIT_NULL;
4010 fra.me.REG[1] = NIT_NULL;
4011 fra.me.REG[0] = p0;
4012 fra.me.REG[1] = p1;
4013 /* ../lib/standard/collection/array.nit:559 */
4014 REGB0 = CALL_standard___collection___array___ArrayMap___index(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
4015 /* ../lib/standard/collection/array.nit:560 */
4016 REGB1 = TAG_Int(0);
4017 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
4018 if (UNTAG_Bool(REGB2)) {
4019 } else {
4020 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
4021 }
4022 /* ../lib/standard/kernel.nit:233 */
4023 REGB1 = TAG_Bool(UNTAG_Int(REGB0)>=UNTAG_Int(REGB1));
4024 /* ../lib/standard/collection/array.nit:560 */
4025 if (UNTAG_Bool(REGB1)) {
4026 /* ../lib/standard/collection/array.nit:561 */
4027 REGB1 = TAG_Bool(ATTR_standard___collection___array___ArrayMap____items(fra.me.REG[0])!=NIT_NULL);
4028 if (UNTAG_Bool(REGB1)) {
4029 } else {
4030 nit_abort("Uninitialized attribute %s", "_items", LOCATE_standard___collection___array, 561);
4031 }
4032 fra.me.REG[0] = ATTR_standard___collection___array___ArrayMap____items(fra.me.REG[0]);
4033 /* ../lib/standard/collection/array.nit:280 */
4034 REGB1 = TAG_Int(0);
4035 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
4036 if (UNTAG_Bool(REGB2)) {
4037 } else {
4038 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
4039 }
4040 /* ../lib/standard/kernel.nit:233 */
4041 REGB1 = TAG_Bool(UNTAG_Int(REGB0)>=UNTAG_Int(REGB1));
4042 /* ../lib/standard/collection/array.nit:280 */
4043 if (UNTAG_Bool(REGB1)) {
4044 REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
4045 if (UNTAG_Bool(REGB1)) {
4046 } else {
4047 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
4048 }
4049 REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0]);
4050 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
4051 if (UNTAG_Bool(REGB2)) {
4052 } else {
4053 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
4054 }
4055 /* ../lib/standard/kernel.nit:232 */
4056 REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
4057 } else {
4058 /* ../lib/standard/collection/array.nit:280 */
4059 REGB2 = TAG_Bool(false);
4060 REGB1 = REGB2;
4061 }
4062 if (UNTAG_Bool(REGB1)) {
4063 } else {
4064 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
4065 }
4066 /* ../lib/standard/collection/array.nit:281 */
4067 fra.me.REG[0] = ATTR_standard___collection___array___Array____items(fra.me.REG[0]);
4068 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
4069 if (UNTAG_Bool(REGB1)) {
4070 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
4071 }
4072 /* ../lib/standard/collection/array.nit:718 */
4073 fra.me.REG[0] = ((Nit_NativeArray)fra.me.REG[0])->val[UNTAG_Int(REGB0)];
4074 /* ../lib/standard/collection/array.nit:281 */
4075 goto label1;
4076 label1: while(0);
4077 /* ../lib/standard/collection/array.nit:561 */
4078 goto label2;
4079 } else {
4080 /* ../lib/standard/collection/array.nit:563 */
4081 fra.me.REG[0] = NIT_NULL;
4082 goto label2;
4083 }
4084 label2: while(0);
4085 stack_frame_head = fra.me.prev;
4086 return fra.me.REG[0];
4087 }
4088 void standard___collection___array___ArrayMap___remove_at_index(val_t p0, val_t p1){
4089 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
4090 val_t REGB0;
4091 val_t REGB1;
4092 val_t tmp;
4093 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4094 fra.me.file = LOCATE_standard___collection___array;
4095 fra.me.line = 570;
4096 fra.me.meth = LOCATE_standard___collection___array___ArrayMap___remove_at_index;
4097 fra.me.has_broke = 0;
4098 fra.me.REG_size = 3;
4099 fra.me.nitni_local_ref_head = NULL;
4100 fra.me.REG[0] = NIT_NULL;
4101 fra.me.REG[1] = NIT_NULL;
4102 fra.me.REG[2] = NIT_NULL;
4103 fra.me.REG[0] = p0;
4104 REGB0 = p1;
4105 /* ../lib/standard/collection/array.nit:573 */
4106 REGB1 = TAG_Bool(ATTR_standard___collection___array___ArrayMap____items(fra.me.REG[0])!=NIT_NULL);
4107 if (UNTAG_Bool(REGB1)) {
4108 } else {
4109 nit_abort("Uninitialized attribute %s", "_items", LOCATE_standard___collection___array, 573);
4110 }
4111 fra.me.REG[1] = ATTR_standard___collection___array___ArrayMap____items(fra.me.REG[0]);
4112 REGB1 = TAG_Bool(ATTR_standard___collection___array___ArrayMap____items(fra.me.REG[0])!=NIT_NULL);
4113 if (UNTAG_Bool(REGB1)) {
4114 } else {
4115 nit_abort("Uninitialized attribute %s", "_items", LOCATE_standard___collection___array, 573);
4116 }
4117 fra.me.REG[2] = ATTR_standard___collection___array___ArrayMap____items(fra.me.REG[0]);
4118 fra.me.REG[2] = CALL_standard___collection___abstract_collection___SequenceRead___last(fra.me.REG[2])(fra.me.REG[2]);
4119 CALL_standard___collection___abstract_collection___Sequence_____braeq(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
4120 /* ../lib/standard/collection/array.nit:574 */
4121 REGB0 = TAG_Bool(ATTR_standard___collection___array___ArrayMap____items(fra.me.REG[0])!=NIT_NULL);
4122 if (UNTAG_Bool(REGB0)) {
4123 } else {
4124 nit_abort("Uninitialized attribute %s", "_items", LOCATE_standard___collection___array, 574);
4125 }
4126 fra.me.REG[0] = ATTR_standard___collection___array___ArrayMap____items(fra.me.REG[0]);
4127 CALL_standard___collection___abstract_collection___Sequence___pop(fra.me.REG[0])(fra.me.REG[0]);
4128 stack_frame_head = fra.me.prev;
4129 return;
4130 }
4131 val_t standard___collection___array___ArrayMap___index(val_t p0, val_t p1){
4132 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
4133 val_t REGB0;
4134 val_t REGB1;
4135 val_t REGB2;
4136 val_t REGB3;
4137 val_t REGB4;
4138 val_t tmp;
4139 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4140 fra.me.file = LOCATE_standard___collection___array;
4141 fra.me.line = 580;
4142 fra.me.meth = LOCATE_standard___collection___array___ArrayMap___index;
4143 fra.me.has_broke = 0;
4144 fra.me.REG_size = 3;
4145 fra.me.nitni_local_ref_head = NULL;
4146 fra.me.REG[0] = NIT_NULL;
4147 fra.me.REG[1] = NIT_NULL;
4148 fra.me.REG[2] = NIT_NULL;
4149 fra.me.REG[0] = p0;
4150 fra.me.REG[1] = p1;
4151 /* ../lib/standard/collection/array.nit:584 */
4152 REGB0 = TAG_Bool(ATTR_standard___collection___array___ArrayMap____last_index(fra.me.REG[0])!=NIT_NULL);
4153 if (UNTAG_Bool(REGB0)) {
4154 } else {
4155 nit_abort("Uninitialized attribute %s", "_last_index", LOCATE_standard___collection___array, 584);
4156 }
4157 REGB0 = ATTR_standard___collection___array___ArrayMap____last_index(fra.me.REG[0]);
4158 /* ../lib/standard/collection/array.nit:585 */
4159 REGB1 = TAG_Bool(ATTR_standard___collection___array___ArrayMap____items(fra.me.REG[0])!=NIT_NULL);
4160 if (UNTAG_Bool(REGB1)) {
4161 } else {
4162 nit_abort("Uninitialized attribute %s", "_items", LOCATE_standard___collection___array, 585);
4163 }
4164 fra.me.REG[2] = ATTR_standard___collection___array___ArrayMap____items(fra.me.REG[0]);
4165 /* ../lib/standard/collection/array.nit:24 */
4166 REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
4167 if (UNTAG_Bool(REGB1)) {
4168 } else {
4169 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
4170 }
4171 REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2]);
4172 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
4173 if (UNTAG_Bool(REGB2)) {
4174 } else {
4175 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
4176 }
4177 /* ../lib/standard/kernel.nit:232 */
4178 REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
4179 /* ../lib/standard/collection/array.nit:585 */
4180 if (UNTAG_Bool(REGB1)) {
4181 REGB1 = TAG_Bool(ATTR_standard___collection___array___ArrayMap____items(fra.me.REG[0])!=NIT_NULL);
4182 if (UNTAG_Bool(REGB1)) {
4183 } else {
4184 nit_abort("Uninitialized attribute %s", "_items", LOCATE_standard___collection___array, 585);
4185 }
4186 fra.me.REG[2] = ATTR_standard___collection___array___ArrayMap____items(fra.me.REG[0]);
4187 /* ../lib/standard/collection/array.nit:278 */
4188 REGB1 = REGB0;
4189 /* ../lib/standard/collection/array.nit:280 */
4190 REGB2 = TAG_Int(0);
4191 REGB3 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
4192 if (UNTAG_Bool(REGB3)) {
4193 } else {
4194 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
4195 }
4196 /* ../lib/standard/kernel.nit:233 */
4197 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
4198 /* ../lib/standard/collection/array.nit:280 */
4199 if (UNTAG_Bool(REGB2)) {
4200 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
4201 if (UNTAG_Bool(REGB2)) {
4202 } else {
4203 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
4204 }
4205 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2]);
4206 REGB3 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
4207 if (UNTAG_Bool(REGB3)) {
4208 } else {
4209 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
4210 }
4211 /* ../lib/standard/kernel.nit:232 */
4212 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
4213 } else {
4214 /* ../lib/standard/collection/array.nit:280 */
4215 REGB3 = TAG_Bool(false);
4216 REGB2 = REGB3;
4217 }
4218 if (UNTAG_Bool(REGB2)) {
4219 } else {
4220 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
4221 }
4222 /* ../lib/standard/collection/array.nit:281 */
4223 fra.me.REG[2] = ATTR_standard___collection___array___Array____items(fra.me.REG[2]);
4224 REGB2 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
4225 if (UNTAG_Bool(REGB2)) {
4226 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
4227 }
4228 /* ../lib/standard/collection/array.nit:718 */
4229 fra.me.REG[2] = ((Nit_NativeArray)fra.me.REG[2])->val[UNTAG_Int(REGB1)];
4230 /* ../lib/standard/collection/array.nit:281 */
4231 goto label1;
4232 label1: while(0);
4233 /* ../lib/standard/collection/array.nit:585 */
4234 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
4235 if (UNTAG_Bool(REGB1)) {
4236 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 585);
4237 }
4238 fra.me.REG[2] = CALL_standard___collection___abstract_collection___Couple___first(fra.me.REG[2])(fra.me.REG[2]);
4239 REGB1 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[2]));
4240 if (UNTAG_Bool(REGB1)) {
4241 } else {
4242 REGB2 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
4243 if (UNTAG_Bool(REGB2)) {
4244 REGB2 = TAG_Bool(false);
4245 REGB1 = REGB2;
4246 } else {
4247 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
4248 REGB1 = REGB2;
4249 }
4250 }
4251 } else {
4252 REGB2 = TAG_Bool(false);
4253 REGB1 = REGB2;
4254 }
4255 if (UNTAG_Bool(REGB1)) {
4256 goto label2;
4257 }
4258 /* ../lib/standard/collection/array.nit:587 */
4259 REGB1 = TAG_Int(0);
4260 /* ../lib/standard/collection/array.nit:588 */
4261 while(1) {
4262 REGB2 = TAG_Bool(ATTR_standard___collection___array___ArrayMap____items(fra.me.REG[0])!=NIT_NULL);
4263 if (UNTAG_Bool(REGB2)) {
4264 } else {
4265 nit_abort("Uninitialized attribute %s", "_items", LOCATE_standard___collection___array, 588);
4266 }
4267 fra.me.REG[2] = ATTR_standard___collection___array___ArrayMap____items(fra.me.REG[0]);
4268 /* ../lib/standard/collection/array.nit:24 */
4269 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
4270 if (UNTAG_Bool(REGB2)) {
4271 } else {
4272 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
4273 }
4274 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2]);
4275 REGB3 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
4276 if (UNTAG_Bool(REGB3)) {
4277 } else {
4278 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
4279 }
4280 /* ../lib/standard/kernel.nit:232 */
4281 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
4282 /* ../lib/standard/collection/array.nit:588 */
4283 if (UNTAG_Bool(REGB2)) {
4284 /* ../lib/standard/collection/array.nit:589 */
4285 REGB2 = TAG_Bool(ATTR_standard___collection___array___ArrayMap____items(fra.me.REG[0])!=NIT_NULL);
4286 if (UNTAG_Bool(REGB2)) {
4287 } else {
4288 nit_abort("Uninitialized attribute %s", "_items", LOCATE_standard___collection___array, 589);
4289 }
4290 fra.me.REG[2] = ATTR_standard___collection___array___ArrayMap____items(fra.me.REG[0]);
4291 /* ../lib/standard/collection/array.nit:278 */
4292 REGB2 = REGB1;
4293 /* ../lib/standard/collection/array.nit:280 */
4294 REGB3 = TAG_Int(0);
4295 REGB4 = TAG_Bool(VAL_ISA(REGB3, VTCOLOR_standard___kernel___Comparable___OTHER(REGB2), VTID_standard___kernel___Comparable___OTHER(REGB2))) /*cast OTHER*/;
4296 if (UNTAG_Bool(REGB4)) {
4297 } else {
4298 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
4299 }
4300 /* ../lib/standard/kernel.nit:233 */
4301 REGB3 = TAG_Bool(UNTAG_Int(REGB2)>=UNTAG_Int(REGB3));
4302 /* ../lib/standard/collection/array.nit:280 */
4303 if (UNTAG_Bool(REGB3)) {
4304 REGB3 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
4305 if (UNTAG_Bool(REGB3)) {
4306 } else {
4307 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
4308 }
4309 REGB3 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2]);
4310 REGB4 = TAG_Bool(VAL_ISA(REGB3, VTCOLOR_standard___kernel___Comparable___OTHER(REGB2), VTID_standard___kernel___Comparable___OTHER(REGB2))) /*cast OTHER*/;
4311 if (UNTAG_Bool(REGB4)) {
4312 } else {
4313 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
4314 }
4315 /* ../lib/standard/kernel.nit:232 */
4316 REGB3 = TAG_Bool(UNTAG_Int(REGB2)<UNTAG_Int(REGB3));
4317 } else {
4318 /* ../lib/standard/collection/array.nit:280 */
4319 REGB4 = TAG_Bool(false);
4320 REGB3 = REGB4;
4321 }
4322 if (UNTAG_Bool(REGB3)) {
4323 } else {
4324 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
4325 }
4326 /* ../lib/standard/collection/array.nit:281 */
4327 fra.me.REG[2] = ATTR_standard___collection___array___Array____items(fra.me.REG[2]);
4328 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
4329 if (UNTAG_Bool(REGB3)) {
4330 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
4331 }
4332 /* ../lib/standard/collection/array.nit:718 */
4333 fra.me.REG[2] = ((Nit_NativeArray)fra.me.REG[2])->val[UNTAG_Int(REGB2)];
4334 /* ../lib/standard/collection/array.nit:281 */
4335 goto label3;
4336 label3: while(0);
4337 /* ../lib/standard/collection/array.nit:589 */
4338 REGB2 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
4339 if (UNTAG_Bool(REGB2)) {
4340 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 589);
4341 }
4342 fra.me.REG[2] = CALL_standard___collection___abstract_collection___Couple___first(fra.me.REG[2])(fra.me.REG[2]);
4343 REGB2 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[2]));
4344 if (UNTAG_Bool(REGB2)) {
4345 } else {
4346 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
4347 if (UNTAG_Bool(REGB3)) {
4348 REGB3 = TAG_Bool(false);
4349 REGB2 = REGB3;
4350 } else {
4351 REGB3 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
4352 REGB2 = REGB3;
4353 }
4354 }
4355 if (UNTAG_Bool(REGB2)) {
4356 /* ../lib/standard/collection/array.nit:590 */
4357 ATTR_standard___collection___array___ArrayMap____last_index(fra.me.REG[0]) = REGB1;
4358 /* ../lib/standard/collection/array.nit:591 */
4359 REGB0 = REGB1;
4360 goto label2;
4361 }
4362 /* ../lib/standard/collection/array.nit:593 */
4363 REGB2 = TAG_Int(1);
4364 /* ../lib/standard/kernel.nit:235 */
4365 REGB2 = TAG_Int(UNTAG_Int(REGB1)+UNTAG_Int(REGB2));
4366 /* ../lib/standard/collection/array.nit:593 */
4367 REGB1 = REGB2;
4368 } else {
4369 /* ../lib/standard/collection/array.nit:588 */
4370 goto label4;
4371 }
4372 }
4373 label4: while(0);
4374 /* ../lib/standard/collection/array.nit:595 */
4375 REGB1 = TAG_Int(1);
4376 /* ../lib/standard/kernel.nit:236 */
4377 REGB1 = TAG_Int(-UNTAG_Int(REGB1));
4378 /* ../lib/standard/collection/array.nit:595 */
4379 REGB0 = REGB1;
4380 goto label2;
4381 label2: while(0);
4382 stack_frame_head = fra.me.prev;
4383 return REGB0;
4384 }
4385 void standard___collection___array___ArrayMap___init(val_t p0, int* init_table){
4386 int itpos10 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_standard___collection___array___ArrayMap].i;
4387 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
4388 val_t tmp;
4389 if (init_table[itpos10]) return;
4390 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4391 fra.me.file = LOCATE_standard___collection___array;
4392 fra.me.line = 598;
4393 fra.me.meth = LOCATE_standard___collection___array___ArrayMap___init;
4394 fra.me.has_broke = 0;
4395 fra.me.REG_size = 2;
4396 fra.me.nitni_local_ref_head = NULL;
4397 fra.me.REG[0] = NIT_NULL;
4398 fra.me.REG[1] = NIT_NULL;
4399 fra.me.REG[0] = p0;
4400 /* ../lib/standard/collection/array.nit:601 */
4401 fra.me.REG[1] = NEW_Array_standard___collection___array___Array___init();
4402 ATTR_standard___collection___array___ArrayMap____items(fra.me.REG[0]) = fra.me.REG[1];
4403 stack_frame_head = fra.me.prev;
4404 init_table[itpos10] = 1;
4405 return;
4406 }
4407 val_t standard___collection___array___ArrayMapKeys___map(val_t p0){
4408 struct {struct stack_frame_t me;} fra;
4409 val_t REGB0;
4410 val_t tmp;
4411 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4412 fra.me.file = LOCATE_standard___collection___array;
4413 fra.me.line = 607;
4414 fra.me.meth = LOCATE_standard___collection___array___ArrayMapKeys___map;
4415 fra.me.has_broke = 0;
4416 fra.me.REG_size = 1;
4417 fra.me.nitni_local_ref_head = NULL;
4418 fra.me.REG[0] = NIT_NULL;
4419 fra.me.REG[0] = p0;
4420 /* ../lib/standard/collection/array.nit:607 */
4421 REGB0 = TAG_Bool(ATTR_standard___collection___array___ArrayMapKeys_____atmap(fra.me.REG[0])!=NIT_NULL);
4422 if (UNTAG_Bool(REGB0)) {
4423 } else {
4424 nit_abort("Uninitialized attribute %s", "@map", LOCATE_standard___collection___array, 607);
4425 }
4426 fra.me.REG[0] = ATTR_standard___collection___array___ArrayMapKeys_____atmap(fra.me.REG[0]);
4427 stack_frame_head = fra.me.prev;
4428 return fra.me.REG[0];
4429 }
4430 void standard___collection___array___ArrayMapKeys___map__eq(val_t p0, val_t p1){
4431 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
4432 val_t tmp;
4433 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4434 fra.me.file = LOCATE_standard___collection___array;
4435 fra.me.line = 607;
4436 fra.me.meth = LOCATE_standard___collection___array___ArrayMapKeys___map__eq;
4437 fra.me.has_broke = 0;
4438 fra.me.REG_size = 2;
4439 fra.me.nitni_local_ref_head = NULL;
4440 fra.me.REG[0] = NIT_NULL;
4441 fra.me.REG[1] = NIT_NULL;
4442 fra.me.REG[0] = p0;
4443 fra.me.REG[1] = p1;
4444 /* ../lib/standard/collection/array.nit:607 */
4445 ATTR_standard___collection___array___ArrayMapKeys_____atmap(fra.me.REG[0]) = fra.me.REG[1];
4446 stack_frame_head = fra.me.prev;
4447 return;
4448 }
4449 val_t standard___collection___array___ArrayMapKeys___count(val_t p0, val_t p1){
4450 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
4451 val_t REGB0;
4452 val_t REGB1;
4453 val_t tmp;
4454 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4455 fra.me.file = LOCATE_standard___collection___array;
4456 fra.me.line = 609;
4457 fra.me.meth = LOCATE_standard___collection___array___ArrayMapKeys___count;
4458 fra.me.has_broke = 0;
4459 fra.me.REG_size = 2;
4460 fra.me.nitni_local_ref_head = NULL;
4461 fra.me.REG[0] = NIT_NULL;
4462 fra.me.REG[1] = NIT_NULL;
4463 fra.me.REG[0] = p0;
4464 fra.me.REG[1] = p1;
4465 /* ../lib/standard/collection/array.nit:609 */
4466 REGB0 = CALL_standard___collection___abstract_collection___Collection___has(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
4467 if (UNTAG_Bool(REGB0)) {
4468 REGB0 = TAG_Int(1);
4469 goto label1;
4470 } else {
4471 REGB1 = TAG_Int(0);
4472 REGB0 = REGB1;
4473 goto label1;
4474 }
4475 label1: while(0);
4476 stack_frame_head = fra.me.prev;
4477 return REGB0;
4478 }
4479 val_t standard___collection___array___ArrayMapKeys___first(val_t p0){
4480 struct {struct stack_frame_t me;} fra;
4481 val_t REGB0;
4482 val_t tmp;
4483 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4484 fra.me.file = LOCATE_standard___collection___array;
4485 fra.me.line = 610;
4486 fra.me.meth = LOCATE_standard___collection___array___ArrayMapKeys___first;
4487 fra.me.has_broke = 0;
4488 fra.me.REG_size = 1;
4489 fra.me.nitni_local_ref_head = NULL;
4490 fra.me.REG[0] = NIT_NULL;
4491 fra.me.REG[0] = p0;
4492 /* ../lib/standard/collection/array.nit:610 */
4493 fra.me.REG[0] = CALL_standard___collection___array___ArrayMapKeys___map(fra.me.REG[0])(fra.me.REG[0]);
4494 REGB0 = TAG_Bool(ATTR_standard___collection___array___ArrayMap____items(fra.me.REG[0])!=NIT_NULL);
4495 if (UNTAG_Bool(REGB0)) {
4496 } else {
4497 nit_abort("Uninitialized attribute %s", "_items", LOCATE_standard___collection___array, 610);
4498 }
4499 fra.me.REG[0] = ATTR_standard___collection___array___ArrayMap____items(fra.me.REG[0]);
4500 fra.me.REG[0] = CALL_standard___collection___abstract_collection___Collection___first(fra.me.REG[0])(fra.me.REG[0]);
4501 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
4502 if (UNTAG_Bool(REGB0)) {
4503 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 610);
4504 }
4505 fra.me.REG[0] = CALL_standard___collection___abstract_collection___Couple___first(fra.me.REG[0])(fra.me.REG[0]);
4506 goto label1;
4507 label1: while(0);
4508 stack_frame_head = fra.me.prev;
4509 return fra.me.REG[0];
4510 }
4511 val_t standard___collection___array___ArrayMapKeys___has(val_t p0, val_t p1){
4512 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
4513 val_t REGB0;
4514 val_t REGB1;
4515 val_t REGB2;
4516 val_t tmp;
4517 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4518 fra.me.file = LOCATE_standard___collection___array;
4519 fra.me.line = 611;
4520 fra.me.meth = LOCATE_standard___collection___array___ArrayMapKeys___has;
4521 fra.me.has_broke = 0;
4522 fra.me.REG_size = 2;
4523 fra.me.nitni_local_ref_head = NULL;
4524 fra.me.REG[0] = NIT_NULL;
4525 fra.me.REG[1] = NIT_NULL;
4526 fra.me.REG[0] = p0;
4527 fra.me.REG[1] = p1;
4528 /* ../lib/standard/collection/array.nit:611 */
4529 fra.me.REG[0] = CALL_standard___collection___array___ArrayMapKeys___map(fra.me.REG[0])(fra.me.REG[0]);
4530 REGB0 = CALL_standard___collection___array___ArrayMap___index(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
4531 REGB1 = TAG_Int(0);
4532 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
4533 if (UNTAG_Bool(REGB2)) {
4534 } else {
4535 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
4536 }
4537 /* ../lib/standard/kernel.nit:233 */
4538 REGB1 = TAG_Bool(UNTAG_Int(REGB0)>=UNTAG_Int(REGB1));
4539 /* ../lib/standard/collection/array.nit:611 */
4540 goto label1;
4541 label1: while(0);
4542 stack_frame_head = fra.me.prev;
4543 return REGB1;
4544 }
4545 val_t standard___collection___array___ArrayMapKeys___has_only(val_t p0, val_t p1){
4546 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
4547 val_t REGB0;
4548 val_t REGB1;
4549 val_t REGB2;
4550 val_t tmp;
4551 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4552 fra.me.file = LOCATE_standard___collection___array;
4553 fra.me.line = 612;
4554 fra.me.meth = LOCATE_standard___collection___array___ArrayMapKeys___has_only;
4555 fra.me.has_broke = 0;
4556 fra.me.REG_size = 2;
4557 fra.me.nitni_local_ref_head = NULL;
4558 fra.me.REG[0] = NIT_NULL;
4559 fra.me.REG[1] = NIT_NULL;
4560 fra.me.REG[0] = p0;
4561 fra.me.REG[1] = p1;
4562 /* ../lib/standard/collection/array.nit:612 */
4563 REGB0 = CALL_standard___collection___abstract_collection___Collection___has(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
4564 if (UNTAG_Bool(REGB0)) {
4565 REGB0 = CALL_standard___collection___abstract_collection___Collection___length(fra.me.REG[0])(fra.me.REG[0]);
4566 REGB1 = TAG_Int(1);
4567 REGB2 = TAG_Bool(IS_EQUAL_OO(REGB0,REGB1));
4568 if (UNTAG_Bool(REGB2)) {
4569 } else {
4570 /* ../lib/standard/kernel.nit:227 */
4571 REGB1 = TAG_Bool((REGB0)==(REGB1));
4572 /* ../lib/standard/collection/array.nit:612 */
4573 REGB2 = REGB1;
4574 }
4575 } else {
4576 REGB1 = TAG_Bool(false);
4577 REGB2 = REGB1;
4578 }
4579 if (UNTAG_Bool(REGB2)) {
4580 REGB2 = TAG_Bool(true);
4581 } else {
4582 REGB1 = CALL_standard___collection___abstract_collection___Collection___is_empty(fra.me.REG[0])(fra.me.REG[0]);
4583 REGB2 = REGB1;
4584 }
4585 goto label1;
4586 label1: while(0);
4587 stack_frame_head = fra.me.prev;
4588 return REGB2;
4589 }
4590 val_t standard___collection___array___ArrayMapKeys___is_empty(val_t p0){
4591 struct {struct stack_frame_t me;} fra;
4592 val_t REGB0;
4593 val_t tmp;
4594 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4595 fra.me.file = LOCATE_standard___collection___array;
4596 fra.me.line = 613;
4597 fra.me.meth = LOCATE_standard___collection___array___ArrayMapKeys___is_empty;
4598 fra.me.has_broke = 0;
4599 fra.me.REG_size = 1;
4600 fra.me.nitni_local_ref_head = NULL;
4601 fra.me.REG[0] = NIT_NULL;
4602 fra.me.REG[0] = p0;
4603 /* ../lib/standard/collection/array.nit:613 */
4604 fra.me.REG[0] = CALL_standard___collection___array___ArrayMapKeys___map(fra.me.REG[0])(fra.me.REG[0]);
4605 REGB0 = CALL_standard___collection___abstract_collection___MapRead___is_empty(fra.me.REG[0])(fra.me.REG[0]);
4606 goto label1;
4607 label1: while(0);
4608 stack_frame_head = fra.me.prev;
4609 return REGB0;
4610 }
4611 val_t standard___collection___array___ArrayMapKeys___length(val_t p0){
4612 struct {struct stack_frame_t me;} fra;
4613 val_t REGB0;
4614 val_t tmp;
4615 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4616 fra.me.file = LOCATE_standard___collection___array;
4617 fra.me.line = 614;
4618 fra.me.meth = LOCATE_standard___collection___array___ArrayMapKeys___length;
4619 fra.me.has_broke = 0;
4620 fra.me.REG_size = 1;
4621 fra.me.nitni_local_ref_head = NULL;
4622 fra.me.REG[0] = NIT_NULL;
4623 fra.me.REG[0] = p0;
4624 /* ../lib/standard/collection/array.nit:614 */
4625 fra.me.REG[0] = CALL_standard___collection___array___ArrayMapKeys___map(fra.me.REG[0])(fra.me.REG[0]);
4626 REGB0 = CALL_standard___collection___abstract_collection___MapRead___length(fra.me.REG[0])(fra.me.REG[0]);
4627 goto label1;
4628 label1: while(0);
4629 stack_frame_head = fra.me.prev;
4630 return REGB0;
4631 }
4632 val_t standard___collection___array___ArrayMapKeys___iterator(val_t p0){
4633 struct {struct stack_frame_t me;} fra;
4634 val_t tmp;
4635 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4636 fra.me.file = LOCATE_standard___collection___array;
4637 fra.me.line = 615;
4638 fra.me.meth = LOCATE_standard___collection___array___ArrayMapKeys___iterator;
4639 fra.me.has_broke = 0;
4640 fra.me.REG_size = 1;
4641 fra.me.nitni_local_ref_head = NULL;
4642 fra.me.REG[0] = NIT_NULL;
4643 fra.me.REG[0] = p0;
4644 /* ../lib/standard/collection/array.nit:615 */
4645 fra.me.REG[0] = CALL_standard___collection___array___ArrayMapKeys___map(fra.me.REG[0])(fra.me.REG[0]);
4646 fra.me.REG[0] = CALL_standard___collection___abstract_collection___MapRead___iterator(fra.me.REG[0])(fra.me.REG[0]);
4647 fra.me.REG[0] = NEW_MapKeysIterator_standard___collection___abstract_collection___MapKeysIterator___init(fra.me.REG[0]);
4648 goto label1;
4649 label1: while(0);
4650 stack_frame_head = fra.me.prev;
4651 return fra.me.REG[0];
4652 }
4653 void standard___collection___array___ArrayMapKeys___clear(val_t p0){
4654 struct {struct stack_frame_t me;} fra;
4655 val_t tmp;
4656 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4657 fra.me.file = LOCATE_standard___collection___array;
4658 fra.me.line = 616;
4659 fra.me.meth = LOCATE_standard___collection___array___ArrayMapKeys___clear;
4660 fra.me.has_broke = 0;
4661 fra.me.REG_size = 1;
4662 fra.me.nitni_local_ref_head = NULL;
4663 fra.me.REG[0] = NIT_NULL;
4664 fra.me.REG[0] = p0;
4665 /* ../lib/standard/collection/array.nit:616 */
4666 fra.me.REG[0] = CALL_standard___collection___array___ArrayMapKeys___map(fra.me.REG[0])(fra.me.REG[0]);
4667 CALL_standard___collection___abstract_collection___Map___clear(fra.me.REG[0])(fra.me.REG[0]);
4668 stack_frame_head = fra.me.prev;
4669 return;
4670 }
4671 void standard___collection___array___ArrayMapKeys___remove(val_t p0, val_t p1){
4672 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
4673 val_t REGB0;
4674 val_t REGB1;
4675 val_t REGB2;
4676 val_t tmp;
4677 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4678 fra.me.file = LOCATE_standard___collection___array;
4679 fra.me.line = 617;
4680 fra.me.meth = LOCATE_standard___collection___array___ArrayMapKeys___remove;
4681 fra.me.has_broke = 0;
4682 fra.me.REG_size = 3;
4683 fra.me.nitni_local_ref_head = NULL;
4684 fra.me.REG[0] = NIT_NULL;
4685 fra.me.REG[1] = NIT_NULL;
4686 fra.me.REG[2] = NIT_NULL;
4687 fra.me.REG[0] = p0;
4688 fra.me.REG[1] = p1;
4689 /* ../lib/standard/collection/array.nit:619 */
4690 fra.me.REG[2] = CALL_standard___collection___array___ArrayMapKeys___map(fra.me.REG[0])(fra.me.REG[0]);
4691 REGB0 = CALL_standard___collection___array___ArrayMap___index(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
4692 /* ../lib/standard/collection/array.nit:620 */
4693 REGB1 = TAG_Int(0);
4694 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
4695 if (UNTAG_Bool(REGB2)) {
4696 } else {
4697 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
4698 }
4699 /* ../lib/standard/kernel.nit:233 */
4700 REGB1 = TAG_Bool(UNTAG_Int(REGB0)>=UNTAG_Int(REGB1));
4701 /* ../lib/standard/collection/array.nit:620 */
4702 if (UNTAG_Bool(REGB1)) {
4703 fra.me.REG[0] = CALL_standard___collection___array___ArrayMapKeys___map(fra.me.REG[0])(fra.me.REG[0]);
4704 CALL_standard___collection___array___ArrayMap___remove_at_index(fra.me.REG[0])(fra.me.REG[0], REGB0);
4705 }
4706 stack_frame_head = fra.me.prev;
4707 return;
4708 }
4709 void standard___collection___array___ArrayMapKeys___remove_all(val_t p0, val_t p1){
4710 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
4711 val_t tmp;
4712 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4713 fra.me.file = LOCATE_standard___collection___array;
4714 fra.me.line = 622;
4715 fra.me.meth = LOCATE_standard___collection___array___ArrayMapKeys___remove_all;
4716 fra.me.has_broke = 0;
4717 fra.me.REG_size = 2;
4718 fra.me.nitni_local_ref_head = NULL;
4719 fra.me.REG[0] = NIT_NULL;
4720 fra.me.REG[1] = NIT_NULL;
4721 fra.me.REG[0] = p0;
4722 fra.me.REG[1] = p1;
4723 /* ../lib/standard/collection/array.nit:622 */
4724 CALL_standard___collection___abstract_collection___RemovableCollection___remove(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
4725 stack_frame_head = fra.me.prev;
4726 return;
4727 }
4728 void standard___collection___array___ArrayMapKeys___init(val_t p0, val_t p1, int* init_table){
4729 int itpos11 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_standard___collection___array___ArrayMapKeys].i;
4730 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
4731 val_t tmp;
4732 if (init_table[itpos11]) return;
4733 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4734 fra.me.file = LOCATE_standard___collection___array;
4735 fra.me.line = 0;
4736 fra.me.meth = LOCATE_standard___collection___array___ArrayMapKeys___init;
4737 fra.me.has_broke = 0;
4738 fra.me.REG_size = 2;
4739 fra.me.nitni_local_ref_head = NULL;
4740 fra.me.REG[0] = NIT_NULL;
4741 fra.me.REG[1] = NIT_NULL;
4742 fra.me.REG[0] = p0;
4743 fra.me.REG[1] = p1;
4744 ATTR_standard___collection___array___ArrayMapKeys_____atmap(fra.me.REG[0]) = fra.me.REG[1];
4745 stack_frame_head = fra.me.prev;
4746 init_table[itpos11] = 1;
4747 return;
4748 }
4749 val_t standard___collection___array___ArrayMapValues___map(val_t p0){
4750 struct {struct stack_frame_t me;} fra;
4751 val_t REGB0;
4752 val_t tmp;
4753 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4754 fra.me.file = LOCATE_standard___collection___array;
4755 fra.me.line = 627;
4756 fra.me.meth = LOCATE_standard___collection___array___ArrayMapValues___map;
4757 fra.me.has_broke = 0;
4758 fra.me.REG_size = 1;
4759 fra.me.nitni_local_ref_head = NULL;
4760 fra.me.REG[0] = NIT_NULL;
4761 fra.me.REG[0] = p0;
4762 /* ../lib/standard/collection/array.nit:627 */
4763 REGB0 = TAG_Bool(ATTR_standard___collection___array___ArrayMapValues_____atmap(fra.me.REG[0])!=NIT_NULL);
4764 if (UNTAG_Bool(REGB0)) {
4765 } else {
4766 nit_abort("Uninitialized attribute %s", "@map", LOCATE_standard___collection___array, 627);
4767 }
4768 fra.me.REG[0] = ATTR_standard___collection___array___ArrayMapValues_____atmap(fra.me.REG[0]);
4769 stack_frame_head = fra.me.prev;
4770 return fra.me.REG[0];
4771 }
4772 void standard___collection___array___ArrayMapValues___map__eq(val_t p0, val_t p1){
4773 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
4774 val_t tmp;
4775 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4776 fra.me.file = LOCATE_standard___collection___array;
4777 fra.me.line = 627;
4778 fra.me.meth = LOCATE_standard___collection___array___ArrayMapValues___map__eq;
4779 fra.me.has_broke = 0;
4780 fra.me.REG_size = 2;
4781 fra.me.nitni_local_ref_head = NULL;
4782 fra.me.REG[0] = NIT_NULL;
4783 fra.me.REG[1] = NIT_NULL;
4784 fra.me.REG[0] = p0;
4785 fra.me.REG[1] = p1;
4786 /* ../lib/standard/collection/array.nit:627 */
4787 ATTR_standard___collection___array___ArrayMapValues_____atmap(fra.me.REG[0]) = fra.me.REG[1];
4788 stack_frame_head = fra.me.prev;
4789 return;
4790 }
4791 val_t standard___collection___array___ArrayMapValues___first(val_t p0){
4792 struct {struct stack_frame_t me;} fra;
4793 val_t REGB0;
4794 val_t tmp;
4795 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4796 fra.me.file = LOCATE_standard___collection___array;
4797 fra.me.line = 629;
4798 fra.me.meth = LOCATE_standard___collection___array___ArrayMapValues___first;
4799 fra.me.has_broke = 0;
4800 fra.me.REG_size = 1;
4801 fra.me.nitni_local_ref_head = NULL;
4802 fra.me.REG[0] = NIT_NULL;
4803 fra.me.REG[0] = p0;
4804 /* ../lib/standard/collection/array.nit:629 */
4805 fra.me.REG[0] = CALL_standard___collection___array___ArrayMapValues___map(fra.me.REG[0])(fra.me.REG[0]);
4806 REGB0 = TAG_Bool(ATTR_standard___collection___array___ArrayMap____items(fra.me.REG[0])!=NIT_NULL);
4807 if (UNTAG_Bool(REGB0)) {
4808 } else {
4809 nit_abort("Uninitialized attribute %s", "_items", LOCATE_standard___collection___array, 629);
4810 }
4811 fra.me.REG[0] = ATTR_standard___collection___array___ArrayMap____items(fra.me.REG[0]);
4812 fra.me.REG[0] = CALL_standard___collection___abstract_collection___Collection___first(fra.me.REG[0])(fra.me.REG[0]);
4813 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
4814 if (UNTAG_Bool(REGB0)) {
4815 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 629);
4816 }
4817 fra.me.REG[0] = CALL_standard___collection___abstract_collection___Couple___first(fra.me.REG[0])(fra.me.REG[0]);
4818 goto label1;
4819 label1: while(0);
4820 stack_frame_head = fra.me.prev;
4821 return fra.me.REG[0];
4822 }
4823 val_t standard___collection___array___ArrayMapValues___is_empty(val_t p0){
4824 struct {struct stack_frame_t me;} fra;
4825 val_t REGB0;
4826 val_t tmp;
4827 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4828 fra.me.file = LOCATE_standard___collection___array;
4829 fra.me.line = 630;
4830 fra.me.meth = LOCATE_standard___collection___array___ArrayMapValues___is_empty;
4831 fra.me.has_broke = 0;
4832 fra.me.REG_size = 1;
4833 fra.me.nitni_local_ref_head = NULL;
4834 fra.me.REG[0] = NIT_NULL;
4835 fra.me.REG[0] = p0;
4836 /* ../lib/standard/collection/array.nit:630 */
4837 fra.me.REG[0] = CALL_standard___collection___array___ArrayMapValues___map(fra.me.REG[0])(fra.me.REG[0]);
4838 REGB0 = CALL_standard___collection___abstract_collection___MapRead___is_empty(fra.me.REG[0])(fra.me.REG[0]);
4839 goto label1;
4840 label1: while(0);
4841 stack_frame_head = fra.me.prev;
4842 return REGB0;
4843 }
4844 val_t standard___collection___array___ArrayMapValues___length(val_t p0){
4845 struct {struct stack_frame_t me;} fra;
4846 val_t REGB0;
4847 val_t tmp;
4848 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4849 fra.me.file = LOCATE_standard___collection___array;
4850 fra.me.line = 631;
4851 fra.me.meth = LOCATE_standard___collection___array___ArrayMapValues___length;
4852 fra.me.has_broke = 0;
4853 fra.me.REG_size = 1;
4854 fra.me.nitni_local_ref_head = NULL;
4855 fra.me.REG[0] = NIT_NULL;
4856 fra.me.REG[0] = p0;
4857 /* ../lib/standard/collection/array.nit:631 */
4858 fra.me.REG[0] = CALL_standard___collection___array___ArrayMapValues___map(fra.me.REG[0])(fra.me.REG[0]);
4859 REGB0 = CALL_standard___collection___abstract_collection___MapRead___length(fra.me.REG[0])(fra.me.REG[0]);
4860 goto label1;
4861 label1: while(0);
4862 stack_frame_head = fra.me.prev;
4863 return REGB0;
4864 }
4865 val_t standard___collection___array___ArrayMapValues___iterator(val_t p0){
4866 struct {struct stack_frame_t me;} fra;
4867 val_t tmp;
4868 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4869 fra.me.file = LOCATE_standard___collection___array;
4870 fra.me.line = 632;
4871 fra.me.meth = LOCATE_standard___collection___array___ArrayMapValues___iterator;
4872 fra.me.has_broke = 0;
4873 fra.me.REG_size = 1;
4874 fra.me.nitni_local_ref_head = NULL;
4875 fra.me.REG[0] = NIT_NULL;
4876 fra.me.REG[0] = p0;
4877 /* ../lib/standard/collection/array.nit:632 */
4878 fra.me.REG[0] = CALL_standard___collection___array___ArrayMapValues___map(fra.me.REG[0])(fra.me.REG[0]);
4879 fra.me.REG[0] = CALL_standard___collection___abstract_collection___MapRead___iterator(fra.me.REG[0])(fra.me.REG[0]);
4880 fra.me.REG[0] = NEW_MapValuesIterator_standard___collection___abstract_collection___MapValuesIterator___init(fra.me.REG[0]);
4881 goto label1;
4882 label1: while(0);
4883 stack_frame_head = fra.me.prev;
4884 return fra.me.REG[0];
4885 }
4886 val_t standard___collection___array___ArrayMapValues___has(val_t p0, val_t p1){
4887 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
4888 val_t REGB0;
4889 val_t REGB1;
4890 val_t REGB2;
4891 val_t tmp;
4892 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4893 fra.me.file = LOCATE_standard___collection___array;
4894 fra.me.line = 634;
4895 fra.me.meth = LOCATE_standard___collection___array___ArrayMapValues___has;
4896 fra.me.has_broke = 0;
4897 fra.me.REG_size = 4;
4898 fra.me.nitni_local_ref_head = NULL;
4899 fra.me.REG[0] = NIT_NULL;
4900 fra.me.REG[1] = NIT_NULL;
4901 fra.me.REG[2] = NIT_NULL;
4902 fra.me.REG[3] = NIT_NULL;
4903 fra.me.REG[0] = p0;
4904 fra.me.REG[1] = p1;
4905 /* ../lib/standard/collection/array.nit:637 */
4906 fra.me.REG[0] = CALL_standard___collection___array___ArrayMapValues___map(fra.me.REG[0])(fra.me.REG[0]);
4907 REGB0 = TAG_Bool(ATTR_standard___collection___array___ArrayMap____items(fra.me.REG[0])!=NIT_NULL);
4908 if (UNTAG_Bool(REGB0)) {
4909 } else {
4910 nit_abort("Uninitialized attribute %s", "_items", LOCATE_standard___collection___array, 637);
4911 }
4912 fra.me.REG[0] = ATTR_standard___collection___array___ArrayMap____items(fra.me.REG[0]);
4913 /* ../lib/standard/collection/array.nit:269 */
4914 REGB0 = TAG_Int(0);
4915 /* ../lib/standard/collection/array.nit:270 */
4916 REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
4917 if (UNTAG_Bool(REGB1)) {
4918 } else {
4919 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 270);
4920 }
4921 REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0]);
4922 /* ../lib/standard/collection/array.nit:271 */
4923 fra.me.REG[2] = ATTR_standard___collection___array___Array____items(fra.me.REG[0]);
4924 /* ../lib/standard/collection/array.nit:272 */
4925 while(1) {
4926 /* ../lib/standard/collection/array.nit:24 */
4927 REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
4928 if (UNTAG_Bool(REGB1)) {
4929 } else {
4930 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
4931 }
4932 REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0]);
4933 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
4934 if (UNTAG_Bool(REGB2)) {
4935 } else {
4936 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
4937 }
4938 /* ../lib/standard/kernel.nit:232 */
4939 REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
4940 /* ../lib/standard/collection/array.nit:272 */
4941 if (UNTAG_Bool(REGB1)) {
4942 /* ../lib/standard/collection/array.nit:273 */
4943 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
4944 if (UNTAG_Bool(REGB1)) {
4945 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 273);
4946 }
4947 /* ../lib/standard/collection/array.nit:718 */
4948 fra.me.REG[3] = ((Nit_NativeArray)fra.me.REG[2])->val[UNTAG_Int(REGB0)];
4949 /* ../lib/standard/collection/array.nit:637 */
4950 fra.me.REG[3] = CALL_standard___collection___abstract_collection___Couple___second(fra.me.REG[3])(fra.me.REG[3]);
4951 REGB1 = TAG_Bool(IS_EQUAL_NN(fra.me.REG[3],fra.me.REG[1]));
4952 if (UNTAG_Bool(REGB1)) {
4953 } else {
4954 REGB2 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
4955 if (UNTAG_Bool(REGB2)) {
4956 REGB2 = TAG_Bool(false);
4957 REGB1 = REGB2;
4958 } else {
4959 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
4960 REGB1 = REGB2;
4961 }
4962 }
4963 if (UNTAG_Bool(REGB1)) {
4964 REGB1 = TAG_Bool(true);
4965 goto label1;
4966 }
4967 /* ../lib/standard/collection/array.nit:274 */
4968 REGB2 = TAG_Int(1);
4969 /* ../lib/standard/kernel.nit:235 */
4970 REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
4971 /* ../lib/standard/collection/array.nit:274 */
4972 REGB0 = REGB2;
4973 } else {
4974 /* ../lib/standard/collection/array.nit:272 */
4975 goto label2;
4976 }
4977 }
4978 label2: while(0);
4979 /* ../lib/standard/collection/array.nit:638 */
4980 REGB0 = TAG_Bool(false);
4981 REGB1 = REGB0;
4982 goto label1;
4983 label1: while(0);
4984 stack_frame_head = fra.me.prev;
4985 return REGB1;
4986 }
4987 val_t standard___collection___array___ArrayMapValues___has_only(val_t p0, val_t p1){
4988 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
4989 val_t REGB0;
4990 val_t REGB1;
4991 val_t REGB2;
4992 val_t tmp;
4993 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4994 fra.me.file = LOCATE_standard___collection___array;
4995 fra.me.line = 641;
4996 fra.me.meth = LOCATE_standard___collection___array___ArrayMapValues___has_only;
4997 fra.me.has_broke = 0;
4998 fra.me.REG_size = 4;
4999 fra.me.nitni_local_ref_head = NULL;
5000 fra.me.REG[0] = NIT_NULL;
5001 fra.me.REG[1] = NIT_NULL;
5002 fra.me.REG[2] = NIT_NULL;
5003 fra.me.REG[3] = NIT_NULL;
5004 fra.me.REG[0] = p0;
5005 fra.me.REG[1] = p1;
5006 /* ../lib/standard/collection/array.nit:644 */
5007 fra.me.REG[0] = CALL_standard___collection___array___ArrayMapValues___map(fra.me.REG[0])(fra.me.REG[0]);
5008 REGB0 = TAG_Bool(ATTR_standard___collection___array___ArrayMap____items(fra.me.REG[0])!=NIT_NULL);
5009 if (UNTAG_Bool(REGB0)) {
5010 } else {
5011 nit_abort("Uninitialized attribute %s", "_items", LOCATE_standard___collection___array, 644);
5012 }
5013 fra.me.REG[0] = ATTR_standard___collection___array___ArrayMap____items(fra.me.REG[0]);
5014 /* ../lib/standard/collection/array.nit:269 */
5015 REGB0 = TAG_Int(0);
5016 /* ../lib/standard/collection/array.nit:270 */
5017 REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
5018 if (UNTAG_Bool(REGB1)) {
5019 } else {
5020 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 270);
5021 }
5022 REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0]);
5023 /* ../lib/standard/collection/array.nit:271 */
5024 fra.me.REG[2] = ATTR_standard___collection___array___Array____items(fra.me.REG[0]);
5025 /* ../lib/standard/collection/array.nit:272 */
5026 while(1) {
5027 /* ../lib/standard/collection/array.nit:24 */
5028 REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
5029 if (UNTAG_Bool(REGB1)) {
5030 } else {
5031 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
5032 }
5033 REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0]);
5034 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
5035 if (UNTAG_Bool(REGB2)) {
5036 } else {
5037 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
5038 }
5039 /* ../lib/standard/kernel.nit:232 */
5040 REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
5041 /* ../lib/standard/collection/array.nit:272 */
5042 if (UNTAG_Bool(REGB1)) {
5043 /* ../lib/standard/collection/array.nit:273 */
5044 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
5045 if (UNTAG_Bool(REGB1)) {
5046 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 273);
5047 }
5048 /* ../lib/standard/collection/array.nit:718 */
5049 fra.me.REG[3] = ((Nit_NativeArray)fra.me.REG[2])->val[UNTAG_Int(REGB0)];
5050 /* ../lib/standard/collection/array.nit:644 */
5051 fra.me.REG[3] = CALL_standard___collection___abstract_collection___Couple___second(fra.me.REG[3])(fra.me.REG[3]);
5052 REGB1 = TAG_Bool(IS_EQUAL_NN(fra.me.REG[3],fra.me.REG[1]));
5053 if (UNTAG_Bool(REGB1)) {
5054 } else {
5055 REGB2 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
5056 if (UNTAG_Bool(REGB2)) {
5057 REGB2 = TAG_Bool(false);
5058 REGB1 = REGB2;
5059 } else {
5060 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
5061 REGB1 = REGB2;
5062 }
5063 }
5064 REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
5065 if (UNTAG_Bool(REGB1)) {
5066 REGB1 = TAG_Bool(false);
5067 goto label1;
5068 }
5069 /* ../lib/standard/collection/array.nit:274 */
5070 REGB2 = TAG_Int(1);
5071 /* ../lib/standard/kernel.nit:235 */
5072 REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
5073 /* ../lib/standard/collection/array.nit:274 */
5074 REGB0 = REGB2;
5075 } else {
5076 /* ../lib/standard/collection/array.nit:272 */
5077 goto label2;
5078 }
5079 }
5080 label2: while(0);
5081 /* ../lib/standard/collection/array.nit:645 */
5082 REGB0 = TAG_Bool(true);
5083 REGB1 = REGB0;
5084 goto label1;
5085 label1: while(0);
5086 stack_frame_head = fra.me.prev;
5087 return REGB1;
5088 }
5089 val_t standard___collection___array___ArrayMapValues___count(val_t p0, val_t p1){
5090 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
5091 val_t REGB0;
5092 val_t REGB1;
5093 val_t REGB2;
5094 val_t REGB3;
5095 val_t tmp;
5096 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
5097 fra.me.file = LOCATE_standard___collection___array;
5098 fra.me.line = 648;
5099 fra.me.meth = LOCATE_standard___collection___array___ArrayMapValues___count;
5100 fra.me.has_broke = 0;
5101 fra.me.REG_size = 4;
5102 fra.me.nitni_local_ref_head = NULL;
5103 fra.me.REG[0] = NIT_NULL;
5104 fra.me.REG[1] = NIT_NULL;
5105 fra.me.REG[2] = NIT_NULL;
5106 fra.me.REG[3] = NIT_NULL;
5107 fra.me.REG[0] = p0;
5108 fra.me.REG[1] = p1;
5109 /* ../lib/standard/collection/array.nit:651 */
5110 REGB0 = TAG_Int(0);
5111 /* ../lib/standard/collection/array.nit:652 */
5112 fra.me.REG[0] = CALL_standard___collection___array___ArrayMapValues___map(fra.me.REG[0])(fra.me.REG[0]);
5113 REGB1 = TAG_Bool(ATTR_standard___collection___array___ArrayMap____items(fra.me.REG[0])!=NIT_NULL);
5114 if (UNTAG_Bool(REGB1)) {
5115 } else {
5116 nit_abort("Uninitialized attribute %s", "_items", LOCATE_standard___collection___array, 652);
5117 }
5118 fra.me.REG[0] = ATTR_standard___collection___array___ArrayMap____items(fra.me.REG[0]);
5119 /* ../lib/standard/collection/array.nit:269 */
5120 REGB1 = TAG_Int(0);
5121 /* ../lib/standard/collection/array.nit:270 */
5122 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
5123 if (UNTAG_Bool(REGB2)) {
5124 } else {
5125 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 270);
5126 }
5127 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0]);
5128 /* ../lib/standard/collection/array.nit:271 */
5129 fra.me.REG[2] = ATTR_standard___collection___array___Array____items(fra.me.REG[0]);
5130 /* ../lib/standard/collection/array.nit:272 */
5131 while(1) {
5132 /* ../lib/standard/collection/array.nit:24 */
5133 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
5134 if (UNTAG_Bool(REGB2)) {
5135 } else {
5136 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
5137 }
5138 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0]);
5139 REGB3 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
5140 if (UNTAG_Bool(REGB3)) {
5141 } else {
5142 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
5143 }
5144 /* ../lib/standard/kernel.nit:232 */
5145 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
5146 /* ../lib/standard/collection/array.nit:272 */
5147 if (UNTAG_Bool(REGB2)) {
5148 /* ../lib/standard/collection/array.nit:273 */
5149 REGB2 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
5150 if (UNTAG_Bool(REGB2)) {
5151 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 273);
5152 }
5153 /* ../lib/standard/collection/array.nit:718 */
5154 fra.me.REG[3] = ((Nit_NativeArray)fra.me.REG[2])->val[UNTAG_Int(REGB1)];
5155 /* ../lib/standard/collection/array.nit:652 */
5156 fra.me.REG[3] = CALL_standard___collection___abstract_collection___Couple___second(fra.me.REG[3])(fra.me.REG[3]);
5157 REGB2 = TAG_Bool(IS_EQUAL_NN(fra.me.REG[3],fra.me.REG[1]));
5158 if (UNTAG_Bool(REGB2)) {
5159 } else {
5160 REGB3 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
5161 if (UNTAG_Bool(REGB3)) {
5162 REGB3 = TAG_Bool(false);
5163 REGB2 = REGB3;
5164 } else {
5165 REGB3 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
5166 REGB2 = REGB3;
5167 }
5168 }
5169 if (UNTAG_Bool(REGB2)) {
5170 REGB2 = TAG_Int(1);
5171 /* ../lib/standard/kernel.nit:235 */
5172 REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
5173 /* ../lib/standard/collection/array.nit:652 */
5174 REGB0 = REGB2;
5175 }
5176 /* ../lib/standard/collection/array.nit:274 */
5177 REGB2 = TAG_Int(1);
5178 /* ../lib/standard/kernel.nit:235 */
5179 REGB2 = TAG_Int(UNTAG_Int(REGB1)+UNTAG_Int(REGB2));
5180 /* ../lib/standard/collection/array.nit:274 */
5181 REGB1 = REGB2;
5182 } else {
5183 /* ../lib/standard/collection/array.nit:272 */
5184 goto label1;
5185 }
5186 }
5187 label1: while(0);
5188 /* ../lib/standard/collection/array.nit:653 */
5189 goto label2;
5190 label2: while(0);
5191 stack_frame_head = fra.me.prev;
5192 return REGB0;
5193 }
5194 void standard___collection___array___ArrayMapValues___clear(val_t p0){
5195 struct {struct stack_frame_t me;} fra;
5196 val_t tmp;
5197 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
5198 fra.me.file = LOCATE_standard___collection___array;
5199 fra.me.line = 656;
5200 fra.me.meth = LOCATE_standard___collection___array___ArrayMapValues___clear;
5201 fra.me.has_broke = 0;
5202 fra.me.REG_size = 1;
5203 fra.me.nitni_local_ref_head = NULL;
5204 fra.me.REG[0] = NIT_NULL;
5205 fra.me.REG[0] = p0;
5206 /* ../lib/standard/collection/array.nit:656 */
5207 fra.me.REG[0] = CALL_standard___collection___array___ArrayMapValues___map(fra.me.REG[0])(fra.me.REG[0]);
5208 CALL_standard___collection___abstract_collection___Map___clear(fra.me.REG[0])(fra.me.REG[0]);
5209 stack_frame_head = fra.me.prev;
5210 return;
5211 }
5212 void standard___collection___array___ArrayMapValues___remove(val_t p0, val_t p1){
5213 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
5214 val_t REGB0;
5215 val_t REGB1;
5216 val_t REGB2;
5217 val_t REGB3;
5218 val_t tmp;
5219 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
5220 fra.me.file = LOCATE_standard___collection___array;
5221 fra.me.line = 658;
5222 fra.me.meth = LOCATE_standard___collection___array___ArrayMapValues___remove;
5223 fra.me.has_broke = 0;
5224 fra.me.REG_size = 3;
5225 fra.me.nitni_local_ref_head = NULL;
5226 fra.me.REG[0] = NIT_NULL;
5227 fra.me.REG[1] = NIT_NULL;
5228 fra.me.REG[2] = NIT_NULL;
5229 fra.me.REG[0] = p0;
5230 fra.me.REG[1] = p1;
5231 /* ../lib/standard/collection/array.nit:660 */
5232 fra.me.REG[0] = CALL_standard___collection___array___ArrayMapValues___map(fra.me.REG[0])(fra.me.REG[0]);
5233 /* ../lib/standard/collection/array.nit:661 */
5234 REGB0 = TAG_Bool(ATTR_standard___collection___array___ArrayMap____items(fra.me.REG[0])!=NIT_NULL);
5235 if (UNTAG_Bool(REGB0)) {
5236 } else {
5237 nit_abort("Uninitialized attribute %s", "_items", LOCATE_standard___collection___array, 661);
5238 }
5239 fra.me.REG[2] = ATTR_standard___collection___array___ArrayMap____items(fra.me.REG[0]);
5240 /* ../lib/standard/collection/array.nit:24 */
5241 REGB0 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
5242 if (UNTAG_Bool(REGB0)) {
5243 } else {
5244 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
5245 }
5246 REGB0 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2]);
5247 /* ../lib/standard/collection/array.nit:661 */
5248 REGB1 = TAG_Int(1);
5249 /* ../lib/standard/kernel.nit:237 */
5250 REGB1 = TAG_Int(UNTAG_Int(REGB0)-UNTAG_Int(REGB1));
5251 /* ../lib/standard/collection/array.nit:662 */
5252 while(1) {
5253 REGB0 = TAG_Int(0);
5254 REGB2 = TAG_Bool(VAL_ISA(REGB0, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
5255 if (UNTAG_Bool(REGB2)) {
5256 } else {
5257 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
5258 }
5259 /* ../lib/standard/kernel.nit:233 */
5260 REGB0 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB0));
5261 /* ../lib/standard/collection/array.nit:662 */
5262 if (UNTAG_Bool(REGB0)) {
5263 /* ../lib/standard/collection/array.nit:663 */
5264 REGB0 = TAG_Bool(ATTR_standard___collection___array___ArrayMap____items(fra.me.REG[0])!=NIT_NULL);
5265 if (UNTAG_Bool(REGB0)) {
5266 } else {
5267 nit_abort("Uninitialized attribute %s", "_items", LOCATE_standard___collection___array, 663);
5268 }
5269 fra.me.REG[2] = ATTR_standard___collection___array___ArrayMap____items(fra.me.REG[0]);
5270 /* ../lib/standard/collection/array.nit:278 */
5271 REGB0 = REGB1;
5272 /* ../lib/standard/collection/array.nit:280 */
5273 REGB2 = TAG_Int(0);
5274 REGB3 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
5275 if (UNTAG_Bool(REGB3)) {
5276 } else {
5277 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
5278 }
5279 /* ../lib/standard/kernel.nit:233 */
5280 REGB2 = TAG_Bool(UNTAG_Int(REGB0)>=UNTAG_Int(REGB2));
5281 /* ../lib/standard/collection/array.nit:280 */
5282 if (UNTAG_Bool(REGB2)) {
5283 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
5284 if (UNTAG_Bool(REGB2)) {
5285 } else {
5286 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
5287 }
5288 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2]);
5289 REGB3 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
5290 if (UNTAG_Bool(REGB3)) {
5291 } else {
5292 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
5293 }
5294 /* ../lib/standard/kernel.nit:232 */
5295 REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB2));
5296 } else {
5297 /* ../lib/standard/collection/array.nit:280 */
5298 REGB3 = TAG_Bool(false);
5299 REGB2 = REGB3;
5300 }
5301 if (UNTAG_Bool(REGB2)) {
5302 } else {
5303 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
5304 }
5305 /* ../lib/standard/collection/array.nit:281 */
5306 fra.me.REG[2] = ATTR_standard___collection___array___Array____items(fra.me.REG[2]);
5307 REGB2 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
5308 if (UNTAG_Bool(REGB2)) {
5309 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
5310 }
5311 /* ../lib/standard/collection/array.nit:718 */
5312 fra.me.REG[2] = ((Nit_NativeArray)fra.me.REG[2])->val[UNTAG_Int(REGB0)];
5313 /* ../lib/standard/collection/array.nit:281 */
5314 goto label1;
5315 label1: while(0);
5316 /* ../lib/standard/collection/array.nit:663 */
5317 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
5318 if (UNTAG_Bool(REGB0)) {
5319 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 663);
5320 }
5321 fra.me.REG[2] = CALL_standard___collection___abstract_collection___Couple___second(fra.me.REG[2])(fra.me.REG[2]);
5322 REGB0 = TAG_Bool(IS_EQUAL_NN(fra.me.REG[2],fra.me.REG[1]));
5323 if (UNTAG_Bool(REGB0)) {
5324 } else {
5325 REGB2 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
5326 if (UNTAG_Bool(REGB2)) {
5327 REGB2 = TAG_Bool(false);
5328 REGB0 = REGB2;
5329 } else {
5330 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
5331 REGB0 = REGB2;
5332 }
5333 }
5334 if (UNTAG_Bool(REGB0)) {
5335 /* ../lib/standard/collection/array.nit:664 */
5336 CALL_standard___collection___array___ArrayMap___remove_at_index(fra.me.REG[0])(fra.me.REG[0], REGB1);
5337 /* ../lib/standard/collection/array.nit:665 */
5338 goto label2;
5339 }
5340 /* ../lib/standard/collection/array.nit:667 */
5341 REGB0 = TAG_Int(1);
5342 /* ../lib/standard/kernel.nit:237 */
5343 REGB0 = TAG_Int(UNTAG_Int(REGB1)-UNTAG_Int(REGB0));
5344 /* ../lib/standard/collection/array.nit:667 */
5345 REGB1 = REGB0;
5346 } else {
5347 /* ../lib/standard/collection/array.nit:662 */
5348 goto label3;
5349 }
5350 }
5351 label3: while(0);
5352 label2: while(0);
5353 stack_frame_head = fra.me.prev;
5354 return;
5355 }
5356 void standard___collection___array___ArrayMapValues___remove_all(val_t p0, val_t p1){
5357 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
5358 val_t REGB0;
5359 val_t REGB1;
5360 val_t REGB2;
5361 val_t REGB3;
5362 val_t tmp;
5363 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
5364 fra.me.file = LOCATE_standard___collection___array;
5365 fra.me.line = 671;
5366 fra.me.meth = LOCATE_standard___collection___array___ArrayMapValues___remove_all;
5367 fra.me.has_broke = 0;
5368 fra.me.REG_size = 3;
5369 fra.me.nitni_local_ref_head = NULL;
5370 fra.me.REG[0] = NIT_NULL;
5371 fra.me.REG[1] = NIT_NULL;
5372 fra.me.REG[2] = NIT_NULL;
5373 fra.me.REG[0] = p0;
5374 fra.me.REG[1] = p1;
5375 /* ../lib/standard/collection/array.nit:673 */
5376 fra.me.REG[0] = CALL_standard___collection___array___ArrayMapValues___map(fra.me.REG[0])(fra.me.REG[0]);
5377 /* ../lib/standard/collection/array.nit:674 */
5378 REGB0 = TAG_Bool(ATTR_standard___collection___array___ArrayMap____items(fra.me.REG[0])!=NIT_NULL);
5379 if (UNTAG_Bool(REGB0)) {
5380 } else {
5381 nit_abort("Uninitialized attribute %s", "_items", LOCATE_standard___collection___array, 674);
5382 }
5383 fra.me.REG[2] = ATTR_standard___collection___array___ArrayMap____items(fra.me.REG[0]);
5384 /* ../lib/standard/collection/array.nit:24 */
5385 REGB0 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
5386 if (UNTAG_Bool(REGB0)) {
5387 } else {
5388 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
5389 }
5390 REGB0 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2]);
5391 /* ../lib/standard/collection/array.nit:674 */
5392 REGB1 = TAG_Int(1);
5393 /* ../lib/standard/kernel.nit:237 */
5394 REGB1 = TAG_Int(UNTAG_Int(REGB0)-UNTAG_Int(REGB1));
5395 /* ../lib/standard/collection/array.nit:675 */
5396 while(1) {
5397 REGB0 = TAG_Int(0);
5398 REGB2 = TAG_Bool(VAL_ISA(REGB0, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
5399 if (UNTAG_Bool(REGB2)) {
5400 } else {
5401 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
5402 }
5403 /* ../lib/standard/kernel.nit:233 */
5404 REGB0 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB0));
5405 /* ../lib/standard/collection/array.nit:675 */
5406 if (UNTAG_Bool(REGB0)) {
5407 /* ../lib/standard/collection/array.nit:676 */
5408 REGB0 = TAG_Bool(ATTR_standard___collection___array___ArrayMap____items(fra.me.REG[0])!=NIT_NULL);
5409 if (UNTAG_Bool(REGB0)) {
5410 } else {
5411 nit_abort("Uninitialized attribute %s", "_items", LOCATE_standard___collection___array, 676);
5412 }
5413 fra.me.REG[2] = ATTR_standard___collection___array___ArrayMap____items(fra.me.REG[0]);
5414 /* ../lib/standard/collection/array.nit:278 */
5415 REGB0 = REGB1;
5416 /* ../lib/standard/collection/array.nit:280 */
5417 REGB2 = TAG_Int(0);
5418 REGB3 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
5419 if (UNTAG_Bool(REGB3)) {
5420 } else {
5421 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
5422 }
5423 /* ../lib/standard/kernel.nit:233 */
5424 REGB2 = TAG_Bool(UNTAG_Int(REGB0)>=UNTAG_Int(REGB2));
5425 /* ../lib/standard/collection/array.nit:280 */
5426 if (UNTAG_Bool(REGB2)) {
5427 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
5428 if (UNTAG_Bool(REGB2)) {
5429 } else {
5430 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
5431 }
5432 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2]);
5433 REGB3 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
5434 if (UNTAG_Bool(REGB3)) {
5435 } else {
5436 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
5437 }
5438 /* ../lib/standard/kernel.nit:232 */
5439 REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB2));
5440 } else {
5441 /* ../lib/standard/collection/array.nit:280 */
5442 REGB3 = TAG_Bool(false);
5443 REGB2 = REGB3;
5444 }
5445 if (UNTAG_Bool(REGB2)) {
5446 } else {
5447 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
5448 }
5449 /* ../lib/standard/collection/array.nit:281 */
5450 fra.me.REG[2] = ATTR_standard___collection___array___Array____items(fra.me.REG[2]);
5451 REGB2 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
5452 if (UNTAG_Bool(REGB2)) {
5453 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
5454 }
5455 /* ../lib/standard/collection/array.nit:718 */
5456 fra.me.REG[2] = ((Nit_NativeArray)fra.me.REG[2])->val[UNTAG_Int(REGB0)];
5457 /* ../lib/standard/collection/array.nit:281 */
5458 goto label1;
5459 label1: while(0);
5460 /* ../lib/standard/collection/array.nit:676 */
5461 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
5462 if (UNTAG_Bool(REGB0)) {
5463 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 676);
5464 }
5465 fra.me.REG[2] = CALL_standard___collection___abstract_collection___Couple___second(fra.me.REG[2])(fra.me.REG[2]);
5466 REGB0 = TAG_Bool(IS_EQUAL_NN(fra.me.REG[2],fra.me.REG[1]));
5467 if (UNTAG_Bool(REGB0)) {
5468 } else {
5469 REGB2 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
5470 if (UNTAG_Bool(REGB2)) {
5471 REGB2 = TAG_Bool(false);
5472 REGB0 = REGB2;
5473 } else {
5474 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
5475 REGB0 = REGB2;
5476 }
5477 }
5478 if (UNTAG_Bool(REGB0)) {
5479 /* ../lib/standard/collection/array.nit:677 */
5480 CALL_standard___collection___array___ArrayMap___remove_at_index(fra.me.REG[0])(fra.me.REG[0], REGB1);
5481 }
5482 /* ../lib/standard/collection/array.nit:679 */
5483 REGB0 = TAG_Int(1);
5484 /* ../lib/standard/kernel.nit:237 */
5485 REGB0 = TAG_Int(UNTAG_Int(REGB1)-UNTAG_Int(REGB0));
5486 /* ../lib/standard/collection/array.nit:679 */
5487 REGB1 = REGB0;
5488 } else {
5489 /* ../lib/standard/collection/array.nit:675 */
5490 goto label2;
5491 }
5492 }
5493 label2: while(0);
5494 stack_frame_head = fra.me.prev;
5495 return;
5496 }
5497 void standard___collection___array___ArrayMapValues___init(val_t p0, val_t p1, int* init_table){
5498 int itpos12 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_standard___collection___array___ArrayMapValues].i;
5499 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
5500 val_t tmp;
5501 if (init_table[itpos12]) return;
5502 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
5503 fra.me.file = LOCATE_standard___collection___array;
5504 fra.me.line = 0;
5505 fra.me.meth = LOCATE_standard___collection___array___ArrayMapValues___init;
5506 fra.me.has_broke = 0;
5507 fra.me.REG_size = 2;
5508 fra.me.nitni_local_ref_head = NULL;
5509 fra.me.REG[0] = NIT_NULL;
5510 fra.me.REG[1] = NIT_NULL;
5511 fra.me.REG[0] = p0;
5512 fra.me.REG[1] = p1;
5513 ATTR_standard___collection___array___ArrayMapValues_____atmap(fra.me.REG[0]) = fra.me.REG[1];
5514 stack_frame_head = fra.me.prev;
5515 init_table[itpos12] = 1;
5516 return;
5517 }
5518 val_t standard___collection___array___Iterator___to_a(val_t p0){
5519 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
5520 val_t REGB0;
5521 val_t tmp;
5522 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
5523 fra.me.file = LOCATE_standard___collection___array;
5524 fra.me.line = 688;
5525 fra.me.meth = LOCATE_standard___collection___array___Iterator___to_a;
5526 fra.me.has_broke = 0;
5527 fra.me.REG_size = 3;
5528 fra.me.nitni_local_ref_head = NULL;
5529 fra.me.REG[0] = NIT_NULL;
5530 fra.me.REG[1] = NIT_NULL;
5531 fra.me.REG[2] = NIT_NULL;
5532 fra.me.REG[0] = p0;
5533 /* ../lib/standard/collection/array.nit:691 */
5534 fra.me.REG[1] = NEW_Array_standard___collection___array___Array___init();
5535 /* ../lib/standard/collection/array.nit:692 */
5536 while(1) {
5537 REGB0 = CALL_standard___collection___abstract_collection___Iterator___is_ok(fra.me.REG[0])(fra.me.REG[0]);
5538 if (UNTAG_Bool(REGB0)) {
5539 /* ../lib/standard/collection/array.nit:693 */
5540 fra.me.REG[2] = CALL_standard___collection___abstract_collection___Iterator___item(fra.me.REG[0])(fra.me.REG[0]);
5541 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
5542 /* ../lib/standard/collection/array.nit:694 */
5543 CALL_standard___collection___abstract_collection___Iterator___next(fra.me.REG[0])(fra.me.REG[0]);
5544 } else {
5545 /* ../lib/standard/collection/array.nit:692 */
5546 goto label1;
5547 }
5548 }
5549 label1: while(0);
5550 /* ../lib/standard/collection/array.nit:696 */
5551 goto label2;
5552 label2: while(0);
5553 stack_frame_head = fra.me.prev;
5554 return fra.me.REG[1];
5555 }
5556 val_t standard___collection___array___Collection___to_a(val_t p0){
5557 struct {struct stack_frame_t me;} fra;
5558 val_t tmp;
5559 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
5560 fra.me.file = LOCATE_standard___collection___array;
5561 fra.me.line = 701;
5562 fra.me.meth = LOCATE_standard___collection___array___Collection___to_a;
5563 fra.me.has_broke = 0;
5564 fra.me.REG_size = 1;
5565 fra.me.nitni_local_ref_head = NULL;
5566 fra.me.REG[0] = NIT_NULL;
5567 fra.me.REG[0] = p0;
5568 /* ../lib/standard/collection/array.nit:704 */
5569 fra.me.REG[0] = CALL_standard___collection___abstract_collection___Collection___iterator(fra.me.REG[0])(fra.me.REG[0]);
5570 fra.me.REG[0] = CALL_standard___collection___array___Iterator___to_a(fra.me.REG[0])(fra.me.REG[0]);
5571 goto label1;
5572 label1: while(0);
5573 stack_frame_head = fra.me.prev;
5574 return fra.me.REG[0];
5575 }
5576 val_t standard___collection___array___ArrayCapable___calloc_array(val_t p0, val_t p1){
5577 struct {struct stack_frame_t me;} fra;
5578 val_t REGB0;
5579 val_t tmp;
5580 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
5581 fra.me.file = LOCATE_standard___collection___array;
5582 fra.me.line = 712;
5583 fra.me.meth = LOCATE_standard___collection___array___ArrayCapable___calloc_array;
5584 fra.me.has_broke = 0;
5585 fra.me.REG_size = 1;
5586 fra.me.nitni_local_ref_head = NULL;
5587 fra.me.REG[0] = NIT_NULL;
5588 fra.me.REG[0] = p0;
5589 REGB0 = p1;
5590 /* ../lib/standard/collection/array.nit:712 */
5591 fra.me.REG[0] = NEW_NativeArray(UNTAG_Int(REGB0), sizeof(val_t));
5592 stack_frame_head = fra.me.prev;
5593 return fra.me.REG[0];
5594 }
5595 val_t standard___collection___array___NativeArray_____bra(val_t p0, val_t p1){
5596 struct {struct stack_frame_t me;} fra;
5597 val_t REGB0;
5598 val_t tmp;
5599 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
5600 fra.me.file = LOCATE_standard___collection___array;
5601 fra.me.line = 718;
5602 fra.me.meth = LOCATE_standard___collection___array___NativeArray_____bra;
5603 fra.me.has_broke = 0;
5604 fra.me.REG_size = 1;
5605 fra.me.nitni_local_ref_head = NULL;
5606 fra.me.REG[0] = NIT_NULL;
5607 fra.me.REG[0] = p0;
5608 REGB0 = p1;
5609 /* ../lib/standard/collection/array.nit:718 */
5610 fra.me.REG[0] = ((Nit_NativeArray)fra.me.REG[0])->val[UNTAG_Int(REGB0)];
5611 stack_frame_head = fra.me.prev;
5612 return fra.me.REG[0];
5613 }
5614 void standard___collection___array___NativeArray_____braeq(val_t p0, val_t p1, val_t p2){
5615 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
5616 val_t REGB0;
5617 val_t tmp;
5618 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
5619 fra.me.file = LOCATE_standard___collection___array;
5620 fra.me.line = 719;
5621 fra.me.meth = LOCATE_standard___collection___array___NativeArray_____braeq;
5622 fra.me.has_broke = 0;
5623 fra.me.REG_size = 2;
5624 fra.me.nitni_local_ref_head = NULL;
5625 fra.me.REG[0] = NIT_NULL;
5626 fra.me.REG[1] = NIT_NULL;
5627 fra.me.REG[0] = p0;
5628 REGB0 = p1;
5629 fra.me.REG[1] = p2;
5630 /* ../lib/standard/collection/array.nit:719 */
5631 ((Nit_NativeArray)fra.me.REG[0])->val[UNTAG_Int(REGB0)]=fra.me.REG[1];
5632 stack_frame_head = fra.me.prev;
5633 return;
5634 }
5635 void standard___collection___array___NativeArray___copy_to(val_t p0, val_t p1, val_t p2){
5636 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
5637 val_t REGB0;
5638 val_t tmp;
5639 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
5640 fra.me.file = LOCATE_standard___collection___array;
5641 fra.me.line = 720;
5642 fra.me.meth = LOCATE_standard___collection___array___NativeArray___copy_to;
5643 fra.me.has_broke = 0;
5644 fra.me.REG_size = 2;
5645 fra.me.nitni_local_ref_head = NULL;
5646 fra.me.REG[0] = NIT_NULL;
5647 fra.me.REG[1] = NIT_NULL;
5648 fra.me.REG[0] = p0;
5649 fra.me.REG[1] = p1;
5650 REGB0 = p2;
5651 /* ../lib/standard/collection/array.nit:720 */
5652 (void)memcpy(((Nit_NativeArray )fra.me.REG[1])->val, ((Nit_NativeArray)fra.me.REG[0])->val, UNTAG_Int(REGB0)*sizeof(val_t));
5653 stack_frame_head = fra.me.prev;
5654 return;
5655 }