1 #include "coloring.sep.0.h"
2 /* method coloring#POSetConflictGraph#core for (self: POSetConflictGraph[Object]): HashSet[Object] */
3 val
* coloring__POSetConflictGraph__core(val
* self
) {
4 val
* var
/* : HashSet[Object] */;
5 val
* var1
/* : HashSet[Object] */;
6 var1
= self
->attrs
[COLOR_coloring__POSetConflictGraph___core
].val
; /* _core on <self:POSetConflictGraph[Object]> */
7 if (unlikely(var1
== NULL
)) {
8 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _core");
9 PRINT_ERROR(" (%s:%d)\n", "compiler/coloring.nit", 22);
16 /* method coloring#POSetConflictGraph#core for (self: Object): HashSet[Object] */
17 val
* VIRTUAL_coloring__POSetConflictGraph__core(val
* self
) {
18 val
* var
/* : HashSet[Object] */;
19 val
* var1
/* : HashSet[Object] */;
20 val
* var3
/* : HashSet[Object] */;
21 { /* Inline coloring#POSetConflictGraph#core (self) on <self:Object(POSetConflictGraph[Object])> */
22 var3
= self
->attrs
[COLOR_coloring__POSetConflictGraph___core
].val
; /* _core on <self:Object(POSetConflictGraph[Object])> */
23 if (unlikely(var3
== NULL
)) {
24 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _core");
25 PRINT_ERROR(" (%s:%d)\n", "compiler/coloring.nit", 22);
35 /* method coloring#POSetConflictGraph#border for (self: POSetConflictGraph[Object]): HashSet[Object] */
36 val
* coloring__POSetConflictGraph__border(val
* self
) {
37 val
* var
/* : HashSet[Object] */;
38 val
* var1
/* : HashSet[Object] */;
39 var1
= self
->attrs
[COLOR_coloring__POSetConflictGraph___border
].val
; /* _border on <self:POSetConflictGraph[Object]> */
40 if (unlikely(var1
== NULL
)) {
41 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _border");
42 PRINT_ERROR(" (%s:%d)\n", "compiler/coloring.nit", 28);
49 /* method coloring#POSetConflictGraph#border for (self: Object): HashSet[Object] */
50 val
* VIRTUAL_coloring__POSetConflictGraph__border(val
* self
) {
51 val
* var
/* : HashSet[Object] */;
52 val
* var1
/* : HashSet[Object] */;
53 val
* var3
/* : HashSet[Object] */;
54 { /* Inline coloring#POSetConflictGraph#border (self) on <self:Object(POSetConflictGraph[Object])> */
55 var3
= self
->attrs
[COLOR_coloring__POSetConflictGraph___border
].val
; /* _border on <self:Object(POSetConflictGraph[Object])> */
56 if (unlikely(var3
== NULL
)) {
57 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _border");
58 PRINT_ERROR(" (%s:%d)\n", "compiler/coloring.nit", 28);
68 /* method coloring#POSetConflictGraph#crown for (self: POSetConflictGraph[Object]): HashSet[Object] */
69 val
* coloring__POSetConflictGraph__crown(val
* self
) {
70 val
* var
/* : HashSet[Object] */;
71 val
* var1
/* : HashSet[Object] */;
72 var1
= self
->attrs
[COLOR_coloring__POSetConflictGraph___crown
].val
; /* _crown on <self:POSetConflictGraph[Object]> */
73 if (unlikely(var1
== NULL
)) {
74 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _crown");
75 PRINT_ERROR(" (%s:%d)\n", "compiler/coloring.nit", 34);
82 /* method coloring#POSetConflictGraph#crown for (self: Object): HashSet[Object] */
83 val
* VIRTUAL_coloring__POSetConflictGraph__crown(val
* self
) {
84 val
* var
/* : HashSet[Object] */;
85 val
* var1
/* : HashSet[Object] */;
86 val
* var3
/* : HashSet[Object] */;
87 { /* Inline coloring#POSetConflictGraph#crown (self) on <self:Object(POSetConflictGraph[Object])> */
88 var3
= self
->attrs
[COLOR_coloring__POSetConflictGraph___crown
].val
; /* _crown on <self:Object(POSetConflictGraph[Object])> */
89 if (unlikely(var3
== NULL
)) {
90 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _crown");
91 PRINT_ERROR(" (%s:%d)\n", "compiler/coloring.nit", 34);
101 /* method coloring#POSetConflictGraph#conflicts for (self: POSetConflictGraph[Object]): HashMap[Object, Set[Object]] */
102 val
* coloring__POSetConflictGraph__conflicts(val
* self
) {
103 val
* var
/* : HashMap[Object, Set[Object]] */;
104 val
* var1
/* : HashMap[Object, Set[Object]] */;
105 var1
= self
->attrs
[COLOR_coloring__POSetConflictGraph___conflicts
].val
; /* _conflicts on <self:POSetConflictGraph[Object]> */
106 if (unlikely(var1
== NULL
)) {
107 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _conflicts");
108 PRINT_ERROR(" (%s:%d)\n", "compiler/coloring.nit", 40);
115 /* method coloring#POSetConflictGraph#conflicts for (self: Object): HashMap[Object, Set[Object]] */
116 val
* VIRTUAL_coloring__POSetConflictGraph__conflicts(val
* self
) {
117 val
* var
/* : HashMap[Object, Set[Object]] */;
118 val
* var1
/* : HashMap[Object, Set[Object]] */;
119 val
* var3
/* : HashMap[Object, Set[Object]] */;
120 { /* Inline coloring#POSetConflictGraph#conflicts (self) on <self:Object(POSetConflictGraph[Object])> */
121 var3
= self
->attrs
[COLOR_coloring__POSetConflictGraph___conflicts
].val
; /* _conflicts on <self:Object(POSetConflictGraph[Object])> */
122 if (unlikely(var3
== NULL
)) {
123 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _conflicts");
124 PRINT_ERROR(" (%s:%d)\n", "compiler/coloring.nit", 40);
134 /* method coloring#POSetConflictGraph#poset for (self: POSetConflictGraph[Object]): POSet[Object] */
135 val
* coloring__POSetConflictGraph__poset(val
* self
) {
136 val
* var
/* : POSet[Object] */;
137 val
* var1
/* : POSet[Object] */;
138 var1
= self
->attrs
[COLOR_coloring__POSetConflictGraph___poset
].val
; /* _poset on <self:POSetConflictGraph[Object]> */
139 if (unlikely(var1
== NULL
)) {
140 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _poset");
141 PRINT_ERROR(" (%s:%d)\n", "compiler/coloring.nit", 48);
148 /* method coloring#POSetConflictGraph#poset for (self: Object): POSet[Object] */
149 val
* VIRTUAL_coloring__POSetConflictGraph__poset(val
* self
) {
150 val
* var
/* : POSet[Object] */;
151 val
* var1
/* : POSet[Object] */;
152 val
* var3
/* : POSet[Object] */;
153 { /* Inline coloring#POSetConflictGraph#poset (self) on <self:Object(POSetConflictGraph[Object])> */
154 var3
= self
->attrs
[COLOR_coloring__POSetConflictGraph___poset
].val
; /* _poset on <self:Object(POSetConflictGraph[Object])> */
155 if (unlikely(var3
== NULL
)) {
156 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _poset");
157 PRINT_ERROR(" (%s:%d)\n", "compiler/coloring.nit", 48);
167 /* method coloring#POSetConflictGraph#poset= for (self: POSetConflictGraph[Object], POSet[Object]) */
168 void coloring__POSetConflictGraph__poset_61d(val
* self
, val
* p0
) {
169 short int var
/* : Bool */;
172 const struct type
* type_struct
;
173 const char* var_class_name
;
174 /* Covariant cast for argument 0 (poset) <p0:POSet[Object]> isa POSet[E] */
175 /* <p0:POSet[Object]> isa POSet[E] */
176 type_struct
= self
->type
->resolution_table
->types
[COLOR_poset__POSetcoloring__POSetConflictGraph_FT0
];
177 cltype
= type_struct
->color
;
178 idtype
= type_struct
->id
;
179 if(cltype
>= p0
->type
->table_size
) {
182 var
= p0
->type
->type_table
[cltype
] == idtype
;
184 if (unlikely(!var
)) {
185 var_class_name
= p0
== NULL ?
"null" : p0
->type
->name
;
186 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "POSet[E]", var_class_name
);
187 PRINT_ERROR(" (%s:%d)\n", "compiler/coloring.nit", 48);
190 self
->attrs
[COLOR_coloring__POSetConflictGraph___poset
].val
= p0
; /* _poset on <self:POSetConflictGraph[Object]> */
193 /* method coloring#POSetConflictGraph#poset= for (self: Object, POSet[Object]) */
194 void VIRTUAL_coloring__POSetConflictGraph__poset_61d(val
* self
, val
* p0
) {
195 short int var
/* : Bool */;
198 const struct type
* type_struct
;
199 const char* var_class_name
;
200 { /* Inline coloring#POSetConflictGraph#poset= (self,p0) on <self:Object(POSetConflictGraph[Object])> */
201 /* Covariant cast for argument 0 (poset) <p0:POSet[Object]> isa POSet[E] */
202 /* <p0:POSet[Object]> isa POSet[E] */
203 type_struct
= self
->type
->resolution_table
->types
[COLOR_poset__POSetcoloring__POSetConflictGraph_FT0
];
204 cltype
= type_struct
->color
;
205 idtype
= type_struct
->id
;
206 if(cltype
>= p0
->type
->table_size
) {
209 var
= p0
->type
->type_table
[cltype
] == idtype
;
211 if (unlikely(!var
)) {
212 var_class_name
= p0
== NULL ?
"null" : p0
->type
->name
;
213 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "POSet[E]", var_class_name
);
214 PRINT_ERROR(" (%s:%d)\n", "compiler/coloring.nit", 48);
217 self
->attrs
[COLOR_coloring__POSetConflictGraph___poset
].val
= p0
; /* _poset on <self:Object(POSetConflictGraph[Object])> */
222 /* method coloring#POSetConflictGraph#init for (self: POSetConflictGraph[Object], POSet[Object]) */
223 void coloring__POSetConflictGraph__init(val
* self
, val
* p0
) {
224 short int var
/* : Bool */;
227 const struct type
* type_struct
;
228 const char* var_class_name
;
229 val
* var_poset
/* var poset: POSet[Object] */;
230 short int var2
/* : Bool */;
233 const struct type
* type_struct5
;
234 const char* var_class_name6
;
235 /* Covariant cast for argument 0 (poset) <p0:POSet[Object]> isa POSet[E] */
236 /* <p0:POSet[Object]> isa POSet[E] */
237 type_struct
= self
->type
->resolution_table
->types
[COLOR_poset__POSetcoloring__POSetConflictGraph_FT0
];
238 cltype
= type_struct
->color
;
239 idtype
= type_struct
->id
;
240 if(cltype
>= p0
->type
->table_size
) {
243 var
= p0
->type
->type_table
[cltype
] == idtype
;
245 if (unlikely(!var
)) {
246 var_class_name
= p0
== NULL ?
"null" : p0
->type
->name
;
247 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "POSet[E]", var_class_name
);
248 PRINT_ERROR(" (%s:%d)\n", "compiler/coloring.nit", 50);
253 { /* Inline coloring#POSetConflictGraph#poset= (self,var_poset) on <self:POSetConflictGraph[Object]> */
254 /* Covariant cast for argument 0 (poset) <var_poset:POSet[Object]> isa POSet[E] */
255 /* <var_poset:POSet[Object]> isa POSet[E] */
256 type_struct5
= self
->type
->resolution_table
->types
[COLOR_poset__POSetcoloring__POSetConflictGraph_FT0
];
257 cltype3
= type_struct5
->color
;
258 idtype4
= type_struct5
->id
;
259 if(cltype3
>= var_poset
->type
->table_size
) {
262 var2
= var_poset
->type
->type_table
[cltype3
] == idtype4
;
264 if (unlikely(!var2
)) {
265 var_class_name6
= var_poset
== NULL ?
"null" : var_poset
->type
->name
;
266 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "POSet[E]", var_class_name6
);
267 PRINT_ERROR(" (%s:%d)\n", "compiler/coloring.nit", 48);
270 self
->attrs
[COLOR_coloring__POSetConflictGraph___poset
].val
= var_poset
; /* _poset on <self:POSetConflictGraph[Object]> */
275 coloring__POSetConflictGraph__extract_core(self
); /* Direct call coloring#POSetConflictGraph#extract_core on <self:POSetConflictGraph[Object]>*/
278 coloring__POSetConflictGraph__extract_border(self
); /* Direct call coloring#POSetConflictGraph#extract_border on <self:POSetConflictGraph[Object]>*/
281 coloring__POSetConflictGraph__extract_crown(self
); /* Direct call coloring#POSetConflictGraph#extract_crown on <self:POSetConflictGraph[Object]>*/
284 coloring__POSetConflictGraph__compute_conflicts(self
); /* Direct call coloring#POSetConflictGraph#compute_conflicts on <self:POSetConflictGraph[Object]>*/
288 /* method coloring#POSetConflictGraph#init for (self: Object, POSet[Object]) */
289 void VIRTUAL_coloring__POSetConflictGraph__init(val
* self
, val
* p0
) {
290 coloring__POSetConflictGraph__init(self
, p0
); /* Direct call coloring#POSetConflictGraph#init on <self:Object(POSetConflictGraph[Object])>*/
293 /* method coloring#POSetConflictGraph#extract_core for (self: POSetConflictGraph[Object]) */
294 void coloring__POSetConflictGraph__extract_core(val
* self
) {
295 val
* var
/* : HashSet[Object] */;
296 val
* var2
/* : HashSet[Object] */;
297 val
* var3
/* : POSet[Object] */;
298 val
* var5
/* : POSet[Object] */;
299 val
* var_
/* var : POSet[Object] */;
300 val
* var6
/* : Iterator[Object] */;
301 val
* var_7
/* var : Iterator[Object] */;
302 short int var8
/* : Bool */;
303 val
* var9
/* : nullable Object */;
304 val
* var_e
/* var e: Object */;
305 val
* var10
/* : POSet[Object] */;
306 val
* var12
/* : POSet[Object] */;
307 val
* var13
/* : POSetElement[Object] */;
308 val
* var14
/* : Collection[Object] */;
309 long var15
/* : Int */;
310 long var16
/* : Int */;
311 short int var17
/* : Bool */;
312 short int var19
/* : Bool */;
315 const char* var_class_name
;
316 short int var20
/* : Bool */;
317 val
* var21
/* : HashSet[Object] */;
318 val
* var23
/* : HashSet[Object] */;
319 val
* var24
/* : POSet[Object] */;
320 val
* var26
/* : POSet[Object] */;
321 val
* var27
/* : POSetElement[Object] */;
322 val
* var28
/* : Collection[Object] */;
324 { /* Inline coloring#POSetConflictGraph#core (self) on <self:POSetConflictGraph[Object]> */
325 var2
= self
->attrs
[COLOR_coloring__POSetConflictGraph___core
].val
; /* _core on <self:POSetConflictGraph[Object]> */
326 if (unlikely(var2
== NULL
)) {
327 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _core");
328 PRINT_ERROR(" (%s:%d)\n", "compiler/coloring.nit", 22);
336 hash_collection__HashSet__clear(var
); /* Direct call hash_collection#HashSet#clear on <var:HashSet[Object]>*/
339 { /* Inline coloring#POSetConflictGraph#poset (self) on <self:POSetConflictGraph[Object]> */
340 var5
= self
->attrs
[COLOR_coloring__POSetConflictGraph___poset
].val
; /* _poset on <self:POSetConflictGraph[Object]> */
341 if (unlikely(var5
== NULL
)) {
342 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _poset");
343 PRINT_ERROR(" (%s:%d)\n", "compiler/coloring.nit", 48);
352 var6
= poset__POSet__iterator(var_
);
357 var8
= ((short int (*)(val
*))(var_7
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var_7
) /* is_ok on <var_7:Iterator[Object]>*/;
361 var9
= ((val
* (*)(val
*))(var_7
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var_7
) /* item on <var_7:Iterator[Object]>*/;
365 { /* Inline coloring#POSetConflictGraph#poset (self) on <self:POSetConflictGraph[Object]> */
366 var12
= self
->attrs
[COLOR_coloring__POSetConflictGraph___poset
].val
; /* _poset on <self:POSetConflictGraph[Object]> */
367 if (unlikely(var12
== NULL
)) {
368 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _poset");
369 PRINT_ERROR(" (%s:%d)\n", "compiler/coloring.nit", 48);
377 var13
= poset__POSet___91d_93d(var10
, var_e
);
380 var14
= poset__POSetElement__direct_greaters(var13
);
383 var15
= ((long (*)(val
*))(var14
->class->vft
[COLOR_abstract_collection__Collection__length
]))(var14
) /* length on <var14:Collection[Object]>*/;
387 { /* Inline kernel#Int#> (var15,var16) on <var15:Int> */
388 /* Covariant cast for argument 0 (i) <var16:Int> isa OTHER */
389 /* <var16:Int> isa OTHER */
390 var19
= 1; /* easy <var16:Int> isa OTHER*/
391 if (unlikely(!var19
)) {
392 var_class_name
= type_kernel__Int
.name
;
393 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name
);
394 PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 373);
397 var20
= var15
> var16
;
405 { /* Inline coloring#POSetConflictGraph#core (self) on <self:POSetConflictGraph[Object]> */
406 var23
= self
->attrs
[COLOR_coloring__POSetConflictGraph___core
].val
; /* _core on <self:POSetConflictGraph[Object]> */
407 if (unlikely(var23
== NULL
)) {
408 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _core");
409 PRINT_ERROR(" (%s:%d)\n", "compiler/coloring.nit", 22);
417 { /* Inline coloring#POSetConflictGraph#poset (self) on <self:POSetConflictGraph[Object]> */
418 var26
= self
->attrs
[COLOR_coloring__POSetConflictGraph___poset
].val
; /* _poset on <self:POSetConflictGraph[Object]> */
419 if (unlikely(var26
== NULL
)) {
420 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _poset");
421 PRINT_ERROR(" (%s:%d)\n", "compiler/coloring.nit", 48);
429 var27
= poset__POSet___91d_93d(var24
, var_e
);
432 var28
= poset__POSetElement__greaters(var27
);
435 abstract_collection__SimpleCollection__add_all(var21
, var28
); /* Direct call abstract_collection#SimpleCollection#add_all on <var21:HashSet[Object]>*/
440 ((void (*)(val
*))(var_7
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var_7
) /* next on <var_7:Iterator[Object]>*/;
446 BREAK_label
: (void)0;
448 { /* Inline abstract_collection#Iterator#finish (var_7) on <var_7:Iterator[Object]> */
454 /* method coloring#POSetConflictGraph#extract_core for (self: Object) */
455 void VIRTUAL_coloring__POSetConflictGraph__extract_core(val
* self
) {
456 coloring__POSetConflictGraph__extract_core(self
); /* Direct call coloring#POSetConflictGraph#extract_core on <self:Object(POSetConflictGraph[Object])>*/
459 /* method coloring#POSetConflictGraph#extract_border for (self: POSetConflictGraph[Object]) */
460 void coloring__POSetConflictGraph__extract_border(val
* self
) {
461 val
* var
/* : HashSet[Object] */;
462 val
* var2
/* : HashSet[Object] */;
463 val
* var3
/* : HashSet[Object] */;
464 val
* var5
/* : HashSet[Object] */;
465 val
* var_
/* var : HashSet[Object] */;
466 val
* var6
/* : Iterator[Object] */;
467 val
* var_7
/* var : Iterator[Object] */;
468 short int var8
/* : Bool */;
469 val
* var9
/* : nullable Object */;
470 val
* var_e
/* var e: Object */;
471 short int var10
/* : Bool */;
472 short int var11
/* : Bool */;
473 val
* var12
/* : HashSet[Object] */;
474 val
* var14
/* : HashSet[Object] */;
475 val
* var17
/* : HashSet[Object] */;
476 val
* var19
/* : HashSet[Object] */;
477 val
* var_20
/* var : HashSet[Object] */;
478 val
* var21
/* : Iterator[Object] */;
479 val
* var_22
/* var : Iterator[Object] */;
480 short int var23
/* : Bool */;
481 val
* var24
/* : nullable Object */;
482 val
* var_e25
/* var e: Object */;
483 val
* var26
/* : HashSet[Object] */;
484 val
* var28
/* : HashSet[Object] */;
486 { /* Inline coloring#POSetConflictGraph#border (self) on <self:POSetConflictGraph[Object]> */
487 var2
= self
->attrs
[COLOR_coloring__POSetConflictGraph___border
].val
; /* _border on <self:POSetConflictGraph[Object]> */
488 if (unlikely(var2
== NULL
)) {
489 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _border");
490 PRINT_ERROR(" (%s:%d)\n", "compiler/coloring.nit", 28);
498 hash_collection__HashSet__clear(var
); /* Direct call hash_collection#HashSet#clear on <var:HashSet[Object]>*/
501 { /* Inline coloring#POSetConflictGraph#core (self) on <self:POSetConflictGraph[Object]> */
502 var5
= self
->attrs
[COLOR_coloring__POSetConflictGraph___core
].val
; /* _core on <self:POSetConflictGraph[Object]> */
503 if (unlikely(var5
== NULL
)) {
504 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _core");
505 PRINT_ERROR(" (%s:%d)\n", "compiler/coloring.nit", 22);
514 var6
= hash_collection__HashSet__iterator(var_
);
519 var8
= ((short int (*)(val
*))(var_7
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var_7
) /* is_ok on <var_7:Iterator[Object]>*/;
523 var9
= ((val
* (*)(val
*))(var_7
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var_7
) /* item on <var_7:Iterator[Object]>*/;
527 var10
= coloring__POSetConflictGraph__is_border(self
, var_e
);
535 { /* Inline coloring#POSetConflictGraph#border (self) on <self:POSetConflictGraph[Object]> */
536 var14
= self
->attrs
[COLOR_coloring__POSetConflictGraph___border
].val
; /* _border on <self:POSetConflictGraph[Object]> */
537 if (unlikely(var14
== NULL
)) {
538 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _border");
539 PRINT_ERROR(" (%s:%d)\n", "compiler/coloring.nit", 28);
547 hash_collection__HashSet__add(var12
, var_e
); /* Direct call hash_collection#HashSet#add on <var12:HashSet[Object]>*/
549 BREAK_label
: (void)0;
551 ((void (*)(val
*))(var_7
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var_7
) /* next on <var_7:Iterator[Object]>*/;
557 BREAK_label15
: (void)0;
559 { /* Inline abstract_collection#Iterator#finish (var_7) on <var_7:Iterator[Object]> */
564 { /* Inline coloring#POSetConflictGraph#border (self) on <self:POSetConflictGraph[Object]> */
565 var19
= self
->attrs
[COLOR_coloring__POSetConflictGraph___border
].val
; /* _border on <self:POSetConflictGraph[Object]> */
566 if (unlikely(var19
== NULL
)) {
567 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _border");
568 PRINT_ERROR(" (%s:%d)\n", "compiler/coloring.nit", 28);
577 var21
= hash_collection__HashSet__iterator(var_20
);
582 var23
= ((short int (*)(val
*))(var_22
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var_22
) /* is_ok on <var_22:Iterator[Object]>*/;
586 var24
= ((val
* (*)(val
*))(var_22
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var_22
) /* item on <var_22:Iterator[Object]>*/;
590 { /* Inline coloring#POSetConflictGraph#core (self) on <self:POSetConflictGraph[Object]> */
591 var28
= self
->attrs
[COLOR_coloring__POSetConflictGraph___core
].val
; /* _core on <self:POSetConflictGraph[Object]> */
592 if (unlikely(var28
== NULL
)) {
593 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _core");
594 PRINT_ERROR(" (%s:%d)\n", "compiler/coloring.nit", 22);
602 hash_collection__HashSet__remove(var26
, var_e25
); /* Direct call hash_collection#HashSet#remove on <var26:HashSet[Object]>*/
605 ((void (*)(val
*))(var_22
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var_22
) /* next on <var_22:Iterator[Object]>*/;
611 BREAK_label29
: (void)0;
613 { /* Inline abstract_collection#Iterator#finish (var_22) on <var_22:Iterator[Object]> */
619 /* method coloring#POSetConflictGraph#extract_border for (self: Object) */
620 void VIRTUAL_coloring__POSetConflictGraph__extract_border(val
* self
) {
621 coloring__POSetConflictGraph__extract_border(self
); /* Direct call coloring#POSetConflictGraph#extract_border on <self:Object(POSetConflictGraph[Object])>*/
624 /* method coloring#POSetConflictGraph#is_border for (self: POSetConflictGraph[Object], Object): Bool */
625 short int coloring__POSetConflictGraph__is_border(val
* self
, val
* p0
) {
626 short int var
/* : Bool */;
627 short int var1
/* : Bool */;
630 const struct type
* type_struct
;
631 const char* var_class_name
;
632 val
* var_e
/* var e: Object */;
633 val
* var2
/* : POSet[Object] */;
634 val
* var4
/* : POSet[Object] */;
635 val
* var5
/* : POSetElement[Object] */;
636 val
* var6
/* : Collection[Object] */;
637 val
* var_
/* var : Collection[Object] */;
638 val
* var7
/* : Iterator[nullable Object] */;
639 val
* var_8
/* var : Iterator[Object] */;
640 short int var9
/* : Bool */;
641 val
* var10
/* : nullable Object */;
642 val
* var_child
/* var child: Object */;
643 val
* var11
/* : HashSet[Object] */;
644 val
* var13
/* : HashSet[Object] */;
645 short int var14
/* : Bool */;
646 short int var15
/* : Bool */;
647 short int var17
/* : Bool */;
648 /* Covariant cast for argument 0 (e) <p0:Object> isa E */
649 /* <p0:Object> isa E */
650 type_struct
= self
->type
->resolution_table
->types
[COLOR_coloring__POSetConflictGraph_FT0
];
651 cltype
= type_struct
->color
;
652 idtype
= type_struct
->id
;
653 if(cltype
>= p0
->type
->table_size
) {
656 var1
= p0
->type
->type_table
[cltype
] == idtype
;
658 if (unlikely(!var1
)) {
659 var_class_name
= p0
== NULL ?
"null" : p0
->type
->name
;
660 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "E", var_class_name
);
661 PRINT_ERROR(" (%s:%d)\n", "compiler/coloring.nit", 79);
666 { /* Inline coloring#POSetConflictGraph#poset (self) on <self:POSetConflictGraph[Object]> */
667 var4
= self
->attrs
[COLOR_coloring__POSetConflictGraph___poset
].val
; /* _poset on <self:POSetConflictGraph[Object]> */
668 if (unlikely(var4
== NULL
)) {
669 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _poset");
670 PRINT_ERROR(" (%s:%d)\n", "compiler/coloring.nit", 48);
678 var5
= poset__POSet___91d_93d(var2
, var_e
);
681 var6
= poset__POSetElement__direct_smallers(var5
);
685 var7
= ((val
* (*)(val
*))(var_
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var_
) /* iterator on <var_:Collection[Object]>*/;
690 var9
= ((short int (*)(val
*))(var_8
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var_8
) /* is_ok on <var_8:Iterator[Object]>*/;
694 var10
= ((val
* (*)(val
*))(var_8
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var_8
) /* item on <var_8:Iterator[Object]>*/;
698 { /* Inline coloring#POSetConflictGraph#core (self) on <self:POSetConflictGraph[Object]> */
699 var13
= self
->attrs
[COLOR_coloring__POSetConflictGraph___core
].val
; /* _core on <self:POSetConflictGraph[Object]> */
700 if (unlikely(var13
== NULL
)) {
701 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _core");
702 PRINT_ERROR(" (%s:%d)\n", "compiler/coloring.nit", 22);
710 var14
= hash_collection__HashSet__has(var11
, var_child
);
719 ((void (*)(val
*))(var_8
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var_8
) /* next on <var_8:Iterator[Object]>*/;
725 BREAK_label
: (void)0;
727 { /* Inline abstract_collection#Iterator#finish (var_8) on <var_8:Iterator[Object]> */
737 /* method coloring#POSetConflictGraph#is_border for (self: Object, Object): Bool */
738 short int VIRTUAL_coloring__POSetConflictGraph__is_border(val
* self
, val
* p0
) {
739 short int var
/* : Bool */;
740 short int var1
/* : Bool */;
741 var1
= coloring__POSetConflictGraph__is_border(self
, p0
);
746 /* method coloring#POSetConflictGraph#extract_crown for (self: POSetConflictGraph[Object]) */
747 void coloring__POSetConflictGraph__extract_crown(val
* self
) {
748 val
* var
/* : HashSet[Object] */;
749 val
* var2
/* : HashSet[Object] */;
750 val
* var3
/* : POSet[Object] */;
751 val
* var5
/* : POSet[Object] */;
752 val
* var_
/* var : POSet[Object] */;
753 val
* var6
/* : Iterator[Object] */;
754 val
* var_7
/* var : Iterator[Object] */;
755 short int var8
/* : Bool */;
756 val
* var9
/* : nullable Object */;
757 val
* var_e
/* var e: Object */;
758 short int var10
/* : Bool */;
759 val
* var11
/* : HashSet[Object] */;
760 val
* var13
/* : HashSet[Object] */;
761 short int var14
/* : Bool */;
762 short int var15
/* : Bool */;
763 short int var_16
/* var : Bool */;
764 val
* var17
/* : HashSet[Object] */;
765 val
* var19
/* : HashSet[Object] */;
766 short int var20
/* : Bool */;
767 short int var21
/* : Bool */;
768 val
* var22
/* : HashSet[Object] */;
769 val
* var24
/* : HashSet[Object] */;
771 { /* Inline coloring#POSetConflictGraph#crown (self) on <self:POSetConflictGraph[Object]> */
772 var2
= self
->attrs
[COLOR_coloring__POSetConflictGraph___crown
].val
; /* _crown on <self:POSetConflictGraph[Object]> */
773 if (unlikely(var2
== NULL
)) {
774 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _crown");
775 PRINT_ERROR(" (%s:%d)\n", "compiler/coloring.nit", 34);
783 hash_collection__HashSet__clear(var
); /* Direct call hash_collection#HashSet#clear on <var:HashSet[Object]>*/
786 { /* Inline coloring#POSetConflictGraph#poset (self) on <self:POSetConflictGraph[Object]> */
787 var5
= self
->attrs
[COLOR_coloring__POSetConflictGraph___poset
].val
; /* _poset on <self:POSetConflictGraph[Object]> */
788 if (unlikely(var5
== NULL
)) {
789 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _poset");
790 PRINT_ERROR(" (%s:%d)\n", "compiler/coloring.nit", 48);
799 var6
= poset__POSet__iterator(var_
);
804 var8
= ((short int (*)(val
*))(var_7
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var_7
) /* is_ok on <var_7:Iterator[Object]>*/;
808 var9
= ((val
* (*)(val
*))(var_7
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var_7
) /* item on <var_7:Iterator[Object]>*/;
812 { /* Inline coloring#POSetConflictGraph#core (self) on <self:POSetConflictGraph[Object]> */
813 var13
= self
->attrs
[COLOR_coloring__POSetConflictGraph___core
].val
; /* _core on <self:POSetConflictGraph[Object]> */
814 if (unlikely(var13
== NULL
)) {
815 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _core");
816 PRINT_ERROR(" (%s:%d)\n", "compiler/coloring.nit", 22);
824 var14
= hash_collection__HashSet__has(var11
, var_e
);
830 { /* Inline coloring#POSetConflictGraph#border (self) on <self:POSetConflictGraph[Object]> */
831 var19
= self
->attrs
[COLOR_coloring__POSetConflictGraph___border
].val
; /* _border on <self:POSetConflictGraph[Object]> */
832 if (unlikely(var19
== NULL
)) {
833 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _border");
834 PRINT_ERROR(" (%s:%d)\n", "compiler/coloring.nit", 28);
842 var20
= hash_collection__HashSet__has(var17
, var_e
);
851 { /* Inline coloring#POSetConflictGraph#crown (self) on <self:POSetConflictGraph[Object]> */
852 var24
= self
->attrs
[COLOR_coloring__POSetConflictGraph___crown
].val
; /* _crown on <self:POSetConflictGraph[Object]> */
853 if (unlikely(var24
== NULL
)) {
854 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _crown");
855 PRINT_ERROR(" (%s:%d)\n", "compiler/coloring.nit", 34);
863 hash_collection__HashSet__add(var22
, var_e
); /* Direct call hash_collection#HashSet#add on <var22:HashSet[Object]>*/
868 ((void (*)(val
*))(var_7
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var_7
) /* next on <var_7:Iterator[Object]>*/;
874 BREAK_label
: (void)0;
876 { /* Inline abstract_collection#Iterator#finish (var_7) on <var_7:Iterator[Object]> */
882 /* method coloring#POSetConflictGraph#extract_crown for (self: Object) */
883 void VIRTUAL_coloring__POSetConflictGraph__extract_crown(val
* self
) {
884 coloring__POSetConflictGraph__extract_crown(self
); /* Direct call coloring#POSetConflictGraph#extract_crown on <self:Object(POSetConflictGraph[Object])>*/
887 /* method coloring#POSetConflictGraph#compute_conflicts for (self: POSetConflictGraph[Object]) */
888 void coloring__POSetConflictGraph__compute_conflicts(val
* self
) {
889 val
* var
/* : HashMap[Object, Set[Object]] */;
890 val
* var2
/* : HashMap[Object, Set[Object]] */;
891 val
* var3
/* : HashSet[Object] */;
892 val
* var5
/* : HashSet[Object] */;
893 val
* var_
/* var : HashSet[Object] */;
894 val
* var6
/* : Iterator[Object] */;
895 val
* var_7
/* var : Iterator[Object] */;
896 short int var8
/* : Bool */;
897 val
* var9
/* : nullable Object */;
898 val
* var_e
/* var e: Object */;
899 val
* var10
/* : POSet[Object] */;
900 val
* var12
/* : POSet[Object] */;
901 val
* var13
/* : POSetElement[Object] */;
902 val
* var14
/* : Collection[Object] */;
904 { /* Inline coloring#POSetConflictGraph#conflicts (self) on <self:POSetConflictGraph[Object]> */
905 var2
= self
->attrs
[COLOR_coloring__POSetConflictGraph___conflicts
].val
; /* _conflicts on <self:POSetConflictGraph[Object]> */
906 if (unlikely(var2
== NULL
)) {
907 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _conflicts");
908 PRINT_ERROR(" (%s:%d)\n", "compiler/coloring.nit", 40);
916 hash_collection__HashMap__clear(var
); /* Direct call hash_collection#HashMap#clear on <var:HashMap[Object, Set[Object]]>*/
919 { /* Inline coloring#POSetConflictGraph#border (self) on <self:POSetConflictGraph[Object]> */
920 var5
= self
->attrs
[COLOR_coloring__POSetConflictGraph___border
].val
; /* _border on <self:POSetConflictGraph[Object]> */
921 if (unlikely(var5
== NULL
)) {
922 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _border");
923 PRINT_ERROR(" (%s:%d)\n", "compiler/coloring.nit", 28);
932 var6
= hash_collection__HashSet__iterator(var_
);
937 var8
= ((short int (*)(val
*))(var_7
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var_7
) /* is_ok on <var_7:Iterator[Object]>*/;
941 var9
= ((val
* (*)(val
*))(var_7
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var_7
) /* item on <var_7:Iterator[Object]>*/;
945 { /* Inline coloring#POSetConflictGraph#poset (self) on <self:POSetConflictGraph[Object]> */
946 var12
= self
->attrs
[COLOR_coloring__POSetConflictGraph___poset
].val
; /* _poset on <self:POSetConflictGraph[Object]> */
947 if (unlikely(var12
== NULL
)) {
948 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _poset");
949 PRINT_ERROR(" (%s:%d)\n", "compiler/coloring.nit", 48);
957 var13
= poset__POSet___91d_93d(var10
, var_e
);
960 var14
= poset__POSetElement__greaters(var13
);
963 coloring__POSetConflictGraph__add_conflicts(self
, var14
); /* Direct call coloring#POSetConflictGraph#add_conflicts on <self:POSetConflictGraph[Object]>*/
966 ((void (*)(val
*))(var_7
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var_7
) /* next on <var_7:Iterator[Object]>*/;
972 BREAK_label
: (void)0;
974 { /* Inline abstract_collection#Iterator#finish (var_7) on <var_7:Iterator[Object]> */
980 /* method coloring#POSetConflictGraph#compute_conflicts for (self: Object) */
981 void VIRTUAL_coloring__POSetConflictGraph__compute_conflicts(val
* self
) {
982 coloring__POSetConflictGraph__compute_conflicts(self
); /* Direct call coloring#POSetConflictGraph#compute_conflicts on <self:Object(POSetConflictGraph[Object])>*/
985 /* method coloring#POSetConflictGraph#add_conflict for (self: POSetConflictGraph[Object], Object, Object) */
986 void coloring__POSetConflictGraph__add_conflict(val
* self
, val
* p0
, val
* p1
) {
987 short int var
/* : Bool */;
990 const struct type
* type_struct
;
991 const char* var_class_name
;
992 short int var1
/* : Bool */;
995 const struct type
* type_struct4
;
996 const char* var_class_name5
;
997 val
* var_e
/* var e: Object */;
998 val
* var_o
/* var o: Object */;
999 val
* var6
/* : HashMap[Object, Set[Object]] */;
1000 val
* var8
/* : HashMap[Object, Set[Object]] */;
1001 short int var9
/* : Bool */;
1002 short int var10
/* : Bool */;
1003 val
* var11
/* : HashMap[Object, Set[Object]] */;
1004 val
* var13
/* : HashMap[Object, Set[Object]] */;
1005 val
* var14
/* : HashSet[Object] */;
1006 val
* var15
/* : HashMap[Object, Set[Object]] */;
1007 val
* var17
/* : HashMap[Object, Set[Object]] */;
1008 short int var18
/* : Bool */;
1009 short int var19
/* : Bool */;
1010 val
* var20
/* : HashMap[Object, Set[Object]] */;
1011 val
* var22
/* : HashMap[Object, Set[Object]] */;
1012 val
* var23
/* : HashSet[Object] */;
1013 val
* var24
/* : HashMap[Object, Set[Object]] */;
1014 val
* var26
/* : HashMap[Object, Set[Object]] */;
1015 val
* var27
/* : nullable Object */;
1016 val
* var28
/* : HashMap[Object, Set[Object]] */;
1017 val
* var30
/* : HashMap[Object, Set[Object]] */;
1018 val
* var31
/* : nullable Object */;
1019 /* Covariant cast for argument 0 (e) <p0:Object> isa E */
1020 /* <p0:Object> isa E */
1021 type_struct
= self
->type
->resolution_table
->types
[COLOR_coloring__POSetConflictGraph_FT0
];
1022 cltype
= type_struct
->color
;
1023 idtype
= type_struct
->id
;
1024 if(cltype
>= p0
->type
->table_size
) {
1027 var
= p0
->type
->type_table
[cltype
] == idtype
;
1029 if (unlikely(!var
)) {
1030 var_class_name
= p0
== NULL ?
"null" : p0
->type
->name
;
1031 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "E", var_class_name
);
1032 PRINT_ERROR(" (%s:%d)\n", "compiler/coloring.nit", 101);
1035 /* Covariant cast for argument 1 (o) <p1:Object> isa E */
1036 /* <p1:Object> isa E */
1037 type_struct4
= self
->type
->resolution_table
->types
[COLOR_coloring__POSetConflictGraph_FT0
];
1038 cltype2
= type_struct4
->color
;
1039 idtype3
= type_struct4
->id
;
1040 if(cltype2
>= p1
->type
->table_size
) {
1043 var1
= p1
->type
->type_table
[cltype2
] == idtype3
;
1045 if (unlikely(!var1
)) {
1046 var_class_name5
= p1
== NULL ?
"null" : p1
->type
->name
;
1047 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "E", var_class_name5
);
1048 PRINT_ERROR(" (%s:%d)\n", "compiler/coloring.nit", 101);
1054 { /* Inline coloring#POSetConflictGraph#conflicts (self) on <self:POSetConflictGraph[Object]> */
1055 var8
= self
->attrs
[COLOR_coloring__POSetConflictGraph___conflicts
].val
; /* _conflicts on <self:POSetConflictGraph[Object]> */
1056 if (unlikely(var8
== NULL
)) {
1057 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _conflicts");
1058 PRINT_ERROR(" (%s:%d)\n", "compiler/coloring.nit", 40);
1066 var9
= abstract_collection__MapRead__has_key(var6
, var_e
);
1071 { /* Inline coloring#POSetConflictGraph#conflicts (self) on <self:POSetConflictGraph[Object]> */
1072 var13
= self
->attrs
[COLOR_coloring__POSetConflictGraph___conflicts
].val
; /* _conflicts on <self:POSetConflictGraph[Object]> */
1073 if (unlikely(var13
== NULL
)) {
1074 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _conflicts");
1075 PRINT_ERROR(" (%s:%d)\n", "compiler/coloring.nit", 40);
1079 RET_LABEL12
:(void)0;
1082 var14
= NEW_hash_collection__HashSet(self
->type
->resolution_table
->types
[COLOR_hash_collection__HashSetcoloring__POSetConflictGraph_FT0
]);
1084 ((void (*)(val
*))(var14
->class->vft
[COLOR_kernel__Object__init
]))(var14
) /* init on <var14:HashSet[Object]>*/;
1087 hash_collection__HashMap___91d_93d_61d(var11
, var_e
, var14
); /* Direct call hash_collection#HashMap#[]= on <var11:HashMap[Object, Set[Object]]>*/
1092 { /* Inline coloring#POSetConflictGraph#conflicts (self) on <self:POSetConflictGraph[Object]> */
1093 var17
= self
->attrs
[COLOR_coloring__POSetConflictGraph___conflicts
].val
; /* _conflicts on <self:POSetConflictGraph[Object]> */
1094 if (unlikely(var17
== NULL
)) {
1095 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _conflicts");
1096 PRINT_ERROR(" (%s:%d)\n", "compiler/coloring.nit", 40);
1100 RET_LABEL16
:(void)0;
1104 var18
= abstract_collection__MapRead__has_key(var15
, var_o
);
1109 { /* Inline coloring#POSetConflictGraph#conflicts (self) on <self:POSetConflictGraph[Object]> */
1110 var22
= self
->attrs
[COLOR_coloring__POSetConflictGraph___conflicts
].val
; /* _conflicts on <self:POSetConflictGraph[Object]> */
1111 if (unlikely(var22
== NULL
)) {
1112 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _conflicts");
1113 PRINT_ERROR(" (%s:%d)\n", "compiler/coloring.nit", 40);
1117 RET_LABEL21
:(void)0;
1120 var23
= NEW_hash_collection__HashSet(self
->type
->resolution_table
->types
[COLOR_hash_collection__HashSetcoloring__POSetConflictGraph_FT0
]);
1122 ((void (*)(val
*))(var23
->class->vft
[COLOR_kernel__Object__init
]))(var23
) /* init on <var23:HashSet[Object]>*/;
1125 hash_collection__HashMap___91d_93d_61d(var20
, var_o
, var23
); /* Direct call hash_collection#HashMap#[]= on <var20:HashMap[Object, Set[Object]]>*/
1130 { /* Inline coloring#POSetConflictGraph#conflicts (self) on <self:POSetConflictGraph[Object]> */
1131 var26
= self
->attrs
[COLOR_coloring__POSetConflictGraph___conflicts
].val
; /* _conflicts on <self:POSetConflictGraph[Object]> */
1132 if (unlikely(var26
== NULL
)) {
1133 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _conflicts");
1134 PRINT_ERROR(" (%s:%d)\n", "compiler/coloring.nit", 40);
1138 RET_LABEL25
:(void)0;
1142 var27
= hash_collection__HashMap___91d_93d(var24
, var_e
);
1145 ((void (*)(val
*, val
*))(var27
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var27
, var_o
) /* add on <var27:nullable Object(Set[Object])>*/;
1148 { /* Inline coloring#POSetConflictGraph#conflicts (self) on <self:POSetConflictGraph[Object]> */
1149 var30
= self
->attrs
[COLOR_coloring__POSetConflictGraph___conflicts
].val
; /* _conflicts on <self:POSetConflictGraph[Object]> */
1150 if (unlikely(var30
== NULL
)) {
1151 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _conflicts");
1152 PRINT_ERROR(" (%s:%d)\n", "compiler/coloring.nit", 40);
1156 RET_LABEL29
:(void)0;
1160 var31
= hash_collection__HashMap___91d_93d(var28
, var_o
);
1163 ((void (*)(val
*, val
*))(var31
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var31
, var_e
) /* add on <var31:nullable Object(Set[Object])>*/;
1167 /* method coloring#POSetConflictGraph#add_conflict for (self: Object, Object, Object) */
1168 void VIRTUAL_coloring__POSetConflictGraph__add_conflict(val
* self
, val
* p0
, val
* p1
) {
1169 coloring__POSetConflictGraph__add_conflict(self
, p0
, p1
); /* Direct call coloring#POSetConflictGraph#add_conflict on <self:Object(POSetConflictGraph[Object])>*/
1172 /* method coloring#POSetConflictGraph#add_conflicts for (self: POSetConflictGraph[Object], Collection[Object]) */
1173 void coloring__POSetConflictGraph__add_conflicts(val
* self
, val
* p0
) {
1174 short int var
/* : Bool */;
1177 const struct type
* type_struct
;
1178 const char* var_class_name
;
1179 val
* var_es
/* var es: Collection[Object] */;
1180 val
* var_
/* var : Collection[Object] */;
1181 val
* var1
/* : Iterator[nullable Object] */;
1182 val
* var_2
/* var : Iterator[Object] */;
1183 short int var3
/* : Bool */;
1184 val
* var4
/* : nullable Object */;
1185 val
* var_e1
/* var e1: Object */;
1186 val
* var_5
/* var : Collection[Object] */;
1187 val
* var6
/* : Iterator[nullable Object] */;
1188 val
* var_7
/* var : Iterator[Object] */;
1189 short int var8
/* : Bool */;
1190 val
* var9
/* : nullable Object */;
1191 val
* var_e2
/* var e2: Object */;
1192 /* Covariant cast for argument 0 (es) <p0:Collection[Object]> isa Collection[E] */
1193 /* <p0:Collection[Object]> isa Collection[E] */
1194 type_struct
= self
->type
->resolution_table
->types
[COLOR_abstract_collection__Collectioncoloring__POSetConflictGraph_FT0
];
1195 cltype
= type_struct
->color
;
1196 idtype
= type_struct
->id
;
1197 if(cltype
>= p0
->type
->table_size
) {
1200 var
= p0
->type
->type_table
[cltype
] == idtype
;
1202 if (unlikely(!var
)) {
1203 var_class_name
= p0
== NULL ?
"null" : p0
->type
->name
;
1204 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "Collection[E]", var_class_name
);
1205 PRINT_ERROR(" (%s:%d)\n", "compiler/coloring.nit", 108);
1211 var1
= ((val
* (*)(val
*))(var_
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var_
) /* iterator on <var_:Collection[Object]>*/;
1216 var3
= ((short int (*)(val
*))(var_2
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var_2
) /* is_ok on <var_2:Iterator[Object]>*/;
1220 var4
= ((val
* (*)(val
*))(var_2
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var_2
) /* item on <var_2:Iterator[Object]>*/;
1225 var6
= ((val
* (*)(val
*))(var_5
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var_5
) /* iterator on <var_5:Collection[Object]>*/;
1230 var8
= ((short int (*)(val
*))(var_7
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var_7
) /* is_ok on <var_7:Iterator[Object]>*/;
1234 var9
= ((val
* (*)(val
*))(var_7
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var_7
) /* item on <var_7:Iterator[Object]>*/;
1238 coloring__POSetConflictGraph__add_conflict(self
, var_e1
, var_e2
); /* Direct call coloring#POSetConflictGraph#add_conflict on <self:POSetConflictGraph[Object]>*/
1241 ((void (*)(val
*))(var_7
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var_7
) /* next on <var_7:Iterator[Object]>*/;
1247 BREAK_label
: (void)0;
1249 { /* Inline abstract_collection#Iterator#finish (var_7) on <var_7:Iterator[Object]> */
1250 RET_LABEL10
:(void)0;
1254 ((void (*)(val
*))(var_2
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var_2
) /* next on <var_2:Iterator[Object]>*/;
1260 BREAK_label11
: (void)0;
1262 { /* Inline abstract_collection#Iterator#finish (var_2) on <var_2:Iterator[Object]> */
1263 RET_LABEL12
:(void)0;
1268 /* method coloring#POSetConflictGraph#add_conflicts for (self: Object, Collection[Object]) */
1269 void VIRTUAL_coloring__POSetConflictGraph__add_conflicts(val
* self
, val
* p0
) {
1270 coloring__POSetConflictGraph__add_conflicts(self
, p0
); /* Direct call coloring#POSetConflictGraph#add_conflicts on <self:Object(POSetConflictGraph[Object])>*/
1273 /* method coloring#POSetColorer#is_colored for (self: POSetColorer[Object]): Bool */
1274 short int coloring__POSetColorer__is_colored(val
* self
) {
1275 short int var
/* : Bool */;
1276 short int var1
/* : Bool */;
1277 var1
= self
->attrs
[COLOR_coloring__POSetColorer___is_colored
].s
; /* _is_colored on <self:POSetColorer[Object]> */
1282 /* method coloring#POSetColorer#is_colored for (self: Object): Bool */
1283 short int VIRTUAL_coloring__POSetColorer__is_colored(val
* self
) {
1284 short int var
/* : Bool */;
1285 short int var1
/* : Bool */;
1286 short int var3
/* : Bool */;
1287 { /* Inline coloring#POSetColorer#is_colored (self) on <self:Object(POSetColorer[Object])> */
1288 var3
= self
->attrs
[COLOR_coloring__POSetColorer___is_colored
].s
; /* _is_colored on <self:Object(POSetColorer[Object])> */
1296 /* method coloring#POSetColorer#is_colored= for (self: POSetColorer[Object], Bool) */
1297 void coloring__POSetColorer__is_colored_61d(val
* self
, short int p0
) {
1298 self
->attrs
[COLOR_coloring__POSetColorer___is_colored
].s
= p0
; /* _is_colored on <self:POSetColorer[Object]> */
1301 /* method coloring#POSetColorer#is_colored= for (self: Object, Bool) */
1302 void VIRTUAL_coloring__POSetColorer__is_colored_61d(val
* self
, short int p0
) {
1303 { /* Inline coloring#POSetColorer#is_colored= (self,p0) on <self:Object(POSetColorer[Object])> */
1304 self
->attrs
[COLOR_coloring__POSetColorer___is_colored
].s
= p0
; /* _is_colored on <self:Object(POSetColorer[Object])> */
1309 /* method coloring#POSetColorer#ids for (self: POSetColorer[Object]): Map[Object, Int] */
1310 val
* coloring__POSetColorer__ids(val
* self
) {
1311 val
* var
/* : Map[Object, Int] */;
1312 short int var1
/* : Bool */;
1313 short int var3
/* : Bool */;
1314 val
* var4
/* : HashMap[Object, Int] */;
1315 val
* var6
/* : HashMap[Object, Int] */;
1317 { /* Inline coloring#POSetColorer#is_colored (self) on <self:POSetColorer[Object]> */
1318 var3
= self
->attrs
[COLOR_coloring__POSetColorer___is_colored
].s
; /* _is_colored on <self:POSetColorer[Object]> */
1323 if (unlikely(!var1
)) {
1324 PRINT_ERROR("Runtime error: %s", "Assert failed");
1325 PRINT_ERROR(" (%s:%d)\n", "compiler/coloring.nit", 162);
1329 { /* Inline coloring#POSetColorer#ids_cache (self) on <self:POSetColorer[Object]> */
1330 var6
= self
->attrs
[COLOR_coloring__POSetColorer___ids_cache
].val
; /* _ids_cache on <self:POSetColorer[Object]> */
1331 if (unlikely(var6
== NULL
)) {
1332 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _ids_cache");
1333 PRINT_ERROR(" (%s:%d)\n", "compiler/coloring.nit", 165);
1345 /* method coloring#POSetColorer#ids for (self: Object): Map[Object, Int] */
1346 val
* VIRTUAL_coloring__POSetColorer__ids(val
* self
) {
1347 val
* var
/* : Map[Object, Int] */;
1348 val
* var1
/* : Map[Object, Int] */;
1349 var1
= coloring__POSetColorer__ids(self
);
1354 /* method coloring#POSetColorer#ids_cache for (self: POSetColorer[Object]): HashMap[Object, Int] */
1355 val
* coloring__POSetColorer__ids_cache(val
* self
) {
1356 val
* var
/* : HashMap[Object, Int] */;
1357 val
* var1
/* : HashMap[Object, Int] */;
1358 var1
= self
->attrs
[COLOR_coloring__POSetColorer___ids_cache
].val
; /* _ids_cache on <self:POSetColorer[Object]> */
1359 if (unlikely(var1
== NULL
)) {
1360 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _ids_cache");
1361 PRINT_ERROR(" (%s:%d)\n", "compiler/coloring.nit", 165);
1368 /* method coloring#POSetColorer#ids_cache for (self: Object): HashMap[Object, Int] */
1369 val
* VIRTUAL_coloring__POSetColorer__ids_cache(val
* self
) {
1370 val
* var
/* : HashMap[Object, Int] */;
1371 val
* var1
/* : HashMap[Object, Int] */;
1372 val
* var3
/* : HashMap[Object, Int] */;
1373 { /* Inline coloring#POSetColorer#ids_cache (self) on <self:Object(POSetColorer[Object])> */
1374 var3
= self
->attrs
[COLOR_coloring__POSetColorer___ids_cache
].val
; /* _ids_cache on <self:Object(POSetColorer[Object])> */
1375 if (unlikely(var3
== NULL
)) {
1376 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _ids_cache");
1377 PRINT_ERROR(" (%s:%d)\n", "compiler/coloring.nit", 165);
1387 /* method coloring#POSetColorer#colors for (self: POSetColorer[Object]): Map[Object, Int] */
1388 val
* coloring__POSetColorer__colors(val
* self
) {
1389 val
* var
/* : Map[Object, Int] */;
1390 short int var1
/* : Bool */;
1391 short int var3
/* : Bool */;
1392 val
* var4
/* : HashMap[Object, Int] */;
1393 val
* var6
/* : HashMap[Object, Int] */;
1395 { /* Inline coloring#POSetColorer#is_colored (self) on <self:POSetColorer[Object]> */
1396 var3
= self
->attrs
[COLOR_coloring__POSetColorer___is_colored
].s
; /* _is_colored on <self:POSetColorer[Object]> */
1401 if (unlikely(!var1
)) {
1402 PRINT_ERROR("Runtime error: %s", "Assert failed");
1403 PRINT_ERROR(" (%s:%d)\n", "compiler/coloring.nit", 170);
1407 { /* Inline coloring#POSetColorer#colors_cache (self) on <self:POSetColorer[Object]> */
1408 var6
= self
->attrs
[COLOR_coloring__POSetColorer___colors_cache
].val
; /* _colors_cache on <self:POSetColorer[Object]> */
1409 if (unlikely(var6
== NULL
)) {
1410 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _colors_cache");
1411 PRINT_ERROR(" (%s:%d)\n", "compiler/coloring.nit", 173);
1423 /* method coloring#POSetColorer#colors for (self: Object): Map[Object, Int] */
1424 val
* VIRTUAL_coloring__POSetColorer__colors(val
* self
) {
1425 val
* var
/* : Map[Object, Int] */;
1426 val
* var1
/* : Map[Object, Int] */;
1427 var1
= coloring__POSetColorer__colors(self
);
1432 /* method coloring#POSetColorer#colors_cache for (self: POSetColorer[Object]): HashMap[Object, Int] */
1433 val
* coloring__POSetColorer__colors_cache(val
* self
) {
1434 val
* var
/* : HashMap[Object, Int] */;
1435 val
* var1
/* : HashMap[Object, Int] */;
1436 var1
= self
->attrs
[COLOR_coloring__POSetColorer___colors_cache
].val
; /* _colors_cache on <self:POSetColorer[Object]> */
1437 if (unlikely(var1
== NULL
)) {
1438 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _colors_cache");
1439 PRINT_ERROR(" (%s:%d)\n", "compiler/coloring.nit", 173);
1446 /* method coloring#POSetColorer#colors_cache for (self: Object): HashMap[Object, Int] */
1447 val
* VIRTUAL_coloring__POSetColorer__colors_cache(val
* self
) {
1448 val
* var
/* : HashMap[Object, Int] */;
1449 val
* var1
/* : HashMap[Object, Int] */;
1450 val
* var3
/* : HashMap[Object, Int] */;
1451 { /* Inline coloring#POSetColorer#colors_cache (self) on <self:Object(POSetColorer[Object])> */
1452 var3
= self
->attrs
[COLOR_coloring__POSetColorer___colors_cache
].val
; /* _colors_cache on <self:Object(POSetColorer[Object])> */
1453 if (unlikely(var3
== NULL
)) {
1454 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _colors_cache");
1455 PRINT_ERROR(" (%s:%d)\n", "compiler/coloring.nit", 173);
1465 /* method coloring#POSetColorer#poset_cache for (self: POSetColorer[Object]): POSet[Object] */
1466 val
* coloring__POSetColorer__poset_cache(val
* self
) {
1467 val
* var
/* : POSet[Object] */;
1468 val
* var1
/* : POSet[Object] */;
1469 var1
= self
->attrs
[COLOR_coloring__POSetColorer___poset_cache
].val
; /* _poset_cache on <self:POSetColorer[Object]> */
1470 if (unlikely(var1
== NULL
)) {
1471 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _poset_cache");
1472 PRINT_ERROR(" (%s:%d)\n", "compiler/coloring.nit", 180);
1479 /* method coloring#POSetColorer#poset_cache for (self: Object): POSet[Object] */
1480 val
* VIRTUAL_coloring__POSetColorer__poset_cache(val
* self
) {
1481 val
* var
/* : POSet[Object] */;
1482 val
* var1
/* : POSet[Object] */;
1483 val
* var3
/* : POSet[Object] */;
1484 { /* Inline coloring#POSetColorer#poset_cache (self) on <self:Object(POSetColorer[Object])> */
1485 var3
= self
->attrs
[COLOR_coloring__POSetColorer___poset_cache
].val
; /* _poset_cache on <self:Object(POSetColorer[Object])> */
1486 if (unlikely(var3
== NULL
)) {
1487 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _poset_cache");
1488 PRINT_ERROR(" (%s:%d)\n", "compiler/coloring.nit", 180);
1498 /* method coloring#POSetColorer#poset_cache= for (self: POSetColorer[Object], POSet[Object]) */
1499 void coloring__POSetColorer__poset_cache_61d(val
* self
, val
* p0
) {
1500 short int var
/* : Bool */;
1503 const struct type
* type_struct
;
1504 const char* var_class_name
;
1505 /* Covariant cast for argument 0 (poset_cache) <p0:POSet[Object]> isa POSet[E] */
1506 /* <p0:POSet[Object]> isa POSet[E] */
1507 type_struct
= self
->type
->resolution_table
->types
[COLOR_poset__POSetcoloring__POSetColorer_FT0
];
1508 cltype
= type_struct
->color
;
1509 idtype
= type_struct
->id
;
1510 if(cltype
>= p0
->type
->table_size
) {
1513 var
= p0
->type
->type_table
[cltype
] == idtype
;
1515 if (unlikely(!var
)) {
1516 var_class_name
= p0
== NULL ?
"null" : p0
->type
->name
;
1517 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "POSet[E]", var_class_name
);
1518 PRINT_ERROR(" (%s:%d)\n", "compiler/coloring.nit", 180);
1521 self
->attrs
[COLOR_coloring__POSetColorer___poset_cache
].val
= p0
; /* _poset_cache on <self:POSetColorer[Object]> */
1524 /* method coloring#POSetColorer#poset_cache= for (self: Object, POSet[Object]) */
1525 void VIRTUAL_coloring__POSetColorer__poset_cache_61d(val
* self
, val
* p0
) {
1526 short int var
/* : Bool */;
1529 const struct type
* type_struct
;
1530 const char* var_class_name
;
1531 { /* Inline coloring#POSetColorer#poset_cache= (self,p0) on <self:Object(POSetColorer[Object])> */
1532 /* Covariant cast for argument 0 (poset_cache) <p0:POSet[Object]> isa POSet[E] */
1533 /* <p0:POSet[Object]> isa POSet[E] */
1534 type_struct
= self
->type
->resolution_table
->types
[COLOR_poset__POSetcoloring__POSetColorer_FT0
];
1535 cltype
= type_struct
->color
;
1536 idtype
= type_struct
->id
;
1537 if(cltype
>= p0
->type
->table_size
) {
1540 var
= p0
->type
->type_table
[cltype
] == idtype
;
1542 if (unlikely(!var
)) {
1543 var_class_name
= p0
== NULL ?
"null" : p0
->type
->name
;
1544 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "POSet[E]", var_class_name
);
1545 PRINT_ERROR(" (%s:%d)\n", "compiler/coloring.nit", 180);
1548 self
->attrs
[COLOR_coloring__POSetColorer___poset_cache
].val
= p0
; /* _poset_cache on <self:Object(POSetColorer[Object])> */
1553 /* method coloring#POSetColorer#conflicts for (self: POSetColorer[Object]): Map[Object, Set[Object]] */
1554 val
* coloring__POSetColorer__conflicts(val
* self
) {
1555 val
* var
/* : Map[Object, Set[Object]] */;
1556 short int var1
/* : Bool */;
1557 short int var3
/* : Bool */;
1558 val
* var4
/* : Map[Object, Set[Object]] */;
1559 val
* var6
/* : Map[Object, Set[Object]] */;
1561 { /* Inline coloring#POSetColorer#is_colored (self) on <self:POSetColorer[Object]> */
1562 var3
= self
->attrs
[COLOR_coloring__POSetColorer___is_colored
].s
; /* _is_colored on <self:POSetColorer[Object]> */
1567 if (unlikely(!var1
)) {
1568 PRINT_ERROR("Runtime error: %s", "Assert failed");
1569 PRINT_ERROR(" (%s:%d)\n", "compiler/coloring.nit", 184);
1573 { /* Inline coloring#POSetColorer#conflicts_cache (self) on <self:POSetColorer[Object]> */
1574 var6
= self
->attrs
[COLOR_coloring__POSetColorer___conflicts_cache
].val
; /* _conflicts_cache on <self:POSetColorer[Object]> */
1575 if (unlikely(var6
== NULL
)) {
1576 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _conflicts_cache");
1577 PRINT_ERROR(" (%s:%d)\n", "compiler/coloring.nit", 187);
1589 /* method coloring#POSetColorer#conflicts for (self: Object): Map[Object, Set[Object]] */
1590 val
* VIRTUAL_coloring__POSetColorer__conflicts(val
* self
) {
1591 val
* var
/* : Map[Object, Set[Object]] */;
1592 val
* var1
/* : Map[Object, Set[Object]] */;
1593 var1
= coloring__POSetColorer__conflicts(self
);
1598 /* method coloring#POSetColorer#conflicts_cache for (self: POSetColorer[Object]): Map[Object, Set[Object]] */
1599 val
* coloring__POSetColorer__conflicts_cache(val
* self
) {
1600 val
* var
/* : Map[Object, Set[Object]] */;
1601 val
* var1
/* : Map[Object, Set[Object]] */;
1602 var1
= self
->attrs
[COLOR_coloring__POSetColorer___conflicts_cache
].val
; /* _conflicts_cache on <self:POSetColorer[Object]> */
1603 if (unlikely(var1
== NULL
)) {
1604 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _conflicts_cache");
1605 PRINT_ERROR(" (%s:%d)\n", "compiler/coloring.nit", 187);
1612 /* method coloring#POSetColorer#conflicts_cache for (self: Object): Map[Object, Set[Object]] */
1613 val
* VIRTUAL_coloring__POSetColorer__conflicts_cache(val
* self
) {
1614 val
* var
/* : Map[Object, Set[Object]] */;
1615 val
* var1
/* : Map[Object, Set[Object]] */;
1616 val
* var3
/* : Map[Object, Set[Object]] */;
1617 { /* Inline coloring#POSetColorer#conflicts_cache (self) on <self:Object(POSetColorer[Object])> */
1618 var3
= self
->attrs
[COLOR_coloring__POSetColorer___conflicts_cache
].val
; /* _conflicts_cache on <self:Object(POSetColorer[Object])> */
1619 if (unlikely(var3
== NULL
)) {
1620 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _conflicts_cache");
1621 PRINT_ERROR(" (%s:%d)\n", "compiler/coloring.nit", 187);
1631 /* method coloring#POSetColorer#conflicts_cache= for (self: POSetColorer[Object], Map[Object, Set[Object]]) */
1632 void coloring__POSetColorer__conflicts_cache_61d(val
* self
, val
* p0
) {
1633 short int var
/* : Bool */;
1636 const struct type
* type_struct
;
1637 const char* var_class_name
;
1638 /* Covariant cast for argument 0 (conflicts_cache) <p0:Map[Object, Set[Object]]> isa Map[E, Set[E]] */
1639 /* <p0:Map[Object, Set[Object]]> isa Map[E, Set[E]] */
1640 type_struct
= self
->type
->resolution_table
->types
[COLOR_abstract_collection__Mapcoloring__POSetColorer_FT0abstract_collection__Setcoloring__POSetColorer_FT0
];
1641 cltype
= type_struct
->color
;
1642 idtype
= type_struct
->id
;
1643 if(cltype
>= p0
->type
->table_size
) {
1646 var
= p0
->type
->type_table
[cltype
] == idtype
;
1648 if (unlikely(!var
)) {
1649 var_class_name
= p0
== NULL ?
"null" : p0
->type
->name
;
1650 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "Map[E, Set[E]]", var_class_name
);
1651 PRINT_ERROR(" (%s:%d)\n", "compiler/coloring.nit", 187);
1654 self
->attrs
[COLOR_coloring__POSetColorer___conflicts_cache
].val
= p0
; /* _conflicts_cache on <self:POSetColorer[Object]> */
1657 /* method coloring#POSetColorer#conflicts_cache= for (self: Object, Map[Object, Set[Object]]) */
1658 void VIRTUAL_coloring__POSetColorer__conflicts_cache_61d(val
* self
, val
* p0
) {
1659 short int var
/* : Bool */;
1662 const struct type
* type_struct
;
1663 const char* var_class_name
;
1664 { /* Inline coloring#POSetColorer#conflicts_cache= (self,p0) on <self:Object(POSetColorer[Object])> */
1665 /* Covariant cast for argument 0 (conflicts_cache) <p0:Map[Object, Set[Object]]> isa Map[E, Set[E]] */
1666 /* <p0:Map[Object, Set[Object]]> isa Map[E, Set[E]] */
1667 type_struct
= self
->type
->resolution_table
->types
[COLOR_abstract_collection__Mapcoloring__POSetColorer_FT0abstract_collection__Setcoloring__POSetColorer_FT0
];
1668 cltype
= type_struct
->color
;
1669 idtype
= type_struct
->id
;
1670 if(cltype
>= p0
->type
->table_size
) {
1673 var
= p0
->type
->type_table
[cltype
] == idtype
;
1675 if (unlikely(!var
)) {
1676 var_class_name
= p0
== NULL ?
"null" : p0
->type
->name
;
1677 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "Map[E, Set[E]]", var_class_name
);
1678 PRINT_ERROR(" (%s:%d)\n", "compiler/coloring.nit", 187);
1681 self
->attrs
[COLOR_coloring__POSetColorer___conflicts_cache
].val
= p0
; /* _conflicts_cache on <self:Object(POSetColorer[Object])> */
1686 /* method coloring#POSetColorer#graph for (self: POSetColorer[Object]): POSetConflictGraph[Object] */
1687 val
* coloring__POSetColorer__graph(val
* self
) {
1688 val
* var
/* : POSetConflictGraph[Object] */;
1689 val
* var1
/* : POSetConflictGraph[Object] */;
1690 var1
= self
->attrs
[COLOR_coloring__POSetColorer___graph
].val
; /* _graph on <self:POSetColorer[Object]> */
1691 if (unlikely(var1
== NULL
)) {
1692 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _graph");
1693 PRINT_ERROR(" (%s:%d)\n", "compiler/coloring.nit", 189);
1700 /* method coloring#POSetColorer#graph for (self: Object): POSetConflictGraph[Object] */
1701 val
* VIRTUAL_coloring__POSetColorer__graph(val
* self
) {
1702 val
* var
/* : POSetConflictGraph[Object] */;
1703 val
* var1
/* : POSetConflictGraph[Object] */;
1704 val
* var3
/* : POSetConflictGraph[Object] */;
1705 { /* Inline coloring#POSetColorer#graph (self) on <self:Object(POSetColorer[Object])> */
1706 var3
= self
->attrs
[COLOR_coloring__POSetColorer___graph
].val
; /* _graph on <self:Object(POSetColorer[Object])> */
1707 if (unlikely(var3
== NULL
)) {
1708 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _graph");
1709 PRINT_ERROR(" (%s:%d)\n", "compiler/coloring.nit", 189);
1719 /* method coloring#POSetColorer#graph= for (self: POSetColorer[Object], POSetConflictGraph[Object]) */
1720 void coloring__POSetColorer__graph_61d(val
* self
, val
* p0
) {
1721 short int var
/* : Bool */;
1724 const struct type
* type_struct
;
1725 const char* var_class_name
;
1726 /* Covariant cast for argument 0 (graph) <p0:POSetConflictGraph[Object]> isa POSetConflictGraph[E] */
1727 /* <p0:POSetConflictGraph[Object]> isa POSetConflictGraph[E] */
1728 type_struct
= self
->type
->resolution_table
->types
[COLOR_coloring__POSetConflictGraphcoloring__POSetColorer_FT0
];
1729 cltype
= type_struct
->color
;
1730 idtype
= type_struct
->id
;
1731 if(cltype
>= p0
->type
->table_size
) {
1734 var
= p0
->type
->type_table
[cltype
] == idtype
;
1736 if (unlikely(!var
)) {
1737 var_class_name
= p0
== NULL ?
"null" : p0
->type
->name
;
1738 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "POSetConflictGraph[E]", var_class_name
);
1739 PRINT_ERROR(" (%s:%d)\n", "compiler/coloring.nit", 189);
1742 self
->attrs
[COLOR_coloring__POSetColorer___graph
].val
= p0
; /* _graph on <self:POSetColorer[Object]> */
1745 /* method coloring#POSetColorer#graph= for (self: Object, POSetConflictGraph[Object]) */
1746 void VIRTUAL_coloring__POSetColorer__graph_61d(val
* self
, val
* p0
) {
1747 short int var
/* : Bool */;
1750 const struct type
* type_struct
;
1751 const char* var_class_name
;
1752 { /* Inline coloring#POSetColorer#graph= (self,p0) on <self:Object(POSetColorer[Object])> */
1753 /* Covariant cast for argument 0 (graph) <p0:POSetConflictGraph[Object]> isa POSetConflictGraph[E] */
1754 /* <p0:POSetConflictGraph[Object]> isa POSetConflictGraph[E] */
1755 type_struct
= self
->type
->resolution_table
->types
[COLOR_coloring__POSetConflictGraphcoloring__POSetColorer_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
;
1763 if (unlikely(!var
)) {
1764 var_class_name
= p0
== NULL ?
"null" : p0
->type
->name
;
1765 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "POSetConflictGraph[E]", var_class_name
);
1766 PRINT_ERROR(" (%s:%d)\n", "compiler/coloring.nit", 189);
1769 self
->attrs
[COLOR_coloring__POSetColorer___graph
].val
= p0
; /* _graph on <self:Object(POSetColorer[Object])> */
1774 /* method coloring#POSetColorer#colorize for (self: POSetColorer[Object], POSet[Object]) */
1775 void coloring__POSetColorer__colorize(val
* self
, val
* p0
) {
1776 short int var
/* : Bool */;
1779 const struct type
* type_struct
;
1780 const char* var_class_name
;
1781 val
* var_poset
/* var poset: POSet[Object] */;
1782 short int var2
/* : Bool */;
1785 const struct type
* type_struct5
;
1786 const char* var_class_name6
;
1787 val
* var7
/* : POSetConflictGraph[Object] */;
1788 short int var9
/* : Bool */;
1791 const struct type
* type_struct12
;
1792 const char* var_class_name13
;
1793 val
* var14
/* : POSetConflictGraph[Object] */;
1794 val
* var16
/* : POSetConflictGraph[Object] */;
1795 val
* var17
/* : HashMap[Object, Set[Object]] */;
1796 val
* var19
/* : HashMap[Object, Set[Object]] */;
1797 short int var21
/* : Bool */;
1800 const struct type
* type_struct24
;
1801 const char* var_class_name25
;
1802 short int var26
/* : Bool */;
1803 /* Covariant cast for argument 0 (poset) <p0:POSet[Object]> isa POSet[E] */
1804 /* <p0:POSet[Object]> isa POSet[E] */
1805 type_struct
= self
->type
->resolution_table
->types
[COLOR_poset__POSetcoloring__POSetColorer_FT0
];
1806 cltype
= type_struct
->color
;
1807 idtype
= type_struct
->id
;
1808 if(cltype
>= p0
->type
->table_size
) {
1811 var
= p0
->type
->type_table
[cltype
] == idtype
;
1813 if (unlikely(!var
)) {
1814 var_class_name
= p0
== NULL ?
"null" : p0
->type
->name
;
1815 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "POSet[E]", var_class_name
);
1816 PRINT_ERROR(" (%s:%d)\n", "compiler/coloring.nit", 191);
1821 { /* Inline coloring#POSetColorer#poset_cache= (self,var_poset) on <self:POSetColorer[Object]> */
1822 /* Covariant cast for argument 0 (poset_cache) <var_poset:POSet[Object]> isa POSet[E] */
1823 /* <var_poset:POSet[Object]> isa POSet[E] */
1824 type_struct5
= self
->type
->resolution_table
->types
[COLOR_poset__POSetcoloring__POSetColorer_FT0
];
1825 cltype3
= type_struct5
->color
;
1826 idtype4
= type_struct5
->id
;
1827 if(cltype3
>= var_poset
->type
->table_size
) {
1830 var2
= var_poset
->type
->type_table
[cltype3
] == idtype4
;
1832 if (unlikely(!var2
)) {
1833 var_class_name6
= var_poset
== NULL ?
"null" : var_poset
->type
->name
;
1834 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "POSet[E]", var_class_name6
);
1835 PRINT_ERROR(" (%s:%d)\n", "compiler/coloring.nit", 180);
1838 self
->attrs
[COLOR_coloring__POSetColorer___poset_cache
].val
= var_poset
; /* _poset_cache on <self:POSetColorer[Object]> */
1842 var7
= NEW_coloring__POSetConflictGraph(self
->type
->resolution_table
->types
[COLOR_coloring__POSetConflictGraphcoloring__POSetColorer_FT0
]);
1844 coloring__POSetConflictGraph__init(var7
, var_poset
); /* Direct call coloring#POSetConflictGraph#init on <var7:POSetConflictGraph[Object]>*/
1847 { /* Inline coloring#POSetColorer#graph= (self,var7) on <self:POSetColorer[Object]> */
1848 /* Covariant cast for argument 0 (graph) <var7:POSetConflictGraph[Object]> isa POSetConflictGraph[E] */
1849 /* <var7:POSetConflictGraph[Object]> isa POSetConflictGraph[E] */
1850 type_struct12
= self
->type
->resolution_table
->types
[COLOR_coloring__POSetConflictGraphcoloring__POSetColorer_FT0
];
1851 cltype10
= type_struct12
->color
;
1852 idtype11
= type_struct12
->id
;
1853 if(cltype10
>= var7
->type
->table_size
) {
1856 var9
= var7
->type
->type_table
[cltype10
] == idtype11
;
1858 if (unlikely(!var9
)) {
1859 var_class_name13
= var7
== NULL ?
"null" : var7
->type
->name
;
1860 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "POSetConflictGraph[E]", var_class_name13
);
1861 PRINT_ERROR(" (%s:%d)\n", "compiler/coloring.nit", 189);
1864 self
->attrs
[COLOR_coloring__POSetColorer___graph
].val
= var7
; /* _graph on <self:POSetColorer[Object]> */
1869 coloring__POSetColorer__allocate_ids(self
); /* Direct call coloring#POSetColorer#allocate_ids on <self:POSetColorer[Object]>*/
1872 coloring__POSetColorer__compute_colors(self
); /* Direct call coloring#POSetColorer#compute_colors on <self:POSetColorer[Object]>*/
1875 { /* Inline coloring#POSetColorer#graph (self) on <self:POSetColorer[Object]> */
1876 var16
= self
->attrs
[COLOR_coloring__POSetColorer___graph
].val
; /* _graph on <self:POSetColorer[Object]> */
1877 if (unlikely(var16
== NULL
)) {
1878 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _graph");
1879 PRINT_ERROR(" (%s:%d)\n", "compiler/coloring.nit", 189);
1883 RET_LABEL15
:(void)0;
1887 { /* Inline coloring#POSetConflictGraph#conflicts (var14) on <var14:POSetConflictGraph[Object]> */
1888 var19
= var14
->attrs
[COLOR_coloring__POSetConflictGraph___conflicts
].val
; /* _conflicts on <var14:POSetConflictGraph[Object]> */
1889 if (unlikely(var19
== NULL
)) {
1890 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _conflicts");
1891 PRINT_ERROR(" (%s:%d)\n", "compiler/coloring.nit", 40);
1895 RET_LABEL18
:(void)0;
1899 { /* Inline coloring#POSetColorer#conflicts_cache= (self,var17) on <self:POSetColorer[Object]> */
1900 /* Covariant cast for argument 0 (conflicts_cache) <var17:HashMap[Object, Set[Object]]> isa Map[E, Set[E]] */
1901 /* <var17:HashMap[Object, Set[Object]]> isa Map[E, Set[E]] */
1902 type_struct24
= self
->type
->resolution_table
->types
[COLOR_abstract_collection__Mapcoloring__POSetColorer_FT0abstract_collection__Setcoloring__POSetColorer_FT0
];
1903 cltype22
= type_struct24
->color
;
1904 idtype23
= type_struct24
->id
;
1905 if(cltype22
>= var17
->type
->table_size
) {
1908 var21
= var17
->type
->type_table
[cltype22
] == idtype23
;
1910 if (unlikely(!var21
)) {
1911 var_class_name25
= var17
== NULL ?
"null" : var17
->type
->name
;
1912 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "Map[E, Set[E]]", var_class_name25
);
1913 PRINT_ERROR(" (%s:%d)\n", "compiler/coloring.nit", 187);
1916 self
->attrs
[COLOR_coloring__POSetColorer___conflicts_cache
].val
= var17
; /* _conflicts_cache on <self:POSetColorer[Object]> */
1917 RET_LABEL20
:(void)0;
1922 { /* Inline coloring#POSetColorer#is_colored= (self,var26) on <self:POSetColorer[Object]> */
1923 self
->attrs
[COLOR_coloring__POSetColorer___is_colored
].s
= var26
; /* _is_colored on <self:POSetColorer[Object]> */
1924 RET_LABEL27
:(void)0;
1929 /* method coloring#POSetColorer#colorize for (self: Object, POSet[Object]) */
1930 void VIRTUAL_coloring__POSetColorer__colorize(val
* self
, val
* p0
) {
1931 coloring__POSetColorer__colorize(self
, p0
); /* Direct call coloring#POSetColorer#colorize on <self:Object(POSetColorer[Object])>*/
1934 /* method coloring#POSetColorer#allocate_ids for (self: POSetColorer[Object]) */
1935 void coloring__POSetColorer__allocate_ids(val
* self
) {
1936 val
* var
/* : HashMap[Object, Int] */;
1937 val
* var2
/* : HashMap[Object, Int] */;
1938 val
* var3
/* : HashSet[Object] */;
1939 val
* var4
/* : POSet[Object] */;
1940 val
* var6
/* : POSet[Object] */;
1941 val
* var7
/* : Array[nullable Object] */;
1942 val
* var_elements
/* var elements: HashSet[Object] */;
1943 val
* var8
/* : POSet[Object] */;
1944 val
* var10
/* : POSet[Object] */;
1945 val
* var11
/* : Array[Object] */;
1946 val
* var_
/* var : Array[Object] */;
1947 val
* var12
/* : ArrayIterator[nullable Object] */;
1948 val
* var_13
/* var : ArrayIterator[Object] */;
1949 short int var14
/* : Bool */;
1950 val
* var15
/* : nullable Object */;
1951 val
* var_e
/* var e: Object */;
1952 val
* var16
/* : HashMap[Object, Int] */;
1953 val
* var18
/* : HashMap[Object, Int] */;
1954 val
* var19
/* : HashMap[Object, Int] */;
1955 val
* var21
/* : HashMap[Object, Int] */;
1956 long var22
/* : Int */;
1957 val
* var23
/* : nullable Object */;
1959 { /* Inline coloring#POSetColorer#ids_cache (self) on <self:POSetColorer[Object]> */
1960 var2
= self
->attrs
[COLOR_coloring__POSetColorer___ids_cache
].val
; /* _ids_cache on <self:POSetColorer[Object]> */
1961 if (unlikely(var2
== NULL
)) {
1962 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _ids_cache");
1963 PRINT_ERROR(" (%s:%d)\n", "compiler/coloring.nit", 165);
1971 hash_collection__HashMap__clear(var
); /* Direct call hash_collection#HashMap#clear on <var:HashMap[Object, Int]>*/
1973 var3
= NEW_hash_collection__HashSet(self
->type
->resolution_table
->types
[COLOR_hash_collection__HashSetcoloring__POSetColorer_FT0
]);
1975 { /* Inline coloring#POSetColorer#poset_cache (self) on <self:POSetColorer[Object]> */
1976 var6
= self
->attrs
[COLOR_coloring__POSetColorer___poset_cache
].val
; /* _poset_cache on <self:POSetColorer[Object]> */
1977 if (unlikely(var6
== NULL
)) {
1978 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _poset_cache");
1979 PRINT_ERROR(" (%s:%d)\n", "compiler/coloring.nit", 180);
1987 var7
= array__Collection__to_a(var4
);
1990 hash_collection__HashSet__from(var3
, var7
); /* Direct call hash_collection#HashSet#from on <var3:HashSet[Object]>*/
1992 var_elements
= var3
;
1994 { /* Inline coloring#POSetColorer#poset_cache (self) on <self:POSetColorer[Object]> */
1995 var10
= self
->attrs
[COLOR_coloring__POSetColorer___poset_cache
].val
; /* _poset_cache on <self:POSetColorer[Object]> */
1996 if (unlikely(var10
== NULL
)) {
1997 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _poset_cache");
1998 PRINT_ERROR(" (%s:%d)\n", "compiler/coloring.nit", 180);
2006 var11
= poset__POSet__linearize(var8
, var_elements
);
2010 var12
= array__AbstractArrayRead__iterator(var_
);
2015 var14
= array__ArrayIterator__is_ok(var_13
);
2019 var15
= array__ArrayIterator__item(var_13
);
2023 { /* Inline coloring#POSetColorer#ids_cache (self) on <self:POSetColorer[Object]> */
2024 var18
= self
->attrs
[COLOR_coloring__POSetColorer___ids_cache
].val
; /* _ids_cache on <self:POSetColorer[Object]> */
2025 if (unlikely(var18
== NULL
)) {
2026 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _ids_cache");
2027 PRINT_ERROR(" (%s:%d)\n", "compiler/coloring.nit", 165);
2031 RET_LABEL17
:(void)0;
2035 { /* Inline coloring#POSetColorer#ids_cache (self) on <self:POSetColorer[Object]> */
2036 var21
= self
->attrs
[COLOR_coloring__POSetColorer___ids_cache
].val
; /* _ids_cache on <self:POSetColorer[Object]> */
2037 if (unlikely(var21
== NULL
)) {
2038 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _ids_cache");
2039 PRINT_ERROR(" (%s:%d)\n", "compiler/coloring.nit", 165);
2043 RET_LABEL20
:(void)0;
2047 var22
= hash_collection__HashMap__length(var19
);
2050 var23
= BOX_kernel__Int(var22
); /* autobox from Int to nullable Object */
2051 hash_collection__HashMap___91d_93d_61d(var16
, var_e
, var23
); /* Direct call hash_collection#HashMap#[]= on <var16:HashMap[Object, Int]>*/
2054 array__ArrayIterator__next(var_13
); /* Direct call array#ArrayIterator#next on <var_13:ArrayIterator[Object]>*/
2060 BREAK_label
: (void)0;
2062 { /* Inline abstract_collection#Iterator#finish (var_13) on <var_13:ArrayIterator[Object]> */
2063 RET_LABEL24
:(void)0;
2068 /* method coloring#POSetColorer#allocate_ids for (self: Object) */
2069 void VIRTUAL_coloring__POSetColorer__allocate_ids(val
* self
) {
2070 coloring__POSetColorer__allocate_ids(self
); /* Direct call coloring#POSetColorer#allocate_ids on <self:Object(POSetColorer[Object])>*/
2073 /* method coloring#POSetColorer#compute_colors for (self: POSetColorer[Object]) */
2074 void coloring__POSetColorer__compute_colors(val
* self
) {
2075 val
* var
/* : HashMap[Object, Int] */;
2076 val
* var2
/* : HashMap[Object, Int] */;
2077 val
* var3
/* : POSetConflictGraph[Object] */;
2078 val
* var5
/* : POSetConflictGraph[Object] */;
2079 val
* var6
/* : HashSet[Object] */;
2080 val
* var8
/* : HashSet[Object] */;
2081 val
* var9
/* : POSetConflictGraph[Object] */;
2082 val
* var11
/* : POSetConflictGraph[Object] */;
2083 val
* var12
/* : HashSet[Object] */;
2084 val
* var14
/* : HashSet[Object] */;
2086 { /* Inline coloring#POSetColorer#colors_cache (self) on <self:POSetColorer[Object]> */
2087 var2
= self
->attrs
[COLOR_coloring__POSetColorer___colors_cache
].val
; /* _colors_cache on <self:POSetColorer[Object]> */
2088 if (unlikely(var2
== NULL
)) {
2089 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _colors_cache");
2090 PRINT_ERROR(" (%s:%d)\n", "compiler/coloring.nit", 173);
2098 hash_collection__HashMap__clear(var
); /* Direct call hash_collection#HashMap#clear on <var:HashMap[Object, Int]>*/
2101 coloring__POSetColorer__colorize_core(self
); /* Direct call coloring#POSetColorer#colorize_core on <self:POSetColorer[Object]>*/
2104 { /* Inline coloring#POSetColorer#graph (self) on <self:POSetColorer[Object]> */
2105 var5
= self
->attrs
[COLOR_coloring__POSetColorer___graph
].val
; /* _graph on <self:POSetColorer[Object]> */
2106 if (unlikely(var5
== NULL
)) {
2107 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _graph");
2108 PRINT_ERROR(" (%s:%d)\n", "compiler/coloring.nit", 189);
2116 { /* Inline coloring#POSetConflictGraph#border (var3) on <var3:POSetConflictGraph[Object]> */
2117 var8
= var3
->attrs
[COLOR_coloring__POSetConflictGraph___border
].val
; /* _border on <var3:POSetConflictGraph[Object]> */
2118 if (unlikely(var8
== NULL
)) {
2119 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _border");
2120 PRINT_ERROR(" (%s:%d)\n", "compiler/coloring.nit", 28);
2128 coloring__POSetColorer__colorize_set(self
, var6
); /* Direct call coloring#POSetColorer#colorize_set on <self:POSetColorer[Object]>*/
2131 { /* Inline coloring#POSetColorer#graph (self) on <self:POSetColorer[Object]> */
2132 var11
= self
->attrs
[COLOR_coloring__POSetColorer___graph
].val
; /* _graph on <self:POSetColorer[Object]> */
2133 if (unlikely(var11
== NULL
)) {
2134 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _graph");
2135 PRINT_ERROR(" (%s:%d)\n", "compiler/coloring.nit", 189);
2139 RET_LABEL10
:(void)0;
2143 { /* Inline coloring#POSetConflictGraph#crown (var9) on <var9:POSetConflictGraph[Object]> */
2144 var14
= var9
->attrs
[COLOR_coloring__POSetConflictGraph___crown
].val
; /* _crown on <var9:POSetConflictGraph[Object]> */
2145 if (unlikely(var14
== NULL
)) {
2146 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _crown");
2147 PRINT_ERROR(" (%s:%d)\n", "compiler/coloring.nit", 34);
2151 RET_LABEL13
:(void)0;
2155 coloring__POSetColorer__colorize_set(self
, var12
); /* Direct call coloring#POSetColorer#colorize_set on <self:POSetColorer[Object]>*/
2159 /* method coloring#POSetColorer#compute_colors for (self: Object) */
2160 void VIRTUAL_coloring__POSetColorer__compute_colors(val
* self
) {
2161 coloring__POSetColorer__compute_colors(self
); /* Direct call coloring#POSetColorer#compute_colors on <self:Object(POSetColorer[Object])>*/
2164 /* method coloring#POSetColorer#colorize_core for (self: POSetColorer[Object]) */
2165 void coloring__POSetColorer__colorize_core(val
* self
) {
2166 val
* var
/* : POSet[Object] */;
2167 val
* var2
/* : POSet[Object] */;
2168 val
* var3
/* : POSetConflictGraph[Object] */;
2169 val
* var5
/* : POSetConflictGraph[Object] */;
2170 val
* var6
/* : HashSet[Object] */;
2171 val
* var8
/* : HashSet[Object] */;
2172 val
* var9
/* : Array[Object] */;
2173 val
* var_
/* var : Array[Object] */;
2174 val
* var10
/* : ArrayIterator[nullable Object] */;
2175 val
* var_11
/* var : ArrayIterator[Object] */;
2176 short int var12
/* : Bool */;
2177 val
* var13
/* : nullable Object */;
2178 val
* var_e
/* var e: Object */;
2179 long var14
/* : Int */;
2180 long var_color
/* var color: Int */;
2181 val
* var15
/* : POSetConflictGraph[Object] */;
2182 val
* var17
/* : POSetConflictGraph[Object] */;
2183 val
* var18
/* : HashMap[Object, Set[Object]] */;
2184 val
* var20
/* : HashMap[Object, Set[Object]] */;
2185 val
* var21
/* : nullable Object */;
2186 val
* var_conflicts
/* var conflicts: Set[Object] */;
2187 short int var22
/* : Bool */;
2188 short int var23
/* : Bool */;
2189 long var24
/* : Int */;
2190 long var25
/* : Int */;
2191 short int var27
/* : Bool */;
2194 const char* var_class_name
;
2195 long var28
/* : Int */;
2196 val
* var29
/* : HashMap[Object, Int] */;
2197 val
* var31
/* : HashMap[Object, Int] */;
2198 val
* var32
/* : nullable Object */;
2200 { /* Inline coloring#POSetColorer#poset_cache (self) on <self:POSetColorer[Object]> */
2201 var2
= self
->attrs
[COLOR_coloring__POSetColorer___poset_cache
].val
; /* _poset_cache on <self:POSetColorer[Object]> */
2202 if (unlikely(var2
== NULL
)) {
2203 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _poset_cache");
2204 PRINT_ERROR(" (%s:%d)\n", "compiler/coloring.nit", 180);
2212 { /* Inline coloring#POSetColorer#graph (self) on <self:POSetColorer[Object]> */
2213 var5
= self
->attrs
[COLOR_coloring__POSetColorer___graph
].val
; /* _graph on <self:POSetColorer[Object]> */
2214 if (unlikely(var5
== NULL
)) {
2215 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _graph");
2216 PRINT_ERROR(" (%s:%d)\n", "compiler/coloring.nit", 189);
2224 { /* Inline coloring#POSetConflictGraph#core (var3) on <var3:POSetConflictGraph[Object]> */
2225 var8
= var3
->attrs
[COLOR_coloring__POSetConflictGraph___core
].val
; /* _core on <var3:POSetConflictGraph[Object]> */
2226 if (unlikely(var8
== NULL
)) {
2227 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _core");
2228 PRINT_ERROR(" (%s:%d)\n", "compiler/coloring.nit", 22);
2236 var9
= poset__POSet__linearize(var
, var6
);
2240 var10
= array__AbstractArrayRead__iterator(var_
);
2245 var12
= array__ArrayIterator__is_ok(var_11
);
2249 var13
= array__ArrayIterator__item(var_11
);
2253 var14
= coloring__POSetColorer__min_color(self
, var_e
);
2257 { /* Inline coloring#POSetColorer#graph (self) on <self:POSetColorer[Object]> */
2258 var17
= self
->attrs
[COLOR_coloring__POSetColorer___graph
].val
; /* _graph on <self:POSetColorer[Object]> */
2259 if (unlikely(var17
== NULL
)) {
2260 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _graph");
2261 PRINT_ERROR(" (%s:%d)\n", "compiler/coloring.nit", 189);
2265 RET_LABEL16
:(void)0;
2269 { /* Inline coloring#POSetConflictGraph#conflicts (var15) on <var15:POSetConflictGraph[Object]> */
2270 var20
= var15
->attrs
[COLOR_coloring__POSetConflictGraph___conflicts
].val
; /* _conflicts on <var15:POSetConflictGraph[Object]> */
2271 if (unlikely(var20
== NULL
)) {
2272 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _conflicts");
2273 PRINT_ERROR(" (%s:%d)\n", "compiler/coloring.nit", 40);
2277 RET_LABEL19
:(void)0;
2281 var21
= hash_collection__HashMap___91d_93d(var18
, var_e
);
2283 var_conflicts
= var21
;
2286 var22
= coloring__POSetColorer__is_color_free(self
, var_color
, var_conflicts
);
2292 { /* Inline kernel#Int#+ (var_color,var24) on <var_color:Int> */
2293 /* Covariant cast for argument 0 (i) <var24:Int> isa OTHER */
2294 /* <var24:Int> isa OTHER */
2295 var27
= 1; /* easy <var24:Int> isa OTHER*/
2296 if (unlikely(!var27
)) {
2297 var_class_name
= type_kernel__Int
.name
;
2298 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name
);
2299 PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 374);
2302 var28
= var_color
+ var24
;
2305 RET_LABEL26
:(void)0;
2313 BREAK_label
: (void)0;
2315 { /* Inline coloring#POSetColorer#colors_cache (self) on <self:POSetColorer[Object]> */
2316 var31
= self
->attrs
[COLOR_coloring__POSetColorer___colors_cache
].val
; /* _colors_cache on <self:POSetColorer[Object]> */
2317 if (unlikely(var31
== NULL
)) {
2318 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _colors_cache");
2319 PRINT_ERROR(" (%s:%d)\n", "compiler/coloring.nit", 173);
2323 RET_LABEL30
:(void)0;
2327 var32
= BOX_kernel__Int(var_color
); /* autobox from Int to nullable Object */
2328 hash_collection__HashMap___91d_93d_61d(var29
, var_e
, var32
); /* Direct call hash_collection#HashMap#[]= on <var29:HashMap[Object, Int]>*/
2331 array__ArrayIterator__next(var_11
); /* Direct call array#ArrayIterator#next on <var_11:ArrayIterator[Object]>*/
2337 BREAK_label33
: (void)0;
2339 { /* Inline abstract_collection#Iterator#finish (var_11) on <var_11:ArrayIterator[Object]> */
2340 RET_LABEL34
:(void)0;
2345 /* method coloring#POSetColorer#colorize_core for (self: Object) */
2346 void VIRTUAL_coloring__POSetColorer__colorize_core(val
* self
) {
2347 coloring__POSetColorer__colorize_core(self
); /* Direct call coloring#POSetColorer#colorize_core on <self:Object(POSetColorer[Object])>*/
2350 /* method coloring#POSetColorer#colorize_set for (self: POSetColorer[Object], Set[Object]) */
2351 void coloring__POSetColorer__colorize_set(val
* self
, val
* p0
) {
2352 short int var
/* : Bool */;
2355 const struct type
* type_struct
;
2356 const char* var_class_name
;
2357 val
* var_set
/* var set: Set[Object] */;
2358 val
* var1
/* : POSet[Object] */;
2359 val
* var3
/* : POSet[Object] */;
2360 val
* var4
/* : Array[Object] */;
2361 val
* var_
/* var : Array[Object] */;
2362 val
* var5
/* : ArrayIterator[nullable Object] */;
2363 val
* var_6
/* var : ArrayIterator[Object] */;
2364 short int var7
/* : Bool */;
2365 val
* var8
/* : nullable Object */;
2366 val
* var_e
/* var e: Object */;
2367 val
* var9
/* : HashMap[Object, Int] */;
2368 val
* var11
/* : HashMap[Object, Int] */;
2369 long var12
/* : Int */;
2370 val
* var13
/* : nullable Object */;
2371 /* Covariant cast for argument 0 (set) <p0:Set[Object]> isa Set[E] */
2372 /* <p0:Set[Object]> isa Set[E] */
2373 type_struct
= self
->type
->resolution_table
->types
[COLOR_abstract_collection__Setcoloring__POSetColorer_FT0
];
2374 cltype
= type_struct
->color
;
2375 idtype
= type_struct
->id
;
2376 if(cltype
>= p0
->type
->table_size
) {
2379 var
= p0
->type
->type_table
[cltype
] == idtype
;
2381 if (unlikely(!var
)) {
2382 var_class_name
= p0
== NULL ?
"null" : p0
->type
->name
;
2383 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "Set[E]", var_class_name
);
2384 PRINT_ERROR(" (%s:%d)\n", "compiler/coloring.nit", 231);
2389 { /* Inline coloring#POSetColorer#poset_cache (self) on <self:POSetColorer[Object]> */
2390 var3
= self
->attrs
[COLOR_coloring__POSetColorer___poset_cache
].val
; /* _poset_cache on <self:POSetColorer[Object]> */
2391 if (unlikely(var3
== NULL
)) {
2392 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _poset_cache");
2393 PRINT_ERROR(" (%s:%d)\n", "compiler/coloring.nit", 180);
2401 var4
= poset__POSet__linearize(var1
, var_set
);
2405 var5
= array__AbstractArrayRead__iterator(var_
);
2410 var7
= array__ArrayIterator__is_ok(var_6
);
2414 var8
= array__ArrayIterator__item(var_6
);
2418 { /* Inline coloring#POSetColorer#colors_cache (self) on <self:POSetColorer[Object]> */
2419 var11
= self
->attrs
[COLOR_coloring__POSetColorer___colors_cache
].val
; /* _colors_cache on <self:POSetColorer[Object]> */
2420 if (unlikely(var11
== NULL
)) {
2421 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _colors_cache");
2422 PRINT_ERROR(" (%s:%d)\n", "compiler/coloring.nit", 173);
2426 RET_LABEL10
:(void)0;
2430 var12
= coloring__POSetColorer__min_color(self
, var_e
);
2433 var13
= BOX_kernel__Int(var12
); /* autobox from Int to nullable Object */
2434 hash_collection__HashMap___91d_93d_61d(var9
, var_e
, var13
); /* Direct call hash_collection#HashMap#[]= on <var9:HashMap[Object, Int]>*/
2437 array__ArrayIterator__next(var_6
); /* Direct call array#ArrayIterator#next on <var_6:ArrayIterator[Object]>*/
2443 BREAK_label
: (void)0;
2445 { /* Inline abstract_collection#Iterator#finish (var_6) on <var_6:ArrayIterator[Object]> */
2446 RET_LABEL14
:(void)0;
2451 /* method coloring#POSetColorer#colorize_set for (self: Object, Set[Object]) */
2452 void VIRTUAL_coloring__POSetColorer__colorize_set(val
* self
, val
* p0
) {
2453 coloring__POSetColorer__colorize_set(self
, p0
); /* Direct call coloring#POSetColorer#colorize_set on <self:Object(POSetColorer[Object])>*/
2456 /* method coloring#POSetColorer#min_color for (self: POSetColorer[Object], Object): Int */
2457 long coloring__POSetColorer__min_color(val
* self
, val
* p0
) {
2458 long var
/* : Int */;
2459 short int var1
/* : Bool */;
2462 const struct type
* type_struct
;
2463 const char* var_class_name
;
2464 val
* var_e
/* var e: Object */;
2465 long var2
/* : Int */;
2466 long var3
/* : Int */;
2467 long var5
/* : Int */;
2468 long var_max_color
/* var max_color: Int */;
2469 val
* var6
/* : POSet[Object] */;
2470 val
* var8
/* : POSet[Object] */;
2471 val
* var9
/* : POSetElement[Object] */;
2472 val
* var10
/* : Collection[Object] */;
2473 val
* var_
/* var : Collection[Object] */;
2474 val
* var11
/* : Iterator[nullable Object] */;
2475 val
* var_12
/* var : Iterator[Object] */;
2476 short int var13
/* : Bool */;
2477 val
* var14
/* : nullable Object */;
2478 val
* var_p
/* var p: Object */;
2479 val
* var15
/* : HashMap[Object, Int] */;
2480 val
* var17
/* : HashMap[Object, Int] */;
2481 short int var18
/* : Bool */;
2482 short int var19
/* : Bool */;
2483 val
* var20
/* : HashMap[Object, Int] */;
2484 val
* var22
/* : HashMap[Object, Int] */;
2485 val
* var23
/* : nullable Object */;
2486 long var24
/* : Int */;
2487 long var_color
/* var color: Int */;
2488 short int var25
/* : Bool */;
2489 short int var27
/* : Bool */;
2492 const char* var_class_name30
;
2493 short int var31
/* : Bool */;
2494 long var34
/* : Int */;
2495 long var35
/* : Int */;
2496 short int var37
/* : Bool */;
2499 const char* var_class_name40
;
2500 long var41
/* : Int */;
2501 /* Covariant cast for argument 0 (e) <p0:Object> isa E */
2502 /* <p0:Object> isa E */
2503 type_struct
= self
->type
->resolution_table
->types
[COLOR_coloring__POSetColorer_FT0
];
2504 cltype
= type_struct
->color
;
2505 idtype
= type_struct
->id
;
2506 if(cltype
>= p0
->type
->table_size
) {
2509 var1
= p0
->type
->type_table
[cltype
] == idtype
;
2511 if (unlikely(!var1
)) {
2512 var_class_name
= p0
== NULL ?
"null" : p0
->type
->name
;
2513 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "E", var_class_name
);
2514 PRINT_ERROR(" (%s:%d)\n", "compiler/coloring.nit", 236);
2520 { /* Inline kernel#Int#unary - (var2) on <var2:Int> */
2527 var_max_color
= var3
;
2529 { /* Inline coloring#POSetColorer#poset_cache (self) on <self:POSetColorer[Object]> */
2530 var8
= self
->attrs
[COLOR_coloring__POSetColorer___poset_cache
].val
; /* _poset_cache on <self:POSetColorer[Object]> */
2531 if (unlikely(var8
== NULL
)) {
2532 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _poset_cache");
2533 PRINT_ERROR(" (%s:%d)\n", "compiler/coloring.nit", 180);
2541 var9
= poset__POSet___91d_93d(var6
, var_e
);
2544 var10
= poset__POSetElement__direct_greaters(var9
);
2548 var11
= ((val
* (*)(val
*))(var_
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var_
) /* iterator on <var_:Collection[Object]>*/;
2553 var13
= ((short int (*)(val
*))(var_12
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var_12
) /* is_ok on <var_12:Iterator[Object]>*/;
2557 var14
= ((val
* (*)(val
*))(var_12
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var_12
) /* item on <var_12:Iterator[Object]>*/;
2561 { /* Inline coloring#POSetColorer#colors_cache (self) on <self:POSetColorer[Object]> */
2562 var17
= self
->attrs
[COLOR_coloring__POSetColorer___colors_cache
].val
; /* _colors_cache on <self:POSetColorer[Object]> */
2563 if (unlikely(var17
== NULL
)) {
2564 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _colors_cache");
2565 PRINT_ERROR(" (%s:%d)\n", "compiler/coloring.nit", 173);
2569 RET_LABEL16
:(void)0;
2573 var18
= abstract_collection__MapRead__has_key(var15
, var_p
);
2581 { /* Inline coloring#POSetColorer#colors_cache (self) on <self:POSetColorer[Object]> */
2582 var22
= self
->attrs
[COLOR_coloring__POSetColorer___colors_cache
].val
; /* _colors_cache on <self:POSetColorer[Object]> */
2583 if (unlikely(var22
== NULL
)) {
2584 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _colors_cache");
2585 PRINT_ERROR(" (%s:%d)\n", "compiler/coloring.nit", 173);
2589 RET_LABEL21
:(void)0;
2593 var23
= hash_collection__HashMap___91d_93d(var20
, var_p
);
2595 var24
= ((struct instance_kernel__Int
*)var23
)->value
; /* autounbox from nullable Object to Int */;
2598 { /* Inline kernel#Int#> (var_color,var_max_color) on <var_color:Int> */
2599 /* Covariant cast for argument 0 (i) <var_max_color:Int> isa OTHER */
2600 /* <var_max_color:Int> isa OTHER */
2601 var27
= 1; /* easy <var_max_color:Int> isa OTHER*/
2602 if (unlikely(!var27
)) {
2603 var_class_name30
= type_kernel__Int
.name
;
2604 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name30
);
2605 PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 373);
2608 var31
= var_color
> var_max_color
;
2611 RET_LABEL26
:(void)0;
2615 var_max_color
= var_color
;
2618 BREAK_label
: (void)0;
2620 ((void (*)(val
*))(var_12
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var_12
) /* next on <var_12:Iterator[Object]>*/;
2626 BREAK_label32
: (void)0;
2628 { /* Inline abstract_collection#Iterator#finish (var_12) on <var_12:Iterator[Object]> */
2629 RET_LABEL33
:(void)0;
2634 { /* Inline kernel#Int#+ (var_max_color,var34) on <var_max_color:Int> */
2635 /* Covariant cast for argument 0 (i) <var34:Int> isa OTHER */
2636 /* <var34:Int> isa OTHER */
2637 var37
= 1; /* easy <var34:Int> isa OTHER*/
2638 if (unlikely(!var37
)) {
2639 var_class_name40
= type_kernel__Int
.name
;
2640 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name40
);
2641 PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 374);
2644 var41
= var_max_color
+ var34
;
2647 RET_LABEL36
:(void)0;
2655 /* method coloring#POSetColorer#min_color for (self: Object, Object): Int */
2656 long VIRTUAL_coloring__POSetColorer__min_color(val
* self
, val
* p0
) {
2657 long var
/* : Int */;
2658 long var1
/* : Int */;
2659 var1
= coloring__POSetColorer__min_color(self
, p0
);
2664 /* method coloring#POSetColorer#is_color_free for (self: POSetColorer[Object], Int, Collection[Object]): Bool */
2665 short int coloring__POSetColorer__is_color_free(val
* self
, long p0
, val
* p1
) {
2666 short int var
/* : Bool */;
2667 short int var1
/* : Bool */;
2670 const struct type
* type_struct
;
2671 const char* var_class_name
;
2672 long var_color
/* var color: Int */;
2673 val
* var_set
/* var set: Collection[Object] */;
2674 val
* var_
/* var : Collection[Object] */;
2675 val
* var2
/* : Iterator[nullable Object] */;
2676 val
* var_3
/* var : Iterator[Object] */;
2677 short int var4
/* : Bool */;
2678 val
* var5
/* : nullable Object */;
2679 val
* var_e
/* var e: Object */;
2680 short int var6
/* : Bool */;
2681 val
* var7
/* : HashMap[Object, Int] */;
2682 val
* var9
/* : HashMap[Object, Int] */;
2683 short int var10
/* : Bool */;
2684 short int var_11
/* var : Bool */;
2685 val
* var12
/* : HashMap[Object, Int] */;
2686 val
* var14
/* : HashMap[Object, Int] */;
2687 val
* var15
/* : nullable Object */;
2688 short int var16
/* : Bool */;
2689 short int var17
/* : Bool */;
2690 short int var19
/* : Bool */;
2691 long var20
/* : Int */;
2692 short int var21
/* : Bool */;
2693 short int var23
/* : Bool */;
2694 /* Covariant cast for argument 1 (set) <p1:Collection[Object]> isa Collection[E] */
2695 /* <p1:Collection[Object]> isa Collection[E] */
2696 type_struct
= self
->type
->resolution_table
->types
[COLOR_abstract_collection__Collectioncoloring__POSetColorer_FT0
];
2697 cltype
= type_struct
->color
;
2698 idtype
= type_struct
->id
;
2699 if(cltype
>= p1
->type
->table_size
) {
2702 var1
= p1
->type
->type_table
[cltype
] == idtype
;
2704 if (unlikely(!var1
)) {
2705 var_class_name
= p1
== NULL ?
"null" : p1
->type
->name
;
2706 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "Collection[E]", var_class_name
);
2707 PRINT_ERROR(" (%s:%d)\n", "compiler/coloring.nit", 247);
2714 var2
= ((val
* (*)(val
*))(var_
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var_
) /* iterator on <var_:Collection[Object]>*/;
2719 var4
= ((short int (*)(val
*))(var_3
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var_3
) /* is_ok on <var_3:Iterator[Object]>*/;
2723 var5
= ((val
* (*)(val
*))(var_3
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var_3
) /* item on <var_3:Iterator[Object]>*/;
2727 { /* Inline coloring#POSetColorer#colors_cache (self) on <self:POSetColorer[Object]> */
2728 var9
= self
->attrs
[COLOR_coloring__POSetColorer___colors_cache
].val
; /* _colors_cache on <self:POSetColorer[Object]> */
2729 if (unlikely(var9
== NULL
)) {
2730 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _colors_cache");
2731 PRINT_ERROR(" (%s:%d)\n", "compiler/coloring.nit", 173);
2739 var10
= abstract_collection__MapRead__has_key(var7
, var_e
);
2744 { /* Inline coloring#POSetColorer#colors_cache (self) on <self:POSetColorer[Object]> */
2745 var14
= self
->attrs
[COLOR_coloring__POSetColorer___colors_cache
].val
; /* _colors_cache on <self:POSetColorer[Object]> */
2746 if (unlikely(var14
== NULL
)) {
2747 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _colors_cache");
2748 PRINT_ERROR(" (%s:%d)\n", "compiler/coloring.nit", 173);
2752 RET_LABEL13
:(void)0;
2756 var15
= hash_collection__HashMap___91d_93d(var12
, var_e
);
2759 { /* Inline kernel#Int#== (var15,var_color) on <var15:nullable Object(Int)> */
2760 var19
= (var15
!= NULL
) && (var15
->class == &class_kernel__Int
);
2762 var20
= ((struct instance_kernel__Int
*)var15
)->value
; /* autounbox from nullable Object to Int */;
2763 var19
= (var20
== var_color
);
2767 RET_LABEL18
:(void)0;
2782 ((void (*)(val
*))(var_3
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var_3
) /* next on <var_3:Iterator[Object]>*/;
2788 BREAK_label
: (void)0;
2790 { /* Inline abstract_collection#Iterator#finish (var_3) on <var_3:Iterator[Object]> */
2791 RET_LABEL22
:(void)0;
2800 /* method coloring#POSetColorer#is_color_free for (self: Object, Int, Collection[Object]): Bool */
2801 short int VIRTUAL_coloring__POSetColorer__is_color_free(val
* self
, long p0
, val
* p1
) {
2802 short int var
/* : Bool */;
2803 short int var1
/* : Bool */;
2804 var1
= coloring__POSetColorer__is_color_free(self
, p0
, p1
);
2809 /* method coloring#BucketsColorer#colors for (self: BucketsColorer[Object, Object]): HashMap[Object, Int] */
2810 val
* coloring__BucketsColorer__colors(val
* self
) {
2811 val
* var
/* : HashMap[Object, Int] */;
2812 val
* var1
/* : HashMap[Object, Int] */;
2813 var1
= self
->attrs
[COLOR_coloring__BucketsColorer___colors
].val
; /* _colors on <self:BucketsColorer[Object, Object]> */
2814 if (unlikely(var1
== NULL
)) {
2815 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _colors");
2816 PRINT_ERROR(" (%s:%d)\n", "compiler/coloring.nit", 279);
2823 /* method coloring#BucketsColorer#colors for (self: Object): HashMap[Object, Int] */
2824 val
* VIRTUAL_coloring__BucketsColorer__colors(val
* self
) {
2825 val
* var
/* : HashMap[Object, Int] */;
2826 val
* var1
/* : HashMap[Object, Int] */;
2827 val
* var3
/* : HashMap[Object, Int] */;
2828 { /* Inline coloring#BucketsColorer#colors (self) on <self:Object(BucketsColorer[Object, Object])> */
2829 var3
= self
->attrs
[COLOR_coloring__BucketsColorer___colors
].val
; /* _colors on <self:Object(BucketsColorer[Object, Object])> */
2830 if (unlikely(var3
== NULL
)) {
2831 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _colors");
2832 PRINT_ERROR(" (%s:%d)\n", "compiler/coloring.nit", 279);
2842 /* method coloring#BucketsColorer#conflicts for (self: BucketsColorer[Object, Object]): HashMap[Object, Set[Object]] */
2843 val
* coloring__BucketsColorer__conflicts(val
* self
) {
2844 val
* var
/* : HashMap[Object, Set[Object]] */;
2845 val
* var1
/* : HashMap[Object, Set[Object]] */;
2846 var1
= self
->attrs
[COLOR_coloring__BucketsColorer___conflicts
].val
; /* _conflicts on <self:BucketsColorer[Object, Object]> */
2847 if (unlikely(var1
== NULL
)) {
2848 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _conflicts");
2849 PRINT_ERROR(" (%s:%d)\n", "compiler/coloring.nit", 280);
2856 /* method coloring#BucketsColorer#conflicts for (self: Object): HashMap[Object, Set[Object]] */
2857 val
* VIRTUAL_coloring__BucketsColorer__conflicts(val
* self
) {
2858 val
* var
/* : HashMap[Object, Set[Object]] */;
2859 val
* var1
/* : HashMap[Object, Set[Object]] */;
2860 val
* var3
/* : HashMap[Object, Set[Object]] */;
2861 { /* Inline coloring#BucketsColorer#conflicts (self) on <self:Object(BucketsColorer[Object, Object])> */
2862 var3
= self
->attrs
[COLOR_coloring__BucketsColorer___conflicts
].val
; /* _conflicts on <self:Object(BucketsColorer[Object, Object])> */
2863 if (unlikely(var3
== NULL
)) {
2864 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _conflicts");
2865 PRINT_ERROR(" (%s:%d)\n", "compiler/coloring.nit", 280);
2875 /* method coloring#BucketsColorer#colorize for (self: BucketsColorer[Object, Object], Map[Object, Set[Object]]): Map[Object, Int] */
2876 val
* coloring__BucketsColorer__colorize(val
* self
, val
* p0
) {
2877 val
* var
/* : Map[Object, Int] */;
2878 short int var1
/* : Bool */;
2881 const struct type
* type_struct
;
2882 const char* var_class_name
;
2883 val
* var_buckets
/* var buckets: Map[Object, Set[Object]] */;
2884 long var2
/* : Int */;
2885 long var_min_color
/* var min_color: Int */;
2886 val
* var_
/* var : Map[Object, Set[Object]] */;
2887 val
* var3
/* : MapIterator[Object, nullable Object] */;
2888 val
* var_4
/* var : MapIterator[Object, Set[Object]] */;
2889 short int var5
/* : Bool */;
2890 val
* var6
/* : Object */;
2891 val
* var_holder
/* var holder: Object */;
2892 val
* var7
/* : nullable Object */;
2893 val
* var_hbuckets
/* var hbuckets: Set[Object] */;
2894 val
* var_8
/* var : Set[Object] */;
2895 val
* var9
/* : Iterator[nullable Object] */;
2896 val
* var_10
/* var : Iterator[Object] */;
2897 short int var11
/* : Bool */;
2898 val
* var12
/* : nullable Object */;
2899 val
* var_bucket
/* var bucket: Object */;
2900 val
* var13
/* : HashMap[Object, Int] */;
2901 val
* var15
/* : HashMap[Object, Int] */;
2902 short int var16
/* : Bool */;
2903 long var_color
/* var color: Int */;
2904 short int var17
/* : Bool */;
2905 short int var18
/* : Bool */;
2906 long var19
/* : Int */;
2907 long var20
/* : Int */;
2908 short int var22
/* : Bool */;
2911 const char* var_class_name25
;
2912 long var26
/* : Int */;
2913 val
* var28
/* : HashMap[Object, Int] */;
2914 val
* var30
/* : HashMap[Object, Int] */;
2915 val
* var31
/* : nullable Object */;
2916 val
* var36
/* : HashMap[Object, Int] */;
2917 val
* var38
/* : HashMap[Object, Int] */;
2918 /* Covariant cast for argument 0 (buckets) <p0:Map[Object, Set[Object]]> isa Map[H, Set[E]] */
2919 /* <p0:Map[Object, Set[Object]]> isa Map[H, Set[E]] */
2920 type_struct
= self
->type
->resolution_table
->types
[COLOR_abstract_collection__Mapcoloring__BucketsColorer_FT0abstract_collection__Setcoloring__BucketsColorer_FT1
];
2921 cltype
= type_struct
->color
;
2922 idtype
= type_struct
->id
;
2923 if(cltype
>= p0
->type
->table_size
) {
2926 var1
= p0
->type
->type_table
[cltype
] == idtype
;
2928 if (unlikely(!var1
)) {
2929 var_class_name
= p0
== NULL ?
"null" : p0
->type
->name
;
2930 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "Map[H, Set[E]]", var_class_name
);
2931 PRINT_ERROR(" (%s:%d)\n", "compiler/coloring.nit", 282);
2936 coloring__BucketsColorer__compute_conflicts(self
, var_buckets
); /* Direct call coloring#BucketsColorer#compute_conflicts on <self:BucketsColorer[Object, Object]>*/
2939 var_min_color
= var2
;
2942 var3
= ((val
* (*)(val
*))(var_
->class->vft
[COLOR_abstract_collection__MapRead__iterator
]))(var_
) /* iterator on <var_:Map[Object, Set[Object]]>*/;
2947 var5
= ((short int (*)(val
*))(var_4
->class->vft
[COLOR_abstract_collection__MapIterator__is_ok
]))(var_4
) /* is_ok on <var_4:MapIterator[Object, Set[Object]]>*/;
2951 var6
= ((val
* (*)(val
*))(var_4
->class->vft
[COLOR_abstract_collection__MapIterator__key
]))(var_4
) /* key on <var_4:MapIterator[Object, Set[Object]]>*/;
2955 var7
= ((val
* (*)(val
*))(var_4
->class->vft
[COLOR_abstract_collection__MapIterator__item
]))(var_4
) /* item on <var_4:MapIterator[Object, Set[Object]]>*/;
2957 var_hbuckets
= var7
;
2958 var_8
= var_hbuckets
;
2960 var9
= ((val
* (*)(val
*))(var_8
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var_8
) /* iterator on <var_8:Set[Object]>*/;
2965 var11
= ((short int (*)(val
*))(var_10
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var_10
) /* is_ok on <var_10:Iterator[Object]>*/;
2969 var12
= ((val
* (*)(val
*))(var_10
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var_10
) /* item on <var_10:Iterator[Object]>*/;
2973 { /* Inline coloring#BucketsColorer#colors (self) on <self:BucketsColorer[Object, Object]> */
2974 var15
= self
->attrs
[COLOR_coloring__BucketsColorer___colors
].val
; /* _colors on <self:BucketsColorer[Object, Object]> */
2975 if (unlikely(var15
== NULL
)) {
2976 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _colors");
2977 PRINT_ERROR(" (%s:%d)\n", "compiler/coloring.nit", 279);
2981 RET_LABEL14
:(void)0;
2985 var16
= abstract_collection__MapRead__has_key(var13
, var_bucket
);
2991 var_color
= var_min_color
;
2994 var17
= coloring__BucketsColorer__is_color_free(self
, var_bucket
, var_color
);
3000 { /* Inline kernel#Int#+ (var_color,var19) on <var_color:Int> */
3001 /* Covariant cast for argument 0 (i) <var19:Int> isa OTHER */
3002 /* <var19:Int> isa OTHER */
3003 var22
= 1; /* easy <var19:Int> isa OTHER*/
3004 if (unlikely(!var22
)) {
3005 var_class_name25
= type_kernel__Int
.name
;
3006 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name25
);
3007 PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 374);
3010 var26
= var_color
+ var19
;
3013 RET_LABEL21
:(void)0;
3021 BREAK_label27
: (void)0;
3023 { /* Inline coloring#BucketsColorer#colors (self) on <self:BucketsColorer[Object, Object]> */
3024 var30
= self
->attrs
[COLOR_coloring__BucketsColorer___colors
].val
; /* _colors on <self:BucketsColorer[Object, Object]> */
3025 if (unlikely(var30
== NULL
)) {
3026 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _colors");
3027 PRINT_ERROR(" (%s:%d)\n", "compiler/coloring.nit", 279);
3031 RET_LABEL29
:(void)0;
3035 var31
= BOX_kernel__Int(var_color
); /* autobox from Int to nullable Object */
3036 hash_collection__HashMap___91d_93d_61d(var28
, var_bucket
, var31
); /* Direct call hash_collection#HashMap#[]= on <var28:HashMap[Object, Int]>*/
3038 var_color
= var_min_color
;
3039 BREAK_label
: (void)0;
3041 ((void (*)(val
*))(var_10
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var_10
) /* next on <var_10:Iterator[Object]>*/;
3047 BREAK_label32
: (void)0;
3049 { /* Inline abstract_collection#Iterator#finish (var_10) on <var_10:Iterator[Object]> */
3050 RET_LABEL33
:(void)0;
3054 ((void (*)(val
*))(var_4
->class->vft
[COLOR_abstract_collection__MapIterator__next
]))(var_4
) /* next on <var_4:MapIterator[Object, Set[Object]]>*/;
3060 BREAK_label34
: (void)0;
3062 { /* Inline abstract_collection#MapIterator#finish (var_4) on <var_4:MapIterator[Object, Set[Object]]> */
3063 RET_LABEL35
:(void)0;
3067 { /* Inline coloring#BucketsColorer#colors (self) on <self:BucketsColorer[Object, Object]> */
3068 var38
= self
->attrs
[COLOR_coloring__BucketsColorer___colors
].val
; /* _colors on <self:BucketsColorer[Object, Object]> */
3069 if (unlikely(var38
== NULL
)) {
3070 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _colors");
3071 PRINT_ERROR(" (%s:%d)\n", "compiler/coloring.nit", 279);
3075 RET_LABEL37
:(void)0;
3083 /* method coloring#BucketsColorer#colorize for (self: Object, Map[Object, Set[Object]]): Map[Object, Int] */
3084 val
* VIRTUAL_coloring__BucketsColorer__colorize(val
* self
, val
* p0
) {
3085 val
* var
/* : Map[Object, Int] */;
3086 val
* var1
/* : Map[Object, Int] */;
3087 var1
= coloring__BucketsColorer__colorize(self
, p0
);
3092 /* method coloring#BucketsColorer#is_color_free for (self: BucketsColorer[Object, Object], Object, Int): Bool */
3093 short int coloring__BucketsColorer__is_color_free(val
* self
, val
* p0
, long p1
) {
3094 short int var
/* : Bool */;
3095 short int var1
/* : Bool */;
3098 const struct type
* type_struct
;
3099 const char* var_class_name
;
3100 val
* var_bucket
/* var bucket: Object */;
3101 long var_color
/* var color: Int */;
3102 val
* var2
/* : HashMap[Object, Set[Object]] */;
3103 val
* var4
/* : HashMap[Object, Set[Object]] */;
3104 short int var5
/* : Bool */;
3105 val
* var6
/* : HashMap[Object, Set[Object]] */;
3106 val
* var8
/* : HashMap[Object, Set[Object]] */;
3107 val
* var9
/* : nullable Object */;
3108 val
* var_
/* var : Set[Object] */;
3109 val
* var10
/* : Iterator[nullable Object] */;
3110 val
* var_11
/* var : Iterator[Object] */;
3111 short int var12
/* : Bool */;
3112 val
* var13
/* : nullable Object */;
3113 val
* var_other
/* var other: Object */;
3114 short int var14
/* : Bool */;
3115 val
* var15
/* : HashMap[Object, Int] */;
3116 val
* var17
/* : HashMap[Object, Int] */;
3117 short int var18
/* : Bool */;
3118 short int var_19
/* var : Bool */;
3119 val
* var20
/* : HashMap[Object, Int] */;
3120 val
* var22
/* : HashMap[Object, Int] */;
3121 val
* var23
/* : nullable Object */;
3122 short int var24
/* : Bool */;
3123 short int var25
/* : Bool */;
3124 short int var27
/* : Bool */;
3125 long var28
/* : Int */;
3126 short int var29
/* : Bool */;
3127 short int var31
/* : Bool */;
3128 /* Covariant cast for argument 0 (bucket) <p0:Object> isa E */
3129 /* <p0:Object> isa E */
3130 type_struct
= self
->type
->resolution_table
->types
[COLOR_coloring__BucketsColorer_FT1
];
3131 cltype
= type_struct
->color
;
3132 idtype
= type_struct
->id
;
3133 if(cltype
>= p0
->type
->table_size
) {
3136 var1
= p0
->type
->type_table
[cltype
] == idtype
;
3138 if (unlikely(!var1
)) {
3139 var_class_name
= p0
== NULL ?
"null" : p0
->type
->name
;
3140 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "E", var_class_name
);
3141 PRINT_ERROR(" (%s:%d)\n", "compiler/coloring.nit", 300);
3147 { /* Inline coloring#BucketsColorer#conflicts (self) on <self:BucketsColorer[Object, Object]> */
3148 var4
= self
->attrs
[COLOR_coloring__BucketsColorer___conflicts
].val
; /* _conflicts on <self:BucketsColorer[Object, Object]> */
3149 if (unlikely(var4
== NULL
)) {
3150 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _conflicts");
3151 PRINT_ERROR(" (%s:%d)\n", "compiler/coloring.nit", 280);
3159 var5
= abstract_collection__MapRead__has_key(var2
, var_bucket
);
3163 { /* Inline coloring#BucketsColorer#conflicts (self) on <self:BucketsColorer[Object, Object]> */
3164 var8
= self
->attrs
[COLOR_coloring__BucketsColorer___conflicts
].val
; /* _conflicts on <self:BucketsColorer[Object, Object]> */
3165 if (unlikely(var8
== NULL
)) {
3166 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _conflicts");
3167 PRINT_ERROR(" (%s:%d)\n", "compiler/coloring.nit", 280);
3175 var9
= hash_collection__HashMap___91d_93d(var6
, var_bucket
);
3179 var10
= ((val
* (*)(val
*))(var_
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var_
) /* iterator on <var_:Set[Object]>*/;
3184 var12
= ((short int (*)(val
*))(var_11
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var_11
) /* is_ok on <var_11:Iterator[Object]>*/;
3188 var13
= ((val
* (*)(val
*))(var_11
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var_11
) /* item on <var_11:Iterator[Object]>*/;
3192 { /* Inline coloring#BucketsColorer#colors (self) on <self:BucketsColorer[Object, Object]> */
3193 var17
= self
->attrs
[COLOR_coloring__BucketsColorer___colors
].val
; /* _colors on <self:BucketsColorer[Object, Object]> */
3194 if (unlikely(var17
== NULL
)) {
3195 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _colors");
3196 PRINT_ERROR(" (%s:%d)\n", "compiler/coloring.nit", 279);
3200 RET_LABEL16
:(void)0;
3204 var18
= abstract_collection__MapRead__has_key(var15
, var_other
);
3209 { /* Inline coloring#BucketsColorer#colors (self) on <self:BucketsColorer[Object, Object]> */
3210 var22
= self
->attrs
[COLOR_coloring__BucketsColorer___colors
].val
; /* _colors on <self:BucketsColorer[Object, Object]> */
3211 if (unlikely(var22
== NULL
)) {
3212 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _colors");
3213 PRINT_ERROR(" (%s:%d)\n", "compiler/coloring.nit", 279);
3217 RET_LABEL21
:(void)0;
3221 var23
= hash_collection__HashMap___91d_93d(var20
, var_other
);
3224 { /* Inline kernel#Int#== (var23,var_color) on <var23:nullable Object(Int)> */
3225 var27
= (var23
!= NULL
) && (var23
->class == &class_kernel__Int
);
3227 var28
= ((struct instance_kernel__Int
*)var23
)->value
; /* autounbox from nullable Object to Int */;
3228 var27
= (var28
== var_color
);
3232 RET_LABEL26
:(void)0;
3247 ((void (*)(val
*))(var_11
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var_11
) /* next on <var_11:Iterator[Object]>*/;
3253 BREAK_label
: (void)0;
3255 { /* Inline abstract_collection#Iterator#finish (var_11) on <var_11:Iterator[Object]> */
3256 RET_LABEL30
:(void)0;
3267 /* method coloring#BucketsColorer#is_color_free for (self: Object, Object, Int): Bool */
3268 short int VIRTUAL_coloring__BucketsColorer__is_color_free(val
* self
, val
* p0
, long p1
) {
3269 short int var
/* : Bool */;
3270 short int var1
/* : Bool */;
3271 var1
= coloring__BucketsColorer__is_color_free(self
, p0
, p1
);
3276 /* method coloring#BucketsColorer#compute_conflicts for (self: BucketsColorer[Object, Object], Map[Object, Set[Object]]) */
3277 void coloring__BucketsColorer__compute_conflicts(val
* self
, val
* p0
) {
3278 short int var
/* : Bool */;
3281 const struct type
* type_struct
;
3282 const char* var_class_name
;
3283 val
* var_buckets
/* var buckets: Map[Object, Set[Object]] */;
3284 val
* var1
/* : HashMap[Object, Set[Object]] */;
3285 val
* var3
/* : HashMap[Object, Set[Object]] */;
3286 val
* var_
/* var : Map[Object, Set[Object]] */;
3287 val
* var4
/* : MapIterator[Object, nullable Object] */;
3288 val
* var_5
/* var : MapIterator[Object, Set[Object]] */;
3289 short int var6
/* : Bool */;
3290 val
* var7
/* : Object */;
3291 val
* var_holder
/* var holder: Object */;
3292 val
* var8
/* : nullable Object */;
3293 val
* var_hbuckets
/* var hbuckets: Set[Object] */;
3294 val
* var_9
/* var : Set[Object] */;
3295 val
* var10
/* : Iterator[nullable Object] */;
3296 val
* var_11
/* var : Iterator[Object] */;
3297 short int var12
/* : Bool */;
3298 val
* var13
/* : nullable Object */;
3299 val
* var_bucket
/* var bucket: Object */;
3300 val
* var14
/* : HashMap[Object, Set[Object]] */;
3301 val
* var16
/* : HashMap[Object, Set[Object]] */;
3302 short int var17
/* : Bool */;
3303 short int var18
/* : Bool */;
3304 val
* var19
/* : HashMap[Object, Set[Object]] */;
3305 val
* var21
/* : HashMap[Object, Set[Object]] */;
3306 val
* var22
/* : HashSet[Object] */;
3307 val
* var_23
/* var : Set[Object] */;
3308 val
* var24
/* : Iterator[nullable Object] */;
3309 val
* var_25
/* var : Iterator[Object] */;
3310 short int var26
/* : Bool */;
3311 val
* var27
/* : nullable Object */;
3312 val
* var_obucket
/* var obucket: Object */;
3313 short int var28
/* : Bool */;
3314 short int var29
/* : Bool */;
3315 val
* var30
/* : HashMap[Object, Set[Object]] */;
3316 val
* var32
/* : HashMap[Object, Set[Object]] */;
3317 short int var33
/* : Bool */;
3318 short int var34
/* : Bool */;
3319 val
* var35
/* : HashMap[Object, Set[Object]] */;
3320 val
* var37
/* : HashMap[Object, Set[Object]] */;
3321 val
* var38
/* : HashSet[Object] */;
3322 val
* var39
/* : HashMap[Object, Set[Object]] */;
3323 val
* var41
/* : HashMap[Object, Set[Object]] */;
3324 val
* var42
/* : nullable Object */;
3325 val
* var43
/* : HashMap[Object, Set[Object]] */;
3326 val
* var45
/* : HashMap[Object, Set[Object]] */;
3327 val
* var46
/* : nullable Object */;
3328 /* Covariant cast for argument 0 (buckets) <p0:Map[Object, Set[Object]]> isa Map[H, Set[E]] */
3329 /* <p0:Map[Object, Set[Object]]> isa Map[H, Set[E]] */
3330 type_struct
= self
->type
->resolution_table
->types
[COLOR_abstract_collection__Mapcoloring__BucketsColorer_FT0abstract_collection__Setcoloring__BucketsColorer_FT1
];
3331 cltype
= type_struct
->color
;
3332 idtype
= type_struct
->id
;
3333 if(cltype
>= p0
->type
->table_size
) {
3336 var
= p0
->type
->type_table
[cltype
] == idtype
;
3338 if (unlikely(!var
)) {
3339 var_class_name
= p0
== NULL ?
"null" : p0
->type
->name
;
3340 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "Map[H, Set[E]]", var_class_name
);
3341 PRINT_ERROR(" (%s:%d)\n", "compiler/coloring.nit", 309);
3346 { /* Inline coloring#BucketsColorer#conflicts (self) on <self:BucketsColorer[Object, Object]> */
3347 var3
= self
->attrs
[COLOR_coloring__BucketsColorer___conflicts
].val
; /* _conflicts on <self:BucketsColorer[Object, Object]> */
3348 if (unlikely(var3
== NULL
)) {
3349 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _conflicts");
3350 PRINT_ERROR(" (%s:%d)\n", "compiler/coloring.nit", 280);
3358 hash_collection__HashMap__clear(var1
); /* Direct call hash_collection#HashMap#clear on <var1:HashMap[Object, Set[Object]]>*/
3362 var4
= ((val
* (*)(val
*))(var_
->class->vft
[COLOR_abstract_collection__MapRead__iterator
]))(var_
) /* iterator on <var_:Map[Object, Set[Object]]>*/;
3367 var6
= ((short int (*)(val
*))(var_5
->class->vft
[COLOR_abstract_collection__MapIterator__is_ok
]))(var_5
) /* is_ok on <var_5:MapIterator[Object, Set[Object]]>*/;
3371 var7
= ((val
* (*)(val
*))(var_5
->class->vft
[COLOR_abstract_collection__MapIterator__key
]))(var_5
) /* key on <var_5:MapIterator[Object, Set[Object]]>*/;
3375 var8
= ((val
* (*)(val
*))(var_5
->class->vft
[COLOR_abstract_collection__MapIterator__item
]))(var_5
) /* item on <var_5:MapIterator[Object, Set[Object]]>*/;
3377 var_hbuckets
= var8
;
3378 var_9
= var_hbuckets
;
3380 var10
= ((val
* (*)(val
*))(var_9
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var_9
) /* iterator on <var_9:Set[Object]>*/;
3385 var12
= ((short int (*)(val
*))(var_11
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var_11
) /* is_ok on <var_11:Iterator[Object]>*/;
3389 var13
= ((val
* (*)(val
*))(var_11
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var_11
) /* item on <var_11:Iterator[Object]>*/;
3393 { /* Inline coloring#BucketsColorer#conflicts (self) on <self:BucketsColorer[Object, Object]> */
3394 var16
= self
->attrs
[COLOR_coloring__BucketsColorer___conflicts
].val
; /* _conflicts on <self:BucketsColorer[Object, Object]> */
3395 if (unlikely(var16
== NULL
)) {
3396 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _conflicts");
3397 PRINT_ERROR(" (%s:%d)\n", "compiler/coloring.nit", 280);
3401 RET_LABEL15
:(void)0;
3405 var17
= abstract_collection__MapRead__has_key(var14
, var_bucket
);
3410 { /* Inline coloring#BucketsColorer#conflicts (self) on <self:BucketsColorer[Object, Object]> */
3411 var21
= self
->attrs
[COLOR_coloring__BucketsColorer___conflicts
].val
; /* _conflicts on <self:BucketsColorer[Object, Object]> */
3412 if (unlikely(var21
== NULL
)) {
3413 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _conflicts");
3414 PRINT_ERROR(" (%s:%d)\n", "compiler/coloring.nit", 280);
3418 RET_LABEL20
:(void)0;
3421 var22
= NEW_hash_collection__HashSet(self
->type
->resolution_table
->types
[COLOR_hash_collection__HashSetcoloring__BucketsColorer_FT1
]);
3423 ((void (*)(val
*))(var22
->class->vft
[COLOR_kernel__Object__init
]))(var22
) /* init on <var22:HashSet[Object]>*/;
3426 hash_collection__HashMap___91d_93d_61d(var19
, var_bucket
, var22
); /* Direct call hash_collection#HashMap#[]= on <var19:HashMap[Object, Set[Object]]>*/
3430 var_23
= var_hbuckets
;
3432 var24
= ((val
* (*)(val
*))(var_23
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var_23
) /* iterator on <var_23:Set[Object]>*/;
3437 var26
= ((short int (*)(val
*))(var_25
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var_25
) /* is_ok on <var_25:Iterator[Object]>*/;
3441 var27
= ((val
* (*)(val
*))(var_25
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var_25
) /* item on <var_25:Iterator[Object]>*/;
3443 var_obucket
= var27
;
3445 var29
= ((short int (*)(val
*, val
*))(var_obucket
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var_obucket
, var_bucket
) /* == on <var_obucket:Object>*/;
3453 { /* Inline coloring#BucketsColorer#conflicts (self) on <self:BucketsColorer[Object, Object]> */
3454 var32
= self
->attrs
[COLOR_coloring__BucketsColorer___conflicts
].val
; /* _conflicts on <self:BucketsColorer[Object, Object]> */
3455 if (unlikely(var32
== NULL
)) {
3456 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _conflicts");
3457 PRINT_ERROR(" (%s:%d)\n", "compiler/coloring.nit", 280);
3461 RET_LABEL31
:(void)0;
3465 var33
= abstract_collection__MapRead__has_key(var30
, var_obucket
);
3470 { /* Inline coloring#BucketsColorer#conflicts (self) on <self:BucketsColorer[Object, Object]> */
3471 var37
= self
->attrs
[COLOR_coloring__BucketsColorer___conflicts
].val
; /* _conflicts on <self:BucketsColorer[Object, Object]> */
3472 if (unlikely(var37
== NULL
)) {
3473 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _conflicts");
3474 PRINT_ERROR(" (%s:%d)\n", "compiler/coloring.nit", 280);
3478 RET_LABEL36
:(void)0;
3481 var38
= NEW_hash_collection__HashSet(self
->type
->resolution_table
->types
[COLOR_hash_collection__HashSetcoloring__BucketsColorer_FT1
]);
3483 ((void (*)(val
*))(var38
->class->vft
[COLOR_kernel__Object__init
]))(var38
) /* init on <var38:HashSet[Object]>*/;
3486 hash_collection__HashMap___91d_93d_61d(var35
, var_obucket
, var38
); /* Direct call hash_collection#HashMap#[]= on <var35:HashMap[Object, Set[Object]]>*/
3491 { /* Inline coloring#BucketsColorer#conflicts (self) on <self:BucketsColorer[Object, Object]> */
3492 var41
= self
->attrs
[COLOR_coloring__BucketsColorer___conflicts
].val
; /* _conflicts on <self:BucketsColorer[Object, Object]> */
3493 if (unlikely(var41
== NULL
)) {
3494 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _conflicts");
3495 PRINT_ERROR(" (%s:%d)\n", "compiler/coloring.nit", 280);
3499 RET_LABEL40
:(void)0;
3503 var42
= hash_collection__HashMap___91d_93d(var39
, var_bucket
);
3506 ((void (*)(val
*, val
*))(var42
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var42
, var_obucket
) /* add on <var42:nullable Object(Set[Object])>*/;
3509 { /* Inline coloring#BucketsColorer#conflicts (self) on <self:BucketsColorer[Object, Object]> */
3510 var45
= self
->attrs
[COLOR_coloring__BucketsColorer___conflicts
].val
; /* _conflicts on <self:BucketsColorer[Object, Object]> */
3511 if (unlikely(var45
== NULL
)) {
3512 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _conflicts");
3513 PRINT_ERROR(" (%s:%d)\n", "compiler/coloring.nit", 280);
3517 RET_LABEL44
:(void)0;
3521 var46
= hash_collection__HashMap___91d_93d(var43
, var_obucket
);
3524 ((void (*)(val
*, val
*))(var46
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var46
, var_bucket
) /* add on <var46:nullable Object(Set[Object])>*/;
3526 BREAK_label
: (void)0;
3528 ((void (*)(val
*))(var_25
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var_25
) /* next on <var_25:Iterator[Object]>*/;
3534 BREAK_label47
: (void)0;
3536 { /* Inline abstract_collection#Iterator#finish (var_25) on <var_25:Iterator[Object]> */
3537 RET_LABEL48
:(void)0;
3541 ((void (*)(val
*))(var_11
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var_11
) /* next on <var_11:Iterator[Object]>*/;
3547 BREAK_label49
: (void)0;
3549 { /* Inline abstract_collection#Iterator#finish (var_11) on <var_11:Iterator[Object]> */
3550 RET_LABEL50
:(void)0;
3554 ((void (*)(val
*))(var_5
->class->vft
[COLOR_abstract_collection__MapIterator__next
]))(var_5
) /* next on <var_5:MapIterator[Object, Set[Object]]>*/;
3560 BREAK_label51
: (void)0;
3562 { /* Inline abstract_collection#MapIterator#finish (var_5) on <var_5:MapIterator[Object, Set[Object]]> */
3563 RET_LABEL52
:(void)0;
3568 /* method coloring#BucketsColorer#compute_conflicts for (self: Object, Map[Object, Set[Object]]) */
3569 void VIRTUAL_coloring__BucketsColorer__compute_conflicts(val
* self
, val
* p0
) {
3570 coloring__BucketsColorer__compute_conflicts(self
, p0
); /* Direct call coloring#BucketsColorer#compute_conflicts on <self:Object(BucketsColorer[Object, Object])>*/
3573 /* method coloring#POSetBucketsColorer#colors for (self: POSetBucketsColorer[Object, Object]): HashMap[Object, Int] */
3574 val
* coloring__POSetBucketsColorer__colors(val
* self
) {
3575 val
* var
/* : HashMap[Object, Int] */;
3576 val
* var1
/* : HashMap[Object, Int] */;
3577 var1
= self
->attrs
[COLOR_coloring__POSetBucketsColorer___colors
].val
; /* _colors on <self:POSetBucketsColorer[Object, Object]> */
3578 if (unlikely(var1
== NULL
)) {
3579 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _colors");
3580 PRINT_ERROR(" (%s:%d)\n", "compiler/coloring.nit", 330);
3587 /* method coloring#POSetBucketsColorer#colors for (self: Object): HashMap[Object, Int] */
3588 val
* VIRTUAL_coloring__POSetBucketsColorer__colors(val
* self
) {
3589 val
* var
/* : HashMap[Object, Int] */;
3590 val
* var1
/* : HashMap[Object, Int] */;
3591 val
* var3
/* : HashMap[Object, Int] */;
3592 { /* Inline coloring#POSetBucketsColorer#colors (self) on <self:Object(POSetBucketsColorer[Object, Object])> */
3593 var3
= self
->attrs
[COLOR_coloring__POSetBucketsColorer___colors
].val
; /* _colors on <self:Object(POSetBucketsColorer[Object, Object])> */
3594 if (unlikely(var3
== NULL
)) {
3595 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _colors");
3596 PRINT_ERROR(" (%s:%d)\n", "compiler/coloring.nit", 330);
3606 /* method coloring#POSetBucketsColorer#poset for (self: POSetBucketsColorer[Object, Object]): POSet[Object] */
3607 val
* coloring__POSetBucketsColorer__poset(val
* self
) {
3608 val
* var
/* : POSet[Object] */;
3609 val
* var1
/* : POSet[Object] */;
3610 var1
= self
->attrs
[COLOR_coloring__POSetBucketsColorer___poset
].val
; /* _poset on <self:POSetBucketsColorer[Object, Object]> */
3611 if (unlikely(var1
== NULL
)) {
3612 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _poset");
3613 PRINT_ERROR(" (%s:%d)\n", "compiler/coloring.nit", 331);
3620 /* method coloring#POSetBucketsColorer#poset for (self: Object): POSet[Object] */
3621 val
* VIRTUAL_coloring__POSetBucketsColorer__poset(val
* self
) {
3622 val
* var
/* : POSet[Object] */;
3623 val
* var1
/* : POSet[Object] */;
3624 val
* var3
/* : POSet[Object] */;
3625 { /* Inline coloring#POSetBucketsColorer#poset (self) on <self:Object(POSetBucketsColorer[Object, Object])> */
3626 var3
= self
->attrs
[COLOR_coloring__POSetBucketsColorer___poset
].val
; /* _poset on <self:Object(POSetBucketsColorer[Object, Object])> */
3627 if (unlikely(var3
== NULL
)) {
3628 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _poset");
3629 PRINT_ERROR(" (%s:%d)\n", "compiler/coloring.nit", 331);
3639 /* method coloring#POSetBucketsColorer#poset= for (self: POSetBucketsColorer[Object, Object], POSet[Object]) */
3640 void coloring__POSetBucketsColorer__poset_61d(val
* self
, val
* p0
) {
3641 short int var
/* : Bool */;
3644 const struct type
* type_struct
;
3645 const char* var_class_name
;
3646 /* Covariant cast for argument 0 (poset) <p0:POSet[Object]> isa POSet[H] */
3647 /* <p0:POSet[Object]> isa POSet[H] */
3648 type_struct
= self
->type
->resolution_table
->types
[COLOR_poset__POSetcoloring__POSetBucketsColorer_FT0
];
3649 cltype
= type_struct
->color
;
3650 idtype
= type_struct
->id
;
3651 if(cltype
>= p0
->type
->table_size
) {
3654 var
= p0
->type
->type_table
[cltype
] == idtype
;
3656 if (unlikely(!var
)) {
3657 var_class_name
= p0
== NULL ?
"null" : p0
->type
->name
;
3658 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "POSet[H]", var_class_name
);
3659 PRINT_ERROR(" (%s:%d)\n", "compiler/coloring.nit", 331);
3662 self
->attrs
[COLOR_coloring__POSetBucketsColorer___poset
].val
= p0
; /* _poset on <self:POSetBucketsColorer[Object, Object]> */
3665 /* method coloring#POSetBucketsColorer#poset= for (self: Object, POSet[Object]) */
3666 void VIRTUAL_coloring__POSetBucketsColorer__poset_61d(val
* self
, val
* p0
) {
3667 short int var
/* : Bool */;
3670 const struct type
* type_struct
;
3671 const char* var_class_name
;
3672 { /* Inline coloring#POSetBucketsColorer#poset= (self,p0) on <self:Object(POSetBucketsColorer[Object, Object])> */
3673 /* Covariant cast for argument 0 (poset) <p0:POSet[Object]> isa POSet[H] */
3674 /* <p0:POSet[Object]> isa POSet[H] */
3675 type_struct
= self
->type
->resolution_table
->types
[COLOR_poset__POSetcoloring__POSetBucketsColorer_FT0
];
3676 cltype
= type_struct
->color
;
3677 idtype
= type_struct
->id
;
3678 if(cltype
>= p0
->type
->table_size
) {
3681 var
= p0
->type
->type_table
[cltype
] == idtype
;
3683 if (unlikely(!var
)) {
3684 var_class_name
= p0
== NULL ?
"null" : p0
->type
->name
;
3685 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "POSet[H]", var_class_name
);
3686 PRINT_ERROR(" (%s:%d)\n", "compiler/coloring.nit", 331);
3689 self
->attrs
[COLOR_coloring__POSetBucketsColorer___poset
].val
= p0
; /* _poset on <self:Object(POSetBucketsColorer[Object, Object])> */
3694 /* method coloring#POSetBucketsColorer#conflicts for (self: POSetBucketsColorer[Object, Object]): Map[Object, Set[Object]] */
3695 val
* coloring__POSetBucketsColorer__conflicts(val
* self
) {
3696 val
* var
/* : Map[Object, Set[Object]] */;
3697 val
* var1
/* : Map[Object, Set[Object]] */;
3698 var1
= self
->attrs
[COLOR_coloring__POSetBucketsColorer___conflicts
].val
; /* _conflicts on <self:POSetBucketsColorer[Object, Object]> */
3699 if (unlikely(var1
== NULL
)) {
3700 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _conflicts");
3701 PRINT_ERROR(" (%s:%d)\n", "compiler/coloring.nit", 332);
3708 /* method coloring#POSetBucketsColorer#conflicts for (self: Object): Map[Object, Set[Object]] */
3709 val
* VIRTUAL_coloring__POSetBucketsColorer__conflicts(val
* self
) {
3710 val
* var
/* : Map[Object, Set[Object]] */;
3711 val
* var1
/* : Map[Object, Set[Object]] */;
3712 val
* var3
/* : Map[Object, Set[Object]] */;
3713 { /* Inline coloring#POSetBucketsColorer#conflicts (self) on <self:Object(POSetBucketsColorer[Object, Object])> */
3714 var3
= self
->attrs
[COLOR_coloring__POSetBucketsColorer___conflicts
].val
; /* _conflicts on <self:Object(POSetBucketsColorer[Object, Object])> */
3715 if (unlikely(var3
== NULL
)) {
3716 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _conflicts");
3717 PRINT_ERROR(" (%s:%d)\n", "compiler/coloring.nit", 332);
3727 /* method coloring#POSetBucketsColorer#conflicts= for (self: POSetBucketsColorer[Object, Object], Map[Object, Set[Object]]) */
3728 void coloring__POSetBucketsColorer__conflicts_61d(val
* self
, val
* p0
) {
3729 short int var
/* : Bool */;
3732 const struct type
* type_struct
;
3733 const char* var_class_name
;
3734 /* Covariant cast for argument 0 (conflicts) <p0:Map[Object, Set[Object]]> isa Map[H, Set[H]] */
3735 /* <p0:Map[Object, Set[Object]]> isa Map[H, Set[H]] */
3736 type_struct
= self
->type
->resolution_table
->types
[COLOR_abstract_collection__Mapcoloring__POSetBucketsColorer_FT0abstract_collection__Setcoloring__POSetBucketsColorer_FT0
];
3737 cltype
= type_struct
->color
;
3738 idtype
= type_struct
->id
;
3739 if(cltype
>= p0
->type
->table_size
) {
3742 var
= p0
->type
->type_table
[cltype
] == idtype
;
3744 if (unlikely(!var
)) {
3745 var_class_name
= p0
== NULL ?
"null" : p0
->type
->name
;
3746 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "Map[H, Set[H]]", var_class_name
);
3747 PRINT_ERROR(" (%s:%d)\n", "compiler/coloring.nit", 332);
3750 self
->attrs
[COLOR_coloring__POSetBucketsColorer___conflicts
].val
= p0
; /* _conflicts on <self:POSetBucketsColorer[Object, Object]> */
3753 /* method coloring#POSetBucketsColorer#conflicts= for (self: Object, Map[Object, Set[Object]]) */
3754 void VIRTUAL_coloring__POSetBucketsColorer__conflicts_61d(val
* self
, val
* p0
) {
3755 short int var
/* : Bool */;
3758 const struct type
* type_struct
;
3759 const char* var_class_name
;
3760 { /* Inline coloring#POSetBucketsColorer#conflicts= (self,p0) on <self:Object(POSetBucketsColorer[Object, Object])> */
3761 /* Covariant cast for argument 0 (conflicts) <p0:Map[Object, Set[Object]]> isa Map[H, Set[H]] */
3762 /* <p0:Map[Object, Set[Object]]> isa Map[H, Set[H]] */
3763 type_struct
= self
->type
->resolution_table
->types
[COLOR_abstract_collection__Mapcoloring__POSetBucketsColorer_FT0abstract_collection__Setcoloring__POSetBucketsColorer_FT0
];
3764 cltype
= type_struct
->color
;
3765 idtype
= type_struct
->id
;
3766 if(cltype
>= p0
->type
->table_size
) {
3769 var
= p0
->type
->type_table
[cltype
] == idtype
;
3771 if (unlikely(!var
)) {
3772 var_class_name
= p0
== NULL ?
"null" : p0
->type
->name
;
3773 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "Map[H, Set[H]]", var_class_name
);
3774 PRINT_ERROR(" (%s:%d)\n", "compiler/coloring.nit", 332);
3777 self
->attrs
[COLOR_coloring__POSetBucketsColorer___conflicts
].val
= p0
; /* _conflicts on <self:Object(POSetBucketsColorer[Object, Object])> */
3782 /* method coloring#POSetBucketsColorer#init for (self: POSetBucketsColorer[Object, Object], POSet[Object], Map[Object, Set[Object]]) */
3783 void coloring__POSetBucketsColorer__init(val
* self
, val
* p0
, val
* p1
) {
3784 short int var
/* : Bool */;
3787 const struct type
* type_struct
;
3788 const char* var_class_name
;
3789 short int var1
/* : Bool */;
3792 const struct type
* type_struct4
;
3793 const char* var_class_name5
;
3794 val
* var_poset
/* var poset: POSet[Object] */;
3795 val
* var_conflicts
/* var conflicts: Map[Object, Set[Object]] */;
3796 short int var7
/* : Bool */;
3799 const struct type
* type_struct10
;
3800 const char* var_class_name11
;
3801 short int var13
/* : Bool */;
3804 const struct type
* type_struct16
;
3805 const char* var_class_name17
;
3806 /* Covariant cast for argument 0 (poset) <p0:POSet[Object]> isa POSet[H] */
3807 /* <p0:POSet[Object]> isa POSet[H] */
3808 type_struct
= self
->type
->resolution_table
->types
[COLOR_poset__POSetcoloring__POSetBucketsColorer_FT0
];
3809 cltype
= type_struct
->color
;
3810 idtype
= type_struct
->id
;
3811 if(cltype
>= p0
->type
->table_size
) {
3814 var
= p0
->type
->type_table
[cltype
] == idtype
;
3816 if (unlikely(!var
)) {
3817 var_class_name
= p0
== NULL ?
"null" : p0
->type
->name
;
3818 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "POSet[H]", var_class_name
);
3819 PRINT_ERROR(" (%s:%d)\n", "compiler/coloring.nit", 334);
3822 /* Covariant cast for argument 1 (conflicts) <p1:Map[Object, Set[Object]]> isa Map[H, Set[H]] */
3823 /* <p1:Map[Object, Set[Object]]> isa Map[H, Set[H]] */
3824 type_struct4
= self
->type
->resolution_table
->types
[COLOR_abstract_collection__Mapcoloring__POSetBucketsColorer_FT0abstract_collection__Setcoloring__POSetBucketsColorer_FT0
];
3825 cltype2
= type_struct4
->color
;
3826 idtype3
= type_struct4
->id
;
3827 if(cltype2
>= p1
->type
->table_size
) {
3830 var1
= p1
->type
->type_table
[cltype2
] == idtype3
;
3832 if (unlikely(!var1
)) {
3833 var_class_name5
= p1
== NULL ?
"null" : p1
->type
->name
;
3834 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "Map[H, Set[H]]", var_class_name5
);
3835 PRINT_ERROR(" (%s:%d)\n", "compiler/coloring.nit", 334);
3841 { /* Inline coloring#POSetBucketsColorer#poset= (self,var_poset) on <self:POSetBucketsColorer[Object, Object]> */
3842 /* Covariant cast for argument 0 (poset) <var_poset:POSet[Object]> isa POSet[H] */
3843 /* <var_poset:POSet[Object]> isa POSet[H] */
3844 type_struct10
= self
->type
->resolution_table
->types
[COLOR_poset__POSetcoloring__POSetBucketsColorer_FT0
];
3845 cltype8
= type_struct10
->color
;
3846 idtype9
= type_struct10
->id
;
3847 if(cltype8
>= var_poset
->type
->table_size
) {
3850 var7
= var_poset
->type
->type_table
[cltype8
] == idtype9
;
3852 if (unlikely(!var7
)) {
3853 var_class_name11
= var_poset
== NULL ?
"null" : var_poset
->type
->name
;
3854 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "POSet[H]", var_class_name11
);
3855 PRINT_ERROR(" (%s:%d)\n", "compiler/coloring.nit", 331);
3858 self
->attrs
[COLOR_coloring__POSetBucketsColorer___poset
].val
= var_poset
; /* _poset on <self:POSetBucketsColorer[Object, Object]> */
3863 { /* Inline coloring#POSetBucketsColorer#conflicts= (self,var_conflicts) on <self:POSetBucketsColorer[Object, Object]> */
3864 /* Covariant cast for argument 0 (conflicts) <var_conflicts:Map[Object, Set[Object]]> isa Map[H, Set[H]] */
3865 /* <var_conflicts:Map[Object, Set[Object]]> isa Map[H, Set[H]] */
3866 type_struct16
= self
->type
->resolution_table
->types
[COLOR_abstract_collection__Mapcoloring__POSetBucketsColorer_FT0abstract_collection__Setcoloring__POSetBucketsColorer_FT0
];
3867 cltype14
= type_struct16
->color
;
3868 idtype15
= type_struct16
->id
;
3869 if(cltype14
>= var_conflicts
->type
->table_size
) {
3872 var13
= var_conflicts
->type
->type_table
[cltype14
] == idtype15
;
3874 if (unlikely(!var13
)) {
3875 var_class_name17
= var_conflicts
== NULL ?
"null" : var_conflicts
->type
->name
;
3876 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "Map[H, Set[H]]", var_class_name17
);
3877 PRINT_ERROR(" (%s:%d)\n", "compiler/coloring.nit", 332);
3880 self
->attrs
[COLOR_coloring__POSetBucketsColorer___conflicts
].val
= var_conflicts
; /* _conflicts on <self:POSetBucketsColorer[Object, Object]> */
3881 RET_LABEL12
:(void)0;
3886 /* method coloring#POSetBucketsColorer#init for (self: Object, POSet[Object], Map[Object, Set[Object]]) */
3887 void VIRTUAL_coloring__POSetBucketsColorer__init(val
* self
, val
* p0
, val
* p1
) {
3888 coloring__POSetBucketsColorer__init(self
, p0
, p1
); /* Direct call coloring#POSetBucketsColorer#init on <self:Object(POSetBucketsColorer[Object, Object])>*/
3891 /* method coloring#POSetBucketsColorer#colorize for (self: POSetBucketsColorer[Object, Object], Map[Object, Set[Object]]): Map[Object, Int] */
3892 val
* coloring__POSetBucketsColorer__colorize(val
* self
, val
* p0
) {
3893 val
* var
/* : Map[Object, Int] */;
3894 short int var1
/* : Bool */;
3897 const struct type
* type_struct
;
3898 const char* var_class_name
;
3899 val
* var_buckets
/* var buckets: Map[Object, Set[Object]] */;
3900 val
* var2
/* : HashMap[Object, Int] */;
3901 val
* var4
/* : HashMap[Object, Int] */;
3902 val
* var5
/* : POSet[Object] */;
3903 val
* var7
/* : POSet[Object] */;
3904 val
* var8
/* : Collection[Object] */;
3905 val
* var9
/* : Array[Object] */;
3906 val
* var_
/* var : Array[Object] */;
3907 val
* var10
/* : ArrayIterator[nullable Object] */;
3908 val
* var_11
/* var : ArrayIterator[Object] */;
3909 short int var12
/* : Bool */;
3910 val
* var13
/* : nullable Object */;
3911 val
* var_h
/* var h: Object */;
3912 val
* var14
/* : POSet[Object] */;
3913 val
* var16
/* : POSet[Object] */;
3914 val
* var17
/* : POSetElement[Object] */;
3915 val
* var18
/* : Collection[Object] */;
3916 long var19
/* : Int */;
3917 long var_color
/* var color: Int */;
3918 val
* var20
/* : nullable Object */;
3919 val
* var_21
/* var : Set[Object] */;
3920 val
* var22
/* : Iterator[nullable Object] */;
3921 val
* var_23
/* var : Iterator[Object] */;
3922 short int var24
/* : Bool */;
3923 val
* var25
/* : nullable Object */;
3924 val
* var_bucket
/* var bucket: Object */;
3925 val
* var26
/* : HashMap[Object, Int] */;
3926 val
* var28
/* : HashMap[Object, Int] */;
3927 short int var29
/* : Bool */;
3928 short int var30
/* : Bool */;
3929 short int var31
/* : Bool */;
3930 long var32
/* : Int */;
3931 long var33
/* : Int */;
3932 short int var35
/* : Bool */;
3935 const char* var_class_name38
;
3936 long var39
/* : Int */;
3937 val
* var41
/* : HashMap[Object, Int] */;
3938 val
* var43
/* : HashMap[Object, Int] */;
3939 val
* var44
/* : nullable Object */;
3940 long var45
/* : Int */;
3941 long var46
/* : Int */;
3942 short int var48
/* : Bool */;
3945 const char* var_class_name51
;
3946 long var52
/* : Int */;
3947 val
* var57
/* : HashMap[Object, Int] */;
3948 val
* var59
/* : HashMap[Object, Int] */;
3949 /* Covariant cast for argument 0 (buckets) <p0:Map[Object, Set[Object]]> isa Map[H, Set[E]] */
3950 /* <p0:Map[Object, Set[Object]]> isa Map[H, Set[E]] */
3951 type_struct
= self
->type
->resolution_table
->types
[COLOR_abstract_collection__Mapcoloring__POSetBucketsColorer_FT0abstract_collection__Setcoloring__POSetBucketsColorer_FT1
];
3952 cltype
= type_struct
->color
;
3953 idtype
= type_struct
->id
;
3954 if(cltype
>= p0
->type
->table_size
) {
3957 var1
= p0
->type
->type_table
[cltype
] == idtype
;
3959 if (unlikely(!var1
)) {
3960 var_class_name
= p0
== NULL ?
"null" : p0
->type
->name
;
3961 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "Map[H, Set[E]]", var_class_name
);
3962 PRINT_ERROR(" (%s:%d)\n", "compiler/coloring.nit", 339);
3967 { /* Inline coloring#POSetBucketsColorer#colors (self) on <self:POSetBucketsColorer[Object, Object]> */
3968 var4
= self
->attrs
[COLOR_coloring__POSetBucketsColorer___colors
].val
; /* _colors on <self:POSetBucketsColorer[Object, Object]> */
3969 if (unlikely(var4
== NULL
)) {
3970 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _colors");
3971 PRINT_ERROR(" (%s:%d)\n", "compiler/coloring.nit", 330);
3979 hash_collection__HashMap__clear(var2
); /* Direct call hash_collection#HashMap#clear on <var2:HashMap[Object, Int]>*/
3982 { /* Inline coloring#POSetBucketsColorer#poset (self) on <self:POSetBucketsColorer[Object, Object]> */
3983 var7
= self
->attrs
[COLOR_coloring__POSetBucketsColorer___poset
].val
; /* _poset on <self:POSetBucketsColorer[Object, Object]> */
3984 if (unlikely(var7
== NULL
)) {
3985 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _poset");
3986 PRINT_ERROR(" (%s:%d)\n", "compiler/coloring.nit", 331);
3994 var8
= ((val
* (*)(val
*))(var_buckets
->class->vft
[COLOR_abstract_collection__MapRead__keys
]))(var_buckets
) /* keys on <var_buckets:Map[Object, Set[Object]]>*/;
3997 var9
= poset__POSet__linearize(var5
, var8
);
4001 var10
= array__AbstractArrayRead__iterator(var_
);
4006 var12
= array__ArrayIterator__is_ok(var_11
);
4010 var13
= array__ArrayIterator__item(var_11
);
4014 { /* Inline coloring#POSetBucketsColorer#poset (self) on <self:POSetBucketsColorer[Object, Object]> */
4015 var16
= self
->attrs
[COLOR_coloring__POSetBucketsColorer___poset
].val
; /* _poset on <self:POSetBucketsColorer[Object, Object]> */
4016 if (unlikely(var16
== NULL
)) {
4017 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _poset");
4018 PRINT_ERROR(" (%s:%d)\n", "compiler/coloring.nit", 331);
4022 RET_LABEL15
:(void)0;
4026 var17
= poset__POSet___91d_93d(var14
, var_h
);
4029 var18
= poset__POSetElement__direct_greaters(var17
);
4032 var19
= coloring__POSetBucketsColorer__min_color(self
, var18
, var_buckets
);
4036 var20
= ((val
* (*)(val
*, val
*))(var_buckets
->class->vft
[COLOR_abstract_collection__MapRead___91d_93d
]))(var_buckets
, var_h
) /* [] on <var_buckets:Map[Object, Set[Object]]>*/;
4040 var22
= ((val
* (*)(val
*))(var_21
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var_21
) /* iterator on <var_21:Set[Object]>*/;
4045 var24
= ((short int (*)(val
*))(var_23
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var_23
) /* is_ok on <var_23:Iterator[Object]>*/;
4049 var25
= ((val
* (*)(val
*))(var_23
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var_23
) /* item on <var_23:Iterator[Object]>*/;
4053 { /* Inline coloring#POSetBucketsColorer#colors (self) on <self:POSetBucketsColorer[Object, Object]> */
4054 var28
= self
->attrs
[COLOR_coloring__POSetBucketsColorer___colors
].val
; /* _colors on <self:POSetBucketsColorer[Object, Object]> */
4055 if (unlikely(var28
== NULL
)) {
4056 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _colors");
4057 PRINT_ERROR(" (%s:%d)\n", "compiler/coloring.nit", 330);
4061 RET_LABEL27
:(void)0;
4065 var29
= abstract_collection__MapRead__has_key(var26
, var_bucket
);
4073 var30
= coloring__POSetBucketsColorer__is_color_free(self
, var_color
, var_h
, var_buckets
);
4079 { /* Inline kernel#Int#+ (var_color,var32) on <var_color:Int> */
4080 /* Covariant cast for argument 0 (i) <var32:Int> isa OTHER */
4081 /* <var32:Int> isa OTHER */
4082 var35
= 1; /* easy <var32:Int> isa OTHER*/
4083 if (unlikely(!var35
)) {
4084 var_class_name38
= type_kernel__Int
.name
;
4085 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name38
);
4086 PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 374);
4089 var39
= var_color
+ var32
;
4092 RET_LABEL34
:(void)0;
4100 BREAK_label40
: (void)0;
4102 { /* Inline coloring#POSetBucketsColorer#colors (self) on <self:POSetBucketsColorer[Object, Object]> */
4103 var43
= self
->attrs
[COLOR_coloring__POSetBucketsColorer___colors
].val
; /* _colors on <self:POSetBucketsColorer[Object, Object]> */
4104 if (unlikely(var43
== NULL
)) {
4105 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _colors");
4106 PRINT_ERROR(" (%s:%d)\n", "compiler/coloring.nit", 330);
4110 RET_LABEL42
:(void)0;
4114 var44
= BOX_kernel__Int(var_color
); /* autobox from Int to nullable Object */
4115 hash_collection__HashMap___91d_93d_61d(var41
, var_bucket
, var44
); /* Direct call hash_collection#HashMap#[]= on <var41:HashMap[Object, Int]>*/
4119 { /* Inline kernel#Int#+ (var_color,var45) on <var_color:Int> */
4120 /* Covariant cast for argument 0 (i) <var45:Int> isa OTHER */
4121 /* <var45:Int> isa OTHER */
4122 var48
= 1; /* easy <var45:Int> isa OTHER*/
4123 if (unlikely(!var48
)) {
4124 var_class_name51
= type_kernel__Int
.name
;
4125 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name51
);
4126 PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 374);
4129 var52
= var_color
+ var45
;
4132 RET_LABEL47
:(void)0;
4136 BREAK_label
: (void)0;
4138 ((void (*)(val
*))(var_23
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var_23
) /* next on <var_23:Iterator[Object]>*/;
4144 BREAK_label53
: (void)0;
4146 { /* Inline abstract_collection#Iterator#finish (var_23) on <var_23:Iterator[Object]> */
4147 RET_LABEL54
:(void)0;
4151 array__ArrayIterator__next(var_11
); /* Direct call array#ArrayIterator#next on <var_11:ArrayIterator[Object]>*/
4157 BREAK_label55
: (void)0;
4159 { /* Inline abstract_collection#Iterator#finish (var_11) on <var_11:ArrayIterator[Object]> */
4160 RET_LABEL56
:(void)0;
4164 { /* Inline coloring#POSetBucketsColorer#colors (self) on <self:POSetBucketsColorer[Object, Object]> */
4165 var59
= self
->attrs
[COLOR_coloring__POSetBucketsColorer___colors
].val
; /* _colors on <self:POSetBucketsColorer[Object, Object]> */
4166 if (unlikely(var59
== NULL
)) {
4167 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _colors");
4168 PRINT_ERROR(" (%s:%d)\n", "compiler/coloring.nit", 330);
4172 RET_LABEL58
:(void)0;
4180 /* method coloring#POSetBucketsColorer#colorize for (self: Object, Map[Object, Set[Object]]): Map[Object, Int] */
4181 val
* VIRTUAL_coloring__POSetBucketsColorer__colorize(val
* self
, val
* p0
) {
4182 val
* var
/* : Map[Object, Int] */;
4183 val
* var1
/* : Map[Object, Int] */;
4184 var1
= coloring__POSetBucketsColorer__colorize(self
, p0
);
4189 /* method coloring#POSetBucketsColorer#min_color for (self: POSetBucketsColorer[Object, Object], Collection[Object], Map[Object, Set[Object]]): Int */
4190 long coloring__POSetBucketsColorer__min_color(val
* self
, val
* p0
, val
* p1
) {
4191 long var
/* : Int */;
4192 short int var1
/* : Bool */;
4195 const struct type
* type_struct
;
4196 const char* var_class_name
;
4197 short int var2
/* : Bool */;
4200 const struct type
* type_struct5
;
4201 const char* var_class_name6
;
4202 val
* var_others
/* var others: Collection[Object] */;
4203 val
* var_buckets
/* var buckets: Map[Object, Set[Object]] */;
4204 long var7
/* : Int */;
4205 long var8
/* : Int */;
4206 long var10
/* : Int */;
4207 long var_min
/* var min: Int */;
4208 val
* var_
/* var : Collection[Object] */;
4209 val
* var11
/* : Iterator[nullable Object] */;
4210 val
* var_12
/* var : Iterator[Object] */;
4211 short int var13
/* : Bool */;
4212 val
* var14
/* : nullable Object */;
4213 val
* var_holder
/* var holder: Object */;
4214 long var15
/* : Int */;
4215 long var_color
/* var color: Int */;
4216 short int var16
/* : Bool */;
4217 short int var18
/* : Bool */;
4220 const char* var_class_name21
;
4221 short int var22
/* : Bool */;
4222 long var24
/* : Int */;
4223 long var25
/* : Int */;
4224 short int var27
/* : Bool */;
4227 const char* var_class_name30
;
4228 long var31
/* : Int */;
4229 /* Covariant cast for argument 0 (others) <p0:Collection[Object]> isa Collection[H] */
4230 /* <p0:Collection[Object]> isa Collection[H] */
4231 type_struct
= self
->type
->resolution_table
->types
[COLOR_abstract_collection__Collectioncoloring__POSetBucketsColorer_FT0
];
4232 cltype
= type_struct
->color
;
4233 idtype
= type_struct
->id
;
4234 if(cltype
>= p0
->type
->table_size
) {
4237 var1
= p0
->type
->type_table
[cltype
] == idtype
;
4239 if (unlikely(!var1
)) {
4240 var_class_name
= p0
== NULL ?
"null" : p0
->type
->name
;
4241 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "Collection[H]", var_class_name
);
4242 PRINT_ERROR(" (%s:%d)\n", "compiler/coloring.nit", 354);
4245 /* Covariant cast for argument 1 (buckets) <p1:Map[Object, Set[Object]]> isa Map[H, Set[E]] */
4246 /* <p1:Map[Object, Set[Object]]> isa Map[H, Set[E]] */
4247 type_struct5
= self
->type
->resolution_table
->types
[COLOR_abstract_collection__Mapcoloring__POSetBucketsColorer_FT0abstract_collection__Setcoloring__POSetBucketsColorer_FT1
];
4248 cltype3
= type_struct5
->color
;
4249 idtype4
= type_struct5
->id
;
4250 if(cltype3
>= p1
->type
->table_size
) {
4253 var2
= p1
->type
->type_table
[cltype3
] == idtype4
;
4255 if (unlikely(!var2
)) {
4256 var_class_name6
= p1
== NULL ?
"null" : p1
->type
->name
;
4257 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "Map[H, Set[E]]", var_class_name6
);
4258 PRINT_ERROR(" (%s:%d)\n", "compiler/coloring.nit", 354);
4265 { /* Inline kernel#Int#unary - (var7) on <var7:Int> */
4275 var11
= ((val
* (*)(val
*))(var_
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var_
) /* iterator on <var_:Collection[Object]>*/;
4280 var13
= ((short int (*)(val
*))(var_12
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var_12
) /* is_ok on <var_12:Iterator[Object]>*/;
4284 var14
= ((val
* (*)(val
*))(var_12
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var_12
) /* item on <var_12:Iterator[Object]>*/;
4288 var15
= coloring__POSetBucketsColorer__max_color(self
, var_holder
, var_buckets
);
4292 { /* Inline kernel#Int#> (var_color,var_min) on <var_color:Int> */
4293 /* Covariant cast for argument 0 (i) <var_min:Int> isa OTHER */
4294 /* <var_min:Int> isa OTHER */
4295 var18
= 1; /* easy <var_min:Int> isa OTHER*/
4296 if (unlikely(!var18
)) {
4297 var_class_name21
= type_kernel__Int
.name
;
4298 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name21
);
4299 PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 373);
4302 var22
= var_color
> var_min
;
4305 RET_LABEL17
:(void)0;
4309 var_min
= var_color
;
4313 ((void (*)(val
*))(var_12
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var_12
) /* next on <var_12:Iterator[Object]>*/;
4319 BREAK_label
: (void)0;
4321 { /* Inline abstract_collection#Iterator#finish (var_12) on <var_12:Iterator[Object]> */
4322 RET_LABEL23
:(void)0;
4327 { /* Inline kernel#Int#+ (var_min,var24) on <var_min:Int> */
4328 /* Covariant cast for argument 0 (i) <var24:Int> isa OTHER */
4329 /* <var24:Int> isa OTHER */
4330 var27
= 1; /* easy <var24:Int> isa OTHER*/
4331 if (unlikely(!var27
)) {
4332 var_class_name30
= type_kernel__Int
.name
;
4333 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name30
);
4334 PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 374);
4337 var31
= var_min
+ var24
;
4340 RET_LABEL26
:(void)0;
4348 /* method coloring#POSetBucketsColorer#min_color for (self: Object, Collection[Object], Map[Object, Set[Object]]): Int */
4349 long VIRTUAL_coloring__POSetBucketsColorer__min_color(val
* self
, val
* p0
, val
* p1
) {
4350 long var
/* : Int */;
4351 long var1
/* : Int */;
4352 var1
= coloring__POSetBucketsColorer__min_color(self
, p0
, p1
);
4357 /* method coloring#POSetBucketsColorer#max_color for (self: POSetBucketsColorer[Object, Object], Object, Map[Object, Set[Object]]): Int */
4358 long coloring__POSetBucketsColorer__max_color(val
* self
, val
* p0
, val
* p1
) {
4359 long var
/* : Int */;
4360 short int var1
/* : Bool */;
4363 const struct type
* type_struct
;
4364 const char* var_class_name
;
4365 short int var2
/* : Bool */;
4368 const struct type
* type_struct5
;
4369 const char* var_class_name6
;
4370 val
* var_holder
/* var holder: Object */;
4371 val
* var_buckets
/* var buckets: Map[Object, Set[Object]] */;
4372 long var7
/* : Int */;
4373 long var8
/* : Int */;
4374 long var10
/* : Int */;
4375 long var_max
/* var max: Int */;
4376 val
* var11
/* : nullable Object */;
4377 val
* var_
/* var : Set[Object] */;
4378 val
* var12
/* : Iterator[nullable Object] */;
4379 val
* var_13
/* var : Iterator[Object] */;
4380 short int var14
/* : Bool */;
4381 val
* var15
/* : nullable Object */;
4382 val
* var_bucket
/* var bucket: Object */;
4383 val
* var16
/* : HashMap[Object, Int] */;
4384 val
* var18
/* : HashMap[Object, Int] */;
4385 short int var19
/* : Bool */;
4386 short int var20
/* : Bool */;
4387 val
* var21
/* : HashMap[Object, Int] */;
4388 val
* var23
/* : HashMap[Object, Int] */;
4389 val
* var24
/* : nullable Object */;
4390 long var25
/* : Int */;
4391 long var_color
/* var color: Int */;
4392 short int var26
/* : Bool */;
4393 short int var28
/* : Bool */;
4396 const char* var_class_name31
;
4397 short int var32
/* : Bool */;
4398 /* Covariant cast for argument 0 (holder) <p0:Object> isa H */
4399 /* <p0:Object> isa H */
4400 type_struct
= self
->type
->resolution_table
->types
[COLOR_coloring__POSetBucketsColorer_FT0
];
4401 cltype
= type_struct
->color
;
4402 idtype
= type_struct
->id
;
4403 if(cltype
>= p0
->type
->table_size
) {
4406 var1
= p0
->type
->type_table
[cltype
] == idtype
;
4408 if (unlikely(!var1
)) {
4409 var_class_name
= p0
== NULL ?
"null" : p0
->type
->name
;
4410 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "H", var_class_name
);
4411 PRINT_ERROR(" (%s:%d)\n", "compiler/coloring.nit", 364);
4414 /* Covariant cast for argument 1 (buckets) <p1:Map[Object, Set[Object]]> isa Map[H, Set[E]] */
4415 /* <p1:Map[Object, Set[Object]]> isa Map[H, Set[E]] */
4416 type_struct5
= self
->type
->resolution_table
->types
[COLOR_abstract_collection__Mapcoloring__POSetBucketsColorer_FT0abstract_collection__Setcoloring__POSetBucketsColorer_FT1
];
4417 cltype3
= type_struct5
->color
;
4418 idtype4
= type_struct5
->id
;
4419 if(cltype3
>= p1
->type
->table_size
) {
4422 var2
= p1
->type
->type_table
[cltype3
] == idtype4
;
4424 if (unlikely(!var2
)) {
4425 var_class_name6
= p1
== NULL ?
"null" : p1
->type
->name
;
4426 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "Map[H, Set[E]]", var_class_name6
);
4427 PRINT_ERROR(" (%s:%d)\n", "compiler/coloring.nit", 364);
4434 { /* Inline kernel#Int#unary - (var7) on <var7:Int> */
4443 var11
= ((val
* (*)(val
*, val
*))(var_buckets
->class->vft
[COLOR_abstract_collection__MapRead___91d_93d
]))(var_buckets
, var_holder
) /* [] on <var_buckets:Map[Object, Set[Object]]>*/;
4447 var12
= ((val
* (*)(val
*))(var_
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var_
) /* iterator on <var_:Set[Object]>*/;
4452 var14
= ((short int (*)(val
*))(var_13
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var_13
) /* is_ok on <var_13:Iterator[Object]>*/;
4456 var15
= ((val
* (*)(val
*))(var_13
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var_13
) /* item on <var_13:Iterator[Object]>*/;
4460 { /* Inline coloring#POSetBucketsColorer#colors (self) on <self:POSetBucketsColorer[Object, Object]> */
4461 var18
= self
->attrs
[COLOR_coloring__POSetBucketsColorer___colors
].val
; /* _colors on <self:POSetBucketsColorer[Object, Object]> */
4462 if (unlikely(var18
== NULL
)) {
4463 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _colors");
4464 PRINT_ERROR(" (%s:%d)\n", "compiler/coloring.nit", 330);
4468 RET_LABEL17
:(void)0;
4472 var19
= abstract_collection__MapRead__has_key(var16
, var_bucket
);
4480 { /* Inline coloring#POSetBucketsColorer#colors (self) on <self:POSetBucketsColorer[Object, Object]> */
4481 var23
= self
->attrs
[COLOR_coloring__POSetBucketsColorer___colors
].val
; /* _colors on <self:POSetBucketsColorer[Object, Object]> */
4482 if (unlikely(var23
== NULL
)) {
4483 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _colors");
4484 PRINT_ERROR(" (%s:%d)\n", "compiler/coloring.nit", 330);
4488 RET_LABEL22
:(void)0;
4492 var24
= hash_collection__HashMap___91d_93d(var21
, var_bucket
);
4494 var25
= ((struct instance_kernel__Int
*)var24
)->value
; /* autounbox from nullable Object to Int */;
4497 { /* Inline kernel#Int#> (var_color,var_max) on <var_color:Int> */
4498 /* Covariant cast for argument 0 (i) <var_max:Int> isa OTHER */
4499 /* <var_max:Int> isa OTHER */
4500 var28
= 1; /* easy <var_max:Int> isa OTHER*/
4501 if (unlikely(!var28
)) {
4502 var_class_name31
= type_kernel__Int
.name
;
4503 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name31
);
4504 PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 373);
4507 var32
= var_color
> var_max
;
4510 RET_LABEL27
:(void)0;
4514 var_max
= var_color
;
4517 BREAK_label
: (void)0;
4519 ((void (*)(val
*))(var_13
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var_13
) /* next on <var_13:Iterator[Object]>*/;
4525 BREAK_label33
: (void)0;
4527 { /* Inline abstract_collection#Iterator#finish (var_13) on <var_13:Iterator[Object]> */
4528 RET_LABEL34
:(void)0;
4536 /* method coloring#POSetBucketsColorer#max_color for (self: Object, Object, Map[Object, Set[Object]]): Int */
4537 long VIRTUAL_coloring__POSetBucketsColorer__max_color(val
* self
, val
* p0
, val
* p1
) {
4538 long var
/* : Int */;
4539 long var1
/* : Int */;
4540 var1
= coloring__POSetBucketsColorer__max_color(self
, p0
, p1
);
4545 /* method coloring#POSetBucketsColorer#is_color_free for (self: POSetBucketsColorer[Object, Object], Int, Object, Map[Object, Set[Object]]): Bool */
4546 short int coloring__POSetBucketsColorer__is_color_free(val
* self
, long p0
, val
* p1
, val
* p2
) {
4547 short int var
/* : Bool */;
4548 short int var1
/* : Bool */;
4551 const struct type
* type_struct
;
4552 const char* var_class_name
;
4553 short int var2
/* : Bool */;
4556 const struct type
* type_struct5
;
4557 const char* var_class_name6
;
4558 long var_color
/* var color: Int */;
4559 val
* var_holder
/* var holder: Object */;
4560 val
* var_buckets
/* var buckets: Map[Object, Set[Object]] */;
4561 val
* var7
/* : Map[Object, Set[Object]] */;
4562 val
* var9
/* : Map[Object, Set[Object]] */;
4563 short int var10
/* : Bool */;
4564 short int var11
/* : Bool */;
4565 short int var12
/* : Bool */;
4566 val
* var13
/* : Map[Object, Set[Object]] */;
4567 val
* var15
/* : Map[Object, Set[Object]] */;
4568 val
* var16
/* : nullable Object */;
4569 val
* var_
/* var : Set[Object] */;
4570 val
* var17
/* : Iterator[nullable Object] */;
4571 val
* var_18
/* var : Iterator[Object] */;
4572 short int var19
/* : Bool */;
4573 val
* var20
/* : nullable Object */;
4574 val
* var_conflict
/* var conflict: Object */;
4575 val
* var21
/* : nullable Object */;
4576 val
* var_22
/* var : Set[Object] */;
4577 val
* var23
/* : Iterator[nullable Object] */;
4578 val
* var_24
/* var : Iterator[Object] */;
4579 short int var25
/* : Bool */;
4580 val
* var26
/* : nullable Object */;
4581 val
* var_bucket
/* var bucket: Object */;
4582 val
* var27
/* : HashMap[Object, Int] */;
4583 val
* var29
/* : HashMap[Object, Int] */;
4584 short int var30
/* : Bool */;
4585 short int var31
/* : Bool */;
4586 val
* var32
/* : HashMap[Object, Int] */;
4587 val
* var34
/* : HashMap[Object, Int] */;
4588 val
* var35
/* : nullable Object */;
4589 short int var36
/* : Bool */;
4590 short int var37
/* : Bool */;
4591 short int var39
/* : Bool */;
4592 long var40
/* : Int */;
4593 short int var41
/* : Bool */;
4594 short int var46
/* : Bool */;
4595 /* Covariant cast for argument 1 (holder) <p1:Object> isa H */
4596 /* <p1:Object> isa H */
4597 type_struct
= self
->type
->resolution_table
->types
[COLOR_coloring__POSetBucketsColorer_FT0
];
4598 cltype
= type_struct
->color
;
4599 idtype
= type_struct
->id
;
4600 if(cltype
>= p1
->type
->table_size
) {
4603 var1
= p1
->type
->type_table
[cltype
] == idtype
;
4605 if (unlikely(!var1
)) {
4606 var_class_name
= p1
== NULL ?
"null" : p1
->type
->name
;
4607 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "H", var_class_name
);
4608 PRINT_ERROR(" (%s:%d)\n", "compiler/coloring.nit", 375);
4611 /* Covariant cast for argument 2 (buckets) <p2:Map[Object, Set[Object]]> isa Map[H, Set[E]] */
4612 /* <p2:Map[Object, Set[Object]]> isa Map[H, Set[E]] */
4613 type_struct5
= self
->type
->resolution_table
->types
[COLOR_abstract_collection__Mapcoloring__POSetBucketsColorer_FT0abstract_collection__Setcoloring__POSetBucketsColorer_FT1
];
4614 cltype3
= type_struct5
->color
;
4615 idtype4
= type_struct5
->id
;
4616 if(cltype3
>= p2
->type
->table_size
) {
4619 var2
= p2
->type
->type_table
[cltype3
] == idtype4
;
4621 if (unlikely(!var2
)) {
4622 var_class_name6
= p2
== NULL ?
"null" : p2
->type
->name
;
4623 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "Map[H, Set[E]]", var_class_name6
);
4624 PRINT_ERROR(" (%s:%d)\n", "compiler/coloring.nit", 375);
4631 { /* Inline coloring#POSetBucketsColorer#conflicts (self) on <self:POSetBucketsColorer[Object, Object]> */
4632 var9
= self
->attrs
[COLOR_coloring__POSetBucketsColorer___conflicts
].val
; /* _conflicts on <self:POSetBucketsColorer[Object, Object]> */
4633 if (unlikely(var9
== NULL
)) {
4634 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _conflicts");
4635 PRINT_ERROR(" (%s:%d)\n", "compiler/coloring.nit", 332);
4643 var10
= abstract_collection__MapRead__has_key(var7
, var_holder
);
4653 { /* Inline coloring#POSetBucketsColorer#conflicts (self) on <self:POSetBucketsColorer[Object, Object]> */
4654 var15
= self
->attrs
[COLOR_coloring__POSetBucketsColorer___conflicts
].val
; /* _conflicts on <self:POSetBucketsColorer[Object, Object]> */
4655 if (unlikely(var15
== NULL
)) {
4656 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _conflicts");
4657 PRINT_ERROR(" (%s:%d)\n", "compiler/coloring.nit", 332);
4661 RET_LABEL14
:(void)0;
4665 var16
= ((val
* (*)(val
*, val
*))(var13
->class->vft
[COLOR_abstract_collection__MapRead___91d_93d
]))(var13
, var_holder
) /* [] on <var13:Map[Object, Set[Object]]>*/;
4669 var17
= ((val
* (*)(val
*))(var_
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var_
) /* iterator on <var_:Set[Object]>*/;
4674 var19
= ((short int (*)(val
*))(var_18
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var_18
) /* is_ok on <var_18:Iterator[Object]>*/;
4678 var20
= ((val
* (*)(val
*))(var_18
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var_18
) /* item on <var_18:Iterator[Object]>*/;
4680 var_conflict
= var20
;
4682 var21
= ((val
* (*)(val
*, val
*))(var_buckets
->class->vft
[COLOR_abstract_collection__MapRead___91d_93d
]))(var_buckets
, var_conflict
) /* [] on <var_buckets:Map[Object, Set[Object]]>*/;
4686 var23
= ((val
* (*)(val
*))(var_22
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var_22
) /* iterator on <var_22:Set[Object]>*/;
4691 var25
= ((short int (*)(val
*))(var_24
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var_24
) /* is_ok on <var_24:Iterator[Object]>*/;
4695 var26
= ((val
* (*)(val
*))(var_24
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var_24
) /* item on <var_24:Iterator[Object]>*/;
4699 { /* Inline coloring#POSetBucketsColorer#colors (self) on <self:POSetBucketsColorer[Object, Object]> */
4700 var29
= self
->attrs
[COLOR_coloring__POSetBucketsColorer___colors
].val
; /* _colors on <self:POSetBucketsColorer[Object, Object]> */
4701 if (unlikely(var29
== NULL
)) {
4702 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _colors");
4703 PRINT_ERROR(" (%s:%d)\n", "compiler/coloring.nit", 330);
4707 RET_LABEL28
:(void)0;
4711 var30
= abstract_collection__MapRead__has_key(var27
, var_bucket
);
4719 { /* Inline coloring#POSetBucketsColorer#colors (self) on <self:POSetBucketsColorer[Object, Object]> */
4720 var34
= self
->attrs
[COLOR_coloring__POSetBucketsColorer___colors
].val
; /* _colors on <self:POSetBucketsColorer[Object, Object]> */
4721 if (unlikely(var34
== NULL
)) {
4722 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _colors");
4723 PRINT_ERROR(" (%s:%d)\n", "compiler/coloring.nit", 330);
4727 RET_LABEL33
:(void)0;
4731 var35
= hash_collection__HashMap___91d_93d(var32
, var_bucket
);
4734 { /* Inline kernel#Int#== (var35,var_color) on <var35:nullable Object(Int)> */
4735 var39
= (var35
!= NULL
) && (var35
->class == &class_kernel__Int
);
4737 var40
= ((struct instance_kernel__Int
*)var35
)->value
; /* autounbox from nullable Object to Int */;
4738 var39
= (var40
== var_color
);
4742 RET_LABEL38
:(void)0;
4752 BREAK_label
: (void)0;
4754 ((void (*)(val
*))(var_24
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var_24
) /* next on <var_24:Iterator[Object]>*/;
4760 BREAK_label42
: (void)0;
4762 { /* Inline abstract_collection#Iterator#finish (var_24) on <var_24:Iterator[Object]> */
4763 RET_LABEL43
:(void)0;
4767 ((void (*)(val
*))(var_18
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var_18
) /* next on <var_18:Iterator[Object]>*/;
4773 BREAK_label44
: (void)0;
4775 { /* Inline abstract_collection#Iterator#finish (var_18) on <var_18:Iterator[Object]> */
4776 RET_LABEL45
:(void)0;
4785 /* method coloring#POSetBucketsColorer#is_color_free for (self: Object, Int, Object, Map[Object, Set[Object]]): Bool */
4786 short int VIRTUAL_coloring__POSetBucketsColorer__is_color_free(val
* self
, long p0
, val
* p1
, val
* p2
) {
4787 short int var
/* : Bool */;
4788 short int var1
/* : Bool */;
4789 var1
= coloring__POSetBucketsColorer__is_color_free(self
, p0
, p1
, p2
);