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 short int var8
/* : Bool */;
21 short int var9
/* : Bool */;
22 val
* var_other
/* var other: nullable Object */;
23 short int var11
/* : Bool */;
24 short int var12
/* : Bool */;
25 val
* var13
/* : Array[nullable Object] */;
26 val
* var_
/* var : Array[nullable Object] */;
27 /* Covariant cast for argument 0 (k) <p0:nullable Object> isa K */
28 /* <p0:nullable Object> isa K */
29 type_struct
= self
->type
->resolution_table
->types
[COLOR_more_collections__MultiHashMap___35dK
];
30 cltype
= type_struct
->color
;
31 idtype
= type_struct
->id
;
32 is_nullable
= type_struct
->is_nullable
;
36 if(cltype
>= (((long)p0
&3)?type_info
[((long)p0
&3)]:p0
->type
)->table_size
) {
39 var
= (((long)p0
&3)?type_info
[((long)p0
&3)]:p0
->type
)->type_table
[cltype
] == idtype
;
43 var_class_name
= p0
== NULL ?
"null" : (((long)p0
&3)?type_info
[((long)p0
&3)]:p0
->type
)->name
;
44 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "K", var_class_name
);
45 PRINT_ERROR(" (%s:%d)\n", FILE_more_collections
, 37);
48 /* Covariant cast for argument 1 (v) <p1:nullable Object> isa V */
49 /* <p1:nullable Object> isa V */
50 type_struct4
= self
->type
->resolution_table
->types
[COLOR_more_collections__MultiHashMap___35dV
];
51 cltype2
= type_struct4
->color
;
52 idtype3
= type_struct4
->id
;
53 is_nullable5
= type_struct4
->is_nullable
;
57 if(cltype2
>= (((long)p1
&3)?type_info
[((long)p1
&3)]:p1
->type
)->table_size
) {
60 var1
= (((long)p1
&3)?type_info
[((long)p1
&3)]:p1
->type
)->type_table
[cltype2
] == idtype3
;
63 if (unlikely(!var1
)) {
64 var_class_name6
= p1
== NULL ?
"null" : (((long)p1
&3)?type_info
[((long)p1
&3)]:p1
->type
)->name
;
65 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "V", var_class_name6
);
66 PRINT_ERROR(" (%s:%d)\n", FILE_more_collections
, 37);
72 var7
= core___core__HashMap___core__abstract_collection__MapRead__get_or_null(self
, var_k
);
76 var8
= 0; /* is null */
78 var8
= 1; /* arg is null and recv is not */
81 { /* Inline kernel#Object#!= (var_x,((val*)NULL)) on <var_x:nullable Array[nullable Object]> */
82 var_other
= ((val
*)NULL
);
84 var11
= ((short int(*)(val
* self
, val
* p0
))(var_x
->class->vft
[COLOR_core__kernel__Object___61d_61d
]))(var_x
, var_other
); /* == on <var_x:nullable Array[nullable Object](Array[nullable Object])>*/
95 core___core__Array___core__abstract_collection__SimpleCollection__add(var_x
, var_v
); /* Direct call array#Array#add on <var_x:nullable Array[nullable Object](Array[nullable Object])>*/
98 var13
= NEW_core__Array(self
->type
->resolution_table
->types
[COLOR_core__Array__more_collections__MultiHashMap___35dV
]);
100 core___core__Array___with_capacity(var13
, 1l); /* Direct call array#Array#with_capacity on <var13:Array[nullable Object]>*/
104 core___core__AbstractArray___core__abstract_collection__Sequence__push(var_
, var_v
); /* Direct call array#AbstractArray#push on <var_:Array[nullable Object]>*/
107 core___core__HashMap___core__abstract_collection__Map___91d_93d_61d(self
, var_k
, var_
); /* Direct call hash_collection#HashMap#[]= on <self:MultiHashMap[nullable Object, nullable Object]>*/
112 /* method more_collections#MultiHashMap#provide_default_value for (self: MultiHashMap[nullable Object, nullable Object], nullable Object): Array[nullable Object] */
113 val
* more_collections___more_collections__MultiHashMap___core__abstract_collection__MapRead__provide_default_value(val
* self
, val
* p0
) {
114 val
* var
/* : Array[nullable Object] */;
115 val
* var_key
/* var key: nullable Object */;
116 val
* var1
/* : Array[nullable Object] */;
117 val
* var_res
/* var res: Array[nullable Object] */;
118 short int var2
/* : Bool */;
121 const struct type
* type_struct
;
122 short int is_nullable
;
123 const char* var_class_name
;
125 var1
= NEW_core__Array(self
->type
->resolution_table
->types
[COLOR_core__Array__more_collections__MultiHashMap___35dV
]);
127 core___core__Array___core__kernel__Object__init(var1
); /* Direct call array#Array#init on <var1:Array[nullable Object]>*/
130 /* <var_key:nullable Object> isa K */
131 type_struct
= self
->type
->resolution_table
->types
[COLOR_more_collections__MultiHashMap___35dK
];
132 cltype
= type_struct
->color
;
133 idtype
= type_struct
->id
;
134 is_nullable
= type_struct
->is_nullable
;
135 if(var_key
== NULL
) {
138 if(cltype
>= (((long)var_key
&3)?type_info
[((long)var_key
&3)]:var_key
->type
)->table_size
) {
141 var2
= (((long)var_key
&3)?type_info
[((long)var_key
&3)]:var_key
->type
)->type_table
[cltype
] == idtype
;
144 if (unlikely(!var2
)) {
145 var_class_name
= var_key
== NULL ?
"null" : (((long)var_key
&3)?type_info
[((long)var_key
&3)]:var_key
->type
)->name
;
146 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "K", var_class_name
);
147 PRINT_ERROR(" (%s:%d)\n", FILE_more_collections
, 51);
151 core___core__HashMap___core__abstract_collection__Map___91d_93d_61d(self
, var_key
, var_res
); /* Direct call hash_collection#HashMap#[]= on <self:MultiHashMap[nullable Object, nullable Object]>*/
158 /* method more_collections#HashMap2#level1 for (self: HashMap2[nullable Object, nullable Object, nullable Object]): HashMap[nullable Object, HashMap[nullable Object, nullable Object]] */
159 val
* more_collections___more_collections__HashMap2___level1(val
* self
) {
160 val
* var
/* : HashMap[nullable Object, HashMap[nullable Object, nullable Object]] */;
161 val
* var1
/* : HashMap[nullable Object, HashMap[nullable Object, nullable Object]] */;
162 var1
= self
->attrs
[COLOR_more_collections__HashMap2___level1
].val
; /* _level1 on <self:HashMap2[nullable Object, nullable Object, nullable Object]> */
163 if (unlikely(var1
== NULL
)) {
164 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _level1");
165 PRINT_ERROR(" (%s:%d)\n", FILE_more_collections
, 67);
172 /* method more_collections#HashMap2#[] for (self: HashMap2[nullable Object, nullable Object, nullable Object], nullable Object, nullable Object): nullable Object */
173 val
* more_collections___more_collections__HashMap2____91d_93d(val
* self
, val
* p0
, val
* p1
) {
174 val
* var
/* : nullable Object */;
175 short int var1
/* : Bool */;
178 const struct type
* type_struct
;
179 short int is_nullable
;
180 const char* var_class_name
;
181 short int var2
/* : Bool */;
184 const struct type
* type_struct5
;
185 short int is_nullable6
;
186 const char* var_class_name7
;
187 val
* var_k1
/* var k1: nullable Object */;
188 val
* var_k2
/* var k2: nullable Object */;
189 val
* var8
/* : HashMap[nullable Object, HashMap[nullable Object, nullable Object]] */;
190 val
* var10
/* : HashMap[nullable Object, HashMap[nullable Object, nullable Object]] */;
191 val
* var_level1
/* var level1: HashMap[nullable Object, HashMap[nullable Object, nullable Object]] */;
192 val
* var11
/* : nullable Object */;
193 val
* var_level2
/* var level2: nullable HashMap[nullable Object, nullable Object] */;
194 short int var12
/* : Bool */;
195 short int var13
/* : Bool */;
196 val
* var14
/* : nullable Object */;
197 /* Covariant cast for argument 0 (k1) <p0:nullable Object> isa K1 */
198 /* <p0:nullable Object> isa K1 */
199 type_struct
= self
->type
->resolution_table
->types
[COLOR_more_collections__HashMap2___35dK1
];
200 cltype
= type_struct
->color
;
201 idtype
= type_struct
->id
;
202 is_nullable
= type_struct
->is_nullable
;
206 if(cltype
>= (((long)p0
&3)?type_info
[((long)p0
&3)]:p0
->type
)->table_size
) {
209 var1
= (((long)p0
&3)?type_info
[((long)p0
&3)]:p0
->type
)->type_table
[cltype
] == idtype
;
212 if (unlikely(!var1
)) {
213 var_class_name
= p0
== NULL ?
"null" : (((long)p0
&3)?type_info
[((long)p0
&3)]:p0
->type
)->name
;
214 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "K1", var_class_name
);
215 PRINT_ERROR(" (%s:%d)\n", FILE_more_collections
, 69);
218 /* Covariant cast for argument 1 (k2) <p1:nullable Object> isa K2 */
219 /* <p1:nullable Object> isa K2 */
220 type_struct5
= self
->type
->resolution_table
->types
[COLOR_more_collections__HashMap2___35dK2
];
221 cltype3
= type_struct5
->color
;
222 idtype4
= type_struct5
->id
;
223 is_nullable6
= type_struct5
->is_nullable
;
227 if(cltype3
>= (((long)p1
&3)?type_info
[((long)p1
&3)]:p1
->type
)->table_size
) {
230 var2
= (((long)p1
&3)?type_info
[((long)p1
&3)]:p1
->type
)->type_table
[cltype3
] == idtype4
;
233 if (unlikely(!var2
)) {
234 var_class_name7
= p1
== NULL ?
"null" : (((long)p1
&3)?type_info
[((long)p1
&3)]:p1
->type
)->name
;
235 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "K2", var_class_name7
);
236 PRINT_ERROR(" (%s:%d)\n", FILE_more_collections
, 69);
242 { /* Inline more_collections#HashMap2#level1 (self) on <self:HashMap2[nullable Object, nullable Object, nullable Object]> */
243 var10
= self
->attrs
[COLOR_more_collections__HashMap2___level1
].val
; /* _level1 on <self:HashMap2[nullable Object, nullable Object, nullable Object]> */
244 if (unlikely(var10
== NULL
)) {
245 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _level1");
246 PRINT_ERROR(" (%s:%d)\n", FILE_more_collections
, 67);
255 var11
= core___core__HashMap___core__abstract_collection__MapRead__get_or_null(var_level1
, var_k1
);
258 if (var_level2
== NULL
) {
259 var12
= 1; /* is null */
261 var12
= 0; /* arg is null but recv is not */
264 var13
= core___core__MapRead___core__kernel__Object___61d_61d(var_level2
, ((val
*)NULL
));
273 var14
= core___core__HashMap___core__abstract_collection__MapRead__get_or_null(var_level2
, var_k2
);
280 /* method more_collections#HashMap2#[]= for (self: HashMap2[nullable Object, nullable Object, nullable Object], nullable Object, nullable Object, nullable Object) */
281 void more_collections___more_collections__HashMap2____91d_93d_61d(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
282 short int var
/* : Bool */;
285 const struct type
* type_struct
;
286 short int is_nullable
;
287 const char* var_class_name
;
288 short int var1
/* : Bool */;
291 const struct type
* type_struct4
;
292 short int is_nullable5
;
293 const char* var_class_name6
;
294 short int var7
/* : Bool */;
297 const struct type
* type_struct10
;
298 short int is_nullable11
;
299 const char* var_class_name12
;
300 val
* var_k1
/* var k1: nullable Object */;
301 val
* var_k2
/* var k2: nullable Object */;
302 val
* var_v
/* var v: nullable Object */;
303 val
* var13
/* : HashMap[nullable Object, HashMap[nullable Object, nullable Object]] */;
304 val
* var15
/* : HashMap[nullable Object, HashMap[nullable Object, nullable Object]] */;
305 val
* var_level1
/* var level1: HashMap[nullable Object, HashMap[nullable Object, nullable Object]] */;
306 val
* var16
/* : nullable Object */;
307 val
* var_level2
/* var level2: nullable HashMap[nullable Object, nullable Object] */;
308 short int var17
/* : Bool */;
309 short int var18
/* : Bool */;
310 val
* var19
/* : HashMap[nullable Object, nullable Object] */;
311 /* Covariant cast for argument 0 (k1) <p0:nullable Object> isa K1 */
312 /* <p0:nullable Object> isa K1 */
313 type_struct
= self
->type
->resolution_table
->types
[COLOR_more_collections__HashMap2___35dK1
];
314 cltype
= type_struct
->color
;
315 idtype
= type_struct
->id
;
316 is_nullable
= type_struct
->is_nullable
;
320 if(cltype
>= (((long)p0
&3)?type_info
[((long)p0
&3)]:p0
->type
)->table_size
) {
323 var
= (((long)p0
&3)?type_info
[((long)p0
&3)]:p0
->type
)->type_table
[cltype
] == idtype
;
326 if (unlikely(!var
)) {
327 var_class_name
= p0
== NULL ?
"null" : (((long)p0
&3)?type_info
[((long)p0
&3)]:p0
->type
)->name
;
328 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "K1", var_class_name
);
329 PRINT_ERROR(" (%s:%d)\n", FILE_more_collections
, 79);
332 /* Covariant cast for argument 1 (k2) <p1:nullable Object> isa K2 */
333 /* <p1:nullable Object> isa K2 */
334 type_struct4
= self
->type
->resolution_table
->types
[COLOR_more_collections__HashMap2___35dK2
];
335 cltype2
= type_struct4
->color
;
336 idtype3
= type_struct4
->id
;
337 is_nullable5
= type_struct4
->is_nullable
;
341 if(cltype2
>= (((long)p1
&3)?type_info
[((long)p1
&3)]:p1
->type
)->table_size
) {
344 var1
= (((long)p1
&3)?type_info
[((long)p1
&3)]:p1
->type
)->type_table
[cltype2
] == idtype3
;
347 if (unlikely(!var1
)) {
348 var_class_name6
= p1
== NULL ?
"null" : (((long)p1
&3)?type_info
[((long)p1
&3)]:p1
->type
)->name
;
349 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "K2", var_class_name6
);
350 PRINT_ERROR(" (%s:%d)\n", FILE_more_collections
, 79);
353 /* Covariant cast for argument 2 (v) <p2:nullable Object> isa V */
354 /* <p2:nullable Object> isa V */
355 type_struct10
= self
->type
->resolution_table
->types
[COLOR_more_collections__HashMap2___35dV
];
356 cltype8
= type_struct10
->color
;
357 idtype9
= type_struct10
->id
;
358 is_nullable11
= type_struct10
->is_nullable
;
360 var7
= is_nullable11
;
362 if(cltype8
>= (((long)p2
&3)?type_info
[((long)p2
&3)]:p2
->type
)->table_size
) {
365 var7
= (((long)p2
&3)?type_info
[((long)p2
&3)]:p2
->type
)->type_table
[cltype8
] == idtype9
;
368 if (unlikely(!var7
)) {
369 var_class_name12
= p2
== NULL ?
"null" : (((long)p2
&3)?type_info
[((long)p2
&3)]:p2
->type
)->name
;
370 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "V", var_class_name12
);
371 PRINT_ERROR(" (%s:%d)\n", FILE_more_collections
, 79);
378 { /* Inline more_collections#HashMap2#level1 (self) on <self:HashMap2[nullable Object, nullable Object, nullable Object]> */
379 var15
= self
->attrs
[COLOR_more_collections__HashMap2___level1
].val
; /* _level1 on <self:HashMap2[nullable Object, nullable Object, nullable Object]> */
380 if (unlikely(var15
== NULL
)) {
381 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _level1");
382 PRINT_ERROR(" (%s:%d)\n", FILE_more_collections
, 67);
391 var16
= core___core__HashMap___core__abstract_collection__MapRead__get_or_null(var_level1
, var_k1
);
394 if (var_level2
== NULL
) {
395 var17
= 1; /* is null */
397 var17
= 0; /* arg is null but recv is not */
400 var18
= core___core__MapRead___core__kernel__Object___61d_61d(var_level2
, ((val
*)NULL
));
404 var19
= NEW_core__HashMap(self
->type
->resolution_table
->types
[COLOR_core__HashMap__more_collections__HashMap2___35dK2__more_collections__HashMap2___35dV
]);
406 core___core__HashMap___core__kernel__Object__init(var19
); /* Direct call hash_collection#HashMap#init on <var19:HashMap[nullable Object, nullable Object]>*/
410 core___core__HashMap___core__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]]>*/
415 core___core__HashMap___core__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])>*/
419 /* 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]] */
420 val
* more_collections___more_collections__HashMap3___level1(val
* self
) {
421 val
* var
/* : HashMap[nullable Object, HashMap2[nullable Object, nullable Object, nullable Object]] */;
422 val
* var1
/* : HashMap[nullable Object, HashMap2[nullable Object, nullable Object, nullable Object]] */;
423 var1
= self
->attrs
[COLOR_more_collections__HashMap3___level1
].val
; /* _level1 on <self:HashMap3[nullable Object, nullable Object, nullable Object, nullable Object]> */
424 if (unlikely(var1
== NULL
)) {
425 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _level1");
426 PRINT_ERROR(" (%s:%d)\n", FILE_more_collections
, 122);
433 /* method more_collections#HashMap3#[] for (self: HashMap3[nullable Object, nullable Object, nullable Object, nullable Object], nullable Object, nullable Object, nullable Object): nullable Object */
434 val
* more_collections___more_collections__HashMap3____91d_93d(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
435 val
* var
/* : nullable Object */;
436 short int var1
/* : Bool */;
439 const struct type
* type_struct
;
440 short int is_nullable
;
441 const char* var_class_name
;
442 short int var2
/* : Bool */;
445 const struct type
* type_struct5
;
446 short int is_nullable6
;
447 const char* var_class_name7
;
448 short int var8
/* : Bool */;
451 const struct type
* type_struct11
;
452 short int is_nullable12
;
453 const char* var_class_name13
;
454 val
* var_k1
/* var k1: nullable Object */;
455 val
* var_k2
/* var k2: nullable Object */;
456 val
* var_k3
/* var k3: nullable Object */;
457 val
* var14
/* : HashMap[nullable Object, HashMap2[nullable Object, nullable Object, nullable Object]] */;
458 val
* var16
/* : HashMap[nullable Object, HashMap2[nullable Object, nullable Object, nullable Object]] */;
459 val
* var_level1
/* var level1: HashMap[nullable Object, HashMap2[nullable Object, nullable Object, nullable Object]] */;
460 val
* var17
/* : nullable Object */;
461 val
* var_level2
/* var level2: nullable HashMap2[nullable Object, nullable Object, nullable Object] */;
462 short int var18
/* : Bool */;
463 short int var19
/* : Bool */;
464 val
* var_other
/* var other: nullable Object */;
465 short int var21
/* : Bool */;
466 short int var23
/* : Bool */;
467 val
* var24
/* : nullable Object */;
468 /* Covariant cast for argument 0 (k1) <p0:nullable Object> isa K1 */
469 /* <p0:nullable Object> isa K1 */
470 type_struct
= self
->type
->resolution_table
->types
[COLOR_more_collections__HashMap3___35dK1
];
471 cltype
= type_struct
->color
;
472 idtype
= type_struct
->id
;
473 is_nullable
= type_struct
->is_nullable
;
477 if(cltype
>= (((long)p0
&3)?type_info
[((long)p0
&3)]:p0
->type
)->table_size
) {
480 var1
= (((long)p0
&3)?type_info
[((long)p0
&3)]:p0
->type
)->type_table
[cltype
] == idtype
;
483 if (unlikely(!var1
)) {
484 var_class_name
= p0
== NULL ?
"null" : (((long)p0
&3)?type_info
[((long)p0
&3)]:p0
->type
)->name
;
485 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "K1", var_class_name
);
486 PRINT_ERROR(" (%s:%d)\n", FILE_more_collections
, 124);
489 /* Covariant cast for argument 1 (k2) <p1:nullable Object> isa K2 */
490 /* <p1:nullable Object> isa K2 */
491 type_struct5
= self
->type
->resolution_table
->types
[COLOR_more_collections__HashMap3___35dK2
];
492 cltype3
= type_struct5
->color
;
493 idtype4
= type_struct5
->id
;
494 is_nullable6
= type_struct5
->is_nullable
;
498 if(cltype3
>= (((long)p1
&3)?type_info
[((long)p1
&3)]:p1
->type
)->table_size
) {
501 var2
= (((long)p1
&3)?type_info
[((long)p1
&3)]:p1
->type
)->type_table
[cltype3
] == idtype4
;
504 if (unlikely(!var2
)) {
505 var_class_name7
= p1
== NULL ?
"null" : (((long)p1
&3)?type_info
[((long)p1
&3)]:p1
->type
)->name
;
506 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "K2", var_class_name7
);
507 PRINT_ERROR(" (%s:%d)\n", FILE_more_collections
, 124);
510 /* Covariant cast for argument 2 (k3) <p2:nullable Object> isa K3 */
511 /* <p2:nullable Object> isa K3 */
512 type_struct11
= self
->type
->resolution_table
->types
[COLOR_more_collections__HashMap3___35dK3
];
513 cltype9
= type_struct11
->color
;
514 idtype10
= type_struct11
->id
;
515 is_nullable12
= type_struct11
->is_nullable
;
517 var8
= is_nullable12
;
519 if(cltype9
>= (((long)p2
&3)?type_info
[((long)p2
&3)]:p2
->type
)->table_size
) {
522 var8
= (((long)p2
&3)?type_info
[((long)p2
&3)]:p2
->type
)->type_table
[cltype9
] == idtype10
;
525 if (unlikely(!var8
)) {
526 var_class_name13
= p2
== NULL ?
"null" : (((long)p2
&3)?type_info
[((long)p2
&3)]:p2
->type
)->name
;
527 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "K3", var_class_name13
);
528 PRINT_ERROR(" (%s:%d)\n", FILE_more_collections
, 124);
535 { /* Inline more_collections#HashMap3#level1 (self) on <self:HashMap3[nullable Object, nullable Object, nullable Object, nullable Object]> */
536 var16
= self
->attrs
[COLOR_more_collections__HashMap3___level1
].val
; /* _level1 on <self:HashMap3[nullable Object, nullable Object, nullable Object, nullable Object]> */
537 if (unlikely(var16
== NULL
)) {
538 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _level1");
539 PRINT_ERROR(" (%s:%d)\n", FILE_more_collections
, 122);
548 var17
= core___core__HashMap___core__abstract_collection__MapRead__get_or_null(var_level1
, var_k1
);
551 if (var_level2
== NULL
) {
552 var18
= 1; /* is null */
554 var18
= 0; /* arg is null but recv is not */
557 { /* Inline kernel#Object#== (var_level2,((val*)NULL)) on <var_level2:nullable HashMap2[nullable Object, nullable Object, nullable Object]> */
558 var_other
= ((val
*)NULL
);
560 { /* 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])> */
561 var23
= var_level2
== var_other
;
579 var24
= more_collections___more_collections__HashMap2____91d_93d(var_level2
, var_k2
, var_k3
);
586 /* method more_collections#HashMap3#[]= for (self: HashMap3[nullable Object, nullable Object, nullable Object, nullable Object], nullable Object, nullable Object, nullable Object, nullable Object) */
587 void more_collections___more_collections__HashMap3____91d_93d_61d(val
* self
, val
* p0
, val
* p1
, val
* p2
, val
* p3
) {
588 short int var
/* : Bool */;
591 const struct type
* type_struct
;
592 short int is_nullable
;
593 const char* var_class_name
;
594 short int var1
/* : Bool */;
597 const struct type
* type_struct4
;
598 short int is_nullable5
;
599 const char* var_class_name6
;
600 short int var7
/* : Bool */;
603 const struct type
* type_struct10
;
604 short int is_nullable11
;
605 const char* var_class_name12
;
606 short int var13
/* : Bool */;
609 const struct type
* type_struct16
;
610 short int is_nullable17
;
611 const char* var_class_name18
;
612 val
* var_k1
/* var k1: nullable Object */;
613 val
* var_k2
/* var k2: nullable Object */;
614 val
* var_k3
/* var k3: nullable Object */;
615 val
* var_v
/* var v: nullable Object */;
616 val
* var19
/* : HashMap[nullable Object, HashMap2[nullable Object, nullable Object, nullable Object]] */;
617 val
* var21
/* : HashMap[nullable Object, HashMap2[nullable Object, nullable Object, nullable Object]] */;
618 val
* var_level1
/* var level1: HashMap[nullable Object, HashMap2[nullable Object, nullable Object, nullable Object]] */;
619 val
* var22
/* : nullable Object */;
620 val
* var_level2
/* var level2: nullable HashMap2[nullable Object, nullable Object, nullable Object] */;
621 short int var23
/* : Bool */;
622 short int var24
/* : Bool */;
623 val
* var_other
/* var other: nullable Object */;
624 short int var26
/* : Bool */;
625 short int var28
/* : Bool */;
626 val
* var29
/* : HashMap2[nullable Object, nullable Object, nullable Object] */;
627 /* Covariant cast for argument 0 (k1) <p0:nullable Object> isa K1 */
628 /* <p0:nullable Object> isa K1 */
629 type_struct
= self
->type
->resolution_table
->types
[COLOR_more_collections__HashMap3___35dK1
];
630 cltype
= type_struct
->color
;
631 idtype
= type_struct
->id
;
632 is_nullable
= type_struct
->is_nullable
;
636 if(cltype
>= (((long)p0
&3)?type_info
[((long)p0
&3)]:p0
->type
)->table_size
) {
639 var
= (((long)p0
&3)?type_info
[((long)p0
&3)]:p0
->type
)->type_table
[cltype
] == idtype
;
642 if (unlikely(!var
)) {
643 var_class_name
= p0
== NULL ?
"null" : (((long)p0
&3)?type_info
[((long)p0
&3)]:p0
->type
)->name
;
644 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "K1", var_class_name
);
645 PRINT_ERROR(" (%s:%d)\n", FILE_more_collections
, 134);
648 /* Covariant cast for argument 1 (k2) <p1:nullable Object> isa K2 */
649 /* <p1:nullable Object> isa K2 */
650 type_struct4
= self
->type
->resolution_table
->types
[COLOR_more_collections__HashMap3___35dK2
];
651 cltype2
= type_struct4
->color
;
652 idtype3
= type_struct4
->id
;
653 is_nullable5
= type_struct4
->is_nullable
;
657 if(cltype2
>= (((long)p1
&3)?type_info
[((long)p1
&3)]:p1
->type
)->table_size
) {
660 var1
= (((long)p1
&3)?type_info
[((long)p1
&3)]:p1
->type
)->type_table
[cltype2
] == idtype3
;
663 if (unlikely(!var1
)) {
664 var_class_name6
= p1
== NULL ?
"null" : (((long)p1
&3)?type_info
[((long)p1
&3)]:p1
->type
)->name
;
665 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "K2", var_class_name6
);
666 PRINT_ERROR(" (%s:%d)\n", FILE_more_collections
, 134);
669 /* Covariant cast for argument 2 (k3) <p2:nullable Object> isa K3 */
670 /* <p2:nullable Object> isa K3 */
671 type_struct10
= self
->type
->resolution_table
->types
[COLOR_more_collections__HashMap3___35dK3
];
672 cltype8
= type_struct10
->color
;
673 idtype9
= type_struct10
->id
;
674 is_nullable11
= type_struct10
->is_nullable
;
676 var7
= is_nullable11
;
678 if(cltype8
>= (((long)p2
&3)?type_info
[((long)p2
&3)]:p2
->type
)->table_size
) {
681 var7
= (((long)p2
&3)?type_info
[((long)p2
&3)]:p2
->type
)->type_table
[cltype8
] == idtype9
;
684 if (unlikely(!var7
)) {
685 var_class_name12
= p2
== NULL ?
"null" : (((long)p2
&3)?type_info
[((long)p2
&3)]:p2
->type
)->name
;
686 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "K3", var_class_name12
);
687 PRINT_ERROR(" (%s:%d)\n", FILE_more_collections
, 134);
690 /* Covariant cast for argument 3 (v) <p3:nullable Object> isa V */
691 /* <p3:nullable Object> isa V */
692 type_struct16
= self
->type
->resolution_table
->types
[COLOR_more_collections__HashMap3___35dV
];
693 cltype14
= type_struct16
->color
;
694 idtype15
= type_struct16
->id
;
695 is_nullable17
= type_struct16
->is_nullable
;
697 var13
= is_nullable17
;
699 if(cltype14
>= (((long)p3
&3)?type_info
[((long)p3
&3)]:p3
->type
)->table_size
) {
702 var13
= (((long)p3
&3)?type_info
[((long)p3
&3)]:p3
->type
)->type_table
[cltype14
] == idtype15
;
705 if (unlikely(!var13
)) {
706 var_class_name18
= p3
== NULL ?
"null" : (((long)p3
&3)?type_info
[((long)p3
&3)]:p3
->type
)->name
;
707 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "V", var_class_name18
);
708 PRINT_ERROR(" (%s:%d)\n", FILE_more_collections
, 134);
716 { /* Inline more_collections#HashMap3#level1 (self) on <self:HashMap3[nullable Object, nullable Object, nullable Object, nullable Object]> */
717 var21
= self
->attrs
[COLOR_more_collections__HashMap3___level1
].val
; /* _level1 on <self:HashMap3[nullable Object, nullable Object, nullable Object, nullable Object]> */
718 if (unlikely(var21
== NULL
)) {
719 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _level1");
720 PRINT_ERROR(" (%s:%d)\n", FILE_more_collections
, 122);
729 var22
= core___core__HashMap___core__abstract_collection__MapRead__get_or_null(var_level1
, var_k1
);
732 if (var_level2
== NULL
) {
733 var23
= 1; /* is null */
735 var23
= 0; /* arg is null but recv is not */
738 { /* Inline kernel#Object#== (var_level2,((val*)NULL)) on <var_level2:nullable HashMap2[nullable Object, nullable Object, nullable Object]> */
739 var_other
= ((val
*)NULL
);
741 { /* 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])> */
742 var28
= var_level2
== var_other
;
755 var29
= 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
]);
757 { /* Inline kernel#Object#init (var29) on <var29:HashMap2[nullable Object, nullable Object, nullable Object]> */
763 core___core__HashMap___core__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]]>*/
768 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])>*/