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