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