1 /* This C file is generated by NIT to compile module standard___collection___hash_collection. */
2 #include "standard___collection___hash_collection._sep.h"
3 val_t
standard___collection___hash_collection___HashCollection___first_item(val_t p0
){
4 struct {struct stack_frame_t me
;} fra
;
6 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
7 fra
.me
.file
= LOCATE_standard___collection___hash_collection
;
9 fra
.me
.meth
= LOCATE_standard___collection___hash_collection___HashCollection___first_item
;
12 fra
.me
.REG
[0] = NIT_NULL
;
14 /* ./../lib/standard//collection//hash_collection.nit:26 */
15 fra
.me
.REG
[0] = ATTR_standard___collection___hash_collection___HashCollection____first_item(fra
.me
.REG
[0]);
16 stack_frame_head
= fra
.me
.prev
;
19 val_t
standard___collection___hash_collection___HashCollection___index_at(val_t p0
, val_t p1
){
20 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
25 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
26 fra
.me
.file
= LOCATE_standard___collection___hash_collection
;
28 fra
.me
.meth
= LOCATE_standard___collection___hash_collection___HashCollection___index_at
;
31 fra
.me
.REG
[0] = NIT_NULL
;
32 fra
.me
.REG
[1] = NIT_NULL
;
35 /* ./../lib/standard//collection//hash_collection.nit:38 */
36 REGB0
= CALL_standard___hash___Object___hash(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
37 REGB1
= TAG_Bool(ATTR_standard___collection___hash_collection___HashCollection____capacity(fra
.me
.REG
[0])!=NIT_NULL
);
38 if (UNTAG_Bool(REGB1
)) {
40 nit_abort("Uninitialized attribute %s", "_capacity", LOCATE_standard___collection___hash_collection
, 38);
42 REGB1
= ATTR_standard___collection___hash_collection___HashCollection____capacity(fra
.me
.REG
[0]);
43 /* ./../lib/standard//kernel.nit:223 */
44 REGB1
= TAG_Int(UNTAG_Int(REGB0
)%UNTAG_Int(REGB1
));
45 /* ./../lib/standard//collection//hash_collection.nit:39 */
47 REGB2
= TAG_Bool(VAL_ISA(REGB0
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1
), VTID_standard___kernel___Comparable___OTHER(REGB1
))) /*cast OTHER*/;
48 if (UNTAG_Bool(REGB2
)) {
50 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
52 /* ./../lib/standard//kernel.nit:215 */
53 REGB0
= TAG_Bool(UNTAG_Int(REGB1
)<UNTAG_Int(REGB0
));
54 /* ./../lib/standard//collection//hash_collection.nit:39 */
55 if (UNTAG_Bool(REGB0
)) {
56 /* ./../lib/standard//kernel.nit:219 */
57 REGB0
= TAG_Int(-UNTAG_Int(REGB1
));
58 /* ./../lib/standard//collection//hash_collection.nit:39 */
61 /* ./../lib/standard//collection//hash_collection.nit:40 */
64 stack_frame_head
= fra
.me
.prev
;
67 val_t
standard___collection___hash_collection___HashCollection___node_at(val_t p0
, val_t p1
){
68 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
71 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
72 fra
.me
.file
= LOCATE_standard___collection___hash_collection
;
74 fra
.me
.meth
= LOCATE_standard___collection___hash_collection___HashCollection___node_at
;
77 fra
.me
.REG
[0] = NIT_NULL
;
78 fra
.me
.REG
[1] = NIT_NULL
;
79 fra
.me
.REG
[2] = NIT_NULL
;
80 fra
.me
.REG
[3] = NIT_NULL
;
83 /* ./../lib/standard//collection//hash_collection.nit:47 */
84 fra
.me
.REG
[2] = ATTR_standard___collection___hash_collection___HashCollection____last_accessed_key(fra
.me
.REG
[0]);
85 REGB0
= TAG_Bool(IS_EQUAL_ON(fra
.me
.REG
[1],fra
.me
.REG
[2]));
86 if (UNTAG_Bool(REGB0
)) {
87 fra
.me
.REG
[2] = ATTR_standard___collection___hash_collection___HashCollection____last_accessed_node(fra
.me
.REG
[0]);
90 /* ./../lib/standard//collection//hash_collection.nit:49 */
91 REGB0
= CALL_standard___collection___hash_collection___HashCollection___index_at(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
92 fra
.me
.REG
[3] = CALL_standard___collection___hash_collection___HashCollection___node_at_idx(fra
.me
.REG
[0])(fra
.me
.REG
[0], REGB0
, fra
.me
.REG
[1]);
93 /* ./../lib/standard//collection//hash_collection.nit:50 */
94 ATTR_standard___collection___hash_collection___HashCollection____last_accessed_key(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
95 /* ./../lib/standard//collection//hash_collection.nit:51 */
96 ATTR_standard___collection___hash_collection___HashCollection____last_accessed_node(fra
.me
.REG
[0]) = fra
.me
.REG
[3];
97 /* ./../lib/standard//collection//hash_collection.nit:52 */
98 fra
.me
.REG
[2] = fra
.me
.REG
[3];
101 stack_frame_head
= fra
.me
.prev
;
102 return fra
.me
.REG
[2];
104 val_t
standard___collection___hash_collection___HashCollection___node_at_idx(val_t p0
, val_t p1
, val_t p2
){
105 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
110 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
111 fra
.me
.file
= LOCATE_standard___collection___hash_collection
;
113 fra
.me
.meth
= LOCATE_standard___collection___hash_collection___HashCollection___node_at_idx
;
114 fra
.me
.has_broke
= 0;
116 fra
.me
.REG
[0] = NIT_NULL
;
117 fra
.me
.REG
[1] = NIT_NULL
;
118 fra
.me
.REG
[2] = NIT_NULL
;
122 /* ./../lib/standard//collection//hash_collection.nit:58 */
123 fra
.me
.REG
[0] = ATTR_standard___collection___hash_collection___HashCollection____array(fra
.me
.REG
[0]);
124 REGB1
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
125 if (UNTAG_Bool(REGB1
)) {
126 nit_abort("Reciever is null", NULL
, LOCATE_standard___collection___hash_collection
, 58);
128 /* ./../lib/standard//collection//array.nit:652 */
129 fra
.me
.REG
[0] = ((Nit_NativeArray
)fra
.me
.REG
[0])->val
[UNTAG_Int(REGB0
)];
130 /* ./../lib/standard//collection//hash_collection.nit:59 */
132 REGB0
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
133 if (UNTAG_Bool(REGB0
)) {
135 REGB1
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
136 if (UNTAG_Bool(REGB1
)) {
137 REGB1
= TAG_Bool(false);
140 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[0])(fra
.me
.REG
[0], NIT_NULL
);
144 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
145 if (UNTAG_Bool(REGB0
)) {
146 /* ./../lib/standard//collection//hash_collection.nit:60 */
147 REGB0
= TAG_Bool(ATTR_standard___collection___hash_collection___HashNode____key(fra
.me
.REG
[0])!=NIT_NULL
);
148 if (UNTAG_Bool(REGB0
)) {
150 nit_abort("Uninitialized attribute %s", "_key", LOCATE_standard___collection___hash_collection
, 60);
152 fra
.me
.REG
[2] = ATTR_standard___collection___hash_collection___HashNode____key(fra
.me
.REG
[0]);
153 /* ./../lib/standard//collection//hash_collection.nit:61 */
154 REGB0
= TAG_Bool(IS_EQUAL_OO(fra
.me
.REG
[2],fra
.me
.REG
[1]));
155 if (UNTAG_Bool(REGB0
)) {
156 REGB0
= TAG_Bool(true);
158 REGB1
= TAG_Bool(IS_EQUAL_OO(fra
.me
.REG
[2],fra
.me
.REG
[1]));
159 if (UNTAG_Bool(REGB1
)) {
161 REGB2
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[1]);
166 if (UNTAG_Bool(REGB0
)) {
167 /* ./../lib/standard//collection//hash_collection.nit:62 */
170 /* ./../lib/standard//collection//hash_collection.nit:64 */
171 fra
.me
.REG
[2] = ATTR_standard___collection___hash_collection___HashNode____next_in_bucklet(fra
.me
.REG
[0]);
172 fra
.me
.REG
[0] = fra
.me
.REG
[2];
174 /* ./../lib/standard//collection//hash_collection.nit:59 */
179 /* ./../lib/standard//collection//hash_collection.nit:66 */
182 stack_frame_head
= fra
.me
.prev
;
183 return fra
.me
.REG
[0];
185 void standard___collection___hash_collection___HashCollection___store(val_t p0
, val_t p1
, val_t p2
){
186 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
191 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
192 fra
.me
.file
= LOCATE_standard___collection___hash_collection
;
194 fra
.me
.meth
= LOCATE_standard___collection___hash_collection___HashCollection___store
;
195 fra
.me
.has_broke
= 0;
197 fra
.me
.REG
[0] = NIT_NULL
;
198 fra
.me
.REG
[1] = NIT_NULL
;
199 fra
.me
.REG
[2] = NIT_NULL
;
200 fra
.me
.REG
[3] = NIT_NULL
;
204 /* ./../lib/standard//collection//hash_collection.nit:73 */
205 fra
.me
.REG
[2] = ATTR_standard___collection___hash_collection___HashCollection____first_item(fra
.me
.REG
[0]);
206 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
207 if (UNTAG_Bool(REGB1
)) {
209 REGB2
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
210 if (UNTAG_Bool(REGB2
)) {
211 REGB2
= TAG_Bool(false);
214 REGB2
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
218 if (UNTAG_Bool(REGB1
)) {
219 /* ./../lib/standard//collection//hash_collection.nit:74 */
220 ATTR_standard___collection___hash_collection___HashCollection____first_item(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
222 /* ./../lib/standard//collection//hash_collection.nit:76 */
223 fra
.me
.REG
[2] = ATTR_standard___collection___hash_collection___HashCollection____last_item(fra
.me
.REG
[0]);
224 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
225 if (UNTAG_Bool(REGB1
)) {
226 nit_abort("Reciever is null", NULL
, LOCATE_standard___collection___hash_collection
, 76);
228 ATTR_standard___collection___hash_collection___HashNode____next_item(fra
.me
.REG
[2]) = fra
.me
.REG
[1];
230 /* ./../lib/standard//collection//hash_collection.nit:78 */
231 fra
.me
.REG
[2] = ATTR_standard___collection___hash_collection___HashCollection____last_item(fra
.me
.REG
[0]);
232 ATTR_standard___collection___hash_collection___HashNode____prev_item(fra
.me
.REG
[1]) = fra
.me
.REG
[2];
233 /* ./../lib/standard//collection//hash_collection.nit:79 */
234 ATTR_standard___collection___hash_collection___HashNode____next_item(fra
.me
.REG
[1]) = NIT_NULL
;
235 /* ./../lib/standard//collection//hash_collection.nit:80 */
236 ATTR_standard___collection___hash_collection___HashCollection____last_item(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
237 /* ./../lib/standard//collection//hash_collection.nit:83 */
238 fra
.me
.REG
[2] = ATTR_standard___collection___hash_collection___HashCollection____array(fra
.me
.REG
[0]);
239 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
240 if (UNTAG_Bool(REGB1
)) {
241 nit_abort("Reciever is null", NULL
, LOCATE_standard___collection___hash_collection
, 83);
243 /* ./../lib/standard//collection//array.nit:652 */
244 fra
.me
.REG
[2] = ((Nit_NativeArray
)fra
.me
.REG
[2])->val
[UNTAG_Int(REGB0
)];
245 /* ./../lib/standard//collection//hash_collection.nit:84 */
246 fra
.me
.REG
[3] = ATTR_standard___collection___hash_collection___HashCollection____array(fra
.me
.REG
[0]);
247 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
248 if (UNTAG_Bool(REGB1
)) {
249 nit_abort("Reciever is null", NULL
, LOCATE_standard___collection___hash_collection
, 84);
251 /* ./../lib/standard//collection//array.nit:653 */
252 ((Nit_NativeArray
)fra
.me
.REG
[3])->val
[UNTAG_Int(REGB0
)]=fra
.me
.REG
[1];
253 /* ./../lib/standard//collection//hash_collection.nit:85 */
254 ATTR_standard___collection___hash_collection___HashNode____next_in_bucklet(fra
.me
.REG
[1]) = fra
.me
.REG
[2];
255 /* ./../lib/standard//collection//hash_collection.nit:86 */
256 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
257 if (UNTAG_Bool(REGB0
)) {
259 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
260 if (UNTAG_Bool(REGB1
)) {
261 REGB1
= TAG_Bool(false);
264 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
268 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
269 if (UNTAG_Bool(REGB0
)) {
270 ATTR_standard___collection___hash_collection___HashNode____prev_in_bucklet(fra
.me
.REG
[2]) = fra
.me
.REG
[1];
272 /* ./../lib/standard//collection//hash_collection.nit:88 */
273 REGB0
= TAG_Bool(ATTR_standard___collection___hash_collection___HashNode____key(fra
.me
.REG
[1])!=NIT_NULL
);
274 if (UNTAG_Bool(REGB0
)) {
276 nit_abort("Uninitialized attribute %s", "_key", LOCATE_standard___collection___hash_collection
, 88);
278 fra
.me
.REG
[2] = ATTR_standard___collection___hash_collection___HashNode____key(fra
.me
.REG
[1]);
279 ATTR_standard___collection___hash_collection___HashCollection____last_accessed_key(fra
.me
.REG
[0]) = fra
.me
.REG
[2];
280 /* ./../lib/standard//collection//hash_collection.nit:89 */
281 ATTR_standard___collection___hash_collection___HashCollection____last_accessed_node(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
282 /* ./../lib/standard//collection//hash_collection.nit:92 */
283 REGB0
= TAG_Bool(ATTR_standard___collection___hash_collection___HashCollection____length(fra
.me
.REG
[0])!=NIT_NULL
);
284 if (UNTAG_Bool(REGB0
)) {
286 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___hash_collection
, 92);
288 REGB0
= ATTR_standard___collection___hash_collection___HashCollection____length(fra
.me
.REG
[0]);
289 /* ./../lib/standard//collection//hash_collection.nit:93 */
291 /* ./../lib/standard//kernel.nit:218 */
292 REGB1
= TAG_Int(UNTAG_Int(REGB0
)+UNTAG_Int(REGB1
));
293 /* ./../lib/standard//collection//hash_collection.nit:93 */
294 ATTR_standard___collection___hash_collection___HashCollection____length(fra
.me
.REG
[0]) = REGB1
;
295 /* ./../lib/standard//collection//hash_collection.nit:94 */
297 /* ./../lib/standard//kernel.nit:218 */
298 REGB1
= TAG_Int(UNTAG_Int(REGB0
)+UNTAG_Int(REGB1
));
299 /* ./../lib/standard//collection//hash_collection.nit:94 */
301 /* ./../lib/standard//kernel.nit:221 */
302 REGB2
= TAG_Int(UNTAG_Int(REGB1
)*UNTAG_Int(REGB2
));
303 /* ./../lib/standard//collection//hash_collection.nit:94 */
305 /* ./../lib/standard//kernel.nit:222 */
306 REGB1
= TAG_Int(UNTAG_Int(REGB2
)/UNTAG_Int(REGB1
));
307 /* ./../lib/standard//collection//hash_collection.nit:94 */
309 /* ./../lib/standard//collection//hash_collection.nit:95 */
310 REGB1
= TAG_Bool(ATTR_standard___collection___hash_collection___HashCollection____capacity(fra
.me
.REG
[0])!=NIT_NULL
);
311 if (UNTAG_Bool(REGB1
)) {
313 nit_abort("Uninitialized attribute %s", "_capacity", LOCATE_standard___collection___hash_collection
, 95);
315 REGB1
= ATTR_standard___collection___hash_collection___HashCollection____capacity(fra
.me
.REG
[0]);
316 REGB2
= TAG_Bool(VAL_ISA(REGB1
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0
), VTID_standard___kernel___Comparable___OTHER(REGB0
))) /*cast OTHER*/;
317 if (UNTAG_Bool(REGB2
)) {
319 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
321 /* ./../lib/standard//kernel.nit:216 */
322 REGB1
= TAG_Bool(UNTAG_Int(REGB0
)>=UNTAG_Int(REGB1
));
323 /* ./../lib/standard//collection//hash_collection.nit:95 */
324 if (UNTAG_Bool(REGB1
)) {
325 /* ./../lib/standard//collection//hash_collection.nit:96 */
327 /* ./../lib/standard//kernel.nit:221 */
328 REGB1
= TAG_Int(UNTAG_Int(REGB0
)*UNTAG_Int(REGB1
));
329 /* ./../lib/standard//collection//hash_collection.nit:96 */
330 CALL_standard___collection___hash_collection___HashCollection___enlarge(fra
.me
.REG
[0])(fra
.me
.REG
[0], REGB1
);
332 stack_frame_head
= fra
.me
.prev
;
335 void standard___collection___hash_collection___HashCollection___remove_node(val_t p0
, val_t p1
){
336 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
341 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
342 fra
.me
.file
= LOCATE_standard___collection___hash_collection
;
344 fra
.me
.meth
= LOCATE_standard___collection___hash_collection___HashCollection___remove_node
;
345 fra
.me
.has_broke
= 0;
347 fra
.me
.REG
[0] = NIT_NULL
;
348 fra
.me
.REG
[1] = NIT_NULL
;
349 fra
.me
.REG
[2] = NIT_NULL
;
350 fra
.me
.REG
[3] = NIT_NULL
;
351 fra
.me
.REG
[4] = NIT_NULL
;
354 /* ./../lib/standard//collection//hash_collection.nit:103 */
355 REGB0
= CALL_standard___collection___hash_collection___HashCollection___index_at(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
356 /* ./../lib/standard//collection//hash_collection.nit:104 */
357 fra
.me
.REG
[1] = CALL_standard___collection___hash_collection___HashCollection___node_at_idx(fra
.me
.REG
[0])(fra
.me
.REG
[0], REGB0
, fra
.me
.REG
[1]);
358 /* ./../lib/standard//collection//hash_collection.nit:105 */
359 REGB1
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
360 if (UNTAG_Bool(REGB1
)) {
362 REGB2
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
363 if (UNTAG_Bool(REGB2
)) {
364 REGB2
= TAG_Bool(false);
367 REGB2
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[1])(fra
.me
.REG
[1], NIT_NULL
);
371 if (UNTAG_Bool(REGB1
)) {
374 /* ./../lib/standard//collection//hash_collection.nit:108 */
375 fra
.me
.REG
[2] = ATTR_standard___collection___hash_collection___HashNode____prev_item(fra
.me
.REG
[1]);
376 /* ./../lib/standard//collection//hash_collection.nit:109 */
377 fra
.me
.REG
[3] = ATTR_standard___collection___hash_collection___HashNode____next_item(fra
.me
.REG
[1]);
378 /* ./../lib/standard//collection//hash_collection.nit:110 */
379 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
380 if (UNTAG_Bool(REGB1
)) {
382 REGB2
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
383 if (UNTAG_Bool(REGB2
)) {
384 REGB2
= TAG_Bool(false);
387 REGB2
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
391 REGB1
= TAG_Bool(!UNTAG_Bool(REGB1
));
392 if (UNTAG_Bool(REGB1
)) {
393 /* ./../lib/standard//collection//hash_collection.nit:111 */
394 ATTR_standard___collection___hash_collection___HashNode____next_item(fra
.me
.REG
[2]) = fra
.me
.REG
[3];
396 /* ./../lib/standard//collection//hash_collection.nit:113 */
397 ATTR_standard___collection___hash_collection___HashCollection____first_item(fra
.me
.REG
[0]) = fra
.me
.REG
[3];
399 /* ./../lib/standard//collection//hash_collection.nit:115 */
400 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
401 if (UNTAG_Bool(REGB1
)) {
403 REGB2
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
404 if (UNTAG_Bool(REGB2
)) {
405 REGB2
= TAG_Bool(false);
408 REGB2
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
412 REGB1
= TAG_Bool(!UNTAG_Bool(REGB1
));
413 if (UNTAG_Bool(REGB1
)) {
414 /* ./../lib/standard//collection//hash_collection.nit:116 */
415 ATTR_standard___collection___hash_collection___HashNode____prev_item(fra
.me
.REG
[3]) = fra
.me
.REG
[2];
417 /* ./../lib/standard//collection//hash_collection.nit:118 */
418 ATTR_standard___collection___hash_collection___HashCollection____last_item(fra
.me
.REG
[0]) = fra
.me
.REG
[2];
420 /* ./../lib/standard//collection//hash_collection.nit:122 */
421 REGB1
= ATTR_standard___collection___hash_collection___HashCollection____length(fra
.me
.REG
[0]);
423 /* ./../lib/standard//kernel.nit:220 */
424 REGB2
= TAG_Int(UNTAG_Int(REGB1
)-UNTAG_Int(REGB2
));
425 /* ./../lib/standard//collection//hash_collection.nit:122 */
426 ATTR_standard___collection___hash_collection___HashCollection____length(fra
.me
.REG
[0]) = REGB2
;
427 /* ./../lib/standard//collection//hash_collection.nit:123 */
428 fra
.me
.REG
[4] = ATTR_standard___collection___hash_collection___HashNode____prev_in_bucklet(fra
.me
.REG
[1]);
429 fra
.me
.REG
[2] = fra
.me
.REG
[4];
430 /* ./../lib/standard//collection//hash_collection.nit:124 */
431 fra
.me
.REG
[1] = ATTR_standard___collection___hash_collection___HashNode____next_in_bucklet(fra
.me
.REG
[1]);
432 fra
.me
.REG
[3] = fra
.me
.REG
[1];
433 /* ./../lib/standard//collection//hash_collection.nit:125 */
434 REGB2
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
435 if (UNTAG_Bool(REGB2
)) {
437 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
438 if (UNTAG_Bool(REGB1
)) {
439 REGB1
= TAG_Bool(false);
442 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
446 REGB2
= TAG_Bool(!UNTAG_Bool(REGB2
));
447 if (UNTAG_Bool(REGB2
)) {
448 /* ./../lib/standard//collection//hash_collection.nit:126 */
449 ATTR_standard___collection___hash_collection___HashNode____next_in_bucklet(fra
.me
.REG
[2]) = fra
.me
.REG
[3];
451 /* ./../lib/standard//collection//hash_collection.nit:128 */
452 fra
.me
.REG
[1] = ATTR_standard___collection___hash_collection___HashCollection____array(fra
.me
.REG
[0]);
453 REGB2
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
454 if (UNTAG_Bool(REGB2
)) {
455 nit_abort("Reciever is null", NULL
, LOCATE_standard___collection___hash_collection
, 128);
457 /* ./../lib/standard//collection//array.nit:653 */
458 ((Nit_NativeArray
)fra
.me
.REG
[1])->val
[UNTAG_Int(REGB0
)]=fra
.me
.REG
[3];
460 /* ./../lib/standard//collection//hash_collection.nit:130 */
461 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
462 if (UNTAG_Bool(REGB0
)) {
464 REGB2
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
465 if (UNTAG_Bool(REGB2
)) {
466 REGB2
= TAG_Bool(false);
469 REGB2
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
473 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
474 if (UNTAG_Bool(REGB0
)) {
475 /* ./../lib/standard//collection//hash_collection.nit:131 */
476 ATTR_standard___collection___hash_collection___HashNode____prev_in_bucklet(fra
.me
.REG
[3]) = fra
.me
.REG
[2];
478 /* ./../lib/standard//collection//hash_collection.nit:134 */
479 ATTR_standard___collection___hash_collection___HashCollection____last_accessed_key(fra
.me
.REG
[0]) = NIT_NULL
;
481 stack_frame_head
= fra
.me
.prev
;
484 void standard___collection___hash_collection___HashCollection___raz(val_t p0
){
485 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
490 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
491 fra
.me
.file
= LOCATE_standard___collection___hash_collection
;
493 fra
.me
.meth
= LOCATE_standard___collection___hash_collection___HashCollection___raz
;
494 fra
.me
.has_broke
= 0;
496 fra
.me
.REG
[0] = NIT_NULL
;
497 fra
.me
.REG
[1] = NIT_NULL
;
499 /* ./../lib/standard//collection//hash_collection.nit:139 */
500 REGB0
= TAG_Bool(ATTR_standard___collection___hash_collection___HashCollection____capacity(fra
.me
.REG
[0])!=NIT_NULL
);
501 if (UNTAG_Bool(REGB0
)) {
503 nit_abort("Uninitialized attribute %s", "_capacity", LOCATE_standard___collection___hash_collection
, 139);
505 REGB0
= ATTR_standard___collection___hash_collection___HashCollection____capacity(fra
.me
.REG
[0]);
507 /* ./../lib/standard//kernel.nit:220 */
508 REGB1
= TAG_Int(UNTAG_Int(REGB0
)-UNTAG_Int(REGB1
));
509 /* ./../lib/standard//collection//hash_collection.nit:140 */
512 REGB2
= TAG_Bool(VAL_ISA(REGB0
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1
), VTID_standard___kernel___Comparable___OTHER(REGB1
))) /*cast OTHER*/;
513 if (UNTAG_Bool(REGB2
)) {
515 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
517 /* ./../lib/standard//kernel.nit:216 */
518 REGB0
= TAG_Bool(UNTAG_Int(REGB1
)>=UNTAG_Int(REGB0
));
519 /* ./../lib/standard//collection//hash_collection.nit:140 */
520 if (UNTAG_Bool(REGB0
)) {
521 /* ./../lib/standard//collection//hash_collection.nit:141 */
522 fra
.me
.REG
[1] = ATTR_standard___collection___hash_collection___HashCollection____array(fra
.me
.REG
[0]);
523 REGB0
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
524 if (UNTAG_Bool(REGB0
)) {
525 nit_abort("Reciever is null", NULL
, LOCATE_standard___collection___hash_collection
, 141);
527 /* ./../lib/standard//collection//array.nit:653 */
528 ((Nit_NativeArray
)fra
.me
.REG
[1])->val
[UNTAG_Int(REGB1
)]=NIT_NULL
;
529 /* ./../lib/standard//collection//hash_collection.nit:142 */
531 /* ./../lib/standard//kernel.nit:220 */
532 REGB0
= TAG_Int(UNTAG_Int(REGB1
)-UNTAG_Int(REGB0
));
533 /* ./../lib/standard//collection//hash_collection.nit:142 */
536 /* ./../lib/standard//collection//hash_collection.nit:140 */
541 /* ./../lib/standard//collection//hash_collection.nit:144 */
543 ATTR_standard___collection___hash_collection___HashCollection____length(fra
.me
.REG
[0]) = REGB1
;
544 /* ./../lib/standard//collection//hash_collection.nit:145 */
545 ATTR_standard___collection___hash_collection___HashCollection____first_item(fra
.me
.REG
[0]) = NIT_NULL
;
546 /* ./../lib/standard//collection//hash_collection.nit:146 */
547 ATTR_standard___collection___hash_collection___HashCollection____last_item(fra
.me
.REG
[0]) = NIT_NULL
;
548 /* ./../lib/standard//collection//hash_collection.nit:147 */
549 ATTR_standard___collection___hash_collection___HashCollection____last_accessed_key(fra
.me
.REG
[0]) = NIT_NULL
;
550 stack_frame_head
= fra
.me
.prev
;
553 void standard___collection___hash_collection___HashCollection___enlarge(val_t p0
, val_t p1
){
554 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
560 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
561 fra
.me
.file
= LOCATE_standard___collection___hash_collection
;
563 fra
.me
.meth
= LOCATE_standard___collection___hash_collection___HashCollection___enlarge
;
564 fra
.me
.has_broke
= 0;
566 fra
.me
.REG
[0] = NIT_NULL
;
567 fra
.me
.REG
[1] = NIT_NULL
;
568 fra
.me
.REG
[2] = NIT_NULL
;
569 fra
.me
.REG
[3] = NIT_NULL
;
572 /* ./../lib/standard//collection//hash_collection.nit:152 */
573 REGB1
= TAG_Bool(ATTR_standard___collection___hash_collection___HashCollection____capacity(fra
.me
.REG
[0])!=NIT_NULL
);
574 if (UNTAG_Bool(REGB1
)) {
576 nit_abort("Uninitialized attribute %s", "_capacity", LOCATE_standard___collection___hash_collection
, 152);
578 REGB1
= ATTR_standard___collection___hash_collection___HashCollection____capacity(fra
.me
.REG
[0]);
579 /* ./../lib/standard//collection//hash_collection.nit:154 */
580 REGB2
= TAG_Bool(ATTR_standard___collection___hash_collection___HashCollection____length(fra
.me
.REG
[0])!=NIT_NULL
);
581 if (UNTAG_Bool(REGB2
)) {
583 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___hash_collection
, 154);
585 REGB2
= ATTR_standard___collection___hash_collection___HashCollection____length(fra
.me
.REG
[0]);
587 /* ./../lib/standard//kernel.nit:218 */
588 REGB3
= TAG_Int(UNTAG_Int(REGB2
)+UNTAG_Int(REGB3
));
589 REGB2
= TAG_Bool(VAL_ISA(REGB3
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0
), VTID_standard___kernel___Comparable___OTHER(REGB0
))) /*cast OTHER*/;
590 if (UNTAG_Bool(REGB2
)) {
592 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
594 /* ./../lib/standard//kernel.nit:215 */
595 REGB3
= TAG_Bool(UNTAG_Int(REGB0
)<UNTAG_Int(REGB3
));
596 /* ./../lib/standard//collection//hash_collection.nit:154 */
597 if (UNTAG_Bool(REGB3
)) {
598 REGB3
= TAG_Bool(ATTR_standard___collection___hash_collection___HashCollection____length(fra
.me
.REG
[0])!=NIT_NULL
);
599 if (UNTAG_Bool(REGB3
)) {
601 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___hash_collection
, 154);
603 REGB3
= ATTR_standard___collection___hash_collection___HashCollection____length(fra
.me
.REG
[0]);
605 /* ./../lib/standard//kernel.nit:218 */
606 REGB2
= TAG_Int(UNTAG_Int(REGB3
)+UNTAG_Int(REGB2
));
607 /* ./../lib/standard//collection//hash_collection.nit:154 */
610 /* ./../lib/standard//collection//hash_collection.nit:155 */
611 REGB2
= TAG_Bool(ATTR_standard___collection___hash_collection___HashCollection____capacity(fra
.me
.REG
[0])!=NIT_NULL
);
612 if (UNTAG_Bool(REGB2
)) {
614 nit_abort("Uninitialized attribute %s", "_capacity", LOCATE_standard___collection___hash_collection
, 155);
616 REGB2
= ATTR_standard___collection___hash_collection___HashCollection____capacity(fra
.me
.REG
[0]);
617 REGB3
= TAG_Bool(VAL_ISA(REGB2
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0
), VTID_standard___kernel___Comparable___OTHER(REGB0
))) /*cast OTHER*/;
618 if (UNTAG_Bool(REGB3
)) {
620 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
622 /* ./../lib/standard//kernel.nit:214 */
623 REGB2
= TAG_Bool(UNTAG_Int(REGB0
)<=UNTAG_Int(REGB2
));
624 /* ./../lib/standard//collection//hash_collection.nit:155 */
625 if (UNTAG_Bool(REGB2
)) {
628 /* ./../lib/standard//collection//hash_collection.nit:156 */
629 ATTR_standard___collection___hash_collection___HashCollection____capacity(fra
.me
.REG
[0]) = REGB0
;
630 /* ./../lib/standard//collection//hash_collection.nit:157 */
631 ATTR_standard___collection___hash_collection___HashCollection____last_accessed_key(fra
.me
.REG
[0]) = NIT_NULL
;
632 /* ./../lib/standard//collection//array.nit:646 */
633 fra
.me
.REG
[1] = NEW_NativeArray(UNTAG_Int(REGB0
), sizeof(val_t
));
634 /* ./../lib/standard//collection//hash_collection.nit:161 */
635 ATTR_standard___collection___hash_collection___HashCollection____array(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
636 /* ./../lib/standard//collection//hash_collection.nit:164 */
638 /* ./../lib/standard//kernel.nit:220 */
639 REGB2
= TAG_Int(UNTAG_Int(REGB0
)-UNTAG_Int(REGB2
));
640 /* ./../lib/standard//collection//hash_collection.nit:165 */
643 REGB3
= TAG_Bool(VAL_ISA(REGB0
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB2
), VTID_standard___kernel___Comparable___OTHER(REGB2
))) /*cast OTHER*/;
644 if (UNTAG_Bool(REGB3
)) {
646 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
648 /* ./../lib/standard//kernel.nit:216 */
649 REGB0
= TAG_Bool(UNTAG_Int(REGB2
)>=UNTAG_Int(REGB0
));
650 /* ./../lib/standard//collection//hash_collection.nit:165 */
651 if (UNTAG_Bool(REGB0
)) {
652 /* ./../lib/standard//collection//array.nit:653 */
653 ((Nit_NativeArray
)fra
.me
.REG
[1])->val
[UNTAG_Int(REGB2
)]=NIT_NULL
;
654 /* ./../lib/standard//collection//hash_collection.nit:167 */
656 /* ./../lib/standard//kernel.nit:220 */
657 REGB0
= TAG_Int(UNTAG_Int(REGB2
)-UNTAG_Int(REGB0
));
658 /* ./../lib/standard//collection//hash_collection.nit:167 */
661 /* ./../lib/standard//collection//hash_collection.nit:165 */
666 /* ./../lib/standard//collection//hash_collection.nit:170 */
667 REGB2
= TAG_Bool(ATTR_standard___collection___hash_collection___HashCollection____capacity(fra
.me
.REG
[0])!=NIT_NULL
);
668 if (UNTAG_Bool(REGB2
)) {
670 nit_abort("Uninitialized attribute %s", "_capacity", LOCATE_standard___collection___hash_collection
, 170);
672 REGB2
= ATTR_standard___collection___hash_collection___HashCollection____capacity(fra
.me
.REG
[0]);
673 REGB0
= TAG_Bool(VAL_ISA(REGB1
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB2
), VTID_standard___kernel___Comparable___OTHER(REGB2
))) /*cast OTHER*/;
674 if (UNTAG_Bool(REGB0
)) {
676 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
678 /* ./../lib/standard//kernel.nit:214 */
679 REGB1
= TAG_Bool(UNTAG_Int(REGB2
)<=UNTAG_Int(REGB1
));
680 /* ./../lib/standard//collection//hash_collection.nit:170 */
681 if (UNTAG_Bool(REGB1
)) {
684 /* ./../lib/standard//collection//hash_collection.nit:173 */
685 fra
.me
.REG
[2] = ATTR_standard___collection___hash_collection___HashCollection____first_item(fra
.me
.REG
[0]);
686 /* ./../lib/standard//collection//hash_collection.nit:174 */
688 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
689 if (UNTAG_Bool(REGB1
)) {
691 REGB2
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
692 if (UNTAG_Bool(REGB2
)) {
693 REGB2
= TAG_Bool(false);
696 REGB2
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
700 REGB1
= TAG_Bool(!UNTAG_Bool(REGB1
));
701 if (UNTAG_Bool(REGB1
)) {
702 /* ./../lib/standard//collection//hash_collection.nit:175 */
703 REGB1
= TAG_Bool(ATTR_standard___collection___hash_collection___HashNode____key(fra
.me
.REG
[2])!=NIT_NULL
);
704 if (UNTAG_Bool(REGB1
)) {
706 nit_abort("Uninitialized attribute %s", "_key", LOCATE_standard___collection___hash_collection
, 175);
708 fra
.me
.REG
[3] = ATTR_standard___collection___hash_collection___HashNode____key(fra
.me
.REG
[2]);
709 REGB1
= CALL_standard___collection___hash_collection___HashCollection___index_at(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[3]);
710 /* ./../lib/standard//collection//array.nit:652 */
711 fra
.me
.REG
[3] = ((Nit_NativeArray
)fra
.me
.REG
[1])->val
[UNTAG_Int(REGB1
)];
712 /* ./../lib/standard//collection//array.nit:653 */
713 ((Nit_NativeArray
)fra
.me
.REG
[1])->val
[UNTAG_Int(REGB1
)]=fra
.me
.REG
[2];
714 /* ./../lib/standard//collection//hash_collection.nit:179 */
715 ATTR_standard___collection___hash_collection___HashNode____next_in_bucklet(fra
.me
.REG
[2]) = fra
.me
.REG
[3];
716 /* ./../lib/standard//collection//hash_collection.nit:180 */
717 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
718 if (UNTAG_Bool(REGB1
)) {
720 REGB2
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
721 if (UNTAG_Bool(REGB2
)) {
722 REGB2
= TAG_Bool(false);
725 REGB2
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
729 REGB1
= TAG_Bool(!UNTAG_Bool(REGB1
));
730 if (UNTAG_Bool(REGB1
)) {
731 ATTR_standard___collection___hash_collection___HashNode____prev_in_bucklet(fra
.me
.REG
[3]) = fra
.me
.REG
[2];
733 /* ./../lib/standard//collection//hash_collection.nit:181 */
734 fra
.me
.REG
[3] = ATTR_standard___collection___hash_collection___HashNode____next_item(fra
.me
.REG
[2]);
735 fra
.me
.REG
[2] = fra
.me
.REG
[3];
737 /* ./../lib/standard//collection//hash_collection.nit:174 */
743 stack_frame_head
= fra
.me
.prev
;
746 void standard___collection___hash_collection___HashCollection___init(val_t p0
, int* init_table
){
747 int itpos0
= VAL2OBJ(p0
)->vft
[INIT_TABLE_POS_standard___collection___hash_collection___HashCollection
].i
;
748 struct {struct stack_frame_t me
;} fra
;
750 if (init_table
[itpos0
]) return;
751 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
752 fra
.me
.file
= LOCATE_standard___collection___hash_collection
;
754 fra
.me
.meth
= LOCATE_standard___collection___hash_collection___HashCollection___init
;
755 fra
.me
.has_broke
= 0;
757 stack_frame_head
= fra
.me
.prev
;
758 init_table
[itpos0
] = 1;
761 val_t
standard___collection___hash_collection___HashNode___next_item(val_t p0
){
762 struct {struct stack_frame_t me
;} fra
;
764 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
765 fra
.me
.file
= LOCATE_standard___collection___hash_collection
;
767 fra
.me
.meth
= LOCATE_standard___collection___hash_collection___HashNode___next_item
;
768 fra
.me
.has_broke
= 0;
770 fra
.me
.REG
[0] = NIT_NULL
;
772 /* ./../lib/standard//collection//hash_collection.nit:189 */
773 fra
.me
.REG
[0] = ATTR_standard___collection___hash_collection___HashNode____next_item(fra
.me
.REG
[0]);
774 stack_frame_head
= fra
.me
.prev
;
775 return fra
.me
.REG
[0];
777 void standard___collection___hash_collection___HashNode___next_item__eq(val_t p0
, val_t p1
){
778 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
780 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
781 fra
.me
.file
= LOCATE_standard___collection___hash_collection
;
783 fra
.me
.meth
= LOCATE_standard___collection___hash_collection___HashNode___next_item__eq
;
784 fra
.me
.has_broke
= 0;
786 fra
.me
.REG
[0] = NIT_NULL
;
787 fra
.me
.REG
[1] = NIT_NULL
;
790 /* ./../lib/standard//collection//hash_collection.nit:189 */
791 ATTR_standard___collection___hash_collection___HashNode____next_item(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
792 stack_frame_head
= fra
.me
.prev
;
795 val_t
standard___collection___hash_collection___HashNode___prev_item(val_t p0
){
796 struct {struct stack_frame_t me
;} fra
;
798 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
799 fra
.me
.file
= LOCATE_standard___collection___hash_collection
;
801 fra
.me
.meth
= LOCATE_standard___collection___hash_collection___HashNode___prev_item
;
802 fra
.me
.has_broke
= 0;
804 fra
.me
.REG
[0] = NIT_NULL
;
806 /* ./../lib/standard//collection//hash_collection.nit:190 */
807 fra
.me
.REG
[0] = ATTR_standard___collection___hash_collection___HashNode____prev_item(fra
.me
.REG
[0]);
808 stack_frame_head
= fra
.me
.prev
;
809 return fra
.me
.REG
[0];
811 void standard___collection___hash_collection___HashNode___prev_item__eq(val_t p0
, val_t p1
){
812 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
814 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
815 fra
.me
.file
= LOCATE_standard___collection___hash_collection
;
817 fra
.me
.meth
= LOCATE_standard___collection___hash_collection___HashNode___prev_item__eq
;
818 fra
.me
.has_broke
= 0;
820 fra
.me
.REG
[0] = NIT_NULL
;
821 fra
.me
.REG
[1] = NIT_NULL
;
824 /* ./../lib/standard//collection//hash_collection.nit:190 */
825 ATTR_standard___collection___hash_collection___HashNode____prev_item(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
826 stack_frame_head
= fra
.me
.prev
;
829 void standard___collection___hash_collection___HashNode___init(val_t p0
, val_t p1
, int* init_table
){
830 int itpos1
= VAL2OBJ(p0
)->vft
[INIT_TABLE_POS_standard___collection___hash_collection___HashNode
].i
;
831 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
833 if (init_table
[itpos1
]) return;
834 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
835 fra
.me
.file
= LOCATE_standard___collection___hash_collection
;
837 fra
.me
.meth
= LOCATE_standard___collection___hash_collection___HashNode___init
;
838 fra
.me
.has_broke
= 0;
840 fra
.me
.REG
[0] = NIT_NULL
;
841 fra
.me
.REG
[1] = NIT_NULL
;
844 /* ./../lib/standard//collection//hash_collection.nit:195 */
845 ATTR_standard___collection___hash_collection___HashNode____key(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
846 stack_frame_head
= fra
.me
.prev
;
847 init_table
[itpos1
] = 1;
850 val_t
standard___collection___hash_collection___HashMap_____bra(val_t p0
, val_t p1
){
851 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
855 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
856 fra
.me
.file
= LOCATE_standard___collection___hash_collection
;
858 fra
.me
.meth
= LOCATE_standard___collection___hash_collection___HashMap_____bra
;
859 fra
.me
.has_broke
= 0;
861 fra
.me
.REG
[0] = NIT_NULL
;
862 fra
.me
.REG
[1] = NIT_NULL
;
865 /* ./../lib/standard//collection//hash_collection.nit:205 */
866 fra
.me
.REG
[1] = CALL_standard___collection___hash_collection___HashCollection___node_at(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
867 /* ./../lib/standard//collection//hash_collection.nit:206 */
868 REGB0
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
869 if (UNTAG_Bool(REGB0
)) {
871 REGB1
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
872 if (UNTAG_Bool(REGB1
)) {
873 REGB1
= TAG_Bool(false);
876 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[1])(fra
.me
.REG
[1], NIT_NULL
);
880 if (UNTAG_Bool(REGB0
)) {
881 /* ./../lib/standard//collection//hash_collection.nit:207 */
882 nit_abort("Aborted", NULL
, LOCATE_standard___collection___hash_collection
, 207);
884 /* ./../lib/standard//collection//hash_collection.nit:209 */
885 fra
.me
.REG
[1] = ATTR_standard___collection___hash_collection___HashMapNode____value(fra
.me
.REG
[1]);
889 stack_frame_head
= fra
.me
.prev
;
890 return fra
.me
.REG
[1];
892 val_t
standard___collection___hash_collection___HashMap___has_key(val_t p0
, val_t p1
){
893 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
897 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
898 fra
.me
.file
= LOCATE_standard___collection___hash_collection
;
900 fra
.me
.meth
= LOCATE_standard___collection___hash_collection___HashMap___has_key
;
901 fra
.me
.has_broke
= 0;
903 fra
.me
.REG
[0] = NIT_NULL
;
904 fra
.me
.REG
[1] = NIT_NULL
;
907 /* ./../lib/standard//collection//hash_collection.nit:213 */
908 fra
.me
.REG
[1] = CALL_standard___collection___hash_collection___HashCollection___node_at(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
909 REGB0
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
910 if (UNTAG_Bool(REGB0
)) {
912 REGB1
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
913 if (UNTAG_Bool(REGB1
)) {
914 REGB1
= TAG_Bool(false);
917 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[1])(fra
.me
.REG
[1], NIT_NULL
);
921 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
924 stack_frame_head
= fra
.me
.prev
;
927 val_t
standard___collection___hash_collection___HashMap___iterator(val_t p0
){
928 struct {struct stack_frame_t me
;} fra
;
930 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
931 fra
.me
.file
= LOCATE_standard___collection___hash_collection
;
933 fra
.me
.meth
= LOCATE_standard___collection___hash_collection___HashMap___iterator
;
934 fra
.me
.has_broke
= 0;
936 fra
.me
.REG
[0] = NIT_NULL
;
938 /* ./../lib/standard//collection//hash_collection.nit:215 */
939 fra
.me
.REG
[0] = NEW_HashMapIterator_standard___collection___hash_collection___HashMapIterator___init(fra
.me
.REG
[0]);
942 stack_frame_head
= fra
.me
.prev
;
943 return fra
.me
.REG
[0];
945 void standard___collection___hash_collection___HashMap___iterate(val_t p0
, struct stack_frame_t
*closctx_param
, fun_t clos_fun0
){
946 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
951 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
952 fra
.me
.file
= LOCATE_standard___collection___hash_collection
;
954 fra
.me
.meth
= LOCATE_standard___collection___hash_collection___HashMap___iterate
;
955 fra
.me
.has_broke
= 0;
957 fra
.me
.REG
[0] = NIT_NULL
;
958 fra
.me
.REG
[1] = NIT_NULL
;
959 fra
.me
.closure_ctx
= closctx_param
;
960 fra
.me
.closure_funs
= CREG
;
963 /* ./../lib/standard//collection//hash_collection.nit:220 */
964 fra
.me
.REG
[0] = ATTR_standard___collection___hash_collection___HashCollection____first_item(fra
.me
.REG
[0]);
965 /* ./../lib/standard//collection//hash_collection.nit:221 */
967 REGB0
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
968 if (UNTAG_Bool(REGB0
)) {
970 REGB1
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
971 if (UNTAG_Bool(REGB1
)) {
972 REGB1
= TAG_Bool(false);
975 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[0])(fra
.me
.REG
[0], NIT_NULL
);
979 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
980 if (UNTAG_Bool(REGB0
)) {
981 /* ./../lib/standard//collection//hash_collection.nit:222 */
982 fra
.me
.REG
[1] = ATTR_standard___collection___hash_collection___HashMapNode____value(fra
.me
.REG
[0]);
983 ((void (*)(struct stack_frame_t
*, val_t
))(CREG
[0]))(closctx_param
, fra
.me
.REG
[1]);
984 if (closctx_param
->has_broke
) {
987 /* ./../lib/standard//collection//hash_collection.nit:223 */
988 fra
.me
.REG
[1] = ATTR_standard___collection___hash_collection___HashNode____next_item(fra
.me
.REG
[0]);
989 fra
.me
.REG
[0] = fra
.me
.REG
[1];
991 /* ./../lib/standard//collection//hash_collection.nit:221 */
997 stack_frame_head
= fra
.me
.prev
;
1000 val_t
standard___collection___hash_collection___HashMap___first(val_t p0
){
1001 struct {struct stack_frame_t me
;} fra
;
1006 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1007 fra
.me
.file
= LOCATE_standard___collection___hash_collection
;
1009 fra
.me
.meth
= LOCATE_standard___collection___hash_collection___HashMap___first
;
1010 fra
.me
.has_broke
= 0;
1011 fra
.me
.REG_size
= 1;
1012 fra
.me
.REG
[0] = NIT_NULL
;
1014 /* ./../lib/standard//collection//hash_collection.nit:229 */
1015 REGB0
= TAG_Bool(ATTR_standard___collection___hash_collection___HashCollection____length(fra
.me
.REG
[0])!=NIT_NULL
);
1016 if (UNTAG_Bool(REGB0
)) {
1018 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___hash_collection
, 229);
1020 REGB0
= ATTR_standard___collection___hash_collection___HashCollection____length(fra
.me
.REG
[0]);
1022 REGB2
= TAG_Bool(VAL_ISA(REGB1
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0
), VTID_standard___kernel___Comparable___OTHER(REGB0
))) /*cast OTHER*/;
1023 if (UNTAG_Bool(REGB2
)) {
1025 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
1027 /* ./../lib/standard//kernel.nit:217 */
1028 REGB1
= TAG_Bool(UNTAG_Int(REGB0
)>UNTAG_Int(REGB1
));
1029 /* ./../lib/standard//collection//hash_collection.nit:229 */
1030 if (UNTAG_Bool(REGB1
)) {
1032 nit_abort("Assert failed", NULL
, LOCATE_standard___collection___hash_collection
, 229);
1034 /* ./../lib/standard//collection//hash_collection.nit:230 */
1035 fra
.me
.REG
[0] = ATTR_standard___collection___hash_collection___HashCollection____first_item(fra
.me
.REG
[0]);
1036 REGB1
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
1037 if (UNTAG_Bool(REGB1
)) {
1038 nit_abort("Reciever is null", NULL
, LOCATE_standard___collection___hash_collection
, 230);
1040 fra
.me
.REG
[0] = ATTR_standard___collection___hash_collection___HashMapNode____value(fra
.me
.REG
[0]);
1043 stack_frame_head
= fra
.me
.prev
;
1044 return fra
.me
.REG
[0];
1046 val_t
standard___collection___hash_collection___HashMap___length(val_t p0
){
1047 struct {struct stack_frame_t me
;} fra
;
1050 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1051 fra
.me
.file
= LOCATE_standard___collection___hash_collection
;
1053 fra
.me
.meth
= LOCATE_standard___collection___hash_collection___HashMap___length
;
1054 fra
.me
.has_broke
= 0;
1055 fra
.me
.REG_size
= 1;
1056 fra
.me
.REG
[0] = NIT_NULL
;
1058 /* ./../lib/standard//collection//hash_collection.nit:233 */
1059 REGB0
= TAG_Bool(ATTR_standard___collection___hash_collection___HashCollection____length(fra
.me
.REG
[0])!=NIT_NULL
);
1060 if (UNTAG_Bool(REGB0
)) {
1062 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___hash_collection
, 233);
1064 REGB0
= ATTR_standard___collection___hash_collection___HashCollection____length(fra
.me
.REG
[0]);
1067 stack_frame_head
= fra
.me
.prev
;
1070 val_t
standard___collection___hash_collection___HashMap___is_empty(val_t p0
){
1071 struct {struct stack_frame_t me
;} fra
;
1076 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1077 fra
.me
.file
= LOCATE_standard___collection___hash_collection
;
1079 fra
.me
.meth
= LOCATE_standard___collection___hash_collection___HashMap___is_empty
;
1080 fra
.me
.has_broke
= 0;
1081 fra
.me
.REG_size
= 1;
1082 fra
.me
.REG
[0] = NIT_NULL
;
1084 /* ./../lib/standard//collection//hash_collection.nit:235 */
1085 REGB0
= TAG_Bool(ATTR_standard___collection___hash_collection___HashCollection____length(fra
.me
.REG
[0])!=NIT_NULL
);
1086 if (UNTAG_Bool(REGB0
)) {
1088 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___hash_collection
, 235);
1090 REGB0
= ATTR_standard___collection___hash_collection___HashCollection____length(fra
.me
.REG
[0]);
1092 REGB2
= TAG_Bool(IS_EQUAL_OO(REGB0
,REGB1
));
1093 if (UNTAG_Bool(REGB2
)) {
1095 /* ./../lib/standard//kernel.nit:210 */
1096 REGB1
= TAG_Bool((REGB0
)==(REGB1
));
1097 /* ./../lib/standard//collection//hash_collection.nit:235 */
1102 stack_frame_head
= fra
.me
.prev
;
1105 val_t
standard___collection___hash_collection___HashMap___count(val_t p0
, val_t p1
){
1106 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
1111 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1112 fra
.me
.file
= LOCATE_standard___collection___hash_collection
;
1114 fra
.me
.meth
= LOCATE_standard___collection___hash_collection___HashMap___count
;
1115 fra
.me
.has_broke
= 0;
1116 fra
.me
.REG_size
= 3;
1117 fra
.me
.REG
[0] = NIT_NULL
;
1118 fra
.me
.REG
[1] = NIT_NULL
;
1119 fra
.me
.REG
[2] = NIT_NULL
;
1122 /* ./../lib/standard//collection//hash_collection.nit:239 */
1124 /* ./../lib/standard//collection//hash_collection.nit:240 */
1125 fra
.me
.REG
[0] = ATTR_standard___collection___hash_collection___HashCollection____first_item(fra
.me
.REG
[0]);
1126 /* ./../lib/standard//collection//hash_collection.nit:241 */
1128 REGB1
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
1129 if (UNTAG_Bool(REGB1
)) {
1131 REGB2
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
1132 if (UNTAG_Bool(REGB2
)) {
1133 REGB2
= TAG_Bool(false);
1136 REGB2
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[0])(fra
.me
.REG
[0], NIT_NULL
);
1140 REGB1
= TAG_Bool(!UNTAG_Bool(REGB1
));
1141 if (UNTAG_Bool(REGB1
)) {
1142 /* ./../lib/standard//collection//hash_collection.nit:242 */
1143 fra
.me
.REG
[2] = ATTR_standard___collection___hash_collection___HashMapNode____value(fra
.me
.REG
[0]);
1144 REGB1
= TAG_Bool(IS_EQUAL_NN(fra
.me
.REG
[2],fra
.me
.REG
[1]));
1145 if (UNTAG_Bool(REGB1
)) {
1147 REGB2
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
1148 if (UNTAG_Bool(REGB2
)) {
1149 REGB2
= TAG_Bool(false);
1152 REGB2
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[1]);
1156 if (UNTAG_Bool(REGB1
)) {
1158 /* ./../lib/standard//kernel.nit:218 */
1159 REGB1
= TAG_Int(UNTAG_Int(REGB0
)+UNTAG_Int(REGB1
));
1160 /* ./../lib/standard//collection//hash_collection.nit:242 */
1163 /* ./../lib/standard//collection//hash_collection.nit:243 */
1164 fra
.me
.REG
[2] = ATTR_standard___collection___hash_collection___HashNode____next_item(fra
.me
.REG
[0]);
1165 fra
.me
.REG
[0] = fra
.me
.REG
[2];
1167 /* ./../lib/standard//collection//hash_collection.nit:241 */
1172 /* ./../lib/standard//collection//hash_collection.nit:245 */
1175 stack_frame_head
= fra
.me
.prev
;
1178 val_t
standard___collection___hash_collection___HashMap___has(val_t p0
, val_t p1
){
1179 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
1183 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1184 fra
.me
.file
= LOCATE_standard___collection___hash_collection
;
1186 fra
.me
.meth
= LOCATE_standard___collection___hash_collection___HashMap___has
;
1187 fra
.me
.has_broke
= 0;
1188 fra
.me
.REG_size
= 3;
1189 fra
.me
.REG
[0] = NIT_NULL
;
1190 fra
.me
.REG
[1] = NIT_NULL
;
1191 fra
.me
.REG
[2] = NIT_NULL
;
1194 /* ./../lib/standard//collection//hash_collection.nit:250 */
1195 fra
.me
.REG
[0] = ATTR_standard___collection___hash_collection___HashCollection____first_item(fra
.me
.REG
[0]);
1196 /* ./../lib/standard//collection//hash_collection.nit:251 */
1198 REGB0
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
1199 if (UNTAG_Bool(REGB0
)) {
1201 REGB1
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
1202 if (UNTAG_Bool(REGB1
)) {
1203 REGB1
= TAG_Bool(false);
1206 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[0])(fra
.me
.REG
[0], NIT_NULL
);
1210 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
1211 if (UNTAG_Bool(REGB0
)) {
1212 /* ./../lib/standard//collection//hash_collection.nit:252 */
1213 fra
.me
.REG
[2] = ATTR_standard___collection___hash_collection___HashMapNode____value(fra
.me
.REG
[0]);
1214 REGB0
= TAG_Bool(IS_EQUAL_NN(fra
.me
.REG
[2],fra
.me
.REG
[1]));
1215 if (UNTAG_Bool(REGB0
)) {
1217 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
1218 if (UNTAG_Bool(REGB1
)) {
1219 REGB1
= TAG_Bool(false);
1222 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[1]);
1226 if (UNTAG_Bool(REGB0
)) {
1227 REGB0
= TAG_Bool(true);
1230 /* ./../lib/standard//collection//hash_collection.nit:253 */
1231 fra
.me
.REG
[2] = ATTR_standard___collection___hash_collection___HashNode____next_item(fra
.me
.REG
[0]);
1232 fra
.me
.REG
[0] = fra
.me
.REG
[2];
1234 /* ./../lib/standard//collection//hash_collection.nit:251 */
1239 /* ./../lib/standard//collection//hash_collection.nit:255 */
1240 REGB1
= TAG_Bool(false);
1244 stack_frame_head
= fra
.me
.prev
;
1247 val_t
standard___collection___hash_collection___HashMap___has_only(val_t p0
, val_t p1
){
1248 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
1252 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1253 fra
.me
.file
= LOCATE_standard___collection___hash_collection
;
1255 fra
.me
.meth
= LOCATE_standard___collection___hash_collection___HashMap___has_only
;
1256 fra
.me
.has_broke
= 0;
1257 fra
.me
.REG_size
= 3;
1258 fra
.me
.REG
[0] = NIT_NULL
;
1259 fra
.me
.REG
[1] = NIT_NULL
;
1260 fra
.me
.REG
[2] = NIT_NULL
;
1263 /* ./../lib/standard//collection//hash_collection.nit:260 */
1264 fra
.me
.REG
[0] = ATTR_standard___collection___hash_collection___HashCollection____first_item(fra
.me
.REG
[0]);
1265 /* ./../lib/standard//collection//hash_collection.nit:261 */
1267 REGB0
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
1268 if (UNTAG_Bool(REGB0
)) {
1270 REGB1
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
1271 if (UNTAG_Bool(REGB1
)) {
1272 REGB1
= TAG_Bool(false);
1275 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[0])(fra
.me
.REG
[0], NIT_NULL
);
1279 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
1280 if (UNTAG_Bool(REGB0
)) {
1281 /* ./../lib/standard//collection//hash_collection.nit:262 */
1282 fra
.me
.REG
[2] = ATTR_standard___collection___hash_collection___HashMapNode____value(fra
.me
.REG
[0]);
1283 REGB0
= TAG_Bool(IS_EQUAL_NN(fra
.me
.REG
[2],fra
.me
.REG
[1]));
1284 if (UNTAG_Bool(REGB0
)) {
1286 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
1287 if (UNTAG_Bool(REGB1
)) {
1288 REGB1
= TAG_Bool(false);
1291 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[1]);
1295 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
1296 if (UNTAG_Bool(REGB0
)) {
1297 REGB0
= TAG_Bool(false);
1300 /* ./../lib/standard//collection//hash_collection.nit:263 */
1301 fra
.me
.REG
[2] = ATTR_standard___collection___hash_collection___HashNode____next_item(fra
.me
.REG
[0]);
1302 fra
.me
.REG
[0] = fra
.me
.REG
[2];
1304 /* ./../lib/standard//collection//hash_collection.nit:261 */
1309 /* ./../lib/standard//collection//hash_collection.nit:265 */
1310 REGB1
= TAG_Bool(true);
1314 stack_frame_head
= fra
.me
.prev
;
1317 void standard___collection___hash_collection___HashMap_____braeq(val_t p0
, val_t p1
, val_t p2
){
1318 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
1323 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1324 fra
.me
.file
= LOCATE_standard___collection___hash_collection
;
1326 fra
.me
.meth
= LOCATE_standard___collection___hash_collection___HashMap_____braeq
;
1327 fra
.me
.has_broke
= 0;
1328 fra
.me
.REG_size
= 4;
1329 fra
.me
.REG
[0] = NIT_NULL
;
1330 fra
.me
.REG
[1] = NIT_NULL
;
1331 fra
.me
.REG
[2] = NIT_NULL
;
1332 fra
.me
.REG
[3] = NIT_NULL
;
1336 /* ./../lib/standard//collection//hash_collection.nit:270 */
1337 REGB0
= CALL_standard___collection___hash_collection___HashCollection___index_at(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
1338 /* ./../lib/standard//collection//hash_collection.nit:271 */
1339 fra
.me
.REG
[3] = CALL_standard___collection___hash_collection___HashCollection___node_at_idx(fra
.me
.REG
[0])(fra
.me
.REG
[0], REGB0
, fra
.me
.REG
[1]);
1340 /* ./../lib/standard//collection//hash_collection.nit:272 */
1341 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
1342 if (UNTAG_Bool(REGB1
)) {
1344 REGB2
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
1345 if (UNTAG_Bool(REGB2
)) {
1346 REGB2
= TAG_Bool(false);
1349 REGB2
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
1353 REGB1
= TAG_Bool(!UNTAG_Bool(REGB1
));
1354 if (UNTAG_Bool(REGB1
)) {
1355 /* ./../lib/standard//collection//hash_collection.nit:273 */
1356 ATTR_standard___collection___hash_collection___HashNode____key(fra
.me
.REG
[3]) = fra
.me
.REG
[1];
1357 /* ./../lib/standard//collection//hash_collection.nit:274 */
1358 ATTR_standard___collection___hash_collection___HashMapNode____value(fra
.me
.REG
[3]) = fra
.me
.REG
[2];
1360 /* ./../lib/standard//collection//hash_collection.nit:276 */
1361 fra
.me
.REG
[2] = NEW_HashMapNode_standard___collection___hash_collection___HashMapNode___init(fra
.me
.REG
[1], fra
.me
.REG
[2]);
1362 CALL_standard___collection___hash_collection___HashCollection___store(fra
.me
.REG
[0])(fra
.me
.REG
[0], REGB0
, fra
.me
.REG
[2]);
1364 stack_frame_head
= fra
.me
.prev
;
1367 void standard___collection___hash_collection___HashMap___remove(val_t p0
, val_t p1
){
1368 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
1372 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1373 fra
.me
.file
= LOCATE_standard___collection___hash_collection
;
1375 fra
.me
.meth
= LOCATE_standard___collection___hash_collection___HashMap___remove
;
1376 fra
.me
.has_broke
= 0;
1377 fra
.me
.REG_size
= 4;
1378 fra
.me
.REG
[0] = NIT_NULL
;
1379 fra
.me
.REG
[1] = NIT_NULL
;
1380 fra
.me
.REG
[2] = NIT_NULL
;
1381 fra
.me
.REG
[3] = NIT_NULL
;
1384 /* ./../lib/standard//collection//hash_collection.nit:282 */
1385 fra
.me
.REG
[2] = ATTR_standard___collection___hash_collection___HashCollection____first_item(fra
.me
.REG
[0]);
1386 /* ./../lib/standard//collection//hash_collection.nit:283 */
1388 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
1389 if (UNTAG_Bool(REGB0
)) {
1391 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
1392 if (UNTAG_Bool(REGB1
)) {
1393 REGB1
= TAG_Bool(false);
1396 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
1400 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
1401 if (UNTAG_Bool(REGB0
)) {
1402 /* ./../lib/standard//collection//hash_collection.nit:284 */
1403 fra
.me
.REG
[3] = ATTR_standard___collection___hash_collection___HashMapNode____value(fra
.me
.REG
[2]);
1404 REGB0
= TAG_Bool(IS_EQUAL_NN(fra
.me
.REG
[3],fra
.me
.REG
[1]));
1405 if (UNTAG_Bool(REGB0
)) {
1407 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
1408 if (UNTAG_Bool(REGB1
)) {
1409 REGB1
= TAG_Bool(false);
1412 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[1]);
1416 if (UNTAG_Bool(REGB0
)) {
1417 /* ./../lib/standard//collection//hash_collection.nit:285 */
1418 REGB0
= TAG_Bool(ATTR_standard___collection___hash_collection___HashNode____key(fra
.me
.REG
[2])!=NIT_NULL
);
1419 if (UNTAG_Bool(REGB0
)) {
1421 nit_abort("Uninitialized attribute %s", "_key", LOCATE_standard___collection___hash_collection
, 285);
1423 fra
.me
.REG
[3] = ATTR_standard___collection___hash_collection___HashNode____key(fra
.me
.REG
[2]);
1424 CALL_standard___collection___hash_collection___HashCollection___remove_node(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[3]);
1425 /* ./../lib/standard//collection//hash_collection.nit:286 */
1428 /* ./../lib/standard//collection//hash_collection.nit:288 */
1429 fra
.me
.REG
[3] = ATTR_standard___collection___hash_collection___HashNode____next_item(fra
.me
.REG
[2]);
1430 fra
.me
.REG
[2] = fra
.me
.REG
[3];
1432 /* ./../lib/standard//collection//hash_collection.nit:283 */
1438 stack_frame_head
= fra
.me
.prev
;
1441 void standard___collection___hash_collection___HashMap___remove_at(val_t p0
, val_t p1
){
1442 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
1444 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1445 fra
.me
.file
= LOCATE_standard___collection___hash_collection
;
1447 fra
.me
.meth
= LOCATE_standard___collection___hash_collection___HashMap___remove_at
;
1448 fra
.me
.has_broke
= 0;
1449 fra
.me
.REG_size
= 2;
1450 fra
.me
.REG
[0] = NIT_NULL
;
1451 fra
.me
.REG
[1] = NIT_NULL
;
1454 /* ./../lib/standard//collection//hash_collection.nit:292 */
1455 CALL_standard___collection___hash_collection___HashCollection___remove_node(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
1456 stack_frame_head
= fra
.me
.prev
;
1459 void standard___collection___hash_collection___HashMap___clear(val_t p0
){
1460 struct {struct stack_frame_t me
;} fra
;
1462 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1463 fra
.me
.file
= LOCATE_standard___collection___hash_collection
;
1465 fra
.me
.meth
= LOCATE_standard___collection___hash_collection___HashMap___clear
;
1466 fra
.me
.has_broke
= 0;
1467 fra
.me
.REG_size
= 1;
1468 fra
.me
.REG
[0] = NIT_NULL
;
1470 /* ./../lib/standard//collection//hash_collection.nit:294 */
1471 CALL_standard___collection___hash_collection___HashCollection___raz(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1472 stack_frame_head
= fra
.me
.prev
;
1475 void standard___collection___hash_collection___HashMap___init(val_t p0
, int* init_table
){
1476 int itpos2
= VAL2OBJ(p0
)->vft
[INIT_TABLE_POS_standard___collection___hash_collection___HashMap
].i
;
1477 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
1480 if (init_table
[itpos2
]) return;
1481 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1482 fra
.me
.file
= LOCATE_standard___collection___hash_collection
;
1484 fra
.me
.meth
= LOCATE_standard___collection___hash_collection___HashMap___init
;
1485 fra
.me
.has_broke
= 0;
1486 fra
.me
.REG_size
= 2;
1487 fra
.me
.REG
[0] = NIT_NULL
;
1488 fra
.me
.REG
[1] = NIT_NULL
;
1490 /* ./../lib/standard//collection//hash_collection.nit:296 */
1491 fra
.me
.REG
[1] = fra
.me
.REG
[0];
1492 CALL_standard___collection___hash_collection___HashCollection___init(fra
.me
.REG
[0])(fra
.me
.REG
[0], init_table
);
1493 /* ./../lib/standard//collection//hash_collection.nit:298 */
1495 ATTR_standard___collection___hash_collection___HashCollection____capacity(fra
.me
.REG
[1]) = REGB0
;
1496 /* ./../lib/standard//collection//hash_collection.nit:299 */
1498 ATTR_standard___collection___hash_collection___HashCollection____length(fra
.me
.REG
[1]) = REGB0
;
1499 /* ./../lib/standard//collection//hash_collection.nit:300 */
1501 CALL_standard___collection___hash_collection___HashCollection___enlarge(fra
.me
.REG
[1])(fra
.me
.REG
[1], REGB0
);
1502 stack_frame_head
= fra
.me
.prev
;
1503 init_table
[itpos2
] = 1;
1506 void standard___collection___hash_collection___HashMapNode___init(val_t p0
, val_t p1
, val_t p2
, int* init_table
){
1507 int itpos3
= VAL2OBJ(p0
)->vft
[INIT_TABLE_POS_standard___collection___hash_collection___HashMapNode
].i
;
1508 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
1510 if (init_table
[itpos3
]) return;
1511 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1512 fra
.me
.file
= LOCATE_standard___collection___hash_collection
;
1514 fra
.me
.meth
= LOCATE_standard___collection___hash_collection___HashMapNode___init
;
1515 fra
.me
.has_broke
= 0;
1516 fra
.me
.REG_size
= 4;
1517 fra
.me
.REG
[0] = NIT_NULL
;
1518 fra
.me
.REG
[1] = NIT_NULL
;
1519 fra
.me
.REG
[2] = NIT_NULL
;
1520 fra
.me
.REG
[3] = NIT_NULL
;
1524 /* ./../lib/standard//collection//hash_collection.nit:309 */
1525 fra
.me
.REG
[3] = fra
.me
.REG
[0];
1526 /* ./../lib/standard//collection//hash_collection.nit:311 */
1527 CALL_standard___collection___hash_collection___HashNode___init(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1], init_table
);
1528 /* ./../lib/standard//collection//hash_collection.nit:312 */
1529 ATTR_standard___collection___hash_collection___HashMapNode____value(fra
.me
.REG
[3]) = fra
.me
.REG
[2];
1530 stack_frame_head
= fra
.me
.prev
;
1531 init_table
[itpos3
] = 1;
1534 val_t
standard___collection___hash_collection___HashMapIterator___is_ok(val_t p0
){
1535 struct {struct stack_frame_t me
;} fra
;
1539 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1540 fra
.me
.file
= LOCATE_standard___collection___hash_collection
;
1542 fra
.me
.meth
= LOCATE_standard___collection___hash_collection___HashMapIterator___is_ok
;
1543 fra
.me
.has_broke
= 0;
1544 fra
.me
.REG_size
= 1;
1545 fra
.me
.REG
[0] = NIT_NULL
;
1547 /* ./../lib/standard//collection//hash_collection.nit:318 */
1548 fra
.me
.REG
[0] = ATTR_standard___collection___hash_collection___HashMapIterator____node(fra
.me
.REG
[0]);
1549 REGB0
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
1550 if (UNTAG_Bool(REGB0
)) {
1552 REGB1
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
1553 if (UNTAG_Bool(REGB1
)) {
1554 REGB1
= TAG_Bool(false);
1557 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[0])(fra
.me
.REG
[0], NIT_NULL
);
1561 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
1564 stack_frame_head
= fra
.me
.prev
;
1567 val_t
standard___collection___hash_collection___HashMapIterator___item(val_t p0
){
1568 struct {struct stack_frame_t me
;} fra
;
1571 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1572 fra
.me
.file
= LOCATE_standard___collection___hash_collection
;
1574 fra
.me
.meth
= LOCATE_standard___collection___hash_collection___HashMapIterator___item
;
1575 fra
.me
.has_broke
= 0;
1576 fra
.me
.REG_size
= 1;
1577 fra
.me
.REG
[0] = NIT_NULL
;
1579 /* ./../lib/standard//collection//hash_collection.nit:322 */
1580 REGB0
= CALL_standard___collection___abstract_collection___Iterator___is_ok(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1581 if (UNTAG_Bool(REGB0
)) {
1583 nit_abort("Assert failed", NULL
, LOCATE_standard___collection___hash_collection
, 322);
1585 /* ./../lib/standard//collection//hash_collection.nit:323 */
1586 fra
.me
.REG
[0] = ATTR_standard___collection___hash_collection___HashMapIterator____node(fra
.me
.REG
[0]);
1587 REGB0
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
1588 if (UNTAG_Bool(REGB0
)) {
1589 nit_abort("Reciever is null", NULL
, LOCATE_standard___collection___hash_collection
, 323);
1591 fra
.me
.REG
[0] = ATTR_standard___collection___hash_collection___HashMapNode____value(fra
.me
.REG
[0]);
1594 stack_frame_head
= fra
.me
.prev
;
1595 return fra
.me
.REG
[0];
1597 val_t
standard___collection___hash_collection___HashMapIterator___key(val_t p0
){
1598 struct {struct stack_frame_t me
;} fra
;
1601 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1602 fra
.me
.file
= LOCATE_standard___collection___hash_collection
;
1604 fra
.me
.meth
= LOCATE_standard___collection___hash_collection___HashMapIterator___key
;
1605 fra
.me
.has_broke
= 0;
1606 fra
.me
.REG_size
= 1;
1607 fra
.me
.REG
[0] = NIT_NULL
;
1609 /* ./../lib/standard//collection//hash_collection.nit:334 */
1610 REGB0
= CALL_standard___collection___abstract_collection___Iterator___is_ok(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1611 if (UNTAG_Bool(REGB0
)) {
1613 nit_abort("Assert failed", NULL
, LOCATE_standard___collection___hash_collection
, 334);
1615 /* ./../lib/standard//collection//hash_collection.nit:335 */
1616 fra
.me
.REG
[0] = ATTR_standard___collection___hash_collection___HashMapIterator____node(fra
.me
.REG
[0]);
1617 REGB0
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
1618 if (UNTAG_Bool(REGB0
)) {
1619 nit_abort("Reciever is null", NULL
, LOCATE_standard___collection___hash_collection
, 335);
1621 REGB0
= TAG_Bool(ATTR_standard___collection___hash_collection___HashNode____key(fra
.me
.REG
[0])!=NIT_NULL
);
1622 if (UNTAG_Bool(REGB0
)) {
1624 nit_abort("Uninitialized attribute %s", "_key", LOCATE_standard___collection___hash_collection
, 335);
1626 fra
.me
.REG
[0] = ATTR_standard___collection___hash_collection___HashNode____key(fra
.me
.REG
[0]);
1629 stack_frame_head
= fra
.me
.prev
;
1630 return fra
.me
.REG
[0];
1632 void standard___collection___hash_collection___HashMapIterator___next(val_t p0
){
1633 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
1636 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1637 fra
.me
.file
= LOCATE_standard___collection___hash_collection
;
1639 fra
.me
.meth
= LOCATE_standard___collection___hash_collection___HashMapIterator___next
;
1640 fra
.me
.has_broke
= 0;
1641 fra
.me
.REG_size
= 2;
1642 fra
.me
.REG
[0] = NIT_NULL
;
1643 fra
.me
.REG
[1] = NIT_NULL
;
1645 /* ./../lib/standard//collection//hash_collection.nit:340 */
1646 REGB0
= CALL_standard___collection___abstract_collection___Iterator___is_ok(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1647 if (UNTAG_Bool(REGB0
)) {
1649 nit_abort("Assert failed", NULL
, LOCATE_standard___collection___hash_collection
, 340);
1651 /* ./../lib/standard//collection//hash_collection.nit:341 */
1652 fra
.me
.REG
[1] = ATTR_standard___collection___hash_collection___HashMapIterator____node(fra
.me
.REG
[0]);
1653 REGB0
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
1654 if (UNTAG_Bool(REGB0
)) {
1655 nit_abort("Reciever is null", NULL
, LOCATE_standard___collection___hash_collection
, 341);
1657 fra
.me
.REG
[1] = ATTR_standard___collection___hash_collection___HashNode____next_item(fra
.me
.REG
[1]);
1658 ATTR_standard___collection___hash_collection___HashMapIterator____node(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
1659 stack_frame_head
= fra
.me
.prev
;
1662 void standard___collection___hash_collection___HashMapIterator___init(val_t p0
, val_t p1
, int* init_table
){
1663 int itpos4
= VAL2OBJ(p0
)->vft
[INIT_TABLE_POS_standard___collection___hash_collection___HashMapIterator
].i
;
1664 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
1666 if (init_table
[itpos4
]) return;
1667 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1668 fra
.me
.file
= LOCATE_standard___collection___hash_collection
;
1670 fra
.me
.meth
= LOCATE_standard___collection___hash_collection___HashMapIterator___init
;
1671 fra
.me
.has_broke
= 0;
1672 fra
.me
.REG_size
= 2;
1673 fra
.me
.REG
[0] = NIT_NULL
;
1674 fra
.me
.REG
[1] = NIT_NULL
;
1677 /* ./../lib/standard//collection//hash_collection.nit:352 */
1678 ATTR_standard___collection___hash_collection___HashMapIterator____map(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
1679 /* ./../lib/standard//collection//hash_collection.nit:353 */
1680 fra
.me
.REG
[1] = CALL_standard___collection___hash_collection___HashCollection___first_item(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
1681 ATTR_standard___collection___hash_collection___HashMapIterator____node(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
1682 stack_frame_head
= fra
.me
.prev
;
1683 init_table
[itpos4
] = 1;
1686 val_t
standard___collection___hash_collection___HashSet___length(val_t p0
){
1687 struct {struct stack_frame_t me
;} fra
;
1690 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1691 fra
.me
.file
= LOCATE_standard___collection___hash_collection
;
1693 fra
.me
.meth
= LOCATE_standard___collection___hash_collection___HashSet___length
;
1694 fra
.me
.has_broke
= 0;
1695 fra
.me
.REG_size
= 1;
1696 fra
.me
.REG
[0] = NIT_NULL
;
1698 /* ./../lib/standard//collection//hash_collection.nit:361 */
1699 REGB0
= TAG_Bool(ATTR_standard___collection___hash_collection___HashCollection____length(fra
.me
.REG
[0])!=NIT_NULL
);
1700 if (UNTAG_Bool(REGB0
)) {
1702 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___hash_collection
, 361);
1704 REGB0
= ATTR_standard___collection___hash_collection___HashCollection____length(fra
.me
.REG
[0]);
1707 stack_frame_head
= fra
.me
.prev
;
1710 val_t
standard___collection___hash_collection___HashSet___is_empty(val_t p0
){
1711 struct {struct stack_frame_t me
;} fra
;
1716 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1717 fra
.me
.file
= LOCATE_standard___collection___hash_collection
;
1719 fra
.me
.meth
= LOCATE_standard___collection___hash_collection___HashSet___is_empty
;
1720 fra
.me
.has_broke
= 0;
1721 fra
.me
.REG_size
= 1;
1722 fra
.me
.REG
[0] = NIT_NULL
;
1724 /* ./../lib/standard//collection//hash_collection.nit:363 */
1725 REGB0
= TAG_Bool(ATTR_standard___collection___hash_collection___HashCollection____length(fra
.me
.REG
[0])!=NIT_NULL
);
1726 if (UNTAG_Bool(REGB0
)) {
1728 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___hash_collection
, 363);
1730 REGB0
= ATTR_standard___collection___hash_collection___HashCollection____length(fra
.me
.REG
[0]);
1732 REGB2
= TAG_Bool(IS_EQUAL_OO(REGB0
,REGB1
));
1733 if (UNTAG_Bool(REGB2
)) {
1735 /* ./../lib/standard//kernel.nit:210 */
1736 REGB1
= TAG_Bool((REGB0
)==(REGB1
));
1737 /* ./../lib/standard//collection//hash_collection.nit:363 */
1742 stack_frame_head
= fra
.me
.prev
;
1745 val_t
standard___collection___hash_collection___HashSet___first(val_t p0
){
1746 struct {struct stack_frame_t me
;} fra
;
1751 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1752 fra
.me
.file
= LOCATE_standard___collection___hash_collection
;
1754 fra
.me
.meth
= LOCATE_standard___collection___hash_collection___HashSet___first
;
1755 fra
.me
.has_broke
= 0;
1756 fra
.me
.REG_size
= 1;
1757 fra
.me
.REG
[0] = NIT_NULL
;
1759 /* ./../lib/standard//collection//hash_collection.nit:367 */
1760 REGB0
= TAG_Bool(ATTR_standard___collection___hash_collection___HashCollection____length(fra
.me
.REG
[0])!=NIT_NULL
);
1761 if (UNTAG_Bool(REGB0
)) {
1763 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___hash_collection
, 367);
1765 REGB0
= ATTR_standard___collection___hash_collection___HashCollection____length(fra
.me
.REG
[0]);
1767 REGB2
= TAG_Bool(VAL_ISA(REGB1
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0
), VTID_standard___kernel___Comparable___OTHER(REGB0
))) /*cast OTHER*/;
1768 if (UNTAG_Bool(REGB2
)) {
1770 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
1772 /* ./../lib/standard//kernel.nit:217 */
1773 REGB1
= TAG_Bool(UNTAG_Int(REGB0
)>UNTAG_Int(REGB1
));
1774 /* ./../lib/standard//collection//hash_collection.nit:367 */
1775 if (UNTAG_Bool(REGB1
)) {
1777 nit_abort("Assert failed", NULL
, LOCATE_standard___collection___hash_collection
, 367);
1779 /* ./../lib/standard//collection//hash_collection.nit:368 */
1780 fra
.me
.REG
[0] = ATTR_standard___collection___hash_collection___HashCollection____first_item(fra
.me
.REG
[0]);
1781 REGB1
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
1782 if (UNTAG_Bool(REGB1
)) {
1783 nit_abort("Reciever is null", NULL
, LOCATE_standard___collection___hash_collection
, 368);
1785 REGB1
= TAG_Bool(ATTR_standard___collection___hash_collection___HashNode____key(fra
.me
.REG
[0])!=NIT_NULL
);
1786 if (UNTAG_Bool(REGB1
)) {
1788 nit_abort("Uninitialized attribute %s", "_key", LOCATE_standard___collection___hash_collection
, 368);
1790 fra
.me
.REG
[0] = ATTR_standard___collection___hash_collection___HashNode____key(fra
.me
.REG
[0]);
1793 stack_frame_head
= fra
.me
.prev
;
1794 return fra
.me
.REG
[0];
1796 val_t
standard___collection___hash_collection___HashSet___has(val_t p0
, val_t p1
){
1797 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
1801 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1802 fra
.me
.file
= LOCATE_standard___collection___hash_collection
;
1804 fra
.me
.meth
= LOCATE_standard___collection___hash_collection___HashSet___has
;
1805 fra
.me
.has_broke
= 0;
1806 fra
.me
.REG_size
= 2;
1807 fra
.me
.REG
[0] = NIT_NULL
;
1808 fra
.me
.REG
[1] = NIT_NULL
;
1811 /* ./../lib/standard//collection//hash_collection.nit:373 */
1812 fra
.me
.REG
[1] = CALL_standard___collection___hash_collection___HashCollection___node_at(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
1813 REGB0
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
1814 if (UNTAG_Bool(REGB0
)) {
1816 REGB1
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
1817 if (UNTAG_Bool(REGB1
)) {
1818 REGB1
= TAG_Bool(false);
1821 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[1])(fra
.me
.REG
[1], NIT_NULL
);
1825 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
1828 stack_frame_head
= fra
.me
.prev
;
1831 void standard___collection___hash_collection___HashSet___add(val_t p0
, val_t p1
){
1832 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
1837 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1838 fra
.me
.file
= LOCATE_standard___collection___hash_collection
;
1840 fra
.me
.meth
= LOCATE_standard___collection___hash_collection___HashSet___add
;
1841 fra
.me
.has_broke
= 0;
1842 fra
.me
.REG_size
= 3;
1843 fra
.me
.REG
[0] = NIT_NULL
;
1844 fra
.me
.REG
[1] = NIT_NULL
;
1845 fra
.me
.REG
[2] = NIT_NULL
;
1848 /* ./../lib/standard//collection//hash_collection.nit:378 */
1849 REGB0
= CALL_standard___collection___hash_collection___HashCollection___index_at(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
1850 /* ./../lib/standard//collection//hash_collection.nit:379 */
1851 fra
.me
.REG
[2] = CALL_standard___collection___hash_collection___HashCollection___node_at_idx(fra
.me
.REG
[0])(fra
.me
.REG
[0], REGB0
, fra
.me
.REG
[1]);
1852 /* ./../lib/standard//collection//hash_collection.nit:380 */
1853 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
1854 if (UNTAG_Bool(REGB1
)) {
1856 REGB2
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
1857 if (UNTAG_Bool(REGB2
)) {
1858 REGB2
= TAG_Bool(false);
1861 REGB2
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
1865 REGB1
= TAG_Bool(!UNTAG_Bool(REGB1
));
1866 if (UNTAG_Bool(REGB1
)) {
1867 /* ./../lib/standard//collection//hash_collection.nit:381 */
1868 ATTR_standard___collection___hash_collection___HashNode____key(fra
.me
.REG
[2]) = fra
.me
.REG
[1];
1870 /* ./../lib/standard//collection//hash_collection.nit:383 */
1871 fra
.me
.REG
[1] = NEW_HashSetNode_standard___collection___hash_collection___HashSetNode___init(fra
.me
.REG
[1]);
1872 CALL_standard___collection___hash_collection___HashCollection___store(fra
.me
.REG
[0])(fra
.me
.REG
[0], REGB0
, fra
.me
.REG
[1]);
1874 stack_frame_head
= fra
.me
.prev
;
1877 void standard___collection___hash_collection___HashSet___remove(val_t p0
, val_t p1
){
1878 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
1880 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1881 fra
.me
.file
= LOCATE_standard___collection___hash_collection
;
1883 fra
.me
.meth
= LOCATE_standard___collection___hash_collection___HashSet___remove
;
1884 fra
.me
.has_broke
= 0;
1885 fra
.me
.REG_size
= 2;
1886 fra
.me
.REG
[0] = NIT_NULL
;
1887 fra
.me
.REG
[1] = NIT_NULL
;
1890 /* ./../lib/standard//collection//hash_collection.nit:387 */
1891 CALL_standard___collection___hash_collection___HashCollection___remove_node(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
1892 stack_frame_head
= fra
.me
.prev
;
1895 void standard___collection___hash_collection___HashSet___clear(val_t p0
){
1896 struct {struct stack_frame_t me
;} fra
;
1898 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1899 fra
.me
.file
= LOCATE_standard___collection___hash_collection
;
1901 fra
.me
.meth
= LOCATE_standard___collection___hash_collection___HashSet___clear
;
1902 fra
.me
.has_broke
= 0;
1903 fra
.me
.REG_size
= 1;
1904 fra
.me
.REG
[0] = NIT_NULL
;
1906 /* ./../lib/standard//collection//hash_collection.nit:389 */
1907 CALL_standard___collection___hash_collection___HashCollection___raz(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1908 stack_frame_head
= fra
.me
.prev
;
1911 val_t
standard___collection___hash_collection___HashSet___iterator(val_t p0
){
1912 struct {struct stack_frame_t me
;} fra
;
1914 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1915 fra
.me
.file
= LOCATE_standard___collection___hash_collection
;
1917 fra
.me
.meth
= LOCATE_standard___collection___hash_collection___HashSet___iterator
;
1918 fra
.me
.has_broke
= 0;
1919 fra
.me
.REG_size
= 1;
1920 fra
.me
.REG
[0] = NIT_NULL
;
1922 /* ./../lib/standard//collection//hash_collection.nit:391 */
1923 fra
.me
.REG
[0] = NEW_HashSetIterator_standard___collection___hash_collection___HashSetIterator___init(fra
.me
.REG
[0]);
1926 stack_frame_head
= fra
.me
.prev
;
1927 return fra
.me
.REG
[0];
1929 void standard___collection___hash_collection___HashSet___init(val_t p0
, int* init_table
){
1930 int itpos5
= VAL2OBJ(p0
)->vft
[INIT_TABLE_POS_standard___collection___hash_collection___HashSet
].i
;
1931 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
1934 if (init_table
[itpos5
]) return;
1935 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1936 fra
.me
.file
= LOCATE_standard___collection___hash_collection
;
1938 fra
.me
.meth
= LOCATE_standard___collection___hash_collection___HashSet___init
;
1939 fra
.me
.has_broke
= 0;
1940 fra
.me
.REG_size
= 2;
1941 fra
.me
.REG
[0] = NIT_NULL
;
1942 fra
.me
.REG
[1] = NIT_NULL
;
1944 /* ./../lib/standard//collection//hash_collection.nit:393 */
1945 fra
.me
.REG
[1] = fra
.me
.REG
[0];
1946 CALL_standard___collection___hash_collection___HashCollection___init(fra
.me
.REG
[0])(fra
.me
.REG
[0], init_table
);
1947 /* ./../lib/standard//collection//hash_collection.nit:395 */
1949 ATTR_standard___collection___hash_collection___HashCollection____capacity(fra
.me
.REG
[1]) = REGB0
;
1950 /* ./../lib/standard//collection//hash_collection.nit:396 */
1952 ATTR_standard___collection___hash_collection___HashCollection____length(fra
.me
.REG
[1]) = REGB0
;
1953 /* ./../lib/standard//collection//hash_collection.nit:397 */
1955 CALL_standard___collection___hash_collection___HashCollection___enlarge(fra
.me
.REG
[1])(fra
.me
.REG
[1], REGB0
);
1956 stack_frame_head
= fra
.me
.prev
;
1957 init_table
[itpos5
] = 1;
1960 void standard___collection___hash_collection___HashSetNode___init(val_t p0
, val_t p1
, int* init_table
){
1961 int itpos6
= VAL2OBJ(p0
)->vft
[INIT_TABLE_POS_standard___collection___hash_collection___HashSetNode
].i
;
1962 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
1964 if (init_table
[itpos6
]) return;
1965 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1966 fra
.me
.file
= LOCATE_standard___collection___hash_collection
;
1968 fra
.me
.meth
= LOCATE_standard___collection___hash_collection___HashSetNode___init
;
1969 fra
.me
.has_broke
= 0;
1970 fra
.me
.REG_size
= 4;
1971 fra
.me
.REG
[0] = NIT_NULL
;
1972 fra
.me
.REG
[1] = NIT_NULL
;
1973 fra
.me
.REG
[2] = NIT_NULL
;
1974 fra
.me
.REG
[3] = NIT_NULL
;
1977 /* ./../lib/standard//collection//hash_collection.nit:405 */
1978 fra
.me
.REG
[2] = fra
.me
.REG
[0];
1979 fra
.me
.REG
[3] = fra
.me
.REG
[1];
1980 CALL_standard___collection___hash_collection___HashNode___init(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1], init_table
);
1981 /* ./../lib/standard//collection//hash_collection.nit:407 */
1982 ATTR_standard___collection___hash_collection___HashNode____key(fra
.me
.REG
[2]) = fra
.me
.REG
[3];
1983 stack_frame_head
= fra
.me
.prev
;
1984 init_table
[itpos6
] = 1;
1987 val_t
standard___collection___hash_collection___HashSetIterator___is_ok(val_t p0
){
1988 struct {struct stack_frame_t me
;} fra
;
1992 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1993 fra
.me
.file
= LOCATE_standard___collection___hash_collection
;
1995 fra
.me
.meth
= LOCATE_standard___collection___hash_collection___HashSetIterator___is_ok
;
1996 fra
.me
.has_broke
= 0;
1997 fra
.me
.REG_size
= 1;
1998 fra
.me
.REG
[0] = NIT_NULL
;
2000 /* ./../lib/standard//collection//hash_collection.nit:413 */
2001 fra
.me
.REG
[0] = ATTR_standard___collection___hash_collection___HashSetIterator____node(fra
.me
.REG
[0]);
2002 REGB0
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
2003 if (UNTAG_Bool(REGB0
)) {
2005 REGB1
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
2006 if (UNTAG_Bool(REGB1
)) {
2007 REGB1
= TAG_Bool(false);
2010 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[0])(fra
.me
.REG
[0], NIT_NULL
);
2014 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
2017 stack_frame_head
= fra
.me
.prev
;
2020 val_t
standard___collection___hash_collection___HashSetIterator___item(val_t p0
){
2021 struct {struct stack_frame_t me
;} fra
;
2024 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2025 fra
.me
.file
= LOCATE_standard___collection___hash_collection
;
2027 fra
.me
.meth
= LOCATE_standard___collection___hash_collection___HashSetIterator___item
;
2028 fra
.me
.has_broke
= 0;
2029 fra
.me
.REG_size
= 1;
2030 fra
.me
.REG
[0] = NIT_NULL
;
2032 /* ./../lib/standard//collection//hash_collection.nit:417 */
2033 REGB0
= CALL_standard___collection___abstract_collection___Iterator___is_ok(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2034 if (UNTAG_Bool(REGB0
)) {
2036 nit_abort("Assert failed", NULL
, LOCATE_standard___collection___hash_collection
, 417);
2038 /* ./../lib/standard//collection//hash_collection.nit:418 */
2039 fra
.me
.REG
[0] = ATTR_standard___collection___hash_collection___HashSetIterator____node(fra
.me
.REG
[0]);
2040 REGB0
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
2041 if (UNTAG_Bool(REGB0
)) {
2042 nit_abort("Reciever is null", NULL
, LOCATE_standard___collection___hash_collection
, 418);
2044 REGB0
= TAG_Bool(ATTR_standard___collection___hash_collection___HashNode____key(fra
.me
.REG
[0])!=NIT_NULL
);
2045 if (UNTAG_Bool(REGB0
)) {
2047 nit_abort("Uninitialized attribute %s", "_key", LOCATE_standard___collection___hash_collection
, 418);
2049 fra
.me
.REG
[0] = ATTR_standard___collection___hash_collection___HashNode____key(fra
.me
.REG
[0]);
2052 stack_frame_head
= fra
.me
.prev
;
2053 return fra
.me
.REG
[0];
2055 void standard___collection___hash_collection___HashSetIterator___next(val_t p0
){
2056 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
2059 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2060 fra
.me
.file
= LOCATE_standard___collection___hash_collection
;
2062 fra
.me
.meth
= LOCATE_standard___collection___hash_collection___HashSetIterator___next
;
2063 fra
.me
.has_broke
= 0;
2064 fra
.me
.REG_size
= 2;
2065 fra
.me
.REG
[0] = NIT_NULL
;
2066 fra
.me
.REG
[1] = NIT_NULL
;
2068 /* ./../lib/standard//collection//hash_collection.nit:423 */
2069 REGB0
= CALL_standard___collection___abstract_collection___Iterator___is_ok(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2070 if (UNTAG_Bool(REGB0
)) {
2072 nit_abort("Assert failed", NULL
, LOCATE_standard___collection___hash_collection
, 423);
2074 /* ./../lib/standard//collection//hash_collection.nit:424 */
2075 fra
.me
.REG
[1] = ATTR_standard___collection___hash_collection___HashSetIterator____node(fra
.me
.REG
[0]);
2076 REGB0
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
2077 if (UNTAG_Bool(REGB0
)) {
2078 nit_abort("Reciever is null", NULL
, LOCATE_standard___collection___hash_collection
, 424);
2080 fra
.me
.REG
[1] = ATTR_standard___collection___hash_collection___HashNode____next_item(fra
.me
.REG
[1]);
2081 ATTR_standard___collection___hash_collection___HashSetIterator____node(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
2082 stack_frame_head
= fra
.me
.prev
;
2085 void standard___collection___hash_collection___HashSetIterator___init(val_t p0
, val_t p1
, int* init_table
){
2086 int itpos7
= VAL2OBJ(p0
)->vft
[INIT_TABLE_POS_standard___collection___hash_collection___HashSetIterator
].i
;
2087 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
2089 if (init_table
[itpos7
]) return;
2090 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2091 fra
.me
.file
= LOCATE_standard___collection___hash_collection
;
2093 fra
.me
.meth
= LOCATE_standard___collection___hash_collection___HashSetIterator___init
;
2094 fra
.me
.has_broke
= 0;
2095 fra
.me
.REG_size
= 2;
2096 fra
.me
.REG
[0] = NIT_NULL
;
2097 fra
.me
.REG
[1] = NIT_NULL
;
2100 /* ./../lib/standard//collection//hash_collection.nit:435 */
2101 ATTR_standard___collection___hash_collection___HashSetIterator____set(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
2102 /* ./../lib/standard//collection//hash_collection.nit:436 */
2103 fra
.me
.REG
[1] = ATTR_standard___collection___hash_collection___HashCollection____first_item(fra
.me
.REG
[1]);
2104 ATTR_standard___collection___hash_collection___HashSetIterator____node(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
2105 stack_frame_head
= fra
.me
.prev
;
2106 init_table
[itpos7
] = 1;