2 val_t
hash___Object___hash(val_t self
) {
3 struct trace_t trace
= {NULL
, "hash::Object::hash (bin/../lib/standard//hash.nit:21,2--25:39)"};
5 trace
.prev
= tracehead
; tracehead
= &trace
;
6 variable0
= TAG_Int((int) self
);
7 variable0
= TAG_Int(UNTAG_Int(variable0
)/UNTAG_Int( TAG_Int(8)));
9 return_label0
: while(false);
10 tracehead
= trace
.prev
;
13 val_t
hash___String___hash(val_t self
) {
14 struct trace_t trace
= {NULL
, "hash::String::hash (bin/../lib/standard//hash.nit:29,2--39:10)"};
20 trace
.prev
= tracehead
; tracehead
= &trace
;
21 variable0
= TAG_Int(5381);
22 variable2
= ATTR_array___AbstractArray____length( self
) /*String::_length*/;
23 variable2
= TAG_Int(UNTAG_Int(variable2
)-UNTAG_Int( TAG_Int(1)));
24 variable1
= variable2
;
25 variable3
= ATTR_string___String____items( self
) /*String::_items*/;
26 variable2
= variable3
;
27 while (true) { /*while*/
28 variable3
= TAG_Bool(UNTAG_Int( variable1
/*i*/)>=UNTAG_Int( TAG_Int(0)));
29 if (!UNTAG_Bool(variable3
)) break; /* while*/
30 variable3
= TAG_Int(UNTAG_Int( variable0
/*h*/)*UNTAG_Int( TAG_Int(32)));
31 variable3
= TAG_Int(UNTAG_Int(variable3
)+UNTAG_Int( variable0
/*h*/));
32 variable4
= TAG_Char(UNBOX_NativeString( variable2
/*it*/)[UNTAG_Int( variable1
/*i*/)]);
33 variable4
= TAG_Int((unsigned char)UNTAG_Char(variable4
));
34 variable3
= TAG_Int(UNTAG_Int(variable3
)+UNTAG_Int(variable4
));
35 variable0
= variable3
/*h=*/;
36 variable1
= TAG_Int(UNTAG_Int(variable1
)-UNTAG_Int( TAG_Int(1))) /*i*/;
40 variable0
= variable0
/*h*/;
42 return_label1
: while(false);
43 tracehead
= trace
.prev
;
46 val_t
hash___Int___hash(val_t self
) {
47 struct trace_t trace
= {NULL
, "hash::Int::hash (bin/../lib/standard//hash.nit:45,2--31)"};
49 trace
.prev
= tracehead
; tracehead
= &trace
;
52 return_label3
: while(false);
53 tracehead
= trace
.prev
;
56 val_t
hash___Char___hash(val_t self
) {
57 struct trace_t trace
= {NULL
, "hash::Char::hash (bin/../lib/standard//hash.nit:49,2--32)"};
59 trace
.prev
= tracehead
; tracehead
= &trace
;
60 variable0
= TAG_Int((unsigned char)UNTAG_Char( self
));
62 return_label4
: while(false);
63 tracehead
= trace
.prev
;
66 val_t
hash___Bool___hash(val_t self
) {
67 struct trace_t trace
= {NULL
, "hash::Bool::hash (bin/../lib/standard//hash.nit:53,2--58:11)"};
69 trace
.prev
= tracehead
; tracehead
= &trace
;
70 if (UNTAG_Bool( self
)) { /*if*/
71 variable0
= TAG_Int(1);
74 variable0
= TAG_Int(0);
77 return_label5
: while(false);
78 tracehead
= trace
.prev
;
81 val_t
hash___HashCollection___length(val_t self
) {
82 struct trace_t trace
= {NULL
, "hash::HashCollection::length (bin/../lib/standard//hash.nit:69,2--33)"};
83 trace
.prev
= tracehead
; tracehead
= &trace
;
84 tracehead
= trace
.prev
;
85 return ATTR_hash___HashCollection____length( self
) /*HashCollection::_length*/;
87 val_t
hash___HashCollection___first_item(val_t self
) {
88 struct trace_t trace
= {NULL
, "hash::HashCollection::first_item (bin/../lib/standard//hash.nit:71,2--29)"};
89 trace
.prev
= tracehead
; tracehead
= &trace
;
90 tracehead
= trace
.prev
;
91 return ATTR_hash___HashCollection____first_item( self
) /*HashCollection::_first_item*/;
93 val_t
hash___HashCollection___index_at(val_t self
, val_t param0
) {
94 struct trace_t trace
= {NULL
, "hash::HashCollection::index_at (bin/../lib/standard//hash.nit:80,2--106:7)"};
102 trace
.prev
= tracehead
; tracehead
= &trace
;
104 variable2
= ATTR_hash___HashCollection____array( self
) /*HashCollection::_array*/;
105 variable1
= variable2
;
106 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::==*/)))))));
107 if (!UNTAG_Bool(variable2
)) { fprintf(stderr
, "Assert failed: bin/../lib/standard//hash.nit:84,3--18\n"); nit_exit(1);}
108 variable2
= ATTR_hash___HashCollection____last_accessed_key( self
) /*HashCollection::_last_accessed_key*/;
109 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::==*/)))));
110 if (UNTAG_Bool(variable2
)) { /*if*/
111 variable2
= ATTR_hash___HashCollection____last_accessed_index( self
) /*HashCollection::_last_accessed_index*/;
112 variable1
= variable2
;
115 variable3
= ((hash___Object___hash_t
)CALL( variable0
/*k*/,COLOR_hash___Object___hash
))( variable0
/*k*/) /*Object::hash*/;
116 variable4
= ATTR_hash___HashCollection____capacity( self
) /*HashCollection::_capacity*/;
117 variable3
= TAG_Int(UNTAG_Int(variable3
)%UNTAG_Int(variable4
));
118 variable2
= variable3
;
119 variable3
= TAG_Bool(UNTAG_Int( variable2
/*base*/)<UNTAG_Int( TAG_Int(0)));
120 if (UNTAG_Bool(variable3
)) { /*if*/
121 variable3
= TAG_Int(-UNTAG_Int( variable2
/*base*/));
122 variable2
= variable3
/*base=*/;
124 variable3
= variable2
/*base*/;
125 while (true) { /*while*/
126 if (!UNTAG_Bool( TAG_Bool(true))) break; /* while*/
127 variable5
= UNBOX_NativeArray( variable1
/*arr*/)[UNTAG_Int( variable3
/*cur*/)];
128 variable4
= variable5
;
129 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*/) /*HashNode::==*/)))));
130 variable6
= variable5
;
131 if (!UNTAG_Bool(variable6
)) { /* or */
132 variable6
= ((hash___HashNode___key_t
)CALL( variable4
/*c*/,COLOR_hash___HashNode___key
))( variable4
/*c*/) /*HashNode::key*/;
133 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::==*/)))));
135 variable5
= variable6
;
136 if (UNTAG_Bool(variable5
)) { /*if*/
137 ATTR_hash___HashCollection____last_accessed_index( self
) /*HashCollection::_last_accessed_index*/ = variable3
/*cur*/;
138 ATTR_hash___HashCollection____last_accessed_key( self
) /*HashCollection::_last_accessed_key*/ = variable0
/*k*/;
139 variable1
= variable3
/*cur*/;
142 variable3
= TAG_Int(UNTAG_Int(variable3
)-UNTAG_Int( TAG_Int(1))) /*cur*/;
143 variable5
= TAG_Bool(UNTAG_Int( variable3
/*cur*/)<UNTAG_Int( TAG_Int(0)));
144 if (UNTAG_Bool(variable5
)) { /*if*/
145 variable5
= ATTR_hash___HashCollection____capacity( self
) /*HashCollection::_capacity*/;
146 variable5
= TAG_Int(UNTAG_Int(variable5
)-UNTAG_Int( TAG_Int(1)));
147 variable3
= variable5
/*cur=*/;
149 variable5
= TAG_Bool(( variable3
/*cur*/)!=( variable2
/*base*/));
150 if (!UNTAG_Bool(variable5
)) { fprintf(stderr
, "Assert 'no_loop' failed: bin/../lib/standard//hash.nit:104,4--30\n"); nit_exit(1);}
151 continue_7
: while(0);
154 fprintf(stderr
, "Aborted: bin/../lib/standard//hash.nit:106,3--7\n"); nit_exit(1);
155 return_label6
: while(false);
156 tracehead
= trace
.prev
;
159 void hash___HashCollection___store(val_t self
, val_t param0
, val_t param1
) {
160 struct trace_t trace
= {NULL
, "hash::HashCollection::store (bin/../lib/standard//hash.nit:109,2--128:16)"};
165 trace
.prev
= tracehead
; tracehead
= &trace
;
168 variable2
= ATTR_hash___HashCollection____first_item( self
) /*HashCollection::_first_item*/;
169 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*/) /*HashNode::==*/)))));
170 if (UNTAG_Bool(variable2
)) { /*if*/
171 ATTR_hash___HashCollection____first_item( self
) /*HashCollection::_first_item*/ = variable1
/*node*/;
173 variable2
= ATTR_hash___HashCollection____last_item( self
) /*HashCollection::_last_item*/;
174 ((hash___HashNode___next_item__eq_t
)CALL(variable2
,COLOR_hash___HashNode___next_item__eq
))(variable2
, variable1
/*node*/) /*HashNode::next_item=*/;
176 variable2
= ATTR_hash___HashCollection____last_item( self
) /*HashCollection::_last_item*/;
177 ((hash___HashNode___prev_item__eq_t
)CALL( variable1
/*node*/,COLOR_hash___HashNode___prev_item__eq
))( variable1
/*node*/, variable2
) /*HashNode::prev_item=*/;
178 ((hash___HashNode___next_item__eq_t
)CALL( variable1
/*node*/,COLOR_hash___HashNode___next_item__eq
))( variable1
/*node*/, NIT_NULL
/*null*/) /*HashNode::next_item=*/;
179 ATTR_hash___HashCollection____last_item( self
) /*HashCollection::_last_item*/ = variable1
/*node*/;
180 variable2
= ATTR_hash___HashCollection____array( self
) /*HashCollection::_array*/;
181 variable2
= UNBOX_NativeArray(variable2
)[UNTAG_Int( variable0
/*index*/)];
182 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*/) /*HashNode::==*/)))));
183 if (!UNTAG_Bool(variable2
)) { fprintf(stderr
, "Assert failed: bin/../lib/standard//hash.nit:122,3--30\n"); nit_exit(1);}
184 variable2
= ATTR_hash___HashCollection____array( self
) /*HashCollection::_array*/;
185 UNBOX_NativeArray(variable2
)[UNTAG_Int( variable0
/*index*/)]= variable1
/*node*/;
186 variable3
= ATTR_hash___HashCollection____length( self
) /*HashCollection::_length*/;
187 variable2
= variable3
;
188 variable3
= TAG_Int(UNTAG_Int( variable2
/*l*/)+UNTAG_Int( TAG_Int(1)));
189 ATTR_hash___HashCollection____length( self
) /*HashCollection::_length*/ = variable3
;
190 variable3
= TAG_Int(UNTAG_Int( variable2
/*l*/)+UNTAG_Int( TAG_Int(5)));
191 variable3
= TAG_Int(UNTAG_Int(variable3
)*UNTAG_Int( TAG_Int(150)));
192 variable3
= TAG_Int(UNTAG_Int(variable3
)/UNTAG_Int( TAG_Int(100)));
193 variable2
= variable3
/*l=*/;
194 variable3
= ATTR_hash___HashCollection____capacity( self
) /*HashCollection::_capacity*/;
195 variable3
= TAG_Bool(UNTAG_Int( variable2
/*l*/)>=UNTAG_Int(variable3
));
196 if (UNTAG_Bool(variable3
)) { /*if*/
197 variable3
= TAG_Int(UNTAG_Int( variable2
/*l*/)*UNTAG_Int( TAG_Int(2)));
198 ((hash___HashCollection___enlarge_t
)CALL( self
,COLOR_hash___HashCollection___enlarge
))( self
, variable3
) /*HashCollection::enlarge*/;
200 tracehead
= trace
.prev
;
203 void hash___HashCollection___remove_index(val_t self
, val_t param0
) {
204 struct trace_t trace
= {NULL
, "hash::HashCollection::remove_index (bin/../lib/standard//hash.nit:132,2--167:18)"};
212 trace
.prev
= tracehead
; tracehead
= &trace
;
214 variable1
= TAG_Bool(UNTAG_Int( variable0
/*i*/)>=UNTAG_Int( TAG_Int(0)));
215 variable2
= variable1
;
216 if (UNTAG_Bool(variable2
)) { /* and */
217 variable2
= ATTR_hash___HashCollection____capacity( self
) /*HashCollection::_capacity*/;
218 variable2
= TAG_Bool(UNTAG_Int( variable0
/*i*/)<UNTAG_Int(variable2
));
220 variable1
= variable2
;
221 if (!UNTAG_Bool(variable1
)) { fprintf(stderr
, "Assert 'correct_index' failed: bin/../lib/standard//hash.nit:134,3--48\n"); nit_exit(1);}
222 variable2
= ATTR_hash___HashCollection____array( self
) /*HashCollection::_array*/;
223 variable2
= UNBOX_NativeArray(variable2
)[UNTAG_Int( variable0
/*i*/)];
224 variable1
= variable2
;
225 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*/) /*HashNode::==*/)))))));
226 if (!UNTAG_Bool(variable2
)) { fprintf(stderr
, "Assert 'has_couple' failed: bin/../lib/standard//hash.nit:136,3--33\n"); nit_exit(1);}
227 variable3
= ((hash___HashNode___prev_item_t
)CALL( variable1
/*node*/,COLOR_hash___HashNode___prev_item
))( variable1
/*node*/) /*HashNode::prev_item*/;
228 variable2
= variable3
;
229 variable4
= ((hash___HashNode___next_item_t
)CALL( variable1
/*node*/,COLOR_hash___HashNode___next_item
))( variable1
/*node*/) /*HashNode::next_item*/;
230 variable3
= variable4
;
231 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*/) /*HashNode::==*/)))))));
232 if (UNTAG_Bool(variable4
)) { /*if*/
233 ((hash___HashNode___next_item__eq_t
)CALL( variable2
/*prev*/,COLOR_hash___HashNode___next_item__eq
))( variable2
/*prev*/, variable3
/*next*/) /*HashNode::next_item=*/;
235 ATTR_hash___HashCollection____first_item( self
) /*HashCollection::_first_item*/ = variable3
/*next*/;
237 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*/) /*HashNode::==*/)))))));
238 if (UNTAG_Bool(variable4
)) { /*if*/
239 ((hash___HashNode___prev_item__eq_t
)CALL( variable3
/*next*/,COLOR_hash___HashNode___prev_item__eq
))( variable3
/*next*/, variable2
/*prev*/) /*HashNode::prev_item=*/;
241 ATTR_hash___HashCollection____last_item( self
) /*HashCollection::_last_item*/ = variable2
/*prev*/;
243 variable4
= ATTR_hash___HashCollection____array( self
) /*HashCollection::_array*/;
244 UNBOX_NativeArray(variable4
)[UNTAG_Int( variable0
/*i*/)]= NIT_NULL
/*null*/;
245 ATTR_hash___HashCollection____length( self
) /*HashCollection::_length*/ = TAG_Int(UNTAG_Int(ATTR_hash___HashCollection____length( self
) /*HashCollection::_length*/)-UNTAG_Int( TAG_Int(1)));
246 while (true) { /*while*/
247 if (!UNTAG_Bool( TAG_Bool(true))) break; /* while*/
248 variable0
= TAG_Int(UNTAG_Int(variable0
)-UNTAG_Int( TAG_Int(1))) /*i*/;
249 variable4
= TAG_Bool(UNTAG_Int( variable0
/*i*/)<UNTAG_Int( TAG_Int(0)));
250 if (UNTAG_Bool(variable4
)) { /*if*/
251 variable4
= ATTR_hash___HashCollection____capacity( self
) /*HashCollection::_capacity*/;
252 variable4
= TAG_Int(UNTAG_Int(variable4
)-UNTAG_Int( TAG_Int(1)));
253 variable0
= variable4
/*i=*/;
255 variable5
= ATTR_hash___HashCollection____array( self
) /*HashCollection::_array*/;
256 variable5
= UNBOX_NativeArray(variable5
)[UNTAG_Int( variable0
/*i*/)];
257 variable4
= variable5
;
258 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*/) /*HashNode::==*/)))));
259 if (UNTAG_Bool(variable5
)) { /*if*/
262 variable6
= ((hash___HashNode___key_t
)CALL( variable4
/*n*/,COLOR_hash___HashNode___key
))( variable4
/*n*/) /*HashNode::key*/;
263 variable6
= ((hash___HashCollection___index_at_t
)CALL( self
,COLOR_hash___HashCollection___index_at
))( self
, variable6
) /*HashCollection::index_at*/;
264 variable5
= variable6
;
265 variable6
= TAG_Bool(( variable0
/*i*/)!=( variable5
/*i2*/));
266 if (UNTAG_Bool(variable6
)) { /*if*/
267 variable6
= ATTR_hash___HashCollection____array( self
) /*HashCollection::_array*/;
268 UNBOX_NativeArray(variable6
)[UNTAG_Int( variable0
/*i*/)]= NIT_NULL
/*null*/;
269 variable6
= ATTR_hash___HashCollection____array( self
) /*HashCollection::_array*/;
270 variable6
= UNBOX_NativeArray(variable6
)[UNTAG_Int( variable5
/*i2*/)];
271 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*/) /*HashNode::==*/)))));
272 if (!UNTAG_Bool(variable6
)) { fprintf(stderr
, "Assert failed: bin/../lib/standard//hash.nit:166,5--29\n"); nit_exit(1);}
273 variable6
= ATTR_hash___HashCollection____array( self
) /*HashCollection::_array*/;
274 UNBOX_NativeArray(variable6
)[UNTAG_Int( variable5
/*i2*/)]= variable4
/*n*/;
276 continue_10
: while(0);
279 return_label9
: while(false);
280 tracehead
= trace
.prev
;
283 void hash___HashCollection___raz(val_t self
) {
284 struct trace_t trace
= {NULL
, "hash::HashCollection::raz (bin/../lib/standard//hash.nit:172,2--182:27)"};
287 trace
.prev
= tracehead
; tracehead
= &trace
;
288 variable1
= ATTR_hash___HashCollection____capacity( self
) /*HashCollection::_capacity*/;
289 variable1
= TAG_Int(UNTAG_Int(variable1
)-UNTAG_Int( TAG_Int(1)));
290 variable0
= variable1
;
291 while (true) { /*while*/
292 variable1
= TAG_Bool(UNTAG_Int( variable0
/*i*/)>=UNTAG_Int( TAG_Int(0)));
293 if (!UNTAG_Bool(variable1
)) break; /* while*/
294 variable1
= ATTR_hash___HashCollection____array( self
) /*HashCollection::_array*/;
295 UNBOX_NativeArray(variable1
)[UNTAG_Int( variable0
/*i*/)]= NIT_NULL
/*null*/;
296 variable0
= TAG_Int(UNTAG_Int(variable0
)-UNTAG_Int( TAG_Int(1))) /*i*/;
297 continue_12
: while(0);
300 ATTR_hash___HashCollection____length( self
) /*HashCollection::_length*/ = TAG_Int(0);
301 ATTR_hash___HashCollection____first_item( self
) /*HashCollection::_first_item*/ = NIT_NULL
/*null*/;
302 ATTR_hash___HashCollection____last_item( self
) /*HashCollection::_last_item*/ = NIT_NULL
/*null*/;
303 ATTR_hash___HashCollection____last_accessed_key( self
) /*HashCollection::_last_accessed_key*/ = NIT_NULL
/*null*/;
304 tracehead
= trace
.prev
;
307 void hash___HashCollection___enlarge(val_t self
, val_t param0
) {
308 struct trace_t trace
= {NULL
, "hash::HashCollection::enlarge (bin/../lib/standard//hash.nit:185,2--217:27)"};
317 trace
.prev
= tracehead
; tracehead
= &trace
;
319 variable2
= ATTR_hash___HashCollection____capacity( self
) /*HashCollection::_capacity*/;
320 variable1
= variable2
;
321 variable2
= ATTR_hash___HashCollection____length( self
) /*HashCollection::_length*/;
322 variable2
= TAG_Int(UNTAG_Int(variable2
)+UNTAG_Int( TAG_Int(1)));
323 variable2
= TAG_Bool(UNTAG_Int( variable0
/*cap*/)<UNTAG_Int(variable2
));
324 if (UNTAG_Bool(variable2
)) { /*if*/
325 variable2
= ATTR_hash___HashCollection____length( self
) /*HashCollection::_length*/;
326 variable2
= TAG_Int(UNTAG_Int(variable2
)+UNTAG_Int( TAG_Int(1)));
327 variable0
= variable2
/*cap=*/;
329 variable2
= ATTR_hash___HashCollection____capacity( self
) /*HashCollection::_capacity*/;
330 variable2
= TAG_Bool(UNTAG_Int( variable0
/*cap*/)<=UNTAG_Int(variable2
));
331 if (UNTAG_Bool(variable2
)) { /*if*/
334 ATTR_hash___HashCollection____capacity( self
) /*HashCollection::_capacity*/ = variable0
/*cap*/;
335 ATTR_hash___HashCollection____last_accessed_key( self
) /*HashCollection::_last_accessed_key*/ = NIT_NULL
/*null*/;
336 variable3
= BOX_NativeArray((val_t
*)malloc((UNTAG_Int( variable0
/*cap*/) * sizeof(val_t
))));
337 variable2
= variable3
;
338 ATTR_hash___HashCollection____array( self
) /*HashCollection::_array*/ = variable2
/*new_array*/;
339 variable4
= TAG_Int(UNTAG_Int( variable0
/*cap*/)-UNTAG_Int( TAG_Int(1)));
340 variable3
= variable4
;
341 while (true) { /*while*/
342 variable4
= TAG_Bool(UNTAG_Int( variable3
/*i*/)>=UNTAG_Int( TAG_Int(0)));
343 if (!UNTAG_Bool(variable4
)) break; /* while*/
344 UNBOX_NativeArray( variable2
/*new_array*/)[UNTAG_Int( variable3
/*i*/)]= NIT_NULL
/*null*/;
345 variable3
= TAG_Int(UNTAG_Int(variable3
)-UNTAG_Int( TAG_Int(1))) /*i*/;
346 continue_14
: while(0);
349 variable4
= ATTR_hash___HashCollection____capacity( self
) /*HashCollection::_capacity*/;
350 variable4
= TAG_Bool(UNTAG_Int(variable4
)<=UNTAG_Int( variable1
/*old_cap*/));
351 if (UNTAG_Bool(variable4
)) { /*if*/
354 variable5
= ATTR_hash___HashCollection____array( self
) /*HashCollection::_array*/;
355 variable4
= variable5
;
356 variable6
= ATTR_hash___HashCollection____first_item( self
) /*HashCollection::_first_item*/;
357 variable5
= variable6
;
358 while (true) { /*while*/
359 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*/) /*HashNode::==*/)))))));
360 if (!UNTAG_Bool(variable6
)) break; /* while*/
361 variable7
= ((hash___HashNode___key_t
)CALL( variable5
/*node*/,COLOR_hash___HashNode___key
))( variable5
/*node*/) /*HashNode::key*/;
362 variable7
= ((hash___HashCollection___index_at_t
)CALL( self
,COLOR_hash___HashCollection___index_at
))( self
, variable7
) /*HashCollection::index_at*/;
363 variable6
= variable7
;
364 variable7
= UNBOX_NativeArray( variable4
/*new_array*/)[UNTAG_Int( variable6
/*ind*/)];
365 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*/) /*HashNode::==*/)))));
366 if (!UNTAG_Bool(variable7
)) { fprintf(stderr
, "Assert failed: bin/../lib/standard//hash.nit:213,4--32\n"); nit_exit(1);}
367 UNBOX_NativeArray( variable4
/*new_array*/)[UNTAG_Int( variable6
/*ind*/)]= variable5
/*node*/;
368 variable7
= ((hash___HashNode___next_item_t
)CALL( variable5
/*node*/,COLOR_hash___HashNode___next_item
))( variable5
/*node*/) /*HashNode::next_item*/;
369 variable5
= variable7
/*node=*/;
370 continue_15
: while(0);
373 ATTR_hash___HashCollection____last_accessed_key( self
) /*HashCollection::_last_accessed_key*/ = NIT_NULL
/*null*/;
374 return_label13
: while(false);
375 tracehead
= trace
.prev
;
378 val_t
hash___HashNode___key(val_t self
) {
379 struct trace_t trace
= {NULL
, "hash::HashNode::key (bin/../lib/standard//hash.nit:222,2--12)"};
380 trace
.prev
= tracehead
; tracehead
= &trace
;
381 fprintf(stderr
, "Deferred method key called (bin/../lib/standard//hash.nit:222,2)\n");
383 tracehead
= trace
.prev
;
386 val_t
hash___HashNode___next_item(val_t self
) {
387 struct trace_t trace
= {NULL
, "hash::HashNode::next_item (bin/../lib/standard//hash.nit:224,2--37)"};
388 trace
.prev
= tracehead
; tracehead
= &trace
;
389 tracehead
= trace
.prev
;
390 return ATTR_hash___HashNode____next_item( self
) /*HashNode::_next_item*/;
392 void hash___HashNode___next_item__eq(val_t self
, val_t param0
) {
393 struct trace_t trace
= {NULL
, "hash::HashNode::next_item= (bin/../lib/standard//hash.nit:224,2--37)"};
394 trace
.prev
= tracehead
; tracehead
= &trace
;
395 ATTR_hash___HashNode____next_item( self
) /*HashNode::_next_item*/ = param0
;
396 tracehead
= trace
.prev
;
399 val_t
hash___HashNode___prev_item(val_t self
) {
400 struct trace_t trace
= {NULL
, "hash::HashNode::prev_item (bin/../lib/standard//hash.nit:225,2--37)"};
401 trace
.prev
= tracehead
; tracehead
= &trace
;
402 tracehead
= trace
.prev
;
403 return ATTR_hash___HashNode____prev_item( self
) /*HashNode::_prev_item*/;
405 void hash___HashNode___prev_item__eq(val_t self
, val_t param0
) {
406 struct trace_t trace
= {NULL
, "hash::HashNode::prev_item= (bin/../lib/standard//hash.nit:225,2--37)"};
407 trace
.prev
= tracehead
; tracehead
= &trace
;
408 ATTR_hash___HashNode____prev_item( self
) /*HashNode::_prev_item*/ = param0
;
409 tracehead
= trace
.prev
;
412 val_t
hash___HashMap___iterator(val_t self
) {
413 struct trace_t trace
= {NULL
, "hash::HashMap::iterator (bin/../lib/standard//hash.nit:232,2--83)"};
415 trace
.prev
= tracehead
; tracehead
= &trace
;
416 variable0
= NEW_hash___HashMapIterator___init( self
); /*new HashMapIterator[K, V]*/
418 return_label16
: while(false);
419 tracehead
= trace
.prev
;
422 val_t
hash___HashMap___first(val_t self
) {
423 struct trace_t trace
= {NULL
, "hash::HashMap::first (bin/../lib/standard//hash.nit:234,2--237:27)"};
425 trace
.prev
= tracehead
; tracehead
= &trace
;
426 variable0
= ATTR_hash___HashCollection____length( self
) /*HashMap::_length*/;
427 variable0
= TAG_Bool(UNTAG_Int(variable0
)>UNTAG_Int( TAG_Int(0)));
428 if (!UNTAG_Bool(variable0
)) { fprintf(stderr
, "Assert failed: bin/../lib/standard//hash.nit:236,3--20\n"); nit_exit(1);}
429 variable0
= ATTR_hash___HashCollection____first_item( self
) /*HashMap::_first_item*/;
430 variable0
= ((abstract_collection___Couple___second_t
)CALL(variable0
,COLOR_abstract_collection___Couple___second
))(variable0
) /*HashMapNode::second*/;
432 return_label17
: while(false);
433 tracehead
= trace
.prev
;
436 val_t
hash___HashMap___is_empty(val_t self
) {
437 struct trace_t trace
= {NULL
, "hash::HashMap::is_empty (bin/../lib/standard//hash.nit:240,2--43)"};
439 trace
.prev
= tracehead
; tracehead
= &trace
;
440 variable0
= ATTR_hash___HashCollection____length( self
) /*HashMap::_length*/;
441 variable0
= TAG_Bool((variable0
)==( TAG_Int(0)));
443 return_label18
: while(false);
444 tracehead
= trace
.prev
;
447 val_t
hash___HashMap___count(val_t self
, val_t param0
) {
448 struct trace_t trace
= {NULL
, "hash::HashMap::count (bin/../lib/standard//hash.nit:242,2--251:11)"};
455 trace
.prev
= tracehead
; tracehead
= &trace
;
457 variable1
= TAG_Int(0);
458 variable2
= TAG_Int(0);
459 while (true) { /*while*/
460 variable3
= ATTR_hash___HashCollection____capacity( self
) /*HashMap::_capacity*/;
461 variable3
= TAG_Bool(UNTAG_Int( variable2
/*i*/)<UNTAG_Int(variable3
));
462 if (!UNTAG_Bool(variable3
)) break; /* while*/
463 variable4
= ATTR_hash___HashCollection____array( self
) /*HashMap::_array*/;
464 variable4
= UNBOX_NativeArray(variable4
)[UNTAG_Int( variable2
/*i*/)];
465 variable3
= variable4
;
466 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*/) /*HashMapNode::==*/)))))));
467 variable5
= variable4
;
468 if (UNTAG_Bool(variable5
)) { /* and */
469 variable5
= ((abstract_collection___Couple___second_t
)CALL( variable3
/*c*/,COLOR_abstract_collection___Couple___second
))( variable3
/*c*/) /*HashMapNode::second*/;
470 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::==*/)))));
472 variable4
= variable5
;
473 if (UNTAG_Bool(variable4
)) { /*if*/
474 variable1
= TAG_Int(UNTAG_Int(variable1
)+UNTAG_Int( TAG_Int(1))) /*nb*/;
476 variable2
= TAG_Int(UNTAG_Int(variable2
)+UNTAG_Int( TAG_Int(1))) /*i*/;
477 continue_20
: while(0);
480 variable1
= variable1
/*nb*/;
482 return_label19
: while(false);
483 tracehead
= trace
.prev
;
486 val_t
hash___HashMap___has(val_t self
, val_t param0
) {
487 struct trace_t trace
= {NULL
, "hash::HashMap::has (bin/../lib/standard//hash.nit:254,2--262:14)"};
493 trace
.prev
= tracehead
; tracehead
= &trace
;
495 variable1
= TAG_Int(0);
496 while (true) { /*while*/
497 variable2
= ATTR_hash___HashCollection____capacity( self
) /*HashMap::_capacity*/;
498 variable2
= TAG_Bool(UNTAG_Int( variable1
/*i*/)<UNTAG_Int(variable2
));
499 if (!UNTAG_Bool(variable2
)) break; /* while*/
500 variable3
= ATTR_hash___HashCollection____array( self
) /*HashMap::_array*/;
501 variable3
= UNBOX_NativeArray(variable3
)[UNTAG_Int( variable1
/*i*/)];
502 variable2
= variable3
;
503 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*/) /*HashMapNode::==*/)))))));
504 variable4
= variable3
;
505 if (UNTAG_Bool(variable4
)) { /* and */
506 variable4
= ((abstract_collection___Couple___second_t
)CALL( variable2
/*c*/,COLOR_abstract_collection___Couple___second
))( variable2
/*c*/) /*HashMapNode::second*/;
507 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::==*/)))));
509 variable3
= variable4
;
510 if (UNTAG_Bool(variable3
)) { /*if*/
511 variable1
= TAG_Bool(true);
514 variable1
= TAG_Int(UNTAG_Int(variable1
)+UNTAG_Int( TAG_Int(1))) /*i*/;
515 continue_22
: while(0);
518 variable1
= TAG_Bool(false);
520 return_label21
: while(false);
521 tracehead
= trace
.prev
;
524 val_t
hash___HashMap___has_only(val_t self
, val_t param0
) {
525 struct trace_t trace
= {NULL
, "hash::HashMap::has_only (bin/../lib/standard//hash.nit:265,2--273:13)"};
531 trace
.prev
= tracehead
; tracehead
= &trace
;
533 variable1
= TAG_Int(0);
534 while (true) { /*while*/
535 variable2
= ATTR_hash___HashCollection____capacity( self
) /*HashMap::_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
) /*HashMap::_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*/) /*HashMapNode::==*/)))))));
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*/) /*HashMapNode::second*/;
545 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::==*/)))))));
547 variable3
= variable4
;
548 if (UNTAG_Bool(variable3
)) { /*if*/
549 variable1
= TAG_Bool(false);
552 variable1
= TAG_Int(UNTAG_Int(variable1
)+UNTAG_Int( TAG_Int(1))) /*i*/;
553 continue_24
: while(0);
556 variable1
= TAG_Bool(true);
558 return_label23
: while(false);
559 tracehead
= trace
.prev
;
562 void hash___HashMap_____braeq(val_t self
, val_t param0
, val_t param1
) {
563 struct trace_t trace
= {NULL
, "hash::HashMap::[]= (bin/../lib/standard//hash.nit:276,2--285:40)"};
569 trace
.prev
= tracehead
; tracehead
= &trace
;
572 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::==*/)))))));
573 if (!UNTAG_Bool(variable2
)) { fprintf(stderr
, "Assert failed: bin/../lib/standard//hash.nit:278,3--20\n"); nit_exit(1);}
574 variable3
= ((hash___HashCollection___index_at_t
)CALL( self
,COLOR_hash___HashCollection___index_at
))( self
, variable0
/*key*/) /*HashMap::index_at*/;
575 variable2
= variable3
;
576 variable4
= ATTR_hash___HashCollection____array( self
) /*HashMap::_array*/;
577 variable4
= UNBOX_NativeArray(variable4
)[UNTAG_Int( variable2
/*i*/)];
578 variable3
= variable4
;
579 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*/) /*HashMapNode::==*/)))))));
580 if (UNTAG_Bool(variable4
)) { /*if*/
581 ((abstract_collection___Couple___first__eq_t
)CALL( variable3
/*c*/,COLOR_abstract_collection___Couple___first__eq
))( variable3
/*c*/, variable0
/*key*/) /*HashMapNode::first=*/;
582 ((abstract_collection___Couple___second__eq_t
)CALL( variable3
/*c*/,COLOR_abstract_collection___Couple___second__eq
))( variable3
/*c*/, variable1
/*v*/) /*HashMapNode::second=*/;
584 variable4
= NEW_hash___HashMapNode___init( variable0
/*key*/, variable1
/*v*/); /*new HashMapNode[K, V]*/
585 ((hash___HashCollection___store_t
)CALL( self
,COLOR_hash___HashCollection___store
))( self
, variable2
/*i*/, variable4
) /*HashMap::store*/;
587 tracehead
= trace
.prev
;
590 void hash___HashMap___remove(val_t self
, val_t param0
) {
591 struct trace_t trace
= {NULL
, "hash::HashMap::remove (bin/../lib/standard//hash.nit:289,2--298:9)"};
597 trace
.prev
= tracehead
; tracehead
= &trace
;
599 variable1
= TAG_Int(0);
600 while (true) { /*while*/
601 variable2
= ATTR_hash___HashCollection____capacity( self
) /*HashMap::_capacity*/;
602 variable2
= TAG_Bool(UNTAG_Int( variable1
/*i*/)<UNTAG_Int(variable2
));
603 if (!UNTAG_Bool(variable2
)) break; /* while*/
604 variable3
= ATTR_hash___HashCollection____array( self
) /*HashMap::_array*/;
605 variable3
= UNBOX_NativeArray(variable3
)[UNTAG_Int( variable1
/*i*/)];
606 variable2
= variable3
;
607 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*/) /*HashMapNode::==*/)))))));
608 variable4
= variable3
;
609 if (UNTAG_Bool(variable4
)) { /* and */
610 variable4
= ((abstract_collection___Couple___second_t
)CALL( variable2
/*c*/,COLOR_abstract_collection___Couple___second
))( variable2
/*c*/) /*HashMapNode::second*/;
611 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::==*/)))));
613 variable3
= variable4
;
614 if (UNTAG_Bool(variable3
)) { /*if*/
615 ((hash___HashCollection___remove_index_t
)CALL( self
,COLOR_hash___HashCollection___remove_index
))( self
, variable1
/*i*/) /*HashMap::remove_index*/;
618 variable1
= TAG_Int(UNTAG_Int(variable1
)+UNTAG_Int( TAG_Int(1))) /*i*/;
619 continue_27
: while(0);
622 return_label26
: while(false);
623 tracehead
= trace
.prev
;
626 void hash___HashMap___remove_at(val_t self
, val_t param0
) {
627 struct trace_t trace
= {NULL
, "hash::HashMap::remove_at (bin/../lib/standard//hash.nit:302,2--55)"};
630 trace
.prev
= tracehead
; tracehead
= &trace
;
632 variable1
= ((hash___HashCollection___index_at_t
)CALL( self
,COLOR_hash___HashCollection___index_at
))( self
, variable0
/*key*/) /*HashMap::index_at*/;
633 ((hash___HashCollection___remove_index_t
)CALL( self
,COLOR_hash___HashCollection___remove_index
))( self
, variable1
) /*HashMap::remove_index*/;
634 tracehead
= trace
.prev
;
637 void hash___HashMap___clear(val_t self
) {
638 struct trace_t trace
= {NULL
, "hash::HashMap::clear (bin/../lib/standard//hash.nit:304,2--24)"};
639 trace
.prev
= tracehead
; tracehead
= &trace
;
640 ((hash___HashCollection___raz_t
)CALL( self
,COLOR_hash___HashCollection___raz
))( self
) /*HashMap::raz*/;
641 tracehead
= trace
.prev
;
644 val_t
hash___HashMap___couple_at(val_t self
, val_t param0
) {
645 struct trace_t trace
= {NULL
, "hash::HashMap::couple_at (bin/../lib/standard//hash.nit:306,2--56)"};
649 trace
.prev
= tracehead
; tracehead
= &trace
;
651 variable1
= ATTR_hash___HashCollection____array( self
) /*HashMap::_array*/;
652 variable2
= ((hash___HashCollection___index_at_t
)CALL( self
,COLOR_hash___HashCollection___index_at
))( self
, variable0
/*key*/) /*HashMap::index_at*/;
653 variable1
= UNBOX_NativeArray(variable1
)[UNTAG_Int(variable2
)];
655 return_label30
: while(false);
656 tracehead
= trace
.prev
;
659 void hash___HashMap___init(val_t self
, int* init_table
) {
660 struct trace_t trace
= {NULL
, "hash::HashMap::init (bin/../lib/standard//hash.nit:308,2--312:11)"};
661 trace
.prev
= tracehead
; tracehead
= &trace
;
662 if (init_table
[VAL2OBJ( self
)->vft
[INIT_TABLE_POS_HashMap
].i
]) return;
663 ATTR_hash___HashCollection____capacity( self
) /*HashMap::_capacity*/ = TAG_Int(0);
664 ATTR_hash___HashCollection____length( self
) /*HashMap::_length*/ = TAG_Int(0);
665 ((hash___HashCollection___enlarge_t
)CALL( self
,COLOR_hash___HashCollection___enlarge
))( self
, TAG_Int(0)) /*HashMap::enlarge*/;
666 init_table
[VAL2OBJ( self
)->vft
[INIT_TABLE_POS_HashMap
].i
] = 1;
667 tracehead
= trace
.prev
;
670 val_t
hash___HashMapNode___key(val_t self
) {
671 struct trace_t trace
= {NULL
, "hash::HashMapNode::key (bin/../lib/standard//hash.nit:319,2--31)"};
673 trace
.prev
= tracehead
; tracehead
= &trace
;
674 variable0
= ((abstract_collection___Couple___first_t
)CALL( self
,COLOR_abstract_collection___Couple___first
))( self
) /*HashMapNode::first*/;
676 return_label32
: while(false);
677 tracehead
= trace
.prev
;
680 void hash___HashMapNode___init(val_t self
, val_t param0
, val_t param1
, int* init_table
) {
681 struct trace_t trace
= {NULL
, "hash::HashMapNode::init (bin/../lib/standard//hash.nit:322,2--325:12)"};
684 trace
.prev
= tracehead
; tracehead
= &trace
;
687 if (init_table
[VAL2OBJ( self
)->vft
[INIT_TABLE_POS_HashMapNode
].i
]) return;
688 ((abstract_collection___Couple___first__eq_t
)CALL( self
,COLOR_abstract_collection___Couple___first__eq
))( self
, variable0
/*k*/) /*HashMapNode::first=*/;
689 ((abstract_collection___Couple___second__eq_t
)CALL( self
,COLOR_abstract_collection___Couple___second__eq
))( self
, variable1
/*v*/) /*HashMapNode::second=*/;
690 init_table
[VAL2OBJ( self
)->vft
[INIT_TABLE_POS_HashMapNode
].i
] = 1;
691 tracehead
= trace
.prev
;
694 val_t
hash___HashMapIterator___is_ok(val_t self
) {
695 struct trace_t trace
= {NULL
, "hash::HashMapIterator::is_ok (bin/../lib/standard//hash.nit:331,2--41)"};
697 trace
.prev
= tracehead
; tracehead
= &trace
;
698 variable0
= ATTR_hash___HashMapIterator____node( self
) /*HashMapIterator::_node*/;
699 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*/) /*HashMapNode::==*/)))))));
701 return_label34
: while(false);
702 tracehead
= trace
.prev
;
705 val_t
hash___HashMapIterator___item(val_t self
) {
706 struct trace_t trace
= {NULL
, "hash::HashMapIterator::item (bin/../lib/standard//hash.nit:333,2--336:21)"};
708 trace
.prev
= tracehead
; tracehead
= &trace
;
709 variable0
= ((hash___HashMapIterator___is_ok_t
)CALL( self
,COLOR_abstract_collection___Iterator___is_ok
))( self
) /*HashMapIterator::is_ok*/;
710 if (!UNTAG_Bool(variable0
)) { fprintf(stderr
, "Assert failed: bin/../lib/standard//hash.nit:335,3--14\n"); nit_exit(1);}
711 variable0
= ATTR_hash___HashMapIterator____node( self
) /*HashMapIterator::_node*/;
712 variable0
= ((abstract_collection___Couple___second_t
)CALL(variable0
,COLOR_abstract_collection___Couple___second
))(variable0
) /*HashMapNode::second*/;
714 return_label35
: while(false);
715 tracehead
= trace
.prev
;
718 void hash___HashMapIterator___item__eq(val_t self
, val_t param0
) {
719 struct trace_t trace
= {NULL
, "hash::HashMapIterator::item= (bin/../lib/standard//hash.nit:339,2--342:22)"};
722 trace
.prev
= tracehead
; tracehead
= &trace
;
724 variable1
= ((hash___HashMapIterator___is_ok_t
)CALL( self
,COLOR_abstract_collection___Iterator___is_ok
))( self
) /*HashMapIterator::is_ok*/;
725 if (!UNTAG_Bool(variable1
)) { fprintf(stderr
, "Assert failed: bin/../lib/standard//hash.nit:341,3--14\n"); nit_exit(1);}
726 variable1
= ATTR_hash___HashMapIterator____node( self
) /*HashMapIterator::_node*/;
727 ((abstract_collection___Couple___second__eq_t
)CALL(variable1
,COLOR_abstract_collection___Couple___second__eq
))(variable1
, variable0
/*value*/) /*HashMapNode::second=*/;
728 tracehead
= trace
.prev
;
731 val_t
hash___HashMapIterator___key(val_t self
) {
732 struct trace_t trace
= {NULL
, "hash::HashMapIterator::key (bin/../lib/standard//hash.nit:345,2--348:20)"};
734 trace
.prev
= tracehead
; tracehead
= &trace
;
735 variable0
= ((hash___HashMapIterator___is_ok_t
)CALL( self
,COLOR_abstract_collection___Iterator___is_ok
))( self
) /*HashMapIterator::is_ok*/;
736 if (!UNTAG_Bool(variable0
)) { fprintf(stderr
, "Assert failed: bin/../lib/standard//hash.nit:347,3--14\n"); nit_exit(1);}
737 variable0
= ATTR_hash___HashMapIterator____node( self
) /*HashMapIterator::_node*/;
738 variable0
= ((abstract_collection___Couple___first_t
)CALL(variable0
,COLOR_abstract_collection___Couple___first
))(variable0
) /*HashMapNode::first*/;
740 return_label37
: while(false);
741 tracehead
= trace
.prev
;
744 void hash___HashMapIterator___next(val_t self
) {
745 struct trace_t trace
= {NULL
, "hash::HashMapIterator::next (bin/../lib/standard//hash.nit:351,2--354:25)"};
747 trace
.prev
= tracehead
; tracehead
= &trace
;
748 variable0
= ((hash___HashMapIterator___is_ok_t
)CALL( self
,COLOR_abstract_collection___Iterator___is_ok
))( self
) /*HashMapIterator::is_ok*/;
749 if (!UNTAG_Bool(variable0
)) { fprintf(stderr
, "Assert failed: bin/../lib/standard//hash.nit:353,3--14\n"); nit_exit(1);}
750 variable0
= ATTR_hash___HashMapIterator____node( self
) /*HashMapIterator::_node*/;
751 variable0
= ((hash___HashNode___next_item_t
)CALL(variable0
,COLOR_hash___HashNode___next_item
))(variable0
) /*HashMapNode::next_item*/;
752 ATTR_hash___HashMapIterator____node( self
) /*HashMapIterator::_node*/ = variable0
;
753 tracehead
= trace
.prev
;
756 void hash___HashMapIterator___init(val_t self
, val_t param0
, int* init_table
) {
757 struct trace_t trace
= {NULL
, "hash::HashMapIterator::init (bin/../lib/standard//hash.nit:363,2--366:24)"};
760 trace
.prev
= tracehead
; tracehead
= &trace
;
762 if (init_table
[VAL2OBJ( self
)->vft
[INIT_TABLE_POS_HashMapIterator
].i
]) return;
763 ATTR_hash___HashMapIterator____map( self
) /*HashMapIterator::_map*/ = variable0
/*map*/;
764 variable1
= ((hash___HashCollection___first_item_t
)CALL( variable0
/*map*/,COLOR_hash___HashCollection___first_item
))( variable0
/*map*/) /*HashMap::first_item*/;
765 ATTR_hash___HashMapIterator____node( self
) /*HashMapIterator::_node*/ = variable1
;
766 init_table
[VAL2OBJ( self
)->vft
[INIT_TABLE_POS_HashMapIterator
].i
] = 1;
767 tracehead
= trace
.prev
;
770 val_t
hash___HashSet___is_empty(val_t self
) {
771 struct trace_t trace
= {NULL
, "hash::HashSet::is_empty (bin/../lib/standard//hash.nit:374,2--43)"};
773 trace
.prev
= tracehead
; tracehead
= &trace
;
774 variable0
= ATTR_hash___HashCollection____length( self
) /*HashSet::_length*/;
775 variable0
= TAG_Bool((variable0
)==( TAG_Int(0)));
777 return_label40
: while(false);
778 tracehead
= trace
.prev
;
781 val_t
hash___HashSet___first(val_t self
) {
782 struct trace_t trace
= {NULL
, "hash::HashSet::first (bin/../lib/standard//hash.nit:376,2--379:24)"};
784 trace
.prev
= tracehead
; tracehead
= &trace
;
785 variable0
= ATTR_hash___HashCollection____length( self
) /*HashSet::_length*/;
786 variable0
= TAG_Bool(UNTAG_Int(variable0
)>UNTAG_Int( TAG_Int(0)));
787 if (!UNTAG_Bool(variable0
)) { fprintf(stderr
, "Assert failed: bin/../lib/standard//hash.nit:378,3--20\n"); nit_exit(1);}
788 variable0
= ATTR_hash___HashCollection____first_item( self
) /*HashSet::_first_item*/;
789 variable0
= ((hash___HashSetNode___key_t
)CALL(variable0
,COLOR_hash___HashNode___key
))(variable0
) /*HashSetNode::key*/;
791 return_label41
: while(false);
792 tracehead
= trace
.prev
;
795 val_t
hash___HashSet___has(val_t self
, val_t param0
) {
796 struct trace_t trace
= {NULL
, "hash::HashSet::has (bin/../lib/standard//hash.nit:382,2--384:39)"};
800 trace
.prev
= tracehead
; tracehead
= &trace
;
802 variable1
= ATTR_hash___HashCollection____array( self
) /*HashSet::_array*/;
803 variable2
= ((hash___HashCollection___index_at_t
)CALL( self
,COLOR_hash___HashCollection___index_at
))( self
, variable0
/*item*/) /*HashSet::index_at*/;
804 variable1
= UNBOX_NativeArray(variable1
)[UNTAG_Int(variable2
)];
805 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*/) /*HashSetNode::==*/)))))));
807 return_label42
: while(false);
808 tracehead
= trace
.prev
;
811 void hash___HashSet___add(val_t self
, val_t param0
) {
812 struct trace_t trace
= {NULL
, "hash::HashSet::add (bin/../lib/standard//hash.nit:387,2--394:34)"};
817 trace
.prev
= tracehead
; tracehead
= &trace
;
819 variable2
= ((hash___HashCollection___index_at_t
)CALL( self
,COLOR_hash___HashCollection___index_at
))( self
, variable0
/*item*/) /*HashSet::index_at*/;
820 variable1
= variable2
;
821 variable3
= ATTR_hash___HashCollection____array( self
) /*HashSet::_array*/;
822 variable3
= UNBOX_NativeArray(variable3
)[UNTAG_Int( variable1
/*i*/)];
823 variable2
= variable3
;
824 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*/) /*HashSetNode::==*/)))))));
825 if (UNTAG_Bool(variable3
)) { /*if*/
826 ((hash___HashSetNode___key__eq_t
)CALL( variable2
/*c*/,COLOR_hash___HashSetNode___key__eq
))( variable2
/*c*/, variable0
/*item*/) /*HashSetNode::key=*/;
828 variable3
= NEW_hash___HashSetNode___init( variable0
/*item*/); /*new HashSetNode[E]*/
829 ((hash___HashCollection___store_t
)CALL( self
,COLOR_hash___HashCollection___store
))( self
, variable1
/*i*/, variable3
) /*HashSet::store*/;
831 tracehead
= trace
.prev
;
834 void hash___HashSet___remove(val_t self
, val_t param0
) {
835 struct trace_t trace
= {NULL
, "hash::HashSet::remove (bin/../lib/standard//hash.nit:398,2--54)"};
838 trace
.prev
= tracehead
; tracehead
= &trace
;
840 variable1
= ((hash___HashCollection___index_at_t
)CALL( self
,COLOR_hash___HashCollection___index_at
))( self
, variable0
/*item*/) /*HashSet::index_at*/;
841 ((hash___HashCollection___remove_index_t
)CALL( self
,COLOR_hash___HashCollection___remove_index
))( self
, variable1
) /*HashSet::remove_index*/;
842 tracehead
= trace
.prev
;
845 void hash___HashSet___clear(val_t self
) {
846 struct trace_t trace
= {NULL
, "hash::HashSet::clear (bin/../lib/standard//hash.nit:400,2--24)"};
847 trace
.prev
= tracehead
; tracehead
= &trace
;
848 ((hash___HashCollection___raz_t
)CALL( self
,COLOR_hash___HashCollection___raz
))( self
) /*HashSet::raz*/;
849 tracehead
= trace
.prev
;
852 val_t
hash___HashSet___iterator(val_t self
) {
853 struct trace_t trace
= {NULL
, "hash::HashSet::iterator (bin/../lib/standard//hash.nit:402,2--58)"};
855 trace
.prev
= tracehead
; tracehead
= &trace
;
856 variable0
= NEW_hash___HashSetIterator___init( self
); /*new HashSetIterator[E]*/
858 return_label46
: while(false);
859 tracehead
= trace
.prev
;
862 void hash___HashSet___init(val_t self
, int* init_table
) {
863 struct trace_t trace
= {NULL
, "hash::HashSet::init (bin/../lib/standard//hash.nit:404,2--408:11)"};
864 trace
.prev
= tracehead
; tracehead
= &trace
;
865 if (init_table
[VAL2OBJ( self
)->vft
[INIT_TABLE_POS_HashSet
].i
]) return;
866 ATTR_hash___HashCollection____capacity( self
) /*HashSet::_capacity*/ = TAG_Int(0);
867 ATTR_hash___HashCollection____length( self
) /*HashSet::_length*/ = TAG_Int(0);
868 ((hash___HashCollection___enlarge_t
)CALL( self
,COLOR_hash___HashCollection___enlarge
))( self
, TAG_Int(0)) /*HashSet::enlarge*/;
869 init_table
[VAL2OBJ( self
)->vft
[INIT_TABLE_POS_HashSet
].i
] = 1;
870 tracehead
= trace
.prev
;
873 val_t
hash___HashSetNode___key(val_t self
) {
874 struct trace_t trace
= {NULL
, "hash::HashSetNode::key (bin/../lib/standard//hash.nit:416,2--37)"};
875 trace
.prev
= tracehead
; tracehead
= &trace
;
876 tracehead
= trace
.prev
;
877 return ATTR_hash___HashSetNode____key( self
) /*HashSetNode::_key*/;
879 void hash___HashSetNode___key__eq(val_t self
, val_t param0
) {
880 struct trace_t trace
= {NULL
, "hash::HashSetNode::key= (bin/../lib/standard//hash.nit:416,2--37)"};
881 trace
.prev
= tracehead
; tracehead
= &trace
;
882 ATTR_hash___HashSetNode____key( self
) /*HashSetNode::_key*/ = param0
;
883 tracehead
= trace
.prev
;
886 void hash___HashSetNode___init(val_t self
, val_t param0
, int* init_table
) {
887 struct trace_t trace
= {NULL
, "hash::HashSetNode::init (bin/../lib/standard//hash.nit:418,2--420:10)"};
889 trace
.prev
= tracehead
; tracehead
= &trace
;
891 if (init_table
[VAL2OBJ( self
)->vft
[INIT_TABLE_POS_HashSetNode
].i
]) return;
892 ATTR_hash___HashSetNode____key( self
) /*HashSetNode::_key*/ = variable0
/*e*/;
893 init_table
[VAL2OBJ( self
)->vft
[INIT_TABLE_POS_HashSetNode
].i
] = 1;
894 tracehead
= trace
.prev
;
897 val_t
hash___HashSetIterator___is_ok(val_t self
) {
898 struct trace_t trace
= {NULL
, "hash::HashSetIterator::is_ok (bin/../lib/standard//hash.nit:426,2--41)"};
900 trace
.prev
= tracehead
; tracehead
= &trace
;
901 variable0
= ATTR_hash___HashSetIterator____node( self
) /*HashSetIterator::_node*/;
902 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*/) /*HashSetNode::==*/)))))));
904 return_label49
: while(false);
905 tracehead
= trace
.prev
;
908 val_t
hash___HashSetIterator___item(val_t self
) {
909 struct trace_t trace
= {NULL
, "hash::HashSetIterator::item (bin/../lib/standard//hash.nit:428,2--431:18)"};
911 trace
.prev
= tracehead
; tracehead
= &trace
;
912 variable0
= ((hash___HashSetIterator___is_ok_t
)CALL( self
,COLOR_abstract_collection___Iterator___is_ok
))( self
) /*HashSetIterator::is_ok*/;
913 if (!UNTAG_Bool(variable0
)) { fprintf(stderr
, "Assert failed: bin/../lib/standard//hash.nit:430,3--14\n"); nit_exit(1);}
914 variable0
= ATTR_hash___HashSetIterator____node( self
) /*HashSetIterator::_node*/;
915 variable0
= ((hash___HashSetNode___key_t
)CALL(variable0
,COLOR_hash___HashNode___key
))(variable0
) /*HashSetNode::key*/;
917 return_label50
: while(false);
918 tracehead
= trace
.prev
;
921 void hash___HashSetIterator___next(val_t self
) {
922 struct trace_t trace
= {NULL
, "hash::HashSetIterator::next (bin/../lib/standard//hash.nit:434,2--437:25)"};
924 trace
.prev
= tracehead
; tracehead
= &trace
;
925 variable0
= ((hash___HashSetIterator___is_ok_t
)CALL( self
,COLOR_abstract_collection___Iterator___is_ok
))( self
) /*HashSetIterator::is_ok*/;
926 if (!UNTAG_Bool(variable0
)) { fprintf(stderr
, "Assert failed: bin/../lib/standard//hash.nit:436,3--14\n"); nit_exit(1);}
927 variable0
= ATTR_hash___HashSetIterator____node( self
) /*HashSetIterator::_node*/;
928 variable0
= ((hash___HashNode___next_item_t
)CALL(variable0
,COLOR_hash___HashNode___next_item
))(variable0
) /*HashSetNode::next_item*/;
929 ATTR_hash___HashSetIterator____node( self
) /*HashSetIterator::_node*/ = variable0
;
930 tracehead
= trace
.prev
;
933 void hash___HashSetIterator___init(val_t self
, val_t param0
, int* init_table
) {
934 struct trace_t trace
= {NULL
, "hash::HashSetIterator::init (bin/../lib/standard//hash.nit:446,2--449:24)"};
937 trace
.prev
= tracehead
; tracehead
= &trace
;
939 if (init_table
[VAL2OBJ( self
)->vft
[INIT_TABLE_POS_HashSetIterator
].i
]) return;
940 ATTR_hash___HashSetIterator____set( self
) /*HashSetIterator::_set*/ = variable0
/*set*/;
941 variable1
= ((hash___HashCollection___first_item_t
)CALL( variable0
/*set*/,COLOR_hash___HashCollection___first_item
))( variable0
/*set*/) /*HashSet::first_item*/;
942 ATTR_hash___HashSetIterator____node( self
) /*HashSetIterator::_node*/ = variable1
;
943 init_table
[VAL2OBJ( self
)->vft
[INIT_TABLE_POS_HashSetIterator
].i
] = 1;
944 tracehead
= trace
.prev
;