1 /* This C file is generated by NIT to compile module hash. */
3 val_t
hash___Object___hash(val_t self
) {
4 struct trace_t trace
= {NULL
, NULL
, 21, LOCATE_hash___Object___hash
};
6 trace
.prev
= tracehead
; tracehead
= &trace
;
7 trace
.file
= LOCATE_hash
;
8 variable0
= TAG_Int((bigint
) self
);
9 variable0
= TAG_Int(UNTAG_Int(variable0
)/UNTAG_Int( TAG_Int(8)));
11 return_label0
: while(false);
12 tracehead
= trace
.prev
;
15 val_t
hash___String___hash(val_t self
) {
16 struct trace_t trace
= {NULL
, NULL
, 29, LOCATE_hash___String___hash
};
22 trace
.prev
= tracehead
; tracehead
= &trace
;
23 trace
.file
= LOCATE_hash
;
24 variable0
= TAG_Int(5381);
25 variable2
= ATTR_array___AbstractArray____length( self
) /*AbstractArray::_length*/;
26 variable2
= TAG_Int(UNTAG_Int(variable2
)-UNTAG_Int( TAG_Int(1)));
27 variable1
= variable2
;
28 variable3
= ATTR_string___String____items( self
) /*String::_items*/;
29 variable2
= variable3
;
30 while (true) { /*while*/
31 variable3
= TAG_Bool(UNTAG_Int( variable1
/*i*/)>=UNTAG_Int( TAG_Int(0)));
32 if (!UNTAG_Bool(variable3
)) break; /* while*/
33 variable3
= TAG_Int(UNTAG_Int( variable0
/*h*/)*UNTAG_Int( TAG_Int(32)));
34 variable3
= TAG_Int(UNTAG_Int(variable3
)+UNTAG_Int( variable0
/*h*/));
35 variable4
= TAG_Char(UNBOX_NativeString( variable2
/*it*/)[UNTAG_Int( variable1
/*i*/)]);
36 variable4
= TAG_Int((unsigned char)UNTAG_Char(variable4
));
37 variable3
= TAG_Int(UNTAG_Int(variable3
)+UNTAG_Int(variable4
));
38 variable0
= variable3
/*h=*/;
39 variable1
= TAG_Int(UNTAG_Int(variable1
)-UNTAG_Int( TAG_Int(1))) /*i*/;
43 variable0
= variable0
/*h*/;
45 return_label1
: while(false);
46 tracehead
= trace
.prev
;
49 val_t
hash___Int___hash(val_t self
) {
50 struct trace_t trace
= {NULL
, NULL
, 45, LOCATE_hash___Int___hash
};
52 trace
.prev
= tracehead
; tracehead
= &trace
;
53 trace
.file
= LOCATE_hash
;
56 return_label3
: while(false);
57 tracehead
= trace
.prev
;
60 val_t
hash___Char___hash(val_t self
) {
61 struct trace_t trace
= {NULL
, NULL
, 49, LOCATE_hash___Char___hash
};
63 trace
.prev
= tracehead
; tracehead
= &trace
;
64 trace
.file
= LOCATE_hash
;
65 variable0
= TAG_Int((unsigned char)UNTAG_Char( self
));
67 return_label4
: while(false);
68 tracehead
= trace
.prev
;
71 val_t
hash___Bool___hash(val_t self
) {
72 struct trace_t trace
= {NULL
, NULL
, 53, LOCATE_hash___Bool___hash
};
74 trace
.prev
= tracehead
; tracehead
= &trace
;
75 trace
.file
= LOCATE_hash
;
76 if (UNTAG_Bool( self
)) { /*if*/
77 variable0
= TAG_Int(1);
80 variable0
= TAG_Int(0);
83 return_label5
: while(false);
84 tracehead
= trace
.prev
;
87 val_t
hash___HashCollection___length(val_t self
) {
88 struct trace_t trace
= {NULL
, NULL
, 69, LOCATE_hash___HashCollection___length
};
89 trace
.prev
= tracehead
; tracehead
= &trace
;
90 trace
.file
= LOCATE_hash
;
91 tracehead
= trace
.prev
;
92 return ATTR_hash___HashCollection____length( self
) /*HashCollection::_length*/;
94 val_t
hash___HashCollection___first_item(val_t self
) {
95 struct trace_t trace
= {NULL
, NULL
, 71, LOCATE_hash___HashCollection___first_item
};
96 trace
.prev
= tracehead
; tracehead
= &trace
;
97 trace
.file
= LOCATE_hash
;
98 tracehead
= trace
.prev
;
99 return ATTR_hash___HashCollection____first_item( self
) /*HashCollection::_first_item*/;
101 val_t
hash___HashCollection___index_at(val_t self
, val_t param0
) {
102 struct trace_t trace
= {NULL
, NULL
, 80, LOCATE_hash___HashCollection___index_at
};
110 trace
.prev
= tracehead
; tracehead
= &trace
;
111 trace
.file
= LOCATE_hash
;
113 variable2
= ATTR_hash___HashCollection____array( self
) /*HashCollection::_array*/;
114 variable1
= variable2
;
115 variable2
= TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0
/*k*/ == NIT_NULL
/*null*/) || (( variable0
/*k*/ != NIT_NULL
) && ((((kernel___Object_____eqeq_t
)CALL( variable0
/*k*/,COLOR_kernel___Object_____eqeq
))==kernel___Object_____eqeq
)?
(IS_EQUAL_NN( variable0
/*k*/, NIT_NULL
/*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t
)CALL( variable0
/*k*/,COLOR_kernel___Object_____eqeq
))( variable0
/*k*/, NIT_NULL
/*null*/) /*Object::==*/)))))));
116 if (!UNTAG_Bool(variable2
)) { fprintf(stderr
, "Assert%s failed", ""); fprintf(stderr
, " in %s (%s:%d)\n", LOCATE_hash___HashCollection___index_at
, LOCATE_hash
, 84); nit_exit(1);}
117 variable2
= ATTR_hash___HashCollection____last_accessed_key( self
) /*HashCollection::_last_accessed_key*/;
118 variable2
= TAG_Bool(( variable0
/*k*/ == variable2
) || (( variable0
/*k*/ != NIT_NULL
) && ((((kernel___Object_____eqeq_t
)CALL( variable0
/*k*/,COLOR_kernel___Object_____eqeq
))==kernel___Object_____eqeq
)?
(IS_EQUAL_NN( variable0
/*k*/,variable2
)):(UNTAG_Bool(((kernel___Object_____eqeq_t
)CALL( variable0
/*k*/,COLOR_kernel___Object_____eqeq
))( variable0
/*k*/, variable2
) /*Object::==*/)))));
119 if (UNTAG_Bool(variable2
)) { /*if*/
120 variable2
= ATTR_hash___HashCollection____last_accessed_index( self
) /*HashCollection::_last_accessed_index*/;
121 variable1
= variable2
;
124 variable3
= ((hash___Object___hash_t
)CALL( variable0
/*k*/,COLOR_hash___Object___hash
))( variable0
/*k*/) /*Object::hash*/;
125 variable4
= ATTR_hash___HashCollection____capacity( self
) /*HashCollection::_capacity*/;
126 variable3
= TAG_Int(UNTAG_Int(variable3
)%UNTAG_Int(variable4
));
127 variable2
= variable3
;
128 variable3
= TAG_Bool(UNTAG_Int( variable2
/*base*/)<UNTAG_Int( TAG_Int(0)));
129 if (UNTAG_Bool(variable3
)) { /*if*/
130 variable3
= TAG_Int(-UNTAG_Int( variable2
/*base*/));
131 variable2
= variable3
/*base=*/;
133 variable3
= variable2
/*base*/;
134 while (true) { /*while*/
135 if (!UNTAG_Bool( TAG_Bool(true))) break; /* while*/
136 variable5
= UNBOX_NativeArray( variable1
/*arr*/)[UNTAG_Int( variable3
/*cur*/)];
137 variable4
= variable5
;
138 variable5
= TAG_Bool(( variable4
/*c*/ == NIT_NULL
/*null*/) || (( variable4
/*c*/ != NIT_NULL
) && ((((kernel___Object_____eqeq_t
)CALL( variable4
/*c*/,COLOR_kernel___Object_____eqeq
))==kernel___Object_____eqeq
)?
(IS_EQUAL_NN( variable4
/*c*/, NIT_NULL
/*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t
)CALL( variable4
/*c*/,COLOR_kernel___Object_____eqeq
))( variable4
/*c*/, NIT_NULL
/*null*/) /*Object::==*/)))));
139 variable6
= variable5
;
140 if (!UNTAG_Bool(variable6
)) { /* or */
141 variable6
= ((hash___HashNode___key_t
)CALL( variable4
/*c*/,COLOR_hash___HashNode___key
))( variable4
/*c*/) /*HashNode::key*/;
142 variable6
= TAG_Bool((variable6
== variable0
/*k*/) || ((variable6
!= NIT_NULL
) && ((((kernel___Object_____eqeq_t
)CALL(variable6
,COLOR_kernel___Object_____eqeq
))==kernel___Object_____eqeq
)?
(IS_EQUAL_NN(variable6
, variable0
/*k*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t
)CALL(variable6
,COLOR_kernel___Object_____eqeq
))(variable6
, variable0
/*k*/) /*Object::==*/)))));
144 variable5
= variable6
;
145 if (UNTAG_Bool(variable5
)) { /*if*/
146 ATTR_hash___HashCollection____last_accessed_index( self
) /*HashCollection::_last_accessed_index*/ = variable3
/*cur*/;
147 ATTR_hash___HashCollection____last_accessed_key( self
) /*HashCollection::_last_accessed_key*/ = variable0
/*k*/;
148 variable1
= variable3
/*cur*/;
151 variable3
= TAG_Int(UNTAG_Int(variable3
)-UNTAG_Int( TAG_Int(1))) /*cur*/;
152 variable5
= TAG_Bool(UNTAG_Int( variable3
/*cur*/)<UNTAG_Int( TAG_Int(0)));
153 if (UNTAG_Bool(variable5
)) { /*if*/
154 variable5
= ATTR_hash___HashCollection____capacity( self
) /*HashCollection::_capacity*/;
155 variable5
= TAG_Int(UNTAG_Int(variable5
)-UNTAG_Int( TAG_Int(1)));
156 variable3
= variable5
/*cur=*/;
158 variable5
= TAG_Bool(( variable3
/*cur*/)!=( variable2
/*base*/));
159 if (!UNTAG_Bool(variable5
)) { fprintf(stderr
, "Assert%s failed", " 'no_loop' "); fprintf(stderr
, " in %s (%s:%d)\n", LOCATE_hash___HashCollection___index_at
, LOCATE_hash
, 104); nit_exit(1);}
160 continue_7
: while(0);
163 fprintf(stderr
, "Aborted"); fprintf(stderr
, " in %s (%s:%d)\n", LOCATE_hash___HashCollection___index_at
, LOCATE_hash
, 106); nit_exit(1);
164 return_label6
: while(false);
165 tracehead
= trace
.prev
;
168 void hash___HashCollection___store(val_t self
, val_t param0
, val_t param1
) {
169 struct trace_t trace
= {NULL
, NULL
, 109, LOCATE_hash___HashCollection___store
};
174 trace
.prev
= tracehead
; tracehead
= &trace
;
175 trace
.file
= LOCATE_hash
;
178 variable2
= ATTR_hash___HashCollection____first_item( self
) /*HashCollection::_first_item*/;
179 variable2
= TAG_Bool((variable2
== NIT_NULL
/*null*/) || ((variable2
!= NIT_NULL
) && ((((kernel___Object_____eqeq_t
)CALL(variable2
,COLOR_kernel___Object_____eqeq
))==kernel___Object_____eqeq
)?
(IS_EQUAL_NN(variable2
, NIT_NULL
/*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t
)CALL(variable2
,COLOR_kernel___Object_____eqeq
))(variable2
, NIT_NULL
/*null*/) /*Object::==*/)))));
180 if (UNTAG_Bool(variable2
)) { /*if*/
181 ATTR_hash___HashCollection____first_item( self
) /*HashCollection::_first_item*/ = variable1
/*node*/;
183 variable2
= ATTR_hash___HashCollection____last_item( self
) /*HashCollection::_last_item*/;
184 ((hash___HashNode___next_item__eq_t
)CALL(variable2
,COLOR_hash___HashNode___next_item__eq
))(variable2
, variable1
/*node*/) /*HashNode::next_item=*/;
186 variable2
= ATTR_hash___HashCollection____last_item( self
) /*HashCollection::_last_item*/;
187 ((hash___HashNode___prev_item__eq_t
)CALL( variable1
/*node*/,COLOR_hash___HashNode___prev_item__eq
))( variable1
/*node*/, variable2
) /*HashNode::prev_item=*/;
188 ((hash___HashNode___next_item__eq_t
)CALL( variable1
/*node*/,COLOR_hash___HashNode___next_item__eq
))( variable1
/*node*/, NIT_NULL
/*null*/) /*HashNode::next_item=*/;
189 ATTR_hash___HashCollection____last_item( self
) /*HashCollection::_last_item*/ = variable1
/*node*/;
190 variable2
= ATTR_hash___HashCollection____array( self
) /*HashCollection::_array*/;
191 variable2
= UNBOX_NativeArray(variable2
)[UNTAG_Int( variable0
/*index*/)];
192 variable2
= TAG_Bool((variable2
== NIT_NULL
/*null*/) || ((variable2
!= NIT_NULL
) && ((((kernel___Object_____eqeq_t
)CALL(variable2
,COLOR_kernel___Object_____eqeq
))==kernel___Object_____eqeq
)?
(IS_EQUAL_NN(variable2
, NIT_NULL
/*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t
)CALL(variable2
,COLOR_kernel___Object_____eqeq
))(variable2
, NIT_NULL
/*null*/) /*Object::==*/)))));
193 if (!UNTAG_Bool(variable2
)) { fprintf(stderr
, "Assert%s failed", ""); fprintf(stderr
, " in %s (%s:%d)\n", LOCATE_hash___HashCollection___store
, LOCATE_hash
, 122); nit_exit(1);}
194 variable2
= ATTR_hash___HashCollection____array( self
) /*HashCollection::_array*/;
195 UNBOX_NativeArray(variable2
)[UNTAG_Int( variable0
/*index*/)]= variable1
/*node*/;
196 variable3
= ATTR_hash___HashCollection____length( self
) /*HashCollection::_length*/;
197 variable2
= variable3
;
198 variable3
= TAG_Int(UNTAG_Int( variable2
/*l*/)+UNTAG_Int( TAG_Int(1)));
199 ATTR_hash___HashCollection____length( self
) /*HashCollection::_length*/ = variable3
;
200 variable3
= TAG_Int(UNTAG_Int( variable2
/*l*/)+UNTAG_Int( TAG_Int(5)));
201 variable3
= TAG_Int(UNTAG_Int(variable3
)*UNTAG_Int( TAG_Int(150)));
202 variable3
= TAG_Int(UNTAG_Int(variable3
)/UNTAG_Int( TAG_Int(100)));
203 variable2
= variable3
/*l=*/;
204 variable3
= ATTR_hash___HashCollection____capacity( self
) /*HashCollection::_capacity*/;
205 variable3
= TAG_Bool(UNTAG_Int( variable2
/*l*/)>=UNTAG_Int(variable3
));
206 if (UNTAG_Bool(variable3
)) { /*if*/
207 variable3
= TAG_Int(UNTAG_Int( variable2
/*l*/)*UNTAG_Int( TAG_Int(2)));
208 ((hash___HashCollection___enlarge_t
)CALL( self
,COLOR_hash___HashCollection___enlarge
))( self
, variable3
) /*HashCollection::enlarge*/;
210 tracehead
= trace
.prev
;
213 void hash___HashCollection___remove_index(val_t self
, val_t param0
) {
214 struct trace_t trace
= {NULL
, NULL
, 132, LOCATE_hash___HashCollection___remove_index
};
222 trace
.prev
= tracehead
; tracehead
= &trace
;
223 trace
.file
= LOCATE_hash
;
225 variable1
= TAG_Bool(UNTAG_Int( variable0
/*i*/)>=UNTAG_Int( TAG_Int(0)));
226 variable2
= variable1
;
227 if (UNTAG_Bool(variable2
)) { /* and */
228 variable2
= ATTR_hash___HashCollection____capacity( self
) /*HashCollection::_capacity*/;
229 variable2
= TAG_Bool(UNTAG_Int( variable0
/*i*/)<UNTAG_Int(variable2
));
231 variable1
= variable2
;
232 if (!UNTAG_Bool(variable1
)) { fprintf(stderr
, "Assert%s failed", " 'correct_index' "); fprintf(stderr
, " in %s (%s:%d)\n", LOCATE_hash___HashCollection___remove_index
, LOCATE_hash
, 134); nit_exit(1);}
233 variable2
= ATTR_hash___HashCollection____array( self
) /*HashCollection::_array*/;
234 variable2
= UNBOX_NativeArray(variable2
)[UNTAG_Int( variable0
/*i*/)];
235 variable1
= variable2
;
236 variable2
= TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1
/*node*/ == NIT_NULL
/*null*/) || (( variable1
/*node*/ != NIT_NULL
) && ((((kernel___Object_____eqeq_t
)CALL( variable1
/*node*/,COLOR_kernel___Object_____eqeq
))==kernel___Object_____eqeq
)?
(IS_EQUAL_NN( variable1
/*node*/, NIT_NULL
/*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t
)CALL( variable1
/*node*/,COLOR_kernel___Object_____eqeq
))( variable1
/*node*/, NIT_NULL
/*null*/) /*Object::==*/)))))));
237 if (!UNTAG_Bool(variable2
)) { fprintf(stderr
, "Assert%s failed", " 'has_couple' "); fprintf(stderr
, " in %s (%s:%d)\n", LOCATE_hash___HashCollection___remove_index
, LOCATE_hash
, 136); nit_exit(1);}
238 variable3
= ((hash___HashNode___prev_item_t
)CALL( variable1
/*node*/,COLOR_hash___HashNode___prev_item
))( variable1
/*node*/) /*HashNode::prev_item*/;
239 variable2
= variable3
;
240 variable4
= ((hash___HashNode___next_item_t
)CALL( variable1
/*node*/,COLOR_hash___HashNode___next_item
))( variable1
/*node*/) /*HashNode::next_item*/;
241 variable3
= variable4
;
242 variable4
= TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable2
/*prev*/ == NIT_NULL
/*null*/) || (( variable2
/*prev*/ != NIT_NULL
) && ((((kernel___Object_____eqeq_t
)CALL( variable2
/*prev*/,COLOR_kernel___Object_____eqeq
))==kernel___Object_____eqeq
)?
(IS_EQUAL_NN( variable2
/*prev*/, NIT_NULL
/*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t
)CALL( variable2
/*prev*/,COLOR_kernel___Object_____eqeq
))( variable2
/*prev*/, NIT_NULL
/*null*/) /*Object::==*/)))))));
243 if (UNTAG_Bool(variable4
)) { /*if*/
244 ((hash___HashNode___next_item__eq_t
)CALL( variable2
/*prev*/,COLOR_hash___HashNode___next_item__eq
))( variable2
/*prev*/, variable3
/*next*/) /*HashNode::next_item=*/;
246 ATTR_hash___HashCollection____first_item( self
) /*HashCollection::_first_item*/ = variable3
/*next*/;
248 variable4
= TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable3
/*next*/ == NIT_NULL
/*null*/) || (( variable3
/*next*/ != NIT_NULL
) && ((((kernel___Object_____eqeq_t
)CALL( variable3
/*next*/,COLOR_kernel___Object_____eqeq
))==kernel___Object_____eqeq
)?
(IS_EQUAL_NN( variable3
/*next*/, NIT_NULL
/*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t
)CALL( variable3
/*next*/,COLOR_kernel___Object_____eqeq
))( variable3
/*next*/, NIT_NULL
/*null*/) /*Object::==*/)))))));
249 if (UNTAG_Bool(variable4
)) { /*if*/
250 ((hash___HashNode___prev_item__eq_t
)CALL( variable3
/*next*/,COLOR_hash___HashNode___prev_item__eq
))( variable3
/*next*/, variable2
/*prev*/) /*HashNode::prev_item=*/;
252 ATTR_hash___HashCollection____last_item( self
) /*HashCollection::_last_item*/ = variable2
/*prev*/;
254 variable4
= ATTR_hash___HashCollection____array( self
) /*HashCollection::_array*/;
255 UNBOX_NativeArray(variable4
)[UNTAG_Int( variable0
/*i*/)]= NIT_NULL
/*null*/;
256 ATTR_hash___HashCollection____length( self
) /*HashCollection::_length*/ = TAG_Int(UNTAG_Int(ATTR_hash___HashCollection____length( self
) /*HashCollection::_length*/)-UNTAG_Int( TAG_Int(1)));
257 while (true) { /*while*/
258 if (!UNTAG_Bool( TAG_Bool(true))) break; /* while*/
259 variable0
= TAG_Int(UNTAG_Int(variable0
)-UNTAG_Int( TAG_Int(1))) /*i*/;
260 variable4
= TAG_Bool(UNTAG_Int( variable0
/*i*/)<UNTAG_Int( TAG_Int(0)));
261 if (UNTAG_Bool(variable4
)) { /*if*/
262 variable4
= ATTR_hash___HashCollection____capacity( self
) /*HashCollection::_capacity*/;
263 variable4
= TAG_Int(UNTAG_Int(variable4
)-UNTAG_Int( TAG_Int(1)));
264 variable0
= variable4
/*i=*/;
266 variable5
= ATTR_hash___HashCollection____array( self
) /*HashCollection::_array*/;
267 variable5
= UNBOX_NativeArray(variable5
)[UNTAG_Int( variable0
/*i*/)];
268 variable4
= variable5
;
269 variable5
= TAG_Bool(( variable4
/*n*/ == NIT_NULL
/*null*/) || (( variable4
/*n*/ != NIT_NULL
) && ((((kernel___Object_____eqeq_t
)CALL( variable4
/*n*/,COLOR_kernel___Object_____eqeq
))==kernel___Object_____eqeq
)?
(IS_EQUAL_NN( variable4
/*n*/, NIT_NULL
/*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t
)CALL( variable4
/*n*/,COLOR_kernel___Object_____eqeq
))( variable4
/*n*/, NIT_NULL
/*null*/) /*Object::==*/)))));
270 if (UNTAG_Bool(variable5
)) { /*if*/
273 variable6
= ((hash___HashNode___key_t
)CALL( variable4
/*n*/,COLOR_hash___HashNode___key
))( variable4
/*n*/) /*HashNode::key*/;
274 variable6
= ((hash___HashCollection___index_at_t
)CALL( self
,COLOR_hash___HashCollection___index_at
))( self
, variable6
) /*HashCollection::index_at*/;
275 variable5
= variable6
;
276 variable6
= TAG_Bool(( variable0
/*i*/)!=( variable5
/*i2*/));
277 if (UNTAG_Bool(variable6
)) { /*if*/
278 variable6
= ATTR_hash___HashCollection____array( self
) /*HashCollection::_array*/;
279 UNBOX_NativeArray(variable6
)[UNTAG_Int( variable0
/*i*/)]= NIT_NULL
/*null*/;
280 variable6
= ATTR_hash___HashCollection____array( self
) /*HashCollection::_array*/;
281 variable6
= UNBOX_NativeArray(variable6
)[UNTAG_Int( variable5
/*i2*/)];
282 variable6
= TAG_Bool((variable6
== NIT_NULL
/*null*/) || ((variable6
!= NIT_NULL
) && ((((kernel___Object_____eqeq_t
)CALL(variable6
,COLOR_kernel___Object_____eqeq
))==kernel___Object_____eqeq
)?
(IS_EQUAL_NN(variable6
, NIT_NULL
/*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t
)CALL(variable6
,COLOR_kernel___Object_____eqeq
))(variable6
, NIT_NULL
/*null*/) /*Object::==*/)))));
283 if (!UNTAG_Bool(variable6
)) { fprintf(stderr
, "Assert%s failed", ""); fprintf(stderr
, " in %s (%s:%d)\n", LOCATE_hash___HashCollection___remove_index
, LOCATE_hash
, 166); nit_exit(1);}
284 variable6
= ATTR_hash___HashCollection____array( self
) /*HashCollection::_array*/;
285 UNBOX_NativeArray(variable6
)[UNTAG_Int( variable5
/*i2*/)]= variable4
/*n*/;
287 continue_10
: while(0);
290 return_label9
: while(false);
291 tracehead
= trace
.prev
;
294 void hash___HashCollection___raz(val_t self
) {
295 struct trace_t trace
= {NULL
, NULL
, 172, LOCATE_hash___HashCollection___raz
};
298 trace
.prev
= tracehead
; tracehead
= &trace
;
299 trace
.file
= LOCATE_hash
;
300 variable1
= ATTR_hash___HashCollection____capacity( self
) /*HashCollection::_capacity*/;
301 variable1
= TAG_Int(UNTAG_Int(variable1
)-UNTAG_Int( TAG_Int(1)));
302 variable0
= variable1
;
303 while (true) { /*while*/
304 variable1
= TAG_Bool(UNTAG_Int( variable0
/*i*/)>=UNTAG_Int( TAG_Int(0)));
305 if (!UNTAG_Bool(variable1
)) break; /* while*/
306 variable1
= ATTR_hash___HashCollection____array( self
) /*HashCollection::_array*/;
307 UNBOX_NativeArray(variable1
)[UNTAG_Int( variable0
/*i*/)]= NIT_NULL
/*null*/;
308 variable0
= TAG_Int(UNTAG_Int(variable0
)-UNTAG_Int( TAG_Int(1))) /*i*/;
309 continue_12
: while(0);
312 ATTR_hash___HashCollection____length( self
) /*HashCollection::_length*/ = TAG_Int(0);
313 ATTR_hash___HashCollection____first_item( self
) /*HashCollection::_first_item*/ = NIT_NULL
/*null*/;
314 ATTR_hash___HashCollection____last_item( self
) /*HashCollection::_last_item*/ = NIT_NULL
/*null*/;
315 ATTR_hash___HashCollection____last_accessed_key( self
) /*HashCollection::_last_accessed_key*/ = NIT_NULL
/*null*/;
316 tracehead
= trace
.prev
;
319 void hash___HashCollection___enlarge(val_t self
, val_t param0
) {
320 struct trace_t trace
= {NULL
, NULL
, 185, LOCATE_hash___HashCollection___enlarge
};
329 trace
.prev
= tracehead
; tracehead
= &trace
;
330 trace
.file
= LOCATE_hash
;
332 variable2
= ATTR_hash___HashCollection____capacity( self
) /*HashCollection::_capacity*/;
333 variable1
= variable2
;
334 variable2
= ATTR_hash___HashCollection____length( self
) /*HashCollection::_length*/;
335 variable2
= TAG_Int(UNTAG_Int(variable2
)+UNTAG_Int( TAG_Int(1)));
336 variable2
= TAG_Bool(UNTAG_Int( variable0
/*cap*/)<UNTAG_Int(variable2
));
337 if (UNTAG_Bool(variable2
)) { /*if*/
338 variable2
= ATTR_hash___HashCollection____length( self
) /*HashCollection::_length*/;
339 variable2
= TAG_Int(UNTAG_Int(variable2
)+UNTAG_Int( TAG_Int(1)));
340 variable0
= variable2
/*cap=*/;
342 variable2
= ATTR_hash___HashCollection____capacity( self
) /*HashCollection::_capacity*/;
343 variable2
= TAG_Bool(UNTAG_Int( variable0
/*cap*/)<=UNTAG_Int(variable2
));
344 if (UNTAG_Bool(variable2
)) { /*if*/
347 ATTR_hash___HashCollection____capacity( self
) /*HashCollection::_capacity*/ = variable0
/*cap*/;
348 ATTR_hash___HashCollection____last_accessed_key( self
) /*HashCollection::_last_accessed_key*/ = NIT_NULL
/*null*/;
349 variable3
= BOX_NativeArray((val_t
*)malloc((UNTAG_Int( variable0
/*cap*/) * sizeof(val_t
))));
350 variable2
= variable3
;
351 ATTR_hash___HashCollection____array( self
) /*HashCollection::_array*/ = variable2
/*new_array*/;
352 variable4
= TAG_Int(UNTAG_Int( variable0
/*cap*/)-UNTAG_Int( TAG_Int(1)));
353 variable3
= variable4
;
354 while (true) { /*while*/
355 variable4
= TAG_Bool(UNTAG_Int( variable3
/*i*/)>=UNTAG_Int( TAG_Int(0)));
356 if (!UNTAG_Bool(variable4
)) break; /* while*/
357 UNBOX_NativeArray( variable2
/*new_array*/)[UNTAG_Int( variable3
/*i*/)]= NIT_NULL
/*null*/;
358 variable3
= TAG_Int(UNTAG_Int(variable3
)-UNTAG_Int( TAG_Int(1))) /*i*/;
359 continue_14
: while(0);
362 variable4
= ATTR_hash___HashCollection____capacity( self
) /*HashCollection::_capacity*/;
363 variable4
= TAG_Bool(UNTAG_Int(variable4
)<=UNTAG_Int( variable1
/*old_cap*/));
364 if (UNTAG_Bool(variable4
)) { /*if*/
367 variable5
= ATTR_hash___HashCollection____array( self
) /*HashCollection::_array*/;
368 variable4
= variable5
;
369 variable6
= ATTR_hash___HashCollection____first_item( self
) /*HashCollection::_first_item*/;
370 variable5
= variable6
;
371 while (true) { /*while*/
372 variable6
= TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable5
/*node*/ == NIT_NULL
/*null*/) || (( variable5
/*node*/ != NIT_NULL
) && ((((kernel___Object_____eqeq_t
)CALL( variable5
/*node*/,COLOR_kernel___Object_____eqeq
))==kernel___Object_____eqeq
)?
(IS_EQUAL_NN( variable5
/*node*/, NIT_NULL
/*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t
)CALL( variable5
/*node*/,COLOR_kernel___Object_____eqeq
))( variable5
/*node*/, NIT_NULL
/*null*/) /*Object::==*/)))))));
373 if (!UNTAG_Bool(variable6
)) break; /* while*/
374 variable7
= ((hash___HashNode___key_t
)CALL( variable5
/*node*/,COLOR_hash___HashNode___key
))( variable5
/*node*/) /*HashNode::key*/;
375 variable7
= ((hash___HashCollection___index_at_t
)CALL( self
,COLOR_hash___HashCollection___index_at
))( self
, variable7
) /*HashCollection::index_at*/;
376 variable6
= variable7
;
377 variable7
= UNBOX_NativeArray( variable4
/*new_array*/)[UNTAG_Int( variable6
/*ind*/)];
378 variable7
= TAG_Bool((variable7
== NIT_NULL
/*null*/) || ((variable7
!= NIT_NULL
) && ((((kernel___Object_____eqeq_t
)CALL(variable7
,COLOR_kernel___Object_____eqeq
))==kernel___Object_____eqeq
)?
(IS_EQUAL_NN(variable7
, NIT_NULL
/*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t
)CALL(variable7
,COLOR_kernel___Object_____eqeq
))(variable7
, NIT_NULL
/*null*/) /*Object::==*/)))));
379 if (!UNTAG_Bool(variable7
)) { fprintf(stderr
, "Assert%s failed", ""); fprintf(stderr
, " in %s (%s:%d)\n", LOCATE_hash___HashCollection___enlarge
, LOCATE_hash
, 213); nit_exit(1);}
380 UNBOX_NativeArray( variable4
/*new_array*/)[UNTAG_Int( variable6
/*ind*/)]= variable5
/*node*/;
381 variable7
= ((hash___HashNode___next_item_t
)CALL( variable5
/*node*/,COLOR_hash___HashNode___next_item
))( variable5
/*node*/) /*HashNode::next_item*/;
382 variable5
= variable7
/*node=*/;
383 continue_15
: while(0);
386 ATTR_hash___HashCollection____last_accessed_key( self
) /*HashCollection::_last_accessed_key*/ = NIT_NULL
/*null*/;
387 return_label13
: while(false);
388 tracehead
= trace
.prev
;
391 void hash___HashCollection___init(val_t self
, int* init_table
) {
392 struct trace_t trace
= {NULL
, NULL
, 0, LOCATE_hash___HashCollection___init
};
393 trace
.prev
= tracehead
; tracehead
= &trace
;
394 trace
.file
= LOCATE_hash
;
395 tracehead
= trace
.prev
;
398 val_t
hash___HashNode___key(val_t self
) {
399 struct trace_t trace
= {NULL
, NULL
, 222, LOCATE_hash___HashNode___key
};
400 trace
.prev
= tracehead
; tracehead
= &trace
;
401 trace
.file
= LOCATE_hash
;
402 fprintf(stderr
, "Deferred method %s called");
403 fprintf(stderr
, " in %s (%s:%d)\n", LOCATE_hash___HashCollection___enlarge
, LOCATE_hash
, 222);
405 tracehead
= trace
.prev
;
408 val_t
hash___HashNode___next_item(val_t self
) {
409 struct trace_t trace
= {NULL
, NULL
, 224, LOCATE_hash___HashNode___next_item
};
410 trace
.prev
= tracehead
; tracehead
= &trace
;
411 trace
.file
= LOCATE_hash
;
412 tracehead
= trace
.prev
;
413 return ATTR_hash___HashNode____next_item( self
) /*HashNode::_next_item*/;
415 void hash___HashNode___next_item__eq(val_t self
, val_t param0
) {
416 struct trace_t trace
= {NULL
, NULL
, 224, LOCATE_hash___HashNode___next_item__eq
};
417 trace
.prev
= tracehead
; tracehead
= &trace
;
418 trace
.file
= LOCATE_hash
;
419 ATTR_hash___HashNode____next_item( self
) /*HashNode::_next_item*/ = param0
;
420 tracehead
= trace
.prev
;
423 val_t
hash___HashNode___prev_item(val_t self
) {
424 struct trace_t trace
= {NULL
, NULL
, 225, LOCATE_hash___HashNode___prev_item
};
425 trace
.prev
= tracehead
; tracehead
= &trace
;
426 trace
.file
= LOCATE_hash
;
427 tracehead
= trace
.prev
;
428 return ATTR_hash___HashNode____prev_item( self
) /*HashNode::_prev_item*/;
430 void hash___HashNode___prev_item__eq(val_t self
, val_t param0
) {
431 struct trace_t trace
= {NULL
, NULL
, 225, LOCATE_hash___HashNode___prev_item__eq
};
432 trace
.prev
= tracehead
; tracehead
= &trace
;
433 trace
.file
= LOCATE_hash
;
434 ATTR_hash___HashNode____prev_item( self
) /*HashNode::_prev_item*/ = param0
;
435 tracehead
= trace
.prev
;
438 void hash___HashNode___init(val_t self
, int* init_table
) {
439 struct trace_t trace
= {NULL
, NULL
, 0, LOCATE_hash___HashNode___init
};
440 trace
.prev
= tracehead
; tracehead
= &trace
;
441 trace
.file
= LOCATE_hash
;
442 tracehead
= trace
.prev
;
445 val_t
hash___HashMap___iterator(val_t self
) {
446 struct trace_t trace
= {NULL
, NULL
, 232, LOCATE_hash___HashMap___iterator
};
448 trace
.prev
= tracehead
; tracehead
= &trace
;
449 trace
.file
= LOCATE_hash
;
450 variable0
= NEW_HashMapIterator_hash___HashMapIterator___init( self
); /*new HashMapIterator[K, V]*/
452 return_label16
: while(false);
453 tracehead
= trace
.prev
;
456 val_t
hash___HashMap___first(val_t self
) {
457 struct trace_t trace
= {NULL
, NULL
, 234, LOCATE_hash___HashMap___first
};
459 trace
.prev
= tracehead
; tracehead
= &trace
;
460 trace
.file
= LOCATE_hash
;
461 variable0
= ATTR_hash___HashCollection____length( self
) /*HashCollection::_length*/;
462 variable0
= TAG_Bool(UNTAG_Int(variable0
)>UNTAG_Int( TAG_Int(0)));
463 if (!UNTAG_Bool(variable0
)) { fprintf(stderr
, "Assert%s failed", ""); fprintf(stderr
, " in %s (%s:%d)\n", LOCATE_hash___HashMap___first
, LOCATE_hash
, 236); nit_exit(1);}
464 variable0
= ATTR_hash___HashCollection____first_item( self
) /*HashCollection::_first_item*/;
465 variable0
= ((abstract_collection___Couple___second_t
)CALL(variable0
,COLOR_abstract_collection___Couple___second
))(variable0
) /*Couple::second*/;
467 return_label17
: while(false);
468 tracehead
= trace
.prev
;
471 val_t
hash___HashMap___is_empty(val_t self
) {
472 struct trace_t trace
= {NULL
, NULL
, 240, LOCATE_hash___HashMap___is_empty
};
474 trace
.prev
= tracehead
; tracehead
= &trace
;
475 trace
.file
= LOCATE_hash
;
476 variable0
= ATTR_hash___HashCollection____length( self
) /*HashCollection::_length*/;
477 variable0
= TAG_Bool((variable0
)==( TAG_Int(0)));
479 return_label18
: while(false);
480 tracehead
= trace
.prev
;
483 val_t
hash___HashMap___count(val_t self
, val_t param0
) {
484 struct trace_t trace
= {NULL
, NULL
, 242, LOCATE_hash___HashMap___count
};
491 trace
.prev
= tracehead
; tracehead
= &trace
;
492 trace
.file
= LOCATE_hash
;
494 variable1
= TAG_Int(0);
495 variable2
= TAG_Int(0);
496 while (true) { /*while*/
497 variable3
= ATTR_hash___HashCollection____capacity( self
) /*HashCollection::_capacity*/;
498 variable3
= TAG_Bool(UNTAG_Int( variable2
/*i*/)<UNTAG_Int(variable3
));
499 if (!UNTAG_Bool(variable3
)) break; /* while*/
500 variable4
= ATTR_hash___HashCollection____array( self
) /*HashCollection::_array*/;
501 variable4
= UNBOX_NativeArray(variable4
)[UNTAG_Int( variable2
/*i*/)];
502 variable3
= variable4
;
503 variable4
= TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable3
/*c*/ == NIT_NULL
/*null*/) || (( variable3
/*c*/ != NIT_NULL
) && ((((kernel___Object_____eqeq_t
)CALL( variable3
/*c*/,COLOR_kernel___Object_____eqeq
))==kernel___Object_____eqeq
)?
(IS_EQUAL_NN( variable3
/*c*/, NIT_NULL
/*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t
)CALL( variable3
/*c*/,COLOR_kernel___Object_____eqeq
))( variable3
/*c*/, NIT_NULL
/*null*/) /*Object::==*/)))))));
504 variable5
= variable4
;
505 if (UNTAG_Bool(variable5
)) { /* and */
506 variable5
= ((abstract_collection___Couple___second_t
)CALL( variable3
/*c*/,COLOR_abstract_collection___Couple___second
))( variable3
/*c*/) /*Couple::second*/;
507 variable5
= TAG_Bool((variable5
== variable0
/*item*/) || ((variable5
!= NIT_NULL
) && ((((kernel___Object_____eqeq_t
)CALL(variable5
,COLOR_kernel___Object_____eqeq
))==kernel___Object_____eqeq
)?
(IS_EQUAL_NN(variable5
, variable0
/*item*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t
)CALL(variable5
,COLOR_kernel___Object_____eqeq
))(variable5
, variable0
/*item*/) /*Object::==*/)))));
509 variable4
= variable5
;
510 if (UNTAG_Bool(variable4
)) { /*if*/
511 variable1
= TAG_Int(UNTAG_Int(variable1
)+UNTAG_Int( TAG_Int(1))) /*nb*/;
513 variable2
= TAG_Int(UNTAG_Int(variable2
)+UNTAG_Int( TAG_Int(1))) /*i*/;
514 continue_20
: while(0);
517 variable1
= variable1
/*nb*/;
519 return_label19
: while(false);
520 tracehead
= trace
.prev
;
523 val_t
hash___HashMap___has(val_t self
, val_t param0
) {
524 struct trace_t trace
= {NULL
, NULL
, 254, LOCATE_hash___HashMap___has
};
530 trace
.prev
= tracehead
; tracehead
= &trace
;
531 trace
.file
= LOCATE_hash
;
533 variable1
= TAG_Int(0);
534 while (true) { /*while*/
535 variable2
= ATTR_hash___HashCollection____capacity( self
) /*HashCollection::_capacity*/;
536 variable2
= TAG_Bool(UNTAG_Int( variable1
/*i*/)<UNTAG_Int(variable2
));
537 if (!UNTAG_Bool(variable2
)) break; /* while*/
538 variable3
= ATTR_hash___HashCollection____array( self
) /*HashCollection::_array*/;
539 variable3
= UNBOX_NativeArray(variable3
)[UNTAG_Int( variable1
/*i*/)];
540 variable2
= variable3
;
541 variable3
= TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable2
/*c*/ == NIT_NULL
/*null*/) || (( variable2
/*c*/ != NIT_NULL
) && ((((kernel___Object_____eqeq_t
)CALL( variable2
/*c*/,COLOR_kernel___Object_____eqeq
))==kernel___Object_____eqeq
)?
(IS_EQUAL_NN( variable2
/*c*/, NIT_NULL
/*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t
)CALL( variable2
/*c*/,COLOR_kernel___Object_____eqeq
))( variable2
/*c*/, NIT_NULL
/*null*/) /*Object::==*/)))))));
542 variable4
= variable3
;
543 if (UNTAG_Bool(variable4
)) { /* and */
544 variable4
= ((abstract_collection___Couple___second_t
)CALL( variable2
/*c*/,COLOR_abstract_collection___Couple___second
))( variable2
/*c*/) /*Couple::second*/;
545 variable4
= TAG_Bool((variable4
== variable0
/*item*/) || ((variable4
!= NIT_NULL
) && ((((kernel___Object_____eqeq_t
)CALL(variable4
,COLOR_kernel___Object_____eqeq
))==kernel___Object_____eqeq
)?
(IS_EQUAL_NN(variable4
, variable0
/*item*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t
)CALL(variable4
,COLOR_kernel___Object_____eqeq
))(variable4
, variable0
/*item*/) /*Object::==*/)))));
547 variable3
= variable4
;
548 if (UNTAG_Bool(variable3
)) { /*if*/
549 variable1
= TAG_Bool(true);
552 variable1
= TAG_Int(UNTAG_Int(variable1
)+UNTAG_Int( TAG_Int(1))) /*i*/;
553 continue_22
: while(0);
556 variable1
= TAG_Bool(false);
558 return_label21
: while(false);
559 tracehead
= trace
.prev
;
562 val_t
hash___HashMap___has_only(val_t self
, val_t param0
) {
563 struct trace_t trace
= {NULL
, NULL
, 265, LOCATE_hash___HashMap___has_only
};
569 trace
.prev
= tracehead
; tracehead
= &trace
;
570 trace
.file
= LOCATE_hash
;
572 variable1
= TAG_Int(0);
573 while (true) { /*while*/
574 variable2
= ATTR_hash___HashCollection____capacity( self
) /*HashCollection::_capacity*/;
575 variable2
= TAG_Bool(UNTAG_Int( variable1
/*i*/)<UNTAG_Int(variable2
));
576 if (!UNTAG_Bool(variable2
)) break; /* while*/
577 variable3
= ATTR_hash___HashCollection____array( self
) /*HashCollection::_array*/;
578 variable3
= UNBOX_NativeArray(variable3
)[UNTAG_Int( variable1
/*i*/)];
579 variable2
= variable3
;
580 variable3
= TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable2
/*c*/ == NIT_NULL
/*null*/) || (( variable2
/*c*/ != NIT_NULL
) && ((((kernel___Object_____eqeq_t
)CALL( variable2
/*c*/,COLOR_kernel___Object_____eqeq
))==kernel___Object_____eqeq
)?
(IS_EQUAL_NN( variable2
/*c*/, NIT_NULL
/*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t
)CALL( variable2
/*c*/,COLOR_kernel___Object_____eqeq
))( variable2
/*c*/, NIT_NULL
/*null*/) /*Object::==*/)))))));
581 variable4
= variable3
;
582 if (UNTAG_Bool(variable4
)) { /* and */
583 variable4
= ((abstract_collection___Couple___second_t
)CALL( variable2
/*c*/,COLOR_abstract_collection___Couple___second
))( variable2
/*c*/) /*Couple::second*/;
584 variable4
= TAG_Bool(!UNTAG_Bool(TAG_Bool((variable4
== variable0
/*item*/) || ((variable4
!= NIT_NULL
) && ((((kernel___Object_____eqeq_t
)CALL(variable4
,COLOR_kernel___Object_____eqeq
))==kernel___Object_____eqeq
)?
(IS_EQUAL_NN(variable4
, variable0
/*item*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t
)CALL(variable4
,COLOR_kernel___Object_____eqeq
))(variable4
, variable0
/*item*/) /*Object::==*/)))))));
586 variable3
= variable4
;
587 if (UNTAG_Bool(variable3
)) { /*if*/
588 variable1
= TAG_Bool(false);
591 variable1
= TAG_Int(UNTAG_Int(variable1
)+UNTAG_Int( TAG_Int(1))) /*i*/;
592 continue_24
: while(0);
595 variable1
= TAG_Bool(true);
597 return_label23
: while(false);
598 tracehead
= trace
.prev
;
601 void hash___HashMap_____braeq(val_t self
, val_t param0
, val_t param1
) {
602 struct trace_t trace
= {NULL
, NULL
, 276, LOCATE_hash___HashMap_____braeq
};
608 trace
.prev
= tracehead
; tracehead
= &trace
;
609 trace
.file
= LOCATE_hash
;
612 variable2
= TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0
/*key*/ == NIT_NULL
/*null*/) || (( variable0
/*key*/ != NIT_NULL
) && ((((kernel___Object_____eqeq_t
)CALL( variable0
/*key*/,COLOR_kernel___Object_____eqeq
))==kernel___Object_____eqeq
)?
(IS_EQUAL_NN( variable0
/*key*/, NIT_NULL
/*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t
)CALL( variable0
/*key*/,COLOR_kernel___Object_____eqeq
))( variable0
/*key*/, NIT_NULL
/*null*/) /*Object::==*/)))))));
613 if (!UNTAG_Bool(variable2
)) { fprintf(stderr
, "Assert%s failed", ""); fprintf(stderr
, " in %s (%s:%d)\n", LOCATE_hash___HashMap_____braeq
, LOCATE_hash
, 278); nit_exit(1);}
614 variable3
= ((hash___HashCollection___index_at_t
)CALL( self
,COLOR_hash___HashCollection___index_at
))( self
, variable0
/*key*/) /*HashCollection::index_at*/;
615 variable2
= variable3
;
616 variable4
= ATTR_hash___HashCollection____array( self
) /*HashCollection::_array*/;
617 variable4
= UNBOX_NativeArray(variable4
)[UNTAG_Int( variable2
/*i*/)];
618 variable3
= variable4
;
619 variable4
= TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable3
/*c*/ == NIT_NULL
/*null*/) || (( variable3
/*c*/ != NIT_NULL
) && ((((kernel___Object_____eqeq_t
)CALL( variable3
/*c*/,COLOR_kernel___Object_____eqeq
))==kernel___Object_____eqeq
)?
(IS_EQUAL_NN( variable3
/*c*/, NIT_NULL
/*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t
)CALL( variable3
/*c*/,COLOR_kernel___Object_____eqeq
))( variable3
/*c*/, NIT_NULL
/*null*/) /*Object::==*/)))))));
620 if (UNTAG_Bool(variable4
)) { /*if*/
621 ((abstract_collection___Couple___first__eq_t
)CALL( variable3
/*c*/,COLOR_abstract_collection___Couple___first__eq
))( variable3
/*c*/, variable0
/*key*/) /*Couple::first=*/;
622 ((abstract_collection___Couple___second__eq_t
)CALL( variable3
/*c*/,COLOR_abstract_collection___Couple___second__eq
))( variable3
/*c*/, variable1
/*v*/) /*Couple::second=*/;
624 variable4
= NEW_HashMapNode_hash___HashMapNode___init( variable0
/*key*/, variable1
/*v*/); /*new HashMapNode[K, V]*/
625 ((hash___HashCollection___store_t
)CALL( self
,COLOR_hash___HashCollection___store
))( self
, variable2
/*i*/, variable4
) /*HashCollection::store*/;
627 tracehead
= trace
.prev
;
630 void hash___HashMap___remove(val_t self
, val_t param0
) {
631 struct trace_t trace
= {NULL
, NULL
, 289, LOCATE_hash___HashMap___remove
};
637 trace
.prev
= tracehead
; tracehead
= &trace
;
638 trace
.file
= LOCATE_hash
;
640 variable1
= TAG_Int(0);
641 while (true) { /*while*/
642 variable2
= ATTR_hash___HashCollection____capacity( self
) /*HashCollection::_capacity*/;
643 variable2
= TAG_Bool(UNTAG_Int( variable1
/*i*/)<UNTAG_Int(variable2
));
644 if (!UNTAG_Bool(variable2
)) break; /* while*/
645 variable3
= ATTR_hash___HashCollection____array( self
) /*HashCollection::_array*/;
646 variable3
= UNBOX_NativeArray(variable3
)[UNTAG_Int( variable1
/*i*/)];
647 variable2
= variable3
;
648 variable3
= TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable2
/*c*/ == NIT_NULL
/*null*/) || (( variable2
/*c*/ != NIT_NULL
) && ((((kernel___Object_____eqeq_t
)CALL( variable2
/*c*/,COLOR_kernel___Object_____eqeq
))==kernel___Object_____eqeq
)?
(IS_EQUAL_NN( variable2
/*c*/, NIT_NULL
/*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t
)CALL( variable2
/*c*/,COLOR_kernel___Object_____eqeq
))( variable2
/*c*/, NIT_NULL
/*null*/) /*Object::==*/)))))));
649 variable4
= variable3
;
650 if (UNTAG_Bool(variable4
)) { /* and */
651 variable4
= ((abstract_collection___Couple___second_t
)CALL( variable2
/*c*/,COLOR_abstract_collection___Couple___second
))( variable2
/*c*/) /*Couple::second*/;
652 variable4
= TAG_Bool((variable4
== variable0
/*item*/) || ((variable4
!= NIT_NULL
) && ((((kernel___Object_____eqeq_t
)CALL(variable4
,COLOR_kernel___Object_____eqeq
))==kernel___Object_____eqeq
)?
(IS_EQUAL_NN(variable4
, variable0
/*item*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t
)CALL(variable4
,COLOR_kernel___Object_____eqeq
))(variable4
, variable0
/*item*/) /*Object::==*/)))));
654 variable3
= variable4
;
655 if (UNTAG_Bool(variable3
)) { /*if*/
656 ((hash___HashCollection___remove_index_t
)CALL( self
,COLOR_hash___HashCollection___remove_index
))( self
, variable1
/*i*/) /*HashCollection::remove_index*/;
659 variable1
= TAG_Int(UNTAG_Int(variable1
)+UNTAG_Int( TAG_Int(1))) /*i*/;
660 continue_27
: while(0);
663 return_label26
: while(false);
664 tracehead
= trace
.prev
;
667 void hash___HashMap___remove_at(val_t self
, val_t param0
) {
668 struct trace_t trace
= {NULL
, NULL
, 302, LOCATE_hash___HashMap___remove_at
};
671 trace
.prev
= tracehead
; tracehead
= &trace
;
672 trace
.file
= LOCATE_hash
;
674 variable1
= ((hash___HashCollection___index_at_t
)CALL( self
,COLOR_hash___HashCollection___index_at
))( self
, variable0
/*key*/) /*HashCollection::index_at*/;
675 ((hash___HashCollection___remove_index_t
)CALL( self
,COLOR_hash___HashCollection___remove_index
))( self
, variable1
) /*HashCollection::remove_index*/;
676 tracehead
= trace
.prev
;
679 void hash___HashMap___clear(val_t self
) {
680 struct trace_t trace
= {NULL
, NULL
, 304, LOCATE_hash___HashMap___clear
};
681 trace
.prev
= tracehead
; tracehead
= &trace
;
682 trace
.file
= LOCATE_hash
;
683 ((hash___HashCollection___raz_t
)CALL( self
,COLOR_hash___HashCollection___raz
))( self
) /*HashCollection::raz*/;
684 tracehead
= trace
.prev
;
687 val_t
hash___HashMap___couple_at(val_t self
, val_t param0
) {
688 struct trace_t trace
= {NULL
, NULL
, 306, LOCATE_hash___HashMap___couple_at
};
692 trace
.prev
= tracehead
; tracehead
= &trace
;
693 trace
.file
= LOCATE_hash
;
695 variable1
= ATTR_hash___HashCollection____array( self
) /*HashCollection::_array*/;
696 variable2
= ((hash___HashCollection___index_at_t
)CALL( self
,COLOR_hash___HashCollection___index_at
))( self
, variable0
/*key*/) /*HashCollection::index_at*/;
697 variable1
= UNBOX_NativeArray(variable1
)[UNTAG_Int(variable2
)];
699 return_label30
: while(false);
700 tracehead
= trace
.prev
;
703 void hash___HashMap___init(val_t self
, int* init_table
) {
704 struct trace_t trace
= {NULL
, NULL
, 308, LOCATE_hash___HashMap___init
};
705 trace
.prev
= tracehead
; tracehead
= &trace
;
706 trace
.file
= LOCATE_hash
;
707 if (init_table
[VAL2OBJ( self
)->vft
[INIT_TABLE_POS_HashMap
].i
]) return;
708 ATTR_hash___HashCollection____capacity( self
) /*HashCollection::_capacity*/ = TAG_Int(0);
709 ATTR_hash___HashCollection____length( self
) /*HashCollection::_length*/ = TAG_Int(0);
710 ((hash___HashCollection___enlarge_t
)CALL( self
,COLOR_hash___HashCollection___enlarge
))( self
, TAG_Int(0)) /*HashCollection::enlarge*/;
711 init_table
[VAL2OBJ( self
)->vft
[INIT_TABLE_POS_HashMap
].i
] = 1;
712 tracehead
= trace
.prev
;
715 val_t
hash___HashMapNode___key(val_t self
) {
716 struct trace_t trace
= {NULL
, NULL
, 319, LOCATE_hash___HashMapNode___key
};
718 trace
.prev
= tracehead
; tracehead
= &trace
;
719 trace
.file
= LOCATE_hash
;
720 variable0
= ((abstract_collection___Couple___first_t
)CALL( self
,COLOR_abstract_collection___Couple___first
))( self
) /*Couple::first*/;
722 return_label32
: while(false);
723 tracehead
= trace
.prev
;
726 void hash___HashMapNode___init(val_t self
, val_t param0
, val_t param1
, int* init_table
) {
727 struct trace_t trace
= {NULL
, NULL
, 322, LOCATE_hash___HashMapNode___init
};
730 trace
.prev
= tracehead
; tracehead
= &trace
;
731 trace
.file
= LOCATE_hash
;
734 if (init_table
[VAL2OBJ( self
)->vft
[INIT_TABLE_POS_HashMapNode
].i
]) return;
735 ((abstract_collection___Couple___first__eq_t
)CALL( self
,COLOR_abstract_collection___Couple___first__eq
))( self
, variable0
/*k*/) /*Couple::first=*/;
736 ((abstract_collection___Couple___second__eq_t
)CALL( self
,COLOR_abstract_collection___Couple___second__eq
))( self
, variable1
/*v*/) /*Couple::second=*/;
737 init_table
[VAL2OBJ( self
)->vft
[INIT_TABLE_POS_HashMapNode
].i
] = 1;
738 tracehead
= trace
.prev
;
741 val_t
hash___HashMapIterator___is_ok(val_t self
) {
742 struct trace_t trace
= {NULL
, NULL
, 331, LOCATE_hash___HashMapIterator___is_ok
};
744 trace
.prev
= tracehead
; tracehead
= &trace
;
745 trace
.file
= LOCATE_hash
;
746 variable0
= ATTR_hash___HashMapIterator____node( self
) /*HashMapIterator::_node*/;
747 variable0
= TAG_Bool(!UNTAG_Bool(TAG_Bool((variable0
== NIT_NULL
/*null*/) || ((variable0
!= NIT_NULL
) && ((((kernel___Object_____eqeq_t
)CALL(variable0
,COLOR_kernel___Object_____eqeq
))==kernel___Object_____eqeq
)?
(IS_EQUAL_NN(variable0
, NIT_NULL
/*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t
)CALL(variable0
,COLOR_kernel___Object_____eqeq
))(variable0
, NIT_NULL
/*null*/) /*Object::==*/)))))));
749 return_label34
: while(false);
750 tracehead
= trace
.prev
;
753 val_t
hash___HashMapIterator___item(val_t self
) {
754 struct trace_t trace
= {NULL
, NULL
, 333, LOCATE_hash___HashMapIterator___item
};
756 trace
.prev
= tracehead
; tracehead
= &trace
;
757 trace
.file
= LOCATE_hash
;
758 variable0
= ((hash___HashMapIterator___is_ok_t
)CALL( self
,COLOR_abstract_collection___Iterator___is_ok
))( self
) /*HashMapIterator::is_ok*/;
759 if (!UNTAG_Bool(variable0
)) { fprintf(stderr
, "Assert%s failed", ""); fprintf(stderr
, " in %s (%s:%d)\n", LOCATE_hash___HashMapIterator___item
, LOCATE_hash
, 335); nit_exit(1);}
760 variable0
= ATTR_hash___HashMapIterator____node( self
) /*HashMapIterator::_node*/;
761 variable0
= ((abstract_collection___Couple___second_t
)CALL(variable0
,COLOR_abstract_collection___Couple___second
))(variable0
) /*Couple::second*/;
763 return_label35
: while(false);
764 tracehead
= trace
.prev
;
767 void hash___HashMapIterator___item__eq(val_t self
, val_t param0
) {
768 struct trace_t trace
= {NULL
, NULL
, 339, LOCATE_hash___HashMapIterator___item__eq
};
771 trace
.prev
= tracehead
; tracehead
= &trace
;
772 trace
.file
= LOCATE_hash
;
774 variable1
= ((hash___HashMapIterator___is_ok_t
)CALL( self
,COLOR_abstract_collection___Iterator___is_ok
))( self
) /*HashMapIterator::is_ok*/;
775 if (!UNTAG_Bool(variable1
)) { fprintf(stderr
, "Assert%s failed", ""); fprintf(stderr
, " in %s (%s:%d)\n", LOCATE_hash___HashMapIterator___item__eq
, LOCATE_hash
, 341); nit_exit(1);}
776 variable1
= ATTR_hash___HashMapIterator____node( self
) /*HashMapIterator::_node*/;
777 ((abstract_collection___Couple___second__eq_t
)CALL(variable1
,COLOR_abstract_collection___Couple___second__eq
))(variable1
, variable0
/*value*/) /*Couple::second=*/;
778 tracehead
= trace
.prev
;
781 val_t
hash___HashMapIterator___key(val_t self
) {
782 struct trace_t trace
= {NULL
, NULL
, 345, LOCATE_hash___HashMapIterator___key
};
784 trace
.prev
= tracehead
; tracehead
= &trace
;
785 trace
.file
= LOCATE_hash
;
786 variable0
= ((hash___HashMapIterator___is_ok_t
)CALL( self
,COLOR_abstract_collection___Iterator___is_ok
))( self
) /*HashMapIterator::is_ok*/;
787 if (!UNTAG_Bool(variable0
)) { fprintf(stderr
, "Assert%s failed", ""); fprintf(stderr
, " in %s (%s:%d)\n", LOCATE_hash___HashMapIterator___key
, LOCATE_hash
, 347); nit_exit(1);}
788 variable0
= ATTR_hash___HashMapIterator____node( self
) /*HashMapIterator::_node*/;
789 variable0
= ((abstract_collection___Couple___first_t
)CALL(variable0
,COLOR_abstract_collection___Couple___first
))(variable0
) /*Couple::first*/;
791 return_label37
: while(false);
792 tracehead
= trace
.prev
;
795 void hash___HashMapIterator___next(val_t self
) {
796 struct trace_t trace
= {NULL
, NULL
, 351, LOCATE_hash___HashMapIterator___next
};
798 trace
.prev
= tracehead
; tracehead
= &trace
;
799 trace
.file
= LOCATE_hash
;
800 variable0
= ((hash___HashMapIterator___is_ok_t
)CALL( self
,COLOR_abstract_collection___Iterator___is_ok
))( self
) /*HashMapIterator::is_ok*/;
801 if (!UNTAG_Bool(variable0
)) { fprintf(stderr
, "Assert%s failed", ""); fprintf(stderr
, " in %s (%s:%d)\n", LOCATE_hash___HashMapIterator___next
, LOCATE_hash
, 353); nit_exit(1);}
802 variable0
= ATTR_hash___HashMapIterator____node( self
) /*HashMapIterator::_node*/;
803 variable0
= ((hash___HashNode___next_item_t
)CALL(variable0
,COLOR_hash___HashNode___next_item
))(variable0
) /*HashNode::next_item*/;
804 ATTR_hash___HashMapIterator____node( self
) /*HashMapIterator::_node*/ = variable0
;
805 tracehead
= trace
.prev
;
808 void hash___HashMapIterator___init(val_t self
, val_t param0
, int* init_table
) {
809 struct trace_t trace
= {NULL
, NULL
, 363, LOCATE_hash___HashMapIterator___init
};
812 trace
.prev
= tracehead
; tracehead
= &trace
;
813 trace
.file
= LOCATE_hash
;
815 if (init_table
[VAL2OBJ( self
)->vft
[INIT_TABLE_POS_HashMapIterator
].i
]) return;
816 ATTR_hash___HashMapIterator____map( self
) /*HashMapIterator::_map*/ = variable0
/*map*/;
817 variable1
= ((hash___HashCollection___first_item_t
)CALL( variable0
/*map*/,COLOR_hash___HashCollection___first_item
))( variable0
/*map*/) /*HashCollection::first_item*/;
818 ATTR_hash___HashMapIterator____node( self
) /*HashMapIterator::_node*/ = variable1
;
819 init_table
[VAL2OBJ( self
)->vft
[INIT_TABLE_POS_HashMapIterator
].i
] = 1;
820 tracehead
= trace
.prev
;
823 val_t
hash___HashSet___is_empty(val_t self
) {
824 struct trace_t trace
= {NULL
, NULL
, 374, LOCATE_hash___HashSet___is_empty
};
826 trace
.prev
= tracehead
; tracehead
= &trace
;
827 trace
.file
= LOCATE_hash
;
828 variable0
= ATTR_hash___HashCollection____length( self
) /*HashCollection::_length*/;
829 variable0
= TAG_Bool((variable0
)==( TAG_Int(0)));
831 return_label40
: while(false);
832 tracehead
= trace
.prev
;
835 val_t
hash___HashSet___first(val_t self
) {
836 struct trace_t trace
= {NULL
, NULL
, 376, LOCATE_hash___HashSet___first
};
838 trace
.prev
= tracehead
; tracehead
= &trace
;
839 trace
.file
= LOCATE_hash
;
840 variable0
= ATTR_hash___HashCollection____length( self
) /*HashCollection::_length*/;
841 variable0
= TAG_Bool(UNTAG_Int(variable0
)>UNTAG_Int( TAG_Int(0)));
842 if (!UNTAG_Bool(variable0
)) { fprintf(stderr
, "Assert%s failed", ""); fprintf(stderr
, " in %s (%s:%d)\n", LOCATE_hash___HashSet___first
, LOCATE_hash
, 378); nit_exit(1);}
843 variable0
= ATTR_hash___HashCollection____first_item( self
) /*HashCollection::_first_item*/;
844 variable0
= ((hash___HashSetNode___key_t
)CALL(variable0
,COLOR_hash___HashNode___key
))(variable0
) /*HashSetNode::key*/;
846 return_label41
: while(false);
847 tracehead
= trace
.prev
;
850 val_t
hash___HashSet___has(val_t self
, val_t param0
) {
851 struct trace_t trace
= {NULL
, NULL
, 382, LOCATE_hash___HashSet___has
};
855 trace
.prev
= tracehead
; tracehead
= &trace
;
856 trace
.file
= LOCATE_hash
;
858 variable1
= ATTR_hash___HashCollection____array( self
) /*HashCollection::_array*/;
859 variable2
= ((hash___HashCollection___index_at_t
)CALL( self
,COLOR_hash___HashCollection___index_at
))( self
, variable0
/*item*/) /*HashCollection::index_at*/;
860 variable1
= UNBOX_NativeArray(variable1
)[UNTAG_Int(variable2
)];
861 variable1
= TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1
== NIT_NULL
/*null*/) || ((variable1
!= NIT_NULL
) && ((((kernel___Object_____eqeq_t
)CALL(variable1
,COLOR_kernel___Object_____eqeq
))==kernel___Object_____eqeq
)?
(IS_EQUAL_NN(variable1
, NIT_NULL
/*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t
)CALL(variable1
,COLOR_kernel___Object_____eqeq
))(variable1
, NIT_NULL
/*null*/) /*Object::==*/)))))));
863 return_label42
: while(false);
864 tracehead
= trace
.prev
;
867 void hash___HashSet___add(val_t self
, val_t param0
) {
868 struct trace_t trace
= {NULL
, NULL
, 387, LOCATE_hash___HashSet___add
};
873 trace
.prev
= tracehead
; tracehead
= &trace
;
874 trace
.file
= LOCATE_hash
;
876 variable2
= ((hash___HashCollection___index_at_t
)CALL( self
,COLOR_hash___HashCollection___index_at
))( self
, variable0
/*item*/) /*HashCollection::index_at*/;
877 variable1
= variable2
;
878 variable3
= ATTR_hash___HashCollection____array( self
) /*HashCollection::_array*/;
879 variable3
= UNBOX_NativeArray(variable3
)[UNTAG_Int( variable1
/*i*/)];
880 variable2
= variable3
;
881 variable3
= TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable2
/*c*/ == NIT_NULL
/*null*/) || (( variable2
/*c*/ != NIT_NULL
) && ((((kernel___Object_____eqeq_t
)CALL( variable2
/*c*/,COLOR_kernel___Object_____eqeq
))==kernel___Object_____eqeq
)?
(IS_EQUAL_NN( variable2
/*c*/, NIT_NULL
/*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t
)CALL( variable2
/*c*/,COLOR_kernel___Object_____eqeq
))( variable2
/*c*/, NIT_NULL
/*null*/) /*Object::==*/)))))));
882 if (UNTAG_Bool(variable3
)) { /*if*/
883 ((hash___HashSetNode___key__eq_t
)CALL( variable2
/*c*/,COLOR_hash___HashSetNode___key__eq
))( variable2
/*c*/, variable0
/*item*/) /*HashSetNode::key=*/;
885 variable3
= NEW_HashSetNode_hash___HashSetNode___init( variable0
/*item*/); /*new HashSetNode[E]*/
886 ((hash___HashCollection___store_t
)CALL( self
,COLOR_hash___HashCollection___store
))( self
, variable1
/*i*/, variable3
) /*HashCollection::store*/;
888 tracehead
= trace
.prev
;
891 void hash___HashSet___remove(val_t self
, val_t param0
) {
892 struct trace_t trace
= {NULL
, NULL
, 398, LOCATE_hash___HashSet___remove
};
895 trace
.prev
= tracehead
; tracehead
= &trace
;
896 trace
.file
= LOCATE_hash
;
898 variable1
= ((hash___HashCollection___index_at_t
)CALL( self
,COLOR_hash___HashCollection___index_at
))( self
, variable0
/*item*/) /*HashCollection::index_at*/;
899 ((hash___HashCollection___remove_index_t
)CALL( self
,COLOR_hash___HashCollection___remove_index
))( self
, variable1
) /*HashCollection::remove_index*/;
900 tracehead
= trace
.prev
;
903 void hash___HashSet___clear(val_t self
) {
904 struct trace_t trace
= {NULL
, NULL
, 400, LOCATE_hash___HashSet___clear
};
905 trace
.prev
= tracehead
; tracehead
= &trace
;
906 trace
.file
= LOCATE_hash
;
907 ((hash___HashCollection___raz_t
)CALL( self
,COLOR_hash___HashCollection___raz
))( self
) /*HashCollection::raz*/;
908 tracehead
= trace
.prev
;
911 val_t
hash___HashSet___iterator(val_t self
) {
912 struct trace_t trace
= {NULL
, NULL
, 402, LOCATE_hash___HashSet___iterator
};
914 trace
.prev
= tracehead
; tracehead
= &trace
;
915 trace
.file
= LOCATE_hash
;
916 variable0
= NEW_HashSetIterator_hash___HashSetIterator___init( self
); /*new HashSetIterator[E]*/
918 return_label46
: while(false);
919 tracehead
= trace
.prev
;
922 void hash___HashSet___init(val_t self
, int* init_table
) {
923 struct trace_t trace
= {NULL
, NULL
, 404, LOCATE_hash___HashSet___init
};
924 trace
.prev
= tracehead
; tracehead
= &trace
;
925 trace
.file
= LOCATE_hash
;
926 if (init_table
[VAL2OBJ( self
)->vft
[INIT_TABLE_POS_HashSet
].i
]) return;
927 ATTR_hash___HashCollection____capacity( self
) /*HashCollection::_capacity*/ = TAG_Int(0);
928 ATTR_hash___HashCollection____length( self
) /*HashCollection::_length*/ = TAG_Int(0);
929 ((hash___HashCollection___enlarge_t
)CALL( self
,COLOR_hash___HashCollection___enlarge
))( self
, TAG_Int(0)) /*HashCollection::enlarge*/;
930 init_table
[VAL2OBJ( self
)->vft
[INIT_TABLE_POS_HashSet
].i
] = 1;
931 tracehead
= trace
.prev
;
934 val_t
hash___HashSetNode___key(val_t self
) {
935 struct trace_t trace
= {NULL
, NULL
, 416, LOCATE_hash___HashSetNode___key
};
936 trace
.prev
= tracehead
; tracehead
= &trace
;
937 trace
.file
= LOCATE_hash
;
938 tracehead
= trace
.prev
;
939 return ATTR_hash___HashSetNode____key( self
) /*HashSetNode::_key*/;
941 void hash___HashSetNode___key__eq(val_t self
, val_t param0
) {
942 struct trace_t trace
= {NULL
, NULL
, 416, LOCATE_hash___HashSetNode___key__eq
};
943 trace
.prev
= tracehead
; tracehead
= &trace
;
944 trace
.file
= LOCATE_hash
;
945 ATTR_hash___HashSetNode____key( self
) /*HashSetNode::_key*/ = param0
;
946 tracehead
= trace
.prev
;
949 void hash___HashSetNode___init(val_t self
, val_t param0
, int* init_table
) {
950 struct trace_t trace
= {NULL
, NULL
, 418, LOCATE_hash___HashSetNode___init
};
952 trace
.prev
= tracehead
; tracehead
= &trace
;
953 trace
.file
= LOCATE_hash
;
955 if (init_table
[VAL2OBJ( self
)->vft
[INIT_TABLE_POS_HashSetNode
].i
]) return;
956 ATTR_hash___HashSetNode____key( self
) /*HashSetNode::_key*/ = variable0
/*e*/;
957 init_table
[VAL2OBJ( self
)->vft
[INIT_TABLE_POS_HashSetNode
].i
] = 1;
958 tracehead
= trace
.prev
;
961 val_t
hash___HashSetIterator___is_ok(val_t self
) {
962 struct trace_t trace
= {NULL
, NULL
, 426, LOCATE_hash___HashSetIterator___is_ok
};
964 trace
.prev
= tracehead
; tracehead
= &trace
;
965 trace
.file
= LOCATE_hash
;
966 variable0
= ATTR_hash___HashSetIterator____node( self
) /*HashSetIterator::_node*/;
967 variable0
= TAG_Bool(!UNTAG_Bool(TAG_Bool((variable0
== NIT_NULL
/*null*/) || ((variable0
!= NIT_NULL
) && ((((kernel___Object_____eqeq_t
)CALL(variable0
,COLOR_kernel___Object_____eqeq
))==kernel___Object_____eqeq
)?
(IS_EQUAL_NN(variable0
, NIT_NULL
/*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t
)CALL(variable0
,COLOR_kernel___Object_____eqeq
))(variable0
, NIT_NULL
/*null*/) /*Object::==*/)))))));
969 return_label49
: while(false);
970 tracehead
= trace
.prev
;
973 val_t
hash___HashSetIterator___item(val_t self
) {
974 struct trace_t trace
= {NULL
, NULL
, 428, LOCATE_hash___HashSetIterator___item
};
976 trace
.prev
= tracehead
; tracehead
= &trace
;
977 trace
.file
= LOCATE_hash
;
978 variable0
= ((hash___HashSetIterator___is_ok_t
)CALL( self
,COLOR_abstract_collection___Iterator___is_ok
))( self
) /*HashSetIterator::is_ok*/;
979 if (!UNTAG_Bool(variable0
)) { fprintf(stderr
, "Assert%s failed", ""); fprintf(stderr
, " in %s (%s:%d)\n", LOCATE_hash___HashSetIterator___item
, LOCATE_hash
, 430); nit_exit(1);}
980 variable0
= ATTR_hash___HashSetIterator____node( self
) /*HashSetIterator::_node*/;
981 variable0
= ((hash___HashSetNode___key_t
)CALL(variable0
,COLOR_hash___HashNode___key
))(variable0
) /*HashSetNode::key*/;
983 return_label50
: while(false);
984 tracehead
= trace
.prev
;
987 void hash___HashSetIterator___next(val_t self
) {
988 struct trace_t trace
= {NULL
, NULL
, 434, LOCATE_hash___HashSetIterator___next
};
990 trace
.prev
= tracehead
; tracehead
= &trace
;
991 trace
.file
= LOCATE_hash
;
992 variable0
= ((hash___HashSetIterator___is_ok_t
)CALL( self
,COLOR_abstract_collection___Iterator___is_ok
))( self
) /*HashSetIterator::is_ok*/;
993 if (!UNTAG_Bool(variable0
)) { fprintf(stderr
, "Assert%s failed", ""); fprintf(stderr
, " in %s (%s:%d)\n", LOCATE_hash___HashSetIterator___next
, LOCATE_hash
, 436); nit_exit(1);}
994 variable0
= ATTR_hash___HashSetIterator____node( self
) /*HashSetIterator::_node*/;
995 variable0
= ((hash___HashNode___next_item_t
)CALL(variable0
,COLOR_hash___HashNode___next_item
))(variable0
) /*HashNode::next_item*/;
996 ATTR_hash___HashSetIterator____node( self
) /*HashSetIterator::_node*/ = variable0
;
997 tracehead
= trace
.prev
;
1000 void hash___HashSetIterator___init(val_t self
, val_t param0
, int* init_table
) {
1001 struct trace_t trace
= {NULL
, NULL
, 446, LOCATE_hash___HashSetIterator___init
};
1004 trace
.prev
= tracehead
; tracehead
= &trace
;
1005 trace
.file
= LOCATE_hash
;
1007 if (init_table
[VAL2OBJ( self
)->vft
[INIT_TABLE_POS_HashSetIterator
].i
]) return;
1008 ATTR_hash___HashSetIterator____set( self
) /*HashSetIterator::_set*/ = variable0
/*set*/;
1009 variable1
= ((hash___HashCollection___first_item_t
)CALL( variable0
/*set*/,COLOR_hash___HashCollection___first_item
))( variable0
/*set*/) /*HashCollection::first_item*/;
1010 ATTR_hash___HashSetIterator____node( self
) /*HashSetIterator::_node*/ = variable1
;
1011 init_table
[VAL2OBJ( self
)->vft
[INIT_TABLE_POS_HashSetIterator
].i
] = 1;
1012 tracehead
= trace
.prev
;