1 #include "layout_builders.sep.0.h"
2 /* method layout_builders#Layout#ids for (self: Layout[Object]): Map[Object, Int] */
3 val
* layout_builders__Layout__ids(val
* self
) {
4 val
* var
/* : Map[Object, Int] */;
5 val
* var1
/* : Map[Object, Int] */;
6 var1
= self
->attrs
[COLOR_layout_builders__Layout___64dids
].val
; /* @ids on <self:Layout[Object]> */
8 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute @ids");
9 fprintf(stderr
, " (%s:%d)\n", "src/layout_builders.nit", 34);
16 /* method layout_builders#Layout#ids for (self: Object): Map[Object, Int] */
17 val
* VIRTUAL_layout_builders__Layout__ids(val
* self
) {
18 val
* var
/* : Map[Object, Int] */;
19 val
* var1
/* : Map[Object, Int] */;
20 var1
= layout_builders__Layout__ids(self
);
25 /* method layout_builders#Layout#ids= for (self: Layout[Object], Map[Object, Int]) */
26 void layout_builders__Layout__ids_61d(val
* self
, val
* p0
) {
27 short int var
/* : Bool */;
30 const struct type
* type_struct
;
31 const char* var_class_name
;
32 /* Covariant cast for argument 0 (ids) <p0:Map[Object, Int]> isa Map[Layout#0, Int] */
33 /* <p0:Map[Object, Int]> isa Map[Layout#0, Int] */
34 type_struct
= self
->type
->resolution_table
->types
[COLOR_abstract_collection__Maplayout_builders__Layout_FT0kernel__Int
];
35 cltype
= type_struct
->color
;
36 idtype
= type_struct
->id
;
37 if(cltype
>= p0
->type
->table_size
) {
40 var
= p0
->type
->type_table
[cltype
] == idtype
;
43 var_class_name
= p0
== NULL ?
"null" : p0
->type
->name
;
44 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "Map[Layout#0, Int]", var_class_name
);
45 fprintf(stderr
, " (%s:%d)\n", "src/layout_builders.nit", 34);
48 self
->attrs
[COLOR_layout_builders__Layout___64dids
].val
= p0
; /* @ids on <self:Layout[Object]> */
51 /* method layout_builders#Layout#ids= for (self: Object, Map[Object, Int]) */
52 void VIRTUAL_layout_builders__Layout__ids_61d(val
* self
, val
* p0
) {
53 layout_builders__Layout__ids_61d(self
, p0
);
56 /* method layout_builders#Layout#pos for (self: Layout[Object]): Map[Object, Int] */
57 val
* layout_builders__Layout__pos(val
* self
) {
58 val
* var
/* : Map[Object, Int] */;
59 val
* var1
/* : Map[Object, Int] */;
60 var1
= self
->attrs
[COLOR_layout_builders__Layout___64dpos
].val
; /* @pos on <self:Layout[Object]> */
62 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute @pos");
63 fprintf(stderr
, " (%s:%d)\n", "src/layout_builders.nit", 36);
70 /* method layout_builders#Layout#pos for (self: Object): Map[Object, Int] */
71 val
* VIRTUAL_layout_builders__Layout__pos(val
* self
) {
72 val
* var
/* : Map[Object, Int] */;
73 val
* var1
/* : Map[Object, Int] */;
74 var1
= layout_builders__Layout__pos(self
);
79 /* method layout_builders#Layout#pos= for (self: Layout[Object], Map[Object, Int]) */
80 void layout_builders__Layout__pos_61d(val
* self
, val
* p0
) {
81 short int var
/* : Bool */;
84 const struct type
* type_struct
;
85 const char* var_class_name
;
86 /* Covariant cast for argument 0 (pos) <p0:Map[Object, Int]> isa Map[Layout#0, Int] */
87 /* <p0:Map[Object, Int]> isa Map[Layout#0, Int] */
88 type_struct
= self
->type
->resolution_table
->types
[COLOR_abstract_collection__Maplayout_builders__Layout_FT0kernel__Int
];
89 cltype
= type_struct
->color
;
90 idtype
= type_struct
->id
;
91 if(cltype
>= p0
->type
->table_size
) {
94 var
= p0
->type
->type_table
[cltype
] == idtype
;
97 var_class_name
= p0
== NULL ?
"null" : p0
->type
->name
;
98 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "Map[Layout#0, Int]", var_class_name
);
99 fprintf(stderr
, " (%s:%d)\n", "src/layout_builders.nit", 36);
102 self
->attrs
[COLOR_layout_builders__Layout___64dpos
].val
= p0
; /* @pos on <self:Layout[Object]> */
105 /* method layout_builders#Layout#pos= for (self: Object, Map[Object, Int]) */
106 void VIRTUAL_layout_builders__Layout__pos_61d(val
* self
, val
* p0
) {
107 layout_builders__Layout__pos_61d(self
, p0
);
110 /* method layout_builders#Layout#init for (self: Layout[Object]) */
111 void layout_builders__Layout__init(val
* self
) {
114 /* method layout_builders#Layout#init for (self: Object) */
115 void VIRTUAL_layout_builders__Layout__init(val
* self
) {
116 layout_builders__Layout__init(self
);
119 /* method layout_builders#PHLayout#masks for (self: PHLayout[Object, Object]): Map[Object, Int] */
120 val
* layout_builders__PHLayout__masks(val
* self
) {
121 val
* var
/* : Map[Object, Int] */;
122 val
* var1
/* : Map[Object, Int] */;
123 var1
= self
->attrs
[COLOR_layout_builders__PHLayout___64dmasks
].val
; /* @masks on <self:PHLayout[Object, Object]> */
125 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute @masks");
126 fprintf(stderr
, " (%s:%d)\n", "src/layout_builders.nit", 44);
133 /* method layout_builders#PHLayout#masks for (self: Object): Map[Object, Int] */
134 val
* VIRTUAL_layout_builders__PHLayout__masks(val
* self
) {
135 val
* var
/* : Map[Object, Int] */;
136 val
* var1
/* : Map[Object, Int] */;
137 var1
= layout_builders__PHLayout__masks(self
);
142 /* method layout_builders#PHLayout#masks= for (self: PHLayout[Object, Object], Map[Object, Int]) */
143 void layout_builders__PHLayout__masks_61d(val
* self
, val
* p0
) {
144 short int var
/* : Bool */;
147 const struct type
* type_struct
;
148 const char* var_class_name
;
149 /* Covariant cast for argument 0 (masks) <p0:Map[Object, Int]> isa Map[PHLayout#0, Int] */
150 /* <p0:Map[Object, Int]> isa Map[PHLayout#0, Int] */
151 type_struct
= self
->type
->resolution_table
->types
[COLOR_abstract_collection__Maplayout_builders__PHLayout_FT0kernel__Int
];
152 cltype
= type_struct
->color
;
153 idtype
= type_struct
->id
;
154 if(cltype
>= p0
->type
->table_size
) {
157 var
= p0
->type
->type_table
[cltype
] == idtype
;
160 var_class_name
= p0
== NULL ?
"null" : p0
->type
->name
;
161 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "Map[PHLayout#0, Int]", var_class_name
);
162 fprintf(stderr
, " (%s:%d)\n", "src/layout_builders.nit", 44);
165 self
->attrs
[COLOR_layout_builders__PHLayout___64dmasks
].val
= p0
; /* @masks on <self:PHLayout[Object, Object]> */
168 /* method layout_builders#PHLayout#masks= for (self: Object, Map[Object, Int]) */
169 void VIRTUAL_layout_builders__PHLayout__masks_61d(val
* self
, val
* p0
) {
170 layout_builders__PHLayout__masks_61d(self
, p0
);
173 /* method layout_builders#PHLayout#hashes for (self: PHLayout[Object, Object]): Map[Object, Map[Object, Int]] */
174 val
* layout_builders__PHLayout__hashes(val
* self
) {
175 val
* var
/* : Map[Object, Map[Object, Int]] */;
176 val
* var1
/* : Map[Object, Map[Object, Int]] */;
177 var1
= self
->attrs
[COLOR_layout_builders__PHLayout___64dhashes
].val
; /* @hashes on <self:PHLayout[Object, Object]> */
179 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute @hashes");
180 fprintf(stderr
, " (%s:%d)\n", "src/layout_builders.nit", 46);
187 /* method layout_builders#PHLayout#hashes for (self: Object): Map[Object, Map[Object, Int]] */
188 val
* VIRTUAL_layout_builders__PHLayout__hashes(val
* self
) {
189 val
* var
/* : Map[Object, Map[Object, Int]] */;
190 val
* var1
/* : Map[Object, Map[Object, Int]] */;
191 var1
= layout_builders__PHLayout__hashes(self
);
196 /* method layout_builders#PHLayout#hashes= for (self: PHLayout[Object, Object], Map[Object, Map[Object, Int]]) */
197 void layout_builders__PHLayout__hashes_61d(val
* self
, val
* p0
) {
198 short int var
/* : Bool */;
201 const struct type
* type_struct
;
202 const char* var_class_name
;
203 /* Covariant cast for argument 0 (hashes) <p0:Map[Object, Map[Object, Int]]> isa Map[PHLayout#0, Map[PHLayout#1, Int]] */
204 /* <p0:Map[Object, Map[Object, Int]]> isa Map[PHLayout#0, Map[PHLayout#1, Int]] */
205 type_struct
= self
->type
->resolution_table
->types
[COLOR_abstract_collection__Maplayout_builders__PHLayout_FT0abstract_collection__Maplayout_builders__PHLayout_FT1kernel__Int
];
206 cltype
= type_struct
->color
;
207 idtype
= type_struct
->id
;
208 if(cltype
>= p0
->type
->table_size
) {
211 var
= p0
->type
->type_table
[cltype
] == idtype
;
214 var_class_name
= p0
== NULL ?
"null" : p0
->type
->name
;
215 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "Map[PHLayout#0, Map[PHLayout#1, Int]]", var_class_name
);
216 fprintf(stderr
, " (%s:%d)\n", "src/layout_builders.nit", 46);
219 self
->attrs
[COLOR_layout_builders__PHLayout___64dhashes
].val
= p0
; /* @hashes on <self:PHLayout[Object, Object]> */
222 /* method layout_builders#PHLayout#hashes= for (self: Object, Map[Object, Map[Object, Int]]) */
223 void VIRTUAL_layout_builders__PHLayout__hashes_61d(val
* self
, val
* p0
) {
224 layout_builders__PHLayout__hashes_61d(self
, p0
);
227 /* method layout_builders#PHLayout#init for (self: PHLayout[Object, Object]) */
228 void layout_builders__PHLayout__init(val
* self
) {
229 ((void (*)(val
*))(self
->class->vft
[COLOR_layout_builders__Layout__init
]))(self
) /* init on <self:PHLayout[Object, Object]>*/;
232 /* method layout_builders#PHLayout#init for (self: Object) */
233 void VIRTUAL_layout_builders__PHLayout__init(val
* self
) {
234 layout_builders__PHLayout__init(self
);
237 /* method layout_builders#TypingLayoutBuilder#build_layout for (self: TypingLayoutBuilder[Object], Set[Object]): Layout[Object] */
238 val
* layout_builders__TypingLayoutBuilder__build_layout(val
* self
, val
* p0
) {
239 val
* var
/* : Layout[Object] */;
240 short int var1
/* : Bool */;
243 const struct type
* type_struct
;
244 const char* var_class_name
;
245 const char* var_class_name2
;
246 /* Covariant cast for argument 0 (elements) <p0:Set[Object]> isa Set[TypingLayoutBuilder#0] */
247 /* <p0:Set[Object]> isa Set[TypingLayoutBuilder#0] */
248 type_struct
= self
->type
->resolution_table
->types
[COLOR_abstract_collection__Setlayout_builders__TypingLayoutBuilder_FT0
];
249 cltype
= type_struct
->color
;
250 idtype
= type_struct
->id
;
251 if(cltype
>= p0
->type
->table_size
) {
254 var1
= p0
->type
->type_table
[cltype
] == idtype
;
257 var_class_name
= p0
== NULL ?
"null" : p0
->type
->name
;
258 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "Set[TypingLayoutBuilder#0]", var_class_name
);
259 fprintf(stderr
, " (%s:%d)\n", "src/layout_builders.nit", 54);
262 var_class_name2
= self
== NULL ?
"null" : self
->type
->name
;
263 fprintf(stderr
, "Runtime error: Abstract method `%s` called on `%s`", "build_layout", var_class_name2
);
264 fprintf(stderr
, " (%s:%d)\n", "src/layout_builders.nit", 54);
269 /* method layout_builders#TypingLayoutBuilder#build_layout for (self: Object, Set[Object]): Layout[Object] */
270 val
* VIRTUAL_layout_builders__TypingLayoutBuilder__build_layout(val
* self
, val
* p0
) {
271 val
* var
/* : Layout[Object] */;
272 val
* var1
/* : Layout[Object] */;
273 var1
= layout_builders__TypingLayoutBuilder__build_layout(self
, p0
);
278 /* method layout_builders#TypingLayoutBuilder#poset for (self: TypingLayoutBuilder[Object]): nullable POSet[Object] */
279 val
* layout_builders__TypingLayoutBuilder__poset(val
* self
) {
280 val
* var
/* : nullable POSet[Object] */;
281 const char* var_class_name
;
282 var_class_name
= self
== NULL ?
"null" : self
->type
->name
;
283 fprintf(stderr
, "Runtime error: Abstract method `%s` called on `%s`", "poset", var_class_name
);
284 fprintf(stderr
, " (%s:%d)\n", "src/layout_builders.nit", 57);
289 /* method layout_builders#TypingLayoutBuilder#poset for (self: Object): nullable POSet[Object] */
290 val
* VIRTUAL_layout_builders__TypingLayoutBuilder__poset(val
* self
) {
291 val
* var
/* : nullable POSet[Object] */;
292 val
* var1
/* : nullable POSet[Object] */;
293 var1
= layout_builders__TypingLayoutBuilder__poset(self
);
298 /* method layout_builders#PropertyLayoutBuilder#build_layout for (self: PropertyLayoutBuilder[PropertyLayoutElement], Map[MClass, Set[PropertyLayoutElement]]): Layout[PropertyLayoutElement] */
299 val
* layout_builders__PropertyLayoutBuilder__build_layout(val
* self
, val
* p0
) {
300 val
* var
/* : Layout[PropertyLayoutElement] */;
301 short int var1
/* : Bool */;
304 const struct type
* type_struct
;
305 const char* var_class_name
;
306 const char* var_class_name2
;
307 /* Covariant cast for argument 0 (elements) <p0:Map[MClass, Set[PropertyLayoutElement]]> isa Map[MClass, Set[PropertyLayoutBuilder#0]] */
308 /* <p0:Map[MClass, Set[PropertyLayoutElement]]> isa Map[MClass, Set[PropertyLayoutBuilder#0]] */
309 type_struct
= self
->type
->resolution_table
->types
[COLOR_abstract_collection__Mapmodel__MClassabstract_collection__Setlayout_builders__PropertyLayoutBuilder_FT0
];
310 cltype
= type_struct
->color
;
311 idtype
= type_struct
->id
;
312 if(cltype
>= p0
->type
->table_size
) {
315 var1
= p0
->type
->type_table
[cltype
] == idtype
;
318 var_class_name
= p0
== NULL ?
"null" : p0
->type
->name
;
319 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "Map[MClass, Set[PropertyLayoutBuilder#0]]", var_class_name
);
320 fprintf(stderr
, " (%s:%d)\n", "src/layout_builders.nit", 64);
323 var_class_name2
= self
== NULL ?
"null" : self
->type
->name
;
324 fprintf(stderr
, "Runtime error: Abstract method `%s` called on `%s`", "build_layout", var_class_name2
);
325 fprintf(stderr
, " (%s:%d)\n", "src/layout_builders.nit", 64);
330 /* method layout_builders#PropertyLayoutBuilder#build_layout for (self: Object, Map[MClass, Set[PropertyLayoutElement]]): Layout[PropertyLayoutElement] */
331 val
* VIRTUAL_layout_builders__PropertyLayoutBuilder__build_layout(val
* self
, val
* p0
) {
332 val
* var
/* : Layout[PropertyLayoutElement] */;
333 val
* var1
/* : Layout[PropertyLayoutElement] */;
334 var1
= layout_builders__PropertyLayoutBuilder__build_layout(self
, p0
);
339 /* method layout_builders#ResolutionLayoutBuilder#build_layout for (self: ResolutionLayoutBuilder, Map[MClassType, Set[MType]]): Layout[MType] */
340 val
* layout_builders__ResolutionLayoutBuilder__build_layout(val
* self
, val
* p0
) {
341 val
* var
/* : Layout[MType] */;
342 const char* var_class_name
;
343 var_class_name
= self
== NULL ?
"null" : self
->type
->name
;
344 fprintf(stderr
, "Runtime error: Abstract method `%s` called on `%s`", "build_layout", var_class_name
);
345 fprintf(stderr
, " (%s:%d)\n", "src/layout_builders.nit", 84);
350 /* method layout_builders#ResolutionLayoutBuilder#build_layout for (self: Object, Map[MClassType, Set[MType]]): Layout[MType] */
351 val
* VIRTUAL_layout_builders__ResolutionLayoutBuilder__build_layout(val
* self
, val
* p0
) {
352 val
* var
/* : Layout[MType] */;
353 val
* var1
/* : Layout[MType] */;
354 var1
= layout_builders__ResolutionLayoutBuilder__build_layout(self
, p0
);
359 /* method layout_builders#POSetBuilder#mmodule for (self: POSetBuilder[Object]): MModule */
360 val
* layout_builders__POSetBuilder__mmodule(val
* self
) {
361 val
* var
/* : MModule */;
362 val
* var1
/* : MModule */;
363 var1
= self
->attrs
[COLOR_layout_builders__POSetBuilder___64dmmodule
].val
; /* @mmodule on <self:POSetBuilder[Object]> */
365 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute @mmodule");
366 fprintf(stderr
, " (%s:%d)\n", "src/layout_builders.nit", 94);
373 /* method layout_builders#POSetBuilder#mmodule for (self: Object): MModule */
374 val
* VIRTUAL_layout_builders__POSetBuilder__mmodule(val
* self
) {
375 val
* var
/* : MModule */;
376 val
* var1
/* : MModule */;
377 var1
= layout_builders__POSetBuilder__mmodule(self
);
382 /* method layout_builders#POSetBuilder#mmodule= for (self: POSetBuilder[Object], MModule) */
383 void layout_builders__POSetBuilder__mmodule_61d(val
* self
, val
* p0
) {
384 self
->attrs
[COLOR_layout_builders__POSetBuilder___64dmmodule
].val
= p0
; /* @mmodule on <self:POSetBuilder[Object]> */
387 /* method layout_builders#POSetBuilder#mmodule= for (self: Object, MModule) */
388 void VIRTUAL_layout_builders__POSetBuilder__mmodule_61d(val
* self
, val
* p0
) {
389 layout_builders__POSetBuilder__mmodule_61d(self
, p0
);
392 /* method layout_builders#POSetBuilder#init for (self: POSetBuilder[Object], MModule) */
393 void layout_builders__POSetBuilder__init(val
* self
, val
* p0
) {
394 val
* var_mmodule
/* var mmodule: MModule */;
396 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_layout_builders__POSetBuilder__mmodule_61d
]))(self
, var_mmodule
) /* mmodule= on <self:POSetBuilder[Object]>*/;
399 /* method layout_builders#POSetBuilder#init for (self: Object, MModule) */
400 void VIRTUAL_layout_builders__POSetBuilder__init(val
* self
, val
* p0
) {
401 layout_builders__POSetBuilder__init(self
, p0
);
404 /* method layout_builders#POSetBuilder#build_poset for (self: POSetBuilder[Object], Set[Object]): POSet[Object] */
405 val
* layout_builders__POSetBuilder__build_poset(val
* self
, val
* p0
) {
406 val
* var
/* : POSet[Object] */;
407 short int var1
/* : Bool */;
410 const struct type
* type_struct
;
411 const char* var_class_name
;
412 const char* var_class_name2
;
413 /* Covariant cast for argument 0 (elements) <p0:Set[Object]> isa Set[POSetBuilder#0] */
414 /* <p0:Set[Object]> isa Set[POSetBuilder#0] */
415 type_struct
= self
->type
->resolution_table
->types
[COLOR_abstract_collection__Setlayout_builders__POSetBuilder_FT0
];
416 cltype
= type_struct
->color
;
417 idtype
= type_struct
->id
;
418 if(cltype
>= p0
->type
->table_size
) {
421 var1
= p0
->type
->type_table
[cltype
] == idtype
;
424 var_class_name
= p0
== NULL ?
"null" : p0
->type
->name
;
425 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "Set[POSetBuilder#0]", var_class_name
);
426 fprintf(stderr
, " (%s:%d)\n", "src/layout_builders.nit", 96);
429 var_class_name2
= self
== NULL ?
"null" : self
->type
->name
;
430 fprintf(stderr
, "Runtime error: Abstract method `%s` called on `%s`", "build_poset", var_class_name2
);
431 fprintf(stderr
, " (%s:%d)\n", "src/layout_builders.nit", 96);
436 /* method layout_builders#POSetBuilder#build_poset for (self: Object, Set[Object]): POSet[Object] */
437 val
* VIRTUAL_layout_builders__POSetBuilder__build_poset(val
* self
, val
* p0
) {
438 val
* var
/* : POSet[Object] */;
439 val
* var1
/* : POSet[Object] */;
440 var1
= layout_builders__POSetBuilder__build_poset(self
, p0
);
445 /* method layout_builders#MTypePOSetBuilder#build_poset for (self: MTypePOSetBuilder, Set[MType]): POSet[MType] */
446 val
* layout_builders__MTypePOSetBuilder__build_poset(val
* self
, val
* p0
) {
447 val
* var
/* : POSet[MType] */;
448 short int var1
/* : Bool */;
451 const char* var_class_name
;
452 val
* var_elements
/* var elements: Set[MType] */;
453 val
* var2
/* : POSet[MType] */;
454 val
* var_poset
/* var poset: POSet[MType] */;
455 val
* var3
/* : Iterator[nullable Object] */;
456 short int var4
/* : Bool */;
457 val
* var5
/* : nullable Object */;
458 val
* var_e
/* var e: MType */;
459 val
* var6
/* : POSetElement[Object] */;
460 val
* var7
/* : Iterator[nullable Object] */;
461 short int var8
/* : Bool */;
462 val
* var9
/* : nullable Object */;
463 val
* var_o
/* var o: MType */;
464 short int var10
/* : Bool */;
465 val
* var11
/* : MModule */;
466 val
* var12
/* : null */;
467 short int var13
/* : Bool */;
468 /* Covariant cast for argument 0 (elements) <p0:Set[MType]> isa Set[POSetBuilder#0] */
469 /* <p0:Set[MType]> isa Set[POSetBuilder#0] */
470 var1
= 1; /* easy <p0:Set[MType]> isa Set[POSetBuilder#0]*/
472 var_class_name
= p0
== NULL ?
"null" : p0
->type
->name
;
473 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "Set[POSetBuilder#0]", var_class_name
);
474 fprintf(stderr
, " (%s:%d)\n", "src/layout_builders.nit", 104);
478 var2
= NEW_poset__POSet(&type_poset__POSetmodel__MType
);
479 ((void (*)(val
*))(var2
->class->vft
[COLOR_poset__POSet__init
]))(var2
) /* init on <var2:POSet[MType]>*/;
480 CHECK_NEW_poset__POSet(var2
);
482 var3
= ((val
* (*)(val
*))(var_elements
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var_elements
) /* iterator on <var_elements:Set[MType]>*/;
484 var4
= ((short int (*)(val
*))(var3
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var3
) /* is_ok on <var3:Iterator[nullable Object]>*/;
486 var5
= ((val
* (*)(val
*))(var3
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var3
) /* item on <var3:Iterator[nullable Object]>*/;
488 var6
= ((val
* (*)(val
*, val
*))(var_poset
->class->vft
[COLOR_poset__POSet__add_node
]))(var_poset
, var_e
) /* add_node on <var_poset:POSet[MType]>*/;
490 var7
= ((val
* (*)(val
*))(var_elements
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var_elements
) /* iterator on <var_elements:Set[MType]>*/;
492 var8
= ((short int (*)(val
*))(var7
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var7
) /* is_ok on <var7:Iterator[nullable Object]>*/;
494 var9
= ((val
* (*)(val
*))(var7
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var7
) /* item on <var7:Iterator[nullable Object]>*/;
496 var10
= ((short int (*)(val
*, val
*))(var_e
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var_e
, var_o
) /* == on <var_e:MType>*/;
501 var11
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_layout_builders__POSetBuilder__mmodule
]))(self
) /* mmodule on <self:MTypePOSetBuilder>*/;
503 var13
= ((short int (*)(val
*, val
*, val
*, val
*))(var_e
->class->vft
[COLOR_model__MType__is_subtype
]))(var_e
, var11
, var12
, var_o
) /* is_subtype on <var_e:MType>*/;
505 ((void (*)(val
*, val
*, val
*))(var_poset
->class->vft
[COLOR_poset__POSet__add_edge
]))(var_poset
, var_e
, var_o
) /* add_edge on <var_poset:POSet[MType]>*/;
508 CONTINUE_label
: (void)0;
509 ((void (*)(val
*))(var7
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var7
) /* next on <var7:Iterator[nullable Object]>*/;
511 BREAK_label
: (void)0;
512 CONTINUE_label14
: (void)0;
513 ((void (*)(val
*))(var3
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var3
) /* next on <var3:Iterator[nullable Object]>*/;
515 BREAK_label14
: (void)0;
521 /* method layout_builders#MTypePOSetBuilder#build_poset for (self: Object, Set[Object]): POSet[Object] */
522 val
* VIRTUAL_layout_builders__MTypePOSetBuilder__build_poset(val
* self
, val
* p0
) {
523 val
* var
/* : POSet[Object] */;
524 val
* var1
/* : POSet[MType] */;
525 var1
= layout_builders__MTypePOSetBuilder__build_poset(self
, p0
);
530 /* method layout_builders#MClassPOSetBuilder#build_poset for (self: MClassPOSetBuilder, Set[MClass]): POSet[MClass] */
531 val
* layout_builders__MClassPOSetBuilder__build_poset(val
* self
, val
* p0
) {
532 val
* var
/* : POSet[MClass] */;
533 short int var1
/* : Bool */;
536 const char* var_class_name
;
537 val
* var_elements
/* var elements: Set[MClass] */;
538 val
* var2
/* : MModule */;
539 val
* var3
/* : POSet[MClass] */;
540 /* Covariant cast for argument 0 (elements) <p0:Set[MClass]> isa Set[POSetBuilder#0] */
541 /* <p0:Set[MClass]> isa Set[POSetBuilder#0] */
542 var1
= 1; /* easy <p0:Set[MClass]> isa Set[POSetBuilder#0]*/
544 var_class_name
= p0
== NULL ?
"null" : p0
->type
->name
;
545 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "Set[POSetBuilder#0]", var_class_name
);
546 fprintf(stderr
, " (%s:%d)\n", "src/layout_builders.nit", 123);
550 var2
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_layout_builders__POSetBuilder__mmodule
]))(self
) /* mmodule on <self:MClassPOSetBuilder>*/;
551 var3
= ((val
* (*)(val
*))(var2
->class->vft
[COLOR_model__MModule__flatten_mclass_hierarchy
]))(var2
) /* flatten_mclass_hierarchy on <var2:MModule>*/;
557 /* method layout_builders#MClassPOSetBuilder#build_poset for (self: Object, Set[Object]): POSet[Object] */
558 val
* VIRTUAL_layout_builders__MClassPOSetBuilder__build_poset(val
* self
, val
* p0
) {
559 val
* var
/* : POSet[Object] */;
560 val
* var1
/* : POSet[MClass] */;
561 var1
= layout_builders__MClassPOSetBuilder__build_poset(self
, p0
);
566 /* method layout_builders#TypingBMizer#mmodule for (self: TypingBMizer[Object]): MModule */
567 val
* layout_builders__TypingBMizer__mmodule(val
* self
) {
568 val
* var
/* : MModule */;
569 val
* var1
/* : MModule */;
570 var1
= self
->attrs
[COLOR_layout_builders__TypingBMizer___64dmmodule
].val
; /* @mmodule on <self:TypingBMizer[Object]> */
572 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute @mmodule");
573 fprintf(stderr
, " (%s:%d)\n", "src/layout_builders.nit", 132);
580 /* method layout_builders#TypingBMizer#mmodule for (self: Object): MModule */
581 val
* VIRTUAL_layout_builders__TypingBMizer__mmodule(val
* self
) {
582 val
* var
/* : MModule */;
583 val
* var1
/* : MModule */;
584 var1
= layout_builders__TypingBMizer__mmodule(self
);
589 /* method layout_builders#TypingBMizer#mmodule= for (self: TypingBMizer[Object], MModule) */
590 void layout_builders__TypingBMizer__mmodule_61d(val
* self
, val
* p0
) {
591 self
->attrs
[COLOR_layout_builders__TypingBMizer___64dmmodule
].val
= p0
; /* @mmodule on <self:TypingBMizer[Object]> */
594 /* method layout_builders#TypingBMizer#mmodule= for (self: Object, MModule) */
595 void VIRTUAL_layout_builders__TypingBMizer__mmodule_61d(val
* self
, val
* p0
) {
596 layout_builders__TypingBMizer__mmodule_61d(self
, p0
);
599 /* method layout_builders#TypingBMizer#poset_builder for (self: TypingBMizer[Object]): POSetBuilder[Object] */
600 val
* layout_builders__TypingBMizer__poset_builder(val
* self
) {
601 val
* var
/* : POSetBuilder[Object] */;
602 val
* var1
/* : POSetBuilder[Object] */;
603 var1
= self
->attrs
[COLOR_layout_builders__TypingBMizer___64dposet_builder
].val
; /* @poset_builder on <self:TypingBMizer[Object]> */
605 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute @poset_builder");
606 fprintf(stderr
, " (%s:%d)\n", "src/layout_builders.nit", 133);
613 /* method layout_builders#TypingBMizer#poset_builder for (self: Object): POSetBuilder[Object] */
614 val
* VIRTUAL_layout_builders__TypingBMizer__poset_builder(val
* self
) {
615 val
* var
/* : POSetBuilder[Object] */;
616 val
* var1
/* : POSetBuilder[Object] */;
617 var1
= layout_builders__TypingBMizer__poset_builder(self
);
622 /* method layout_builders#TypingBMizer#poset_builder= for (self: TypingBMizer[Object], POSetBuilder[Object]) */
623 void layout_builders__TypingBMizer__poset_builder_61d(val
* self
, val
* p0
) {
624 short int var
/* : Bool */;
627 const struct type
* type_struct
;
628 const char* var_class_name
;
629 /* Covariant cast for argument 0 (poset_builder) <p0:POSetBuilder[Object]> isa POSetBuilder[TypingBMizer#0] */
630 /* <p0:POSetBuilder[Object]> isa POSetBuilder[TypingBMizer#0] */
631 type_struct
= self
->type
->resolution_table
->types
[COLOR_layout_builders__POSetBuilderlayout_builders__TypingBMizer_FT0
];
632 cltype
= type_struct
->color
;
633 idtype
= type_struct
->id
;
634 if(cltype
>= p0
->type
->table_size
) {
637 var
= p0
->type
->type_table
[cltype
] == idtype
;
640 var_class_name
= p0
== NULL ?
"null" : p0
->type
->name
;
641 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "POSetBuilder[TypingBMizer#0]", var_class_name
);
642 fprintf(stderr
, " (%s:%d)\n", "src/layout_builders.nit", 133);
645 self
->attrs
[COLOR_layout_builders__TypingBMizer___64dposet_builder
].val
= p0
; /* @poset_builder on <self:TypingBMizer[Object]> */
648 /* method layout_builders#TypingBMizer#poset_builder= for (self: Object, POSetBuilder[Object]) */
649 void VIRTUAL_layout_builders__TypingBMizer__poset_builder_61d(val
* self
, val
* p0
) {
650 layout_builders__TypingBMizer__poset_builder_61d(self
, p0
);
653 /* method layout_builders#TypingBMizer#poset_cache for (self: TypingBMizer[Object]): nullable POSet[Object] */
654 val
* layout_builders__TypingBMizer__poset_cache(val
* self
) {
655 val
* var
/* : nullable POSet[Object] */;
656 val
* var1
/* : nullable POSet[Object] */;
657 var1
= self
->attrs
[COLOR_layout_builders__TypingBMizer___64dposet_cache
].val
; /* @poset_cache on <self:TypingBMizer[Object]> */
662 /* method layout_builders#TypingBMizer#poset_cache for (self: Object): nullable POSet[Object] */
663 val
* VIRTUAL_layout_builders__TypingBMizer__poset_cache(val
* self
) {
664 val
* var
/* : nullable POSet[Object] */;
665 val
* var1
/* : nullable POSet[Object] */;
666 var1
= layout_builders__TypingBMizer__poset_cache(self
);
671 /* method layout_builders#TypingBMizer#poset_cache= for (self: TypingBMizer[Object], nullable POSet[Object]) */
672 void layout_builders__TypingBMizer__poset_cache_61d(val
* self
, val
* p0
) {
673 short int var
/* : Bool */;
676 const struct type
* type_struct
;
677 const char* var_class_name
;
678 /* Covariant cast for argument 0 (poset_cache) <p0:nullable POSet[Object]> isa nullable POSet[TypingBMizer#0] */
679 /* <p0:nullable POSet[Object]> isa nullable POSet[TypingBMizer#0] */
680 type_struct
= self
->type
->resolution_table
->types
[COLOR_poset__POSetlayout_builders__TypingBMizer_FT0
];
681 cltype
= type_struct
->color
;
682 idtype
= type_struct
->id
;
686 if(cltype
>= p0
->type
->table_size
) {
689 var
= p0
->type
->type_table
[cltype
] == idtype
;
693 var_class_name
= p0
== NULL ?
"null" : p0
->type
->name
;
694 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable POSet[TypingBMizer#0]", var_class_name
);
695 fprintf(stderr
, " (%s:%d)\n", "src/layout_builders.nit", 134);
698 self
->attrs
[COLOR_layout_builders__TypingBMizer___64dposet_cache
].val
= p0
; /* @poset_cache on <self:TypingBMizer[Object]> */
701 /* method layout_builders#TypingBMizer#poset_cache= for (self: Object, nullable POSet[Object]) */
702 void VIRTUAL_layout_builders__TypingBMizer__poset_cache_61d(val
* self
, val
* p0
) {
703 layout_builders__TypingBMizer__poset_cache_61d(self
, p0
);
706 /* method layout_builders#TypingBMizer#init for (self: TypingBMizer[Object], MModule, POSetBuilder[Object]) */
707 void layout_builders__TypingBMizer__init(val
* self
, val
* p0
, val
* p1
) {
708 short int var
/* : Bool */;
711 const struct type
* type_struct
;
712 const char* var_class_name
;
713 val
* var_mmodule
/* var mmodule: MModule */;
714 val
* var_poset_builder
/* var poset_builder: POSetBuilder[Object] */;
715 /* Covariant cast for argument 1 (poset_builder) <p1:POSetBuilder[Object]> isa POSetBuilder[TypingBMizer#0] */
716 /* <p1:POSetBuilder[Object]> isa POSetBuilder[TypingBMizer#0] */
717 type_struct
= self
->type
->resolution_table
->types
[COLOR_layout_builders__POSetBuilderlayout_builders__TypingBMizer_FT0
];
718 cltype
= type_struct
->color
;
719 idtype
= type_struct
->id
;
720 if(cltype
>= p1
->type
->table_size
) {
723 var
= p1
->type
->type_table
[cltype
] == idtype
;
726 var_class_name
= p1
== NULL ?
"null" : p1
->type
->name
;
727 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "POSetBuilder[TypingBMizer#0]", var_class_name
);
728 fprintf(stderr
, " (%s:%d)\n", "src/layout_builders.nit", 136);
732 var_poset_builder
= p1
;
733 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_layout_builders__TypingBMizer__mmodule_61d
]))(self
, var_mmodule
) /* mmodule= on <self:TypingBMizer[Object]>*/;
734 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_layout_builders__TypingBMizer__poset_builder_61d
]))(self
, var_poset_builder
) /* poset_builder= on <self:TypingBMizer[Object]>*/;
737 /* method layout_builders#TypingBMizer#init for (self: Object, MModule, POSetBuilder[Object]) */
738 void VIRTUAL_layout_builders__TypingBMizer__init(val
* self
, val
* p0
, val
* p1
) {
739 layout_builders__TypingBMizer__init(self
, p0
, p1
);
742 /* method layout_builders#TypingBMizer#poset for (self: TypingBMizer[Object]): nullable POSet[Object] */
743 val
* layout_builders__TypingBMizer__poset(val
* self
) {
744 val
* var
/* : nullable POSet[Object] */;
745 val
* var1
/* : nullable POSet[Object] */;
746 var1
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_layout_builders__TypingBMizer__poset_cache
]))(self
) /* poset_cache on <self:TypingBMizer[Object]>*/;
752 /* method layout_builders#TypingBMizer#poset for (self: Object): nullable POSet[Object] */
753 val
* VIRTUAL_layout_builders__TypingBMizer__poset(val
* self
) {
754 val
* var
/* : nullable POSet[Object] */;
755 val
* var1
/* : nullable POSet[Object] */;
756 var1
= layout_builders__TypingBMizer__poset(self
);
761 /* method layout_builders#TypingBMizer#build_layout for (self: TypingBMizer[Object], Set[Object]): Layout[Object] */
762 val
* layout_builders__TypingBMizer__build_layout(val
* self
, val
* p0
) {
763 val
* var
/* : Layout[Object] */;
764 short int var1
/* : Bool */;
767 const struct type
* type_struct
;
768 const char* var_class_name
;
769 val
* var_elements
/* var elements: Set[Object] */;
770 val
* var2
/* : Layout[Object] */;
771 val
* var_result
/* var result: Layout[Object] */;
772 val
* var3
/* : HashMap[Object, Int] */;
773 val
* var_ids
/* var ids: HashMap[Object, Int] */;
774 val
* var4
/* : POSetBuilder[Object] */;
775 val
* var5
/* : POSet[Object] */;
776 val
* var6
/* : nullable POSet[Object] */;
777 val
* var7
/* : Array[nullable Object] */;
778 val
* var_lin
/* var lin: Array[Object] */;
779 val
* var8
/* : nullable POSet[Object] */;
780 val
* var9
/* : Iterator[nullable Object] */;
781 short int var10
/* : Bool */;
782 val
* var11
/* : nullable Object */;
783 val
* var_element
/* var element: Object */;
784 long var12
/* : Int */;
785 val
* var13
/* : nullable Object */;
786 /* Covariant cast for argument 0 (elements) <p0:Set[Object]> isa Set[TypingBMizer#0] */
787 /* <p0:Set[Object]> isa Set[TypingBMizer#0] */
788 type_struct
= self
->type
->resolution_table
->types
[COLOR_abstract_collection__Setlayout_builders__TypingBMizer_FT0
];
789 cltype
= type_struct
->color
;
790 idtype
= type_struct
->id
;
791 if(cltype
>= p0
->type
->table_size
) {
794 var1
= p0
->type
->type_table
[cltype
] == idtype
;
797 var_class_name
= p0
== NULL ?
"null" : p0
->type
->name
;
798 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "Set[TypingBMizer#0]", var_class_name
);
799 fprintf(stderr
, " (%s:%d)\n", "src/layout_builders.nit", 143);
803 var2
= NEW_layout_builders__Layout(self
->type
->resolution_table
->types
[COLOR_layout_builders__Layoutlayout_builders__TypingBMizer_FT0
]);
804 ((void (*)(val
*))(var2
->class->vft
[COLOR_layout_builders__Layout__init
]))(var2
) /* init on <var2:Layout[Object]>*/;
805 CHECK_NEW_layout_builders__Layout(var2
);
807 var3
= NEW_hash_collection__HashMap(self
->type
->resolution_table
->types
[COLOR_hash_collection__HashMaplayout_builders__TypingBMizer_FT0kernel__Int
]);
808 ((void (*)(val
*))(var3
->class->vft
[COLOR_hash_collection__HashMap__init
]))(var3
) /* init on <var3:HashMap[Object, Int]>*/;
809 CHECK_NEW_hash_collection__HashMap(var3
);
811 var4
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_layout_builders__TypingBMizer__poset_builder
]))(self
) /* poset_builder on <self:TypingBMizer[Object]>*/;
812 var5
= ((val
* (*)(val
*, val
*))(var4
->class->vft
[COLOR_layout_builders__POSetBuilder__build_poset
]))(var4
, var_elements
) /* build_poset on <var4:POSetBuilder[Object]>*/;
813 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_layout_builders__TypingBMizer__poset_cache_61d
]))(self
, var5
) /* poset_cache= on <self:TypingBMizer[Object]>*/;
814 var6
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_layout_builders__TypingLayoutBuilder__poset
]))(self
) /* poset on <self:TypingBMizer[Object]>*/;
816 fprintf(stderr
, "Runtime error: %s", "Reciever is null");
817 fprintf(stderr
, " (%s:%d)\n", "src/layout_builders.nit", 148);
820 var7
= ((val
* (*)(val
*))(var6
->class->vft
[COLOR_array__Collection__to_a
]))(var6
) /* to_a on <var6:nullable POSet[Object]>*/;
823 var8
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_layout_builders__TypingLayoutBuilder__poset
]))(self
) /* poset on <self:TypingBMizer[Object]>*/;
825 fprintf(stderr
, "Runtime error: %s", "Reciever is null");
826 fprintf(stderr
, " (%s:%d)\n", "src/layout_builders.nit", 149);
829 ((void (*)(val
*, val
*))(var8
->class->vft
[COLOR_sorter__AbstractSorter__sort
]))(var8
, var_lin
) /* sort on <var8:nullable POSet[Object]>*/;
831 var9
= ((val
* (*)(val
*))(var_lin
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var_lin
) /* iterator on <var_lin:Array[Object]>*/;
833 var10
= ((short int (*)(val
*))(var9
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var9
) /* is_ok on <var9:Iterator[nullable Object]>*/;
835 var11
= ((val
* (*)(val
*))(var9
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var9
) /* item on <var9:Iterator[nullable Object]>*/;
837 var12
= ((long (*)(val
*))(var_ids
->class->vft
[COLOR_abstract_collection__MapRead__length
]))(var_ids
) /* length on <var_ids:HashMap[Object, Int]>*/;
838 var13
= BOX_kernel__Int(var12
); /* autobox from Int to nullable Object */
839 ((void (*)(val
*, val
*, val
*))(var_ids
->class->vft
[COLOR_abstract_collection__Map___91d_93d_61d
]))(var_ids
, var_element
, var13
) /* []= on <var_ids:HashMap[Object, Int]>*/;
840 CONTINUE_label
: (void)0;
841 ((void (*)(val
*))(var9
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var9
) /* next on <var9:Iterator[nullable Object]>*/;
843 BREAK_label
: (void)0;
844 ((void (*)(val
*, val
*))(var_result
->class->vft
[COLOR_layout_builders__Layout__ids_61d
]))(var_result
, var_ids
) /* ids= on <var_result:Layout[Object]>*/;
845 ((void (*)(val
*, val
*))(var_result
->class->vft
[COLOR_layout_builders__Layout__pos_61d
]))(var_result
, var_ids
) /* pos= on <var_result:Layout[Object]>*/;
851 /* method layout_builders#TypingBMizer#build_layout for (self: Object, Set[Object]): Layout[Object] */
852 val
* VIRTUAL_layout_builders__TypingBMizer__build_layout(val
* self
, val
* p0
) {
853 val
* var
/* : Layout[Object] */;
854 val
* var1
/* : Layout[Object] */;
855 var1
= layout_builders__TypingBMizer__build_layout(self
, p0
);
860 /* method layout_builders#MTypeBMizer#init for (self: MTypeBMizer, MModule) */
861 void layout_builders__MTypeBMizer__init(val
* self
, val
* p0
) {
862 val
* var_mmodule
/* var mmodule: MModule */;
863 val
* var
/* : MTypePOSetBuilder */;
865 var
= NEW_layout_builders__MTypePOSetBuilder(&type_layout_builders__MTypePOSetBuilder
);
866 ((void (*)(val
*, val
*))(var
->class->vft
[COLOR_layout_builders__POSetBuilder__init
]))(var
, var_mmodule
) /* init on <var:MTypePOSetBuilder>*/;
867 CHECK_NEW_layout_builders__MTypePOSetBuilder(var
);
868 ((void (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_layout_builders__TypingBMizer__init
]))(self
, var_mmodule
, var
) /* init on <self:MTypeBMizer>*/;
871 /* method layout_builders#MTypeBMizer#init for (self: Object, MModule) */
872 void VIRTUAL_layout_builders__MTypeBMizer__init(val
* self
, val
* p0
) {
873 layout_builders__MTypeBMizer__init(self
, p0
);
876 /* method layout_builders#MClassBMizer#init for (self: MClassBMizer, MModule) */
877 void layout_builders__MClassBMizer__init(val
* self
, val
* p0
) {
878 val
* var_mmodule
/* var mmodule: MModule */;
879 val
* var
/* : MClassPOSetBuilder */;
881 var
= NEW_layout_builders__MClassPOSetBuilder(&type_layout_builders__MClassPOSetBuilder
);
882 ((void (*)(val
*, val
*))(var
->class->vft
[COLOR_layout_builders__POSetBuilder__init
]))(var
, var_mmodule
) /* init on <var:MClassPOSetBuilder>*/;
883 CHECK_NEW_layout_builders__MClassPOSetBuilder(var
);
884 ((void (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_layout_builders__TypingBMizer__init
]))(self
, var_mmodule
, var
) /* init on <self:MClassBMizer>*/;
887 /* method layout_builders#MClassBMizer#init for (self: Object, MModule) */
888 void VIRTUAL_layout_builders__MClassBMizer__init(val
* self
, val
* p0
) {
889 layout_builders__MClassBMizer__init(self
, p0
);
892 /* method layout_builders#ResolutionBMizer#init for (self: ResolutionBMizer) */
893 void layout_builders__ResolutionBMizer__init(val
* self
) {
896 /* method layout_builders#ResolutionBMizer#init for (self: Object) */
897 void VIRTUAL_layout_builders__ResolutionBMizer__init(val
* self
) {
898 layout_builders__ResolutionBMizer__init(self
);
901 /* method layout_builders#ResolutionBMizer#build_layout for (self: ResolutionBMizer, Map[MClassType, Set[MType]]): Layout[MType] */
902 val
* layout_builders__ResolutionBMizer__build_layout(val
* self
, val
* p0
) {
903 val
* var
/* : Layout[MType] */;
904 val
* var_elements
/* var elements: Map[MClassType, Set[MType]] */;
905 val
* var1
/* : Layout[MType] */;
906 val
* var_result
/* var result: Layout[MType] */;
907 val
* var2
/* : HashMap[MType, Int] */;
908 val
* var_ids
/* var ids: HashMap[MType, Int] */;
909 long var3
/* : Int */;
910 long var_color
/* var color: Int */;
911 val
* var4
/* : MapIterator[Object, nullable Object] */;
912 short int var5
/* : Bool */;
913 val
* var6
/* : Object */;
914 val
* var_mclasstype
/* var mclasstype: MClassType */;
915 val
* var7
/* : nullable Object */;
916 val
* var_mclasstypes
/* var mclasstypes: Set[MType] */;
917 val
* var8
/* : Iterator[nullable Object] */;
918 short int var9
/* : Bool */;
919 val
* var10
/* : nullable Object */;
920 val
* var_element
/* var element: MType */;
921 short int var11
/* : Bool */;
922 val
* var12
/* : nullable Object */;
923 long var13
/* : Int */;
924 long var14
/* : Int */;
925 long var16
/* : Int */;
927 var1
= NEW_layout_builders__Layout(&type_layout_builders__Layoutmodel__MType
);
928 ((void (*)(val
*))(var1
->class->vft
[COLOR_layout_builders__Layout__init
]))(var1
) /* init on <var1:Layout[MType]>*/;
929 CHECK_NEW_layout_builders__Layout(var1
);
931 var2
= NEW_hash_collection__HashMap(&type_hash_collection__HashMapmodel__MTypekernel__Int
);
932 ((void (*)(val
*))(var2
->class->vft
[COLOR_hash_collection__HashMap__init
]))(var2
) /* init on <var2:HashMap[MType, Int]>*/;
933 CHECK_NEW_hash_collection__HashMap(var2
);
937 var4
= ((val
* (*)(val
*))(var_elements
->class->vft
[COLOR_abstract_collection__MapRead__iterator
]))(var_elements
) /* iterator on <var_elements:Map[MClassType, Set[MType]]>*/;
939 var5
= ((short int (*)(val
*))(var4
->class->vft
[COLOR_abstract_collection__MapIterator__is_ok
]))(var4
) /* is_ok on <var4:MapIterator[Object, nullable Object]>*/;
941 var6
= ((val
* (*)(val
*))(var4
->class->vft
[COLOR_abstract_collection__MapIterator__key
]))(var4
) /* key on <var4:MapIterator[Object, nullable Object]>*/;
942 var_mclasstype
= var6
;
943 var7
= ((val
* (*)(val
*))(var4
->class->vft
[COLOR_abstract_collection__MapIterator__item
]))(var4
) /* item on <var4:MapIterator[Object, nullable Object]>*/;
944 var_mclasstypes
= var7
;
945 var8
= ((val
* (*)(val
*))(var_mclasstypes
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var_mclasstypes
) /* iterator on <var_mclasstypes:Set[MType]>*/;
947 var9
= ((short int (*)(val
*))(var8
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var8
) /* is_ok on <var8:Iterator[nullable Object]>*/;
949 var10
= ((val
* (*)(val
*))(var8
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var8
) /* item on <var8:Iterator[nullable Object]>*/;
951 var11
= ((short int (*)(val
*, val
*))(var_ids
->class->vft
[COLOR_abstract_collection__MapRead__has_key
]))(var_ids
, var_element
) /* has_key on <var_ids:HashMap[MType, Int]>*/;
956 var12
= BOX_kernel__Int(var_color
); /* autobox from Int to nullable Object */
957 ((void (*)(val
*, val
*, val
*))(var_ids
->class->vft
[COLOR_abstract_collection__Map___91d_93d_61d
]))(var_ids
, var_element
, var12
) /* []= on <var_ids:HashMap[MType, Int]>*/;
959 { /* Inline kernel#Int#+ (var_color,var13) */
960 var16
= var_color
+ var13
;
966 CONTINUE_label
: (void)0;
967 ((void (*)(val
*))(var8
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var8
) /* next on <var8:Iterator[nullable Object]>*/;
969 BREAK_label
: (void)0;
970 CONTINUE_label17
: (void)0;
971 ((void (*)(val
*))(var4
->class->vft
[COLOR_abstract_collection__MapIterator__next
]))(var4
) /* next on <var4:MapIterator[Object, nullable Object]>*/;
973 BREAK_label17
: (void)0;
974 ((void (*)(val
*, val
*))(var_result
->class->vft
[COLOR_layout_builders__Layout__ids_61d
]))(var_result
, var_ids
) /* ids= on <var_result:Layout[MType]>*/;
975 ((void (*)(val
*, val
*))(var_result
->class->vft
[COLOR_layout_builders__Layout__pos_61d
]))(var_result
, var_ids
) /* pos= on <var_result:Layout[MType]>*/;
981 /* method layout_builders#ResolutionBMizer#build_layout for (self: Object, Map[MClassType, Set[MType]]): Layout[MType] */
982 val
* VIRTUAL_layout_builders__ResolutionBMizer__build_layout(val
* self
, val
* p0
) {
983 val
* var
/* : Layout[MType] */;
984 val
* var1
/* : Layout[MType] */;
985 var1
= layout_builders__ResolutionBMizer__build_layout(self
, p0
);
990 /* method layout_builders#MPropertyBMizer#mmodule for (self: MPropertyBMizer[PropertyLayoutElement]): MModule */
991 val
* layout_builders__MPropertyBMizer__mmodule(val
* self
) {
992 val
* var
/* : MModule */;
993 val
* var1
/* : MModule */;
994 var1
= self
->attrs
[COLOR_layout_builders__MPropertyBMizer___64dmmodule
].val
; /* @mmodule on <self:MPropertyBMizer[PropertyLayoutElement]> */
996 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute @mmodule");
997 fprintf(stderr
, " (%s:%d)\n", "src/layout_builders.nit", 198);
1004 /* method layout_builders#MPropertyBMizer#mmodule for (self: Object): MModule */
1005 val
* VIRTUAL_layout_builders__MPropertyBMizer__mmodule(val
* self
) {
1006 val
* var
/* : MModule */;
1007 val
* var1
/* : MModule */;
1008 var1
= layout_builders__MPropertyBMizer__mmodule(self
);
1013 /* method layout_builders#MPropertyBMizer#mmodule= for (self: MPropertyBMizer[PropertyLayoutElement], MModule) */
1014 void layout_builders__MPropertyBMizer__mmodule_61d(val
* self
, val
* p0
) {
1015 self
->attrs
[COLOR_layout_builders__MPropertyBMizer___64dmmodule
].val
= p0
; /* @mmodule on <self:MPropertyBMizer[PropertyLayoutElement]> */
1018 /* method layout_builders#MPropertyBMizer#mmodule= for (self: Object, MModule) */
1019 void VIRTUAL_layout_builders__MPropertyBMizer__mmodule_61d(val
* self
, val
* p0
) {
1020 layout_builders__MPropertyBMizer__mmodule_61d(self
, p0
);
1023 /* method layout_builders#MPropertyBMizer#init for (self: MPropertyBMizer[PropertyLayoutElement], MModule) */
1024 void layout_builders__MPropertyBMizer__init(val
* self
, val
* p0
) {
1025 val
* var_mmodule
/* var mmodule: MModule */;
1027 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_layout_builders__MPropertyBMizer__mmodule_61d
]))(self
, var_mmodule
) /* mmodule= on <self:MPropertyBMizer[PropertyLayoutElement]>*/;
1030 /* method layout_builders#MPropertyBMizer#init for (self: Object, MModule) */
1031 void VIRTUAL_layout_builders__MPropertyBMizer__init(val
* self
, val
* p0
) {
1032 layout_builders__MPropertyBMizer__init(self
, p0
);
1035 /* method layout_builders#MPropertyBMizer#build_layout for (self: MPropertyBMizer[PropertyLayoutElement], Map[MClass, Set[PropertyLayoutElement]]): Layout[PropertyLayoutElement] */
1036 val
* layout_builders__MPropertyBMizer__build_layout(val
* self
, val
* p0
) {
1037 val
* var
/* : Layout[PropertyLayoutElement] */;
1038 short int var1
/* : Bool */;
1041 const struct type
* type_struct
;
1042 const char* var_class_name
;
1043 val
* var_elements
/* var elements: Map[MClass, Set[PropertyLayoutElement]] */;
1044 val
* var2
/* : Layout[PropertyLayoutElement] */;
1045 val
* var_result
/* var result: Layout[PropertyLayoutElement] */;
1046 val
* var3
/* : HashMap[PropertyLayoutElement, Int] */;
1047 val
* var_ids
/* var ids: HashMap[PropertyLayoutElement, Int] */;
1048 val
* var4
/* : Array[MClass] */;
1049 val
* var_lin
/* var lin: Array[MClass] */;
1050 val
* var5
/* : Collection[Object] */;
1051 val
* var6
/* : MModule */;
1052 val
* var7
/* : Iterator[nullable Object] */;
1053 short int var8
/* : Bool */;
1054 val
* var9
/* : nullable Object */;
1055 val
* var_mclass
/* var mclass: MClass */;
1056 val
* var10
/* : nullable Object */;
1057 val
* var11
/* : Iterator[nullable Object] */;
1058 short int var12
/* : Bool */;
1059 val
* var13
/* : nullable Object */;
1060 val
* var_mproperty
/* var mproperty: PropertyLayoutElement */;
1061 short int var14
/* : Bool */;
1062 long var15
/* : Int */;
1063 val
* var16
/* : nullable Object */;
1064 /* Covariant cast for argument 0 (elements) <p0:Map[MClass, Set[PropertyLayoutElement]]> isa Map[MClass, Set[PropertyLayoutBuilder#0]] */
1065 /* <p0:Map[MClass, Set[PropertyLayoutElement]]> isa Map[MClass, Set[PropertyLayoutBuilder#0]] */
1066 type_struct
= self
->type
->resolution_table
->types
[COLOR_abstract_collection__Mapmodel__MClassabstract_collection__Setlayout_builders__PropertyLayoutBuilder_FT0
];
1067 cltype
= type_struct
->color
;
1068 idtype
= type_struct
->id
;
1069 if(cltype
>= p0
->type
->table_size
) {
1072 var1
= p0
->type
->type_table
[cltype
] == idtype
;
1075 var_class_name
= p0
== NULL ?
"null" : p0
->type
->name
;
1076 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "Map[MClass, Set[PropertyLayoutBuilder#0]]", var_class_name
);
1077 fprintf(stderr
, " (%s:%d)\n", "src/layout_builders.nit", 202);
1081 var2
= NEW_layout_builders__Layout(self
->type
->resolution_table
->types
[COLOR_layout_builders__Layoutlayout_builders__MPropertyBMizer_FT0
]);
1082 ((void (*)(val
*))(var2
->class->vft
[COLOR_layout_builders__Layout__init
]))(var2
) /* init on <var2:Layout[PropertyLayoutElement]>*/;
1083 CHECK_NEW_layout_builders__Layout(var2
);
1085 var3
= NEW_hash_collection__HashMap(self
->type
->resolution_table
->types
[COLOR_hash_collection__HashMaplayout_builders__MPropertyBMizer_FT0kernel__Int
]);
1086 ((void (*)(val
*))(var3
->class->vft
[COLOR_hash_collection__HashMap__init
]))(var3
) /* init on <var3:HashMap[PropertyLayoutElement, Int]>*/;
1087 CHECK_NEW_hash_collection__HashMap(var3
);
1089 var4
= NEW_array__Array(&type_array__Arraymodel__MClass
);
1090 ((void (*)(val
*))(var4
->class->vft
[COLOR_array__Array__init
]))(var4
) /* init on <var4:Array[MClass]>*/;
1091 CHECK_NEW_array__Array(var4
);
1093 var5
= ((val
* (*)(val
*))(var_elements
->class->vft
[COLOR_abstract_collection__MapRead__keys
]))(var_elements
) /* keys on <var_elements:Map[MClass, Set[PropertyLayoutElement]]>*/;
1094 ((void (*)(val
*, val
*))(var_lin
->class->vft
[COLOR_abstract_collection__SimpleCollection__add_all
]))(var_lin
, var5
) /* add_all on <var_lin:Array[MClass]>*/;
1095 var6
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_layout_builders__MPropertyBMizer__mmodule
]))(self
) /* mmodule on <self:MPropertyBMizer[PropertyLayoutElement]>*/;
1096 ((void (*)(val
*, val
*))(var6
->class->vft
[COLOR_model__MModule__linearize_mclasses
]))(var6
, var_lin
) /* linearize_mclasses on <var6:MModule>*/;
1097 var7
= ((val
* (*)(val
*))(var_lin
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var_lin
) /* iterator on <var_lin:Array[MClass]>*/;
1099 var8
= ((short int (*)(val
*))(var7
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var7
) /* is_ok on <var7:Iterator[nullable Object]>*/;
1101 var9
= ((val
* (*)(val
*))(var7
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var7
) /* item on <var7:Iterator[nullable Object]>*/;
1103 var10
= ((val
* (*)(val
*, val
*))(var_elements
->class->vft
[COLOR_abstract_collection__MapRead___91d_93d
]))(var_elements
, var_mclass
) /* [] on <var_elements:Map[MClass, Set[PropertyLayoutElement]]>*/;
1104 var11
= ((val
* (*)(val
*))(var10
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var10
) /* iterator on <var10:nullable Object(Set[PropertyLayoutElement])>*/;
1106 var12
= ((short int (*)(val
*))(var11
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var11
) /* is_ok on <var11:Iterator[nullable Object]>*/;
1108 var13
= ((val
* (*)(val
*))(var11
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var11
) /* item on <var11:Iterator[nullable Object]>*/;
1109 var_mproperty
= var13
;
1110 var14
= ((short int (*)(val
*, val
*))(var_ids
->class->vft
[COLOR_abstract_collection__MapRead__has_key
]))(var_ids
, var_mproperty
) /* has_key on <var_ids:HashMap[PropertyLayoutElement, Int]>*/;
1112 goto CONTINUE_label
;
1115 var15
= ((long (*)(val
*))(var_ids
->class->vft
[COLOR_abstract_collection__MapRead__length
]))(var_ids
) /* length on <var_ids:HashMap[PropertyLayoutElement, Int]>*/;
1116 var16
= BOX_kernel__Int(var15
); /* autobox from Int to nullable Object */
1117 ((void (*)(val
*, val
*, val
*))(var_ids
->class->vft
[COLOR_abstract_collection__Map___91d_93d_61d
]))(var_ids
, var_mproperty
, var16
) /* []= on <var_ids:HashMap[PropertyLayoutElement, Int]>*/;
1118 CONTINUE_label
: (void)0;
1119 ((void (*)(val
*))(var11
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var11
) /* next on <var11:Iterator[nullable Object]>*/;
1121 BREAK_label
: (void)0;
1122 CONTINUE_label17
: (void)0;
1123 ((void (*)(val
*))(var7
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var7
) /* next on <var7:Iterator[nullable Object]>*/;
1125 BREAK_label17
: (void)0;
1126 ((void (*)(val
*, val
*))(var_result
->class->vft
[COLOR_layout_builders__Layout__pos_61d
]))(var_result
, var_ids
) /* pos= on <var_result:Layout[PropertyLayoutElement]>*/;
1132 /* method layout_builders#MPropertyBMizer#build_layout for (self: Object, Map[MClass, Set[PropertyLayoutElement]]): Layout[PropertyLayoutElement] */
1133 val
* VIRTUAL_layout_builders__MPropertyBMizer__build_layout(val
* self
, val
* p0
) {
1134 val
* var
/* : Layout[PropertyLayoutElement] */;
1135 val
* var1
/* : Layout[PropertyLayoutElement] */;
1136 var1
= layout_builders__MPropertyBMizer__build_layout(self
, p0
);
1141 /* method layout_builders#TypingColorer#core for (self: TypingColorer[Object]): Set[Object] */
1142 val
* layout_builders__TypingColorer__core(val
* self
) {
1143 val
* var
/* : Set[Object] */;
1144 val
* var1
/* : Set[Object] */;
1145 var1
= self
->attrs
[COLOR_layout_builders__TypingColorer___64dcore
].val
; /* @core on <self:TypingColorer[Object]> */
1147 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute @core");
1148 fprintf(stderr
, " (%s:%d)\n", "src/layout_builders.nit", 225);
1155 /* method layout_builders#TypingColorer#core for (self: Object): Set[Object] */
1156 val
* VIRTUAL_layout_builders__TypingColorer__core(val
* self
) {
1157 val
* var
/* : Set[Object] */;
1158 val
* var1
/* : Set[Object] */;
1159 var1
= layout_builders__TypingColorer__core(self
);
1164 /* method layout_builders#TypingColorer#core= for (self: TypingColorer[Object], Set[Object]) */
1165 void layout_builders__TypingColorer__core_61d(val
* self
, val
* p0
) {
1166 short int var
/* : Bool */;
1169 const struct type
* type_struct
;
1170 const char* var_class_name
;
1171 /* Covariant cast for argument 0 (core) <p0:Set[Object]> isa Set[TypingColorer#0] */
1172 /* <p0:Set[Object]> isa Set[TypingColorer#0] */
1173 type_struct
= self
->type
->resolution_table
->types
[COLOR_abstract_collection__Setlayout_builders__TypingColorer_FT0
];
1174 cltype
= type_struct
->color
;
1175 idtype
= type_struct
->id
;
1176 if(cltype
>= p0
->type
->table_size
) {
1179 var
= p0
->type
->type_table
[cltype
] == idtype
;
1182 var_class_name
= p0
== NULL ?
"null" : p0
->type
->name
;
1183 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "Set[TypingColorer#0]", var_class_name
);
1184 fprintf(stderr
, " (%s:%d)\n", "src/layout_builders.nit", 225);
1187 self
->attrs
[COLOR_layout_builders__TypingColorer___64dcore
].val
= p0
; /* @core on <self:TypingColorer[Object]> */
1190 /* method layout_builders#TypingColorer#core= for (self: Object, Set[Object]) */
1191 void VIRTUAL_layout_builders__TypingColorer__core_61d(val
* self
, val
* p0
) {
1192 layout_builders__TypingColorer__core_61d(self
, p0
);
1195 /* method layout_builders#TypingColorer#crown for (self: TypingColorer[Object]): Set[Object] */
1196 val
* layout_builders__TypingColorer__crown(val
* self
) {
1197 val
* var
/* : Set[Object] */;
1198 val
* var1
/* : Set[Object] */;
1199 var1
= self
->attrs
[COLOR_layout_builders__TypingColorer___64dcrown
].val
; /* @crown on <self:TypingColorer[Object]> */
1201 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute @crown");
1202 fprintf(stderr
, " (%s:%d)\n", "src/layout_builders.nit", 226);
1209 /* method layout_builders#TypingColorer#crown for (self: Object): Set[Object] */
1210 val
* VIRTUAL_layout_builders__TypingColorer__crown(val
* self
) {
1211 val
* var
/* : Set[Object] */;
1212 val
* var1
/* : Set[Object] */;
1213 var1
= layout_builders__TypingColorer__crown(self
);
1218 /* method layout_builders#TypingColorer#crown= for (self: TypingColorer[Object], Set[Object]) */
1219 void layout_builders__TypingColorer__crown_61d(val
* self
, val
* p0
) {
1220 short int var
/* : Bool */;
1223 const struct type
* type_struct
;
1224 const char* var_class_name
;
1225 /* Covariant cast for argument 0 (crown) <p0:Set[Object]> isa Set[TypingColorer#0] */
1226 /* <p0:Set[Object]> isa Set[TypingColorer#0] */
1227 type_struct
= self
->type
->resolution_table
->types
[COLOR_abstract_collection__Setlayout_builders__TypingColorer_FT0
];
1228 cltype
= type_struct
->color
;
1229 idtype
= type_struct
->id
;
1230 if(cltype
>= p0
->type
->table_size
) {
1233 var
= p0
->type
->type_table
[cltype
] == idtype
;
1236 var_class_name
= p0
== NULL ?
"null" : p0
->type
->name
;
1237 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "Set[TypingColorer#0]", var_class_name
);
1238 fprintf(stderr
, " (%s:%d)\n", "src/layout_builders.nit", 226);
1241 self
->attrs
[COLOR_layout_builders__TypingColorer___64dcrown
].val
= p0
; /* @crown on <self:TypingColorer[Object]> */
1244 /* method layout_builders#TypingColorer#crown= for (self: Object, Set[Object]) */
1245 void VIRTUAL_layout_builders__TypingColorer__crown_61d(val
* self
, val
* p0
) {
1246 layout_builders__TypingColorer__crown_61d(self
, p0
);
1249 /* method layout_builders#TypingColorer#border for (self: TypingColorer[Object]): Set[Object] */
1250 val
* layout_builders__TypingColorer__border(val
* self
) {
1251 val
* var
/* : Set[Object] */;
1252 val
* var1
/* : Set[Object] */;
1253 var1
= self
->attrs
[COLOR_layout_builders__TypingColorer___64dborder
].val
; /* @border on <self:TypingColorer[Object]> */
1255 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute @border");
1256 fprintf(stderr
, " (%s:%d)\n", "src/layout_builders.nit", 227);
1263 /* method layout_builders#TypingColorer#border for (self: Object): Set[Object] */
1264 val
* VIRTUAL_layout_builders__TypingColorer__border(val
* self
) {
1265 val
* var
/* : Set[Object] */;
1266 val
* var1
/* : Set[Object] */;
1267 var1
= layout_builders__TypingColorer__border(self
);
1272 /* method layout_builders#TypingColorer#border= for (self: TypingColorer[Object], Set[Object]) */
1273 void layout_builders__TypingColorer__border_61d(val
* self
, val
* p0
) {
1274 short int var
/* : Bool */;
1277 const struct type
* type_struct
;
1278 const char* var_class_name
;
1279 /* Covariant cast for argument 0 (border) <p0:Set[Object]> isa Set[TypingColorer#0] */
1280 /* <p0:Set[Object]> isa Set[TypingColorer#0] */
1281 type_struct
= self
->type
->resolution_table
->types
[COLOR_abstract_collection__Setlayout_builders__TypingColorer_FT0
];
1282 cltype
= type_struct
->color
;
1283 idtype
= type_struct
->id
;
1284 if(cltype
>= p0
->type
->table_size
) {
1287 var
= p0
->type
->type_table
[cltype
] == idtype
;
1290 var_class_name
= p0
== NULL ?
"null" : p0
->type
->name
;
1291 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "Set[TypingColorer#0]", var_class_name
);
1292 fprintf(stderr
, " (%s:%d)\n", "src/layout_builders.nit", 227);
1295 self
->attrs
[COLOR_layout_builders__TypingColorer___64dborder
].val
= p0
; /* @border on <self:TypingColorer[Object]> */
1298 /* method layout_builders#TypingColorer#border= for (self: Object, Set[Object]) */
1299 void VIRTUAL_layout_builders__TypingColorer__border_61d(val
* self
, val
* p0
) {
1300 layout_builders__TypingColorer__border_61d(self
, p0
);
1303 /* method layout_builders#TypingColorer#coloration_result for (self: TypingColorer[Object]): Map[Object, Int] */
1304 val
* layout_builders__TypingColorer__coloration_result(val
* self
) {
1305 val
* var
/* : Map[Object, Int] */;
1306 val
* var1
/* : Map[Object, Int] */;
1307 var1
= self
->attrs
[COLOR_layout_builders__TypingColorer___64dcoloration_result
].val
; /* @coloration_result on <self:TypingColorer[Object]> */
1309 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute @coloration_result");
1310 fprintf(stderr
, " (%s:%d)\n", "src/layout_builders.nit", 228);
1317 /* method layout_builders#TypingColorer#coloration_result for (self: Object): Map[Object, Int] */
1318 val
* VIRTUAL_layout_builders__TypingColorer__coloration_result(val
* self
) {
1319 val
* var
/* : Map[Object, Int] */;
1320 val
* var1
/* : Map[Object, Int] */;
1321 var1
= layout_builders__TypingColorer__coloration_result(self
);
1326 /* method layout_builders#TypingColorer#coloration_result= for (self: TypingColorer[Object], Map[Object, Int]) */
1327 void layout_builders__TypingColorer__coloration_result_61d(val
* self
, val
* p0
) {
1328 short int var
/* : Bool */;
1331 const struct type
* type_struct
;
1332 const char* var_class_name
;
1333 /* Covariant cast for argument 0 (coloration_result) <p0:Map[Object, Int]> isa Map[TypingColorer#0, Int] */
1334 /* <p0:Map[Object, Int]> isa Map[TypingColorer#0, Int] */
1335 type_struct
= self
->type
->resolution_table
->types
[COLOR_abstract_collection__Maplayout_builders__TypingColorer_FT0kernel__Int
];
1336 cltype
= type_struct
->color
;
1337 idtype
= type_struct
->id
;
1338 if(cltype
>= p0
->type
->table_size
) {
1341 var
= p0
->type
->type_table
[cltype
] == idtype
;
1344 var_class_name
= p0
== NULL ?
"null" : p0
->type
->name
;
1345 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "Map[TypingColorer#0, Int]", var_class_name
);
1346 fprintf(stderr
, " (%s:%d)\n", "src/layout_builders.nit", 228);
1349 self
->attrs
[COLOR_layout_builders__TypingColorer___64dcoloration_result
].val
= p0
; /* @coloration_result on <self:TypingColorer[Object]> */
1352 /* method layout_builders#TypingColorer#coloration_result= for (self: Object, Map[Object, Int]) */
1353 void VIRTUAL_layout_builders__TypingColorer__coloration_result_61d(val
* self
, val
* p0
) {
1354 layout_builders__TypingColorer__coloration_result_61d(self
, p0
);
1357 /* method layout_builders#TypingColorer#mmodule for (self: TypingColorer[Object]): MModule */
1358 val
* layout_builders__TypingColorer__mmodule(val
* self
) {
1359 val
* var
/* : MModule */;
1360 val
* var1
/* : MModule */;
1361 var1
= self
->attrs
[COLOR_layout_builders__TypingColorer___64dmmodule
].val
; /* @mmodule on <self:TypingColorer[Object]> */
1363 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute @mmodule");
1364 fprintf(stderr
, " (%s:%d)\n", "src/layout_builders.nit", 230);
1371 /* method layout_builders#TypingColorer#mmodule for (self: Object): MModule */
1372 val
* VIRTUAL_layout_builders__TypingColorer__mmodule(val
* self
) {
1373 val
* var
/* : MModule */;
1374 val
* var1
/* : MModule */;
1375 var1
= layout_builders__TypingColorer__mmodule(self
);
1380 /* method layout_builders#TypingColorer#mmodule= for (self: TypingColorer[Object], MModule) */
1381 void layout_builders__TypingColorer__mmodule_61d(val
* self
, val
* p0
) {
1382 self
->attrs
[COLOR_layout_builders__TypingColorer___64dmmodule
].val
= p0
; /* @mmodule on <self:TypingColorer[Object]> */
1385 /* method layout_builders#TypingColorer#mmodule= for (self: Object, MModule) */
1386 void VIRTUAL_layout_builders__TypingColorer__mmodule_61d(val
* self
, val
* p0
) {
1387 layout_builders__TypingColorer__mmodule_61d(self
, p0
);
1390 /* method layout_builders#TypingColorer#poset_builder for (self: TypingColorer[Object]): POSetBuilder[Object] */
1391 val
* layout_builders__TypingColorer__poset_builder(val
* self
) {
1392 val
* var
/* : POSetBuilder[Object] */;
1393 val
* var1
/* : POSetBuilder[Object] */;
1394 var1
= self
->attrs
[COLOR_layout_builders__TypingColorer___64dposet_builder
].val
; /* @poset_builder on <self:TypingColorer[Object]> */
1396 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute @poset_builder");
1397 fprintf(stderr
, " (%s:%d)\n", "src/layout_builders.nit", 231);
1404 /* method layout_builders#TypingColorer#poset_builder for (self: Object): POSetBuilder[Object] */
1405 val
* VIRTUAL_layout_builders__TypingColorer__poset_builder(val
* self
) {
1406 val
* var
/* : POSetBuilder[Object] */;
1407 val
* var1
/* : POSetBuilder[Object] */;
1408 var1
= layout_builders__TypingColorer__poset_builder(self
);
1413 /* method layout_builders#TypingColorer#poset_builder= for (self: TypingColorer[Object], POSetBuilder[Object]) */
1414 void layout_builders__TypingColorer__poset_builder_61d(val
* self
, val
* p0
) {
1415 short int var
/* : Bool */;
1418 const struct type
* type_struct
;
1419 const char* var_class_name
;
1420 /* Covariant cast for argument 0 (poset_builder) <p0:POSetBuilder[Object]> isa POSetBuilder[TypingColorer#0] */
1421 /* <p0:POSetBuilder[Object]> isa POSetBuilder[TypingColorer#0] */
1422 type_struct
= self
->type
->resolution_table
->types
[COLOR_layout_builders__POSetBuilderlayout_builders__TypingColorer_FT0
];
1423 cltype
= type_struct
->color
;
1424 idtype
= type_struct
->id
;
1425 if(cltype
>= p0
->type
->table_size
) {
1428 var
= p0
->type
->type_table
[cltype
] == idtype
;
1431 var_class_name
= p0
== NULL ?
"null" : p0
->type
->name
;
1432 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "POSetBuilder[TypingColorer#0]", var_class_name
);
1433 fprintf(stderr
, " (%s:%d)\n", "src/layout_builders.nit", 231);
1436 self
->attrs
[COLOR_layout_builders__TypingColorer___64dposet_builder
].val
= p0
; /* @poset_builder on <self:TypingColorer[Object]> */
1439 /* method layout_builders#TypingColorer#poset_builder= for (self: Object, POSetBuilder[Object]) */
1440 void VIRTUAL_layout_builders__TypingColorer__poset_builder_61d(val
* self
, val
* p0
) {
1441 layout_builders__TypingColorer__poset_builder_61d(self
, p0
);
1444 /* method layout_builders#TypingColorer#poset_cache for (self: TypingColorer[Object]): nullable POSet[Object] */
1445 val
* layout_builders__TypingColorer__poset_cache(val
* self
) {
1446 val
* var
/* : nullable POSet[Object] */;
1447 val
* var1
/* : nullable POSet[Object] */;
1448 var1
= self
->attrs
[COLOR_layout_builders__TypingColorer___64dposet_cache
].val
; /* @poset_cache on <self:TypingColorer[Object]> */
1453 /* method layout_builders#TypingColorer#poset_cache for (self: Object): nullable POSet[Object] */
1454 val
* VIRTUAL_layout_builders__TypingColorer__poset_cache(val
* self
) {
1455 val
* var
/* : nullable POSet[Object] */;
1456 val
* var1
/* : nullable POSet[Object] */;
1457 var1
= layout_builders__TypingColorer__poset_cache(self
);
1462 /* method layout_builders#TypingColorer#poset_cache= for (self: TypingColorer[Object], nullable POSet[Object]) */
1463 void layout_builders__TypingColorer__poset_cache_61d(val
* self
, val
* p0
) {
1464 short int var
/* : Bool */;
1467 const struct type
* type_struct
;
1468 const char* var_class_name
;
1469 /* Covariant cast for argument 0 (poset_cache) <p0:nullable POSet[Object]> isa nullable POSet[TypingColorer#0] */
1470 /* <p0:nullable POSet[Object]> isa nullable POSet[TypingColorer#0] */
1471 type_struct
= self
->type
->resolution_table
->types
[COLOR_poset__POSetlayout_builders__TypingColorer_FT0
];
1472 cltype
= type_struct
->color
;
1473 idtype
= type_struct
->id
;
1477 if(cltype
>= p0
->type
->table_size
) {
1480 var
= p0
->type
->type_table
[cltype
] == idtype
;
1484 var_class_name
= p0
== NULL ?
"null" : p0
->type
->name
;
1485 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable POSet[TypingColorer#0]", var_class_name
);
1486 fprintf(stderr
, " (%s:%d)\n", "src/layout_builders.nit", 232);
1489 self
->attrs
[COLOR_layout_builders__TypingColorer___64dposet_cache
].val
= p0
; /* @poset_cache on <self:TypingColorer[Object]> */
1492 /* method layout_builders#TypingColorer#poset_cache= for (self: Object, nullable POSet[Object]) */
1493 void VIRTUAL_layout_builders__TypingColorer__poset_cache_61d(val
* self
, val
* p0
) {
1494 layout_builders__TypingColorer__poset_cache_61d(self
, p0
);
1497 /* method layout_builders#TypingColorer#init for (self: TypingColorer[Object], MModule, POSetBuilder[Object]) */
1498 void layout_builders__TypingColorer__init(val
* self
, val
* p0
, val
* p1
) {
1499 short int var
/* : Bool */;
1502 const struct type
* type_struct
;
1503 const char* var_class_name
;
1504 val
* var_mmodule
/* var mmodule: MModule */;
1505 val
* var_poset_builder
/* var poset_builder: POSetBuilder[Object] */;
1506 /* Covariant cast for argument 1 (poset_builder) <p1:POSetBuilder[Object]> isa POSetBuilder[TypingColorer#0] */
1507 /* <p1:POSetBuilder[Object]> isa POSetBuilder[TypingColorer#0] */
1508 type_struct
= self
->type
->resolution_table
->types
[COLOR_layout_builders__POSetBuilderlayout_builders__TypingColorer_FT0
];
1509 cltype
= type_struct
->color
;
1510 idtype
= type_struct
->id
;
1511 if(cltype
>= p1
->type
->table_size
) {
1514 var
= p1
->type
->type_table
[cltype
] == idtype
;
1517 var_class_name
= p1
== NULL ?
"null" : p1
->type
->name
;
1518 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "POSetBuilder[TypingColorer#0]", var_class_name
);
1519 fprintf(stderr
, " (%s:%d)\n", "src/layout_builders.nit", 234);
1523 var_poset_builder
= p1
;
1524 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_layout_builders__TypingColorer__mmodule_61d
]))(self
, var_mmodule
) /* mmodule= on <self:TypingColorer[Object]>*/;
1525 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_layout_builders__TypingColorer__poset_builder_61d
]))(self
, var_poset_builder
) /* poset_builder= on <self:TypingColorer[Object]>*/;
1528 /* method layout_builders#TypingColorer#init for (self: Object, MModule, POSetBuilder[Object]) */
1529 void VIRTUAL_layout_builders__TypingColorer__init(val
* self
, val
* p0
, val
* p1
) {
1530 layout_builders__TypingColorer__init(self
, p0
, p1
);
1533 /* method layout_builders#TypingColorer#poset for (self: TypingColorer[Object]): nullable POSet[Object] */
1534 val
* layout_builders__TypingColorer__poset(val
* self
) {
1535 val
* var
/* : nullable POSet[Object] */;
1536 val
* var1
/* : nullable POSet[Object] */;
1537 var1
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_layout_builders__TypingColorer__poset_cache
]))(self
) /* poset_cache on <self:TypingColorer[Object]>*/;
1543 /* method layout_builders#TypingColorer#poset for (self: Object): nullable POSet[Object] */
1544 val
* VIRTUAL_layout_builders__TypingColorer__poset(val
* self
) {
1545 val
* var
/* : nullable POSet[Object] */;
1546 val
* var1
/* : nullable POSet[Object] */;
1547 var1
= layout_builders__TypingColorer__poset(self
);
1552 /* method layout_builders#TypingColorer#build_layout for (self: TypingColorer[Object], Set[Object]): Layout[Object] */
1553 val
* layout_builders__TypingColorer__build_layout(val
* self
, val
* p0
) {
1554 val
* var
/* : Layout[Object] */;
1555 short int var1
/* : Bool */;
1558 const struct type
* type_struct
;
1559 const char* var_class_name
;
1560 val
* var_elements
/* var elements: Set[Object] */;
1561 val
* var2
/* : POSetBuilder[Object] */;
1562 val
* var3
/* : POSet[Object] */;
1563 val
* var4
/* : Layout[Object] */;
1564 val
* var_result
/* var result: Layout[Object] */;
1565 val
* var5
/* : Map[Object, Int] */;
1566 val
* var6
/* : Map[Object, Int] */;
1567 /* Covariant cast for argument 0 (elements) <p0:Set[Object]> isa Set[TypingColorer#0] */
1568 /* <p0:Set[Object]> isa Set[TypingColorer#0] */
1569 type_struct
= self
->type
->resolution_table
->types
[COLOR_abstract_collection__Setlayout_builders__TypingColorer_FT0
];
1570 cltype
= type_struct
->color
;
1571 idtype
= type_struct
->id
;
1572 if(cltype
>= p0
->type
->table_size
) {
1575 var1
= p0
->type
->type_table
[cltype
] == idtype
;
1578 var_class_name
= p0
== NULL ?
"null" : p0
->type
->name
;
1579 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "Set[TypingColorer#0]", var_class_name
);
1580 fprintf(stderr
, " (%s:%d)\n", "src/layout_builders.nit", 241);
1584 var2
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_layout_builders__TypingColorer__poset_builder
]))(self
) /* poset_builder on <self:TypingColorer[Object]>*/;
1585 var3
= ((val
* (*)(val
*, val
*))(var2
->class->vft
[COLOR_layout_builders__POSetBuilder__build_poset
]))(var2
, var_elements
) /* build_poset on <var2:POSetBuilder[Object]>*/;
1586 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_layout_builders__TypingColorer__poset_cache_61d
]))(self
, var3
) /* poset_cache= on <self:TypingColorer[Object]>*/;
1587 var4
= NEW_layout_builders__Layout(self
->type
->resolution_table
->types
[COLOR_layout_builders__Layoutlayout_builders__TypingColorer_FT0
]);
1588 ((void (*)(val
*))(var4
->class->vft
[COLOR_layout_builders__Layout__init
]))(var4
) /* init on <var4:Layout[Object]>*/;
1589 CHECK_NEW_layout_builders__Layout(var4
);
1591 var5
= ((val
* (*)(val
*, val
*))(self
->class->vft
[COLOR_layout_builders__TypingColorer__compute_ids
]))(self
, var_elements
) /* compute_ids on <self:TypingColorer[Object]>*/;
1592 ((void (*)(val
*, val
*))(var_result
->class->vft
[COLOR_layout_builders__Layout__ids_61d
]))(var_result
, var5
) /* ids= on <var_result:Layout[Object]>*/;
1593 var6
= ((val
* (*)(val
*, val
*))(self
->class->vft
[COLOR_layout_builders__TypingColorer__colorize
]))(self
, var_elements
) /* colorize on <self:TypingColorer[Object]>*/;
1594 ((void (*)(val
*, val
*))(var_result
->class->vft
[COLOR_layout_builders__Layout__pos_61d
]))(var_result
, var6
) /* pos= on <var_result:Layout[Object]>*/;
1600 /* method layout_builders#TypingColorer#build_layout for (self: Object, Set[Object]): Layout[Object] */
1601 val
* VIRTUAL_layout_builders__TypingColorer__build_layout(val
* self
, val
* p0
) {
1602 val
* var
/* : Layout[Object] */;
1603 val
* var1
/* : Layout[Object] */;
1604 var1
= layout_builders__TypingColorer__build_layout(self
, p0
);
1609 /* method layout_builders#TypingColorer#compute_ids for (self: TypingColorer[Object], Set[Object]): Map[Object, Int] */
1610 val
* layout_builders__TypingColorer__compute_ids(val
* self
, val
* p0
) {
1611 val
* var
/* : Map[Object, Int] */;
1612 short int var1
/* : Bool */;
1615 const struct type
* type_struct
;
1616 const char* var_class_name
;
1617 val
* var_elements
/* var elements: Set[Object] */;
1618 val
* var2
/* : HashMap[Object, Int] */;
1619 val
* var_ids
/* var ids: HashMap[Object, Int] */;
1620 val
* var3
/* : Array[Object] */;
1621 val
* var4
/* : Iterator[nullable Object] */;
1622 short int var5
/* : Bool */;
1623 val
* var6
/* : nullable Object */;
1624 val
* var_element
/* var element: Object */;
1625 long var7
/* : Int */;
1626 val
* var8
/* : nullable Object */;
1627 /* Covariant cast for argument 0 (elements) <p0:Set[Object]> isa Set[TypingColorer#0] */
1628 /* <p0:Set[Object]> isa Set[TypingColorer#0] */
1629 type_struct
= self
->type
->resolution_table
->types
[COLOR_abstract_collection__Setlayout_builders__TypingColorer_FT0
];
1630 cltype
= type_struct
->color
;
1631 idtype
= type_struct
->id
;
1632 if(cltype
>= p0
->type
->table_size
) {
1635 var1
= p0
->type
->type_table
[cltype
] == idtype
;
1638 var_class_name
= p0
== NULL ?
"null" : p0
->type
->name
;
1639 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "Set[TypingColorer#0]", var_class_name
);
1640 fprintf(stderr
, " (%s:%d)\n", "src/layout_builders.nit", 250);
1644 var2
= NEW_hash_collection__HashMap(self
->type
->resolution_table
->types
[COLOR_hash_collection__HashMaplayout_builders__TypingColorer_FT0kernel__Int
]);
1645 ((void (*)(val
*))(var2
->class->vft
[COLOR_hash_collection__HashMap__init
]))(var2
) /* init on <var2:HashMap[Object, Int]>*/;
1646 CHECK_NEW_hash_collection__HashMap(var2
);
1648 var3
= ((val
* (*)(val
*, val
*))(self
->class->vft
[COLOR_layout_builders__TypingColorer__reverse_linearize
]))(self
, var_elements
) /* reverse_linearize on <self:TypingColorer[Object]>*/;
1649 var4
= ((val
* (*)(val
*))(var3
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var3
) /* iterator on <var3:Array[Object]>*/;
1651 var5
= ((short int (*)(val
*))(var4
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var4
) /* is_ok on <var4:Iterator[nullable Object]>*/;
1653 var6
= ((val
* (*)(val
*))(var4
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var4
) /* item on <var4:Iterator[nullable Object]>*/;
1655 var7
= ((long (*)(val
*))(var_ids
->class->vft
[COLOR_abstract_collection__MapRead__length
]))(var_ids
) /* length on <var_ids:HashMap[Object, Int]>*/;
1656 var8
= BOX_kernel__Int(var7
); /* autobox from Int to nullable Object */
1657 ((void (*)(val
*, val
*, val
*))(var_ids
->class->vft
[COLOR_abstract_collection__Map___91d_93d_61d
]))(var_ids
, var_element
, var8
) /* []= on <var_ids:HashMap[Object, Int]>*/;
1658 CONTINUE_label
: (void)0;
1659 ((void (*)(val
*))(var4
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var4
) /* next on <var4:Iterator[nullable Object]>*/;
1661 BREAK_label
: (void)0;
1667 /* method layout_builders#TypingColorer#compute_ids for (self: Object, Set[Object]): Map[Object, Int] */
1668 val
* VIRTUAL_layout_builders__TypingColorer__compute_ids(val
* self
, val
* p0
) {
1669 val
* var
/* : Map[Object, Int] */;
1670 val
* var1
/* : Map[Object, Int] */;
1671 var1
= layout_builders__TypingColorer__compute_ids(self
, p0
);
1676 /* method layout_builders#TypingColorer#colorize for (self: TypingColorer[Object], Set[Object]): Map[Object, Int] */
1677 val
* layout_builders__TypingColorer__colorize(val
* self
, val
* p0
) {
1678 val
* var
/* : Map[Object, Int] */;
1679 short int var1
/* : Bool */;
1682 const struct type
* type_struct
;
1683 const char* var_class_name
;
1684 val
* var_elements
/* var elements: Set[Object] */;
1685 val
* var2
/* : Set[Object] */;
1686 val
* var3
/* : Set[Object] */;
1687 val
* var4
/* : Set[Object] */;
1688 val
* var5
/* : Map[Object, Int] */;
1689 /* Covariant cast for argument 0 (elements) <p0:Set[Object]> isa Set[TypingColorer#0] */
1690 /* <p0:Set[Object]> isa Set[TypingColorer#0] */
1691 type_struct
= self
->type
->resolution_table
->types
[COLOR_abstract_collection__Setlayout_builders__TypingColorer_FT0
];
1692 cltype
= type_struct
->color
;
1693 idtype
= type_struct
->id
;
1694 if(cltype
>= p0
->type
->table_size
) {
1697 var1
= p0
->type
->type_table
[cltype
] == idtype
;
1700 var_class_name
= p0
== NULL ?
"null" : p0
->type
->name
;
1701 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "Set[TypingColorer#0]", var_class_name
);
1702 fprintf(stderr
, " (%s:%d)\n", "src/layout_builders.nit", 258);
1706 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_layout_builders__TypingColorer__tag_elements
]))(self
, var_elements
) /* tag_elements on <self:TypingColorer[Object]>*/;
1707 ((void (*)(val
*))(self
->class->vft
[COLOR_layout_builders__TypingColorer__build_conflicts_graph
]))(self
) /* build_conflicts_graph on <self:TypingColorer[Object]>*/;
1708 var2
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_layout_builders__TypingColorer__core
]))(self
) /* core on <self:TypingColorer[Object]>*/;
1709 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_layout_builders__TypingColorer__colorize_elements
]))(self
, var2
) /* colorize_elements on <self:TypingColorer[Object]>*/;
1710 var3
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_layout_builders__TypingColorer__border
]))(self
) /* border on <self:TypingColorer[Object]>*/;
1711 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_layout_builders__TypingColorer__colorize_elements
]))(self
, var3
) /* colorize_elements on <self:TypingColorer[Object]>*/;
1712 var4
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_layout_builders__TypingColorer__crown
]))(self
) /* crown on <self:TypingColorer[Object]>*/;
1713 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_layout_builders__TypingColorer__colorize_elements
]))(self
, var4
) /* colorize_elements on <self:TypingColorer[Object]>*/;
1714 var5
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_layout_builders__TypingColorer__coloration_result
]))(self
) /* coloration_result on <self:TypingColorer[Object]>*/;
1720 /* method layout_builders#TypingColorer#colorize for (self: Object, Set[Object]): Map[Object, Int] */
1721 val
* VIRTUAL_layout_builders__TypingColorer__colorize(val
* self
, val
* p0
) {
1722 val
* var
/* : Map[Object, Int] */;
1723 val
* var1
/* : Map[Object, Int] */;
1724 var1
= layout_builders__TypingColorer__colorize(self
, p0
);
1729 /* method layout_builders#TypingColorer#colorize_elements for (self: TypingColorer[Object], Set[Object]) */
1730 void layout_builders__TypingColorer__colorize_elements(val
* self
, val
* p0
) {
1731 short int var
/* : Bool */;
1734 const struct type
* type_struct
;
1735 const char* var_class_name
;
1736 val
* var_elements
/* var elements: Set[Object] */;
1737 long var1
/* : Int */;
1738 long var_min_color
/* var min_color: Int */;
1739 val
* var2
/* : Array[Object] */;
1740 val
* var_lin
/* var lin: Array[Object] */;
1741 val
* var3
/* : Iterator[nullable Object] */;
1742 short int var4
/* : Bool */;
1743 val
* var5
/* : nullable Object */;
1744 val
* var_element
/* var element: Object */;
1745 long var_color
/* var color: Int */;
1746 short int var6
/* : Bool */;
1747 short int var7
/* : Bool */;
1748 long var8
/* : Int */;
1749 long var9
/* : Int */;
1750 long var11
/* : Int */;
1751 val
* var12
/* : Map[Object, Int] */;
1752 val
* var13
/* : nullable Object */;
1753 /* Covariant cast for argument 0 (elements) <p0:Set[Object]> isa Set[TypingColorer#0] */
1754 /* <p0:Set[Object]> isa Set[TypingColorer#0] */
1755 type_struct
= self
->type
->resolution_table
->types
[COLOR_abstract_collection__Setlayout_builders__TypingColorer_FT0
];
1756 cltype
= type_struct
->color
;
1757 idtype
= type_struct
->id
;
1758 if(cltype
>= p0
->type
->table_size
) {
1761 var
= p0
->type
->type_table
[cltype
] == idtype
;
1764 var_class_name
= p0
== NULL ?
"null" : p0
->type
->name
;
1765 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "Set[TypingColorer#0]", var_class_name
);
1766 fprintf(stderr
, " (%s:%d)\n", "src/layout_builders.nit", 267);
1771 var_min_color
= var1
;
1772 var2
= ((val
* (*)(val
*, val
*))(self
->class->vft
[COLOR_layout_builders__TypingColorer__reverse_linearize
]))(self
, var_elements
) /* reverse_linearize on <self:TypingColorer[Object]>*/;
1774 var3
= ((val
* (*)(val
*))(var_lin
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var_lin
) /* iterator on <var_lin:Array[Object]>*/;
1776 var4
= ((short int (*)(val
*))(var3
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var3
) /* is_ok on <var3:Iterator[nullable Object]>*/;
1778 var5
= ((val
* (*)(val
*))(var3
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var3
) /* item on <var3:Iterator[nullable Object]>*/;
1780 var_color
= var_min_color
;
1782 var6
= ((short int (*)(val
*, val
*, val
*, long))(self
->class->vft
[COLOR_layout_builders__TypingColorer__is_color_free
]))(self
, var_element
, var_elements
, var_color
) /* is_color_free on <self:TypingColorer[Object]>*/;
1786 { /* Inline kernel#Int#+ (var_color,var8) */
1787 var11
= var_color
+ var8
;
1790 RET_LABEL10
:(void)0;
1793 CONTINUE_label
: (void)0;
1795 BREAK_label
: (void)0;
1796 var12
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_layout_builders__TypingColorer__coloration_result
]))(self
) /* coloration_result on <self:TypingColorer[Object]>*/;
1797 var13
= BOX_kernel__Int(var_color
); /* autobox from Int to nullable Object */
1798 ((void (*)(val
*, val
*, val
*))(var12
->class->vft
[COLOR_abstract_collection__Map___91d_93d_61d
]))(var12
, var_element
, var13
) /* []= on <var12:Map[Object, Int]>*/;
1799 var_color
= var_min_color
;
1800 CONTINUE_label14
: (void)0;
1801 ((void (*)(val
*))(var3
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var3
) /* next on <var3:Iterator[nullable Object]>*/;
1803 BREAK_label14
: (void)0;
1806 /* method layout_builders#TypingColorer#colorize_elements for (self: Object, Set[Object]) */
1807 void VIRTUAL_layout_builders__TypingColorer__colorize_elements(val
* self
, val
* p0
) {
1808 layout_builders__TypingColorer__colorize_elements(self
, p0
);
1811 /* method layout_builders#TypingColorer#is_color_free for (self: TypingColorer[Object], Object, Set[Object], Int): Bool */
1812 short int layout_builders__TypingColorer__is_color_free(val
* self
, val
* p0
, val
* p1
, long p2
) {
1813 short int var
/* : Bool */;
1814 short int var1
/* : Bool */;
1817 const struct type
* type_struct
;
1818 const char* var_class_name
;
1819 short int var2
/* : Bool */;
1822 const struct type
* type_struct5
;
1823 const char* var_class_name6
;
1824 val
* var_element
/* var element: Object */;
1825 val
* var_elements
/* var elements: Set[Object] */;
1826 long var_color
/* var color: Int */;
1827 val
* var7
/* : nullable HashMap[Object, Set[Object]] */;
1828 short int var8
/* : Bool */;
1829 val
* var9
/* : nullable HashMap[Object, Set[Object]] */;
1830 val
* var10
/* : nullable Object */;
1831 val
* var11
/* : Iterator[nullable Object] */;
1832 short int var12
/* : Bool */;
1833 val
* var13
/* : nullable Object */;
1834 val
* var_st
/* var st: Object */;
1835 short int var14
/* : Bool */;
1836 val
* var15
/* : Map[Object, Int] */;
1837 short int var16
/* : Bool */;
1838 short int var_
/* var : Bool */;
1839 val
* var17
/* : Map[Object, Int] */;
1840 val
* var18
/* : nullable Object */;
1841 short int var19
/* : Bool */;
1842 short int var21
/* : Bool */;
1843 long var22
/* : Int */;
1844 short int var23
/* : Bool */;
1845 val
* var24
/* : nullable POSet[Object] */;
1846 val
* var25
/* : POSetElement[Object] */;
1847 val
* var26
/* : Collection[Object] */;
1848 val
* var27
/* : Iterator[nullable Object] */;
1849 short int var28
/* : Bool */;
1850 val
* var29
/* : nullable Object */;
1851 val
* var_st30
/* var st: Object */;
1852 short int var31
/* : Bool */;
1853 short int var33
/* : Bool */;
1854 val
* var34
/* : Map[Object, Int] */;
1855 short int var35
/* : Bool */;
1856 short int var_36
/* var : Bool */;
1857 val
* var37
/* : Map[Object, Int] */;
1858 val
* var38
/* : nullable Object */;
1859 short int var39
/* : Bool */;
1860 short int var41
/* : Bool */;
1861 long var42
/* : Int */;
1862 short int var43
/* : Bool */;
1863 short int var44
/* : Bool */;
1864 /* Covariant cast for argument 0 (element) <p0:Object> isa TypingColorer#0 */
1865 /* <p0:Object> isa TypingColorer#0 */
1866 type_struct
= self
->type
->resolution_table
->types
[COLOR_layout_builders__TypingColorer_FT0
];
1867 cltype
= type_struct
->color
;
1868 idtype
= type_struct
->id
;
1869 if(cltype
>= p0
->type
->table_size
) {
1872 var1
= p0
->type
->type_table
[cltype
] == idtype
;
1875 var_class_name
= p0
== NULL ?
"null" : p0
->type
->name
;
1876 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "TypingColorer#0", var_class_name
);
1877 fprintf(stderr
, " (%s:%d)\n", "src/layout_builders.nit", 282);
1880 /* Covariant cast for argument 1 (elements) <p1:Set[Object]> isa Set[TypingColorer#0] */
1881 /* <p1:Set[Object]> isa Set[TypingColorer#0] */
1882 type_struct5
= self
->type
->resolution_table
->types
[COLOR_abstract_collection__Setlayout_builders__TypingColorer_FT0
];
1883 cltype3
= type_struct5
->color
;
1884 idtype4
= type_struct5
->id
;
1885 if(cltype3
>= p1
->type
->table_size
) {
1888 var2
= p1
->type
->type_table
[cltype3
] == idtype4
;
1891 var_class_name6
= p1
== NULL ?
"null" : p1
->type
->name
;
1892 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "Set[TypingColorer#0]", var_class_name6
);
1893 fprintf(stderr
, " (%s:%d)\n", "src/layout_builders.nit", 282);
1899 var7
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_layout_builders__TypingColorer__conflicts_graph
]))(self
) /* conflicts_graph on <self:TypingColorer[Object]>*/;
1901 fprintf(stderr
, "Runtime error: %s", "Reciever is null");
1902 fprintf(stderr
, " (%s:%d)\n", "src/layout_builders.nit", 284);
1905 var8
= ((short int (*)(val
*, val
*))(var7
->class->vft
[COLOR_abstract_collection__MapRead__has_key
]))(var7
, var_element
) /* has_key on <var7:nullable HashMap[Object, Set[Object]]>*/;
1908 var9
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_layout_builders__TypingColorer__conflicts_graph
]))(self
) /* conflicts_graph on <self:TypingColorer[Object]>*/;
1910 fprintf(stderr
, "Runtime error: %s", "Reciever is null");
1911 fprintf(stderr
, " (%s:%d)\n", "src/layout_builders.nit", 285);
1914 var10
= ((val
* (*)(val
*, val
*))(var9
->class->vft
[COLOR_abstract_collection__MapRead___91d_93d
]))(var9
, var_element
) /* [] on <var9:nullable HashMap[Object, Set[Object]]>*/;
1916 var11
= ((val
* (*)(val
*))(var10
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var10
) /* iterator on <var10:nullable Object(Set[Object])>*/;
1918 var12
= ((short int (*)(val
*))(var11
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var11
) /* is_ok on <var11:Iterator[nullable Object]>*/;
1920 var13
= ((val
* (*)(val
*))(var11
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var11
) /* item on <var11:Iterator[nullable Object]>*/;
1922 var15
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_layout_builders__TypingColorer__coloration_result
]))(self
) /* coloration_result on <self:TypingColorer[Object]>*/;
1923 var16
= ((short int (*)(val
*, val
*))(var15
->class->vft
[COLOR_abstract_collection__MapRead__has_key
]))(var15
, var_st
) /* has_key on <var15:Map[Object, Int]>*/;
1926 var17
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_layout_builders__TypingColorer__coloration_result
]))(self
) /* coloration_result on <self:TypingColorer[Object]>*/;
1927 var18
= ((val
* (*)(val
*, val
*))(var17
->class->vft
[COLOR_abstract_collection__MapRead___91d_93d
]))(var17
, var_st
) /* [] on <var17:Map[Object, Int]>*/;
1928 { /* Inline kernel#Int#== (var18,var_color) */
1929 var21
= (var18
!= NULL
) && (var18
->class == &class_kernel__Int
);
1931 var22
= ((struct instance_kernel__Int
*)var18
)->value
; /* autounbox from nullable Object to Int */;
1932 var21
= (var22
== var_color
);
1936 RET_LABEL20
:(void)0;
1948 CONTINUE_label
: (void)0;
1949 ((void (*)(val
*))(var11
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var11
) /* next on <var11:Iterator[nullable Object]>*/;
1951 BREAK_label
: (void)0;
1954 var24
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_layout_builders__TypingLayoutBuilder__poset
]))(self
) /* poset on <self:TypingColorer[Object]>*/;
1955 if (var24
== NULL
) {
1956 fprintf(stderr
, "Runtime error: %s", "Reciever is null");
1957 fprintf(stderr
, " (%s:%d)\n", "src/layout_builders.nit", 289);
1960 var25
= ((val
* (*)(val
*, val
*))(var24
->class->vft
[COLOR_poset__POSet___91d_93d
]))(var24
, var_element
) /* [] on <var24:nullable POSet[Object]>*/;
1962 var26
= ((val
* (*)(val
*))(var25
->class->vft
[COLOR_poset__POSetElement__greaters
]))(var25
) /* greaters on <var25:POSetElement[Object]>*/;
1963 var27
= ((val
* (*)(val
*))(var26
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var26
) /* iterator on <var26:Collection[Object]>*/;
1965 var28
= ((short int (*)(val
*))(var27
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var27
) /* is_ok on <var27:Iterator[nullable Object]>*/;
1967 var29
= ((val
* (*)(val
*))(var27
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var27
) /* item on <var27:Iterator[nullable Object]>*/;
1969 var31
= ((short int (*)(val
*, val
*))(var_st30
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var_st30
, var_element
) /* == on <var_st30:Object>*/;
1971 goto CONTINUE_label32
;
1974 var34
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_layout_builders__TypingColorer__coloration_result
]))(self
) /* coloration_result on <self:TypingColorer[Object]>*/;
1975 var35
= ((short int (*)(val
*, val
*))(var34
->class->vft
[COLOR_abstract_collection__MapRead__has_key
]))(var34
, var_st30
) /* has_key on <var34:Map[Object, Int]>*/;
1978 var37
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_layout_builders__TypingColorer__coloration_result
]))(self
) /* coloration_result on <self:TypingColorer[Object]>*/;
1979 var38
= ((val
* (*)(val
*, val
*))(var37
->class->vft
[COLOR_abstract_collection__MapRead___91d_93d
]))(var37
, var_st30
) /* [] on <var37:Map[Object, Int]>*/;
1980 { /* Inline kernel#Int#== (var38,var_color) */
1981 var41
= (var38
!= NULL
) && (var38
->class == &class_kernel__Int
);
1983 var42
= ((struct instance_kernel__Int
*)var38
)->value
; /* autounbox from nullable Object to Int */;
1984 var41
= (var42
== var_color
);
1988 RET_LABEL40
:(void)0;
2000 CONTINUE_label32
: (void)0;
2001 ((void (*)(val
*))(var27
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var27
) /* next on <var27:Iterator[nullable Object]>*/;
2003 BREAK_label32
: (void)0;
2010 /* method layout_builders#TypingColorer#is_color_free for (self: Object, Object, Set[Object], Int): Bool */
2011 short int VIRTUAL_layout_builders__TypingColorer__is_color_free(val
* self
, val
* p0
, val
* p1
, long p2
) {
2012 short int var
/* : Bool */;
2013 short int var1
/* : Bool */;
2014 var1
= layout_builders__TypingColorer__is_color_free(self
, p0
, p1
, p2
);
2019 /* method layout_builders#TypingColorer#tag_elements for (self: TypingColorer[Object], Set[Object]) */
2020 void layout_builders__TypingColorer__tag_elements(val
* self
, val
* p0
) {
2021 short int var
/* : Bool */;
2024 const struct type
* type_struct
;
2025 const char* var_class_name
;
2026 val
* var_elements
/* var elements: Set[Object] */;
2027 val
* var1
/* : Iterator[nullable Object] */;
2028 short int var2
/* : Bool */;
2029 val
* var3
/* : nullable Object */;
2030 val
* var_element
/* var element: Object */;
2031 short int var4
/* : Bool */;
2032 short int var_all_subelements_si
/* var all_subelements_si: Bool */;
2033 val
* var5
/* : nullable POSet[Object] */;
2034 val
* var6
/* : POSetElement[Object] */;
2035 val
* var7
/* : Collection[Object] */;
2036 val
* var8
/* : Iterator[nullable Object] */;
2037 short int var9
/* : Bool */;
2038 val
* var10
/* : nullable Object */;
2039 val
* var_subelem
/* var subelem: Object */;
2040 val
* var11
/* : nullable POSet[Object] */;
2041 val
* var12
/* : POSetElement[Object] */;
2042 val
* var13
/* : Collection[Object] */;
2043 long var14
/* : Int */;
2044 long var15
/* : Int */;
2045 short int var16
/* : Bool */;
2046 short int var18
/* : Bool */;
2049 const char* var_class_name21
;
2050 short int var22
/* : Bool */;
2051 short int var23
/* : Bool */;
2052 val
* var24
/* : nullable POSet[Object] */;
2053 val
* var25
/* : POSetElement[Object] */;
2054 val
* var26
/* : Collection[Object] */;
2055 long var27
/* : Int */;
2056 long var28
/* : Int */;
2057 short int var29
/* : Bool */;
2058 short int var31
/* : Bool */;
2061 const char* var_class_name34
;
2062 short int var35
/* : Bool */;
2063 val
* var36
/* : Set[Object] */;
2064 val
* var37
/* : nullable POSet[Object] */;
2065 val
* var38
/* : POSetElement[Object] */;
2066 val
* var39
/* : Collection[Object] */;
2067 val
* var40
/* : Set[Object] */;
2068 short int var41
/* : Bool */;
2069 val
* var42
/* : Set[Object] */;
2070 val
* var43
/* : nullable POSet[Object] */;
2071 val
* var44
/* : POSetElement[Object] */;
2072 val
* var45
/* : Collection[Object] */;
2073 val
* var46
/* : Set[Object] */;
2074 /* Covariant cast for argument 0 (elements) <p0:Set[Object]> isa Set[TypingColorer#0] */
2075 /* <p0:Set[Object]> isa Set[TypingColorer#0] */
2076 type_struct
= self
->type
->resolution_table
->types
[COLOR_abstract_collection__Setlayout_builders__TypingColorer_FT0
];
2077 cltype
= type_struct
->color
;
2078 idtype
= type_struct
->id
;
2079 if(cltype
>= p0
->type
->table_size
) {
2082 var
= p0
->type
->type_table
[cltype
] == idtype
;
2085 var_class_name
= p0
== NULL ?
"null" : p0
->type
->name
;
2086 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "Set[TypingColorer#0]", var_class_name
);
2087 fprintf(stderr
, " (%s:%d)\n", "src/layout_builders.nit", 296);
2091 var1
= ((val
* (*)(val
*))(var_elements
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var_elements
) /* iterator on <var_elements:Set[Object]>*/;
2093 var2
= ((short int (*)(val
*))(var1
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var1
) /* is_ok on <var1:Iterator[nullable Object]>*/;
2095 var3
= ((val
* (*)(val
*))(var1
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var1
) /* item on <var1:Iterator[nullable Object]>*/;
2098 var_all_subelements_si
= var4
;
2099 var5
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_layout_builders__TypingLayoutBuilder__poset
]))(self
) /* poset on <self:TypingColorer[Object]>*/;
2101 fprintf(stderr
, "Runtime error: %s", "Reciever is null");
2102 fprintf(stderr
, " (%s:%d)\n", "src/layout_builders.nit", 301);
2105 var6
= ((val
* (*)(val
*, val
*))(var5
->class->vft
[COLOR_poset__POSet___91d_93d
]))(var5
, var_element
) /* [] on <var5:nullable POSet[Object]>*/;
2107 var7
= ((val
* (*)(val
*))(var6
->class->vft
[COLOR_poset__POSetElement__smallers
]))(var6
) /* smallers on <var6:POSetElement[Object]>*/;
2108 var8
= ((val
* (*)(val
*))(var7
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var7
) /* iterator on <var7:Collection[Object]>*/;
2110 var9
= ((short int (*)(val
*))(var8
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var8
) /* is_ok on <var8:Iterator[nullable Object]>*/;
2112 var10
= ((val
* (*)(val
*))(var8
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var8
) /* item on <var8:Iterator[nullable Object]>*/;
2113 var_subelem
= var10
;
2114 var11
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_layout_builders__TypingLayoutBuilder__poset
]))(self
) /* poset on <self:TypingColorer[Object]>*/;
2115 if (var11
== NULL
) {
2116 fprintf(stderr
, "Runtime error: %s", "Reciever is null");
2117 fprintf(stderr
, " (%s:%d)\n", "src/layout_builders.nit", 302);
2120 var12
= ((val
* (*)(val
*, val
*))(var11
->class->vft
[COLOR_poset__POSet___91d_93d
]))(var11
, var_subelem
) /* [] on <var11:nullable POSet[Object]>*/;
2122 var13
= ((val
* (*)(val
*))(var12
->class->vft
[COLOR_poset__POSetElement__direct_greaters
]))(var12
) /* direct_greaters on <var12:POSetElement[Object]>*/;
2123 var14
= ((long (*)(val
*))(var13
->class->vft
[COLOR_abstract_collection__Collection__length
]))(var13
) /* length on <var13:Collection[Object]>*/;
2125 { /* Inline kernel#Int#> (var14,var15) */
2126 /* Covariant cast for argument 0 (i) <var15:Int> isa OTHER */
2127 /* <var15:Int> isa OTHER */
2128 var18
= 1; /* easy <var15:Int> isa OTHER*/
2130 var_class_name21
= type_kernel__Int
.name
;
2131 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name21
);
2132 fprintf(stderr
, " (%s:%d)\n", "lib/standard/kernel.nit", 263);
2135 var22
= var14
> var15
;
2138 RET_LABEL17
:(void)0;
2142 var_all_subelements_si
= var23
;
2146 CONTINUE_label
: (void)0;
2147 ((void (*)(val
*))(var8
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var8
) /* next on <var8:Iterator[nullable Object]>*/;
2149 BREAK_label
: (void)0;
2150 var24
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_layout_builders__TypingLayoutBuilder__poset
]))(self
) /* poset on <self:TypingColorer[Object]>*/;
2151 if (var24
== NULL
) {
2152 fprintf(stderr
, "Runtime error: %s", "Reciever is null");
2153 fprintf(stderr
, " (%s:%d)\n", "src/layout_builders.nit", 309);
2156 var25
= ((val
* (*)(val
*, val
*))(var24
->class->vft
[COLOR_poset__POSet___91d_93d
]))(var24
, var_element
) /* [] on <var24:nullable POSet[Object]>*/;
2158 var26
= ((val
* (*)(val
*))(var25
->class->vft
[COLOR_poset__POSetElement__direct_greaters
]))(var25
) /* direct_greaters on <var25:POSetElement[Object]>*/;
2159 var27
= ((long (*)(val
*))(var26
->class->vft
[COLOR_abstract_collection__Collection__length
]))(var26
) /* length on <var26:Collection[Object]>*/;
2161 { /* Inline kernel#Int#> (var27,var28) */
2162 /* Covariant cast for argument 0 (i) <var28:Int> isa OTHER */
2163 /* <var28:Int> isa OTHER */
2164 var31
= 1; /* easy <var28:Int> isa OTHER*/
2166 var_class_name34
= type_kernel__Int
.name
;
2167 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name34
);
2168 fprintf(stderr
, " (%s:%d)\n", "lib/standard/kernel.nit", 263);
2171 var35
= var27
> var28
;
2174 RET_LABEL30
:(void)0;
2177 var36
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_layout_builders__TypingColorer__core
]))(self
) /* core on <self:TypingColorer[Object]>*/;
2178 var37
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_layout_builders__TypingLayoutBuilder__poset
]))(self
) /* poset on <self:TypingColorer[Object]>*/;
2179 if (var37
== NULL
) {
2180 fprintf(stderr
, "Runtime error: %s", "Reciever is null");
2181 fprintf(stderr
, " (%s:%d)\n", "src/layout_builders.nit", 310);
2184 var38
= ((val
* (*)(val
*, val
*))(var37
->class->vft
[COLOR_poset__POSet___91d_93d
]))(var37
, var_element
) /* [] on <var37:nullable POSet[Object]>*/;
2186 var39
= ((val
* (*)(val
*))(var38
->class->vft
[COLOR_poset__POSetElement__greaters
]))(var38
) /* greaters on <var38:POSetElement[Object]>*/;
2187 ((void (*)(val
*, val
*))(var36
->class->vft
[COLOR_abstract_collection__SimpleCollection__add_all
]))(var36
, var39
) /* add_all on <var36:Set[Object]>*/;
2188 if (var_all_subelements_si
){
2189 var40
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_layout_builders__TypingColorer__border
]))(self
) /* border on <self:TypingColorer[Object]>*/;
2190 ((void (*)(val
*, val
*))(var40
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var40
, var_element
) /* add on <var40:Set[Object]>*/;
2194 var41
= !var_all_subelements_si
;
2196 var42
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_layout_builders__TypingColorer__core
]))(self
) /* core on <self:TypingColorer[Object]>*/;
2197 var43
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_layout_builders__TypingLayoutBuilder__poset
]))(self
) /* poset on <self:TypingColorer[Object]>*/;
2198 if (var43
== NULL
) {
2199 fprintf(stderr
, "Runtime error: %s", "Reciever is null");
2200 fprintf(stderr
, " (%s:%d)\n", "src/layout_builders.nit", 315);
2203 var44
= ((val
* (*)(val
*, val
*))(var43
->class->vft
[COLOR_poset__POSet___91d_93d
]))(var43
, var_element
) /* [] on <var43:nullable POSet[Object]>*/;
2205 var45
= ((val
* (*)(val
*))(var44
->class->vft
[COLOR_poset__POSetElement__greaters
]))(var44
) /* greaters on <var44:POSetElement[Object]>*/;
2206 ((void (*)(val
*, val
*))(var42
->class->vft
[COLOR_abstract_collection__SimpleCollection__add_all
]))(var42
, var45
) /* add_all on <var42:Set[Object]>*/;
2208 var46
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_layout_builders__TypingColorer__crown
]))(self
) /* crown on <self:TypingColorer[Object]>*/;
2209 ((void (*)(val
*, val
*))(var46
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var46
, var_element
) /* add on <var46:Set[Object]>*/;
2212 CONTINUE_label47
: (void)0;
2213 ((void (*)(val
*))(var1
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var1
) /* next on <var1:Iterator[nullable Object]>*/;
2215 BREAK_label47
: (void)0;
2218 /* method layout_builders#TypingColorer#tag_elements for (self: Object, Set[Object]) */
2219 void VIRTUAL_layout_builders__TypingColorer__tag_elements(val
* self
, val
* p0
) {
2220 layout_builders__TypingColorer__tag_elements(self
, p0
);
2223 /* method layout_builders#TypingColorer#build_conflicts_graph for (self: TypingColorer[Object]) */
2224 void layout_builders__TypingColorer__build_conflicts_graph(val
* self
) {
2225 val
* var
/* : HashMap[Object, HashSet[Object]] */;
2226 val
* var1
/* : Set[Object] */;
2227 val
* var2
/* : Array[Object] */;
2228 val
* var_core
/* var core: Array[Object] */;
2229 val
* var3
/* : Iterator[nullable Object] */;
2230 short int var4
/* : Bool */;
2231 val
* var5
/* : nullable Object */;
2232 val
* var_t
/* var t: Object */;
2233 val
* var6
/* : Array[Object] */;
2234 val
* var7
/* : Iterator[nullable Object] */;
2235 short int var8
/* : Bool */;
2236 val
* var9
/* : nullable Object */;
2237 val
* var_i
/* var i: Object */;
2238 short int var10
/* : Bool */;
2239 val
* var11
/* : Array[Object] */;
2240 val
* var_lin_i
/* var lin_i: Array[Object] */;
2241 val
* var12
/* : Array[Object] */;
2242 val
* var13
/* : Iterator[nullable Object] */;
2243 short int var14
/* : Bool */;
2244 val
* var15
/* : nullable Object */;
2245 val
* var_j
/* var j: Object */;
2246 short int var16
/* : Bool */;
2247 short int var17
/* : Bool */;
2248 short int var_
/* var : Bool */;
2249 short int var18
/* : Bool */;
2250 val
* var20
/* : Array[Object] */;
2251 val
* var_lin_j
/* var lin_j: Array[Object] */;
2252 val
* var21
/* : Array[nullable Object] */;
2253 val
* var_d_ij
/* var d_ij: Array[Object] */;
2254 val
* var22
/* : Array[nullable Object] */;
2255 val
* var_d_ji
/* var d_ji: Array[Object] */;
2256 val
* var23
/* : Iterator[nullable Object] */;
2257 short int var24
/* : Bool */;
2258 val
* var25
/* : nullable Object */;
2259 val
* var_ed1
/* var ed1: Object */;
2260 val
* var26
/* : nullable HashMap[Object, Set[Object]] */;
2261 short int var27
/* : Bool */;
2262 short int var28
/* : Bool */;
2263 val
* var29
/* : nullable HashMap[Object, Set[Object]] */;
2264 val
* var30
/* : HashSet[Object] */;
2265 val
* var31
/* : Iterator[nullable Object] */;
2266 short int var32
/* : Bool */;
2267 val
* var33
/* : nullable Object */;
2268 val
* var_ed2
/* var ed2: Object */;
2269 val
* var34
/* : nullable HashMap[Object, Set[Object]] */;
2270 val
* var35
/* : nullable Object */;
2271 val
* var38
/* : Iterator[nullable Object] */;
2272 short int var39
/* : Bool */;
2273 val
* var40
/* : nullable Object */;
2274 val
* var_ed141
/* var ed1: Object */;
2275 val
* var42
/* : nullable HashMap[Object, Set[Object]] */;
2276 short int var43
/* : Bool */;
2277 short int var44
/* : Bool */;
2278 val
* var45
/* : nullable HashMap[Object, Set[Object]] */;
2279 val
* var46
/* : HashSet[Object] */;
2280 val
* var47
/* : Iterator[nullable Object] */;
2281 short int var48
/* : Bool */;
2282 val
* var49
/* : nullable Object */;
2283 val
* var_ed250
/* var ed2: Object */;
2284 val
* var51
/* : nullable HashMap[Object, Set[Object]] */;
2285 val
* var52
/* : nullable Object */;
2286 var
= NEW_hash_collection__HashMap(self
->type
->resolution_table
->types
[COLOR_hash_collection__HashMaplayout_builders__TypingColorer_FT0hash_collection__HashSetlayout_builders__TypingColorer_FT0
]);
2287 ((void (*)(val
*))(var
->class->vft
[COLOR_hash_collection__HashMap__init
]))(var
) /* init on <var:HashMap[Object, HashSet[Object]]>*/;
2288 CHECK_NEW_hash_collection__HashMap(var
);
2289 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_layout_builders__TypingColorer__conflicts_graph_61d
]))(self
, var
) /* conflicts_graph= on <self:TypingColorer[Object]>*/;
2290 var1
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_layout_builders__TypingColorer__core
]))(self
) /* core on <self:TypingColorer[Object]>*/;
2291 var2
= ((val
* (*)(val
*, val
*))(self
->class->vft
[COLOR_layout_builders__TypingColorer__reverse_linearize
]))(self
, var1
) /* reverse_linearize on <self:TypingColorer[Object]>*/;
2293 var3
= ((val
* (*)(val
*))(var_core
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var_core
) /* iterator on <var_core:Array[Object]>*/;
2295 var4
= ((short int (*)(val
*))(var3
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var3
) /* is_ok on <var3:Iterator[nullable Object]>*/;
2297 var5
= ((val
* (*)(val
*))(var3
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var3
) /* item on <var3:Iterator[nullable Object]>*/;
2299 var6
= ((val
* (*)(val
*, val
*))(self
->class->vft
[COLOR_layout_builders__TypingColorer__linear_extension
]))(self
, var_t
) /* linear_extension on <self:TypingColorer[Object]>*/;
2300 var7
= ((val
* (*)(val
*))(var6
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var6
) /* iterator on <var6:Array[Object]>*/;
2302 var8
= ((short int (*)(val
*))(var7
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var7
) /* is_ok on <var7:Iterator[nullable Object]>*/;
2304 var9
= ((val
* (*)(val
*))(var7
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var7
) /* item on <var7:Iterator[nullable Object]>*/;
2306 var10
= ((short int (*)(val
*, val
*))(var_t
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var_t
, var_i
) /* == on <var_t:Object>*/;
2308 goto CONTINUE_label
;
2311 var11
= ((val
* (*)(val
*, val
*))(self
->class->vft
[COLOR_layout_builders__TypingColorer__linear_extension
]))(self
, var_i
) /* linear_extension on <self:TypingColorer[Object]>*/;
2313 var12
= ((val
* (*)(val
*, val
*))(self
->class->vft
[COLOR_layout_builders__TypingColorer__linear_extension
]))(self
, var_t
) /* linear_extension on <self:TypingColorer[Object]>*/;
2314 var13
= ((val
* (*)(val
*))(var12
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var12
) /* iterator on <var12:Array[Object]>*/;
2316 var14
= ((short int (*)(val
*))(var13
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var13
) /* is_ok on <var13:Iterator[nullable Object]>*/;
2318 var15
= ((val
* (*)(val
*))(var13
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var13
) /* item on <var13:Iterator[nullable Object]>*/;
2320 var17
= ((short int (*)(val
*, val
*))(var_i
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var_i
, var_j
) /* == on <var_i:Object>*/;
2325 var18
= ((short int (*)(val
*, val
*))(var_j
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var_j
, var_t
) /* == on <var_j:Object>*/;
2329 goto CONTINUE_label19
;
2332 var20
= ((val
* (*)(val
*, val
*))(self
->class->vft
[COLOR_layout_builders__TypingColorer__linear_extension
]))(self
, var_j
) /* linear_extension on <self:TypingColorer[Object]>*/;
2334 var21
= ((val
* (*)(val
*, val
*))(var_lin_i
->class->vft
[COLOR_abstract_compiler__Array___45d
]))(var_lin_i
, var_lin_j
) /* - on <var_lin_i:Array[Object]>*/;
2336 var22
= ((val
* (*)(val
*, val
*))(var_lin_j
->class->vft
[COLOR_abstract_compiler__Array___45d
]))(var_lin_j
, var_lin_i
) /* - on <var_lin_j:Array[Object]>*/;
2338 var23
= ((val
* (*)(val
*))(var_d_ij
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var_d_ij
) /* iterator on <var_d_ij:Array[Object]>*/;
2340 var24
= ((short int (*)(val
*))(var23
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var23
) /* is_ok on <var23:Iterator[nullable Object]>*/;
2342 var25
= ((val
* (*)(val
*))(var23
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var23
) /* item on <var23:Iterator[nullable Object]>*/;
2344 var26
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_layout_builders__TypingColorer__conflicts_graph
]))(self
) /* conflicts_graph on <self:TypingColorer[Object]>*/;
2345 if (var26
== NULL
) {
2346 fprintf(stderr
, "Runtime error: %s", "Reciever is null");
2347 fprintf(stderr
, " (%s:%d)\n", "src/layout_builders.nit", 340);
2350 var27
= ((short int (*)(val
*, val
*))(var26
->class->vft
[COLOR_abstract_collection__MapRead__has_key
]))(var26
, var_ed1
) /* has_key on <var26:nullable HashMap[Object, Set[Object]]>*/;
2354 var29
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_layout_builders__TypingColorer__conflicts_graph
]))(self
) /* conflicts_graph on <self:TypingColorer[Object]>*/;
2355 var30
= NEW_hash_collection__HashSet(self
->type
->resolution_table
->types
[COLOR_hash_collection__HashSetlayout_builders__TypingColorer_FT0
]);
2356 ((void (*)(val
*))(var30
->class->vft
[COLOR_hash_collection__HashSet__init
]))(var30
) /* init on <var30:HashSet[Object]>*/;
2357 CHECK_NEW_hash_collection__HashSet(var30
);
2358 if (var29
== NULL
) {
2359 fprintf(stderr
, "Runtime error: %s", "Reciever is null");
2360 fprintf(stderr
, " (%s:%d)\n", "src/layout_builders.nit", 340);
2363 ((void (*)(val
*, val
*, val
*))(var29
->class->vft
[COLOR_abstract_collection__Map___91d_93d_61d
]))(var29
, var_ed1
, var30
) /* []= on <var29:nullable HashMap[Object, Set[Object]]>*/;
2367 var31
= ((val
* (*)(val
*))(var_d_ji
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var_d_ji
) /* iterator on <var_d_ji:Array[Object]>*/;
2369 var32
= ((short int (*)(val
*))(var31
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var31
) /* is_ok on <var31:Iterator[nullable Object]>*/;
2371 var33
= ((val
* (*)(val
*))(var31
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var31
) /* item on <var31:Iterator[nullable Object]>*/;
2373 var34
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_layout_builders__TypingColorer__conflicts_graph
]))(self
) /* conflicts_graph on <self:TypingColorer[Object]>*/;
2374 if (var34
== NULL
) {
2375 fprintf(stderr
, "Runtime error: %s", "Reciever is null");
2376 fprintf(stderr
, " (%s:%d)\n", "src/layout_builders.nit", 342);
2379 var35
= ((val
* (*)(val
*, val
*))(var34
->class->vft
[COLOR_abstract_collection__MapRead___91d_93d
]))(var34
, var_ed1
) /* [] on <var34:nullable HashMap[Object, Set[Object]]>*/;
2381 ((void (*)(val
*, val
*))(var35
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var35
, var_ed2
) /* add on <var35:nullable Object(Set[Object])>*/;
2382 CONTINUE_label36
: (void)0;
2383 ((void (*)(val
*))(var31
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var31
) /* next on <var31:Iterator[nullable Object]>*/;
2385 BREAK_label36
: (void)0;
2386 CONTINUE_label37
: (void)0;
2387 ((void (*)(val
*))(var23
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var23
) /* next on <var23:Iterator[nullable Object]>*/;
2389 BREAK_label37
: (void)0;
2390 var38
= ((val
* (*)(val
*))(var_d_ij
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var_d_ij
) /* iterator on <var_d_ij:Array[Object]>*/;
2392 var39
= ((short int (*)(val
*))(var38
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var38
) /* is_ok on <var38:Iterator[nullable Object]>*/;
2394 var40
= ((val
* (*)(val
*))(var38
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var38
) /* item on <var38:Iterator[nullable Object]>*/;
2396 var42
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_layout_builders__TypingColorer__conflicts_graph
]))(self
) /* conflicts_graph on <self:TypingColorer[Object]>*/;
2397 if (var42
== NULL
) {
2398 fprintf(stderr
, "Runtime error: %s", "Reciever is null");
2399 fprintf(stderr
, " (%s:%d)\n", "src/layout_builders.nit", 345);
2402 var43
= ((short int (*)(val
*, val
*))(var42
->class->vft
[COLOR_abstract_collection__MapRead__has_key
]))(var42
, var_ed141
) /* has_key on <var42:nullable HashMap[Object, Set[Object]]>*/;
2406 var45
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_layout_builders__TypingColorer__conflicts_graph
]))(self
) /* conflicts_graph on <self:TypingColorer[Object]>*/;
2407 var46
= NEW_hash_collection__HashSet(self
->type
->resolution_table
->types
[COLOR_hash_collection__HashSetlayout_builders__TypingColorer_FT0
]);
2408 ((void (*)(val
*))(var46
->class->vft
[COLOR_hash_collection__HashSet__init
]))(var46
) /* init on <var46:HashSet[Object]>*/;
2409 CHECK_NEW_hash_collection__HashSet(var46
);
2410 if (var45
== NULL
) {
2411 fprintf(stderr
, "Runtime error: %s", "Reciever is null");
2412 fprintf(stderr
, " (%s:%d)\n", "src/layout_builders.nit", 345);
2415 ((void (*)(val
*, val
*, val
*))(var45
->class->vft
[COLOR_abstract_collection__Map___91d_93d_61d
]))(var45
, var_ed141
, var46
) /* []= on <var45:nullable HashMap[Object, Set[Object]]>*/;
2419 var47
= ((val
* (*)(val
*))(var_d_ji
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var_d_ji
) /* iterator on <var_d_ji:Array[Object]>*/;
2421 var48
= ((short int (*)(val
*))(var47
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var47
) /* is_ok on <var47:Iterator[nullable Object]>*/;
2423 var49
= ((val
* (*)(val
*))(var47
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var47
) /* item on <var47:Iterator[nullable Object]>*/;
2425 var51
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_layout_builders__TypingColorer__conflicts_graph
]))(self
) /* conflicts_graph on <self:TypingColorer[Object]>*/;
2426 if (var51
== NULL
) {
2427 fprintf(stderr
, "Runtime error: %s", "Reciever is null");
2428 fprintf(stderr
, " (%s:%d)\n", "src/layout_builders.nit", 347);
2431 var52
= ((val
* (*)(val
*, val
*))(var51
->class->vft
[COLOR_abstract_collection__MapRead___91d_93d
]))(var51
, var_ed141
) /* [] on <var51:nullable HashMap[Object, Set[Object]]>*/;
2433 ((void (*)(val
*, val
*))(var52
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var52
, var_ed250
) /* add on <var52:nullable Object(Set[Object])>*/;
2434 CONTINUE_label53
: (void)0;
2435 ((void (*)(val
*))(var47
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var47
) /* next on <var47:Iterator[nullable Object]>*/;
2437 BREAK_label53
: (void)0;
2438 CONTINUE_label54
: (void)0;
2439 ((void (*)(val
*))(var38
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var38
) /* next on <var38:Iterator[nullable Object]>*/;
2441 BREAK_label54
: (void)0;
2442 CONTINUE_label19
: (void)0;
2443 ((void (*)(val
*))(var13
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var13
) /* next on <var13:Iterator[nullable Object]>*/;
2445 BREAK_label19
: (void)0;
2446 CONTINUE_label
: (void)0;
2447 ((void (*)(val
*))(var7
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var7
) /* next on <var7:Iterator[nullable Object]>*/;
2449 BREAK_label
: (void)0;
2450 CONTINUE_label55
: (void)0;
2451 ((void (*)(val
*))(var3
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var3
) /* next on <var3:Iterator[nullable Object]>*/;
2453 BREAK_label55
: (void)0;
2456 /* method layout_builders#TypingColorer#build_conflicts_graph for (self: Object) */
2457 void VIRTUAL_layout_builders__TypingColorer__build_conflicts_graph(val
* self
) {
2458 layout_builders__TypingColorer__build_conflicts_graph(self
);
2461 /* method layout_builders#TypingColorer#conflicts_graph for (self: TypingColorer[Object]): nullable HashMap[Object, Set[Object]] */
2462 val
* layout_builders__TypingColorer__conflicts_graph(val
* self
) {
2463 val
* var
/* : nullable HashMap[Object, Set[Object]] */;
2464 val
* var1
/* : nullable HashMap[Object, Set[Object]] */;
2465 var1
= self
->attrs
[COLOR_layout_builders__TypingColorer___64dconflicts_graph
].val
; /* @conflicts_graph on <self:TypingColorer[Object]> */
2470 /* method layout_builders#TypingColorer#conflicts_graph for (self: Object): nullable HashMap[Object, Set[Object]] */
2471 val
* VIRTUAL_layout_builders__TypingColorer__conflicts_graph(val
* self
) {
2472 val
* var
/* : nullable HashMap[Object, Set[Object]] */;
2473 val
* var1
/* : nullable HashMap[Object, Set[Object]] */;
2474 var1
= layout_builders__TypingColorer__conflicts_graph(self
);
2479 /* method layout_builders#TypingColorer#conflicts_graph= for (self: TypingColorer[Object], nullable HashMap[Object, Set[Object]]) */
2480 void layout_builders__TypingColorer__conflicts_graph_61d(val
* self
, val
* p0
) {
2481 short int var
/* : Bool */;
2484 const struct type
* type_struct
;
2485 const char* var_class_name
;
2486 /* Covariant cast for argument 0 (conflicts_graph) <p0:nullable HashMap[Object, Set[Object]]> isa nullable HashMap[TypingColorer#0, Set[TypingColorer#0]] */
2487 /* <p0:nullable HashMap[Object, Set[Object]]> isa nullable HashMap[TypingColorer#0, Set[TypingColorer#0]] */
2488 type_struct
= self
->type
->resolution_table
->types
[COLOR_hash_collection__HashMaplayout_builders__TypingColorer_FT0abstract_collection__Setlayout_builders__TypingColorer_FT0
];
2489 cltype
= type_struct
->color
;
2490 idtype
= type_struct
->id
;
2494 if(cltype
>= p0
->type
->table_size
) {
2497 var
= p0
->type
->type_table
[cltype
] == idtype
;
2501 var_class_name
= p0
== NULL ?
"null" : p0
->type
->name
;
2502 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable HashMap[TypingColorer#0, Set[TypingColorer#0]]", var_class_name
);
2503 fprintf(stderr
, " (%s:%d)\n", "src/layout_builders.nit", 354);
2506 self
->attrs
[COLOR_layout_builders__TypingColorer___64dconflicts_graph
].val
= p0
; /* @conflicts_graph on <self:TypingColorer[Object]> */
2509 /* method layout_builders#TypingColorer#conflicts_graph= for (self: Object, nullable HashMap[Object, Set[Object]]) */
2510 void VIRTUAL_layout_builders__TypingColorer__conflicts_graph_61d(val
* self
, val
* p0
) {
2511 layout_builders__TypingColorer__conflicts_graph_61d(self
, p0
);
2514 /* method layout_builders#TypingColorer#linear_extensions_cache for (self: TypingColorer[Object]): Map[Object, Array[Object]] */
2515 val
* layout_builders__TypingColorer__linear_extensions_cache(val
* self
) {
2516 val
* var
/* : Map[Object, Array[Object]] */;
2517 val
* var1
/* : Map[Object, Array[Object]] */;
2518 var1
= self
->attrs
[COLOR_layout_builders__TypingColorer___64dlinear_extensions_cache
].val
; /* @linear_extensions_cache on <self:TypingColorer[Object]> */
2520 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute @linear_extensions_cache");
2521 fprintf(stderr
, " (%s:%d)\n", "src/layout_builders.nit", 356);
2528 /* method layout_builders#TypingColorer#linear_extensions_cache for (self: Object): Map[Object, Array[Object]] */
2529 val
* VIRTUAL_layout_builders__TypingColorer__linear_extensions_cache(val
* self
) {
2530 val
* var
/* : Map[Object, Array[Object]] */;
2531 val
* var1
/* : Map[Object, Array[Object]] */;
2532 var1
= layout_builders__TypingColorer__linear_extensions_cache(self
);
2537 /* method layout_builders#TypingColorer#linear_extensions_cache= for (self: TypingColorer[Object], Map[Object, Array[Object]]) */
2538 void layout_builders__TypingColorer__linear_extensions_cache_61d(val
* self
, val
* p0
) {
2539 short int var
/* : Bool */;
2542 const struct type
* type_struct
;
2543 const char* var_class_name
;
2544 /* Covariant cast for argument 0 (linear_extensions_cache) <p0:Map[Object, Array[Object]]> isa Map[TypingColorer#0, Array[TypingColorer#0]] */
2545 /* <p0:Map[Object, Array[Object]]> isa Map[TypingColorer#0, Array[TypingColorer#0]] */
2546 type_struct
= self
->type
->resolution_table
->types
[COLOR_abstract_collection__Maplayout_builders__TypingColorer_FT0array__Arraylayout_builders__TypingColorer_FT0
];
2547 cltype
= type_struct
->color
;
2548 idtype
= type_struct
->id
;
2549 if(cltype
>= p0
->type
->table_size
) {
2552 var
= p0
->type
->type_table
[cltype
] == idtype
;
2555 var_class_name
= p0
== NULL ?
"null" : p0
->type
->name
;
2556 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "Map[TypingColorer#0, Array[TypingColorer#0]]", var_class_name
);
2557 fprintf(stderr
, " (%s:%d)\n", "src/layout_builders.nit", 356);
2560 self
->attrs
[COLOR_layout_builders__TypingColorer___64dlinear_extensions_cache
].val
= p0
; /* @linear_extensions_cache on <self:TypingColorer[Object]> */
2563 /* method layout_builders#TypingColorer#linear_extensions_cache= for (self: Object, Map[Object, Array[Object]]) */
2564 void VIRTUAL_layout_builders__TypingColorer__linear_extensions_cache_61d(val
* self
, val
* p0
) {
2565 layout_builders__TypingColorer__linear_extensions_cache_61d(self
, p0
);
2568 /* method layout_builders#TypingColorer#linear_extension for (self: TypingColorer[Object], Object): Array[Object] */
2569 val
* layout_builders__TypingColorer__linear_extension(val
* self
, val
* p0
) {
2570 val
* var
/* : Array[Object] */;
2571 short int var1
/* : Bool */;
2574 const struct type
* type_struct
;
2575 const char* var_class_name
;
2576 val
* var_element
/* var element: Object */;
2577 val
* var2
/* : Map[Object, Array[Object]] */;
2578 short int var3
/* : Bool */;
2579 short int var4
/* : Bool */;
2580 val
* var5
/* : HashSet[Object] */;
2581 val
* var_supers
/* var supers: HashSet[Object] */;
2582 val
* var6
/* : nullable POSet[Object] */;
2583 val
* var7
/* : POSetElement[Object] */;
2584 val
* var8
/* : Collection[Object] */;
2585 val
* var9
/* : Map[Object, Array[Object]] */;
2586 val
* var10
/* : Array[Object] */;
2587 val
* var11
/* : Map[Object, Array[Object]] */;
2588 val
* var12
/* : nullable Object */;
2589 /* Covariant cast for argument 0 (element) <p0:Object> isa TypingColorer#0 */
2590 /* <p0:Object> isa TypingColorer#0 */
2591 type_struct
= self
->type
->resolution_table
->types
[COLOR_layout_builders__TypingColorer_FT0
];
2592 cltype
= type_struct
->color
;
2593 idtype
= type_struct
->id
;
2594 if(cltype
>= p0
->type
->table_size
) {
2597 var1
= p0
->type
->type_table
[cltype
] == idtype
;
2600 var_class_name
= p0
== NULL ?
"null" : p0
->type
->name
;
2601 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "TypingColorer#0", var_class_name
);
2602 fprintf(stderr
, " (%s:%d)\n", "src/layout_builders.nit", 359);
2606 var2
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_layout_builders__TypingColorer__linear_extensions_cache
]))(self
) /* linear_extensions_cache on <self:TypingColorer[Object]>*/;
2607 var3
= ((short int (*)(val
*, val
*))(var2
->class->vft
[COLOR_abstract_collection__MapRead__has_key
]))(var2
, var_element
) /* has_key on <var2:Map[Object, Array[Object]]>*/;
2610 var5
= NEW_hash_collection__HashSet(self
->type
->resolution_table
->types
[COLOR_hash_collection__HashSetlayout_builders__TypingColorer_FT0
]);
2611 ((void (*)(val
*))(var5
->class->vft
[COLOR_hash_collection__HashSet__init
]))(var5
) /* init on <var5:HashSet[Object]>*/;
2612 CHECK_NEW_hash_collection__HashSet(var5
);
2614 var6
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_layout_builders__TypingLayoutBuilder__poset
]))(self
) /* poset on <self:TypingColorer[Object]>*/;
2616 fprintf(stderr
, "Runtime error: %s", "Reciever is null");
2617 fprintf(stderr
, " (%s:%d)\n", "src/layout_builders.nit", 363);
2620 var7
= ((val
* (*)(val
*, val
*))(var6
->class->vft
[COLOR_poset__POSet___91d_93d
]))(var6
, var_element
) /* [] on <var6:nullable POSet[Object]>*/;
2622 var8
= ((val
* (*)(val
*))(var7
->class->vft
[COLOR_poset__POSetElement__greaters
]))(var7
) /* greaters on <var7:POSetElement[Object]>*/;
2623 ((void (*)(val
*, val
*))(var_supers
->class->vft
[COLOR_abstract_collection__SimpleCollection__add_all
]))(var_supers
, var8
) /* add_all on <var_supers:HashSet[Object]>*/;
2624 var9
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_layout_builders__TypingColorer__linear_extensions_cache
]))(self
) /* linear_extensions_cache on <self:TypingColorer[Object]>*/;
2625 var10
= ((val
* (*)(val
*, val
*))(self
->class->vft
[COLOR_layout_builders__TypingColorer__linearize
]))(self
, var_supers
) /* linearize on <self:TypingColorer[Object]>*/;
2626 ((void (*)(val
*, val
*, val
*))(var9
->class->vft
[COLOR_abstract_collection__Map___91d_93d_61d
]))(var9
, var_element
, var10
) /* []= on <var9:Map[Object, Array[Object]]>*/;
2629 var11
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_layout_builders__TypingColorer__linear_extensions_cache
]))(self
) /* linear_extensions_cache on <self:TypingColorer[Object]>*/;
2630 var12
= ((val
* (*)(val
*, val
*))(var11
->class->vft
[COLOR_abstract_collection__MapRead___91d_93d
]))(var11
, var_element
) /* [] on <var11:Map[Object, Array[Object]]>*/;
2636 /* method layout_builders#TypingColorer#linear_extension for (self: Object, Object): Array[Object] */
2637 val
* VIRTUAL_layout_builders__TypingColorer__linear_extension(val
* self
, val
* p0
) {
2638 val
* var
/* : Array[Object] */;
2639 val
* var1
/* : Array[Object] */;
2640 var1
= layout_builders__TypingColorer__linear_extension(self
, p0
);
2645 /* method layout_builders#TypingColorer#reverse_linearize for (self: TypingColorer[Object], Set[Object]): Array[Object] */
2646 val
* layout_builders__TypingColorer__reverse_linearize(val
* self
, val
* p0
) {
2647 val
* var
/* : Array[Object] */;
2648 short int var1
/* : Bool */;
2651 const struct type
* type_struct
;
2652 const char* var_class_name
;
2653 val
* var_elements
/* var elements: Set[Object] */;
2654 val
* var2
/* : Array[Object] */;
2655 val
* var_lin
/* var lin: Array[Object] */;
2656 val
* var3
/* : nullable POSet[Object] */;
2657 /* Covariant cast for argument 0 (elements) <p0:Set[Object]> isa Set[TypingColorer#0] */
2658 /* <p0:Set[Object]> isa Set[TypingColorer#0] */
2659 type_struct
= self
->type
->resolution_table
->types
[COLOR_abstract_collection__Setlayout_builders__TypingColorer_FT0
];
2660 cltype
= type_struct
->color
;
2661 idtype
= type_struct
->id
;
2662 if(cltype
>= p0
->type
->table_size
) {
2665 var1
= p0
->type
->type_table
[cltype
] == idtype
;
2668 var_class_name
= p0
== NULL ?
"null" : p0
->type
->name
;
2669 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "Set[TypingColorer#0]", var_class_name
);
2670 fprintf(stderr
, " (%s:%d)\n", "src/layout_builders.nit", 369);
2674 var2
= NEW_array__Array(self
->type
->resolution_table
->types
[COLOR_array__Arraylayout_builders__TypingColorer_FT0
]);
2675 ((void (*)(val
*))(var2
->class->vft
[COLOR_array__Array__init
]))(var2
) /* init on <var2:Array[Object]>*/;
2676 CHECK_NEW_array__Array(var2
);
2678 ((void (*)(val
*, val
*))(var_lin
->class->vft
[COLOR_abstract_collection__SimpleCollection__add_all
]))(var_lin
, var_elements
) /* add_all on <var_lin:Array[Object]>*/;
2679 var3
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_layout_builders__TypingLayoutBuilder__poset
]))(self
) /* poset on <self:TypingColorer[Object]>*/;
2681 fprintf(stderr
, "Runtime error: %s", "Reciever is null");
2682 fprintf(stderr
, " (%s:%d)\n", "src/layout_builders.nit", 372);
2685 ((void (*)(val
*, val
*))(var3
->class->vft
[COLOR_sorter__AbstractSorter__sort
]))(var3
, var_lin
) /* sort on <var3:nullable POSet[Object]>*/;
2692 /* method layout_builders#TypingColorer#reverse_linearize for (self: Object, Set[Object]): Array[Object] */
2693 val
* VIRTUAL_layout_builders__TypingColorer__reverse_linearize(val
* self
, val
* p0
) {
2694 val
* var
/* : Array[Object] */;
2695 val
* var1
/* : Array[Object] */;
2696 var1
= layout_builders__TypingColorer__reverse_linearize(self
, p0
);
2701 /* method layout_builders#TypingColorer#linearize for (self: TypingColorer[Object], Set[Object]): Array[Object] */
2702 val
* layout_builders__TypingColorer__linearize(val
* self
, val
* p0
) {
2703 val
* var
/* : Array[Object] */;
2704 short int var1
/* : Bool */;
2707 const struct type
* type_struct
;
2708 const char* var_class_name
;
2709 val
* var_elements
/* var elements: Set[Object] */;
2710 val
* var2
/* : Array[Object] */;
2711 val
* var3
/* : Array[nullable Object] */;
2712 /* Covariant cast for argument 0 (elements) <p0:Set[Object]> isa Set[TypingColorer#0] */
2713 /* <p0:Set[Object]> isa Set[TypingColorer#0] */
2714 type_struct
= self
->type
->resolution_table
->types
[COLOR_abstract_collection__Setlayout_builders__TypingColorer_FT0
];
2715 cltype
= type_struct
->color
;
2716 idtype
= type_struct
->id
;
2717 if(cltype
>= p0
->type
->table_size
) {
2720 var1
= p0
->type
->type_table
[cltype
] == idtype
;
2723 var_class_name
= p0
== NULL ?
"null" : p0
->type
->name
;
2724 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "Set[TypingColorer#0]", var_class_name
);
2725 fprintf(stderr
, " (%s:%d)\n", "src/layout_builders.nit", 375);
2729 var2
= ((val
* (*)(val
*, val
*))(self
->class->vft
[COLOR_layout_builders__TypingColorer__reverse_linearize
]))(self
, var_elements
) /* reverse_linearize on <self:TypingColorer[Object]>*/;
2730 var3
= ((val
* (*)(val
*))(var2
->class->vft
[COLOR_array__AbstractArrayRead__reversed
]))(var2
) /* reversed on <var2:Array[Object]>*/;
2736 /* method layout_builders#TypingColorer#linearize for (self: Object, Set[Object]): Array[Object] */
2737 val
* VIRTUAL_layout_builders__TypingColorer__linearize(val
* self
, val
* p0
) {
2738 val
* var
/* : Array[Object] */;
2739 val
* var1
/* : Array[Object] */;
2740 var1
= layout_builders__TypingColorer__linearize(self
, p0
);
2745 /* method layout_builders#MTypeColorer#init for (self: MTypeColorer, MModule) */
2746 void layout_builders__MTypeColorer__init(val
* self
, val
* p0
) {
2747 val
* var_mmodule
/* var mmodule: MModule */;
2748 val
* var
/* : MTypePOSetBuilder */;
2750 var
= NEW_layout_builders__MTypePOSetBuilder(&type_layout_builders__MTypePOSetBuilder
);
2751 ((void (*)(val
*, val
*))(var
->class->vft
[COLOR_layout_builders__POSetBuilder__init
]))(var
, var_mmodule
) /* init on <var:MTypePOSetBuilder>*/;
2752 CHECK_NEW_layout_builders__MTypePOSetBuilder(var
);
2753 ((void (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_layout_builders__TypingColorer__init
]))(self
, var_mmodule
, var
) /* init on <self:MTypeColorer>*/;
2756 /* method layout_builders#MTypeColorer#init for (self: Object, MModule) */
2757 void VIRTUAL_layout_builders__MTypeColorer__init(val
* self
, val
* p0
) {
2758 layout_builders__MTypeColorer__init(self
, p0
);
2761 /* method layout_builders#MClassColorer#init for (self: MClassColorer, MModule) */
2762 void layout_builders__MClassColorer__init(val
* self
, val
* p0
) {
2763 val
* var_mmodule
/* var mmodule: MModule */;
2764 val
* var
/* : MClassPOSetBuilder */;
2766 var
= NEW_layout_builders__MClassPOSetBuilder(&type_layout_builders__MClassPOSetBuilder
);
2767 ((void (*)(val
*, val
*))(var
->class->vft
[COLOR_layout_builders__POSetBuilder__init
]))(var
, var_mmodule
) /* init on <var:MClassPOSetBuilder>*/;
2768 CHECK_NEW_layout_builders__MClassPOSetBuilder(var
);
2769 ((void (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_layout_builders__TypingColorer__init
]))(self
, var_mmodule
, var
) /* init on <self:MClassColorer>*/;
2772 /* method layout_builders#MClassColorer#init for (self: Object, MModule) */
2773 void VIRTUAL_layout_builders__MClassColorer__init(val
* self
, val
* p0
) {
2774 layout_builders__MClassColorer__init(self
, p0
);
2777 /* method layout_builders#MPropertyColorer#mmodule for (self: MPropertyColorer[PropertyLayoutElement]): MModule */
2778 val
* layout_builders__MPropertyColorer__mmodule(val
* self
) {
2779 val
* var
/* : MModule */;
2780 val
* var1
/* : MModule */;
2781 var1
= self
->attrs
[COLOR_layout_builders__MPropertyColorer___64dmmodule
].val
; /* @mmodule on <self:MPropertyColorer[PropertyLayoutElement]> */
2783 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute @mmodule");
2784 fprintf(stderr
, " (%s:%d)\n", "src/layout_builders.nit", 394);
2791 /* method layout_builders#MPropertyColorer#mmodule for (self: Object): MModule */
2792 val
* VIRTUAL_layout_builders__MPropertyColorer__mmodule(val
* self
) {
2793 val
* var
/* : MModule */;
2794 val
* var1
/* : MModule */;
2795 var1
= layout_builders__MPropertyColorer__mmodule(self
);
2800 /* method layout_builders#MPropertyColorer#mmodule= for (self: MPropertyColorer[PropertyLayoutElement], MModule) */
2801 void layout_builders__MPropertyColorer__mmodule_61d(val
* self
, val
* p0
) {
2802 self
->attrs
[COLOR_layout_builders__MPropertyColorer___64dmmodule
].val
= p0
; /* @mmodule on <self:MPropertyColorer[PropertyLayoutElement]> */
2805 /* method layout_builders#MPropertyColorer#mmodule= for (self: Object, MModule) */
2806 void VIRTUAL_layout_builders__MPropertyColorer__mmodule_61d(val
* self
, val
* p0
) {
2807 layout_builders__MPropertyColorer__mmodule_61d(self
, p0
);
2810 /* method layout_builders#MPropertyColorer#class_colorer for (self: MPropertyColorer[PropertyLayoutElement]): MClassColorer */
2811 val
* layout_builders__MPropertyColorer__class_colorer(val
* self
) {
2812 val
* var
/* : MClassColorer */;
2813 val
* var1
/* : MClassColorer */;
2814 var1
= self
->attrs
[COLOR_layout_builders__MPropertyColorer___64dclass_colorer
].val
; /* @class_colorer on <self:MPropertyColorer[PropertyLayoutElement]> */
2816 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute @class_colorer");
2817 fprintf(stderr
, " (%s:%d)\n", "src/layout_builders.nit", 395);
2824 /* method layout_builders#MPropertyColorer#class_colorer for (self: Object): MClassColorer */
2825 val
* VIRTUAL_layout_builders__MPropertyColorer__class_colorer(val
* self
) {
2826 val
* var
/* : MClassColorer */;
2827 val
* var1
/* : MClassColorer */;
2828 var1
= layout_builders__MPropertyColorer__class_colorer(self
);
2833 /* method layout_builders#MPropertyColorer#class_colorer= for (self: MPropertyColorer[PropertyLayoutElement], MClassColorer) */
2834 void layout_builders__MPropertyColorer__class_colorer_61d(val
* self
, val
* p0
) {
2835 self
->attrs
[COLOR_layout_builders__MPropertyColorer___64dclass_colorer
].val
= p0
; /* @class_colorer on <self:MPropertyColorer[PropertyLayoutElement]> */
2838 /* method layout_builders#MPropertyColorer#class_colorer= for (self: Object, MClassColorer) */
2839 void VIRTUAL_layout_builders__MPropertyColorer__class_colorer_61d(val
* self
, val
* p0
) {
2840 layout_builders__MPropertyColorer__class_colorer_61d(self
, p0
);
2843 /* method layout_builders#MPropertyColorer#coloration_result for (self: MPropertyColorer[PropertyLayoutElement]): Map[PropertyLayoutElement, Int] */
2844 val
* layout_builders__MPropertyColorer__coloration_result(val
* self
) {
2845 val
* var
/* : Map[PropertyLayoutElement, Int] */;
2846 val
* var1
/* : Map[PropertyLayoutElement, Int] */;
2847 var1
= self
->attrs
[COLOR_layout_builders__MPropertyColorer___64dcoloration_result
].val
; /* @coloration_result on <self:MPropertyColorer[PropertyLayoutElement]> */
2849 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute @coloration_result");
2850 fprintf(stderr
, " (%s:%d)\n", "src/layout_builders.nit", 396);
2857 /* method layout_builders#MPropertyColorer#coloration_result for (self: Object): Map[PropertyLayoutElement, Int] */
2858 val
* VIRTUAL_layout_builders__MPropertyColorer__coloration_result(val
* self
) {
2859 val
* var
/* : Map[PropertyLayoutElement, Int] */;
2860 val
* var1
/* : Map[PropertyLayoutElement, Int] */;
2861 var1
= layout_builders__MPropertyColorer__coloration_result(self
);
2866 /* method layout_builders#MPropertyColorer#coloration_result= for (self: MPropertyColorer[PropertyLayoutElement], Map[PropertyLayoutElement, Int]) */
2867 void layout_builders__MPropertyColorer__coloration_result_61d(val
* self
, val
* p0
) {
2868 short int var
/* : Bool */;
2871 const struct type
* type_struct
;
2872 const char* var_class_name
;
2873 /* Covariant cast for argument 0 (coloration_result) <p0:Map[PropertyLayoutElement, Int]> isa Map[MPropertyColorer#0, Int] */
2874 /* <p0:Map[PropertyLayoutElement, Int]> isa Map[MPropertyColorer#0, Int] */
2875 type_struct
= self
->type
->resolution_table
->types
[COLOR_abstract_collection__Maplayout_builders__MPropertyColorer_FT0kernel__Int
];
2876 cltype
= type_struct
->color
;
2877 idtype
= type_struct
->id
;
2878 if(cltype
>= p0
->type
->table_size
) {
2881 var
= p0
->type
->type_table
[cltype
] == idtype
;
2884 var_class_name
= p0
== NULL ?
"null" : p0
->type
->name
;
2885 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "Map[MPropertyColorer#0, Int]", var_class_name
);
2886 fprintf(stderr
, " (%s:%d)\n", "src/layout_builders.nit", 396);
2889 self
->attrs
[COLOR_layout_builders__MPropertyColorer___64dcoloration_result
].val
= p0
; /* @coloration_result on <self:MPropertyColorer[PropertyLayoutElement]> */
2892 /* method layout_builders#MPropertyColorer#coloration_result= for (self: Object, Map[PropertyLayoutElement, Int]) */
2893 void VIRTUAL_layout_builders__MPropertyColorer__coloration_result_61d(val
* self
, val
* p0
) {
2894 layout_builders__MPropertyColorer__coloration_result_61d(self
, p0
);
2897 /* method layout_builders#MPropertyColorer#init for (self: MPropertyColorer[PropertyLayoutElement], MModule, MClassColorer) */
2898 void layout_builders__MPropertyColorer__init(val
* self
, val
* p0
, val
* p1
) {
2899 val
* var_mmodule
/* var mmodule: MModule */;
2900 val
* var_class_colorer
/* var class_colorer: MClassColorer */;
2902 var_class_colorer
= p1
;
2903 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_layout_builders__MPropertyColorer__mmodule_61d
]))(self
, var_mmodule
) /* mmodule= on <self:MPropertyColorer[PropertyLayoutElement]>*/;
2904 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_layout_builders__MPropertyColorer__class_colorer_61d
]))(self
, var_class_colorer
) /* class_colorer= on <self:MPropertyColorer[PropertyLayoutElement]>*/;
2907 /* method layout_builders#MPropertyColorer#init for (self: Object, MModule, MClassColorer) */
2908 void VIRTUAL_layout_builders__MPropertyColorer__init(val
* self
, val
* p0
, val
* p1
) {
2909 layout_builders__MPropertyColorer__init(self
, p0
, p1
);
2912 /* method layout_builders#MPropertyColorer#build_layout for (self: MPropertyColorer[PropertyLayoutElement], Map[MClass, Set[PropertyLayoutElement]]): Layout[PropertyLayoutElement] */
2913 val
* layout_builders__MPropertyColorer__build_layout(val
* self
, val
* p0
) {
2914 val
* var
/* : Layout[PropertyLayoutElement] */;
2915 short int var1
/* : Bool */;
2918 const struct type
* type_struct
;
2919 const char* var_class_name
;
2920 val
* var_elements
/* var elements: Map[MClass, Set[PropertyLayoutElement]] */;
2921 val
* var2
/* : Layout[PropertyLayoutElement] */;
2922 val
* var_result
/* var result: Layout[PropertyLayoutElement] */;
2923 val
* var3
/* : Map[PropertyLayoutElement, Int] */;
2924 /* Covariant cast for argument 0 (elements) <p0:Map[MClass, Set[PropertyLayoutElement]]> isa Map[MClass, Set[MPropertyColorer#0]] */
2925 /* <p0:Map[MClass, Set[PropertyLayoutElement]]> isa Map[MClass, Set[MPropertyColorer#0]] */
2926 type_struct
= self
->type
->resolution_table
->types
[COLOR_abstract_collection__Mapmodel__MClassabstract_collection__Setlayout_builders__MPropertyColorer_FT0
];
2927 cltype
= type_struct
->color
;
2928 idtype
= type_struct
->id
;
2929 if(cltype
>= p0
->type
->table_size
) {
2932 var1
= p0
->type
->type_table
[cltype
] == idtype
;
2935 var_class_name
= p0
== NULL ?
"null" : p0
->type
->name
;
2936 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "Map[MClass, Set[MPropertyColorer#0]]", var_class_name
);
2937 fprintf(stderr
, " (%s:%d)\n", "src/layout_builders.nit", 403);
2941 var2
= NEW_layout_builders__Layout(self
->type
->resolution_table
->types
[COLOR_layout_builders__Layoutlayout_builders__MPropertyColorer_FT0
]);
2942 ((void (*)(val
*))(var2
->class->vft
[COLOR_layout_builders__Layout__init
]))(var2
) /* init on <var2:Layout[PropertyLayoutElement]>*/;
2943 CHECK_NEW_layout_builders__Layout(var2
);
2945 var3
= ((val
* (*)(val
*, val
*))(self
->class->vft
[COLOR_layout_builders__MPropertyColorer__colorize
]))(self
, var_elements
) /* colorize on <self:MPropertyColorer[PropertyLayoutElement]>*/;
2946 ((void (*)(val
*, val
*))(var_result
->class->vft
[COLOR_layout_builders__Layout__pos_61d
]))(var_result
, var3
) /* pos= on <var_result:Layout[PropertyLayoutElement]>*/;
2952 /* method layout_builders#MPropertyColorer#build_layout for (self: Object, Map[MClass, Set[PropertyLayoutElement]]): Layout[PropertyLayoutElement] */
2953 val
* VIRTUAL_layout_builders__MPropertyColorer__build_layout(val
* self
, val
* p0
) {
2954 val
* var
/* : Layout[PropertyLayoutElement] */;
2955 val
* var1
/* : Layout[PropertyLayoutElement] */;
2956 var1
= layout_builders__MPropertyColorer__build_layout(self
, p0
);
2961 /* method layout_builders#MPropertyColorer#colorize for (self: MPropertyColorer[PropertyLayoutElement], Map[MClass, Set[PropertyLayoutElement]]): Map[PropertyLayoutElement, Int] */
2962 val
* layout_builders__MPropertyColorer__colorize(val
* self
, val
* p0
) {
2963 val
* var
/* : Map[PropertyLayoutElement, Int] */;
2964 short int var1
/* : Bool */;
2967 const struct type
* type_struct
;
2968 const char* var_class_name
;
2969 val
* var_elements
/* var elements: Map[MClass, Set[PropertyLayoutElement]] */;
2970 val
* var2
/* : Map[PropertyLayoutElement, Int] */;
2971 /* Covariant cast for argument 0 (elements) <p0:Map[MClass, Set[PropertyLayoutElement]]> isa Map[MClass, Set[MPropertyColorer#0]] */
2972 /* <p0:Map[MClass, Set[PropertyLayoutElement]]> isa Map[MClass, Set[MPropertyColorer#0]] */
2973 type_struct
= self
->type
->resolution_table
->types
[COLOR_abstract_collection__Mapmodel__MClassabstract_collection__Setlayout_builders__MPropertyColorer_FT0
];
2974 cltype
= type_struct
->color
;
2975 idtype
= type_struct
->id
;
2976 if(cltype
>= p0
->type
->table_size
) {
2979 var1
= p0
->type
->type_table
[cltype
] == idtype
;
2982 var_class_name
= p0
== NULL ?
"null" : p0
->type
->name
;
2983 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "Map[MClass, Set[MPropertyColorer#0]]", var_class_name
);
2984 fprintf(stderr
, " (%s:%d)\n", "src/layout_builders.nit", 410);
2988 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_layout_builders__MPropertyColorer__colorize_core
]))(self
, var_elements
) /* colorize_core on <self:MPropertyColorer[PropertyLayoutElement]>*/;
2989 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_layout_builders__MPropertyColorer__colorize_crown
]))(self
, var_elements
) /* colorize_crown on <self:MPropertyColorer[PropertyLayoutElement]>*/;
2990 var2
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_layout_builders__MPropertyColorer__coloration_result
]))(self
) /* coloration_result on <self:MPropertyColorer[PropertyLayoutElement]>*/;
2996 /* method layout_builders#MPropertyColorer#colorize for (self: Object, Map[MClass, Set[PropertyLayoutElement]]): Map[PropertyLayoutElement, Int] */
2997 val
* VIRTUAL_layout_builders__MPropertyColorer__colorize(val
* self
, val
* p0
) {
2998 val
* var
/* : Map[PropertyLayoutElement, Int] */;
2999 val
* var1
/* : Map[PropertyLayoutElement, Int] */;
3000 var1
= layout_builders__MPropertyColorer__colorize(self
, p0
);
3005 /* method layout_builders#MPropertyColorer#colorize_core for (self: MPropertyColorer[PropertyLayoutElement], Map[MClass, Set[PropertyLayoutElement]]) */
3006 void layout_builders__MPropertyColorer__colorize_core(val
* self
, val
* p0
) {
3007 short int var
/* : Bool */;
3010 const struct type
* type_struct
;
3011 const char* var_class_name
;
3012 val
* var_elements
/* var elements: Map[MClass, Set[PropertyLayoutElement]] */;
3013 long var1
/* : Int */;
3014 long var_min_color
/* var min_color: Int */;
3015 val
* var2
/* : MClassColorer */;
3016 val
* var3
/* : Set[Object] */;
3017 val
* var4
/* : Iterator[nullable Object] */;
3018 short int var5
/* : Bool */;
3019 val
* var6
/* : nullable Object */;
3020 val
* var_mclass
/* var mclass: MClass */;
3021 long var_color
/* var color: Int */;
3022 val
* var7
/* : MModule */;
3023 val
* var8
/* : POSetElement[MClass] */;
3024 val
* var9
/* : Collection[Object] */;
3025 long var10
/* : Int */;
3026 val
* var11
/* : MClassColorer */;
3027 val
* var12
/* : nullable HashMap[Object, Set[Object]] */;
3028 short int var13
/* : Bool */;
3029 val
* var14
/* : MClassColorer */;
3030 val
* var15
/* : nullable HashMap[Object, Set[Object]] */;
3031 val
* var16
/* : nullable Object */;
3032 long var17
/* : Int */;
3033 val
* var18
/* : nullable Object */;
3034 /* Covariant cast for argument 0 (elements) <p0:Map[MClass, Set[PropertyLayoutElement]]> isa Map[MClass, Set[MPropertyColorer#0]] */
3035 /* <p0:Map[MClass, Set[PropertyLayoutElement]]> isa Map[MClass, Set[MPropertyColorer#0]] */
3036 type_struct
= self
->type
->resolution_table
->types
[COLOR_abstract_collection__Mapmodel__MClassabstract_collection__Setlayout_builders__MPropertyColorer_FT0
];
3037 cltype
= type_struct
->color
;
3038 idtype
= type_struct
->id
;
3039 if(cltype
>= p0
->type
->table_size
) {
3042 var
= p0
->type
->type_table
[cltype
] == idtype
;
3045 var_class_name
= p0
== NULL ?
"null" : p0
->type
->name
;
3046 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "Map[MClass, Set[MPropertyColorer#0]]", var_class_name
);
3047 fprintf(stderr
, " (%s:%d)\n", "src/layout_builders.nit", 416);
3052 var_min_color
= var1
;
3053 var2
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_layout_builders__MPropertyColorer__class_colorer
]))(self
) /* class_colorer on <self:MPropertyColorer[PropertyLayoutElement]>*/;
3054 var3
= ((val
* (*)(val
*))(var2
->class->vft
[COLOR_layout_builders__TypingColorer__core
]))(var2
) /* core on <var2:MClassColorer>*/;
3055 var4
= ((val
* (*)(val
*))(var3
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var3
) /* iterator on <var3:Set[Object](Set[MClass])>*/;
3057 var5
= ((short int (*)(val
*))(var4
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var4
) /* is_ok on <var4:Iterator[nullable Object]>*/;
3059 var6
= ((val
* (*)(val
*))(var4
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var4
) /* item on <var4:Iterator[nullable Object]>*/;
3061 var_color
= var_min_color
;
3062 var7
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_layout_builders__MPropertyColorer__mmodule
]))(self
) /* mmodule on <self:MPropertyColorer[PropertyLayoutElement]>*/;
3063 var8
= ((val
* (*)(val
*, val
*))(var_mclass
->class->vft
[COLOR_model__MClass__in_hierarchy
]))(var_mclass
, var7
) /* in_hierarchy on <var_mclass:MClass>*/;
3064 var9
= ((val
* (*)(val
*))(var8
->class->vft
[COLOR_poset__POSetElement__direct_greaters
]))(var8
) /* direct_greaters on <var8:POSetElement[MClass]>*/;
3065 var10
= ((long (*)(val
*, long, val
*, val
*))(self
->class->vft
[COLOR_layout_builders__MPropertyColorer__max_color
]))(self
, var_color
, var9
, var_elements
) /* max_color on <self:MPropertyColorer[PropertyLayoutElement]>*/;
3067 var11
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_layout_builders__MPropertyColorer__class_colorer
]))(self
) /* class_colorer on <self:MPropertyColorer[PropertyLayoutElement]>*/;
3068 var12
= ((val
* (*)(val
*))(var11
->class->vft
[COLOR_layout_builders__TypingColorer__conflicts_graph
]))(var11
) /* conflicts_graph on <var11:MClassColorer>*/;
3069 if (var12
== NULL
) {
3070 fprintf(stderr
, "Runtime error: %s", "Reciever is null");
3071 fprintf(stderr
, " (%s:%d)\n", "src/layout_builders.nit", 424);
3074 var13
= ((short int (*)(val
*, val
*))(var12
->class->vft
[COLOR_abstract_collection__MapRead__has_key
]))(var12
, var_mclass
) /* has_key on <var12:nullable HashMap[Object, Set[Object]](nullable HashMap[MClass, Set[MClass]])>*/;
3077 var14
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_layout_builders__MPropertyColorer__class_colorer
]))(self
) /* class_colorer on <self:MPropertyColorer[PropertyLayoutElement]>*/;
3078 var15
= ((val
* (*)(val
*))(var14
->class->vft
[COLOR_layout_builders__TypingColorer__conflicts_graph
]))(var14
) /* conflicts_graph on <var14:MClassColorer>*/;
3079 if (var15
== NULL
) {
3080 fprintf(stderr
, "Runtime error: %s", "Reciever is null");
3081 fprintf(stderr
, " (%s:%d)\n", "src/layout_builders.nit", 425);
3084 var16
= ((val
* (*)(val
*, val
*))(var15
->class->vft
[COLOR_abstract_collection__MapRead___91d_93d
]))(var15
, var_mclass
) /* [] on <var15:nullable HashMap[Object, Set[Object]](nullable HashMap[MClass, Set[MClass]])>*/;
3086 var17
= ((long (*)(val
*, long, val
*, val
*))(self
->class->vft
[COLOR_layout_builders__MPropertyColorer__max_color
]))(self
, var_color
, var16
, var_elements
) /* max_color on <self:MPropertyColorer[PropertyLayoutElement]>*/;
3090 var18
= ((val
* (*)(val
*, val
*))(var_elements
->class->vft
[COLOR_abstract_collection__MapRead___91d_93d
]))(var_elements
, var_mclass
) /* [] on <var_elements:Map[MClass, Set[PropertyLayoutElement]]>*/;
3091 ((void (*)(val
*, val
*, long))(self
->class->vft
[COLOR_layout_builders__MPropertyColorer__colorize_elements
]))(self
, var18
, var_color
) /* colorize_elements on <self:MPropertyColorer[PropertyLayoutElement]>*/;
3092 CONTINUE_label
: (void)0;
3093 ((void (*)(val
*))(var4
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var4
) /* next on <var4:Iterator[nullable Object]>*/;
3095 BREAK_label
: (void)0;
3098 /* method layout_builders#MPropertyColorer#colorize_core for (self: Object, Map[MClass, Set[PropertyLayoutElement]]) */
3099 void VIRTUAL_layout_builders__MPropertyColorer__colorize_core(val
* self
, val
* p0
) {
3100 layout_builders__MPropertyColorer__colorize_core(self
, p0
);
3103 /* method layout_builders#MPropertyColorer#colorize_crown for (self: MPropertyColorer[PropertyLayoutElement], Map[MClass, Set[PropertyLayoutElement]]) */
3104 void layout_builders__MPropertyColorer__colorize_crown(val
* self
, val
* p0
) {
3105 short int var
/* : Bool */;
3108 const struct type
* type_struct
;
3109 const char* var_class_name
;
3110 val
* var_elements
/* var elements: Map[MClass, Set[PropertyLayoutElement]] */;
3111 val
* var1
/* : MClassColorer */;
3112 val
* var2
/* : Set[Object] */;
3113 val
* var3
/* : Iterator[nullable Object] */;
3114 short int var4
/* : Bool */;
3115 val
* var5
/* : nullable Object */;
3116 val
* var_mclass
/* var mclass: MClass */;
3117 val
* var6
/* : HashSet[MClass] */;
3118 val
* var_parents
/* var parents: HashSet[MClass] */;
3119 val
* var7
/* : MModule */;
3120 val
* var8
/* : POSet[MClass] */;
3121 short int var9
/* : Bool */;
3122 val
* var10
/* : MModule */;
3123 val
* var11
/* : POSetElement[MClass] */;
3124 val
* var12
/* : Collection[Object] */;
3125 val
* var13
/* : nullable Object */;
3126 long var14
/* : Int */;
3127 long var15
/* : Int */;
3128 /* Covariant cast for argument 0 (elements) <p0:Map[MClass, Set[PropertyLayoutElement]]> isa Map[MClass, Set[MPropertyColorer#0]] */
3129 /* <p0:Map[MClass, Set[PropertyLayoutElement]]> isa Map[MClass, Set[MPropertyColorer#0]] */
3130 type_struct
= self
->type
->resolution_table
->types
[COLOR_abstract_collection__Mapmodel__MClassabstract_collection__Setlayout_builders__MPropertyColorer_FT0
];
3131 cltype
= type_struct
->color
;
3132 idtype
= type_struct
->id
;
3133 if(cltype
>= p0
->type
->table_size
) {
3136 var
= p0
->type
->type_table
[cltype
] == idtype
;
3139 var_class_name
= p0
== NULL ?
"null" : p0
->type
->name
;
3140 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "Map[MClass, Set[MPropertyColorer#0]]", var_class_name
);
3141 fprintf(stderr
, " (%s:%d)\n", "src/layout_builders.nit", 431);
3145 var1
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_layout_builders__MPropertyColorer__class_colorer
]))(self
) /* class_colorer on <self:MPropertyColorer[PropertyLayoutElement]>*/;
3146 var2
= ((val
* (*)(val
*))(var1
->class->vft
[COLOR_layout_builders__TypingColorer__crown
]))(var1
) /* crown on <var1:MClassColorer>*/;
3147 var3
= ((val
* (*)(val
*))(var2
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var2
) /* iterator on <var2:Set[Object](Set[MClass])>*/;
3149 var4
= ((short int (*)(val
*))(var3
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var3
) /* is_ok on <var3:Iterator[nullable Object]>*/;
3151 var5
= ((val
* (*)(val
*))(var3
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var3
) /* item on <var3:Iterator[nullable Object]>*/;
3153 var6
= NEW_hash_collection__HashSet(&type_hash_collection__HashSetmodel__MClass
);
3154 ((void (*)(val
*))(var6
->class->vft
[COLOR_hash_collection__HashSet__init
]))(var6
) /* init on <var6:HashSet[MClass]>*/;
3155 CHECK_NEW_hash_collection__HashSet(var6
);
3157 var7
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_layout_builders__MPropertyColorer__mmodule
]))(self
) /* mmodule on <self:MPropertyColorer[PropertyLayoutElement]>*/;
3158 var8
= ((val
* (*)(val
*))(var7
->class->vft
[COLOR_model__MModule__flatten_mclass_hierarchy
]))(var7
) /* flatten_mclass_hierarchy on <var7:MModule>*/;
3159 var9
= ((short int (*)(val
*, val
*))(var8
->class->vft
[COLOR_abstract_collection__Collection__has
]))(var8
, var_mclass
) /* has on <var8:POSet[MClass]>*/;
3161 var10
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_layout_builders__MPropertyColorer__mmodule
]))(self
) /* mmodule on <self:MPropertyColorer[PropertyLayoutElement]>*/;
3162 var11
= ((val
* (*)(val
*, val
*))(var_mclass
->class->vft
[COLOR_model__MClass__in_hierarchy
]))(var_mclass
, var10
) /* in_hierarchy on <var_mclass:MClass>*/;
3163 var12
= ((val
* (*)(val
*))(var11
->class->vft
[COLOR_poset__POSetElement__direct_greaters
]))(var11
) /* direct_greaters on <var11:POSetElement[MClass]>*/;
3164 ((void (*)(val
*, val
*))(var_parents
->class->vft
[COLOR_abstract_collection__SimpleCollection__add_all
]))(var_parents
, var12
) /* add_all on <var_parents:HashSet[MClass]>*/;
3167 var13
= ((val
* (*)(val
*, val
*))(var_elements
->class->vft
[COLOR_abstract_collection__MapRead___91d_93d
]))(var_elements
, var_mclass
) /* [] on <var_elements:Map[MClass, Set[PropertyLayoutElement]]>*/;
3169 var15
= ((long (*)(val
*, long, val
*, val
*))(self
->class->vft
[COLOR_layout_builders__MPropertyColorer__max_color
]))(self
, var14
, var_parents
, var_elements
) /* max_color on <self:MPropertyColorer[PropertyLayoutElement]>*/;
3170 ((void (*)(val
*, val
*, long))(self
->class->vft
[COLOR_layout_builders__MPropertyColorer__colorize_elements
]))(self
, var13
, var15
) /* colorize_elements on <self:MPropertyColorer[PropertyLayoutElement]>*/;
3171 CONTINUE_label
: (void)0;
3172 ((void (*)(val
*))(var3
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var3
) /* next on <var3:Iterator[nullable Object]>*/;
3174 BREAK_label
: (void)0;
3177 /* method layout_builders#MPropertyColorer#colorize_crown for (self: Object, Map[MClass, Set[PropertyLayoutElement]]) */
3178 void VIRTUAL_layout_builders__MPropertyColorer__colorize_crown(val
* self
, val
* p0
) {
3179 layout_builders__MPropertyColorer__colorize_crown(self
, p0
);
3182 /* method layout_builders#MPropertyColorer#colorize_elements for (self: MPropertyColorer[PropertyLayoutElement], Collection[PropertyLayoutElement], Int) */
3183 void layout_builders__MPropertyColorer__colorize_elements(val
* self
, val
* p0
, long p1
) {
3184 short int var
/* : Bool */;
3187 const struct type
* type_struct
;
3188 const char* var_class_name
;
3189 val
* var_elements
/* var elements: Collection[PropertyLayoutElement] */;
3190 long var_start_color
/* var start_color: Int */;
3191 val
* var1
/* : Iterator[nullable Object] */;
3192 short int var2
/* : Bool */;
3193 val
* var3
/* : nullable Object */;
3194 val
* var_element
/* var element: PropertyLayoutElement */;
3195 val
* var4
/* : Map[PropertyLayoutElement, Int] */;
3196 short int var5
/* : Bool */;
3197 val
* var6
/* : Map[PropertyLayoutElement, Int] */;
3198 val
* var7
/* : nullable Object */;
3199 long var8
/* : Int */;
3200 long var9
/* : Int */;
3201 long var11
/* : Int */;
3202 /* Covariant cast for argument 0 (elements) <p0:Collection[PropertyLayoutElement]> isa Collection[MPropertyColorer#0] */
3203 /* <p0:Collection[PropertyLayoutElement]> isa Collection[MPropertyColorer#0] */
3204 type_struct
= self
->type
->resolution_table
->types
[COLOR_abstract_collection__Collectionlayout_builders__MPropertyColorer_FT0
];
3205 cltype
= type_struct
->color
;
3206 idtype
= type_struct
->id
;
3207 if(cltype
>= p0
->type
->table_size
) {
3210 var
= p0
->type
->type_table
[cltype
] == idtype
;
3213 var_class_name
= p0
== NULL ?
"null" : p0
->type
->name
;
3214 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "Collection[MPropertyColorer#0]", var_class_name
);
3215 fprintf(stderr
, " (%s:%d)\n", "src/layout_builders.nit", 442);
3219 var_start_color
= p1
;
3220 var1
= ((val
* (*)(val
*))(var_elements
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var_elements
) /* iterator on <var_elements:Collection[PropertyLayoutElement]>*/;
3222 var2
= ((short int (*)(val
*))(var1
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var1
) /* is_ok on <var1:Iterator[nullable Object]>*/;
3224 var3
= ((val
* (*)(val
*))(var1
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var1
) /* item on <var1:Iterator[nullable Object]>*/;
3226 var4
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_layout_builders__MPropertyColorer__coloration_result
]))(self
) /* coloration_result on <self:MPropertyColorer[PropertyLayoutElement]>*/;
3227 var5
= ((short int (*)(val
*, val
*))(var4
->class->vft
[COLOR_abstract_collection__MapRead__has_key
]))(var4
, var_element
) /* has_key on <var4:Map[PropertyLayoutElement, Int]>*/;
3229 goto CONTINUE_label
;
3232 var6
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_layout_builders__MPropertyColorer__coloration_result
]))(self
) /* coloration_result on <self:MPropertyColorer[PropertyLayoutElement]>*/;
3233 var7
= BOX_kernel__Int(var_start_color
); /* autobox from Int to nullable Object */
3234 ((void (*)(val
*, val
*, val
*))(var6
->class->vft
[COLOR_abstract_collection__Map___91d_93d_61d
]))(var6
, var_element
, var7
) /* []= on <var6:Map[PropertyLayoutElement, Int]>*/;
3236 { /* Inline kernel#Int#+ (var_start_color,var8) */
3237 var11
= var_start_color
+ var8
;
3240 RET_LABEL10
:(void)0;
3242 var_start_color
= var9
;
3243 CONTINUE_label
: (void)0;
3244 ((void (*)(val
*))(var1
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var1
) /* next on <var1:Iterator[nullable Object]>*/;
3246 BREAK_label
: (void)0;
3249 /* method layout_builders#MPropertyColorer#colorize_elements for (self: Object, Collection[PropertyLayoutElement], Int) */
3250 void VIRTUAL_layout_builders__MPropertyColorer__colorize_elements(val
* self
, val
* p0
, long p1
) {
3251 layout_builders__MPropertyColorer__colorize_elements(self
, p0
, p1
);
3254 /* method layout_builders#MPropertyColorer#max_color for (self: MPropertyColorer[PropertyLayoutElement], Int, Collection[MClass], Map[MClass, Set[PropertyLayoutElement]]): Int */
3255 long layout_builders__MPropertyColorer__max_color(val
* self
, long p0
, val
* p1
, val
* p2
) {
3256 long var
/* : Int */;
3257 short int var1
/* : Bool */;
3260 const struct type
* type_struct
;
3261 const char* var_class_name
;
3262 long var_min_color
/* var min_color: Int */;
3263 val
* var_mclasses
/* var mclasses: Collection[MClass] */;
3264 val
* var_elements
/* var elements: Map[MClass, Set[PropertyLayoutElement]] */;
3265 long var_max_color
/* var max_color: Int */;
3266 val
* var2
/* : Iterator[nullable Object] */;
3267 short int var3
/* : Bool */;
3268 val
* var4
/* : nullable Object */;
3269 val
* var_mclass
/* var mclass: MClass */;
3270 val
* var5
/* : nullable Object */;
3271 val
* var6
/* : Iterator[nullable Object] */;
3272 short int var7
/* : Bool */;
3273 val
* var8
/* : nullable Object */;
3274 val
* var_mproperty
/* var mproperty: PropertyLayoutElement */;
3275 long var_color
/* var color: Int */;
3276 val
* var9
/* : Map[PropertyLayoutElement, Int] */;
3277 short int var10
/* : Bool */;
3278 val
* var11
/* : Map[PropertyLayoutElement, Int] */;
3279 val
* var12
/* : nullable Object */;
3280 long var13
/* : Int */;
3281 short int var14
/* : Bool */;
3282 short int var16
/* : Bool */;
3285 const char* var_class_name19
;
3286 short int var20
/* : Bool */;
3287 long var21
/* : Int */;
3288 long var22
/* : Int */;
3289 long var24
/* : Int */;
3290 /* Covariant cast for argument 2 (elements) <p2:Map[MClass, Set[PropertyLayoutElement]]> isa Map[MClass, Set[MPropertyColorer#0]] */
3291 /* <p2:Map[MClass, Set[PropertyLayoutElement]]> isa Map[MClass, Set[MPropertyColorer#0]] */
3292 type_struct
= self
->type
->resolution_table
->types
[COLOR_abstract_collection__Mapmodel__MClassabstract_collection__Setlayout_builders__MPropertyColorer_FT0
];
3293 cltype
= type_struct
->color
;
3294 idtype
= type_struct
->id
;
3295 if(cltype
>= p2
->type
->table_size
) {
3298 var1
= p2
->type
->type_table
[cltype
] == idtype
;
3301 var_class_name
= p2
== NULL ?
"null" : p2
->type
->name
;
3302 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "Map[MClass, Set[MPropertyColorer#0]]", var_class_name
);
3303 fprintf(stderr
, " (%s:%d)\n", "src/layout_builders.nit", 451);
3309 var_max_color
= var_min_color
;
3310 var2
= ((val
* (*)(val
*))(var_mclasses
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var_mclasses
) /* iterator on <var_mclasses:Collection[MClass]>*/;
3312 var3
= ((short int (*)(val
*))(var2
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var2
) /* is_ok on <var2:Iterator[nullable Object]>*/;
3314 var4
= ((val
* (*)(val
*))(var2
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var2
) /* item on <var2:Iterator[nullable Object]>*/;
3316 var5
= ((val
* (*)(val
*, val
*))(var_elements
->class->vft
[COLOR_abstract_collection__MapRead___91d_93d
]))(var_elements
, var_mclass
) /* [] on <var_elements:Map[MClass, Set[PropertyLayoutElement]]>*/;
3317 var6
= ((val
* (*)(val
*))(var5
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var5
) /* iterator on <var5:nullable Object(Set[PropertyLayoutElement])>*/;
3319 var7
= ((short int (*)(val
*))(var6
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var6
) /* is_ok on <var6:Iterator[nullable Object]>*/;
3321 var8
= ((val
* (*)(val
*))(var6
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var6
) /* item on <var6:Iterator[nullable Object]>*/;
3322 var_mproperty
= var8
;
3323 var_color
= var_min_color
;
3324 var9
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_layout_builders__MPropertyColorer__coloration_result
]))(self
) /* coloration_result on <self:MPropertyColorer[PropertyLayoutElement]>*/;
3325 var10
= ((short int (*)(val
*, val
*))(var9
->class->vft
[COLOR_abstract_collection__MapRead__has_key
]))(var9
, var_mproperty
) /* has_key on <var9:Map[PropertyLayoutElement, Int]>*/;
3327 var11
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_layout_builders__MPropertyColorer__coloration_result
]))(self
) /* coloration_result on <self:MPropertyColorer[PropertyLayoutElement]>*/;
3328 var12
= ((val
* (*)(val
*, val
*))(var11
->class->vft
[COLOR_abstract_collection__MapRead___91d_93d
]))(var11
, var_mproperty
) /* [] on <var11:Map[PropertyLayoutElement, Int]>*/;
3329 var13
= ((struct instance_kernel__Int
*)var12
)->value
; /* autounbox from nullable Object to Int */;
3331 { /* Inline kernel#Int#>= (var_color,var_max_color) */
3332 /* Covariant cast for argument 0 (i) <var_max_color:Int> isa OTHER */
3333 /* <var_max_color:Int> isa OTHER */
3334 var16
= 1; /* easy <var_max_color:Int> isa OTHER*/
3336 var_class_name19
= type_kernel__Int
.name
;
3337 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name19
);
3338 fprintf(stderr
, " (%s:%d)\n", "lib/standard/kernel.nit", 262);
3341 var20
= var_color
>= var_max_color
;
3344 RET_LABEL15
:(void)0;
3348 { /* Inline kernel#Int#+ (var_color,var21) */
3349 var24
= var_color
+ var21
;
3352 RET_LABEL23
:(void)0;
3354 var_max_color
= var22
;
3359 CONTINUE_label
: (void)0;
3360 ((void (*)(val
*))(var6
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var6
) /* next on <var6:Iterator[nullable Object]>*/;
3362 BREAK_label
: (void)0;
3363 CONTINUE_label25
: (void)0;
3364 ((void (*)(val
*))(var2
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var2
) /* next on <var2:Iterator[nullable Object]>*/;
3366 BREAK_label25
: (void)0;
3367 var
= var_max_color
;
3372 /* method layout_builders#MPropertyColorer#max_color for (self: Object, Int, Collection[MClass], Map[MClass, Set[PropertyLayoutElement]]): Int */
3373 long VIRTUAL_layout_builders__MPropertyColorer__max_color(val
* self
, long p0
, val
* p1
, val
* p2
) {
3374 long var
/* : Int */;
3375 long var1
/* : Int */;
3376 var1
= layout_builders__MPropertyColorer__max_color(self
, p0
, p1
, p2
);
3381 /* method layout_builders#ResolutionColorer#coloration_result for (self: ResolutionColorer): Map[MType, Int] */
3382 val
* layout_builders__ResolutionColorer__coloration_result(val
* self
) {
3383 val
* var
/* : Map[MType, Int] */;
3384 val
* var1
/* : Map[MType, Int] */;
3385 var1
= self
->attrs
[COLOR_layout_builders__ResolutionColorer___64dcoloration_result
].val
; /* @coloration_result on <self:ResolutionColorer> */
3387 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute @coloration_result");
3388 fprintf(stderr
, " (%s:%d)\n", "src/layout_builders.nit", 471);
3395 /* method layout_builders#ResolutionColorer#coloration_result for (self: Object): Map[MType, Int] */
3396 val
* VIRTUAL_layout_builders__ResolutionColorer__coloration_result(val
* self
) {
3397 val
* var
/* : Map[MType, Int] */;
3398 val
* var1
/* : Map[MType, Int] */;
3399 var1
= layout_builders__ResolutionColorer__coloration_result(self
);
3404 /* method layout_builders#ResolutionColorer#coloration_result= for (self: ResolutionColorer, Map[MType, Int]) */
3405 void layout_builders__ResolutionColorer__coloration_result_61d(val
* self
, val
* p0
) {
3406 self
->attrs
[COLOR_layout_builders__ResolutionColorer___64dcoloration_result
].val
= p0
; /* @coloration_result on <self:ResolutionColorer> */
3409 /* method layout_builders#ResolutionColorer#coloration_result= for (self: Object, Map[MType, Int]) */
3410 void VIRTUAL_layout_builders__ResolutionColorer__coloration_result_61d(val
* self
, val
* p0
) {
3411 layout_builders__ResolutionColorer__coloration_result_61d(self
, p0
);
3414 /* method layout_builders#ResolutionColorer#init for (self: ResolutionColorer) */
3415 void layout_builders__ResolutionColorer__init(val
* self
) {
3418 /* method layout_builders#ResolutionColorer#init for (self: Object) */
3419 void VIRTUAL_layout_builders__ResolutionColorer__init(val
* self
) {
3420 layout_builders__ResolutionColorer__init(self
);
3423 /* method layout_builders#ResolutionColorer#build_layout for (self: ResolutionColorer, Map[MClassType, Set[MType]]): Layout[MType] */
3424 val
* layout_builders__ResolutionColorer__build_layout(val
* self
, val
* p0
) {
3425 val
* var
/* : Layout[MType] */;
3426 val
* var_elements
/* var elements: Map[MClassType, Set[MType]] */;
3427 val
* var1
/* : Layout[MType] */;
3428 val
* var_result
/* var result: Layout[MType] */;
3429 val
* var2
/* : Map[MType, Int] */;
3430 val
* var3
/* : Map[MType, Int] */;
3432 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_layout_builders__ResolutionColorer__build_conflicts_graph
]))(self
, var_elements
) /* build_conflicts_graph on <self:ResolutionColorer>*/;
3433 var1
= NEW_layout_builders__Layout(&type_layout_builders__Layoutmodel__MType
);
3434 ((void (*)(val
*))(var1
->class->vft
[COLOR_layout_builders__Layout__init
]))(var1
) /* init on <var1:Layout[MType]>*/;
3435 CHECK_NEW_layout_builders__Layout(var1
);
3437 var2
= ((val
* (*)(val
*, val
*))(self
->class->vft
[COLOR_layout_builders__ResolutionColorer__compute_ids
]))(self
, var_elements
) /* compute_ids on <self:ResolutionColorer>*/;
3438 ((void (*)(val
*, val
*))(var_result
->class->vft
[COLOR_layout_builders__Layout__ids_61d
]))(var_result
, var2
) /* ids= on <var_result:Layout[MType]>*/;
3439 var3
= ((val
* (*)(val
*, val
*))(self
->class->vft
[COLOR_layout_builders__ResolutionColorer__colorize_elements
]))(self
, var_elements
) /* colorize_elements on <self:ResolutionColorer>*/;
3440 ((void (*)(val
*, val
*))(var_result
->class->vft
[COLOR_layout_builders__Layout__pos_61d
]))(var_result
, var3
) /* pos= on <var_result:Layout[MType]>*/;
3446 /* method layout_builders#ResolutionColorer#build_layout for (self: Object, Map[MClassType, Set[MType]]): Layout[MType] */
3447 val
* VIRTUAL_layout_builders__ResolutionColorer__build_layout(val
* self
, val
* p0
) {
3448 val
* var
/* : Layout[MType] */;
3449 val
* var1
/* : Layout[MType] */;
3450 var1
= layout_builders__ResolutionColorer__build_layout(self
, p0
);
3455 /* method layout_builders#ResolutionColorer#compute_ids for (self: ResolutionColorer, Map[MClassType, Set[MType]]): Map[MType, Int] */
3456 val
* layout_builders__ResolutionColorer__compute_ids(val
* self
, val
* p0
) {
3457 val
* var
/* : Map[MType, Int] */;
3458 val
* var_elements
/* var elements: Map[MClassType, Set[MType]] */;
3459 val
* var1
/* : HashMap[MType, Int] */;
3460 val
* var_ids
/* var ids: HashMap[MType, Int] */;
3461 long var2
/* : Int */;
3462 long var_color
/* var color: Int */;
3463 val
* var3
/* : MapIterator[Object, nullable Object] */;
3464 short int var4
/* : Bool */;
3465 val
* var5
/* : Object */;
3466 val
* var_mclasstype
/* var mclasstype: MClassType */;
3467 val
* var6
/* : nullable Object */;
3468 val
* var_mclasstypes
/* var mclasstypes: Set[MType] */;
3469 val
* var7
/* : Iterator[nullable Object] */;
3470 short int var8
/* : Bool */;
3471 val
* var9
/* : nullable Object */;
3472 val
* var_element
/* var element: MType */;
3473 short int var10
/* : Bool */;
3474 val
* var11
/* : nullable Object */;
3475 long var12
/* : Int */;
3476 long var13
/* : Int */;
3477 long var15
/* : Int */;
3479 var1
= NEW_hash_collection__HashMap(&type_hash_collection__HashMapmodel__MTypekernel__Int
);
3480 ((void (*)(val
*))(var1
->class->vft
[COLOR_hash_collection__HashMap__init
]))(var1
) /* init on <var1:HashMap[MType, Int]>*/;
3481 CHECK_NEW_hash_collection__HashMap(var1
);
3485 var3
= ((val
* (*)(val
*))(var_elements
->class->vft
[COLOR_abstract_collection__MapRead__iterator
]))(var_elements
) /* iterator on <var_elements:Map[MClassType, Set[MType]]>*/;
3487 var4
= ((short int (*)(val
*))(var3
->class->vft
[COLOR_abstract_collection__MapIterator__is_ok
]))(var3
) /* is_ok on <var3:MapIterator[Object, nullable Object]>*/;
3489 var5
= ((val
* (*)(val
*))(var3
->class->vft
[COLOR_abstract_collection__MapIterator__key
]))(var3
) /* key on <var3:MapIterator[Object, nullable Object]>*/;
3490 var_mclasstype
= var5
;
3491 var6
= ((val
* (*)(val
*))(var3
->class->vft
[COLOR_abstract_collection__MapIterator__item
]))(var3
) /* item on <var3:MapIterator[Object, nullable Object]>*/;
3492 var_mclasstypes
= var6
;
3493 var7
= ((val
* (*)(val
*))(var_mclasstypes
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var_mclasstypes
) /* iterator on <var_mclasstypes:Set[MType]>*/;
3495 var8
= ((short int (*)(val
*))(var7
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var7
) /* is_ok on <var7:Iterator[nullable Object]>*/;
3497 var9
= ((val
* (*)(val
*))(var7
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var7
) /* item on <var7:Iterator[nullable Object]>*/;
3499 var10
= ((short int (*)(val
*, val
*))(var_ids
->class->vft
[COLOR_abstract_collection__MapRead__has_key
]))(var_ids
, var_element
) /* has_key on <var_ids:HashMap[MType, Int]>*/;
3501 goto CONTINUE_label
;
3504 var11
= BOX_kernel__Int(var_color
); /* autobox from Int to nullable Object */
3505 ((void (*)(val
*, val
*, val
*))(var_ids
->class->vft
[COLOR_abstract_collection__Map___91d_93d_61d
]))(var_ids
, var_element
, var11
) /* []= on <var_ids:HashMap[MType, Int]>*/;
3507 { /* Inline kernel#Int#+ (var_color,var12) */
3508 var15
= var_color
+ var12
;
3511 RET_LABEL14
:(void)0;
3514 CONTINUE_label
: (void)0;
3515 ((void (*)(val
*))(var7
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var7
) /* next on <var7:Iterator[nullable Object]>*/;
3517 BREAK_label
: (void)0;
3518 CONTINUE_label16
: (void)0;
3519 ((void (*)(val
*))(var3
->class->vft
[COLOR_abstract_collection__MapIterator__next
]))(var3
) /* next on <var3:MapIterator[Object, nullable Object]>*/;
3521 BREAK_label16
: (void)0;
3527 /* method layout_builders#ResolutionColorer#compute_ids for (self: Object, Map[MClassType, Set[MType]]): Map[MType, Int] */
3528 val
* VIRTUAL_layout_builders__ResolutionColorer__compute_ids(val
* self
, val
* p0
) {
3529 val
* var
/* : Map[MType, Int] */;
3530 val
* var1
/* : Map[MType, Int] */;
3531 var1
= layout_builders__ResolutionColorer__compute_ids(self
, p0
);
3536 /* method layout_builders#ResolutionColorer#colorize_elements for (self: ResolutionColorer, Map[MClassType, Set[MType]]): Map[MType, Int] */
3537 val
* layout_builders__ResolutionColorer__colorize_elements(val
* self
, val
* p0
) {
3538 val
* var
/* : Map[MType, Int] */;
3539 val
* var_elements
/* var elements: Map[MClassType, Set[MType]] */;
3540 long var1
/* : Int */;
3541 long var_min_color
/* var min_color: Int */;
3542 val
* var2
/* : MapIterator[Object, nullable Object] */;
3543 short int var3
/* : Bool */;
3544 val
* var4
/* : Object */;
3545 val
* var_mclasstype
/* var mclasstype: MClassType */;
3546 val
* var5
/* : nullable Object */;
3547 val
* var_mclasstypes
/* var mclasstypes: Set[MType] */;
3548 val
* var6
/* : Iterator[nullable Object] */;
3549 short int var7
/* : Bool */;
3550 val
* var8
/* : nullable Object */;
3551 val
* var_element
/* var element: MType */;
3552 val
* var9
/* : Map[MType, Int] */;
3553 short int var10
/* : Bool */;
3554 long var_color
/* var color: Int */;
3555 short int var11
/* : Bool */;
3556 short int var12
/* : Bool */;
3557 long var13
/* : Int */;
3558 long var14
/* : Int */;
3559 long var16
/* : Int */;
3560 val
* var18
/* : Map[MType, Int] */;
3561 val
* var19
/* : nullable Object */;
3562 val
* var21
/* : Map[MType, Int] */;
3565 var_min_color
= var1
;
3566 var2
= ((val
* (*)(val
*))(var_elements
->class->vft
[COLOR_abstract_collection__MapRead__iterator
]))(var_elements
) /* iterator on <var_elements:Map[MClassType, Set[MType]]>*/;
3568 var3
= ((short int (*)(val
*))(var2
->class->vft
[COLOR_abstract_collection__MapIterator__is_ok
]))(var2
) /* is_ok on <var2:MapIterator[Object, nullable Object]>*/;
3570 var4
= ((val
* (*)(val
*))(var2
->class->vft
[COLOR_abstract_collection__MapIterator__key
]))(var2
) /* key on <var2:MapIterator[Object, nullable Object]>*/;
3571 var_mclasstype
= var4
;
3572 var5
= ((val
* (*)(val
*))(var2
->class->vft
[COLOR_abstract_collection__MapIterator__item
]))(var2
) /* item on <var2:MapIterator[Object, nullable Object]>*/;
3573 var_mclasstypes
= var5
;
3574 var6
= ((val
* (*)(val
*))(var_mclasstypes
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var_mclasstypes
) /* iterator on <var_mclasstypes:Set[MType]>*/;
3576 var7
= ((short int (*)(val
*))(var6
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var6
) /* is_ok on <var6:Iterator[nullable Object]>*/;
3578 var8
= ((val
* (*)(val
*))(var6
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var6
) /* item on <var6:Iterator[nullable Object]>*/;
3580 var9
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_layout_builders__ResolutionColorer__coloration_result
]))(self
) /* coloration_result on <self:ResolutionColorer>*/;
3581 var10
= ((short int (*)(val
*, val
*))(var9
->class->vft
[COLOR_abstract_collection__MapRead__has_key
]))(var9
, var_element
) /* has_key on <var9:Map[MType, Int]>*/;
3583 goto CONTINUE_label
;
3586 var_color
= var_min_color
;
3588 var11
= ((short int (*)(val
*, val
*, long))(self
->class->vft
[COLOR_layout_builders__ResolutionColorer__is_color_free
]))(self
, var_element
, var_color
) /* is_color_free on <self:ResolutionColorer>*/;
3592 { /* Inline kernel#Int#+ (var_color,var13) */
3593 var16
= var_color
+ var13
;
3596 RET_LABEL15
:(void)0;
3599 CONTINUE_label17
: (void)0;
3601 BREAK_label17
: (void)0;
3602 var18
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_layout_builders__ResolutionColorer__coloration_result
]))(self
) /* coloration_result on <self:ResolutionColorer>*/;
3603 var19
= BOX_kernel__Int(var_color
); /* autobox from Int to nullable Object */
3604 ((void (*)(val
*, val
*, val
*))(var18
->class->vft
[COLOR_abstract_collection__Map___91d_93d_61d
]))(var18
, var_element
, var19
) /* []= on <var18:Map[MType, Int]>*/;
3605 var_color
= var_min_color
;
3606 CONTINUE_label
: (void)0;
3607 ((void (*)(val
*))(var6
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var6
) /* next on <var6:Iterator[nullable Object]>*/;
3609 BREAK_label
: (void)0;
3610 CONTINUE_label20
: (void)0;
3611 ((void (*)(val
*))(var2
->class->vft
[COLOR_abstract_collection__MapIterator__next
]))(var2
) /* next on <var2:MapIterator[Object, nullable Object]>*/;
3613 BREAK_label20
: (void)0;
3614 var21
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_layout_builders__ResolutionColorer__coloration_result
]))(self
) /* coloration_result on <self:ResolutionColorer>*/;
3620 /* method layout_builders#ResolutionColorer#colorize_elements for (self: Object, Map[MClassType, Set[MType]]): Map[MType, Int] */
3621 val
* VIRTUAL_layout_builders__ResolutionColorer__colorize_elements(val
* self
, val
* p0
) {
3622 val
* var
/* : Map[MType, Int] */;
3623 val
* var1
/* : Map[MType, Int] */;
3624 var1
= layout_builders__ResolutionColorer__colorize_elements(self
, p0
);
3629 /* method layout_builders#ResolutionColorer#is_color_free for (self: ResolutionColorer, MType, Int): Bool */
3630 short int layout_builders__ResolutionColorer__is_color_free(val
* self
, val
* p0
, long p1
) {
3631 short int var
/* : Bool */;
3632 val
* var_element
/* var element: MType */;
3633 long var_color
/* var color: Int */;
3634 val
* var1
/* : Map[MType, Set[MType]] */;
3635 short int var2
/* : Bool */;
3636 val
* var3
/* : Map[MType, Set[MType]] */;
3637 val
* var4
/* : nullable Object */;
3638 val
* var5
/* : Iterator[nullable Object] */;
3639 short int var6
/* : Bool */;
3640 val
* var7
/* : nullable Object */;
3641 val
* var_st
/* var st: MType */;
3642 short int var8
/* : Bool */;
3643 val
* var9
/* : Map[MType, Int] */;
3644 short int var10
/* : Bool */;
3645 short int var_
/* var : Bool */;
3646 val
* var11
/* : Map[MType, Int] */;
3647 val
* var12
/* : nullable Object */;
3648 short int var13
/* : Bool */;
3649 short int var15
/* : Bool */;
3650 long var16
/* : Int */;
3651 short int var17
/* : Bool */;
3652 short int var18
/* : Bool */;
3655 var1
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_layout_builders__ResolutionColorer__conflicts_graph
]))(self
) /* conflicts_graph on <self:ResolutionColorer>*/;
3656 var2
= ((short int (*)(val
*, val
*))(var1
->class->vft
[COLOR_abstract_collection__MapRead__has_key
]))(var1
, var_element
) /* has_key on <var1:Map[MType, Set[MType]]>*/;
3658 var3
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_layout_builders__ResolutionColorer__conflicts_graph
]))(self
) /* conflicts_graph on <self:ResolutionColorer>*/;
3659 var4
= ((val
* (*)(val
*, val
*))(var3
->class->vft
[COLOR_abstract_collection__MapRead___91d_93d
]))(var3
, var_element
) /* [] on <var3:Map[MType, Set[MType]]>*/;
3660 var5
= ((val
* (*)(val
*))(var4
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var4
) /* iterator on <var4:nullable Object(Set[MType])>*/;
3662 var6
= ((short int (*)(val
*))(var5
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var5
) /* is_ok on <var5:Iterator[nullable Object]>*/;
3664 var7
= ((val
* (*)(val
*))(var5
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var5
) /* item on <var5:Iterator[nullable Object]>*/;
3666 var9
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_layout_builders__ResolutionColorer__coloration_result
]))(self
) /* coloration_result on <self:ResolutionColorer>*/;
3667 var10
= ((short int (*)(val
*, val
*))(var9
->class->vft
[COLOR_abstract_collection__MapRead__has_key
]))(var9
, var_st
) /* has_key on <var9:Map[MType, Int]>*/;
3670 var11
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_layout_builders__ResolutionColorer__coloration_result
]))(self
) /* coloration_result on <self:ResolutionColorer>*/;
3671 var12
= ((val
* (*)(val
*, val
*))(var11
->class->vft
[COLOR_abstract_collection__MapRead___91d_93d
]))(var11
, var_st
) /* [] on <var11:Map[MType, Int]>*/;
3672 { /* Inline kernel#Int#== (var12,var_color) */
3673 var15
= (var12
!= NULL
) && (var12
->class == &class_kernel__Int
);
3675 var16
= ((struct instance_kernel__Int
*)var12
)->value
; /* autounbox from nullable Object to Int */;
3676 var15
= (var16
== var_color
);
3680 RET_LABEL14
:(void)0;
3692 CONTINUE_label
: (void)0;
3693 ((void (*)(val
*))(var5
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var5
) /* next on <var5:Iterator[nullable Object]>*/;
3695 BREAK_label
: (void)0;
3704 /* method layout_builders#ResolutionColorer#is_color_free for (self: Object, MType, Int): Bool */
3705 short int VIRTUAL_layout_builders__ResolutionColorer__is_color_free(val
* self
, val
* p0
, long p1
) {
3706 short int var
/* : Bool */;
3707 short int var1
/* : Bool */;
3708 var1
= layout_builders__ResolutionColorer__is_color_free(self
, p0
, p1
);
3713 /* method layout_builders#ResolutionColorer#build_conflicts_graph for (self: ResolutionColorer, Map[MClassType, Set[MType]]) */
3714 void layout_builders__ResolutionColorer__build_conflicts_graph(val
* self
, val
* p0
) {
3715 val
* var_elements
/* var elements: Map[MClassType, Set[MType]] */;
3716 val
* var
/* : MapIterator[Object, nullable Object] */;
3717 short int var1
/* : Bool */;
3718 val
* var2
/* : Object */;
3719 val
* var_mclasstype
/* var mclasstype: MClassType */;
3720 val
* var3
/* : nullable Object */;
3721 val
* var_mtypes
/* var mtypes: Set[MType] */;
3722 val
* var4
/* : Iterator[nullable Object] */;
3723 short int var5
/* : Bool */;
3724 val
* var6
/* : nullable Object */;
3725 val
* var_mtype
/* var mtype: MType */;
3726 val
* var7
/* : Iterator[nullable Object] */;
3727 short int var8
/* : Bool */;
3728 val
* var9
/* : nullable Object */;
3729 val
* var_otype
/* var otype: MType */;
3730 short int var10
/* : Bool */;
3732 var
= ((val
* (*)(val
*))(var_elements
->class->vft
[COLOR_abstract_collection__MapRead__iterator
]))(var_elements
) /* iterator on <var_elements:Map[MClassType, Set[MType]]>*/;
3734 var1
= ((short int (*)(val
*))(var
->class->vft
[COLOR_abstract_collection__MapIterator__is_ok
]))(var
) /* is_ok on <var:MapIterator[Object, nullable Object]>*/;
3736 var2
= ((val
* (*)(val
*))(var
->class->vft
[COLOR_abstract_collection__MapIterator__key
]))(var
) /* key on <var:MapIterator[Object, nullable Object]>*/;
3737 var_mclasstype
= var2
;
3738 var3
= ((val
* (*)(val
*))(var
->class->vft
[COLOR_abstract_collection__MapIterator__item
]))(var
) /* item on <var:MapIterator[Object, nullable Object]>*/;
3740 var4
= ((val
* (*)(val
*))(var_mtypes
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var_mtypes
) /* iterator on <var_mtypes:Set[MType]>*/;
3742 var5
= ((short int (*)(val
*))(var4
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var4
) /* is_ok on <var4:Iterator[nullable Object]>*/;
3744 var6
= ((val
* (*)(val
*))(var4
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var4
) /* item on <var4:Iterator[nullable Object]>*/;
3746 var7
= ((val
* (*)(val
*))(var_mtypes
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var_mtypes
) /* iterator on <var_mtypes:Set[MType]>*/;
3748 var8
= ((short int (*)(val
*))(var7
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var7
) /* is_ok on <var7:Iterator[nullable Object]>*/;
3750 var9
= ((val
* (*)(val
*))(var7
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var7
) /* item on <var7:Iterator[nullable Object]>*/;
3752 var10
= ((short int (*)(val
*, val
*))(var_otype
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var_otype
, var_mtype
) /* == on <var_otype:MType>*/;
3754 goto CONTINUE_label
;
3757 ((void (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_layout_builders__ResolutionColorer__add_conflict
]))(self
, var_mtype
, var_otype
) /* add_conflict on <self:ResolutionColorer>*/;
3758 CONTINUE_label
: (void)0;
3759 ((void (*)(val
*))(var7
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var7
) /* next on <var7:Iterator[nullable Object]>*/;
3761 BREAK_label
: (void)0;
3762 CONTINUE_label11
: (void)0;
3763 ((void (*)(val
*))(var4
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var4
) /* next on <var4:Iterator[nullable Object]>*/;
3765 BREAK_label11
: (void)0;
3766 CONTINUE_label12
: (void)0;
3767 ((void (*)(val
*))(var
->class->vft
[COLOR_abstract_collection__MapIterator__next
]))(var
) /* next on <var:MapIterator[Object, nullable Object]>*/;
3769 BREAK_label12
: (void)0;
3772 /* method layout_builders#ResolutionColorer#build_conflicts_graph for (self: Object, Map[MClassType, Set[MType]]) */
3773 void VIRTUAL_layout_builders__ResolutionColorer__build_conflicts_graph(val
* self
, val
* p0
) {
3774 layout_builders__ResolutionColorer__build_conflicts_graph(self
, p0
);
3777 /* method layout_builders#ResolutionColorer#conflicts_graph for (self: ResolutionColorer): Map[MType, Set[MType]] */
3778 val
* layout_builders__ResolutionColorer__conflicts_graph(val
* self
) {
3779 val
* var
/* : Map[MType, Set[MType]] */;
3780 val
* var1
/* : Map[MType, Set[MType]] */;
3781 var1
= self
->attrs
[COLOR_layout_builders__ResolutionColorer___64dconflicts_graph
].val
; /* @conflicts_graph on <self:ResolutionColorer> */
3783 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute @conflicts_graph");
3784 fprintf(stderr
, " (%s:%d)\n", "src/layout_builders.nit", 536);
3791 /* method layout_builders#ResolutionColorer#conflicts_graph for (self: Object): Map[MType, Set[MType]] */
3792 val
* VIRTUAL_layout_builders__ResolutionColorer__conflicts_graph(val
* self
) {
3793 val
* var
/* : Map[MType, Set[MType]] */;
3794 val
* var1
/* : Map[MType, Set[MType]] */;
3795 var1
= layout_builders__ResolutionColorer__conflicts_graph(self
);
3800 /* method layout_builders#ResolutionColorer#conflicts_graph= for (self: ResolutionColorer, Map[MType, Set[MType]]) */
3801 void layout_builders__ResolutionColorer__conflicts_graph_61d(val
* self
, val
* p0
) {
3802 self
->attrs
[COLOR_layout_builders__ResolutionColorer___64dconflicts_graph
].val
= p0
; /* @conflicts_graph on <self:ResolutionColorer> */
3805 /* method layout_builders#ResolutionColorer#conflicts_graph= for (self: Object, Map[MType, Set[MType]]) */
3806 void VIRTUAL_layout_builders__ResolutionColorer__conflicts_graph_61d(val
* self
, val
* p0
) {
3807 layout_builders__ResolutionColorer__conflicts_graph_61d(self
, p0
);
3810 /* method layout_builders#ResolutionColorer#add_conflict for (self: ResolutionColorer, MType, MType) */
3811 void layout_builders__ResolutionColorer__add_conflict(val
* self
, val
* p0
, val
* p1
) {
3812 val
* var_mtype
/* var mtype: MType */;
3813 val
* var_otype
/* var otype: MType */;
3814 short int var
/* : Bool */;
3815 val
* var1
/* : Map[MType, Set[MType]] */;
3816 short int var2
/* : Bool */;
3817 short int var3
/* : Bool */;
3818 val
* var4
/* : Map[MType, Set[MType]] */;
3819 val
* var5
/* : HashSet[MType] */;
3820 val
* var6
/* : Map[MType, Set[MType]] */;
3821 val
* var7
/* : nullable Object */;
3822 val
* var8
/* : Map[MType, Set[MType]] */;
3823 short int var9
/* : Bool */;
3824 short int var10
/* : Bool */;
3825 val
* var11
/* : Map[MType, Set[MType]] */;
3826 val
* var12
/* : HashSet[MType] */;
3827 val
* var13
/* : Map[MType, Set[MType]] */;
3828 val
* var14
/* : nullable Object */;
3831 var
= ((short int (*)(val
*, val
*))(var_mtype
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var_mtype
, var_otype
) /* == on <var_mtype:MType>*/;
3836 var1
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_layout_builders__ResolutionColorer__conflicts_graph
]))(self
) /* conflicts_graph on <self:ResolutionColorer>*/;
3837 var2
= ((short int (*)(val
*, val
*))(var1
->class->vft
[COLOR_abstract_collection__MapRead__has_key
]))(var1
, var_mtype
) /* has_key on <var1:Map[MType, Set[MType]]>*/;
3840 var4
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_layout_builders__ResolutionColorer__conflicts_graph
]))(self
) /* conflicts_graph on <self:ResolutionColorer>*/;
3841 var5
= NEW_hash_collection__HashSet(&type_hash_collection__HashSetmodel__MType
);
3842 ((void (*)(val
*))(var5
->class->vft
[COLOR_hash_collection__HashSet__init
]))(var5
) /* init on <var5:HashSet[MType]>*/;
3843 CHECK_NEW_hash_collection__HashSet(var5
);
3844 ((void (*)(val
*, val
*, val
*))(var4
->class->vft
[COLOR_abstract_collection__Map___91d_93d_61d
]))(var4
, var_mtype
, var5
) /* []= on <var4:Map[MType, Set[MType]]>*/;
3847 var6
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_layout_builders__ResolutionColorer__conflicts_graph
]))(self
) /* conflicts_graph on <self:ResolutionColorer>*/;
3848 var7
= ((val
* (*)(val
*, val
*))(var6
->class->vft
[COLOR_abstract_collection__MapRead___91d_93d
]))(var6
, var_mtype
) /* [] on <var6:Map[MType, Set[MType]]>*/;
3849 ((void (*)(val
*, val
*))(var7
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var7
, var_otype
) /* add on <var7:nullable Object(Set[MType])>*/;
3850 var8
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_layout_builders__ResolutionColorer__conflicts_graph
]))(self
) /* conflicts_graph on <self:ResolutionColorer>*/;
3851 var9
= ((short int (*)(val
*, val
*))(var8
->class->vft
[COLOR_abstract_collection__MapRead__has_key
]))(var8
, var_otype
) /* has_key on <var8:Map[MType, Set[MType]]>*/;
3854 var11
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_layout_builders__ResolutionColorer__conflicts_graph
]))(self
) /* conflicts_graph on <self:ResolutionColorer>*/;
3855 var12
= NEW_hash_collection__HashSet(&type_hash_collection__HashSetmodel__MType
);
3856 ((void (*)(val
*))(var12
->class->vft
[COLOR_hash_collection__HashSet__init
]))(var12
) /* init on <var12:HashSet[MType]>*/;
3857 CHECK_NEW_hash_collection__HashSet(var12
);
3858 ((void (*)(val
*, val
*, val
*))(var11
->class->vft
[COLOR_abstract_collection__Map___91d_93d_61d
]))(var11
, var_otype
, var12
) /* []= on <var11:Map[MType, Set[MType]]>*/;
3861 var13
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_layout_builders__ResolutionColorer__conflicts_graph
]))(self
) /* conflicts_graph on <self:ResolutionColorer>*/;
3862 var14
= ((val
* (*)(val
*, val
*))(var13
->class->vft
[COLOR_abstract_collection__MapRead___91d_93d
]))(var13
, var_otype
) /* [] on <var13:Map[MType, Set[MType]]>*/;
3863 ((void (*)(val
*, val
*))(var14
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var14
, var_mtype
) /* add on <var14:nullable Object(Set[MType])>*/;
3866 /* method layout_builders#ResolutionColorer#add_conflict for (self: Object, MType, MType) */
3867 void VIRTUAL_layout_builders__ResolutionColorer__add_conflict(val
* self
, val
* p0
, val
* p1
) {
3868 layout_builders__ResolutionColorer__add_conflict(self
, p0
, p1
);
3871 /* method layout_builders#PerfectHasher#operator for (self: PerfectHasher[Object, Object]): PHOperator */
3872 val
* layout_builders__PerfectHasher__operator(val
* self
) {
3873 val
* var
/* : PHOperator */;
3874 val
* var1
/* : PHOperator */;
3875 var1
= self
->attrs
[COLOR_layout_builders__PerfectHasher___64doperator
].val
; /* @operator on <self:PerfectHasher[Object, Object]> */
3877 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute @operator");
3878 fprintf(stderr
, " (%s:%d)\n", "src/layout_builders.nit", 552);
3885 /* method layout_builders#PerfectHasher#operator for (self: Object): PHOperator */
3886 val
* VIRTUAL_layout_builders__PerfectHasher__operator(val
* self
) {
3887 val
* var
/* : PHOperator */;
3888 val
* var1
/* : PHOperator */;
3889 var1
= layout_builders__PerfectHasher__operator(self
);
3894 /* method layout_builders#PerfectHasher#operator= for (self: PerfectHasher[Object, Object], PHOperator) */
3895 void layout_builders__PerfectHasher__operator_61d(val
* self
, val
* p0
) {
3896 self
->attrs
[COLOR_layout_builders__PerfectHasher___64doperator
].val
= p0
; /* @operator on <self:PerfectHasher[Object, Object]> */
3899 /* method layout_builders#PerfectHasher#operator= for (self: Object, PHOperator) */
3900 void VIRTUAL_layout_builders__PerfectHasher__operator_61d(val
* self
, val
* p0
) {
3901 layout_builders__PerfectHasher__operator_61d(self
, p0
);
3904 /* method layout_builders#PerfectHasher#init for (self: PerfectHasher[Object, Object]) */
3905 void layout_builders__PerfectHasher__init(val
* self
) {
3908 /* method layout_builders#PerfectHasher#init for (self: Object) */
3909 void VIRTUAL_layout_builders__PerfectHasher__init(val
* self
) {
3910 layout_builders__PerfectHasher__init(self
);
3913 /* method layout_builders#PerfectHasher#compute_masks for (self: PerfectHasher[Object, Object], Map[Object, Set[Object]], Map[Object, Int]): Map[Object, Int] */
3914 val
* layout_builders__PerfectHasher__compute_masks(val
* self
, val
* p0
, val
* p1
) {
3915 val
* var
/* : Map[Object, Int] */;
3916 short int var1
/* : Bool */;
3919 const struct type
* type_struct
;
3920 const char* var_class_name
;
3921 short int var2
/* : Bool */;
3924 const struct type
* type_struct5
;
3925 const char* var_class_name6
;
3926 val
* var_conflicts
/* var conflicts: Map[Object, Set[Object]] */;
3927 val
* var_ids
/* var ids: Map[Object, Int] */;
3928 val
* var7
/* : HashMap[Object, Int] */;
3929 val
* var_masks
/* var masks: HashMap[Object, Int] */;
3930 val
* var8
/* : MapIterator[Object, nullable Object] */;
3931 short int var9
/* : Bool */;
3932 val
* var10
/* : Object */;
3933 val
* var_mclasstype
/* var mclasstype: Object */;
3934 val
* var11
/* : nullable Object */;
3935 val
* var_mtypes
/* var mtypes: Set[Object] */;
3936 long var12
/* : Int */;
3937 val
* var13
/* : nullable Object */;
3938 /* Covariant cast for argument 0 (conflicts) <p0:Map[Object, Set[Object]]> isa Map[PerfectHasher#0, Set[PerfectHasher#1]] */
3939 /* <p0:Map[Object, Set[Object]]> isa Map[PerfectHasher#0, Set[PerfectHasher#1]] */
3940 type_struct
= self
->type
->resolution_table
->types
[COLOR_abstract_collection__Maplayout_builders__PerfectHasher_FT0abstract_collection__Setlayout_builders__PerfectHasher_FT1
];
3941 cltype
= type_struct
->color
;
3942 idtype
= type_struct
->id
;
3943 if(cltype
>= p0
->type
->table_size
) {
3946 var1
= p0
->type
->type_table
[cltype
] == idtype
;
3949 var_class_name
= p0
== NULL ?
"null" : p0
->type
->name
;
3950 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "Map[PerfectHasher#0, Set[PerfectHasher#1]]", var_class_name
);
3951 fprintf(stderr
, " (%s:%d)\n", "src/layout_builders.nit", 556);
3954 /* Covariant cast for argument 1 (ids) <p1:Map[Object, Int]> isa Map[PerfectHasher#1, Int] */
3955 /* <p1:Map[Object, Int]> isa Map[PerfectHasher#1, Int] */
3956 type_struct5
= self
->type
->resolution_table
->types
[COLOR_abstract_collection__Maplayout_builders__PerfectHasher_FT1kernel__Int
];
3957 cltype3
= type_struct5
->color
;
3958 idtype4
= type_struct5
->id
;
3959 if(cltype3
>= p1
->type
->table_size
) {
3962 var2
= p1
->type
->type_table
[cltype3
] == idtype4
;
3965 var_class_name6
= p1
== NULL ?
"null" : p1
->type
->name
;
3966 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "Map[PerfectHasher#1, Int]", var_class_name6
);
3967 fprintf(stderr
, " (%s:%d)\n", "src/layout_builders.nit", 556);
3972 var7
= NEW_hash_collection__HashMap(self
->type
->resolution_table
->types
[COLOR_hash_collection__HashMaplayout_builders__PerfectHasher_FT0kernel__Int
]);
3973 ((void (*)(val
*))(var7
->class->vft
[COLOR_hash_collection__HashMap__init
]))(var7
) /* init on <var7:HashMap[Object, Int]>*/;
3974 CHECK_NEW_hash_collection__HashMap(var7
);
3976 var8
= ((val
* (*)(val
*))(var_conflicts
->class->vft
[COLOR_abstract_collection__MapRead__iterator
]))(var_conflicts
) /* iterator on <var_conflicts:Map[Object, Set[Object]]>*/;
3978 var9
= ((short int (*)(val
*))(var8
->class->vft
[COLOR_abstract_collection__MapIterator__is_ok
]))(var8
) /* is_ok on <var8:MapIterator[Object, nullable Object]>*/;
3980 var10
= ((val
* (*)(val
*))(var8
->class->vft
[COLOR_abstract_collection__MapIterator__key
]))(var8
) /* key on <var8:MapIterator[Object, nullable Object]>*/;
3981 var_mclasstype
= var10
;
3982 var11
= ((val
* (*)(val
*))(var8
->class->vft
[COLOR_abstract_collection__MapIterator__item
]))(var8
) /* item on <var8:MapIterator[Object, nullable Object]>*/;
3984 var12
= ((long (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_layout_builders__PerfectHasher__compute_mask
]))(self
, var_mtypes
, var_ids
) /* compute_mask on <self:PerfectHasher[Object, Object]>*/;
3985 var13
= BOX_kernel__Int(var12
); /* autobox from Int to nullable Object */
3986 ((void (*)(val
*, val
*, val
*))(var_masks
->class->vft
[COLOR_abstract_collection__Map___91d_93d_61d
]))(var_masks
, var_mclasstype
, var13
) /* []= on <var_masks:HashMap[Object, Int]>*/;
3987 CONTINUE_label
: (void)0;
3988 ((void (*)(val
*))(var8
->class->vft
[COLOR_abstract_collection__MapIterator__next
]))(var8
) /* next on <var8:MapIterator[Object, nullable Object]>*/;
3990 BREAK_label
: (void)0;
3996 /* method layout_builders#PerfectHasher#compute_masks for (self: Object, Map[Object, Set[Object]], Map[Object, Int]): Map[Object, Int] */
3997 val
* VIRTUAL_layout_builders__PerfectHasher__compute_masks(val
* self
, val
* p0
, val
* p1
) {
3998 val
* var
/* : Map[Object, Int] */;
3999 val
* var1
/* : Map[Object, Int] */;
4000 var1
= layout_builders__PerfectHasher__compute_masks(self
, p0
, p1
);
4005 /* method layout_builders#PerfectHasher#compute_mask for (self: PerfectHasher[Object, Object], Set[Object], Map[Object, Int]): Int */
4006 long layout_builders__PerfectHasher__compute_mask(val
* self
, val
* p0
, val
* p1
) {
4007 long var
/* : Int */;
4008 short int var1
/* : Bool */;
4011 const struct type
* type_struct
;
4012 const char* var_class_name
;
4013 short int var2
/* : Bool */;
4016 const struct type
* type_struct5
;
4017 const char* var_class_name6
;
4018 val
* var_mtypes
/* var mtypes: Set[Object] */;
4019 val
* var_ids
/* var ids: Map[Object, Int] */;
4020 long var7
/* : Int */;
4021 long var_mask
/* var mask: Int */;
4022 val
* var8
/* : List[Int] */;
4023 val
* var_used
/* var used: List[Int] */;
4024 val
* var9
/* : Iterator[nullable Object] */;
4025 short int var10
/* : Bool */;
4026 val
* var11
/* : nullable Object */;
4027 val
* var_mtype
/* var mtype: Object */;
4028 val
* var12
/* : PHOperator */;
4029 val
* var13
/* : nullable Object */;
4030 long var14
/* : Int */;
4031 long var15
/* : Int */;
4032 long var_res
/* var res: Int */;
4033 short int var16
/* : Bool */;
4034 val
* var17
/* : nullable Object */;
4035 val
* var18
/* : nullable Object */;
4036 long var19
/* : Int */;
4037 long var20
/* : Int */;
4038 short int var21
/* : Bool */;
4039 short int var23
/* : Bool */;
4040 long var25
/* : Int */;
4041 long var26
/* : Int */;
4042 long var28
/* : Int */;
4043 /* Covariant cast for argument 0 (mtypes) <p0:Set[Object]> isa Set[PerfectHasher#1] */
4044 /* <p0:Set[Object]> isa Set[PerfectHasher#1] */
4045 type_struct
= self
->type
->resolution_table
->types
[COLOR_abstract_collection__Setlayout_builders__PerfectHasher_FT1
];
4046 cltype
= type_struct
->color
;
4047 idtype
= type_struct
->id
;
4048 if(cltype
>= p0
->type
->table_size
) {
4051 var1
= p0
->type
->type_table
[cltype
] == idtype
;
4054 var_class_name
= p0
== NULL ?
"null" : p0
->type
->name
;
4055 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "Set[PerfectHasher#1]", var_class_name
);
4056 fprintf(stderr
, " (%s:%d)\n", "src/layout_builders.nit", 565);
4059 /* Covariant cast for argument 1 (ids) <p1:Map[Object, Int]> isa Map[PerfectHasher#1, Int] */
4060 /* <p1:Map[Object, Int]> isa Map[PerfectHasher#1, Int] */
4061 type_struct5
= self
->type
->resolution_table
->types
[COLOR_abstract_collection__Maplayout_builders__PerfectHasher_FT1kernel__Int
];
4062 cltype3
= type_struct5
->color
;
4063 idtype4
= type_struct5
->id
;
4064 if(cltype3
>= p1
->type
->table_size
) {
4067 var2
= p1
->type
->type_table
[cltype3
] == idtype4
;
4070 var_class_name6
= p1
== NULL ?
"null" : p1
->type
->name
;
4071 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "Map[PerfectHasher#1, Int]", var_class_name6
);
4072 fprintf(stderr
, " (%s:%d)\n", "src/layout_builders.nit", 565);
4080 var8
= NEW_list__List(&type_list__Listkernel__Int
);
4081 ((void (*)(val
*))(var8
->class->vft
[COLOR_list__List__init
]))(var8
) /* init on <var8:List[Int]>*/;
4082 CHECK_NEW_list__List(var8
);
4084 var9
= ((val
* (*)(val
*))(var_mtypes
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var_mtypes
) /* iterator on <var_mtypes:Set[Object]>*/;
4086 var10
= ((short int (*)(val
*))(var9
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var9
) /* is_ok on <var9:Iterator[nullable Object]>*/;
4088 var11
= ((val
* (*)(val
*))(var9
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var9
) /* item on <var9:Iterator[nullable Object]>*/;
4090 var12
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_layout_builders__PerfectHasher__operator
]))(self
) /* operator on <self:PerfectHasher[Object, Object]>*/;
4091 var13
= ((val
* (*)(val
*, val
*))(var_ids
->class->vft
[COLOR_abstract_collection__MapRead___91d_93d
]))(var_ids
, var_mtype
) /* [] on <var_ids:Map[Object, Int]>*/;
4092 var15
= ((struct instance_kernel__Int
*)var13
)->value
; /* autounbox from nullable Object to Int */;
4093 var14
= ((long (*)(val
*, long, long))(var12
->class->vft
[COLOR_layout_builders__PHOperator__op
]))(var12
, var_mask
, var15
) /* op on <var12:PHOperator>*/;
4095 var17
= BOX_kernel__Int(var_res
); /* autobox from Int to nullable Object */
4096 var16
= ((short int (*)(val
*, val
*))(var_used
->class->vft
[COLOR_abstract_collection__Collection__has
]))(var_used
, var17
) /* has on <var_used:List[Int]>*/;
4100 var18
= BOX_kernel__Int(var_res
); /* autobox from Int to nullable Object */
4101 ((void (*)(val
*, val
*))(var_used
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_used
, var18
) /* add on <var_used:List[Int]>*/;
4103 CONTINUE_label
: (void)0;
4104 ((void (*)(val
*))(var9
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var9
) /* next on <var9:Iterator[nullable Object]>*/;
4106 BREAK_label
: (void)0;
4107 var19
= ((long (*)(val
*))(var_used
->class->vft
[COLOR_abstract_collection__Collection__length
]))(var_used
) /* length on <var_used:List[Int]>*/;
4108 var20
= ((long (*)(val
*))(var_mtypes
->class->vft
[COLOR_abstract_collection__Collection__length
]))(var_mtypes
) /* length on <var_mtypes:Set[Object]>*/;
4109 { /* Inline kernel#Int#== (var19,var20) */
4110 var23
= var19
== var20
;
4113 RET_LABEL22
:(void)0;
4120 { /* Inline kernel#Int#+ (var_mask,var25) */
4121 var28
= var_mask
+ var25
;
4124 RET_LABEL27
:(void)0;
4127 CONTINUE_label24
: (void)0;
4129 BREAK_label24
: (void)0;
4135 /* method layout_builders#PerfectHasher#compute_mask for (self: Object, Set[Object], Map[Object, Int]): Int */
4136 long VIRTUAL_layout_builders__PerfectHasher__compute_mask(val
* self
, val
* p0
, val
* p1
) {
4137 long var
/* : Int */;
4138 long var1
/* : Int */;
4139 var1
= layout_builders__PerfectHasher__compute_mask(self
, p0
, p1
);
4144 /* method layout_builders#PerfectHasher#compute_hashes for (self: PerfectHasher[Object, Object], Map[Object, Set[Object]], Map[Object, Int], Map[Object, Int]): Map[Object, Map[Object, Int]] */
4145 val
* layout_builders__PerfectHasher__compute_hashes(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
4146 val
* var
/* : Map[Object, Map[Object, Int]] */;
4147 short int var1
/* : Bool */;
4150 const struct type
* type_struct
;
4151 const char* var_class_name
;
4152 short int var2
/* : Bool */;
4155 const struct type
* type_struct5
;
4156 const char* var_class_name6
;
4157 short int var7
/* : Bool */;
4160 const struct type
* type_struct10
;
4161 const char* var_class_name11
;
4162 val
* var_elements
/* var elements: Map[Object, Set[Object]] */;
4163 val
* var_ids
/* var ids: Map[Object, Int] */;
4164 val
* var_masks
/* var masks: Map[Object, Int] */;
4165 val
* var12
/* : HashMap[Object, Map[Object, Int]] */;
4166 val
* var_hashes
/* var hashes: HashMap[Object, Map[Object, Int]] */;
4167 val
* var13
/* : MapIterator[Object, nullable Object] */;
4168 short int var14
/* : Bool */;
4169 val
* var15
/* : Object */;
4170 val
* var_mclasstype
/* var mclasstype: Object */;
4171 val
* var16
/* : nullable Object */;
4172 val
* var_mtypes
/* var mtypes: Set[Object] */;
4173 val
* var17
/* : nullable Object */;
4174 long var18
/* : Int */;
4175 long var_mask
/* var mask: Int */;
4176 val
* var19
/* : HashMap[Object, Int] */;
4177 val
* var_inhashes
/* var inhashes: HashMap[Object, Int] */;
4178 val
* var20
/* : Iterator[nullable Object] */;
4179 short int var21
/* : Bool */;
4180 val
* var22
/* : nullable Object */;
4181 val
* var_mtype
/* var mtype: Object */;
4182 val
* var23
/* : PHOperator */;
4183 val
* var24
/* : nullable Object */;
4184 long var25
/* : Int */;
4185 long var26
/* : Int */;
4186 val
* var27
/* : nullable Object */;
4187 /* Covariant cast for argument 0 (elements) <p0:Map[Object, Set[Object]]> isa Map[PerfectHasher#0, Set[PerfectHasher#1]] */
4188 /* <p0:Map[Object, Set[Object]]> isa Map[PerfectHasher#0, Set[PerfectHasher#1]] */
4189 type_struct
= self
->type
->resolution_table
->types
[COLOR_abstract_collection__Maplayout_builders__PerfectHasher_FT0abstract_collection__Setlayout_builders__PerfectHasher_FT1
];
4190 cltype
= type_struct
->color
;
4191 idtype
= type_struct
->id
;
4192 if(cltype
>= p0
->type
->table_size
) {
4195 var1
= p0
->type
->type_table
[cltype
] == idtype
;
4198 var_class_name
= p0
== NULL ?
"null" : p0
->type
->name
;
4199 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "Map[PerfectHasher#0, Set[PerfectHasher#1]]", var_class_name
);
4200 fprintf(stderr
, " (%s:%d)\n", "src/layout_builders.nit", 583);
4203 /* Covariant cast for argument 1 (ids) <p1:Map[Object, Int]> isa Map[PerfectHasher#1, Int] */
4204 /* <p1:Map[Object, Int]> isa Map[PerfectHasher#1, Int] */
4205 type_struct5
= self
->type
->resolution_table
->types
[COLOR_abstract_collection__Maplayout_builders__PerfectHasher_FT1kernel__Int
];
4206 cltype3
= type_struct5
->color
;
4207 idtype4
= type_struct5
->id
;
4208 if(cltype3
>= p1
->type
->table_size
) {
4211 var2
= p1
->type
->type_table
[cltype3
] == idtype4
;
4214 var_class_name6
= p1
== NULL ?
"null" : p1
->type
->name
;
4215 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "Map[PerfectHasher#1, Int]", var_class_name6
);
4216 fprintf(stderr
, " (%s:%d)\n", "src/layout_builders.nit", 583);
4219 /* Covariant cast for argument 2 (masks) <p2:Map[Object, Int]> isa Map[PerfectHasher#0, Int] */
4220 /* <p2:Map[Object, Int]> isa Map[PerfectHasher#0, Int] */
4221 type_struct10
= self
->type
->resolution_table
->types
[COLOR_abstract_collection__Maplayout_builders__PerfectHasher_FT0kernel__Int
];
4222 cltype8
= type_struct10
->color
;
4223 idtype9
= type_struct10
->id
;
4224 if(cltype8
>= p2
->type
->table_size
) {
4227 var7
= p2
->type
->type_table
[cltype8
] == idtype9
;
4230 var_class_name11
= p2
== NULL ?
"null" : p2
->type
->name
;
4231 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "Map[PerfectHasher#0, Int]", var_class_name11
);
4232 fprintf(stderr
, " (%s:%d)\n", "src/layout_builders.nit", 583);
4238 var12
= NEW_hash_collection__HashMap(self
->type
->resolution_table
->types
[COLOR_hash_collection__HashMaplayout_builders__PerfectHasher_FT0abstract_collection__Maplayout_builders__PerfectHasher_FT1kernel__Int
]);
4239 ((void (*)(val
*))(var12
->class->vft
[COLOR_hash_collection__HashMap__init
]))(var12
) /* init on <var12:HashMap[Object, Map[Object, Int]]>*/;
4240 CHECK_NEW_hash_collection__HashMap(var12
);
4242 var13
= ((val
* (*)(val
*))(var_elements
->class->vft
[COLOR_abstract_collection__MapRead__iterator
]))(var_elements
) /* iterator on <var_elements:Map[Object, Set[Object]]>*/;
4244 var14
= ((short int (*)(val
*))(var13
->class->vft
[COLOR_abstract_collection__MapIterator__is_ok
]))(var13
) /* is_ok on <var13:MapIterator[Object, nullable Object]>*/;
4246 var15
= ((val
* (*)(val
*))(var13
->class->vft
[COLOR_abstract_collection__MapIterator__key
]))(var13
) /* key on <var13:MapIterator[Object, nullable Object]>*/;
4247 var_mclasstype
= var15
;
4248 var16
= ((val
* (*)(val
*))(var13
->class->vft
[COLOR_abstract_collection__MapIterator__item
]))(var13
) /* item on <var13:MapIterator[Object, nullable Object]>*/;
4250 var17
= ((val
* (*)(val
*, val
*))(var_masks
->class->vft
[COLOR_abstract_collection__MapRead___91d_93d
]))(var_masks
, var_mclasstype
) /* [] on <var_masks:Map[Object, Int]>*/;
4251 var18
= ((struct instance_kernel__Int
*)var17
)->value
; /* autounbox from nullable Object to Int */;
4253 var19
= NEW_hash_collection__HashMap(self
->type
->resolution_table
->types
[COLOR_hash_collection__HashMaplayout_builders__PerfectHasher_FT1kernel__Int
]);
4254 ((void (*)(val
*))(var19
->class->vft
[COLOR_hash_collection__HashMap__init
]))(var19
) /* init on <var19:HashMap[Object, Int]>*/;
4255 CHECK_NEW_hash_collection__HashMap(var19
);
4256 var_inhashes
= var19
;
4257 var20
= ((val
* (*)(val
*))(var_mtypes
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var_mtypes
) /* iterator on <var_mtypes:Set[Object]>*/;
4259 var21
= ((short int (*)(val
*))(var20
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var20
) /* is_ok on <var20:Iterator[nullable Object]>*/;
4261 var22
= ((val
* (*)(val
*))(var20
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var20
) /* item on <var20:Iterator[nullable Object]>*/;
4263 var23
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_layout_builders__PerfectHasher__operator
]))(self
) /* operator on <self:PerfectHasher[Object, Object]>*/;
4264 var24
= ((val
* (*)(val
*, val
*))(var_ids
->class->vft
[COLOR_abstract_collection__MapRead___91d_93d
]))(var_ids
, var_mtype
) /* [] on <var_ids:Map[Object, Int]>*/;
4265 var26
= ((struct instance_kernel__Int
*)var24
)->value
; /* autounbox from nullable Object to Int */;
4266 var25
= ((long (*)(val
*, long, long))(var23
->class->vft
[COLOR_layout_builders__PHOperator__op
]))(var23
, var_mask
, var26
) /* op on <var23:PHOperator>*/;
4267 var27
= BOX_kernel__Int(var25
); /* autobox from Int to nullable Object */
4268 ((void (*)(val
*, val
*, val
*))(var_inhashes
->class->vft
[COLOR_abstract_collection__Map___91d_93d_61d
]))(var_inhashes
, var_mtype
, var27
) /* []= on <var_inhashes:HashMap[Object, Int]>*/;
4269 CONTINUE_label
: (void)0;
4270 ((void (*)(val
*))(var20
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var20
) /* next on <var20:Iterator[nullable Object]>*/;
4272 BREAK_label
: (void)0;
4273 ((void (*)(val
*, val
*, val
*))(var_hashes
->class->vft
[COLOR_abstract_collection__Map___91d_93d_61d
]))(var_hashes
, var_mclasstype
, var_inhashes
) /* []= on <var_hashes:HashMap[Object, Map[Object, Int]]>*/;
4274 CONTINUE_label28
: (void)0;
4275 ((void (*)(val
*))(var13
->class->vft
[COLOR_abstract_collection__MapIterator__next
]))(var13
) /* next on <var13:MapIterator[Object, nullable Object]>*/;
4277 BREAK_label28
: (void)0;
4283 /* method layout_builders#PerfectHasher#compute_hashes for (self: Object, Map[Object, Set[Object]], Map[Object, Int], Map[Object, Int]): Map[Object, Map[Object, Int]] */
4284 val
* VIRTUAL_layout_builders__PerfectHasher__compute_hashes(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
4285 val
* var
/* : Map[Object, Map[Object, Int]] */;
4286 val
* var1
/* : Map[Object, Map[Object, Int]] */;
4287 var1
= layout_builders__PerfectHasher__compute_hashes(self
, p0
, p1
, p2
);
4292 /* method layout_builders#PHOperator#op for (self: PHOperator, Int, Int): Int */
4293 long layout_builders__PHOperator__op(val
* self
, long p0
, long p1
) {
4294 long var
/* : Int */;
4295 const char* var_class_name
;
4296 var_class_name
= self
== NULL ?
"null" : self
->type
->name
;
4297 fprintf(stderr
, "Runtime error: Abstract method `%s` called on `%s`", "op", var_class_name
);
4298 fprintf(stderr
, " (%s:%d)\n", "src/layout_builders.nit", 600);
4303 /* method layout_builders#PHOperator#op for (self: Object, Int, Int): Int */
4304 long VIRTUAL_layout_builders__PHOperator__op(val
* self
, long p0
, long p1
) {
4305 long var
/* : Int */;
4306 long var1
/* : Int */;
4307 var1
= layout_builders__PHOperator__op(self
, p0
, p1
);
4312 /* method layout_builders#PHOperator#init for (self: PHOperator) */
4313 void layout_builders__PHOperator__init(val
* self
) {
4316 /* method layout_builders#PHOperator#init for (self: Object) */
4317 void VIRTUAL_layout_builders__PHOperator__init(val
* self
) {
4318 layout_builders__PHOperator__init(self
);
4321 /* method layout_builders#PHModOperator#init for (self: PHModOperator) */
4322 void layout_builders__PHModOperator__init(val
* self
) {
4323 ((void (*)(val
*))(self
->class->vft
[COLOR_layout_builders__PHOperator__init
]))(self
) /* init on <self:PHModOperator>*/;
4326 /* method layout_builders#PHModOperator#init for (self: Object) */
4327 void VIRTUAL_layout_builders__PHModOperator__init(val
* self
) {
4328 layout_builders__PHModOperator__init(self
);
4331 /* method layout_builders#PHModOperator#op for (self: PHModOperator, Int, Int): Int */
4332 long layout_builders__PHModOperator__op(val
* self
, long p0
, long p1
) {
4333 long var
/* : Int */;
4334 long var_mask
/* var mask: Int */;
4335 long var_id
/* var id: Int */;
4336 long var1
/* : Int */;
4337 long var3
/* : Int */;
4340 { /* Inline kernel#Int#% (var_mask,var_id) */
4341 var3
= var_mask
% var_id
;
4351 /* method layout_builders#PHModOperator#op for (self: Object, Int, Int): Int */
4352 long VIRTUAL_layout_builders__PHModOperator__op(val
* self
, long p0
, long p1
) {
4353 long var
/* : Int */;
4354 long var1
/* : Int */;
4355 var1
= layout_builders__PHModOperator__op(self
, p0
, p1
);
4360 /* method layout_builders#PHAndOperator#init for (self: PHAndOperator) */
4361 void layout_builders__PHAndOperator__init(val
* self
) {
4362 ((void (*)(val
*))(self
->class->vft
[COLOR_layout_builders__PHOperator__init
]))(self
) /* init on <self:PHAndOperator>*/;
4365 /* method layout_builders#PHAndOperator#init for (self: Object) */
4366 void VIRTUAL_layout_builders__PHAndOperator__init(val
* self
) {
4367 layout_builders__PHAndOperator__init(self
);
4370 /* method layout_builders#PHAndOperator#op for (self: PHAndOperator, Int, Int): Int */
4371 long layout_builders__PHAndOperator__op(val
* self
, long p0
, long p1
) {
4372 long var
/* : Int */;
4373 long var_mask
/* var mask: Int */;
4374 long var_id
/* var id: Int */;
4375 long var1
/* : Int */;
4378 var1
= math__Int__bin_and(var_mask
, var_id
);
4384 /* method layout_builders#PHAndOperator#op for (self: Object, Int, Int): Int */
4385 long VIRTUAL_layout_builders__PHAndOperator__op(val
* self
, long p0
, long p1
) {
4386 long var
/* : Int */;
4387 long var1
/* : Int */;
4388 var1
= layout_builders__PHAndOperator__op(self
, p0
, p1
);
4393 /* method layout_builders#TypingHasher#mmodule for (self: TypingHasher[Object]): MModule */
4394 val
* layout_builders__TypingHasher__mmodule(val
* self
) {
4395 val
* var
/* : MModule */;
4396 val
* var1
/* : MModule */;
4397 var1
= self
->attrs
[COLOR_layout_builders__TypingHasher___64dmmodule
].val
; /* @mmodule on <self:TypingHasher[Object]> */
4399 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute @mmodule");
4400 fprintf(stderr
, " (%s:%d)\n", "src/layout_builders.nit", 625);
4407 /* method layout_builders#TypingHasher#mmodule for (self: Object): MModule */
4408 val
* VIRTUAL_layout_builders__TypingHasher__mmodule(val
* self
) {
4409 val
* var
/* : MModule */;
4410 val
* var1
/* : MModule */;
4411 var1
= layout_builders__TypingHasher__mmodule(self
);
4416 /* method layout_builders#TypingHasher#mmodule= for (self: TypingHasher[Object], MModule) */
4417 void layout_builders__TypingHasher__mmodule_61d(val
* self
, val
* p0
) {
4418 self
->attrs
[COLOR_layout_builders__TypingHasher___64dmmodule
].val
= p0
; /* @mmodule on <self:TypingHasher[Object]> */
4421 /* method layout_builders#TypingHasher#mmodule= for (self: Object, MModule) */
4422 void VIRTUAL_layout_builders__TypingHasher__mmodule_61d(val
* self
, val
* p0
) {
4423 layout_builders__TypingHasher__mmodule_61d(self
, p0
);
4426 /* method layout_builders#TypingHasher#poset_builder for (self: TypingHasher[Object]): POSetBuilder[Object] */
4427 val
* layout_builders__TypingHasher__poset_builder(val
* self
) {
4428 val
* var
/* : POSetBuilder[Object] */;
4429 val
* var1
/* : POSetBuilder[Object] */;
4430 var1
= self
->attrs
[COLOR_layout_builders__TypingHasher___64dposet_builder
].val
; /* @poset_builder on <self:TypingHasher[Object]> */
4432 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute @poset_builder");
4433 fprintf(stderr
, " (%s:%d)\n", "src/layout_builders.nit", 626);
4440 /* method layout_builders#TypingHasher#poset_builder for (self: Object): POSetBuilder[Object] */
4441 val
* VIRTUAL_layout_builders__TypingHasher__poset_builder(val
* self
) {
4442 val
* var
/* : POSetBuilder[Object] */;
4443 val
* var1
/* : POSetBuilder[Object] */;
4444 var1
= layout_builders__TypingHasher__poset_builder(self
);
4449 /* method layout_builders#TypingHasher#poset_builder= for (self: TypingHasher[Object], POSetBuilder[Object]) */
4450 void layout_builders__TypingHasher__poset_builder_61d(val
* self
, val
* p0
) {
4451 short int var
/* : Bool */;
4454 const struct type
* type_struct
;
4455 const char* var_class_name
;
4456 /* Covariant cast for argument 0 (poset_builder) <p0:POSetBuilder[Object]> isa POSetBuilder[TypingHasher#0] */
4457 /* <p0:POSetBuilder[Object]> isa POSetBuilder[TypingHasher#0] */
4458 type_struct
= self
->type
->resolution_table
->types
[COLOR_layout_builders__POSetBuilderlayout_builders__TypingHasher_FT0
];
4459 cltype
= type_struct
->color
;
4460 idtype
= type_struct
->id
;
4461 if(cltype
>= p0
->type
->table_size
) {
4464 var
= p0
->type
->type_table
[cltype
] == idtype
;
4467 var_class_name
= p0
== NULL ?
"null" : p0
->type
->name
;
4468 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "POSetBuilder[TypingHasher#0]", var_class_name
);
4469 fprintf(stderr
, " (%s:%d)\n", "src/layout_builders.nit", 626);
4472 self
->attrs
[COLOR_layout_builders__TypingHasher___64dposet_builder
].val
= p0
; /* @poset_builder on <self:TypingHasher[Object]> */
4475 /* method layout_builders#TypingHasher#poset_builder= for (self: Object, POSetBuilder[Object]) */
4476 void VIRTUAL_layout_builders__TypingHasher__poset_builder_61d(val
* self
, val
* p0
) {
4477 layout_builders__TypingHasher__poset_builder_61d(self
, p0
);
4480 /* method layout_builders#TypingHasher#poset_cache for (self: TypingHasher[Object]): nullable POSet[Object] */
4481 val
* layout_builders__TypingHasher__poset_cache(val
* self
) {
4482 val
* var
/* : nullable POSet[Object] */;
4483 val
* var1
/* : nullable POSet[Object] */;
4484 var1
= self
->attrs
[COLOR_layout_builders__TypingHasher___64dposet_cache
].val
; /* @poset_cache on <self:TypingHasher[Object]> */
4489 /* method layout_builders#TypingHasher#poset_cache for (self: Object): nullable POSet[Object] */
4490 val
* VIRTUAL_layout_builders__TypingHasher__poset_cache(val
* self
) {
4491 val
* var
/* : nullable POSet[Object] */;
4492 val
* var1
/* : nullable POSet[Object] */;
4493 var1
= layout_builders__TypingHasher__poset_cache(self
);
4498 /* method layout_builders#TypingHasher#poset_cache= for (self: TypingHasher[Object], nullable POSet[Object]) */
4499 void layout_builders__TypingHasher__poset_cache_61d(val
* self
, val
* p0
) {
4500 short int var
/* : Bool */;
4503 const struct type
* type_struct
;
4504 const char* var_class_name
;
4505 /* Covariant cast for argument 0 (poset_cache) <p0:nullable POSet[Object]> isa nullable POSet[TypingHasher#0] */
4506 /* <p0:nullable POSet[Object]> isa nullable POSet[TypingHasher#0] */
4507 type_struct
= self
->type
->resolution_table
->types
[COLOR_poset__POSetlayout_builders__TypingHasher_FT0
];
4508 cltype
= type_struct
->color
;
4509 idtype
= type_struct
->id
;
4513 if(cltype
>= p0
->type
->table_size
) {
4516 var
= p0
->type
->type_table
[cltype
] == idtype
;
4520 var_class_name
= p0
== NULL ?
"null" : p0
->type
->name
;
4521 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable POSet[TypingHasher#0]", var_class_name
);
4522 fprintf(stderr
, " (%s:%d)\n", "src/layout_builders.nit", 627);
4525 self
->attrs
[COLOR_layout_builders__TypingHasher___64dposet_cache
].val
= p0
; /* @poset_cache on <self:TypingHasher[Object]> */
4528 /* method layout_builders#TypingHasher#poset_cache= for (self: Object, nullable POSet[Object]) */
4529 void VIRTUAL_layout_builders__TypingHasher__poset_cache_61d(val
* self
, val
* p0
) {
4530 layout_builders__TypingHasher__poset_cache_61d(self
, p0
);
4533 /* method layout_builders#TypingHasher#init for (self: TypingHasher[Object], MModule, POSetBuilder[Object], PHOperator) */
4534 void layout_builders__TypingHasher__init(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
4535 short int var
/* : Bool */;
4538 const struct type
* type_struct
;
4539 const char* var_class_name
;
4540 val
* var_mmodule
/* var mmodule: MModule */;
4541 val
* var_poset_builder
/* var poset_builder: POSetBuilder[Object] */;
4542 val
* var_operator
/* var operator: PHOperator */;
4543 /* Covariant cast for argument 1 (poset_builder) <p1:POSetBuilder[Object]> isa POSetBuilder[TypingHasher#0] */
4544 /* <p1:POSetBuilder[Object]> isa POSetBuilder[TypingHasher#0] */
4545 type_struct
= self
->type
->resolution_table
->types
[COLOR_layout_builders__POSetBuilderlayout_builders__TypingHasher_FT0
];
4546 cltype
= type_struct
->color
;
4547 idtype
= type_struct
->id
;
4548 if(cltype
>= p1
->type
->table_size
) {
4551 var
= p1
->type
->type_table
[cltype
] == idtype
;
4554 var_class_name
= p1
== NULL ?
"null" : p1
->type
->name
;
4555 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "POSetBuilder[TypingHasher#0]", var_class_name
);
4556 fprintf(stderr
, " (%s:%d)\n", "src/layout_builders.nit", 629);
4560 var_poset_builder
= p1
;
4562 ((void (*)(val
*))(self
->class->vft
[COLOR_layout_builders__PerfectHasher__init
]))(self
) /* init on <self:TypingHasher[Object]>*/;
4563 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_layout_builders__PerfectHasher__operator_61d
]))(self
, var_operator
) /* operator= on <self:TypingHasher[Object]>*/;
4564 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_layout_builders__TypingHasher__mmodule_61d
]))(self
, var_mmodule
) /* mmodule= on <self:TypingHasher[Object]>*/;
4565 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_layout_builders__TypingHasher__poset_builder_61d
]))(self
, var_poset_builder
) /* poset_builder= on <self:TypingHasher[Object]>*/;
4568 /* method layout_builders#TypingHasher#init for (self: Object, MModule, POSetBuilder[Object], PHOperator) */
4569 void VIRTUAL_layout_builders__TypingHasher__init(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
4570 layout_builders__TypingHasher__init(self
, p0
, p1
, p2
);
4573 /* method layout_builders#TypingHasher#build_layout for (self: TypingHasher[Object], Set[Object]): PHLayout[Object, Object] */
4574 val
* layout_builders__TypingHasher__build_layout(val
* self
, val
* p0
) {
4575 val
* var
/* : PHLayout[Object, Object] */;
4576 short int var1
/* : Bool */;
4579 const struct type
* type_struct
;
4580 const char* var_class_name
;
4581 val
* var_elements
/* var elements: Set[Object] */;
4582 val
* var2
/* : POSetBuilder[Object] */;
4583 val
* var3
/* : POSet[Object] */;
4584 val
* var4
/* : PHLayout[Object, Object] */;
4585 val
* var_result
/* var result: PHLayout[Object, Object] */;
4586 val
* var5
/* : Map[Object, Set[Object]] */;
4587 val
* var_conflicts
/* var conflicts: Map[Object, Set[Object]] */;
4588 val
* var6
/* : Map[Object, Int] */;
4589 val
* var7
/* : Map[Object, Int] */;
4590 val
* var8
/* : Map[Object, Int] */;
4591 val
* var9
/* : Map[Object, Int] */;
4592 val
* var10
/* : Map[Object, Int] */;
4593 val
* var11
/* : Map[Object, Map[Object, Int]] */;
4594 /* Covariant cast for argument 0 (elements) <p0:Set[Object]> isa Set[TypingHasher#0] */
4595 /* <p0:Set[Object]> isa Set[TypingHasher#0] */
4596 type_struct
= self
->type
->resolution_table
->types
[COLOR_abstract_collection__Setlayout_builders__TypingHasher_FT0
];
4597 cltype
= type_struct
->color
;
4598 idtype
= type_struct
->id
;
4599 if(cltype
>= p0
->type
->table_size
) {
4602 var1
= p0
->type
->type_table
[cltype
] == idtype
;
4605 var_class_name
= p0
== NULL ?
"null" : p0
->type
->name
;
4606 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "Set[TypingHasher#0]", var_class_name
);
4607 fprintf(stderr
, " (%s:%d)\n", "src/layout_builders.nit", 635);
4611 var2
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_layout_builders__TypingHasher__poset_builder
]))(self
) /* poset_builder on <self:TypingHasher[Object]>*/;
4612 var3
= ((val
* (*)(val
*, val
*))(var2
->class->vft
[COLOR_layout_builders__POSetBuilder__build_poset
]))(var2
, var_elements
) /* build_poset on <var2:POSetBuilder[Object]>*/;
4613 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_layout_builders__TypingHasher__poset_cache_61d
]))(self
, var3
) /* poset_cache= on <self:TypingHasher[Object]>*/;
4614 var4
= NEW_layout_builders__PHLayout(self
->type
->resolution_table
->types
[COLOR_layout_builders__PHLayoutlayout_builders__TypingHasher_FT0layout_builders__TypingHasher_FT0
]);
4615 ((void (*)(val
*))(var4
->class->vft
[COLOR_layout_builders__PHLayout__init
]))(var4
) /* init on <var4:PHLayout[Object, Object]>*/;
4616 CHECK_NEW_layout_builders__PHLayout(var4
);
4618 var5
= ((val
* (*)(val
*, val
*))(self
->class->vft
[COLOR_layout_builders__TypingHasher__build_conflicts
]))(self
, var_elements
) /* build_conflicts on <self:TypingHasher[Object]>*/;
4619 var_conflicts
= var5
;
4620 var6
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_layout_builders__TypingHasher__compute_ids
]))(self
) /* compute_ids on <self:TypingHasher[Object]>*/;
4621 ((void (*)(val
*, val
*))(var_result
->class->vft
[COLOR_layout_builders__Layout__ids_61d
]))(var_result
, var6
) /* ids= on <var_result:PHLayout[Object, Object]>*/;
4622 var7
= ((val
* (*)(val
*))(var_result
->class->vft
[COLOR_layout_builders__Layout__ids
]))(var_result
) /* ids on <var_result:PHLayout[Object, Object]>*/;
4623 var8
= ((val
* (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_layout_builders__PerfectHasher__compute_masks
]))(self
, var_conflicts
, var7
) /* compute_masks on <self:TypingHasher[Object]>*/;
4624 ((void (*)(val
*, val
*))(var_result
->class->vft
[COLOR_layout_builders__PHLayout__masks_61d
]))(var_result
, var8
) /* masks= on <var_result:PHLayout[Object, Object]>*/;
4625 var9
= ((val
* (*)(val
*))(var_result
->class->vft
[COLOR_layout_builders__Layout__ids
]))(var_result
) /* ids on <var_result:PHLayout[Object, Object]>*/;
4626 var10
= ((val
* (*)(val
*))(var_result
->class->vft
[COLOR_layout_builders__PHLayout__masks
]))(var_result
) /* masks on <var_result:PHLayout[Object, Object]>*/;
4627 var11
= ((val
* (*)(val
*, val
*, val
*, val
*))(self
->class->vft
[COLOR_layout_builders__PerfectHasher__compute_hashes
]))(self
, var_conflicts
, var9
, var10
) /* compute_hashes on <self:TypingHasher[Object]>*/;
4628 ((void (*)(val
*, val
*))(var_result
->class->vft
[COLOR_layout_builders__PHLayout__hashes_61d
]))(var_result
, var11
) /* hashes= on <var_result:PHLayout[Object, Object]>*/;
4634 /* method layout_builders#TypingHasher#build_layout for (self: Object, Set[Object]): Layout[Object] */
4635 val
* VIRTUAL_layout_builders__TypingHasher__build_layout(val
* self
, val
* p0
) {
4636 val
* var
/* : Layout[Object] */;
4637 val
* var1
/* : PHLayout[Object, Object] */;
4638 var1
= layout_builders__TypingHasher__build_layout(self
, p0
);
4643 /* method layout_builders#TypingHasher#compute_ids for (self: TypingHasher[Object]): Map[Object, Int] */
4644 val
* layout_builders__TypingHasher__compute_ids(val
* self
) {
4645 val
* var
/* : Map[Object, Int] */;
4646 val
* var1
/* : HashMap[Object, Int] */;
4647 val
* var_ids
/* var ids: HashMap[Object, Int] */;
4648 val
* var2
/* : nullable POSet[Object] */;
4649 val
* var3
/* : Array[nullable Object] */;
4650 val
* var_lin
/* var lin: Array[Object] */;
4651 val
* var4
/* : nullable POSet[Object] */;
4652 val
* var5
/* : Iterator[nullable Object] */;
4653 short int var6
/* : Bool */;
4654 val
* var7
/* : nullable Object */;
4655 val
* var_e
/* var e: Object */;
4656 long var8
/* : Int */;
4657 long var9
/* : Int */;
4658 long var10
/* : Int */;
4659 long var12
/* : Int */;
4660 val
* var13
/* : nullable Object */;
4661 var1
= NEW_hash_collection__HashMap(self
->type
->resolution_table
->types
[COLOR_hash_collection__HashMaplayout_builders__TypingHasher_FT0kernel__Int
]);
4662 ((void (*)(val
*))(var1
->class->vft
[COLOR_hash_collection__HashMap__init
]))(var1
) /* init on <var1:HashMap[Object, Int]>*/;
4663 CHECK_NEW_hash_collection__HashMap(var1
);
4665 var2
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_layout_builders__TypingLayoutBuilder__poset
]))(self
) /* poset on <self:TypingHasher[Object]>*/;
4667 fprintf(stderr
, "Runtime error: %s", "Reciever is null");
4668 fprintf(stderr
, " (%s:%d)\n", "src/layout_builders.nit", 648);
4671 var3
= ((val
* (*)(val
*))(var2
->class->vft
[COLOR_array__Collection__to_a
]))(var2
) /* to_a on <var2:nullable POSet[Object]>*/;
4674 var4
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_layout_builders__TypingLayoutBuilder__poset
]))(self
) /* poset on <self:TypingHasher[Object]>*/;
4676 fprintf(stderr
, "Runtime error: %s", "Reciever is null");
4677 fprintf(stderr
, " (%s:%d)\n", "src/layout_builders.nit", 649);
4680 ((void (*)(val
*, val
*))(var4
->class->vft
[COLOR_sorter__AbstractSorter__sort
]))(var4
, var_lin
) /* sort on <var4:nullable POSet[Object]>*/;
4682 var5
= ((val
* (*)(val
*))(var_lin
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var_lin
) /* iterator on <var_lin:Array[Object]>*/;
4684 var6
= ((short int (*)(val
*))(var5
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var5
) /* is_ok on <var5:Iterator[nullable Object]>*/;
4686 var7
= ((val
* (*)(val
*))(var5
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var5
) /* item on <var5:Iterator[nullable Object]>*/;
4688 var8
= ((long (*)(val
*))(var_ids
->class->vft
[COLOR_abstract_collection__MapRead__length
]))(var_ids
) /* length on <var_ids:HashMap[Object, Int]>*/;
4690 { /* Inline kernel#Int#+ (var8,var9) */
4691 var12
= var8
+ var9
;
4694 RET_LABEL11
:(void)0;
4696 var13
= BOX_kernel__Int(var10
); /* autobox from Int to nullable Object */
4697 ((void (*)(val
*, val
*, val
*))(var_ids
->class->vft
[COLOR_abstract_collection__Map___91d_93d_61d
]))(var_ids
, var_e
, var13
) /* []= on <var_ids:HashMap[Object, Int]>*/;
4698 CONTINUE_label
: (void)0;
4699 ((void (*)(val
*))(var5
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var5
) /* next on <var5:Iterator[nullable Object]>*/;
4701 BREAK_label
: (void)0;
4707 /* method layout_builders#TypingHasher#compute_ids for (self: Object): Map[Object, Int] */
4708 val
* VIRTUAL_layout_builders__TypingHasher__compute_ids(val
* self
) {
4709 val
* var
/* : Map[Object, Int] */;
4710 val
* var1
/* : Map[Object, Int] */;
4711 var1
= layout_builders__TypingHasher__compute_ids(self
);
4716 /* method layout_builders#TypingHasher#build_conflicts for (self: TypingHasher[Object], Set[Object]): Map[Object, Set[Object]] */
4717 val
* layout_builders__TypingHasher__build_conflicts(val
* self
, val
* p0
) {
4718 val
* var
/* : Map[Object, Set[Object]] */;
4719 short int var1
/* : Bool */;
4722 const struct type
* type_struct
;
4723 const char* var_class_name
;
4724 val
* var_elements
/* var elements: Set[Object] */;
4725 val
* var2
/* : HashMap[Object, Set[Object]] */;
4726 val
* var_conflicts
/* var conflicts: HashMap[Object, Set[Object]] */;
4727 val
* var3
/* : Iterator[nullable Object] */;
4728 short int var4
/* : Bool */;
4729 val
* var5
/* : nullable Object */;
4730 val
* var_e
/* var e: Object */;
4731 val
* var6
/* : HashSet[Object] */;
4732 val
* var_supers
/* var supers: HashSet[Object] */;
4733 val
* var7
/* : nullable POSet[Object] */;
4734 val
* var8
/* : POSetElement[Object] */;
4735 val
* var9
/* : Collection[Object] */;
4736 /* Covariant cast for argument 0 (elements) <p0:Set[Object]> isa Set[TypingHasher#0] */
4737 /* <p0:Set[Object]> isa Set[TypingHasher#0] */
4738 type_struct
= self
->type
->resolution_table
->types
[COLOR_abstract_collection__Setlayout_builders__TypingHasher_FT0
];
4739 cltype
= type_struct
->color
;
4740 idtype
= type_struct
->id
;
4741 if(cltype
>= p0
->type
->table_size
) {
4744 var1
= p0
->type
->type_table
[cltype
] == idtype
;
4747 var_class_name
= p0
== NULL ?
"null" : p0
->type
->name
;
4748 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "Set[TypingHasher#0]", var_class_name
);
4749 fprintf(stderr
, " (%s:%d)\n", "src/layout_builders.nit", 656);
4753 var2
= NEW_hash_collection__HashMap(self
->type
->resolution_table
->types
[COLOR_hash_collection__HashMaplayout_builders__TypingHasher_FT0abstract_collection__Setlayout_builders__TypingHasher_FT0
]);
4754 ((void (*)(val
*))(var2
->class->vft
[COLOR_hash_collection__HashMap__init
]))(var2
) /* init on <var2:HashMap[Object, Set[Object]]>*/;
4755 CHECK_NEW_hash_collection__HashMap(var2
);
4756 var_conflicts
= var2
;
4757 var3
= ((val
* (*)(val
*))(var_elements
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var_elements
) /* iterator on <var_elements:Set[Object]>*/;
4759 var4
= ((short int (*)(val
*))(var3
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var3
) /* is_ok on <var3:Iterator[nullable Object]>*/;
4761 var5
= ((val
* (*)(val
*))(var3
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var3
) /* item on <var3:Iterator[nullable Object]>*/;
4763 var6
= NEW_hash_collection__HashSet(self
->type
->resolution_table
->types
[COLOR_hash_collection__HashSetlayout_builders__TypingHasher_FT0
]);
4764 ((void (*)(val
*))(var6
->class->vft
[COLOR_hash_collection__HashSet__init
]))(var6
) /* init on <var6:HashSet[Object]>*/;
4765 CHECK_NEW_hash_collection__HashSet(var6
);
4767 var7
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_layout_builders__TypingLayoutBuilder__poset
]))(self
) /* poset on <self:TypingHasher[Object]>*/;
4769 fprintf(stderr
, "Runtime error: %s", "Reciever is null");
4770 fprintf(stderr
, " (%s:%d)\n", "src/layout_builders.nit", 660);
4773 var8
= ((val
* (*)(val
*, val
*))(var7
->class->vft
[COLOR_poset__POSet___91d_93d
]))(var7
, var_e
) /* [] on <var7:nullable POSet[Object]>*/;
4775 var9
= ((val
* (*)(val
*))(var8
->class->vft
[COLOR_poset__POSetElement__greaters
]))(var8
) /* greaters on <var8:POSetElement[Object]>*/;
4776 ((void (*)(val
*, val
*))(var_supers
->class->vft
[COLOR_abstract_collection__SimpleCollection__add_all
]))(var_supers
, var9
) /* add_all on <var_supers:HashSet[Object]>*/;
4777 ((void (*)(val
*, val
*))(var_supers
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_supers
, var_e
) /* add on <var_supers:HashSet[Object]>*/;
4778 ((void (*)(val
*, val
*, val
*))(var_conflicts
->class->vft
[COLOR_abstract_collection__Map___91d_93d_61d
]))(var_conflicts
, var_e
, var_supers
) /* []= on <var_conflicts:HashMap[Object, Set[Object]]>*/;
4779 CONTINUE_label
: (void)0;
4780 ((void (*)(val
*))(var3
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var3
) /* next on <var3:Iterator[nullable Object]>*/;
4782 BREAK_label
: (void)0;
4783 var
= var_conflicts
;
4788 /* method layout_builders#TypingHasher#build_conflicts for (self: Object, Set[Object]): Map[Object, Set[Object]] */
4789 val
* VIRTUAL_layout_builders__TypingHasher__build_conflicts(val
* self
, val
* p0
) {
4790 val
* var
/* : Map[Object, Set[Object]] */;
4791 val
* var1
/* : Map[Object, Set[Object]] */;
4792 var1
= layout_builders__TypingHasher__build_conflicts(self
, p0
);
4797 /* method layout_builders#MTypeHasher#init for (self: MTypeHasher, PHOperator, MModule) */
4798 void layout_builders__MTypeHasher__init(val
* self
, val
* p0
, val
* p1
) {
4799 val
* var_operator
/* var operator: PHOperator */;
4800 val
* var_mmodule
/* var mmodule: MModule */;
4801 val
* var
/* : MTypePOSetBuilder */;
4804 var
= NEW_layout_builders__MTypePOSetBuilder(&type_layout_builders__MTypePOSetBuilder
);
4805 ((void (*)(val
*, val
*))(var
->class->vft
[COLOR_layout_builders__POSetBuilder__init
]))(var
, var_mmodule
) /* init on <var:MTypePOSetBuilder>*/;
4806 CHECK_NEW_layout_builders__MTypePOSetBuilder(var
);
4807 ((void (*)(val
*, val
*, val
*, val
*))(self
->class->vft
[COLOR_layout_builders__TypingHasher__init
]))(self
, var_mmodule
, var
, var_operator
) /* init on <self:MTypeHasher>*/;
4810 /* method layout_builders#MTypeHasher#init for (self: Object, PHOperator, MModule) */
4811 void VIRTUAL_layout_builders__MTypeHasher__init(val
* self
, val
* p0
, val
* p1
) {
4812 layout_builders__MTypeHasher__init(self
, p0
, p1
);
4815 /* method layout_builders#MClassHasher#init for (self: MClassHasher, PHOperator, MModule) */
4816 void layout_builders__MClassHasher__init(val
* self
, val
* p0
, val
* p1
) {
4817 val
* var_operator
/* var operator: PHOperator */;
4818 val
* var_mmodule
/* var mmodule: MModule */;
4819 val
* var
/* : MClassPOSetBuilder */;
4822 var
= NEW_layout_builders__MClassPOSetBuilder(&type_layout_builders__MClassPOSetBuilder
);
4823 ((void (*)(val
*, val
*))(var
->class->vft
[COLOR_layout_builders__POSetBuilder__init
]))(var
, var_mmodule
) /* init on <var:MClassPOSetBuilder>*/;
4824 CHECK_NEW_layout_builders__MClassPOSetBuilder(var
);
4825 ((void (*)(val
*, val
*, val
*, val
*))(self
->class->vft
[COLOR_layout_builders__TypingHasher__init
]))(self
, var_mmodule
, var
, var_operator
) /* init on <self:MClassHasher>*/;
4828 /* method layout_builders#MClassHasher#init for (self: Object, PHOperator, MModule) */
4829 void VIRTUAL_layout_builders__MClassHasher__init(val
* self
, val
* p0
, val
* p1
) {
4830 layout_builders__MClassHasher__init(self
, p0
, p1
);
4833 /* method layout_builders#MPropertyHasher#mmodule for (self: MPropertyHasher[PropertyLayoutElement]): MModule */
4834 val
* layout_builders__MPropertyHasher__mmodule(val
* self
) {
4835 val
* var
/* : MModule */;
4836 val
* var1
/* : MModule */;
4837 var1
= self
->attrs
[COLOR_layout_builders__MPropertyHasher___64dmmodule
].val
; /* @mmodule on <self:MPropertyHasher[PropertyLayoutElement]> */
4839 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute @mmodule");
4840 fprintf(stderr
, " (%s:%d)\n", "src/layout_builders.nit", 685);
4847 /* method layout_builders#MPropertyHasher#mmodule for (self: Object): MModule */
4848 val
* VIRTUAL_layout_builders__MPropertyHasher__mmodule(val
* self
) {
4849 val
* var
/* : MModule */;
4850 val
* var1
/* : MModule */;
4851 var1
= layout_builders__MPropertyHasher__mmodule(self
);
4856 /* method layout_builders#MPropertyHasher#mmodule= for (self: MPropertyHasher[PropertyLayoutElement], MModule) */
4857 void layout_builders__MPropertyHasher__mmodule_61d(val
* self
, val
* p0
) {
4858 self
->attrs
[COLOR_layout_builders__MPropertyHasher___64dmmodule
].val
= p0
; /* @mmodule on <self:MPropertyHasher[PropertyLayoutElement]> */
4861 /* method layout_builders#MPropertyHasher#mmodule= for (self: Object, MModule) */
4862 void VIRTUAL_layout_builders__MPropertyHasher__mmodule_61d(val
* self
, val
* p0
) {
4863 layout_builders__MPropertyHasher__mmodule_61d(self
, p0
);
4866 /* method layout_builders#MPropertyHasher#init for (self: MPropertyHasher[PropertyLayoutElement], PHOperator, MModule) */
4867 void layout_builders__MPropertyHasher__init(val
* self
, val
* p0
, val
* p1
) {
4868 val
* var_operator
/* var operator: PHOperator */;
4869 val
* var_mmodule
/* var mmodule: MModule */;
4872 ((void (*)(val
*))(self
->class->vft
[COLOR_layout_builders__PerfectHasher__init
]))(self
) /* init on <self:MPropertyHasher[PropertyLayoutElement]>*/;
4873 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_layout_builders__PerfectHasher__operator_61d
]))(self
, var_operator
) /* operator= on <self:MPropertyHasher[PropertyLayoutElement]>*/;
4874 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_layout_builders__MPropertyHasher__mmodule_61d
]))(self
, var_mmodule
) /* mmodule= on <self:MPropertyHasher[PropertyLayoutElement]>*/;
4877 /* method layout_builders#MPropertyHasher#init for (self: Object, PHOperator, MModule) */
4878 void VIRTUAL_layout_builders__MPropertyHasher__init(val
* self
, val
* p0
, val
* p1
) {
4879 layout_builders__MPropertyHasher__init(self
, p0
, p1
);
4882 /* method layout_builders#MPropertyHasher#build_poset for (self: MPropertyHasher[PropertyLayoutElement], Set[MClass]): POSet[MClass] */
4883 val
* layout_builders__MPropertyHasher__build_poset(val
* self
, val
* p0
) {
4884 val
* var
/* : POSet[MClass] */;
4885 val
* var_mclasses
/* var mclasses: Set[MClass] */;
4886 val
* var1
/* : POSet[MClass] */;
4887 val
* var_poset
/* var poset: POSet[MClass] */;
4888 val
* var2
/* : Iterator[nullable Object] */;
4889 short int var3
/* : Bool */;
4890 val
* var4
/* : nullable Object */;
4891 val
* var_e
/* var e: MClass */;
4892 val
* var5
/* : POSetElement[Object] */;
4893 val
* var6
/* : Iterator[nullable Object] */;
4894 short int var7
/* : Bool */;
4895 val
* var8
/* : nullable Object */;
4896 val
* var_o
/* var o: MClass */;
4897 short int var9
/* : Bool */;
4898 short int var10
/* : Bool */;
4899 short int var_
/* var : Bool */;
4900 val
* var11
/* : MModule */;
4901 val
* var12
/* : POSet[MClass] */;
4902 short int var13
/* : Bool */;
4903 short int var14
/* : Bool */;
4904 val
* var15
/* : MModule */;
4905 val
* var16
/* : POSetElement[MClass] */;
4906 short int var17
/* : Bool */;
4908 var1
= NEW_poset__POSet(&type_poset__POSetmodel__MClass
);
4909 ((void (*)(val
*))(var1
->class->vft
[COLOR_poset__POSet__init
]))(var1
) /* init on <var1:POSet[MClass]>*/;
4910 CHECK_NEW_poset__POSet(var1
);
4912 var2
= ((val
* (*)(val
*))(var_mclasses
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var_mclasses
) /* iterator on <var_mclasses:Set[MClass]>*/;
4914 var3
= ((short int (*)(val
*))(var2
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var2
) /* is_ok on <var2:Iterator[nullable Object]>*/;
4916 var4
= ((val
* (*)(val
*))(var2
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var2
) /* item on <var2:Iterator[nullable Object]>*/;
4918 var5
= ((val
* (*)(val
*, val
*))(var_poset
->class->vft
[COLOR_poset__POSet__add_node
]))(var_poset
, var_e
) /* add_node on <var_poset:POSet[MClass]>*/;
4920 var6
= ((val
* (*)(val
*))(var_mclasses
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var_mclasses
) /* iterator on <var_mclasses:Set[MClass]>*/;
4922 var7
= ((short int (*)(val
*))(var6
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var6
) /* is_ok on <var6:Iterator[nullable Object]>*/;
4924 var8
= ((val
* (*)(val
*))(var6
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var6
) /* item on <var6:Iterator[nullable Object]>*/;
4926 var10
= ((short int (*)(val
*, val
*))(var_e
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var_e
, var_o
) /* == on <var_e:MClass>*/;
4931 var11
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_layout_builders__MPropertyHasher__mmodule
]))(self
) /* mmodule on <self:MPropertyHasher[PropertyLayoutElement]>*/;
4932 var12
= ((val
* (*)(val
*))(var11
->class->vft
[COLOR_model__MModule__flatten_mclass_hierarchy
]))(var11
) /* flatten_mclass_hierarchy on <var11:MModule>*/;
4933 var13
= ((short int (*)(val
*, val
*))(var12
->class->vft
[COLOR_abstract_collection__Collection__has
]))(var12
, var_e
) /* has on <var12:POSet[MClass]>*/;
4938 goto CONTINUE_label
;
4941 var15
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_layout_builders__MPropertyHasher__mmodule
]))(self
) /* mmodule on <self:MPropertyHasher[PropertyLayoutElement]>*/;
4942 var16
= ((val
* (*)(val
*, val
*))(var_e
->class->vft
[COLOR_model__MClass__in_hierarchy
]))(var_e
, var15
) /* in_hierarchy on <var_e:MClass>*/;
4943 var17
= ((short int (*)(val
*, val
*))(var16
->class->vft
[COLOR_poset__POSetElement___60d
]))(var16
, var_o
) /* < on <var16:POSetElement[MClass]>*/;
4945 ((void (*)(val
*, val
*, val
*))(var_poset
->class->vft
[COLOR_poset__POSet__add_edge
]))(var_poset
, var_e
, var_o
) /* add_edge on <var_poset:POSet[MClass]>*/;
4948 CONTINUE_label
: (void)0;
4949 ((void (*)(val
*))(var6
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var6
) /* next on <var6:Iterator[nullable Object]>*/;
4951 BREAK_label
: (void)0;
4952 CONTINUE_label18
: (void)0;
4953 ((void (*)(val
*))(var2
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var2
) /* next on <var2:Iterator[nullable Object]>*/;
4955 BREAK_label18
: (void)0;
4961 /* method layout_builders#MPropertyHasher#build_poset for (self: Object, Set[MClass]): POSet[MClass] */
4962 val
* VIRTUAL_layout_builders__MPropertyHasher__build_poset(val
* self
, val
* p0
) {
4963 val
* var
/* : POSet[MClass] */;
4964 val
* var1
/* : POSet[MClass] */;
4965 var1
= layout_builders__MPropertyHasher__build_poset(self
, p0
);
4970 /* method layout_builders#MPropertyHasher#build_layout for (self: MPropertyHasher[PropertyLayoutElement], Map[MClass, Set[PropertyLayoutElement]]): Layout[PropertyLayoutElement] */
4971 val
* layout_builders__MPropertyHasher__build_layout(val
* self
, val
* p0
) {
4972 val
* var
/* : Layout[PropertyLayoutElement] */;
4973 short int var1
/* : Bool */;
4976 const struct type
* type_struct
;
4977 const char* var_class_name
;
4978 val
* var_elements
/* var elements: Map[MClass, Set[PropertyLayoutElement]] */;
4979 val
* var2
/* : PHLayout[MClass, PropertyLayoutElement] */;
4980 val
* var_result
/* var result: PHLayout[MClass, PropertyLayoutElement] */;
4981 val
* var3
/* : HashMap[PropertyLayoutElement, Int] */;
4982 val
* var_ids
/* var ids: HashMap[PropertyLayoutElement, Int] */;
4983 val
* var4
/* : HashSet[MClass] */;
4984 val
* var_mclasses
/* var mclasses: HashSet[MClass] */;
4985 val
* var5
/* : Collection[Object] */;
4986 val
* var6
/* : POSet[MClass] */;
4987 val
* var_poset
/* var poset: POSet[MClass] */;
4988 val
* var7
/* : Array[nullable Object] */;
4989 val
* var_lin
/* var lin: Array[MClass] */;
4990 val
* var8
/* : Array[nullable Object] */;
4991 val
* var9
/* : Iterator[nullable Object] */;
4992 short int var10
/* : Bool */;
4993 val
* var11
/* : nullable Object */;
4994 val
* var_mclass
/* var mclass: MClass */;
4995 val
* var12
/* : nullable Object */;
4996 val
* var13
/* : Iterator[nullable Object] */;
4997 short int var14
/* : Bool */;
4998 val
* var15
/* : nullable Object */;
4999 val
* var_mproperty
/* var mproperty: PropertyLayoutElement */;
5000 short int var16
/* : Bool */;
5001 long var17
/* : Int */;
5002 long var18
/* : Int */;
5003 long var19
/* : Int */;
5004 long var21
/* : Int */;
5005 val
* var22
/* : nullable Object */;
5006 val
* var24
/* : Map[Object, Int] */;
5007 val
* var25
/* : Map[Object, Int] */;
5008 val
* var26
/* : Map[Object, Map[Object, Int]] */;
5009 /* Covariant cast for argument 0 (elements) <p0:Map[MClass, Set[PropertyLayoutElement]]> isa Map[MClass, Set[PropertyLayoutBuilder#0]] */
5010 /* <p0:Map[MClass, Set[PropertyLayoutElement]]> isa Map[MClass, Set[PropertyLayoutBuilder#0]] */
5011 type_struct
= self
->type
->resolution_table
->types
[COLOR_abstract_collection__Mapmodel__MClassabstract_collection__Setlayout_builders__PropertyLayoutBuilder_FT0
];
5012 cltype
= type_struct
->color
;
5013 idtype
= type_struct
->id
;
5014 if(cltype
>= p0
->type
->table_size
) {
5017 var1
= p0
->type
->type_table
[cltype
] == idtype
;
5020 var_class_name
= p0
== NULL ?
"null" : p0
->type
->name
;
5021 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "Map[MClass, Set[PropertyLayoutBuilder#0]]", var_class_name
);
5022 fprintf(stderr
, " (%s:%d)\n", "src/layout_builders.nit", 704);
5026 var2
= NEW_layout_builders__PHLayout(self
->type
->resolution_table
->types
[COLOR_layout_builders__PHLayoutmodel__MClasslayout_builders__MPropertyHasher_FT0
]);
5027 ((void (*)(val
*))(var2
->class->vft
[COLOR_layout_builders__PHLayout__init
]))(var2
) /* init on <var2:PHLayout[MClass, PropertyLayoutElement]>*/;
5028 CHECK_NEW_layout_builders__PHLayout(var2
);
5030 var3
= NEW_hash_collection__HashMap(self
->type
->resolution_table
->types
[COLOR_hash_collection__HashMaplayout_builders__MPropertyHasher_FT0kernel__Int
]);
5031 ((void (*)(val
*))(var3
->class->vft
[COLOR_hash_collection__HashMap__init
]))(var3
) /* init on <var3:HashMap[PropertyLayoutElement, Int]>*/;
5032 CHECK_NEW_hash_collection__HashMap(var3
);
5034 var4
= NEW_hash_collection__HashSet(&type_hash_collection__HashSetmodel__MClass
);
5035 ((void (*)(val
*))(var4
->class->vft
[COLOR_hash_collection__HashSet__init
]))(var4
) /* init on <var4:HashSet[MClass]>*/;
5036 CHECK_NEW_hash_collection__HashSet(var4
);
5037 var_mclasses
= var4
;
5038 var5
= ((val
* (*)(val
*))(var_elements
->class->vft
[COLOR_abstract_collection__MapRead__keys
]))(var_elements
) /* keys on <var_elements:Map[MClass, Set[PropertyLayoutElement]]>*/;
5039 ((void (*)(val
*, val
*))(var_mclasses
->class->vft
[COLOR_abstract_collection__SimpleCollection__add_all
]))(var_mclasses
, var5
) /* add_all on <var_mclasses:HashSet[MClass]>*/;
5040 var6
= ((val
* (*)(val
*, val
*))(self
->class->vft
[COLOR_layout_builders__MPropertyHasher__build_poset
]))(self
, var_mclasses
) /* build_poset on <self:MPropertyHasher[PropertyLayoutElement]>*/;
5042 var7
= ((val
* (*)(val
*))(var_poset
->class->vft
[COLOR_array__Collection__to_a
]))(var_poset
) /* to_a on <var_poset:POSet[MClass]>*/;
5044 ((void (*)(val
*, val
*))(var_poset
->class->vft
[COLOR_sorter__AbstractSorter__sort
]))(var_poset
, var_lin
) /* sort on <var_poset:POSet[MClass]>*/;
5045 var8
= ((val
* (*)(val
*))(var_lin
->class->vft
[COLOR_array__AbstractArrayRead__reversed
]))(var_lin
) /* reversed on <var_lin:Array[MClass]>*/;
5046 var9
= ((val
* (*)(val
*))(var8
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var8
) /* iterator on <var8:Array[nullable Object](Array[MClass])>*/;
5048 var10
= ((short int (*)(val
*))(var9
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var9
) /* is_ok on <var9:Iterator[nullable Object]>*/;
5050 var11
= ((val
* (*)(val
*))(var9
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var9
) /* item on <var9:Iterator[nullable Object]>*/;
5052 var12
= ((val
* (*)(val
*, val
*))(var_elements
->class->vft
[COLOR_abstract_collection__MapRead___91d_93d
]))(var_elements
, var_mclass
) /* [] on <var_elements:Map[MClass, Set[PropertyLayoutElement]]>*/;
5053 var13
= ((val
* (*)(val
*))(var12
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var12
) /* iterator on <var12:nullable Object(Set[PropertyLayoutElement])>*/;
5055 var14
= ((short int (*)(val
*))(var13
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var13
) /* is_ok on <var13:Iterator[nullable Object]>*/;
5057 var15
= ((val
* (*)(val
*))(var13
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var13
) /* item on <var13:Iterator[nullable Object]>*/;
5058 var_mproperty
= var15
;
5059 var16
= ((short int (*)(val
*, val
*))(var_ids
->class->vft
[COLOR_abstract_collection__MapRead__has_key
]))(var_ids
, var_mproperty
) /* has_key on <var_ids:HashMap[PropertyLayoutElement, Int]>*/;
5061 goto CONTINUE_label
;
5064 var17
= ((long (*)(val
*))(var_ids
->class->vft
[COLOR_abstract_collection__MapRead__length
]))(var_ids
) /* length on <var_ids:HashMap[PropertyLayoutElement, Int]>*/;
5066 { /* Inline kernel#Int#+ (var17,var18) */
5067 var21
= var17
+ var18
;
5070 RET_LABEL20
:(void)0;
5072 var22
= BOX_kernel__Int(var19
); /* autobox from Int to nullable Object */
5073 ((void (*)(val
*, val
*, val
*))(var_ids
->class->vft
[COLOR_abstract_collection__Map___91d_93d_61d
]))(var_ids
, var_mproperty
, var22
) /* []= on <var_ids:HashMap[PropertyLayoutElement, Int]>*/;
5074 CONTINUE_label
: (void)0;
5075 ((void (*)(val
*))(var13
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var13
) /* next on <var13:Iterator[nullable Object]>*/;
5077 BREAK_label
: (void)0;
5078 CONTINUE_label23
: (void)0;
5079 ((void (*)(val
*))(var9
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var9
) /* next on <var9:Iterator[nullable Object]>*/;
5081 BREAK_label23
: (void)0;
5082 ((void (*)(val
*, val
*))(var_result
->class->vft
[COLOR_layout_builders__Layout__ids_61d
]))(var_result
, var_ids
) /* ids= on <var_result:PHLayout[MClass, PropertyLayoutElement]>*/;
5083 ((void (*)(val
*, val
*))(var_result
->class->vft
[COLOR_layout_builders__Layout__pos_61d
]))(var_result
, var_ids
) /* pos= on <var_result:PHLayout[MClass, PropertyLayoutElement]>*/;
5084 var24
= ((val
* (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_layout_builders__PerfectHasher__compute_masks
]))(self
, var_elements
, var_ids
) /* compute_masks on <self:MPropertyHasher[PropertyLayoutElement]>*/;
5085 ((void (*)(val
*, val
*))(var_result
->class->vft
[COLOR_layout_builders__PHLayout__masks_61d
]))(var_result
, var24
) /* masks= on <var_result:PHLayout[MClass, PropertyLayoutElement]>*/;
5086 var25
= ((val
* (*)(val
*))(var_result
->class->vft
[COLOR_layout_builders__PHLayout__masks
]))(var_result
) /* masks on <var_result:PHLayout[MClass, PropertyLayoutElement]>*/;
5087 var26
= ((val
* (*)(val
*, val
*, val
*, val
*))(self
->class->vft
[COLOR_layout_builders__PerfectHasher__compute_hashes
]))(self
, var_elements
, var_ids
, var25
) /* compute_hashes on <self:MPropertyHasher[PropertyLayoutElement]>*/;
5088 ((void (*)(val
*, val
*))(var_result
->class->vft
[COLOR_layout_builders__PHLayout__hashes_61d
]))(var_result
, var26
) /* hashes= on <var_result:PHLayout[MClass, PropertyLayoutElement]>*/;
5094 /* method layout_builders#MPropertyHasher#build_layout for (self: Object, Map[MClass, Set[PropertyLayoutElement]]): Layout[PropertyLayoutElement] */
5095 val
* VIRTUAL_layout_builders__MPropertyHasher__build_layout(val
* self
, val
* p0
) {
5096 val
* var
/* : Layout[PropertyLayoutElement] */;
5097 val
* var1
/* : Layout[PropertyLayoutElement] */;
5098 var1
= layout_builders__MPropertyHasher__build_layout(self
, p0
);
5103 /* method layout_builders#ResolutionHasher#init for (self: ResolutionHasher, PHOperator) */
5104 void layout_builders__ResolutionHasher__init(val
* self
, val
* p0
) {
5105 val
* var_operator
/* var operator: PHOperator */;
5107 ((void (*)(val
*))(self
->class->vft
[COLOR_layout_builders__PerfectHasher__init
]))(self
) /* init on <self:ResolutionHasher>*/;
5108 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_layout_builders__PerfectHasher__operator_61d
]))(self
, var_operator
) /* operator= on <self:ResolutionHasher>*/;
5111 /* method layout_builders#ResolutionHasher#init for (self: Object, PHOperator) */
5112 void VIRTUAL_layout_builders__ResolutionHasher__init(val
* self
, val
* p0
) {
5113 layout_builders__ResolutionHasher__init(self
, p0
);
5116 /* method layout_builders#ResolutionHasher#build_layout for (self: ResolutionHasher, Map[MClassType, Set[MType]]): Layout[MType] */
5117 val
* layout_builders__ResolutionHasher__build_layout(val
* self
, val
* p0
) {
5118 val
* var
/* : Layout[MType] */;
5119 val
* var_elements
/* var elements: Map[MClassType, Set[MType]] */;
5120 val
* var1
/* : PHLayout[MClassType, MType] */;
5121 val
* var_result
/* var result: PHLayout[MClassType, MType] */;
5122 val
* var2
/* : HashMap[MType, Int] */;
5123 val
* var_ids
/* var ids: HashMap[MType, Int] */;
5124 long var3
/* : Int */;
5125 long var_color
/* var color: Int */;
5126 val
* var4
/* : MapIterator[Object, nullable Object] */;
5127 short int var5
/* : Bool */;
5128 val
* var6
/* : Object */;
5129 val
* var_mclasstype
/* var mclasstype: MClassType */;
5130 val
* var7
/* : nullable Object */;
5131 val
* var_mclasstypes
/* var mclasstypes: Set[MType] */;
5132 val
* var8
/* : Iterator[nullable Object] */;
5133 short int var9
/* : Bool */;
5134 val
* var10
/* : nullable Object */;
5135 val
* var_element
/* var element: MType */;
5136 short int var11
/* : Bool */;
5137 val
* var12
/* : nullable Object */;
5138 long var13
/* : Int */;
5139 long var14
/* : Int */;
5140 long var16
/* : Int */;
5141 val
* var18
/* : Map[Object, Int] */;
5142 val
* var19
/* : Map[Object, Int] */;
5143 val
* var20
/* : Map[Object, Map[Object, Int]] */;
5145 var1
= NEW_layout_builders__PHLayout(&type_layout_builders__PHLayoutmodel__MClassTypemodel__MType
);
5146 ((void (*)(val
*))(var1
->class->vft
[COLOR_layout_builders__PHLayout__init
]))(var1
) /* init on <var1:PHLayout[MClassType, MType]>*/;
5147 CHECK_NEW_layout_builders__PHLayout(var1
);
5149 var2
= NEW_hash_collection__HashMap(&type_hash_collection__HashMapmodel__MTypekernel__Int
);
5150 ((void (*)(val
*))(var2
->class->vft
[COLOR_hash_collection__HashMap__init
]))(var2
) /* init on <var2:HashMap[MType, Int]>*/;
5151 CHECK_NEW_hash_collection__HashMap(var2
);
5155 var4
= ((val
* (*)(val
*))(var_elements
->class->vft
[COLOR_abstract_collection__MapRead__iterator
]))(var_elements
) /* iterator on <var_elements:Map[MClassType, Set[MType]]>*/;
5157 var5
= ((short int (*)(val
*))(var4
->class->vft
[COLOR_abstract_collection__MapIterator__is_ok
]))(var4
) /* is_ok on <var4:MapIterator[Object, nullable Object]>*/;
5159 var6
= ((val
* (*)(val
*))(var4
->class->vft
[COLOR_abstract_collection__MapIterator__key
]))(var4
) /* key on <var4:MapIterator[Object, nullable Object]>*/;
5160 var_mclasstype
= var6
;
5161 var7
= ((val
* (*)(val
*))(var4
->class->vft
[COLOR_abstract_collection__MapIterator__item
]))(var4
) /* item on <var4:MapIterator[Object, nullable Object]>*/;
5162 var_mclasstypes
= var7
;
5163 var8
= ((val
* (*)(val
*))(var_mclasstypes
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var_mclasstypes
) /* iterator on <var_mclasstypes:Set[MType]>*/;
5165 var9
= ((short int (*)(val
*))(var8
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var8
) /* is_ok on <var8:Iterator[nullable Object]>*/;
5167 var10
= ((val
* (*)(val
*))(var8
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var8
) /* item on <var8:Iterator[nullable Object]>*/;
5168 var_element
= var10
;
5169 var11
= ((short int (*)(val
*, val
*))(var_ids
->class->vft
[COLOR_abstract_collection__MapRead__has_key
]))(var_ids
, var_element
) /* has_key on <var_ids:HashMap[MType, Int]>*/;
5171 goto CONTINUE_label
;
5174 var12
= BOX_kernel__Int(var_color
); /* autobox from Int to nullable Object */
5175 ((void (*)(val
*, val
*, val
*))(var_ids
->class->vft
[COLOR_abstract_collection__Map___91d_93d_61d
]))(var_ids
, var_element
, var12
) /* []= on <var_ids:HashMap[MType, Int]>*/;
5177 { /* Inline kernel#Int#+ (var_color,var13) */
5178 var16
= var_color
+ var13
;
5181 RET_LABEL15
:(void)0;
5184 CONTINUE_label
: (void)0;
5185 ((void (*)(val
*))(var8
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var8
) /* next on <var8:Iterator[nullable Object]>*/;
5187 BREAK_label
: (void)0;
5188 CONTINUE_label17
: (void)0;
5189 ((void (*)(val
*))(var4
->class->vft
[COLOR_abstract_collection__MapIterator__next
]))(var4
) /* next on <var4:MapIterator[Object, nullable Object]>*/;
5191 BREAK_label17
: (void)0;
5192 ((void (*)(val
*, val
*))(var_result
->class->vft
[COLOR_layout_builders__Layout__ids_61d
]))(var_result
, var_ids
) /* ids= on <var_result:PHLayout[MClassType, MType]>*/;
5193 ((void (*)(val
*, val
*))(var_result
->class->vft
[COLOR_layout_builders__Layout__pos_61d
]))(var_result
, var_ids
) /* pos= on <var_result:PHLayout[MClassType, MType]>*/;
5194 var18
= ((val
* (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_layout_builders__PerfectHasher__compute_masks
]))(self
, var_elements
, var_ids
) /* compute_masks on <self:ResolutionHasher>*/;
5195 ((void (*)(val
*, val
*))(var_result
->class->vft
[COLOR_layout_builders__PHLayout__masks_61d
]))(var_result
, var18
) /* masks= on <var_result:PHLayout[MClassType, MType]>*/;
5196 var19
= ((val
* (*)(val
*))(var_result
->class->vft
[COLOR_layout_builders__PHLayout__masks
]))(var_result
) /* masks on <var_result:PHLayout[MClassType, MType]>*/;
5197 var20
= ((val
* (*)(val
*, val
*, val
*, val
*))(self
->class->vft
[COLOR_layout_builders__PerfectHasher__compute_hashes
]))(self
, var_elements
, var_ids
, var19
) /* compute_hashes on <self:ResolutionHasher>*/;
5198 ((void (*)(val
*, val
*))(var_result
->class->vft
[COLOR_layout_builders__PHLayout__hashes_61d
]))(var_result
, var20
) /* hashes= on <var_result:PHLayout[MClassType, MType]>*/;
5204 /* method layout_builders#ResolutionHasher#build_layout for (self: Object, Map[MClassType, Set[MType]]): Layout[MType] */
5205 val
* VIRTUAL_layout_builders__ResolutionHasher__build_layout(val
* self
, val
* p0
) {
5206 val
* var
/* : Layout[MType] */;
5207 val
* var1
/* : Layout[MType] */;
5208 var1
= layout_builders__ResolutionHasher__build_layout(self
, p0
);