1 /* This C file is generated by NIT to compile module hash_collection. */
2 #include "hash_collection._sep.h"
3 val_t
hash_collection___HashCollection___length(val_t p0
){
4 struct {struct stack_frame_t me
;} fra
;
7 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
8 fra
.me
.file
= LOCATE_hash_collection
;
10 fra
.me
.meth
= LOCATE_hash_collection___HashCollection___length
;
13 fra
.me
.REG
[0] = NIT_NULL
;
15 /* ./../lib/standard//collection//hash_collection.nit:25 */
16 REGB0
= TAG_Bool(ATTR_hash_collection___HashCollection____length(fra
.me
.REG
[0])!=NIT_NULL
);
17 if (UNTAG_Bool(REGB0
)) {
19 nit_abort("Uninitialized attribute %s", "_length", LOCATE_hash_collection
, 25);
21 REGB0
= ATTR_hash_collection___HashCollection____length(fra
.me
.REG
[0]);
22 stack_frame_head
= fra
.me
.prev
;
25 val_t
hash_collection___HashCollection___first_item(val_t p0
){
26 struct {struct stack_frame_t me
;} fra
;
28 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
29 fra
.me
.file
= LOCATE_hash_collection
;
31 fra
.me
.meth
= LOCATE_hash_collection___HashCollection___first_item
;
34 fra
.me
.REG
[0] = NIT_NULL
;
36 /* ./../lib/standard//collection//hash_collection.nit:27 */
37 fra
.me
.REG
[0] = ATTR_hash_collection___HashCollection____first_item(fra
.me
.REG
[0]);
38 stack_frame_head
= fra
.me
.prev
;
41 val_t
hash_collection___HashCollection___index_at(val_t p0
, val_t p1
){
42 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
46 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
47 fra
.me
.file
= LOCATE_hash_collection
;
49 fra
.me
.meth
= LOCATE_hash_collection___HashCollection___index_at
;
52 fra
.me
.REG
[0] = NIT_NULL
;
53 fra
.me
.REG
[1] = NIT_NULL
;
56 /* ./../lib/standard//collection//hash_collection.nit:39 */
57 REGB0
= CALL_hash___Object___hash(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
58 REGB1
= TAG_Bool(ATTR_hash_collection___HashCollection____capacity(fra
.me
.REG
[0])!=NIT_NULL
);
59 if (UNTAG_Bool(REGB1
)) {
61 nit_abort("Uninitialized attribute %s", "_capacity", LOCATE_hash_collection
, 39);
63 REGB1
= ATTR_hash_collection___HashCollection____capacity(fra
.me
.REG
[0]);
64 /* ./../lib/standard//kernel.nit:220 */
65 REGB1
= TAG_Int(UNTAG_Int(REGB0
)%UNTAG_Int(REGB1
));
66 /* ./../lib/standard//collection//hash_collection.nit:40 */
68 /* ./../lib/standard//kernel.nit:212 */
69 REGB0
= TAG_Bool(UNTAG_Int(REGB1
)<UNTAG_Int(REGB0
));
70 /* ./../lib/standard//collection//hash_collection.nit:40 */
71 if (UNTAG_Bool(REGB0
)) {
72 /* ./../lib/standard//kernel.nit:216 */
73 REGB0
= TAG_Int(-UNTAG_Int(REGB1
));
74 /* ./../lib/standard//collection//hash_collection.nit:40 */
77 /* ./../lib/standard//collection//hash_collection.nit:41 */
80 stack_frame_head
= fra
.me
.prev
;
83 val_t
hash_collection___HashCollection___node_at(val_t p0
, val_t p1
){
84 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
87 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
88 fra
.me
.file
= LOCATE_hash_collection
;
90 fra
.me
.meth
= LOCATE_hash_collection___HashCollection___node_at
;
93 fra
.me
.REG
[0] = NIT_NULL
;
94 fra
.me
.REG
[1] = NIT_NULL
;
95 fra
.me
.REG
[2] = NIT_NULL
;
96 fra
.me
.REG
[3] = NIT_NULL
;
99 /* ./../lib/standard//collection//hash_collection.nit:48 */
100 fra
.me
.REG
[2] = ATTR_hash_collection___HashCollection____last_accessed_key(fra
.me
.REG
[0]);
101 REGB0
= TAG_Bool(IS_EQUAL_ON(fra
.me
.REG
[1],fra
.me
.REG
[2]));
102 if (UNTAG_Bool(REGB0
)) {
103 fra
.me
.REG
[2] = ATTR_hash_collection___HashCollection____last_accessed_node(fra
.me
.REG
[0]);
106 /* ./../lib/standard//collection//hash_collection.nit:50 */
107 REGB0
= CALL_hash_collection___HashCollection___index_at(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
108 fra
.me
.REG
[3] = CALL_hash_collection___HashCollection___node_at_idx(fra
.me
.REG
[0])(fra
.me
.REG
[0], REGB0
, fra
.me
.REG
[1]);
109 /* ./../lib/standard//collection//hash_collection.nit:51 */
110 ATTR_hash_collection___HashCollection____last_accessed_key(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
111 /* ./../lib/standard//collection//hash_collection.nit:52 */
112 ATTR_hash_collection___HashCollection____last_accessed_node(fra
.me
.REG
[0]) = fra
.me
.REG
[3];
113 /* ./../lib/standard//collection//hash_collection.nit:53 */
114 fra
.me
.REG
[2] = fra
.me
.REG
[3];
117 stack_frame_head
= fra
.me
.prev
;
118 return fra
.me
.REG
[2];
120 val_t
hash_collection___HashCollection___node_at_idx(val_t p0
, val_t p1
, val_t p2
){
121 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
126 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
127 fra
.me
.file
= LOCATE_hash_collection
;
129 fra
.me
.meth
= LOCATE_hash_collection___HashCollection___node_at_idx
;
130 fra
.me
.has_broke
= 0;
132 fra
.me
.REG
[0] = NIT_NULL
;
133 fra
.me
.REG
[1] = NIT_NULL
;
134 fra
.me
.REG
[2] = NIT_NULL
;
138 /* ./../lib/standard//collection//hash_collection.nit:59 */
139 fra
.me
.REG
[0] = ATTR_hash_collection___HashCollection____array(fra
.me
.REG
[0]);
140 REGB1
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
141 if (UNTAG_Bool(REGB1
)) {
142 nit_abort("Reciever is null", NULL
, LOCATE_hash_collection
, 59);
144 /* ./../lib/standard//collection//array.nit:654 */
145 fra
.me
.REG
[0] = ((Nit_NativeArray
)fra
.me
.REG
[0])->val
[UNTAG_Int(REGB0
)];
146 /* ./../lib/standard//collection//hash_collection.nit:60 */
148 REGB0
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
149 if (UNTAG_Bool(REGB0
)) {
151 REGB1
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
152 if (UNTAG_Bool(REGB1
)) {
153 REGB1
= TAG_Bool(false);
156 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[0])(fra
.me
.REG
[0], NIT_NULL
);
160 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
161 if (UNTAG_Bool(REGB0
)) {
162 /* ./../lib/standard//collection//hash_collection.nit:61 */
163 REGB0
= TAG_Bool(ATTR_hash_collection___HashNode____key(fra
.me
.REG
[0])!=NIT_NULL
);
164 if (UNTAG_Bool(REGB0
)) {
166 nit_abort("Uninitialized attribute %s", "_key", LOCATE_hash_collection
, 61);
168 fra
.me
.REG
[2] = ATTR_hash_collection___HashNode____key(fra
.me
.REG
[0]);
169 /* ./../lib/standard//collection//hash_collection.nit:62 */
170 REGB0
= TAG_Bool(IS_EQUAL_OO(fra
.me
.REG
[2],fra
.me
.REG
[1]));
171 if (UNTAG_Bool(REGB0
)) {
172 REGB0
= TAG_Bool(true);
174 REGB1
= TAG_Bool(IS_EQUAL_OO(fra
.me
.REG
[2],fra
.me
.REG
[1]));
175 if (UNTAG_Bool(REGB1
)) {
177 REGB2
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[1]);
182 if (UNTAG_Bool(REGB0
)) {
183 /* ./../lib/standard//collection//hash_collection.nit:63 */
186 /* ./../lib/standard//collection//hash_collection.nit:65 */
187 fra
.me
.REG
[2] = ATTR_hash_collection___HashNode____next_in_bucklet(fra
.me
.REG
[0]);
188 fra
.me
.REG
[0] = fra
.me
.REG
[2];
190 /* ./../lib/standard//collection//hash_collection.nit:60 */
195 /* ./../lib/standard//collection//hash_collection.nit:67 */
198 stack_frame_head
= fra
.me
.prev
;
199 return fra
.me
.REG
[0];
201 void hash_collection___HashCollection___store(val_t p0
, val_t p1
, val_t p2
){
202 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
207 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
208 fra
.me
.file
= LOCATE_hash_collection
;
210 fra
.me
.meth
= LOCATE_hash_collection___HashCollection___store
;
211 fra
.me
.has_broke
= 0;
213 fra
.me
.REG
[0] = NIT_NULL
;
214 fra
.me
.REG
[1] = NIT_NULL
;
215 fra
.me
.REG
[2] = NIT_NULL
;
216 fra
.me
.REG
[3] = NIT_NULL
;
220 /* ./../lib/standard//collection//hash_collection.nit:74 */
221 fra
.me
.REG
[2] = ATTR_hash_collection___HashCollection____first_item(fra
.me
.REG
[0]);
222 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
223 if (UNTAG_Bool(REGB1
)) {
225 REGB2
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
226 if (UNTAG_Bool(REGB2
)) {
227 REGB2
= TAG_Bool(false);
230 REGB2
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
234 if (UNTAG_Bool(REGB1
)) {
235 /* ./../lib/standard//collection//hash_collection.nit:75 */
236 ATTR_hash_collection___HashCollection____first_item(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
238 /* ./../lib/standard//collection//hash_collection.nit:77 */
239 fra
.me
.REG
[2] = ATTR_hash_collection___HashCollection____last_item(fra
.me
.REG
[0]);
240 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
241 if (UNTAG_Bool(REGB1
)) {
242 nit_abort("Reciever is null", NULL
, LOCATE_hash_collection
, 77);
244 ATTR_hash_collection___HashNode____next_item(fra
.me
.REG
[2]) = fra
.me
.REG
[1];
246 /* ./../lib/standard//collection//hash_collection.nit:79 */
247 fra
.me
.REG
[2] = ATTR_hash_collection___HashCollection____last_item(fra
.me
.REG
[0]);
248 ATTR_hash_collection___HashNode____prev_item(fra
.me
.REG
[1]) = fra
.me
.REG
[2];
249 /* ./../lib/standard//collection//hash_collection.nit:80 */
250 ATTR_hash_collection___HashNode____next_item(fra
.me
.REG
[1]) = NIT_NULL
;
251 /* ./../lib/standard//collection//hash_collection.nit:81 */
252 ATTR_hash_collection___HashCollection____last_item(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
253 /* ./../lib/standard//collection//hash_collection.nit:84 */
254 fra
.me
.REG
[2] = ATTR_hash_collection___HashCollection____array(fra
.me
.REG
[0]);
255 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
256 if (UNTAG_Bool(REGB1
)) {
257 nit_abort("Reciever is null", NULL
, LOCATE_hash_collection
, 84);
259 /* ./../lib/standard//collection//array.nit:654 */
260 fra
.me
.REG
[2] = ((Nit_NativeArray
)fra
.me
.REG
[2])->val
[UNTAG_Int(REGB0
)];
261 /* ./../lib/standard//collection//hash_collection.nit:85 */
262 fra
.me
.REG
[3] = ATTR_hash_collection___HashCollection____array(fra
.me
.REG
[0]);
263 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
264 if (UNTAG_Bool(REGB1
)) {
265 nit_abort("Reciever is null", NULL
, LOCATE_hash_collection
, 85);
267 /* ./../lib/standard//collection//array.nit:655 */
268 ((Nit_NativeArray
)fra
.me
.REG
[3])->val
[UNTAG_Int(REGB0
)]=fra
.me
.REG
[1];
269 /* ./../lib/standard//collection//hash_collection.nit:86 */
270 ATTR_hash_collection___HashNode____next_in_bucklet(fra
.me
.REG
[1]) = fra
.me
.REG
[2];
271 /* ./../lib/standard//collection//hash_collection.nit:87 */
272 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
273 if (UNTAG_Bool(REGB0
)) {
275 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
276 if (UNTAG_Bool(REGB1
)) {
277 REGB1
= TAG_Bool(false);
280 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
284 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
285 if (UNTAG_Bool(REGB0
)) {
286 ATTR_hash_collection___HashNode____prev_in_bucklet(fra
.me
.REG
[2]) = fra
.me
.REG
[1];
288 /* ./../lib/standard//collection//hash_collection.nit:89 */
289 REGB0
= TAG_Bool(ATTR_hash_collection___HashNode____key(fra
.me
.REG
[1])!=NIT_NULL
);
290 if (UNTAG_Bool(REGB0
)) {
292 nit_abort("Uninitialized attribute %s", "_key", LOCATE_hash_collection
, 89);
294 fra
.me
.REG
[2] = ATTR_hash_collection___HashNode____key(fra
.me
.REG
[1]);
295 ATTR_hash_collection___HashCollection____last_accessed_key(fra
.me
.REG
[0]) = fra
.me
.REG
[2];
296 /* ./../lib/standard//collection//hash_collection.nit:90 */
297 ATTR_hash_collection___HashCollection____last_accessed_node(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
298 /* ./../lib/standard//collection//hash_collection.nit:93 */
299 REGB0
= TAG_Bool(ATTR_hash_collection___HashCollection____length(fra
.me
.REG
[0])!=NIT_NULL
);
300 if (UNTAG_Bool(REGB0
)) {
302 nit_abort("Uninitialized attribute %s", "_length", LOCATE_hash_collection
, 93);
304 REGB0
= ATTR_hash_collection___HashCollection____length(fra
.me
.REG
[0]);
305 /* ./../lib/standard//collection//hash_collection.nit:94 */
307 /* ./../lib/standard//kernel.nit:215 */
308 REGB1
= TAG_Int(UNTAG_Int(REGB0
)+UNTAG_Int(REGB1
));
309 /* ./../lib/standard//collection//hash_collection.nit:94 */
310 ATTR_hash_collection___HashCollection____length(fra
.me
.REG
[0]) = REGB1
;
311 /* ./../lib/standard//collection//hash_collection.nit:95 */
313 /* ./../lib/standard//kernel.nit:215 */
314 REGB1
= TAG_Int(UNTAG_Int(REGB0
)+UNTAG_Int(REGB1
));
315 /* ./../lib/standard//collection//hash_collection.nit:95 */
317 /* ./../lib/standard//kernel.nit:218 */
318 REGB2
= TAG_Int(UNTAG_Int(REGB1
)*UNTAG_Int(REGB2
));
319 /* ./../lib/standard//collection//hash_collection.nit:95 */
321 /* ./../lib/standard//kernel.nit:219 */
322 REGB1
= TAG_Int(UNTAG_Int(REGB2
)/UNTAG_Int(REGB1
));
323 /* ./../lib/standard//collection//hash_collection.nit:95 */
325 /* ./../lib/standard//collection//hash_collection.nit:96 */
326 REGB1
= TAG_Bool(ATTR_hash_collection___HashCollection____capacity(fra
.me
.REG
[0])!=NIT_NULL
);
327 if (UNTAG_Bool(REGB1
)) {
329 nit_abort("Uninitialized attribute %s", "_capacity", LOCATE_hash_collection
, 96);
331 REGB1
= ATTR_hash_collection___HashCollection____capacity(fra
.me
.REG
[0]);
332 /* ./../lib/standard//kernel.nit:213 */
333 REGB1
= TAG_Bool(UNTAG_Int(REGB0
)>=UNTAG_Int(REGB1
));
334 /* ./../lib/standard//collection//hash_collection.nit:96 */
335 if (UNTAG_Bool(REGB1
)) {
336 /* ./../lib/standard//collection//hash_collection.nit:97 */
338 /* ./../lib/standard//kernel.nit:218 */
339 REGB1
= TAG_Int(UNTAG_Int(REGB0
)*UNTAG_Int(REGB1
));
340 /* ./../lib/standard//collection//hash_collection.nit:97 */
341 CALL_hash_collection___HashCollection___enlarge(fra
.me
.REG
[0])(fra
.me
.REG
[0], REGB1
);
343 stack_frame_head
= fra
.me
.prev
;
346 void hash_collection___HashCollection___remove_node(val_t p0
, val_t p1
){
347 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
352 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
353 fra
.me
.file
= LOCATE_hash_collection
;
355 fra
.me
.meth
= LOCATE_hash_collection___HashCollection___remove_node
;
356 fra
.me
.has_broke
= 0;
358 fra
.me
.REG
[0] = NIT_NULL
;
359 fra
.me
.REG
[1] = NIT_NULL
;
360 fra
.me
.REG
[2] = NIT_NULL
;
361 fra
.me
.REG
[3] = NIT_NULL
;
362 fra
.me
.REG
[4] = NIT_NULL
;
365 /* ./../lib/standard//collection//hash_collection.nit:104 */
366 REGB0
= CALL_hash_collection___HashCollection___index_at(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
367 /* ./../lib/standard//collection//hash_collection.nit:105 */
368 fra
.me
.REG
[1] = CALL_hash_collection___HashCollection___node_at_idx(fra
.me
.REG
[0])(fra
.me
.REG
[0], REGB0
, fra
.me
.REG
[1]);
369 /* ./../lib/standard//collection//hash_collection.nit:106 */
370 REGB1
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
371 if (UNTAG_Bool(REGB1
)) {
373 REGB2
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
374 if (UNTAG_Bool(REGB2
)) {
375 REGB2
= TAG_Bool(false);
378 REGB2
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[1])(fra
.me
.REG
[1], NIT_NULL
);
382 if (UNTAG_Bool(REGB1
)) {
385 /* ./../lib/standard//collection//hash_collection.nit:109 */
386 fra
.me
.REG
[2] = ATTR_hash_collection___HashNode____prev_item(fra
.me
.REG
[1]);
387 /* ./../lib/standard//collection//hash_collection.nit:110 */
388 fra
.me
.REG
[3] = ATTR_hash_collection___HashNode____next_item(fra
.me
.REG
[1]);
389 /* ./../lib/standard//collection//hash_collection.nit:111 */
390 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
391 if (UNTAG_Bool(REGB1
)) {
393 REGB2
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
394 if (UNTAG_Bool(REGB2
)) {
395 REGB2
= TAG_Bool(false);
398 REGB2
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
402 REGB1
= TAG_Bool(!UNTAG_Bool(REGB1
));
403 if (UNTAG_Bool(REGB1
)) {
404 /* ./../lib/standard//collection//hash_collection.nit:112 */
405 ATTR_hash_collection___HashNode____next_item(fra
.me
.REG
[2]) = fra
.me
.REG
[3];
407 /* ./../lib/standard//collection//hash_collection.nit:114 */
408 ATTR_hash_collection___HashCollection____first_item(fra
.me
.REG
[0]) = fra
.me
.REG
[3];
410 /* ./../lib/standard//collection//hash_collection.nit:116 */
411 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
412 if (UNTAG_Bool(REGB1
)) {
414 REGB2
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
415 if (UNTAG_Bool(REGB2
)) {
416 REGB2
= TAG_Bool(false);
419 REGB2
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
423 REGB1
= TAG_Bool(!UNTAG_Bool(REGB1
));
424 if (UNTAG_Bool(REGB1
)) {
425 /* ./../lib/standard//collection//hash_collection.nit:117 */
426 ATTR_hash_collection___HashNode____prev_item(fra
.me
.REG
[3]) = fra
.me
.REG
[2];
428 /* ./../lib/standard//collection//hash_collection.nit:119 */
429 ATTR_hash_collection___HashCollection____last_item(fra
.me
.REG
[0]) = fra
.me
.REG
[2];
431 /* ./../lib/standard//collection//hash_collection.nit:123 */
432 REGB1
= ATTR_hash_collection___HashCollection____length(fra
.me
.REG
[0]);
434 /* ./../lib/standard//kernel.nit:217 */
435 REGB2
= TAG_Int(UNTAG_Int(REGB1
)-UNTAG_Int(REGB2
));
436 /* ./../lib/standard//collection//hash_collection.nit:123 */
437 ATTR_hash_collection___HashCollection____length(fra
.me
.REG
[0]) = REGB2
;
438 /* ./../lib/standard//collection//hash_collection.nit:124 */
439 fra
.me
.REG
[4] = ATTR_hash_collection___HashNode____prev_in_bucklet(fra
.me
.REG
[1]);
440 fra
.me
.REG
[2] = fra
.me
.REG
[4];
441 /* ./../lib/standard//collection//hash_collection.nit:125 */
442 fra
.me
.REG
[1] = ATTR_hash_collection___HashNode____next_in_bucklet(fra
.me
.REG
[1]);
443 fra
.me
.REG
[3] = fra
.me
.REG
[1];
444 /* ./../lib/standard//collection//hash_collection.nit:126 */
445 REGB2
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
446 if (UNTAG_Bool(REGB2
)) {
448 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
449 if (UNTAG_Bool(REGB1
)) {
450 REGB1
= TAG_Bool(false);
453 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
457 REGB2
= TAG_Bool(!UNTAG_Bool(REGB2
));
458 if (UNTAG_Bool(REGB2
)) {
459 /* ./../lib/standard//collection//hash_collection.nit:127 */
460 ATTR_hash_collection___HashNode____next_in_bucklet(fra
.me
.REG
[2]) = fra
.me
.REG
[3];
462 /* ./../lib/standard//collection//hash_collection.nit:129 */
463 fra
.me
.REG
[1] = ATTR_hash_collection___HashCollection____array(fra
.me
.REG
[0]);
464 REGB2
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
465 if (UNTAG_Bool(REGB2
)) {
466 nit_abort("Reciever is null", NULL
, LOCATE_hash_collection
, 129);
468 /* ./../lib/standard//collection//array.nit:655 */
469 ((Nit_NativeArray
)fra
.me
.REG
[1])->val
[UNTAG_Int(REGB0
)]=fra
.me
.REG
[3];
471 /* ./../lib/standard//collection//hash_collection.nit:131 */
472 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
473 if (UNTAG_Bool(REGB0
)) {
475 REGB2
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
476 if (UNTAG_Bool(REGB2
)) {
477 REGB2
= TAG_Bool(false);
480 REGB2
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
484 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
485 if (UNTAG_Bool(REGB0
)) {
486 /* ./../lib/standard//collection//hash_collection.nit:132 */
487 ATTR_hash_collection___HashNode____prev_in_bucklet(fra
.me
.REG
[3]) = fra
.me
.REG
[2];
489 /* ./../lib/standard//collection//hash_collection.nit:135 */
490 ATTR_hash_collection___HashCollection____last_accessed_key(fra
.me
.REG
[0]) = NIT_NULL
;
492 stack_frame_head
= fra
.me
.prev
;
495 void hash_collection___HashCollection___raz(val_t p0
){
496 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
500 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
501 fra
.me
.file
= LOCATE_hash_collection
;
503 fra
.me
.meth
= LOCATE_hash_collection___HashCollection___raz
;
504 fra
.me
.has_broke
= 0;
506 fra
.me
.REG
[0] = NIT_NULL
;
507 fra
.me
.REG
[1] = NIT_NULL
;
509 /* ./../lib/standard//collection//hash_collection.nit:140 */
510 REGB0
= TAG_Bool(ATTR_hash_collection___HashCollection____capacity(fra
.me
.REG
[0])!=NIT_NULL
);
511 if (UNTAG_Bool(REGB0
)) {
513 nit_abort("Uninitialized attribute %s", "_capacity", LOCATE_hash_collection
, 140);
515 REGB0
= ATTR_hash_collection___HashCollection____capacity(fra
.me
.REG
[0]);
517 /* ./../lib/standard//kernel.nit:217 */
518 REGB1
= TAG_Int(UNTAG_Int(REGB0
)-UNTAG_Int(REGB1
));
519 /* ./../lib/standard//collection//hash_collection.nit:141 */
522 /* ./../lib/standard//kernel.nit:213 */
523 REGB0
= TAG_Bool(UNTAG_Int(REGB1
)>=UNTAG_Int(REGB0
));
524 /* ./../lib/standard//collection//hash_collection.nit:141 */
525 if (UNTAG_Bool(REGB0
)) {
526 /* ./../lib/standard//collection//hash_collection.nit:142 */
527 fra
.me
.REG
[1] = ATTR_hash_collection___HashCollection____array(fra
.me
.REG
[0]);
528 REGB0
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
529 if (UNTAG_Bool(REGB0
)) {
530 nit_abort("Reciever is null", NULL
, LOCATE_hash_collection
, 142);
532 /* ./../lib/standard//collection//array.nit:655 */
533 ((Nit_NativeArray
)fra
.me
.REG
[1])->val
[UNTAG_Int(REGB1
)]=NIT_NULL
;
534 /* ./../lib/standard//collection//hash_collection.nit:143 */
536 /* ./../lib/standard//kernel.nit:217 */
537 REGB0
= TAG_Int(UNTAG_Int(REGB1
)-UNTAG_Int(REGB0
));
538 /* ./../lib/standard//collection//hash_collection.nit:143 */
541 /* ./../lib/standard//collection//hash_collection.nit:141 */
546 /* ./../lib/standard//collection//hash_collection.nit:145 */
548 ATTR_hash_collection___HashCollection____length(fra
.me
.REG
[0]) = REGB1
;
549 /* ./../lib/standard//collection//hash_collection.nit:146 */
550 ATTR_hash_collection___HashCollection____first_item(fra
.me
.REG
[0]) = NIT_NULL
;
551 /* ./../lib/standard//collection//hash_collection.nit:147 */
552 ATTR_hash_collection___HashCollection____last_item(fra
.me
.REG
[0]) = NIT_NULL
;
553 /* ./../lib/standard//collection//hash_collection.nit:148 */
554 ATTR_hash_collection___HashCollection____last_accessed_key(fra
.me
.REG
[0]) = NIT_NULL
;
555 stack_frame_head
= fra
.me
.prev
;
558 void hash_collection___HashCollection___enlarge(val_t p0
, val_t p1
){
559 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
565 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
566 fra
.me
.file
= LOCATE_hash_collection
;
568 fra
.me
.meth
= LOCATE_hash_collection___HashCollection___enlarge
;
569 fra
.me
.has_broke
= 0;
571 fra
.me
.REG
[0] = NIT_NULL
;
572 fra
.me
.REG
[1] = NIT_NULL
;
573 fra
.me
.REG
[2] = NIT_NULL
;
574 fra
.me
.REG
[3] = NIT_NULL
;
577 /* ./../lib/standard//collection//hash_collection.nit:153 */
578 REGB1
= TAG_Bool(ATTR_hash_collection___HashCollection____capacity(fra
.me
.REG
[0])!=NIT_NULL
);
579 if (UNTAG_Bool(REGB1
)) {
581 nit_abort("Uninitialized attribute %s", "_capacity", LOCATE_hash_collection
, 153);
583 REGB1
= ATTR_hash_collection___HashCollection____capacity(fra
.me
.REG
[0]);
584 /* ./../lib/standard//collection//hash_collection.nit:155 */
585 REGB2
= TAG_Bool(ATTR_hash_collection___HashCollection____length(fra
.me
.REG
[0])!=NIT_NULL
);
586 if (UNTAG_Bool(REGB2
)) {
588 nit_abort("Uninitialized attribute %s", "_length", LOCATE_hash_collection
, 155);
590 REGB2
= ATTR_hash_collection___HashCollection____length(fra
.me
.REG
[0]);
592 /* ./../lib/standard//kernel.nit:215 */
593 REGB3
= TAG_Int(UNTAG_Int(REGB2
)+UNTAG_Int(REGB3
));
594 /* ./../lib/standard//kernel.nit:212 */
595 REGB3
= TAG_Bool(UNTAG_Int(REGB0
)<UNTAG_Int(REGB3
));
596 /* ./../lib/standard//collection//hash_collection.nit:155 */
597 if (UNTAG_Bool(REGB3
)) {
598 REGB3
= TAG_Bool(ATTR_hash_collection___HashCollection____length(fra
.me
.REG
[0])!=NIT_NULL
);
599 if (UNTAG_Bool(REGB3
)) {
601 nit_abort("Uninitialized attribute %s", "_length", LOCATE_hash_collection
, 155);
603 REGB3
= ATTR_hash_collection___HashCollection____length(fra
.me
.REG
[0]);
605 /* ./../lib/standard//kernel.nit:215 */
606 REGB2
= TAG_Int(UNTAG_Int(REGB3
)+UNTAG_Int(REGB2
));
607 /* ./../lib/standard//collection//hash_collection.nit:155 */
610 /* ./../lib/standard//collection//hash_collection.nit:156 */
611 REGB2
= TAG_Bool(ATTR_hash_collection___HashCollection____capacity(fra
.me
.REG
[0])!=NIT_NULL
);
612 if (UNTAG_Bool(REGB2
)) {
614 nit_abort("Uninitialized attribute %s", "_capacity", LOCATE_hash_collection
, 156);
616 REGB2
= ATTR_hash_collection___HashCollection____capacity(fra
.me
.REG
[0]);
617 /* ./../lib/standard//kernel.nit:211 */
618 REGB2
= TAG_Bool(UNTAG_Int(REGB0
)<=UNTAG_Int(REGB2
));
619 /* ./../lib/standard//collection//hash_collection.nit:156 */
620 if (UNTAG_Bool(REGB2
)) {
623 /* ./../lib/standard//collection//hash_collection.nit:157 */
624 ATTR_hash_collection___HashCollection____capacity(fra
.me
.REG
[0]) = REGB0
;
625 /* ./../lib/standard//collection//hash_collection.nit:158 */
626 ATTR_hash_collection___HashCollection____last_accessed_key(fra
.me
.REG
[0]) = NIT_NULL
;
627 /* ./../lib/standard//collection//array.nit:648 */
628 fra
.me
.REG
[1] = NEW_NativeArray(UNTAG_Int(REGB0
), sizeof(val_t
));
629 /* ./../lib/standard//collection//hash_collection.nit:162 */
630 ATTR_hash_collection___HashCollection____array(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
631 /* ./../lib/standard//collection//hash_collection.nit:165 */
633 /* ./../lib/standard//kernel.nit:217 */
634 REGB2
= TAG_Int(UNTAG_Int(REGB0
)-UNTAG_Int(REGB2
));
635 /* ./../lib/standard//collection//hash_collection.nit:166 */
638 /* ./../lib/standard//kernel.nit:213 */
639 REGB0
= TAG_Bool(UNTAG_Int(REGB2
)>=UNTAG_Int(REGB0
));
640 /* ./../lib/standard//collection//hash_collection.nit:166 */
641 if (UNTAG_Bool(REGB0
)) {
642 /* ./../lib/standard//collection//array.nit:655 */
643 ((Nit_NativeArray
)fra
.me
.REG
[1])->val
[UNTAG_Int(REGB2
)]=NIT_NULL
;
644 /* ./../lib/standard//collection//hash_collection.nit:168 */
646 /* ./../lib/standard//kernel.nit:217 */
647 REGB0
= TAG_Int(UNTAG_Int(REGB2
)-UNTAG_Int(REGB0
));
648 /* ./../lib/standard//collection//hash_collection.nit:168 */
651 /* ./../lib/standard//collection//hash_collection.nit:166 */
656 /* ./../lib/standard//collection//hash_collection.nit:171 */
657 REGB2
= TAG_Bool(ATTR_hash_collection___HashCollection____capacity(fra
.me
.REG
[0])!=NIT_NULL
);
658 if (UNTAG_Bool(REGB2
)) {
660 nit_abort("Uninitialized attribute %s", "_capacity", LOCATE_hash_collection
, 171);
662 REGB2
= ATTR_hash_collection___HashCollection____capacity(fra
.me
.REG
[0]);
663 /* ./../lib/standard//kernel.nit:211 */
664 REGB1
= TAG_Bool(UNTAG_Int(REGB2
)<=UNTAG_Int(REGB1
));
665 /* ./../lib/standard//collection//hash_collection.nit:171 */
666 if (UNTAG_Bool(REGB1
)) {
669 /* ./../lib/standard//collection//hash_collection.nit:174 */
670 fra
.me
.REG
[2] = ATTR_hash_collection___HashCollection____first_item(fra
.me
.REG
[0]);
671 /* ./../lib/standard//collection//hash_collection.nit:175 */
673 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
674 if (UNTAG_Bool(REGB1
)) {
676 REGB2
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
677 if (UNTAG_Bool(REGB2
)) {
678 REGB2
= TAG_Bool(false);
681 REGB2
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
685 REGB1
= TAG_Bool(!UNTAG_Bool(REGB1
));
686 if (UNTAG_Bool(REGB1
)) {
687 /* ./../lib/standard//collection//hash_collection.nit:176 */
688 REGB1
= TAG_Bool(ATTR_hash_collection___HashNode____key(fra
.me
.REG
[2])!=NIT_NULL
);
689 if (UNTAG_Bool(REGB1
)) {
691 nit_abort("Uninitialized attribute %s", "_key", LOCATE_hash_collection
, 176);
693 fra
.me
.REG
[3] = ATTR_hash_collection___HashNode____key(fra
.me
.REG
[2]);
694 REGB1
= CALL_hash_collection___HashCollection___index_at(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[3]);
695 /* ./../lib/standard//collection//array.nit:654 */
696 fra
.me
.REG
[3] = ((Nit_NativeArray
)fra
.me
.REG
[1])->val
[UNTAG_Int(REGB1
)];
697 /* ./../lib/standard//collection//array.nit:655 */
698 ((Nit_NativeArray
)fra
.me
.REG
[1])->val
[UNTAG_Int(REGB1
)]=fra
.me
.REG
[2];
699 /* ./../lib/standard//collection//hash_collection.nit:180 */
700 ATTR_hash_collection___HashNode____next_in_bucklet(fra
.me
.REG
[2]) = fra
.me
.REG
[3];
701 /* ./../lib/standard//collection//hash_collection.nit:181 */
702 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
703 if (UNTAG_Bool(REGB1
)) {
705 REGB2
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
706 if (UNTAG_Bool(REGB2
)) {
707 REGB2
= TAG_Bool(false);
710 REGB2
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
714 REGB1
= TAG_Bool(!UNTAG_Bool(REGB1
));
715 if (UNTAG_Bool(REGB1
)) {
716 ATTR_hash_collection___HashNode____prev_in_bucklet(fra
.me
.REG
[3]) = fra
.me
.REG
[2];
718 /* ./../lib/standard//collection//hash_collection.nit:182 */
719 fra
.me
.REG
[3] = ATTR_hash_collection___HashNode____next_item(fra
.me
.REG
[2]);
720 fra
.me
.REG
[2] = fra
.me
.REG
[3];
722 /* ./../lib/standard//collection//hash_collection.nit:175 */
728 stack_frame_head
= fra
.me
.prev
;
731 void hash_collection___HashCollection___init(val_t p0
, int* init_table
){
732 int itpos0
= VAL2OBJ(p0
)->vft
[INIT_TABLE_POS_HashCollection
].i
;
733 struct {struct stack_frame_t me
;} fra
;
735 if (init_table
[itpos0
]) return;
736 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
737 fra
.me
.file
= LOCATE_hash_collection
;
739 fra
.me
.meth
= LOCATE_hash_collection___HashCollection___init
;
740 fra
.me
.has_broke
= 0;
742 stack_frame_head
= fra
.me
.prev
;
743 init_table
[itpos0
] = 1;
746 val_t
hash_collection___HashNode___next_item(val_t p0
){
747 struct {struct stack_frame_t me
;} fra
;
749 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
750 fra
.me
.file
= LOCATE_hash_collection
;
752 fra
.me
.meth
= LOCATE_hash_collection___HashNode___next_item
;
753 fra
.me
.has_broke
= 0;
755 fra
.me
.REG
[0] = NIT_NULL
;
757 /* ./../lib/standard//collection//hash_collection.nit:190 */
758 fra
.me
.REG
[0] = ATTR_hash_collection___HashNode____next_item(fra
.me
.REG
[0]);
759 stack_frame_head
= fra
.me
.prev
;
760 return fra
.me
.REG
[0];
762 void hash_collection___HashNode___next_item__eq(val_t p0
, val_t p1
){
763 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
765 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
766 fra
.me
.file
= LOCATE_hash_collection
;
768 fra
.me
.meth
= LOCATE_hash_collection___HashNode___next_item__eq
;
769 fra
.me
.has_broke
= 0;
771 fra
.me
.REG
[0] = NIT_NULL
;
772 fra
.me
.REG
[1] = NIT_NULL
;
775 /* ./../lib/standard//collection//hash_collection.nit:190 */
776 ATTR_hash_collection___HashNode____next_item(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
777 stack_frame_head
= fra
.me
.prev
;
780 val_t
hash_collection___HashNode___prev_item(val_t p0
){
781 struct {struct stack_frame_t me
;} fra
;
783 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
784 fra
.me
.file
= LOCATE_hash_collection
;
786 fra
.me
.meth
= LOCATE_hash_collection___HashNode___prev_item
;
787 fra
.me
.has_broke
= 0;
789 fra
.me
.REG
[0] = NIT_NULL
;
791 /* ./../lib/standard//collection//hash_collection.nit:191 */
792 fra
.me
.REG
[0] = ATTR_hash_collection___HashNode____prev_item(fra
.me
.REG
[0]);
793 stack_frame_head
= fra
.me
.prev
;
794 return fra
.me
.REG
[0];
796 void hash_collection___HashNode___prev_item__eq(val_t p0
, val_t p1
){
797 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
799 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
800 fra
.me
.file
= LOCATE_hash_collection
;
802 fra
.me
.meth
= LOCATE_hash_collection___HashNode___prev_item__eq
;
803 fra
.me
.has_broke
= 0;
805 fra
.me
.REG
[0] = NIT_NULL
;
806 fra
.me
.REG
[1] = NIT_NULL
;
809 /* ./../lib/standard//collection//hash_collection.nit:191 */
810 ATTR_hash_collection___HashNode____prev_item(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
811 stack_frame_head
= fra
.me
.prev
;
814 void hash_collection___HashNode___init(val_t p0
, val_t p1
, int* init_table
){
815 int itpos1
= VAL2OBJ(p0
)->vft
[INIT_TABLE_POS_HashNode
].i
;
816 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
818 if (init_table
[itpos1
]) return;
819 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
820 fra
.me
.file
= LOCATE_hash_collection
;
822 fra
.me
.meth
= LOCATE_hash_collection___HashNode___init
;
823 fra
.me
.has_broke
= 0;
825 fra
.me
.REG
[0] = NIT_NULL
;
826 fra
.me
.REG
[1] = NIT_NULL
;
829 /* ./../lib/standard//collection//hash_collection.nit:196 */
830 ATTR_hash_collection___HashNode____key(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
831 stack_frame_head
= fra
.me
.prev
;
832 init_table
[itpos1
] = 1;
835 val_t
hash_collection___HashMap_____bra(val_t p0
, val_t p1
){
836 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
840 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
841 fra
.me
.file
= LOCATE_hash_collection
;
843 fra
.me
.meth
= LOCATE_hash_collection___HashMap_____bra
;
844 fra
.me
.has_broke
= 0;
846 fra
.me
.REG
[0] = NIT_NULL
;
847 fra
.me
.REG
[1] = NIT_NULL
;
850 /* ./../lib/standard//collection//hash_collection.nit:206 */
851 fra
.me
.REG
[1] = CALL_hash_collection___HashCollection___node_at(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
852 /* ./../lib/standard//collection//hash_collection.nit:207 */
853 REGB0
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
854 if (UNTAG_Bool(REGB0
)) {
856 REGB1
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
857 if (UNTAG_Bool(REGB1
)) {
858 REGB1
= TAG_Bool(false);
861 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[1])(fra
.me
.REG
[1], NIT_NULL
);
865 if (UNTAG_Bool(REGB0
)) {
866 /* ./../lib/standard//collection//hash_collection.nit:208 */
867 nit_abort("Aborted", NULL
, LOCATE_hash_collection
, 208);
869 /* ./../lib/standard//collection//hash_collection.nit:210 */
870 fra
.me
.REG
[1] = ATTR_hash_collection___HashMapNode____value(fra
.me
.REG
[1]);
874 stack_frame_head
= fra
.me
.prev
;
875 return fra
.me
.REG
[1];
877 val_t
hash_collection___HashMap___has_key(val_t p0
, val_t p1
){
878 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
882 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
883 fra
.me
.file
= LOCATE_hash_collection
;
885 fra
.me
.meth
= LOCATE_hash_collection___HashMap___has_key
;
886 fra
.me
.has_broke
= 0;
888 fra
.me
.REG
[0] = NIT_NULL
;
889 fra
.me
.REG
[1] = NIT_NULL
;
892 /* ./../lib/standard//collection//hash_collection.nit:214 */
893 fra
.me
.REG
[1] = CALL_hash_collection___HashCollection___node_at(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
894 REGB0
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
895 if (UNTAG_Bool(REGB0
)) {
897 REGB1
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
898 if (UNTAG_Bool(REGB1
)) {
899 REGB1
= TAG_Bool(false);
902 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[1])(fra
.me
.REG
[1], NIT_NULL
);
906 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
909 stack_frame_head
= fra
.me
.prev
;
912 val_t
hash_collection___HashMap___iterator(val_t p0
){
913 struct {struct stack_frame_t me
;} fra
;
915 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
916 fra
.me
.file
= LOCATE_hash_collection
;
918 fra
.me
.meth
= LOCATE_hash_collection___HashMap___iterator
;
919 fra
.me
.has_broke
= 0;
921 fra
.me
.REG
[0] = NIT_NULL
;
923 /* ./../lib/standard//collection//hash_collection.nit:216 */
924 fra
.me
.REG
[0] = NEW_HashMapIterator_hash_collection___HashMapIterator___init(fra
.me
.REG
[0]);
927 stack_frame_head
= fra
.me
.prev
;
928 return fra
.me
.REG
[0];
930 void hash_collection___HashMap___iterate(val_t p0
, struct stack_frame_t
*closctx_param
, fun_t clos_fun0
){
931 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
936 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
937 fra
.me
.file
= LOCATE_hash_collection
;
939 fra
.me
.meth
= LOCATE_hash_collection___HashMap___iterate
;
940 fra
.me
.has_broke
= 0;
942 fra
.me
.REG
[0] = NIT_NULL
;
943 fra
.me
.REG
[1] = NIT_NULL
;
944 fra
.me
.closure_ctx
= closctx_param
;
945 fra
.me
.closure_funs
= CREG
;
948 /* ./../lib/standard//collection//hash_collection.nit:221 */
949 fra
.me
.REG
[0] = ATTR_hash_collection___HashCollection____first_item(fra
.me
.REG
[0]);
950 /* ./../lib/standard//collection//hash_collection.nit:222 */
952 REGB0
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
953 if (UNTAG_Bool(REGB0
)) {
955 REGB1
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
956 if (UNTAG_Bool(REGB1
)) {
957 REGB1
= TAG_Bool(false);
960 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[0])(fra
.me
.REG
[0], NIT_NULL
);
964 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
965 if (UNTAG_Bool(REGB0
)) {
966 /* ./../lib/standard//collection//hash_collection.nit:223 */
967 fra
.me
.REG
[1] = ATTR_hash_collection___HashMapNode____value(fra
.me
.REG
[0]);
968 ((void (*)(struct stack_frame_t
*, val_t
))(CREG
[0]))(closctx_param
, fra
.me
.REG
[1]);
969 if (closctx_param
->has_broke
) {
972 /* ./../lib/standard//collection//hash_collection.nit:224 */
973 fra
.me
.REG
[1] = ATTR_hash_collection___HashNode____next_item(fra
.me
.REG
[0]);
974 fra
.me
.REG
[0] = fra
.me
.REG
[1];
976 /* ./../lib/standard//collection//hash_collection.nit:222 */
982 stack_frame_head
= fra
.me
.prev
;
985 val_t
hash_collection___HashMap___first(val_t p0
){
986 struct {struct stack_frame_t me
;} fra
;
990 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
991 fra
.me
.file
= LOCATE_hash_collection
;
993 fra
.me
.meth
= LOCATE_hash_collection___HashMap___first
;
994 fra
.me
.has_broke
= 0;
996 fra
.me
.REG
[0] = NIT_NULL
;
998 /* ./../lib/standard//collection//hash_collection.nit:230 */
999 REGB0
= TAG_Bool(ATTR_hash_collection___HashCollection____length(fra
.me
.REG
[0])!=NIT_NULL
);
1000 if (UNTAG_Bool(REGB0
)) {
1002 nit_abort("Uninitialized attribute %s", "_length", LOCATE_hash_collection
, 230);
1004 REGB0
= ATTR_hash_collection___HashCollection____length(fra
.me
.REG
[0]);
1006 /* ./../lib/standard//kernel.nit:214 */
1007 REGB1
= TAG_Bool(UNTAG_Int(REGB0
)>UNTAG_Int(REGB1
));
1008 /* ./../lib/standard//collection//hash_collection.nit:230 */
1009 if (UNTAG_Bool(REGB1
)) {
1011 nit_abort("Assert failed", NULL
, LOCATE_hash_collection
, 230);
1013 /* ./../lib/standard//collection//hash_collection.nit:231 */
1014 fra
.me
.REG
[0] = ATTR_hash_collection___HashCollection____first_item(fra
.me
.REG
[0]);
1015 REGB1
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
1016 if (UNTAG_Bool(REGB1
)) {
1017 nit_abort("Reciever is null", NULL
, LOCATE_hash_collection
, 231);
1019 fra
.me
.REG
[0] = ATTR_hash_collection___HashMapNode____value(fra
.me
.REG
[0]);
1022 stack_frame_head
= fra
.me
.prev
;
1023 return fra
.me
.REG
[0];
1025 val_t
hash_collection___HashMap___is_empty(val_t p0
){
1026 struct {struct stack_frame_t me
;} fra
;
1031 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1032 fra
.me
.file
= LOCATE_hash_collection
;
1034 fra
.me
.meth
= LOCATE_hash_collection___HashMap___is_empty
;
1035 fra
.me
.has_broke
= 0;
1036 fra
.me
.REG_size
= 1;
1037 fra
.me
.REG
[0] = NIT_NULL
;
1039 /* ./../lib/standard//collection//hash_collection.nit:234 */
1040 REGB0
= TAG_Bool(ATTR_hash_collection___HashCollection____length(fra
.me
.REG
[0])!=NIT_NULL
);
1041 if (UNTAG_Bool(REGB0
)) {
1043 nit_abort("Uninitialized attribute %s", "_length", LOCATE_hash_collection
, 234);
1045 REGB0
= ATTR_hash_collection___HashCollection____length(fra
.me
.REG
[0]);
1047 REGB2
= TAG_Bool(IS_EQUAL_OO(REGB0
,REGB1
));
1048 if (UNTAG_Bool(REGB2
)) {
1050 /* ./../lib/standard//kernel.nit:207 */
1051 REGB1
= TAG_Bool((REGB0
)==(REGB1
));
1052 /* ./../lib/standard//collection//hash_collection.nit:234 */
1057 stack_frame_head
= fra
.me
.prev
;
1060 val_t
hash_collection___HashMap___count(val_t p0
, val_t p1
){
1061 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
1066 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1067 fra
.me
.file
= LOCATE_hash_collection
;
1069 fra
.me
.meth
= LOCATE_hash_collection___HashMap___count
;
1070 fra
.me
.has_broke
= 0;
1071 fra
.me
.REG_size
= 3;
1072 fra
.me
.REG
[0] = NIT_NULL
;
1073 fra
.me
.REG
[1] = NIT_NULL
;
1074 fra
.me
.REG
[2] = NIT_NULL
;
1077 /* ./../lib/standard//collection//hash_collection.nit:238 */
1079 /* ./../lib/standard//collection//hash_collection.nit:239 */
1080 fra
.me
.REG
[0] = ATTR_hash_collection___HashCollection____first_item(fra
.me
.REG
[0]);
1081 /* ./../lib/standard//collection//hash_collection.nit:240 */
1083 REGB1
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
1084 if (UNTAG_Bool(REGB1
)) {
1086 REGB2
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
1087 if (UNTAG_Bool(REGB2
)) {
1088 REGB2
= TAG_Bool(false);
1091 REGB2
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[0])(fra
.me
.REG
[0], NIT_NULL
);
1095 REGB1
= TAG_Bool(!UNTAG_Bool(REGB1
));
1096 if (UNTAG_Bool(REGB1
)) {
1097 /* ./../lib/standard//collection//hash_collection.nit:241 */
1098 fra
.me
.REG
[2] = ATTR_hash_collection___HashMapNode____value(fra
.me
.REG
[0]);
1099 REGB1
= TAG_Bool(IS_EQUAL_NN(fra
.me
.REG
[2],fra
.me
.REG
[1]));
1100 if (UNTAG_Bool(REGB1
)) {
1102 REGB2
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
1103 if (UNTAG_Bool(REGB2
)) {
1104 REGB2
= TAG_Bool(false);
1107 REGB2
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[1]);
1111 if (UNTAG_Bool(REGB1
)) {
1113 /* ./../lib/standard//kernel.nit:215 */
1114 REGB1
= TAG_Int(UNTAG_Int(REGB0
)+UNTAG_Int(REGB1
));
1115 /* ./../lib/standard//collection//hash_collection.nit:241 */
1118 /* ./../lib/standard//collection//hash_collection.nit:242 */
1119 fra
.me
.REG
[2] = ATTR_hash_collection___HashNode____next_item(fra
.me
.REG
[0]);
1120 fra
.me
.REG
[0] = fra
.me
.REG
[2];
1122 /* ./../lib/standard//collection//hash_collection.nit:240 */
1127 /* ./../lib/standard//collection//hash_collection.nit:244 */
1130 stack_frame_head
= fra
.me
.prev
;
1133 val_t
hash_collection___HashMap___has(val_t p0
, val_t p1
){
1134 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
1138 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1139 fra
.me
.file
= LOCATE_hash_collection
;
1141 fra
.me
.meth
= LOCATE_hash_collection___HashMap___has
;
1142 fra
.me
.has_broke
= 0;
1143 fra
.me
.REG_size
= 3;
1144 fra
.me
.REG
[0] = NIT_NULL
;
1145 fra
.me
.REG
[1] = NIT_NULL
;
1146 fra
.me
.REG
[2] = NIT_NULL
;
1149 /* ./../lib/standard//collection//hash_collection.nit:249 */
1150 fra
.me
.REG
[0] = ATTR_hash_collection___HashCollection____first_item(fra
.me
.REG
[0]);
1151 /* ./../lib/standard//collection//hash_collection.nit:250 */
1153 REGB0
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
1154 if (UNTAG_Bool(REGB0
)) {
1156 REGB1
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
1157 if (UNTAG_Bool(REGB1
)) {
1158 REGB1
= TAG_Bool(false);
1161 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[0])(fra
.me
.REG
[0], NIT_NULL
);
1165 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
1166 if (UNTAG_Bool(REGB0
)) {
1167 /* ./../lib/standard//collection//hash_collection.nit:251 */
1168 fra
.me
.REG
[2] = ATTR_hash_collection___HashMapNode____value(fra
.me
.REG
[0]);
1169 REGB0
= TAG_Bool(IS_EQUAL_NN(fra
.me
.REG
[2],fra
.me
.REG
[1]));
1170 if (UNTAG_Bool(REGB0
)) {
1172 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
1173 if (UNTAG_Bool(REGB1
)) {
1174 REGB1
= TAG_Bool(false);
1177 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[1]);
1181 if (UNTAG_Bool(REGB0
)) {
1182 REGB0
= TAG_Bool(true);
1185 /* ./../lib/standard//collection//hash_collection.nit:252 */
1186 fra
.me
.REG
[2] = ATTR_hash_collection___HashNode____next_item(fra
.me
.REG
[0]);
1187 fra
.me
.REG
[0] = fra
.me
.REG
[2];
1189 /* ./../lib/standard//collection//hash_collection.nit:250 */
1194 /* ./../lib/standard//collection//hash_collection.nit:254 */
1195 REGB1
= TAG_Bool(false);
1199 stack_frame_head
= fra
.me
.prev
;
1202 val_t
hash_collection___HashMap___has_only(val_t p0
, val_t p1
){
1203 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
1207 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1208 fra
.me
.file
= LOCATE_hash_collection
;
1210 fra
.me
.meth
= LOCATE_hash_collection___HashMap___has_only
;
1211 fra
.me
.has_broke
= 0;
1212 fra
.me
.REG_size
= 3;
1213 fra
.me
.REG
[0] = NIT_NULL
;
1214 fra
.me
.REG
[1] = NIT_NULL
;
1215 fra
.me
.REG
[2] = NIT_NULL
;
1218 /* ./../lib/standard//collection//hash_collection.nit:259 */
1219 fra
.me
.REG
[0] = ATTR_hash_collection___HashCollection____first_item(fra
.me
.REG
[0]);
1220 /* ./../lib/standard//collection//hash_collection.nit:260 */
1222 REGB0
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
1223 if (UNTAG_Bool(REGB0
)) {
1225 REGB1
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
1226 if (UNTAG_Bool(REGB1
)) {
1227 REGB1
= TAG_Bool(false);
1230 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[0])(fra
.me
.REG
[0], NIT_NULL
);
1234 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
1235 if (UNTAG_Bool(REGB0
)) {
1236 /* ./../lib/standard//collection//hash_collection.nit:261 */
1237 fra
.me
.REG
[2] = ATTR_hash_collection___HashMapNode____value(fra
.me
.REG
[0]);
1238 REGB0
= TAG_Bool(IS_EQUAL_NN(fra
.me
.REG
[2],fra
.me
.REG
[1]));
1239 if (UNTAG_Bool(REGB0
)) {
1241 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
1242 if (UNTAG_Bool(REGB1
)) {
1243 REGB1
= TAG_Bool(false);
1246 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[1]);
1250 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
1251 if (UNTAG_Bool(REGB0
)) {
1252 REGB0
= TAG_Bool(false);
1255 /* ./../lib/standard//collection//hash_collection.nit:262 */
1256 fra
.me
.REG
[2] = ATTR_hash_collection___HashNode____next_item(fra
.me
.REG
[0]);
1257 fra
.me
.REG
[0] = fra
.me
.REG
[2];
1259 /* ./../lib/standard//collection//hash_collection.nit:260 */
1264 /* ./../lib/standard//collection//hash_collection.nit:264 */
1265 REGB1
= TAG_Bool(true);
1269 stack_frame_head
= fra
.me
.prev
;
1272 void hash_collection___HashMap_____braeq(val_t p0
, val_t p1
, val_t p2
){
1273 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
1278 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1279 fra
.me
.file
= LOCATE_hash_collection
;
1281 fra
.me
.meth
= LOCATE_hash_collection___HashMap_____braeq
;
1282 fra
.me
.has_broke
= 0;
1283 fra
.me
.REG_size
= 4;
1284 fra
.me
.REG
[0] = NIT_NULL
;
1285 fra
.me
.REG
[1] = NIT_NULL
;
1286 fra
.me
.REG
[2] = NIT_NULL
;
1287 fra
.me
.REG
[3] = NIT_NULL
;
1291 /* ./../lib/standard//collection//hash_collection.nit:269 */
1292 REGB0
= CALL_hash_collection___HashCollection___index_at(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
1293 /* ./../lib/standard//collection//hash_collection.nit:270 */
1294 fra
.me
.REG
[3] = CALL_hash_collection___HashCollection___node_at_idx(fra
.me
.REG
[0])(fra
.me
.REG
[0], REGB0
, fra
.me
.REG
[1]);
1295 /* ./../lib/standard//collection//hash_collection.nit:271 */
1296 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
1297 if (UNTAG_Bool(REGB1
)) {
1299 REGB2
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
1300 if (UNTAG_Bool(REGB2
)) {
1301 REGB2
= TAG_Bool(false);
1304 REGB2
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
1308 REGB1
= TAG_Bool(!UNTAG_Bool(REGB1
));
1309 if (UNTAG_Bool(REGB1
)) {
1310 /* ./../lib/standard//collection//hash_collection.nit:272 */
1311 ATTR_hash_collection___HashNode____key(fra
.me
.REG
[3]) = fra
.me
.REG
[1];
1312 /* ./../lib/standard//collection//hash_collection.nit:273 */
1313 ATTR_hash_collection___HashMapNode____value(fra
.me
.REG
[3]) = fra
.me
.REG
[2];
1315 /* ./../lib/standard//collection//hash_collection.nit:275 */
1316 fra
.me
.REG
[2] = NEW_HashMapNode_hash_collection___HashMapNode___init(fra
.me
.REG
[1], fra
.me
.REG
[2]);
1317 CALL_hash_collection___HashCollection___store(fra
.me
.REG
[0])(fra
.me
.REG
[0], REGB0
, fra
.me
.REG
[2]);
1319 stack_frame_head
= fra
.me
.prev
;
1322 void hash_collection___HashMap___remove(val_t p0
, val_t p1
){
1323 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
1327 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1328 fra
.me
.file
= LOCATE_hash_collection
;
1330 fra
.me
.meth
= LOCATE_hash_collection___HashMap___remove
;
1331 fra
.me
.has_broke
= 0;
1332 fra
.me
.REG_size
= 4;
1333 fra
.me
.REG
[0] = NIT_NULL
;
1334 fra
.me
.REG
[1] = NIT_NULL
;
1335 fra
.me
.REG
[2] = NIT_NULL
;
1336 fra
.me
.REG
[3] = NIT_NULL
;
1339 /* ./../lib/standard//collection//hash_collection.nit:281 */
1340 fra
.me
.REG
[2] = ATTR_hash_collection___HashCollection____first_item(fra
.me
.REG
[0]);
1341 /* ./../lib/standard//collection//hash_collection.nit:282 */
1343 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
1344 if (UNTAG_Bool(REGB0
)) {
1346 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
1347 if (UNTAG_Bool(REGB1
)) {
1348 REGB1
= TAG_Bool(false);
1351 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
1355 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
1356 if (UNTAG_Bool(REGB0
)) {
1357 /* ./../lib/standard//collection//hash_collection.nit:283 */
1358 fra
.me
.REG
[3] = ATTR_hash_collection___HashMapNode____value(fra
.me
.REG
[2]);
1359 REGB0
= TAG_Bool(IS_EQUAL_NN(fra
.me
.REG
[3],fra
.me
.REG
[1]));
1360 if (UNTAG_Bool(REGB0
)) {
1362 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
1363 if (UNTAG_Bool(REGB1
)) {
1364 REGB1
= TAG_Bool(false);
1367 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[1]);
1371 if (UNTAG_Bool(REGB0
)) {
1372 /* ./../lib/standard//collection//hash_collection.nit:284 */
1373 REGB0
= TAG_Bool(ATTR_hash_collection___HashNode____key(fra
.me
.REG
[2])!=NIT_NULL
);
1374 if (UNTAG_Bool(REGB0
)) {
1376 nit_abort("Uninitialized attribute %s", "_key", LOCATE_hash_collection
, 284);
1378 fra
.me
.REG
[3] = ATTR_hash_collection___HashNode____key(fra
.me
.REG
[2]);
1379 CALL_hash_collection___HashCollection___remove_node(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[3]);
1380 /* ./../lib/standard//collection//hash_collection.nit:285 */
1383 /* ./../lib/standard//collection//hash_collection.nit:287 */
1384 fra
.me
.REG
[3] = ATTR_hash_collection___HashNode____next_item(fra
.me
.REG
[2]);
1385 fra
.me
.REG
[2] = fra
.me
.REG
[3];
1387 /* ./../lib/standard//collection//hash_collection.nit:282 */
1393 stack_frame_head
= fra
.me
.prev
;
1396 void hash_collection___HashMap___remove_at(val_t p0
, val_t p1
){
1397 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
1399 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1400 fra
.me
.file
= LOCATE_hash_collection
;
1402 fra
.me
.meth
= LOCATE_hash_collection___HashMap___remove_at
;
1403 fra
.me
.has_broke
= 0;
1404 fra
.me
.REG_size
= 2;
1405 fra
.me
.REG
[0] = NIT_NULL
;
1406 fra
.me
.REG
[1] = NIT_NULL
;
1409 /* ./../lib/standard//collection//hash_collection.nit:291 */
1410 CALL_hash_collection___HashCollection___remove_node(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
1411 stack_frame_head
= fra
.me
.prev
;
1414 void hash_collection___HashMap___clear(val_t p0
){
1415 struct {struct stack_frame_t me
;} fra
;
1417 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1418 fra
.me
.file
= LOCATE_hash_collection
;
1420 fra
.me
.meth
= LOCATE_hash_collection___HashMap___clear
;
1421 fra
.me
.has_broke
= 0;
1422 fra
.me
.REG_size
= 1;
1423 fra
.me
.REG
[0] = NIT_NULL
;
1425 /* ./../lib/standard//collection//hash_collection.nit:293 */
1426 CALL_hash_collection___HashCollection___raz(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1427 stack_frame_head
= fra
.me
.prev
;
1430 void hash_collection___HashMap___init(val_t p0
, int* init_table
){
1431 int itpos2
= VAL2OBJ(p0
)->vft
[INIT_TABLE_POS_HashMap
].i
;
1432 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
1435 if (init_table
[itpos2
]) return;
1436 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1437 fra
.me
.file
= LOCATE_hash_collection
;
1439 fra
.me
.meth
= LOCATE_hash_collection___HashMap___init
;
1440 fra
.me
.has_broke
= 0;
1441 fra
.me
.REG_size
= 2;
1442 fra
.me
.REG
[0] = NIT_NULL
;
1443 fra
.me
.REG
[1] = NIT_NULL
;
1445 /* ./../lib/standard//collection//hash_collection.nit:295 */
1446 fra
.me
.REG
[1] = fra
.me
.REG
[0];
1447 CALL_hash_collection___HashCollection___init(fra
.me
.REG
[0])(fra
.me
.REG
[0], init_table
);
1448 /* ./../lib/standard//collection//hash_collection.nit:297 */
1450 ATTR_hash_collection___HashCollection____capacity(fra
.me
.REG
[1]) = REGB0
;
1451 /* ./../lib/standard//collection//hash_collection.nit:298 */
1453 ATTR_hash_collection___HashCollection____length(fra
.me
.REG
[1]) = REGB0
;
1454 /* ./../lib/standard//collection//hash_collection.nit:299 */
1456 CALL_hash_collection___HashCollection___enlarge(fra
.me
.REG
[1])(fra
.me
.REG
[1], REGB0
);
1457 stack_frame_head
= fra
.me
.prev
;
1458 init_table
[itpos2
] = 1;
1461 void hash_collection___HashMapNode___init(val_t p0
, val_t p1
, val_t p2
, int* init_table
){
1462 int itpos3
= VAL2OBJ(p0
)->vft
[INIT_TABLE_POS_HashMapNode
].i
;
1463 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
1465 if (init_table
[itpos3
]) return;
1466 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1467 fra
.me
.file
= LOCATE_hash_collection
;
1469 fra
.me
.meth
= LOCATE_hash_collection___HashMapNode___init
;
1470 fra
.me
.has_broke
= 0;
1471 fra
.me
.REG_size
= 4;
1472 fra
.me
.REG
[0] = NIT_NULL
;
1473 fra
.me
.REG
[1] = NIT_NULL
;
1474 fra
.me
.REG
[2] = NIT_NULL
;
1475 fra
.me
.REG
[3] = NIT_NULL
;
1479 /* ./../lib/standard//collection//hash_collection.nit:308 */
1480 fra
.me
.REG
[3] = fra
.me
.REG
[0];
1481 /* ./../lib/standard//collection//hash_collection.nit:310 */
1482 CALL_hash_collection___HashNode___init(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1], init_table
);
1483 /* ./../lib/standard//collection//hash_collection.nit:311 */
1484 ATTR_hash_collection___HashMapNode____value(fra
.me
.REG
[3]) = fra
.me
.REG
[2];
1485 stack_frame_head
= fra
.me
.prev
;
1486 init_table
[itpos3
] = 1;
1489 val_t
hash_collection___HashMapIterator___is_ok(val_t p0
){
1490 struct {struct stack_frame_t me
;} fra
;
1494 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1495 fra
.me
.file
= LOCATE_hash_collection
;
1497 fra
.me
.meth
= LOCATE_hash_collection___HashMapIterator___is_ok
;
1498 fra
.me
.has_broke
= 0;
1499 fra
.me
.REG_size
= 1;
1500 fra
.me
.REG
[0] = NIT_NULL
;
1502 /* ./../lib/standard//collection//hash_collection.nit:317 */
1503 fra
.me
.REG
[0] = ATTR_hash_collection___HashMapIterator____node(fra
.me
.REG
[0]);
1504 REGB0
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
1505 if (UNTAG_Bool(REGB0
)) {
1507 REGB1
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
1508 if (UNTAG_Bool(REGB1
)) {
1509 REGB1
= TAG_Bool(false);
1512 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[0])(fra
.me
.REG
[0], NIT_NULL
);
1516 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
1519 stack_frame_head
= fra
.me
.prev
;
1522 val_t
hash_collection___HashMapIterator___item(val_t p0
){
1523 struct {struct stack_frame_t me
;} fra
;
1526 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1527 fra
.me
.file
= LOCATE_hash_collection
;
1529 fra
.me
.meth
= LOCATE_hash_collection___HashMapIterator___item
;
1530 fra
.me
.has_broke
= 0;
1531 fra
.me
.REG_size
= 1;
1532 fra
.me
.REG
[0] = NIT_NULL
;
1534 /* ./../lib/standard//collection//hash_collection.nit:321 */
1535 REGB0
= CALL_abstract_collection___Iterator___is_ok(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1536 if (UNTAG_Bool(REGB0
)) {
1538 nit_abort("Assert failed", NULL
, LOCATE_hash_collection
, 321);
1540 /* ./../lib/standard//collection//hash_collection.nit:322 */
1541 fra
.me
.REG
[0] = ATTR_hash_collection___HashMapIterator____node(fra
.me
.REG
[0]);
1542 REGB0
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
1543 if (UNTAG_Bool(REGB0
)) {
1544 nit_abort("Reciever is null", NULL
, LOCATE_hash_collection
, 322);
1546 fra
.me
.REG
[0] = ATTR_hash_collection___HashMapNode____value(fra
.me
.REG
[0]);
1549 stack_frame_head
= fra
.me
.prev
;
1550 return fra
.me
.REG
[0];
1552 val_t
hash_collection___HashMapIterator___key(val_t p0
){
1553 struct {struct stack_frame_t me
;} fra
;
1556 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1557 fra
.me
.file
= LOCATE_hash_collection
;
1559 fra
.me
.meth
= LOCATE_hash_collection___HashMapIterator___key
;
1560 fra
.me
.has_broke
= 0;
1561 fra
.me
.REG_size
= 1;
1562 fra
.me
.REG
[0] = NIT_NULL
;
1564 /* ./../lib/standard//collection//hash_collection.nit:333 */
1565 REGB0
= CALL_abstract_collection___Iterator___is_ok(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1566 if (UNTAG_Bool(REGB0
)) {
1568 nit_abort("Assert failed", NULL
, LOCATE_hash_collection
, 333);
1570 /* ./../lib/standard//collection//hash_collection.nit:334 */
1571 fra
.me
.REG
[0] = ATTR_hash_collection___HashMapIterator____node(fra
.me
.REG
[0]);
1572 REGB0
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
1573 if (UNTAG_Bool(REGB0
)) {
1574 nit_abort("Reciever is null", NULL
, LOCATE_hash_collection
, 334);
1576 REGB0
= TAG_Bool(ATTR_hash_collection___HashNode____key(fra
.me
.REG
[0])!=NIT_NULL
);
1577 if (UNTAG_Bool(REGB0
)) {
1579 nit_abort("Uninitialized attribute %s", "_key", LOCATE_hash_collection
, 334);
1581 fra
.me
.REG
[0] = ATTR_hash_collection___HashNode____key(fra
.me
.REG
[0]);
1584 stack_frame_head
= fra
.me
.prev
;
1585 return fra
.me
.REG
[0];
1587 void hash_collection___HashMapIterator___next(val_t p0
){
1588 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
1591 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1592 fra
.me
.file
= LOCATE_hash_collection
;
1594 fra
.me
.meth
= LOCATE_hash_collection___HashMapIterator___next
;
1595 fra
.me
.has_broke
= 0;
1596 fra
.me
.REG_size
= 2;
1597 fra
.me
.REG
[0] = NIT_NULL
;
1598 fra
.me
.REG
[1] = NIT_NULL
;
1600 /* ./../lib/standard//collection//hash_collection.nit:339 */
1601 REGB0
= CALL_abstract_collection___Iterator___is_ok(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1602 if (UNTAG_Bool(REGB0
)) {
1604 nit_abort("Assert failed", NULL
, LOCATE_hash_collection
, 339);
1606 /* ./../lib/standard//collection//hash_collection.nit:340 */
1607 fra
.me
.REG
[1] = ATTR_hash_collection___HashMapIterator____node(fra
.me
.REG
[0]);
1608 REGB0
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
1609 if (UNTAG_Bool(REGB0
)) {
1610 nit_abort("Reciever is null", NULL
, LOCATE_hash_collection
, 340);
1612 fra
.me
.REG
[1] = ATTR_hash_collection___HashNode____next_item(fra
.me
.REG
[1]);
1613 ATTR_hash_collection___HashMapIterator____node(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
1614 stack_frame_head
= fra
.me
.prev
;
1617 void hash_collection___HashMapIterator___init(val_t p0
, val_t p1
, int* init_table
){
1618 int itpos4
= VAL2OBJ(p0
)->vft
[INIT_TABLE_POS_HashMapIterator
].i
;
1619 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
1621 if (init_table
[itpos4
]) return;
1622 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1623 fra
.me
.file
= LOCATE_hash_collection
;
1625 fra
.me
.meth
= LOCATE_hash_collection___HashMapIterator___init
;
1626 fra
.me
.has_broke
= 0;
1627 fra
.me
.REG_size
= 2;
1628 fra
.me
.REG
[0] = NIT_NULL
;
1629 fra
.me
.REG
[1] = NIT_NULL
;
1632 /* ./../lib/standard//collection//hash_collection.nit:351 */
1633 ATTR_hash_collection___HashMapIterator____map(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
1634 /* ./../lib/standard//collection//hash_collection.nit:352 */
1635 fra
.me
.REG
[1] = CALL_hash_collection___HashCollection___first_item(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
1636 ATTR_hash_collection___HashMapIterator____node(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
1637 stack_frame_head
= fra
.me
.prev
;
1638 init_table
[itpos4
] = 1;
1641 val_t
hash_collection___HashSet___is_empty(val_t p0
){
1642 struct {struct stack_frame_t me
;} fra
;
1647 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1648 fra
.me
.file
= LOCATE_hash_collection
;
1650 fra
.me
.meth
= LOCATE_hash_collection___HashSet___is_empty
;
1651 fra
.me
.has_broke
= 0;
1652 fra
.me
.REG_size
= 1;
1653 fra
.me
.REG
[0] = NIT_NULL
;
1655 /* ./../lib/standard//collection//hash_collection.nit:360 */
1656 REGB0
= TAG_Bool(ATTR_hash_collection___HashCollection____length(fra
.me
.REG
[0])!=NIT_NULL
);
1657 if (UNTAG_Bool(REGB0
)) {
1659 nit_abort("Uninitialized attribute %s", "_length", LOCATE_hash_collection
, 360);
1661 REGB0
= ATTR_hash_collection___HashCollection____length(fra
.me
.REG
[0]);
1663 REGB2
= TAG_Bool(IS_EQUAL_OO(REGB0
,REGB1
));
1664 if (UNTAG_Bool(REGB2
)) {
1666 /* ./../lib/standard//kernel.nit:207 */
1667 REGB1
= TAG_Bool((REGB0
)==(REGB1
));
1668 /* ./../lib/standard//collection//hash_collection.nit:360 */
1673 stack_frame_head
= fra
.me
.prev
;
1676 val_t
hash_collection___HashSet___first(val_t p0
){
1677 struct {struct stack_frame_t me
;} fra
;
1681 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1682 fra
.me
.file
= LOCATE_hash_collection
;
1684 fra
.me
.meth
= LOCATE_hash_collection___HashSet___first
;
1685 fra
.me
.has_broke
= 0;
1686 fra
.me
.REG_size
= 1;
1687 fra
.me
.REG
[0] = NIT_NULL
;
1689 /* ./../lib/standard//collection//hash_collection.nit:364 */
1690 REGB0
= TAG_Bool(ATTR_hash_collection___HashCollection____length(fra
.me
.REG
[0])!=NIT_NULL
);
1691 if (UNTAG_Bool(REGB0
)) {
1693 nit_abort("Uninitialized attribute %s", "_length", LOCATE_hash_collection
, 364);
1695 REGB0
= ATTR_hash_collection___HashCollection____length(fra
.me
.REG
[0]);
1697 /* ./../lib/standard//kernel.nit:214 */
1698 REGB1
= TAG_Bool(UNTAG_Int(REGB0
)>UNTAG_Int(REGB1
));
1699 /* ./../lib/standard//collection//hash_collection.nit:364 */
1700 if (UNTAG_Bool(REGB1
)) {
1702 nit_abort("Assert failed", NULL
, LOCATE_hash_collection
, 364);
1704 /* ./../lib/standard//collection//hash_collection.nit:365 */
1705 fra
.me
.REG
[0] = ATTR_hash_collection___HashCollection____first_item(fra
.me
.REG
[0]);
1706 REGB1
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
1707 if (UNTAG_Bool(REGB1
)) {
1708 nit_abort("Reciever is null", NULL
, LOCATE_hash_collection
, 365);
1710 REGB1
= TAG_Bool(ATTR_hash_collection___HashNode____key(fra
.me
.REG
[0])!=NIT_NULL
);
1711 if (UNTAG_Bool(REGB1
)) {
1713 nit_abort("Uninitialized attribute %s", "_key", LOCATE_hash_collection
, 365);
1715 fra
.me
.REG
[0] = ATTR_hash_collection___HashNode____key(fra
.me
.REG
[0]);
1718 stack_frame_head
= fra
.me
.prev
;
1719 return fra
.me
.REG
[0];
1721 val_t
hash_collection___HashSet___has(val_t p0
, val_t p1
){
1722 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
1726 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1727 fra
.me
.file
= LOCATE_hash_collection
;
1729 fra
.me
.meth
= LOCATE_hash_collection___HashSet___has
;
1730 fra
.me
.has_broke
= 0;
1731 fra
.me
.REG_size
= 2;
1732 fra
.me
.REG
[0] = NIT_NULL
;
1733 fra
.me
.REG
[1] = NIT_NULL
;
1736 /* ./../lib/standard//collection//hash_collection.nit:370 */
1737 fra
.me
.REG
[1] = CALL_hash_collection___HashCollection___node_at(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
1738 REGB0
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
1739 if (UNTAG_Bool(REGB0
)) {
1741 REGB1
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
1742 if (UNTAG_Bool(REGB1
)) {
1743 REGB1
= TAG_Bool(false);
1746 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[1])(fra
.me
.REG
[1], NIT_NULL
);
1750 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
1753 stack_frame_head
= fra
.me
.prev
;
1756 void hash_collection___HashSet___add(val_t p0
, val_t p1
){
1757 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
1762 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1763 fra
.me
.file
= LOCATE_hash_collection
;
1765 fra
.me
.meth
= LOCATE_hash_collection___HashSet___add
;
1766 fra
.me
.has_broke
= 0;
1767 fra
.me
.REG_size
= 3;
1768 fra
.me
.REG
[0] = NIT_NULL
;
1769 fra
.me
.REG
[1] = NIT_NULL
;
1770 fra
.me
.REG
[2] = NIT_NULL
;
1773 /* ./../lib/standard//collection//hash_collection.nit:375 */
1774 REGB0
= CALL_hash_collection___HashCollection___index_at(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
1775 /* ./../lib/standard//collection//hash_collection.nit:376 */
1776 fra
.me
.REG
[2] = CALL_hash_collection___HashCollection___node_at_idx(fra
.me
.REG
[0])(fra
.me
.REG
[0], REGB0
, fra
.me
.REG
[1]);
1777 /* ./../lib/standard//collection//hash_collection.nit:377 */
1778 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
1779 if (UNTAG_Bool(REGB1
)) {
1781 REGB2
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
1782 if (UNTAG_Bool(REGB2
)) {
1783 REGB2
= TAG_Bool(false);
1786 REGB2
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
1790 REGB1
= TAG_Bool(!UNTAG_Bool(REGB1
));
1791 if (UNTAG_Bool(REGB1
)) {
1792 /* ./../lib/standard//collection//hash_collection.nit:378 */
1793 ATTR_hash_collection___HashNode____key(fra
.me
.REG
[2]) = fra
.me
.REG
[1];
1795 /* ./../lib/standard//collection//hash_collection.nit:380 */
1796 fra
.me
.REG
[1] = NEW_HashSetNode_hash_collection___HashSetNode___init(fra
.me
.REG
[1]);
1797 CALL_hash_collection___HashCollection___store(fra
.me
.REG
[0])(fra
.me
.REG
[0], REGB0
, fra
.me
.REG
[1]);
1799 stack_frame_head
= fra
.me
.prev
;
1802 void hash_collection___HashSet___remove(val_t p0
, val_t p1
){
1803 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
1805 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1806 fra
.me
.file
= LOCATE_hash_collection
;
1808 fra
.me
.meth
= LOCATE_hash_collection___HashSet___remove
;
1809 fra
.me
.has_broke
= 0;
1810 fra
.me
.REG_size
= 2;
1811 fra
.me
.REG
[0] = NIT_NULL
;
1812 fra
.me
.REG
[1] = NIT_NULL
;
1815 /* ./../lib/standard//collection//hash_collection.nit:384 */
1816 CALL_hash_collection___HashCollection___remove_node(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
1817 stack_frame_head
= fra
.me
.prev
;
1820 void hash_collection___HashSet___clear(val_t p0
){
1821 struct {struct stack_frame_t me
;} fra
;
1823 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1824 fra
.me
.file
= LOCATE_hash_collection
;
1826 fra
.me
.meth
= LOCATE_hash_collection___HashSet___clear
;
1827 fra
.me
.has_broke
= 0;
1828 fra
.me
.REG_size
= 1;
1829 fra
.me
.REG
[0] = NIT_NULL
;
1831 /* ./../lib/standard//collection//hash_collection.nit:386 */
1832 CALL_hash_collection___HashCollection___raz(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1833 stack_frame_head
= fra
.me
.prev
;
1836 val_t
hash_collection___HashSet___iterator(val_t p0
){
1837 struct {struct stack_frame_t me
;} fra
;
1839 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1840 fra
.me
.file
= LOCATE_hash_collection
;
1842 fra
.me
.meth
= LOCATE_hash_collection___HashSet___iterator
;
1843 fra
.me
.has_broke
= 0;
1844 fra
.me
.REG_size
= 1;
1845 fra
.me
.REG
[0] = NIT_NULL
;
1847 /* ./../lib/standard//collection//hash_collection.nit:388 */
1848 fra
.me
.REG
[0] = NEW_HashSetIterator_hash_collection___HashSetIterator___init(fra
.me
.REG
[0]);
1851 stack_frame_head
= fra
.me
.prev
;
1852 return fra
.me
.REG
[0];
1854 void hash_collection___HashSet___init(val_t p0
, int* init_table
){
1855 int itpos5
= VAL2OBJ(p0
)->vft
[INIT_TABLE_POS_HashSet
].i
;
1856 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
1859 if (init_table
[itpos5
]) return;
1860 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1861 fra
.me
.file
= LOCATE_hash_collection
;
1863 fra
.me
.meth
= LOCATE_hash_collection___HashSet___init
;
1864 fra
.me
.has_broke
= 0;
1865 fra
.me
.REG_size
= 2;
1866 fra
.me
.REG
[0] = NIT_NULL
;
1867 fra
.me
.REG
[1] = NIT_NULL
;
1869 /* ./../lib/standard//collection//hash_collection.nit:390 */
1870 fra
.me
.REG
[1] = fra
.me
.REG
[0];
1871 CALL_hash_collection___HashCollection___init(fra
.me
.REG
[0])(fra
.me
.REG
[0], init_table
);
1872 /* ./../lib/standard//collection//hash_collection.nit:392 */
1874 ATTR_hash_collection___HashCollection____capacity(fra
.me
.REG
[1]) = REGB0
;
1875 /* ./../lib/standard//collection//hash_collection.nit:393 */
1877 ATTR_hash_collection___HashCollection____length(fra
.me
.REG
[1]) = REGB0
;
1878 /* ./../lib/standard//collection//hash_collection.nit:394 */
1880 CALL_hash_collection___HashCollection___enlarge(fra
.me
.REG
[1])(fra
.me
.REG
[1], REGB0
);
1881 stack_frame_head
= fra
.me
.prev
;
1882 init_table
[itpos5
] = 1;
1885 void hash_collection___HashSetNode___init(val_t p0
, val_t p1
, int* init_table
){
1886 int itpos6
= VAL2OBJ(p0
)->vft
[INIT_TABLE_POS_HashSetNode
].i
;
1887 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
1889 if (init_table
[itpos6
]) return;
1890 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1891 fra
.me
.file
= LOCATE_hash_collection
;
1893 fra
.me
.meth
= LOCATE_hash_collection___HashSetNode___init
;
1894 fra
.me
.has_broke
= 0;
1895 fra
.me
.REG_size
= 4;
1896 fra
.me
.REG
[0] = NIT_NULL
;
1897 fra
.me
.REG
[1] = NIT_NULL
;
1898 fra
.me
.REG
[2] = NIT_NULL
;
1899 fra
.me
.REG
[3] = NIT_NULL
;
1902 /* ./../lib/standard//collection//hash_collection.nit:402 */
1903 fra
.me
.REG
[2] = fra
.me
.REG
[0];
1904 fra
.me
.REG
[3] = fra
.me
.REG
[1];
1905 CALL_hash_collection___HashNode___init(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1], init_table
);
1906 /* ./../lib/standard//collection//hash_collection.nit:404 */
1907 ATTR_hash_collection___HashNode____key(fra
.me
.REG
[2]) = fra
.me
.REG
[3];
1908 stack_frame_head
= fra
.me
.prev
;
1909 init_table
[itpos6
] = 1;
1912 val_t
hash_collection___HashSetIterator___is_ok(val_t p0
){
1913 struct {struct stack_frame_t me
;} fra
;
1917 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1918 fra
.me
.file
= LOCATE_hash_collection
;
1920 fra
.me
.meth
= LOCATE_hash_collection___HashSetIterator___is_ok
;
1921 fra
.me
.has_broke
= 0;
1922 fra
.me
.REG_size
= 1;
1923 fra
.me
.REG
[0] = NIT_NULL
;
1925 /* ./../lib/standard//collection//hash_collection.nit:410 */
1926 fra
.me
.REG
[0] = ATTR_hash_collection___HashSetIterator____node(fra
.me
.REG
[0]);
1927 REGB0
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
1928 if (UNTAG_Bool(REGB0
)) {
1930 REGB1
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
1931 if (UNTAG_Bool(REGB1
)) {
1932 REGB1
= TAG_Bool(false);
1935 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[0])(fra
.me
.REG
[0], NIT_NULL
);
1939 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
1942 stack_frame_head
= fra
.me
.prev
;
1945 val_t
hash_collection___HashSetIterator___item(val_t p0
){
1946 struct {struct stack_frame_t me
;} fra
;
1949 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1950 fra
.me
.file
= LOCATE_hash_collection
;
1952 fra
.me
.meth
= LOCATE_hash_collection___HashSetIterator___item
;
1953 fra
.me
.has_broke
= 0;
1954 fra
.me
.REG_size
= 1;
1955 fra
.me
.REG
[0] = NIT_NULL
;
1957 /* ./../lib/standard//collection//hash_collection.nit:414 */
1958 REGB0
= CALL_abstract_collection___Iterator___is_ok(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1959 if (UNTAG_Bool(REGB0
)) {
1961 nit_abort("Assert failed", NULL
, LOCATE_hash_collection
, 414);
1963 /* ./../lib/standard//collection//hash_collection.nit:415 */
1964 fra
.me
.REG
[0] = ATTR_hash_collection___HashSetIterator____node(fra
.me
.REG
[0]);
1965 REGB0
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
1966 if (UNTAG_Bool(REGB0
)) {
1967 nit_abort("Reciever is null", NULL
, LOCATE_hash_collection
, 415);
1969 REGB0
= TAG_Bool(ATTR_hash_collection___HashNode____key(fra
.me
.REG
[0])!=NIT_NULL
);
1970 if (UNTAG_Bool(REGB0
)) {
1972 nit_abort("Uninitialized attribute %s", "_key", LOCATE_hash_collection
, 415);
1974 fra
.me
.REG
[0] = ATTR_hash_collection___HashNode____key(fra
.me
.REG
[0]);
1977 stack_frame_head
= fra
.me
.prev
;
1978 return fra
.me
.REG
[0];
1980 void hash_collection___HashSetIterator___next(val_t p0
){
1981 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
1984 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1985 fra
.me
.file
= LOCATE_hash_collection
;
1987 fra
.me
.meth
= LOCATE_hash_collection___HashSetIterator___next
;
1988 fra
.me
.has_broke
= 0;
1989 fra
.me
.REG_size
= 2;
1990 fra
.me
.REG
[0] = NIT_NULL
;
1991 fra
.me
.REG
[1] = NIT_NULL
;
1993 /* ./../lib/standard//collection//hash_collection.nit:420 */
1994 REGB0
= CALL_abstract_collection___Iterator___is_ok(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1995 if (UNTAG_Bool(REGB0
)) {
1997 nit_abort("Assert failed", NULL
, LOCATE_hash_collection
, 420);
1999 /* ./../lib/standard//collection//hash_collection.nit:421 */
2000 fra
.me
.REG
[1] = ATTR_hash_collection___HashSetIterator____node(fra
.me
.REG
[0]);
2001 REGB0
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
2002 if (UNTAG_Bool(REGB0
)) {
2003 nit_abort("Reciever is null", NULL
, LOCATE_hash_collection
, 421);
2005 fra
.me
.REG
[1] = ATTR_hash_collection___HashNode____next_item(fra
.me
.REG
[1]);
2006 ATTR_hash_collection___HashSetIterator____node(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
2007 stack_frame_head
= fra
.me
.prev
;
2010 void hash_collection___HashSetIterator___init(val_t p0
, val_t p1
, int* init_table
){
2011 int itpos7
= VAL2OBJ(p0
)->vft
[INIT_TABLE_POS_HashSetIterator
].i
;
2012 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
2014 if (init_table
[itpos7
]) return;
2015 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2016 fra
.me
.file
= LOCATE_hash_collection
;
2018 fra
.me
.meth
= LOCATE_hash_collection___HashSetIterator___init
;
2019 fra
.me
.has_broke
= 0;
2020 fra
.me
.REG_size
= 2;
2021 fra
.me
.REG
[0] = NIT_NULL
;
2022 fra
.me
.REG
[1] = NIT_NULL
;
2025 /* ./../lib/standard//collection//hash_collection.nit:432 */
2026 ATTR_hash_collection___HashSetIterator____set(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
2027 /* ./../lib/standard//collection//hash_collection.nit:433 */
2028 fra
.me
.REG
[1] = ATTR_hash_collection___HashCollection____first_item(fra
.me
.REG
[1]);
2029 ATTR_hash_collection___HashSetIterator____node(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
2030 stack_frame_head
= fra
.me
.prev
;
2031 init_table
[itpos7
] = 1;