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:27 */
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:39 */
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
, 39);
42 REGB1
= ATTR_standard___collection___hash_collection___HashCollection____capacity(fra
.me
.REG
[0]);
43 /* ./../lib/standard//kernel.nit:240 */
44 REGB1
= TAG_Int(UNTAG_Int(REGB0
)%UNTAG_Int(REGB1
));
45 /* ./../lib/standard//collection//hash_collection.nit:40 */
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:232 */
53 REGB0
= TAG_Bool(UNTAG_Int(REGB1
)<UNTAG_Int(REGB0
));
54 /* ./../lib/standard//collection//hash_collection.nit:40 */
55 if (UNTAG_Bool(REGB0
)) {
56 /* ./../lib/standard//kernel.nit:236 */
57 REGB0
= TAG_Int(-UNTAG_Int(REGB1
));
58 /* ./../lib/standard//collection//hash_collection.nit:40 */
61 /* ./../lib/standard//collection//hash_collection.nit:41 */
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:48 */
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:50 */
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:51 */
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:52 */
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:53 */
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:59 */
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
, 59);
128 /* ./../lib/standard//collection//array.nit:718 */
129 fra
.me
.REG
[0] = ((Nit_NativeArray
)fra
.me
.REG
[0])->val
[UNTAG_Int(REGB0
)];
130 /* ./../lib/standard//collection//hash_collection.nit:60 */
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:61 */
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
, 61);
152 fra
.me
.REG
[2] = ATTR_standard___collection___hash_collection___HashNode____key(fra
.me
.REG
[0]);
153 /* ./../lib/standard//collection//hash_collection.nit:62 */
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:63 */
170 /* ./../lib/standard//collection//hash_collection.nit:65 */
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:60 */
179 /* ./../lib/standard//collection//hash_collection.nit:67 */
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:74 */
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:75 */
220 ATTR_standard___collection___hash_collection___HashCollection____first_item(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
222 /* ./../lib/standard//collection//hash_collection.nit:77 */
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
, 77);
228 ATTR_standard___collection___hash_collection___HashNode____next_item(fra
.me
.REG
[2]) = fra
.me
.REG
[1];
230 /* ./../lib/standard//collection//hash_collection.nit:79 */
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:80 */
234 ATTR_standard___collection___hash_collection___HashNode____next_item(fra
.me
.REG
[1]) = NIT_NULL
;
235 /* ./../lib/standard//collection//hash_collection.nit:81 */
236 ATTR_standard___collection___hash_collection___HashCollection____last_item(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
237 /* ./../lib/standard//collection//hash_collection.nit:84 */
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
, 84);
243 /* ./../lib/standard//collection//array.nit:718 */
244 fra
.me
.REG
[2] = ((Nit_NativeArray
)fra
.me
.REG
[2])->val
[UNTAG_Int(REGB0
)];
245 /* ./../lib/standard//collection//hash_collection.nit:85 */
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
, 85);
251 /* ./../lib/standard//collection//array.nit:719 */
252 ((Nit_NativeArray
)fra
.me
.REG
[3])->val
[UNTAG_Int(REGB0
)]=fra
.me
.REG
[1];
253 /* ./../lib/standard//collection//hash_collection.nit:86 */
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:87 */
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:89 */
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
, 89);
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:90 */
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:93 */
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
, 93);
288 REGB0
= ATTR_standard___collection___hash_collection___HashCollection____length(fra
.me
.REG
[0]);
289 /* ./../lib/standard//collection//hash_collection.nit:94 */
291 /* ./../lib/standard//kernel.nit:235 */
292 REGB1
= TAG_Int(UNTAG_Int(REGB0
)+UNTAG_Int(REGB1
));
293 /* ./../lib/standard//collection//hash_collection.nit:94 */
294 ATTR_standard___collection___hash_collection___HashCollection____length(fra
.me
.REG
[0]) = REGB1
;
295 /* ./../lib/standard//collection//hash_collection.nit:95 */
297 /* ./../lib/standard//kernel.nit:235 */
298 REGB1
= TAG_Int(UNTAG_Int(REGB0
)+UNTAG_Int(REGB1
));
299 /* ./../lib/standard//collection//hash_collection.nit:95 */
301 /* ./../lib/standard//kernel.nit:238 */
302 REGB2
= TAG_Int(UNTAG_Int(REGB1
)*UNTAG_Int(REGB2
));
303 /* ./../lib/standard//collection//hash_collection.nit:95 */
305 /* ./../lib/standard//kernel.nit:239 */
306 REGB1
= TAG_Int(UNTAG_Int(REGB2
)/UNTAG_Int(REGB1
));
307 /* ./../lib/standard//collection//hash_collection.nit:95 */
309 /* ./../lib/standard//collection//hash_collection.nit:96 */
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
, 96);
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:233 */
322 REGB1
= TAG_Bool(UNTAG_Int(REGB0
)>=UNTAG_Int(REGB1
));
323 /* ./../lib/standard//collection//hash_collection.nit:96 */
324 if (UNTAG_Bool(REGB1
)) {
325 /* ./../lib/standard//collection//hash_collection.nit:97 */
327 /* ./../lib/standard//kernel.nit:238 */
328 REGB1
= TAG_Int(UNTAG_Int(REGB0
)*UNTAG_Int(REGB1
));
329 /* ./../lib/standard//collection//hash_collection.nit:97 */
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:104 */
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:105 */
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:106 */
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:109 */
375 fra
.me
.REG
[2] = ATTR_standard___collection___hash_collection___HashNode____prev_item(fra
.me
.REG
[1]);
376 /* ./../lib/standard//collection//hash_collection.nit:110 */
377 fra
.me
.REG
[3] = ATTR_standard___collection___hash_collection___HashNode____next_item(fra
.me
.REG
[1]);
378 /* ./../lib/standard//collection//hash_collection.nit:111 */
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:112 */
394 ATTR_standard___collection___hash_collection___HashNode____next_item(fra
.me
.REG
[2]) = fra
.me
.REG
[3];
396 /* ./../lib/standard//collection//hash_collection.nit:114 */
397 ATTR_standard___collection___hash_collection___HashCollection____first_item(fra
.me
.REG
[0]) = fra
.me
.REG
[3];
399 /* ./../lib/standard//collection//hash_collection.nit:116 */
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:117 */
415 ATTR_standard___collection___hash_collection___HashNode____prev_item(fra
.me
.REG
[3]) = fra
.me
.REG
[2];
417 /* ./../lib/standard//collection//hash_collection.nit:119 */
418 ATTR_standard___collection___hash_collection___HashCollection____last_item(fra
.me
.REG
[0]) = fra
.me
.REG
[2];
420 /* ./../lib/standard//collection//hash_collection.nit:123 */
421 REGB1
= ATTR_standard___collection___hash_collection___HashCollection____length(fra
.me
.REG
[0]);
423 /* ./../lib/standard//kernel.nit:237 */
424 REGB2
= TAG_Int(UNTAG_Int(REGB1
)-UNTAG_Int(REGB2
));
425 /* ./../lib/standard//collection//hash_collection.nit:123 */
426 ATTR_standard___collection___hash_collection___HashCollection____length(fra
.me
.REG
[0]) = REGB2
;
427 /* ./../lib/standard//collection//hash_collection.nit:124 */
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:125 */
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:126 */
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:127 */
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:129 */
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
, 129);
457 /* ./../lib/standard//collection//array.nit:719 */
458 ((Nit_NativeArray
)fra
.me
.REG
[1])->val
[UNTAG_Int(REGB0
)]=fra
.me
.REG
[3];
460 /* ./../lib/standard//collection//hash_collection.nit:131 */
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:132 */
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:135 */
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:141 */
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
, 141);
505 REGB0
= ATTR_standard___collection___hash_collection___HashCollection____capacity(fra
.me
.REG
[0]);
507 /* ./../lib/standard//kernel.nit:237 */
508 REGB1
= TAG_Int(UNTAG_Int(REGB0
)-UNTAG_Int(REGB1
));
509 /* ./../lib/standard//collection//hash_collection.nit:142 */
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:233 */
518 REGB0
= TAG_Bool(UNTAG_Int(REGB1
)>=UNTAG_Int(REGB0
));
519 /* ./../lib/standard//collection//hash_collection.nit:142 */
520 if (UNTAG_Bool(REGB0
)) {
521 /* ./../lib/standard//collection//hash_collection.nit:143 */
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
, 143);
527 /* ./../lib/standard//collection//array.nit:719 */
528 ((Nit_NativeArray
)fra
.me
.REG
[1])->val
[UNTAG_Int(REGB1
)]=NIT_NULL
;
529 /* ./../lib/standard//collection//hash_collection.nit:144 */
531 /* ./../lib/standard//kernel.nit:237 */
532 REGB0
= TAG_Int(UNTAG_Int(REGB1
)-UNTAG_Int(REGB0
));
533 /* ./../lib/standard//collection//hash_collection.nit:144 */
536 /* ./../lib/standard//collection//hash_collection.nit:142 */
541 /* ./../lib/standard//collection//hash_collection.nit:146 */
543 ATTR_standard___collection___hash_collection___HashCollection____length(fra
.me
.REG
[0]) = REGB1
;
544 /* ./../lib/standard//collection//hash_collection.nit:147 */
545 ATTR_standard___collection___hash_collection___HashCollection____first_item(fra
.me
.REG
[0]) = NIT_NULL
;
546 /* ./../lib/standard//collection//hash_collection.nit:148 */
547 ATTR_standard___collection___hash_collection___HashCollection____last_item(fra
.me
.REG
[0]) = NIT_NULL
;
548 /* ./../lib/standard//collection//hash_collection.nit:149 */
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:155 */
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
, 155);
578 REGB1
= ATTR_standard___collection___hash_collection___HashCollection____capacity(fra
.me
.REG
[0]);
579 /* ./../lib/standard//collection//hash_collection.nit:157 */
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
, 157);
585 REGB2
= ATTR_standard___collection___hash_collection___HashCollection____length(fra
.me
.REG
[0]);
587 /* ./../lib/standard//kernel.nit:235 */
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:232 */
595 REGB3
= TAG_Bool(UNTAG_Int(REGB0
)<UNTAG_Int(REGB3
));
596 /* ./../lib/standard//collection//hash_collection.nit:157 */
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
, 157);
603 REGB3
= ATTR_standard___collection___hash_collection___HashCollection____length(fra
.me
.REG
[0]);
605 /* ./../lib/standard//kernel.nit:235 */
606 REGB2
= TAG_Int(UNTAG_Int(REGB3
)+UNTAG_Int(REGB2
));
607 /* ./../lib/standard//collection//hash_collection.nit:157 */
610 /* ./../lib/standard//collection//hash_collection.nit:158 */
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
, 158);
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:231 */
623 REGB2
= TAG_Bool(UNTAG_Int(REGB0
)<=UNTAG_Int(REGB2
));
624 /* ./../lib/standard//collection//hash_collection.nit:158 */
625 if (UNTAG_Bool(REGB2
)) {
628 /* ./../lib/standard//collection//hash_collection.nit:159 */
629 ATTR_standard___collection___hash_collection___HashCollection____capacity(fra
.me
.REG
[0]) = REGB0
;
630 /* ./../lib/standard//collection//hash_collection.nit:160 */
631 ATTR_standard___collection___hash_collection___HashCollection____last_accessed_key(fra
.me
.REG
[0]) = NIT_NULL
;
632 /* ./../lib/standard//collection//array.nit:712 */
633 fra
.me
.REG
[1] = NEW_NativeArray(UNTAG_Int(REGB0
), sizeof(val_t
));
634 /* ./../lib/standard//collection//hash_collection.nit:164 */
635 ATTR_standard___collection___hash_collection___HashCollection____array(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
636 /* ./../lib/standard//collection//hash_collection.nit:167 */
638 /* ./../lib/standard//kernel.nit:237 */
639 REGB2
= TAG_Int(UNTAG_Int(REGB0
)-UNTAG_Int(REGB2
));
640 /* ./../lib/standard//collection//hash_collection.nit:168 */
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:233 */
649 REGB0
= TAG_Bool(UNTAG_Int(REGB2
)>=UNTAG_Int(REGB0
));
650 /* ./../lib/standard//collection//hash_collection.nit:168 */
651 if (UNTAG_Bool(REGB0
)) {
652 /* ./../lib/standard//collection//array.nit:719 */
653 ((Nit_NativeArray
)fra
.me
.REG
[1])->val
[UNTAG_Int(REGB2
)]=NIT_NULL
;
654 /* ./../lib/standard//collection//hash_collection.nit:170 */
656 /* ./../lib/standard//kernel.nit:237 */
657 REGB0
= TAG_Int(UNTAG_Int(REGB2
)-UNTAG_Int(REGB0
));
658 /* ./../lib/standard//collection//hash_collection.nit:170 */
661 /* ./../lib/standard//collection//hash_collection.nit:168 */
666 /* ./../lib/standard//collection//hash_collection.nit:173 */
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
, 173);
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:231 */
679 REGB1
= TAG_Bool(UNTAG_Int(REGB2
)<=UNTAG_Int(REGB1
));
680 /* ./../lib/standard//collection//hash_collection.nit:173 */
681 if (UNTAG_Bool(REGB1
)) {
684 /* ./../lib/standard//collection//hash_collection.nit:176 */
685 fra
.me
.REG
[2] = ATTR_standard___collection___hash_collection___HashCollection____first_item(fra
.me
.REG
[0]);
686 /* ./../lib/standard//collection//hash_collection.nit:177 */
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:178 */
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
, 178);
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:718 */
711 fra
.me
.REG
[3] = ((Nit_NativeArray
)fra
.me
.REG
[1])->val
[UNTAG_Int(REGB1
)];
712 /* ./../lib/standard//collection//array.nit:719 */
713 ((Nit_NativeArray
)fra
.me
.REG
[1])->val
[UNTAG_Int(REGB1
)]=fra
.me
.REG
[2];
714 /* ./../lib/standard//collection//hash_collection.nit:182 */
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:183 */
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:184 */
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:177 */
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:192 */
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:192 */
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:193 */
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:193 */
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:198 */
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:210 */
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:211 */
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:212 */
882 nit_abort("Aborted", NULL
, LOCATE_standard___collection___hash_collection
, 212);
884 /* ./../lib/standard//collection//hash_collection.nit:214 */
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___iterator(val_t p0
){
893 struct {struct stack_frame_t me
;} fra
;
895 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
896 fra
.me
.file
= LOCATE_standard___collection___hash_collection
;
898 fra
.me
.meth
= LOCATE_standard___collection___hash_collection___HashMap___iterator
;
899 fra
.me
.has_broke
= 0;
901 fra
.me
.REG
[0] = NIT_NULL
;
903 /* ./../lib/standard//collection//hash_collection.nit:218 */
904 fra
.me
.REG
[0] = NEW_HashMapIterator_standard___collection___hash_collection___HashMapIterator___init(fra
.me
.REG
[0]);
907 stack_frame_head
= fra
.me
.prev
;
908 return fra
.me
.REG
[0];
910 void standard___collection___hash_collection___HashMap___iterate(val_t p0
, struct stack_frame_t
*closctx_param
, fun_t clos_fun0
){
911 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
916 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
917 fra
.me
.file
= LOCATE_standard___collection___hash_collection
;
919 fra
.me
.meth
= LOCATE_standard___collection___hash_collection___HashMap___iterate
;
920 fra
.me
.has_broke
= 0;
922 fra
.me
.REG
[0] = NIT_NULL
;
923 fra
.me
.REG
[1] = NIT_NULL
;
924 fra
.me
.REG
[2] = NIT_NULL
;
925 fra
.me
.closure_ctx
= closctx_param
;
926 fra
.me
.closure_funs
= CREG
;
929 /* ./../lib/standard//collection//hash_collection.nit:223 */
930 fra
.me
.REG
[0] = ATTR_standard___collection___hash_collection___HashCollection____first_item(fra
.me
.REG
[0]);
931 /* ./../lib/standard//collection//hash_collection.nit:224 */
933 REGB0
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
934 if (UNTAG_Bool(REGB0
)) {
936 REGB1
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
937 if (UNTAG_Bool(REGB1
)) {
938 REGB1
= TAG_Bool(false);
941 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[0])(fra
.me
.REG
[0], NIT_NULL
);
945 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
946 if (UNTAG_Bool(REGB0
)) {
947 /* ./../lib/standard//collection//hash_collection.nit:225 */
948 REGB0
= TAG_Bool(ATTR_standard___collection___hash_collection___HashNode____key(fra
.me
.REG
[0])!=NIT_NULL
);
949 if (UNTAG_Bool(REGB0
)) {
951 nit_abort("Uninitialized attribute %s", "_key", LOCATE_standard___collection___hash_collection
, 225);
953 fra
.me
.REG
[1] = ATTR_standard___collection___hash_collection___HashNode____key(fra
.me
.REG
[0]);
954 fra
.me
.REG
[2] = ATTR_standard___collection___hash_collection___HashMapNode____value(fra
.me
.REG
[0]);
955 ((void (*)(struct stack_frame_t
*, val_t
, val_t
))(CREG
[0]))(closctx_param
, fra
.me
.REG
[1], fra
.me
.REG
[2]);
956 if (closctx_param
->has_broke
) {
959 /* ./../lib/standard//collection//hash_collection.nit:226 */
960 fra
.me
.REG
[2] = ATTR_standard___collection___hash_collection___HashNode____next_item(fra
.me
.REG
[0]);
961 fra
.me
.REG
[0] = fra
.me
.REG
[2];
963 /* ./../lib/standard//collection//hash_collection.nit:224 */
969 stack_frame_head
= fra
.me
.prev
;
972 val_t
standard___collection___hash_collection___HashMap___length(val_t p0
){
973 struct {struct stack_frame_t me
;} fra
;
976 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
977 fra
.me
.file
= LOCATE_standard___collection___hash_collection
;
979 fra
.me
.meth
= LOCATE_standard___collection___hash_collection___HashMap___length
;
980 fra
.me
.has_broke
= 0;
982 fra
.me
.REG
[0] = NIT_NULL
;
984 /* ./../lib/standard//collection//hash_collection.nit:230 */
985 REGB0
= TAG_Bool(ATTR_standard___collection___hash_collection___HashCollection____length(fra
.me
.REG
[0])!=NIT_NULL
);
986 if (UNTAG_Bool(REGB0
)) {
988 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___hash_collection
, 230);
990 REGB0
= ATTR_standard___collection___hash_collection___HashCollection____length(fra
.me
.REG
[0]);
993 stack_frame_head
= fra
.me
.prev
;
996 val_t
standard___collection___hash_collection___HashMap___is_empty(val_t p0
){
997 struct {struct stack_frame_t me
;} fra
;
1002 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1003 fra
.me
.file
= LOCATE_standard___collection___hash_collection
;
1005 fra
.me
.meth
= LOCATE_standard___collection___hash_collection___HashMap___is_empty
;
1006 fra
.me
.has_broke
= 0;
1007 fra
.me
.REG_size
= 1;
1008 fra
.me
.REG
[0] = NIT_NULL
;
1010 /* ./../lib/standard//collection//hash_collection.nit:232 */
1011 REGB0
= TAG_Bool(ATTR_standard___collection___hash_collection___HashCollection____length(fra
.me
.REG
[0])!=NIT_NULL
);
1012 if (UNTAG_Bool(REGB0
)) {
1014 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___hash_collection
, 232);
1016 REGB0
= ATTR_standard___collection___hash_collection___HashCollection____length(fra
.me
.REG
[0]);
1018 REGB2
= TAG_Bool(IS_EQUAL_OO(REGB0
,REGB1
));
1019 if (UNTAG_Bool(REGB2
)) {
1021 /* ./../lib/standard//kernel.nit:227 */
1022 REGB1
= TAG_Bool((REGB0
)==(REGB1
));
1023 /* ./../lib/standard//collection//hash_collection.nit:232 */
1028 stack_frame_head
= fra
.me
.prev
;
1031 void standard___collection___hash_collection___HashMap_____braeq(val_t p0
, val_t p1
, val_t p2
){
1032 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
1037 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1038 fra
.me
.file
= LOCATE_standard___collection___hash_collection
;
1040 fra
.me
.meth
= LOCATE_standard___collection___hash_collection___HashMap_____braeq
;
1041 fra
.me
.has_broke
= 0;
1042 fra
.me
.REG_size
= 4;
1043 fra
.me
.REG
[0] = NIT_NULL
;
1044 fra
.me
.REG
[1] = NIT_NULL
;
1045 fra
.me
.REG
[2] = NIT_NULL
;
1046 fra
.me
.REG
[3] = NIT_NULL
;
1050 /* ./../lib/standard//collection//hash_collection.nit:236 */
1051 REGB0
= CALL_standard___collection___hash_collection___HashCollection___index_at(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
1052 /* ./../lib/standard//collection//hash_collection.nit:237 */
1053 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]);
1054 /* ./../lib/standard//collection//hash_collection.nit:238 */
1055 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
1056 if (UNTAG_Bool(REGB1
)) {
1058 REGB2
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
1059 if (UNTAG_Bool(REGB2
)) {
1060 REGB2
= TAG_Bool(false);
1063 REGB2
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
1067 REGB1
= TAG_Bool(!UNTAG_Bool(REGB1
));
1068 if (UNTAG_Bool(REGB1
)) {
1069 /* ./../lib/standard//collection//hash_collection.nit:239 */
1070 ATTR_standard___collection___hash_collection___HashNode____key(fra
.me
.REG
[3]) = fra
.me
.REG
[1];
1071 /* ./../lib/standard//collection//hash_collection.nit:240 */
1072 ATTR_standard___collection___hash_collection___HashMapNode____value(fra
.me
.REG
[3]) = fra
.me
.REG
[2];
1074 /* ./../lib/standard//collection//hash_collection.nit:242 */
1075 fra
.me
.REG
[2] = NEW_HashMapNode_standard___collection___hash_collection___HashMapNode___init(fra
.me
.REG
[1], fra
.me
.REG
[2]);
1076 CALL_standard___collection___hash_collection___HashCollection___store(fra
.me
.REG
[0])(fra
.me
.REG
[0], REGB0
, fra
.me
.REG
[2]);
1078 stack_frame_head
= fra
.me
.prev
;
1081 void standard___collection___hash_collection___HashMap___clear(val_t p0
){
1082 struct {struct stack_frame_t me
;} fra
;
1084 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1085 fra
.me
.file
= LOCATE_standard___collection___hash_collection
;
1087 fra
.me
.meth
= LOCATE_standard___collection___hash_collection___HashMap___clear
;
1088 fra
.me
.has_broke
= 0;
1089 fra
.me
.REG_size
= 1;
1090 fra
.me
.REG
[0] = NIT_NULL
;
1092 /* ./../lib/standard//collection//hash_collection.nit:246 */
1093 CALL_standard___collection___hash_collection___HashCollection___raz(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1094 stack_frame_head
= fra
.me
.prev
;
1097 void standard___collection___hash_collection___HashMap___init(val_t p0
, int* init_table
){
1098 int itpos2
= VAL2OBJ(p0
)->vft
[INIT_TABLE_POS_standard___collection___hash_collection___HashMap
].i
;
1099 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
1102 if (init_table
[itpos2
]) return;
1103 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1104 fra
.me
.file
= LOCATE_standard___collection___hash_collection
;
1106 fra
.me
.meth
= LOCATE_standard___collection___hash_collection___HashMap___init
;
1107 fra
.me
.has_broke
= 0;
1108 fra
.me
.REG_size
= 2;
1109 fra
.me
.REG
[0] = NIT_NULL
;
1110 fra
.me
.REG
[1] = NIT_NULL
;
1112 /* ./../lib/standard//collection//hash_collection.nit:248 */
1113 fra
.me
.REG
[1] = fra
.me
.REG
[0];
1114 CALL_standard___collection___hash_collection___HashCollection___init(fra
.me
.REG
[0])(fra
.me
.REG
[0], init_table
);
1115 /* ./../lib/standard//collection//hash_collection.nit:250 */
1117 ATTR_standard___collection___hash_collection___HashCollection____capacity(fra
.me
.REG
[1]) = REGB0
;
1118 /* ./../lib/standard//collection//hash_collection.nit:251 */
1120 ATTR_standard___collection___hash_collection___HashCollection____length(fra
.me
.REG
[1]) = REGB0
;
1121 /* ./../lib/standard//collection//hash_collection.nit:252 */
1123 CALL_standard___collection___hash_collection___HashCollection___enlarge(fra
.me
.REG
[1])(fra
.me
.REG
[1], REGB0
);
1124 stack_frame_head
= fra
.me
.prev
;
1125 init_table
[itpos2
] = 1;
1128 val_t
standard___collection___hash_collection___HashMap___keys(val_t p0
){
1129 struct {struct stack_frame_t me
;} fra
;
1132 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1133 fra
.me
.file
= LOCATE_standard___collection___hash_collection
;
1135 fra
.me
.meth
= LOCATE_standard___collection___hash_collection___HashMap___keys
;
1136 fra
.me
.has_broke
= 0;
1137 fra
.me
.REG_size
= 1;
1138 fra
.me
.REG
[0] = NIT_NULL
;
1140 /* ./../lib/standard//collection//hash_collection.nit:255 */
1141 REGB0
= TAG_Bool(ATTR_standard___collection___hash_collection___HashMap_____atkeys(fra
.me
.REG
[0])!=NIT_NULL
);
1142 if (UNTAG_Bool(REGB0
)) {
1144 nit_abort("Uninitialized attribute %s", "@keys", LOCATE_standard___collection___hash_collection
, 255);
1146 fra
.me
.REG
[0] = ATTR_standard___collection___hash_collection___HashMap_____atkeys(fra
.me
.REG
[0]);
1147 stack_frame_head
= fra
.me
.prev
;
1148 return fra
.me
.REG
[0];
1150 void standard___collection___hash_collection___HashMap___keys__eq(val_t p0
, val_t p1
){
1151 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
1153 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1154 fra
.me
.file
= LOCATE_standard___collection___hash_collection
;
1156 fra
.me
.meth
= LOCATE_standard___collection___hash_collection___HashMap___keys__eq
;
1157 fra
.me
.has_broke
= 0;
1158 fra
.me
.REG_size
= 2;
1159 fra
.me
.REG
[0] = NIT_NULL
;
1160 fra
.me
.REG
[1] = NIT_NULL
;
1163 /* ./../lib/standard//collection//hash_collection.nit:255 */
1164 ATTR_standard___collection___hash_collection___HashMap_____atkeys(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
1165 stack_frame_head
= fra
.me
.prev
;
1168 val_t
standard___collection___hash_collection___HashMap___values(val_t p0
){
1169 struct {struct stack_frame_t me
;} fra
;
1172 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1173 fra
.me
.file
= LOCATE_standard___collection___hash_collection
;
1175 fra
.me
.meth
= LOCATE_standard___collection___hash_collection___HashMap___values
;
1176 fra
.me
.has_broke
= 0;
1177 fra
.me
.REG_size
= 1;
1178 fra
.me
.REG
[0] = NIT_NULL
;
1180 /* ./../lib/standard//collection//hash_collection.nit:256 */
1181 REGB0
= TAG_Bool(ATTR_standard___collection___hash_collection___HashMap_____atvalues(fra
.me
.REG
[0])!=NIT_NULL
);
1182 if (UNTAG_Bool(REGB0
)) {
1184 nit_abort("Uninitialized attribute %s", "@values", LOCATE_standard___collection___hash_collection
, 256);
1186 fra
.me
.REG
[0] = ATTR_standard___collection___hash_collection___HashMap_____atvalues(fra
.me
.REG
[0]);
1187 stack_frame_head
= fra
.me
.prev
;
1188 return fra
.me
.REG
[0];
1190 void standard___collection___hash_collection___HashMap___values__eq(val_t p0
, val_t p1
){
1191 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
1193 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1194 fra
.me
.file
= LOCATE_standard___collection___hash_collection
;
1196 fra
.me
.meth
= LOCATE_standard___collection___hash_collection___HashMap___values__eq
;
1197 fra
.me
.has_broke
= 0;
1198 fra
.me
.REG_size
= 2;
1199 fra
.me
.REG
[0] = NIT_NULL
;
1200 fra
.me
.REG
[1] = NIT_NULL
;
1203 /* ./../lib/standard//collection//hash_collection.nit:256 */
1204 ATTR_standard___collection___hash_collection___HashMap_____atvalues(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
1205 stack_frame_head
= fra
.me
.prev
;
1208 val_t
standard___collection___hash_collection___HashMapKeys___map(val_t p0
){
1209 struct {struct stack_frame_t me
;} fra
;
1212 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1213 fra
.me
.file
= LOCATE_standard___collection___hash_collection
;
1215 fra
.me
.meth
= LOCATE_standard___collection___hash_collection___HashMapKeys___map
;
1216 fra
.me
.has_broke
= 0;
1217 fra
.me
.REG_size
= 1;
1218 fra
.me
.REG
[0] = NIT_NULL
;
1220 /* ./../lib/standard//collection//hash_collection.nit:262 */
1221 REGB0
= TAG_Bool(ATTR_standard___collection___hash_collection___HashMapKeys_____atmap(fra
.me
.REG
[0])!=NIT_NULL
);
1222 if (UNTAG_Bool(REGB0
)) {
1224 nit_abort("Uninitialized attribute %s", "@map", LOCATE_standard___collection___hash_collection
, 262);
1226 fra
.me
.REG
[0] = ATTR_standard___collection___hash_collection___HashMapKeys_____atmap(fra
.me
.REG
[0]);
1227 stack_frame_head
= fra
.me
.prev
;
1228 return fra
.me
.REG
[0];
1230 void standard___collection___hash_collection___HashMapKeys___map__eq(val_t p0
, val_t p1
){
1231 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
1233 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1234 fra
.me
.file
= LOCATE_standard___collection___hash_collection
;
1236 fra
.me
.meth
= LOCATE_standard___collection___hash_collection___HashMapKeys___map__eq
;
1237 fra
.me
.has_broke
= 0;
1238 fra
.me
.REG_size
= 2;
1239 fra
.me
.REG
[0] = NIT_NULL
;
1240 fra
.me
.REG
[1] = NIT_NULL
;
1243 /* ./../lib/standard//collection//hash_collection.nit:262 */
1244 ATTR_standard___collection___hash_collection___HashMapKeys_____atmap(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
1245 stack_frame_head
= fra
.me
.prev
;
1248 val_t
standard___collection___hash_collection___HashMapKeys___count(val_t p0
, val_t p1
){
1249 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
1253 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1254 fra
.me
.file
= LOCATE_standard___collection___hash_collection
;
1256 fra
.me
.meth
= LOCATE_standard___collection___hash_collection___HashMapKeys___count
;
1257 fra
.me
.has_broke
= 0;
1258 fra
.me
.REG_size
= 2;
1259 fra
.me
.REG
[0] = NIT_NULL
;
1260 fra
.me
.REG
[1] = NIT_NULL
;
1263 /* ./../lib/standard//collection//hash_collection.nit:265 */
1264 REGB0
= CALL_standard___collection___abstract_collection___Collection___has(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
1265 if (UNTAG_Bool(REGB0
)) {
1274 stack_frame_head
= fra
.me
.prev
;
1277 val_t
standard___collection___hash_collection___HashMapKeys___first(val_t p0
){
1278 struct {struct stack_frame_t me
;} fra
;
1281 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1282 fra
.me
.file
= LOCATE_standard___collection___hash_collection
;
1284 fra
.me
.meth
= LOCATE_standard___collection___hash_collection___HashMapKeys___first
;
1285 fra
.me
.has_broke
= 0;
1286 fra
.me
.REG_size
= 1;
1287 fra
.me
.REG
[0] = NIT_NULL
;
1289 /* ./../lib/standard//collection//hash_collection.nit:266 */
1290 fra
.me
.REG
[0] = CALL_standard___collection___hash_collection___HashMapKeys___map(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1291 fra
.me
.REG
[0] = ATTR_standard___collection___hash_collection___HashCollection____first_item(fra
.me
.REG
[0]);
1292 REGB0
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
1293 if (UNTAG_Bool(REGB0
)) {
1294 nit_abort("Reciever is null", NULL
, LOCATE_standard___collection___hash_collection
, 266);
1296 REGB0
= TAG_Bool(ATTR_standard___collection___hash_collection___HashNode____key(fra
.me
.REG
[0])!=NIT_NULL
);
1297 if (UNTAG_Bool(REGB0
)) {
1299 nit_abort("Uninitialized attribute %s", "_key", LOCATE_standard___collection___hash_collection
, 266);
1301 fra
.me
.REG
[0] = ATTR_standard___collection___hash_collection___HashNode____key(fra
.me
.REG
[0]);
1304 stack_frame_head
= fra
.me
.prev
;
1305 return fra
.me
.REG
[0];
1307 val_t
standard___collection___hash_collection___HashMapKeys___has(val_t p0
, val_t p1
){
1308 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
1312 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1313 fra
.me
.file
= LOCATE_standard___collection___hash_collection
;
1315 fra
.me
.meth
= LOCATE_standard___collection___hash_collection___HashMapKeys___has
;
1316 fra
.me
.has_broke
= 0;
1317 fra
.me
.REG_size
= 2;
1318 fra
.me
.REG
[0] = NIT_NULL
;
1319 fra
.me
.REG
[1] = NIT_NULL
;
1322 /* ./../lib/standard//collection//hash_collection.nit:267 */
1323 fra
.me
.REG
[0] = CALL_standard___collection___hash_collection___HashMapKeys___map(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1324 fra
.me
.REG
[1] = CALL_standard___collection___hash_collection___HashCollection___node_at(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
1325 REGB0
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
1326 if (UNTAG_Bool(REGB0
)) {
1328 REGB1
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
1329 if (UNTAG_Bool(REGB1
)) {
1330 REGB1
= TAG_Bool(false);
1333 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[1])(fra
.me
.REG
[1], NIT_NULL
);
1337 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
1340 stack_frame_head
= fra
.me
.prev
;
1343 val_t
standard___collection___hash_collection___HashMapKeys___has_only(val_t p0
, val_t p1
){
1344 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
1349 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1350 fra
.me
.file
= LOCATE_standard___collection___hash_collection
;
1352 fra
.me
.meth
= LOCATE_standard___collection___hash_collection___HashMapKeys___has_only
;
1353 fra
.me
.has_broke
= 0;
1354 fra
.me
.REG_size
= 2;
1355 fra
.me
.REG
[0] = NIT_NULL
;
1356 fra
.me
.REG
[1] = NIT_NULL
;
1359 /* ./../lib/standard//collection//hash_collection.nit:268 */
1360 REGB0
= CALL_standard___collection___abstract_collection___Collection___has(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
1361 if (UNTAG_Bool(REGB0
)) {
1362 REGB0
= CALL_standard___collection___abstract_collection___Collection___length(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1364 REGB2
= TAG_Bool(IS_EQUAL_OO(REGB0
,REGB1
));
1365 if (UNTAG_Bool(REGB2
)) {
1367 /* ./../lib/standard//kernel.nit:227 */
1368 REGB1
= TAG_Bool((REGB0
)==(REGB1
));
1369 /* ./../lib/standard//collection//hash_collection.nit:268 */
1373 REGB1
= TAG_Bool(false);
1376 if (UNTAG_Bool(REGB2
)) {
1377 REGB2
= TAG_Bool(true);
1379 REGB1
= CALL_standard___collection___abstract_collection___Collection___is_empty(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1384 stack_frame_head
= fra
.me
.prev
;
1387 val_t
standard___collection___hash_collection___HashMapKeys___is_empty(val_t p0
){
1388 struct {struct stack_frame_t me
;} fra
;
1391 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1392 fra
.me
.file
= LOCATE_standard___collection___hash_collection
;
1394 fra
.me
.meth
= LOCATE_standard___collection___hash_collection___HashMapKeys___is_empty
;
1395 fra
.me
.has_broke
= 0;
1396 fra
.me
.REG_size
= 1;
1397 fra
.me
.REG
[0] = NIT_NULL
;
1399 /* ./../lib/standard//collection//hash_collection.nit:269 */
1400 fra
.me
.REG
[0] = CALL_standard___collection___hash_collection___HashMapKeys___map(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1401 REGB0
= CALL_standard___collection___abstract_collection___MapRead___is_empty(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1404 stack_frame_head
= fra
.me
.prev
;
1407 val_t
standard___collection___hash_collection___HashMapKeys___length(val_t p0
){
1408 struct {struct stack_frame_t me
;} fra
;
1411 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1412 fra
.me
.file
= LOCATE_standard___collection___hash_collection
;
1414 fra
.me
.meth
= LOCATE_standard___collection___hash_collection___HashMapKeys___length
;
1415 fra
.me
.has_broke
= 0;
1416 fra
.me
.REG_size
= 1;
1417 fra
.me
.REG
[0] = NIT_NULL
;
1419 /* ./../lib/standard//collection//hash_collection.nit:270 */
1420 fra
.me
.REG
[0] = CALL_standard___collection___hash_collection___HashMapKeys___map(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1421 REGB0
= CALL_standard___collection___abstract_collection___MapRead___length(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1424 stack_frame_head
= fra
.me
.prev
;
1427 val_t
standard___collection___hash_collection___HashMapKeys___iterator(val_t p0
){
1428 struct {struct stack_frame_t me
;} fra
;
1430 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1431 fra
.me
.file
= LOCATE_standard___collection___hash_collection
;
1433 fra
.me
.meth
= LOCATE_standard___collection___hash_collection___HashMapKeys___iterator
;
1434 fra
.me
.has_broke
= 0;
1435 fra
.me
.REG_size
= 1;
1436 fra
.me
.REG
[0] = NIT_NULL
;
1438 /* ./../lib/standard//collection//hash_collection.nit:272 */
1439 fra
.me
.REG
[0] = CALL_standard___collection___hash_collection___HashMapKeys___map(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1440 fra
.me
.REG
[0] = CALL_standard___collection___abstract_collection___MapRead___iterator(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1441 fra
.me
.REG
[0] = NEW_MapKeysIterator_standard___collection___abstract_collection___MapKeysIterator___init(fra
.me
.REG
[0]);
1444 stack_frame_head
= fra
.me
.prev
;
1445 return fra
.me
.REG
[0];
1447 void standard___collection___hash_collection___HashMapKeys___clear(val_t p0
){
1448 struct {struct stack_frame_t me
;} fra
;
1450 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1451 fra
.me
.file
= LOCATE_standard___collection___hash_collection
;
1453 fra
.me
.meth
= LOCATE_standard___collection___hash_collection___HashMapKeys___clear
;
1454 fra
.me
.has_broke
= 0;
1455 fra
.me
.REG_size
= 1;
1456 fra
.me
.REG
[0] = NIT_NULL
;
1458 /* ./../lib/standard//collection//hash_collection.nit:274 */
1459 fra
.me
.REG
[0] = CALL_standard___collection___hash_collection___HashMapKeys___map(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1460 CALL_standard___collection___abstract_collection___Map___clear(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1461 stack_frame_head
= fra
.me
.prev
;
1464 void standard___collection___hash_collection___HashMapKeys___remove(val_t p0
, val_t p1
){
1465 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
1467 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1468 fra
.me
.file
= LOCATE_standard___collection___hash_collection
;
1470 fra
.me
.meth
= LOCATE_standard___collection___hash_collection___HashMapKeys___remove
;
1471 fra
.me
.has_broke
= 0;
1472 fra
.me
.REG_size
= 2;
1473 fra
.me
.REG
[0] = NIT_NULL
;
1474 fra
.me
.REG
[1] = NIT_NULL
;
1477 /* ./../lib/standard//collection//hash_collection.nit:276 */
1478 fra
.me
.REG
[0] = CALL_standard___collection___hash_collection___HashMapKeys___map(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1479 CALL_standard___collection___hash_collection___HashCollection___remove_node(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
1480 stack_frame_head
= fra
.me
.prev
;
1483 void standard___collection___hash_collection___HashMapKeys___remove_all(val_t p0
, val_t p1
){
1484 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
1486 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1487 fra
.me
.file
= LOCATE_standard___collection___hash_collection
;
1489 fra
.me
.meth
= LOCATE_standard___collection___hash_collection___HashMapKeys___remove_all
;
1490 fra
.me
.has_broke
= 0;
1491 fra
.me
.REG_size
= 2;
1492 fra
.me
.REG
[0] = NIT_NULL
;
1493 fra
.me
.REG
[1] = NIT_NULL
;
1496 /* ./../lib/standard//collection//hash_collection.nit:277 */
1497 fra
.me
.REG
[0] = CALL_standard___collection___hash_collection___HashMapKeys___map(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1498 CALL_standard___collection___hash_collection___HashCollection___remove_node(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
1499 stack_frame_head
= fra
.me
.prev
;
1502 void standard___collection___hash_collection___HashMapKeys___init(val_t p0
, val_t p1
, int* init_table
){
1503 int itpos3
= VAL2OBJ(p0
)->vft
[INIT_TABLE_POS_standard___collection___hash_collection___HashMapKeys
].i
;
1504 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
1506 if (init_table
[itpos3
]) return;
1507 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1508 fra
.me
.file
= LOCATE_standard___collection___hash_collection
;
1510 fra
.me
.meth
= LOCATE_standard___collection___hash_collection___HashMapKeys___init
;
1511 fra
.me
.has_broke
= 0;
1512 fra
.me
.REG_size
= 2;
1513 fra
.me
.REG
[0] = NIT_NULL
;
1514 fra
.me
.REG
[1] = NIT_NULL
;
1517 ATTR_standard___collection___hash_collection___HashMapKeys_____atmap(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
1518 stack_frame_head
= fra
.me
.prev
;
1519 init_table
[itpos3
] = 1;
1522 val_t
standard___collection___hash_collection___HashMapValues___map(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_standard___collection___hash_collection
;
1529 fra
.me
.meth
= LOCATE_standard___collection___hash_collection___HashMapValues___map
;
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:283 */
1535 REGB0
= TAG_Bool(ATTR_standard___collection___hash_collection___HashMapValues_____atmap(fra
.me
.REG
[0])!=NIT_NULL
);
1536 if (UNTAG_Bool(REGB0
)) {
1538 nit_abort("Uninitialized attribute %s", "@map", LOCATE_standard___collection___hash_collection
, 283);
1540 fra
.me
.REG
[0] = ATTR_standard___collection___hash_collection___HashMapValues_____atmap(fra
.me
.REG
[0]);
1541 stack_frame_head
= fra
.me
.prev
;
1542 return fra
.me
.REG
[0];
1544 void standard___collection___hash_collection___HashMapValues___map__eq(val_t p0
, val_t p1
){
1545 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
1547 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1548 fra
.me
.file
= LOCATE_standard___collection___hash_collection
;
1550 fra
.me
.meth
= LOCATE_standard___collection___hash_collection___HashMapValues___map__eq
;
1551 fra
.me
.has_broke
= 0;
1552 fra
.me
.REG_size
= 2;
1553 fra
.me
.REG
[0] = NIT_NULL
;
1554 fra
.me
.REG
[1] = NIT_NULL
;
1557 /* ./../lib/standard//collection//hash_collection.nit:283 */
1558 ATTR_standard___collection___hash_collection___HashMapValues_____atmap(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
1559 stack_frame_head
= fra
.me
.prev
;
1562 val_t
standard___collection___hash_collection___HashMapValues___count(val_t p0
, val_t p1
){
1563 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
1568 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1569 fra
.me
.file
= LOCATE_standard___collection___hash_collection
;
1571 fra
.me
.meth
= LOCATE_standard___collection___hash_collection___HashMapValues___count
;
1572 fra
.me
.has_broke
= 0;
1573 fra
.me
.REG_size
= 3;
1574 fra
.me
.REG
[0] = NIT_NULL
;
1575 fra
.me
.REG
[1] = NIT_NULL
;
1576 fra
.me
.REG
[2] = NIT_NULL
;
1579 /* ./../lib/standard//collection//hash_collection.nit:288 */
1581 /* ./../lib/standard//collection//hash_collection.nit:289 */
1582 fra
.me
.REG
[0] = CALL_standard___collection___hash_collection___HashMapValues___map(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1583 fra
.me
.REG
[0] = ATTR_standard___collection___hash_collection___HashCollection____first_item(fra
.me
.REG
[0]);
1584 /* ./../lib/standard//collection//hash_collection.nit:290 */
1586 REGB1
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
1587 if (UNTAG_Bool(REGB1
)) {
1589 REGB2
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
1590 if (UNTAG_Bool(REGB2
)) {
1591 REGB2
= TAG_Bool(false);
1594 REGB2
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[0])(fra
.me
.REG
[0], NIT_NULL
);
1598 REGB1
= TAG_Bool(!UNTAG_Bool(REGB1
));
1599 if (UNTAG_Bool(REGB1
)) {
1600 /* ./../lib/standard//collection//hash_collection.nit:291 */
1601 fra
.me
.REG
[2] = ATTR_standard___collection___hash_collection___HashMapNode____value(fra
.me
.REG
[0]);
1602 REGB1
= TAG_Bool(IS_EQUAL_NN(fra
.me
.REG
[2],fra
.me
.REG
[1]));
1603 if (UNTAG_Bool(REGB1
)) {
1605 REGB2
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
1606 if (UNTAG_Bool(REGB2
)) {
1607 REGB2
= TAG_Bool(false);
1610 REGB2
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[1]);
1614 if (UNTAG_Bool(REGB1
)) {
1616 /* ./../lib/standard//kernel.nit:235 */
1617 REGB1
= TAG_Int(UNTAG_Int(REGB0
)+UNTAG_Int(REGB1
));
1618 /* ./../lib/standard//collection//hash_collection.nit:291 */
1621 /* ./../lib/standard//collection//hash_collection.nit:292 */
1622 fra
.me
.REG
[2] = ATTR_standard___collection___hash_collection___HashNode____next_item(fra
.me
.REG
[0]);
1623 fra
.me
.REG
[0] = fra
.me
.REG
[2];
1625 /* ./../lib/standard//collection//hash_collection.nit:290 */
1630 /* ./../lib/standard//collection//hash_collection.nit:294 */
1633 stack_frame_head
= fra
.me
.prev
;
1636 val_t
standard___collection___hash_collection___HashMapValues___first(val_t p0
){
1637 struct {struct stack_frame_t me
;} fra
;
1640 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1641 fra
.me
.file
= LOCATE_standard___collection___hash_collection
;
1643 fra
.me
.meth
= LOCATE_standard___collection___hash_collection___HashMapValues___first
;
1644 fra
.me
.has_broke
= 0;
1645 fra
.me
.REG_size
= 1;
1646 fra
.me
.REG
[0] = NIT_NULL
;
1648 /* ./../lib/standard//collection//hash_collection.nit:296 */
1649 fra
.me
.REG
[0] = CALL_standard___collection___hash_collection___HashMapValues___map(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1650 fra
.me
.REG
[0] = ATTR_standard___collection___hash_collection___HashCollection____first_item(fra
.me
.REG
[0]);
1651 REGB0
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
1652 if (UNTAG_Bool(REGB0
)) {
1653 nit_abort("Reciever is null", NULL
, LOCATE_standard___collection___hash_collection
, 296);
1655 fra
.me
.REG
[0] = ATTR_standard___collection___hash_collection___HashMapNode____value(fra
.me
.REG
[0]);
1658 stack_frame_head
= fra
.me
.prev
;
1659 return fra
.me
.REG
[0];
1661 val_t
standard___collection___hash_collection___HashMapValues___has(val_t p0
, val_t p1
){
1662 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
1666 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1667 fra
.me
.file
= LOCATE_standard___collection___hash_collection
;
1669 fra
.me
.meth
= LOCATE_standard___collection___hash_collection___HashMapValues___has
;
1670 fra
.me
.has_broke
= 0;
1671 fra
.me
.REG_size
= 3;
1672 fra
.me
.REG
[0] = NIT_NULL
;
1673 fra
.me
.REG
[1] = NIT_NULL
;
1674 fra
.me
.REG
[2] = NIT_NULL
;
1677 /* ./../lib/standard//collection//hash_collection.nit:300 */
1678 fra
.me
.REG
[0] = CALL_standard___collection___hash_collection___HashMapValues___map(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1679 fra
.me
.REG
[0] = ATTR_standard___collection___hash_collection___HashCollection____first_item(fra
.me
.REG
[0]);
1680 /* ./../lib/standard//collection//hash_collection.nit:301 */
1682 REGB0
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
1683 if (UNTAG_Bool(REGB0
)) {
1685 REGB1
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
1686 if (UNTAG_Bool(REGB1
)) {
1687 REGB1
= TAG_Bool(false);
1690 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[0])(fra
.me
.REG
[0], NIT_NULL
);
1694 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
1695 if (UNTAG_Bool(REGB0
)) {
1696 /* ./../lib/standard//collection//hash_collection.nit:302 */
1697 fra
.me
.REG
[2] = ATTR_standard___collection___hash_collection___HashMapNode____value(fra
.me
.REG
[0]);
1698 REGB0
= TAG_Bool(IS_EQUAL_NN(fra
.me
.REG
[2],fra
.me
.REG
[1]));
1699 if (UNTAG_Bool(REGB0
)) {
1701 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
1702 if (UNTAG_Bool(REGB1
)) {
1703 REGB1
= TAG_Bool(false);
1706 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[1]);
1710 if (UNTAG_Bool(REGB0
)) {
1711 REGB0
= TAG_Bool(true);
1714 /* ./../lib/standard//collection//hash_collection.nit:303 */
1715 fra
.me
.REG
[2] = ATTR_standard___collection___hash_collection___HashNode____next_item(fra
.me
.REG
[0]);
1716 fra
.me
.REG
[0] = fra
.me
.REG
[2];
1718 /* ./../lib/standard//collection//hash_collection.nit:301 */
1723 /* ./../lib/standard//collection//hash_collection.nit:305 */
1724 REGB1
= TAG_Bool(false);
1728 stack_frame_head
= fra
.me
.prev
;
1731 val_t
standard___collection___hash_collection___HashMapValues___has_only(val_t p0
, val_t p1
){
1732 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
1736 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1737 fra
.me
.file
= LOCATE_standard___collection___hash_collection
;
1739 fra
.me
.meth
= LOCATE_standard___collection___hash_collection___HashMapValues___has_only
;
1740 fra
.me
.has_broke
= 0;
1741 fra
.me
.REG_size
= 3;
1742 fra
.me
.REG
[0] = NIT_NULL
;
1743 fra
.me
.REG
[1] = NIT_NULL
;
1744 fra
.me
.REG
[2] = NIT_NULL
;
1747 /* ./../lib/standard//collection//hash_collection.nit:310 */
1748 fra
.me
.REG
[0] = CALL_standard___collection___hash_collection___HashMapValues___map(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1749 fra
.me
.REG
[0] = ATTR_standard___collection___hash_collection___HashCollection____first_item(fra
.me
.REG
[0]);
1750 /* ./../lib/standard//collection//hash_collection.nit:311 */
1752 REGB0
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
1753 if (UNTAG_Bool(REGB0
)) {
1755 REGB1
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
1756 if (UNTAG_Bool(REGB1
)) {
1757 REGB1
= TAG_Bool(false);
1760 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[0])(fra
.me
.REG
[0], NIT_NULL
);
1764 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
1765 if (UNTAG_Bool(REGB0
)) {
1766 /* ./../lib/standard//collection//hash_collection.nit:312 */
1767 fra
.me
.REG
[2] = ATTR_standard___collection___hash_collection___HashMapNode____value(fra
.me
.REG
[0]);
1768 REGB0
= TAG_Bool(IS_EQUAL_NN(fra
.me
.REG
[2],fra
.me
.REG
[1]));
1769 if (UNTAG_Bool(REGB0
)) {
1771 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
1772 if (UNTAG_Bool(REGB1
)) {
1773 REGB1
= TAG_Bool(false);
1776 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[1]);
1780 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
1781 if (UNTAG_Bool(REGB0
)) {
1782 REGB0
= TAG_Bool(false);
1785 /* ./../lib/standard//collection//hash_collection.nit:313 */
1786 fra
.me
.REG
[2] = ATTR_standard___collection___hash_collection___HashNode____next_item(fra
.me
.REG
[0]);
1787 fra
.me
.REG
[0] = fra
.me
.REG
[2];
1789 /* ./../lib/standard//collection//hash_collection.nit:311 */
1794 /* ./../lib/standard//collection//hash_collection.nit:315 */
1795 REGB1
= TAG_Bool(true);
1799 stack_frame_head
= fra
.me
.prev
;
1802 val_t
standard___collection___hash_collection___HashMapValues___is_empty(val_t p0
){
1803 struct {struct stack_frame_t me
;} fra
;
1806 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1807 fra
.me
.file
= LOCATE_standard___collection___hash_collection
;
1809 fra
.me
.meth
= LOCATE_standard___collection___hash_collection___HashMapValues___is_empty
;
1810 fra
.me
.has_broke
= 0;
1811 fra
.me
.REG_size
= 1;
1812 fra
.me
.REG
[0] = NIT_NULL
;
1814 /* ./../lib/standard//collection//hash_collection.nit:318 */
1815 fra
.me
.REG
[0] = CALL_standard___collection___hash_collection___HashMapValues___map(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1816 REGB0
= CALL_standard___collection___abstract_collection___MapRead___is_empty(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1819 stack_frame_head
= fra
.me
.prev
;
1822 val_t
standard___collection___hash_collection___HashMapValues___length(val_t p0
){
1823 struct {struct stack_frame_t me
;} fra
;
1826 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1827 fra
.me
.file
= LOCATE_standard___collection___hash_collection
;
1829 fra
.me
.meth
= LOCATE_standard___collection___hash_collection___HashMapValues___length
;
1830 fra
.me
.has_broke
= 0;
1831 fra
.me
.REG_size
= 1;
1832 fra
.me
.REG
[0] = NIT_NULL
;
1834 /* ./../lib/standard//collection//hash_collection.nit:319 */
1835 fra
.me
.REG
[0] = CALL_standard___collection___hash_collection___HashMapValues___map(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1836 REGB0
= CALL_standard___collection___abstract_collection___MapRead___length(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1839 stack_frame_head
= fra
.me
.prev
;
1842 val_t
standard___collection___hash_collection___HashMapValues___iterator(val_t p0
){
1843 struct {struct stack_frame_t me
;} fra
;
1845 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1846 fra
.me
.file
= LOCATE_standard___collection___hash_collection
;
1848 fra
.me
.meth
= LOCATE_standard___collection___hash_collection___HashMapValues___iterator
;
1849 fra
.me
.has_broke
= 0;
1850 fra
.me
.REG_size
= 1;
1851 fra
.me
.REG
[0] = NIT_NULL
;
1853 /* ./../lib/standard//collection//hash_collection.nit:321 */
1854 fra
.me
.REG
[0] = CALL_standard___collection___hash_collection___HashMapValues___map(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1855 fra
.me
.REG
[0] = CALL_standard___collection___abstract_collection___MapRead___iterator(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1856 fra
.me
.REG
[0] = NEW_MapValuesIterator_standard___collection___abstract_collection___MapValuesIterator___init(fra
.me
.REG
[0]);
1859 stack_frame_head
= fra
.me
.prev
;
1860 return fra
.me
.REG
[0];
1862 void standard___collection___hash_collection___HashMapValues___clear(val_t p0
){
1863 struct {struct stack_frame_t me
;} fra
;
1865 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1866 fra
.me
.file
= LOCATE_standard___collection___hash_collection
;
1868 fra
.me
.meth
= LOCATE_standard___collection___hash_collection___HashMapValues___clear
;
1869 fra
.me
.has_broke
= 0;
1870 fra
.me
.REG_size
= 1;
1871 fra
.me
.REG
[0] = NIT_NULL
;
1873 /* ./../lib/standard//collection//hash_collection.nit:323 */
1874 fra
.me
.REG
[0] = CALL_standard___collection___hash_collection___HashMapValues___map(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1875 CALL_standard___collection___abstract_collection___Map___clear(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1876 stack_frame_head
= fra
.me
.prev
;
1879 void standard___collection___hash_collection___HashMapValues___remove(val_t p0
, val_t p1
){
1880 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
1884 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1885 fra
.me
.file
= LOCATE_standard___collection___hash_collection
;
1887 fra
.me
.meth
= LOCATE_standard___collection___hash_collection___HashMapValues___remove
;
1888 fra
.me
.has_broke
= 0;
1889 fra
.me
.REG_size
= 4;
1890 fra
.me
.REG
[0] = NIT_NULL
;
1891 fra
.me
.REG
[1] = NIT_NULL
;
1892 fra
.me
.REG
[2] = NIT_NULL
;
1893 fra
.me
.REG
[3] = NIT_NULL
;
1896 /* ./../lib/standard//collection//hash_collection.nit:327 */
1897 fra
.me
.REG
[0] = CALL_standard___collection___hash_collection___HashMapValues___map(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1898 /* ./../lib/standard//collection//hash_collection.nit:328 */
1899 fra
.me
.REG
[2] = ATTR_standard___collection___hash_collection___HashCollection____first_item(fra
.me
.REG
[0]);
1900 /* ./../lib/standard//collection//hash_collection.nit:329 */
1902 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
1903 if (UNTAG_Bool(REGB0
)) {
1905 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
1906 if (UNTAG_Bool(REGB1
)) {
1907 REGB1
= TAG_Bool(false);
1910 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
1914 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
1915 if (UNTAG_Bool(REGB0
)) {
1916 /* ./../lib/standard//collection//hash_collection.nit:330 */
1917 fra
.me
.REG
[3] = ATTR_standard___collection___hash_collection___HashMapNode____value(fra
.me
.REG
[2]);
1918 REGB0
= TAG_Bool(IS_EQUAL_NN(fra
.me
.REG
[3],fra
.me
.REG
[1]));
1919 if (UNTAG_Bool(REGB0
)) {
1921 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
1922 if (UNTAG_Bool(REGB1
)) {
1923 REGB1
= TAG_Bool(false);
1926 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[1]);
1930 if (UNTAG_Bool(REGB0
)) {
1931 /* ./../lib/standard//collection//hash_collection.nit:331 */
1932 REGB0
= TAG_Bool(ATTR_standard___collection___hash_collection___HashNode____key(fra
.me
.REG
[2])!=NIT_NULL
);
1933 if (UNTAG_Bool(REGB0
)) {
1935 nit_abort("Uninitialized attribute %s", "_key", LOCATE_standard___collection___hash_collection
, 331);
1937 fra
.me
.REG
[3] = ATTR_standard___collection___hash_collection___HashNode____key(fra
.me
.REG
[2]);
1938 CALL_standard___collection___hash_collection___HashCollection___remove_node(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[3]);
1939 /* ./../lib/standard//collection//hash_collection.nit:332 */
1942 /* ./../lib/standard//collection//hash_collection.nit:334 */
1943 fra
.me
.REG
[3] = ATTR_standard___collection___hash_collection___HashNode____next_item(fra
.me
.REG
[2]);
1944 fra
.me
.REG
[2] = fra
.me
.REG
[3];
1946 /* ./../lib/standard//collection//hash_collection.nit:329 */
1952 stack_frame_head
= fra
.me
.prev
;
1955 void standard___collection___hash_collection___HashMapValues___remove_all(val_t p0
, val_t p1
){
1956 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
1960 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1961 fra
.me
.file
= LOCATE_standard___collection___hash_collection
;
1963 fra
.me
.meth
= LOCATE_standard___collection___hash_collection___HashMapValues___remove_all
;
1964 fra
.me
.has_broke
= 0;
1965 fra
.me
.REG_size
= 4;
1966 fra
.me
.REG
[0] = NIT_NULL
;
1967 fra
.me
.REG
[1] = NIT_NULL
;
1968 fra
.me
.REG
[2] = NIT_NULL
;
1969 fra
.me
.REG
[3] = NIT_NULL
;
1972 /* ./../lib/standard//collection//hash_collection.nit:340 */
1973 fra
.me
.REG
[0] = CALL_standard___collection___hash_collection___HashMapValues___map(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1974 /* ./../lib/standard//collection//hash_collection.nit:341 */
1975 fra
.me
.REG
[2] = ATTR_standard___collection___hash_collection___HashCollection____first_item(fra
.me
.REG
[0]);
1976 /* ./../lib/standard//collection//hash_collection.nit:342 */
1978 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
1979 if (UNTAG_Bool(REGB0
)) {
1981 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
1982 if (UNTAG_Bool(REGB1
)) {
1983 REGB1
= TAG_Bool(false);
1986 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
1990 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
1991 if (UNTAG_Bool(REGB0
)) {
1992 /* ./../lib/standard//collection//hash_collection.nit:343 */
1993 fra
.me
.REG
[3] = ATTR_standard___collection___hash_collection___HashMapNode____value(fra
.me
.REG
[2]);
1994 REGB0
= TAG_Bool(IS_EQUAL_NN(fra
.me
.REG
[3],fra
.me
.REG
[1]));
1995 if (UNTAG_Bool(REGB0
)) {
1997 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
1998 if (UNTAG_Bool(REGB1
)) {
1999 REGB1
= TAG_Bool(false);
2002 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[1]);
2006 if (UNTAG_Bool(REGB0
)) {
2007 /* ./../lib/standard//collection//hash_collection.nit:344 */
2008 REGB0
= TAG_Bool(ATTR_standard___collection___hash_collection___HashNode____key(fra
.me
.REG
[2])!=NIT_NULL
);
2009 if (UNTAG_Bool(REGB0
)) {
2011 nit_abort("Uninitialized attribute %s", "_key", LOCATE_standard___collection___hash_collection
, 344);
2013 fra
.me
.REG
[3] = ATTR_standard___collection___hash_collection___HashNode____key(fra
.me
.REG
[2]);
2014 CALL_standard___collection___hash_collection___HashCollection___remove_node(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[3]);
2016 /* ./../lib/standard//collection//hash_collection.nit:346 */
2017 fra
.me
.REG
[3] = ATTR_standard___collection___hash_collection___HashNode____next_item(fra
.me
.REG
[2]);
2018 fra
.me
.REG
[2] = fra
.me
.REG
[3];
2020 /* ./../lib/standard//collection//hash_collection.nit:342 */
2025 stack_frame_head
= fra
.me
.prev
;
2028 void standard___collection___hash_collection___HashMapValues___init(val_t p0
, val_t p1
, int* init_table
){
2029 int itpos4
= VAL2OBJ(p0
)->vft
[INIT_TABLE_POS_standard___collection___hash_collection___HashMapValues
].i
;
2030 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
2032 if (init_table
[itpos4
]) return;
2033 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2034 fra
.me
.file
= LOCATE_standard___collection___hash_collection
;
2036 fra
.me
.meth
= LOCATE_standard___collection___hash_collection___HashMapValues___init
;
2037 fra
.me
.has_broke
= 0;
2038 fra
.me
.REG_size
= 2;
2039 fra
.me
.REG
[0] = NIT_NULL
;
2040 fra
.me
.REG
[1] = NIT_NULL
;
2043 ATTR_standard___collection___hash_collection___HashMapValues_____atmap(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
2044 stack_frame_head
= fra
.me
.prev
;
2045 init_table
[itpos4
] = 1;
2048 void standard___collection___hash_collection___HashMapNode___init(val_t p0
, val_t p1
, val_t p2
, int* init_table
){
2049 int itpos5
= VAL2OBJ(p0
)->vft
[INIT_TABLE_POS_standard___collection___hash_collection___HashMapNode
].i
;
2050 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
2052 if (init_table
[itpos5
]) return;
2053 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2054 fra
.me
.file
= LOCATE_standard___collection___hash_collection
;
2056 fra
.me
.meth
= LOCATE_standard___collection___hash_collection___HashMapNode___init
;
2057 fra
.me
.has_broke
= 0;
2058 fra
.me
.REG_size
= 4;
2059 fra
.me
.REG
[0] = NIT_NULL
;
2060 fra
.me
.REG
[1] = NIT_NULL
;
2061 fra
.me
.REG
[2] = NIT_NULL
;
2062 fra
.me
.REG
[3] = NIT_NULL
;
2066 /* ./../lib/standard//collection//hash_collection.nit:356 */
2067 fra
.me
.REG
[3] = fra
.me
.REG
[0];
2068 /* ./../lib/standard//collection//hash_collection.nit:358 */
2069 CALL_standard___collection___hash_collection___HashNode___init(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1], init_table
);
2070 /* ./../lib/standard//collection//hash_collection.nit:359 */
2071 ATTR_standard___collection___hash_collection___HashMapNode____value(fra
.me
.REG
[3]) = fra
.me
.REG
[2];
2072 stack_frame_head
= fra
.me
.prev
;
2073 init_table
[itpos5
] = 1;
2076 val_t
standard___collection___hash_collection___HashMapIterator___is_ok(val_t p0
){
2077 struct {struct stack_frame_t me
;} fra
;
2081 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2082 fra
.me
.file
= LOCATE_standard___collection___hash_collection
;
2084 fra
.me
.meth
= LOCATE_standard___collection___hash_collection___HashMapIterator___is_ok
;
2085 fra
.me
.has_broke
= 0;
2086 fra
.me
.REG_size
= 1;
2087 fra
.me
.REG
[0] = NIT_NULL
;
2089 /* ./../lib/standard//collection//hash_collection.nit:365 */
2090 fra
.me
.REG
[0] = ATTR_standard___collection___hash_collection___HashMapIterator____node(fra
.me
.REG
[0]);
2091 REGB0
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
2092 if (UNTAG_Bool(REGB0
)) {
2094 REGB1
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
2095 if (UNTAG_Bool(REGB1
)) {
2096 REGB1
= TAG_Bool(false);
2099 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[0])(fra
.me
.REG
[0], NIT_NULL
);
2103 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
2106 stack_frame_head
= fra
.me
.prev
;
2109 val_t
standard___collection___hash_collection___HashMapIterator___item(val_t p0
){
2110 struct {struct stack_frame_t me
;} fra
;
2113 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2114 fra
.me
.file
= LOCATE_standard___collection___hash_collection
;
2116 fra
.me
.meth
= LOCATE_standard___collection___hash_collection___HashMapIterator___item
;
2117 fra
.me
.has_broke
= 0;
2118 fra
.me
.REG_size
= 1;
2119 fra
.me
.REG
[0] = NIT_NULL
;
2121 /* ./../lib/standard//collection//hash_collection.nit:369 */
2122 REGB0
= CALL_standard___collection___abstract_collection___MapIterator___is_ok(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2123 if (UNTAG_Bool(REGB0
)) {
2125 nit_abort("Assert failed", NULL
, LOCATE_standard___collection___hash_collection
, 369);
2127 /* ./../lib/standard//collection//hash_collection.nit:370 */
2128 fra
.me
.REG
[0] = ATTR_standard___collection___hash_collection___HashMapIterator____node(fra
.me
.REG
[0]);
2129 REGB0
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
2130 if (UNTAG_Bool(REGB0
)) {
2131 nit_abort("Reciever is null", NULL
, LOCATE_standard___collection___hash_collection
, 370);
2133 fra
.me
.REG
[0] = ATTR_standard___collection___hash_collection___HashMapNode____value(fra
.me
.REG
[0]);
2136 stack_frame_head
= fra
.me
.prev
;
2137 return fra
.me
.REG
[0];
2139 val_t
standard___collection___hash_collection___HashMapIterator___key(val_t p0
){
2140 struct {struct stack_frame_t me
;} fra
;
2143 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2144 fra
.me
.file
= LOCATE_standard___collection___hash_collection
;
2146 fra
.me
.meth
= LOCATE_standard___collection___hash_collection___HashMapIterator___key
;
2147 fra
.me
.has_broke
= 0;
2148 fra
.me
.REG_size
= 1;
2149 fra
.me
.REG
[0] = NIT_NULL
;
2151 /* ./../lib/standard//collection//hash_collection.nit:381 */
2152 REGB0
= CALL_standard___collection___abstract_collection___MapIterator___is_ok(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2153 if (UNTAG_Bool(REGB0
)) {
2155 nit_abort("Assert failed", NULL
, LOCATE_standard___collection___hash_collection
, 381);
2157 /* ./../lib/standard//collection//hash_collection.nit:382 */
2158 fra
.me
.REG
[0] = ATTR_standard___collection___hash_collection___HashMapIterator____node(fra
.me
.REG
[0]);
2159 REGB0
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
2160 if (UNTAG_Bool(REGB0
)) {
2161 nit_abort("Reciever is null", NULL
, LOCATE_standard___collection___hash_collection
, 382);
2163 REGB0
= TAG_Bool(ATTR_standard___collection___hash_collection___HashNode____key(fra
.me
.REG
[0])!=NIT_NULL
);
2164 if (UNTAG_Bool(REGB0
)) {
2166 nit_abort("Uninitialized attribute %s", "_key", LOCATE_standard___collection___hash_collection
, 382);
2168 fra
.me
.REG
[0] = ATTR_standard___collection___hash_collection___HashNode____key(fra
.me
.REG
[0]);
2171 stack_frame_head
= fra
.me
.prev
;
2172 return fra
.me
.REG
[0];
2174 void standard___collection___hash_collection___HashMapIterator___next(val_t p0
){
2175 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
2178 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2179 fra
.me
.file
= LOCATE_standard___collection___hash_collection
;
2181 fra
.me
.meth
= LOCATE_standard___collection___hash_collection___HashMapIterator___next
;
2182 fra
.me
.has_broke
= 0;
2183 fra
.me
.REG_size
= 2;
2184 fra
.me
.REG
[0] = NIT_NULL
;
2185 fra
.me
.REG
[1] = NIT_NULL
;
2187 /* ./../lib/standard//collection//hash_collection.nit:387 */
2188 REGB0
= CALL_standard___collection___abstract_collection___MapIterator___is_ok(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2189 if (UNTAG_Bool(REGB0
)) {
2191 nit_abort("Assert failed", NULL
, LOCATE_standard___collection___hash_collection
, 387);
2193 /* ./../lib/standard//collection//hash_collection.nit:388 */
2194 fra
.me
.REG
[1] = ATTR_standard___collection___hash_collection___HashMapIterator____node(fra
.me
.REG
[0]);
2195 REGB0
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
2196 if (UNTAG_Bool(REGB0
)) {
2197 nit_abort("Reciever is null", NULL
, LOCATE_standard___collection___hash_collection
, 388);
2199 fra
.me
.REG
[1] = ATTR_standard___collection___hash_collection___HashNode____next_item(fra
.me
.REG
[1]);
2200 ATTR_standard___collection___hash_collection___HashMapIterator____node(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
2201 stack_frame_head
= fra
.me
.prev
;
2204 void standard___collection___hash_collection___HashMapIterator___init(val_t p0
, val_t p1
, int* init_table
){
2205 int itpos6
= VAL2OBJ(p0
)->vft
[INIT_TABLE_POS_standard___collection___hash_collection___HashMapIterator
].i
;
2206 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
2208 if (init_table
[itpos6
]) return;
2209 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2210 fra
.me
.file
= LOCATE_standard___collection___hash_collection
;
2212 fra
.me
.meth
= LOCATE_standard___collection___hash_collection___HashMapIterator___init
;
2213 fra
.me
.has_broke
= 0;
2214 fra
.me
.REG_size
= 2;
2215 fra
.me
.REG
[0] = NIT_NULL
;
2216 fra
.me
.REG
[1] = NIT_NULL
;
2219 /* ./../lib/standard//collection//hash_collection.nit:399 */
2220 ATTR_standard___collection___hash_collection___HashMapIterator____map(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
2221 /* ./../lib/standard//collection//hash_collection.nit:400 */
2222 fra
.me
.REG
[1] = CALL_standard___collection___hash_collection___HashCollection___first_item(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
2223 ATTR_standard___collection___hash_collection___HashMapIterator____node(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
2224 stack_frame_head
= fra
.me
.prev
;
2225 init_table
[itpos6
] = 1;
2228 val_t
standard___collection___hash_collection___HashSet___length(val_t p0
){
2229 struct {struct stack_frame_t me
;} fra
;
2232 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2233 fra
.me
.file
= LOCATE_standard___collection___hash_collection
;
2235 fra
.me
.meth
= LOCATE_standard___collection___hash_collection___HashSet___length
;
2236 fra
.me
.has_broke
= 0;
2237 fra
.me
.REG_size
= 1;
2238 fra
.me
.REG
[0] = NIT_NULL
;
2240 /* ./../lib/standard//collection//hash_collection.nit:410 */
2241 REGB0
= TAG_Bool(ATTR_standard___collection___hash_collection___HashCollection____length(fra
.me
.REG
[0])!=NIT_NULL
);
2242 if (UNTAG_Bool(REGB0
)) {
2244 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___hash_collection
, 410);
2246 REGB0
= ATTR_standard___collection___hash_collection___HashCollection____length(fra
.me
.REG
[0]);
2249 stack_frame_head
= fra
.me
.prev
;
2252 val_t
standard___collection___hash_collection___HashSet___is_empty(val_t p0
){
2253 struct {struct stack_frame_t me
;} fra
;
2258 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2259 fra
.me
.file
= LOCATE_standard___collection___hash_collection
;
2261 fra
.me
.meth
= LOCATE_standard___collection___hash_collection___HashSet___is_empty
;
2262 fra
.me
.has_broke
= 0;
2263 fra
.me
.REG_size
= 1;
2264 fra
.me
.REG
[0] = NIT_NULL
;
2266 /* ./../lib/standard//collection//hash_collection.nit:412 */
2267 REGB0
= TAG_Bool(ATTR_standard___collection___hash_collection___HashCollection____length(fra
.me
.REG
[0])!=NIT_NULL
);
2268 if (UNTAG_Bool(REGB0
)) {
2270 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___hash_collection
, 412);
2272 REGB0
= ATTR_standard___collection___hash_collection___HashCollection____length(fra
.me
.REG
[0]);
2274 REGB2
= TAG_Bool(IS_EQUAL_OO(REGB0
,REGB1
));
2275 if (UNTAG_Bool(REGB2
)) {
2277 /* ./../lib/standard//kernel.nit:227 */
2278 REGB1
= TAG_Bool((REGB0
)==(REGB1
));
2279 /* ./../lib/standard//collection//hash_collection.nit:412 */
2284 stack_frame_head
= fra
.me
.prev
;
2287 val_t
standard___collection___hash_collection___HashSet___first(val_t p0
){
2288 struct {struct stack_frame_t me
;} fra
;
2293 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2294 fra
.me
.file
= LOCATE_standard___collection___hash_collection
;
2296 fra
.me
.meth
= LOCATE_standard___collection___hash_collection___HashSet___first
;
2297 fra
.me
.has_broke
= 0;
2298 fra
.me
.REG_size
= 1;
2299 fra
.me
.REG
[0] = NIT_NULL
;
2301 /* ./../lib/standard//collection//hash_collection.nit:416 */
2302 REGB0
= TAG_Bool(ATTR_standard___collection___hash_collection___HashCollection____length(fra
.me
.REG
[0])!=NIT_NULL
);
2303 if (UNTAG_Bool(REGB0
)) {
2305 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___hash_collection
, 416);
2307 REGB0
= ATTR_standard___collection___hash_collection___HashCollection____length(fra
.me
.REG
[0]);
2309 REGB2
= TAG_Bool(VAL_ISA(REGB1
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0
), VTID_standard___kernel___Comparable___OTHER(REGB0
))) /*cast OTHER*/;
2310 if (UNTAG_Bool(REGB2
)) {
2312 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
2314 /* ./../lib/standard//kernel.nit:234 */
2315 REGB1
= TAG_Bool(UNTAG_Int(REGB0
)>UNTAG_Int(REGB1
));
2316 /* ./../lib/standard//collection//hash_collection.nit:416 */
2317 if (UNTAG_Bool(REGB1
)) {
2319 nit_abort("Assert failed", NULL
, LOCATE_standard___collection___hash_collection
, 416);
2321 /* ./../lib/standard//collection//hash_collection.nit:417 */
2322 fra
.me
.REG
[0] = ATTR_standard___collection___hash_collection___HashCollection____first_item(fra
.me
.REG
[0]);
2323 REGB1
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
2324 if (UNTAG_Bool(REGB1
)) {
2325 nit_abort("Reciever is null", NULL
, LOCATE_standard___collection___hash_collection
, 417);
2327 REGB1
= TAG_Bool(ATTR_standard___collection___hash_collection___HashNode____key(fra
.me
.REG
[0])!=NIT_NULL
);
2328 if (UNTAG_Bool(REGB1
)) {
2330 nit_abort("Uninitialized attribute %s", "_key", LOCATE_standard___collection___hash_collection
, 417);
2332 fra
.me
.REG
[0] = ATTR_standard___collection___hash_collection___HashNode____key(fra
.me
.REG
[0]);
2335 stack_frame_head
= fra
.me
.prev
;
2336 return fra
.me
.REG
[0];
2338 val_t
standard___collection___hash_collection___HashSet___has(val_t p0
, val_t p1
){
2339 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
2343 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2344 fra
.me
.file
= LOCATE_standard___collection___hash_collection
;
2346 fra
.me
.meth
= LOCATE_standard___collection___hash_collection___HashSet___has
;
2347 fra
.me
.has_broke
= 0;
2348 fra
.me
.REG_size
= 2;
2349 fra
.me
.REG
[0] = NIT_NULL
;
2350 fra
.me
.REG
[1] = NIT_NULL
;
2353 /* ./../lib/standard//collection//hash_collection.nit:422 */
2354 fra
.me
.REG
[1] = CALL_standard___collection___hash_collection___HashCollection___node_at(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
2355 REGB0
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
2356 if (UNTAG_Bool(REGB0
)) {
2358 REGB1
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
2359 if (UNTAG_Bool(REGB1
)) {
2360 REGB1
= TAG_Bool(false);
2363 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[1])(fra
.me
.REG
[1], NIT_NULL
);
2367 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
2370 stack_frame_head
= fra
.me
.prev
;
2373 void standard___collection___hash_collection___HashSet___add(val_t p0
, val_t p1
){
2374 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
2379 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2380 fra
.me
.file
= LOCATE_standard___collection___hash_collection
;
2382 fra
.me
.meth
= LOCATE_standard___collection___hash_collection___HashSet___add
;
2383 fra
.me
.has_broke
= 0;
2384 fra
.me
.REG_size
= 3;
2385 fra
.me
.REG
[0] = NIT_NULL
;
2386 fra
.me
.REG
[1] = NIT_NULL
;
2387 fra
.me
.REG
[2] = NIT_NULL
;
2390 /* ./../lib/standard//collection//hash_collection.nit:427 */
2391 REGB0
= CALL_standard___collection___hash_collection___HashCollection___index_at(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
2392 /* ./../lib/standard//collection//hash_collection.nit:428 */
2393 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]);
2394 /* ./../lib/standard//collection//hash_collection.nit:429 */
2395 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
2396 if (UNTAG_Bool(REGB1
)) {
2398 REGB2
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
2399 if (UNTAG_Bool(REGB2
)) {
2400 REGB2
= TAG_Bool(false);
2403 REGB2
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
2407 REGB1
= TAG_Bool(!UNTAG_Bool(REGB1
));
2408 if (UNTAG_Bool(REGB1
)) {
2409 /* ./../lib/standard//collection//hash_collection.nit:430 */
2410 ATTR_standard___collection___hash_collection___HashNode____key(fra
.me
.REG
[2]) = fra
.me
.REG
[1];
2412 /* ./../lib/standard//collection//hash_collection.nit:432 */
2413 fra
.me
.REG
[1] = NEW_HashSetNode_standard___collection___hash_collection___HashSetNode___init(fra
.me
.REG
[1]);
2414 CALL_standard___collection___hash_collection___HashCollection___store(fra
.me
.REG
[0])(fra
.me
.REG
[0], REGB0
, fra
.me
.REG
[1]);
2416 stack_frame_head
= fra
.me
.prev
;
2419 void standard___collection___hash_collection___HashSet___remove(val_t p0
, val_t p1
){
2420 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
2422 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2423 fra
.me
.file
= LOCATE_standard___collection___hash_collection
;
2425 fra
.me
.meth
= LOCATE_standard___collection___hash_collection___HashSet___remove
;
2426 fra
.me
.has_broke
= 0;
2427 fra
.me
.REG_size
= 2;
2428 fra
.me
.REG
[0] = NIT_NULL
;
2429 fra
.me
.REG
[1] = NIT_NULL
;
2432 /* ./../lib/standard//collection//hash_collection.nit:436 */
2433 CALL_standard___collection___hash_collection___HashCollection___remove_node(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
2434 stack_frame_head
= fra
.me
.prev
;
2437 void standard___collection___hash_collection___HashSet___clear(val_t p0
){
2438 struct {struct stack_frame_t me
;} fra
;
2440 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2441 fra
.me
.file
= LOCATE_standard___collection___hash_collection
;
2443 fra
.me
.meth
= LOCATE_standard___collection___hash_collection___HashSet___clear
;
2444 fra
.me
.has_broke
= 0;
2445 fra
.me
.REG_size
= 1;
2446 fra
.me
.REG
[0] = NIT_NULL
;
2448 /* ./../lib/standard//collection//hash_collection.nit:438 */
2449 CALL_standard___collection___hash_collection___HashCollection___raz(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2450 stack_frame_head
= fra
.me
.prev
;
2453 val_t
standard___collection___hash_collection___HashSet___iterator(val_t p0
){
2454 struct {struct stack_frame_t me
;} fra
;
2456 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2457 fra
.me
.file
= LOCATE_standard___collection___hash_collection
;
2459 fra
.me
.meth
= LOCATE_standard___collection___hash_collection___HashSet___iterator
;
2460 fra
.me
.has_broke
= 0;
2461 fra
.me
.REG_size
= 1;
2462 fra
.me
.REG
[0] = NIT_NULL
;
2464 /* ./../lib/standard//collection//hash_collection.nit:440 */
2465 fra
.me
.REG
[0] = NEW_HashSetIterator_standard___collection___hash_collection___HashSetIterator___init(fra
.me
.REG
[0]);
2468 stack_frame_head
= fra
.me
.prev
;
2469 return fra
.me
.REG
[0];
2471 void standard___collection___hash_collection___HashSet___init(val_t p0
, int* init_table
){
2472 int itpos7
= VAL2OBJ(p0
)->vft
[INIT_TABLE_POS_standard___collection___hash_collection___HashSet
].i
;
2473 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
2476 if (init_table
[itpos7
]) return;
2477 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2478 fra
.me
.file
= LOCATE_standard___collection___hash_collection
;
2480 fra
.me
.meth
= LOCATE_standard___collection___hash_collection___HashSet___init
;
2481 fra
.me
.has_broke
= 0;
2482 fra
.me
.REG_size
= 2;
2483 fra
.me
.REG
[0] = NIT_NULL
;
2484 fra
.me
.REG
[1] = NIT_NULL
;
2486 /* ./../lib/standard//collection//hash_collection.nit:442 */
2487 fra
.me
.REG
[1] = fra
.me
.REG
[0];
2488 CALL_standard___collection___hash_collection___HashCollection___init(fra
.me
.REG
[0])(fra
.me
.REG
[0], init_table
);
2489 /* ./../lib/standard//collection//hash_collection.nit:444 */
2491 ATTR_standard___collection___hash_collection___HashCollection____capacity(fra
.me
.REG
[1]) = REGB0
;
2492 /* ./../lib/standard//collection//hash_collection.nit:445 */
2494 ATTR_standard___collection___hash_collection___HashCollection____length(fra
.me
.REG
[1]) = REGB0
;
2495 /* ./../lib/standard//collection//hash_collection.nit:446 */
2497 CALL_standard___collection___hash_collection___HashCollection___enlarge(fra
.me
.REG
[1])(fra
.me
.REG
[1], REGB0
);
2498 stack_frame_head
= fra
.me
.prev
;
2499 init_table
[itpos7
] = 1;
2502 void standard___collection___hash_collection___HashSetNode___init(val_t p0
, val_t p1
, int* init_table
){
2503 int itpos8
= VAL2OBJ(p0
)->vft
[INIT_TABLE_POS_standard___collection___hash_collection___HashSetNode
].i
;
2504 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
2506 if (init_table
[itpos8
]) return;
2507 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2508 fra
.me
.file
= LOCATE_standard___collection___hash_collection
;
2510 fra
.me
.meth
= LOCATE_standard___collection___hash_collection___HashSetNode___init
;
2511 fra
.me
.has_broke
= 0;
2512 fra
.me
.REG_size
= 4;
2513 fra
.me
.REG
[0] = NIT_NULL
;
2514 fra
.me
.REG
[1] = NIT_NULL
;
2515 fra
.me
.REG
[2] = NIT_NULL
;
2516 fra
.me
.REG
[3] = NIT_NULL
;
2519 /* ./../lib/standard//collection//hash_collection.nit:454 */
2520 fra
.me
.REG
[2] = fra
.me
.REG
[0];
2521 fra
.me
.REG
[3] = fra
.me
.REG
[1];
2522 CALL_standard___collection___hash_collection___HashNode___init(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1], init_table
);
2523 /* ./../lib/standard//collection//hash_collection.nit:456 */
2524 ATTR_standard___collection___hash_collection___HashNode____key(fra
.me
.REG
[2]) = fra
.me
.REG
[3];
2525 stack_frame_head
= fra
.me
.prev
;
2526 init_table
[itpos8
] = 1;
2529 val_t
standard___collection___hash_collection___HashSetIterator___is_ok(val_t p0
){
2530 struct {struct stack_frame_t me
;} fra
;
2534 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2535 fra
.me
.file
= LOCATE_standard___collection___hash_collection
;
2537 fra
.me
.meth
= LOCATE_standard___collection___hash_collection___HashSetIterator___is_ok
;
2538 fra
.me
.has_broke
= 0;
2539 fra
.me
.REG_size
= 1;
2540 fra
.me
.REG
[0] = NIT_NULL
;
2542 /* ./../lib/standard//collection//hash_collection.nit:462 */
2543 fra
.me
.REG
[0] = ATTR_standard___collection___hash_collection___HashSetIterator____node(fra
.me
.REG
[0]);
2544 REGB0
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
2545 if (UNTAG_Bool(REGB0
)) {
2547 REGB1
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
2548 if (UNTAG_Bool(REGB1
)) {
2549 REGB1
= TAG_Bool(false);
2552 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[0])(fra
.me
.REG
[0], NIT_NULL
);
2556 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
2559 stack_frame_head
= fra
.me
.prev
;
2562 val_t
standard___collection___hash_collection___HashSetIterator___item(val_t p0
){
2563 struct {struct stack_frame_t me
;} fra
;
2566 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2567 fra
.me
.file
= LOCATE_standard___collection___hash_collection
;
2569 fra
.me
.meth
= LOCATE_standard___collection___hash_collection___HashSetIterator___item
;
2570 fra
.me
.has_broke
= 0;
2571 fra
.me
.REG_size
= 1;
2572 fra
.me
.REG
[0] = NIT_NULL
;
2574 /* ./../lib/standard//collection//hash_collection.nit:466 */
2575 REGB0
= CALL_standard___collection___abstract_collection___Iterator___is_ok(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2576 if (UNTAG_Bool(REGB0
)) {
2578 nit_abort("Assert failed", NULL
, LOCATE_standard___collection___hash_collection
, 466);
2580 /* ./../lib/standard//collection//hash_collection.nit:467 */
2581 fra
.me
.REG
[0] = ATTR_standard___collection___hash_collection___HashSetIterator____node(fra
.me
.REG
[0]);
2582 REGB0
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
2583 if (UNTAG_Bool(REGB0
)) {
2584 nit_abort("Reciever is null", NULL
, LOCATE_standard___collection___hash_collection
, 467);
2586 REGB0
= TAG_Bool(ATTR_standard___collection___hash_collection___HashNode____key(fra
.me
.REG
[0])!=NIT_NULL
);
2587 if (UNTAG_Bool(REGB0
)) {
2589 nit_abort("Uninitialized attribute %s", "_key", LOCATE_standard___collection___hash_collection
, 467);
2591 fra
.me
.REG
[0] = ATTR_standard___collection___hash_collection___HashNode____key(fra
.me
.REG
[0]);
2594 stack_frame_head
= fra
.me
.prev
;
2595 return fra
.me
.REG
[0];
2597 void standard___collection___hash_collection___HashSetIterator___next(val_t p0
){
2598 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
2601 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2602 fra
.me
.file
= LOCATE_standard___collection___hash_collection
;
2604 fra
.me
.meth
= LOCATE_standard___collection___hash_collection___HashSetIterator___next
;
2605 fra
.me
.has_broke
= 0;
2606 fra
.me
.REG_size
= 2;
2607 fra
.me
.REG
[0] = NIT_NULL
;
2608 fra
.me
.REG
[1] = NIT_NULL
;
2610 /* ./../lib/standard//collection//hash_collection.nit:472 */
2611 REGB0
= CALL_standard___collection___abstract_collection___Iterator___is_ok(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2612 if (UNTAG_Bool(REGB0
)) {
2614 nit_abort("Assert failed", NULL
, LOCATE_standard___collection___hash_collection
, 472);
2616 /* ./../lib/standard//collection//hash_collection.nit:473 */
2617 fra
.me
.REG
[1] = ATTR_standard___collection___hash_collection___HashSetIterator____node(fra
.me
.REG
[0]);
2618 REGB0
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
2619 if (UNTAG_Bool(REGB0
)) {
2620 nit_abort("Reciever is null", NULL
, LOCATE_standard___collection___hash_collection
, 473);
2622 fra
.me
.REG
[1] = ATTR_standard___collection___hash_collection___HashNode____next_item(fra
.me
.REG
[1]);
2623 ATTR_standard___collection___hash_collection___HashSetIterator____node(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
2624 stack_frame_head
= fra
.me
.prev
;
2627 void standard___collection___hash_collection___HashSetIterator___init(val_t p0
, val_t p1
, int* init_table
){
2628 int itpos9
= VAL2OBJ(p0
)->vft
[INIT_TABLE_POS_standard___collection___hash_collection___HashSetIterator
].i
;
2629 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
2631 if (init_table
[itpos9
]) return;
2632 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2633 fra
.me
.file
= LOCATE_standard___collection___hash_collection
;
2635 fra
.me
.meth
= LOCATE_standard___collection___hash_collection___HashSetIterator___init
;
2636 fra
.me
.has_broke
= 0;
2637 fra
.me
.REG_size
= 2;
2638 fra
.me
.REG
[0] = NIT_NULL
;
2639 fra
.me
.REG
[1] = NIT_NULL
;
2642 /* ./../lib/standard//collection//hash_collection.nit:484 */
2643 ATTR_standard___collection___hash_collection___HashSetIterator____set(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
2644 /* ./../lib/standard//collection//hash_collection.nit:485 */
2645 fra
.me
.REG
[1] = ATTR_standard___collection___hash_collection___HashCollection____first_item(fra
.me
.REG
[1]);
2646 ATTR_standard___collection___hash_collection___HashSetIterator____node(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
2647 stack_frame_head
= fra
.me
.prev
;
2648 init_table
[itpos9
] = 1;