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
, LOCATE_hash
, 21, LOCATE_hash___Object___hash
};
6 trace
.prev
= tracehead
; tracehead
= &trace
;
7 variable0
= TAG_Int((bigint
) self
);
8 variable0
= TAG_Int(UNTAG_Int(variable0
)/UNTAG_Int( TAG_Int(8)));
10 return_label0
: while(false);
11 tracehead
= trace
.prev
;
14 val_t
hash___String___hash(val_t self
) {
15 struct trace_t trace
= {NULL
, LOCATE_hash
, 29, LOCATE_hash___String___hash
};
21 trace
.prev
= tracehead
; tracehead
= &trace
;
22 variable0
= TAG_Int(5381);
23 variable2
= ATTR_array___AbstractArray____length( self
) /*AbstractArray::_length*/;
24 variable2
= TAG_Int(UNTAG_Int(variable2
)-UNTAG_Int( TAG_Int(1)));
25 variable1
= variable2
;
26 variable3
= ATTR_string___String____items( self
) /*String::_items*/;
27 variable2
= variable3
;
28 while (true) { /*while*/
29 variable3
= TAG_Bool(UNTAG_Int( variable1
/*i*/)>=UNTAG_Int( TAG_Int(0)));
30 if (!UNTAG_Bool(variable3
)) break; /* while*/
31 variable3
= TAG_Int(UNTAG_Int( variable0
/*h*/)*UNTAG_Int( TAG_Int(32)));
32 variable3
= TAG_Int(UNTAG_Int(variable3
)+UNTAG_Int( variable0
/*h*/));
33 variable4
= TAG_Char(UNBOX_NativeString( variable2
/*it*/)[UNTAG_Int( variable1
/*i*/)]);
34 variable4
= TAG_Int((unsigned char)UNTAG_Char(variable4
));
35 variable3
= TAG_Int(UNTAG_Int(variable3
)+UNTAG_Int(variable4
));
36 variable0
= variable3
/*h=*/;
37 variable1
= TAG_Int(UNTAG_Int(variable1
)-UNTAG_Int( TAG_Int(1))) /*i*/;
41 variable0
= variable0
/*h*/;
43 return_label1
: while(false);
44 tracehead
= trace
.prev
;
47 val_t
hash___Int___hash(val_t self
) {
48 struct trace_t trace
= {NULL
, LOCATE_hash
, 45, LOCATE_hash___Int___hash
};
50 trace
.prev
= tracehead
; tracehead
= &trace
;
53 return_label3
: while(false);
54 tracehead
= trace
.prev
;
57 val_t
hash___Char___hash(val_t self
) {
58 struct trace_t trace
= {NULL
, LOCATE_hash
, 49, LOCATE_hash___Char___hash
};
60 trace
.prev
= tracehead
; tracehead
= &trace
;
61 variable0
= TAG_Int((unsigned char)UNTAG_Char( self
));
63 return_label4
: while(false);
64 tracehead
= trace
.prev
;
67 val_t
hash___Bool___hash(val_t self
) {
68 struct trace_t trace
= {NULL
, LOCATE_hash
, 53, LOCATE_hash___Bool___hash
};
70 trace
.prev
= tracehead
; tracehead
= &trace
;
71 if (UNTAG_Bool( self
)) { /*if*/
72 variable0
= TAG_Int(1);
75 variable0
= TAG_Int(0);
78 return_label5
: while(false);
79 tracehead
= trace
.prev
;
82 val_t
hash___HashCollection___length(val_t self
) {
83 struct trace_t trace
= {NULL
, LOCATE_hash
, 69, LOCATE_hash___HashCollection___length
};
84 trace
.prev
= tracehead
; tracehead
= &trace
;
85 tracehead
= trace
.prev
;
86 return ATTR_hash___HashCollection____length( self
) /*HashCollection::_length*/;
88 val_t
hash___HashCollection___first_item(val_t self
) {
89 struct trace_t trace
= {NULL
, LOCATE_hash
, 71, LOCATE_hash___HashCollection___first_item
};
90 trace
.prev
= tracehead
; tracehead
= &trace
;
91 tracehead
= trace
.prev
;
92 return ATTR_hash___HashCollection____first_item( self
) /*HashCollection::_first_item*/;
94 val_t
hash___HashCollection___index_at(val_t self
, val_t param0
) {
95 struct trace_t trace
= {NULL
, LOCATE_hash
, 80, LOCATE_hash___HashCollection___index_at
};
103 trace
.prev
= tracehead
; tracehead
= &trace
;
105 variable2
= ATTR_hash___HashCollection____array( self
) /*HashCollection::_array*/;
106 variable1
= variable2
;
107 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::==*/)))))));
108 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);}
109 variable2
= ATTR_hash___HashCollection____last_accessed_key( self
) /*HashCollection::_last_accessed_key*/;
110 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::==*/)))));
111 if (UNTAG_Bool(variable2
)) { /*if*/
112 variable2
= ATTR_hash___HashCollection____last_accessed_index( self
) /*HashCollection::_last_accessed_index*/;
113 variable1
= variable2
;
116 variable3
= ((hash___Object___hash_t
)CALL( variable0
/*k*/,COLOR_hash___Object___hash
))( variable0
/*k*/) /*Object::hash*/;
117 variable4
= ATTR_hash___HashCollection____capacity( self
) /*HashCollection::_capacity*/;
118 variable3
= TAG_Int(UNTAG_Int(variable3
)%UNTAG_Int(variable4
));
119 variable2
= variable3
;
120 variable3
= TAG_Bool(UNTAG_Int( variable2
/*base*/)<UNTAG_Int( TAG_Int(0)));
121 if (UNTAG_Bool(variable3
)) { /*if*/
122 variable3
= TAG_Int(-UNTAG_Int( variable2
/*base*/));
123 variable2
= variable3
/*base=*/;
125 variable3
= variable2
/*base*/;
126 while (true) { /*while*/
127 if (!UNTAG_Bool( TAG_Bool(true))) break; /* while*/
128 variable5
= UNBOX_NativeArray( variable1
/*arr*/)[UNTAG_Int( variable3
/*cur*/)];
129 variable4
= variable5
;
130 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::==*/)))));
131 variable6
= variable5
;
132 if (!UNTAG_Bool(variable6
)) { /* or */
133 variable6
= ((hash___HashNode___key_t
)CALL( variable4
/*c*/,COLOR_hash___HashNode___key
))( variable4
/*c*/) /*HashNode::key*/;
134 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::==*/)))));
136 variable5
= variable6
;
137 if (UNTAG_Bool(variable5
)) { /*if*/
138 ATTR_hash___HashCollection____last_accessed_index( self
) /*HashCollection::_last_accessed_index*/ = variable3
/*cur*/;
139 ATTR_hash___HashCollection____last_accessed_key( self
) /*HashCollection::_last_accessed_key*/ = variable0
/*k*/;
140 variable1
= variable3
/*cur*/;
143 variable3
= TAG_Int(UNTAG_Int(variable3
)-UNTAG_Int( TAG_Int(1))) /*cur*/;
144 variable5
= TAG_Bool(UNTAG_Int( variable3
/*cur*/)<UNTAG_Int( TAG_Int(0)));
145 if (UNTAG_Bool(variable5
)) { /*if*/
146 variable5
= ATTR_hash___HashCollection____capacity( self
) /*HashCollection::_capacity*/;
147 variable5
= TAG_Int(UNTAG_Int(variable5
)-UNTAG_Int( TAG_Int(1)));
148 variable3
= variable5
/*cur=*/;
150 variable5
= TAG_Bool(( variable3
/*cur*/)!=( variable2
/*base*/));
151 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);}
152 continue_7
: while(0);
155 fprintf(stderr
, "Aborted"); fprintf(stderr
, " in %s (%s:%d)\n", LOCATE_hash___HashCollection___index_at
, LOCATE_hash
, 106); nit_exit(1);
156 return_label6
: while(false);
157 tracehead
= trace
.prev
;
160 void hash___HashCollection___store(val_t self
, val_t param0
, val_t param1
) {
161 struct trace_t trace
= {NULL
, LOCATE_hash
, 109, LOCATE_hash___HashCollection___store
};
166 trace
.prev
= tracehead
; tracehead
= &trace
;
169 variable2
= ATTR_hash___HashCollection____first_item( self
) /*HashCollection::_first_item*/;
170 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::==*/)))));
171 if (UNTAG_Bool(variable2
)) { /*if*/
172 ATTR_hash___HashCollection____first_item( self
) /*HashCollection::_first_item*/ = variable1
/*node*/;
174 variable2
= ATTR_hash___HashCollection____last_item( self
) /*HashCollection::_last_item*/;
175 ((hash___HashNode___next_item__eq_t
)CALL(variable2
,COLOR_hash___HashNode___next_item__eq
))(variable2
, variable1
/*node*/) /*HashNode::next_item=*/;
177 variable2
= ATTR_hash___HashCollection____last_item( self
) /*HashCollection::_last_item*/;
178 ((hash___HashNode___prev_item__eq_t
)CALL( variable1
/*node*/,COLOR_hash___HashNode___prev_item__eq
))( variable1
/*node*/, variable2
) /*HashNode::prev_item=*/;
179 ((hash___HashNode___next_item__eq_t
)CALL( variable1
/*node*/,COLOR_hash___HashNode___next_item__eq
))( variable1
/*node*/, NIT_NULL
/*null*/) /*HashNode::next_item=*/;
180 ATTR_hash___HashCollection____last_item( self
) /*HashCollection::_last_item*/ = variable1
/*node*/;
181 variable2
= ATTR_hash___HashCollection____array( self
) /*HashCollection::_array*/;
182 variable2
= UNBOX_NativeArray(variable2
)[UNTAG_Int( variable0
/*index*/)];
183 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::==*/)))));
184 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);}
185 variable2
= ATTR_hash___HashCollection____array( self
) /*HashCollection::_array*/;
186 UNBOX_NativeArray(variable2
)[UNTAG_Int( variable0
/*index*/)]= variable1
/*node*/;
187 variable3
= ATTR_hash___HashCollection____length( self
) /*HashCollection::_length*/;
188 variable2
= variable3
;
189 variable3
= TAG_Int(UNTAG_Int( variable2
/*l*/)+UNTAG_Int( TAG_Int(1)));
190 ATTR_hash___HashCollection____length( self
) /*HashCollection::_length*/ = variable3
;
191 variable3
= TAG_Int(UNTAG_Int( variable2
/*l*/)+UNTAG_Int( TAG_Int(5)));
192 variable3
= TAG_Int(UNTAG_Int(variable3
)*UNTAG_Int( TAG_Int(150)));
193 variable3
= TAG_Int(UNTAG_Int(variable3
)/UNTAG_Int( TAG_Int(100)));
194 variable2
= variable3
/*l=*/;
195 variable3
= ATTR_hash___HashCollection____capacity( self
) /*HashCollection::_capacity*/;
196 variable3
= TAG_Bool(UNTAG_Int( variable2
/*l*/)>=UNTAG_Int(variable3
));
197 if (UNTAG_Bool(variable3
)) { /*if*/
198 variable3
= TAG_Int(UNTAG_Int( variable2
/*l*/)*UNTAG_Int( TAG_Int(2)));
199 ((hash___HashCollection___enlarge_t
)CALL( self
,COLOR_hash___HashCollection___enlarge
))( self
, variable3
) /*HashCollection::enlarge*/;
201 tracehead
= trace
.prev
;
204 void hash___HashCollection___remove_index(val_t self
, val_t param0
) {
205 struct trace_t trace
= {NULL
, LOCATE_hash
, 132, LOCATE_hash___HashCollection___remove_index
};
213 trace
.prev
= tracehead
; tracehead
= &trace
;
215 variable1
= TAG_Bool(UNTAG_Int( variable0
/*i*/)>=UNTAG_Int( TAG_Int(0)));
216 variable2
= variable1
;
217 if (UNTAG_Bool(variable2
)) { /* and */
218 variable2
= ATTR_hash___HashCollection____capacity( self
) /*HashCollection::_capacity*/;
219 variable2
= TAG_Bool(UNTAG_Int( variable0
/*i*/)<UNTAG_Int(variable2
));
221 variable1
= variable2
;
222 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);}
223 variable2
= ATTR_hash___HashCollection____array( self
) /*HashCollection::_array*/;
224 variable2
= UNBOX_NativeArray(variable2
)[UNTAG_Int( variable0
/*i*/)];
225 variable1
= variable2
;
226 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::==*/)))))));
227 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);}
228 variable3
= ((hash___HashNode___prev_item_t
)CALL( variable1
/*node*/,COLOR_hash___HashNode___prev_item
))( variable1
/*node*/) /*HashNode::prev_item*/;
229 variable2
= variable3
;
230 variable4
= ((hash___HashNode___next_item_t
)CALL( variable1
/*node*/,COLOR_hash___HashNode___next_item
))( variable1
/*node*/) /*HashNode::next_item*/;
231 variable3
= variable4
;
232 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::==*/)))))));
233 if (UNTAG_Bool(variable4
)) { /*if*/
234 ((hash___HashNode___next_item__eq_t
)CALL( variable2
/*prev*/,COLOR_hash___HashNode___next_item__eq
))( variable2
/*prev*/, variable3
/*next*/) /*HashNode::next_item=*/;
236 ATTR_hash___HashCollection____first_item( self
) /*HashCollection::_first_item*/ = variable3
/*next*/;
238 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::==*/)))))));
239 if (UNTAG_Bool(variable4
)) { /*if*/
240 ((hash___HashNode___prev_item__eq_t
)CALL( variable3
/*next*/,COLOR_hash___HashNode___prev_item__eq
))( variable3
/*next*/, variable2
/*prev*/) /*HashNode::prev_item=*/;
242 ATTR_hash___HashCollection____last_item( self
) /*HashCollection::_last_item*/ = variable2
/*prev*/;
244 variable4
= ATTR_hash___HashCollection____array( self
) /*HashCollection::_array*/;
245 UNBOX_NativeArray(variable4
)[UNTAG_Int( variable0
/*i*/)]= NIT_NULL
/*null*/;
246 ATTR_hash___HashCollection____length( self
) /*HashCollection::_length*/ = TAG_Int(UNTAG_Int(ATTR_hash___HashCollection____length( self
) /*HashCollection::_length*/)-UNTAG_Int( TAG_Int(1)));
247 while (true) { /*while*/
248 if (!UNTAG_Bool( TAG_Bool(true))) break; /* while*/
249 variable0
= TAG_Int(UNTAG_Int(variable0
)-UNTAG_Int( TAG_Int(1))) /*i*/;
250 variable4
= TAG_Bool(UNTAG_Int( variable0
/*i*/)<UNTAG_Int( TAG_Int(0)));
251 if (UNTAG_Bool(variable4
)) { /*if*/
252 variable4
= ATTR_hash___HashCollection____capacity( self
) /*HashCollection::_capacity*/;
253 variable4
= TAG_Int(UNTAG_Int(variable4
)-UNTAG_Int( TAG_Int(1)));
254 variable0
= variable4
/*i=*/;
256 variable5
= ATTR_hash___HashCollection____array( self
) /*HashCollection::_array*/;
257 variable5
= UNBOX_NativeArray(variable5
)[UNTAG_Int( variable0
/*i*/)];
258 variable4
= variable5
;
259 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::==*/)))));
260 if (UNTAG_Bool(variable5
)) { /*if*/
263 variable6
= ((hash___HashNode___key_t
)CALL( variable4
/*n*/,COLOR_hash___HashNode___key
))( variable4
/*n*/) /*HashNode::key*/;
264 variable6
= ((hash___HashCollection___index_at_t
)CALL( self
,COLOR_hash___HashCollection___index_at
))( self
, variable6
) /*HashCollection::index_at*/;
265 variable5
= variable6
;
266 variable6
= TAG_Bool(( variable0
/*i*/)!=( variable5
/*i2*/));
267 if (UNTAG_Bool(variable6
)) { /*if*/
268 variable6
= ATTR_hash___HashCollection____array( self
) /*HashCollection::_array*/;
269 UNBOX_NativeArray(variable6
)[UNTAG_Int( variable0
/*i*/)]= NIT_NULL
/*null*/;
270 variable6
= ATTR_hash___HashCollection____array( self
) /*HashCollection::_array*/;
271 variable6
= UNBOX_NativeArray(variable6
)[UNTAG_Int( variable5
/*i2*/)];
272 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::==*/)))));
273 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);}
274 variable6
= ATTR_hash___HashCollection____array( self
) /*HashCollection::_array*/;
275 UNBOX_NativeArray(variable6
)[UNTAG_Int( variable5
/*i2*/)]= variable4
/*n*/;
277 continue_10
: while(0);
280 return_label9
: while(false);
281 tracehead
= trace
.prev
;
284 void hash___HashCollection___raz(val_t self
) {
285 struct trace_t trace
= {NULL
, LOCATE_hash
, 172, LOCATE_hash___HashCollection___raz
};
288 trace
.prev
= tracehead
; tracehead
= &trace
;
289 variable1
= ATTR_hash___HashCollection____capacity( self
) /*HashCollection::_capacity*/;
290 variable1
= TAG_Int(UNTAG_Int(variable1
)-UNTAG_Int( TAG_Int(1)));
291 variable0
= variable1
;
292 while (true) { /*while*/
293 variable1
= TAG_Bool(UNTAG_Int( variable0
/*i*/)>=UNTAG_Int( TAG_Int(0)));
294 if (!UNTAG_Bool(variable1
)) break; /* while*/
295 variable1
= ATTR_hash___HashCollection____array( self
) /*HashCollection::_array*/;
296 UNBOX_NativeArray(variable1
)[UNTAG_Int( variable0
/*i*/)]= NIT_NULL
/*null*/;
297 variable0
= TAG_Int(UNTAG_Int(variable0
)-UNTAG_Int( TAG_Int(1))) /*i*/;
298 continue_12
: while(0);
301 ATTR_hash___HashCollection____length( self
) /*HashCollection::_length*/ = TAG_Int(0);
302 ATTR_hash___HashCollection____first_item( self
) /*HashCollection::_first_item*/ = NIT_NULL
/*null*/;
303 ATTR_hash___HashCollection____last_item( self
) /*HashCollection::_last_item*/ = NIT_NULL
/*null*/;
304 ATTR_hash___HashCollection____last_accessed_key( self
) /*HashCollection::_last_accessed_key*/ = NIT_NULL
/*null*/;
305 tracehead
= trace
.prev
;
308 void hash___HashCollection___enlarge(val_t self
, val_t param0
) {
309 struct trace_t trace
= {NULL
, LOCATE_hash
, 185, LOCATE_hash___HashCollection___enlarge
};
318 trace
.prev
= tracehead
; tracehead
= &trace
;
320 variable2
= ATTR_hash___HashCollection____capacity( self
) /*HashCollection::_capacity*/;
321 variable1
= variable2
;
322 variable2
= ATTR_hash___HashCollection____length( self
) /*HashCollection::_length*/;
323 variable2
= TAG_Int(UNTAG_Int(variable2
)+UNTAG_Int( TAG_Int(1)));
324 variable2
= TAG_Bool(UNTAG_Int( variable0
/*cap*/)<UNTAG_Int(variable2
));
325 if (UNTAG_Bool(variable2
)) { /*if*/
326 variable2
= ATTR_hash___HashCollection____length( self
) /*HashCollection::_length*/;
327 variable2
= TAG_Int(UNTAG_Int(variable2
)+UNTAG_Int( TAG_Int(1)));
328 variable0
= variable2
/*cap=*/;
330 variable2
= ATTR_hash___HashCollection____capacity( self
) /*HashCollection::_capacity*/;
331 variable2
= TAG_Bool(UNTAG_Int( variable0
/*cap*/)<=UNTAG_Int(variable2
));
332 if (UNTAG_Bool(variable2
)) { /*if*/
335 ATTR_hash___HashCollection____capacity( self
) /*HashCollection::_capacity*/ = variable0
/*cap*/;
336 ATTR_hash___HashCollection____last_accessed_key( self
) /*HashCollection::_last_accessed_key*/ = NIT_NULL
/*null*/;
337 variable3
= BOX_NativeArray((val_t
*)malloc((UNTAG_Int( variable0
/*cap*/) * sizeof(val_t
))));
338 variable2
= variable3
;
339 ATTR_hash___HashCollection____array( self
) /*HashCollection::_array*/ = variable2
/*new_array*/;
340 variable4
= TAG_Int(UNTAG_Int( variable0
/*cap*/)-UNTAG_Int( TAG_Int(1)));
341 variable3
= variable4
;
342 while (true) { /*while*/
343 variable4
= TAG_Bool(UNTAG_Int( variable3
/*i*/)>=UNTAG_Int( TAG_Int(0)));
344 if (!UNTAG_Bool(variable4
)) break; /* while*/
345 UNBOX_NativeArray( variable2
/*new_array*/)[UNTAG_Int( variable3
/*i*/)]= NIT_NULL
/*null*/;
346 variable3
= TAG_Int(UNTAG_Int(variable3
)-UNTAG_Int( TAG_Int(1))) /*i*/;
347 continue_14
: while(0);
350 variable4
= ATTR_hash___HashCollection____capacity( self
) /*HashCollection::_capacity*/;
351 variable4
= TAG_Bool(UNTAG_Int(variable4
)<=UNTAG_Int( variable1
/*old_cap*/));
352 if (UNTAG_Bool(variable4
)) { /*if*/
355 variable5
= ATTR_hash___HashCollection____array( self
) /*HashCollection::_array*/;
356 variable4
= variable5
;
357 variable6
= ATTR_hash___HashCollection____first_item( self
) /*HashCollection::_first_item*/;
358 variable5
= variable6
;
359 while (true) { /*while*/
360 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::==*/)))))));
361 if (!UNTAG_Bool(variable6
)) break; /* while*/
362 variable7
= ((hash___HashNode___key_t
)CALL( variable5
/*node*/,COLOR_hash___HashNode___key
))( variable5
/*node*/) /*HashNode::key*/;
363 variable7
= ((hash___HashCollection___index_at_t
)CALL( self
,COLOR_hash___HashCollection___index_at
))( self
, variable7
) /*HashCollection::index_at*/;
364 variable6
= variable7
;
365 variable7
= UNBOX_NativeArray( variable4
/*new_array*/)[UNTAG_Int( variable6
/*ind*/)];
366 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::==*/)))));
367 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);}
368 UNBOX_NativeArray( variable4
/*new_array*/)[UNTAG_Int( variable6
/*ind*/)]= variable5
/*node*/;
369 variable7
= ((hash___HashNode___next_item_t
)CALL( variable5
/*node*/,COLOR_hash___HashNode___next_item
))( variable5
/*node*/) /*HashNode::next_item*/;
370 variable5
= variable7
/*node=*/;
371 continue_15
: while(0);
374 ATTR_hash___HashCollection____last_accessed_key( self
) /*HashCollection::_last_accessed_key*/ = NIT_NULL
/*null*/;
375 return_label13
: while(false);
376 tracehead
= trace
.prev
;
379 val_t
hash___HashNode___key(val_t self
) {
380 struct trace_t trace
= {NULL
, LOCATE_hash
, 222, LOCATE_hash___HashNode___key
};
381 trace
.prev
= tracehead
; tracehead
= &trace
;
382 fprintf(stderr
, "Deferred method %s called");
383 fprintf(stderr
, " in %s (%s:%d)\n", LOCATE_hash___HashCollection___enlarge
, LOCATE_hash
, 222);
385 tracehead
= trace
.prev
;
388 val_t
hash___HashNode___next_item(val_t self
) {
389 struct trace_t trace
= {NULL
, LOCATE_hash
, 224, LOCATE_hash___HashNode___next_item
};
390 trace
.prev
= tracehead
; tracehead
= &trace
;
391 tracehead
= trace
.prev
;
392 return ATTR_hash___HashNode____next_item( self
) /*HashNode::_next_item*/;
394 void hash___HashNode___next_item__eq(val_t self
, val_t param0
) {
395 struct trace_t trace
= {NULL
, LOCATE_hash
, 224, LOCATE_hash___HashNode___next_item__eq
};
396 trace
.prev
= tracehead
; tracehead
= &trace
;
397 ATTR_hash___HashNode____next_item( self
) /*HashNode::_next_item*/ = param0
;
398 tracehead
= trace
.prev
;
401 val_t
hash___HashNode___prev_item(val_t self
) {
402 struct trace_t trace
= {NULL
, LOCATE_hash
, 225, LOCATE_hash___HashNode___prev_item
};
403 trace
.prev
= tracehead
; tracehead
= &trace
;
404 tracehead
= trace
.prev
;
405 return ATTR_hash___HashNode____prev_item( self
) /*HashNode::_prev_item*/;
407 void hash___HashNode___prev_item__eq(val_t self
, val_t param0
) {
408 struct trace_t trace
= {NULL
, LOCATE_hash
, 225, LOCATE_hash___HashNode___prev_item__eq
};
409 trace
.prev
= tracehead
; tracehead
= &trace
;
410 ATTR_hash___HashNode____prev_item( self
) /*HashNode::_prev_item*/ = param0
;
411 tracehead
= trace
.prev
;
414 val_t
hash___HashMap___iterator(val_t self
) {
415 struct trace_t trace
= {NULL
, LOCATE_hash
, 232, LOCATE_hash___HashMap___iterator
};
417 trace
.prev
= tracehead
; tracehead
= &trace
;
418 variable0
= NEW_hash___HashMapIterator___init( self
); /*new HashMapIterator[K, V]*/
420 return_label16
: while(false);
421 tracehead
= trace
.prev
;
424 val_t
hash___HashMap___first(val_t self
) {
425 struct trace_t trace
= {NULL
, LOCATE_hash
, 234, LOCATE_hash___HashMap___first
};
427 trace
.prev
= tracehead
; tracehead
= &trace
;
428 variable0
= ATTR_hash___HashCollection____length( self
) /*HashCollection::_length*/;
429 variable0
= TAG_Bool(UNTAG_Int(variable0
)>UNTAG_Int( TAG_Int(0)));
430 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);}
431 variable0
= ATTR_hash___HashCollection____first_item( self
) /*HashCollection::_first_item*/;
432 variable0
= ((abstract_collection___Couple___second_t
)CALL(variable0
,COLOR_abstract_collection___Couple___second
))(variable0
) /*Couple::second*/;
434 return_label17
: while(false);
435 tracehead
= trace
.prev
;
438 val_t
hash___HashMap___is_empty(val_t self
) {
439 struct trace_t trace
= {NULL
, LOCATE_hash
, 240, LOCATE_hash___HashMap___is_empty
};
441 trace
.prev
= tracehead
; tracehead
= &trace
;
442 variable0
= ATTR_hash___HashCollection____length( self
) /*HashCollection::_length*/;
443 variable0
= TAG_Bool((variable0
)==( TAG_Int(0)));
445 return_label18
: while(false);
446 tracehead
= trace
.prev
;
449 val_t
hash___HashMap___count(val_t self
, val_t param0
) {
450 struct trace_t trace
= {NULL
, LOCATE_hash
, 242, LOCATE_hash___HashMap___count
};
457 trace
.prev
= tracehead
; tracehead
= &trace
;
459 variable1
= TAG_Int(0);
460 variable2
= TAG_Int(0);
461 while (true) { /*while*/
462 variable3
= ATTR_hash___HashCollection____capacity( self
) /*HashCollection::_capacity*/;
463 variable3
= TAG_Bool(UNTAG_Int( variable2
/*i*/)<UNTAG_Int(variable3
));
464 if (!UNTAG_Bool(variable3
)) break; /* while*/
465 variable4
= ATTR_hash___HashCollection____array( self
) /*HashCollection::_array*/;
466 variable4
= UNBOX_NativeArray(variable4
)[UNTAG_Int( variable2
/*i*/)];
467 variable3
= variable4
;
468 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::==*/)))))));
469 variable5
= variable4
;
470 if (UNTAG_Bool(variable5
)) { /* and */
471 variable5
= ((abstract_collection___Couple___second_t
)CALL( variable3
/*c*/,COLOR_abstract_collection___Couple___second
))( variable3
/*c*/) /*Couple::second*/;
472 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::==*/)))));
474 variable4
= variable5
;
475 if (UNTAG_Bool(variable4
)) { /*if*/
476 variable1
= TAG_Int(UNTAG_Int(variable1
)+UNTAG_Int( TAG_Int(1))) /*nb*/;
478 variable2
= TAG_Int(UNTAG_Int(variable2
)+UNTAG_Int( TAG_Int(1))) /*i*/;
479 continue_20
: while(0);
482 variable1
= variable1
/*nb*/;
484 return_label19
: while(false);
485 tracehead
= trace
.prev
;
488 val_t
hash___HashMap___has(val_t self
, val_t param0
) {
489 struct trace_t trace
= {NULL
, LOCATE_hash
, 254, LOCATE_hash___HashMap___has
};
495 trace
.prev
= tracehead
; tracehead
= &trace
;
497 variable1
= TAG_Int(0);
498 while (true) { /*while*/
499 variable2
= ATTR_hash___HashCollection____capacity( self
) /*HashCollection::_capacity*/;
500 variable2
= TAG_Bool(UNTAG_Int( variable1
/*i*/)<UNTAG_Int(variable2
));
501 if (!UNTAG_Bool(variable2
)) break; /* while*/
502 variable3
= ATTR_hash___HashCollection____array( self
) /*HashCollection::_array*/;
503 variable3
= UNBOX_NativeArray(variable3
)[UNTAG_Int( variable1
/*i*/)];
504 variable2
= variable3
;
505 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::==*/)))))));
506 variable4
= variable3
;
507 if (UNTAG_Bool(variable4
)) { /* and */
508 variable4
= ((abstract_collection___Couple___second_t
)CALL( variable2
/*c*/,COLOR_abstract_collection___Couple___second
))( variable2
/*c*/) /*Couple::second*/;
509 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::==*/)))));
511 variable3
= variable4
;
512 if (UNTAG_Bool(variable3
)) { /*if*/
513 variable1
= TAG_Bool(true);
516 variable1
= TAG_Int(UNTAG_Int(variable1
)+UNTAG_Int( TAG_Int(1))) /*i*/;
517 continue_22
: while(0);
520 variable1
= TAG_Bool(false);
522 return_label21
: while(false);
523 tracehead
= trace
.prev
;
526 val_t
hash___HashMap___has_only(val_t self
, val_t param0
) {
527 struct trace_t trace
= {NULL
, LOCATE_hash
, 265, LOCATE_hash___HashMap___has_only
};
533 trace
.prev
= tracehead
; tracehead
= &trace
;
535 variable1
= TAG_Int(0);
536 while (true) { /*while*/
537 variable2
= ATTR_hash___HashCollection____capacity( self
) /*HashCollection::_capacity*/;
538 variable2
= TAG_Bool(UNTAG_Int( variable1
/*i*/)<UNTAG_Int(variable2
));
539 if (!UNTAG_Bool(variable2
)) break; /* while*/
540 variable3
= ATTR_hash___HashCollection____array( self
) /*HashCollection::_array*/;
541 variable3
= UNBOX_NativeArray(variable3
)[UNTAG_Int( variable1
/*i*/)];
542 variable2
= variable3
;
543 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::==*/)))))));
544 variable4
= variable3
;
545 if (UNTAG_Bool(variable4
)) { /* and */
546 variable4
= ((abstract_collection___Couple___second_t
)CALL( variable2
/*c*/,COLOR_abstract_collection___Couple___second
))( variable2
/*c*/) /*Couple::second*/;
547 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::==*/)))))));
549 variable3
= variable4
;
550 if (UNTAG_Bool(variable3
)) { /*if*/
551 variable1
= TAG_Bool(false);
554 variable1
= TAG_Int(UNTAG_Int(variable1
)+UNTAG_Int( TAG_Int(1))) /*i*/;
555 continue_24
: while(0);
558 variable1
= TAG_Bool(true);
560 return_label23
: while(false);
561 tracehead
= trace
.prev
;
564 void hash___HashMap_____braeq(val_t self
, val_t param0
, val_t param1
) {
565 struct trace_t trace
= {NULL
, LOCATE_hash
, 276, LOCATE_hash___HashMap_____braeq
};
571 trace
.prev
= tracehead
; tracehead
= &trace
;
574 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::==*/)))))));
575 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);}
576 variable3
= ((hash___HashCollection___index_at_t
)CALL( self
,COLOR_hash___HashCollection___index_at
))( self
, variable0
/*key*/) /*HashCollection::index_at*/;
577 variable2
= variable3
;
578 variable4
= ATTR_hash___HashCollection____array( self
) /*HashCollection::_array*/;
579 variable4
= UNBOX_NativeArray(variable4
)[UNTAG_Int( variable2
/*i*/)];
580 variable3
= variable4
;
581 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::==*/)))))));
582 if (UNTAG_Bool(variable4
)) { /*if*/
583 ((abstract_collection___Couple___first__eq_t
)CALL( variable3
/*c*/,COLOR_abstract_collection___Couple___first__eq
))( variable3
/*c*/, variable0
/*key*/) /*Couple::first=*/;
584 ((abstract_collection___Couple___second__eq_t
)CALL( variable3
/*c*/,COLOR_abstract_collection___Couple___second__eq
))( variable3
/*c*/, variable1
/*v*/) /*Couple::second=*/;
586 variable4
= NEW_hash___HashMapNode___init( variable0
/*key*/, variable1
/*v*/); /*new HashMapNode[K, V]*/
587 ((hash___HashCollection___store_t
)CALL( self
,COLOR_hash___HashCollection___store
))( self
, variable2
/*i*/, variable4
) /*HashCollection::store*/;
589 tracehead
= trace
.prev
;
592 void hash___HashMap___remove(val_t self
, val_t param0
) {
593 struct trace_t trace
= {NULL
, LOCATE_hash
, 289, LOCATE_hash___HashMap___remove
};
599 trace
.prev
= tracehead
; tracehead
= &trace
;
601 variable1
= TAG_Int(0);
602 while (true) { /*while*/
603 variable2
= ATTR_hash___HashCollection____capacity( self
) /*HashCollection::_capacity*/;
604 variable2
= TAG_Bool(UNTAG_Int( variable1
/*i*/)<UNTAG_Int(variable2
));
605 if (!UNTAG_Bool(variable2
)) break; /* while*/
606 variable3
= ATTR_hash___HashCollection____array( self
) /*HashCollection::_array*/;
607 variable3
= UNBOX_NativeArray(variable3
)[UNTAG_Int( variable1
/*i*/)];
608 variable2
= variable3
;
609 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::==*/)))))));
610 variable4
= variable3
;
611 if (UNTAG_Bool(variable4
)) { /* and */
612 variable4
= ((abstract_collection___Couple___second_t
)CALL( variable2
/*c*/,COLOR_abstract_collection___Couple___second
))( variable2
/*c*/) /*Couple::second*/;
613 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::==*/)))));
615 variable3
= variable4
;
616 if (UNTAG_Bool(variable3
)) { /*if*/
617 ((hash___HashCollection___remove_index_t
)CALL( self
,COLOR_hash___HashCollection___remove_index
))( self
, variable1
/*i*/) /*HashCollection::remove_index*/;
620 variable1
= TAG_Int(UNTAG_Int(variable1
)+UNTAG_Int( TAG_Int(1))) /*i*/;
621 continue_27
: while(0);
624 return_label26
: while(false);
625 tracehead
= trace
.prev
;
628 void hash___HashMap___remove_at(val_t self
, val_t param0
) {
629 struct trace_t trace
= {NULL
, LOCATE_hash
, 302, LOCATE_hash___HashMap___remove_at
};
632 trace
.prev
= tracehead
; tracehead
= &trace
;
634 variable1
= ((hash___HashCollection___index_at_t
)CALL( self
,COLOR_hash___HashCollection___index_at
))( self
, variable0
/*key*/) /*HashCollection::index_at*/;
635 ((hash___HashCollection___remove_index_t
)CALL( self
,COLOR_hash___HashCollection___remove_index
))( self
, variable1
) /*HashCollection::remove_index*/;
636 tracehead
= trace
.prev
;
639 void hash___HashMap___clear(val_t self
) {
640 struct trace_t trace
= {NULL
, LOCATE_hash
, 304, LOCATE_hash___HashMap___clear
};
641 trace
.prev
= tracehead
; tracehead
= &trace
;
642 ((hash___HashCollection___raz_t
)CALL( self
,COLOR_hash___HashCollection___raz
))( self
) /*HashCollection::raz*/;
643 tracehead
= trace
.prev
;
646 val_t
hash___HashMap___couple_at(val_t self
, val_t param0
) {
647 struct trace_t trace
= {NULL
, LOCATE_hash
, 306, LOCATE_hash___HashMap___couple_at
};
651 trace
.prev
= tracehead
; tracehead
= &trace
;
653 variable1
= ATTR_hash___HashCollection____array( self
) /*HashCollection::_array*/;
654 variable2
= ((hash___HashCollection___index_at_t
)CALL( self
,COLOR_hash___HashCollection___index_at
))( self
, variable0
/*key*/) /*HashCollection::index_at*/;
655 variable1
= UNBOX_NativeArray(variable1
)[UNTAG_Int(variable2
)];
657 return_label30
: while(false);
658 tracehead
= trace
.prev
;
661 void hash___HashMap___init(val_t self
, int* init_table
) {
662 struct trace_t trace
= {NULL
, LOCATE_hash
, 308, LOCATE_hash___HashMap___init
};
663 trace
.prev
= tracehead
; tracehead
= &trace
;
664 if (init_table
[VAL2OBJ( self
)->vft
[INIT_TABLE_POS_HashMap
].i
]) return;
665 ATTR_hash___HashCollection____capacity( self
) /*HashCollection::_capacity*/ = TAG_Int(0);
666 ATTR_hash___HashCollection____length( self
) /*HashCollection::_length*/ = TAG_Int(0);
667 ((hash___HashCollection___enlarge_t
)CALL( self
,COLOR_hash___HashCollection___enlarge
))( self
, TAG_Int(0)) /*HashCollection::enlarge*/;
668 init_table
[VAL2OBJ( self
)->vft
[INIT_TABLE_POS_HashMap
].i
] = 1;
669 tracehead
= trace
.prev
;
672 val_t
hash___HashMapNode___key(val_t self
) {
673 struct trace_t trace
= {NULL
, LOCATE_hash
, 319, LOCATE_hash___HashMapNode___key
};
675 trace
.prev
= tracehead
; tracehead
= &trace
;
676 variable0
= ((abstract_collection___Couple___first_t
)CALL( self
,COLOR_abstract_collection___Couple___first
))( self
) /*Couple::first*/;
678 return_label32
: while(false);
679 tracehead
= trace
.prev
;
682 void hash___HashMapNode___init(val_t self
, val_t param0
, val_t param1
, int* init_table
) {
683 struct trace_t trace
= {NULL
, LOCATE_hash
, 322, LOCATE_hash___HashMapNode___init
};
686 trace
.prev
= tracehead
; tracehead
= &trace
;
689 if (init_table
[VAL2OBJ( self
)->vft
[INIT_TABLE_POS_HashMapNode
].i
]) return;
690 ((abstract_collection___Couple___first__eq_t
)CALL( self
,COLOR_abstract_collection___Couple___first__eq
))( self
, variable0
/*k*/) /*Couple::first=*/;
691 ((abstract_collection___Couple___second__eq_t
)CALL( self
,COLOR_abstract_collection___Couple___second__eq
))( self
, variable1
/*v*/) /*Couple::second=*/;
692 init_table
[VAL2OBJ( self
)->vft
[INIT_TABLE_POS_HashMapNode
].i
] = 1;
693 tracehead
= trace
.prev
;
696 val_t
hash___HashMapIterator___is_ok(val_t self
) {
697 struct trace_t trace
= {NULL
, LOCATE_hash
, 331, LOCATE_hash___HashMapIterator___is_ok
};
699 trace
.prev
= tracehead
; tracehead
= &trace
;
700 variable0
= ATTR_hash___HashMapIterator____node( self
) /*HashMapIterator::_node*/;
701 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::==*/)))))));
703 return_label34
: while(false);
704 tracehead
= trace
.prev
;
707 val_t
hash___HashMapIterator___item(val_t self
) {
708 struct trace_t trace
= {NULL
, LOCATE_hash
, 333, LOCATE_hash___HashMapIterator___item
};
710 trace
.prev
= tracehead
; tracehead
= &trace
;
711 variable0
= ((hash___HashMapIterator___is_ok_t
)CALL( self
,COLOR_abstract_collection___Iterator___is_ok
))( self
) /*HashMapIterator::is_ok*/;
712 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);}
713 variable0
= ATTR_hash___HashMapIterator____node( self
) /*HashMapIterator::_node*/;
714 variable0
= ((abstract_collection___Couple___second_t
)CALL(variable0
,COLOR_abstract_collection___Couple___second
))(variable0
) /*Couple::second*/;
716 return_label35
: while(false);
717 tracehead
= trace
.prev
;
720 void hash___HashMapIterator___item__eq(val_t self
, val_t param0
) {
721 struct trace_t trace
= {NULL
, LOCATE_hash
, 339, LOCATE_hash___HashMapIterator___item__eq
};
724 trace
.prev
= tracehead
; tracehead
= &trace
;
726 variable1
= ((hash___HashMapIterator___is_ok_t
)CALL( self
,COLOR_abstract_collection___Iterator___is_ok
))( self
) /*HashMapIterator::is_ok*/;
727 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);}
728 variable1
= ATTR_hash___HashMapIterator____node( self
) /*HashMapIterator::_node*/;
729 ((abstract_collection___Couple___second__eq_t
)CALL(variable1
,COLOR_abstract_collection___Couple___second__eq
))(variable1
, variable0
/*value*/) /*Couple::second=*/;
730 tracehead
= trace
.prev
;
733 val_t
hash___HashMapIterator___key(val_t self
) {
734 struct trace_t trace
= {NULL
, LOCATE_hash
, 345, LOCATE_hash___HashMapIterator___key
};
736 trace
.prev
= tracehead
; tracehead
= &trace
;
737 variable0
= ((hash___HashMapIterator___is_ok_t
)CALL( self
,COLOR_abstract_collection___Iterator___is_ok
))( self
) /*HashMapIterator::is_ok*/;
738 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);}
739 variable0
= ATTR_hash___HashMapIterator____node( self
) /*HashMapIterator::_node*/;
740 variable0
= ((abstract_collection___Couple___first_t
)CALL(variable0
,COLOR_abstract_collection___Couple___first
))(variable0
) /*Couple::first*/;
742 return_label37
: while(false);
743 tracehead
= trace
.prev
;
746 void hash___HashMapIterator___next(val_t self
) {
747 struct trace_t trace
= {NULL
, LOCATE_hash
, 351, LOCATE_hash___HashMapIterator___next
};
749 trace
.prev
= tracehead
; tracehead
= &trace
;
750 variable0
= ((hash___HashMapIterator___is_ok_t
)CALL( self
,COLOR_abstract_collection___Iterator___is_ok
))( self
) /*HashMapIterator::is_ok*/;
751 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);}
752 variable0
= ATTR_hash___HashMapIterator____node( self
) /*HashMapIterator::_node*/;
753 variable0
= ((hash___HashNode___next_item_t
)CALL(variable0
,COLOR_hash___HashNode___next_item
))(variable0
) /*HashNode::next_item*/;
754 ATTR_hash___HashMapIterator____node( self
) /*HashMapIterator::_node*/ = variable0
;
755 tracehead
= trace
.prev
;
758 void hash___HashMapIterator___init(val_t self
, val_t param0
, int* init_table
) {
759 struct trace_t trace
= {NULL
, LOCATE_hash
, 363, LOCATE_hash___HashMapIterator___init
};
762 trace
.prev
= tracehead
; tracehead
= &trace
;
764 if (init_table
[VAL2OBJ( self
)->vft
[INIT_TABLE_POS_HashMapIterator
].i
]) return;
765 ATTR_hash___HashMapIterator____map( self
) /*HashMapIterator::_map*/ = variable0
/*map*/;
766 variable1
= ((hash___HashCollection___first_item_t
)CALL( variable0
/*map*/,COLOR_hash___HashCollection___first_item
))( variable0
/*map*/) /*HashCollection::first_item*/;
767 ATTR_hash___HashMapIterator____node( self
) /*HashMapIterator::_node*/ = variable1
;
768 init_table
[VAL2OBJ( self
)->vft
[INIT_TABLE_POS_HashMapIterator
].i
] = 1;
769 tracehead
= trace
.prev
;
772 val_t
hash___HashSet___is_empty(val_t self
) {
773 struct trace_t trace
= {NULL
, LOCATE_hash
, 374, LOCATE_hash___HashSet___is_empty
};
775 trace
.prev
= tracehead
; tracehead
= &trace
;
776 variable0
= ATTR_hash___HashCollection____length( self
) /*HashCollection::_length*/;
777 variable0
= TAG_Bool((variable0
)==( TAG_Int(0)));
779 return_label40
: while(false);
780 tracehead
= trace
.prev
;
783 val_t
hash___HashSet___first(val_t self
) {
784 struct trace_t trace
= {NULL
, LOCATE_hash
, 376, LOCATE_hash___HashSet___first
};
786 trace
.prev
= tracehead
; tracehead
= &trace
;
787 variable0
= ATTR_hash___HashCollection____length( self
) /*HashCollection::_length*/;
788 variable0
= TAG_Bool(UNTAG_Int(variable0
)>UNTAG_Int( TAG_Int(0)));
789 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);}
790 variable0
= ATTR_hash___HashCollection____first_item( self
) /*HashCollection::_first_item*/;
791 variable0
= ((hash___HashSetNode___key_t
)CALL(variable0
,COLOR_hash___HashNode___key
))(variable0
) /*HashSetNode::key*/;
793 return_label41
: while(false);
794 tracehead
= trace
.prev
;
797 val_t
hash___HashSet___has(val_t self
, val_t param0
) {
798 struct trace_t trace
= {NULL
, LOCATE_hash
, 382, LOCATE_hash___HashSet___has
};
802 trace
.prev
= tracehead
; tracehead
= &trace
;
804 variable1
= ATTR_hash___HashCollection____array( self
) /*HashCollection::_array*/;
805 variable2
= ((hash___HashCollection___index_at_t
)CALL( self
,COLOR_hash___HashCollection___index_at
))( self
, variable0
/*item*/) /*HashCollection::index_at*/;
806 variable1
= UNBOX_NativeArray(variable1
)[UNTAG_Int(variable2
)];
807 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::==*/)))))));
809 return_label42
: while(false);
810 tracehead
= trace
.prev
;
813 void hash___HashSet___add(val_t self
, val_t param0
) {
814 struct trace_t trace
= {NULL
, LOCATE_hash
, 387, LOCATE_hash___HashSet___add
};
819 trace
.prev
= tracehead
; tracehead
= &trace
;
821 variable2
= ((hash___HashCollection___index_at_t
)CALL( self
,COLOR_hash___HashCollection___index_at
))( self
, variable0
/*item*/) /*HashCollection::index_at*/;
822 variable1
= variable2
;
823 variable3
= ATTR_hash___HashCollection____array( self
) /*HashCollection::_array*/;
824 variable3
= UNBOX_NativeArray(variable3
)[UNTAG_Int( variable1
/*i*/)];
825 variable2
= variable3
;
826 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::==*/)))))));
827 if (UNTAG_Bool(variable3
)) { /*if*/
828 ((hash___HashSetNode___key__eq_t
)CALL( variable2
/*c*/,COLOR_hash___HashSetNode___key__eq
))( variable2
/*c*/, variable0
/*item*/) /*HashSetNode::key=*/;
830 variable3
= NEW_hash___HashSetNode___init( variable0
/*item*/); /*new HashSetNode[E]*/
831 ((hash___HashCollection___store_t
)CALL( self
,COLOR_hash___HashCollection___store
))( self
, variable1
/*i*/, variable3
) /*HashCollection::store*/;
833 tracehead
= trace
.prev
;
836 void hash___HashSet___remove(val_t self
, val_t param0
) {
837 struct trace_t trace
= {NULL
, LOCATE_hash
, 398, LOCATE_hash___HashSet___remove
};
840 trace
.prev
= tracehead
; tracehead
= &trace
;
842 variable1
= ((hash___HashCollection___index_at_t
)CALL( self
,COLOR_hash___HashCollection___index_at
))( self
, variable0
/*item*/) /*HashCollection::index_at*/;
843 ((hash___HashCollection___remove_index_t
)CALL( self
,COLOR_hash___HashCollection___remove_index
))( self
, variable1
) /*HashCollection::remove_index*/;
844 tracehead
= trace
.prev
;
847 void hash___HashSet___clear(val_t self
) {
848 struct trace_t trace
= {NULL
, LOCATE_hash
, 400, LOCATE_hash___HashSet___clear
};
849 trace
.prev
= tracehead
; tracehead
= &trace
;
850 ((hash___HashCollection___raz_t
)CALL( self
,COLOR_hash___HashCollection___raz
))( self
) /*HashCollection::raz*/;
851 tracehead
= trace
.prev
;
854 val_t
hash___HashSet___iterator(val_t self
) {
855 struct trace_t trace
= {NULL
, LOCATE_hash
, 402, LOCATE_hash___HashSet___iterator
};
857 trace
.prev
= tracehead
; tracehead
= &trace
;
858 variable0
= NEW_hash___HashSetIterator___init( self
); /*new HashSetIterator[E]*/
860 return_label46
: while(false);
861 tracehead
= trace
.prev
;
864 void hash___HashSet___init(val_t self
, int* init_table
) {
865 struct trace_t trace
= {NULL
, LOCATE_hash
, 404, LOCATE_hash___HashSet___init
};
866 trace
.prev
= tracehead
; tracehead
= &trace
;
867 if (init_table
[VAL2OBJ( self
)->vft
[INIT_TABLE_POS_HashSet
].i
]) return;
868 ATTR_hash___HashCollection____capacity( self
) /*HashCollection::_capacity*/ = TAG_Int(0);
869 ATTR_hash___HashCollection____length( self
) /*HashCollection::_length*/ = TAG_Int(0);
870 ((hash___HashCollection___enlarge_t
)CALL( self
,COLOR_hash___HashCollection___enlarge
))( self
, TAG_Int(0)) /*HashCollection::enlarge*/;
871 init_table
[VAL2OBJ( self
)->vft
[INIT_TABLE_POS_HashSet
].i
] = 1;
872 tracehead
= trace
.prev
;
875 val_t
hash___HashSetNode___key(val_t self
) {
876 struct trace_t trace
= {NULL
, LOCATE_hash
, 416, LOCATE_hash___HashSetNode___key
};
877 trace
.prev
= tracehead
; tracehead
= &trace
;
878 tracehead
= trace
.prev
;
879 return ATTR_hash___HashSetNode____key( self
) /*HashSetNode::_key*/;
881 void hash___HashSetNode___key__eq(val_t self
, val_t param0
) {
882 struct trace_t trace
= {NULL
, LOCATE_hash
, 416, LOCATE_hash___HashSetNode___key__eq
};
883 trace
.prev
= tracehead
; tracehead
= &trace
;
884 ATTR_hash___HashSetNode____key( self
) /*HashSetNode::_key*/ = param0
;
885 tracehead
= trace
.prev
;
888 void hash___HashSetNode___init(val_t self
, val_t param0
, int* init_table
) {
889 struct trace_t trace
= {NULL
, LOCATE_hash
, 418, LOCATE_hash___HashSetNode___init
};
891 trace
.prev
= tracehead
; tracehead
= &trace
;
893 if (init_table
[VAL2OBJ( self
)->vft
[INIT_TABLE_POS_HashSetNode
].i
]) return;
894 ATTR_hash___HashSetNode____key( self
) /*HashSetNode::_key*/ = variable0
/*e*/;
895 init_table
[VAL2OBJ( self
)->vft
[INIT_TABLE_POS_HashSetNode
].i
] = 1;
896 tracehead
= trace
.prev
;
899 val_t
hash___HashSetIterator___is_ok(val_t self
) {
900 struct trace_t trace
= {NULL
, LOCATE_hash
, 426, LOCATE_hash___HashSetIterator___is_ok
};
902 trace
.prev
= tracehead
; tracehead
= &trace
;
903 variable0
= ATTR_hash___HashSetIterator____node( self
) /*HashSetIterator::_node*/;
904 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::==*/)))))));
906 return_label49
: while(false);
907 tracehead
= trace
.prev
;
910 val_t
hash___HashSetIterator___item(val_t self
) {
911 struct trace_t trace
= {NULL
, LOCATE_hash
, 428, LOCATE_hash___HashSetIterator___item
};
913 trace
.prev
= tracehead
; tracehead
= &trace
;
914 variable0
= ((hash___HashSetIterator___is_ok_t
)CALL( self
,COLOR_abstract_collection___Iterator___is_ok
))( self
) /*HashSetIterator::is_ok*/;
915 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);}
916 variable0
= ATTR_hash___HashSetIterator____node( self
) /*HashSetIterator::_node*/;
917 variable0
= ((hash___HashSetNode___key_t
)CALL(variable0
,COLOR_hash___HashNode___key
))(variable0
) /*HashSetNode::key*/;
919 return_label50
: while(false);
920 tracehead
= trace
.prev
;
923 void hash___HashSetIterator___next(val_t self
) {
924 struct trace_t trace
= {NULL
, LOCATE_hash
, 434, LOCATE_hash___HashSetIterator___next
};
926 trace
.prev
= tracehead
; tracehead
= &trace
;
927 variable0
= ((hash___HashSetIterator___is_ok_t
)CALL( self
,COLOR_abstract_collection___Iterator___is_ok
))( self
) /*HashSetIterator::is_ok*/;
928 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);}
929 variable0
= ATTR_hash___HashSetIterator____node( self
) /*HashSetIterator::_node*/;
930 variable0
= ((hash___HashNode___next_item_t
)CALL(variable0
,COLOR_hash___HashNode___next_item
))(variable0
) /*HashNode::next_item*/;
931 ATTR_hash___HashSetIterator____node( self
) /*HashSetIterator::_node*/ = variable0
;
932 tracehead
= trace
.prev
;
935 void hash___HashSetIterator___init(val_t self
, val_t param0
, int* init_table
) {
936 struct trace_t trace
= {NULL
, LOCATE_hash
, 446, LOCATE_hash___HashSetIterator___init
};
939 trace
.prev
= tracehead
; tracehead
= &trace
;
941 if (init_table
[VAL2OBJ( self
)->vft
[INIT_TABLE_POS_HashSetIterator
].i
]) return;
942 ATTR_hash___HashSetIterator____set( self
) /*HashSetIterator::_set*/ = variable0
/*set*/;
943 variable1
= ((hash___HashCollection___first_item_t
)CALL( variable0
/*set*/,COLOR_hash___HashCollection___first_item
))( variable0
/*set*/) /*HashCollection::first_item*/;
944 ATTR_hash___HashSetIterator____node( self
) /*HashSetIterator::_node*/ = variable1
;
945 init_table
[VAL2OBJ( self
)->vft
[INIT_TABLE_POS_HashSetIterator
].i
] = 1;
946 tracehead
= trace
.prev
;