misc/vim: inform the user when no results are found
[nit.git] / c_src / standard__hash_collection.sep.1.c
1 #include "standard__hash_collection.sep.0.h"
2 /* method hash_collection#HashCollection#index_at for (self: HashCollection[nullable Object], nullable Object): Int */
3 long standard__hash_collection___standard__hash_collection__HashCollection___index_at(val* self, val* p0) {
4 long var /* : Int */;
5 short int var1 /* : Bool */;
6 int cltype;
7 int idtype;
8 const struct type* type_struct;
9 short int is_nullable;
10 const char* var_class_name;
11 val* var_k /* var k: nullable Object */;
12 val* var2 /* : null */;
13 short int var3 /* : Bool */;
14 short int var4 /* : Bool */;
15 long var5 /* : Int */;
16 long var6 /* : Int */;
17 long var7 /* : Int */;
18 long var8 /* : Int */;
19 long var10 /* : Int */;
20 long var_i /* var i: Int */;
21 long var11 /* : Int */;
22 short int var12 /* : Bool */;
23 short int var14 /* : Bool */;
24 int cltype15;
25 int idtype16;
26 const char* var_class_name17;
27 short int var18 /* : Bool */;
28 long var19 /* : Int */;
29 long var21 /* : Int */;
30 /* Covariant cast for argument 0 (k) <p0:nullable Object> isa K */
31 /* <p0:nullable Object> isa K */
32 type_struct = self->type->resolution_table->types[COLOR_standard__hash_collection__HashCollection___35dK];
33 cltype = type_struct->color;
34 idtype = type_struct->id;
35 is_nullable = type_struct->is_nullable;
36 if(p0 == NULL) {
37 var1 = is_nullable;
38 } else {
39 if(cltype >= p0->type->table_size) {
40 var1 = 0;
41 } else {
42 var1 = p0->type->type_table[cltype] == idtype;
43 }
44 }
45 if (unlikely(!var1)) {
46 var_class_name = p0 == NULL ? "null" : p0->type->name;
47 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "K", var_class_name);
48 PRINT_ERROR(" (%s:%d)\n", FILE_standard__hash_collection, 40);
49 show_backtrace(1);
50 }
51 var_k = p0;
52 var2 = NULL;
53 if (var_k == NULL) {
54 var3 = 1; /* is null */
55 } else {
56 var3 = 0; /* arg is null but recv is not */
57 }
58 if (0) {
59 var4 = ((short int (*)(val* self, val* p0))(var_k->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_k, var2) /* == on <var_k:nullable Object>*/;
60 var3 = var4;
61 }
62 if (var3){
63 var5 = 0;
64 var = var5;
65 goto RET_LABEL;
66 } else {
67 }
68 if (var_k == NULL) {
69 PRINT_ERROR("Runtime error: %s", "Receiver is null");
70 PRINT_ERROR(" (%s:%d)\n", FILE_standard__hash_collection, 45);
71 show_backtrace(1);
72 } else {
73 var6 = ((long (*)(val* self))(var_k->class->vft[COLOR_standard__kernel__Object__hash]))(var_k) /* hash on <var_k:nullable Object>*/;
74 }
75 var7 = self->attrs[COLOR_standard__hash_collection__HashCollection___capacity].l; /* _capacity on <self:HashCollection[nullable Object]> */
76 {
77 { /* Inline kernel#Int#% (var6,var7) on <var6:Int> */
78 var10 = var6 % var7;
79 var8 = var10;
80 goto RET_LABEL9;
81 RET_LABEL9:(void)0;
82 }
83 }
84 var_i = var8;
85 var11 = 0;
86 {
87 { /* Inline kernel#Int#< (var_i,var11) on <var_i:Int> */
88 /* Covariant cast for argument 0 (i) <var11:Int> isa OTHER */
89 /* <var11:Int> isa OTHER */
90 var14 = 1; /* easy <var11:Int> isa OTHER*/
91 if (unlikely(!var14)) {
92 var_class_name17 = type_standard__Int.name;
93 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name17);
94 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 410);
95 show_backtrace(1);
96 }
97 var18 = var_i < var11;
98 var12 = var18;
99 goto RET_LABEL13;
100 RET_LABEL13:(void)0;
101 }
102 }
103 if (var12){
104 {
105 { /* Inline kernel#Int#unary - (var_i) on <var_i:Int> */
106 var21 = -var_i;
107 var19 = var21;
108 goto RET_LABEL20;
109 RET_LABEL20:(void)0;
110 }
111 }
112 var_i = var19;
113 } else {
114 }
115 var = var_i;
116 goto RET_LABEL;
117 RET_LABEL:;
118 return var;
119 }
120 /* method hash_collection#HashCollection#node_at for (self: HashCollection[nullable Object], nullable Object): nullable HashNode[nullable Object] */
121 val* standard__hash_collection___standard__hash_collection__HashCollection___node_at(val* self, val* p0) {
122 val* var /* : nullable HashNode[nullable Object] */;
123 short int var1 /* : Bool */;
124 int cltype;
125 int idtype;
126 const struct type* type_struct;
127 short int is_nullable;
128 const char* var_class_name;
129 val* var_k /* var k: nullable Object */;
130 val* var2 /* : nullable Object */;
131 short int var3 /* : Bool */;
132 short int var4 /* : Bool */;
133 short int var6 /* : Bool */;
134 val* var7 /* : nullable HashNode[nullable Object] */;
135 long var8 /* : Int */;
136 val* var9 /* : nullable HashNode[nullable Object] */;
137 val* var_res /* var res: nullable HashNode[nullable Object] */;
138 /* Covariant cast for argument 0 (k) <p0:nullable Object> isa K */
139 /* <p0:nullable Object> isa K */
140 type_struct = self->type->resolution_table->types[COLOR_standard__hash_collection__HashCollection___35dK];
141 cltype = type_struct->color;
142 idtype = type_struct->id;
143 is_nullable = type_struct->is_nullable;
144 if(p0 == NULL) {
145 var1 = is_nullable;
146 } else {
147 if(cltype >= p0->type->table_size) {
148 var1 = 0;
149 } else {
150 var1 = p0->type->type_table[cltype] == idtype;
151 }
152 }
153 if (unlikely(!var1)) {
154 var_class_name = p0 == NULL ? "null" : p0->type->name;
155 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "K", var_class_name);
156 PRINT_ERROR(" (%s:%d)\n", FILE_standard__hash_collection, 50);
157 show_backtrace(1);
158 }
159 var_k = p0;
160 var2 = self->attrs[COLOR_standard__hash_collection__HashCollection___last_accessed_key].val; /* _last_accessed_key on <self:HashCollection[nullable Object]> */
161 if (var_k == NULL) {
162 var3 = (var2 == NULL);
163 } else {
164 { /* Inline kernel#Object#is_same_instance (var_k,var2) on <var_k:nullable Object> */
165 var6 = var_k == var2 || (var_k != NULL && var2 != NULL && var_k->class == var2->class && ((var_k->class->box_kind == 1 && ((struct instance_standard__Int*)var_k)->value == ((struct instance_standard__Int*)var2)->value) || (var_k->class->box_kind == 2 && ((struct instance_standard__Bool*)var_k)->value == ((struct instance_standard__Bool*)var2)->value) || (var_k->class->box_kind == 3 && ((struct instance_standard__Char*)var_k)->value == ((struct instance_standard__Char*)var2)->value) || (var_k->class->box_kind == 4 && ((struct instance_standard__Float*)var_k)->value == ((struct instance_standard__Float*)var2)->value) || (var_k->class->box_kind == 5 && ((struct instance_standard__NativeString*)var_k)->value == ((struct instance_standard__NativeString*)var2)->value) || (var_k->class->box_kind == 6 && ((struct instance_standard__Pointer*)var_k)->value == ((struct instance_standard__Pointer*)var2)->value)));
166 var4 = var6;
167 goto RET_LABEL5;
168 RET_LABEL5:(void)0;
169 }
170 var3 = var4;
171 }
172 if (var3){
173 var7 = self->attrs[COLOR_standard__hash_collection__HashCollection___last_accessed_node].val; /* _last_accessed_node on <self:HashCollection[nullable Object]> */
174 var = var7;
175 goto RET_LABEL;
176 } else {
177 }
178 {
179 var8 = standard__hash_collection___standard__hash_collection__HashCollection___index_at(self, var_k);
180 }
181 {
182 var9 = standard__hash_collection___standard__hash_collection__HashCollection___node_at_idx(self, var8, var_k);
183 }
184 var_res = var9;
185 self->attrs[COLOR_standard__hash_collection__HashCollection___last_accessed_key].val = var_k; /* _last_accessed_key on <self:HashCollection[nullable Object]> */
186 self->attrs[COLOR_standard__hash_collection__HashCollection___last_accessed_node].val = var_res; /* _last_accessed_node on <self:HashCollection[nullable Object]> */
187 var = var_res;
188 goto RET_LABEL;
189 RET_LABEL:;
190 return var;
191 }
192 /* method hash_collection#HashCollection#node_at_idx for (self: HashCollection[nullable Object], Int, nullable Object): nullable HashNode[nullable Object] */
193 val* standard__hash_collection___standard__hash_collection__HashCollection___node_at_idx(val* self, long p0, val* p1) {
194 val* var /* : nullable HashNode[nullable Object] */;
195 short int var1 /* : Bool */;
196 int cltype;
197 int idtype;
198 const struct type* type_struct;
199 short int is_nullable;
200 const char* var_class_name;
201 long var_i /* var i: Int */;
202 val* var_k /* var k: nullable Object */;
203 val* var2 /* : nullable NativeArray[nullable HashNode[nullable Object]] */;
204 val* var3 /* : nullable Object */;
205 val* var5 /* : nullable HashNode[nullable Object] */;
206 val* var_c /* var c: nullable HashNode[nullable Object] */;
207 val* var6 /* : null */;
208 short int var7 /* : Bool */;
209 short int var8 /* : Bool */;
210 val* var_other /* var other: nullable Object */;
211 short int var10 /* : Bool */;
212 short int var11 /* : Bool */;
213 val* var12 /* : nullable Object */;
214 val* var_ck /* var ck: nullable Object */;
215 short int var13 /* : Bool */;
216 short int var14 /* : Bool */;
217 short int var15 /* : Bool */;
218 short int var17 /* : Bool */;
219 short int var_ /* var : Bool */;
220 short int var18 /* : Bool */;
221 short int var19 /* : Bool */;
222 val* var20 /* : nullable HashNode[nullable Object] */;
223 short int var21 /* : Bool */;
224 int cltype22;
225 int idtype23;
226 const struct type* type_struct24;
227 const char* var_class_name25;
228 /* Covariant cast for argument 1 (k) <p1:nullable Object> isa K */
229 /* <p1:nullable Object> isa K */
230 type_struct = self->type->resolution_table->types[COLOR_standard__hash_collection__HashCollection___35dK];
231 cltype = type_struct->color;
232 idtype = type_struct->id;
233 is_nullable = type_struct->is_nullable;
234 if(p1 == NULL) {
235 var1 = is_nullable;
236 } else {
237 if(cltype >= p1->type->table_size) {
238 var1 = 0;
239 } else {
240 var1 = p1->type->type_table[cltype] == idtype;
241 }
242 }
243 if (unlikely(!var1)) {
244 var_class_name = p1 == NULL ? "null" : p1->type->name;
245 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "K", var_class_name);
246 PRINT_ERROR(" (%s:%d)\n", FILE_standard__hash_collection, 62);
247 show_backtrace(1);
248 }
249 var_i = p0;
250 var_k = p1;
251 var2 = self->attrs[COLOR_standard__hash_collection__HashCollection___array].val; /* _array on <self:HashCollection[nullable Object]> */
252 if (var2 == NULL) {
253 PRINT_ERROR("Runtime error: %s", "Receiver is null");
254 PRINT_ERROR(" (%s:%d)\n", FILE_standard__hash_collection, 65);
255 show_backtrace(1);
256 } else {
257 { /* Inline array#NativeArray#[] (var2,var_i) on <var2:nullable NativeArray[nullable HashNode[nullable Object]]> */
258 var5 = ((struct instance_standard__NativeArray*)var2)->values[var_i];
259 var3 = var5;
260 goto RET_LABEL4;
261 RET_LABEL4:(void)0;
262 }
263 }
264 var_c = var3;
265 for(;;) {
266 var6 = NULL;
267 if (var_c == NULL) {
268 var7 = 0; /* is null */
269 } else {
270 var7 = 1; /* arg is null and recv is not */
271 }
272 if (0) {
273 { /* Inline kernel#Object#!= (var_c,var6) on <var_c:nullable HashNode[nullable Object]> */
274 var_other = var6;
275 {
276 var10 = ((short int (*)(val* self, val* p0))(var_c->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_c, var_other) /* == on <var_c:nullable HashNode[nullable Object](HashNode[nullable Object])>*/;
277 }
278 var11 = !var10;
279 var8 = var11;
280 goto RET_LABEL9;
281 RET_LABEL9:(void)0;
282 }
283 var7 = var8;
284 }
285 if (var7){
286 var12 = var_c->attrs[COLOR_standard__hash_collection__HashNode___key].val; /* _key on <var_c:nullable HashNode[nullable Object](HashNode[nullable Object])> */
287 var_ck = var12;
288 if (var_ck == NULL) {
289 var14 = (var_k == NULL);
290 } else {
291 { /* Inline kernel#Object#is_same_instance (var_ck,var_k) on <var_ck:nullable Object> */
292 var17 = var_ck == var_k || (var_ck != NULL && var_k != NULL && var_ck->class == var_k->class && ((var_ck->class->box_kind == 1 && ((struct instance_standard__Int*)var_ck)->value == ((struct instance_standard__Int*)var_k)->value) || (var_ck->class->box_kind == 2 && ((struct instance_standard__Bool*)var_ck)->value == ((struct instance_standard__Bool*)var_k)->value) || (var_ck->class->box_kind == 3 && ((struct instance_standard__Char*)var_ck)->value == ((struct instance_standard__Char*)var_k)->value) || (var_ck->class->box_kind == 4 && ((struct instance_standard__Float*)var_ck)->value == ((struct instance_standard__Float*)var_k)->value) || (var_ck->class->box_kind == 5 && ((struct instance_standard__NativeString*)var_ck)->value == ((struct instance_standard__NativeString*)var_k)->value) || (var_ck->class->box_kind == 6 && ((struct instance_standard__Pointer*)var_ck)->value == ((struct instance_standard__Pointer*)var_k)->value)));
293 var15 = var17;
294 goto RET_LABEL16;
295 RET_LABEL16:(void)0;
296 }
297 var14 = var15;
298 }
299 var_ = var14;
300 if (var14){
301 var13 = var_;
302 } else {
303 if (var_ck == NULL) {
304 var18 = (var_k == NULL);
305 } else {
306 var19 = ((short int (*)(val* self, val* p0))(var_ck->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_ck, var_k) /* == on <var_ck:nullable Object>*/;
307 var18 = var19;
308 }
309 var13 = var18;
310 }
311 if (var13){
312 goto BREAK_label;
313 } else {
314 }
315 var20 = var_c->attrs[COLOR_standard__hash_collection__HashNode___next_in_bucklet].val; /* _next_in_bucklet on <var_c:nullable HashNode[nullable Object](HashNode[nullable Object])> */
316 var_c = var20;
317 } else {
318 goto BREAK_label;
319 }
320 }
321 BREAK_label: (void)0;
322 /* <var_c:nullable HashNode[nullable Object]> isa nullable N */
323 type_struct24 = self->type->resolution_table->types[COLOR_nullable__standard__hash_collection__HashCollection__N];
324 cltype22 = type_struct24->color;
325 idtype23 = type_struct24->id;
326 if(var_c == NULL) {
327 var21 = 1;
328 } else {
329 if(cltype22 >= var_c->type->table_size) {
330 var21 = 0;
331 } else {
332 var21 = var_c->type->type_table[cltype22] == idtype23;
333 }
334 }
335 if (unlikely(!var21)) {
336 var_class_name25 = var_c == NULL ? "null" : var_c->type->name;
337 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable N", var_class_name25);
338 PRINT_ERROR(" (%s:%d)\n", FILE_standard__hash_collection, 73);
339 show_backtrace(1);
340 }
341 var = var_c;
342 goto RET_LABEL;
343 RET_LABEL:;
344 return var;
345 }
346 /* method hash_collection#HashCollection#store for (self: HashCollection[nullable Object], Int, HashNode[nullable Object]) */
347 void standard__hash_collection___standard__hash_collection__HashCollection___store(val* self, long p0, val* p1) {
348 short int var /* : Bool */;
349 int cltype;
350 int idtype;
351 const struct type* type_struct;
352 const char* var_class_name;
353 long var_index /* var index: Int */;
354 val* var_node /* var node: HashNode[nullable Object] */;
355 val* var1 /* : nullable HashNode[nullable Object] */;
356 val* var2 /* : null */;
357 short int var3 /* : Bool */;
358 short int var4 /* : Bool */;
359 val* var_other /* var other: nullable Object */;
360 short int var6 /* : Bool */;
361 short int var8 /* : Bool */;
362 val* var9 /* : nullable HashNode[nullable Object] */;
363 val* var10 /* : nullable HashNode[nullable Object] */;
364 val* var11 /* : null */;
365 val* var12 /* : nullable NativeArray[nullable HashNode[nullable Object]] */;
366 val* var13 /* : nullable Object */;
367 val* var15 /* : nullable HashNode[nullable Object] */;
368 val* var_next /* var next: nullable HashNode[nullable Object] */;
369 val* var16 /* : nullable NativeArray[nullable HashNode[nullable Object]] */;
370 short int var18 /* : Bool */;
371 int cltype19;
372 int idtype20;
373 const struct type* type_struct21;
374 const char* var_class_name22;
375 val* var23 /* : null */;
376 short int var24 /* : Bool */;
377 short int var25 /* : Bool */;
378 val* var_other27 /* var other: nullable Object */;
379 short int var28 /* : Bool */;
380 short int var29 /* : Bool */;
381 val* var30 /* : nullable Object */;
382 long var31 /* : Int */;
383 long var_l /* var l: Int */;
384 long var32 /* : Int */;
385 long var33 /* : Int */;
386 short int var35 /* : Bool */;
387 int cltype36;
388 int idtype37;
389 const char* var_class_name38;
390 long var39 /* : Int */;
391 long var40 /* : Int */;
392 long var41 /* : Int */;
393 short int var43 /* : Bool */;
394 int cltype44;
395 int idtype45;
396 const char* var_class_name46;
397 long var47 /* : Int */;
398 long var48 /* : Int */;
399 long var49 /* : Int */;
400 short int var51 /* : Bool */;
401 int cltype52;
402 int idtype53;
403 const char* var_class_name54;
404 long var55 /* : Int */;
405 long var56 /* : Int */;
406 long var57 /* : Int */;
407 short int var59 /* : Bool */;
408 int cltype60;
409 int idtype61;
410 const char* var_class_name62;
411 long var63 /* : Int */;
412 long var64 /* : Int */;
413 short int var65 /* : Bool */;
414 short int var67 /* : Bool */;
415 int cltype68;
416 int idtype69;
417 const char* var_class_name70;
418 short int var71 /* : Bool */;
419 long var72 /* : Int */;
420 long var73 /* : Int */;
421 short int var75 /* : Bool */;
422 int cltype76;
423 int idtype77;
424 const char* var_class_name78;
425 long var79 /* : Int */;
426 long var80 /* : Int */;
427 long var81 /* : Int */;
428 short int var83 /* : Bool */;
429 int cltype84;
430 int idtype85;
431 const char* var_class_name86;
432 long var87 /* : Int */;
433 long var88 /* : Int */;
434 long var89 /* : Int */;
435 short int var91 /* : Bool */;
436 int cltype92;
437 int idtype93;
438 const char* var_class_name94;
439 long var95 /* : Int */;
440 /* Covariant cast for argument 1 (node) <p1:HashNode[nullable Object]> isa N */
441 /* <p1:HashNode[nullable Object]> isa N */
442 type_struct = self->type->resolution_table->types[COLOR_standard__hash_collection__HashCollection__N];
443 cltype = type_struct->color;
444 idtype = type_struct->id;
445 if(cltype >= p1->type->table_size) {
446 var = 0;
447 } else {
448 var = p1->type->type_table[cltype] == idtype;
449 }
450 if (unlikely(!var)) {
451 var_class_name = p1 == NULL ? "null" : p1->type->name;
452 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "N", var_class_name);
453 PRINT_ERROR(" (%s:%d)\n", FILE_standard__hash_collection, 76);
454 show_backtrace(1);
455 }
456 var_index = p0;
457 var_node = p1;
458 var1 = self->attrs[COLOR_standard__hash_collection__HashCollection___first_item].val; /* _first_item on <self:HashCollection[nullable Object]> */
459 var2 = NULL;
460 if (var1 == NULL) {
461 var3 = 1; /* is null */
462 } else {
463 var3 = 0; /* arg is null but recv is not */
464 }
465 if (0) {
466 { /* Inline kernel#Object#== (var1,var2) on <var1:nullable HashNode[nullable Object]> */
467 var_other = var2;
468 {
469 { /* Inline kernel#Object#is_same_instance (var1,var_other) on <var1:nullable HashNode[nullable Object](HashNode[nullable Object])> */
470 var8 = var1 == var_other;
471 var6 = var8;
472 goto RET_LABEL7;
473 RET_LABEL7:(void)0;
474 }
475 }
476 var4 = var6;
477 goto RET_LABEL5;
478 RET_LABEL5:(void)0;
479 }
480 var3 = var4;
481 }
482 if (var3){
483 self->attrs[COLOR_standard__hash_collection__HashCollection___first_item].val = var_node; /* _first_item on <self:HashCollection[nullable Object]> */
484 } else {
485 var9 = self->attrs[COLOR_standard__hash_collection__HashCollection___last_item].val; /* _last_item on <self:HashCollection[nullable Object]> */
486 if (unlikely(var9 == NULL)) {
487 PRINT_ERROR("Runtime error: %s", "Receiver is null");
488 PRINT_ERROR(" (%s:%d)\n", FILE_standard__hash_collection, 83);
489 show_backtrace(1);
490 }
491 var9->attrs[COLOR_standard__hash_collection__HashNode___next_item].val = var_node; /* _next_item on <var9:nullable HashNode[nullable Object]> */
492 }
493 var10 = self->attrs[COLOR_standard__hash_collection__HashCollection___last_item].val; /* _last_item on <self:HashCollection[nullable Object]> */
494 var_node->attrs[COLOR_standard__hash_collection__HashNode___prev_item].val = var10; /* _prev_item on <var_node:HashNode[nullable Object]> */
495 var11 = NULL;
496 var_node->attrs[COLOR_standard__hash_collection__HashNode___next_item].val = var11; /* _next_item on <var_node:HashNode[nullable Object]> */
497 self->attrs[COLOR_standard__hash_collection__HashCollection___last_item].val = var_node; /* _last_item on <self:HashCollection[nullable Object]> */
498 var12 = self->attrs[COLOR_standard__hash_collection__HashCollection___array].val; /* _array on <self:HashCollection[nullable Object]> */
499 if (var12 == NULL) {
500 PRINT_ERROR("Runtime error: %s", "Receiver is null");
501 PRINT_ERROR(" (%s:%d)\n", FILE_standard__hash_collection, 90);
502 show_backtrace(1);
503 } else {
504 { /* Inline array#NativeArray#[] (var12,var_index) on <var12:nullable NativeArray[nullable HashNode[nullable Object]]> */
505 var15 = ((struct instance_standard__NativeArray*)var12)->values[var_index];
506 var13 = var15;
507 goto RET_LABEL14;
508 RET_LABEL14:(void)0;
509 }
510 }
511 var_next = var13;
512 var16 = self->attrs[COLOR_standard__hash_collection__HashCollection___array].val; /* _array on <self:HashCollection[nullable Object]> */
513 if (var16 == NULL) {
514 PRINT_ERROR("Runtime error: %s", "Receiver is null");
515 PRINT_ERROR(" (%s:%d)\n", FILE_standard__hash_collection, 91);
516 show_backtrace(1);
517 } else {
518 { /* Inline array#NativeArray#[]= (var16,var_index,var_node) on <var16:nullable NativeArray[nullable HashNode[nullable Object]]> */
519 /* Covariant cast for argument 1 (item) <var_node:HashNode[nullable Object]> isa E */
520 /* <var_node:HashNode[nullable Object]> isa E */
521 type_struct21 = var16->type->resolution_table->types[COLOR_standard__NativeArray___35dE];
522 cltype19 = type_struct21->color;
523 idtype20 = type_struct21->id;
524 if(cltype19 >= var_node->type->table_size) {
525 var18 = 0;
526 } else {
527 var18 = var_node->type->type_table[cltype19] == idtype20;
528 }
529 if (unlikely(!var18)) {
530 var_class_name22 = var_node == NULL ? "null" : var_node->type->name;
531 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "E", var_class_name22);
532 PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 808);
533 show_backtrace(1);
534 }
535 ((struct instance_standard__NativeArray*)var16)->values[var_index]=var_node;
536 RET_LABEL17:(void)0;
537 }
538 }
539 var_node->attrs[COLOR_standard__hash_collection__HashNode___next_in_bucklet].val = var_next; /* _next_in_bucklet on <var_node:HashNode[nullable Object]> */
540 var23 = NULL;
541 if (var_next == NULL) {
542 var24 = 0; /* is null */
543 } else {
544 var24 = 1; /* arg is null and recv is not */
545 }
546 if (0) {
547 { /* Inline kernel#Object#!= (var_next,var23) on <var_next:nullable HashNode[nullable Object]> */
548 var_other27 = var23;
549 {
550 var28 = ((short int (*)(val* self, val* p0))(var_next->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_next, var_other27) /* == on <var_next:nullable HashNode[nullable Object](HashNode[nullable Object])>*/;
551 }
552 var29 = !var28;
553 var25 = var29;
554 goto RET_LABEL26;
555 RET_LABEL26:(void)0;
556 }
557 var24 = var25;
558 }
559 if (var24){
560 var_next->attrs[COLOR_standard__hash_collection__HashNode___prev_in_bucklet].val = var_node; /* _prev_in_bucklet on <var_next:nullable HashNode[nullable Object](HashNode[nullable Object])> */
561 } else {
562 }
563 var30 = var_node->attrs[COLOR_standard__hash_collection__HashNode___key].val; /* _key on <var_node:HashNode[nullable Object]> */
564 self->attrs[COLOR_standard__hash_collection__HashCollection___last_accessed_key].val = var30; /* _last_accessed_key on <self:HashCollection[nullable Object]> */
565 self->attrs[COLOR_standard__hash_collection__HashCollection___last_accessed_node].val = var_node; /* _last_accessed_node on <self:HashCollection[nullable Object]> */
566 var31 = self->attrs[COLOR_standard__hash_collection__HashCollection___the_length].l; /* _the_length on <self:HashCollection[nullable Object]> */
567 var_l = var31;
568 var32 = 1;
569 {
570 { /* Inline kernel#Int#+ (var_l,var32) on <var_l:Int> */
571 /* Covariant cast for argument 0 (i) <var32:Int> isa OTHER */
572 /* <var32:Int> isa OTHER */
573 var35 = 1; /* easy <var32:Int> isa OTHER*/
574 if (unlikely(!var35)) {
575 var_class_name38 = type_standard__Int.name;
576 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name38);
577 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 413);
578 show_backtrace(1);
579 }
580 var39 = var_l + var32;
581 var33 = var39;
582 goto RET_LABEL34;
583 RET_LABEL34:(void)0;
584 }
585 }
586 self->attrs[COLOR_standard__hash_collection__HashCollection___the_length].l = var33; /* _the_length on <self:HashCollection[nullable Object]> */
587 var40 = 5;
588 {
589 { /* Inline kernel#Int#+ (var_l,var40) on <var_l:Int> */
590 /* Covariant cast for argument 0 (i) <var40:Int> isa OTHER */
591 /* <var40:Int> isa OTHER */
592 var43 = 1; /* easy <var40:Int> isa OTHER*/
593 if (unlikely(!var43)) {
594 var_class_name46 = type_standard__Int.name;
595 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name46);
596 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 413);
597 show_backtrace(1);
598 }
599 var47 = var_l + var40;
600 var41 = var47;
601 goto RET_LABEL42;
602 RET_LABEL42:(void)0;
603 }
604 }
605 var48 = 2;
606 {
607 { /* Inline kernel#Int#* (var41,var48) on <var41:Int> */
608 /* Covariant cast for argument 0 (i) <var48:Int> isa OTHER */
609 /* <var48:Int> isa OTHER */
610 var51 = 1; /* easy <var48:Int> isa OTHER*/
611 if (unlikely(!var51)) {
612 var_class_name54 = type_standard__Int.name;
613 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name54);
614 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 417);
615 show_backtrace(1);
616 }
617 var55 = var41 * var48;
618 var49 = var55;
619 goto RET_LABEL50;
620 RET_LABEL50:(void)0;
621 }
622 }
623 var56 = 1;
624 {
625 { /* Inline kernel#Int#+ (var49,var56) on <var49:Int> */
626 /* Covariant cast for argument 0 (i) <var56:Int> isa OTHER */
627 /* <var56:Int> isa OTHER */
628 var59 = 1; /* easy <var56:Int> isa OTHER*/
629 if (unlikely(!var59)) {
630 var_class_name62 = type_standard__Int.name;
631 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name62);
632 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 413);
633 show_backtrace(1);
634 }
635 var63 = var49 + var56;
636 var57 = var63;
637 goto RET_LABEL58;
638 RET_LABEL58:(void)0;
639 }
640 }
641 var_l = var57;
642 var64 = self->attrs[COLOR_standard__hash_collection__HashCollection___capacity].l; /* _capacity on <self:HashCollection[nullable Object]> */
643 {
644 { /* Inline kernel#Int#>= (var_l,var64) on <var_l:Int> */
645 /* Covariant cast for argument 0 (i) <var64:Int> isa OTHER */
646 /* <var64:Int> isa OTHER */
647 var67 = 1; /* easy <var64:Int> isa OTHER*/
648 if (unlikely(!var67)) {
649 var_class_name70 = type_standard__Int.name;
650 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name70);
651 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 411);
652 show_backtrace(1);
653 }
654 var71 = var_l >= var64;
655 var65 = var71;
656 goto RET_LABEL66;
657 RET_LABEL66:(void)0;
658 }
659 }
660 if (var65){
661 var72 = 3;
662 {
663 { /* Inline kernel#Int#* (var_l,var72) on <var_l:Int> */
664 /* Covariant cast for argument 0 (i) <var72:Int> isa OTHER */
665 /* <var72:Int> isa OTHER */
666 var75 = 1; /* easy <var72:Int> isa OTHER*/
667 if (unlikely(!var75)) {
668 var_class_name78 = type_standard__Int.name;
669 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name78);
670 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 417);
671 show_backtrace(1);
672 }
673 var79 = var_l * var72;
674 var73 = var79;
675 goto RET_LABEL74;
676 RET_LABEL74:(void)0;
677 }
678 }
679 var80 = 2;
680 {
681 { /* Inline kernel#Int#/ (var73,var80) on <var73:Int> */
682 /* Covariant cast for argument 0 (i) <var80:Int> isa OTHER */
683 /* <var80:Int> isa OTHER */
684 var83 = 1; /* easy <var80:Int> isa OTHER*/
685 if (unlikely(!var83)) {
686 var_class_name86 = type_standard__Int.name;
687 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name86);
688 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 418);
689 show_backtrace(1);
690 }
691 var87 = var73 / var80;
692 var81 = var87;
693 goto RET_LABEL82;
694 RET_LABEL82:(void)0;
695 }
696 }
697 var88 = 1;
698 {
699 { /* Inline kernel#Int#+ (var81,var88) on <var81:Int> */
700 /* Covariant cast for argument 0 (i) <var88:Int> isa OTHER */
701 /* <var88:Int> isa OTHER */
702 var91 = 1; /* easy <var88:Int> isa OTHER*/
703 if (unlikely(!var91)) {
704 var_class_name94 = type_standard__Int.name;
705 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name94);
706 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 413);
707 show_backtrace(1);
708 }
709 var95 = var81 + var88;
710 var89 = var95;
711 goto RET_LABEL90;
712 RET_LABEL90:(void)0;
713 }
714 }
715 {
716 standard__hash_collection___standard__hash_collection__HashCollection___enlarge(self, var89); /* Direct call hash_collection#HashCollection#enlarge on <self:HashCollection[nullable Object]>*/
717 }
718 } else {
719 }
720 RET_LABEL:;
721 }
722 /* method hash_collection#HashCollection#remove_node for (self: HashCollection[nullable Object], nullable Object) */
723 void standard__hash_collection___standard__hash_collection__HashCollection___remove_node(val* self, val* p0) {
724 short int var /* : Bool */;
725 int cltype;
726 int idtype;
727 const struct type* type_struct;
728 short int is_nullable;
729 const char* var_class_name;
730 val* var_k /* var k: nullable Object */;
731 long var1 /* : Int */;
732 long var_i /* var i: Int */;
733 val* var2 /* : nullable HashNode[nullable Object] */;
734 val* var_node /* var node: nullable HashNode[nullable Object] */;
735 val* var3 /* : null */;
736 short int var4 /* : Bool */;
737 short int var5 /* : Bool */;
738 val* var_other /* var other: nullable Object */;
739 short int var7 /* : Bool */;
740 short int var9 /* : Bool */;
741 val* var10 /* : nullable HashNode[nullable Object] */;
742 val* var_prev /* var prev: nullable HashNode[nullable Object] */;
743 val* var11 /* : nullable HashNode[nullable Object] */;
744 val* var_next /* var next: nullable HashNode[nullable Object] */;
745 val* var12 /* : null */;
746 short int var13 /* : Bool */;
747 short int var14 /* : Bool */;
748 val* var_other16 /* var other: nullable Object */;
749 short int var17 /* : Bool */;
750 short int var18 /* : Bool */;
751 short int var19 /* : Bool */;
752 int cltype20;
753 int idtype21;
754 const struct type* type_struct22;
755 const char* var_class_name23;
756 val* var24 /* : null */;
757 short int var25 /* : Bool */;
758 short int var26 /* : Bool */;
759 short int var28 /* : Bool */;
760 short int var29 /* : Bool */;
761 short int var30 /* : Bool */;
762 int cltype31;
763 int idtype32;
764 const struct type* type_struct33;
765 const char* var_class_name34;
766 val* var_ /* var : HashCollection[nullable Object] */;
767 long var35 /* : Int */;
768 long var36 /* : Int */;
769 long var37 /* : Int */;
770 short int var39 /* : Bool */;
771 int cltype40;
772 int idtype41;
773 const char* var_class_name42;
774 long var43 /* : Int */;
775 val* var44 /* : nullable HashNode[nullable Object] */;
776 val* var45 /* : nullable HashNode[nullable Object] */;
777 val* var46 /* : null */;
778 short int var47 /* : Bool */;
779 short int var48 /* : Bool */;
780 short int var50 /* : Bool */;
781 short int var51 /* : Bool */;
782 val* var52 /* : nullable NativeArray[nullable HashNode[nullable Object]] */;
783 short int var54 /* : Bool */;
784 int cltype55;
785 int idtype56;
786 const struct type* type_struct57;
787 short int is_nullable58;
788 const char* var_class_name59;
789 val* var60 /* : null */;
790 short int var61 /* : Bool */;
791 short int var62 /* : Bool */;
792 short int var64 /* : Bool */;
793 short int var65 /* : Bool */;
794 val* var66 /* : null */;
795 /* Covariant cast for argument 0 (k) <p0:nullable Object> isa K */
796 /* <p0:nullable Object> isa K */
797 type_struct = self->type->resolution_table->types[COLOR_standard__hash_collection__HashCollection___35dK];
798 cltype = type_struct->color;
799 idtype = type_struct->id;
800 is_nullable = type_struct->is_nullable;
801 if(p0 == NULL) {
802 var = is_nullable;
803 } else {
804 if(cltype >= p0->type->table_size) {
805 var = 0;
806 } else {
807 var = p0->type->type_table[cltype] == idtype;
808 }
809 }
810 if (unlikely(!var)) {
811 var_class_name = p0 == NULL ? "null" : p0->type->name;
812 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "K", var_class_name);
813 PRINT_ERROR(" (%s:%d)\n", FILE_standard__hash_collection, 111);
814 show_backtrace(1);
815 }
816 var_k = p0;
817 {
818 var1 = standard__hash_collection___standard__hash_collection__HashCollection___index_at(self, var_k);
819 }
820 var_i = var1;
821 {
822 var2 = standard__hash_collection___standard__hash_collection__HashCollection___node_at_idx(self, var_i, var_k);
823 }
824 var_node = var2;
825 var3 = NULL;
826 if (var_node == NULL) {
827 var4 = 1; /* is null */
828 } else {
829 var4 = 0; /* arg is null but recv is not */
830 }
831 if (0) {
832 { /* Inline kernel#Object#== (var_node,var3) on <var_node:nullable HashNode[nullable Object]> */
833 var_other = var3;
834 {
835 { /* Inline kernel#Object#is_same_instance (var_node,var_other) on <var_node:nullable HashNode[nullable Object](HashNode[nullable Object])> */
836 var9 = var_node == var_other;
837 var7 = var9;
838 goto RET_LABEL8;
839 RET_LABEL8:(void)0;
840 }
841 }
842 var5 = var7;
843 goto RET_LABEL6;
844 RET_LABEL6:(void)0;
845 }
846 var4 = var5;
847 }
848 if (var4){
849 goto RET_LABEL;
850 } else {
851 }
852 var10 = var_node->attrs[COLOR_standard__hash_collection__HashNode___prev_item].val; /* _prev_item on <var_node:nullable HashNode[nullable Object](HashNode[nullable Object])> */
853 var_prev = var10;
854 var11 = var_node->attrs[COLOR_standard__hash_collection__HashNode___next_item].val; /* _next_item on <var_node:nullable HashNode[nullable Object](HashNode[nullable Object])> */
855 var_next = var11;
856 var12 = NULL;
857 if (var_prev == NULL) {
858 var13 = 0; /* is null */
859 } else {
860 var13 = 1; /* arg is null and recv is not */
861 }
862 if (0) {
863 { /* Inline kernel#Object#!= (var_prev,var12) on <var_prev:nullable HashNode[nullable Object]> */
864 var_other16 = var12;
865 {
866 var17 = ((short int (*)(val* self, val* p0))(var_prev->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_prev, var_other16) /* == on <var_prev:nullable HashNode[nullable Object](HashNode[nullable Object])>*/;
867 }
868 var18 = !var17;
869 var14 = var18;
870 goto RET_LABEL15;
871 RET_LABEL15:(void)0;
872 }
873 var13 = var14;
874 }
875 if (var13){
876 var_prev->attrs[COLOR_standard__hash_collection__HashNode___next_item].val = var_next; /* _next_item on <var_prev:nullable HashNode[nullable Object](HashNode[nullable Object])> */
877 } else {
878 /* <var_next:nullable HashNode[nullable Object]> isa nullable N */
879 type_struct22 = self->type->resolution_table->types[COLOR_nullable__standard__hash_collection__HashCollection__N];
880 cltype20 = type_struct22->color;
881 idtype21 = type_struct22->id;
882 if(var_next == NULL) {
883 var19 = 1;
884 } else {
885 if(cltype20 >= var_next->type->table_size) {
886 var19 = 0;
887 } else {
888 var19 = var_next->type->type_table[cltype20] == idtype21;
889 }
890 }
891 if (unlikely(!var19)) {
892 var_class_name23 = var_next == NULL ? "null" : var_next->type->name;
893 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable N", var_class_name23);
894 PRINT_ERROR(" (%s:%d)\n", FILE_standard__hash_collection, 124);
895 show_backtrace(1);
896 }
897 self->attrs[COLOR_standard__hash_collection__HashCollection___first_item].val = var_next; /* _first_item on <self:HashCollection[nullable Object]> */
898 }
899 var24 = NULL;
900 if (var_next == NULL) {
901 var25 = 0; /* is null */
902 } else {
903 var25 = 1; /* arg is null and recv is not */
904 }
905 if (0) {
906 { /* Inline kernel#Object#!= (var_next,var24) on <var_next:nullable HashNode[nullable Object]> */
907 var_other16 = var24;
908 {
909 var28 = ((short int (*)(val* self, val* p0))(var_next->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_next, var_other16) /* == on <var_next:nullable HashNode[nullable Object](HashNode[nullable Object])>*/;
910 }
911 var29 = !var28;
912 var26 = var29;
913 goto RET_LABEL27;
914 RET_LABEL27:(void)0;
915 }
916 var25 = var26;
917 }
918 if (var25){
919 var_next->attrs[COLOR_standard__hash_collection__HashNode___prev_item].val = var_prev; /* _prev_item on <var_next:nullable HashNode[nullable Object](HashNode[nullable Object])> */
920 } else {
921 /* <var_prev:nullable HashNode[nullable Object]> isa nullable N */
922 type_struct33 = self->type->resolution_table->types[COLOR_nullable__standard__hash_collection__HashCollection__N];
923 cltype31 = type_struct33->color;
924 idtype32 = type_struct33->id;
925 if(var_prev == NULL) {
926 var30 = 1;
927 } else {
928 if(cltype31 >= var_prev->type->table_size) {
929 var30 = 0;
930 } else {
931 var30 = var_prev->type->type_table[cltype31] == idtype32;
932 }
933 }
934 if (unlikely(!var30)) {
935 var_class_name34 = var_prev == NULL ? "null" : var_prev->type->name;
936 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable N", var_class_name34);
937 PRINT_ERROR(" (%s:%d)\n", FILE_standard__hash_collection, 129);
938 show_backtrace(1);
939 }
940 self->attrs[COLOR_standard__hash_collection__HashCollection___last_item].val = var_prev; /* _last_item on <self:HashCollection[nullable Object]> */
941 }
942 var_ = self;
943 var35 = var_->attrs[COLOR_standard__hash_collection__HashCollection___the_length].l; /* _the_length on <var_:HashCollection[nullable Object]> */
944 var36 = 1;
945 {
946 { /* Inline kernel#Int#- (var35,var36) on <var35:Int> */
947 /* Covariant cast for argument 0 (i) <var36:Int> isa OTHER */
948 /* <var36:Int> isa OTHER */
949 var39 = 1; /* easy <var36:Int> isa OTHER*/
950 if (unlikely(!var39)) {
951 var_class_name42 = type_standard__Int.name;
952 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name42);
953 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 416);
954 show_backtrace(1);
955 }
956 var43 = var35 - var36;
957 var37 = var43;
958 goto RET_LABEL38;
959 RET_LABEL38:(void)0;
960 }
961 }
962 var_->attrs[COLOR_standard__hash_collection__HashCollection___the_length].l = var37; /* _the_length on <var_:HashCollection[nullable Object]> */
963 var44 = var_node->attrs[COLOR_standard__hash_collection__HashNode___prev_in_bucklet].val; /* _prev_in_bucklet on <var_node:nullable HashNode[nullable Object](HashNode[nullable Object])> */
964 var_prev = var44;
965 var45 = var_node->attrs[COLOR_standard__hash_collection__HashNode___next_in_bucklet].val; /* _next_in_bucklet on <var_node:nullable HashNode[nullable Object](HashNode[nullable Object])> */
966 var_next = var45;
967 var46 = NULL;
968 if (var_prev == NULL) {
969 var47 = 0; /* is null */
970 } else {
971 var47 = 1; /* arg is null and recv is not */
972 }
973 if (0) {
974 { /* Inline kernel#Object#!= (var_prev,var46) on <var_prev:nullable HashNode[nullable Object]> */
975 var_other16 = var46;
976 {
977 var50 = ((short int (*)(val* self, val* p0))(var_prev->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_prev, var_other16) /* == on <var_prev:nullable HashNode[nullable Object](HashNode[nullable Object])>*/;
978 }
979 var51 = !var50;
980 var48 = var51;
981 goto RET_LABEL49;
982 RET_LABEL49:(void)0;
983 }
984 var47 = var48;
985 }
986 if (var47){
987 var_prev->attrs[COLOR_standard__hash_collection__HashNode___next_in_bucklet].val = var_next; /* _next_in_bucklet on <var_prev:nullable HashNode[nullable Object](HashNode[nullable Object])> */
988 } else {
989 var52 = self->attrs[COLOR_standard__hash_collection__HashCollection___array].val; /* _array on <self:HashCollection[nullable Object]> */
990 if (var52 == NULL) {
991 PRINT_ERROR("Runtime error: %s", "Receiver is null");
992 PRINT_ERROR(" (%s:%d)\n", FILE_standard__hash_collection, 139);
993 show_backtrace(1);
994 } else {
995 { /* Inline array#NativeArray#[]= (var52,var_i,var_next) on <var52:nullable NativeArray[nullable HashNode[nullable Object]]> */
996 /* Covariant cast for argument 1 (item) <var_next:nullable HashNode[nullable Object]> isa E */
997 /* <var_next:nullable HashNode[nullable Object]> isa E */
998 type_struct57 = var52->type->resolution_table->types[COLOR_standard__NativeArray___35dE];
999 cltype55 = type_struct57->color;
1000 idtype56 = type_struct57->id;
1001 is_nullable58 = type_struct57->is_nullable;
1002 if(var_next == NULL) {
1003 var54 = is_nullable58;
1004 } else {
1005 if(cltype55 >= var_next->type->table_size) {
1006 var54 = 0;
1007 } else {
1008 var54 = var_next->type->type_table[cltype55] == idtype56;
1009 }
1010 }
1011 if (unlikely(!var54)) {
1012 var_class_name59 = var_next == NULL ? "null" : var_next->type->name;
1013 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "E", var_class_name59);
1014 PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 808);
1015 show_backtrace(1);
1016 }
1017 ((struct instance_standard__NativeArray*)var52)->values[var_i]=var_next;
1018 RET_LABEL53:(void)0;
1019 }
1020 }
1021 }
1022 var60 = NULL;
1023 if (var_next == NULL) {
1024 var61 = 0; /* is null */
1025 } else {
1026 var61 = 1; /* arg is null and recv is not */
1027 }
1028 if (0) {
1029 { /* Inline kernel#Object#!= (var_next,var60) on <var_next:nullable HashNode[nullable Object]> */
1030 var_other16 = var60;
1031 {
1032 var64 = ((short int (*)(val* self, val* p0))(var_next->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_next, var_other16) /* == on <var_next:nullable HashNode[nullable Object](HashNode[nullable Object])>*/;
1033 }
1034 var65 = !var64;
1035 var62 = var65;
1036 goto RET_LABEL63;
1037 RET_LABEL63:(void)0;
1038 }
1039 var61 = var62;
1040 }
1041 if (var61){
1042 var_next->attrs[COLOR_standard__hash_collection__HashNode___prev_in_bucklet].val = var_prev; /* _prev_in_bucklet on <var_next:nullable HashNode[nullable Object](HashNode[nullable Object])> */
1043 } else {
1044 }
1045 var66 = NULL;
1046 self->attrs[COLOR_standard__hash_collection__HashCollection___last_accessed_key].val = var66; /* _last_accessed_key on <self:HashCollection[nullable Object]> */
1047 RET_LABEL:;
1048 }
1049 /* method hash_collection#HashCollection#raz for (self: HashCollection[nullable Object]) */
1050 void standard__hash_collection___standard__hash_collection__HashCollection___raz(val* self) {
1051 long var /* : Int */;
1052 long var1 /* : Int */;
1053 long var2 /* : Int */;
1054 short int var4 /* : Bool */;
1055 int cltype;
1056 int idtype;
1057 const char* var_class_name;
1058 long var5 /* : Int */;
1059 long var_i /* var i: Int */;
1060 long var6 /* : Int */;
1061 short int var7 /* : Bool */;
1062 short int var9 /* : Bool */;
1063 int cltype10;
1064 int idtype11;
1065 const char* var_class_name12;
1066 short int var13 /* : Bool */;
1067 val* var14 /* : nullable NativeArray[nullable HashNode[nullable Object]] */;
1068 val* var15 /* : null */;
1069 short int var17 /* : Bool */;
1070 int cltype18;
1071 int idtype19;
1072 const struct type* type_struct;
1073 short int is_nullable;
1074 const char* var_class_name20;
1075 long var21 /* : Int */;
1076 long var22 /* : Int */;
1077 short int var24 /* : Bool */;
1078 int cltype25;
1079 int idtype26;
1080 const char* var_class_name27;
1081 long var28 /* : Int */;
1082 long var29 /* : Int */;
1083 val* var30 /* : null */;
1084 val* var31 /* : null */;
1085 val* var32 /* : null */;
1086 var = self->attrs[COLOR_standard__hash_collection__HashCollection___capacity].l; /* _capacity on <self:HashCollection[nullable Object]> */
1087 var1 = 1;
1088 {
1089 { /* Inline kernel#Int#- (var,var1) on <var:Int> */
1090 /* Covariant cast for argument 0 (i) <var1:Int> isa OTHER */
1091 /* <var1:Int> isa OTHER */
1092 var4 = 1; /* easy <var1:Int> isa OTHER*/
1093 if (unlikely(!var4)) {
1094 var_class_name = type_standard__Int.name;
1095 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
1096 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 416);
1097 show_backtrace(1);
1098 }
1099 var5 = var - var1;
1100 var2 = var5;
1101 goto RET_LABEL3;
1102 RET_LABEL3:(void)0;
1103 }
1104 }
1105 var_i = var2;
1106 for(;;) {
1107 var6 = 0;
1108 {
1109 { /* Inline kernel#Int#>= (var_i,var6) on <var_i:Int> */
1110 /* Covariant cast for argument 0 (i) <var6:Int> isa OTHER */
1111 /* <var6:Int> isa OTHER */
1112 var9 = 1; /* easy <var6:Int> isa OTHER*/
1113 if (unlikely(!var9)) {
1114 var_class_name12 = type_standard__Int.name;
1115 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name12);
1116 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 411);
1117 show_backtrace(1);
1118 }
1119 var13 = var_i >= var6;
1120 var7 = var13;
1121 goto RET_LABEL8;
1122 RET_LABEL8:(void)0;
1123 }
1124 }
1125 if (var7){
1126 var14 = self->attrs[COLOR_standard__hash_collection__HashCollection___array].val; /* _array on <self:HashCollection[nullable Object]> */
1127 var15 = NULL;
1128 if (var14 == NULL) {
1129 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1130 PRINT_ERROR(" (%s:%d)\n", FILE_standard__hash_collection, 153);
1131 show_backtrace(1);
1132 } else {
1133 { /* Inline array#NativeArray#[]= (var14,var_i,var15) on <var14:nullable NativeArray[nullable HashNode[nullable Object]]> */
1134 /* Covariant cast for argument 1 (item) <var15:null> isa E */
1135 /* <var15:null> isa E */
1136 type_struct = var14->type->resolution_table->types[COLOR_standard__NativeArray___35dE];
1137 cltype18 = type_struct->color;
1138 idtype19 = type_struct->id;
1139 is_nullable = type_struct->is_nullable;
1140 if(var15 == NULL) {
1141 var17 = is_nullable;
1142 } else {
1143 if(cltype18 >= var15->type->table_size) {
1144 var17 = 0;
1145 } else {
1146 var17 = var15->type->type_table[cltype18] == idtype19;
1147 }
1148 }
1149 if (unlikely(!var17)) {
1150 var_class_name20 = var15 == NULL ? "null" : var15->type->name;
1151 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "E", var_class_name20);
1152 PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 808);
1153 show_backtrace(1);
1154 }
1155 ((struct instance_standard__NativeArray*)var14)->values[var_i]=var15;
1156 RET_LABEL16:(void)0;
1157 }
1158 }
1159 var21 = 1;
1160 {
1161 { /* Inline kernel#Int#- (var_i,var21) on <var_i:Int> */
1162 /* Covariant cast for argument 0 (i) <var21:Int> isa OTHER */
1163 /* <var21:Int> isa OTHER */
1164 var24 = 1; /* easy <var21:Int> isa OTHER*/
1165 if (unlikely(!var24)) {
1166 var_class_name27 = type_standard__Int.name;
1167 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name27);
1168 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 416);
1169 show_backtrace(1);
1170 }
1171 var28 = var_i - var21;
1172 var22 = var28;
1173 goto RET_LABEL23;
1174 RET_LABEL23:(void)0;
1175 }
1176 }
1177 var_i = var22;
1178 } else {
1179 goto BREAK_label;
1180 }
1181 }
1182 BREAK_label: (void)0;
1183 var29 = 0;
1184 self->attrs[COLOR_standard__hash_collection__HashCollection___the_length].l = var29; /* _the_length on <self:HashCollection[nullable Object]> */
1185 var30 = NULL;
1186 self->attrs[COLOR_standard__hash_collection__HashCollection___first_item].val = var30; /* _first_item on <self:HashCollection[nullable Object]> */
1187 var31 = NULL;
1188 self->attrs[COLOR_standard__hash_collection__HashCollection___last_item].val = var31; /* _last_item on <self:HashCollection[nullable Object]> */
1189 var32 = NULL;
1190 self->attrs[COLOR_standard__hash_collection__HashCollection___last_accessed_key].val = var32; /* _last_accessed_key on <self:HashCollection[nullable Object]> */
1191 RET_LABEL:;
1192 }
1193 /* method hash_collection#HashCollection#enlarge for (self: HashCollection[nullable Object], Int) */
1194 void standard__hash_collection___standard__hash_collection__HashCollection___enlarge(val* self, long p0) {
1195 long var_cap /* var cap: Int */;
1196 long var /* : Int */;
1197 long var_old_cap /* var old_cap: Int */;
1198 long var1 /* : Int */;
1199 long var2 /* : Int */;
1200 long var3 /* : Int */;
1201 short int var5 /* : Bool */;
1202 int cltype;
1203 int idtype;
1204 const char* var_class_name;
1205 long var6 /* : Int */;
1206 short int var7 /* : Bool */;
1207 short int var9 /* : Bool */;
1208 int cltype10;
1209 int idtype11;
1210 const char* var_class_name12;
1211 short int var13 /* : Bool */;
1212 long var14 /* : Int */;
1213 long var15 /* : Int */;
1214 long var16 /* : Int */;
1215 short int var18 /* : Bool */;
1216 int cltype19;
1217 int idtype20;
1218 const char* var_class_name21;
1219 long var22 /* : Int */;
1220 long var23 /* : Int */;
1221 short int var24 /* : Bool */;
1222 short int var26 /* : Bool */;
1223 int cltype27;
1224 int idtype28;
1225 const char* var_class_name29;
1226 short int var30 /* : Bool */;
1227 val* var31 /* : null */;
1228 val* var32 /* : NativeArray[nullable HashNode[nullable Object]] */;
1229 val* var_new_array /* var new_array: NativeArray[nullable HashNode[nullable Object]] */;
1230 long var33 /* : Int */;
1231 long var34 /* : Int */;
1232 short int var36 /* : Bool */;
1233 int cltype37;
1234 int idtype38;
1235 const char* var_class_name39;
1236 long var40 /* : Int */;
1237 long var_i /* var i: Int */;
1238 long var41 /* : Int */;
1239 short int var42 /* : Bool */;
1240 short int var44 /* : Bool */;
1241 int cltype45;
1242 int idtype46;
1243 const char* var_class_name47;
1244 short int var48 /* : Bool */;
1245 val* var49 /* : null */;
1246 short int var51 /* : Bool */;
1247 int cltype52;
1248 int idtype53;
1249 const struct type* type_struct;
1250 short int is_nullable;
1251 const char* var_class_name54;
1252 long var55 /* : Int */;
1253 long var56 /* : Int */;
1254 short int var58 /* : Bool */;
1255 int cltype59;
1256 int idtype60;
1257 const char* var_class_name61;
1258 long var62 /* : Int */;
1259 long var63 /* : Int */;
1260 short int var64 /* : Bool */;
1261 short int var66 /* : Bool */;
1262 int cltype67;
1263 int idtype68;
1264 const char* var_class_name69;
1265 short int var70 /* : Bool */;
1266 val* var71 /* : nullable HashNode[nullable Object] */;
1267 val* var_node /* var node: nullable HashNode[nullable Object] */;
1268 val* var72 /* : null */;
1269 short int var73 /* : Bool */;
1270 short int var74 /* : Bool */;
1271 val* var_other /* var other: nullable Object */;
1272 short int var76 /* : Bool */;
1273 short int var77 /* : Bool */;
1274 val* var78 /* : nullable Object */;
1275 long var79 /* : Int */;
1276 long var_index /* var index: Int */;
1277 val* var80 /* : nullable Object */;
1278 val* var82 /* : nullable HashNode[nullable Object] */;
1279 val* var_next /* var next: nullable HashNode[nullable Object] */;
1280 short int var84 /* : Bool */;
1281 int cltype85;
1282 int idtype86;
1283 const struct type* type_struct87;
1284 const char* var_class_name88;
1285 val* var89 /* : null */;
1286 val* var90 /* : null */;
1287 short int var91 /* : Bool */;
1288 short int var92 /* : Bool */;
1289 short int var94 /* : Bool */;
1290 short int var95 /* : Bool */;
1291 val* var96 /* : nullable HashNode[nullable Object] */;
1292 short int var97 /* : Bool */;
1293 int cltype98;
1294 int idtype99;
1295 const struct type* type_struct100;
1296 const char* var_class_name101;
1297 var_cap = p0;
1298 var = self->attrs[COLOR_standard__hash_collection__HashCollection___capacity].l; /* _capacity on <self:HashCollection[nullable Object]> */
1299 var_old_cap = var;
1300 var1 = self->attrs[COLOR_standard__hash_collection__HashCollection___the_length].l; /* _the_length on <self:HashCollection[nullable Object]> */
1301 var2 = 1;
1302 {
1303 { /* Inline kernel#Int#+ (var1,var2) on <var1:Int> */
1304 /* Covariant cast for argument 0 (i) <var2:Int> isa OTHER */
1305 /* <var2:Int> isa OTHER */
1306 var5 = 1; /* easy <var2:Int> isa OTHER*/
1307 if (unlikely(!var5)) {
1308 var_class_name = type_standard__Int.name;
1309 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
1310 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 413);
1311 show_backtrace(1);
1312 }
1313 var6 = var1 + var2;
1314 var3 = var6;
1315 goto RET_LABEL4;
1316 RET_LABEL4:(void)0;
1317 }
1318 }
1319 {
1320 { /* Inline kernel#Int#< (var_cap,var3) on <var_cap:Int> */
1321 /* Covariant cast for argument 0 (i) <var3:Int> isa OTHER */
1322 /* <var3:Int> isa OTHER */
1323 var9 = 1; /* easy <var3:Int> isa OTHER*/
1324 if (unlikely(!var9)) {
1325 var_class_name12 = type_standard__Int.name;
1326 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name12);
1327 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 410);
1328 show_backtrace(1);
1329 }
1330 var13 = var_cap < var3;
1331 var7 = var13;
1332 goto RET_LABEL8;
1333 RET_LABEL8:(void)0;
1334 }
1335 }
1336 if (var7){
1337 var14 = self->attrs[COLOR_standard__hash_collection__HashCollection___the_length].l; /* _the_length on <self:HashCollection[nullable Object]> */
1338 var15 = 1;
1339 {
1340 { /* Inline kernel#Int#+ (var14,var15) on <var14:Int> */
1341 /* Covariant cast for argument 0 (i) <var15:Int> isa OTHER */
1342 /* <var15:Int> isa OTHER */
1343 var18 = 1; /* easy <var15:Int> isa OTHER*/
1344 if (unlikely(!var18)) {
1345 var_class_name21 = type_standard__Int.name;
1346 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name21);
1347 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 413);
1348 show_backtrace(1);
1349 }
1350 var22 = var14 + var15;
1351 var16 = var22;
1352 goto RET_LABEL17;
1353 RET_LABEL17:(void)0;
1354 }
1355 }
1356 var_cap = var16;
1357 } else {
1358 }
1359 var23 = self->attrs[COLOR_standard__hash_collection__HashCollection___capacity].l; /* _capacity on <self:HashCollection[nullable Object]> */
1360 {
1361 { /* Inline kernel#Int#<= (var_cap,var23) on <var_cap:Int> */
1362 /* Covariant cast for argument 0 (i) <var23:Int> isa OTHER */
1363 /* <var23:Int> isa OTHER */
1364 var26 = 1; /* easy <var23:Int> isa OTHER*/
1365 if (unlikely(!var26)) {
1366 var_class_name29 = type_standard__Int.name;
1367 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name29);
1368 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 409);
1369 show_backtrace(1);
1370 }
1371 var30 = var_cap <= var23;
1372 var24 = var30;
1373 goto RET_LABEL25;
1374 RET_LABEL25:(void)0;
1375 }
1376 }
1377 if (var24){
1378 goto RET_LABEL;
1379 } else {
1380 }
1381 self->attrs[COLOR_standard__hash_collection__HashCollection___capacity].l = var_cap; /* _capacity on <self:HashCollection[nullable Object]> */
1382 var31 = NULL;
1383 self->attrs[COLOR_standard__hash_collection__HashCollection___last_accessed_key].val = var31; /* _last_accessed_key on <self:HashCollection[nullable Object]> */
1384 var32 = NEW_standard__NativeArray(var_cap, self->type->resolution_table->types[COLOR_standard__NativeArray__nullable__standard__hash_collection__HashCollection__N]);
1385 var_new_array = var32;
1386 self->attrs[COLOR_standard__hash_collection__HashCollection___array].val = var_new_array; /* _array on <self:HashCollection[nullable Object]> */
1387 var33 = 1;
1388 {
1389 { /* Inline kernel#Int#- (var_cap,var33) on <var_cap:Int> */
1390 /* Covariant cast for argument 0 (i) <var33:Int> isa OTHER */
1391 /* <var33:Int> isa OTHER */
1392 var36 = 1; /* easy <var33:Int> isa OTHER*/
1393 if (unlikely(!var36)) {
1394 var_class_name39 = type_standard__Int.name;
1395 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name39);
1396 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 416);
1397 show_backtrace(1);
1398 }
1399 var40 = var_cap - var33;
1400 var34 = var40;
1401 goto RET_LABEL35;
1402 RET_LABEL35:(void)0;
1403 }
1404 }
1405 var_i = var34;
1406 for(;;) {
1407 var41 = 0;
1408 {
1409 { /* Inline kernel#Int#>= (var_i,var41) on <var_i:Int> */
1410 /* Covariant cast for argument 0 (i) <var41:Int> isa OTHER */
1411 /* <var41:Int> isa OTHER */
1412 var44 = 1; /* easy <var41:Int> isa OTHER*/
1413 if (unlikely(!var44)) {
1414 var_class_name47 = type_standard__Int.name;
1415 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name47);
1416 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 411);
1417 show_backtrace(1);
1418 }
1419 var48 = var_i >= var41;
1420 var42 = var48;
1421 goto RET_LABEL43;
1422 RET_LABEL43:(void)0;
1423 }
1424 }
1425 if (var42){
1426 var49 = NULL;
1427 {
1428 { /* Inline array#NativeArray#[]= (var_new_array,var_i,var49) on <var_new_array:NativeArray[nullable HashNode[nullable Object]]> */
1429 /* Covariant cast for argument 1 (item) <var49:null> isa E */
1430 /* <var49:null> isa E */
1431 type_struct = var_new_array->type->resolution_table->types[COLOR_standard__NativeArray___35dE];
1432 cltype52 = type_struct->color;
1433 idtype53 = type_struct->id;
1434 is_nullable = type_struct->is_nullable;
1435 if(var49 == NULL) {
1436 var51 = is_nullable;
1437 } else {
1438 if(cltype52 >= var49->type->table_size) {
1439 var51 = 0;
1440 } else {
1441 var51 = var49->type->type_table[cltype52] == idtype53;
1442 }
1443 }
1444 if (unlikely(!var51)) {
1445 var_class_name54 = var49 == NULL ? "null" : var49->type->name;
1446 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "E", var_class_name54);
1447 PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 808);
1448 show_backtrace(1);
1449 }
1450 ((struct instance_standard__NativeArray*)var_new_array)->values[var_i]=var49;
1451 RET_LABEL50:(void)0;
1452 }
1453 }
1454 var55 = 1;
1455 {
1456 { /* Inline kernel#Int#- (var_i,var55) on <var_i:Int> */
1457 /* Covariant cast for argument 0 (i) <var55:Int> isa OTHER */
1458 /* <var55:Int> isa OTHER */
1459 var58 = 1; /* easy <var55:Int> isa OTHER*/
1460 if (unlikely(!var58)) {
1461 var_class_name61 = type_standard__Int.name;
1462 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name61);
1463 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 416);
1464 show_backtrace(1);
1465 }
1466 var62 = var_i - var55;
1467 var56 = var62;
1468 goto RET_LABEL57;
1469 RET_LABEL57:(void)0;
1470 }
1471 }
1472 var_i = var56;
1473 } else {
1474 goto BREAK_label;
1475 }
1476 }
1477 BREAK_label: (void)0;
1478 var63 = self->attrs[COLOR_standard__hash_collection__HashCollection___capacity].l; /* _capacity on <self:HashCollection[nullable Object]> */
1479 {
1480 { /* Inline kernel#Int#<= (var63,var_old_cap) on <var63:Int> */
1481 /* Covariant cast for argument 0 (i) <var_old_cap:Int> isa OTHER */
1482 /* <var_old_cap:Int> isa OTHER */
1483 var66 = 1; /* easy <var_old_cap:Int> isa OTHER*/
1484 if (unlikely(!var66)) {
1485 var_class_name69 = type_standard__Int.name;
1486 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name69);
1487 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 409);
1488 show_backtrace(1);
1489 }
1490 var70 = var63 <= var_old_cap;
1491 var64 = var70;
1492 goto RET_LABEL65;
1493 RET_LABEL65:(void)0;
1494 }
1495 }
1496 if (var64){
1497 goto RET_LABEL;
1498 } else {
1499 }
1500 var71 = self->attrs[COLOR_standard__hash_collection__HashCollection___first_item].val; /* _first_item on <self:HashCollection[nullable Object]> */
1501 var_node = var71;
1502 for(;;) {
1503 var72 = NULL;
1504 if (var_node == NULL) {
1505 var73 = 0; /* is null */
1506 } else {
1507 var73 = 1; /* arg is null and recv is not */
1508 }
1509 if (0) {
1510 { /* Inline kernel#Object#!= (var_node,var72) on <var_node:nullable HashNode[nullable Object]> */
1511 var_other = var72;
1512 {
1513 var76 = ((short int (*)(val* self, val* p0))(var_node->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_node, var_other) /* == on <var_node:nullable HashNode[nullable Object](HashNode[nullable Object])>*/;
1514 }
1515 var77 = !var76;
1516 var74 = var77;
1517 goto RET_LABEL75;
1518 RET_LABEL75:(void)0;
1519 }
1520 var73 = var74;
1521 }
1522 if (var73){
1523 var78 = var_node->attrs[COLOR_standard__hash_collection__HashNode___key].val; /* _key on <var_node:nullable HashNode[nullable Object](HashNode[nullable Object])> */
1524 {
1525 var79 = standard__hash_collection___standard__hash_collection__HashCollection___index_at(self, var78);
1526 }
1527 var_index = var79;
1528 {
1529 { /* Inline array#NativeArray#[] (var_new_array,var_index) on <var_new_array:NativeArray[nullable HashNode[nullable Object]]> */
1530 var82 = ((struct instance_standard__NativeArray*)var_new_array)->values[var_index];
1531 var80 = var82;
1532 goto RET_LABEL81;
1533 RET_LABEL81:(void)0;
1534 }
1535 }
1536 var_next = var80;
1537 {
1538 { /* Inline array#NativeArray#[]= (var_new_array,var_index,var_node) on <var_new_array:NativeArray[nullable HashNode[nullable Object]]> */
1539 /* Covariant cast for argument 1 (item) <var_node:nullable HashNode[nullable Object](HashNode[nullable Object])> isa E */
1540 /* <var_node:nullable HashNode[nullable Object](HashNode[nullable Object])> isa E */
1541 type_struct87 = var_new_array->type->resolution_table->types[COLOR_standard__NativeArray___35dE];
1542 cltype85 = type_struct87->color;
1543 idtype86 = type_struct87->id;
1544 if(cltype85 >= var_node->type->table_size) {
1545 var84 = 0;
1546 } else {
1547 var84 = var_node->type->type_table[cltype85] == idtype86;
1548 }
1549 if (unlikely(!var84)) {
1550 var_class_name88 = var_node == NULL ? "null" : var_node->type->name;
1551 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "E", var_class_name88);
1552 PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 808);
1553 show_backtrace(1);
1554 }
1555 ((struct instance_standard__NativeArray*)var_new_array)->values[var_index]=var_node;
1556 RET_LABEL83:(void)0;
1557 }
1558 }
1559 var89 = NULL;
1560 var_node->attrs[COLOR_standard__hash_collection__HashNode___prev_in_bucklet].val = var89; /* _prev_in_bucklet on <var_node:nullable HashNode[nullable Object](HashNode[nullable Object])> */
1561 var_node->attrs[COLOR_standard__hash_collection__HashNode___next_in_bucklet].val = var_next; /* _next_in_bucklet on <var_node:nullable HashNode[nullable Object](HashNode[nullable Object])> */
1562 var90 = NULL;
1563 if (var_next == NULL) {
1564 var91 = 0; /* is null */
1565 } else {
1566 var91 = 1; /* arg is null and recv is not */
1567 }
1568 if (0) {
1569 { /* Inline kernel#Object#!= (var_next,var90) on <var_next:nullable HashNode[nullable Object]> */
1570 var_other = var90;
1571 {
1572 var94 = ((short int (*)(val* self, val* p0))(var_next->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_next, var_other) /* == on <var_next:nullable HashNode[nullable Object](HashNode[nullable Object])>*/;
1573 }
1574 var95 = !var94;
1575 var92 = var95;
1576 goto RET_LABEL93;
1577 RET_LABEL93:(void)0;
1578 }
1579 var91 = var92;
1580 }
1581 if (var91){
1582 var_next->attrs[COLOR_standard__hash_collection__HashNode___prev_in_bucklet].val = var_node; /* _prev_in_bucklet on <var_next:nullable HashNode[nullable Object](HashNode[nullable Object])> */
1583 } else {
1584 }
1585 var96 = var_node->attrs[COLOR_standard__hash_collection__HashNode___next_item].val; /* _next_item on <var_node:nullable HashNode[nullable Object](HashNode[nullable Object])> */
1586 /* <var96:nullable HashNode[nullable Object]> isa nullable N */
1587 type_struct100 = self->type->resolution_table->types[COLOR_nullable__standard__hash_collection__HashCollection__N];
1588 cltype98 = type_struct100->color;
1589 idtype99 = type_struct100->id;
1590 if(var96 == NULL) {
1591 var97 = 1;
1592 } else {
1593 if(cltype98 >= var96->type->table_size) {
1594 var97 = 0;
1595 } else {
1596 var97 = var96->type->type_table[cltype98] == idtype99;
1597 }
1598 }
1599 if (unlikely(!var97)) {
1600 var_class_name101 = var96 == NULL ? "null" : var96->type->name;
1601 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable N", var_class_name101);
1602 PRINT_ERROR(" (%s:%d)\n", FILE_standard__hash_collection, 195);
1603 show_backtrace(1);
1604 }
1605 var_node = var96;
1606 } else {
1607 goto BREAK_label102;
1608 }
1609 }
1610 BREAK_label102: (void)0;
1611 RET_LABEL:;
1612 }
1613 /* method hash_collection#HashNode#key= for (self: HashNode[nullable Object], nullable Object) */
1614 void standard__hash_collection___standard__hash_collection__HashNode___key_61d(val* self, val* p0) {
1615 short int var /* : Bool */;
1616 int cltype;
1617 int idtype;
1618 const struct type* type_struct;
1619 short int is_nullable;
1620 const char* var_class_name;
1621 /* Covariant cast for argument 0 (key) <p0:nullable Object> isa K */
1622 /* <p0:nullable Object> isa K */
1623 type_struct = self->type->resolution_table->types[COLOR_standard__hash_collection__HashNode___35dK];
1624 cltype = type_struct->color;
1625 idtype = type_struct->id;
1626 is_nullable = type_struct->is_nullable;
1627 if(p0 == NULL) {
1628 var = is_nullable;
1629 } else {
1630 if(cltype >= p0->type->table_size) {
1631 var = 0;
1632 } else {
1633 var = p0->type->type_table[cltype] == idtype;
1634 }
1635 }
1636 if (unlikely(!var)) {
1637 var_class_name = p0 == NULL ? "null" : p0->type->name;
1638 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "K", var_class_name);
1639 PRINT_ERROR(" (%s:%d)\n", FILE_standard__hash_collection, 201);
1640 show_backtrace(1);
1641 }
1642 self->attrs[COLOR_standard__hash_collection__HashNode___key].val = p0; /* _key on <self:HashNode[nullable Object]> */
1643 RET_LABEL:;
1644 }
1645 /* method hash_collection#HashNode#init for (self: HashNode[nullable Object]) */
1646 void standard__hash_collection___standard__hash_collection__HashNode___standard__kernel__Object__init(val* self) {
1647 {
1648 ((void (*)(val* self))(self->class->vft[COLOR_standard__hash_collection___standard__hash_collection__HashNode___standard__kernel__Object__init]))(self) /* init on <self:HashNode[nullable Object]>*/;
1649 }
1650 RET_LABEL:;
1651 }
1652 /* method hash_collection#HashMap#[] for (self: HashMap[nullable Object, nullable Object], nullable Object): nullable Object */
1653 val* standard___standard__HashMap___standard__abstract_collection__MapRead___91d_93d(val* self, val* p0) {
1654 val* var /* : nullable Object */;
1655 short int var1 /* : Bool */;
1656 int cltype;
1657 int idtype;
1658 const struct type* type_struct;
1659 short int is_nullable;
1660 const char* var_class_name;
1661 val* var_key /* var key: nullable Object */;
1662 val* var2 /* : nullable HashNode[nullable Object] */;
1663 val* var_c /* var c: nullable HashMapNode[nullable Object, nullable Object] */;
1664 val* var3 /* : null */;
1665 short int var4 /* : Bool */;
1666 short int var5 /* : Bool */;
1667 val* var_other /* var other: nullable Object */;
1668 short int var7 /* : Bool */;
1669 short int var9 /* : Bool */;
1670 val* var10 /* : nullable Object */;
1671 val* var11 /* : nullable Object */;
1672 /* Covariant cast for argument 0 (key) <p0:nullable Object> isa K */
1673 /* <p0:nullable Object> isa K */
1674 type_struct = self->type->resolution_table->types[COLOR_standard__HashMap___35dK];
1675 cltype = type_struct->color;
1676 idtype = type_struct->id;
1677 is_nullable = type_struct->is_nullable;
1678 if(p0 == NULL) {
1679 var1 = is_nullable;
1680 } else {
1681 if(cltype >= p0->type->table_size) {
1682 var1 = 0;
1683 } else {
1684 var1 = p0->type->type_table[cltype] == idtype;
1685 }
1686 }
1687 if (unlikely(!var1)) {
1688 var_class_name = p0 == NULL ? "null" : p0->type->name;
1689 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "K", var_class_name);
1690 PRINT_ERROR(" (%s:%d)\n", FILE_standard__hash_collection, 228);
1691 show_backtrace(1);
1692 }
1693 var_key = p0;
1694 {
1695 var2 = standard__hash_collection___standard__hash_collection__HashCollection___node_at(self, var_key);
1696 }
1697 var_c = var2;
1698 var3 = NULL;
1699 if (var_c == NULL) {
1700 var4 = 1; /* is null */
1701 } else {
1702 var4 = 0; /* arg is null but recv is not */
1703 }
1704 if (0) {
1705 { /* Inline kernel#Object#== (var_c,var3) on <var_c:nullable HashMapNode[nullable Object, nullable Object]> */
1706 var_other = var3;
1707 {
1708 { /* Inline kernel#Object#is_same_instance (var_c,var_other) on <var_c:nullable HashMapNode[nullable Object, nullable Object](HashMapNode[nullable Object, nullable Object])> */
1709 var9 = var_c == var_other;
1710 var7 = var9;
1711 goto RET_LABEL8;
1712 RET_LABEL8:(void)0;
1713 }
1714 }
1715 var5 = var7;
1716 goto RET_LABEL6;
1717 RET_LABEL6:(void)0;
1718 }
1719 var4 = var5;
1720 }
1721 if (var4){
1722 {
1723 var10 = ((val* (*)(val* self, val* p0))(self->class->vft[COLOR_standard__abstract_collection__MapRead__provide_default_value]))(self, var_key) /* provide_default_value on <self:HashMap[nullable Object, nullable Object]>*/;
1724 }
1725 var = var10;
1726 goto RET_LABEL;
1727 } else {
1728 var11 = var_c->attrs[COLOR_standard__hash_collection__HashMapNode___value].val; /* _value on <var_c:nullable HashMapNode[nullable Object, nullable Object](HashMapNode[nullable Object, nullable Object])> */
1729 var = var11;
1730 goto RET_LABEL;
1731 }
1732 RET_LABEL:;
1733 return var;
1734 }
1735 /* method hash_collection#HashMap#get_or_null for (self: HashMap[nullable Object, nullable Object], nullable Object): nullable Object */
1736 val* standard___standard__HashMap___standard__abstract_collection__MapRead__get_or_null(val* self, val* p0) {
1737 val* var /* : nullable Object */;
1738 short int var1 /* : Bool */;
1739 int cltype;
1740 int idtype;
1741 const struct type* type_struct;
1742 short int is_nullable;
1743 const char* var_class_name;
1744 val* var_key /* var key: nullable Object */;
1745 val* var2 /* : nullable HashNode[nullable Object] */;
1746 val* var_c /* var c: nullable HashMapNode[nullable Object, nullable Object] */;
1747 val* var3 /* : null */;
1748 short int var4 /* : Bool */;
1749 short int var5 /* : Bool */;
1750 val* var_other /* var other: nullable Object */;
1751 short int var7 /* : Bool */;
1752 short int var9 /* : Bool */;
1753 val* var10 /* : null */;
1754 val* var11 /* : nullable Object */;
1755 /* Covariant cast for argument 0 (key) <p0:nullable Object> isa K */
1756 /* <p0:nullable Object> isa K */
1757 type_struct = self->type->resolution_table->types[COLOR_standard__HashMap___35dK];
1758 cltype = type_struct->color;
1759 idtype = type_struct->id;
1760 is_nullable = type_struct->is_nullable;
1761 if(p0 == NULL) {
1762 var1 = is_nullable;
1763 } else {
1764 if(cltype >= p0->type->table_size) {
1765 var1 = 0;
1766 } else {
1767 var1 = p0->type->type_table[cltype] == idtype;
1768 }
1769 }
1770 if (unlikely(!var1)) {
1771 var_class_name = p0 == NULL ? "null" : p0->type->name;
1772 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "K", var_class_name);
1773 PRINT_ERROR(" (%s:%d)\n", FILE_standard__hash_collection, 238);
1774 show_backtrace(1);
1775 }
1776 var_key = p0;
1777 {
1778 var2 = standard__hash_collection___standard__hash_collection__HashCollection___node_at(self, var_key);
1779 }
1780 var_c = var2;
1781 var3 = NULL;
1782 if (var_c == NULL) {
1783 var4 = 1; /* is null */
1784 } else {
1785 var4 = 0; /* arg is null but recv is not */
1786 }
1787 if (0) {
1788 { /* Inline kernel#Object#== (var_c,var3) on <var_c:nullable HashMapNode[nullable Object, nullable Object]> */
1789 var_other = var3;
1790 {
1791 { /* Inline kernel#Object#is_same_instance (var_c,var_other) on <var_c:nullable HashMapNode[nullable Object, nullable Object](HashMapNode[nullable Object, nullable Object])> */
1792 var9 = var_c == var_other;
1793 var7 = var9;
1794 goto RET_LABEL8;
1795 RET_LABEL8:(void)0;
1796 }
1797 }
1798 var5 = var7;
1799 goto RET_LABEL6;
1800 RET_LABEL6:(void)0;
1801 }
1802 var4 = var5;
1803 }
1804 if (var4){
1805 var10 = NULL;
1806 var = var10;
1807 goto RET_LABEL;
1808 } else {
1809 var11 = var_c->attrs[COLOR_standard__hash_collection__HashMapNode___value].val; /* _value on <var_c:nullable HashMapNode[nullable Object, nullable Object](HashMapNode[nullable Object, nullable Object])> */
1810 var = var11;
1811 goto RET_LABEL;
1812 }
1813 RET_LABEL:;
1814 return var;
1815 }
1816 /* method hash_collection#HashMap#iterator for (self: HashMap[nullable Object, nullable Object]): HashMapIterator[nullable Object, nullable Object] */
1817 val* standard___standard__HashMap___standard__abstract_collection__MapRead__iterator(val* self) {
1818 val* var /* : HashMapIterator[nullable Object, nullable Object] */;
1819 val* var1 /* : HashMapIterator[nullable Object, nullable Object] */;
1820 var1 = NEW_standard__HashMapIterator(self->type->resolution_table->types[COLOR_standard__HashMapIterator__standard__HashMap___35dK__standard__HashMap___35dV]);
1821 {
1822 ((void (*)(val* self, val* p0))(var1->class->vft[COLOR_standard__hash_collection__HashMapIterator__map_61d]))(var1, self) /* map= on <var1:HashMapIterator[nullable Object, nullable Object]>*/;
1823 }
1824 {
1825 ((void (*)(val* self))(var1->class->vft[COLOR_standard__kernel__Object__init]))(var1) /* init on <var1:HashMapIterator[nullable Object, nullable Object]>*/;
1826 }
1827 var = var1;
1828 goto RET_LABEL;
1829 RET_LABEL:;
1830 return var;
1831 }
1832 /* method hash_collection#HashMap#length for (self: HashMap[nullable Object, nullable Object]): Int */
1833 long standard___standard__HashMap___standard__abstract_collection__MapRead__length(val* self) {
1834 long var /* : Int */;
1835 long var1 /* : Int */;
1836 var1 = self->attrs[COLOR_standard__hash_collection__HashCollection___the_length].l; /* _the_length on <self:HashMap[nullable Object, nullable Object]> */
1837 var = var1;
1838 goto RET_LABEL;
1839 RET_LABEL:;
1840 return var;
1841 }
1842 /* method hash_collection#HashMap#is_empty for (self: HashMap[nullable Object, nullable Object]): Bool */
1843 short int standard___standard__HashMap___standard__abstract_collection__MapRead__is_empty(val* self) {
1844 short int var /* : Bool */;
1845 long var1 /* : Int */;
1846 long var2 /* : Int */;
1847 short int var3 /* : Bool */;
1848 short int var5 /* : Bool */;
1849 var1 = self->attrs[COLOR_standard__hash_collection__HashCollection___the_length].l; /* _the_length on <self:HashMap[nullable Object, nullable Object]> */
1850 var2 = 0;
1851 {
1852 { /* Inline kernel#Int#== (var1,var2) on <var1:Int> */
1853 var5 = var1 == var2;
1854 var3 = var5;
1855 goto RET_LABEL4;
1856 RET_LABEL4:(void)0;
1857 }
1858 }
1859 var = var3;
1860 goto RET_LABEL;
1861 RET_LABEL:;
1862 return var;
1863 }
1864 /* method hash_collection#HashMap#[]= for (self: HashMap[nullable Object, nullable Object], nullable Object, nullable Object) */
1865 void standard___standard__HashMap___standard__abstract_collection__Map___91d_93d_61d(val* self, val* p0, val* p1) {
1866 short int var /* : Bool */;
1867 int cltype;
1868 int idtype;
1869 const struct type* type_struct;
1870 short int is_nullable;
1871 const char* var_class_name;
1872 short int var1 /* : Bool */;
1873 int cltype2;
1874 int idtype3;
1875 const struct type* type_struct4;
1876 short int is_nullable5;
1877 const char* var_class_name6;
1878 val* var_key /* var key: nullable Object */;
1879 val* var_v /* var v: nullable Object */;
1880 long var7 /* : Int */;
1881 long var_i /* var i: Int */;
1882 val* var8 /* : nullable HashNode[nullable Object] */;
1883 val* var_c /* var c: nullable HashMapNode[nullable Object, nullable Object] */;
1884 val* var9 /* : null */;
1885 short int var10 /* : Bool */;
1886 short int var11 /* : Bool */;
1887 val* var_other /* var other: nullable Object */;
1888 short int var13 /* : Bool */;
1889 short int var14 /* : Bool */;
1890 val* var15 /* : HashMapNode[nullable Object, nullable Object] */;
1891 /* Covariant cast for argument 0 (key) <p0:nullable Object> isa K */
1892 /* <p0:nullable Object> isa K */
1893 type_struct = self->type->resolution_table->types[COLOR_standard__HashMap___35dK];
1894 cltype = type_struct->color;
1895 idtype = type_struct->id;
1896 is_nullable = type_struct->is_nullable;
1897 if(p0 == NULL) {
1898 var = is_nullable;
1899 } else {
1900 if(cltype >= p0->type->table_size) {
1901 var = 0;
1902 } else {
1903 var = p0->type->type_table[cltype] == idtype;
1904 }
1905 }
1906 if (unlikely(!var)) {
1907 var_class_name = p0 == NULL ? "null" : p0->type->name;
1908 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "K", var_class_name);
1909 PRINT_ERROR(" (%s:%d)\n", FILE_standard__hash_collection, 254);
1910 show_backtrace(1);
1911 }
1912 /* Covariant cast for argument 1 (v) <p1:nullable Object> isa V */
1913 /* <p1:nullable Object> isa V */
1914 type_struct4 = self->type->resolution_table->types[COLOR_standard__HashMap___35dV];
1915 cltype2 = type_struct4->color;
1916 idtype3 = type_struct4->id;
1917 is_nullable5 = type_struct4->is_nullable;
1918 if(p1 == NULL) {
1919 var1 = is_nullable5;
1920 } else {
1921 if(cltype2 >= p1->type->table_size) {
1922 var1 = 0;
1923 } else {
1924 var1 = p1->type->type_table[cltype2] == idtype3;
1925 }
1926 }
1927 if (unlikely(!var1)) {
1928 var_class_name6 = p1 == NULL ? "null" : p1->type->name;
1929 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "V", var_class_name6);
1930 PRINT_ERROR(" (%s:%d)\n", FILE_standard__hash_collection, 254);
1931 show_backtrace(1);
1932 }
1933 var_key = p0;
1934 var_v = p1;
1935 {
1936 var7 = standard__hash_collection___standard__hash_collection__HashCollection___index_at(self, var_key);
1937 }
1938 var_i = var7;
1939 {
1940 var8 = standard__hash_collection___standard__hash_collection__HashCollection___node_at_idx(self, var_i, var_key);
1941 }
1942 var_c = var8;
1943 var9 = NULL;
1944 if (var_c == NULL) {
1945 var10 = 0; /* is null */
1946 } else {
1947 var10 = 1; /* arg is null and recv is not */
1948 }
1949 if (0) {
1950 { /* Inline kernel#Object#!= (var_c,var9) on <var_c:nullable HashMapNode[nullable Object, nullable Object]> */
1951 var_other = var9;
1952 {
1953 var13 = ((short int (*)(val* self, val* p0))(var_c->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_c, var_other) /* == on <var_c:nullable HashMapNode[nullable Object, nullable Object](HashMapNode[nullable Object, nullable Object])>*/;
1954 }
1955 var14 = !var13;
1956 var11 = var14;
1957 goto RET_LABEL12;
1958 RET_LABEL12:(void)0;
1959 }
1960 var10 = var11;
1961 }
1962 if (var10){
1963 var_c->attrs[COLOR_standard__hash_collection__HashNode___key].val = var_key; /* _key on <var_c:nullable HashMapNode[nullable Object, nullable Object](HashMapNode[nullable Object, nullable Object])> */
1964 var_c->attrs[COLOR_standard__hash_collection__HashMapNode___value].val = var_v; /* _value on <var_c:nullable HashMapNode[nullable Object, nullable Object](HashMapNode[nullable Object, nullable Object])> */
1965 } else {
1966 var15 = NEW_standard__hash_collection__HashMapNode(self->type->resolution_table->types[COLOR_standard__hash_collection__HashMapNode__standard__HashMap___35dK__standard__HashMap___35dV]);
1967 {
1968 ((void (*)(val* self, val* p0))(var15->class->vft[COLOR_standard__hash_collection__HashNode__key_61d]))(var15, var_key) /* key= on <var15:HashMapNode[nullable Object, nullable Object]>*/;
1969 }
1970 {
1971 ((void (*)(val* self, val* p0))(var15->class->vft[COLOR_standard__hash_collection__HashMapNode__value_61d]))(var15, var_v) /* value= on <var15:HashMapNode[nullable Object, nullable Object]>*/;
1972 }
1973 {
1974 ((void (*)(val* self))(var15->class->vft[COLOR_standard__kernel__Object__init]))(var15) /* init on <var15:HashMapNode[nullable Object, nullable Object]>*/;
1975 }
1976 {
1977 standard__hash_collection___standard__hash_collection__HashCollection___store(self, var_i, var15); /* Direct call hash_collection#HashCollection#store on <self:HashMap[nullable Object, nullable Object]>*/
1978 }
1979 }
1980 RET_LABEL:;
1981 }
1982 /* method hash_collection#HashMap#clear for (self: HashMap[nullable Object, nullable Object]) */
1983 void standard___standard__HashMap___standard__abstract_collection__Map__clear(val* self) {
1984 {
1985 standard__hash_collection___standard__hash_collection__HashCollection___raz(self); /* Direct call hash_collection#HashCollection#raz on <self:HashMap[nullable Object, nullable Object]>*/
1986 }
1987 RET_LABEL:;
1988 }
1989 /* method hash_collection#HashMap#init for (self: HashMap[nullable Object, nullable Object]) */
1990 void standard___standard__HashMap___standard__kernel__Object__init(val* self) {
1991 long var /* : Int */;
1992 long var1 /* : Int */;
1993 long var2 /* : Int */;
1994 {
1995 ((void (*)(val* self))(self->class->vft[COLOR_standard___standard__HashMap___standard__kernel__Object__init]))(self) /* init on <self:HashMap[nullable Object, nullable Object]>*/;
1996 }
1997 var = 0;
1998 self->attrs[COLOR_standard__hash_collection__HashCollection___capacity].l = var; /* _capacity on <self:HashMap[nullable Object, nullable Object]> */
1999 var1 = 0;
2000 self->attrs[COLOR_standard__hash_collection__HashCollection___the_length].l = var1; /* _the_length on <self:HashMap[nullable Object, nullable Object]> */
2001 var2 = 0;
2002 {
2003 standard__hash_collection___standard__hash_collection__HashCollection___enlarge(self, var2); /* Direct call hash_collection#HashCollection#enlarge on <self:HashMap[nullable Object, nullable Object]>*/
2004 }
2005 RET_LABEL:;
2006 }
2007 /* method hash_collection#HashMap#keys for (self: HashMap[nullable Object, nullable Object]): RemovableCollection[nullable Object] */
2008 val* standard___standard__HashMap___standard__abstract_collection__MapRead__keys(val* self) {
2009 val* var /* : RemovableCollection[nullable Object] */;
2010 val* var1 /* : RemovableCollection[nullable Object] */;
2011 var1 = self->attrs[COLOR_standard__hash_collection__HashMap___keys].val; /* _keys on <self:HashMap[nullable Object, nullable Object]> */
2012 if (unlikely(var1 == NULL)) {
2013 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _keys");
2014 PRINT_ERROR(" (%s:%d)\n", FILE_standard__hash_collection, 275);
2015 show_backtrace(1);
2016 }
2017 var = var1;
2018 RET_LABEL:;
2019 return var;
2020 }
2021 /* method hash_collection#HashMap#values for (self: HashMap[nullable Object, nullable Object]): RemovableCollection[nullable Object] */
2022 val* standard___standard__HashMap___standard__abstract_collection__MapRead__values(val* self) {
2023 val* var /* : RemovableCollection[nullable Object] */;
2024 val* var1 /* : RemovableCollection[nullable Object] */;
2025 var1 = self->attrs[COLOR_standard__hash_collection__HashMap___values].val; /* _values on <self:HashMap[nullable Object, nullable Object]> */
2026 if (unlikely(var1 == NULL)) {
2027 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _values");
2028 PRINT_ERROR(" (%s:%d)\n", FILE_standard__hash_collection, 276);
2029 show_backtrace(1);
2030 }
2031 var = var1;
2032 RET_LABEL:;
2033 return var;
2034 }
2035 /* method hash_collection#HashMapKeys#map for (self: HashMapKeys[nullable Object, nullable Object]): HashMap[nullable Object, nullable Object] */
2036 val* standard__hash_collection___standard__hash_collection__HashMapKeys___map(val* self) {
2037 val* var /* : HashMap[nullable Object, nullable Object] */;
2038 val* var1 /* : HashMap[nullable Object, nullable Object] */;
2039 var1 = self->attrs[COLOR_standard__hash_collection__HashMapKeys___map].val; /* _map on <self:HashMapKeys[nullable Object, nullable Object]> */
2040 if (unlikely(var1 == NULL)) {
2041 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _map");
2042 PRINT_ERROR(" (%s:%d)\n", FILE_standard__hash_collection, 282);
2043 show_backtrace(1);
2044 }
2045 var = var1;
2046 RET_LABEL:;
2047 return var;
2048 }
2049 /* method hash_collection#HashMapKeys#map= for (self: HashMapKeys[nullable Object, nullable Object], HashMap[nullable Object, nullable Object]) */
2050 void standard__hash_collection___standard__hash_collection__HashMapKeys___map_61d(val* self, val* p0) {
2051 short int var /* : Bool */;
2052 int cltype;
2053 int idtype;
2054 const struct type* type_struct;
2055 const char* var_class_name;
2056 /* Covariant cast for argument 0 (map) <p0:HashMap[nullable Object, nullable Object]> isa HashMap[K, V] */
2057 /* <p0:HashMap[nullable Object, nullable Object]> isa HashMap[K, V] */
2058 type_struct = self->type->resolution_table->types[COLOR_standard__HashMap__standard__hash_collection__HashMapKeys___35dK__standard__hash_collection__HashMapKeys___35dV];
2059 cltype = type_struct->color;
2060 idtype = type_struct->id;
2061 if(cltype >= p0->type->table_size) {
2062 var = 0;
2063 } else {
2064 var = p0->type->type_table[cltype] == idtype;
2065 }
2066 if (unlikely(!var)) {
2067 var_class_name = p0 == NULL ? "null" : p0->type->name;
2068 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "HashMap[K, V]", var_class_name);
2069 PRINT_ERROR(" (%s:%d)\n", FILE_standard__hash_collection, 282);
2070 show_backtrace(1);
2071 }
2072 self->attrs[COLOR_standard__hash_collection__HashMapKeys___map].val = p0; /* _map on <self:HashMapKeys[nullable Object, nullable Object]> */
2073 RET_LABEL:;
2074 }
2075 /* method hash_collection#HashMapKeys#first for (self: HashMapKeys[nullable Object, nullable Object]): nullable Object */
2076 val* standard__hash_collection___standard__hash_collection__HashMapKeys___standard__abstract_collection__Collection__first(val* self) {
2077 val* var /* : nullable Object */;
2078 val* var1 /* : HashMap[nullable Object, nullable Object] */;
2079 val* var3 /* : HashMap[nullable Object, nullable Object] */;
2080 val* var4 /* : nullable HashNode[nullable Object] */;
2081 val* var5 /* : nullable Object */;
2082 {
2083 { /* Inline hash_collection#HashMapKeys#map (self) on <self:HashMapKeys[nullable Object, nullable Object]> */
2084 var3 = self->attrs[COLOR_standard__hash_collection__HashMapKeys___map].val; /* _map on <self:HashMapKeys[nullable Object, nullable Object]> */
2085 if (unlikely(var3 == NULL)) {
2086 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _map");
2087 PRINT_ERROR(" (%s:%d)\n", FILE_standard__hash_collection, 282);
2088 show_backtrace(1);
2089 }
2090 var1 = var3;
2091 RET_LABEL2:(void)0;
2092 }
2093 }
2094 var4 = var1->attrs[COLOR_standard__hash_collection__HashCollection___first_item].val; /* _first_item on <var1:HashMap[nullable Object, nullable Object]> */
2095 if (unlikely(var4 == NULL)) {
2096 PRINT_ERROR("Runtime error: %s", "Receiver is null");
2097 PRINT_ERROR(" (%s:%d)\n", FILE_standard__hash_collection, 286);
2098 show_backtrace(1);
2099 }
2100 var5 = var4->attrs[COLOR_standard__hash_collection__HashNode___key].val; /* _key on <var4:nullable HashNode[nullable Object](nullable HashMapNode[nullable Object, nullable Object])> */
2101 var = var5;
2102 goto RET_LABEL;
2103 RET_LABEL:;
2104 return var;
2105 }
2106 /* method hash_collection#HashMapKeys#has for (self: HashMapKeys[nullable Object, nullable Object], nullable Object): Bool */
2107 short int standard__hash_collection___standard__hash_collection__HashMapKeys___standard__abstract_collection__Collection__has(val* self, val* p0) {
2108 short int var /* : Bool */;
2109 short int var1 /* : Bool */;
2110 int cltype;
2111 int idtype;
2112 const struct type* type_struct;
2113 short int is_nullable;
2114 const char* var_class_name;
2115 val* var_k /* var k: nullable Object */;
2116 val* var2 /* : HashMap[nullable Object, nullable Object] */;
2117 val* var4 /* : HashMap[nullable Object, nullable Object] */;
2118 val* var5 /* : nullable HashNode[nullable Object] */;
2119 val* var6 /* : null */;
2120 short int var7 /* : Bool */;
2121 short int var8 /* : Bool */;
2122 val* var_other /* var other: nullable Object */;
2123 short int var10 /* : Bool */;
2124 short int var11 /* : Bool */;
2125 /* Covariant cast for argument 0 (k) <p0:nullable Object> isa K */
2126 /* <p0:nullable Object> isa K */
2127 type_struct = self->type->resolution_table->types[COLOR_standard__hash_collection__HashMapKeys___35dK];
2128 cltype = type_struct->color;
2129 idtype = type_struct->id;
2130 is_nullable = type_struct->is_nullable;
2131 if(p0 == NULL) {
2132 var1 = is_nullable;
2133 } else {
2134 if(cltype >= p0->type->table_size) {
2135 var1 = 0;
2136 } else {
2137 var1 = p0->type->type_table[cltype] == idtype;
2138 }
2139 }
2140 if (unlikely(!var1)) {
2141 var_class_name = p0 == NULL ? "null" : p0->type->name;
2142 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "K", var_class_name);
2143 PRINT_ERROR(" (%s:%d)\n", FILE_standard__hash_collection, 287);
2144 show_backtrace(1);
2145 }
2146 var_k = p0;
2147 {
2148 { /* Inline hash_collection#HashMapKeys#map (self) on <self:HashMapKeys[nullable Object, nullable Object]> */
2149 var4 = self->attrs[COLOR_standard__hash_collection__HashMapKeys___map].val; /* _map on <self:HashMapKeys[nullable Object, nullable Object]> */
2150 if (unlikely(var4 == NULL)) {
2151 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _map");
2152 PRINT_ERROR(" (%s:%d)\n", FILE_standard__hash_collection, 282);
2153 show_backtrace(1);
2154 }
2155 var2 = var4;
2156 RET_LABEL3:(void)0;
2157 }
2158 }
2159 {
2160 var5 = standard__hash_collection___standard__hash_collection__HashCollection___node_at(var2, var_k);
2161 }
2162 var6 = NULL;
2163 if (var5 == NULL) {
2164 var7 = 0; /* is null */
2165 } else {
2166 var7 = 1; /* arg is null and recv is not */
2167 }
2168 if (0) {
2169 { /* Inline kernel#Object#!= (var5,var6) on <var5:nullable HashNode[nullable Object](nullable HashMapNode[nullable Object, nullable Object])> */
2170 var_other = var6;
2171 {
2172 var10 = ((short int (*)(val* self, val* p0))(var5->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var5, var_other) /* == on <var5:nullable HashMapNode[nullable Object, nullable Object](HashMapNode[nullable Object, nullable Object])>*/;
2173 }
2174 var11 = !var10;
2175 var8 = var11;
2176 goto RET_LABEL9;
2177 RET_LABEL9:(void)0;
2178 }
2179 var7 = var8;
2180 }
2181 var = var7;
2182 goto RET_LABEL;
2183 RET_LABEL:;
2184 return var;
2185 }
2186 /* method hash_collection#HashMapKeys#is_empty for (self: HashMapKeys[nullable Object, nullable Object]): Bool */
2187 short int standard__hash_collection___standard__hash_collection__HashMapKeys___standard__abstract_collection__Collection__is_empty(val* self) {
2188 short int var /* : Bool */;
2189 val* var1 /* : HashMap[nullable Object, nullable Object] */;
2190 val* var3 /* : HashMap[nullable Object, nullable Object] */;
2191 short int var4 /* : Bool */;
2192 {
2193 { /* Inline hash_collection#HashMapKeys#map (self) on <self:HashMapKeys[nullable Object, nullable Object]> */
2194 var3 = self->attrs[COLOR_standard__hash_collection__HashMapKeys___map].val; /* _map on <self:HashMapKeys[nullable Object, nullable Object]> */
2195 if (unlikely(var3 == NULL)) {
2196 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _map");
2197 PRINT_ERROR(" (%s:%d)\n", FILE_standard__hash_collection, 282);
2198 show_backtrace(1);
2199 }
2200 var1 = var3;
2201 RET_LABEL2:(void)0;
2202 }
2203 }
2204 {
2205 var4 = standard___standard__HashMap___standard__abstract_collection__MapRead__is_empty(var1);
2206 }
2207 var = var4;
2208 goto RET_LABEL;
2209 RET_LABEL:;
2210 return var;
2211 }
2212 /* method hash_collection#HashMapKeys#length for (self: HashMapKeys[nullable Object, nullable Object]): Int */
2213 long standard__hash_collection___standard__hash_collection__HashMapKeys___standard__abstract_collection__Collection__length(val* self) {
2214 long var /* : Int */;
2215 val* var1 /* : HashMap[nullable Object, nullable Object] */;
2216 val* var3 /* : HashMap[nullable Object, nullable Object] */;
2217 long var4 /* : Int */;
2218 {
2219 { /* Inline hash_collection#HashMapKeys#map (self) on <self:HashMapKeys[nullable Object, nullable Object]> */
2220 var3 = self->attrs[COLOR_standard__hash_collection__HashMapKeys___map].val; /* _map on <self:HashMapKeys[nullable Object, nullable Object]> */
2221 if (unlikely(var3 == NULL)) {
2222 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _map");
2223 PRINT_ERROR(" (%s:%d)\n", FILE_standard__hash_collection, 282);
2224 show_backtrace(1);
2225 }
2226 var1 = var3;
2227 RET_LABEL2:(void)0;
2228 }
2229 }
2230 {
2231 var4 = standard___standard__HashMap___standard__abstract_collection__MapRead__length(var1);
2232 }
2233 var = var4;
2234 goto RET_LABEL;
2235 RET_LABEL:;
2236 return var;
2237 }
2238 /* method hash_collection#HashMapKeys#iterator for (self: HashMapKeys[nullable Object, nullable Object]): Iterator[nullable Object] */
2239 val* standard__hash_collection___standard__hash_collection__HashMapKeys___standard__abstract_collection__Collection__iterator(val* self) {
2240 val* var /* : Iterator[nullable Object] */;
2241 val* var1 /* : MapKeysIterator[nullable Object, nullable Object] */;
2242 val* var2 /* : HashMap[nullable Object, nullable Object] */;
2243 val* var4 /* : HashMap[nullable Object, nullable Object] */;
2244 val* var5 /* : HashMapIterator[nullable Object, nullable Object] */;
2245 var1 = NEW_standard__MapKeysIterator(self->type->resolution_table->types[COLOR_standard__MapKeysIterator__standard__hash_collection__HashMapKeys___35dK__standard__hash_collection__HashMapKeys___35dV]);
2246 {
2247 { /* Inline hash_collection#HashMapKeys#map (self) on <self:HashMapKeys[nullable Object, nullable Object]> */
2248 var4 = self->attrs[COLOR_standard__hash_collection__HashMapKeys___map].val; /* _map on <self:HashMapKeys[nullable Object, nullable Object]> */
2249 if (unlikely(var4 == NULL)) {
2250 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _map");
2251 PRINT_ERROR(" (%s:%d)\n", FILE_standard__hash_collection, 282);
2252 show_backtrace(1);
2253 }
2254 var2 = var4;
2255 RET_LABEL3:(void)0;
2256 }
2257 }
2258 {
2259 var5 = standard___standard__HashMap___standard__abstract_collection__MapRead__iterator(var2);
2260 }
2261 {
2262 ((void (*)(val* self, val* p0))(var1->class->vft[COLOR_standard__abstract_collection__MapKeysIterator__original_iterator_61d]))(var1, var5) /* original_iterator= on <var1:MapKeysIterator[nullable Object, nullable Object]>*/;
2263 }
2264 {
2265 ((void (*)(val* self))(var1->class->vft[COLOR_standard__kernel__Object__init]))(var1) /* init on <var1:MapKeysIterator[nullable Object, nullable Object]>*/;
2266 }
2267 var = var1;
2268 goto RET_LABEL;
2269 RET_LABEL:;
2270 return var;
2271 }
2272 /* method hash_collection#HashMapKeys#clear for (self: HashMapKeys[nullable Object, nullable Object]) */
2273 void standard__hash_collection___standard__hash_collection__HashMapKeys___standard__abstract_collection__RemovableCollection__clear(val* self) {
2274 val* var /* : HashMap[nullable Object, nullable Object] */;
2275 val* var2 /* : HashMap[nullable Object, nullable Object] */;
2276 {
2277 { /* Inline hash_collection#HashMapKeys#map (self) on <self:HashMapKeys[nullable Object, nullable Object]> */
2278 var2 = self->attrs[COLOR_standard__hash_collection__HashMapKeys___map].val; /* _map on <self:HashMapKeys[nullable Object, nullable Object]> */
2279 if (unlikely(var2 == NULL)) {
2280 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _map");
2281 PRINT_ERROR(" (%s:%d)\n", FILE_standard__hash_collection, 282);
2282 show_backtrace(1);
2283 }
2284 var = var2;
2285 RET_LABEL1:(void)0;
2286 }
2287 }
2288 {
2289 standard___standard__HashMap___standard__abstract_collection__Map__clear(var); /* Direct call hash_collection#HashMap#clear on <var:HashMap[nullable Object, nullable Object]>*/
2290 }
2291 RET_LABEL:;
2292 }
2293 /* method hash_collection#HashMapKeys#remove for (self: HashMapKeys[nullable Object, nullable Object], nullable Object) */
2294 void standard__hash_collection___standard__hash_collection__HashMapKeys___standard__abstract_collection__RemovableCollection__remove(val* self, val* p0) {
2295 short int var /* : Bool */;
2296 int cltype;
2297 int idtype;
2298 const struct type* type_struct;
2299 short int is_nullable;
2300 const char* var_class_name;
2301 val* var_key /* var key: nullable Object */;
2302 val* var1 /* : HashMap[nullable Object, nullable Object] */;
2303 val* var3 /* : HashMap[nullable Object, nullable Object] */;
2304 /* Covariant cast for argument 0 (key) <p0:nullable Object> isa K */
2305 /* <p0:nullable Object> isa K */
2306 type_struct = self->type->resolution_table->types[COLOR_standard__hash_collection__HashMapKeys___35dK];
2307 cltype = type_struct->color;
2308 idtype = type_struct->id;
2309 is_nullable = type_struct->is_nullable;
2310 if(p0 == NULL) {
2311 var = is_nullable;
2312 } else {
2313 if(cltype >= p0->type->table_size) {
2314 var = 0;
2315 } else {
2316 var = p0->type->type_table[cltype] == idtype;
2317 }
2318 }
2319 if (unlikely(!var)) {
2320 var_class_name = p0 == NULL ? "null" : p0->type->name;
2321 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "K", var_class_name);
2322 PRINT_ERROR(" (%s:%d)\n", FILE_standard__hash_collection, 296);
2323 show_backtrace(1);
2324 }
2325 var_key = p0;
2326 {
2327 { /* Inline hash_collection#HashMapKeys#map (self) on <self:HashMapKeys[nullable Object, nullable Object]> */
2328 var3 = self->attrs[COLOR_standard__hash_collection__HashMapKeys___map].val; /* _map on <self:HashMapKeys[nullable Object, nullable Object]> */
2329 if (unlikely(var3 == NULL)) {
2330 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _map");
2331 PRINT_ERROR(" (%s:%d)\n", FILE_standard__hash_collection, 282);
2332 show_backtrace(1);
2333 }
2334 var1 = var3;
2335 RET_LABEL2:(void)0;
2336 }
2337 }
2338 {
2339 standard__hash_collection___standard__hash_collection__HashCollection___remove_node(var1, var_key); /* Direct call hash_collection#HashCollection#remove_node on <var1:HashMap[nullable Object, nullable Object]>*/
2340 }
2341 RET_LABEL:;
2342 }
2343 /* method hash_collection#HashMapKeys#init for (self: HashMapKeys[nullable Object, nullable Object]) */
2344 void standard__hash_collection___standard__hash_collection__HashMapKeys___standard__kernel__Object__init(val* self) {
2345 {
2346 ((void (*)(val* self))(self->class->vft[COLOR_standard__hash_collection___standard__hash_collection__HashMapKeys___standard__kernel__Object__init]))(self) /* init on <self:HashMapKeys[nullable Object, nullable Object]>*/;
2347 }
2348 RET_LABEL:;
2349 }
2350 /* method hash_collection#HashMapValues#map for (self: HashMapValues[nullable Object, nullable Object]): HashMap[nullable Object, nullable Object] */
2351 val* standard__hash_collection___standard__hash_collection__HashMapValues___map(val* self) {
2352 val* var /* : HashMap[nullable Object, nullable Object] */;
2353 val* var1 /* : HashMap[nullable Object, nullable Object] */;
2354 var1 = self->attrs[COLOR_standard__hash_collection__HashMapValues___map].val; /* _map on <self:HashMapValues[nullable Object, nullable Object]> */
2355 if (unlikely(var1 == NULL)) {
2356 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _map");
2357 PRINT_ERROR(" (%s:%d)\n", FILE_standard__hash_collection, 303);
2358 show_backtrace(1);
2359 }
2360 var = var1;
2361 RET_LABEL:;
2362 return var;
2363 }
2364 /* method hash_collection#HashMapValues#map= for (self: HashMapValues[nullable Object, nullable Object], HashMap[nullable Object, nullable Object]) */
2365 void standard__hash_collection___standard__hash_collection__HashMapValues___map_61d(val* self, val* p0) {
2366 short int var /* : Bool */;
2367 int cltype;
2368 int idtype;
2369 const struct type* type_struct;
2370 const char* var_class_name;
2371 /* Covariant cast for argument 0 (map) <p0:HashMap[nullable Object, nullable Object]> isa HashMap[K, V] */
2372 /* <p0:HashMap[nullable Object, nullable Object]> isa HashMap[K, V] */
2373 type_struct = self->type->resolution_table->types[COLOR_standard__HashMap__standard__hash_collection__HashMapValues___35dK__standard__hash_collection__HashMapValues___35dV];
2374 cltype = type_struct->color;
2375 idtype = type_struct->id;
2376 if(cltype >= p0->type->table_size) {
2377 var = 0;
2378 } else {
2379 var = p0->type->type_table[cltype] == idtype;
2380 }
2381 if (unlikely(!var)) {
2382 var_class_name = p0 == NULL ? "null" : p0->type->name;
2383 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "HashMap[K, V]", var_class_name);
2384 PRINT_ERROR(" (%s:%d)\n", FILE_standard__hash_collection, 303);
2385 show_backtrace(1);
2386 }
2387 self->attrs[COLOR_standard__hash_collection__HashMapValues___map].val = p0; /* _map on <self:HashMapValues[nullable Object, nullable Object]> */
2388 RET_LABEL:;
2389 }
2390 /* method hash_collection#HashMapValues#first for (self: HashMapValues[nullable Object, nullable Object]): nullable Object */
2391 val* standard__hash_collection___standard__hash_collection__HashMapValues___standard__abstract_collection__Collection__first(val* self) {
2392 val* var /* : nullable Object */;
2393 val* var1 /* : HashMap[nullable Object, nullable Object] */;
2394 val* var3 /* : HashMap[nullable Object, nullable Object] */;
2395 val* var4 /* : nullable HashNode[nullable Object] */;
2396 val* var5 /* : nullable Object */;
2397 {
2398 { /* Inline hash_collection#HashMapValues#map (self) on <self:HashMapValues[nullable Object, nullable Object]> */
2399 var3 = self->attrs[COLOR_standard__hash_collection__HashMapValues___map].val; /* _map on <self:HashMapValues[nullable Object, nullable Object]> */
2400 if (unlikely(var3 == NULL)) {
2401 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _map");
2402 PRINT_ERROR(" (%s:%d)\n", FILE_standard__hash_collection, 303);
2403 show_backtrace(1);
2404 }
2405 var1 = var3;
2406 RET_LABEL2:(void)0;
2407 }
2408 }
2409 var4 = var1->attrs[COLOR_standard__hash_collection__HashCollection___first_item].val; /* _first_item on <var1:HashMap[nullable Object, nullable Object]> */
2410 if (unlikely(var4 == NULL)) {
2411 PRINT_ERROR("Runtime error: %s", "Receiver is null");
2412 PRINT_ERROR(" (%s:%d)\n", FILE_standard__hash_collection, 316);
2413 show_backtrace(1);
2414 }
2415 var5 = var4->attrs[COLOR_standard__hash_collection__HashMapNode___value].val; /* _value on <var4:nullable HashNode[nullable Object](nullable HashMapNode[nullable Object, nullable Object])> */
2416 var = var5;
2417 goto RET_LABEL;
2418 RET_LABEL:;
2419 return var;
2420 }
2421 /* method hash_collection#HashMapValues#has for (self: HashMapValues[nullable Object, nullable Object], nullable Object): Bool */
2422 short int standard__hash_collection___standard__hash_collection__HashMapValues___standard__abstract_collection__Collection__has(val* self, val* p0) {
2423 short int var /* : Bool */;
2424 short int var1 /* : Bool */;
2425 int cltype;
2426 int idtype;
2427 const struct type* type_struct;
2428 short int is_nullable;
2429 const char* var_class_name;
2430 val* var_item /* var item: nullable Object */;
2431 val* var2 /* : HashMap[nullable Object, nullable Object] */;
2432 val* var4 /* : HashMap[nullable Object, nullable Object] */;
2433 val* var5 /* : nullable HashNode[nullable Object] */;
2434 val* var_c /* var c: nullable HashMapNode[nullable Object, nullable Object] */;
2435 val* var6 /* : null */;
2436 short int var7 /* : Bool */;
2437 short int var8 /* : Bool */;
2438 val* var_other /* var other: nullable Object */;
2439 short int var10 /* : Bool */;
2440 short int var11 /* : Bool */;
2441 val* var12 /* : nullable Object */;
2442 short int var13 /* : Bool */;
2443 short int var14 /* : Bool */;
2444 short int var15 /* : Bool */;
2445 val* var16 /* : nullable HashNode[nullable Object] */;
2446 short int var17 /* : Bool */;
2447 /* Covariant cast for argument 0 (item) <p0:nullable Object> isa V */
2448 /* <p0:nullable Object> isa V */
2449 type_struct = self->type->resolution_table->types[COLOR_standard__hash_collection__HashMapValues___35dV];
2450 cltype = type_struct->color;
2451 idtype = type_struct->id;
2452 is_nullable = type_struct->is_nullable;
2453 if(p0 == NULL) {
2454 var1 = is_nullable;
2455 } else {
2456 if(cltype >= p0->type->table_size) {
2457 var1 = 0;
2458 } else {
2459 var1 = p0->type->type_table[cltype] == idtype;
2460 }
2461 }
2462 if (unlikely(!var1)) {
2463 var_class_name = p0 == NULL ? "null" : p0->type->name;
2464 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "V", var_class_name);
2465 PRINT_ERROR(" (%s:%d)\n", FILE_standard__hash_collection, 318);
2466 show_backtrace(1);
2467 }
2468 var_item = p0;
2469 {
2470 { /* Inline hash_collection#HashMapValues#map (self) on <self:HashMapValues[nullable Object, nullable Object]> */
2471 var4 = self->attrs[COLOR_standard__hash_collection__HashMapValues___map].val; /* _map on <self:HashMapValues[nullable Object, nullable Object]> */
2472 if (unlikely(var4 == NULL)) {
2473 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _map");
2474 PRINT_ERROR(" (%s:%d)\n", FILE_standard__hash_collection, 303);
2475 show_backtrace(1);
2476 }
2477 var2 = var4;
2478 RET_LABEL3:(void)0;
2479 }
2480 }
2481 var5 = var2->attrs[COLOR_standard__hash_collection__HashCollection___first_item].val; /* _first_item on <var2:HashMap[nullable Object, nullable Object]> */
2482 var_c = var5;
2483 for(;;) {
2484 var6 = NULL;
2485 if (var_c == NULL) {
2486 var7 = 0; /* is null */
2487 } else {
2488 var7 = 1; /* arg is null and recv is not */
2489 }
2490 if (0) {
2491 { /* Inline kernel#Object#!= (var_c,var6) on <var_c:nullable HashMapNode[nullable Object, nullable Object]> */
2492 var_other = var6;
2493 {
2494 var10 = ((short int (*)(val* self, val* p0))(var_c->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_c, var_other) /* == on <var_c:nullable HashMapNode[nullable Object, nullable Object](HashMapNode[nullable Object, nullable Object])>*/;
2495 }
2496 var11 = !var10;
2497 var8 = var11;
2498 goto RET_LABEL9;
2499 RET_LABEL9:(void)0;
2500 }
2501 var7 = var8;
2502 }
2503 if (var7){
2504 var12 = var_c->attrs[COLOR_standard__hash_collection__HashMapNode___value].val; /* _value on <var_c:nullable HashMapNode[nullable Object, nullable Object](HashMapNode[nullable Object, nullable Object])> */
2505 if (var12 == NULL) {
2506 var13 = (var_item == NULL);
2507 } else {
2508 var14 = ((short int (*)(val* self, val* p0))(var12->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var12, var_item) /* == on <var12:nullable Object>*/;
2509 var13 = var14;
2510 }
2511 if (var13){
2512 var15 = 1;
2513 var = var15;
2514 goto RET_LABEL;
2515 } else {
2516 }
2517 var16 = var_c->attrs[COLOR_standard__hash_collection__HashNode___next_item].val; /* _next_item on <var_c:nullable HashMapNode[nullable Object, nullable Object](HashMapNode[nullable Object, nullable Object])> */
2518 var_c = var16;
2519 } else {
2520 goto BREAK_label;
2521 }
2522 }
2523 BREAK_label: (void)0;
2524 var17 = 0;
2525 var = var17;
2526 goto RET_LABEL;
2527 RET_LABEL:;
2528 return var;
2529 }
2530 /* method hash_collection#HashMapValues#is_empty for (self: HashMapValues[nullable Object, nullable Object]): Bool */
2531 short int standard__hash_collection___standard__hash_collection__HashMapValues___standard__abstract_collection__Collection__is_empty(val* self) {
2532 short int var /* : Bool */;
2533 val* var1 /* : HashMap[nullable Object, nullable Object] */;
2534 val* var3 /* : HashMap[nullable Object, nullable Object] */;
2535 short int var4 /* : Bool */;
2536 {
2537 { /* Inline hash_collection#HashMapValues#map (self) on <self:HashMapValues[nullable Object, nullable Object]> */
2538 var3 = self->attrs[COLOR_standard__hash_collection__HashMapValues___map].val; /* _map on <self:HashMapValues[nullable Object, nullable Object]> */
2539 if (unlikely(var3 == NULL)) {
2540 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _map");
2541 PRINT_ERROR(" (%s:%d)\n", FILE_standard__hash_collection, 303);
2542 show_backtrace(1);
2543 }
2544 var1 = var3;
2545 RET_LABEL2:(void)0;
2546 }
2547 }
2548 {
2549 var4 = standard___standard__HashMap___standard__abstract_collection__MapRead__is_empty(var1);
2550 }
2551 var = var4;
2552 goto RET_LABEL;
2553 RET_LABEL:;
2554 return var;
2555 }
2556 /* method hash_collection#HashMapValues#length for (self: HashMapValues[nullable Object, nullable Object]): Int */
2557 long standard__hash_collection___standard__hash_collection__HashMapValues___standard__abstract_collection__Collection__length(val* self) {
2558 long var /* : Int */;
2559 val* var1 /* : HashMap[nullable Object, nullable Object] */;
2560 val* var3 /* : HashMap[nullable Object, nullable Object] */;
2561 long var4 /* : Int */;
2562 {
2563 { /* Inline hash_collection#HashMapValues#map (self) on <self:HashMapValues[nullable Object, nullable Object]> */
2564 var3 = self->attrs[COLOR_standard__hash_collection__HashMapValues___map].val; /* _map on <self:HashMapValues[nullable Object, nullable Object]> */
2565 if (unlikely(var3 == NULL)) {
2566 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _map");
2567 PRINT_ERROR(" (%s:%d)\n", FILE_standard__hash_collection, 303);
2568 show_backtrace(1);
2569 }
2570 var1 = var3;
2571 RET_LABEL2:(void)0;
2572 }
2573 }
2574 {
2575 var4 = standard___standard__HashMap___standard__abstract_collection__MapRead__length(var1);
2576 }
2577 var = var4;
2578 goto RET_LABEL;
2579 RET_LABEL:;
2580 return var;
2581 }
2582 /* method hash_collection#HashMapValues#iterator for (self: HashMapValues[nullable Object, nullable Object]): Iterator[nullable Object] */
2583 val* standard__hash_collection___standard__hash_collection__HashMapValues___standard__abstract_collection__Collection__iterator(val* self) {
2584 val* var /* : Iterator[nullable Object] */;
2585 val* var1 /* : MapValuesIterator[nullable Object, nullable Object] */;
2586 val* var2 /* : HashMap[nullable Object, nullable Object] */;
2587 val* var4 /* : HashMap[nullable Object, nullable Object] */;
2588 val* var5 /* : HashMapIterator[nullable Object, nullable Object] */;
2589 var1 = NEW_standard__MapValuesIterator(self->type->resolution_table->types[COLOR_standard__MapValuesIterator__standard__hash_collection__HashMapValues___35dK__standard__hash_collection__HashMapValues___35dV]);
2590 {
2591 { /* Inline hash_collection#HashMapValues#map (self) on <self:HashMapValues[nullable Object, nullable Object]> */
2592 var4 = self->attrs[COLOR_standard__hash_collection__HashMapValues___map].val; /* _map on <self:HashMapValues[nullable Object, nullable Object]> */
2593 if (unlikely(var4 == NULL)) {
2594 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _map");
2595 PRINT_ERROR(" (%s:%d)\n", FILE_standard__hash_collection, 303);
2596 show_backtrace(1);
2597 }
2598 var2 = var4;
2599 RET_LABEL3:(void)0;
2600 }
2601 }
2602 {
2603 var5 = standard___standard__HashMap___standard__abstract_collection__MapRead__iterator(var2);
2604 }
2605 {
2606 ((void (*)(val* self, val* p0))(var1->class->vft[COLOR_standard__abstract_collection__MapValuesIterator__original_iterator_61d]))(var1, var5) /* original_iterator= on <var1:MapValuesIterator[nullable Object, nullable Object]>*/;
2607 }
2608 {
2609 ((void (*)(val* self))(var1->class->vft[COLOR_standard__kernel__Object__init]))(var1) /* init on <var1:MapValuesIterator[nullable Object, nullable Object]>*/;
2610 }
2611 var = var1;
2612 goto RET_LABEL;
2613 RET_LABEL:;
2614 return var;
2615 }
2616 /* method hash_collection#HashMapValues#clear for (self: HashMapValues[nullable Object, nullable Object]) */
2617 void standard__hash_collection___standard__hash_collection__HashMapValues___standard__abstract_collection__RemovableCollection__clear(val* self) {
2618 val* var /* : HashMap[nullable Object, nullable Object] */;
2619 val* var2 /* : HashMap[nullable Object, nullable Object] */;
2620 {
2621 { /* Inline hash_collection#HashMapValues#map (self) on <self:HashMapValues[nullable Object, nullable Object]> */
2622 var2 = self->attrs[COLOR_standard__hash_collection__HashMapValues___map].val; /* _map on <self:HashMapValues[nullable Object, nullable Object]> */
2623 if (unlikely(var2 == NULL)) {
2624 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _map");
2625 PRINT_ERROR(" (%s:%d)\n", FILE_standard__hash_collection, 303);
2626 show_backtrace(1);
2627 }
2628 var = var2;
2629 RET_LABEL1:(void)0;
2630 }
2631 }
2632 {
2633 standard___standard__HashMap___standard__abstract_collection__Map__clear(var); /* Direct call hash_collection#HashMap#clear on <var:HashMap[nullable Object, nullable Object]>*/
2634 }
2635 RET_LABEL:;
2636 }
2637 /* method hash_collection#HashMapValues#remove for (self: HashMapValues[nullable Object, nullable Object], nullable Object) */
2638 void standard__hash_collection___standard__hash_collection__HashMapValues___standard__abstract_collection__RemovableCollection__remove(val* self, val* p0) {
2639 short int var /* : Bool */;
2640 int cltype;
2641 int idtype;
2642 const struct type* type_struct;
2643 short int is_nullable;
2644 const char* var_class_name;
2645 val* var_item /* var item: nullable Object */;
2646 val* var1 /* : HashMap[nullable Object, nullable Object] */;
2647 val* var3 /* : HashMap[nullable Object, nullable Object] */;
2648 val* var_map /* var map: HashMap[nullable Object, nullable Object] */;
2649 val* var4 /* : nullable HashNode[nullable Object] */;
2650 val* var_c /* var c: nullable HashMapNode[nullable Object, nullable Object] */;
2651 val* var5 /* : null */;
2652 short int var6 /* : Bool */;
2653 short int var7 /* : Bool */;
2654 val* var_other /* var other: nullable Object */;
2655 short int var9 /* : Bool */;
2656 short int var10 /* : Bool */;
2657 val* var11 /* : nullable Object */;
2658 short int var12 /* : Bool */;
2659 short int var13 /* : Bool */;
2660 val* var14 /* : nullable Object */;
2661 val* var15 /* : nullable HashNode[nullable Object] */;
2662 /* Covariant cast for argument 0 (item) <p0:nullable Object> isa V */
2663 /* <p0:nullable Object> isa V */
2664 type_struct = self->type->resolution_table->types[COLOR_standard__hash_collection__HashMapValues___35dV];
2665 cltype = type_struct->color;
2666 idtype = type_struct->id;
2667 is_nullable = type_struct->is_nullable;
2668 if(p0 == NULL) {
2669 var = is_nullable;
2670 } else {
2671 if(cltype >= p0->type->table_size) {
2672 var = 0;
2673 } else {
2674 var = p0->type->type_table[cltype] == idtype;
2675 }
2676 }
2677 if (unlikely(!var)) {
2678 var_class_name = p0 == NULL ? "null" : p0->type->name;
2679 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "V", var_class_name);
2680 PRINT_ERROR(" (%s:%d)\n", FILE_standard__hash_collection, 345);
2681 show_backtrace(1);
2682 }
2683 var_item = p0;
2684 {
2685 { /* Inline hash_collection#HashMapValues#map (self) on <self:HashMapValues[nullable Object, nullable Object]> */
2686 var3 = self->attrs[COLOR_standard__hash_collection__HashMapValues___map].val; /* _map on <self:HashMapValues[nullable Object, nullable Object]> */
2687 if (unlikely(var3 == NULL)) {
2688 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _map");
2689 PRINT_ERROR(" (%s:%d)\n", FILE_standard__hash_collection, 303);
2690 show_backtrace(1);
2691 }
2692 var1 = var3;
2693 RET_LABEL2:(void)0;
2694 }
2695 }
2696 var_map = var1;
2697 var4 = var_map->attrs[COLOR_standard__hash_collection__HashCollection___first_item].val; /* _first_item on <var_map:HashMap[nullable Object, nullable Object]> */
2698 var_c = var4;
2699 for(;;) {
2700 var5 = NULL;
2701 if (var_c == NULL) {
2702 var6 = 0; /* is null */
2703 } else {
2704 var6 = 1; /* arg is null and recv is not */
2705 }
2706 if (0) {
2707 { /* Inline kernel#Object#!= (var_c,var5) on <var_c:nullable HashMapNode[nullable Object, nullable Object]> */
2708 var_other = var5;
2709 {
2710 var9 = ((short int (*)(val* self, val* p0))(var_c->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_c, var_other) /* == on <var_c:nullable HashMapNode[nullable Object, nullable Object](HashMapNode[nullable Object, nullable Object])>*/;
2711 }
2712 var10 = !var9;
2713 var7 = var10;
2714 goto RET_LABEL8;
2715 RET_LABEL8:(void)0;
2716 }
2717 var6 = var7;
2718 }
2719 if (var6){
2720 var11 = var_c->attrs[COLOR_standard__hash_collection__HashMapNode___value].val; /* _value on <var_c:nullable HashMapNode[nullable Object, nullable Object](HashMapNode[nullable Object, nullable Object])> */
2721 if (var11 == NULL) {
2722 var12 = (var_item == NULL);
2723 } else {
2724 var13 = ((short int (*)(val* self, val* p0))(var11->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var11, var_item) /* == on <var11:nullable Object>*/;
2725 var12 = var13;
2726 }
2727 if (var12){
2728 var14 = var_c->attrs[COLOR_standard__hash_collection__HashNode___key].val; /* _key on <var_c:nullable HashMapNode[nullable Object, nullable Object](HashMapNode[nullable Object, nullable Object])> */
2729 {
2730 standard__hash_collection___standard__hash_collection__HashCollection___remove_node(var_map, var14); /* Direct call hash_collection#HashCollection#remove_node on <var_map:HashMap[nullable Object, nullable Object]>*/
2731 }
2732 goto RET_LABEL;
2733 } else {
2734 }
2735 var15 = var_c->attrs[COLOR_standard__hash_collection__HashNode___next_item].val; /* _next_item on <var_c:nullable HashMapNode[nullable Object, nullable Object](HashMapNode[nullable Object, nullable Object])> */
2736 var_c = var15;
2737 } else {
2738 goto BREAK_label;
2739 }
2740 }
2741 BREAK_label: (void)0;
2742 RET_LABEL:;
2743 }
2744 /* method hash_collection#HashMapValues#init for (self: HashMapValues[nullable Object, nullable Object]) */
2745 void standard__hash_collection___standard__hash_collection__HashMapValues___standard__kernel__Object__init(val* self) {
2746 {
2747 ((void (*)(val* self))(self->class->vft[COLOR_standard__hash_collection___standard__hash_collection__HashMapValues___standard__kernel__Object__init]))(self) /* init on <self:HashMapValues[nullable Object, nullable Object]>*/;
2748 }
2749 RET_LABEL:;
2750 }
2751 /* method hash_collection#HashMapNode#value= for (self: HashMapNode[nullable Object, nullable Object], nullable Object) */
2752 void standard__hash_collection___standard__hash_collection__HashMapNode___value_61d(val* self, val* p0) {
2753 short int var /* : Bool */;
2754 int cltype;
2755 int idtype;
2756 const struct type* type_struct;
2757 short int is_nullable;
2758 const char* var_class_name;
2759 /* Covariant cast for argument 0 (value) <p0:nullable Object> isa V */
2760 /* <p0:nullable Object> isa V */
2761 type_struct = self->type->resolution_table->types[COLOR_standard__hash_collection__HashMapNode___35dV];
2762 cltype = type_struct->color;
2763 idtype = type_struct->id;
2764 is_nullable = type_struct->is_nullable;
2765 if(p0 == NULL) {
2766 var = is_nullable;
2767 } else {
2768 if(cltype >= p0->type->table_size) {
2769 var = 0;
2770 } else {
2771 var = p0->type->type_table[cltype] == idtype;
2772 }
2773 }
2774 if (unlikely(!var)) {
2775 var_class_name = p0 == NULL ? "null" : p0->type->name;
2776 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "V", var_class_name);
2777 PRINT_ERROR(" (%s:%d)\n", FILE_standard__hash_collection, 374);
2778 show_backtrace(1);
2779 }
2780 self->attrs[COLOR_standard__hash_collection__HashMapNode___value].val = p0; /* _value on <self:HashMapNode[nullable Object, nullable Object]> */
2781 RET_LABEL:;
2782 }
2783 /* method hash_collection#HashMapNode#init for (self: HashMapNode[nullable Object, nullable Object]) */
2784 void standard__hash_collection___standard__hash_collection__HashMapNode___standard__kernel__Object__init(val* self) {
2785 {
2786 ((void (*)(val* self))(self->class->vft[COLOR_standard__hash_collection___standard__hash_collection__HashMapNode___standard__kernel__Object__init]))(self) /* init on <self:HashMapNode[nullable Object, nullable Object]>*/;
2787 }
2788 RET_LABEL:;
2789 }
2790 /* method hash_collection#HashMapIterator#is_ok for (self: HashMapIterator[nullable Object, nullable Object]): Bool */
2791 short int standard___standard__HashMapIterator___standard__abstract_collection__MapIterator__is_ok(val* self) {
2792 short int var /* : Bool */;
2793 val* var1 /* : nullable HashMapNode[nullable Object, nullable Object] */;
2794 val* var2 /* : null */;
2795 short int var3 /* : Bool */;
2796 short int var4 /* : Bool */;
2797 val* var_other /* var other: nullable Object */;
2798 short int var6 /* : Bool */;
2799 short int var7 /* : Bool */;
2800 var1 = self->attrs[COLOR_standard__hash_collection__HashMapIterator___node].val; /* _node on <self:HashMapIterator[nullable Object, nullable Object]> */
2801 var2 = NULL;
2802 if (var1 == NULL) {
2803 var3 = 0; /* is null */
2804 } else {
2805 var3 = 1; /* arg is null and recv is not */
2806 }
2807 if (0) {
2808 { /* Inline kernel#Object#!= (var1,var2) on <var1:nullable HashMapNode[nullable Object, nullable Object]> */
2809 var_other = var2;
2810 {
2811 var6 = ((short int (*)(val* self, val* p0))(var1->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var1, var_other) /* == on <var1:nullable HashMapNode[nullable Object, nullable Object](HashMapNode[nullable Object, nullable Object])>*/;
2812 }
2813 var7 = !var6;
2814 var4 = var7;
2815 goto RET_LABEL5;
2816 RET_LABEL5:(void)0;
2817 }
2818 var3 = var4;
2819 }
2820 var = var3;
2821 goto RET_LABEL;
2822 RET_LABEL:;
2823 return var;
2824 }
2825 /* method hash_collection#HashMapIterator#item for (self: HashMapIterator[nullable Object, nullable Object]): nullable Object */
2826 val* standard___standard__HashMapIterator___standard__abstract_collection__MapIterator__item(val* self) {
2827 val* var /* : nullable Object */;
2828 short int var1 /* : Bool */;
2829 val* var2 /* : nullable HashMapNode[nullable Object, nullable Object] */;
2830 val* var3 /* : nullable Object */;
2831 {
2832 var1 = standard___standard__HashMapIterator___standard__abstract_collection__MapIterator__is_ok(self);
2833 }
2834 if (unlikely(!var1)) {
2835 PRINT_ERROR("Runtime error: %s", "Assert failed");
2836 PRINT_ERROR(" (%s:%d)\n", FILE_standard__hash_collection, 384);
2837 show_backtrace(1);
2838 }
2839 var2 = self->attrs[COLOR_standard__hash_collection__HashMapIterator___node].val; /* _node on <self:HashMapIterator[nullable Object, nullable Object]> */
2840 if (unlikely(var2 == NULL)) {
2841 PRINT_ERROR("Runtime error: %s", "Receiver is null");
2842 PRINT_ERROR(" (%s:%d)\n", FILE_standard__hash_collection, 385);
2843 show_backtrace(1);
2844 }
2845 var3 = var2->attrs[COLOR_standard__hash_collection__HashMapNode___value].val; /* _value on <var2:nullable HashMapNode[nullable Object, nullable Object]> */
2846 var = var3;
2847 goto RET_LABEL;
2848 RET_LABEL:;
2849 return var;
2850 }
2851 /* method hash_collection#HashMapIterator#key for (self: HashMapIterator[nullable Object, nullable Object]): nullable Object */
2852 val* standard___standard__HashMapIterator___standard__abstract_collection__MapIterator__key(val* self) {
2853 val* var /* : nullable Object */;
2854 short int var1 /* : Bool */;
2855 val* var2 /* : nullable HashMapNode[nullable Object, nullable Object] */;
2856 val* var3 /* : nullable Object */;
2857 {
2858 var1 = standard___standard__HashMapIterator___standard__abstract_collection__MapIterator__is_ok(self);
2859 }
2860 if (unlikely(!var1)) {
2861 PRINT_ERROR("Runtime error: %s", "Assert failed");
2862 PRINT_ERROR(" (%s:%d)\n", FILE_standard__hash_collection, 396);
2863 show_backtrace(1);
2864 }
2865 var2 = self->attrs[COLOR_standard__hash_collection__HashMapIterator___node].val; /* _node on <self:HashMapIterator[nullable Object, nullable Object]> */
2866 if (unlikely(var2 == NULL)) {
2867 PRINT_ERROR("Runtime error: %s", "Receiver is null");
2868 PRINT_ERROR(" (%s:%d)\n", FILE_standard__hash_collection, 397);
2869 show_backtrace(1);
2870 }
2871 var3 = var2->attrs[COLOR_standard__hash_collection__HashNode___key].val; /* _key on <var2:nullable HashMapNode[nullable Object, nullable Object]> */
2872 var = var3;
2873 goto RET_LABEL;
2874 RET_LABEL:;
2875 return var;
2876 }
2877 /* method hash_collection#HashMapIterator#next for (self: HashMapIterator[nullable Object, nullable Object]) */
2878 void standard___standard__HashMapIterator___standard__abstract_collection__MapIterator__next(val* self) {
2879 short int var /* : Bool */;
2880 val* var1 /* : nullable HashMapNode[nullable Object, nullable Object] */;
2881 val* var2 /* : nullable HashNode[nullable Object] */;
2882 {
2883 var = standard___standard__HashMapIterator___standard__abstract_collection__MapIterator__is_ok(self);
2884 }
2885 if (unlikely(!var)) {
2886 PRINT_ERROR("Runtime error: %s", "Assert failed");
2887 PRINT_ERROR(" (%s:%d)\n", FILE_standard__hash_collection, 402);
2888 show_backtrace(1);
2889 }
2890 var1 = self->attrs[COLOR_standard__hash_collection__HashMapIterator___node].val; /* _node on <self:HashMapIterator[nullable Object, nullable Object]> */
2891 if (unlikely(var1 == NULL)) {
2892 PRINT_ERROR("Runtime error: %s", "Receiver is null");
2893 PRINT_ERROR(" (%s:%d)\n", FILE_standard__hash_collection, 403);
2894 show_backtrace(1);
2895 }
2896 var2 = var1->attrs[COLOR_standard__hash_collection__HashNode___next_item].val; /* _next_item on <var1:nullable HashMapNode[nullable Object, nullable Object]> */
2897 self->attrs[COLOR_standard__hash_collection__HashMapIterator___node].val = var2; /* _node on <self:HashMapIterator[nullable Object, nullable Object]> */
2898 RET_LABEL:;
2899 }
2900 /* method hash_collection#HashMapIterator#map for (self: HashMapIterator[nullable Object, nullable Object]): HashMap[nullable Object, nullable Object] */
2901 val* standard___standard__HashMapIterator___map(val* self) {
2902 val* var /* : HashMap[nullable Object, nullable Object] */;
2903 val* var1 /* : HashMap[nullable Object, nullable Object] */;
2904 var1 = self->attrs[COLOR_standard__hash_collection__HashMapIterator___map].val; /* _map on <self:HashMapIterator[nullable Object, nullable Object]> */
2905 if (unlikely(var1 == NULL)) {
2906 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _map");
2907 PRINT_ERROR(" (%s:%d)\n", FILE_standard__hash_collection, 406);
2908 show_backtrace(1);
2909 }
2910 var = var1;
2911 RET_LABEL:;
2912 return var;
2913 }
2914 /* method hash_collection#HashMapIterator#map= for (self: HashMapIterator[nullable Object, nullable Object], HashMap[nullable Object, nullable Object]) */
2915 void standard___standard__HashMapIterator___map_61d(val* self, val* p0) {
2916 short int var /* : Bool */;
2917 int cltype;
2918 int idtype;
2919 const struct type* type_struct;
2920 const char* var_class_name;
2921 /* Covariant cast for argument 0 (map) <p0:HashMap[nullable Object, nullable Object]> isa HashMap[K, V] */
2922 /* <p0:HashMap[nullable Object, nullable Object]> isa HashMap[K, V] */
2923 type_struct = self->type->resolution_table->types[COLOR_standard__HashMap__standard__HashMapIterator___35dK__standard__HashMapIterator___35dV];
2924 cltype = type_struct->color;
2925 idtype = type_struct->id;
2926 if(cltype >= p0->type->table_size) {
2927 var = 0;
2928 } else {
2929 var = p0->type->type_table[cltype] == idtype;
2930 }
2931 if (unlikely(!var)) {
2932 var_class_name = p0 == NULL ? "null" : p0->type->name;
2933 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "HashMap[K, V]", var_class_name);
2934 PRINT_ERROR(" (%s:%d)\n", FILE_standard__hash_collection, 406);
2935 show_backtrace(1);
2936 }
2937 self->attrs[COLOR_standard__hash_collection__HashMapIterator___map].val = p0; /* _map on <self:HashMapIterator[nullable Object, nullable Object]> */
2938 RET_LABEL:;
2939 }
2940 /* method hash_collection#HashMapIterator#init for (self: HashMapIterator[nullable Object, nullable Object]) */
2941 void standard___standard__HashMapIterator___standard__kernel__Object__init(val* self) {
2942 val* var /* : HashMap[nullable Object, nullable Object] */;
2943 val* var2 /* : HashMap[nullable Object, nullable Object] */;
2944 val* var3 /* : HashMap[nullable Object, nullable Object] */;
2945 val* var4 /* : nullable HashNode[nullable Object] */;
2946 {
2947 { /* Inline hash_collection#HashMapIterator#map (self) on <self:HashMapIterator[nullable Object, nullable Object]> */
2948 var2 = self->attrs[COLOR_standard__hash_collection__HashMapIterator___map].val; /* _map on <self:HashMapIterator[nullable Object, nullable Object]> */
2949 if (unlikely(var2 == NULL)) {
2950 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _map");
2951 PRINT_ERROR(" (%s:%d)\n", FILE_standard__hash_collection, 406);
2952 show_backtrace(1);
2953 }
2954 var = var2;
2955 RET_LABEL1:(void)0;
2956 }
2957 }
2958 self->attrs[COLOR_standard__hash_collection__HashMapIterator___map].val = var; /* _map on <self:HashMapIterator[nullable Object, nullable Object]> */
2959 var3 = self->attrs[COLOR_standard__hash_collection__HashMapIterator___map].val; /* _map on <self:HashMapIterator[nullable Object, nullable Object]> */
2960 if (unlikely(var3 == NULL)) {
2961 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _map");
2962 PRINT_ERROR(" (%s:%d)\n", FILE_standard__hash_collection, 415);
2963 show_backtrace(1);
2964 }
2965 var4 = var3->attrs[COLOR_standard__hash_collection__HashCollection___first_item].val; /* _first_item on <var3:HashMap[nullable Object, nullable Object]> */
2966 self->attrs[COLOR_standard__hash_collection__HashMapIterator___node].val = var4; /* _node on <self:HashMapIterator[nullable Object, nullable Object]> */
2967 RET_LABEL:;
2968 }
2969 /* method hash_collection#HashSet#length for (self: HashSet[nullable Object]): Int */
2970 long standard___standard__HashSet___standard__abstract_collection__Collection__length(val* self) {
2971 long var /* : Int */;
2972 long var1 /* : Int */;
2973 var1 = self->attrs[COLOR_standard__hash_collection__HashCollection___the_length].l; /* _the_length on <self:HashSet[nullable Object]> */
2974 var = var1;
2975 goto RET_LABEL;
2976 RET_LABEL:;
2977 return var;
2978 }
2979 /* method hash_collection#HashSet#is_empty for (self: HashSet[nullable Object]): Bool */
2980 short int standard___standard__HashSet___standard__abstract_collection__Collection__is_empty(val* self) {
2981 short int var /* : Bool */;
2982 long var1 /* : Int */;
2983 long var2 /* : Int */;
2984 short int var3 /* : Bool */;
2985 short int var5 /* : Bool */;
2986 var1 = self->attrs[COLOR_standard__hash_collection__HashCollection___the_length].l; /* _the_length on <self:HashSet[nullable Object]> */
2987 var2 = 0;
2988 {
2989 { /* Inline kernel#Int#== (var1,var2) on <var1:Int> */
2990 var5 = var1 == var2;
2991 var3 = var5;
2992 goto RET_LABEL4;
2993 RET_LABEL4:(void)0;
2994 }
2995 }
2996 var = var3;
2997 goto RET_LABEL;
2998 RET_LABEL:;
2999 return var;
3000 }
3001 /* method hash_collection#HashSet#first for (self: HashSet[nullable Object]): nullable Object */
3002 val* standard___standard__HashSet___standard__abstract_collection__Collection__first(val* self) {
3003 val* var /* : nullable Object */;
3004 long var1 /* : Int */;
3005 long var2 /* : Int */;
3006 short int var3 /* : Bool */;
3007 short int var5 /* : Bool */;
3008 int cltype;
3009 int idtype;
3010 const char* var_class_name;
3011 short int var6 /* : Bool */;
3012 val* var7 /* : nullable HashNode[nullable Object] */;
3013 val* var8 /* : nullable Object */;
3014 var1 = self->attrs[COLOR_standard__hash_collection__HashCollection___the_length].l; /* _the_length on <self:HashSet[nullable Object]> */
3015 var2 = 0;
3016 {
3017 { /* Inline kernel#Int#> (var1,var2) on <var1:Int> */
3018 /* Covariant cast for argument 0 (i) <var2:Int> isa OTHER */
3019 /* <var2:Int> isa OTHER */
3020 var5 = 1; /* easy <var2:Int> isa OTHER*/
3021 if (unlikely(!var5)) {
3022 var_class_name = type_standard__Int.name;
3023 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
3024 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 412);
3025 show_backtrace(1);
3026 }
3027 var6 = var1 > var2;
3028 var3 = var6;
3029 goto RET_LABEL4;
3030 RET_LABEL4:(void)0;
3031 }
3032 }
3033 if (unlikely(!var3)) {
3034 PRINT_ERROR("Runtime error: %s", "Assert failed");
3035 PRINT_ERROR(" (%s:%d)\n", FILE_standard__hash_collection, 433);
3036 show_backtrace(1);
3037 }
3038 var7 = self->attrs[COLOR_standard__hash_collection__HashCollection___first_item].val; /* _first_item on <self:HashSet[nullable Object]> */
3039 if (unlikely(var7 == NULL)) {
3040 PRINT_ERROR("Runtime error: %s", "Receiver is null");
3041 PRINT_ERROR(" (%s:%d)\n", FILE_standard__hash_collection, 434);
3042 show_backtrace(1);
3043 }
3044 var8 = var7->attrs[COLOR_standard__hash_collection__HashNode___key].val; /* _key on <var7:nullable HashNode[nullable Object](nullable HashSetNode[nullable Object])> */
3045 var = var8;
3046 goto RET_LABEL;
3047 RET_LABEL:;
3048 return var;
3049 }
3050 /* method hash_collection#HashSet#has for (self: HashSet[nullable Object], nullable Object): Bool */
3051 short int standard___standard__HashSet___standard__abstract_collection__Collection__has(val* self, val* p0) {
3052 short int var /* : Bool */;
3053 short int var1 /* : Bool */;
3054 int cltype;
3055 int idtype;
3056 const struct type* type_struct;
3057 short int is_nullable;
3058 const char* var_class_name;
3059 val* var_item /* var item: nullable Object */;
3060 val* var2 /* : nullable HashNode[nullable Object] */;
3061 val* var3 /* : null */;
3062 short int var4 /* : Bool */;
3063 short int var5 /* : Bool */;
3064 val* var_other /* var other: nullable Object */;
3065 short int var7 /* : Bool */;
3066 short int var8 /* : Bool */;
3067 /* Covariant cast for argument 0 (item) <p0:nullable Object> isa E */
3068 /* <p0:nullable Object> isa E */
3069 type_struct = self->type->resolution_table->types[COLOR_standard__HashSet___35dE];
3070 cltype = type_struct->color;
3071 idtype = type_struct->id;
3072 is_nullable = type_struct->is_nullable;
3073 if(p0 == NULL) {
3074 var1 = is_nullable;
3075 } else {
3076 if(cltype >= p0->type->table_size) {
3077 var1 = 0;
3078 } else {
3079 var1 = p0->type->type_table[cltype] == idtype;
3080 }
3081 }
3082 if (unlikely(!var1)) {
3083 var_class_name = p0 == NULL ? "null" : p0->type->name;
3084 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "E", var_class_name);
3085 PRINT_ERROR(" (%s:%d)\n", FILE_standard__hash_collection, 437);
3086 show_backtrace(1);
3087 }
3088 var_item = p0;
3089 {
3090 var2 = standard__hash_collection___standard__hash_collection__HashCollection___node_at(self, var_item);
3091 }
3092 var3 = NULL;
3093 if (var2 == NULL) {
3094 var4 = 0; /* is null */
3095 } else {
3096 var4 = 1; /* arg is null and recv is not */
3097 }
3098 if (0) {
3099 { /* Inline kernel#Object#!= (var2,var3) on <var2:nullable HashNode[nullable Object](nullable HashSetNode[nullable Object])> */
3100 var_other = var3;
3101 {
3102 var7 = ((short int (*)(val* self, val* p0))(var2->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var2, var_other) /* == on <var2:nullable HashSetNode[nullable Object](HashSetNode[nullable Object])>*/;
3103 }
3104 var8 = !var7;
3105 var5 = var8;
3106 goto RET_LABEL6;
3107 RET_LABEL6:(void)0;
3108 }
3109 var4 = var5;
3110 }
3111 var = var4;
3112 goto RET_LABEL;
3113 RET_LABEL:;
3114 return var;
3115 }
3116 /* method hash_collection#HashSet#add for (self: HashSet[nullable Object], nullable Object) */
3117 void standard___standard__HashSet___standard__abstract_collection__SimpleCollection__add(val* self, val* p0) {
3118 short int var /* : Bool */;
3119 int cltype;
3120 int idtype;
3121 const struct type* type_struct;
3122 short int is_nullable;
3123 const char* var_class_name;
3124 val* var_item /* var item: nullable Object */;
3125 long var1 /* : Int */;
3126 long var_i /* var i: Int */;
3127 val* var2 /* : nullable HashNode[nullable Object] */;
3128 val* var_c /* var c: nullable HashSetNode[nullable Object] */;
3129 val* var3 /* : null */;
3130 short int var4 /* : Bool */;
3131 short int var5 /* : Bool */;
3132 val* var_other /* var other: nullable Object */;
3133 short int var7 /* : Bool */;
3134 short int var8 /* : Bool */;
3135 val* var9 /* : HashSetNode[nullable Object] */;
3136 /* Covariant cast for argument 0 (item) <p0:nullable Object> isa E */
3137 /* <p0:nullable Object> isa E */
3138 type_struct = self->type->resolution_table->types[COLOR_standard__HashSet___35dE];
3139 cltype = type_struct->color;
3140 idtype = type_struct->id;
3141 is_nullable = type_struct->is_nullable;
3142 if(p0 == NULL) {
3143 var = is_nullable;
3144 } else {
3145 if(cltype >= p0->type->table_size) {
3146 var = 0;
3147 } else {
3148 var = p0->type->type_table[cltype] == idtype;
3149 }
3150 }
3151 if (unlikely(!var)) {
3152 var_class_name = p0 == NULL ? "null" : p0->type->name;
3153 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "E", var_class_name);
3154 PRINT_ERROR(" (%s:%d)\n", FILE_standard__hash_collection, 442);
3155 show_backtrace(1);
3156 }
3157 var_item = p0;
3158 {
3159 var1 = standard__hash_collection___standard__hash_collection__HashCollection___index_at(self, var_item);
3160 }
3161 var_i = var1;
3162 {
3163 var2 = standard__hash_collection___standard__hash_collection__HashCollection___node_at_idx(self, var_i, var_item);
3164 }
3165 var_c = var2;
3166 var3 = NULL;
3167 if (var_c == NULL) {
3168 var4 = 0; /* is null */
3169 } else {
3170 var4 = 1; /* arg is null and recv is not */
3171 }
3172 if (0) {
3173 { /* Inline kernel#Object#!= (var_c,var3) on <var_c:nullable HashSetNode[nullable Object]> */
3174 var_other = var3;
3175 {
3176 var7 = ((short int (*)(val* self, val* p0))(var_c->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_c, var_other) /* == on <var_c:nullable HashSetNode[nullable Object](HashSetNode[nullable Object])>*/;
3177 }
3178 var8 = !var7;
3179 var5 = var8;
3180 goto RET_LABEL6;
3181 RET_LABEL6:(void)0;
3182 }
3183 var4 = var5;
3184 }
3185 if (var4){
3186 var_c->attrs[COLOR_standard__hash_collection__HashNode___key].val = var_item; /* _key on <var_c:nullable HashSetNode[nullable Object](HashSetNode[nullable Object])> */
3187 } else {
3188 var9 = NEW_standard__hash_collection__HashSetNode(self->type->resolution_table->types[COLOR_standard__hash_collection__HashSetNode__standard__HashSet___35dE]);
3189 {
3190 ((void (*)(val* self, val* p0))(var9->class->vft[COLOR_standard__hash_collection__HashNode__key_61d]))(var9, var_item) /* key= on <var9:HashSetNode[nullable Object]>*/;
3191 }
3192 {
3193 ((void (*)(val* self))(var9->class->vft[COLOR_standard__kernel__Object__init]))(var9) /* init on <var9:HashSetNode[nullable Object]>*/;
3194 }
3195 {
3196 standard__hash_collection___standard__hash_collection__HashCollection___store(self, var_i, var9); /* Direct call hash_collection#HashCollection#store on <self:HashSet[nullable Object]>*/
3197 }
3198 }
3199 RET_LABEL:;
3200 }
3201 /* method hash_collection#HashSet#remove for (self: HashSet[nullable Object], nullable Object) */
3202 void standard___standard__HashSet___standard__abstract_collection__RemovableCollection__remove(val* self, val* p0) {
3203 short int var /* : Bool */;
3204 int cltype;
3205 int idtype;
3206 const struct type* type_struct;
3207 short int is_nullable;
3208 const char* var_class_name;
3209 val* var_item /* var item: nullable Object */;
3210 /* Covariant cast for argument 0 (item) <p0:nullable Object> isa E */
3211 /* <p0:nullable Object> isa E */
3212 type_struct = self->type->resolution_table->types[COLOR_standard__HashSet___35dE];
3213 cltype = type_struct->color;
3214 idtype = type_struct->id;
3215 is_nullable = type_struct->is_nullable;
3216 if(p0 == NULL) {
3217 var = is_nullable;
3218 } else {
3219 if(cltype >= p0->type->table_size) {
3220 var = 0;
3221 } else {
3222 var = p0->type->type_table[cltype] == idtype;
3223 }
3224 }
3225 if (unlikely(!var)) {
3226 var_class_name = p0 == NULL ? "null" : p0->type->name;
3227 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "E", var_class_name);
3228 PRINT_ERROR(" (%s:%d)\n", FILE_standard__hash_collection, 453);
3229 show_backtrace(1);
3230 }
3231 var_item = p0;
3232 {
3233 standard__hash_collection___standard__hash_collection__HashCollection___remove_node(self, var_item); /* Direct call hash_collection#HashCollection#remove_node on <self:HashSet[nullable Object]>*/
3234 }
3235 RET_LABEL:;
3236 }
3237 /* method hash_collection#HashSet#clear for (self: HashSet[nullable Object]) */
3238 void standard___standard__HashSet___standard__abstract_collection__RemovableCollection__clear(val* self) {
3239 {
3240 standard__hash_collection___standard__hash_collection__HashCollection___raz(self); /* Direct call hash_collection#HashCollection#raz on <self:HashSet[nullable Object]>*/
3241 }
3242 RET_LABEL:;
3243 }
3244 /* method hash_collection#HashSet#iterator for (self: HashSet[nullable Object]): Iterator[nullable Object] */
3245 val* standard___standard__HashSet___standard__abstract_collection__Collection__iterator(val* self) {
3246 val* var /* : Iterator[nullable Object] */;
3247 val* var1 /* : HashSetIterator[nullable Object] */;
3248 var1 = NEW_standard__hash_collection__HashSetIterator(self->type->resolution_table->types[COLOR_standard__hash_collection__HashSetIterator__standard__HashSet___35dE]);
3249 {
3250 ((void (*)(val* self, val* p0))(var1->class->vft[COLOR_standard__hash_collection__HashSetIterator__set_61d]))(var1, self) /* set= on <var1:HashSetIterator[nullable Object]>*/;
3251 }
3252 {
3253 ((void (*)(val* self))(var1->class->vft[COLOR_standard__kernel__Object__init]))(var1) /* init on <var1:HashSetIterator[nullable Object]>*/;
3254 }
3255 var = var1;
3256 goto RET_LABEL;
3257 RET_LABEL:;
3258 return var;
3259 }
3260 /* method hash_collection#HashSet#init for (self: HashSet[nullable Object]) */
3261 void standard___standard__HashSet___standard__kernel__Object__init(val* self) {
3262 long var /* : Int */;
3263 long var1 /* : Int */;
3264 long var2 /* : Int */;
3265 {
3266 ((void (*)(val* self))(self->class->vft[COLOR_standard___standard__HashSet___standard__kernel__Object__init]))(self) /* init on <self:HashSet[nullable Object]>*/;
3267 }
3268 var = 0;
3269 self->attrs[COLOR_standard__hash_collection__HashCollection___capacity].l = var; /* _capacity on <self:HashSet[nullable Object]> */
3270 var1 = 0;
3271 self->attrs[COLOR_standard__hash_collection__HashCollection___the_length].l = var1; /* _the_length on <self:HashSet[nullable Object]> */
3272 var2 = 0;
3273 {
3274 standard__hash_collection___standard__hash_collection__HashCollection___enlarge(self, var2); /* Direct call hash_collection#HashCollection#enlarge on <self:HashSet[nullable Object]>*/
3275 }
3276 RET_LABEL:;
3277 }
3278 /* method hash_collection#HashSet#from for (self: HashSet[nullable Object], Collection[nullable Object]) */
3279 void standard___standard__HashSet___from(val* self, val* p0) {
3280 short int var /* : Bool */;
3281 int cltype;
3282 int idtype;
3283 const struct type* type_struct;
3284 const char* var_class_name;
3285 val* var_coll /* var coll: Collection[nullable Object] */;
3286 /* Covariant cast for argument 0 (coll) <p0:Collection[nullable Object]> isa Collection[E] */
3287 /* <p0:Collection[nullable Object]> isa Collection[E] */
3288 type_struct = self->type->resolution_table->types[COLOR_standard__Collection__standard__HashSet___35dE];
3289 cltype = type_struct->color;
3290 idtype = type_struct->id;
3291 if(cltype >= p0->type->table_size) {
3292 var = 0;
3293 } else {
3294 var = p0->type->type_table[cltype] == idtype;
3295 }
3296 if (unlikely(!var)) {
3297 var_class_name = p0 == NULL ? "null" : p0->type->name;
3298 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "Collection[E]", var_class_name);
3299 PRINT_ERROR(" (%s:%d)\n", FILE_standard__hash_collection, 466);
3300 show_backtrace(1);
3301 }
3302 var_coll = p0;
3303 {
3304 standard___standard__HashSet___standard__kernel__Object__init(self); /* Direct call hash_collection#HashSet#init on <self:HashSet[nullable Object]>*/
3305 }
3306 {
3307 standard___standard__SimpleCollection___add_all(self, var_coll); /* Direct call abstract_collection#SimpleCollection#add_all on <self:HashSet[nullable Object]>*/
3308 }
3309 RET_LABEL:;
3310 }
3311 /* method hash_collection#HashSetIterator#is_ok for (self: HashSetIterator[nullable Object]): Bool */
3312 short int standard__hash_collection___standard__hash_collection__HashSetIterator___standard__abstract_collection__Iterator__is_ok(val* self) {
3313 short int var /* : Bool */;
3314 val* var1 /* : nullable HashSetNode[nullable Object] */;
3315 val* var2 /* : null */;
3316 short int var3 /* : Bool */;
3317 short int var4 /* : Bool */;
3318 val* var_other /* var other: nullable Object */;
3319 short int var6 /* : Bool */;
3320 short int var7 /* : Bool */;
3321 var1 = self->attrs[COLOR_standard__hash_collection__HashSetIterator___node].val; /* _node on <self:HashSetIterator[nullable Object]> */
3322 var2 = NULL;
3323 if (var1 == NULL) {
3324 var3 = 0; /* is null */
3325 } else {
3326 var3 = 1; /* arg is null and recv is not */
3327 }
3328 if (0) {
3329 { /* Inline kernel#Object#!= (var1,var2) on <var1:nullable HashSetNode[nullable Object]> */
3330 var_other = var2;
3331 {
3332 var6 = ((short int (*)(val* self, val* p0))(var1->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var1, var_other) /* == on <var1:nullable HashSetNode[nullable Object](HashSetNode[nullable Object])>*/;
3333 }
3334 var7 = !var6;
3335 var4 = var7;
3336 goto RET_LABEL5;
3337 RET_LABEL5:(void)0;
3338 }
3339 var3 = var4;
3340 }
3341 var = var3;
3342 goto RET_LABEL;
3343 RET_LABEL:;
3344 return var;
3345 }
3346 /* method hash_collection#HashSetIterator#item for (self: HashSetIterator[nullable Object]): nullable Object */
3347 val* standard__hash_collection___standard__hash_collection__HashSetIterator___standard__abstract_collection__Iterator__item(val* self) {
3348 val* var /* : nullable Object */;
3349 short int var1 /* : Bool */;
3350 val* var2 /* : nullable HashSetNode[nullable Object] */;
3351 val* var3 /* : nullable Object */;
3352 {
3353 var1 = standard__hash_collection___standard__hash_collection__HashSetIterator___standard__abstract_collection__Iterator__is_ok(self);
3354 }
3355 if (unlikely(!var1)) {
3356 PRINT_ERROR("Runtime error: %s", "Assert failed");
3357 PRINT_ERROR(" (%s:%d)\n", FILE_standard__hash_collection, 486);
3358 show_backtrace(1);
3359 }
3360 var2 = self->attrs[COLOR_standard__hash_collection__HashSetIterator___node].val; /* _node on <self:HashSetIterator[nullable Object]> */
3361 if (unlikely(var2 == NULL)) {
3362 PRINT_ERROR("Runtime error: %s", "Receiver is null");
3363 PRINT_ERROR(" (%s:%d)\n", FILE_standard__hash_collection, 487);
3364 show_backtrace(1);
3365 }
3366 var3 = var2->attrs[COLOR_standard__hash_collection__HashNode___key].val; /* _key on <var2:nullable HashSetNode[nullable Object]> */
3367 var = var3;
3368 goto RET_LABEL;
3369 RET_LABEL:;
3370 return var;
3371 }
3372 /* method hash_collection#HashSetIterator#next for (self: HashSetIterator[nullable Object]) */
3373 void standard__hash_collection___standard__hash_collection__HashSetIterator___standard__abstract_collection__Iterator__next(val* self) {
3374 short int var /* : Bool */;
3375 val* var1 /* : nullable HashSetNode[nullable Object] */;
3376 val* var2 /* : nullable HashNode[nullable Object] */;
3377 {
3378 var = standard__hash_collection___standard__hash_collection__HashSetIterator___standard__abstract_collection__Iterator__is_ok(self);
3379 }
3380 if (unlikely(!var)) {
3381 PRINT_ERROR("Runtime error: %s", "Assert failed");
3382 PRINT_ERROR(" (%s:%d)\n", FILE_standard__hash_collection, 492);
3383 show_backtrace(1);
3384 }
3385 var1 = self->attrs[COLOR_standard__hash_collection__HashSetIterator___node].val; /* _node on <self:HashSetIterator[nullable Object]> */
3386 if (unlikely(var1 == NULL)) {
3387 PRINT_ERROR("Runtime error: %s", "Receiver is null");
3388 PRINT_ERROR(" (%s:%d)\n", FILE_standard__hash_collection, 493);
3389 show_backtrace(1);
3390 }
3391 var2 = var1->attrs[COLOR_standard__hash_collection__HashNode___next_item].val; /* _next_item on <var1:nullable HashSetNode[nullable Object]> */
3392 self->attrs[COLOR_standard__hash_collection__HashSetIterator___node].val = var2; /* _node on <self:HashSetIterator[nullable Object]> */
3393 RET_LABEL:;
3394 }
3395 /* method hash_collection#HashSetIterator#set= for (self: HashSetIterator[nullable Object], HashSet[nullable Object]) */
3396 void standard__hash_collection___standard__hash_collection__HashSetIterator___set_61d(val* self, val* p0) {
3397 short int var /* : Bool */;
3398 int cltype;
3399 int idtype;
3400 const struct type* type_struct;
3401 const char* var_class_name;
3402 /* Covariant cast for argument 0 (set) <p0:HashSet[nullable Object]> isa HashSet[E] */
3403 /* <p0:HashSet[nullable Object]> isa HashSet[E] */
3404 type_struct = self->type->resolution_table->types[COLOR_standard__HashSet__standard__hash_collection__HashSetIterator___35dE];
3405 cltype = type_struct->color;
3406 idtype = type_struct->id;
3407 if(cltype >= p0->type->table_size) {
3408 var = 0;
3409 } else {
3410 var = p0->type->type_table[cltype] == idtype;
3411 }
3412 if (unlikely(!var)) {
3413 var_class_name = p0 == NULL ? "null" : p0->type->name;
3414 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "HashSet[E]", var_class_name);
3415 PRINT_ERROR(" (%s:%d)\n", FILE_standard__hash_collection, 496);
3416 show_backtrace(1);
3417 }
3418 self->attrs[COLOR_standard__hash_collection__HashSetIterator___set].val = p0; /* _set on <self:HashSetIterator[nullable Object]> */
3419 RET_LABEL:;
3420 }
3421 /* method hash_collection#HashSetIterator#init for (self: HashSetIterator[nullable Object]) */
3422 void standard__hash_collection___standard__hash_collection__HashSetIterator___standard__kernel__Object__init(val* self) {
3423 val* var /* : HashSet[nullable Object] */;
3424 val* var1 /* : nullable HashNode[nullable Object] */;
3425 var = self->attrs[COLOR_standard__hash_collection__HashSetIterator___set].val; /* _set on <self:HashSetIterator[nullable Object]> */
3426 if (unlikely(var == NULL)) {
3427 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _set");
3428 PRINT_ERROR(" (%s:%d)\n", FILE_standard__hash_collection, 504);
3429 show_backtrace(1);
3430 }
3431 var1 = var->attrs[COLOR_standard__hash_collection__HashCollection___first_item].val; /* _first_item on <var:HashSet[nullable Object]> */
3432 self->attrs[COLOR_standard__hash_collection__HashSetIterator___node].val = var1; /* _node on <self:HashSetIterator[nullable Object]> */
3433 RET_LABEL:;
3434 }