Merge branch 'nitdoc2' into wip
[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 = 26;
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:26 */
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 = 35;
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:38 */
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, 38);
41 }
42 REGB1 = ATTR_standard___collection___hash_collection___HashCollection____capacity(fra.me.REG[0]);
43 /* ./../lib/standard//kernel.nit:223 */
44 REGB1 = TAG_Int(UNTAG_Int(REGB0)%UNTAG_Int(REGB1));
45 /* ./../lib/standard//collection//hash_collection.nit:39 */
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:215 */
53 REGB0 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB0));
54 /* ./../lib/standard//collection//hash_collection.nit:39 */
55 if (UNTAG_Bool(REGB0)) {
56 /* ./../lib/standard//kernel.nit:219 */
57 REGB0 = TAG_Int(-UNTAG_Int(REGB1));
58 /* ./../lib/standard//collection//hash_collection.nit:39 */
59 REGB1 = REGB0;
60 }
61 /* ./../lib/standard//collection//hash_collection.nit:40 */
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 = 43;
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:47 */
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:49 */
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:50 */
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:51 */
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:52 */
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 = 55;
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:58 */
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, 58);
127 }
128 /* ./../lib/standard//collection//array.nit:652 */
129 fra.me.REG[0] = ((Nit_NativeArray)fra.me.REG[0])->val[UNTAG_Int(REGB0)];
130 /* ./../lib/standard//collection//hash_collection.nit:59 */
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:60 */
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, 60);
151 }
152 fra.me.REG[2] = ATTR_standard___collection___hash_collection___HashNode____key(fra.me.REG[0]);
153 /* ./../lib/standard//collection//hash_collection.nit:61 */
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:62 */
168 goto label1;
169 }
170 /* ./../lib/standard//collection//hash_collection.nit:64 */
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:59 */
175 goto label1;
176 }
177 }
178 label1: while(0);
179 /* ./../lib/standard//collection//hash_collection.nit:66 */
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 = 69;
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:73 */
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:74 */
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:76 */
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, 76);
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:78 */
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:79 */
234 ATTR_standard___collection___hash_collection___HashNode____next_item(fra.me.REG[1]) = NIT_NULL;
235 /* ./../lib/standard//collection//hash_collection.nit:80 */
236 ATTR_standard___collection___hash_collection___HashCollection____last_item(fra.me.REG[0]) = fra.me.REG[1];
237 /* ./../lib/standard//collection//hash_collection.nit:83 */
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, 83);
242 }
243 /* ./../lib/standard//collection//array.nit:652 */
244 fra.me.REG[2] = ((Nit_NativeArray)fra.me.REG[2])->val[UNTAG_Int(REGB0)];
245 /* ./../lib/standard//collection//hash_collection.nit:84 */
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, 84);
250 }
251 /* ./../lib/standard//collection//array.nit:653 */
252 ((Nit_NativeArray)fra.me.REG[3])->val[UNTAG_Int(REGB0)]=fra.me.REG[1];
253 /* ./../lib/standard//collection//hash_collection.nit:85 */
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:86 */
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:88 */
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, 88);
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:89 */
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:92 */
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, 92);
287 }
288 REGB0 = ATTR_standard___collection___hash_collection___HashCollection____length(fra.me.REG[0]);
289 /* ./../lib/standard//collection//hash_collection.nit:93 */
290 REGB1 = TAG_Int(1);
291 /* ./../lib/standard//kernel.nit:218 */
292 REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
293 /* ./../lib/standard//collection//hash_collection.nit:93 */
294 ATTR_standard___collection___hash_collection___HashCollection____length(fra.me.REG[0]) = REGB1;
295 /* ./../lib/standard//collection//hash_collection.nit:94 */
296 REGB1 = TAG_Int(5);
297 /* ./../lib/standard//kernel.nit:218 */
298 REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
299 /* ./../lib/standard//collection//hash_collection.nit:94 */
300 REGB2 = TAG_Int(3);
301 /* ./../lib/standard//kernel.nit:221 */
302 REGB2 = TAG_Int(UNTAG_Int(REGB1)*UNTAG_Int(REGB2));
303 /* ./../lib/standard//collection//hash_collection.nit:94 */
304 REGB1 = TAG_Int(2);
305 /* ./../lib/standard//kernel.nit:222 */
306 REGB1 = TAG_Int(UNTAG_Int(REGB2)/UNTAG_Int(REGB1));
307 /* ./../lib/standard//collection//hash_collection.nit:94 */
308 REGB0 = REGB1;
309 /* ./../lib/standard//collection//hash_collection.nit:95 */
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, 95);
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:216 */
322 REGB1 = TAG_Bool(UNTAG_Int(REGB0)>=UNTAG_Int(REGB1));
323 /* ./../lib/standard//collection//hash_collection.nit:95 */
324 if (UNTAG_Bool(REGB1)) {
325 /* ./../lib/standard//collection//hash_collection.nit:96 */
326 REGB1 = TAG_Int(2);
327 /* ./../lib/standard//kernel.nit:221 */
328 REGB1 = TAG_Int(UNTAG_Int(REGB0)*UNTAG_Int(REGB1));
329 /* ./../lib/standard//collection//hash_collection.nit:96 */
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 = 100;
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:103 */
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:104 */
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:105 */
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:108 */
375 fra.me.REG[2] = ATTR_standard___collection___hash_collection___HashNode____prev_item(fra.me.REG[1]);
376 /* ./../lib/standard//collection//hash_collection.nit:109 */
377 fra.me.REG[3] = ATTR_standard___collection___hash_collection___HashNode____next_item(fra.me.REG[1]);
378 /* ./../lib/standard//collection//hash_collection.nit:110 */
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:111 */
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:113 */
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:115 */
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:116 */
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:118 */
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:122 */
421 REGB1 = ATTR_standard___collection___hash_collection___HashCollection____length(fra.me.REG[0]);
422 REGB2 = TAG_Int(1);
423 /* ./../lib/standard//kernel.nit:220 */
424 REGB2 = TAG_Int(UNTAG_Int(REGB1)-UNTAG_Int(REGB2));
425 /* ./../lib/standard//collection//hash_collection.nit:122 */
426 ATTR_standard___collection___hash_collection___HashCollection____length(fra.me.REG[0]) = REGB2;
427 /* ./../lib/standard//collection//hash_collection.nit:123 */
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:124 */
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:125 */
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:126 */
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:128 */
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, 128);
456 }
457 /* ./../lib/standard//collection//array.nit:653 */
458 ((Nit_NativeArray)fra.me.REG[1])->val[UNTAG_Int(REGB0)]=fra.me.REG[3];
459 }
460 /* ./../lib/standard//collection//hash_collection.nit:130 */
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:131 */
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:134 */
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 = 137;
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:139 */
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, 139);
504 }
505 REGB0 = ATTR_standard___collection___hash_collection___HashCollection____capacity(fra.me.REG[0]);
506 REGB1 = TAG_Int(1);
507 /* ./../lib/standard//kernel.nit:220 */
508 REGB1 = TAG_Int(UNTAG_Int(REGB0)-UNTAG_Int(REGB1));
509 /* ./../lib/standard//collection//hash_collection.nit:140 */
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:216 */
518 REGB0 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB0));
519 /* ./../lib/standard//collection//hash_collection.nit:140 */
520 if (UNTAG_Bool(REGB0)) {
521 /* ./../lib/standard//collection//hash_collection.nit:141 */
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, 141);
526 }
527 /* ./../lib/standard//collection//array.nit:653 */
528 ((Nit_NativeArray)fra.me.REG[1])->val[UNTAG_Int(REGB1)]=NIT_NULL;
529 /* ./../lib/standard//collection//hash_collection.nit:142 */
530 REGB0 = TAG_Int(1);
531 /* ./../lib/standard//kernel.nit:220 */
532 REGB0 = TAG_Int(UNTAG_Int(REGB1)-UNTAG_Int(REGB0));
533 /* ./../lib/standard//collection//hash_collection.nit:142 */
534 REGB1 = REGB0;
535 } else {
536 /* ./../lib/standard//collection//hash_collection.nit:140 */
537 goto label1;
538 }
539 }
540 label1: while(0);
541 /* ./../lib/standard//collection//hash_collection.nit:144 */
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:145 */
545 ATTR_standard___collection___hash_collection___HashCollection____first_item(fra.me.REG[0]) = NIT_NULL;
546 /* ./../lib/standard//collection//hash_collection.nit:146 */
547 ATTR_standard___collection___hash_collection___HashCollection____last_item(fra.me.REG[0]) = NIT_NULL;
548 /* ./../lib/standard//collection//hash_collection.nit:147 */
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 = 150;
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:152 */
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, 152);
577 }
578 REGB1 = ATTR_standard___collection___hash_collection___HashCollection____capacity(fra.me.REG[0]);
579 /* ./../lib/standard//collection//hash_collection.nit:154 */
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, 154);
584 }
585 REGB2 = ATTR_standard___collection___hash_collection___HashCollection____length(fra.me.REG[0]);
586 REGB3 = TAG_Int(1);
587 /* ./../lib/standard//kernel.nit:218 */
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:215 */
595 REGB3 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB3));
596 /* ./../lib/standard//collection//hash_collection.nit:154 */
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, 154);
602 }
603 REGB3 = ATTR_standard___collection___hash_collection___HashCollection____length(fra.me.REG[0]);
604 REGB2 = TAG_Int(1);
605 /* ./../lib/standard//kernel.nit:218 */
606 REGB2 = TAG_Int(UNTAG_Int(REGB3)+UNTAG_Int(REGB2));
607 /* ./../lib/standard//collection//hash_collection.nit:154 */
608 REGB0 = REGB2;
609 }
610 /* ./../lib/standard//collection//hash_collection.nit:155 */
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, 155);
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:214 */
623 REGB2 = TAG_Bool(UNTAG_Int(REGB0)<=UNTAG_Int(REGB2));
624 /* ./../lib/standard//collection//hash_collection.nit:155 */
625 if (UNTAG_Bool(REGB2)) {
626 goto label1;
627 }
628 /* ./../lib/standard//collection//hash_collection.nit:156 */
629 ATTR_standard___collection___hash_collection___HashCollection____capacity(fra.me.REG[0]) = REGB0;
630 /* ./../lib/standard//collection//hash_collection.nit:157 */
631 ATTR_standard___collection___hash_collection___HashCollection____last_accessed_key(fra.me.REG[0]) = NIT_NULL;
632 /* ./../lib/standard//collection//array.nit:646 */
633 fra.me.REG[1] = NEW_NativeArray(UNTAG_Int(REGB0), sizeof(val_t));
634 /* ./../lib/standard//collection//hash_collection.nit:161 */
635 ATTR_standard___collection___hash_collection___HashCollection____array(fra.me.REG[0]) = fra.me.REG[1];
636 /* ./../lib/standard//collection//hash_collection.nit:164 */
637 REGB2 = TAG_Int(1);
638 /* ./../lib/standard//kernel.nit:220 */
639 REGB2 = TAG_Int(UNTAG_Int(REGB0)-UNTAG_Int(REGB2));
640 /* ./../lib/standard//collection//hash_collection.nit:165 */
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:216 */
649 REGB0 = TAG_Bool(UNTAG_Int(REGB2)>=UNTAG_Int(REGB0));
650 /* ./../lib/standard//collection//hash_collection.nit:165 */
651 if (UNTAG_Bool(REGB0)) {
652 /* ./../lib/standard//collection//array.nit:653 */
653 ((Nit_NativeArray)fra.me.REG[1])->val[UNTAG_Int(REGB2)]=NIT_NULL;
654 /* ./../lib/standard//collection//hash_collection.nit:167 */
655 REGB0 = TAG_Int(1);
656 /* ./../lib/standard//kernel.nit:220 */
657 REGB0 = TAG_Int(UNTAG_Int(REGB2)-UNTAG_Int(REGB0));
658 /* ./../lib/standard//collection//hash_collection.nit:167 */
659 REGB2 = REGB0;
660 } else {
661 /* ./../lib/standard//collection//hash_collection.nit:165 */
662 goto label2;
663 }
664 }
665 label2: while(0);
666 /* ./../lib/standard//collection//hash_collection.nit:170 */
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, 170);
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:214 */
679 REGB1 = TAG_Bool(UNTAG_Int(REGB2)<=UNTAG_Int(REGB1));
680 /* ./../lib/standard//collection//hash_collection.nit:170 */
681 if (UNTAG_Bool(REGB1)) {
682 goto label1;
683 }
684 /* ./../lib/standard//collection//hash_collection.nit:173 */
685 fra.me.REG[2] = ATTR_standard___collection___hash_collection___HashCollection____first_item(fra.me.REG[0]);
686 /* ./../lib/standard//collection//hash_collection.nit:174 */
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:175 */
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, 175);
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:652 */
711 fra.me.REG[3] = ((Nit_NativeArray)fra.me.REG[1])->val[UNTAG_Int(REGB1)];
712 /* ./../lib/standard//collection//array.nit:653 */
713 ((Nit_NativeArray)fra.me.REG[1])->val[UNTAG_Int(REGB1)]=fra.me.REG[2];
714 /* ./../lib/standard//collection//hash_collection.nit:179 */
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:180 */
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:181 */
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:174 */
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 = 189;
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:189 */
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 = 189;
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:189 */
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 = 190;
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:190 */
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 = 190;
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:190 */
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 = 193;
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:195 */
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 = 203;
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:205 */
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:206 */
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:207 */
882 nit_abort("Aborted", NULL, LOCATE_standard___collection___hash_collection, 207);
883 } else {
884 /* ./../lib/standard//collection//hash_collection.nit:209 */
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___has_key(val_t p0, val_t p1){
893 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
894 val_t REGB0;
895 val_t REGB1;
896 val_t tmp;
897 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
898 fra.me.file = LOCATE_standard___collection___hash_collection;
899 fra.me.line = 213;
900 fra.me.meth = LOCATE_standard___collection___hash_collection___HashMap___has_key;
901 fra.me.has_broke = 0;
902 fra.me.REG_size = 2;
903 fra.me.REG[0] = NIT_NULL;
904 fra.me.REG[1] = NIT_NULL;
905 fra.me.REG[0] = p0;
906 fra.me.REG[1] = p1;
907 /* ./../lib/standard//collection//hash_collection.nit:213 */
908 fra.me.REG[1] = CALL_standard___collection___hash_collection___HashCollection___node_at(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
909 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
910 if (UNTAG_Bool(REGB0)) {
911 } else {
912 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
913 if (UNTAG_Bool(REGB1)) {
914 REGB1 = TAG_Bool(false);
915 REGB0 = REGB1;
916 } else {
917 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
918 REGB0 = REGB1;
919 }
920 }
921 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
922 goto label1;
923 label1: while(0);
924 stack_frame_head = fra.me.prev;
925 return REGB0;
926 }
927 val_t standard___collection___hash_collection___HashMap___iterator(val_t p0){
928 struct {struct stack_frame_t me;} fra;
929 val_t tmp;
930 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
931 fra.me.file = LOCATE_standard___collection___hash_collection;
932 fra.me.line = 215;
933 fra.me.meth = LOCATE_standard___collection___hash_collection___HashMap___iterator;
934 fra.me.has_broke = 0;
935 fra.me.REG_size = 1;
936 fra.me.REG[0] = NIT_NULL;
937 fra.me.REG[0] = p0;
938 /* ./../lib/standard//collection//hash_collection.nit:215 */
939 fra.me.REG[0] = NEW_HashMapIterator_standard___collection___hash_collection___HashMapIterator___init(fra.me.REG[0]);
940 goto label1;
941 label1: while(0);
942 stack_frame_head = fra.me.prev;
943 return fra.me.REG[0];
944 }
945 void standard___collection___hash_collection___HashMap___iterate(val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
946 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
947 val_t REGB0;
948 val_t REGB1;
949 fun_t CREG[1];
950 val_t tmp;
951 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
952 fra.me.file = LOCATE_standard___collection___hash_collection;
953 fra.me.line = 217;
954 fra.me.meth = LOCATE_standard___collection___hash_collection___HashMap___iterate;
955 fra.me.has_broke = 0;
956 fra.me.REG_size = 2;
957 fra.me.REG[0] = NIT_NULL;
958 fra.me.REG[1] = NIT_NULL;
959 fra.me.closure_ctx = closctx_param;
960 fra.me.closure_funs = CREG;
961 fra.me.REG[0] = p0;
962 CREG[0] = clos_fun0;
963 /* ./../lib/standard//collection//hash_collection.nit:220 */
964 fra.me.REG[0] = ATTR_standard___collection___hash_collection___HashCollection____first_item(fra.me.REG[0]);
965 /* ./../lib/standard//collection//hash_collection.nit:221 */
966 while(1) {
967 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
968 if (UNTAG_Bool(REGB0)) {
969 } else {
970 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
971 if (UNTAG_Bool(REGB1)) {
972 REGB1 = TAG_Bool(false);
973 REGB0 = REGB1;
974 } else {
975 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], NIT_NULL);
976 REGB0 = REGB1;
977 }
978 }
979 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
980 if (UNTAG_Bool(REGB0)) {
981 /* ./../lib/standard//collection//hash_collection.nit:222 */
982 fra.me.REG[1] = ATTR_standard___collection___hash_collection___HashMapNode____value(fra.me.REG[0]);
983 ((void (*)(struct stack_frame_t *, val_t))(CREG[0]))(closctx_param, fra.me.REG[1]);
984 if (closctx_param->has_broke) {
985 goto label1;
986 }
987 /* ./../lib/standard//collection//hash_collection.nit:223 */
988 fra.me.REG[1] = ATTR_standard___collection___hash_collection___HashNode____next_item(fra.me.REG[0]);
989 fra.me.REG[0] = fra.me.REG[1];
990 } else {
991 /* ./../lib/standard//collection//hash_collection.nit:221 */
992 goto label2;
993 }
994 }
995 label2: while(0);
996 label1: while(0);
997 stack_frame_head = fra.me.prev;
998 return;
999 }
1000 val_t standard___collection___hash_collection___HashMap___first(val_t p0){
1001 struct {struct stack_frame_t me;} fra;
1002 val_t REGB0;
1003 val_t REGB1;
1004 val_t REGB2;
1005 val_t tmp;
1006 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1007 fra.me.file = LOCATE_standard___collection___hash_collection;
1008 fra.me.line = 227;
1009 fra.me.meth = LOCATE_standard___collection___hash_collection___HashMap___first;
1010 fra.me.has_broke = 0;
1011 fra.me.REG_size = 1;
1012 fra.me.REG[0] = NIT_NULL;
1013 fra.me.REG[0] = p0;
1014 /* ./../lib/standard//collection//hash_collection.nit:229 */
1015 REGB0 = TAG_Bool(ATTR_standard___collection___hash_collection___HashCollection____length(fra.me.REG[0])!=NIT_NULL);
1016 if (UNTAG_Bool(REGB0)) {
1017 } else {
1018 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___hash_collection, 229);
1019 }
1020 REGB0 = ATTR_standard___collection___hash_collection___HashCollection____length(fra.me.REG[0]);
1021 REGB1 = TAG_Int(0);
1022 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
1023 if (UNTAG_Bool(REGB2)) {
1024 } else {
1025 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
1026 }
1027 /* ./../lib/standard//kernel.nit:217 */
1028 REGB1 = TAG_Bool(UNTAG_Int(REGB0)>UNTAG_Int(REGB1));
1029 /* ./../lib/standard//collection//hash_collection.nit:229 */
1030 if (UNTAG_Bool(REGB1)) {
1031 } else {
1032 nit_abort("Assert failed", NULL, LOCATE_standard___collection___hash_collection, 229);
1033 }
1034 /* ./../lib/standard//collection//hash_collection.nit:230 */
1035 fra.me.REG[0] = ATTR_standard___collection___hash_collection___HashCollection____first_item(fra.me.REG[0]);
1036 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
1037 if (UNTAG_Bool(REGB1)) {
1038 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___hash_collection, 230);
1039 }
1040 fra.me.REG[0] = ATTR_standard___collection___hash_collection___HashMapNode____value(fra.me.REG[0]);
1041 goto label1;
1042 label1: while(0);
1043 stack_frame_head = fra.me.prev;
1044 return fra.me.REG[0];
1045 }
1046 val_t standard___collection___hash_collection___HashMap___length(val_t p0){
1047 struct {struct stack_frame_t me;} fra;
1048 val_t REGB0;
1049 val_t tmp;
1050 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1051 fra.me.file = LOCATE_standard___collection___hash_collection;
1052 fra.me.line = 233;
1053 fra.me.meth = LOCATE_standard___collection___hash_collection___HashMap___length;
1054 fra.me.has_broke = 0;
1055 fra.me.REG_size = 1;
1056 fra.me.REG[0] = NIT_NULL;
1057 fra.me.REG[0] = p0;
1058 /* ./../lib/standard//collection//hash_collection.nit:233 */
1059 REGB0 = TAG_Bool(ATTR_standard___collection___hash_collection___HashCollection____length(fra.me.REG[0])!=NIT_NULL);
1060 if (UNTAG_Bool(REGB0)) {
1061 } else {
1062 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___hash_collection, 233);
1063 }
1064 REGB0 = ATTR_standard___collection___hash_collection___HashCollection____length(fra.me.REG[0]);
1065 goto label1;
1066 label1: while(0);
1067 stack_frame_head = fra.me.prev;
1068 return REGB0;
1069 }
1070 val_t standard___collection___hash_collection___HashMap___is_empty(val_t p0){
1071 struct {struct stack_frame_t me;} fra;
1072 val_t REGB0;
1073 val_t REGB1;
1074 val_t REGB2;
1075 val_t tmp;
1076 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1077 fra.me.file = LOCATE_standard___collection___hash_collection;
1078 fra.me.line = 235;
1079 fra.me.meth = LOCATE_standard___collection___hash_collection___HashMap___is_empty;
1080 fra.me.has_broke = 0;
1081 fra.me.REG_size = 1;
1082 fra.me.REG[0] = NIT_NULL;
1083 fra.me.REG[0] = p0;
1084 /* ./../lib/standard//collection//hash_collection.nit:235 */
1085 REGB0 = TAG_Bool(ATTR_standard___collection___hash_collection___HashCollection____length(fra.me.REG[0])!=NIT_NULL);
1086 if (UNTAG_Bool(REGB0)) {
1087 } else {
1088 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___hash_collection, 235);
1089 }
1090 REGB0 = ATTR_standard___collection___hash_collection___HashCollection____length(fra.me.REG[0]);
1091 REGB1 = TAG_Int(0);
1092 REGB2 = TAG_Bool(IS_EQUAL_OO(REGB0,REGB1));
1093 if (UNTAG_Bool(REGB2)) {
1094 } else {
1095 /* ./../lib/standard//kernel.nit:210 */
1096 REGB1 = TAG_Bool((REGB0)==(REGB1));
1097 /* ./../lib/standard//collection//hash_collection.nit:235 */
1098 REGB2 = REGB1;
1099 }
1100 goto label1;
1101 label1: while(0);
1102 stack_frame_head = fra.me.prev;
1103 return REGB2;
1104 }
1105 val_t standard___collection___hash_collection___HashMap___count(val_t p0, val_t p1){
1106 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
1107 val_t REGB0;
1108 val_t REGB1;
1109 val_t REGB2;
1110 val_t tmp;
1111 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1112 fra.me.file = LOCATE_standard___collection___hash_collection;
1113 fra.me.line = 237;
1114 fra.me.meth = LOCATE_standard___collection___hash_collection___HashMap___count;
1115 fra.me.has_broke = 0;
1116 fra.me.REG_size = 3;
1117 fra.me.REG[0] = NIT_NULL;
1118 fra.me.REG[1] = NIT_NULL;
1119 fra.me.REG[2] = NIT_NULL;
1120 fra.me.REG[0] = p0;
1121 fra.me.REG[1] = p1;
1122 /* ./../lib/standard//collection//hash_collection.nit:239 */
1123 REGB0 = TAG_Int(0);
1124 /* ./../lib/standard//collection//hash_collection.nit:240 */
1125 fra.me.REG[0] = ATTR_standard___collection___hash_collection___HashCollection____first_item(fra.me.REG[0]);
1126 /* ./../lib/standard//collection//hash_collection.nit:241 */
1127 while(1) {
1128 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
1129 if (UNTAG_Bool(REGB1)) {
1130 } else {
1131 REGB2 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
1132 if (UNTAG_Bool(REGB2)) {
1133 REGB2 = TAG_Bool(false);
1134 REGB1 = REGB2;
1135 } else {
1136 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], NIT_NULL);
1137 REGB1 = REGB2;
1138 }
1139 }
1140 REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
1141 if (UNTAG_Bool(REGB1)) {
1142 /* ./../lib/standard//collection//hash_collection.nit:242 */
1143 fra.me.REG[2] = ATTR_standard___collection___hash_collection___HashMapNode____value(fra.me.REG[0]);
1144 REGB1 = TAG_Bool(IS_EQUAL_NN(fra.me.REG[2],fra.me.REG[1]));
1145 if (UNTAG_Bool(REGB1)) {
1146 } else {
1147 REGB2 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
1148 if (UNTAG_Bool(REGB2)) {
1149 REGB2 = TAG_Bool(false);
1150 REGB1 = REGB2;
1151 } else {
1152 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
1153 REGB1 = REGB2;
1154 }
1155 }
1156 if (UNTAG_Bool(REGB1)) {
1157 REGB1 = TAG_Int(1);
1158 /* ./../lib/standard//kernel.nit:218 */
1159 REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
1160 /* ./../lib/standard//collection//hash_collection.nit:242 */
1161 REGB0 = REGB1;
1162 }
1163 /* ./../lib/standard//collection//hash_collection.nit:243 */
1164 fra.me.REG[2] = ATTR_standard___collection___hash_collection___HashNode____next_item(fra.me.REG[0]);
1165 fra.me.REG[0] = fra.me.REG[2];
1166 } else {
1167 /* ./../lib/standard//collection//hash_collection.nit:241 */
1168 goto label1;
1169 }
1170 }
1171 label1: while(0);
1172 /* ./../lib/standard//collection//hash_collection.nit:245 */
1173 goto label2;
1174 label2: while(0);
1175 stack_frame_head = fra.me.prev;
1176 return REGB0;
1177 }
1178 val_t standard___collection___hash_collection___HashMap___has(val_t p0, val_t p1){
1179 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
1180 val_t REGB0;
1181 val_t REGB1;
1182 val_t tmp;
1183 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1184 fra.me.file = LOCATE_standard___collection___hash_collection;
1185 fra.me.line = 248;
1186 fra.me.meth = LOCATE_standard___collection___hash_collection___HashMap___has;
1187 fra.me.has_broke = 0;
1188 fra.me.REG_size = 3;
1189 fra.me.REG[0] = NIT_NULL;
1190 fra.me.REG[1] = NIT_NULL;
1191 fra.me.REG[2] = NIT_NULL;
1192 fra.me.REG[0] = p0;
1193 fra.me.REG[1] = p1;
1194 /* ./../lib/standard//collection//hash_collection.nit:250 */
1195 fra.me.REG[0] = ATTR_standard___collection___hash_collection___HashCollection____first_item(fra.me.REG[0]);
1196 /* ./../lib/standard//collection//hash_collection.nit:251 */
1197 while(1) {
1198 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
1199 if (UNTAG_Bool(REGB0)) {
1200 } else {
1201 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
1202 if (UNTAG_Bool(REGB1)) {
1203 REGB1 = TAG_Bool(false);
1204 REGB0 = REGB1;
1205 } else {
1206 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], NIT_NULL);
1207 REGB0 = REGB1;
1208 }
1209 }
1210 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
1211 if (UNTAG_Bool(REGB0)) {
1212 /* ./../lib/standard//collection//hash_collection.nit:252 */
1213 fra.me.REG[2] = ATTR_standard___collection___hash_collection___HashMapNode____value(fra.me.REG[0]);
1214 REGB0 = TAG_Bool(IS_EQUAL_NN(fra.me.REG[2],fra.me.REG[1]));
1215 if (UNTAG_Bool(REGB0)) {
1216 } else {
1217 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
1218 if (UNTAG_Bool(REGB1)) {
1219 REGB1 = TAG_Bool(false);
1220 REGB0 = REGB1;
1221 } else {
1222 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
1223 REGB0 = REGB1;
1224 }
1225 }
1226 if (UNTAG_Bool(REGB0)) {
1227 REGB0 = TAG_Bool(true);
1228 goto label1;
1229 }
1230 /* ./../lib/standard//collection//hash_collection.nit:253 */
1231 fra.me.REG[2] = ATTR_standard___collection___hash_collection___HashNode____next_item(fra.me.REG[0]);
1232 fra.me.REG[0] = fra.me.REG[2];
1233 } else {
1234 /* ./../lib/standard//collection//hash_collection.nit:251 */
1235 goto label2;
1236 }
1237 }
1238 label2: while(0);
1239 /* ./../lib/standard//collection//hash_collection.nit:255 */
1240 REGB1 = TAG_Bool(false);
1241 REGB0 = REGB1;
1242 goto label1;
1243 label1: while(0);
1244 stack_frame_head = fra.me.prev;
1245 return REGB0;
1246 }
1247 val_t standard___collection___hash_collection___HashMap___has_only(val_t p0, val_t p1){
1248 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
1249 val_t REGB0;
1250 val_t REGB1;
1251 val_t tmp;
1252 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1253 fra.me.file = LOCATE_standard___collection___hash_collection;
1254 fra.me.line = 258;
1255 fra.me.meth = LOCATE_standard___collection___hash_collection___HashMap___has_only;
1256 fra.me.has_broke = 0;
1257 fra.me.REG_size = 3;
1258 fra.me.REG[0] = NIT_NULL;
1259 fra.me.REG[1] = NIT_NULL;
1260 fra.me.REG[2] = NIT_NULL;
1261 fra.me.REG[0] = p0;
1262 fra.me.REG[1] = p1;
1263 /* ./../lib/standard//collection//hash_collection.nit:260 */
1264 fra.me.REG[0] = ATTR_standard___collection___hash_collection___HashCollection____first_item(fra.me.REG[0]);
1265 /* ./../lib/standard//collection//hash_collection.nit:261 */
1266 while(1) {
1267 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
1268 if (UNTAG_Bool(REGB0)) {
1269 } else {
1270 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
1271 if (UNTAG_Bool(REGB1)) {
1272 REGB1 = TAG_Bool(false);
1273 REGB0 = REGB1;
1274 } else {
1275 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], NIT_NULL);
1276 REGB0 = REGB1;
1277 }
1278 }
1279 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
1280 if (UNTAG_Bool(REGB0)) {
1281 /* ./../lib/standard//collection//hash_collection.nit:262 */
1282 fra.me.REG[2] = ATTR_standard___collection___hash_collection___HashMapNode____value(fra.me.REG[0]);
1283 REGB0 = TAG_Bool(IS_EQUAL_NN(fra.me.REG[2],fra.me.REG[1]));
1284 if (UNTAG_Bool(REGB0)) {
1285 } else {
1286 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
1287 if (UNTAG_Bool(REGB1)) {
1288 REGB1 = TAG_Bool(false);
1289 REGB0 = REGB1;
1290 } else {
1291 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
1292 REGB0 = REGB1;
1293 }
1294 }
1295 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
1296 if (UNTAG_Bool(REGB0)) {
1297 REGB0 = TAG_Bool(false);
1298 goto label1;
1299 }
1300 /* ./../lib/standard//collection//hash_collection.nit:263 */
1301 fra.me.REG[2] = ATTR_standard___collection___hash_collection___HashNode____next_item(fra.me.REG[0]);
1302 fra.me.REG[0] = fra.me.REG[2];
1303 } else {
1304 /* ./../lib/standard//collection//hash_collection.nit:261 */
1305 goto label2;
1306 }
1307 }
1308 label2: while(0);
1309 /* ./../lib/standard//collection//hash_collection.nit:265 */
1310 REGB1 = TAG_Bool(true);
1311 REGB0 = REGB1;
1312 goto label1;
1313 label1: while(0);
1314 stack_frame_head = fra.me.prev;
1315 return REGB0;
1316 }
1317 void standard___collection___hash_collection___HashMap_____braeq(val_t p0, val_t p1, val_t p2){
1318 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
1319 val_t REGB0;
1320 val_t REGB1;
1321 val_t REGB2;
1322 val_t tmp;
1323 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1324 fra.me.file = LOCATE_standard___collection___hash_collection;
1325 fra.me.line = 268;
1326 fra.me.meth = LOCATE_standard___collection___hash_collection___HashMap_____braeq;
1327 fra.me.has_broke = 0;
1328 fra.me.REG_size = 4;
1329 fra.me.REG[0] = NIT_NULL;
1330 fra.me.REG[1] = NIT_NULL;
1331 fra.me.REG[2] = NIT_NULL;
1332 fra.me.REG[3] = NIT_NULL;
1333 fra.me.REG[0] = p0;
1334 fra.me.REG[1] = p1;
1335 fra.me.REG[2] = p2;
1336 /* ./../lib/standard//collection//hash_collection.nit:270 */
1337 REGB0 = CALL_standard___collection___hash_collection___HashCollection___index_at(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
1338 /* ./../lib/standard//collection//hash_collection.nit:271 */
1339 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]);
1340 /* ./../lib/standard//collection//hash_collection.nit:272 */
1341 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
1342 if (UNTAG_Bool(REGB1)) {
1343 } else {
1344 REGB2 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
1345 if (UNTAG_Bool(REGB2)) {
1346 REGB2 = TAG_Bool(false);
1347 REGB1 = REGB2;
1348 } else {
1349 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
1350 REGB1 = REGB2;
1351 }
1352 }
1353 REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
1354 if (UNTAG_Bool(REGB1)) {
1355 /* ./../lib/standard//collection//hash_collection.nit:273 */
1356 ATTR_standard___collection___hash_collection___HashNode____key(fra.me.REG[3]) = fra.me.REG[1];
1357 /* ./../lib/standard//collection//hash_collection.nit:274 */
1358 ATTR_standard___collection___hash_collection___HashMapNode____value(fra.me.REG[3]) = fra.me.REG[2];
1359 } else {
1360 /* ./../lib/standard//collection//hash_collection.nit:276 */
1361 fra.me.REG[2] = NEW_HashMapNode_standard___collection___hash_collection___HashMapNode___init(fra.me.REG[1], fra.me.REG[2]);
1362 CALL_standard___collection___hash_collection___HashCollection___store(fra.me.REG[0])(fra.me.REG[0], REGB0, fra.me.REG[2]);
1363 }
1364 stack_frame_head = fra.me.prev;
1365 return;
1366 }
1367 void standard___collection___hash_collection___HashMap___remove(val_t p0, val_t p1){
1368 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
1369 val_t REGB0;
1370 val_t REGB1;
1371 val_t tmp;
1372 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1373 fra.me.file = LOCATE_standard___collection___hash_collection;
1374 fra.me.line = 280;
1375 fra.me.meth = LOCATE_standard___collection___hash_collection___HashMap___remove;
1376 fra.me.has_broke = 0;
1377 fra.me.REG_size = 4;
1378 fra.me.REG[0] = NIT_NULL;
1379 fra.me.REG[1] = NIT_NULL;
1380 fra.me.REG[2] = NIT_NULL;
1381 fra.me.REG[3] = NIT_NULL;
1382 fra.me.REG[0] = p0;
1383 fra.me.REG[1] = p1;
1384 /* ./../lib/standard//collection//hash_collection.nit:282 */
1385 fra.me.REG[2] = ATTR_standard___collection___hash_collection___HashCollection____first_item(fra.me.REG[0]);
1386 /* ./../lib/standard//collection//hash_collection.nit:283 */
1387 while(1) {
1388 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
1389 if (UNTAG_Bool(REGB0)) {
1390 } else {
1391 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
1392 if (UNTAG_Bool(REGB1)) {
1393 REGB1 = TAG_Bool(false);
1394 REGB0 = REGB1;
1395 } else {
1396 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
1397 REGB0 = REGB1;
1398 }
1399 }
1400 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
1401 if (UNTAG_Bool(REGB0)) {
1402 /* ./../lib/standard//collection//hash_collection.nit:284 */
1403 fra.me.REG[3] = ATTR_standard___collection___hash_collection___HashMapNode____value(fra.me.REG[2]);
1404 REGB0 = TAG_Bool(IS_EQUAL_NN(fra.me.REG[3],fra.me.REG[1]));
1405 if (UNTAG_Bool(REGB0)) {
1406 } else {
1407 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
1408 if (UNTAG_Bool(REGB1)) {
1409 REGB1 = TAG_Bool(false);
1410 REGB0 = REGB1;
1411 } else {
1412 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
1413 REGB0 = REGB1;
1414 }
1415 }
1416 if (UNTAG_Bool(REGB0)) {
1417 /* ./../lib/standard//collection//hash_collection.nit:285 */
1418 REGB0 = TAG_Bool(ATTR_standard___collection___hash_collection___HashNode____key(fra.me.REG[2])!=NIT_NULL);
1419 if (UNTAG_Bool(REGB0)) {
1420 } else {
1421 nit_abort("Uninitialized attribute %s", "_key", LOCATE_standard___collection___hash_collection, 285);
1422 }
1423 fra.me.REG[3] = ATTR_standard___collection___hash_collection___HashNode____key(fra.me.REG[2]);
1424 CALL_standard___collection___hash_collection___HashCollection___remove_node(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[3]);
1425 /* ./../lib/standard//collection//hash_collection.nit:286 */
1426 goto label1;
1427 }
1428 /* ./../lib/standard//collection//hash_collection.nit:288 */
1429 fra.me.REG[3] = ATTR_standard___collection___hash_collection___HashNode____next_item(fra.me.REG[2]);
1430 fra.me.REG[2] = fra.me.REG[3];
1431 } else {
1432 /* ./../lib/standard//collection//hash_collection.nit:283 */
1433 goto label2;
1434 }
1435 }
1436 label2: while(0);
1437 label1: while(0);
1438 stack_frame_head = fra.me.prev;
1439 return;
1440 }
1441 void standard___collection___hash_collection___HashMap___remove_at(val_t p0, val_t p1){
1442 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
1443 val_t tmp;
1444 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1445 fra.me.file = LOCATE_standard___collection___hash_collection;
1446 fra.me.line = 292;
1447 fra.me.meth = LOCATE_standard___collection___hash_collection___HashMap___remove_at;
1448 fra.me.has_broke = 0;
1449 fra.me.REG_size = 2;
1450 fra.me.REG[0] = NIT_NULL;
1451 fra.me.REG[1] = NIT_NULL;
1452 fra.me.REG[0] = p0;
1453 fra.me.REG[1] = p1;
1454 /* ./../lib/standard//collection//hash_collection.nit:292 */
1455 CALL_standard___collection___hash_collection___HashCollection___remove_node(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
1456 stack_frame_head = fra.me.prev;
1457 return;
1458 }
1459 void standard___collection___hash_collection___HashMap___clear(val_t p0){
1460 struct {struct stack_frame_t me;} fra;
1461 val_t tmp;
1462 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1463 fra.me.file = LOCATE_standard___collection___hash_collection;
1464 fra.me.line = 294;
1465 fra.me.meth = LOCATE_standard___collection___hash_collection___HashMap___clear;
1466 fra.me.has_broke = 0;
1467 fra.me.REG_size = 1;
1468 fra.me.REG[0] = NIT_NULL;
1469 fra.me.REG[0] = p0;
1470 /* ./../lib/standard//collection//hash_collection.nit:294 */
1471 CALL_standard___collection___hash_collection___HashCollection___raz(fra.me.REG[0])(fra.me.REG[0]);
1472 stack_frame_head = fra.me.prev;
1473 return;
1474 }
1475 void standard___collection___hash_collection___HashMap___init(val_t p0, int* init_table){
1476 int itpos2 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_standard___collection___hash_collection___HashMap].i;
1477 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
1478 val_t REGB0;
1479 val_t tmp;
1480 if (init_table[itpos2]) return;
1481 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1482 fra.me.file = LOCATE_standard___collection___hash_collection;
1483 fra.me.line = 296;
1484 fra.me.meth = LOCATE_standard___collection___hash_collection___HashMap___init;
1485 fra.me.has_broke = 0;
1486 fra.me.REG_size = 2;
1487 fra.me.REG[0] = NIT_NULL;
1488 fra.me.REG[1] = NIT_NULL;
1489 fra.me.REG[0] = p0;
1490 /* ./../lib/standard//collection//hash_collection.nit:296 */
1491 fra.me.REG[1] = fra.me.REG[0];
1492 CALL_standard___collection___hash_collection___HashCollection___init(fra.me.REG[0])(fra.me.REG[0], init_table);
1493 /* ./../lib/standard//collection//hash_collection.nit:298 */
1494 REGB0 = TAG_Int(0);
1495 ATTR_standard___collection___hash_collection___HashCollection____capacity(fra.me.REG[1]) = REGB0;
1496 /* ./../lib/standard//collection//hash_collection.nit:299 */
1497 REGB0 = TAG_Int(0);
1498 ATTR_standard___collection___hash_collection___HashCollection____length(fra.me.REG[1]) = REGB0;
1499 /* ./../lib/standard//collection//hash_collection.nit:300 */
1500 REGB0 = TAG_Int(0);
1501 CALL_standard___collection___hash_collection___HashCollection___enlarge(fra.me.REG[1])(fra.me.REG[1], REGB0);
1502 stack_frame_head = fra.me.prev;
1503 init_table[itpos2] = 1;
1504 return;
1505 }
1506 void standard___collection___hash_collection___HashMapNode___init(val_t p0, val_t p1, val_t p2, int* init_table){
1507 int itpos3 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_standard___collection___hash_collection___HashMapNode].i;
1508 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
1509 val_t tmp;
1510 if (init_table[itpos3]) return;
1511 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1512 fra.me.file = LOCATE_standard___collection___hash_collection;
1513 fra.me.line = 309;
1514 fra.me.meth = LOCATE_standard___collection___hash_collection___HashMapNode___init;
1515 fra.me.has_broke = 0;
1516 fra.me.REG_size = 4;
1517 fra.me.REG[0] = NIT_NULL;
1518 fra.me.REG[1] = NIT_NULL;
1519 fra.me.REG[2] = NIT_NULL;
1520 fra.me.REG[3] = NIT_NULL;
1521 fra.me.REG[0] = p0;
1522 fra.me.REG[1] = p1;
1523 fra.me.REG[2] = p2;
1524 /* ./../lib/standard//collection//hash_collection.nit:309 */
1525 fra.me.REG[3] = fra.me.REG[0];
1526 /* ./../lib/standard//collection//hash_collection.nit:311 */
1527 CALL_standard___collection___hash_collection___HashNode___init(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], init_table);
1528 /* ./../lib/standard//collection//hash_collection.nit:312 */
1529 ATTR_standard___collection___hash_collection___HashMapNode____value(fra.me.REG[3]) = fra.me.REG[2];
1530 stack_frame_head = fra.me.prev;
1531 init_table[itpos3] = 1;
1532 return;
1533 }
1534 val_t standard___collection___hash_collection___HashMapIterator___is_ok(val_t p0){
1535 struct {struct stack_frame_t me;} fra;
1536 val_t REGB0;
1537 val_t REGB1;
1538 val_t tmp;
1539 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1540 fra.me.file = LOCATE_standard___collection___hash_collection;
1541 fra.me.line = 318;
1542 fra.me.meth = LOCATE_standard___collection___hash_collection___HashMapIterator___is_ok;
1543 fra.me.has_broke = 0;
1544 fra.me.REG_size = 1;
1545 fra.me.REG[0] = NIT_NULL;
1546 fra.me.REG[0] = p0;
1547 /* ./../lib/standard//collection//hash_collection.nit:318 */
1548 fra.me.REG[0] = ATTR_standard___collection___hash_collection___HashMapIterator____node(fra.me.REG[0]);
1549 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
1550 if (UNTAG_Bool(REGB0)) {
1551 } else {
1552 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
1553 if (UNTAG_Bool(REGB1)) {
1554 REGB1 = TAG_Bool(false);
1555 REGB0 = REGB1;
1556 } else {
1557 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], NIT_NULL);
1558 REGB0 = REGB1;
1559 }
1560 }
1561 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
1562 goto label1;
1563 label1: while(0);
1564 stack_frame_head = fra.me.prev;
1565 return REGB0;
1566 }
1567 val_t standard___collection___hash_collection___HashMapIterator___item(val_t p0){
1568 struct {struct stack_frame_t me;} fra;
1569 val_t REGB0;
1570 val_t tmp;
1571 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1572 fra.me.file = LOCATE_standard___collection___hash_collection;
1573 fra.me.line = 320;
1574 fra.me.meth = LOCATE_standard___collection___hash_collection___HashMapIterator___item;
1575 fra.me.has_broke = 0;
1576 fra.me.REG_size = 1;
1577 fra.me.REG[0] = NIT_NULL;
1578 fra.me.REG[0] = p0;
1579 /* ./../lib/standard//collection//hash_collection.nit:322 */
1580 REGB0 = CALL_standard___collection___abstract_collection___Iterator___is_ok(fra.me.REG[0])(fra.me.REG[0]);
1581 if (UNTAG_Bool(REGB0)) {
1582 } else {
1583 nit_abort("Assert failed", NULL, LOCATE_standard___collection___hash_collection, 322);
1584 }
1585 /* ./../lib/standard//collection//hash_collection.nit:323 */
1586 fra.me.REG[0] = ATTR_standard___collection___hash_collection___HashMapIterator____node(fra.me.REG[0]);
1587 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
1588 if (UNTAG_Bool(REGB0)) {
1589 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___hash_collection, 323);
1590 }
1591 fra.me.REG[0] = ATTR_standard___collection___hash_collection___HashMapNode____value(fra.me.REG[0]);
1592 goto label1;
1593 label1: while(0);
1594 stack_frame_head = fra.me.prev;
1595 return fra.me.REG[0];
1596 }
1597 val_t standard___collection___hash_collection___HashMapIterator___key(val_t p0){
1598 struct {struct stack_frame_t me;} fra;
1599 val_t REGB0;
1600 val_t tmp;
1601 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1602 fra.me.file = LOCATE_standard___collection___hash_collection;
1603 fra.me.line = 332;
1604 fra.me.meth = LOCATE_standard___collection___hash_collection___HashMapIterator___key;
1605 fra.me.has_broke = 0;
1606 fra.me.REG_size = 1;
1607 fra.me.REG[0] = NIT_NULL;
1608 fra.me.REG[0] = p0;
1609 /* ./../lib/standard//collection//hash_collection.nit:334 */
1610 REGB0 = CALL_standard___collection___abstract_collection___Iterator___is_ok(fra.me.REG[0])(fra.me.REG[0]);
1611 if (UNTAG_Bool(REGB0)) {
1612 } else {
1613 nit_abort("Assert failed", NULL, LOCATE_standard___collection___hash_collection, 334);
1614 }
1615 /* ./../lib/standard//collection//hash_collection.nit:335 */
1616 fra.me.REG[0] = ATTR_standard___collection___hash_collection___HashMapIterator____node(fra.me.REG[0]);
1617 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
1618 if (UNTAG_Bool(REGB0)) {
1619 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___hash_collection, 335);
1620 }
1621 REGB0 = TAG_Bool(ATTR_standard___collection___hash_collection___HashNode____key(fra.me.REG[0])!=NIT_NULL);
1622 if (UNTAG_Bool(REGB0)) {
1623 } else {
1624 nit_abort("Uninitialized attribute %s", "_key", LOCATE_standard___collection___hash_collection, 335);
1625 }
1626 fra.me.REG[0] = ATTR_standard___collection___hash_collection___HashNode____key(fra.me.REG[0]);
1627 goto label1;
1628 label1: while(0);
1629 stack_frame_head = fra.me.prev;
1630 return fra.me.REG[0];
1631 }
1632 void standard___collection___hash_collection___HashMapIterator___next(val_t p0){
1633 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
1634 val_t REGB0;
1635 val_t tmp;
1636 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1637 fra.me.file = LOCATE_standard___collection___hash_collection;
1638 fra.me.line = 338;
1639 fra.me.meth = LOCATE_standard___collection___hash_collection___HashMapIterator___next;
1640 fra.me.has_broke = 0;
1641 fra.me.REG_size = 2;
1642 fra.me.REG[0] = NIT_NULL;
1643 fra.me.REG[1] = NIT_NULL;
1644 fra.me.REG[0] = p0;
1645 /* ./../lib/standard//collection//hash_collection.nit:340 */
1646 REGB0 = CALL_standard___collection___abstract_collection___Iterator___is_ok(fra.me.REG[0])(fra.me.REG[0]);
1647 if (UNTAG_Bool(REGB0)) {
1648 } else {
1649 nit_abort("Assert failed", NULL, LOCATE_standard___collection___hash_collection, 340);
1650 }
1651 /* ./../lib/standard//collection//hash_collection.nit:341 */
1652 fra.me.REG[1] = ATTR_standard___collection___hash_collection___HashMapIterator____node(fra.me.REG[0]);
1653 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
1654 if (UNTAG_Bool(REGB0)) {
1655 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___hash_collection, 341);
1656 }
1657 fra.me.REG[1] = ATTR_standard___collection___hash_collection___HashNode____next_item(fra.me.REG[1]);
1658 ATTR_standard___collection___hash_collection___HashMapIterator____node(fra.me.REG[0]) = fra.me.REG[1];
1659 stack_frame_head = fra.me.prev;
1660 return;
1661 }
1662 void standard___collection___hash_collection___HashMapIterator___init(val_t p0, val_t p1, int* init_table){
1663 int itpos4 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_standard___collection___hash_collection___HashMapIterator].i;
1664 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
1665 val_t tmp;
1666 if (init_table[itpos4]) return;
1667 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1668 fra.me.file = LOCATE_standard___collection___hash_collection;
1669 fra.me.line = 350;
1670 fra.me.meth = LOCATE_standard___collection___hash_collection___HashMapIterator___init;
1671 fra.me.has_broke = 0;
1672 fra.me.REG_size = 2;
1673 fra.me.REG[0] = NIT_NULL;
1674 fra.me.REG[1] = NIT_NULL;
1675 fra.me.REG[0] = p0;
1676 fra.me.REG[1] = p1;
1677 /* ./../lib/standard//collection//hash_collection.nit:352 */
1678 ATTR_standard___collection___hash_collection___HashMapIterator____map(fra.me.REG[0]) = fra.me.REG[1];
1679 /* ./../lib/standard//collection//hash_collection.nit:353 */
1680 fra.me.REG[1] = CALL_standard___collection___hash_collection___HashCollection___first_item(fra.me.REG[1])(fra.me.REG[1]);
1681 ATTR_standard___collection___hash_collection___HashMapIterator____node(fra.me.REG[0]) = fra.me.REG[1];
1682 stack_frame_head = fra.me.prev;
1683 init_table[itpos4] = 1;
1684 return;
1685 }
1686 val_t standard___collection___hash_collection___HashSet___length(val_t p0){
1687 struct {struct stack_frame_t me;} fra;
1688 val_t REGB0;
1689 val_t tmp;
1690 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1691 fra.me.file = LOCATE_standard___collection___hash_collection;
1692 fra.me.line = 361;
1693 fra.me.meth = LOCATE_standard___collection___hash_collection___HashSet___length;
1694 fra.me.has_broke = 0;
1695 fra.me.REG_size = 1;
1696 fra.me.REG[0] = NIT_NULL;
1697 fra.me.REG[0] = p0;
1698 /* ./../lib/standard//collection//hash_collection.nit:361 */
1699 REGB0 = TAG_Bool(ATTR_standard___collection___hash_collection___HashCollection____length(fra.me.REG[0])!=NIT_NULL);
1700 if (UNTAG_Bool(REGB0)) {
1701 } else {
1702 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___hash_collection, 361);
1703 }
1704 REGB0 = ATTR_standard___collection___hash_collection___HashCollection____length(fra.me.REG[0]);
1705 goto label1;
1706 label1: while(0);
1707 stack_frame_head = fra.me.prev;
1708 return REGB0;
1709 }
1710 val_t standard___collection___hash_collection___HashSet___is_empty(val_t p0){
1711 struct {struct stack_frame_t me;} fra;
1712 val_t REGB0;
1713 val_t REGB1;
1714 val_t REGB2;
1715 val_t tmp;
1716 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1717 fra.me.file = LOCATE_standard___collection___hash_collection;
1718 fra.me.line = 363;
1719 fra.me.meth = LOCATE_standard___collection___hash_collection___HashSet___is_empty;
1720 fra.me.has_broke = 0;
1721 fra.me.REG_size = 1;
1722 fra.me.REG[0] = NIT_NULL;
1723 fra.me.REG[0] = p0;
1724 /* ./../lib/standard//collection//hash_collection.nit:363 */
1725 REGB0 = TAG_Bool(ATTR_standard___collection___hash_collection___HashCollection____length(fra.me.REG[0])!=NIT_NULL);
1726 if (UNTAG_Bool(REGB0)) {
1727 } else {
1728 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___hash_collection, 363);
1729 }
1730 REGB0 = ATTR_standard___collection___hash_collection___HashCollection____length(fra.me.REG[0]);
1731 REGB1 = TAG_Int(0);
1732 REGB2 = TAG_Bool(IS_EQUAL_OO(REGB0,REGB1));
1733 if (UNTAG_Bool(REGB2)) {
1734 } else {
1735 /* ./../lib/standard//kernel.nit:210 */
1736 REGB1 = TAG_Bool((REGB0)==(REGB1));
1737 /* ./../lib/standard//collection//hash_collection.nit:363 */
1738 REGB2 = REGB1;
1739 }
1740 goto label1;
1741 label1: while(0);
1742 stack_frame_head = fra.me.prev;
1743 return REGB2;
1744 }
1745 val_t standard___collection___hash_collection___HashSet___first(val_t p0){
1746 struct {struct stack_frame_t me;} fra;
1747 val_t REGB0;
1748 val_t REGB1;
1749 val_t REGB2;
1750 val_t tmp;
1751 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1752 fra.me.file = LOCATE_standard___collection___hash_collection;
1753 fra.me.line = 365;
1754 fra.me.meth = LOCATE_standard___collection___hash_collection___HashSet___first;
1755 fra.me.has_broke = 0;
1756 fra.me.REG_size = 1;
1757 fra.me.REG[0] = NIT_NULL;
1758 fra.me.REG[0] = p0;
1759 /* ./../lib/standard//collection//hash_collection.nit:367 */
1760 REGB0 = TAG_Bool(ATTR_standard___collection___hash_collection___HashCollection____length(fra.me.REG[0])!=NIT_NULL);
1761 if (UNTAG_Bool(REGB0)) {
1762 } else {
1763 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___hash_collection, 367);
1764 }
1765 REGB0 = ATTR_standard___collection___hash_collection___HashCollection____length(fra.me.REG[0]);
1766 REGB1 = TAG_Int(0);
1767 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
1768 if (UNTAG_Bool(REGB2)) {
1769 } else {
1770 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
1771 }
1772 /* ./../lib/standard//kernel.nit:217 */
1773 REGB1 = TAG_Bool(UNTAG_Int(REGB0)>UNTAG_Int(REGB1));
1774 /* ./../lib/standard//collection//hash_collection.nit:367 */
1775 if (UNTAG_Bool(REGB1)) {
1776 } else {
1777 nit_abort("Assert failed", NULL, LOCATE_standard___collection___hash_collection, 367);
1778 }
1779 /* ./../lib/standard//collection//hash_collection.nit:368 */
1780 fra.me.REG[0] = ATTR_standard___collection___hash_collection___HashCollection____first_item(fra.me.REG[0]);
1781 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
1782 if (UNTAG_Bool(REGB1)) {
1783 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___hash_collection, 368);
1784 }
1785 REGB1 = TAG_Bool(ATTR_standard___collection___hash_collection___HashNode____key(fra.me.REG[0])!=NIT_NULL);
1786 if (UNTAG_Bool(REGB1)) {
1787 } else {
1788 nit_abort("Uninitialized attribute %s", "_key", LOCATE_standard___collection___hash_collection, 368);
1789 }
1790 fra.me.REG[0] = ATTR_standard___collection___hash_collection___HashNode____key(fra.me.REG[0]);
1791 goto label1;
1792 label1: while(0);
1793 stack_frame_head = fra.me.prev;
1794 return fra.me.REG[0];
1795 }
1796 val_t standard___collection___hash_collection___HashSet___has(val_t p0, val_t p1){
1797 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
1798 val_t REGB0;
1799 val_t REGB1;
1800 val_t tmp;
1801 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1802 fra.me.file = LOCATE_standard___collection___hash_collection;
1803 fra.me.line = 371;
1804 fra.me.meth = LOCATE_standard___collection___hash_collection___HashSet___has;
1805 fra.me.has_broke = 0;
1806 fra.me.REG_size = 2;
1807 fra.me.REG[0] = NIT_NULL;
1808 fra.me.REG[1] = NIT_NULL;
1809 fra.me.REG[0] = p0;
1810 fra.me.REG[1] = p1;
1811 /* ./../lib/standard//collection//hash_collection.nit:373 */
1812 fra.me.REG[1] = CALL_standard___collection___hash_collection___HashCollection___node_at(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
1813 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
1814 if (UNTAG_Bool(REGB0)) {
1815 } else {
1816 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
1817 if (UNTAG_Bool(REGB1)) {
1818 REGB1 = TAG_Bool(false);
1819 REGB0 = REGB1;
1820 } else {
1821 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
1822 REGB0 = REGB1;
1823 }
1824 }
1825 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
1826 goto label1;
1827 label1: while(0);
1828 stack_frame_head = fra.me.prev;
1829 return REGB0;
1830 }
1831 void standard___collection___hash_collection___HashSet___add(val_t p0, val_t p1){
1832 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
1833 val_t REGB0;
1834 val_t REGB1;
1835 val_t REGB2;
1836 val_t tmp;
1837 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1838 fra.me.file = LOCATE_standard___collection___hash_collection;
1839 fra.me.line = 376;
1840 fra.me.meth = LOCATE_standard___collection___hash_collection___HashSet___add;
1841 fra.me.has_broke = 0;
1842 fra.me.REG_size = 3;
1843 fra.me.REG[0] = NIT_NULL;
1844 fra.me.REG[1] = NIT_NULL;
1845 fra.me.REG[2] = NIT_NULL;
1846 fra.me.REG[0] = p0;
1847 fra.me.REG[1] = p1;
1848 /* ./../lib/standard//collection//hash_collection.nit:378 */
1849 REGB0 = CALL_standard___collection___hash_collection___HashCollection___index_at(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
1850 /* ./../lib/standard//collection//hash_collection.nit:379 */
1851 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]);
1852 /* ./../lib/standard//collection//hash_collection.nit:380 */
1853 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
1854 if (UNTAG_Bool(REGB1)) {
1855 } else {
1856 REGB2 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
1857 if (UNTAG_Bool(REGB2)) {
1858 REGB2 = TAG_Bool(false);
1859 REGB1 = REGB2;
1860 } else {
1861 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
1862 REGB1 = REGB2;
1863 }
1864 }
1865 REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
1866 if (UNTAG_Bool(REGB1)) {
1867 /* ./../lib/standard//collection//hash_collection.nit:381 */
1868 ATTR_standard___collection___hash_collection___HashNode____key(fra.me.REG[2]) = fra.me.REG[1];
1869 } else {
1870 /* ./../lib/standard//collection//hash_collection.nit:383 */
1871 fra.me.REG[1] = NEW_HashSetNode_standard___collection___hash_collection___HashSetNode___init(fra.me.REG[1]);
1872 CALL_standard___collection___hash_collection___HashCollection___store(fra.me.REG[0])(fra.me.REG[0], REGB0, fra.me.REG[1]);
1873 }
1874 stack_frame_head = fra.me.prev;
1875 return;
1876 }
1877 void standard___collection___hash_collection___HashSet___remove(val_t p0, val_t p1){
1878 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
1879 val_t tmp;
1880 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1881 fra.me.file = LOCATE_standard___collection___hash_collection;
1882 fra.me.line = 387;
1883 fra.me.meth = LOCATE_standard___collection___hash_collection___HashSet___remove;
1884 fra.me.has_broke = 0;
1885 fra.me.REG_size = 2;
1886 fra.me.REG[0] = NIT_NULL;
1887 fra.me.REG[1] = NIT_NULL;
1888 fra.me.REG[0] = p0;
1889 fra.me.REG[1] = p1;
1890 /* ./../lib/standard//collection//hash_collection.nit:387 */
1891 CALL_standard___collection___hash_collection___HashCollection___remove_node(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
1892 stack_frame_head = fra.me.prev;
1893 return;
1894 }
1895 void standard___collection___hash_collection___HashSet___clear(val_t p0){
1896 struct {struct stack_frame_t me;} fra;
1897 val_t tmp;
1898 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1899 fra.me.file = LOCATE_standard___collection___hash_collection;
1900 fra.me.line = 389;
1901 fra.me.meth = LOCATE_standard___collection___hash_collection___HashSet___clear;
1902 fra.me.has_broke = 0;
1903 fra.me.REG_size = 1;
1904 fra.me.REG[0] = NIT_NULL;
1905 fra.me.REG[0] = p0;
1906 /* ./../lib/standard//collection//hash_collection.nit:389 */
1907 CALL_standard___collection___hash_collection___HashCollection___raz(fra.me.REG[0])(fra.me.REG[0]);
1908 stack_frame_head = fra.me.prev;
1909 return;
1910 }
1911 val_t standard___collection___hash_collection___HashSet___iterator(val_t p0){
1912 struct {struct stack_frame_t me;} fra;
1913 val_t tmp;
1914 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1915 fra.me.file = LOCATE_standard___collection___hash_collection;
1916 fra.me.line = 391;
1917 fra.me.meth = LOCATE_standard___collection___hash_collection___HashSet___iterator;
1918 fra.me.has_broke = 0;
1919 fra.me.REG_size = 1;
1920 fra.me.REG[0] = NIT_NULL;
1921 fra.me.REG[0] = p0;
1922 /* ./../lib/standard//collection//hash_collection.nit:391 */
1923 fra.me.REG[0] = NEW_HashSetIterator_standard___collection___hash_collection___HashSetIterator___init(fra.me.REG[0]);
1924 goto label1;
1925 label1: while(0);
1926 stack_frame_head = fra.me.prev;
1927 return fra.me.REG[0];
1928 }
1929 void standard___collection___hash_collection___HashSet___init(val_t p0, int* init_table){
1930 int itpos5 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_standard___collection___hash_collection___HashSet].i;
1931 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
1932 val_t REGB0;
1933 val_t tmp;
1934 if (init_table[itpos5]) return;
1935 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1936 fra.me.file = LOCATE_standard___collection___hash_collection;
1937 fra.me.line = 393;
1938 fra.me.meth = LOCATE_standard___collection___hash_collection___HashSet___init;
1939 fra.me.has_broke = 0;
1940 fra.me.REG_size = 2;
1941 fra.me.REG[0] = NIT_NULL;
1942 fra.me.REG[1] = NIT_NULL;
1943 fra.me.REG[0] = p0;
1944 /* ./../lib/standard//collection//hash_collection.nit:393 */
1945 fra.me.REG[1] = fra.me.REG[0];
1946 CALL_standard___collection___hash_collection___HashCollection___init(fra.me.REG[0])(fra.me.REG[0], init_table);
1947 /* ./../lib/standard//collection//hash_collection.nit:395 */
1948 REGB0 = TAG_Int(0);
1949 ATTR_standard___collection___hash_collection___HashCollection____capacity(fra.me.REG[1]) = REGB0;
1950 /* ./../lib/standard//collection//hash_collection.nit:396 */
1951 REGB0 = TAG_Int(0);
1952 ATTR_standard___collection___hash_collection___HashCollection____length(fra.me.REG[1]) = REGB0;
1953 /* ./../lib/standard//collection//hash_collection.nit:397 */
1954 REGB0 = TAG_Int(0);
1955 CALL_standard___collection___hash_collection___HashCollection___enlarge(fra.me.REG[1])(fra.me.REG[1], REGB0);
1956 stack_frame_head = fra.me.prev;
1957 init_table[itpos5] = 1;
1958 return;
1959 }
1960 void standard___collection___hash_collection___HashSetNode___init(val_t p0, val_t p1, int* init_table){
1961 int itpos6 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_standard___collection___hash_collection___HashSetNode].i;
1962 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
1963 val_t tmp;
1964 if (init_table[itpos6]) return;
1965 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1966 fra.me.file = LOCATE_standard___collection___hash_collection;
1967 fra.me.line = 405;
1968 fra.me.meth = LOCATE_standard___collection___hash_collection___HashSetNode___init;
1969 fra.me.has_broke = 0;
1970 fra.me.REG_size = 4;
1971 fra.me.REG[0] = NIT_NULL;
1972 fra.me.REG[1] = NIT_NULL;
1973 fra.me.REG[2] = NIT_NULL;
1974 fra.me.REG[3] = NIT_NULL;
1975 fra.me.REG[0] = p0;
1976 fra.me.REG[1] = p1;
1977 /* ./../lib/standard//collection//hash_collection.nit:405 */
1978 fra.me.REG[2] = fra.me.REG[0];
1979 fra.me.REG[3] = fra.me.REG[1];
1980 CALL_standard___collection___hash_collection___HashNode___init(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], init_table);
1981 /* ./../lib/standard//collection//hash_collection.nit:407 */
1982 ATTR_standard___collection___hash_collection___HashNode____key(fra.me.REG[2]) = fra.me.REG[3];
1983 stack_frame_head = fra.me.prev;
1984 init_table[itpos6] = 1;
1985 return;
1986 }
1987 val_t standard___collection___hash_collection___HashSetIterator___is_ok(val_t p0){
1988 struct {struct stack_frame_t me;} fra;
1989 val_t REGB0;
1990 val_t REGB1;
1991 val_t tmp;
1992 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1993 fra.me.file = LOCATE_standard___collection___hash_collection;
1994 fra.me.line = 413;
1995 fra.me.meth = LOCATE_standard___collection___hash_collection___HashSetIterator___is_ok;
1996 fra.me.has_broke = 0;
1997 fra.me.REG_size = 1;
1998 fra.me.REG[0] = NIT_NULL;
1999 fra.me.REG[0] = p0;
2000 /* ./../lib/standard//collection//hash_collection.nit:413 */
2001 fra.me.REG[0] = ATTR_standard___collection___hash_collection___HashSetIterator____node(fra.me.REG[0]);
2002 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
2003 if (UNTAG_Bool(REGB0)) {
2004 } else {
2005 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
2006 if (UNTAG_Bool(REGB1)) {
2007 REGB1 = TAG_Bool(false);
2008 REGB0 = REGB1;
2009 } else {
2010 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], NIT_NULL);
2011 REGB0 = REGB1;
2012 }
2013 }
2014 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
2015 goto label1;
2016 label1: while(0);
2017 stack_frame_head = fra.me.prev;
2018 return REGB0;
2019 }
2020 val_t standard___collection___hash_collection___HashSetIterator___item(val_t p0){
2021 struct {struct stack_frame_t me;} fra;
2022 val_t REGB0;
2023 val_t tmp;
2024 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2025 fra.me.file = LOCATE_standard___collection___hash_collection;
2026 fra.me.line = 415;
2027 fra.me.meth = LOCATE_standard___collection___hash_collection___HashSetIterator___item;
2028 fra.me.has_broke = 0;
2029 fra.me.REG_size = 1;
2030 fra.me.REG[0] = NIT_NULL;
2031 fra.me.REG[0] = p0;
2032 /* ./../lib/standard//collection//hash_collection.nit:417 */
2033 REGB0 = CALL_standard___collection___abstract_collection___Iterator___is_ok(fra.me.REG[0])(fra.me.REG[0]);
2034 if (UNTAG_Bool(REGB0)) {
2035 } else {
2036 nit_abort("Assert failed", NULL, LOCATE_standard___collection___hash_collection, 417);
2037 }
2038 /* ./../lib/standard//collection//hash_collection.nit:418 */
2039 fra.me.REG[0] = ATTR_standard___collection___hash_collection___HashSetIterator____node(fra.me.REG[0]);
2040 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
2041 if (UNTAG_Bool(REGB0)) {
2042 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___hash_collection, 418);
2043 }
2044 REGB0 = TAG_Bool(ATTR_standard___collection___hash_collection___HashNode____key(fra.me.REG[0])!=NIT_NULL);
2045 if (UNTAG_Bool(REGB0)) {
2046 } else {
2047 nit_abort("Uninitialized attribute %s", "_key", LOCATE_standard___collection___hash_collection, 418);
2048 }
2049 fra.me.REG[0] = ATTR_standard___collection___hash_collection___HashNode____key(fra.me.REG[0]);
2050 goto label1;
2051 label1: while(0);
2052 stack_frame_head = fra.me.prev;
2053 return fra.me.REG[0];
2054 }
2055 void standard___collection___hash_collection___HashSetIterator___next(val_t p0){
2056 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
2057 val_t REGB0;
2058 val_t tmp;
2059 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2060 fra.me.file = LOCATE_standard___collection___hash_collection;
2061 fra.me.line = 421;
2062 fra.me.meth = LOCATE_standard___collection___hash_collection___HashSetIterator___next;
2063 fra.me.has_broke = 0;
2064 fra.me.REG_size = 2;
2065 fra.me.REG[0] = NIT_NULL;
2066 fra.me.REG[1] = NIT_NULL;
2067 fra.me.REG[0] = p0;
2068 /* ./../lib/standard//collection//hash_collection.nit:423 */
2069 REGB0 = CALL_standard___collection___abstract_collection___Iterator___is_ok(fra.me.REG[0])(fra.me.REG[0]);
2070 if (UNTAG_Bool(REGB0)) {
2071 } else {
2072 nit_abort("Assert failed", NULL, LOCATE_standard___collection___hash_collection, 423);
2073 }
2074 /* ./../lib/standard//collection//hash_collection.nit:424 */
2075 fra.me.REG[1] = ATTR_standard___collection___hash_collection___HashSetIterator____node(fra.me.REG[0]);
2076 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
2077 if (UNTAG_Bool(REGB0)) {
2078 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___hash_collection, 424);
2079 }
2080 fra.me.REG[1] = ATTR_standard___collection___hash_collection___HashNode____next_item(fra.me.REG[1]);
2081 ATTR_standard___collection___hash_collection___HashSetIterator____node(fra.me.REG[0]) = fra.me.REG[1];
2082 stack_frame_head = fra.me.prev;
2083 return;
2084 }
2085 void standard___collection___hash_collection___HashSetIterator___init(val_t p0, val_t p1, int* init_table){
2086 int itpos7 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_standard___collection___hash_collection___HashSetIterator].i;
2087 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
2088 val_t tmp;
2089 if (init_table[itpos7]) return;
2090 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2091 fra.me.file = LOCATE_standard___collection___hash_collection;
2092 fra.me.line = 433;
2093 fra.me.meth = LOCATE_standard___collection___hash_collection___HashSetIterator___init;
2094 fra.me.has_broke = 0;
2095 fra.me.REG_size = 2;
2096 fra.me.REG[0] = NIT_NULL;
2097 fra.me.REG[1] = NIT_NULL;
2098 fra.me.REG[0] = p0;
2099 fra.me.REG[1] = p1;
2100 /* ./../lib/standard//collection//hash_collection.nit:435 */
2101 ATTR_standard___collection___hash_collection___HashSetIterator____set(fra.me.REG[0]) = fra.me.REG[1];
2102 /* ./../lib/standard//collection//hash_collection.nit:436 */
2103 fra.me.REG[1] = ATTR_standard___collection___hash_collection___HashCollection____first_item(fra.me.REG[1]);
2104 ATTR_standard___collection___hash_collection___HashSetIterator____node(fra.me.REG[0]) = fra.me.REG[1];
2105 stack_frame_head = fra.me.prev;
2106 init_table[itpos7] = 1;
2107 return;
2108 }