Update SCM ignore rules.
[nit.git] / c_src / hash._sep.c
1 /* This C file is generated by NIT to compile module hash. */
2 #include "hash._sep.h"
3 val_t hash___Object___hash(val_t self) {
4 struct trace_t trace = {NULL, NULL, 21, LOCATE_hash___Object___hash};
5 val_t variable0;
6 trace.prev = tracehead; tracehead = &trace;
7 trace.file = LOCATE_hash;
8 variable0 = TAG_Int((bigint) self);
9 variable0 = TAG_Int(UNTAG_Int(variable0)/UNTAG_Int( TAG_Int(8)));
10 goto return_label0;
11 return_label0: while(false);
12 tracehead = trace.prev;
13 return variable0;
14 }
15 val_t hash___String___hash(val_t self) {
16 struct trace_t trace = {NULL, NULL, 29, LOCATE_hash___String___hash};
17 val_t variable0;
18 val_t variable1;
19 val_t variable2;
20 val_t variable3;
21 val_t variable4;
22 trace.prev = tracehead; tracehead = &trace;
23 trace.file = LOCATE_hash;
24 variable0 = TAG_Int(5381);
25 variable2 = ATTR_array___AbstractArray____length( self) /*AbstractArray::_length*/;
26 variable2 = TAG_Int(UNTAG_Int(variable2)-UNTAG_Int( TAG_Int(1)));
27 variable1 = variable2;
28 variable3 = ATTR_string___String____items( self) /*String::_items*/;
29 variable2 = variable3;
30 while (true) { /*while*/
31 variable3 = TAG_Bool(UNTAG_Int( variable1 /*i*/)>=UNTAG_Int( TAG_Int(0)));
32 if (!UNTAG_Bool(variable3)) break; /* while*/
33 variable3 = TAG_Int(UNTAG_Int( variable0 /*h*/)*UNTAG_Int( TAG_Int(32)));
34 variable3 = TAG_Int(UNTAG_Int(variable3)+UNTAG_Int( variable0 /*h*/));
35 variable4 = TAG_Char(UNBOX_NativeString( variable2 /*it*/)[UNTAG_Int( variable1 /*i*/)]);
36 variable4 = TAG_Int((unsigned char)UNTAG_Char(variable4));
37 variable3 = TAG_Int(UNTAG_Int(variable3)+UNTAG_Int(variable4));
38 variable0 = variable3 /*h=*/;
39 variable1 = TAG_Int(UNTAG_Int(variable1)-UNTAG_Int( TAG_Int(1))) /*i*/;
40 continue_2: while(0);
41 }
42 break_2: while(0);
43 variable0 = variable0 /*h*/;
44 goto return_label1;
45 return_label1: while(false);
46 tracehead = trace.prev;
47 return variable0;
48 }
49 val_t hash___Int___hash(val_t self) {
50 struct trace_t trace = {NULL, NULL, 45, LOCATE_hash___Int___hash};
51 val_t variable0;
52 trace.prev = tracehead; tracehead = &trace;
53 trace.file = LOCATE_hash;
54 variable0 = self;
55 goto return_label3;
56 return_label3: while(false);
57 tracehead = trace.prev;
58 return variable0;
59 }
60 val_t hash___Char___hash(val_t self) {
61 struct trace_t trace = {NULL, NULL, 49, LOCATE_hash___Char___hash};
62 val_t variable0;
63 trace.prev = tracehead; tracehead = &trace;
64 trace.file = LOCATE_hash;
65 variable0 = TAG_Int((unsigned char)UNTAG_Char( self));
66 goto return_label4;
67 return_label4: while(false);
68 tracehead = trace.prev;
69 return variable0;
70 }
71 val_t hash___Bool___hash(val_t self) {
72 struct trace_t trace = {NULL, NULL, 53, LOCATE_hash___Bool___hash};
73 val_t variable0;
74 trace.prev = tracehead; tracehead = &trace;
75 trace.file = LOCATE_hash;
76 if (UNTAG_Bool( self)) { /*if*/
77 variable0 = TAG_Int(1);
78 goto return_label5;
79 } else { /*if*/
80 variable0 = TAG_Int(0);
81 goto return_label5;
82 }
83 return_label5: while(false);
84 tracehead = trace.prev;
85 return variable0;
86 }
87 val_t hash___HashCollection___length(val_t self) {
88 struct trace_t trace = {NULL, NULL, 69, LOCATE_hash___HashCollection___length};
89 trace.prev = tracehead; tracehead = &trace;
90 trace.file = LOCATE_hash;
91 tracehead = trace.prev;
92 return ATTR_hash___HashCollection____length( self) /*HashCollection::_length*/;
93 }
94 val_t hash___HashCollection___first_item(val_t self) {
95 struct trace_t trace = {NULL, NULL, 71, LOCATE_hash___HashCollection___first_item};
96 trace.prev = tracehead; tracehead = &trace;
97 trace.file = LOCATE_hash;
98 tracehead = trace.prev;
99 return ATTR_hash___HashCollection____first_item( self) /*HashCollection::_first_item*/;
100 }
101 val_t hash___HashCollection___index_at(val_t self, val_t param0) {
102 struct trace_t trace = {NULL, NULL, 80, LOCATE_hash___HashCollection___index_at};
103 val_t variable0;
104 val_t variable1;
105 val_t variable2;
106 val_t variable3;
107 val_t variable4;
108 val_t variable5;
109 val_t variable6;
110 trace.prev = tracehead; tracehead = &trace;
111 trace.file = LOCATE_hash;
112 variable0 = param0;
113 variable2 = ATTR_hash___HashCollection____array( self) /*HashCollection::_array*/;
114 variable1 = variable2;
115 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*k*/ == NIT_NULL /*null*/) || (( variable0 /*k*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*k*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*k*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*k*/,COLOR_kernel___Object_____eqeq))( variable0 /*k*/, NIT_NULL /*null*/) /*Object::==*/)))))));
116 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_hash___HashCollection___index_at, LOCATE_hash, 84); nit_exit(1);}
117 variable2 = ATTR_hash___HashCollection____last_accessed_key( self) /*HashCollection::_last_accessed_key*/;
118 variable2 = TAG_Bool(( variable0 /*k*/ == variable2) || (( variable0 /*k*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*k*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*k*/,variable2)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*k*/,COLOR_kernel___Object_____eqeq))( variable0 /*k*/, variable2) /*Object::==*/)))));
119 if (UNTAG_Bool(variable2)) { /*if*/
120 variable2 = ATTR_hash___HashCollection____last_accessed_index( self) /*HashCollection::_last_accessed_index*/;
121 variable1 = variable2;
122 goto return_label6;
123 }
124 variable3 = ((hash___Object___hash_t)CALL( variable0 /*k*/,COLOR_hash___Object___hash))( variable0 /*k*/) /*Object::hash*/;
125 variable4 = ATTR_hash___HashCollection____capacity( self) /*HashCollection::_capacity*/;
126 variable3 = TAG_Int(UNTAG_Int(variable3)%UNTAG_Int(variable4));
127 variable2 = variable3;
128 variable3 = TAG_Bool(UNTAG_Int( variable2 /*base*/)<UNTAG_Int( TAG_Int(0)));
129 if (UNTAG_Bool(variable3)) { /*if*/
130 variable3 = TAG_Int(-UNTAG_Int( variable2 /*base*/));
131 variable2 = variable3 /*base=*/;
132 }
133 variable3 = variable2 /*base*/;
134 while (true) { /*while*/
135 if (!UNTAG_Bool( TAG_Bool(true))) break; /* while*/
136 variable5 = UNBOX_NativeArray( variable1 /*arr*/)[UNTAG_Int( variable3 /*cur*/)];
137 variable4 = variable5;
138 variable5 = TAG_Bool(( variable4 /*c*/ == NIT_NULL /*null*/) || (( variable4 /*c*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable4 /*c*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable4 /*c*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable4 /*c*/,COLOR_kernel___Object_____eqeq))( variable4 /*c*/, NIT_NULL /*null*/) /*Object::==*/)))));
139 variable6 = variable5;
140 if (!UNTAG_Bool(variable6)) { /* or */
141 variable6 = ((hash___HashNode___key_t)CALL( variable4 /*c*/,COLOR_hash___HashNode___key))( variable4 /*c*/) /*HashNode::key*/;
142 variable6 = TAG_Bool((variable6 == variable0 /*k*/) || ((variable6 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable6,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable6, variable0 /*k*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable6,COLOR_kernel___Object_____eqeq))(variable6, variable0 /*k*/) /*Object::==*/)))));
143 }
144 variable5 = variable6;
145 if (UNTAG_Bool(variable5)) { /*if*/
146 ATTR_hash___HashCollection____last_accessed_index( self) /*HashCollection::_last_accessed_index*/ = variable3 /*cur*/;
147 ATTR_hash___HashCollection____last_accessed_key( self) /*HashCollection::_last_accessed_key*/ = variable0 /*k*/;
148 variable1 = variable3 /*cur*/;
149 goto return_label6;
150 }
151 variable3 = TAG_Int(UNTAG_Int(variable3)-UNTAG_Int( TAG_Int(1))) /*cur*/;
152 variable5 = TAG_Bool(UNTAG_Int( variable3 /*cur*/)<UNTAG_Int( TAG_Int(0)));
153 if (UNTAG_Bool(variable5)) { /*if*/
154 variable5 = ATTR_hash___HashCollection____capacity( self) /*HashCollection::_capacity*/;
155 variable5 = TAG_Int(UNTAG_Int(variable5)-UNTAG_Int( TAG_Int(1)));
156 variable3 = variable5 /*cur=*/;
157 }
158 variable5 = TAG_Bool(( variable3 /*cur*/)!=( variable2 /*base*/));
159 if (!UNTAG_Bool(variable5)) { fprintf(stderr, "Assert%s failed", " 'no_loop' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_hash___HashCollection___index_at, LOCATE_hash, 104); nit_exit(1);}
160 continue_7: while(0);
161 }
162 break_7: while(0);
163 fprintf(stderr, "Aborted"); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_hash___HashCollection___index_at, LOCATE_hash, 106); nit_exit(1);
164 return_label6: while(false);
165 tracehead = trace.prev;
166 return variable1;
167 }
168 void hash___HashCollection___store(val_t self, val_t param0, val_t param1) {
169 struct trace_t trace = {NULL, NULL, 109, LOCATE_hash___HashCollection___store};
170 val_t variable0;
171 val_t variable1;
172 val_t variable2;
173 val_t variable3;
174 trace.prev = tracehead; tracehead = &trace;
175 trace.file = LOCATE_hash;
176 variable0 = param0;
177 variable1 = param1;
178 variable2 = ATTR_hash___HashCollection____first_item( self) /*HashCollection::_first_item*/;
179 variable2 = TAG_Bool((variable2 == NIT_NULL /*null*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2, NIT_NULL /*null*/) /*Object::==*/)))));
180 if (UNTAG_Bool(variable2)) { /*if*/
181 ATTR_hash___HashCollection____first_item( self) /*HashCollection::_first_item*/ = variable1 /*node*/;
182 } else { /*if*/
183 variable2 = ATTR_hash___HashCollection____last_item( self) /*HashCollection::_last_item*/;
184 ((hash___HashNode___next_item__eq_t)CALL(variable2,COLOR_hash___HashNode___next_item__eq))(variable2, variable1 /*node*/) /*HashNode::next_item=*/;
185 }
186 variable2 = ATTR_hash___HashCollection____last_item( self) /*HashCollection::_last_item*/;
187 ((hash___HashNode___prev_item__eq_t)CALL( variable1 /*node*/,COLOR_hash___HashNode___prev_item__eq))( variable1 /*node*/, variable2) /*HashNode::prev_item=*/;
188 ((hash___HashNode___next_item__eq_t)CALL( variable1 /*node*/,COLOR_hash___HashNode___next_item__eq))( variable1 /*node*/, NIT_NULL /*null*/) /*HashNode::next_item=*/;
189 ATTR_hash___HashCollection____last_item( self) /*HashCollection::_last_item*/ = variable1 /*node*/;
190 variable2 = ATTR_hash___HashCollection____array( self) /*HashCollection::_array*/;
191 variable2 = UNBOX_NativeArray(variable2)[UNTAG_Int( variable0 /*index*/)];
192 variable2 = TAG_Bool((variable2 == NIT_NULL /*null*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2, NIT_NULL /*null*/) /*Object::==*/)))));
193 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_hash___HashCollection___store, LOCATE_hash, 122); nit_exit(1);}
194 variable2 = ATTR_hash___HashCollection____array( self) /*HashCollection::_array*/;
195 UNBOX_NativeArray(variable2)[UNTAG_Int( variable0 /*index*/)]= variable1 /*node*/;
196 variable3 = ATTR_hash___HashCollection____length( self) /*HashCollection::_length*/;
197 variable2 = variable3;
198 variable3 = TAG_Int(UNTAG_Int( variable2 /*l*/)+UNTAG_Int( TAG_Int(1)));
199 ATTR_hash___HashCollection____length( self) /*HashCollection::_length*/ = variable3;
200 variable3 = TAG_Int(UNTAG_Int( variable2 /*l*/)+UNTAG_Int( TAG_Int(5)));
201 variable3 = TAG_Int(UNTAG_Int(variable3)*UNTAG_Int( TAG_Int(150)));
202 variable3 = TAG_Int(UNTAG_Int(variable3)/UNTAG_Int( TAG_Int(100)));
203 variable2 = variable3 /*l=*/;
204 variable3 = ATTR_hash___HashCollection____capacity( self) /*HashCollection::_capacity*/;
205 variable3 = TAG_Bool(UNTAG_Int( variable2 /*l*/)>=UNTAG_Int(variable3));
206 if (UNTAG_Bool(variable3)) { /*if*/
207 variable3 = TAG_Int(UNTAG_Int( variable2 /*l*/)*UNTAG_Int( TAG_Int(2)));
208 ((hash___HashCollection___enlarge_t)CALL( self,COLOR_hash___HashCollection___enlarge))( self, variable3) /*HashCollection::enlarge*/;
209 }
210 tracehead = trace.prev;
211 return;
212 }
213 void hash___HashCollection___remove_index(val_t self, val_t param0) {
214 struct trace_t trace = {NULL, NULL, 132, LOCATE_hash___HashCollection___remove_index};
215 val_t variable0;
216 val_t variable1;
217 val_t variable2;
218 val_t variable3;
219 val_t variable4;
220 val_t variable5;
221 val_t variable6;
222 trace.prev = tracehead; tracehead = &trace;
223 trace.file = LOCATE_hash;
224 variable0 = param0;
225 variable1 = TAG_Bool(UNTAG_Int( variable0 /*i*/)>=UNTAG_Int( TAG_Int(0)));
226 variable2 = variable1;
227 if (UNTAG_Bool(variable2)) { /* and */
228 variable2 = ATTR_hash___HashCollection____capacity( self) /*HashCollection::_capacity*/;
229 variable2 = TAG_Bool(UNTAG_Int( variable0 /*i*/)<UNTAG_Int(variable2));
230 }
231 variable1 = variable2;
232 if (!UNTAG_Bool(variable1)) { fprintf(stderr, "Assert%s failed", " 'correct_index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_hash___HashCollection___remove_index, LOCATE_hash, 134); nit_exit(1);}
233 variable2 = ATTR_hash___HashCollection____array( self) /*HashCollection::_array*/;
234 variable2 = UNBOX_NativeArray(variable2)[UNTAG_Int( variable0 /*i*/)];
235 variable1 = variable2;
236 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*node*/ == NIT_NULL /*null*/) || (( variable1 /*node*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*node*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*node*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*node*/,COLOR_kernel___Object_____eqeq))( variable1 /*node*/, NIT_NULL /*null*/) /*Object::==*/)))))));
237 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed", " 'has_couple' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_hash___HashCollection___remove_index, LOCATE_hash, 136); nit_exit(1);}
238 variable3 = ((hash___HashNode___prev_item_t)CALL( variable1 /*node*/,COLOR_hash___HashNode___prev_item))( variable1 /*node*/) /*HashNode::prev_item*/;
239 variable2 = variable3;
240 variable4 = ((hash___HashNode___next_item_t)CALL( variable1 /*node*/,COLOR_hash___HashNode___next_item))( variable1 /*node*/) /*HashNode::next_item*/;
241 variable3 = variable4;
242 variable4 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable2 /*prev*/ == NIT_NULL /*null*/) || (( variable2 /*prev*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable2 /*prev*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable2 /*prev*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable2 /*prev*/,COLOR_kernel___Object_____eqeq))( variable2 /*prev*/, NIT_NULL /*null*/) /*Object::==*/)))))));
243 if (UNTAG_Bool(variable4)) { /*if*/
244 ((hash___HashNode___next_item__eq_t)CALL( variable2 /*prev*/,COLOR_hash___HashNode___next_item__eq))( variable2 /*prev*/, variable3 /*next*/) /*HashNode::next_item=*/;
245 } else { /*if*/
246 ATTR_hash___HashCollection____first_item( self) /*HashCollection::_first_item*/ = variable3 /*next*/;
247 }
248 variable4 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable3 /*next*/ == NIT_NULL /*null*/) || (( variable3 /*next*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable3 /*next*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable3 /*next*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable3 /*next*/,COLOR_kernel___Object_____eqeq))( variable3 /*next*/, NIT_NULL /*null*/) /*Object::==*/)))))));
249 if (UNTAG_Bool(variable4)) { /*if*/
250 ((hash___HashNode___prev_item__eq_t)CALL( variable3 /*next*/,COLOR_hash___HashNode___prev_item__eq))( variable3 /*next*/, variable2 /*prev*/) /*HashNode::prev_item=*/;
251 } else { /*if*/
252 ATTR_hash___HashCollection____last_item( self) /*HashCollection::_last_item*/ = variable2 /*prev*/;
253 }
254 variable4 = ATTR_hash___HashCollection____array( self) /*HashCollection::_array*/;
255 UNBOX_NativeArray(variable4)[UNTAG_Int( variable0 /*i*/)]= NIT_NULL /*null*/;
256 ATTR_hash___HashCollection____length( self) /*HashCollection::_length*/ = TAG_Int(UNTAG_Int(ATTR_hash___HashCollection____length( self) /*HashCollection::_length*/)-UNTAG_Int( TAG_Int(1)));
257 while (true) { /*while*/
258 if (!UNTAG_Bool( TAG_Bool(true))) break; /* while*/
259 variable0 = TAG_Int(UNTAG_Int(variable0)-UNTAG_Int( TAG_Int(1))) /*i*/;
260 variable4 = TAG_Bool(UNTAG_Int( variable0 /*i*/)<UNTAG_Int( TAG_Int(0)));
261 if (UNTAG_Bool(variable4)) { /*if*/
262 variable4 = ATTR_hash___HashCollection____capacity( self) /*HashCollection::_capacity*/;
263 variable4 = TAG_Int(UNTAG_Int(variable4)-UNTAG_Int( TAG_Int(1)));
264 variable0 = variable4 /*i=*/;
265 }
266 variable5 = ATTR_hash___HashCollection____array( self) /*HashCollection::_array*/;
267 variable5 = UNBOX_NativeArray(variable5)[UNTAG_Int( variable0 /*i*/)];
268 variable4 = variable5;
269 variable5 = TAG_Bool(( variable4 /*n*/ == NIT_NULL /*null*/) || (( variable4 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable4 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable4 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable4 /*n*/,COLOR_kernel___Object_____eqeq))( variable4 /*n*/, NIT_NULL /*null*/) /*Object::==*/)))));
270 if (UNTAG_Bool(variable5)) { /*if*/
271 goto return_label9;
272 }
273 variable6 = ((hash___HashNode___key_t)CALL( variable4 /*n*/,COLOR_hash___HashNode___key))( variable4 /*n*/) /*HashNode::key*/;
274 variable6 = ((hash___HashCollection___index_at_t)CALL( self,COLOR_hash___HashCollection___index_at))( self, variable6) /*HashCollection::index_at*/;
275 variable5 = variable6;
276 variable6 = TAG_Bool(( variable0 /*i*/)!=( variable5 /*i2*/));
277 if (UNTAG_Bool(variable6)) { /*if*/
278 variable6 = ATTR_hash___HashCollection____array( self) /*HashCollection::_array*/;
279 UNBOX_NativeArray(variable6)[UNTAG_Int( variable0 /*i*/)]= NIT_NULL /*null*/;
280 variable6 = ATTR_hash___HashCollection____array( self) /*HashCollection::_array*/;
281 variable6 = UNBOX_NativeArray(variable6)[UNTAG_Int( variable5 /*i2*/)];
282 variable6 = TAG_Bool((variable6 == NIT_NULL /*null*/) || ((variable6 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable6,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable6, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable6,COLOR_kernel___Object_____eqeq))(variable6, NIT_NULL /*null*/) /*Object::==*/)))));
283 if (!UNTAG_Bool(variable6)) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_hash___HashCollection___remove_index, LOCATE_hash, 166); nit_exit(1);}
284 variable6 = ATTR_hash___HashCollection____array( self) /*HashCollection::_array*/;
285 UNBOX_NativeArray(variable6)[UNTAG_Int( variable5 /*i2*/)]= variable4 /*n*/;
286 }
287 continue_10: while(0);
288 }
289 break_10: while(0);
290 return_label9: while(false);
291 tracehead = trace.prev;
292 return;
293 }
294 void hash___HashCollection___raz(val_t self) {
295 struct trace_t trace = {NULL, NULL, 172, LOCATE_hash___HashCollection___raz};
296 val_t variable0;
297 val_t variable1;
298 trace.prev = tracehead; tracehead = &trace;
299 trace.file = LOCATE_hash;
300 variable1 = ATTR_hash___HashCollection____capacity( self) /*HashCollection::_capacity*/;
301 variable1 = TAG_Int(UNTAG_Int(variable1)-UNTAG_Int( TAG_Int(1)));
302 variable0 = variable1;
303 while (true) { /*while*/
304 variable1 = TAG_Bool(UNTAG_Int( variable0 /*i*/)>=UNTAG_Int( TAG_Int(0)));
305 if (!UNTAG_Bool(variable1)) break; /* while*/
306 variable1 = ATTR_hash___HashCollection____array( self) /*HashCollection::_array*/;
307 UNBOX_NativeArray(variable1)[UNTAG_Int( variable0 /*i*/)]= NIT_NULL /*null*/;
308 variable0 = TAG_Int(UNTAG_Int(variable0)-UNTAG_Int( TAG_Int(1))) /*i*/;
309 continue_12: while(0);
310 }
311 break_12: while(0);
312 ATTR_hash___HashCollection____length( self) /*HashCollection::_length*/ = TAG_Int(0);
313 ATTR_hash___HashCollection____first_item( self) /*HashCollection::_first_item*/ = NIT_NULL /*null*/;
314 ATTR_hash___HashCollection____last_item( self) /*HashCollection::_last_item*/ = NIT_NULL /*null*/;
315 ATTR_hash___HashCollection____last_accessed_key( self) /*HashCollection::_last_accessed_key*/ = NIT_NULL /*null*/;
316 tracehead = trace.prev;
317 return;
318 }
319 void hash___HashCollection___enlarge(val_t self, val_t param0) {
320 struct trace_t trace = {NULL, NULL, 185, LOCATE_hash___HashCollection___enlarge};
321 val_t variable0;
322 val_t variable1;
323 val_t variable2;
324 val_t variable3;
325 val_t variable4;
326 val_t variable5;
327 val_t variable6;
328 val_t variable7;
329 trace.prev = tracehead; tracehead = &trace;
330 trace.file = LOCATE_hash;
331 variable0 = param0;
332 variable2 = ATTR_hash___HashCollection____capacity( self) /*HashCollection::_capacity*/;
333 variable1 = variable2;
334 variable2 = ATTR_hash___HashCollection____length( self) /*HashCollection::_length*/;
335 variable2 = TAG_Int(UNTAG_Int(variable2)+UNTAG_Int( TAG_Int(1)));
336 variable2 = TAG_Bool(UNTAG_Int( variable0 /*cap*/)<UNTAG_Int(variable2));
337 if (UNTAG_Bool(variable2)) { /*if*/
338 variable2 = ATTR_hash___HashCollection____length( self) /*HashCollection::_length*/;
339 variable2 = TAG_Int(UNTAG_Int(variable2)+UNTAG_Int( TAG_Int(1)));
340 variable0 = variable2 /*cap=*/;
341 }
342 variable2 = ATTR_hash___HashCollection____capacity( self) /*HashCollection::_capacity*/;
343 variable2 = TAG_Bool(UNTAG_Int( variable0 /*cap*/)<=UNTAG_Int(variable2));
344 if (UNTAG_Bool(variable2)) { /*if*/
345 goto return_label13;
346 }
347 ATTR_hash___HashCollection____capacity( self) /*HashCollection::_capacity*/ = variable0 /*cap*/;
348 ATTR_hash___HashCollection____last_accessed_key( self) /*HashCollection::_last_accessed_key*/ = NIT_NULL /*null*/;
349 variable3 = BOX_NativeArray((val_t*)malloc((UNTAG_Int( variable0 /*cap*/) * sizeof(val_t))));
350 variable2 = variable3;
351 ATTR_hash___HashCollection____array( self) /*HashCollection::_array*/ = variable2 /*new_array*/;
352 variable4 = TAG_Int(UNTAG_Int( variable0 /*cap*/)-UNTAG_Int( TAG_Int(1)));
353 variable3 = variable4;
354 while (true) { /*while*/
355 variable4 = TAG_Bool(UNTAG_Int( variable3 /*i*/)>=UNTAG_Int( TAG_Int(0)));
356 if (!UNTAG_Bool(variable4)) break; /* while*/
357 UNBOX_NativeArray( variable2 /*new_array*/)[UNTAG_Int( variable3 /*i*/)]= NIT_NULL /*null*/;
358 variable3 = TAG_Int(UNTAG_Int(variable3)-UNTAG_Int( TAG_Int(1))) /*i*/;
359 continue_14: while(0);
360 }
361 break_14: while(0);
362 variable4 = ATTR_hash___HashCollection____capacity( self) /*HashCollection::_capacity*/;
363 variable4 = TAG_Bool(UNTAG_Int(variable4)<=UNTAG_Int( variable1 /*old_cap*/));
364 if (UNTAG_Bool(variable4)) { /*if*/
365 goto return_label13;
366 }
367 variable5 = ATTR_hash___HashCollection____array( self) /*HashCollection::_array*/;
368 variable4 = variable5;
369 variable6 = ATTR_hash___HashCollection____first_item( self) /*HashCollection::_first_item*/;
370 variable5 = variable6;
371 while (true) { /*while*/
372 variable6 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable5 /*node*/ == NIT_NULL /*null*/) || (( variable5 /*node*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable5 /*node*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable5 /*node*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable5 /*node*/,COLOR_kernel___Object_____eqeq))( variable5 /*node*/, NIT_NULL /*null*/) /*Object::==*/)))))));
373 if (!UNTAG_Bool(variable6)) break; /* while*/
374 variable7 = ((hash___HashNode___key_t)CALL( variable5 /*node*/,COLOR_hash___HashNode___key))( variable5 /*node*/) /*HashNode::key*/;
375 variable7 = ((hash___HashCollection___index_at_t)CALL( self,COLOR_hash___HashCollection___index_at))( self, variable7) /*HashCollection::index_at*/;
376 variable6 = variable7;
377 variable7 = UNBOX_NativeArray( variable4 /*new_array*/)[UNTAG_Int( variable6 /*ind*/)];
378 variable7 = TAG_Bool((variable7 == NIT_NULL /*null*/) || ((variable7 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable7,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable7, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable7,COLOR_kernel___Object_____eqeq))(variable7, NIT_NULL /*null*/) /*Object::==*/)))));
379 if (!UNTAG_Bool(variable7)) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_hash___HashCollection___enlarge, LOCATE_hash, 213); nit_exit(1);}
380 UNBOX_NativeArray( variable4 /*new_array*/)[UNTAG_Int( variable6 /*ind*/)]= variable5 /*node*/;
381 variable7 = ((hash___HashNode___next_item_t)CALL( variable5 /*node*/,COLOR_hash___HashNode___next_item))( variable5 /*node*/) /*HashNode::next_item*/;
382 variable5 = variable7 /*node=*/;
383 continue_15: while(0);
384 }
385 break_15: while(0);
386 ATTR_hash___HashCollection____last_accessed_key( self) /*HashCollection::_last_accessed_key*/ = NIT_NULL /*null*/;
387 return_label13: while(false);
388 tracehead = trace.prev;
389 return;
390 }
391 void hash___HashCollection___init(val_t self, int* init_table) {
392 struct trace_t trace = {NULL, NULL, 0, LOCATE_hash___HashCollection___init};
393 trace.prev = tracehead; tracehead = &trace;
394 trace.file = LOCATE_hash;
395 tracehead = trace.prev;
396 return;
397 }
398 val_t hash___HashNode___key(val_t self) {
399 struct trace_t trace = {NULL, NULL, 222, LOCATE_hash___HashNode___key};
400 trace.prev = tracehead; tracehead = &trace;
401 trace.file = LOCATE_hash;
402 fprintf(stderr, "Deferred method %s called");
403 fprintf(stderr, " in %s (%s:%d)\n", LOCATE_hash___HashCollection___enlarge, LOCATE_hash, 222);
404 nit_exit(1);
405 tracehead = trace.prev;
406 return NIT_NULL;
407 }
408 val_t hash___HashNode___next_item(val_t self) {
409 struct trace_t trace = {NULL, NULL, 224, LOCATE_hash___HashNode___next_item};
410 trace.prev = tracehead; tracehead = &trace;
411 trace.file = LOCATE_hash;
412 tracehead = trace.prev;
413 return ATTR_hash___HashNode____next_item( self) /*HashNode::_next_item*/;
414 }
415 void hash___HashNode___next_item__eq(val_t self, val_t param0) {
416 struct trace_t trace = {NULL, NULL, 224, LOCATE_hash___HashNode___next_item__eq};
417 trace.prev = tracehead; tracehead = &trace;
418 trace.file = LOCATE_hash;
419 ATTR_hash___HashNode____next_item( self) /*HashNode::_next_item*/ = param0;
420 tracehead = trace.prev;
421 return;
422 }
423 val_t hash___HashNode___prev_item(val_t self) {
424 struct trace_t trace = {NULL, NULL, 225, LOCATE_hash___HashNode___prev_item};
425 trace.prev = tracehead; tracehead = &trace;
426 trace.file = LOCATE_hash;
427 tracehead = trace.prev;
428 return ATTR_hash___HashNode____prev_item( self) /*HashNode::_prev_item*/;
429 }
430 void hash___HashNode___prev_item__eq(val_t self, val_t param0) {
431 struct trace_t trace = {NULL, NULL, 225, LOCATE_hash___HashNode___prev_item__eq};
432 trace.prev = tracehead; tracehead = &trace;
433 trace.file = LOCATE_hash;
434 ATTR_hash___HashNode____prev_item( self) /*HashNode::_prev_item*/ = param0;
435 tracehead = trace.prev;
436 return;
437 }
438 void hash___HashNode___init(val_t self, int* init_table) {
439 struct trace_t trace = {NULL, NULL, 0, LOCATE_hash___HashNode___init};
440 trace.prev = tracehead; tracehead = &trace;
441 trace.file = LOCATE_hash;
442 tracehead = trace.prev;
443 return;
444 }
445 val_t hash___HashMap___iterator(val_t self) {
446 struct trace_t trace = {NULL, NULL, 232, LOCATE_hash___HashMap___iterator};
447 val_t variable0;
448 trace.prev = tracehead; tracehead = &trace;
449 trace.file = LOCATE_hash;
450 variable0 = NEW_HashMapIterator_hash___HashMapIterator___init( self); /*new HashMapIterator[K, V]*/
451 goto return_label16;
452 return_label16: while(false);
453 tracehead = trace.prev;
454 return variable0;
455 }
456 val_t hash___HashMap___first(val_t self) {
457 struct trace_t trace = {NULL, NULL, 234, LOCATE_hash___HashMap___first};
458 val_t variable0;
459 trace.prev = tracehead; tracehead = &trace;
460 trace.file = LOCATE_hash;
461 variable0 = ATTR_hash___HashCollection____length( self) /*HashCollection::_length*/;
462 variable0 = TAG_Bool(UNTAG_Int(variable0)>UNTAG_Int( TAG_Int(0)));
463 if (!UNTAG_Bool(variable0)) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_hash___HashMap___first, LOCATE_hash, 236); nit_exit(1);}
464 variable0 = ATTR_hash___HashCollection____first_item( self) /*HashCollection::_first_item*/;
465 variable0 = ((abstract_collection___Couple___second_t)CALL(variable0,COLOR_abstract_collection___Couple___second))(variable0) /*Couple::second*/;
466 goto return_label17;
467 return_label17: while(false);
468 tracehead = trace.prev;
469 return variable0;
470 }
471 val_t hash___HashMap___is_empty(val_t self) {
472 struct trace_t trace = {NULL, NULL, 240, LOCATE_hash___HashMap___is_empty};
473 val_t variable0;
474 trace.prev = tracehead; tracehead = &trace;
475 trace.file = LOCATE_hash;
476 variable0 = ATTR_hash___HashCollection____length( self) /*HashCollection::_length*/;
477 variable0 = TAG_Bool((variable0)==( TAG_Int(0)));
478 goto return_label18;
479 return_label18: while(false);
480 tracehead = trace.prev;
481 return variable0;
482 }
483 val_t hash___HashMap___count(val_t self, val_t param0) {
484 struct trace_t trace = {NULL, NULL, 242, LOCATE_hash___HashMap___count};
485 val_t variable0;
486 val_t variable1;
487 val_t variable2;
488 val_t variable3;
489 val_t variable4;
490 val_t variable5;
491 trace.prev = tracehead; tracehead = &trace;
492 trace.file = LOCATE_hash;
493 variable0 = param0;
494 variable1 = TAG_Int(0);
495 variable2 = TAG_Int(0);
496 while (true) { /*while*/
497 variable3 = ATTR_hash___HashCollection____capacity( self) /*HashCollection::_capacity*/;
498 variable3 = TAG_Bool(UNTAG_Int( variable2 /*i*/)<UNTAG_Int(variable3));
499 if (!UNTAG_Bool(variable3)) break; /* while*/
500 variable4 = ATTR_hash___HashCollection____array( self) /*HashCollection::_array*/;
501 variable4 = UNBOX_NativeArray(variable4)[UNTAG_Int( variable2 /*i*/)];
502 variable3 = variable4;
503 variable4 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable3 /*c*/ == NIT_NULL /*null*/) || (( variable3 /*c*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable3 /*c*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable3 /*c*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable3 /*c*/,COLOR_kernel___Object_____eqeq))( variable3 /*c*/, NIT_NULL /*null*/) /*Object::==*/)))))));
504 variable5 = variable4;
505 if (UNTAG_Bool(variable5)) { /* and */
506 variable5 = ((abstract_collection___Couple___second_t)CALL( variable3 /*c*/,COLOR_abstract_collection___Couple___second))( variable3 /*c*/) /*Couple::second*/;
507 variable5 = TAG_Bool((variable5 == variable0 /*item*/) || ((variable5 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable5,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable5, variable0 /*item*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable5,COLOR_kernel___Object_____eqeq))(variable5, variable0 /*item*/) /*Object::==*/)))));
508 }
509 variable4 = variable5;
510 if (UNTAG_Bool(variable4)) { /*if*/
511 variable1 = TAG_Int(UNTAG_Int(variable1)+UNTAG_Int( TAG_Int(1))) /*nb*/;
512 }
513 variable2 = TAG_Int(UNTAG_Int(variable2)+UNTAG_Int( TAG_Int(1))) /*i*/;
514 continue_20: while(0);
515 }
516 break_20: while(0);
517 variable1 = variable1 /*nb*/;
518 goto return_label19;
519 return_label19: while(false);
520 tracehead = trace.prev;
521 return variable1;
522 }
523 val_t hash___HashMap___has(val_t self, val_t param0) {
524 struct trace_t trace = {NULL, NULL, 254, LOCATE_hash___HashMap___has};
525 val_t variable0;
526 val_t variable1;
527 val_t variable2;
528 val_t variable3;
529 val_t variable4;
530 trace.prev = tracehead; tracehead = &trace;
531 trace.file = LOCATE_hash;
532 variable0 = param0;
533 variable1 = TAG_Int(0);
534 while (true) { /*while*/
535 variable2 = ATTR_hash___HashCollection____capacity( self) /*HashCollection::_capacity*/;
536 variable2 = TAG_Bool(UNTAG_Int( variable1 /*i*/)<UNTAG_Int(variable2));
537 if (!UNTAG_Bool(variable2)) break; /* while*/
538 variable3 = ATTR_hash___HashCollection____array( self) /*HashCollection::_array*/;
539 variable3 = UNBOX_NativeArray(variable3)[UNTAG_Int( variable1 /*i*/)];
540 variable2 = variable3;
541 variable3 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable2 /*c*/ == NIT_NULL /*null*/) || (( variable2 /*c*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable2 /*c*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable2 /*c*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable2 /*c*/,COLOR_kernel___Object_____eqeq))( variable2 /*c*/, NIT_NULL /*null*/) /*Object::==*/)))))));
542 variable4 = variable3;
543 if (UNTAG_Bool(variable4)) { /* and */
544 variable4 = ((abstract_collection___Couple___second_t)CALL( variable2 /*c*/,COLOR_abstract_collection___Couple___second))( variable2 /*c*/) /*Couple::second*/;
545 variable4 = TAG_Bool((variable4 == variable0 /*item*/) || ((variable4 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable4,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable4, variable0 /*item*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable4,COLOR_kernel___Object_____eqeq))(variable4, variable0 /*item*/) /*Object::==*/)))));
546 }
547 variable3 = variable4;
548 if (UNTAG_Bool(variable3)) { /*if*/
549 variable1 = TAG_Bool(true);
550 goto return_label21;
551 }
552 variable1 = TAG_Int(UNTAG_Int(variable1)+UNTAG_Int( TAG_Int(1))) /*i*/;
553 continue_22: while(0);
554 }
555 break_22: while(0);
556 variable1 = TAG_Bool(false);
557 goto return_label21;
558 return_label21: while(false);
559 tracehead = trace.prev;
560 return variable1;
561 }
562 val_t hash___HashMap___has_only(val_t self, val_t param0) {
563 struct trace_t trace = {NULL, NULL, 265, LOCATE_hash___HashMap___has_only};
564 val_t variable0;
565 val_t variable1;
566 val_t variable2;
567 val_t variable3;
568 val_t variable4;
569 trace.prev = tracehead; tracehead = &trace;
570 trace.file = LOCATE_hash;
571 variable0 = param0;
572 variable1 = TAG_Int(0);
573 while (true) { /*while*/
574 variable2 = ATTR_hash___HashCollection____capacity( self) /*HashCollection::_capacity*/;
575 variable2 = TAG_Bool(UNTAG_Int( variable1 /*i*/)<UNTAG_Int(variable2));
576 if (!UNTAG_Bool(variable2)) break; /* while*/
577 variable3 = ATTR_hash___HashCollection____array( self) /*HashCollection::_array*/;
578 variable3 = UNBOX_NativeArray(variable3)[UNTAG_Int( variable1 /*i*/)];
579 variable2 = variable3;
580 variable3 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable2 /*c*/ == NIT_NULL /*null*/) || (( variable2 /*c*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable2 /*c*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable2 /*c*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable2 /*c*/,COLOR_kernel___Object_____eqeq))( variable2 /*c*/, NIT_NULL /*null*/) /*Object::==*/)))))));
581 variable4 = variable3;
582 if (UNTAG_Bool(variable4)) { /* and */
583 variable4 = ((abstract_collection___Couple___second_t)CALL( variable2 /*c*/,COLOR_abstract_collection___Couple___second))( variable2 /*c*/) /*Couple::second*/;
584 variable4 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable4 == variable0 /*item*/) || ((variable4 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable4,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable4, variable0 /*item*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable4,COLOR_kernel___Object_____eqeq))(variable4, variable0 /*item*/) /*Object::==*/)))))));
585 }
586 variable3 = variable4;
587 if (UNTAG_Bool(variable3)) { /*if*/
588 variable1 = TAG_Bool(false);
589 goto return_label23;
590 }
591 variable1 = TAG_Int(UNTAG_Int(variable1)+UNTAG_Int( TAG_Int(1))) /*i*/;
592 continue_24: while(0);
593 }
594 break_24: while(0);
595 variable1 = TAG_Bool(true);
596 goto return_label23;
597 return_label23: while(false);
598 tracehead = trace.prev;
599 return variable1;
600 }
601 void hash___HashMap_____braeq(val_t self, val_t param0, val_t param1) {
602 struct trace_t trace = {NULL, NULL, 276, LOCATE_hash___HashMap_____braeq};
603 val_t variable0;
604 val_t variable1;
605 val_t variable2;
606 val_t variable3;
607 val_t variable4;
608 trace.prev = tracehead; tracehead = &trace;
609 trace.file = LOCATE_hash;
610 variable0 = param0;
611 variable1 = param1;
612 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*key*/ == NIT_NULL /*null*/) || (( variable0 /*key*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*key*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*key*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*key*/,COLOR_kernel___Object_____eqeq))( variable0 /*key*/, NIT_NULL /*null*/) /*Object::==*/)))))));
613 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_hash___HashMap_____braeq, LOCATE_hash, 278); nit_exit(1);}
614 variable3 = ((hash___HashCollection___index_at_t)CALL( self,COLOR_hash___HashCollection___index_at))( self, variable0 /*key*/) /*HashCollection::index_at*/;
615 variable2 = variable3;
616 variable4 = ATTR_hash___HashCollection____array( self) /*HashCollection::_array*/;
617 variable4 = UNBOX_NativeArray(variable4)[UNTAG_Int( variable2 /*i*/)];
618 variable3 = variable4;
619 variable4 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable3 /*c*/ == NIT_NULL /*null*/) || (( variable3 /*c*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable3 /*c*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable3 /*c*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable3 /*c*/,COLOR_kernel___Object_____eqeq))( variable3 /*c*/, NIT_NULL /*null*/) /*Object::==*/)))))));
620 if (UNTAG_Bool(variable4)) { /*if*/
621 ((abstract_collection___Couple___first__eq_t)CALL( variable3 /*c*/,COLOR_abstract_collection___Couple___first__eq))( variable3 /*c*/, variable0 /*key*/) /*Couple::first=*/;
622 ((abstract_collection___Couple___second__eq_t)CALL( variable3 /*c*/,COLOR_abstract_collection___Couple___second__eq))( variable3 /*c*/, variable1 /*v*/) /*Couple::second=*/;
623 } else { /*if*/
624 variable4 = NEW_HashMapNode_hash___HashMapNode___init( variable0 /*key*/, variable1 /*v*/); /*new HashMapNode[K, V]*/
625 ((hash___HashCollection___store_t)CALL( self,COLOR_hash___HashCollection___store))( self, variable2 /*i*/, variable4) /*HashCollection::store*/;
626 }
627 tracehead = trace.prev;
628 return;
629 }
630 void hash___HashMap___remove(val_t self, val_t param0) {
631 struct trace_t trace = {NULL, NULL, 289, LOCATE_hash___HashMap___remove};
632 val_t variable0;
633 val_t variable1;
634 val_t variable2;
635 val_t variable3;
636 val_t variable4;
637 trace.prev = tracehead; tracehead = &trace;
638 trace.file = LOCATE_hash;
639 variable0 = param0;
640 variable1 = TAG_Int(0);
641 while (true) { /*while*/
642 variable2 = ATTR_hash___HashCollection____capacity( self) /*HashCollection::_capacity*/;
643 variable2 = TAG_Bool(UNTAG_Int( variable1 /*i*/)<UNTAG_Int(variable2));
644 if (!UNTAG_Bool(variable2)) break; /* while*/
645 variable3 = ATTR_hash___HashCollection____array( self) /*HashCollection::_array*/;
646 variable3 = UNBOX_NativeArray(variable3)[UNTAG_Int( variable1 /*i*/)];
647 variable2 = variable3;
648 variable3 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable2 /*c*/ == NIT_NULL /*null*/) || (( variable2 /*c*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable2 /*c*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable2 /*c*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable2 /*c*/,COLOR_kernel___Object_____eqeq))( variable2 /*c*/, NIT_NULL /*null*/) /*Object::==*/)))))));
649 variable4 = variable3;
650 if (UNTAG_Bool(variable4)) { /* and */
651 variable4 = ((abstract_collection___Couple___second_t)CALL( variable2 /*c*/,COLOR_abstract_collection___Couple___second))( variable2 /*c*/) /*Couple::second*/;
652 variable4 = TAG_Bool((variable4 == variable0 /*item*/) || ((variable4 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable4,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable4, variable0 /*item*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable4,COLOR_kernel___Object_____eqeq))(variable4, variable0 /*item*/) /*Object::==*/)))));
653 }
654 variable3 = variable4;
655 if (UNTAG_Bool(variable3)) { /*if*/
656 ((hash___HashCollection___remove_index_t)CALL( self,COLOR_hash___HashCollection___remove_index))( self, variable1 /*i*/) /*HashCollection::remove_index*/;
657 goto return_label26;
658 }
659 variable1 = TAG_Int(UNTAG_Int(variable1)+UNTAG_Int( TAG_Int(1))) /*i*/;
660 continue_27: while(0);
661 }
662 break_27: while(0);
663 return_label26: while(false);
664 tracehead = trace.prev;
665 return;
666 }
667 void hash___HashMap___remove_at(val_t self, val_t param0) {
668 struct trace_t trace = {NULL, NULL, 302, LOCATE_hash___HashMap___remove_at};
669 val_t variable0;
670 val_t variable1;
671 trace.prev = tracehead; tracehead = &trace;
672 trace.file = LOCATE_hash;
673 variable0 = param0;
674 variable1 = ((hash___HashCollection___index_at_t)CALL( self,COLOR_hash___HashCollection___index_at))( self, variable0 /*key*/) /*HashCollection::index_at*/;
675 ((hash___HashCollection___remove_index_t)CALL( self,COLOR_hash___HashCollection___remove_index))( self, variable1) /*HashCollection::remove_index*/;
676 tracehead = trace.prev;
677 return;
678 }
679 void hash___HashMap___clear(val_t self) {
680 struct trace_t trace = {NULL, NULL, 304, LOCATE_hash___HashMap___clear};
681 trace.prev = tracehead; tracehead = &trace;
682 trace.file = LOCATE_hash;
683 ((hash___HashCollection___raz_t)CALL( self,COLOR_hash___HashCollection___raz))( self) /*HashCollection::raz*/;
684 tracehead = trace.prev;
685 return;
686 }
687 val_t hash___HashMap___couple_at(val_t self, val_t param0) {
688 struct trace_t trace = {NULL, NULL, 306, LOCATE_hash___HashMap___couple_at};
689 val_t variable0;
690 val_t variable1;
691 val_t variable2;
692 trace.prev = tracehead; tracehead = &trace;
693 trace.file = LOCATE_hash;
694 variable0 = param0;
695 variable1 = ATTR_hash___HashCollection____array( self) /*HashCollection::_array*/;
696 variable2 = ((hash___HashCollection___index_at_t)CALL( self,COLOR_hash___HashCollection___index_at))( self, variable0 /*key*/) /*HashCollection::index_at*/;
697 variable1 = UNBOX_NativeArray(variable1)[UNTAG_Int(variable2)];
698 goto return_label30;
699 return_label30: while(false);
700 tracehead = trace.prev;
701 return variable1;
702 }
703 void hash___HashMap___init(val_t self, int* init_table) {
704 struct trace_t trace = {NULL, NULL, 308, LOCATE_hash___HashMap___init};
705 trace.prev = tracehead; tracehead = &trace;
706 trace.file = LOCATE_hash;
707 if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_HashMap].i]) return;
708 ATTR_hash___HashCollection____capacity( self) /*HashCollection::_capacity*/ = TAG_Int(0);
709 ATTR_hash___HashCollection____length( self) /*HashCollection::_length*/ = TAG_Int(0);
710 ((hash___HashCollection___enlarge_t)CALL( self,COLOR_hash___HashCollection___enlarge))( self, TAG_Int(0)) /*HashCollection::enlarge*/;
711 init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_HashMap].i] = 1;
712 tracehead = trace.prev;
713 return;
714 }
715 val_t hash___HashMapNode___key(val_t self) {
716 struct trace_t trace = {NULL, NULL, 319, LOCATE_hash___HashMapNode___key};
717 val_t variable0;
718 trace.prev = tracehead; tracehead = &trace;
719 trace.file = LOCATE_hash;
720 variable0 = ((abstract_collection___Couple___first_t)CALL( self,COLOR_abstract_collection___Couple___first))( self) /*Couple::first*/;
721 goto return_label32;
722 return_label32: while(false);
723 tracehead = trace.prev;
724 return variable0;
725 }
726 void hash___HashMapNode___init(val_t self, val_t param0, val_t param1, int* init_table) {
727 struct trace_t trace = {NULL, NULL, 322, LOCATE_hash___HashMapNode___init};
728 val_t variable0;
729 val_t variable1;
730 trace.prev = tracehead; tracehead = &trace;
731 trace.file = LOCATE_hash;
732 variable0 = param0;
733 variable1 = param1;
734 if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_HashMapNode].i]) return;
735 ((abstract_collection___Couple___first__eq_t)CALL( self,COLOR_abstract_collection___Couple___first__eq))( self, variable0 /*k*/) /*Couple::first=*/;
736 ((abstract_collection___Couple___second__eq_t)CALL( self,COLOR_abstract_collection___Couple___second__eq))( self, variable1 /*v*/) /*Couple::second=*/;
737 init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_HashMapNode].i] = 1;
738 tracehead = trace.prev;
739 return;
740 }
741 val_t hash___HashMapIterator___is_ok(val_t self) {
742 struct trace_t trace = {NULL, NULL, 331, LOCATE_hash___HashMapIterator___is_ok};
743 val_t variable0;
744 trace.prev = tracehead; tracehead = &trace;
745 trace.file = LOCATE_hash;
746 variable0 = ATTR_hash___HashMapIterator____node( self) /*HashMapIterator::_node*/;
747 variable0 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable0 == NIT_NULL /*null*/) || ((variable0 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable0,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable0, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable0,COLOR_kernel___Object_____eqeq))(variable0, NIT_NULL /*null*/) /*Object::==*/)))))));
748 goto return_label34;
749 return_label34: while(false);
750 tracehead = trace.prev;
751 return variable0;
752 }
753 val_t hash___HashMapIterator___item(val_t self) {
754 struct trace_t trace = {NULL, NULL, 333, LOCATE_hash___HashMapIterator___item};
755 val_t variable0;
756 trace.prev = tracehead; tracehead = &trace;
757 trace.file = LOCATE_hash;
758 variable0 = ((hash___HashMapIterator___is_ok_t)CALL( self,COLOR_abstract_collection___Iterator___is_ok))( self) /*HashMapIterator::is_ok*/;
759 if (!UNTAG_Bool(variable0)) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_hash___HashMapIterator___item, LOCATE_hash, 335); nit_exit(1);}
760 variable0 = ATTR_hash___HashMapIterator____node( self) /*HashMapIterator::_node*/;
761 variable0 = ((abstract_collection___Couple___second_t)CALL(variable0,COLOR_abstract_collection___Couple___second))(variable0) /*Couple::second*/;
762 goto return_label35;
763 return_label35: while(false);
764 tracehead = trace.prev;
765 return variable0;
766 }
767 void hash___HashMapIterator___item__eq(val_t self, val_t param0) {
768 struct trace_t trace = {NULL, NULL, 339, LOCATE_hash___HashMapIterator___item__eq};
769 val_t variable0;
770 val_t variable1;
771 trace.prev = tracehead; tracehead = &trace;
772 trace.file = LOCATE_hash;
773 variable0 = param0;
774 variable1 = ((hash___HashMapIterator___is_ok_t)CALL( self,COLOR_abstract_collection___Iterator___is_ok))( self) /*HashMapIterator::is_ok*/;
775 if (!UNTAG_Bool(variable1)) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_hash___HashMapIterator___item__eq, LOCATE_hash, 341); nit_exit(1);}
776 variable1 = ATTR_hash___HashMapIterator____node( self) /*HashMapIterator::_node*/;
777 ((abstract_collection___Couple___second__eq_t)CALL(variable1,COLOR_abstract_collection___Couple___second__eq))(variable1, variable0 /*value*/) /*Couple::second=*/;
778 tracehead = trace.prev;
779 return;
780 }
781 val_t hash___HashMapIterator___key(val_t self) {
782 struct trace_t trace = {NULL, NULL, 345, LOCATE_hash___HashMapIterator___key};
783 val_t variable0;
784 trace.prev = tracehead; tracehead = &trace;
785 trace.file = LOCATE_hash;
786 variable0 = ((hash___HashMapIterator___is_ok_t)CALL( self,COLOR_abstract_collection___Iterator___is_ok))( self) /*HashMapIterator::is_ok*/;
787 if (!UNTAG_Bool(variable0)) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_hash___HashMapIterator___key, LOCATE_hash, 347); nit_exit(1);}
788 variable0 = ATTR_hash___HashMapIterator____node( self) /*HashMapIterator::_node*/;
789 variable0 = ((abstract_collection___Couple___first_t)CALL(variable0,COLOR_abstract_collection___Couple___first))(variable0) /*Couple::first*/;
790 goto return_label37;
791 return_label37: while(false);
792 tracehead = trace.prev;
793 return variable0;
794 }
795 void hash___HashMapIterator___next(val_t self) {
796 struct trace_t trace = {NULL, NULL, 351, LOCATE_hash___HashMapIterator___next};
797 val_t variable0;
798 trace.prev = tracehead; tracehead = &trace;
799 trace.file = LOCATE_hash;
800 variable0 = ((hash___HashMapIterator___is_ok_t)CALL( self,COLOR_abstract_collection___Iterator___is_ok))( self) /*HashMapIterator::is_ok*/;
801 if (!UNTAG_Bool(variable0)) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_hash___HashMapIterator___next, LOCATE_hash, 353); nit_exit(1);}
802 variable0 = ATTR_hash___HashMapIterator____node( self) /*HashMapIterator::_node*/;
803 variable0 = ((hash___HashNode___next_item_t)CALL(variable0,COLOR_hash___HashNode___next_item))(variable0) /*HashNode::next_item*/;
804 ATTR_hash___HashMapIterator____node( self) /*HashMapIterator::_node*/ = variable0;
805 tracehead = trace.prev;
806 return;
807 }
808 void hash___HashMapIterator___init(val_t self, val_t param0, int* init_table) {
809 struct trace_t trace = {NULL, NULL, 363, LOCATE_hash___HashMapIterator___init};
810 val_t variable0;
811 val_t variable1;
812 trace.prev = tracehead; tracehead = &trace;
813 trace.file = LOCATE_hash;
814 variable0 = param0;
815 if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_HashMapIterator].i]) return;
816 ATTR_hash___HashMapIterator____map( self) /*HashMapIterator::_map*/ = variable0 /*map*/;
817 variable1 = ((hash___HashCollection___first_item_t)CALL( variable0 /*map*/,COLOR_hash___HashCollection___first_item))( variable0 /*map*/) /*HashCollection::first_item*/;
818 ATTR_hash___HashMapIterator____node( self) /*HashMapIterator::_node*/ = variable1;
819 init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_HashMapIterator].i] = 1;
820 tracehead = trace.prev;
821 return;
822 }
823 val_t hash___HashSet___is_empty(val_t self) {
824 struct trace_t trace = {NULL, NULL, 374, LOCATE_hash___HashSet___is_empty};
825 val_t variable0;
826 trace.prev = tracehead; tracehead = &trace;
827 trace.file = LOCATE_hash;
828 variable0 = ATTR_hash___HashCollection____length( self) /*HashCollection::_length*/;
829 variable0 = TAG_Bool((variable0)==( TAG_Int(0)));
830 goto return_label40;
831 return_label40: while(false);
832 tracehead = trace.prev;
833 return variable0;
834 }
835 val_t hash___HashSet___first(val_t self) {
836 struct trace_t trace = {NULL, NULL, 376, LOCATE_hash___HashSet___first};
837 val_t variable0;
838 trace.prev = tracehead; tracehead = &trace;
839 trace.file = LOCATE_hash;
840 variable0 = ATTR_hash___HashCollection____length( self) /*HashCollection::_length*/;
841 variable0 = TAG_Bool(UNTAG_Int(variable0)>UNTAG_Int( TAG_Int(0)));
842 if (!UNTAG_Bool(variable0)) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_hash___HashSet___first, LOCATE_hash, 378); nit_exit(1);}
843 variable0 = ATTR_hash___HashCollection____first_item( self) /*HashCollection::_first_item*/;
844 variable0 = ((hash___HashSetNode___key_t)CALL(variable0,COLOR_hash___HashNode___key))(variable0) /*HashSetNode::key*/;
845 goto return_label41;
846 return_label41: while(false);
847 tracehead = trace.prev;
848 return variable0;
849 }
850 val_t hash___HashSet___has(val_t self, val_t param0) {
851 struct trace_t trace = {NULL, NULL, 382, LOCATE_hash___HashSet___has};
852 val_t variable0;
853 val_t variable1;
854 val_t variable2;
855 trace.prev = tracehead; tracehead = &trace;
856 trace.file = LOCATE_hash;
857 variable0 = param0;
858 variable1 = ATTR_hash___HashCollection____array( self) /*HashCollection::_array*/;
859 variable2 = ((hash___HashCollection___index_at_t)CALL( self,COLOR_hash___HashCollection___index_at))( self, variable0 /*item*/) /*HashCollection::index_at*/;
860 variable1 = UNBOX_NativeArray(variable1)[UNTAG_Int(variable2)];
861 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*Object::==*/)))))));
862 goto return_label42;
863 return_label42: while(false);
864 tracehead = trace.prev;
865 return variable1;
866 }
867 void hash___HashSet___add(val_t self, val_t param0) {
868 struct trace_t trace = {NULL, NULL, 387, LOCATE_hash___HashSet___add};
869 val_t variable0;
870 val_t variable1;
871 val_t variable2;
872 val_t variable3;
873 trace.prev = tracehead; tracehead = &trace;
874 trace.file = LOCATE_hash;
875 variable0 = param0;
876 variable2 = ((hash___HashCollection___index_at_t)CALL( self,COLOR_hash___HashCollection___index_at))( self, variable0 /*item*/) /*HashCollection::index_at*/;
877 variable1 = variable2;
878 variable3 = ATTR_hash___HashCollection____array( self) /*HashCollection::_array*/;
879 variable3 = UNBOX_NativeArray(variable3)[UNTAG_Int( variable1 /*i*/)];
880 variable2 = variable3;
881 variable3 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable2 /*c*/ == NIT_NULL /*null*/) || (( variable2 /*c*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable2 /*c*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable2 /*c*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable2 /*c*/,COLOR_kernel___Object_____eqeq))( variable2 /*c*/, NIT_NULL /*null*/) /*Object::==*/)))))));
882 if (UNTAG_Bool(variable3)) { /*if*/
883 ((hash___HashSetNode___key__eq_t)CALL( variable2 /*c*/,COLOR_hash___HashSetNode___key__eq))( variable2 /*c*/, variable0 /*item*/) /*HashSetNode::key=*/;
884 } else { /*if*/
885 variable3 = NEW_HashSetNode_hash___HashSetNode___init( variable0 /*item*/); /*new HashSetNode[E]*/
886 ((hash___HashCollection___store_t)CALL( self,COLOR_hash___HashCollection___store))( self, variable1 /*i*/, variable3) /*HashCollection::store*/;
887 }
888 tracehead = trace.prev;
889 return;
890 }
891 void hash___HashSet___remove(val_t self, val_t param0) {
892 struct trace_t trace = {NULL, NULL, 398, LOCATE_hash___HashSet___remove};
893 val_t variable0;
894 val_t variable1;
895 trace.prev = tracehead; tracehead = &trace;
896 trace.file = LOCATE_hash;
897 variable0 = param0;
898 variable1 = ((hash___HashCollection___index_at_t)CALL( self,COLOR_hash___HashCollection___index_at))( self, variable0 /*item*/) /*HashCollection::index_at*/;
899 ((hash___HashCollection___remove_index_t)CALL( self,COLOR_hash___HashCollection___remove_index))( self, variable1) /*HashCollection::remove_index*/;
900 tracehead = trace.prev;
901 return;
902 }
903 void hash___HashSet___clear(val_t self) {
904 struct trace_t trace = {NULL, NULL, 400, LOCATE_hash___HashSet___clear};
905 trace.prev = tracehead; tracehead = &trace;
906 trace.file = LOCATE_hash;
907 ((hash___HashCollection___raz_t)CALL( self,COLOR_hash___HashCollection___raz))( self) /*HashCollection::raz*/;
908 tracehead = trace.prev;
909 return;
910 }
911 val_t hash___HashSet___iterator(val_t self) {
912 struct trace_t trace = {NULL, NULL, 402, LOCATE_hash___HashSet___iterator};
913 val_t variable0;
914 trace.prev = tracehead; tracehead = &trace;
915 trace.file = LOCATE_hash;
916 variable0 = NEW_HashSetIterator_hash___HashSetIterator___init( self); /*new HashSetIterator[E]*/
917 goto return_label46;
918 return_label46: while(false);
919 tracehead = trace.prev;
920 return variable0;
921 }
922 void hash___HashSet___init(val_t self, int* init_table) {
923 struct trace_t trace = {NULL, NULL, 404, LOCATE_hash___HashSet___init};
924 trace.prev = tracehead; tracehead = &trace;
925 trace.file = LOCATE_hash;
926 if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_HashSet].i]) return;
927 ATTR_hash___HashCollection____capacity( self) /*HashCollection::_capacity*/ = TAG_Int(0);
928 ATTR_hash___HashCollection____length( self) /*HashCollection::_length*/ = TAG_Int(0);
929 ((hash___HashCollection___enlarge_t)CALL( self,COLOR_hash___HashCollection___enlarge))( self, TAG_Int(0)) /*HashCollection::enlarge*/;
930 init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_HashSet].i] = 1;
931 tracehead = trace.prev;
932 return;
933 }
934 val_t hash___HashSetNode___key(val_t self) {
935 struct trace_t trace = {NULL, NULL, 416, LOCATE_hash___HashSetNode___key};
936 trace.prev = tracehead; tracehead = &trace;
937 trace.file = LOCATE_hash;
938 tracehead = trace.prev;
939 return ATTR_hash___HashSetNode____key( self) /*HashSetNode::_key*/;
940 }
941 void hash___HashSetNode___key__eq(val_t self, val_t param0) {
942 struct trace_t trace = {NULL, NULL, 416, LOCATE_hash___HashSetNode___key__eq};
943 trace.prev = tracehead; tracehead = &trace;
944 trace.file = LOCATE_hash;
945 ATTR_hash___HashSetNode____key( self) /*HashSetNode::_key*/ = param0;
946 tracehead = trace.prev;
947 return;
948 }
949 void hash___HashSetNode___init(val_t self, val_t param0, int* init_table) {
950 struct trace_t trace = {NULL, NULL, 418, LOCATE_hash___HashSetNode___init};
951 val_t variable0;
952 trace.prev = tracehead; tracehead = &trace;
953 trace.file = LOCATE_hash;
954 variable0 = param0;
955 if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_HashSetNode].i]) return;
956 ATTR_hash___HashSetNode____key( self) /*HashSetNode::_key*/ = variable0 /*e*/;
957 init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_HashSetNode].i] = 1;
958 tracehead = trace.prev;
959 return;
960 }
961 val_t hash___HashSetIterator___is_ok(val_t self) {
962 struct trace_t trace = {NULL, NULL, 426, LOCATE_hash___HashSetIterator___is_ok};
963 val_t variable0;
964 trace.prev = tracehead; tracehead = &trace;
965 trace.file = LOCATE_hash;
966 variable0 = ATTR_hash___HashSetIterator____node( self) /*HashSetIterator::_node*/;
967 variable0 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable0 == NIT_NULL /*null*/) || ((variable0 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable0,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable0, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable0,COLOR_kernel___Object_____eqeq))(variable0, NIT_NULL /*null*/) /*Object::==*/)))))));
968 goto return_label49;
969 return_label49: while(false);
970 tracehead = trace.prev;
971 return variable0;
972 }
973 val_t hash___HashSetIterator___item(val_t self) {
974 struct trace_t trace = {NULL, NULL, 428, LOCATE_hash___HashSetIterator___item};
975 val_t variable0;
976 trace.prev = tracehead; tracehead = &trace;
977 trace.file = LOCATE_hash;
978 variable0 = ((hash___HashSetIterator___is_ok_t)CALL( self,COLOR_abstract_collection___Iterator___is_ok))( self) /*HashSetIterator::is_ok*/;
979 if (!UNTAG_Bool(variable0)) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_hash___HashSetIterator___item, LOCATE_hash, 430); nit_exit(1);}
980 variable0 = ATTR_hash___HashSetIterator____node( self) /*HashSetIterator::_node*/;
981 variable0 = ((hash___HashSetNode___key_t)CALL(variable0,COLOR_hash___HashNode___key))(variable0) /*HashSetNode::key*/;
982 goto return_label50;
983 return_label50: while(false);
984 tracehead = trace.prev;
985 return variable0;
986 }
987 void hash___HashSetIterator___next(val_t self) {
988 struct trace_t trace = {NULL, NULL, 434, LOCATE_hash___HashSetIterator___next};
989 val_t variable0;
990 trace.prev = tracehead; tracehead = &trace;
991 trace.file = LOCATE_hash;
992 variable0 = ((hash___HashSetIterator___is_ok_t)CALL( self,COLOR_abstract_collection___Iterator___is_ok))( self) /*HashSetIterator::is_ok*/;
993 if (!UNTAG_Bool(variable0)) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_hash___HashSetIterator___next, LOCATE_hash, 436); nit_exit(1);}
994 variable0 = ATTR_hash___HashSetIterator____node( self) /*HashSetIterator::_node*/;
995 variable0 = ((hash___HashNode___next_item_t)CALL(variable0,COLOR_hash___HashNode___next_item))(variable0) /*HashNode::next_item*/;
996 ATTR_hash___HashSetIterator____node( self) /*HashSetIterator::_node*/ = variable0;
997 tracehead = trace.prev;
998 return;
999 }
1000 void hash___HashSetIterator___init(val_t self, val_t param0, int* init_table) {
1001 struct trace_t trace = {NULL, NULL, 446, LOCATE_hash___HashSetIterator___init};
1002 val_t variable0;
1003 val_t variable1;
1004 trace.prev = tracehead; tracehead = &trace;
1005 trace.file = LOCATE_hash;
1006 variable0 = param0;
1007 if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_HashSetIterator].i]) return;
1008 ATTR_hash___HashSetIterator____set( self) /*HashSetIterator::_set*/ = variable0 /*set*/;
1009 variable1 = ((hash___HashCollection___first_item_t)CALL( variable0 /*set*/,COLOR_hash___HashCollection___first_item))( variable0 /*set*/) /*HashCollection::first_item*/;
1010 ATTR_hash___HashSetIterator____node( self) /*HashSetIterator::_node*/ = variable1;
1011 init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_HashSetIterator].i] = 1;
1012 tracehead = trace.prev;
1013 return;
1014 }