nitg: fixes iterators crashes for test in 62cdb9a9633767baafb04f66fdad79a46d2e9a69
[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:237 */
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:242 */
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:245 */
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:242 */
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:245 */
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:242 */
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:245 */
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:245 */
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:247 */
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:242 */
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:245 */
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:246 */
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:243 */
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:247 */
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:246 */
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:244 */
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:247 */
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:244 */
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:247 */
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:245 */
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:242 */
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:245 */
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:237 */
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:242 */
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:245 */
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:247 */
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:242 */
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:247 */
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:245 */
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:247 */
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:247 */
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:244 */
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:245 */
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:247 */
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:245 */
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:247 */
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:245 */
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:243 */
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:243 */
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:242 */
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:245 */
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:242 */
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:247 */
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:245 */
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:247 */
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[2];} 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 = 3;
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[2] = NIT_NULL;
1372 fra.me.REG[0] = p0;
1373 REGB0 = p1;
1374 REGB1 = p2;
1375 /* ../lib/standard/collection/array.nit:247 */
1376 fra.me.REG[1] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra.me.REG[0])(fra.me.REG[0], REGB0);
1377 /* ../lib/standard/collection/array.nit:248 */
1378 fra.me.REG[2] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra.me.REG[0])(fra.me.REG[0], REGB1);
1379 CALL_standard___collection___abstract_collection___Sequence_____braeq(fra.me.REG[0])(fra.me.REG[0], REGB0, fra.me.REG[2]);
1380 /* ../lib/standard/collection/array.nit:249 */
1381 CALL_standard___collection___abstract_collection___Sequence_____braeq(fra.me.REG[0])(fra.me.REG[0], REGB1, fra.me.REG[1]);
1382 stack_frame_head = fra.me.prev;
1383 return;
1384 }
1385 static const char LOCATE_standard___collection___array___Array___iterate[] = "array::Array::(abstract_collection::Collection::iterate)";
1386 void standard___collection___array___Array___iterate(val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
1387 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
1388 val_t REGB0;
1389 val_t REGB1;
1390 val_t REGB2;
1391 fun_t CREG[1];
1392 val_t tmp;
1393 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1394 fra.me.file = LOCATE_standard___collection___array;
1395 fra.me.line = 267;
1396 fra.me.meth = LOCATE_standard___collection___array___Array___iterate;
1397 fra.me.has_broke = 0;
1398 fra.me.REG_size = 3;
1399 fra.me.nitni_local_ref_head = NULL;
1400 fra.me.REG[0] = NIT_NULL;
1401 fra.me.REG[1] = NIT_NULL;
1402 fra.me.REG[2] = NIT_NULL;
1403 fra.me.closure_ctx = closctx_param;
1404 fra.me.closure_funs = CREG;
1405 fra.me.REG[0] = p0;
1406 CREG[0] = clos_fun0;
1407 /* ../lib/standard/collection/array.nit:270 */
1408 REGB0 = TAG_Int(0);
1409 /* ../lib/standard/collection/array.nit:271 */
1410 REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
1411 if (UNTAG_Bool(REGB1)) {
1412 } else {
1413 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 271);
1414 }
1415 REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0]);
1416 /* ../lib/standard/collection/array.nit:272 */
1417 fra.me.REG[1] = ATTR_standard___collection___array___Array____items(fra.me.REG[0]);
1418 /* ../lib/standard/collection/array.nit:273 */
1419 while(1) {
1420 /* ../lib/standard/collection/array.nit:24 */
1421 REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
1422 if (UNTAG_Bool(REGB1)) {
1423 } else {
1424 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
1425 }
1426 REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0]);
1427 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
1428 if (UNTAG_Bool(REGB2)) {
1429 } else {
1430 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
1431 }
1432 /* ../lib/standard/kernel.nit:242 */
1433 REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
1434 /* ../lib/standard/collection/array.nit:273 */
1435 if (UNTAG_Bool(REGB1)) {
1436 /* ../lib/standard/collection/array.nit:274 */
1437 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
1438 if (UNTAG_Bool(REGB1)) {
1439 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 274);
1440 }
1441 /* ../lib/standard/collection/array.nit:725 */
1442 fra.me.REG[2] = ((Nit_NativeArray)fra.me.REG[1])->val[UNTAG_Int(REGB0)];
1443 /* ../lib/standard/collection/array.nit:274 */
1444 ((void (*)(struct stack_frame_t *, val_t))(CREG[0]))(closctx_param, fra.me.REG[2]);
1445 if (closctx_param->has_broke) {
1446 goto label1;
1447 }
1448 /* ../lib/standard/collection/array.nit:275 */
1449 REGB1 = TAG_Int(1);
1450 /* ../lib/standard/kernel.nit:245 */
1451 REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
1452 /* ../lib/standard/collection/array.nit:275 */
1453 REGB0 = REGB1;
1454 } else {
1455 /* ../lib/standard/collection/array.nit:273 */
1456 goto label2;
1457 }
1458 }
1459 label2: while(0);
1460 label1: while(0);
1461 stack_frame_head = fra.me.prev;
1462 return;
1463 }
1464 static const char LOCATE_standard___collection___array___Array_____bra[] = "array::Array::(abstract_collection::SequenceRead::[])";
1465 val_t standard___collection___array___Array_____bra(val_t p0, val_t p1){
1466 struct {struct stack_frame_t me;} fra;
1467 val_t REGB0;
1468 val_t REGB1;
1469 val_t REGB2;
1470 val_t tmp;
1471 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1472 fra.me.file = LOCATE_standard___collection___array;
1473 fra.me.line = 279;
1474 fra.me.meth = LOCATE_standard___collection___array___Array_____bra;
1475 fra.me.has_broke = 0;
1476 fra.me.REG_size = 1;
1477 fra.me.nitni_local_ref_head = NULL;
1478 fra.me.REG[0] = NIT_NULL;
1479 fra.me.REG[0] = p0;
1480 REGB0 = p1;
1481 /* ../lib/standard/collection/array.nit:281 */
1482 REGB1 = TAG_Int(0);
1483 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
1484 if (UNTAG_Bool(REGB2)) {
1485 } else {
1486 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
1487 }
1488 /* ../lib/standard/kernel.nit:243 */
1489 REGB1 = TAG_Bool(UNTAG_Int(REGB0)>=UNTAG_Int(REGB1));
1490 /* ../lib/standard/collection/array.nit:281 */
1491 if (UNTAG_Bool(REGB1)) {
1492 REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
1493 if (UNTAG_Bool(REGB1)) {
1494 } else {
1495 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 281);
1496 }
1497 REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0]);
1498 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
1499 if (UNTAG_Bool(REGB2)) {
1500 } else {
1501 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
1502 }
1503 /* ../lib/standard/kernel.nit:242 */
1504 REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
1505 } else {
1506 /* ../lib/standard/collection/array.nit:281 */
1507 REGB2 = TAG_Bool(0);
1508 REGB1 = REGB2;
1509 }
1510 if (UNTAG_Bool(REGB1)) {
1511 } else {
1512 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 281);
1513 }
1514 /* ../lib/standard/collection/array.nit:282 */
1515 fra.me.REG[0] = ATTR_standard___collection___array___Array____items(fra.me.REG[0]);
1516 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
1517 if (UNTAG_Bool(REGB1)) {
1518 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 282);
1519 }
1520 /* ../lib/standard/collection/array.nit:725 */
1521 fra.me.REG[0] = ((Nit_NativeArray)fra.me.REG[0])->val[UNTAG_Int(REGB0)];
1522 /* ../lib/standard/collection/array.nit:282 */
1523 goto label1;
1524 label1: while(0);
1525 stack_frame_head = fra.me.prev;
1526 return fra.me.REG[0];
1527 }
1528 static const char LOCATE_standard___collection___array___Array_____braeq[] = "array::Array::(abstract_collection::Sequence::[]=)";
1529 void standard___collection___array___Array_____braeq(val_t p0, val_t p1, val_t p2){
1530 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
1531 val_t REGB0;
1532 val_t REGB1;
1533 val_t REGB2;
1534 val_t tmp;
1535 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1536 fra.me.file = LOCATE_standard___collection___array;
1537 fra.me.line = 285;
1538 fra.me.meth = LOCATE_standard___collection___array___Array_____braeq;
1539 fra.me.has_broke = 0;
1540 fra.me.REG_size = 2;
1541 fra.me.nitni_local_ref_head = NULL;
1542 fra.me.REG[0] = NIT_NULL;
1543 fra.me.REG[1] = NIT_NULL;
1544 fra.me.REG[0] = p0;
1545 REGB0 = p1;
1546 fra.me.REG[1] = p2;
1547 /* ../lib/standard/collection/array.nit:287 */
1548 REGB1 = TAG_Int(0);
1549 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
1550 if (UNTAG_Bool(REGB2)) {
1551 } else {
1552 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
1553 }
1554 /* ../lib/standard/kernel.nit:243 */
1555 REGB1 = TAG_Bool(UNTAG_Int(REGB0)>=UNTAG_Int(REGB1));
1556 /* ../lib/standard/collection/array.nit:287 */
1557 if (UNTAG_Bool(REGB1)) {
1558 REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
1559 if (UNTAG_Bool(REGB1)) {
1560 } else {
1561 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 287);
1562 }
1563 REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0]);
1564 REGB2 = TAG_Int(1);
1565 /* ../lib/standard/kernel.nit:245 */
1566 REGB2 = TAG_Int(UNTAG_Int(REGB1)+UNTAG_Int(REGB2));
1567 REGB1 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
1568 if (UNTAG_Bool(REGB1)) {
1569 } else {
1570 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
1571 }
1572 /* ../lib/standard/kernel.nit:242 */
1573 REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB2));
1574 } else {
1575 /* ../lib/standard/collection/array.nit:287 */
1576 REGB1 = TAG_Bool(0);
1577 REGB2 = REGB1;
1578 }
1579 if (UNTAG_Bool(REGB2)) {
1580 } else {
1581 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 287);
1582 }
1583 /* ../lib/standard/collection/array.nit:288 */
1584 REGB2 = TAG_Bool(ATTR_standard___collection___array___Array____capacity(fra.me.REG[0])!=NIT_NULL);
1585 if (UNTAG_Bool(REGB2)) {
1586 } else {
1587 nit_abort("Uninitialized attribute %s", "_capacity", LOCATE_standard___collection___array, 288);
1588 }
1589 REGB2 = ATTR_standard___collection___array___Array____capacity(fra.me.REG[0]);
1590 REGB1 = TAG_Bool(VAL_ISA(REGB0, VTCOLOR_standard___kernel___Comparable___OTHER(REGB2), VTID_standard___kernel___Comparable___OTHER(REGB2))) /*cast OTHER*/;
1591 if (UNTAG_Bool(REGB1)) {
1592 } else {
1593 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
1594 }
1595 /* ../lib/standard/kernel.nit:241 */
1596 REGB2 = TAG_Bool(UNTAG_Int(REGB2)<=UNTAG_Int(REGB0));
1597 /* ../lib/standard/collection/array.nit:288 */
1598 if (UNTAG_Bool(REGB2)) {
1599 /* ../lib/standard/collection/array.nit:289 */
1600 REGB2 = TAG_Int(1);
1601 /* ../lib/standard/kernel.nit:245 */
1602 REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
1603 /* ../lib/standard/collection/array.nit:289 */
1604 CALL_standard___collection___array___AbstractArray___enlarge(fra.me.REG[0])(fra.me.REG[0], REGB2);
1605 }
1606 /* ../lib/standard/collection/array.nit:291 */
1607 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
1608 if (UNTAG_Bool(REGB2)) {
1609 } else {
1610 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 291);
1611 }
1612 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0]);
1613 REGB1 = TAG_Bool(VAL_ISA(REGB0, VTCOLOR_standard___kernel___Comparable___OTHER(REGB2), VTID_standard___kernel___Comparable___OTHER(REGB2))) /*cast OTHER*/;
1614 if (UNTAG_Bool(REGB1)) {
1615 } else {
1616 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
1617 }
1618 /* ../lib/standard/kernel.nit:241 */
1619 REGB2 = TAG_Bool(UNTAG_Int(REGB2)<=UNTAG_Int(REGB0));
1620 /* ../lib/standard/collection/array.nit:291 */
1621 if (UNTAG_Bool(REGB2)) {
1622 /* ../lib/standard/collection/array.nit:292 */
1623 REGB2 = TAG_Int(1);
1624 /* ../lib/standard/kernel.nit:245 */
1625 REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
1626 /* ../lib/standard/collection/array.nit:292 */
1627 ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0]) = REGB2;
1628 }
1629 /* ../lib/standard/collection/array.nit:294 */
1630 fra.me.REG[0] = ATTR_standard___collection___array___Array____items(fra.me.REG[0]);
1631 REGB2 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
1632 if (UNTAG_Bool(REGB2)) {
1633 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 294);
1634 }
1635 /* ../lib/standard/collection/array.nit:726 */
1636 ((Nit_NativeArray)fra.me.REG[0])->val[UNTAG_Int(REGB0)]=fra.me.REG[1];
1637 stack_frame_head = fra.me.prev;
1638 return;
1639 }
1640 static const char LOCATE_standard___collection___array___Array___add[] = "array::Array::(abstract_collection::SimpleCollection::add)";
1641 void standard___collection___array___Array___add(val_t p0, val_t p1){
1642 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
1643 val_t REGB0;
1644 val_t REGB1;
1645 val_t REGB2;
1646 val_t tmp;
1647 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1648 fra.me.file = LOCATE_standard___collection___array;
1649 fra.me.line = 297;
1650 fra.me.meth = LOCATE_standard___collection___array___Array___add;
1651 fra.me.has_broke = 0;
1652 fra.me.REG_size = 2;
1653 fra.me.nitni_local_ref_head = NULL;
1654 fra.me.REG[0] = NIT_NULL;
1655 fra.me.REG[1] = NIT_NULL;
1656 fra.me.REG[0] = p0;
1657 fra.me.REG[1] = p1;
1658 /* ../lib/standard/collection/array.nit:299 */
1659 REGB0 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
1660 if (UNTAG_Bool(REGB0)) {
1661 } else {
1662 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 299);
1663 }
1664 REGB0 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0]);
1665 /* ../lib/standard/collection/array.nit:300 */
1666 REGB1 = TAG_Bool(ATTR_standard___collection___array___Array____capacity(fra.me.REG[0])!=NIT_NULL);
1667 if (UNTAG_Bool(REGB1)) {
1668 } else {
1669 nit_abort("Uninitialized attribute %s", "_capacity", LOCATE_standard___collection___array, 300);
1670 }
1671 REGB1 = ATTR_standard___collection___array___Array____capacity(fra.me.REG[0]);
1672 REGB2 = TAG_Bool(VAL_ISA(REGB0, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
1673 if (UNTAG_Bool(REGB2)) {
1674 } else {
1675 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
1676 }
1677 /* ../lib/standard/kernel.nit:241 */
1678 REGB1 = TAG_Bool(UNTAG_Int(REGB1)<=UNTAG_Int(REGB0));
1679 /* ../lib/standard/collection/array.nit:300 */
1680 if (UNTAG_Bool(REGB1)) {
1681 /* ../lib/standard/collection/array.nit:301 */
1682 REGB1 = TAG_Int(1);
1683 /* ../lib/standard/kernel.nit:245 */
1684 REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
1685 /* ../lib/standard/collection/array.nit:301 */
1686 CALL_standard___collection___array___AbstractArray___enlarge(fra.me.REG[0])(fra.me.REG[0], REGB1);
1687 }
1688 /* ../lib/standard/collection/array.nit:303 */
1689 REGB1 = TAG_Int(1);
1690 /* ../lib/standard/kernel.nit:245 */
1691 REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
1692 /* ../lib/standard/collection/array.nit:303 */
1693 ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0]) = REGB1;
1694 /* ../lib/standard/collection/array.nit:304 */
1695 fra.me.REG[0] = ATTR_standard___collection___array___Array____items(fra.me.REG[0]);
1696 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
1697 if (UNTAG_Bool(REGB1)) {
1698 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 304);
1699 }
1700 /* ../lib/standard/collection/array.nit:726 */
1701 ((Nit_NativeArray)fra.me.REG[0])->val[UNTAG_Int(REGB0)]=fra.me.REG[1];
1702 stack_frame_head = fra.me.prev;
1703 return;
1704 }
1705 static const char LOCATE_standard___collection___array___Array___enlarge[] = "array::Array::(array::AbstractArray::enlarge)";
1706 void standard___collection___array___Array___enlarge(val_t p0, val_t p1){
1707 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
1708 val_t REGB0;
1709 val_t REGB1;
1710 val_t REGB2;
1711 val_t REGB3;
1712 val_t tmp;
1713 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1714 fra.me.file = LOCATE_standard___collection___array;
1715 fra.me.line = 307;
1716 fra.me.meth = LOCATE_standard___collection___array___Array___enlarge;
1717 fra.me.has_broke = 0;
1718 fra.me.REG_size = 3;
1719 fra.me.nitni_local_ref_head = NULL;
1720 fra.me.REG[0] = NIT_NULL;
1721 fra.me.REG[1] = NIT_NULL;
1722 fra.me.REG[2] = NIT_NULL;
1723 fra.me.REG[0] = p0;
1724 REGB0 = p1;
1725 /* ../lib/standard/collection/array.nit:309 */
1726 REGB1 = TAG_Bool(ATTR_standard___collection___array___Array____capacity(fra.me.REG[0])!=NIT_NULL);
1727 if (UNTAG_Bool(REGB1)) {
1728 } else {
1729 nit_abort("Uninitialized attribute %s", "_capacity", LOCATE_standard___collection___array, 309);
1730 }
1731 REGB1 = ATTR_standard___collection___array___Array____capacity(fra.me.REG[0]);
1732 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
1733 if (UNTAG_Bool(REGB2)) {
1734 } else {
1735 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
1736 }
1737 /* ../lib/standard/kernel.nit:241 */
1738 REGB2 = TAG_Bool(UNTAG_Int(REGB0)<=UNTAG_Int(REGB1));
1739 /* ../lib/standard/collection/array.nit:310 */
1740 if (UNTAG_Bool(REGB2)) {
1741 goto label1;
1742 }
1743 /* ../lib/standard/collection/array.nit:311 */
1744 while(1) {
1745 REGB2 = TAG_Bool(VAL_ISA(REGB0, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
1746 if (UNTAG_Bool(REGB2)) {
1747 } else {
1748 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
1749 }
1750 /* ../lib/standard/kernel.nit:241 */
1751 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<=UNTAG_Int(REGB0));
1752 /* ../lib/standard/collection/array.nit:311 */
1753 if (UNTAG_Bool(REGB2)) {
1754 REGB2 = TAG_Int(2);
1755 /* ../lib/standard/kernel.nit:248 */
1756 REGB2 = TAG_Int(UNTAG_Int(REGB1)*UNTAG_Int(REGB2));
1757 /* ../lib/standard/collection/array.nit:311 */
1758 REGB3 = TAG_Int(2);
1759 /* ../lib/standard/kernel.nit:245 */
1760 REGB3 = TAG_Int(UNTAG_Int(REGB2)+UNTAG_Int(REGB3));
1761 /* ../lib/standard/collection/array.nit:311 */
1762 REGB1 = REGB3;
1763 } else {
1764 goto label2;
1765 }
1766 }
1767 label2: while(0);
1768 /* ../lib/standard/collection/array.nit:719 */
1769 fra.me.REG[1] = NEW_NativeArray(UNTAG_Int(REGB1), sizeof(val_t));
1770 /* ../lib/standard/collection/array.nit:313 */
1771 REGB0 = TAG_Bool(ATTR_standard___collection___array___Array____capacity(fra.me.REG[0])!=NIT_NULL);
1772 if (UNTAG_Bool(REGB0)) {
1773 } else {
1774 nit_abort("Uninitialized attribute %s", "_capacity", LOCATE_standard___collection___array, 313);
1775 }
1776 REGB0 = ATTR_standard___collection___array___Array____capacity(fra.me.REG[0]);
1777 REGB3 = TAG_Int(0);
1778 REGB2 = TAG_Bool(VAL_ISA(REGB3, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
1779 if (UNTAG_Bool(REGB2)) {
1780 } else {
1781 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
1782 }
1783 /* ../lib/standard/kernel.nit:244 */
1784 REGB3 = TAG_Bool(UNTAG_Int(REGB0)>UNTAG_Int(REGB3));
1785 /* ../lib/standard/collection/array.nit:313 */
1786 if (UNTAG_Bool(REGB3)) {
1787 fra.me.REG[2] = ATTR_standard___collection___array___Array____items(fra.me.REG[0]);
1788 REGB3 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
1789 if (UNTAG_Bool(REGB3)) {
1790 } else {
1791 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 313);
1792 }
1793 REGB3 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0]);
1794 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
1795 if (UNTAG_Bool(REGB0)) {
1796 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 313);
1797 }
1798 /* ../lib/standard/collection/array.nit:727 */
1799 (void)memcpy(((Nit_NativeArray )fra.me.REG[1])->val, ((Nit_NativeArray)fra.me.REG[2])->val, UNTAG_Int(REGB3)*sizeof(val_t));
1800 }
1801 /* ../lib/standard/collection/array.nit:314 */
1802 ATTR_standard___collection___array___Array____items(fra.me.REG[0]) = fra.me.REG[1];
1803 /* ../lib/standard/collection/array.nit:315 */
1804 ATTR_standard___collection___array___Array____capacity(fra.me.REG[0]) = REGB1;
1805 label1: while(0);
1806 stack_frame_head = fra.me.prev;
1807 return;
1808 }
1809 static const char LOCATE_standard___collection___array___Array___init[] = "array::Array::init";
1810 void standard___collection___array___Array___init(val_t p0, int* init_table){
1811 int itpos1 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_standard___collection___array___Array].i;
1812 struct {struct stack_frame_t me;} fra;
1813 val_t REGB0;
1814 val_t tmp;
1815 if (init_table[itpos1]) return;
1816 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1817 fra.me.file = LOCATE_standard___collection___array;
1818 fra.me.line = 318;
1819 fra.me.meth = LOCATE_standard___collection___array___Array___init;
1820 fra.me.has_broke = 0;
1821 fra.me.REG_size = 1;
1822 fra.me.nitni_local_ref_head = NULL;
1823 fra.me.REG[0] = NIT_NULL;
1824 fra.me.REG[0] = p0;
1825 /* ../lib/standard/collection/array.nit:321 */
1826 REGB0 = TAG_Int(0);
1827 ATTR_standard___collection___array___Array____capacity(fra.me.REG[0]) = REGB0;
1828 /* ../lib/standard/collection/array.nit:322 */
1829 REGB0 = TAG_Int(0);
1830 ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0]) = REGB0;
1831 stack_frame_head = fra.me.prev;
1832 init_table[itpos1] = 1;
1833 return;
1834 }
1835 static const char LOCATE_standard___collection___array___Array___from[] = "array::Array::from";
1836 void standard___collection___array___Array___from(val_t p0, val_t p1, int* init_table){
1837 int itpos2 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_standard___collection___array___Array].i;
1838 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
1839 val_t REGB0;
1840 val_t tmp;
1841 if (init_table[itpos2]) return;
1842 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1843 fra.me.file = LOCATE_standard___collection___array;
1844 fra.me.line = 325;
1845 fra.me.meth = LOCATE_standard___collection___array___Array___from;
1846 fra.me.has_broke = 0;
1847 fra.me.REG_size = 2;
1848 fra.me.nitni_local_ref_head = NULL;
1849 fra.me.REG[0] = NIT_NULL;
1850 fra.me.REG[1] = NIT_NULL;
1851 fra.me.REG[0] = p0;
1852 fra.me.REG[1] = p1;
1853 /* ../lib/standard/collection/array.nit:327 */
1854 REGB0 = CALL_standard___collection___abstract_collection___Collection___length(fra.me.REG[1])(fra.me.REG[1]);
1855 CALL_standard___collection___array___Array___with_capacity(fra.me.REG[0])(fra.me.REG[0], REGB0, init_table);
1856 /* ../lib/standard/collection/array.nit:328 */
1857 CALL_standard___collection___abstract_collection___SimpleCollection___add_all(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
1858 stack_frame_head = fra.me.prev;
1859 init_table[itpos2] = 1;
1860 return;
1861 }
1862 static const char LOCATE_standard___collection___array___Array___with_items[] = "array::Array::with_items";
1863 void standard___collection___array___Array___with_items(val_t p0, val_t p1, int* init_table){
1864 int itpos3 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_standard___collection___array___Array].i;
1865 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
1866 val_t REGB0;
1867 val_t tmp;
1868 if (init_table[itpos3]) return;
1869 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1870 fra.me.file = LOCATE_standard___collection___array;
1871 fra.me.line = 331;
1872 fra.me.meth = LOCATE_standard___collection___array___Array___with_items;
1873 fra.me.has_broke = 0;
1874 fra.me.REG_size = 3;
1875 fra.me.nitni_local_ref_head = NULL;
1876 fra.me.REG[0] = NIT_NULL;
1877 fra.me.REG[1] = NIT_NULL;
1878 fra.me.REG[2] = NIT_NULL;
1879 fra.me.REG[0] = p0;
1880 fra.me.REG[1] = p1;
1881 /* ../lib/standard/collection/array.nit:331 */
1882 fra.me.REG[2] = fra.me.REG[0];
1883 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]*/;
1884 if (UNTAG_Bool(REGB0)) {
1885 } else {
1886 nit_abort("Cast failed", NULL, LOCATE_standard___collection___array, 331);
1887 }
1888 /* ../lib/standard/collection/array.nit:334 */
1889 fra.me.REG[0] = ATTR_standard___collection___array___Array____items(fra.me.REG[1]);
1890 ATTR_standard___collection___array___Array____items(fra.me.REG[2]) = fra.me.REG[0];
1891 /* ../lib/standard/collection/array.nit:335 */
1892 REGB0 = TAG_Bool(ATTR_standard___collection___array___Array____capacity(fra.me.REG[1])!=NIT_NULL);
1893 if (UNTAG_Bool(REGB0)) {
1894 } else {
1895 nit_abort("Uninitialized attribute %s", "_capacity", LOCATE_standard___collection___array, 335);
1896 }
1897 REGB0 = ATTR_standard___collection___array___Array____capacity(fra.me.REG[1]);
1898 ATTR_standard___collection___array___Array____capacity(fra.me.REG[2]) = REGB0;
1899 /* ../lib/standard/collection/array.nit:24 */
1900 REGB0 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1])!=NIT_NULL);
1901 if (UNTAG_Bool(REGB0)) {
1902 } else {
1903 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
1904 }
1905 REGB0 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1]);
1906 /* ../lib/standard/collection/array.nit:336 */
1907 ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2]) = REGB0;
1908 stack_frame_head = fra.me.prev;
1909 init_table[itpos3] = 1;
1910 return;
1911 }
1912 static const char LOCATE_standard___collection___array___Array___with_capacity[] = "array::Array::with_capacity";
1913 void standard___collection___array___Array___with_capacity(val_t p0, val_t p1, int* init_table){
1914 int itpos4 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_standard___collection___array___Array].i;
1915 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
1916 val_t REGB0;
1917 val_t REGB1;
1918 val_t REGB2;
1919 val_t tmp;
1920 if (init_table[itpos4]) return;
1921 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1922 fra.me.file = LOCATE_standard___collection___array;
1923 fra.me.line = 339;
1924 fra.me.meth = LOCATE_standard___collection___array___Array___with_capacity;
1925 fra.me.has_broke = 0;
1926 fra.me.REG_size = 2;
1927 fra.me.nitni_local_ref_head = NULL;
1928 fra.me.REG[0] = NIT_NULL;
1929 fra.me.REG[1] = NIT_NULL;
1930 fra.me.REG[0] = p0;
1931 REGB0 = p1;
1932 /* ../lib/standard/collection/array.nit:342 */
1933 REGB1 = TAG_Int(0);
1934 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
1935 if (UNTAG_Bool(REGB2)) {
1936 } else {
1937 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
1938 }
1939 /* ../lib/standard/kernel.nit:243 */
1940 REGB1 = TAG_Bool(UNTAG_Int(REGB0)>=UNTAG_Int(REGB1));
1941 /* ../lib/standard/collection/array.nit:342 */
1942 if (UNTAG_Bool(REGB1)) {
1943 } else {
1944 nit_abort("Assert '%s' failed", "positive", LOCATE_standard___collection___array, 342);
1945 }
1946 /* ../lib/standard/collection/array.nit:719 */
1947 fra.me.REG[1] = NEW_NativeArray(UNTAG_Int(REGB0), sizeof(val_t));
1948 /* ../lib/standard/collection/array.nit:343 */
1949 ATTR_standard___collection___array___Array____items(fra.me.REG[0]) = fra.me.REG[1];
1950 /* ../lib/standard/collection/array.nit:344 */
1951 ATTR_standard___collection___array___Array____capacity(fra.me.REG[0]) = REGB0;
1952 /* ../lib/standard/collection/array.nit:345 */
1953 REGB0 = TAG_Int(0);
1954 ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0]) = REGB0;
1955 stack_frame_head = fra.me.prev;
1956 init_table[itpos4] = 1;
1957 return;
1958 }
1959 static const char LOCATE_standard___collection___array___Array___filled_with[] = "array::Array::filled_with";
1960 void standard___collection___array___Array___filled_with(val_t p0, val_t p1, val_t p2, int* init_table){
1961 int itpos5 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_standard___collection___array___Array].i;
1962 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
1963 val_t REGB0;
1964 val_t REGB1;
1965 val_t REGB2;
1966 val_t tmp;
1967 if (init_table[itpos5]) return;
1968 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1969 fra.me.file = LOCATE_standard___collection___array;
1970 fra.me.line = 348;
1971 fra.me.meth = LOCATE_standard___collection___array___Array___filled_with;
1972 fra.me.has_broke = 0;
1973 fra.me.REG_size = 3;
1974 fra.me.nitni_local_ref_head = NULL;
1975 fra.me.REG[0] = NIT_NULL;
1976 fra.me.REG[1] = NIT_NULL;
1977 fra.me.REG[2] = NIT_NULL;
1978 fra.me.REG[0] = p0;
1979 fra.me.REG[1] = p1;
1980 REGB0 = p2;
1981 /* ../lib/standard/collection/array.nit:351 */
1982 REGB1 = TAG_Int(0);
1983 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
1984 if (UNTAG_Bool(REGB2)) {
1985 } else {
1986 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
1987 }
1988 /* ../lib/standard/kernel.nit:243 */
1989 REGB1 = TAG_Bool(UNTAG_Int(REGB0)>=UNTAG_Int(REGB1));
1990 /* ../lib/standard/collection/array.nit:351 */
1991 if (UNTAG_Bool(REGB1)) {
1992 } else {
1993 nit_abort("Assert '%s' failed", "positive", LOCATE_standard___collection___array, 351);
1994 }
1995 /* ../lib/standard/collection/array.nit:719 */
1996 fra.me.REG[2] = NEW_NativeArray(UNTAG_Int(REGB0), sizeof(val_t));
1997 /* ../lib/standard/collection/array.nit:352 */
1998 ATTR_standard___collection___array___Array____items(fra.me.REG[0]) = fra.me.REG[2];
1999 /* ../lib/standard/collection/array.nit:353 */
2000 ATTR_standard___collection___array___Array____capacity(fra.me.REG[0]) = REGB0;
2001 /* ../lib/standard/collection/array.nit:354 */
2002 ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0]) = REGB0;
2003 /* ../lib/standard/collection/array.nit:355 */
2004 REGB1 = TAG_Int(0);
2005 /* ../lib/standard/collection/array.nit:356 */
2006 while(1) {
2007 REGB2 = TAG_Bool(VAL_ISA(REGB0, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
2008 if (UNTAG_Bool(REGB2)) {
2009 } else {
2010 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
2011 }
2012 /* ../lib/standard/kernel.nit:242 */
2013 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB0));
2014 /* ../lib/standard/collection/array.nit:356 */
2015 if (UNTAG_Bool(REGB2)) {
2016 /* ../lib/standard/collection/array.nit:357 */
2017 CALL_standard___collection___abstract_collection___Sequence_____braeq(fra.me.REG[0])(fra.me.REG[0], REGB1, fra.me.REG[1]);
2018 /* ../lib/standard/collection/array.nit:358 */
2019 REGB2 = TAG_Int(1);
2020 /* ../lib/standard/kernel.nit:245 */
2021 REGB2 = TAG_Int(UNTAG_Int(REGB1)+UNTAG_Int(REGB2));
2022 /* ../lib/standard/collection/array.nit:358 */
2023 REGB1 = REGB2;
2024 } else {
2025 /* ../lib/standard/collection/array.nit:356 */
2026 goto label1;
2027 }
2028 }
2029 label1: while(0);
2030 stack_frame_head = fra.me.prev;
2031 init_table[itpos5] = 1;
2032 return;
2033 }
2034 static const char LOCATE_standard___collection___array___Array___with_native[] = "array::Array::with_native";
2035 void standard___collection___array___Array___with_native(val_t p0, val_t p1, val_t p2, int* init_table){
2036 int itpos6 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_standard___collection___array___Array].i;
2037 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
2038 val_t REGB0;
2039 val_t REGB1;
2040 val_t REGB2;
2041 val_t tmp;
2042 if (init_table[itpos6]) return;
2043 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2044 fra.me.file = LOCATE_standard___collection___array;
2045 fra.me.line = 362;
2046 fra.me.meth = LOCATE_standard___collection___array___Array___with_native;
2047 fra.me.has_broke = 0;
2048 fra.me.REG_size = 2;
2049 fra.me.nitni_local_ref_head = NULL;
2050 fra.me.REG[0] = NIT_NULL;
2051 fra.me.REG[1] = NIT_NULL;
2052 fra.me.REG[0] = p0;
2053 fra.me.REG[1] = p1;
2054 REGB0 = p2;
2055 /* ../lib/standard/collection/array.nit:365 */
2056 REGB1 = TAG_Int(0);
2057 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
2058 if (UNTAG_Bool(REGB2)) {
2059 } else {
2060 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
2061 }
2062 /* ../lib/standard/kernel.nit:243 */
2063 REGB1 = TAG_Bool(UNTAG_Int(REGB0)>=UNTAG_Int(REGB1));
2064 /* ../lib/standard/collection/array.nit:365 */
2065 if (UNTAG_Bool(REGB1)) {
2066 } else {
2067 nit_abort("Assert '%s' failed", "positive", LOCATE_standard___collection___array, 365);
2068 }
2069 /* ../lib/standard/collection/array.nit:366 */
2070 ATTR_standard___collection___array___Array____items(fra.me.REG[0]) = fra.me.REG[1];
2071 /* ../lib/standard/collection/array.nit:367 */
2072 ATTR_standard___collection___array___Array____capacity(fra.me.REG[0]) = REGB0;
2073 /* ../lib/standard/collection/array.nit:368 */
2074 ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0]) = REGB0;
2075 stack_frame_head = fra.me.prev;
2076 init_table[itpos6] = 1;
2077 return;
2078 }
2079 static const char LOCATE_standard___collection___array___Array___intern_items[] = "array::Array::intern_items";
2080 val_t standard___collection___array___Array___intern_items(val_t p0){
2081 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
2082 val_t REGB0;
2083 val_t tmp;
2084 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2085 fra.me.file = LOCATE_standard___collection___array;
2086 fra.me.line = 374;
2087 fra.me.meth = LOCATE_standard___collection___array___Array___intern_items;
2088 fra.me.has_broke = 0;
2089 fra.me.REG_size = 2;
2090 fra.me.nitni_local_ref_head = NULL;
2091 fra.me.REG[0] = NIT_NULL;
2092 fra.me.REG[1] = NIT_NULL;
2093 fra.me.REG[0] = p0;
2094 /* ../lib/standard/collection/array.nit:374 */
2095 fra.me.REG[1] = fra.me.REG[0];
2096 /* ../lib/standard/collection/array.nit:376 */
2097 fra.me.REG[1] = ATTR_standard___collection___array___Array____items(fra.me.REG[1]);
2098 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
2099 if (UNTAG_Bool(REGB0)) {
2100 } else {
2101 nit_abort("Cast failed", NULL, LOCATE_standard___collection___array, 376);
2102 }
2103 goto label1;
2104 label1: while(0);
2105 stack_frame_head = fra.me.prev;
2106 return fra.me.REG[1];
2107 }
2108 static const char LOCATE_standard___collection___array___Array___sort[] = "array::Array::sort";
2109 void standard___collection___array___Array___sort(val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
2110 struct {struct stack_frame_t me;} fra;
2111 val_t REGB0;
2112 val_t REGB1;
2113 val_t REGB2;
2114 fun_t CREG[1];
2115 val_t tmp;
2116 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2117 fra.me.file = LOCATE_standard___collection___array;
2118 fra.me.line = 381;
2119 fra.me.meth = LOCATE_standard___collection___array___Array___sort;
2120 fra.me.has_broke = 0;
2121 fra.me.REG_size = 1;
2122 fra.me.nitni_local_ref_head = NULL;
2123 fra.me.REG[0] = NIT_NULL;
2124 fra.me.closure_ctx = closctx_param;
2125 fra.me.closure_funs = CREG;
2126 fra.me.REG[0] = p0;
2127 CREG[0] = clos_fun0;
2128 /* ../lib/standard/collection/array.nit:385 */
2129 REGB0 = TAG_Int(0);
2130 /* ../lib/standard/collection/array.nit:24 */
2131 REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
2132 if (UNTAG_Bool(REGB1)) {
2133 } else {
2134 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
2135 }
2136 REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0]);
2137 /* ../lib/standard/collection/array.nit:385 */
2138 REGB2 = TAG_Int(1);
2139 /* ../lib/standard/kernel.nit:247 */
2140 REGB2 = TAG_Int(UNTAG_Int(REGB1)-UNTAG_Int(REGB2));
2141 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));
2142 switch ((&(fra.me))->has_broke) {
2143 case 0: break;
2144 case 1: (&(fra.me))->has_broke = 0; goto label3;
2145 }
2146 label3: while(0);
2147 stack_frame_head = fra.me.prev;
2148 return;
2149 }
2150 val_t OC_standard___collection___array___Array___sort_1(struct stack_frame_t *closctx, val_t p0, val_t p1){
2151 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
2152 val_t REGB0;
2153 val_t tmp;
2154 /* ../lib/standard/collection/array.nit:385 */
2155 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2156 fra.me.file = LOCATE_standard___collection___array;
2157 fra.me.line = 385;
2158 fra.me.meth = LOCATE_standard___collection___array___Array___sort;
2159 fra.me.has_broke = 0;
2160 fra.me.REG_size = 2;
2161 fra.me.nitni_local_ref_head = NULL;
2162 fra.me.REG[0] = NIT_NULL;
2163 fra.me.REG[1] = NIT_NULL;
2164 fra.me.REG[0] = p0;
2165 fra.me.REG[1] = p1;
2166 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]);
2167 if (closctx->closure_ctx->has_broke) {
2168 closctx->has_broke = 1;
2169 goto label2;
2170 }
2171 goto label2;
2172 label2: while(0);
2173 stack_frame_head = fra.me.prev;
2174 return REGB0;
2175 }
2176 static const char LOCATE_standard___collection___array___Array___sub_sort[] = "array::Array::sub_sort";
2177 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){
2178 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
2179 val_t REGB0;
2180 val_t REGB1;
2181 val_t REGB2;
2182 val_t REGB3;
2183 val_t REGB4;
2184 val_t REGB5;
2185 val_t REGB6;
2186 fun_t CREG[1];
2187 val_t tmp;
2188 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2189 fra.me.file = LOCATE_standard___collection___array;
2190 fra.me.line = 388;
2191 fra.me.meth = LOCATE_standard___collection___array___Array___sub_sort;
2192 fra.me.has_broke = 0;
2193 fra.me.REG_size = 4;
2194 fra.me.nitni_local_ref_head = NULL;
2195 fra.me.REG[0] = NIT_NULL;
2196 fra.me.REG[1] = NIT_NULL;
2197 fra.me.REG[2] = NIT_NULL;
2198 fra.me.REG[3] = NIT_NULL;
2199 fra.me.closure_ctx = closctx_param;
2200 fra.me.closure_funs = CREG;
2201 fra.me.REG[0] = p0;
2202 REGB0 = p1;
2203 REGB1 = p2;
2204 CREG[0] = clos_fun0;
2205 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
2206 if (UNTAG_Bool(REGB2)) {
2207 } else {
2208 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
2209 }
2210 /* ../lib/standard/kernel.nit:243 */
2211 REGB2 = TAG_Bool(UNTAG_Int(REGB0)>=UNTAG_Int(REGB1));
2212 /* ../lib/standard/collection/array.nit:392 */
2213 if (UNTAG_Bool(REGB2)) {
2214 /* ../lib/standard/collection/array.nit:393 */
2215 goto label1;
2216 } else {
2217 /* ../lib/standard/collection/array.nit:394 */
2218 REGB2 = TAG_Int(7);
2219 /* ../lib/standard/kernel.nit:245 */
2220 REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
2221 REGB3 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB2), VTID_standard___kernel___Comparable___OTHER(REGB2))) /*cast OTHER*/;
2222 if (UNTAG_Bool(REGB3)) {
2223 } else {
2224 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
2225 }
2226 /* ../lib/standard/kernel.nit:242 */
2227 REGB2 = TAG_Bool(UNTAG_Int(REGB2)<UNTAG_Int(REGB1));
2228 /* ../lib/standard/collection/array.nit:394 */
2229 if (UNTAG_Bool(REGB2)) {
2230 /* ../lib/standard/collection/array.nit:279 */
2231 fra.me.REG[1] = fra.me.REG[0];
2232 REGB2 = REGB0;
2233 /* ../lib/standard/collection/array.nit:281 */
2234 REGB3 = TAG_Int(0);
2235 REGB4 = TAG_Bool(VAL_ISA(REGB3, VTCOLOR_standard___kernel___Comparable___OTHER(REGB2), VTID_standard___kernel___Comparable___OTHER(REGB2))) /*cast OTHER*/;
2236 if (UNTAG_Bool(REGB4)) {
2237 } else {
2238 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
2239 }
2240 /* ../lib/standard/kernel.nit:243 */
2241 REGB3 = TAG_Bool(UNTAG_Int(REGB2)>=UNTAG_Int(REGB3));
2242 /* ../lib/standard/collection/array.nit:281 */
2243 if (UNTAG_Bool(REGB3)) {
2244 REGB3 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1])!=NIT_NULL);
2245 if (UNTAG_Bool(REGB3)) {
2246 } else {
2247 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 281);
2248 }
2249 REGB3 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1]);
2250 REGB4 = TAG_Bool(VAL_ISA(REGB3, VTCOLOR_standard___kernel___Comparable___OTHER(REGB2), VTID_standard___kernel___Comparable___OTHER(REGB2))) /*cast OTHER*/;
2251 if (UNTAG_Bool(REGB4)) {
2252 } else {
2253 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
2254 }
2255 /* ../lib/standard/kernel.nit:242 */
2256 REGB3 = TAG_Bool(UNTAG_Int(REGB2)<UNTAG_Int(REGB3));
2257 } else {
2258 /* ../lib/standard/collection/array.nit:281 */
2259 REGB4 = TAG_Bool(0);
2260 REGB3 = REGB4;
2261 }
2262 if (UNTAG_Bool(REGB3)) {
2263 } else {
2264 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 281);
2265 }
2266 /* ../lib/standard/collection/array.nit:282 */
2267 fra.me.REG[1] = ATTR_standard___collection___array___Array____items(fra.me.REG[1]);
2268 REGB3 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
2269 if (UNTAG_Bool(REGB3)) {
2270 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 282);
2271 }
2272 /* ../lib/standard/collection/array.nit:725 */
2273 fra.me.REG[1] = ((Nit_NativeArray)fra.me.REG[1])->val[UNTAG_Int(REGB2)];
2274 /* ../lib/standard/collection/array.nit:282 */
2275 goto label2;
2276 label2: while(0);
2277 /* ../lib/standard/collection/array.nit:396 */
2278 REGB2 = REGB0;
2279 /* ../lib/standard/collection/array.nit:397 */
2280 REGB3 = REGB1;
2281 /* ../lib/standard/collection/array.nit:398 */
2282 while(1) {
2283 REGB4 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB3), VTID_standard___kernel___Comparable___OTHER(REGB3))) /*cast OTHER*/;
2284 if (UNTAG_Bool(REGB4)) {
2285 } else {
2286 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
2287 }
2288 /* ../lib/standard/kernel.nit:244 */
2289 REGB4 = TAG_Bool(UNTAG_Int(REGB3)>UNTAG_Int(REGB2));
2290 /* ../lib/standard/collection/array.nit:398 */
2291 if (UNTAG_Bool(REGB4)) {
2292 /* ../lib/standard/collection/array.nit:399 */
2293 while(1) {
2294 REGB4 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB2), VTID_standard___kernel___Comparable___OTHER(REGB2))) /*cast OTHER*/;
2295 if (UNTAG_Bool(REGB4)) {
2296 } else {
2297 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
2298 }
2299 /* ../lib/standard/kernel.nit:241 */
2300 REGB4 = TAG_Bool(UNTAG_Int(REGB2)<=UNTAG_Int(REGB1));
2301 /* ../lib/standard/collection/array.nit:399 */
2302 if (UNTAG_Bool(REGB4)) {
2303 /* ../lib/standard/collection/array.nit:279 */
2304 fra.me.REG[2] = fra.me.REG[0];
2305 REGB4 = REGB2;
2306 /* ../lib/standard/collection/array.nit:281 */
2307 REGB5 = TAG_Int(0);
2308 REGB6 = TAG_Bool(VAL_ISA(REGB5, VTCOLOR_standard___kernel___Comparable___OTHER(REGB4), VTID_standard___kernel___Comparable___OTHER(REGB4))) /*cast OTHER*/;
2309 if (UNTAG_Bool(REGB6)) {
2310 } else {
2311 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
2312 }
2313 /* ../lib/standard/kernel.nit:243 */
2314 REGB5 = TAG_Bool(UNTAG_Int(REGB4)>=UNTAG_Int(REGB5));
2315 /* ../lib/standard/collection/array.nit:281 */
2316 if (UNTAG_Bool(REGB5)) {
2317 REGB5 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
2318 if (UNTAG_Bool(REGB5)) {
2319 } else {
2320 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 281);
2321 }
2322 REGB5 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2]);
2323 REGB6 = TAG_Bool(VAL_ISA(REGB5, VTCOLOR_standard___kernel___Comparable___OTHER(REGB4), VTID_standard___kernel___Comparable___OTHER(REGB4))) /*cast OTHER*/;
2324 if (UNTAG_Bool(REGB6)) {
2325 } else {
2326 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
2327 }
2328 /* ../lib/standard/kernel.nit:242 */
2329 REGB5 = TAG_Bool(UNTAG_Int(REGB4)<UNTAG_Int(REGB5));
2330 } else {
2331 /* ../lib/standard/collection/array.nit:281 */
2332 REGB6 = TAG_Bool(0);
2333 REGB5 = REGB6;
2334 }
2335 if (UNTAG_Bool(REGB5)) {
2336 } else {
2337 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 281);
2338 }
2339 /* ../lib/standard/collection/array.nit:282 */
2340 fra.me.REG[2] = ATTR_standard___collection___array___Array____items(fra.me.REG[2]);
2341 REGB5 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
2342 if (UNTAG_Bool(REGB5)) {
2343 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 282);
2344 }
2345 /* ../lib/standard/collection/array.nit:725 */
2346 fra.me.REG[2] = ((Nit_NativeArray)fra.me.REG[2])->val[UNTAG_Int(REGB4)];
2347 /* ../lib/standard/collection/array.nit:282 */
2348 goto label3;
2349 label3: while(0);
2350 /* ../lib/standard/collection/array.nit:399 */
2351 REGB4 = ((val_t (*)(struct stack_frame_t *, val_t, val_t))(CREG[0]))(closctx_param, fra.me.REG[2], fra.me.REG[1]);
2352 if (closctx_param->has_broke) {
2353 goto label1;
2354 }
2355 REGB5 = TAG_Int(0);
2356 REGB6 = TAG_Bool(VAL_ISA(REGB5, VTCOLOR_standard___kernel___Comparable___OTHER(REGB4), VTID_standard___kernel___Comparable___OTHER(REGB4))) /*cast OTHER*/;
2357 if (UNTAG_Bool(REGB6)) {
2358 } else {
2359 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
2360 }
2361 /* ../lib/standard/kernel.nit:241 */
2362 REGB5 = TAG_Bool(UNTAG_Int(REGB4)<=UNTAG_Int(REGB5));
2363 } else {
2364 /* ../lib/standard/collection/array.nit:399 */
2365 REGB4 = TAG_Bool(0);
2366 REGB5 = REGB4;
2367 }
2368 if (UNTAG_Bool(REGB5)) {
2369 REGB5 = TAG_Int(1);
2370 /* ../lib/standard/kernel.nit:245 */
2371 REGB5 = TAG_Int(UNTAG_Int(REGB2)+UNTAG_Int(REGB5));
2372 /* ../lib/standard/collection/array.nit:399 */
2373 REGB2 = REGB5;
2374 } else {
2375 goto label4;
2376 }
2377 }
2378 label4: while(0);
2379 /* ../lib/standard/collection/array.nit:400 */
2380 while(1) {
2381 REGB5 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB3), VTID_standard___kernel___Comparable___OTHER(REGB3))) /*cast OTHER*/;
2382 if (UNTAG_Bool(REGB5)) {
2383 } else {
2384 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
2385 }
2386 /* ../lib/standard/kernel.nit:244 */
2387 REGB5 = TAG_Bool(UNTAG_Int(REGB3)>UNTAG_Int(REGB2));
2388 /* ../lib/standard/collection/array.nit:400 */
2389 if (UNTAG_Bool(REGB5)) {
2390 /* ../lib/standard/collection/array.nit:279 */
2391 fra.me.REG[2] = fra.me.REG[0];
2392 REGB5 = REGB3;
2393 /* ../lib/standard/collection/array.nit:281 */
2394 REGB4 = TAG_Int(0);
2395 REGB6 = TAG_Bool(VAL_ISA(REGB4, VTCOLOR_standard___kernel___Comparable___OTHER(REGB5), VTID_standard___kernel___Comparable___OTHER(REGB5))) /*cast OTHER*/;
2396 if (UNTAG_Bool(REGB6)) {
2397 } else {
2398 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
2399 }
2400 /* ../lib/standard/kernel.nit:243 */
2401 REGB4 = TAG_Bool(UNTAG_Int(REGB5)>=UNTAG_Int(REGB4));
2402 /* ../lib/standard/collection/array.nit:281 */
2403 if (UNTAG_Bool(REGB4)) {
2404 REGB4 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
2405 if (UNTAG_Bool(REGB4)) {
2406 } else {
2407 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 281);
2408 }
2409 REGB4 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2]);
2410 REGB6 = TAG_Bool(VAL_ISA(REGB4, VTCOLOR_standard___kernel___Comparable___OTHER(REGB5), VTID_standard___kernel___Comparable___OTHER(REGB5))) /*cast OTHER*/;
2411 if (UNTAG_Bool(REGB6)) {
2412 } else {
2413 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
2414 }
2415 /* ../lib/standard/kernel.nit:242 */
2416 REGB4 = TAG_Bool(UNTAG_Int(REGB5)<UNTAG_Int(REGB4));
2417 } else {
2418 /* ../lib/standard/collection/array.nit:281 */
2419 REGB6 = TAG_Bool(0);
2420 REGB4 = REGB6;
2421 }
2422 if (UNTAG_Bool(REGB4)) {
2423 } else {
2424 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 281);
2425 }
2426 /* ../lib/standard/collection/array.nit:282 */
2427 fra.me.REG[2] = ATTR_standard___collection___array___Array____items(fra.me.REG[2]);
2428 REGB4 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
2429 if (UNTAG_Bool(REGB4)) {
2430 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 282);
2431 }
2432 /* ../lib/standard/collection/array.nit:725 */
2433 fra.me.REG[2] = ((Nit_NativeArray)fra.me.REG[2])->val[UNTAG_Int(REGB5)];
2434 /* ../lib/standard/collection/array.nit:282 */
2435 goto label5;
2436 label5: while(0);
2437 /* ../lib/standard/collection/array.nit:400 */
2438 REGB5 = ((val_t (*)(struct stack_frame_t *, val_t, val_t))(CREG[0]))(closctx_param, fra.me.REG[2], fra.me.REG[1]);
2439 if (closctx_param->has_broke) {
2440 goto label1;
2441 }
2442 REGB4 = TAG_Int(0);
2443 REGB6 = TAG_Bool(VAL_ISA(REGB4, VTCOLOR_standard___kernel___Comparable___OTHER(REGB5), VTID_standard___kernel___Comparable___OTHER(REGB5))) /*cast OTHER*/;
2444 if (UNTAG_Bool(REGB6)) {
2445 } else {
2446 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
2447 }
2448 /* ../lib/standard/kernel.nit:243 */
2449 REGB4 = TAG_Bool(UNTAG_Int(REGB5)>=UNTAG_Int(REGB4));
2450 } else {
2451 /* ../lib/standard/collection/array.nit:400 */
2452 REGB5 = TAG_Bool(0);
2453 REGB4 = REGB5;
2454 }
2455 if (UNTAG_Bool(REGB4)) {
2456 REGB4 = TAG_Int(1);
2457 /* ../lib/standard/kernel.nit:247 */
2458 REGB4 = TAG_Int(UNTAG_Int(REGB3)-UNTAG_Int(REGB4));
2459 /* ../lib/standard/collection/array.nit:400 */
2460 REGB3 = REGB4;
2461 } else {
2462 goto label6;
2463 }
2464 }
2465 label6: while(0);
2466 REGB4 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB3), VTID_standard___kernel___Comparable___OTHER(REGB3))) /*cast OTHER*/;
2467 if (UNTAG_Bool(REGB4)) {
2468 } else {
2469 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
2470 }
2471 /* ../lib/standard/kernel.nit:244 */
2472 REGB4 = TAG_Bool(UNTAG_Int(REGB3)>UNTAG_Int(REGB2));
2473 /* ../lib/standard/collection/array.nit:401 */
2474 if (UNTAG_Bool(REGB4)) {
2475 /* ../lib/standard/collection/array.nit:279 */
2476 fra.me.REG[2] = fra.me.REG[0];
2477 REGB4 = REGB2;
2478 /* ../lib/standard/collection/array.nit:281 */
2479 REGB5 = TAG_Int(0);
2480 REGB6 = TAG_Bool(VAL_ISA(REGB5, VTCOLOR_standard___kernel___Comparable___OTHER(REGB4), VTID_standard___kernel___Comparable___OTHER(REGB4))) /*cast OTHER*/;
2481 if (UNTAG_Bool(REGB6)) {
2482 } else {
2483 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
2484 }
2485 /* ../lib/standard/kernel.nit:243 */
2486 REGB5 = TAG_Bool(UNTAG_Int(REGB4)>=UNTAG_Int(REGB5));
2487 /* ../lib/standard/collection/array.nit:281 */
2488 if (UNTAG_Bool(REGB5)) {
2489 REGB5 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
2490 if (UNTAG_Bool(REGB5)) {
2491 } else {
2492 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 281);
2493 }
2494 REGB5 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2]);
2495 REGB6 = TAG_Bool(VAL_ISA(REGB5, VTCOLOR_standard___kernel___Comparable___OTHER(REGB4), VTID_standard___kernel___Comparable___OTHER(REGB4))) /*cast OTHER*/;
2496 if (UNTAG_Bool(REGB6)) {
2497 } else {
2498 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
2499 }
2500 /* ../lib/standard/kernel.nit:242 */
2501 REGB5 = TAG_Bool(UNTAG_Int(REGB4)<UNTAG_Int(REGB5));
2502 } else {
2503 /* ../lib/standard/collection/array.nit:281 */
2504 REGB6 = TAG_Bool(0);
2505 REGB5 = REGB6;
2506 }
2507 if (UNTAG_Bool(REGB5)) {
2508 } else {
2509 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 281);
2510 }
2511 /* ../lib/standard/collection/array.nit:282 */
2512 fra.me.REG[2] = ATTR_standard___collection___array___Array____items(fra.me.REG[2]);
2513 REGB5 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
2514 if (UNTAG_Bool(REGB5)) {
2515 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 282);
2516 }
2517 /* ../lib/standard/collection/array.nit:725 */
2518 fra.me.REG[2] = ((Nit_NativeArray)fra.me.REG[2])->val[UNTAG_Int(REGB4)];
2519 /* ../lib/standard/collection/array.nit:282 */
2520 goto label7;
2521 label7: while(0);
2522 /* ../lib/standard/collection/array.nit:279 */
2523 fra.me.REG[3] = fra.me.REG[0];
2524 REGB4 = REGB3;
2525 /* ../lib/standard/collection/array.nit:281 */
2526 REGB5 = TAG_Int(0);
2527 REGB6 = TAG_Bool(VAL_ISA(REGB5, VTCOLOR_standard___kernel___Comparable___OTHER(REGB4), VTID_standard___kernel___Comparable___OTHER(REGB4))) /*cast OTHER*/;
2528 if (UNTAG_Bool(REGB6)) {
2529 } else {
2530 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
2531 }
2532 /* ../lib/standard/kernel.nit:243 */
2533 REGB5 = TAG_Bool(UNTAG_Int(REGB4)>=UNTAG_Int(REGB5));
2534 /* ../lib/standard/collection/array.nit:281 */
2535 if (UNTAG_Bool(REGB5)) {
2536 REGB5 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[3])!=NIT_NULL);
2537 if (UNTAG_Bool(REGB5)) {
2538 } else {
2539 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 281);
2540 }
2541 REGB5 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[3]);
2542 REGB6 = TAG_Bool(VAL_ISA(REGB5, VTCOLOR_standard___kernel___Comparable___OTHER(REGB4), VTID_standard___kernel___Comparable___OTHER(REGB4))) /*cast OTHER*/;
2543 if (UNTAG_Bool(REGB6)) {
2544 } else {
2545 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
2546 }
2547 /* ../lib/standard/kernel.nit:242 */
2548 REGB5 = TAG_Bool(UNTAG_Int(REGB4)<UNTAG_Int(REGB5));
2549 } else {
2550 /* ../lib/standard/collection/array.nit:281 */
2551 REGB6 = TAG_Bool(0);
2552 REGB5 = REGB6;
2553 }
2554 if (UNTAG_Bool(REGB5)) {
2555 } else {
2556 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 281);
2557 }
2558 /* ../lib/standard/collection/array.nit:282 */
2559 fra.me.REG[3] = ATTR_standard___collection___array___Array____items(fra.me.REG[3]);
2560 REGB5 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
2561 if (UNTAG_Bool(REGB5)) {
2562 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 282);
2563 }
2564 /* ../lib/standard/collection/array.nit:725 */
2565 fra.me.REG[3] = ((Nit_NativeArray)fra.me.REG[3])->val[UNTAG_Int(REGB4)];
2566 /* ../lib/standard/collection/array.nit:282 */
2567 goto label8;
2568 label8: while(0);
2569 /* ../lib/standard/collection/array.nit:403 */
2570 CALL_standard___collection___abstract_collection___Sequence_____braeq(fra.me.REG[0])(fra.me.REG[0], REGB2, fra.me.REG[3]);
2571 /* ../lib/standard/collection/array.nit:404 */
2572 CALL_standard___collection___abstract_collection___Sequence_____braeq(fra.me.REG[0])(fra.me.REG[0], REGB3, fra.me.REG[2]);
2573 }
2574 } else {
2575 /* ../lib/standard/collection/array.nit:398 */
2576 goto label9;
2577 }
2578 }
2579 label9: while(0);
2580 /* ../lib/standard/collection/array.nit:407 */
2581 REGB3 = TAG_Int(1);
2582 /* ../lib/standard/kernel.nit:247 */
2583 REGB3 = TAG_Int(UNTAG_Int(REGB2)-UNTAG_Int(REGB3));
2584 /* ../lib/standard/collection/array.nit:279 */
2585 fra.me.REG[2] = fra.me.REG[0];
2586 /* ../lib/standard/collection/array.nit:281 */
2587 REGB4 = TAG_Int(0);
2588 REGB5 = TAG_Bool(VAL_ISA(REGB4, VTCOLOR_standard___kernel___Comparable___OTHER(REGB3), VTID_standard___kernel___Comparable___OTHER(REGB3))) /*cast OTHER*/;
2589 if (UNTAG_Bool(REGB5)) {
2590 } else {
2591 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
2592 }
2593 /* ../lib/standard/kernel.nit:243 */
2594 REGB4 = TAG_Bool(UNTAG_Int(REGB3)>=UNTAG_Int(REGB4));
2595 /* ../lib/standard/collection/array.nit:281 */
2596 if (UNTAG_Bool(REGB4)) {
2597 REGB4 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
2598 if (UNTAG_Bool(REGB4)) {
2599 } else {
2600 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 281);
2601 }
2602 REGB4 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2]);
2603 REGB5 = TAG_Bool(VAL_ISA(REGB4, VTCOLOR_standard___kernel___Comparable___OTHER(REGB3), VTID_standard___kernel___Comparable___OTHER(REGB3))) /*cast OTHER*/;
2604 if (UNTAG_Bool(REGB5)) {
2605 } else {
2606 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
2607 }
2608 /* ../lib/standard/kernel.nit:242 */
2609 REGB4 = TAG_Bool(UNTAG_Int(REGB3)<UNTAG_Int(REGB4));
2610 } else {
2611 /* ../lib/standard/collection/array.nit:281 */
2612 REGB5 = TAG_Bool(0);
2613 REGB4 = REGB5;
2614 }
2615 if (UNTAG_Bool(REGB4)) {
2616 } else {
2617 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 281);
2618 }
2619 /* ../lib/standard/collection/array.nit:282 */
2620 fra.me.REG[2] = ATTR_standard___collection___array___Array____items(fra.me.REG[2]);
2621 REGB4 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
2622 if (UNTAG_Bool(REGB4)) {
2623 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 282);
2624 }
2625 /* ../lib/standard/collection/array.nit:725 */
2626 fra.me.REG[2] = ((Nit_NativeArray)fra.me.REG[2])->val[UNTAG_Int(REGB3)];
2627 /* ../lib/standard/collection/array.nit:282 */
2628 goto label10;
2629 label10: while(0);
2630 /* ../lib/standard/collection/array.nit:407 */
2631 CALL_standard___collection___abstract_collection___Sequence_____braeq(fra.me.REG[0])(fra.me.REG[0], REGB0, fra.me.REG[2]);
2632 /* ../lib/standard/collection/array.nit:408 */
2633 REGB3 = TAG_Int(1);
2634 /* ../lib/standard/kernel.nit:247 */
2635 REGB3 = TAG_Int(UNTAG_Int(REGB2)-UNTAG_Int(REGB3));
2636 /* ../lib/standard/collection/array.nit:408 */
2637 CALL_standard___collection___abstract_collection___Sequence_____braeq(fra.me.REG[0])(fra.me.REG[0], REGB3, fra.me.REG[1]);
2638 /* ../lib/standard/collection/array.nit:409 */
2639 REGB3 = TAG_Int(2);
2640 /* ../lib/standard/kernel.nit:247 */
2641 REGB3 = TAG_Int(UNTAG_Int(REGB2)-UNTAG_Int(REGB3));
2642 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));
2643 switch ((&(fra.me))->has_broke) {
2644 case 0: break;
2645 case 1: (&(fra.me))->has_broke = 0; goto label1;
2646 }
2647 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));
2648 switch ((&(fra.me))->has_broke) {
2649 case 0: break;
2650 case 1: (&(fra.me))->has_broke = 0; goto label1;
2651 }
2652 } else {
2653 /* ../lib/standard/collection/array.nit:413 */
2654 while(1) {
2655 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
2656 if (UNTAG_Bool(REGB2)) {
2657 } else {
2658 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
2659 }
2660 /* ../lib/standard/kernel.nit:242 */
2661 REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
2662 /* ../lib/standard/collection/array.nit:413 */
2663 if (UNTAG_Bool(REGB2)) {
2664 /* ../lib/standard/collection/array.nit:414 */
2665 REGB2 = REGB0;
2666 /* ../lib/standard/collection/array.nit:279 */
2667 fra.me.REG[1] = fra.me.REG[0];
2668 REGB3 = REGB0;
2669 /* ../lib/standard/collection/array.nit:281 */
2670 REGB4 = TAG_Int(0);
2671 REGB5 = TAG_Bool(VAL_ISA(REGB4, VTCOLOR_standard___kernel___Comparable___OTHER(REGB3), VTID_standard___kernel___Comparable___OTHER(REGB3))) /*cast OTHER*/;
2672 if (UNTAG_Bool(REGB5)) {
2673 } else {
2674 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
2675 }
2676 /* ../lib/standard/kernel.nit:243 */
2677 REGB4 = TAG_Bool(UNTAG_Int(REGB3)>=UNTAG_Int(REGB4));
2678 /* ../lib/standard/collection/array.nit:281 */
2679 if (UNTAG_Bool(REGB4)) {
2680 REGB4 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1])!=NIT_NULL);
2681 if (UNTAG_Bool(REGB4)) {
2682 } else {
2683 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 281);
2684 }
2685 REGB4 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1]);
2686 REGB5 = TAG_Bool(VAL_ISA(REGB4, VTCOLOR_standard___kernel___Comparable___OTHER(REGB3), VTID_standard___kernel___Comparable___OTHER(REGB3))) /*cast OTHER*/;
2687 if (UNTAG_Bool(REGB5)) {
2688 } else {
2689 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
2690 }
2691 /* ../lib/standard/kernel.nit:242 */
2692 REGB4 = TAG_Bool(UNTAG_Int(REGB3)<UNTAG_Int(REGB4));
2693 } else {
2694 /* ../lib/standard/collection/array.nit:281 */
2695 REGB5 = TAG_Bool(0);
2696 REGB4 = REGB5;
2697 }
2698 if (UNTAG_Bool(REGB4)) {
2699 } else {
2700 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 281);
2701 }
2702 /* ../lib/standard/collection/array.nit:282 */
2703 fra.me.REG[1] = ATTR_standard___collection___array___Array____items(fra.me.REG[1]);
2704 REGB4 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
2705 if (UNTAG_Bool(REGB4)) {
2706 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 282);
2707 }
2708 /* ../lib/standard/collection/array.nit:725 */
2709 fra.me.REG[1] = ((Nit_NativeArray)fra.me.REG[1])->val[UNTAG_Int(REGB3)];
2710 /* ../lib/standard/collection/array.nit:282 */
2711 goto label15;
2712 label15: while(0);
2713 /* ../lib/standard/collection/array.nit:416 */
2714 REGB3 = REGB0;
2715 /* ../lib/standard/collection/array.nit:417 */
2716 while(1) {
2717 REGB4 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB3), VTID_standard___kernel___Comparable___OTHER(REGB3))) /*cast OTHER*/;
2718 if (UNTAG_Bool(REGB4)) {
2719 } else {
2720 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
2721 }
2722 /* ../lib/standard/kernel.nit:241 */
2723 REGB4 = TAG_Bool(UNTAG_Int(REGB3)<=UNTAG_Int(REGB1));
2724 /* ../lib/standard/collection/array.nit:417 */
2725 if (UNTAG_Bool(REGB4)) {
2726 /* ../lib/standard/collection/array.nit:279 */
2727 fra.me.REG[2] = fra.me.REG[0];
2728 REGB4 = REGB3;
2729 /* ../lib/standard/collection/array.nit:281 */
2730 REGB5 = TAG_Int(0);
2731 REGB6 = TAG_Bool(VAL_ISA(REGB5, VTCOLOR_standard___kernel___Comparable___OTHER(REGB4), VTID_standard___kernel___Comparable___OTHER(REGB4))) /*cast OTHER*/;
2732 if (UNTAG_Bool(REGB6)) {
2733 } else {
2734 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
2735 }
2736 /* ../lib/standard/kernel.nit:243 */
2737 REGB5 = TAG_Bool(UNTAG_Int(REGB4)>=UNTAG_Int(REGB5));
2738 /* ../lib/standard/collection/array.nit:281 */
2739 if (UNTAG_Bool(REGB5)) {
2740 REGB5 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
2741 if (UNTAG_Bool(REGB5)) {
2742 } else {
2743 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 281);
2744 }
2745 REGB5 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2]);
2746 REGB6 = TAG_Bool(VAL_ISA(REGB5, VTCOLOR_standard___kernel___Comparable___OTHER(REGB4), VTID_standard___kernel___Comparable___OTHER(REGB4))) /*cast OTHER*/;
2747 if (UNTAG_Bool(REGB6)) {
2748 } else {
2749 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
2750 }
2751 /* ../lib/standard/kernel.nit:242 */
2752 REGB5 = TAG_Bool(UNTAG_Int(REGB4)<UNTAG_Int(REGB5));
2753 } else {
2754 /* ../lib/standard/collection/array.nit:281 */
2755 REGB6 = TAG_Bool(0);
2756 REGB5 = REGB6;
2757 }
2758 if (UNTAG_Bool(REGB5)) {
2759 } else {
2760 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 281);
2761 }
2762 /* ../lib/standard/collection/array.nit:282 */
2763 fra.me.REG[2] = ATTR_standard___collection___array___Array____items(fra.me.REG[2]);
2764 REGB5 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
2765 if (UNTAG_Bool(REGB5)) {
2766 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 282);
2767 }
2768 /* ../lib/standard/collection/array.nit:725 */
2769 fra.me.REG[2] = ((Nit_NativeArray)fra.me.REG[2])->val[UNTAG_Int(REGB4)];
2770 /* ../lib/standard/collection/array.nit:282 */
2771 goto label16;
2772 label16: while(0);
2773 /* ../lib/standard/collection/array.nit:418 */
2774 REGB4 = ((val_t (*)(struct stack_frame_t *, val_t, val_t))(CREG[0]))(closctx_param, fra.me.REG[1], fra.me.REG[2]);
2775 if (closctx_param->has_broke) {
2776 goto label1;
2777 }
2778 REGB5 = TAG_Int(0);
2779 REGB6 = TAG_Bool(VAL_ISA(REGB5, VTCOLOR_standard___kernel___Comparable___OTHER(REGB4), VTID_standard___kernel___Comparable___OTHER(REGB4))) /*cast OTHER*/;
2780 if (UNTAG_Bool(REGB6)) {
2781 } else {
2782 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
2783 }
2784 /* ../lib/standard/kernel.nit:244 */
2785 REGB5 = TAG_Bool(UNTAG_Int(REGB4)>UNTAG_Int(REGB5));
2786 /* ../lib/standard/collection/array.nit:418 */
2787 if (UNTAG_Bool(REGB5)) {
2788 /* ../lib/standard/collection/array.nit:419 */
2789 REGB2 = REGB3;
2790 /* ../lib/standard/collection/array.nit:279 */
2791 fra.me.REG[2] = fra.me.REG[0];
2792 REGB5 = REGB3;
2793 /* ../lib/standard/collection/array.nit:281 */
2794 REGB4 = TAG_Int(0);
2795 REGB6 = TAG_Bool(VAL_ISA(REGB4, VTCOLOR_standard___kernel___Comparable___OTHER(REGB5), VTID_standard___kernel___Comparable___OTHER(REGB5))) /*cast OTHER*/;
2796 if (UNTAG_Bool(REGB6)) {
2797 } else {
2798 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
2799 }
2800 /* ../lib/standard/kernel.nit:243 */
2801 REGB4 = TAG_Bool(UNTAG_Int(REGB5)>=UNTAG_Int(REGB4));
2802 /* ../lib/standard/collection/array.nit:281 */
2803 if (UNTAG_Bool(REGB4)) {
2804 REGB4 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
2805 if (UNTAG_Bool(REGB4)) {
2806 } else {
2807 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 281);
2808 }
2809 REGB4 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2]);
2810 REGB6 = TAG_Bool(VAL_ISA(REGB4, VTCOLOR_standard___kernel___Comparable___OTHER(REGB5), VTID_standard___kernel___Comparable___OTHER(REGB5))) /*cast OTHER*/;
2811 if (UNTAG_Bool(REGB6)) {
2812 } else {
2813 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
2814 }
2815 /* ../lib/standard/kernel.nit:242 */
2816 REGB4 = TAG_Bool(UNTAG_Int(REGB5)<UNTAG_Int(REGB4));
2817 } else {
2818 /* ../lib/standard/collection/array.nit:281 */
2819 REGB6 = TAG_Bool(0);
2820 REGB4 = REGB6;
2821 }
2822 if (UNTAG_Bool(REGB4)) {
2823 } else {
2824 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 281);
2825 }
2826 /* ../lib/standard/collection/array.nit:282 */
2827 fra.me.REG[2] = ATTR_standard___collection___array___Array____items(fra.me.REG[2]);
2828 REGB4 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
2829 if (UNTAG_Bool(REGB4)) {
2830 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 282);
2831 }
2832 /* ../lib/standard/collection/array.nit:725 */
2833 fra.me.REG[2] = ((Nit_NativeArray)fra.me.REG[2])->val[UNTAG_Int(REGB5)];
2834 /* ../lib/standard/collection/array.nit:282 */
2835 goto label17;
2836 label17: while(0);
2837 /* ../lib/standard/collection/array.nit:420 */
2838 fra.me.REG[1] = fra.me.REG[2];
2839 }
2840 /* ../lib/standard/collection/array.nit:422 */
2841 REGB5 = TAG_Int(1);
2842 /* ../lib/standard/kernel.nit:245 */
2843 REGB5 = TAG_Int(UNTAG_Int(REGB3)+UNTAG_Int(REGB5));
2844 /* ../lib/standard/collection/array.nit:422 */
2845 REGB3 = REGB5;
2846 } else {
2847 /* ../lib/standard/collection/array.nit:417 */
2848 goto label18;
2849 }
2850 }
2851 label18: while(0);
2852 /* ../lib/standard/collection/array.nit:424 */
2853 REGB3 = TAG_Bool(IS_EQUAL_OO(REGB2,REGB0));
2854 if (UNTAG_Bool(REGB3)) {
2855 } else {
2856 /* ../lib/standard/kernel.nit:237 */
2857 REGB5 = TAG_Bool((REGB2)==(REGB0));
2858 /* ../lib/standard/collection/array.nit:424 */
2859 REGB3 = REGB5;
2860 }
2861 REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
2862 if (UNTAG_Bool(REGB3)) {
2863 /* ../lib/standard/collection/array.nit:279 */
2864 fra.me.REG[2] = fra.me.REG[0];
2865 REGB3 = REGB0;
2866 /* ../lib/standard/collection/array.nit:281 */
2867 REGB5 = TAG_Int(0);
2868 REGB4 = TAG_Bool(VAL_ISA(REGB5, VTCOLOR_standard___kernel___Comparable___OTHER(REGB3), VTID_standard___kernel___Comparable___OTHER(REGB3))) /*cast OTHER*/;
2869 if (UNTAG_Bool(REGB4)) {
2870 } else {
2871 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
2872 }
2873 /* ../lib/standard/kernel.nit:243 */
2874 REGB5 = TAG_Bool(UNTAG_Int(REGB3)>=UNTAG_Int(REGB5));
2875 /* ../lib/standard/collection/array.nit:281 */
2876 if (UNTAG_Bool(REGB5)) {
2877 REGB5 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
2878 if (UNTAG_Bool(REGB5)) {
2879 } else {
2880 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 281);
2881 }
2882 REGB5 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2]);
2883 REGB4 = TAG_Bool(VAL_ISA(REGB5, VTCOLOR_standard___kernel___Comparable___OTHER(REGB3), VTID_standard___kernel___Comparable___OTHER(REGB3))) /*cast OTHER*/;
2884 if (UNTAG_Bool(REGB4)) {
2885 } else {
2886 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
2887 }
2888 /* ../lib/standard/kernel.nit:242 */
2889 REGB5 = TAG_Bool(UNTAG_Int(REGB3)<UNTAG_Int(REGB5));
2890 } else {
2891 /* ../lib/standard/collection/array.nit:281 */
2892 REGB4 = TAG_Bool(0);
2893 REGB5 = REGB4;
2894 }
2895 if (UNTAG_Bool(REGB5)) {
2896 } else {
2897 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 281);
2898 }
2899 /* ../lib/standard/collection/array.nit:282 */
2900 fra.me.REG[2] = ATTR_standard___collection___array___Array____items(fra.me.REG[2]);
2901 REGB5 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
2902 if (UNTAG_Bool(REGB5)) {
2903 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 282);
2904 }
2905 /* ../lib/standard/collection/array.nit:725 */
2906 fra.me.REG[2] = ((Nit_NativeArray)fra.me.REG[2])->val[UNTAG_Int(REGB3)];
2907 /* ../lib/standard/collection/array.nit:282 */
2908 goto label19;
2909 label19: while(0);
2910 /* ../lib/standard/collection/array.nit:425 */
2911 CALL_standard___collection___abstract_collection___Sequence_____braeq(fra.me.REG[0])(fra.me.REG[0], REGB2, fra.me.REG[2]);
2912 /* ../lib/standard/collection/array.nit:426 */
2913 CALL_standard___collection___abstract_collection___Sequence_____braeq(fra.me.REG[0])(fra.me.REG[0], REGB0, fra.me.REG[1]);
2914 }
2915 /* ../lib/standard/collection/array.nit:428 */
2916 REGB2 = TAG_Int(1);
2917 /* ../lib/standard/kernel.nit:245 */
2918 REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
2919 /* ../lib/standard/collection/array.nit:428 */
2920 REGB0 = REGB2;
2921 } else {
2922 /* ../lib/standard/collection/array.nit:413 */
2923 goto label20;
2924 }
2925 }
2926 label20: while(0);
2927 }
2928 }
2929 label1: while(0);
2930 stack_frame_head = fra.me.prev;
2931 return;
2932 }
2933 val_t OC_standard___collection___array___Array___sub_sort_11(struct stack_frame_t *closctx, val_t p0, val_t p1){
2934 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
2935 val_t REGB0;
2936 val_t tmp;
2937 /* ../lib/standard/collection/array.nit:409 */
2938 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2939 fra.me.file = LOCATE_standard___collection___array;
2940 fra.me.line = 409;
2941 fra.me.meth = LOCATE_standard___collection___array___Array___sub_sort;
2942 fra.me.has_broke = 0;
2943 fra.me.REG_size = 2;
2944 fra.me.nitni_local_ref_head = NULL;
2945 fra.me.REG[0] = NIT_NULL;
2946 fra.me.REG[1] = NIT_NULL;
2947 fra.me.REG[0] = p0;
2948 fra.me.REG[1] = p1;
2949 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]);
2950 if (closctx->closure_ctx->has_broke) {
2951 closctx->has_broke = 1;
2952 goto label12;
2953 }
2954 goto label12;
2955 label12: while(0);
2956 stack_frame_head = fra.me.prev;
2957 return REGB0;
2958 }
2959 val_t OC_standard___collection___array___Array___sub_sort_13(struct stack_frame_t *closctx, val_t p0, val_t p1){
2960 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
2961 val_t REGB0;
2962 val_t tmp;
2963 /* ../lib/standard/collection/array.nit:410 */
2964 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2965 fra.me.file = LOCATE_standard___collection___array;
2966 fra.me.line = 410;
2967 fra.me.meth = LOCATE_standard___collection___array___Array___sub_sort;
2968 fra.me.has_broke = 0;
2969 fra.me.REG_size = 2;
2970 fra.me.nitni_local_ref_head = NULL;
2971 fra.me.REG[0] = NIT_NULL;
2972 fra.me.REG[1] = NIT_NULL;
2973 fra.me.REG[0] = p0;
2974 fra.me.REG[1] = p1;
2975 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]);
2976 if (closctx->closure_ctx->has_broke) {
2977 closctx->has_broke = 1;
2978 goto label14;
2979 }
2980 goto label14;
2981 label14: while(0);
2982 stack_frame_head = fra.me.prev;
2983 return REGB0;
2984 }
2985 static const char LOCATE_standard___collection___array___ArrayIterator___item[] = "array::ArrayIterator::(abstract_collection::Iterator::item)";
2986 val_t standard___collection___array___ArrayIterator___item(val_t p0){
2987 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
2988 val_t REGB0;
2989 val_t tmp;
2990 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2991 fra.me.file = LOCATE_standard___collection___array;
2992 fra.me.line = 438;
2993 fra.me.meth = LOCATE_standard___collection___array___ArrayIterator___item;
2994 fra.me.has_broke = 0;
2995 fra.me.REG_size = 2;
2996 fra.me.nitni_local_ref_head = NULL;
2997 fra.me.REG[0] = NIT_NULL;
2998 fra.me.REG[1] = NIT_NULL;
2999 fra.me.REG[0] = p0;
3000 /* ../lib/standard/collection/array.nit:438 */
3001 REGB0 = TAG_Bool(ATTR_standard___collection___array___ArrayIterator____array(fra.me.REG[0])!=NIT_NULL);
3002 if (UNTAG_Bool(REGB0)) {
3003 } else {
3004 nit_abort("Uninitialized attribute %s", "_array", LOCATE_standard___collection___array, 438);
3005 }
3006 fra.me.REG[1] = ATTR_standard___collection___array___ArrayIterator____array(fra.me.REG[0]);
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, 438);
3011 }
3012 REGB0 = ATTR_standard___collection___array___ArrayIterator____index(fra.me.REG[0]);
3013 fra.me.REG[1] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra.me.REG[1])(fra.me.REG[1], REGB0);
3014 goto label1;
3015 label1: while(0);
3016 stack_frame_head = fra.me.prev;
3017 return fra.me.REG[1];
3018 }
3019 static const char LOCATE_standard___collection___array___ArrayIterator___is_ok[] = "array::ArrayIterator::(abstract_collection::Iterator::is_ok)";
3020 val_t standard___collection___array___ArrayIterator___is_ok(val_t p0){
3021 struct {struct stack_frame_t me;} fra;
3022 val_t REGB0;
3023 val_t REGB1;
3024 val_t REGB2;
3025 val_t tmp;
3026 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3027 fra.me.file = LOCATE_standard___collection___array;
3028 fra.me.line = 442;
3029 fra.me.meth = LOCATE_standard___collection___array___ArrayIterator___is_ok;
3030 fra.me.has_broke = 0;
3031 fra.me.REG_size = 1;
3032 fra.me.nitni_local_ref_head = NULL;
3033 fra.me.REG[0] = NIT_NULL;
3034 fra.me.REG[0] = p0;
3035 /* ../lib/standard/collection/array.nit:442 */
3036 REGB0 = TAG_Bool(ATTR_standard___collection___array___ArrayIterator____index(fra.me.REG[0])!=NIT_NULL);
3037 if (UNTAG_Bool(REGB0)) {
3038 } else {
3039 nit_abort("Uninitialized attribute %s", "_index", LOCATE_standard___collection___array, 442);
3040 }
3041 REGB0 = ATTR_standard___collection___array___ArrayIterator____index(fra.me.REG[0]);
3042 REGB1 = TAG_Bool(ATTR_standard___collection___array___ArrayIterator____array(fra.me.REG[0])!=NIT_NULL);
3043 if (UNTAG_Bool(REGB1)) {
3044 } else {
3045 nit_abort("Uninitialized attribute %s", "_array", LOCATE_standard___collection___array, 442);
3046 }
3047 fra.me.REG[0] = ATTR_standard___collection___array___ArrayIterator____array(fra.me.REG[0]);
3048 /* ../lib/standard/collection/array.nit:24 */
3049 REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
3050 if (UNTAG_Bool(REGB1)) {
3051 } else {
3052 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
3053 }
3054 REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0]);
3055 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
3056 if (UNTAG_Bool(REGB2)) {
3057 } else {
3058 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
3059 }
3060 /* ../lib/standard/kernel.nit:242 */
3061 REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
3062 /* ../lib/standard/collection/array.nit:442 */
3063 goto label1;
3064 label1: while(0);
3065 stack_frame_head = fra.me.prev;
3066 return REGB1;
3067 }
3068 static const char LOCATE_standard___collection___array___ArrayIterator___next[] = "array::ArrayIterator::(abstract_collection::Iterator::next)";
3069 void standard___collection___array___ArrayIterator___next(val_t p0){
3070 struct {struct stack_frame_t me;} fra;
3071 val_t REGB0;
3072 val_t REGB1;
3073 val_t tmp;
3074 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3075 fra.me.file = LOCATE_standard___collection___array;
3076 fra.me.line = 444;
3077 fra.me.meth = LOCATE_standard___collection___array___ArrayIterator___next;
3078 fra.me.has_broke = 0;
3079 fra.me.REG_size = 1;
3080 fra.me.nitni_local_ref_head = NULL;
3081 fra.me.REG[0] = NIT_NULL;
3082 fra.me.REG[0] = p0;
3083 /* ../lib/standard/collection/array.nit:444 */
3084 REGB0 = ATTR_standard___collection___array___ArrayIterator____index(fra.me.REG[0]);
3085 REGB1 = TAG_Int(1);
3086 /* ../lib/standard/kernel.nit:245 */
3087 REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
3088 /* ../lib/standard/collection/array.nit:444 */
3089 ATTR_standard___collection___array___ArrayIterator____index(fra.me.REG[0]) = REGB1;
3090 stack_frame_head = fra.me.prev;
3091 return;
3092 }
3093 static const char LOCATE_standard___collection___array___ArrayIterator___init[] = "array::ArrayIterator::init";
3094 void standard___collection___array___ArrayIterator___init(val_t p0, val_t p1, int* init_table){
3095 int itpos7 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_standard___collection___array___ArrayIterator].i;
3096 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
3097 val_t REGB0;
3098 val_t tmp;
3099 if (init_table[itpos7]) return;
3100 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3101 fra.me.file = LOCATE_standard___collection___array;
3102 fra.me.line = 446;
3103 fra.me.meth = LOCATE_standard___collection___array___ArrayIterator___init;
3104 fra.me.has_broke = 0;
3105 fra.me.REG_size = 2;
3106 fra.me.nitni_local_ref_head = NULL;
3107 fra.me.REG[0] = NIT_NULL;
3108 fra.me.REG[1] = NIT_NULL;
3109 fra.me.REG[0] = p0;
3110 fra.me.REG[1] = p1;
3111 /* ../lib/standard/collection/array.nit:448 */
3112 ATTR_standard___collection___array___ArrayIterator____array(fra.me.REG[0]) = fra.me.REG[1];
3113 /* ../lib/standard/collection/array.nit:449 */
3114 REGB0 = TAG_Int(0);
3115 ATTR_standard___collection___array___ArrayIterator____index(fra.me.REG[0]) = REGB0;
3116 stack_frame_head = fra.me.prev;
3117 init_table[itpos7] = 1;
3118 return;
3119 }
3120 static const char LOCATE_standard___collection___array___ArrayIterator___index[] = "array::ArrayIterator::(abstract_collection::IndexedIterator::index)";
3121 val_t standard___collection___array___ArrayIterator___index(val_t p0){
3122 struct {struct stack_frame_t me;} fra;
3123 val_t REGB0;
3124 val_t tmp;
3125 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3126 fra.me.file = LOCATE_standard___collection___array;
3127 fra.me.line = 452;
3128 fra.me.meth = LOCATE_standard___collection___array___ArrayIterator___index;
3129 fra.me.has_broke = 0;
3130 fra.me.REG_size = 1;
3131 fra.me.nitni_local_ref_head = NULL;
3132 fra.me.REG[0] = NIT_NULL;
3133 fra.me.REG[0] = p0;
3134 /* ../lib/standard/collection/array.nit:452 */
3135 REGB0 = TAG_Bool(ATTR_standard___collection___array___ArrayIterator____index(fra.me.REG[0])!=NIT_NULL);
3136 if (UNTAG_Bool(REGB0)) {
3137 } else {
3138 nit_abort("Uninitialized attribute %s", "_index", LOCATE_standard___collection___array, 452);
3139 }
3140 REGB0 = ATTR_standard___collection___array___ArrayIterator____index(fra.me.REG[0]);
3141 stack_frame_head = fra.me.prev;
3142 return REGB0;
3143 }
3144 static const char LOCATE_standard___collection___array___ArraySet___has[] = "array::ArraySet::(abstract_collection::Collection::has)";
3145 val_t standard___collection___array___ArraySet___has(val_t p0, val_t p1){
3146 struct {struct stack_frame_t me; val_t MORE_REG[1];} 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 = 465;
3152 fra.me.meth = LOCATE_standard___collection___array___ArraySet___has;
3153 fra.me.has_broke = 0;
3154 fra.me.REG_size = 2;
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[0] = p0;
3159 fra.me.REG[1] = p1;
3160 /* ../lib/standard/collection/array.nit:465 */
3161 REGB0 = TAG_Bool(ATTR_standard___collection___array___ArraySet____array(fra.me.REG[0])!=NIT_NULL);
3162 if (UNTAG_Bool(REGB0)) {
3163 } else {
3164 nit_abort("Uninitialized attribute %s", "_array", LOCATE_standard___collection___array, 465);
3165 }
3166 fra.me.REG[0] = ATTR_standard___collection___array___ArraySet____array(fra.me.REG[0]);
3167 REGB0 = CALL_standard___collection___abstract_collection___Collection___has(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
3168 goto label1;
3169 label1: while(0);
3170 stack_frame_head = fra.me.prev;
3171 return REGB0;
3172 }
3173 static const char LOCATE_standard___collection___array___ArraySet___add[] = "array::ArraySet::(abstract_collection::SimpleCollection::add)";
3174 void standard___collection___array___ArraySet___add(val_t p0, val_t p1){
3175 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
3176 val_t REGB0;
3177 val_t tmp;
3178 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3179 fra.me.file = LOCATE_standard___collection___array;
3180 fra.me.line = 467;
3181 fra.me.meth = LOCATE_standard___collection___array___ArraySet___add;
3182 fra.me.has_broke = 0;
3183 fra.me.REG_size = 3;
3184 fra.me.nitni_local_ref_head = NULL;
3185 fra.me.REG[0] = NIT_NULL;
3186 fra.me.REG[1] = NIT_NULL;
3187 fra.me.REG[2] = NIT_NULL;
3188 fra.me.REG[0] = p0;
3189 fra.me.REG[1] = p1;
3190 /* ../lib/standard/collection/array.nit:467 */
3191 REGB0 = TAG_Bool(ATTR_standard___collection___array___ArraySet____array(fra.me.REG[0])!=NIT_NULL);
3192 if (UNTAG_Bool(REGB0)) {
3193 } else {
3194 nit_abort("Uninitialized attribute %s", "_array", LOCATE_standard___collection___array, 467);
3195 }
3196 fra.me.REG[2] = ATTR_standard___collection___array___ArraySet____array(fra.me.REG[0]);
3197 REGB0 = CALL_standard___collection___abstract_collection___Collection___has(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
3198 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
3199 if (UNTAG_Bool(REGB0)) {
3200 REGB0 = TAG_Bool(ATTR_standard___collection___array___ArraySet____array(fra.me.REG[0])!=NIT_NULL);
3201 if (UNTAG_Bool(REGB0)) {
3202 } else {
3203 nit_abort("Uninitialized attribute %s", "_array", LOCATE_standard___collection___array, 467);
3204 }
3205 fra.me.REG[0] = ATTR_standard___collection___array___ArraySet____array(fra.me.REG[0]);
3206 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
3207 }
3208 stack_frame_head = fra.me.prev;
3209 return;
3210 }
3211 static const char LOCATE_standard___collection___array___ArraySet___is_empty[] = "array::ArraySet::(abstract_collection::Collection::is_empty)";
3212 val_t standard___collection___array___ArraySet___is_empty(val_t p0){
3213 struct {struct stack_frame_t me;} fra;
3214 val_t REGB0;
3215 val_t tmp;
3216 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3217 fra.me.file = LOCATE_standard___collection___array;
3218 fra.me.line = 469;
3219 fra.me.meth = LOCATE_standard___collection___array___ArraySet___is_empty;
3220 fra.me.has_broke = 0;
3221 fra.me.REG_size = 1;
3222 fra.me.nitni_local_ref_head = NULL;
3223 fra.me.REG[0] = NIT_NULL;
3224 fra.me.REG[0] = p0;
3225 /* ../lib/standard/collection/array.nit:469 */
3226 REGB0 = TAG_Bool(ATTR_standard___collection___array___ArraySet____array(fra.me.REG[0])!=NIT_NULL);
3227 if (UNTAG_Bool(REGB0)) {
3228 } else {
3229 nit_abort("Uninitialized attribute %s", "_array", LOCATE_standard___collection___array, 469);
3230 }
3231 fra.me.REG[0] = ATTR_standard___collection___array___ArraySet____array(fra.me.REG[0]);
3232 REGB0 = CALL_standard___collection___abstract_collection___Collection___is_empty(fra.me.REG[0])(fra.me.REG[0]);
3233 goto label1;
3234 label1: while(0);
3235 stack_frame_head = fra.me.prev;
3236 return REGB0;
3237 }
3238 static const char LOCATE_standard___collection___array___ArraySet___length[] = "array::ArraySet::(abstract_collection::Collection::length)";
3239 val_t standard___collection___array___ArraySet___length(val_t p0){
3240 struct {struct stack_frame_t me;} fra;
3241 val_t REGB0;
3242 val_t tmp;
3243 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3244 fra.me.file = LOCATE_standard___collection___array;
3245 fra.me.line = 471;
3246 fra.me.meth = LOCATE_standard___collection___array___ArraySet___length;
3247 fra.me.has_broke = 0;
3248 fra.me.REG_size = 1;
3249 fra.me.nitni_local_ref_head = NULL;
3250 fra.me.REG[0] = NIT_NULL;
3251 fra.me.REG[0] = p0;
3252 /* ../lib/standard/collection/array.nit:471 */
3253 REGB0 = TAG_Bool(ATTR_standard___collection___array___ArraySet____array(fra.me.REG[0])!=NIT_NULL);
3254 if (UNTAG_Bool(REGB0)) {
3255 } else {
3256 nit_abort("Uninitialized attribute %s", "_array", LOCATE_standard___collection___array, 471);
3257 }
3258 fra.me.REG[0] = ATTR_standard___collection___array___ArraySet____array(fra.me.REG[0]);
3259 /* ../lib/standard/collection/array.nit:24 */
3260 REGB0 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
3261 if (UNTAG_Bool(REGB0)) {
3262 } else {
3263 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
3264 }
3265 REGB0 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0]);
3266 /* ../lib/standard/collection/array.nit:471 */
3267 goto label1;
3268 label1: while(0);
3269 stack_frame_head = fra.me.prev;
3270 return REGB0;
3271 }
3272 static const char LOCATE_standard___collection___array___ArraySet___first[] = "array::ArraySet::(abstract_collection::Collection::first)";
3273 val_t standard___collection___array___ArraySet___first(val_t p0){
3274 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
3275 val_t REGB0;
3276 val_t REGB1;
3277 val_t REGB2;
3278 val_t tmp;
3279 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3280 fra.me.file = LOCATE_standard___collection___array;
3281 fra.me.line = 473;
3282 fra.me.meth = LOCATE_standard___collection___array___ArraySet___first;
3283 fra.me.has_broke = 0;
3284 fra.me.REG_size = 2;
3285 fra.me.nitni_local_ref_head = NULL;
3286 fra.me.REG[0] = NIT_NULL;
3287 fra.me.REG[1] = NIT_NULL;
3288 fra.me.REG[0] = p0;
3289 /* ../lib/standard/collection/array.nit:475 */
3290 REGB0 = TAG_Bool(ATTR_standard___collection___array___ArraySet____array(fra.me.REG[0])!=NIT_NULL);
3291 if (UNTAG_Bool(REGB0)) {
3292 } else {
3293 nit_abort("Uninitialized attribute %s", "_array", LOCATE_standard___collection___array, 475);
3294 }
3295 fra.me.REG[1] = ATTR_standard___collection___array___ArraySet____array(fra.me.REG[0]);
3296 /* ../lib/standard/collection/array.nit:24 */
3297 REGB0 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1])!=NIT_NULL);
3298 if (UNTAG_Bool(REGB0)) {
3299 } else {
3300 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
3301 }
3302 REGB0 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1]);
3303 /* ../lib/standard/collection/array.nit:475 */
3304 REGB1 = TAG_Int(0);
3305 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
3306 if (UNTAG_Bool(REGB2)) {
3307 } else {
3308 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
3309 }
3310 /* ../lib/standard/kernel.nit:244 */
3311 REGB1 = TAG_Bool(UNTAG_Int(REGB0)>UNTAG_Int(REGB1));
3312 /* ../lib/standard/collection/array.nit:475 */
3313 if (UNTAG_Bool(REGB1)) {
3314 } else {
3315 nit_abort("Assert failed", NULL, LOCATE_standard___collection___array, 475);
3316 }
3317 /* ../lib/standard/collection/array.nit:476 */
3318 REGB1 = TAG_Bool(ATTR_standard___collection___array___ArraySet____array(fra.me.REG[0])!=NIT_NULL);
3319 if (UNTAG_Bool(REGB1)) {
3320 } else {
3321 nit_abort("Uninitialized attribute %s", "_array", LOCATE_standard___collection___array, 476);
3322 }
3323 fra.me.REG[0] = ATTR_standard___collection___array___ArraySet____array(fra.me.REG[0]);
3324 fra.me.REG[0] = CALL_standard___collection___abstract_collection___Collection___first(fra.me.REG[0])(fra.me.REG[0]);
3325 goto label1;
3326 label1: while(0);
3327 stack_frame_head = fra.me.prev;
3328 return fra.me.REG[0];
3329 }
3330 static const char LOCATE_standard___collection___array___ArraySet___remove[] = "array::ArraySet::(abstract_collection::RemovableCollection::remove)";
3331 void standard___collection___array___ArraySet___remove(val_t p0, val_t p1){
3332 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
3333 val_t REGB0;
3334 val_t REGB1;
3335 val_t REGB2;
3336 val_t tmp;
3337 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3338 fra.me.file = LOCATE_standard___collection___array;
3339 fra.me.line = 479;
3340 fra.me.meth = LOCATE_standard___collection___array___ArraySet___remove;
3341 fra.me.has_broke = 0;
3342 fra.me.REG_size = 3;
3343 fra.me.nitni_local_ref_head = NULL;
3344 fra.me.REG[0] = NIT_NULL;
3345 fra.me.REG[1] = NIT_NULL;
3346 fra.me.REG[2] = NIT_NULL;
3347 fra.me.REG[0] = p0;
3348 fra.me.REG[1] = p1;
3349 /* ../lib/standard/collection/array.nit:481 */
3350 REGB0 = TAG_Bool(ATTR_standard___collection___array___ArraySet____array(fra.me.REG[0])!=NIT_NULL);
3351 if (UNTAG_Bool(REGB0)) {
3352 } else {
3353 nit_abort("Uninitialized attribute %s", "_array", LOCATE_standard___collection___array, 481);
3354 }
3355 fra.me.REG[2] = ATTR_standard___collection___array___ArraySet____array(fra.me.REG[0]);
3356 REGB0 = CALL_standard___collection___abstract_collection___SequenceRead___index_of(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
3357 /* ../lib/standard/collection/array.nit:482 */
3358 REGB1 = TAG_Int(0);
3359 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
3360 if (UNTAG_Bool(REGB2)) {
3361 } else {
3362 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
3363 }
3364 /* ../lib/standard/kernel.nit:243 */
3365 REGB1 = TAG_Bool(UNTAG_Int(REGB0)>=UNTAG_Int(REGB1));
3366 /* ../lib/standard/collection/array.nit:482 */
3367 if (UNTAG_Bool(REGB1)) {
3368 CALL_standard___collection___array___ArraySet___remove_at(fra.me.REG[0])(fra.me.REG[0], REGB0);
3369 }
3370 stack_frame_head = fra.me.prev;
3371 return;
3372 }
3373 static const char LOCATE_standard___collection___array___ArraySet___remove_all[] = "array::ArraySet::(abstract_collection::RemovableCollection::remove_all)";
3374 void standard___collection___array___ArraySet___remove_all(val_t p0, val_t p1){
3375 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
3376 val_t tmp;
3377 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3378 fra.me.file = LOCATE_standard___collection___array;
3379 fra.me.line = 485;
3380 fra.me.meth = LOCATE_standard___collection___array___ArraySet___remove_all;
3381 fra.me.has_broke = 0;
3382 fra.me.REG_size = 2;
3383 fra.me.nitni_local_ref_head = NULL;
3384 fra.me.REG[0] = NIT_NULL;
3385 fra.me.REG[1] = NIT_NULL;
3386 fra.me.REG[0] = p0;
3387 fra.me.REG[1] = p1;
3388 /* ../lib/standard/collection/array.nit:485 */
3389 CALL_standard___collection___abstract_collection___RemovableCollection___remove(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
3390 stack_frame_head = fra.me.prev;
3391 return;
3392 }
3393 static const char LOCATE_standard___collection___array___ArraySet___clear[] = "array::ArraySet::(abstract_collection::RemovableCollection::clear)";
3394 void standard___collection___array___ArraySet___clear(val_t p0){
3395 struct {struct stack_frame_t me;} fra;
3396 val_t REGB0;
3397 val_t tmp;
3398 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3399 fra.me.file = LOCATE_standard___collection___array;
3400 fra.me.line = 487;
3401 fra.me.meth = LOCATE_standard___collection___array___ArraySet___clear;
3402 fra.me.has_broke = 0;
3403 fra.me.REG_size = 1;
3404 fra.me.nitni_local_ref_head = NULL;
3405 fra.me.REG[0] = NIT_NULL;
3406 fra.me.REG[0] = p0;
3407 /* ../lib/standard/collection/array.nit:487 */
3408 REGB0 = TAG_Bool(ATTR_standard___collection___array___ArraySet____array(fra.me.REG[0])!=NIT_NULL);
3409 if (UNTAG_Bool(REGB0)) {
3410 } else {
3411 nit_abort("Uninitialized attribute %s", "_array", LOCATE_standard___collection___array, 487);
3412 }
3413 fra.me.REG[0] = ATTR_standard___collection___array___ArraySet____array(fra.me.REG[0]);
3414 CALL_standard___collection___abstract_collection___RemovableCollection___clear(fra.me.REG[0])(fra.me.REG[0]);
3415 stack_frame_head = fra.me.prev;
3416 return;
3417 }
3418 static const char LOCATE_standard___collection___array___ArraySet___iterator[] = "array::ArraySet::(abstract_collection::Collection::iterator)";
3419 val_t standard___collection___array___ArraySet___iterator(val_t p0){
3420 struct {struct stack_frame_t me;} fra;
3421 val_t REGB0;
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 = 489;
3426 fra.me.meth = LOCATE_standard___collection___array___ArraySet___iterator;
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 /* ../lib/standard/collection/array.nit:489 */
3433 REGB0 = TAG_Bool(ATTR_standard___collection___array___ArraySet____array(fra.me.REG[0])!=NIT_NULL);
3434 if (UNTAG_Bool(REGB0)) {
3435 } else {
3436 nit_abort("Uninitialized attribute %s", "_array", LOCATE_standard___collection___array, 489);
3437 }
3438 fra.me.REG[0] = ATTR_standard___collection___array___ArraySet____array(fra.me.REG[0]);
3439 fra.me.REG[0] = CALL_standard___collection___abstract_collection___Collection___iterator(fra.me.REG[0])(fra.me.REG[0]);
3440 fra.me.REG[0] = NEW_ArraySetIterator_standard___collection___array___ArraySetIterator___init(fra.me.REG[0]);
3441 goto label1;
3442 label1: while(0);
3443 stack_frame_head = fra.me.prev;
3444 return fra.me.REG[0];
3445 }
3446 static const char LOCATE_standard___collection___array___ArraySet___enlarge[] = "array::ArraySet::enlarge";
3447 void standard___collection___array___ArraySet___enlarge(val_t p0, val_t p1){
3448 struct {struct stack_frame_t me;} fra;
3449 val_t REGB0;
3450 val_t REGB1;
3451 val_t tmp;
3452 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3453 fra.me.file = LOCATE_standard___collection___array;
3454 fra.me.line = 491;
3455 fra.me.meth = LOCATE_standard___collection___array___ArraySet___enlarge;
3456 fra.me.has_broke = 0;
3457 fra.me.REG_size = 1;
3458 fra.me.nitni_local_ref_head = NULL;
3459 fra.me.REG[0] = NIT_NULL;
3460 fra.me.REG[0] = p0;
3461 REGB0 = p1;
3462 /* ../lib/standard/collection/array.nit:492 */
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, 492);
3467 }
3468 fra.me.REG[0] = ATTR_standard___collection___array___ArraySet____array(fra.me.REG[0]);
3469 CALL_standard___collection___array___AbstractArray___enlarge(fra.me.REG[0])(fra.me.REG[0], REGB0);
3470 stack_frame_head = fra.me.prev;
3471 return;
3472 }
3473 static const char LOCATE_standard___collection___array___ArraySet___remove_at[] = "array::ArraySet::remove_at";
3474 void standard___collection___array___ArraySet___remove_at(val_t p0, val_t p1){
3475 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
3476 val_t REGB0;
3477 val_t REGB1;
3478 val_t tmp;
3479 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3480 fra.me.file = LOCATE_standard___collection___array;
3481 fra.me.line = 494;
3482 fra.me.meth = LOCATE_standard___collection___array___ArraySet___remove_at;
3483 fra.me.has_broke = 0;
3484 fra.me.REG_size = 3;
3485 fra.me.nitni_local_ref_head = NULL;
3486 fra.me.REG[0] = NIT_NULL;
3487 fra.me.REG[1] = NIT_NULL;
3488 fra.me.REG[2] = NIT_NULL;
3489 fra.me.REG[0] = p0;
3490 REGB0 = p1;
3491 /* ../lib/standard/collection/array.nit:496 */
3492 REGB1 = TAG_Bool(ATTR_standard___collection___array___ArraySet____array(fra.me.REG[0])!=NIT_NULL);
3493 if (UNTAG_Bool(REGB1)) {
3494 } else {
3495 nit_abort("Uninitialized attribute %s", "_array", LOCATE_standard___collection___array, 496);
3496 }
3497 fra.me.REG[1] = ATTR_standard___collection___array___ArraySet____array(fra.me.REG[0]);
3498 REGB1 = TAG_Bool(ATTR_standard___collection___array___ArraySet____array(fra.me.REG[0])!=NIT_NULL);
3499 if (UNTAG_Bool(REGB1)) {
3500 } else {
3501 nit_abort("Uninitialized attribute %s", "_array", LOCATE_standard___collection___array, 496);
3502 }
3503 fra.me.REG[2] = ATTR_standard___collection___array___ArraySet____array(fra.me.REG[0]);
3504 fra.me.REG[2] = CALL_standard___collection___abstract_collection___SequenceRead___last(fra.me.REG[2])(fra.me.REG[2]);
3505 CALL_standard___collection___abstract_collection___Sequence_____braeq(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
3506 /* ../lib/standard/collection/array.nit:497 */
3507 REGB0 = TAG_Bool(ATTR_standard___collection___array___ArraySet____array(fra.me.REG[0])!=NIT_NULL);
3508 if (UNTAG_Bool(REGB0)) {
3509 } else {
3510 nit_abort("Uninitialized attribute %s", "_array", LOCATE_standard___collection___array, 497);
3511 }
3512 fra.me.REG[0] = ATTR_standard___collection___array___ArraySet____array(fra.me.REG[0]);
3513 CALL_standard___collection___abstract_collection___Sequence___pop(fra.me.REG[0])(fra.me.REG[0]);
3514 stack_frame_head = fra.me.prev;
3515 return;
3516 }
3517 static const char LOCATE_standard___collection___array___ArraySet___init[] = "array::ArraySet::init";
3518 void standard___collection___array___ArraySet___init(val_t p0, int* init_table){
3519 int itpos8 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_standard___collection___array___ArraySet].i;
3520 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
3521 val_t tmp;
3522 if (init_table[itpos8]) return;
3523 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3524 fra.me.file = LOCATE_standard___collection___array;
3525 fra.me.line = 500;
3526 fra.me.meth = LOCATE_standard___collection___array___ArraySet___init;
3527 fra.me.has_broke = 0;
3528 fra.me.REG_size = 2;
3529 fra.me.nitni_local_ref_head = NULL;
3530 fra.me.REG[0] = NIT_NULL;
3531 fra.me.REG[1] = NIT_NULL;
3532 fra.me.REG[0] = p0;
3533 /* ../lib/standard/collection/array.nit:501 */
3534 fra.me.REG[1] = NEW_Array_standard___collection___array___Array___init();
3535 ATTR_standard___collection___array___ArraySet____array(fra.me.REG[0]) = fra.me.REG[1];
3536 stack_frame_head = fra.me.prev;
3537 init_table[itpos8] = 1;
3538 return;
3539 }
3540 static const char LOCATE_standard___collection___array___ArraySet___with_capacity[] = "array::ArraySet::with_capacity";
3541 void standard___collection___array___ArraySet___with_capacity(val_t p0, val_t p1, int* init_table){
3542 int itpos9 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_standard___collection___array___ArraySet].i;
3543 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
3544 val_t REGB0;
3545 val_t tmp;
3546 if (init_table[itpos9]) return;
3547 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3548 fra.me.file = LOCATE_standard___collection___array;
3549 fra.me.line = 503;
3550 fra.me.meth = LOCATE_standard___collection___array___ArraySet___with_capacity;
3551 fra.me.has_broke = 0;
3552 fra.me.REG_size = 2;
3553 fra.me.nitni_local_ref_head = NULL;
3554 fra.me.REG[0] = NIT_NULL;
3555 fra.me.REG[1] = NIT_NULL;
3556 fra.me.REG[0] = p0;
3557 REGB0 = p1;
3558 /* ../lib/standard/collection/array.nit:504 */
3559 fra.me.REG[1] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
3560 ATTR_standard___collection___array___ArraySet____array(fra.me.REG[0]) = fra.me.REG[1];
3561 stack_frame_head = fra.me.prev;
3562 init_table[itpos9] = 1;
3563 return;
3564 }
3565 static const char LOCATE_standard___collection___array___ArraySetIterator___is_ok[] = "array::ArraySetIterator::(abstract_collection::Iterator::is_ok)";
3566 val_t standard___collection___array___ArraySetIterator___is_ok(val_t p0){
3567 struct {struct stack_frame_t me;} fra;
3568 val_t REGB0;
3569 val_t tmp;
3570 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3571 fra.me.file = LOCATE_standard___collection___array;
3572 fra.me.line = 511;
3573 fra.me.meth = LOCATE_standard___collection___array___ArraySetIterator___is_ok;
3574 fra.me.has_broke = 0;
3575 fra.me.REG_size = 1;
3576 fra.me.nitni_local_ref_head = NULL;
3577 fra.me.REG[0] = NIT_NULL;
3578 fra.me.REG[0] = p0;
3579 /* ../lib/standard/collection/array.nit:511 */
3580 REGB0 = TAG_Bool(ATTR_standard___collection___array___ArraySetIterator____iter(fra.me.REG[0])!=NIT_NULL);
3581 if (UNTAG_Bool(REGB0)) {
3582 } else {
3583 nit_abort("Uninitialized attribute %s", "_iter", LOCATE_standard___collection___array, 511);
3584 }
3585 fra.me.REG[0] = ATTR_standard___collection___array___ArraySetIterator____iter(fra.me.REG[0]);
3586 REGB0 = CALL_standard___collection___abstract_collection___Iterator___is_ok(fra.me.REG[0])(fra.me.REG[0]);
3587 goto label1;
3588 label1: while(0);
3589 stack_frame_head = fra.me.prev;
3590 return REGB0;
3591 }
3592 static const char LOCATE_standard___collection___array___ArraySetIterator___next[] = "array::ArraySetIterator::(abstract_collection::Iterator::next)";
3593 void standard___collection___array___ArraySetIterator___next(val_t p0){
3594 struct {struct stack_frame_t me;} fra;
3595 val_t REGB0;
3596 val_t tmp;
3597 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3598 fra.me.file = LOCATE_standard___collection___array;
3599 fra.me.line = 513;
3600 fra.me.meth = LOCATE_standard___collection___array___ArraySetIterator___next;
3601 fra.me.has_broke = 0;
3602 fra.me.REG_size = 1;
3603 fra.me.nitni_local_ref_head = NULL;
3604 fra.me.REG[0] = NIT_NULL;
3605 fra.me.REG[0] = p0;
3606 /* ../lib/standard/collection/array.nit:513 */
3607 REGB0 = TAG_Bool(ATTR_standard___collection___array___ArraySetIterator____iter(fra.me.REG[0])!=NIT_NULL);
3608 if (UNTAG_Bool(REGB0)) {
3609 } else {
3610 nit_abort("Uninitialized attribute %s", "_iter", LOCATE_standard___collection___array, 513);
3611 }
3612 fra.me.REG[0] = ATTR_standard___collection___array___ArraySetIterator____iter(fra.me.REG[0]);
3613 CALL_standard___collection___abstract_collection___Iterator___next(fra.me.REG[0])(fra.me.REG[0]);
3614 stack_frame_head = fra.me.prev;
3615 return;
3616 }
3617 static const char LOCATE_standard___collection___array___ArraySetIterator___item[] = "array::ArraySetIterator::(abstract_collection::Iterator::item)";
3618 val_t standard___collection___array___ArraySetIterator___item(val_t p0){
3619 struct {struct stack_frame_t me;} fra;
3620 val_t REGB0;
3621 val_t tmp;
3622 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3623 fra.me.file = LOCATE_standard___collection___array;
3624 fra.me.line = 515;
3625 fra.me.meth = LOCATE_standard___collection___array___ArraySetIterator___item;
3626 fra.me.has_broke = 0;
3627 fra.me.REG_size = 1;
3628 fra.me.nitni_local_ref_head = NULL;
3629 fra.me.REG[0] = NIT_NULL;
3630 fra.me.REG[0] = p0;
3631 /* ../lib/standard/collection/array.nit:515 */
3632 REGB0 = TAG_Bool(ATTR_standard___collection___array___ArraySetIterator____iter(fra.me.REG[0])!=NIT_NULL);
3633 if (UNTAG_Bool(REGB0)) {
3634 } else {
3635 nit_abort("Uninitialized attribute %s", "_iter", LOCATE_standard___collection___array, 515);
3636 }
3637 fra.me.REG[0] = ATTR_standard___collection___array___ArraySetIterator____iter(fra.me.REG[0]);
3638 fra.me.REG[0] = CALL_standard___collection___abstract_collection___Iterator___item(fra.me.REG[0])(fra.me.REG[0]);
3639 goto label1;
3640 label1: while(0);
3641 stack_frame_head = fra.me.prev;
3642 return fra.me.REG[0];
3643 }
3644 static const char LOCATE_standard___collection___array___ArraySetIterator___init[] = "array::ArraySetIterator::init";
3645 void standard___collection___array___ArraySetIterator___init(val_t p0, val_t p1, int* init_table){
3646 int itpos10 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_standard___collection___array___ArraySetIterator].i;
3647 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
3648 val_t tmp;
3649 if (init_table[itpos10]) return;
3650 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3651 fra.me.file = LOCATE_standard___collection___array;
3652 fra.me.line = 517;
3653 fra.me.meth = LOCATE_standard___collection___array___ArraySetIterator___init;
3654 fra.me.has_broke = 0;
3655 fra.me.REG_size = 2;
3656 fra.me.nitni_local_ref_head = NULL;
3657 fra.me.REG[0] = NIT_NULL;
3658 fra.me.REG[1] = NIT_NULL;
3659 fra.me.REG[0] = p0;
3660 fra.me.REG[1] = p1;
3661 /* ../lib/standard/collection/array.nit:517 */
3662 ATTR_standard___collection___array___ArraySetIterator____iter(fra.me.REG[0]) = fra.me.REG[1];
3663 stack_frame_head = fra.me.prev;
3664 init_table[itpos10] = 1;
3665 return;
3666 }
3667 static const char LOCATE_standard___collection___array___ArrayMap_____bra[] = "array::ArrayMap::(abstract_collection::MapRead::[])";
3668 val_t standard___collection___array___ArrayMap_____bra(val_t p0, val_t p1){
3669 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
3670 val_t REGB0;
3671 val_t REGB1;
3672 val_t REGB2;
3673 val_t tmp;
3674 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3675 fra.me.file = LOCATE_standard___collection___array;
3676 fra.me.line = 527;
3677 fra.me.meth = LOCATE_standard___collection___array___ArrayMap_____bra;
3678 fra.me.has_broke = 0;
3679 fra.me.REG_size = 2;
3680 fra.me.nitni_local_ref_head = NULL;
3681 fra.me.REG[0] = NIT_NULL;
3682 fra.me.REG[1] = NIT_NULL;
3683 fra.me.REG[0] = p0;
3684 fra.me.REG[1] = p1;
3685 /* ../lib/standard/collection/array.nit:530 */
3686 REGB0 = CALL_standard___collection___array___ArrayMap___index(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
3687 /* ../lib/standard/collection/array.nit:531 */
3688 REGB1 = TAG_Int(0);
3689 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
3690 if (UNTAG_Bool(REGB2)) {
3691 } else {
3692 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
3693 }
3694 /* ../lib/standard/kernel.nit:243 */
3695 REGB1 = TAG_Bool(UNTAG_Int(REGB0)>=UNTAG_Int(REGB1));
3696 /* ../lib/standard/collection/array.nit:531 */
3697 if (UNTAG_Bool(REGB1)) {
3698 /* ../lib/standard/collection/array.nit:532 */
3699 REGB1 = TAG_Bool(ATTR_standard___collection___array___ArrayMap____items(fra.me.REG[0])!=NIT_NULL);
3700 if (UNTAG_Bool(REGB1)) {
3701 } else {
3702 nit_abort("Uninitialized attribute %s", "_items", LOCATE_standard___collection___array, 532);
3703 }
3704 fra.me.REG[0] = ATTR_standard___collection___array___ArrayMap____items(fra.me.REG[0]);
3705 /* ../lib/standard/collection/array.nit:281 */
3706 REGB1 = TAG_Int(0);
3707 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
3708 if (UNTAG_Bool(REGB2)) {
3709 } else {
3710 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
3711 }
3712 /* ../lib/standard/kernel.nit:243 */
3713 REGB1 = TAG_Bool(UNTAG_Int(REGB0)>=UNTAG_Int(REGB1));
3714 /* ../lib/standard/collection/array.nit:281 */
3715 if (UNTAG_Bool(REGB1)) {
3716 REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
3717 if (UNTAG_Bool(REGB1)) {
3718 } else {
3719 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 281);
3720 }
3721 REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0]);
3722 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
3723 if (UNTAG_Bool(REGB2)) {
3724 } else {
3725 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
3726 }
3727 /* ../lib/standard/kernel.nit:242 */
3728 REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
3729 } else {
3730 /* ../lib/standard/collection/array.nit:281 */
3731 REGB2 = TAG_Bool(0);
3732 REGB1 = REGB2;
3733 }
3734 if (UNTAG_Bool(REGB1)) {
3735 } else {
3736 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 281);
3737 }
3738 /* ../lib/standard/collection/array.nit:282 */
3739 fra.me.REG[0] = ATTR_standard___collection___array___Array____items(fra.me.REG[0]);
3740 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
3741 if (UNTAG_Bool(REGB1)) {
3742 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 282);
3743 }
3744 /* ../lib/standard/collection/array.nit:725 */
3745 fra.me.REG[0] = ((Nit_NativeArray)fra.me.REG[0])->val[UNTAG_Int(REGB0)];
3746 /* ../lib/standard/collection/array.nit:282 */
3747 goto label1;
3748 label1: while(0);
3749 /* ../lib/standard/collection/array.nit:532 */
3750 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
3751 if (UNTAG_Bool(REGB0)) {
3752 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 532);
3753 }
3754 fra.me.REG[0] = CALL_standard___collection___abstract_collection___Couple___second(fra.me.REG[0])(fra.me.REG[0]);
3755 goto label2;
3756 } else {
3757 /* ../lib/standard/collection/array.nit:534 */
3758 nit_abort("Aborted", NULL, LOCATE_standard___collection___array, 534);
3759 }
3760 label2: while(0);
3761 stack_frame_head = fra.me.prev;
3762 return fra.me.REG[0];
3763 }
3764 static const char LOCATE_standard___collection___array___ArrayMap_____braeq[] = "array::ArrayMap::(abstract_collection::Map::[]=)";
3765 void standard___collection___array___ArrayMap_____braeq(val_t p0, val_t p1, val_t p2){
3766 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
3767 val_t REGB0;
3768 val_t REGB1;
3769 val_t REGB2;
3770 val_t tmp;
3771 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3772 fra.me.file = LOCATE_standard___collection___array;
3773 fra.me.line = 538;
3774 fra.me.meth = LOCATE_standard___collection___array___ArrayMap_____braeq;
3775 fra.me.has_broke = 0;
3776 fra.me.REG_size = 4;
3777 fra.me.nitni_local_ref_head = NULL;
3778 fra.me.REG[0] = NIT_NULL;
3779 fra.me.REG[1] = NIT_NULL;
3780 fra.me.REG[2] = NIT_NULL;
3781 fra.me.REG[3] = NIT_NULL;
3782 fra.me.REG[0] = p0;
3783 fra.me.REG[1] = p1;
3784 fra.me.REG[2] = p2;
3785 /* ../lib/standard/collection/array.nit:541 */
3786 REGB0 = CALL_standard___collection___array___ArrayMap___index(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
3787 /* ../lib/standard/collection/array.nit:542 */
3788 REGB1 = TAG_Int(0);
3789 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
3790 if (UNTAG_Bool(REGB2)) {
3791 } else {
3792 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
3793 }
3794 /* ../lib/standard/kernel.nit:243 */
3795 REGB1 = TAG_Bool(UNTAG_Int(REGB0)>=UNTAG_Int(REGB1));
3796 /* ../lib/standard/collection/array.nit:542 */
3797 if (UNTAG_Bool(REGB1)) {
3798 /* ../lib/standard/collection/array.nit:543 */
3799 REGB1 = TAG_Bool(ATTR_standard___collection___array___ArrayMap____items(fra.me.REG[0])!=NIT_NULL);
3800 if (UNTAG_Bool(REGB1)) {
3801 } else {
3802 nit_abort("Uninitialized attribute %s", "_items", LOCATE_standard___collection___array, 543);
3803 }
3804 fra.me.REG[3] = ATTR_standard___collection___array___ArrayMap____items(fra.me.REG[0]);
3805 /* ../lib/standard/collection/array.nit:281 */
3806 REGB1 = TAG_Int(0);
3807 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
3808 if (UNTAG_Bool(REGB2)) {
3809 } else {
3810 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
3811 }
3812 /* ../lib/standard/kernel.nit:243 */
3813 REGB1 = TAG_Bool(UNTAG_Int(REGB0)>=UNTAG_Int(REGB1));
3814 /* ../lib/standard/collection/array.nit:281 */
3815 if (UNTAG_Bool(REGB1)) {
3816 REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[3])!=NIT_NULL);
3817 if (UNTAG_Bool(REGB1)) {
3818 } else {
3819 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 281);
3820 }
3821 REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[3]);
3822 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
3823 if (UNTAG_Bool(REGB2)) {
3824 } else {
3825 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
3826 }
3827 /* ../lib/standard/kernel.nit:242 */
3828 REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
3829 } else {
3830 /* ../lib/standard/collection/array.nit:281 */
3831 REGB2 = TAG_Bool(0);
3832 REGB1 = REGB2;
3833 }
3834 if (UNTAG_Bool(REGB1)) {
3835 } else {
3836 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 281);
3837 }
3838 /* ../lib/standard/collection/array.nit:282 */
3839 fra.me.REG[3] = ATTR_standard___collection___array___Array____items(fra.me.REG[3]);
3840 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
3841 if (UNTAG_Bool(REGB1)) {
3842 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 282);
3843 }
3844 /* ../lib/standard/collection/array.nit:725 */
3845 fra.me.REG[3] = ((Nit_NativeArray)fra.me.REG[3])->val[UNTAG_Int(REGB0)];
3846 /* ../lib/standard/collection/array.nit:282 */
3847 goto label1;
3848 label1: while(0);
3849 /* ../lib/standard/collection/array.nit:543 */
3850 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
3851 if (UNTAG_Bool(REGB0)) {
3852 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 543);
3853 }
3854 CALL_standard___collection___abstract_collection___Couple___second__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
3855 } else {
3856 /* ../lib/standard/collection/array.nit:545 */
3857 REGB0 = TAG_Bool(ATTR_standard___collection___array___ArrayMap____items(fra.me.REG[0])!=NIT_NULL);
3858 if (UNTAG_Bool(REGB0)) {
3859 } else {
3860 nit_abort("Uninitialized attribute %s", "_items", LOCATE_standard___collection___array, 545);
3861 }
3862 fra.me.REG[0] = ATTR_standard___collection___array___ArrayMap____items(fra.me.REG[0]);
3863 fra.me.REG[2] = NEW_Couple_standard___collection___abstract_collection___Couple___init(fra.me.REG[1], fra.me.REG[2]);
3864 CALL_standard___collection___abstract_collection___Sequence___push(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[2]);
3865 }
3866 stack_frame_head = fra.me.prev;
3867 return;
3868 }
3869 static const char LOCATE_standard___collection___array___ArrayMap___keys[] = "array::ArrayMap::(abstract_collection::MapRead::keys)";
3870 val_t standard___collection___array___ArrayMap___keys(val_t p0){
3871 struct {struct stack_frame_t me;} fra;
3872 val_t REGB0;
3873 val_t tmp;
3874 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3875 fra.me.file = LOCATE_standard___collection___array;
3876 fra.me.line = 549;
3877 fra.me.meth = LOCATE_standard___collection___array___ArrayMap___keys;
3878 fra.me.has_broke = 0;
3879 fra.me.REG_size = 1;
3880 fra.me.nitni_local_ref_head = NULL;
3881 fra.me.REG[0] = NIT_NULL;
3882 fra.me.REG[0] = p0;
3883 /* ../lib/standard/collection/array.nit:549 */
3884 REGB0 = TAG_Bool(ATTR_standard___collection___array___ArrayMap_____atkeys(fra.me.REG[0])!=NIT_NULL);
3885 if (UNTAG_Bool(REGB0)) {
3886 } else {
3887 nit_abort("Uninitialized attribute %s", "@keys", LOCATE_standard___collection___array, 549);
3888 }
3889 fra.me.REG[0] = ATTR_standard___collection___array___ArrayMap_____atkeys(fra.me.REG[0]);
3890 stack_frame_head = fra.me.prev;
3891 return fra.me.REG[0];
3892 }
3893 static const char LOCATE_standard___collection___array___ArrayMap___keys__eq[] = "array::ArrayMap::keys=";
3894 void standard___collection___array___ArrayMap___keys__eq(val_t p0, val_t p1){
3895 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
3896 val_t tmp;
3897 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3898 fra.me.file = LOCATE_standard___collection___array;
3899 fra.me.line = 549;
3900 fra.me.meth = LOCATE_standard___collection___array___ArrayMap___keys__eq;
3901 fra.me.has_broke = 0;
3902 fra.me.REG_size = 2;
3903 fra.me.nitni_local_ref_head = NULL;
3904 fra.me.REG[0] = NIT_NULL;
3905 fra.me.REG[1] = NIT_NULL;
3906 fra.me.REG[0] = p0;
3907 fra.me.REG[1] = p1;
3908 /* ../lib/standard/collection/array.nit:549 */
3909 ATTR_standard___collection___array___ArrayMap_____atkeys(fra.me.REG[0]) = fra.me.REG[1];
3910 stack_frame_head = fra.me.prev;
3911 return;
3912 }
3913 static const char LOCATE_standard___collection___array___ArrayMap___values[] = "array::ArrayMap::(abstract_collection::MapRead::values)";
3914 val_t standard___collection___array___ArrayMap___values(val_t p0){
3915 struct {struct stack_frame_t me;} fra;
3916 val_t REGB0;
3917 val_t tmp;
3918 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3919 fra.me.file = LOCATE_standard___collection___array;
3920 fra.me.line = 550;
3921 fra.me.meth = LOCATE_standard___collection___array___ArrayMap___values;
3922 fra.me.has_broke = 0;
3923 fra.me.REG_size = 1;
3924 fra.me.nitni_local_ref_head = NULL;
3925 fra.me.REG[0] = NIT_NULL;
3926 fra.me.REG[0] = p0;
3927 /* ../lib/standard/collection/array.nit:550 */
3928 REGB0 = TAG_Bool(ATTR_standard___collection___array___ArrayMap_____atvalues(fra.me.REG[0])!=NIT_NULL);
3929 if (UNTAG_Bool(REGB0)) {
3930 } else {
3931 nit_abort("Uninitialized attribute %s", "@values", LOCATE_standard___collection___array, 550);
3932 }
3933 fra.me.REG[0] = ATTR_standard___collection___array___ArrayMap_____atvalues(fra.me.REG[0]);
3934 stack_frame_head = fra.me.prev;
3935 return fra.me.REG[0];
3936 }
3937 static const char LOCATE_standard___collection___array___ArrayMap___values__eq[] = "array::ArrayMap::values=";
3938 void standard___collection___array___ArrayMap___values__eq(val_t p0, val_t p1){
3939 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
3940 val_t tmp;
3941 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3942 fra.me.file = LOCATE_standard___collection___array;
3943 fra.me.line = 550;
3944 fra.me.meth = LOCATE_standard___collection___array___ArrayMap___values__eq;
3945 fra.me.has_broke = 0;
3946 fra.me.REG_size = 2;
3947 fra.me.nitni_local_ref_head = NULL;
3948 fra.me.REG[0] = NIT_NULL;
3949 fra.me.REG[1] = NIT_NULL;
3950 fra.me.REG[0] = p0;
3951 fra.me.REG[1] = p1;
3952 /* ../lib/standard/collection/array.nit:550 */
3953 ATTR_standard___collection___array___ArrayMap_____atvalues(fra.me.REG[0]) = fra.me.REG[1];
3954 stack_frame_head = fra.me.prev;
3955 return;
3956 }
3957 static const char LOCATE_standard___collection___array___ArrayMap___length[] = "array::ArrayMap::(abstract_collection::MapRead::length)";
3958 val_t standard___collection___array___ArrayMap___length(val_t p0){
3959 struct {struct stack_frame_t me;} fra;
3960 val_t REGB0;
3961 val_t tmp;
3962 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3963 fra.me.file = LOCATE_standard___collection___array;
3964 fra.me.line = 552;
3965 fra.me.meth = LOCATE_standard___collection___array___ArrayMap___length;
3966 fra.me.has_broke = 0;
3967 fra.me.REG_size = 1;
3968 fra.me.nitni_local_ref_head = NULL;
3969 fra.me.REG[0] = NIT_NULL;
3970 fra.me.REG[0] = p0;
3971 /* ../lib/standard/collection/array.nit:553 */
3972 REGB0 = TAG_Bool(ATTR_standard___collection___array___ArrayMap____items(fra.me.REG[0])!=NIT_NULL);
3973 if (UNTAG_Bool(REGB0)) {
3974 } else {
3975 nit_abort("Uninitialized attribute %s", "_items", LOCATE_standard___collection___array, 553);
3976 }
3977 fra.me.REG[0] = ATTR_standard___collection___array___ArrayMap____items(fra.me.REG[0]);
3978 /* ../lib/standard/collection/array.nit:24 */
3979 REGB0 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
3980 if (UNTAG_Bool(REGB0)) {
3981 } else {
3982 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
3983 }
3984 REGB0 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0]);
3985 /* ../lib/standard/collection/array.nit:553 */
3986 goto label1;
3987 label1: while(0);
3988 stack_frame_head = fra.me.prev;
3989 return REGB0;
3990 }
3991 static const char LOCATE_standard___collection___array___ArrayMap___iterator[] = "array::ArrayMap::(abstract_collection::MapRead::iterator)";
3992 val_t standard___collection___array___ArrayMap___iterator(val_t p0){
3993 struct {struct stack_frame_t me;} fra;
3994 val_t REGB0;
3995 val_t tmp;
3996 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3997 fra.me.file = LOCATE_standard___collection___array;
3998 fra.me.line = 555;
3999 fra.me.meth = LOCATE_standard___collection___array___ArrayMap___iterator;
4000 fra.me.has_broke = 0;
4001 fra.me.REG_size = 1;
4002 fra.me.nitni_local_ref_head = NULL;
4003 fra.me.REG[0] = NIT_NULL;
4004 fra.me.REG[0] = p0;
4005 /* ../lib/standard/collection/array.nit:555 */
4006 REGB0 = TAG_Bool(ATTR_standard___collection___array___ArrayMap____items(fra.me.REG[0])!=NIT_NULL);
4007 if (UNTAG_Bool(REGB0)) {
4008 } else {
4009 nit_abort("Uninitialized attribute %s", "_items", LOCATE_standard___collection___array, 555);
4010 }
4011 fra.me.REG[0] = ATTR_standard___collection___array___ArrayMap____items(fra.me.REG[0]);
4012 fra.me.REG[0] = CALL_standard___collection___abstract_collection___Collection___iterator(fra.me.REG[0])(fra.me.REG[0]);
4013 fra.me.REG[0] = NEW_CoupleMapIterator_standard___collection___abstract_collection___CoupleMapIterator___init(fra.me.REG[0]);
4014 goto label1;
4015 label1: while(0);
4016 stack_frame_head = fra.me.prev;
4017 return fra.me.REG[0];
4018 }
4019 static const char LOCATE_standard___collection___array___ArrayMap___is_empty[] = "array::ArrayMap::(abstract_collection::MapRead::is_empty)";
4020 val_t standard___collection___array___ArrayMap___is_empty(val_t p0){
4021 struct {struct stack_frame_t me;} fra;
4022 val_t REGB0;
4023 val_t tmp;
4024 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4025 fra.me.file = LOCATE_standard___collection___array;
4026 fra.me.line = 557;
4027 fra.me.meth = LOCATE_standard___collection___array___ArrayMap___is_empty;
4028 fra.me.has_broke = 0;
4029 fra.me.REG_size = 1;
4030 fra.me.nitni_local_ref_head = NULL;
4031 fra.me.REG[0] = NIT_NULL;
4032 fra.me.REG[0] = p0;
4033 /* ../lib/standard/collection/array.nit:557 */
4034 REGB0 = TAG_Bool(ATTR_standard___collection___array___ArrayMap____items(fra.me.REG[0])!=NIT_NULL);
4035 if (UNTAG_Bool(REGB0)) {
4036 } else {
4037 nit_abort("Uninitialized attribute %s", "_items", LOCATE_standard___collection___array, 557);
4038 }
4039 fra.me.REG[0] = ATTR_standard___collection___array___ArrayMap____items(fra.me.REG[0]);
4040 REGB0 = CALL_standard___collection___abstract_collection___Collection___is_empty(fra.me.REG[0])(fra.me.REG[0]);
4041 goto label1;
4042 label1: while(0);
4043 stack_frame_head = fra.me.prev;
4044 return REGB0;
4045 }
4046 static const char LOCATE_standard___collection___array___ArrayMap___clear[] = "array::ArrayMap::(abstract_collection::Map::clear)";
4047 void standard___collection___array___ArrayMap___clear(val_t p0){
4048 struct {struct stack_frame_t me;} fra;
4049 val_t REGB0;
4050 val_t tmp;
4051 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4052 fra.me.file = LOCATE_standard___collection___array;
4053 fra.me.line = 559;
4054 fra.me.meth = LOCATE_standard___collection___array___ArrayMap___clear;
4055 fra.me.has_broke = 0;
4056 fra.me.REG_size = 1;
4057 fra.me.nitni_local_ref_head = NULL;
4058 fra.me.REG[0] = NIT_NULL;
4059 fra.me.REG[0] = p0;
4060 /* ../lib/standard/collection/array.nit:559 */
4061 REGB0 = TAG_Bool(ATTR_standard___collection___array___ArrayMap____items(fra.me.REG[0])!=NIT_NULL);
4062 if (UNTAG_Bool(REGB0)) {
4063 } else {
4064 nit_abort("Uninitialized attribute %s", "_items", LOCATE_standard___collection___array, 559);
4065 }
4066 fra.me.REG[0] = ATTR_standard___collection___array___ArrayMap____items(fra.me.REG[0]);
4067 CALL_standard___collection___abstract_collection___RemovableCollection___clear(fra.me.REG[0])(fra.me.REG[0]);
4068 stack_frame_head = fra.me.prev;
4069 return;
4070 }
4071 static const char LOCATE_standard___collection___array___ArrayMap___enlarge[] = "array::ArrayMap::enlarge";
4072 void standard___collection___array___ArrayMap___enlarge(val_t p0, val_t p1){
4073 struct {struct stack_frame_t me;} fra;
4074 val_t REGB0;
4075 val_t REGB1;
4076 val_t tmp;
4077 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4078 fra.me.file = LOCATE_standard___collection___array;
4079 fra.me.line = 561;
4080 fra.me.meth = LOCATE_standard___collection___array___ArrayMap___enlarge;
4081 fra.me.has_broke = 0;
4082 fra.me.REG_size = 1;
4083 fra.me.nitni_local_ref_head = NULL;
4084 fra.me.REG[0] = NIT_NULL;
4085 fra.me.REG[0] = p0;
4086 REGB0 = p1;
4087 /* ../lib/standard/collection/array.nit:562 */
4088 REGB1 = TAG_Bool(ATTR_standard___collection___array___ArrayMap____items(fra.me.REG[0])!=NIT_NULL);
4089 if (UNTAG_Bool(REGB1)) {
4090 } else {
4091 nit_abort("Uninitialized attribute %s", "_items", LOCATE_standard___collection___array, 562);
4092 }
4093 fra.me.REG[0] = ATTR_standard___collection___array___ArrayMap____items(fra.me.REG[0]);
4094 CALL_standard___collection___array___AbstractArray___enlarge(fra.me.REG[0])(fra.me.REG[0], REGB0);
4095 stack_frame_head = fra.me.prev;
4096 return;
4097 }
4098 static const char LOCATE_standard___collection___array___ArrayMap___couple_at[] = "array::ArrayMap::(abstract_collection::CoupleMap::couple_at)";
4099 val_t standard___collection___array___ArrayMap___couple_at(val_t p0, val_t p1){
4100 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
4101 val_t REGB0;
4102 val_t REGB1;
4103 val_t REGB2;
4104 val_t tmp;
4105 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4106 fra.me.file = LOCATE_standard___collection___array;
4107 fra.me.line = 564;
4108 fra.me.meth = LOCATE_standard___collection___array___ArrayMap___couple_at;
4109 fra.me.has_broke = 0;
4110 fra.me.REG_size = 2;
4111 fra.me.nitni_local_ref_head = NULL;
4112 fra.me.REG[0] = NIT_NULL;
4113 fra.me.REG[1] = NIT_NULL;
4114 fra.me.REG[0] = p0;
4115 fra.me.REG[1] = p1;
4116 /* ../lib/standard/collection/array.nit:566 */
4117 REGB0 = CALL_standard___collection___array___ArrayMap___index(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
4118 /* ../lib/standard/collection/array.nit:567 */
4119 REGB1 = TAG_Int(0);
4120 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
4121 if (UNTAG_Bool(REGB2)) {
4122 } else {
4123 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
4124 }
4125 /* ../lib/standard/kernel.nit:243 */
4126 REGB1 = TAG_Bool(UNTAG_Int(REGB0)>=UNTAG_Int(REGB1));
4127 /* ../lib/standard/collection/array.nit:567 */
4128 if (UNTAG_Bool(REGB1)) {
4129 /* ../lib/standard/collection/array.nit:568 */
4130 REGB1 = TAG_Bool(ATTR_standard___collection___array___ArrayMap____items(fra.me.REG[0])!=NIT_NULL);
4131 if (UNTAG_Bool(REGB1)) {
4132 } else {
4133 nit_abort("Uninitialized attribute %s", "_items", LOCATE_standard___collection___array, 568);
4134 }
4135 fra.me.REG[0] = ATTR_standard___collection___array___ArrayMap____items(fra.me.REG[0]);
4136 /* ../lib/standard/collection/array.nit:281 */
4137 REGB1 = TAG_Int(0);
4138 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
4139 if (UNTAG_Bool(REGB2)) {
4140 } else {
4141 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
4142 }
4143 /* ../lib/standard/kernel.nit:243 */
4144 REGB1 = TAG_Bool(UNTAG_Int(REGB0)>=UNTAG_Int(REGB1));
4145 /* ../lib/standard/collection/array.nit:281 */
4146 if (UNTAG_Bool(REGB1)) {
4147 REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
4148 if (UNTAG_Bool(REGB1)) {
4149 } else {
4150 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 281);
4151 }
4152 REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0]);
4153 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
4154 if (UNTAG_Bool(REGB2)) {
4155 } else {
4156 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
4157 }
4158 /* ../lib/standard/kernel.nit:242 */
4159 REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
4160 } else {
4161 /* ../lib/standard/collection/array.nit:281 */
4162 REGB2 = TAG_Bool(0);
4163 REGB1 = REGB2;
4164 }
4165 if (UNTAG_Bool(REGB1)) {
4166 } else {
4167 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 281);
4168 }
4169 /* ../lib/standard/collection/array.nit:282 */
4170 fra.me.REG[0] = ATTR_standard___collection___array___Array____items(fra.me.REG[0]);
4171 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
4172 if (UNTAG_Bool(REGB1)) {
4173 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 282);
4174 }
4175 /* ../lib/standard/collection/array.nit:725 */
4176 fra.me.REG[0] = ((Nit_NativeArray)fra.me.REG[0])->val[UNTAG_Int(REGB0)];
4177 /* ../lib/standard/collection/array.nit:282 */
4178 goto label1;
4179 label1: while(0);
4180 /* ../lib/standard/collection/array.nit:568 */
4181 goto label2;
4182 } else {
4183 /* ../lib/standard/collection/array.nit:570 */
4184 fra.me.REG[0] = NIT_NULL;
4185 goto label2;
4186 }
4187 label2: while(0);
4188 stack_frame_head = fra.me.prev;
4189 return fra.me.REG[0];
4190 }
4191 static const char LOCATE_standard___collection___array___ArrayMap___remove_at_index[] = "array::ArrayMap::remove_at_index";
4192 void standard___collection___array___ArrayMap___remove_at_index(val_t p0, val_t p1){
4193 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
4194 val_t REGB0;
4195 val_t REGB1;
4196 val_t tmp;
4197 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4198 fra.me.file = LOCATE_standard___collection___array;
4199 fra.me.line = 577;
4200 fra.me.meth = LOCATE_standard___collection___array___ArrayMap___remove_at_index;
4201 fra.me.has_broke = 0;
4202 fra.me.REG_size = 3;
4203 fra.me.nitni_local_ref_head = NULL;
4204 fra.me.REG[0] = NIT_NULL;
4205 fra.me.REG[1] = NIT_NULL;
4206 fra.me.REG[2] = NIT_NULL;
4207 fra.me.REG[0] = p0;
4208 REGB0 = p1;
4209 /* ../lib/standard/collection/array.nit:580 */
4210 REGB1 = TAG_Bool(ATTR_standard___collection___array___ArrayMap____items(fra.me.REG[0])!=NIT_NULL);
4211 if (UNTAG_Bool(REGB1)) {
4212 } else {
4213 nit_abort("Uninitialized attribute %s", "_items", LOCATE_standard___collection___array, 580);
4214 }
4215 fra.me.REG[1] = ATTR_standard___collection___array___ArrayMap____items(fra.me.REG[0]);
4216 REGB1 = TAG_Bool(ATTR_standard___collection___array___ArrayMap____items(fra.me.REG[0])!=NIT_NULL);
4217 if (UNTAG_Bool(REGB1)) {
4218 } else {
4219 nit_abort("Uninitialized attribute %s", "_items", LOCATE_standard___collection___array, 580);
4220 }
4221 fra.me.REG[2] = ATTR_standard___collection___array___ArrayMap____items(fra.me.REG[0]);
4222 fra.me.REG[2] = CALL_standard___collection___abstract_collection___SequenceRead___last(fra.me.REG[2])(fra.me.REG[2]);
4223 CALL_standard___collection___abstract_collection___Sequence_____braeq(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
4224 /* ../lib/standard/collection/array.nit:581 */
4225 REGB0 = TAG_Bool(ATTR_standard___collection___array___ArrayMap____items(fra.me.REG[0])!=NIT_NULL);
4226 if (UNTAG_Bool(REGB0)) {
4227 } else {
4228 nit_abort("Uninitialized attribute %s", "_items", LOCATE_standard___collection___array, 581);
4229 }
4230 fra.me.REG[0] = ATTR_standard___collection___array___ArrayMap____items(fra.me.REG[0]);
4231 CALL_standard___collection___abstract_collection___Sequence___pop(fra.me.REG[0])(fra.me.REG[0]);
4232 stack_frame_head = fra.me.prev;
4233 return;
4234 }
4235 static const char LOCATE_standard___collection___array___ArrayMap___index[] = "array::ArrayMap::index";
4236 val_t standard___collection___array___ArrayMap___index(val_t p0, val_t p1){
4237 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
4238 val_t REGB0;
4239 val_t REGB1;
4240 val_t REGB2;
4241 val_t REGB3;
4242 val_t REGB4;
4243 val_t tmp;
4244 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4245 fra.me.file = LOCATE_standard___collection___array;
4246 fra.me.line = 587;
4247 fra.me.meth = LOCATE_standard___collection___array___ArrayMap___index;
4248 fra.me.has_broke = 0;
4249 fra.me.REG_size = 3;
4250 fra.me.nitni_local_ref_head = NULL;
4251 fra.me.REG[0] = NIT_NULL;
4252 fra.me.REG[1] = NIT_NULL;
4253 fra.me.REG[2] = NIT_NULL;
4254 fra.me.REG[0] = p0;
4255 fra.me.REG[1] = p1;
4256 /* ../lib/standard/collection/array.nit:591 */
4257 REGB0 = TAG_Bool(ATTR_standard___collection___array___ArrayMap____last_index(fra.me.REG[0])!=NIT_NULL);
4258 if (UNTAG_Bool(REGB0)) {
4259 } else {
4260 nit_abort("Uninitialized attribute %s", "_last_index", LOCATE_standard___collection___array, 591);
4261 }
4262 REGB0 = ATTR_standard___collection___array___ArrayMap____last_index(fra.me.REG[0]);
4263 /* ../lib/standard/collection/array.nit:592 */
4264 REGB1 = TAG_Bool(ATTR_standard___collection___array___ArrayMap____items(fra.me.REG[0])!=NIT_NULL);
4265 if (UNTAG_Bool(REGB1)) {
4266 } else {
4267 nit_abort("Uninitialized attribute %s", "_items", LOCATE_standard___collection___array, 592);
4268 }
4269 fra.me.REG[2] = ATTR_standard___collection___array___ArrayMap____items(fra.me.REG[0]);
4270 /* ../lib/standard/collection/array.nit:24 */
4271 REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
4272 if (UNTAG_Bool(REGB1)) {
4273 } else {
4274 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
4275 }
4276 REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2]);
4277 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
4278 if (UNTAG_Bool(REGB2)) {
4279 } else {
4280 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
4281 }
4282 /* ../lib/standard/kernel.nit:242 */
4283 REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
4284 /* ../lib/standard/collection/array.nit:592 */
4285 if (UNTAG_Bool(REGB1)) {
4286 REGB1 = TAG_Bool(ATTR_standard___collection___array___ArrayMap____items(fra.me.REG[0])!=NIT_NULL);
4287 if (UNTAG_Bool(REGB1)) {
4288 } else {
4289 nit_abort("Uninitialized attribute %s", "_items", LOCATE_standard___collection___array, 592);
4290 }
4291 fra.me.REG[2] = ATTR_standard___collection___array___ArrayMap____items(fra.me.REG[0]);
4292 /* ../lib/standard/collection/array.nit:279 */
4293 REGB1 = REGB0;
4294 /* ../lib/standard/collection/array.nit:281 */
4295 REGB2 = TAG_Int(0);
4296 REGB3 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
4297 if (UNTAG_Bool(REGB3)) {
4298 } else {
4299 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
4300 }
4301 /* ../lib/standard/kernel.nit:243 */
4302 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
4303 /* ../lib/standard/collection/array.nit:281 */
4304 if (UNTAG_Bool(REGB2)) {
4305 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
4306 if (UNTAG_Bool(REGB2)) {
4307 } else {
4308 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 281);
4309 }
4310 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2]);
4311 REGB3 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
4312 if (UNTAG_Bool(REGB3)) {
4313 } else {
4314 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
4315 }
4316 /* ../lib/standard/kernel.nit:242 */
4317 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
4318 } else {
4319 /* ../lib/standard/collection/array.nit:281 */
4320 REGB3 = TAG_Bool(0);
4321 REGB2 = REGB3;
4322 }
4323 if (UNTAG_Bool(REGB2)) {
4324 } else {
4325 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 281);
4326 }
4327 /* ../lib/standard/collection/array.nit:282 */
4328 fra.me.REG[2] = ATTR_standard___collection___array___Array____items(fra.me.REG[2]);
4329 REGB2 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
4330 if (UNTAG_Bool(REGB2)) {
4331 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 282);
4332 }
4333 /* ../lib/standard/collection/array.nit:725 */
4334 fra.me.REG[2] = ((Nit_NativeArray)fra.me.REG[2])->val[UNTAG_Int(REGB1)];
4335 /* ../lib/standard/collection/array.nit:282 */
4336 goto label1;
4337 label1: while(0);
4338 /* ../lib/standard/collection/array.nit:592 */
4339 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
4340 if (UNTAG_Bool(REGB1)) {
4341 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 592);
4342 }
4343 fra.me.REG[2] = CALL_standard___collection___abstract_collection___Couple___first(fra.me.REG[2])(fra.me.REG[2]);
4344 REGB1 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[2]));
4345 if (UNTAG_Bool(REGB1)) {
4346 } else {
4347 REGB2 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
4348 if (UNTAG_Bool(REGB2)) {
4349 REGB2 = TAG_Bool(0);
4350 REGB1 = REGB2;
4351 } else {
4352 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
4353 REGB1 = REGB2;
4354 }
4355 }
4356 } else {
4357 REGB2 = TAG_Bool(0);
4358 REGB1 = REGB2;
4359 }
4360 if (UNTAG_Bool(REGB1)) {
4361 goto label2;
4362 }
4363 /* ../lib/standard/collection/array.nit:594 */
4364 REGB1 = TAG_Int(0);
4365 /* ../lib/standard/collection/array.nit:595 */
4366 while(1) {
4367 REGB2 = TAG_Bool(ATTR_standard___collection___array___ArrayMap____items(fra.me.REG[0])!=NIT_NULL);
4368 if (UNTAG_Bool(REGB2)) {
4369 } else {
4370 nit_abort("Uninitialized attribute %s", "_items", LOCATE_standard___collection___array, 595);
4371 }
4372 fra.me.REG[2] = ATTR_standard___collection___array___ArrayMap____items(fra.me.REG[0]);
4373 /* ../lib/standard/collection/array.nit:24 */
4374 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
4375 if (UNTAG_Bool(REGB2)) {
4376 } else {
4377 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
4378 }
4379 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2]);
4380 REGB3 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
4381 if (UNTAG_Bool(REGB3)) {
4382 } else {
4383 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
4384 }
4385 /* ../lib/standard/kernel.nit:242 */
4386 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
4387 /* ../lib/standard/collection/array.nit:595 */
4388 if (UNTAG_Bool(REGB2)) {
4389 /* ../lib/standard/collection/array.nit:596 */
4390 REGB2 = TAG_Bool(ATTR_standard___collection___array___ArrayMap____items(fra.me.REG[0])!=NIT_NULL);
4391 if (UNTAG_Bool(REGB2)) {
4392 } else {
4393 nit_abort("Uninitialized attribute %s", "_items", LOCATE_standard___collection___array, 596);
4394 }
4395 fra.me.REG[2] = ATTR_standard___collection___array___ArrayMap____items(fra.me.REG[0]);
4396 /* ../lib/standard/collection/array.nit:279 */
4397 REGB2 = REGB1;
4398 /* ../lib/standard/collection/array.nit:281 */
4399 REGB3 = TAG_Int(0);
4400 REGB4 = TAG_Bool(VAL_ISA(REGB3, VTCOLOR_standard___kernel___Comparable___OTHER(REGB2), VTID_standard___kernel___Comparable___OTHER(REGB2))) /*cast OTHER*/;
4401 if (UNTAG_Bool(REGB4)) {
4402 } else {
4403 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
4404 }
4405 /* ../lib/standard/kernel.nit:243 */
4406 REGB3 = TAG_Bool(UNTAG_Int(REGB2)>=UNTAG_Int(REGB3));
4407 /* ../lib/standard/collection/array.nit:281 */
4408 if (UNTAG_Bool(REGB3)) {
4409 REGB3 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
4410 if (UNTAG_Bool(REGB3)) {
4411 } else {
4412 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 281);
4413 }
4414 REGB3 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2]);
4415 REGB4 = TAG_Bool(VAL_ISA(REGB3, VTCOLOR_standard___kernel___Comparable___OTHER(REGB2), VTID_standard___kernel___Comparable___OTHER(REGB2))) /*cast OTHER*/;
4416 if (UNTAG_Bool(REGB4)) {
4417 } else {
4418 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
4419 }
4420 /* ../lib/standard/kernel.nit:242 */
4421 REGB3 = TAG_Bool(UNTAG_Int(REGB2)<UNTAG_Int(REGB3));
4422 } else {
4423 /* ../lib/standard/collection/array.nit:281 */
4424 REGB4 = TAG_Bool(0);
4425 REGB3 = REGB4;
4426 }
4427 if (UNTAG_Bool(REGB3)) {
4428 } else {
4429 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 281);
4430 }
4431 /* ../lib/standard/collection/array.nit:282 */
4432 fra.me.REG[2] = ATTR_standard___collection___array___Array____items(fra.me.REG[2]);
4433 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
4434 if (UNTAG_Bool(REGB3)) {
4435 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 282);
4436 }
4437 /* ../lib/standard/collection/array.nit:725 */
4438 fra.me.REG[2] = ((Nit_NativeArray)fra.me.REG[2])->val[UNTAG_Int(REGB2)];
4439 /* ../lib/standard/collection/array.nit:282 */
4440 goto label3;
4441 label3: while(0);
4442 /* ../lib/standard/collection/array.nit:596 */
4443 REGB2 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
4444 if (UNTAG_Bool(REGB2)) {
4445 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 596);
4446 }
4447 fra.me.REG[2] = CALL_standard___collection___abstract_collection___Couple___first(fra.me.REG[2])(fra.me.REG[2]);
4448 REGB2 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[2]));
4449 if (UNTAG_Bool(REGB2)) {
4450 } else {
4451 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
4452 if (UNTAG_Bool(REGB3)) {
4453 REGB3 = TAG_Bool(0);
4454 REGB2 = REGB3;
4455 } else {
4456 REGB3 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
4457 REGB2 = REGB3;
4458 }
4459 }
4460 if (UNTAG_Bool(REGB2)) {
4461 /* ../lib/standard/collection/array.nit:597 */
4462 ATTR_standard___collection___array___ArrayMap____last_index(fra.me.REG[0]) = REGB1;
4463 /* ../lib/standard/collection/array.nit:598 */
4464 REGB0 = REGB1;
4465 goto label2;
4466 }
4467 /* ../lib/standard/collection/array.nit:600 */
4468 REGB2 = TAG_Int(1);
4469 /* ../lib/standard/kernel.nit:245 */
4470 REGB2 = TAG_Int(UNTAG_Int(REGB1)+UNTAG_Int(REGB2));
4471 /* ../lib/standard/collection/array.nit:600 */
4472 REGB1 = REGB2;
4473 } else {
4474 /* ../lib/standard/collection/array.nit:595 */
4475 goto label4;
4476 }
4477 }
4478 label4: while(0);
4479 /* ../lib/standard/collection/array.nit:602 */
4480 REGB1 = TAG_Int(1);
4481 /* ../lib/standard/kernel.nit:246 */
4482 REGB1 = TAG_Int(-UNTAG_Int(REGB1));
4483 /* ../lib/standard/collection/array.nit:602 */
4484 REGB0 = REGB1;
4485 goto label2;
4486 label2: while(0);
4487 stack_frame_head = fra.me.prev;
4488 return REGB0;
4489 }
4490 static const char LOCATE_standard___collection___array___ArrayMap___init[] = "array::ArrayMap::init";
4491 void standard___collection___array___ArrayMap___init(val_t p0, int* init_table){
4492 int itpos11 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_standard___collection___array___ArrayMap].i;
4493 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
4494 val_t tmp;
4495 if (init_table[itpos11]) return;
4496 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4497 fra.me.file = LOCATE_standard___collection___array;
4498 fra.me.line = 605;
4499 fra.me.meth = LOCATE_standard___collection___array___ArrayMap___init;
4500 fra.me.has_broke = 0;
4501 fra.me.REG_size = 2;
4502 fra.me.nitni_local_ref_head = NULL;
4503 fra.me.REG[0] = NIT_NULL;
4504 fra.me.REG[1] = NIT_NULL;
4505 fra.me.REG[0] = p0;
4506 /* ../lib/standard/collection/array.nit:608 */
4507 fra.me.REG[1] = NEW_Array_standard___collection___array___Array___init();
4508 ATTR_standard___collection___array___ArrayMap____items(fra.me.REG[0]) = fra.me.REG[1];
4509 stack_frame_head = fra.me.prev;
4510 init_table[itpos11] = 1;
4511 return;
4512 }
4513 static const char LOCATE_standard___collection___array___ArrayMapKeys___map[] = "array::ArrayMapKeys::map";
4514 val_t standard___collection___array___ArrayMapKeys___map(val_t p0){
4515 struct {struct stack_frame_t me;} fra;
4516 val_t REGB0;
4517 val_t tmp;
4518 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4519 fra.me.file = LOCATE_standard___collection___array;
4520 fra.me.line = 614;
4521 fra.me.meth = LOCATE_standard___collection___array___ArrayMapKeys___map;
4522 fra.me.has_broke = 0;
4523 fra.me.REG_size = 1;
4524 fra.me.nitni_local_ref_head = NULL;
4525 fra.me.REG[0] = NIT_NULL;
4526 fra.me.REG[0] = p0;
4527 /* ../lib/standard/collection/array.nit:614 */
4528 REGB0 = TAG_Bool(ATTR_standard___collection___array___ArrayMapKeys_____atmap(fra.me.REG[0])!=NIT_NULL);
4529 if (UNTAG_Bool(REGB0)) {
4530 } else {
4531 nit_abort("Uninitialized attribute %s", "@map", LOCATE_standard___collection___array, 614);
4532 }
4533 fra.me.REG[0] = ATTR_standard___collection___array___ArrayMapKeys_____atmap(fra.me.REG[0]);
4534 stack_frame_head = fra.me.prev;
4535 return fra.me.REG[0];
4536 }
4537 static const char LOCATE_standard___collection___array___ArrayMapKeys___map__eq[] = "array::ArrayMapKeys::map=";
4538 void standard___collection___array___ArrayMapKeys___map__eq(val_t p0, val_t p1){
4539 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
4540 val_t tmp;
4541 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4542 fra.me.file = LOCATE_standard___collection___array;
4543 fra.me.line = 614;
4544 fra.me.meth = LOCATE_standard___collection___array___ArrayMapKeys___map__eq;
4545 fra.me.has_broke = 0;
4546 fra.me.REG_size = 2;
4547 fra.me.nitni_local_ref_head = NULL;
4548 fra.me.REG[0] = NIT_NULL;
4549 fra.me.REG[1] = NIT_NULL;
4550 fra.me.REG[0] = p0;
4551 fra.me.REG[1] = p1;
4552 /* ../lib/standard/collection/array.nit:614 */
4553 ATTR_standard___collection___array___ArrayMapKeys_____atmap(fra.me.REG[0]) = fra.me.REG[1];
4554 stack_frame_head = fra.me.prev;
4555 return;
4556 }
4557 static const char LOCATE_standard___collection___array___ArrayMapKeys___count[] = "array::ArrayMapKeys::(abstract_collection::Collection::count)";
4558 val_t standard___collection___array___ArrayMapKeys___count(val_t p0, val_t p1){
4559 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
4560 val_t REGB0;
4561 val_t REGB1;
4562 val_t tmp;
4563 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4564 fra.me.file = LOCATE_standard___collection___array;
4565 fra.me.line = 616;
4566 fra.me.meth = LOCATE_standard___collection___array___ArrayMapKeys___count;
4567 fra.me.has_broke = 0;
4568 fra.me.REG_size = 2;
4569 fra.me.nitni_local_ref_head = NULL;
4570 fra.me.REG[0] = NIT_NULL;
4571 fra.me.REG[1] = NIT_NULL;
4572 fra.me.REG[0] = p0;
4573 fra.me.REG[1] = p1;
4574 /* ../lib/standard/collection/array.nit:616 */
4575 REGB0 = CALL_standard___collection___abstract_collection___Collection___has(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
4576 if (UNTAG_Bool(REGB0)) {
4577 REGB0 = TAG_Int(1);
4578 goto label1;
4579 } else {
4580 REGB1 = TAG_Int(0);
4581 REGB0 = REGB1;
4582 goto label1;
4583 }
4584 label1: while(0);
4585 stack_frame_head = fra.me.prev;
4586 return REGB0;
4587 }
4588 static const char LOCATE_standard___collection___array___ArrayMapKeys___first[] = "array::ArrayMapKeys::(abstract_collection::Collection::first)";
4589 val_t standard___collection___array___ArrayMapKeys___first(val_t p0){
4590 struct {struct stack_frame_t me;} fra;
4591 val_t REGB0;
4592 val_t tmp;
4593 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4594 fra.me.file = LOCATE_standard___collection___array;
4595 fra.me.line = 617;
4596 fra.me.meth = LOCATE_standard___collection___array___ArrayMapKeys___first;
4597 fra.me.has_broke = 0;
4598 fra.me.REG_size = 1;
4599 fra.me.nitni_local_ref_head = NULL;
4600 fra.me.REG[0] = NIT_NULL;
4601 fra.me.REG[0] = p0;
4602 /* ../lib/standard/collection/array.nit:617 */
4603 fra.me.REG[0] = CALL_standard___collection___array___ArrayMapKeys___map(fra.me.REG[0])(fra.me.REG[0]);
4604 REGB0 = TAG_Bool(ATTR_standard___collection___array___ArrayMap____items(fra.me.REG[0])!=NIT_NULL);
4605 if (UNTAG_Bool(REGB0)) {
4606 } else {
4607 nit_abort("Uninitialized attribute %s", "_items", LOCATE_standard___collection___array, 617);
4608 }
4609 fra.me.REG[0] = ATTR_standard___collection___array___ArrayMap____items(fra.me.REG[0]);
4610 fra.me.REG[0] = CALL_standard___collection___abstract_collection___Collection___first(fra.me.REG[0])(fra.me.REG[0]);
4611 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
4612 if (UNTAG_Bool(REGB0)) {
4613 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 617);
4614 }
4615 fra.me.REG[0] = CALL_standard___collection___abstract_collection___Couple___first(fra.me.REG[0])(fra.me.REG[0]);
4616 goto label1;
4617 label1: while(0);
4618 stack_frame_head = fra.me.prev;
4619 return fra.me.REG[0];
4620 }
4621 static const char LOCATE_standard___collection___array___ArrayMapKeys___has[] = "array::ArrayMapKeys::(abstract_collection::Collection::has)";
4622 val_t standard___collection___array___ArrayMapKeys___has(val_t p0, val_t p1){
4623 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
4624 val_t REGB0;
4625 val_t REGB1;
4626 val_t REGB2;
4627 val_t tmp;
4628 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4629 fra.me.file = LOCATE_standard___collection___array;
4630 fra.me.line = 618;
4631 fra.me.meth = LOCATE_standard___collection___array___ArrayMapKeys___has;
4632 fra.me.has_broke = 0;
4633 fra.me.REG_size = 2;
4634 fra.me.nitni_local_ref_head = NULL;
4635 fra.me.REG[0] = NIT_NULL;
4636 fra.me.REG[1] = NIT_NULL;
4637 fra.me.REG[0] = p0;
4638 fra.me.REG[1] = p1;
4639 /* ../lib/standard/collection/array.nit:618 */
4640 fra.me.REG[0] = CALL_standard___collection___array___ArrayMapKeys___map(fra.me.REG[0])(fra.me.REG[0]);
4641 REGB0 = CALL_standard___collection___array___ArrayMap___index(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
4642 REGB1 = TAG_Int(0);
4643 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
4644 if (UNTAG_Bool(REGB2)) {
4645 } else {
4646 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
4647 }
4648 /* ../lib/standard/kernel.nit:243 */
4649 REGB1 = TAG_Bool(UNTAG_Int(REGB0)>=UNTAG_Int(REGB1));
4650 /* ../lib/standard/collection/array.nit:618 */
4651 goto label1;
4652 label1: while(0);
4653 stack_frame_head = fra.me.prev;
4654 return REGB1;
4655 }
4656 static const char LOCATE_standard___collection___array___ArrayMapKeys___has_only[] = "array::ArrayMapKeys::(abstract_collection::Collection::has_only)";
4657 val_t standard___collection___array___ArrayMapKeys___has_only(val_t p0, val_t p1){
4658 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
4659 val_t REGB0;
4660 val_t REGB1;
4661 val_t REGB2;
4662 val_t tmp;
4663 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4664 fra.me.file = LOCATE_standard___collection___array;
4665 fra.me.line = 619;
4666 fra.me.meth = LOCATE_standard___collection___array___ArrayMapKeys___has_only;
4667 fra.me.has_broke = 0;
4668 fra.me.REG_size = 2;
4669 fra.me.nitni_local_ref_head = NULL;
4670 fra.me.REG[0] = NIT_NULL;
4671 fra.me.REG[1] = NIT_NULL;
4672 fra.me.REG[0] = p0;
4673 fra.me.REG[1] = p1;
4674 /* ../lib/standard/collection/array.nit:619 */
4675 REGB0 = CALL_standard___collection___abstract_collection___Collection___has(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
4676 if (UNTAG_Bool(REGB0)) {
4677 REGB0 = CALL_standard___collection___abstract_collection___Collection___length(fra.me.REG[0])(fra.me.REG[0]);
4678 REGB1 = TAG_Int(1);
4679 REGB2 = TAG_Bool(IS_EQUAL_OO(REGB0,REGB1));
4680 if (UNTAG_Bool(REGB2)) {
4681 } else {
4682 /* ../lib/standard/kernel.nit:237 */
4683 REGB1 = TAG_Bool((REGB0)==(REGB1));
4684 /* ../lib/standard/collection/array.nit:619 */
4685 REGB2 = REGB1;
4686 }
4687 } else {
4688 REGB1 = TAG_Bool(0);
4689 REGB2 = REGB1;
4690 }
4691 if (UNTAG_Bool(REGB2)) {
4692 REGB2 = TAG_Bool(1);
4693 } else {
4694 REGB1 = CALL_standard___collection___abstract_collection___Collection___is_empty(fra.me.REG[0])(fra.me.REG[0]);
4695 REGB2 = REGB1;
4696 }
4697 goto label1;
4698 label1: while(0);
4699 stack_frame_head = fra.me.prev;
4700 return REGB2;
4701 }
4702 static const char LOCATE_standard___collection___array___ArrayMapKeys___is_empty[] = "array::ArrayMapKeys::(abstract_collection::Collection::is_empty)";
4703 val_t standard___collection___array___ArrayMapKeys___is_empty(val_t p0){
4704 struct {struct stack_frame_t me;} fra;
4705 val_t REGB0;
4706 val_t tmp;
4707 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4708 fra.me.file = LOCATE_standard___collection___array;
4709 fra.me.line = 620;
4710 fra.me.meth = LOCATE_standard___collection___array___ArrayMapKeys___is_empty;
4711 fra.me.has_broke = 0;
4712 fra.me.REG_size = 1;
4713 fra.me.nitni_local_ref_head = NULL;
4714 fra.me.REG[0] = NIT_NULL;
4715 fra.me.REG[0] = p0;
4716 /* ../lib/standard/collection/array.nit:620 */
4717 fra.me.REG[0] = CALL_standard___collection___array___ArrayMapKeys___map(fra.me.REG[0])(fra.me.REG[0]);
4718 REGB0 = CALL_standard___collection___abstract_collection___MapRead___is_empty(fra.me.REG[0])(fra.me.REG[0]);
4719 goto label1;
4720 label1: while(0);
4721 stack_frame_head = fra.me.prev;
4722 return REGB0;
4723 }
4724 static const char LOCATE_standard___collection___array___ArrayMapKeys___length[] = "array::ArrayMapKeys::(abstract_collection::Collection::length)";
4725 val_t standard___collection___array___ArrayMapKeys___length(val_t p0){
4726 struct {struct stack_frame_t me;} fra;
4727 val_t REGB0;
4728 val_t tmp;
4729 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4730 fra.me.file = LOCATE_standard___collection___array;
4731 fra.me.line = 621;
4732 fra.me.meth = LOCATE_standard___collection___array___ArrayMapKeys___length;
4733 fra.me.has_broke = 0;
4734 fra.me.REG_size = 1;
4735 fra.me.nitni_local_ref_head = NULL;
4736 fra.me.REG[0] = NIT_NULL;
4737 fra.me.REG[0] = p0;
4738 /* ../lib/standard/collection/array.nit:621 */
4739 fra.me.REG[0] = CALL_standard___collection___array___ArrayMapKeys___map(fra.me.REG[0])(fra.me.REG[0]);
4740 REGB0 = CALL_standard___collection___abstract_collection___MapRead___length(fra.me.REG[0])(fra.me.REG[0]);
4741 goto label1;
4742 label1: while(0);
4743 stack_frame_head = fra.me.prev;
4744 return REGB0;
4745 }
4746 static const char LOCATE_standard___collection___array___ArrayMapKeys___iterator[] = "array::ArrayMapKeys::(abstract_collection::Collection::iterator)";
4747 val_t standard___collection___array___ArrayMapKeys___iterator(val_t p0){
4748 struct {struct stack_frame_t me;} fra;
4749 val_t tmp;
4750 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4751 fra.me.file = LOCATE_standard___collection___array;
4752 fra.me.line = 622;
4753 fra.me.meth = LOCATE_standard___collection___array___ArrayMapKeys___iterator;
4754 fra.me.has_broke = 0;
4755 fra.me.REG_size = 1;
4756 fra.me.nitni_local_ref_head = NULL;
4757 fra.me.REG[0] = NIT_NULL;
4758 fra.me.REG[0] = p0;
4759 /* ../lib/standard/collection/array.nit:622 */
4760 fra.me.REG[0] = CALL_standard___collection___array___ArrayMapKeys___map(fra.me.REG[0])(fra.me.REG[0]);
4761 fra.me.REG[0] = CALL_standard___collection___abstract_collection___MapRead___iterator(fra.me.REG[0])(fra.me.REG[0]);
4762 fra.me.REG[0] = NEW_MapKeysIterator_standard___collection___abstract_collection___MapKeysIterator___init(fra.me.REG[0]);
4763 goto label1;
4764 label1: while(0);
4765 stack_frame_head = fra.me.prev;
4766 return fra.me.REG[0];
4767 }
4768 static const char LOCATE_standard___collection___array___ArrayMapKeys___clear[] = "array::ArrayMapKeys::(abstract_collection::RemovableCollection::clear)";
4769 void standard___collection___array___ArrayMapKeys___clear(val_t p0){
4770 struct {struct stack_frame_t me;} fra;
4771 val_t tmp;
4772 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4773 fra.me.file = LOCATE_standard___collection___array;
4774 fra.me.line = 623;
4775 fra.me.meth = LOCATE_standard___collection___array___ArrayMapKeys___clear;
4776 fra.me.has_broke = 0;
4777 fra.me.REG_size = 1;
4778 fra.me.nitni_local_ref_head = NULL;
4779 fra.me.REG[0] = NIT_NULL;
4780 fra.me.REG[0] = p0;
4781 /* ../lib/standard/collection/array.nit:623 */
4782 fra.me.REG[0] = CALL_standard___collection___array___ArrayMapKeys___map(fra.me.REG[0])(fra.me.REG[0]);
4783 CALL_standard___collection___abstract_collection___Map___clear(fra.me.REG[0])(fra.me.REG[0]);
4784 stack_frame_head = fra.me.prev;
4785 return;
4786 }
4787 static const char LOCATE_standard___collection___array___ArrayMapKeys___remove[] = "array::ArrayMapKeys::(abstract_collection::RemovableCollection::remove)";
4788 void standard___collection___array___ArrayMapKeys___remove(val_t p0, val_t p1){
4789 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
4790 val_t REGB0;
4791 val_t REGB1;
4792 val_t REGB2;
4793 val_t tmp;
4794 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4795 fra.me.file = LOCATE_standard___collection___array;
4796 fra.me.line = 624;
4797 fra.me.meth = LOCATE_standard___collection___array___ArrayMapKeys___remove;
4798 fra.me.has_broke = 0;
4799 fra.me.REG_size = 3;
4800 fra.me.nitni_local_ref_head = NULL;
4801 fra.me.REG[0] = NIT_NULL;
4802 fra.me.REG[1] = NIT_NULL;
4803 fra.me.REG[2] = NIT_NULL;
4804 fra.me.REG[0] = p0;
4805 fra.me.REG[1] = p1;
4806 /* ../lib/standard/collection/array.nit:626 */
4807 fra.me.REG[2] = CALL_standard___collection___array___ArrayMapKeys___map(fra.me.REG[0])(fra.me.REG[0]);
4808 REGB0 = CALL_standard___collection___array___ArrayMap___index(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
4809 /* ../lib/standard/collection/array.nit:627 */
4810 REGB1 = TAG_Int(0);
4811 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
4812 if (UNTAG_Bool(REGB2)) {
4813 } else {
4814 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
4815 }
4816 /* ../lib/standard/kernel.nit:243 */
4817 REGB1 = TAG_Bool(UNTAG_Int(REGB0)>=UNTAG_Int(REGB1));
4818 /* ../lib/standard/collection/array.nit:627 */
4819 if (UNTAG_Bool(REGB1)) {
4820 fra.me.REG[0] = CALL_standard___collection___array___ArrayMapKeys___map(fra.me.REG[0])(fra.me.REG[0]);
4821 CALL_standard___collection___array___ArrayMap___remove_at_index(fra.me.REG[0])(fra.me.REG[0], REGB0);
4822 }
4823 stack_frame_head = fra.me.prev;
4824 return;
4825 }
4826 static const char LOCATE_standard___collection___array___ArrayMapKeys___remove_all[] = "array::ArrayMapKeys::(abstract_collection::RemovableCollection::remove_all)";
4827 void standard___collection___array___ArrayMapKeys___remove_all(val_t p0, val_t p1){
4828 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
4829 val_t tmp;
4830 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4831 fra.me.file = LOCATE_standard___collection___array;
4832 fra.me.line = 629;
4833 fra.me.meth = LOCATE_standard___collection___array___ArrayMapKeys___remove_all;
4834 fra.me.has_broke = 0;
4835 fra.me.REG_size = 2;
4836 fra.me.nitni_local_ref_head = NULL;
4837 fra.me.REG[0] = NIT_NULL;
4838 fra.me.REG[1] = NIT_NULL;
4839 fra.me.REG[0] = p0;
4840 fra.me.REG[1] = p1;
4841 /* ../lib/standard/collection/array.nit:629 */
4842 CALL_standard___collection___abstract_collection___RemovableCollection___remove(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
4843 stack_frame_head = fra.me.prev;
4844 return;
4845 }
4846 static const char LOCATE_standard___collection___array___ArrayMapKeys___init[] = "array::ArrayMapKeys::init";
4847 void standard___collection___array___ArrayMapKeys___init(val_t p0, val_t p1, int* init_table){
4848 int itpos12 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_standard___collection___array___ArrayMapKeys].i;
4849 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
4850 val_t tmp;
4851 if (init_table[itpos12]) return;
4852 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4853 fra.me.file = LOCATE_standard___collection___array;
4854 fra.me.line = 0;
4855 fra.me.meth = LOCATE_standard___collection___array___ArrayMapKeys___init;
4856 fra.me.has_broke = 0;
4857 fra.me.REG_size = 2;
4858 fra.me.nitni_local_ref_head = NULL;
4859 fra.me.REG[0] = NIT_NULL;
4860 fra.me.REG[1] = NIT_NULL;
4861 fra.me.REG[0] = p0;
4862 fra.me.REG[1] = p1;
4863 ATTR_standard___collection___array___ArrayMapKeys_____atmap(fra.me.REG[0]) = fra.me.REG[1];
4864 stack_frame_head = fra.me.prev;
4865 init_table[itpos12] = 1;
4866 return;
4867 }
4868 static const char LOCATE_standard___collection___array___ArrayMapValues___map[] = "array::ArrayMapValues::map";
4869 val_t standard___collection___array___ArrayMapValues___map(val_t p0){
4870 struct {struct stack_frame_t me;} fra;
4871 val_t REGB0;
4872 val_t tmp;
4873 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4874 fra.me.file = LOCATE_standard___collection___array;
4875 fra.me.line = 634;
4876 fra.me.meth = LOCATE_standard___collection___array___ArrayMapValues___map;
4877 fra.me.has_broke = 0;
4878 fra.me.REG_size = 1;
4879 fra.me.nitni_local_ref_head = NULL;
4880 fra.me.REG[0] = NIT_NULL;
4881 fra.me.REG[0] = p0;
4882 /* ../lib/standard/collection/array.nit:634 */
4883 REGB0 = TAG_Bool(ATTR_standard___collection___array___ArrayMapValues_____atmap(fra.me.REG[0])!=NIT_NULL);
4884 if (UNTAG_Bool(REGB0)) {
4885 } else {
4886 nit_abort("Uninitialized attribute %s", "@map", LOCATE_standard___collection___array, 634);
4887 }
4888 fra.me.REG[0] = ATTR_standard___collection___array___ArrayMapValues_____atmap(fra.me.REG[0]);
4889 stack_frame_head = fra.me.prev;
4890 return fra.me.REG[0];
4891 }
4892 static const char LOCATE_standard___collection___array___ArrayMapValues___map__eq[] = "array::ArrayMapValues::map=";
4893 void standard___collection___array___ArrayMapValues___map__eq(val_t p0, val_t p1){
4894 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
4895 val_t tmp;
4896 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4897 fra.me.file = LOCATE_standard___collection___array;
4898 fra.me.line = 634;
4899 fra.me.meth = LOCATE_standard___collection___array___ArrayMapValues___map__eq;
4900 fra.me.has_broke = 0;
4901 fra.me.REG_size = 2;
4902 fra.me.nitni_local_ref_head = NULL;
4903 fra.me.REG[0] = NIT_NULL;
4904 fra.me.REG[1] = NIT_NULL;
4905 fra.me.REG[0] = p0;
4906 fra.me.REG[1] = p1;
4907 /* ../lib/standard/collection/array.nit:634 */
4908 ATTR_standard___collection___array___ArrayMapValues_____atmap(fra.me.REG[0]) = fra.me.REG[1];
4909 stack_frame_head = fra.me.prev;
4910 return;
4911 }
4912 static const char LOCATE_standard___collection___array___ArrayMapValues___first[] = "array::ArrayMapValues::(abstract_collection::Collection::first)";
4913 val_t standard___collection___array___ArrayMapValues___first(val_t p0){
4914 struct {struct stack_frame_t me;} fra;
4915 val_t REGB0;
4916 val_t tmp;
4917 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4918 fra.me.file = LOCATE_standard___collection___array;
4919 fra.me.line = 636;
4920 fra.me.meth = LOCATE_standard___collection___array___ArrayMapValues___first;
4921 fra.me.has_broke = 0;
4922 fra.me.REG_size = 1;
4923 fra.me.nitni_local_ref_head = NULL;
4924 fra.me.REG[0] = NIT_NULL;
4925 fra.me.REG[0] = p0;
4926 /* ../lib/standard/collection/array.nit:636 */
4927 fra.me.REG[0] = CALL_standard___collection___array___ArrayMapValues___map(fra.me.REG[0])(fra.me.REG[0]);
4928 REGB0 = TAG_Bool(ATTR_standard___collection___array___ArrayMap____items(fra.me.REG[0])!=NIT_NULL);
4929 if (UNTAG_Bool(REGB0)) {
4930 } else {
4931 nit_abort("Uninitialized attribute %s", "_items", LOCATE_standard___collection___array, 636);
4932 }
4933 fra.me.REG[0] = ATTR_standard___collection___array___ArrayMap____items(fra.me.REG[0]);
4934 fra.me.REG[0] = CALL_standard___collection___abstract_collection___Collection___first(fra.me.REG[0])(fra.me.REG[0]);
4935 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
4936 if (UNTAG_Bool(REGB0)) {
4937 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 636);
4938 }
4939 fra.me.REG[0] = CALL_standard___collection___abstract_collection___Couple___second(fra.me.REG[0])(fra.me.REG[0]);
4940 goto label1;
4941 label1: while(0);
4942 stack_frame_head = fra.me.prev;
4943 return fra.me.REG[0];
4944 }
4945 static const char LOCATE_standard___collection___array___ArrayMapValues___is_empty[] = "array::ArrayMapValues::(abstract_collection::Collection::is_empty)";
4946 val_t standard___collection___array___ArrayMapValues___is_empty(val_t p0){
4947 struct {struct stack_frame_t me;} fra;
4948 val_t REGB0;
4949 val_t tmp;
4950 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4951 fra.me.file = LOCATE_standard___collection___array;
4952 fra.me.line = 637;
4953 fra.me.meth = LOCATE_standard___collection___array___ArrayMapValues___is_empty;
4954 fra.me.has_broke = 0;
4955 fra.me.REG_size = 1;
4956 fra.me.nitni_local_ref_head = NULL;
4957 fra.me.REG[0] = NIT_NULL;
4958 fra.me.REG[0] = p0;
4959 /* ../lib/standard/collection/array.nit:637 */
4960 fra.me.REG[0] = CALL_standard___collection___array___ArrayMapValues___map(fra.me.REG[0])(fra.me.REG[0]);
4961 REGB0 = CALL_standard___collection___abstract_collection___MapRead___is_empty(fra.me.REG[0])(fra.me.REG[0]);
4962 goto label1;
4963 label1: while(0);
4964 stack_frame_head = fra.me.prev;
4965 return REGB0;
4966 }
4967 static const char LOCATE_standard___collection___array___ArrayMapValues___length[] = "array::ArrayMapValues::(abstract_collection::Collection::length)";
4968 val_t standard___collection___array___ArrayMapValues___length(val_t p0){
4969 struct {struct stack_frame_t me;} fra;
4970 val_t REGB0;
4971 val_t tmp;
4972 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4973 fra.me.file = LOCATE_standard___collection___array;
4974 fra.me.line = 638;
4975 fra.me.meth = LOCATE_standard___collection___array___ArrayMapValues___length;
4976 fra.me.has_broke = 0;
4977 fra.me.REG_size = 1;
4978 fra.me.nitni_local_ref_head = NULL;
4979 fra.me.REG[0] = NIT_NULL;
4980 fra.me.REG[0] = p0;
4981 /* ../lib/standard/collection/array.nit:638 */
4982 fra.me.REG[0] = CALL_standard___collection___array___ArrayMapValues___map(fra.me.REG[0])(fra.me.REG[0]);
4983 REGB0 = CALL_standard___collection___abstract_collection___MapRead___length(fra.me.REG[0])(fra.me.REG[0]);
4984 goto label1;
4985 label1: while(0);
4986 stack_frame_head = fra.me.prev;
4987 return REGB0;
4988 }
4989 static const char LOCATE_standard___collection___array___ArrayMapValues___iterator[] = "array::ArrayMapValues::(abstract_collection::Collection::iterator)";
4990 val_t standard___collection___array___ArrayMapValues___iterator(val_t p0){
4991 struct {struct stack_frame_t me;} fra;
4992 val_t tmp;
4993 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4994 fra.me.file = LOCATE_standard___collection___array;
4995 fra.me.line = 639;
4996 fra.me.meth = LOCATE_standard___collection___array___ArrayMapValues___iterator;
4997 fra.me.has_broke = 0;
4998 fra.me.REG_size = 1;
4999 fra.me.nitni_local_ref_head = NULL;
5000 fra.me.REG[0] = NIT_NULL;
5001 fra.me.REG[0] = p0;
5002 /* ../lib/standard/collection/array.nit:639 */
5003 fra.me.REG[0] = CALL_standard___collection___array___ArrayMapValues___map(fra.me.REG[0])(fra.me.REG[0]);
5004 fra.me.REG[0] = CALL_standard___collection___abstract_collection___MapRead___iterator(fra.me.REG[0])(fra.me.REG[0]);
5005 fra.me.REG[0] = NEW_MapValuesIterator_standard___collection___abstract_collection___MapValuesIterator___init(fra.me.REG[0]);
5006 goto label1;
5007 label1: while(0);
5008 stack_frame_head = fra.me.prev;
5009 return fra.me.REG[0];
5010 }
5011 static const char LOCATE_standard___collection___array___ArrayMapValues___has[] = "array::ArrayMapValues::(abstract_collection::Collection::has)";
5012 val_t standard___collection___array___ArrayMapValues___has(val_t p0, val_t p1){
5013 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
5014 val_t REGB0;
5015 val_t REGB1;
5016 val_t REGB2;
5017 val_t tmp;
5018 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
5019 fra.me.file = LOCATE_standard___collection___array;
5020 fra.me.line = 641;
5021 fra.me.meth = LOCATE_standard___collection___array___ArrayMapValues___has;
5022 fra.me.has_broke = 0;
5023 fra.me.REG_size = 4;
5024 fra.me.nitni_local_ref_head = NULL;
5025 fra.me.REG[0] = NIT_NULL;
5026 fra.me.REG[1] = NIT_NULL;
5027 fra.me.REG[2] = NIT_NULL;
5028 fra.me.REG[3] = NIT_NULL;
5029 fra.me.REG[0] = p0;
5030 fra.me.REG[1] = p1;
5031 /* ../lib/standard/collection/array.nit:644 */
5032 fra.me.REG[0] = CALL_standard___collection___array___ArrayMapValues___map(fra.me.REG[0])(fra.me.REG[0]);
5033 REGB0 = TAG_Bool(ATTR_standard___collection___array___ArrayMap____items(fra.me.REG[0])!=NIT_NULL);
5034 if (UNTAG_Bool(REGB0)) {
5035 } else {
5036 nit_abort("Uninitialized attribute %s", "_items", LOCATE_standard___collection___array, 644);
5037 }
5038 fra.me.REG[0] = ATTR_standard___collection___array___ArrayMap____items(fra.me.REG[0]);
5039 /* ../lib/standard/collection/array.nit:270 */
5040 REGB0 = TAG_Int(0);
5041 /* ../lib/standard/collection/array.nit:271 */
5042 REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
5043 if (UNTAG_Bool(REGB1)) {
5044 } else {
5045 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 271);
5046 }
5047 REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0]);
5048 /* ../lib/standard/collection/array.nit:272 */
5049 fra.me.REG[2] = ATTR_standard___collection___array___Array____items(fra.me.REG[0]);
5050 /* ../lib/standard/collection/array.nit:273 */
5051 while(1) {
5052 /* ../lib/standard/collection/array.nit:24 */
5053 REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
5054 if (UNTAG_Bool(REGB1)) {
5055 } else {
5056 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
5057 }
5058 REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0]);
5059 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
5060 if (UNTAG_Bool(REGB2)) {
5061 } else {
5062 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
5063 }
5064 /* ../lib/standard/kernel.nit:242 */
5065 REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
5066 /* ../lib/standard/collection/array.nit:273 */
5067 if (UNTAG_Bool(REGB1)) {
5068 /* ../lib/standard/collection/array.nit:274 */
5069 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
5070 if (UNTAG_Bool(REGB1)) {
5071 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 274);
5072 }
5073 /* ../lib/standard/collection/array.nit:725 */
5074 fra.me.REG[3] = ((Nit_NativeArray)fra.me.REG[2])->val[UNTAG_Int(REGB0)];
5075 /* ../lib/standard/collection/array.nit:644 */
5076 fra.me.REG[3] = CALL_standard___collection___abstract_collection___Couple___second(fra.me.REG[3])(fra.me.REG[3]);
5077 REGB1 = TAG_Bool(IS_EQUAL_NN(fra.me.REG[3],fra.me.REG[1]));
5078 if (UNTAG_Bool(REGB1)) {
5079 } else {
5080 REGB2 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
5081 if (UNTAG_Bool(REGB2)) {
5082 REGB2 = TAG_Bool(0);
5083 REGB1 = REGB2;
5084 } else {
5085 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
5086 REGB1 = REGB2;
5087 }
5088 }
5089 if (UNTAG_Bool(REGB1)) {
5090 REGB1 = TAG_Bool(1);
5091 goto label1;
5092 }
5093 /* ../lib/standard/collection/array.nit:275 */
5094 REGB2 = TAG_Int(1);
5095 /* ../lib/standard/kernel.nit:245 */
5096 REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
5097 /* ../lib/standard/collection/array.nit:275 */
5098 REGB0 = REGB2;
5099 } else {
5100 /* ../lib/standard/collection/array.nit:273 */
5101 goto label2;
5102 }
5103 }
5104 label2: while(0);
5105 /* ../lib/standard/collection/array.nit:645 */
5106 REGB0 = TAG_Bool(0);
5107 REGB1 = REGB0;
5108 goto label1;
5109 label1: while(0);
5110 stack_frame_head = fra.me.prev;
5111 return REGB1;
5112 }
5113 static const char LOCATE_standard___collection___array___ArrayMapValues___has_only[] = "array::ArrayMapValues::(abstract_collection::Collection::has_only)";
5114 val_t standard___collection___array___ArrayMapValues___has_only(val_t p0, val_t p1){
5115 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
5116 val_t REGB0;
5117 val_t REGB1;
5118 val_t REGB2;
5119 val_t tmp;
5120 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
5121 fra.me.file = LOCATE_standard___collection___array;
5122 fra.me.line = 648;
5123 fra.me.meth = LOCATE_standard___collection___array___ArrayMapValues___has_only;
5124 fra.me.has_broke = 0;
5125 fra.me.REG_size = 4;
5126 fra.me.nitni_local_ref_head = NULL;
5127 fra.me.REG[0] = NIT_NULL;
5128 fra.me.REG[1] = NIT_NULL;
5129 fra.me.REG[2] = NIT_NULL;
5130 fra.me.REG[3] = NIT_NULL;
5131 fra.me.REG[0] = p0;
5132 fra.me.REG[1] = p1;
5133 /* ../lib/standard/collection/array.nit:651 */
5134 fra.me.REG[0] = CALL_standard___collection___array___ArrayMapValues___map(fra.me.REG[0])(fra.me.REG[0]);
5135 REGB0 = TAG_Bool(ATTR_standard___collection___array___ArrayMap____items(fra.me.REG[0])!=NIT_NULL);
5136 if (UNTAG_Bool(REGB0)) {
5137 } else {
5138 nit_abort("Uninitialized attribute %s", "_items", LOCATE_standard___collection___array, 651);
5139 }
5140 fra.me.REG[0] = ATTR_standard___collection___array___ArrayMap____items(fra.me.REG[0]);
5141 /* ../lib/standard/collection/array.nit:270 */
5142 REGB0 = TAG_Int(0);
5143 /* ../lib/standard/collection/array.nit:271 */
5144 REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
5145 if (UNTAG_Bool(REGB1)) {
5146 } else {
5147 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 271);
5148 }
5149 REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0]);
5150 /* ../lib/standard/collection/array.nit:272 */
5151 fra.me.REG[2] = ATTR_standard___collection___array___Array____items(fra.me.REG[0]);
5152 /* ../lib/standard/collection/array.nit:273 */
5153 while(1) {
5154 /* ../lib/standard/collection/array.nit:24 */
5155 REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
5156 if (UNTAG_Bool(REGB1)) {
5157 } else {
5158 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
5159 }
5160 REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0]);
5161 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
5162 if (UNTAG_Bool(REGB2)) {
5163 } else {
5164 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
5165 }
5166 /* ../lib/standard/kernel.nit:242 */
5167 REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
5168 /* ../lib/standard/collection/array.nit:273 */
5169 if (UNTAG_Bool(REGB1)) {
5170 /* ../lib/standard/collection/array.nit:274 */
5171 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
5172 if (UNTAG_Bool(REGB1)) {
5173 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 274);
5174 }
5175 /* ../lib/standard/collection/array.nit:725 */
5176 fra.me.REG[3] = ((Nit_NativeArray)fra.me.REG[2])->val[UNTAG_Int(REGB0)];
5177 /* ../lib/standard/collection/array.nit:651 */
5178 fra.me.REG[3] = CALL_standard___collection___abstract_collection___Couple___second(fra.me.REG[3])(fra.me.REG[3]);
5179 REGB1 = TAG_Bool(IS_EQUAL_NN(fra.me.REG[3],fra.me.REG[1]));
5180 if (UNTAG_Bool(REGB1)) {
5181 } else {
5182 REGB2 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
5183 if (UNTAG_Bool(REGB2)) {
5184 REGB2 = TAG_Bool(0);
5185 REGB1 = REGB2;
5186 } else {
5187 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
5188 REGB1 = REGB2;
5189 }
5190 }
5191 REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
5192 if (UNTAG_Bool(REGB1)) {
5193 REGB1 = TAG_Bool(0);
5194 goto label1;
5195 }
5196 /* ../lib/standard/collection/array.nit:275 */
5197 REGB2 = TAG_Int(1);
5198 /* ../lib/standard/kernel.nit:245 */
5199 REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
5200 /* ../lib/standard/collection/array.nit:275 */
5201 REGB0 = REGB2;
5202 } else {
5203 /* ../lib/standard/collection/array.nit:273 */
5204 goto label2;
5205 }
5206 }
5207 label2: while(0);
5208 /* ../lib/standard/collection/array.nit:652 */
5209 REGB0 = TAG_Bool(1);
5210 REGB1 = REGB0;
5211 goto label1;
5212 label1: while(0);
5213 stack_frame_head = fra.me.prev;
5214 return REGB1;
5215 }
5216 static const char LOCATE_standard___collection___array___ArrayMapValues___count[] = "array::ArrayMapValues::(abstract_collection::Collection::count)";
5217 val_t standard___collection___array___ArrayMapValues___count(val_t p0, val_t p1){
5218 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
5219 val_t REGB0;
5220 val_t REGB1;
5221 val_t REGB2;
5222 val_t REGB3;
5223 val_t tmp;
5224 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
5225 fra.me.file = LOCATE_standard___collection___array;
5226 fra.me.line = 655;
5227 fra.me.meth = LOCATE_standard___collection___array___ArrayMapValues___count;
5228 fra.me.has_broke = 0;
5229 fra.me.REG_size = 4;
5230 fra.me.nitni_local_ref_head = NULL;
5231 fra.me.REG[0] = NIT_NULL;
5232 fra.me.REG[1] = NIT_NULL;
5233 fra.me.REG[2] = NIT_NULL;
5234 fra.me.REG[3] = NIT_NULL;
5235 fra.me.REG[0] = p0;
5236 fra.me.REG[1] = p1;
5237 /* ../lib/standard/collection/array.nit:658 */
5238 REGB0 = TAG_Int(0);
5239 /* ../lib/standard/collection/array.nit:659 */
5240 fra.me.REG[0] = CALL_standard___collection___array___ArrayMapValues___map(fra.me.REG[0])(fra.me.REG[0]);
5241 REGB1 = TAG_Bool(ATTR_standard___collection___array___ArrayMap____items(fra.me.REG[0])!=NIT_NULL);
5242 if (UNTAG_Bool(REGB1)) {
5243 } else {
5244 nit_abort("Uninitialized attribute %s", "_items", LOCATE_standard___collection___array, 659);
5245 }
5246 fra.me.REG[0] = ATTR_standard___collection___array___ArrayMap____items(fra.me.REG[0]);
5247 /* ../lib/standard/collection/array.nit:270 */
5248 REGB1 = TAG_Int(0);
5249 /* ../lib/standard/collection/array.nit:271 */
5250 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
5251 if (UNTAG_Bool(REGB2)) {
5252 } else {
5253 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 271);
5254 }
5255 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0]);
5256 /* ../lib/standard/collection/array.nit:272 */
5257 fra.me.REG[2] = ATTR_standard___collection___array___Array____items(fra.me.REG[0]);
5258 /* ../lib/standard/collection/array.nit:273 */
5259 while(1) {
5260 /* ../lib/standard/collection/array.nit:24 */
5261 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
5262 if (UNTAG_Bool(REGB2)) {
5263 } else {
5264 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
5265 }
5266 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0]);
5267 REGB3 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
5268 if (UNTAG_Bool(REGB3)) {
5269 } else {
5270 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
5271 }
5272 /* ../lib/standard/kernel.nit:242 */
5273 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
5274 /* ../lib/standard/collection/array.nit:273 */
5275 if (UNTAG_Bool(REGB2)) {
5276 /* ../lib/standard/collection/array.nit:274 */
5277 REGB2 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
5278 if (UNTAG_Bool(REGB2)) {
5279 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 274);
5280 }
5281 /* ../lib/standard/collection/array.nit:725 */
5282 fra.me.REG[3] = ((Nit_NativeArray)fra.me.REG[2])->val[UNTAG_Int(REGB1)];
5283 /* ../lib/standard/collection/array.nit:659 */
5284 fra.me.REG[3] = CALL_standard___collection___abstract_collection___Couple___second(fra.me.REG[3])(fra.me.REG[3]);
5285 REGB2 = TAG_Bool(IS_EQUAL_NN(fra.me.REG[3],fra.me.REG[1]));
5286 if (UNTAG_Bool(REGB2)) {
5287 } else {
5288 REGB3 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
5289 if (UNTAG_Bool(REGB3)) {
5290 REGB3 = TAG_Bool(0);
5291 REGB2 = REGB3;
5292 } else {
5293 REGB3 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
5294 REGB2 = REGB3;
5295 }
5296 }
5297 if (UNTAG_Bool(REGB2)) {
5298 REGB2 = TAG_Int(1);
5299 /* ../lib/standard/kernel.nit:245 */
5300 REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
5301 /* ../lib/standard/collection/array.nit:659 */
5302 REGB0 = REGB2;
5303 }
5304 /* ../lib/standard/collection/array.nit:275 */
5305 REGB2 = TAG_Int(1);
5306 /* ../lib/standard/kernel.nit:245 */
5307 REGB2 = TAG_Int(UNTAG_Int(REGB1)+UNTAG_Int(REGB2));
5308 /* ../lib/standard/collection/array.nit:275 */
5309 REGB1 = REGB2;
5310 } else {
5311 /* ../lib/standard/collection/array.nit:273 */
5312 goto label1;
5313 }
5314 }
5315 label1: while(0);
5316 /* ../lib/standard/collection/array.nit:660 */
5317 goto label2;
5318 label2: while(0);
5319 stack_frame_head = fra.me.prev;
5320 return REGB0;
5321 }
5322 static const char LOCATE_standard___collection___array___ArrayMapValues___clear[] = "array::ArrayMapValues::(abstract_collection::RemovableCollection::clear)";
5323 void standard___collection___array___ArrayMapValues___clear(val_t p0){
5324 struct {struct stack_frame_t me;} fra;
5325 val_t tmp;
5326 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
5327 fra.me.file = LOCATE_standard___collection___array;
5328 fra.me.line = 663;
5329 fra.me.meth = LOCATE_standard___collection___array___ArrayMapValues___clear;
5330 fra.me.has_broke = 0;
5331 fra.me.REG_size = 1;
5332 fra.me.nitni_local_ref_head = NULL;
5333 fra.me.REG[0] = NIT_NULL;
5334 fra.me.REG[0] = p0;
5335 /* ../lib/standard/collection/array.nit:663 */
5336 fra.me.REG[0] = CALL_standard___collection___array___ArrayMapValues___map(fra.me.REG[0])(fra.me.REG[0]);
5337 CALL_standard___collection___abstract_collection___Map___clear(fra.me.REG[0])(fra.me.REG[0]);
5338 stack_frame_head = fra.me.prev;
5339 return;
5340 }
5341 static const char LOCATE_standard___collection___array___ArrayMapValues___remove[] = "array::ArrayMapValues::(abstract_collection::RemovableCollection::remove)";
5342 void standard___collection___array___ArrayMapValues___remove(val_t p0, val_t p1){
5343 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
5344 val_t REGB0;
5345 val_t REGB1;
5346 val_t REGB2;
5347 val_t REGB3;
5348 val_t tmp;
5349 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
5350 fra.me.file = LOCATE_standard___collection___array;
5351 fra.me.line = 665;
5352 fra.me.meth = LOCATE_standard___collection___array___ArrayMapValues___remove;
5353 fra.me.has_broke = 0;
5354 fra.me.REG_size = 3;
5355 fra.me.nitni_local_ref_head = NULL;
5356 fra.me.REG[0] = NIT_NULL;
5357 fra.me.REG[1] = NIT_NULL;
5358 fra.me.REG[2] = NIT_NULL;
5359 fra.me.REG[0] = p0;
5360 fra.me.REG[1] = p1;
5361 /* ../lib/standard/collection/array.nit:667 */
5362 fra.me.REG[0] = CALL_standard___collection___array___ArrayMapValues___map(fra.me.REG[0])(fra.me.REG[0]);
5363 /* ../lib/standard/collection/array.nit:668 */
5364 REGB0 = TAG_Bool(ATTR_standard___collection___array___ArrayMap____items(fra.me.REG[0])!=NIT_NULL);
5365 if (UNTAG_Bool(REGB0)) {
5366 } else {
5367 nit_abort("Uninitialized attribute %s", "_items", LOCATE_standard___collection___array, 668);
5368 }
5369 fra.me.REG[2] = ATTR_standard___collection___array___ArrayMap____items(fra.me.REG[0]);
5370 /* ../lib/standard/collection/array.nit:24 */
5371 REGB0 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
5372 if (UNTAG_Bool(REGB0)) {
5373 } else {
5374 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
5375 }
5376 REGB0 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2]);
5377 /* ../lib/standard/collection/array.nit:668 */
5378 REGB1 = TAG_Int(1);
5379 /* ../lib/standard/kernel.nit:247 */
5380 REGB1 = TAG_Int(UNTAG_Int(REGB0)-UNTAG_Int(REGB1));
5381 /* ../lib/standard/collection/array.nit:669 */
5382 while(1) {
5383 REGB0 = TAG_Int(0);
5384 REGB2 = TAG_Bool(VAL_ISA(REGB0, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
5385 if (UNTAG_Bool(REGB2)) {
5386 } else {
5387 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
5388 }
5389 /* ../lib/standard/kernel.nit:243 */
5390 REGB0 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB0));
5391 /* ../lib/standard/collection/array.nit:669 */
5392 if (UNTAG_Bool(REGB0)) {
5393 /* ../lib/standard/collection/array.nit:670 */
5394 REGB0 = TAG_Bool(ATTR_standard___collection___array___ArrayMap____items(fra.me.REG[0])!=NIT_NULL);
5395 if (UNTAG_Bool(REGB0)) {
5396 } else {
5397 nit_abort("Uninitialized attribute %s", "_items", LOCATE_standard___collection___array, 670);
5398 }
5399 fra.me.REG[2] = ATTR_standard___collection___array___ArrayMap____items(fra.me.REG[0]);
5400 /* ../lib/standard/collection/array.nit:279 */
5401 REGB0 = REGB1;
5402 /* ../lib/standard/collection/array.nit:281 */
5403 REGB2 = TAG_Int(0);
5404 REGB3 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
5405 if (UNTAG_Bool(REGB3)) {
5406 } else {
5407 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
5408 }
5409 /* ../lib/standard/kernel.nit:243 */
5410 REGB2 = TAG_Bool(UNTAG_Int(REGB0)>=UNTAG_Int(REGB2));
5411 /* ../lib/standard/collection/array.nit:281 */
5412 if (UNTAG_Bool(REGB2)) {
5413 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
5414 if (UNTAG_Bool(REGB2)) {
5415 } else {
5416 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 281);
5417 }
5418 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2]);
5419 REGB3 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
5420 if (UNTAG_Bool(REGB3)) {
5421 } else {
5422 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
5423 }
5424 /* ../lib/standard/kernel.nit:242 */
5425 REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB2));
5426 } else {
5427 /* ../lib/standard/collection/array.nit:281 */
5428 REGB3 = TAG_Bool(0);
5429 REGB2 = REGB3;
5430 }
5431 if (UNTAG_Bool(REGB2)) {
5432 } else {
5433 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 281);
5434 }
5435 /* ../lib/standard/collection/array.nit:282 */
5436 fra.me.REG[2] = ATTR_standard___collection___array___Array____items(fra.me.REG[2]);
5437 REGB2 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
5438 if (UNTAG_Bool(REGB2)) {
5439 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 282);
5440 }
5441 /* ../lib/standard/collection/array.nit:725 */
5442 fra.me.REG[2] = ((Nit_NativeArray)fra.me.REG[2])->val[UNTAG_Int(REGB0)];
5443 /* ../lib/standard/collection/array.nit:282 */
5444 goto label1;
5445 label1: while(0);
5446 /* ../lib/standard/collection/array.nit:670 */
5447 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
5448 if (UNTAG_Bool(REGB0)) {
5449 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 670);
5450 }
5451 fra.me.REG[2] = CALL_standard___collection___abstract_collection___Couple___second(fra.me.REG[2])(fra.me.REG[2]);
5452 REGB0 = TAG_Bool(IS_EQUAL_NN(fra.me.REG[2],fra.me.REG[1]));
5453 if (UNTAG_Bool(REGB0)) {
5454 } else {
5455 REGB2 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
5456 if (UNTAG_Bool(REGB2)) {
5457 REGB2 = TAG_Bool(0);
5458 REGB0 = REGB2;
5459 } else {
5460 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
5461 REGB0 = REGB2;
5462 }
5463 }
5464 if (UNTAG_Bool(REGB0)) {
5465 /* ../lib/standard/collection/array.nit:671 */
5466 CALL_standard___collection___array___ArrayMap___remove_at_index(fra.me.REG[0])(fra.me.REG[0], REGB1);
5467 /* ../lib/standard/collection/array.nit:672 */
5468 goto label2;
5469 }
5470 /* ../lib/standard/collection/array.nit:674 */
5471 REGB0 = TAG_Int(1);
5472 /* ../lib/standard/kernel.nit:247 */
5473 REGB0 = TAG_Int(UNTAG_Int(REGB1)-UNTAG_Int(REGB0));
5474 /* ../lib/standard/collection/array.nit:674 */
5475 REGB1 = REGB0;
5476 } else {
5477 /* ../lib/standard/collection/array.nit:669 */
5478 goto label3;
5479 }
5480 }
5481 label3: while(0);
5482 label2: while(0);
5483 stack_frame_head = fra.me.prev;
5484 return;
5485 }
5486 static const char LOCATE_standard___collection___array___ArrayMapValues___remove_all[] = "array::ArrayMapValues::(abstract_collection::RemovableCollection::remove_all)";
5487 void standard___collection___array___ArrayMapValues___remove_all(val_t p0, val_t p1){
5488 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
5489 val_t REGB0;
5490 val_t REGB1;
5491 val_t REGB2;
5492 val_t REGB3;
5493 val_t tmp;
5494 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
5495 fra.me.file = LOCATE_standard___collection___array;
5496 fra.me.line = 678;
5497 fra.me.meth = LOCATE_standard___collection___array___ArrayMapValues___remove_all;
5498 fra.me.has_broke = 0;
5499 fra.me.REG_size = 3;
5500 fra.me.nitni_local_ref_head = NULL;
5501 fra.me.REG[0] = NIT_NULL;
5502 fra.me.REG[1] = NIT_NULL;
5503 fra.me.REG[2] = NIT_NULL;
5504 fra.me.REG[0] = p0;
5505 fra.me.REG[1] = p1;
5506 /* ../lib/standard/collection/array.nit:680 */
5507 fra.me.REG[0] = CALL_standard___collection___array___ArrayMapValues___map(fra.me.REG[0])(fra.me.REG[0]);
5508 /* ../lib/standard/collection/array.nit:681 */
5509 REGB0 = TAG_Bool(ATTR_standard___collection___array___ArrayMap____items(fra.me.REG[0])!=NIT_NULL);
5510 if (UNTAG_Bool(REGB0)) {
5511 } else {
5512 nit_abort("Uninitialized attribute %s", "_items", LOCATE_standard___collection___array, 681);
5513 }
5514 fra.me.REG[2] = ATTR_standard___collection___array___ArrayMap____items(fra.me.REG[0]);
5515 /* ../lib/standard/collection/array.nit:24 */
5516 REGB0 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
5517 if (UNTAG_Bool(REGB0)) {
5518 } else {
5519 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
5520 }
5521 REGB0 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2]);
5522 /* ../lib/standard/collection/array.nit:681 */
5523 REGB1 = TAG_Int(1);
5524 /* ../lib/standard/kernel.nit:247 */
5525 REGB1 = TAG_Int(UNTAG_Int(REGB0)-UNTAG_Int(REGB1));
5526 /* ../lib/standard/collection/array.nit:682 */
5527 while(1) {
5528 REGB0 = TAG_Int(0);
5529 REGB2 = TAG_Bool(VAL_ISA(REGB0, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
5530 if (UNTAG_Bool(REGB2)) {
5531 } else {
5532 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
5533 }
5534 /* ../lib/standard/kernel.nit:243 */
5535 REGB0 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB0));
5536 /* ../lib/standard/collection/array.nit:682 */
5537 if (UNTAG_Bool(REGB0)) {
5538 /* ../lib/standard/collection/array.nit:683 */
5539 REGB0 = TAG_Bool(ATTR_standard___collection___array___ArrayMap____items(fra.me.REG[0])!=NIT_NULL);
5540 if (UNTAG_Bool(REGB0)) {
5541 } else {
5542 nit_abort("Uninitialized attribute %s", "_items", LOCATE_standard___collection___array, 683);
5543 }
5544 fra.me.REG[2] = ATTR_standard___collection___array___ArrayMap____items(fra.me.REG[0]);
5545 /* ../lib/standard/collection/array.nit:279 */
5546 REGB0 = REGB1;
5547 /* ../lib/standard/collection/array.nit:281 */
5548 REGB2 = TAG_Int(0);
5549 REGB3 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
5550 if (UNTAG_Bool(REGB3)) {
5551 } else {
5552 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
5553 }
5554 /* ../lib/standard/kernel.nit:243 */
5555 REGB2 = TAG_Bool(UNTAG_Int(REGB0)>=UNTAG_Int(REGB2));
5556 /* ../lib/standard/collection/array.nit:281 */
5557 if (UNTAG_Bool(REGB2)) {
5558 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
5559 if (UNTAG_Bool(REGB2)) {
5560 } else {
5561 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 281);
5562 }
5563 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2]);
5564 REGB3 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
5565 if (UNTAG_Bool(REGB3)) {
5566 } else {
5567 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
5568 }
5569 /* ../lib/standard/kernel.nit:242 */
5570 REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB2));
5571 } else {
5572 /* ../lib/standard/collection/array.nit:281 */
5573 REGB3 = TAG_Bool(0);
5574 REGB2 = REGB3;
5575 }
5576 if (UNTAG_Bool(REGB2)) {
5577 } else {
5578 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 281);
5579 }
5580 /* ../lib/standard/collection/array.nit:282 */
5581 fra.me.REG[2] = ATTR_standard___collection___array___Array____items(fra.me.REG[2]);
5582 REGB2 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
5583 if (UNTAG_Bool(REGB2)) {
5584 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 282);
5585 }
5586 /* ../lib/standard/collection/array.nit:725 */
5587 fra.me.REG[2] = ((Nit_NativeArray)fra.me.REG[2])->val[UNTAG_Int(REGB0)];
5588 /* ../lib/standard/collection/array.nit:282 */
5589 goto label1;
5590 label1: while(0);
5591 /* ../lib/standard/collection/array.nit:683 */
5592 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
5593 if (UNTAG_Bool(REGB0)) {
5594 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 683);
5595 }
5596 fra.me.REG[2] = CALL_standard___collection___abstract_collection___Couple___second(fra.me.REG[2])(fra.me.REG[2]);
5597 REGB0 = TAG_Bool(IS_EQUAL_NN(fra.me.REG[2],fra.me.REG[1]));
5598 if (UNTAG_Bool(REGB0)) {
5599 } else {
5600 REGB2 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
5601 if (UNTAG_Bool(REGB2)) {
5602 REGB2 = TAG_Bool(0);
5603 REGB0 = REGB2;
5604 } else {
5605 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
5606 REGB0 = REGB2;
5607 }
5608 }
5609 if (UNTAG_Bool(REGB0)) {
5610 /* ../lib/standard/collection/array.nit:684 */
5611 CALL_standard___collection___array___ArrayMap___remove_at_index(fra.me.REG[0])(fra.me.REG[0], REGB1);
5612 }
5613 /* ../lib/standard/collection/array.nit:686 */
5614 REGB0 = TAG_Int(1);
5615 /* ../lib/standard/kernel.nit:247 */
5616 REGB0 = TAG_Int(UNTAG_Int(REGB1)-UNTAG_Int(REGB0));
5617 /* ../lib/standard/collection/array.nit:686 */
5618 REGB1 = REGB0;
5619 } else {
5620 /* ../lib/standard/collection/array.nit:682 */
5621 goto label2;
5622 }
5623 }
5624 label2: while(0);
5625 stack_frame_head = fra.me.prev;
5626 return;
5627 }
5628 static const char LOCATE_standard___collection___array___ArrayMapValues___init[] = "array::ArrayMapValues::init";
5629 void standard___collection___array___ArrayMapValues___init(val_t p0, val_t p1, int* init_table){
5630 int itpos13 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_standard___collection___array___ArrayMapValues].i;
5631 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
5632 val_t tmp;
5633 if (init_table[itpos13]) return;
5634 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
5635 fra.me.file = LOCATE_standard___collection___array;
5636 fra.me.line = 0;
5637 fra.me.meth = LOCATE_standard___collection___array___ArrayMapValues___init;
5638 fra.me.has_broke = 0;
5639 fra.me.REG_size = 2;
5640 fra.me.nitni_local_ref_head = NULL;
5641 fra.me.REG[0] = NIT_NULL;
5642 fra.me.REG[1] = NIT_NULL;
5643 fra.me.REG[0] = p0;
5644 fra.me.REG[1] = p1;
5645 ATTR_standard___collection___array___ArrayMapValues_____atmap(fra.me.REG[0]) = fra.me.REG[1];
5646 stack_frame_head = fra.me.prev;
5647 init_table[itpos13] = 1;
5648 return;
5649 }
5650 static const char LOCATE_standard___collection___array___Iterator___to_a[] = "array::Iterator::to_a";
5651 val_t standard___collection___array___Iterator___to_a(val_t p0){
5652 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
5653 val_t REGB0;
5654 val_t tmp;
5655 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
5656 fra.me.file = LOCATE_standard___collection___array;
5657 fra.me.line = 695;
5658 fra.me.meth = LOCATE_standard___collection___array___Iterator___to_a;
5659 fra.me.has_broke = 0;
5660 fra.me.REG_size = 3;
5661 fra.me.nitni_local_ref_head = NULL;
5662 fra.me.REG[0] = NIT_NULL;
5663 fra.me.REG[1] = NIT_NULL;
5664 fra.me.REG[2] = NIT_NULL;
5665 fra.me.REG[0] = p0;
5666 /* ../lib/standard/collection/array.nit:698 */
5667 fra.me.REG[1] = NEW_Array_standard___collection___array___Array___init();
5668 /* ../lib/standard/collection/array.nit:699 */
5669 while(1) {
5670 REGB0 = CALL_standard___collection___abstract_collection___Iterator___is_ok(fra.me.REG[0])(fra.me.REG[0]);
5671 if (UNTAG_Bool(REGB0)) {
5672 /* ../lib/standard/collection/array.nit:700 */
5673 fra.me.REG[2] = CALL_standard___collection___abstract_collection___Iterator___item(fra.me.REG[0])(fra.me.REG[0]);
5674 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
5675 /* ../lib/standard/collection/array.nit:701 */
5676 CALL_standard___collection___abstract_collection___Iterator___next(fra.me.REG[0])(fra.me.REG[0]);
5677 } else {
5678 /* ../lib/standard/collection/array.nit:699 */
5679 goto label1;
5680 }
5681 }
5682 label1: while(0);
5683 /* ../lib/standard/collection/array.nit:703 */
5684 goto label2;
5685 label2: while(0);
5686 stack_frame_head = fra.me.prev;
5687 return fra.me.REG[1];
5688 }
5689 static const char LOCATE_standard___collection___array___Collection___to_a[] = "array::Collection::to_a";
5690 val_t standard___collection___array___Collection___to_a(val_t p0){
5691 struct {struct stack_frame_t me;} fra;
5692 val_t tmp;
5693 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
5694 fra.me.file = LOCATE_standard___collection___array;
5695 fra.me.line = 708;
5696 fra.me.meth = LOCATE_standard___collection___array___Collection___to_a;
5697 fra.me.has_broke = 0;
5698 fra.me.REG_size = 1;
5699 fra.me.nitni_local_ref_head = NULL;
5700 fra.me.REG[0] = NIT_NULL;
5701 fra.me.REG[0] = p0;
5702 /* ../lib/standard/collection/array.nit:711 */
5703 fra.me.REG[0] = CALL_standard___collection___abstract_collection___Collection___iterator(fra.me.REG[0])(fra.me.REG[0]);
5704 fra.me.REG[0] = CALL_standard___collection___array___Iterator___to_a(fra.me.REG[0])(fra.me.REG[0]);
5705 goto label1;
5706 label1: while(0);
5707 stack_frame_head = fra.me.prev;
5708 return fra.me.REG[0];
5709 }
5710 static const char LOCATE_standard___collection___array___ArrayCapable___calloc_array[] = "array::ArrayCapable::calloc_array";
5711 val_t standard___collection___array___ArrayCapable___calloc_array(val_t p0, val_t p1){
5712 struct {struct stack_frame_t me;} fra;
5713 val_t REGB0;
5714 val_t tmp;
5715 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
5716 fra.me.file = LOCATE_standard___collection___array;
5717 fra.me.line = 719;
5718 fra.me.meth = LOCATE_standard___collection___array___ArrayCapable___calloc_array;
5719 fra.me.has_broke = 0;
5720 fra.me.REG_size = 1;
5721 fra.me.nitni_local_ref_head = NULL;
5722 fra.me.REG[0] = NIT_NULL;
5723 fra.me.REG[0] = p0;
5724 REGB0 = p1;
5725 /* ../lib/standard/collection/array.nit:719 */
5726 fra.me.REG[0] = NEW_NativeArray(UNTAG_Int(REGB0), sizeof(val_t));
5727 stack_frame_head = fra.me.prev;
5728 return fra.me.REG[0];
5729 }
5730 static const char LOCATE_standard___collection___array___NativeArray_____bra[] = "array::NativeArray::[]";
5731 val_t standard___collection___array___NativeArray_____bra(val_t p0, val_t p1){
5732 struct {struct stack_frame_t me;} fra;
5733 val_t REGB0;
5734 val_t tmp;
5735 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
5736 fra.me.file = LOCATE_standard___collection___array;
5737 fra.me.line = 725;
5738 fra.me.meth = LOCATE_standard___collection___array___NativeArray_____bra;
5739 fra.me.has_broke = 0;
5740 fra.me.REG_size = 1;
5741 fra.me.nitni_local_ref_head = NULL;
5742 fra.me.REG[0] = NIT_NULL;
5743 fra.me.REG[0] = p0;
5744 REGB0 = p1;
5745 /* ../lib/standard/collection/array.nit:725 */
5746 fra.me.REG[0] = ((Nit_NativeArray)fra.me.REG[0])->val[UNTAG_Int(REGB0)];
5747 stack_frame_head = fra.me.prev;
5748 return fra.me.REG[0];
5749 }
5750 static const char LOCATE_standard___collection___array___NativeArray_____braeq[] = "array::NativeArray::[]=";
5751 void standard___collection___array___NativeArray_____braeq(val_t p0, val_t p1, val_t p2){
5752 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
5753 val_t REGB0;
5754 val_t tmp;
5755 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
5756 fra.me.file = LOCATE_standard___collection___array;
5757 fra.me.line = 726;
5758 fra.me.meth = LOCATE_standard___collection___array___NativeArray_____braeq;
5759 fra.me.has_broke = 0;
5760 fra.me.REG_size = 2;
5761 fra.me.nitni_local_ref_head = NULL;
5762 fra.me.REG[0] = NIT_NULL;
5763 fra.me.REG[1] = NIT_NULL;
5764 fra.me.REG[0] = p0;
5765 REGB0 = p1;
5766 fra.me.REG[1] = p2;
5767 /* ../lib/standard/collection/array.nit:726 */
5768 ((Nit_NativeArray)fra.me.REG[0])->val[UNTAG_Int(REGB0)]=fra.me.REG[1];
5769 stack_frame_head = fra.me.prev;
5770 return;
5771 }
5772 static const char LOCATE_standard___collection___array___NativeArray___copy_to[] = "array::NativeArray::copy_to";
5773 void standard___collection___array___NativeArray___copy_to(val_t p0, val_t p1, val_t p2){
5774 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
5775 val_t REGB0;
5776 val_t tmp;
5777 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
5778 fra.me.file = LOCATE_standard___collection___array;
5779 fra.me.line = 727;
5780 fra.me.meth = LOCATE_standard___collection___array___NativeArray___copy_to;
5781 fra.me.has_broke = 0;
5782 fra.me.REG_size = 2;
5783 fra.me.nitni_local_ref_head = NULL;
5784 fra.me.REG[0] = NIT_NULL;
5785 fra.me.REG[1] = NIT_NULL;
5786 fra.me.REG[0] = p0;
5787 fra.me.REG[1] = p1;
5788 REGB0 = p2;
5789 /* ../lib/standard/collection/array.nit:727 */
5790 (void)memcpy(((Nit_NativeArray )fra.me.REG[1])->val, ((Nit_NativeArray)fra.me.REG[0])->val, UNTAG_Int(REGB0)*sizeof(val_t));
5791 stack_frame_head = fra.me.prev;
5792 return;
5793 }