gc: add 'help' option to list all available GC
[nit.git] / c_src / hash_collection._sep.c
1 /* This C file is generated by NIT to compile module hash_collection. */
2 #include "hash_collection._sep.h"
3 val_t hash_collection___HashCollection___length(val_t p0){
4 struct {struct stack_frame_t me;} fra;
5 val_t REGB0;
6 val_t tmp;
7 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
8 fra.me.file = LOCATE_hash_collection;
9 fra.me.line = 25;
10 fra.me.meth = LOCATE_hash_collection___HashCollection___length;
11 fra.me.has_broke = 0;
12 fra.me.REG_size = 1;
13 fra.me.REG[0] = NIT_NULL;
14 fra.me.REG[0] = p0;
15 REGB0 = TAG_Bool(ATTR_hash_collection___HashCollection____length(fra.me.REG[0])!=NIT_NULL);
16 /* ./../lib/standard//collection//hash_collection.nit:25 */
17 if (UNTAG_Bool(REGB0)) {
18 } else {
19 fprintf(stderr, "Uninitialized attribute %s", "_length");
20 fprintf(stderr, " (%s:%d)\n", LOCATE_hash_collection, 25);
21 nit_exit(1);
22 }
23 REGB0 = ATTR_hash_collection___HashCollection____length(fra.me.REG[0]);
24 stack_frame_head = fra.me.prev;
25 return REGB0;
26 }
27 val_t hash_collection___HashCollection___first_item(val_t p0){
28 struct {struct stack_frame_t me;} fra;
29 val_t tmp;
30 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
31 fra.me.file = LOCATE_hash_collection;
32 fra.me.line = 27;
33 fra.me.meth = LOCATE_hash_collection___HashCollection___first_item;
34 fra.me.has_broke = 0;
35 fra.me.REG_size = 1;
36 fra.me.REG[0] = NIT_NULL;
37 fra.me.REG[0] = p0;
38 fra.me.REG[0] = ATTR_hash_collection___HashCollection____first_item(fra.me.REG[0]);
39 /* ./../lib/standard//collection//hash_collection.nit:27 */
40 stack_frame_head = fra.me.prev;
41 return fra.me.REG[0];
42 }
43 val_t hash_collection___HashCollection___index_at(val_t p0, val_t p1){
44 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
45 val_t REGB0;
46 val_t REGB1;
47 val_t REGB2;
48 val_t REGB3;
49 val_t REGB4;
50 val_t REGB5;
51 val_t tmp;
52 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
53 fra.me.file = LOCATE_hash_collection;
54 fra.me.line = 36;
55 fra.me.meth = LOCATE_hash_collection___HashCollection___index_at;
56 fra.me.has_broke = 0;
57 fra.me.REG_size = 4;
58 fra.me.REG[0] = NIT_NULL;
59 fra.me.REG[1] = NIT_NULL;
60 fra.me.REG[2] = NIT_NULL;
61 fra.me.REG[3] = NIT_NULL;
62 fra.me.REG[0] = p0;
63 fra.me.REG[1] = p1;
64 fra.me.REG[2] = ATTR_hash_collection___HashCollection____array(fra.me.REG[0]);
65 fra.me.REG[3] = ATTR_hash_collection___HashCollection____last_accessed_key(fra.me.REG[0]);
66 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
67 /* ./../lib/standard//collection//hash_collection.nit:42 */
68 if (UNTAG_Bool(REGB0)) {
69 } else {
70 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
71 REGB0 = REGB1;
72 }
73 if (UNTAG_Bool(REGB0)) {
74 REGB0 = TAG_Bool(ATTR_hash_collection___HashCollection____last_accessed_index(fra.me.REG[0])!=NIT_NULL);
75 if (UNTAG_Bool(REGB0)) {
76 } else {
77 fprintf(stderr, "Uninitialized attribute %s", "_last_accessed_index");
78 fprintf(stderr, " (%s:%d)\n", LOCATE_hash_collection, 42);
79 nit_exit(1);
80 }
81 REGB0 = ATTR_hash_collection___HashCollection____last_accessed_index(fra.me.REG[0]);
82 goto label1;
83 }
84 REGB1 = CALL_hash___Object___hash(fra.me.REG[1])(fra.me.REG[1]);
85 REGB2 = TAG_Bool(ATTR_hash_collection___HashCollection____capacity(fra.me.REG[0])!=NIT_NULL);
86 /* ./../lib/standard//collection//hash_collection.nit:45 */
87 if (UNTAG_Bool(REGB2)) {
88 } else {
89 fprintf(stderr, "Uninitialized attribute %s", "_capacity");
90 fprintf(stderr, " (%s:%d)\n", LOCATE_hash_collection, 45);
91 nit_exit(1);
92 }
93 REGB2 = ATTR_hash_collection___HashCollection____capacity(fra.me.REG[0]);
94 REGB2 = TAG_Int(UNTAG_Int(REGB1)%UNTAG_Int(REGB2));
95 REGB1 = TAG_Int(0);
96 REGB1 = TAG_Bool(UNTAG_Int(REGB2)<UNTAG_Int(REGB1));
97 /* ./../lib/standard//collection//hash_collection.nit:46 */
98 if (UNTAG_Bool(REGB1)) {
99 REGB1 = TAG_Int(-UNTAG_Int(REGB2));
100 REGB2 = REGB1;
101 /* ./../lib/standard//collection//hash_collection.nit:46 */
102 }
103 REGB1 = REGB2;
104 /* ./../lib/standard//collection//hash_collection.nit:50 */
105 while(1) {
106 REGB3 = TAG_Bool(true);
107 if (UNTAG_Bool(REGB3)) {
108 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
109 /* ./../lib/standard//collection//hash_collection.nit:51 */
110 if (UNTAG_Bool(REGB3)) {
111 fprintf(stderr, "Reciever is null");
112 fprintf(stderr, " (%s:%d)\n", LOCATE_hash_collection, 51);
113 nit_exit(1);
114 }
115 fra.me.REG[3] = ((Nit_NativeArray)fra.me.REG[2])->val[UNTAG_Int(REGB1)];
116 REGB3 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
117 /* ./../lib/standard//collection//hash_collection.nit:52 */
118 if (UNTAG_Bool(REGB3)) {
119 } else {
120 REGB4 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
121 if (UNTAG_Bool(REGB4)) {
122 REGB4 = TAG_Bool(false);
123 REGB3 = REGB4;
124 } else {
125 REGB4 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
126 REGB3 = REGB4;
127 }
128 }
129 if (UNTAG_Bool(REGB3)) {
130 REGB3 = TAG_Bool(true);
131 } else {
132 REGB4 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
133 if (UNTAG_Bool(REGB4)) {
134 fprintf(stderr, "Reciever is null");
135 fprintf(stderr, " (%s:%d)\n", LOCATE_hash_collection, 52);
136 nit_exit(1);
137 }
138 fra.me.REG[3] = CALL_hash_collection___HashNode___key(fra.me.REG[3])(fra.me.REG[3]);
139 REGB4 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
140 if (UNTAG_Bool(REGB4)) {
141 } else {
142 REGB5 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
143 if (UNTAG_Bool(REGB5)) {
144 REGB5 = TAG_Bool(false);
145 REGB4 = REGB5;
146 } else {
147 REGB5 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
148 REGB4 = REGB5;
149 }
150 }
151 REGB3 = REGB4;
152 }
153 if (UNTAG_Bool(REGB3)) {
154 /* ./../lib/standard//collection//hash_collection.nit:53 */
155 ATTR_hash_collection___HashCollection____last_accessed_index(fra.me.REG[0]) = REGB1;
156 /* ./../lib/standard//collection//hash_collection.nit:54 */
157 ATTR_hash_collection___HashCollection____last_accessed_key(fra.me.REG[0]) = fra.me.REG[1];
158 REGB0 = REGB1;
159 /* ./../lib/standard//collection//hash_collection.nit:55 */
160 goto label1;
161 }
162 REGB3 = TAG_Int(1);
163 REGB3 = TAG_Int(UNTAG_Int(REGB1)-UNTAG_Int(REGB3));
164 REGB1 = REGB3;
165 REGB3 = TAG_Int(0);
166 REGB3 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB3));
167 /* ./../lib/standard//collection//hash_collection.nit:58 */
168 if (UNTAG_Bool(REGB3)) {
169 REGB3 = TAG_Bool(ATTR_hash_collection___HashCollection____capacity(fra.me.REG[0])!=NIT_NULL);
170 if (UNTAG_Bool(REGB3)) {
171 } else {
172 fprintf(stderr, "Uninitialized attribute %s", "_capacity");
173 fprintf(stderr, " (%s:%d)\n", LOCATE_hash_collection, 58);
174 nit_exit(1);
175 }
176 REGB3 = ATTR_hash_collection___HashCollection____capacity(fra.me.REG[0]);
177 REGB4 = TAG_Int(1);
178 REGB4 = TAG_Int(UNTAG_Int(REGB3)-UNTAG_Int(REGB4));
179 REGB1 = REGB4;
180 /* ./../lib/standard//collection//hash_collection.nit:58 */
181 }
182 REGB4 = TAG_Bool(IS_EQUAL_OO(REGB1,REGB2));
183 /* ./../lib/standard//collection//hash_collection.nit:59 */
184 if (UNTAG_Bool(REGB4)) {
185 } else {
186 REGB3 = TAG_Bool((REGB1)==(REGB2));
187 REGB4 = REGB3;
188 /* ./../lib/standard//collection//hash_collection.nit:59 */
189 }
190 REGB4 = TAG_Bool(!UNTAG_Bool(REGB4));
191 if (UNTAG_Bool(REGB4)) {
192 } else {
193 fprintf(stderr, "Assert %s failed", "'no_loop'");
194 fprintf(stderr, " (%s:%d)\n", LOCATE_hash_collection, 59);
195 nit_exit(1);
196 }
197 } else {
198 /* ./../lib/standard//collection//hash_collection.nit:50 */
199 goto label2;
200 }
201 }
202 label2: while(0);
203 /* ./../lib/standard//collection//hash_collection.nit:61 */
204 fprintf(stderr, "Aborted");
205 fprintf(stderr, " (%s:%d)\n", LOCATE_hash_collection, 61);
206 nit_exit(1);
207 label1: while(0);
208 stack_frame_head = fra.me.prev;
209 return REGB0;
210 }
211 void hash_collection___HashCollection___store(val_t p0, val_t p1, val_t p2){
212 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
213 val_t REGB0;
214 val_t REGB1;
215 val_t REGB2;
216 val_t tmp;
217 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
218 fra.me.file = LOCATE_hash_collection;
219 fra.me.line = 64;
220 fra.me.meth = LOCATE_hash_collection___HashCollection___store;
221 fra.me.has_broke = 0;
222 fra.me.REG_size = 3;
223 fra.me.REG[0] = NIT_NULL;
224 fra.me.REG[1] = NIT_NULL;
225 fra.me.REG[2] = NIT_NULL;
226 fra.me.REG[0] = p0;
227 REGB0 = p1;
228 fra.me.REG[1] = p2;
229 fra.me.REG[2] = ATTR_hash_collection___HashCollection____first_item(fra.me.REG[0]);
230 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
231 /* ./../lib/standard//collection//hash_collection.nit:68 */
232 if (UNTAG_Bool(REGB1)) {
233 } else {
234 REGB2 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
235 if (UNTAG_Bool(REGB2)) {
236 REGB2 = TAG_Bool(false);
237 REGB1 = REGB2;
238 } else {
239 REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
240 REGB1 = REGB2;
241 }
242 }
243 if (UNTAG_Bool(REGB1)) {
244 /* ./../lib/standard//collection//hash_collection.nit:69 */
245 ATTR_hash_collection___HashCollection____first_item(fra.me.REG[0]) = fra.me.REG[1];
246 } else {
247 fra.me.REG[2] = ATTR_hash_collection___HashCollection____last_item(fra.me.REG[0]);
248 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
249 /* ./../lib/standard//collection//hash_collection.nit:71 */
250 if (UNTAG_Bool(REGB1)) {
251 fprintf(stderr, "Reciever is null");
252 fprintf(stderr, " (%s:%d)\n", LOCATE_hash_collection, 71);
253 nit_exit(1);
254 }
255 CALL_hash_collection___HashNode___next_item__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
256 }
257 fra.me.REG[2] = ATTR_hash_collection___HashCollection____last_item(fra.me.REG[0]);
258 /* ./../lib/standard//collection//hash_collection.nit:73 */
259 CALL_hash_collection___HashNode___prev_item__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
260 /* ./../lib/standard//collection//hash_collection.nit:74 */
261 CALL_hash_collection___HashNode___next_item__eq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
262 /* ./../lib/standard//collection//hash_collection.nit:75 */
263 ATTR_hash_collection___HashCollection____last_item(fra.me.REG[0]) = fra.me.REG[1];
264 fra.me.REG[2] = ATTR_hash_collection___HashCollection____array(fra.me.REG[0]);
265 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
266 /* ./../lib/standard//collection//hash_collection.nit:77 */
267 if (UNTAG_Bool(REGB1)) {
268 fprintf(stderr, "Reciever is null");
269 fprintf(stderr, " (%s:%d)\n", LOCATE_hash_collection, 77);
270 nit_exit(1);
271 }
272 fra.me.REG[2] = ((Nit_NativeArray)fra.me.REG[2])->val[UNTAG_Int(REGB0)];
273 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
274 /* ./../lib/standard//collection//hash_collection.nit:77 */
275 if (UNTAG_Bool(REGB1)) {
276 } else {
277 REGB2 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
278 if (UNTAG_Bool(REGB2)) {
279 REGB2 = TAG_Bool(false);
280 REGB1 = REGB2;
281 } else {
282 REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
283 REGB1 = REGB2;
284 }
285 }
286 if (UNTAG_Bool(REGB1)) {
287 } else {
288 fprintf(stderr, "Assert failed");
289 fprintf(stderr, " (%s:%d)\n", LOCATE_hash_collection, 77);
290 nit_exit(1);
291 }
292 fra.me.REG[2] = ATTR_hash_collection___HashCollection____array(fra.me.REG[0]);
293 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
294 /* ./../lib/standard//collection//hash_collection.nit:78 */
295 if (UNTAG_Bool(REGB1)) {
296 fprintf(stderr, "Reciever is null");
297 fprintf(stderr, " (%s:%d)\n", LOCATE_hash_collection, 78);
298 nit_exit(1);
299 }
300 /* ./../lib/standard//collection//array.nit:591 */
301 ((Nit_NativeArray)fra.me.REG[2])->val[UNTAG_Int(REGB0)]=fra.me.REG[1];
302 REGB0 = TAG_Bool(ATTR_hash_collection___HashCollection____length(fra.me.REG[0])!=NIT_NULL);
303 /* ./../lib/standard//collection//hash_collection.nit:79 */
304 if (UNTAG_Bool(REGB0)) {
305 } else {
306 fprintf(stderr, "Uninitialized attribute %s", "_length");
307 fprintf(stderr, " (%s:%d)\n", LOCATE_hash_collection, 79);
308 nit_exit(1);
309 }
310 REGB0 = ATTR_hash_collection___HashCollection____length(fra.me.REG[0]);
311 REGB1 = TAG_Int(1);
312 REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
313 /* ./../lib/standard//collection//hash_collection.nit:80 */
314 ATTR_hash_collection___HashCollection____length(fra.me.REG[0]) = REGB1;
315 REGB1 = TAG_Int(5);
316 REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
317 REGB2 = TAG_Int(150);
318 REGB2 = TAG_Int(UNTAG_Int(REGB1)*UNTAG_Int(REGB2));
319 REGB1 = TAG_Int(100);
320 REGB1 = TAG_Int(UNTAG_Int(REGB2)/UNTAG_Int(REGB1));
321 REGB0 = REGB1;
322 REGB1 = TAG_Bool(ATTR_hash_collection___HashCollection____capacity(fra.me.REG[0])!=NIT_NULL);
323 /* ./../lib/standard//collection//hash_collection.nit:82 */
324 if (UNTAG_Bool(REGB1)) {
325 } else {
326 fprintf(stderr, "Uninitialized attribute %s", "_capacity");
327 fprintf(stderr, " (%s:%d)\n", LOCATE_hash_collection, 82);
328 nit_exit(1);
329 }
330 REGB1 = ATTR_hash_collection___HashCollection____capacity(fra.me.REG[0]);
331 REGB1 = TAG_Bool(UNTAG_Int(REGB0)>=UNTAG_Int(REGB1));
332 /* ./../lib/standard//collection//hash_collection.nit:82 */
333 if (UNTAG_Bool(REGB1)) {
334 REGB1 = TAG_Int(2);
335 REGB1 = TAG_Int(UNTAG_Int(REGB0)*UNTAG_Int(REGB1));
336 /* ./../lib/standard//collection//hash_collection.nit:83 */
337 CALL_hash_collection___HashCollection___enlarge(fra.me.REG[0])(fra.me.REG[0], REGB1);
338 }
339 stack_frame_head = fra.me.prev;
340 return;
341 }
342 void hash_collection___HashCollection___remove_index(val_t p0, val_t p1){
343 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
344 val_t REGB0;
345 val_t REGB1;
346 val_t REGB2;
347 val_t REGB3;
348 val_t tmp;
349 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
350 fra.me.file = LOCATE_hash_collection;
351 fra.me.line = 87;
352 fra.me.meth = LOCATE_hash_collection___HashCollection___remove_index;
353 fra.me.has_broke = 0;
354 fra.me.REG_size = 3;
355 fra.me.REG[0] = NIT_NULL;
356 fra.me.REG[1] = NIT_NULL;
357 fra.me.REG[2] = NIT_NULL;
358 fra.me.REG[0] = p0;
359 REGB0 = p1;
360 REGB1 = TAG_Int(0);
361 REGB1 = TAG_Bool(UNTAG_Int(REGB0)>=UNTAG_Int(REGB1));
362 /* ./../lib/standard//collection//hash_collection.nit:89 */
363 if (UNTAG_Bool(REGB1)) {
364 REGB1 = TAG_Bool(ATTR_hash_collection___HashCollection____capacity(fra.me.REG[0])!=NIT_NULL);
365 if (UNTAG_Bool(REGB1)) {
366 } else {
367 fprintf(stderr, "Uninitialized attribute %s", "_capacity");
368 fprintf(stderr, " (%s:%d)\n", LOCATE_hash_collection, 89);
369 nit_exit(1);
370 }
371 REGB1 = ATTR_hash_collection___HashCollection____capacity(fra.me.REG[0]);
372 REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
373 /* ./../lib/standard//collection//hash_collection.nit:89 */
374 } else {
375 REGB2 = TAG_Bool(false);
376 REGB1 = REGB2;
377 }
378 if (UNTAG_Bool(REGB1)) {
379 } else {
380 fprintf(stderr, "Assert %s failed", "'correct_index'");
381 fprintf(stderr, " (%s:%d)\n", LOCATE_hash_collection, 89);
382 nit_exit(1);
383 }
384 fra.me.REG[1] = ATTR_hash_collection___HashCollection____array(fra.me.REG[0]);
385 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
386 /* ./../lib/standard//collection//hash_collection.nit:90 */
387 if (UNTAG_Bool(REGB1)) {
388 fprintf(stderr, "Reciever is null");
389 fprintf(stderr, " (%s:%d)\n", LOCATE_hash_collection, 90);
390 nit_exit(1);
391 }
392 fra.me.REG[1] = ((Nit_NativeArray)fra.me.REG[1])->val[UNTAG_Int(REGB0)];
393 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
394 /* ./../lib/standard//collection//hash_collection.nit:91 */
395 if (UNTAG_Bool(REGB1)) {
396 } else {
397 REGB2 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
398 if (UNTAG_Bool(REGB2)) {
399 REGB2 = TAG_Bool(false);
400 REGB1 = REGB2;
401 } else {
402 REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
403 REGB1 = REGB2;
404 }
405 }
406 REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
407 if (UNTAG_Bool(REGB1)) {
408 } else {
409 fprintf(stderr, "Assert %s failed", "'has_couple'");
410 fprintf(stderr, " (%s:%d)\n", LOCATE_hash_collection, 91);
411 nit_exit(1);
412 }
413 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
414 /* ./../lib/standard//collection//hash_collection.nit:93 */
415 if (UNTAG_Bool(REGB1)) {
416 fprintf(stderr, "Reciever is null");
417 fprintf(stderr, " (%s:%d)\n", LOCATE_hash_collection, 93);
418 nit_exit(1);
419 }
420 fra.me.REG[2] = CALL_hash_collection___HashNode___prev_item(fra.me.REG[1])(fra.me.REG[1]);
421 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
422 /* ./../lib/standard//collection//hash_collection.nit:94 */
423 if (UNTAG_Bool(REGB1)) {
424 fprintf(stderr, "Reciever is null");
425 fprintf(stderr, " (%s:%d)\n", LOCATE_hash_collection, 94);
426 nit_exit(1);
427 }
428 fra.me.REG[1] = CALL_hash_collection___HashNode___next_item(fra.me.REG[1])(fra.me.REG[1]);
429 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
430 /* ./../lib/standard//collection//hash_collection.nit:95 */
431 if (UNTAG_Bool(REGB1)) {
432 } else {
433 REGB2 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
434 if (UNTAG_Bool(REGB2)) {
435 REGB2 = TAG_Bool(false);
436 REGB1 = REGB2;
437 } else {
438 REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
439 REGB1 = REGB2;
440 }
441 }
442 REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
443 if (UNTAG_Bool(REGB1)) {
444 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
445 /* ./../lib/standard//collection//hash_collection.nit:96 */
446 if (UNTAG_Bool(REGB1)) {
447 fprintf(stderr, "Reciever is null");
448 fprintf(stderr, " (%s:%d)\n", LOCATE_hash_collection, 96);
449 nit_exit(1);
450 }
451 CALL_hash_collection___HashNode___next_item__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
452 } else {
453 /* ./../lib/standard//collection//hash_collection.nit:98 */
454 ATTR_hash_collection___HashCollection____first_item(fra.me.REG[0]) = fra.me.REG[1];
455 }
456 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
457 /* ./../lib/standard//collection//hash_collection.nit:100 */
458 if (UNTAG_Bool(REGB1)) {
459 } else {
460 REGB2 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
461 if (UNTAG_Bool(REGB2)) {
462 REGB2 = TAG_Bool(false);
463 REGB1 = REGB2;
464 } else {
465 REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
466 REGB1 = REGB2;
467 }
468 }
469 REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
470 if (UNTAG_Bool(REGB1)) {
471 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
472 /* ./../lib/standard//collection//hash_collection.nit:101 */
473 if (UNTAG_Bool(REGB1)) {
474 fprintf(stderr, "Reciever is null");
475 fprintf(stderr, " (%s:%d)\n", LOCATE_hash_collection, 101);
476 nit_exit(1);
477 }
478 CALL_hash_collection___HashNode___prev_item__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
479 } else {
480 /* ./../lib/standard//collection//hash_collection.nit:103 */
481 ATTR_hash_collection___HashCollection____last_item(fra.me.REG[0]) = fra.me.REG[2];
482 }
483 fra.me.REG[2] = ATTR_hash_collection___HashCollection____array(fra.me.REG[0]);
484 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
485 /* ./../lib/standard//collection//hash_collection.nit:106 */
486 if (UNTAG_Bool(REGB1)) {
487 fprintf(stderr, "Reciever is null");
488 fprintf(stderr, " (%s:%d)\n", LOCATE_hash_collection, 106);
489 nit_exit(1);
490 }
491 /* ./../lib/standard//collection//array.nit:591 */
492 ((Nit_NativeArray)fra.me.REG[2])->val[UNTAG_Int(REGB0)]=NIT_NULL;
493 REGB1 = ATTR_hash_collection___HashCollection____length(fra.me.REG[0]);
494 REGB2 = TAG_Int(1);
495 REGB2 = TAG_Int(UNTAG_Int(REGB1)-UNTAG_Int(REGB2));
496 /* ./../lib/standard//collection//hash_collection.nit:107 */
497 ATTR_hash_collection___HashCollection____length(fra.me.REG[0]) = REGB2;
498 /* ./../lib/standard//collection//hash_collection.nit:109 */
499 while(1) {
500 REGB2 = TAG_Bool(true);
501 if (UNTAG_Bool(REGB2)) {
502 REGB2 = TAG_Int(1);
503 REGB2 = TAG_Int(UNTAG_Int(REGB0)-UNTAG_Int(REGB2));
504 REGB0 = REGB2;
505 REGB2 = TAG_Int(0);
506 REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB2));
507 /* ./../lib/standard//collection//hash_collection.nit:111 */
508 if (UNTAG_Bool(REGB2)) {
509 REGB2 = TAG_Bool(ATTR_hash_collection___HashCollection____capacity(fra.me.REG[0])!=NIT_NULL);
510 /* ./../lib/standard//collection//hash_collection.nit:112 */
511 if (UNTAG_Bool(REGB2)) {
512 } else {
513 fprintf(stderr, "Uninitialized attribute %s", "_capacity");
514 fprintf(stderr, " (%s:%d)\n", LOCATE_hash_collection, 112);
515 nit_exit(1);
516 }
517 REGB2 = ATTR_hash_collection___HashCollection____capacity(fra.me.REG[0]);
518 REGB1 = TAG_Int(1);
519 REGB1 = TAG_Int(UNTAG_Int(REGB2)-UNTAG_Int(REGB1));
520 REGB0 = REGB1;
521 /* ./../lib/standard//collection//hash_collection.nit:112 */
522 }
523 fra.me.REG[2] = ATTR_hash_collection___HashCollection____array(fra.me.REG[0]);
524 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
525 /* ./../lib/standard//collection//hash_collection.nit:114 */
526 if (UNTAG_Bool(REGB1)) {
527 fprintf(stderr, "Reciever is null");
528 fprintf(stderr, " (%s:%d)\n", LOCATE_hash_collection, 114);
529 nit_exit(1);
530 }
531 fra.me.REG[2] = ((Nit_NativeArray)fra.me.REG[2])->val[UNTAG_Int(REGB0)];
532 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
533 /* ./../lib/standard//collection//hash_collection.nit:115 */
534 if (UNTAG_Bool(REGB1)) {
535 } else {
536 REGB2 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
537 if (UNTAG_Bool(REGB2)) {
538 REGB2 = TAG_Bool(false);
539 REGB1 = REGB2;
540 } else {
541 REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
542 REGB1 = REGB2;
543 }
544 }
545 if (UNTAG_Bool(REGB1)) {
546 /* ./../lib/standard//collection//hash_collection.nit:116 */
547 goto label1;
548 }
549 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
550 /* ./../lib/standard//collection//hash_collection.nit:118 */
551 if (UNTAG_Bool(REGB1)) {
552 fprintf(stderr, "Reciever is null");
553 fprintf(stderr, " (%s:%d)\n", LOCATE_hash_collection, 118);
554 nit_exit(1);
555 }
556 fra.me.REG[1] = CALL_hash_collection___HashNode___key(fra.me.REG[2])(fra.me.REG[2]);
557 REGB1 = CALL_hash_collection___HashCollection___index_at(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
558 REGB2 = TAG_Bool(IS_EQUAL_OO(REGB0,REGB1));
559 /* ./../lib/standard//collection//hash_collection.nit:119 */
560 if (UNTAG_Bool(REGB2)) {
561 } else {
562 REGB3 = TAG_Bool((REGB0)==(REGB1));
563 REGB2 = REGB3;
564 /* ./../lib/standard//collection//hash_collection.nit:119 */
565 }
566 REGB2 = TAG_Bool(!UNTAG_Bool(REGB2));
567 if (UNTAG_Bool(REGB2)) {
568 fra.me.REG[1] = ATTR_hash_collection___HashCollection____array(fra.me.REG[0]);
569 REGB2 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
570 /* ./../lib/standard//collection//hash_collection.nit:120 */
571 if (UNTAG_Bool(REGB2)) {
572 fprintf(stderr, "Reciever is null");
573 fprintf(stderr, " (%s:%d)\n", LOCATE_hash_collection, 120);
574 nit_exit(1);
575 }
576 /* ./../lib/standard//collection//array.nit:591 */
577 ((Nit_NativeArray)fra.me.REG[1])->val[UNTAG_Int(REGB0)]=NIT_NULL;
578 fra.me.REG[1] = ATTR_hash_collection___HashCollection____array(fra.me.REG[0]);
579 REGB2 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
580 /* ./../lib/standard//collection//hash_collection.nit:121 */
581 if (UNTAG_Bool(REGB2)) {
582 fprintf(stderr, "Reciever is null");
583 fprintf(stderr, " (%s:%d)\n", LOCATE_hash_collection, 121);
584 nit_exit(1);
585 }
586 fra.me.REG[1] = ((Nit_NativeArray)fra.me.REG[1])->val[UNTAG_Int(REGB1)];
587 REGB2 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
588 /* ./../lib/standard//collection//hash_collection.nit:121 */
589 if (UNTAG_Bool(REGB2)) {
590 } else {
591 REGB3 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
592 if (UNTAG_Bool(REGB3)) {
593 REGB3 = TAG_Bool(false);
594 REGB2 = REGB3;
595 } else {
596 REGB3 = CALL_kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
597 REGB2 = REGB3;
598 }
599 }
600 if (UNTAG_Bool(REGB2)) {
601 } else {
602 fprintf(stderr, "Assert failed");
603 fprintf(stderr, " (%s:%d)\n", LOCATE_hash_collection, 121);
604 nit_exit(1);
605 }
606 fra.me.REG[1] = ATTR_hash_collection___HashCollection____array(fra.me.REG[0]);
607 REGB2 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
608 /* ./../lib/standard//collection//hash_collection.nit:122 */
609 if (UNTAG_Bool(REGB2)) {
610 fprintf(stderr, "Reciever is null");
611 fprintf(stderr, " (%s:%d)\n", LOCATE_hash_collection, 122);
612 nit_exit(1);
613 }
614 /* ./../lib/standard//collection//array.nit:591 */
615 ((Nit_NativeArray)fra.me.REG[1])->val[UNTAG_Int(REGB1)]=fra.me.REG[2];
616 }
617 } else {
618 /* ./../lib/standard//collection//hash_collection.nit:109 */
619 goto label2;
620 }
621 }
622 label2: while(0);
623 label1: while(0);
624 stack_frame_head = fra.me.prev;
625 return;
626 }
627 void hash_collection___HashCollection___raz(val_t p0){
628 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
629 val_t REGB0;
630 val_t REGB1;
631 val_t tmp;
632 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
633 fra.me.file = LOCATE_hash_collection;
634 fra.me.line = 127;
635 fra.me.meth = LOCATE_hash_collection___HashCollection___raz;
636 fra.me.has_broke = 0;
637 fra.me.REG_size = 2;
638 fra.me.REG[0] = NIT_NULL;
639 fra.me.REG[1] = NIT_NULL;
640 fra.me.REG[0] = p0;
641 REGB0 = TAG_Bool(ATTR_hash_collection___HashCollection____capacity(fra.me.REG[0])!=NIT_NULL);
642 /* ./../lib/standard//collection//hash_collection.nit:129 */
643 if (UNTAG_Bool(REGB0)) {
644 } else {
645 fprintf(stderr, "Uninitialized attribute %s", "_capacity");
646 fprintf(stderr, " (%s:%d)\n", LOCATE_hash_collection, 129);
647 nit_exit(1);
648 }
649 REGB0 = ATTR_hash_collection___HashCollection____capacity(fra.me.REG[0]);
650 REGB1 = TAG_Int(1);
651 REGB1 = TAG_Int(UNTAG_Int(REGB0)-UNTAG_Int(REGB1));
652 /* ./../lib/standard//collection//hash_collection.nit:130 */
653 while(1) {
654 REGB0 = TAG_Int(0);
655 REGB0 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB0));
656 /* ./../lib/standard//collection//hash_collection.nit:130 */
657 if (UNTAG_Bool(REGB0)) {
658 fra.me.REG[1] = ATTR_hash_collection___HashCollection____array(fra.me.REG[0]);
659 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
660 /* ./../lib/standard//collection//hash_collection.nit:131 */
661 if (UNTAG_Bool(REGB0)) {
662 fprintf(stderr, "Reciever is null");
663 fprintf(stderr, " (%s:%d)\n", LOCATE_hash_collection, 131);
664 nit_exit(1);
665 }
666 /* ./../lib/standard//collection//array.nit:591 */
667 ((Nit_NativeArray)fra.me.REG[1])->val[UNTAG_Int(REGB1)]=NIT_NULL;
668 REGB0 = TAG_Int(1);
669 REGB0 = TAG_Int(UNTAG_Int(REGB1)-UNTAG_Int(REGB0));
670 REGB1 = REGB0;
671 /* ./../lib/standard//collection//hash_collection.nit:132 */
672 } else {
673 /* ./../lib/standard//collection//hash_collection.nit:130 */
674 goto label1;
675 }
676 }
677 label1: while(0);
678 REGB1 = TAG_Int(0);
679 /* ./../lib/standard//collection//hash_collection.nit:134 */
680 ATTR_hash_collection___HashCollection____length(fra.me.REG[0]) = REGB1;
681 /* ./../lib/standard//collection//hash_collection.nit:135 */
682 ATTR_hash_collection___HashCollection____first_item(fra.me.REG[0]) = NIT_NULL;
683 /* ./../lib/standard//collection//hash_collection.nit:136 */
684 ATTR_hash_collection___HashCollection____last_item(fra.me.REG[0]) = NIT_NULL;
685 /* ./../lib/standard//collection//hash_collection.nit:137 */
686 ATTR_hash_collection___HashCollection____last_accessed_key(fra.me.REG[0]) = NIT_NULL;
687 stack_frame_head = fra.me.prev;
688 return;
689 }
690 void hash_collection___HashCollection___enlarge(val_t p0, val_t p1){
691 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
692 val_t REGB0;
693 val_t REGB1;
694 val_t REGB2;
695 val_t REGB3;
696 val_t tmp;
697 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
698 fra.me.file = LOCATE_hash_collection;
699 fra.me.line = 140;
700 fra.me.meth = LOCATE_hash_collection___HashCollection___enlarge;
701 fra.me.has_broke = 0;
702 fra.me.REG_size = 4;
703 fra.me.REG[0] = NIT_NULL;
704 fra.me.REG[1] = NIT_NULL;
705 fra.me.REG[2] = NIT_NULL;
706 fra.me.REG[3] = NIT_NULL;
707 fra.me.REG[0] = p0;
708 REGB0 = p1;
709 REGB1 = TAG_Bool(ATTR_hash_collection___HashCollection____capacity(fra.me.REG[0])!=NIT_NULL);
710 /* ./../lib/standard//collection//hash_collection.nit:142 */
711 if (UNTAG_Bool(REGB1)) {
712 } else {
713 fprintf(stderr, "Uninitialized attribute %s", "_capacity");
714 fprintf(stderr, " (%s:%d)\n", LOCATE_hash_collection, 142);
715 nit_exit(1);
716 }
717 REGB1 = ATTR_hash_collection___HashCollection____capacity(fra.me.REG[0]);
718 REGB2 = TAG_Bool(ATTR_hash_collection___HashCollection____length(fra.me.REG[0])!=NIT_NULL);
719 /* ./../lib/standard//collection//hash_collection.nit:145 */
720 if (UNTAG_Bool(REGB2)) {
721 } else {
722 fprintf(stderr, "Uninitialized attribute %s", "_length");
723 fprintf(stderr, " (%s:%d)\n", LOCATE_hash_collection, 145);
724 nit_exit(1);
725 }
726 REGB2 = ATTR_hash_collection___HashCollection____length(fra.me.REG[0]);
727 REGB3 = TAG_Int(1);
728 REGB3 = TAG_Int(UNTAG_Int(REGB2)+UNTAG_Int(REGB3));
729 REGB3 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB3));
730 /* ./../lib/standard//collection//hash_collection.nit:145 */
731 if (UNTAG_Bool(REGB3)) {
732 REGB3 = TAG_Bool(ATTR_hash_collection___HashCollection____length(fra.me.REG[0])!=NIT_NULL);
733 if (UNTAG_Bool(REGB3)) {
734 } else {
735 fprintf(stderr, "Uninitialized attribute %s", "_length");
736 fprintf(stderr, " (%s:%d)\n", LOCATE_hash_collection, 145);
737 nit_exit(1);
738 }
739 REGB3 = ATTR_hash_collection___HashCollection____length(fra.me.REG[0]);
740 REGB2 = TAG_Int(1);
741 REGB2 = TAG_Int(UNTAG_Int(REGB3)+UNTAG_Int(REGB2));
742 REGB0 = REGB2;
743 /* ./../lib/standard//collection//hash_collection.nit:145 */
744 }
745 REGB2 = TAG_Bool(ATTR_hash_collection___HashCollection____capacity(fra.me.REG[0])!=NIT_NULL);
746 /* ./../lib/standard//collection//hash_collection.nit:146 */
747 if (UNTAG_Bool(REGB2)) {
748 } else {
749 fprintf(stderr, "Uninitialized attribute %s", "_capacity");
750 fprintf(stderr, " (%s:%d)\n", LOCATE_hash_collection, 146);
751 nit_exit(1);
752 }
753 REGB2 = ATTR_hash_collection___HashCollection____capacity(fra.me.REG[0]);
754 REGB2 = TAG_Bool(UNTAG_Int(REGB0)<=UNTAG_Int(REGB2));
755 /* ./../lib/standard//collection//hash_collection.nit:146 */
756 if (UNTAG_Bool(REGB2)) {
757 goto label1;
758 }
759 /* ./../lib/standard//collection//hash_collection.nit:147 */
760 ATTR_hash_collection___HashCollection____capacity(fra.me.REG[0]) = REGB0;
761 /* ./../lib/standard//collection//hash_collection.nit:148 */
762 ATTR_hash_collection___HashCollection____last_accessed_key(fra.me.REG[0]) = NIT_NULL;
763 fra.me.REG[1] = NEW_NativeArray(UNTAG_Int(REGB0), sizeof(val_t));
764 /* ./../lib/standard//collection//hash_collection.nit:152 */
765 ATTR_hash_collection___HashCollection____array(fra.me.REG[0]) = fra.me.REG[1];
766 REGB2 = TAG_Int(1);
767 REGB2 = TAG_Int(UNTAG_Int(REGB0)-UNTAG_Int(REGB2));
768 /* ./../lib/standard//collection//hash_collection.nit:156 */
769 while(1) {
770 REGB0 = TAG_Int(0);
771 REGB0 = TAG_Bool(UNTAG_Int(REGB2)>=UNTAG_Int(REGB0));
772 /* ./../lib/standard//collection//hash_collection.nit:156 */
773 if (UNTAG_Bool(REGB0)) {
774 /* ./../lib/standard//collection//array.nit:591 */
775 ((Nit_NativeArray)fra.me.REG[1])->val[UNTAG_Int(REGB2)]=NIT_NULL;
776 REGB0 = TAG_Int(1);
777 REGB0 = TAG_Int(UNTAG_Int(REGB2)-UNTAG_Int(REGB0));
778 REGB2 = REGB0;
779 /* ./../lib/standard//collection//hash_collection.nit:158 */
780 } else {
781 /* ./../lib/standard//collection//hash_collection.nit:156 */
782 goto label2;
783 }
784 }
785 label2: while(0);
786 REGB2 = TAG_Bool(ATTR_hash_collection___HashCollection____capacity(fra.me.REG[0])!=NIT_NULL);
787 /* ./../lib/standard//collection//hash_collection.nit:161 */
788 if (UNTAG_Bool(REGB2)) {
789 } else {
790 fprintf(stderr, "Uninitialized attribute %s", "_capacity");
791 fprintf(stderr, " (%s:%d)\n", LOCATE_hash_collection, 161);
792 nit_exit(1);
793 }
794 REGB2 = ATTR_hash_collection___HashCollection____capacity(fra.me.REG[0]);
795 REGB1 = TAG_Bool(UNTAG_Int(REGB2)<=UNTAG_Int(REGB1));
796 /* ./../lib/standard//collection//hash_collection.nit:161 */
797 if (UNTAG_Bool(REGB1)) {
798 goto label1;
799 }
800 fra.me.REG[2] = ATTR_hash_collection___HashCollection____first_item(fra.me.REG[0]);
801 /* ./../lib/standard//collection//hash_collection.nit:165 */
802 while(1) {
803 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
804 if (UNTAG_Bool(REGB1)) {
805 } else {
806 REGB2 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
807 if (UNTAG_Bool(REGB2)) {
808 REGB2 = TAG_Bool(false);
809 REGB1 = REGB2;
810 } else {
811 REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
812 REGB1 = REGB2;
813 }
814 }
815 REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
816 if (UNTAG_Bool(REGB1)) {
817 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
818 /* ./../lib/standard//collection//hash_collection.nit:166 */
819 if (UNTAG_Bool(REGB1)) {
820 fprintf(stderr, "Reciever is null");
821 fprintf(stderr, " (%s:%d)\n", LOCATE_hash_collection, 166);
822 nit_exit(1);
823 }
824 fra.me.REG[3] = CALL_hash_collection___HashNode___key(fra.me.REG[2])(fra.me.REG[2]);
825 REGB1 = CALL_hash_collection___HashCollection___index_at(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[3]);
826 fra.me.REG[3] = ((Nit_NativeArray)fra.me.REG[1])->val[UNTAG_Int(REGB1)];
827 REGB2 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
828 /* ./../lib/standard//collection//hash_collection.nit:167 */
829 if (UNTAG_Bool(REGB2)) {
830 } else {
831 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
832 if (UNTAG_Bool(REGB0)) {
833 REGB0 = TAG_Bool(false);
834 REGB2 = REGB0;
835 } else {
836 REGB0 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
837 REGB2 = REGB0;
838 }
839 }
840 if (UNTAG_Bool(REGB2)) {
841 } else {
842 fprintf(stderr, "Assert failed");
843 fprintf(stderr, " (%s:%d)\n", LOCATE_hash_collection, 167);
844 nit_exit(1);
845 }
846 /* ./../lib/standard//collection//array.nit:591 */
847 ((Nit_NativeArray)fra.me.REG[1])->val[UNTAG_Int(REGB1)]=fra.me.REG[2];
848 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
849 /* ./../lib/standard//collection//hash_collection.nit:169 */
850 if (UNTAG_Bool(REGB1)) {
851 fprintf(stderr, "Reciever is null");
852 fprintf(stderr, " (%s:%d)\n", LOCATE_hash_collection, 169);
853 nit_exit(1);
854 }
855 fra.me.REG[3] = CALL_hash_collection___HashNode___next_item(fra.me.REG[2])(fra.me.REG[2]);
856 fra.me.REG[2] = fra.me.REG[3];
857 } else {
858 /* ./../lib/standard//collection//hash_collection.nit:165 */
859 goto label3;
860 }
861 }
862 label3: while(0);
863 /* ./../lib/standard//collection//hash_collection.nit:171 */
864 ATTR_hash_collection___HashCollection____last_accessed_key(fra.me.REG[0]) = NIT_NULL;
865 label1: while(0);
866 stack_frame_head = fra.me.prev;
867 return;
868 }
869 void hash_collection___HashCollection___init(val_t p0, int* init_table){
870 int itpos0 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_HashCollection].i;
871 struct {struct stack_frame_t me;} fra;
872 val_t tmp;
873 if (init_table[itpos0]) return;
874 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
875 fra.me.file = LOCATE_hash_collection;
876 fra.me.line = 0;
877 fra.me.meth = LOCATE_hash_collection___HashCollection___init;
878 fra.me.has_broke = 0;
879 fra.me.REG_size = 0;
880 stack_frame_head = fra.me.prev;
881 init_table[itpos0] = 1;
882 return;
883 }
884 val_t hash_collection___HashNode___key(val_t p0){
885 struct {struct stack_frame_t me;} fra;
886 val_t tmp;
887 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
888 fra.me.file = LOCATE_hash_collection;
889 fra.me.line = 176;
890 fra.me.meth = LOCATE_hash_collection___HashNode___key;
891 fra.me.has_broke = 0;
892 fra.me.REG_size = 0;
893 /* ./../lib/standard//collection//hash_collection.nit:176 */
894 fprintf(stderr, "Deferred method called");
895 fprintf(stderr, " (%s:%d)\n", LOCATE_hash_collection, 176);
896 nit_exit(1);
897 stack_frame_head = fra.me.prev;
898 return NIT_NULL;
899 }
900 val_t hash_collection___HashNode___next_item(val_t p0){
901 struct {struct stack_frame_t me;} fra;
902 val_t tmp;
903 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
904 fra.me.file = LOCATE_hash_collection;
905 fra.me.line = 178;
906 fra.me.meth = LOCATE_hash_collection___HashNode___next_item;
907 fra.me.has_broke = 0;
908 fra.me.REG_size = 1;
909 fra.me.REG[0] = NIT_NULL;
910 fra.me.REG[0] = p0;
911 fra.me.REG[0] = ATTR_hash_collection___HashNode____next_item(fra.me.REG[0]);
912 /* ./../lib/standard//collection//hash_collection.nit:178 */
913 stack_frame_head = fra.me.prev;
914 return fra.me.REG[0];
915 }
916 void hash_collection___HashNode___next_item__eq(val_t p0, val_t p1){
917 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
918 val_t tmp;
919 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
920 fra.me.file = LOCATE_hash_collection;
921 fra.me.line = 178;
922 fra.me.meth = LOCATE_hash_collection___HashNode___next_item__eq;
923 fra.me.has_broke = 0;
924 fra.me.REG_size = 2;
925 fra.me.REG[0] = NIT_NULL;
926 fra.me.REG[1] = NIT_NULL;
927 fra.me.REG[0] = p0;
928 fra.me.REG[1] = p1;
929 /* ./../lib/standard//collection//hash_collection.nit:178 */
930 ATTR_hash_collection___HashNode____next_item(fra.me.REG[0]) = fra.me.REG[1];
931 stack_frame_head = fra.me.prev;
932 return;
933 }
934 val_t hash_collection___HashNode___prev_item(val_t p0){
935 struct {struct stack_frame_t me;} fra;
936 val_t tmp;
937 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
938 fra.me.file = LOCATE_hash_collection;
939 fra.me.line = 179;
940 fra.me.meth = LOCATE_hash_collection___HashNode___prev_item;
941 fra.me.has_broke = 0;
942 fra.me.REG_size = 1;
943 fra.me.REG[0] = NIT_NULL;
944 fra.me.REG[0] = p0;
945 fra.me.REG[0] = ATTR_hash_collection___HashNode____prev_item(fra.me.REG[0]);
946 /* ./../lib/standard//collection//hash_collection.nit:179 */
947 stack_frame_head = fra.me.prev;
948 return fra.me.REG[0];
949 }
950 void hash_collection___HashNode___prev_item__eq(val_t p0, val_t p1){
951 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
952 val_t tmp;
953 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
954 fra.me.file = LOCATE_hash_collection;
955 fra.me.line = 179;
956 fra.me.meth = LOCATE_hash_collection___HashNode___prev_item__eq;
957 fra.me.has_broke = 0;
958 fra.me.REG_size = 2;
959 fra.me.REG[0] = NIT_NULL;
960 fra.me.REG[1] = NIT_NULL;
961 fra.me.REG[0] = p0;
962 fra.me.REG[1] = p1;
963 /* ./../lib/standard//collection//hash_collection.nit:179 */
964 ATTR_hash_collection___HashNode____prev_item(fra.me.REG[0]) = fra.me.REG[1];
965 stack_frame_head = fra.me.prev;
966 return;
967 }
968 void hash_collection___HashNode___init(val_t p0, int* init_table){
969 int itpos1 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_HashNode].i;
970 struct {struct stack_frame_t me;} fra;
971 val_t tmp;
972 if (init_table[itpos1]) return;
973 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
974 fra.me.file = LOCATE_hash_collection;
975 fra.me.line = 0;
976 fra.me.meth = LOCATE_hash_collection___HashNode___init;
977 fra.me.has_broke = 0;
978 fra.me.REG_size = 0;
979 stack_frame_head = fra.me.prev;
980 init_table[itpos1] = 1;
981 return;
982 }
983 val_t hash_collection___HashMap___iterator(val_t p0){
984 struct {struct stack_frame_t me;} fra;
985 val_t tmp;
986 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
987 fra.me.file = LOCATE_hash_collection;
988 fra.me.line = 186;
989 fra.me.meth = LOCATE_hash_collection___HashMap___iterator;
990 fra.me.has_broke = 0;
991 fra.me.REG_size = 1;
992 fra.me.REG[0] = NIT_NULL;
993 fra.me.REG[0] = p0;
994 fra.me.REG[0] = NEW_HashMapIterator_hash_collection___HashMapIterator___init(fra.me.REG[0]);
995 /* ./../lib/standard//collection//hash_collection.nit:186 */
996 goto label1;
997 label1: while(0);
998 stack_frame_head = fra.me.prev;
999 return fra.me.REG[0];
1000 }
1001 val_t hash_collection___HashMap___is_empty(val_t p0){
1002 struct {struct stack_frame_t me;} fra;
1003 val_t REGB0;
1004 val_t REGB1;
1005 val_t REGB2;
1006 val_t tmp;
1007 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1008 fra.me.file = LOCATE_hash_collection;
1009 fra.me.line = 194;
1010 fra.me.meth = LOCATE_hash_collection___HashMap___is_empty;
1011 fra.me.has_broke = 0;
1012 fra.me.REG_size = 1;
1013 fra.me.REG[0] = NIT_NULL;
1014 fra.me.REG[0] = p0;
1015 REGB0 = TAG_Bool(ATTR_hash_collection___HashCollection____length(fra.me.REG[0])!=NIT_NULL);
1016 /* ./../lib/standard//collection//hash_collection.nit:194 */
1017 if (UNTAG_Bool(REGB0)) {
1018 } else {
1019 fprintf(stderr, "Uninitialized attribute %s", "_length");
1020 fprintf(stderr, " (%s:%d)\n", LOCATE_hash_collection, 194);
1021 nit_exit(1);
1022 }
1023 REGB0 = ATTR_hash_collection___HashCollection____length(fra.me.REG[0]);
1024 REGB1 = TAG_Int(0);
1025 REGB2 = TAG_Bool(IS_EQUAL_OO(REGB0,REGB1));
1026 if (UNTAG_Bool(REGB2)) {
1027 } else {
1028 REGB1 = TAG_Bool((REGB0)==(REGB1));
1029 REGB2 = REGB1;
1030 /* ./../lib/standard//collection//hash_collection.nit:194 */
1031 }
1032 goto label1;
1033 label1: while(0);
1034 stack_frame_head = fra.me.prev;
1035 return REGB2;
1036 }
1037 val_t hash_collection___HashMap___has(val_t p0, val_t p1){
1038 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
1039 val_t REGB0;
1040 val_t REGB1;
1041 val_t REGB2;
1042 val_t tmp;
1043 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1044 fra.me.file = LOCATE_hash_collection;
1045 fra.me.line = 208;
1046 fra.me.meth = LOCATE_hash_collection___HashMap___has;
1047 fra.me.has_broke = 0;
1048 fra.me.REG_size = 3;
1049 fra.me.REG[0] = NIT_NULL;
1050 fra.me.REG[1] = NIT_NULL;
1051 fra.me.REG[2] = NIT_NULL;
1052 fra.me.REG[0] = p0;
1053 fra.me.REG[1] = p1;
1054 REGB0 = TAG_Int(0);
1055 /* ./../lib/standard//collection//hash_collection.nit:211 */
1056 while(1) {
1057 REGB1 = TAG_Bool(ATTR_hash_collection___HashCollection____capacity(fra.me.REG[0])!=NIT_NULL);
1058 if (UNTAG_Bool(REGB1)) {
1059 } else {
1060 fprintf(stderr, "Uninitialized attribute %s", "_capacity");
1061 fprintf(stderr, " (%s:%d)\n", LOCATE_hash_collection, 211);
1062 nit_exit(1);
1063 }
1064 REGB1 = ATTR_hash_collection___HashCollection____capacity(fra.me.REG[0]);
1065 REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
1066 /* ./../lib/standard//collection//hash_collection.nit:211 */
1067 if (UNTAG_Bool(REGB1)) {
1068 fra.me.REG[2] = ATTR_hash_collection___HashCollection____array(fra.me.REG[0]);
1069 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
1070 /* ./../lib/standard//collection//hash_collection.nit:212 */
1071 if (UNTAG_Bool(REGB1)) {
1072 fprintf(stderr, "Reciever is null");
1073 fprintf(stderr, " (%s:%d)\n", LOCATE_hash_collection, 212);
1074 nit_exit(1);
1075 }
1076 fra.me.REG[2] = ((Nit_NativeArray)fra.me.REG[2])->val[UNTAG_Int(REGB0)];
1077 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
1078 /* ./../lib/standard//collection//hash_collection.nit:213 */
1079 if (UNTAG_Bool(REGB1)) {
1080 } else {
1081 REGB2 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
1082 if (UNTAG_Bool(REGB2)) {
1083 REGB2 = TAG_Bool(false);
1084 REGB1 = REGB2;
1085 } else {
1086 REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
1087 REGB1 = REGB2;
1088 }
1089 }
1090 REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
1091 if (UNTAG_Bool(REGB1)) {
1092 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
1093 if (UNTAG_Bool(REGB1)) {
1094 fprintf(stderr, "Reciever is null");
1095 fprintf(stderr, " (%s:%d)\n", LOCATE_hash_collection, 213);
1096 nit_exit(1);
1097 }
1098 fra.me.REG[2] = CALL_abstract_collection___Couple___second(fra.me.REG[2])(fra.me.REG[2]);
1099 REGB1 = TAG_Bool(IS_EQUAL_NN(fra.me.REG[2],fra.me.REG[1]));
1100 if (UNTAG_Bool(REGB1)) {
1101 } else {
1102 REGB2 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
1103 if (UNTAG_Bool(REGB2)) {
1104 REGB2 = TAG_Bool(false);
1105 REGB1 = REGB2;
1106 } else {
1107 REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
1108 REGB1 = REGB2;
1109 }
1110 }
1111 } else {
1112 REGB2 = TAG_Bool(false);
1113 REGB1 = REGB2;
1114 }
1115 if (UNTAG_Bool(REGB1)) {
1116 REGB1 = TAG_Bool(true);
1117 goto label1;
1118 }
1119 REGB2 = TAG_Int(1);
1120 REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
1121 REGB0 = REGB2;
1122 /* ./../lib/standard//collection//hash_collection.nit:214 */
1123 } else {
1124 /* ./../lib/standard//collection//hash_collection.nit:211 */
1125 goto label2;
1126 }
1127 }
1128 label2: while(0);
1129 REGB0 = TAG_Bool(false);
1130 REGB1 = REGB0;
1131 /* ./../lib/standard//collection//hash_collection.nit:216 */
1132 goto label1;
1133 label1: while(0);
1134 stack_frame_head = fra.me.prev;
1135 return REGB1;
1136 }
1137 val_t hash_collection___HashMap___has_only(val_t p0, val_t p1){
1138 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
1139 val_t REGB0;
1140 val_t REGB1;
1141 val_t REGB2;
1142 val_t tmp;
1143 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1144 fra.me.file = LOCATE_hash_collection;
1145 fra.me.line = 219;
1146 fra.me.meth = LOCATE_hash_collection___HashMap___has_only;
1147 fra.me.has_broke = 0;
1148 fra.me.REG_size = 3;
1149 fra.me.REG[0] = NIT_NULL;
1150 fra.me.REG[1] = NIT_NULL;
1151 fra.me.REG[2] = NIT_NULL;
1152 fra.me.REG[0] = p0;
1153 fra.me.REG[1] = p1;
1154 REGB0 = TAG_Int(0);
1155 /* ./../lib/standard//collection//hash_collection.nit:222 */
1156 while(1) {
1157 REGB1 = TAG_Bool(ATTR_hash_collection___HashCollection____capacity(fra.me.REG[0])!=NIT_NULL);
1158 if (UNTAG_Bool(REGB1)) {
1159 } else {
1160 fprintf(stderr, "Uninitialized attribute %s", "_capacity");
1161 fprintf(stderr, " (%s:%d)\n", LOCATE_hash_collection, 222);
1162 nit_exit(1);
1163 }
1164 REGB1 = ATTR_hash_collection___HashCollection____capacity(fra.me.REG[0]);
1165 REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
1166 /* ./../lib/standard//collection//hash_collection.nit:222 */
1167 if (UNTAG_Bool(REGB1)) {
1168 fra.me.REG[2] = ATTR_hash_collection___HashCollection____array(fra.me.REG[0]);
1169 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
1170 /* ./../lib/standard//collection//hash_collection.nit:223 */
1171 if (UNTAG_Bool(REGB1)) {
1172 fprintf(stderr, "Reciever is null");
1173 fprintf(stderr, " (%s:%d)\n", LOCATE_hash_collection, 223);
1174 nit_exit(1);
1175 }
1176 fra.me.REG[2] = ((Nit_NativeArray)fra.me.REG[2])->val[UNTAG_Int(REGB0)];
1177 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
1178 /* ./../lib/standard//collection//hash_collection.nit:224 */
1179 if (UNTAG_Bool(REGB1)) {
1180 } else {
1181 REGB2 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
1182 if (UNTAG_Bool(REGB2)) {
1183 REGB2 = TAG_Bool(false);
1184 REGB1 = REGB2;
1185 } else {
1186 REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
1187 REGB1 = REGB2;
1188 }
1189 }
1190 REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
1191 if (UNTAG_Bool(REGB1)) {
1192 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
1193 if (UNTAG_Bool(REGB1)) {
1194 fprintf(stderr, "Reciever is null");
1195 fprintf(stderr, " (%s:%d)\n", LOCATE_hash_collection, 224);
1196 nit_exit(1);
1197 }
1198 fra.me.REG[2] = CALL_abstract_collection___Couple___second(fra.me.REG[2])(fra.me.REG[2]);
1199 REGB1 = TAG_Bool(IS_EQUAL_NN(fra.me.REG[2],fra.me.REG[1]));
1200 if (UNTAG_Bool(REGB1)) {
1201 } else {
1202 REGB2 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
1203 if (UNTAG_Bool(REGB2)) {
1204 REGB2 = TAG_Bool(false);
1205 REGB1 = REGB2;
1206 } else {
1207 REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
1208 REGB1 = REGB2;
1209 }
1210 }
1211 REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
1212 } else {
1213 REGB2 = TAG_Bool(false);
1214 REGB1 = REGB2;
1215 }
1216 if (UNTAG_Bool(REGB1)) {
1217 REGB1 = TAG_Bool(false);
1218 goto label1;
1219 }
1220 REGB2 = TAG_Int(1);
1221 REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
1222 REGB0 = REGB2;
1223 /* ./../lib/standard//collection//hash_collection.nit:225 */
1224 } else {
1225 /* ./../lib/standard//collection//hash_collection.nit:222 */
1226 goto label2;
1227 }
1228 }
1229 label2: while(0);
1230 REGB0 = TAG_Bool(true);
1231 REGB1 = REGB0;
1232 /* ./../lib/standard//collection//hash_collection.nit:227 */
1233 goto label1;
1234 label1: while(0);
1235 stack_frame_head = fra.me.prev;
1236 return REGB1;
1237 }
1238 val_t hash_collection___HashMap___count(val_t p0, val_t p1){
1239 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
1240 val_t REGB0;
1241 val_t REGB1;
1242 val_t REGB2;
1243 val_t REGB3;
1244 val_t tmp;
1245 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1246 fra.me.file = LOCATE_hash_collection;
1247 fra.me.line = 196;
1248 fra.me.meth = LOCATE_hash_collection___HashMap___count;
1249 fra.me.has_broke = 0;
1250 fra.me.REG_size = 3;
1251 fra.me.REG[0] = NIT_NULL;
1252 fra.me.REG[1] = NIT_NULL;
1253 fra.me.REG[2] = NIT_NULL;
1254 fra.me.REG[0] = p0;
1255 fra.me.REG[1] = p1;
1256 REGB0 = TAG_Int(0);
1257 REGB1 = TAG_Int(0);
1258 /* ./../lib/standard//collection//hash_collection.nit:200 */
1259 while(1) {
1260 REGB2 = TAG_Bool(ATTR_hash_collection___HashCollection____capacity(fra.me.REG[0])!=NIT_NULL);
1261 if (UNTAG_Bool(REGB2)) {
1262 } else {
1263 fprintf(stderr, "Uninitialized attribute %s", "_capacity");
1264 fprintf(stderr, " (%s:%d)\n", LOCATE_hash_collection, 200);
1265 nit_exit(1);
1266 }
1267 REGB2 = ATTR_hash_collection___HashCollection____capacity(fra.me.REG[0]);
1268 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
1269 /* ./../lib/standard//collection//hash_collection.nit:200 */
1270 if (UNTAG_Bool(REGB2)) {
1271 fra.me.REG[2] = ATTR_hash_collection___HashCollection____array(fra.me.REG[0]);
1272 REGB2 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
1273 /* ./../lib/standard//collection//hash_collection.nit:201 */
1274 if (UNTAG_Bool(REGB2)) {
1275 fprintf(stderr, "Reciever is null");
1276 fprintf(stderr, " (%s:%d)\n", LOCATE_hash_collection, 201);
1277 nit_exit(1);
1278 }
1279 fra.me.REG[2] = ((Nit_NativeArray)fra.me.REG[2])->val[UNTAG_Int(REGB1)];
1280 REGB2 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
1281 /* ./../lib/standard//collection//hash_collection.nit:202 */
1282 if (UNTAG_Bool(REGB2)) {
1283 } else {
1284 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
1285 if (UNTAG_Bool(REGB3)) {
1286 REGB3 = TAG_Bool(false);
1287 REGB2 = REGB3;
1288 } else {
1289 REGB3 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
1290 REGB2 = REGB3;
1291 }
1292 }
1293 REGB2 = TAG_Bool(!UNTAG_Bool(REGB2));
1294 if (UNTAG_Bool(REGB2)) {
1295 REGB2 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
1296 if (UNTAG_Bool(REGB2)) {
1297 fprintf(stderr, "Reciever is null");
1298 fprintf(stderr, " (%s:%d)\n", LOCATE_hash_collection, 202);
1299 nit_exit(1);
1300 }
1301 fra.me.REG[2] = CALL_abstract_collection___Couple___second(fra.me.REG[2])(fra.me.REG[2]);
1302 REGB2 = TAG_Bool(IS_EQUAL_NN(fra.me.REG[2],fra.me.REG[1]));
1303 if (UNTAG_Bool(REGB2)) {
1304 } else {
1305 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
1306 if (UNTAG_Bool(REGB3)) {
1307 REGB3 = TAG_Bool(false);
1308 REGB2 = REGB3;
1309 } else {
1310 REGB3 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
1311 REGB2 = REGB3;
1312 }
1313 }
1314 } else {
1315 REGB3 = TAG_Bool(false);
1316 REGB2 = REGB3;
1317 }
1318 if (UNTAG_Bool(REGB2)) {
1319 REGB2 = TAG_Int(1);
1320 REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
1321 REGB0 = REGB2;
1322 /* ./../lib/standard//collection//hash_collection.nit:202 */
1323 }
1324 REGB2 = TAG_Int(1);
1325 REGB2 = TAG_Int(UNTAG_Int(REGB1)+UNTAG_Int(REGB2));
1326 REGB1 = REGB2;
1327 /* ./../lib/standard//collection//hash_collection.nit:203 */
1328 } else {
1329 /* ./../lib/standard//collection//hash_collection.nit:200 */
1330 goto label1;
1331 }
1332 }
1333 label1: while(0);
1334 /* ./../lib/standard//collection//hash_collection.nit:205 */
1335 goto label2;
1336 label2: while(0);
1337 stack_frame_head = fra.me.prev;
1338 return REGB0;
1339 }
1340 val_t hash_collection___HashMap___first(val_t p0){
1341 struct {struct stack_frame_t me;} fra;
1342 val_t REGB0;
1343 val_t REGB1;
1344 val_t tmp;
1345 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1346 fra.me.file = LOCATE_hash_collection;
1347 fra.me.line = 188;
1348 fra.me.meth = LOCATE_hash_collection___HashMap___first;
1349 fra.me.has_broke = 0;
1350 fra.me.REG_size = 1;
1351 fra.me.REG[0] = NIT_NULL;
1352 fra.me.REG[0] = p0;
1353 REGB0 = TAG_Bool(ATTR_hash_collection___HashCollection____length(fra.me.REG[0])!=NIT_NULL);
1354 /* ./../lib/standard//collection//hash_collection.nit:190 */
1355 if (UNTAG_Bool(REGB0)) {
1356 } else {
1357 fprintf(stderr, "Uninitialized attribute %s", "_length");
1358 fprintf(stderr, " (%s:%d)\n", LOCATE_hash_collection, 190);
1359 nit_exit(1);
1360 }
1361 REGB0 = ATTR_hash_collection___HashCollection____length(fra.me.REG[0]);
1362 REGB1 = TAG_Int(0);
1363 REGB1 = TAG_Bool(UNTAG_Int(REGB0)>UNTAG_Int(REGB1));
1364 /* ./../lib/standard//collection//hash_collection.nit:190 */
1365 if (UNTAG_Bool(REGB1)) {
1366 } else {
1367 fprintf(stderr, "Assert failed");
1368 fprintf(stderr, " (%s:%d)\n", LOCATE_hash_collection, 190);
1369 nit_exit(1);
1370 }
1371 fra.me.REG[0] = ATTR_hash_collection___HashCollection____first_item(fra.me.REG[0]);
1372 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
1373 /* ./../lib/standard//collection//hash_collection.nit:191 */
1374 if (UNTAG_Bool(REGB1)) {
1375 fprintf(stderr, "Reciever is null");
1376 fprintf(stderr, " (%s:%d)\n", LOCATE_hash_collection, 191);
1377 nit_exit(1);
1378 }
1379 fra.me.REG[0] = CALL_abstract_collection___Couple___second(fra.me.REG[0])(fra.me.REG[0]);
1380 goto label1;
1381 label1: while(0);
1382 stack_frame_head = fra.me.prev;
1383 return fra.me.REG[0];
1384 }
1385 void hash_collection___HashMap___clear(val_t p0){
1386 struct {struct stack_frame_t me;} fra;
1387 val_t tmp;
1388 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1389 fra.me.file = LOCATE_hash_collection;
1390 fra.me.line = 258;
1391 fra.me.meth = LOCATE_hash_collection___HashMap___clear;
1392 fra.me.has_broke = 0;
1393 fra.me.REG_size = 1;
1394 fra.me.REG[0] = NIT_NULL;
1395 fra.me.REG[0] = p0;
1396 /* ./../lib/standard//collection//hash_collection.nit:258 */
1397 CALL_hash_collection___HashCollection___raz(fra.me.REG[0])(fra.me.REG[0]);
1398 stack_frame_head = fra.me.prev;
1399 return;
1400 }
1401 void hash_collection___HashMap___remove(val_t p0, val_t p1){
1402 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
1403 val_t REGB0;
1404 val_t REGB1;
1405 val_t REGB2;
1406 val_t tmp;
1407 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1408 fra.me.file = LOCATE_hash_collection;
1409 fra.me.line = 243;
1410 fra.me.meth = LOCATE_hash_collection___HashMap___remove;
1411 fra.me.has_broke = 0;
1412 fra.me.REG_size = 3;
1413 fra.me.REG[0] = NIT_NULL;
1414 fra.me.REG[1] = NIT_NULL;
1415 fra.me.REG[2] = NIT_NULL;
1416 fra.me.REG[0] = p0;
1417 fra.me.REG[1] = p1;
1418 REGB0 = TAG_Int(0);
1419 /* ./../lib/standard//collection//hash_collection.nit:246 */
1420 while(1) {
1421 REGB1 = TAG_Bool(ATTR_hash_collection___HashCollection____capacity(fra.me.REG[0])!=NIT_NULL);
1422 if (UNTAG_Bool(REGB1)) {
1423 } else {
1424 fprintf(stderr, "Uninitialized attribute %s", "_capacity");
1425 fprintf(stderr, " (%s:%d)\n", LOCATE_hash_collection, 246);
1426 nit_exit(1);
1427 }
1428 REGB1 = ATTR_hash_collection___HashCollection____capacity(fra.me.REG[0]);
1429 REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
1430 /* ./../lib/standard//collection//hash_collection.nit:246 */
1431 if (UNTAG_Bool(REGB1)) {
1432 fra.me.REG[2] = ATTR_hash_collection___HashCollection____array(fra.me.REG[0]);
1433 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
1434 /* ./../lib/standard//collection//hash_collection.nit:247 */
1435 if (UNTAG_Bool(REGB1)) {
1436 fprintf(stderr, "Reciever is null");
1437 fprintf(stderr, " (%s:%d)\n", LOCATE_hash_collection, 247);
1438 nit_exit(1);
1439 }
1440 fra.me.REG[2] = ((Nit_NativeArray)fra.me.REG[2])->val[UNTAG_Int(REGB0)];
1441 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
1442 /* ./../lib/standard//collection//hash_collection.nit:248 */
1443 if (UNTAG_Bool(REGB1)) {
1444 } else {
1445 REGB2 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
1446 if (UNTAG_Bool(REGB2)) {
1447 REGB2 = TAG_Bool(false);
1448 REGB1 = REGB2;
1449 } else {
1450 REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
1451 REGB1 = REGB2;
1452 }
1453 }
1454 REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
1455 if (UNTAG_Bool(REGB1)) {
1456 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
1457 if (UNTAG_Bool(REGB1)) {
1458 fprintf(stderr, "Reciever is null");
1459 fprintf(stderr, " (%s:%d)\n", LOCATE_hash_collection, 248);
1460 nit_exit(1);
1461 }
1462 fra.me.REG[2] = CALL_abstract_collection___Couple___second(fra.me.REG[2])(fra.me.REG[2]);
1463 REGB1 = TAG_Bool(IS_EQUAL_NN(fra.me.REG[2],fra.me.REG[1]));
1464 if (UNTAG_Bool(REGB1)) {
1465 } else {
1466 REGB2 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
1467 if (UNTAG_Bool(REGB2)) {
1468 REGB2 = TAG_Bool(false);
1469 REGB1 = REGB2;
1470 } else {
1471 REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
1472 REGB1 = REGB2;
1473 }
1474 }
1475 } else {
1476 REGB2 = TAG_Bool(false);
1477 REGB1 = REGB2;
1478 }
1479 if (UNTAG_Bool(REGB1)) {
1480 /* ./../lib/standard//collection//hash_collection.nit:249 */
1481 CALL_hash_collection___HashCollection___remove_index(fra.me.REG[0])(fra.me.REG[0], REGB0);
1482 /* ./../lib/standard//collection//hash_collection.nit:250 */
1483 goto label1;
1484 }
1485 REGB1 = TAG_Int(1);
1486 REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
1487 REGB0 = REGB1;
1488 /* ./../lib/standard//collection//hash_collection.nit:252 */
1489 } else {
1490 /* ./../lib/standard//collection//hash_collection.nit:246 */
1491 goto label2;
1492 }
1493 }
1494 label2: while(0);
1495 label1: while(0);
1496 stack_frame_head = fra.me.prev;
1497 return;
1498 }
1499 void hash_collection___HashMap_____braeq(val_t p0, val_t p1, val_t p2){
1500 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
1501 val_t REGB0;
1502 val_t REGB1;
1503 val_t REGB2;
1504 val_t tmp;
1505 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1506 fra.me.file = LOCATE_hash_collection;
1507 fra.me.line = 230;
1508 fra.me.meth = LOCATE_hash_collection___HashMap_____braeq;
1509 fra.me.has_broke = 0;
1510 fra.me.REG_size = 4;
1511 fra.me.REG[0] = NIT_NULL;
1512 fra.me.REG[1] = NIT_NULL;
1513 fra.me.REG[2] = NIT_NULL;
1514 fra.me.REG[3] = NIT_NULL;
1515 fra.me.REG[0] = p0;
1516 fra.me.REG[1] = p1;
1517 fra.me.REG[2] = p2;
1518 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
1519 /* ./../lib/standard//collection//hash_collection.nit:232 */
1520 if (UNTAG_Bool(REGB0)) {
1521 } else {
1522 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
1523 if (UNTAG_Bool(REGB1)) {
1524 REGB1 = TAG_Bool(false);
1525 REGB0 = REGB1;
1526 } else {
1527 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
1528 REGB0 = REGB1;
1529 }
1530 }
1531 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
1532 if (UNTAG_Bool(REGB0)) {
1533 } else {
1534 fprintf(stderr, "Assert failed");
1535 fprintf(stderr, " (%s:%d)\n", LOCATE_hash_collection, 232);
1536 nit_exit(1);
1537 }
1538 REGB0 = CALL_hash_collection___HashCollection___index_at(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
1539 fra.me.REG[3] = ATTR_hash_collection___HashCollection____array(fra.me.REG[0]);
1540 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
1541 /* ./../lib/standard//collection//hash_collection.nit:234 */
1542 if (UNTAG_Bool(REGB1)) {
1543 fprintf(stderr, "Reciever is null");
1544 fprintf(stderr, " (%s:%d)\n", LOCATE_hash_collection, 234);
1545 nit_exit(1);
1546 }
1547 fra.me.REG[3] = ((Nit_NativeArray)fra.me.REG[3])->val[UNTAG_Int(REGB0)];
1548 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
1549 /* ./../lib/standard//collection//hash_collection.nit:235 */
1550 if (UNTAG_Bool(REGB1)) {
1551 } else {
1552 REGB2 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
1553 if (UNTAG_Bool(REGB2)) {
1554 REGB2 = TAG_Bool(false);
1555 REGB1 = REGB2;
1556 } else {
1557 REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
1558 REGB1 = REGB2;
1559 }
1560 }
1561 REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
1562 if (UNTAG_Bool(REGB1)) {
1563 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
1564 /* ./../lib/standard//collection//hash_collection.nit:236 */
1565 if (UNTAG_Bool(REGB1)) {
1566 fprintf(stderr, "Reciever is null");
1567 fprintf(stderr, " (%s:%d)\n", LOCATE_hash_collection, 236);
1568 nit_exit(1);
1569 }
1570 CALL_abstract_collection___Couple___first__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
1571 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
1572 /* ./../lib/standard//collection//hash_collection.nit:237 */
1573 if (UNTAG_Bool(REGB1)) {
1574 fprintf(stderr, "Reciever is null");
1575 fprintf(stderr, " (%s:%d)\n", LOCATE_hash_collection, 237);
1576 nit_exit(1);
1577 }
1578 CALL_abstract_collection___Couple___second__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
1579 } else {
1580 fra.me.REG[2] = NEW_HashMapNode_hash_collection___HashMapNode___init(fra.me.REG[1], fra.me.REG[2]);
1581 /* ./../lib/standard//collection//hash_collection.nit:239 */
1582 CALL_hash_collection___HashCollection___store(fra.me.REG[0])(fra.me.REG[0], REGB0, fra.me.REG[2]);
1583 }
1584 stack_frame_head = fra.me.prev;
1585 return;
1586 }
1587 void hash_collection___HashMap___remove_at(val_t p0, val_t p1){
1588 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
1589 val_t REGB0;
1590 val_t tmp;
1591 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1592 fra.me.file = LOCATE_hash_collection;
1593 fra.me.line = 256;
1594 fra.me.meth = LOCATE_hash_collection___HashMap___remove_at;
1595 fra.me.has_broke = 0;
1596 fra.me.REG_size = 2;
1597 fra.me.REG[0] = NIT_NULL;
1598 fra.me.REG[1] = NIT_NULL;
1599 fra.me.REG[0] = p0;
1600 fra.me.REG[1] = p1;
1601 REGB0 = CALL_hash_collection___HashCollection___index_at(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
1602 /* ./../lib/standard//collection//hash_collection.nit:256 */
1603 CALL_hash_collection___HashCollection___remove_index(fra.me.REG[0])(fra.me.REG[0], REGB0);
1604 stack_frame_head = fra.me.prev;
1605 return;
1606 }
1607 val_t hash_collection___HashMap___couple_at(val_t p0, val_t p1){
1608 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
1609 val_t REGB0;
1610 val_t REGB1;
1611 val_t tmp;
1612 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1613 fra.me.file = LOCATE_hash_collection;
1614 fra.me.line = 260;
1615 fra.me.meth = LOCATE_hash_collection___HashMap___couple_at;
1616 fra.me.has_broke = 0;
1617 fra.me.REG_size = 3;
1618 fra.me.REG[0] = NIT_NULL;
1619 fra.me.REG[1] = NIT_NULL;
1620 fra.me.REG[2] = NIT_NULL;
1621 fra.me.REG[0] = p0;
1622 fra.me.REG[1] = p1;
1623 fra.me.REG[2] = ATTR_hash_collection___HashCollection____array(fra.me.REG[0]);
1624 REGB0 = CALL_hash_collection___HashCollection___index_at(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
1625 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
1626 /* ./../lib/standard//collection//hash_collection.nit:260 */
1627 if (UNTAG_Bool(REGB1)) {
1628 fprintf(stderr, "Reciever is null");
1629 fprintf(stderr, " (%s:%d)\n", LOCATE_hash_collection, 260);
1630 nit_exit(1);
1631 }
1632 fra.me.REG[2] = ((Nit_NativeArray)fra.me.REG[2])->val[UNTAG_Int(REGB0)];
1633 /* ./../lib/standard//collection//hash_collection.nit:260 */
1634 goto label1;
1635 label1: while(0);
1636 stack_frame_head = fra.me.prev;
1637 return fra.me.REG[2];
1638 }
1639 void hash_collection___HashMap___init(val_t p0, int* init_table){
1640 int itpos2 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_HashMap].i;
1641 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
1642 val_t REGB0;
1643 val_t tmp;
1644 if (init_table[itpos2]) return;
1645 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1646 fra.me.file = LOCATE_hash_collection;
1647 fra.me.line = 262;
1648 fra.me.meth = LOCATE_hash_collection___HashMap___init;
1649 fra.me.has_broke = 0;
1650 fra.me.REG_size = 2;
1651 fra.me.REG[0] = NIT_NULL;
1652 fra.me.REG[1] = NIT_NULL;
1653 fra.me.REG[0] = p0;
1654 fra.me.REG[1] = fra.me.REG[0];
1655 /* ./../lib/standard//collection//hash_collection.nit:262 */
1656 CALL_hash_collection___HashCollection___init(fra.me.REG[0])(fra.me.REG[0], init_table);
1657 REGB0 = TAG_Int(0);
1658 /* ./../lib/standard//collection//hash_collection.nit:264 */
1659 ATTR_hash_collection___HashCollection____capacity(fra.me.REG[1]) = REGB0;
1660 REGB0 = TAG_Int(0);
1661 /* ./../lib/standard//collection//hash_collection.nit:265 */
1662 ATTR_hash_collection___HashCollection____length(fra.me.REG[1]) = REGB0;
1663 REGB0 = TAG_Int(0);
1664 /* ./../lib/standard//collection//hash_collection.nit:266 */
1665 CALL_hash_collection___HashCollection___enlarge(fra.me.REG[1])(fra.me.REG[1], REGB0);
1666 stack_frame_head = fra.me.prev;
1667 init_table[itpos2] = 1;
1668 return;
1669 }
1670 val_t hash_collection___HashMapNode___key(val_t p0){
1671 struct {struct stack_frame_t me;} fra;
1672 val_t tmp;
1673 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1674 fra.me.file = LOCATE_hash_collection;
1675 fra.me.line = 273;
1676 fra.me.meth = LOCATE_hash_collection___HashMapNode___key;
1677 fra.me.has_broke = 0;
1678 fra.me.REG_size = 1;
1679 fra.me.REG[0] = NIT_NULL;
1680 fra.me.REG[0] = p0;
1681 fra.me.REG[0] = CALL_abstract_collection___Couple___first(fra.me.REG[0])(fra.me.REG[0]);
1682 /* ./../lib/standard//collection//hash_collection.nit:273 */
1683 goto label1;
1684 label1: while(0);
1685 stack_frame_head = fra.me.prev;
1686 return fra.me.REG[0];
1687 }
1688 void hash_collection___HashMapNode___init(val_t p0, val_t p1, val_t p2, int* init_table){
1689 int itpos3 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_HashMapNode].i;
1690 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
1691 val_t tmp;
1692 if (init_table[itpos3]) return;
1693 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1694 fra.me.file = LOCATE_hash_collection;
1695 fra.me.line = 276;
1696 fra.me.meth = LOCATE_hash_collection___HashMapNode___init;
1697 fra.me.has_broke = 0;
1698 fra.me.REG_size = 6;
1699 fra.me.REG[0] = NIT_NULL;
1700 fra.me.REG[1] = NIT_NULL;
1701 fra.me.REG[2] = NIT_NULL;
1702 fra.me.REG[3] = NIT_NULL;
1703 fra.me.REG[4] = NIT_NULL;
1704 fra.me.REG[5] = NIT_NULL;
1705 fra.me.REG[0] = p0;
1706 fra.me.REG[1] = p1;
1707 fra.me.REG[2] = p2;
1708 fra.me.REG[3] = fra.me.REG[0];
1709 fra.me.REG[4] = fra.me.REG[1];
1710 fra.me.REG[5] = fra.me.REG[2];
1711 /* ./../lib/standard//collection//hash_collection.nit:276 */
1712 CALL_abstract_collection___Couple___init(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], init_table);
1713 CALL_hash_collection___HashNode___init(fra.me.REG[0])(fra.me.REG[0], init_table);
1714 /* ./../lib/standard//collection//hash_collection.nit:278 */
1715 CALL_abstract_collection___Couple___first__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
1716 /* ./../lib/standard//collection//hash_collection.nit:279 */
1717 CALL_abstract_collection___Couple___second__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[5]);
1718 stack_frame_head = fra.me.prev;
1719 init_table[itpos3] = 1;
1720 return;
1721 }
1722 val_t hash_collection___HashMapIterator___item(val_t p0){
1723 struct {struct stack_frame_t me;} fra;
1724 val_t REGB0;
1725 val_t tmp;
1726 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1727 fra.me.file = LOCATE_hash_collection;
1728 fra.me.line = 287;
1729 fra.me.meth = LOCATE_hash_collection___HashMapIterator___item;
1730 fra.me.has_broke = 0;
1731 fra.me.REG_size = 1;
1732 fra.me.REG[0] = NIT_NULL;
1733 fra.me.REG[0] = p0;
1734 REGB0 = CALL_abstract_collection___Iterator___is_ok(fra.me.REG[0])(fra.me.REG[0]);
1735 /* ./../lib/standard//collection//hash_collection.nit:289 */
1736 if (UNTAG_Bool(REGB0)) {
1737 } else {
1738 fprintf(stderr, "Assert failed");
1739 fprintf(stderr, " (%s:%d)\n", LOCATE_hash_collection, 289);
1740 nit_exit(1);
1741 }
1742 fra.me.REG[0] = ATTR_hash_collection___HashMapIterator____node(fra.me.REG[0]);
1743 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
1744 /* ./../lib/standard//collection//hash_collection.nit:290 */
1745 if (UNTAG_Bool(REGB0)) {
1746 fprintf(stderr, "Reciever is null");
1747 fprintf(stderr, " (%s:%d)\n", LOCATE_hash_collection, 290);
1748 nit_exit(1);
1749 }
1750 fra.me.REG[0] = CALL_abstract_collection___Couple___second(fra.me.REG[0])(fra.me.REG[0]);
1751 goto label1;
1752 label1: while(0);
1753 stack_frame_head = fra.me.prev;
1754 return fra.me.REG[0];
1755 }
1756 void hash_collection___HashMapIterator___next(val_t p0){
1757 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
1758 val_t REGB0;
1759 val_t tmp;
1760 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1761 fra.me.file = LOCATE_hash_collection;
1762 fra.me.line = 305;
1763 fra.me.meth = LOCATE_hash_collection___HashMapIterator___next;
1764 fra.me.has_broke = 0;
1765 fra.me.REG_size = 2;
1766 fra.me.REG[0] = NIT_NULL;
1767 fra.me.REG[1] = NIT_NULL;
1768 fra.me.REG[0] = p0;
1769 REGB0 = CALL_abstract_collection___Iterator___is_ok(fra.me.REG[0])(fra.me.REG[0]);
1770 /* ./../lib/standard//collection//hash_collection.nit:307 */
1771 if (UNTAG_Bool(REGB0)) {
1772 } else {
1773 fprintf(stderr, "Assert failed");
1774 fprintf(stderr, " (%s:%d)\n", LOCATE_hash_collection, 307);
1775 nit_exit(1);
1776 }
1777 fra.me.REG[1] = ATTR_hash_collection___HashMapIterator____node(fra.me.REG[0]);
1778 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
1779 /* ./../lib/standard//collection//hash_collection.nit:308 */
1780 if (UNTAG_Bool(REGB0)) {
1781 fprintf(stderr, "Reciever is null");
1782 fprintf(stderr, " (%s:%d)\n", LOCATE_hash_collection, 308);
1783 nit_exit(1);
1784 }
1785 fra.me.REG[1] = CALL_hash_collection___HashNode___next_item(fra.me.REG[1])(fra.me.REG[1]);
1786 ATTR_hash_collection___HashMapIterator____node(fra.me.REG[0]) = fra.me.REG[1];
1787 stack_frame_head = fra.me.prev;
1788 return;
1789 }
1790 val_t hash_collection___HashMapIterator___is_ok(val_t p0){
1791 struct {struct stack_frame_t me;} fra;
1792 val_t REGB0;
1793 val_t REGB1;
1794 val_t tmp;
1795 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1796 fra.me.file = LOCATE_hash_collection;
1797 fra.me.line = 285;
1798 fra.me.meth = LOCATE_hash_collection___HashMapIterator___is_ok;
1799 fra.me.has_broke = 0;
1800 fra.me.REG_size = 1;
1801 fra.me.REG[0] = NIT_NULL;
1802 fra.me.REG[0] = p0;
1803 fra.me.REG[0] = ATTR_hash_collection___HashMapIterator____node(fra.me.REG[0]);
1804 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
1805 /* ./../lib/standard//collection//hash_collection.nit:285 */
1806 if (UNTAG_Bool(REGB0)) {
1807 } else {
1808 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
1809 if (UNTAG_Bool(REGB1)) {
1810 REGB1 = TAG_Bool(false);
1811 REGB0 = REGB1;
1812 } else {
1813 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], NIT_NULL);
1814 REGB0 = REGB1;
1815 }
1816 }
1817 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
1818 goto label1;
1819 label1: while(0);
1820 stack_frame_head = fra.me.prev;
1821 return REGB0;
1822 }
1823 val_t hash_collection___HashMapIterator___key(val_t p0){
1824 struct {struct stack_frame_t me;} fra;
1825 val_t REGB0;
1826 val_t tmp;
1827 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1828 fra.me.file = LOCATE_hash_collection;
1829 fra.me.line = 299;
1830 fra.me.meth = LOCATE_hash_collection___HashMapIterator___key;
1831 fra.me.has_broke = 0;
1832 fra.me.REG_size = 1;
1833 fra.me.REG[0] = NIT_NULL;
1834 fra.me.REG[0] = p0;
1835 REGB0 = CALL_abstract_collection___Iterator___is_ok(fra.me.REG[0])(fra.me.REG[0]);
1836 /* ./../lib/standard//collection//hash_collection.nit:301 */
1837 if (UNTAG_Bool(REGB0)) {
1838 } else {
1839 fprintf(stderr, "Assert failed");
1840 fprintf(stderr, " (%s:%d)\n", LOCATE_hash_collection, 301);
1841 nit_exit(1);
1842 }
1843 fra.me.REG[0] = ATTR_hash_collection___HashMapIterator____node(fra.me.REG[0]);
1844 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
1845 /* ./../lib/standard//collection//hash_collection.nit:302 */
1846 if (UNTAG_Bool(REGB0)) {
1847 fprintf(stderr, "Reciever is null");
1848 fprintf(stderr, " (%s:%d)\n", LOCATE_hash_collection, 302);
1849 nit_exit(1);
1850 }
1851 fra.me.REG[0] = CALL_abstract_collection___Couple___first(fra.me.REG[0])(fra.me.REG[0]);
1852 goto label1;
1853 label1: while(0);
1854 stack_frame_head = fra.me.prev;
1855 return fra.me.REG[0];
1856 }
1857 void hash_collection___HashMapIterator___init(val_t p0, val_t p1, int* init_table){
1858 int itpos4 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_HashMapIterator].i;
1859 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
1860 val_t tmp;
1861 if (init_table[itpos4]) return;
1862 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1863 fra.me.file = LOCATE_hash_collection;
1864 fra.me.line = 317;
1865 fra.me.meth = LOCATE_hash_collection___HashMapIterator___init;
1866 fra.me.has_broke = 0;
1867 fra.me.REG_size = 2;
1868 fra.me.REG[0] = NIT_NULL;
1869 fra.me.REG[1] = NIT_NULL;
1870 fra.me.REG[0] = p0;
1871 fra.me.REG[1] = p1;
1872 /* ./../lib/standard//collection//hash_collection.nit:319 */
1873 ATTR_hash_collection___HashMapIterator____map(fra.me.REG[0]) = fra.me.REG[1];
1874 fra.me.REG[1] = CALL_hash_collection___HashCollection___first_item(fra.me.REG[1])(fra.me.REG[1]);
1875 /* ./../lib/standard//collection//hash_collection.nit:320 */
1876 ATTR_hash_collection___HashMapIterator____node(fra.me.REG[0]) = fra.me.REG[1];
1877 stack_frame_head = fra.me.prev;
1878 init_table[itpos4] = 1;
1879 return;
1880 }
1881 val_t hash_collection___HashSet___iterator(val_t p0){
1882 struct {struct stack_frame_t me;} fra;
1883 val_t tmp;
1884 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1885 fra.me.file = LOCATE_hash_collection;
1886 fra.me.line = 356;
1887 fra.me.meth = LOCATE_hash_collection___HashSet___iterator;
1888 fra.me.has_broke = 0;
1889 fra.me.REG_size = 1;
1890 fra.me.REG[0] = NIT_NULL;
1891 fra.me.REG[0] = p0;
1892 fra.me.REG[0] = NEW_HashSetIterator_hash_collection___HashSetIterator___init(fra.me.REG[0]);
1893 /* ./../lib/standard//collection//hash_collection.nit:356 */
1894 goto label1;
1895 label1: while(0);
1896 stack_frame_head = fra.me.prev;
1897 return fra.me.REG[0];
1898 }
1899 val_t hash_collection___HashSet___is_empty(val_t p0){
1900 struct {struct stack_frame_t me;} fra;
1901 val_t REGB0;
1902 val_t REGB1;
1903 val_t REGB2;
1904 val_t tmp;
1905 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1906 fra.me.file = LOCATE_hash_collection;
1907 fra.me.line = 328;
1908 fra.me.meth = LOCATE_hash_collection___HashSet___is_empty;
1909 fra.me.has_broke = 0;
1910 fra.me.REG_size = 1;
1911 fra.me.REG[0] = NIT_NULL;
1912 fra.me.REG[0] = p0;
1913 REGB0 = TAG_Bool(ATTR_hash_collection___HashCollection____length(fra.me.REG[0])!=NIT_NULL);
1914 /* ./../lib/standard//collection//hash_collection.nit:328 */
1915 if (UNTAG_Bool(REGB0)) {
1916 } else {
1917 fprintf(stderr, "Uninitialized attribute %s", "_length");
1918 fprintf(stderr, " (%s:%d)\n", LOCATE_hash_collection, 328);
1919 nit_exit(1);
1920 }
1921 REGB0 = ATTR_hash_collection___HashCollection____length(fra.me.REG[0]);
1922 REGB1 = TAG_Int(0);
1923 REGB2 = TAG_Bool(IS_EQUAL_OO(REGB0,REGB1));
1924 if (UNTAG_Bool(REGB2)) {
1925 } else {
1926 REGB1 = TAG_Bool((REGB0)==(REGB1));
1927 REGB2 = REGB1;
1928 /* ./../lib/standard//collection//hash_collection.nit:328 */
1929 }
1930 goto label1;
1931 label1: while(0);
1932 stack_frame_head = fra.me.prev;
1933 return REGB2;
1934 }
1935 val_t hash_collection___HashSet___has(val_t p0, val_t p1){
1936 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
1937 val_t REGB0;
1938 val_t REGB1;
1939 val_t tmp;
1940 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1941 fra.me.file = LOCATE_hash_collection;
1942 fra.me.line = 336;
1943 fra.me.meth = LOCATE_hash_collection___HashSet___has;
1944 fra.me.has_broke = 0;
1945 fra.me.REG_size = 3;
1946 fra.me.REG[0] = NIT_NULL;
1947 fra.me.REG[1] = NIT_NULL;
1948 fra.me.REG[2] = NIT_NULL;
1949 fra.me.REG[0] = p0;
1950 fra.me.REG[1] = p1;
1951 fra.me.REG[2] = ATTR_hash_collection___HashCollection____array(fra.me.REG[0]);
1952 REGB0 = CALL_hash_collection___HashCollection___index_at(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
1953 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
1954 /* ./../lib/standard//collection//hash_collection.nit:338 */
1955 if (UNTAG_Bool(REGB1)) {
1956 fprintf(stderr, "Reciever is null");
1957 fprintf(stderr, " (%s:%d)\n", LOCATE_hash_collection, 338);
1958 nit_exit(1);
1959 }
1960 fra.me.REG[2] = ((Nit_NativeArray)fra.me.REG[2])->val[UNTAG_Int(REGB0)];
1961 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
1962 /* ./../lib/standard//collection//hash_collection.nit:338 */
1963 if (UNTAG_Bool(REGB0)) {
1964 } else {
1965 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
1966 if (UNTAG_Bool(REGB1)) {
1967 REGB1 = TAG_Bool(false);
1968 REGB0 = REGB1;
1969 } else {
1970 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
1971 REGB0 = REGB1;
1972 }
1973 }
1974 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
1975 goto label1;
1976 label1: while(0);
1977 stack_frame_head = fra.me.prev;
1978 return REGB0;
1979 }
1980 val_t hash_collection___HashSet___first(val_t p0){
1981 struct {struct stack_frame_t me;} fra;
1982 val_t REGB0;
1983 val_t REGB1;
1984 val_t tmp;
1985 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1986 fra.me.file = LOCATE_hash_collection;
1987 fra.me.line = 330;
1988 fra.me.meth = LOCATE_hash_collection___HashSet___first;
1989 fra.me.has_broke = 0;
1990 fra.me.REG_size = 1;
1991 fra.me.REG[0] = NIT_NULL;
1992 fra.me.REG[0] = p0;
1993 REGB0 = TAG_Bool(ATTR_hash_collection___HashCollection____length(fra.me.REG[0])!=NIT_NULL);
1994 /* ./../lib/standard//collection//hash_collection.nit:332 */
1995 if (UNTAG_Bool(REGB0)) {
1996 } else {
1997 fprintf(stderr, "Uninitialized attribute %s", "_length");
1998 fprintf(stderr, " (%s:%d)\n", LOCATE_hash_collection, 332);
1999 nit_exit(1);
2000 }
2001 REGB0 = ATTR_hash_collection___HashCollection____length(fra.me.REG[0]);
2002 REGB1 = TAG_Int(0);
2003 REGB1 = TAG_Bool(UNTAG_Int(REGB0)>UNTAG_Int(REGB1));
2004 /* ./../lib/standard//collection//hash_collection.nit:332 */
2005 if (UNTAG_Bool(REGB1)) {
2006 } else {
2007 fprintf(stderr, "Assert failed");
2008 fprintf(stderr, " (%s:%d)\n", LOCATE_hash_collection, 332);
2009 nit_exit(1);
2010 }
2011 fra.me.REG[0] = ATTR_hash_collection___HashCollection____first_item(fra.me.REG[0]);
2012 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
2013 /* ./../lib/standard//collection//hash_collection.nit:333 */
2014 if (UNTAG_Bool(REGB1)) {
2015 fprintf(stderr, "Reciever is null");
2016 fprintf(stderr, " (%s:%d)\n", LOCATE_hash_collection, 333);
2017 nit_exit(1);
2018 }
2019 fra.me.REG[0] = CALL_hash_collection___HashNode___key(fra.me.REG[0])(fra.me.REG[0]);
2020 goto label1;
2021 label1: while(0);
2022 stack_frame_head = fra.me.prev;
2023 return fra.me.REG[0];
2024 }
2025 void hash_collection___HashSet___clear(val_t p0){
2026 struct {struct stack_frame_t me;} fra;
2027 val_t tmp;
2028 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2029 fra.me.file = LOCATE_hash_collection;
2030 fra.me.line = 354;
2031 fra.me.meth = LOCATE_hash_collection___HashSet___clear;
2032 fra.me.has_broke = 0;
2033 fra.me.REG_size = 1;
2034 fra.me.REG[0] = NIT_NULL;
2035 fra.me.REG[0] = p0;
2036 /* ./../lib/standard//collection//hash_collection.nit:354 */
2037 CALL_hash_collection___HashCollection___raz(fra.me.REG[0])(fra.me.REG[0]);
2038 stack_frame_head = fra.me.prev;
2039 return;
2040 }
2041 void hash_collection___HashSet___remove(val_t p0, val_t p1){
2042 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
2043 val_t REGB0;
2044 val_t tmp;
2045 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2046 fra.me.file = LOCATE_hash_collection;
2047 fra.me.line = 352;
2048 fra.me.meth = LOCATE_hash_collection___HashSet___remove;
2049 fra.me.has_broke = 0;
2050 fra.me.REG_size = 2;
2051 fra.me.REG[0] = NIT_NULL;
2052 fra.me.REG[1] = NIT_NULL;
2053 fra.me.REG[0] = p0;
2054 fra.me.REG[1] = p1;
2055 REGB0 = CALL_hash_collection___HashCollection___index_at(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
2056 /* ./../lib/standard//collection//hash_collection.nit:352 */
2057 CALL_hash_collection___HashCollection___remove_index(fra.me.REG[0])(fra.me.REG[0], REGB0);
2058 stack_frame_head = fra.me.prev;
2059 return;
2060 }
2061 void hash_collection___HashSet___add(val_t p0, val_t p1){
2062 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
2063 val_t REGB0;
2064 val_t REGB1;
2065 val_t REGB2;
2066 val_t tmp;
2067 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2068 fra.me.file = LOCATE_hash_collection;
2069 fra.me.line = 341;
2070 fra.me.meth = LOCATE_hash_collection___HashSet___add;
2071 fra.me.has_broke = 0;
2072 fra.me.REG_size = 3;
2073 fra.me.REG[0] = NIT_NULL;
2074 fra.me.REG[1] = NIT_NULL;
2075 fra.me.REG[2] = NIT_NULL;
2076 fra.me.REG[0] = p0;
2077 fra.me.REG[1] = p1;
2078 REGB0 = CALL_hash_collection___HashCollection___index_at(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
2079 fra.me.REG[2] = ATTR_hash_collection___HashCollection____array(fra.me.REG[0]);
2080 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
2081 /* ./../lib/standard//collection//hash_collection.nit:344 */
2082 if (UNTAG_Bool(REGB1)) {
2083 fprintf(stderr, "Reciever is null");
2084 fprintf(stderr, " (%s:%d)\n", LOCATE_hash_collection, 344);
2085 nit_exit(1);
2086 }
2087 fra.me.REG[2] = ((Nit_NativeArray)fra.me.REG[2])->val[UNTAG_Int(REGB0)];
2088 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
2089 /* ./../lib/standard//collection//hash_collection.nit:345 */
2090 if (UNTAG_Bool(REGB1)) {
2091 } else {
2092 REGB2 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
2093 if (UNTAG_Bool(REGB2)) {
2094 REGB2 = TAG_Bool(false);
2095 REGB1 = REGB2;
2096 } else {
2097 REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
2098 REGB1 = REGB2;
2099 }
2100 }
2101 REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
2102 if (UNTAG_Bool(REGB1)) {
2103 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
2104 /* ./../lib/standard//collection//hash_collection.nit:346 */
2105 if (UNTAG_Bool(REGB1)) {
2106 fprintf(stderr, "Reciever is null");
2107 fprintf(stderr, " (%s:%d)\n", LOCATE_hash_collection, 346);
2108 nit_exit(1);
2109 }
2110 CALL_hash_collection___HashSetNode___key__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
2111 } else {
2112 fra.me.REG[1] = NEW_HashSetNode_hash_collection___HashSetNode___init(fra.me.REG[1]);
2113 /* ./../lib/standard//collection//hash_collection.nit:348 */
2114 CALL_hash_collection___HashCollection___store(fra.me.REG[0])(fra.me.REG[0], REGB0, fra.me.REG[1]);
2115 }
2116 stack_frame_head = fra.me.prev;
2117 return;
2118 }
2119 void hash_collection___HashSet___init(val_t p0, int* init_table){
2120 int itpos5 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_HashSet].i;
2121 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
2122 val_t REGB0;
2123 val_t tmp;
2124 if (init_table[itpos5]) return;
2125 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2126 fra.me.file = LOCATE_hash_collection;
2127 fra.me.line = 358;
2128 fra.me.meth = LOCATE_hash_collection___HashSet___init;
2129 fra.me.has_broke = 0;
2130 fra.me.REG_size = 2;
2131 fra.me.REG[0] = NIT_NULL;
2132 fra.me.REG[1] = NIT_NULL;
2133 fra.me.REG[0] = p0;
2134 fra.me.REG[1] = fra.me.REG[0];
2135 /* ./../lib/standard//collection//hash_collection.nit:358 */
2136 CALL_hash_collection___HashCollection___init(fra.me.REG[0])(fra.me.REG[0], init_table);
2137 REGB0 = TAG_Int(0);
2138 /* ./../lib/standard//collection//hash_collection.nit:360 */
2139 ATTR_hash_collection___HashCollection____capacity(fra.me.REG[1]) = REGB0;
2140 REGB0 = TAG_Int(0);
2141 /* ./../lib/standard//collection//hash_collection.nit:361 */
2142 ATTR_hash_collection___HashCollection____length(fra.me.REG[1]) = REGB0;
2143 REGB0 = TAG_Int(0);
2144 /* ./../lib/standard//collection//hash_collection.nit:362 */
2145 CALL_hash_collection___HashCollection___enlarge(fra.me.REG[1])(fra.me.REG[1], REGB0);
2146 stack_frame_head = fra.me.prev;
2147 init_table[itpos5] = 1;
2148 return;
2149 }
2150 val_t hash_collection___HashSetNode___key(val_t p0){
2151 struct {struct stack_frame_t me;} fra;
2152 val_t tmp;
2153 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2154 fra.me.file = LOCATE_hash_collection;
2155 fra.me.line = 370;
2156 fra.me.meth = LOCATE_hash_collection___HashSetNode___key;
2157 fra.me.has_broke = 0;
2158 fra.me.REG_size = 1;
2159 fra.me.REG[0] = NIT_NULL;
2160 fra.me.REG[0] = p0;
2161 fra.me.REG[0] = ATTR_hash_collection___HashSetNode____key(fra.me.REG[0]);
2162 /* ./../lib/standard//collection//hash_collection.nit:370 */
2163 stack_frame_head = fra.me.prev;
2164 return fra.me.REG[0];
2165 }
2166 void hash_collection___HashSetNode___key__eq(val_t p0, val_t p1){
2167 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
2168 val_t tmp;
2169 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2170 fra.me.file = LOCATE_hash_collection;
2171 fra.me.line = 370;
2172 fra.me.meth = LOCATE_hash_collection___HashSetNode___key__eq;
2173 fra.me.has_broke = 0;
2174 fra.me.REG_size = 2;
2175 fra.me.REG[0] = NIT_NULL;
2176 fra.me.REG[1] = NIT_NULL;
2177 fra.me.REG[0] = p0;
2178 fra.me.REG[1] = p1;
2179 /* ./../lib/standard//collection//hash_collection.nit:370 */
2180 ATTR_hash_collection___HashSetNode____key(fra.me.REG[0]) = fra.me.REG[1];
2181 stack_frame_head = fra.me.prev;
2182 return;
2183 }
2184 void hash_collection___HashSetNode___init(val_t p0, val_t p1, int* init_table){
2185 int itpos6 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_HashSetNode].i;
2186 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
2187 val_t tmp;
2188 if (init_table[itpos6]) return;
2189 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2190 fra.me.file = LOCATE_hash_collection;
2191 fra.me.line = 372;
2192 fra.me.meth = LOCATE_hash_collection___HashSetNode___init;
2193 fra.me.has_broke = 0;
2194 fra.me.REG_size = 3;
2195 fra.me.REG[0] = NIT_NULL;
2196 fra.me.REG[1] = NIT_NULL;
2197 fra.me.REG[2] = NIT_NULL;
2198 fra.me.REG[0] = p0;
2199 fra.me.REG[1] = p1;
2200 fra.me.REG[2] = fra.me.REG[0];
2201 /* ./../lib/standard//collection//hash_collection.nit:372 */
2202 CALL_hash_collection___HashNode___init(fra.me.REG[0])(fra.me.REG[0], init_table);
2203 /* ./../lib/standard//collection//hash_collection.nit:374 */
2204 ATTR_hash_collection___HashSetNode____key(fra.me.REG[2]) = fra.me.REG[1];
2205 stack_frame_head = fra.me.prev;
2206 init_table[itpos6] = 1;
2207 return;
2208 }
2209 val_t hash_collection___HashSetIterator___item(val_t p0){
2210 struct {struct stack_frame_t me;} fra;
2211 val_t REGB0;
2212 val_t tmp;
2213 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2214 fra.me.file = LOCATE_hash_collection;
2215 fra.me.line = 382;
2216 fra.me.meth = LOCATE_hash_collection___HashSetIterator___item;
2217 fra.me.has_broke = 0;
2218 fra.me.REG_size = 1;
2219 fra.me.REG[0] = NIT_NULL;
2220 fra.me.REG[0] = p0;
2221 REGB0 = CALL_abstract_collection___Iterator___is_ok(fra.me.REG[0])(fra.me.REG[0]);
2222 /* ./../lib/standard//collection//hash_collection.nit:384 */
2223 if (UNTAG_Bool(REGB0)) {
2224 } else {
2225 fprintf(stderr, "Assert failed");
2226 fprintf(stderr, " (%s:%d)\n", LOCATE_hash_collection, 384);
2227 nit_exit(1);
2228 }
2229 fra.me.REG[0] = ATTR_hash_collection___HashSetIterator____node(fra.me.REG[0]);
2230 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
2231 /* ./../lib/standard//collection//hash_collection.nit:385 */
2232 if (UNTAG_Bool(REGB0)) {
2233 fprintf(stderr, "Reciever is null");
2234 fprintf(stderr, " (%s:%d)\n", LOCATE_hash_collection, 385);
2235 nit_exit(1);
2236 }
2237 fra.me.REG[0] = CALL_hash_collection___HashNode___key(fra.me.REG[0])(fra.me.REG[0]);
2238 goto label1;
2239 label1: while(0);
2240 stack_frame_head = fra.me.prev;
2241 return fra.me.REG[0];
2242 }
2243 void hash_collection___HashSetIterator___next(val_t p0){
2244 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
2245 val_t REGB0;
2246 val_t tmp;
2247 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2248 fra.me.file = LOCATE_hash_collection;
2249 fra.me.line = 388;
2250 fra.me.meth = LOCATE_hash_collection___HashSetIterator___next;
2251 fra.me.has_broke = 0;
2252 fra.me.REG_size = 2;
2253 fra.me.REG[0] = NIT_NULL;
2254 fra.me.REG[1] = NIT_NULL;
2255 fra.me.REG[0] = p0;
2256 REGB0 = CALL_abstract_collection___Iterator___is_ok(fra.me.REG[0])(fra.me.REG[0]);
2257 /* ./../lib/standard//collection//hash_collection.nit:390 */
2258 if (UNTAG_Bool(REGB0)) {
2259 } else {
2260 fprintf(stderr, "Assert failed");
2261 fprintf(stderr, " (%s:%d)\n", LOCATE_hash_collection, 390);
2262 nit_exit(1);
2263 }
2264 fra.me.REG[1] = ATTR_hash_collection___HashSetIterator____node(fra.me.REG[0]);
2265 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
2266 /* ./../lib/standard//collection//hash_collection.nit:391 */
2267 if (UNTAG_Bool(REGB0)) {
2268 fprintf(stderr, "Reciever is null");
2269 fprintf(stderr, " (%s:%d)\n", LOCATE_hash_collection, 391);
2270 nit_exit(1);
2271 }
2272 fra.me.REG[1] = CALL_hash_collection___HashNode___next_item(fra.me.REG[1])(fra.me.REG[1]);
2273 ATTR_hash_collection___HashSetIterator____node(fra.me.REG[0]) = fra.me.REG[1];
2274 stack_frame_head = fra.me.prev;
2275 return;
2276 }
2277 val_t hash_collection___HashSetIterator___is_ok(val_t p0){
2278 struct {struct stack_frame_t me;} fra;
2279 val_t REGB0;
2280 val_t REGB1;
2281 val_t tmp;
2282 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2283 fra.me.file = LOCATE_hash_collection;
2284 fra.me.line = 380;
2285 fra.me.meth = LOCATE_hash_collection___HashSetIterator___is_ok;
2286 fra.me.has_broke = 0;
2287 fra.me.REG_size = 1;
2288 fra.me.REG[0] = NIT_NULL;
2289 fra.me.REG[0] = p0;
2290 fra.me.REG[0] = ATTR_hash_collection___HashSetIterator____node(fra.me.REG[0]);
2291 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
2292 /* ./../lib/standard//collection//hash_collection.nit:380 */
2293 if (UNTAG_Bool(REGB0)) {
2294 } else {
2295 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
2296 if (UNTAG_Bool(REGB1)) {
2297 REGB1 = TAG_Bool(false);
2298 REGB0 = REGB1;
2299 } else {
2300 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], NIT_NULL);
2301 REGB0 = REGB1;
2302 }
2303 }
2304 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
2305 goto label1;
2306 label1: while(0);
2307 stack_frame_head = fra.me.prev;
2308 return REGB0;
2309 }
2310 void hash_collection___HashSetIterator___init(val_t p0, val_t p1, int* init_table){
2311 int itpos7 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_HashSetIterator].i;
2312 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
2313 val_t tmp;
2314 if (init_table[itpos7]) return;
2315 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2316 fra.me.file = LOCATE_hash_collection;
2317 fra.me.line = 400;
2318 fra.me.meth = LOCATE_hash_collection___HashSetIterator___init;
2319 fra.me.has_broke = 0;
2320 fra.me.REG_size = 2;
2321 fra.me.REG[0] = NIT_NULL;
2322 fra.me.REG[1] = NIT_NULL;
2323 fra.me.REG[0] = p0;
2324 fra.me.REG[1] = p1;
2325 /* ./../lib/standard//collection//hash_collection.nit:402 */
2326 ATTR_hash_collection___HashSetIterator____set(fra.me.REG[0]) = fra.me.REG[1];
2327 fra.me.REG[1] = CALL_hash_collection___HashCollection___first_item(fra.me.REG[1])(fra.me.REG[1]);
2328 /* ./../lib/standard//collection//hash_collection.nit:403 */
2329 ATTR_hash_collection___HashSetIterator____node(fra.me.REG[0]) = fra.me.REG[1];
2330 stack_frame_head = fra.me.prev;
2331 init_table[itpos7] = 1;
2332 return;
2333 }