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", "src/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", "src/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", "src/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", "src/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", "src/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", "src/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", "src/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", "src/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", "src/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", "src/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[POSetConflictGraph#0] */
175 /* <p0:POSet[Object]> isa POSet[POSetConflictGraph#0] */
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[POSetConflictGraph#0]", var_class_name
);
187 PRINT_ERROR(" (%s:%d)\n", "src/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[POSetConflictGraph#0] */
202 /* <p0:POSet[Object]> isa POSet[POSetConflictGraph#0] */
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[POSetConflictGraph#0]", var_class_name
);
214 PRINT_ERROR(" (%s:%d)\n", "src/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[POSetConflictGraph#0] */
236 /* <p0:POSet[Object]> isa POSet[POSetConflictGraph#0] */
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[POSetConflictGraph#0]", var_class_name
);
248 PRINT_ERROR(" (%s:%d)\n", "src/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[POSetConflictGraph#0] */
255 /* <var_poset:POSet[Object]> isa POSet[POSetConflictGraph#0] */
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[POSetConflictGraph#0]", var_class_name6
);
267 PRINT_ERROR(" (%s:%d)\n", "src/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
* var6
/* : Iterator[Object] */;
300 short int var7
/* : Bool */;
301 val
* var8
/* : nullable Object */;
302 val
* var_e
/* var e: Object */;
303 val
* var9
/* : POSet[Object] */;
304 val
* var11
/* : POSet[Object] */;
305 val
* var12
/* : POSetElement[Object] */;
306 val
* var13
/* : Collection[Object] */;
307 long var14
/* : Int */;
308 long var15
/* : Int */;
309 short int var16
/* : Bool */;
310 short int var18
/* : Bool */;
313 const char* var_class_name
;
314 short int var19
/* : Bool */;
315 val
* var20
/* : HashSet[Object] */;
316 val
* var22
/* : HashSet[Object] */;
317 val
* var23
/* : POSet[Object] */;
318 val
* var25
/* : POSet[Object] */;
319 val
* var26
/* : POSetElement[Object] */;
320 val
* var27
/* : Collection[Object] */;
322 { /* Inline coloring#POSetConflictGraph#core (self) on <self:POSetConflictGraph[Object]> */
323 var2
= self
->attrs
[COLOR_coloring__POSetConflictGraph___core
].val
; /* _core on <self:POSetConflictGraph[Object]> */
324 if (unlikely(var2
== NULL
)) {
325 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _core");
326 PRINT_ERROR(" (%s:%d)\n", "src/coloring.nit", 22);
334 hash_collection__HashSet__clear(var
); /* Direct call hash_collection#HashSet#clear on <var:HashSet[Object]>*/
337 { /* Inline coloring#POSetConflictGraph#poset (self) on <self:POSetConflictGraph[Object]> */
338 var5
= self
->attrs
[COLOR_coloring__POSetConflictGraph___poset
].val
; /* _poset on <self:POSetConflictGraph[Object]> */
339 if (unlikely(var5
== NULL
)) {
340 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _poset");
341 PRINT_ERROR(" (%s:%d)\n", "src/coloring.nit", 48);
349 var6
= poset__POSet__iterator(var3
);
353 var7
= ((short int (*)(val
*))(var6
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var6
) /* is_ok on <var6:Iterator[Object]>*/;
357 var8
= ((val
* (*)(val
*))(var6
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var6
) /* item on <var6:Iterator[Object]>*/;
361 { /* Inline coloring#POSetConflictGraph#poset (self) on <self:POSetConflictGraph[Object]> */
362 var11
= self
->attrs
[COLOR_coloring__POSetConflictGraph___poset
].val
; /* _poset on <self:POSetConflictGraph[Object]> */
363 if (unlikely(var11
== NULL
)) {
364 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _poset");
365 PRINT_ERROR(" (%s:%d)\n", "src/coloring.nit", 48);
373 var12
= poset__POSet___91d_93d(var9
, var_e
);
376 var13
= poset__POSetElement__direct_greaters(var12
);
379 var14
= ((long (*)(val
*))(var13
->class->vft
[COLOR_abstract_collection__Collection__length
]))(var13
) /* length on <var13:Collection[Object]>*/;
383 { /* Inline kernel#Int#> (var14,var15) on <var14:Int> */
384 /* Covariant cast for argument 0 (i) <var15:Int> isa OTHER */
385 /* <var15:Int> isa OTHER */
386 var18
= 1; /* easy <var15:Int> isa OTHER*/
387 if (unlikely(!var18
)) {
388 var_class_name
= type_kernel__Int
.name
;
389 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name
);
390 PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 327);
393 var19
= var14
> var15
;
401 { /* Inline coloring#POSetConflictGraph#core (self) on <self:POSetConflictGraph[Object]> */
402 var22
= self
->attrs
[COLOR_coloring__POSetConflictGraph___core
].val
; /* _core on <self:POSetConflictGraph[Object]> */
403 if (unlikely(var22
== NULL
)) {
404 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _core");
405 PRINT_ERROR(" (%s:%d)\n", "src/coloring.nit", 22);
413 { /* Inline coloring#POSetConflictGraph#poset (self) on <self:POSetConflictGraph[Object]> */
414 var25
= self
->attrs
[COLOR_coloring__POSetConflictGraph___poset
].val
; /* _poset on <self:POSetConflictGraph[Object]> */
415 if (unlikely(var25
== NULL
)) {
416 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _poset");
417 PRINT_ERROR(" (%s:%d)\n", "src/coloring.nit", 48);
425 var26
= poset__POSet___91d_93d(var23
, var_e
);
428 var27
= poset__POSetElement__greaters(var26
);
431 abstract_collection__SimpleCollection__add_all(var20
, var27
); /* Direct call abstract_collection#SimpleCollection#add_all on <var20:HashSet[Object]>*/
435 CONTINUE_label
: (void)0;
437 ((void (*)(val
*))(var6
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var6
) /* next on <var6:Iterator[Object]>*/;
440 BREAK_label
: (void)0;
443 /* method coloring#POSetConflictGraph#extract_core for (self: Object) */
444 void VIRTUAL_coloring__POSetConflictGraph__extract_core(val
* self
) {
445 coloring__POSetConflictGraph__extract_core(self
); /* Direct call coloring#POSetConflictGraph#extract_core on <self:Object(POSetConflictGraph[Object])>*/
448 /* method coloring#POSetConflictGraph#extract_border for (self: POSetConflictGraph[Object]) */
449 void coloring__POSetConflictGraph__extract_border(val
* self
) {
450 val
* var
/* : HashSet[Object] */;
451 val
* var2
/* : HashSet[Object] */;
452 val
* var3
/* : HashSet[Object] */;
453 val
* var5
/* : HashSet[Object] */;
454 val
* var6
/* : Iterator[Object] */;
455 short int var7
/* : Bool */;
456 val
* var8
/* : nullable Object */;
457 val
* var_e
/* var e: Object */;
458 short int var9
/* : Bool */;
459 short int var10
/* : Bool */;
460 val
* var11
/* : HashSet[Object] */;
461 val
* var13
/* : HashSet[Object] */;
462 val
* var14
/* : HashSet[Object] */;
463 val
* var16
/* : HashSet[Object] */;
464 val
* var17
/* : Iterator[Object] */;
465 short int var18
/* : Bool */;
466 val
* var19
/* : nullable Object */;
467 val
* var_e20
/* var e: Object */;
468 val
* var21
/* : HashSet[Object] */;
469 val
* var23
/* : HashSet[Object] */;
471 { /* Inline coloring#POSetConflictGraph#border (self) on <self:POSetConflictGraph[Object]> */
472 var2
= self
->attrs
[COLOR_coloring__POSetConflictGraph___border
].val
; /* _border on <self:POSetConflictGraph[Object]> */
473 if (unlikely(var2
== NULL
)) {
474 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _border");
475 PRINT_ERROR(" (%s:%d)\n", "src/coloring.nit", 28);
483 hash_collection__HashSet__clear(var
); /* Direct call hash_collection#HashSet#clear on <var:HashSet[Object]>*/
486 { /* Inline coloring#POSetConflictGraph#core (self) on <self:POSetConflictGraph[Object]> */
487 var5
= self
->attrs
[COLOR_coloring__POSetConflictGraph___core
].val
; /* _core on <self:POSetConflictGraph[Object]> */
488 if (unlikely(var5
== NULL
)) {
489 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _core");
490 PRINT_ERROR(" (%s:%d)\n", "src/coloring.nit", 22);
498 var6
= hash_collection__HashSet__iterator(var3
);
502 var7
= ((short int (*)(val
*))(var6
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var6
) /* is_ok on <var6:Iterator[Object]>*/;
506 var8
= ((val
* (*)(val
*))(var6
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var6
) /* item on <var6:Iterator[Object]>*/;
510 var9
= coloring__POSetConflictGraph__is_border(self
, var_e
);
518 { /* Inline coloring#POSetConflictGraph#border (self) on <self:POSetConflictGraph[Object]> */
519 var13
= self
->attrs
[COLOR_coloring__POSetConflictGraph___border
].val
; /* _border on <self:POSetConflictGraph[Object]> */
520 if (unlikely(var13
== NULL
)) {
521 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _border");
522 PRINT_ERROR(" (%s:%d)\n", "src/coloring.nit", 28);
530 hash_collection__HashSet__add(var11
, var_e
); /* Direct call hash_collection#HashSet#add on <var11:HashSet[Object]>*/
532 CONTINUE_label
: (void)0;
534 ((void (*)(val
*))(var6
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var6
) /* next on <var6:Iterator[Object]>*/;
537 BREAK_label
: (void)0;
539 { /* Inline coloring#POSetConflictGraph#border (self) on <self:POSetConflictGraph[Object]> */
540 var16
= self
->attrs
[COLOR_coloring__POSetConflictGraph___border
].val
; /* _border on <self:POSetConflictGraph[Object]> */
541 if (unlikely(var16
== NULL
)) {
542 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _border");
543 PRINT_ERROR(" (%s:%d)\n", "src/coloring.nit", 28);
551 var17
= hash_collection__HashSet__iterator(var14
);
555 var18
= ((short int (*)(val
*))(var17
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var17
) /* is_ok on <var17:Iterator[Object]>*/;
559 var19
= ((val
* (*)(val
*))(var17
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var17
) /* item on <var17:Iterator[Object]>*/;
563 { /* Inline coloring#POSetConflictGraph#core (self) on <self:POSetConflictGraph[Object]> */
564 var23
= self
->attrs
[COLOR_coloring__POSetConflictGraph___core
].val
; /* _core on <self:POSetConflictGraph[Object]> */
565 if (unlikely(var23
== NULL
)) {
566 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _core");
567 PRINT_ERROR(" (%s:%d)\n", "src/coloring.nit", 22);
575 hash_collection__HashSet__remove(var21
, var_e20
); /* Direct call hash_collection#HashSet#remove on <var21:HashSet[Object]>*/
577 CONTINUE_label24
: (void)0;
579 ((void (*)(val
*))(var17
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var17
) /* next on <var17:Iterator[Object]>*/;
582 BREAK_label24
: (void)0;
585 /* method coloring#POSetConflictGraph#extract_border for (self: Object) */
586 void VIRTUAL_coloring__POSetConflictGraph__extract_border(val
* self
) {
587 coloring__POSetConflictGraph__extract_border(self
); /* Direct call coloring#POSetConflictGraph#extract_border on <self:Object(POSetConflictGraph[Object])>*/
590 /* method coloring#POSetConflictGraph#is_border for (self: POSetConflictGraph[Object], Object): Bool */
591 short int coloring__POSetConflictGraph__is_border(val
* self
, val
* p0
) {
592 short int var
/* : Bool */;
593 short int var1
/* : Bool */;
596 const struct type
* type_struct
;
597 const char* var_class_name
;
598 val
* var_e
/* var e: Object */;
599 val
* var2
/* : POSet[Object] */;
600 val
* var4
/* : POSet[Object] */;
601 val
* var5
/* : POSetElement[Object] */;
602 val
* var6
/* : Collection[Object] */;
603 val
* var7
/* : Iterator[nullable Object] */;
604 short int var8
/* : Bool */;
605 val
* var9
/* : nullable Object */;
606 val
* var_child
/* var child: Object */;
607 val
* var10
/* : HashSet[Object] */;
608 val
* var12
/* : HashSet[Object] */;
609 short int var13
/* : Bool */;
610 short int var14
/* : Bool */;
611 short int var15
/* : Bool */;
612 /* Covariant cast for argument 0 (e) <p0:Object> isa POSetConflictGraph#0 */
613 /* <p0:Object> isa POSetConflictGraph#0 */
614 type_struct
= self
->type
->resolution_table
->types
[COLOR_coloring__POSetConflictGraph_FT0
];
615 cltype
= type_struct
->color
;
616 idtype
= type_struct
->id
;
617 if(cltype
>= p0
->type
->table_size
) {
620 var1
= p0
->type
->type_table
[cltype
] == idtype
;
622 if (unlikely(!var1
)) {
623 var_class_name
= p0
== NULL ?
"null" : p0
->type
->name
;
624 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "POSetConflictGraph#0", var_class_name
);
625 PRINT_ERROR(" (%s:%d)\n", "src/coloring.nit", 79);
630 { /* Inline coloring#POSetConflictGraph#poset (self) on <self:POSetConflictGraph[Object]> */
631 var4
= self
->attrs
[COLOR_coloring__POSetConflictGraph___poset
].val
; /* _poset on <self:POSetConflictGraph[Object]> */
632 if (unlikely(var4
== NULL
)) {
633 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _poset");
634 PRINT_ERROR(" (%s:%d)\n", "src/coloring.nit", 48);
642 var5
= poset__POSet___91d_93d(var2
, var_e
);
645 var6
= poset__POSetElement__direct_smallers(var5
);
648 var7
= ((val
* (*)(val
*))(var6
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var6
) /* iterator on <var6:Collection[Object]>*/;
652 var8
= ((short int (*)(val
*))(var7
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var7
) /* is_ok on <var7:Iterator[nullable Object]>*/;
656 var9
= ((val
* (*)(val
*))(var7
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var7
) /* item on <var7:Iterator[nullable Object]>*/;
660 { /* Inline coloring#POSetConflictGraph#core (self) on <self:POSetConflictGraph[Object]> */
661 var12
= self
->attrs
[COLOR_coloring__POSetConflictGraph___core
].val
; /* _core on <self:POSetConflictGraph[Object]> */
662 if (unlikely(var12
== NULL
)) {
663 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _core");
664 PRINT_ERROR(" (%s:%d)\n", "src/coloring.nit", 22);
672 var13
= hash_collection__HashSet__has(var10
, var_child
);
680 CONTINUE_label
: (void)0;
682 ((void (*)(val
*))(var7
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var7
) /* next on <var7:Iterator[nullable Object]>*/;
685 BREAK_label
: (void)0;
692 /* method coloring#POSetConflictGraph#is_border for (self: Object, Object): Bool */
693 short int VIRTUAL_coloring__POSetConflictGraph__is_border(val
* self
, val
* p0
) {
694 short int var
/* : Bool */;
695 short int var1
/* : Bool */;
696 var1
= coloring__POSetConflictGraph__is_border(self
, p0
);
701 /* method coloring#POSetConflictGraph#extract_crown for (self: POSetConflictGraph[Object]) */
702 void coloring__POSetConflictGraph__extract_crown(val
* self
) {
703 val
* var
/* : HashSet[Object] */;
704 val
* var2
/* : HashSet[Object] */;
705 val
* var3
/* : POSet[Object] */;
706 val
* var5
/* : POSet[Object] */;
707 val
* var6
/* : Iterator[Object] */;
708 short int var7
/* : Bool */;
709 val
* var8
/* : nullable Object */;
710 val
* var_e
/* var e: Object */;
711 short int var9
/* : Bool */;
712 val
* var10
/* : HashSet[Object] */;
713 val
* var12
/* : HashSet[Object] */;
714 short int var13
/* : Bool */;
715 short int var14
/* : Bool */;
716 short int var_
/* var : Bool */;
717 val
* var15
/* : HashSet[Object] */;
718 val
* var17
/* : HashSet[Object] */;
719 short int var18
/* : Bool */;
720 short int var19
/* : Bool */;
721 val
* var20
/* : HashSet[Object] */;
722 val
* var22
/* : HashSet[Object] */;
724 { /* Inline coloring#POSetConflictGraph#crown (self) on <self:POSetConflictGraph[Object]> */
725 var2
= self
->attrs
[COLOR_coloring__POSetConflictGraph___crown
].val
; /* _crown on <self:POSetConflictGraph[Object]> */
726 if (unlikely(var2
== NULL
)) {
727 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _crown");
728 PRINT_ERROR(" (%s:%d)\n", "src/coloring.nit", 34);
736 hash_collection__HashSet__clear(var
); /* Direct call hash_collection#HashSet#clear on <var:HashSet[Object]>*/
739 { /* Inline coloring#POSetConflictGraph#poset (self) on <self:POSetConflictGraph[Object]> */
740 var5
= self
->attrs
[COLOR_coloring__POSetConflictGraph___poset
].val
; /* _poset on <self:POSetConflictGraph[Object]> */
741 if (unlikely(var5
== NULL
)) {
742 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _poset");
743 PRINT_ERROR(" (%s:%d)\n", "src/coloring.nit", 48);
751 var6
= poset__POSet__iterator(var3
);
755 var7
= ((short int (*)(val
*))(var6
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var6
) /* is_ok on <var6:Iterator[Object]>*/;
759 var8
= ((val
* (*)(val
*))(var6
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var6
) /* item on <var6:Iterator[Object]>*/;
763 { /* Inline coloring#POSetConflictGraph#core (self) on <self:POSetConflictGraph[Object]> */
764 var12
= self
->attrs
[COLOR_coloring__POSetConflictGraph___core
].val
; /* _core on <self:POSetConflictGraph[Object]> */
765 if (unlikely(var12
== NULL
)) {
766 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _core");
767 PRINT_ERROR(" (%s:%d)\n", "src/coloring.nit", 22);
775 var13
= hash_collection__HashSet__has(var10
, var_e
);
781 { /* Inline coloring#POSetConflictGraph#border (self) on <self:POSetConflictGraph[Object]> */
782 var17
= self
->attrs
[COLOR_coloring__POSetConflictGraph___border
].val
; /* _border on <self:POSetConflictGraph[Object]> */
783 if (unlikely(var17
== NULL
)) {
784 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _border");
785 PRINT_ERROR(" (%s:%d)\n", "src/coloring.nit", 28);
793 var18
= hash_collection__HashSet__has(var15
, var_e
);
802 { /* Inline coloring#POSetConflictGraph#crown (self) on <self:POSetConflictGraph[Object]> */
803 var22
= self
->attrs
[COLOR_coloring__POSetConflictGraph___crown
].val
; /* _crown on <self:POSetConflictGraph[Object]> */
804 if (unlikely(var22
== NULL
)) {
805 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _crown");
806 PRINT_ERROR(" (%s:%d)\n", "src/coloring.nit", 34);
814 hash_collection__HashSet__add(var20
, var_e
); /* Direct call hash_collection#HashSet#add on <var20:HashSet[Object]>*/
818 CONTINUE_label
: (void)0;
820 ((void (*)(val
*))(var6
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var6
) /* next on <var6:Iterator[Object]>*/;
823 BREAK_label
: (void)0;
826 /* method coloring#POSetConflictGraph#extract_crown for (self: Object) */
827 void VIRTUAL_coloring__POSetConflictGraph__extract_crown(val
* self
) {
828 coloring__POSetConflictGraph__extract_crown(self
); /* Direct call coloring#POSetConflictGraph#extract_crown on <self:Object(POSetConflictGraph[Object])>*/
831 /* method coloring#POSetConflictGraph#compute_conflicts for (self: POSetConflictGraph[Object]) */
832 void coloring__POSetConflictGraph__compute_conflicts(val
* self
) {
833 val
* var
/* : HashMap[Object, Set[Object]] */;
834 val
* var2
/* : HashMap[Object, Set[Object]] */;
835 val
* var3
/* : HashSet[Object] */;
836 val
* var5
/* : HashSet[Object] */;
837 val
* var6
/* : Iterator[Object] */;
838 short int var7
/* : Bool */;
839 val
* var8
/* : nullable Object */;
840 val
* var_e
/* var e: Object */;
841 val
* var9
/* : POSet[Object] */;
842 val
* var11
/* : POSet[Object] */;
843 val
* var12
/* : POSetElement[Object] */;
844 val
* var13
/* : Collection[Object] */;
846 { /* Inline coloring#POSetConflictGraph#conflicts (self) on <self:POSetConflictGraph[Object]> */
847 var2
= self
->attrs
[COLOR_coloring__POSetConflictGraph___conflicts
].val
; /* _conflicts on <self:POSetConflictGraph[Object]> */
848 if (unlikely(var2
== NULL
)) {
849 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _conflicts");
850 PRINT_ERROR(" (%s:%d)\n", "src/coloring.nit", 40);
858 hash_collection__HashMap__clear(var
); /* Direct call hash_collection#HashMap#clear on <var:HashMap[Object, Set[Object]]>*/
861 { /* Inline coloring#POSetConflictGraph#border (self) on <self:POSetConflictGraph[Object]> */
862 var5
= self
->attrs
[COLOR_coloring__POSetConflictGraph___border
].val
; /* _border on <self:POSetConflictGraph[Object]> */
863 if (unlikely(var5
== NULL
)) {
864 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _border");
865 PRINT_ERROR(" (%s:%d)\n", "src/coloring.nit", 28);
873 var6
= hash_collection__HashSet__iterator(var3
);
877 var7
= ((short int (*)(val
*))(var6
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var6
) /* is_ok on <var6:Iterator[Object]>*/;
881 var8
= ((val
* (*)(val
*))(var6
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var6
) /* item on <var6:Iterator[Object]>*/;
885 { /* Inline coloring#POSetConflictGraph#poset (self) on <self:POSetConflictGraph[Object]> */
886 var11
= self
->attrs
[COLOR_coloring__POSetConflictGraph___poset
].val
; /* _poset on <self:POSetConflictGraph[Object]> */
887 if (unlikely(var11
== NULL
)) {
888 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _poset");
889 PRINT_ERROR(" (%s:%d)\n", "src/coloring.nit", 48);
897 var12
= poset__POSet___91d_93d(var9
, var_e
);
900 var13
= poset__POSetElement__greaters(var12
);
903 coloring__POSetConflictGraph__add_conflicts(self
, var13
); /* Direct call coloring#POSetConflictGraph#add_conflicts on <self:POSetConflictGraph[Object]>*/
905 CONTINUE_label
: (void)0;
907 ((void (*)(val
*))(var6
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var6
) /* next on <var6:Iterator[Object]>*/;
910 BREAK_label
: (void)0;
913 /* method coloring#POSetConflictGraph#compute_conflicts for (self: Object) */
914 void VIRTUAL_coloring__POSetConflictGraph__compute_conflicts(val
* self
) {
915 coloring__POSetConflictGraph__compute_conflicts(self
); /* Direct call coloring#POSetConflictGraph#compute_conflicts on <self:Object(POSetConflictGraph[Object])>*/
918 /* method coloring#POSetConflictGraph#add_conflict for (self: POSetConflictGraph[Object], Object, Object) */
919 void coloring__POSetConflictGraph__add_conflict(val
* self
, val
* p0
, val
* p1
) {
920 short int var
/* : Bool */;
923 const struct type
* type_struct
;
924 const char* var_class_name
;
925 short int var1
/* : Bool */;
928 const struct type
* type_struct4
;
929 const char* var_class_name5
;
930 val
* var_e
/* var e: Object */;
931 val
* var_o
/* var o: Object */;
932 val
* var6
/* : HashMap[Object, Set[Object]] */;
933 val
* var8
/* : HashMap[Object, Set[Object]] */;
934 short int var9
/* : Bool */;
935 short int var10
/* : Bool */;
936 val
* var11
/* : HashMap[Object, Set[Object]] */;
937 val
* var13
/* : HashMap[Object, Set[Object]] */;
938 val
* var14
/* : HashSet[Object] */;
939 val
* var15
/* : HashMap[Object, Set[Object]] */;
940 val
* var17
/* : HashMap[Object, Set[Object]] */;
941 short int var18
/* : Bool */;
942 short int var19
/* : Bool */;
943 val
* var20
/* : HashMap[Object, Set[Object]] */;
944 val
* var22
/* : HashMap[Object, Set[Object]] */;
945 val
* var23
/* : HashSet[Object] */;
946 val
* var24
/* : HashMap[Object, Set[Object]] */;
947 val
* var26
/* : HashMap[Object, Set[Object]] */;
948 val
* var27
/* : nullable Object */;
949 val
* var28
/* : HashMap[Object, Set[Object]] */;
950 val
* var30
/* : HashMap[Object, Set[Object]] */;
951 val
* var31
/* : nullable Object */;
952 /* Covariant cast for argument 0 (e) <p0:Object> isa POSetConflictGraph#0 */
953 /* <p0:Object> isa POSetConflictGraph#0 */
954 type_struct
= self
->type
->resolution_table
->types
[COLOR_coloring__POSetConflictGraph_FT0
];
955 cltype
= type_struct
->color
;
956 idtype
= type_struct
->id
;
957 if(cltype
>= p0
->type
->table_size
) {
960 var
= p0
->type
->type_table
[cltype
] == idtype
;
962 if (unlikely(!var
)) {
963 var_class_name
= p0
== NULL ?
"null" : p0
->type
->name
;
964 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "POSetConflictGraph#0", var_class_name
);
965 PRINT_ERROR(" (%s:%d)\n", "src/coloring.nit", 101);
968 /* Covariant cast for argument 1 (o) <p1:Object> isa POSetConflictGraph#0 */
969 /* <p1:Object> isa POSetConflictGraph#0 */
970 type_struct4
= self
->type
->resolution_table
->types
[COLOR_coloring__POSetConflictGraph_FT0
];
971 cltype2
= type_struct4
->color
;
972 idtype3
= type_struct4
->id
;
973 if(cltype2
>= p1
->type
->table_size
) {
976 var1
= p1
->type
->type_table
[cltype2
] == idtype3
;
978 if (unlikely(!var1
)) {
979 var_class_name5
= p1
== NULL ?
"null" : p1
->type
->name
;
980 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "POSetConflictGraph#0", var_class_name5
);
981 PRINT_ERROR(" (%s:%d)\n", "src/coloring.nit", 101);
987 { /* Inline coloring#POSetConflictGraph#conflicts (self) on <self:POSetConflictGraph[Object]> */
988 var8
= self
->attrs
[COLOR_coloring__POSetConflictGraph___conflicts
].val
; /* _conflicts on <self:POSetConflictGraph[Object]> */
989 if (unlikely(var8
== NULL
)) {
990 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _conflicts");
991 PRINT_ERROR(" (%s:%d)\n", "src/coloring.nit", 40);
999 var9
= abstract_collection__MapRead__has_key(var6
, var_e
);
1004 { /* Inline coloring#POSetConflictGraph#conflicts (self) on <self:POSetConflictGraph[Object]> */
1005 var13
= self
->attrs
[COLOR_coloring__POSetConflictGraph___conflicts
].val
; /* _conflicts on <self:POSetConflictGraph[Object]> */
1006 if (unlikely(var13
== NULL
)) {
1007 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _conflicts");
1008 PRINT_ERROR(" (%s:%d)\n", "src/coloring.nit", 40);
1012 RET_LABEL12
:(void)0;
1015 var14
= NEW_hash_collection__HashSet(self
->type
->resolution_table
->types
[COLOR_hash_collection__HashSetcoloring__POSetConflictGraph_FT0
]);
1017 hash_collection__HashSet__init(var14
); /* Direct call hash_collection#HashSet#init on <var14:HashSet[Object]>*/
1020 hash_collection__HashMap___91d_93d_61d(var11
, var_e
, var14
); /* Direct call hash_collection#HashMap#[]= on <var11:HashMap[Object, Set[Object]]>*/
1025 { /* Inline coloring#POSetConflictGraph#conflicts (self) on <self:POSetConflictGraph[Object]> */
1026 var17
= self
->attrs
[COLOR_coloring__POSetConflictGraph___conflicts
].val
; /* _conflicts on <self:POSetConflictGraph[Object]> */
1027 if (unlikely(var17
== NULL
)) {
1028 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _conflicts");
1029 PRINT_ERROR(" (%s:%d)\n", "src/coloring.nit", 40);
1033 RET_LABEL16
:(void)0;
1037 var18
= abstract_collection__MapRead__has_key(var15
, var_o
);
1042 { /* Inline coloring#POSetConflictGraph#conflicts (self) on <self:POSetConflictGraph[Object]> */
1043 var22
= self
->attrs
[COLOR_coloring__POSetConflictGraph___conflicts
].val
; /* _conflicts on <self:POSetConflictGraph[Object]> */
1044 if (unlikely(var22
== NULL
)) {
1045 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _conflicts");
1046 PRINT_ERROR(" (%s:%d)\n", "src/coloring.nit", 40);
1050 RET_LABEL21
:(void)0;
1053 var23
= NEW_hash_collection__HashSet(self
->type
->resolution_table
->types
[COLOR_hash_collection__HashSetcoloring__POSetConflictGraph_FT0
]);
1055 hash_collection__HashSet__init(var23
); /* Direct call hash_collection#HashSet#init on <var23:HashSet[Object]>*/
1058 hash_collection__HashMap___91d_93d_61d(var20
, var_o
, var23
); /* Direct call hash_collection#HashMap#[]= on <var20:HashMap[Object, Set[Object]]>*/
1063 { /* Inline coloring#POSetConflictGraph#conflicts (self) on <self:POSetConflictGraph[Object]> */
1064 var26
= self
->attrs
[COLOR_coloring__POSetConflictGraph___conflicts
].val
; /* _conflicts on <self:POSetConflictGraph[Object]> */
1065 if (unlikely(var26
== NULL
)) {
1066 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _conflicts");
1067 PRINT_ERROR(" (%s:%d)\n", "src/coloring.nit", 40);
1071 RET_LABEL25
:(void)0;
1075 var27
= hash_collection__HashMap___91d_93d(var24
, var_e
);
1078 ((void (*)(val
*, val
*))(var27
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var27
, var_o
) /* add on <var27:nullable Object(Set[Object])>*/;
1081 { /* Inline coloring#POSetConflictGraph#conflicts (self) on <self:POSetConflictGraph[Object]> */
1082 var30
= self
->attrs
[COLOR_coloring__POSetConflictGraph___conflicts
].val
; /* _conflicts on <self:POSetConflictGraph[Object]> */
1083 if (unlikely(var30
== NULL
)) {
1084 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _conflicts");
1085 PRINT_ERROR(" (%s:%d)\n", "src/coloring.nit", 40);
1089 RET_LABEL29
:(void)0;
1093 var31
= hash_collection__HashMap___91d_93d(var28
, var_o
);
1096 ((void (*)(val
*, val
*))(var31
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var31
, var_e
) /* add on <var31:nullable Object(Set[Object])>*/;
1100 /* method coloring#POSetConflictGraph#add_conflict for (self: Object, Object, Object) */
1101 void VIRTUAL_coloring__POSetConflictGraph__add_conflict(val
* self
, val
* p0
, val
* p1
) {
1102 coloring__POSetConflictGraph__add_conflict(self
, p0
, p1
); /* Direct call coloring#POSetConflictGraph#add_conflict on <self:Object(POSetConflictGraph[Object])>*/
1105 /* method coloring#POSetConflictGraph#add_conflicts for (self: POSetConflictGraph[Object], Collection[Object]) */
1106 void coloring__POSetConflictGraph__add_conflicts(val
* self
, val
* p0
) {
1107 short int var
/* : Bool */;
1110 const struct type
* type_struct
;
1111 const char* var_class_name
;
1112 val
* var_es
/* var es: Collection[Object] */;
1113 val
* var1
/* : Iterator[nullable Object] */;
1114 short int var2
/* : Bool */;
1115 val
* var3
/* : nullable Object */;
1116 val
* var_e1
/* var e1: Object */;
1117 val
* var4
/* : Iterator[nullable Object] */;
1118 short int var5
/* : Bool */;
1119 val
* var6
/* : nullable Object */;
1120 val
* var_e2
/* var e2: Object */;
1121 /* Covariant cast for argument 0 (es) <p0:Collection[Object]> isa Collection[POSetConflictGraph#0] */
1122 /* <p0:Collection[Object]> isa Collection[POSetConflictGraph#0] */
1123 type_struct
= self
->type
->resolution_table
->types
[COLOR_abstract_collection__Collectioncoloring__POSetConflictGraph_FT0
];
1124 cltype
= type_struct
->color
;
1125 idtype
= type_struct
->id
;
1126 if(cltype
>= p0
->type
->table_size
) {
1129 var
= p0
->type
->type_table
[cltype
] == idtype
;
1131 if (unlikely(!var
)) {
1132 var_class_name
= p0
== NULL ?
"null" : p0
->type
->name
;
1133 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "Collection[POSetConflictGraph#0]", var_class_name
);
1134 PRINT_ERROR(" (%s:%d)\n", "src/coloring.nit", 108);
1139 var1
= ((val
* (*)(val
*))(var_es
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var_es
) /* iterator on <var_es:Collection[Object]>*/;
1143 var2
= ((short int (*)(val
*))(var1
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var1
) /* is_ok on <var1:Iterator[nullable Object]>*/;
1147 var3
= ((val
* (*)(val
*))(var1
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var1
) /* item on <var1:Iterator[nullable Object]>*/;
1151 var4
= ((val
* (*)(val
*))(var_es
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var_es
) /* iterator on <var_es:Collection[Object]>*/;
1155 var5
= ((short int (*)(val
*))(var4
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var4
) /* is_ok on <var4:Iterator[nullable Object]>*/;
1159 var6
= ((val
* (*)(val
*))(var4
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var4
) /* item on <var4:Iterator[nullable Object]>*/;
1163 coloring__POSetConflictGraph__add_conflict(self
, var_e1
, var_e2
); /* Direct call coloring#POSetConflictGraph#add_conflict on <self:POSetConflictGraph[Object]>*/
1165 CONTINUE_label
: (void)0;
1167 ((void (*)(val
*))(var4
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var4
) /* next on <var4:Iterator[nullable Object]>*/;
1170 BREAK_label
: (void)0;
1171 CONTINUE_label7
: (void)0;
1173 ((void (*)(val
*))(var1
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var1
) /* next on <var1:Iterator[nullable Object]>*/;
1176 BREAK_label7
: (void)0;
1179 /* method coloring#POSetConflictGraph#add_conflicts for (self: Object, Collection[Object]) */
1180 void VIRTUAL_coloring__POSetConflictGraph__add_conflicts(val
* self
, val
* p0
) {
1181 coloring__POSetConflictGraph__add_conflicts(self
, p0
); /* Direct call coloring#POSetConflictGraph#add_conflicts on <self:Object(POSetConflictGraph[Object])>*/
1184 /* method coloring#POSetColorer#is_colored for (self: POSetColorer[Object]): Bool */
1185 short int coloring__POSetColorer__is_colored(val
* self
) {
1186 short int var
/* : Bool */;
1187 short int var1
/* : Bool */;
1188 var1
= self
->attrs
[COLOR_coloring__POSetColorer___is_colored
].s
; /* _is_colored on <self:POSetColorer[Object]> */
1193 /* method coloring#POSetColorer#is_colored for (self: Object): Bool */
1194 short int VIRTUAL_coloring__POSetColorer__is_colored(val
* self
) {
1195 short int var
/* : Bool */;
1196 short int var1
/* : Bool */;
1197 short int var3
/* : Bool */;
1198 { /* Inline coloring#POSetColorer#is_colored (self) on <self:Object(POSetColorer[Object])> */
1199 var3
= self
->attrs
[COLOR_coloring__POSetColorer___is_colored
].s
; /* _is_colored on <self:Object(POSetColorer[Object])> */
1207 /* method coloring#POSetColorer#is_colored= for (self: POSetColorer[Object], Bool) */
1208 void coloring__POSetColorer__is_colored_61d(val
* self
, short int p0
) {
1209 self
->attrs
[COLOR_coloring__POSetColorer___is_colored
].s
= p0
; /* _is_colored on <self:POSetColorer[Object]> */
1212 /* method coloring#POSetColorer#is_colored= for (self: Object, Bool) */
1213 void VIRTUAL_coloring__POSetColorer__is_colored_61d(val
* self
, short int p0
) {
1214 { /* Inline coloring#POSetColorer#is_colored= (self,p0) on <self:Object(POSetColorer[Object])> */
1215 self
->attrs
[COLOR_coloring__POSetColorer___is_colored
].s
= p0
; /* _is_colored on <self:Object(POSetColorer[Object])> */
1220 /* method coloring#POSetColorer#ids for (self: POSetColorer[Object]): Map[Object, Int] */
1221 val
* coloring__POSetColorer__ids(val
* self
) {
1222 val
* var
/* : Map[Object, Int] */;
1223 short int var1
/* : Bool */;
1224 short int var3
/* : Bool */;
1225 val
* var4
/* : HashMap[Object, Int] */;
1226 val
* var6
/* : HashMap[Object, Int] */;
1228 { /* Inline coloring#POSetColorer#is_colored (self) on <self:POSetColorer[Object]> */
1229 var3
= self
->attrs
[COLOR_coloring__POSetColorer___is_colored
].s
; /* _is_colored on <self:POSetColorer[Object]> */
1234 if (unlikely(!var1
)) {
1235 PRINT_ERROR("Runtime error: %s", "Assert failed");
1236 PRINT_ERROR(" (%s:%d)\n", "src/coloring.nit", 162);
1240 { /* Inline coloring#POSetColorer#ids_cache (self) on <self:POSetColorer[Object]> */
1241 var6
= self
->attrs
[COLOR_coloring__POSetColorer___ids_cache
].val
; /* _ids_cache on <self:POSetColorer[Object]> */
1242 if (unlikely(var6
== NULL
)) {
1243 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _ids_cache");
1244 PRINT_ERROR(" (%s:%d)\n", "src/coloring.nit", 165);
1256 /* method coloring#POSetColorer#ids for (self: Object): Map[Object, Int] */
1257 val
* VIRTUAL_coloring__POSetColorer__ids(val
* self
) {
1258 val
* var
/* : Map[Object, Int] */;
1259 val
* var1
/* : Map[Object, Int] */;
1260 var1
= coloring__POSetColorer__ids(self
);
1265 /* method coloring#POSetColorer#ids_cache for (self: POSetColorer[Object]): HashMap[Object, Int] */
1266 val
* coloring__POSetColorer__ids_cache(val
* self
) {
1267 val
* var
/* : HashMap[Object, Int] */;
1268 val
* var1
/* : HashMap[Object, Int] */;
1269 var1
= self
->attrs
[COLOR_coloring__POSetColorer___ids_cache
].val
; /* _ids_cache on <self:POSetColorer[Object]> */
1270 if (unlikely(var1
== NULL
)) {
1271 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _ids_cache");
1272 PRINT_ERROR(" (%s:%d)\n", "src/coloring.nit", 165);
1279 /* method coloring#POSetColorer#ids_cache for (self: Object): HashMap[Object, Int] */
1280 val
* VIRTUAL_coloring__POSetColorer__ids_cache(val
* self
) {
1281 val
* var
/* : HashMap[Object, Int] */;
1282 val
* var1
/* : HashMap[Object, Int] */;
1283 val
* var3
/* : HashMap[Object, Int] */;
1284 { /* Inline coloring#POSetColorer#ids_cache (self) on <self:Object(POSetColorer[Object])> */
1285 var3
= self
->attrs
[COLOR_coloring__POSetColorer___ids_cache
].val
; /* _ids_cache on <self:Object(POSetColorer[Object])> */
1286 if (unlikely(var3
== NULL
)) {
1287 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _ids_cache");
1288 PRINT_ERROR(" (%s:%d)\n", "src/coloring.nit", 165);
1298 /* method coloring#POSetColorer#colors for (self: POSetColorer[Object]): Map[Object, Int] */
1299 val
* coloring__POSetColorer__colors(val
* self
) {
1300 val
* var
/* : Map[Object, Int] */;
1301 short int var1
/* : Bool */;
1302 short int var3
/* : Bool */;
1303 val
* var4
/* : HashMap[Object, Int] */;
1304 val
* var6
/* : HashMap[Object, Int] */;
1306 { /* Inline coloring#POSetColorer#is_colored (self) on <self:POSetColorer[Object]> */
1307 var3
= self
->attrs
[COLOR_coloring__POSetColorer___is_colored
].s
; /* _is_colored on <self:POSetColorer[Object]> */
1312 if (unlikely(!var1
)) {
1313 PRINT_ERROR("Runtime error: %s", "Assert failed");
1314 PRINT_ERROR(" (%s:%d)\n", "src/coloring.nit", 170);
1318 { /* Inline coloring#POSetColorer#colors_cache (self) on <self:POSetColorer[Object]> */
1319 var6
= self
->attrs
[COLOR_coloring__POSetColorer___colors_cache
].val
; /* _colors_cache on <self:POSetColorer[Object]> */
1320 if (unlikely(var6
== NULL
)) {
1321 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _colors_cache");
1322 PRINT_ERROR(" (%s:%d)\n", "src/coloring.nit", 173);
1334 /* method coloring#POSetColorer#colors for (self: Object): Map[Object, Int] */
1335 val
* VIRTUAL_coloring__POSetColorer__colors(val
* self
) {
1336 val
* var
/* : Map[Object, Int] */;
1337 val
* var1
/* : Map[Object, Int] */;
1338 var1
= coloring__POSetColorer__colors(self
);
1343 /* method coloring#POSetColorer#colors_cache for (self: POSetColorer[Object]): HashMap[Object, Int] */
1344 val
* coloring__POSetColorer__colors_cache(val
* self
) {
1345 val
* var
/* : HashMap[Object, Int] */;
1346 val
* var1
/* : HashMap[Object, Int] */;
1347 var1
= self
->attrs
[COLOR_coloring__POSetColorer___colors_cache
].val
; /* _colors_cache on <self:POSetColorer[Object]> */
1348 if (unlikely(var1
== NULL
)) {
1349 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _colors_cache");
1350 PRINT_ERROR(" (%s:%d)\n", "src/coloring.nit", 173);
1357 /* method coloring#POSetColorer#colors_cache for (self: Object): HashMap[Object, Int] */
1358 val
* VIRTUAL_coloring__POSetColorer__colors_cache(val
* self
) {
1359 val
* var
/* : HashMap[Object, Int] */;
1360 val
* var1
/* : HashMap[Object, Int] */;
1361 val
* var3
/* : HashMap[Object, Int] */;
1362 { /* Inline coloring#POSetColorer#colors_cache (self) on <self:Object(POSetColorer[Object])> */
1363 var3
= self
->attrs
[COLOR_coloring__POSetColorer___colors_cache
].val
; /* _colors_cache on <self:Object(POSetColorer[Object])> */
1364 if (unlikely(var3
== NULL
)) {
1365 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _colors_cache");
1366 PRINT_ERROR(" (%s:%d)\n", "src/coloring.nit", 173);
1376 /* method coloring#POSetColorer#poset_cache for (self: POSetColorer[Object]): POSet[Object] */
1377 val
* coloring__POSetColorer__poset_cache(val
* self
) {
1378 val
* var
/* : POSet[Object] */;
1379 val
* var1
/* : POSet[Object] */;
1380 var1
= self
->attrs
[COLOR_coloring__POSetColorer___poset_cache
].val
; /* _poset_cache on <self:POSetColorer[Object]> */
1381 if (unlikely(var1
== NULL
)) {
1382 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _poset_cache");
1383 PRINT_ERROR(" (%s:%d)\n", "src/coloring.nit", 180);
1390 /* method coloring#POSetColorer#poset_cache for (self: Object): POSet[Object] */
1391 val
* VIRTUAL_coloring__POSetColorer__poset_cache(val
* self
) {
1392 val
* var
/* : POSet[Object] */;
1393 val
* var1
/* : POSet[Object] */;
1394 val
* var3
/* : POSet[Object] */;
1395 { /* Inline coloring#POSetColorer#poset_cache (self) on <self:Object(POSetColorer[Object])> */
1396 var3
= self
->attrs
[COLOR_coloring__POSetColorer___poset_cache
].val
; /* _poset_cache on <self:Object(POSetColorer[Object])> */
1397 if (unlikely(var3
== NULL
)) {
1398 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _poset_cache");
1399 PRINT_ERROR(" (%s:%d)\n", "src/coloring.nit", 180);
1409 /* method coloring#POSetColorer#poset_cache= for (self: POSetColorer[Object], POSet[Object]) */
1410 void coloring__POSetColorer__poset_cache_61d(val
* self
, val
* p0
) {
1411 short int var
/* : Bool */;
1414 const struct type
* type_struct
;
1415 const char* var_class_name
;
1416 /* Covariant cast for argument 0 (poset_cache) <p0:POSet[Object]> isa POSet[POSetColorer#0] */
1417 /* <p0:POSet[Object]> isa POSet[POSetColorer#0] */
1418 type_struct
= self
->type
->resolution_table
->types
[COLOR_poset__POSetcoloring__POSetColorer_FT0
];
1419 cltype
= type_struct
->color
;
1420 idtype
= type_struct
->id
;
1421 if(cltype
>= p0
->type
->table_size
) {
1424 var
= p0
->type
->type_table
[cltype
] == idtype
;
1426 if (unlikely(!var
)) {
1427 var_class_name
= p0
== NULL ?
"null" : p0
->type
->name
;
1428 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "POSet[POSetColorer#0]", var_class_name
);
1429 PRINT_ERROR(" (%s:%d)\n", "src/coloring.nit", 180);
1432 self
->attrs
[COLOR_coloring__POSetColorer___poset_cache
].val
= p0
; /* _poset_cache on <self:POSetColorer[Object]> */
1435 /* method coloring#POSetColorer#poset_cache= for (self: Object, POSet[Object]) */
1436 void VIRTUAL_coloring__POSetColorer__poset_cache_61d(val
* self
, val
* p0
) {
1437 short int var
/* : Bool */;
1440 const struct type
* type_struct
;
1441 const char* var_class_name
;
1442 { /* Inline coloring#POSetColorer#poset_cache= (self,p0) on <self:Object(POSetColorer[Object])> */
1443 /* Covariant cast for argument 0 (poset_cache) <p0:POSet[Object]> isa POSet[POSetColorer#0] */
1444 /* <p0:POSet[Object]> isa POSet[POSetColorer#0] */
1445 type_struct
= self
->type
->resolution_table
->types
[COLOR_poset__POSetcoloring__POSetColorer_FT0
];
1446 cltype
= type_struct
->color
;
1447 idtype
= type_struct
->id
;
1448 if(cltype
>= p0
->type
->table_size
) {
1451 var
= p0
->type
->type_table
[cltype
] == idtype
;
1453 if (unlikely(!var
)) {
1454 var_class_name
= p0
== NULL ?
"null" : p0
->type
->name
;
1455 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "POSet[POSetColorer#0]", var_class_name
);
1456 PRINT_ERROR(" (%s:%d)\n", "src/coloring.nit", 180);
1459 self
->attrs
[COLOR_coloring__POSetColorer___poset_cache
].val
= p0
; /* _poset_cache on <self:Object(POSetColorer[Object])> */
1464 /* method coloring#POSetColorer#conflicts for (self: POSetColorer[Object]): Map[Object, Set[Object]] */
1465 val
* coloring__POSetColorer__conflicts(val
* self
) {
1466 val
* var
/* : Map[Object, Set[Object]] */;
1467 short int var1
/* : Bool */;
1468 short int var3
/* : Bool */;
1469 val
* var4
/* : Map[Object, Set[Object]] */;
1470 val
* var6
/* : Map[Object, Set[Object]] */;
1472 { /* Inline coloring#POSetColorer#is_colored (self) on <self:POSetColorer[Object]> */
1473 var3
= self
->attrs
[COLOR_coloring__POSetColorer___is_colored
].s
; /* _is_colored on <self:POSetColorer[Object]> */
1478 if (unlikely(!var1
)) {
1479 PRINT_ERROR("Runtime error: %s", "Assert failed");
1480 PRINT_ERROR(" (%s:%d)\n", "src/coloring.nit", 184);
1484 { /* Inline coloring#POSetColorer#conflicts_cache (self) on <self:POSetColorer[Object]> */
1485 var6
= self
->attrs
[COLOR_coloring__POSetColorer___conflicts_cache
].val
; /* _conflicts_cache on <self:POSetColorer[Object]> */
1486 if (unlikely(var6
== NULL
)) {
1487 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _conflicts_cache");
1488 PRINT_ERROR(" (%s:%d)\n", "src/coloring.nit", 187);
1500 /* method coloring#POSetColorer#conflicts for (self: Object): Map[Object, Set[Object]] */
1501 val
* VIRTUAL_coloring__POSetColorer__conflicts(val
* self
) {
1502 val
* var
/* : Map[Object, Set[Object]] */;
1503 val
* var1
/* : Map[Object, Set[Object]] */;
1504 var1
= coloring__POSetColorer__conflicts(self
);
1509 /* method coloring#POSetColorer#conflicts_cache for (self: POSetColorer[Object]): Map[Object, Set[Object]] */
1510 val
* coloring__POSetColorer__conflicts_cache(val
* self
) {
1511 val
* var
/* : Map[Object, Set[Object]] */;
1512 val
* var1
/* : Map[Object, Set[Object]] */;
1513 var1
= self
->attrs
[COLOR_coloring__POSetColorer___conflicts_cache
].val
; /* _conflicts_cache on <self:POSetColorer[Object]> */
1514 if (unlikely(var1
== NULL
)) {
1515 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _conflicts_cache");
1516 PRINT_ERROR(" (%s:%d)\n", "src/coloring.nit", 187);
1523 /* method coloring#POSetColorer#conflicts_cache for (self: Object): Map[Object, Set[Object]] */
1524 val
* VIRTUAL_coloring__POSetColorer__conflicts_cache(val
* self
) {
1525 val
* var
/* : Map[Object, Set[Object]] */;
1526 val
* var1
/* : Map[Object, Set[Object]] */;
1527 val
* var3
/* : Map[Object, Set[Object]] */;
1528 { /* Inline coloring#POSetColorer#conflicts_cache (self) on <self:Object(POSetColorer[Object])> */
1529 var3
= self
->attrs
[COLOR_coloring__POSetColorer___conflicts_cache
].val
; /* _conflicts_cache on <self:Object(POSetColorer[Object])> */
1530 if (unlikely(var3
== NULL
)) {
1531 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _conflicts_cache");
1532 PRINT_ERROR(" (%s:%d)\n", "src/coloring.nit", 187);
1542 /* method coloring#POSetColorer#conflicts_cache= for (self: POSetColorer[Object], Map[Object, Set[Object]]) */
1543 void coloring__POSetColorer__conflicts_cache_61d(val
* self
, val
* p0
) {
1544 short int var
/* : Bool */;
1547 const struct type
* type_struct
;
1548 const char* var_class_name
;
1549 /* Covariant cast for argument 0 (conflicts_cache) <p0:Map[Object, Set[Object]]> isa Map[POSetColorer#0, Set[POSetColorer#0]] */
1550 /* <p0:Map[Object, Set[Object]]> isa Map[POSetColorer#0, Set[POSetColorer#0]] */
1551 type_struct
= self
->type
->resolution_table
->types
[COLOR_abstract_collection__Mapcoloring__POSetColorer_FT0abstract_collection__Setcoloring__POSetColorer_FT0
];
1552 cltype
= type_struct
->color
;
1553 idtype
= type_struct
->id
;
1554 if(cltype
>= p0
->type
->table_size
) {
1557 var
= p0
->type
->type_table
[cltype
] == idtype
;
1559 if (unlikely(!var
)) {
1560 var_class_name
= p0
== NULL ?
"null" : p0
->type
->name
;
1561 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "Map[POSetColorer#0, Set[POSetColorer#0]]", var_class_name
);
1562 PRINT_ERROR(" (%s:%d)\n", "src/coloring.nit", 187);
1565 self
->attrs
[COLOR_coloring__POSetColorer___conflicts_cache
].val
= p0
; /* _conflicts_cache on <self:POSetColorer[Object]> */
1568 /* method coloring#POSetColorer#conflicts_cache= for (self: Object, Map[Object, Set[Object]]) */
1569 void VIRTUAL_coloring__POSetColorer__conflicts_cache_61d(val
* self
, val
* p0
) {
1570 short int var
/* : Bool */;
1573 const struct type
* type_struct
;
1574 const char* var_class_name
;
1575 { /* Inline coloring#POSetColorer#conflicts_cache= (self,p0) on <self:Object(POSetColorer[Object])> */
1576 /* Covariant cast for argument 0 (conflicts_cache) <p0:Map[Object, Set[Object]]> isa Map[POSetColorer#0, Set[POSetColorer#0]] */
1577 /* <p0:Map[Object, Set[Object]]> isa Map[POSetColorer#0, Set[POSetColorer#0]] */
1578 type_struct
= self
->type
->resolution_table
->types
[COLOR_abstract_collection__Mapcoloring__POSetColorer_FT0abstract_collection__Setcoloring__POSetColorer_FT0
];
1579 cltype
= type_struct
->color
;
1580 idtype
= type_struct
->id
;
1581 if(cltype
>= p0
->type
->table_size
) {
1584 var
= p0
->type
->type_table
[cltype
] == idtype
;
1586 if (unlikely(!var
)) {
1587 var_class_name
= p0
== NULL ?
"null" : p0
->type
->name
;
1588 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "Map[POSetColorer#0, Set[POSetColorer#0]]", var_class_name
);
1589 PRINT_ERROR(" (%s:%d)\n", "src/coloring.nit", 187);
1592 self
->attrs
[COLOR_coloring__POSetColorer___conflicts_cache
].val
= p0
; /* _conflicts_cache on <self:Object(POSetColorer[Object])> */
1597 /* method coloring#POSetColorer#graph for (self: POSetColorer[Object]): POSetConflictGraph[Object] */
1598 val
* coloring__POSetColorer__graph(val
* self
) {
1599 val
* var
/* : POSetConflictGraph[Object] */;
1600 val
* var1
/* : POSetConflictGraph[Object] */;
1601 var1
= self
->attrs
[COLOR_coloring__POSetColorer___graph
].val
; /* _graph on <self:POSetColorer[Object]> */
1602 if (unlikely(var1
== NULL
)) {
1603 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _graph");
1604 PRINT_ERROR(" (%s:%d)\n", "src/coloring.nit", 189);
1611 /* method coloring#POSetColorer#graph for (self: Object): POSetConflictGraph[Object] */
1612 val
* VIRTUAL_coloring__POSetColorer__graph(val
* self
) {
1613 val
* var
/* : POSetConflictGraph[Object] */;
1614 val
* var1
/* : POSetConflictGraph[Object] */;
1615 val
* var3
/* : POSetConflictGraph[Object] */;
1616 { /* Inline coloring#POSetColorer#graph (self) on <self:Object(POSetColorer[Object])> */
1617 var3
= self
->attrs
[COLOR_coloring__POSetColorer___graph
].val
; /* _graph on <self:Object(POSetColorer[Object])> */
1618 if (unlikely(var3
== NULL
)) {
1619 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _graph");
1620 PRINT_ERROR(" (%s:%d)\n", "src/coloring.nit", 189);
1630 /* method coloring#POSetColorer#graph= for (self: POSetColorer[Object], POSetConflictGraph[Object]) */
1631 void coloring__POSetColorer__graph_61d(val
* self
, val
* p0
) {
1632 short int var
/* : Bool */;
1635 const struct type
* type_struct
;
1636 const char* var_class_name
;
1637 /* Covariant cast for argument 0 (graph) <p0:POSetConflictGraph[Object]> isa POSetConflictGraph[POSetColorer#0] */
1638 /* <p0:POSetConflictGraph[Object]> isa POSetConflictGraph[POSetColorer#0] */
1639 type_struct
= self
->type
->resolution_table
->types
[COLOR_coloring__POSetConflictGraphcoloring__POSetColorer_FT0
];
1640 cltype
= type_struct
->color
;
1641 idtype
= type_struct
->id
;
1642 if(cltype
>= p0
->type
->table_size
) {
1645 var
= p0
->type
->type_table
[cltype
] == idtype
;
1647 if (unlikely(!var
)) {
1648 var_class_name
= p0
== NULL ?
"null" : p0
->type
->name
;
1649 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "POSetConflictGraph[POSetColorer#0]", var_class_name
);
1650 PRINT_ERROR(" (%s:%d)\n", "src/coloring.nit", 189);
1653 self
->attrs
[COLOR_coloring__POSetColorer___graph
].val
= p0
; /* _graph on <self:POSetColorer[Object]> */
1656 /* method coloring#POSetColorer#graph= for (self: Object, POSetConflictGraph[Object]) */
1657 void VIRTUAL_coloring__POSetColorer__graph_61d(val
* self
, val
* p0
) {
1658 short int var
/* : Bool */;
1661 const struct type
* type_struct
;
1662 const char* var_class_name
;
1663 { /* Inline coloring#POSetColorer#graph= (self,p0) on <self:Object(POSetColorer[Object])> */
1664 /* Covariant cast for argument 0 (graph) <p0:POSetConflictGraph[Object]> isa POSetConflictGraph[POSetColorer#0] */
1665 /* <p0:POSetConflictGraph[Object]> isa POSetConflictGraph[POSetColorer#0] */
1666 type_struct
= self
->type
->resolution_table
->types
[COLOR_coloring__POSetConflictGraphcoloring__POSetColorer_FT0
];
1667 cltype
= type_struct
->color
;
1668 idtype
= type_struct
->id
;
1669 if(cltype
>= p0
->type
->table_size
) {
1672 var
= p0
->type
->type_table
[cltype
] == idtype
;
1674 if (unlikely(!var
)) {
1675 var_class_name
= p0
== NULL ?
"null" : p0
->type
->name
;
1676 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "POSetConflictGraph[POSetColorer#0]", var_class_name
);
1677 PRINT_ERROR(" (%s:%d)\n", "src/coloring.nit", 189);
1680 self
->attrs
[COLOR_coloring__POSetColorer___graph
].val
= p0
; /* _graph on <self:Object(POSetColorer[Object])> */
1685 /* method coloring#POSetColorer#init for (self: POSetColorer[Object]) */
1686 void coloring__POSetColorer__init(val
* self
) {
1689 /* method coloring#POSetColorer#init for (self: Object) */
1690 void VIRTUAL_coloring__POSetColorer__init(val
* self
) {
1691 { /* Inline coloring#POSetColorer#init (self) on <self:Object(POSetColorer[Object])> */
1696 /* method coloring#POSetColorer#colorize for (self: POSetColorer[Object], POSet[Object]) */
1697 void coloring__POSetColorer__colorize(val
* self
, val
* p0
) {
1698 short int var
/* : Bool */;
1701 const struct type
* type_struct
;
1702 const char* var_class_name
;
1703 val
* var_poset
/* var poset: POSet[Object] */;
1704 short int var2
/* : Bool */;
1707 const struct type
* type_struct5
;
1708 const char* var_class_name6
;
1709 val
* var7
/* : POSetConflictGraph[Object] */;
1710 short int var9
/* : Bool */;
1713 const struct type
* type_struct12
;
1714 const char* var_class_name13
;
1715 val
* var14
/* : POSetConflictGraph[Object] */;
1716 val
* var16
/* : POSetConflictGraph[Object] */;
1717 val
* var17
/* : HashMap[Object, Set[Object]] */;
1718 val
* var19
/* : HashMap[Object, Set[Object]] */;
1719 short int var21
/* : Bool */;
1722 const struct type
* type_struct24
;
1723 const char* var_class_name25
;
1724 short int var26
/* : Bool */;
1725 /* Covariant cast for argument 0 (poset) <p0:POSet[Object]> isa POSet[POSetColorer#0] */
1726 /* <p0:POSet[Object]> isa POSet[POSetColorer#0] */
1727 type_struct
= self
->type
->resolution_table
->types
[COLOR_poset__POSetcoloring__POSetColorer_FT0
];
1728 cltype
= type_struct
->color
;
1729 idtype
= type_struct
->id
;
1730 if(cltype
>= p0
->type
->table_size
) {
1733 var
= p0
->type
->type_table
[cltype
] == idtype
;
1735 if (unlikely(!var
)) {
1736 var_class_name
= p0
== NULL ?
"null" : p0
->type
->name
;
1737 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "POSet[POSetColorer#0]", var_class_name
);
1738 PRINT_ERROR(" (%s:%d)\n", "src/coloring.nit", 193);
1743 { /* Inline coloring#POSetColorer#poset_cache= (self,var_poset) on <self:POSetColorer[Object]> */
1744 /* Covariant cast for argument 0 (poset_cache) <var_poset:POSet[Object]> isa POSet[POSetColorer#0] */
1745 /* <var_poset:POSet[Object]> isa POSet[POSetColorer#0] */
1746 type_struct5
= self
->type
->resolution_table
->types
[COLOR_poset__POSetcoloring__POSetColorer_FT0
];
1747 cltype3
= type_struct5
->color
;
1748 idtype4
= type_struct5
->id
;
1749 if(cltype3
>= var_poset
->type
->table_size
) {
1752 var2
= var_poset
->type
->type_table
[cltype3
] == idtype4
;
1754 if (unlikely(!var2
)) {
1755 var_class_name6
= var_poset
== NULL ?
"null" : var_poset
->type
->name
;
1756 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "POSet[POSetColorer#0]", var_class_name6
);
1757 PRINT_ERROR(" (%s:%d)\n", "src/coloring.nit", 180);
1760 self
->attrs
[COLOR_coloring__POSetColorer___poset_cache
].val
= var_poset
; /* _poset_cache on <self:POSetColorer[Object]> */
1764 var7
= NEW_coloring__POSetConflictGraph(self
->type
->resolution_table
->types
[COLOR_coloring__POSetConflictGraphcoloring__POSetColorer_FT0
]);
1766 coloring__POSetConflictGraph__init(var7
, var_poset
); /* Direct call coloring#POSetConflictGraph#init on <var7:POSetConflictGraph[Object]>*/
1769 { /* Inline coloring#POSetColorer#graph= (self,var7) on <self:POSetColorer[Object]> */
1770 /* Covariant cast for argument 0 (graph) <var7:POSetConflictGraph[Object]> isa POSetConflictGraph[POSetColorer#0] */
1771 /* <var7:POSetConflictGraph[Object]> isa POSetConflictGraph[POSetColorer#0] */
1772 type_struct12
= self
->type
->resolution_table
->types
[COLOR_coloring__POSetConflictGraphcoloring__POSetColorer_FT0
];
1773 cltype10
= type_struct12
->color
;
1774 idtype11
= type_struct12
->id
;
1775 if(cltype10
>= var7
->type
->table_size
) {
1778 var9
= var7
->type
->type_table
[cltype10
] == idtype11
;
1780 if (unlikely(!var9
)) {
1781 var_class_name13
= var7
== NULL ?
"null" : var7
->type
->name
;
1782 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "POSetConflictGraph[POSetColorer#0]", var_class_name13
);
1783 PRINT_ERROR(" (%s:%d)\n", "src/coloring.nit", 189);
1786 self
->attrs
[COLOR_coloring__POSetColorer___graph
].val
= var7
; /* _graph on <self:POSetColorer[Object]> */
1791 coloring__POSetColorer__allocate_ids(self
); /* Direct call coloring#POSetColorer#allocate_ids on <self:POSetColorer[Object]>*/
1794 coloring__POSetColorer__compute_colors(self
); /* Direct call coloring#POSetColorer#compute_colors on <self:POSetColorer[Object]>*/
1797 { /* Inline coloring#POSetColorer#graph (self) on <self:POSetColorer[Object]> */
1798 var16
= self
->attrs
[COLOR_coloring__POSetColorer___graph
].val
; /* _graph on <self:POSetColorer[Object]> */
1799 if (unlikely(var16
== NULL
)) {
1800 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _graph");
1801 PRINT_ERROR(" (%s:%d)\n", "src/coloring.nit", 189);
1805 RET_LABEL15
:(void)0;
1809 { /* Inline coloring#POSetConflictGraph#conflicts (var14) on <var14:POSetConflictGraph[Object]> */
1810 var19
= var14
->attrs
[COLOR_coloring__POSetConflictGraph___conflicts
].val
; /* _conflicts on <var14:POSetConflictGraph[Object]> */
1811 if (unlikely(var19
== NULL
)) {
1812 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _conflicts");
1813 PRINT_ERROR(" (%s:%d)\n", "src/coloring.nit", 40);
1817 RET_LABEL18
:(void)0;
1821 { /* Inline coloring#POSetColorer#conflicts_cache= (self,var17) on <self:POSetColorer[Object]> */
1822 /* Covariant cast for argument 0 (conflicts_cache) <var17:HashMap[Object, Set[Object]]> isa Map[POSetColorer#0, Set[POSetColorer#0]] */
1823 /* <var17:HashMap[Object, Set[Object]]> isa Map[POSetColorer#0, Set[POSetColorer#0]] */
1824 type_struct24
= self
->type
->resolution_table
->types
[COLOR_abstract_collection__Mapcoloring__POSetColorer_FT0abstract_collection__Setcoloring__POSetColorer_FT0
];
1825 cltype22
= type_struct24
->color
;
1826 idtype23
= type_struct24
->id
;
1827 if(cltype22
>= var17
->type
->table_size
) {
1830 var21
= var17
->type
->type_table
[cltype22
] == idtype23
;
1832 if (unlikely(!var21
)) {
1833 var_class_name25
= var17
== NULL ?
"null" : var17
->type
->name
;
1834 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "Map[POSetColorer#0, Set[POSetColorer#0]]", var_class_name25
);
1835 PRINT_ERROR(" (%s:%d)\n", "src/coloring.nit", 187);
1838 self
->attrs
[COLOR_coloring__POSetColorer___conflicts_cache
].val
= var17
; /* _conflicts_cache on <self:POSetColorer[Object]> */
1839 RET_LABEL20
:(void)0;
1844 { /* Inline coloring#POSetColorer#is_colored= (self,var26) on <self:POSetColorer[Object]> */
1845 self
->attrs
[COLOR_coloring__POSetColorer___is_colored
].s
= var26
; /* _is_colored on <self:POSetColorer[Object]> */
1846 RET_LABEL27
:(void)0;
1851 /* method coloring#POSetColorer#colorize for (self: Object, POSet[Object]) */
1852 void VIRTUAL_coloring__POSetColorer__colorize(val
* self
, val
* p0
) {
1853 coloring__POSetColorer__colorize(self
, p0
); /* Direct call coloring#POSetColorer#colorize on <self:Object(POSetColorer[Object])>*/
1856 /* method coloring#POSetColorer#allocate_ids for (self: POSetColorer[Object]) */
1857 void coloring__POSetColorer__allocate_ids(val
* self
) {
1858 val
* var
/* : HashMap[Object, Int] */;
1859 val
* var2
/* : HashMap[Object, Int] */;
1860 val
* var3
/* : HashSet[Object] */;
1861 val
* var4
/* : POSet[Object] */;
1862 val
* var6
/* : POSet[Object] */;
1863 val
* var7
/* : Array[nullable Object] */;
1864 val
* var_elements
/* var elements: HashSet[Object] */;
1865 val
* var8
/* : POSet[Object] */;
1866 val
* var10
/* : POSet[Object] */;
1867 val
* var11
/* : Array[Object] */;
1868 val
* var12
/* : ArrayIterator[nullable Object] */;
1869 short int var13
/* : Bool */;
1870 val
* var14
/* : nullable Object */;
1871 val
* var_e
/* var e: Object */;
1872 val
* var15
/* : HashMap[Object, Int] */;
1873 val
* var17
/* : HashMap[Object, Int] */;
1874 val
* var18
/* : HashMap[Object, Int] */;
1875 val
* var20
/* : HashMap[Object, Int] */;
1876 long var21
/* : Int */;
1877 val
* var22
/* : nullable Object */;
1879 { /* Inline coloring#POSetColorer#ids_cache (self) on <self:POSetColorer[Object]> */
1880 var2
= self
->attrs
[COLOR_coloring__POSetColorer___ids_cache
].val
; /* _ids_cache on <self:POSetColorer[Object]> */
1881 if (unlikely(var2
== NULL
)) {
1882 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _ids_cache");
1883 PRINT_ERROR(" (%s:%d)\n", "src/coloring.nit", 165);
1891 hash_collection__HashMap__clear(var
); /* Direct call hash_collection#HashMap#clear on <var:HashMap[Object, Int]>*/
1893 var3
= NEW_hash_collection__HashSet(self
->type
->resolution_table
->types
[COLOR_hash_collection__HashSetcoloring__POSetColorer_FT0
]);
1895 { /* Inline coloring#POSetColorer#poset_cache (self) on <self:POSetColorer[Object]> */
1896 var6
= self
->attrs
[COLOR_coloring__POSetColorer___poset_cache
].val
; /* _poset_cache on <self:POSetColorer[Object]> */
1897 if (unlikely(var6
== NULL
)) {
1898 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _poset_cache");
1899 PRINT_ERROR(" (%s:%d)\n", "src/coloring.nit", 180);
1907 var7
= array__Collection__to_a(var4
);
1910 hash_collection__HashSet__from(var3
, var7
); /* Direct call hash_collection#HashSet#from on <var3:HashSet[Object]>*/
1912 var_elements
= var3
;
1914 { /* Inline coloring#POSetColorer#poset_cache (self) on <self:POSetColorer[Object]> */
1915 var10
= self
->attrs
[COLOR_coloring__POSetColorer___poset_cache
].val
; /* _poset_cache on <self:POSetColorer[Object]> */
1916 if (unlikely(var10
== NULL
)) {
1917 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _poset_cache");
1918 PRINT_ERROR(" (%s:%d)\n", "src/coloring.nit", 180);
1926 var11
= poset__POSet__linearize(var8
, var_elements
);
1929 var12
= array__AbstractArrayRead__iterator(var11
);
1933 var13
= array__ArrayIterator__is_ok(var12
);
1937 var14
= array__ArrayIterator__item(var12
);
1941 { /* Inline coloring#POSetColorer#ids_cache (self) on <self:POSetColorer[Object]> */
1942 var17
= self
->attrs
[COLOR_coloring__POSetColorer___ids_cache
].val
; /* _ids_cache on <self:POSetColorer[Object]> */
1943 if (unlikely(var17
== NULL
)) {
1944 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _ids_cache");
1945 PRINT_ERROR(" (%s:%d)\n", "src/coloring.nit", 165);
1949 RET_LABEL16
:(void)0;
1953 { /* Inline coloring#POSetColorer#ids_cache (self) on <self:POSetColorer[Object]> */
1954 var20
= self
->attrs
[COLOR_coloring__POSetColorer___ids_cache
].val
; /* _ids_cache on <self:POSetColorer[Object]> */
1955 if (unlikely(var20
== NULL
)) {
1956 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _ids_cache");
1957 PRINT_ERROR(" (%s:%d)\n", "src/coloring.nit", 165);
1961 RET_LABEL19
:(void)0;
1965 var21
= hash_collection__HashMap__length(var18
);
1968 var22
= BOX_kernel__Int(var21
); /* autobox from Int to nullable Object */
1969 hash_collection__HashMap___91d_93d_61d(var15
, var_e
, var22
); /* Direct call hash_collection#HashMap#[]= on <var15:HashMap[Object, Int]>*/
1971 CONTINUE_label
: (void)0;
1973 array__ArrayIterator__next(var12
); /* Direct call array#ArrayIterator#next on <var12:ArrayIterator[nullable Object]>*/
1976 BREAK_label
: (void)0;
1979 /* method coloring#POSetColorer#allocate_ids for (self: Object) */
1980 void VIRTUAL_coloring__POSetColorer__allocate_ids(val
* self
) {
1981 coloring__POSetColorer__allocate_ids(self
); /* Direct call coloring#POSetColorer#allocate_ids on <self:Object(POSetColorer[Object])>*/
1984 /* method coloring#POSetColorer#compute_colors for (self: POSetColorer[Object]) */
1985 void coloring__POSetColorer__compute_colors(val
* self
) {
1986 val
* var
/* : HashMap[Object, Int] */;
1987 val
* var2
/* : HashMap[Object, Int] */;
1988 val
* var3
/* : POSetConflictGraph[Object] */;
1989 val
* var5
/* : POSetConflictGraph[Object] */;
1990 val
* var6
/* : HashSet[Object] */;
1991 val
* var8
/* : HashSet[Object] */;
1992 val
* var9
/* : POSetConflictGraph[Object] */;
1993 val
* var11
/* : POSetConflictGraph[Object] */;
1994 val
* var12
/* : HashSet[Object] */;
1995 val
* var14
/* : HashSet[Object] */;
1997 { /* Inline coloring#POSetColorer#colors_cache (self) on <self:POSetColorer[Object]> */
1998 var2
= self
->attrs
[COLOR_coloring__POSetColorer___colors_cache
].val
; /* _colors_cache on <self:POSetColorer[Object]> */
1999 if (unlikely(var2
== NULL
)) {
2000 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _colors_cache");
2001 PRINT_ERROR(" (%s:%d)\n", "src/coloring.nit", 173);
2009 hash_collection__HashMap__clear(var
); /* Direct call hash_collection#HashMap#clear on <var:HashMap[Object, Int]>*/
2012 coloring__POSetColorer__colorize_core(self
); /* Direct call coloring#POSetColorer#colorize_core on <self:POSetColorer[Object]>*/
2015 { /* Inline coloring#POSetColorer#graph (self) on <self:POSetColorer[Object]> */
2016 var5
= self
->attrs
[COLOR_coloring__POSetColorer___graph
].val
; /* _graph on <self:POSetColorer[Object]> */
2017 if (unlikely(var5
== NULL
)) {
2018 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _graph");
2019 PRINT_ERROR(" (%s:%d)\n", "src/coloring.nit", 189);
2027 { /* Inline coloring#POSetConflictGraph#border (var3) on <var3:POSetConflictGraph[Object]> */
2028 var8
= var3
->attrs
[COLOR_coloring__POSetConflictGraph___border
].val
; /* _border on <var3:POSetConflictGraph[Object]> */
2029 if (unlikely(var8
== NULL
)) {
2030 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _border");
2031 PRINT_ERROR(" (%s:%d)\n", "src/coloring.nit", 28);
2039 coloring__POSetColorer__colorize_set(self
, var6
); /* Direct call coloring#POSetColorer#colorize_set on <self:POSetColorer[Object]>*/
2042 { /* Inline coloring#POSetColorer#graph (self) on <self:POSetColorer[Object]> */
2043 var11
= self
->attrs
[COLOR_coloring__POSetColorer___graph
].val
; /* _graph on <self:POSetColorer[Object]> */
2044 if (unlikely(var11
== NULL
)) {
2045 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _graph");
2046 PRINT_ERROR(" (%s:%d)\n", "src/coloring.nit", 189);
2050 RET_LABEL10
:(void)0;
2054 { /* Inline coloring#POSetConflictGraph#crown (var9) on <var9:POSetConflictGraph[Object]> */
2055 var14
= var9
->attrs
[COLOR_coloring__POSetConflictGraph___crown
].val
; /* _crown on <var9:POSetConflictGraph[Object]> */
2056 if (unlikely(var14
== NULL
)) {
2057 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _crown");
2058 PRINT_ERROR(" (%s:%d)\n", "src/coloring.nit", 34);
2062 RET_LABEL13
:(void)0;
2066 coloring__POSetColorer__colorize_set(self
, var12
); /* Direct call coloring#POSetColorer#colorize_set on <self:POSetColorer[Object]>*/
2070 /* method coloring#POSetColorer#compute_colors for (self: Object) */
2071 void VIRTUAL_coloring__POSetColorer__compute_colors(val
* self
) {
2072 coloring__POSetColorer__compute_colors(self
); /* Direct call coloring#POSetColorer#compute_colors on <self:Object(POSetColorer[Object])>*/
2075 /* method coloring#POSetColorer#colorize_core for (self: POSetColorer[Object]) */
2076 void coloring__POSetColorer__colorize_core(val
* self
) {
2077 val
* var
/* : POSet[Object] */;
2078 val
* var2
/* : POSet[Object] */;
2079 val
* var3
/* : POSetConflictGraph[Object] */;
2080 val
* var5
/* : POSetConflictGraph[Object] */;
2081 val
* var6
/* : HashSet[Object] */;
2082 val
* var8
/* : HashSet[Object] */;
2083 val
* var9
/* : Array[Object] */;
2084 val
* var10
/* : ArrayIterator[nullable Object] */;
2085 short int var11
/* : Bool */;
2086 val
* var12
/* : nullable Object */;
2087 val
* var_e
/* var e: Object */;
2088 long var13
/* : Int */;
2089 long var_color
/* var color: Int */;
2090 val
* var14
/* : POSetConflictGraph[Object] */;
2091 val
* var16
/* : POSetConflictGraph[Object] */;
2092 val
* var17
/* : HashMap[Object, Set[Object]] */;
2093 val
* var19
/* : HashMap[Object, Set[Object]] */;
2094 val
* var20
/* : nullable Object */;
2095 val
* var_conflicts
/* var conflicts: Set[Object] */;
2096 short int var21
/* : Bool */;
2097 short int var22
/* : Bool */;
2098 long var23
/* : Int */;
2099 long var24
/* : Int */;
2100 short int var26
/* : Bool */;
2103 const char* var_class_name
;
2104 long var27
/* : Int */;
2105 val
* var28
/* : HashMap[Object, Int] */;
2106 val
* var30
/* : HashMap[Object, Int] */;
2107 val
* var31
/* : nullable Object */;
2109 { /* Inline coloring#POSetColorer#poset_cache (self) on <self:POSetColorer[Object]> */
2110 var2
= self
->attrs
[COLOR_coloring__POSetColorer___poset_cache
].val
; /* _poset_cache on <self:POSetColorer[Object]> */
2111 if (unlikely(var2
== NULL
)) {
2112 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _poset_cache");
2113 PRINT_ERROR(" (%s:%d)\n", "src/coloring.nit", 180);
2121 { /* Inline coloring#POSetColorer#graph (self) on <self:POSetColorer[Object]> */
2122 var5
= self
->attrs
[COLOR_coloring__POSetColorer___graph
].val
; /* _graph on <self:POSetColorer[Object]> */
2123 if (unlikely(var5
== NULL
)) {
2124 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _graph");
2125 PRINT_ERROR(" (%s:%d)\n", "src/coloring.nit", 189);
2133 { /* Inline coloring#POSetConflictGraph#core (var3) on <var3:POSetConflictGraph[Object]> */
2134 var8
= var3
->attrs
[COLOR_coloring__POSetConflictGraph___core
].val
; /* _core on <var3:POSetConflictGraph[Object]> */
2135 if (unlikely(var8
== NULL
)) {
2136 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _core");
2137 PRINT_ERROR(" (%s:%d)\n", "src/coloring.nit", 22);
2145 var9
= poset__POSet__linearize(var
, var6
);
2148 var10
= array__AbstractArrayRead__iterator(var9
);
2152 var11
= array__ArrayIterator__is_ok(var10
);
2156 var12
= array__ArrayIterator__item(var10
);
2160 var13
= coloring__POSetColorer__min_color(self
, var_e
);
2164 { /* Inline coloring#POSetColorer#graph (self) on <self:POSetColorer[Object]> */
2165 var16
= self
->attrs
[COLOR_coloring__POSetColorer___graph
].val
; /* _graph on <self:POSetColorer[Object]> */
2166 if (unlikely(var16
== NULL
)) {
2167 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _graph");
2168 PRINT_ERROR(" (%s:%d)\n", "src/coloring.nit", 189);
2172 RET_LABEL15
:(void)0;
2176 { /* Inline coloring#POSetConflictGraph#conflicts (var14) on <var14:POSetConflictGraph[Object]> */
2177 var19
= var14
->attrs
[COLOR_coloring__POSetConflictGraph___conflicts
].val
; /* _conflicts on <var14:POSetConflictGraph[Object]> */
2178 if (unlikely(var19
== NULL
)) {
2179 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _conflicts");
2180 PRINT_ERROR(" (%s:%d)\n", "src/coloring.nit", 40);
2184 RET_LABEL18
:(void)0;
2188 var20
= hash_collection__HashMap___91d_93d(var17
, var_e
);
2190 var_conflicts
= var20
;
2193 var21
= coloring__POSetColorer__is_color_free(self
, var_color
, var_conflicts
);
2199 { /* Inline kernel#Int#+ (var_color,var23) on <var_color:Int> */
2200 /* Covariant cast for argument 0 (i) <var23:Int> isa OTHER */
2201 /* <var23:Int> isa OTHER */
2202 var26
= 1; /* easy <var23:Int> isa OTHER*/
2203 if (unlikely(!var26
)) {
2204 var_class_name
= type_kernel__Int
.name
;
2205 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name
);
2206 PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 328);
2209 var27
= var_color
+ var23
;
2212 RET_LABEL25
:(void)0;
2216 CONTINUE_label
: (void)0;
2218 BREAK_label
: (void)0;
2220 { /* Inline coloring#POSetColorer#colors_cache (self) on <self:POSetColorer[Object]> */
2221 var30
= self
->attrs
[COLOR_coloring__POSetColorer___colors_cache
].val
; /* _colors_cache on <self:POSetColorer[Object]> */
2222 if (unlikely(var30
== NULL
)) {
2223 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _colors_cache");
2224 PRINT_ERROR(" (%s:%d)\n", "src/coloring.nit", 173);
2228 RET_LABEL29
:(void)0;
2232 var31
= BOX_kernel__Int(var_color
); /* autobox from Int to nullable Object */
2233 hash_collection__HashMap___91d_93d_61d(var28
, var_e
, var31
); /* Direct call hash_collection#HashMap#[]= on <var28:HashMap[Object, Int]>*/
2235 CONTINUE_label32
: (void)0;
2237 array__ArrayIterator__next(var10
); /* Direct call array#ArrayIterator#next on <var10:ArrayIterator[nullable Object]>*/
2240 BREAK_label32
: (void)0;
2243 /* method coloring#POSetColorer#colorize_core for (self: Object) */
2244 void VIRTUAL_coloring__POSetColorer__colorize_core(val
* self
) {
2245 coloring__POSetColorer__colorize_core(self
); /* Direct call coloring#POSetColorer#colorize_core on <self:Object(POSetColorer[Object])>*/
2248 /* method coloring#POSetColorer#colorize_set for (self: POSetColorer[Object], Set[Object]) */
2249 void coloring__POSetColorer__colorize_set(val
* self
, val
* p0
) {
2250 short int var
/* : Bool */;
2253 const struct type
* type_struct
;
2254 const char* var_class_name
;
2255 val
* var_set
/* var set: Set[Object] */;
2256 val
* var1
/* : POSet[Object] */;
2257 val
* var3
/* : POSet[Object] */;
2258 val
* var4
/* : Array[Object] */;
2259 val
* var5
/* : ArrayIterator[nullable Object] */;
2260 short int var6
/* : Bool */;
2261 val
* var7
/* : nullable Object */;
2262 val
* var_e
/* var e: Object */;
2263 val
* var8
/* : HashMap[Object, Int] */;
2264 val
* var10
/* : HashMap[Object, Int] */;
2265 long var11
/* : Int */;
2266 val
* var12
/* : nullable Object */;
2267 /* Covariant cast for argument 0 (set) <p0:Set[Object]> isa Set[POSetColorer#0] */
2268 /* <p0:Set[Object]> isa Set[POSetColorer#0] */
2269 type_struct
= self
->type
->resolution_table
->types
[COLOR_abstract_collection__Setcoloring__POSetColorer_FT0
];
2270 cltype
= type_struct
->color
;
2271 idtype
= type_struct
->id
;
2272 if(cltype
>= p0
->type
->table_size
) {
2275 var
= p0
->type
->type_table
[cltype
] == idtype
;
2277 if (unlikely(!var
)) {
2278 var_class_name
= p0
== NULL ?
"null" : p0
->type
->name
;
2279 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "Set[POSetColorer#0]", var_class_name
);
2280 PRINT_ERROR(" (%s:%d)\n", "src/coloring.nit", 233);
2285 { /* Inline coloring#POSetColorer#poset_cache (self) on <self:POSetColorer[Object]> */
2286 var3
= self
->attrs
[COLOR_coloring__POSetColorer___poset_cache
].val
; /* _poset_cache on <self:POSetColorer[Object]> */
2287 if (unlikely(var3
== NULL
)) {
2288 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _poset_cache");
2289 PRINT_ERROR(" (%s:%d)\n", "src/coloring.nit", 180);
2297 var4
= poset__POSet__linearize(var1
, var_set
);
2300 var5
= array__AbstractArrayRead__iterator(var4
);
2304 var6
= array__ArrayIterator__is_ok(var5
);
2308 var7
= array__ArrayIterator__item(var5
);
2312 { /* Inline coloring#POSetColorer#colors_cache (self) on <self:POSetColorer[Object]> */
2313 var10
= self
->attrs
[COLOR_coloring__POSetColorer___colors_cache
].val
; /* _colors_cache on <self:POSetColorer[Object]> */
2314 if (unlikely(var10
== NULL
)) {
2315 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _colors_cache");
2316 PRINT_ERROR(" (%s:%d)\n", "src/coloring.nit", 173);
2324 var11
= coloring__POSetColorer__min_color(self
, var_e
);
2327 var12
= BOX_kernel__Int(var11
); /* autobox from Int to nullable Object */
2328 hash_collection__HashMap___91d_93d_61d(var8
, var_e
, var12
); /* Direct call hash_collection#HashMap#[]= on <var8:HashMap[Object, Int]>*/
2330 CONTINUE_label
: (void)0;
2332 array__ArrayIterator__next(var5
); /* Direct call array#ArrayIterator#next on <var5:ArrayIterator[nullable Object]>*/
2335 BREAK_label
: (void)0;
2338 /* method coloring#POSetColorer#colorize_set for (self: Object, Set[Object]) */
2339 void VIRTUAL_coloring__POSetColorer__colorize_set(val
* self
, val
* p0
) {
2340 coloring__POSetColorer__colorize_set(self
, p0
); /* Direct call coloring#POSetColorer#colorize_set on <self:Object(POSetColorer[Object])>*/
2343 /* method coloring#POSetColorer#min_color for (self: POSetColorer[Object], Object): Int */
2344 long coloring__POSetColorer__min_color(val
* self
, val
* p0
) {
2345 long var
/* : Int */;
2346 short int var1
/* : Bool */;
2349 const struct type
* type_struct
;
2350 const char* var_class_name
;
2351 val
* var_e
/* var e: Object */;
2352 long var2
/* : Int */;
2353 long var3
/* : Int */;
2354 long var5
/* : Int */;
2355 long var_max_color
/* var max_color: Int */;
2356 val
* var6
/* : POSet[Object] */;
2357 val
* var8
/* : POSet[Object] */;
2358 val
* var9
/* : POSetElement[Object] */;
2359 val
* var10
/* : Collection[Object] */;
2360 val
* var11
/* : Iterator[nullable Object] */;
2361 short int var12
/* : Bool */;
2362 val
* var13
/* : nullable Object */;
2363 val
* var_p
/* var p: Object */;
2364 val
* var14
/* : HashMap[Object, Int] */;
2365 val
* var16
/* : HashMap[Object, Int] */;
2366 short int var17
/* : Bool */;
2367 short int var18
/* : Bool */;
2368 val
* var19
/* : HashMap[Object, Int] */;
2369 val
* var21
/* : HashMap[Object, Int] */;
2370 val
* var22
/* : nullable Object */;
2371 long var23
/* : Int */;
2372 long var_color
/* var color: Int */;
2373 short int var24
/* : Bool */;
2374 short int var26
/* : Bool */;
2377 const char* var_class_name29
;
2378 short int var30
/* : Bool */;
2379 long var31
/* : Int */;
2380 long var32
/* : Int */;
2381 short int var34
/* : Bool */;
2384 const char* var_class_name37
;
2385 long var38
/* : Int */;
2386 /* Covariant cast for argument 0 (e) <p0:Object> isa POSetColorer#0 */
2387 /* <p0:Object> isa POSetColorer#0 */
2388 type_struct
= self
->type
->resolution_table
->types
[COLOR_coloring__POSetColorer_FT0
];
2389 cltype
= type_struct
->color
;
2390 idtype
= type_struct
->id
;
2391 if(cltype
>= p0
->type
->table_size
) {
2394 var1
= p0
->type
->type_table
[cltype
] == idtype
;
2396 if (unlikely(!var1
)) {
2397 var_class_name
= p0
== NULL ?
"null" : p0
->type
->name
;
2398 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "POSetColorer#0", var_class_name
);
2399 PRINT_ERROR(" (%s:%d)\n", "src/coloring.nit", 238);
2405 { /* Inline kernel#Int#unary - (var2) on <var2:Int> */
2412 var_max_color
= var3
;
2414 { /* Inline coloring#POSetColorer#poset_cache (self) on <self:POSetColorer[Object]> */
2415 var8
= self
->attrs
[COLOR_coloring__POSetColorer___poset_cache
].val
; /* _poset_cache on <self:POSetColorer[Object]> */
2416 if (unlikely(var8
== NULL
)) {
2417 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _poset_cache");
2418 PRINT_ERROR(" (%s:%d)\n", "src/coloring.nit", 180);
2426 var9
= poset__POSet___91d_93d(var6
, var_e
);
2429 var10
= poset__POSetElement__direct_greaters(var9
);
2432 var11
= ((val
* (*)(val
*))(var10
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var10
) /* iterator on <var10:Collection[Object]>*/;
2436 var12
= ((short int (*)(val
*))(var11
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var11
) /* is_ok on <var11:Iterator[nullable Object]>*/;
2440 var13
= ((val
* (*)(val
*))(var11
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var11
) /* item on <var11:Iterator[nullable Object]>*/;
2444 { /* Inline coloring#POSetColorer#colors_cache (self) on <self:POSetColorer[Object]> */
2445 var16
= self
->attrs
[COLOR_coloring__POSetColorer___colors_cache
].val
; /* _colors_cache on <self:POSetColorer[Object]> */
2446 if (unlikely(var16
== NULL
)) {
2447 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _colors_cache");
2448 PRINT_ERROR(" (%s:%d)\n", "src/coloring.nit", 173);
2452 RET_LABEL15
:(void)0;
2456 var17
= abstract_collection__MapRead__has_key(var14
, var_p
);
2460 goto CONTINUE_label
;
2464 { /* Inline coloring#POSetColorer#colors_cache (self) on <self:POSetColorer[Object]> */
2465 var21
= self
->attrs
[COLOR_coloring__POSetColorer___colors_cache
].val
; /* _colors_cache on <self:POSetColorer[Object]> */
2466 if (unlikely(var21
== NULL
)) {
2467 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _colors_cache");
2468 PRINT_ERROR(" (%s:%d)\n", "src/coloring.nit", 173);
2472 RET_LABEL20
:(void)0;
2476 var22
= hash_collection__HashMap___91d_93d(var19
, var_p
);
2478 var23
= ((struct instance_kernel__Int
*)var22
)->value
; /* autounbox from nullable Object to Int */;
2481 { /* Inline kernel#Int#> (var_color,var_max_color) on <var_color:Int> */
2482 /* Covariant cast for argument 0 (i) <var_max_color:Int> isa OTHER */
2483 /* <var_max_color:Int> isa OTHER */
2484 var26
= 1; /* easy <var_max_color:Int> isa OTHER*/
2485 if (unlikely(!var26
)) {
2486 var_class_name29
= type_kernel__Int
.name
;
2487 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name29
);
2488 PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 327);
2491 var30
= var_color
> var_max_color
;
2494 RET_LABEL25
:(void)0;
2498 var_max_color
= var_color
;
2501 CONTINUE_label
: (void)0;
2503 ((void (*)(val
*))(var11
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var11
) /* next on <var11:Iterator[nullable Object]>*/;
2506 BREAK_label
: (void)0;
2509 { /* Inline kernel#Int#+ (var_max_color,var31) on <var_max_color:Int> */
2510 /* Covariant cast for argument 0 (i) <var31:Int> isa OTHER */
2511 /* <var31:Int> isa OTHER */
2512 var34
= 1; /* easy <var31:Int> isa OTHER*/
2513 if (unlikely(!var34
)) {
2514 var_class_name37
= type_kernel__Int
.name
;
2515 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name37
);
2516 PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 328);
2519 var38
= var_max_color
+ var31
;
2522 RET_LABEL33
:(void)0;
2530 /* method coloring#POSetColorer#min_color for (self: Object, Object): Int */
2531 long VIRTUAL_coloring__POSetColorer__min_color(val
* self
, val
* p0
) {
2532 long var
/* : Int */;
2533 long var1
/* : Int */;
2534 var1
= coloring__POSetColorer__min_color(self
, p0
);
2539 /* method coloring#POSetColorer#is_color_free for (self: POSetColorer[Object], Int, Collection[Object]): Bool */
2540 short int coloring__POSetColorer__is_color_free(val
* self
, long p0
, val
* p1
) {
2541 short int var
/* : Bool */;
2542 short int var1
/* : Bool */;
2545 const struct type
* type_struct
;
2546 const char* var_class_name
;
2547 long var_color
/* var color: Int */;
2548 val
* var_set
/* var set: Collection[Object] */;
2549 val
* var2
/* : Iterator[nullable Object] */;
2550 short int var3
/* : Bool */;
2551 val
* var4
/* : nullable Object */;
2552 val
* var_e
/* var e: Object */;
2553 short int var5
/* : Bool */;
2554 val
* var6
/* : HashMap[Object, Int] */;
2555 val
* var8
/* : HashMap[Object, Int] */;
2556 short int var9
/* : Bool */;
2557 short int var_
/* var : Bool */;
2558 val
* var10
/* : HashMap[Object, Int] */;
2559 val
* var12
/* : HashMap[Object, Int] */;
2560 val
* var13
/* : nullable Object */;
2561 short int var14
/* : Bool */;
2562 short int var15
/* : Bool */;
2563 short int var17
/* : Bool */;
2564 long var18
/* : Int */;
2565 short int var19
/* : Bool */;
2566 short int var20
/* : Bool */;
2567 /* Covariant cast for argument 1 (set) <p1:Collection[Object]> isa Collection[POSetColorer#0] */
2568 /* <p1:Collection[Object]> isa Collection[POSetColorer#0] */
2569 type_struct
= self
->type
->resolution_table
->types
[COLOR_abstract_collection__Collectioncoloring__POSetColorer_FT0
];
2570 cltype
= type_struct
->color
;
2571 idtype
= type_struct
->id
;
2572 if(cltype
>= p1
->type
->table_size
) {
2575 var1
= p1
->type
->type_table
[cltype
] == idtype
;
2577 if (unlikely(!var1
)) {
2578 var_class_name
= p1
== NULL ?
"null" : p1
->type
->name
;
2579 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "Collection[POSetColorer#0]", var_class_name
);
2580 PRINT_ERROR(" (%s:%d)\n", "src/coloring.nit", 249);
2586 var2
= ((val
* (*)(val
*))(var_set
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var_set
) /* iterator on <var_set:Collection[Object]>*/;
2590 var3
= ((short int (*)(val
*))(var2
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var2
) /* is_ok on <var2:Iterator[nullable Object]>*/;
2594 var4
= ((val
* (*)(val
*))(var2
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var2
) /* item on <var2:Iterator[nullable Object]>*/;
2598 { /* Inline coloring#POSetColorer#colors_cache (self) on <self:POSetColorer[Object]> */
2599 var8
= self
->attrs
[COLOR_coloring__POSetColorer___colors_cache
].val
; /* _colors_cache on <self:POSetColorer[Object]> */
2600 if (unlikely(var8
== NULL
)) {
2601 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _colors_cache");
2602 PRINT_ERROR(" (%s:%d)\n", "src/coloring.nit", 173);
2610 var9
= abstract_collection__MapRead__has_key(var6
, var_e
);
2615 { /* Inline coloring#POSetColorer#colors_cache (self) on <self:POSetColorer[Object]> */
2616 var12
= self
->attrs
[COLOR_coloring__POSetColorer___colors_cache
].val
; /* _colors_cache on <self:POSetColorer[Object]> */
2617 if (unlikely(var12
== NULL
)) {
2618 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _colors_cache");
2619 PRINT_ERROR(" (%s:%d)\n", "src/coloring.nit", 173);
2623 RET_LABEL11
:(void)0;
2627 var13
= hash_collection__HashMap___91d_93d(var10
, var_e
);
2630 { /* Inline kernel#Int#== (var13,var_color) on <var13:nullable Object(Int)> */
2631 var17
= (var13
!= NULL
) && (var13
->class == &class_kernel__Int
);
2633 var18
= ((struct instance_kernel__Int
*)var13
)->value
; /* autounbox from nullable Object to Int */;
2634 var17
= (var18
== var_color
);
2638 RET_LABEL16
:(void)0;
2652 CONTINUE_label
: (void)0;
2654 ((void (*)(val
*))(var2
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var2
) /* next on <var2:Iterator[nullable Object]>*/;
2657 BREAK_label
: (void)0;
2664 /* method coloring#POSetColorer#is_color_free for (self: Object, Int, Collection[Object]): Bool */
2665 short int VIRTUAL_coloring__POSetColorer__is_color_free(val
* self
, long p0
, val
* p1
) {
2666 short int var
/* : Bool */;
2667 short int var1
/* : Bool */;
2668 var1
= coloring__POSetColorer__is_color_free(self
, p0
, p1
);
2673 /* method coloring#BucketsColorer#colors for (self: BucketsColorer[Object, Object]): HashMap[Object, Int] */
2674 val
* coloring__BucketsColorer__colors(val
* self
) {
2675 val
* var
/* : HashMap[Object, Int] */;
2676 val
* var1
/* : HashMap[Object, Int] */;
2677 var1
= self
->attrs
[COLOR_coloring__BucketsColorer___colors
].val
; /* _colors on <self:BucketsColorer[Object, Object]> */
2678 if (unlikely(var1
== NULL
)) {
2679 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _colors");
2680 PRINT_ERROR(" (%s:%d)\n", "src/coloring.nit", 281);
2687 /* method coloring#BucketsColorer#colors for (self: Object): HashMap[Object, Int] */
2688 val
* VIRTUAL_coloring__BucketsColorer__colors(val
* self
) {
2689 val
* var
/* : HashMap[Object, Int] */;
2690 val
* var1
/* : HashMap[Object, Int] */;
2691 val
* var3
/* : HashMap[Object, Int] */;
2692 { /* Inline coloring#BucketsColorer#colors (self) on <self:Object(BucketsColorer[Object, Object])> */
2693 var3
= self
->attrs
[COLOR_coloring__BucketsColorer___colors
].val
; /* _colors on <self:Object(BucketsColorer[Object, Object])> */
2694 if (unlikely(var3
== NULL
)) {
2695 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _colors");
2696 PRINT_ERROR(" (%s:%d)\n", "src/coloring.nit", 281);
2706 /* method coloring#BucketsColorer#conflicts for (self: BucketsColorer[Object, Object]): HashMap[Object, Set[Object]] */
2707 val
* coloring__BucketsColorer__conflicts(val
* self
) {
2708 val
* var
/* : HashMap[Object, Set[Object]] */;
2709 val
* var1
/* : HashMap[Object, Set[Object]] */;
2710 var1
= self
->attrs
[COLOR_coloring__BucketsColorer___conflicts
].val
; /* _conflicts on <self:BucketsColorer[Object, Object]> */
2711 if (unlikely(var1
== NULL
)) {
2712 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _conflicts");
2713 PRINT_ERROR(" (%s:%d)\n", "src/coloring.nit", 282);
2720 /* method coloring#BucketsColorer#conflicts for (self: Object): HashMap[Object, Set[Object]] */
2721 val
* VIRTUAL_coloring__BucketsColorer__conflicts(val
* self
) {
2722 val
* var
/* : HashMap[Object, Set[Object]] */;
2723 val
* var1
/* : HashMap[Object, Set[Object]] */;
2724 val
* var3
/* : HashMap[Object, Set[Object]] */;
2725 { /* Inline coloring#BucketsColorer#conflicts (self) on <self:Object(BucketsColorer[Object, Object])> */
2726 var3
= self
->attrs
[COLOR_coloring__BucketsColorer___conflicts
].val
; /* _conflicts on <self:Object(BucketsColorer[Object, Object])> */
2727 if (unlikely(var3
== NULL
)) {
2728 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _conflicts");
2729 PRINT_ERROR(" (%s:%d)\n", "src/coloring.nit", 282);
2739 /* method coloring#BucketsColorer#init for (self: BucketsColorer[Object, Object]) */
2740 void coloring__BucketsColorer__init(val
* self
) {
2743 /* method coloring#BucketsColorer#init for (self: Object) */
2744 void VIRTUAL_coloring__BucketsColorer__init(val
* self
) {
2745 { /* Inline coloring#BucketsColorer#init (self) on <self:Object(BucketsColorer[Object, Object])> */
2750 /* method coloring#BucketsColorer#colorize for (self: BucketsColorer[Object, Object], Map[Object, Set[Object]]): Map[Object, Int] */
2751 val
* coloring__BucketsColorer__colorize(val
* self
, val
* p0
) {
2752 val
* var
/* : Map[Object, Int] */;
2753 short int var1
/* : Bool */;
2756 const struct type
* type_struct
;
2757 const char* var_class_name
;
2758 val
* var_buckets
/* var buckets: Map[Object, Set[Object]] */;
2759 long var2
/* : Int */;
2760 long var_min_color
/* var min_color: Int */;
2761 val
* var3
/* : MapIterator[Object, nullable Object] */;
2762 short int var4
/* : Bool */;
2763 val
* var5
/* : Object */;
2764 val
* var_holder
/* var holder: Object */;
2765 val
* var6
/* : nullable Object */;
2766 val
* var_hbuckets
/* var hbuckets: Set[Object] */;
2767 val
* var7
/* : Iterator[nullable Object] */;
2768 short int var8
/* : Bool */;
2769 val
* var9
/* : nullable Object */;
2770 val
* var_bucket
/* var bucket: Object */;
2771 val
* var10
/* : HashMap[Object, Int] */;
2772 val
* var12
/* : HashMap[Object, Int] */;
2773 short int var13
/* : Bool */;
2774 long var_color
/* var color: Int */;
2775 short int var14
/* : Bool */;
2776 short int var15
/* : Bool */;
2777 long var16
/* : Int */;
2778 long var17
/* : Int */;
2779 short int var19
/* : Bool */;
2782 const char* var_class_name22
;
2783 long var23
/* : Int */;
2784 val
* var25
/* : HashMap[Object, Int] */;
2785 val
* var27
/* : HashMap[Object, Int] */;
2786 val
* var28
/* : nullable Object */;
2787 val
* var30
/* : HashMap[Object, Int] */;
2788 val
* var32
/* : HashMap[Object, Int] */;
2789 /* Covariant cast for argument 0 (buckets) <p0:Map[Object, Set[Object]]> isa Map[BucketsColorer#0, Set[BucketsColorer#1]] */
2790 /* <p0:Map[Object, Set[Object]]> isa Map[BucketsColorer#0, Set[BucketsColorer#1]] */
2791 type_struct
= self
->type
->resolution_table
->types
[COLOR_abstract_collection__Mapcoloring__BucketsColorer_FT0abstract_collection__Setcoloring__BucketsColorer_FT1
];
2792 cltype
= type_struct
->color
;
2793 idtype
= type_struct
->id
;
2794 if(cltype
>= p0
->type
->table_size
) {
2797 var1
= p0
->type
->type_table
[cltype
] == idtype
;
2799 if (unlikely(!var1
)) {
2800 var_class_name
= p0
== NULL ?
"null" : p0
->type
->name
;
2801 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "Map[BucketsColorer#0, Set[BucketsColorer#1]]", var_class_name
);
2802 PRINT_ERROR(" (%s:%d)\n", "src/coloring.nit", 286);
2807 coloring__BucketsColorer__compute_conflicts(self
, var_buckets
); /* Direct call coloring#BucketsColorer#compute_conflicts on <self:BucketsColorer[Object, Object]>*/
2810 var_min_color
= var2
;
2812 var3
= ((val
* (*)(val
*))(var_buckets
->class->vft
[COLOR_abstract_collection__MapRead__iterator
]))(var_buckets
) /* iterator on <var_buckets:Map[Object, Set[Object]]>*/;
2816 var4
= ((short int (*)(val
*))(var3
->class->vft
[COLOR_abstract_collection__MapIterator__is_ok
]))(var3
) /* is_ok on <var3:MapIterator[Object, nullable Object]>*/;
2820 var5
= ((val
* (*)(val
*))(var3
->class->vft
[COLOR_abstract_collection__MapIterator__key
]))(var3
) /* key on <var3:MapIterator[Object, nullable Object]>*/;
2824 var6
= ((val
* (*)(val
*))(var3
->class->vft
[COLOR_abstract_collection__MapIterator__item
]))(var3
) /* item on <var3:MapIterator[Object, nullable Object]>*/;
2826 var_hbuckets
= var6
;
2828 var7
= ((val
* (*)(val
*))(var_hbuckets
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var_hbuckets
) /* iterator on <var_hbuckets:Set[Object]>*/;
2832 var8
= ((short int (*)(val
*))(var7
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var7
) /* is_ok on <var7:Iterator[nullable Object]>*/;
2836 var9
= ((val
* (*)(val
*))(var7
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var7
) /* item on <var7:Iterator[nullable Object]>*/;
2840 { /* Inline coloring#BucketsColorer#colors (self) on <self:BucketsColorer[Object, Object]> */
2841 var12
= self
->attrs
[COLOR_coloring__BucketsColorer___colors
].val
; /* _colors on <self:BucketsColorer[Object, Object]> */
2842 if (unlikely(var12
== NULL
)) {
2843 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _colors");
2844 PRINT_ERROR(" (%s:%d)\n", "src/coloring.nit", 281);
2848 RET_LABEL11
:(void)0;
2852 var13
= abstract_collection__MapRead__has_key(var10
, var_bucket
);
2855 goto CONTINUE_label
;
2858 var_color
= var_min_color
;
2861 var14
= coloring__BucketsColorer__is_color_free(self
, var_bucket
, var_color
);
2867 { /* Inline kernel#Int#+ (var_color,var16) on <var_color:Int> */
2868 /* Covariant cast for argument 0 (i) <var16:Int> isa OTHER */
2869 /* <var16:Int> isa OTHER */
2870 var19
= 1; /* easy <var16:Int> isa OTHER*/
2871 if (unlikely(!var19
)) {
2872 var_class_name22
= type_kernel__Int
.name
;
2873 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name22
);
2874 PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 328);
2877 var23
= var_color
+ var16
;
2880 RET_LABEL18
:(void)0;
2884 CONTINUE_label24
: (void)0;
2886 BREAK_label24
: (void)0;
2888 { /* Inline coloring#BucketsColorer#colors (self) on <self:BucketsColorer[Object, Object]> */
2889 var27
= self
->attrs
[COLOR_coloring__BucketsColorer___colors
].val
; /* _colors on <self:BucketsColorer[Object, Object]> */
2890 if (unlikely(var27
== NULL
)) {
2891 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _colors");
2892 PRINT_ERROR(" (%s:%d)\n", "src/coloring.nit", 281);
2896 RET_LABEL26
:(void)0;
2900 var28
= BOX_kernel__Int(var_color
); /* autobox from Int to nullable Object */
2901 hash_collection__HashMap___91d_93d_61d(var25
, var_bucket
, var28
); /* Direct call hash_collection#HashMap#[]= on <var25:HashMap[Object, Int]>*/
2903 var_color
= var_min_color
;
2904 CONTINUE_label
: (void)0;
2906 ((void (*)(val
*))(var7
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var7
) /* next on <var7:Iterator[nullable Object]>*/;
2909 BREAK_label
: (void)0;
2910 CONTINUE_label29
: (void)0;
2912 ((void (*)(val
*))(var3
->class->vft
[COLOR_abstract_collection__MapIterator__next
]))(var3
) /* next on <var3:MapIterator[Object, nullable Object]>*/;
2915 BREAK_label29
: (void)0;
2917 { /* Inline coloring#BucketsColorer#colors (self) on <self:BucketsColorer[Object, Object]> */
2918 var32
= self
->attrs
[COLOR_coloring__BucketsColorer___colors
].val
; /* _colors on <self:BucketsColorer[Object, Object]> */
2919 if (unlikely(var32
== NULL
)) {
2920 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _colors");
2921 PRINT_ERROR(" (%s:%d)\n", "src/coloring.nit", 281);
2925 RET_LABEL31
:(void)0;
2933 /* method coloring#BucketsColorer#colorize for (self: Object, Map[Object, Set[Object]]): Map[Object, Int] */
2934 val
* VIRTUAL_coloring__BucketsColorer__colorize(val
* self
, val
* p0
) {
2935 val
* var
/* : Map[Object, Int] */;
2936 val
* var1
/* : Map[Object, Int] */;
2937 var1
= coloring__BucketsColorer__colorize(self
, p0
);
2942 /* method coloring#BucketsColorer#is_color_free for (self: BucketsColorer[Object, Object], Object, Int): Bool */
2943 short int coloring__BucketsColorer__is_color_free(val
* self
, val
* p0
, long p1
) {
2944 short int var
/* : Bool */;
2945 short int var1
/* : Bool */;
2948 const struct type
* type_struct
;
2949 const char* var_class_name
;
2950 val
* var_bucket
/* var bucket: Object */;
2951 long var_color
/* var color: Int */;
2952 val
* var2
/* : HashMap[Object, Set[Object]] */;
2953 val
* var4
/* : HashMap[Object, Set[Object]] */;
2954 short int var5
/* : Bool */;
2955 val
* var6
/* : HashMap[Object, Set[Object]] */;
2956 val
* var8
/* : HashMap[Object, Set[Object]] */;
2957 val
* var9
/* : nullable Object */;
2958 val
* var10
/* : Iterator[nullable Object] */;
2959 short int var11
/* : Bool */;
2960 val
* var12
/* : nullable Object */;
2961 val
* var_other
/* var other: Object */;
2962 short int var13
/* : Bool */;
2963 val
* var14
/* : HashMap[Object, Int] */;
2964 val
* var16
/* : HashMap[Object, Int] */;
2965 short int var17
/* : Bool */;
2966 short int var_
/* var : Bool */;
2967 val
* var18
/* : HashMap[Object, Int] */;
2968 val
* var20
/* : HashMap[Object, Int] */;
2969 val
* var21
/* : nullable Object */;
2970 short int var22
/* : Bool */;
2971 short int var23
/* : Bool */;
2972 short int var25
/* : Bool */;
2973 long var26
/* : Int */;
2974 short int var27
/* : Bool */;
2975 short int var28
/* : Bool */;
2976 /* Covariant cast for argument 0 (bucket) <p0:Object> isa BucketsColorer#1 */
2977 /* <p0:Object> isa BucketsColorer#1 */
2978 type_struct
= self
->type
->resolution_table
->types
[COLOR_coloring__BucketsColorer_FT1
];
2979 cltype
= type_struct
->color
;
2980 idtype
= type_struct
->id
;
2981 if(cltype
>= p0
->type
->table_size
) {
2984 var1
= p0
->type
->type_table
[cltype
] == idtype
;
2986 if (unlikely(!var1
)) {
2987 var_class_name
= p0
== NULL ?
"null" : p0
->type
->name
;
2988 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "BucketsColorer#1", var_class_name
);
2989 PRINT_ERROR(" (%s:%d)\n", "src/coloring.nit", 304);
2995 { /* Inline coloring#BucketsColorer#conflicts (self) on <self:BucketsColorer[Object, Object]> */
2996 var4
= self
->attrs
[COLOR_coloring__BucketsColorer___conflicts
].val
; /* _conflicts on <self:BucketsColorer[Object, Object]> */
2997 if (unlikely(var4
== NULL
)) {
2998 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _conflicts");
2999 PRINT_ERROR(" (%s:%d)\n", "src/coloring.nit", 282);
3007 var5
= abstract_collection__MapRead__has_key(var2
, var_bucket
);
3011 { /* Inline coloring#BucketsColorer#conflicts (self) on <self:BucketsColorer[Object, Object]> */
3012 var8
= self
->attrs
[COLOR_coloring__BucketsColorer___conflicts
].val
; /* _conflicts on <self:BucketsColorer[Object, Object]> */
3013 if (unlikely(var8
== NULL
)) {
3014 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _conflicts");
3015 PRINT_ERROR(" (%s:%d)\n", "src/coloring.nit", 282);
3023 var9
= hash_collection__HashMap___91d_93d(var6
, var_bucket
);
3026 var10
= ((val
* (*)(val
*))(var9
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var9
) /* iterator on <var9:nullable Object(Set[Object])>*/;
3030 var11
= ((short int (*)(val
*))(var10
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var10
) /* is_ok on <var10:Iterator[nullable Object]>*/;
3034 var12
= ((val
* (*)(val
*))(var10
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var10
) /* item on <var10:Iterator[nullable Object]>*/;
3038 { /* Inline coloring#BucketsColorer#colors (self) on <self:BucketsColorer[Object, Object]> */
3039 var16
= self
->attrs
[COLOR_coloring__BucketsColorer___colors
].val
; /* _colors on <self:BucketsColorer[Object, Object]> */
3040 if (unlikely(var16
== NULL
)) {
3041 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _colors");
3042 PRINT_ERROR(" (%s:%d)\n", "src/coloring.nit", 281);
3046 RET_LABEL15
:(void)0;
3050 var17
= abstract_collection__MapRead__has_key(var14
, var_other
);
3055 { /* Inline coloring#BucketsColorer#colors (self) on <self:BucketsColorer[Object, Object]> */
3056 var20
= self
->attrs
[COLOR_coloring__BucketsColorer___colors
].val
; /* _colors on <self:BucketsColorer[Object, Object]> */
3057 if (unlikely(var20
== NULL
)) {
3058 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _colors");
3059 PRINT_ERROR(" (%s:%d)\n", "src/coloring.nit", 281);
3063 RET_LABEL19
:(void)0;
3067 var21
= hash_collection__HashMap___91d_93d(var18
, var_other
);
3070 { /* Inline kernel#Int#== (var21,var_color) on <var21:nullable Object(Int)> */
3071 var25
= (var21
!= NULL
) && (var21
->class == &class_kernel__Int
);
3073 var26
= ((struct instance_kernel__Int
*)var21
)->value
; /* autounbox from nullable Object to Int */;
3074 var25
= (var26
== var_color
);
3078 RET_LABEL24
:(void)0;
3092 CONTINUE_label
: (void)0;
3094 ((void (*)(val
*))(var10
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var10
) /* next on <var10:Iterator[nullable Object]>*/;
3097 BREAK_label
: (void)0;
3106 /* method coloring#BucketsColorer#is_color_free for (self: Object, Object, Int): Bool */
3107 short int VIRTUAL_coloring__BucketsColorer__is_color_free(val
* self
, val
* p0
, long p1
) {
3108 short int var
/* : Bool */;
3109 short int var1
/* : Bool */;
3110 var1
= coloring__BucketsColorer__is_color_free(self
, p0
, p1
);
3115 /* method coloring#BucketsColorer#compute_conflicts for (self: BucketsColorer[Object, Object], Map[Object, Set[Object]]) */
3116 void coloring__BucketsColorer__compute_conflicts(val
* self
, val
* p0
) {
3117 short int var
/* : Bool */;
3120 const struct type
* type_struct
;
3121 const char* var_class_name
;
3122 val
* var_buckets
/* var buckets: Map[Object, Set[Object]] */;
3123 val
* var1
/* : HashMap[Object, Set[Object]] */;
3124 val
* var3
/* : HashMap[Object, Set[Object]] */;
3125 val
* var4
/* : MapIterator[Object, nullable Object] */;
3126 short int var5
/* : Bool */;
3127 val
* var6
/* : Object */;
3128 val
* var_holder
/* var holder: Object */;
3129 val
* var7
/* : nullable Object */;
3130 val
* var_hbuckets
/* var hbuckets: Set[Object] */;
3131 val
* var8
/* : Iterator[nullable Object] */;
3132 short int var9
/* : Bool */;
3133 val
* var10
/* : nullable Object */;
3134 val
* var_bucket
/* var bucket: Object */;
3135 val
* var11
/* : HashMap[Object, Set[Object]] */;
3136 val
* var13
/* : HashMap[Object, Set[Object]] */;
3137 short int var14
/* : Bool */;
3138 short int var15
/* : Bool */;
3139 val
* var16
/* : HashMap[Object, Set[Object]] */;
3140 val
* var18
/* : HashMap[Object, Set[Object]] */;
3141 val
* var19
/* : HashSet[Object] */;
3142 val
* var20
/* : Iterator[nullable Object] */;
3143 short int var21
/* : Bool */;
3144 val
* var22
/* : nullable Object */;
3145 val
* var_obucket
/* var obucket: Object */;
3146 short int var23
/* : Bool */;
3147 short int var24
/* : Bool */;
3148 val
* var25
/* : HashMap[Object, Set[Object]] */;
3149 val
* var27
/* : HashMap[Object, Set[Object]] */;
3150 short int var28
/* : Bool */;
3151 short int var29
/* : Bool */;
3152 val
* var30
/* : HashMap[Object, Set[Object]] */;
3153 val
* var32
/* : HashMap[Object, Set[Object]] */;
3154 val
* var33
/* : HashSet[Object] */;
3155 val
* var34
/* : HashMap[Object, Set[Object]] */;
3156 val
* var36
/* : HashMap[Object, Set[Object]] */;
3157 val
* var37
/* : nullable Object */;
3158 val
* var38
/* : HashMap[Object, Set[Object]] */;
3159 val
* var40
/* : HashMap[Object, Set[Object]] */;
3160 val
* var41
/* : nullable Object */;
3161 /* Covariant cast for argument 0 (buckets) <p0:Map[Object, Set[Object]]> isa Map[BucketsColorer#0, Set[BucketsColorer#1]] */
3162 /* <p0:Map[Object, Set[Object]]> isa Map[BucketsColorer#0, Set[BucketsColorer#1]] */
3163 type_struct
= self
->type
->resolution_table
->types
[COLOR_abstract_collection__Mapcoloring__BucketsColorer_FT0abstract_collection__Setcoloring__BucketsColorer_FT1
];
3164 cltype
= type_struct
->color
;
3165 idtype
= type_struct
->id
;
3166 if(cltype
>= p0
->type
->table_size
) {
3169 var
= p0
->type
->type_table
[cltype
] == idtype
;
3171 if (unlikely(!var
)) {
3172 var_class_name
= p0
== NULL ?
"null" : p0
->type
->name
;
3173 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "Map[BucketsColorer#0, Set[BucketsColorer#1]]", var_class_name
);
3174 PRINT_ERROR(" (%s:%d)\n", "src/coloring.nit", 313);
3179 { /* Inline coloring#BucketsColorer#conflicts (self) on <self:BucketsColorer[Object, Object]> */
3180 var3
= self
->attrs
[COLOR_coloring__BucketsColorer___conflicts
].val
; /* _conflicts on <self:BucketsColorer[Object, Object]> */
3181 if (unlikely(var3
== NULL
)) {
3182 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _conflicts");
3183 PRINT_ERROR(" (%s:%d)\n", "src/coloring.nit", 282);
3191 hash_collection__HashMap__clear(var1
); /* Direct call hash_collection#HashMap#clear on <var1:HashMap[Object, Set[Object]]>*/
3194 var4
= ((val
* (*)(val
*))(var_buckets
->class->vft
[COLOR_abstract_collection__MapRead__iterator
]))(var_buckets
) /* iterator on <var_buckets:Map[Object, Set[Object]]>*/;
3198 var5
= ((short int (*)(val
*))(var4
->class->vft
[COLOR_abstract_collection__MapIterator__is_ok
]))(var4
) /* is_ok on <var4:MapIterator[Object, nullable Object]>*/;
3202 var6
= ((val
* (*)(val
*))(var4
->class->vft
[COLOR_abstract_collection__MapIterator__key
]))(var4
) /* key on <var4:MapIterator[Object, nullable Object]>*/;
3206 var7
= ((val
* (*)(val
*))(var4
->class->vft
[COLOR_abstract_collection__MapIterator__item
]))(var4
) /* item on <var4:MapIterator[Object, nullable Object]>*/;
3208 var_hbuckets
= var7
;
3210 var8
= ((val
* (*)(val
*))(var_hbuckets
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var_hbuckets
) /* iterator on <var_hbuckets:Set[Object]>*/;
3214 var9
= ((short int (*)(val
*))(var8
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var8
) /* is_ok on <var8:Iterator[nullable Object]>*/;
3218 var10
= ((val
* (*)(val
*))(var8
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var8
) /* item on <var8:Iterator[nullable Object]>*/;
3222 { /* Inline coloring#BucketsColorer#conflicts (self) on <self:BucketsColorer[Object, Object]> */
3223 var13
= self
->attrs
[COLOR_coloring__BucketsColorer___conflicts
].val
; /* _conflicts on <self:BucketsColorer[Object, Object]> */
3224 if (unlikely(var13
== NULL
)) {
3225 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _conflicts");
3226 PRINT_ERROR(" (%s:%d)\n", "src/coloring.nit", 282);
3230 RET_LABEL12
:(void)0;
3234 var14
= abstract_collection__MapRead__has_key(var11
, var_bucket
);
3239 { /* Inline coloring#BucketsColorer#conflicts (self) on <self:BucketsColorer[Object, Object]> */
3240 var18
= self
->attrs
[COLOR_coloring__BucketsColorer___conflicts
].val
; /* _conflicts on <self:BucketsColorer[Object, Object]> */
3241 if (unlikely(var18
== NULL
)) {
3242 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _conflicts");
3243 PRINT_ERROR(" (%s:%d)\n", "src/coloring.nit", 282);
3247 RET_LABEL17
:(void)0;
3250 var19
= NEW_hash_collection__HashSet(self
->type
->resolution_table
->types
[COLOR_hash_collection__HashSetcoloring__BucketsColorer_FT1
]);
3252 hash_collection__HashSet__init(var19
); /* Direct call hash_collection#HashSet#init on <var19:HashSet[Object]>*/
3255 hash_collection__HashMap___91d_93d_61d(var16
, var_bucket
, var19
); /* Direct call hash_collection#HashMap#[]= on <var16:HashMap[Object, Set[Object]]>*/
3260 var20
= ((val
* (*)(val
*))(var_hbuckets
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var_hbuckets
) /* iterator on <var_hbuckets:Set[Object]>*/;
3264 var21
= ((short int (*)(val
*))(var20
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var20
) /* is_ok on <var20:Iterator[nullable Object]>*/;
3268 var22
= ((val
* (*)(val
*))(var20
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var20
) /* item on <var20:Iterator[nullable Object]>*/;
3270 var_obucket
= var22
;
3272 var24
= ((short int (*)(val
*, val
*))(var_obucket
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var_obucket
, var_bucket
) /* == on <var_obucket:Object>*/;
3276 goto CONTINUE_label
;
3280 { /* Inline coloring#BucketsColorer#conflicts (self) on <self:BucketsColorer[Object, Object]> */
3281 var27
= self
->attrs
[COLOR_coloring__BucketsColorer___conflicts
].val
; /* _conflicts on <self:BucketsColorer[Object, Object]> */
3282 if (unlikely(var27
== NULL
)) {
3283 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _conflicts");
3284 PRINT_ERROR(" (%s:%d)\n", "src/coloring.nit", 282);
3288 RET_LABEL26
:(void)0;
3292 var28
= abstract_collection__MapRead__has_key(var25
, var_obucket
);
3297 { /* Inline coloring#BucketsColorer#conflicts (self) on <self:BucketsColorer[Object, Object]> */
3298 var32
= self
->attrs
[COLOR_coloring__BucketsColorer___conflicts
].val
; /* _conflicts on <self:BucketsColorer[Object, Object]> */
3299 if (unlikely(var32
== NULL
)) {
3300 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _conflicts");
3301 PRINT_ERROR(" (%s:%d)\n", "src/coloring.nit", 282);
3305 RET_LABEL31
:(void)0;
3308 var33
= NEW_hash_collection__HashSet(self
->type
->resolution_table
->types
[COLOR_hash_collection__HashSetcoloring__BucketsColorer_FT1
]);
3310 hash_collection__HashSet__init(var33
); /* Direct call hash_collection#HashSet#init on <var33:HashSet[Object]>*/
3313 hash_collection__HashMap___91d_93d_61d(var30
, var_obucket
, var33
); /* Direct call hash_collection#HashMap#[]= on <var30:HashMap[Object, Set[Object]]>*/
3318 { /* Inline coloring#BucketsColorer#conflicts (self) on <self:BucketsColorer[Object, Object]> */
3319 var36
= self
->attrs
[COLOR_coloring__BucketsColorer___conflicts
].val
; /* _conflicts on <self:BucketsColorer[Object, Object]> */
3320 if (unlikely(var36
== NULL
)) {
3321 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _conflicts");
3322 PRINT_ERROR(" (%s:%d)\n", "src/coloring.nit", 282);
3326 RET_LABEL35
:(void)0;
3330 var37
= hash_collection__HashMap___91d_93d(var34
, var_bucket
);
3333 ((void (*)(val
*, val
*))(var37
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var37
, var_obucket
) /* add on <var37:nullable Object(Set[Object])>*/;
3336 { /* Inline coloring#BucketsColorer#conflicts (self) on <self:BucketsColorer[Object, Object]> */
3337 var40
= self
->attrs
[COLOR_coloring__BucketsColorer___conflicts
].val
; /* _conflicts on <self:BucketsColorer[Object, Object]> */
3338 if (unlikely(var40
== NULL
)) {
3339 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _conflicts");
3340 PRINT_ERROR(" (%s:%d)\n", "src/coloring.nit", 282);
3344 RET_LABEL39
:(void)0;
3348 var41
= hash_collection__HashMap___91d_93d(var38
, var_obucket
);
3351 ((void (*)(val
*, val
*))(var41
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var41
, var_bucket
) /* add on <var41:nullable Object(Set[Object])>*/;
3353 CONTINUE_label
: (void)0;
3355 ((void (*)(val
*))(var20
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var20
) /* next on <var20:Iterator[nullable Object]>*/;
3358 BREAK_label
: (void)0;
3359 CONTINUE_label42
: (void)0;
3361 ((void (*)(val
*))(var8
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var8
) /* next on <var8:Iterator[nullable Object]>*/;
3364 BREAK_label42
: (void)0;
3365 CONTINUE_label43
: (void)0;
3367 ((void (*)(val
*))(var4
->class->vft
[COLOR_abstract_collection__MapIterator__next
]))(var4
) /* next on <var4:MapIterator[Object, nullable Object]>*/;
3370 BREAK_label43
: (void)0;
3373 /* method coloring#BucketsColorer#compute_conflicts for (self: Object, Map[Object, Set[Object]]) */
3374 void VIRTUAL_coloring__BucketsColorer__compute_conflicts(val
* self
, val
* p0
) {
3375 coloring__BucketsColorer__compute_conflicts(self
, p0
); /* Direct call coloring#BucketsColorer#compute_conflicts on <self:Object(BucketsColorer[Object, Object])>*/
3378 /* method coloring#POSetBucketsColorer#colors for (self: POSetBucketsColorer[Object, Object]): HashMap[Object, Int] */
3379 val
* coloring__POSetBucketsColorer__colors(val
* self
) {
3380 val
* var
/* : HashMap[Object, Int] */;
3381 val
* var1
/* : HashMap[Object, Int] */;
3382 var1
= self
->attrs
[COLOR_coloring__POSetBucketsColorer___colors
].val
; /* _colors on <self:POSetBucketsColorer[Object, Object]> */
3383 if (unlikely(var1
== NULL
)) {
3384 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _colors");
3385 PRINT_ERROR(" (%s:%d)\n", "src/coloring.nit", 334);
3392 /* method coloring#POSetBucketsColorer#colors for (self: Object): HashMap[Object, Int] */
3393 val
* VIRTUAL_coloring__POSetBucketsColorer__colors(val
* self
) {
3394 val
* var
/* : HashMap[Object, Int] */;
3395 val
* var1
/* : HashMap[Object, Int] */;
3396 val
* var3
/* : HashMap[Object, Int] */;
3397 { /* Inline coloring#POSetBucketsColorer#colors (self) on <self:Object(POSetBucketsColorer[Object, Object])> */
3398 var3
= self
->attrs
[COLOR_coloring__POSetBucketsColorer___colors
].val
; /* _colors on <self:Object(POSetBucketsColorer[Object, Object])> */
3399 if (unlikely(var3
== NULL
)) {
3400 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _colors");
3401 PRINT_ERROR(" (%s:%d)\n", "src/coloring.nit", 334);
3411 /* method coloring#POSetBucketsColorer#poset for (self: POSetBucketsColorer[Object, Object]): POSet[Object] */
3412 val
* coloring__POSetBucketsColorer__poset(val
* self
) {
3413 val
* var
/* : POSet[Object] */;
3414 val
* var1
/* : POSet[Object] */;
3415 var1
= self
->attrs
[COLOR_coloring__POSetBucketsColorer___poset
].val
; /* _poset on <self:POSetBucketsColorer[Object, Object]> */
3416 if (unlikely(var1
== NULL
)) {
3417 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _poset");
3418 PRINT_ERROR(" (%s:%d)\n", "src/coloring.nit", 335);
3425 /* method coloring#POSetBucketsColorer#poset for (self: Object): POSet[Object] */
3426 val
* VIRTUAL_coloring__POSetBucketsColorer__poset(val
* self
) {
3427 val
* var
/* : POSet[Object] */;
3428 val
* var1
/* : POSet[Object] */;
3429 val
* var3
/* : POSet[Object] */;
3430 { /* Inline coloring#POSetBucketsColorer#poset (self) on <self:Object(POSetBucketsColorer[Object, Object])> */
3431 var3
= self
->attrs
[COLOR_coloring__POSetBucketsColorer___poset
].val
; /* _poset on <self:Object(POSetBucketsColorer[Object, Object])> */
3432 if (unlikely(var3
== NULL
)) {
3433 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _poset");
3434 PRINT_ERROR(" (%s:%d)\n", "src/coloring.nit", 335);
3444 /* method coloring#POSetBucketsColorer#poset= for (self: POSetBucketsColorer[Object, Object], POSet[Object]) */
3445 void coloring__POSetBucketsColorer__poset_61d(val
* self
, val
* p0
) {
3446 short int var
/* : Bool */;
3449 const struct type
* type_struct
;
3450 const char* var_class_name
;
3451 /* Covariant cast for argument 0 (poset) <p0:POSet[Object]> isa POSet[POSetBucketsColorer#0] */
3452 /* <p0:POSet[Object]> isa POSet[POSetBucketsColorer#0] */
3453 type_struct
= self
->type
->resolution_table
->types
[COLOR_poset__POSetcoloring__POSetBucketsColorer_FT0
];
3454 cltype
= type_struct
->color
;
3455 idtype
= type_struct
->id
;
3456 if(cltype
>= p0
->type
->table_size
) {
3459 var
= p0
->type
->type_table
[cltype
] == idtype
;
3461 if (unlikely(!var
)) {
3462 var_class_name
= p0
== NULL ?
"null" : p0
->type
->name
;
3463 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "POSet[POSetBucketsColorer#0]", var_class_name
);
3464 PRINT_ERROR(" (%s:%d)\n", "src/coloring.nit", 335);
3467 self
->attrs
[COLOR_coloring__POSetBucketsColorer___poset
].val
= p0
; /* _poset on <self:POSetBucketsColorer[Object, Object]> */
3470 /* method coloring#POSetBucketsColorer#poset= for (self: Object, POSet[Object]) */
3471 void VIRTUAL_coloring__POSetBucketsColorer__poset_61d(val
* self
, val
* p0
) {
3472 short int var
/* : Bool */;
3475 const struct type
* type_struct
;
3476 const char* var_class_name
;
3477 { /* Inline coloring#POSetBucketsColorer#poset= (self,p0) on <self:Object(POSetBucketsColorer[Object, Object])> */
3478 /* Covariant cast for argument 0 (poset) <p0:POSet[Object]> isa POSet[POSetBucketsColorer#0] */
3479 /* <p0:POSet[Object]> isa POSet[POSetBucketsColorer#0] */
3480 type_struct
= self
->type
->resolution_table
->types
[COLOR_poset__POSetcoloring__POSetBucketsColorer_FT0
];
3481 cltype
= type_struct
->color
;
3482 idtype
= type_struct
->id
;
3483 if(cltype
>= p0
->type
->table_size
) {
3486 var
= p0
->type
->type_table
[cltype
] == idtype
;
3488 if (unlikely(!var
)) {
3489 var_class_name
= p0
== NULL ?
"null" : p0
->type
->name
;
3490 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "POSet[POSetBucketsColorer#0]", var_class_name
);
3491 PRINT_ERROR(" (%s:%d)\n", "src/coloring.nit", 335);
3494 self
->attrs
[COLOR_coloring__POSetBucketsColorer___poset
].val
= p0
; /* _poset on <self:Object(POSetBucketsColorer[Object, Object])> */
3499 /* method coloring#POSetBucketsColorer#conflicts for (self: POSetBucketsColorer[Object, Object]): Map[Object, Set[Object]] */
3500 val
* coloring__POSetBucketsColorer__conflicts(val
* self
) {
3501 val
* var
/* : Map[Object, Set[Object]] */;
3502 val
* var1
/* : Map[Object, Set[Object]] */;
3503 var1
= self
->attrs
[COLOR_coloring__POSetBucketsColorer___conflicts
].val
; /* _conflicts on <self:POSetBucketsColorer[Object, Object]> */
3504 if (unlikely(var1
== NULL
)) {
3505 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _conflicts");
3506 PRINT_ERROR(" (%s:%d)\n", "src/coloring.nit", 336);
3513 /* method coloring#POSetBucketsColorer#conflicts for (self: Object): Map[Object, Set[Object]] */
3514 val
* VIRTUAL_coloring__POSetBucketsColorer__conflicts(val
* self
) {
3515 val
* var
/* : Map[Object, Set[Object]] */;
3516 val
* var1
/* : Map[Object, Set[Object]] */;
3517 val
* var3
/* : Map[Object, Set[Object]] */;
3518 { /* Inline coloring#POSetBucketsColorer#conflicts (self) on <self:Object(POSetBucketsColorer[Object, Object])> */
3519 var3
= self
->attrs
[COLOR_coloring__POSetBucketsColorer___conflicts
].val
; /* _conflicts on <self:Object(POSetBucketsColorer[Object, Object])> */
3520 if (unlikely(var3
== NULL
)) {
3521 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _conflicts");
3522 PRINT_ERROR(" (%s:%d)\n", "src/coloring.nit", 336);
3532 /* method coloring#POSetBucketsColorer#conflicts= for (self: POSetBucketsColorer[Object, Object], Map[Object, Set[Object]]) */
3533 void coloring__POSetBucketsColorer__conflicts_61d(val
* self
, val
* p0
) {
3534 short int var
/* : Bool */;
3537 const struct type
* type_struct
;
3538 const char* var_class_name
;
3539 /* Covariant cast for argument 0 (conflicts) <p0:Map[Object, Set[Object]]> isa Map[POSetBucketsColorer#0, Set[POSetBucketsColorer#0]] */
3540 /* <p0:Map[Object, Set[Object]]> isa Map[POSetBucketsColorer#0, Set[POSetBucketsColorer#0]] */
3541 type_struct
= self
->type
->resolution_table
->types
[COLOR_abstract_collection__Mapcoloring__POSetBucketsColorer_FT0abstract_collection__Setcoloring__POSetBucketsColorer_FT0
];
3542 cltype
= type_struct
->color
;
3543 idtype
= type_struct
->id
;
3544 if(cltype
>= p0
->type
->table_size
) {
3547 var
= p0
->type
->type_table
[cltype
] == idtype
;
3549 if (unlikely(!var
)) {
3550 var_class_name
= p0
== NULL ?
"null" : p0
->type
->name
;
3551 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "Map[POSetBucketsColorer#0, Set[POSetBucketsColorer#0]]", var_class_name
);
3552 PRINT_ERROR(" (%s:%d)\n", "src/coloring.nit", 336);
3555 self
->attrs
[COLOR_coloring__POSetBucketsColorer___conflicts
].val
= p0
; /* _conflicts on <self:POSetBucketsColorer[Object, Object]> */
3558 /* method coloring#POSetBucketsColorer#conflicts= for (self: Object, Map[Object, Set[Object]]) */
3559 void VIRTUAL_coloring__POSetBucketsColorer__conflicts_61d(val
* self
, val
* p0
) {
3560 short int var
/* : Bool */;
3563 const struct type
* type_struct
;
3564 const char* var_class_name
;
3565 { /* Inline coloring#POSetBucketsColorer#conflicts= (self,p0) on <self:Object(POSetBucketsColorer[Object, Object])> */
3566 /* Covariant cast for argument 0 (conflicts) <p0:Map[Object, Set[Object]]> isa Map[POSetBucketsColorer#0, Set[POSetBucketsColorer#0]] */
3567 /* <p0:Map[Object, Set[Object]]> isa Map[POSetBucketsColorer#0, Set[POSetBucketsColorer#0]] */
3568 type_struct
= self
->type
->resolution_table
->types
[COLOR_abstract_collection__Mapcoloring__POSetBucketsColorer_FT0abstract_collection__Setcoloring__POSetBucketsColorer_FT0
];
3569 cltype
= type_struct
->color
;
3570 idtype
= type_struct
->id
;
3571 if(cltype
>= p0
->type
->table_size
) {
3574 var
= p0
->type
->type_table
[cltype
] == idtype
;
3576 if (unlikely(!var
)) {
3577 var_class_name
= p0
== NULL ?
"null" : p0
->type
->name
;
3578 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "Map[POSetBucketsColorer#0, Set[POSetBucketsColorer#0]]", var_class_name
);
3579 PRINT_ERROR(" (%s:%d)\n", "src/coloring.nit", 336);
3582 self
->attrs
[COLOR_coloring__POSetBucketsColorer___conflicts
].val
= p0
; /* _conflicts on <self:Object(POSetBucketsColorer[Object, Object])> */
3587 /* method coloring#POSetBucketsColorer#init for (self: POSetBucketsColorer[Object, Object], POSet[Object], Map[Object, Set[Object]]) */
3588 void coloring__POSetBucketsColorer__init(val
* self
, val
* p0
, val
* p1
) {
3589 short int var
/* : Bool */;
3592 const struct type
* type_struct
;
3593 const char* var_class_name
;
3594 short int var1
/* : Bool */;
3597 const struct type
* type_struct4
;
3598 const char* var_class_name5
;
3599 val
* var_poset
/* var poset: POSet[Object] */;
3600 val
* var_conflicts
/* var conflicts: Map[Object, Set[Object]] */;
3601 short int var7
/* : Bool */;
3604 const struct type
* type_struct10
;
3605 const char* var_class_name11
;
3606 short int var13
/* : Bool */;
3609 const struct type
* type_struct16
;
3610 const char* var_class_name17
;
3611 /* Covariant cast for argument 0 (poset) <p0:POSet[Object]> isa POSet[POSetBucketsColorer#0] */
3612 /* <p0:POSet[Object]> isa POSet[POSetBucketsColorer#0] */
3613 type_struct
= self
->type
->resolution_table
->types
[COLOR_poset__POSetcoloring__POSetBucketsColorer_FT0
];
3614 cltype
= type_struct
->color
;
3615 idtype
= type_struct
->id
;
3616 if(cltype
>= p0
->type
->table_size
) {
3619 var
= p0
->type
->type_table
[cltype
] == idtype
;
3621 if (unlikely(!var
)) {
3622 var_class_name
= p0
== NULL ?
"null" : p0
->type
->name
;
3623 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "POSet[POSetBucketsColorer#0]", var_class_name
);
3624 PRINT_ERROR(" (%s:%d)\n", "src/coloring.nit", 338);
3627 /* Covariant cast for argument 1 (conflicts) <p1:Map[Object, Set[Object]]> isa Map[POSetBucketsColorer#0, Set[POSetBucketsColorer#0]] */
3628 /* <p1:Map[Object, Set[Object]]> isa Map[POSetBucketsColorer#0, Set[POSetBucketsColorer#0]] */
3629 type_struct4
= self
->type
->resolution_table
->types
[COLOR_abstract_collection__Mapcoloring__POSetBucketsColorer_FT0abstract_collection__Setcoloring__POSetBucketsColorer_FT0
];
3630 cltype2
= type_struct4
->color
;
3631 idtype3
= type_struct4
->id
;
3632 if(cltype2
>= p1
->type
->table_size
) {
3635 var1
= p1
->type
->type_table
[cltype2
] == idtype3
;
3637 if (unlikely(!var1
)) {
3638 var_class_name5
= p1
== NULL ?
"null" : p1
->type
->name
;
3639 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "Map[POSetBucketsColorer#0, Set[POSetBucketsColorer#0]]", var_class_name5
);
3640 PRINT_ERROR(" (%s:%d)\n", "src/coloring.nit", 338);
3646 { /* Inline coloring#POSetBucketsColorer#poset= (self,var_poset) on <self:POSetBucketsColorer[Object, Object]> */
3647 /* Covariant cast for argument 0 (poset) <var_poset:POSet[Object]> isa POSet[POSetBucketsColorer#0] */
3648 /* <var_poset:POSet[Object]> isa POSet[POSetBucketsColorer#0] */
3649 type_struct10
= self
->type
->resolution_table
->types
[COLOR_poset__POSetcoloring__POSetBucketsColorer_FT0
];
3650 cltype8
= type_struct10
->color
;
3651 idtype9
= type_struct10
->id
;
3652 if(cltype8
>= var_poset
->type
->table_size
) {
3655 var7
= var_poset
->type
->type_table
[cltype8
] == idtype9
;
3657 if (unlikely(!var7
)) {
3658 var_class_name11
= var_poset
== NULL ?
"null" : var_poset
->type
->name
;
3659 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "POSet[POSetBucketsColorer#0]", var_class_name11
);
3660 PRINT_ERROR(" (%s:%d)\n", "src/coloring.nit", 335);
3663 self
->attrs
[COLOR_coloring__POSetBucketsColorer___poset
].val
= var_poset
; /* _poset on <self:POSetBucketsColorer[Object, Object]> */
3668 { /* Inline coloring#POSetBucketsColorer#conflicts= (self,var_conflicts) on <self:POSetBucketsColorer[Object, Object]> */
3669 /* Covariant cast for argument 0 (conflicts) <var_conflicts:Map[Object, Set[Object]]> isa Map[POSetBucketsColorer#0, Set[POSetBucketsColorer#0]] */
3670 /* <var_conflicts:Map[Object, Set[Object]]> isa Map[POSetBucketsColorer#0, Set[POSetBucketsColorer#0]] */
3671 type_struct16
= self
->type
->resolution_table
->types
[COLOR_abstract_collection__Mapcoloring__POSetBucketsColorer_FT0abstract_collection__Setcoloring__POSetBucketsColorer_FT0
];
3672 cltype14
= type_struct16
->color
;
3673 idtype15
= type_struct16
->id
;
3674 if(cltype14
>= var_conflicts
->type
->table_size
) {
3677 var13
= var_conflicts
->type
->type_table
[cltype14
] == idtype15
;
3679 if (unlikely(!var13
)) {
3680 var_class_name17
= var_conflicts
== NULL ?
"null" : var_conflicts
->type
->name
;
3681 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "Map[POSetBucketsColorer#0, Set[POSetBucketsColorer#0]]", var_class_name17
);
3682 PRINT_ERROR(" (%s:%d)\n", "src/coloring.nit", 336);
3685 self
->attrs
[COLOR_coloring__POSetBucketsColorer___conflicts
].val
= var_conflicts
; /* _conflicts on <self:POSetBucketsColorer[Object, Object]> */
3686 RET_LABEL12
:(void)0;
3691 /* method coloring#POSetBucketsColorer#init for (self: Object, POSet[Object], Map[Object, Set[Object]]) */
3692 void VIRTUAL_coloring__POSetBucketsColorer__init(val
* self
, val
* p0
, val
* p1
) {
3693 coloring__POSetBucketsColorer__init(self
, p0
, p1
); /* Direct call coloring#POSetBucketsColorer#init on <self:Object(POSetBucketsColorer[Object, Object])>*/
3696 /* method coloring#POSetBucketsColorer#colorize for (self: POSetBucketsColorer[Object, Object], Map[Object, Set[Object]]): Map[Object, Int] */
3697 val
* coloring__POSetBucketsColorer__colorize(val
* self
, val
* p0
) {
3698 val
* var
/* : Map[Object, Int] */;
3699 short int var1
/* : Bool */;
3702 const struct type
* type_struct
;
3703 const char* var_class_name
;
3704 val
* var_buckets
/* var buckets: Map[Object, Set[Object]] */;
3705 val
* var2
/* : HashMap[Object, Int] */;
3706 val
* var4
/* : HashMap[Object, Int] */;
3707 val
* var5
/* : POSet[Object] */;
3708 val
* var7
/* : POSet[Object] */;
3709 val
* var8
/* : Collection[Object] */;
3710 val
* var9
/* : Array[Object] */;
3711 val
* var10
/* : ArrayIterator[nullable Object] */;
3712 short int var11
/* : Bool */;
3713 val
* var12
/* : nullable Object */;
3714 val
* var_h
/* var h: Object */;
3715 val
* var13
/* : POSet[Object] */;
3716 val
* var15
/* : POSet[Object] */;
3717 val
* var16
/* : POSetElement[Object] */;
3718 val
* var17
/* : Collection[Object] */;
3719 long var18
/* : Int */;
3720 long var_color
/* var color: Int */;
3721 val
* var19
/* : nullable Object */;
3722 val
* var20
/* : Iterator[nullable Object] */;
3723 short int var21
/* : Bool */;
3724 val
* var22
/* : nullable Object */;
3725 val
* var_bucket
/* var bucket: Object */;
3726 val
* var23
/* : HashMap[Object, Int] */;
3727 val
* var25
/* : HashMap[Object, Int] */;
3728 short int var26
/* : Bool */;
3729 short int var27
/* : Bool */;
3730 short int var28
/* : Bool */;
3731 long var29
/* : Int */;
3732 long var30
/* : Int */;
3733 short int var32
/* : Bool */;
3736 const char* var_class_name35
;
3737 long var36
/* : Int */;
3738 val
* var38
/* : HashMap[Object, Int] */;
3739 val
* var40
/* : HashMap[Object, Int] */;
3740 val
* var41
/* : nullable Object */;
3741 long var42
/* : Int */;
3742 long var43
/* : Int */;
3743 short int var45
/* : Bool */;
3746 const char* var_class_name48
;
3747 long var49
/* : Int */;
3748 val
* var51
/* : HashMap[Object, Int] */;
3749 val
* var53
/* : HashMap[Object, Int] */;
3750 /* Covariant cast for argument 0 (buckets) <p0:Map[Object, Set[Object]]> isa Map[POSetBucketsColorer#0, Set[POSetBucketsColorer#1]] */
3751 /* <p0:Map[Object, Set[Object]]> isa Map[POSetBucketsColorer#0, Set[POSetBucketsColorer#1]] */
3752 type_struct
= self
->type
->resolution_table
->types
[COLOR_abstract_collection__Mapcoloring__POSetBucketsColorer_FT0abstract_collection__Setcoloring__POSetBucketsColorer_FT1
];
3753 cltype
= type_struct
->color
;
3754 idtype
= type_struct
->id
;
3755 if(cltype
>= p0
->type
->table_size
) {
3758 var1
= p0
->type
->type_table
[cltype
] == idtype
;
3760 if (unlikely(!var1
)) {
3761 var_class_name
= p0
== NULL ?
"null" : p0
->type
->name
;
3762 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "Map[POSetBucketsColorer#0, Set[POSetBucketsColorer#1]]", var_class_name
);
3763 PRINT_ERROR(" (%s:%d)\n", "src/coloring.nit", 343);
3768 { /* Inline coloring#POSetBucketsColorer#colors (self) on <self:POSetBucketsColorer[Object, Object]> */
3769 var4
= self
->attrs
[COLOR_coloring__POSetBucketsColorer___colors
].val
; /* _colors on <self:POSetBucketsColorer[Object, Object]> */
3770 if (unlikely(var4
== NULL
)) {
3771 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _colors");
3772 PRINT_ERROR(" (%s:%d)\n", "src/coloring.nit", 334);
3780 hash_collection__HashMap__clear(var2
); /* Direct call hash_collection#HashMap#clear on <var2:HashMap[Object, Int]>*/
3783 { /* Inline coloring#POSetBucketsColorer#poset (self) on <self:POSetBucketsColorer[Object, Object]> */
3784 var7
= self
->attrs
[COLOR_coloring__POSetBucketsColorer___poset
].val
; /* _poset on <self:POSetBucketsColorer[Object, Object]> */
3785 if (unlikely(var7
== NULL
)) {
3786 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _poset");
3787 PRINT_ERROR(" (%s:%d)\n", "src/coloring.nit", 335);
3795 var8
= ((val
* (*)(val
*))(var_buckets
->class->vft
[COLOR_abstract_collection__MapRead__keys
]))(var_buckets
) /* keys on <var_buckets:Map[Object, Set[Object]]>*/;
3798 var9
= poset__POSet__linearize(var5
, var8
);
3801 var10
= array__AbstractArrayRead__iterator(var9
);
3805 var11
= array__ArrayIterator__is_ok(var10
);
3809 var12
= array__ArrayIterator__item(var10
);
3813 { /* Inline coloring#POSetBucketsColorer#poset (self) on <self:POSetBucketsColorer[Object, Object]> */
3814 var15
= self
->attrs
[COLOR_coloring__POSetBucketsColorer___poset
].val
; /* _poset on <self:POSetBucketsColorer[Object, Object]> */
3815 if (unlikely(var15
== NULL
)) {
3816 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _poset");
3817 PRINT_ERROR(" (%s:%d)\n", "src/coloring.nit", 335);
3821 RET_LABEL14
:(void)0;
3825 var16
= poset__POSet___91d_93d(var13
, var_h
);
3828 var17
= poset__POSetElement__direct_greaters(var16
);
3831 var18
= coloring__POSetBucketsColorer__min_color(self
, var17
, var_buckets
);
3835 var19
= ((val
* (*)(val
*, val
*))(var_buckets
->class->vft
[COLOR_abstract_collection__MapRead___91d_93d
]))(var_buckets
, var_h
) /* [] on <var_buckets:Map[Object, Set[Object]]>*/;
3838 var20
= ((val
* (*)(val
*))(var19
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var19
) /* iterator on <var19:nullable Object(Set[Object])>*/;
3842 var21
= ((short int (*)(val
*))(var20
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var20
) /* is_ok on <var20:Iterator[nullable Object]>*/;
3846 var22
= ((val
* (*)(val
*))(var20
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var20
) /* item on <var20:Iterator[nullable Object]>*/;
3850 { /* Inline coloring#POSetBucketsColorer#colors (self) on <self:POSetBucketsColorer[Object, Object]> */
3851 var25
= self
->attrs
[COLOR_coloring__POSetBucketsColorer___colors
].val
; /* _colors on <self:POSetBucketsColorer[Object, Object]> */
3852 if (unlikely(var25
== NULL
)) {
3853 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _colors");
3854 PRINT_ERROR(" (%s:%d)\n", "src/coloring.nit", 334);
3858 RET_LABEL24
:(void)0;
3862 var26
= abstract_collection__MapRead__has_key(var23
, var_bucket
);
3865 goto CONTINUE_label
;
3870 var27
= coloring__POSetBucketsColorer__is_color_free(self
, var_color
, var_h
, var_buckets
);
3876 { /* Inline kernel#Int#+ (var_color,var29) on <var_color:Int> */
3877 /* Covariant cast for argument 0 (i) <var29:Int> isa OTHER */
3878 /* <var29:Int> isa OTHER */
3879 var32
= 1; /* easy <var29:Int> isa OTHER*/
3880 if (unlikely(!var32
)) {
3881 var_class_name35
= type_kernel__Int
.name
;
3882 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name35
);
3883 PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 328);
3886 var36
= var_color
+ var29
;
3889 RET_LABEL31
:(void)0;
3893 CONTINUE_label37
: (void)0;
3895 BREAK_label37
: (void)0;
3897 { /* Inline coloring#POSetBucketsColorer#colors (self) on <self:POSetBucketsColorer[Object, Object]> */
3898 var40
= self
->attrs
[COLOR_coloring__POSetBucketsColorer___colors
].val
; /* _colors on <self:POSetBucketsColorer[Object, Object]> */
3899 if (unlikely(var40
== NULL
)) {
3900 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _colors");
3901 PRINT_ERROR(" (%s:%d)\n", "src/coloring.nit", 334);
3905 RET_LABEL39
:(void)0;
3909 var41
= BOX_kernel__Int(var_color
); /* autobox from Int to nullable Object */
3910 hash_collection__HashMap___91d_93d_61d(var38
, var_bucket
, var41
); /* Direct call hash_collection#HashMap#[]= on <var38:HashMap[Object, Int]>*/
3914 { /* Inline kernel#Int#+ (var_color,var42) on <var_color:Int> */
3915 /* Covariant cast for argument 0 (i) <var42:Int> isa OTHER */
3916 /* <var42:Int> isa OTHER */
3917 var45
= 1; /* easy <var42:Int> isa OTHER*/
3918 if (unlikely(!var45
)) {
3919 var_class_name48
= type_kernel__Int
.name
;
3920 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name48
);
3921 PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 328);
3924 var49
= var_color
+ var42
;
3927 RET_LABEL44
:(void)0;
3931 CONTINUE_label
: (void)0;
3933 ((void (*)(val
*))(var20
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var20
) /* next on <var20:Iterator[nullable Object]>*/;
3936 BREAK_label
: (void)0;
3937 CONTINUE_label50
: (void)0;
3939 array__ArrayIterator__next(var10
); /* Direct call array#ArrayIterator#next on <var10:ArrayIterator[nullable Object]>*/
3942 BREAK_label50
: (void)0;
3944 { /* Inline coloring#POSetBucketsColorer#colors (self) on <self:POSetBucketsColorer[Object, Object]> */
3945 var53
= self
->attrs
[COLOR_coloring__POSetBucketsColorer___colors
].val
; /* _colors on <self:POSetBucketsColorer[Object, Object]> */
3946 if (unlikely(var53
== NULL
)) {
3947 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _colors");
3948 PRINT_ERROR(" (%s:%d)\n", "src/coloring.nit", 334);
3952 RET_LABEL52
:(void)0;
3960 /* method coloring#POSetBucketsColorer#colorize for (self: Object, Map[Object, Set[Object]]): Map[Object, Int] */
3961 val
* VIRTUAL_coloring__POSetBucketsColorer__colorize(val
* self
, val
* p0
) {
3962 val
* var
/* : Map[Object, Int] */;
3963 val
* var1
/* : Map[Object, Int] */;
3964 var1
= coloring__POSetBucketsColorer__colorize(self
, p0
);
3969 /* method coloring#POSetBucketsColorer#min_color for (self: POSetBucketsColorer[Object, Object], Collection[Object], Map[Object, Set[Object]]): Int */
3970 long coloring__POSetBucketsColorer__min_color(val
* self
, val
* p0
, val
* p1
) {
3971 long var
/* : Int */;
3972 short int var1
/* : Bool */;
3975 const struct type
* type_struct
;
3976 const char* var_class_name
;
3977 short int var2
/* : Bool */;
3980 const struct type
* type_struct5
;
3981 const char* var_class_name6
;
3982 val
* var_others
/* var others: Collection[Object] */;
3983 val
* var_buckets
/* var buckets: Map[Object, Set[Object]] */;
3984 long var7
/* : Int */;
3985 long var8
/* : Int */;
3986 long var10
/* : Int */;
3987 long var_min
/* var min: Int */;
3988 val
* var11
/* : Iterator[nullable Object] */;
3989 short int var12
/* : Bool */;
3990 val
* var13
/* : nullable Object */;
3991 val
* var_holder
/* var holder: Object */;
3992 long var14
/* : Int */;
3993 long var_color
/* var color: Int */;
3994 short int var15
/* : Bool */;
3995 short int var17
/* : Bool */;
3998 const char* var_class_name20
;
3999 short int var21
/* : Bool */;
4000 long var22
/* : Int */;
4001 long var23
/* : Int */;
4002 short int var25
/* : Bool */;
4005 const char* var_class_name28
;
4006 long var29
/* : Int */;
4007 /* Covariant cast for argument 0 (others) <p0:Collection[Object]> isa Collection[POSetBucketsColorer#0] */
4008 /* <p0:Collection[Object]> isa Collection[POSetBucketsColorer#0] */
4009 type_struct
= self
->type
->resolution_table
->types
[COLOR_abstract_collection__Collectioncoloring__POSetBucketsColorer_FT0
];
4010 cltype
= type_struct
->color
;
4011 idtype
= type_struct
->id
;
4012 if(cltype
>= p0
->type
->table_size
) {
4015 var1
= p0
->type
->type_table
[cltype
] == idtype
;
4017 if (unlikely(!var1
)) {
4018 var_class_name
= p0
== NULL ?
"null" : p0
->type
->name
;
4019 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "Collection[POSetBucketsColorer#0]", var_class_name
);
4020 PRINT_ERROR(" (%s:%d)\n", "src/coloring.nit", 358);
4023 /* Covariant cast for argument 1 (buckets) <p1:Map[Object, Set[Object]]> isa Map[POSetBucketsColorer#0, Set[POSetBucketsColorer#1]] */
4024 /* <p1:Map[Object, Set[Object]]> isa Map[POSetBucketsColorer#0, Set[POSetBucketsColorer#1]] */
4025 type_struct5
= self
->type
->resolution_table
->types
[COLOR_abstract_collection__Mapcoloring__POSetBucketsColorer_FT0abstract_collection__Setcoloring__POSetBucketsColorer_FT1
];
4026 cltype3
= type_struct5
->color
;
4027 idtype4
= type_struct5
->id
;
4028 if(cltype3
>= p1
->type
->table_size
) {
4031 var2
= p1
->type
->type_table
[cltype3
] == idtype4
;
4033 if (unlikely(!var2
)) {
4034 var_class_name6
= p1
== NULL ?
"null" : p1
->type
->name
;
4035 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "Map[POSetBucketsColorer#0, Set[POSetBucketsColorer#1]]", var_class_name6
);
4036 PRINT_ERROR(" (%s:%d)\n", "src/coloring.nit", 358);
4043 { /* Inline kernel#Int#unary - (var7) on <var7:Int> */
4052 var11
= ((val
* (*)(val
*))(var_others
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var_others
) /* iterator on <var_others:Collection[Object]>*/;
4056 var12
= ((short int (*)(val
*))(var11
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var11
) /* is_ok on <var11:Iterator[nullable Object]>*/;
4060 var13
= ((val
* (*)(val
*))(var11
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var11
) /* item on <var11:Iterator[nullable Object]>*/;
4064 var14
= coloring__POSetBucketsColorer__max_color(self
, var_holder
, var_buckets
);
4068 { /* Inline kernel#Int#> (var_color,var_min) on <var_color:Int> */
4069 /* Covariant cast for argument 0 (i) <var_min:Int> isa OTHER */
4070 /* <var_min:Int> isa OTHER */
4071 var17
= 1; /* easy <var_min:Int> isa OTHER*/
4072 if (unlikely(!var17
)) {
4073 var_class_name20
= type_kernel__Int
.name
;
4074 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name20
);
4075 PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 327);
4078 var21
= var_color
> var_min
;
4081 RET_LABEL16
:(void)0;
4085 var_min
= var_color
;
4088 CONTINUE_label
: (void)0;
4090 ((void (*)(val
*))(var11
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var11
) /* next on <var11:Iterator[nullable Object]>*/;
4093 BREAK_label
: (void)0;
4096 { /* Inline kernel#Int#+ (var_min,var22) on <var_min:Int> */
4097 /* Covariant cast for argument 0 (i) <var22:Int> isa OTHER */
4098 /* <var22:Int> isa OTHER */
4099 var25
= 1; /* easy <var22:Int> isa OTHER*/
4100 if (unlikely(!var25
)) {
4101 var_class_name28
= type_kernel__Int
.name
;
4102 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name28
);
4103 PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 328);
4106 var29
= var_min
+ var22
;
4109 RET_LABEL24
:(void)0;
4117 /* method coloring#POSetBucketsColorer#min_color for (self: Object, Collection[Object], Map[Object, Set[Object]]): Int */
4118 long VIRTUAL_coloring__POSetBucketsColorer__min_color(val
* self
, val
* p0
, val
* p1
) {
4119 long var
/* : Int */;
4120 long var1
/* : Int */;
4121 var1
= coloring__POSetBucketsColorer__min_color(self
, p0
, p1
);
4126 /* method coloring#POSetBucketsColorer#max_color for (self: POSetBucketsColorer[Object, Object], Object, Map[Object, Set[Object]]): Int */
4127 long coloring__POSetBucketsColorer__max_color(val
* self
, val
* p0
, val
* p1
) {
4128 long var
/* : Int */;
4129 short int var1
/* : Bool */;
4132 const struct type
* type_struct
;
4133 const char* var_class_name
;
4134 short int var2
/* : Bool */;
4137 const struct type
* type_struct5
;
4138 const char* var_class_name6
;
4139 val
* var_holder
/* var holder: Object */;
4140 val
* var_buckets
/* var buckets: Map[Object, Set[Object]] */;
4141 long var7
/* : Int */;
4142 long var8
/* : Int */;
4143 long var10
/* : Int */;
4144 long var_max
/* var max: Int */;
4145 val
* var11
/* : nullable Object */;
4146 val
* var12
/* : Iterator[nullable Object] */;
4147 short int var13
/* : Bool */;
4148 val
* var14
/* : nullable Object */;
4149 val
* var_bucket
/* var bucket: Object */;
4150 val
* var15
/* : HashMap[Object, Int] */;
4151 val
* var17
/* : HashMap[Object, Int] */;
4152 short int var18
/* : Bool */;
4153 short int var19
/* : Bool */;
4154 val
* var20
/* : HashMap[Object, Int] */;
4155 val
* var22
/* : HashMap[Object, Int] */;
4156 val
* var23
/* : nullable Object */;
4157 long var24
/* : Int */;
4158 long var_color
/* var color: Int */;
4159 short int var25
/* : Bool */;
4160 short int var27
/* : Bool */;
4163 const char* var_class_name30
;
4164 short int var31
/* : Bool */;
4165 /* Covariant cast for argument 0 (holder) <p0:Object> isa POSetBucketsColorer#0 */
4166 /* <p0:Object> isa POSetBucketsColorer#0 */
4167 type_struct
= self
->type
->resolution_table
->types
[COLOR_coloring__POSetBucketsColorer_FT0
];
4168 cltype
= type_struct
->color
;
4169 idtype
= type_struct
->id
;
4170 if(cltype
>= p0
->type
->table_size
) {
4173 var1
= p0
->type
->type_table
[cltype
] == idtype
;
4175 if (unlikely(!var1
)) {
4176 var_class_name
= p0
== NULL ?
"null" : p0
->type
->name
;
4177 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "POSetBucketsColorer#0", var_class_name
);
4178 PRINT_ERROR(" (%s:%d)\n", "src/coloring.nit", 368);
4181 /* Covariant cast for argument 1 (buckets) <p1:Map[Object, Set[Object]]> isa Map[POSetBucketsColorer#0, Set[POSetBucketsColorer#1]] */
4182 /* <p1:Map[Object, Set[Object]]> isa Map[POSetBucketsColorer#0, Set[POSetBucketsColorer#1]] */
4183 type_struct5
= self
->type
->resolution_table
->types
[COLOR_abstract_collection__Mapcoloring__POSetBucketsColorer_FT0abstract_collection__Setcoloring__POSetBucketsColorer_FT1
];
4184 cltype3
= type_struct5
->color
;
4185 idtype4
= type_struct5
->id
;
4186 if(cltype3
>= p1
->type
->table_size
) {
4189 var2
= p1
->type
->type_table
[cltype3
] == idtype4
;
4191 if (unlikely(!var2
)) {
4192 var_class_name6
= p1
== NULL ?
"null" : p1
->type
->name
;
4193 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "Map[POSetBucketsColorer#0, Set[POSetBucketsColorer#1]]", var_class_name6
);
4194 PRINT_ERROR(" (%s:%d)\n", "src/coloring.nit", 368);
4201 { /* Inline kernel#Int#unary - (var7) on <var7:Int> */
4210 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]]>*/;
4213 var12
= ((val
* (*)(val
*))(var11
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var11
) /* iterator on <var11:nullable Object(Set[Object])>*/;
4217 var13
= ((short int (*)(val
*))(var12
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var12
) /* is_ok on <var12:Iterator[nullable Object]>*/;
4221 var14
= ((val
* (*)(val
*))(var12
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var12
) /* item on <var12:Iterator[nullable Object]>*/;
4225 { /* Inline coloring#POSetBucketsColorer#colors (self) on <self:POSetBucketsColorer[Object, Object]> */
4226 var17
= self
->attrs
[COLOR_coloring__POSetBucketsColorer___colors
].val
; /* _colors on <self:POSetBucketsColorer[Object, Object]> */
4227 if (unlikely(var17
== NULL
)) {
4228 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _colors");
4229 PRINT_ERROR(" (%s:%d)\n", "src/coloring.nit", 334);
4233 RET_LABEL16
:(void)0;
4237 var18
= abstract_collection__MapRead__has_key(var15
, var_bucket
);
4241 goto CONTINUE_label
;
4245 { /* Inline coloring#POSetBucketsColorer#colors (self) on <self:POSetBucketsColorer[Object, Object]> */
4246 var22
= self
->attrs
[COLOR_coloring__POSetBucketsColorer___colors
].val
; /* _colors on <self:POSetBucketsColorer[Object, Object]> */
4247 if (unlikely(var22
== NULL
)) {
4248 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _colors");
4249 PRINT_ERROR(" (%s:%d)\n", "src/coloring.nit", 334);
4253 RET_LABEL21
:(void)0;
4257 var23
= hash_collection__HashMap___91d_93d(var20
, var_bucket
);
4259 var24
= ((struct instance_kernel__Int
*)var23
)->value
; /* autounbox from nullable Object to Int */;
4262 { /* Inline kernel#Int#> (var_color,var_max) on <var_color:Int> */
4263 /* Covariant cast for argument 0 (i) <var_max:Int> isa OTHER */
4264 /* <var_max:Int> isa OTHER */
4265 var27
= 1; /* easy <var_max:Int> isa OTHER*/
4266 if (unlikely(!var27
)) {
4267 var_class_name30
= type_kernel__Int
.name
;
4268 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name30
);
4269 PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 327);
4272 var31
= var_color
> var_max
;
4275 RET_LABEL26
:(void)0;
4279 var_max
= var_color
;
4282 CONTINUE_label
: (void)0;
4284 ((void (*)(val
*))(var12
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var12
) /* next on <var12:Iterator[nullable Object]>*/;
4287 BREAK_label
: (void)0;
4293 /* method coloring#POSetBucketsColorer#max_color for (self: Object, Object, Map[Object, Set[Object]]): Int */
4294 long VIRTUAL_coloring__POSetBucketsColorer__max_color(val
* self
, val
* p0
, val
* p1
) {
4295 long var
/* : Int */;
4296 long var1
/* : Int */;
4297 var1
= coloring__POSetBucketsColorer__max_color(self
, p0
, p1
);
4302 /* method coloring#POSetBucketsColorer#is_color_free for (self: POSetBucketsColorer[Object, Object], Int, Object, Map[Object, Set[Object]]): Bool */
4303 short int coloring__POSetBucketsColorer__is_color_free(val
* self
, long p0
, val
* p1
, val
* p2
) {
4304 short int var
/* : Bool */;
4305 short int var1
/* : Bool */;
4308 const struct type
* type_struct
;
4309 const char* var_class_name
;
4310 short int var2
/* : Bool */;
4313 const struct type
* type_struct5
;
4314 const char* var_class_name6
;
4315 long var_color
/* var color: Int */;
4316 val
* var_holder
/* var holder: Object */;
4317 val
* var_buckets
/* var buckets: Map[Object, Set[Object]] */;
4318 val
* var7
/* : Map[Object, Set[Object]] */;
4319 val
* var9
/* : Map[Object, Set[Object]] */;
4320 short int var10
/* : Bool */;
4321 short int var11
/* : Bool */;
4322 short int var12
/* : Bool */;
4323 val
* var13
/* : Map[Object, Set[Object]] */;
4324 val
* var15
/* : Map[Object, Set[Object]] */;
4325 val
* var16
/* : nullable Object */;
4326 val
* var17
/* : Iterator[nullable Object] */;
4327 short int var18
/* : Bool */;
4328 val
* var19
/* : nullable Object */;
4329 val
* var_conflict
/* var conflict: Object */;
4330 val
* var20
/* : nullable Object */;
4331 val
* var21
/* : Iterator[nullable Object] */;
4332 short int var22
/* : Bool */;
4333 val
* var23
/* : nullable Object */;
4334 val
* var_bucket
/* var bucket: Object */;
4335 val
* var24
/* : HashMap[Object, Int] */;
4336 val
* var26
/* : HashMap[Object, Int] */;
4337 short int var27
/* : Bool */;
4338 short int var28
/* : Bool */;
4339 val
* var29
/* : HashMap[Object, Int] */;
4340 val
* var31
/* : HashMap[Object, Int] */;
4341 val
* var32
/* : nullable Object */;
4342 short int var33
/* : Bool */;
4343 short int var34
/* : Bool */;
4344 short int var36
/* : Bool */;
4345 long var37
/* : Int */;
4346 short int var38
/* : Bool */;
4347 short int var40
/* : Bool */;
4348 /* Covariant cast for argument 1 (holder) <p1:Object> isa POSetBucketsColorer#0 */
4349 /* <p1:Object> isa POSetBucketsColorer#0 */
4350 type_struct
= self
->type
->resolution_table
->types
[COLOR_coloring__POSetBucketsColorer_FT0
];
4351 cltype
= type_struct
->color
;
4352 idtype
= type_struct
->id
;
4353 if(cltype
>= p1
->type
->table_size
) {
4356 var1
= p1
->type
->type_table
[cltype
] == idtype
;
4358 if (unlikely(!var1
)) {
4359 var_class_name
= p1
== NULL ?
"null" : p1
->type
->name
;
4360 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "POSetBucketsColorer#0", var_class_name
);
4361 PRINT_ERROR(" (%s:%d)\n", "src/coloring.nit", 379);
4364 /* Covariant cast for argument 2 (buckets) <p2:Map[Object, Set[Object]]> isa Map[POSetBucketsColorer#0, Set[POSetBucketsColorer#1]] */
4365 /* <p2:Map[Object, Set[Object]]> isa Map[POSetBucketsColorer#0, Set[POSetBucketsColorer#1]] */
4366 type_struct5
= self
->type
->resolution_table
->types
[COLOR_abstract_collection__Mapcoloring__POSetBucketsColorer_FT0abstract_collection__Setcoloring__POSetBucketsColorer_FT1
];
4367 cltype3
= type_struct5
->color
;
4368 idtype4
= type_struct5
->id
;
4369 if(cltype3
>= p2
->type
->table_size
) {
4372 var2
= p2
->type
->type_table
[cltype3
] == idtype4
;
4374 if (unlikely(!var2
)) {
4375 var_class_name6
= p2
== NULL ?
"null" : p2
->type
->name
;
4376 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "Map[POSetBucketsColorer#0, Set[POSetBucketsColorer#1]]", var_class_name6
);
4377 PRINT_ERROR(" (%s:%d)\n", "src/coloring.nit", 379);
4384 { /* Inline coloring#POSetBucketsColorer#conflicts (self) on <self:POSetBucketsColorer[Object, Object]> */
4385 var9
= self
->attrs
[COLOR_coloring__POSetBucketsColorer___conflicts
].val
; /* _conflicts on <self:POSetBucketsColorer[Object, Object]> */
4386 if (unlikely(var9
== NULL
)) {
4387 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _conflicts");
4388 PRINT_ERROR(" (%s:%d)\n", "src/coloring.nit", 336);
4396 var10
= abstract_collection__MapRead__has_key(var7
, var_holder
);
4406 { /* Inline coloring#POSetBucketsColorer#conflicts (self) on <self:POSetBucketsColorer[Object, Object]> */
4407 var15
= self
->attrs
[COLOR_coloring__POSetBucketsColorer___conflicts
].val
; /* _conflicts on <self:POSetBucketsColorer[Object, Object]> */
4408 if (unlikely(var15
== NULL
)) {
4409 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _conflicts");
4410 PRINT_ERROR(" (%s:%d)\n", "src/coloring.nit", 336);
4414 RET_LABEL14
:(void)0;
4418 var16
= ((val
* (*)(val
*, val
*))(var13
->class->vft
[COLOR_abstract_collection__MapRead___91d_93d
]))(var13
, var_holder
) /* [] on <var13:Map[Object, Set[Object]]>*/;
4421 var17
= ((val
* (*)(val
*))(var16
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var16
) /* iterator on <var16:nullable Object(Set[Object])>*/;
4425 var18
= ((short int (*)(val
*))(var17
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var17
) /* is_ok on <var17:Iterator[nullable Object]>*/;
4429 var19
= ((val
* (*)(val
*))(var17
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var17
) /* item on <var17:Iterator[nullable Object]>*/;
4431 var_conflict
= var19
;
4433 var20
= ((val
* (*)(val
*, val
*))(var_buckets
->class->vft
[COLOR_abstract_collection__MapRead___91d_93d
]))(var_buckets
, var_conflict
) /* [] on <var_buckets:Map[Object, Set[Object]]>*/;
4436 var21
= ((val
* (*)(val
*))(var20
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var20
) /* iterator on <var20:nullable Object(Set[Object])>*/;
4440 var22
= ((short int (*)(val
*))(var21
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var21
) /* is_ok on <var21:Iterator[nullable Object]>*/;
4444 var23
= ((val
* (*)(val
*))(var21
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var21
) /* item on <var21:Iterator[nullable Object]>*/;
4448 { /* Inline coloring#POSetBucketsColorer#colors (self) on <self:POSetBucketsColorer[Object, Object]> */
4449 var26
= self
->attrs
[COLOR_coloring__POSetBucketsColorer___colors
].val
; /* _colors on <self:POSetBucketsColorer[Object, Object]> */
4450 if (unlikely(var26
== NULL
)) {
4451 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _colors");
4452 PRINT_ERROR(" (%s:%d)\n", "src/coloring.nit", 334);
4456 RET_LABEL25
:(void)0;
4460 var27
= abstract_collection__MapRead__has_key(var24
, var_bucket
);
4464 goto CONTINUE_label
;
4468 { /* Inline coloring#POSetBucketsColorer#colors (self) on <self:POSetBucketsColorer[Object, Object]> */
4469 var31
= self
->attrs
[COLOR_coloring__POSetBucketsColorer___colors
].val
; /* _colors on <self:POSetBucketsColorer[Object, Object]> */
4470 if (unlikely(var31
== NULL
)) {
4471 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _colors");
4472 PRINT_ERROR(" (%s:%d)\n", "src/coloring.nit", 334);
4476 RET_LABEL30
:(void)0;
4480 var32
= hash_collection__HashMap___91d_93d(var29
, var_bucket
);
4483 { /* Inline kernel#Int#== (var32,var_color) on <var32:nullable Object(Int)> */
4484 var36
= (var32
!= NULL
) && (var32
->class == &class_kernel__Int
);
4486 var37
= ((struct instance_kernel__Int
*)var32
)->value
; /* autounbox from nullable Object to Int */;
4487 var36
= (var37
== var_color
);
4491 RET_LABEL35
:(void)0;
4501 CONTINUE_label
: (void)0;
4503 ((void (*)(val
*))(var21
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var21
) /* next on <var21:Iterator[nullable Object]>*/;
4506 BREAK_label
: (void)0;
4507 CONTINUE_label39
: (void)0;
4509 ((void (*)(val
*))(var17
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var17
) /* next on <var17:Iterator[nullable Object]>*/;
4512 BREAK_label39
: (void)0;
4519 /* method coloring#POSetBucketsColorer#is_color_free for (self: Object, Int, Object, Map[Object, Set[Object]]): Bool */
4520 short int VIRTUAL_coloring__POSetBucketsColorer__is_color_free(val
* self
, long p0
, val
* p1
, val
* p2
) {
4521 short int var
/* : Bool */;
4522 short int var1
/* : Bool */;
4523 var1
= coloring__POSetBucketsColorer__is_color_free(self
, p0
, p1
, p2
);