1 #include "more_collections.sep.0.h"
2 /* method more_collections#MultiHashMap#add_one for (self: MultiHashMap[nullable Object, nullable Object], nullable Object, nullable Object) */
3 void more_collections___more_collections__MultiHashMap___add_one(val
* self
, val
* p0
, val
* p1
) {
4 short int var
/* : Bool */;
7 const struct type
* type_struct
;
9 const char* var_class_name
;
10 short int var1
/* : Bool */;
13 const struct type
* type_struct4
;
14 short int is_nullable5
;
15 const char* var_class_name6
;
16 val
* var_k
/* var k: nullable Object */;
17 val
* var_v
/* var v: nullable Object */;
18 val
* var7
/* : nullable Object */;
19 val
* var_x
/* var x: nullable Array[nullable Object] */;
20 val
* var8
/* : null */;
21 short int var9
/* : Bool */;
22 short int var10
/* : Bool */;
23 val
* var_other
/* var other: nullable Object */;
24 short int var12
/* : Bool */;
25 short int var13
/* : Bool */;
26 val
* var14
/* : Array[nullable Object] */;
27 long var15
/* : Int */;
28 val
* var_
/* var : Array[nullable Object] */;
29 /* Covariant cast for argument 0 (k) <p0:nullable Object> isa K */
30 /* <p0:nullable Object> isa K */
31 type_struct
= self
->type
->resolution_table
->types
[COLOR_more_collections__MultiHashMap___35dK
];
32 cltype
= type_struct
->color
;
33 idtype
= type_struct
->id
;
34 is_nullable
= type_struct
->is_nullable
;
38 if(cltype
>= p0
->type
->table_size
) {
41 var
= p0
->type
->type_table
[cltype
] == idtype
;
45 var_class_name
= p0
== NULL ?
"null" : p0
->type
->name
;
46 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "K", var_class_name
);
47 PRINT_ERROR(" (%s:%d)\n", FILE_more_collections
, 35);
50 /* Covariant cast for argument 1 (v) <p1:nullable Object> isa V */
51 /* <p1:nullable Object> isa V */
52 type_struct4
= self
->type
->resolution_table
->types
[COLOR_more_collections__MultiHashMap___35dV
];
53 cltype2
= type_struct4
->color
;
54 idtype3
= type_struct4
->id
;
55 is_nullable5
= type_struct4
->is_nullable
;
59 if(cltype2
>= p1
->type
->table_size
) {
62 var1
= p1
->type
->type_table
[cltype2
] == idtype3
;
65 if (unlikely(!var1
)) {
66 var_class_name6
= p1
== NULL ?
"null" : p1
->type
->name
;
67 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "V", var_class_name6
);
68 PRINT_ERROR(" (%s:%d)\n", FILE_more_collections
, 35);
74 var7
= standard___standard__HashMap___standard__abstract_collection__MapRead__get_or_null(self
, var_k
);
79 var9
= 0; /* is null */
81 var9
= 1; /* arg is null and recv is not */
84 { /* Inline kernel#Object#!= (var_x,var8) on <var_x:nullable Array[nullable Object]> */
87 var12
= ((short int (*)(val
* self
, val
* p0
))(var_x
->class->vft
[COLOR_standard__kernel__Object___61d_61d
]))(var_x
, var_other
) /* == on <var_x:nullable Array[nullable Object](Array[nullable Object])>*/;
98 standard___standard__Array___standard__abstract_collection__SimpleCollection__add(var_x
, var_v
); /* Direct call array#Array#add on <var_x:nullable Array[nullable Object](Array[nullable Object])>*/
101 var14
= NEW_standard__Array(self
->type
->resolution_table
->types
[COLOR_standard__Array__more_collections__MultiHashMap___35dV
]);
104 standard___standard__Array___with_capacity(var14
, var15
); /* Direct call array#Array#with_capacity on <var14:Array[nullable Object]>*/
108 standard___standard__AbstractArray___standard__abstract_collection__Sequence__push(var_
, var_v
); /* Direct call array#AbstractArray#push on <var_:Array[nullable Object]>*/
111 standard___standard__HashMap___standard__abstract_collection__Map___91d_93d_61d(self
, var_k
, var_
); /* Direct call hash_collection#HashMap#[]= on <self:MultiHashMap[nullable Object, nullable Object]>*/
116 /* method more_collections#MultiHashMap#provide_default_value for (self: MultiHashMap[nullable Object, nullable Object], nullable Object): Array[nullable Object] */
117 val
* more_collections___more_collections__MultiHashMap___standard__abstract_collection__MapRead__provide_default_value(val
* self
, val
* p0
) {
118 val
* var
/* : Array[nullable Object] */;
119 short int var1
/* : Bool */;
122 const struct type
* type_struct
;
123 short int is_nullable
;
124 const char* var_class_name
;
125 val
* var_key
/* var key: nullable Object */;
126 val
* var2
/* : Array[nullable Object] */;
127 val
* var_res
/* var res: Array[nullable Object] */;
128 /* Covariant cast for argument 0 (key) <p0:nullable Object> isa K */
129 /* <p0:nullable Object> isa K */
130 type_struct
= self
->type
->resolution_table
->types
[COLOR_more_collections__MultiHashMap___35dK
];
131 cltype
= type_struct
->color
;
132 idtype
= type_struct
->id
;
133 is_nullable
= type_struct
->is_nullable
;
137 if(cltype
>= p0
->type
->table_size
) {
140 var1
= p0
->type
->type_table
[cltype
] == idtype
;
143 if (unlikely(!var1
)) {
144 var_class_name
= p0
== NULL ?
"null" : p0
->type
->name
;
145 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "K", var_class_name
);
146 PRINT_ERROR(" (%s:%d)\n", FILE_more_collections
, 47);
150 var2
= NEW_standard__Array(self
->type
->resolution_table
->types
[COLOR_standard__Array__more_collections__MultiHashMap___35dV
]);
152 standard___standard__Array___standard__kernel__Object__init(var2
); /* Direct call array#Array#init on <var2:Array[nullable Object]>*/
156 standard___standard__HashMap___standard__abstract_collection__Map___91d_93d_61d(self
, var_key
, var_res
); /* Direct call hash_collection#HashMap#[]= on <self:MultiHashMap[nullable Object, nullable Object]>*/
163 /* method more_collections#HashMap2#level1 for (self: HashMap2[nullable Object, nullable Object, nullable Object]): HashMap[nullable Object, HashMap[nullable Object, nullable Object]] */
164 val
* more_collections___more_collections__HashMap2___level1(val
* self
) {
165 val
* var
/* : HashMap[nullable Object, HashMap[nullable Object, nullable Object]] */;
166 val
* var1
/* : HashMap[nullable Object, HashMap[nullable Object, nullable Object]] */;
167 var1
= self
->attrs
[COLOR_more_collections__HashMap2___level1
].val
; /* _level1 on <self:HashMap2[nullable Object, nullable Object, nullable Object]> */
168 if (unlikely(var1
== NULL
)) {
169 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _level1");
170 PRINT_ERROR(" (%s:%d)\n", FILE_more_collections
, 64);
177 /* method more_collections#HashMap2#[] for (self: HashMap2[nullable Object, nullable Object, nullable Object], nullable Object, nullable Object): nullable Object */
178 val
* more_collections___more_collections__HashMap2____91d_93d(val
* self
, val
* p0
, val
* p1
) {
179 val
* var
/* : nullable Object */;
180 short int var1
/* : Bool */;
183 const struct type
* type_struct
;
184 short int is_nullable
;
185 const char* var_class_name
;
186 short int var2
/* : Bool */;
189 const struct type
* type_struct5
;
190 short int is_nullable6
;
191 const char* var_class_name7
;
192 val
* var_k1
/* var k1: nullable Object */;
193 val
* var_k2
/* var k2: nullable Object */;
194 val
* var8
/* : HashMap[nullable Object, HashMap[nullable Object, nullable Object]] */;
195 val
* var10
/* : HashMap[nullable Object, HashMap[nullable Object, nullable Object]] */;
196 val
* var_level1
/* var level1: HashMap[nullable Object, HashMap[nullable Object, nullable Object]] */;
197 val
* var11
/* : nullable Object */;
198 val
* var_level2
/* var level2: nullable HashMap[nullable Object, nullable Object] */;
199 val
* var12
/* : null */;
200 short int var13
/* : Bool */;
201 short int var14
/* : Bool */;
202 val
* var_other
/* var other: nullable Object */;
203 short int var16
/* : Bool */;
204 short int var18
/* : Bool */;
205 val
* var19
/* : null */;
206 val
* var20
/* : nullable Object */;
207 /* Covariant cast for argument 0 (k1) <p0:nullable Object> isa K1 */
208 /* <p0:nullable Object> isa K1 */
209 type_struct
= self
->type
->resolution_table
->types
[COLOR_more_collections__HashMap2___35dK1
];
210 cltype
= type_struct
->color
;
211 idtype
= type_struct
->id
;
212 is_nullable
= type_struct
->is_nullable
;
216 if(cltype
>= p0
->type
->table_size
) {
219 var1
= p0
->type
->type_table
[cltype
] == idtype
;
222 if (unlikely(!var1
)) {
223 var_class_name
= p0
== NULL ?
"null" : p0
->type
->name
;
224 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "K1", var_class_name
);
225 PRINT_ERROR(" (%s:%d)\n", FILE_more_collections
, 66);
228 /* Covariant cast for argument 1 (k2) <p1:nullable Object> isa K2 */
229 /* <p1:nullable Object> isa K2 */
230 type_struct5
= self
->type
->resolution_table
->types
[COLOR_more_collections__HashMap2___35dK2
];
231 cltype3
= type_struct5
->color
;
232 idtype4
= type_struct5
->id
;
233 is_nullable6
= type_struct5
->is_nullable
;
237 if(cltype3
>= p1
->type
->table_size
) {
240 var2
= p1
->type
->type_table
[cltype3
] == idtype4
;
243 if (unlikely(!var2
)) {
244 var_class_name7
= p1
== NULL ?
"null" : p1
->type
->name
;
245 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "K2", var_class_name7
);
246 PRINT_ERROR(" (%s:%d)\n", FILE_more_collections
, 66);
252 { /* Inline more_collections#HashMap2#level1 (self) on <self:HashMap2[nullable Object, nullable Object, nullable Object]> */
253 var10
= self
->attrs
[COLOR_more_collections__HashMap2___level1
].val
; /* _level1 on <self:HashMap2[nullable Object, nullable Object, nullable Object]> */
254 if (unlikely(var10
== NULL
)) {
255 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _level1");
256 PRINT_ERROR(" (%s:%d)\n", FILE_more_collections
, 64);
265 var11
= standard___standard__HashMap___standard__abstract_collection__MapRead__get_or_null(var_level1
, var_k1
);
269 if (var_level2
== NULL
) {
270 var13
= 1; /* is null */
272 var13
= 0; /* arg is null but recv is not */
275 { /* Inline kernel#Object#== (var_level2,var12) on <var_level2:nullable HashMap[nullable Object, nullable Object]> */
278 { /* Inline kernel#Object#is_same_instance (var_level2,var_other) on <var_level2:nullable HashMap[nullable Object, nullable Object](HashMap[nullable Object, nullable Object])> */
279 var18
= var_level2
== var_other
;
298 var20
= standard___standard__HashMap___standard__abstract_collection__MapRead__get_or_null(var_level2
, var_k2
);
305 /* method more_collections#HashMap2#[]= for (self: HashMap2[nullable Object, nullable Object, nullable Object], nullable Object, nullable Object, nullable Object) */
306 void more_collections___more_collections__HashMap2____91d_93d_61d(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
307 short int var
/* : Bool */;
310 const struct type
* type_struct
;
311 short int is_nullable
;
312 const char* var_class_name
;
313 short int var1
/* : Bool */;
316 const struct type
* type_struct4
;
317 short int is_nullable5
;
318 const char* var_class_name6
;
319 short int var7
/* : Bool */;
322 const struct type
* type_struct10
;
323 short int is_nullable11
;
324 const char* var_class_name12
;
325 val
* var_k1
/* var k1: nullable Object */;
326 val
* var_k2
/* var k2: nullable Object */;
327 val
* var_v
/* var v: nullable Object */;
328 val
* var13
/* : HashMap[nullable Object, HashMap[nullable Object, nullable Object]] */;
329 val
* var15
/* : HashMap[nullable Object, HashMap[nullable Object, nullable Object]] */;
330 val
* var_level1
/* var level1: HashMap[nullable Object, HashMap[nullable Object, nullable Object]] */;
331 val
* var16
/* : nullable Object */;
332 val
* var_level2
/* var level2: nullable HashMap[nullable Object, nullable Object] */;
333 val
* var17
/* : null */;
334 short int var18
/* : Bool */;
335 short int var19
/* : Bool */;
336 val
* var_other
/* var other: nullable Object */;
337 short int var21
/* : Bool */;
338 short int var23
/* : Bool */;
339 val
* var24
/* : HashMap[nullable Object, nullable Object] */;
340 /* Covariant cast for argument 0 (k1) <p0:nullable Object> isa K1 */
341 /* <p0:nullable Object> isa K1 */
342 type_struct
= self
->type
->resolution_table
->types
[COLOR_more_collections__HashMap2___35dK1
];
343 cltype
= type_struct
->color
;
344 idtype
= type_struct
->id
;
345 is_nullable
= type_struct
->is_nullable
;
349 if(cltype
>= p0
->type
->table_size
) {
352 var
= p0
->type
->type_table
[cltype
] == idtype
;
355 if (unlikely(!var
)) {
356 var_class_name
= p0
== NULL ?
"null" : p0
->type
->name
;
357 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "K1", var_class_name
);
358 PRINT_ERROR(" (%s:%d)\n", FILE_more_collections
, 76);
361 /* Covariant cast for argument 1 (k2) <p1:nullable Object> isa K2 */
362 /* <p1:nullable Object> isa K2 */
363 type_struct4
= self
->type
->resolution_table
->types
[COLOR_more_collections__HashMap2___35dK2
];
364 cltype2
= type_struct4
->color
;
365 idtype3
= type_struct4
->id
;
366 is_nullable5
= type_struct4
->is_nullable
;
370 if(cltype2
>= p1
->type
->table_size
) {
373 var1
= p1
->type
->type_table
[cltype2
] == idtype3
;
376 if (unlikely(!var1
)) {
377 var_class_name6
= p1
== NULL ?
"null" : p1
->type
->name
;
378 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "K2", var_class_name6
);
379 PRINT_ERROR(" (%s:%d)\n", FILE_more_collections
, 76);
382 /* Covariant cast for argument 2 (v) <p2:nullable Object> isa V */
383 /* <p2:nullable Object> isa V */
384 type_struct10
= self
->type
->resolution_table
->types
[COLOR_more_collections__HashMap2___35dV
];
385 cltype8
= type_struct10
->color
;
386 idtype9
= type_struct10
->id
;
387 is_nullable11
= type_struct10
->is_nullable
;
389 var7
= is_nullable11
;
391 if(cltype8
>= p2
->type
->table_size
) {
394 var7
= p2
->type
->type_table
[cltype8
] == idtype9
;
397 if (unlikely(!var7
)) {
398 var_class_name12
= p2
== NULL ?
"null" : p2
->type
->name
;
399 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "V", var_class_name12
);
400 PRINT_ERROR(" (%s:%d)\n", FILE_more_collections
, 76);
407 { /* Inline more_collections#HashMap2#level1 (self) on <self:HashMap2[nullable Object, nullable Object, nullable Object]> */
408 var15
= self
->attrs
[COLOR_more_collections__HashMap2___level1
].val
; /* _level1 on <self:HashMap2[nullable Object, nullable Object, nullable Object]> */
409 if (unlikely(var15
== NULL
)) {
410 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _level1");
411 PRINT_ERROR(" (%s:%d)\n", FILE_more_collections
, 64);
420 var16
= standard___standard__HashMap___standard__abstract_collection__MapRead__get_or_null(var_level1
, var_k1
);
424 if (var_level2
== NULL
) {
425 var18
= 1; /* is null */
427 var18
= 0; /* arg is null but recv is not */
430 { /* Inline kernel#Object#== (var_level2,var17) on <var_level2:nullable HashMap[nullable Object, nullable Object]> */
433 { /* Inline kernel#Object#is_same_instance (var_level2,var_other) on <var_level2:nullable HashMap[nullable Object, nullable Object](HashMap[nullable Object, nullable Object])> */
434 var23
= var_level2
== var_other
;
447 var24
= NEW_standard__HashMap(self
->type
->resolution_table
->types
[COLOR_standard__HashMap__more_collections__HashMap2___35dK2__more_collections__HashMap2___35dV
]);
449 standard___standard__HashMap___standard__kernel__Object__init(var24
); /* Direct call hash_collection#HashMap#init on <var24:HashMap[nullable Object, nullable Object]>*/
453 standard___standard__HashMap___standard__abstract_collection__Map___91d_93d_61d(var_level1
, var_k1
, var_level2
); /* Direct call hash_collection#HashMap#[]= on <var_level1:HashMap[nullable Object, HashMap[nullable Object, nullable Object]]>*/
458 standard___standard__HashMap___standard__abstract_collection__Map___91d_93d_61d(var_level2
, var_k2
, var_v
); /* Direct call hash_collection#HashMap#[]= on <var_level2:nullable HashMap[nullable Object, nullable Object](HashMap[nullable Object, nullable Object])>*/
462 /* method more_collections#HashMap3#level1 for (self: HashMap3[nullable Object, nullable Object, nullable Object, nullable Object]): HashMap[nullable Object, HashMap2[nullable Object, nullable Object, nullable Object]] */
463 val
* more_collections___more_collections__HashMap3___level1(val
* self
) {
464 val
* var
/* : HashMap[nullable Object, HashMap2[nullable Object, nullable Object, nullable Object]] */;
465 val
* var1
/* : HashMap[nullable Object, HashMap2[nullable Object, nullable Object, nullable Object]] */;
466 var1
= self
->attrs
[COLOR_more_collections__HashMap3___level1
].val
; /* _level1 on <self:HashMap3[nullable Object, nullable Object, nullable Object, nullable Object]> */
467 if (unlikely(var1
== NULL
)) {
468 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _level1");
469 PRINT_ERROR(" (%s:%d)\n", FILE_more_collections
, 108);
476 /* method more_collections#HashMap3#[] for (self: HashMap3[nullable Object, nullable Object, nullable Object, nullable Object], nullable Object, nullable Object, nullable Object): nullable Object */
477 val
* more_collections___more_collections__HashMap3____91d_93d(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
478 val
* var
/* : nullable Object */;
479 short int var1
/* : Bool */;
482 const struct type
* type_struct
;
483 short int is_nullable
;
484 const char* var_class_name
;
485 short int var2
/* : Bool */;
488 const struct type
* type_struct5
;
489 short int is_nullable6
;
490 const char* var_class_name7
;
491 short int var8
/* : Bool */;
494 const struct type
* type_struct11
;
495 short int is_nullable12
;
496 const char* var_class_name13
;
497 val
* var_k1
/* var k1: nullable Object */;
498 val
* var_k2
/* var k2: nullable Object */;
499 val
* var_k3
/* var k3: nullable Object */;
500 val
* var14
/* : HashMap[nullable Object, HashMap2[nullable Object, nullable Object, nullable Object]] */;
501 val
* var16
/* : HashMap[nullable Object, HashMap2[nullable Object, nullable Object, nullable Object]] */;
502 val
* var_level1
/* var level1: HashMap[nullable Object, HashMap2[nullable Object, nullable Object, nullable Object]] */;
503 val
* var17
/* : nullable Object */;
504 val
* var_level2
/* var level2: nullable HashMap2[nullable Object, nullable Object, nullable Object] */;
505 val
* var18
/* : null */;
506 short int var19
/* : Bool */;
507 short int var20
/* : Bool */;
508 val
* var_other
/* var other: nullable Object */;
509 short int var22
/* : Bool */;
510 short int var24
/* : Bool */;
511 val
* var25
/* : null */;
512 val
* var26
/* : nullable Object */;
513 /* Covariant cast for argument 0 (k1) <p0:nullable Object> isa K1 */
514 /* <p0:nullable Object> isa K1 */
515 type_struct
= self
->type
->resolution_table
->types
[COLOR_more_collections__HashMap3___35dK1
];
516 cltype
= type_struct
->color
;
517 idtype
= type_struct
->id
;
518 is_nullable
= type_struct
->is_nullable
;
522 if(cltype
>= p0
->type
->table_size
) {
525 var1
= p0
->type
->type_table
[cltype
] == idtype
;
528 if (unlikely(!var1
)) {
529 var_class_name
= p0
== NULL ?
"null" : p0
->type
->name
;
530 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "K1", var_class_name
);
531 PRINT_ERROR(" (%s:%d)\n", FILE_more_collections
, 110);
534 /* Covariant cast for argument 1 (k2) <p1:nullable Object> isa K2 */
535 /* <p1:nullable Object> isa K2 */
536 type_struct5
= self
->type
->resolution_table
->types
[COLOR_more_collections__HashMap3___35dK2
];
537 cltype3
= type_struct5
->color
;
538 idtype4
= type_struct5
->id
;
539 is_nullable6
= type_struct5
->is_nullable
;
543 if(cltype3
>= p1
->type
->table_size
) {
546 var2
= p1
->type
->type_table
[cltype3
] == idtype4
;
549 if (unlikely(!var2
)) {
550 var_class_name7
= p1
== NULL ?
"null" : p1
->type
->name
;
551 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "K2", var_class_name7
);
552 PRINT_ERROR(" (%s:%d)\n", FILE_more_collections
, 110);
555 /* Covariant cast for argument 2 (k3) <p2:nullable Object> isa K3 */
556 /* <p2:nullable Object> isa K3 */
557 type_struct11
= self
->type
->resolution_table
->types
[COLOR_more_collections__HashMap3___35dK3
];
558 cltype9
= type_struct11
->color
;
559 idtype10
= type_struct11
->id
;
560 is_nullable12
= type_struct11
->is_nullable
;
562 var8
= is_nullable12
;
564 if(cltype9
>= p2
->type
->table_size
) {
567 var8
= p2
->type
->type_table
[cltype9
] == idtype10
;
570 if (unlikely(!var8
)) {
571 var_class_name13
= p2
== NULL ?
"null" : p2
->type
->name
;
572 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "K3", var_class_name13
);
573 PRINT_ERROR(" (%s:%d)\n", FILE_more_collections
, 110);
580 { /* Inline more_collections#HashMap3#level1 (self) on <self:HashMap3[nullable Object, nullable Object, nullable Object, nullable Object]> */
581 var16
= self
->attrs
[COLOR_more_collections__HashMap3___level1
].val
; /* _level1 on <self:HashMap3[nullable Object, nullable Object, nullable Object, nullable Object]> */
582 if (unlikely(var16
== NULL
)) {
583 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _level1");
584 PRINT_ERROR(" (%s:%d)\n", FILE_more_collections
, 108);
593 var17
= standard___standard__HashMap___standard__abstract_collection__MapRead__get_or_null(var_level1
, var_k1
);
597 if (var_level2
== NULL
) {
598 var19
= 1; /* is null */
600 var19
= 0; /* arg is null but recv is not */
603 { /* Inline kernel#Object#== (var_level2,var18) on <var_level2:nullable HashMap2[nullable Object, nullable Object, nullable Object]> */
606 { /* Inline kernel#Object#is_same_instance (var_level2,var_other) on <var_level2:nullable HashMap2[nullable Object, nullable Object, nullable Object](HashMap2[nullable Object, nullable Object, nullable Object])> */
607 var24
= var_level2
== var_other
;
626 var26
= more_collections___more_collections__HashMap2____91d_93d(var_level2
, var_k2
, var_k3
);
633 /* method more_collections#HashMap3#[]= for (self: HashMap3[nullable Object, nullable Object, nullable Object, nullable Object], nullable Object, nullable Object, nullable Object, nullable Object) */
634 void more_collections___more_collections__HashMap3____91d_93d_61d(val
* self
, val
* p0
, val
* p1
, val
* p2
, val
* p3
) {
635 short int var
/* : Bool */;
638 const struct type
* type_struct
;
639 short int is_nullable
;
640 const char* var_class_name
;
641 short int var1
/* : Bool */;
644 const struct type
* type_struct4
;
645 short int is_nullable5
;
646 const char* var_class_name6
;
647 short int var7
/* : Bool */;
650 const struct type
* type_struct10
;
651 short int is_nullable11
;
652 const char* var_class_name12
;
653 short int var13
/* : Bool */;
656 const struct type
* type_struct16
;
657 short int is_nullable17
;
658 const char* var_class_name18
;
659 val
* var_k1
/* var k1: nullable Object */;
660 val
* var_k2
/* var k2: nullable Object */;
661 val
* var_k3
/* var k3: nullable Object */;
662 val
* var_v
/* var v: nullable Object */;
663 val
* var19
/* : HashMap[nullable Object, HashMap2[nullable Object, nullable Object, nullable Object]] */;
664 val
* var21
/* : HashMap[nullable Object, HashMap2[nullable Object, nullable Object, nullable Object]] */;
665 val
* var_level1
/* var level1: HashMap[nullable Object, HashMap2[nullable Object, nullable Object, nullable Object]] */;
666 val
* var22
/* : nullable Object */;
667 val
* var_level2
/* var level2: nullable HashMap2[nullable Object, nullable Object, nullable Object] */;
668 val
* var23
/* : null */;
669 short int var24
/* : Bool */;
670 short int var25
/* : Bool */;
671 val
* var_other
/* var other: nullable Object */;
672 short int var27
/* : Bool */;
673 short int var29
/* : Bool */;
674 val
* var30
/* : HashMap2[nullable Object, nullable Object, nullable Object] */;
675 /* Covariant cast for argument 0 (k1) <p0:nullable Object> isa K1 */
676 /* <p0:nullable Object> isa K1 */
677 type_struct
= self
->type
->resolution_table
->types
[COLOR_more_collections__HashMap3___35dK1
];
678 cltype
= type_struct
->color
;
679 idtype
= type_struct
->id
;
680 is_nullable
= type_struct
->is_nullable
;
684 if(cltype
>= p0
->type
->table_size
) {
687 var
= p0
->type
->type_table
[cltype
] == idtype
;
690 if (unlikely(!var
)) {
691 var_class_name
= p0
== NULL ?
"null" : p0
->type
->name
;
692 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "K1", var_class_name
);
693 PRINT_ERROR(" (%s:%d)\n", FILE_more_collections
, 120);
696 /* Covariant cast for argument 1 (k2) <p1:nullable Object> isa K2 */
697 /* <p1:nullable Object> isa K2 */
698 type_struct4
= self
->type
->resolution_table
->types
[COLOR_more_collections__HashMap3___35dK2
];
699 cltype2
= type_struct4
->color
;
700 idtype3
= type_struct4
->id
;
701 is_nullable5
= type_struct4
->is_nullable
;
705 if(cltype2
>= p1
->type
->table_size
) {
708 var1
= p1
->type
->type_table
[cltype2
] == idtype3
;
711 if (unlikely(!var1
)) {
712 var_class_name6
= p1
== NULL ?
"null" : p1
->type
->name
;
713 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "K2", var_class_name6
);
714 PRINT_ERROR(" (%s:%d)\n", FILE_more_collections
, 120);
717 /* Covariant cast for argument 2 (k3) <p2:nullable Object> isa K3 */
718 /* <p2:nullable Object> isa K3 */
719 type_struct10
= self
->type
->resolution_table
->types
[COLOR_more_collections__HashMap3___35dK3
];
720 cltype8
= type_struct10
->color
;
721 idtype9
= type_struct10
->id
;
722 is_nullable11
= type_struct10
->is_nullable
;
724 var7
= is_nullable11
;
726 if(cltype8
>= p2
->type
->table_size
) {
729 var7
= p2
->type
->type_table
[cltype8
] == idtype9
;
732 if (unlikely(!var7
)) {
733 var_class_name12
= p2
== NULL ?
"null" : p2
->type
->name
;
734 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "K3", var_class_name12
);
735 PRINT_ERROR(" (%s:%d)\n", FILE_more_collections
, 120);
738 /* Covariant cast for argument 3 (v) <p3:nullable Object> isa V */
739 /* <p3:nullable Object> isa V */
740 type_struct16
= self
->type
->resolution_table
->types
[COLOR_more_collections__HashMap3___35dV
];
741 cltype14
= type_struct16
->color
;
742 idtype15
= type_struct16
->id
;
743 is_nullable17
= type_struct16
->is_nullable
;
745 var13
= is_nullable17
;
747 if(cltype14
>= p3
->type
->table_size
) {
750 var13
= p3
->type
->type_table
[cltype14
] == idtype15
;
753 if (unlikely(!var13
)) {
754 var_class_name18
= p3
== NULL ?
"null" : p3
->type
->name
;
755 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "V", var_class_name18
);
756 PRINT_ERROR(" (%s:%d)\n", FILE_more_collections
, 120);
764 { /* Inline more_collections#HashMap3#level1 (self) on <self:HashMap3[nullable Object, nullable Object, nullable Object, nullable Object]> */
765 var21
= self
->attrs
[COLOR_more_collections__HashMap3___level1
].val
; /* _level1 on <self:HashMap3[nullable Object, nullable Object, nullable Object, nullable Object]> */
766 if (unlikely(var21
== NULL
)) {
767 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _level1");
768 PRINT_ERROR(" (%s:%d)\n", FILE_more_collections
, 108);
777 var22
= standard___standard__HashMap___standard__abstract_collection__MapRead__get_or_null(var_level1
, var_k1
);
781 if (var_level2
== NULL
) {
782 var24
= 1; /* is null */
784 var24
= 0; /* arg is null but recv is not */
787 { /* Inline kernel#Object#== (var_level2,var23) on <var_level2:nullable HashMap2[nullable Object, nullable Object, nullable Object]> */
790 { /* Inline kernel#Object#is_same_instance (var_level2,var_other) on <var_level2:nullable HashMap2[nullable Object, nullable Object, nullable Object](HashMap2[nullable Object, nullable Object, nullable Object])> */
791 var29
= var_level2
== var_other
;
804 var30
= NEW_more_collections__HashMap2(self
->type
->resolution_table
->types
[COLOR_more_collections__HashMap2__more_collections__HashMap3___35dK2__more_collections__HashMap3___35dK3__more_collections__HashMap3___35dV
]);
806 { /* Inline kernel#Object#init (var30) on <var30:HashMap2[nullable Object, nullable Object, nullable Object]> */
812 standard___standard__HashMap___standard__abstract_collection__Map___91d_93d_61d(var_level1
, var_k1
, var_level2
); /* Direct call hash_collection#HashMap#[]= on <var_level1:HashMap[nullable Object, HashMap2[nullable Object, nullable Object, nullable Object]]>*/
817 more_collections___more_collections__HashMap2____91d_93d_61d(var_level2
, var_k2
, var_k3
, var_v
); /* Direct call more_collections#HashMap2#[]= on <var_level2:nullable HashMap2[nullable Object, nullable Object, nullable Object](HashMap2[nullable Object, nullable Object, nullable Object])>*/