1 #include "more_collections.sep.0.h"
2 /* method more_collections#MultiHashMap#add_one for (self: MultiHashMap[Object, nullable Object], Object, nullable Object) */
3 void more_collections__MultiHashMap__add_one(val
* self
, val
* p0
, val
* p1
) {
4 short int var
/* : Bool */;
7 const struct type
* type_struct
;
8 short int var1
/* : Bool */;
11 const struct type
* type_struct4
;
12 short int is_nullable
;
13 val
* var_k
/* var k: Object */;
14 val
* var_v
/* var v: nullable Object */;
15 short int var5
/* : Bool */;
16 val
* var6
/* : nullable Object */;
17 val
* var7
/* : Array[nullable Object] */;
18 long var8
/* : Int */;
19 val
* var9
/* : NativeArray[nullable Object] */;
20 /* Covariant cast for argument 0 (k) <p0:Object> isa MultiHashMap#0 */
21 /* <p0:Object> isa MultiHashMap#0 */
22 type_struct
= self
->type
->resolution_table
->types
[COLOR_more_collections__MultiHashMap_FT0
];
23 cltype
= type_struct
->color
;
24 idtype
= type_struct
->id
;
25 if(cltype
>= p0
->type
->table_size
) {
28 var
= p0
->type
->type_table
[cltype
] == idtype
;
31 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Cast failed", "lib/more_collections.nit", 22);
34 /* Covariant cast for argument 1 (v) <p1:nullable Object> isa MultiHashMap#1 */
35 /* <p1:nullable Object> isa MultiHashMap#1 */
36 type_struct4
= self
->type
->resolution_table
->types
[COLOR_more_collections__MultiHashMap_FT1
];
37 cltype2
= type_struct4
->color
;
38 idtype3
= type_struct4
->id
;
39 is_nullable
= type_struct4
->is_nullable
;
43 if(cltype2
>= p1
->type
->table_size
) {
46 var1
= p1
->type
->type_table
[cltype2
] == idtype3
;
50 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Cast failed", "lib/more_collections.nit", 22);
55 var5
= ((short int (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_collection__MapRead__has_key
]))(self
, var_k
) /* has_key on <self:MultiHashMap[Object, nullable Object]>*/;
57 var6
= ((val
* (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_collection__MapRead___91d_93d
]))(self
, var_k
) /* [] on <self:MultiHashMap[Object, nullable Object]>*/;
58 ((void (*)(val
*, val
*))(var6
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var6
, var_v
) /* add on <var6:nullable Object(Array[nullable Object])>*/;
60 var7
= NEW_array__Array(self
->type
->resolution_table
->types
[COLOR_array__Arraymore_collections__MultiHashMap_FT1
]);
61 { /* var7 = array_instance Array[MultiHashMap#1] */
63 var9
= NEW_array__NativeArray(var8
, self
->type
->resolution_table
->types
[COLOR_array__NativeArraymore_collections__MultiHashMap_FT1
]);
64 ((struct instance_array__NativeArray
*)var9
)->values
[0] = (val
*) var_v
;
65 ((void (*)(val
*, val
*, long))(var7
->class->vft
[COLOR_array__Array__with_native
]))(var7
, var9
, var8
) /* with_native on <var7:Array[nullable Object]>*/;
66 CHECK_NEW_array__Array(var7
);
68 ((void (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_abstract_collection__Map___91d_93d_61d
]))(self
, var_k
, var7
) /* []= on <self:MultiHashMap[Object, nullable Object]>*/;
72 /* method more_collections#MultiHashMap#add_one for (self: Object, Object, nullable Object) */
73 void VIRTUAL_more_collections__MultiHashMap__add_one(val
* self
, val
* p0
, val
* p1
) {
74 more_collections__MultiHashMap__add_one(self
, p0
, p1
);
77 /* method more_collections#MultiHashMap#init for (self: MultiHashMap[Object, nullable Object]) */
78 void more_collections__MultiHashMap__init(val
* self
) {
79 ((void (*)(val
*))(self
->class->vft
[COLOR_hash_collection__HashMap__init
]))(self
) /* init on <self:MultiHashMap[Object, nullable Object]>*/;
82 /* method more_collections#MultiHashMap#init for (self: Object) */
83 void VIRTUAL_more_collections__MultiHashMap__init(val
* self
) {
84 more_collections__MultiHashMap__init(self
);
87 /* method more_collections#HashMap2#level1 for (self: HashMap2[Object, Object, nullable Object]): HashMap[Object, HashMap[Object, nullable Object]] */
88 val
* more_collections__HashMap2__level1(val
* self
) {
89 val
* var
/* : HashMap[Object, HashMap[Object, nullable Object]] */;
90 val
* var1
/* : HashMap[Object, HashMap[Object, nullable Object]] */;
91 var1
= self
->attrs
[COLOR_more_collections__HashMap2___64dlevel1
].val
; /* @level1 on <self:HashMap2[Object, Object, nullable Object]> */
93 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute @level1", "lib/more_collections.nit", 38);
100 /* method more_collections#HashMap2#level1 for (self: Object): HashMap[Object, HashMap[Object, nullable Object]] */
101 val
* VIRTUAL_more_collections__HashMap2__level1(val
* self
) {
102 val
* var
/* : HashMap[Object, HashMap[Object, nullable Object]] */;
103 val
* var1
/* : HashMap[Object, HashMap[Object, nullable Object]] */;
104 var1
= more_collections__HashMap2__level1(self
);
109 /* method more_collections#HashMap2#level1= for (self: HashMap2[Object, Object, nullable Object], HashMap[Object, HashMap[Object, nullable Object]]) */
110 void more_collections__HashMap2__level1_61d(val
* self
, val
* p0
) {
111 short int var
/* : Bool */;
114 const struct type
* type_struct
;
115 /* Covariant cast for argument 0 (level1) <p0:HashMap[Object, HashMap[Object, nullable Object]]> isa HashMap[HashMap2#0, HashMap[HashMap2#1, HashMap2#2]] */
116 /* <p0:HashMap[Object, HashMap[Object, nullable Object]]> isa HashMap[HashMap2#0, HashMap[HashMap2#1, HashMap2#2]] */
117 type_struct
= self
->type
->resolution_table
->types
[COLOR_hash_collection__HashMapmore_collections__HashMap2_FT0hash_collection__HashMapmore_collections__HashMap2_FT1more_collections__HashMap2_FT2
];
118 cltype
= type_struct
->color
;
119 idtype
= type_struct
->id
;
120 if(cltype
>= p0
->type
->table_size
) {
123 var
= p0
->type
->type_table
[cltype
] == idtype
;
126 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Cast failed", "lib/more_collections.nit", 38);
129 self
->attrs
[COLOR_more_collections__HashMap2___64dlevel1
].val
= p0
; /* @level1 on <self:HashMap2[Object, Object, nullable Object]> */
132 /* method more_collections#HashMap2#level1= for (self: Object, HashMap[Object, HashMap[Object, nullable Object]]) */
133 void VIRTUAL_more_collections__HashMap2__level1_61d(val
* self
, val
* p0
) {
134 more_collections__HashMap2__level1_61d(self
, p0
);
137 /* method more_collections#HashMap2#[] for (self: HashMap2[Object, Object, nullable Object], Object, Object): nullable Object */
138 val
* more_collections__HashMap2___91d_93d(val
* self
, val
* p0
, val
* p1
) {
139 val
* var
/* : nullable Object */;
140 short int var1
/* : Bool */;
143 const struct type
* type_struct
;
144 short int var2
/* : Bool */;
147 const struct type
* type_struct5
;
148 val
* var_k1
/* var k1: Object */;
149 val
* var_k2
/* var k2: Object */;
150 val
* var6
/* : HashMap[Object, HashMap[Object, nullable Object]] */;
151 val
* var_level1
/* var level1: HashMap[Object, HashMap[Object, nullable Object]] */;
152 short int var7
/* : Bool */;
153 short int var8
/* : Bool */;
154 val
* var9
/* : null */;
155 val
* var10
/* : nullable Object */;
156 val
* var_level2
/* var level2: HashMap[Object, nullable Object] */;
157 short int var11
/* : Bool */;
158 short int var12
/* : Bool */;
159 val
* var13
/* : null */;
160 val
* var14
/* : nullable Object */;
161 /* Covariant cast for argument 0 (k1) <p0:Object> isa HashMap2#0 */
162 /* <p0:Object> isa HashMap2#0 */
163 type_struct
= self
->type
->resolution_table
->types
[COLOR_more_collections__HashMap2_FT0
];
164 cltype
= type_struct
->color
;
165 idtype
= type_struct
->id
;
166 if(cltype
>= p0
->type
->table_size
) {
169 var1
= p0
->type
->type_table
[cltype
] == idtype
;
172 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Cast failed", "lib/more_collections.nit", 40);
175 /* Covariant cast for argument 1 (k2) <p1:Object> isa HashMap2#1 */
176 /* <p1:Object> isa HashMap2#1 */
177 type_struct5
= self
->type
->resolution_table
->types
[COLOR_more_collections__HashMap2_FT1
];
178 cltype3
= type_struct5
->color
;
179 idtype4
= type_struct5
->id
;
180 if(cltype3
>= p1
->type
->table_size
) {
183 var2
= p1
->type
->type_table
[cltype3
] == idtype4
;
186 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Cast failed", "lib/more_collections.nit", 40);
191 var6
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_more_collections__HashMap2__level1
]))(self
) /* level1 on <self:HashMap2[Object, Object, nullable Object]>*/;
193 var7
= ((short int (*)(val
*, val
*))(var_level1
->class->vft
[COLOR_abstract_collection__MapRead__has_key
]))(var_level1
, var_k1
) /* has_key on <var_level1:HashMap[Object, HashMap[Object, nullable Object]]>*/;
201 var10
= ((val
* (*)(val
*, val
*))(var_level1
->class->vft
[COLOR_abstract_collection__MapRead___91d_93d
]))(var_level1
, var_k1
) /* [] on <var_level1:HashMap[Object, HashMap[Object, nullable Object]]>*/;
203 var11
= ((short int (*)(val
*, val
*))(var_level2
->class->vft
[COLOR_abstract_collection__MapRead__has_key
]))(var_level2
, var_k2
) /* has_key on <var_level2:HashMap[Object, nullable Object]>*/;
211 var14
= ((val
* (*)(val
*, val
*))(var_level2
->class->vft
[COLOR_abstract_collection__MapRead___91d_93d
]))(var_level2
, var_k2
) /* [] on <var_level2:HashMap[Object, nullable Object]>*/;
217 /* method more_collections#HashMap2#[] for (self: Object, Object, Object): nullable Object */
218 val
* VIRTUAL_more_collections__HashMap2___91d_93d(val
* self
, val
* p0
, val
* p1
) {
219 val
* var
/* : nullable Object */;
220 val
* var1
/* : nullable Object */;
221 var1
= more_collections__HashMap2___91d_93d(self
, p0
, p1
);
226 /* method more_collections#HashMap2#[]= for (self: HashMap2[Object, Object, nullable Object], Object, Object, nullable Object) */
227 void more_collections__HashMap2___91d_93d_61d(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
228 short int var
/* : Bool */;
231 const struct type
* type_struct
;
232 short int var1
/* : Bool */;
235 const struct type
* type_struct4
;
236 short int var5
/* : Bool */;
239 const struct type
* type_struct8
;
240 short int is_nullable
;
241 val
* var_k1
/* var k1: Object */;
242 val
* var_k2
/* var k2: Object */;
243 val
* var_v
/* var v: nullable Object */;
244 val
* var9
/* : HashMap[Object, HashMap[Object, nullable Object]] */;
245 val
* var_level1
/* var level1: HashMap[Object, HashMap[Object, nullable Object]] */;
246 short int var10
/* : Bool */;
247 short int var11
/* : Bool */;
248 val
* var12
/* : HashMap[Object, nullable Object] */;
249 val
* var_level2
/* var level2: HashMap[Object, nullable Object] */;
250 val
* var13
/* : nullable Object */;
251 /* Covariant cast for argument 0 (k1) <p0:Object> isa HashMap2#0 */
252 /* <p0:Object> isa HashMap2#0 */
253 type_struct
= self
->type
->resolution_table
->types
[COLOR_more_collections__HashMap2_FT0
];
254 cltype
= type_struct
->color
;
255 idtype
= type_struct
->id
;
256 if(cltype
>= p0
->type
->table_size
) {
259 var
= p0
->type
->type_table
[cltype
] == idtype
;
262 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Cast failed", "lib/more_collections.nit", 51);
265 /* Covariant cast for argument 1 (k2) <p1:Object> isa HashMap2#1 */
266 /* <p1:Object> isa HashMap2#1 */
267 type_struct4
= self
->type
->resolution_table
->types
[COLOR_more_collections__HashMap2_FT1
];
268 cltype2
= type_struct4
->color
;
269 idtype3
= type_struct4
->id
;
270 if(cltype2
>= p1
->type
->table_size
) {
273 var1
= p1
->type
->type_table
[cltype2
] == idtype3
;
276 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Cast failed", "lib/more_collections.nit", 51);
279 /* Covariant cast for argument 2 (v) <p2:nullable Object> isa HashMap2#2 */
280 /* <p2:nullable Object> isa HashMap2#2 */
281 type_struct8
= self
->type
->resolution_table
->types
[COLOR_more_collections__HashMap2_FT2
];
282 cltype6
= type_struct8
->color
;
283 idtype7
= type_struct8
->id
;
284 is_nullable
= type_struct8
->is_nullable
;
288 if(cltype6
>= p2
->type
->table_size
) {
291 var5
= p2
->type
->type_table
[cltype6
] == idtype7
;
295 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Cast failed", "lib/more_collections.nit", 51);
301 var9
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_more_collections__HashMap2__level1
]))(self
) /* level1 on <self:HashMap2[Object, Object, nullable Object]>*/;
303 var10
= ((short int (*)(val
*, val
*))(var_level1
->class->vft
[COLOR_abstract_collection__MapRead__has_key
]))(var_level1
, var_k1
) /* has_key on <var_level1:HashMap[Object, HashMap[Object, nullable Object]]>*/;
306 var12
= NEW_hash_collection__HashMap(self
->type
->resolution_table
->types
[COLOR_hash_collection__HashMapmore_collections__HashMap2_FT1more_collections__HashMap2_FT2
]);
307 ((void (*)(val
*))(var12
->class->vft
[COLOR_hash_collection__HashMap__init
]))(var12
) /* init on <var12:HashMap[Object, nullable Object]>*/;
308 CHECK_NEW_hash_collection__HashMap(var12
);
310 ((void (*)(val
*, val
*, val
*))(var_level1
->class->vft
[COLOR_abstract_collection__Map___91d_93d_61d
]))(var_level1
, var_k1
, var_level2
) /* []= on <var_level1:HashMap[Object, HashMap[Object, nullable Object]]>*/;
312 var13
= ((val
* (*)(val
*, val
*))(var_level1
->class->vft
[COLOR_abstract_collection__MapRead___91d_93d
]))(var_level1
, var_k1
) /* [] on <var_level1:HashMap[Object, HashMap[Object, nullable Object]]>*/;
315 ((void (*)(val
*, val
*, val
*))(var_level2
->class->vft
[COLOR_abstract_collection__Map___91d_93d_61d
]))(var_level2
, var_k2
, var_v
) /* []= on <var_level2:HashMap[Object, nullable Object]>*/;
318 /* method more_collections#HashMap2#[]= for (self: Object, Object, Object, nullable Object) */
319 void VIRTUAL_more_collections__HashMap2___91d_93d_61d(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
320 more_collections__HashMap2___91d_93d_61d(self
, p0
, p1
, p2
);
323 /* method more_collections#HashMap2#init for (self: HashMap2[Object, Object, nullable Object]) */
324 void more_collections__HashMap2__init(val
* self
) {
327 /* method more_collections#HashMap2#init for (self: Object) */
328 void VIRTUAL_more_collections__HashMap2__init(val
* self
) {
329 more_collections__HashMap2__init(self
);
332 /* method more_collections#HashMap3#level1 for (self: HashMap3[Object, Object, Object, nullable Object]): HashMap[Object, HashMap2[Object, Object, nullable Object]] */
333 val
* more_collections__HashMap3__level1(val
* self
) {
334 val
* var
/* : HashMap[Object, HashMap2[Object, Object, nullable Object]] */;
335 val
* var1
/* : HashMap[Object, HashMap2[Object, Object, nullable Object]] */;
336 var1
= self
->attrs
[COLOR_more_collections__HashMap3___64dlevel1
].val
; /* @level1 on <self:HashMap3[Object, Object, Object, nullable Object]> */
338 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute @level1", "lib/more_collections.nit", 68);
345 /* method more_collections#HashMap3#level1 for (self: Object): HashMap[Object, HashMap2[Object, Object, nullable Object]] */
346 val
* VIRTUAL_more_collections__HashMap3__level1(val
* self
) {
347 val
* var
/* : HashMap[Object, HashMap2[Object, Object, nullable Object]] */;
348 val
* var1
/* : HashMap[Object, HashMap2[Object, Object, nullable Object]] */;
349 var1
= more_collections__HashMap3__level1(self
);
354 /* method more_collections#HashMap3#level1= for (self: HashMap3[Object, Object, Object, nullable Object], HashMap[Object, HashMap2[Object, Object, nullable Object]]) */
355 void more_collections__HashMap3__level1_61d(val
* self
, val
* p0
) {
356 short int var
/* : Bool */;
359 const struct type
* type_struct
;
360 /* Covariant cast for argument 0 (level1) <p0:HashMap[Object, HashMap2[Object, Object, nullable Object]]> isa HashMap[HashMap3#0, HashMap2[HashMap3#1, HashMap3#2, HashMap3#3]] */
361 /* <p0:HashMap[Object, HashMap2[Object, Object, nullable Object]]> isa HashMap[HashMap3#0, HashMap2[HashMap3#1, HashMap3#2, HashMap3#3]] */
362 type_struct
= self
->type
->resolution_table
->types
[COLOR_hash_collection__HashMapmore_collections__HashMap3_FT0more_collections__HashMap2more_collections__HashMap3_FT1more_collections__HashMap3_FT2more_collections__HashMap3_FT3
];
363 cltype
= type_struct
->color
;
364 idtype
= type_struct
->id
;
365 if(cltype
>= p0
->type
->table_size
) {
368 var
= p0
->type
->type_table
[cltype
] == idtype
;
371 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Cast failed", "lib/more_collections.nit", 68);
374 self
->attrs
[COLOR_more_collections__HashMap3___64dlevel1
].val
= p0
; /* @level1 on <self:HashMap3[Object, Object, Object, nullable Object]> */
377 /* method more_collections#HashMap3#level1= for (self: Object, HashMap[Object, HashMap2[Object, Object, nullable Object]]) */
378 void VIRTUAL_more_collections__HashMap3__level1_61d(val
* self
, val
* p0
) {
379 more_collections__HashMap3__level1_61d(self
, p0
);
382 /* method more_collections#HashMap3#[] for (self: HashMap3[Object, Object, Object, nullable Object], Object, Object, Object): nullable Object */
383 val
* more_collections__HashMap3___91d_93d(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
384 val
* var
/* : nullable Object */;
385 short int var1
/* : Bool */;
388 const struct type
* type_struct
;
389 short int var2
/* : Bool */;
392 const struct type
* type_struct5
;
393 short int var6
/* : Bool */;
396 const struct type
* type_struct9
;
397 val
* var_k1
/* var k1: Object */;
398 val
* var_k2
/* var k2: Object */;
399 val
* var_k3
/* var k3: Object */;
400 val
* var10
/* : HashMap[Object, HashMap2[Object, Object, nullable Object]] */;
401 val
* var_level1
/* var level1: HashMap[Object, HashMap2[Object, Object, nullable Object]] */;
402 short int var11
/* : Bool */;
403 short int var12
/* : Bool */;
404 val
* var13
/* : null */;
405 val
* var14
/* : nullable Object */;
406 val
* var_level2
/* var level2: HashMap2[Object, Object, nullable Object] */;
407 val
* var15
/* : nullable Object */;
408 /* Covariant cast for argument 0 (k1) <p0:Object> isa HashMap3#0 */
409 /* <p0:Object> isa HashMap3#0 */
410 type_struct
= self
->type
->resolution_table
->types
[COLOR_more_collections__HashMap3_FT0
];
411 cltype
= type_struct
->color
;
412 idtype
= type_struct
->id
;
413 if(cltype
>= p0
->type
->table_size
) {
416 var1
= p0
->type
->type_table
[cltype
] == idtype
;
419 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Cast failed", "lib/more_collections.nit", 70);
422 /* Covariant cast for argument 1 (k2) <p1:Object> isa HashMap3#1 */
423 /* <p1:Object> isa HashMap3#1 */
424 type_struct5
= self
->type
->resolution_table
->types
[COLOR_more_collections__HashMap3_FT1
];
425 cltype3
= type_struct5
->color
;
426 idtype4
= type_struct5
->id
;
427 if(cltype3
>= p1
->type
->table_size
) {
430 var2
= p1
->type
->type_table
[cltype3
] == idtype4
;
433 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Cast failed", "lib/more_collections.nit", 70);
436 /* Covariant cast for argument 2 (k3) <p2:Object> isa HashMap3#2 */
437 /* <p2:Object> isa HashMap3#2 */
438 type_struct9
= self
->type
->resolution_table
->types
[COLOR_more_collections__HashMap3_FT2
];
439 cltype7
= type_struct9
->color
;
440 idtype8
= type_struct9
->id
;
441 if(cltype7
>= p2
->type
->table_size
) {
444 var6
= p2
->type
->type_table
[cltype7
] == idtype8
;
447 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Cast failed", "lib/more_collections.nit", 70);
453 var10
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_more_collections__HashMap3__level1
]))(self
) /* level1 on <self:HashMap3[Object, Object, Object, nullable Object]>*/;
455 var11
= ((short int (*)(val
*, val
*))(var_level1
->class->vft
[COLOR_abstract_collection__MapRead__has_key
]))(var_level1
, var_k1
) /* has_key on <var_level1:HashMap[Object, HashMap2[Object, Object, nullable Object]]>*/;
463 var14
= ((val
* (*)(val
*, val
*))(var_level1
->class->vft
[COLOR_abstract_collection__MapRead___91d_93d
]))(var_level1
, var_k1
) /* [] on <var_level1:HashMap[Object, HashMap2[Object, Object, nullable Object]]>*/;
465 var15
= ((val
* (*)(val
*, val
*, val
*))(var_level2
->class->vft
[COLOR_more_collections__HashMap2___91d_93d
]))(var_level2
, var_k2
, var_k3
) /* [] on <var_level2:HashMap2[Object, Object, nullable Object]>*/;
471 /* method more_collections#HashMap3#[] for (self: Object, Object, Object, Object): nullable Object */
472 val
* VIRTUAL_more_collections__HashMap3___91d_93d(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
473 val
* var
/* : nullable Object */;
474 val
* var1
/* : nullable Object */;
475 var1
= more_collections__HashMap3___91d_93d(self
, p0
, p1
, p2
);
480 /* method more_collections#HashMap3#[]= for (self: HashMap3[Object, Object, Object, nullable Object], Object, Object, Object, nullable Object) */
481 void more_collections__HashMap3___91d_93d_61d(val
* self
, val
* p0
, val
* p1
, val
* p2
, val
* p3
) {
482 short int var
/* : Bool */;
485 const struct type
* type_struct
;
486 short int var1
/* : Bool */;
489 const struct type
* type_struct4
;
490 short int var5
/* : Bool */;
493 const struct type
* type_struct8
;
494 short int var9
/* : Bool */;
497 const struct type
* type_struct12
;
498 short int is_nullable
;
499 val
* var_k1
/* var k1: Object */;
500 val
* var_k2
/* var k2: Object */;
501 val
* var_k3
/* var k3: Object */;
502 val
* var_v
/* var v: nullable Object */;
503 val
* var13
/* : HashMap[Object, HashMap2[Object, Object, nullable Object]] */;
504 val
* var_level1
/* var level1: HashMap[Object, HashMap2[Object, Object, nullable Object]] */;
505 short int var14
/* : Bool */;
506 short int var15
/* : Bool */;
507 val
* var16
/* : HashMap2[Object, Object, nullable Object] */;
508 val
* var_level2
/* var level2: HashMap2[Object, Object, nullable Object] */;
509 val
* var17
/* : nullable Object */;
510 /* Covariant cast for argument 0 (k1) <p0:Object> isa HashMap3#0 */
511 /* <p0:Object> isa HashMap3#0 */
512 type_struct
= self
->type
->resolution_table
->types
[COLOR_more_collections__HashMap3_FT0
];
513 cltype
= type_struct
->color
;
514 idtype
= type_struct
->id
;
515 if(cltype
>= p0
->type
->table_size
) {
518 var
= p0
->type
->type_table
[cltype
] == idtype
;
521 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Cast failed", "lib/more_collections.nit", 80);
524 /* Covariant cast for argument 1 (k2) <p1:Object> isa HashMap3#1 */
525 /* <p1:Object> isa HashMap3#1 */
526 type_struct4
= self
->type
->resolution_table
->types
[COLOR_more_collections__HashMap3_FT1
];
527 cltype2
= type_struct4
->color
;
528 idtype3
= type_struct4
->id
;
529 if(cltype2
>= p1
->type
->table_size
) {
532 var1
= p1
->type
->type_table
[cltype2
] == idtype3
;
535 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Cast failed", "lib/more_collections.nit", 80);
538 /* Covariant cast for argument 2 (k3) <p2:Object> isa HashMap3#2 */
539 /* <p2:Object> isa HashMap3#2 */
540 type_struct8
= self
->type
->resolution_table
->types
[COLOR_more_collections__HashMap3_FT2
];
541 cltype6
= type_struct8
->color
;
542 idtype7
= type_struct8
->id
;
543 if(cltype6
>= p2
->type
->table_size
) {
546 var5
= p2
->type
->type_table
[cltype6
] == idtype7
;
549 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Cast failed", "lib/more_collections.nit", 80);
552 /* Covariant cast for argument 3 (v) <p3:nullable Object> isa HashMap3#3 */
553 /* <p3:nullable Object> isa HashMap3#3 */
554 type_struct12
= self
->type
->resolution_table
->types
[COLOR_more_collections__HashMap3_FT3
];
555 cltype10
= type_struct12
->color
;
556 idtype11
= type_struct12
->id
;
557 is_nullable
= type_struct12
->is_nullable
;
561 if(cltype10
>= p3
->type
->table_size
) {
564 var9
= p3
->type
->type_table
[cltype10
] == idtype11
;
568 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Cast failed", "lib/more_collections.nit", 80);
575 var13
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_more_collections__HashMap3__level1
]))(self
) /* level1 on <self:HashMap3[Object, Object, Object, nullable Object]>*/;
577 var14
= ((short int (*)(val
*, val
*))(var_level1
->class->vft
[COLOR_abstract_collection__MapRead__has_key
]))(var_level1
, var_k1
) /* has_key on <var_level1:HashMap[Object, HashMap2[Object, Object, nullable Object]]>*/;
580 var16
= NEW_more_collections__HashMap2(self
->type
->resolution_table
->types
[COLOR_more_collections__HashMap2more_collections__HashMap3_FT1more_collections__HashMap3_FT2more_collections__HashMap3_FT3
]);
581 ((void (*)(val
*))(var16
->class->vft
[COLOR_more_collections__HashMap2__init
]))(var16
) /* init on <var16:HashMap2[Object, Object, nullable Object]>*/;
582 CHECK_NEW_more_collections__HashMap2(var16
);
584 ((void (*)(val
*, val
*, val
*))(var_level1
->class->vft
[COLOR_abstract_collection__Map___91d_93d_61d
]))(var_level1
, var_k1
, var_level2
) /* []= on <var_level1:HashMap[Object, HashMap2[Object, Object, nullable Object]]>*/;
586 var17
= ((val
* (*)(val
*, val
*))(var_level1
->class->vft
[COLOR_abstract_collection__MapRead___91d_93d
]))(var_level1
, var_k1
) /* [] on <var_level1:HashMap[Object, HashMap2[Object, Object, nullable Object]]>*/;
589 ((void (*)(val
*, val
*, val
*, val
*))(var_level2
->class->vft
[COLOR_more_collections__HashMap2___91d_93d_61d
]))(var_level2
, var_k2
, var_k3
, var_v
) /* []= on <var_level2:HashMap2[Object, Object, nullable Object]>*/;
592 /* method more_collections#HashMap3#[]= for (self: Object, Object, Object, Object, nullable Object) */
593 void VIRTUAL_more_collections__HashMap3___91d_93d_61d(val
* self
, val
* p0
, val
* p1
, val
* p2
, val
* p3
) {
594 more_collections__HashMap3___91d_93d_61d(self
, p0
, p1
, p2
, p3
);
597 /* method more_collections#HashMap3#init for (self: HashMap3[Object, Object, Object, nullable Object]) */
598 void more_collections__HashMap3__init(val
* self
) {
601 /* method more_collections#HashMap3#init for (self: Object) */
602 void VIRTUAL_more_collections__HashMap3__init(val
* self
) {
603 more_collections__HashMap3__init(self
);