c_src: fix last update, _nitni.h s were referring to _nit.h from Nit src
[nit.git] / c_src / standard___collection___hash_collection._sep.c
1 /* This C file is generated by NIT to compile module standard___collection___hash_collection. */
2 #include "standard___collection___hash_collection._sep.h"
3 val_t standard___collection___hash_collection___HashCollection___first_item(val_t p0){
4 struct {struct stack_frame_t me;} fra;
5 val_t tmp;
6 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
7 fra.me.file = LOCATE_standard___collection___hash_collection;
8 fra.me.line = 27;
9 fra.me.meth = LOCATE_standard___collection___hash_collection___HashCollection___first_item;
10 fra.me.has_broke = 0;
11 fra.me.REG_size = 1;
12 fra.me.REG[0] = NIT_NULL;
13 fra.me.REG[0] = p0;
14 /* ./../lib/standard//collection//hash_collection.nit:27 */
15 fra.me.REG[0] = ATTR_standard___collection___hash_collection___HashCollection____first_item(fra.me.REG[0]);
16 stack_frame_head = fra.me.prev;
17 return fra.me.REG[0];
18 }
19 val_t standard___collection___hash_collection___HashCollection___index_at(val_t p0, val_t p1){
20 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
21 val_t REGB0;
22 val_t REGB1;
23 val_t REGB2;
24 val_t tmp;
25 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
26 fra.me.file = LOCATE_standard___collection___hash_collection;
27 fra.me.line = 36;
28 fra.me.meth = LOCATE_standard___collection___hash_collection___HashCollection___index_at;
29 fra.me.has_broke = 0;
30 fra.me.REG_size = 2;
31 fra.me.REG[0] = NIT_NULL;
32 fra.me.REG[1] = NIT_NULL;
33 fra.me.REG[0] = p0;
34 fra.me.REG[1] = p1;
35 /* ./../lib/standard//collection//hash_collection.nit:39 */
36 REGB0 = CALL_standard___hash___Object___hash(fra.me.REG[1])(fra.me.REG[1]);
37 REGB1 = TAG_Bool(ATTR_standard___collection___hash_collection___HashCollection____capacity(fra.me.REG[0])!=NIT_NULL);
38 if (UNTAG_Bool(REGB1)) {
39 } else {
40 nit_abort("Uninitialized attribute %s", "_capacity", LOCATE_standard___collection___hash_collection, 39);
41 }
42 REGB1 = ATTR_standard___collection___hash_collection___HashCollection____capacity(fra.me.REG[0]);
43 /* ./../lib/standard//kernel.nit:240 */
44 REGB1 = TAG_Int(UNTAG_Int(REGB0)%UNTAG_Int(REGB1));
45 /* ./../lib/standard//collection//hash_collection.nit:40 */
46 REGB0 = TAG_Int(0);
47 REGB2 = TAG_Bool(VAL_ISA(REGB0, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
48 if (UNTAG_Bool(REGB2)) {
49 } else {
50 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
51 }
52 /* ./../lib/standard//kernel.nit:232 */
53 REGB0 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB0));
54 /* ./../lib/standard//collection//hash_collection.nit:40 */
55 if (UNTAG_Bool(REGB0)) {
56 /* ./../lib/standard//kernel.nit:236 */
57 REGB0 = TAG_Int(-UNTAG_Int(REGB1));
58 /* ./../lib/standard//collection//hash_collection.nit:40 */
59 REGB1 = REGB0;
60 }
61 /* ./../lib/standard//collection//hash_collection.nit:41 */
62 goto label1;
63 label1: while(0);
64 stack_frame_head = fra.me.prev;
65 return REGB1;
66 }
67 val_t standard___collection___hash_collection___HashCollection___node_at(val_t p0, val_t p1){
68 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
69 val_t REGB0;
70 val_t tmp;
71 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
72 fra.me.file = LOCATE_standard___collection___hash_collection;
73 fra.me.line = 44;
74 fra.me.meth = LOCATE_standard___collection___hash_collection___HashCollection___node_at;
75 fra.me.has_broke = 0;
76 fra.me.REG_size = 4;
77 fra.me.REG[0] = NIT_NULL;
78 fra.me.REG[1] = NIT_NULL;
79 fra.me.REG[2] = NIT_NULL;
80 fra.me.REG[3] = NIT_NULL;
81 fra.me.REG[0] = p0;
82 fra.me.REG[1] = p1;
83 /* ./../lib/standard//collection//hash_collection.nit:48 */
84 fra.me.REG[2] = ATTR_standard___collection___hash_collection___HashCollection____last_accessed_key(fra.me.REG[0]);
85 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[2]));
86 if (UNTAG_Bool(REGB0)) {
87 fra.me.REG[2] = ATTR_standard___collection___hash_collection___HashCollection____last_accessed_node(fra.me.REG[0]);
88 goto label1;
89 }
90 /* ./../lib/standard//collection//hash_collection.nit:50 */
91 REGB0 = CALL_standard___collection___hash_collection___HashCollection___index_at(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
92 fra.me.REG[3] = CALL_standard___collection___hash_collection___HashCollection___node_at_idx(fra.me.REG[0])(fra.me.REG[0], REGB0, fra.me.REG[1]);
93 /* ./../lib/standard//collection//hash_collection.nit:51 */
94 ATTR_standard___collection___hash_collection___HashCollection____last_accessed_key(fra.me.REG[0]) = fra.me.REG[1];
95 /* ./../lib/standard//collection//hash_collection.nit:52 */
96 ATTR_standard___collection___hash_collection___HashCollection____last_accessed_node(fra.me.REG[0]) = fra.me.REG[3];
97 /* ./../lib/standard//collection//hash_collection.nit:53 */
98 fra.me.REG[2] = fra.me.REG[3];
99 goto label1;
100 label1: while(0);
101 stack_frame_head = fra.me.prev;
102 return fra.me.REG[2];
103 }
104 val_t standard___collection___hash_collection___HashCollection___node_at_idx(val_t p0, val_t p1, val_t p2){
105 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
106 val_t REGB0;
107 val_t REGB1;
108 val_t REGB2;
109 val_t tmp;
110 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
111 fra.me.file = LOCATE_standard___collection___hash_collection;
112 fra.me.line = 56;
113 fra.me.meth = LOCATE_standard___collection___hash_collection___HashCollection___node_at_idx;
114 fra.me.has_broke = 0;
115 fra.me.REG_size = 3;
116 fra.me.REG[0] = NIT_NULL;
117 fra.me.REG[1] = NIT_NULL;
118 fra.me.REG[2] = NIT_NULL;
119 fra.me.REG[0] = p0;
120 REGB0 = p1;
121 fra.me.REG[1] = p2;
122 /* ./../lib/standard//collection//hash_collection.nit:59 */
123 fra.me.REG[0] = ATTR_standard___collection___hash_collection___HashCollection____array(fra.me.REG[0]);
124 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
125 if (UNTAG_Bool(REGB1)) {
126 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___hash_collection, 59);
127 }
128 /* ./../lib/standard//collection//array.nit:718 */
129 fra.me.REG[0] = ((Nit_NativeArray)fra.me.REG[0])->val[UNTAG_Int(REGB0)];
130 /* ./../lib/standard//collection//hash_collection.nit:60 */
131 while(1) {
132 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
133 if (UNTAG_Bool(REGB0)) {
134 } else {
135 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
136 if (UNTAG_Bool(REGB1)) {
137 REGB1 = TAG_Bool(false);
138 REGB0 = REGB1;
139 } else {
140 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], NIT_NULL);
141 REGB0 = REGB1;
142 }
143 }
144 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
145 if (UNTAG_Bool(REGB0)) {
146 /* ./../lib/standard//collection//hash_collection.nit:61 */
147 REGB0 = TAG_Bool(ATTR_standard___collection___hash_collection___HashNode____key(fra.me.REG[0])!=NIT_NULL);
148 if (UNTAG_Bool(REGB0)) {
149 } else {
150 nit_abort("Uninitialized attribute %s", "_key", LOCATE_standard___collection___hash_collection, 61);
151 }
152 fra.me.REG[2] = ATTR_standard___collection___hash_collection___HashNode____key(fra.me.REG[0]);
153 /* ./../lib/standard//collection//hash_collection.nit:62 */
154 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[2],fra.me.REG[1]));
155 if (UNTAG_Bool(REGB0)) {
156 REGB0 = TAG_Bool(true);
157 } else {
158 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[2],fra.me.REG[1]));
159 if (UNTAG_Bool(REGB1)) {
160 } else {
161 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
162 REGB1 = REGB2;
163 }
164 REGB0 = REGB1;
165 }
166 if (UNTAG_Bool(REGB0)) {
167 /* ./../lib/standard//collection//hash_collection.nit:63 */
168 goto label1;
169 }
170 /* ./../lib/standard//collection//hash_collection.nit:65 */
171 fra.me.REG[2] = ATTR_standard___collection___hash_collection___HashNode____next_in_bucklet(fra.me.REG[0]);
172 fra.me.REG[0] = fra.me.REG[2];
173 } else {
174 /* ./../lib/standard//collection//hash_collection.nit:60 */
175 goto label1;
176 }
177 }
178 label1: while(0);
179 /* ./../lib/standard//collection//hash_collection.nit:67 */
180 goto label2;
181 label2: while(0);
182 stack_frame_head = fra.me.prev;
183 return fra.me.REG[0];
184 }
185 void standard___collection___hash_collection___HashCollection___store(val_t p0, val_t p1, val_t p2){
186 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
187 val_t REGB0;
188 val_t REGB1;
189 val_t REGB2;
190 val_t tmp;
191 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
192 fra.me.file = LOCATE_standard___collection___hash_collection;
193 fra.me.line = 70;
194 fra.me.meth = LOCATE_standard___collection___hash_collection___HashCollection___store;
195 fra.me.has_broke = 0;
196 fra.me.REG_size = 4;
197 fra.me.REG[0] = NIT_NULL;
198 fra.me.REG[1] = NIT_NULL;
199 fra.me.REG[2] = NIT_NULL;
200 fra.me.REG[3] = NIT_NULL;
201 fra.me.REG[0] = p0;
202 REGB0 = p1;
203 fra.me.REG[1] = p2;
204 /* ./../lib/standard//collection//hash_collection.nit:74 */
205 fra.me.REG[2] = ATTR_standard___collection___hash_collection___HashCollection____first_item(fra.me.REG[0]);
206 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
207 if (UNTAG_Bool(REGB1)) {
208 } else {
209 REGB2 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
210 if (UNTAG_Bool(REGB2)) {
211 REGB2 = TAG_Bool(false);
212 REGB1 = REGB2;
213 } else {
214 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
215 REGB1 = REGB2;
216 }
217 }
218 if (UNTAG_Bool(REGB1)) {
219 /* ./../lib/standard//collection//hash_collection.nit:75 */
220 ATTR_standard___collection___hash_collection___HashCollection____first_item(fra.me.REG[0]) = fra.me.REG[1];
221 } else {
222 /* ./../lib/standard//collection//hash_collection.nit:77 */
223 fra.me.REG[2] = ATTR_standard___collection___hash_collection___HashCollection____last_item(fra.me.REG[0]);
224 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
225 if (UNTAG_Bool(REGB1)) {
226 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___hash_collection, 77);
227 }
228 ATTR_standard___collection___hash_collection___HashNode____next_item(fra.me.REG[2]) = fra.me.REG[1];
229 }
230 /* ./../lib/standard//collection//hash_collection.nit:79 */
231 fra.me.REG[2] = ATTR_standard___collection___hash_collection___HashCollection____last_item(fra.me.REG[0]);
232 ATTR_standard___collection___hash_collection___HashNode____prev_item(fra.me.REG[1]) = fra.me.REG[2];
233 /* ./../lib/standard//collection//hash_collection.nit:80 */
234 ATTR_standard___collection___hash_collection___HashNode____next_item(fra.me.REG[1]) = NIT_NULL;
235 /* ./../lib/standard//collection//hash_collection.nit:81 */
236 ATTR_standard___collection___hash_collection___HashCollection____last_item(fra.me.REG[0]) = fra.me.REG[1];
237 /* ./../lib/standard//collection//hash_collection.nit:84 */
238 fra.me.REG[2] = ATTR_standard___collection___hash_collection___HashCollection____array(fra.me.REG[0]);
239 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
240 if (UNTAG_Bool(REGB1)) {
241 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___hash_collection, 84);
242 }
243 /* ./../lib/standard//collection//array.nit:718 */
244 fra.me.REG[2] = ((Nit_NativeArray)fra.me.REG[2])->val[UNTAG_Int(REGB0)];
245 /* ./../lib/standard//collection//hash_collection.nit:85 */
246 fra.me.REG[3] = ATTR_standard___collection___hash_collection___HashCollection____array(fra.me.REG[0]);
247 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
248 if (UNTAG_Bool(REGB1)) {
249 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___hash_collection, 85);
250 }
251 /* ./../lib/standard//collection//array.nit:719 */
252 ((Nit_NativeArray)fra.me.REG[3])->val[UNTAG_Int(REGB0)]=fra.me.REG[1];
253 /* ./../lib/standard//collection//hash_collection.nit:86 */
254 ATTR_standard___collection___hash_collection___HashNode____next_in_bucklet(fra.me.REG[1]) = fra.me.REG[2];
255 /* ./../lib/standard//collection//hash_collection.nit:87 */
256 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
257 if (UNTAG_Bool(REGB0)) {
258 } else {
259 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
260 if (UNTAG_Bool(REGB1)) {
261 REGB1 = TAG_Bool(false);
262 REGB0 = REGB1;
263 } else {
264 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
265 REGB0 = REGB1;
266 }
267 }
268 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
269 if (UNTAG_Bool(REGB0)) {
270 ATTR_standard___collection___hash_collection___HashNode____prev_in_bucklet(fra.me.REG[2]) = fra.me.REG[1];
271 }
272 /* ./../lib/standard//collection//hash_collection.nit:89 */
273 REGB0 = TAG_Bool(ATTR_standard___collection___hash_collection___HashNode____key(fra.me.REG[1])!=NIT_NULL);
274 if (UNTAG_Bool(REGB0)) {
275 } else {
276 nit_abort("Uninitialized attribute %s", "_key", LOCATE_standard___collection___hash_collection, 89);
277 }
278 fra.me.REG[2] = ATTR_standard___collection___hash_collection___HashNode____key(fra.me.REG[1]);
279 ATTR_standard___collection___hash_collection___HashCollection____last_accessed_key(fra.me.REG[0]) = fra.me.REG[2];
280 /* ./../lib/standard//collection//hash_collection.nit:90 */
281 ATTR_standard___collection___hash_collection___HashCollection____last_accessed_node(fra.me.REG[0]) = fra.me.REG[1];
282 /* ./../lib/standard//collection//hash_collection.nit:93 */
283 REGB0 = TAG_Bool(ATTR_standard___collection___hash_collection___HashCollection____length(fra.me.REG[0])!=NIT_NULL);
284 if (UNTAG_Bool(REGB0)) {
285 } else {
286 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___hash_collection, 93);
287 }
288 REGB0 = ATTR_standard___collection___hash_collection___HashCollection____length(fra.me.REG[0]);
289 /* ./../lib/standard//collection//hash_collection.nit:94 */
290 REGB1 = TAG_Int(1);
291 /* ./../lib/standard//kernel.nit:235 */
292 REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
293 /* ./../lib/standard//collection//hash_collection.nit:94 */
294 ATTR_standard___collection___hash_collection___HashCollection____length(fra.me.REG[0]) = REGB1;
295 /* ./../lib/standard//collection//hash_collection.nit:95 */
296 REGB1 = TAG_Int(5);
297 /* ./../lib/standard//kernel.nit:235 */
298 REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
299 /* ./../lib/standard//collection//hash_collection.nit:95 */
300 REGB2 = TAG_Int(3);
301 /* ./../lib/standard//kernel.nit:238 */
302 REGB2 = TAG_Int(UNTAG_Int(REGB1)*UNTAG_Int(REGB2));
303 /* ./../lib/standard//collection//hash_collection.nit:95 */
304 REGB1 = TAG_Int(2);
305 /* ./../lib/standard//kernel.nit:239 */
306 REGB1 = TAG_Int(UNTAG_Int(REGB2)/UNTAG_Int(REGB1));
307 /* ./../lib/standard//collection//hash_collection.nit:95 */
308 REGB0 = REGB1;
309 /* ./../lib/standard//collection//hash_collection.nit:96 */
310 REGB1 = TAG_Bool(ATTR_standard___collection___hash_collection___HashCollection____capacity(fra.me.REG[0])!=NIT_NULL);
311 if (UNTAG_Bool(REGB1)) {
312 } else {
313 nit_abort("Uninitialized attribute %s", "_capacity", LOCATE_standard___collection___hash_collection, 96);
314 }
315 REGB1 = ATTR_standard___collection___hash_collection___HashCollection____capacity(fra.me.REG[0]);
316 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
317 if (UNTAG_Bool(REGB2)) {
318 } else {
319 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
320 }
321 /* ./../lib/standard//kernel.nit:233 */
322 REGB1 = TAG_Bool(UNTAG_Int(REGB0)>=UNTAG_Int(REGB1));
323 /* ./../lib/standard//collection//hash_collection.nit:96 */
324 if (UNTAG_Bool(REGB1)) {
325 /* ./../lib/standard//collection//hash_collection.nit:97 */
326 REGB1 = TAG_Int(2);
327 /* ./../lib/standard//kernel.nit:238 */
328 REGB1 = TAG_Int(UNTAG_Int(REGB0)*UNTAG_Int(REGB1));
329 /* ./../lib/standard//collection//hash_collection.nit:97 */
330 CALL_standard___collection___hash_collection___HashCollection___enlarge(fra.me.REG[0])(fra.me.REG[0], REGB1);
331 }
332 stack_frame_head = fra.me.prev;
333 return;
334 }
335 void standard___collection___hash_collection___HashCollection___remove_node(val_t p0, val_t p1){
336 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
337 val_t REGB0;
338 val_t REGB1;
339 val_t REGB2;
340 val_t tmp;
341 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
342 fra.me.file = LOCATE_standard___collection___hash_collection;
343 fra.me.line = 101;
344 fra.me.meth = LOCATE_standard___collection___hash_collection___HashCollection___remove_node;
345 fra.me.has_broke = 0;
346 fra.me.REG_size = 5;
347 fra.me.REG[0] = NIT_NULL;
348 fra.me.REG[1] = NIT_NULL;
349 fra.me.REG[2] = NIT_NULL;
350 fra.me.REG[3] = NIT_NULL;
351 fra.me.REG[4] = NIT_NULL;
352 fra.me.REG[0] = p0;
353 fra.me.REG[1] = p1;
354 /* ./../lib/standard//collection//hash_collection.nit:104 */
355 REGB0 = CALL_standard___collection___hash_collection___HashCollection___index_at(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
356 /* ./../lib/standard//collection//hash_collection.nit:105 */
357 fra.me.REG[1] = CALL_standard___collection___hash_collection___HashCollection___node_at_idx(fra.me.REG[0])(fra.me.REG[0], REGB0, fra.me.REG[1]);
358 /* ./../lib/standard//collection//hash_collection.nit:106 */
359 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
360 if (UNTAG_Bool(REGB1)) {
361 } else {
362 REGB2 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
363 if (UNTAG_Bool(REGB2)) {
364 REGB2 = TAG_Bool(false);
365 REGB1 = REGB2;
366 } else {
367 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
368 REGB1 = REGB2;
369 }
370 }
371 if (UNTAG_Bool(REGB1)) {
372 goto label1;
373 }
374 /* ./../lib/standard//collection//hash_collection.nit:109 */
375 fra.me.REG[2] = ATTR_standard___collection___hash_collection___HashNode____prev_item(fra.me.REG[1]);
376 /* ./../lib/standard//collection//hash_collection.nit:110 */
377 fra.me.REG[3] = ATTR_standard___collection___hash_collection___HashNode____next_item(fra.me.REG[1]);
378 /* ./../lib/standard//collection//hash_collection.nit:111 */
379 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
380 if (UNTAG_Bool(REGB1)) {
381 } else {
382 REGB2 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
383 if (UNTAG_Bool(REGB2)) {
384 REGB2 = TAG_Bool(false);
385 REGB1 = REGB2;
386 } else {
387 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
388 REGB1 = REGB2;
389 }
390 }
391 REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
392 if (UNTAG_Bool(REGB1)) {
393 /* ./../lib/standard//collection//hash_collection.nit:112 */
394 ATTR_standard___collection___hash_collection___HashNode____next_item(fra.me.REG[2]) = fra.me.REG[3];
395 } else {
396 /* ./../lib/standard//collection//hash_collection.nit:114 */
397 ATTR_standard___collection___hash_collection___HashCollection____first_item(fra.me.REG[0]) = fra.me.REG[3];
398 }
399 /* ./../lib/standard//collection//hash_collection.nit:116 */
400 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
401 if (UNTAG_Bool(REGB1)) {
402 } else {
403 REGB2 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
404 if (UNTAG_Bool(REGB2)) {
405 REGB2 = TAG_Bool(false);
406 REGB1 = REGB2;
407 } else {
408 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
409 REGB1 = REGB2;
410 }
411 }
412 REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
413 if (UNTAG_Bool(REGB1)) {
414 /* ./../lib/standard//collection//hash_collection.nit:117 */
415 ATTR_standard___collection___hash_collection___HashNode____prev_item(fra.me.REG[3]) = fra.me.REG[2];
416 } else {
417 /* ./../lib/standard//collection//hash_collection.nit:119 */
418 ATTR_standard___collection___hash_collection___HashCollection____last_item(fra.me.REG[0]) = fra.me.REG[2];
419 }
420 /* ./../lib/standard//collection//hash_collection.nit:123 */
421 REGB1 = ATTR_standard___collection___hash_collection___HashCollection____length(fra.me.REG[0]);
422 REGB2 = TAG_Int(1);
423 /* ./../lib/standard//kernel.nit:237 */
424 REGB2 = TAG_Int(UNTAG_Int(REGB1)-UNTAG_Int(REGB2));
425 /* ./../lib/standard//collection//hash_collection.nit:123 */
426 ATTR_standard___collection___hash_collection___HashCollection____length(fra.me.REG[0]) = REGB2;
427 /* ./../lib/standard//collection//hash_collection.nit:124 */
428 fra.me.REG[4] = ATTR_standard___collection___hash_collection___HashNode____prev_in_bucklet(fra.me.REG[1]);
429 fra.me.REG[2] = fra.me.REG[4];
430 /* ./../lib/standard//collection//hash_collection.nit:125 */
431 fra.me.REG[1] = ATTR_standard___collection___hash_collection___HashNode____next_in_bucklet(fra.me.REG[1]);
432 fra.me.REG[3] = fra.me.REG[1];
433 /* ./../lib/standard//collection//hash_collection.nit:126 */
434 REGB2 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
435 if (UNTAG_Bool(REGB2)) {
436 } else {
437 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
438 if (UNTAG_Bool(REGB1)) {
439 REGB1 = TAG_Bool(false);
440 REGB2 = REGB1;
441 } else {
442 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
443 REGB2 = REGB1;
444 }
445 }
446 REGB2 = TAG_Bool(!UNTAG_Bool(REGB2));
447 if (UNTAG_Bool(REGB2)) {
448 /* ./../lib/standard//collection//hash_collection.nit:127 */
449 ATTR_standard___collection___hash_collection___HashNode____next_in_bucklet(fra.me.REG[2]) = fra.me.REG[3];
450 } else {
451 /* ./../lib/standard//collection//hash_collection.nit:129 */
452 fra.me.REG[1] = ATTR_standard___collection___hash_collection___HashCollection____array(fra.me.REG[0]);
453 REGB2 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
454 if (UNTAG_Bool(REGB2)) {
455 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___hash_collection, 129);
456 }
457 /* ./../lib/standard//collection//array.nit:719 */
458 ((Nit_NativeArray)fra.me.REG[1])->val[UNTAG_Int(REGB0)]=fra.me.REG[3];
459 }
460 /* ./../lib/standard//collection//hash_collection.nit:131 */
461 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
462 if (UNTAG_Bool(REGB0)) {
463 } else {
464 REGB2 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
465 if (UNTAG_Bool(REGB2)) {
466 REGB2 = TAG_Bool(false);
467 REGB0 = REGB2;
468 } else {
469 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
470 REGB0 = REGB2;
471 }
472 }
473 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
474 if (UNTAG_Bool(REGB0)) {
475 /* ./../lib/standard//collection//hash_collection.nit:132 */
476 ATTR_standard___collection___hash_collection___HashNode____prev_in_bucklet(fra.me.REG[3]) = fra.me.REG[2];
477 }
478 /* ./../lib/standard//collection//hash_collection.nit:135 */
479 ATTR_standard___collection___hash_collection___HashCollection____last_accessed_key(fra.me.REG[0]) = NIT_NULL;
480 label1: while(0);
481 stack_frame_head = fra.me.prev;
482 return;
483 }
484 void standard___collection___hash_collection___HashCollection___raz(val_t p0){
485 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
486 val_t REGB0;
487 val_t REGB1;
488 val_t REGB2;
489 val_t tmp;
490 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
491 fra.me.file = LOCATE_standard___collection___hash_collection;
492 fra.me.line = 138;
493 fra.me.meth = LOCATE_standard___collection___hash_collection___HashCollection___raz;
494 fra.me.has_broke = 0;
495 fra.me.REG_size = 2;
496 fra.me.REG[0] = NIT_NULL;
497 fra.me.REG[1] = NIT_NULL;
498 fra.me.REG[0] = p0;
499 /* ./../lib/standard//collection//hash_collection.nit:141 */
500 REGB0 = TAG_Bool(ATTR_standard___collection___hash_collection___HashCollection____capacity(fra.me.REG[0])!=NIT_NULL);
501 if (UNTAG_Bool(REGB0)) {
502 } else {
503 nit_abort("Uninitialized attribute %s", "_capacity", LOCATE_standard___collection___hash_collection, 141);
504 }
505 REGB0 = ATTR_standard___collection___hash_collection___HashCollection____capacity(fra.me.REG[0]);
506 REGB1 = TAG_Int(1);
507 /* ./../lib/standard//kernel.nit:237 */
508 REGB1 = TAG_Int(UNTAG_Int(REGB0)-UNTAG_Int(REGB1));
509 /* ./../lib/standard//collection//hash_collection.nit:142 */
510 while(1) {
511 REGB0 = TAG_Int(0);
512 REGB2 = TAG_Bool(VAL_ISA(REGB0, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
513 if (UNTAG_Bool(REGB2)) {
514 } else {
515 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
516 }
517 /* ./../lib/standard//kernel.nit:233 */
518 REGB0 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB0));
519 /* ./../lib/standard//collection//hash_collection.nit:142 */
520 if (UNTAG_Bool(REGB0)) {
521 /* ./../lib/standard//collection//hash_collection.nit:143 */
522 fra.me.REG[1] = ATTR_standard___collection___hash_collection___HashCollection____array(fra.me.REG[0]);
523 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
524 if (UNTAG_Bool(REGB0)) {
525 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___hash_collection, 143);
526 }
527 /* ./../lib/standard//collection//array.nit:719 */
528 ((Nit_NativeArray)fra.me.REG[1])->val[UNTAG_Int(REGB1)]=NIT_NULL;
529 /* ./../lib/standard//collection//hash_collection.nit:144 */
530 REGB0 = TAG_Int(1);
531 /* ./../lib/standard//kernel.nit:237 */
532 REGB0 = TAG_Int(UNTAG_Int(REGB1)-UNTAG_Int(REGB0));
533 /* ./../lib/standard//collection//hash_collection.nit:144 */
534 REGB1 = REGB0;
535 } else {
536 /* ./../lib/standard//collection//hash_collection.nit:142 */
537 goto label1;
538 }
539 }
540 label1: while(0);
541 /* ./../lib/standard//collection//hash_collection.nit:146 */
542 REGB1 = TAG_Int(0);
543 ATTR_standard___collection___hash_collection___HashCollection____length(fra.me.REG[0]) = REGB1;
544 /* ./../lib/standard//collection//hash_collection.nit:147 */
545 ATTR_standard___collection___hash_collection___HashCollection____first_item(fra.me.REG[0]) = NIT_NULL;
546 /* ./../lib/standard//collection//hash_collection.nit:148 */
547 ATTR_standard___collection___hash_collection___HashCollection____last_item(fra.me.REG[0]) = NIT_NULL;
548 /* ./../lib/standard//collection//hash_collection.nit:149 */
549 ATTR_standard___collection___hash_collection___HashCollection____last_accessed_key(fra.me.REG[0]) = NIT_NULL;
550 stack_frame_head = fra.me.prev;
551 return;
552 }
553 void standard___collection___hash_collection___HashCollection___enlarge(val_t p0, val_t p1){
554 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
555 val_t REGB0;
556 val_t REGB1;
557 val_t REGB2;
558 val_t REGB3;
559 val_t tmp;
560 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
561 fra.me.file = LOCATE_standard___collection___hash_collection;
562 fra.me.line = 152;
563 fra.me.meth = LOCATE_standard___collection___hash_collection___HashCollection___enlarge;
564 fra.me.has_broke = 0;
565 fra.me.REG_size = 4;
566 fra.me.REG[0] = NIT_NULL;
567 fra.me.REG[1] = NIT_NULL;
568 fra.me.REG[2] = NIT_NULL;
569 fra.me.REG[3] = NIT_NULL;
570 fra.me.REG[0] = p0;
571 REGB0 = p1;
572 /* ./../lib/standard//collection//hash_collection.nit:155 */
573 REGB1 = TAG_Bool(ATTR_standard___collection___hash_collection___HashCollection____capacity(fra.me.REG[0])!=NIT_NULL);
574 if (UNTAG_Bool(REGB1)) {
575 } else {
576 nit_abort("Uninitialized attribute %s", "_capacity", LOCATE_standard___collection___hash_collection, 155);
577 }
578 REGB1 = ATTR_standard___collection___hash_collection___HashCollection____capacity(fra.me.REG[0]);
579 /* ./../lib/standard//collection//hash_collection.nit:157 */
580 REGB2 = TAG_Bool(ATTR_standard___collection___hash_collection___HashCollection____length(fra.me.REG[0])!=NIT_NULL);
581 if (UNTAG_Bool(REGB2)) {
582 } else {
583 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___hash_collection, 157);
584 }
585 REGB2 = ATTR_standard___collection___hash_collection___HashCollection____length(fra.me.REG[0]);
586 REGB3 = TAG_Int(1);
587 /* ./../lib/standard//kernel.nit:235 */
588 REGB3 = TAG_Int(UNTAG_Int(REGB2)+UNTAG_Int(REGB3));
589 REGB2 = TAG_Bool(VAL_ISA(REGB3, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
590 if (UNTAG_Bool(REGB2)) {
591 } else {
592 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
593 }
594 /* ./../lib/standard//kernel.nit:232 */
595 REGB3 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB3));
596 /* ./../lib/standard//collection//hash_collection.nit:157 */
597 if (UNTAG_Bool(REGB3)) {
598 REGB3 = TAG_Bool(ATTR_standard___collection___hash_collection___HashCollection____length(fra.me.REG[0])!=NIT_NULL);
599 if (UNTAG_Bool(REGB3)) {
600 } else {
601 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___hash_collection, 157);
602 }
603 REGB3 = ATTR_standard___collection___hash_collection___HashCollection____length(fra.me.REG[0]);
604 REGB2 = TAG_Int(1);
605 /* ./../lib/standard//kernel.nit:235 */
606 REGB2 = TAG_Int(UNTAG_Int(REGB3)+UNTAG_Int(REGB2));
607 /* ./../lib/standard//collection//hash_collection.nit:157 */
608 REGB0 = REGB2;
609 }
610 /* ./../lib/standard//collection//hash_collection.nit:158 */
611 REGB2 = TAG_Bool(ATTR_standard___collection___hash_collection___HashCollection____capacity(fra.me.REG[0])!=NIT_NULL);
612 if (UNTAG_Bool(REGB2)) {
613 } else {
614 nit_abort("Uninitialized attribute %s", "_capacity", LOCATE_standard___collection___hash_collection, 158);
615 }
616 REGB2 = ATTR_standard___collection___hash_collection___HashCollection____capacity(fra.me.REG[0]);
617 REGB3 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
618 if (UNTAG_Bool(REGB3)) {
619 } else {
620 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
621 }
622 /* ./../lib/standard//kernel.nit:231 */
623 REGB2 = TAG_Bool(UNTAG_Int(REGB0)<=UNTAG_Int(REGB2));
624 /* ./../lib/standard//collection//hash_collection.nit:158 */
625 if (UNTAG_Bool(REGB2)) {
626 goto label1;
627 }
628 /* ./../lib/standard//collection//hash_collection.nit:159 */
629 ATTR_standard___collection___hash_collection___HashCollection____capacity(fra.me.REG[0]) = REGB0;
630 /* ./../lib/standard//collection//hash_collection.nit:160 */
631 ATTR_standard___collection___hash_collection___HashCollection____last_accessed_key(fra.me.REG[0]) = NIT_NULL;
632 /* ./../lib/standard//collection//array.nit:712 */
633 fra.me.REG[1] = NEW_NativeArray(UNTAG_Int(REGB0), sizeof(val_t));
634 /* ./../lib/standard//collection//hash_collection.nit:164 */
635 ATTR_standard___collection___hash_collection___HashCollection____array(fra.me.REG[0]) = fra.me.REG[1];
636 /* ./../lib/standard//collection//hash_collection.nit:167 */
637 REGB2 = TAG_Int(1);
638 /* ./../lib/standard//kernel.nit:237 */
639 REGB2 = TAG_Int(UNTAG_Int(REGB0)-UNTAG_Int(REGB2));
640 /* ./../lib/standard//collection//hash_collection.nit:168 */
641 while(1) {
642 REGB0 = TAG_Int(0);
643 REGB3 = TAG_Bool(VAL_ISA(REGB0, VTCOLOR_standard___kernel___Comparable___OTHER(REGB2), VTID_standard___kernel___Comparable___OTHER(REGB2))) /*cast OTHER*/;
644 if (UNTAG_Bool(REGB3)) {
645 } else {
646 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
647 }
648 /* ./../lib/standard//kernel.nit:233 */
649 REGB0 = TAG_Bool(UNTAG_Int(REGB2)>=UNTAG_Int(REGB0));
650 /* ./../lib/standard//collection//hash_collection.nit:168 */
651 if (UNTAG_Bool(REGB0)) {
652 /* ./../lib/standard//collection//array.nit:719 */
653 ((Nit_NativeArray)fra.me.REG[1])->val[UNTAG_Int(REGB2)]=NIT_NULL;
654 /* ./../lib/standard//collection//hash_collection.nit:170 */
655 REGB0 = TAG_Int(1);
656 /* ./../lib/standard//kernel.nit:237 */
657 REGB0 = TAG_Int(UNTAG_Int(REGB2)-UNTAG_Int(REGB0));
658 /* ./../lib/standard//collection//hash_collection.nit:170 */
659 REGB2 = REGB0;
660 } else {
661 /* ./../lib/standard//collection//hash_collection.nit:168 */
662 goto label2;
663 }
664 }
665 label2: while(0);
666 /* ./../lib/standard//collection//hash_collection.nit:173 */
667 REGB2 = TAG_Bool(ATTR_standard___collection___hash_collection___HashCollection____capacity(fra.me.REG[0])!=NIT_NULL);
668 if (UNTAG_Bool(REGB2)) {
669 } else {
670 nit_abort("Uninitialized attribute %s", "_capacity", LOCATE_standard___collection___hash_collection, 173);
671 }
672 REGB2 = ATTR_standard___collection___hash_collection___HashCollection____capacity(fra.me.REG[0]);
673 REGB0 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB2), VTID_standard___kernel___Comparable___OTHER(REGB2))) /*cast OTHER*/;
674 if (UNTAG_Bool(REGB0)) {
675 } else {
676 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
677 }
678 /* ./../lib/standard//kernel.nit:231 */
679 REGB1 = TAG_Bool(UNTAG_Int(REGB2)<=UNTAG_Int(REGB1));
680 /* ./../lib/standard//collection//hash_collection.nit:173 */
681 if (UNTAG_Bool(REGB1)) {
682 goto label1;
683 }
684 /* ./../lib/standard//collection//hash_collection.nit:176 */
685 fra.me.REG[2] = ATTR_standard___collection___hash_collection___HashCollection____first_item(fra.me.REG[0]);
686 /* ./../lib/standard//collection//hash_collection.nit:177 */
687 while(1) {
688 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
689 if (UNTAG_Bool(REGB1)) {
690 } else {
691 REGB2 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
692 if (UNTAG_Bool(REGB2)) {
693 REGB2 = TAG_Bool(false);
694 REGB1 = REGB2;
695 } else {
696 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
697 REGB1 = REGB2;
698 }
699 }
700 REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
701 if (UNTAG_Bool(REGB1)) {
702 /* ./../lib/standard//collection//hash_collection.nit:178 */
703 REGB1 = TAG_Bool(ATTR_standard___collection___hash_collection___HashNode____key(fra.me.REG[2])!=NIT_NULL);
704 if (UNTAG_Bool(REGB1)) {
705 } else {
706 nit_abort("Uninitialized attribute %s", "_key", LOCATE_standard___collection___hash_collection, 178);
707 }
708 fra.me.REG[3] = ATTR_standard___collection___hash_collection___HashNode____key(fra.me.REG[2]);
709 REGB1 = CALL_standard___collection___hash_collection___HashCollection___index_at(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[3]);
710 /* ./../lib/standard//collection//array.nit:718 */
711 fra.me.REG[3] = ((Nit_NativeArray)fra.me.REG[1])->val[UNTAG_Int(REGB1)];
712 /* ./../lib/standard//collection//array.nit:719 */
713 ((Nit_NativeArray)fra.me.REG[1])->val[UNTAG_Int(REGB1)]=fra.me.REG[2];
714 /* ./../lib/standard//collection//hash_collection.nit:182 */
715 ATTR_standard___collection___hash_collection___HashNode____next_in_bucklet(fra.me.REG[2]) = fra.me.REG[3];
716 /* ./../lib/standard//collection//hash_collection.nit:183 */
717 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
718 if (UNTAG_Bool(REGB1)) {
719 } else {
720 REGB2 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
721 if (UNTAG_Bool(REGB2)) {
722 REGB2 = TAG_Bool(false);
723 REGB1 = REGB2;
724 } else {
725 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
726 REGB1 = REGB2;
727 }
728 }
729 REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
730 if (UNTAG_Bool(REGB1)) {
731 ATTR_standard___collection___hash_collection___HashNode____prev_in_bucklet(fra.me.REG[3]) = fra.me.REG[2];
732 }
733 /* ./../lib/standard//collection//hash_collection.nit:184 */
734 fra.me.REG[3] = ATTR_standard___collection___hash_collection___HashNode____next_item(fra.me.REG[2]);
735 fra.me.REG[2] = fra.me.REG[3];
736 } else {
737 /* ./../lib/standard//collection//hash_collection.nit:177 */
738 goto label3;
739 }
740 }
741 label3: while(0);
742 label1: while(0);
743 stack_frame_head = fra.me.prev;
744 return;
745 }
746 void standard___collection___hash_collection___HashCollection___init(val_t p0, int* init_table){
747 int itpos0 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_standard___collection___hash_collection___HashCollection].i;
748 struct {struct stack_frame_t me;} fra;
749 val_t tmp;
750 if (init_table[itpos0]) return;
751 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
752 fra.me.file = LOCATE_standard___collection___hash_collection;
753 fra.me.line = 0;
754 fra.me.meth = LOCATE_standard___collection___hash_collection___HashCollection___init;
755 fra.me.has_broke = 0;
756 fra.me.REG_size = 0;
757 stack_frame_head = fra.me.prev;
758 init_table[itpos0] = 1;
759 return;
760 }
761 val_t standard___collection___hash_collection___HashNode___next_item(val_t p0){
762 struct {struct stack_frame_t me;} fra;
763 val_t tmp;
764 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
765 fra.me.file = LOCATE_standard___collection___hash_collection;
766 fra.me.line = 192;
767 fra.me.meth = LOCATE_standard___collection___hash_collection___HashNode___next_item;
768 fra.me.has_broke = 0;
769 fra.me.REG_size = 1;
770 fra.me.REG[0] = NIT_NULL;
771 fra.me.REG[0] = p0;
772 /* ./../lib/standard//collection//hash_collection.nit:192 */
773 fra.me.REG[0] = ATTR_standard___collection___hash_collection___HashNode____next_item(fra.me.REG[0]);
774 stack_frame_head = fra.me.prev;
775 return fra.me.REG[0];
776 }
777 void standard___collection___hash_collection___HashNode___next_item__eq(val_t p0, val_t p1){
778 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
779 val_t tmp;
780 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
781 fra.me.file = LOCATE_standard___collection___hash_collection;
782 fra.me.line = 192;
783 fra.me.meth = LOCATE_standard___collection___hash_collection___HashNode___next_item__eq;
784 fra.me.has_broke = 0;
785 fra.me.REG_size = 2;
786 fra.me.REG[0] = NIT_NULL;
787 fra.me.REG[1] = NIT_NULL;
788 fra.me.REG[0] = p0;
789 fra.me.REG[1] = p1;
790 /* ./../lib/standard//collection//hash_collection.nit:192 */
791 ATTR_standard___collection___hash_collection___HashNode____next_item(fra.me.REG[0]) = fra.me.REG[1];
792 stack_frame_head = fra.me.prev;
793 return;
794 }
795 val_t standard___collection___hash_collection___HashNode___prev_item(val_t p0){
796 struct {struct stack_frame_t me;} fra;
797 val_t tmp;
798 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
799 fra.me.file = LOCATE_standard___collection___hash_collection;
800 fra.me.line = 193;
801 fra.me.meth = LOCATE_standard___collection___hash_collection___HashNode___prev_item;
802 fra.me.has_broke = 0;
803 fra.me.REG_size = 1;
804 fra.me.REG[0] = NIT_NULL;
805 fra.me.REG[0] = p0;
806 /* ./../lib/standard//collection//hash_collection.nit:193 */
807 fra.me.REG[0] = ATTR_standard___collection___hash_collection___HashNode____prev_item(fra.me.REG[0]);
808 stack_frame_head = fra.me.prev;
809 return fra.me.REG[0];
810 }
811 void standard___collection___hash_collection___HashNode___prev_item__eq(val_t p0, val_t p1){
812 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
813 val_t tmp;
814 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
815 fra.me.file = LOCATE_standard___collection___hash_collection;
816 fra.me.line = 193;
817 fra.me.meth = LOCATE_standard___collection___hash_collection___HashNode___prev_item__eq;
818 fra.me.has_broke = 0;
819 fra.me.REG_size = 2;
820 fra.me.REG[0] = NIT_NULL;
821 fra.me.REG[1] = NIT_NULL;
822 fra.me.REG[0] = p0;
823 fra.me.REG[1] = p1;
824 /* ./../lib/standard//collection//hash_collection.nit:193 */
825 ATTR_standard___collection___hash_collection___HashNode____prev_item(fra.me.REG[0]) = fra.me.REG[1];
826 stack_frame_head = fra.me.prev;
827 return;
828 }
829 void standard___collection___hash_collection___HashNode___init(val_t p0, val_t p1, int* init_table){
830 int itpos1 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_standard___collection___hash_collection___HashNode].i;
831 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
832 val_t tmp;
833 if (init_table[itpos1]) return;
834 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
835 fra.me.file = LOCATE_standard___collection___hash_collection;
836 fra.me.line = 196;
837 fra.me.meth = LOCATE_standard___collection___hash_collection___HashNode___init;
838 fra.me.has_broke = 0;
839 fra.me.REG_size = 2;
840 fra.me.REG[0] = NIT_NULL;
841 fra.me.REG[1] = NIT_NULL;
842 fra.me.REG[0] = p0;
843 fra.me.REG[1] = p1;
844 /* ./../lib/standard//collection//hash_collection.nit:198 */
845 ATTR_standard___collection___hash_collection___HashNode____key(fra.me.REG[0]) = fra.me.REG[1];
846 stack_frame_head = fra.me.prev;
847 init_table[itpos1] = 1;
848 return;
849 }
850 val_t standard___collection___hash_collection___HashMap_____bra(val_t p0, val_t p1){
851 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
852 val_t REGB0;
853 val_t REGB1;
854 val_t tmp;
855 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
856 fra.me.file = LOCATE_standard___collection___hash_collection;
857 fra.me.line = 208;
858 fra.me.meth = LOCATE_standard___collection___hash_collection___HashMap_____bra;
859 fra.me.has_broke = 0;
860 fra.me.REG_size = 2;
861 fra.me.REG[0] = NIT_NULL;
862 fra.me.REG[1] = NIT_NULL;
863 fra.me.REG[0] = p0;
864 fra.me.REG[1] = p1;
865 /* ./../lib/standard//collection//hash_collection.nit:210 */
866 fra.me.REG[1] = CALL_standard___collection___hash_collection___HashCollection___node_at(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
867 /* ./../lib/standard//collection//hash_collection.nit:211 */
868 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
869 if (UNTAG_Bool(REGB0)) {
870 } else {
871 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
872 if (UNTAG_Bool(REGB1)) {
873 REGB1 = TAG_Bool(false);
874 REGB0 = REGB1;
875 } else {
876 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
877 REGB0 = REGB1;
878 }
879 }
880 if (UNTAG_Bool(REGB0)) {
881 /* ./../lib/standard//collection//hash_collection.nit:212 */
882 nit_abort("Aborted", NULL, LOCATE_standard___collection___hash_collection, 212);
883 } else {
884 /* ./../lib/standard//collection//hash_collection.nit:214 */
885 fra.me.REG[1] = ATTR_standard___collection___hash_collection___HashMapNode____value(fra.me.REG[1]);
886 goto label1;
887 }
888 label1: while(0);
889 stack_frame_head = fra.me.prev;
890 return fra.me.REG[1];
891 }
892 val_t standard___collection___hash_collection___HashMap___iterator(val_t p0){
893 struct {struct stack_frame_t me;} fra;
894 val_t tmp;
895 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
896 fra.me.file = LOCATE_standard___collection___hash_collection;
897 fra.me.line = 218;
898 fra.me.meth = LOCATE_standard___collection___hash_collection___HashMap___iterator;
899 fra.me.has_broke = 0;
900 fra.me.REG_size = 1;
901 fra.me.REG[0] = NIT_NULL;
902 fra.me.REG[0] = p0;
903 /* ./../lib/standard//collection//hash_collection.nit:218 */
904 fra.me.REG[0] = NEW_HashMapIterator_standard___collection___hash_collection___HashMapIterator___init(fra.me.REG[0]);
905 goto label1;
906 label1: while(0);
907 stack_frame_head = fra.me.prev;
908 return fra.me.REG[0];
909 }
910 void standard___collection___hash_collection___HashMap___iterate(val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
911 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
912 val_t REGB0;
913 val_t REGB1;
914 fun_t CREG[1];
915 val_t tmp;
916 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
917 fra.me.file = LOCATE_standard___collection___hash_collection;
918 fra.me.line = 220;
919 fra.me.meth = LOCATE_standard___collection___hash_collection___HashMap___iterate;
920 fra.me.has_broke = 0;
921 fra.me.REG_size = 3;
922 fra.me.REG[0] = NIT_NULL;
923 fra.me.REG[1] = NIT_NULL;
924 fra.me.REG[2] = NIT_NULL;
925 fra.me.closure_ctx = closctx_param;
926 fra.me.closure_funs = CREG;
927 fra.me.REG[0] = p0;
928 CREG[0] = clos_fun0;
929 /* ./../lib/standard//collection//hash_collection.nit:223 */
930 fra.me.REG[0] = ATTR_standard___collection___hash_collection___HashCollection____first_item(fra.me.REG[0]);
931 /* ./../lib/standard//collection//hash_collection.nit:224 */
932 while(1) {
933 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
934 if (UNTAG_Bool(REGB0)) {
935 } else {
936 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
937 if (UNTAG_Bool(REGB1)) {
938 REGB1 = TAG_Bool(false);
939 REGB0 = REGB1;
940 } else {
941 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], NIT_NULL);
942 REGB0 = REGB1;
943 }
944 }
945 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
946 if (UNTAG_Bool(REGB0)) {
947 /* ./../lib/standard//collection//hash_collection.nit:225 */
948 REGB0 = TAG_Bool(ATTR_standard___collection___hash_collection___HashNode____key(fra.me.REG[0])!=NIT_NULL);
949 if (UNTAG_Bool(REGB0)) {
950 } else {
951 nit_abort("Uninitialized attribute %s", "_key", LOCATE_standard___collection___hash_collection, 225);
952 }
953 fra.me.REG[1] = ATTR_standard___collection___hash_collection___HashNode____key(fra.me.REG[0]);
954 fra.me.REG[2] = ATTR_standard___collection___hash_collection___HashMapNode____value(fra.me.REG[0]);
955 ((void (*)(struct stack_frame_t *, val_t, val_t))(CREG[0]))(closctx_param, fra.me.REG[1], fra.me.REG[2]);
956 if (closctx_param->has_broke) {
957 goto label1;
958 }
959 /* ./../lib/standard//collection//hash_collection.nit:226 */
960 fra.me.REG[2] = ATTR_standard___collection___hash_collection___HashNode____next_item(fra.me.REG[0]);
961 fra.me.REG[0] = fra.me.REG[2];
962 } else {
963 /* ./../lib/standard//collection//hash_collection.nit:224 */
964 goto label2;
965 }
966 }
967 label2: while(0);
968 label1: while(0);
969 stack_frame_head = fra.me.prev;
970 return;
971 }
972 val_t standard___collection___hash_collection___HashMap___length(val_t p0){
973 struct {struct stack_frame_t me;} fra;
974 val_t REGB0;
975 val_t tmp;
976 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
977 fra.me.file = LOCATE_standard___collection___hash_collection;
978 fra.me.line = 230;
979 fra.me.meth = LOCATE_standard___collection___hash_collection___HashMap___length;
980 fra.me.has_broke = 0;
981 fra.me.REG_size = 1;
982 fra.me.REG[0] = NIT_NULL;
983 fra.me.REG[0] = p0;
984 /* ./../lib/standard//collection//hash_collection.nit:230 */
985 REGB0 = TAG_Bool(ATTR_standard___collection___hash_collection___HashCollection____length(fra.me.REG[0])!=NIT_NULL);
986 if (UNTAG_Bool(REGB0)) {
987 } else {
988 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___hash_collection, 230);
989 }
990 REGB0 = ATTR_standard___collection___hash_collection___HashCollection____length(fra.me.REG[0]);
991 goto label1;
992 label1: while(0);
993 stack_frame_head = fra.me.prev;
994 return REGB0;
995 }
996 val_t standard___collection___hash_collection___HashMap___is_empty(val_t p0){
997 struct {struct stack_frame_t me;} fra;
998 val_t REGB0;
999 val_t REGB1;
1000 val_t REGB2;
1001 val_t tmp;
1002 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1003 fra.me.file = LOCATE_standard___collection___hash_collection;
1004 fra.me.line = 232;
1005 fra.me.meth = LOCATE_standard___collection___hash_collection___HashMap___is_empty;
1006 fra.me.has_broke = 0;
1007 fra.me.REG_size = 1;
1008 fra.me.REG[0] = NIT_NULL;
1009 fra.me.REG[0] = p0;
1010 /* ./../lib/standard//collection//hash_collection.nit:232 */
1011 REGB0 = TAG_Bool(ATTR_standard___collection___hash_collection___HashCollection____length(fra.me.REG[0])!=NIT_NULL);
1012 if (UNTAG_Bool(REGB0)) {
1013 } else {
1014 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___hash_collection, 232);
1015 }
1016 REGB0 = ATTR_standard___collection___hash_collection___HashCollection____length(fra.me.REG[0]);
1017 REGB1 = TAG_Int(0);
1018 REGB2 = TAG_Bool(IS_EQUAL_OO(REGB0,REGB1));
1019 if (UNTAG_Bool(REGB2)) {
1020 } else {
1021 /* ./../lib/standard//kernel.nit:227 */
1022 REGB1 = TAG_Bool((REGB0)==(REGB1));
1023 /* ./../lib/standard//collection//hash_collection.nit:232 */
1024 REGB2 = REGB1;
1025 }
1026 goto label1;
1027 label1: while(0);
1028 stack_frame_head = fra.me.prev;
1029 return REGB2;
1030 }
1031 void standard___collection___hash_collection___HashMap_____braeq(val_t p0, val_t p1, val_t p2){
1032 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
1033 val_t REGB0;
1034 val_t REGB1;
1035 val_t REGB2;
1036 val_t tmp;
1037 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1038 fra.me.file = LOCATE_standard___collection___hash_collection;
1039 fra.me.line = 234;
1040 fra.me.meth = LOCATE_standard___collection___hash_collection___HashMap_____braeq;
1041 fra.me.has_broke = 0;
1042 fra.me.REG_size = 4;
1043 fra.me.REG[0] = NIT_NULL;
1044 fra.me.REG[1] = NIT_NULL;
1045 fra.me.REG[2] = NIT_NULL;
1046 fra.me.REG[3] = NIT_NULL;
1047 fra.me.REG[0] = p0;
1048 fra.me.REG[1] = p1;
1049 fra.me.REG[2] = p2;
1050 /* ./../lib/standard//collection//hash_collection.nit:236 */
1051 REGB0 = CALL_standard___collection___hash_collection___HashCollection___index_at(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
1052 /* ./../lib/standard//collection//hash_collection.nit:237 */
1053 fra.me.REG[3] = CALL_standard___collection___hash_collection___HashCollection___node_at_idx(fra.me.REG[0])(fra.me.REG[0], REGB0, fra.me.REG[1]);
1054 /* ./../lib/standard//collection//hash_collection.nit:238 */
1055 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
1056 if (UNTAG_Bool(REGB1)) {
1057 } else {
1058 REGB2 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
1059 if (UNTAG_Bool(REGB2)) {
1060 REGB2 = TAG_Bool(false);
1061 REGB1 = REGB2;
1062 } else {
1063 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
1064 REGB1 = REGB2;
1065 }
1066 }
1067 REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
1068 if (UNTAG_Bool(REGB1)) {
1069 /* ./../lib/standard//collection//hash_collection.nit:239 */
1070 ATTR_standard___collection___hash_collection___HashNode____key(fra.me.REG[3]) = fra.me.REG[1];
1071 /* ./../lib/standard//collection//hash_collection.nit:240 */
1072 ATTR_standard___collection___hash_collection___HashMapNode____value(fra.me.REG[3]) = fra.me.REG[2];
1073 } else {
1074 /* ./../lib/standard//collection//hash_collection.nit:242 */
1075 fra.me.REG[2] = NEW_HashMapNode_standard___collection___hash_collection___HashMapNode___init(fra.me.REG[1], fra.me.REG[2]);
1076 CALL_standard___collection___hash_collection___HashCollection___store(fra.me.REG[0])(fra.me.REG[0], REGB0, fra.me.REG[2]);
1077 }
1078 stack_frame_head = fra.me.prev;
1079 return;
1080 }
1081 void standard___collection___hash_collection___HashMap___clear(val_t p0){
1082 struct {struct stack_frame_t me;} fra;
1083 val_t tmp;
1084 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1085 fra.me.file = LOCATE_standard___collection___hash_collection;
1086 fra.me.line = 246;
1087 fra.me.meth = LOCATE_standard___collection___hash_collection___HashMap___clear;
1088 fra.me.has_broke = 0;
1089 fra.me.REG_size = 1;
1090 fra.me.REG[0] = NIT_NULL;
1091 fra.me.REG[0] = p0;
1092 /* ./../lib/standard//collection//hash_collection.nit:246 */
1093 CALL_standard___collection___hash_collection___HashCollection___raz(fra.me.REG[0])(fra.me.REG[0]);
1094 stack_frame_head = fra.me.prev;
1095 return;
1096 }
1097 void standard___collection___hash_collection___HashMap___init(val_t p0, int* init_table){
1098 int itpos2 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_standard___collection___hash_collection___HashMap].i;
1099 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
1100 val_t REGB0;
1101 val_t tmp;
1102 if (init_table[itpos2]) return;
1103 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1104 fra.me.file = LOCATE_standard___collection___hash_collection;
1105 fra.me.line = 248;
1106 fra.me.meth = LOCATE_standard___collection___hash_collection___HashMap___init;
1107 fra.me.has_broke = 0;
1108 fra.me.REG_size = 2;
1109 fra.me.REG[0] = NIT_NULL;
1110 fra.me.REG[1] = NIT_NULL;
1111 fra.me.REG[0] = p0;
1112 /* ./../lib/standard//collection//hash_collection.nit:248 */
1113 fra.me.REG[1] = fra.me.REG[0];
1114 CALL_standard___collection___hash_collection___HashCollection___init(fra.me.REG[0])(fra.me.REG[0], init_table);
1115 /* ./../lib/standard//collection//hash_collection.nit:250 */
1116 REGB0 = TAG_Int(0);
1117 ATTR_standard___collection___hash_collection___HashCollection____capacity(fra.me.REG[1]) = REGB0;
1118 /* ./../lib/standard//collection//hash_collection.nit:251 */
1119 REGB0 = TAG_Int(0);
1120 ATTR_standard___collection___hash_collection___HashCollection____length(fra.me.REG[1]) = REGB0;
1121 /* ./../lib/standard//collection//hash_collection.nit:252 */
1122 REGB0 = TAG_Int(0);
1123 CALL_standard___collection___hash_collection___HashCollection___enlarge(fra.me.REG[1])(fra.me.REG[1], REGB0);
1124 stack_frame_head = fra.me.prev;
1125 init_table[itpos2] = 1;
1126 return;
1127 }
1128 val_t standard___collection___hash_collection___HashMap___keys(val_t p0){
1129 struct {struct stack_frame_t me;} fra;
1130 val_t REGB0;
1131 val_t tmp;
1132 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1133 fra.me.file = LOCATE_standard___collection___hash_collection;
1134 fra.me.line = 255;
1135 fra.me.meth = LOCATE_standard___collection___hash_collection___HashMap___keys;
1136 fra.me.has_broke = 0;
1137 fra.me.REG_size = 1;
1138 fra.me.REG[0] = NIT_NULL;
1139 fra.me.REG[0] = p0;
1140 /* ./../lib/standard//collection//hash_collection.nit:255 */
1141 REGB0 = TAG_Bool(ATTR_standard___collection___hash_collection___HashMap_____atkeys(fra.me.REG[0])!=NIT_NULL);
1142 if (UNTAG_Bool(REGB0)) {
1143 } else {
1144 nit_abort("Uninitialized attribute %s", "@keys", LOCATE_standard___collection___hash_collection, 255);
1145 }
1146 fra.me.REG[0] = ATTR_standard___collection___hash_collection___HashMap_____atkeys(fra.me.REG[0]);
1147 stack_frame_head = fra.me.prev;
1148 return fra.me.REG[0];
1149 }
1150 void standard___collection___hash_collection___HashMap___keys__eq(val_t p0, val_t p1){
1151 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
1152 val_t tmp;
1153 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1154 fra.me.file = LOCATE_standard___collection___hash_collection;
1155 fra.me.line = 255;
1156 fra.me.meth = LOCATE_standard___collection___hash_collection___HashMap___keys__eq;
1157 fra.me.has_broke = 0;
1158 fra.me.REG_size = 2;
1159 fra.me.REG[0] = NIT_NULL;
1160 fra.me.REG[1] = NIT_NULL;
1161 fra.me.REG[0] = p0;
1162 fra.me.REG[1] = p1;
1163 /* ./../lib/standard//collection//hash_collection.nit:255 */
1164 ATTR_standard___collection___hash_collection___HashMap_____atkeys(fra.me.REG[0]) = fra.me.REG[1];
1165 stack_frame_head = fra.me.prev;
1166 return;
1167 }
1168 val_t standard___collection___hash_collection___HashMap___values(val_t p0){
1169 struct {struct stack_frame_t me;} fra;
1170 val_t REGB0;
1171 val_t tmp;
1172 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1173 fra.me.file = LOCATE_standard___collection___hash_collection;
1174 fra.me.line = 256;
1175 fra.me.meth = LOCATE_standard___collection___hash_collection___HashMap___values;
1176 fra.me.has_broke = 0;
1177 fra.me.REG_size = 1;
1178 fra.me.REG[0] = NIT_NULL;
1179 fra.me.REG[0] = p0;
1180 /* ./../lib/standard//collection//hash_collection.nit:256 */
1181 REGB0 = TAG_Bool(ATTR_standard___collection___hash_collection___HashMap_____atvalues(fra.me.REG[0])!=NIT_NULL);
1182 if (UNTAG_Bool(REGB0)) {
1183 } else {
1184 nit_abort("Uninitialized attribute %s", "@values", LOCATE_standard___collection___hash_collection, 256);
1185 }
1186 fra.me.REG[0] = ATTR_standard___collection___hash_collection___HashMap_____atvalues(fra.me.REG[0]);
1187 stack_frame_head = fra.me.prev;
1188 return fra.me.REG[0];
1189 }
1190 void standard___collection___hash_collection___HashMap___values__eq(val_t p0, val_t p1){
1191 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
1192 val_t tmp;
1193 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1194 fra.me.file = LOCATE_standard___collection___hash_collection;
1195 fra.me.line = 256;
1196 fra.me.meth = LOCATE_standard___collection___hash_collection___HashMap___values__eq;
1197 fra.me.has_broke = 0;
1198 fra.me.REG_size = 2;
1199 fra.me.REG[0] = NIT_NULL;
1200 fra.me.REG[1] = NIT_NULL;
1201 fra.me.REG[0] = p0;
1202 fra.me.REG[1] = p1;
1203 /* ./../lib/standard//collection//hash_collection.nit:256 */
1204 ATTR_standard___collection___hash_collection___HashMap_____atvalues(fra.me.REG[0]) = fra.me.REG[1];
1205 stack_frame_head = fra.me.prev;
1206 return;
1207 }
1208 val_t standard___collection___hash_collection___HashMapKeys___map(val_t p0){
1209 struct {struct stack_frame_t me;} fra;
1210 val_t REGB0;
1211 val_t tmp;
1212 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1213 fra.me.file = LOCATE_standard___collection___hash_collection;
1214 fra.me.line = 262;
1215 fra.me.meth = LOCATE_standard___collection___hash_collection___HashMapKeys___map;
1216 fra.me.has_broke = 0;
1217 fra.me.REG_size = 1;
1218 fra.me.REG[0] = NIT_NULL;
1219 fra.me.REG[0] = p0;
1220 /* ./../lib/standard//collection//hash_collection.nit:262 */
1221 REGB0 = TAG_Bool(ATTR_standard___collection___hash_collection___HashMapKeys_____atmap(fra.me.REG[0])!=NIT_NULL);
1222 if (UNTAG_Bool(REGB0)) {
1223 } else {
1224 nit_abort("Uninitialized attribute %s", "@map", LOCATE_standard___collection___hash_collection, 262);
1225 }
1226 fra.me.REG[0] = ATTR_standard___collection___hash_collection___HashMapKeys_____atmap(fra.me.REG[0]);
1227 stack_frame_head = fra.me.prev;
1228 return fra.me.REG[0];
1229 }
1230 void standard___collection___hash_collection___HashMapKeys___map__eq(val_t p0, val_t p1){
1231 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
1232 val_t tmp;
1233 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1234 fra.me.file = LOCATE_standard___collection___hash_collection;
1235 fra.me.line = 262;
1236 fra.me.meth = LOCATE_standard___collection___hash_collection___HashMapKeys___map__eq;
1237 fra.me.has_broke = 0;
1238 fra.me.REG_size = 2;
1239 fra.me.REG[0] = NIT_NULL;
1240 fra.me.REG[1] = NIT_NULL;
1241 fra.me.REG[0] = p0;
1242 fra.me.REG[1] = p1;
1243 /* ./../lib/standard//collection//hash_collection.nit:262 */
1244 ATTR_standard___collection___hash_collection___HashMapKeys_____atmap(fra.me.REG[0]) = fra.me.REG[1];
1245 stack_frame_head = fra.me.prev;
1246 return;
1247 }
1248 val_t standard___collection___hash_collection___HashMapKeys___count(val_t p0, val_t p1){
1249 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
1250 val_t REGB0;
1251 val_t REGB1;
1252 val_t tmp;
1253 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1254 fra.me.file = LOCATE_standard___collection___hash_collection;
1255 fra.me.line = 265;
1256 fra.me.meth = LOCATE_standard___collection___hash_collection___HashMapKeys___count;
1257 fra.me.has_broke = 0;
1258 fra.me.REG_size = 2;
1259 fra.me.REG[0] = NIT_NULL;
1260 fra.me.REG[1] = NIT_NULL;
1261 fra.me.REG[0] = p0;
1262 fra.me.REG[1] = p1;
1263 /* ./../lib/standard//collection//hash_collection.nit:265 */
1264 REGB0 = CALL_standard___collection___abstract_collection___Collection___has(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
1265 if (UNTAG_Bool(REGB0)) {
1266 REGB0 = TAG_Int(1);
1267 goto label1;
1268 } else {
1269 REGB1 = TAG_Int(0);
1270 REGB0 = REGB1;
1271 goto label1;
1272 }
1273 label1: while(0);
1274 stack_frame_head = fra.me.prev;
1275 return REGB0;
1276 }
1277 val_t standard___collection___hash_collection___HashMapKeys___first(val_t p0){
1278 struct {struct stack_frame_t me;} fra;
1279 val_t REGB0;
1280 val_t tmp;
1281 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1282 fra.me.file = LOCATE_standard___collection___hash_collection;
1283 fra.me.line = 266;
1284 fra.me.meth = LOCATE_standard___collection___hash_collection___HashMapKeys___first;
1285 fra.me.has_broke = 0;
1286 fra.me.REG_size = 1;
1287 fra.me.REG[0] = NIT_NULL;
1288 fra.me.REG[0] = p0;
1289 /* ./../lib/standard//collection//hash_collection.nit:266 */
1290 fra.me.REG[0] = CALL_standard___collection___hash_collection___HashMapKeys___map(fra.me.REG[0])(fra.me.REG[0]);
1291 fra.me.REG[0] = ATTR_standard___collection___hash_collection___HashCollection____first_item(fra.me.REG[0]);
1292 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
1293 if (UNTAG_Bool(REGB0)) {
1294 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___hash_collection, 266);
1295 }
1296 REGB0 = TAG_Bool(ATTR_standard___collection___hash_collection___HashNode____key(fra.me.REG[0])!=NIT_NULL);
1297 if (UNTAG_Bool(REGB0)) {
1298 } else {
1299 nit_abort("Uninitialized attribute %s", "_key", LOCATE_standard___collection___hash_collection, 266);
1300 }
1301 fra.me.REG[0] = ATTR_standard___collection___hash_collection___HashNode____key(fra.me.REG[0]);
1302 goto label1;
1303 label1: while(0);
1304 stack_frame_head = fra.me.prev;
1305 return fra.me.REG[0];
1306 }
1307 val_t standard___collection___hash_collection___HashMapKeys___has(val_t p0, val_t p1){
1308 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
1309 val_t REGB0;
1310 val_t REGB1;
1311 val_t tmp;
1312 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1313 fra.me.file = LOCATE_standard___collection___hash_collection;
1314 fra.me.line = 267;
1315 fra.me.meth = LOCATE_standard___collection___hash_collection___HashMapKeys___has;
1316 fra.me.has_broke = 0;
1317 fra.me.REG_size = 2;
1318 fra.me.REG[0] = NIT_NULL;
1319 fra.me.REG[1] = NIT_NULL;
1320 fra.me.REG[0] = p0;
1321 fra.me.REG[1] = p1;
1322 /* ./../lib/standard//collection//hash_collection.nit:267 */
1323 fra.me.REG[0] = CALL_standard___collection___hash_collection___HashMapKeys___map(fra.me.REG[0])(fra.me.REG[0]);
1324 fra.me.REG[1] = CALL_standard___collection___hash_collection___HashCollection___node_at(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
1325 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
1326 if (UNTAG_Bool(REGB0)) {
1327 } else {
1328 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
1329 if (UNTAG_Bool(REGB1)) {
1330 REGB1 = TAG_Bool(false);
1331 REGB0 = REGB1;
1332 } else {
1333 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
1334 REGB0 = REGB1;
1335 }
1336 }
1337 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
1338 goto label1;
1339 label1: while(0);
1340 stack_frame_head = fra.me.prev;
1341 return REGB0;
1342 }
1343 val_t standard___collection___hash_collection___HashMapKeys___has_only(val_t p0, val_t p1){
1344 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
1345 val_t REGB0;
1346 val_t REGB1;
1347 val_t REGB2;
1348 val_t tmp;
1349 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1350 fra.me.file = LOCATE_standard___collection___hash_collection;
1351 fra.me.line = 268;
1352 fra.me.meth = LOCATE_standard___collection___hash_collection___HashMapKeys___has_only;
1353 fra.me.has_broke = 0;
1354 fra.me.REG_size = 2;
1355 fra.me.REG[0] = NIT_NULL;
1356 fra.me.REG[1] = NIT_NULL;
1357 fra.me.REG[0] = p0;
1358 fra.me.REG[1] = p1;
1359 /* ./../lib/standard//collection//hash_collection.nit:268 */
1360 REGB0 = CALL_standard___collection___abstract_collection___Collection___has(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
1361 if (UNTAG_Bool(REGB0)) {
1362 REGB0 = CALL_standard___collection___abstract_collection___Collection___length(fra.me.REG[0])(fra.me.REG[0]);
1363 REGB1 = TAG_Int(1);
1364 REGB2 = TAG_Bool(IS_EQUAL_OO(REGB0,REGB1));
1365 if (UNTAG_Bool(REGB2)) {
1366 } else {
1367 /* ./../lib/standard//kernel.nit:227 */
1368 REGB1 = TAG_Bool((REGB0)==(REGB1));
1369 /* ./../lib/standard//collection//hash_collection.nit:268 */
1370 REGB2 = REGB1;
1371 }
1372 } else {
1373 REGB1 = TAG_Bool(false);
1374 REGB2 = REGB1;
1375 }
1376 if (UNTAG_Bool(REGB2)) {
1377 REGB2 = TAG_Bool(true);
1378 } else {
1379 REGB1 = CALL_standard___collection___abstract_collection___Collection___is_empty(fra.me.REG[0])(fra.me.REG[0]);
1380 REGB2 = REGB1;
1381 }
1382 goto label1;
1383 label1: while(0);
1384 stack_frame_head = fra.me.prev;
1385 return REGB2;
1386 }
1387 val_t standard___collection___hash_collection___HashMapKeys___is_empty(val_t p0){
1388 struct {struct stack_frame_t me;} fra;
1389 val_t REGB0;
1390 val_t tmp;
1391 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1392 fra.me.file = LOCATE_standard___collection___hash_collection;
1393 fra.me.line = 269;
1394 fra.me.meth = LOCATE_standard___collection___hash_collection___HashMapKeys___is_empty;
1395 fra.me.has_broke = 0;
1396 fra.me.REG_size = 1;
1397 fra.me.REG[0] = NIT_NULL;
1398 fra.me.REG[0] = p0;
1399 /* ./../lib/standard//collection//hash_collection.nit:269 */
1400 fra.me.REG[0] = CALL_standard___collection___hash_collection___HashMapKeys___map(fra.me.REG[0])(fra.me.REG[0]);
1401 REGB0 = CALL_standard___collection___abstract_collection___MapRead___is_empty(fra.me.REG[0])(fra.me.REG[0]);
1402 goto label1;
1403 label1: while(0);
1404 stack_frame_head = fra.me.prev;
1405 return REGB0;
1406 }
1407 val_t standard___collection___hash_collection___HashMapKeys___length(val_t p0){
1408 struct {struct stack_frame_t me;} fra;
1409 val_t REGB0;
1410 val_t tmp;
1411 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1412 fra.me.file = LOCATE_standard___collection___hash_collection;
1413 fra.me.line = 270;
1414 fra.me.meth = LOCATE_standard___collection___hash_collection___HashMapKeys___length;
1415 fra.me.has_broke = 0;
1416 fra.me.REG_size = 1;
1417 fra.me.REG[0] = NIT_NULL;
1418 fra.me.REG[0] = p0;
1419 /* ./../lib/standard//collection//hash_collection.nit:270 */
1420 fra.me.REG[0] = CALL_standard___collection___hash_collection___HashMapKeys___map(fra.me.REG[0])(fra.me.REG[0]);
1421 REGB0 = CALL_standard___collection___abstract_collection___MapRead___length(fra.me.REG[0])(fra.me.REG[0]);
1422 goto label1;
1423 label1: while(0);
1424 stack_frame_head = fra.me.prev;
1425 return REGB0;
1426 }
1427 val_t standard___collection___hash_collection___HashMapKeys___iterator(val_t p0){
1428 struct {struct stack_frame_t me;} fra;
1429 val_t tmp;
1430 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1431 fra.me.file = LOCATE_standard___collection___hash_collection;
1432 fra.me.line = 272;
1433 fra.me.meth = LOCATE_standard___collection___hash_collection___HashMapKeys___iterator;
1434 fra.me.has_broke = 0;
1435 fra.me.REG_size = 1;
1436 fra.me.REG[0] = NIT_NULL;
1437 fra.me.REG[0] = p0;
1438 /* ./../lib/standard//collection//hash_collection.nit:272 */
1439 fra.me.REG[0] = CALL_standard___collection___hash_collection___HashMapKeys___map(fra.me.REG[0])(fra.me.REG[0]);
1440 fra.me.REG[0] = CALL_standard___collection___abstract_collection___MapRead___iterator(fra.me.REG[0])(fra.me.REG[0]);
1441 fra.me.REG[0] = NEW_MapKeysIterator_standard___collection___abstract_collection___MapKeysIterator___init(fra.me.REG[0]);
1442 goto label1;
1443 label1: while(0);
1444 stack_frame_head = fra.me.prev;
1445 return fra.me.REG[0];
1446 }
1447 void standard___collection___hash_collection___HashMapKeys___clear(val_t p0){
1448 struct {struct stack_frame_t me;} fra;
1449 val_t tmp;
1450 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1451 fra.me.file = LOCATE_standard___collection___hash_collection;
1452 fra.me.line = 274;
1453 fra.me.meth = LOCATE_standard___collection___hash_collection___HashMapKeys___clear;
1454 fra.me.has_broke = 0;
1455 fra.me.REG_size = 1;
1456 fra.me.REG[0] = NIT_NULL;
1457 fra.me.REG[0] = p0;
1458 /* ./../lib/standard//collection//hash_collection.nit:274 */
1459 fra.me.REG[0] = CALL_standard___collection___hash_collection___HashMapKeys___map(fra.me.REG[0])(fra.me.REG[0]);
1460 CALL_standard___collection___abstract_collection___Map___clear(fra.me.REG[0])(fra.me.REG[0]);
1461 stack_frame_head = fra.me.prev;
1462 return;
1463 }
1464 void standard___collection___hash_collection___HashMapKeys___remove(val_t p0, val_t p1){
1465 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
1466 val_t tmp;
1467 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1468 fra.me.file = LOCATE_standard___collection___hash_collection;
1469 fra.me.line = 276;
1470 fra.me.meth = LOCATE_standard___collection___hash_collection___HashMapKeys___remove;
1471 fra.me.has_broke = 0;
1472 fra.me.REG_size = 2;
1473 fra.me.REG[0] = NIT_NULL;
1474 fra.me.REG[1] = NIT_NULL;
1475 fra.me.REG[0] = p0;
1476 fra.me.REG[1] = p1;
1477 /* ./../lib/standard//collection//hash_collection.nit:276 */
1478 fra.me.REG[0] = CALL_standard___collection___hash_collection___HashMapKeys___map(fra.me.REG[0])(fra.me.REG[0]);
1479 CALL_standard___collection___hash_collection___HashCollection___remove_node(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
1480 stack_frame_head = fra.me.prev;
1481 return;
1482 }
1483 void standard___collection___hash_collection___HashMapKeys___remove_all(val_t p0, val_t p1){
1484 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
1485 val_t tmp;
1486 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1487 fra.me.file = LOCATE_standard___collection___hash_collection;
1488 fra.me.line = 277;
1489 fra.me.meth = LOCATE_standard___collection___hash_collection___HashMapKeys___remove_all;
1490 fra.me.has_broke = 0;
1491 fra.me.REG_size = 2;
1492 fra.me.REG[0] = NIT_NULL;
1493 fra.me.REG[1] = NIT_NULL;
1494 fra.me.REG[0] = p0;
1495 fra.me.REG[1] = p1;
1496 /* ./../lib/standard//collection//hash_collection.nit:277 */
1497 fra.me.REG[0] = CALL_standard___collection___hash_collection___HashMapKeys___map(fra.me.REG[0])(fra.me.REG[0]);
1498 CALL_standard___collection___hash_collection___HashCollection___remove_node(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
1499 stack_frame_head = fra.me.prev;
1500 return;
1501 }
1502 void standard___collection___hash_collection___HashMapKeys___init(val_t p0, val_t p1, int* init_table){
1503 int itpos3 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_standard___collection___hash_collection___HashMapKeys].i;
1504 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
1505 val_t tmp;
1506 if (init_table[itpos3]) return;
1507 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1508 fra.me.file = LOCATE_standard___collection___hash_collection;
1509 fra.me.line = 0;
1510 fra.me.meth = LOCATE_standard___collection___hash_collection___HashMapKeys___init;
1511 fra.me.has_broke = 0;
1512 fra.me.REG_size = 2;
1513 fra.me.REG[0] = NIT_NULL;
1514 fra.me.REG[1] = NIT_NULL;
1515 fra.me.REG[0] = p0;
1516 fra.me.REG[1] = p1;
1517 ATTR_standard___collection___hash_collection___HashMapKeys_____atmap(fra.me.REG[0]) = fra.me.REG[1];
1518 stack_frame_head = fra.me.prev;
1519 init_table[itpos3] = 1;
1520 return;
1521 }
1522 val_t standard___collection___hash_collection___HashMapValues___map(val_t p0){
1523 struct {struct stack_frame_t me;} fra;
1524 val_t REGB0;
1525 val_t tmp;
1526 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1527 fra.me.file = LOCATE_standard___collection___hash_collection;
1528 fra.me.line = 283;
1529 fra.me.meth = LOCATE_standard___collection___hash_collection___HashMapValues___map;
1530 fra.me.has_broke = 0;
1531 fra.me.REG_size = 1;
1532 fra.me.REG[0] = NIT_NULL;
1533 fra.me.REG[0] = p0;
1534 /* ./../lib/standard//collection//hash_collection.nit:283 */
1535 REGB0 = TAG_Bool(ATTR_standard___collection___hash_collection___HashMapValues_____atmap(fra.me.REG[0])!=NIT_NULL);
1536 if (UNTAG_Bool(REGB0)) {
1537 } else {
1538 nit_abort("Uninitialized attribute %s", "@map", LOCATE_standard___collection___hash_collection, 283);
1539 }
1540 fra.me.REG[0] = ATTR_standard___collection___hash_collection___HashMapValues_____atmap(fra.me.REG[0]);
1541 stack_frame_head = fra.me.prev;
1542 return fra.me.REG[0];
1543 }
1544 void standard___collection___hash_collection___HashMapValues___map__eq(val_t p0, val_t p1){
1545 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
1546 val_t tmp;
1547 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1548 fra.me.file = LOCATE_standard___collection___hash_collection;
1549 fra.me.line = 283;
1550 fra.me.meth = LOCATE_standard___collection___hash_collection___HashMapValues___map__eq;
1551 fra.me.has_broke = 0;
1552 fra.me.REG_size = 2;
1553 fra.me.REG[0] = NIT_NULL;
1554 fra.me.REG[1] = NIT_NULL;
1555 fra.me.REG[0] = p0;
1556 fra.me.REG[1] = p1;
1557 /* ./../lib/standard//collection//hash_collection.nit:283 */
1558 ATTR_standard___collection___hash_collection___HashMapValues_____atmap(fra.me.REG[0]) = fra.me.REG[1];
1559 stack_frame_head = fra.me.prev;
1560 return;
1561 }
1562 val_t standard___collection___hash_collection___HashMapValues___count(val_t p0, val_t p1){
1563 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
1564 val_t REGB0;
1565 val_t REGB1;
1566 val_t REGB2;
1567 val_t tmp;
1568 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1569 fra.me.file = LOCATE_standard___collection___hash_collection;
1570 fra.me.line = 286;
1571 fra.me.meth = LOCATE_standard___collection___hash_collection___HashMapValues___count;
1572 fra.me.has_broke = 0;
1573 fra.me.REG_size = 3;
1574 fra.me.REG[0] = NIT_NULL;
1575 fra.me.REG[1] = NIT_NULL;
1576 fra.me.REG[2] = NIT_NULL;
1577 fra.me.REG[0] = p0;
1578 fra.me.REG[1] = p1;
1579 /* ./../lib/standard//collection//hash_collection.nit:288 */
1580 REGB0 = TAG_Int(0);
1581 /* ./../lib/standard//collection//hash_collection.nit:289 */
1582 fra.me.REG[0] = CALL_standard___collection___hash_collection___HashMapValues___map(fra.me.REG[0])(fra.me.REG[0]);
1583 fra.me.REG[0] = ATTR_standard___collection___hash_collection___HashCollection____first_item(fra.me.REG[0]);
1584 /* ./../lib/standard//collection//hash_collection.nit:290 */
1585 while(1) {
1586 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
1587 if (UNTAG_Bool(REGB1)) {
1588 } else {
1589 REGB2 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
1590 if (UNTAG_Bool(REGB2)) {
1591 REGB2 = TAG_Bool(false);
1592 REGB1 = REGB2;
1593 } else {
1594 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], NIT_NULL);
1595 REGB1 = REGB2;
1596 }
1597 }
1598 REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
1599 if (UNTAG_Bool(REGB1)) {
1600 /* ./../lib/standard//collection//hash_collection.nit:291 */
1601 fra.me.REG[2] = ATTR_standard___collection___hash_collection___HashMapNode____value(fra.me.REG[0]);
1602 REGB1 = TAG_Bool(IS_EQUAL_NN(fra.me.REG[2],fra.me.REG[1]));
1603 if (UNTAG_Bool(REGB1)) {
1604 } else {
1605 REGB2 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
1606 if (UNTAG_Bool(REGB2)) {
1607 REGB2 = TAG_Bool(false);
1608 REGB1 = REGB2;
1609 } else {
1610 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
1611 REGB1 = REGB2;
1612 }
1613 }
1614 if (UNTAG_Bool(REGB1)) {
1615 REGB1 = TAG_Int(1);
1616 /* ./../lib/standard//kernel.nit:235 */
1617 REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
1618 /* ./../lib/standard//collection//hash_collection.nit:291 */
1619 REGB0 = REGB1;
1620 }
1621 /* ./../lib/standard//collection//hash_collection.nit:292 */
1622 fra.me.REG[2] = ATTR_standard___collection___hash_collection___HashNode____next_item(fra.me.REG[0]);
1623 fra.me.REG[0] = fra.me.REG[2];
1624 } else {
1625 /* ./../lib/standard//collection//hash_collection.nit:290 */
1626 goto label1;
1627 }
1628 }
1629 label1: while(0);
1630 /* ./../lib/standard//collection//hash_collection.nit:294 */
1631 goto label2;
1632 label2: while(0);
1633 stack_frame_head = fra.me.prev;
1634 return REGB0;
1635 }
1636 val_t standard___collection___hash_collection___HashMapValues___first(val_t p0){
1637 struct {struct stack_frame_t me;} fra;
1638 val_t REGB0;
1639 val_t tmp;
1640 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1641 fra.me.file = LOCATE_standard___collection___hash_collection;
1642 fra.me.line = 296;
1643 fra.me.meth = LOCATE_standard___collection___hash_collection___HashMapValues___first;
1644 fra.me.has_broke = 0;
1645 fra.me.REG_size = 1;
1646 fra.me.REG[0] = NIT_NULL;
1647 fra.me.REG[0] = p0;
1648 /* ./../lib/standard//collection//hash_collection.nit:296 */
1649 fra.me.REG[0] = CALL_standard___collection___hash_collection___HashMapValues___map(fra.me.REG[0])(fra.me.REG[0]);
1650 fra.me.REG[0] = ATTR_standard___collection___hash_collection___HashCollection____first_item(fra.me.REG[0]);
1651 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
1652 if (UNTAG_Bool(REGB0)) {
1653 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___hash_collection, 296);
1654 }
1655 fra.me.REG[0] = ATTR_standard___collection___hash_collection___HashMapNode____value(fra.me.REG[0]);
1656 goto label1;
1657 label1: while(0);
1658 stack_frame_head = fra.me.prev;
1659 return fra.me.REG[0];
1660 }
1661 val_t standard___collection___hash_collection___HashMapValues___has(val_t p0, val_t p1){
1662 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
1663 val_t REGB0;
1664 val_t REGB1;
1665 val_t tmp;
1666 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1667 fra.me.file = LOCATE_standard___collection___hash_collection;
1668 fra.me.line = 298;
1669 fra.me.meth = LOCATE_standard___collection___hash_collection___HashMapValues___has;
1670 fra.me.has_broke = 0;
1671 fra.me.REG_size = 3;
1672 fra.me.REG[0] = NIT_NULL;
1673 fra.me.REG[1] = NIT_NULL;
1674 fra.me.REG[2] = NIT_NULL;
1675 fra.me.REG[0] = p0;
1676 fra.me.REG[1] = p1;
1677 /* ./../lib/standard//collection//hash_collection.nit:300 */
1678 fra.me.REG[0] = CALL_standard___collection___hash_collection___HashMapValues___map(fra.me.REG[0])(fra.me.REG[0]);
1679 fra.me.REG[0] = ATTR_standard___collection___hash_collection___HashCollection____first_item(fra.me.REG[0]);
1680 /* ./../lib/standard//collection//hash_collection.nit:301 */
1681 while(1) {
1682 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
1683 if (UNTAG_Bool(REGB0)) {
1684 } else {
1685 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
1686 if (UNTAG_Bool(REGB1)) {
1687 REGB1 = TAG_Bool(false);
1688 REGB0 = REGB1;
1689 } else {
1690 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], NIT_NULL);
1691 REGB0 = REGB1;
1692 }
1693 }
1694 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
1695 if (UNTAG_Bool(REGB0)) {
1696 /* ./../lib/standard//collection//hash_collection.nit:302 */
1697 fra.me.REG[2] = ATTR_standard___collection___hash_collection___HashMapNode____value(fra.me.REG[0]);
1698 REGB0 = TAG_Bool(IS_EQUAL_NN(fra.me.REG[2],fra.me.REG[1]));
1699 if (UNTAG_Bool(REGB0)) {
1700 } else {
1701 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
1702 if (UNTAG_Bool(REGB1)) {
1703 REGB1 = TAG_Bool(false);
1704 REGB0 = REGB1;
1705 } else {
1706 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
1707 REGB0 = REGB1;
1708 }
1709 }
1710 if (UNTAG_Bool(REGB0)) {
1711 REGB0 = TAG_Bool(true);
1712 goto label1;
1713 }
1714 /* ./../lib/standard//collection//hash_collection.nit:303 */
1715 fra.me.REG[2] = ATTR_standard___collection___hash_collection___HashNode____next_item(fra.me.REG[0]);
1716 fra.me.REG[0] = fra.me.REG[2];
1717 } else {
1718 /* ./../lib/standard//collection//hash_collection.nit:301 */
1719 goto label2;
1720 }
1721 }
1722 label2: while(0);
1723 /* ./../lib/standard//collection//hash_collection.nit:305 */
1724 REGB1 = TAG_Bool(false);
1725 REGB0 = REGB1;
1726 goto label1;
1727 label1: while(0);
1728 stack_frame_head = fra.me.prev;
1729 return REGB0;
1730 }
1731 val_t standard___collection___hash_collection___HashMapValues___has_only(val_t p0, val_t p1){
1732 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
1733 val_t REGB0;
1734 val_t REGB1;
1735 val_t tmp;
1736 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1737 fra.me.file = LOCATE_standard___collection___hash_collection;
1738 fra.me.line = 308;
1739 fra.me.meth = LOCATE_standard___collection___hash_collection___HashMapValues___has_only;
1740 fra.me.has_broke = 0;
1741 fra.me.REG_size = 3;
1742 fra.me.REG[0] = NIT_NULL;
1743 fra.me.REG[1] = NIT_NULL;
1744 fra.me.REG[2] = NIT_NULL;
1745 fra.me.REG[0] = p0;
1746 fra.me.REG[1] = p1;
1747 /* ./../lib/standard//collection//hash_collection.nit:310 */
1748 fra.me.REG[0] = CALL_standard___collection___hash_collection___HashMapValues___map(fra.me.REG[0])(fra.me.REG[0]);
1749 fra.me.REG[0] = ATTR_standard___collection___hash_collection___HashCollection____first_item(fra.me.REG[0]);
1750 /* ./../lib/standard//collection//hash_collection.nit:311 */
1751 while(1) {
1752 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
1753 if (UNTAG_Bool(REGB0)) {
1754 } else {
1755 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
1756 if (UNTAG_Bool(REGB1)) {
1757 REGB1 = TAG_Bool(false);
1758 REGB0 = REGB1;
1759 } else {
1760 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], NIT_NULL);
1761 REGB0 = REGB1;
1762 }
1763 }
1764 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
1765 if (UNTAG_Bool(REGB0)) {
1766 /* ./../lib/standard//collection//hash_collection.nit:312 */
1767 fra.me.REG[2] = ATTR_standard___collection___hash_collection___HashMapNode____value(fra.me.REG[0]);
1768 REGB0 = TAG_Bool(IS_EQUAL_NN(fra.me.REG[2],fra.me.REG[1]));
1769 if (UNTAG_Bool(REGB0)) {
1770 } else {
1771 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
1772 if (UNTAG_Bool(REGB1)) {
1773 REGB1 = TAG_Bool(false);
1774 REGB0 = REGB1;
1775 } else {
1776 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
1777 REGB0 = REGB1;
1778 }
1779 }
1780 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
1781 if (UNTAG_Bool(REGB0)) {
1782 REGB0 = TAG_Bool(false);
1783 goto label1;
1784 }
1785 /* ./../lib/standard//collection//hash_collection.nit:313 */
1786 fra.me.REG[2] = ATTR_standard___collection___hash_collection___HashNode____next_item(fra.me.REG[0]);
1787 fra.me.REG[0] = fra.me.REG[2];
1788 } else {
1789 /* ./../lib/standard//collection//hash_collection.nit:311 */
1790 goto label2;
1791 }
1792 }
1793 label2: while(0);
1794 /* ./../lib/standard//collection//hash_collection.nit:315 */
1795 REGB1 = TAG_Bool(true);
1796 REGB0 = REGB1;
1797 goto label1;
1798 label1: while(0);
1799 stack_frame_head = fra.me.prev;
1800 return REGB0;
1801 }
1802 val_t standard___collection___hash_collection___HashMapValues___is_empty(val_t p0){
1803 struct {struct stack_frame_t me;} fra;
1804 val_t REGB0;
1805 val_t tmp;
1806 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1807 fra.me.file = LOCATE_standard___collection___hash_collection;
1808 fra.me.line = 318;
1809 fra.me.meth = LOCATE_standard___collection___hash_collection___HashMapValues___is_empty;
1810 fra.me.has_broke = 0;
1811 fra.me.REG_size = 1;
1812 fra.me.REG[0] = NIT_NULL;
1813 fra.me.REG[0] = p0;
1814 /* ./../lib/standard//collection//hash_collection.nit:318 */
1815 fra.me.REG[0] = CALL_standard___collection___hash_collection___HashMapValues___map(fra.me.REG[0])(fra.me.REG[0]);
1816 REGB0 = CALL_standard___collection___abstract_collection___MapRead___is_empty(fra.me.REG[0])(fra.me.REG[0]);
1817 goto label1;
1818 label1: while(0);
1819 stack_frame_head = fra.me.prev;
1820 return REGB0;
1821 }
1822 val_t standard___collection___hash_collection___HashMapValues___length(val_t p0){
1823 struct {struct stack_frame_t me;} fra;
1824 val_t REGB0;
1825 val_t tmp;
1826 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1827 fra.me.file = LOCATE_standard___collection___hash_collection;
1828 fra.me.line = 319;
1829 fra.me.meth = LOCATE_standard___collection___hash_collection___HashMapValues___length;
1830 fra.me.has_broke = 0;
1831 fra.me.REG_size = 1;
1832 fra.me.REG[0] = NIT_NULL;
1833 fra.me.REG[0] = p0;
1834 /* ./../lib/standard//collection//hash_collection.nit:319 */
1835 fra.me.REG[0] = CALL_standard___collection___hash_collection___HashMapValues___map(fra.me.REG[0])(fra.me.REG[0]);
1836 REGB0 = CALL_standard___collection___abstract_collection___MapRead___length(fra.me.REG[0])(fra.me.REG[0]);
1837 goto label1;
1838 label1: while(0);
1839 stack_frame_head = fra.me.prev;
1840 return REGB0;
1841 }
1842 val_t standard___collection___hash_collection___HashMapValues___iterator(val_t p0){
1843 struct {struct stack_frame_t me;} fra;
1844 val_t tmp;
1845 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1846 fra.me.file = LOCATE_standard___collection___hash_collection;
1847 fra.me.line = 321;
1848 fra.me.meth = LOCATE_standard___collection___hash_collection___HashMapValues___iterator;
1849 fra.me.has_broke = 0;
1850 fra.me.REG_size = 1;
1851 fra.me.REG[0] = NIT_NULL;
1852 fra.me.REG[0] = p0;
1853 /* ./../lib/standard//collection//hash_collection.nit:321 */
1854 fra.me.REG[0] = CALL_standard___collection___hash_collection___HashMapValues___map(fra.me.REG[0])(fra.me.REG[0]);
1855 fra.me.REG[0] = CALL_standard___collection___abstract_collection___MapRead___iterator(fra.me.REG[0])(fra.me.REG[0]);
1856 fra.me.REG[0] = NEW_MapValuesIterator_standard___collection___abstract_collection___MapValuesIterator___init(fra.me.REG[0]);
1857 goto label1;
1858 label1: while(0);
1859 stack_frame_head = fra.me.prev;
1860 return fra.me.REG[0];
1861 }
1862 void standard___collection___hash_collection___HashMapValues___clear(val_t p0){
1863 struct {struct stack_frame_t me;} fra;
1864 val_t tmp;
1865 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1866 fra.me.file = LOCATE_standard___collection___hash_collection;
1867 fra.me.line = 323;
1868 fra.me.meth = LOCATE_standard___collection___hash_collection___HashMapValues___clear;
1869 fra.me.has_broke = 0;
1870 fra.me.REG_size = 1;
1871 fra.me.REG[0] = NIT_NULL;
1872 fra.me.REG[0] = p0;
1873 /* ./../lib/standard//collection//hash_collection.nit:323 */
1874 fra.me.REG[0] = CALL_standard___collection___hash_collection___HashMapValues___map(fra.me.REG[0])(fra.me.REG[0]);
1875 CALL_standard___collection___abstract_collection___Map___clear(fra.me.REG[0])(fra.me.REG[0]);
1876 stack_frame_head = fra.me.prev;
1877 return;
1878 }
1879 void standard___collection___hash_collection___HashMapValues___remove(val_t p0, val_t p1){
1880 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
1881 val_t REGB0;
1882 val_t REGB1;
1883 val_t tmp;
1884 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1885 fra.me.file = LOCATE_standard___collection___hash_collection;
1886 fra.me.line = 325;
1887 fra.me.meth = LOCATE_standard___collection___hash_collection___HashMapValues___remove;
1888 fra.me.has_broke = 0;
1889 fra.me.REG_size = 4;
1890 fra.me.REG[0] = NIT_NULL;
1891 fra.me.REG[1] = NIT_NULL;
1892 fra.me.REG[2] = NIT_NULL;
1893 fra.me.REG[3] = NIT_NULL;
1894 fra.me.REG[0] = p0;
1895 fra.me.REG[1] = p1;
1896 /* ./../lib/standard//collection//hash_collection.nit:327 */
1897 fra.me.REG[0] = CALL_standard___collection___hash_collection___HashMapValues___map(fra.me.REG[0])(fra.me.REG[0]);
1898 /* ./../lib/standard//collection//hash_collection.nit:328 */
1899 fra.me.REG[2] = ATTR_standard___collection___hash_collection___HashCollection____first_item(fra.me.REG[0]);
1900 /* ./../lib/standard//collection//hash_collection.nit:329 */
1901 while(1) {
1902 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
1903 if (UNTAG_Bool(REGB0)) {
1904 } else {
1905 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
1906 if (UNTAG_Bool(REGB1)) {
1907 REGB1 = TAG_Bool(false);
1908 REGB0 = REGB1;
1909 } else {
1910 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
1911 REGB0 = REGB1;
1912 }
1913 }
1914 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
1915 if (UNTAG_Bool(REGB0)) {
1916 /* ./../lib/standard//collection//hash_collection.nit:330 */
1917 fra.me.REG[3] = ATTR_standard___collection___hash_collection___HashMapNode____value(fra.me.REG[2]);
1918 REGB0 = TAG_Bool(IS_EQUAL_NN(fra.me.REG[3],fra.me.REG[1]));
1919 if (UNTAG_Bool(REGB0)) {
1920 } else {
1921 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
1922 if (UNTAG_Bool(REGB1)) {
1923 REGB1 = TAG_Bool(false);
1924 REGB0 = REGB1;
1925 } else {
1926 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
1927 REGB0 = REGB1;
1928 }
1929 }
1930 if (UNTAG_Bool(REGB0)) {
1931 /* ./../lib/standard//collection//hash_collection.nit:331 */
1932 REGB0 = TAG_Bool(ATTR_standard___collection___hash_collection___HashNode____key(fra.me.REG[2])!=NIT_NULL);
1933 if (UNTAG_Bool(REGB0)) {
1934 } else {
1935 nit_abort("Uninitialized attribute %s", "_key", LOCATE_standard___collection___hash_collection, 331);
1936 }
1937 fra.me.REG[3] = ATTR_standard___collection___hash_collection___HashNode____key(fra.me.REG[2]);
1938 CALL_standard___collection___hash_collection___HashCollection___remove_node(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[3]);
1939 /* ./../lib/standard//collection//hash_collection.nit:332 */
1940 goto label1;
1941 }
1942 /* ./../lib/standard//collection//hash_collection.nit:334 */
1943 fra.me.REG[3] = ATTR_standard___collection___hash_collection___HashNode____next_item(fra.me.REG[2]);
1944 fra.me.REG[2] = fra.me.REG[3];
1945 } else {
1946 /* ./../lib/standard//collection//hash_collection.nit:329 */
1947 goto label2;
1948 }
1949 }
1950 label2: while(0);
1951 label1: while(0);
1952 stack_frame_head = fra.me.prev;
1953 return;
1954 }
1955 void standard___collection___hash_collection___HashMapValues___remove_all(val_t p0, val_t p1){
1956 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
1957 val_t REGB0;
1958 val_t REGB1;
1959 val_t tmp;
1960 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1961 fra.me.file = LOCATE_standard___collection___hash_collection;
1962 fra.me.line = 338;
1963 fra.me.meth = LOCATE_standard___collection___hash_collection___HashMapValues___remove_all;
1964 fra.me.has_broke = 0;
1965 fra.me.REG_size = 4;
1966 fra.me.REG[0] = NIT_NULL;
1967 fra.me.REG[1] = NIT_NULL;
1968 fra.me.REG[2] = NIT_NULL;
1969 fra.me.REG[3] = NIT_NULL;
1970 fra.me.REG[0] = p0;
1971 fra.me.REG[1] = p1;
1972 /* ./../lib/standard//collection//hash_collection.nit:340 */
1973 fra.me.REG[0] = CALL_standard___collection___hash_collection___HashMapValues___map(fra.me.REG[0])(fra.me.REG[0]);
1974 /* ./../lib/standard//collection//hash_collection.nit:341 */
1975 fra.me.REG[2] = ATTR_standard___collection___hash_collection___HashCollection____first_item(fra.me.REG[0]);
1976 /* ./../lib/standard//collection//hash_collection.nit:342 */
1977 while(1) {
1978 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
1979 if (UNTAG_Bool(REGB0)) {
1980 } else {
1981 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
1982 if (UNTAG_Bool(REGB1)) {
1983 REGB1 = TAG_Bool(false);
1984 REGB0 = REGB1;
1985 } else {
1986 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
1987 REGB0 = REGB1;
1988 }
1989 }
1990 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
1991 if (UNTAG_Bool(REGB0)) {
1992 /* ./../lib/standard//collection//hash_collection.nit:343 */
1993 fra.me.REG[3] = ATTR_standard___collection___hash_collection___HashMapNode____value(fra.me.REG[2]);
1994 REGB0 = TAG_Bool(IS_EQUAL_NN(fra.me.REG[3],fra.me.REG[1]));
1995 if (UNTAG_Bool(REGB0)) {
1996 } else {
1997 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
1998 if (UNTAG_Bool(REGB1)) {
1999 REGB1 = TAG_Bool(false);
2000 REGB0 = REGB1;
2001 } else {
2002 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
2003 REGB0 = REGB1;
2004 }
2005 }
2006 if (UNTAG_Bool(REGB0)) {
2007 /* ./../lib/standard//collection//hash_collection.nit:344 */
2008 REGB0 = TAG_Bool(ATTR_standard___collection___hash_collection___HashNode____key(fra.me.REG[2])!=NIT_NULL);
2009 if (UNTAG_Bool(REGB0)) {
2010 } else {
2011 nit_abort("Uninitialized attribute %s", "_key", LOCATE_standard___collection___hash_collection, 344);
2012 }
2013 fra.me.REG[3] = ATTR_standard___collection___hash_collection___HashNode____key(fra.me.REG[2]);
2014 CALL_standard___collection___hash_collection___HashCollection___remove_node(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[3]);
2015 }
2016 /* ./../lib/standard//collection//hash_collection.nit:346 */
2017 fra.me.REG[3] = ATTR_standard___collection___hash_collection___HashNode____next_item(fra.me.REG[2]);
2018 fra.me.REG[2] = fra.me.REG[3];
2019 } else {
2020 /* ./../lib/standard//collection//hash_collection.nit:342 */
2021 goto label1;
2022 }
2023 }
2024 label1: while(0);
2025 stack_frame_head = fra.me.prev;
2026 return;
2027 }
2028 void standard___collection___hash_collection___HashMapValues___init(val_t p0, val_t p1, int* init_table){
2029 int itpos4 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_standard___collection___hash_collection___HashMapValues].i;
2030 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
2031 val_t tmp;
2032 if (init_table[itpos4]) return;
2033 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2034 fra.me.file = LOCATE_standard___collection___hash_collection;
2035 fra.me.line = 0;
2036 fra.me.meth = LOCATE_standard___collection___hash_collection___HashMapValues___init;
2037 fra.me.has_broke = 0;
2038 fra.me.REG_size = 2;
2039 fra.me.REG[0] = NIT_NULL;
2040 fra.me.REG[1] = NIT_NULL;
2041 fra.me.REG[0] = p0;
2042 fra.me.REG[1] = p1;
2043 ATTR_standard___collection___hash_collection___HashMapValues_____atmap(fra.me.REG[0]) = fra.me.REG[1];
2044 stack_frame_head = fra.me.prev;
2045 init_table[itpos4] = 1;
2046 return;
2047 }
2048 void standard___collection___hash_collection___HashMapNode___init(val_t p0, val_t p1, val_t p2, int* init_table){
2049 int itpos5 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_standard___collection___hash_collection___HashMapNode].i;
2050 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
2051 val_t tmp;
2052 if (init_table[itpos5]) return;
2053 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2054 fra.me.file = LOCATE_standard___collection___hash_collection;
2055 fra.me.line = 356;
2056 fra.me.meth = LOCATE_standard___collection___hash_collection___HashMapNode___init;
2057 fra.me.has_broke = 0;
2058 fra.me.REG_size = 4;
2059 fra.me.REG[0] = NIT_NULL;
2060 fra.me.REG[1] = NIT_NULL;
2061 fra.me.REG[2] = NIT_NULL;
2062 fra.me.REG[3] = NIT_NULL;
2063 fra.me.REG[0] = p0;
2064 fra.me.REG[1] = p1;
2065 fra.me.REG[2] = p2;
2066 /* ./../lib/standard//collection//hash_collection.nit:356 */
2067 fra.me.REG[3] = fra.me.REG[0];
2068 /* ./../lib/standard//collection//hash_collection.nit:358 */
2069 CALL_standard___collection___hash_collection___HashNode___init(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], init_table);
2070 /* ./../lib/standard//collection//hash_collection.nit:359 */
2071 ATTR_standard___collection___hash_collection___HashMapNode____value(fra.me.REG[3]) = fra.me.REG[2];
2072 stack_frame_head = fra.me.prev;
2073 init_table[itpos5] = 1;
2074 return;
2075 }
2076 val_t standard___collection___hash_collection___HashMapIterator___is_ok(val_t p0){
2077 struct {struct stack_frame_t me;} fra;
2078 val_t REGB0;
2079 val_t REGB1;
2080 val_t tmp;
2081 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2082 fra.me.file = LOCATE_standard___collection___hash_collection;
2083 fra.me.line = 365;
2084 fra.me.meth = LOCATE_standard___collection___hash_collection___HashMapIterator___is_ok;
2085 fra.me.has_broke = 0;
2086 fra.me.REG_size = 1;
2087 fra.me.REG[0] = NIT_NULL;
2088 fra.me.REG[0] = p0;
2089 /* ./../lib/standard//collection//hash_collection.nit:365 */
2090 fra.me.REG[0] = ATTR_standard___collection___hash_collection___HashMapIterator____node(fra.me.REG[0]);
2091 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
2092 if (UNTAG_Bool(REGB0)) {
2093 } else {
2094 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
2095 if (UNTAG_Bool(REGB1)) {
2096 REGB1 = TAG_Bool(false);
2097 REGB0 = REGB1;
2098 } else {
2099 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], NIT_NULL);
2100 REGB0 = REGB1;
2101 }
2102 }
2103 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
2104 goto label1;
2105 label1: while(0);
2106 stack_frame_head = fra.me.prev;
2107 return REGB0;
2108 }
2109 val_t standard___collection___hash_collection___HashMapIterator___item(val_t p0){
2110 struct {struct stack_frame_t me;} fra;
2111 val_t REGB0;
2112 val_t tmp;
2113 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2114 fra.me.file = LOCATE_standard___collection___hash_collection;
2115 fra.me.line = 367;
2116 fra.me.meth = LOCATE_standard___collection___hash_collection___HashMapIterator___item;
2117 fra.me.has_broke = 0;
2118 fra.me.REG_size = 1;
2119 fra.me.REG[0] = NIT_NULL;
2120 fra.me.REG[0] = p0;
2121 /* ./../lib/standard//collection//hash_collection.nit:369 */
2122 REGB0 = CALL_standard___collection___abstract_collection___MapIterator___is_ok(fra.me.REG[0])(fra.me.REG[0]);
2123 if (UNTAG_Bool(REGB0)) {
2124 } else {
2125 nit_abort("Assert failed", NULL, LOCATE_standard___collection___hash_collection, 369);
2126 }
2127 /* ./../lib/standard//collection//hash_collection.nit:370 */
2128 fra.me.REG[0] = ATTR_standard___collection___hash_collection___HashMapIterator____node(fra.me.REG[0]);
2129 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
2130 if (UNTAG_Bool(REGB0)) {
2131 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___hash_collection, 370);
2132 }
2133 fra.me.REG[0] = ATTR_standard___collection___hash_collection___HashMapNode____value(fra.me.REG[0]);
2134 goto label1;
2135 label1: while(0);
2136 stack_frame_head = fra.me.prev;
2137 return fra.me.REG[0];
2138 }
2139 val_t standard___collection___hash_collection___HashMapIterator___key(val_t p0){
2140 struct {struct stack_frame_t me;} fra;
2141 val_t REGB0;
2142 val_t tmp;
2143 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2144 fra.me.file = LOCATE_standard___collection___hash_collection;
2145 fra.me.line = 379;
2146 fra.me.meth = LOCATE_standard___collection___hash_collection___HashMapIterator___key;
2147 fra.me.has_broke = 0;
2148 fra.me.REG_size = 1;
2149 fra.me.REG[0] = NIT_NULL;
2150 fra.me.REG[0] = p0;
2151 /* ./../lib/standard//collection//hash_collection.nit:381 */
2152 REGB0 = CALL_standard___collection___abstract_collection___MapIterator___is_ok(fra.me.REG[0])(fra.me.REG[0]);
2153 if (UNTAG_Bool(REGB0)) {
2154 } else {
2155 nit_abort("Assert failed", NULL, LOCATE_standard___collection___hash_collection, 381);
2156 }
2157 /* ./../lib/standard//collection//hash_collection.nit:382 */
2158 fra.me.REG[0] = ATTR_standard___collection___hash_collection___HashMapIterator____node(fra.me.REG[0]);
2159 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
2160 if (UNTAG_Bool(REGB0)) {
2161 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___hash_collection, 382);
2162 }
2163 REGB0 = TAG_Bool(ATTR_standard___collection___hash_collection___HashNode____key(fra.me.REG[0])!=NIT_NULL);
2164 if (UNTAG_Bool(REGB0)) {
2165 } else {
2166 nit_abort("Uninitialized attribute %s", "_key", LOCATE_standard___collection___hash_collection, 382);
2167 }
2168 fra.me.REG[0] = ATTR_standard___collection___hash_collection___HashNode____key(fra.me.REG[0]);
2169 goto label1;
2170 label1: while(0);
2171 stack_frame_head = fra.me.prev;
2172 return fra.me.REG[0];
2173 }
2174 void standard___collection___hash_collection___HashMapIterator___next(val_t p0){
2175 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
2176 val_t REGB0;
2177 val_t tmp;
2178 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2179 fra.me.file = LOCATE_standard___collection___hash_collection;
2180 fra.me.line = 385;
2181 fra.me.meth = LOCATE_standard___collection___hash_collection___HashMapIterator___next;
2182 fra.me.has_broke = 0;
2183 fra.me.REG_size = 2;
2184 fra.me.REG[0] = NIT_NULL;
2185 fra.me.REG[1] = NIT_NULL;
2186 fra.me.REG[0] = p0;
2187 /* ./../lib/standard//collection//hash_collection.nit:387 */
2188 REGB0 = CALL_standard___collection___abstract_collection___MapIterator___is_ok(fra.me.REG[0])(fra.me.REG[0]);
2189 if (UNTAG_Bool(REGB0)) {
2190 } else {
2191 nit_abort("Assert failed", NULL, LOCATE_standard___collection___hash_collection, 387);
2192 }
2193 /* ./../lib/standard//collection//hash_collection.nit:388 */
2194 fra.me.REG[1] = ATTR_standard___collection___hash_collection___HashMapIterator____node(fra.me.REG[0]);
2195 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
2196 if (UNTAG_Bool(REGB0)) {
2197 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___hash_collection, 388);
2198 }
2199 fra.me.REG[1] = ATTR_standard___collection___hash_collection___HashNode____next_item(fra.me.REG[1]);
2200 ATTR_standard___collection___hash_collection___HashMapIterator____node(fra.me.REG[0]) = fra.me.REG[1];
2201 stack_frame_head = fra.me.prev;
2202 return;
2203 }
2204 void standard___collection___hash_collection___HashMapIterator___init(val_t p0, val_t p1, int* init_table){
2205 int itpos6 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_standard___collection___hash_collection___HashMapIterator].i;
2206 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
2207 val_t tmp;
2208 if (init_table[itpos6]) return;
2209 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2210 fra.me.file = LOCATE_standard___collection___hash_collection;
2211 fra.me.line = 397;
2212 fra.me.meth = LOCATE_standard___collection___hash_collection___HashMapIterator___init;
2213 fra.me.has_broke = 0;
2214 fra.me.REG_size = 2;
2215 fra.me.REG[0] = NIT_NULL;
2216 fra.me.REG[1] = NIT_NULL;
2217 fra.me.REG[0] = p0;
2218 fra.me.REG[1] = p1;
2219 /* ./../lib/standard//collection//hash_collection.nit:399 */
2220 ATTR_standard___collection___hash_collection___HashMapIterator____map(fra.me.REG[0]) = fra.me.REG[1];
2221 /* ./../lib/standard//collection//hash_collection.nit:400 */
2222 fra.me.REG[1] = CALL_standard___collection___hash_collection___HashCollection___first_item(fra.me.REG[1])(fra.me.REG[1]);
2223 ATTR_standard___collection___hash_collection___HashMapIterator____node(fra.me.REG[0]) = fra.me.REG[1];
2224 stack_frame_head = fra.me.prev;
2225 init_table[itpos6] = 1;
2226 return;
2227 }
2228 val_t standard___collection___hash_collection___HashSet___length(val_t p0){
2229 struct {struct stack_frame_t me;} fra;
2230 val_t REGB0;
2231 val_t tmp;
2232 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2233 fra.me.file = LOCATE_standard___collection___hash_collection;
2234 fra.me.line = 410;
2235 fra.me.meth = LOCATE_standard___collection___hash_collection___HashSet___length;
2236 fra.me.has_broke = 0;
2237 fra.me.REG_size = 1;
2238 fra.me.REG[0] = NIT_NULL;
2239 fra.me.REG[0] = p0;
2240 /* ./../lib/standard//collection//hash_collection.nit:410 */
2241 REGB0 = TAG_Bool(ATTR_standard___collection___hash_collection___HashCollection____length(fra.me.REG[0])!=NIT_NULL);
2242 if (UNTAG_Bool(REGB0)) {
2243 } else {
2244 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___hash_collection, 410);
2245 }
2246 REGB0 = ATTR_standard___collection___hash_collection___HashCollection____length(fra.me.REG[0]);
2247 goto label1;
2248 label1: while(0);
2249 stack_frame_head = fra.me.prev;
2250 return REGB0;
2251 }
2252 val_t standard___collection___hash_collection___HashSet___is_empty(val_t p0){
2253 struct {struct stack_frame_t me;} fra;
2254 val_t REGB0;
2255 val_t REGB1;
2256 val_t REGB2;
2257 val_t tmp;
2258 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2259 fra.me.file = LOCATE_standard___collection___hash_collection;
2260 fra.me.line = 412;
2261 fra.me.meth = LOCATE_standard___collection___hash_collection___HashSet___is_empty;
2262 fra.me.has_broke = 0;
2263 fra.me.REG_size = 1;
2264 fra.me.REG[0] = NIT_NULL;
2265 fra.me.REG[0] = p0;
2266 /* ./../lib/standard//collection//hash_collection.nit:412 */
2267 REGB0 = TAG_Bool(ATTR_standard___collection___hash_collection___HashCollection____length(fra.me.REG[0])!=NIT_NULL);
2268 if (UNTAG_Bool(REGB0)) {
2269 } else {
2270 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___hash_collection, 412);
2271 }
2272 REGB0 = ATTR_standard___collection___hash_collection___HashCollection____length(fra.me.REG[0]);
2273 REGB1 = TAG_Int(0);
2274 REGB2 = TAG_Bool(IS_EQUAL_OO(REGB0,REGB1));
2275 if (UNTAG_Bool(REGB2)) {
2276 } else {
2277 /* ./../lib/standard//kernel.nit:227 */
2278 REGB1 = TAG_Bool((REGB0)==(REGB1));
2279 /* ./../lib/standard//collection//hash_collection.nit:412 */
2280 REGB2 = REGB1;
2281 }
2282 goto label1;
2283 label1: while(0);
2284 stack_frame_head = fra.me.prev;
2285 return REGB2;
2286 }
2287 val_t standard___collection___hash_collection___HashSet___first(val_t p0){
2288 struct {struct stack_frame_t me;} fra;
2289 val_t REGB0;
2290 val_t REGB1;
2291 val_t REGB2;
2292 val_t tmp;
2293 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2294 fra.me.file = LOCATE_standard___collection___hash_collection;
2295 fra.me.line = 414;
2296 fra.me.meth = LOCATE_standard___collection___hash_collection___HashSet___first;
2297 fra.me.has_broke = 0;
2298 fra.me.REG_size = 1;
2299 fra.me.REG[0] = NIT_NULL;
2300 fra.me.REG[0] = p0;
2301 /* ./../lib/standard//collection//hash_collection.nit:416 */
2302 REGB0 = TAG_Bool(ATTR_standard___collection___hash_collection___HashCollection____length(fra.me.REG[0])!=NIT_NULL);
2303 if (UNTAG_Bool(REGB0)) {
2304 } else {
2305 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___hash_collection, 416);
2306 }
2307 REGB0 = ATTR_standard___collection___hash_collection___HashCollection____length(fra.me.REG[0]);
2308 REGB1 = TAG_Int(0);
2309 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
2310 if (UNTAG_Bool(REGB2)) {
2311 } else {
2312 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
2313 }
2314 /* ./../lib/standard//kernel.nit:234 */
2315 REGB1 = TAG_Bool(UNTAG_Int(REGB0)>UNTAG_Int(REGB1));
2316 /* ./../lib/standard//collection//hash_collection.nit:416 */
2317 if (UNTAG_Bool(REGB1)) {
2318 } else {
2319 nit_abort("Assert failed", NULL, LOCATE_standard___collection___hash_collection, 416);
2320 }
2321 /* ./../lib/standard//collection//hash_collection.nit:417 */
2322 fra.me.REG[0] = ATTR_standard___collection___hash_collection___HashCollection____first_item(fra.me.REG[0]);
2323 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
2324 if (UNTAG_Bool(REGB1)) {
2325 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___hash_collection, 417);
2326 }
2327 REGB1 = TAG_Bool(ATTR_standard___collection___hash_collection___HashNode____key(fra.me.REG[0])!=NIT_NULL);
2328 if (UNTAG_Bool(REGB1)) {
2329 } else {
2330 nit_abort("Uninitialized attribute %s", "_key", LOCATE_standard___collection___hash_collection, 417);
2331 }
2332 fra.me.REG[0] = ATTR_standard___collection___hash_collection___HashNode____key(fra.me.REG[0]);
2333 goto label1;
2334 label1: while(0);
2335 stack_frame_head = fra.me.prev;
2336 return fra.me.REG[0];
2337 }
2338 val_t standard___collection___hash_collection___HashSet___has(val_t p0, val_t p1){
2339 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
2340 val_t REGB0;
2341 val_t REGB1;
2342 val_t tmp;
2343 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2344 fra.me.file = LOCATE_standard___collection___hash_collection;
2345 fra.me.line = 420;
2346 fra.me.meth = LOCATE_standard___collection___hash_collection___HashSet___has;
2347 fra.me.has_broke = 0;
2348 fra.me.REG_size = 2;
2349 fra.me.REG[0] = NIT_NULL;
2350 fra.me.REG[1] = NIT_NULL;
2351 fra.me.REG[0] = p0;
2352 fra.me.REG[1] = p1;
2353 /* ./../lib/standard//collection//hash_collection.nit:422 */
2354 fra.me.REG[1] = CALL_standard___collection___hash_collection___HashCollection___node_at(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
2355 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
2356 if (UNTAG_Bool(REGB0)) {
2357 } else {
2358 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
2359 if (UNTAG_Bool(REGB1)) {
2360 REGB1 = TAG_Bool(false);
2361 REGB0 = REGB1;
2362 } else {
2363 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
2364 REGB0 = REGB1;
2365 }
2366 }
2367 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
2368 goto label1;
2369 label1: while(0);
2370 stack_frame_head = fra.me.prev;
2371 return REGB0;
2372 }
2373 void standard___collection___hash_collection___HashSet___add(val_t p0, val_t p1){
2374 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
2375 val_t REGB0;
2376 val_t REGB1;
2377 val_t REGB2;
2378 val_t tmp;
2379 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2380 fra.me.file = LOCATE_standard___collection___hash_collection;
2381 fra.me.line = 425;
2382 fra.me.meth = LOCATE_standard___collection___hash_collection___HashSet___add;
2383 fra.me.has_broke = 0;
2384 fra.me.REG_size = 3;
2385 fra.me.REG[0] = NIT_NULL;
2386 fra.me.REG[1] = NIT_NULL;
2387 fra.me.REG[2] = NIT_NULL;
2388 fra.me.REG[0] = p0;
2389 fra.me.REG[1] = p1;
2390 /* ./../lib/standard//collection//hash_collection.nit:427 */
2391 REGB0 = CALL_standard___collection___hash_collection___HashCollection___index_at(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
2392 /* ./../lib/standard//collection//hash_collection.nit:428 */
2393 fra.me.REG[2] = CALL_standard___collection___hash_collection___HashCollection___node_at_idx(fra.me.REG[0])(fra.me.REG[0], REGB0, fra.me.REG[1]);
2394 /* ./../lib/standard//collection//hash_collection.nit:429 */
2395 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
2396 if (UNTAG_Bool(REGB1)) {
2397 } else {
2398 REGB2 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
2399 if (UNTAG_Bool(REGB2)) {
2400 REGB2 = TAG_Bool(false);
2401 REGB1 = REGB2;
2402 } else {
2403 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
2404 REGB1 = REGB2;
2405 }
2406 }
2407 REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
2408 if (UNTAG_Bool(REGB1)) {
2409 /* ./../lib/standard//collection//hash_collection.nit:430 */
2410 ATTR_standard___collection___hash_collection___HashNode____key(fra.me.REG[2]) = fra.me.REG[1];
2411 } else {
2412 /* ./../lib/standard//collection//hash_collection.nit:432 */
2413 fra.me.REG[1] = NEW_HashSetNode_standard___collection___hash_collection___HashSetNode___init(fra.me.REG[1]);
2414 CALL_standard___collection___hash_collection___HashCollection___store(fra.me.REG[0])(fra.me.REG[0], REGB0, fra.me.REG[1]);
2415 }
2416 stack_frame_head = fra.me.prev;
2417 return;
2418 }
2419 void standard___collection___hash_collection___HashSet___remove(val_t p0, val_t p1){
2420 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
2421 val_t tmp;
2422 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2423 fra.me.file = LOCATE_standard___collection___hash_collection;
2424 fra.me.line = 436;
2425 fra.me.meth = LOCATE_standard___collection___hash_collection___HashSet___remove;
2426 fra.me.has_broke = 0;
2427 fra.me.REG_size = 2;
2428 fra.me.REG[0] = NIT_NULL;
2429 fra.me.REG[1] = NIT_NULL;
2430 fra.me.REG[0] = p0;
2431 fra.me.REG[1] = p1;
2432 /* ./../lib/standard//collection//hash_collection.nit:436 */
2433 CALL_standard___collection___hash_collection___HashCollection___remove_node(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
2434 stack_frame_head = fra.me.prev;
2435 return;
2436 }
2437 void standard___collection___hash_collection___HashSet___clear(val_t p0){
2438 struct {struct stack_frame_t me;} fra;
2439 val_t tmp;
2440 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2441 fra.me.file = LOCATE_standard___collection___hash_collection;
2442 fra.me.line = 438;
2443 fra.me.meth = LOCATE_standard___collection___hash_collection___HashSet___clear;
2444 fra.me.has_broke = 0;
2445 fra.me.REG_size = 1;
2446 fra.me.REG[0] = NIT_NULL;
2447 fra.me.REG[0] = p0;
2448 /* ./../lib/standard//collection//hash_collection.nit:438 */
2449 CALL_standard___collection___hash_collection___HashCollection___raz(fra.me.REG[0])(fra.me.REG[0]);
2450 stack_frame_head = fra.me.prev;
2451 return;
2452 }
2453 val_t standard___collection___hash_collection___HashSet___iterator(val_t p0){
2454 struct {struct stack_frame_t me;} fra;
2455 val_t tmp;
2456 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2457 fra.me.file = LOCATE_standard___collection___hash_collection;
2458 fra.me.line = 440;
2459 fra.me.meth = LOCATE_standard___collection___hash_collection___HashSet___iterator;
2460 fra.me.has_broke = 0;
2461 fra.me.REG_size = 1;
2462 fra.me.REG[0] = NIT_NULL;
2463 fra.me.REG[0] = p0;
2464 /* ./../lib/standard//collection//hash_collection.nit:440 */
2465 fra.me.REG[0] = NEW_HashSetIterator_standard___collection___hash_collection___HashSetIterator___init(fra.me.REG[0]);
2466 goto label1;
2467 label1: while(0);
2468 stack_frame_head = fra.me.prev;
2469 return fra.me.REG[0];
2470 }
2471 void standard___collection___hash_collection___HashSet___init(val_t p0, int* init_table){
2472 int itpos7 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_standard___collection___hash_collection___HashSet].i;
2473 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
2474 val_t REGB0;
2475 val_t tmp;
2476 if (init_table[itpos7]) return;
2477 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2478 fra.me.file = LOCATE_standard___collection___hash_collection;
2479 fra.me.line = 442;
2480 fra.me.meth = LOCATE_standard___collection___hash_collection___HashSet___init;
2481 fra.me.has_broke = 0;
2482 fra.me.REG_size = 2;
2483 fra.me.REG[0] = NIT_NULL;
2484 fra.me.REG[1] = NIT_NULL;
2485 fra.me.REG[0] = p0;
2486 /* ./../lib/standard//collection//hash_collection.nit:442 */
2487 fra.me.REG[1] = fra.me.REG[0];
2488 CALL_standard___collection___hash_collection___HashCollection___init(fra.me.REG[0])(fra.me.REG[0], init_table);
2489 /* ./../lib/standard//collection//hash_collection.nit:444 */
2490 REGB0 = TAG_Int(0);
2491 ATTR_standard___collection___hash_collection___HashCollection____capacity(fra.me.REG[1]) = REGB0;
2492 /* ./../lib/standard//collection//hash_collection.nit:445 */
2493 REGB0 = TAG_Int(0);
2494 ATTR_standard___collection___hash_collection___HashCollection____length(fra.me.REG[1]) = REGB0;
2495 /* ./../lib/standard//collection//hash_collection.nit:446 */
2496 REGB0 = TAG_Int(0);
2497 CALL_standard___collection___hash_collection___HashCollection___enlarge(fra.me.REG[1])(fra.me.REG[1], REGB0);
2498 stack_frame_head = fra.me.prev;
2499 init_table[itpos7] = 1;
2500 return;
2501 }
2502 void standard___collection___hash_collection___HashSetNode___init(val_t p0, val_t p1, int* init_table){
2503 int itpos8 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_standard___collection___hash_collection___HashSetNode].i;
2504 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
2505 val_t tmp;
2506 if (init_table[itpos8]) return;
2507 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2508 fra.me.file = LOCATE_standard___collection___hash_collection;
2509 fra.me.line = 454;
2510 fra.me.meth = LOCATE_standard___collection___hash_collection___HashSetNode___init;
2511 fra.me.has_broke = 0;
2512 fra.me.REG_size = 4;
2513 fra.me.REG[0] = NIT_NULL;
2514 fra.me.REG[1] = NIT_NULL;
2515 fra.me.REG[2] = NIT_NULL;
2516 fra.me.REG[3] = NIT_NULL;
2517 fra.me.REG[0] = p0;
2518 fra.me.REG[1] = p1;
2519 /* ./../lib/standard//collection//hash_collection.nit:454 */
2520 fra.me.REG[2] = fra.me.REG[0];
2521 fra.me.REG[3] = fra.me.REG[1];
2522 CALL_standard___collection___hash_collection___HashNode___init(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], init_table);
2523 /* ./../lib/standard//collection//hash_collection.nit:456 */
2524 ATTR_standard___collection___hash_collection___HashNode____key(fra.me.REG[2]) = fra.me.REG[3];
2525 stack_frame_head = fra.me.prev;
2526 init_table[itpos8] = 1;
2527 return;
2528 }
2529 val_t standard___collection___hash_collection___HashSetIterator___is_ok(val_t p0){
2530 struct {struct stack_frame_t me;} fra;
2531 val_t REGB0;
2532 val_t REGB1;
2533 val_t tmp;
2534 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2535 fra.me.file = LOCATE_standard___collection___hash_collection;
2536 fra.me.line = 462;
2537 fra.me.meth = LOCATE_standard___collection___hash_collection___HashSetIterator___is_ok;
2538 fra.me.has_broke = 0;
2539 fra.me.REG_size = 1;
2540 fra.me.REG[0] = NIT_NULL;
2541 fra.me.REG[0] = p0;
2542 /* ./../lib/standard//collection//hash_collection.nit:462 */
2543 fra.me.REG[0] = ATTR_standard___collection___hash_collection___HashSetIterator____node(fra.me.REG[0]);
2544 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
2545 if (UNTAG_Bool(REGB0)) {
2546 } else {
2547 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
2548 if (UNTAG_Bool(REGB1)) {
2549 REGB1 = TAG_Bool(false);
2550 REGB0 = REGB1;
2551 } else {
2552 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], NIT_NULL);
2553 REGB0 = REGB1;
2554 }
2555 }
2556 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
2557 goto label1;
2558 label1: while(0);
2559 stack_frame_head = fra.me.prev;
2560 return REGB0;
2561 }
2562 val_t standard___collection___hash_collection___HashSetIterator___item(val_t p0){
2563 struct {struct stack_frame_t me;} fra;
2564 val_t REGB0;
2565 val_t tmp;
2566 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2567 fra.me.file = LOCATE_standard___collection___hash_collection;
2568 fra.me.line = 464;
2569 fra.me.meth = LOCATE_standard___collection___hash_collection___HashSetIterator___item;
2570 fra.me.has_broke = 0;
2571 fra.me.REG_size = 1;
2572 fra.me.REG[0] = NIT_NULL;
2573 fra.me.REG[0] = p0;
2574 /* ./../lib/standard//collection//hash_collection.nit:466 */
2575 REGB0 = CALL_standard___collection___abstract_collection___Iterator___is_ok(fra.me.REG[0])(fra.me.REG[0]);
2576 if (UNTAG_Bool(REGB0)) {
2577 } else {
2578 nit_abort("Assert failed", NULL, LOCATE_standard___collection___hash_collection, 466);
2579 }
2580 /* ./../lib/standard//collection//hash_collection.nit:467 */
2581 fra.me.REG[0] = ATTR_standard___collection___hash_collection___HashSetIterator____node(fra.me.REG[0]);
2582 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
2583 if (UNTAG_Bool(REGB0)) {
2584 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___hash_collection, 467);
2585 }
2586 REGB0 = TAG_Bool(ATTR_standard___collection___hash_collection___HashNode____key(fra.me.REG[0])!=NIT_NULL);
2587 if (UNTAG_Bool(REGB0)) {
2588 } else {
2589 nit_abort("Uninitialized attribute %s", "_key", LOCATE_standard___collection___hash_collection, 467);
2590 }
2591 fra.me.REG[0] = ATTR_standard___collection___hash_collection___HashNode____key(fra.me.REG[0]);
2592 goto label1;
2593 label1: while(0);
2594 stack_frame_head = fra.me.prev;
2595 return fra.me.REG[0];
2596 }
2597 void standard___collection___hash_collection___HashSetIterator___next(val_t p0){
2598 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
2599 val_t REGB0;
2600 val_t tmp;
2601 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2602 fra.me.file = LOCATE_standard___collection___hash_collection;
2603 fra.me.line = 470;
2604 fra.me.meth = LOCATE_standard___collection___hash_collection___HashSetIterator___next;
2605 fra.me.has_broke = 0;
2606 fra.me.REG_size = 2;
2607 fra.me.REG[0] = NIT_NULL;
2608 fra.me.REG[1] = NIT_NULL;
2609 fra.me.REG[0] = p0;
2610 /* ./../lib/standard//collection//hash_collection.nit:472 */
2611 REGB0 = CALL_standard___collection___abstract_collection___Iterator___is_ok(fra.me.REG[0])(fra.me.REG[0]);
2612 if (UNTAG_Bool(REGB0)) {
2613 } else {
2614 nit_abort("Assert failed", NULL, LOCATE_standard___collection___hash_collection, 472);
2615 }
2616 /* ./../lib/standard//collection//hash_collection.nit:473 */
2617 fra.me.REG[1] = ATTR_standard___collection___hash_collection___HashSetIterator____node(fra.me.REG[0]);
2618 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
2619 if (UNTAG_Bool(REGB0)) {
2620 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___hash_collection, 473);
2621 }
2622 fra.me.REG[1] = ATTR_standard___collection___hash_collection___HashNode____next_item(fra.me.REG[1]);
2623 ATTR_standard___collection___hash_collection___HashSetIterator____node(fra.me.REG[0]) = fra.me.REG[1];
2624 stack_frame_head = fra.me.prev;
2625 return;
2626 }
2627 void standard___collection___hash_collection___HashSetIterator___init(val_t p0, val_t p1, int* init_table){
2628 int itpos9 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_standard___collection___hash_collection___HashSetIterator].i;
2629 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
2630 val_t tmp;
2631 if (init_table[itpos9]) return;
2632 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2633 fra.me.file = LOCATE_standard___collection___hash_collection;
2634 fra.me.line = 482;
2635 fra.me.meth = LOCATE_standard___collection___hash_collection___HashSetIterator___init;
2636 fra.me.has_broke = 0;
2637 fra.me.REG_size = 2;
2638 fra.me.REG[0] = NIT_NULL;
2639 fra.me.REG[1] = NIT_NULL;
2640 fra.me.REG[0] = p0;
2641 fra.me.REG[1] = p1;
2642 /* ./../lib/standard//collection//hash_collection.nit:484 */
2643 ATTR_standard___collection___hash_collection___HashSetIterator____set(fra.me.REG[0]) = fra.me.REG[1];
2644 /* ./../lib/standard//collection//hash_collection.nit:485 */
2645 fra.me.REG[1] = ATTR_standard___collection___hash_collection___HashCollection____first_item(fra.me.REG[1]);
2646 ATTR_standard___collection___hash_collection___HashSetIterator____node(fra.me.REG[0]) = fra.me.REG[1];
2647 stack_frame_head = fra.me.prev;
2648 init_table[itpos9] = 1;
2649 return;
2650 }