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