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