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